summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--.tarball-version1
-rw-r--r--.version1
-rw-r--r--ABOUT-NLS768
-rw-r--r--AUTHORS59
-rw-r--r--COPYING339
-rw-r--r--COPYING.LIB481
-rw-r--r--ChangeLog3
-rw-r--r--INSTALL.md25
-rw-r--r--Makefile.am418
-rw-r--r--Makefile.in3106
-rw-r--r--NEWS882
-rw-r--r--README.md52
-rw-r--r--aclocal.m41507
-rwxr-xr-xautogen.sh75
-rwxr-xr-xcompile348
-rwxr-xr-xconfig.guess1754
-rw-r--r--config.h.in499
-rwxr-xr-xconfig.rpath548
-rwxr-xr-xconfig.sub1890
-rwxr-xr-xconfigure21818
-rw-r--r--configure.ac428
-rwxr-xr-xdepcomp791
-rw-r--r--doc/CodingStyle.md27
-rw-r--r--doc/FAQ97
-rw-r--r--doc/TODO145
-rw-r--r--doc/bugs.md92
-rw-r--r--doc/libproc.supp78
-rwxr-xr-xinstall-sh541
-rw-r--r--library/devname.c364
-rw-r--r--library/diskstats.c1027
-rw-r--r--library/escape.c157
-rw-r--r--library/include/devname.h10
-rw-r--r--library/include/diskstats.h135
-rw-r--r--library/include/escape.h35
-rw-r--r--library/include/meminfo.h216
-rw-r--r--library/include/misc.h90
-rw-r--r--library/include/numa.h30
-rw-r--r--library/include/pids.h287
-rw-r--r--library/include/procps-private.h28
-rw-r--r--library/include/pwcache.h38
-rw-r--r--library/include/readproc.h303
-rw-r--r--library/include/slabinfo.h140
-rw-r--r--library/include/stat.h175
-rw-r--r--library/include/vmstat.h382
-rw-r--r--library/include/wchan.h27
-rw-r--r--library/include/xtra-procps-debug.h208
-rw-r--r--library/libproc2.pc.in11
-rw-r--r--library/libproc2.sym67
-rw-r--r--library/meminfo.c1016
-rw-r--r--library/namespace.c116
-rw-r--r--library/numa.c114
-rw-r--r--library/pids.c1700
-rw-r--r--library/pwcache.c99
-rw-r--r--library/readproc.c1627
-rw-r--r--library/slabinfo.c1044
-rw-r--r--library/stat.c1443
-rw-r--r--library/sysinfo.c167
-rw-r--r--library/tests/test_Itemtables.c91
-rw-r--r--library/tests/test_namespace.c76
-rw-r--r--library/tests/test_pids.c75
-rw-r--r--library/tests/test_sysinfo.c64
-rw-r--r--library/tests/test_uptime.c97
-rw-r--r--library/tests/test_version.c72
-rw-r--r--library/uptime.c268
-rw-r--r--library/version.c71
-rw-r--r--library/vmstat.c1513
-rw-r--r--library/wchan.c54
-rw-r--r--local/Makefile.am10
-rw-r--r--local/Makefile.in553
-rw-r--r--local/c.h162
-rw-r--r--local/fileutils.c45
-rw-r--r--local/fileutils.h7
-rwxr-xr-xlocal/git-version-gen181
-rw-r--r--local/nls.h114
-rw-r--r--local/procio.c292
-rw-r--r--local/procio.h6
-rw-r--r--local/rpmatch.h9
-rw-r--r--local/signals.c316
-rw-r--r--local/signals.h33
-rw-r--r--local/strutils.c123
-rw-r--r--local/strutils.h12
-rw-r--r--local/strverscmp.c158
-rw-r--r--local/tests.h29
-rw-r--r--local/xalloc.h60
-rwxr-xr-xltmain.sh11448
-rw-r--r--m4/gettext.m4487
-rw-r--r--m4/iconv.m4103
-rw-r--r--m4/lib-ld.m4112
-rw-r--r--m4/lib-link.m4551
-rw-r--r--m4/lib-prefix.m4155
-rw-r--r--m4/libtool.m48427
-rw-r--r--m4/ltoptions.m4437
-rw-r--r--m4/ltsugar.m4124
-rw-r--r--m4/ltversion.m424
-rw-r--r--m4/lt~obsolete.m499
-rw-r--r--m4/nls.m449
-rw-r--r--m4/po.m4426
-rw-r--r--m4/progtest.m491
-rw-r--r--man/free.1169
-rw-r--r--man/kill.1110
-rw-r--r--man/pgrep.1334
-rw-r--r--man/pidof.182
-rw-r--r--man/pidwait.11
-rw-r--r--man/pkill.11
-rw-r--r--man/pmap.1100
-rw-r--r--man/procps.3185
-rw-r--r--man/procps_misc.3156
-rw-r--r--man/procps_pids.3210
-rw-r--r--man/ps.12124
-rw-r--r--man/pwdx.140
-rw-r--r--man/skill.1128
-rw-r--r--man/slabtop.1123
-rw-r--r--man/snice.11
-rw-r--r--man/sysctl.8196
-rw-r--r--man/sysctl.conf.592
-rw-r--r--man/tload.169
-rw-r--r--man/top.12810
-rw-r--r--man/uptime.174
-rw-r--r--man/vmstat.8202
-rw-r--r--man/w.1115
-rw-r--r--man/watch.1232
-rwxr-xr-xmissing215
-rwxr-xr-xmkinstalldirs111
-rw-r--r--po-man/Makefile.am101
-rw-r--r--po-man/Makefile.in575
-rw-r--r--po-man/de.po16179
-rw-r--r--po-man/de/free.1170
-rw-r--r--po-man/de/kill.194
-rw-r--r--po-man/de/pgrep.1263
-rw-r--r--po-man/de/pidof.176
-rw-r--r--po-man/de/pmap.199
-rw-r--r--po-man/de/ps.11660
-rw-r--r--po-man/de/pwdx.142
-rw-r--r--po-man/de/skill.1119
-rw-r--r--po-man/de/slabtop.1113
-rw-r--r--po-man/de/sysctl.8181
-rw-r--r--po-man/de/sysctl.conf.589
-rw-r--r--po-man/de/tload.162
-rw-r--r--po-man/de/uptime.179
-rw-r--r--po-man/de/vmstat.8191
-rw-r--r--po-man/de/w.1107
-rw-r--r--po-man/de/watch.1213
-rw-r--r--po-man/fr.po21039
-rw-r--r--po-man/fr/free.1170
-rw-r--r--po-man/fr/kill.191
-rw-r--r--po-man/fr/pmap.196
-rw-r--r--po-man/fr/ps.11938
-rw-r--r--po-man/fr/pwdx.137
-rw-r--r--po-man/fr/skill.1116
-rw-r--r--po-man/fr/slabtop.1108
-rw-r--r--po-man/fr/sysctl.8171
-rw-r--r--po-man/fr/sysctl.conf.586
-rw-r--r--po-man/fr/tload.154
-rw-r--r--po-man/fr/uptime.168
-rw-r--r--po-man/fr/vmstat.8185
-rw-r--r--po-man/fr/w.1105
-rw-r--r--po-man/fr/watch.1198
-rw-r--r--po-man/man.stamp0
-rw-r--r--po-man/pl.po17397
-rw-r--r--po-man/pl/free.1164
-rw-r--r--po-man/pl/pgrep.1256
-rw-r--r--po-man/pl/pmap.197
-rw-r--r--po-man/pl/procps.3175
-rw-r--r--po-man/pl/procps_misc.3151
-rw-r--r--po-man/pl/procps_pids.3201
-rw-r--r--po-man/pl/uptime.174
-rw-r--r--po-man/pl/vmstat.8186
-rw-r--r--po-man/po4a.cfg64
-rw-r--r--po-man/procps-man.pot16211
-rw-r--r--po-man/pt_BR.po17397
-rw-r--r--po-man/pt_BR/free.1166
-rw-r--r--po-man/pt_BR/kill.191
-rw-r--r--po-man/pt_BR/pmap.196
-rw-r--r--po-man/pt_BR/pwdx.142
-rw-r--r--po-man/pt_BR/skill.1116
-rw-r--r--po-man/pt_BR/slabtop.1110
-rw-r--r--po-man/pt_BR/sysctl.8177
-rw-r--r--po-man/pt_BR/sysctl.conf.589
-rw-r--r--po-man/pt_BR/tload.160
-rw-r--r--po-man/pt_BR/uptime.175
-rw-r--r--po-man/pt_BR/vmstat.8184
-rw-r--r--po-man/pt_BR/w.1104
-rw-r--r--po-man/pt_BR/watch.1201
-rw-r--r--po-man/ro.po16914
-rw-r--r--po-man/ro/free.1177
-rw-r--r--po-man/ro/kill.194
-rw-r--r--po-man/ro/pgrep.1260
-rw-r--r--po-man/ro/pidof.177
-rw-r--r--po-man/ro/pmap.198
-rw-r--r--po-man/ro/procps.3183
-rw-r--r--po-man/ro/procps_misc.3157
-rw-r--r--po-man/ro/procps_pids.3208
-rw-r--r--po-man/ro/ps.11831
-rw-r--r--po-man/ro/pwdx.142
-rw-r--r--po-man/ro/skill.1116
-rw-r--r--po-man/ro/slabtop.1116
-rw-r--r--po-man/ro/sysctl.8182
-rw-r--r--po-man/ro/sysctl.conf.590
-rw-r--r--po-man/ro/tload.162
-rw-r--r--po-man/ro/top.12957
-rw-r--r--po-man/ro/uptime.176
-rw-r--r--po-man/ro/vmstat.8188
-rw-r--r--po-man/ro/w.1103
-rw-r--r--po-man/ro/watch.1206
-rw-r--r--po-man/sv.po15049
-rw-r--r--po-man/sv/free.1170
-rw-r--r--po-man/sv/kill.195
-rw-r--r--po-man/sv/pgrep.1251
-rw-r--r--po-man/sv/pidof.172
-rw-r--r--po-man/sv/pmap.199
-rw-r--r--po-man/sv/procps.3176
-rw-r--r--po-man/sv/procps_misc.3153
-rw-r--r--po-man/sv/procps_pids.3199
-rw-r--r--po-man/sv/ps.11854
-rw-r--r--po-man/sv/pwdx.145
-rw-r--r--po-man/sv/skill.1119
-rw-r--r--po-man/sv/slabtop.1113
-rw-r--r--po-man/sv/sysctl.8180
-rw-r--r--po-man/sv/sysctl.conf.592
-rw-r--r--po-man/sv/tload.163
-rw-r--r--po-man/sv/top.12752
-rw-r--r--po-man/sv/uptime.175
-rw-r--r--po-man/sv/vmstat.8185
-rw-r--r--po-man/sv/w.1108
-rw-r--r--po-man/sv/watch.1201
-rw-r--r--po-man/uk.po16724
-rw-r--r--po-man/uk/free.1170
-rw-r--r--po-man/uk/kill.194
-rw-r--r--po-man/uk/pgrep.1266
-rw-r--r--po-man/uk/pidof.178
-rw-r--r--po-man/uk/pmap.197
-rw-r--r--po-man/uk/procps.3179
-rw-r--r--po-man/uk/procps_misc.3155
-rw-r--r--po-man/uk/procps_pids.3204
-rw-r--r--po-man/uk/ps.11655
-rw-r--r--po-man/uk/pwdx.141
-rw-r--r--po-man/uk/skill.1118
-rw-r--r--po-man/uk/slabtop.1117
-rw-r--r--po-man/uk/sysctl.8182
-rw-r--r--po-man/uk/sysctl.conf.590
-rw-r--r--po-man/uk/tload.162
-rw-r--r--po-man/uk/top.12878
-rw-r--r--po-man/uk/uptime.176
-rw-r--r--po-man/uk/vmstat.8189
-rw-r--r--po-man/uk/w.1111
-rw-r--r--po-man/uk/watch.1207
-rw-r--r--po-man/zh_CN.po16178
-rw-r--r--po/ChangeLog5
-rw-r--r--po/Makefile.in.in367
-rw-r--r--po/Makevars41
-rw-r--r--po/POTFILES.in59
-rw-r--r--po/Rules-quot47
-rw-r--r--po/boldquot.sed10
-rw-r--r--po/de.gmobin0 -> 78634 bytes
-rw-r--r--po/de.po4917
-rw-r--r--po/en@boldquot.header25
-rw-r--r--po/en@quot.header22
-rw-r--r--po/es.gmobin0 -> 98460 bytes
-rw-r--r--po/es.po5197
-rw-r--r--po/fr.gmobin0 -> 101461 bytes
-rw-r--r--po/fr.po5121
-rw-r--r--po/insert-header.sin23
-rw-r--r--po/ka.gmobin0 -> 51544 bytes
-rw-r--r--po/ka.po4631
-rw-r--r--po/ko.gmobin0 -> 102426 bytes
-rw-r--r--po/ko.po4846
-rw-r--r--po/pl.gmobin0 -> 99983 bytes
-rw-r--r--po/pl.po4889
-rw-r--r--po/procps-ng.pot4456
-rw-r--r--po/pt_BR.gmobin0 -> 78613 bytes
-rw-r--r--po/pt_BR.po5139
-rw-r--r--po/quot.sed6
-rw-r--r--po/remove-potcdate.sin19
-rw-r--r--po/ro.gmobin0 -> 105584 bytes
-rw-r--r--po/ro.po5348
-rw-r--r--po/stamp-po1
-rw-r--r--po/sv.gmobin0 -> 97284 bytes
-rw-r--r--po/sv.po4871
-rw-r--r--po/uk.gmobin0 -> 128374 bytes
-rw-r--r--po/uk.po5095
-rw-r--r--po/vi.gmobin0 -> 73989 bytes
-rw-r--r--po/vi.po5067
-rw-r--r--po/zh_CN.gmobin0 -> 12985 bytes
-rw-r--r--po/zh_CN.po4918
-rw-r--r--src/free.c479
-rw-r--r--src/kill.c167
-rw-r--r--src/pgrep.c1212
-rw-r--r--src/pidof.c420
-rw-r--r--src/pmap.c1217
-rw-r--r--src/ps/HACKING46
-rw-r--r--src/ps/common.h512
-rw-r--r--src/ps/display.c681
-rw-r--r--src/ps/global.c651
-rw-r--r--src/ps/help.c223
-rw-r--r--src/ps/output.c2370
-rw-r--r--src/ps/parser.c1268
-rw-r--r--src/ps/regression26
-rw-r--r--src/ps/select.c162
-rw-r--r--src/ps/signames.c170
-rw-r--r--src/ps/sortformat.c949
-rw-r--r--src/ps/stacktrace.c191
-rw-r--r--src/pwdx.c153
-rw-r--r--src/skill.c600
-rw-r--r--src/slabtop.c388
-rw-r--r--src/sysctl.c1070
-rw-r--r--src/tests/test_fileutils.c10
-rw-r--r--src/tests/test_process.c115
-rw-r--r--src/tests/test_shm.c69
-rw-r--r--src/tests/test_strtod_nol.c51
-rw-r--r--src/tests/test_strutils.c38
-rw-r--r--src/tload.c232
-rw-r--r--src/top/top.c7404
-rw-r--r--src/top/top.h792
-rw-r--r--src/top/top_nls.c867
-rw-r--r--src/top/top_nls.h108
-rw-r--r--src/uptime.c127
-rw-r--r--src/vmstat.c1092
-rw-r--r--src/w.c896
-rw-r--r--src/watch.c1045
-rw-r--r--sysctl.conf64
-rwxr-xr-xtest-driver153
-rw-r--r--testsuite/Makefile.am63
-rw-r--r--testsuite/Makefile.in733
-rw-r--r--testsuite/README33
-rw-r--r--testsuite/config/unix.exp244
-rw-r--r--testsuite/free.test/free.exp61
-rw-r--r--testsuite/kill.test/kill.exp65
-rw-r--r--testsuite/lib.test/fileutils.exp19
-rwxr-xr-xtestsuite/lib.test/fileutils_badfd.sh3
-rwxr-xr-xtestsuite/lib.test/fileutils_full.sh3
-rw-r--r--testsuite/lib.test/strutils.exp25
-rw-r--r--testsuite/pgrep.test/pgrep.exp131
-rw-r--r--testsuite/pkill.test/pkill.exp51
-rw-r--r--testsuite/pmap.test/pmap.exp106
-rw-r--r--testsuite/ps.test/ps_output.exp63
-rw-r--r--testsuite/ps.test/ps_personality.exp18
-rw-r--r--testsuite/ps.test/ps_sched_batch.exp11
-rw-r--r--testsuite/ps.test/test-schedbatch.c46
-rw-r--r--testsuite/pwdx.test/pwdx.exp22
-rw-r--r--testsuite/slabtop.test/slabtop.exp45
-rw-r--r--testsuite/sysctl.test/sysctl_read.exp29
-rw-r--r--testsuite/uptime.test/uptime.exp17
-rw-r--r--testsuite/vmstat.test/vmstat.exp57
-rw-r--r--testsuite/w.test/w.exp59
344 files changed, 360593 insertions, 0 deletions
diff --git a/.tarball-version b/.tarball-version
new file mode 100644
index 0000000..c5106e6
--- /dev/null
+++ b/.tarball-version
@@ -0,0 +1 @@
+4.0.4
diff --git a/.version b/.version
new file mode 100644
index 0000000..c5106e6
--- /dev/null
+++ b/.version
@@ -0,0 +1 @@
+4.0.4
diff --git a/ABOUT-NLS b/ABOUT-NLS
new file mode 100644
index 0000000..2f50c66
--- /dev/null
+++ b/ABOUT-NLS
@@ -0,0 +1,768 @@
+Notes on the Free Translation Project
+*************************************
+
+Free software is going international! The Free Translation Project is
+a way to get maintainers of free software, translators, and users all
+together, so that will gradually become able to speak many languages.
+A few packages already provide translations for their messages.
+
+ If you found this `ABOUT-NLS' file inside a distribution, you may
+assume that the distributed package does use GNU `gettext' internally,
+itself available at your nearest GNU archive site. But you do _not_
+need to install GNU `gettext' prior to configuring, installing or using
+this package with messages translated.
+
+ Installers will find here some useful hints. These notes also
+explain how users should proceed for getting the programs to use the
+available translations. They tell how people wanting to contribute and
+work at translations should contact the appropriate team.
+
+ When reporting bugs in the `intl/' directory or bugs which may be
+related to internationalization, you should tell about the version of
+`gettext' which is used. The information can be found in the
+`intl/VERSION' file, in internationalized packages.
+
+Quick configuration advice
+==========================
+
+If you want to exploit the full power of internationalization, you
+should configure it using
+
+ ./configure --with-included-gettext
+
+to force usage of internationalizing routines provided within this
+package, despite the existence of internationalizing capabilities in the
+operating system where this package is being installed. So far, only
+the `gettext' implementation in the GNU C library version 2 provides as
+many features (such as locale alias, message inheritance, automatic
+charset conversion or plural form handling) as the implementation here.
+It is also not possible to offer this additional functionality on top
+of a `catgets' implementation. Future versions of GNU `gettext' will
+very likely convey even more functionality. So it might be a good idea
+to change to GNU `gettext' as soon as possible.
+
+ So you need _not_ provide this option if you are using GNU libc 2 or
+you have installed a recent copy of the GNU gettext package with the
+included `libintl'.
+
+INSTALL Matters
+===============
+
+Some packages are "localizable" when properly installed; the programs
+they contain can be made to speak your own native language. Most such
+packages use GNU `gettext'. Other packages have their own ways to
+internationalization, predating GNU `gettext'.
+
+ By default, this package will be installed to allow translation of
+messages. It will automatically detect whether the system already
+provides the GNU `gettext' functions. If not, the GNU `gettext' own
+library will be used. This library is wholly contained within this
+package, usually in the `intl/' subdirectory, so prior installation of
+the GNU `gettext' package is _not_ required. Installers may use
+special options at configuration time for changing the default
+behaviour. The commands:
+
+ ./configure --with-included-gettext
+ ./configure --disable-nls
+
+will respectively bypass any pre-existing `gettext' to use the
+internationalizing routines provided within this package, or else,
+_totally_ disable translation of messages.
+
+ When you already have GNU `gettext' installed on your system and run
+configure without an option for your new package, `configure' will
+probably detect the previously built and installed `libintl.a' file and
+will decide to use this. This might be not what is desirable. You
+should use the more recent version of the GNU `gettext' library. I.e.
+if the file `intl/VERSION' shows that the library which comes with this
+package is more recent, you should use
+
+ ./configure --with-included-gettext
+
+to prevent auto-detection.
+
+ The configuration process will not test for the `catgets' function
+and therefore it will not be used. The reason is that even an
+emulation of `gettext' on top of `catgets' could not provide all the
+extensions of the GNU `gettext' library.
+
+ Internationalized packages have usually many `po/LL.po' files, where
+LL gives an ISO 639 two-letter code identifying the language. Unless
+translations have been forbidden at `configure' time by using the
+`--disable-nls' switch, all available translations are installed
+together with the package. However, the environment variable `LINGUAS'
+may be set, prior to configuration, to limit the installed set.
+`LINGUAS' should then contain a space separated list of two-letter
+codes, stating which languages are allowed.
+
+Using This Package
+==================
+
+As a user, if your language has been installed for this package, you
+only have to set the `LANG' environment variable to the appropriate
+`LL_CC' combination. Here `LL' is an ISO 639 two-letter language code,
+and `CC' is an ISO 3166 two-letter country code. For example, let's
+suppose that you speak German and live in Germany. At the shell
+prompt, merely execute `setenv LANG de_DE' (in `csh'),
+`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash').
+This can be done from your `.login' or `.profile' file, once and for
+all.
+
+ You might think that the country code specification is redundant.
+But in fact, some languages have dialects in different countries. For
+example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The
+country code serves to distinguish the dialects.
+
+ The locale naming convention of `LL_CC', with `LL' denoting the
+language and `CC' denoting the country, is the one use on systems based
+on GNU libc. On other systems, some variations of this scheme are
+used, such as `LL' or `LL_CC.ENCODING'. You can get the list of
+locales supported by your system for your country by running the command
+`locale -a | grep '^LL''.
+
+ Not all programs have translations for all languages. By default, an
+English message is shown in place of a nonexistent translation. If you
+understand other languages, you can set up a priority list of languages.
+This is done through a different environment variable, called
+`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG'
+for the purpose of message handling, but you still need to have `LANG'
+set to the primary language; this is required by other parts of the
+system libraries. For example, some Swedish users who would rather
+read translations in German than English for when Swedish is not
+available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'.
+
+ Special advice for Norwegian users: The language code for Norwegian
+bokma*l changed from `no' to `nb' recently (in 2003). During the
+transition period, while some message catalogs for this language are
+installed under `nb' and some older ones under `no', it's recommended
+for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and
+older translations are used.
+
+ In the `LANGUAGE' environment variable, but not in the `LANG'
+environment variable, `LL_CC' combinations can be abbreviated as `LL'
+to denote the language's main dialect. For example, `de' is equivalent
+to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT'
+(Portuguese as spoken in Portugal) in this context.
+
+Translating Teams
+=================
+
+For the Free Translation Project to be a success, we need interested
+people who like their own language and write it well, and who are also
+able to synergize with other translators speaking the same language.
+Each translation team has its own mailing list. The up-to-date list of
+teams can be found at the Free Translation Project's homepage,
+`http://www.iro.umontreal.ca/contrib/po/HTML/', in the "National teams"
+area.
+
+ If you'd like to volunteer to _work_ at translating messages, you
+should become a member of the translating team for your own language.
+The subscribing address is _not_ the same as the list itself, it has
+`-request' appended. For example, speakers of Swedish can send a
+message to `sv-request@li.org', having this message body:
+
+ subscribe
+
+ Keep in mind that team members are expected to participate
+_actively_ in translations, or at solving translational difficulties,
+rather than merely lurking around. If your team does not exist yet and
+you want to start one, or if you are unsure about what to do or how to
+get started, please write to `translation@iro.umontreal.ca' to reach the
+coordinator for all translator teams.
+
+ The English team is special. It works at improving and uniformizing
+the terminology in use. Proven linguistic skill are praised more than
+programming skill, here.
+
+Available Packages
+==================
+
+Languages are not equally supported in all packages. The following
+matrix shows the current state of internationalization, as of January
+2004. The matrix shows, in regard of each package, for which languages
+PO files have been submitted to translation coordination, with a
+translation percentage of at least 50%.
+
+ Ready PO files af am ar az be bg bs ca cs da de el en en_GB eo es
+ +----------------------------------------------------+
+ a2ps | [] [] [] [] |
+ aegis | () |
+ ant-phone | () |
+ anubis | |
+ ap-utils | |
+ aspell | [] |
+ bash | [] [] [] [] |
+ batchelor | |
+ bfd | [] [] |
+ binutils | [] [] |
+ bison | [] [] [] |
+ bluez-pin | [] [] [] |
+ clisp | |
+ clisp | [] [] [] |
+ console-tools | [] [] |
+ coreutils | [] [] [] [] |
+ cpio | [] [] [] |
+ darkstat | [] () [] |
+ diffutils | [] [] [] [] [] [] [] |
+ e2fsprogs | [] [] [] |
+ enscript | [] [] [] [] |
+ error | [] [] [] [] [] |
+ fetchmail | [] () [] [] [] [] |
+ fileutils | [] [] [] |
+ findutils | [] [] [] [] [] [] [] |
+ flex | [] [] [] [] |
+ fslint | |
+ gas | [] |
+ gawk | [] [] [] [] |
+ gbiff | [] |
+ gcal | [] |
+ gcc | [] [] |
+ gettext | [] [] [] [] [] |
+ gettext-examples | [] [] [] [] |
+ gettext-runtime | [] [] [] [] [] |
+ gettext-tools | [] [] [] |
+ gimp-print | [] [] [] [] [] |
+ gliv | |
+ glunarclock | [] [] |
+ gnubiff | [] |
+ gnucash | [] () [] [] |
+ gnucash-glossary | [] () [] |
+ gnupg | [] () [] [] [] [] |
+ gpe-aerial | [] |
+ gpe-beam | [] [] |
+ gpe-calendar | [] [] |
+ gpe-clock | [] [] |
+ gpe-conf | [] [] |
+ gpe-contacts | [] [] |
+ gpe-edit | [] |
+ gpe-go | [] |
+ gpe-login | [] [] |
+ gpe-ownerinfo | [] [] |
+ gpe-sketchbook | [] [] |
+ gpe-su | [] [] |
+ gpe-taskmanager | [] [] |
+ gpe-timesheet | [] |
+ gpe-today | [] [] |
+ gpe-todo | [] [] |
+ gphoto2 | [] [] [] [] |
+ gprof | [] [] [] |
+ gpsdrive | () () () |
+ gramadoir | [] |
+ grep | [] [] [] [] [] [] |
+ gretl | [] |
+ gtick | [] () |
+ hello | [] [] [] [] [] [] |
+ id-utils | [] [] |
+ indent | [] [] [] [] |
+ iso_3166 | [] [] [] [] [] [] [] [] [] [] |
+ iso_3166_1 | [] [] [] [] [] [] |
+ iso_3166_2 | |
+ iso_3166_3 | [] |
+ iso_4217 | [] [] [] [] |
+ iso_639 | |
+ jpilot | [] [] [] |
+ jtag | |
+ jwhois | [] |
+ kbd | [] [] [] [] [] |
+ latrine | () |
+ ld | [] [] |
+ libc | [] [] [] [] [] [] |
+ libgpewidget | [] [] |
+ libiconv | [] [] [] [] [] |
+ lifelines | [] () |
+ lilypond | [] |
+ lingoteach | |
+ lingoteach_lessons | () () |
+ lynx | [] [] [] [] |
+ m4 | [] [] [] [] |
+ mailutils | [] [] |
+ make | [] [] [] |
+ man-db | [] () [] [] () |
+ minicom | [] [] [] |
+ mysecretdiary | [] [] [] |
+ nano | [] () [] [] [] |
+ nano_1_0 | [] () [] [] [] |
+ opcodes | [] |
+ parted | [] [] [] [] [] |
+ ptx | [] [] [] [] [] |
+ python | |
+ radius | [] |
+ recode | [] [] [] [] [] [] [] |
+ rpm | [] [] |
+ screem | |
+ scrollkeeper | [] [] [] [] [] [] |
+ sed | [] [] [] [] [] [] |
+ sh-utils | [] [] [] |
+ shared-mime-info | |
+ sharutils | [] [] [] [] [] [] |
+ silky | () |
+ skencil | [] () [] |
+ sketch | [] () [] |
+ soundtracker | [] [] [] |
+ sp | [] |
+ tar | [] [] [] [] |
+ texinfo | [] [] [] |
+ textutils | [] [] [] [] |
+ tin | () () |
+ tp-robot | |
+ tuxpaint | [] [] [] [] [] [] [] |
+ unicode-han-tra... | |
+ unicode-transla... | |
+ util-linux | [] [] [] [] [] |
+ vorbis-tools | [] [] [] [] |
+ wastesedge | () |
+ wdiff | [] [] [] [] |
+ wget | [] [] [] [] [] [] |
+ xchat | [] [] [] [] |
+ xfree86_xkb_xml | [] [] |
+ xpad | [] |
+ +----------------------------------------------------+
+ af am ar az be bg bs ca cs da de el en en_GB eo es
+ 4 0 0 1 9 4 1 40 41 60 78 17 1 5 13 68
+
+ et eu fa fi fr ga gl he hr hu id is it ja ko lg
+ +-------------------------------------------------+
+ a2ps | [] [] [] () () |
+ aegis | |
+ ant-phone | [] |
+ anubis | [] |
+ ap-utils | [] |
+ aspell | [] [] |
+ bash | [] [] |
+ batchelor | [] [] |
+ bfd | [] |
+ binutils | [] [] |
+ bison | [] [] [] [] |
+ bluez-pin | [] [] [] [] [] |
+ clisp | |
+ clisp | [] |
+ console-tools | |
+ coreutils | [] [] [] [] [] [] |
+ cpio | [] [] [] [] |
+ darkstat | () [] [] [] |
+ diffutils | [] [] [] [] [] [] [] |
+ e2fsprogs | |
+ enscript | [] [] |
+ error | [] [] [] [] |
+ fetchmail | [] |
+ fileutils | [] [] [] [] [] [] |
+ findutils | [] [] [] [] [] [] [] [] [] [] [] |
+ flex | [] [] [] |
+ fslint | [] |
+ gas | [] |
+ gawk | [] [] [] |
+ gbiff | [] |
+ gcal | [] |
+ gcc | [] |
+ gettext | [] [] [] |
+ gettext-examples | [] [] |
+ gettext-runtime | [] [] [] [] [] |
+ gettext-tools | [] [] [] |
+ gimp-print | [] [] |
+ gliv | () |
+ glunarclock | [] [] [] [] |
+ gnubiff | [] |
+ gnucash | () [] |
+ gnucash-glossary | [] |
+ gnupg | [] [] [] [] [] [] [] |
+ gpe-aerial | [] |
+ gpe-beam | [] |
+ gpe-calendar | [] [] [] |
+ gpe-clock | [] |
+ gpe-conf | [] |
+ gpe-contacts | [] [] |
+ gpe-edit | [] [] |
+ gpe-go | [] |
+ gpe-login | [] [] |
+ gpe-ownerinfo | [] [] [] |
+ gpe-sketchbook | [] |
+ gpe-su | [] |
+ gpe-taskmanager | [] |
+ gpe-timesheet | [] [] [] |
+ gpe-today | [] [] |
+ gpe-todo | [] [] |
+ gphoto2 | [] [] [] |
+ gprof | [] [] |
+ gpsdrive | () () () |
+ gramadoir | [] [] |
+ grep | [] [] [] [] [] [] [] [] [] [] [] |
+ gretl | [] [] |
+ gtick | [] [] [] |
+ hello | [] [] [] [] [] [] [] [] [] [] [] [] [] |
+ id-utils | [] [] [] [] |
+ indent | [] [] [] [] [] [] [] [] [] |
+ iso_3166 | [] [] [] [] [] [] [] |
+ iso_3166_1 | [] [] [] [] [] |
+ iso_3166_2 | |
+ iso_3166_3 | |
+ iso_4217 | [] [] [] [] [] [] |
+ iso_639 | |
+ jpilot | [] () |
+ jtag | [] |
+ jwhois | [] [] [] [] |
+ kbd | [] |
+ latrine | [] |
+ ld | [] |
+ libc | [] [] [] [] [] [] |
+ libgpewidget | [] [] [] [] |
+ libiconv | [] [] [] [] [] [] [] [] [] |
+ lifelines | () |
+ lilypond | [] |
+ lingoteach | [] [] |
+ lingoteach_lessons | |
+ lynx | [] [] [] [] |
+ m4 | [] [] [] [] |
+ mailutils | |
+ make | [] [] [] [] [] [] |
+ man-db | () () |
+ minicom | [] [] [] [] |
+ mysecretdiary | [] [] |
+ nano | [] [] [] [] |
+ nano_1_0 | [] [] [] [] |
+ opcodes | [] |
+ parted | [] [] [] |
+ ptx | [] [] [] [] [] [] [] |
+ python | |
+ radius | [] |
+ recode | [] [] [] [] [] [] |
+ rpm | [] [] |
+ screem | |
+ scrollkeeper | [] |
+ sed | [] [] [] [] [] [] [] [] [] |
+ sh-utils | [] [] [] [] [] [] [] |
+ shared-mime-info | [] [] [] |
+ sharutils | [] [] [] [] [] |
+ silky | () [] () () |
+ skencil | [] |
+ sketch | [] |
+ soundtracker | [] [] |
+ sp | [] () |
+ tar | [] [] [] [] [] [] [] [] [] |
+ texinfo | [] [] [] [] |
+ textutils | [] [] [] [] [] [] |
+ tin | [] () |
+ tp-robot | [] |
+ tuxpaint | [] [] [] [] [] [] [] [] [] |
+ unicode-han-tra... | |
+ unicode-transla... | [] [] |
+ util-linux | [] [] [] [] () [] |
+ vorbis-tools | [] |
+ wastesedge | () |
+ wdiff | [] [] [] [] [] [] |
+ wget | [] [] [] [] [] [] [] |
+ xchat | [] [] [] |
+ xfree86_xkb_xml | [] [] |
+ xpad | [] [] |
+ +-------------------------------------------------+
+ et eu fa fi fr ga gl he hr hu id is it ja ko lg
+ 22 2 1 26 106 28 24 8 10 41 33 1 26 33 12 0
+
+ lt lv mk mn ms mt nb nl nn no nso pl pt pt_BR ro ru
+ +-----------------------------------------------------+
+ a2ps | [] [] () () [] [] [] |
+ aegis | () () () |
+ ant-phone | [] [] |
+ anubis | [] [] [] [] [] [] |
+ ap-utils | [] () [] |
+ aspell | [] |
+ bash | [] [] [] |
+ batchelor | [] |
+ bfd | [] |
+ binutils | [] |
+ bison | [] [] [] [] [] |
+ bluez-pin | [] [] [] |
+ clisp | |
+ clisp | [] |
+ console-tools | [] |
+ coreutils | [] [] |
+ cpio | [] [] [] [] [] |
+ darkstat | [] [] [] [] |
+ diffutils | [] [] [] [] [] [] |
+ e2fsprogs | [] |
+ enscript | [] [] [] [] |
+ error | [] [] [] |
+ fetchmail | [] [] () [] |
+ fileutils | [] [] [] |
+ findutils | [] [] [] [] [] |
+ flex | [] [] [] [] |
+ fslint | [] [] |
+ gas | |
+ gawk | [] [] [] |
+ gbiff | [] [] |
+ gcal | |
+ gcc | |
+ gettext | [] [] [] |
+ gettext-examples | [] [] [] |
+ gettext-runtime | [] [] [] [] |
+ gettext-tools | [] [] |
+ gimp-print | [] |
+ gliv | [] [] [] |
+ glunarclock | [] [] [] [] |
+ gnubiff | [] |
+ gnucash | [] [] () [] |
+ gnucash-glossary | [] [] |
+ gnupg | [] |
+ gpe-aerial | [] [] [] [] |
+ gpe-beam | [] [] [] [] |
+ gpe-calendar | [] [] [] [] |
+ gpe-clock | [] [] [] [] |
+ gpe-conf | [] [] [] [] |
+ gpe-contacts | [] [] [] [] |
+ gpe-edit | [] [] [] [] |
+ gpe-go | [] [] [] |
+ gpe-login | [] [] [] [] |
+ gpe-ownerinfo | [] [] [] [] |
+ gpe-sketchbook | [] [] [] [] |
+ gpe-su | [] [] [] [] |
+ gpe-taskmanager | [] [] [] [] |
+ gpe-timesheet | [] [] [] [] |
+ gpe-today | [] [] [] [] |
+ gpe-todo | [] [] [] [] |
+ gphoto2 | [] |
+ gprof | [] [] |
+ gpsdrive | () () [] |
+ gramadoir | () [] |
+ grep | [] [] [] [] [] |
+ gretl | |
+ gtick | [] [] [] |
+ hello | [] [] [] [] [] [] [] [] [] [] |
+ id-utils | [] [] [] [] |
+ indent | [] [] [] [] |
+ iso_3166 | [] [] [] |
+ iso_3166_1 | [] [] |
+ iso_3166_2 | |
+ iso_3166_3 | [] |
+ iso_4217 | [] [] [] [] [] [] [] [] |
+ iso_639 | [] |
+ jpilot | () () |
+ jtag | |
+ jwhois | [] [] [] [] () |
+ kbd | [] [] [] |
+ latrine | [] |
+ ld | |
+ libc | [] [] [] [] |
+ libgpewidget | [] [] [] |
+ libiconv | [] [] [] [] [] |
+ lifelines | |
+ lilypond | |
+ lingoteach | |
+ lingoteach_lessons | |
+ lynx | [] [] [] |
+ m4 | [] [] [] [] [] |
+ mailutils | [] [] [] |
+ make | [] [] [] [] |
+ man-db | [] |
+ minicom | [] [] [] [] |
+ mysecretdiary | [] [] [] |
+ nano | [] [] [] [] [] |
+ nano_1_0 | [] [] [] [] [] [] |
+ opcodes | [] [] |
+ parted | [] [] [] [] |
+ ptx | [] [] [] [] [] [] [] [] |
+ python | |
+ radius | [] [] |
+ recode | [] [] [] [] |
+ rpm | [] [] [] |
+ screem | |
+ scrollkeeper | [] [] [] [] [] |
+ sed | [] [] [] |
+ sh-utils | [] [] |
+ shared-mime-info | [] [] |
+ sharutils | [] [] |
+ silky | () |
+ skencil | [] [] |
+ sketch | [] [] |
+ soundtracker | |
+ sp | |
+ tar | [] [] [] [] [] [] |
+ texinfo | [] [] [] [] |
+ textutils | [] [] |
+ tin | |
+ tp-robot | [] |
+ tuxpaint | [] [] [] [] [] [] [] [] |
+ unicode-han-tra... | |
+ unicode-transla... | |
+ util-linux | [] [] [] |
+ vorbis-tools | [] [] [] |
+ wastesedge | |
+ wdiff | [] [] [] [] [] |
+ wget | [] [] [] |
+ xchat | [] [] [] |
+ xfree86_xkb_xml | [] [] |
+ xpad | [] [] |
+ +-----------------------------------------------------+
+ lt lv mk mn ms mt nb nl nn no nso pl pt pt_BR ro ru
+ 1 2 0 3 12 0 10 69 6 7 1 40 26 36 76 63
+
+ sk sl sr sv ta th tr uk ven vi wa xh zh_CN zh_TW zu
+ +-----------------------------------------------------+
+ a2ps | [] [] [] [] | 16
+ aegis | | 0
+ ant-phone | | 3
+ anubis | [] [] | 9
+ ap-utils | () | 3
+ aspell | | 4
+ bash | | 9
+ batchelor | | 3
+ bfd | [] [] | 6
+ binutils | [] [] [] | 8
+ bison | [] [] | 14
+ bluez-pin | [] [] [] | 14
+ clisp | | 0
+ clisp | | 5
+ console-tools | | 3
+ coreutils | [] [] [] [] | 16
+ cpio | [] [] | 14
+ darkstat | [] [] [] () () | 12
+ diffutils | [] [] [] | 23
+ e2fsprogs | [] [] | 6
+ enscript | [] [] | 12
+ error | [] [] [] | 15
+ fetchmail | [] [] | 11
+ fileutils | [] [] [] [] [] | 17
+ findutils | [] [] [] [] [] [] | 29
+ flex | [] [] | 13
+ fslint | | 3
+ gas | [] | 3
+ gawk | [] [] | 12
+ gbiff | | 4
+ gcal | [] [] | 4
+ gcc | [] | 4
+ gettext | [] [] [] [] [] | 16
+ gettext-examples | [] [] [] [] [] | 14
+ gettext-runtime | [] [] [] [] [] [] [] [] | 22
+ gettext-tools | [] [] [] [] [] [] | 14
+ gimp-print | [] [] | 10
+ gliv | | 3
+ glunarclock | [] [] [] | 13
+ gnubiff | | 3
+ gnucash | [] [] | 9
+ gnucash-glossary | [] [] [] | 8
+ gnupg | [] [] [] [] | 17
+ gpe-aerial | [] | 7
+ gpe-beam | [] | 8
+ gpe-calendar | [] [] [] [] | 13
+ gpe-clock | [] [] [] | 10
+ gpe-conf | [] [] | 9
+ gpe-contacts | [] [] [] | 11
+ gpe-edit | [] [] [] [] [] | 12
+ gpe-go | | 5
+ gpe-login | [] [] [] [] [] | 13
+ gpe-ownerinfo | [] [] [] [] | 13
+ gpe-sketchbook | [] [] | 9
+ gpe-su | [] [] [] | 10
+ gpe-taskmanager | [] [] [] | 10
+ gpe-timesheet | [] [] [] [] | 12
+ gpe-today | [] [] [] [] [] | 13
+ gpe-todo | [] [] [] [] | 12
+ gphoto2 | [] [] [] | 11
+ gprof | [] [] | 9
+ gpsdrive | [] [] | 3
+ gramadoir | [] | 5
+ grep | [] [] [] [] | 26
+ gretl | | 3
+ gtick | | 7
+ hello | [] [] [] [] [] | 34
+ id-utils | [] [] | 12
+ indent | [] [] [] [] | 21
+ iso_3166 | [] [] [] [] [] [] [] | 27
+ iso_3166_1 | [] [] [] | 16
+ iso_3166_2 | | 0
+ iso_3166_3 | | 2
+ iso_4217 | [] [] [] [] [] [] | 24
+ iso_639 | | 1
+ jpilot | [] [] [] [] [] | 9
+ jtag | [] | 2
+ jwhois | () [] [] | 11
+ kbd | [] [] | 11
+ latrine | | 2
+ ld | [] [] | 5
+ libc | [] [] [] [] | 20
+ libgpewidget | [] [] [] [] | 13
+ libiconv | [] [] [] [] [] [] [] [] | 27
+ lifelines | [] | 2
+ lilypond | [] | 3
+ lingoteach | | 2
+ lingoteach_lessons | () | 0
+ lynx | [] [] [] | 14
+ m4 | [] [] | 15
+ mailutils | | 5
+ make | [] [] [] | 16
+ man-db | [] | 5
+ minicom | | 11
+ mysecretdiary | [] [] | 10
+ nano | [] [] [] [] | 17
+ nano_1_0 | [] [] [] | 17
+ opcodes | [] [] | 6
+ parted | [] [] [] | 15
+ ptx | [] [] | 22
+ python | | 0
+ radius | | 4
+ recode | [] [] [] | 20
+ rpm | [] [] | 9
+ screem | [] [] | 2
+ scrollkeeper | [] [] [] | 15
+ sed | [] [] [] [] [] [] | 24
+ sh-utils | [] [] | 14
+ shared-mime-info | [] [] | 7
+ sharutils | [] [] [] [] | 17
+ silky | () | 3
+ skencil | [] | 6
+ sketch | [] | 6
+ soundtracker | [] [] | 7
+ sp | [] | 3
+ tar | [] [] [] [] [] | 24
+ texinfo | [] [] [] | 14
+ textutils | [] [] [] [] | 16
+ tin | | 1
+ tp-robot | | 2
+ tuxpaint | [] [] [] [] [] | 29
+ unicode-han-tra... | | 0
+ unicode-transla... | | 2
+ util-linux | [] [] | 15
+ vorbis-tools | | 8
+ wastesedge | | 0
+ wdiff | [] [] [] | 18
+ wget | [] [] [] [] [] [] [] [] | 24
+ xchat | [] [] [] [] [] | 15
+ xfree86_xkb_xml | [] [] [] [] [] | 11
+ xpad | | 5
+ +-----------------------------------------------------+
+ 63 teams sk sl sr sv ta th tr uk ven vi wa xh zh_CN zh_TW zu
+ 131 domains 47 19 28 83 0 0 59 13 1 1 11 0 22 22 0 1373
+
+ Some counters in the preceding matrix are higher than the number of
+visible blocks let us expect. This is because a few extra PO files are
+used for implementing regional variants of languages, or language
+dialects.
+
+ For a PO file in the matrix above to be effective, the package to
+which it applies should also have been internationalized and
+distributed as such by its maintainer. There might be an observable
+lag between the mere existence a PO file and its wide availability in a
+distribution.
+
+ If January 2004 seems to be old, you may fetch a more recent copy of
+this `ABOUT-NLS' file on most GNU archive sites. The most up-to-date
+matrix with full percentage details can be found at
+`http://www.iro.umontreal.ca/contrib/po/HTML/matrix.html'.
+
+Using `gettext' in new packages
+===============================
+
+If you are writing a freely available program and want to
+internationalize it you are welcome to use GNU `gettext' in your
+package. Of course you have to respect the GNU Library General Public
+License which covers the use of the GNU `gettext' library. This means
+in particular that even non-free programs can use `libintl' as a shared
+library, whereas only free software can use `libintl' as a static
+library or use modified versions of `libintl'.
+
+ Once the sources are changed appropriately and the setup can handle
+the use of `gettext' the only thing missing are the translations. The
+Free Translation Project is also available for packages which are not
+developed inside the GNU project. Therefore the information given above
+applies also for every other Free Software Project. Contact
+`translation@iro.umontreal.ca' to make the `.pot' files available to
+the translation teams.
+
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..6152d89
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,59 @@
+This file is no longer maintained. Please see git log for the most
+up to date list about contributions.
+
+$ git clone git@gitlab.com:procps-ng/procps.git
+# cd procps
+$ git shortlog --no-merges -sne
+
+-- Old credits ---
+free:
+Brian Edmonds
+
+oldps:
+Branko Lankester <lankeste@fwi.uva.nl>
+Michael K. Johnson <johnsonm@redhat.com>
+Michael Shields <mjshield@nyx.cs.du.edu>
+Charles Blake <cblake@bbn.com>
+David Mossberger-Tang
+
+ps:
+Albert Cahalan <albert@users.sf.net>
+
+skill/kill/snice:
+Albert Cahalan <albert@users.sf.net>
+
+tload:
+Branko Lankester
+David Engel <david@ods.com>
+Michael K. Johnson <johnsonm@redhat.com>
+
+top:
+Jim Warner <warnerjc@worldnet.att.net>
+
+oldtop:
+Branko Lankester <lankeste@fwi.uva.nl>
+Roger Binns
+Robert Nation <nation@rocket.sanders.lockheed.com>
+Michael K. Johnson <johnsonm@redhat.com>
+Michael Shields <mjshield@nyx.cs.du.edu>
+Tim Janik <timj@gtk.org>
+Helmut Geyer <Helmut.Geyer@iwr.uni-heidelberg.de>
+George Bonser <george@captech.com>
+
+uptime:
+Larry Greenfield <greenfie@gauss.rutgers.edu>
+Michael K. Johnson <johnsonm@sunsite.unc.edu>
+David Cantrell <david.l.cantrell@gmail.com>
+
+vmstat:
+Henry Ware <al172@yfn.ysu.edu>.
+
+w:
+Larry Greenfield <greenfie@gauss.rutgers.edu>
+Michael K. Johnson <johnsonm@redhat.com>
+Charles Blake
+
+watch:
+Tony Rems <rembo@unisoft.com>
+Mike Coleman <mkc@acm.org>
+Jarrod Lowe <procps@rrod.net>
diff --git a/COPYING b/COPYING
new file mode 100644
index 0000000..d159169
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,339 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the program's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ 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 2 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 along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ <signature of Ty Coon>, 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/COPYING.LIB b/COPYING.LIB
new file mode 100644
index 0000000..12735e6
--- /dev/null
+++ b/COPYING.LIB
@@ -0,0 +1,481 @@
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1991 Free Software Foundation, Inc.
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+[This is the first released version of the library GPL. It is
+ numbered 2 because it goes with version 2 of the ordinary GPL.]
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+Licenses are intended to guarantee your freedom to share and change
+free software--to make sure the software is free for all its users.
+
+ This license, the Library General Public License, applies to some
+specially designated Free Software Foundation software, and to any
+other libraries whose authors decide to use it. You can use it for
+your libraries, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if
+you distribute copies of the library, or if you modify it.
+
+ For example, if you distribute copies of the library, whether gratis
+or for a fee, you must give the recipients all the rights that we gave
+you. You must make sure that they, too, receive or can get the source
+code. If you link a program with the library, you must provide
+complete object files to the recipients so that they can relink them
+with the library, after making changes to the library and recompiling
+it. And you must show them these terms so they know their rights.
+
+ Our method of protecting your rights has two steps: (1) copyright
+the library, and (2) offer you this license which gives you legal
+permission to copy, distribute and/or modify the library.
+
+ Also, for each distributor's protection, we want to make certain
+that everyone understands that there is no warranty for this free
+library. If the library is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original
+version, so that any problems introduced by others will not reflect on
+the original authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that companies distributing free
+software will individually obtain patent licenses, thus in effect
+transforming the program into proprietary software. To prevent this,
+we have made it clear that any patent must be licensed for everyone's
+free use or not licensed at all.
+
+ Most GNU software, including some libraries, is covered by the ordinary
+GNU General Public License, which was designed for utility programs. This
+license, the GNU Library General Public License, applies to certain
+designated libraries. This license is quite different from the ordinary
+one; be sure to read it in full, and don't assume that anything in it is
+the same as in the ordinary license.
+
+ The reason we have a separate public license for some libraries is that
+they blur the distinction we usually make between modifying or adding to a
+program and simply using it. Linking a program with a library, without
+changing the library, is in some sense simply using the library, and is
+analogous to running a utility program or application program. However, in
+a textual and legal sense, the linked executable is a combined work, a
+derivative of the original library, and the ordinary General Public License
+treats it as such.
+
+ Because of this blurred distinction, using the ordinary General
+Public License for libraries did not effectively promote software
+sharing, because most developers did not use the libraries. We
+concluded that weaker conditions might promote sharing better.
+
+ However, unrestricted linking of non-free programs would deprive the
+users of those programs of all benefit from the free status of the
+libraries themselves. This Library General Public License is intended to
+permit developers of non-free programs to use free libraries, while
+preserving your freedom as a user of such programs to change the free
+libraries that are incorporated in them. (We have not seen how to achieve
+this as regards changes in header files, but we have achieved it as regards
+changes in the actual functions of the Library.) The hope is that this
+will lead to faster development of free libraries.
+
+ The precise terms and conditions for copying, distribution and
+modification follow. Pay close attention to the difference between a
+"work based on the library" and a "work that uses the library". The
+former contains code derived from the library, while the latter only
+works together with the library.
+
+ Note that it is possible for a library to be covered by the ordinary
+General Public License rather than by this special one.
+
+ GNU LIBRARY GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License Agreement applies to any software library which
+contains a notice placed by the copyright holder or other authorized
+party saying it may be distributed under the terms of this Library
+General Public License (also called "this License"). Each licensee is
+addressed as "you".
+
+ A "library" means a collection of software functions and/or data
+prepared so as to be conveniently linked with application programs
+(which use some of those functions and data) to form executables.
+
+ The "Library", below, refers to any such software library or work
+which has been distributed under these terms. A "work based on the
+Library" means either the Library or any derivative work under
+copyright law: that is to say, a work containing the Library or a
+portion of it, either verbatim or with modifications and/or translated
+straightforwardly into another language. (Hereinafter, translation is
+included without limitation in the term "modification".)
+
+ "Source code" for a work means the preferred form of the work for
+making modifications to it. For a library, complete source code means
+all the source code for all modules it contains, plus any associated
+interface definition files, plus the scripts used to control compilation
+and installation of the library.
+
+ Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running a program using the Library is not restricted, and output from
+such a program is covered only if its contents constitute a work based
+on the Library (independent of the use of the Library in a tool for
+writing it). Whether that is true depends on what the Library does
+and what the program that uses the Library does.
+
+ 1. You may copy and distribute verbatim copies of the Library's
+complete source code as you receive it, in any medium, provided that
+you conspicuously and appropriately publish on each copy an
+appropriate copyright notice and disclaimer of warranty; keep intact
+all the notices that refer to this License and to the absence of any
+warranty; and distribute a copy of this License along with the
+Library.
+
+ You may charge a fee for the physical act of transferring a copy,
+and you may at your option offer warranty protection in exchange for a
+fee.
+
+ 2. You may modify your copy or copies of the Library or any portion
+of it, thus forming a work based on the Library, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) The modified work must itself be a software library.
+
+ b) You must cause the files modified to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ c) You must cause the whole of the work to be licensed at no
+ charge to all third parties under the terms of this License.
+
+ d) If a facility in the modified Library refers to a function or a
+ table of data to be supplied by an application program that uses
+ the facility, other than as an argument passed when the facility
+ is invoked, then you must make a good faith effort to ensure that,
+ in the event an application does not supply such function or
+ table, the facility still operates, and performs whatever part of
+ its purpose remains meaningful.
+
+ (For example, a function in a library to compute square roots has
+ a purpose that is entirely well-defined independent of the
+ application. Therefore, Subsection 2d requires that any
+ application-supplied function or table used by this function must
+ be optional: if the application does not supply it, the square
+ root function must still compute square roots.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Library,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Library, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote
+it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Library.
+
+In addition, mere aggregation of another work not based on the Library
+with the Library (or with a work based on the Library) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may opt to apply the terms of the ordinary GNU General Public
+License instead of this License to a given copy of the Library. To do
+this, you must alter all the notices that refer to this License, so
+that they refer to the ordinary GNU General Public License, version 2,
+instead of to this License. (If a newer version than version 2 of the
+ordinary GNU General Public License has appeared, then you can specify
+that version instead if you wish.) Do not make any other change in
+these notices.
+
+ Once this change is made in a given copy, it is irreversible for
+that copy, so the ordinary GNU General Public License applies to all
+subsequent copies and derivative works made from that copy.
+
+ This option is useful when you wish to copy part of the code of
+the Library into a program that is not a library.
+
+ 4. You may copy and distribute the Library (or a portion or
+derivative of it, under Section 2) in object code or executable form
+under the terms of Sections 1 and 2 above provided that you accompany
+it with the complete corresponding machine-readable source code, which
+must be distributed under the terms of Sections 1 and 2 above on a
+medium customarily used for software interchange.
+
+ If distribution of object code is made by offering access to copy
+from a designated place, then offering equivalent access to copy the
+source code from the same place satisfies the requirement to
+distribute the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 5. A program that contains no derivative of any portion of the
+Library, but is designed to work with the Library by being compiled or
+linked with it, is called a "work that uses the Library". Such a
+work, in isolation, is not a derivative work of the Library, and
+therefore falls outside the scope of this License.
+
+ However, linking a "work that uses the Library" with the Library
+creates an executable that is a derivative of the Library (because it
+contains portions of the Library), rather than a "work that uses the
+library". The executable is therefore covered by this License.
+Section 6 states terms for distribution of such executables.
+
+ When a "work that uses the Library" uses material from a header file
+that is part of the Library, the object code for the work may be a
+derivative work of the Library even though the source code is not.
+Whether this is true is especially significant if the work can be
+linked without the Library, or if the work is itself a library. The
+threshold for this to be true is not precisely defined by law.
+
+ If such an object file uses only numerical parameters, data
+structure layouts and accessors, and small macros and small inline
+functions (ten lines or less in length), then the use of the object
+file is unrestricted, regardless of whether it is legally a derivative
+work. (Executables containing this object code plus portions of the
+Library will still fall under Section 6.)
+
+ Otherwise, if the work is a derivative of the Library, you may
+distribute the object code for the work under the terms of Section 6.
+Any executables containing that work also fall under Section 6,
+whether or not they are linked directly with the Library itself.
+
+ 6. As an exception to the Sections above, you may also compile or
+link a "work that uses the Library" with the Library to produce a
+work containing portions of the Library, and distribute that work
+under terms of your choice, provided that the terms permit
+modification of the work for the customer's own use and reverse
+engineering for debugging such modifications.
+
+ You must give prominent notice with each copy of the work that the
+Library is used in it and that the Library and its use are covered by
+this License. You must supply a copy of this License. If the work
+during execution displays copyright notices, you must include the
+copyright notice for the Library among them, as well as a reference
+directing the user to the copy of this License. Also, you must do one
+of these things:
+
+ a) Accompany the work with the complete corresponding
+ machine-readable source code for the Library including whatever
+ changes were used in the work (which must be distributed under
+ Sections 1 and 2 above); and, if the work is an executable linked
+ with the Library, with the complete machine-readable "work that
+ uses the Library", as object code and/or source code, so that the
+ user can modify the Library and then relink to produce a modified
+ executable containing the modified Library. (It is understood
+ that the user who changes the contents of definitions files in the
+ Library will not necessarily be able to recompile the application
+ to use the modified definitions.)
+
+ b) Accompany the work with a written offer, valid for at
+ least three years, to give the same user the materials
+ specified in Subsection 6a, above, for a charge no more
+ than the cost of performing this distribution.
+
+ c) If distribution of the work is made by offering access to copy
+ from a designated place, offer equivalent access to copy the above
+ specified materials from the same place.
+
+ d) Verify that the user has already received a copy of these
+ materials or that you have already sent this user a copy.
+
+ For an executable, the required form of the "work that uses the
+Library" must include any data and utility programs needed for
+reproducing the executable from it. However, as a special exception,
+the source code distributed need not include anything that is normally
+distributed (in either source or binary form) with the major
+components (compiler, kernel, and so on) of the operating system on
+which the executable runs, unless that component itself accompanies
+the executable.
+
+ It may happen that this requirement contradicts the license
+restrictions of other proprietary libraries that do not normally
+accompany the operating system. Such a contradiction means you cannot
+use both them and the Library together in an executable that you
+distribute.
+
+ 7. You may place library facilities that are a work based on the
+Library side-by-side in a single library together with other library
+facilities not covered by this License, and distribute such a combined
+library, provided that the separate distribution of the work based on
+the Library and of the other library facilities is otherwise
+permitted, and provided that you do these two things:
+
+ a) Accompany the combined library with a copy of the same work
+ based on the Library, uncombined with any other library
+ facilities. This must be distributed under the terms of the
+ Sections above.
+
+ b) Give prominent notice with the combined library of the fact
+ that part of it is a work based on the Library, and explaining
+ where to find the accompanying uncombined form of the same work.
+
+ 8. You may not copy, modify, sublicense, link with, or distribute
+the Library except as expressly provided under this License. Any
+attempt otherwise to copy, modify, sublicense, link with, or
+distribute the Library is void, and will automatically terminate your
+rights under this License. However, parties who have received copies,
+or rights, from you under this License will not have their licenses
+terminated so long as such parties remain in full compliance.
+
+ 9. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Library or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Library (or any work based on the
+Library), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Library or works based on it.
+
+ 10. Each time you redistribute the Library (or any work based on the
+Library), the recipient automatically receives a license from the
+original licensor to copy, distribute, link with or modify the Library
+subject to these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 11. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Library at all. For example, if a patent
+license would not permit royalty-free redistribution of the Library by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Library.
+
+If any portion of this section is held invalid or unenforceable under any
+particular circumstance, the balance of the section is intended to apply,
+and the section as a whole is intended to apply in other circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 12. If the distribution and/or use of the Library is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Library under this License may add
+an explicit geographical distribution limitation excluding those countries,
+so that distribution is permitted only in or among countries not thus
+excluded. In such case, this License incorporates the limitation as if
+written in the body of this License.
+
+ 13. The Free Software Foundation may publish revised and/or new
+versions of the Library General Public License from time to time.
+Such new versions will be similar in spirit to the present version,
+but may differ in detail to address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Library
+specifies a version number of this License which applies to it and
+"any later version", you have the option of following the terms and
+conditions either of that version or of any later version published by
+the Free Software Foundation. If the Library does not specify a
+license version number, you may choose any version ever published by
+the Free Software Foundation.
+
+ 14. If you wish to incorporate parts of the Library into other free
+programs whose distribution conditions are incompatible with these,
+write to the author to ask for permission. For software which is
+copyrighted by the Free Software Foundation, write to the Free
+Software Foundation; we sometimes make exceptions for this. Our
+decision will be guided by the two goals of preserving the free status
+of all derivatives of our free software and of promoting the sharing
+and reuse of software generally.
+
+ NO WARRANTY
+
+ 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
+WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
+EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
+OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
+KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
+LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
+THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+ 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
+WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
+AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
+FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
+CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
+LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
+RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
+FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
+SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
+DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Libraries
+
+ If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change. You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+ To apply these terms, attach the following notices to the library. It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+ <one line to give the library's name and a brief idea of what it does.>
+ Copyright (C) <year> <name of author>
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library 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
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the
+ library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+ <signature of Ty Coon>, 1 April 1990
+ Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..19063d6
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,3 @@
+See git log.
+
+https://gitlab.com/procps-ng/procps/commits/master
diff --git a/INSTALL.md b/INSTALL.md
new file mode 100644
index 0000000..958b834
--- /dev/null
+++ b/INSTALL.md
@@ -0,0 +1,25 @@
+Installation Instructions for procps
+====================================
+Depending on what format you are using to get these files, you
+might need to run the `autogen.sh` program to create the
+configure script. If you have a configure script already then
+you might not need it.
+
+A typical installation would go something like
+
+ ./autogen.sh
+ ./configure
+ make
+ make install
+
+The configure script has a lot of options, so please have a read
+of `configure --help` to see what they are and what they are used
+for.
+
+Testing
+-------
+procps has a series of test scripts (and more are welcome if they
+are repeatable). You will need to install DejaGNU to run it and
+it is simply:
+
+ make check
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..f70c8fb
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,418 @@
+
+CYGWINFLAGS = $(LTLIBINTL)
+if CYGWIN
+usrbin_exec_PROGRAMS =
+endif
+
+AM_CPPFLAGS = \
+ -include $(top_builddir)/config.h \
+ -I$(top_srcdir)/local \
+ -I$(top_srcdir)/library/include \
+ -Wno-unused-result \
+ -DLOCALEDIR=\"$(localedir)\" \
+ @HARDEN_CFLAGS@
+
+AM_LDFLAGS = @HARDEN_LDFLAGS@
+
+PACKAGE_VERSION = @PACKAGE_VERSION@
+
+ACLOCAL_AMFLAGS = -I m4
+SUBDIRS = \
+ local \
+ po-man \
+ po \
+ testsuite
+
+AM_CFLAGS = -Ilibrary/include
+LDADD = ./library/libproc2.la $(CYGWINFLAGS)
+
+if CYGWIN
+AM_LDFLAGS += ./library/libproc2.la $(CYGWINFLAGS)
+endif
+
+transform =
+
+if !CYGWIN
+transform += s/pscommand/ps/; $(program_transform_name)
+sbin_PROGRAMS = \
+ src/sysctl
+else
+transform += s/pscommand/procps/; $(program_transform_name)
+endif
+
+if !CYGWIN
+bin_PROGRAMS = \
+ src/ps/pscommand \
+ src/free \
+ src/pgrep \
+ src/pkill \
+ src/pmap \
+ src/pwdx \
+ src/tload \
+ src/uptime \
+ src/vmstat
+if BUILD_PIDWAIT
+bin_PROGRAMS += src/pidwait
+endif
+else
+usrbin_exec_PROGRAMS += \
+ src/ps/pscommand \
+ src/free \
+ src/pgrep \
+ src/pkill \
+ src/pmap \
+ src/uptime \
+ src/vmstat
+endif
+
+lib_LTLIBRARIES = \
+ library/libproc2.la
+
+dist_man_MANS = \
+ man/free.1 \
+ man/pgrep.1 \
+ man/pkill.1 \
+ man/pmap.1 \
+ man/uptime.1 \
+ man/vmstat.8 \
+ man/procps.3 \
+ man/procps_pids.3 \
+ man/procps_misc.3
+
+if !CYGWIN
+dist_man_MANS += \
+ man/pwdx.1 \
+ man/tload.1 \
+ man/sysctl.8 \
+ man/sysctl.conf.5 \
+ man/ps.1
+
+if BUILD_PIDWAIT
+dist_man_MANS += man/pidwait.1
+endif
+endif
+
+EXTRA_DIST = \
+ .version \
+ autogen.sh \
+ COPYING.LIB \
+ local/git-version-gen \
+ doc/CodingStyle.md \
+ doc/TODO \
+ src/ps/HACKING \
+ src/ps/regression \
+ $(DIST_MAN_POTS)
+
+if !CYGWIN
+EXTRA_DIST += \
+ sysctl.conf
+endif
+
+procpsngdir = $(docdir)
+dist_procpsng_DATA = \
+ doc/bugs.md \
+ doc/FAQ \
+ doc/libproc.supp
+
+if BUILD_PIDOF
+if !CYGWIN
+bin_PROGRAMS += src/pidof
+else
+usrbin_exec_PROGRAMS += src/pidof
+endif
+dist_man_MANS += man/pidof.1
+src_pidof_SOURCES = src/pidof.c local/fileutils.c
+else
+ EXTRA_DIST += man/pidof.1
+endif
+
+if BUILD_KILL
+if CYGWIN
+transform += ;s/^kill/prockill/; $(program_transform_name)
+usrbin_exec_PROGRAMS += src/kill
+else
+bin_PROGRAMS += src/kill
+endif
+dist_man_MANS += man/kill.1
+src_kill_SOURCES = src/kill.c local/strutils.c local/fileutils.c local/signals.c
+src_kill_LDADD = $(LTLIBINTL)
+else
+ EXTRA_DIST += man/kill.1
+endif
+
+if BUILD_W
+if CYGWIN
+usrbin_exec_PROGRAMS += src/w
+else
+bin_PROGRAMS += src/w
+endif
+
+dist_man_MANS += man/w.1
+src_w_SOURCES = src/w.c local/fileutils.c
+else
+ EXTRA_DIST += man/w.1
+endif
+
+if WITH_NCURSES
+if !CYGWIN
+bin_PROGRAMS += \
+ src/watch \
+ src/top/top
+else
+usrbin_exec_PROGRAMS += \
+ src/watch \
+ src/top/top
+endif
+
+dist_man_MANS += \
+ man/watch.1 \
+ man/top.1
+if !CYGWIN
+bin_PROGRAMS += \
+ src/slabtop
+dist_man_MANS += \
+ man/slabtop.1
+src_slabtop_SOURCES = src/slabtop.c local/strutils.c local/fileutils.c
+src_slabtop_CFLAGS = @NCURSES_CFLAGS@
+src_slabtop_LDADD = $(LDADD) @NCURSES_LIBS@
+endif
+src_watch_SOURCES = src/watch.c local/strutils.c local/fileutils.c
+src_watch_CFLAGS = @NCURSES_CFLAGS@
+src_watch_LDADD = @NCURSES_LIBS@ $(CYGWINFLAGS)
+src_top_top_SOURCES = \
+ src/top/top.h \
+ src/top/top.c \
+ src/top/top_nls.h \
+ src/top/top_nls.c \
+ local/fileutils.c \
+ local/signals.c
+if CYGWIN
+src_top_top_SOURCES += local/strverscmp.c
+endif
+
+src_top_top_CFLAGS = @NCURSES_CFLAGS@
+src_top_top_LDADD = $(LDADD) @NCURSES_LIBS@ $(DL_LIB)
+endif
+
+if BUILD_SKILL
+if !CYGWIN
+bin_PROGRAMS += \
+ src/skill \
+ src/snice
+else
+usrbin_exec_PROGRAMS += \
+ src/skill \
+ src/snice
+endif
+src_skill_SOURCES = src/skill.c local/strutils.c local/fileutils.c local/signals.c
+src_snice_SOURCES = src/skill.c local/strutils.c local/fileutils.c local/signals.c
+dist_man_MANS += \
+ man/skill.1 \
+ man/snice.1
+else
+ EXTRA_DIST += \
+ man/skill.1 \
+ man/snice.1
+endif
+
+src_free_SOURCES = src/free.c local/strutils.c local/fileutils.c
+src_pgrep_SOURCES = src/pgrep.c local/fileutils.c local/signals.c
+src_pkill_SOURCES = src/pgrep.c local/fileutils.c local/signals.c
+src_pmap_SOURCES = src/pmap.c local/fileutils.c
+if BUILD_PIDWAIT
+src_pidwait_SOURCES = src/pgrep.c local/fileutils.c local/signals.c
+endif
+if !CYGWIN
+src_pwdx_SOURCES = src/pwdx.c local/fileutils.c
+src_pwdx_LDADD= $(CYGWINFLAGS)
+src_sysctl_SOURCES = \
+ src/sysctl.c \
+ local/fileutils.c \
+ local/procio.c
+src_sysctl_LDADD= $(LTLIBINTL)
+endif
+src_tload_SOURCES = src/tload.c local/strutils.c local/fileutils.c
+src_uptime_SOURCES = src/uptime.c local/fileutils.c
+src_vmstat_SOURCES = src/vmstat.c local/strutils.c local/fileutils.c
+
+
+# See http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
+LIBproc2_CURRENT=0
+LIBproc2_REVISION=2
+LIBproc2_AGE=0
+
+library_libproc2_la_LIBADD = $(LIB_KPARTS)
+
+if WITH_SYSTEMD
+library_libproc2_la_LIBADD += @SYSTEMD_LIBS@
+endif
+
+if WITH_ELOGIND
+library_libproc2_la_LIBADD += @ELOGIND_LIBS@
+endif
+
+library_libproc2_la_LDFLAGS = \
+ -version-info $(LIBproc2_CURRENT):$(LIBproc2_REVISION):$(LIBproc2_AGE) \
+ -no-undefined \
+ -Wl,--version-script=$(top_srcdir)/library/libproc2.sym
+
+library_libproc2_la_SOURCES = \
+ library/devname.c \
+ library/include/devname.h \
+ library/diskstats.c \
+ library/include/diskstats.h \
+ library/escape.c \
+ library/include/escape.h \
+ library/include/procps-private.h \
+ library/meminfo.c \
+ library/include/meminfo.h \
+ library/include/misc.h \
+ library/namespace.c \
+ library/numa.c \
+ library/include/numa.h \
+ library/pids.c \
+ library/include/pids.h \
+ library/pwcache.c \
+ library/include/pwcache.h \
+ library/readproc.c \
+ library/include/readproc.h \
+ library/slabinfo.c \
+ library/include/slabinfo.h \
+ library/stat.c \
+ library/include/stat.h \
+ library/sysinfo.c \
+ library/version.c \
+ library/vmstat.c \
+ library/include/vmstat.h \
+ library/wchan.c \
+ library/include/wchan.h \
+ library/uptime.c \
+ library/include/xtra-procps-debug.h
+
+library_libproc2_la_includedir = $(includedir)/libproc2/
+library_libproc2_la_include_HEADERS = \
+ library/include/diskstats.h \
+ library/include/meminfo.h \
+ library/include/misc.h \
+ library/include/pids.h \
+ library/include/slabinfo.h \
+ library/include/stat.h \
+ library/include/vmstat.h \
+ library/include/xtra-procps-debug.h
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = \
+ library/libproc2.pc
+
+EXTRA_DIST += library/libproc2.sym
+
+# ps/pscommand
+
+src_ps_pscommand_SOURCES = \
+ src/ps/common.h \
+ src/ps/display.c \
+ src/ps/global.c \
+ src/ps/help.c \
+ src/ps/output.c \
+ src/ps/parser.c \
+ src/ps/select.c \
+ src/ps/signames.c \
+ src/ps/sortformat.c \
+ src/ps/stacktrace.c \
+ local/fileutils.c \
+ local/signals.c
+
+
+# Test programs required for dejagnu or standalone testing
+check_PROGRAMS = \
+ src/tests/test_strutils \
+ src/tests/test_fileutils \
+ src/tests/test_process \
+ src/tests/test_strtod_nol \
+ src/tests/test_shm
+
+src_tests_test_strutils_SOURCES = src/tests/test_strutils.c local/strutils.c
+src_tests_test_strutils_LDADD = $(CYGWINFLAGS)
+src_tests_test_fileutils_SOURCES = src/tests/test_fileutils.c local/fileutils.c
+src_tests_test_fileutils_LDADD = $(CYGWINFLAGS)
+src_tests_test_process_SOURCES = src/tests/test_process.c
+src_tests_test_process_LDADD = $(CYGWINFLAGS)
+src_tests_test_strtod_nol_SOURCES = src/tests/test_strtod_nol.c local/strutils.c
+src_tests_test_strtod_nol_LDADD = $(CYGWINFLAGS)
+src_tests_test_shm_SOURCES = src/tests/test_shm.c local/strutils.c
+src_tests_test_shm_LDADD = $(CYGWINFLAGS)
+
+check_PROGRAMS += \
+ library/tests/test_Itemtables \
+ library/tests/test_pids \
+ library/tests/test_uptime \
+ library/tests/test_sysinfo \
+ library/tests/test_version \
+ library/tests/test_namespace
+
+library_tests_test_Itemtables_SOURCES = library/tests/test_Itemtables.c
+library_tests_test_Itemtables_LDADD = library/libproc2.la
+library_tests_test_pids_SOURCES = library/tests/test_pids.c
+library_tests_test_pids_LDADD = library/libproc2.la
+library_tests_test_uptime_SOURCES = library/tests/test_uptime.c
+library_tests_test_uptime_LDADD = library/libproc2.la
+library_tests_test_sysinfo_SOURCES = library/tests/test_sysinfo.c
+library_tests_test_sysinfo_LDADD = library/libproc2.la
+library_tests_test_version_SOURCES = library/tests/test_version.c
+library_tests_test_version_LDADD = library/libproc2.la
+library_tests_test_namespace_SOURCES = library/tests/test_namespace.c
+library_tests_test_namespace_LDADD = library/libproc2.la
+
+if CYGWIN
+ src_skill_LDADD = $(CYGWINFLAGS)
+ src_kill_LDADD = $(CYGWINFLAGS)
+ src_free_LDADD = $(CYGWINFLAGS)
+ src_pgrep_LDADD = $(CYGWINFLAGS)
+ src_pkill_LDADD = $(CYGWINFLAGS)
+ src_pidof_LDADD = $(CYGWINFLAGS)
+ src_pmap_LDADD = $(CYGWINFLAGS)
+ src_snice_LDADD = $(CYGWINFLAGS)
+ src_tload_LDADD = $(CYGWINFLAGS)
+ src_uptime_LDADD = $(CYGWINFLAGS)
+ src_w_LDADD = $(CYGWINFLAGS)
+ src_vmstat_LDADD = $(CYGWINFLAGS)
+endif
+
+if EXAMPLE_FILES
+if !CYGWIN
+sysconf_DATA = sysctl.conf
+endif
+endif
+
+BUILT_SOURCES = $(top_srcdir)/.version
+
+check-lib: clean
+ $(MAKE) CFLAGS=-DITEMTABLE_DEBUG library/tests/test_Itemtables
+ $(top_builddir)/library/tests/test_Itemtables
+ $(MAKE) clean &>/dev/null
+
+# Test programs not used by dejagnu but run directly
+TESTS = \
+ library/tests/test_pids \
+ library/tests/test_uptime \
+ library/tests/test_sysinfo \
+ library/tests/test_version \
+ library/tests/test_namespace \
+ src/tests/test_fileutils \
+ src/tests/test_strtod_nol
+
+# Automake should do this, but it doesn't
+check: $(check_PROGRAMS) $(PROGRAMS)
+
+$(top_srcdir)/.version:
+ touch $(top_srcdir)/.version
+ echo $(VERSION) > $@-t && mv $@-t $@
+dist-hook:
+ echo $(VERSION) > $(distdir)/.tarball-version
+
+get-trans:
+ echo "Getting the latest translations from translationproject.org..."
+ rsync -Lrtvz translationproject.org::tp/latest/procps-ng/ po
+ rsync -Lrtvz translationproject.org::tp/latest/procps-ng-man/ po-man
+ rm -f po-man/man.stamp
+ make -C po-man man.stamp
diff --git a/Makefile.in b/Makefile.in
new file mode 100644
index 0000000..24540aa
--- /dev/null
+++ b/Makefile.in
@@ -0,0 +1,3106 @@
+# Makefile.in generated by automake 1.16.5 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2021 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+
+
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+@CYGWIN_TRUE@usrbin_exec_PROGRAMS = src/ps/pscommand$(EXEEXT) \
+@CYGWIN_TRUE@ src/free$(EXEEXT) src/pgrep$(EXEEXT) \
+@CYGWIN_TRUE@ src/pkill$(EXEEXT) src/pmap$(EXEEXT) \
+@CYGWIN_TRUE@ src/uptime$(EXEEXT) src/vmstat$(EXEEXT) \
+@CYGWIN_TRUE@ $(am__EXEEXT_7) $(am__EXEEXT_8) $(am__EXEEXT_9) \
+@CYGWIN_TRUE@ $(am__EXEEXT_10) $(am__EXEEXT_11)
+@CYGWIN_TRUE@am__append_1 = ./library/libproc2.la $(CYGWINFLAGS)
+@CYGWIN_FALSE@am__append_2 = s/pscommand/ps/; $(program_transform_name)
+@CYGWIN_FALSE@sbin_PROGRAMS = src/sysctl$(EXEEXT)
+@CYGWIN_TRUE@am__append_3 = s/pscommand/procps/; $(program_transform_name)
+@CYGWIN_FALSE@bin_PROGRAMS = src/ps/pscommand$(EXEEXT) \
+@CYGWIN_FALSE@ src/free$(EXEEXT) src/pgrep$(EXEEXT) \
+@CYGWIN_FALSE@ src/pkill$(EXEEXT) src/pmap$(EXEEXT) \
+@CYGWIN_FALSE@ src/pwdx$(EXEEXT) src/tload$(EXEEXT) \
+@CYGWIN_FALSE@ src/uptime$(EXEEXT) src/vmstat$(EXEEXT) \
+@CYGWIN_FALSE@ $(am__EXEEXT_1) $(am__EXEEXT_2) $(am__EXEEXT_3) \
+@CYGWIN_FALSE@ $(am__EXEEXT_4) $(am__EXEEXT_5) $(am__EXEEXT_6)
+@BUILD_PIDWAIT_TRUE@@CYGWIN_FALSE@am__append_4 = src/pidwait
+@CYGWIN_FALSE@am__append_5 = \
+@CYGWIN_FALSE@ man/pwdx.1 \
+@CYGWIN_FALSE@ man/tload.1 \
+@CYGWIN_FALSE@ man/sysctl.8 \
+@CYGWIN_FALSE@ man/sysctl.conf.5 \
+@CYGWIN_FALSE@ man/ps.1
+
+@BUILD_PIDWAIT_TRUE@@CYGWIN_FALSE@am__append_6 = man/pidwait.1
+@CYGWIN_FALSE@am__append_7 = \
+@CYGWIN_FALSE@ sysctl.conf
+
+@BUILD_PIDOF_TRUE@@CYGWIN_FALSE@am__append_8 = src/pidof
+@BUILD_PIDOF_TRUE@@CYGWIN_TRUE@am__append_9 = src/pidof
+@BUILD_PIDOF_TRUE@am__append_10 = man/pidof.1
+@BUILD_PIDOF_FALSE@am__append_11 = man/pidof.1
+@BUILD_KILL_TRUE@@CYGWIN_TRUE@am__append_12 = ;s/^kill/prockill/; $(program_transform_name)
+@BUILD_KILL_TRUE@@CYGWIN_TRUE@am__append_13 = src/kill
+@BUILD_KILL_TRUE@@CYGWIN_FALSE@am__append_14 = src/kill
+@BUILD_KILL_TRUE@am__append_15 = man/kill.1
+@BUILD_KILL_FALSE@am__append_16 = man/kill.1
+@BUILD_W_TRUE@@CYGWIN_TRUE@am__append_17 = src/w
+@BUILD_W_TRUE@@CYGWIN_FALSE@am__append_18 = src/w
+@BUILD_W_TRUE@am__append_19 = man/w.1
+@BUILD_W_FALSE@am__append_20 = man/w.1
+@CYGWIN_FALSE@@WITH_NCURSES_TRUE@am__append_21 = src/watch src/top/top \
+@CYGWIN_FALSE@@WITH_NCURSES_TRUE@ src/slabtop
+@CYGWIN_TRUE@@WITH_NCURSES_TRUE@am__append_22 = \
+@CYGWIN_TRUE@@WITH_NCURSES_TRUE@ src/watch \
+@CYGWIN_TRUE@@WITH_NCURSES_TRUE@ src/top/top
+
+@WITH_NCURSES_TRUE@am__append_23 = \
+@WITH_NCURSES_TRUE@ man/watch.1 \
+@WITH_NCURSES_TRUE@ man/top.1
+
+@CYGWIN_FALSE@@WITH_NCURSES_TRUE@am__append_24 = \
+@CYGWIN_FALSE@@WITH_NCURSES_TRUE@ man/slabtop.1
+
+@CYGWIN_TRUE@@WITH_NCURSES_TRUE@am__append_25 = local/strverscmp.c
+@BUILD_SKILL_TRUE@@CYGWIN_FALSE@am__append_26 = \
+@BUILD_SKILL_TRUE@@CYGWIN_FALSE@ src/skill \
+@BUILD_SKILL_TRUE@@CYGWIN_FALSE@ src/snice
+
+@BUILD_SKILL_TRUE@@CYGWIN_TRUE@am__append_27 = \
+@BUILD_SKILL_TRUE@@CYGWIN_TRUE@ src/skill \
+@BUILD_SKILL_TRUE@@CYGWIN_TRUE@ src/snice
+
+@BUILD_SKILL_TRUE@am__append_28 = \
+@BUILD_SKILL_TRUE@ man/skill.1 \
+@BUILD_SKILL_TRUE@ man/snice.1
+
+@BUILD_SKILL_FALSE@am__append_29 = \
+@BUILD_SKILL_FALSE@ man/skill.1 \
+@BUILD_SKILL_FALSE@ man/snice.1
+
+@WITH_SYSTEMD_TRUE@am__append_30 = @SYSTEMD_LIBS@
+@WITH_ELOGIND_TRUE@am__append_31 = @ELOGIND_LIBS@
+check_PROGRAMS = src/tests/test_strutils$(EXEEXT) \
+ src/tests/test_fileutils$(EXEEXT) \
+ src/tests/test_process$(EXEEXT) \
+ src/tests/test_strtod_nol$(EXEEXT) src/tests/test_shm$(EXEEXT) \
+ library/tests/test_Itemtables$(EXEEXT) \
+ library/tests/test_pids$(EXEEXT) \
+ library/tests/test_uptime$(EXEEXT) \
+ library/tests/test_sysinfo$(EXEEXT) \
+ library/tests/test_version$(EXEEXT) \
+ library/tests/test_namespace$(EXEEXT)
+TESTS = library/tests/test_pids$(EXEEXT) \
+ library/tests/test_uptime$(EXEEXT) \
+ library/tests/test_sysinfo$(EXEEXT) \
+ library/tests/test_version$(EXEEXT) \
+ library/tests/test_namespace$(EXEEXT) \
+ src/tests/test_fileutils$(EXEEXT) \
+ src/tests/test_strtod_nol$(EXEEXT)
+subdir = .
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
+ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
+ $(am__configure_deps) $(dist_procpsng_DATA) \
+ $(library_libproc2_la_include_HEADERS) $(am__DIST_COMMON)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = config.h
+CONFIG_CLEAN_FILES = library/libproc2.pc
+CONFIG_CLEAN_VPATH_FILES =
+@BUILD_PIDWAIT_TRUE@@CYGWIN_FALSE@am__EXEEXT_1 = src/pidwait$(EXEEXT)
+@BUILD_PIDOF_TRUE@@CYGWIN_FALSE@am__EXEEXT_2 = src/pidof$(EXEEXT)
+@BUILD_KILL_TRUE@@CYGWIN_FALSE@am__EXEEXT_3 = src/kill$(EXEEXT)
+@BUILD_W_TRUE@@CYGWIN_FALSE@am__EXEEXT_4 = src/w$(EXEEXT)
+@CYGWIN_FALSE@@WITH_NCURSES_TRUE@am__EXEEXT_5 = src/watch$(EXEEXT) \
+@CYGWIN_FALSE@@WITH_NCURSES_TRUE@ src/top/top$(EXEEXT) \
+@CYGWIN_FALSE@@WITH_NCURSES_TRUE@ src/slabtop$(EXEEXT)
+@BUILD_SKILL_TRUE@@CYGWIN_FALSE@am__EXEEXT_6 = src/skill$(EXEEXT) \
+@BUILD_SKILL_TRUE@@CYGWIN_FALSE@ src/snice$(EXEEXT)
+am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)" \
+ "$(DESTDIR)$(usrbin_execdir)" "$(DESTDIR)$(libdir)" \
+ "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man3dir)" \
+ "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)" \
+ "$(DESTDIR)$(procpsngdir)" "$(DESTDIR)$(pkgconfigdir)" \
+ "$(DESTDIR)$(sysconfdir)" \
+ "$(DESTDIR)$(library_libproc2_la_includedir)"
+@BUILD_PIDOF_TRUE@@CYGWIN_TRUE@am__EXEEXT_7 = src/pidof$(EXEEXT)
+@BUILD_KILL_TRUE@@CYGWIN_TRUE@am__EXEEXT_8 = src/kill$(EXEEXT)
+@BUILD_W_TRUE@@CYGWIN_TRUE@am__EXEEXT_9 = src/w$(EXEEXT)
+@CYGWIN_TRUE@@WITH_NCURSES_TRUE@am__EXEEXT_10 = src/watch$(EXEEXT) \
+@CYGWIN_TRUE@@WITH_NCURSES_TRUE@ src/top/top$(EXEEXT)
+@BUILD_SKILL_TRUE@@CYGWIN_TRUE@am__EXEEXT_11 = src/skill$(EXEEXT) \
+@BUILD_SKILL_TRUE@@CYGWIN_TRUE@ src/snice$(EXEEXT)
+PROGRAMS = $(bin_PROGRAMS) $(sbin_PROGRAMS) $(usrbin_exec_PROGRAMS)
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+ srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+ for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+ $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+ if (++n[$$2] == $(am__install_max)) \
+ { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+ END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+ sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+ sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
+am__uninstall_files_from_dir = { \
+ test -z "$$files" \
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+ $(am__cd) "$$dir" && rm -f $$files; }; \
+ }
+LTLIBRARIES = $(lib_LTLIBRARIES)
+am__DEPENDENCIES_1 =
+library_libproc2_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \
+ $(am__DEPENDENCIES_1)
+am__dirstamp = $(am__leading_dot)dirstamp
+am_library_libproc2_la_OBJECTS = library/devname.lo \
+ library/diskstats.lo library/escape.lo library/meminfo.lo \
+ library/namespace.lo library/numa.lo library/pids.lo \
+ library/pwcache.lo library/readproc.lo library/slabinfo.lo \
+ library/stat.lo library/sysinfo.lo library/version.lo \
+ library/vmstat.lo library/wchan.lo library/uptime.lo
+library_libproc2_la_OBJECTS = $(am_library_libproc2_la_OBJECTS)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+library_libproc2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
+ $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
+ $(AM_CFLAGS) $(CFLAGS) $(library_libproc2_la_LDFLAGS) \
+ $(LDFLAGS) -o $@
+am_library_tests_test_Itemtables_OBJECTS = \
+ library/tests/test_Itemtables.$(OBJEXT)
+library_tests_test_Itemtables_OBJECTS = \
+ $(am_library_tests_test_Itemtables_OBJECTS)
+library_tests_test_Itemtables_DEPENDENCIES = library/libproc2.la
+am_library_tests_test_namespace_OBJECTS = \
+ library/tests/test_namespace.$(OBJEXT)
+library_tests_test_namespace_OBJECTS = \
+ $(am_library_tests_test_namespace_OBJECTS)
+library_tests_test_namespace_DEPENDENCIES = library/libproc2.la
+am_library_tests_test_pids_OBJECTS = \
+ library/tests/test_pids.$(OBJEXT)
+library_tests_test_pids_OBJECTS = \
+ $(am_library_tests_test_pids_OBJECTS)
+library_tests_test_pids_DEPENDENCIES = library/libproc2.la
+am_library_tests_test_sysinfo_OBJECTS = \
+ library/tests/test_sysinfo.$(OBJEXT)
+library_tests_test_sysinfo_OBJECTS = \
+ $(am_library_tests_test_sysinfo_OBJECTS)
+library_tests_test_sysinfo_DEPENDENCIES = library/libproc2.la
+am_library_tests_test_uptime_OBJECTS = \
+ library/tests/test_uptime.$(OBJEXT)
+library_tests_test_uptime_OBJECTS = \
+ $(am_library_tests_test_uptime_OBJECTS)
+library_tests_test_uptime_DEPENDENCIES = library/libproc2.la
+am_library_tests_test_version_OBJECTS = \
+ library/tests/test_version.$(OBJEXT)
+library_tests_test_version_OBJECTS = \
+ $(am_library_tests_test_version_OBJECTS)
+library_tests_test_version_DEPENDENCIES = library/libproc2.la
+am_src_free_OBJECTS = src/free.$(OBJEXT) local/strutils.$(OBJEXT) \
+ local/fileutils.$(OBJEXT)
+src_free_OBJECTS = $(am_src_free_OBJECTS)
+src_free_LDADD = $(LDADD)
+am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
+src_free_DEPENDENCIES = ./library/libproc2.la $(am__DEPENDENCIES_2)
+am__src_kill_SOURCES_DIST = src/kill.c local/strutils.c \
+ local/fileutils.c local/signals.c
+@BUILD_KILL_TRUE@am_src_kill_OBJECTS = src/kill.$(OBJEXT) \
+@BUILD_KILL_TRUE@ local/strutils.$(OBJEXT) \
+@BUILD_KILL_TRUE@ local/fileutils.$(OBJEXT) \
+@BUILD_KILL_TRUE@ local/signals.$(OBJEXT)
+src_kill_OBJECTS = $(am_src_kill_OBJECTS)
+@BUILD_KILL_TRUE@src_kill_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_src_pgrep_OBJECTS = src/pgrep.$(OBJEXT) local/fileutils.$(OBJEXT) \
+ local/signals.$(OBJEXT)
+src_pgrep_OBJECTS = $(am_src_pgrep_OBJECTS)
+src_pgrep_LDADD = $(LDADD)
+src_pgrep_DEPENDENCIES = ./library/libproc2.la $(am__DEPENDENCIES_2)
+am__src_pidof_SOURCES_DIST = src/pidof.c local/fileutils.c
+@BUILD_PIDOF_TRUE@am_src_pidof_OBJECTS = src/pidof.$(OBJEXT) \
+@BUILD_PIDOF_TRUE@ local/fileutils.$(OBJEXT)
+src_pidof_OBJECTS = $(am_src_pidof_OBJECTS)
+src_pidof_LDADD = $(LDADD)
+src_pidof_DEPENDENCIES = ./library/libproc2.la $(am__DEPENDENCIES_2)
+am__src_pidwait_SOURCES_DIST = src/pgrep.c local/fileutils.c \
+ local/signals.c
+@BUILD_PIDWAIT_TRUE@am_src_pidwait_OBJECTS = src/pgrep.$(OBJEXT) \
+@BUILD_PIDWAIT_TRUE@ local/fileutils.$(OBJEXT) \
+@BUILD_PIDWAIT_TRUE@ local/signals.$(OBJEXT)
+src_pidwait_OBJECTS = $(am_src_pidwait_OBJECTS)
+src_pidwait_LDADD = $(LDADD)
+src_pidwait_DEPENDENCIES = ./library/libproc2.la $(am__DEPENDENCIES_2)
+am_src_pkill_OBJECTS = src/pgrep.$(OBJEXT) local/fileutils.$(OBJEXT) \
+ local/signals.$(OBJEXT)
+src_pkill_OBJECTS = $(am_src_pkill_OBJECTS)
+src_pkill_LDADD = $(LDADD)
+src_pkill_DEPENDENCIES = ./library/libproc2.la $(am__DEPENDENCIES_2)
+am_src_pmap_OBJECTS = src/pmap.$(OBJEXT) local/fileutils.$(OBJEXT)
+src_pmap_OBJECTS = $(am_src_pmap_OBJECTS)
+src_pmap_LDADD = $(LDADD)
+src_pmap_DEPENDENCIES = ./library/libproc2.la $(am__DEPENDENCIES_2)
+am_src_ps_pscommand_OBJECTS = src/ps/display.$(OBJEXT) \
+ src/ps/global.$(OBJEXT) src/ps/help.$(OBJEXT) \
+ src/ps/output.$(OBJEXT) src/ps/parser.$(OBJEXT) \
+ src/ps/select.$(OBJEXT) src/ps/signames.$(OBJEXT) \
+ src/ps/sortformat.$(OBJEXT) src/ps/stacktrace.$(OBJEXT) \
+ local/fileutils.$(OBJEXT) local/signals.$(OBJEXT)
+src_ps_pscommand_OBJECTS = $(am_src_ps_pscommand_OBJECTS)
+src_ps_pscommand_LDADD = $(LDADD)
+src_ps_pscommand_DEPENDENCIES = ./library/libproc2.la \
+ $(am__DEPENDENCIES_2)
+am__src_pwdx_SOURCES_DIST = src/pwdx.c local/fileutils.c
+@CYGWIN_FALSE@am_src_pwdx_OBJECTS = src/pwdx.$(OBJEXT) \
+@CYGWIN_FALSE@ local/fileutils.$(OBJEXT)
+src_pwdx_OBJECTS = $(am_src_pwdx_OBJECTS)
+@CYGWIN_FALSE@src_pwdx_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am__src_skill_SOURCES_DIST = src/skill.c local/strutils.c \
+ local/fileutils.c local/signals.c
+@BUILD_SKILL_TRUE@am_src_skill_OBJECTS = src/skill.$(OBJEXT) \
+@BUILD_SKILL_TRUE@ local/strutils.$(OBJEXT) \
+@BUILD_SKILL_TRUE@ local/fileutils.$(OBJEXT) \
+@BUILD_SKILL_TRUE@ local/signals.$(OBJEXT)
+src_skill_OBJECTS = $(am_src_skill_OBJECTS)
+src_skill_LDADD = $(LDADD)
+src_skill_DEPENDENCIES = ./library/libproc2.la $(am__DEPENDENCIES_2)
+am__src_slabtop_SOURCES_DIST = src/slabtop.c local/strutils.c \
+ local/fileutils.c
+@CYGWIN_FALSE@@WITH_NCURSES_TRUE@am_src_slabtop_OBJECTS = src/slabtop-slabtop.$(OBJEXT) \
+@CYGWIN_FALSE@@WITH_NCURSES_TRUE@ local/src_slabtop-strutils.$(OBJEXT) \
+@CYGWIN_FALSE@@WITH_NCURSES_TRUE@ local/src_slabtop-fileutils.$(OBJEXT)
+src_slabtop_OBJECTS = $(am_src_slabtop_OBJECTS)
+am__DEPENDENCIES_3 = ./library/libproc2.la $(am__DEPENDENCIES_2)
+@CYGWIN_FALSE@@WITH_NCURSES_TRUE@src_slabtop_DEPENDENCIES = \
+@CYGWIN_FALSE@@WITH_NCURSES_TRUE@ $(am__DEPENDENCIES_3)
+src_slabtop_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(src_slabtop_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am__src_snice_SOURCES_DIST = src/skill.c local/strutils.c \
+ local/fileutils.c local/signals.c
+@BUILD_SKILL_TRUE@am_src_snice_OBJECTS = src/skill.$(OBJEXT) \
+@BUILD_SKILL_TRUE@ local/strutils.$(OBJEXT) \
+@BUILD_SKILL_TRUE@ local/fileutils.$(OBJEXT) \
+@BUILD_SKILL_TRUE@ local/signals.$(OBJEXT)
+src_snice_OBJECTS = $(am_src_snice_OBJECTS)
+src_snice_LDADD = $(LDADD)
+src_snice_DEPENDENCIES = ./library/libproc2.la $(am__DEPENDENCIES_2)
+am__src_sysctl_SOURCES_DIST = src/sysctl.c local/fileutils.c \
+ local/procio.c
+@CYGWIN_FALSE@am_src_sysctl_OBJECTS = src/sysctl.$(OBJEXT) \
+@CYGWIN_FALSE@ local/fileutils.$(OBJEXT) local/procio.$(OBJEXT)
+src_sysctl_OBJECTS = $(am_src_sysctl_OBJECTS)
+@CYGWIN_FALSE@src_sysctl_DEPENDENCIES = $(am__DEPENDENCIES_1)
+am_src_tests_test_fileutils_OBJECTS = \
+ src/tests/test_fileutils.$(OBJEXT) local/fileutils.$(OBJEXT)
+src_tests_test_fileutils_OBJECTS = \
+ $(am_src_tests_test_fileutils_OBJECTS)
+src_tests_test_fileutils_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_src_tests_test_process_OBJECTS = src/tests/test_process.$(OBJEXT)
+src_tests_test_process_OBJECTS = $(am_src_tests_test_process_OBJECTS)
+src_tests_test_process_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_src_tests_test_shm_OBJECTS = src/tests/test_shm.$(OBJEXT) \
+ local/strutils.$(OBJEXT)
+src_tests_test_shm_OBJECTS = $(am_src_tests_test_shm_OBJECTS)
+src_tests_test_shm_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_src_tests_test_strtod_nol_OBJECTS = \
+ src/tests/test_strtod_nol.$(OBJEXT) local/strutils.$(OBJEXT)
+src_tests_test_strtod_nol_OBJECTS = \
+ $(am_src_tests_test_strtod_nol_OBJECTS)
+src_tests_test_strtod_nol_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_src_tests_test_strutils_OBJECTS = \
+ src/tests/test_strutils.$(OBJEXT) local/strutils.$(OBJEXT)
+src_tests_test_strutils_OBJECTS = \
+ $(am_src_tests_test_strutils_OBJECTS)
+src_tests_test_strutils_DEPENDENCIES = $(am__DEPENDENCIES_2)
+am_src_tload_OBJECTS = src/tload.$(OBJEXT) local/strutils.$(OBJEXT) \
+ local/fileutils.$(OBJEXT)
+src_tload_OBJECTS = $(am_src_tload_OBJECTS)
+src_tload_LDADD = $(LDADD)
+src_tload_DEPENDENCIES = ./library/libproc2.la $(am__DEPENDENCIES_2)
+am__src_top_top_SOURCES_DIST = src/top/top.h src/top/top.c \
+ src/top/top_nls.h src/top/top_nls.c local/fileutils.c \
+ local/signals.c local/strverscmp.c
+@CYGWIN_TRUE@@WITH_NCURSES_TRUE@am__objects_1 = local/src_top_top-strverscmp.$(OBJEXT)
+@WITH_NCURSES_TRUE@am_src_top_top_OBJECTS = src/top/top-top.$(OBJEXT) \
+@WITH_NCURSES_TRUE@ src/top/top-top_nls.$(OBJEXT) \
+@WITH_NCURSES_TRUE@ local/src_top_top-fileutils.$(OBJEXT) \
+@WITH_NCURSES_TRUE@ local/src_top_top-signals.$(OBJEXT) \
+@WITH_NCURSES_TRUE@ $(am__objects_1)
+src_top_top_OBJECTS = $(am_src_top_top_OBJECTS)
+@WITH_NCURSES_TRUE@src_top_top_DEPENDENCIES = $(am__DEPENDENCIES_3) \
+@WITH_NCURSES_TRUE@ $(am__DEPENDENCIES_1)
+src_top_top_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(src_top_top_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+am_src_uptime_OBJECTS = src/uptime.$(OBJEXT) local/fileutils.$(OBJEXT)
+src_uptime_OBJECTS = $(am_src_uptime_OBJECTS)
+src_uptime_LDADD = $(LDADD)
+src_uptime_DEPENDENCIES = ./library/libproc2.la $(am__DEPENDENCIES_2)
+am_src_vmstat_OBJECTS = src/vmstat.$(OBJEXT) local/strutils.$(OBJEXT) \
+ local/fileutils.$(OBJEXT)
+src_vmstat_OBJECTS = $(am_src_vmstat_OBJECTS)
+src_vmstat_LDADD = $(LDADD)
+src_vmstat_DEPENDENCIES = ./library/libproc2.la $(am__DEPENDENCIES_2)
+am__src_w_SOURCES_DIST = src/w.c local/fileutils.c
+@BUILD_W_TRUE@am_src_w_OBJECTS = src/w.$(OBJEXT) \
+@BUILD_W_TRUE@ local/fileutils.$(OBJEXT)
+src_w_OBJECTS = $(am_src_w_OBJECTS)
+src_w_LDADD = $(LDADD)
+src_w_DEPENDENCIES = ./library/libproc2.la $(am__DEPENDENCIES_2)
+am__src_watch_SOURCES_DIST = src/watch.c local/strutils.c \
+ local/fileutils.c
+@WITH_NCURSES_TRUE@am_src_watch_OBJECTS = src/watch-watch.$(OBJEXT) \
+@WITH_NCURSES_TRUE@ local/src_watch-strutils.$(OBJEXT) \
+@WITH_NCURSES_TRUE@ local/src_watch-fileutils.$(OBJEXT)
+src_watch_OBJECTS = $(am_src_watch_OBJECTS)
+@WITH_NCURSES_TRUE@src_watch_DEPENDENCIES = $(am__DEPENDENCIES_2)
+src_watch_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(src_watch_CFLAGS) \
+ $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = library/$(DEPDIR)/devname.Plo \
+ library/$(DEPDIR)/diskstats.Plo library/$(DEPDIR)/escape.Plo \
+ library/$(DEPDIR)/meminfo.Plo library/$(DEPDIR)/namespace.Plo \
+ library/$(DEPDIR)/numa.Plo library/$(DEPDIR)/pids.Plo \
+ library/$(DEPDIR)/pwcache.Plo library/$(DEPDIR)/readproc.Plo \
+ library/$(DEPDIR)/slabinfo.Plo library/$(DEPDIR)/stat.Plo \
+ library/$(DEPDIR)/sysinfo.Plo library/$(DEPDIR)/uptime.Plo \
+ library/$(DEPDIR)/version.Plo library/$(DEPDIR)/vmstat.Plo \
+ library/$(DEPDIR)/wchan.Plo \
+ library/tests/$(DEPDIR)/test_Itemtables.Po \
+ library/tests/$(DEPDIR)/test_namespace.Po \
+ library/tests/$(DEPDIR)/test_pids.Po \
+ library/tests/$(DEPDIR)/test_sysinfo.Po \
+ library/tests/$(DEPDIR)/test_uptime.Po \
+ library/tests/$(DEPDIR)/test_version.Po \
+ local/$(DEPDIR)/fileutils.Po local/$(DEPDIR)/procio.Po \
+ local/$(DEPDIR)/signals.Po \
+ local/$(DEPDIR)/src_slabtop-fileutils.Po \
+ local/$(DEPDIR)/src_slabtop-strutils.Po \
+ local/$(DEPDIR)/src_top_top-fileutils.Po \
+ local/$(DEPDIR)/src_top_top-signals.Po \
+ local/$(DEPDIR)/src_top_top-strverscmp.Po \
+ local/$(DEPDIR)/src_watch-fileutils.Po \
+ local/$(DEPDIR)/src_watch-strutils.Po \
+ local/$(DEPDIR)/strutils.Po src/$(DEPDIR)/free.Po \
+ src/$(DEPDIR)/kill.Po src/$(DEPDIR)/pgrep.Po \
+ src/$(DEPDIR)/pidof.Po src/$(DEPDIR)/pmap.Po \
+ src/$(DEPDIR)/pwdx.Po src/$(DEPDIR)/skill.Po \
+ src/$(DEPDIR)/slabtop-slabtop.Po src/$(DEPDIR)/sysctl.Po \
+ src/$(DEPDIR)/tload.Po src/$(DEPDIR)/uptime.Po \
+ src/$(DEPDIR)/vmstat.Po src/$(DEPDIR)/w.Po \
+ src/$(DEPDIR)/watch-watch.Po src/ps/$(DEPDIR)/display.Po \
+ src/ps/$(DEPDIR)/global.Po src/ps/$(DEPDIR)/help.Po \
+ src/ps/$(DEPDIR)/output.Po src/ps/$(DEPDIR)/parser.Po \
+ src/ps/$(DEPDIR)/select.Po src/ps/$(DEPDIR)/signames.Po \
+ src/ps/$(DEPDIR)/sortformat.Po src/ps/$(DEPDIR)/stacktrace.Po \
+ src/tests/$(DEPDIR)/test_fileutils.Po \
+ src/tests/$(DEPDIR)/test_process.Po \
+ src/tests/$(DEPDIR)/test_shm.Po \
+ src/tests/$(DEPDIR)/test_strtod_nol.Po \
+ src/tests/$(DEPDIR)/test_strutils.Po \
+ src/top/$(DEPDIR)/top-top.Po src/top/$(DEPDIR)/top-top_nls.Po
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(library_libproc2_la_SOURCES) \
+ $(library_tests_test_Itemtables_SOURCES) \
+ $(library_tests_test_namespace_SOURCES) \
+ $(library_tests_test_pids_SOURCES) \
+ $(library_tests_test_sysinfo_SOURCES) \
+ $(library_tests_test_uptime_SOURCES) \
+ $(library_tests_test_version_SOURCES) $(src_free_SOURCES) \
+ $(src_kill_SOURCES) $(src_pgrep_SOURCES) $(src_pidof_SOURCES) \
+ $(src_pidwait_SOURCES) $(src_pkill_SOURCES) \
+ $(src_pmap_SOURCES) $(src_ps_pscommand_SOURCES) \
+ $(src_pwdx_SOURCES) $(src_skill_SOURCES) \
+ $(src_slabtop_SOURCES) $(src_snice_SOURCES) \
+ $(src_sysctl_SOURCES) $(src_tests_test_fileutils_SOURCES) \
+ $(src_tests_test_process_SOURCES) \
+ $(src_tests_test_shm_SOURCES) \
+ $(src_tests_test_strtod_nol_SOURCES) \
+ $(src_tests_test_strutils_SOURCES) $(src_tload_SOURCES) \
+ $(src_top_top_SOURCES) $(src_uptime_SOURCES) \
+ $(src_vmstat_SOURCES) $(src_w_SOURCES) $(src_watch_SOURCES)
+DIST_SOURCES = $(library_libproc2_la_SOURCES) \
+ $(library_tests_test_Itemtables_SOURCES) \
+ $(library_tests_test_namespace_SOURCES) \
+ $(library_tests_test_pids_SOURCES) \
+ $(library_tests_test_sysinfo_SOURCES) \
+ $(library_tests_test_uptime_SOURCES) \
+ $(library_tests_test_version_SOURCES) $(src_free_SOURCES) \
+ $(am__src_kill_SOURCES_DIST) $(src_pgrep_SOURCES) \
+ $(am__src_pidof_SOURCES_DIST) $(am__src_pidwait_SOURCES_DIST) \
+ $(src_pkill_SOURCES) $(src_pmap_SOURCES) \
+ $(src_ps_pscommand_SOURCES) $(am__src_pwdx_SOURCES_DIST) \
+ $(am__src_skill_SOURCES_DIST) $(am__src_slabtop_SOURCES_DIST) \
+ $(am__src_snice_SOURCES_DIST) $(am__src_sysctl_SOURCES_DIST) \
+ $(src_tests_test_fileutils_SOURCES) \
+ $(src_tests_test_process_SOURCES) \
+ $(src_tests_test_shm_SOURCES) \
+ $(src_tests_test_strtod_nol_SOURCES) \
+ $(src_tests_test_strutils_SOURCES) $(src_tload_SOURCES) \
+ $(am__src_top_top_SOURCES_DIST) $(src_uptime_SOURCES) \
+ $(src_vmstat_SOURCES) $(am__src_w_SOURCES_DIST) \
+ $(am__src_watch_SOURCES_DIST)
+RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
+ ctags-recursive dvi-recursive html-recursive info-recursive \
+ install-data-recursive install-dvi-recursive \
+ install-exec-recursive install-html-recursive \
+ install-info-recursive install-pdf-recursive \
+ install-ps-recursive install-recursive installcheck-recursive \
+ installdirs-recursive pdf-recursive ps-recursive \
+ tags-recursive uninstall-recursive
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+man1dir = $(mandir)/man1
+man3dir = $(mandir)/man3
+man5dir = $(mandir)/man5
+man8dir = $(mandir)/man8
+NROFF = nroff
+MANS = $(dist_man_MANS)
+DATA = $(dist_procpsng_DATA) $(pkgconfig_DATA) $(sysconf_DATA)
+HEADERS = $(library_libproc2_la_include_HEADERS)
+RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
+ distclean-recursive maintainer-clean-recursive
+am__recursive_targets = \
+ $(RECURSIVE_TARGETS) \
+ $(RECURSIVE_CLEAN_TARGETS) \
+ $(am__extra_recursive_targets)
+AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
+ cscope check recheck distdir distdir-am dist dist-all \
+ distcheck
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \
+ config.h.in
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+am__tty_colors_dummy = \
+ mgn= red= grn= lgn= blu= brg= std=; \
+ am__color_tests=no
+am__tty_colors = { \
+ $(am__tty_colors_dummy); \
+ if test "X$(AM_COLOR_TESTS)" = Xno; then \
+ am__color_tests=no; \
+ elif test "X$(AM_COLOR_TESTS)" = Xalways; then \
+ am__color_tests=yes; \
+ elif test "X$$TERM" != Xdumb && { test -t 1; } 2>/dev/null; then \
+ am__color_tests=yes; \
+ fi; \
+ if test $$am__color_tests = yes; then \
+ red=''; \
+ grn=''; \
+ lgn=''; \
+ blu=''; \
+ mgn=''; \
+ brg=''; \
+ std=''; \
+ fi; \
+}
+am__recheck_rx = ^[ ]*:recheck:[ ]*
+am__global_test_result_rx = ^[ ]*:global-test-result:[ ]*
+am__copy_in_global_log_rx = ^[ ]*:copy-in-global-log:[ ]*
+# A command that, given a newline-separated list of test names on the
+# standard input, print the name of the tests that are to be re-run
+# upon "make recheck".
+am__list_recheck_tests = $(AWK) '{ \
+ recheck = 1; \
+ while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+ { \
+ if (rc < 0) \
+ { \
+ if ((getline line2 < ($$0 ".log")) < 0) \
+ recheck = 0; \
+ break; \
+ } \
+ else if (line ~ /$(am__recheck_rx)[nN][Oo]/) \
+ { \
+ recheck = 0; \
+ break; \
+ } \
+ else if (line ~ /$(am__recheck_rx)[yY][eE][sS]/) \
+ { \
+ break; \
+ } \
+ }; \
+ if (recheck) \
+ print $$0; \
+ close ($$0 ".trs"); \
+ close ($$0 ".log"); \
+}'
+# A command that, given a newline-separated list of test names on the
+# standard input, create the global log from their .trs and .log files.
+am__create_global_log = $(AWK) ' \
+function fatal(msg) \
+{ \
+ print "fatal: making $@: " msg | "cat >&2"; \
+ exit 1; \
+} \
+function rst_section(header) \
+{ \
+ print header; \
+ len = length(header); \
+ for (i = 1; i <= len; i = i + 1) \
+ printf "="; \
+ printf "\n\n"; \
+} \
+{ \
+ copy_in_global_log = 1; \
+ global_test_result = "RUN"; \
+ while ((rc = (getline line < ($$0 ".trs"))) != 0) \
+ { \
+ if (rc < 0) \
+ fatal("failed to read from " $$0 ".trs"); \
+ if (line ~ /$(am__global_test_result_rx)/) \
+ { \
+ sub("$(am__global_test_result_rx)", "", line); \
+ sub("[ ]*$$", "", line); \
+ global_test_result = line; \
+ } \
+ else if (line ~ /$(am__copy_in_global_log_rx)[nN][oO]/) \
+ copy_in_global_log = 0; \
+ }; \
+ if (copy_in_global_log) \
+ { \
+ rst_section(global_test_result ": " $$0); \
+ while ((rc = (getline line < ($$0 ".log"))) != 0) \
+ { \
+ if (rc < 0) \
+ fatal("failed to read from " $$0 ".log"); \
+ print line; \
+ }; \
+ printf "\n"; \
+ }; \
+ close ($$0 ".trs"); \
+ close ($$0 ".log"); \
+}'
+# Restructured Text title.
+am__rst_title = { sed 's/.*/ & /;h;s/./=/g;p;x;s/ *$$//;p;g' && echo; }
+# Solaris 10 'make', and several other traditional 'make' implementations,
+# pass "-e" to $(SHELL), and POSIX 2008 even requires this. Work around it
+# by disabling -e (using the XSI extension "set +e") if it's set.
+am__sh_e_setup = case $$- in *e*) set +e;; esac
+# Default flags passed to test drivers.
+am__common_driver_flags = \
+ --color-tests "$$am__color_tests" \
+ --enable-hard-errors "$$am__enable_hard_errors" \
+ --expect-failure "$$am__expect_failure"
+# To be inserted before the command running the test. Creates the
+# directory for the log if needed. Stores in $dir the directory
+# containing $f, in $tst the test, in $log the log. Executes the
+# developer- defined test setup AM_TESTS_ENVIRONMENT (if any), and
+# passes TESTS_ENVIRONMENT. Set up options for the wrapper that
+# will run the test scripts (or their associated LOG_COMPILER, if
+# thy have one).
+am__check_pre = \
+$(am__sh_e_setup); \
+$(am__vpath_adj_setup) $(am__vpath_adj) \
+$(am__tty_colors); \
+srcdir=$(srcdir); export srcdir; \
+case "$@" in \
+ */*) am__odir=`echo "./$@" | sed 's|/[^/]*$$||'`;; \
+ *) am__odir=.;; \
+esac; \
+test "x$$am__odir" = x"." || test -d "$$am__odir" \
+ || $(MKDIR_P) "$$am__odir" || exit $$?; \
+if test -f "./$$f"; then dir=./; \
+elif test -f "$$f"; then dir=; \
+else dir="$(srcdir)/"; fi; \
+tst=$$dir$$f; log='$@'; \
+if test -n '$(DISABLE_HARD_ERRORS)'; then \
+ am__enable_hard_errors=no; \
+else \
+ am__enable_hard_errors=yes; \
+fi; \
+case " $(XFAIL_TESTS) " in \
+ *[\ \ ]$$f[\ \ ]* | *[\ \ ]$$dir$$f[\ \ ]*) \
+ am__expect_failure=yes;; \
+ *) \
+ am__expect_failure=no;; \
+esac; \
+$(AM_TESTS_ENVIRONMENT) $(TESTS_ENVIRONMENT)
+# A shell command to get the names of the tests scripts with any registered
+# extension removed (i.e., equivalently, the names of the test logs, with
+# the '.log' extension removed). The result is saved in the shell variable
+# '$bases'. This honors runtime overriding of TESTS and TEST_LOGS. Sadly,
+# we cannot use something simpler, involving e.g., "$(TEST_LOGS:.log=)",
+# since that might cause problem with VPATH rewrites for suffix-less tests.
+# See also 'test-harness-vpath-rewrite.sh' and 'test-trs-basic.sh'.
+am__set_TESTS_bases = \
+ bases='$(TEST_LOGS)'; \
+ bases=`for i in $$bases; do echo $$i; done | sed 's/\.log$$//'`; \
+ bases=`echo $$bases`
+AM_TESTSUITE_SUMMARY_HEADER = ' for $(PACKAGE_STRING)'
+RECHECK_LOGS = $(TEST_LOGS)
+TEST_SUITE_LOG = test-suite.log
+TEST_EXTENSIONS = @EXEEXT@ .test
+LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
+LOG_COMPILE = $(LOG_COMPILER) $(AM_LOG_FLAGS) $(LOG_FLAGS)
+am__set_b = \
+ case '$@' in \
+ */*) \
+ case '$*' in \
+ */*) b='$*';; \
+ *) b=`echo '$@' | sed 's/\.log$$//'`; \
+ esac;; \
+ *) \
+ b='$*';; \
+ esac
+am__test_logs1 = $(TESTS:=.log)
+am__test_logs2 = $(am__test_logs1:@EXEEXT@.log=.log)
+TEST_LOGS = $(am__test_logs2:.test.log=.log)
+TEST_LOG_DRIVER = $(SHELL) $(top_srcdir)/test-driver
+TEST_LOG_COMPILE = $(TEST_LOG_COMPILER) $(AM_TEST_LOG_FLAGS) \
+ $(TEST_LOG_FLAGS)
+DIST_SUBDIRS = $(SUBDIRS)
+am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \
+ $(srcdir)/config.h.in $(top_srcdir)/library/libproc2.pc.in \
+ ABOUT-NLS AUTHORS COPYING COPYING.LIB ChangeLog INSTALL.md \
+ NEWS README.md compile config.guess config.rpath config.sub \
+ depcomp install-sh ltmain.sh missing mkinstalldirs test-driver
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+ if test -d "$(distdir)"; then \
+ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -rf "$(distdir)" \
+ || { sleep 5 && rm -rf "$(distdir)"; }; \
+ else :; fi
+am__post_remove_distdir = $(am__remove_distdir)
+am__relativize = \
+ dir0=`pwd`; \
+ sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+ sed_rest='s,^[^/]*/*,,'; \
+ sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+ sed_butlast='s,/*[^/]*$$,,'; \
+ while test -n "$$dir1"; do \
+ first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+ if test "$$first" != "."; then \
+ if test "$$first" = ".."; then \
+ dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+ dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+ else \
+ first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+ if test "$$first2" = "$$first"; then \
+ dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+ else \
+ dir2="../$$dir2"; \
+ fi; \
+ dir0="$$dir0"/"$$first"; \
+ fi; \
+ fi; \
+ dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+ done; \
+ reldir="$$dir2"
+GZIP_ENV = --best
+DIST_ARCHIVES = $(distdir).tar.xz
+DIST_TARGETS = dist-xz
+# Exists only to be overridden by the user if desired.
+AM_DISTCHECK_DVI_TARGET = dvi
+distuninstallcheck_listfiles = find . -type f -print
+am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
+ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
+distcleancheck_listfiles = find . -type f -print
+transform = $(am__append_2) $(am__append_3) $(am__append_12)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CSCOPE = @CSCOPE@
+CTAGS = @CTAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEJAGNU = @DEJAGNU@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DL_LIB = @DL_LIB@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ELOGIND_CFLAGS = @ELOGIND_CFLAGS@
+ELOGIND_LIBS = @ELOGIND_LIBS@
+ETAGS = @ETAGS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FILECMD = @FILECMD@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+HARDEN_CFLAGS = @HARDEN_CFLAGS@
+HARDEN_LDFLAGS = @HARDEN_LDFLAGS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
+NCURSES_CFLAGS = @NCURSES_CFLAGS@
+NCURSES_LIBS = @NCURSES_LIBS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+PO4A = @PO4A@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@
+SYSTEMD_LIBS = @SYSTEMD_LIBS@
+USE_NLS = @USE_NLS@
+USE_PO4A = @USE_PO4A@
+VERSION = @VERSION@
+WITH_COLORWATCH = @WITH_COLORWATCH@
+WITH_WATCH8BIT = @WITH_WATCH8BIT@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+usrbin_execdir = @usrbin_execdir@
+CYGWINFLAGS = $(LTLIBINTL)
+AM_CPPFLAGS = \
+ -include $(top_builddir)/config.h \
+ -I$(top_srcdir)/local \
+ -I$(top_srcdir)/library/include \
+ -Wno-unused-result \
+ -DLOCALEDIR=\"$(localedir)\" \
+ @HARDEN_CFLAGS@
+
+AM_LDFLAGS = @HARDEN_LDFLAGS@ $(am__append_1)
+ACLOCAL_AMFLAGS = -I m4
+SUBDIRS = \
+ local \
+ po-man \
+ po \
+ testsuite
+
+AM_CFLAGS = -Ilibrary/include
+LDADD = ./library/libproc2.la $(CYGWINFLAGS)
+lib_LTLIBRARIES = \
+ library/libproc2.la
+
+dist_man_MANS = man/free.1 man/pgrep.1 man/pkill.1 man/pmap.1 \
+ man/uptime.1 man/vmstat.8 man/procps.3 man/procps_pids.3 \
+ man/procps_misc.3 $(am__append_5) $(am__append_6) \
+ $(am__append_10) $(am__append_15) $(am__append_19) \
+ $(am__append_23) $(am__append_24) $(am__append_28)
+EXTRA_DIST = .version autogen.sh COPYING.LIB local/git-version-gen \
+ doc/CodingStyle.md doc/TODO src/ps/HACKING src/ps/regression \
+ $(DIST_MAN_POTS) $(am__append_7) $(am__append_11) \
+ $(am__append_16) $(am__append_20) $(am__append_29) \
+ library/libproc2.sym
+procpsngdir = $(docdir)
+dist_procpsng_DATA = \
+ doc/bugs.md \
+ doc/FAQ \
+ doc/libproc.supp
+
+@BUILD_PIDOF_TRUE@src_pidof_SOURCES = src/pidof.c local/fileutils.c
+@BUILD_KILL_TRUE@src_kill_SOURCES = src/kill.c local/strutils.c local/fileutils.c local/signals.c
+@BUILD_KILL_TRUE@src_kill_LDADD = $(LTLIBINTL)
+@BUILD_W_TRUE@src_w_SOURCES = src/w.c local/fileutils.c
+@CYGWIN_FALSE@@WITH_NCURSES_TRUE@src_slabtop_SOURCES = src/slabtop.c local/strutils.c local/fileutils.c
+@CYGWIN_FALSE@@WITH_NCURSES_TRUE@src_slabtop_CFLAGS = @NCURSES_CFLAGS@
+@CYGWIN_FALSE@@WITH_NCURSES_TRUE@src_slabtop_LDADD = $(LDADD) @NCURSES_LIBS@
+@WITH_NCURSES_TRUE@src_watch_SOURCES = src/watch.c local/strutils.c local/fileutils.c
+@WITH_NCURSES_TRUE@src_watch_CFLAGS = @NCURSES_CFLAGS@
+@WITH_NCURSES_TRUE@src_watch_LDADD = @NCURSES_LIBS@ $(CYGWINFLAGS)
+@WITH_NCURSES_TRUE@src_top_top_SOURCES = src/top/top.h src/top/top.c \
+@WITH_NCURSES_TRUE@ src/top/top_nls.h src/top/top_nls.c \
+@WITH_NCURSES_TRUE@ local/fileutils.c local/signals.c \
+@WITH_NCURSES_TRUE@ $(am__append_25)
+@WITH_NCURSES_TRUE@src_top_top_CFLAGS = @NCURSES_CFLAGS@
+@WITH_NCURSES_TRUE@src_top_top_LDADD = $(LDADD) @NCURSES_LIBS@ $(DL_LIB)
+@BUILD_SKILL_TRUE@src_skill_SOURCES = src/skill.c local/strutils.c local/fileutils.c local/signals.c
+@BUILD_SKILL_TRUE@src_snice_SOURCES = src/skill.c local/strutils.c local/fileutils.c local/signals.c
+src_free_SOURCES = src/free.c local/strutils.c local/fileutils.c
+src_pgrep_SOURCES = src/pgrep.c local/fileutils.c local/signals.c
+src_pkill_SOURCES = src/pgrep.c local/fileutils.c local/signals.c
+src_pmap_SOURCES = src/pmap.c local/fileutils.c
+@BUILD_PIDWAIT_TRUE@src_pidwait_SOURCES = src/pgrep.c local/fileutils.c local/signals.c
+@CYGWIN_FALSE@src_pwdx_SOURCES = src/pwdx.c local/fileutils.c
+@CYGWIN_FALSE@src_pwdx_LDADD = $(CYGWINFLAGS)
+@CYGWIN_FALSE@src_sysctl_SOURCES = \
+@CYGWIN_FALSE@ src/sysctl.c \
+@CYGWIN_FALSE@ local/fileutils.c \
+@CYGWIN_FALSE@ local/procio.c
+
+@CYGWIN_FALSE@src_sysctl_LDADD = $(LTLIBINTL)
+src_tload_SOURCES = src/tload.c local/strutils.c local/fileutils.c
+src_uptime_SOURCES = src/uptime.c local/fileutils.c
+src_vmstat_SOURCES = src/vmstat.c local/strutils.c local/fileutils.c
+
+# See http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
+LIBproc2_CURRENT = 0
+LIBproc2_REVISION = 2
+LIBproc2_AGE = 0
+library_libproc2_la_LIBADD = $(LIB_KPARTS) $(am__append_30) \
+ $(am__append_31)
+library_libproc2_la_LDFLAGS = \
+ -version-info $(LIBproc2_CURRENT):$(LIBproc2_REVISION):$(LIBproc2_AGE) \
+ -no-undefined \
+ -Wl,--version-script=$(top_srcdir)/library/libproc2.sym
+
+library_libproc2_la_SOURCES = \
+ library/devname.c \
+ library/include/devname.h \
+ library/diskstats.c \
+ library/include/diskstats.h \
+ library/escape.c \
+ library/include/escape.h \
+ library/include/procps-private.h \
+ library/meminfo.c \
+ library/include/meminfo.h \
+ library/include/misc.h \
+ library/namespace.c \
+ library/numa.c \
+ library/include/numa.h \
+ library/pids.c \
+ library/include/pids.h \
+ library/pwcache.c \
+ library/include/pwcache.h \
+ library/readproc.c \
+ library/include/readproc.h \
+ library/slabinfo.c \
+ library/include/slabinfo.h \
+ library/stat.c \
+ library/include/stat.h \
+ library/sysinfo.c \
+ library/version.c \
+ library/vmstat.c \
+ library/include/vmstat.h \
+ library/wchan.c \
+ library/include/wchan.h \
+ library/uptime.c \
+ library/include/xtra-procps-debug.h
+
+library_libproc2_la_includedir = $(includedir)/libproc2/
+library_libproc2_la_include_HEADERS = \
+ library/include/diskstats.h \
+ library/include/meminfo.h \
+ library/include/misc.h \
+ library/include/pids.h \
+ library/include/slabinfo.h \
+ library/include/stat.h \
+ library/include/vmstat.h \
+ library/include/xtra-procps-debug.h
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = \
+ library/libproc2.pc
+
+
+# ps/pscommand
+src_ps_pscommand_SOURCES = \
+ src/ps/common.h \
+ src/ps/display.c \
+ src/ps/global.c \
+ src/ps/help.c \
+ src/ps/output.c \
+ src/ps/parser.c \
+ src/ps/select.c \
+ src/ps/signames.c \
+ src/ps/sortformat.c \
+ src/ps/stacktrace.c \
+ local/fileutils.c \
+ local/signals.c
+
+src_tests_test_strutils_SOURCES = src/tests/test_strutils.c local/strutils.c
+src_tests_test_strutils_LDADD = $(CYGWINFLAGS)
+src_tests_test_fileutils_SOURCES = src/tests/test_fileutils.c local/fileutils.c
+src_tests_test_fileutils_LDADD = $(CYGWINFLAGS)
+src_tests_test_process_SOURCES = src/tests/test_process.c
+src_tests_test_process_LDADD = $(CYGWINFLAGS)
+src_tests_test_strtod_nol_SOURCES = src/tests/test_strtod_nol.c local/strutils.c
+src_tests_test_strtod_nol_LDADD = $(CYGWINFLAGS)
+src_tests_test_shm_SOURCES = src/tests/test_shm.c local/strutils.c
+src_tests_test_shm_LDADD = $(CYGWINFLAGS)
+library_tests_test_Itemtables_SOURCES = library/tests/test_Itemtables.c
+library_tests_test_Itemtables_LDADD = library/libproc2.la
+library_tests_test_pids_SOURCES = library/tests/test_pids.c
+library_tests_test_pids_LDADD = library/libproc2.la
+library_tests_test_uptime_SOURCES = library/tests/test_uptime.c
+library_tests_test_uptime_LDADD = library/libproc2.la
+library_tests_test_sysinfo_SOURCES = library/tests/test_sysinfo.c
+library_tests_test_sysinfo_LDADD = library/libproc2.la
+library_tests_test_version_SOURCES = library/tests/test_version.c
+library_tests_test_version_LDADD = library/libproc2.la
+library_tests_test_namespace_SOURCES = library/tests/test_namespace.c
+library_tests_test_namespace_LDADD = library/libproc2.la
+@CYGWIN_FALSE@@EXAMPLE_FILES_TRUE@sysconf_DATA = sysctl.conf
+BUILT_SOURCES = $(top_srcdir)/.version
+all: $(BUILT_SOURCES) config.h
+ $(MAKE) $(AM_MAKEFLAGS) all-recursive
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .log .o .obj .test .test$(EXEEXT) .trs
+am--refresh: Makefile
+ @:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
+ $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ $(SHELL) ./config.status --recheck
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ $(am__cd) $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
+
+config.h: stamp-h1
+ @test -f $@ || rm -f stamp-h1
+ @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
+
+stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
+ @rm -f stamp-h1
+ cd $(top_builddir) && $(SHELL) ./config.status config.h
+$(srcdir)/config.h.in: $(am__configure_deps)
+ ($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+ rm -f stamp-h1
+ touch $@
+
+distclean-hdr:
+ -rm -f config.h stamp-h1
+library/libproc2.pc: $(top_builddir)/config.status $(top_srcdir)/library/libproc2.pc.in
+ cd $(top_builddir) && $(SHELL) ./config.status $@
+install-binPROGRAMS: $(bin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
+ fi; \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed 's/$(EXEEXT)$$//' | \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
+ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+ sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) files[d] = files[d] " " $$1; \
+ else { print "f", $$3 "/" $$4, $$1; } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-binPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
+ test -n "$$list" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(bindir)" && rm -f $$files
+
+clean-binPROGRAMS:
+ @list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+
+clean-checkPROGRAMS:
+ @list='$(check_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+install-sbinPROGRAMS: $(sbin_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(sbindir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(sbindir)" || exit 1; \
+ fi; \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed 's/$(EXEEXT)$$//' | \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
+ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+ sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) files[d] = files[d] " " $$1; \
+ else { print "f", $$3 "/" $$4, $$1; } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(sbindir)$$dir'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(sbindir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-sbinPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(sbin_PROGRAMS)'; test -n "$(sbindir)" || list=; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
+ test -n "$$list" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(sbindir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(sbindir)" && rm -f $$files
+
+clean-sbinPROGRAMS:
+ @list='$(sbin_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+install-usrbin_execPROGRAMS: $(usrbin_exec_PROGRAMS)
+ @$(NORMAL_INSTALL)
+ @list='$(usrbin_exec_PROGRAMS)'; test -n "$(usrbin_execdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(usrbin_execdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(usrbin_execdir)" || exit 1; \
+ fi; \
+ for p in $$list; do echo "$$p $$p"; done | \
+ sed 's/$(EXEEXT)$$//' | \
+ while read p p1; do if test -f $$p \
+ || test -f $$p1 \
+ ; then echo "$$p"; echo "$$p"; else :; fi; \
+ done | \
+ sed -e 'p;s,.*/,,;n;h' \
+ -e 's|.*|.|' \
+ -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+ sed 'N;N;N;s,\n, ,g' | \
+ $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+ { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+ if ($$2 == $$4) files[d] = files[d] " " $$1; \
+ else { print "f", $$3 "/" $$4, $$1; } } \
+ END { for (d in files) print "f", d, files[d] }' | \
+ while read type dir files; do \
+ if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+ test -z "$$files" || { \
+ echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(usrbin_execdir)$$dir'"; \
+ $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(usrbin_execdir)$$dir" || exit $$?; \
+ } \
+ ; done
+
+uninstall-usrbin_execPROGRAMS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(usrbin_exec_PROGRAMS)'; test -n "$(usrbin_execdir)" || list=; \
+ files=`for p in $$list; do echo "$$p"; done | \
+ sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+ -e 's/$$/$(EXEEXT)/' \
+ `; \
+ test -n "$$list" || exit 0; \
+ echo " ( cd '$(DESTDIR)$(usrbin_execdir)' && rm -f" $$files ")"; \
+ cd "$(DESTDIR)$(usrbin_execdir)" && rm -f $$files
+
+clean-usrbin_execPROGRAMS:
+ @list='$(usrbin_exec_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+
+install-libLTLIBRARIES: $(lib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+ list2=; for p in $$list; do \
+ if test -f $$p; then \
+ list2="$$list2 $$p"; \
+ else :; fi; \
+ done; \
+ test -z "$$list2" || { \
+ echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
+ }
+
+uninstall-libLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+ for p in $$list; do \
+ $(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
+ done
+
+clean-libLTLIBRARIES:
+ -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
+ @list='$(lib_LTLIBRARIES)'; \
+ locs=`for p in $$list; do echo $$p; done | \
+ sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \
+ sort -u`; \
+ test -z "$$locs" || { \
+ echo rm -f $${locs}; \
+ rm -f $${locs}; \
+ }
+library/$(am__dirstamp):
+ @$(MKDIR_P) library
+ @: > library/$(am__dirstamp)
+library/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) library/$(DEPDIR)
+ @: > library/$(DEPDIR)/$(am__dirstamp)
+library/devname.lo: library/$(am__dirstamp) \
+ library/$(DEPDIR)/$(am__dirstamp)
+library/diskstats.lo: library/$(am__dirstamp) \
+ library/$(DEPDIR)/$(am__dirstamp)
+library/escape.lo: library/$(am__dirstamp) \
+ library/$(DEPDIR)/$(am__dirstamp)
+library/meminfo.lo: library/$(am__dirstamp) \
+ library/$(DEPDIR)/$(am__dirstamp)
+library/namespace.lo: library/$(am__dirstamp) \
+ library/$(DEPDIR)/$(am__dirstamp)
+library/numa.lo: library/$(am__dirstamp) \
+ library/$(DEPDIR)/$(am__dirstamp)
+library/pids.lo: library/$(am__dirstamp) \
+ library/$(DEPDIR)/$(am__dirstamp)
+library/pwcache.lo: library/$(am__dirstamp) \
+ library/$(DEPDIR)/$(am__dirstamp)
+library/readproc.lo: library/$(am__dirstamp) \
+ library/$(DEPDIR)/$(am__dirstamp)
+library/slabinfo.lo: library/$(am__dirstamp) \
+ library/$(DEPDIR)/$(am__dirstamp)
+library/stat.lo: library/$(am__dirstamp) \
+ library/$(DEPDIR)/$(am__dirstamp)
+library/sysinfo.lo: library/$(am__dirstamp) \
+ library/$(DEPDIR)/$(am__dirstamp)
+library/version.lo: library/$(am__dirstamp) \
+ library/$(DEPDIR)/$(am__dirstamp)
+library/vmstat.lo: library/$(am__dirstamp) \
+ library/$(DEPDIR)/$(am__dirstamp)
+library/wchan.lo: library/$(am__dirstamp) \
+ library/$(DEPDIR)/$(am__dirstamp)
+library/uptime.lo: library/$(am__dirstamp) \
+ library/$(DEPDIR)/$(am__dirstamp)
+
+library/libproc2.la: $(library_libproc2_la_OBJECTS) $(library_libproc2_la_DEPENDENCIES) $(EXTRA_library_libproc2_la_DEPENDENCIES) library/$(am__dirstamp)
+ $(AM_V_CCLD)$(library_libproc2_la_LINK) -rpath $(libdir) $(library_libproc2_la_OBJECTS) $(library_libproc2_la_LIBADD) $(LIBS)
+library/tests/$(am__dirstamp):
+ @$(MKDIR_P) library/tests
+ @: > library/tests/$(am__dirstamp)
+library/tests/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) library/tests/$(DEPDIR)
+ @: > library/tests/$(DEPDIR)/$(am__dirstamp)
+library/tests/test_Itemtables.$(OBJEXT): \
+ library/tests/$(am__dirstamp) \
+ library/tests/$(DEPDIR)/$(am__dirstamp)
+
+library/tests/test_Itemtables$(EXEEXT): $(library_tests_test_Itemtables_OBJECTS) $(library_tests_test_Itemtables_DEPENDENCIES) $(EXTRA_library_tests_test_Itemtables_DEPENDENCIES) library/tests/$(am__dirstamp)
+ @rm -f library/tests/test_Itemtables$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(library_tests_test_Itemtables_OBJECTS) $(library_tests_test_Itemtables_LDADD) $(LIBS)
+library/tests/test_namespace.$(OBJEXT): library/tests/$(am__dirstamp) \
+ library/tests/$(DEPDIR)/$(am__dirstamp)
+
+library/tests/test_namespace$(EXEEXT): $(library_tests_test_namespace_OBJECTS) $(library_tests_test_namespace_DEPENDENCIES) $(EXTRA_library_tests_test_namespace_DEPENDENCIES) library/tests/$(am__dirstamp)
+ @rm -f library/tests/test_namespace$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(library_tests_test_namespace_OBJECTS) $(library_tests_test_namespace_LDADD) $(LIBS)
+library/tests/test_pids.$(OBJEXT): library/tests/$(am__dirstamp) \
+ library/tests/$(DEPDIR)/$(am__dirstamp)
+
+library/tests/test_pids$(EXEEXT): $(library_tests_test_pids_OBJECTS) $(library_tests_test_pids_DEPENDENCIES) $(EXTRA_library_tests_test_pids_DEPENDENCIES) library/tests/$(am__dirstamp)
+ @rm -f library/tests/test_pids$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(library_tests_test_pids_OBJECTS) $(library_tests_test_pids_LDADD) $(LIBS)
+library/tests/test_sysinfo.$(OBJEXT): library/tests/$(am__dirstamp) \
+ library/tests/$(DEPDIR)/$(am__dirstamp)
+
+library/tests/test_sysinfo$(EXEEXT): $(library_tests_test_sysinfo_OBJECTS) $(library_tests_test_sysinfo_DEPENDENCIES) $(EXTRA_library_tests_test_sysinfo_DEPENDENCIES) library/tests/$(am__dirstamp)
+ @rm -f library/tests/test_sysinfo$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(library_tests_test_sysinfo_OBJECTS) $(library_tests_test_sysinfo_LDADD) $(LIBS)
+library/tests/test_uptime.$(OBJEXT): library/tests/$(am__dirstamp) \
+ library/tests/$(DEPDIR)/$(am__dirstamp)
+
+library/tests/test_uptime$(EXEEXT): $(library_tests_test_uptime_OBJECTS) $(library_tests_test_uptime_DEPENDENCIES) $(EXTRA_library_tests_test_uptime_DEPENDENCIES) library/tests/$(am__dirstamp)
+ @rm -f library/tests/test_uptime$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(library_tests_test_uptime_OBJECTS) $(library_tests_test_uptime_LDADD) $(LIBS)
+library/tests/test_version.$(OBJEXT): library/tests/$(am__dirstamp) \
+ library/tests/$(DEPDIR)/$(am__dirstamp)
+
+library/tests/test_version$(EXEEXT): $(library_tests_test_version_OBJECTS) $(library_tests_test_version_DEPENDENCIES) $(EXTRA_library_tests_test_version_DEPENDENCIES) library/tests/$(am__dirstamp)
+ @rm -f library/tests/test_version$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(library_tests_test_version_OBJECTS) $(library_tests_test_version_LDADD) $(LIBS)
+src/$(am__dirstamp):
+ @$(MKDIR_P) src
+ @: > src/$(am__dirstamp)
+src/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) src/$(DEPDIR)
+ @: > src/$(DEPDIR)/$(am__dirstamp)
+src/free.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
+local/$(am__dirstamp):
+ @$(MKDIR_P) local
+ @: > local/$(am__dirstamp)
+local/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) local/$(DEPDIR)
+ @: > local/$(DEPDIR)/$(am__dirstamp)
+local/strutils.$(OBJEXT): local/$(am__dirstamp) \
+ local/$(DEPDIR)/$(am__dirstamp)
+local/fileutils.$(OBJEXT): local/$(am__dirstamp) \
+ local/$(DEPDIR)/$(am__dirstamp)
+
+src/free$(EXEEXT): $(src_free_OBJECTS) $(src_free_DEPENDENCIES) $(EXTRA_src_free_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/free$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(src_free_OBJECTS) $(src_free_LDADD) $(LIBS)
+src/kill.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
+local/signals.$(OBJEXT): local/$(am__dirstamp) \
+ local/$(DEPDIR)/$(am__dirstamp)
+
+src/kill$(EXEEXT): $(src_kill_OBJECTS) $(src_kill_DEPENDENCIES) $(EXTRA_src_kill_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/kill$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(src_kill_OBJECTS) $(src_kill_LDADD) $(LIBS)
+src/pgrep.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
+
+src/pgrep$(EXEEXT): $(src_pgrep_OBJECTS) $(src_pgrep_DEPENDENCIES) $(EXTRA_src_pgrep_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/pgrep$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(src_pgrep_OBJECTS) $(src_pgrep_LDADD) $(LIBS)
+src/pidof.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
+
+src/pidof$(EXEEXT): $(src_pidof_OBJECTS) $(src_pidof_DEPENDENCIES) $(EXTRA_src_pidof_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/pidof$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(src_pidof_OBJECTS) $(src_pidof_LDADD) $(LIBS)
+
+src/pidwait$(EXEEXT): $(src_pidwait_OBJECTS) $(src_pidwait_DEPENDENCIES) $(EXTRA_src_pidwait_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/pidwait$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(src_pidwait_OBJECTS) $(src_pidwait_LDADD) $(LIBS)
+
+src/pkill$(EXEEXT): $(src_pkill_OBJECTS) $(src_pkill_DEPENDENCIES) $(EXTRA_src_pkill_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/pkill$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(src_pkill_OBJECTS) $(src_pkill_LDADD) $(LIBS)
+src/pmap.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
+
+src/pmap$(EXEEXT): $(src_pmap_OBJECTS) $(src_pmap_DEPENDENCIES) $(EXTRA_src_pmap_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/pmap$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(src_pmap_OBJECTS) $(src_pmap_LDADD) $(LIBS)
+src/ps/$(am__dirstamp):
+ @$(MKDIR_P) src/ps
+ @: > src/ps/$(am__dirstamp)
+src/ps/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) src/ps/$(DEPDIR)
+ @: > src/ps/$(DEPDIR)/$(am__dirstamp)
+src/ps/display.$(OBJEXT): src/ps/$(am__dirstamp) \
+ src/ps/$(DEPDIR)/$(am__dirstamp)
+src/ps/global.$(OBJEXT): src/ps/$(am__dirstamp) \
+ src/ps/$(DEPDIR)/$(am__dirstamp)
+src/ps/help.$(OBJEXT): src/ps/$(am__dirstamp) \
+ src/ps/$(DEPDIR)/$(am__dirstamp)
+src/ps/output.$(OBJEXT): src/ps/$(am__dirstamp) \
+ src/ps/$(DEPDIR)/$(am__dirstamp)
+src/ps/parser.$(OBJEXT): src/ps/$(am__dirstamp) \
+ src/ps/$(DEPDIR)/$(am__dirstamp)
+src/ps/select.$(OBJEXT): src/ps/$(am__dirstamp) \
+ src/ps/$(DEPDIR)/$(am__dirstamp)
+src/ps/signames.$(OBJEXT): src/ps/$(am__dirstamp) \
+ src/ps/$(DEPDIR)/$(am__dirstamp)
+src/ps/sortformat.$(OBJEXT): src/ps/$(am__dirstamp) \
+ src/ps/$(DEPDIR)/$(am__dirstamp)
+src/ps/stacktrace.$(OBJEXT): src/ps/$(am__dirstamp) \
+ src/ps/$(DEPDIR)/$(am__dirstamp)
+
+src/ps/pscommand$(EXEEXT): $(src_ps_pscommand_OBJECTS) $(src_ps_pscommand_DEPENDENCIES) $(EXTRA_src_ps_pscommand_DEPENDENCIES) src/ps/$(am__dirstamp)
+ @rm -f src/ps/pscommand$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(src_ps_pscommand_OBJECTS) $(src_ps_pscommand_LDADD) $(LIBS)
+src/pwdx.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
+
+src/pwdx$(EXEEXT): $(src_pwdx_OBJECTS) $(src_pwdx_DEPENDENCIES) $(EXTRA_src_pwdx_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/pwdx$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(src_pwdx_OBJECTS) $(src_pwdx_LDADD) $(LIBS)
+src/skill.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
+
+src/skill$(EXEEXT): $(src_skill_OBJECTS) $(src_skill_DEPENDENCIES) $(EXTRA_src_skill_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/skill$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(src_skill_OBJECTS) $(src_skill_LDADD) $(LIBS)
+src/slabtop-slabtop.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+local/src_slabtop-strutils.$(OBJEXT): local/$(am__dirstamp) \
+ local/$(DEPDIR)/$(am__dirstamp)
+local/src_slabtop-fileutils.$(OBJEXT): local/$(am__dirstamp) \
+ local/$(DEPDIR)/$(am__dirstamp)
+
+src/slabtop$(EXEEXT): $(src_slabtop_OBJECTS) $(src_slabtop_DEPENDENCIES) $(EXTRA_src_slabtop_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/slabtop$(EXEEXT)
+ $(AM_V_CCLD)$(src_slabtop_LINK) $(src_slabtop_OBJECTS) $(src_slabtop_LDADD) $(LIBS)
+
+src/snice$(EXEEXT): $(src_snice_OBJECTS) $(src_snice_DEPENDENCIES) $(EXTRA_src_snice_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/snice$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(src_snice_OBJECTS) $(src_snice_LDADD) $(LIBS)
+src/sysctl.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+local/procio.$(OBJEXT): local/$(am__dirstamp) \
+ local/$(DEPDIR)/$(am__dirstamp)
+
+src/sysctl$(EXEEXT): $(src_sysctl_OBJECTS) $(src_sysctl_DEPENDENCIES) $(EXTRA_src_sysctl_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/sysctl$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(src_sysctl_OBJECTS) $(src_sysctl_LDADD) $(LIBS)
+src/tests/$(am__dirstamp):
+ @$(MKDIR_P) src/tests
+ @: > src/tests/$(am__dirstamp)
+src/tests/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) src/tests/$(DEPDIR)
+ @: > src/tests/$(DEPDIR)/$(am__dirstamp)
+src/tests/test_fileutils.$(OBJEXT): src/tests/$(am__dirstamp) \
+ src/tests/$(DEPDIR)/$(am__dirstamp)
+
+src/tests/test_fileutils$(EXEEXT): $(src_tests_test_fileutils_OBJECTS) $(src_tests_test_fileutils_DEPENDENCIES) $(EXTRA_src_tests_test_fileutils_DEPENDENCIES) src/tests/$(am__dirstamp)
+ @rm -f src/tests/test_fileutils$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(src_tests_test_fileutils_OBJECTS) $(src_tests_test_fileutils_LDADD) $(LIBS)
+src/tests/test_process.$(OBJEXT): src/tests/$(am__dirstamp) \
+ src/tests/$(DEPDIR)/$(am__dirstamp)
+
+src/tests/test_process$(EXEEXT): $(src_tests_test_process_OBJECTS) $(src_tests_test_process_DEPENDENCIES) $(EXTRA_src_tests_test_process_DEPENDENCIES) src/tests/$(am__dirstamp)
+ @rm -f src/tests/test_process$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(src_tests_test_process_OBJECTS) $(src_tests_test_process_LDADD) $(LIBS)
+src/tests/test_shm.$(OBJEXT): src/tests/$(am__dirstamp) \
+ src/tests/$(DEPDIR)/$(am__dirstamp)
+
+src/tests/test_shm$(EXEEXT): $(src_tests_test_shm_OBJECTS) $(src_tests_test_shm_DEPENDENCIES) $(EXTRA_src_tests_test_shm_DEPENDENCIES) src/tests/$(am__dirstamp)
+ @rm -f src/tests/test_shm$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(src_tests_test_shm_OBJECTS) $(src_tests_test_shm_LDADD) $(LIBS)
+src/tests/test_strtod_nol.$(OBJEXT): src/tests/$(am__dirstamp) \
+ src/tests/$(DEPDIR)/$(am__dirstamp)
+
+src/tests/test_strtod_nol$(EXEEXT): $(src_tests_test_strtod_nol_OBJECTS) $(src_tests_test_strtod_nol_DEPENDENCIES) $(EXTRA_src_tests_test_strtod_nol_DEPENDENCIES) src/tests/$(am__dirstamp)
+ @rm -f src/tests/test_strtod_nol$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(src_tests_test_strtod_nol_OBJECTS) $(src_tests_test_strtod_nol_LDADD) $(LIBS)
+src/tests/test_strutils.$(OBJEXT): src/tests/$(am__dirstamp) \
+ src/tests/$(DEPDIR)/$(am__dirstamp)
+
+src/tests/test_strutils$(EXEEXT): $(src_tests_test_strutils_OBJECTS) $(src_tests_test_strutils_DEPENDENCIES) $(EXTRA_src_tests_test_strutils_DEPENDENCIES) src/tests/$(am__dirstamp)
+ @rm -f src/tests/test_strutils$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(src_tests_test_strutils_OBJECTS) $(src_tests_test_strutils_LDADD) $(LIBS)
+src/tload.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
+
+src/tload$(EXEEXT): $(src_tload_OBJECTS) $(src_tload_DEPENDENCIES) $(EXTRA_src_tload_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/tload$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(src_tload_OBJECTS) $(src_tload_LDADD) $(LIBS)
+src/top/$(am__dirstamp):
+ @$(MKDIR_P) src/top
+ @: > src/top/$(am__dirstamp)
+src/top/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) src/top/$(DEPDIR)
+ @: > src/top/$(DEPDIR)/$(am__dirstamp)
+src/top/top-top.$(OBJEXT): src/top/$(am__dirstamp) \
+ src/top/$(DEPDIR)/$(am__dirstamp)
+src/top/top-top_nls.$(OBJEXT): src/top/$(am__dirstamp) \
+ src/top/$(DEPDIR)/$(am__dirstamp)
+local/src_top_top-fileutils.$(OBJEXT): local/$(am__dirstamp) \
+ local/$(DEPDIR)/$(am__dirstamp)
+local/src_top_top-signals.$(OBJEXT): local/$(am__dirstamp) \
+ local/$(DEPDIR)/$(am__dirstamp)
+local/src_top_top-strverscmp.$(OBJEXT): local/$(am__dirstamp) \
+ local/$(DEPDIR)/$(am__dirstamp)
+
+src/top/top$(EXEEXT): $(src_top_top_OBJECTS) $(src_top_top_DEPENDENCIES) $(EXTRA_src_top_top_DEPENDENCIES) src/top/$(am__dirstamp)
+ @rm -f src/top/top$(EXEEXT)
+ $(AM_V_CCLD)$(src_top_top_LINK) $(src_top_top_OBJECTS) $(src_top_top_LDADD) $(LIBS)
+src/uptime.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+
+src/uptime$(EXEEXT): $(src_uptime_OBJECTS) $(src_uptime_DEPENDENCIES) $(EXTRA_src_uptime_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/uptime$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(src_uptime_OBJECTS) $(src_uptime_LDADD) $(LIBS)
+src/vmstat.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+
+src/vmstat$(EXEEXT): $(src_vmstat_OBJECTS) $(src_vmstat_DEPENDENCIES) $(EXTRA_src_vmstat_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/vmstat$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(src_vmstat_OBJECTS) $(src_vmstat_LDADD) $(LIBS)
+src/w.$(OBJEXT): src/$(am__dirstamp) src/$(DEPDIR)/$(am__dirstamp)
+
+src/w$(EXEEXT): $(src_w_OBJECTS) $(src_w_DEPENDENCIES) $(EXTRA_src_w_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/w$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(src_w_OBJECTS) $(src_w_LDADD) $(LIBS)
+src/watch-watch.$(OBJEXT): src/$(am__dirstamp) \
+ src/$(DEPDIR)/$(am__dirstamp)
+local/src_watch-strutils.$(OBJEXT): local/$(am__dirstamp) \
+ local/$(DEPDIR)/$(am__dirstamp)
+local/src_watch-fileutils.$(OBJEXT): local/$(am__dirstamp) \
+ local/$(DEPDIR)/$(am__dirstamp)
+
+src/watch$(EXEEXT): $(src_watch_OBJECTS) $(src_watch_DEPENDENCIES) $(EXTRA_src_watch_DEPENDENCIES) src/$(am__dirstamp)
+ @rm -f src/watch$(EXEEXT)
+ $(AM_V_CCLD)$(src_watch_LINK) $(src_watch_OBJECTS) $(src_watch_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+ -rm -f library/*.$(OBJEXT)
+ -rm -f library/*.lo
+ -rm -f library/tests/*.$(OBJEXT)
+ -rm -f local/*.$(OBJEXT)
+ -rm -f src/*.$(OBJEXT)
+ -rm -f src/ps/*.$(OBJEXT)
+ -rm -f src/tests/*.$(OBJEXT)
+ -rm -f src/top/*.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@library/$(DEPDIR)/devname.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@library/$(DEPDIR)/diskstats.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@library/$(DEPDIR)/escape.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@library/$(DEPDIR)/meminfo.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@library/$(DEPDIR)/namespace.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@library/$(DEPDIR)/numa.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@library/$(DEPDIR)/pids.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@library/$(DEPDIR)/pwcache.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@library/$(DEPDIR)/readproc.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@library/$(DEPDIR)/slabinfo.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@library/$(DEPDIR)/stat.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@library/$(DEPDIR)/sysinfo.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@library/$(DEPDIR)/uptime.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@library/$(DEPDIR)/version.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@library/$(DEPDIR)/vmstat.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@library/$(DEPDIR)/wchan.Plo@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@library/tests/$(DEPDIR)/test_Itemtables.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@library/tests/$(DEPDIR)/test_namespace.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@library/tests/$(DEPDIR)/test_pids.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@library/tests/$(DEPDIR)/test_sysinfo.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@library/tests/$(DEPDIR)/test_uptime.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@library/tests/$(DEPDIR)/test_version.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/fileutils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/procio.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/signals.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/src_slabtop-fileutils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/src_slabtop-strutils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/src_top_top-fileutils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/src_top_top-signals.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/src_top_top-strverscmp.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/src_watch-fileutils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/src_watch-strutils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@local/$(DEPDIR)/strutils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/free.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/kill.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/pgrep.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/pidof.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/pmap.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/pwdx.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/skill.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/slabtop-slabtop.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/sysctl.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/tload.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/uptime.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/vmstat.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/w.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/$(DEPDIR)/watch-watch.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/ps/$(DEPDIR)/display.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/ps/$(DEPDIR)/global.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/ps/$(DEPDIR)/help.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/ps/$(DEPDIR)/output.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/ps/$(DEPDIR)/parser.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/ps/$(DEPDIR)/select.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/ps/$(DEPDIR)/signames.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/ps/$(DEPDIR)/sortformat.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/ps/$(DEPDIR)/stacktrace.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/tests/$(DEPDIR)/test_fileutils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/tests/$(DEPDIR)/test_process.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/tests/$(DEPDIR)/test_shm.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/tests/$(DEPDIR)/test_strtod_nol.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/tests/$(DEPDIR)/test_strutils.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/top/$(DEPDIR)/top-top.Po@am__quote@ # am--include-marker
+@AMDEP_TRUE@@am__include@ @am__quote@src/top/$(DEPDIR)/top-top_nls.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+src/slabtop-slabtop.o: src/slabtop.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_slabtop_CFLAGS) $(CFLAGS) -MT src/slabtop-slabtop.o -MD -MP -MF src/$(DEPDIR)/slabtop-slabtop.Tpo -c -o src/slabtop-slabtop.o `test -f 'src/slabtop.c' || echo '$(srcdir)/'`src/slabtop.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/slabtop-slabtop.Tpo src/$(DEPDIR)/slabtop-slabtop.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/slabtop.c' object='src/slabtop-slabtop.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_slabtop_CFLAGS) $(CFLAGS) -c -o src/slabtop-slabtop.o `test -f 'src/slabtop.c' || echo '$(srcdir)/'`src/slabtop.c
+
+src/slabtop-slabtop.obj: src/slabtop.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_slabtop_CFLAGS) $(CFLAGS) -MT src/slabtop-slabtop.obj -MD -MP -MF src/$(DEPDIR)/slabtop-slabtop.Tpo -c -o src/slabtop-slabtop.obj `if test -f 'src/slabtop.c'; then $(CYGPATH_W) 'src/slabtop.c'; else $(CYGPATH_W) '$(srcdir)/src/slabtop.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/slabtop-slabtop.Tpo src/$(DEPDIR)/slabtop-slabtop.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/slabtop.c' object='src/slabtop-slabtop.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_slabtop_CFLAGS) $(CFLAGS) -c -o src/slabtop-slabtop.obj `if test -f 'src/slabtop.c'; then $(CYGPATH_W) 'src/slabtop.c'; else $(CYGPATH_W) '$(srcdir)/src/slabtop.c'; fi`
+
+local/src_slabtop-strutils.o: local/strutils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_slabtop_CFLAGS) $(CFLAGS) -MT local/src_slabtop-strutils.o -MD -MP -MF local/$(DEPDIR)/src_slabtop-strutils.Tpo -c -o local/src_slabtop-strutils.o `test -f 'local/strutils.c' || echo '$(srcdir)/'`local/strutils.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) local/$(DEPDIR)/src_slabtop-strutils.Tpo local/$(DEPDIR)/src_slabtop-strutils.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='local/strutils.c' object='local/src_slabtop-strutils.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_slabtop_CFLAGS) $(CFLAGS) -c -o local/src_slabtop-strutils.o `test -f 'local/strutils.c' || echo '$(srcdir)/'`local/strutils.c
+
+local/src_slabtop-strutils.obj: local/strutils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_slabtop_CFLAGS) $(CFLAGS) -MT local/src_slabtop-strutils.obj -MD -MP -MF local/$(DEPDIR)/src_slabtop-strutils.Tpo -c -o local/src_slabtop-strutils.obj `if test -f 'local/strutils.c'; then $(CYGPATH_W) 'local/strutils.c'; else $(CYGPATH_W) '$(srcdir)/local/strutils.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) local/$(DEPDIR)/src_slabtop-strutils.Tpo local/$(DEPDIR)/src_slabtop-strutils.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='local/strutils.c' object='local/src_slabtop-strutils.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_slabtop_CFLAGS) $(CFLAGS) -c -o local/src_slabtop-strutils.obj `if test -f 'local/strutils.c'; then $(CYGPATH_W) 'local/strutils.c'; else $(CYGPATH_W) '$(srcdir)/local/strutils.c'; fi`
+
+local/src_slabtop-fileutils.o: local/fileutils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_slabtop_CFLAGS) $(CFLAGS) -MT local/src_slabtop-fileutils.o -MD -MP -MF local/$(DEPDIR)/src_slabtop-fileutils.Tpo -c -o local/src_slabtop-fileutils.o `test -f 'local/fileutils.c' || echo '$(srcdir)/'`local/fileutils.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) local/$(DEPDIR)/src_slabtop-fileutils.Tpo local/$(DEPDIR)/src_slabtop-fileutils.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='local/fileutils.c' object='local/src_slabtop-fileutils.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_slabtop_CFLAGS) $(CFLAGS) -c -o local/src_slabtop-fileutils.o `test -f 'local/fileutils.c' || echo '$(srcdir)/'`local/fileutils.c
+
+local/src_slabtop-fileutils.obj: local/fileutils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_slabtop_CFLAGS) $(CFLAGS) -MT local/src_slabtop-fileutils.obj -MD -MP -MF local/$(DEPDIR)/src_slabtop-fileutils.Tpo -c -o local/src_slabtop-fileutils.obj `if test -f 'local/fileutils.c'; then $(CYGPATH_W) 'local/fileutils.c'; else $(CYGPATH_W) '$(srcdir)/local/fileutils.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) local/$(DEPDIR)/src_slabtop-fileutils.Tpo local/$(DEPDIR)/src_slabtop-fileutils.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='local/fileutils.c' object='local/src_slabtop-fileutils.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_slabtop_CFLAGS) $(CFLAGS) -c -o local/src_slabtop-fileutils.obj `if test -f 'local/fileutils.c'; then $(CYGPATH_W) 'local/fileutils.c'; else $(CYGPATH_W) '$(srcdir)/local/fileutils.c'; fi`
+
+src/top/top-top.o: src/top/top.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_top_top_CFLAGS) $(CFLAGS) -MT src/top/top-top.o -MD -MP -MF src/top/$(DEPDIR)/top-top.Tpo -c -o src/top/top-top.o `test -f 'src/top/top.c' || echo '$(srcdir)/'`src/top/top.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/top/$(DEPDIR)/top-top.Tpo src/top/$(DEPDIR)/top-top.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/top/top.c' object='src/top/top-top.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_top_top_CFLAGS) $(CFLAGS) -c -o src/top/top-top.o `test -f 'src/top/top.c' || echo '$(srcdir)/'`src/top/top.c
+
+src/top/top-top.obj: src/top/top.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_top_top_CFLAGS) $(CFLAGS) -MT src/top/top-top.obj -MD -MP -MF src/top/$(DEPDIR)/top-top.Tpo -c -o src/top/top-top.obj `if test -f 'src/top/top.c'; then $(CYGPATH_W) 'src/top/top.c'; else $(CYGPATH_W) '$(srcdir)/src/top/top.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/top/$(DEPDIR)/top-top.Tpo src/top/$(DEPDIR)/top-top.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/top/top.c' object='src/top/top-top.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_top_top_CFLAGS) $(CFLAGS) -c -o src/top/top-top.obj `if test -f 'src/top/top.c'; then $(CYGPATH_W) 'src/top/top.c'; else $(CYGPATH_W) '$(srcdir)/src/top/top.c'; fi`
+
+src/top/top-top_nls.o: src/top/top_nls.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_top_top_CFLAGS) $(CFLAGS) -MT src/top/top-top_nls.o -MD -MP -MF src/top/$(DEPDIR)/top-top_nls.Tpo -c -o src/top/top-top_nls.o `test -f 'src/top/top_nls.c' || echo '$(srcdir)/'`src/top/top_nls.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/top/$(DEPDIR)/top-top_nls.Tpo src/top/$(DEPDIR)/top-top_nls.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/top/top_nls.c' object='src/top/top-top_nls.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_top_top_CFLAGS) $(CFLAGS) -c -o src/top/top-top_nls.o `test -f 'src/top/top_nls.c' || echo '$(srcdir)/'`src/top/top_nls.c
+
+src/top/top-top_nls.obj: src/top/top_nls.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_top_top_CFLAGS) $(CFLAGS) -MT src/top/top-top_nls.obj -MD -MP -MF src/top/$(DEPDIR)/top-top_nls.Tpo -c -o src/top/top-top_nls.obj `if test -f 'src/top/top_nls.c'; then $(CYGPATH_W) 'src/top/top_nls.c'; else $(CYGPATH_W) '$(srcdir)/src/top/top_nls.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/top/$(DEPDIR)/top-top_nls.Tpo src/top/$(DEPDIR)/top-top_nls.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/top/top_nls.c' object='src/top/top-top_nls.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_top_top_CFLAGS) $(CFLAGS) -c -o src/top/top-top_nls.obj `if test -f 'src/top/top_nls.c'; then $(CYGPATH_W) 'src/top/top_nls.c'; else $(CYGPATH_W) '$(srcdir)/src/top/top_nls.c'; fi`
+
+local/src_top_top-fileutils.o: local/fileutils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_top_top_CFLAGS) $(CFLAGS) -MT local/src_top_top-fileutils.o -MD -MP -MF local/$(DEPDIR)/src_top_top-fileutils.Tpo -c -o local/src_top_top-fileutils.o `test -f 'local/fileutils.c' || echo '$(srcdir)/'`local/fileutils.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) local/$(DEPDIR)/src_top_top-fileutils.Tpo local/$(DEPDIR)/src_top_top-fileutils.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='local/fileutils.c' object='local/src_top_top-fileutils.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_top_top_CFLAGS) $(CFLAGS) -c -o local/src_top_top-fileutils.o `test -f 'local/fileutils.c' || echo '$(srcdir)/'`local/fileutils.c
+
+local/src_top_top-fileutils.obj: local/fileutils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_top_top_CFLAGS) $(CFLAGS) -MT local/src_top_top-fileutils.obj -MD -MP -MF local/$(DEPDIR)/src_top_top-fileutils.Tpo -c -o local/src_top_top-fileutils.obj `if test -f 'local/fileutils.c'; then $(CYGPATH_W) 'local/fileutils.c'; else $(CYGPATH_W) '$(srcdir)/local/fileutils.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) local/$(DEPDIR)/src_top_top-fileutils.Tpo local/$(DEPDIR)/src_top_top-fileutils.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='local/fileutils.c' object='local/src_top_top-fileutils.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_top_top_CFLAGS) $(CFLAGS) -c -o local/src_top_top-fileutils.obj `if test -f 'local/fileutils.c'; then $(CYGPATH_W) 'local/fileutils.c'; else $(CYGPATH_W) '$(srcdir)/local/fileutils.c'; fi`
+
+local/src_top_top-signals.o: local/signals.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_top_top_CFLAGS) $(CFLAGS) -MT local/src_top_top-signals.o -MD -MP -MF local/$(DEPDIR)/src_top_top-signals.Tpo -c -o local/src_top_top-signals.o `test -f 'local/signals.c' || echo '$(srcdir)/'`local/signals.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) local/$(DEPDIR)/src_top_top-signals.Tpo local/$(DEPDIR)/src_top_top-signals.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='local/signals.c' object='local/src_top_top-signals.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_top_top_CFLAGS) $(CFLAGS) -c -o local/src_top_top-signals.o `test -f 'local/signals.c' || echo '$(srcdir)/'`local/signals.c
+
+local/src_top_top-signals.obj: local/signals.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_top_top_CFLAGS) $(CFLAGS) -MT local/src_top_top-signals.obj -MD -MP -MF local/$(DEPDIR)/src_top_top-signals.Tpo -c -o local/src_top_top-signals.obj `if test -f 'local/signals.c'; then $(CYGPATH_W) 'local/signals.c'; else $(CYGPATH_W) '$(srcdir)/local/signals.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) local/$(DEPDIR)/src_top_top-signals.Tpo local/$(DEPDIR)/src_top_top-signals.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='local/signals.c' object='local/src_top_top-signals.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_top_top_CFLAGS) $(CFLAGS) -c -o local/src_top_top-signals.obj `if test -f 'local/signals.c'; then $(CYGPATH_W) 'local/signals.c'; else $(CYGPATH_W) '$(srcdir)/local/signals.c'; fi`
+
+local/src_top_top-strverscmp.o: local/strverscmp.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_top_top_CFLAGS) $(CFLAGS) -MT local/src_top_top-strverscmp.o -MD -MP -MF local/$(DEPDIR)/src_top_top-strverscmp.Tpo -c -o local/src_top_top-strverscmp.o `test -f 'local/strverscmp.c' || echo '$(srcdir)/'`local/strverscmp.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) local/$(DEPDIR)/src_top_top-strverscmp.Tpo local/$(DEPDIR)/src_top_top-strverscmp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='local/strverscmp.c' object='local/src_top_top-strverscmp.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_top_top_CFLAGS) $(CFLAGS) -c -o local/src_top_top-strverscmp.o `test -f 'local/strverscmp.c' || echo '$(srcdir)/'`local/strverscmp.c
+
+local/src_top_top-strverscmp.obj: local/strverscmp.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_top_top_CFLAGS) $(CFLAGS) -MT local/src_top_top-strverscmp.obj -MD -MP -MF local/$(DEPDIR)/src_top_top-strverscmp.Tpo -c -o local/src_top_top-strverscmp.obj `if test -f 'local/strverscmp.c'; then $(CYGPATH_W) 'local/strverscmp.c'; else $(CYGPATH_W) '$(srcdir)/local/strverscmp.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) local/$(DEPDIR)/src_top_top-strverscmp.Tpo local/$(DEPDIR)/src_top_top-strverscmp.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='local/strverscmp.c' object='local/src_top_top-strverscmp.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_top_top_CFLAGS) $(CFLAGS) -c -o local/src_top_top-strverscmp.obj `if test -f 'local/strverscmp.c'; then $(CYGPATH_W) 'local/strverscmp.c'; else $(CYGPATH_W) '$(srcdir)/local/strverscmp.c'; fi`
+
+src/watch-watch.o: src/watch.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_watch_CFLAGS) $(CFLAGS) -MT src/watch-watch.o -MD -MP -MF src/$(DEPDIR)/watch-watch.Tpo -c -o src/watch-watch.o `test -f 'src/watch.c' || echo '$(srcdir)/'`src/watch.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/watch-watch.Tpo src/$(DEPDIR)/watch-watch.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/watch.c' object='src/watch-watch.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_watch_CFLAGS) $(CFLAGS) -c -o src/watch-watch.o `test -f 'src/watch.c' || echo '$(srcdir)/'`src/watch.c
+
+src/watch-watch.obj: src/watch.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_watch_CFLAGS) $(CFLAGS) -MT src/watch-watch.obj -MD -MP -MF src/$(DEPDIR)/watch-watch.Tpo -c -o src/watch-watch.obj `if test -f 'src/watch.c'; then $(CYGPATH_W) 'src/watch.c'; else $(CYGPATH_W) '$(srcdir)/src/watch.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) src/$(DEPDIR)/watch-watch.Tpo src/$(DEPDIR)/watch-watch.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='src/watch.c' object='src/watch-watch.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_watch_CFLAGS) $(CFLAGS) -c -o src/watch-watch.obj `if test -f 'src/watch.c'; then $(CYGPATH_W) 'src/watch.c'; else $(CYGPATH_W) '$(srcdir)/src/watch.c'; fi`
+
+local/src_watch-strutils.o: local/strutils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_watch_CFLAGS) $(CFLAGS) -MT local/src_watch-strutils.o -MD -MP -MF local/$(DEPDIR)/src_watch-strutils.Tpo -c -o local/src_watch-strutils.o `test -f 'local/strutils.c' || echo '$(srcdir)/'`local/strutils.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) local/$(DEPDIR)/src_watch-strutils.Tpo local/$(DEPDIR)/src_watch-strutils.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='local/strutils.c' object='local/src_watch-strutils.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_watch_CFLAGS) $(CFLAGS) -c -o local/src_watch-strutils.o `test -f 'local/strutils.c' || echo '$(srcdir)/'`local/strutils.c
+
+local/src_watch-strutils.obj: local/strutils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_watch_CFLAGS) $(CFLAGS) -MT local/src_watch-strutils.obj -MD -MP -MF local/$(DEPDIR)/src_watch-strutils.Tpo -c -o local/src_watch-strutils.obj `if test -f 'local/strutils.c'; then $(CYGPATH_W) 'local/strutils.c'; else $(CYGPATH_W) '$(srcdir)/local/strutils.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) local/$(DEPDIR)/src_watch-strutils.Tpo local/$(DEPDIR)/src_watch-strutils.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='local/strutils.c' object='local/src_watch-strutils.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_watch_CFLAGS) $(CFLAGS) -c -o local/src_watch-strutils.obj `if test -f 'local/strutils.c'; then $(CYGPATH_W) 'local/strutils.c'; else $(CYGPATH_W) '$(srcdir)/local/strutils.c'; fi`
+
+local/src_watch-fileutils.o: local/fileutils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_watch_CFLAGS) $(CFLAGS) -MT local/src_watch-fileutils.o -MD -MP -MF local/$(DEPDIR)/src_watch-fileutils.Tpo -c -o local/src_watch-fileutils.o `test -f 'local/fileutils.c' || echo '$(srcdir)/'`local/fileutils.c
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) local/$(DEPDIR)/src_watch-fileutils.Tpo local/$(DEPDIR)/src_watch-fileutils.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='local/fileutils.c' object='local/src_watch-fileutils.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_watch_CFLAGS) $(CFLAGS) -c -o local/src_watch-fileutils.o `test -f 'local/fileutils.c' || echo '$(srcdir)/'`local/fileutils.c
+
+local/src_watch-fileutils.obj: local/fileutils.c
+@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_watch_CFLAGS) $(CFLAGS) -MT local/src_watch-fileutils.obj -MD -MP -MF local/$(DEPDIR)/src_watch-fileutils.Tpo -c -o local/src_watch-fileutils.obj `if test -f 'local/fileutils.c'; then $(CYGPATH_W) 'local/fileutils.c'; else $(CYGPATH_W) '$(srcdir)/local/fileutils.c'; fi`
+@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) local/$(DEPDIR)/src_watch-fileutils.Tpo local/$(DEPDIR)/src_watch-fileutils.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='local/fileutils.c' object='local/src_watch-fileutils.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(src_watch_CFLAGS) $(CFLAGS) -c -o local/src_watch-fileutils.obj `if test -f 'local/fileutils.c'; then $(CYGPATH_W) 'local/fileutils.c'; else $(CYGPATH_W) '$(srcdir)/local/fileutils.c'; fi`
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+ -rm -rf library/.libs library/_libs
+ -rm -rf library/tests/.libs library/tests/_libs
+ -rm -rf src/.libs src/_libs
+ -rm -rf src/ps/.libs src/ps/_libs
+ -rm -rf src/tests/.libs src/tests/_libs
+ -rm -rf src/top/.libs src/top/_libs
+
+distclean-libtool:
+ -rm -f libtool config.lt
+install-man1: $(dist_man_MANS)
+ @$(NORMAL_INSTALL)
+ @list1=''; \
+ list2='$(dist_man_MANS)'; \
+ test -n "$(man1dir)" \
+ && test -n "`echo $$list1$$list2`" \
+ || exit 0; \
+ echo " $(MKDIR_P) '$(DESTDIR)$(man1dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(man1dir)" || exit 1; \
+ { for i in $$list1; do echo "$$i"; done; \
+ if test -n "$$list2"; then \
+ for i in $$list2; do echo "$$i"; done \
+ | sed -n '/\.1[a-z]*$$/p'; \
+ fi; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+ fi; \
+ done; \
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+ done; }
+
+uninstall-man1:
+ @$(NORMAL_UNINSTALL)
+ @list=''; test -n "$(man1dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.1[a-z]*$$/p'; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ dir='$(DESTDIR)$(man1dir)'; $(am__uninstall_files_from_dir)
+install-man3: $(dist_man_MANS)
+ @$(NORMAL_INSTALL)
+ @list1=''; \
+ list2='$(dist_man_MANS)'; \
+ test -n "$(man3dir)" \
+ && test -n "`echo $$list1$$list2`" \
+ || exit 0; \
+ echo " $(MKDIR_P) '$(DESTDIR)$(man3dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(man3dir)" || exit 1; \
+ { for i in $$list1; do echo "$$i"; done; \
+ if test -n "$$list2"; then \
+ for i in $$list2; do echo "$$i"; done \
+ | sed -n '/\.3[a-z]*$$/p'; \
+ fi; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man3dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man3dir)/$$inst" || exit $$?; \
+ fi; \
+ done; \
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man3dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man3dir)" || exit $$?; }; \
+ done; }
+
+uninstall-man3:
+ @$(NORMAL_UNINSTALL)
+ @list=''; test -n "$(man3dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.3[a-z]*$$/p'; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ dir='$(DESTDIR)$(man3dir)'; $(am__uninstall_files_from_dir)
+install-man5: $(dist_man_MANS)
+ @$(NORMAL_INSTALL)
+ @list1=''; \
+ list2='$(dist_man_MANS)'; \
+ test -n "$(man5dir)" \
+ && test -n "`echo $$list1$$list2`" \
+ || exit 0; \
+ echo " $(MKDIR_P) '$(DESTDIR)$(man5dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(man5dir)" || exit 1; \
+ { for i in $$list1; do echo "$$i"; done; \
+ if test -n "$$list2"; then \
+ for i in $$list2; do echo "$$i"; done \
+ | sed -n '/\.5[a-z]*$$/p'; \
+ fi; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \
+ fi; \
+ done; \
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \
+ done; }
+
+uninstall-man5:
+ @$(NORMAL_UNINSTALL)
+ @list=''; test -n "$(man5dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.5[a-z]*$$/p'; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ dir='$(DESTDIR)$(man5dir)'; $(am__uninstall_files_from_dir)
+install-man8: $(dist_man_MANS)
+ @$(NORMAL_INSTALL)
+ @list1=''; \
+ list2='$(dist_man_MANS)'; \
+ test -n "$(man8dir)" \
+ && test -n "`echo $$list1$$list2`" \
+ || exit 0; \
+ echo " $(MKDIR_P) '$(DESTDIR)$(man8dir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(man8dir)" || exit 1; \
+ { for i in $$list1; do echo "$$i"; done; \
+ if test -n "$$list2"; then \
+ for i in $$list2; do echo "$$i"; done \
+ | sed -n '/\.8[a-z]*$$/p'; \
+ fi; \
+ } | while read p; do \
+ if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; echo "$$p"; \
+ done | \
+ sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+ sed 'N;N;s,\n, ,g' | { \
+ list=; while read file base inst; do \
+ if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man8dir)/$$inst'"; \
+ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man8dir)/$$inst" || exit $$?; \
+ fi; \
+ done; \
+ for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+ while read files; do \
+ test -z "$$files" || { \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man8dir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(man8dir)" || exit $$?; }; \
+ done; }
+
+uninstall-man8:
+ @$(NORMAL_UNINSTALL)
+ @list=''; test -n "$(man8dir)" || exit 0; \
+ files=`{ for i in $$list; do echo "$$i"; done; \
+ l2='$(dist_man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+ sed -n '/\.8[a-z]*$$/p'; \
+ } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^8][0-9a-z]*$$,8,;x' \
+ -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+ dir='$(DESTDIR)$(man8dir)'; $(am__uninstall_files_from_dir)
+install-dist_procpsngDATA: $(dist_procpsng_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(dist_procpsng_DATA)'; test -n "$(procpsngdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(procpsngdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(procpsngdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(procpsngdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(procpsngdir)" || exit $$?; \
+ done
+
+uninstall-dist_procpsngDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(dist_procpsng_DATA)'; test -n "$(procpsngdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(procpsngdir)'; $(am__uninstall_files_from_dir)
+install-pkgconfigDATA: $(pkgconfig_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
+ done
+
+uninstall-pkgconfigDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
+install-sysconfDATA: $(sysconf_DATA)
+ @$(NORMAL_INSTALL)
+ @list='$(sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(sysconfdir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(sysconfdir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sysconfdir)'"; \
+ $(INSTALL_DATA) $$files "$(DESTDIR)$(sysconfdir)" || exit $$?; \
+ done
+
+uninstall-sysconfDATA:
+ @$(NORMAL_UNINSTALL)
+ @list='$(sysconf_DATA)'; test -n "$(sysconfdir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(sysconfdir)'; $(am__uninstall_files_from_dir)
+install-library_libproc2_la_includeHEADERS: $(library_libproc2_la_include_HEADERS)
+ @$(NORMAL_INSTALL)
+ @list='$(library_libproc2_la_include_HEADERS)'; test -n "$(library_libproc2_la_includedir)" || list=; \
+ if test -n "$$list"; then \
+ echo " $(MKDIR_P) '$(DESTDIR)$(library_libproc2_la_includedir)'"; \
+ $(MKDIR_P) "$(DESTDIR)$(library_libproc2_la_includedir)" || exit 1; \
+ fi; \
+ for p in $$list; do \
+ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
+ echo "$$d$$p"; \
+ done | $(am__base_list) | \
+ while read files; do \
+ echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(library_libproc2_la_includedir)'"; \
+ $(INSTALL_HEADER) $$files "$(DESTDIR)$(library_libproc2_la_includedir)" || exit $$?; \
+ done
+
+uninstall-library_libproc2_la_includeHEADERS:
+ @$(NORMAL_UNINSTALL)
+ @list='$(library_libproc2_la_include_HEADERS)'; test -n "$(library_libproc2_la_includedir)" || list=; \
+ files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+ dir='$(DESTDIR)$(library_libproc2_la_includedir)'; $(am__uninstall_files_from_dir)
+
+# This directory's subdirectories are mostly independent; you can cd
+# into them and run 'make' without going through this Makefile.
+# To change the values of 'make' variables: instead of editing Makefiles,
+# (1) if the variable is set in 'config.status', edit 'config.status'
+# (which will cause the Makefiles to be regenerated when you run 'make');
+# (2) otherwise, pass the desired values on the 'make' command line.
+$(am__recursive_targets):
+ @fail=; \
+ if $(am__make_keepgoing); then \
+ failcom='fail=yes'; \
+ else \
+ failcom='exit 1'; \
+ fi; \
+ dot_seen=no; \
+ target=`echo $@ | sed s/-recursive//`; \
+ case "$@" in \
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
+ *) list='$(SUBDIRS)' ;; \
+ esac; \
+ for subdir in $$list; do \
+ echo "Making $$target in $$subdir"; \
+ if test "$$subdir" = "."; then \
+ dot_seen=yes; \
+ local_target="$$target-am"; \
+ else \
+ local_target="$$target"; \
+ fi; \
+ ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+ || eval $$failcom; \
+ done; \
+ if test "$$dot_seen" = "no"; then \
+ $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
+ fi; test -z "$$fail"
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-recursive
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
+ include_option=--etags-include; \
+ empty_fix=.; \
+ else \
+ include_option=--include; \
+ empty_fix=; \
+ fi; \
+ list='$(SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ test ! -f $$subdir/TAGS || \
+ set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
+ fi; \
+ done; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-recursive
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscope: cscope.files
+ test ! -s cscope.files \
+ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
+clean-cscope:
+ -rm -f cscope.files
+cscope.files: clean-cscope cscopelist
+cscopelist: cscopelist-recursive
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+ -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
+
+# Recover from deleted '.trs' file; this should ensure that
+# "rm -f foo.log; make foo.trs" re-run 'foo.test', and re-create
+# both 'foo.log' and 'foo.trs'. Break the recipe in two subshells
+# to avoid problems with "make -n".
+.log.trs:
+ rm -f $< $@
+ $(MAKE) $(AM_MAKEFLAGS) $<
+
+# Leading 'am--fnord' is there to ensure the list of targets does not
+# expand to empty, as could happen e.g. with make check TESTS=''.
+am--fnord $(TEST_LOGS) $(TEST_LOGS:.log=.trs): $(am__force_recheck)
+am--force-recheck:
+ @:
+
+$(TEST_SUITE_LOG): $(TEST_LOGS)
+ @$(am__set_TESTS_bases); \
+ am__f_ok () { test -f "$$1" && test -r "$$1"; }; \
+ redo_bases=`for i in $$bases; do \
+ am__f_ok $$i.trs && am__f_ok $$i.log || echo $$i; \
+ done`; \
+ if test -n "$$redo_bases"; then \
+ redo_logs=`for i in $$redo_bases; do echo $$i.log; done`; \
+ redo_results=`for i in $$redo_bases; do echo $$i.trs; done`; \
+ if $(am__make_dryrun); then :; else \
+ rm -f $$redo_logs && rm -f $$redo_results || exit 1; \
+ fi; \
+ fi; \
+ if test -n "$$am__remaking_logs"; then \
+ echo "fatal: making $(TEST_SUITE_LOG): possible infinite" \
+ "recursion detected" >&2; \
+ elif test -n "$$redo_logs"; then \
+ am__remaking_logs=yes $(MAKE) $(AM_MAKEFLAGS) $$redo_logs; \
+ fi; \
+ if $(am__make_dryrun); then :; else \
+ st=0; \
+ errmsg="fatal: making $(TEST_SUITE_LOG): failed to create"; \
+ for i in $$redo_bases; do \
+ test -f $$i.trs && test -r $$i.trs \
+ || { echo "$$errmsg $$i.trs" >&2; st=1; }; \
+ test -f $$i.log && test -r $$i.log \
+ || { echo "$$errmsg $$i.log" >&2; st=1; }; \
+ done; \
+ test $$st -eq 0 || exit 1; \
+ fi
+ @$(am__sh_e_setup); $(am__tty_colors); $(am__set_TESTS_bases); \
+ ws='[ ]'; \
+ results=`for b in $$bases; do echo $$b.trs; done`; \
+ test -n "$$results" || results=/dev/null; \
+ all=` grep "^$$ws*:test-result:" $$results | wc -l`; \
+ pass=` grep "^$$ws*:test-result:$$ws*PASS" $$results | wc -l`; \
+ fail=` grep "^$$ws*:test-result:$$ws*FAIL" $$results | wc -l`; \
+ skip=` grep "^$$ws*:test-result:$$ws*SKIP" $$results | wc -l`; \
+ xfail=`grep "^$$ws*:test-result:$$ws*XFAIL" $$results | wc -l`; \
+ xpass=`grep "^$$ws*:test-result:$$ws*XPASS" $$results | wc -l`; \
+ error=`grep "^$$ws*:test-result:$$ws*ERROR" $$results | wc -l`; \
+ if test `expr $$fail + $$xpass + $$error` -eq 0; then \
+ success=true; \
+ else \
+ success=false; \
+ fi; \
+ br='==================='; br=$$br$$br$$br$$br; \
+ result_count () \
+ { \
+ if test x"$$1" = x"--maybe-color"; then \
+ maybe_colorize=yes; \
+ elif test x"$$1" = x"--no-color"; then \
+ maybe_colorize=no; \
+ else \
+ echo "$@: invalid 'result_count' usage" >&2; exit 4; \
+ fi; \
+ shift; \
+ desc=$$1 count=$$2; \
+ if test $$maybe_colorize = yes && test $$count -gt 0; then \
+ color_start=$$3 color_end=$$std; \
+ else \
+ color_start= color_end=; \
+ fi; \
+ echo "$${color_start}# $$desc $$count$${color_end}"; \
+ }; \
+ create_testsuite_report () \
+ { \
+ result_count $$1 "TOTAL:" $$all "$$brg"; \
+ result_count $$1 "PASS: " $$pass "$$grn"; \
+ result_count $$1 "SKIP: " $$skip "$$blu"; \
+ result_count $$1 "XFAIL:" $$xfail "$$lgn"; \
+ result_count $$1 "FAIL: " $$fail "$$red"; \
+ result_count $$1 "XPASS:" $$xpass "$$red"; \
+ result_count $$1 "ERROR:" $$error "$$mgn"; \
+ }; \
+ { \
+ echo "$(PACKAGE_STRING): $(subdir)/$(TEST_SUITE_LOG)" | \
+ $(am__rst_title); \
+ create_testsuite_report --no-color; \
+ echo; \
+ echo ".. contents:: :depth: 2"; \
+ echo; \
+ for b in $$bases; do echo $$b; done \
+ | $(am__create_global_log); \
+ } >$(TEST_SUITE_LOG).tmp || exit 1; \
+ mv $(TEST_SUITE_LOG).tmp $(TEST_SUITE_LOG); \
+ if $$success; then \
+ col="$$grn"; \
+ else \
+ col="$$red"; \
+ test x"$$VERBOSE" = x || cat $(TEST_SUITE_LOG); \
+ fi; \
+ echo "$${col}$$br$${std}"; \
+ echo "$${col}Testsuite summary"$(AM_TESTSUITE_SUMMARY_HEADER)"$${std}"; \
+ echo "$${col}$$br$${std}"; \
+ create_testsuite_report --maybe-color; \
+ echo "$$col$$br$$std"; \
+ if $$success; then :; else \
+ echo "$${col}See $(subdir)/$(TEST_SUITE_LOG)$${std}"; \
+ if test -n "$(PACKAGE_BUGREPORT)"; then \
+ echo "$${col}Please report to $(PACKAGE_BUGREPORT)$${std}"; \
+ fi; \
+ echo "$$col$$br$$std"; \
+ fi; \
+ $$success || exit 1
+
+check-TESTS: $(check_PROGRAMS)
+ @list='$(RECHECK_LOGS)'; test -z "$$list" || rm -f $$list
+ @list='$(RECHECK_LOGS:.log=.trs)'; test -z "$$list" || rm -f $$list
+ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ @set +e; $(am__set_TESTS_bases); \
+ log_list=`for i in $$bases; do echo $$i.log; done`; \
+ trs_list=`for i in $$bases; do echo $$i.trs; done`; \
+ log_list=`echo $$log_list`; trs_list=`echo $$trs_list`; \
+ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) TEST_LOGS="$$log_list"; \
+ exit $$?;
+recheck: all $(check_PROGRAMS)
+ @test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+ @set +e; $(am__set_TESTS_bases); \
+ bases=`for i in $$bases; do echo $$i; done \
+ | $(am__list_recheck_tests)` || exit 1; \
+ log_list=`for i in $$bases; do echo $$i.log; done`; \
+ log_list=`echo $$log_list`; \
+ $(MAKE) $(AM_MAKEFLAGS) $(TEST_SUITE_LOG) \
+ am__force_recheck=am--force-recheck \
+ TEST_LOGS="$$log_list"; \
+ exit $$?
+library/tests/test_pids.log: library/tests/test_pids$(EXEEXT)
+ @p='library/tests/test_pids$(EXEEXT)'; \
+ b='library/tests/test_pids'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+library/tests/test_uptime.log: library/tests/test_uptime$(EXEEXT)
+ @p='library/tests/test_uptime$(EXEEXT)'; \
+ b='library/tests/test_uptime'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+library/tests/test_sysinfo.log: library/tests/test_sysinfo$(EXEEXT)
+ @p='library/tests/test_sysinfo$(EXEEXT)'; \
+ b='library/tests/test_sysinfo'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+library/tests/test_version.log: library/tests/test_version$(EXEEXT)
+ @p='library/tests/test_version$(EXEEXT)'; \
+ b='library/tests/test_version'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+library/tests/test_namespace.log: library/tests/test_namespace$(EXEEXT)
+ @p='library/tests/test_namespace$(EXEEXT)'; \
+ b='library/tests/test_namespace'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+src/tests/test_fileutils.log: src/tests/test_fileutils$(EXEEXT)
+ @p='src/tests/test_fileutils$(EXEEXT)'; \
+ b='src/tests/test_fileutils'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+src/tests/test_strtod_nol.log: src/tests/test_strtod_nol$(EXEEXT)
+ @p='src/tests/test_strtod_nol$(EXEEXT)'; \
+ b='src/tests/test_strtod_nol'; \
+ $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+.test.log:
+ @p='$<'; \
+ $(am__set_b); \
+ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+ --log-file $$b.log --trs-file $$b.trs \
+ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+ "$$tst" $(AM_TESTS_FD_REDIRECT)
+@am__EXEEXT_TRUE@.test$(EXEEXT).log:
+@am__EXEEXT_TRUE@ @p='$<'; \
+@am__EXEEXT_TRUE@ $(am__set_b); \
+@am__EXEEXT_TRUE@ $(am__check_pre) $(TEST_LOG_DRIVER) --test-name "$$f" \
+@am__EXEEXT_TRUE@ --log-file $$b.log --trs-file $$b.trs \
+@am__EXEEXT_TRUE@ $(am__common_driver_flags) $(AM_TEST_LOG_DRIVER_FLAGS) $(TEST_LOG_DRIVER_FLAGS) -- $(TEST_LOG_COMPILE) \
+@am__EXEEXT_TRUE@ "$$tst" $(AM_TESTS_FD_REDIRECT)
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ $(am__remove_distdir)
+ test -d "$(distdir)" || mkdir "$(distdir)"
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+ if test "$$subdir" = .; then :; else \
+ $(am__make_dryrun) \
+ || test -d "$(distdir)/$$subdir" \
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
+ || exit 1; \
+ dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+ $(am__relativize); \
+ new_distdir=$$reldir; \
+ dir1=$$subdir; dir2="$(top_distdir)"; \
+ $(am__relativize); \
+ new_top_distdir=$$reldir; \
+ echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+ echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+ ($(am__cd) $$subdir && \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$$new_top_distdir" \
+ distdir="$$new_distdir" \
+ am__remove_distdir=: \
+ am__skip_length_check=: \
+ am__skip_mode_fix=: \
+ distdir) \
+ || exit 1; \
+ fi; \
+ done
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" distdir="$(distdir)" \
+ dist-hook
+ -test -n "$(am__skip_mode_fix)" \
+ || find "$(distdir)" -type d ! -perm -755 \
+ -exec chmod u+rwx,go+rx {} \; -o \
+ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
+ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
+ || chmod -R a+r "$(distdir)"
+dist-gzip: distdir
+ tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz
+ $(am__post_remove_distdir)
+
+dist-bzip2: distdir
+ tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
+ $(am__post_remove_distdir)
+
+dist-lzip: distdir
+ tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
+ $(am__post_remove_distdir)
+dist-xz: distdir
+ tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
+ $(am__post_remove_distdir)
+
+dist-zstd: distdir
+ tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst
+ $(am__post_remove_distdir)
+
+dist-tarZ: distdir
+ @echo WARNING: "Support for distribution archives compressed with" \
+ "legacy program 'compress' is deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__post_remove_distdir)
+
+dist-shar: distdir
+ @echo WARNING: "Support for shar distribution archives is" \
+ "deprecated." >&2
+ @echo WARNING: "It will be removed altogether in Automake 2.0" >&2
+ shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz
+ $(am__post_remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
+ $(am__post_remove_distdir)
+
+dist dist-all:
+ $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
+ $(am__post_remove_distdir)
+
+# This target untars the dist file and tries a VPATH configuration. Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+ case '$(DIST_ARCHIVES)' in \
+ *.tar.gz*) \
+ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
+ *.tar.bz2*) \
+ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
+ *.tar.lz*) \
+ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
+ *.tar.xz*) \
+ xz -dc $(distdir).tar.xz | $(am__untar) ;;\
+ *.tar.Z*) \
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+ *.shar.gz*) \
+ eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
+ *.zip*) \
+ unzip $(distdir).zip ;;\
+ *.tar.zst*) \
+ zstd -dc $(distdir).tar.zst | $(am__untar) ;;\
+ esac
+ chmod -R a-w $(distdir)
+ chmod u+w $(distdir)
+ mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst
+ chmod a-w $(distdir)
+ test -d $(distdir)/_build || exit 0; \
+ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+ && am__cwd=`pwd` \
+ && $(am__cd) $(distdir)/_build/sub \
+ && ../../configure \
+ $(AM_DISTCHECK_CONFIGURE_FLAGS) \
+ $(DISTCHECK_CONFIGURE_FLAGS) \
+ --srcdir=../.. --prefix="$$dc_install_base" \
+ && $(MAKE) $(AM_MAKEFLAGS) \
+ && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \
+ && $(MAKE) $(AM_MAKEFLAGS) check \
+ && $(MAKE) $(AM_MAKEFLAGS) install \
+ && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+ && $(MAKE) $(AM_MAKEFLAGS) uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \
+ distuninstallcheck \
+ && chmod -R a-w "$$dc_install_base" \
+ && ({ \
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
+ && rm -rf "$$dc_destdir" \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && rm -rf $(DIST_ARCHIVES) \
+ && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+ && cd "$$am__cwd" \
+ || exit 1
+ $(am__post_remove_distdir)
+ @(echo "$(distdir) archives ready for distribution: "; \
+ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+ @test -n '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: trying to run $@ with an empty' \
+ '$$(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ $(am__cd) '$(distuninstallcheck_dir)' || { \
+ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
+ exit 1; \
+ }; \
+ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left after uninstall:" ; \
+ if test -n "$(DESTDIR)"; then \
+ echo " (check DESTDIR support)"; \
+ fi ; \
+ $(distuninstallcheck_listfiles) ; \
+ exit 1; } >&2
+distcleancheck: distclean
+ @if test '$(srcdir)' = . ; then \
+ echo "ERROR: distcleancheck can only run from a VPATH build" ; \
+ exit 1 ; \
+ fi
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left in build directory after distclean:" ; \
+ $(distcleancheck_listfiles) ; \
+ exit 1; } >&2
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) $(check_PROGRAMS)
+ $(MAKE) $(AM_MAKEFLAGS) check-TESTS
+check: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) check-recursive
+all-am: Makefile $(PROGRAMS) $(LTLIBRARIES) $(MANS) $(DATA) $(HEADERS) \
+ config.h
+install-binPROGRAMS: install-libLTLIBRARIES
+
+install-checkPROGRAMS: install-libLTLIBRARIES
+
+install-sbinPROGRAMS: install-libLTLIBRARIES
+
+install-usrbinexecPROGRAMS: install-libLTLIBRARIES
+
+installdirs: installdirs-recursive
+installdirs-am:
+ for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(sbindir)" "$(DESTDIR)$(usrbin_execdir)" "$(DESTDIR)$(libdir)" "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(man5dir)" "$(DESTDIR)$(man8dir)" "$(DESTDIR)$(procpsngdir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(sysconfdir)" "$(DESTDIR)$(library_libproc2_la_includedir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
+install: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-recursive
+install-exec: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) install-exec-recursive
+install-data: install-data-recursive
+uninstall: uninstall-recursive
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-recursive
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+ -test -z "$(TEST_LOGS)" || rm -f $(TEST_LOGS)
+ -test -z "$(TEST_LOGS:.log=.trs)" || rm -f $(TEST_LOGS:.log=.trs)
+ -test -z "$(TEST_SUITE_LOG)" || rm -f $(TEST_SUITE_LOG)
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -rm -f library/$(DEPDIR)/$(am__dirstamp)
+ -rm -f library/$(am__dirstamp)
+ -rm -f library/tests/$(DEPDIR)/$(am__dirstamp)
+ -rm -f library/tests/$(am__dirstamp)
+ -rm -f local/$(DEPDIR)/$(am__dirstamp)
+ -rm -f local/$(am__dirstamp)
+ -rm -f src/$(DEPDIR)/$(am__dirstamp)
+ -rm -f src/$(am__dirstamp)
+ -rm -f src/ps/$(DEPDIR)/$(am__dirstamp)
+ -rm -f src/ps/$(am__dirstamp)
+ -rm -f src/tests/$(DEPDIR)/$(am__dirstamp)
+ -rm -f src/tests/$(am__dirstamp)
+ -rm -f src/top/$(DEPDIR)/$(am__dirstamp)
+ -rm -f src/top/$(am__dirstamp)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
+clean: clean-recursive
+
+clean-am: clean-binPROGRAMS clean-checkPROGRAMS clean-generic \
+ clean-libLTLIBRARIES clean-libtool clean-sbinPROGRAMS \
+ clean-usrbin_execPROGRAMS mostlyclean-am
+
+distclean: distclean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -f library/$(DEPDIR)/devname.Plo
+ -rm -f library/$(DEPDIR)/diskstats.Plo
+ -rm -f library/$(DEPDIR)/escape.Plo
+ -rm -f library/$(DEPDIR)/meminfo.Plo
+ -rm -f library/$(DEPDIR)/namespace.Plo
+ -rm -f library/$(DEPDIR)/numa.Plo
+ -rm -f library/$(DEPDIR)/pids.Plo
+ -rm -f library/$(DEPDIR)/pwcache.Plo
+ -rm -f library/$(DEPDIR)/readproc.Plo
+ -rm -f library/$(DEPDIR)/slabinfo.Plo
+ -rm -f library/$(DEPDIR)/stat.Plo
+ -rm -f library/$(DEPDIR)/sysinfo.Plo
+ -rm -f library/$(DEPDIR)/uptime.Plo
+ -rm -f library/$(DEPDIR)/version.Plo
+ -rm -f library/$(DEPDIR)/vmstat.Plo
+ -rm -f library/$(DEPDIR)/wchan.Plo
+ -rm -f library/tests/$(DEPDIR)/test_Itemtables.Po
+ -rm -f library/tests/$(DEPDIR)/test_namespace.Po
+ -rm -f library/tests/$(DEPDIR)/test_pids.Po
+ -rm -f library/tests/$(DEPDIR)/test_sysinfo.Po
+ -rm -f library/tests/$(DEPDIR)/test_uptime.Po
+ -rm -f library/tests/$(DEPDIR)/test_version.Po
+ -rm -f local/$(DEPDIR)/fileutils.Po
+ -rm -f local/$(DEPDIR)/procio.Po
+ -rm -f local/$(DEPDIR)/signals.Po
+ -rm -f local/$(DEPDIR)/src_slabtop-fileutils.Po
+ -rm -f local/$(DEPDIR)/src_slabtop-strutils.Po
+ -rm -f local/$(DEPDIR)/src_top_top-fileutils.Po
+ -rm -f local/$(DEPDIR)/src_top_top-signals.Po
+ -rm -f local/$(DEPDIR)/src_top_top-strverscmp.Po
+ -rm -f local/$(DEPDIR)/src_watch-fileutils.Po
+ -rm -f local/$(DEPDIR)/src_watch-strutils.Po
+ -rm -f local/$(DEPDIR)/strutils.Po
+ -rm -f src/$(DEPDIR)/free.Po
+ -rm -f src/$(DEPDIR)/kill.Po
+ -rm -f src/$(DEPDIR)/pgrep.Po
+ -rm -f src/$(DEPDIR)/pidof.Po
+ -rm -f src/$(DEPDIR)/pmap.Po
+ -rm -f src/$(DEPDIR)/pwdx.Po
+ -rm -f src/$(DEPDIR)/skill.Po
+ -rm -f src/$(DEPDIR)/slabtop-slabtop.Po
+ -rm -f src/$(DEPDIR)/sysctl.Po
+ -rm -f src/$(DEPDIR)/tload.Po
+ -rm -f src/$(DEPDIR)/uptime.Po
+ -rm -f src/$(DEPDIR)/vmstat.Po
+ -rm -f src/$(DEPDIR)/w.Po
+ -rm -f src/$(DEPDIR)/watch-watch.Po
+ -rm -f src/ps/$(DEPDIR)/display.Po
+ -rm -f src/ps/$(DEPDIR)/global.Po
+ -rm -f src/ps/$(DEPDIR)/help.Po
+ -rm -f src/ps/$(DEPDIR)/output.Po
+ -rm -f src/ps/$(DEPDIR)/parser.Po
+ -rm -f src/ps/$(DEPDIR)/select.Po
+ -rm -f src/ps/$(DEPDIR)/signames.Po
+ -rm -f src/ps/$(DEPDIR)/sortformat.Po
+ -rm -f src/ps/$(DEPDIR)/stacktrace.Po
+ -rm -f src/tests/$(DEPDIR)/test_fileutils.Po
+ -rm -f src/tests/$(DEPDIR)/test_process.Po
+ -rm -f src/tests/$(DEPDIR)/test_shm.Po
+ -rm -f src/tests/$(DEPDIR)/test_strtod_nol.Po
+ -rm -f src/tests/$(DEPDIR)/test_strutils.Po
+ -rm -f src/top/$(DEPDIR)/top-top.Po
+ -rm -f src/top/$(DEPDIR)/top-top_nls.Po
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-hdr distclean-libtool distclean-tags
+
+dvi: dvi-recursive
+
+dvi-am:
+
+html: html-recursive
+
+html-am:
+
+info: info-recursive
+
+info-am:
+
+install-data-am: install-dist_procpsngDATA \
+ install-library_libproc2_la_includeHEADERS install-man \
+ install-pkgconfigDATA
+
+install-dvi: install-dvi-recursive
+
+install-dvi-am:
+
+install-exec-am: install-binPROGRAMS install-libLTLIBRARIES \
+ install-sbinPROGRAMS install-sysconfDATA \
+ install-usrbin_execPROGRAMS
+
+install-html: install-html-recursive
+
+install-html-am:
+
+install-info: install-info-recursive
+
+install-info-am:
+
+install-man: install-man1 install-man3 install-man5 install-man8
+
+install-pdf: install-pdf-recursive
+
+install-pdf-am:
+
+install-ps: install-ps-recursive
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-recursive
+ -rm -f $(am__CONFIG_DISTCLEAN_FILES)
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -f library/$(DEPDIR)/devname.Plo
+ -rm -f library/$(DEPDIR)/diskstats.Plo
+ -rm -f library/$(DEPDIR)/escape.Plo
+ -rm -f library/$(DEPDIR)/meminfo.Plo
+ -rm -f library/$(DEPDIR)/namespace.Plo
+ -rm -f library/$(DEPDIR)/numa.Plo
+ -rm -f library/$(DEPDIR)/pids.Plo
+ -rm -f library/$(DEPDIR)/pwcache.Plo
+ -rm -f library/$(DEPDIR)/readproc.Plo
+ -rm -f library/$(DEPDIR)/slabinfo.Plo
+ -rm -f library/$(DEPDIR)/stat.Plo
+ -rm -f library/$(DEPDIR)/sysinfo.Plo
+ -rm -f library/$(DEPDIR)/uptime.Plo
+ -rm -f library/$(DEPDIR)/version.Plo
+ -rm -f library/$(DEPDIR)/vmstat.Plo
+ -rm -f library/$(DEPDIR)/wchan.Plo
+ -rm -f library/tests/$(DEPDIR)/test_Itemtables.Po
+ -rm -f library/tests/$(DEPDIR)/test_namespace.Po
+ -rm -f library/tests/$(DEPDIR)/test_pids.Po
+ -rm -f library/tests/$(DEPDIR)/test_sysinfo.Po
+ -rm -f library/tests/$(DEPDIR)/test_uptime.Po
+ -rm -f library/tests/$(DEPDIR)/test_version.Po
+ -rm -f local/$(DEPDIR)/fileutils.Po
+ -rm -f local/$(DEPDIR)/procio.Po
+ -rm -f local/$(DEPDIR)/signals.Po
+ -rm -f local/$(DEPDIR)/src_slabtop-fileutils.Po
+ -rm -f local/$(DEPDIR)/src_slabtop-strutils.Po
+ -rm -f local/$(DEPDIR)/src_top_top-fileutils.Po
+ -rm -f local/$(DEPDIR)/src_top_top-signals.Po
+ -rm -f local/$(DEPDIR)/src_top_top-strverscmp.Po
+ -rm -f local/$(DEPDIR)/src_watch-fileutils.Po
+ -rm -f local/$(DEPDIR)/src_watch-strutils.Po
+ -rm -f local/$(DEPDIR)/strutils.Po
+ -rm -f src/$(DEPDIR)/free.Po
+ -rm -f src/$(DEPDIR)/kill.Po
+ -rm -f src/$(DEPDIR)/pgrep.Po
+ -rm -f src/$(DEPDIR)/pidof.Po
+ -rm -f src/$(DEPDIR)/pmap.Po
+ -rm -f src/$(DEPDIR)/pwdx.Po
+ -rm -f src/$(DEPDIR)/skill.Po
+ -rm -f src/$(DEPDIR)/slabtop-slabtop.Po
+ -rm -f src/$(DEPDIR)/sysctl.Po
+ -rm -f src/$(DEPDIR)/tload.Po
+ -rm -f src/$(DEPDIR)/uptime.Po
+ -rm -f src/$(DEPDIR)/vmstat.Po
+ -rm -f src/$(DEPDIR)/w.Po
+ -rm -f src/$(DEPDIR)/watch-watch.Po
+ -rm -f src/ps/$(DEPDIR)/display.Po
+ -rm -f src/ps/$(DEPDIR)/global.Po
+ -rm -f src/ps/$(DEPDIR)/help.Po
+ -rm -f src/ps/$(DEPDIR)/output.Po
+ -rm -f src/ps/$(DEPDIR)/parser.Po
+ -rm -f src/ps/$(DEPDIR)/select.Po
+ -rm -f src/ps/$(DEPDIR)/signames.Po
+ -rm -f src/ps/$(DEPDIR)/sortformat.Po
+ -rm -f src/ps/$(DEPDIR)/stacktrace.Po
+ -rm -f src/tests/$(DEPDIR)/test_fileutils.Po
+ -rm -f src/tests/$(DEPDIR)/test_process.Po
+ -rm -f src/tests/$(DEPDIR)/test_shm.Po
+ -rm -f src/tests/$(DEPDIR)/test_strtod_nol.Po
+ -rm -f src/tests/$(DEPDIR)/test_strutils.Po
+ -rm -f src/top/$(DEPDIR)/top-top.Po
+ -rm -f src/top/$(DEPDIR)/top-top_nls.Po
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-recursive
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-recursive
+
+pdf-am:
+
+ps: ps-recursive
+
+ps-am:
+
+uninstall-am: uninstall-binPROGRAMS uninstall-dist_procpsngDATA \
+ uninstall-libLTLIBRARIES \
+ uninstall-library_libproc2_la_includeHEADERS uninstall-man \
+ uninstall-pkgconfigDATA uninstall-sbinPROGRAMS \
+ uninstall-sysconfDATA uninstall-usrbin_execPROGRAMS
+
+uninstall-man: uninstall-man1 uninstall-man3 uninstall-man5 \
+ uninstall-man8
+
+.MAKE: $(am__recursive_targets) all check check-am install install-am \
+ install-exec install-strip
+
+.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
+ am--depfiles am--refresh check check-TESTS check-am clean \
+ clean-binPROGRAMS clean-checkPROGRAMS clean-cscope \
+ clean-generic clean-libLTLIBRARIES clean-libtool \
+ clean-sbinPROGRAMS clean-usrbin_execPROGRAMS cscope \
+ cscopelist-am ctags ctags-am dist dist-all dist-bzip2 \
+ dist-gzip dist-hook dist-lzip dist-shar dist-tarZ dist-xz \
+ dist-zip dist-zstd distcheck distclean distclean-compile \
+ distclean-generic distclean-hdr distclean-libtool \
+ distclean-tags distcleancheck distdir distuninstallcheck dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-binPROGRAMS install-data install-data-am \
+ install-dist_procpsngDATA install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-libLTLIBRARIES \
+ install-library_libproc2_la_includeHEADERS install-man \
+ install-man1 install-man3 install-man5 install-man8 \
+ install-pdf install-pdf-am install-pkgconfigDATA install-ps \
+ install-ps-am install-sbinPROGRAMS install-strip \
+ install-sysconfDATA install-usrbin_execPROGRAMS installcheck \
+ installcheck-am installdirs installdirs-am maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ recheck tags tags-am uninstall uninstall-am \
+ uninstall-binPROGRAMS uninstall-dist_procpsngDATA \
+ uninstall-libLTLIBRARIES \
+ uninstall-library_libproc2_la_includeHEADERS uninstall-man \
+ uninstall-man1 uninstall-man3 uninstall-man5 uninstall-man8 \
+ uninstall-pkgconfigDATA uninstall-sbinPROGRAMS \
+ uninstall-sysconfDATA uninstall-usrbin_execPROGRAMS
+
+.PRECIOUS: Makefile
+
+
+@CYGWIN_TRUE@ src_skill_LDADD = $(CYGWINFLAGS)
+@CYGWIN_TRUE@ src_kill_LDADD = $(CYGWINFLAGS)
+@CYGWIN_TRUE@ src_free_LDADD = $(CYGWINFLAGS)
+@CYGWIN_TRUE@ src_pgrep_LDADD = $(CYGWINFLAGS)
+@CYGWIN_TRUE@ src_pkill_LDADD = $(CYGWINFLAGS)
+@CYGWIN_TRUE@ src_pidof_LDADD = $(CYGWINFLAGS)
+@CYGWIN_TRUE@ src_pmap_LDADD = $(CYGWINFLAGS)
+@CYGWIN_TRUE@ src_snice_LDADD = $(CYGWINFLAGS)
+@CYGWIN_TRUE@ src_tload_LDADD = $(CYGWINFLAGS)
+@CYGWIN_TRUE@ src_uptime_LDADD = $(CYGWINFLAGS)
+@CYGWIN_TRUE@ src_w_LDADD = $(CYGWINFLAGS)
+@CYGWIN_TRUE@ src_vmstat_LDADD = $(CYGWINFLAGS)
+
+check-lib: clean
+ $(MAKE) CFLAGS=-DITEMTABLE_DEBUG library/tests/test_Itemtables
+ $(top_builddir)/library/tests/test_Itemtables
+ $(MAKE) clean &>/dev/null
+
+# Automake should do this, but it doesn't
+check: $(check_PROGRAMS) $(PROGRAMS)
+
+$(top_srcdir)/.version:
+ touch $(top_srcdir)/.version
+ echo $(VERSION) > $@-t && mv $@-t $@
+dist-hook:
+ echo $(VERSION) > $(distdir)/.tarball-version
+
+get-trans:
+ echo "Getting the latest translations from translationproject.org..."
+ rsync -Lrtvz translationproject.org::tp/latest/procps-ng/ po
+ rsync -Lrtvz translationproject.org::tp/latest/procps-ng-man/ po-man
+ rm -f po-man/man.stamp
+ make -C po-man man.stamp
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..3f2158d
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,882 @@
+procps-ng-4.0.4
+---------------
+ * library (API & ABI unchanged)
+ increment revision: 0:2:0
+ tolerates all potential 'cpuinfo' formats issue #272
+ restore the proper main thread tics valuations issue #280
+ Remove myself from proc count merge #193
+ Refactor the escape code Debian #1035649
+ * free: -L one line output issue #156
+ * pgrep: Use only --signal option for signal Debian #1031765
+ * pgrep: suppress >15 warning if using regex Debian #1037450
+ * pidof: Add -t option to show threads merge #190
+ * pmap: Reset totals between processes issue #298
+ * ps: fixed missing or corrupted fields with -m option Debian #1036631, issue #279
+ * ps: Fix buffer overflow in -C option CVE-2023-4016 Debian #1042887, issue #297
+ * ps: Add --signames to show signal names in masks merge #98
+ * sysctl: -N show names merge #198, RH #2222056
+ * tests: dont compare floats with == issue #271
+ * tests: skips tests if maps missing merge #197, Gentoo #583036
+ * top: bad command line arguments yield EXIT_FAILURE issue #273
+ * top: avoids keystroke induced '%Cpu' distortions
+ * top: includes VM (guest) tics in 'system' overhead issue #274
+ * top: includes VM (guest) tics with '!' toggle merge #179
+ * top: lessen summary cpu distortions on first display merge #180
+ * top: better backspace handling wtth line edits issue #278
+ * vmstat: Print guest time in non-wide mode
+ * w: Fix musl UT_HOSTSIZE issue
+ * watch: Add color support at compile time issue #296
+
+procps-ng-4.0.3
+---------------
+ * library
+ Only changes were in copyright headers and tests
+ * docs: Don't install English manpages twice
+ * pgrep: Add -H match on userspace signal handler merge #165
+ * pgrep: make --terminal respect other criteria
+ * ps: c flag shows command name again Debian #1026326
+ * ps.1: Match drs description from top.1 merge #156
+ * skill: Match on -p again Debian #1025915
+ * top: E/P-core toggle ('5' key) added to help
+ * vmstat: Referesh memory statistics Debian #1027963
+ * vmstat: Fix initial si,so,bi,bo,in & cs values issue #15
+ Debian #668580
+ * vmstat: Fix conversion errors due to precision merge #75
+ * w: Add --pids option merge #159
+ * watch: Pass through beep issue #104
+ * watch: -r option to not re-exec on SIGWINCH merge #125
+ * watch: find eol with --no-linewrap merge #157
+
+procps-ng-4.0.2
+---------------
+ * library revision - 0:1:0
+ Handle absent 'core_id' in /proc/cpuinfo
+ * w: Show time with D_TIME_BITS=64 on 32bit env issue #256
+
+procps-ng-4.0.1
+---------------
+ * library
+ Re-add elogind support merge #151
+ Used memory is Total - Available
+ Renaming, it is now libproc2
+ * free: Use --kilo when only specifying --si merge #163
+ * pgrep: Add -A to ignore ancestors merge #160
+ * pidwait: Better warning if pidfd_open not implemented
+ * pmap: Dont reuse stdin filehandle issue #231
+ * ps: threads again display when -L is used with -q issue #234
+ * ps: proper aix format string behavior was restored
+ * sysctl: print dotted keys again
+ * top: fix 'smaps' bug preventing build under clang issue #235
+ * top: column highlighting allowed under 'L' or 'O'
+ * top: can alter autogroup nice value (like 'r' renice)
+ * top: can display the following with no need to scroll
+ * cmdline, control groups, environment,
+ supplimentary groups, namespaces
+ * top: adds a 'message log' recall capability
+ * top: will accept utf8 multi-byte input with support
+ for full line editing and previous line recall
+ * top: can show more than 2 abreast in summary display
+ * top: can distinguish P-Core and E-core cpus
+ * top: can filter both P-Core and E-core cpus
+ * watch: Add equexit no-change and exit option merge #153
+
+procps-ng-4.0.0
+---------------
+ * Rename pwait to pidwait
+ * free: Add committed line option merge #25
+ * free: Fix -h --si combined options issue #133, #223
+ * free: Fix first column justification issue #229, #204, #206, Debian #1001689
+ * free: Better spacing for Chinese language issue #213
+ * library: renamed to libproc-2 and reset to 0:0:0
+ * library: add support for accessing smaps_rollup issue #112, #201
+ * library: add support for accessing autogroups
+ * library: add support for LIBPROC_HIDE_KERNEL env var merge #147
+ * library: add support for cpu utilization to pids i/f
+ * pkill: Check for lt- variants of program name issue #192
+ * pgrep: Add newline after regex error message merge #91
+ * pgrep: Fix selection where uid/gid > 2^31 merge !146
+ * pgrep: Select on cgroup v2 paths issue #168
+ * ps: Add OOM and OOMADJ fields issue #198
+ * ps: Add IO Accounting fields issue #184
+ * ps: Add PSS and USS fields issue #112
+ * ps: Add two new autogroup fields
+ * ps: Ignore SIGURG merge !142
+ * slabtop: Don't combine d and o options issue #160
+ * sysctl: Add support for systemd glob patterns issue #191
+ * sysctl: Check resolved path to be under /proc/sys issue #179
+ * sysctl: return non-zero if EINVAL return for write merge #76
+ * sysctl.conf.5: Note max line length issue #77
+ * top: added LOGID similar to 3.3.13 ps LUID
+ * top: added EXE identical to 3.3.17 ps EXE
+ * top: exploit some library smaps_rollup provisions issue #112
+ * top: added four new IO accounting fields issue #184
+ * top: 'F' key is now a new forest view 'focus' toggle
+ * top: summary area memory lines can print two abreast
+ * top: added two new autogroup fields
+ * top: added long versions of command line options
+ * top: added cpu utilization & 2 time related fields
+ * top: the time related fields can now be user scaled
+ * uptime: print short/pretty format correctly issue #217
+ * vmstat: add -y option to remove first line merge !72
+
+procps-ng-3.3.17
+---------------
+ * library: Incremented to 8:3:0
+ (no removals or additions, internal changes only)
+ * all: properly handle utf8 cmdline translations issue #176
+ * kill: Pass int to signalled process merge #32
+ * pgrep: Pass int to signalled process merge #32
+ * pgrep: Check sanity of SG_ARG_MAX issue #152
+ * pgrep: Add older than selection merge #79
+ * pidof: Quiet mode merge #83
+ * pidof: show worker threads Redhat #1803640
+ * ps.1: Mention stime alias issue #164
+ * ps: check also match on truncated 16 char comm names
+ * ps: Add exe output option Redhat #1399206
+ * pwait: New command waits for a process merge #97
+ * sysctl: Match systemd directory order Debian #950788
+ * sysctl: Document directory order Debian #951550
+ * top: ensure config file backward compatibility Debian #951335
+ * top: add command line 'e' for symmetry with 'E' issue #165
+ * top: add '4' toggle for two abreast cpu display issue #172
+ * top: add '!' toggle for combining multiple cpus
+ * top: fix potential SEGV involving -p switch merge #114
+ * vmstat: Wide mode gives wider proc columns merge #48
+ * watch: Add environment variable for interval merge #62
+ * watch: Add no linewrap option issue #182
+ * watch: Support more colors merge #106,#109
+ * free,uptime,slabtop: complain about extra ops issue #181
+
+procps-ng-3.3.16
+----------------
+ * docs: Use correct symbols for -h option in free.1 Debian #898774
+ * docs: ps.1 now warns about command name length issue #101
+ * pgrep: Match on runstate issue #109, Debian #919381
+ * top: can now exploit 256-color terminals issue #96
+ * top: preserves 'other filters' in configuration file issue #99
+ * top: can now collapse/expand forest view children issue #99
+ * top: parent %CPU time includes collapsed children
+ * top: improve xterm support for vim navigation keys issue #135
+ * top: avoid segmentation fault at program termination Redhat #1737552
+
+procps-ng-3.3.15
+----------------
+ * library: Increment to 8:0:1
+ No removals, no new functions
+ Changes: slab and pid structures
+ * library: Just check for SIGLOST and don't delete it issue #93
+ * library: Fix integer overflow and LPE in file2strvec CVE-2018-1124
+ * library: Use size_t for alloc functions CVE-2018-1126
+ * library: Increase comm size to 64
+ * pgrep: Fix stack-based buffer overflow CVE-2018-1125
+ * pgrep: Remove >15 warning as comm can be longer issue #92
+ * ps: Fix buffer overflow in output buffer, causing DOS CVE-2018-1123
+ * ps: Increase command name selection field to 64
+ * top: Don't use cwd for location of config CVE-2018-1122
+
+procps-ng-3.3.14
+----------------
+ * free: Fix scaling on 32-bit systems issue #89
+ * pgrep: Don't segfault on non match Debian #894917
+ * pgrep/pkill: Revert so matches all namespaces issue #91
+ * library: Build on non-glibc systems issue #88
+
+procps-ng-3.3.13
+----------------
+ * library: Increment to 7:0:1
+ No changes, no removals
+ New fuctions: numa_init, numa_max_node, numa_node_of_cpu,
+ numa_uninit, xalloc_err_handler
+ * doc: Document I idle state in ps.1 and top.1 Debian #886967
+ * free: fix some of the SI multiples issue #45
+ * kill: -l space between name parses correctly Debian #854407
+ * library: dont use vm_min_free on non Linux Debian #831396
+ * library: dont use SIGPWR on FreeBSD Debian #832148
+ * library: don't strip off wchan prefixes (ps & top) Redhat #1322111
+ * pgrep: warn about 15+ char name only if -f not used
+ * pgrep/pkill: only match in same namespace by default merge #41
+ * pidof: specify separator between pids merge #58
+ * pkill: Return 0 only if we can kill process Debian #852758
+ * pmap: fix duplicate output line under '-x' option Redhat #1374061
+ * ps: avoid eip/esp address truncations Debian #846361
+ * ps: recognizes SCHED_DEADLINE as valid CPU scheduler
+ * ps: display NUMA node under which a thread ran issue #58
+ * ps: Add seconds display for cputime and time merge #43
+ * ps: Add LUID field merge #57 Redhat #1518986
+ * sysctl: Permit empty string for value issue #74
+ * sysctl: Don't segv when file not available issue #76
+ * sysctl: Read and write large buffers merge #56
+ * top: add config file support for XDG specification
+ * top: eliminated minor libnuma memory leak
+ * top: show fewer memory decimal places (configurable) issue #50
+ * top: provide command line switch for memory scaling Redhat #1034466, issue #53
+ * top: provide command line switch for CPU States issue #55
+ * top: provides more accurate cpu usage at startup Redhat #1182327
+ * top: display NUMA node under which a thread ran issue #58
+ * top: fix argument parsing quirk resulting in SEGV Redhat #1450429
+ * top: delay interval accepts non-locale radix point Redhat #1182248
+ * top: address a wishlist man page NLS suggestion Debian #865689
+ * top: fix potential distortion in 'Mem' graph display issue #64
+ * top: provide proper multi-byte string handling issue #68
+ * top: startup defaults are fully customizable Redhat #1153049, #1499410, issues #6, #78
+ * see man page 6c. SYSTEM Configuration File
+ * watch: define HOST_NAME_MAX where not defined Debian #830734
+ * vmstat: Fix alignment for disk partition format issue #69
+ * watch: Support ANSI 39,49 reset sequences issue #73
+
+procps-ng-3.3.12
+----------------
+ * libprocps API 6:0:0
+ * build: formerly optional --enable-oomem unconditional
+ * free: man document rewritten for shared Debian #755233
+ * free: interpret intervals in non-locale way Debian #692113
+ * kill: report error if cannot kill process Debian #733172
+ * library: refine calculation of 'cached' memory
+ * library: find tty quicker Debian #770215
+ * library: eliminate threads display inconsistencies Redhat #1284091
+ * pidof: check cmd if space found in argv0
+ * pmap: fixed detail parsing on long mapping lines
+ * pmap: fix occasional incorrect memory usage values Redhat #1262864
+ * ps: sort by cgroup Debian #692279
+ * ps: display control group name with -o cgname
+ * ps: fallback to attr/current for context Debian #786956
+ * ps: enabled broken 'thcount' option Redhat #1174313
+ * tests: conditionally add prctl Debian #816237
+ * top: displays the 3 new linux-4.5 RES memory fields
+ * top: man page memory fields corrected + new narrative
+ * top: added display of CGNAME (control group name)
+ * top: is now more responsive to cpus brought online
+ * top: namespace cols use suppressible zero
+ * top: zero suppress ('0') includes out-of-memory & nice
+ * top: better 'i' toggle management when scrolled
+ * top: the '=' key now includes active locate requests
+ * vmstat: devices exceeding 15 chars now displayed Redhat #586078
+ * watch: hostname added to header
+ * watch: better handling ANSI including esc[m Debian #830313
+ * watch: use locale-independent float Debian #692113
+
+procps-ng-3.3.11
+----------------
+ * libprocps API 5:0:0
+ * pgrep: don't crash with -a -w flags. Merge 33, Debian #768190
+ * skill: command line with signal number interpreted correctly
+ * pmap: print process name even if smaps is unreadable Debian #775624
+ * ps: sort by etimes column, uses etime Debian #794619
+ * ps, top: Add support for LXC containers. Ubuntu #1174911
+ * w: work with smaller window sizes Debian #183394
+ * w: correctly find "best" proc with pid wrap
+ * library: use merged systemd library Debian #731256
+ * kill,skill,pkill: fix option parsing
+ * top once again will fully honor a saved rcfile,
+ without requiring --disable-modern-top. Debian #762928, #762947
+ * vmstat: Not crash if partition appears before disk Debian #736628
+ * free: -s without -c works Debian #733758
+
+procps-ng-3.3.10
+----------------
+ * sysctl --system loads default config file - Debian #732920
+ * ps doesn't exit on SIGCONT
+ * top better accommodates discontinuous NUMA nodes
+ * ps cmdline trailing spaces suppressed under zsh, redhat #1057600
+ * kill restores the '-HUP -1' functionality
+ * vmstat -d / -p segfault eliminated when /sys is not mounted
+ * pgrep properly shows full command line when -au are combined
+ * vmstat supports timestamps with -t/--timestamp option
+ * top is now immune to distortions when system time is reset
+ * top standardized the <Esc> key support with prompted input
+ * top missing summary area info added to man document, ubuntu #574624
+ * top properly responds to the current locale LC_NUMERIC setting
+ * top provides alternate graph modes for cpu states and memory usage
+ * top offers new startup defaults, plus ./configure --disable-modern-top
+ * top exploits MemAvailable field and offers improved memory statistics
+ * ps new --quick-pid option, a more efficient alternative to --pid option
+ * usernames up to 32 characters now accommodated (up from 19), redhat #1112734
+ * free exploits MemAvailable field and offers improved memory statistics
+ * free considers slabs in displayed totals, debian #565518, ubuntu #126329
+ * watch supports new ANSI styles and background colors
+
+procps-ng-3.3.9
+---------------
+ * kernel namespaces support added to skill, pgrep, ps and top
+ * pidof was reimplemented from scratch (replacing sysvinit pidof)
+ * ps has configurable libselinux support (--enable-libselinux)
+ * ps provides for display of systemd slice unit (--with-systemd)
+ * free can once again report non-zero 'shared' memory
+ * sysctl provides '--system' to ignore missing /etc/sysctl.conf
+ * watch interval capacity was increased - debian #720445
+ * pwdx no longer fails in a nonexistent locale - debian #718766
+ * top clarified summary area Mem/Swap stats - debian #718670
+ * top batch mode -w (width) abend fixed - debian #721204
+ * top man page removed 'Bd/Ed' mdoc macros - debian #725713
+ * top no longer clears screen at exit - redhat #977561
+ * top adapted to potential libnuma stderr message - redhat #998678
+ * top added missing batch mode newline - redhat #1008674
+
+
+procps-ng-3.3.8
+---------------
+ * top adds extensions for linux NUMA/Node capability
+ * top has reverted to former %CPU and %MEM precision
+ but also provides a '--enable-wide-percent' option
+ Debian #707648
+ * eliminate the potential library segmentation fault
+ Debian #706259, RedHat #951391
+ * top now accommodates a window manager like 'screen'
+ RedHat #962022
+ * ps shows systemd unit and user unit for a process
+
+
+procps-ng-3.3.7
+---------------
+
+ * top adds a powerful new filter feature wherein any
+ window can include or exlude selected fields which
+ contain specific values - Debian #682082 & #682083
+ * top preserves user input for later recall and edit
+ * top provides true input editing vs. just backspace
+ * top user filtering with exclusion - Debian #682086
+ * top field management resize errors no longer fatal
+ * top is more responsive to window resize (SIGWINCH)
+ * top will now preserve user's context when signaled
+
+
+procps-ng-3.3.6
+---------------
+
+ * top adds a powerful new feature where the contents
+ of some file or output from a program, pipeline or
+ shell script can be viewed in its own scrollable &
+ searchable window while pausing the normal display
+ * top highlights matches with 'locate/next' commands
+ * top adds summary/task area memory scaling commands
+ * top adds a command to suppress insignificant zeros
+ * top adds a command line sort field override switch
+ * top provides a default PID for kill, nice commands
+ * top allows core dump generation, if a signal would
+ * pmap adds 2 new options based on smaps, -X and -XX
+ * Adjusted pmap pidlist storage Debian #688180
+ * programs will permit core-dumps RedHat #87825, 512857
+ * receiving a signal is not a crash RedHat #871824, 441656
+ * ps: Fixed negative etime RedHat #871819, #433266
+ * pkill -c option returns Debian #693783
+ * pmap uses correct types for memory allocation Debian #688180
+ * expose freeproc, adds function to API Debian #681653
+
+
+procps-ng-3.3.5
+---------------
+ * Bumped SONAME to take into acccount API change
+
+procps-ng-3.3.4
+---------------
+ * Removed ps -aux bogus message
+ * w get -i option to display IP addresses
+ * watch 8bit fixes Debian #675069
+ * Fixed FTBFS for non-linux Debian #677055
+ * pkill -u <uid> doesn't need space Debian #676239
+ * top enables intra-column horizontal scrolling
+ * top can display a task's environment
+ * top can display major/minor pg fault deltas, Debian ##84992
+ * top provides additional control over column widths
+ * top offers user controlled left/right justification
+
+procps-ng-3.3.3
+---------------
+ * watch -g command repeats until something changes
+ * Changed labels of kB etc to KiB Debian #662786
+ * top supports hotplugged memory and cpus Debian #351934, #459287
+ * top %cpu not distorted when switch to/from threads Debian #441166
+ * top can read old toprc configuration files Debian #651213, #651863
+ * top supports input paste once again Debian #663334
+ * top -p avoids SEGV when pid doesn't exist Debian 668335
+ * Various DejaGNU test cases fixed
+ * pgrep.1 graoff syntax fix Debian #665425
+ * sysctl avoid crash when -p file has unexpected input
+ * sysctl .conf off-by-one error Debian #669128
+ * libprocps: protect locale env getting overwrite RedHat #548711
+
+ * Documentation catch up (fixed prior to 3.3.3)
+ . top repeating "%" wastes space Debian #322984
+ . top -U user name parse error Debian #623200
+ . top memory leaks Debian #627257
+ . top impossible task swap statistics Debian #628462
+ . top forest view segfault Debian #650864
+
+
+procps-ng-3.3.1 --> procps-ng-3.3.2
+--------------------------------
+
+ * Redefined library to use version-info
+ * NLS added! Programs can use po files to localise the output to suite
+ any supported languages.
+ * Imported a bunch of distribution patches:
+ watch: support unicode
+ watch: add precision wait time option -p
+ watch: interpret ANSI color code sequences
+ watch: add -exec and -beep flags and has better quoting
+ w: use environment to set user and from/host column widths
+ w: use COLUMNS environment if TIOCGWINSZ fails
+ w: bassman emulation with -o option
+ vmstat: do not scale si/so just like bi/bo
+ libprocps-ng: sysinfo.c: truncate the vmstat figure to 32 bits
+ tload: remote unneeded optarg and optind variables
+ sysctl: fix up some option processing
+ skill: kill prints perror
+ skill: do not treat skill null parameter as 0
+ skill: fix too greedy option parser
+ libprocps-ng: readproc.c: some type conversion help
+ ps: rename SZ to SIZE
+ ps: add sorting to %mem for ps
+ pmap: provide information for -x option
+ pgrep: distinguish between invalid commandline parameters and '-?'
+ pgrep: fix compiler warning saved_start_time might be used uninitialized
+ pgrep: add -c option for counting number of matched proceesses
+ pwdx & libprocps-ng: Hurd does not have MAX_PATH defined
+ ps: --sort does not work with time argument
+ skill: add CR to warning line
+ contrib: minimal ps: define mips PAGE_SIZE
+ libproc-ng: prettyfy proc mount messages
+ ps: add build option to disable ps option warning
+ libproc-ng: support building without WCHAR support
+ sysctl: remove index() for buildroot
+ * top now has a search capability
+ * User import is validated better to stop negative values for intervals etc
+
+procps-ng-3.3.0 --> procps-ng-3.3.1
+--------------------------------
+
+ * Added DejaGNU regression testing
+ * Fixed pgrep -u not finding processes Debian#649591
+ * Fixed pgrep crashing
+ * vmstat -p <part> finds partitions. Was Debian patch vmstat_part_format
+ fixes closed bugs RH#485243 and Debian#588677
+ * watch 8-bit clean, Was Debian patch watch_8bitchar
+ * slabtop prints plain ASCII in once mode
+
+procps-3.2.8 --> procps-ng-3.3.0
+------------------------------------------------------
+Debian, Fedora and openSUSE fork of procps.
+https://gitlab.com/procps-ng/procps
+
+environment/build changes:
+ . autotools integrated
+ . procps-ng specific options
+ --enable-oomem (add out-of-memory flds)
+ --disable-kill (do not build kill pgm)
+ --enable-w-from (from as default for w)
+
+library changes:
+ . added control groups support
+ . added supplementary groups support
+ . introduced proc_t memory management
+ . enabled hot-plugged cpu support
+ . introduced new api's
+ readeither (readproc.c)
+ readproctab3 (readproc.c)
+ escaped_copy (escape.c)
+
+free changes:
+ . rewritten/modernized
+ improved help
+ includes long options
+ added new processing options
+ . updated manual page
+
+ps changes:
+ . added new fields
+ cgroups,etimes,supgid,supgrp,tgid
+ . exploited new library api's
+
+top changes:
+ . redesigned fields management
+ . added new fields
+ cgroups,gid,nmin,nth,pgrp,ruid,
+ sid,suid,supgids,supgrps,suser,
+ tgid,tpgid
+ . added horizontal/vertical scrolling
+ . added flexible output override via -w
+ . added COMMAND column forest view via V
+ . added hot-plugged cpu/memory support
+ . improved user filtering via u|U
+ . improved signal handling
+ . restored zero delay functionality
+ . introduced true line input editing
+ . exploited new library api's
+ . improved performance up to 300%
+
+Debian, Fedora and openSUSE fork of procps.
+https://gitlab.com/procps-ng/procps
+------------------------------------------------------
+
+procps-3.2.8 --> procps-3.2.9 (pending)
+
+top: fix an aliasing problem -- thanks David Owen
+
+procps-3.2.7 --> procps-3.2.8
+
+ps: allow "+" in sort specifications, as in man page rh208217
+ps: recognize SCHED_ISO and SCHED_IDLE
+ps: document SCHED_BATCH and add a "see also" for stime
+ps: man page less ambiguous
+top: normal exit code should be 0 #341272 #354255 rh199174 suse493210
+top: misc fixes
+pgrep: usage error should exit with 2 #413383
+vmstat: use EXIT_FAILURE -- thanks Yoshio Nakamura #425492
+sysctl: fix crash -- thanks Steinar Gunderson #423704
+watch: tolerate umlauts #207103
+pmap: range limits with -A low,high
+update /dev/tty* info to May 2009 devices.txt
+don't read off end of string const rh469495 rh498182
+
+procps-3.2.6 --> procps-3.2.7
+
+top: document H option -- thanks Tony Ernst
+top: terabytes -- thanks Tony Ernst
+top: CPU usage column width fixes -- thanks Tony Ernst
+top: *roff change #326517
+ps: SCHED_BATCH is B
+ps: fix s format (signals) output with thread display
+watch: avoid integer overflow for the time delay
+pwdx: buffer overflow fixed -- thanks Ulf Harnhammar
+procps.spec needed a slash -- thanks Jesse Brandeburg
+w: stale utmp entries snuck in via uninitialized var -- thanks Robert A Basch
+pgrep/pkill: fix some realloc-related crashes #353894
+pgrep/pkill: g is criteria (PLD Linux, patch found in locked filing cabinet)
+sysctl: use - for stdin (PLD Linux: beware of the leopard)
+top: show CPU time stolen from a virtual machine
+
+procps-3.2.5 --> procps-3.2.6
+
+vmstat: /proc/stat buffer big enough for 1024 CPUs
+dietlibc needs termios.h for struct winsize -- thanks Thomas Ogrisegg
+top: can do per-task display -- thanks John Blackwood rh114012
+more MIPS crud -- thanks Jim Gifford and Ryan Oliver
+begin prep for setuid
+top: fix %CPU max on 2..9 CPU SMP -- thanks Ga*tan LEURENT rh110555
+ps: fix crash related to realloc -- thanks David Houlder
+ps: man page more detailed #334682
+spelling fixes #300333 #334684 #334685
+top: crash on resize fixed -- thanks Michal Maruska #320289
+vmstat: -p handles /dev/ and does not overflow #319523 #330969
+
+procps-3.2.4 --> procps-3.2.5
+
+display problem on 64-bit systems fixed #287947
+top: variable-width PID and PPID
+top: variable-width %CPU rh110555
+sysctl: better error messages
+ps: security labels can contain any printable ASCII
+top: help and version message on stdout, with exit(0) #283541
+ps: SIGTSTP and SIGTTOU shouldn't print bug email address #246123
+slabtop: compile with glibc 2.2.17 (and older, likely)
+slabtop: fix overflow on huge NUMA boxes #264640
+slabtop: accept any slabinfo 2.x format g77301 #287691 rh145369 rh145906
+ps: alignment after WCHAN fixed ub5385
+pmap: when no -x or -d option, show full path rh142751
+
+procps-3.2.3 --> procps-3.2.4
+
+support 64-bit MIPS with n32 binary
+sparc32 optimized for sparc32 again
+pwdx: new command -- thanks Nicholas Miell
+ps: UTF-8 username + command -- thanks Karel Zak rh134763,rh112518,rh134780
+ps: more room for some columns
+ps: tolerate SubDomain security module CONTEXT/LABEL data #277401
+watch: passes COLUMNS and LINES in environment
+top: in batch mode, tolerate unknown $TERM -- thanks Daniel Walsh
+pkill: quiet about processes that die before kill()
+
+procps-3.2.2 --> procps-3.2.3
+
+avoid truncating long usernames
+avoid warning about -lncurses when not linking (more)
+new names for shared libraries (packagers: watch out!)
+"make install" no longer rebuilds everything
+wchan now '*' for multi-threaded processes
+ps: new man page -- thanks Nicolas Francois
+ps: STAT shows l for multi-threaded processes
+vmstat: some overflow problems fixed -- thanks Holger Kiehl
+sysctl: man page fix
+
+procps-3.2.1 --> procps-3.2.2
+
+new packager (downstream maintainer) guidelines in README
+move striping from install command to CFLAGS
+new gcc options in use: -fweb, -frename-registers, etc.
+avoid warning about -lncurses when not linking -- thanks FLWM
+tolerate IA-64 headers without PAGE_SIZE
+ps: k option, same as --sort
+ps: personality-specific -x support (HP-UX and SVR4-MP)
+pgrep: man page SEE ALSO updated #226817
+sysctl: -q and -N options
+sysctl: better error handling of failed writes
+top: tolerate sparse CPU numbering
+top: try to handle terminals lacking rmam and smam #235003
+top: xterm dislikes clear-to-eol at eol (char lost)
+vmstat: fixed -d
+watch: allow sub-second intervals -- thanks Thomas Stewart
+
+procps-3.2.0 --> procps-3.2.1
+
+build even w/ curses in an odd location -- thanks to Segher Boessenkool
+ps: STAT flags for fg process group and session leader
+ps: STAT flags for swapped out process dropped (was broken)
+ps: new -M and Z options for security data (SELinux, etc.)
+slabtop: detect broken /proc/slabinfo -- thanks to Fabian Frederick
+slabtop: ensure that error messages show up on the screen -- FF again
+
+procps-3.1.15 --> procps-3.2.0
+
+build on IA-64 again #227933
+pmap: output like Solaris 9, not Solaris 7
+ps: also handle SELinux on the 2.4.xx kernels
+top: during a ^Z, the terminal was messed up #228822
+future-proof the tty handling (thanks to Zhou Wei)
+slabtop (Chris Rivera and Robert Love) #226778
+pmap: detect the primary stack
+pmap: -d format
+free: report high and low memory
+
+procps-3.1.14 --> procps-3.1.15
+
+install to /lib64 if it exists
+hide kernel PID bug (Linux 2.4.13-pre1 to 2.4.MAX) #217278 #219730 #217525 #224470
+ps: faster threaded display
+top: auto-margin problem #217559
+ps: support NSA SELinux, all builds, Linux 2.6+ #193648
+sysctl: tweak man page for ESR's broken parser
+
+procps-3.1.13 --> procps-3.1.14
+
+top: displays on more genuine serial terminals
+handle 32-bit dev_t of Linux 2.6
+ps: finally, m and -m satisfy the original design
+ps: distinct per-thread and whole-process pending signals
+
+procps-3.1.12 --> procps-3.1.13
+
+ps: can display NPTL threads w/ kernel patch
+no seLinux for now (new kernel interface)
+
+procps-3.1.11 --> procps-3.1.12
+
+ps: explicit width ("ps -o pid,wchan:42,args")
+ps: $PS_FORMAT works properly #201575
+top: new Linux 2.6.0-test4 CPU stats shown
+top: multiple -p options work again
+top: fixed 4 GB wrap-around
+ps: has a set of tests to ensure correctness
+man page: /var/run/utmp, not /etc/utmp #206583
+required flags moved out of CFLAGS #205429
+RPM generation handles /lib64
+WCHAN skips leading '.'
+vmstat: numerous new features
+
+procps-3.1.10 --> procps-3.1.11
+
+compile with gcc 2.95 again (C99 issue)
+
+procps-3.1.9 --> procps-3.1.10
+
+handle GPLONLY_ symbols #143549 #188374
+kill: better man page
+skill: better man page
+ps: PID-like columns change width as needed
+top: COMMAND instead of Command
+vmstat: -m displays slabinfo
+vmstat: -d displays disk stats
+
+procps-3.1.8 --> procps-3.1.9
+
+memory sizes fixed for 64-bit w/ gcc 3.x #194376 #191933
+ps: detect broken OS install w/o /proc mounted #172735
+top: fix suspend/resume behavior
+top: ditch warning until a GOOD interface is found #188271
+kill: more info in the man page #182414
+ps: document the -o, o, -O, and O options #169301
+vmstat: choose units you like: 1000, 1024, 1000000...
+
+procps-3.1.7 --> procps-3.1.8
+
+top: fix keyboard handling (help screen, etc.)
+
+procps-3.1.6 --> procps-3.1.7
+
+Makefile: made SKIP feature easier to use
+watch: --help now explains -t, --no-title #182246
+ps: warning directs users to the FAQ
+top: batch mode can refresh by fractional seconds
+top: faster start-up
+top: do not refresh like crazy
+ps: better crash message
+
+procps-3.1.5 --> procps-3.1.6
+
+handle the 2.5.61 kernel
+top: memory leak fixed
+ps: new --ppid option selects by PPID
+watch: new --no-title option #179862
+handle SPARC Linux badness
+rare crash fixed
+compile with gcc 2.91.xx again
+more informative "ps --info"
+README update
+ps: compare more with "ps -C verylongname" #178127
+
+procps-3.1.4 --> procps-3.1.5
+
+ancient (2.x.xx era) data corruption fixed
+serious hidden-process problem (3.1.3+) fixed
+w: escape sequence vulnerability fixed
+
+procps-3.1.3 --> procps-3.1.4
+
+top: was trashing every "3" in a command name
+top: when killing a process, the PID was cut at a "3"
+top: more reliable %CPU
+update copyright dates (GPL & LGPL require this)
+RPM generation works now
+
+procps-3.1.2 --> procps-3.1.3
+
+uses /proc/*/wchan files when available
+top: user selection
+sysctl: add -e for Red Hat 8.0 boot scripts
+sysctl: the obvious --help, -V, and --version
+sysctl: some command line error checking
+w: stdout, not stderr -- thanks to Sander van Malssen
+
+procps-3.1.1 --> procps-3.1.2
+
+better RPM generation
+use C99 features
+some seLinux fixes
+now count Inact_laundry as needed #172163
+ps: fewer globals
+ps: hardware-enforced buffer protection
+ps: 1 kB smaller
+top: B command added (for bold on/off)
+top: handle old (and future) config files
+top: man page tweak
+top: old sort keys #167249
+top: out-of-bounds RT as "RT"
+top: several times faster
+top: t command fixed
+vmstat: -f
+vmstat: -s
+w: much faster
+watch: don't drop empty lines #171005
+watch: re-indented
+
+procps-3.1.0 --> procps-3.1.1
+
+vmstat faster on 2.5.xx kernels
+vmstat header fixed
+vmstat -a re-fixed
+
+procps-3.0.5 --> procps-3.1.0
+
+vmstat displays IO-wait time instead of bogus "w"
+can build w/o shared library (set SHARED=0)
+when IO-wait hidden, count as idle, not as sys
+pmap command added (like Sun has)
+do not crash GNU make 3.79
+top slightly faster
+
+procps-3.0.4 --> procps-3.0.5
+
+top tolerates super-wide displays
+better (?) RPM generation
+XConsole and top.desktop removed
+old build system removed
+code cleanup
+pgrep and pkill get "-o" (oldest matching process)
+had vmstat "bi" and "bo" output interchanged on 2.5.xx
+fix man page tbl directives
+top man page cleaned up
+
+procps-3.0.3 --> procps-3.0.4
+
+make top go faster
+Linux 2.2.xx ELF note warning removed
+only show IO-wait on recent kernels
+fix top's SMP stats
+fix top for "dumb" and "vt510" terminals
+in top, limit the priority values to -99 ... 99
+
+procps-3.0.2 --> procps-3.0.3
+
+more "make install" fixes
+lib CFLAGS working again
+top.1 codes fixed
+bad (int*) cast in top removed
+top runs faster
+libproc memory corruption fixed
+rant moved out of top.1 man page
+ability to SKIP installing things
+fixed ps --sort crash
+
+procps-3.0.1 --> procps-3.0.2
+
+top defaults to the old layout
+top defaults to sorting by %CPU
+fix top for non-SMP 2.2.xx and 2.0.xx
+new "make install" fixed
+vmstat -a fixed
+vmstat compiles with latest gcc-3.x
+vmstat does 64-bit time
+
+procps-3.0.0 --> procps-3.0.1
+
+sysctl handles net/ipv4/conf/eth1.0123/tag (VLAN interface)
+sysctl handles net.ipv4.conf.eth1/0123.tag (VLAN interface)
+"ps" is now about 2x faster than in procps-2.x.x
+"ps -F" now documented
+w works in KOI8-R locale
+vmstat documentation update
+"skill -n blah blah blah" lets you test options
+simple "make && make install" now
+
+procps-2.x.x --> procps-3.0.0
+
+designed to support Linux 2.0 through 2.5.41 and beyond
+new top, with optional: color, windowing, SMP stats
+runs faster
+more "it crashes" bugs fixed
+top shows IO-wait time
+vmstat can show active/inactive memory stats
+real-time info supported in ps
+correct "ps -o size" and "ps --sort size"
+new maintainers
+reduced memory usage for ps
+allow large PIDs to be specified
+SELINUX support is just a recompile away
+the "F" column shrank, so "ps -l" has more command name room
+64-bit time reduces the overflow problem
+support S/390, IA-64 emulator, and user-mode Linux
+oldps is gone
+configure script -- use "make -f Makefile.noam" as a backup
+"w" program better at determining what a user is doing
+more stable
+code at http://procps.sf.net/ now (SourceForge)
+
+Earlier changes, for those not using Debian already:
+
+more stable
+runs faster
+-F format option
+better error reporting in ps for unknown format specifiers
+BSD's sysctl options -b and -X
+top displays well on large-memory systems
+old BSD-style select-by-PID ("ps l$$")
+15-character user names
+ps 'f' ASCII art forest fixed
+add SIGSYS on i386
+top reports real RSS value
+large-memory systems work
+minimal ps program for embedded systems (minimal.c)
+BSD personality process selection fixed
+support locale (French) with ',' and '.' mixed up
+pgrep program
+includes the "kill" and "nice" programs
+don't chop non-tty ps output at 80 columns
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..39cd5fe
--- /dev/null
+++ b/README.md
@@ -0,0 +1,52 @@
+[![build status](https://gitlab.com/ci/projects/2142/status.png?ref=master)](https://gitlab.com/ci/projects/2142?ref=master)
+procps
+======
+
+procps is a set of command line and full-screen utilities that provide
+information out of the pseudo-filesystem most commonly located at /proc.
+This filesystem provides a simple interface to the kernel data structures.
+The programs of procps generally concentrate on the structures that describe
+the processess running on the system.
+
+The following programs are found in procps:
+* *free* - Report the amount of free and used memory in the system
+* *kill* - Send a signal to a process based on PID
+* *pgrep* - List processes based on name or other attributes
+* *pkill* - Send a signal to a process based on name or other attributes
+* *pmap* - Report memory map of a process
+* *ps* - Report information of processes
+* *pwdx* - Report current directory of a process
+* *skill* - Obsolete version of pgrep/pkill
+* *slabtop* - Display kernel slab cache information in real time
+* *snice* - Renice a process
+* *sysctl* - Read or Write kernel parameters at run-time
+* *tload* - Graphical representation of system load average
+* *top* - Dynamic real-time view of running processes
+* *uptime* - Display how long the system has been running
+* *vmstat* - Report virtual memory statistics
+* *w* - Report logged in users and what they are doing
+* *watch* - Execute a program periodically, showing output fullscreen
+
+## Reporting Bugs
+There are a few ways of reporting bugs or feature requests:
+
+1. Your distribution's bug reporter. If you are using a distribution your first
+port of call is their bug tracker. This is because each distribution has their
+own patches and way of dealing with bugs. Also bug reporting often does not need
+any subscription to websites.
+2. GitLab Issues - To the left of this page is the issue tracker. You can report
+bugs here.
+3. Email list - We have an email list (see below) where you can report bugs.
+The problem with this method is bug reports often get lost and cannot be
+tracked. This is especially a big problem when its something that will take
+time to resolve.
+
+If you need to report bugs, there is more details on the
+[Bug Reporting](https://gitlab.com/procps-ng/procps/blob/master/Documentation/bugs.md)
+page.
+
+## Email List
+The email list for the developers and users of procps is found at
+http://www.freelists.org/archive/procps/
+This email list discusses the development of procps and is used by distributions
+to also forward or discuss bugs.
diff --git a/aclocal.m4 b/aclocal.m4
new file mode 100644
index 0000000..feefebb
--- /dev/null
+++ b/aclocal.m4
@@ -0,0 +1,1507 @@
+# generated automatically by aclocal 1.16.5 -*- Autoconf -*-
+
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
+
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
+[m4_warning([this file was generated for autoconf 2.71.
+You have another version of autoconf. It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically 'autoreconf'.])])
+
+# pkg.m4 - Macros to locate and use pkg-config. -*- Autoconf -*-
+# serial 12 (pkg-config-0.29.2)
+
+dnl Copyright © 2004 Scott James Remnant <scott@netsplit.com>.
+dnl Copyright © 2012-2015 Dan Nicholson <dbn.lists@gmail.com>
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+dnl General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+dnl 02111-1307, USA.
+dnl
+dnl As a special exception to the GNU General Public License, if you
+dnl distribute this file as part of a program that contains a
+dnl configuration script generated by Autoconf, you may include it under
+dnl the same distribution terms that you use for the rest of that
+dnl program.
+
+dnl PKG_PREREQ(MIN-VERSION)
+dnl -----------------------
+dnl Since: 0.29
+dnl
+dnl Verify that the version of the pkg-config macros are at least
+dnl MIN-VERSION. Unlike PKG_PROG_PKG_CONFIG, which checks the user's
+dnl installed version of pkg-config, this checks the developer's version
+dnl of pkg.m4 when generating configure.
+dnl
+dnl To ensure that this macro is defined, also add:
+dnl m4_ifndef([PKG_PREREQ],
+dnl [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
+dnl
+dnl See the "Since" comment for each macro you use to see what version
+dnl of the macros you require.
+m4_defun([PKG_PREREQ],
+[m4_define([PKG_MACROS_VERSION], [0.29.2])
+m4_if(m4_version_compare(PKG_MACROS_VERSION, [$1]), -1,
+ [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
+])dnl PKG_PREREQ
+
+dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
+dnl ----------------------------------
+dnl Since: 0.16
+dnl
+dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
+dnl first found in the path. Checks that the version of pkg-config found
+dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
+dnl used since that's the first version where most current features of
+dnl pkg-config existed.
+AC_DEFUN([PKG_PROG_PKG_CONFIG],
+[m4_pattern_forbid([^_?PKG_[A-Z_]+$])
+m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
+m4_pattern_allow([^PKG_CONFIG_(DISABLE_UNINSTALLED|TOP_BUILD_DIR|DEBUG_SPEW)$])
+AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])
+AC_ARG_VAR([PKG_CONFIG_PATH], [directories to add to pkg-config's search path])
+AC_ARG_VAR([PKG_CONFIG_LIBDIR], [path overriding pkg-config's built-in search path])
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ AC_PATH_TOOL([PKG_CONFIG], [pkg-config])
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=m4_default([$1], [0.9.0])
+ AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version])
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ PKG_CONFIG=""
+ fi
+fi[]dnl
+])dnl PKG_PROG_PKG_CONFIG
+
+dnl PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl -------------------------------------------------------------------
+dnl Since: 0.18
+dnl
+dnl Check to see whether a particular set of modules exists. Similar to
+dnl PKG_CHECK_MODULES(), but does not set variables or print errors.
+dnl
+dnl Please remember that m4 expands AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+dnl only at the first occurrence in configure.ac, so if the first place
+dnl it's called might be skipped (such as if it is within an "if", you
+dnl have to call PKG_CHECK_EXISTS manually
+AC_DEFUN([PKG_CHECK_EXISTS],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+if test -n "$PKG_CONFIG" && \
+ AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then
+ m4_default([$2], [:])
+m4_ifvaln([$3], [else
+ $3])dnl
+fi])
+
+dnl _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES])
+dnl ---------------------------------------------
+dnl Internal wrapper calling pkg-config via PKG_CONFIG and setting
+dnl pkg_failed based on the result.
+m4_define([_PKG_CONFIG],
+[if test -n "$$1"; then
+ pkg_cv_[]$1="$$1"
+ elif test -n "$PKG_CONFIG"; then
+ PKG_CHECK_EXISTS([$3],
+ [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes ],
+ [pkg_failed=yes])
+ else
+ pkg_failed=untried
+fi[]dnl
+])dnl _PKG_CONFIG
+
+dnl _PKG_SHORT_ERRORS_SUPPORTED
+dnl ---------------------------
+dnl Internal check to see if pkg-config supports short errors.
+AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi[]dnl
+])dnl _PKG_SHORT_ERRORS_SUPPORTED
+
+
+dnl PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+dnl [ACTION-IF-NOT-FOUND])
+dnl --------------------------------------------------------------
+dnl Since: 0.4.0
+dnl
+dnl Note that if there is a possibility the first call to
+dnl PKG_CHECK_MODULES might not happen, you should be sure to include an
+dnl explicit call to PKG_PROG_PKG_CONFIG in your configure.ac
+AC_DEFUN([PKG_CHECK_MODULES],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl
+AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl
+
+pkg_failed=no
+AC_MSG_CHECKING([for $2])
+
+_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2])
+_PKG_CONFIG([$1][_LIBS], [libs], [$2])
+
+m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS
+and $1[]_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.])
+
+if test $pkg_failed = yes; then
+ AC_MSG_RESULT([no])
+ _PKG_SHORT_ERRORS_SUPPORTED
+ if test $_pkg_short_errors_supported = yes; then
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "$2" 2>&1`
+ else
+ $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "$2" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD
+
+ m4_default([$4], [AC_MSG_ERROR(
+[Package requirements ($2) were not met:
+
+$$1_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+_PKG_TEXT])[]dnl
+ ])
+elif test $pkg_failed = untried; then
+ AC_MSG_RESULT([no])
+ m4_default([$4], [AC_MSG_FAILURE(
+[The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+_PKG_TEXT
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.])[]dnl
+ ])
+else
+ $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS
+ $1[]_LIBS=$pkg_cv_[]$1[]_LIBS
+ AC_MSG_RESULT([yes])
+ $3
+fi[]dnl
+])dnl PKG_CHECK_MODULES
+
+
+dnl PKG_CHECK_MODULES_STATIC(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND],
+dnl [ACTION-IF-NOT-FOUND])
+dnl ---------------------------------------------------------------------
+dnl Since: 0.29
+dnl
+dnl Checks for existence of MODULES and gathers its build flags with
+dnl static libraries enabled. Sets VARIABLE-PREFIX_CFLAGS from --cflags
+dnl and VARIABLE-PREFIX_LIBS from --libs.
+dnl
+dnl Note that if there is a possibility the first call to
+dnl PKG_CHECK_MODULES_STATIC might not happen, you should be sure to
+dnl include an explicit call to PKG_PROG_PKG_CONFIG in your
+dnl configure.ac.
+AC_DEFUN([PKG_CHECK_MODULES_STATIC],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+_save_PKG_CONFIG=$PKG_CONFIG
+PKG_CONFIG="$PKG_CONFIG --static"
+PKG_CHECK_MODULES($@)
+PKG_CONFIG=$_save_PKG_CONFIG[]dnl
+])dnl PKG_CHECK_MODULES_STATIC
+
+
+dnl PKG_INSTALLDIR([DIRECTORY])
+dnl -------------------------
+dnl Since: 0.27
+dnl
+dnl Substitutes the variable pkgconfigdir as the location where a module
+dnl should install pkg-config .pc files. By default the directory is
+dnl $libdir/pkgconfig, but the default can be changed by passing
+dnl DIRECTORY. The user can override through the --with-pkgconfigdir
+dnl parameter.
+AC_DEFUN([PKG_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${libdir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+ [pkg-config installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([pkgconfigdir],
+ [AS_HELP_STRING([--with-pkgconfigdir], pkg_description)],,
+ [with_pkgconfigdir=]pkg_default)
+AC_SUBST([pkgconfigdir], [$with_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+])dnl PKG_INSTALLDIR
+
+
+dnl PKG_NOARCH_INSTALLDIR([DIRECTORY])
+dnl --------------------------------
+dnl Since: 0.27
+dnl
+dnl Substitutes the variable noarch_pkgconfigdir as the location where a
+dnl module should install arch-independent pkg-config .pc files. By
+dnl default the directory is $datadir/pkgconfig, but the default can be
+dnl changed by passing DIRECTORY. The user can override through the
+dnl --with-noarch-pkgconfigdir parameter.
+AC_DEFUN([PKG_NOARCH_INSTALLDIR],
+[m4_pushdef([pkg_default], [m4_default([$1], ['${datadir}/pkgconfig'])])
+m4_pushdef([pkg_description],
+ [pkg-config arch-independent installation directory @<:@]pkg_default[@:>@])
+AC_ARG_WITH([noarch-pkgconfigdir],
+ [AS_HELP_STRING([--with-noarch-pkgconfigdir], pkg_description)],,
+ [with_noarch_pkgconfigdir=]pkg_default)
+AC_SUBST([noarch_pkgconfigdir], [$with_noarch_pkgconfigdir])
+m4_popdef([pkg_default])
+m4_popdef([pkg_description])
+])dnl PKG_NOARCH_INSTALLDIR
+
+
+dnl PKG_CHECK_VAR(VARIABLE, MODULE, CONFIG-VARIABLE,
+dnl [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND])
+dnl -------------------------------------------
+dnl Since: 0.28
+dnl
+dnl Retrieves the value of the pkg-config variable for the given module.
+AC_DEFUN([PKG_CHECK_VAR],
+[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl
+AC_ARG_VAR([$1], [value of $3 for $2, overriding pkg-config])dnl
+
+_PKG_CONFIG([$1], [variable="][$3]["], [$2])
+AS_VAR_COPY([$1], [pkg_cv_][$1])
+
+AS_VAR_IF([$1], [""], [$5], [$4])dnl
+])dnl PKG_CHECK_VAR
+
+dnl PKG_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl [ACTION-IF-FOUND],[ACTION-IF-NOT-FOUND],
+dnl [DESCRIPTION], [DEFAULT])
+dnl ------------------------------------------
+dnl
+dnl Prepare a "--with-" configure option using the lowercase
+dnl [VARIABLE-PREFIX] name, merging the behaviour of AC_ARG_WITH and
+dnl PKG_CHECK_MODULES in a single macro.
+AC_DEFUN([PKG_WITH_MODULES],
+[
+m4_pushdef([with_arg], m4_tolower([$1]))
+
+m4_pushdef([description],
+ [m4_default([$5], [build with ]with_arg[ support])])
+
+m4_pushdef([def_arg], [m4_default([$6], [auto])])
+m4_pushdef([def_action_if_found], [AS_TR_SH([with_]with_arg)=yes])
+m4_pushdef([def_action_if_not_found], [AS_TR_SH([with_]with_arg)=no])
+
+m4_case(def_arg,
+ [yes],[m4_pushdef([with_without], [--without-]with_arg)],
+ [m4_pushdef([with_without],[--with-]with_arg)])
+
+AC_ARG_WITH(with_arg,
+ AS_HELP_STRING(with_without, description[ @<:@default=]def_arg[@:>@]),,
+ [AS_TR_SH([with_]with_arg)=def_arg])
+
+AS_CASE([$AS_TR_SH([with_]with_arg)],
+ [yes],[PKG_CHECK_MODULES([$1],[$2],$3,$4)],
+ [auto],[PKG_CHECK_MODULES([$1],[$2],
+ [m4_n([def_action_if_found]) $3],
+ [m4_n([def_action_if_not_found]) $4])])
+
+m4_popdef([with_arg])
+m4_popdef([description])
+m4_popdef([def_arg])
+
+])dnl PKG_WITH_MODULES
+
+dnl PKG_HAVE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl [DESCRIPTION], [DEFAULT])
+dnl -----------------------------------------------
+dnl
+dnl Convenience macro to trigger AM_CONDITIONAL after PKG_WITH_MODULES
+dnl check._[VARIABLE-PREFIX] is exported as make variable.
+AC_DEFUN([PKG_HAVE_WITH_MODULES],
+[
+PKG_WITH_MODULES([$1],[$2],,,[$3],[$4])
+
+AM_CONDITIONAL([HAVE_][$1],
+ [test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"])
+])dnl PKG_HAVE_WITH_MODULES
+
+dnl PKG_HAVE_DEFINE_WITH_MODULES(VARIABLE-PREFIX, MODULES,
+dnl [DESCRIPTION], [DEFAULT])
+dnl ------------------------------------------------------
+dnl
+dnl Convenience macro to run AM_CONDITIONAL and AC_DEFINE after
+dnl PKG_WITH_MODULES check. HAVE_[VARIABLE-PREFIX] is exported as make
+dnl and preprocessor variable.
+AC_DEFUN([PKG_HAVE_DEFINE_WITH_MODULES],
+[
+PKG_HAVE_WITH_MODULES([$1],[$2],[$3],[$4])
+
+AS_IF([test "$AS_TR_SH([with_]m4_tolower([$1]))" = "yes"],
+ [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])])
+])dnl PKG_HAVE_DEFINE_WITH_MODULES
+
+# Copyright (C) 2002-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_AUTOMAKE_VERSION(VERSION)
+# ----------------------------
+# Automake X.Y traces this macro to ensure aclocal.m4 has been
+# generated from the m4 files accompanying Automake X.Y.
+# (This private macro should not be called outside this file.)
+AC_DEFUN([AM_AUTOMAKE_VERSION],
+[am__api_version='1.16'
+dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
+dnl require some minimum version. Point them to the right macro.
+m4_if([$1], [1.16.5], [],
+ [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
+])
+
+# _AM_AUTOCONF_VERSION(VERSION)
+# -----------------------------
+# aclocal traces this macro to find the Autoconf version.
+# This is a private macro too. Using m4_define simplifies
+# the logic in aclocal, which can simply ignore this definition.
+m4_define([_AM_AUTOCONF_VERSION], [])
+
+# AM_SET_CURRENT_AUTOMAKE_VERSION
+# -------------------------------
+# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
+AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
+[AM_AUTOMAKE_VERSION([1.16.5])dnl
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
+
+# AM_AUX_DIR_EXPAND -*- Autoconf -*-
+
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
+# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to
+# '$srcdir', '$srcdir/..', or '$srcdir/../..'.
+#
+# Of course, Automake must honor this variable whenever it calls a
+# tool from the auxiliary directory. The problem is that $srcdir (and
+# therefore $ac_aux_dir as well) can be either absolute or relative,
+# depending on how configure is run. This is pretty annoying, since
+# it makes $ac_aux_dir quite unusable in subdirectories: in the top
+# source directory, any form will work fine, but in subdirectories a
+# relative path needs to be adjusted first.
+#
+# $ac_aux_dir/missing
+# fails when called from a subdirectory if $ac_aux_dir is relative
+# $top_srcdir/$ac_aux_dir/missing
+# fails if $ac_aux_dir is absolute,
+# fails when called from a subdirectory in a VPATH build with
+# a relative $ac_aux_dir
+#
+# The reason of the latter failure is that $top_srcdir and $ac_aux_dir
+# are both prefixed by $srcdir. In an in-source build this is usually
+# harmless because $srcdir is '.', but things will broke when you
+# start a VPATH build or use an absolute $srcdir.
+#
+# So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
+# iff we strip the leading $srcdir from $ac_aux_dir. That would be:
+# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
+# and then we would define $MISSING as
+# MISSING="\${SHELL} $am_aux_dir/missing"
+# This will work as long as MISSING is not called from configure, because
+# unfortunately $(top_srcdir) has no meaning in configure.
+# However there are other variables, like CC, which are often used in
+# configure, and could therefore not use this "fixed" $ac_aux_dir.
+#
+# Another solution, used here, is to always expand $ac_aux_dir to an
+# absolute PATH. The drawback is that using absolute paths prevent a
+# configured tree to be moved without reconfiguration.
+
+AC_DEFUN([AM_AUX_DIR_EXPAND],
+[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+])
+
+# AM_CONDITIONAL -*- Autoconf -*-
+
+# Copyright (C) 1997-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_CONDITIONAL(NAME, SHELL-CONDITION)
+# -------------------------------------
+# Define a conditional.
+AC_DEFUN([AM_CONDITIONAL],
+[AC_PREREQ([2.52])dnl
+ m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
+AC_SUBST([$1_TRUE])dnl
+AC_SUBST([$1_FALSE])dnl
+_AM_SUBST_NOTMAKE([$1_TRUE])dnl
+_AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
+if $2; then
+ $1_TRUE=
+ $1_FALSE='#'
+else
+ $1_TRUE='#'
+ $1_FALSE=
+fi
+AC_CONFIG_COMMANDS_PRE(
+[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
+ AC_MSG_ERROR([[conditional "$1" was never defined.
+Usually this means the macro was only invoked conditionally.]])
+fi])])
+
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+
+# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be
+# written in clear, in which case automake, when reading aclocal.m4,
+# will think it sees a *use*, and therefore will trigger all it's
+# C support machinery. Also note that it means that autoscan, seeing
+# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+
+
+# _AM_DEPENDENCIES(NAME)
+# ----------------------
+# See how the compiler implements dependency checking.
+# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC".
+# We try a few techniques and use that to set a single cache variable.
+#
+# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
+# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
+# dependency, and given that the user is not expected to run this macro,
+# just rely on AC_PROG_CC.
+AC_DEFUN([_AM_DEPENDENCIES],
+[AC_REQUIRE([AM_SET_DEPDIR])dnl
+AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
+AC_REQUIRE([AM_MAKE_INCLUDE])dnl
+AC_REQUIRE([AM_DEP_TRACK])dnl
+
+m4_if([$1], [CC], [depcc="$CC" am_compiler_list=],
+ [$1], [CXX], [depcc="$CXX" am_compiler_list=],
+ [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
+ [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'],
+ [$1], [UPC], [depcc="$UPC" am_compiler_list=],
+ [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
+ [depcc="$$1" am_compiler_list=])
+
+AC_CACHE_CHECK([dependency style of $depcc],
+ [am_cv_$1_dependencies_compiler_type],
+[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_$1_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
+ fi
+ am__universal=false
+ m4_case([$1], [CC],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac],
+ [CXX],
+ [case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac])
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with '-c' and '-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle '-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs.
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # After this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested.
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+ # This compiler won't grok '-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_$1_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_$1_dependencies_compiler_type=none
+fi
+])
+AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
+AM_CONDITIONAL([am__fastdep$1], [
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
+])
+
+
+# AM_SET_DEPDIR
+# -------------
+# Choose a directory name for dependency files.
+# This macro is AC_REQUIREd in _AM_DEPENDENCIES.
+AC_DEFUN([AM_SET_DEPDIR],
+[AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
+])
+
+
+# AM_DEP_TRACK
+# ------------
+AC_DEFUN([AM_DEP_TRACK],
+[AC_ARG_ENABLE([dependency-tracking], [dnl
+AS_HELP_STRING(
+ [--enable-dependency-tracking],
+ [do not reject slow dependency extractors])
+AS_HELP_STRING(
+ [--disable-dependency-tracking],
+ [speeds up one-time build])])
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+ am__nodep='_no'
+fi
+AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
+AC_SUBST([AMDEPBACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
+AC_SUBST([am__nodep])dnl
+_AM_SUBST_NOTMAKE([am__nodep])dnl
+])
+
+# Generate code to set up dependency tracking. -*- Autoconf -*-
+
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_OUTPUT_DEPENDENCY_COMMANDS
+# ------------------------------
+AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
+[{
+ # Older Autoconf quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ # TODO: see whether this extra hack can be removed once we start
+ # requiring Autoconf 2.70 or later.
+ AS_CASE([$CONFIG_FILES],
+ [*\'*], [eval set x "$CONFIG_FILES"],
+ [*], [set x $CONFIG_FILES])
+ shift
+ # Used to flag and report bootstrapping failures.
+ am_rc=0
+ for am_mf
+ do
+ # Strip MF so we end up with the name of the file.
+ am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile which includes
+ # dependency-tracking related rules and includes.
+ # Grep'ing the whole file directly is not great: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+ || continue
+ am_dirpart=`AS_DIRNAME(["$am_mf"])`
+ am_filepart=`AS_BASENAME(["$am_mf"])`
+ AM_RUN_LOG([cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles]) || am_rc=$?
+ done
+ if test $am_rc -ne 0; then
+ AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments
+ for automatic dependency tracking. If GNU make was not used, consider
+ re-running the configure script with MAKE="gmake" (or whatever is
+ necessary). You can also try re-running configure with the
+ '--disable-dependency-tracking' option to at least be able to build
+ the package (albeit without support for automatic dependency tracking).])
+ fi
+ AS_UNSET([am_dirpart])
+ AS_UNSET([am_filepart])
+ AS_UNSET([am_mf])
+ AS_UNSET([am_rc])
+ rm -f conftest-deps.mk
+}
+])# _AM_OUTPUT_DEPENDENCY_COMMANDS
+
+
+# AM_OUTPUT_DEPENDENCY_COMMANDS
+# -----------------------------
+# This macro should only be invoked once -- use via AC_REQUIRE.
+#
+# This code is only required when automatic dependency tracking is enabled.
+# This creates each '.Po' and '.Plo' makefile fragment that we'll need in
+# order to bootstrap the dependency handling code.
+AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
+[AC_CONFIG_COMMANDS([depfiles],
+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
+ [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])])
+
+# Do all the work for Automake. -*- Autoconf -*-
+
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This macro actually does too much. Some checks are only needed if
+# your package does certain things. But this isn't really a big deal.
+
+dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O.
+m4_define([AC_PROG_CC],
+m4_defn([AC_PROG_CC])
+[_AM_PROG_CC_C_O
+])
+
+# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
+# AM_INIT_AUTOMAKE([OPTIONS])
+# -----------------------------------------------
+# The call with PACKAGE and VERSION arguments is the old style
+# call (pre autoconf-2.50), which is being phased out. PACKAGE
+# and VERSION should now be passed to AC_INIT and removed from
+# the call to AM_INIT_AUTOMAKE.
+# We support both call styles for the transition. After
+# the next Automake release, Autoconf can make the AC_INIT
+# arguments mandatory, and then we can depend on a new Autoconf
+# release and drop the old call support.
+AC_DEFUN([AM_INIT_AUTOMAKE],
+[AC_PREREQ([2.65])dnl
+m4_ifdef([_$0_ALREADY_INIT],
+ [m4_fatal([$0 expanded multiple times
+]m4_defn([_$0_ALREADY_INIT]))],
+ [m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])dnl
+dnl Autoconf wants to disallow AM_ names. We explicitly allow
+dnl the ones we care about.
+m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
+AC_REQUIRE([AC_PROG_INSTALL])dnl
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+AC_SUBST([CYGPATH_W])
+
+# Define the identity of the package.
+dnl Distinguish between old-style and new-style calls.
+m4_ifval([$2],
+[AC_DIAGNOSE([obsolete],
+ [$0: two- and three-arguments forms are deprecated.])
+m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
+ AC_SUBST([PACKAGE], [$1])dnl
+ AC_SUBST([VERSION], [$2])],
+[_AM_SET_OPTIONS([$1])dnl
+dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT.
+m4_if(
+ m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]),
+ [ok:ok],,
+ [m4_fatal([AC_INIT should be called with package and version arguments])])dnl
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
+
+_AM_IF_OPTION([no-define],,
+[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package])
+ AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl
+
+# Some tools Automake needs.
+AC_REQUIRE([AM_SANITY_CHECK])dnl
+AC_REQUIRE([AC_ARG_PROGRAM])dnl
+AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}])
+AM_MISSING_PROG([AUTOCONF], [autoconf])
+AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}])
+AM_MISSING_PROG([AUTOHEADER], [autoheader])
+AM_MISSING_PROG([MAKEINFO], [makeinfo])
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
+AC_REQUIRE([AC_PROG_MKDIR_P])dnl
+# For better backward compatibility. To be removed once Automake 1.9.x
+# dies out for good. For more background, see:
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+AC_SUBST([mkdir_p], ['$(MKDIR_P)'])
+# We need awk for the "check" target (and possibly the TAP driver). The
+# system "awk" is bad on some platforms.
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+AC_REQUIRE([AM_SET_LEADING_DOT])dnl
+_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+ [_AM_PROG_TAR([v7])])])
+_AM_IF_OPTION([no-dependencies],,
+[AC_PROVIDE_IFELSE([AC_PROG_CC],
+ [_AM_DEPENDENCIES([CC])],
+ [m4_define([AC_PROG_CC],
+ m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [_AM_DEPENDENCIES([CXX])],
+ [m4_define([AC_PROG_CXX],
+ m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJC],
+ [_AM_DEPENDENCIES([OBJC])],
+ [m4_define([AC_PROG_OBJC],
+ m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl
+AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
+ [_AM_DEPENDENCIES([OBJCXX])],
+ [m4_define([AC_PROG_OBJCXX],
+ m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl
+])
+# Variables for tags utilities; see am/tags.am
+if test -z "$CTAGS"; then
+ CTAGS=ctags
+fi
+AC_SUBST([CTAGS])
+if test -z "$ETAGS"; then
+ ETAGS=etags
+fi
+AC_SUBST([ETAGS])
+if test -z "$CSCOPE"; then
+ CSCOPE=cscope
+fi
+AC_SUBST([CSCOPE])
+
+AC_REQUIRE([AM_SILENT_RULES])dnl
+dnl The testsuite driver may need to know about EXEEXT, so add the
+dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This
+dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+ [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
+ fi
+fi
+dnl The trailing newline in this macro's definition is deliberate, for
+dnl backward compatibility and to allow trailing 'dnl'-style comments
+dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
+])
+
+dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
+dnl mangled by Autoconf and run in a shell conditional statement.
+m4_define([_AC_COMPILER_EXEEXT],
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
+
+# When config.status generates a header, we must update the stamp-h file.
+# This file resides in the same directory as the config header
+# that is generated. The stamp files are numbered to have different names.
+
+# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
+# loop where config.status creates the headers, so we can generate
+# our stamp files there.
+AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
+[# Compute $1's index in $config_headers.
+_am_arg=$1
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
+
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_SH
+# ------------------
+# Define $install_sh.
+AC_DEFUN([AM_PROG_INSTALL_SH],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+if test x"${install_sh+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+AC_SUBST([install_sh])])
+
+# Copyright (C) 2003-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# Check whether the underlying file-system supports filenames
+# with a leading dot. For instance MS-DOS doesn't.
+AC_DEFUN([AM_SET_LEADING_DOT],
+[rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+AC_SUBST([am__leading_dot])])
+
+# Check to see how 'make' treats includes. -*- Autoconf -*-
+
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MAKE_INCLUDE()
+# -----------------
+# Check whether make has an 'include' directive that can support all
+# the idioms we need for our automatic dependency tracking code.
+AC_DEFUN([AM_MAKE_INCLUDE],
+[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive])
+cat > confinc.mk << 'END'
+am__doit:
+ @echo this is the am__doit target >confinc.out
+.PHONY: am__doit
+END
+am__include="#"
+am__quote=
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+ AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out])
+ AS_CASE([$?:`cat confinc.out 2>/dev/null`],
+ ['0:this is the am__doit target'],
+ [AS_CASE([$s],
+ [BSD], [am__include='.include' am__quote='"'],
+ [am__include='include' am__quote=''])])
+ if test "$am__include" != "#"; then
+ _am_result="yes ($s style)"
+ break
+ fi
+done
+rm -f confinc.* confmf.*
+AC_MSG_RESULT([${_am_result}])
+AC_SUBST([am__include])])
+AC_SUBST([am__quote])])
+
+# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
+
+# Copyright (C) 1997-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_MISSING_PROG(NAME, PROGRAM)
+# ------------------------------
+AC_DEFUN([AM_MISSING_PROG],
+[AC_REQUIRE([AM_MISSING_HAS_RUN])
+$1=${$1-"${am_missing_run}$2"}
+AC_SUBST($1)])
+
+# AM_MISSING_HAS_RUN
+# ------------------
+# Define MISSING if not defined so far and test if it is modern enough.
+# If it is, set am_missing_run to use it, otherwise, to nothing.
+AC_DEFUN([AM_MISSING_HAS_RUN],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([missing])dnl
+if test x"${MISSING+set}" != xset; then
+ MISSING="\${SHELL} '$am_aux_dir/missing'"
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+ am_missing_run="$MISSING "
+else
+ am_missing_run=
+ AC_MSG_WARN(['missing' script is too old or missing])
+fi
+])
+
+# Helper functions for option handling. -*- Autoconf -*-
+
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_MANGLE_OPTION(NAME)
+# -----------------------
+AC_DEFUN([_AM_MANGLE_OPTION],
+[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
+
+# _AM_SET_OPTION(NAME)
+# --------------------
+# Set option NAME. Presently that only means defining a flag for this option.
+AC_DEFUN([_AM_SET_OPTION],
+[m4_define(_AM_MANGLE_OPTION([$1]), [1])])
+
+# _AM_SET_OPTIONS(OPTIONS)
+# ------------------------
+# OPTIONS is a space-separated list of Automake options.
+AC_DEFUN([_AM_SET_OPTIONS],
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+
+# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
+# -------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+AC_DEFUN([_AM_IF_OPTION],
+[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
+
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_CC_C_O
+# ---------------
+# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC
+# to automatically call this.
+AC_DEFUN([_AM_PROG_CC_C_O],
+[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
+AC_REQUIRE_AUX_FILE([compile])dnl
+AC_LANG_PUSH([C])dnl
+AC_CACHE_CHECK(
+ [whether $CC understands -c and -o together],
+ [am_cv_prog_cc_c_o],
+ [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])])
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i])
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+AC_LANG_POP([C])])
+
+# For backward compatibility.
+AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
+
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_RUN_LOG(COMMAND)
+# -------------------
+# Run COMMAND, save the exit status in ac_status, and log it.
+# (This has been adapted from Autoconf's _AC_RUN_LOG macro.)
+AC_DEFUN([AM_RUN_LOG],
+[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD
+ ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ (exit $ac_status); }])
+
+# Check to make sure that the build environment is sane. -*- Autoconf -*-
+
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_SANITY_CHECK
+# ---------------
+AC_DEFUN([AM_SANITY_CHECK],
+[AC_MSG_CHECKING([whether build environment is sane])
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[[\\\"\#\$\&\'\`$am_lf]]*)
+ AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+ *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*)
+ AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ am_has_slept=no
+ for am_try in 1 2; do
+ echo "timestamp, slept: $am_has_slept" > conftest.file
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$[*]" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
+ alias in your environment])
+ fi
+ if test "$[2]" = conftest.file || test $am_try -eq 2; then
+ break
+ fi
+ # Just in case.
+ sleep 1
+ am_has_slept=yes
+ done
+ test "$[2]" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ AC_MSG_ERROR([newly created file is older than distributed files!
+Check your system clock])
+fi
+AC_MSG_RESULT([yes])
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+ ( sleep 1 ) &
+ am_sleep_pid=$!
+fi
+AC_CONFIG_COMMANDS_PRE(
+ [AC_MSG_CHECKING([that generated files are newer than configure])
+ if test -n "$am_sleep_pid"; then
+ # Hide warnings about reused PIDs.
+ wait $am_sleep_pid 2>/dev/null
+ fi
+ AC_MSG_RESULT([done])])
+rm -f conftest.file
+])
+
+# Copyright (C) 2009-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_SILENT_RULES([DEFAULT])
+# --------------------------
+# Enable less verbose build rules; with the default set to DEFAULT
+# ("yes" being less verbose, "no" or empty being verbose).
+AC_DEFUN([AM_SILENT_RULES],
+[AC_ARG_ENABLE([silent-rules], [dnl
+AS_HELP_STRING(
+ [--enable-silent-rules],
+ [less verbose build output (undo: "make V=1")])
+AS_HELP_STRING(
+ [--disable-silent-rules],
+ [verbose build output (undo: "make V=0")])dnl
+])
+case $enable_silent_rules in @%:@ (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
+esac
+dnl
+dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
+dnl do not support nested variable expansions.
+dnl See automake bug#9928 and bug#10237.
+am_make=${MAKE-make}
+AC_CACHE_CHECK([whether $am_make supports nested variables],
+ [am_cv_make_support_nested_variables],
+ [if AS_ECHO([['TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi])
+if test $am_cv_make_support_nested_variables = yes; then
+ dnl Using '$V' instead of '$(V)' breaks IRIX make.
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AC_SUBST([AM_V])dnl
+AM_SUBST_NOTMAKE([AM_V])dnl
+AC_SUBST([AM_DEFAULT_V])dnl
+AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl
+AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
+AM_BACKSLASH='\'
+AC_SUBST([AM_BACKSLASH])dnl
+_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
+])
+
+# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# AM_PROG_INSTALL_STRIP
+# ---------------------
+# One issue with vendor 'install' (even GNU) is that you can't
+# specify the program used to strip binaries. This is especially
+# annoying in cross-compiling environments, where the build's strip
+# is unlikely to handle the host's binaries.
+# Fortunately install-sh will honor a STRIPPROG variable, so we
+# always use install-sh in "make install-strip", and initialize
+# STRIPPROG with the value of the STRIP variable (set by the user).
+AC_DEFUN([AM_PROG_INSTALL_STRIP],
+[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip". However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+dnl Don't test for $cross_compiling = yes, because it might be 'maybe'.
+if test "$cross_compiling" != no; then
+ AC_CHECK_TOOL([STRIP], [strip], :)
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+AC_SUBST([INSTALL_STRIP_PROGRAM])])
+
+# Copyright (C) 2006-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
+
+# AM_SUBST_NOTMAKE(VARIABLE)
+# --------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
+# Check how to create a tarball. -*- Autoconf -*-
+
+# Copyright (C) 2004-2021 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of 'v7', 'ustar', or 'pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+# tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+# $(am__untar) < result.tar
+#
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AC_SUBST([AMTAR], ['$${TAR-tar}'])
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+
+m4_if([$1], [v7],
+ [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'],
+
+ [m4_case([$1],
+ [ustar],
+ [# The POSIX 1988 'ustar' format is defined with fixed-size fields.
+ # There is notably a 21 bits limit for the UID and the GID. In fact,
+ # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343
+ # and bug#13588).
+ am_max_uid=2097151 # 2^21 - 1
+ am_max_gid=$am_max_uid
+ # The $UID and $GID variables are not portable, so we need to resort
+ # to the POSIX-mandated id(1) utility. Errors in the 'id' calls
+ # below are definitely unexpected, so allow the users to see them
+ # (that is, avoid stderr redirection).
+ am_uid=`id -u || echo unknown`
+ am_gid=`id -g || echo unknown`
+ AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
+ if test $am_uid -le $am_max_uid; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ _am_tools=none
+ fi
+ AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
+ if test $am_gid -le $am_max_gid; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ _am_tools=none
+ fi],
+
+ [pax],
+ [],
+
+ [m4_fatal([Unknown tar format])])
+
+ AC_MSG_CHECKING([how to create a $1 tar archive])
+
+ # Go ahead even if we have the value already cached. We do so because we
+ # need to set the values for the 'am__tar' and 'am__untar' variables.
+ _am_tools=${am_cv_prog_tar_$1-$_am_tools}
+
+ for _am_tool in $_am_tools; do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar; do
+ AM_RUN_LOG([$_am_tar --version]) && break
+ done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
+
+ # tar/untar a dummy directory, and stop if the command works.
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ AM_RUN_LOG([cat conftest.dir/file])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+ done
+ rm -rf conftest.dir
+
+ AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+ AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
+
+m4_include([m4/gettext.m4])
+m4_include([m4/iconv.m4])
+m4_include([m4/lib-ld.m4])
+m4_include([m4/lib-link.m4])
+m4_include([m4/lib-prefix.m4])
+m4_include([m4/libtool.m4])
+m4_include([m4/ltoptions.m4])
+m4_include([m4/ltsugar.m4])
+m4_include([m4/ltversion.m4])
+m4_include([m4/lt~obsolete.m4])
+m4_include([m4/nls.m4])
+m4_include([m4/po.m4])
+m4_include([m4/progtest.m4])
diff --git a/autogen.sh b/autogen.sh
new file mode 100755
index 0000000..bd1b822
--- /dev/null
+++ b/autogen.sh
@@ -0,0 +1,75 @@
+#!/bin/sh
+#
+# Helps generate autoconf/automake stuff, when code is checked
+# out from SCM.
+
+SRCDIR=$(dirname ${0})
+test -z "${SRCDIR}" && SRCDIR=.
+
+THEDIR=$(pwd)
+cd ${SRCDIR}
+DIE=0
+
+test -f autogen.sh || {
+ echo "You must run this script in the top-level procps-ng directory"
+ DIE=1
+}
+
+(autopoint --version) < /dev/null > /dev/null 2>&1 || {
+ echo "You must have autopoint installed to generate procps-ng build system."
+ echo "The autopoint command is part of the GNU gettext package."
+ DIE=1
+}
+
+(autoconf --version) < /dev/null > /dev/null || {
+ echo "You must have autoconf installed to generate procps-ng build system."
+ DIE=1
+}
+(autoheader --version) < /dev/null > /dev/null || {
+ echo "You must have autoheader installed to generate procps-ng build system."
+ echo "The autoheader command is part of the GNU autoconf package."
+ DIE=1
+}
+(automake --version) < /dev/null > /dev/null || {
+ echo "You must have automake installed to generate procps-ng build system."
+ DIE=1
+}
+
+LTVER=$(libtoolize --version | awk '/^libtoolize/ { print $4 }')
+LTVER=${LTVER:-"none"}
+test ${LTVER##2.} = "${LTVER}" && {
+ echo "You must have libtoolize version >= 2.x.x, but you have ${LTVER}."
+ DIE=1
+}
+
+if test ${DIE} -ne 0; then
+ exit 1
+fi
+
+echo "Generate build-system by:"
+echo " autopoint: $(autopoint --version | head -1)"
+echo " aclocal: $(aclocal --version | head -1)"
+echo " autoconf: $(autoconf --version | head -1)"
+echo " autoheader: $(autoheader --version | head -1)"
+echo " automake: $(automake --version | head -1)"
+echo " libtoolize: $(libtoolize --version | head -1)"
+
+rm -rf autom4te.cache
+
+set -e
+po/update-potfiles
+autopoint --force $AP_OPTS
+if ! grep -q datarootdir po/Makefile.in.in; then
+ echo autopoint does not honor dataroot variable, patching.
+ sed -i -e 's/^datadir *=\(.*\)/datarootdir = @datarootdir@\
+datadir = @datadir@/g' po/Makefile.in.in
+fi
+libtoolize --force ${LT_OPTS}
+aclocal -I m4 ${AL_OPTS}
+autoconf ${AC_OPTS}
+autoheader ${AH_OPTS}
+
+automake --add-missing ${AM_OPTS}
+
+echo
+echo "Now type '${SRCDIR}/configure' and 'make' to compile."
diff --git a/compile b/compile
new file mode 100755
index 0000000..df363c8
--- /dev/null
+++ b/compile
@@ -0,0 +1,348 @@
+#! /bin/sh
+# Wrapper for compilers which do not understand '-c -o'.
+
+scriptversion=2018-03-07.03; # UTC
+
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
+# Written by Tom Tromey <tromey@cygnus.com>.
+#
+# 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 2, 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
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+nl='
+'
+
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent tools from complaining about whitespace usage.
+IFS=" "" $nl"
+
+file_conv=
+
+# func_file_conv build_file lazy
+# Convert a $build file to $host form and store it in $file
+# Currently only supports Windows hosts. If the determined conversion
+# type is listed in (the comma separated) LAZY, no conversion will
+# take place.
+func_file_conv ()
+{
+ file=$1
+ case $file in
+ / | /[!/]*) # absolute file, and not a UNC file
+ if test -z "$file_conv"; then
+ # lazily determine how to convert abs files
+ case `uname -s` in
+ MINGW*)
+ file_conv=mingw
+ ;;
+ CYGWIN* | MSYS*)
+ file_conv=cygwin
+ ;;
+ *)
+ file_conv=wine
+ ;;
+ esac
+ fi
+ case $file_conv/,$2, in
+ *,$file_conv,*)
+ ;;
+ mingw/*)
+ file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'`
+ ;;
+ cygwin/* | msys/*)
+ file=`cygpath -m "$file" || echo "$file"`
+ ;;
+ wine/*)
+ file=`winepath -w "$file" || echo "$file"`
+ ;;
+ esac
+ ;;
+ esac
+}
+
+# func_cl_dashL linkdir
+# Make cl look for libraries in LINKDIR
+func_cl_dashL ()
+{
+ func_file_conv "$1"
+ if test -z "$lib_path"; then
+ lib_path=$file
+ else
+ lib_path="$lib_path;$file"
+ fi
+ linker_opts="$linker_opts -LIBPATH:$file"
+}
+
+# func_cl_dashl library
+# Do a library search-path lookup for cl
+func_cl_dashl ()
+{
+ lib=$1
+ found=no
+ save_IFS=$IFS
+ IFS=';'
+ for dir in $lib_path $LIB
+ do
+ IFS=$save_IFS
+ if $shared && test -f "$dir/$lib.dll.lib"; then
+ found=yes
+ lib=$dir/$lib.dll.lib
+ break
+ fi
+ if test -f "$dir/$lib.lib"; then
+ found=yes
+ lib=$dir/$lib.lib
+ break
+ fi
+ if test -f "$dir/lib$lib.a"; then
+ found=yes
+ lib=$dir/lib$lib.a
+ break
+ fi
+ done
+ IFS=$save_IFS
+
+ if test "$found" != yes; then
+ lib=$lib.lib
+ fi
+}
+
+# func_cl_wrapper cl arg...
+# Adjust compile command to suit cl
+func_cl_wrapper ()
+{
+ # Assume a capable shell
+ lib_path=
+ shared=:
+ linker_opts=
+ for arg
+ do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ eat=1
+ case $2 in
+ *.o | *.[oO][bB][jJ])
+ func_file_conv "$2"
+ set x "$@" -Fo"$file"
+ shift
+ ;;
+ *)
+ func_file_conv "$2"
+ set x "$@" -Fe"$file"
+ shift
+ ;;
+ esac
+ ;;
+ -I)
+ eat=1
+ func_file_conv "$2" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -I*)
+ func_file_conv "${1#-I}" mingw
+ set x "$@" -I"$file"
+ shift
+ ;;
+ -l)
+ eat=1
+ func_cl_dashl "$2"
+ set x "$@" "$lib"
+ shift
+ ;;
+ -l*)
+ func_cl_dashl "${1#-l}"
+ set x "$@" "$lib"
+ shift
+ ;;
+ -L)
+ eat=1
+ func_cl_dashL "$2"
+ ;;
+ -L*)
+ func_cl_dashL "${1#-L}"
+ ;;
+ -static)
+ shared=false
+ ;;
+ -Wl,*)
+ arg=${1#-Wl,}
+ save_ifs="$IFS"; IFS=','
+ for flag in $arg; do
+ IFS="$save_ifs"
+ linker_opts="$linker_opts $flag"
+ done
+ IFS="$save_ifs"
+ ;;
+ -Xlinker)
+ eat=1
+ linker_opts="$linker_opts $2"
+ ;;
+ -*)
+ set x "$@" "$1"
+ shift
+ ;;
+ *.cc | *.CC | *.cxx | *.CXX | *.[cC]++)
+ func_file_conv "$1"
+ set x "$@" -Tp"$file"
+ shift
+ ;;
+ *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO])
+ func_file_conv "$1" mingw
+ set x "$@" "$file"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+ done
+ if test -n "$linker_opts"; then
+ linker_opts="-link$linker_opts"
+ fi
+ exec "$@" $linker_opts
+ exit 1
+}
+
+eat=
+
+case $1 in
+ '')
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: compile [--help] [--version] PROGRAM [ARGS]
+
+Wrapper for compilers which do not understand '-c -o'.
+Remove '-o dest.o' from ARGS, run PROGRAM with the remaining
+arguments, and rename the output as expected.
+
+If you are trying to build a whole package this is not the
+right script to run: please start by reading the file 'INSTALL'.
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "compile $scriptversion"
+ exit $?
+ ;;
+ cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
+ icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
+ func_cl_wrapper "$@" # Doesn't return...
+ ;;
+esac
+
+ofile=
+cfile=
+
+for arg
+do
+ if test -n "$eat"; then
+ eat=
+ else
+ case $1 in
+ -o)
+ # configure might choose to run compile as 'compile cc -o foo foo.c'.
+ # So we strip '-o arg' only if arg is an object.
+ eat=1
+ case $2 in
+ *.o | *.obj)
+ ofile=$2
+ ;;
+ *)
+ set x "$@" -o "$2"
+ shift
+ ;;
+ esac
+ ;;
+ *.c)
+ cfile=$1
+ set x "$@" "$1"
+ shift
+ ;;
+ *)
+ set x "$@" "$1"
+ shift
+ ;;
+ esac
+ fi
+ shift
+done
+
+if test -z "$ofile" || test -z "$cfile"; then
+ # If no '-o' option was seen then we might have been invoked from a
+ # pattern rule where we don't need one. That is ok -- this is a
+ # normal compilation that the losing compiler can handle. If no
+ # '.c' file was seen then we are probably linking. That is also
+ # ok.
+ exec "$@"
+fi
+
+# Name of file we expect compiler to create.
+cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'`
+
+# Create the lock directory.
+# Note: use '[/\\:.-]' here to ensure that we don't use the same name
+# that we are using for the .o file. Also, base the name on the expected
+# object file name, since that is what matters with a parallel build.
+lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d
+while true; do
+ if mkdir "$lockdir" >/dev/null 2>&1; then
+ break
+ fi
+ sleep 1
+done
+# FIXME: race condition here if user kills between mkdir and trap.
+trap "rmdir '$lockdir'; exit 1" 1 2 15
+
+# Run the compile.
+"$@"
+ret=$?
+
+if test -f "$cofile"; then
+ test "$cofile" = "$ofile" || mv "$cofile" "$ofile"
+elif test -f "${cofile}bj"; then
+ test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile"
+fi
+
+rmdir "$lockdir"
+exit $ret
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC0"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/config.guess b/config.guess
new file mode 100755
index 0000000..7f76b62
--- /dev/null
+++ b/config.guess
@@ -0,0 +1,1754 @@
+#! /bin/sh
+# Attempt to guess a canonical system name.
+# Copyright 1992-2022 Free Software Foundation, Inc.
+
+# shellcheck disable=SC2006,SC2268 # see below for rationale
+
+timestamp='2022-01-09'
+
+# This file 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
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that
+# program. This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
+#
+# Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
+#
+# You can get the latest version of this script from:
+# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
+#
+# Please send patches to <config-patches@gnu.org>.
+
+
+# The "shellcheck disable" line above the timestamp inhibits complaints
+# about features and limitations of the classic Bourne shell that were
+# superseded or lifted in POSIX. However, this script identifies a wide
+# variety of pre-POSIX systems that do not have POSIX shells at all, and
+# even some reasonably current systems (Solaris 10 as case-in-point) still
+# have a pre-POSIX /bin/sh.
+
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Options:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright 1992-2022 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit ;;
+ --version | -v )
+ echo "$version" ; exit ;;
+ --help | --h* | -h )
+ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help" >&2
+ exit 1 ;;
+ * )
+ break ;;
+ esac
+done
+
+if test $# != 0; then
+ echo "$me: too many arguments$help" >&2
+ exit 1
+fi
+
+# Just in case it came from the environment.
+GUESS=
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+tmp=
+# shellcheck disable=SC2172
+trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
+
+set_cc_for_build() {
+ # prevent multiple calls if $tmp is already set
+ test "$tmp" && return 0
+ : "${TMPDIR=/tmp}"
+ # shellcheck disable=SC2039,SC3028
+ { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; }
+ dummy=$tmp/dummy
+ case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
+ ,,) echo "int x;" > "$dummy.c"
+ for driver in cc gcc c89 c99 ; do
+ if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
+ CC_FOR_BUILD=$driver
+ break
+ fi
+ done
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+ esac
+}
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if test -f /.attbin/uname ; then
+ PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+case $UNAME_SYSTEM in
+Linux|GNU|GNU/*)
+ LIBC=unknown
+
+ set_cc_for_build
+ cat <<-EOF > "$dummy.c"
+ #include <features.h>
+ #if defined(__UCLIBC__)
+ LIBC=uclibc
+ #elif defined(__dietlibc__)
+ LIBC=dietlibc
+ #elif defined(__GLIBC__)
+ LIBC=gnu
+ #else
+ #include <stdarg.h>
+ /* First heuristic to detect musl libc. */
+ #ifdef __DEFINED_va_list
+ LIBC=musl
+ #endif
+ #endif
+ EOF
+ cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+ eval "$cc_set_libc"
+
+ # Second heuristic to detect musl libc.
+ if [ "$LIBC" = unknown ] &&
+ command -v ldd >/dev/null &&
+ ldd --version 2>&1 | grep -q ^musl; then
+ LIBC=musl
+ fi
+
+ # If the system lacks a compiler, then just pick glibc.
+ # We could probably try harder.
+ if [ "$LIBC" = unknown ]; then
+ LIBC=gnu
+ fi
+ ;;
+esac
+
+# Note: order is significant - the case branches are not exclusive.
+
+case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in
+ *:NetBSD:*:*)
+ # NetBSD (nbsd) targets should (where applicable) match one or
+ # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+ # compatibility and a consistent mechanism for selecting the
+ # object file format.
+ #
+ # Note: NetBSD doesn't particularly care about the vendor
+ # portion of the name. We always set it to "unknown".
+ UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
+ /sbin/sysctl -n hw.machine_arch 2>/dev/null || \
+ /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \
+ echo unknown)`
+ case $UNAME_MACHINE_ARCH in
+ aarch64eb) machine=aarch64_be-unknown ;;
+ armeb) machine=armeb-unknown ;;
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+ sh5el) machine=sh5le-unknown ;;
+ earmv*)
+ arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
+ endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
+ machine=${arch}${endian}-unknown
+ ;;
+ *) machine=$UNAME_MACHINE_ARCH-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+ # to ELF recently (or will in the future) and ABI.
+ case $UNAME_MACHINE_ARCH in
+ earm*)
+ os=netbsdelf
+ ;;
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ELF__
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+ os=netbsd
+ else
+ os=netbsdelf
+ fi
+ ;;
+ *)
+ os=netbsd
+ ;;
+ esac
+ # Determine ABI tags.
+ case $UNAME_MACHINE_ARCH in
+ earm*)
+ expr='s/^earmv[0-9]/-eabi/;s/eb$//'
+ abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
+ ;;
+ esac
+ # The OS release
+ # Debian GNU/NetBSD machines have a different userland, and
+ # thus, need a distinct triplet. However, they do not need
+ # kernel version information, so it can be replaced with a
+ # suitable tag, in the style of linux-gnu.
+ case $UNAME_VERSION in
+ Debian*)
+ release='-gnu'
+ ;;
+ *)
+ release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2`
+ ;;
+ esac
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ GUESS=$machine-${os}${release}${abi-}
+ ;;
+ *:Bitrig:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
+ GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE
+ ;;
+ *:OpenBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
+ GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE
+ ;;
+ *:SecBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'`
+ GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE
+ ;;
+ *:LibertyBSD:*:*)
+ UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
+ GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE
+ ;;
+ *:MidnightBSD:*:*)
+ GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE
+ ;;
+ *:ekkoBSD:*:*)
+ GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE
+ ;;
+ *:SolidBSD:*:*)
+ GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE
+ ;;
+ *:OS108:*:*)
+ GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE
+ ;;
+ macppc:MirBSD:*:*)
+ GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE
+ ;;
+ *:MirBSD:*:*)
+ GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE
+ ;;
+ *:Sortix:*:*)
+ GUESS=$UNAME_MACHINE-unknown-sortix
+ ;;
+ *:Twizzler:*:*)
+ GUESS=$UNAME_MACHINE-unknown-twizzler
+ ;;
+ *:Redox:*:*)
+ GUESS=$UNAME_MACHINE-unknown-redox
+ ;;
+ mips:OSF1:*.*)
+ GUESS=mips-dec-osf1
+ ;;
+ alpha:OSF1:*:*)
+ # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+ trap '' 0
+ case $UNAME_RELEASE in
+ *4.0)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ ;;
+ *5.*)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ ;;
+ esac
+ # According to Compaq, /usr/sbin/psrinfo has been available on
+ # OSF/1 and Tru64 systems produced since 1995. I hope that
+ # covers most systems running today. This code pipes the CPU
+ # types through head -n 1, so we only detect the type of CPU 0.
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+ case $ALPHA_CPU_TYPE in
+ "EV4 (21064)")
+ UNAME_MACHINE=alpha ;;
+ "EV4.5 (21064)")
+ UNAME_MACHINE=alpha ;;
+ "LCA4 (21066/21068)")
+ UNAME_MACHINE=alpha ;;
+ "EV5 (21164)")
+ UNAME_MACHINE=alphaev5 ;;
+ "EV5.6 (21164A)")
+ UNAME_MACHINE=alphaev56 ;;
+ "EV5.6 (21164PC)")
+ UNAME_MACHINE=alphapca56 ;;
+ "EV5.7 (21164PC)")
+ UNAME_MACHINE=alphapca57 ;;
+ "EV6 (21264)")
+ UNAME_MACHINE=alphaev6 ;;
+ "EV6.7 (21264A)")
+ UNAME_MACHINE=alphaev67 ;;
+ "EV6.8CB (21264C)")
+ UNAME_MACHINE=alphaev68 ;;
+ "EV6.8AL (21264B)")
+ UNAME_MACHINE=alphaev68 ;;
+ "EV6.8CX (21264D)")
+ UNAME_MACHINE=alphaev68 ;;
+ "EV6.9A (21264/EV69A)")
+ UNAME_MACHINE=alphaev69 ;;
+ "EV7 (21364)")
+ UNAME_MACHINE=alphaev7 ;;
+ "EV7.9 (21364A)")
+ UNAME_MACHINE=alphaev79 ;;
+ esac
+ # A Pn.n version is a patched version.
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+ GUESS=$UNAME_MACHINE-dec-osf$OSF_REL
+ ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ GUESS=m68k-unknown-sysv4
+ ;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+ GUESS=$UNAME_MACHINE-unknown-amigaos
+ ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+ GUESS=$UNAME_MACHINE-unknown-morphos
+ ;;
+ *:OS/390:*:*)
+ GUESS=i370-ibm-openedition
+ ;;
+ *:z/VM:*:*)
+ GUESS=s390-ibm-zvmoe
+ ;;
+ *:OS400:*:*)
+ GUESS=powerpc-ibm-os400
+ ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ GUESS=arm-acorn-riscix$UNAME_RELEASE
+ ;;
+ arm*:riscos:*:*|arm*:RISCOS:*:*)
+ GUESS=arm-unknown-riscos
+ ;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ GUESS=hppa1.1-hitachi-hiuxmpp
+ ;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ case `(/bin/universe) 2>/dev/null` in
+ att) GUESS=pyramid-pyramid-sysv3 ;;
+ *) GUESS=pyramid-pyramid-bsd ;;
+ esac
+ ;;
+ NILE*:*:*:dcosx)
+ GUESS=pyramid-pyramid-svr4
+ ;;
+ DRS?6000:unix:4.0:6*)
+ GUESS=sparc-icl-nx6
+ ;;
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+ case `/usr/bin/uname -p` in
+ sparc) GUESS=sparc-icl-nx7 ;;
+ esac
+ ;;
+ s390x:SunOS:*:*)
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL
+ ;;
+ sun4H:SunOS:5.*:*)
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=sparc-hal-solaris2$SUN_REL
+ ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=sparc-sun-solaris2$SUN_REL
+ ;;
+ i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
+ GUESS=i386-pc-auroraux$UNAME_RELEASE
+ ;;
+ i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
+ set_cc_for_build
+ SUN_ARCH=i386
+ # If there is a compiler, see if it is configured for 64-bit objects.
+ # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+ # This test works for both compilers.
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
+ if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ SUN_ARCH=x86_64
+ fi
+ fi
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=$SUN_ARCH-pc-solaris2$SUN_REL
+ ;;
+ sun4*:SunOS:6*:*)
+ # According to config.sub, this is the proper way to canonicalize
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
+ # it's likely to be more like Solaris than SunOS4.
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=sparc-sun-solaris3$SUN_REL
+ ;;
+ sun4*:SunOS:*:*)
+ case `/usr/bin/arch -k` in
+ Series*|S4*)
+ UNAME_RELEASE=`uname -v`
+ ;;
+ esac
+ # Japanese Language versions have a version number like `4.1.3-JL'.
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
+ GUESS=sparc-sun-sunos$SUN_REL
+ ;;
+ sun3*:SunOS:*:*)
+ GUESS=m68k-sun-sunos$UNAME_RELEASE
+ ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
+ case `/bin/arch` in
+ sun3)
+ GUESS=m68k-sun-sunos$UNAME_RELEASE
+ ;;
+ sun4)
+ GUESS=sparc-sun-sunos$UNAME_RELEASE
+ ;;
+ esac
+ ;;
+ aushp:SunOS:*:*)
+ GUESS=sparc-auspex-sunos$UNAME_RELEASE
+ ;;
+ # The situation for MiNT is a little confusing. The machine name
+ # can be virtually everything (everything which is not
+ # "atarist" or "atariste" at least should have a processor
+ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
+ # to the lowercase version "mint" (or "freemint"). Finally
+ # the system name "TOS" denotes a system which is actually not
+ # MiNT. But MiNT is downward compatible to TOS, so this should
+ # be no problem.
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+ GUESS=m68k-atari-mint$UNAME_RELEASE
+ ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ GUESS=m68k-atari-mint$UNAME_RELEASE
+ ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+ GUESS=m68k-atari-mint$UNAME_RELEASE
+ ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+ GUESS=m68k-milan-mint$UNAME_RELEASE
+ ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+ GUESS=m68k-hades-mint$UNAME_RELEASE
+ ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+ GUESS=m68k-unknown-mint$UNAME_RELEASE
+ ;;
+ m68k:machten:*:*)
+ GUESS=m68k-apple-machten$UNAME_RELEASE
+ ;;
+ powerpc:machten:*:*)
+ GUESS=powerpc-apple-machten$UNAME_RELEASE
+ ;;
+ RISC*:Mach:*:*)
+ GUESS=mips-dec-mach_bsd4.3
+ ;;
+ RISC*:ULTRIX:*:*)
+ GUESS=mips-dec-ultrix$UNAME_RELEASE
+ ;;
+ VAX*:ULTRIX*:*:*)
+ GUESS=vax-dec-ultrix$UNAME_RELEASE
+ ;;
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
+ GUESS=clipper-intergraph-clix$UNAME_RELEASE
+ ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
+#ifdef __cplusplus
+#include <stdio.h> /* for printf() prototype */
+ int main (int argc, char *argv[]) {
+#else
+ int main (argc, argv) int argc; char *argv[]; {
+#endif
+ #if defined (host_mips) && defined (MIPSEB)
+ #if defined (SYSTYPE_SYSV)
+ printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_SVR4)
+ printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+ printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0);
+ #endif
+ #endif
+ exit (-1);
+ }
+EOF
+ $CC_FOR_BUILD -o "$dummy" "$dummy.c" &&
+ dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
+ SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
+ { echo "$SYSTEM_NAME"; exit; }
+ GUESS=mips-mips-riscos$UNAME_RELEASE
+ ;;
+ Motorola:PowerMAX_OS:*:*)
+ GUESS=powerpc-motorola-powermax
+ ;;
+ Motorola:*:4.3:PL8-*)
+ GUESS=powerpc-harris-powermax
+ ;;
+ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+ GUESS=powerpc-harris-powermax
+ ;;
+ Night_Hawk:Power_UNIX:*:*)
+ GUESS=powerpc-harris-powerunix
+ ;;
+ m88k:CX/UX:7*:*)
+ GUESS=m88k-harris-cxux7
+ ;;
+ m88k:*:4*:R4*)
+ GUESS=m88k-motorola-sysv4
+ ;;
+ m88k:*:3*:R3*)
+ GUESS=m88k-motorola-sysv3
+ ;;
+ AViiON:dgux:*:*)
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
+ then
+ if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
+ test "$TARGET_BINARY_INTERFACE"x = x
+ then
+ GUESS=m88k-dg-dgux$UNAME_RELEASE
+ else
+ GUESS=m88k-dg-dguxbcs$UNAME_RELEASE
+ fi
+ else
+ GUESS=i586-dg-dgux$UNAME_RELEASE
+ fi
+ ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ GUESS=m88k-dolphin-sysv3
+ ;;
+ M88*:*:R3*:*)
+ # Delta 88k system running SVR3
+ GUESS=m88k-motorola-sysv3
+ ;;
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+ GUESS=m88k-tektronix-sysv3
+ ;;
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+ GUESS=m68k-tektronix-bsd
+ ;;
+ *:IRIX*:*:*)
+ IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'`
+ GUESS=mips-sgi-irix$IRIX_REL
+ ;;
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+ GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ i*86:AIX:*:*)
+ GUESS=i386-ibm-aix
+ ;;
+ ia64:AIX:*:*)
+ if test -x /usr/bin/oslevel ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
+ fi
+ GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV
+ ;;
+ *:AIX:2:3)
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
+ #include <sys/systemcfg.h>
+
+ main()
+ {
+ if (!__power_pc())
+ exit(1);
+ puts("powerpc-ibm-aix3.2.5");
+ exit(0);
+ }
+EOF
+ if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
+ then
+ GUESS=$SYSTEM_NAME
+ else
+ GUESS=rs6000-ibm-aix3.2.5
+ fi
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ GUESS=rs6000-ibm-aix3.2.4
+ else
+ GUESS=rs6000-ibm-aix3.2
+ fi
+ ;;
+ *:AIX:*:[4567])
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+ if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
+ IBM_ARCH=rs6000
+ else
+ IBM_ARCH=powerpc
+ fi
+ if test -x /usr/bin/lslpp ; then
+ IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \
+ awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
+ else
+ IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
+ fi
+ GUESS=$IBM_ARCH-ibm-aix$IBM_REV
+ ;;
+ *:AIX:*:*)
+ GUESS=rs6000-ibm-aix
+ ;;
+ ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
+ GUESS=romp-ibm-bsd4.4
+ ;;
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
+ GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to
+ ;; # report: romp-ibm BSD 4.3
+ *:BOSX:*:*)
+ GUESS=rs6000-bull-bosx
+ ;;
+ DPX/2?00:B.O.S.:*:*)
+ GUESS=m68k-bull-sysv3
+ ;;
+ 9000/[34]??:4.3bsd:1.*:*)
+ GUESS=m68k-hp-bsd
+ ;;
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ GUESS=m68k-hp-bsd4.4
+ ;;
+ 9000/[34678]??:HP-UX:*:*)
+ HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
+ case $UNAME_MACHINE in
+ 9000/31?) HP_ARCH=m68000 ;;
+ 9000/[34]??) HP_ARCH=m68k ;;
+ 9000/[678][0-9][0-9])
+ if test -x /usr/bin/getconf; then
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case $sc_cpu_version in
+ 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case $sc_kernel_bits in
+ 32) HP_ARCH=hppa2.0n ;;
+ 64) HP_ARCH=hppa2.0w ;;
+ '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20
+ esac ;;
+ esac
+ fi
+ if test "$HP_ARCH" = ""; then
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
+
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
+
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
+
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
+EOF
+ (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"`
+ test -z "$HP_ARCH" && HP_ARCH=hppa
+ fi ;;
+ esac
+ if test "$HP_ARCH" = hppa2.0w
+ then
+ set_cc_for_build
+
+ # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
+ # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler
+ # generating 64-bit code. GNU and HP use different nomenclature:
+ #
+ # $ CC_FOR_BUILD=cc ./config.guess
+ # => hppa2.0w-hp-hpux11.23
+ # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
+ # => hppa64-hp-hpux11.23
+
+ if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
+ grep -q __LP64__
+ then
+ HP_ARCH=hppa2.0w
+ else
+ HP_ARCH=hppa64
+ fi
+ fi
+ GUESS=$HP_ARCH-hp-hpux$HPUX_REV
+ ;;
+ ia64:HP-UX:*:*)
+ HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
+ GUESS=ia64-hp-hpux$HPUX_REV
+ ;;
+ 3050*:HI-UX:*:*)
+ set_cc_for_build
+ sed 's/^ //' << EOF > "$dummy.c"
+ #include <unistd.h>
+ int
+ main ()
+ {
+ long cpu = sysconf (_SC_CPU_VERSION);
+ /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
+ results, however. */
+ if (CPU_IS_PA_RISC (cpu))
+ {
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+ default: puts ("hppa-hitachi-hiuxwe2"); break;
+ }
+ }
+ else if (CPU_IS_HP_MC68K (cpu))
+ puts ("m68k-hitachi-hiuxwe2");
+ else puts ("unknown-hitachi-hiuxwe2");
+ exit (0);
+ }
+EOF
+ $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
+ { echo "$SYSTEM_NAME"; exit; }
+ GUESS=unknown-hitachi-hiuxwe2
+ ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
+ GUESS=hppa1.1-hp-bsd
+ ;;
+ 9000/8??:4.3bsd:*:*)
+ GUESS=hppa1.0-hp-bsd
+ ;;
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+ GUESS=hppa1.0-hp-mpeix
+ ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
+ GUESS=hppa1.1-hp-osf
+ ;;
+ hp8??:OSF1:*:*)
+ GUESS=hppa1.0-hp-osf
+ ;;
+ i*86:OSF1:*:*)
+ if test -x /usr/sbin/sysversion ; then
+ GUESS=$UNAME_MACHINE-unknown-osf1mk
+ else
+ GUESS=$UNAME_MACHINE-unknown-osf1
+ fi
+ ;;
+ parisc*:Lites*:*:*)
+ GUESS=hppa1.1-hp-lites
+ ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ GUESS=c1-convex-bsd
+ ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ GUESS=c34-convex-bsd
+ ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ GUESS=c38-convex-bsd
+ ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ GUESS=c4-convex-bsd
+ ;;
+ CRAY*Y-MP:*:*:*)
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=ymp-cray-unicos$CRAY_REL
+ ;;
+ CRAY*[A-Z]90:*:*:*)
+ echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+ -e 's/\.[^.]*$/.X/'
+ exit ;;
+ CRAY*TS:*:*:*)
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=t90-cray-unicos$CRAY_REL
+ ;;
+ CRAY*T3E:*:*:*)
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=alphaev5-cray-unicosmk$CRAY_REL
+ ;;
+ CRAY*SV1:*:*:*)
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=sv1-cray-unicos$CRAY_REL
+ ;;
+ *:UNICOS/mp:*:*)
+ CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+ GUESS=craynv-cray-unicosmp$CRAY_REL
+ ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+ FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+ FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
+ FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
+ GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
+ ;;
+ 5000:UNIX_System_V:4.*:*)
+ FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
+ FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
+ GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
+ ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE
+ ;;
+ sparc*:BSD/OS:*:*)
+ GUESS=sparc-unknown-bsdi$UNAME_RELEASE
+ ;;
+ *:BSD/OS:*:*)
+ GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE
+ ;;
+ arm:FreeBSD:*:*)
+ UNAME_PROCESSOR=`uname -p`
+ set_cc_for_build
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi
+ else
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf
+ fi
+ ;;
+ *:FreeBSD:*:*)
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ case $UNAME_PROCESSOR in
+ amd64)
+ UNAME_PROCESSOR=x86_64 ;;
+ i386)
+ UNAME_PROCESSOR=i586 ;;
+ esac
+ FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL
+ ;;
+ i*:CYGWIN*:*)
+ GUESS=$UNAME_MACHINE-pc-cygwin
+ ;;
+ *:MINGW64*:*)
+ GUESS=$UNAME_MACHINE-pc-mingw64
+ ;;
+ *:MINGW*:*)
+ GUESS=$UNAME_MACHINE-pc-mingw32
+ ;;
+ *:MSYS*:*)
+ GUESS=$UNAME_MACHINE-pc-msys
+ ;;
+ i*:PW*:*)
+ GUESS=$UNAME_MACHINE-pc-pw32
+ ;;
+ *:SerenityOS:*:*)
+ GUESS=$UNAME_MACHINE-pc-serenity
+ ;;
+ *:Interix*:*)
+ case $UNAME_MACHINE in
+ x86)
+ GUESS=i586-pc-interix$UNAME_RELEASE
+ ;;
+ authenticamd | genuineintel | EM64T)
+ GUESS=x86_64-unknown-interix$UNAME_RELEASE
+ ;;
+ IA64)
+ GUESS=ia64-unknown-interix$UNAME_RELEASE
+ ;;
+ esac ;;
+ i*:UWIN*:*)
+ GUESS=$UNAME_MACHINE-pc-uwin
+ ;;
+ amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
+ GUESS=x86_64-pc-cygwin
+ ;;
+ prep*:SunOS:5.*:*)
+ SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+ GUESS=powerpcle-unknown-solaris2$SUN_REL
+ ;;
+ *:GNU:*:*)
+ # the GNU system
+ GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'`
+ GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'`
+ GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL
+ ;;
+ *:GNU/*:*:*)
+ # other systems with GNU libc and userland
+ GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"`
+ GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
+ ;;
+ *:Minix:*:*)
+ GUESS=$UNAME_MACHINE-unknown-minix
+ ;;
+ aarch64:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ aarch64_be:Linux:*:*)
+ UNAME_MACHINE=aarch64_be
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+ EV56) UNAME_MACHINE=alphaev56 ;;
+ PCA56) UNAME_MACHINE=alphapca56 ;;
+ PCA57) UNAME_MACHINE=alphapca56 ;;
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep -q ld.so.1
+ if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ arm*:Linux:*:*)
+ set_cc_for_build
+ if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_EABI__
+ then
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ else
+ if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep -q __ARM_PCS_VFP
+ then
+ GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi
+ else
+ GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf
+ fi
+ fi
+ ;;
+ avr32*:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ cris:Linux:*:*)
+ GUESS=$UNAME_MACHINE-axis-linux-$LIBC
+ ;;
+ crisv32:Linux:*:*)
+ GUESS=$UNAME_MACHINE-axis-linux-$LIBC
+ ;;
+ e2k:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ frv:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ hexagon:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ i*86:Linux:*:*)
+ GUESS=$UNAME_MACHINE-pc-linux-$LIBC
+ ;;
+ ia64:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ k1om:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ m32r*:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ m68*:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ mips:Linux:*:* | mips64:Linux:*:*)
+ set_cc_for_build
+ IS_GLIBC=0
+ test x"${LIBC}" = xgnu && IS_GLIBC=1
+ sed 's/^ //' << EOF > "$dummy.c"
+ #undef CPU
+ #undef mips
+ #undef mipsel
+ #undef mips64
+ #undef mips64el
+ #if ${IS_GLIBC} && defined(_ABI64)
+ LIBCABI=gnuabi64
+ #else
+ #if ${IS_GLIBC} && defined(_ABIN32)
+ LIBCABI=gnuabin32
+ #else
+ LIBCABI=${LIBC}
+ #endif
+ #endif
+
+ #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
+ CPU=mipsisa64r6
+ #else
+ #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
+ CPU=mipsisa32r6
+ #else
+ #if defined(__mips64)
+ CPU=mips64
+ #else
+ CPU=mips
+ #endif
+ #endif
+ #endif
+
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ MIPS_ENDIAN=el
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ MIPS_ENDIAN=
+ #else
+ MIPS_ENDIAN=
+ #endif
+ #endif
+EOF
+ cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`
+ eval "$cc_set_vars"
+ test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
+ ;;
+ mips64el:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ openrisc*:Linux:*:*)
+ GUESS=or1k-unknown-linux-$LIBC
+ ;;
+ or32:Linux:*:* | or1k*:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ padre:Linux:*:*)
+ GUESS=sparc-unknown-linux-$LIBC
+ ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ GUESS=hppa64-unknown-linux-$LIBC
+ ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+ PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;;
+ PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;;
+ *) GUESS=hppa-unknown-linux-$LIBC ;;
+ esac
+ ;;
+ ppc64:Linux:*:*)
+ GUESS=powerpc64-unknown-linux-$LIBC
+ ;;
+ ppc:Linux:*:*)
+ GUESS=powerpc-unknown-linux-$LIBC
+ ;;
+ ppc64le:Linux:*:*)
+ GUESS=powerpc64le-unknown-linux-$LIBC
+ ;;
+ ppcle:Linux:*:*)
+ GUESS=powerpcle-unknown-linux-$LIBC
+ ;;
+ riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ GUESS=$UNAME_MACHINE-ibm-linux-$LIBC
+ ;;
+ sh64*:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ sh*:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ tile*:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ vax:Linux:*:*)
+ GUESS=$UNAME_MACHINE-dec-linux-$LIBC
+ ;;
+ x86_64:Linux:*:*)
+ set_cc_for_build
+ LIBCABI=$LIBC
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
+ if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_X32 >/dev/null
+ then
+ LIBCABI=${LIBC}x32
+ fi
+ fi
+ GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI
+ ;;
+ xtensa*:Linux:*:*)
+ GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+ ;;
+ i*86:DYNIX/ptx:4*:*)
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+ # earlier versions are messed up and put the nodename in both
+ # sysname and nodename.
+ GUESS=i386-sequent-sysv4
+ ;;
+ i*86:UNIX_SV:4.2MP:2.*)
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
+ # I just have to hope. -- rms.
+ # Use sysv4.2uw... so that sysv4* matches it.
+ GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
+ ;;
+ i*86:OS/2:*:*)
+ # If we were able to find `uname', then EMX Unix compatibility
+ # is probably installed.
+ GUESS=$UNAME_MACHINE-pc-os2-emx
+ ;;
+ i*86:XTS-300:*:STOP)
+ GUESS=$UNAME_MACHINE-unknown-stop
+ ;;
+ i*86:atheos:*:*)
+ GUESS=$UNAME_MACHINE-unknown-atheos
+ ;;
+ i*86:syllable:*:*)
+ GUESS=$UNAME_MACHINE-pc-syllable
+ ;;
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
+ GUESS=i386-unknown-lynxos$UNAME_RELEASE
+ ;;
+ i*86:*DOS:*:*)
+ GUESS=$UNAME_MACHINE-pc-msdosdjgpp
+ ;;
+ i*86:*:4.*:*)
+ UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+ GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL
+ else
+ GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL
+ fi
+ ;;
+ i*86:*:5:[678]*)
+ # UnixWare 7.x, OpenUNIX and OpenServer 6.
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+ esac
+ GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ ;;
+ i*86:*:3.2:*)
+ if test -f /usr/options/cb.name; then
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+ GUESS=$UNAME_MACHINE-pc-isc$UNAME_REL
+ elif /bin/uname -X 2>/dev/null >/dev/null ; then
+ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+ && UNAME_MACHINE=i586
+ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+ && UNAME_MACHINE=i686
+ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+ && UNAME_MACHINE=i686
+ GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL
+ else
+ GUESS=$UNAME_MACHINE-pc-sysv32
+ fi
+ ;;
+ pc:*:*:*)
+ # Left here for compatibility:
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i586.
+ # Note: whatever this is, it MUST be the same as what config.sub
+ # prints for the "djgpp" host, or else GDB configure will decide that
+ # this is a cross-build.
+ GUESS=i586-pc-msdosdjgpp
+ ;;
+ Intel:Mach:3*:*)
+ GUESS=i386-pc-mach3
+ ;;
+ paragon:*:*:*)
+ GUESS=i860-intel-osf1
+ ;;
+ i860:*:4.*:*) # i860-SVR4
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+ GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4
+ else # Add other i860-SVR4 vendors below as they are discovered.
+ GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4
+ fi
+ ;;
+ mini*:CTIX:SYS*5:*)
+ # "miniframe"
+ GUESS=m68010-convergent-sysv
+ ;;
+ mc68k:UNIX:SYSTEM5:3.51m)
+ GUESS=m68k-convergent-sysv
+ ;;
+ M680?0:D-NIX:5.3:*)
+ GUESS=m68k-diab-dnix
+ ;;
+ M68*:*:R3V[5678]*:*)
+ test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+ OS_REL=''
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4; exit; } ;;
+ NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+ OS_REL='.3'
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && { echo i486-ncr-sysv4.3"$OS_REL"; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; }
+ /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+ && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+ GUESS=m68k-unknown-lynxos$UNAME_RELEASE
+ ;;
+ mc68030:UNIX_System_V:4.*:*)
+ GUESS=m68k-atari-sysv4
+ ;;
+ TSUNAMI:LynxOS:2.*:*)
+ GUESS=sparc-unknown-lynxos$UNAME_RELEASE
+ ;;
+ rs6000:LynxOS:2.*:*)
+ GUESS=rs6000-unknown-lynxos$UNAME_RELEASE
+ ;;
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
+ GUESS=powerpc-unknown-lynxos$UNAME_RELEASE
+ ;;
+ SM[BE]S:UNIX_SV:*:*)
+ GUESS=mips-dde-sysv$UNAME_RELEASE
+ ;;
+ RM*:ReliantUNIX-*:*:*)
+ GUESS=mips-sni-sysv4
+ ;;
+ RM*:SINIX-*:*:*)
+ GUESS=mips-sni-sysv4
+ ;;
+ *:SINIX-*:*:*)
+ if uname -p 2>/dev/null >/dev/null ; then
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ GUESS=$UNAME_MACHINE-sni-sysv4
+ else
+ GUESS=ns32k-sni-sysv
+ fi
+ ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ GUESS=i586-unisys-sysv4
+ ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes@openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+ GUESS=hppa1.1-stratus-sysv4
+ ;;
+ *:*:*:FTX*)
+ # From seanf@swdc.stratus.com.
+ GUESS=i860-stratus-sysv4
+ ;;
+ i*86:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ GUESS=$UNAME_MACHINE-stratus-vos
+ ;;
+ *:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ GUESS=hppa1.1-stratus-vos
+ ;;
+ mc68*:A/UX:*:*)
+ GUESS=m68k-apple-aux$UNAME_RELEASE
+ ;;
+ news*:NEWS-OS:6*:*)
+ GUESS=mips-sony-newsos6
+ ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if test -d /usr/nec; then
+ GUESS=mips-nec-sysv$UNAME_RELEASE
+ else
+ GUESS=mips-unknown-sysv$UNAME_RELEASE
+ fi
+ ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ GUESS=powerpc-be-beos
+ ;;
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
+ GUESS=powerpc-apple-beos
+ ;;
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
+ GUESS=i586-pc-beos
+ ;;
+ BePC:Haiku:*:*) # Haiku running on Intel PC compatible.
+ GUESS=i586-pc-haiku
+ ;;
+ x86_64:Haiku:*:*)
+ GUESS=x86_64-unknown-haiku
+ ;;
+ SX-4:SUPER-UX:*:*)
+ GUESS=sx4-nec-superux$UNAME_RELEASE
+ ;;
+ SX-5:SUPER-UX:*:*)
+ GUESS=sx5-nec-superux$UNAME_RELEASE
+ ;;
+ SX-6:SUPER-UX:*:*)
+ GUESS=sx6-nec-superux$UNAME_RELEASE
+ ;;
+ SX-7:SUPER-UX:*:*)
+ GUESS=sx7-nec-superux$UNAME_RELEASE
+ ;;
+ SX-8:SUPER-UX:*:*)
+ GUESS=sx8-nec-superux$UNAME_RELEASE
+ ;;
+ SX-8R:SUPER-UX:*:*)
+ GUESS=sx8r-nec-superux$UNAME_RELEASE
+ ;;
+ SX-ACE:SUPER-UX:*:*)
+ GUESS=sxace-nec-superux$UNAME_RELEASE
+ ;;
+ Power*:Rhapsody:*:*)
+ GUESS=powerpc-apple-rhapsody$UNAME_RELEASE
+ ;;
+ *:Rhapsody:*:*)
+ GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE
+ ;;
+ arm64:Darwin:*:*)
+ GUESS=aarch64-apple-darwin$UNAME_RELEASE
+ ;;
+ *:Darwin:*:*)
+ UNAME_PROCESSOR=`uname -p`
+ case $UNAME_PROCESSOR in
+ unknown) UNAME_PROCESSOR=powerpc ;;
+ esac
+ if command -v xcode-select > /dev/null 2> /dev/null && \
+ ! xcode-select --print-path > /dev/null 2> /dev/null ; then
+ # Avoid executing cc if there is no toolchain installed as
+ # cc will be a stub that puts up a graphical alert
+ # prompting the user to install developer tools.
+ CC_FOR_BUILD=no_compiler_found
+ else
+ set_cc_for_build
+ fi
+ if test "$CC_FOR_BUILD" != no_compiler_found; then
+ if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_64BIT_ARCH >/dev/null
+ then
+ case $UNAME_PROCESSOR in
+ i386) UNAME_PROCESSOR=x86_64 ;;
+ powerpc) UNAME_PROCESSOR=powerpc64 ;;
+ esac
+ fi
+ # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
+ if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
+ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+ grep IS_PPC >/dev/null
+ then
+ UNAME_PROCESSOR=powerpc
+ fi
+ elif test "$UNAME_PROCESSOR" = i386 ; then
+ # uname -m returns i386 or x86_64
+ UNAME_PROCESSOR=$UNAME_MACHINE
+ fi
+ GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE
+ ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+ if test "$UNAME_PROCESSOR" = x86; then
+ UNAME_PROCESSOR=i386
+ UNAME_MACHINE=pc
+ fi
+ GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE
+ ;;
+ *:QNX:*:4*)
+ GUESS=i386-pc-qnx
+ ;;
+ NEO-*:NONSTOP_KERNEL:*:*)
+ GUESS=neo-tandem-nsk$UNAME_RELEASE
+ ;;
+ NSE-*:NONSTOP_KERNEL:*:*)
+ GUESS=nse-tandem-nsk$UNAME_RELEASE
+ ;;
+ NSR-*:NONSTOP_KERNEL:*:*)
+ GUESS=nsr-tandem-nsk$UNAME_RELEASE
+ ;;
+ NSV-*:NONSTOP_KERNEL:*:*)
+ GUESS=nsv-tandem-nsk$UNAME_RELEASE
+ ;;
+ NSX-*:NONSTOP_KERNEL:*:*)
+ GUESS=nsx-tandem-nsk$UNAME_RELEASE
+ ;;
+ *:NonStop-UX:*:*)
+ GUESS=mips-compaq-nonstopux
+ ;;
+ BS2000:POSIX*:*:*)
+ GUESS=bs2000-siemens-sysv
+ ;;
+ DS/*:UNIX_System_V:*:*)
+ GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE
+ ;;
+ *:Plan9:*:*)
+ # "uname -m" is not consistent, so use $cputype instead. 386
+ # is converted to i386 for consistency with other x86
+ # operating systems.
+ if test "${cputype-}" = 386; then
+ UNAME_MACHINE=i386
+ elif test "x${cputype-}" != x; then
+ UNAME_MACHINE=$cputype
+ fi
+ GUESS=$UNAME_MACHINE-unknown-plan9
+ ;;
+ *:TOPS-10:*:*)
+ GUESS=pdp10-unknown-tops10
+ ;;
+ *:TENEX:*:*)
+ GUESS=pdp10-unknown-tenex
+ ;;
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+ GUESS=pdp10-dec-tops20
+ ;;
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+ GUESS=pdp10-xkl-tops20
+ ;;
+ *:TOPS-20:*:*)
+ GUESS=pdp10-unknown-tops20
+ ;;
+ *:ITS:*:*)
+ GUESS=pdp10-unknown-its
+ ;;
+ SEI:*:*:SEIUX)
+ GUESS=mips-sei-seiux$UNAME_RELEASE
+ ;;
+ *:DragonFly:*:*)
+ DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+ GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL
+ ;;
+ *:*VMS:*:*)
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ case $UNAME_MACHINE in
+ A*) GUESS=alpha-dec-vms ;;
+ I*) GUESS=ia64-dec-vms ;;
+ V*) GUESS=vax-dec-vms ;;
+ esac ;;
+ *:XENIX:*:SysV)
+ GUESS=i386-pc-xenix
+ ;;
+ i*86:skyos:*:*)
+ SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`
+ GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL
+ ;;
+ i*86:rdos:*:*)
+ GUESS=$UNAME_MACHINE-pc-rdos
+ ;;
+ i*86:Fiwix:*:*)
+ GUESS=$UNAME_MACHINE-pc-fiwix
+ ;;
+ *:AROS:*:*)
+ GUESS=$UNAME_MACHINE-unknown-aros
+ ;;
+ x86_64:VMkernel:*:*)
+ GUESS=$UNAME_MACHINE-unknown-esx
+ ;;
+ amd64:Isilon\ OneFS:*:*)
+ GUESS=x86_64-unknown-onefs
+ ;;
+ *:Unleashed:*:*)
+ GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
+ ;;
+esac
+
+# Do we have a guess based on uname results?
+if test "x$GUESS" != x; then
+ echo "$GUESS"
+ exit
+fi
+
+# No uname command or uname output not recognized.
+set_cc_for_build
+cat > "$dummy.c" <<EOF
+#ifdef _SEQUENT_
+#include <sys/types.h>
+#include <sys/utsname.h>
+#endif
+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
+#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
+#include <signal.h>
+#if defined(_SIZE_T_) || defined(SIGLOST)
+#include <sys/utsname.h>
+#endif
+#endif
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+ I don't know.... */
+ printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+ "4"
+#else
+ ""
+#endif
+ ); exit (0);
+#endif
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+ int version;
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+ if (version < 4)
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ else
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+ exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+ printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+ printf ("ns32k-encore-mach\n"); exit (0);
+#else
+ printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+ printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+ printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+ printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+ struct utsname un;
+
+ uname(&un);
+ if (strncmp(un.version, "V2", 2) == 0) {
+ printf ("i386-sequent-ptx2\n"); exit (0);
+ }
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+ printf ("i386-sequent-ptx1\n"); exit (0);
+ }
+ printf ("i386-sequent-ptx\n"); exit (0);
+#endif
+
+#if defined (vax)
+#if !defined (ultrix)
+#include <sys/param.h>
+#if defined (BSD)
+#if BSD == 43
+ printf ("vax-dec-bsd4.3\n"); exit (0);
+#else
+#if BSD == 199006
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
+#else
+ printf ("vax-dec-bsd\n"); exit (0);
+#endif
+#endif
+#else
+ printf ("vax-dec-bsd\n"); exit (0);
+#endif
+#else
+#if defined(_SIZE_T_) || defined(SIGLOST)
+ struct utsname un;
+ uname (&un);
+ printf ("vax-dec-ultrix%s\n", un.release); exit (0);
+#else
+ printf ("vax-dec-ultrix\n"); exit (0);
+#endif
+#endif
+#endif
+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
+#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
+#if defined(_SIZE_T_) || defined(SIGLOST)
+ struct utsname *un;
+ uname (&un);
+ printf ("mips-dec-ultrix%s\n", un.release); exit (0);
+#else
+ printf ("mips-dec-ultrix\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (alliant) && defined (i860)
+ printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+ exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` &&
+ { echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
+
+echo "$0: unable to guess system type" >&2
+
+case $UNAME_MACHINE:$UNAME_SYSTEM in
+ mips:Linux | mips64:Linux)
+ # If we got here on MIPS GNU/Linux, output extra information.
+ cat >&2 <<EOF
+
+NOTE: MIPS GNU/Linux systems require a C compiler to fully recognize
+the system type. Please install a C compiler and try again.
+EOF
+ ;;
+esac
+
+cat >&2 <<EOF
+
+This script (version $timestamp), has failed to recognize the
+operating system you are using. If your script is old, overwrite *all*
+copies of config.guess and config.sub with the latest versions from:
+
+ https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
+and
+ https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
+EOF
+
+our_year=`echo $timestamp | sed 's,-.*,,'`
+thisyear=`date +%Y`
+# shellcheck disable=SC2003
+script_age=`expr "$thisyear" - "$our_year"`
+if test "$script_age" -lt 3 ; then
+ cat >&2 <<EOF
+
+If $0 has already been updated, send the following data and any
+information you think might be pertinent to config-patches@gnu.org to
+provide the necessary information to handle your system.
+
+config.guess timestamp = $timestamp
+
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo = `(hostinfo) 2>/dev/null`
+/bin/universe = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = "$UNAME_MACHINE"
+UNAME_RELEASE = "$UNAME_RELEASE"
+UNAME_SYSTEM = "$UNAME_SYSTEM"
+UNAME_VERSION = "$UNAME_VERSION"
+EOF
+fi
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/config.h.in b/config.h.in
new file mode 100644
index 0000000..47c3c0a
--- /dev/null
+++ b/config.h.in
@@ -0,0 +1,499 @@
+/* config.h.in. Generated from configure.ac by autoheader. */
+
+/* provide extra precision under memory fields for top */
+#undef BOOST_MEMORY
+
+/* provide extra precision under %CPU and %MEM for top */
+#undef BOOST_PERCNT
+
+/* should extra warnings be printed (slackware-ism) */
+#undef BUILD_WITH_WHINE
+
+/* Enable libselinux */
+#undef ENABLE_LIBSELINUX
+
+/* Define to 1 if translation of program messages to the user's native
+ language is requested. */
+#undef ENABLE_NLS
+
+/* Enable pidwait */
+#undef ENABLE_PIDWAIT
+
+/* Define to 1 if you have the `alarm' function. */
+#undef HAVE_ALARM
+
+/* Define to 1 if you have the <arpa/inet.h> header file. */
+#undef HAVE_ARPA_INET_H
+
+/* Define to 1 if you have the `atexit' function. */
+#undef HAVE_ATEXIT
+
+/* Define if the GNU dcgettext() function is already present or preinstalled.
+ */
+#undef HAVE_DCGETTEXT
+
+/* Define to 1 if you have the declaration of `__UT_HOSTSIZE', and to 0 if you
+ don't. */
+#undef HAVE_DECL___UT_HOSTSIZE
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#undef HAVE_DLFCN_H
+
+/* Define to 1 if you have the `dup2' function. */
+#undef HAVE_DUP2
+
+/* Define to 1 if you have the <error.h> header file. */
+#undef HAVE_ERROR_H
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#undef HAVE_FCNTL_H
+
+/* Define to 1 if you have the <float.h> header file. */
+#undef HAVE_FLOAT_H
+
+/* Define to 1 if you have the `fork' function. */
+#undef HAVE_FORK
+
+/* Define to 1 if you have the `gethostname' function. */
+#undef HAVE_GETHOSTNAME
+
+/* Define to 1 if you have the `getpagesize' function. */
+#undef HAVE_GETPAGESIZE
+
+/* Define if the GNU gettext() function is already present or preinstalled. */
+#undef HAVE_GETTEXT
+
+/* Define to 1 if you have the `gettimeofday' function. */
+#undef HAVE_GETTIMEOFDAY
+
+/* Define if you have the iconv() function. */
+#undef HAVE_ICONV
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the `iswprint' function. */
+#undef HAVE_ISWPRINT
+
+/* Define to 1 if you have the <langinfo.h> header file. */
+#undef HAVE_LANGINFO_H
+
+/* Define to 1 if you have the <libintl.h> header file. */
+#undef HAVE_LIBINTL_H
+
+/* Define to 1 if you have the <limits.h> header file. */
+#undef HAVE_LIMITS_H
+
+/* Define to 1 if you have the <locale.h> header file. */
+#undef HAVE_LOCALE_H
+
+/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
+ to 0 otherwise. */
+#undef HAVE_MALLOC
+
+/* Define to 1 if mbrtowc and mbstate_t are properly declared. */
+#undef HAVE_MBRTOWC
+
+/* Define to 1 if you have the `memchr' function. */
+#undef HAVE_MEMCHR
+
+/* Define to 1 if you have the `memmove' function. */
+#undef HAVE_MEMMOVE
+
+/* Define to 1 if you have the `memset' function. */
+#undef HAVE_MEMSET
+
+/* Define to 1 if you have the <minix/config.h> header file. */
+#undef HAVE_MINIX_CONFIG_H
+
+/* Define to 1 if you have the `mkdir' function. */
+#undef HAVE_MKDIR
+
+/* Define to 1 if you have a working `mmap' system call. */
+#undef HAVE_MMAP
+
+/* Use NCURSESW */
+#undef HAVE_NCURSES
+
+/* Define to 1 if you have the `nl_langinfo' function. */
+#undef HAVE_NL_LANGINFO
+
+/* Define if program_invocation_name is defined */
+#undef HAVE_PROGRAM_INVOCATION_NAME
+
+/* Define if program_invocation_short_name is defined */
+#undef HAVE_PROGRAM_INVOCATION_SHORT_NAME
+
+/* Define to 1 if you have the `putenv' function. */
+#undef HAVE_PUTENV
+
+/* Define to 1 if your system has a GNU libc compatible `realloc' function,
+ and to 0 otherwise. */
+#undef HAVE_REALLOC
+
+/* Define to 1 if you have the `regcomp' function. */
+#undef HAVE_REGCOMP
+
+/* Define to 1 if you have the `rpmatch' function. */
+#undef HAVE_RPMATCH
+
+/* Define to 1 if you have the `sd_session_get_leader' function. */
+#undef HAVE_SD_SESSION_GET_LEADER
+
+/* Define to 1 if you have the `select' function. */
+#undef HAVE_SELECT
+
+/* Define to 1 if you have the `setlocale' function. */
+#undef HAVE_SETLOCALE
+
+/* Define to 1 if you have the `sigabbrev_np' function. */
+#undef HAVE_SIGABBREV_NP
+
+/* Define to 1 if `si_int' is a member of `siginfo_t'. */
+#undef HAVE_SIGINFO_T_SI_INT
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdio_ext.h> header file. */
+#undef HAVE_STDIO_EXT_H
+
+/* Define to 1 if you have the <stdio.h> header file. */
+#undef HAVE_STDIO_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the `strcasecmp' function. */
+#undef HAVE_STRCASECMP
+
+/* Define to 1 if you have the `strchr' function. */
+#undef HAVE_STRCHR
+
+/* Define to 1 if you have the `strcoll' function and it is properly defined.
+ */
+#undef HAVE_STRCOLL
+
+/* Define to 1 if you have the `strcspn' function. */
+#undef HAVE_STRCSPN
+
+/* Define to 1 if you have the `strdup' function. */
+#undef HAVE_STRDUP
+
+/* Define to 1 if you have the `strerror' function. */
+#undef HAVE_STRERROR
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the `strncasecmp' function. */
+#undef HAVE_STRNCASECMP
+
+/* Define to 1 if you have the `strndup' function. */
+#undef HAVE_STRNDUP
+
+/* Define to 1 if you have the `strpbrk' function. */
+#undef HAVE_STRPBRK
+
+/* Define to 1 if you have the `strrchr' function. */
+#undef HAVE_STRRCHR
+
+/* Define to 1 if you have the `strspn' function. */
+#undef HAVE_STRSPN
+
+/* Define to 1 if you have the `strstr' function. */
+#undef HAVE_STRSTR
+
+/* Define to 1 if you have the `strtol' function. */
+#undef HAVE_STRTOL
+
+/* Define to 1 if you have the `strtoul' function. */
+#undef HAVE_STRTOUL
+
+/* Define to 1 if `st_rdev' is a member of `struct stat'. */
+#undef HAVE_STRUCT_STAT_ST_RDEV
+
+/* Define to 1 if you have the `strverscmp' function. */
+#undef HAVE_STRVERSCMP
+
+/* Define to 1 if you have the <sys/file.h> header file. */
+#undef HAVE_SYS_FILE_H
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#undef HAVE_SYS_IOCTL_H
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#undef HAVE_SYS_PARAM_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#undef HAVE_SYS_TIME_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <termios.h> header file. */
+#undef HAVE_TERMIOS_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Define to 1 if you have the `utmpname' function. */
+#undef HAVE_UTMPNAME
+
+/* Define to 1 if you have the <utmpx.h> header file. */
+#undef HAVE_UTMPX_H
+
+/* Define to 1 if you have the <utmp.h> header file. */
+#undef HAVE_UTMP_H
+
+/* Define if __UT_HOSTSIZE in utmpx.h */
+#undef HAVE_UT_HOSTSIZE_IN_UTMPX
+
+/* Define to 1 if you have the <values.h> header file. */
+#undef HAVE_VALUES_H
+
+/* Define to 1 if you have the `vfork' function. */
+#undef HAVE_VFORK
+
+/* Define to 1 if you have the <vfork.h> header file. */
+#undef HAVE_VFORK_H
+
+/* Define to 1 if you have the <wchar.h> header file. */
+#undef HAVE_WCHAR_H
+
+/* Define to 1 if you have the <wctype.h> header file. */
+#undef HAVE_WCTYPE_H
+
+/* Define to 1 if you have the `wcwidth' function. */
+#undef HAVE_WCWIDTH
+
+/* Define to 1 if `fork' works. */
+#undef HAVE_WORKING_FORK
+
+/* Define to 1 if `vfork' works. */
+#undef HAVE_WORKING_VFORK
+
+/* Define to 1 if the system has the type `_Bool'. */
+#undef HAVE__BOOL
+
+/* Define to 1 if you have the `__fpending' function. */
+#undef HAVE___FPENDING
+
+/* Define if __progname exists */
+#undef HAVE___PROGNAME
+
+/* Define to the sub-directory where libtool stores uninstalled libraries. */
+#undef LT_OBJDIR
+
+/* Define to 1 if `major', `minor', and `makedev' are declared in <mkdev.h>.
+ */
+#undef MAJOR_IN_MKDEV
+
+/* Define to 1 if `major', `minor', and `makedev' are declared in
+ <sysmacros.h>. */
+#undef MAJOR_IN_SYSMACROS
+
+/* disable NUMA/Node support in top */
+#undef NUMA_DISABLE
+
+/* disable new startup defaults, return to original top */
+#undef ORIG_TOPDEFS
+
+/* Name of package */
+#undef PACKAGE
+
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* reduce impact of x-windows resize operations on top */
+#undef SIGNALS_LESS
+
+/* Define to 1 if all of the C90 standard headers exist (not just the ones
+ required in a freestanding environment). This macro is provided for
+ backward compatibility; new code need not use it. */
+#undef STDC_HEADERS
+
+/* Use /proc/$PID/ctty to determine controlling TTY */
+#undef USE_PROC_CTTY
+
+/* Enable extensions on AIX 3, Interix. */
+#ifndef _ALL_SOURCE
+# undef _ALL_SOURCE
+#endif
+/* Enable general extensions on macOS. */
+#ifndef _DARWIN_C_SOURCE
+# undef _DARWIN_C_SOURCE
+#endif
+/* Enable general extensions on Solaris. */
+#ifndef __EXTENSIONS__
+# undef __EXTENSIONS__
+#endif
+/* Enable GNU extensions on systems that have them. */
+#ifndef _GNU_SOURCE
+# undef _GNU_SOURCE
+#endif
+/* Enable X/Open compliant socket functions that do not require linking
+ with -lxnet on HP-UX 11.11. */
+#ifndef _HPUX_ALT_XOPEN_SOCKET_API
+# undef _HPUX_ALT_XOPEN_SOCKET_API
+#endif
+/* Identify the host operating system as Minix.
+ This macro does not affect the system headers' behavior.
+ A future release of Autoconf may stop defining this macro. */
+#ifndef _MINIX
+# undef _MINIX
+#endif
+/* Enable general extensions on NetBSD.
+ Enable NetBSD compatibility extensions on Minix. */
+#ifndef _NETBSD_SOURCE
+# undef _NETBSD_SOURCE
+#endif
+/* Enable OpenBSD compatibility extensions on NetBSD.
+ Oddly enough, this does nothing on OpenBSD. */
+#ifndef _OPENBSD_SOURCE
+# undef _OPENBSD_SOURCE
+#endif
+/* Define to 1 if needed for POSIX-compatible behavior. */
+#ifndef _POSIX_SOURCE
+# undef _POSIX_SOURCE
+#endif
+/* Define to 2 if needed for POSIX-compatible behavior. */
+#ifndef _POSIX_1_SOURCE
+# undef _POSIX_1_SOURCE
+#endif
+/* Enable POSIX-compatible threading on Solaris. */
+#ifndef _POSIX_PTHREAD_SEMANTICS
+# undef _POSIX_PTHREAD_SEMANTICS
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-5:2014. */
+#ifndef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
+# undef __STDC_WANT_IEC_60559_ATTRIBS_EXT__
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-1:2014. */
+#ifndef __STDC_WANT_IEC_60559_BFP_EXT__
+# undef __STDC_WANT_IEC_60559_BFP_EXT__
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-2:2015. */
+#ifndef __STDC_WANT_IEC_60559_DFP_EXT__
+# undef __STDC_WANT_IEC_60559_DFP_EXT__
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-4:2015. */
+#ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
+# undef __STDC_WANT_IEC_60559_FUNCS_EXT__
+#endif
+/* Enable extensions specified by ISO/IEC TS 18661-3:2015. */
+#ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
+# undef __STDC_WANT_IEC_60559_TYPES_EXT__
+#endif
+/* Enable extensions specified by ISO/IEC TR 24731-2:2010. */
+#ifndef __STDC_WANT_LIB_EXT2__
+# undef __STDC_WANT_LIB_EXT2__
+#endif
+/* Enable extensions specified by ISO/IEC 24747:2009. */
+#ifndef __STDC_WANT_MATH_SPEC_FUNCS__
+# undef __STDC_WANT_MATH_SPEC_FUNCS__
+#endif
+/* Enable extensions on HP NonStop. */
+#ifndef _TANDEM_SOURCE
+# undef _TANDEM_SOURCE
+#endif
+/* Enable X/Open extensions. Define to 500 only if necessary
+ to make mbstate_t available. */
+#ifndef _XOPEN_SOURCE
+# undef _XOPEN_SOURCE
+#endif
+
+
+/* Version number of package */
+#undef VERSION
+
+/* Enable color watch by default */
+#undef WITH_COLORWATCH
+
+/* enable elogind support */
+#undef WITH_ELOGIND
+
+/* enable systemd support */
+#undef WITH_SYSTEMD
+
+/* Enable 8 bit clean watch */
+#undef WITH_WATCH8BIT
+
+/* enable w from field by default */
+#undef W_SHOWFROM
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+#undef _FILE_OFFSET_BITS
+
+/* Define for large files, on AIX-style hosts. */
+#undef _LARGE_FILES
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#undef gid_t
+
+/* Define to `__inline__' or `__inline' if that's what the C compiler
+ calls it, or to nothing if 'inline' is not supported under any name. */
+#ifndef __cplusplus
+#undef inline
+#endif
+
+/* Define to the type of a signed integer type of width exactly 32 bits if
+ such a type exists and the standard includes do not define it. */
+#undef int32_t
+
+/* Define to rpl_malloc if the replacement function should be used. */
+#undef malloc
+
+/* Define as a signed integer type capable of holding a process identifier. */
+#undef pid_t
+
+/* Define to rpl_realloc if the replacement function should be used. */
+#undef realloc
+
+/* Define to the equivalent of the C99 'restrict' keyword, or to
+ nothing if this is not supported. Do not define if restrict is
+ supported only directly. */
+#undef restrict
+/* Work around a bug in older versions of Sun C++, which did not
+ #define __restrict__ or support _Restrict or __restrict__
+ even though the corresponding Sun C compiler ended up with
+ "#define restrict _Restrict" or "#define restrict __restrict__"
+ in the previous line. This workaround can be removed once
+ we assume Oracle Developer Studio 12.5 (2016) or later. */
+#if defined __SUNPRO_CC && !defined __RESTRICT && !defined __restrict__
+# define _Restrict
+# define __restrict__
+#endif
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+#undef size_t
+
+/* Define to `int' if <sys/types.h> does not define. */
+#undef ssize_t
+
+/* Define to `int' if <sys/types.h> doesn't define. */
+#undef uid_t
+
+/* Define as `fork' if `vfork' does not work. */
+#undef vfork
diff --git a/config.rpath b/config.rpath
new file mode 100755
index 0000000..4db13e5
--- /dev/null
+++ b/config.rpath
@@ -0,0 +1,548 @@
+#! /bin/sh
+# Output a system dependent set of variables, describing how to set the
+# run time search path of shared libraries in an executable.
+#
+# Copyright 1996-2003 Free Software Foundation, Inc.
+# Taken from GNU libtool, 2001
+# Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+#
+# 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 2 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
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+#
+# The first argument passed to this file is the canonical host specification,
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld
+# should be set by the caller.
+#
+# The set of defined variables is at the end of this script.
+
+# Known limitations:
+# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer
+# than 256 bytes, otherwise the compiler driver will dump core. The only
+# known workaround is to choose shorter directory names for the build
+# directory and/or the installation directory.
+
+# All known linkers require a `.a' archive for static linking (except M$VC,
+# which needs '.lib').
+libext=a
+shrext=.so
+
+host="$1"
+host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+
+# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC.
+
+wl=
+if test "$GCC" = yes; then
+ wl='-Wl,'
+else
+ case "$host_os" in
+ aix*)
+ wl='-Wl,'
+ ;;
+ mingw* | pw32* | os2*)
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ wl='-Wl,'
+ ;;
+ irix5* | irix6* | nonstopux*)
+ wl='-Wl,'
+ ;;
+ newsos6)
+ ;;
+ linux*)
+ case $CC in
+ icc|ecc)
+ wl='-Wl,'
+ ;;
+ ccc)
+ wl='-Wl,'
+ ;;
+ esac
+ ;;
+ osf3* | osf4* | osf5*)
+ wl='-Wl,'
+ ;;
+ sco3.2v5*)
+ ;;
+ solaris*)
+ wl='-Wl,'
+ ;;
+ sunos4*)
+ wl='-Qoption ld '
+ ;;
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ wl='-Wl,'
+ ;;
+ sysv4*MP*)
+ ;;
+ uts4*)
+ ;;
+ esac
+fi
+
+# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS.
+
+hardcode_libdir_flag_spec=
+hardcode_libdir_separator=
+hardcode_direct=no
+hardcode_minus_L=no
+
+case "$host_os" in
+ cygwin* | mingw* | pw32*)
+ # FIXME: the MSVC++ port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ if test "$GCC" != yes; then
+ with_gnu_ld=no
+ fi
+ ;;
+ openbsd*)
+ with_gnu_ld=no
+ ;;
+esac
+
+ld_shlibs=yes
+if test "$with_gnu_ld" = yes; then
+ case "$host_os" in
+ aix3* | aix4* | aix5*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test "$host_cpu" != ia64; then
+ ld_shlibs=no
+ fi
+ ;;
+ amigaos*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ # Samuel A. Falvo II <kc5tja@dolphin.openprojects.net> reports
+ # that the semantics of dynamic libraries on AmigaOS, at least up
+ # to version 4, is to share data among multiple programs linked
+ # with the same dynamic library. Since this doesn't match the
+ # behavior of shared libraries on other platforms, we can use
+ # them.
+ ld_shlibs=no
+ ;;
+ beos*)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ cygwin* | mingw* | pw32*)
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ netbsd*)
+ ;;
+ solaris* | sysv5*)
+ if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ sunos4*)
+ hardcode_direct=yes
+ ;;
+ *)
+ if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then
+ :
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ if test "$ld_shlibs" = yes; then
+ # Unlike libtool, we use -rpath here, not --rpath, since the documented
+ # option of GNU ld is called -rpath, not --rpath.
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ fi
+else
+ case "$host_os" in
+ aix3*)
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test "$GCC" = yes; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+ aix4* | aix5*)
+ if test "$host_cpu" = ia64; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ else
+ aix_use_runtimelinking=no
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # need to do runtime linking.
+ case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+ for ld_flag in $LDFLAGS; do
+ if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ esac
+ fi
+ hardcode_direct=yes
+ hardcode_libdir_separator=':'
+ if test "$GCC" = yes; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ collect2name=`${CC} -print-prog-name=collect2`
+ if test -f "$collect2name" && \
+ strings "$collect2name" | grep resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ hardcode_direct=yes
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ esac
+ fi
+ # Begin _LT_AC_SYS_LIBPATH_AIX.
+ echo 'int main () { return 0; }' > conftest.c
+ ${CC} ${LDFLAGS} conftest.c -o conftest
+ aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+ if test -z "$aix_libpath"; then
+ aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; }
+}'`
+ fi
+ if test -z "$aix_libpath"; then
+ aix_libpath="/usr/lib:/lib"
+ fi
+ rm -f conftest.c conftest
+ # End _LT_AC_SYS_LIBPATH_AIX.
+ if test "$aix_use_runtimelinking" = yes; then
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ else
+ if test "$host_cpu" = ia64; then
+ hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
+ else
+ hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
+ fi
+ fi
+ ;;
+ amigaos*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ # see comment about different semantics on the GNU ld section
+ ld_shlibs=no
+ ;;
+ bsdi4*)
+ ;;
+ cygwin* | mingw* | pw32*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ hardcode_libdir_flag_spec=' '
+ libext=lib
+ ;;
+ darwin* | rhapsody*)
+ if $CC -v 2>&1 | grep 'Apple' >/dev/null ; then
+ hardcode_direct=no
+ fi
+ ;;
+ dgux*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ ;;
+ freebsd1*)
+ ld_shlibs=no
+ ;;
+ freebsd2.2*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ ;;
+ freebsd2*)
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ ;;
+ freebsd*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ ;;
+ hpux9*)
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ hpux10* | hpux11*)
+ if test "$with_gnu_ld" = no; then
+ case "$host_cpu" in
+ hppa*64*)
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=no
+ ;;
+ ia64*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=no
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ *)
+ hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ esac
+ fi
+ ;;
+ irix5* | irix6* | nonstopux*)
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+ netbsd*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ ;;
+ newsos6)
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+ openbsd*)
+ hardcode_direct=yes
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ else
+ case "$host_os" in
+ openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ *)
+ hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
+ ;;
+ esac
+ fi
+ ;;
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ osf3*)
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ hardcode_libdir_separator=:
+ ;;
+ osf4* | osf5*)
+ if test "$GCC" = yes; then
+ hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
+ else
+ # Both cc and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ hardcode_libdir_separator=:
+ ;;
+ sco3.2v5*)
+ ;;
+ solaris*)
+ hardcode_libdir_flag_spec='-R$libdir'
+ ;;
+ sunos4*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ ;;
+ sysv4)
+ case $host_vendor in
+ sni)
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ hardcode_direct=no
+ ;;
+ motorola)
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ ;;
+ sysv4.3*)
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ ld_shlibs=yes
+ fi
+ ;;
+ sysv4.2uw2*)
+ hardcode_direct=yes
+ hardcode_minus_L=no
+ ;;
+ sysv5OpenUNIX8* | sysv5UnixWare7* | sysv5uw[78]* | unixware7*)
+ ;;
+ sysv5*)
+ hardcode_libdir_flag_spec=
+ ;;
+ uts4*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ ;;
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+fi
+
+# Check dynamic linker characteristics
+# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER.
+libname_spec='lib$name'
+case "$host_os" in
+ aix3*)
+ ;;
+ aix4* | aix5*)
+ ;;
+ amigaos*)
+ ;;
+ beos*)
+ ;;
+ bsdi4*)
+ ;;
+ cygwin* | mingw* | pw32*)
+ shrext=.dll
+ ;;
+ darwin* | rhapsody*)
+ shrext=.dylib
+ ;;
+ dgux*)
+ ;;
+ freebsd1*)
+ ;;
+ freebsd*)
+ ;;
+ gnu*)
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ case "$host_cpu" in
+ ia64*)
+ shrext=.so
+ ;;
+ hppa*64*)
+ shrext=.sl
+ ;;
+ *)
+ shrext=.sl
+ ;;
+ esac
+ ;;
+ irix5* | irix6* | nonstopux*)
+ case "$host_os" in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;;
+ *) libsuff= shlibsuff= ;;
+ esac
+ ;;
+ esac
+ ;;
+ linux*oldld* | linux*aout* | linux*coff*)
+ ;;
+ linux*)
+ ;;
+ netbsd*)
+ ;;
+ newsos6)
+ ;;
+ nto-qnx)
+ ;;
+ openbsd*)
+ ;;
+ os2*)
+ libname_spec='$name'
+ shrext=.dll
+ ;;
+ osf3* | osf4* | osf5*)
+ ;;
+ sco3.2v5*)
+ ;;
+ solaris*)
+ ;;
+ sunos4*)
+ ;;
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ ;;
+ sysv4*MP*)
+ ;;
+ uts4*)
+ ;;
+esac
+
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"`
+shlibext=`echo "$shrext" | sed -e 's,^\.,,'`
+escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"`
+
+sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <<EOF
+
+# How to pass a linker flag through the compiler.
+wl="$escaped_wl"
+
+# Static library suffix (normally "a").
+libext="$libext"
+
+# Shared library suffix (normally "so").
+shlibext="$shlibext"
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist.
+hardcode_libdir_flag_spec="$escaped_hardcode_libdir_flag_spec"
+
+# Whether we need a single -rpath flag with a separated argument.
+hardcode_libdir_separator="$hardcode_libdir_separator"
+
+# Set to yes if using DIR/libNAME.so during linking hardcodes DIR into the
+# resulting binary.
+hardcode_direct="$hardcode_direct"
+
+# Set to yes if using the -LDIR flag during linking hardcodes DIR into the
+# resulting binary.
+hardcode_minus_L="$hardcode_minus_L"
+
+EOF
diff --git a/config.sub b/config.sub
new file mode 100755
index 0000000..dba16e8
--- /dev/null
+++ b/config.sub
@@ -0,0 +1,1890 @@
+#! /bin/sh
+# Configuration validation subroutine script.
+# Copyright 1992-2022 Free Software Foundation, Inc.
+
+# shellcheck disable=SC2006,SC2268 # see below for rationale
+
+timestamp='2022-01-03'
+
+# This file 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
+# along with this program; if not, see <https://www.gnu.org/licenses/>.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that
+# program. This Exception is an additional permission under section 7
+# of the GNU General Public License, version 3 ("GPLv3").
+
+
+# Please send patches to <config-patches@gnu.org>.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# You can get the latest version of this script from:
+# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support. The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+# The "shellcheck disable" line above the timestamp inhibits complaints
+# about features and limitations of the classic Bourne shell that were
+# superseded or lifted in POSIX. However, this script identifies a wide
+# variety of pre-POSIX systems that do not have POSIX shells at all, and
+# even some reasonably current systems (Solaris 10 as case-in-point) still
+# have a pre-POSIX /bin/sh.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
+
+Canonicalize a configuration name.
+
+Options:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright 1992-2022 Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit ;;
+ --version | -v )
+ echo "$version" ; exit ;;
+ --help | --h* | -h )
+ echo "$usage"; exit ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help" >&2
+ exit 1 ;;
+
+ *local*)
+ # First pass through any local machine types.
+ echo "$1"
+ exit ;;
+
+ * )
+ break ;;
+ esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+ exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+ exit 1;;
+esac
+
+# Split fields of configuration type
+# shellcheck disable=SC2162
+saved_IFS=$IFS
+IFS="-" read field1 field2 field3 field4 <<EOF
+$1
+EOF
+IFS=$saved_IFS
+
+# Separate into logical components for further validation
+case $1 in
+ *-*-*-*-*)
+ echo Invalid configuration \`"$1"\': more than four components >&2
+ exit 1
+ ;;
+ *-*-*-*)
+ basic_machine=$field1-$field2
+ basic_os=$field3-$field4
+ ;;
+ *-*-*)
+ # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
+ # parts
+ maybe_os=$field2-$field3
+ case $maybe_os in
+ nto-qnx* | linux-* | uclinux-uclibc* \
+ | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
+ | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
+ | storm-chaos* | os2-emx* | rtmk-nova*)
+ basic_machine=$field1
+ basic_os=$maybe_os
+ ;;
+ android-linux)
+ basic_machine=$field1-unknown
+ basic_os=linux-android
+ ;;
+ *)
+ basic_machine=$field1-$field2
+ basic_os=$field3
+ ;;
+ esac
+ ;;
+ *-*)
+ # A lone config we happen to match not fitting any pattern
+ case $field1-$field2 in
+ decstation-3100)
+ basic_machine=mips-dec
+ basic_os=
+ ;;
+ *-*)
+ # Second component is usually, but not always the OS
+ case $field2 in
+ # Prevent following clause from handling this valid os
+ sun*os*)
+ basic_machine=$field1
+ basic_os=$field2
+ ;;
+ zephyr*)
+ basic_machine=$field1-unknown
+ basic_os=$field2
+ ;;
+ # Manufacturers
+ dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
+ | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
+ | unicom* | ibm* | next | hp | isi* | apollo | altos* \
+ | convergent* | ncr* | news | 32* | 3600* | 3100* \
+ | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
+ | ultra | tti* | harris | dolphin | highlevel | gould \
+ | cbm | ns | masscomp | apple | axis | knuth | cray \
+ | microblaze* | sim | cisco \
+ | oki | wec | wrs | winbond)
+ basic_machine=$field1-$field2
+ basic_os=
+ ;;
+ *)
+ basic_machine=$field1
+ basic_os=$field2
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ *)
+ # Convert single-component short-hands not valid as part of
+ # multi-component configurations.
+ case $field1 in
+ 386bsd)
+ basic_machine=i386-pc
+ basic_os=bsd
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ basic_os=udi
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ basic_os=scout
+ ;;
+ alliant)
+ basic_machine=fx80-alliant
+ basic_os=
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+ basic_os=
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ basic_os=bsd
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ basic_os=sysv
+ ;;
+ amiga)
+ basic_machine=m68k-unknown
+ basic_os=
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+ basic_os=amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+ basic_os=sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ basic_os=sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ basic_os=bsd
+ ;;
+ aros)
+ basic_machine=i386-pc
+ basic_os=aros
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ basic_os=aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ basic_os=dynix
+ ;;
+ blackfin)
+ basic_machine=bfin-unknown
+ basic_os=linux
+ ;;
+ cegcc)
+ basic_machine=arm-unknown
+ basic_os=cegcc
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ basic_os=bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+ basic_os=bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+ basic_os=bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+ basic_os=bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+ basic_os=bsd
+ ;;
+ cray)
+ basic_machine=j90-cray
+ basic_os=unicos
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ basic_os=
+ ;;
+ da30)
+ basic_machine=m68k-da30
+ basic_os=
+ ;;
+ decstation | pmax | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+ basic_os=
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+ basic_os=sysv3
+ ;;
+ dicos)
+ basic_machine=i686-pc
+ basic_os=dicos
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+ basic_os=msdosdjgpp
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ basic_os=ebmon
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ basic_os=ose
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ basic_os=sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+ basic_os=go32
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ basic_os=hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ basic_os=xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ basic_os=hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ basic_os=sysv3
+ ;;
+ hp300 | hp300hpux)
+ basic_machine=m68k-hp
+ basic_os=hpux
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ basic_os=bsd
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ basic_os=osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ basic_os=proelf
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ basic_os=mach
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ basic_os=sysv
+ ;;
+ m68knommu)
+ basic_machine=m68k-unknown
+ basic_os=linux
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ basic_os=sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ basic_os=sysv
+ ;;
+ mingw64)
+ basic_machine=x86_64-pc
+ basic_os=mingw64
+ ;;
+ mingw32)
+ basic_machine=i686-pc
+ basic_os=mingw32
+ ;;
+ mingw32ce)
+ basic_machine=arm-unknown
+ basic_os=mingw32ce
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ basic_os=coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+ basic_os=morphos
+ ;;
+ moxiebox)
+ basic_machine=moxie-unknown
+ basic_os=moxiebox
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ basic_os=msdos
+ ;;
+ msys)
+ basic_machine=i686-pc
+ basic_os=msys
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ basic_os=mvs
+ ;;
+ nacl)
+ basic_machine=le32-unknown
+ basic_os=nacl
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ basic_os=sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-pc
+ basic_os=netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ basic_os=linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ basic_os=newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ basic_os=newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ basic_os=sysv
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+ basic_os=cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ basic_os=cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ basic_os=nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ basic_os=mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+ basic_os=nonstopux
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+ basic_os=os400
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ basic_os=ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ basic_os=os68k
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ basic_os=osf
+ ;;
+ parisc)
+ basic_machine=hppa-unknown
+ basic_os=linux
+ ;;
+ psp)
+ basic_machine=mipsallegrexel-sony
+ basic_os=psp
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+ basic_os=pw32
+ ;;
+ rdos | rdos64)
+ basic_machine=x86_64-pc
+ basic_os=rdos
+ ;;
+ rdos32)
+ basic_machine=i386-pc
+ basic_os=rdos
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ basic_os=coff
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+ basic_os=udi
+ ;;
+ sei)
+ basic_machine=mips-sei
+ basic_os=seiux
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+ basic_os=
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+ basic_os=sysv2
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+ basic_os=
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+ basic_os=sysv4
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+ basic_os=
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+ basic_os=sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+ basic_os=sunos4
+ ;;
+ sun3)
+ basic_machine=m68k-sun
+ basic_os=
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+ basic_os=sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+ basic_os=sunos4
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+ basic_os=
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+ basic_os=sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+ basic_os=sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+ basic_os=solaris2
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ basic_os=
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+ basic_os=unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ basic_os=dynix
+ ;;
+ t3e)
+ basic_machine=alphaev5-cray
+ basic_os=unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
+ basic_os=unicos
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+ basic_os=tops20
+ ;;
+ tpf)
+ basic_machine=s390x-ibm
+ basic_os=tpf
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ basic_os=udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ basic_os=sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ basic_os=none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ basic_os=sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ basic_os=vms
+ ;;
+ vsta)
+ basic_machine=i386-pc
+ basic_os=vsta
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+ basic_os=vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ basic_os=vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ basic_os=vxworks
+ ;;
+ xbox)
+ basic_machine=i686-pc
+ basic_os=mingw32
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+ basic_os=unicos
+ ;;
+ *)
+ basic_machine=$1
+ basic_os=
+ ;;
+ esac
+ ;;
+esac
+
+# Decode 1-component or ad-hoc basic machines
+case $basic_machine in
+ # Here we handle the default manufacturer of certain CPU types. It is in
+ # some cases the only manufacturer, in others, it is the most popular.
+ w89k)
+ cpu=hppa1.1
+ vendor=winbond
+ ;;
+ op50n)
+ cpu=hppa1.1
+ vendor=oki
+ ;;
+ op60c)
+ cpu=hppa1.1
+ vendor=oki
+ ;;
+ ibm*)
+ cpu=i370
+ vendor=ibm
+ ;;
+ orion105)
+ cpu=clipper
+ vendor=highlevel
+ ;;
+ mac | mpw | mac-mpw)
+ cpu=m68k
+ vendor=apple
+ ;;
+ pmac | pmac-mpw)
+ cpu=powerpc
+ vendor=apple
+ ;;
+
+ # Recognize the various machine names and aliases which stand
+ # for a CPU type and a company and sometimes even an OS.
+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+ cpu=m68000
+ vendor=att
+ ;;
+ 3b*)
+ cpu=we32k
+ vendor=att
+ ;;
+ bluegene*)
+ cpu=powerpc
+ vendor=ibm
+ basic_os=cnk
+ ;;
+ decsystem10* | dec10*)
+ cpu=pdp10
+ vendor=dec
+ basic_os=tops10
+ ;;
+ decsystem20* | dec20*)
+ cpu=pdp10
+ vendor=dec
+ basic_os=tops20
+ ;;
+ delta | 3300 | motorola-3300 | motorola-delta \
+ | 3300-motorola | delta-motorola)
+ cpu=m68k
+ vendor=motorola
+ ;;
+ dpx2*)
+ cpu=m68k
+ vendor=bull
+ basic_os=sysv3
+ ;;
+ encore | umax | mmax)
+ cpu=ns32k
+ vendor=encore
+ ;;
+ elxsi)
+ cpu=elxsi
+ vendor=elxsi
+ basic_os=${basic_os:-bsd}
+ ;;
+ fx2800)
+ cpu=i860
+ vendor=alliant
+ ;;
+ genix)
+ cpu=ns32k
+ vendor=ns
+ ;;
+ h3050r* | hiux*)
+ cpu=hppa1.1
+ vendor=hitachi
+ basic_os=hiuxwe2
+ ;;
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
+ cpu=hppa1.0
+ vendor=hp
+ ;;
+ hp9k2[0-9][0-9] | hp9k31[0-9])
+ cpu=m68000
+ vendor=hp
+ ;;
+ hp9k3[2-9][0-9])
+ cpu=m68k
+ vendor=hp
+ ;;
+ hp9k6[0-9][0-9] | hp6[0-9][0-9])
+ cpu=hppa1.0
+ vendor=hp
+ ;;
+ hp9k7[0-79][0-9] | hp7[0-79][0-9])
+ cpu=hppa1.1
+ vendor=hp
+ ;;
+ hp9k78[0-9] | hp78[0-9])
+ # FIXME: really hppa2.0-hp
+ cpu=hppa1.1
+ vendor=hp
+ ;;
+ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+ # FIXME: really hppa2.0-hp
+ cpu=hppa1.1
+ vendor=hp
+ ;;
+ hp9k8[0-9][13679] | hp8[0-9][13679])
+ cpu=hppa1.1
+ vendor=hp
+ ;;
+ hp9k8[0-9][0-9] | hp8[0-9][0-9])
+ cpu=hppa1.0
+ vendor=hp
+ ;;
+ i*86v32)
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ basic_os=sysv32
+ ;;
+ i*86v4*)
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ basic_os=sysv4
+ ;;
+ i*86v)
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ basic_os=sysv
+ ;;
+ i*86sol2)
+ cpu=`echo "$1" | sed -e 's/86.*/86/'`
+ vendor=pc
+ basic_os=solaris2
+ ;;
+ j90 | j90-cray)
+ cpu=j90
+ vendor=cray
+ basic_os=${basic_os:-unicos}
+ ;;
+ iris | iris4d)
+ cpu=mips
+ vendor=sgi
+ case $basic_os in
+ irix*)
+ ;;
+ *)
+ basic_os=irix4
+ ;;
+ esac
+ ;;
+ miniframe)
+ cpu=m68000
+ vendor=convergent
+ ;;
+ *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ cpu=m68k
+ vendor=atari
+ basic_os=mint
+ ;;
+ news-3600 | risc-news)
+ cpu=mips
+ vendor=sony
+ basic_os=newsos
+ ;;
+ next | m*-next)
+ cpu=m68k
+ vendor=next
+ case $basic_os in
+ openstep*)
+ ;;
+ nextstep*)
+ ;;
+ ns2*)
+ basic_os=nextstep2
+ ;;
+ *)
+ basic_os=nextstep3
+ ;;
+ esac
+ ;;
+ np1)
+ cpu=np1
+ vendor=gould
+ ;;
+ op50n-* | op60c-*)
+ cpu=hppa1.1
+ vendor=oki
+ basic_os=proelf
+ ;;
+ pa-hitachi)
+ cpu=hppa1.1
+ vendor=hitachi
+ basic_os=hiuxwe2
+ ;;
+ pbd)
+ cpu=sparc
+ vendor=tti
+ ;;
+ pbb)
+ cpu=m68k
+ vendor=tti
+ ;;
+ pc532)
+ cpu=ns32k
+ vendor=pc532
+ ;;
+ pn)
+ cpu=pn
+ vendor=gould
+ ;;
+ power)
+ cpu=power
+ vendor=ibm
+ ;;
+ ps2)
+ cpu=i386
+ vendor=ibm
+ ;;
+ rm[46]00)
+ cpu=mips
+ vendor=siemens
+ ;;
+ rtpc | rtpc-*)
+ cpu=romp
+ vendor=ibm
+ ;;
+ sde)
+ cpu=mipsisa32
+ vendor=sde
+ basic_os=${basic_os:-elf}
+ ;;
+ simso-wrs)
+ cpu=sparclite
+ vendor=wrs
+ basic_os=vxworks
+ ;;
+ tower | tower-32)
+ cpu=m68k
+ vendor=ncr
+ ;;
+ vpp*|vx|vx-*)
+ cpu=f301
+ vendor=fujitsu
+ ;;
+ w65)
+ cpu=w65
+ vendor=wdc
+ ;;
+ w89k-*)
+ cpu=hppa1.1
+ vendor=winbond
+ basic_os=proelf
+ ;;
+ none)
+ cpu=none
+ vendor=none
+ ;;
+ leon|leon[3-9])
+ cpu=sparc
+ vendor=$basic_machine
+ ;;
+ leon-*|leon[3-9]-*)
+ cpu=sparc
+ vendor=`echo "$basic_machine" | sed 's/-.*//'`
+ ;;
+
+ *-*)
+ # shellcheck disable=SC2162
+ saved_IFS=$IFS
+ IFS="-" read cpu vendor <<EOF
+$basic_machine
+EOF
+ IFS=$saved_IFS
+ ;;
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i*86 | x86_64)
+ cpu=$basic_machine
+ vendor=pc
+ ;;
+ # These rules are duplicated from below for sake of the special case above;
+ # i.e. things that normalized to x86 arches should also default to "pc"
+ pc98)
+ cpu=i386
+ vendor=pc
+ ;;
+ x64 | amd64)
+ cpu=x86_64
+ vendor=pc
+ ;;
+ # Recognize the basic CPU types without company name.
+ *)
+ cpu=$basic_machine
+ vendor=unknown
+ ;;
+esac
+
+unset -v basic_machine
+
+# Decode basic machines in the full and proper CPU-Company form.
+case $cpu-$vendor in
+ # Here we handle the default manufacturer of certain CPU types in canonical form. It is in
+ # some cases the only manufacturer, in others, it is the most popular.
+ craynv-unknown)
+ vendor=cray
+ basic_os=${basic_os:-unicosmp}
+ ;;
+ c90-unknown | c90-cray)
+ vendor=cray
+ basic_os=${Basic_os:-unicos}
+ ;;
+ fx80-unknown)
+ vendor=alliant
+ ;;
+ romp-unknown)
+ vendor=ibm
+ ;;
+ mmix-unknown)
+ vendor=knuth
+ ;;
+ microblaze-unknown | microblazeel-unknown)
+ vendor=xilinx
+ ;;
+ rs6000-unknown)
+ vendor=ibm
+ ;;
+ vax-unknown)
+ vendor=dec
+ ;;
+ pdp11-unknown)
+ vendor=dec
+ ;;
+ we32k-unknown)
+ vendor=att
+ ;;
+ cydra-unknown)
+ vendor=cydrome
+ ;;
+ i370-ibm*)
+ vendor=ibm
+ ;;
+ orion-unknown)
+ vendor=highlevel
+ ;;
+ xps-unknown | xps100-unknown)
+ cpu=xps100
+ vendor=honeywell
+ ;;
+
+ # Here we normalize CPU types with a missing or matching vendor
+ armh-unknown | armh-alt)
+ cpu=armv7l
+ vendor=alt
+ basic_os=${basic_os:-linux-gnueabihf}
+ ;;
+ dpx20-unknown | dpx20-bull)
+ cpu=rs6000
+ vendor=bull
+ basic_os=${basic_os:-bosx}
+ ;;
+
+ # Here we normalize CPU types irrespective of the vendor
+ amd64-*)
+ cpu=x86_64
+ ;;
+ blackfin-*)
+ cpu=bfin
+ basic_os=linux
+ ;;
+ c54x-*)
+ cpu=tic54x
+ ;;
+ c55x-*)
+ cpu=tic55x
+ ;;
+ c6x-*)
+ cpu=tic6x
+ ;;
+ e500v[12]-*)
+ cpu=powerpc
+ basic_os=${basic_os}"spe"
+ ;;
+ mips3*-*)
+ cpu=mips64
+ ;;
+ ms1-*)
+ cpu=mt
+ ;;
+ m68knommu-*)
+ cpu=m68k
+ basic_os=linux
+ ;;
+ m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
+ cpu=s12z
+ ;;
+ openrisc-*)
+ cpu=or32
+ ;;
+ parisc-*)
+ cpu=hppa
+ basic_os=linux
+ ;;
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ cpu=i586
+ ;;
+ pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
+ cpu=i686
+ ;;
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+ cpu=i686
+ ;;
+ pentium4-*)
+ cpu=i786
+ ;;
+ pc98-*)
+ cpu=i386
+ ;;
+ ppc-* | ppcbe-*)
+ cpu=powerpc
+ ;;
+ ppcle-* | powerpclittle-*)
+ cpu=powerpcle
+ ;;
+ ppc64-*)
+ cpu=powerpc64
+ ;;
+ ppc64le-* | powerpc64little-*)
+ cpu=powerpc64le
+ ;;
+ sb1-*)
+ cpu=mipsisa64sb1
+ ;;
+ sb1el-*)
+ cpu=mipsisa64sb1el
+ ;;
+ sh5e[lb]-*)
+ cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
+ ;;
+ spur-*)
+ cpu=spur
+ ;;
+ strongarm-* | thumb-*)
+ cpu=arm
+ ;;
+ tx39-*)
+ cpu=mipstx39
+ ;;
+ tx39el-*)
+ cpu=mipstx39el
+ ;;
+ x64-*)
+ cpu=x86_64
+ ;;
+ xscale-* | xscalee[bl]-*)
+ cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
+ ;;
+ arm64-* | aarch64le-*)
+ cpu=aarch64
+ ;;
+
+ # Recognize the canonical CPU Types that limit and/or modify the
+ # company names they are paired with.
+ cr16-*)
+ basic_os=${basic_os:-elf}
+ ;;
+ crisv32-* | etraxfs*-*)
+ cpu=crisv32
+ vendor=axis
+ ;;
+ cris-* | etrax*-*)
+ cpu=cris
+ vendor=axis
+ ;;
+ crx-*)
+ basic_os=${basic_os:-elf}
+ ;;
+ neo-tandem)
+ cpu=neo
+ vendor=tandem
+ ;;
+ nse-tandem)
+ cpu=nse
+ vendor=tandem
+ ;;
+ nsr-tandem)
+ cpu=nsr
+ vendor=tandem
+ ;;
+ nsv-tandem)
+ cpu=nsv
+ vendor=tandem
+ ;;
+ nsx-tandem)
+ cpu=nsx
+ vendor=tandem
+ ;;
+ mipsallegrexel-sony)
+ cpu=mipsallegrexel
+ vendor=sony
+ ;;
+ tile*-*)
+ basic_os=${basic_os:-linux-gnu}
+ ;;
+
+ *)
+ # Recognize the canonical CPU types that are allowed with any
+ # company name.
+ case $cpu in
+ 1750a | 580 \
+ | a29k \
+ | aarch64 | aarch64_be \
+ | abacus \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
+ | alphapca5[67] | alpha64pca5[67] \
+ | am33_2.0 \
+ | amdgcn \
+ | arc | arceb | arc32 | arc64 \
+ | arm | arm[lb]e | arme[lb] | armv* \
+ | avr | avr32 \
+ | asmjs \
+ | ba \
+ | be32 | be64 \
+ | bfin | bpf | bs2000 \
+ | c[123]* | c30 | [cjt]90 | c4x \
+ | c8051 | clipper | craynv | csky | cydra \
+ | d10v | d30v | dlx | dsp16xx \
+ | e2k | elxsi | epiphany \
+ | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
+ | h8300 | h8500 \
+ | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | hexagon \
+ | i370 | i*86 | i860 | i960 | ia16 | ia64 \
+ | ip2k | iq2000 \
+ | k1om \
+ | le32 | le64 \
+ | lm32 \
+ | loongarch32 | loongarch64 | loongarchx32 \
+ | m32c | m32r | m32rle \
+ | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
+ | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
+ | m88110 | m88k | maxq | mb | mcore | mep | metag \
+ | microblaze | microblazeel \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64eb | mips64el \
+ | mips64octeon | mips64octeonel \
+ | mips64orion | mips64orionel \
+ | mips64r5900 | mips64r5900el \
+ | mips64vr | mips64vrel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
+ | mips64vr5900 | mips64vr5900el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
+ | mipsisa32r3 | mipsisa32r3el \
+ | mipsisa32r5 | mipsisa32r5el \
+ | mipsisa32r6 | mipsisa32r6el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64r3 | mipsisa64r3el \
+ | mipsisa64r5 | mipsisa64r5el \
+ | mipsisa64r6 | mipsisa64r6el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipsr5900 | mipsr5900el \
+ | mipstx39 | mipstx39el \
+ | mmix \
+ | mn10200 | mn10300 \
+ | moxie \
+ | mt \
+ | msp430 \
+ | nds32 | nds32le | nds32be \
+ | nfp \
+ | nios | nios2 | nios2eb | nios2el \
+ | none | np1 | ns16k | ns32k | nvptx \
+ | open8 \
+ | or1k* \
+ | or32 \
+ | orion \
+ | picochip \
+ | pdp10 | pdp11 | pj | pjl | pn | power \
+ | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
+ | pru \
+ | pyramid \
+ | riscv | riscv32 | riscv32be | riscv64 | riscv64be \
+ | rl78 | romp | rs6000 | rx \
+ | s390 | s390x \
+ | score \
+ | sh | shl \
+ | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
+ | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
+ | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
+ | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
+ | spu \
+ | tahoe \
+ | thumbv7* \
+ | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
+ | tron \
+ | ubicom32 \
+ | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
+ | vax \
+ | visium \
+ | w65 \
+ | wasm32 | wasm64 \
+ | we32k \
+ | x86 | x86_64 | xc16x | xgate | xps100 \
+ | xstormy16 | xtensa* \
+ | ymp \
+ | z8k | z80)
+ ;;
+
+ *)
+ echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
+ exit 1
+ ;;
+ esac
+ ;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $vendor in
+ digital*)
+ vendor=dec
+ ;;
+ commodore*)
+ vendor=cbm
+ ;;
+ *)
+ ;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if test x$basic_os != x
+then
+
+# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
+# set os.
+case $basic_os in
+ gnu/linux*)
+ kernel=linux
+ os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
+ ;;
+ os2-emx)
+ kernel=os2
+ os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
+ ;;
+ nto-qnx*)
+ kernel=nto
+ os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
+ ;;
+ *-*)
+ # shellcheck disable=SC2162
+ saved_IFS=$IFS
+ IFS="-" read kernel os <<EOF
+$basic_os
+EOF
+ IFS=$saved_IFS
+ ;;
+ # Default OS when just kernel was specified
+ nto*)
+ kernel=nto
+ os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
+ ;;
+ linux*)
+ kernel=linux
+ os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
+ ;;
+ *)
+ kernel=
+ os=$basic_os
+ ;;
+esac
+
+# Now, normalize the OS (knowing we just have one component, it's not a kernel,
+# etc.)
+case $os in
+ # First match some system type aliases that might get confused
+ # with valid system types.
+ # solaris* is a basic system type, with this one exception.
+ auroraux)
+ os=auroraux
+ ;;
+ bluegene*)
+ os=cnk
+ ;;
+ solaris1 | solaris1.*)
+ os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
+ ;;
+ solaris)
+ os=solaris2
+ ;;
+ unixware*)
+ os=sysv4.2uw
+ ;;
+ # es1800 is here to avoid being matched by es* (a different OS)
+ es1800*)
+ os=ose
+ ;;
+ # Some version numbers need modification
+ chorusos*)
+ os=chorusos
+ ;;
+ isc)
+ os=isc2.2
+ ;;
+ sco6)
+ os=sco5v6
+ ;;
+ sco5)
+ os=sco3.2v5
+ ;;
+ sco4)
+ os=sco3.2v4
+ ;;
+ sco3.2.[4-9]*)
+ os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
+ ;;
+ sco*v* | scout)
+ # Don't match below
+ ;;
+ sco*)
+ os=sco3.2v2
+ ;;
+ psos*)
+ os=psos
+ ;;
+ qnx*)
+ os=qnx
+ ;;
+ hiux*)
+ os=hiuxwe2
+ ;;
+ lynx*178)
+ os=lynxos178
+ ;;
+ lynx*5)
+ os=lynxos5
+ ;;
+ lynxos*)
+ # don't get caught up in next wildcard
+ ;;
+ lynx*)
+ os=lynxos
+ ;;
+ mac[0-9]*)
+ os=`echo "$os" | sed -e 's|mac|macos|'`
+ ;;
+ opened*)
+ os=openedition
+ ;;
+ os400*)
+ os=os400
+ ;;
+ sunos5*)
+ os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
+ ;;
+ sunos6*)
+ os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
+ ;;
+ wince*)
+ os=wince
+ ;;
+ utek*)
+ os=bsd
+ ;;
+ dynix*)
+ os=bsd
+ ;;
+ acis*)
+ os=aos
+ ;;
+ atheos*)
+ os=atheos
+ ;;
+ syllable*)
+ os=syllable
+ ;;
+ 386bsd)
+ os=bsd
+ ;;
+ ctix* | uts*)
+ os=sysv
+ ;;
+ nova*)
+ os=rtmk-nova
+ ;;
+ ns2)
+ os=nextstep2
+ ;;
+ # Preserve the version number of sinix5.
+ sinix5.*)
+ os=`echo "$os" | sed -e 's|sinix|sysv|'`
+ ;;
+ sinix*)
+ os=sysv4
+ ;;
+ tpf*)
+ os=tpf
+ ;;
+ triton*)
+ os=sysv3
+ ;;
+ oss*)
+ os=sysv3
+ ;;
+ svr4*)
+ os=sysv4
+ ;;
+ svr3)
+ os=sysv3
+ ;;
+ sysvr4)
+ os=sysv4
+ ;;
+ ose*)
+ os=ose
+ ;;
+ *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+ os=mint
+ ;;
+ dicos*)
+ os=dicos
+ ;;
+ pikeos*)
+ # Until real need of OS specific support for
+ # particular features comes up, bare metal
+ # configurations are quite functional.
+ case $cpu in
+ arm*)
+ os=eabi
+ ;;
+ *)
+ os=elf
+ ;;
+ esac
+ ;;
+ *)
+ # No normalization, but not necessarily accepted, that comes below.
+ ;;
+esac
+
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system. Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+kernel=
+case $cpu-$vendor in
+ score-*)
+ os=elf
+ ;;
+ spu-*)
+ os=elf
+ ;;
+ *-acorn)
+ os=riscix1.2
+ ;;
+ arm*-rebel)
+ kernel=linux
+ os=gnu
+ ;;
+ arm*-semi)
+ os=aout
+ ;;
+ c4x-* | tic4x-*)
+ os=coff
+ ;;
+ c8051-*)
+ os=elf
+ ;;
+ clipper-intergraph)
+ os=clix
+ ;;
+ hexagon-*)
+ os=elf
+ ;;
+ tic54x-*)
+ os=coff
+ ;;
+ tic55x-*)
+ os=coff
+ ;;
+ tic6x-*)
+ os=coff
+ ;;
+ # This must come before the *-dec entry.
+ pdp10-*)
+ os=tops20
+ ;;
+ pdp11-*)
+ os=none
+ ;;
+ *-dec | vax-*)
+ os=ultrix4.2
+ ;;
+ m68*-apollo)
+ os=domain
+ ;;
+ i386-sun)
+ os=sunos4.0.2
+ ;;
+ m68000-sun)
+ os=sunos3
+ ;;
+ m68*-cisco)
+ os=aout
+ ;;
+ mep-*)
+ os=elf
+ ;;
+ mips*-cisco)
+ os=elf
+ ;;
+ mips*-*)
+ os=elf
+ ;;
+ or32-*)
+ os=coff
+ ;;
+ *-tti) # must be before sparc entry or we get the wrong os.
+ os=sysv3
+ ;;
+ sparc-* | *-sun)
+ os=sunos4.1.1
+ ;;
+ pru-*)
+ os=elf
+ ;;
+ *-be)
+ os=beos
+ ;;
+ *-ibm)
+ os=aix
+ ;;
+ *-knuth)
+ os=mmixware
+ ;;
+ *-wec)
+ os=proelf
+ ;;
+ *-winbond)
+ os=proelf
+ ;;
+ *-oki)
+ os=proelf
+ ;;
+ *-hp)
+ os=hpux
+ ;;
+ *-hitachi)
+ os=hiux
+ ;;
+ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+ os=sysv
+ ;;
+ *-cbm)
+ os=amigaos
+ ;;
+ *-dg)
+ os=dgux
+ ;;
+ *-dolphin)
+ os=sysv3
+ ;;
+ m68k-ccur)
+ os=rtu
+ ;;
+ m88k-omron*)
+ os=luna
+ ;;
+ *-next)
+ os=nextstep
+ ;;
+ *-sequent)
+ os=ptx
+ ;;
+ *-crds)
+ os=unos
+ ;;
+ *-ns)
+ os=genix
+ ;;
+ i370-*)
+ os=mvs
+ ;;
+ *-gould)
+ os=sysv
+ ;;
+ *-highlevel)
+ os=bsd
+ ;;
+ *-encore)
+ os=bsd
+ ;;
+ *-sgi)
+ os=irix
+ ;;
+ *-siemens)
+ os=sysv4
+ ;;
+ *-masscomp)
+ os=rtu
+ ;;
+ f30[01]-fujitsu | f700-fujitsu)
+ os=uxpv
+ ;;
+ *-rom68k)
+ os=coff
+ ;;
+ *-*bug)
+ os=coff
+ ;;
+ *-apple)
+ os=macos
+ ;;
+ *-atari*)
+ os=mint
+ ;;
+ *-wrs)
+ os=vxworks
+ ;;
+ *)
+ os=none
+ ;;
+esac
+
+fi
+
+# Now, validate our (potentially fixed-up) OS.
+case $os in
+ # Sometimes we do "kernel-libc", so those need to count as OSes.
+ musl* | newlib* | relibc* | uclibc*)
+ ;;
+ # Likewise for "kernel-abi"
+ eabi* | gnueabi*)
+ ;;
+ # VxWorks passes extra cpu info in the 4th filed.
+ simlinux | simwindows | spe)
+ ;;
+ # Now accept the basic system types.
+ # The portable systems comes first.
+ # Each alternative MUST end in a * to match a version number.
+ gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+ | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
+ | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
+ | sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
+ | hiux* | abug | nacl* | netware* | windows* \
+ | os9* | macos* | osx* | ios* \
+ | mpw* | magic* | mmixware* | mon960* | lnews* \
+ | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
+ | aos* | aros* | cloudabi* | sortix* | twizzler* \
+ | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
+ | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
+ | mirbsd* | netbsd* | dicos* | openedition* | ose* \
+ | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
+ | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
+ | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
+ | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
+ | udi* | lites* | ieee* | go32* | aux* | hcos* \
+ | chorusrdb* | cegcc* | glidix* | serenity* \
+ | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
+ | midipix* | mingw32* | mingw64* | mint* \
+ | uxpv* | beos* | mpeix* | udk* | moxiebox* \
+ | interix* | uwin* | mks* | rhapsody* | darwin* \
+ | openstep* | oskit* | conix* | pw32* | nonstopux* \
+ | storm-chaos* | tops10* | tenex* | tops20* | its* \
+ | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
+ | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
+ | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+ | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+ | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+ | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
+ | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
+ | fiwix* )
+ ;;
+ # This one is extra strict with allowed versions
+ sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
+ # Don't forget version if it is 3.2v4 or newer.
+ ;;
+ none)
+ ;;
+ *)
+ echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+
+# As a final step for OS-related things, validate the OS-kernel combination
+# (given a valid OS), if there is a kernel.
+case $kernel-$os in
+ linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
+ | linux-musl* | linux-relibc* | linux-uclibc* )
+ ;;
+ uclinux-uclibc* )
+ ;;
+ -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* )
+ # These are just libc implementations, not actual OSes, and thus
+ # require a kernel.
+ echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
+ exit 1
+ ;;
+ kfreebsd*-gnu* | kopensolaris*-gnu*)
+ ;;
+ vxworks-simlinux | vxworks-simwindows | vxworks-spe)
+ ;;
+ nto-qnx*)
+ ;;
+ os2-emx)
+ ;;
+ *-eabi* | *-gnueabi*)
+ ;;
+ -*)
+ # Blank kernel with real OS is always fine.
+ ;;
+ *-*)
+ echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
+ exit 1
+ ;;
+esac
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer. We pick the logical manufacturer.
+case $vendor in
+ unknown)
+ case $cpu-$os in
+ *-riscix*)
+ vendor=acorn
+ ;;
+ *-sunos*)
+ vendor=sun
+ ;;
+ *-cnk* | *-aix*)
+ vendor=ibm
+ ;;
+ *-beos*)
+ vendor=be
+ ;;
+ *-hpux*)
+ vendor=hp
+ ;;
+ *-mpeix*)
+ vendor=hp
+ ;;
+ *-hiux*)
+ vendor=hitachi
+ ;;
+ *-unos*)
+ vendor=crds
+ ;;
+ *-dgux*)
+ vendor=dg
+ ;;
+ *-luna*)
+ vendor=omron
+ ;;
+ *-genix*)
+ vendor=ns
+ ;;
+ *-clix*)
+ vendor=intergraph
+ ;;
+ *-mvs* | *-opened*)
+ vendor=ibm
+ ;;
+ *-os400*)
+ vendor=ibm
+ ;;
+ s390-* | s390x-*)
+ vendor=ibm
+ ;;
+ *-ptx*)
+ vendor=sequent
+ ;;
+ *-tpf*)
+ vendor=ibm
+ ;;
+ *-vxsim* | *-vxworks* | *-windiss*)
+ vendor=wrs
+ ;;
+ *-aux*)
+ vendor=apple
+ ;;
+ *-hms*)
+ vendor=hitachi
+ ;;
+ *-mpw* | *-macos*)
+ vendor=apple
+ ;;
+ *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
+ vendor=atari
+ ;;
+ *-vos*)
+ vendor=stratus
+ ;;
+ esac
+ ;;
+esac
+
+echo "$cpu-$vendor-${kernel:+$kernel-}$os"
+exit
+
+# Local variables:
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
diff --git a/configure b/configure
new file mode 100755
index 0000000..4a947dd
--- /dev/null
+++ b/configure
@@ -0,0 +1,21818 @@
+#! /bin/sh
+# Guess values for system-dependent variables and create Makefiles.
+# Generated by GNU Autoconf 2.71 for procps-ng 4.0.4.
+#
+# Report bugs to <procps@freelists.org>.
+#
+#
+# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
+# Inc.
+#
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+as_nop=:
+if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else $as_nop
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+
+# Reset variables that may have inherited troublesome values from
+# the environment.
+
+# IFS needs to be set, to space, tab, and newline, in precisely that order.
+# (If _AS_PATH_WALK were called with IFS unset, it would have the
+# side effect of setting IFS to empty, thus disabling word splitting.)
+# Quoting is to prevent editors from complaining about space-tab.
+as_nl='
+'
+export as_nl
+IFS=" "" $as_nl"
+
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# Ensure predictable behavior from utilities with locale-dependent output.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# We cannot yet rely on "unset" to work, but we need these variables
+# to be unset--not just set to an empty or harmless value--now, to
+# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct
+# also avoids known problems related to "unset" and subshell syntax
+# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
+for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
+do eval test \${$as_var+y} \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+
+# Ensure that fds 0, 1, and 2 are open.
+if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
+if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
+if (exec 3>&2) ; then :; else exec 2>/dev/null; fi
+
+# The user is always right.
+if ${PATH_SEPARATOR+false} :; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ test -r "$as_dir$0" && as_myself=$as_dir$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+
+# Use a proper internal environment variable to ensure we don't fall
+ # into an infinite loop, continuously re-executing ourselves.
+ if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then
+ _as_can_reexec=no; export _as_can_reexec;
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+ fi
+ # We don't want this to propagate to other subprocesses.
+ { _as_can_reexec=; unset _as_can_reexec;}
+if test "x$CONFIG_SHELL" = x; then
+ as_bourne_compatible="as_nop=:
+if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else \$as_nop
+ case \`(set -o) 2>/dev/null\` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+"
+ as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
+
+exitcode=0
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" )
+then :
+
+else \$as_nop
+ exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1
+blah=\$(echo \$(echo blah))
+test x\"\$blah\" = xblah || exit 1
+test -x / || exit 1"
+ as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+ as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+ eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+ test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1
+
+ test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
+ ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+ ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
+ PATH=/empty FPATH=/empty; export PATH FPATH
+ test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
+ || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1"
+ if (eval "$as_required") 2>/dev/null
+then :
+ as_have_required=yes
+else $as_nop
+ as_have_required=no
+fi
+ if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
+then :
+
+else $as_nop
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ as_found=:
+ case $as_dir in #(
+ /*)
+ for as_base in sh bash ksh sh5; do
+ # Try only shells that exist, to save several forks.
+ as_shell=$as_dir$as_base
+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+ as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null
+then :
+ CONFIG_SHELL=$as_shell as_have_required=yes
+ if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null
+then :
+ break 2
+fi
+fi
+ done;;
+ esac
+ as_found=false
+done
+IFS=$as_save_IFS
+if $as_found
+then :
+
+else $as_nop
+ if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+ as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
+then :
+ CONFIG_SHELL=$SHELL as_have_required=yes
+fi
+fi
+
+
+ if test "x$CONFIG_SHELL" != x
+then :
+ export CONFIG_SHELL
+ # We cannot yet assume a decent shell, so we have to provide a
+# neutralization value for shells without unset; and this also
+# works around shells that cannot unset nonexistent variables.
+# Preserve -v and -x to the replacement shell.
+BASH_ENV=/dev/null
+ENV=/dev/null
+(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
+case $- in # ((((
+ *v*x* | *x*v* ) as_opts=-vx ;;
+ *v* ) as_opts=-v ;;
+ *x* ) as_opts=-x ;;
+ * ) as_opts= ;;
+esac
+exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
+# Admittedly, this is quite paranoid, since all the known shells bail
+# out after a failed `exec'.
+printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
+exit 255
+fi
+
+ if test x$as_have_required = xno
+then :
+ printf "%s\n" "$0: This script requires a shell more modern than all"
+ printf "%s\n" "$0: the shells that I found on your system."
+ if test ${ZSH_VERSION+y} ; then
+ printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+ printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later."
+ else
+ printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and
+$0: procps@freelists.org about your system, including any
+$0: error possibly output before this message. Then install
+$0: a modern shell, or manually run the script under such a
+$0: shell if you do have one."
+ fi
+ exit 1
+fi
+fi
+fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
+
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+# as_fn_nop
+# ---------
+# Do nothing but, unlike ":", preserve the value of $?.
+as_fn_nop ()
+{
+ return $?
+}
+as_nop=as_fn_nop
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+printf "%s\n" X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
+then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else $as_nop
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
+then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else $as_nop
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+# as_fn_nop
+# ---------
+# Do nothing but, unlike ":", preserve the value of $?.
+as_fn_nop ()
+{
+ return $?
+}
+as_nop=as_fn_nop
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ printf "%s\n" "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+printf "%s\n" X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+ as_lineno_1=$LINENO as_lineno_1a=$LINENO
+ as_lineno_2=$LINENO as_lineno_2a=$LINENO
+ eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+ test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+ # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-)
+ sed -n '
+ p
+ /[$]LINENO/=
+ ' <$as_myself |
+ sed '
+ s/[$]LINENO.*/&-/
+ t lineno
+ b
+ :lineno
+ N
+ :loop
+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
+ t loop
+ s/-\n.*//
+ ' >$as_me.lineno &&
+ chmod +x "$as_me.lineno" ||
+ { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
+
+ # If we had to re-execute with $CONFIG_SHELL, we're ensured to have
+ # already done that, so ensure we don't try to do so again and fall
+ # in an infinite loop. This has already happened in practice.
+ _as_can_reexec=no; export _as_can_reexec
+ # Don't try to exec as it changes $[0], causing all sort of problems
+ # (the dirname of $[0] is not the place where we might find the
+ # original and so on. Autoconf is especially sensitive to this).
+ . "./$as_me.lineno"
+ # Exit status is that of the last command.
+ exit
+}
+
+
+# Determine whether it's possible to make 'echo' print without a newline.
+# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+# for compatibility with existing Makefiles.
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+# For backward compatibility with old third-party macros, we provide
+# the shell variables $as_echo and $as_echo_n. New code should use
+# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+as_echo='printf %s\n'
+as_echo_n='printf %s'
+
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+SHELL=${CONFIG_SHELL-/bin/sh}
+
+
+test -n "$DJDIR" || exec 7<&0 </dev/null
+exec 6>&1
+
+# Name of the host.
+# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
+# so uname gets run too.
+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
+
+#
+# Initializations.
+#
+ac_default_prefix=/usr/local
+ac_clean_files=
+ac_config_libobj_dir=.
+LIBOBJS=
+cross_compiling=no
+subdirs=
+MFLAGS=
+MAKEFLAGS=
+
+# Identity of this package.
+PACKAGE_NAME='procps-ng'
+PACKAGE_TARNAME='procps-ng'
+PACKAGE_VERSION='4.0.4'
+PACKAGE_STRING='procps-ng 4.0.4'
+PACKAGE_BUGREPORT='procps@freelists.org'
+PACKAGE_URL='https://gitlab.com/procps-ng/procps'
+
+ac_unique_file="src/free.c"
+# Factoring default headers for most tests.
+ac_includes_default="\
+#include <stddef.h>
+#ifdef HAVE_STDIO_H
+# include <stdio.h>
+#endif
+#ifdef HAVE_STDLIB_H
+# include <stdlib.h>
+#endif
+#ifdef HAVE_STRING_H
+# include <string.h>
+#endif
+#ifdef HAVE_INTTYPES_H
+# include <inttypes.h>
+#endif
+#ifdef HAVE_STDINT_H
+# include <stdint.h>
+#endif
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+#ifdef HAVE_SYS_STAT_H
+# include <sys/stat.h>
+#endif
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif"
+
+ac_header_c_list=
+ac_func_c_list=
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
+DEJAGNU
+DL_LIB
+EXAMPLE_FILES_FALSE
+EXAMPLE_FILES_TRUE
+BUILD_SKILL_FALSE
+BUILD_SKILL_TRUE
+CYGWIN_FALSE
+CYGWIN_TRUE
+LINUX_FALSE
+LINUX_TRUE
+BUILD_W_FALSE
+BUILD_W_TRUE
+BUILD_KILL_FALSE
+BUILD_KILL_TRUE
+BUILD_PIDOF_FALSE
+BUILD_PIDOF_TRUE
+WITH_ELOGIND_FALSE
+WITH_ELOGIND_TRUE
+ELOGIND_LIBS
+ELOGIND_CFLAGS
+WITH_SYSTEMD_FALSE
+WITH_SYSTEMD_TRUE
+SYSTEMD_LIBS
+SYSTEMD_CFLAGS
+NCURSES_LIBS
+NCURSES_CFLAGS
+WITH_NCURSES_FALSE
+WITH_NCURSES_TRUE
+HARDEN_LDFLAGS
+HARDEN_CFLAGS
+WITH_COLORWATCH
+WITH_WATCH8BIT
+BUILD_PIDWAIT_FALSE
+BUILD_PIDWAIT_TRUE
+POSUB
+LTLIBINTL
+LIBINTL
+INTLLIBS
+LTLIBICONV
+LIBICONV
+MSGMERGE
+XGETTEXT
+GMSGFMT
+MSGFMT
+MKINSTALLDIRS
+usrbin_execdir
+POW_LIB
+LIBOBJS
+LT_SYS_LIBRARY_PATH
+OTOOL64
+OTOOL
+LIPO
+NMEDIT
+DSYMUTIL
+MANIFEST_TOOL
+RANLIB
+ac_ct_AR
+AR
+DLLTOOL
+OBJDUMP
+FILECMD
+NM
+ac_ct_DUMPBIN
+DUMPBIN
+LD
+FGREP
+SED
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+LIBTOOL
+EGREP
+GREP
+USE_PO4A
+PO4A
+USE_NLS
+PKG_CONFIG_LIBDIR
+PKG_CONFIG_PATH
+PKG_CONFIG
+LN_S
+CPP
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+am__nodep
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+AM_BACKSLASH
+AM_DEFAULT_VERBOSITY
+AM_DEFAULT_V
+AM_V
+CSCOPE
+ETAGS
+CTAGS
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+runstatedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_URL
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL
+am__quote'
+ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_silent_rules
+enable_dependency_tracking
+enable_largefile
+enable_nls
+enable_shared
+enable_static
+with_pic
+enable_fast_install
+with_aix_soname
+with_gnu_ld
+with_sysroot
+enable_libtool_lock
+enable_rpath
+with_libiconv_prefix
+with_libintl_prefix
+enable_watch8bit
+enable_colorwatch
+enable_libselinux
+enable_harden_flags
+with_ncurses
+with_systemd
+with_elogind
+enable_pidof
+enable_kill
+enable_w
+enable_skill
+enable_examples
+enable_sigwinch
+enable_wide_percent
+enable_wide_memory
+enable_modern_top
+enable_numa
+enable_w_from
+enable_whining
+'
+ ac_precious_vars='build_alias
+host_alias
+target_alias
+CC
+CFLAGS
+LDFLAGS
+LIBS
+CPPFLAGS
+CPP
+PKG_CONFIG
+PKG_CONFIG_PATH
+PKG_CONFIG_LIBDIR
+LT_SYS_LIBRARY_PATH
+NCURSES_CFLAGS
+NCURSES_LIBS
+SYSTEMD_CFLAGS
+SYSTEMD_LIBS
+ELOGIND_CFLAGS
+ELOGIND_LIBS'
+
+
+# Initialize some variables set by options.
+ac_init_help=
+ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+cache_file=/dev/null
+exec_prefix=NONE
+no_create=
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+verbose=
+x_includes=NONE
+x_libraries=NONE
+
+# Installation directory options.
+# These are left unexpanded so users can "make install exec_prefix=/foo"
+# and all the variables that are supposed to be based on exec_prefix
+# by default will actually change.
+# Use braces instead of parens because sh, perl, etc. also accept them.
+# (The list follows the same order as the GNU Coding Standards.)
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datarootdir='${prefix}/share'
+datadir='${datarootdir}'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+runstatedir='${localstatedir}/run'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
+infodir='${datarootdir}/info'
+htmldir='${docdir}'
+dvidir='${docdir}'
+pdfdir='${docdir}'
+psdir='${docdir}'
+libdir='${exec_prefix}/lib'
+localedir='${datarootdir}/locale'
+mandir='${datarootdir}/man'
+
+ac_prev=
+ac_dashdash=
+for ac_option
+do
+ # If the previous option needs an argument, assign it.
+ if test -n "$ac_prev"; then
+ eval $ac_prev=\$ac_option
+ ac_prev=
+ continue
+ fi
+
+ case $ac_option in
+ *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
+ *=) ac_optarg= ;;
+ *) ac_optarg=yes ;;
+ esac
+
+ case $ac_dashdash$ac_option in
+ --)
+ ac_dashdash=yes ;;
+
+ -bindir | --bindir | --bindi | --bind | --bin | --bi)
+ ac_prev=bindir ;;
+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+ bindir=$ac_optarg ;;
+
+ -build | --build | --buil | --bui | --bu)
+ ac_prev=build_alias ;;
+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+ build_alias=$ac_optarg ;;
+
+ -cache-file | --cache-file | --cache-fil | --cache-fi \
+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+ ac_prev=cache_file ;;
+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+ cache_file=$ac_optarg ;;
+
+ --config-cache | -C)
+ cache_file=config.cache ;;
+
+ -datadir | --datadir | --datadi | --datad)
+ ac_prev=datadir ;;
+ -datadir=* | --datadir=* | --datadi=* | --datad=*)
+ datadir=$ac_optarg ;;
+
+ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
+ | --dataroo | --dataro | --datar)
+ ac_prev=datarootdir ;;
+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
+ datarootdir=$ac_optarg ;;
+
+ -disable-* | --disable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: \`$ac_useropt'"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=no ;;
+
+ -docdir | --docdir | --docdi | --doc | --do)
+ ac_prev=docdir ;;
+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
+ docdir=$ac_optarg ;;
+
+ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
+ ac_prev=dvidir ;;
+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
+ dvidir=$ac_optarg ;;
+
+ -enable-* | --enable-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid feature name: \`$ac_useropt'"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"enable_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval enable_$ac_useropt=\$ac_optarg ;;
+
+ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+ | --exec | --exe | --ex)
+ ac_prev=exec_prefix ;;
+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+ | --exec=* | --exe=* | --ex=*)
+ exec_prefix=$ac_optarg ;;
+
+ -gas | --gas | --ga | --g)
+ # Obsolete; use --with-gas.
+ with_gas=yes ;;
+
+ -help | --help | --hel | --he | -h)
+ ac_init_help=long ;;
+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
+ ac_init_help=recursive ;;
+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
+ ac_init_help=short ;;
+
+ -host | --host | --hos | --ho)
+ ac_prev=host_alias ;;
+ -host=* | --host=* | --hos=* | --ho=*)
+ host_alias=$ac_optarg ;;
+
+ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
+ ac_prev=htmldir ;;
+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
+ | --ht=*)
+ htmldir=$ac_optarg ;;
+
+ -includedir | --includedir | --includedi | --included | --include \
+ | --includ | --inclu | --incl | --inc)
+ ac_prev=includedir ;;
+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+ | --includ=* | --inclu=* | --incl=* | --inc=*)
+ includedir=$ac_optarg ;;
+
+ -infodir | --infodir | --infodi | --infod | --info | --inf)
+ ac_prev=infodir ;;
+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+ infodir=$ac_optarg ;;
+
+ -libdir | --libdir | --libdi | --libd)
+ ac_prev=libdir ;;
+ -libdir=* | --libdir=* | --libdi=* | --libd=*)
+ libdir=$ac_optarg ;;
+
+ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+ | --libexe | --libex | --libe)
+ ac_prev=libexecdir ;;
+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+ | --libexe=* | --libex=* | --libe=*)
+ libexecdir=$ac_optarg ;;
+
+ -localedir | --localedir | --localedi | --localed | --locale)
+ ac_prev=localedir ;;
+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
+ localedir=$ac_optarg ;;
+
+ -localstatedir | --localstatedir | --localstatedi | --localstated \
+ | --localstate | --localstat | --localsta | --localst | --locals)
+ ac_prev=localstatedir ;;
+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
+ localstatedir=$ac_optarg ;;
+
+ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+ ac_prev=mandir ;;
+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+ mandir=$ac_optarg ;;
+
+ -nfp | --nfp | --nf)
+ # Obsolete; use --without-fp.
+ with_fp=no ;;
+
+ -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+ | --no-cr | --no-c | -n)
+ no_create=yes ;;
+
+ -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+ no_recursion=yes ;;
+
+ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+ | --oldin | --oldi | --old | --ol | --o)
+ ac_prev=oldincludedir ;;
+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+ oldincludedir=$ac_optarg ;;
+
+ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+ ac_prev=prefix ;;
+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+ prefix=$ac_optarg ;;
+
+ -program-prefix | --program-prefix | --program-prefi | --program-pref \
+ | --program-pre | --program-pr | --program-p)
+ ac_prev=program_prefix ;;
+ -program-prefix=* | --program-prefix=* | --program-prefi=* \
+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+ program_prefix=$ac_optarg ;;
+
+ -program-suffix | --program-suffix | --program-suffi | --program-suff \
+ | --program-suf | --program-su | --program-s)
+ ac_prev=program_suffix ;;
+ -program-suffix=* | --program-suffix=* | --program-suffi=* \
+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+ program_suffix=$ac_optarg ;;
+
+ -program-transform-name | --program-transform-name \
+ | --program-transform-nam | --program-transform-na \
+ | --program-transform-n | --program-transform- \
+ | --program-transform | --program-transfor \
+ | --program-transfo | --program-transf \
+ | --program-trans | --program-tran \
+ | --progr-tra | --program-tr | --program-t)
+ ac_prev=program_transform_name ;;
+ -program-transform-name=* | --program-transform-name=* \
+ | --program-transform-nam=* | --program-transform-na=* \
+ | --program-transform-n=* | --program-transform-=* \
+ | --program-transform=* | --program-transfor=* \
+ | --program-transfo=* | --program-transf=* \
+ | --program-trans=* | --program-tran=* \
+ | --progr-tra=* | --program-tr=* | --program-t=*)
+ program_transform_name=$ac_optarg ;;
+
+ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
+ ac_prev=pdfdir ;;
+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
+ pdfdir=$ac_optarg ;;
+
+ -psdir | --psdir | --psdi | --psd | --ps)
+ ac_prev=psdir ;;
+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
+ psdir=$ac_optarg ;;
+
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ silent=yes ;;
+
+ -runstatedir | --runstatedir | --runstatedi | --runstated \
+ | --runstate | --runstat | --runsta | --runst | --runs \
+ | --run | --ru | --r)
+ ac_prev=runstatedir ;;
+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
+ | --run=* | --ru=* | --r=*)
+ runstatedir=$ac_optarg ;;
+
+ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+ ac_prev=sbindir ;;
+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+ | --sbi=* | --sb=*)
+ sbindir=$ac_optarg ;;
+
+ -sharedstatedir | --sharedstatedir | --sharedstatedi \
+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+ | --sharedst | --shareds | --shared | --share | --shar \
+ | --sha | --sh)
+ ac_prev=sharedstatedir ;;
+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+ | --sha=* | --sh=*)
+ sharedstatedir=$ac_optarg ;;
+
+ -site | --site | --sit)
+ ac_prev=site ;;
+ -site=* | --site=* | --sit=*)
+ site=$ac_optarg ;;
+
+ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+ ac_prev=srcdir ;;
+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+ srcdir=$ac_optarg ;;
+
+ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+ | --syscon | --sysco | --sysc | --sys | --sy)
+ ac_prev=sysconfdir ;;
+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+ sysconfdir=$ac_optarg ;;
+
+ -target | --target | --targe | --targ | --tar | --ta | --t)
+ ac_prev=target_alias ;;
+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+ target_alias=$ac_optarg ;;
+
+ -v | -verbose | --verbose | --verbos | --verbo | --verb)
+ verbose=yes ;;
+
+ -version | --version | --versio | --versi | --vers | -V)
+ ac_init_version=: ;;
+
+ -with-* | --with-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: \`$ac_useropt'"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=\$ac_optarg ;;
+
+ -without-* | --without-*)
+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+ # Reject names that are not valid shell variable names.
+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+ as_fn_error $? "invalid package name: \`$ac_useropt'"
+ ac_useropt_orig=$ac_useropt
+ ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
+ case $ac_user_opts in
+ *"
+"with_$ac_useropt"
+"*) ;;
+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+ ac_unrecognized_sep=', ';;
+ esac
+ eval with_$ac_useropt=no ;;
+
+ --x)
+ # Obsolete; use --with-x.
+ with_x=yes ;;
+
+ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+ | --x-incl | --x-inc | --x-in | --x-i)
+ ac_prev=x_includes ;;
+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+ x_includes=$ac_optarg ;;
+
+ -x-libraries | --x-libraries | --x-librarie | --x-librari \
+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+ ac_prev=x_libraries ;;
+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+ x_libraries=$ac_optarg ;;
+
+ -*) as_fn_error $? "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information"
+ ;;
+
+ *=*)
+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
+ # Reject names that are not valid shell variable names.
+ case $ac_envvar in #(
+ '' | [0-9]* | *[!_$as_cr_alnum]* )
+ as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+ esac
+ eval $ac_envvar=\$ac_optarg
+ export $ac_envvar ;;
+
+ *)
+ # FIXME: should be removed in autoconf 3.0.
+ printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2
+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
+ printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2
+ : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
+ ;;
+
+ esac
+done
+
+if test -n "$ac_prev"; then
+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`
+ as_fn_error $? "missing argument to $ac_option"
+fi
+
+if test -n "$ac_unrecognized_opts"; then
+ case $enable_option_checking in
+ no) ;;
+ fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
+ *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+ esac
+fi
+
+# Check all directory arguments for consistency.
+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
+ datadir sysconfdir sharedstatedir localstatedir includedir \
+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
+ libdir localedir mandir runstatedir
+do
+ eval ac_val=\$$ac_var
+ # Remove trailing slashes.
+ case $ac_val in
+ */ )
+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+ eval $ac_var=\$ac_val;;
+ esac
+ # Be sure to have absolute directory names.
+ case $ac_val in
+ [\\/$]* | ?:[\\/]* ) continue;;
+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
+ esac
+ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
+done
+
+# There might be people who depend on the old broken behavior: `$host'
+# used to hold the argument of --host etc.
+# FIXME: To remove some day.
+build=$build_alias
+host=$host_alias
+target=$target_alias
+
+# FIXME: To remove some day.
+if test "x$host_alias" != x; then
+ if test "x$build_alias" = x; then
+ cross_compiling=maybe
+ elif test "x$build_alias" != "x$host_alias"; then
+ cross_compiling=yes
+ fi
+fi
+
+ac_tool_prefix=
+test -n "$host_alias" && ac_tool_prefix=$host_alias-
+
+test "$silent" = yes && exec 6>/dev/null
+
+
+ac_pwd=`pwd` && test -n "$ac_pwd" &&
+ac_ls_di=`ls -di .` &&
+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
+ as_fn_error $? "working directory cannot be determined"
+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
+ as_fn_error $? "pwd does not report name of working directory"
+
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+ ac_srcdir_defaulted=yes
+ # Try the directory containing this script, then the parent directory.
+ ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_myself" : 'X\(//\)[^/]' \| \
+ X"$as_myself" : 'X\(//\)$' \| \
+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+printf "%s\n" X"$as_myself" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ srcdir=$ac_confdir
+ if test ! -r "$srcdir/$ac_unique_file"; then
+ srcdir=..
+ fi
+else
+ ac_srcdir_defaulted=no
+fi
+if test ! -r "$srcdir/$ac_unique_file"; then
+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
+ as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
+fi
+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_abs_confdir=`(
+ cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
+ pwd)`
+# When building in place, set srcdir=.
+if test "$ac_abs_confdir" = "$ac_pwd"; then
+ srcdir=.
+fi
+# Remove unnecessary trailing slashes from srcdir.
+# Double slashes in file names in object file debugging info
+# mess up M-x gdb in Emacs.
+case $srcdir in
+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
+esac
+for ac_var in $ac_precious_vars; do
+ eval ac_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_env_${ac_var}_value=\$${ac_var}
+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
+ eval ac_cv_env_${ac_var}_value=\$${ac_var}
+done
+
+#
+# Report the --help message.
+#
+if test "$ac_init_help" = "long"; then
+ # Omit some internal or obsolete options to make the list less imposing.
+ # This message is too long to be a string in the A/UX 3.1 sh.
+ cat <<_ACEOF
+\`configure' configures procps-ng 4.0.4 to adapt to many kinds of systems.
+
+Usage: $0 [OPTION]... [VAR=VALUE]...
+
+To assign environment variables (e.g., CC, CFLAGS...), specify them as
+VAR=VALUE. See below for descriptions of some of the useful variables.
+
+Defaults for the options are specified in brackets.
+
+Configuration:
+ -h, --help display this help and exit
+ --help=short display options specific to this package
+ --help=recursive display the short help of all the included packages
+ -V, --version display version information and exit
+ -q, --quiet, --silent do not print \`checking ...' messages
+ --cache-file=FILE cache test results in FILE [disabled]
+ -C, --config-cache alias for \`--cache-file=config.cache'
+ -n, --no-create do not create output files
+ --srcdir=DIR find the sources in DIR [configure dir or \`..']
+
+Installation directories:
+ --prefix=PREFIX install architecture-independent files in PREFIX
+ [$ac_default_prefix]
+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
+ [PREFIX]
+
+By default, \`make install' will install all the files in
+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify
+an installation prefix other than \`$ac_default_prefix' using \`--prefix',
+for instance \`--prefix=\$HOME'.
+
+For better control, use the options below.
+
+Fine tuning of the installation directories:
+ --bindir=DIR user executables [EPREFIX/bin]
+ --sbindir=DIR system admin executables [EPREFIX/sbin]
+ --libexecdir=DIR program executables [EPREFIX/libexec]
+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]
+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
+ --libdir=DIR object code libraries [EPREFIX/lib]
+ --includedir=DIR C header files [PREFIX/include]
+ --oldincludedir=DIR C header files for non-gcc [/usr/include]
+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]
+ --infodir=DIR info documentation [DATAROOTDIR/info]
+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]
+ --mandir=DIR man documentation [DATAROOTDIR/man]
+ --docdir=DIR documentation root [DATAROOTDIR/doc/procps-ng]
+ --htmldir=DIR html documentation [DOCDIR]
+ --dvidir=DIR dvi documentation [DOCDIR]
+ --pdfdir=DIR pdf documentation [DOCDIR]
+ --psdir=DIR ps documentation [DOCDIR]
+_ACEOF
+
+ cat <<\_ACEOF
+
+Program names:
+ --program-prefix=PREFIX prepend PREFIX to installed program names
+ --program-suffix=SUFFIX append SUFFIX to installed program names
+ --program-transform-name=PROGRAM run sed PROGRAM on installed program names
+
+System types:
+ --build=BUILD configure for building on BUILD [guessed]
+ --host=HOST cross-compile to build programs to run on HOST [BUILD]
+_ACEOF
+fi
+
+if test -n "$ac_init_help"; then
+ case $ac_init_help in
+ short | recursive ) echo "Configuration of procps-ng 4.0.4:";;
+ esac
+ cat <<\_ACEOF
+
+Optional Features:
+ --disable-option-checking ignore unrecognized --enable/--with options
+ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
+ --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
+ --enable-silent-rules less verbose build output (undo: "make V=1")
+ --disable-silent-rules verbose build output (undo: "make V=0")
+ --enable-dependency-tracking
+ do not reject slow dependency extractors
+ --disable-dependency-tracking
+ speeds up one-time build
+ --disable-largefile omit support for large files
+ --disable-nls do not use Native Language Support
+ --enable-shared[=PKGS] build shared libraries [default=yes]
+ --enable-static[=PKGS] build static libraries [default=yes]
+ --enable-fast-install[=PKGS]
+ optimize for fast installation [default=yes]
+ --disable-libtool-lock avoid locking (might break parallel builds)
+ --disable-rpath do not hardcode runtime library paths
+ --enable-watch8bit enable watch to be 8bit clean (requires ncursesw)
+ --enable-colorwatch enable watch to use color by default
+ --enable-libselinux enable libselinux
+ --enable-harden-flags enable hardened compilier and linker flags
+ --disable-pidof do not build pidof
+ --disable-kill do not build kill
+ --disable-w do not build w
+ --enable-skill build skill and snice
+ --enable-examples add example files to installation
+ --enable-sigwinch reduce impact of x-windows resize operations on top
+ --enable-wide-percent provide extra precision under %CPU and %MEM for top
+ --enable-wide-memory provide extra precision under memory fields for top
+ --disable-modern-top disable new startup defaults, return to original top
+ --disable-numa disable NUMA/Node support in top
+ --enable-w-from enable w from field by default
+ --disable-whining do not print unnecessary warnings (slackware-ism)
+
+Optional Packages:
+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
+ --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use
+ both]
+ --with-aix-soname=aix|svr4|both
+ shared library versioning (aka "SONAME") variant to
+ provide on AIX, [default=aix].
+ --with-gnu-ld assume the C compiler uses GNU ld [default=no]
+ --with-sysroot[=DIR] Search for dependent libraries within DIR (or the
+ compiler's sysroot if not specified).
+ --with-gnu-ld assume the C compiler uses GNU ld default=no
+ --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib
+ --without-libiconv-prefix don't search for libiconv in includedir and libdir
+ --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib
+ --without-libintl-prefix don't search for libintl in includedir and libdir
+ --without-ncurses build only applications not needing ncurses
+ --with-systemd enable systemd support
+ --with-elogind enable elogind support
+
+Some influential environment variables:
+ CC C compiler command
+ CFLAGS C compiler flags
+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
+ nonstandard directory <lib dir>
+ LIBS libraries to pass to the linker, e.g. -l<library>
+ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
+ you have headers in a nonstandard directory <include dir>
+ CPP C preprocessor
+ PKG_CONFIG path to pkg-config utility
+ PKG_CONFIG_PATH
+ directories to add to pkg-config's search path
+ PKG_CONFIG_LIBDIR
+ path overriding pkg-config's built-in search path
+ LT_SYS_LIBRARY_PATH
+ User-defined run-time library search path.
+ NCURSES_CFLAGS
+ C compiler flags for NCURSES, overriding pkg-config
+ NCURSES_LIBS
+ linker flags for NCURSES, overriding pkg-config
+ SYSTEMD_CFLAGS
+ C compiler flags for SYSTEMD, overriding pkg-config
+ SYSTEMD_LIBS
+ linker flags for SYSTEMD, overriding pkg-config
+ ELOGIND_CFLAGS
+ C compiler flags for ELOGIND, overriding pkg-config
+ ELOGIND_LIBS
+ linker flags for ELOGIND, overriding pkg-config
+
+Use these variables to override the choices made by `configure' or to help
+it to find libraries and programs with nonstandard names/locations.
+
+Report bugs to <procps@freelists.org>.
+procps-ng home page: <https://gitlab.com/procps-ng/procps>.
+_ACEOF
+ac_status=$?
+fi
+
+if test "$ac_init_help" = "recursive"; then
+ # If there are subdirs, report their specific --help.
+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
+ test -d "$ac_dir" ||
+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+ continue
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+ cd "$ac_dir" || { ac_status=$?; continue; }
+ # Check for configure.gnu first; this name is used for a wrapper for
+ # Metaconfig's "Configure" on case-insensitive file systems.
+ if test -f "$ac_srcdir/configure.gnu"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive
+ elif test -f "$ac_srcdir/configure"; then
+ echo &&
+ $SHELL "$ac_srcdir/configure" --help=recursive
+ else
+ printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+ fi || ac_status=$?
+ cd "$ac_pwd" || { ac_status=$?; break; }
+ done
+fi
+
+test -n "$ac_init_help" && exit $ac_status
+if $ac_init_version; then
+ cat <<\_ACEOF
+procps-ng configure 4.0.4
+generated by GNU Autoconf 2.71
+
+Copyright (C) 2021 Free Software Foundation, Inc.
+This configure script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it.
+_ACEOF
+ exit
+fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest.beam
+ if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest.$ac_objext
+then :
+ ac_retval=0
+else $as_nop
+ printf "%s\n" "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+printf %s "checking for $2... " >&6; }
+if eval test \${$3+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ eval "$3=yes"
+else $as_nop
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that
+# executables *can* be run.
+ac_fn_c_try_run ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }
+then :
+ ac_retval=0
+else $as_nop
+ printf "%s\n" "$as_me: program exited with status $ac_status" >&5
+ printf "%s\n" "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=$ac_status
+fi
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } > conftest.i && {
+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ }
+then :
+ ac_retval=0
+else $as_nop
+ printf "%s\n" "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
+# -------------------------------------------
+# Tests whether TYPE exists after having included INCLUDES, setting cache
+# variable VAR accordingly.
+ac_fn_c_check_type ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+printf %s "checking for $2... " >&6; }
+if eval test \${$3+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ eval "$3=no"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main (void)
+{
+if (sizeof ($2))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main (void)
+{
+if (sizeof (($2)))
+ return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+else $as_nop
+ eval "$3=yes"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_type
+
+# ac_fn_c_find_intX_t LINENO BITS VAR
+# -----------------------------------
+# Finds a signed integer type with width BITS, setting cache variable VAR
+# accordingly.
+ac_fn_c_find_intX_t ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for int$2_t" >&5
+printf %s "checking for int$2_t... " >&6; }
+if eval test \${$3+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ eval "$3=no"
+ # Order is important - never check a type that is potentially smaller
+ # than half of the expected target width.
+ for ac_type in int$2_t 'int' 'long int' \
+ 'long long int' 'short int' 'signed char'; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+ enum { N = $2 / 2 - 1 };
+int
+main (void)
+{
+static int test_array [1 - 2 * !(0 < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1))];
+test_array [0] = 0;
+return test_array [0];
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+ enum { N = $2 / 2 - 1 };
+int
+main (void)
+{
+static int test_array [1 - 2 * !(($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 1)
+ < ($ac_type) ((((($ac_type) 1 << N) << N) - 1) * 2 + 2))];
+test_array [0] = 0;
+return test_array [0];
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+else $as_nop
+ case $ac_type in #(
+ int$2_t) :
+ eval "$3=yes" ;; #(
+ *) :
+ eval "$3=\$ac_type" ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ if eval test \"x\$"$3"\" = x"no"
+then :
+
+else $as_nop
+ break
+fi
+ done
+fi
+eval ac_res=\$$3
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_find_intX_t
+
+# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
+# ----------------------------------------------------
+# Tries to find if the field MEMBER exists in type AGGR, after including
+# INCLUDES, setting cache variable VAR accordingly.
+ac_fn_c_check_member ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
+printf %s "checking for $2.$3... " >&6; }
+if eval test \${$4+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$5
+int
+main (void)
+{
+static $2 ac_aggr;
+if (ac_aggr.$3)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ eval "$4=yes"
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$5
+int
+main (void)
+{
+static $2 ac_aggr;
+if (sizeof ac_aggr.$3)
+return 0;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ eval "$4=yes"
+else $as_nop
+ eval "$4=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+eval ac_res=\$$4
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_member
+
+# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR
+# ------------------------------------------------------------------
+# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR
+# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR.
+ac_fn_check_decl ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ as_decl_name=`echo $2|sed 's/ *(.*//'`
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5
+printf %s "checking whether $as_decl_name is declared... " >&6; }
+if eval test \${$3+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`
+ eval ac_save_FLAGS=\$$6
+ as_fn_append $6 " $5"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$4
+int
+main (void)
+{
+#ifndef $as_decl_name
+#ifdef __cplusplus
+ (void) $as_decl_use;
+#else
+ (void) $as_decl_name;
+#endif
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ eval "$3=yes"
+else $as_nop
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ eval $6=\$ac_save_FLAGS
+
+fi
+eval ac_res=\$$3
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_check_decl
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext
+ if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ grep -v '^ *+' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ mv -f conftest.er1 conftest.err
+ fi
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && {
+ test -z "$ac_c_werror_flag" ||
+ test ! -s conftest.err
+ } && test -s conftest$ac_exeext && {
+ test "$cross_compiling" = yes ||
+ test -x conftest$ac_exeext
+ }
+then :
+ ac_retval=0
+else $as_nop
+ printf "%s\n" "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ ac_retval=1
+fi
+ # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+ # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+ # interfere with the next link command; also delete a directory that is
+ # left behind by Apple's compiler. We do this before executing the actions.
+ rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+ as_fn_set_status $ac_retval
+
+} # ac_fn_c_try_link
+
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+ as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+printf %s "checking for $2... " >&6; }
+if eval test \${$3+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+ For example, HP-UX 11i <limits.h> declares gettimeofday. */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+ which can conflict with char $2 (); below. */
+
+#include <limits.h>
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+ to always fail with ENOSYS. Some functions are actually named
+ something starting with __ and the normal name is an alias. */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main (void)
+{
+return $2 ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ eval "$3=yes"
+else $as_nop
+ eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+printf "%s\n" "$ac_res" >&6; }
+ eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
+
+} # ac_fn_c_check_func
+ac_configure_args_raw=
+for ac_arg
+do
+ case $ac_arg in
+ *\'*)
+ ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append ac_configure_args_raw " '$ac_arg'"
+done
+
+case $ac_configure_args_raw in
+ *$as_nl*)
+ ac_safe_unquote= ;;
+ *)
+ ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab.
+ ac_unsafe_a="$ac_unsafe_z#~"
+ ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g"
+ ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;;
+esac
+
+cat >config.log <<_ACEOF
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+
+It was created by procps-ng $as_me 4.0.4, which was
+generated by GNU Autoconf 2.71. Invocation command line was
+
+ $ $0$ac_configure_args_raw
+
+_ACEOF
+exec 5>>config.log
+{
+cat <<_ASUNAME
+## --------- ##
+## Platform. ##
+## --------- ##
+
+hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
+uname -m = `(uname -m) 2>/dev/null || echo unknown`
+uname -r = `(uname -r) 2>/dev/null || echo unknown`
+uname -s = `(uname -s) 2>/dev/null || echo unknown`
+uname -v = `(uname -v) 2>/dev/null || echo unknown`
+
+/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`
+
+/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`
+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`
+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`
+
+_ASUNAME
+
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ printf "%s\n" "PATH: $as_dir"
+ done
+IFS=$as_save_IFS
+
+} >&5
+
+cat >&5 <<_ACEOF
+
+
+## ----------- ##
+## Core tests. ##
+## ----------- ##
+
+_ACEOF
+
+
+# Keep a trace of the command line.
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Strip out --silent because we don't want to record it for future runs.
+# Also quote any args containing shell meta-characters.
+# Make two passes to allow for proper duplicate-argument suppression.
+ac_configure_args=
+ac_configure_args0=
+ac_configure_args1=
+ac_must_keep_next=false
+for ac_pass in 1 2
+do
+ for ac_arg
+ do
+ case $ac_arg in
+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil)
+ continue ;;
+ *\'*)
+ ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ case $ac_pass in
+ 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
+ 2)
+ as_fn_append ac_configure_args1 " '$ac_arg'"
+ if test $ac_must_keep_next = true; then
+ ac_must_keep_next=false # Got value, back to normal.
+ else
+ case $ac_arg in
+ *=* | --config-cache | -C | -disable-* | --disable-* \
+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
+ | -with-* | --with-* | -without-* | --without-* | --x)
+ case "$ac_configure_args0 " in
+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
+ esac
+ ;;
+ -* ) ac_must_keep_next=true ;;
+ esac
+ fi
+ as_fn_append ac_configure_args " '$ac_arg'"
+ ;;
+ esac
+ done
+done
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
+
+# When interrupted or exit'd, cleanup temporary files, and complete
+# config.log. We remove comments because anyway the quotes in there
+# would cause problems or look ugly.
+# WARNING: Use '\'' to represent an apostrophe within the trap.
+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
+trap 'exit_status=$?
+ # Sanitize IFS.
+ IFS=" "" $as_nl"
+ # Save into config.log some information that might help in debugging.
+ {
+ echo
+
+ printf "%s\n" "## ---------------- ##
+## Cache variables. ##
+## ---------------- ##"
+ echo
+ # The following way of writing the cache mishandles newlines in values,
+(
+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+ (set) 2>&1 |
+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ sed -n \
+ "s/'\''/'\''\\\\'\'''\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
+ ;; #(
+ *)
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+)
+ echo
+
+ printf "%s\n" "## ----------------- ##
+## Output variables. ##
+## ----------------- ##"
+ echo
+ for ac_var in $ac_subst_vars
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ printf "%s\n" "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+
+ if test -n "$ac_subst_files"; then
+ printf "%s\n" "## ------------------- ##
+## File substitutions. ##
+## ------------------- ##"
+ echo
+ for ac_var in $ac_subst_files
+ do
+ eval ac_val=\$$ac_var
+ case $ac_val in
+ *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+ esac
+ printf "%s\n" "$ac_var='\''$ac_val'\''"
+ done | sort
+ echo
+ fi
+
+ if test -s confdefs.h; then
+ printf "%s\n" "## ----------- ##
+## confdefs.h. ##
+## ----------- ##"
+ echo
+ cat confdefs.h
+ echo
+ fi
+ test "$ac_signal" != 0 &&
+ printf "%s\n" "$as_me: caught signal $ac_signal"
+ printf "%s\n" "$as_me: exit $exit_status"
+ } >&5
+ rm -f core *.core core.conftest.* &&
+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
+ exit $exit_status
+' 0
+for ac_signal in 1 2 13 15; do
+ trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
+done
+ac_signal=0
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+rm -f -r conftest* confdefs.h
+
+printf "%s\n" "/* confdefs.h */" > confdefs.h
+
+# Predefined preprocessor variables.
+
+printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h
+
+printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h
+
+printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h
+
+printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h
+
+printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h
+
+printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h
+
+
+# Let the site file select an alternate cache file if it wants to.
+# Prefer an explicitly selected file to automatically selected ones.
+if test -n "$CONFIG_SITE"; then
+ ac_site_files="$CONFIG_SITE"
+elif test "x$prefix" != xNONE; then
+ ac_site_files="$prefix/share/config.site $prefix/etc/config.site"
+else
+ ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+fi
+
+for ac_site_file in $ac_site_files
+do
+ case $ac_site_file in #(
+ */*) :
+ ;; #(
+ *) :
+ ac_site_file=./$ac_site_file ;;
+esac
+ if test -f "$ac_site_file" && test -r "$ac_site_file"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
+printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}
+ sed 's/^/| /' "$ac_site_file" >&5
+ . "$ac_site_file" \
+ || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "failed to load site script $ac_site_file
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+done
+
+if test -r "$cache_file"; then
+ # Some versions of bash will fail to source /dev/null (special files
+ # actually), so we avoid doing that. DJGPP emulates it as a regular file.
+ if test /dev/null != "$cache_file" && test -f "$cache_file"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
+printf "%s\n" "$as_me: loading cache $cache_file" >&6;}
+ case $cache_file in
+ [\\/]* | ?:[\\/]* ) . "$cache_file";;
+ *) . "./$cache_file";;
+ esac
+ fi
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
+printf "%s\n" "$as_me: creating cache $cache_file" >&6;}
+ >$cache_file
+fi
+
+as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H"
+# Test code for whether the C compiler supports C89 (global declarations)
+ac_c_conftest_c89_globals='
+/* Does the compiler advertise C89 conformance?
+ Do not test the value of __STDC__, because some compilers set it to 0
+ while being otherwise adequately conformant. */
+#if !defined __STDC__
+# error "Compiler does not advertise C89 conformance"
+#endif
+
+#include <stddef.h>
+#include <stdarg.h>
+struct stat;
+/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */
+struct buf { int x; };
+struct buf * (*rcsopen) (struct buf *, struct stat *, int);
+static char *e (p, i)
+ char **p;
+ int i;
+{
+ return p[i];
+}
+static char *f (char * (*g) (char **, int), char **p, ...)
+{
+ char *s;
+ va_list v;
+ va_start (v,p);
+ s = g (p, va_arg (v,int));
+ va_end (v);
+ return s;
+}
+
+/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has
+ function prototypes and stuff, but not \xHH hex character constants.
+ These do not provoke an error unfortunately, instead are silently treated
+ as an "x". The following induces an error, until -std is added to get
+ proper ANSI mode. Curiously \x00 != x always comes out true, for an
+ array size at least. It is necessary to write \x00 == 0 to get something
+ that is true only with -std. */
+int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1];
+
+/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
+ inside strings and character constants. */
+#define FOO(x) '\''x'\''
+int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1];
+
+int test (int i, double x);
+struct s1 {int (*f) (int a);};
+struct s2 {int (*f) (double a);};
+int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int),
+ int, int);'
+
+# Test code for whether the C compiler supports C89 (body of main).
+ac_c_conftest_c89_main='
+ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]);
+'
+
+# Test code for whether the C compiler supports C99 (global declarations)
+ac_c_conftest_c99_globals='
+// Does the compiler advertise C99 conformance?
+#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
+# error "Compiler does not advertise C99 conformance"
+#endif
+
+#include <stdbool.h>
+extern int puts (const char *);
+extern int printf (const char *, ...);
+extern int dprintf (int, const char *, ...);
+extern void *malloc (size_t);
+
+// Check varargs macros. These examples are taken from C99 6.10.3.5.
+// dprintf is used instead of fprintf to avoid needing to declare
+// FILE and stderr.
+#define debug(...) dprintf (2, __VA_ARGS__)
+#define showlist(...) puts (#__VA_ARGS__)
+#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__))
+static void
+test_varargs_macros (void)
+{
+ int x = 1234;
+ int y = 5678;
+ debug ("Flag");
+ debug ("X = %d\n", x);
+ showlist (The first, second, and third items.);
+ report (x>y, "x is %d but y is %d", x, y);
+}
+
+// Check long long types.
+#define BIG64 18446744073709551615ull
+#define BIG32 4294967295ul
+#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0)
+#if !BIG_OK
+ #error "your preprocessor is broken"
+#endif
+#if BIG_OK
+#else
+ #error "your preprocessor is broken"
+#endif
+static long long int bignum = -9223372036854775807LL;
+static unsigned long long int ubignum = BIG64;
+
+struct incomplete_array
+{
+ int datasize;
+ double data[];
+};
+
+struct named_init {
+ int number;
+ const wchar_t *name;
+ double average;
+};
+
+typedef const char *ccp;
+
+static inline int
+test_restrict (ccp restrict text)
+{
+ // See if C++-style comments work.
+ // Iterate through items via the restricted pointer.
+ // Also check for declarations in for loops.
+ for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i)
+ continue;
+ return 0;
+}
+
+// Check varargs and va_copy.
+static bool
+test_varargs (const char *format, ...)
+{
+ va_list args;
+ va_start (args, format);
+ va_list args_copy;
+ va_copy (args_copy, args);
+
+ const char *str = "";
+ int number = 0;
+ float fnumber = 0;
+
+ while (*format)
+ {
+ switch (*format++)
+ {
+ case '\''s'\'': // string
+ str = va_arg (args_copy, const char *);
+ break;
+ case '\''d'\'': // int
+ number = va_arg (args_copy, int);
+ break;
+ case '\''f'\'': // float
+ fnumber = va_arg (args_copy, double);
+ break;
+ default:
+ break;
+ }
+ }
+ va_end (args_copy);
+ va_end (args);
+
+ return *str && number && fnumber;
+}
+'
+
+# Test code for whether the C compiler supports C99 (body of main).
+ac_c_conftest_c99_main='
+ // Check bool.
+ _Bool success = false;
+ success |= (argc != 0);
+
+ // Check restrict.
+ if (test_restrict ("String literal") == 0)
+ success = true;
+ char *restrict newvar = "Another string";
+
+ // Check varargs.
+ success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234);
+ test_varargs_macros ();
+
+ // Check flexible array members.
+ struct incomplete_array *ia =
+ malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10));
+ ia->datasize = 10;
+ for (int i = 0; i < ia->datasize; ++i)
+ ia->data[i] = i * 1.234;
+
+ // Check named initializers.
+ struct named_init ni = {
+ .number = 34,
+ .name = L"Test wide string",
+ .average = 543.34343,
+ };
+
+ ni.number = 58;
+
+ int dynamic_array[ni.number];
+ dynamic_array[0] = argv[0][0];
+ dynamic_array[ni.number - 1] = 543;
+
+ // work around unused variable warnings
+ ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\''
+ || dynamic_array[ni.number - 1] != 543);
+'
+
+# Test code for whether the C compiler supports C11 (global declarations)
+ac_c_conftest_c11_globals='
+// Does the compiler advertise C11 conformance?
+#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L
+# error "Compiler does not advertise C11 conformance"
+#endif
+
+// Check _Alignas.
+char _Alignas (double) aligned_as_double;
+char _Alignas (0) no_special_alignment;
+extern char aligned_as_int;
+char _Alignas (0) _Alignas (int) aligned_as_int;
+
+// Check _Alignof.
+enum
+{
+ int_alignment = _Alignof (int),
+ int_array_alignment = _Alignof (int[100]),
+ char_alignment = _Alignof (char)
+};
+_Static_assert (0 < -_Alignof (int), "_Alignof is signed");
+
+// Check _Noreturn.
+int _Noreturn does_not_return (void) { for (;;) continue; }
+
+// Check _Static_assert.
+struct test_static_assert
+{
+ int x;
+ _Static_assert (sizeof (int) <= sizeof (long int),
+ "_Static_assert does not work in struct");
+ long int y;
+};
+
+// Check UTF-8 literals.
+#define u8 syntax error!
+char const utf8_literal[] = u8"happens to be ASCII" "another string";
+
+// Check duplicate typedefs.
+typedef long *long_ptr;
+typedef long int *long_ptr;
+typedef long_ptr long_ptr;
+
+// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1.
+struct anonymous
+{
+ union {
+ struct { int i; int j; };
+ struct { int k; long int l; } w;
+ };
+ int m;
+} v1;
+'
+
+# Test code for whether the C compiler supports C11 (body of main).
+ac_c_conftest_c11_main='
+ _Static_assert ((offsetof (struct anonymous, i)
+ == offsetof (struct anonymous, w.k)),
+ "Anonymous union alignment botch");
+ v1.i = 2;
+ v1.w.k = 5;
+ ok |= v1.i != 5;
+'
+
+# Test code for whether the C compiler supports C11 (complete).
+ac_c_conftest_c11_program="${ac_c_conftest_c89_globals}
+${ac_c_conftest_c99_globals}
+${ac_c_conftest_c11_globals}
+
+int
+main (int argc, char **argv)
+{
+ int ok = 0;
+ ${ac_c_conftest_c89_main}
+ ${ac_c_conftest_c99_main}
+ ${ac_c_conftest_c11_main}
+ return ok;
+}
+"
+
+# Test code for whether the C compiler supports C99 (complete).
+ac_c_conftest_c99_program="${ac_c_conftest_c89_globals}
+${ac_c_conftest_c99_globals}
+
+int
+main (int argc, char **argv)
+{
+ int ok = 0;
+ ${ac_c_conftest_c89_main}
+ ${ac_c_conftest_c99_main}
+ return ok;
+}
+"
+
+# Test code for whether the C compiler supports C89 (complete).
+ac_c_conftest_c89_program="${ac_c_conftest_c89_globals}
+
+int
+main (int argc, char **argv)
+{
+ int ok = 0;
+ ${ac_c_conftest_c89_main}
+ return ok;
+}
+"
+
+as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H"
+as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H"
+as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H"
+as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H"
+as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H"
+as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H"
+as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H"
+as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H"
+as_fn_append ac_header_c_list " wchar.h wchar_h HAVE_WCHAR_H"
+as_fn_append ac_header_c_list " minix/config.h minix_config_h HAVE_MINIX_CONFIG_H"
+as_fn_append ac_header_c_list " vfork.h vfork_h HAVE_VFORK_H"
+as_fn_append ac_func_c_list " fork HAVE_FORK"
+as_fn_append ac_func_c_list " vfork HAVE_VFORK"
+as_fn_append ac_header_c_list " sys/param.h sys_param_h HAVE_SYS_PARAM_H"
+as_fn_append ac_func_c_list " getpagesize HAVE_GETPAGESIZE"
+
+# Auxiliary files required by this configure script.
+ac_aux_files="config.guess config.sub ltmain.sh compile missing install-sh"
+
+# Locations in which to look for auxiliary files.
+ac_aux_dir_candidates="${srcdir}${PATH_SEPARATOR}${srcdir}/..${PATH_SEPARATOR}${srcdir}/../.."
+
+# Search for a directory containing all of the required auxiliary files,
+# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates.
+# If we don't find one directory that contains all the files we need,
+# we report the set of missing files from the *first* directory in
+# $ac_aux_dir_candidates and give up.
+ac_missing_aux_files=""
+ac_first_candidate=:
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
+for as_dir in $ac_aux_dir_candidates
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ as_found=:
+
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5
+ ac_aux_dir_found=yes
+ ac_install_sh=
+ for ac_aux in $ac_aux_files
+ do
+ # As a special case, if "install-sh" is required, that requirement
+ # can be satisfied by any of "install-sh", "install.sh", or "shtool",
+ # and $ac_install_sh is set appropriately for whichever one is found.
+ if test x"$ac_aux" = x"install-sh"
+ then
+ if test -f "${as_dir}install-sh"; then
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5
+ ac_install_sh="${as_dir}install-sh -c"
+ elif test -f "${as_dir}install.sh"; then
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5
+ ac_install_sh="${as_dir}install.sh -c"
+ elif test -f "${as_dir}shtool"; then
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5
+ ac_install_sh="${as_dir}shtool install -c"
+ else
+ ac_aux_dir_found=no
+ if $ac_first_candidate; then
+ ac_missing_aux_files="${ac_missing_aux_files} install-sh"
+ else
+ break
+ fi
+ fi
+ else
+ if test -f "${as_dir}${ac_aux}"; then
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5
+ else
+ ac_aux_dir_found=no
+ if $ac_first_candidate; then
+ ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}"
+ else
+ break
+ fi
+ fi
+ fi
+ done
+ if test "$ac_aux_dir_found" = yes; then
+ ac_aux_dir="$as_dir"
+ break
+ fi
+ ac_first_candidate=false
+
+ as_found=false
+done
+IFS=$as_save_IFS
+if $as_found
+then :
+
+else $as_nop
+ as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5
+fi
+
+
+# These three variables are undocumented and unsupported,
+# and are intended to be withdrawn in a future Autoconf release.
+# They can cause serious problems if a builder's source tree is in a directory
+# whose full name contains unusual characters.
+if test -f "${ac_aux_dir}config.guess"; then
+ ac_config_guess="$SHELL ${ac_aux_dir}config.guess"
+fi
+if test -f "${ac_aux_dir}config.sub"; then
+ ac_config_sub="$SHELL ${ac_aux_dir}config.sub"
+fi
+if test -f "$ac_aux_dir/configure"; then
+ ac_configure="$SHELL ${ac_aux_dir}configure"
+fi
+
+# Check that the precious variables saved in the cache have kept the same
+# value.
+ac_cache_corrupted=false
+for ac_var in $ac_precious_vars; do
+ eval ac_old_set=\$ac_cv_env_${ac_var}_set
+ eval ac_new_set=\$ac_env_${ac_var}_set
+ eval ac_old_val=\$ac_cv_env_${ac_var}_value
+ eval ac_new_val=\$ac_env_${ac_var}_value
+ case $ac_old_set,$ac_new_set in
+ set,)
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,set)
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+ ac_cache_corrupted=: ;;
+ ,);;
+ *)
+ if test "x$ac_old_val" != "x$ac_new_val"; then
+ # differences in whitespace do not lead to failure.
+ ac_old_val_w=`echo x $ac_old_val`
+ ac_new_val_w=`echo x $ac_new_val`
+ if test "$ac_old_val_w" != "$ac_new_val_w"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
+printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+ ac_cache_corrupted=:
+ else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+ eval $ac_var=\$ac_old_val
+ fi
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5
+printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5
+printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;}
+ fi;;
+ esac
+ # Pass precious variables to config.status.
+ if test "$ac_new_set" = set; then
+ case $ac_new_val in
+ *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+ *) ac_arg=$ac_var=$ac_new_val ;;
+ esac
+ case " $ac_configure_args " in
+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.
+ *) as_fn_append ac_configure_args " '$ac_arg'" ;;
+ esac
+ fi
+done
+if $ac_cache_corrupted; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
+printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}
+ as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file'
+ and start over" "$LINENO" 5
+fi
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+am__api_version='1.16'
+
+
+
+ # Find a good install program. We prefer a C program (faster),
+# so one script is as good as another. But avoid the broken or
+# incompatible versions:
+# SysV /etc/install, /usr/sbin/install
+# SunOS /usr/etc/install
+# IRIX /sbin/install
+# AIX /bin/install
+# AmigaOS /C/install, which installs bootblocks on floppy discs
+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
+# AFS /usr/afsws/bin/install, which mishandles nonexistent args
+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
+# OS/2's system install, which has a completely different semantic
+# ./install, which can be erroneously created by make from ./install.sh.
+# Reject install programs that cannot install multiple files.
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
+printf %s "checking for a BSD-compatible install... " >&6; }
+if test -z "$INSTALL"; then
+if test ${ac_cv_path_install+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ # Account for fact that we put trailing slashes in our PATH walk.
+case $as_dir in #((
+ ./ | /[cC]/* | \
+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
+ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
+ /usr/ucb/* ) ;;
+ *)
+ # OSF1 and SCO ODT 3.0 have their own names for install.
+ # Don't use installbsd from OSF since it installs stuff as root
+ # by default.
+ for ac_prog in ginstall scoinst install; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then
+ if test $ac_prog = install &&
+ grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # AIX install. It has an incompatible calling convention.
+ :
+ elif test $ac_prog = install &&
+ grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
+ # program-specific install script used by HP pwplus--don't use.
+ :
+ else
+ rm -rf conftest.one conftest.two conftest.dir
+ echo one > conftest.one
+ echo two > conftest.two
+ mkdir conftest.dir
+ if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" &&
+ test -s conftest.one && test -s conftest.two &&
+ test -s conftest.dir/conftest.one &&
+ test -s conftest.dir/conftest.two
+ then
+ ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c"
+ break 3
+ fi
+ fi
+ fi
+ done
+ done
+ ;;
+esac
+
+ done
+IFS=$as_save_IFS
+
+rm -rf conftest.one conftest.two conftest.dir
+
+fi
+ if test ${ac_cv_path_install+y}; then
+ INSTALL=$ac_cv_path_install
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for INSTALL within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ INSTALL=$ac_install_sh
+ fi
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
+printf "%s\n" "$INSTALL" >&6; }
+
+# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
+# It thinks the first close brace ends the variable substitution.
+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
+
+test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
+printf %s "checking whether build environment is sane... " >&6; }
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name. Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+ *[\\\"\#\$\&\'\`$am_lf]*)
+ as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+ *[\\\"\#\$\&\'\`$am_lf\ \ ]*)
+ as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;;
+esac
+
+# Do 'set' in a subshell so we don't clobber the current shell's
+# arguments. Must try -L first in case configure is actually a
+# symlink; some systems play weird games with the mod time of symlinks
+# (eg FreeBSD returns the mod time of the symlink's containing
+# directory).
+if (
+ am_has_slept=no
+ for am_try in 1 2; do
+ echo "timestamp, slept: $am_has_slept" > conftest.file
+ set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+ if test "$*" = "X"; then
+ # -L didn't work.
+ set X `ls -t "$srcdir/configure" conftest.file`
+ fi
+ if test "$*" != "X $srcdir/configure conftest.file" \
+ && test "$*" != "X conftest.file $srcdir/configure"; then
+
+ # If neither matched, then we have a broken ls. This can happen
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
+ # broken ls alias from the environment. This has actually
+ # happened. Such a system could not be considered "sane".
+ as_fn_error $? "ls -t appears to fail. Make sure there is not a broken
+ alias in your environment" "$LINENO" 5
+ fi
+ if test "$2" = conftest.file || test $am_try -eq 2; then
+ break
+ fi
+ # Just in case.
+ sleep 1
+ am_has_slept=yes
+ done
+ test "$2" = conftest.file
+ )
+then
+ # Ok.
+ :
+else
+ as_fn_error $? "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+# If we didn't sleep, we still need to ensure time stamps of config.status and
+# generated files are strictly newer.
+am_sleep_pid=
+if grep 'slept: no' conftest.file >/dev/null 2>&1; then
+ ( sleep 1 ) &
+ am_sleep_pid=$!
+fi
+
+rm -f conftest.file
+
+test "$program_prefix" != NONE &&
+ program_transform_name="s&^&$program_prefix&;$program_transform_name"
+# Use a double $ so make ignores it.
+test "$program_suffix" != NONE &&
+ program_transform_name="s&\$&$program_suffix&;$program_transform_name"
+# Double any \ or $.
+# By default was `s,x,x', remove it if useless.
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`printf "%s\n" "$program_transform_name" | sed "$ac_script"`
+
+
+# Expand $ac_aux_dir to an absolute path.
+am_aux_dir=`cd "$ac_aux_dir" && pwd`
+
+
+ if test x"${MISSING+set}" != xset; then
+ MISSING="\${SHELL} '$am_aux_dir/missing'"
+fi
+# Use eval to expand $SHELL
+if eval "$MISSING --is-lightweight"; then
+ am_missing_run="$MISSING "
+else
+ am_missing_run=
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5
+printf "%s\n" "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
+fi
+
+if test x"${install_sh+set}" != xset; then
+ case $am_aux_dir in
+ *\ * | *\ *)
+ install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+ *)
+ install_sh="\${SHELL} $am_aux_dir/install-sh"
+ esac
+fi
+
+# Installed binaries are usually stripped using 'strip' when the user
+# run "make install-strip". However 'strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the 'STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_STRIP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+printf "%s\n" "$STRIP" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_STRIP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+printf "%s\n" "$ac_ct_STRIP" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5
+printf %s "checking for a race-free mkdir -p... " >&6; }
+if test -z "$MKDIR_P"; then
+ if test ${ac_cv_path_mkdir+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_prog in mkdir gmkdir; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext" || continue
+ case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #(
+ 'mkdir ('*'coreutils) '* | \
+ 'BusyBox '* | \
+ 'mkdir (fileutils) '4.1*)
+ ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext
+ break 3;;
+ esac
+ done
+ done
+ done
+IFS=$as_save_IFS
+
+fi
+
+ test -d ./--version && rmdir ./--version
+ if test ${ac_cv_path_mkdir+y}; then
+ MKDIR_P="$ac_cv_path_mkdir -p"
+ else
+ # As a last resort, use the slow shell script. Don't cache a
+ # value for MKDIR_P within a source directory, because that will
+ # break other packages using the cache if that directory is
+ # removed, or if the value is a relative name.
+ MKDIR_P="$ac_install_sh -d"
+ fi
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
+printf "%s\n" "$MKDIR_P" >&6; }
+
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_AWK+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AWK="$ac_prog"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+printf "%s\n" "$AWK" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval test \${ac_cv_prog_make_${ac_make}_set+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+ SET_MAKE=
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+rm -rf .tst 2>/dev/null
+mkdir .tst 2>/dev/null
+if test -d .tst; then
+ am__leading_dot=.
+else
+ am__leading_dot=_
+fi
+rmdir .tst 2>/dev/null
+
+# Check whether --enable-silent-rules was given.
+if test ${enable_silent_rules+y}
+then :
+ enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=1;;
+esac
+am_make=${MAKE-make}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+printf %s "checking whether $am_make supports nested variables... " >&6; }
+if test ${am_cv_make_support_nested_variables+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if printf "%s\n" 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+printf "%s\n" "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+if test "`cd $srcdir && pwd`" != "`pwd`"; then
+ # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
+ # is not polluted with repeated "-I."
+ am__isrc=' -I$(srcdir)'
+ # test to see if srcdir already configured
+ if test -f $srcdir/config.status; then
+ as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
+ fi
+fi
+
+# test whether we have cygpath
+if test -z "$CYGPATH_W"; then
+ if (cygpath --version) >/dev/null 2>/dev/null; then
+ CYGPATH_W='cygpath -w'
+ else
+ CYGPATH_W=echo
+ fi
+fi
+
+
+# Define the identity of the package.
+ PACKAGE='procps-ng'
+ VERSION='4.0.4'
+
+
+printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
+
+
+printf "%s\n" "#define VERSION \"$VERSION\"" >>confdefs.h
+
+# Some tools Automake needs.
+
+ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"}
+
+
+AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"}
+
+
+AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"}
+
+
+AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
+
+
+MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
+
+# For better backward compatibility. To be removed once Automake 1.9.x
+# dies out for good. For more background, see:
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00001.html>
+# <https://lists.gnu.org/archive/html/automake/2012-07/msg00014.html>
+mkdir_p='$(MKDIR_P)'
+
+# We need awk for the "check" target (and possibly the TAP driver). The
+# system "awk" is bad on some platforms.
+# Always define AMTAR for backward compatibility. Yes, it's still used
+# in the wild :-( We should find a proper way to deprecate it ...
+AMTAR='$${TAR-tar}'
+
+
+# We'll loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar pax cpio none'
+
+
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to create a pax tar archive" >&5
+printf %s "checking how to create a pax tar archive... " >&6; }
+
+ # Go ahead even if we have the value already cached. We do so because we
+ # need to set the values for the 'am__tar' and 'am__untar' variables.
+ _am_tools=${am_cv_prog_tar_pax-$_am_tools}
+
+ for _am_tool in $_am_tools; do
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar; do
+ { echo "$as_me:$LINENO: $_am_tar --version" >&5
+ ($_am_tar --version) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } && break
+ done
+ am__tar="$_am_tar --format=posix -chf - "'"$$tardir"'
+ am__tar_="$_am_tar --format=posix -chf - "'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x pax -w "$$tardir"'
+ am__tar_='pax -L -x pax -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H pax -L'
+ am__tar_='find "$tardir" -print | cpio -o -H pax -L'
+ am__untar='cpio -i -H pax -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
+
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_pax}" && break
+
+ # tar/untar a dummy directory, and stop if the command works.
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ { echo "$as_me:$LINENO: tardir=conftest.dir && eval $am__tar_ >conftest.tar" >&5
+ (tardir=conftest.dir && eval $am__tar_ >conftest.tar) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ { echo "$as_me:$LINENO: $am__untar <conftest.tar" >&5
+ ($am__untar <conftest.tar) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ { echo "$as_me:$LINENO: cat conftest.dir/file" >&5
+ (cat conftest.dir/file) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+ done
+ rm -rf conftest.dir
+
+ if test ${am_cv_prog_tar_pax+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ am_cv_prog_tar_pax=$_am_tool
+fi
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_pax" >&5
+printf "%s\n" "$am_cv_prog_tar_pax" >&6; }
+
+
+
+
+
+# Variables for tags utilities; see am/tags.am
+if test -z "$CTAGS"; then
+ CTAGS=ctags
+fi
+
+if test -z "$ETAGS"; then
+ ETAGS=etags
+fi
+
+if test -z "$CSCOPE"; then
+ CSCOPE=cscope
+fi
+
+
+
+# POSIX will say in a future version that running "rm -f" with no argument
+# is OK; and we want to be able to make that assumption in our Makefile
+# recipes. So use an aggressive probe to check that the usage we want is
+# actually supported "in the wild" to an acceptable degree.
+# See automake bug#10828.
+# To make any issue more visible, cause the running configure to be aborted
+# by default if the 'rm' program in use doesn't match our expectations; the
+# user can still override this though.
+if rm -f && rm -fr && rm -rf; then : OK; else
+ cat >&2 <<'END'
+Oops!
+
+Your 'rm' program seems unable to run without file operands specified
+on the command line, even when the '-f' option is present. This is contrary
+to the behaviour of most rm programs out there, and not conforming with
+the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
+
+Please tell bug-automake@gnu.org about your system, including the value
+of your $PATH and any error possibly output before this message. This
+can help us improve future automake versions.
+
+END
+ if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
+ echo 'Configuration will proceed anyway, since you have set the' >&2
+ echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
+ echo >&2
+ else
+ cat >&2 <<'END'
+Aborting the configuration process, to ensure you take notice of the issue.
+
+You can download and install GNU coreutils to get an 'rm' implementation
+that behaves properly: <https://www.gnu.org/software/coreutils/>.
+
+If you want to complete the configuration process using your problematic
+'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
+to "yes", and re-run configure.
+
+END
+ as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
+ fi
+fi
+
+# Check whether --enable-silent-rules was given.
+if test ${enable_silent_rules+y}
+then :
+ enableval=$enable_silent_rules;
+fi
+
+case $enable_silent_rules in # (((
+ yes) AM_DEFAULT_VERBOSITY=0;;
+ no) AM_DEFAULT_VERBOSITY=1;;
+ *) AM_DEFAULT_VERBOSITY=0;;
+esac
+am_make=${MAKE-make}
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
+printf %s "checking whether $am_make supports nested variables... " >&6; }
+if test ${am_cv_make_support_nested_variables+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if printf "%s\n" 'TRUE=$(BAR$(V))
+BAR0=false
+BAR1=true
+V=1
+am__doit:
+ @$(TRUE)
+.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
+ am_cv_make_support_nested_variables=yes
+else
+ am_cv_make_support_nested_variables=no
+fi
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
+printf "%s\n" "$am_cv_make_support_nested_variables" >&6; }
+if test $am_cv_make_support_nested_variables = yes; then
+ AM_V='$(V)'
+ AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+ AM_V=$AM_DEFAULT_VERBOSITY
+ AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+AM_BACKSLASH='\'
+
+
+ac_config_headers="$ac_config_headers config.h"
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Checks for programs.
+
+
+
+
+
+
+
+
+
+DEPDIR="${am__leading_dot}deps"
+
+ac_config_commands="$ac_config_commands depfiles"
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5
+printf %s "checking whether ${MAKE-make} supports the include directive... " >&6; }
+cat > confinc.mk << 'END'
+am__doit:
+ @echo this is the am__doit target >confinc.out
+.PHONY: am__doit
+END
+am__include="#"
+am__quote=
+# BSD make does it like this.
+echo '.include "confinc.mk" # ignored' > confmf.BSD
+# Other make implementations (GNU, Solaris 10, AIX) do it like this.
+echo 'include confinc.mk # ignored' > confmf.GNU
+_am_result=no
+for s in GNU BSD; do
+ { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5
+ (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }
+ case $?:`cat confinc.out 2>/dev/null` in #(
+ '0:this is the am__doit target') :
+ case $s in #(
+ BSD) :
+ am__include='.include' am__quote='"' ;; #(
+ *) :
+ am__include='include' am__quote='' ;;
+esac ;; #(
+ *) :
+ ;;
+esac
+ if test "$am__include" != "#"; then
+ _am_result="yes ($s style)"
+ break
+ fi
+done
+rm -f confinc.* confmf.*
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5
+printf "%s\n" "${_am_result}" >&6; }
+
+# Check whether --enable-dependency-tracking was given.
+if test ${enable_dependency_tracking+y}
+then :
+ enableval=$enable_dependency_tracking;
+fi
+
+if test "x$enable_dependency_tracking" != xno; then
+ am_depcomp="$ac_aux_dir/depcomp"
+ AMDEPBACKSLASH='\'
+ am__nodep='_no'
+fi
+ if test "x$enable_dependency_tracking" != xno; then
+ AMDEP_TRUE=
+ AMDEP_FALSE='#'
+else
+ AMDEP_TRUE='#'
+ AMDEP_FALSE=
+fi
+
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
+set dummy ${ac_tool_prefix}clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}clang"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "clang", so it can be a program name with args.
+set dummy clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="clang"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+fi
+
+
+test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion -version; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+# Try to create an executable without -o first, disregard a.out.
+# It will help us diagnose broken compilers, and finding out an intuition
+# of exeext.
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
+printf %s "checking whether the C compiler works... " >&6; }
+ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
+ac_rmfiles=
+for ac_file in $ac_files
+do
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;
+ esac
+done
+rm -f $ac_rmfiles
+
+if { { ac_try="$ac_link_default"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+ (eval "$ac_link_default") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+then :
+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+# in a Makefile. We should not override ac_cv_exeext if it was cached,
+# so that the user can short-circuit this test for compilers unknown to
+# Autoconf.
+for ac_file in $ac_files ''
+do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
+ ;;
+ [ab].out )
+ # We found the default executable, but exeext='' is most
+ # certainly right.
+ break;;
+ *.* )
+ if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no;
+ then :; else
+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ fi
+ # We set ac_cv_exeext here because the later test for it is not
+ # safe: cross compilers may not add the suffix if given an `-o'
+ # argument, so we may need to know it at that point already.
+ # Even if this section looks crufty: it has the advantage of
+ # actually working.
+ break;;
+ * )
+ break;;
+ esac
+done
+test "$ac_cv_exeext" = no && ac_cv_exeext=
+
+else $as_nop
+ ac_file=''
+fi
+if test -z "$ac_file"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+printf "%s\n" "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "C compiler cannot create executables
+See \`config.log' for more details" "$LINENO" 5; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
+printf %s "checking for C compiler default output file name... " >&6; }
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
+printf "%s\n" "$ac_file" >&6; }
+ac_exeext=$ac_cv_exeext
+
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+ac_clean_files=$ac_clean_files_save
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
+printf %s "checking for suffix of executables... " >&6; }
+if { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+then :
+ # If both `conftest.exe' and `conftest' are `present' (well, observable)
+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will
+# work properly (i.e., refer to `conftest.exe'), while it won't with
+# `rm'.
+for ac_file in conftest.exe conftest conftest.*; do
+ test -f "$ac_file" || continue
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
+ break;;
+ * ) break;;
+ esac
+done
+else $as_nop
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest conftest$ac_cv_exeext
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
+printf "%s\n" "$ac_cv_exeext" >&6; }
+
+rm -f conftest.$ac_ext
+EXEEXT=$ac_cv_exeext
+ac_exeext=$EXEEXT
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdio.h>
+int
+main (void)
+{
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+ac_clean_files="$ac_clean_files conftest.out"
+# Check that the compiler produces executables we can run. If not, either
+# the compiler is broken, or we cross compile.
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
+printf %s "checking whether we are cross compiling... " >&6; }
+if test "$cross_compiling" != yes; then
+ { { ac_try="$ac_link"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+ (eval "$ac_link") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if { ac_try='./conftest$ac_cv_exeext'
+ { { case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+ (eval "$ac_try") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; }; then
+ cross_compiling=no
+ else
+ if test "$cross_compiling" = maybe; then
+ cross_compiling=yes
+ else
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error 77 "cannot run C compiled programs.
+If you meant to cross compile, use \`--host'.
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ fi
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
+printf "%s\n" "$cross_compiling" >&6; }
+
+rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+ac_clean_files=$ac_clean_files_save
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
+printf %s "checking for suffix of object files... " >&6; }
+if test ${ac_cv_objext+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.o conftest.obj
+if { { ac_try="$ac_compile"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+ (eval "$ac_compile") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+then :
+ for ac_file in conftest.o conftest.obj conftest.*; do
+ test -f "$ac_file" || continue;
+ case $ac_file in
+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
+ break;;
+ esac
+done
+else $as_nop
+ printf "%s\n" "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+rm -f conftest.$ac_cv_objext conftest.$ac_ext
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
+printf "%s\n" "$ac_cv_objext" >&6; }
+OBJEXT=$ac_cv_objext
+ac_objext=$OBJEXT
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
+printf %s "checking whether the compiler supports GNU C... " >&6; }
+if test ${ac_cv_c_compiler_gnu+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main (void)
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_compiler_gnu=yes
+else $as_nop
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+y}
+ac_save_CFLAGS=$CFLAGS
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+printf %s "checking whether $CC accepts -g... " >&6; }
+if test ${ac_cv_prog_cc_g+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_g=yes
+else $as_nop
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+else $as_nop
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
+if test $ac_test_CFLAGS; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+ac_prog_cc_stdc=no
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
+printf %s "checking for $CC option to enable C11 features... " >&6; }
+if test ${ac_cv_prog_cc_c11+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cc_c11=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_c_conftest_c11_program
+_ACEOF
+for ac_arg in '' -std=gnu11
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_c11=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cc_c11" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+fi
+
+if test "x$ac_cv_prog_cc_c11" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c11" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
+printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
+ CC="$CC $ac_cv_prog_cc_c11"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
+ ac_prog_cc_stdc=c11
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
+printf %s "checking for $CC option to enable C99 features... " >&6; }
+if test ${ac_cv_prog_cc_c99+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cc_c99=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_c_conftest_c99_program
+_ACEOF
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_c99=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cc_c99" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+fi
+
+if test "x$ac_cv_prog_cc_c99" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c99" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
+ CC="$CC $ac_cv_prog_cc_c99"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
+ ac_prog_cc_stdc=c99
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
+printf %s "checking for $CC option to enable C89 features... " >&6; }
+if test ${ac_cv_prog_cc_c89+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_c_conftest_c89_program
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+fi
+
+if test "x$ac_cv_prog_cc_c89" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c89" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
+ CC="$CC $ac_cv_prog_cc_c89"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
+ ac_prog_cc_stdc=c89
+fi
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+printf %s "checking whether $CC understands -c and -o together... " >&6; }
+if test ${am_cv_prog_cc_c_o+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+ ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+printf "%s\n" "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+depcc="$CC" am_compiler_list=
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+printf %s "checking dependency style of $depcc... " >&6; }
+if test ${am_cv_CC_dependencies_compiler_type+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with '-c' and '-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle '-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs.
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # After this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested.
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+ # This compiler won't grok '-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+fi
+
+
+
+ac_header= ac_cache=
+for ac_item in $ac_header_c_list
+do
+ if test $ac_cache; then
+ ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default"
+ if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then
+ printf "%s\n" "#define $ac_item 1" >> confdefs.h
+ fi
+ ac_header= ac_cache=
+ elif test $ac_header; then
+ ac_cache=$ac_item
+ else
+ ac_header=$ac_item
+ fi
+done
+
+
+
+
+
+
+
+
+if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes
+then :
+
+printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h
+
+fi
+
+
+
+
+
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether it is safe to define __EXTENSIONS__" >&5
+printf %s "checking whether it is safe to define __EXTENSIONS__... " >&6; }
+if test ${ac_cv_safe_to_define___extensions__+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+# define __EXTENSIONS__ 1
+ $ac_includes_default
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_safe_to_define___extensions__=yes
+else $as_nop
+ ac_cv_safe_to_define___extensions__=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
+printf "%s\n" "$ac_cv_safe_to_define___extensions__" >&6; }
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether _XOPEN_SOURCE should be defined" >&5
+printf %s "checking whether _XOPEN_SOURCE should be defined... " >&6; }
+if test ${ac_cv_should_define__xopen_source+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_should_define__xopen_source=no
+ if test $ac_cv_header_wchar_h = yes
+then :
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <wchar.h>
+ mbstate_t x;
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #define _XOPEN_SOURCE 500
+ #include <wchar.h>
+ mbstate_t x;
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_should_define__xopen_source=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5
+printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; }
+
+ printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h
+
+ printf "%s\n" "#define _DARWIN_C_SOURCE 1" >>confdefs.h
+
+ printf "%s\n" "#define _GNU_SOURCE 1" >>confdefs.h
+
+ printf "%s\n" "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h
+
+ printf "%s\n" "#define _NETBSD_SOURCE 1" >>confdefs.h
+
+ printf "%s\n" "#define _OPENBSD_SOURCE 1" >>confdefs.h
+
+ printf "%s\n" "#define _POSIX_PTHREAD_SEMANTICS 1" >>confdefs.h
+
+ printf "%s\n" "#define __STDC_WANT_IEC_60559_ATTRIBS_EXT__ 1" >>confdefs.h
+
+ printf "%s\n" "#define __STDC_WANT_IEC_60559_BFP_EXT__ 1" >>confdefs.h
+
+ printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h
+
+ printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h
+
+ printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h
+
+ printf "%s\n" "#define __STDC_WANT_LIB_EXT2__ 1" >>confdefs.h
+
+ printf "%s\n" "#define __STDC_WANT_MATH_SPEC_FUNCS__ 1" >>confdefs.h
+
+ printf "%s\n" "#define _TANDEM_SOURCE 1" >>confdefs.h
+
+ if test $ac_cv_header_minix_config_h = yes
+then :
+ MINIX=yes
+ printf "%s\n" "#define _MINIX 1" >>confdefs.h
+
+ printf "%s\n" "#define _POSIX_SOURCE 1" >>confdefs.h
+
+ printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h
+
+else $as_nop
+ MINIX=
+fi
+ if test $ac_cv_safe_to_define___extensions__ = yes
+then :
+ printf "%s\n" "#define __EXTENSIONS__ 1" >>confdefs.h
+
+fi
+ if test $ac_cv_should_define__xopen_source = yes
+then :
+ printf "%s\n" "#define _XOPEN_SOURCE 500" >>confdefs.h
+
+fi
+
+# Check whether --enable-largefile was given.
+if test ${enable_largefile+y}
+then :
+ enableval=$enable_largefile;
+fi
+
+if test "$enable_largefile" != no; then
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
+printf %s "checking for special C compiler options needed for large files... " >&6; }
+if test ${ac_cv_sys_largefile_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_sys_largefile_CC=no
+ if test "$GCC" != yes; then
+ ac_save_CC=$CC
+ while :; do
+ # IRIX 6.2 and later do not support large files by default,
+ # so use the C compiler's -n32 option if that helps.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ if ac_fn_c_try_compile "$LINENO"
+then :
+ break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ CC="$CC -n32"
+ if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_sys_largefile_CC=' -n32'; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ break
+ done
+ CC=$ac_save_CC
+ rm -f conftest.$ac_ext
+ fi
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
+printf "%s\n" "$ac_cv_sys_largefile_CC" >&6; }
+ if test "$ac_cv_sys_largefile_CC" != no; then
+ CC=$CC$ac_cv_sys_largefile_CC
+ fi
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
+printf %s "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
+if test ${ac_cv_sys_file_offset_bits+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_sys_file_offset_bits=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#define _FILE_OFFSET_BITS 64
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_sys_file_offset_bits=64; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ ac_cv_sys_file_offset_bits=unknown
+ break
+done
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
+printf "%s\n" "$ac_cv_sys_file_offset_bits" >&6; }
+case $ac_cv_sys_file_offset_bits in #(
+ no | unknown) ;;
+ *)
+printf "%s\n" "#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits" >>confdefs.h
+;;
+esac
+rm -rf conftest*
+ if test $ac_cv_sys_file_offset_bits = unknown; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
+printf %s "checking for _LARGE_FILES value needed for large files... " >&6; }
+if test ${ac_cv_sys_large_files+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ while :; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_sys_large_files=no; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#define _LARGE_FILES 1
+#include <sys/types.h>
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_sys_large_files=1; break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ ac_cv_sys_large_files=unknown
+ break
+done
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
+printf "%s\n" "$ac_cv_sys_large_files" >&6; }
+case $ac_cv_sys_large_files in #(
+ no | unknown) ;;
+ *)
+printf "%s\n" "#define _LARGE_FILES $ac_cv_sys_large_files" >>confdefs.h
+;;
+esac
+rm -rf conftest*
+ fi
+fi
+
+for ac_prog in gawk mawk nawk awk
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_AWK+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$AWK"; then
+ ac_cv_prog_AWK="$AWK" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AWK="$ac_prog"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AWK=$ac_cv_prog_AWK
+if test -n "$AWK"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
+printf "%s\n" "$AWK" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+ test -n "$AWK" && break
+done
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}gcc; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}gcc"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="gcc"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
+set dummy ${ac_tool_prefix}cc; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}cc"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+ fi
+fi
+if test -z "$CC"; then
+ # Extract the first word of "cc", so it can be a program name with args.
+set dummy cc; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+ ac_prog_rejected=no
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
+ ac_prog_rejected=yes
+ continue
+ fi
+ ac_cv_prog_CC="cc"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+if test $ac_prog_rejected = yes; then
+ # We found a bogon in the path, so make sure we never use it.
+ set dummy $ac_cv_prog_CC
+ shift
+ if test $# != 0; then
+ # We chose a different compiler from the bogus one.
+ # However, it has the same basename, so the bogon will be chosen
+ # first if we set CC to just the basename; use the full file name.
+ shift
+ ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
+ fi
+fi
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cl.exe
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+ test -n "$CC" && break
+ done
+fi
+if test -z "$CC"; then
+ ac_ct_CC=$CC
+ for ac_prog in cl.exe
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="$ac_prog"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_CC" && break
+done
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+fi
+
+fi
+if test -z "$CC"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args.
+set dummy ${ac_tool_prefix}clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$CC"; then
+ ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_CC="${ac_tool_prefix}clang"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+CC=$ac_cv_prog_CC
+if test -n "$CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
+printf "%s\n" "$CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_CC"; then
+ ac_ct_CC=$CC
+ # Extract the first word of "clang", so it can be a program name with args.
+set dummy clang; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_CC+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_CC"; then
+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_CC="clang"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_CC=$ac_cv_prog_ac_ct_CC
+if test -n "$ac_ct_CC"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
+printf "%s\n" "$ac_ct_CC" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_ct_CC" = x; then
+ CC=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ CC=$ac_ct_CC
+ fi
+else
+ CC="$ac_cv_prog_CC"
+fi
+
+fi
+
+
+test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "no acceptable C compiler found in \$PATH
+See \`config.log' for more details" "$LINENO" 5; }
+
+# Provide some information about the compiler.
+printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
+for ac_option in --version -v -V -qversion -version; do
+ { { ac_try="$ac_compiler $ac_option >&5"
+case "(($ac_try" in
+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+ *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+printf "%s\n" "$ac_try_echo"; } >&5
+ (eval "$ac_compiler $ac_option >&5") 2>conftest.err
+ ac_status=$?
+ if test -s conftest.err; then
+ sed '10a\
+... rest of stderr output deleted ...
+ 10q' conftest.err >conftest.er1
+ cat conftest.er1 >&5
+ fi
+ rm -f conftest.er1 conftest.err
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+done
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5
+printf %s "checking whether the compiler supports GNU C... " >&6; }
+if test ${ac_cv_c_compiler_gnu+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main (void)
+{
+#ifndef __GNUC__
+ choke me
+#endif
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_compiler_gnu=yes
+else $as_nop
+ ac_compiler_gnu=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ac_cv_c_compiler_gnu=$ac_compiler_gnu
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
+printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+if test $ac_compiler_gnu = yes; then
+ GCC=yes
+else
+ GCC=
+fi
+ac_test_CFLAGS=${CFLAGS+y}
+ac_save_CFLAGS=$CFLAGS
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
+printf %s "checking whether $CC accepts -g... " >&6; }
+if test ${ac_cv_prog_cc_g+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_save_c_werror_flag=$ac_c_werror_flag
+ ac_c_werror_flag=yes
+ ac_cv_prog_cc_g=no
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_g=yes
+else $as_nop
+ CFLAGS=""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+else $as_nop
+ ac_c_werror_flag=$ac_save_c_werror_flag
+ CFLAGS="-g"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_g=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ ac_c_werror_flag=$ac_save_c_werror_flag
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
+printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
+if test $ac_test_CFLAGS; then
+ CFLAGS=$ac_save_CFLAGS
+elif test $ac_cv_prog_cc_g = yes; then
+ if test "$GCC" = yes; then
+ CFLAGS="-g -O2"
+ else
+ CFLAGS="-g"
+ fi
+else
+ if test "$GCC" = yes; then
+ CFLAGS="-O2"
+ else
+ CFLAGS=
+ fi
+fi
+ac_prog_cc_stdc=no
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5
+printf %s "checking for $CC option to enable C11 features... " >&6; }
+if test ${ac_cv_prog_cc_c11+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cc_c11=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_c_conftest_c11_program
+_ACEOF
+for ac_arg in '' -std=gnu11
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_c11=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cc_c11" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+fi
+
+if test "x$ac_cv_prog_cc_c11" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c11" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
+printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
+ CC="$CC $ac_cv_prog_cc_c11"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
+ ac_prog_cc_stdc=c11
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5
+printf %s "checking for $CC option to enable C99 features... " >&6; }
+if test ${ac_cv_prog_cc_c99+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cc_c99=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_c_conftest_c99_program
+_ACEOF
+for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99=
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_c99=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cc_c99" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+fi
+
+if test "x$ac_cv_prog_cc_c99" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c99" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
+ CC="$CC $ac_cv_prog_cc_c99"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
+ ac_prog_cc_stdc=c99
+fi
+fi
+if test x$ac_prog_cc_stdc = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5
+printf %s "checking for $CC option to enable C89 features... " >&6; }
+if test ${ac_cv_prog_cc_c89+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_prog_cc_c89=no
+ac_save_CC=$CC
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_c_conftest_c89_program
+_ACEOF
+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
+do
+ CC="$ac_save_CC $ac_arg"
+ if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_prog_cc_c89=$ac_arg
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam
+ test "x$ac_cv_prog_cc_c89" != "xno" && break
+done
+rm -f conftest.$ac_ext
+CC=$ac_save_CC
+fi
+
+if test "x$ac_cv_prog_cc_c89" = xno
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
+printf "%s\n" "unsupported" >&6; }
+else $as_nop
+ if test "x$ac_cv_prog_cc_c89" = x
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
+printf "%s\n" "none needed" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
+ CC="$CC $ac_cv_prog_cc_c89"
+fi
+ ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
+ ac_prog_cc_stdc=c89
+fi
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5
+printf %s "checking whether $CC understands -c and -o together... " >&6; }
+if test ${am_cv_prog_cc_c_o+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+ # Make sure it works both with $CC and with simple cc.
+ # Following AC_PROG_CC_C_O, we do the test twice because some
+ # compilers refuse to overwrite an existing .o file with -o,
+ # though they will create one.
+ am_cv_prog_cc_c_o=yes
+ for am_i in 1 2; do
+ if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5
+ ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } \
+ && test -f conftest2.$ac_objext; then
+ : OK
+ else
+ am_cv_prog_cc_c_o=no
+ break
+ fi
+ done
+ rm -f core conftest*
+ unset am_i
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
+printf "%s\n" "$am_cv_prog_cc_c_o" >&6; }
+if test "$am_cv_prog_cc_c_o" != yes; then
+ # Losing compiler, so override with the script.
+ # FIXME: It is wrong to rewrite CC.
+ # But if we don't then we get into trouble of one sort or another.
+ # A longer-term fix would be to have automake use am__CC in this case,
+ # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)"
+ CC="$am_aux_dir/compile $CC"
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+depcc="$CC" am_compiler_list=
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
+printf %s "checking dependency style of $depcc... " >&6; }
+if test ${am_cv_CC_dependencies_compiler_type+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+ # We make a subdir and do the tests there. Otherwise we can end up
+ # making bogus files that we don't know about and never remove. For
+ # instance it was reported that on HP-UX the gcc test will end up
+ # making a dummy file named 'D' -- because '-MD' means "put the output
+ # in D".
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ # Copy depcomp to subdir because otherwise we won't find it if we're
+ # using a relative directory.
+ cp "$am_depcomp" conftest.dir
+ cd conftest.dir
+ # We will build objects and dependencies in a subdirectory because
+ # it helps to detect inapplicable dependency modes. For instance
+ # both Tru64's cc and ICC support -MD to output dependencies as a
+ # side effect of compilation, but ICC will put the dependencies in
+ # the current directory while Tru64 will put them in the object
+ # directory.
+ mkdir sub
+
+ am_cv_CC_dependencies_compiler_type=none
+ if test "$am_compiler_list" = ""; then
+ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
+ fi
+ am__universal=false
+ case " $depcc " in #(
+ *\ -arch\ *\ -arch\ *) am__universal=true ;;
+ esac
+
+ for depmode in $am_compiler_list; do
+ # Setup a source with many dependencies, because some compilers
+ # like to wrap large dependency lists on column 80 (with \), and
+ # we should not choose a depcomp mode which is confused by this.
+ #
+ # We need to recreate these files for each test, as the compiler may
+ # overwrite some of them when testing with obscure command lines.
+ # This happens at least with the AIX C compiler.
+ : > sub/conftest.c
+ for i in 1 2 3 4 5 6; do
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
+ # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with
+ # Solaris 10 /bin/sh.
+ echo '/* dummy */' > sub/conftst$i.h
+ done
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
+
+ # We check with '-c' and '-o' for the sake of the "dashmstdout"
+ # mode. It turns out that the SunPro C++ compiler does not properly
+ # handle '-M -o', and we need to detect this. Also, some Intel
+ # versions had trouble with output in subdirs.
+ am__obj=sub/conftest.${OBJEXT-o}
+ am__minus_obj="-o $am__obj"
+ case $depmode in
+ gcc)
+ # This depmode causes a compiler race in universal mode.
+ test "$am__universal" = false || continue
+ ;;
+ nosideeffect)
+ # After this tag, mechanisms are not by side-effect, so they'll
+ # only be used when explicitly requested.
+ if test "x$enable_dependency_tracking" = xyes; then
+ continue
+ else
+ break
+ fi
+ ;;
+ msvc7 | msvc7msys | msvisualcpp | msvcmsys)
+ # This compiler won't grok '-c -o', but also, the minuso test has
+ # not run yet. These depmodes are late enough in the game, and
+ # so weak that their functioning should not be impacted.
+ am__obj=conftest.${OBJEXT-o}
+ am__minus_obj=
+ ;;
+ none) break ;;
+ esac
+ if depmode=$depmode \
+ source=sub/conftest.c object=$am__obj \
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
+ $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
+ >/dev/null 2>conftest.err &&
+ grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
+ grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
+ # icc doesn't choke on unknown options, it will just issue warnings
+ # or remarks (even with -Werror). So we grep stderr for any message
+ # that says an option was ignored or not supported.
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
+ # icc: Command line warning: ignoring option '-M'; no argument required
+ # The diagnosis changed in icc 8.0:
+ # icc: Command line remark: option '-MP' not supported
+ if (grep 'ignoring option' conftest.err ||
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
+ am_cv_CC_dependencies_compiler_type=$depmode
+ break
+ fi
+ fi
+ done
+
+ cd ..
+ rm -rf conftest.dir
+else
+ am_cv_CC_dependencies_compiler_type=none
+fi
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
+printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; }
+CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
+
+ if
+ test "x$enable_dependency_tracking" != xno \
+ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
+ am__fastdepCC_TRUE=
+ am__fastdepCC_FALSE='#'
+else
+ am__fastdepCC_TRUE='#'
+ am__fastdepCC_FALSE=
+fi
+
+
+
+if test "$cross_compiling" = no; then
+ if test "x$ac_cv_prog_cc_c99" = "xno" || test "x$ac_cv_prog_cc_c99" = "x"; then
+ # We might be on RHEL5 with a git checkout and so broken
+ # autoconf. Check if CC is gcc and if it bails when given -std=gnu99.
+ # If not, use that. Yuck.
+ if test "x$ac_cv_c_compiler_gnu" = "xyes"; then
+ CC="$CC -std=gnu99"
+ if test "$cross_compiling" = yes
+then :
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot run test program while cross compiling
+See \`config.log' for more details" "$LINENO" 5; }
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main (void)
+{
+
+ return 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+
+else $as_nop
+ as_fn_error $? "Could not find a C99 compatible compiler" "$LINENO" 5
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+ else
+ as_fn_error $? "Could not find a C99 compatible compiler" "$LINENO" 5
+ fi
+ fi
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
+printf %s "checking how to run the C preprocessor... " >&6; }
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+ CPP=
+fi
+if test -z "$CPP"; then
+ if test ${ac_cv_prog_CPP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ # Double quotes because $CC needs to be expanded
+ for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp
+ do
+ ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"
+then :
+
+else $as_nop
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"
+then :
+ # Broken: success on invalid input.
+continue
+else $as_nop
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok
+then :
+ break
+fi
+
+ done
+ ac_cv_prog_CPP=$CPP
+
+fi
+ CPP=$ac_cv_prog_CPP
+else
+ ac_cv_prog_CPP=$CPP
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
+printf "%s\n" "$CPP" >&6; }
+ac_preproc_ok=false
+for ac_c_preproc_warn_flag in '' yes
+do
+ # Use a header file that comes with gcc, so configuring glibc
+ # with a fresh cross-compiler works.
+ # On the NeXT, cc -E runs the code through the compiler's parser,
+ # not just through cpp. "Syntax error" is here to catch this case.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <limits.h>
+ Syntax error
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"
+then :
+
+else $as_nop
+ # Broken: fails on valid input.
+continue
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+ # OK, works on sane cases. Now check whether nonexistent headers
+ # can be detected and how.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <ac_nonexistent.h>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"
+then :
+ # Broken: success on invalid input.
+continue
+else $as_nop
+ # Passes both tests.
+ac_preproc_ok=:
+break
+fi
+rm -f conftest.err conftest.i conftest.$ac_ext
+
+done
+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
+rm -f conftest.i conftest.err conftest.$ac_ext
+if $ac_preproc_ok
+then :
+
+else $as_nop
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details" "$LINENO" 5; }
+fi
+
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
+printf %s "checking whether ln -s works... " >&6; }
+LN_S=$as_ln_s
+if test "$LN_S" = "ln -s"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
+printf "%s\n" "no, using $LN_S" >&6; }
+fi
+
+
+
+
+
+
+
+
+
+
+if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
+set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_PKG_CONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ case $PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+PKG_CONFIG=$ac_cv_path_PKG_CONFIG
+if test -n "$PKG_CONFIG"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
+printf "%s\n" "$PKG_CONFIG" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_path_PKG_CONFIG"; then
+ ac_pt_PKG_CONFIG=$PKG_CONFIG
+ # Extract the first word of "pkg-config", so it can be a program name with args.
+set dummy pkg-config; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_ac_pt_PKG_CONFIG+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ case $ac_pt_PKG_CONFIG in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_ac_pt_PKG_CONFIG="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+fi
+ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
+if test -n "$ac_pt_PKG_CONFIG"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5
+printf "%s\n" "$ac_pt_PKG_CONFIG" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_pt_PKG_CONFIG" = x; then
+ PKG_CONFIG=""
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ PKG_CONFIG=$ac_pt_PKG_CONFIG
+ fi
+else
+ PKG_CONFIG="$ac_cv_path_PKG_CONFIG"
+fi
+
+fi
+if test -n "$PKG_CONFIG"; then
+ _pkg_min_version=0.9.0
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5
+printf %s "checking pkg-config is at least version $_pkg_min_version... " >&6; }
+ if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+ else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ PKG_CONFIG=""
+ fi
+fi
+if test -z "$PKG_CONFIG"
+then :
+
+ as_fn_error $? "Could not find pkg-config" "$LINENO" 5
+fi
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+if eval test \${ac_cv_prog_make_${ac_make}_set+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ cat >conftest.make <<\_ACEOF
+SHELL = /bin/sh
+all:
+ @echo '@@@%%%=$(MAKE)=@@@%%%'
+_ACEOF
+# GNU make sometimes prints "make[1]: Entering ...", which would confuse us.
+case `${MAKE-make} -f conftest.make 2>/dev/null` in
+ *@@@%%%=?*=@@@%%%*)
+ eval ac_cv_prog_make_${ac_make}_set=yes;;
+ *)
+ eval ac_cv_prog_make_${ac_make}_set=no;;
+esac
+rm -f conftest.make
+fi
+if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+ SET_MAKE=
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+
+
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
+printf %s "checking whether NLS is requested... " >&6; }
+ # Check whether --enable-nls was given.
+if test ${enable_nls+y}
+then :
+ enableval=$enable_nls; USE_NLS=$enableval
+else $as_nop
+ USE_NLS=yes
+fi
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
+printf "%s\n" "$USE_NLS" >&6; }
+
+
+
+
+ for ac_prog in po4a
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_PO4A+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$PO4A"; then
+ ac_cv_prog_PO4A="$PO4A" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_PO4A="$ac_prog"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+PO4A=$ac_cv_prog_PO4A
+if test -n "$PO4A"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PO4A" >&5
+printf "%s\n" "$PO4A" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+ test -n "$PO4A" && break
+done
+
+ if test "$USE_NLS" = "yes" && test -n "$PO4A"
+then :
+
+ USE_PO4A=yes
+
+else $as_nop
+
+ USE_PO4A=no
+
+fi
+
+
+
+# Checks for header files.
+
+ac_fn_c_check_header_compile "$LINENO" "sys/mkdev.h" "ac_cv_header_sys_mkdev_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_mkdev_h" = xyes
+then :
+
+printf "%s\n" "#define MAJOR_IN_MKDEV 1" >>confdefs.h
+
+fi
+
+if test $ac_cv_header_sys_mkdev_h = no; then
+ ac_fn_c_check_header_compile "$LINENO" "sys/sysmacros.h" "ac_cv_header_sys_sysmacros_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_sysmacros_h" = xyes
+then :
+
+printf "%s\n" "#define MAJOR_IN_SYSMACROS 1" >>confdefs.h
+
+fi
+
+fi
+
+ac_fn_c_check_header_compile "$LINENO" "arpa/inet.h" "ac_cv_header_arpa_inet_h" "$ac_includes_default"
+if test "x$ac_cv_header_arpa_inet_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_ARPA_INET_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "$ac_includes_default"
+if test "x$ac_cv_header_fcntl_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_FCNTL_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "float.h" "ac_cv_header_float_h" "$ac_includes_default"
+if test "x$ac_cv_header_float_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_FLOAT_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "langinfo.h" "ac_cv_header_langinfo_h" "$ac_includes_default"
+if test "x$ac_cv_header_langinfo_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_LANGINFO_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "libintl.h" "ac_cv_header_libintl_h" "$ac_includes_default"
+if test "x$ac_cv_header_libintl_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIBINTL_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "limits.h" "ac_cv_header_limits_h" "$ac_includes_default"
+if test "x$ac_cv_header_limits_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_LIMITS_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "locale.h" "ac_cv_header_locale_h" "$ac_includes_default"
+if test "x$ac_cv_header_locale_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_LOCALE_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "stdint.h" "ac_cv_header_stdint_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdint_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_STDINT_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "stdio_ext.h" "ac_cv_header_stdio_ext_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdio_ext_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_STDIO_EXT_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_stdlib_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_STDLIB_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "string.h" "ac_cv_header_string_h" "$ac_includes_default"
+if test "x$ac_cv_header_string_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRING_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "sys/file.h" "ac_cv_header_sys_file_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_file_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_FILE_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "sys/ioctl.h" "ac_cv_header_sys_ioctl_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_ioctl_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_IOCTL_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_param_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_PARAM_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_time_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_SYS_TIME_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "termios.h" "ac_cv_header_termios_h" "$ac_includes_default"
+if test "x$ac_cv_header_termios_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_TERMIOS_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default"
+if test "x$ac_cv_header_unistd_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "utmp.h" "ac_cv_header_utmp_h" "$ac_includes_default"
+if test "x$ac_cv_header_utmp_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_UTMP_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "utmpx.h" "ac_cv_header_utmpx_h" "$ac_includes_default"
+if test "x$ac_cv_header_utmpx_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_UTMPX_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "values.h" "ac_cv_header_values_h" "$ac_includes_default"
+if test "x$ac_cv_header_values_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_VALUES_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "wchar.h" "ac_cv_header_wchar_h" "$ac_includes_default"
+if test "x$ac_cv_header_wchar_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_WCHAR_H 1" >>confdefs.h
+
+fi
+ac_fn_c_check_header_compile "$LINENO" "wctype.h" "ac_cv_header_wctype_h" "$ac_includes_default"
+if test "x$ac_cv_header_wctype_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_WCTYPE_H 1" >>confdefs.h
+
+fi
+
+
+# Checks for typedefs, structures, and compiler characteristics.
+ac_fn_c_check_type "$LINENO" "_Bool" "ac_cv_type__Bool" "$ac_includes_default"
+if test "x$ac_cv_type__Bool" = xyes
+then :
+
+printf "%s\n" "#define HAVE__BOOL 1" >>confdefs.h
+
+
+fi
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5
+printf %s "checking for stdbool.h that conforms to C99... " >&6; }
+if test ${ac_cv_header_stdbool_h+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdbool.h>
+
+ #ifndef __bool_true_false_are_defined
+ #error "__bool_true_false_are_defined is not defined"
+ #endif
+ char a[__bool_true_false_are_defined == 1 ? 1 : -1];
+
+ /* Regardless of whether this is C++ or "_Bool" is a
+ valid type name, "true" and "false" should be usable
+ in #if expressions and integer constant expressions,
+ and "bool" should be a valid type name. */
+
+ #if !true
+ #error "'true' is not true"
+ #endif
+ #if true != 1
+ #error "'true' is not equal to 1"
+ #endif
+ char b[true == 1 ? 1 : -1];
+ char c[true];
+
+ #if false
+ #error "'false' is not false"
+ #endif
+ #if false != 0
+ #error "'false' is not equal to 0"
+ #endif
+ char d[false == 0 ? 1 : -1];
+
+ enum { e = false, f = true, g = false * true, h = true * 256 };
+
+ char i[(bool) 0.5 == true ? 1 : -1];
+ char j[(bool) 0.0 == false ? 1 : -1];
+ char k[sizeof (bool) > 0 ? 1 : -1];
+
+ struct sb { bool s: 1; bool t; } s;
+ char l[sizeof s.t > 0 ? 1 : -1];
+
+ /* The following fails for
+ HP aC++/ANSI C B3910B A.05.55 [Dec 04 2003]. */
+ bool m[h];
+ char n[sizeof m == h * sizeof m[0] ? 1 : -1];
+ char o[-1 - (bool) 0 < 0 ? 1 : -1];
+ /* Catch a bug in an HP-UX C compiler. See
+ https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+ https://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+ */
+ bool p = true;
+ bool *pp = &p;
+
+ /* C 1999 specifies that bool, true, and false are to be
+ macros, but C++ 2011 and later overrule this. */
+ #if __cplusplus < 201103
+ #ifndef bool
+ #error "bool is not defined"
+ #endif
+ #ifndef false
+ #error "false is not defined"
+ #endif
+ #ifndef true
+ #error "true is not defined"
+ #endif
+ #endif
+
+ /* If _Bool is available, repeat with it all the tests
+ above that used bool. */
+ #ifdef HAVE__BOOL
+ struct sB { _Bool s: 1; _Bool t; } t;
+
+ char q[(_Bool) 0.5 == true ? 1 : -1];
+ char r[(_Bool) 0.0 == false ? 1 : -1];
+ char u[sizeof (_Bool) > 0 ? 1 : -1];
+ char v[sizeof t.t > 0 ? 1 : -1];
+
+ _Bool w[h];
+ char x[sizeof m == h * sizeof m[0] ? 1 : -1];
+ char y[-1 - (_Bool) 0 < 0 ? 1 : -1];
+ _Bool z = true;
+ _Bool *pz = &p;
+ #endif
+
+int
+main (void)
+{
+
+ bool ps = &s;
+ *pp |= p;
+ *pp |= ! p;
+
+ #ifdef HAVE__BOOL
+ _Bool pt = &t;
+ *pz |= z;
+ *pz |= ! z;
+ #endif
+
+ /* Refer to every declared value, so they cannot be
+ discarded as unused. */
+ return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !j + !k
+ + !l + !m + !n + !o + !p + !pp + !ps
+ #ifdef HAVE__BOOL
+ + !q + !r + !u + !v + !w + !x + !y + !z + !pt
+ #endif
+ );
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_header_stdbool_h=yes
+else $as_nop
+ ac_cv_header_stdbool_h=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5
+printf "%s\n" "$ac_cv_header_stdbool_h" >&6; }
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
+printf %s "checking for grep that handles long lines and -e... " >&6; }
+if test ${ac_cv_path_GREP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -z "$GREP"; then
+ ac_path_GREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_prog in grep ggrep
+ do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_GREP="$as_dir$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_GREP" || continue
+# Check for GNU ac_path_GREP and select it if it is found.
+ # Check for GNU $ac_path_GREP
+case `"$ac_path_GREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
+*)
+ ac_count=0
+ printf %s 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ printf "%s\n" 'GREP' >> "conftest.nl"
+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_GREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_GREP="$ac_path_GREP"
+ ac_path_GREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_GREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_GREP"; then
+ as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_GREP=$GREP
+fi
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
+printf "%s\n" "$ac_cv_path_GREP" >&6; }
+ GREP="$ac_cv_path_GREP"
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
+printf %s "checking for egrep... " >&6; }
+if test ${ac_cv_path_EGREP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
+ then ac_cv_path_EGREP="$GREP -E"
+ else
+ if test -z "$EGREP"; then
+ ac_path_EGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_prog in egrep
+ do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_EGREP" || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
+ # Check for GNU $ac_path_EGREP
+case `"$ac_path_EGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
+*)
+ ac_count=0
+ printf %s 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ printf "%s\n" 'EGREP' >> "conftest.nl"
+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_EGREP="$ac_path_EGREP"
+ ac_path_EGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_EGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_EGREP"; then
+ as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_EGREP=$EGREP
+fi
+
+ fi
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
+printf "%s\n" "$ac_cv_path_EGREP" >&6; }
+ EGREP="$ac_cv_path_EGREP"
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for uid_t in sys/types.h" >&5
+printf %s "checking for uid_t in sys/types.h... " >&6; }
+if test ${ac_cv_type_uid_t+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <sys/types.h>
+
+_ACEOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+ $EGREP "uid_t" >/dev/null 2>&1
+then :
+ ac_cv_type_uid_t=yes
+else $as_nop
+ ac_cv_type_uid_t=no
+fi
+rm -rf conftest*
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_uid_t" >&5
+printf "%s\n" "$ac_cv_type_uid_t" >&6; }
+if test $ac_cv_type_uid_t = no; then
+
+printf "%s\n" "#define uid_t int" >>confdefs.h
+
+
+printf "%s\n" "#define gid_t int" >>confdefs.h
+
+fi
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for inline" >&5
+printf %s "checking for inline... " >&6; }
+if test ${ac_cv_c_inline+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#ifndef __cplusplus
+typedef int foo_t;
+static $ac_kw foo_t static_foo (void) {return 0; }
+$ac_kw foo_t foo (void) {return 0; }
+#endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_c_inline=$ac_kw
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ test "$ac_cv_c_inline" != no && break
+done
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
+printf "%s\n" "$ac_cv_c_inline" >&6; }
+
+case $ac_cv_c_inline in
+ inline | yes) ;;
+ *)
+ case $ac_cv_c_inline in
+ no) ac_val=;;
+ *) ac_val=$ac_cv_c_inline;;
+ esac
+ cat >>confdefs.h <<_ACEOF
+#ifndef __cplusplus
+#define inline $ac_val
+#endif
+_ACEOF
+ ;;
+esac
+
+ac_fn_c_find_intX_t "$LINENO" "32" "ac_cv_c_int32_t"
+case $ac_cv_c_int32_t in #(
+ no|yes) ;; #(
+ *)
+
+printf "%s\n" "#define int32_t $ac_cv_c_int32_t" >>confdefs.h
+;;
+esac
+
+
+ ac_fn_c_check_type "$LINENO" "pid_t" "ac_cv_type_pid_t" "$ac_includes_default
+"
+if test "x$ac_cv_type_pid_t" = xyes
+then :
+
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #if defined _WIN64 && !defined __CYGWIN__
+ LLP64
+ #endif
+
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_pid_type='int'
+else $as_nop
+ ac_pid_type='__int64'
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+
+printf "%s\n" "#define pid_t $ac_pid_type" >>confdefs.h
+
+
+fi
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C/C++ restrict keyword" >&5
+printf %s "checking for C/C++ restrict keyword... " >&6; }
+if test ${ac_cv_c_restrict+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_cv_c_restrict=no
+ # Put '__restrict__' first, to avoid problems with glibc and non-GCC; see:
+ # https://lists.gnu.org/archive/html/bug-autoconf/2016-02/msg00006.html
+ # Put 'restrict' last, because C++ lacks it.
+ for ac_kw in __restrict__ __restrict _Restrict restrict; do
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+typedef int *int_ptr;
+ int foo (int_ptr $ac_kw ip) { return ip[0]; }
+ int bar (int [$ac_kw]); /* Catch GCC bug 14050. */
+ int bar (int ip[$ac_kw]) { return ip[0]; }
+
+int
+main (void)
+{
+int s[1];
+ int *$ac_kw t = s;
+ t[0] = 0;
+ return foo (t) + bar (t);
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ ac_cv_c_restrict=$ac_kw
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ test "$ac_cv_c_restrict" != no && break
+ done
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_restrict" >&5
+printf "%s\n" "$ac_cv_c_restrict" >&6; }
+
+ case $ac_cv_c_restrict in
+ restrict) ;;
+ no) printf "%s\n" "#define restrict /**/" >>confdefs.h
+ ;;
+ *) printf "%s\n" "#define restrict $ac_cv_c_restrict" >>confdefs.h
+ ;;
+ esac
+
+ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
+if test "x$ac_cv_type_size_t" = xyes
+then :
+
+else $as_nop
+
+printf "%s\n" "#define size_t unsigned int" >>confdefs.h
+
+fi
+
+ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default"
+if test "x$ac_cv_type_ssize_t" = xyes
+then :
+
+else $as_nop
+
+printf "%s\n" "#define ssize_t int" >>confdefs.h
+
+fi
+
+ac_fn_c_check_member "$LINENO" "struct stat" "st_rdev" "ac_cv_member_struct_stat_st_rdev" "$ac_includes_default"
+if test "x$ac_cv_member_struct_stat_st_rdev" = xyes
+then :
+
+printf "%s\n" "#define HAVE_STRUCT_STAT_ST_RDEV 1" >>confdefs.h
+
+
+fi
+
+ac_fn_c_check_member "$LINENO" "siginfo_t" "si_int" "ac_cv_member_siginfo_t_si_int" "#include <signal.h>
+"
+if test "x$ac_cv_member_siginfo_t_si_int" = xyes
+then :
+
+printf "%s\n" "#define HAVE_SIGINFO_T_SI_INT 1" >>confdefs.h
+
+
+fi
+
+
+if test "x$ac_cv_header_utmpx_h" = xyes
+then :
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5
+printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; }
+if test ${ac_cv_c_undeclared_builtin_options+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_save_CFLAGS=$CFLAGS
+ ac_cv_c_undeclared_builtin_options='cannot detect'
+ for ac_arg in '' -fno-builtin; do
+ CFLAGS="$ac_save_CFLAGS $ac_arg"
+ # This test program should *not* compile successfully.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main (void)
+{
+(void) strchr;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+else $as_nop
+ # This test program should compile successfully.
+ # No library function is consistently available on
+ # freestanding implementations, so test against a dummy
+ # declaration. Include always-available headers on the
+ # off chance that they somehow elicit warnings.
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <float.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stddef.h>
+extern void ac_decl (int, char *);
+
+int
+main (void)
+{
+(void) ac_decl (0, (char *) 0);
+ (void) ac_decl;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ if test x"$ac_arg" = x
+then :
+ ac_cv_c_undeclared_builtin_options='none needed'
+else $as_nop
+ ac_cv_c_undeclared_builtin_options=$ac_arg
+fi
+ break
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ done
+ CFLAGS=$ac_save_CFLAGS
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5
+printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; }
+ case $ac_cv_c_undeclared_builtin_options in #(
+ 'cannot detect') :
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "cannot make $CC report undeclared builtins
+See \`config.log' for more details" "$LINENO" 5; } ;; #(
+ 'none needed') :
+ ac_c_undeclared_builtin_options='' ;; #(
+ *) :
+ ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;;
+esac
+
+ac_fn_check_decl "$LINENO" "__UT_HOSTSIZE" "ac_cv_have_decl___UT_HOSTSIZE" "#include <utmpx.h>
+" "$ac_c_undeclared_builtin_options" "CFLAGS"
+if test "x$ac_cv_have_decl___UT_HOSTSIZE" = xyes
+then :
+ ac_have_decl=1
+else $as_nop
+ ac_have_decl=0
+fi
+printf "%s\n" "#define HAVE_DECL___UT_HOSTSIZE $ac_have_decl" >>confdefs.h
+if test $ac_have_decl = 1
+then :
+
+printf "%s\n" "#define HAVE_UT_HOSTSIZE_IN_UTMPX 1" >>confdefs.h
+
+fi
+
+fi
+
+case `pwd` in
+ *\ * | *\ *)
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+printf "%s\n" "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
+esac
+
+
+
+macro_version='2.4.7'
+macro_revision='2.4.7'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ltmain=$ac_aux_dir/ltmain.sh
+
+
+
+ # Make sure we can run config.sub.
+$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 ||
+ as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
+printf %s "checking build system type... " >&6; }
+if test ${ac_cv_build+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_build_alias=$build_alias
+test "x$ac_build_alias" = x &&
+ ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"`
+test "x$ac_build_alias" = x &&
+ as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
+ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` ||
+ as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
+printf "%s\n" "$ac_cv_build" >&6; }
+case $ac_cv_build in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
+esac
+build=$ac_cv_build
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_build
+shift
+build_cpu=$1
+build_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+build_os=$*
+IFS=$ac_save_IFS
+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
+printf %s "checking host system type... " >&6; }
+if test ${ac_cv_host+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test "x$host_alias" = x; then
+ ac_cv_host=$ac_cv_build
+else
+ ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` ||
+ as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5
+fi
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
+printf "%s\n" "$ac_cv_host" >&6; }
+case $ac_cv_host in
+*-*-*) ;;
+*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
+esac
+host=$ac_cv_host
+ac_save_IFS=$IFS; IFS='-'
+set x $ac_cv_host
+shift
+host_cpu=$1
+host_vendor=$2
+shift; shift
+# Remember, the first character of IFS is used to create $*,
+# except with old shells:
+host_os=$*
+IFS=$ac_save_IFS
+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
+
+
+# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+
+ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
+printf %s "checking how to print strings... " >&6; }
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='printf %s\n'
+else
+ # Use this function as a fallback that always works.
+ func_fallback_echo ()
+ {
+ eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+ }
+ ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+ $ECHO ""
+}
+
+case $ECHO in
+ printf*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: printf" >&5
+printf "%s\n" "printf" >&6; } ;;
+ print*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
+printf "%s\n" "print -r" >&6; } ;;
+ *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cat" >&5
+printf "%s\n" "cat" >&6; } ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
+printf %s "checking for a sed that does not truncate output... " >&6; }
+if test ${ac_cv_path_SED+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+ for ac_i in 1 2 3 4 5 6 7; do
+ ac_script="$ac_script$as_nl$ac_script"
+ done
+ echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
+ { ac_script=; unset ac_script;}
+ if test -z "$SED"; then
+ ac_path_SED_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_prog in sed gsed
+ do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_SED="$as_dir$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_SED" || continue
+# Check for GNU ac_path_SED and select it if it is found.
+ # Check for GNU $ac_path_SED
+case `"$ac_path_SED" --version 2>&1` in
+*GNU*)
+ ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+*)
+ ac_count=0
+ printf %s 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ printf "%s\n" '' >> "conftest.nl"
+ "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_SED_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_SED="$ac_path_SED"
+ ac_path_SED_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_SED_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_SED"; then
+ as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
+ fi
+else
+ ac_cv_path_SED=$SED
+fi
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
+printf "%s\n" "$ac_cv_path_SED" >&6; }
+ SED="$ac_cv_path_SED"
+ rm -f conftest.sed
+
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+
+
+
+
+
+
+
+
+
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
+printf %s "checking for fgrep... " >&6; }
+if test ${ac_cv_path_FGREP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
+ then ac_cv_path_FGREP="$GREP -F"
+ else
+ if test -z "$FGREP"; then
+ ac_path_FGREP_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_prog in fgrep
+ do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_FGREP="$as_dir$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_FGREP" || continue
+# Check for GNU ac_path_FGREP and select it if it is found.
+ # Check for GNU $ac_path_FGREP
+case `"$ac_path_FGREP" --version 2>&1` in
+*GNU*)
+ ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
+*)
+ ac_count=0
+ printf %s 0123456789 >"conftest.in"
+ while :
+ do
+ cat "conftest.in" "conftest.in" >"conftest.tmp"
+ mv "conftest.tmp" "conftest.in"
+ cp "conftest.in" "conftest.nl"
+ printf "%s\n" 'FGREP' >> "conftest.nl"
+ "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
+ as_fn_arith $ac_count + 1 && ac_count=$as_val
+ if test $ac_count -gt ${ac_path_FGREP_max-0}; then
+ # Best one so far, save it but keep looking for a better one
+ ac_cv_path_FGREP="$ac_path_FGREP"
+ ac_path_FGREP_max=$ac_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test $ac_count -gt 10 && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
+esac
+
+ $ac_path_FGREP_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_FGREP"; then
+ as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
+ fi
+else
+ ac_cv_path_FGREP=$FGREP
+fi
+
+ fi
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
+printf "%s\n" "$ac_cv_path_FGREP" >&6; }
+ FGREP="$ac_cv_path_FGREP"
+
+
+test -z "$GREP" && GREP=grep
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-gnu-ld was given.
+if test ${with_gnu_ld+y}
+then :
+ withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes
+else $as_nop
+ with_gnu_ld=no
+fi
+
+ac_prog=ld
+if test yes = "$GCC"; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
+printf %s "checking for ld used by $CC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return, which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | ?:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD=$ac_prog
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test yes = "$with_gnu_ld"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+printf %s "checking for GNU ld... " >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+printf %s "checking for non-GNU ld... " >&6; }
+fi
+if test ${lt_cv_path_LD+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -z "$LD"; then
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD=$ac_dir/$ac_prog
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test no != "$with_gnu_ld" && break
+ ;;
+ *)
+ test yes != "$with_gnu_ld" && break
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+else
+ lt_cv_path_LD=$LD # Let the user override the test with a path.
+fi
+fi
+
+LD=$lt_cv_path_LD
+if test -n "$LD"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+printf "%s\n" "$LD" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+printf %s "checking if the linker ($LD) is GNU ld... " >&6; }
+if test ${lt_cv_prog_gnu_ld+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ # I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
+printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+
+
+
+
+
+
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
+printf %s "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
+if test ${lt_cv_path_NM+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM=$NM
+else
+ lt_nm_to_check=${ac_tool_prefix}nm
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm=$ac_dir/$lt_tmp_nm
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the 'sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
+ case $build_os in
+ mingw*) lt_bad_file=conftest.nm/nofile ;;
+ *) lt_bad_file=/dev/null ;;
+ esac
+ case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in
+ *$lt_bad_file* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break 2
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break 2
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+ done
+ : ${lt_cv_path_NM=no}
+fi
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
+printf "%s\n" "$lt_cv_path_NM" >&6; }
+if test no != "$lt_cv_path_NM"; then
+ NM=$lt_cv_path_NM
+else
+ # Didn't find any BSD compatible name lister, look for dumpbin.
+ if test -n "$DUMPBIN"; then :
+ # Let the user override the test.
+ else
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in dumpbin "link -dump"
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_DUMPBIN+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$DUMPBIN"; then
+ ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DUMPBIN=$ac_cv_prog_DUMPBIN
+if test -n "$DUMPBIN"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
+printf "%s\n" "$DUMPBIN" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+ test -n "$DUMPBIN" && break
+ done
+fi
+if test -z "$DUMPBIN"; then
+ ac_ct_DUMPBIN=$DUMPBIN
+ for ac_prog in dumpbin "link -dump"
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_DUMPBIN+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_DUMPBIN"; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
+if test -n "$ac_ct_DUMPBIN"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
+printf "%s\n" "$ac_ct_DUMPBIN" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_DUMPBIN" && break
+done
+
+ if test "x$ac_ct_DUMPBIN" = x; then
+ DUMPBIN=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DUMPBIN=$ac_ct_DUMPBIN
+ fi
+fi
+
+ case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in
+ *COFF*)
+ DUMPBIN="$DUMPBIN -symbols -headers"
+ ;;
+ *)
+ DUMPBIN=:
+ ;;
+ esac
+ fi
+
+ if test : != "$DUMPBIN"; then
+ NM=$DUMPBIN
+ fi
+fi
+test -z "$NM" && NM=nm
+
+
+
+
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
+printf %s "checking the name lister ($NM) interface... " >&6; }
+if test ${lt_cv_nm_interface+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&5
+ (eval echo "\"\$as_me:$LINENO: output\"" >&5)
+ cat conftest.out >&5
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+ fi
+ rm -f conftest*
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
+printf "%s\n" "$lt_cv_nm_interface" >&6; }
+
+# find the maximum length of command line arguments
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
+printf %s "checking the maximum length of command line arguments... " >&6; }
+if test ${lt_cv_sys_max_cmd_len+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ i=0
+ teststring=ABCD
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw* | cegcc*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ mint*)
+ # On MiNT this can take a long time and run out of memory.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
+
+ os2*)
+ # The test takes a long time on OS/2.
+ lt_cv_sys_max_cmd_len=8192
+ ;;
+
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[ ]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len" && \
+ test undefined != "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ # Make teststring a little bigger before we do anything with it.
+ # a 1K string should be a reasonable start.
+ for i in 1 2 3 4 5 6 7 8; do
+ teststring=$teststring$teststring
+ done
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while { test X`env echo "$teststring$teststring" 2>/dev/null` \
+ = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+ test 17 != "$i" # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ # Only check the string length outside the loop.
+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on
+ # massive amounts of additional arguments before passing them to the
+ # linker. It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
+
+fi
+
+if test -n "$lt_cv_sys_max_cmd_len"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
+printf "%s\n" "$lt_cv_sys_max_cmd_len" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5
+printf "%s\n" "none" >&6; }
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+
+
+
+
+
+
+: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ lt_unset=unset
+else
+ lt_unset=false
+fi
+
+
+
+
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+ lt_SP2NL='tr \040 \012'
+ lt_NL2SP='tr \015\012 \040\040'
+ ;;
+ *) # EBCDIC based system
+ lt_SP2NL='tr \100 \n'
+ lt_NL2SP='tr \r\n \100\100'
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
+printf %s "checking how to convert $build file names to $host format... " >&6; }
+if test ${lt_cv_to_host_file_cmd+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+ ;;
+ esac
+ ;;
+ *-*-cygwin* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+ ;;
+ esac
+ ;;
+ * ) # unhandled hosts (and "normal" native builds)
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+esac
+
+fi
+
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
+printf "%s\n" "$lt_cv_to_host_file_cmd" >&6; }
+
+
+
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
+printf %s "checking how to convert $build file names to toolchain format... " >&6; }
+if test ${lt_cv_to_tool_file_cmd+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ #assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ esac
+ ;;
+esac
+
+fi
+
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
+printf "%s\n" "$lt_cv_to_tool_file_cmd" >&6; }
+
+
+
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
+printf %s "checking for $LD option to reload object files... " >&6; }
+if test ${lt_cv_ld_reload_flag+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ lt_cv_ld_reload_flag='-r'
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
+printf "%s\n" "$lt_cv_ld_reload_flag" >&6; }
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ if test yes != "$GCC"; then
+ reload_cmds=false
+ fi
+ ;;
+ darwin*)
+ if test yes = "$GCC"; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}file", so it can be a program name with args.
+set dummy ${ac_tool_prefix}file; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_FILECMD+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$FILECMD"; then
+ ac_cv_prog_FILECMD="$FILECMD" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_FILECMD="${ac_tool_prefix}file"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+FILECMD=$ac_cv_prog_FILECMD
+if test -n "$FILECMD"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $FILECMD" >&5
+printf "%s\n" "$FILECMD" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_FILECMD"; then
+ ac_ct_FILECMD=$FILECMD
+ # Extract the first word of "file", so it can be a program name with args.
+set dummy file; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_FILECMD+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_FILECMD"; then
+ ac_cv_prog_ac_ct_FILECMD="$ac_ct_FILECMD" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_FILECMD="file"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_FILECMD=$ac_cv_prog_ac_ct_FILECMD
+if test -n "$ac_ct_FILECMD"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_FILECMD" >&5
+printf "%s\n" "$ac_ct_FILECMD" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_ct_FILECMD" = x; then
+ FILECMD=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ FILECMD=$ac_ct_FILECMD
+ fi
+else
+ FILECMD="$ac_cv_prog_FILECMD"
+fi
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objdump; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OBJDUMP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$OBJDUMP"; then
+ ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OBJDUMP=$ac_cv_prog_OBJDUMP
+if test -n "$OBJDUMP"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
+printf "%s\n" "$OBJDUMP" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OBJDUMP"; then
+ ac_ct_OBJDUMP=$OBJDUMP
+ # Extract the first word of "objdump", so it can be a program name with args.
+set dummy objdump; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OBJDUMP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_OBJDUMP"; then
+ ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OBJDUMP="objdump"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
+if test -n "$ac_ct_OBJDUMP"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
+printf "%s\n" "$ac_ct_OBJDUMP" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_ct_OBJDUMP" = x; then
+ OBJDUMP="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OBJDUMP=$ac_ct_OBJDUMP
+ fi
+else
+ OBJDUMP="$ac_cv_prog_OBJDUMP"
+fi
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+
+
+
+
+
+
+
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
+printf %s "checking how to recognize dependent libraries... " >&6; }
+if test ${lt_cv_deplibs_check_method+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# 'unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# that responds to the $file_magic_cmd with a given extended regex.
+# If you have 'file' or equivalent on your system and you're not sure
+# whether 'pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[4-9]*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi[45]*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='$FILECMD -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ ;;
+
+mingw* | pw32*)
+ # Base MSYS/MinGW do not provide the 'file' command needed by
+ # func_win32_libid shell function, so use a weaker test based on 'objdump',
+ # unless we find 'file', for example because we are cross-compiling.
+ if ( file / ) >/dev/null 2>&1; then
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+ # Keep this pattern in sync with the one in func_win32_libid.
+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+
+cegcc*)
+ # use the weaker test based on 'objdump'. See mingw*.
+ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+freebsd* | dragonfly* | midnightbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=$FILECMD
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+haiku*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=$FILECMD
+ case $host_cpu in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+interix[3-9]*)
+ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+netbsd* | netbsdelf*-gnu)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=$FILECMD
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+*nto* | *qnx*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+openbsd* | bitrig*)
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+rdos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.3*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ pc)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+
+tpf*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+os2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
+printf "%s\n" "$lt_cv_deplibs_check_method" >&6; }
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+ case $host_os in
+ mingw* | pw32*)
+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+ want_nocaseglob=yes
+ else
+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
+ fi
+ ;;
+ esac
+fi
+
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_DLLTOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$DLLTOOL"; then
+ ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DLLTOOL=$ac_cv_prog_DLLTOOL
+if test -n "$DLLTOOL"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
+printf "%s\n" "$DLLTOOL" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DLLTOOL"; then
+ ac_ct_DLLTOOL=$DLLTOOL
+ # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_DLLTOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_DLLTOOL"; then
+ ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DLLTOOL="dlltool"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
+if test -n "$ac_ct_DLLTOOL"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
+printf "%s\n" "$ac_ct_DLLTOOL" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_ct_DLLTOOL" = x; then
+ DLLTOOL="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DLLTOOL=$ac_ct_DLLTOOL
+ fi
+else
+ DLLTOOL="$ac_cv_prog_DLLTOOL"
+fi
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+
+
+
+
+
+
+
+
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
+printf %s "checking how to associate runtime and link libraries... " >&6; }
+if test ${lt_cv_sharedlib_from_linklib_cmd+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+ # two different shell functions defined in ltmain.sh;
+ # decide which one to use based on capabilities of $DLLTOOL
+ case `$DLLTOOL --help 2>&1` in
+ *--identify-strict*)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+ ;;
+ *)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+ ;;
+ esac
+ ;;
+*)
+ # fallback: assume linklib IS sharedlib
+ lt_cv_sharedlib_from_linklib_cmd=$ECHO
+ ;;
+esac
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
+printf "%s\n" "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ for ac_prog in ar
+ do
+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
+set dummy $ac_tool_prefix$ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_AR+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$AR"; then
+ ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+printf "%s\n" "$AR" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+ test -n "$AR" && break
+ done
+fi
+if test -z "$AR"; then
+ ac_ct_AR=$AR
+ for ac_prog in ar
+do
+ # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_AR+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_AR"; then
+ ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_AR="$ac_prog"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+printf "%s\n" "$ac_ct_AR" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+ test -n "$ac_ct_AR" && break
+done
+
+ if test "x$ac_ct_AR" = x; then
+ AR="false"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ AR=$ac_ct_AR
+ fi
+fi
+
+: ${AR=ar}
+
+
+
+
+
+
+# Use ARFLAGS variable as AR's operation code to sync the variable naming with
+# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have
+# higher priority because thats what people were doing historically (setting
+# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS
+# variable obsoleted/removed.
+
+test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr}
+lt_ar_flags=$AR_FLAGS
+
+
+
+
+
+
+# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override
+# by AR_FLAGS because that was never working and AR_FLAGS is about to die.
+
+
+
+
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
+printf %s "checking for archiver @FILE support... " >&6; }
+if test ${lt_cv_ar_at_file+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ lt_cv_ar_at_file=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ echo conftest.$ac_objext > conftest.lst
+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+ (eval $lt_ar_try) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if test 0 -eq "$ac_status"; then
+ # Ensure the archiver fails upon bogus file names.
+ rm -f conftest.$ac_objext libconftest.a
+ { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
+ (eval $lt_ar_try) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ if test 0 -ne "$ac_status"; then
+ lt_cv_ar_at_file=@
+ fi
+ fi
+ rm -f conftest.* libconftest.a
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
+printf "%s\n" "$lt_cv_ar_at_file" >&6; }
+
+if test no = "$lt_cv_ar_at_file"; then
+ archiver_list_spec=
+else
+ archiver_list_spec=$lt_cv_ar_at_file
+fi
+
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_STRIP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$STRIP"; then
+ ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+printf "%s\n" "$STRIP" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+ ac_ct_STRIP=$STRIP
+ # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_STRIP+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_STRIP"; then
+ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_STRIP="strip"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+printf "%s\n" "$ac_ct_STRIP" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_ct_STRIP" = x; then
+ STRIP=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ STRIP=$ac_ct_STRIP
+ fi
+else
+ STRIP="$ac_cv_prog_STRIP"
+fi
+
+test -z "$STRIP" && STRIP=:
+
+
+
+
+
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ranlib; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_RANLIB+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$RANLIB"; then
+ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+RANLIB=$ac_cv_prog_RANLIB
+if test -n "$RANLIB"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
+printf "%s\n" "$RANLIB" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_RANLIB"; then
+ ac_ct_RANLIB=$RANLIB
+ # Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_RANLIB+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_RANLIB"; then
+ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_RANLIB="ranlib"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
+if test -n "$ac_ct_RANLIB"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
+printf "%s\n" "$ac_ct_RANLIB" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_ct_RANLIB" = x; then
+ RANLIB=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ RANLIB=$ac_ct_RANLIB
+ fi
+else
+ RANLIB="$ac_cv_prog_RANLIB"
+fi
+
+test -z "$RANLIB" && RANLIB=:
+
+
+
+
+
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ bitrig* | openbsd*)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
+ ;;
+ *)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
+fi
+
+case $host_os in
+ darwin*)
+ lock_old_archive_extraction=yes ;;
+ *)
+ lock_old_archive_extraction=no ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
+printf %s "checking command to parse $NM output from $compiler object... " >&6; }
+if test ${lt_cv_sys_global_symbol_pipe+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[BCDEGRST]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[BCDT]'
+ ;;
+cygwin* | mingw* | pw32* | cegcc*)
+ symcode='[ABCDGISTW]'
+ ;;
+hpux*)
+ if test ia64 = "$host_cpu"; then
+ symcode='[ABCDEGRST]'
+ fi
+ ;;
+irix* | nonstopux*)
+ symcode='[BCDEGRST]'
+ ;;
+osf*)
+ symcode='[BCDEGQRST]'
+ ;;
+solaris*)
+ symcode='[BDRT]'
+ ;;
+sco3.2v5*)
+ symcode='[DT]'
+ ;;
+sysv4.2uw2*)
+ symcode='[DT]'
+ ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+ symcode='[ABDT]'
+ ;;
+sysv4)
+ symcode='[DFNSTU]'
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[ABCDGIRSTW]' ;;
+esac
+
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Gets list of data symbols to import.
+ lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'"
+ # Adjust the below global symbol transforms to fixup imported variables.
+ lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
+ lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
+ lt_c_name_lib_hook="\
+ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\
+ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'"
+else
+ # Disable hooks by default.
+ lt_cv_sys_global_symbol_to_import=
+ lt_cdecl_hook=
+ lt_c_name_hook=
+ lt_c_name_lib_hook=
+fi
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="$SED -n"\
+$lt_cdecl_hook\
+" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\
+$lt_c_name_hook\
+" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
+
+# Transform an extracted symbol line into symbol name with lib prefix and
+# symbol address.
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\
+$lt_c_name_lib_hook\
+" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+ # Write the raw and C identifiers.
+ if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Fake it for dumpbin and say T for any non-static function,
+ # D for any global variable and I for any imported variable.
+ # Also find C++ and __fastcall symbols from MSVC++ or ICC,
+ # which start with @ or ?.
+ lt_cv_sys_global_symbol_pipe="$AWK '"\
+" {last_section=section; section=\$ 3};"\
+" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
+" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
+" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
+" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
+" \$ 0!~/External *\|/{next};"\
+" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+" {if(hide[section]) next};"\
+" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
+" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
+" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
+" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
+" ' prfx=^$ac_symprfx"
+ else
+ lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+
+ rm -f conftest*
+ cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&5
+ if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&5 && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
+ relocations are performed -- see ld's documentation on pseudo-relocs. */
+# define LT_DLSYM_CONST
+#elif defined __osf__
+/* This system does not cope well with relocations in const data. */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols. */
+LT_DLSYM_CONST struct {
+ const char *name;
+ void *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[] =
+{
+ { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+ $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+ cat <<\_LT_EOF >> conftest.$ac_ext
+ {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_globsym_save_LIBS=$LIBS
+ lt_globsym_save_CFLAGS=$CFLAGS
+ LIBS=conftstm.$ac_objext
+ CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s conftest$ac_exeext; then
+ pipe_works=yes
+ fi
+ LIBS=$lt_globsym_save_LIBS
+ CFLAGS=$lt_globsym_save_CFLAGS
+ else
+ echo "cannot find nm_test_func in $nlist" >&5
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&5
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
+ fi
+ else
+ echo "$progname: failed program was:" >&5
+ cat conftest.$ac_ext >&5
+ fi
+ rm -rf conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test yes = "$pipe_works"; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+
+fi
+
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5
+printf "%s\n" "failed" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5
+printf "%s\n" "ok" >&6; }
+fi
+
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
+ nm_file_list_spec='@'
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
+printf %s "checking for sysroot... " >&6; }
+
+# Check whether --with-sysroot was given.
+if test ${with_sysroot+y}
+then :
+ withval=$with_sysroot;
+else $as_nop
+ with_sysroot=no
+fi
+
+
+lt_sysroot=
+case $with_sysroot in #(
+ yes)
+ if test yes = "$GCC"; then
+ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+ fi
+ ;; #(
+ /*)
+ lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
+ ;; #(
+ no|'')
+ ;; #(
+ *)
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5
+printf "%s\n" "$with_sysroot" >&6; }
+ as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
+ ;;
+esac
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
+printf "%s\n" "${lt_sysroot:-no}" >&6; }
+
+
+
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5
+printf %s "checking for a working dd... " >&6; }
+if test ${ac_cv_path_lt_DD+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+: ${lt_DD:=$DD}
+if test -z "$lt_DD"; then
+ ac_path_lt_DD_found=false
+ # Loop through the user's path and test for each of PROGNAME-LIST
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_prog in dd
+ do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ ac_path_lt_DD="$as_dir$ac_prog$ac_exec_ext"
+ as_fn_executable_p "$ac_path_lt_DD" || continue
+if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+ cmp -s conftest.i conftest.out \
+ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
+fi
+ $ac_path_lt_DD_found && break 3
+ done
+ done
+ done
+IFS=$as_save_IFS
+ if test -z "$ac_cv_path_lt_DD"; then
+ :
+ fi
+else
+ ac_cv_path_lt_DD=$lt_DD
+fi
+
+rm -f conftest.i conftest2.i conftest.out
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5
+printf "%s\n" "$ac_cv_path_lt_DD" >&6; }
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5
+printf %s "checking how to truncate binary pipes... " >&6; }
+if test ${lt_cv_truncate_bin+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+lt_cv_truncate_bin=
+if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+ cmp -s conftest.i conftest.out \
+ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
+fi
+rm -f conftest.i conftest2.i conftest.out
+test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5
+printf "%s\n" "$lt_cv_truncate_bin" >&6; }
+
+
+
+
+
+
+
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+ for cc_temp in $*""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+ done
+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
+# Check whether --enable-libtool-lock was given.
+if test ${enable_libtool_lock+y}
+then :
+ enableval=$enable_libtool_lock;
+fi
+
+test no = "$enable_libtool_lock" || enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out what ABI is being produced by ac_compile, and set mode
+ # options accordingly.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `$FILECMD conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE=32
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE=64
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ if test yes = "$lt_cv_prog_gnu_ld"; then
+ case `$FILECMD conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
+ case `$FILECMD conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+
+mips64*-*linux*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo '#line '$LINENO' "configure"' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ emul=elf
+ case `$FILECMD conftest.$ac_objext` in
+ *32-bit*)
+ emul="${emul}32"
+ ;;
+ *64-bit*)
+ emul="${emul}64"
+ ;;
+ esac
+ case `$FILECMD conftest.$ac_objext` in
+ *MSB*)
+ emul="${emul}btsmip"
+ ;;
+ *LSB*)
+ emul="${emul}ltsmip"
+ ;;
+ esac
+ case `$FILECMD conftest.$ac_objext` in
+ *N32*)
+ emul="${emul}n32"
+ ;;
+ esac
+ LD="${LD-ld} -m $emul"
+ fi
+ rm -rf conftest*
+ ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly. Note that the listed cases only cover the
+ # situations where additional linker options are needed (such as when
+ # doing 32-bit compilation for a host where ld defaults to 64-bit, or
+ # vice versa); the common cases where no linker options are needed do
+ # not appear in the list.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `$FILECMD conftest.o` in
+ *32-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_i386_fbsd"
+ ;;
+ x86_64-*linux*)
+ case `$FILECMD conftest.o` in
+ *x86-64*)
+ LD="${LD-ld} -m elf32_x86_64"
+ ;;
+ *)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ esac
+ ;;
+ powerpc64le-*linux*)
+ LD="${LD-ld} -m elf32lppclinux"
+ ;;
+ powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_x86_64_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ powerpcle-*linux*)
+ LD="${LD-ld} -m elf64lppc"
+ ;;
+ powerpc-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*|s390*-*tpf*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -belf"
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
+printf %s "checking whether the C compiler needs -belf... " >&6; }
+if test ${lt_cv_cc_needs_belf+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ lt_cv_cc_needs_belf=yes
+else $as_nop
+ lt_cv_cc_needs_belf=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+ ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
+printf "%s\n" "$lt_cv_cc_needs_belf" >&6; }
+ if test yes != "$lt_cv_cc_needs_belf"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS=$SAVE_CFLAGS
+ fi
+ ;;
+*-*solaris*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo 'int i;' > conftest.$ac_ext
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ case `$FILECMD conftest.o` in
+ *64-bit*)
+ case $lt_cv_prog_gnu_ld in
+ yes*)
+ case $host in
+ i?86-*-solaris*|x86_64-*-solaris*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ sparc*-*-solaris*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
+ if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+ LD=${LD-ld}_sol2
+ fi
+ ;;
+ *)
+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+ LD="${LD-ld} -64"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+esac
+
+need_locks=$enable_libtool_lock
+
+if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
+set dummy ${ac_tool_prefix}mt; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_MANIFEST_TOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$MANIFEST_TOOL"; then
+ ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
+if test -n "$MANIFEST_TOOL"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
+printf "%s\n" "$MANIFEST_TOOL" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
+ ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
+ # Extract the first word of "mt", so it can be a program name with args.
+set dummy mt; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_MANIFEST_TOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_MANIFEST_TOOL"; then
+ ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
+if test -n "$ac_ct_MANIFEST_TOOL"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
+printf "%s\n" "$ac_ct_MANIFEST_TOOL" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_ct_MANIFEST_TOOL" = x; then
+ MANIFEST_TOOL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
+ fi
+else
+ MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
+fi
+
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
+printf %s "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
+if test ${lt_cv_path_mainfest_tool+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ lt_cv_path_mainfest_tool=no
+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+ cat conftest.err >&5
+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+ lt_cv_path_mainfest_tool=yes
+ fi
+ rm -f conftest*
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
+printf "%s\n" "$lt_cv_path_mainfest_tool" >&6; }
+if test yes != "$lt_cv_path_mainfest_tool"; then
+ MANIFEST_TOOL=:
+fi
+
+
+
+
+
+
+ case $host_os in
+ rhapsody* | darwin*)
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_DSYMUTIL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$DSYMUTIL"; then
+ ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
+printf "%s\n" "$DSYMUTIL" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DSYMUTIL"; then
+ ac_ct_DSYMUTIL=$DSYMUTIL
+ # Extract the first word of "dsymutil", so it can be a program name with args.
+set dummy dsymutil; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_DSYMUTIL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_DSYMUTIL"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
+printf "%s\n" "$ac_ct_DSYMUTIL" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_ct_DSYMUTIL" = x; then
+ DSYMUTIL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ DSYMUTIL=$ac_ct_DSYMUTIL
+ fi
+else
+ DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nmedit; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_NMEDIT+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$NMEDIT"; then
+ ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
+printf "%s\n" "$NMEDIT" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NMEDIT"; then
+ ac_ct_NMEDIT=$NMEDIT
+ # Extract the first word of "nmedit", so it can be a program name with args.
+set dummy nmedit; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_NMEDIT+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_NMEDIT"; then
+ ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_NMEDIT="nmedit"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
+printf "%s\n" "$ac_ct_NMEDIT" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_ct_NMEDIT" = x; then
+ NMEDIT=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ NMEDIT=$ac_ct_NMEDIT
+ fi
+else
+ NMEDIT="$ac_cv_prog_NMEDIT"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
+set dummy ${ac_tool_prefix}lipo; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_LIPO+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$LIPO"; then
+ ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+LIPO=$ac_cv_prog_LIPO
+if test -n "$LIPO"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
+printf "%s\n" "$LIPO" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_LIPO"; then
+ ac_ct_LIPO=$LIPO
+ # Extract the first word of "lipo", so it can be a program name with args.
+set dummy lipo; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_LIPO+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_LIPO"; then
+ ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_LIPO="lipo"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
+if test -n "$ac_ct_LIPO"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
+printf "%s\n" "$ac_ct_LIPO" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_ct_LIPO" = x; then
+ LIPO=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ LIPO=$ac_ct_LIPO
+ fi
+else
+ LIPO="$ac_cv_prog_LIPO"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OTOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$OTOOL"; then
+ ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL=$ac_cv_prog_OTOOL
+if test -n "$OTOOL"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
+printf "%s\n" "$OTOOL" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL"; then
+ ac_ct_OTOOL=$OTOOL
+ # Extract the first word of "otool", so it can be a program name with args.
+set dummy otool; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OTOOL+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_OTOOL"; then
+ ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OTOOL="otool"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
+if test -n "$ac_ct_OTOOL"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
+printf "%s\n" "$ac_ct_OTOOL" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL" = x; then
+ OTOOL=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL=$ac_ct_OTOOL
+ fi
+else
+ OTOOL="$ac_cv_prog_OTOOL"
+fi
+
+ if test -n "$ac_tool_prefix"; then
+ # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
+set dummy ${ac_tool_prefix}otool64; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OTOOL64+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$OTOOL64"; then
+ ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+OTOOL64=$ac_cv_prog_OTOOL64
+if test -n "$OTOOL64"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
+printf "%s\n" "$OTOOL64" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OTOOL64"; then
+ ac_ct_OTOOL64=$OTOOL64
+ # Extract the first word of "otool64", so it can be a program name with args.
+set dummy otool64; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OTOOL64+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -n "$ac_ct_OTOOL64"; then
+ ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_OTOOL64="otool64"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
+if test -n "$ac_ct_OTOOL64"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
+printf "%s\n" "$ac_ct_OTOOL64" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ if test "x$ac_ct_OTOOL64" = x; then
+ OTOOL64=":"
+ else
+ case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+ OTOOL64=$ac_ct_OTOOL64
+ fi
+else
+ OTOOL64="$ac_cv_prog_OTOOL64"
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
+printf %s "checking for -single_module linker flag... " >&6; }
+if test ${lt_cv_apple_cc_single_mod+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ lt_cv_apple_cc_single_mod=no
+ if test -z "$LT_MULTI_MODULE"; then
+ # By default we will add the -single_module flag. You can override
+ # by either setting the environment variable LT_MULTI_MODULE
+ # non-empty at configure time, or by adding -multi_module to the
+ # link flags.
+ rm -rf libconftest.dylib*
+ echo "int foo(void){return 1;}" > conftest.c
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+ _lt_result=$?
+ # If there is a non-empty error log, and "single_module"
+ # appears in it, assume the flag caused a linker warning
+ if test -s conftest.err && $GREP single_module conftest.err; then
+ cat conftest.err >&5
+ # Otherwise, if the output was created with a 0 exit code from
+ # the compiler, it worked.
+ elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
+ lt_cv_apple_cc_single_mod=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -rf libconftest.dylib*
+ rm -f conftest.*
+ fi
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
+printf "%s\n" "$lt_cv_apple_cc_single_mod" >&6; }
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
+printf %s "checking for -exported_symbols_list linker flag... " >&6; }
+if test ${lt_cv_ld_exported_symbols_list+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ lt_cv_ld_exported_symbols_list=no
+ save_LDFLAGS=$LDFLAGS
+ echo "_main" > conftest.sym
+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ lt_cv_ld_exported_symbols_list=yes
+else $as_nop
+ lt_cv_ld_exported_symbols_list=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
+printf "%s\n" "$lt_cv_ld_exported_symbols_list" >&6; }
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
+printf %s "checking for -force_load linker flag... " >&6; }
+if test ${lt_cv_ld_force_load+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ lt_cv_ld_force_load=no
+ cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
+ echo "$AR $AR_FLAGS libconftest.a conftest.o" >&5
+ $AR $AR_FLAGS libconftest.a conftest.o 2>&5
+ echo "$RANLIB libconftest.a" >&5
+ $RANLIB libconftest.a 2>&5
+ cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
+ $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+ _lt_result=$?
+ if test -s conftest.err && $GREP force_load conftest.err; then
+ cat conftest.err >&5
+ elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
+ lt_cv_ld_force_load=yes
+ else
+ cat conftest.err >&5
+ fi
+ rm -f conftest.err libconftest.a conftest conftest.c
+ rm -rf conftest.dSYM
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
+printf "%s\n" "$lt_cv_ld_force_load" >&6; }
+ case $host_os in
+ rhapsody* | darwin1.[012])
+ _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
+ darwin1.*)
+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+ darwin*)
+ case $MACOSX_DEPLOYMENT_TARGET,$host in
+ 10.[012],*|,*powerpc*-darwin[5-8]*)
+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+ *)
+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+ esac
+ ;;
+ esac
+ if test yes = "$lt_cv_apple_cc_single_mod"; then
+ _lt_dar_single_mod='$single_module'
+ fi
+ if test yes = "$lt_cv_ld_exported_symbols_list"; then
+ _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
+ else
+ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
+ fi
+ if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
+ _lt_dsymutil='~$DSYMUTIL $lib || :'
+ else
+ _lt_dsymutil=
+ fi
+ ;;
+ esac
+
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+# string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+# string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+# "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+# VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+ case x$2 in
+ x)
+ ;;
+ *:)
+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
+ ;;
+ x:*)
+ eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
+ ;;
+ *::*)
+ eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+ eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
+ ;;
+ *)
+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
+ ;;
+ esac
+}
+
+ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h
+
+fi
+
+
+
+
+
+# Set options
+
+
+
+ enable_dlopen=no
+
+
+ enable_win32_dll=no
+
+
+ # Check whether --enable-shared was given.
+if test ${enable_shared+y}
+then :
+ enableval=$enable_shared; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else $as_nop
+ enable_shared=yes
+fi
+
+
+
+
+
+
+
+
+
+ # Check whether --enable-static was given.
+if test ${enable_static+y}
+then :
+ enableval=$enable_static; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else $as_nop
+ enable_static=yes
+fi
+
+
+
+
+
+
+
+
+
+
+# Check whether --with-pic was given.
+if test ${with_pic+y}
+then :
+ withval=$with_pic; lt_p=${PACKAGE-default}
+ case $withval in
+ yes|no) pic_mode=$withval ;;
+ *)
+ pic_mode=default
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for lt_pkg in $withval; do
+ IFS=$lt_save_ifs
+ if test "X$lt_pkg" = "X$lt_p"; then
+ pic_mode=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else $as_nop
+ pic_mode=default
+fi
+
+
+
+
+
+
+
+
+ # Check whether --enable-fast-install was given.
+if test ${enable_fast_install+y}
+then :
+ enableval=$enable_fast_install; p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac
+else $as_nop
+ enable_fast_install=yes
+fi
+
+
+
+
+
+
+
+
+ shared_archive_member_spec=
+case $host,$enable_shared in
+power*-*-aix[5-9]*,yes)
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5
+printf %s "checking which variant of shared library versioning to provide... " >&6; }
+
+# Check whether --with-aix-soname was given.
+if test ${with_aix_soname+y}
+then :
+ withval=$with_aix_soname; case $withval in
+ aix|svr4|both)
+ ;;
+ *)
+ as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5
+ ;;
+ esac
+ lt_cv_with_aix_soname=$with_aix_soname
+else $as_nop
+ if test ${lt_cv_with_aix_soname+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ lt_cv_with_aix_soname=aix
+fi
+
+ with_aix_soname=$lt_cv_with_aix_soname
+fi
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5
+printf "%s\n" "$with_aix_soname" >&6; }
+ if test aix != "$with_aix_soname"; then
+ # For the AIX way of multilib, we name the shared archive member
+ # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
+ # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
+ # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
+ # the AIX toolchain works better with OBJECT_MODE set (default 32).
+ if test 64 = "${OBJECT_MODE-32}"; then
+ shared_archive_member_spec=shr_64
+ else
+ shared_archive_member_spec=shr
+ fi
+ fi
+ ;;
+*)
+ with_aix_soname=aix
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS=$ltmain
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+test -z "$LN_S" && LN_S="ln -s"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+if test -n "${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+fi
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
+printf %s "checking for objdir... " >&6; }
+if test ${lt_cv_objdir+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
+printf "%s\n" "$lt_cv_objdir" >&6; }
+objdir=$lt_cv_objdir
+
+
+
+
+
+printf "%s\n" "#define LT_OBJDIR \"$lt_cv_objdir/\"" >>confdefs.h
+
+
+
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test set != "${COLLECT_NAMES+set}"; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a '.a' archive for static linking (except MSVC and
+# ICC, which need '.lib').
+libext=a
+
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+old_CC=$CC
+old_CFLAGS=$CFLAGS
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+func_cc_basename $compiler
+cc_basename=$func_cc_basename_result
+
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
+printf %s "checking for ${ac_tool_prefix}file... " >&6; }
+if test ${lt_cv_path_MAGIC_CMD+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD=$MAGIC_CMD
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/${ac_tool_prefix}file"; then
+ lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS=$lt_save_ifs
+ MAGIC_CMD=$lt_save_MAGIC_CMD
+ ;;
+esac
+fi
+
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+printf "%s\n" "$MAGIC_CMD" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+
+
+
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for file" >&5
+printf %s "checking for file... " >&6; }
+if test ${lt_cv_path_MAGIC_CMD+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ case $MAGIC_CMD in
+[\\/*] | ?:[\\/]*)
+ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD=$MAGIC_CMD
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
+ for ac_dir in $ac_dummy; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/file"; then
+ lt_cv_path_MAGIC_CMD=$ac_dir/"file"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS=$lt_save_ifs
+ MAGIC_CMD=$lt_save_MAGIC_CMD
+ ;;
+esac
+fi
+
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
+printf "%s\n" "$MAGIC_CMD" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+ else
+ MAGIC_CMD=:
+ fi
+fi
+
+ fi
+ ;;
+esac
+
+# Use C for the default configuration in the libtool script
+
+lt_save_CC=$CC
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+objext=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+
+
+
+
+
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+
+lt_prog_compiler_no_builtin_flag=
+
+if test yes = "$GCC"; then
+ case $cc_basename in
+ nvcc*)
+ lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
+ *)
+ lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
+ esac
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
+if test ${lt_cv_prog_compiler_rtti_exceptions+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ lt_cv_prog_compiler_rtti_exceptions=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_rtti_exceptions=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+printf "%s\n" "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then
+ lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
+else
+ :
+fi
+
+fi
+
+
+
+
+
+
+ lt_prog_compiler_wl=
+lt_prog_compiler_pic=
+lt_prog_compiler_static=
+
+
+ if test yes = "$GCC"; then
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_static='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the '-m68020' flag to GCC prevents building anything better,
+ # like '-m68040'.
+ lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ case $host_os in
+ os2*)
+ lt_prog_compiler_static='$wl-static'
+ ;;
+ esac
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ ;;
+
+ haiku*)
+ # PIC is the default for Haiku.
+ # The "-static" flag exists, but is broken.
+ lt_prog_compiler_static=
+ ;;
+
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+ ;;
+
+ interix[3-9]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ lt_prog_compiler_can_build_shared=no
+ enable_shared=no
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic=-Kconform_pic
+ fi
+ ;;
+
+ *)
+ lt_prog_compiler_pic='-fPIC'
+ ;;
+ esac
+
+ case $cc_basename in
+ nvcc*) # Cuda Compiler Driver 2.2
+ lt_prog_compiler_wl='-Xlinker '
+ if test -n "$lt_prog_compiler_pic"; then
+ lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
+ fi
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ lt_prog_compiler_wl='-Wl,'
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ lt_prog_compiler_static='-Bstatic'
+ else
+ lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ lt_prog_compiler_pic='-fno-common'
+ case $cc_basename in
+ nagfor*)
+ # NAG Fortran compiler
+ lt_prog_compiler_wl='-Wl,-Wl,,'
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ esac
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ lt_prog_compiler_pic='-DDLL_EXPORT'
+ case $host_os in
+ os2*)
+ lt_prog_compiler_static='$wl-static'
+ ;;
+ esac
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ lt_prog_compiler_pic='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ lt_prog_compiler_static='$wl-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ lt_prog_compiler_wl='-Wl,'
+ # PIC (with -KPIC) is the default.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ case $cc_basename in
+ # old Intel for x86_64, which still supported -KPIC.
+ ecc*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # flang / f18. f95 an alias for gfortran or flang on Debian
+ flang* | f18* | f95*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # icc used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ icc* | ifort*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ # Lahey Fortran 8.1.
+ lf95*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='--shared'
+ lt_prog_compiler_static='--static'
+ ;;
+ nagfor*)
+ # NAG Fortran compiler
+ lt_prog_compiler_wl='-Wl,-Wl,,'
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ tcc*)
+ # Fabrice Bellard et al's Tiny C Compiler
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ ccc*)
+ lt_prog_compiler_wl='-Wl,'
+ # All Alpha code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+ xl* | bgxl* | bgf* | mpixl*)
+ # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-qpic'
+ lt_prog_compiler_static='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | $SED 5q` in
+ *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl=''
+ ;;
+ *Sun\ F* | *Sun*Fortran*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Qoption ld '
+ ;;
+ *Sun\ C*)
+ # Sun C 5.9
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ lt_prog_compiler_wl='-Wl,'
+ ;;
+ *Intel*\ [CF]*Compiler*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fPIC'
+ lt_prog_compiler_static='-static'
+ ;;
+ *Portland\ Group*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-fpic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ newsos6)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ lt_prog_compiler_pic='-fPIC -shared'
+ ;;
+
+ osf3* | osf4* | osf5*)
+ lt_prog_compiler_wl='-Wl,'
+ # All OSF/1 code is PIC.
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ rdos*)
+ lt_prog_compiler_static='-non_shared'
+ ;;
+
+ solaris*)
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ lt_prog_compiler_wl='-Qoption ld ';;
+ *)
+ lt_prog_compiler_wl='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ lt_prog_compiler_wl='-Qoption ld '
+ lt_prog_compiler_pic='-PIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ lt_prog_compiler_pic='-Kconform_pic'
+ lt_prog_compiler_static='-Bstatic'
+ fi
+ ;;
+
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_pic='-KPIC'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ unicos*)
+ lt_prog_compiler_wl='-Wl,'
+ lt_prog_compiler_can_build_shared=no
+ ;;
+
+ uts4*)
+ lt_prog_compiler_pic='-pic'
+ lt_prog_compiler_static='-Bstatic'
+ ;;
+
+ *)
+ lt_prog_compiler_can_build_shared=no
+ ;;
+ esac
+ fi
+
+case $host_os in
+ # For platforms that do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ lt_prog_compiler_pic=
+ ;;
+ *)
+ lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
+ ;;
+esac
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
+printf %s "checking for $compiler option to produce PIC... " >&6; }
+if test ${lt_cv_prog_compiler_pic+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
+printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; }
+lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$lt_prog_compiler_pic"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if test ${lt_cv_prog_compiler_pic_works+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ lt_cv_prog_compiler_pic_works=no
+ ac_outfile=conftest.$ac_objext
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_pic_works=yes
+ fi
+ fi
+ $RM conftest*
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
+printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_pic_works"; then
+ case $lt_prog_compiler_pic in
+ "" | " "*) ;;
+ *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
+ esac
+else
+ lt_prog_compiler_pic=
+ lt_prog_compiler_can_build_shared=no
+fi
+
+fi
+
+
+
+
+
+
+
+
+
+
+
+#
+# Check to make sure the static flag actually works.
+#
+wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test ${lt_cv_prog_compiler_static_works+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ lt_cv_prog_compiler_static_works=no
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ else
+ lt_cv_prog_compiler_static_works=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS=$save_LDFLAGS
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
+printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; }
+
+if test yes = "$lt_cv_prog_compiler_static_works"; then
+ :
+else
+ lt_prog_compiler_static=
+fi
+
+
+
+
+
+
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test ${lt_cv_prog_compiler_c_o+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
+printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
+if test ${lt_cv_prog_compiler_c_o+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ lt_cv_prog_compiler_c_o=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&5
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler_c_o=yes
+ fi
+ fi
+ chmod u+w . 2>&5
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
+printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; }
+
+
+
+
+hard_links=nottested
+if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then
+ # do not overwrite the value of need_locks provided by the user
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
+printf %s "checking if we can lock with hard links... " >&6; }
+ hard_links=yes
+ $RM conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
+printf "%s\n" "$hard_links" >&6; }
+ if test no = "$hard_links"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5
+printf "%s\n" "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;}
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+
+
+
+
+
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
+
+ runpath_var=
+ allow_undefined_flag=
+ always_export_symbols=no
+ archive_cmds=
+ archive_expsym_cmds=
+ compiler_needs_object=no
+ enable_shared_with_static_runtimes=no
+ export_dynamic_flag_spec=
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ hardcode_automatic=no
+ hardcode_direct=no
+ hardcode_direct_absolute=no
+ hardcode_libdir_flag_spec=
+ hardcode_libdir_separator=
+ hardcode_minus_L=no
+ hardcode_shlibpath_var=unsupported
+ inherit_rpath=no
+ link_all_deplibs=unknown
+ module_cmds=
+ module_expsym_cmds=
+ old_archive_from_new_cmds=
+ old_archive_from_expsyms_cmds=
+ thread_safe_flag_spec=
+ whole_archive_flag_spec=
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ include_expsyms=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ' (' and ')$', so one must not match beginning or
+ # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
+ # as well as any symbol that contains 'd'.
+ exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
+ extract_expsyms_cmds=
+
+ case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++ or Intel C++ Compiler.
+ if test yes != "$GCC"; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC)
+ with_gnu_ld=yes
+ ;;
+ openbsd* | bitrig*)
+ with_gnu_ld=no
+ ;;
+ linux* | k*bsd*-gnu | gnu*)
+ link_all_deplibs=no
+ ;;
+ esac
+
+ ld_shlibs=yes
+
+ # On some targets, GNU ld is compatible enough with the native linker
+ # that we're better off using the native interface for both.
+ lt_use_gnu_ld_interface=no
+ if test yes = "$with_gnu_ld"; then
+ case $host_os in
+ aix*)
+ # The AIX port of GNU ld has always aspired to compatibility
+ # with the native linker. However, as the warning in the GNU ld
+ # block says, versions before 2.19.5* couldn't really create working
+ # shared libraries, regardless of the interface used.
+ case `$LD -v 2>&1` in
+ *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+ *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
+ *\ \(GNU\ Binutils\)\ [3-9]*) ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ fi
+
+ if test yes = "$lt_use_gnu_ld_interface"; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='$wl'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ export_dynamic_flag_spec='$wl--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+ whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+ else
+ whole_archive_flag_spec=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in
+ *GNU\ gold*) supports_anon_versioning=yes ;;
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix[3-9]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test ia64 != "$host_cpu"; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+
+_LT_EOF
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ allow_undefined_flag=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
+ # as there is no search path for DLLs.
+ hardcode_libdir_flag_spec='-L$libdir'
+ export_dynamic_flag_spec='$wl--export-all-symbols'
+ allow_undefined_flag=unsupported
+ always_export_symbols=no
+ enable_shared_with_static_runtimes=yes
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
+ exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file, use it as
+ # is; otherwise, prepend EXPORTS...
+ archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ haiku*)
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ link_all_deplibs=yes
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ shrext_cmds=.dll
+ archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ enable_shared_with_static_runtimes=yes
+ file_list_spec='@'
+ ;;
+
+ interix[3-9]*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+ export_dynamic_flag_spec='$wl-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ archive_expsym_cmds='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+
+ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+ tmp_diet=no
+ if test linux-dietlibc = "$host_os"; then
+ case $cc_basename in
+ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
+ esac
+ fi
+ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+ && test no = "$tmp_diet"
+ then
+ tmp_addflag=' $pic_flag'
+ tmp_sharedflag='-shared'
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group f77 and f90 compilers
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ lf95*) # Lahey Fortran 8.1
+ whole_archive_flag_spec=
+ tmp_sharedflag='--shared' ;;
+ nagfor*) # NAGFOR 5.3
+ tmp_sharedflag='-Wl,-shared' ;;
+ xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+ tmp_addflag= ;;
+ nvcc*) # Cuda Compiler Driver 2.2
+ whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ compiler_needs_object=yes
+ ;;
+ esac
+ case `$CC -V 2>&1 | $SED 5q` in
+ *Sun\ C*) # Sun C 5.9
+ whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ compiler_needs_object=yes
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ esac
+ archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+
+ if test yes = "$supports_anon_versioning"; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
+ fi
+
+ case $cc_basename in
+ tcc*)
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ export_dynamic_flag_spec='-rdynamic'
+ ;;
+ xlf* | bgf* | bgxlf* | mpixlf*)
+ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+ whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+ if test yes = "$supports_anon_versioning"; then
+ archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ netbsd* | netbsdelf*-gnu)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris*)
+ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
+ ld_shlibs=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
+*** reliably create shared libraries on SCO systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ ;;
+ *)
+ # For security reasons, it is highly recommended that you always
+ # use absolute paths for naming shared libraries, and exclude the
+ # DT_RUNPATH tag from executables and libraries. But doing so
+ # requires that you compile everything twice, which is a pain.
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+ ;;
+
+ sunos4*)
+ archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ ld_shlibs=no
+ fi
+ ;;
+ esac
+
+ if test no = "$ld_shlibs"; then
+ runpath_var=
+ hardcode_libdir_flag_spec=
+ export_dynamic_flag_spec=
+ whole_archive_flag_spec=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ hardcode_minus_L=yes
+ if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ hardcode_direct=unsupported
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test ia64 = "$host_cpu"; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+ # Without the "-l" option, or with the "-B" option, AIX nm treats
+ # weak defined symbols like other global defined symbols, whereas
+ # GNU nm marks them as "W".
+ # While the 'weak' keyword is ignored in the Export File, we need
+ # it in the Import File for the 'aix-soname' feature, so we have
+ # to replace the "-B" option with "-P" for AIX nm.
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
+ else
+ export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # have runtime linking enabled, and use it for executables.
+ # For shared libraries, we enable/disable runtime linking
+ # depending on the kind of the shared library created -
+ # when "with_aix_soname,aix_use_runtimelinking" is:
+ # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables
+ # "aix,yes" lib.so shared, rtl:yes, for executables
+ # lib.a static archive
+ # "both,no" lib.so.V(shr.o) shared, rtl:yes
+ # lib.a(lib.so.V) shared, rtl:no, for executables
+ # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a(lib.so.V) shared, rtl:no
+ # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a static archive
+ case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
+ for ld_flag in $LDFLAGS; do
+ if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # With aix-soname=svr4, we create the lib.so.V shared archives only,
+ # so we don't have lib.a shared libs to link our executables.
+ # We have to force runtime linking in this case.
+ aix_use_runtimelinking=yes
+ LDFLAGS="$LDFLAGS -Wl,-brtl"
+ fi
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ archive_cmds=''
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ file_list_spec='$wl-f,'
+ case $with_aix_soname,$aix_use_runtimelinking in
+ aix,*) ;; # traditional, no import file
+ svr4,* | *,yes) # use import file
+ # The Import File defines what to hardcode.
+ hardcode_direct=no
+ hardcode_direct_absolute=no
+ ;;
+ esac
+
+ if test yes = "$GCC"; then
+ case $host_os in aix4.[012]|aix4.[012].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`$CC -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ hardcode_direct=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ hardcode_minus_L=yes
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_libdir_separator=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag="$shared_flag "'$wl-G'
+ fi
+ # Need to ensure runtime linking is disabled for the traditional
+ # shared library, or the linker may eventually find shared libraries
+ # /with/ Import File - we do not want to mix them.
+ shared_flag_aix='-shared'
+ shared_flag_svr4='-shared $wl-G'
+ else
+ # not using gcc
+ if test ia64 = "$host_cpu"; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag='$wl-G'
+ else
+ shared_flag='$wl-bM:SRE'
+ fi
+ shared_flag_aix='$wl-bM:SRE'
+ shared_flag_svr4='$wl-G'
+ fi
+ fi
+
+ export_dynamic_flag_spec='$wl-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ always_export_symbols=yes
+ if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ allow_undefined_flag='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ if test set = "${lt_cv_aix_libpath+set}"; then
+ aix_libpath=$lt_cv_aix_libpath
+else
+ if test ${lt_cv_aix_libpath_+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+
+ lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\([^ ]*\) *$/\1/
+ p
+ }
+ }'
+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=/usr/lib:/lib
+ fi
+
+fi
+
+ aix_libpath=$lt_cv_aix_libpath_
+fi
+
+ hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
+ archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
+ else
+ if test ia64 = "$host_cpu"; then
+ hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib'
+ allow_undefined_flag="-z nodefs"
+ archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ if test set = "${lt_cv_aix_libpath+set}"; then
+ aix_libpath=$lt_cv_aix_libpath
+else
+ if test ${lt_cv_aix_libpath_+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+
+ lt_aix_libpath_sed='
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\([^ ]*\) *$/\1/
+ p
+ }
+ }'
+ lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+ if test -z "$lt_cv_aix_libpath_"; then
+ lt_cv_aix_libpath_=/usr/lib:/lib
+ fi
+
+fi
+
+ aix_libpath=$lt_cv_aix_libpath_
+fi
+
+ hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ no_undefined_flag=' $wl-bernotok'
+ allow_undefined_flag=' $wl-berok'
+ if test yes = "$with_gnu_ld"; then
+ # We only use this code for GNU lds that support --whole-archive.
+ whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive'
+ else
+ # Exported symbols can be pulled into shared objects from archives
+ whole_archive_flag_spec='$convenience'
+ fi
+ archive_cmds_need_lc=yes
+ archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+ # -brtl affects multiple linker settings, -berok does not and is overridden later
+ compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`'
+ if test svr4 != "$with_aix_soname"; then
+ # This is similar to how AIX traditionally builds its shared libraries.
+ archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+ fi
+ if test aix != "$with_aix_soname"; then
+ archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+ else
+ # used by -dlpreopen to get the symbols
+ archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir'
+ fi
+ archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ archive_expsym_cmds=''
+ ;;
+ m68k)
+ archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ ;;
+ esac
+ ;;
+
+ bsdi[45]*)
+ export_dynamic_flag_spec=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++ or Intel C++ Compiler.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ case $cc_basename in
+ cl* | icl*)
+ # Native MSVC or ICC
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ always_export_symbols=yes
+ file_list_spec='@'
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+ archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then
+ cp "$export_symbols" "$output_objdir/$soname.def";
+ echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+ else
+ $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+ fi~
+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+ linknames='
+ # The linker will not automatically build a static lib if we build a DLL.
+ # _LT_TAGVAR(old_archive_from_new_cmds, )='true'
+ enable_shared_with_static_runtimes=yes
+ exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+ export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
+ # Don't use ranlib
+ old_postinstall_cmds='chmod 644 $oldlib'
+ postlink_cmds='lt_outputfile="@OUTPUT@"~
+ lt_tool_outputfile="@TOOL_OUTPUT@"~
+ case $lt_outputfile in
+ *.exe|*.EXE) ;;
+ *)
+ lt_outputfile=$lt_outputfile.exe
+ lt_tool_outputfile=$lt_tool_outputfile.exe
+ ;;
+ esac~
+ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+ $RM "$lt_outputfile.manifest";
+ fi'
+ ;;
+ *)
+ # Assume MSVC and ICC wrapper
+ hardcode_libdir_flag_spec=' '
+ allow_undefined_flag=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ old_archive_from_new_cmds='true'
+ # FIXME: Should let the user specify the lib program.
+ old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
+ enable_shared_with_static_runtimes=yes
+ ;;
+ esac
+ ;;
+
+ darwin* | rhapsody*)
+
+
+ archive_cmds_need_lc=no
+ hardcode_direct=no
+ hardcode_automatic=yes
+ hardcode_shlibpath_var=unsupported
+ if test yes = "$lt_cv_ld_force_load"; then
+ whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+
+ else
+ whole_archive_flag_spec=''
+ fi
+ link_all_deplibs=yes
+ allow_undefined_flag=$_lt_dar_allow_undefined
+ case $cc_basename in
+ ifort*|nagfor*) _lt_dar_can_shared=yes ;;
+ *) _lt_dar_can_shared=$GCC ;;
+ esac
+ if test yes = "$_lt_dar_can_shared"; then
+ output_verbose_link_cmd=func_echo_all
+ archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
+ module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
+ archive_expsym_cmds="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+ module_expsym_cmds="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
+
+ else
+ ld_shlibs=no
+ fi
+
+ ;;
+
+ dgux*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2.*)
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly* | midnightbsd*)
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ hpux9*)
+ if test yes = "$GCC"; then
+ archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ else
+ archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ fi
+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ export_dynamic_flag_spec='$wl-E'
+ ;;
+
+ hpux10*)
+ if test yes,no = "$GCC,$with_gnu_ld"; then
+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ if test no = "$with_gnu_ld"; then
+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+ hardcode_libdir_separator=:
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='$wl-E'
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ fi
+ ;;
+
+ hpux11*)
+ if test yes,no = "$GCC,$with_gnu_ld"; then
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case $host_cpu in
+ hppa*64*)
+ archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+
+ # Older versions of the 11.00 compiler do not understand -b yet
+ # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
+printf %s "checking if $CC understands -b... " >&6; }
+if test ${lt_cv_prog_compiler__b+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ lt_cv_prog_compiler__b=no
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -b"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&5
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ lt_cv_prog_compiler__b=yes
+ fi
+ else
+ lt_cv_prog_compiler__b=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS=$save_LDFLAGS
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
+printf "%s\n" "$lt_cv_prog_compiler__b" >&6; }
+
+if test yes = "$lt_cv_prog_compiler__b"; then
+ archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+else
+ archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+fi
+
+ ;;
+ esac
+ fi
+ if test no = "$with_gnu_ld"; then
+ hardcode_libdir_flag_spec='$wl+b $wl$libdir'
+ hardcode_libdir_separator=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ hardcode_direct=no
+ hardcode_shlibpath_var=no
+ ;;
+ *)
+ hardcode_direct=yes
+ hardcode_direct_absolute=yes
+ export_dynamic_flag_spec='$wl-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ hardcode_minus_L=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test yes = "$GCC"; then
+ archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+ # This should be the same for all languages, so no per-tag cache variable.
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
+printf %s "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
+if test ${lt_cv_irix_exported_symbol+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+int foo (void) { return 0; }
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ lt_cv_irix_exported_symbol=yes
+else $as_nop
+ lt_cv_irix_exported_symbol=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
+printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
+ if test yes = "$lt_cv_irix_exported_symbol"; then
+ archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
+ fi
+ link_all_deplibs=no
+ else
+ archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ hardcode_libdir_separator=:
+ inherit_rpath=yes
+ link_all_deplibs=yes
+ ;;
+
+ linux*)
+ case $cc_basename in
+ tcc*)
+ # Fabrice Bellard et al's Tiny C Compiler
+ ld_shlibs=yes
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ ;;
+ esac
+ ;;
+
+ netbsd* | netbsdelf*-gnu)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ newsos6)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ hardcode_libdir_separator=:
+ hardcode_shlibpath_var=no
+ ;;
+
+ *nto* | *qnx*)
+ ;;
+
+ openbsd* | bitrig*)
+ if test -f /usr/libexec/ld.so; then
+ hardcode_direct=yes
+ hardcode_shlibpath_var=no
+ hardcode_direct_absolute=yes
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+ export_dynamic_flag_spec='$wl-E'
+ else
+ archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ hardcode_libdir_flag_spec='$wl-rpath,$libdir'
+ fi
+ else
+ ld_shlibs=no
+ fi
+ ;;
+
+ os2*)
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_minus_L=yes
+ allow_undefined_flag=unsupported
+ shrext_cmds=.dll
+ archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ enable_shared_with_static_runtimes=yes
+ file_list_spec='@'
+ ;;
+
+ osf3*)
+ if test yes = "$GCC"; then
+ allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ hardcode_libdir_separator=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test yes = "$GCC"; then
+ allow_undefined_flag=' $wl-expect_unresolved $wl\*'
+ archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ hardcode_libdir_flag_spec='$wl-rpath $wl$libdir'
+ else
+ allow_undefined_flag=' -expect_unresolved \*'
+ archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ hardcode_libdir_flag_spec='-rpath $libdir'
+ fi
+ archive_cmds_need_lc='no'
+ hardcode_libdir_separator=:
+ ;;
+
+ solaris*)
+ no_undefined_flag=' -z defs'
+ if test yes = "$GCC"; then
+ wlarc='$wl'
+ archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+ wlarc=''
+ archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+ ;;
+ *)
+ wlarc='$wl'
+ archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ ;;
+ esac
+ fi
+ hardcode_libdir_flag_spec='-R$libdir'
+ hardcode_shlibpath_var=no
+ case $host_os in
+ solaris2.[0-5] | solaris2.[0-5].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands '-z linker_flag'. GCC discards it without '$wl',
+ # but is careful enough not to reorder.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ if test yes = "$GCC"; then
+ whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
+ else
+ whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
+ esac
+ link_all_deplibs=yes
+ ;;
+
+ sunos4*)
+ if test sequent = "$host_vendor"; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_direct=yes
+ hardcode_minus_L=yes
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ reload_cmds='$CC -r -o $output$reload_objs'
+ hardcode_direct=no
+ ;;
+ motorola)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_direct=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ hardcode_shlibpath_var=no
+ ;;
+
+ sysv4.3*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ export_dynamic_flag_spec='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_shlibpath_var=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ ld_shlibs=yes
+ fi
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
+ no_undefined_flag='$wl-z,text'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ runpath_var='LD_RUN_PATH'
+
+ if test yes = "$GCC"; then
+ archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We CANNOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ no_undefined_flag='$wl-z,text'
+ allow_undefined_flag='$wl-z,nodefs'
+ archive_cmds_need_lc=no
+ hardcode_shlibpath_var=no
+ hardcode_libdir_flag_spec='$wl-R,$libdir'
+ hardcode_libdir_separator=':'
+ link_all_deplibs=yes
+ export_dynamic_flag_spec='$wl-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ if test yes = "$GCC"; then
+ archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ uts4*)
+ archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ hardcode_libdir_flag_spec='-L$libdir'
+ hardcode_shlibpath_var=no
+ ;;
+
+ *)
+ ld_shlibs=no
+ ;;
+ esac
+
+ if test sni = "$host_vendor"; then
+ case $host in
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ export_dynamic_flag_spec='$wl-Blargedynsym'
+ ;;
+ esac
+ fi
+ fi
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
+printf "%s\n" "$ld_shlibs" >&6; }
+test no = "$ld_shlibs" && can_build_shared=no
+
+with_gnu_ld=$with_gnu_ld
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$archive_cmds_need_lc" in
+x|xyes)
+ # Assume -lc should be added
+ archive_cmds_need_lc=yes
+
+ if test yes,yes = "$GCC,$enable_shared"; then
+ case $archive_cmds in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
+printf %s "checking whether -lc should be explicitly linked in... " >&6; }
+if test ${lt_cv_archive_cmds_need_lc+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ $RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
+ (eval $ac_compile) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$lt_prog_compiler_wl
+ pic_flag=$lt_prog_compiler_pic
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$allow_undefined_flag
+ allow_undefined_flag=
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
+ (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }
+ then
+ lt_cv_archive_cmds_need_lc=no
+ else
+ lt_cv_archive_cmds_need_lc=yes
+ fi
+ allow_undefined_flag=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
+printf "%s\n" "$lt_cv_archive_cmds_need_lc" >&6; }
+ archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
+printf %s "checking dynamic linker characteristics... " >&6; }
+
+if test yes = "$GCC"; then
+ case $host_os in
+ darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
+ *) lt_awk_arg='/^libraries:/' ;;
+ esac
+ case $host_os in
+ mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;;
+ *) lt_sed_strip_eq='s|=/|/|g' ;;
+ esac
+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+ case $lt_search_path_spec in
+ *\;*)
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+ ;;
+ *)
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ esac
+ # Ok, now we have the path, separated by spaces, we can step through it
+ # and add multilib dir if necessary...
+ lt_tmp_lt_search_path_spec=
+ lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+ # ...but if some path component already ends with the multilib dir we assume
+ # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
+ case "$lt_multi_os_dir; $lt_search_path_spec " in
+ "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
+ lt_multi_os_dir=
+ ;;
+ esac
+ for lt_sys_path in $lt_search_path_spec; do
+ if test -d "$lt_sys_path$lt_multi_os_dir"; then
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
+ elif test -n "$lt_multi_os_dir"; then
+ test -d "$lt_sys_path" && \
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+ fi
+ done
+ lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
+BEGIN {RS = " "; FS = "/|\n";} {
+ lt_foo = "";
+ lt_count = 0;
+ for (lt_i = NF; lt_i > 0; lt_i--) {
+ if ($lt_i != "" && $lt_i != ".") {
+ if ($lt_i == "..") {
+ lt_count++;
+ } else {
+ if (lt_count == 0) {
+ lt_foo = "/" $lt_i lt_foo;
+ } else {
+ lt_count--;
+ }
+ }
+ }
+ }
+ if (lt_foo != "") { lt_freq[lt_foo]++; }
+ if (lt_freq[lt_foo] == 1) { print lt_foo; }
+}'`
+ # AWK program above erroneously prepends '/' to C:/dos/paths
+ # for these hosts.
+ case $host_os in
+ mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+ $SED 's|/\([A-Za-z]:\)|\1|g'` ;;
+ esac
+ sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=.so
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+
+
+case $host_os in
+aix3*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+
+aix[4-9]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 supports IA64
+ library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line '#! .'. This would cause the generated library to
+ # depend on '.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[01] | aix4.[01].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # Using Import Files as archive members, it is possible to support
+ # filename-based versioning of shared library archives on AIX. While
+ # this would work for both with and without runtime linking, it will
+ # prevent static linking of such archives. So we do filename-based
+ # shared library versioning with .so extension only, which is used
+ # when both runtime linking and shared linking is enabled.
+ # Unfortunately, runtime linking may impact performance, so we do
+ # not want this to be the default eventually. Also, we use the
+ # versioned .so libs for executables only if there is the -brtl
+ # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
+ # To allow for filename-based versioning support, we need to create
+ # libNAME.so.V as an archive file, containing:
+ # *) an Import File, referring to the versioned filename of the
+ # archive as well as the shared archive member, telling the
+ # bitwidth (32 or 64) of that shared object, and providing the
+ # list of exported symbols of that shared object, eventually
+ # decorated with the 'weak' keyword
+ # *) the shared object with the F_LOADONLY flag set, to really avoid
+ # it being seen by the linker.
+ # At run time we better use the real file rather than another symlink,
+ # but for link time we create the symlink libNAME.so -> libNAME.so.V
+
+ case $with_aix_soname,$aix_use_runtimelinking in
+ # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ aix,yes) # traditional libtool
+ dynamic_linker='AIX unversionable lib.so'
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ ;;
+ aix,no) # traditional AIX only
+ dynamic_linker='AIX lib.a(lib.so.V)'
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='$libname$release.a $libname.a'
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+ svr4,*) # full svr4 only
+ dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)"
+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+ # We do not specify a path in Import Files, so LIBPATH fires.
+ shlibpath_overrides_runpath=yes
+ ;;
+ *,yes) # both, prefer svr4
+ dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)"
+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+ # unpreferred sharedlib libNAME.a needs extra handling
+ postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
+ postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
+ # We do not specify a path in Import Files, so LIBPATH fires.
+ shlibpath_overrides_runpath=yes
+ ;;
+ *,no) # both, prefer aix
+ dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)"
+ library_names_spec='$libname$release.a $libname.a'
+ soname_spec='$libname$release$shared_ext$major'
+ # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
+ postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
+ postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
+ ;;
+ esac
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ case $host_cpu in
+ powerpc)
+ # Since July 2007 AmigaOS4 officially supports .so libraries.
+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ ;;
+ m68k)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+ esac
+ ;;
+
+beos*)
+ library_names_spec='$libname$shared_ext'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[45]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+ version_type=windows
+ shrext_cmds=.dll
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$cc_basename in
+ yes,*)
+ # gcc
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
+ ;;
+ mingw* | cegcc*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ ;;
+
+ *,cl* | *,icl*)
+ # Native MSVC or ICC
+ libname_spec='$name'
+ soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
+ library_names_spec='$libname.dll.lib'
+
+ case $build_os in
+ mingw*)
+ sys_lib_search_path_spec=
+ lt_save_ifs=$IFS
+ IFS=';'
+ for lt_path in $LIB
+ do
+ IFS=$lt_save_ifs
+ # Let DOS variable expansion print the short 8.3 style file name.
+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+ done
+ IFS=$lt_save_ifs
+ # Convert to MSYS style.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
+ ;;
+ cygwin*)
+ # Convert to unix form, then to dos form, then back to unix form
+ # but this time dos style (no spaces!) so that the unix form looks
+ # like /cygdrive/c/PROGRA~1:/cygdr...
+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ *)
+ sys_lib_search_path_spec=$LIB
+ if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
+ # It is most probably a Windows format PATH.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ # FIXME: find the short name or the path components, as spaces are
+ # common. (e.g. "Program Files" -> "PROGRA~1")
+ ;;
+ esac
+
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+ dynamic_linker='Win32 link.exe'
+ ;;
+
+ *)
+ # Assume MSVC and ICC wrapper
+ library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib'
+ dynamic_linker='Win32 ld.exe'
+ ;;
+ esac
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
+ soname_spec='$libname$release$major$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd* | dragonfly* | midnightbsd*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[23].*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2.*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[01]* | freebsdelf3.[01]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
+ freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+haiku*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ dynamic_linker="$host_os runtime_loader"
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ if test 32 = "$HPUX_IA64_MODE"; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ sys_lib_dlsearch_path_spec=/usr/lib/hpux32
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ sys_lib_dlsearch_path_spec=/usr/lib/hpux64
+ fi
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+ postinstall_cmds='chmod 555 $lib'
+ # or fails outright, so override atomically:
+ install_override_mode=555
+ ;;
+
+interix[3-9]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test yes = "$lt_cv_prog_gnu_ld"; then
+ version_type=linux # correct to gnu/linux during the next big refactor
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='$libname$release$shared_ext$major'
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
+ sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+linux*android*)
+ version_type=none # Android doesn't support versioned libraries.
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext'
+ soname_spec='$libname$release$shared_ext'
+ finish_cmds=
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ dynamic_linker='Android linker'
+ # Don't embed -rpath directories since the linker doesn't support them.
+ hardcode_libdir_flag_spec='-L$libdir'
+ ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+
+ # Some binutils ld are patched to set DT_RUNPATH
+ if test ${lt_cv_shlibpath_overrides_runpath+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
+ LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null
+then :
+ lt_cv_shlibpath_overrides_runpath=yes
+fi
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+
+fi
+
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Ideally, we could use ldconfig to report *all* directores which are
+ # searched for libraries, however this is still not possible. Aside from not
+ # being certain /sbin/ldconfig is available, command
+ # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
+ # even though it is searched at run-time. Try to do the best guess by
+ # appending ld.so.conf contents (and includes) to the search path.
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsdelf*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='NetBSD ld.elf_so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+*nto* | *qnx*)
+ version_type=qnx
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='ldqnx.so'
+ ;;
+
+openbsd* | bitrig*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec=/usr/lib
+ need_lib_prefix=no
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ need_version=no
+ else
+ need_version=yes
+ fi
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+os2*)
+ libname_spec='$name'
+ version_type=windows
+ shrext_cmds=.dll
+ need_version=no
+ need_lib_prefix=no
+ # OS/2 can only load a DLL with a base name of 8 characters or less.
+ soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
+ v=$($ECHO $release$versuffix | tr -d .-);
+ n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
+ $ECHO $n$v`$shared_ext'
+ library_names_spec='${libname}_dll.$libext'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=BEGINLIBPATH
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='$libname$release$shared_ext$major'
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test yes = "$with_gnu_ld"; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec; then
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
+ soname_spec='$libname$shared_ext.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=sco
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ if test yes = "$with_gnu_ld"; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+tpf*)
+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+uts4*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
+printf "%s\n" "$dynamic_linker" >&6; }
+test no = "$dynamic_linker" && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test yes = "$GCC"; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
+ sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
+fi
+
+if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
+ sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
+fi
+
+# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
+
+# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
+
+# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
+printf %s "checking how to hardcode library paths into programs... " >&6; }
+hardcode_action=
+if test -n "$hardcode_libdir_flag_spec" ||
+ test -n "$runpath_var" ||
+ test yes = "$hardcode_automatic"; then
+
+ # We can hardcode non-existent directories.
+ if test no != "$hardcode_direct" &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" &&
+ test no != "$hardcode_minus_L"; then
+ # Linking always hardcodes the temporary library directory.
+ hardcode_action=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ hardcode_action=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ hardcode_action=unsupported
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
+printf "%s\n" "$hardcode_action" >&6; }
+
+if test relink = "$hardcode_action" ||
+ test yes = "$inherit_rpath"; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test yes = "$shlibpath_overrides_runpath" ||
+ test no = "$enable_shared"; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+
+
+
+
+
+
+ if test yes != "$enable_dlopen"; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen=load_add_on
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32* | cegcc*)
+ lt_cv_dlopen=LoadLibrary
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+printf %s "checking for dlopen in -ldl... " >&6; }
+if test ${ac_cv_lib_dl_dlopen+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+int
+main (void)
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ ac_cv_lib_dl_dlopen=yes
+else $as_nop
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes
+then :
+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
+else $as_nop
+
+ lt_cv_dlopen=dyld
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+
+fi
+
+ ;;
+
+ tpf*)
+ # Don't try to run any link tests for TPF. We know it's impossible
+ # because TPF is a cross-compiler, and we know how we open DSOs.
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=no
+ ;;
+
+ *)
+ ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = xyes
+then :
+ lt_cv_dlopen=shl_load
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
+printf %s "checking for shl_load in -ldld... " >&6; }
+if test ${ac_cv_lib_dld_shl_load+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+char shl_load ();
+int
+main (void)
+{
+return shl_load ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ ac_cv_lib_dld_shl_load=yes
+else $as_nop
+ ac_cv_lib_dld_shl_load=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
+printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = xyes
+then :
+ lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld
+else $as_nop
+ ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = xyes
+then :
+ lt_cv_dlopen=dlopen
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
+printf %s "checking for dlopen in -ldl... " >&6; }
+if test ${ac_cv_lib_dl_dlopen+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldl $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+int
+main (void)
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ ac_cv_lib_dl_dlopen=yes
+else $as_nop
+ ac_cv_lib_dl_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
+printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = xyes
+then :
+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
+printf %s "checking for dlopen in -lsvld... " >&6; }
+if test ${ac_cv_lib_svld_dlopen+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsvld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+int
+main (void)
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ ac_cv_lib_svld_dlopen=yes
+else $as_nop
+ ac_cv_lib_svld_dlopen=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
+printf "%s\n" "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = xyes
+then :
+ lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
+printf %s "checking for dld_link in -ldld... " >&6; }
+if test ${ac_cv_lib_dld_dld_link+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-ldld $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+char dld_link ();
+int
+main (void)
+{
+return dld_link ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ ac_cv_lib_dld_dld_link=yes
+else $as_nop
+ ac_cv_lib_dld_dld_link=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
+printf "%s\n" "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = xyes
+then :
+ lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+
+fi
+
+ ;;
+ esac
+
+ if test no = "$lt_cv_dlopen"; then
+ enable_dlopen=no
+ else
+ enable_dlopen=yes
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS=$CPPFLAGS
+ test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS=$LDFLAGS
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS=$LIBS
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
+printf %s "checking whether a program can dlopen itself... " >&6; }
+if test ${lt_cv_dlopen_self+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test yes = "$cross_compiling"; then :
+ lt_cv_dlopen_self=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisibility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
+printf "%s\n" "$lt_cv_dlopen_self" >&6; }
+
+ if test yes = "$lt_cv_dlopen_self"; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
+printf %s "checking whether a statically linked program can dlopen itself... " >&6; }
+if test ${lt_cv_dlopen_self_static+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test yes = "$cross_compiling"; then :
+ lt_cv_dlopen_self_static=cross
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisibility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}
+_LT_EOF
+ if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
+ (eval $ac_link) 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then
+ (./conftest; exit; ) >&5 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
+ x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
+ esac
+ else :
+ # compilation failed
+ lt_cv_dlopen_self_static=no
+ fi
+fi
+rm -fr conftest*
+
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
+printf "%s\n" "$lt_cv_dlopen_self_static" >&6; }
+ fi
+
+ CPPFLAGS=$save_CPPFLAGS
+ LDFLAGS=$save_LDFLAGS
+ LIBS=$save_LIBS
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+striplib=
+old_striplib=
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
+printf %s "checking whether stripping libraries is possible... " >&6; }
+if test -z "$STRIP"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+else
+ if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+ old_striplib="$STRIP --strip-debug"
+ striplib="$STRIP --strip-unneeded"
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+ else
+ case $host_os in
+ darwin*)
+ # FIXME - insert some real tests, host_os isn't really good enough
+ striplib="$STRIP -x"
+ old_striplib="$STRIP -S"
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+ ;;
+ freebsd*)
+ if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then
+ old_striplib="$STRIP --strip-debug"
+ striplib="$STRIP --strip-unneeded"
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+ else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ fi
+ ;;
+ *)
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ ;;
+ esac
+ fi
+fi
+
+
+
+
+
+
+
+
+
+
+
+
+ # Report what library types will actually be built
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
+printf %s "checking if libtool supports shared libraries... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
+printf "%s\n" "$can_build_shared" >&6; }
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
+printf %s "checking whether to build shared libraries... " >&6; }
+ test no = "$can_build_shared" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test yes = "$enable_shared" && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+ aix[4-9]*)
+ if test ia64 != "$host_cpu"; then
+ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+ yes,aix,yes) ;; # shared object as lib.so file only
+ yes,svr4,*) ;; # shared object as lib.so archive member only
+ yes,*) enable_static=no ;; # shared object in lib.a archive as well
+ esac
+ fi
+ ;;
+ esac
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
+printf "%s\n" "$enable_shared" >&6; }
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
+printf %s "checking whether to build static libraries... " >&6; }
+ # Make sure either enable_shared or enable_static is yes.
+ test yes = "$enable_shared" || enable_static=yes
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
+printf "%s\n" "$enable_static" >&6; }
+
+
+
+
+fi
+ac_ext=c
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
+
+CC=$lt_save_CC
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ac_config_commands="$ac_config_commands libtool"
+
+
+
+
+# Only expand once:
+
+
+
+# Checks for library functions.
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for error_at_line" >&5
+printf %s "checking for error_at_line... " >&6; }
+if test ${ac_cv_lib_error_at_line+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <error.h>
+int
+main (void)
+{
+error_at_line (0, 0, "", 0, "an error occurred");
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ ac_cv_lib_error_at_line=yes
+else $as_nop
+ ac_cv_lib_error_at_line=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_error_at_line" >&5
+printf "%s\n" "$ac_cv_lib_error_at_line" >&6; }
+if test $ac_cv_lib_error_at_line = no; then
+ case " $LIBOBJS " in
+ *" error.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS error.$ac_objext"
+ ;;
+esac
+
+fi
+
+
+ac_func=
+for ac_item in $ac_func_c_list
+do
+ if test $ac_func; then
+ ac_fn_c_check_func "$LINENO" $ac_func ac_cv_func_$ac_func
+ if eval test \"x\$ac_cv_func_$ac_func\" = xyes; then
+ echo "#define $ac_item 1" >> confdefs.h
+ fi
+ ac_func=
+ else
+ ac_func=$ac_item
+ fi
+done
+
+
+
+if test "x$ac_cv_func_fork" = xyes; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working fork" >&5
+printf %s "checking for working fork... " >&6; }
+if test ${ac_cv_func_fork_works+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test "$cross_compiling" = yes
+then :
+ ac_cv_func_fork_works=cross
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main (void)
+{
+
+ /* By Ruediger Kuhlmann. */
+ return fork () < 0;
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+ ac_cv_func_fork_works=yes
+else $as_nop
+ ac_cv_func_fork_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_fork_works" >&5
+printf "%s\n" "$ac_cv_func_fork_works" >&6; }
+
+else
+ ac_cv_func_fork_works=$ac_cv_func_fork
+fi
+if test "x$ac_cv_func_fork_works" = xcross; then
+ case $host in
+ *-*-amigaos* | *-*-msdosdjgpp*)
+ # Override, as these systems have only a dummy fork() stub
+ ac_cv_func_fork_works=no
+ ;;
+ *)
+ ac_cv_func_fork_works=yes
+ ;;
+ esac
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&5
+printf "%s\n" "$as_me: WARNING: result $ac_cv_func_fork_works guessed because of cross compilation" >&2;}
+fi
+ac_cv_func_vfork_works=$ac_cv_func_vfork
+if test "x$ac_cv_func_vfork" = xyes; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working vfork" >&5
+printf %s "checking for working vfork... " >&6; }
+if test ${ac_cv_func_vfork_works+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test "$cross_compiling" = yes
+then :
+ ac_cv_func_vfork_works=cross
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+/* Thanks to Paul Eggert for this test. */
+$ac_includes_default
+#include <signal.h>
+#include <sys/wait.h>
+#ifdef HAVE_VFORK_H
+# include <vfork.h>
+#endif
+
+static void
+do_nothing (int sig)
+{
+ (void) sig;
+}
+
+/* On some sparc systems, changes by the child to local and incoming
+ argument registers are propagated back to the parent. The compiler
+ is told about this with #include <vfork.h>, but some compilers
+ (e.g. gcc -O) don't grok <vfork.h>. Test for this by using a
+ static variable whose address is put into a register that is
+ clobbered by the vfork. */
+static void
+sparc_address_test (int arg)
+{
+ static pid_t child;
+ if (!child) {
+ child = vfork ();
+ if (child < 0) {
+ perror ("vfork");
+ _exit(2);
+ }
+ if (!child) {
+ arg = getpid();
+ write(-1, "", 0);
+ _exit (arg);
+ }
+ }
+}
+
+int
+main (void)
+{
+ pid_t parent = getpid ();
+ pid_t child;
+
+ sparc_address_test (0);
+
+ /* On Solaris 2.4, changes by the child to the signal handler
+ also munge signal handlers in the parent. To detect this,
+ start by putting the parent's handler in a known state. */
+ signal (SIGTERM, SIG_DFL);
+
+ child = vfork ();
+
+ if (child == 0) {
+ /* Here is another test for sparc vfork register problems. This
+ test uses lots of local variables, at least as many local
+ variables as main has allocated so far including compiler
+ temporaries. 4 locals are enough for gcc 1.40.3 on a Solaris
+ 4.1.3 sparc, but we use 8 to be safe. A buggy compiler should
+ reuse the register of parent for one of the local variables,
+ since it will think that parent can't possibly be used any more
+ in this routine. Assigning to the local variable will thus
+ munge parent in the parent process. */
+ pid_t
+ p = getpid(), p1 = getpid(), p2 = getpid(), p3 = getpid(),
+ p4 = getpid(), p5 = getpid(), p6 = getpid(), p7 = getpid();
+ /* Convince the compiler that p..p7 are live; otherwise, it might
+ use the same hardware register for all 8 local variables. */
+ if (p != p1 || p != p2 || p != p3 || p != p4
+ || p != p5 || p != p6 || p != p7)
+ _exit(1);
+
+ /* Alter the child's signal handler. */
+ if (signal (SIGTERM, do_nothing) != SIG_DFL)
+ _exit(1);
+
+ /* On some systems (e.g. IRIX 3.3), vfork doesn't separate parent
+ from child file descriptors. If the child closes a descriptor
+ before it execs or exits, this munges the parent's descriptor
+ as well. Test for this by closing stdout in the child. */
+ _exit(close(fileno(stdout)) != 0);
+ } else {
+ int status;
+ struct stat st;
+
+ while (wait(&status) != child)
+ ;
+ return (
+ /* Was there some problem with vforking? */
+ child < 0
+
+ /* Did the child munge the parent's signal handler? */
+ || signal (SIGTERM, SIG_DFL) != SIG_DFL
+
+ /* Did the child fail? (This shouldn't happen.) */
+ || status
+
+ /* Did the vfork/compiler bug occur? */
+ || parent != getpid()
+
+ /* Did the file descriptor bug occur? */
+ || fstat(fileno(stdout), &st) != 0
+ );
+ }
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+ ac_cv_func_vfork_works=yes
+else $as_nop
+ ac_cv_func_vfork_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_vfork_works" >&5
+printf "%s\n" "$ac_cv_func_vfork_works" >&6; }
+
+fi;
+if test "x$ac_cv_func_fork_works" = xcross; then
+ ac_cv_func_vfork_works=$ac_cv_func_vfork
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&5
+printf "%s\n" "$as_me: WARNING: result $ac_cv_func_vfork_works guessed because of cross compilation" >&2;}
+fi
+
+if test "x$ac_cv_func_vfork_works" = xyes; then
+
+printf "%s\n" "#define HAVE_WORKING_VFORK 1" >>confdefs.h
+
+else
+
+printf "%s\n" "#define vfork fork" >>confdefs.h
+
+fi
+if test "x$ac_cv_func_fork_works" = xyes; then
+
+printf "%s\n" "#define HAVE_WORKING_FORK 1" >>confdefs.h
+
+fi
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
+printf %s "checking for GNU libc compatible malloc... " >&6; }
+if test ${ac_cv_func_malloc_0_nonnull+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test "$cross_compiling" = yes
+then :
+ case "$host_os" in # ((
+ # Guess yes on platforms where we know the result.
+ *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \
+ | hpux* | solaris* | cygwin* | mingw* | msys* )
+ ac_cv_func_malloc_0_nonnull=yes ;;
+ # If we don't know, assume the worst.
+ *) ac_cv_func_malloc_0_nonnull=no ;;
+ esac
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+int
+main (void)
+{
+void *p = malloc (0);
+ int result = !p;
+ free (p);
+ return result;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+ ac_cv_func_malloc_0_nonnull=yes
+else $as_nop
+ ac_cv_func_malloc_0_nonnull=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5
+printf "%s\n" "$ac_cv_func_malloc_0_nonnull" >&6; }
+if test $ac_cv_func_malloc_0_nonnull = yes
+then :
+
+printf "%s\n" "#define HAVE_MALLOC 1" >>confdefs.h
+
+else $as_nop
+ printf "%s\n" "#define HAVE_MALLOC 0" >>confdefs.h
+
+ case " $LIBOBJS " in
+ *" malloc.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS malloc.$ac_objext"
+ ;;
+esac
+
+
+printf "%s\n" "#define malloc rpl_malloc" >>confdefs.h
+
+fi
+
+
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether mbrtowc and mbstate_t are properly declared" >&5
+printf %s "checking whether mbrtowc and mbstate_t are properly declared... " >&6; }
+if test ${ac_cv_func_mbrtowc+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <wchar.h>
+int
+main (void)
+{
+wchar_t wc;
+ char const s[] = "";
+ size_t n = 1;
+ mbstate_t state;
+ return ! (sizeof state && (mbrtowc) (&wc, s, n, &state));
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ ac_cv_func_mbrtowc=yes
+else $as_nop
+ ac_cv_func_mbrtowc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mbrtowc" >&5
+printf "%s\n" "$ac_cv_func_mbrtowc" >&6; }
+ if test $ac_cv_func_mbrtowc = yes; then
+
+printf "%s\n" "#define HAVE_MBRTOWC 1" >>confdefs.h
+
+ fi
+
+
+
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5
+printf %s "checking for working mmap... " >&6; }
+if test ${ac_cv_func_mmap_fixed_mapped+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test "$cross_compiling" = yes
+then :
+ case "$host_os" in # ((
+ # Guess yes on platforms where we know the result.
+ linux*) ac_cv_func_mmap_fixed_mapped=yes ;;
+ # If we don't know, assume the worst.
+ *) ac_cv_func_mmap_fixed_mapped=no ;;
+ esac
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+/* malloc might have been renamed as rpl_malloc. */
+#undef malloc
+
+/* Thanks to Mike Haertel and Jim Avera for this test.
+ Here is a matrix of mmap possibilities:
+ mmap private not fixed
+ mmap private fixed at somewhere currently unmapped
+ mmap private fixed at somewhere already mapped
+ mmap shared not fixed
+ mmap shared fixed at somewhere currently unmapped
+ mmap shared fixed at somewhere already mapped
+ For private mappings, we should verify that changes cannot be read()
+ back from the file, nor mmap's back from the file at a different
+ address. (There have been systems where private was not correctly
+ implemented like the infamous i386 svr4.0, and systems where the
+ VM page cache was not coherent with the file system buffer cache
+ like early versions of FreeBSD and possibly contemporary NetBSD.)
+ For shared mappings, we should conversely verify that changes get
+ propagated back to all the places they're supposed to be.
+
+ Grep wants private fixed already mapped.
+ The main things grep needs to know about mmap are:
+ * does it exist and is it safe to write into the mmap'd area
+ * how to use it (BSD variants) */
+
+#include <fcntl.h>
+#include <sys/mman.h>
+
+/* This mess was copied from the GNU getpagesize.h. */
+#ifndef HAVE_GETPAGESIZE
+# ifdef _SC_PAGESIZE
+# define getpagesize() sysconf(_SC_PAGESIZE)
+# else /* no _SC_PAGESIZE */
+# ifdef HAVE_SYS_PARAM_H
+# include <sys/param.h>
+# ifdef EXEC_PAGESIZE
+# define getpagesize() EXEC_PAGESIZE
+# else /* no EXEC_PAGESIZE */
+# ifdef NBPG
+# define getpagesize() NBPG * CLSIZE
+# ifndef CLSIZE
+# define CLSIZE 1
+# endif /* no CLSIZE */
+# else /* no NBPG */
+# ifdef NBPC
+# define getpagesize() NBPC
+# else /* no NBPC */
+# ifdef PAGESIZE
+# define getpagesize() PAGESIZE
+# endif /* PAGESIZE */
+# endif /* no NBPC */
+# endif /* no NBPG */
+# endif /* no EXEC_PAGESIZE */
+# else /* no HAVE_SYS_PARAM_H */
+# define getpagesize() 8192 /* punt totally */
+# endif /* no HAVE_SYS_PARAM_H */
+# endif /* no _SC_PAGESIZE */
+
+#endif /* no HAVE_GETPAGESIZE */
+
+int
+main (void)
+{
+ char *data, *data2, *data3;
+ const char *cdata2;
+ int i, pagesize;
+ int fd, fd2;
+
+ pagesize = getpagesize ();
+
+ /* First, make a file with some known garbage in it. */
+ data = (char *) malloc (pagesize);
+ if (!data)
+ return 1;
+ for (i = 0; i < pagesize; ++i)
+ *(data + i) = rand ();
+ umask (0);
+ fd = creat ("conftest.mmap", 0600);
+ if (fd < 0)
+ return 2;
+ if (write (fd, data, pagesize) != pagesize)
+ return 3;
+ close (fd);
+
+ /* Next, check that the tail of a page is zero-filled. File must have
+ non-zero length, otherwise we risk SIGBUS for entire page. */
+ fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600);
+ if (fd2 < 0)
+ return 4;
+ cdata2 = "";
+ if (write (fd2, cdata2, 1) != 1)
+ return 5;
+ data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L);
+ if (data2 == MAP_FAILED)
+ return 6;
+ for (i = 0; i < pagesize; ++i)
+ if (*(data2 + i))
+ return 7;
+ close (fd2);
+ if (munmap (data2, pagesize))
+ return 8;
+
+ /* Next, try to mmap the file at a fixed address which already has
+ something else allocated at it. If we can, also make sure that
+ we see the same garbage. */
+ fd = open ("conftest.mmap", O_RDWR);
+ if (fd < 0)
+ return 9;
+ if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_FIXED, fd, 0L))
+ return 10;
+ for (i = 0; i < pagesize; ++i)
+ if (*(data + i) != *(data2 + i))
+ return 11;
+
+ /* Finally, make sure that changes to the mapped area do not
+ percolate back to the file as seen by read(). (This is a bug on
+ some variants of i386 svr4.0.) */
+ for (i = 0; i < pagesize; ++i)
+ *(data2 + i) = *(data2 + i) + 1;
+ data3 = (char *) malloc (pagesize);
+ if (!data3)
+ return 12;
+ if (read (fd, data3, pagesize) != pagesize)
+ return 13;
+ for (i = 0; i < pagesize; ++i)
+ if (*(data + i) != *(data3 + i))
+ return 14;
+ close (fd);
+ free (data);
+ free (data3);
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+ ac_cv_func_mmap_fixed_mapped=yes
+else $as_nop
+ ac_cv_func_mmap_fixed_mapped=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5
+printf "%s\n" "$ac_cv_func_mmap_fixed_mapped" >&6; }
+if test $ac_cv_func_mmap_fixed_mapped = yes; then
+
+printf "%s\n" "#define HAVE_MMAP 1" >>confdefs.h
+
+fi
+rm -f conftest.mmap conftest.txt
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible realloc" >&5
+printf %s "checking for GNU libc compatible realloc... " >&6; }
+if test ${ac_cv_func_realloc_0_nonnull+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test "$cross_compiling" = yes
+then :
+ case "$host_os" in # ((
+ # Guess yes on platforms where we know the result.
+ *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \
+ | hpux* | solaris* | cygwin* | mingw* | msys* )
+ ac_cv_func_realloc_0_nonnull=yes ;;
+ # If we don't know, assume the worst.
+ *) ac_cv_func_realloc_0_nonnull=no ;;
+ esac
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+
+int
+main (void)
+{
+void *p = realloc (0, 0);
+ int result = !p;
+ free (p);
+ return result;
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+ ac_cv_func_realloc_0_nonnull=yes
+else $as_nop
+ ac_cv_func_realloc_0_nonnull=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_realloc_0_nonnull" >&5
+printf "%s\n" "$ac_cv_func_realloc_0_nonnull" >&6; }
+if test $ac_cv_func_realloc_0_nonnull = yes
+then :
+
+printf "%s\n" "#define HAVE_REALLOC 1" >>confdefs.h
+
+else $as_nop
+ printf "%s\n" "#define HAVE_REALLOC 0" >>confdefs.h
+
+ case " $LIBOBJS " in
+ *" realloc.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS realloc.$ac_objext"
+ ;;
+esac
+
+
+printf "%s\n" "#define realloc rpl_realloc" >>confdefs.h
+
+fi
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working strcoll" >&5
+printf %s "checking for working strcoll... " >&6; }
+if test ${ac_cv_func_strcoll_works+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test "$cross_compiling" = yes
+then :
+ case "$host_os" in # ((
+ # Guess yes on glibc systems.
+ *-gnu*) ac_cv_func_strcoll_works=yes ;;
+ # If we don't know, assume the worst.
+ *) ac_cv_func_strcoll_works=no ;;
+ esac
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+$ac_includes_default
+int
+main (void)
+{
+return (strcoll ("abc", "def") >= 0 ||
+ strcoll ("ABC", "DEF") >= 0 ||
+ strcoll ("123", "456") >= 0)
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+ ac_cv_func_strcoll_works=yes
+else $as_nop
+ ac_cv_func_strcoll_works=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strcoll_works" >&5
+printf "%s\n" "$ac_cv_func_strcoll_works" >&6; }
+if test $ac_cv_func_strcoll_works = yes; then
+
+printf "%s\n" "#define HAVE_STRCOLL 1" >>confdefs.h
+
+fi
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for working strtod" >&5
+printf %s "checking for working strtod... " >&6; }
+if test ${ac_cv_func_strtod+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test "$cross_compiling" = yes
+then :
+ ac_cv_func_strtod=no
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+$ac_includes_default
+#ifndef strtod
+double strtod ();
+#endif
+int
+main (void)
+{
+ {
+ /* Some versions of Linux strtod mis-parse strings with leading '+'. */
+ char *string = " +69";
+ char *term;
+ double value;
+ value = strtod (string, &term);
+ if (value != 69 || term != (string + 4))
+ return 1;
+ }
+
+ {
+ /* Under Solaris 2.4, strtod returns the wrong value for the
+ terminating character under some conditions. */
+ char *string = "NaN";
+ char *term;
+ strtod (string, &term);
+ if (term != string && *(term - 1) == 0)
+ return 1;
+ }
+ return 0;
+}
+
+_ACEOF
+if ac_fn_c_try_run "$LINENO"
+then :
+ ac_cv_func_strtod=yes
+else $as_nop
+ ac_cv_func_strtod=no
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+ conftest.$ac_objext conftest.beam conftest.$ac_ext
+fi
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_strtod" >&5
+printf "%s\n" "$ac_cv_func_strtod" >&6; }
+if test $ac_cv_func_strtod = no; then
+ case " $LIBOBJS " in
+ *" strtod.$ac_objext "* ) ;;
+ *) LIBOBJS="$LIBOBJS strtod.$ac_objext"
+ ;;
+esac
+
+ac_fn_c_check_func "$LINENO" "pow" "ac_cv_func_pow"
+if test "x$ac_cv_func_pow" = xyes
+then :
+
+fi
+
+if test $ac_cv_func_pow = no; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pow in -lm" >&5
+printf %s "checking for pow in -lm... " >&6; }
+if test ${ac_cv_lib_m_pow+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lm $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+char pow ();
+int
+main (void)
+{
+return pow ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ ac_cv_lib_m_pow=yes
+else $as_nop
+ ac_cv_lib_m_pow=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_pow" >&5
+printf "%s\n" "$ac_cv_lib_m_pow" >&6; }
+if test "x$ac_cv_lib_m_pow" = xyes
+then :
+ POW_LIB=-lm
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot find library containing definition of pow" >&5
+printf "%s\n" "$as_me: WARNING: cannot find library containing definition of pow" >&2;}
+fi
+
+fi
+
+fi
+
+
+usrbin_execdir='${exec_prefix}/bin'
+
+
+if test "x$host_os" = xcygwin
+then
+ prefix=/usr
+ sysconfdir='${prefix}/etc'
+ libexecdir='${prefix}/lib'
+ localstatedir='${prefix}/var'
+ datadir='${prefix}/share'
+ mandir='${prefix}/share/man'
+ infodir='${prefix}/share/info'
+
+
+
+
+
+
+
+
+printf "%s\n" "#define USE_PROC_CTTY 1" >>confdefs.h
+
+else
+
+printf "%s\n" "#define USE_PROC_CTTY 0" >>confdefs.h
+
+fi
+
+
+
+ MKINSTALLDIRS=
+ if test -n "$ac_aux_dir"; then
+ case "$ac_aux_dir" in
+ /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
+ *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
+ esac
+ fi
+ if test -z "$MKINSTALLDIRS"; then
+ MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+ fi
+
+
+
+
+
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+ ac_executable_p="test -x"
+else
+ ac_executable_p="test -f"
+fi
+rm -f conf$$.file
+
+# Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_MSGFMT+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ case "$MSGFMT" in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+ ;;
+ *)
+ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$ac_save_IFS"
+ test -z "$ac_dir" && ac_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+ if $ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
+ (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+ ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext"
+ break 2
+ fi
+ fi
+ done
+ done
+ IFS="$ac_save_IFS"
+ test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":"
+ ;;
+esac
+fi
+MSGFMT="$ac_cv_path_MSGFMT"
+if test "$MSGFMT" != ":"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
+printf "%s\n" "$MSGFMT" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ # Extract the first word of "gmsgfmt", so it can be a program name with args.
+set dummy gmsgfmt; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_GMSGFMT+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ case $GMSGFMT in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+ ;;
+ *)
+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+ ac_cv_path_GMSGFMT="$as_dir$ac_word$ac_exec_ext"
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+ done
+IFS=$as_save_IFS
+
+ test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+ ;;
+esac
+fi
+GMSGFMT=$ac_cv_path_GMSGFMT
+if test -n "$GMSGFMT"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5
+printf "%s\n" "$GMSGFMT" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+ ac_executable_p="test -x"
+else
+ ac_executable_p="test -f"
+fi
+rm -f conf$$.file
+
+# Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_XGETTEXT+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ case "$XGETTEXT" in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+ ;;
+ *)
+ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$ac_save_IFS"
+ test -z "$ac_dir" && ac_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+ if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
+ (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+ ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext"
+ break 2
+ fi
+ fi
+ done
+ done
+ IFS="$ac_save_IFS"
+ test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+ ;;
+esac
+fi
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test "$XGETTEXT" != ":"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5
+printf "%s\n" "$XGETTEXT" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+ rm -f messages.po
+
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+ ac_executable_p="test -x"
+else
+ ac_executable_p="test -f"
+fi
+rm -f conf$$.file
+
+# Extract the first word of "msgmerge", so it can be a program name with args.
+set dummy msgmerge; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_path_MSGMERGE+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ case "$MSGMERGE" in
+ [\\/]* | ?:[\\/]*)
+ ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path.
+ ;;
+ *)
+ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS="$ac_save_IFS"
+ test -z "$ac_dir" && ac_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+ if $ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1; then
+ ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext"
+ break 2
+ fi
+ fi
+ done
+ done
+ IFS="$ac_save_IFS"
+ test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":"
+ ;;
+esac
+fi
+MSGMERGE="$ac_cv_path_MSGMERGE"
+if test "$MSGMERGE" != ":"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5
+printf "%s\n" "$MSGMERGE" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+ if test "$GMSGFMT" != ":"; then
+ if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
+ (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+ : ;
+ else
+ GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found $GMSGFMT program is not GNU msgfmt; ignore it" >&5
+printf "%s\n" "found $GMSGFMT program is not GNU msgfmt; ignore it" >&6; }
+ GMSGFMT=":"
+ fi
+ fi
+
+ if test "$XGETTEXT" != ":"; then
+ if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
+ (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+ : ;
+ else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: found xgettext program is not GNU xgettext; ignore it" >&5
+printf "%s\n" "found xgettext program is not GNU xgettext; ignore it" >&6; }
+ XGETTEXT=":"
+ fi
+ rm -f messages.po
+ fi
+
+ ac_config_commands="$ac_config_commands default-1"
+
+
+
+ if test "X$prefix" = "XNONE"; then
+ acl_final_prefix="$ac_default_prefix"
+ else
+ acl_final_prefix="$prefix"
+ fi
+ if test "X$exec_prefix" = "XNONE"; then
+ acl_final_exec_prefix='${prefix}'
+ else
+ acl_final_exec_prefix="$exec_prefix"
+ fi
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+ prefix="$acl_save_prefix"
+
+
+# Check whether --with-gnu-ld was given.
+if test ${with_gnu_ld+y}
+then :
+ withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
+else $as_nop
+ with_gnu_ld=no
+fi
+
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by GCC" >&5
+printf %s "checking for ld used by GCC... " >&6; }
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [\\/]* | [A-Za-z]:[\\/]*)
+ re_direlt='/[^/][^/]*/\.\./'
+ # Canonicalize the path of ld
+ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
+printf %s "checking for GNU ld... " >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
+printf %s "checking for non-GNU ld... " >&6; }
+fi
+if test ${acl_cv_path_LD+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ if test -z "$LD"; then
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ acl_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break ;;
+ *)
+ test "$with_gnu_ld" != yes && break ;;
+ esac
+ fi
+ done
+ IFS="$ac_save_ifs"
+else
+ acl_cv_path_LD="$LD" # Let the user override the test with a path.
+fi
+fi
+
+LD="$acl_cv_path_LD"
+if test -n "$LD"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
+printf "%s\n" "$LD" >&6; }
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
+printf %s "checking if the linker ($LD) is GNU ld... " >&6; }
+if test ${acl_cv_prog_gnu_ld+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ # I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ acl_cv_prog_gnu_ld=yes ;;
+*)
+ acl_cv_prog_gnu_ld=no ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acl_cv_prog_gnu_ld" >&5
+printf "%s\n" "$acl_cv_prog_gnu_ld" >&6; }
+with_gnu_ld=$acl_cv_prog_gnu_ld
+
+
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5
+printf %s "checking for shared library run path origin... " >&6; }
+if test ${acl_cv_rpath+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+
+ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+ . ./conftest.sh
+ rm -f ./conftest.sh
+ acl_cv_rpath=done
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5
+printf "%s\n" "$acl_cv_rpath" >&6; }
+ wl="$acl_cv_wl"
+ libext="$acl_cv_libext"
+ shlibext="$acl_cv_shlibext"
+ hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+ hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+ hardcode_direct="$acl_cv_hardcode_direct"
+ hardcode_minus_L="$acl_cv_hardcode_minus_L"
+ # Check whether --enable-rpath was given.
+if test ${enable_rpath+y}
+then :
+ enableval=$enable_rpath; :
+else $as_nop
+ enable_rpath=yes
+fi
+
+
+
+
+
+
+
+
+ use_additional=yes
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+
+# Check whether --with-libiconv-prefix was given.
+if test ${with_libiconv_prefix+y}
+then :
+ withval=$with_libiconv_prefix;
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ else
+ additional_includedir="$withval/include"
+ additional_libdir="$withval/lib"
+ fi
+ fi
+
+fi
+
+ LIBICONV=
+ LTLIBICONV=
+ INCICONV=
+ rpathdirs=
+ ltrpathdirs=
+ names_already_handled=
+ names_next_round='iconv '
+ while test -n "$names_next_round"; do
+ names_this_round="$names_next_round"
+ names_next_round=
+ for name in $names_this_round; do
+ already_handled=
+ for n in $names_already_handled; do
+ if test "$n" = "$name"; then
+ already_handled=yes
+ break
+ fi
+ done
+ if test -z "$already_handled"; then
+ names_already_handled="$names_already_handled $name"
+ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+ eval value=\"\$HAVE_LIB$uppername\"
+ if test -n "$value"; then
+ if test "$value" = yes; then
+ eval value=\"\$LIB$uppername\"
+ test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value"
+ eval value=\"\$LTLIB$uppername\"
+ test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value"
+ else
+ :
+ fi
+ else
+ found_dir=
+ found_la=
+ found_so=
+ found_a=
+ if test $use_additional = yes; then
+ if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
+ found_dir="$additional_libdir"
+ found_so="$additional_libdir/lib$name.$shlibext"
+ if test -f "$additional_libdir/lib$name.la"; then
+ found_la="$additional_libdir/lib$name.la"
+ fi
+ else
+ if test -f "$additional_libdir/lib$name.$libext"; then
+ found_dir="$additional_libdir"
+ found_a="$additional_libdir/lib$name.$libext"
+ if test -f "$additional_libdir/lib$name.la"; then
+ found_la="$additional_libdir/lib$name.la"
+ fi
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ for x in $LDFLAGS $LTLIBICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ case "$x" in
+ -L*)
+ dir=`echo "X$x" | sed -e 's/^X-L//'`
+ if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
+ found_dir="$dir"
+ found_so="$dir/lib$name.$shlibext"
+ if test -f "$dir/lib$name.la"; then
+ found_la="$dir/lib$name.la"
+ fi
+ else
+ if test -f "$dir/lib$name.$libext"; then
+ found_dir="$dir"
+ found_a="$dir/lib$name.$libext"
+ if test -f "$dir/lib$name.la"; then
+ found_la="$dir/lib$name.la"
+ fi
+ fi
+ fi
+ ;;
+ esac
+ if test "X$found_dir" != "X"; then
+ break
+ fi
+ done
+ fi
+ if test "X$found_dir" != "X"; then
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name"
+ if test "X$found_so" != "X"; then
+ if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+ else
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $found_dir"
+ fi
+ if test "$hardcode_direct" = yes; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+ else
+ if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $found_dir"
+ fi
+ else
+ haveit=
+ for x in $LDFLAGS $LIBICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir"
+ fi
+ if test "$hardcode_minus_L" != no; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
+ else
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
+ fi
+ fi
+ fi
+ fi
+ else
+ if test "X$found_a" != "X"; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a"
+ else
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name"
+ fi
+ fi
+ additional_includedir=
+ case "$found_dir" in
+ */lib | */lib/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
+ additional_includedir="$basedir/include"
+ ;;
+ esac
+ if test "X$additional_includedir" != "X"; then
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux*) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ for x in $CPPFLAGS $INCICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ fi
+ if test -n "$found_la"; then
+ save_libdir="$libdir"
+ case "$found_la" in
+ */* | *\\*) . "$found_la" ;;
+ *) . "./$found_la" ;;
+ esac
+ libdir="$save_libdir"
+ for dep in $dependency_libs; do
+ case "$dep" in
+ -L*)
+ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+ if test "X$additional_libdir" != "X/usr/lib"; then
+ haveit=
+ if test "X$additional_libdir" = "X/usr/local/lib"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux*) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ haveit=
+ for x in $LDFLAGS $LIBICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir"
+ fi
+ fi
+ haveit=
+ for x in $LDFLAGS $LTLIBICONV; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir"
+ fi
+ fi
+ fi
+ fi
+ ;;
+ -R*)
+ dir=`echo "X$dep" | sed -e 's/^X-R//'`
+ if test "$enable_rpath" != no; then
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $dir"
+ fi
+ fi
+ ;;
+ -l*)
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+ ;;
+ *.la)
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+ ;;
+ *)
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$dep"
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep"
+ ;;
+ esac
+ done
+ fi
+ else
+ LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name"
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name"
+ fi
+ fi
+ fi
+ done
+ done
+ if test "X$rpathdirs" != "X"; then
+ if test -n "$hardcode_libdir_separator"; then
+ alldirs=
+ for found_dir in $rpathdirs; do
+ alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
+ done
+ acl_save_libdir="$libdir"
+ libdir="$alldirs"
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
+ else
+ for found_dir in $rpathdirs; do
+ acl_save_libdir="$libdir"
+ libdir="$found_dir"
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIBICONV="${LIBICONV}${LIBICONV:+ }$flag"
+ done
+ fi
+ fi
+ if test "X$ltrpathdirs" != "X"; then
+ for found_dir in $ltrpathdirs; do
+ LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir"
+ done
+ fi
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
+printf %s "checking whether NLS is requested... " >&6; }
+ # Check whether --enable-nls was given.
+if test ${enable_nls+y}
+then :
+ enableval=$enable_nls; USE_NLS=$enableval
+else $as_nop
+ USE_NLS=yes
+fi
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
+printf "%s\n" "$USE_NLS" >&6; }
+
+
+
+
+ LIBINTL=
+ LTLIBINTL=
+ POSUB=
+
+ if test "$USE_NLS" = "yes"; then
+ gt_use_preinstalled_gnugettext=no
+
+
+
+
+
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5
+printf %s "checking for GNU gettext in libc... " >&6; }
+if test ${gt_cv_func_gnugettext1_libc+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <libintl.h>
+extern int _nl_msg_cat_cntr;
+extern int *_nl_domain_bindings;
+int
+main (void)
+{
+bindtextdomain ("", "");
+return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_domain_bindings
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ gt_cv_func_gnugettext1_libc=yes
+else $as_nop
+ gt_cv_func_gnugettext1_libc=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_gnugettext1_libc" >&5
+printf "%s\n" "$gt_cv_func_gnugettext1_libc" >&6; }
+
+ if test "$gt_cv_func_gnugettext1_libc" != "yes"; then
+
+
+
+
+
+ am_save_CPPFLAGS="$CPPFLAGS"
+
+ for element in $INCICONV; do
+ haveit=
+ for x in $CPPFLAGS; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X$element"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+ fi
+ done
+
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5
+printf %s "checking for iconv... " >&6; }
+if test ${am_cv_func_iconv+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+
+ am_cv_func_iconv="no, consider installing GNU libiconv"
+ am_cv_lib_iconv=no
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <iconv.h>
+int
+main (void)
+{
+iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ am_cv_func_iconv=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+ if test "$am_cv_func_iconv" != yes; then
+ am_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBICONV"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <stdlib.h>
+#include <iconv.h>
+int
+main (void)
+{
+iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ am_cv_lib_iconv=yes
+ am_cv_func_iconv=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+ LIBS="$am_save_LIBS"
+ fi
+
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5
+printf "%s\n" "$am_cv_func_iconv" >&6; }
+ if test "$am_cv_func_iconv" = yes; then
+
+printf "%s\n" "#define HAVE_ICONV 1" >>confdefs.h
+
+ fi
+ if test "$am_cv_lib_iconv" = yes; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5
+printf %s "checking how to link with libiconv... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5
+printf "%s\n" "$LIBICONV" >&6; }
+ else
+ CPPFLAGS="$am_save_CPPFLAGS"
+ LIBICONV=
+ LTLIBICONV=
+ fi
+
+
+
+
+
+
+ use_additional=yes
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+
+# Check whether --with-libintl-prefix was given.
+if test ${with_libintl_prefix+y}
+then :
+ withval=$with_libintl_prefix;
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ else
+ additional_includedir="$withval/include"
+ additional_libdir="$withval/lib"
+ fi
+ fi
+
+fi
+
+ LIBINTL=
+ LTLIBINTL=
+ INCINTL=
+ rpathdirs=
+ ltrpathdirs=
+ names_already_handled=
+ names_next_round='intl '
+ while test -n "$names_next_round"; do
+ names_this_round="$names_next_round"
+ names_next_round=
+ for name in $names_this_round; do
+ already_handled=
+ for n in $names_already_handled; do
+ if test "$n" = "$name"; then
+ already_handled=yes
+ break
+ fi
+ done
+ if test -z "$already_handled"; then
+ names_already_handled="$names_already_handled $name"
+ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+ eval value=\"\$HAVE_LIB$uppername\"
+ if test -n "$value"; then
+ if test "$value" = yes; then
+ eval value=\"\$LIB$uppername\"
+ test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value"
+ eval value=\"\$LTLIB$uppername\"
+ test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value"
+ else
+ :
+ fi
+ else
+ found_dir=
+ found_la=
+ found_so=
+ found_a=
+ if test $use_additional = yes; then
+ if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
+ found_dir="$additional_libdir"
+ found_so="$additional_libdir/lib$name.$shlibext"
+ if test -f "$additional_libdir/lib$name.la"; then
+ found_la="$additional_libdir/lib$name.la"
+ fi
+ else
+ if test -f "$additional_libdir/lib$name.$libext"; then
+ found_dir="$additional_libdir"
+ found_a="$additional_libdir/lib$name.$libext"
+ if test -f "$additional_libdir/lib$name.la"; then
+ found_la="$additional_libdir/lib$name.la"
+ fi
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ for x in $LDFLAGS $LTLIBINTL; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ case "$x" in
+ -L*)
+ dir=`echo "X$x" | sed -e 's/^X-L//'`
+ if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
+ found_dir="$dir"
+ found_so="$dir/lib$name.$shlibext"
+ if test -f "$dir/lib$name.la"; then
+ found_la="$dir/lib$name.la"
+ fi
+ else
+ if test -f "$dir/lib$name.$libext"; then
+ found_dir="$dir"
+ found_a="$dir/lib$name.$libext"
+ if test -f "$dir/lib$name.la"; then
+ found_la="$dir/lib$name.la"
+ fi
+ fi
+ fi
+ ;;
+ esac
+ if test "X$found_dir" != "X"; then
+ break
+ fi
+ done
+ fi
+ if test "X$found_dir" != "X"; then
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name"
+ if test "X$found_so" != "X"; then
+ if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+ else
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $found_dir"
+ fi
+ if test "$hardcode_direct" = yes; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+ else
+ if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $found_dir"
+ fi
+ else
+ haveit=
+ for x in $LDFLAGS $LIBINTL; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir"
+ fi
+ if test "$hardcode_minus_L" != no; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
+ else
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
+ fi
+ fi
+ fi
+ fi
+ else
+ if test "X$found_a" != "X"; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a"
+ else
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name"
+ fi
+ fi
+ additional_includedir=
+ case "$found_dir" in
+ */lib | */lib/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
+ additional_includedir="$basedir/include"
+ ;;
+ esac
+ if test "X$additional_includedir" != "X"; then
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux*) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ for x in $CPPFLAGS $INCINTL; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ fi
+ if test -n "$found_la"; then
+ save_libdir="$libdir"
+ case "$found_la" in
+ */* | *\\*) . "$found_la" ;;
+ *) . "./$found_la" ;;
+ esac
+ libdir="$save_libdir"
+ for dep in $dependency_libs; do
+ case "$dep" in
+ -L*)
+ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+ if test "X$additional_libdir" != "X/usr/lib"; then
+ haveit=
+ if test "X$additional_libdir" = "X/usr/local/lib"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux*) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ haveit=
+ for x in $LDFLAGS $LIBINTL; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir"
+ fi
+ fi
+ haveit=
+ for x in $LDFLAGS $LTLIBINTL; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir"
+ fi
+ fi
+ fi
+ fi
+ ;;
+ -R*)
+ dir=`echo "X$dep" | sed -e 's/^X-R//'`
+ if test "$enable_rpath" != no; then
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $dir"
+ fi
+ fi
+ ;;
+ -l*)
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+ ;;
+ *.la)
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+ ;;
+ *)
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$dep"
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep"
+ ;;
+ esac
+ done
+ fi
+ else
+ LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name"
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name"
+ fi
+ fi
+ fi
+ done
+ done
+ if test "X$rpathdirs" != "X"; then
+ if test -n "$hardcode_libdir_separator"; then
+ alldirs=
+ for found_dir in $rpathdirs; do
+ alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
+ done
+ acl_save_libdir="$libdir"
+ libdir="$alldirs"
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
+ else
+ for found_dir in $rpathdirs; do
+ acl_save_libdir="$libdir"
+ libdir="$found_dir"
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIBINTL="${LIBINTL}${LIBINTL:+ }$flag"
+ done
+ fi
+ fi
+ if test "X$ltrpathdirs" != "X"; then
+ for found_dir in $ltrpathdirs; do
+ LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir"
+ done
+ fi
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
+printf %s "checking for GNU gettext in libintl... " >&6; }
+if test ${gt_cv_func_gnugettext1_libintl+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ gt_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $INCINTL"
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBINTL"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <libintl.h>
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias ();
+int
+main (void)
+{
+bindtextdomain ("", "");
+return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias (0)
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ gt_cv_func_gnugettext1_libintl=yes
+else $as_nop
+ gt_cv_func_gnugettext1_libintl=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+ if test "$gt_cv_func_gnugettext1_libintl" != yes && test -n "$LIBICONV"; then
+ LIBS="$LIBS $LIBICONV"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <libintl.h>
+extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias ();
+int
+main (void)
+{
+bindtextdomain ("", "");
+return (int) gettext ("") + _nl_msg_cat_cntr + *_nl_expand_alias (0)
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+ LIBINTL="$LIBINTL $LIBICONV"
+ LTLIBINTL="$LTLIBINTL $LTLIBICONV"
+ gt_cv_func_gnugettext1_libintl=yes
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+ fi
+ CPPFLAGS="$gt_save_CPPFLAGS"
+ LIBS="$gt_save_LIBS"
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_gnugettext1_libintl" >&5
+printf "%s\n" "$gt_cv_func_gnugettext1_libintl" >&6; }
+ fi
+
+ if test "$gt_cv_func_gnugettext1_libc" = "yes" \
+ || { test "$gt_cv_func_gnugettext1_libintl" = "yes" \
+ && test "$PACKAGE" != gettext-runtime \
+ && test "$PACKAGE" != gettext-tools; }; then
+ gt_use_preinstalled_gnugettext=yes
+ else
+ LIBINTL=
+ LTLIBINTL=
+ INCINTL=
+ fi
+
+
+
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+
+printf "%s\n" "#define ENABLE_NLS 1" >>confdefs.h
+
+ else
+ USE_NLS=no
+ fi
+ fi
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5
+printf %s "checking whether to use NLS... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
+printf "%s\n" "$USE_NLS" >&6; }
+ if test "$USE_NLS" = "yes"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5
+printf %s "checking where the gettext function comes from... " >&6; }
+ if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+ if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then
+ gt_source="external libintl"
+ else
+ gt_source="libc"
+ fi
+ else
+ gt_source="included intl directory"
+ fi
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5
+printf "%s\n" "$gt_source" >&6; }
+ fi
+
+ if test "$USE_NLS" = "yes"; then
+
+ if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+ if test "$gt_cv_func_gnugettext1_libintl" = "yes"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5
+printf %s "checking how to link with libintl... " >&6; }
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5
+printf "%s\n" "$LIBINTL" >&6; }
+
+ for element in $INCINTL; do
+ haveit=
+ for x in $CPPFLAGS; do
+
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ eval x=\"$x\"
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+
+ if test "X$x" = "X$element"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element"
+ fi
+ done
+
+ fi
+
+
+printf "%s\n" "#define HAVE_GETTEXT 1" >>confdefs.h
+
+
+printf "%s\n" "#define HAVE_DCGETTEXT 1" >>confdefs.h
+
+ fi
+
+ POSUB=po
+ fi
+
+
+
+ INTLLIBS="$LIBINTL"
+
+
+
+
+
+
+if test -d "$srcdir/po"
+then
+ ALL_LINGUAS=`cd $srcdir/po > /dev/null && echo *.po | sed 's/\.po//g'`
+else
+ ALL_LINGUAS="af am ar as be bg bn_IN bn ca cs cy da de el en_GB es et eu_ES fa fi fr gl gu he hi hr hu hy id is it ja ka kn ko ku lo lt lv mk ml mr ms my nb nl nn no nso or pa pl pt_BR pt ro ru si sk sl sq sr@Latn sr sv ta te th tr uk ur vi zh_CN zh_TW zu"
+fi
+
+ac_fn_c_check_header_compile "$LINENO" "error.h" "ac_cv_header_error_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_error_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_ERROR_H 1" >>confdefs.h
+
+fi
+
+
+ac_fn_c_check_header_compile "$LINENO" "stdio_ext.h" "ac_cv_header_stdio_ext_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_stdio_ext_h" = xyes
+then :
+ printf "%s\n" "#define HAVE_STDIO_EXT_H 1" >>confdefs.h
+
+fi
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __progname" >&5
+printf %s "checking for __progname... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+ #include <stdio.h>
+ #include <stdlib.h>
+ extern char *__progname;
+ int main(void) {
+ const char *cp = __progname;
+ printf("%s\n", cp);
+ exit(0);
+ }
+
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+
+printf "%s\n" "#define HAVE___PROGNAME 1" >>confdefs.h
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext conftest.$ac_ext
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether program_invocation_name is defined" >&5
+printf %s "checking whether program_invocation_name is defined... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <errno.h>
+int
+main (void)
+{
+program_invocation_name = "test";
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+printf "%s\n" "#define HAVE_PROGRAM_INVOCATION_NAME 1" >>confdefs.h
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether program_invocation_short_name is defined" >&5
+printf %s "checking whether program_invocation_short_name is defined... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+#include <errno.h>
+int
+main (void)
+{
+program_invocation_short_name = "test";
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+
+printf "%s\n" "#define HAVE_PROGRAM_INVOCATION_SHORT_NAME 1" >>confdefs.h
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+
+ac_fn_c_check_func "$LINENO" "pidfd_open" "ac_cv_func_pidfd_open"
+if test "x$ac_cv_func_pidfd_open" = xyes
+then :
+ enable_pidwait=yes
+else $as_nop
+
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for __NR_pidfd_open" >&5
+printf %s "checking for __NR_pidfd_open... " >&6; }
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+#include <sys/syscall.h>
+#ifndef __NR_pidfd_open
+#error __NR_pidfd_open not defined
+#endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ enable_pidwait=yes
+else $as_nop
+ enable_pidwait=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_pidwait" >&5
+printf "%s\n" "$enable_pidwait" >&6; }
+
+fi
+
+if test "$enable_pidwait" = yes; then
+
+printf "%s\n" "#define ENABLE_PIDWAIT 1" >>confdefs.h
+
+fi
+ if test x$enable_pidwait = xyes; then
+ BUILD_PIDWAIT_TRUE=
+ BUILD_PIDWAIT_FALSE='#'
+else
+ BUILD_PIDWAIT_TRUE='#'
+ BUILD_PIDWAIT_FALSE=
+fi
+
+
+
+# Check whether --enable-watch8bit was given.
+if test ${enable_watch8bit+y}
+then :
+ enableval=$enable_watch8bit;
+else $as_nop
+ enable_watch8bit=no
+
+fi
+
+if test "$enable_watch8bit" = "yes"; then
+
+printf "%s\n" "#define WITH_WATCH8BIT 1" >>confdefs.h
+
+fi
+
+
+# Check whether --enable-colorwatch was given.
+if test ${enable_colorwatch+y}
+then :
+ enableval=$enable_colorwatch;
+else $as_nop
+ enable_colorwatch=no
+
+fi
+
+if test "$enable_colorwatch" = "yes"; then
+
+printf "%s\n" "#define WITH_COLORWATCH 1" >>confdefs.h
+
+fi
+
+
+
+# Check whether --enable-libselinux was given.
+if test ${enable_libselinux+y}
+then :
+ enableval=$enable_libselinux;
+else $as_nop
+ enable_libselinux=no
+
+fi
+
+if test "$enable_libselinux" = "yes"; then
+
+printf "%s\n" "#define ENABLE_LIBSELINUX 1" >>confdefs.h
+
+fi
+
+# Enable hardened compile and link flags
+# Check whether --enable-harden_flags was given.
+if test ${enable_harden_flags+y}
+then :
+ enableval=$enable_harden_flags; enable_harden_flags=$enableval
+else $as_nop
+ enable_harden_flags="no"
+fi
+
+
+# Check that harden CFLAGS and LDFLAGS will compile
+if test "$enable_harden_flags" = "yes"
+then :
+ HARDEN_CFLAGS="-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security"
+ HARDEN_LDFLAGS="-fPIE -pie -Wl,-z,relro -Wl,-z,now"
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking compiler supports harden flags" >&5
+printf %s "checking compiler supports harden flags... " >&6; }
+ save_harden_cflags="$CFLAGS"
+ CFLAGS="$CFLAGS $HARDEN_CFLAGS"
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+int
+main (void)
+{
+
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+else $as_nop
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }; HARDEN_CFLAGS=''
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+ CFLAGS="$save_harden_cflags"
+else $as_nop
+ HARDEN_CFLAGS=""
+ HARDEN_LDFLAGS=""
+fi
+
+
+
+# Optional packages - AC_ARG_WITH
+
+# Check whether --with-ncurses was given.
+if test ${with_ncurses+y}
+then :
+ withval=$with_ncurses;
+else $as_nop
+ with_ncurses=yes
+
+fi
+
+if test "x$with_ncurses" = xno; then
+ if false; then
+ WITH_NCURSES_TRUE=
+ WITH_NCURSES_FALSE='#'
+else
+ WITH_NCURSES_TRUE='#'
+ WITH_NCURSES_FALSE=
+fi
+
+ if test "x$enable_watch8bit" = "xyes"
+then :
+ as_fn_error $? "Cannot have both --enable-watch8bit and --without-ncurses" "$LINENO" 5
+fi
+else
+ if true; then
+ WITH_NCURSES_TRUE=
+ WITH_NCURSES_FALSE='#'
+else
+ WITH_NCURSES_TRUE='#'
+ WITH_NCURSES_FALSE=
+fi
+
+
+pkg_failed=no
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ncursesw" >&5
+printf %s "checking for ncursesw... " >&6; }
+
+if test -n "$NCURSES_CFLAGS"; then
+ pkg_cv_NCURSES_CFLAGS="$NCURSES_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ncursesw\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "ncursesw") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_NCURSES_CFLAGS=`$PKG_CONFIG --cflags "ncursesw" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$NCURSES_LIBS"; then
+ pkg_cv_NCURSES_LIBS="$NCURSES_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ncursesw\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "ncursesw") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_NCURSES_LIBS=`$PKG_CONFIG --libs "ncursesw" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ NCURSES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ncursesw" 2>&1`
+ else
+ NCURSES_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ncursesw" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$NCURSES_PKG_ERRORS" >&5
+
+
+ if test "x$enable_watch8bit" = "xyes"
+then :
+ as_fn_error $? "Cannot find ncurses wide library ncursesw with --enable-watch8bit" "$LINENO" 5
+fi
+
+pkg_failed=no
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ncurses" >&5
+printf %s "checking for ncurses... " >&6; }
+
+if test -n "$NCURSES_CFLAGS"; then
+ pkg_cv_NCURSES_CFLAGS="$NCURSES_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ncurses\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "ncurses") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_NCURSES_CFLAGS=`$PKG_CONFIG --cflags "ncurses" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$NCURSES_LIBS"; then
+ pkg_cv_NCURSES_LIBS="$NCURSES_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ncurses\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "ncurses") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_NCURSES_LIBS=`$PKG_CONFIG --libs "ncurses" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ NCURSES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ncurses" 2>&1`
+ else
+ NCURSES_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ncurses" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$NCURSES_PKG_ERRORS" >&5
+
+ as_fn_error $? "ncurses support missing/incomplete (for partial build use --without-ncurses)" "$LINENO" 5
+
+elif test $pkg_failed = untried; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ as_fn_error $? "ncurses support missing/incomplete (for partial build use --without-ncurses)" "$LINENO" 5
+
+else
+ NCURSES_CFLAGS=$pkg_cv_NCURSES_CFLAGS
+ NCURSES_LIBS=$pkg_cv_NCURSES_LIBS
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+
+printf "%s\n" "#define HAVE_NCURSES 1" >>confdefs.h
+
+fi
+
+
+elif test $pkg_failed = untried; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+
+ if test "x$enable_watch8bit" = "xyes"
+then :
+ as_fn_error $? "Cannot find ncurses wide library ncursesw with --enable-watch8bit" "$LINENO" 5
+fi
+
+pkg_failed=no
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ncurses" >&5
+printf %s "checking for ncurses... " >&6; }
+
+if test -n "$NCURSES_CFLAGS"; then
+ pkg_cv_NCURSES_CFLAGS="$NCURSES_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ncurses\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "ncurses") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_NCURSES_CFLAGS=`$PKG_CONFIG --cflags "ncurses" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$NCURSES_LIBS"; then
+ pkg_cv_NCURSES_LIBS="$NCURSES_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"ncurses\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "ncurses") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_NCURSES_LIBS=`$PKG_CONFIG --libs "ncurses" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ NCURSES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "ncurses" 2>&1`
+ else
+ NCURSES_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "ncurses" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$NCURSES_PKG_ERRORS" >&5
+
+ as_fn_error $? "ncurses support missing/incomplete (for partial build use --without-ncurses)" "$LINENO" 5
+
+elif test $pkg_failed = untried; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ as_fn_error $? "ncurses support missing/incomplete (for partial build use --without-ncurses)" "$LINENO" 5
+
+else
+ NCURSES_CFLAGS=$pkg_cv_NCURSES_CFLAGS
+ NCURSES_LIBS=$pkg_cv_NCURSES_LIBS
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+
+printf "%s\n" "#define HAVE_NCURSES 1" >>confdefs.h
+
+fi
+
+
+else
+ NCURSES_CFLAGS=$pkg_cv_NCURSES_CFLAGS
+ NCURSES_LIBS=$pkg_cv_NCURSES_LIBS
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+
+printf "%s\n" "#define HAVE_NCURSES 1" >>confdefs.h
+
+fi
+fi
+# PKG_CHECK_MODULES([NCURSES], [ncurses], [], [
+# AC_CHECK_LIB(ncurses, initscr, [have_ncurses=yes], [have_ncurses=no])
+# AC_CHECK_HEADERS(curses.h ncurses.h term.h, [], [have_ncurses=no], AC_INCLUDES_DEFAULT)
+# if test "x$have_ncurses" = xno; then
+# AC_MSG_ERROR([ncurses support missing/incomplete (for partial build use --without-ncurses)])
+# fi
+# NCURSES_LIBS="-lncurses"
+# ])
+# AM_CONDITIONAL(WITH_NCURSES, true)
+# if test "$enable_watch8bit" = yes; then
+# PKG_CHECK_MODULES([NCURSESW], [ncursesw], [WATCH_NCURSES_LIBS="$NCURSESW_LIBS"], [
+# AC_CHECK_LIB([ncursesw], [addwstr], [WATCH_NCURSES_LIBS=-lncursesw], [
+# AC_CHECK_LIB([ncurses], [addwstr], [WATCH_NCURSES_LIBS=-lncurses], [
+# AC_MSG_ERROR([Cannot find ncurses wide library ncursesw with --enable-watch8bit])
+# ])
+# ])
+# ])
+# else
+# WATCH_NCURSES_LIBS="$NCURSES_LIBS"
+# fi
+
+
+# Check whether --with-systemd was given.
+if test ${with_systemd+y}
+then :
+ withval=$with_systemd;
+else $as_nop
+ with_systemd=no
+
+fi
+
+if test "x$with_systemd" != "xno"
+then :
+
+
+pkg_failed=no
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libsystemd" >&5
+printf %s "checking for libsystemd... " >&6; }
+
+if test -n "$SYSTEMD_CFLAGS"; then
+ pkg_cv_SYSTEMD_CFLAGS="$SYSTEMD_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libsystemd") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_SYSTEMD_CFLAGS=`$PKG_CONFIG --cflags "libsystemd" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$SYSTEMD_LIBS"; then
+ pkg_cv_SYSTEMD_LIBS="$SYSTEMD_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libsystemd") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_SYSTEMD_LIBS=`$PKG_CONFIG --libs "libsystemd" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ SYSTEMD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsystemd" 2>&1`
+ else
+ SYSTEMD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsystemd" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$SYSTEMD_PKG_ERRORS" >&5
+
+
+pkg_failed=no
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libsystemd-login" >&5
+printf %s "checking for libsystemd-login... " >&6; }
+
+if test -n "$SYSTEMD_CFLAGS"; then
+ pkg_cv_SYSTEMD_CFLAGS="$SYSTEMD_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd-login\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libsystemd-login") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_SYSTEMD_CFLAGS=`$PKG_CONFIG --cflags "libsystemd-login" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$SYSTEMD_LIBS"; then
+ pkg_cv_SYSTEMD_LIBS="$SYSTEMD_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd-login\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libsystemd-login") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_SYSTEMD_LIBS=`$PKG_CONFIG --libs "libsystemd-login" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ SYSTEMD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsystemd-login" 2>&1`
+ else
+ SYSTEMD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsystemd-login" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$SYSTEMD_PKG_ERRORS" >&5
+
+ as_fn_error $? "Package requirements (libsystemd-login) were not met:
+
+$SYSTEMD_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables SYSTEMD_CFLAGS
+and SYSTEMD_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables SYSTEMD_CFLAGS
+and SYSTEMD_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ SYSTEMD_CFLAGS=$pkg_cv_SYSTEMD_CFLAGS
+ SYSTEMD_LIBS=$pkg_cv_SYSTEMD_LIBS
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+
+fi
+
+elif test $pkg_failed = untried; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+
+pkg_failed=no
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libsystemd-login" >&5
+printf %s "checking for libsystemd-login... " >&6; }
+
+if test -n "$SYSTEMD_CFLAGS"; then
+ pkg_cv_SYSTEMD_CFLAGS="$SYSTEMD_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd-login\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libsystemd-login") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_SYSTEMD_CFLAGS=`$PKG_CONFIG --cflags "libsystemd-login" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$SYSTEMD_LIBS"; then
+ pkg_cv_SYSTEMD_LIBS="$SYSTEMD_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libsystemd-login\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libsystemd-login") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_SYSTEMD_LIBS=`$PKG_CONFIG --libs "libsystemd-login" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ SYSTEMD_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libsystemd-login" 2>&1`
+ else
+ SYSTEMD_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libsystemd-login" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$SYSTEMD_PKG_ERRORS" >&5
+
+ as_fn_error $? "Package requirements (libsystemd-login) were not met:
+
+$SYSTEMD_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables SYSTEMD_CFLAGS
+and SYSTEMD_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables SYSTEMD_CFLAGS
+and SYSTEMD_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ SYSTEMD_CFLAGS=$pkg_cv_SYSTEMD_CFLAGS
+ SYSTEMD_LIBS=$pkg_cv_SYSTEMD_LIBS
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+
+fi
+
+else
+ SYSTEMD_CFLAGS=$pkg_cv_SYSTEMD_CFLAGS
+ SYSTEMD_LIBS=$pkg_cv_SYSTEMD_LIBS
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+
+fi
+
+printf "%s\n" "#define WITH_SYSTEMD 1" >>confdefs.h
+
+
+ # The functions needed to replace utmp with logind are only available
+ # with systemd v254 or later.
+ old_LIBS="$LIBS"
+ LIBS="$LIBS $SYSTEMD_LIBS"
+ ac_fn_c_check_func "$LINENO" "sd_session_get_leader" "ac_cv_func_sd_session_get_leader"
+if test "x$ac_cv_func_sd_session_get_leader" = xyes
+then :
+ printf "%s\n" "#define HAVE_SD_SESSION_GET_LEADER 1" >>confdefs.h
+
+fi
+
+ LIBS="$old_LIBS"
+
+fi
+ if test x$with_systemd != xno; then
+ WITH_SYSTEMD_TRUE=
+ WITH_SYSTEMD_FALSE='#'
+else
+ WITH_SYSTEMD_TRUE='#'
+ WITH_SYSTEMD_FALSE=
+fi
+
+
+
+# Check whether --with-elogind was given.
+if test ${with_elogind+y}
+then :
+ withval=$with_elogind;
+else $as_nop
+ with_elogind=no
+
+fi
+
+# Do not allow elogind if systemd is wanted and found
+if test "x$with_systemd" != "xno"
+then :
+ with_elogind=no
+fi
+
+if test "x$with_elogind" != "xno"
+then :
+
+
+pkg_failed=no
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libelogind" >&5
+printf %s "checking for libelogind... " >&6; }
+
+if test -n "$ELOGIND_CFLAGS"; then
+ pkg_cv_ELOGIND_CFLAGS="$ELOGIND_CFLAGS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libelogind\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libelogind") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_ELOGIND_CFLAGS=`$PKG_CONFIG --cflags "libelogind" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+if test -n "$ELOGIND_LIBS"; then
+ pkg_cv_ELOGIND_LIBS="$ELOGIND_LIBS"
+ elif test -n "$PKG_CONFIG"; then
+ if test -n "$PKG_CONFIG" && \
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libelogind\""; } >&5
+ ($PKG_CONFIG --exists --print-errors "libelogind") 2>&5
+ ac_status=$?
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+ test $ac_status = 0; }; then
+ pkg_cv_ELOGIND_LIBS=`$PKG_CONFIG --libs "libelogind" 2>/dev/null`
+ test "x$?" != "x0" && pkg_failed=yes
+else
+ pkg_failed=yes
+fi
+ else
+ pkg_failed=untried
+fi
+
+
+
+if test $pkg_failed = yes; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+
+if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
+ _pkg_short_errors_supported=yes
+else
+ _pkg_short_errors_supported=no
+fi
+ if test $_pkg_short_errors_supported = yes; then
+ ELOGIND_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libelogind" 2>&1`
+ else
+ ELOGIND_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libelogind" 2>&1`
+ fi
+ # Put the nasty error message in config.log where it belongs
+ echo "$ELOGIND_PKG_ERRORS" >&5
+
+ as_fn_error $? "Package requirements (libelogind) were not met:
+
+$ELOGIND_PKG_ERRORS
+
+Consider adjusting the PKG_CONFIG_PATH environment variable if you
+installed software in a non-standard prefix.
+
+Alternatively, you may set the environment variables ELOGIND_CFLAGS
+and ELOGIND_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details." "$LINENO" 5
+elif test $pkg_failed = untried; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "The pkg-config script could not be found or is too old. Make sure it
+is in your PATH or set the PKG_CONFIG environment variable to the full
+path to pkg-config.
+
+Alternatively, you may set the environment variables ELOGIND_CFLAGS
+and ELOGIND_LIBS to avoid the need to call pkg-config.
+See the pkg-config man page for more details.
+
+To get pkg-config, see <http://pkg-config.freedesktop.org/>.
+See \`config.log' for more details" "$LINENO" 5; }
+else
+ ELOGIND_CFLAGS=$pkg_cv_ELOGIND_CFLAGS
+ ELOGIND_LIBS=$pkg_cv_ELOGIND_LIBS
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; }
+
+fi
+
+printf "%s\n" "#define WITH_ELOGIND 1" >>confdefs.h
+
+
+fi
+ if test x$with_elogind != xno; then
+ WITH_ELOGIND_TRUE=
+ WITH_ELOGIND_FALSE='#'
+else
+ WITH_ELOGIND_TRUE='#'
+ WITH_ELOGIND_FALSE=
+fi
+
+
+# AC_ARG_ENABLEs
+# Check whether --enable-pidof was given.
+if test ${enable_pidof+y}
+then :
+ enableval=$enable_pidof;
+else $as_nop
+ enable_pidof=yes
+
+fi
+
+ if test "x$enable_pidof" = xyes; then
+ BUILD_PIDOF_TRUE=
+ BUILD_PIDOF_FALSE='#'
+else
+ BUILD_PIDOF_TRUE='#'
+ BUILD_PIDOF_FALSE=
+fi
+
+
+# Check whether --enable-kill was given.
+if test ${enable_kill+y}
+then :
+ enableval=$enable_kill;
+else $as_nop
+ enable_kill=yes
+
+fi
+
+ if test "x$enable_kill" = xyes; then
+ BUILD_KILL_TRUE=
+ BUILD_KILL_FALSE='#'
+else
+ BUILD_KILL_TRUE='#'
+ BUILD_KILL_FALSE=
+fi
+
+# Check whether --enable-w was given.
+if test ${enable_w+y}
+then :
+ enableval=$enable_w;
+else $as_nop
+ enable_w=yes
+
+fi
+
+ if test "x$enable_w" = xyes; then
+ BUILD_W_TRUE=
+ BUILD_W_FALSE='#'
+else
+ BUILD_W_TRUE='#'
+ BUILD_W_FALSE=
+fi
+
+
+ if test "x$host_os" = xlinux-gnu; then
+ LINUX_TRUE=
+ LINUX_FALSE='#'
+else
+ LINUX_TRUE='#'
+ LINUX_FALSE=
+fi
+
+ if test "x$host_os" = xcygwin; then
+ CYGWIN_TRUE=
+ CYGWIN_FALSE='#'
+else
+ CYGWIN_TRUE='#'
+ CYGWIN_FALSE=
+fi
+
+
+# Check whether --enable-skill was given.
+if test ${enable_skill+y}
+then :
+ enableval=$enable_skill;
+else $as_nop
+ enable_skill=no
+
+fi
+
+ if test "x$enable_skill" = xyes; then
+ BUILD_SKILL_TRUE=
+ BUILD_SKILL_FALSE='#'
+else
+ BUILD_SKILL_TRUE='#'
+ BUILD_SKILL_FALSE=
+fi
+
+
+# Check whether --enable-examples was given.
+if test ${enable_examples+y}
+then :
+ enableval=$enable_examples;
+else $as_nop
+ enable_examples=no
+
+fi
+
+ if test "x$enable_examples" = xyes; then
+ EXAMPLE_FILES_TRUE=
+ EXAMPLE_FILES_FALSE='#'
+else
+ EXAMPLE_FILES_TRUE='#'
+ EXAMPLE_FILES_FALSE=
+fi
+
+
+# Check whether --enable-sigwinch was given.
+if test ${enable_sigwinch+y}
+then :
+ enableval=$enable_sigwinch;
+else $as_nop
+ enable_sigwinch=no
+
+fi
+
+if test "x$enable_sigwinch" = xyes; then
+
+printf "%s\n" "#define SIGNALS_LESS 1" >>confdefs.h
+
+fi
+
+# Check whether --enable-wide-percent was given.
+if test ${enable_wide_percent+y}
+then :
+ enableval=$enable_wide_percent;
+else $as_nop
+ enable_wide_percent=no
+
+fi
+
+if test "x$enable_wide_percent" = xyes; then
+
+printf "%s\n" "#define BOOST_PERCNT 1" >>confdefs.h
+
+fi
+
+# Check whether --enable-wide-memory was given.
+if test ${enable_wide_memory+y}
+then :
+ enableval=$enable_wide_memory;
+else $as_nop
+ enable_wide_memory=no
+
+fi
+
+if test "x$enable_wide_memory" = xyes; then
+
+printf "%s\n" "#define BOOST_MEMORY 1" >>confdefs.h
+
+fi
+
+# Check whether --enable-modern-top was given.
+if test ${enable_modern_top+y}
+then :
+ enableval=$enable_modern_top;
+else $as_nop
+ enable_modern_top=yes
+
+fi
+
+if test "x$enable_modern_top" = xno; then
+
+printf "%s\n" "#define ORIG_TOPDEFS 1" >>confdefs.h
+
+fi
+
+DL_LIB=
+# Check whether --enable-numa was given.
+if test ${enable_numa+y}
+then :
+ enableval=$enable_numa;
+else $as_nop
+ enable_numa=yes
+
+fi
+
+if test "x$enable_numa" = xno; then
+
+printf "%s\n" "#define NUMA_DISABLE 1" >>confdefs.h
+
+else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing dlopen" >&5
+printf %s "checking for library containing dlopen... " >&6; }
+if test ${ac_cv_search_dlopen+y}
+then :
+ printf %s "(cached) " >&6
+else $as_nop
+ ac_func_search_save_LIBS=$LIBS
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+char dlopen ();
+int
+main (void)
+{
+return dlopen ();
+ ;
+ return 0;
+}
+_ACEOF
+for ac_lib in '' dl
+do
+ if test -z "$ac_lib"; then
+ ac_res="none required"
+ else
+ ac_res=-l$ac_lib
+ LIBS="-l$ac_lib $ac_func_search_save_LIBS"
+ fi
+ if ac_fn_c_try_link "$LINENO"
+then :
+ ac_cv_search_dlopen=$ac_res
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+ conftest$ac_exeext
+ if test ${ac_cv_search_dlopen+y}
+then :
+ break
+fi
+done
+if test ${ac_cv_search_dlopen+y}
+then :
+
+else $as_nop
+ ac_cv_search_dlopen=no
+fi
+rm conftest.$ac_ext
+LIBS=$ac_func_search_save_LIBS
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_dlopen" >&5
+printf "%s\n" "$ac_cv_search_dlopen" >&6; }
+ac_res=$ac_cv_search_dlopen
+if test "$ac_res" != no
+then :
+ test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
+
+else $as_nop
+ as_fn_error $? "dynamic linking unavailable, circumvent with --disable-numa" "$LINENO" 5
+fi
+
+ if test "x$ac_cv_search_dlopen" != "xnone required"; then
+ DL_LIB="$ac_cv_search_dlopen"
+ fi
+fi
+
+
+# Check whether --enable-w-from was given.
+if test ${enable_w_from+y}
+then :
+ enableval=$enable_w_from;
+else $as_nop
+ enable_w_from=no
+
+fi
+
+if test "x$enable_w_from" = xyes; then
+
+printf "%s\n" "#define W_SHOWFROM 1" >>confdefs.h
+
+fi
+
+# Check whether --enable-whining was given.
+if test ${enable_whining+y}
+then :
+ enableval=$enable_whining;
+else $as_nop
+ enable_whining=yes
+
+fi
+
+if test "x$enable_whining" = xyes; then
+
+printf "%s\n" "#define BUILD_WITH_WHINE 1" >>confdefs.h
+
+fi
+
+if test x"$DEJAGNU" = x
+then
+ DEJAGNU="/dev/null"
+fi
+
+
+ac_fn_c_check_func "$LINENO" "__fpending" "ac_cv_func___fpending"
+if test "x$ac_cv_func___fpending" = xyes
+then :
+ printf "%s\n" "#define HAVE___FPENDING 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "alarm" "ac_cv_func_alarm"
+if test "x$ac_cv_func_alarm" = xyes
+then :
+ printf "%s\n" "#define HAVE_ALARM 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "atexit" "ac_cv_func_atexit"
+if test "x$ac_cv_func_atexit" = xyes
+then :
+ printf "%s\n" "#define HAVE_ATEXIT 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "dup2" "ac_cv_func_dup2"
+if test "x$ac_cv_func_dup2" = xyes
+then :
+ printf "%s\n" "#define HAVE_DUP2 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "gethostname" "ac_cv_func_gethostname"
+if test "x$ac_cv_func_gethostname" = xyes
+then :
+ printf "%s\n" "#define HAVE_GETHOSTNAME 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize"
+if test "x$ac_cv_func_getpagesize" = xyes
+then :
+ printf "%s\n" "#define HAVE_GETPAGESIZE 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "gettimeofday" "ac_cv_func_gettimeofday"
+if test "x$ac_cv_func_gettimeofday" = xyes
+then :
+ printf "%s\n" "#define HAVE_GETTIMEOFDAY 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "iswprint" "ac_cv_func_iswprint"
+if test "x$ac_cv_func_iswprint" = xyes
+then :
+ printf "%s\n" "#define HAVE_ISWPRINT 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "memchr" "ac_cv_func_memchr"
+if test "x$ac_cv_func_memchr" = xyes
+then :
+ printf "%s\n" "#define HAVE_MEMCHR 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "memmove" "ac_cv_func_memmove"
+if test "x$ac_cv_func_memmove" = xyes
+then :
+ printf "%s\n" "#define HAVE_MEMMOVE 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "memset" "ac_cv_func_memset"
+if test "x$ac_cv_func_memset" = xyes
+then :
+ printf "%s\n" "#define HAVE_MEMSET 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "mkdir" "ac_cv_func_mkdir"
+if test "x$ac_cv_func_mkdir" = xyes
+then :
+ printf "%s\n" "#define HAVE_MKDIR 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "nl_langinfo" "ac_cv_func_nl_langinfo"
+if test "x$ac_cv_func_nl_langinfo" = xyes
+then :
+ printf "%s\n" "#define HAVE_NL_LANGINFO 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "putenv" "ac_cv_func_putenv"
+if test "x$ac_cv_func_putenv" = xyes
+then :
+ printf "%s\n" "#define HAVE_PUTENV 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "regcomp" "ac_cv_func_regcomp"
+if test "x$ac_cv_func_regcomp" = xyes
+then :
+ printf "%s\n" "#define HAVE_REGCOMP 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "rpmatch" "ac_cv_func_rpmatch"
+if test "x$ac_cv_func_rpmatch" = xyes
+then :
+ printf "%s\n" "#define HAVE_RPMATCH 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "select" "ac_cv_func_select"
+if test "x$ac_cv_func_select" = xyes
+then :
+ printf "%s\n" "#define HAVE_SELECT 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "setlocale" "ac_cv_func_setlocale"
+if test "x$ac_cv_func_setlocale" = xyes
+then :
+ printf "%s\n" "#define HAVE_SETLOCALE 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "sigabbrev_np" "ac_cv_func_sigabbrev_np"
+if test "x$ac_cv_func_sigabbrev_np" = xyes
+then :
+ printf "%s\n" "#define HAVE_SIGABBREV_NP 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp"
+if test "x$ac_cv_func_strcasecmp" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRCASECMP 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "strchr" "ac_cv_func_strchr"
+if test "x$ac_cv_func_strchr" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRCHR 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "strcspn" "ac_cv_func_strcspn"
+if test "x$ac_cv_func_strcspn" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRCSPN 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "strdup" "ac_cv_func_strdup"
+if test "x$ac_cv_func_strdup" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRDUP 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "strerror" "ac_cv_func_strerror"
+if test "x$ac_cv_func_strerror" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRERROR 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "strncasecmp" "ac_cv_func_strncasecmp"
+if test "x$ac_cv_func_strncasecmp" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRNCASECMP 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "strndup" "ac_cv_func_strndup"
+if test "x$ac_cv_func_strndup" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRNDUP 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "strpbrk" "ac_cv_func_strpbrk"
+if test "x$ac_cv_func_strpbrk" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRPBRK 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "strrchr" "ac_cv_func_strrchr"
+if test "x$ac_cv_func_strrchr" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRRCHR 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "strspn" "ac_cv_func_strspn"
+if test "x$ac_cv_func_strspn" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRSPN 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "strstr" "ac_cv_func_strstr"
+if test "x$ac_cv_func_strstr" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRSTR 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "strtol" "ac_cv_func_strtol"
+if test "x$ac_cv_func_strtol" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRTOL 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "strtoul" "ac_cv_func_strtoul"
+if test "x$ac_cv_func_strtoul" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRTOUL 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "strverscmp" "ac_cv_func_strverscmp"
+if test "x$ac_cv_func_strverscmp" = xyes
+then :
+ printf "%s\n" "#define HAVE_STRVERSCMP 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "utmpname" "ac_cv_func_utmpname"
+if test "x$ac_cv_func_utmpname" = xyes
+then :
+ printf "%s\n" "#define HAVE_UTMPNAME 1" >>confdefs.h
+
+fi
+ac_fn_c_check_func "$LINENO" "wcwidth" "ac_cv_func_wcwidth"
+if test "x$ac_cv_func_wcwidth" = xyes
+then :
+ printf "%s\n" "#define HAVE_WCWIDTH 1" >>confdefs.h
+
+fi
+
+
+ac_config_files="$ac_config_files Makefile local/Makefile po-man/Makefile po/Makefile.in library/libproc2.pc testsuite/Makefile"
+
+cat >confcache <<\_ACEOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs, see configure's option --config-cache.
+# It is not useful on other systems. If it contains results you don't
+# want to keep, you may remove or edit it.
+#
+# config.status only pays attention to the cache file if you give it
+# the --recheck option to rerun configure.
+#
+# `ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# following values.
+
+_ACEOF
+
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, we kill variables containing newlines.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(
+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
+ eval ac_val=\$$ac_var
+ case $ac_val in #(
+ *${as_nl}*)
+ case $ac_var in #(
+ *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
+printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
+ esac
+ case $ac_var in #(
+ _ | IFS | as_nl) ;; #(
+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
+ *) { eval $ac_var=; unset $ac_var;} ;;
+ esac ;;
+ esac
+ done
+
+ (set) 2>&1 |
+ case $as_nl`(ac_space=' '; set) 2>&1` in #(
+ *${as_nl}ac_space=\ *)
+ # `set' does not quote correctly, so add quotes: double-quote
+ # substitution turns \\\\ into \\, and sed turns \\ into \.
+ sed -n \
+ "s/'/'\\\\''/g;
+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
+ ;; #(
+ *)
+ # `set' quotes correctly as required by POSIX, so do not add quotes.
+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
+ ;;
+ esac |
+ sort
+) |
+ sed '
+ /^ac_cv_env_/b end
+ t clear
+ :clear
+ s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/
+ t end
+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
+ :end' >>confcache
+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
+ if test -w "$cache_file"; then
+ if test "x$cache_file" != "x/dev/null"; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
+printf "%s\n" "$as_me: updating cache $cache_file" >&6;}
+ if test ! -f "$cache_file" || test -h "$cache_file"; then
+ cat confcache >"$cache_file"
+ else
+ case $cache_file in #(
+ */* | ?:*)
+ mv -f confcache "$cache_file"$$ &&
+ mv -f "$cache_file"$$ "$cache_file" ;; #(
+ *)
+ mv -f confcache "$cache_file" ;;
+ esac
+ fi
+ fi
+ else
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
+printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;}
+ fi
+fi
+rm -f confcache
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+DEFS=-DHAVE_CONFIG_H
+
+ac_libobjs=
+ac_ltlibobjs=
+U=
+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
+ # 1. Remove the extension, and $U if already installed.
+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
+ ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"`
+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR
+ # will be set to the directory where LIBOBJS objects are built.
+ as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+ as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
+done
+LIBOBJS=$ac_libobjs
+
+LTLIBOBJS=$ac_ltlibobjs
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5
+printf %s "checking that generated files are newer than configure... " >&6; }
+ if test -n "$am_sleep_pid"; then
+ # Hide warnings about reused PIDs.
+ wait $am_sleep_pid 2>/dev/null
+ fi
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5
+printf "%s\n" "done" >&6; }
+ if test -n "$EXEEXT"; then
+ am__EXEEXT_TRUE=
+ am__EXEEXT_FALSE='#'
+else
+ am__EXEEXT_TRUE='#'
+ am__EXEEXT_FALSE=
+fi
+
+if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
+ as_fn_error $? "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
+ as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${BUILD_PIDWAIT_TRUE}" && test -z "${BUILD_PIDWAIT_FALSE}"; then
+ as_fn_error $? "conditional \"BUILD_PIDWAIT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${WITH_NCURSES_TRUE}" && test -z "${WITH_NCURSES_FALSE}"; then
+ as_fn_error $? "conditional \"WITH_NCURSES\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${WITH_NCURSES_TRUE}" && test -z "${WITH_NCURSES_FALSE}"; then
+ as_fn_error $? "conditional \"WITH_NCURSES\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${WITH_SYSTEMD_TRUE}" && test -z "${WITH_SYSTEMD_FALSE}"; then
+ as_fn_error $? "conditional \"WITH_SYSTEMD\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${WITH_ELOGIND_TRUE}" && test -z "${WITH_ELOGIND_FALSE}"; then
+ as_fn_error $? "conditional \"WITH_ELOGIND\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${BUILD_PIDOF_TRUE}" && test -z "${BUILD_PIDOF_FALSE}"; then
+ as_fn_error $? "conditional \"BUILD_PIDOF\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${BUILD_KILL_TRUE}" && test -z "${BUILD_KILL_FALSE}"; then
+ as_fn_error $? "conditional \"BUILD_KILL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${BUILD_W_TRUE}" && test -z "${BUILD_W_FALSE}"; then
+ as_fn_error $? "conditional \"BUILD_W\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${LINUX_TRUE}" && test -z "${LINUX_FALSE}"; then
+ as_fn_error $? "conditional \"LINUX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${CYGWIN_TRUE}" && test -z "${CYGWIN_FALSE}"; then
+ as_fn_error $? "conditional \"CYGWIN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${BUILD_SKILL_TRUE}" && test -z "${BUILD_SKILL_FALSE}"; then
+ as_fn_error $? "conditional \"BUILD_SKILL\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+if test -z "${EXAMPLE_FILES_TRUE}" && test -z "${EXAMPLE_FILES_FALSE}"; then
+ as_fn_error $? "conditional \"EXAMPLE_FILES\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
+
+: "${CONFIG_STATUS=./config.status}"
+ac_write_fail=0
+ac_clean_files_save=$ac_clean_files
+ac_clean_files="$ac_clean_files $CONFIG_STATUS"
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
+printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;}
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+# Run this file to recreate the current configuration.
+# Compiler output produced by configure, useful for debugging
+# configure, is in config.log if it exists.
+
+debug=false
+ac_cs_recheck=false
+ac_cs_silent=false
+
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
+
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
+as_nop=:
+if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else $as_nop
+ case `(set -o) 2>/dev/null` in #(
+ *posix*) :
+ set -o posix ;; #(
+ *) :
+ ;;
+esac
+fi
+
+
+
+# Reset variables that may have inherited troublesome values from
+# the environment.
+
+# IFS needs to be set, to space, tab, and newline, in precisely that order.
+# (If _AS_PATH_WALK were called with IFS unset, it would have the
+# side effect of setting IFS to empty, thus disabling word splitting.)
+# Quoting is to prevent editors from complaining about space-tab.
+as_nl='
+'
+export as_nl
+IFS=" "" $as_nl"
+
+PS1='$ '
+PS2='> '
+PS4='+ '
+
+# Ensure predictable behavior from utilities with locale-dependent output.
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
+
+# We cannot yet rely on "unset" to work, but we need these variables
+# to be unset--not just set to an empty or harmless value--now, to
+# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct
+# also avoids known problems related to "unset" and subshell syntax
+# in other old shells (e.g. bash 2.01 and pdksh 5.2.14).
+for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH
+do eval test \${$as_var+y} \
+ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
+done
+
+# Ensure that fds 0, 1, and 2 are open.
+if (exec 3>&0) 2>/dev/null; then :; else exec 0</dev/null; fi
+if (exec 3>&1) 2>/dev/null; then :; else exec 1>/dev/null; fi
+if (exec 3>&2) ; then :; else exec 2>/dev/null; fi
+
+# The user is always right.
+if ${PATH_SEPARATOR+false} :; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# Find who we are. Look in the path if we contain no directory separator.
+as_myself=
+case $0 in #((
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ case $as_dir in #(((
+ '') as_dir=./ ;;
+ */) ;;
+ *) as_dir=$as_dir/ ;;
+ esac
+ test -r "$as_dir$0" && as_myself=$as_dir$0 && break
+ done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+ exit 1
+fi
+
+
+
+# as_fn_error STATUS ERROR [LINENO LOG_FD]
+# ----------------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with STATUS, using 1 if that was 0.
+as_fn_error ()
+{
+ as_status=$1; test $as_status -eq 0 && as_status=1
+ if test "$4"; then
+ as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+ printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
+ fi
+ printf "%s\n" "$as_me: error: $2" >&2
+ as_fn_exit $as_status
+} # as_fn_error
+
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+ return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+ set +e
+ as_fn_set_status $1
+ exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+ { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null
+then :
+ eval 'as_fn_append ()
+ {
+ eval $1+=\$2
+ }'
+else $as_nop
+ as_fn_append ()
+ {
+ eval $1=\$$1\$2
+ }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null
+then :
+ eval 'as_fn_arith ()
+ {
+ as_val=$(( $* ))
+ }'
+else $as_nop
+ as_fn_arith ()
+ {
+ as_val=`expr "$@" || test $? -eq 1`
+ }
+fi # as_fn_arith
+
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
+ as_expr=expr
+else
+ as_expr=false
+fi
+
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+ as_basename=basename
+else
+ as_basename=false
+fi
+
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+ as_dirname=dirname
+else
+ as_dirname=false
+fi
+
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$0" : 'X\(//\)$' \| \
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+printf "%s\n" X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+
+# Determine whether it's possible to make 'echo' print without a newline.
+# These variables are no longer used directly by Autoconf, but are AC_SUBSTed
+# for compatibility with existing Makefiles.
+ECHO_C= ECHO_N= ECHO_T=
+case `echo -n x` in #(((((
+-n*)
+ case `echo 'xy\c'` in
+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.
+ xy) ECHO_C='\c';;
+ *) echo `echo ksh88 bug on AIX 6.1` > /dev/null
+ ECHO_T=' ';;
+ esac;;
+*)
+ ECHO_N='-n';;
+esac
+
+# For backward compatibility with old third-party macros, we provide
+# the shell variables $as_echo and $as_echo_n. New code should use
+# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively.
+as_echo='printf %s\n'
+as_echo_n='printf %s'
+
+rm -f conf$$ conf$$.exe conf$$.file
+if test -d conf$$.dir; then
+ rm -f conf$$.dir/conf$$.file
+else
+ rm -f conf$$.dir
+ mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+ if ln -s conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s='ln -s'
+ # ... but there are two gotchas:
+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+ # In both cases, we have to default to `cp -pR'.
+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+ as_ln_s='cp -pR'
+ elif ln conf$$.file conf$$ 2>/dev/null; then
+ as_ln_s=ln
+ else
+ as_ln_s='cp -pR'
+ fi
+else
+ as_ln_s='cp -pR'
+fi
+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
+rmdir conf$$.dir 2>/dev/null
+
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || eval $as_mkdir_p || {
+ as_dirs=
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+printf "%s\n" X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
+ done
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+if mkdir -p . 2>/dev/null; then
+ as_mkdir_p='mkdir -p "$as_dir"'
+else
+ test -d ./-p && rmdir ./-p
+ as_mkdir_p=false
+fi
+
+
+# as_fn_executable_p FILE
+# -----------------------
+# Test if FILE is an executable regular file.
+as_fn_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+} # as_fn_executable_p
+as_test_x='test -x'
+as_executable_p=as_fn_executable_p
+
+# Sed expression to map a string onto a valid CPP name.
+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+
+# Sed expression to map a string onto a valid variable name.
+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+
+
+exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
+# report actual input values of CONFIG_FILES etc. instead of their
+# values after options handling.
+ac_log="
+This file was extended by procps-ng $as_me 4.0.4, which was
+generated by GNU Autoconf 2.71. Invocation command line was
+
+ CONFIG_FILES = $CONFIG_FILES
+ CONFIG_HEADERS = $CONFIG_HEADERS
+ CONFIG_LINKS = $CONFIG_LINKS
+ CONFIG_COMMANDS = $CONFIG_COMMANDS
+ $ $0 $@
+
+on `(hostname || uname -n) 2>/dev/null | sed 1q`
+"
+
+_ACEOF
+
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+# Files that config.status was made for.
+config_files="$ac_config_files"
+config_headers="$ac_config_headers"
+config_commands="$ac_config_commands"
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ac_cs_usage="\
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration. Unless the files
+and actions are specified as TAGs, all are instantiated by default.
+
+Usage: $0 [OPTION]... [TAG]...
+
+ -h, --help print this help, then exit
+ -V, --version print version number and configuration settings, then exit
+ --config print configuration, then exit
+ -q, --quiet, --silent
+ do not print progress messages
+ -d, --debug don't remove temporary files
+ --recheck update $as_me by reconfiguring in the same conditions
+ --file=FILE[:TEMPLATE]
+ instantiate the configuration file FILE
+ --header=FILE[:TEMPLATE]
+ instantiate the configuration header FILE
+
+Configuration files:
+$config_files
+
+Configuration headers:
+$config_headers
+
+Configuration commands:
+$config_commands
+
+Report bugs to <procps@freelists.org>.
+procps-ng home page: <https://gitlab.com/procps-ng/procps>."
+
+_ACEOF
+ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"`
+ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"`
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_cs_config='$ac_cs_config_escaped'
+ac_cs_version="\\
+procps-ng config.status 4.0.4
+configured by $0, generated by GNU Autoconf 2.71,
+ with options \\"\$ac_cs_config\\"
+
+Copyright (C) 2021 Free Software Foundation, Inc.
+This config.status script is free software; the Free Software Foundation
+gives unlimited permission to copy, distribute and modify it."
+
+ac_pwd='$ac_pwd'
+srcdir='$srcdir'
+INSTALL='$INSTALL'
+MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
+ac_need_defaults=:
+while test $# != 0
+do
+ case $1 in
+ --*=?*)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
+ ac_shift=:
+ ;;
+ --*=)
+ ac_option=`expr "X$1" : 'X\([^=]*\)='`
+ ac_optarg=
+ ac_shift=:
+ ;;
+ *)
+ ac_option=$1
+ ac_optarg=$2
+ ac_shift=shift
+ ;;
+ esac
+
+ case $ac_option in
+ # Handling of the options.
+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+ ac_cs_recheck=: ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
+ printf "%s\n" "$ac_cs_version"; exit ;;
+ --config | --confi | --conf | --con | --co | --c )
+ printf "%s\n" "$ac_cs_config"; exit ;;
+ --debug | --debu | --deb | --de | --d | -d )
+ debug=: ;;
+ --file | --fil | --fi | --f )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ '') as_fn_error $? "missing file argument" ;;
+ esac
+ as_fn_append CONFIG_FILES " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --header | --heade | --head | --hea )
+ $ac_shift
+ case $ac_optarg in
+ *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+ esac
+ as_fn_append CONFIG_HEADERS " '$ac_optarg'"
+ ac_need_defaults=false;;
+ --he | --h)
+ # Conflict between --help and --header
+ as_fn_error $? "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
+ --help | --hel | -h )
+ printf "%s\n" "$ac_cs_usage"; exit ;;
+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+ | -silent | --silent | --silen | --sile | --sil | --si | --s)
+ ac_cs_silent=: ;;
+
+ # This is an error.
+ -*) as_fn_error $? "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
+
+ *) as_fn_append ac_config_targets " $1"
+ ac_need_defaults=false ;;
+
+ esac
+ shift
+done
+
+ac_configure_extra_args=
+
+if $ac_cs_silent; then
+ exec 6>/dev/null
+ ac_configure_extra_args="$ac_configure_extra_args --silent"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+if \$ac_cs_recheck; then
+ set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+ shift
+ \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6
+ CONFIG_SHELL='$SHELL'
+ export CONFIG_SHELL
+ exec "\$@"
+fi
+
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+exec 5>>config.log
+{
+ echo
+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
+## Running $as_me. ##
+_ASBOX
+ printf "%s\n" "$ac_log"
+} >&5
+
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+#
+# INIT-COMMANDS
+#
+AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"
+
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
+macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
+enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
+enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
+pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
+enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
+shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`'
+SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
+ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
+PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
+host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
+host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
+host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
+build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
+build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
+build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
+SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
+Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
+GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
+EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
+FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
+LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
+NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
+LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
+max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
+ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
+exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
+lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
+lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
+lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
+lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
+reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
+FILECMD='`$ECHO "$FILECMD" | $SED "$delay_single_quote_subst"`'
+OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
+deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
+file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
+file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
+want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
+DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
+sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
+AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
+lt_ar_flags='`$ECHO "$lt_ar_flags" | $SED "$delay_single_quote_subst"`'
+AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
+archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
+STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
+RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
+old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
+lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
+CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
+CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
+compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
+GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
+lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`'
+nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
+lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
+lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`'
+objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
+MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
+lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
+lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
+need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
+MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
+DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
+NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
+LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
+OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
+OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
+libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
+shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
+extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
+enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
+export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
+whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
+compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
+old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
+old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
+archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
+archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
+module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
+with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
+allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
+no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
+hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
+hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
+hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
+hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
+hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
+hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
+inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
+link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
+always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
+export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
+exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
+include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
+prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
+postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
+file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
+variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
+need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
+need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
+version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
+runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
+shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
+libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
+library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
+soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
+install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
+postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
+postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
+finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
+finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
+hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
+sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
+configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`'
+configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`'
+hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
+enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
+enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
+old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
+striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
+
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+
+# Quote evaled strings.
+for var in SHELL \
+ECHO \
+PATH_SEPARATOR \
+SED \
+GREP \
+EGREP \
+FGREP \
+LD \
+NM \
+LN_S \
+lt_SP2NL \
+lt_NL2SP \
+reload_flag \
+FILECMD \
+OBJDUMP \
+deplibs_check_method \
+file_magic_cmd \
+file_magic_glob \
+want_nocaseglob \
+DLLTOOL \
+sharedlib_from_linklib_cmd \
+AR \
+archiver_list_spec \
+STRIP \
+RANLIB \
+CC \
+CFLAGS \
+compiler \
+lt_cv_sys_global_symbol_pipe \
+lt_cv_sys_global_symbol_to_cdecl \
+lt_cv_sys_global_symbol_to_import \
+lt_cv_sys_global_symbol_to_c_name_address \
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
+lt_cv_nm_interface \
+nm_file_list_spec \
+lt_cv_truncate_bin \
+lt_prog_compiler_no_builtin_flag \
+lt_prog_compiler_pic \
+lt_prog_compiler_wl \
+lt_prog_compiler_static \
+lt_cv_prog_compiler_c_o \
+need_locks \
+MANIFEST_TOOL \
+DSYMUTIL \
+NMEDIT \
+LIPO \
+OTOOL \
+OTOOL64 \
+shrext_cmds \
+export_dynamic_flag_spec \
+whole_archive_flag_spec \
+compiler_needs_object \
+with_gnu_ld \
+allow_undefined_flag \
+no_undefined_flag \
+hardcode_libdir_flag_spec \
+hardcode_libdir_separator \
+exclude_expsyms \
+include_expsyms \
+file_list_spec \
+variables_saved_for_relink \
+libname_spec \
+library_names_spec \
+soname_spec \
+install_override_mode \
+finish_eval \
+old_striplib \
+striplib; do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+# Double-quote double-evaled strings.
+for var in reload_cmds \
+old_postinstall_cmds \
+old_postuninstall_cmds \
+old_archive_cmds \
+extract_expsyms_cmds \
+old_archive_from_new_cmds \
+old_archive_from_expsyms_cmds \
+archive_cmds \
+archive_expsym_cmds \
+module_cmds \
+module_expsym_cmds \
+export_symbols_cmds \
+prelink_cmds \
+postlink_cmds \
+postinstall_cmds \
+postuninstall_cmds \
+finish_cmds \
+sys_lib_search_path_spec \
+configure_time_dlsearch_path \
+configure_time_lt_sys_library_path; do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[\\\\\\\`\\"\\\$]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+ac_aux_dir='$ac_aux_dir'
+
+# See if we are running on zsh, and set the options that allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+fi
+
+
+ PACKAGE='$PACKAGE'
+ VERSION='$VERSION'
+ RM='$RM'
+ ofile='$ofile'
+
+
+
+# Capture the value of obsolete ALL_LINGUAS because we need it to compute
+ # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
+ # from automake.
+ eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
+ # Capture the value of LINGUAS because we need it to compute CATALOGS.
+ LINGUAS="${LINGUAS-%UNSET%}"
+
+
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+
+# Handling of arguments.
+for ac_config_target in $ac_config_targets
+do
+ case $ac_config_target in
+ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;
+ "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
+ "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
+ "default-1") CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
+ "local/Makefile") CONFIG_FILES="$CONFIG_FILES local/Makefile" ;;
+ "po-man/Makefile") CONFIG_FILES="$CONFIG_FILES po-man/Makefile" ;;
+ "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;;
+ "library/libproc2.pc") CONFIG_FILES="$CONFIG_FILES library/libproc2.pc" ;;
+ "testsuite/Makefile") CONFIG_FILES="$CONFIG_FILES testsuite/Makefile" ;;
+
+ *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+ esac
+done
+
+
+# If the user did not use the arguments to specify the items to instantiate,
+# then the envvar interface is used. Set only those that are not.
+# We use the long form for the default assignment because of an extremely
+# bizarre bug on SunOS 4.1.3.
+if $ac_need_defaults; then
+ test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files
+ test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers
+ test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands
+fi
+
+# Have a temporary directory for convenience. Make it in the build tree
+# simply because there is no reason against having it here, and in addition,
+# creating and moving files from /tmp can sometimes cause problems.
+# Hook for its removal unless debugging.
+# Note that there is a small window in which the directory will not be cleaned:
+# after its creation but before its name has been assigned to `$tmp'.
+$debug ||
+{
+ tmp= ac_tmp=
+ trap 'exit_status=$?
+ : "${ac_tmp:=$tmp}"
+ { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
+' 0
+ trap 'as_fn_exit 1' 1 2 13 15
+}
+# Create a (secure) tmp directory for tmp files.
+
+{
+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
+ test -d "$tmp"
+} ||
+{
+ tmp=./conf$$-$RANDOM
+ (umask 077 && mkdir "$tmp")
+} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
+
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
+if test -n "$CONFIG_FILES"; then
+
+
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+ eval ac_cr=\$\'\\r\'
+fi
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+ ac_cs_awk_cr='\\r'
+else
+ ac_cs_awk_cr=$ac_cr
+fi
+
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
+_ACEOF
+
+
+{
+ echo "cat >conf$$subs.awk <<_ACEOF" &&
+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+ echo "_ACEOF"
+} >conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
+ac_delim='%!_!# '
+for ac_last_try in false false false false false :; do
+ . ./conf$$subs.sh ||
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+
+ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+ if test $ac_delim_n = $ac_delim_num; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+rm -f conf$$subs.sh
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\)..*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\)..*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+ N
+ s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
+ for (key in S) S_is_set[key] = 1
+ FS = ""
+
+}
+{
+ line = $ 0
+ nfields = split(line, field, "@")
+ substed = 0
+ len = length(field[1])
+ for (i = 2; i < nfields; i++) {
+ key = field[i]
+ keylen = length(key)
+ if (S_is_set[key]) {
+ value = S[key]
+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+ len += length(value) + length(field[++i])
+ substed = 1
+ } else
+ len += 1 + keylen
+ }
+
+ print line
+}
+
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+ cat
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
+ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
+_ACEOF
+
+# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
+# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
+# trailing colons and then remove the whole line if VPATH becomes empty
+# (actually we leave an empty line to preserve line numbers).
+if test "x$srcdir" = x.; then
+ ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{
+h
+s///
+s/^/:/
+s/[ ]*$/:/
+s/:\$(srcdir):/:/g
+s/:\${srcdir}:/:/g
+s/:@srcdir@:/:/g
+s/^:*//
+s/:*$//
+x
+s/\(=[ ]*\).*/\1/
+G
+s/\n//
+s/^[^=]*=[ ]*$//
+}'
+fi
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+fi # test -n "$CONFIG_FILES"
+
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+ ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+ if test -z "$ac_tt"; then
+ break
+ elif $ac_last_try; then
+ as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
+ else
+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+ fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any. Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[ ]*#[ ]*define[ ][ ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ for (key in D) D_is_set[key] = 1
+ FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+ line = \$ 0
+ split(line, arg, " ")
+ if (arg[1] == "#") {
+ defundef = arg[2]
+ mac1 = arg[3]
+ } else {
+ defundef = substr(arg[1], 2)
+ mac1 = arg[2]
+ }
+ split(mac1, mac2, "(") #)
+ macro = mac2[1]
+ prefix = substr(line, 1, index(line, defundef) - 1)
+ if (D_is_set[macro]) {
+ # Preserve the white space surrounding the "#".
+ print prefix "define", macro P[macro] D[macro]
+ next
+ } else {
+ # Replace #undef with comments. This is necessary, for example,
+ # in the case of _POSIX_SOURCE, which is predefined and required
+ # on some systems where configure will not decide to define it.
+ if (defundef == "undef") {
+ print "/*", prefix defundef, macro, "*/"
+ next
+ }
+ }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+ as_fn_error $? "could not setup config headers machinery" "$LINENO" 5
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS"
+shift
+for ac_tag
+do
+ case $ac_tag in
+ :[FHLC]) ac_mode=$ac_tag; continue;;
+ esac
+ case $ac_mode$ac_tag in
+ :[FHL]*:*);;
+ :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+ :[FH]-) ac_tag=-:-;;
+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
+ esac
+ ac_save_IFS=$IFS
+ IFS=:
+ set x $ac_tag
+ IFS=$ac_save_IFS
+ shift
+ ac_file=$1
+ shift
+
+ case $ac_mode in
+ :L) ac_source=$1;;
+ :[FH])
+ ac_file_inputs=
+ for ac_f
+ do
+ case $ac_f in
+ -) ac_f="$ac_tmp/stdin";;
+ *) # Look for the file first in the build tree, then in the source tree
+ # (if the path is not absolute). The absolute path cannot be DOS-style,
+ # because $ac_f cannot contain `:'.
+ test -f "$ac_f" ||
+ case $ac_f in
+ [\\/$]*) false;;
+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
+ esac ||
+ as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+ esac
+ case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+ as_fn_append ac_file_inputs " '$ac_f'"
+ done
+
+ # Let's still pretend it is `configure' which instantiates (i.e., don't
+ # use $as_me), people would be surprised to read:
+ # /* config.h. Generated by config.status. */
+ configure_input='Generated from '`
+ printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+ `' by configure.'
+ if test x"$ac_file" != x-; then
+ configure_input="$ac_file. $configure_input"
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
+printf "%s\n" "$as_me: creating $ac_file" >&6;}
+ fi
+ # Neutralize special characters interpreted by sed in replacement strings.
+ case $configure_input in #(
+ *\&* | *\|* | *\\* )
+ ac_sed_conf_input=`printf "%s\n" "$configure_input" |
+ sed 's/[\\\\&|]/\\\\&/g'`;; #(
+ *) ac_sed_conf_input=$configure_input;;
+ esac
+
+ case $ac_tag in
+ *:-:* | *:-) cat >"$ac_tmp/stdin" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
+ esac
+ ;;
+ esac
+
+ ac_dir=`$as_dirname -- "$ac_file" ||
+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$ac_file" : 'X\(//\)[^/]' \| \
+ X"$ac_file" : 'X\(//\)$' \| \
+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
+printf "%s\n" X"$ac_file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ as_dir="$ac_dir"; as_fn_mkdir_p
+ ac_builddir=.
+
+case "$ac_dir" in
+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
+*)
+ ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'`
+ # A ".." for each directory in $ac_dir_suffix.
+ ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
+ case $ac_top_builddir_sub in
+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;
+ esac ;;
+esac
+ac_abs_top_builddir=$ac_pwd
+ac_abs_builddir=$ac_pwd$ac_dir_suffix
+# for backward compatibility:
+ac_top_builddir=$ac_top_build_prefix
+
+case $srcdir in
+ .) # We are building in place.
+ ac_srcdir=.
+ ac_top_srcdir=$ac_top_builddir_sub
+ ac_abs_top_srcdir=$ac_pwd ;;
+ [\\/]* | ?:[\\/]* ) # Absolute name.
+ ac_srcdir=$srcdir$ac_dir_suffix;
+ ac_top_srcdir=$srcdir
+ ac_abs_top_srcdir=$srcdir ;;
+ *) # Relative name.
+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
+ ac_top_srcdir=$ac_top_build_prefix$srcdir
+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
+esac
+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
+
+
+ case $ac_mode in
+ :F)
+ #
+ # CONFIG_FILE
+ #
+
+ case $INSTALL in
+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
+ esac
+ ac_MKDIR_P=$MKDIR_P
+ case $MKDIR_P in
+ [\\/$]* | ?:[\\/]* ) ;;
+ */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
+ esac
+_ACEOF
+
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# If the template does not know about datarootdir, expand it.
+# FIXME: This hack should be removed a few years after 2.60.
+ac_datarootdir_hack=; ac_datarootdir_seen=
+ac_sed_dataroot='
+/datarootdir/ {
+ p
+ q
+}
+/@datadir@/p
+/@docdir@/p
+/@infodir@/p
+/@localedir@/p
+/@mandir@/p'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
+*datarootdir*) ac_datarootdir_seen=yes;;
+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ ac_datarootdir_hack='
+ s&@datadir@&$datadir&g
+ s&@docdir@&$docdir&g
+ s&@infodir@&$infodir&g
+ s&@localedir@&$localedir&g
+ s&@mandir@&$mandir&g
+ s&\\\${datarootdir}&$datarootdir&g' ;;
+esac
+_ACEOF
+
+# Neutralize VPATH when `$srcdir' = `.'.
+# Shell code in configure.ac might set extrasub.
+# FIXME: do we really want to maintain this feature?
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
+$extrasub
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+:t
+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
+s|@configure_input@|$ac_sed_conf_input|;t t
+s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
+s&@srcdir@&$ac_srcdir&;t t
+s&@abs_srcdir@&$ac_abs_srcdir&;t t
+s&@top_srcdir@&$ac_top_srcdir&;t t
+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
+s&@builddir@&$ac_builddir&;t t
+s&@abs_builddir@&$ac_abs_builddir&;t t
+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
+s&@INSTALL@&$ac_INSTALL&;t t
+s&@MKDIR_P@&$ac_MKDIR_P&;t t
+$ac_datarootdir_hack
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+
+test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
+ { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \
+ "$ac_tmp/out"`; test -z "$ac_out"; } &&
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&5
+printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+which seems to be undefined. Please make sure it is defined" >&2;}
+
+ rm -f "$ac_tmp/stdin"
+ case $ac_file in
+ -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+ *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
+ esac \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ ;;
+ :H)
+ #
+ # CONFIG_HEADER
+ #
+ if test x"$ac_file" != x-; then
+ {
+ printf "%s\n" "/* $configure_input */" >&1 \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+ } >"$ac_tmp/config.h" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
+printf "%s\n" "$as_me: $ac_file is unchanged" >&6;}
+ else
+ rm -f "$ac_file"
+ mv "$ac_tmp/config.h" "$ac_file" \
+ || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+ fi
+ else
+ printf "%s\n" "/* $configure_input */" >&1 \
+ && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
+ || as_fn_error $? "could not create -" "$LINENO" 5
+ fi
+# Compute "$ac_file"'s index in $config_headers.
+_am_arg="$ac_file"
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+ case $_am_header in
+ $_am_arg | $_am_arg:* )
+ break ;;
+ * )
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+ esac
+done
+echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
+$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$_am_arg" : 'X\(//\)[^/]' \| \
+ X"$_am_arg" : 'X\(//\)$' \| \
+ X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
+printf "%s\n" X"$_am_arg" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`/stamp-h$_am_stamp_count
+ ;;
+
+ :C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
+printf "%s\n" "$as_me: executing $ac_file commands" >&6;}
+ ;;
+ esac
+
+
+ case $ac_file$ac_mode in
+ "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+ # Older Autoconf quotes --file arguments for eval, but not when files
+ # are listed without --file. Let's play safe and only enable the eval
+ # if we detect the quoting.
+ # TODO: see whether this extra hack can be removed once we start
+ # requiring Autoconf 2.70 or later.
+ case $CONFIG_FILES in #(
+ *\'*) :
+ eval set x "$CONFIG_FILES" ;; #(
+ *) :
+ set x $CONFIG_FILES ;; #(
+ *) :
+ ;;
+esac
+ shift
+ # Used to flag and report bootstrapping failures.
+ am_rc=0
+ for am_mf
+ do
+ # Strip MF so we end up with the name of the file.
+ am_mf=`printf "%s\n" "$am_mf" | sed -e 's/:.*$//'`
+ # Check whether this is an Automake generated Makefile which includes
+ # dependency-tracking related rules and includes.
+ # Grep'ing the whole file directly is not great: AIX grep has a line
+ # limit of 2048, but all sed's we know have understand at least 4000.
+ sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \
+ || continue
+ am_dirpart=`$as_dirname -- "$am_mf" ||
+$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+ X"$am_mf" : 'X\(//\)[^/]' \| \
+ X"$am_mf" : 'X\(//\)$' \| \
+ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+printf "%s\n" X"$am_mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ am_filepart=`$as_basename -- "$am_mf" ||
+$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \
+ X"$am_mf" : 'X\(//\)$' \| \
+ X"$am_mf" : 'X\(/\)' \| . 2>/dev/null ||
+printf "%s\n" X/"$am_mf" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ { echo "$as_me:$LINENO: cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles" >&5
+ (cd "$am_dirpart" \
+ && sed -e '/# am--include-marker/d' "$am_filepart" \
+ | $MAKE -f - am--depfiles) >&5 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); } || am_rc=$?
+ done
+ if test $am_rc -ne 0; then
+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+as_fn_error $? "Something went wrong bootstrapping makefile fragments
+ for automatic dependency tracking. If GNU make was not used, consider
+ re-running the configure script with MAKE=\"gmake\" (or whatever is
+ necessary). You can also try re-running configure with the
+ '--disable-dependency-tracking' option to at least be able to build
+ the package (albeit without support for automatic dependency tracking).
+See \`config.log' for more details" "$LINENO" 5; }
+ fi
+ { am_dirpart=; unset am_dirpart;}
+ { am_filepart=; unset am_filepart;}
+ { am_mf=; unset am_mf;}
+ { am_rc=; unset am_rc;}
+ rm -f conftest-deps.mk
+}
+ ;;
+ "libtool":C)
+
+ # See if we are running on zsh, and set the options that allow our
+ # commands through without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+ fi
+
+ cfgfile=${ofile}T
+ trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+ $RM "$cfgfile"
+
+ cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+# Generated automatically by $as_me ($PACKAGE) $VERSION
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit, 1996
+
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions. There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool 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 2 of of the License, or
+# (at your option) any later version.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program or library that is built
+# using GNU Libtool, you may include this file under the same
+# distribution terms that you use for the rest of that program.
+#
+# GNU Libtool 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
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+# The names of the tagged configurations supported by this script.
+available_tags=''
+
+# Configured defaults for sys_lib_dlsearch_path munging.
+: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
+
+# ### BEGIN LIBTOOL CONFIG
+
+# Which release of libtool.m4 was used?
+macro_version=$macro_version
+macro_revision=$macro_revision
+
+# Whether or not to build shared libraries.
+build_libtool_libs=$enable_shared
+
+# Whether or not to build static libraries.
+build_old_libs=$enable_static
+
+# What type of objects to build.
+pic_mode=$pic_mode
+
+# Whether or not to optimize for fast installation.
+fast_install=$enable_fast_install
+
+# Shared archive member basename,for filename based shared library versioning on AIX.
+shared_archive_member_spec=$shared_archive_member_spec
+
+# Shell to use when invoking shell scripts.
+SHELL=$lt_SHELL
+
+# An echo program that protects backslashes.
+ECHO=$lt_ECHO
+
+# The PATH separator for the build system.
+PATH_SEPARATOR=$lt_PATH_SEPARATOR
+
+# The host system.
+host_alias=$host_alias
+host=$host
+host_os=$host_os
+
+# The build system.
+build_alias=$build_alias
+build=$build
+build_os=$build_os
+
+# A sed program that does not truncate output.
+SED=$lt_SED
+
+# Sed that helps us avoid accidentally triggering echo(1) options like -n.
+Xsed="\$SED -e 1s/^X//"
+
+# A grep program that handles long lines.
+GREP=$lt_GREP
+
+# An ERE matcher.
+EGREP=$lt_EGREP
+
+# A literal string matcher.
+FGREP=$lt_FGREP
+
+# A BSD- or MS-compatible name lister.
+NM=$lt_NM
+
+# Whether we need soft or hard links.
+LN_S=$lt_LN_S
+
+# What is the maximum length of a command?
+max_cmd_len=$max_cmd_len
+
+# Object file suffix (normally "o").
+objext=$ac_objext
+
+# Executable file suffix (normally "").
+exeext=$exeext
+
+# whether the shell understands "unset".
+lt_unset=$lt_unset
+
+# turn spaces into newlines.
+SP2NL=$lt_lt_SP2NL
+
+# turn newlines into spaces.
+NL2SP=$lt_lt_NL2SP
+
+# convert \$build file names to \$host format.
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+
+# convert \$build files to toolchain format.
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+
+# A file(cmd) program that detects file types.
+FILECMD=$lt_FILECMD
+
+# An object symbol dumper.
+OBJDUMP=$lt_OBJDUMP
+
+# Method to check whether dependent libraries are shared objects.
+deplibs_check_method=$lt_deplibs_check_method
+
+# Command to use when deplibs_check_method = "file_magic".
+file_magic_cmd=$lt_file_magic_cmd
+
+# How to find potential files when deplibs_check_method = "file_magic".
+file_magic_glob=$lt_file_magic_glob
+
+# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
+want_nocaseglob=$lt_want_nocaseglob
+
+# DLL creation program.
+DLLTOOL=$lt_DLLTOOL
+
+# Command to associate shared and link libraries.
+sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
+
+# The archiver.
+AR=$lt_AR
+
+# Flags to create an archive (by configure).
+lt_ar_flags=$lt_ar_flags
+
+# Flags to create an archive.
+AR_FLAGS=\${ARFLAGS-"\$lt_ar_flags"}
+
+# How to feed a file listing to the archiver.
+archiver_list_spec=$lt_archiver_list_spec
+
+# A symbol stripping program.
+STRIP=$lt_STRIP
+
+# Commands used to install an old-style archive.
+RANLIB=$lt_RANLIB
+old_postinstall_cmds=$lt_old_postinstall_cmds
+old_postuninstall_cmds=$lt_old_postuninstall_cmds
+
+# Whether to use a lock for old archive extraction.
+lock_old_archive_extraction=$lock_old_archive_extraction
+
+# A C compiler.
+LTCC=$lt_CC
+
+# LTCC compiler flags.
+LTCFLAGS=$lt_CFLAGS
+
+# Take the output of nm and produce a listing of raw symbols and C names.
+global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
+
+# Transform the output of nm in a proper C declaration.
+global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
+
+# Transform the output of nm into a list of symbols to manually relocate.
+global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import
+
+# Transform the output of nm in a C name address pair.
+global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
+
+# Transform the output of nm in a C name address pair when lib prefix is needed.
+global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
+
+# The name lister interface.
+nm_interface=$lt_lt_cv_nm_interface
+
+# Specify filename containing input files for \$NM.
+nm_file_list_spec=$lt_nm_file_list_spec
+
+# The root where to search for dependent libraries,and where our libraries should be installed.
+lt_sysroot=$lt_sysroot
+
+# Command to truncate a binary pipe.
+lt_truncate_bin=$lt_lt_cv_truncate_bin
+
+# The name of the directory that contains temporary libtool files.
+objdir=$objdir
+
+# Used to examine libraries when file_magic_cmd begins with "file".
+MAGIC_CMD=$MAGIC_CMD
+
+# Must we lock files when doing compilation?
+need_locks=$lt_need_locks
+
+# Manifest tool.
+MANIFEST_TOOL=$lt_MANIFEST_TOOL
+
+# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
+DSYMUTIL=$lt_DSYMUTIL
+
+# Tool to change global to local symbols on Mac OS X.
+NMEDIT=$lt_NMEDIT
+
+# Tool to manipulate fat objects and archives on Mac OS X.
+LIPO=$lt_LIPO
+
+# ldd/readelf like tool for Mach-O binaries on Mac OS X.
+OTOOL=$lt_OTOOL
+
+# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
+OTOOL64=$lt_OTOOL64
+
+# Old archive suffix (normally "a").
+libext=$libext
+
+# Shared library suffix (normally ".so").
+shrext_cmds=$lt_shrext_cmds
+
+# The commands to extract the exported symbol list from a shared archive.
+extract_expsyms_cmds=$lt_extract_expsyms_cmds
+
+# Variables whose values should be saved in libtool wrapper scripts and
+# restored at link time.
+variables_saved_for_relink=$lt_variables_saved_for_relink
+
+# Do we need the "lib" prefix for modules?
+need_lib_prefix=$need_lib_prefix
+
+# Do we need a version for libraries?
+need_version=$need_version
+
+# Library versioning type.
+version_type=$version_type
+
+# Shared library runtime path variable.
+runpath_var=$runpath_var
+
+# Shared library path variable.
+shlibpath_var=$shlibpath_var
+
+# Is shlibpath searched before the hard-coded library search path?
+shlibpath_overrides_runpath=$shlibpath_overrides_runpath
+
+# Format of library name prefix.
+libname_spec=$lt_libname_spec
+
+# List of archive names. First name is the real one, the rest are links.
+# The last name is the one that the linker finds with -lNAME
+library_names_spec=$lt_library_names_spec
+
+# The coded name of the library, if different from the real name.
+soname_spec=$lt_soname_spec
+
+# Permission mode override for installation of shared libraries.
+install_override_mode=$lt_install_override_mode
+
+# Command to use after installation of a shared archive.
+postinstall_cmds=$lt_postinstall_cmds
+
+# Command to use after uninstallation of a shared archive.
+postuninstall_cmds=$lt_postuninstall_cmds
+
+# Commands used to finish a libtool library installation in a directory.
+finish_cmds=$lt_finish_cmds
+
+# As "finish_cmds", except a single script fragment to be evaled but
+# not shown.
+finish_eval=$lt_finish_eval
+
+# Whether we should hardcode library paths into libraries.
+hardcode_into_libs=$hardcode_into_libs
+
+# Compile-time system search path for libraries.
+sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
+
+# Detected run-time system search path for libraries.
+sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path
+
+# Explicit LT_SYS_LIBRARY_PATH set during ./configure time.
+configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path
+
+# Whether dlopen is supported.
+dlopen_support=$enable_dlopen
+
+# Whether dlopen of programs is supported.
+dlopen_self=$enable_dlopen_self
+
+# Whether dlopen of statically linked programs is supported.
+dlopen_self_static=$enable_dlopen_self_static
+
+# Commands to strip libraries.
+old_striplib=$lt_old_striplib
+striplib=$lt_striplib
+
+
+# The linker used to build libraries.
+LD=$lt_LD
+
+# How to create reloadable object files.
+reload_flag=$lt_reload_flag
+reload_cmds=$lt_reload_cmds
+
+# Commands used to build an old-style archive.
+old_archive_cmds=$lt_old_archive_cmds
+
+# A language specific compiler.
+CC=$lt_compiler
+
+# Is the compiler the GNU compiler?
+with_gcc=$GCC
+
+# Compiler flag to turn off builtin functions.
+no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
+
+# Additional compiler flags for building library objects.
+pic_flag=$lt_lt_prog_compiler_pic
+
+# How to pass a linker flag through the compiler.
+wl=$lt_lt_prog_compiler_wl
+
+# Compiler flag to prevent dynamic linking.
+link_static_flag=$lt_lt_prog_compiler_static
+
+# Does compiler simultaneously support -c and -o options?
+compiler_c_o=$lt_lt_cv_prog_compiler_c_o
+
+# Whether or not to add -lc for building shared libraries.
+build_libtool_need_lc=$archive_cmds_need_lc
+
+# Whether or not to disallow shared libs when runtime libs are static.
+allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
+
+# Compiler flag to allow reflexive dlopens.
+export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
+
+# Compiler flag to generate shared objects directly from archives.
+whole_archive_flag_spec=$lt_whole_archive_flag_spec
+
+# Whether the compiler copes with passing no objects directly.
+compiler_needs_object=$lt_compiler_needs_object
+
+# Create an old-style archive from a shared archive.
+old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
+
+# Create a temporary old-style archive to link instead of a shared archive.
+old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
+
+# Commands used to build a shared archive.
+archive_cmds=$lt_archive_cmds
+archive_expsym_cmds=$lt_archive_expsym_cmds
+
+# Commands used to build a loadable module if different from building
+# a shared archive.
+module_cmds=$lt_module_cmds
+module_expsym_cmds=$lt_module_expsym_cmds
+
+# Whether we are building with GNU ld or not.
+with_gnu_ld=$lt_with_gnu_ld
+
+# Flag that allows shared libraries with undefined symbols to be built.
+allow_undefined_flag=$lt_allow_undefined_flag
+
+# Flag that enforces no undefined symbols.
+no_undefined_flag=$lt_no_undefined_flag
+
+# Flag to hardcode \$libdir into a binary during linking.
+# This must work even if \$libdir does not exist
+hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
+
+# Whether we need a single "-rpath" flag with a separated argument.
+hardcode_libdir_separator=$lt_hardcode_libdir_separator
+
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
+# DIR into the resulting binary.
+hardcode_direct=$hardcode_direct
+
+# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes
+# DIR into the resulting binary and the resulting library dependency is
+# "absolute",i.e impossible to change by setting \$shlibpath_var if the
+# library is relocated.
+hardcode_direct_absolute=$hardcode_direct_absolute
+
+# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+# into the resulting binary.
+hardcode_minus_L=$hardcode_minus_L
+
+# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+# into the resulting binary.
+hardcode_shlibpath_var=$hardcode_shlibpath_var
+
+# Set to "yes" if building a shared library automatically hardcodes DIR
+# into the library and all subsequent libraries and executables linked
+# against it.
+hardcode_automatic=$hardcode_automatic
+
+# Set to yes if linker adds runtime paths of dependent libraries
+# to runtime path list.
+inherit_rpath=$inherit_rpath
+
+# Whether libtool must link a program against all its dependency libraries.
+link_all_deplibs=$link_all_deplibs
+
+# Set to "yes" if exported symbols are required.
+always_export_symbols=$always_export_symbols
+
+# The commands to list exported symbols.
+export_symbols_cmds=$lt_export_symbols_cmds
+
+# Symbols that should not be listed in the preloaded symbols.
+exclude_expsyms=$lt_exclude_expsyms
+
+# Symbols that must always be exported.
+include_expsyms=$lt_include_expsyms
+
+# Commands necessary for linking programs (against libraries) with templates.
+prelink_cmds=$lt_prelink_cmds
+
+# Commands necessary for finishing linking programs.
+postlink_cmds=$lt_postlink_cmds
+
+# Specify filename containing input files.
+file_list_spec=$lt_file_list_spec
+
+# How to hardcode a shared library path into an executable.
+hardcode_action=$hardcode_action
+
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+ cat <<'_LT_EOF' >> "$cfgfile"
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
+
+# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+# string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+# string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+# "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+# VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+ case x$2 in
+ x)
+ ;;
+ *:)
+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\"
+ ;;
+ x:*)
+ eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\"
+ ;;
+ *::*)
+ eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+ eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\"
+ ;;
+ *)
+ eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\"
+ ;;
+ esac
+}
+
+
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+ for cc_temp in $*""; do
+ case $cc_temp in
+ compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
+ distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+ done
+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+
+
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_EOF
+
+ case $host_os in
+ aix3*)
+ cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test set != "${COLLECT_NAMES+set}"; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+_LT_EOF
+ ;;
+ esac
+
+
+
+ltmain=$ac_aux_dir/ltmain.sh
+
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ $SED '$q' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+
+ ;;
+ "default-1":C)
+ for ac_file in $CONFIG_FILES; do
+ # Support "outfile[:infile[:infile...]]"
+ case "$ac_file" in
+ *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ esac
+ # PO directories have a Makefile.in generated from Makefile.in.in.
+ case "$ac_file" in */Makefile.in)
+ # Adjust a relative srcdir.
+ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+ ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+ # In autoconf-2.13 it is called $ac_given_srcdir.
+ # In autoconf-2.50 it is called $srcdir.
+ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+ case "$ac_given_srcdir" in
+ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+ /*) top_srcdir="$ac_given_srcdir" ;;
+ *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+ if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
+ rm -f "$ac_dir/POTFILES"
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
+ cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
+ POMAKEFILEDEPS="POTFILES.in"
+ # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
+ # on $ac_dir but don't depend on user-specified configuration
+ # parameters.
+ if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+ # The LINGUAS file contains the set of available languages.
+ if test -n "$OBSOLETE_ALL_LINGUAS"; then
+ test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+ fi
+ ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+ # Hide the ALL_LINGUAS assigment from automake.
+ eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+ else
+ # The set of available languages was given in configure.in.
+ eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
+ fi
+ # Compute POFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+ # Compute UPDATEPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+ # Compute DUMMYPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+ # Compute GMOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+ case "$ac_given_srcdir" in
+ .) srcdirpre= ;;
+ *) srcdirpre='$(srcdir)/' ;;
+ esac
+ POFILES=
+ UPDATEPOFILES=
+ DUMMYPOFILES=
+ GMOFILES=
+ for lang in $ALL_LINGUAS; do
+ POFILES="$POFILES $srcdirpre$lang.po"
+ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+ done
+ # CATALOGS depends on both $ac_dir and the user's LINGUAS
+ # environment variable.
+ INST_LINGUAS=
+ if test -n "$ALL_LINGUAS"; then
+ for presentlang in $ALL_LINGUAS; do
+ useit=no
+ if test "%UNSET%" != "$LINGUAS"; then
+ desiredlanguages="$LINGUAS"
+ else
+ desiredlanguages="$ALL_LINGUAS"
+ fi
+ for desiredlang in $desiredlanguages; do
+ # Use the presentlang catalog if desiredlang is
+ # a. equal to presentlang, or
+ # b. a variant of presentlang (because in this case,
+ # presentlang can be used as a fallback for messages
+ # which are not translated in the desiredlang catalog).
+ case "$desiredlang" in
+ "$presentlang"*) useit=yes;;
+ esac
+ done
+ if test $useit = yes; then
+ INST_LINGUAS="$INST_LINGUAS $presentlang"
+ fi
+ done
+ fi
+ CATALOGS=
+ if test -n "$INST_LINGUAS"; then
+ for lang in $INST_LINGUAS; do
+ CATALOGS="$CATALOGS $lang.gmo"
+ done
+ fi
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
+ sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
+ for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
+ if test -f "$f"; then
+ case "$f" in
+ *.orig | *.bak | *~) ;;
+ *) cat "$f" >> "$ac_dir/Makefile" ;;
+ esac
+ fi
+ done
+ fi
+ ;;
+ esac
+ done ;;
+
+ esac
+done # for ac_tag
+
+
+as_fn_exit 0
+_ACEOF
+ac_clean_files=$ac_clean_files_save
+
+test $ac_write_fail = 0 ||
+ as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
+
+
+# configure is writing to config.log, and then calls config.status.
+# config.status does its own redirection, appending to config.log.
+# Unfortunately, on DOS this fails, as config.log is still kept open
+# by configure, so config.status won't be able to write to it; its
+# output is simply discarded. So we exec the FD to /dev/null,
+# effectively closing config.log, so it can be properly (re)opened and
+# appended to by config.status. When coming back to configure, we
+# need to make the FD available again.
+if test "$no_create" != yes; then
+ ac_cs_success=:
+ ac_config_status_args=
+ test "$silent" = yes &&
+ ac_config_status_args="$ac_config_status_args --quiet"
+ exec 5>/dev/null
+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
+ exec 5>>config.log
+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which
+ # would make configure fail if this is the last instruction.
+ $ac_cs_success || as_fn_exit 1
+fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
+
+
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..fec27e3
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,428 @@
+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+
+AC_PREREQ([2.69])
+AC_CONFIG_MACRO_DIR([m4])
+AC_INIT([procps-ng],
+ m4_esyscmd([local/git-version-gen .tarball-version]),
+ [procps@freelists.org],,[https://gitlab.com/procps-ng/procps])
+AM_INIT_AUTOMAKE([foreign 1.11 subdir-objects -Wall -Wno-portability tar-pax no-dist-gzip dist-xz])
+AM_SILENT_RULES([yes])
+AC_CONFIG_SRCDIR([src/free.c])
+AC_CONFIG_HEADERS([config.h])
+AC_LANG([C])
+
+# Checks for programs.
+AC_USE_SYSTEM_EXTENSIONS
+AC_SYS_LARGEFILE
+AC_PROG_AWK
+AC_PROG_CC
+AC_PROG_CC_STDC
+if test "$cross_compiling" = no; then
+ if test "x$ac_cv_prog_cc_c99" = "xno" || test "x$ac_cv_prog_cc_c99" = "x"; then
+ # We might be on RHEL5 with a git checkout and so broken
+ # autoconf. Check if CC is gcc and if it bails when given -std=gnu99.
+ # If not, use that. Yuck.
+ if test "x$ac_cv_c_compiler_gnu" = "xyes"; then
+ CC="$CC -std=gnu99"
+ AC_RUN_IFELSE(
+ [AC_LANG_PROGRAM([],[[
+ return 0;
+ ]])],
+ [],
+ [AC_MSG_ERROR([Could not find a C99 compatible compiler])])
+ else
+ AC_MSG_ERROR([Could not find a C99 compatible compiler])
+ fi
+ fi
+fi
+AM_PROG_CC_C_O
+AC_PROG_CPP
+AC_PROG_INSTALL
+AC_PROG_LN_S
+
+dnl Check pkg-config is there for autoconf and at ./configure
+m4_ifndef([PKG_PREREQ],
+ [m4_fatal([must install pkg-config 0.29 or later before running autoconf/autogen])])
+PKG_PROG_PKG_CONFIG
+AS_IF([test -z "$PKG_CONFIG"],[
+ AC_MSG_ERROR([Could not find pkg-config])])
+
+AC_PROG_MAKE_SET
+
+AC_DEFUN([PROCPS_PROG_PO4A], [
+ AC_REQUIRE([AM_NLS])
+ AC_CHECK_PROGS([PO4A], [po4a])
+ AS_IF([test "$USE_NLS" = "yes" && test -n "$PO4A"], [
+ USE_PO4A=yes
+ ], [
+ USE_PO4A=no
+ ])
+ AC_SUBST([USE_PO4A])
+])
+PROCPS_PROG_PO4A
+
+# Checks for header files.
+AC_HEADER_MAJOR
+AC_CHECK_HEADERS([arpa/inet.h fcntl.h float.h langinfo.h libintl.h limits.h locale.h stdint.h stdio_ext.h stdlib.h string.h sys/file.h sys/ioctl.h sys/param.h sys/time.h termios.h unistd.h utmp.h utmpx.h values.h wchar.h wctype.h])
+
+# Checks for typedefs, structures, and compiler characteristics.
+AC_CHECK_HEADER_STDBOOL
+AC_TYPE_UID_T
+AC_C_INLINE
+AC_TYPE_INT32_T
+AC_TYPE_PID_T
+AC_C_RESTRICT
+AC_TYPE_SIZE_T
+AC_TYPE_SSIZE_T
+AC_CHECK_MEMBERS([struct stat.st_rdev])
+AC_CHECK_MEMBERS([siginfo_t.si_int], [], [], [[#include <signal.h>]])
+
+dnl Needed for musl
+if test "x$ac_cv_header_utmpx_h" = xyes
+then :
+AC_CHECK_DECLS([__UT_HOSTSIZE],
+ [AC_DEFINE([HAVE_UT_HOSTSIZE_IN_UTMPX], [1],
+ [Define if __UT_HOSTSIZE in utmpx.h])],
+ [],
+ [[#include <utmpx.h>]])
+fi
+
+dnl libtool
+LT_INIT
+
+# Checks for library functions.
+AC_FUNC_ERROR_AT_LINE
+AC_FUNC_FORK
+AC_FUNC_MALLOC
+AC_FUNC_MBRTOWC
+AC_FUNC_MMAP
+AC_FUNC_REALLOC
+AC_FUNC_STRCOLL
+AC_FUNC_STRTOD
+
+usrbin_execdir='${exec_prefix}/bin'
+AC_SUBST([usrbin_execdir])
+
+if test "x$host_os" = xcygwin
+then
+ prefix=/usr
+ sysconfdir='${prefix}/etc'
+ libexecdir='${prefix}/lib'
+ localstatedir='${prefix}/var'
+ datadir='${prefix}/share'
+ mandir='${prefix}/share/man'
+ infodir='${prefix}/share/info'
+ AC_SUBST([prefix])
+ AC_SUBST([sysconfdir])
+ AC_SUBST([libexecdir])
+ AC_SUBST([localstatedir])
+ AC_SUBST([datadir])
+ AC_SUBST([mandir])
+ AC_SUBST([infodir])
+ AC_DEFINE([USE_PROC_CTTY], [1], [Use /proc/$PID/ctty to determine controlling TTY])
+else
+ AC_DEFINE([USE_PROC_CTTY], [0], [Use /proc/$PID/ctty to determine controlling TTY])
+fi
+
+AM_GNU_GETTEXT_VERSION([0.14.1])
+AM_GNU_GETTEXT([external])
+if test -d "$srcdir/po"
+then
+ ALL_LINGUAS=`cd $srcdir/po > /dev/null && echo *.po | sed 's/\.po//g'`
+else
+ ALL_LINGUAS="af am ar as be bg bn_IN bn ca cs cy da de el en_GB es et eu_ES fa fi fr gl gu he hi hr hu hy id is it ja ka kn ko ku lo lt lv mk ml mr ms my nb nl nn no nso or pa pl pt_BR pt ro ru si sk sl sq sr@Latn sr sv ta te th tr uk ur vi zh_CN zh_TW zu"
+fi
+
+AC_CHECK_HEADERS(error.h, [], [], AC_INCLUDES_DEFAULT)
+
+AC_CHECK_HEADERS(stdio_ext.h, [], [], AC_INCLUDES_DEFAULT)
+
+AC_MSG_CHECKING(for __progname)
+AC_LINK_IFELSE([AC_LANG_SOURCE(
+ [
+ #include <stdio.h>
+ #include <stdlib.h>
+ extern char *__progname;
+ int main(void) {
+ const char *cp = __progname;
+ printf("%s\n", cp);
+ exit(0);
+ }
+ ])],
+ AC_DEFINE(HAVE___PROGNAME, 1, [Define if __progname exists])
+ AC_MSG_RESULT(yes),
+ AC_MSG_RESULT(no))
+
+AC_MSG_CHECKING(whether program_invocation_name is defined)
+AC_TRY_COMPILE([#include <errno.h>],
+ [program_invocation_name = "test";],
+ AC_DEFINE(HAVE_PROGRAM_INVOCATION_NAME, 1,
+ [Define if program_invocation_name is defined])
+ AC_MSG_RESULT(yes),
+ AC_MSG_RESULT(no))
+
+AC_MSG_CHECKING(whether program_invocation_short_name is defined)
+AC_TRY_COMPILE([#include <errno.h>],
+ [program_invocation_short_name = "test";],
+ AC_DEFINE(HAVE_PROGRAM_INVOCATION_SHORT_NAME, 1,
+ [Define if program_invocation_short_name is defined])
+ AC_MSG_RESULT(yes),
+ AC_MSG_RESULT(no))
+
+AC_CHECK_FUNC([pidfd_open], [enable_pidwait=yes], [
+ AC_MSG_CHECKING([for __NR_pidfd_open])
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([
+#include <sys/syscall.h>
+#ifndef __NR_pidfd_open
+#error __NR_pidfd_open not defined
+#endif
+ ])], [enable_pidwait=yes], [enable_pidwait=no])
+ AC_MSG_RESULT([$enable_pidwait])
+])
+if test "$enable_pidwait" = yes; then
+ AC_DEFINE([ENABLE_PIDWAIT], [1], [Enable pidwait])
+fi
+AM_CONDITIONAL([BUILD_PIDWAIT], [test x$enable_pidwait = xyes])
+
+dnl watch8bit must be before the AC_ARG_WITH set as it sets up ncurses
+AC_SUBST([WITH_WATCH8BIT])
+AC_ARG_ENABLE([watch8bit],
+ AS_HELP_STRING([--enable-watch8bit], [enable watch to be 8bit clean (requires ncursesw)]),
+ [], [enable_watch8bit=no]
+)
+if test "$enable_watch8bit" = "yes"; then
+ AC_DEFINE([WITH_WATCH8BIT], [1], [Enable 8 bit clean watch])
+fi
+
+AC_SUBST([WITH_COLORWATCH])
+AC_ARG_ENABLE([colorwatch],
+ AS_HELP_STRING([--enable-colorwatch], [enable watch to use color by default]),
+ [], [enable_colorwatch=no]
+)
+if test "$enable_colorwatch" = "yes"; then
+ AC_DEFINE([WITH_COLORWATCH], [1], [Enable color watch by default])
+fi
+
+
+
+AC_ARG_ENABLE([libselinux],
+ AS_HELP_STRING([--enable-libselinux], [enable libselinux]),
+ [], [enable_libselinux=no]
+)
+if test "$enable_libselinux" = "yes"; then
+ AC_DEFINE([ENABLE_LIBSELINUX], [1], [Enable libselinux])
+fi
+
+# Enable hardened compile and link flags
+AC_ARG_ENABLE([harden_flags],
+ [AS_HELP_STRING([--enable-harden-flags], [enable hardened compilier and linker flags])],
+ [enable_harden_flags=$enableval],
+ [enable_harden_flags="no"])
+
+# Check that harden CFLAGS and LDFLAGS will compile
+AS_IF([test "$enable_harden_flags" = "yes"],
+ HARDEN_CFLAGS="-g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security"
+ [HARDEN_LDFLAGS="-fPIE -pie -Wl,-z,relro -Wl,-z,now"]
+ [ AC_MSG_CHECKING([compiler supports harden flags])
+ save_harden_cflags="$CFLAGS"
+ CFLAGS="$CFLAGS $HARDEN_CFLAGS"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM(,,)],
+ [AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no]); HARDEN_CFLAGS='']
+ )
+ CFLAGS="$save_harden_cflags"],
+ [HARDEN_CFLAGS=""
+ HARDEN_LDFLAGS=""])
+AC_SUBST([HARDEN_CFLAGS])
+AC_SUBST([HARDEN_LDFLAGS])
+
+# Optional packages - AC_ARG_WITH
+AC_ARG_WITH([ncurses],
+ AS_HELP_STRING([--without-ncurses], [build only applications not needing ncurses]),
+ [],
+ [with_ncurses=yes]
+)
+if test "x$with_ncurses" = xno; then
+ AM_CONDITIONAL(WITH_NCURSES, false)
+ AS_IF([test "x$enable_watch8bit" = "xyes"],
+ [AC_MSG_ERROR([Cannot have both --enable-watch8bit and --without-ncurses])])
+else
+ AM_CONDITIONAL(WITH_NCURSES, true)
+ PKG_CHECK_MODULES([NCURSES], [ncursesw],
+ [AC_DEFINE([HAVE_NCURSES], [1], [Use NCURSESW])],
+ [
+ AS_IF([test "x$enable_watch8bit" = "xyes"],
+ [AC_MSG_ERROR([Cannot find ncurses wide library ncursesw with --enable-watch8bit])])
+ PKG_CHECK_MODULES([NCURSES], [ncurses],
+ [AC_DEFINE([HAVE_NCURSES], [1], [Use NCURSES])],
+ [AC_MSG_ERROR([ncurses support missing/incomplete (for partial build use --without-ncurses)])]
+ )
+ ]
+ )
+fi
+# PKG_CHECK_MODULES([NCURSES], [ncurses], [], [
+# AC_CHECK_LIB(ncurses, initscr, [have_ncurses=yes], [have_ncurses=no])
+# AC_CHECK_HEADERS(curses.h ncurses.h term.h, [], [have_ncurses=no], AC_INCLUDES_DEFAULT)
+# if test "x$have_ncurses" = xno; then
+# AC_MSG_ERROR([ncurses support missing/incomplete (for partial build use --without-ncurses)])
+# fi
+# NCURSES_LIBS="-lncurses"
+# ])
+# AM_CONDITIONAL(WITH_NCURSES, true)
+# if test "$enable_watch8bit" = yes; then
+# PKG_CHECK_MODULES([NCURSESW], [ncursesw], [WATCH_NCURSES_LIBS="$NCURSESW_LIBS"], [
+# AC_CHECK_LIB([ncursesw], [addwstr], [WATCH_NCURSES_LIBS=-lncursesw], [
+# AC_CHECK_LIB([ncurses], [addwstr], [WATCH_NCURSES_LIBS=-lncurses], [
+# AC_MSG_ERROR([Cannot find ncurses wide library ncursesw with --enable-watch8bit])
+# ])
+# ])
+# ])
+# else
+# WATCH_NCURSES_LIBS="$NCURSES_LIBS"
+# fi
+
+AC_ARG_WITH([systemd],
+ [AS_HELP_STRING([--with-systemd], [enable systemd support])],
+ [], [with_systemd=no]
+)
+AS_IF([test "x$with_systemd" != "xno"], [
+ PKG_CHECK_MODULES([SYSTEMD], [libsystemd],,
+ [PKG_CHECK_MODULES([SYSTEMD], [libsystemd-login])]
+ )
+ AC_DEFINE(WITH_SYSTEMD, 1, [enable systemd support])
+
+ # The functions needed to replace utmp with logind are only available
+ # with systemd v254 or later.
+ old_LIBS="$LIBS"
+ LIBS="$LIBS $SYSTEMD_LIBS"
+ AC_CHECK_FUNCS([sd_session_get_leader])
+ LIBS="$old_LIBS"
+])
+AM_CONDITIONAL([WITH_SYSTEMD], [test x$with_systemd != xno])
+
+AC_ARG_WITH([elogind],
+ [AS_HELP_STRING([--with-elogind], [enable elogind support])],
+ [], [with_elogind=no]
+)
+# Do not allow elogind if systemd is wanted and found
+AS_IF([test "x$with_systemd" != "xno"], [with_elogind=no])
+
+AS_IF([test "x$with_elogind" != "xno"], [
+ PKG_CHECK_MODULES([ELOGIND], [libelogind])
+ AC_DEFINE(WITH_ELOGIND, 1, [enable elogind support])
+])
+AM_CONDITIONAL([WITH_ELOGIND], [test x$with_elogind != xno])
+
+# AC_ARG_ENABLEs
+AC_ARG_ENABLE([pidof],
+ AS_HELP_STRING([--disable-pidof], [do not build pidof]),
+ [], [enable_pidof=yes]
+)
+AM_CONDITIONAL(BUILD_PIDOF, test "x$enable_pidof" = xyes)
+
+AC_ARG_ENABLE([kill],
+ AS_HELP_STRING([--disable-kill], [do not build kill]),
+ [], [enable_kill=yes]
+)
+AM_CONDITIONAL(BUILD_KILL, test "x$enable_kill" = xyes)
+AC_ARG_ENABLE([w],
+ AS_HELP_STRING([--disable-w], [do not build w]),
+ [], [enable_w=yes]
+)
+AM_CONDITIONAL(BUILD_W, test "x$enable_w" = xyes)
+
+AM_CONDITIONAL(LINUX, test "x$host_os" = xlinux-gnu)
+AM_CONDITIONAL(CYGWIN, test "x$host_os" = xcygwin)
+
+AC_ARG_ENABLE([skill],
+ AS_HELP_STRING([--enable-skill], [build skill and snice]),
+ [], [enable_skill=no]
+)
+AM_CONDITIONAL(BUILD_SKILL, test "x$enable_skill" = xyes)
+
+AC_ARG_ENABLE([examples],
+ AS_HELP_STRING([--enable-examples], [add example files to installation]),
+ [], [enable_examples=no]
+)
+AM_CONDITIONAL(EXAMPLE_FILES, test "x$enable_examples" = xyes)
+
+AC_ARG_ENABLE([sigwinch],
+ AS_HELP_STRING([--enable-sigwinch], [reduce impact of x-windows resize operations on top]),
+ [], [enable_sigwinch=no]
+)
+if test "x$enable_sigwinch" = xyes; then
+ AC_DEFINE(SIGNALS_LESS, 1, [reduce impact of x-windows resize operations on top])
+fi
+
+AC_ARG_ENABLE([wide-percent],
+ AS_HELP_STRING([--enable-wide-percent], [provide extra precision under %CPU and %MEM for top]),
+ [], [enable_wide_percent=no]
+)
+if test "x$enable_wide_percent" = xyes; then
+ AC_DEFINE(BOOST_PERCNT, 1, [provide extra precision under %CPU and %MEM for top])
+fi
+
+AC_ARG_ENABLE([wide-memory],
+ AS_HELP_STRING([--enable-wide-memory], [provide extra precision under memory fields for top]),
+ [], [enable_wide_memory=no]
+)
+if test "x$enable_wide_memory" = xyes; then
+ AC_DEFINE(BOOST_MEMORY, 1, [provide extra precision under memory fields for top])
+fi
+
+AC_ARG_ENABLE([modern-top],
+ AS_HELP_STRING([--disable-modern-top], [disable new startup defaults, return to original top]),
+ [], [enable_modern_top=yes]
+)
+if test "x$enable_modern_top" = xno; then
+ AC_DEFINE(ORIG_TOPDEFS, 1, [disable new startup defaults, return to original top])
+fi
+
+DL_LIB=
+AC_ARG_ENABLE([numa],
+ AS_HELP_STRING([--disable-numa], [disable NUMA/Node support in top]),
+ [], [enable_numa=yes]
+)
+if test "x$enable_numa" = xno; then
+ AC_DEFINE([NUMA_DISABLE], [1], [disable NUMA/Node support in top])
+else
+ AC_SEARCH_LIBS([dlopen], [dl], [],
+ [AC_MSG_ERROR([dynamic linking unavailable, circumvent with --disable-numa])])
+ if test "x$ac_cv_search_dlopen" != "xnone required"; then
+ DL_LIB="$ac_cv_search_dlopen"
+ fi
+fi
+AC_SUBST([DL_LIB])
+
+AC_ARG_ENABLE([w-from],
+ AS_HELP_STRING([--enable-w-from], [enable w from field by default]),
+ [], [enable_w_from=no]
+)
+if test "x$enable_w_from" = xyes; then
+ AC_DEFINE(W_SHOWFROM, 1, [enable w from field by default])
+fi
+
+AC_ARG_ENABLE([whining],
+ AS_HELP_STRING([--disable-whining], [do not print unnecessary warnings (slackware-ism)]),
+ [], [enable_whining=yes]
+)
+if test "x$enable_whining" = xyes; then
+ AC_DEFINE(BUILD_WITH_WHINE, 1, [should extra warnings be printed (slackware-ism)])
+fi
+
+if test x"$DEJAGNU" = x
+then
+ DEJAGNU="/dev/null"
+fi
+AC_SUBST(DEJAGNU)
+
+AC_CHECK_FUNCS([__fpending alarm atexit dup2 gethostname getpagesize gettimeofday iswprint memchr memmove memset mkdir nl_langinfo putenv regcomp rpmatch select setlocale sigabbrev_np strcasecmp strchr strcspn strdup strerror strncasecmp strndup strpbrk strrchr strspn strstr strtol strtoul strverscmp utmpname wcwidth])
+
+AC_CONFIG_FILES([Makefile
+ local/Makefile
+ po-man/Makefile
+ po/Makefile.in
+ library/libproc2.pc
+ testsuite/Makefile])
+AC_OUTPUT
diff --git a/depcomp b/depcomp
new file mode 100755
index 0000000..715e343
--- /dev/null
+++ b/depcomp
@@ -0,0 +1,791 @@
+#! /bin/sh
+# depcomp - compile a program generating dependencies as side-effects
+
+scriptversion=2018-03-07.03; # UTC
+
+# Copyright (C) 1999-2021 Free Software Foundation, Inc.
+
+# 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 2, 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
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
+
+case $1 in
+ '')
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
+ exit 1;
+ ;;
+ -h | --h*)
+ cat <<\EOF
+Usage: depcomp [--help] [--version] PROGRAM [ARGS]
+
+Run PROGRAMS ARGS to compile a file, generating dependencies
+as side-effects.
+
+Environment variables:
+ depmode Dependency tracking mode.
+ source Source file read by 'PROGRAMS ARGS'.
+ object Object file output by 'PROGRAMS ARGS'.
+ DEPDIR directory where to store dependencies.
+ depfile Dependency file to output.
+ tmpdepfile Temporary file to use when outputting dependencies.
+ libtool Whether libtool is used (yes/no).
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+ exit $?
+ ;;
+ -v | --v*)
+ echo "depcomp $scriptversion"
+ exit $?
+ ;;
+esac
+
+# Get the directory component of the given path, and save it in the
+# global variables '$dir'. Note that this directory component will
+# be either empty or ending with a '/' character. This is deliberate.
+set_dir_from ()
+{
+ case $1 in
+ */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
+ *) dir=;;
+ esac
+}
+
+# Get the suffix-stripped basename of the given path, and save it the
+# global variable '$base'.
+set_base_from ()
+{
+ base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
+}
+
+# If no dependency file was actually created by the compiler invocation,
+# we still have to create a dummy depfile, to avoid errors with the
+# Makefile "include basename.Plo" scheme.
+make_dummy_depfile ()
+{
+ echo "#dummy" > "$depfile"
+}
+
+# Factor out some common post-processing of the generated depfile.
+# Requires the auxiliary global variable '$tmpdepfile' to be set.
+aix_post_process_depfile ()
+{
+ # If the compiler actually managed to produce a dependency file,
+ # post-process it.
+ if test -f "$tmpdepfile"; then
+ # Each line is of the form 'foo.o: dependency.h'.
+ # Do two passes, one to just change these to
+ # $object: dependency.h
+ # and one to simply output
+ # dependency.h:
+ # which is needed to avoid the deleted-header problem.
+ { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
+ sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
+ } > "$depfile"
+ rm -f "$tmpdepfile"
+ else
+ make_dummy_depfile
+ fi
+}
+
+# A tabulation character.
+tab=' '
+# A newline character.
+nl='
+'
+# Character ranges might be problematic outside the C locale.
+# These definitions help.
+upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
+lower=abcdefghijklmnopqrstuvwxyz
+digits=0123456789
+alpha=${upper}${lower}
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+ echo "depcomp: Variables source, object and depmode must be set" 1>&2
+ exit 1
+fi
+
+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
+depfile=${depfile-`echo "$object" |
+ sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Avoid interferences from the environment.
+gccflag= dashmflag=
+
+# Some modes work just like other modes, but use different flags. We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write. Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+ # HP compiler uses -M and no extra arg.
+ gccflag=-M
+ depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+ # This is just like dashmstdout with a different argument.
+ dashmflag=-xM
+ depmode=dashmstdout
+fi
+
+cygpath_u="cygpath -u -f -"
+if test "$depmode" = msvcmsys; then
+ # This is just like msvisualcpp but w/o cygpath translation.
+ # Just convert the backslash-escaped backslashes to single forward
+ # slashes to satisfy depend.m4
+ cygpath_u='sed s,\\\\,/,g'
+ depmode=msvisualcpp
+fi
+
+if test "$depmode" = msvc7msys; then
+ # This is just like msvc7 but w/o cygpath translation.
+ # Just convert the backslash-escaped backslashes to single forward
+ # slashes to satisfy depend.m4
+ cygpath_u='sed s,\\\\,/,g'
+ depmode=msvc7
+fi
+
+if test "$depmode" = xlc; then
+ # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
+ gccflag=-qmakedep=gcc,-MF
+ depmode=gcc
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want. Yay! Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff. Hmm.
+## Unfortunately, FreeBSD c89 acceptance of flags depends upon
+## the command line argument order; so add the flags where they
+## appear in depend2.am. Note that the slowdown incurred here
+## affects only configure: in makefiles, %FASTDEP% shortcuts this.
+ for arg
+ do
+ case $arg in
+ -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
+ *) set fnord "$@" "$arg" ;;
+ esac
+ shift # fnord
+ shift # $arg
+ done
+ "$@"
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ mv "$tmpdepfile" "$depfile"
+ ;;
+
+gcc)
+## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
+## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
+## (see the conditional assignment to $gccflag above).
+## There are various ways to get dependency output from gcc. Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+## up in a subdir. Having to rename by hand is ugly.
+## (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+## -MM, not -M (despite what the docs say). Also, it might not be
+## supported by the other compilers which use the 'gcc' depmode.
+## - Using -M directly means running the compiler twice (even worse
+## than renaming).
+ if test -z "$gccflag"; then
+ gccflag=-MD,
+ fi
+ "$@" -Wp,"$gccflag$tmpdepfile"
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ # The second -e expression handles DOS-style file names with drive
+ # letters.
+ sed -e 's/^[^:]*: / /' \
+ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the "deleted header file" problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header). We avoid this by adding
+## dummy dependencies for each header file. Too bad gcc doesn't do
+## this for us directly.
+## Some versions of gcc put a space before the ':'. On the theory
+## that the space means something, we add a space to the output as
+## well. hp depmode also adds that space, but also prefixes the VPATH
+## to the object. Take care to not repeat it in the output.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly. Breaking it into two sed invocations is a workaround.
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+hp)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
+sgi)
+ if test "$libtool" = yes; then
+ "$@" "-Wp,-MDupdate,$tmpdepfile"
+ else
+ "$@" -MDupdate "$tmpdepfile"
+ fi
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+
+ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
+ echo "$object : \\" > "$depfile"
+ # Clip off the initial element (the dependent). Don't try to be
+ # clever and replace this with sed code, as IRIX sed won't handle
+ # lines with more than a fixed number of characters (4096 in
+ # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
+ # the IRIX cc adds comments like '#:fec' to the end of the
+ # dependency line.
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
+ | tr "$nl" ' ' >> "$depfile"
+ echo >> "$depfile"
+ # The second pass generates a dummy entry for each header file.
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+ >> "$depfile"
+ else
+ make_dummy_depfile
+ fi
+ rm -f "$tmpdepfile"
+ ;;
+
+xlc)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
+aix)
+ # The C for AIX Compiler uses -M and outputs the dependencies
+ # in a .u file. In older versions, this file always lives in the
+ # current directory. Also, the AIX compiler puts '$object:' at the
+ # start of each line; $object doesn't have directory information.
+ # Version 6 uses the directory in both cases.
+ set_dir_from "$object"
+ set_base_from "$object"
+ if test "$libtool" = yes; then
+ tmpdepfile1=$dir$base.u
+ tmpdepfile2=$base.u
+ tmpdepfile3=$dir.libs/$base.u
+ "$@" -Wc,-M
+ else
+ tmpdepfile1=$dir$base.u
+ tmpdepfile2=$dir$base.u
+ tmpdepfile3=$dir$base.u
+ "$@" -M
+ fi
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ aix_post_process_depfile
+ ;;
+
+tcc)
+ # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
+ # FIXME: That version still under development at the moment of writing.
+ # Make that this statement remains true also for stable, released
+ # versions.
+ # It will wrap lines (doesn't matter whether long or short) with a
+ # trailing '\', as in:
+ #
+ # foo.o : \
+ # foo.c \
+ # foo.h \
+ #
+ # It will put a trailing '\' even on the last line, and will use leading
+ # spaces rather than leading tabs (at least since its commit 0394caf7
+ # "Emit spaces for -MD").
+ "$@" -MD -MF "$tmpdepfile"
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
+ # We have to change lines of the first kind to '$object: \'.
+ sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
+ # And for each line of the second kind, we have to emit a 'dep.h:'
+ # dummy dependency, to avoid the deleted-header problem.
+ sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+## The order of this option in the case statement is important, since the
+## shell code in configure will try each of these formats in the order
+## listed in this file. A plain '-MD' option would be understood by many
+## compilers, so we must ensure this comes after the gcc and icc options.
+pgcc)
+ # Portland's C compiler understands '-MD'.
+ # Will always output deps to 'file.d' where file is the root name of the
+ # source file under compilation, even if file resides in a subdirectory.
+ # The object file name does not affect the name of the '.d' file.
+ # pgcc 10.2 will output
+ # foo.o: sub/foo.c sub/foo.h
+ # and will wrap long lines using '\' :
+ # foo.o: sub/foo.c ... \
+ # sub/foo.h ... \
+ # ...
+ set_dir_from "$object"
+ # Use the source, not the object, to determine the base name, since
+ # that's sadly what pgcc will do too.
+ set_base_from "$source"
+ tmpdepfile=$base.d
+
+ # For projects that build the same source file twice into different object
+ # files, the pgcc approach of using the *source* file root name can cause
+ # problems in parallel builds. Use a locking strategy to avoid stomping on
+ # the same $tmpdepfile.
+ lockdir=$base.d-lock
+ trap "
+ echo '$0: caught signal, cleaning up...' >&2
+ rmdir '$lockdir'
+ exit 1
+ " 1 2 13 15
+ numtries=100
+ i=$numtries
+ while test $i -gt 0; do
+ # mkdir is a portable test-and-set.
+ if mkdir "$lockdir" 2>/dev/null; then
+ # This process acquired the lock.
+ "$@" -MD
+ stat=$?
+ # Release the lock.
+ rmdir "$lockdir"
+ break
+ else
+ # If the lock is being held by a different process, wait
+ # until the winning process is done or we timeout.
+ while test -d "$lockdir" && test $i -gt 0; do
+ sleep 1
+ i=`expr $i - 1`
+ done
+ fi
+ i=`expr $i - 1`
+ done
+ trap - 1 2 13 15
+ if test $i -le 0; then
+ echo "$0: failed to acquire lock after $numtries attempts" >&2
+ echo "$0: check lockdir '$lockdir'" >&2
+ exit 1
+ fi
+
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ # Each line is of the form `foo.o: dependent.h',
+ # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+ # Do two passes, one to just change these to
+ # `$object: dependent.h' and one to simply `dependent.h:'.
+ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process this invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
+ | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+hp2)
+ # The "hp" stanza above does not work with aCC (C++) and HP's ia64
+ # compilers, which have integrated preprocessors. The correct option
+ # to use with these is +Maked; it writes dependencies to a file named
+ # 'foo.d', which lands next to the object file, wherever that
+ # happens to be.
+ # Much of this is similar to the tru64 case; see comments there.
+ set_dir_from "$object"
+ set_base_from "$object"
+ if test "$libtool" = yes; then
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir.libs/$base.d
+ "$@" -Wc,+Maked
+ else
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir$base.d
+ "$@" +Maked
+ fi
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile1" "$tmpdepfile2"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ if test -f "$tmpdepfile"; then
+ sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
+ # Add 'dependent.h:' lines.
+ sed -ne '2,${
+ s/^ *//
+ s/ \\*$//
+ s/$/:/
+ p
+ }' "$tmpdepfile" >> "$depfile"
+ else
+ make_dummy_depfile
+ fi
+ rm -f "$tmpdepfile" "$tmpdepfile2"
+ ;;
+
+tru64)
+ # The Tru64 compiler uses -MD to generate dependencies as a side
+ # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
+ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+ # dependencies in 'foo.d' instead, so we check for that too.
+ # Subdirectories are respected.
+ set_dir_from "$object"
+ set_base_from "$object"
+
+ if test "$libtool" = yes; then
+ # Libtool generates 2 separate objects for the 2 libraries. These
+ # two compilations output dependencies in $dir.libs/$base.o.d and
+ # in $dir$base.o.d. We have to check for both files, because
+ # one of the two compilations can be disabled. We should prefer
+ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
+ # automatically cleaned when .libs/ is deleted, while ignoring
+ # the former would cause a distcleancheck panic.
+ tmpdepfile1=$dir$base.o.d # libtool 1.5
+ tmpdepfile2=$dir.libs/$base.o.d # Likewise.
+ tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
+ "$@" -Wc,-MD
+ else
+ tmpdepfile1=$dir$base.d
+ tmpdepfile2=$dir$base.d
+ tmpdepfile3=$dir$base.d
+ "$@" -MD
+ fi
+
+ stat=$?
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ exit $stat
+ fi
+
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+ do
+ test -f "$tmpdepfile" && break
+ done
+ # Same post-processing that is required for AIX mode.
+ aix_post_process_depfile
+ ;;
+
+msvc7)
+ if test "$libtool" = yes; then
+ showIncludes=-Wc,-showIncludes
+ else
+ showIncludes=-showIncludes
+ fi
+ "$@" $showIncludes > "$tmpdepfile"
+ stat=$?
+ grep -v '^Note: including file: ' "$tmpdepfile"
+ if test $stat -ne 0; then
+ rm -f "$tmpdepfile"
+ exit $stat
+ fi
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ # The first sed program below extracts the file names and escapes
+ # backslashes for cygpath. The second sed program outputs the file
+ # name when reading, but also accumulates all include files in the
+ # hold buffer in order to output them again at the end. This only
+ # works with sed implementations that can handle large buffers.
+ sed < "$tmpdepfile" -n '
+/^Note: including file: *\(.*\)/ {
+ s//\1/
+ s/\\/\\\\/g
+ p
+}' | $cygpath_u | sort -u | sed -n '
+s/ /\\ /g
+s/\(.*\)/'"$tab"'\1 \\/p
+s/.\(.*\) \\/\1:/
+H
+$ {
+ s/.*/'"$tab"'/
+ G
+ p
+}' >> "$depfile"
+ echo >> "$depfile" # make sure the fragment doesn't end with a backslash
+ rm -f "$tmpdepfile"
+ ;;
+
+msvc7msys)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
+#nosideeffect)
+ # This comment above is used by automake to tell side-effect
+ # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout, regardless of -o.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ # Remove '-o $object'.
+ IFS=" "
+ for arg
+ do
+ case $arg in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # $arg
+ ;;
+ esac
+ done
+
+ test -z "$dashmflag" && dashmflag=-M
+ # Require at least two characters before searching for ':'
+ # in the target name. This is to cope with DOS-style filenames:
+ # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
+ "$@" $dashmflag |
+ sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
+ rm -f "$depfile"
+ cat < "$tmpdepfile" > "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process this sed invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ tr ' ' "$nl" < "$tmpdepfile" \
+ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+dashXmstdout)
+ # This case only exists to satisfy depend.m4. It is never actually
+ # run, as this mode is specially recognized in the preamble.
+ exit 1
+ ;;
+
+makedepend)
+ "$@" || exit $?
+ # Remove any Libtool call
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+ # X makedepend
+ shift
+ cleared=no eat=no
+ for arg
+ do
+ case $cleared in
+ no)
+ set ""; shift
+ cleared=yes ;;
+ esac
+ if test $eat = yes; then
+ eat=no
+ continue
+ fi
+ case "$arg" in
+ -D*|-I*)
+ set fnord "$@" "$arg"; shift ;;
+ # Strip any option that makedepend may not understand. Remove
+ # the object too, otherwise makedepend will parse it as a source file.
+ -arch)
+ eat=yes ;;
+ -*|$object)
+ ;;
+ *)
+ set fnord "$@" "$arg"; shift ;;
+ esac
+ done
+ obj_suffix=`echo "$object" | sed 's/^.*\././'`
+ touch "$tmpdepfile"
+ ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
+ rm -f "$depfile"
+ # makedepend may prepend the VPATH from the source file name to the object.
+ # No need to regex-escape $object, excess matching of '.' is harmless.
+ sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
+ # Some versions of the HPUX 10.20 sed can't process the last invocation
+ # correctly. Breaking it into two sed invocations is a workaround.
+ sed '1,2d' "$tmpdepfile" \
+ | tr ' ' "$nl" \
+ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
+ | sed -e 's/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile" "$tmpdepfile".bak
+ ;;
+
+cpp)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ # Remove '-o $object'.
+ IFS=" "
+ for arg
+ do
+ case $arg in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift # fnord
+ shift # $arg
+ ;;
+ esac
+ done
+
+ "$@" -E \
+ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
+ | sed '$ s: \\$::' > "$tmpdepfile"
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ cat < "$tmpdepfile" >> "$depfile"
+ sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+msvisualcpp)
+ # Important note: in order to support this mode, a compiler *must*
+ # always write the preprocessed file to stdout.
+ "$@" || exit $?
+
+ # Remove the call to Libtool.
+ if test "$libtool" = yes; then
+ while test "X$1" != 'X--mode=compile'; do
+ shift
+ done
+ shift
+ fi
+
+ IFS=" "
+ for arg
+ do
+ case "$arg" in
+ -o)
+ shift
+ ;;
+ $object)
+ shift
+ ;;
+ "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+ set fnord "$@"
+ shift
+ shift
+ ;;
+ *)
+ set fnord "$@" "$arg"
+ shift
+ shift
+ ;;
+ esac
+ done
+ "$@" -E 2>/dev/null |
+ sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
+ rm -f "$depfile"
+ echo "$object : \\" > "$depfile"
+ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
+ echo "$tab" >> "$depfile"
+ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+ rm -f "$tmpdepfile"
+ ;;
+
+msvcmsys)
+ # This case exists only to let depend.m4 do its work. It works by
+ # looking at the text of this script. This case will never be run,
+ # since it is checked for above.
+ exit 1
+ ;;
+
+none)
+ exec "$@"
+ ;;
+
+*)
+ echo "Unknown depmode $depmode" 1>&2
+ exit 1
+ ;;
+esac
+
+exit 0
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC0"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/doc/CodingStyle.md b/doc/CodingStyle.md
new file mode 100644
index 0000000..3184e32
--- /dev/null
+++ b/doc/CodingStyle.md
@@ -0,0 +1,27 @@
+Most developers find Linux coding style easy to read, and there is
+really no reason to reinvent this practise, so procps-ng goes along
+with others.
+
+http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=blob_plain;f=Documentation/CodingStyle
+
+In addition to Linux coding style this project has few additional
+wishes to contributors.
+
+* Many small patches are favoured over one big. Break down is done on
+ basis of logical functionality; for example #endif mark ups,
+ compiler warning and exit codes fixes all should be individual
+ small patches.
+
+* Use 'FIXME: ' in code comments, manual pages, autotools files,
+ scripts and so on to indicate something is wrong. The reason we do
+ is as simple as being able to find easily where problem areas are.
+
+* In writing arithmetic comparisons, use "<" and "<=" rather than
+ ">" and ">=". For some justification, read this:
+ http://thread.gmane.org/gmane.comp.version-control.git/3903/focus=4126
+
+* Be nice to translators. Don't change translatable strings if you
+ can avoid it. If you must rearrange individual lines (e.g., in
+ multi-line --help strings), extract and create new strings, rather
+ than extracting and moving into existing blocks. This avoids
+ making unnecessary work for translators.
diff --git a/doc/FAQ b/doc/FAQ
new file mode 100644
index 0000000..b2e5a24
--- /dev/null
+++ b/doc/FAQ
@@ -0,0 +1,97 @@
+Why does "ps -aux" complain about a bogus '-'?
+
+ According to the POSIX and UNIX standards, the above command asks to
+ display all processes with a TTY (generally the commands users are
+ running) plus all processes owned by a user named "x". If that user
+ doesn't exist, then ps will assume you really meant "ps aux". The
+ warning is given to gently break you of a habit that will cause you
+ trouble if a user named "x" were created.
+
+Why don't I see SMP (per-CPU) stats in top?
+
+ You didn't enable it. Press '?' for built-in help or read the man
+ page. Per-CPU stats are disabled by default because they take up too
+ much space. Some Linux systems have hundreds of CPUs.
+
+Why do long usernames get printed as numbers?
+
+ The UNIX and POSIX standards require that user names and group names
+ be printed as decimal integers when there is not enough room in the
+ column. Truncating the names, besides being a violation of the
+ standard, would lead to confusion between names like MichelleRichards
+ and MichelleRichardson. The UNIX and POSIX way to change column
+ width is to rename the column:
+
+ ps -o pid,user=CumbersomeUserNames -o comm
+
+ The easy way is to directly specify the desired width:
+
+ ps -o pid,user:19,comm
+
+Why is %CPU underreported for multi-threaded (Java, etc.) apps?
+
+ You need to upgrade to the 2.6.10 kernel at least. Older kernels do
+ not provide a reasonable way to get this information.
+
+Why do ps and top show threads individually?
+
+ The 2.4.xx kernel does not provide proper support for grouping
+ threads by process. Hacks exist to group them anyway, but such hacks
+ will falsely group similar tasks and will fail to group tasks due to
+ race conditions. The hacks are also slow. As none of this is
+ acceptable in a critical system tool, task grouping is not currently
+ available for the 2.4.xx kernel. The 2.6.xx kernel allows for proper
+ thread grouping and reporting. To take advantage of this, your
+ programs must use a threading library that features the CLONE_THREAD
+ flag. The NPTL pthreads provided by recent glibc releases use
+ CLONE_THREAD.
+
+What systems are supported?
+
+ Linux 2.4.xx 2.6.xx and 3.xx are commonly tested and expected to work
+ well. SMP is well supported. Multi-node cluster views require a
+ multi-node /proc filesystem; without that you will see a single-node
+ view.
+
+Where to I send bug reports?
+
+ You may use the Debian bug tracking system or send your report to
+ procps@freelists.org (no subscription required) instead.
+
+Why are there so many procps projects?
+
+ The original maintainer seems to have had little time for procps.
+ Whatever his reasons, the project didn't get maintained. Starting in
+ 1997, Albert Cahalan wrote a new ps program for the package. For the
+ next few years, Albert quietly helped the Debian package maintainer
+ fix bugs. In 2001, Rik van Riel decided to do something about what
+ appeared to be the lack of a maintainer. He picked up the buggy old
+ code in Red Hat's CVS and started adding patches. Meanwhile, other
+ people have patched procps in a great many ways.
+
+ In 2002, Albert moved procps to http://procps.sourceforge.net. This
+ was done to ensure that years of testing and bug fixes would not be
+ lost. The major version number was changed to 3, partly to avoid
+ confusing users and partly because the top program had been redone.
+
+ After development essentially stopped on sourceforge.net, in 2011 the
+ project found a new home at http://gitorious.org/procps. This
+ represents the Debian, Fedora and openSUSE fork of procps. To avoid
+ confusion and potential name clashes the package is now known as
+ procps-ng (next generation), the version number was raised to 3.3.0
+ and the library so-name changed to libprocps.so
+
+What is being done to procps-ng at its new home?
+
+ All programs are in the process of being modernized, both in terms of
+ coding style and supporting documentation. Autotools have been
+ integrated and the library API has been expanded with many new fields
+ supported such as control groups, supplementary groups, etc. The top
+ program has been rewritten offering many new capabilities while
+ providing performance improvements up to 300%.
+
+Why does ps get signal 17?
+
+ No ps release has ever had this problem. Most likely your system has
+ been broken into. You might want to install a more recent version of
+ the OS. If you'd rather take your chances, simply upgrade procps.
diff --git a/doc/TODO b/doc/TODO
new file mode 100644
index 0000000..2611b28
--- /dev/null
+++ b/doc/TODO
@@ -0,0 +1,145 @@
+-------------------------- general ------------------------
+
+Consider using glibc obstacks for memory allocation.
+
+Implement /usr/proc/bin tools like Solaris has.
+The prstat command is interesting, like top in batch mode.
+SCO has a pstat command.
+
+Don't these really belong in the procps-ng package?
+ killall pstree fuser lsof who
+(they are maintained elsewhere, which causes version problems)
+
+OpenBSD has a pfind command.
+
+Cache results of dev_to_tty.
+
+---------------------- kernel -------------------------
+
+Add an "adopted child" flag to mark processes that are not
+natural children of init. This can make --forest work better.
+
+Supply better data for top's CPU state display. Currently top has
+to subtract old numbers from new numbers and divide that result by
+the number of processors. The kernel won't even supply the number
+of processors in a portable way.
+
+Supply data for the ADDR and JOBC fields.
+
+Support & supply data for SL and RE.
+
+Add a /proc/*/tty symlink to eliminate guessing when /proc/*/fd is
+not accessible.
+
+Add /proc/*/.bindata files to avoid string parsing. It should be an array
+of 64-bit values on all machines. New entries go on the end and obsolete
+ones get filled in with something logical -- entries must never be deleted!
+
+Add all the stuff Solaris has. This would also replace ptrace.
+
+---------------------- watch --------------------------
+
+Tolerate VT100 line-drawing characters. Maybe translate them.
+
+---------------------- w --------------------------
+
+The LOGIN@ column sometimes has a space in it. This makes correct
+scripting difficult.
+
+Time formats are demented.
+
+---------------------- vmstat --------------------------
+
+Extract /proc/diskstats parsing from vmstat into libproc somewhere.
+
+--------------------- libproc ----------------------
+
+Stop storing fields with duplicate info (often different
+units: kB and pages, seconds and jiffies) in the proc_t struct.
+
+Use own readdir code (assembly language) because glibc sucks ass.
+
+---------------------- top -------------------------
+
+Share more stuff with ps.
+
+don't truncate long usernames
+
+have a --config option
+
+---------------- ps for now, maybe move to libproc ------------------
+
+With forest output and a tty named /dev/this_is_my_tty, the position
+of the command name gets messed up. (we print too many spaces) (fixed?)
+
+Fix missing stuff for these formats: FB_j FB_l FB_v HP_f HP_l HP_fl JFMT OL_m
+(jobc,cpu,sl,re,cpu,prmgrp,m_swap,m_share,vm_lib,m_dt)
+Note that "cpu" has two meanings.
+
+Add Beowulf support. This is ugly, since the current patches use a
+daemon to collect info and add a HOST field after the PID field.
+
+Query optimizer, put cheap/required process selection first.
+
+Avoid reading both /proc/*/status and /proc/*/stat.
+
+Support printing the client hostname (the FROM that w(1) uses) in place
+of a pty.
+
+Disambiguate narrow tty info. (/dev/tty7 == /dev/pts/7 now)
+1------8 1--4
+ttyS2 S2
+ttyI31 I31
+pts/7 7 Short form could be /999.
+pts/9999 9999 Short form could just be trunctuated to /999.
+tty7 7 Short form could be vc-7.
+tty63 63 Short form could be vc63.
+
+Internationalization, as specified by XPG3, Volume 1, Commands and Utilities.
+(and suggested by Unix98) LC_TIME affects date format.
+
+----------------------- ps -----------------------
+
+Add an option to select all processes that a user can kill.
+(related to RUID, EUID, tty, etc. -- but maybe ignore root power)
+
+Add a nice display option for killing things.
+ruser,euser,ppid,pid,pmem,stime,args
+
+For RT stuff:
+pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
+
+For job control:
+stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
+
+Make the column alignment algorithm support this:
+ FOO BAR
+ 8 44444
+ 453 45
+ 45 2989
+ 63666 0
+ 34 333
+(useful for the UNIX tty and time values, since the time might look
+like 100-10:40:32 for old processes and the tty might have extra room)
+
+Improve long sort/format specifiers documentation and fill in the missing
+code as much as the kernel can support. Make sure that memory amounts are in
+pages when they should be and in kB when they should be, not backwards.
+
+output encoding: UTF8 --nul --null
+
+Make BSD formats use non-standard BSD time format, at least when it
+doesn't violate the "no whitespace" rule.
+
+Better unmangling of '?' as a tty. The shell destroys '?' when there
+is a filename that matches. If the argument seems like garbage,
+check for a file that might have screwed up the '?'.
+
+If the 'O' option is given something already implied by 'O',
+assume the user wanted a sorting option.
+
+Conflict:
+Digital THREAD is user,pcpu,pri,scnt,wchan,usertime,systime
+AIX THREAD is uname,pid,ppid,tid,S,C,PRI,scount,WCHAN,F,tty,bnd,comm
+AIX looks like this:
+ USER PID PPID TID S C PRI SC WCHAN FLAG TTY BND CMD
diff --git a/doc/bugs.md b/doc/bugs.md
new file mode 100644
index 0000000..71c48b5
--- /dev/null
+++ b/doc/bugs.md
@@ -0,0 +1,92 @@
+BUG REPORTS
+===========
+
+The following is information for reporting bugs. Please read
+the file as well as the documentation for the relevant program
+before posting. This document is more useful for advanced users
+and the people that package for the distributions.
+
+Also if you are an end-user of the programs and not the packager
+and are using a distribution, check their bug tracker first,
+you may find its a known bug already.
+
+
+Where to send
+-------------
+You can raise issues on the GitLab issues tracker which is
+located at https://gitlab.com/procps-ng/procps/issues You
+will need a GitLab login to do so.
+
+Alternatively send comments, bug reports, patches, etc.
+to the email list procps@freelists.org
+
+What to send
+------------
+It is much more useful to us if a program really crashes to recompile it
+with make `CFLAGS=-ggdb -O`, run it with `gdb prog` and `run` and send
+me a stack trace (`bt` command). That said, any bug report is still
+better than none.
+
+strace and ltrace output are very helpful:
+
+> strace -o output-file ps --blah
+> bzip2 output-file
+
+The output of `ps --info` is often quite useful, even if the problem
+is not with ps itself. A lot of the utilities use the same library.
+
+Merge Requests
+--------------
+Merge requests are fine to use and give a central place for
+everyone involved to have a look. Merge requests are found
+on GitLab at https://gitlab.com/procps-ng/procps/merge_requests
+It is best to follow up your merge request with an email to
+the list saying what you have done.
+
+Patches
+-------
+While merge requests are preferred, patches are also welcome.
+Get latest version of the source from upstream git.
+
+> git clone git@gitlab.com:procps-ng/procps.git
+
+and use `git format-patch` format. It is fine to attach patches as
+compressed tar balls. When you are about to send very large number
+of patches consider setting up your personal clone, and send a pull
+request.
+
+> git request-pull commit-id \
+> git://gitorious.org/~yourlogin/procps/your-clone.git
+
+
+Kernel-Dependent Patches
+------------------------
+If you send patches which are specific to *running* with a particular
+kernel version of /proc, please condition them with the runtime determined
+variable `linux_version_code` from libproc/version.c. It is the same
+number as the macro `LINUX_VERSION_CODE` for which the kernel /proc fs
+code was compiled.
+
+A macro is provide in libproc/misc.h to construct the code from its
+components, e.g.
+> if (linux_version_code < LINUX_VERSION(2,5,41))
+> /* blah blah blah */
+A startup call to `set_linux_version` may also be necessary.
+
+Of course, if a bug is due to a change in kernel file formats, it would
+be best to first try to generalize the parsing, since the code is then
+more resilient against future change.
+
+Code Structure
+--------------
+A goal is to encapsulate *all* parsing dependent on /proc
+file formats into the libproc library. If the API is general enough
+it can hopefully stabilize and then /proc changes might only require
+updating libproc.so. Beyond that having the set of utilities be simple
+command lines parsers and output formatters and encapsulating all kernel
+divergence in libproc is the way to go.
+
+Hence if you are submitting a new program or are fixing an old one, keep
+in mind that adding files to libproc which encapsulate such things is
+more desirable than patching the actual driver program. (well, except
+to move it toward the API of the library).
diff --git a/doc/libproc.supp b/doc/libproc.supp
new file mode 100644
index 0000000..d7f92d3
--- /dev/null
+++ b/doc/libproc.supp
@@ -0,0 +1,78 @@
+#
+# This is a warning-suppression file for valgrind supplied by libproc
+# to be used with the option: --suppressions=<path-for>/libproc.supp.
+#
+# Memory leak warnings will only be encountered when a multi-threaded
+# program has called the 'procps_pids' interface. That's because this
+# library employs heap based memory in a thread safe manner. However,
+# such memory will not be freed until the address space is reclaimed.
+#
+# When a sibling thread using this 'procps_pids' API ends, or if some
+# other thread in that address space calls 'pthread_cancel()' on such
+# a thread, valgrind will warn that some memory is 'definitely lost'.
+#
+# The majority of warnings depend on the 'pids_item' enumerators that
+# have been specified using 'procps_pids_new' or 'procps_pids_reset'.
+#
+# Single-threaded applications will not experience any such warnings.
+#
+
+## always present 'definitely lost' warnings
+# 2 blocks of 128k each
+{
+ HEAP_BASED_TLS_startup
+ Memcheck:Leak
+ ...
+ fun:openproc
+}
+
+## for most of the 'definitely lost' warnings
+# up to 4 blocks ranging from 1024 to 2048 bytes each
+{
+ HEAP_BASED_TLS_input
+ Memcheck:Leak
+ ...
+ fun:file2str
+}
+
+## additional potential 'definitely lost' warnings
+# 48 bytes for each user
+{
+ HEAP_BASED_TLS_users
+ Memcheck:Leak
+ ...
+ fun:pwcache_get_user
+}
+# 48 bytes for each group
+{
+ HEAP_BASED_TLS_groups
+ Memcheck:Leak
+ ...
+ fun:pwcache_get_group
+}
+# 40 bytes for each tty
+{
+ HEAP_BASED_TLS_terminals
+ Memcheck:Leak
+ ...
+ fun:dev_to_tty
+}
+
+## remaining potential 'definitely lost' warnings
+# 16 bytes + sizeof name for each lxc container
+{
+ HEAP_BASED_TLS_lxc
+ Memcheck:Leak
+ ...
+ fun:lxc_containers
+}
+
+## in case an installed library has been stripped,
+## this will embrace all of the above warning categories
+{
+ HEAP_BASED_TLS_library
+ Memcheck:Leak
+ ...
+ obj:/usr/*lib*/libproc*
+ obj:/usr/local/*lib*/libproc*
+}
diff --git a/install-sh b/install-sh
new file mode 100755
index 0000000..ec298b5
--- /dev/null
+++ b/install-sh
@@ -0,0 +1,541 @@
+#!/bin/sh
+# install - install a program, script, or datafile
+
+scriptversion=2020-11-14.01; # UTC
+
+# This originates from X11R5 (mit/util/scripts/install.sh), which was
+# later released in X11R6 (xc/config/util/install.sh) with the
+# following copyright and license.
+#
+# Copyright (C) 1994 X Consortium
+#
+# Permission is hereby granted, free of charge, to any person obtaining a copy
+# of this software and associated documentation files (the "Software"), to
+# deal in the Software without restriction, including without limitation the
+# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
+# sell copies of the Software, and to permit persons to whom the Software is
+# furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be included in
+# all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
+# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name of the X Consortium shall not
+# be used in advertising or otherwise to promote the sale, use or other deal-
+# ings in this Software without prior written authorization from the X Consor-
+# tium.
+#
+#
+# FSF changes to this file are in the public domain.
+#
+# Calling this script install-sh is preferred over install.sh, to prevent
+# 'make' implicit rules from creating a file called install from it
+# when there is no Makefile.
+#
+# This script is compatible with the BSD install script, but was written
+# from scratch.
+
+tab=' '
+nl='
+'
+IFS=" $tab$nl"
+
+# Set DOITPROG to "echo" to test this script.
+
+doit=${DOITPROG-}
+doit_exec=${doit:-exec}
+
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
+
+# Create dirs (including intermediate dirs) using mode 755.
+# This is like GNU 'install' as of coreutils 8.32 (2020).
+mkdir_umask=22
+
+backupsuffix=
+chgrpcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
+rmcmd="$rmprog -f"
+stripcmd=
+
+src=
+dst=
+dir_arg=
+dst_arg=
+
+copy_on_change=false
+is_target_a_directory=possibly
+
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+ or: $0 [OPTION]... SRCFILES... DIRECTORY
+ or: $0 [OPTION]... -t DIRECTORY SRCFILES...
+ or: $0 [OPTION]... -d DIRECTORIES...
+
+In the 1st form, copy SRCFILE to DSTFILE.
+In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
+In the 4th, create DIRECTORIES.
+
+Options:
+ --help display this help and exit.
+ --version display version info and exit.
+
+ -c (ignored)
+ -C install only if different (preserve data modification time)
+ -d create directories instead of installing files.
+ -g GROUP $chgrpprog installed files to GROUP.
+ -m MODE $chmodprog installed files to MODE.
+ -o USER $chownprog installed files to USER.
+ -p pass -p to $cpprog.
+ -s $stripprog installed files.
+ -S SUFFIX attempt to back up existing files, with suffix SUFFIX.
+ -t DIRECTORY install into DIRECTORY.
+ -T report an error if DSTFILE is a directory.
+
+Environment variables override the default commands:
+ CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+ RMPROG STRIPPROG
+
+By default, rm is invoked with -f; when overridden with RMPROG,
+it's up to you to specify -f if you want it.
+
+If -S is not specified, no backups are attempted.
+
+Email bug reports to bug-automake@gnu.org.
+Automake home page: https://www.gnu.org/software/automake/
+"
+
+while test $# -ne 0; do
+ case $1 in
+ -c) ;;
+
+ -C) copy_on_change=true;;
+
+ -d) dir_arg=true;;
+
+ -g) chgrpcmd="$chgrpprog $2"
+ shift;;
+
+ --help) echo "$usage"; exit $?;;
+
+ -m) mode=$2
+ case $mode in
+ *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*)
+ echo "$0: invalid mode: $mode" >&2
+ exit 1;;
+ esac
+ shift;;
+
+ -o) chowncmd="$chownprog $2"
+ shift;;
+
+ -p) cpprog="$cpprog -p";;
+
+ -s) stripcmd=$stripprog;;
+
+ -S) backupsuffix="$2"
+ shift;;
+
+ -t)
+ is_target_a_directory=always
+ dst_arg=$2
+ # Protect names problematic for 'test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
+ shift;;
+
+ -T) is_target_a_directory=never;;
+
+ --version) echo "$0 $scriptversion"; exit $?;;
+
+ --) shift
+ break;;
+
+ -*) echo "$0: invalid option: $1" >&2
+ exit 1;;
+
+ *) break;;
+ esac
+ shift
+done
+
+# We allow the use of options -d and -T together, by making -d
+# take the precedence; this is for compatibility with GNU install.
+
+if test -n "$dir_arg"; then
+ if test -n "$dst_arg"; then
+ echo "$0: target directory not allowed when installing a directory." >&2
+ exit 1
+ fi
+fi
+
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+ # When -d is used, all remaining arguments are directories to create.
+ # When -t is used, the destination is already specified.
+ # Otherwise, the last argument is the destination. Remove it from $@.
+ for arg
+ do
+ if test -n "$dst_arg"; then
+ # $@ is not empty: it contains at least $arg.
+ set fnord "$@" "$dst_arg"
+ shift # fnord
+ fi
+ shift # arg
+ dst_arg=$arg
+ # Protect names problematic for 'test' and other utilities.
+ case $dst_arg in
+ -* | [=\(\)!]) dst_arg=./$dst_arg;;
+ esac
+ done
+fi
+
+if test $# -eq 0; then
+ if test -z "$dir_arg"; then
+ echo "$0: no input file specified." >&2
+ exit 1
+ fi
+ # It's OK to call 'install-sh -d' without argument.
+ # This can happen when creating conditional directories.
+ exit 0
+fi
+
+if test -z "$dir_arg"; then
+ if test $# -gt 1 || test "$is_target_a_directory" = always; then
+ if test ! -d "$dst_arg"; then
+ echo "$0: $dst_arg: Is not a directory." >&2
+ exit 1
+ fi
+ fi
+fi
+
+if test -z "$dir_arg"; then
+ do_exit='(exit $ret); exit $ret'
+ trap "ret=129; $do_exit" 1
+ trap "ret=130; $do_exit" 2
+ trap "ret=141; $do_exit" 13
+ trap "ret=143; $do_exit" 15
+
+ # Set umask so as not to create temps with too-generous modes.
+ # However, 'strip' requires both read and write access to temps.
+ case $mode in
+ # Optimize common cases.
+ *644) cp_umask=133;;
+ *755) cp_umask=22;;
+
+ *[0-7])
+ if test -z "$stripcmd"; then
+ u_plus_rw=
+ else
+ u_plus_rw='% 200'
+ fi
+ cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+ *)
+ if test -z "$stripcmd"; then
+ u_plus_rw=
+ else
+ u_plus_rw=,u+rw
+ fi
+ cp_umask=$mode$u_plus_rw;;
+ esac
+fi
+
+for src
+do
+ # Protect names problematic for 'test' and other utilities.
+ case $src in
+ -* | [=\(\)!]) src=./$src;;
+ esac
+
+ if test -n "$dir_arg"; then
+ dst=$src
+ dstdir=$dst
+ test -d "$dstdir"
+ dstdir_status=$?
+ # Don't chown directories that already exist.
+ if test $dstdir_status = 0; then
+ chowncmd=""
+ fi
+ else
+
+ # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
+ # might cause directories to be created, which would be especially bad
+ # if $src (and thus $dsttmp) contains '*'.
+ if test ! -f "$src" && test ! -d "$src"; then
+ echo "$0: $src does not exist." >&2
+ exit 1
+ fi
+
+ if test -z "$dst_arg"; then
+ echo "$0: no destination specified." >&2
+ exit 1
+ fi
+ dst=$dst_arg
+
+ # If destination is a directory, append the input filename.
+ if test -d "$dst"; then
+ if test "$is_target_a_directory" = never; then
+ echo "$0: $dst_arg: Is a directory" >&2
+ exit 1
+ fi
+ dstdir=$dst
+ dstbase=`basename "$src"`
+ case $dst in
+ */) dst=$dst$dstbase;;
+ *) dst=$dst/$dstbase;;
+ esac
+ dstdir_status=0
+ else
+ dstdir=`dirname "$dst"`
+ test -d "$dstdir"
+ dstdir_status=$?
+ fi
+ fi
+
+ case $dstdir in
+ */) dstdirslash=$dstdir;;
+ *) dstdirslash=$dstdir/;;
+ esac
+
+ obsolete_mkdir_used=false
+
+ if test $dstdir_status != 0; then
+ case $posix_mkdir in
+ '')
+ # With -d, create the new directory with the user-specified mode.
+ # Otherwise, rely on $mkdir_umask.
+ if test -n "$dir_arg"; then
+ mkdir_mode=-m$mode
+ else
+ mkdir_mode=
+ fi
+
+ posix_mkdir=false
+ # The $RANDOM variable is not portable (e.g., dash). Use it
+ # here however when possible just to lower collision chance.
+ tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+
+ trap '
+ ret=$?
+ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null
+ exit $ret
+ ' 0
+
+ # Because "mkdir -p" follows existing symlinks and we likely work
+ # directly in world-writeable /tmp, make sure that the '$tmpdir'
+ # directory is successfully created first before we actually test
+ # 'mkdir -p'.
+ if (umask $mkdir_umask &&
+ $mkdirprog $mkdir_mode "$tmpdir" &&
+ exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
+ then
+ if test -z "$dir_arg" || {
+ # Check for POSIX incompatibilities with -m.
+ # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+ # other-writable bit of parent directory when it shouldn't.
+ # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+ test_tmpdir="$tmpdir/a"
+ ls_ld_tmpdir=`ls -ld "$test_tmpdir"`
+ case $ls_ld_tmpdir in
+ d????-?r-*) different_mode=700;;
+ d????-?--*) different_mode=755;;
+ *) false;;
+ esac &&
+ $mkdirprog -m$different_mode -p -- "$test_tmpdir" && {
+ ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"`
+ test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+ }
+ }
+ then posix_mkdir=:
+ fi
+ rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir"
+ else
+ # Remove any dirs left behind by ancient mkdir implementations.
+ rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null
+ fi
+ trap '' 0;;
+ esac
+
+ if
+ $posix_mkdir && (
+ umask $mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+ )
+ then :
+ else
+
+ # mkdir does not conform to POSIX,
+ # or it failed possibly due to a race condition. Create the
+ # directory the slow way, step by step, checking for races as we go.
+
+ case $dstdir in
+ /*) prefix='/';;
+ [-=\(\)!]*) prefix='./';;
+ *) prefix='';;
+ esac
+
+ oIFS=$IFS
+ IFS=/
+ set -f
+ set fnord $dstdir
+ shift
+ set +f
+ IFS=$oIFS
+
+ prefixes=
+
+ for d
+ do
+ test X"$d" = X && continue
+
+ prefix=$prefix$d
+ if test -d "$prefix"; then
+ prefixes=
+ else
+ if $posix_mkdir; then
+ (umask $mkdir_umask &&
+ $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+ # Don't fail if two instances are running concurrently.
+ test -d "$prefix" || exit 1
+ else
+ case $prefix in
+ *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+ *) qprefix=$prefix;;
+ esac
+ prefixes="$prefixes '$qprefix'"
+ fi
+ fi
+ prefix=$prefix/
+ done
+
+ if test -n "$prefixes"; then
+ # Don't fail if two instances are running concurrently.
+ (umask $mkdir_umask &&
+ eval "\$doit_exec \$mkdirprog $prefixes") ||
+ test -d "$dstdir" || exit 1
+ obsolete_mkdir_used=true
+ fi
+ fi
+ fi
+
+ if test -n "$dir_arg"; then
+ { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+ { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+ test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
+ else
+
+ # Make a couple of temp file names in the proper directory.
+ dsttmp=${dstdirslash}_inst.$$_
+ rmtmp=${dstdirslash}_rm.$$_
+
+ # Trap to clean up those temp files at exit.
+ trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
+
+ # Copy the file name to the temp name.
+ (umask $cp_umask &&
+ { test -z "$stripcmd" || {
+ # Create $dsttmp read-write so that cp doesn't create it read-only,
+ # which would cause strip to fail.
+ if test -z "$doit"; then
+ : >"$dsttmp" # No need to fork-exec 'touch'.
+ else
+ $doit touch "$dsttmp"
+ fi
+ }
+ } &&
+ $doit_exec $cpprog "$src" "$dsttmp") &&
+
+ # and set any options; do chmod last to preserve setuid bits.
+ #
+ # If any of these fail, we abort the whole thing. If we want to
+ # ignore errors from any of these, just make sure not to ignore
+ # errors from the above "$doit $cpprog $src $dsttmp" command.
+ #
+ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+ { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+ { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+ { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+ # If -C, don't bother to copy if it wouldn't change the file.
+ if $copy_on_change &&
+ old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` &&
+ new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` &&
+ set -f &&
+ set X $old && old=:$2:$4:$5:$6 &&
+ set X $new && new=:$2:$4:$5:$6 &&
+ set +f &&
+ test "$old" = "$new" &&
+ $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+ then
+ rm -f "$dsttmp"
+ else
+ # If $backupsuffix is set, and the file being installed
+ # already exists, attempt a backup. Don't worry if it fails,
+ # e.g., if mv doesn't support -f.
+ if test -n "$backupsuffix" && test -f "$dst"; then
+ $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null
+ fi
+
+ # Rename the file to the real destination.
+ $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+ # The rename failed, perhaps because mv can't rename something else
+ # to itself, or perhaps because mv is so ancient that it does not
+ # support -f.
+ {
+ # Now remove or move aside any old file at destination location.
+ # We try this two ways since rm can't unlink itself on some
+ # systems and the destination file might be busy for other
+ # reasons. In this case, the final cleanup might fail but the new
+ # file should still install successfully.
+ {
+ test ! -f "$dst" ||
+ $doit $rmcmd "$dst" 2>/dev/null ||
+ { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+ { $doit $rmcmd "$rmtmp" 2>/dev/null; :; }
+ } ||
+ { echo "$0: cannot unlink or rename $dst" >&2
+ (exit 1); exit 1
+ }
+ } &&
+
+ # Now rename the file to the real destination.
+ $doit $mvcmd "$dsttmp" "$dst"
+ }
+ fi || exit 1
+
+ trap '' 0
+ fi
+done
+
+# Local variables:
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC0"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/library/devname.c b/library/devname.c
new file mode 100644
index 0000000..6a23653
--- /dev/null
+++ b/library/devname.c
@@ -0,0 +1,364 @@
+/*
+ * devname - device name functions
+ *
+ * Copyright © 2011-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2017-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 1998-2009 Albert Cahalan
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include "misc.h"
+#include "devname.h"
+
+// This is the buffer size for a tty name. Any path is legal,
+// which makes PAGE_SIZE appropriate (see kernel source), but
+// that is only 99% portable and utmp only holds 32 anyway.
+// We need at least 20 for guess_name().
+#define TTY_NAME_SIZE 128
+
+/* Who uses what:
+ *
+ * dev_to_tty top, ps
+ */
+
+#ifdef MAJOR_IN_MKDEV
+#include <sys/mkdev.h>
+#elif defined MAJOR_IN_SYSMACROS
+#include <sys/sysmacros.h>
+#else
+#define major(d) ( ((unsigned)(d)>>8u) & 0xfffu )
+#define minor(d) ( ((unsigned)(d)&0xffu) | (((unsigned)(d)&0xfff00000u)>>12u) )
+#endif
+
+typedef struct tty_map_node {
+ struct tty_map_node *next;
+ unsigned short devfs_type; // bool
+ unsigned short major_number;
+ unsigned minor_first;
+ unsigned minor_last;
+ char name[16];
+} tty_map_node;
+
+static __thread tty_map_node *tty_map = NULL;
+
+/* Load /proc/tty/drivers for device name mapping use. */
+static void load_drivers(void){
+ char buf[10000];
+ char *p;
+ int fd;
+ int bytes;
+ fd = open("/proc/tty/drivers",O_RDONLY);
+ if(fd == -1) goto fail;
+ bytes = read(fd, buf, sizeof(buf) - 1);
+ if(bytes == -1) goto fail;
+ buf[bytes] = '\0';
+ p = buf;
+ while(( p = strstr(p, " /dev/") )){ // " /dev/" is the second column
+ tty_map_node *tmn;
+ size_t len;
+ char *end;
+ p += 6;
+ end = strchr(p, ' ');
+ if(!end) continue;
+ len = end - p;
+ if (!(tmn = calloc(1, sizeof(tty_map_node))))
+ goto fail;
+ tmn->next = tty_map;
+ tty_map = tmn;
+ /* if we have a devfs type name such as /dev/tts/%d then strip the %d but
+ keep a flag. */
+ if(len >= 3 && !strncmp(end - 2, "%d", 2)){
+ len -= 2;
+ tmn->devfs_type = 1;
+ }
+ if(len >= sizeof tmn->name)
+ len = sizeof tmn->name - 1; // mangle it to avoid overflow
+ memcpy(tmn->name, p, len);
+ p = end; /* set p to point past the %d as well if there is one */
+ while(*p == ' ') p++;
+ tmn->major_number = atoi(p);
+ p += strspn(p, "0123456789");
+ while(*p == ' ') p++;
+ switch(sscanf(p, "%u-%u", &tmn->minor_first, &tmn->minor_last)){
+ default:
+ /* Can't finish parsing this line so we remove it from the list */
+ tty_map = tty_map->next;
+ free(tmn);
+ break;
+ case 1:
+ tmn->minor_last = tmn->minor_first;
+ break;
+ case 2:
+ break;
+ }
+ }
+fail:
+ if(fd != -1) close(fd);
+ if(!tty_map) tty_map = (tty_map_node *)-1;
+}
+
+/* Try to guess the device name from /proc/tty/drivers info. */
+static int driver_name(char *restrict const buf, unsigned maj, unsigned min){
+ struct stat sbuf;
+ tty_map_node *tmn;
+ if(!tty_map) load_drivers();
+ if(tty_map == (tty_map_node *)-1) return 0;
+ tmn = tty_map;
+ for(;;){
+ if(!tmn) return 0;
+ if(tmn->major_number == maj && tmn->minor_first <= min && tmn->minor_last >= min) break;
+ tmn = tmn->next;
+ }
+ sprintf(buf, "/dev/%s%d", tmn->name, min); /* like "/dev/ttyZZ255" */
+ if(stat(buf, &sbuf) < 0){
+ sprintf(buf, "/dev/%s/%d", tmn->name, min); /* like "/dev/pts/255" */
+ if(stat(buf, &sbuf) < 0){
+ if(tmn->devfs_type) return 0;
+ sprintf(buf, "/dev/%s", tmn->name); /* like "/dev/ttyZZ255" */
+ if(stat(buf, &sbuf) < 0) return 0;
+ }
+ }
+ if(min != minor(sbuf.st_rdev)) return 0;
+ if(maj != major(sbuf.st_rdev)) return 0;
+ return 1;
+}
+
+// major 204 is a mess -- "Low-density serial ports"
+static const char low_density_names[][6] = {
+"LU0", "LU1", "LU2", "LU3",
+"FB0",
+"SA0", "SA1", "SA2",
+"SC0", "SC1", "SC2", "SC3",
+"FW0", "FW1", "FW2", "FW3",
+"AM0", "AM1", "AM2", "AM3", "AM4", "AM5", "AM6", "AM7",
+"AM8", "AM9", "AM10", "AM11", "AM12", "AM13", "AM14", "AM15",
+"DB0", "DB1", "DB2", "DB3", "DB4", "DB5", "DB6", "DB7",
+"SG0",
+"SMX0", "SMX1", "SMX2",
+"MM0", "MM1",
+"CPM0", "CPM1", "CPM2", "CPM3", /* "CPM4", "CPM5", */ // bad allocation?
+"IOC0", "IOC1", "IOC2", "IOC3", "IOC4", "IOC5", "IOC6", "IOC7",
+"IOC8", "IOC9", "IOC10", "IOC11", "IOC12", "IOC13", "IOC14", "IOC15",
+"IOC16", "IOC17", "IOC18", "IOC19", "IOC20", "IOC21", "IOC22", "IOC23",
+"IOC24", "IOC25", "IOC26", "IOC27", "IOC28", "IOC29", "IOC30", "IOC31",
+"VR0", "VR1",
+"IOC84", "IOC85", "IOC86", "IOC87", "IOC88", "IOC89", "IOC90", "IOC91",
+"IOC92", "IOC93", "IOC94", "IOC95", "IOC96", "IOC97", "IOC98", "IOC99",
+"IOC100", "IOC101", "IOC102", "IOC103", "IOC104", "IOC105", "IOC106", "IOC107",
+"IOC108", "IOC109", "IOC110", "IOC111", "IOC112", "IOC113", "IOC114", "IOC115",
+"SIOC0", "SIOC1", "SIOC2", "SIOC3", "SIOC4", "SIOC5", "SIOC6", "SIOC7",
+"SIOC8", "SIOC9", "SIOC10", "SIOC11", "SIOC12", "SIOC13", "SIOC14", "SIOC15",
+"SIOC16", "SIOC17", "SIOC18", "SIOC19", "SIOC20", "SIOC21", "SIOC22", "SIOC23",
+"SIOC24", "SIOC25", "SIOC26", "SIOC27", "SIOC28", "SIOC29", "SIOC30", "SIOC31",
+"PSC0", "PSC1", "PSC2", "PSC3", "PSC4", "PSC5",
+"AT0", "AT1", "AT2", "AT3", "AT4", "AT5", "AT6", "AT7",
+"AT8", "AT9", "AT10", "AT11", "AT12", "AT13", "AT14", "AT15",
+"NX0", "NX1", "NX2", "NX3", "NX4", "NX5", "NX6", "NX7",
+"NX8", "NX9", "NX10", "NX11", "NX12", "NX13", "NX14", "NX15",
+"J0", // minor is 186
+"UL0","UL1","UL2","UL3",
+"xvc0", // FAIL -- "/dev/xvc0" lacks "tty" prefix
+"PZ0","PZ1","PZ2","PZ3",
+"TX0","TX1","TX2","TX3","TX4","TX5","TX6","TX7",
+"SC0","SC1","SC2","SC3",
+"MAX0","MAX1","MAX2","MAX3",
+};
+
+#if 0
+// test code
+#include <stdio.h>
+#define AS(x) (sizeof(x)/sizeof((x)[0]))
+int main(int argc, char *argv[]){
+ int i = 0;
+ while(i<AS(low_density_names)){
+ printf("%3d = /dev/tty%.*s\n",i,sizeof low_density_names[i],low_density_names[i]);
+ i++;
+ }
+ return 0;
+}
+#endif
+
+/* Try to guess the device name (useful until /proc/PID/tty is added) */
+static int guess_name(char *restrict const buf, unsigned maj, unsigned min){
+ struct stat sbuf;
+#ifndef __CYGWIN__
+ int t0, t1;
+#endif
+ unsigned tmpmin = min;
+
+ switch(maj){
+ case 3: /* /dev/[pt]ty[p-za-o][0-9a-z] is 936 */
+ if(tmpmin > 255) return 0; // should never happen; array index protection
+#ifdef __CYGWIN__
+ sprintf(buf, "cons%d", tmpmin);
+ /* Skip stat call. The reason is that cons devices are local to
+ * the processes running in that console. Calling stat from another
+ * console or pty will return -1. */
+ return 1;
+#else
+ t0 = "pqrstuvwxyzabcde"[tmpmin>>4];
+ t1 = "0123456789abcdef"[tmpmin&0x0f];
+ sprintf(buf, "/dev/tty%c%c", t0, t1);
+#endif
+ break;
+ case 4:
+ if(min<64){
+ sprintf(buf, "/dev/tty%d", min);
+ break;
+ }
+ sprintf(buf, "/dev/ttyS%d", min-64);
+ break;
+ case 11: sprintf(buf, "/dev/ttyB%d", min); break;
+ case 17: sprintf(buf, "/dev/ttyH%d", min); break;
+ case 19: sprintf(buf, "/dev/ttyC%d", min); break;
+ case 22: sprintf(buf, "/dev/ttyD%d", min); break; /* devices.txt */
+ case 23: sprintf(buf, "/dev/ttyD%d", min); break; /* driver code */
+ case 24: sprintf(buf, "/dev/ttyE%d", min); break;
+ case 32: sprintf(buf, "/dev/ttyX%d", min); break;
+ case 43: sprintf(buf, "/dev/ttyI%d", min); break;
+ case 46: sprintf(buf, "/dev/ttyR%d", min); break;
+ case 48: sprintf(buf, "/dev/ttyL%d", min); break;
+ case 57: sprintf(buf, "/dev/ttyP%d", min); break;
+ case 71: sprintf(buf, "/dev/ttyF%d", min); break;
+ case 75: sprintf(buf, "/dev/ttyW%d", min); break;
+ case 78: sprintf(buf, "/dev/ttyM%d", min); break; /* conflict */
+ case 105: sprintf(buf, "/dev/ttyV%d", min); break;
+ case 112: sprintf(buf, "/dev/ttyM%d", min); break; /* conflict */
+#ifdef __CYGWIN__
+ case 136: sprintf(buf, "/dev/pty%d", min); break;
+#else
+ /* 136 ... 143 are /dev/pts/0, /dev/pts/1, /dev/pts/2 ... */
+ case 136 ... 143: sprintf(buf, "/dev/pts/%d", min+(maj-136)*256); break;
+#endif
+ case 148: sprintf(buf, "/dev/ttyT%d", min); break;
+ case 154: sprintf(buf, "/dev/ttySR%d", min); break;
+ case 156: sprintf(buf, "/dev/ttySR%d", min+256); break;
+ case 164: sprintf(buf, "/dev/ttyCH%d", min); break;
+ case 166: sprintf(buf, "/dev/ttyACM%d", min); break; /* bummer, 9-char */
+ case 172: sprintf(buf, "/dev/ttyMX%d", min); break;
+ case 174: sprintf(buf, "/dev/ttySI%d", min); break;
+ case 188: sprintf(buf, "/dev/ttyUSB%d", min); break; /* bummer, 9-char */
+ case 204:
+ if(min >= sizeof low_density_names / sizeof low_density_names[0]) return 0;
+ memcpy(buf,"/dev/tty",8);
+ memcpy(buf+8, low_density_names[min], sizeof low_density_names[0]);
+ buf[8 + sizeof low_density_names[0]] = '\0';
+// snprintf(buf, 9 + sizeof low_density_names[0], "/dev/tty%.*s", sizeof low_density_names[0], low_density_names[min]);
+ break;
+ case 208: sprintf(buf, "/dev/ttyU%d", min); break;
+ case 216: sprintf(buf, "/dev/ttyUB%d", min); break; // "/dev/rfcomm%d" now?
+ case 224: sprintf(buf, "/dev/ttyY%d", min); break;
+ case 227: sprintf(buf, "/dev/3270/tty%d", min); break; /* bummer, HUGE */
+ case 229: sprintf(buf, "/dev/iseries/vtty%d", min); break; /* bummer, HUGE */
+ case 256: sprintf(buf, "/dev/ttyEQ%d", min); break;
+ default: return 0;
+ }
+ if(stat(buf, &sbuf) < 0) return 0;
+ if(min != minor(sbuf.st_rdev)) return 0;
+ if(maj != major(sbuf.st_rdev)) return 0;
+ return 1;
+}
+
+/* Linux 2.2 can give us filenames that might be correct.
+ * Useful names could be in /proc/PID/fd/2 (stderr, seldom redirected)
+ * and in /proc/PID/fd/255 (used by bash to remember the tty).
+ */
+static int link_name(char *restrict const buf, unsigned maj, unsigned min, int pid, const char *restrict name){
+ struct stat sbuf;
+ char path[32];
+ ssize_t count;
+ const int len = snprintf(path, sizeof path, "/proc/%d/%s", pid, name); /* often permission denied */
+ if(len <= 0 || (size_t)len >= sizeof path) return 0;
+ count = readlink(path,buf,TTY_NAME_SIZE-1);
+ if(count <= 0 || count >= TTY_NAME_SIZE-1) return 0;
+ buf[count] = '\0';
+ if(stat(buf, &sbuf) < 0) return 0;
+ if(min != minor(sbuf.st_rdev)) return 0;
+ if(maj != major(sbuf.st_rdev)) return 0;
+ return 1;
+}
+
+#ifdef USE_PROC_CTTY
+/* Cygwin keeps the name to the controlling tty in a virtual file called
+ /proc/PID/ctty, including a trailing LF (sigh). */
+static int ctty_name(char *restrict const buf, int pid) {
+ char path[32];
+ FILE *fp;
+ char *lf;
+ sprintf (path, "/proc/%d/ctty", pid); /* often permission denied */
+ fp = fopen (path, "r");
+ if (!fp)
+ return 0;
+ if (!fgets (buf,TTY_NAME_SIZE,fp))
+ {
+ fclose (fp);
+ return 0;
+ }
+ fclose (fp);
+ lf = strchr (buf, '\n');
+ if (lf)
+ *lf = (lf == buf ? '?' : '\0');
+ return 1;
+}
+#endif
+
+/* number --> name */
+unsigned dev_to_tty(char *restrict ret, unsigned chop, dev_t dev_t_dev, int pid, unsigned int flags) {
+ static __thread char buf[TTY_NAME_SIZE];
+ char *restrict tmp = buf;
+ unsigned dev = dev_t_dev;
+ unsigned i = 0;
+ int c;
+#ifdef USE_PROC_CTTY
+ if( ctty_name(tmp, pid )) goto abbrev;
+#endif
+ if(dev == 0u) goto no_tty;
+ if(driver_name(tmp, major(dev), minor(dev) )) goto abbrev;
+ if( link_name(tmp, major(dev), minor(dev), pid, "fd/2" )) goto abbrev;
+ if( guess_name(tmp, major(dev), minor(dev) )) goto abbrev;
+ if( link_name(tmp, major(dev), minor(dev), pid, "fd/255")) goto abbrev;
+ // fall through if unable to find a device file
+no_tty:
+ strcpy(ret, chop >= 1 ? "?" : "");
+ return 1;
+abbrev:
+ if((flags&ABBREV_DEV) && !strncmp(tmp,"/dev/",5) && tmp[5]) tmp += 5;
+ if((flags&ABBREV_TTY) && !strncmp(tmp,"tty", 3) && tmp[3]) tmp += 3;
+ if((flags&ABBREV_PTS) && !strncmp(tmp,"pts/", 4) && tmp[4]) tmp += 4;
+ /* gotta check before we chop or we may chop someone else's memory */
+ if(chop + (unsigned long)(tmp-buf) < sizeof buf)
+ tmp[chop] = '\0';
+ /* replace non-ASCII characters with '?' and return the number of chars */
+ while(i < chop){
+ c = *tmp;
+ tmp++;
+ if(!c) break;
+ i++;
+ if(c<=' ') c = '?';
+ if(c>126) c = '?';
+ *ret = c;
+ ret++;
+ }
+ *ret = '\0';
+ return i;
+}
diff --git a/library/diskstats.c b/library/diskstats.c
new file mode 100644
index 0000000..b4e41f3
--- /dev/null
+++ b/library/diskstats.c
@@ -0,0 +1,1027 @@
+/*
+ * diskstats.c - disk I/O related definitions for libproc2
+ *
+ * Copyright © 2015-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2015-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2003 Albert Cahalan
+ * Copyright © 2003 Fabian Frederick
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <dirent.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <unistd.h>
+
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include "procps-private.h"
+#include "diskstats.h"
+
+/* The following define will cause the 'node_add' function to maintain our |
+ nodes list in ascending alphabetical order which could be used to avoid |
+ a sort on name. Without it, we default to a 'pull-up' stack at slightly |
+ more effort than a simple 'push-down' list to duplicate prior behavior. | */
+//#define ALPHABETIC_NODES
+
+#define DISKSTATS_LINE_LEN 1024
+#define DISKSTATS_NAME_LEN 34
+#define DISKSTATS_FILE "/proc/diskstats"
+#define SYSBLOCK_DIR "/sys/block"
+
+#define STACKS_INCR 64 // amount reap stack allocations grow
+#define STR_COMPARE strverscmp
+
+/* ----------------------------------------------------------------------- +
+ this provision can help ensure that our Item_table remains synchronized |
+ with the enumerators found in the associated header file. It's intended |
+ to only be used locally (& temporarily) at some point before a release! | */
+// #define ITEMTABLE_DEBUG //--------------------------------------------- |
+// ----------------------------------------------------------------------- +
+
+
+struct dev_data {
+ unsigned long reads;
+ unsigned long reads_merged;
+ unsigned long read_sectors;
+ unsigned long read_time;
+ unsigned long writes;
+ unsigned long writes_merged;
+ unsigned long write_sectors;
+ unsigned long write_time;
+ unsigned long io_inprogress;
+ unsigned long io_time;
+ unsigned long io_wtime;
+};
+
+struct dev_node {
+ char name[DISKSTATS_NAME_LEN+1];
+ int type;
+ int major;
+ int minor;
+ time_t stamped;
+ struct dev_data new;
+ struct dev_data old;
+ struct dev_node *next;
+};
+
+struct stacks_extent {
+ int ext_numstacks;
+ struct stacks_extent *next;
+ struct diskstats_stack **stacks;
+};
+
+struct ext_support {
+ int numitems; // includes 'logical_end' delimiter
+ enum diskstats_item *items; // includes 'logical_end' delimiter
+ struct stacks_extent *extents; // anchor for these extents
+};
+
+struct fetch_support {
+ struct diskstats_stack **anchor; // fetch consolidated extents
+ int n_alloc; // number of above pointers allocated
+ int n_inuse; // number of above pointers occupied
+ int n_alloc_save; // last known reap.stacks allocation
+ struct diskstats_reaped results; // count + stacks for return to caller
+};
+
+struct diskstats_info {
+ int refcount;
+ FILE *diskstats_fp;
+ time_t old_stamp; // previous read seconds
+ time_t new_stamp; // current read seconds
+ struct dev_node *nodes; // dev nodes anchor
+ struct ext_support select_ext; // supports concurrent select/reap
+ struct ext_support fetch_ext; // supports concurrent select/reap
+ struct fetch_support fetch; // support for procps_diskstats_reap
+ struct diskstats_result get_this; // used by procps_diskstats_get
+};
+
+
+// ___ Results 'Set' Support ||||||||||||||||||||||||||||||||||||||||||||||||||
+
+#define setNAME(e) set_diskstats_ ## e
+#define setDECL(e) static void setNAME(e) \
+ (struct diskstats_result *R, struct dev_node *N)
+
+// regular assignment
+#define DEV_set(e,t,x) setDECL(e) { R->result. t = N-> x; }
+#define REG_set(e,t,x) setDECL(e) { R->result. t = N->new. x; }
+// delta assignment
+#define HST_set(e,t,x) setDECL(e) { R->result. t = ( N->new. x - N->old. x ); }
+
+setDECL(noop) { (void)R; (void)N; }
+setDECL(extra) { (void)N; R->result.ul_int = 0; }
+
+DEV_set(NAME, str, name)
+DEV_set(TYPE, s_int, type)
+DEV_set(MAJOR, s_int, major)
+DEV_set(MINOR, s_int, minor)
+
+REG_set(READS, ul_int, reads)
+REG_set(READS_MERGED, ul_int, reads_merged)
+REG_set(READ_SECTORS, ul_int, read_sectors)
+REG_set(READ_TIME, ul_int, read_time)
+REG_set(WRITES, ul_int, writes)
+REG_set(WRITES_MERGED, ul_int, writes_merged)
+REG_set(WRITE_SECTORS, ul_int, write_sectors)
+REG_set(WRITE_TIME, ul_int, write_time)
+REG_set(IO_TIME, ul_int, io_time)
+REG_set(WEIGHTED_TIME, ul_int, io_wtime)
+
+REG_set(IO_INPROGRESS, s_int, io_inprogress)
+
+HST_set(DELTA_READS, s_int, reads)
+HST_set(DELTA_READS_MERGED, s_int, reads_merged)
+HST_set(DELTA_READ_SECTORS, s_int, read_sectors)
+HST_set(DELTA_READ_TIME, s_int, read_time)
+HST_set(DELTA_WRITES, s_int, writes)
+HST_set(DELTA_WRITES_MERGED, s_int, writes_merged)
+HST_set(DELTA_WRITE_SECTORS, s_int, write_sectors)
+HST_set(DELTA_WRITE_TIME, s_int, write_time)
+HST_set(DELTA_IO_TIME, s_int, io_time)
+HST_set(DELTA_WEIGHTED_TIME, s_int, io_wtime)
+
+#undef setDECL
+#undef DEV_set
+#undef REG_set
+#undef HST_set
+
+
+// ___ Sorting Support ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+
+struct sort_parms {
+ int offset;
+ enum diskstats_sort_order order;
+};
+
+#define srtNAME(t) sort_diskstats_ ## t
+#define srtDECL(t) static int srtNAME(t) \
+ (const struct diskstats_stack **A, const struct diskstats_stack **B, struct sort_parms *P)
+
+srtDECL(s_int) {
+ const struct diskstats_result *a = (*A)->head + P->offset; \
+ const struct diskstats_result *b = (*B)->head + P->offset; \
+ return P->order * (a->result.s_int - b->result.s_int);
+}
+
+srtDECL(ul_int) {
+ const struct diskstats_result *a = (*A)->head + P->offset; \
+ const struct diskstats_result *b = (*B)->head + P->offset; \
+ if ( a->result.ul_int > b->result.ul_int ) return P->order > 0 ? 1 : -1; \
+ if ( a->result.ul_int < b->result.ul_int ) return P->order > 0 ? -1 : 1; \
+ return 0;
+}
+
+srtDECL(str) {
+ const struct diskstats_result *a = (*A)->head + P->offset;
+ const struct diskstats_result *b = (*B)->head + P->offset;
+ return P->order * STR_COMPARE(a->result.str, b->result.str);
+}
+
+srtDECL(noop) { \
+ (void)A; (void)B; (void)P; \
+ return 0;
+}
+
+#undef srtDECL
+
+
+// ___ Controlling Table ||||||||||||||||||||||||||||||||||||||||||||||||||||||
+
+typedef void (*SET_t)(struct diskstats_result *, struct dev_node *);
+#ifdef ITEMTABLE_DEBUG
+#define RS(e) (SET_t)setNAME(e), DISKSTATS_ ## e, STRINGIFY(DISKSTATS_ ## e)
+#else
+#define RS(e) (SET_t)setNAME(e)
+#endif
+
+typedef int (*QSR_t)(const void *, const void *, void *);
+#define QS(t) (QSR_t)srtNAME(t)
+
+#define TS(t) STRINGIFY(t)
+#define TS_noop ""
+
+ /*
+ * Need it be said?
+ * This table must be kept in the exact same order as
+ * those *enum diskstats_item* guys ! */
+static struct {
+ SET_t setsfunc; // the actual result setting routine
+#ifdef ITEMTABLE_DEBUG
+ int enumnumb; // enumerator (must match position!)
+ char *enum2str; // enumerator name as a char* string
+#endif
+ QSR_t sortfunc; // sort cmp func for a specific type
+ char *type2str; // the result type as a string value
+} Item_table[] = {
+/* setsfunc sortfunc type2str
+ ------------------------ ----------- ---------- */
+ { RS(noop), QS(noop), TS_noop },
+ { RS(extra), QS(ul_int), TS_noop },
+
+ { RS(NAME), QS(str), TS(str) },
+ { RS(TYPE), QS(s_int), TS(s_int) },
+ { RS(MAJOR), QS(s_int), TS(s_int) },
+ { RS(MINOR), QS(s_int), TS(s_int) },
+
+ { RS(READS), QS(ul_int), TS(ul_int) },
+ { RS(READS_MERGED), QS(ul_int), TS(ul_int) },
+ { RS(READ_SECTORS), QS(ul_int), TS(ul_int) },
+ { RS(READ_TIME), QS(ul_int), TS(ul_int) },
+ { RS(WRITES), QS(ul_int), TS(ul_int) },
+ { RS(WRITES_MERGED), QS(ul_int), TS(ul_int) },
+ { RS(WRITE_SECTORS), QS(ul_int), TS(ul_int) },
+ { RS(WRITE_TIME), QS(ul_int), TS(ul_int) },
+ { RS(IO_TIME), QS(ul_int), TS(ul_int) },
+ { RS(WEIGHTED_TIME), QS(ul_int), TS(ul_int) },
+
+ { RS(IO_INPROGRESS), QS(s_int), TS(s_int) },
+
+ { RS(DELTA_READS), QS(s_int), TS(s_int) },
+ { RS(DELTA_READS_MERGED), QS(s_int), TS(s_int) },
+ { RS(DELTA_READ_SECTORS), QS(s_int), TS(s_int) },
+ { RS(DELTA_READ_TIME), QS(s_int), TS(s_int) },
+ { RS(DELTA_WRITES), QS(s_int), TS(s_int) },
+ { RS(DELTA_WRITES_MERGED), QS(s_int), TS(s_int) },
+ { RS(DELTA_WRITE_SECTORS), QS(s_int), TS(s_int) },
+ { RS(DELTA_WRITE_TIME), QS(s_int), TS(s_int) },
+ { RS(DELTA_IO_TIME), QS(s_int), TS(s_int) },
+ { RS(DELTA_WEIGHTED_TIME), QS(s_int), TS(s_int) },
+};
+
+ /* please note,
+ * this enum MUST be 1 greater than the highest value of any enum */
+enum diskstats_item DISKSTATS_logical_end = MAXTABLE(Item_table);
+
+#undef setNAME
+#undef srtNAME
+#undef RS
+#undef QS
+
+
+// ___ Private Functions ||||||||||||||||||||||||||||||||||||||||||||||||||||||
+// --- dev_node specific support ----------------------------------------------
+
+static struct dev_node *node_add (
+ struct diskstats_info *info,
+ struct dev_node *this)
+{
+ struct dev_node *prev, *walk;
+
+#ifdef ALPHABETIC_NODES
+ if (!info->nodes
+ || (STR_COMPARE(this->name, info->nodes->name) < 0)) {
+ this->next = info->nodes;
+ info->nodes = this;
+ return this;
+ }
+ prev = info->nodes;
+ walk = info->nodes->next;
+ while (walk) {
+ if (STR_COMPARE(this->name, walk->name) < 0)
+ break;
+ prev = walk;
+ walk = walk->next;
+ }
+ prev->next = this;
+ this->next = walk;
+#else
+ if (!info->nodes)
+ info->nodes = this;
+ else {
+ walk = info->nodes;
+ do {
+ prev = walk;
+ walk = walk->next;
+ } while (walk);
+ prev->next = this;
+ }
+#endif
+ return this;
+} // end: node_add
+
+
+static void node_classify (
+ struct dev_node *this)
+{
+ DIR *dirp;
+ struct dirent *dent;
+
+ /* all disks start off as partitions. this function
+ checks /sys/block and changes a device found there
+ into a disk. if /sys/block cannot have the directory
+ read, all devices are then treated as disks. */
+ this->type = DISKSTATS_TYPE_PARTITION;
+
+ if (!(dirp = opendir(SYSBLOCK_DIR))) {
+ this->type = DISKSTATS_TYPE_DISK;
+ return;
+ }
+ while ((dent = readdir(dirp))) {
+ if (strcmp(this->name, dent->d_name) == 0) {
+ this->type = DISKSTATS_TYPE_DISK;
+ break;
+ }
+ }
+ closedir(dirp);
+} // end: node_classify
+
+
+static struct dev_node *node_cut (
+ struct diskstats_info *info,
+ struct dev_node *this)
+{
+ struct dev_node *node = info->nodes;
+
+ if (this) {
+ if (this == node) {
+ info->nodes = node->next;
+ return this;
+ }
+ do {
+ if (this == node->next) {
+ node->next = node->next->next;
+ return this;
+ }
+ node = node->next;
+ } while (node);
+ }
+ return NULL;
+} // end: node_cut
+
+
+static struct dev_node *node_get (
+ struct diskstats_info *info,
+ const char *name)
+{
+ struct dev_node *node = info->nodes;
+
+ while (node) {
+ if (strcmp(name, node->name) == 0)
+ break;
+ node = node->next;
+ }
+ if (node) {
+ /* if this disk or partition has somehow gotten stale, we'll lose
+ it and then pretend it was never actually found ...
+ [ we test against both stamps in case a 'read' was avoided ] */
+ if (node->stamped != info->old_stamp
+ && (node->stamped != info->new_stamp)) {
+ free(node_cut(info, node));
+ node = NULL;
+ }
+ }
+ return node;
+} // end: node_get
+
+
+static int node_update (
+ struct diskstats_info *info,
+ struct dev_node *source)
+{
+ struct dev_node *target = node_get(info, source->name);
+
+ if (!target) {
+ if (!(target = malloc(sizeof(struct dev_node))))
+ return 0;
+ memcpy(target, source, sizeof(struct dev_node));
+ // let's not distort the deltas when a new node is created ...
+ memcpy(&target->old, &target->new, sizeof(struct dev_data));
+ node_classify(target);
+ node_add(info, target);
+ return 1;
+ }
+ // remember history from last time around ...
+ memcpy(&source->old, &target->new, sizeof(struct dev_data));
+ // preserve some stuff from the existing node struct ...
+ source->type = target->type;
+ source->next = target->next;
+ // finally 'update' the existing node struct ...
+ memcpy(target, source, sizeof(struct dev_node));
+ return 1;
+} // end: node_update
+
+
+// ___ Private Functions ||||||||||||||||||||||||||||||||||||||||||||||||||||||
+// --- generalized support ----------------------------------------------------
+
+static inline void diskstats_assign_results (
+ struct diskstats_stack *stack,
+ struct dev_node *node)
+{
+ struct diskstats_result *this = stack->head;
+
+ for (;;) {
+ enum diskstats_item item = this->item;
+ if (item >= DISKSTATS_logical_end)
+ break;
+ Item_table[item].setsfunc(this, node);
+ ++this;
+ }
+ return;
+} // end: diskstats_assign_results
+
+
+static void diskstats_extents_free_all (
+ struct ext_support *this)
+{
+ while (this->extents) {
+ struct stacks_extent *p = this->extents;
+ this->extents = this->extents->next;
+ free(p);
+ };
+} // end: diskstats_extents_free_all
+
+
+static inline struct diskstats_result *diskstats_itemize_stack (
+ struct diskstats_result *p,
+ int depth,
+ enum diskstats_item *items)
+{
+ struct diskstats_result *p_sav = p;
+ int i;
+
+ for (i = 0; i < depth; i++) {
+ p->item = items[i];
+ ++p;
+ }
+ return p_sav;
+} // end: diskstats_itemize_stack
+
+
+static inline int diskstats_items_check_failed (
+ enum diskstats_item *items,
+ int numitems)
+{
+ int i;
+
+ /* if an enum is passed instead of an address of one or more enums, ol' gcc
+ * will silently convert it to an address (possibly NULL). only clang will
+ * offer any sort of warning like the following:
+ *
+ * warning: incompatible integer to pointer conversion passing 'int' to parameter of type 'enum diskstats_item *'
+ * my_stack = procps_diskstats_select(info, DISKSTATS_noop, num);
+ * ^~~~~~~~~~~~~~~~
+ */
+ if (numitems < 1
+ || (void *)items < (void *)(unsigned long)(2 * DISKSTATS_logical_end))
+ return 1;
+
+ for (i = 0; i < numitems; i++) {
+ // a diskstats_item is currently unsigned, but we'll protect our future
+ if (items[i] < 0)
+ return 1;
+ if (items[i] >= DISKSTATS_logical_end)
+ return 1;
+ }
+
+ return 0;
+} // end: diskstats_items_check_failed
+
+
+/*
+ * diskstats_read_failed:
+ *
+ * @info: info structure created at procps_diskstats_new
+ *
+ * Read the data out of /proc/diskstats putting the information
+ * into the supplied info structure
+ *
+ * Returns: 0 on success, 1 on error
+ */
+static int diskstats_read_failed (
+ struct diskstats_info *info)
+{
+ static const char *fmtstr = "%d %d %" STRINGIFY(DISKSTATS_NAME_LEN) \
+ "s %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu %lu";
+ char buf[DISKSTATS_LINE_LEN];
+ struct dev_node node;
+ int rc;
+
+ if (!info->diskstats_fp
+ && (!(info->diskstats_fp = fopen(DISKSTATS_FILE, "r"))))
+ return 1;
+
+ if (fseek(info->diskstats_fp, 0L, SEEK_SET) == -1)
+ return 1;
+
+ info->old_stamp = info->new_stamp;
+ info->new_stamp = time(NULL);
+
+ while (fgets(buf, DISKSTATS_LINE_LEN, info->diskstats_fp)) {
+ // clear out the soon to be 'current'values
+ memset(&node, 0, sizeof(struct dev_node));
+
+ rc = sscanf(buf, fmtstr
+ , &node.major
+ , &node.minor
+ , &node.name[0]
+ , &node.new.reads
+ , &node.new.reads_merged
+ , &node.new.read_sectors
+ , &node.new.read_time
+ , &node.new.writes
+ , &node.new.writes_merged
+ , &node.new.write_sectors
+ , &node.new.write_time
+ , &node.new.io_inprogress
+ , &node.new.io_time
+ , &node.new.io_wtime);
+
+ if (rc != 14) {
+ errno = ERANGE;
+ return 1;
+ }
+ node.stamped = info->new_stamp;
+ if (!node_update(info, &node))
+ return 1; // here, errno was set to ENOMEM
+ }
+
+ return 0;
+} // end: diskstats_read_failed
+
+
+/*
+ * diskstats_stacks_alloc():
+ *
+ * Allocate and initialize one or more stacks each of which is anchored in an
+ * associated context structure.
+ *
+ * All such stacks will have their result structures properly primed with
+ * 'items', while the result itself will be zeroed.
+ *
+ * Returns a stacks_extent struct anchoring the 'heads' of each new stack.
+ */
+static struct stacks_extent *diskstats_stacks_alloc (
+ struct ext_support *this,
+ int maxstacks)
+{
+ struct stacks_extent *p_blob;
+ struct diskstats_stack **p_vect;
+ struct diskstats_stack *p_head;
+ size_t vect_size, head_size, list_size, blob_size;
+ void *v_head, *v_list;
+ int i;
+
+ vect_size = sizeof(void *) * maxstacks; // size of the addr vectors |
+ vect_size += sizeof(void *); // plus NULL addr delimiter |
+ head_size = sizeof(struct diskstats_stack); // size of that head struct |
+ list_size = sizeof(struct diskstats_result) * this->numitems; // any single results stack |
+ blob_size = sizeof(struct stacks_extent); // the extent anchor itself |
+ blob_size += vect_size; // plus room for addr vects |
+ blob_size += head_size * maxstacks; // plus room for head thing |
+ blob_size += list_size * maxstacks; // plus room for our stacks |
+
+ /* note: all of our memory is allocated in one single blob, facilitating some later free(). |
+ as a minimum, it's important that all of those result structs themselves always be |
+ contiguous within every stack since they will be accessed via a relative position. | */
+ if (NULL == (p_blob = calloc(1, blob_size)))
+ return NULL;
+
+ p_blob->next = this->extents; // push this extent onto... |
+ this->extents = p_blob; // ...some existing extents |
+ p_vect = (void *)p_blob + sizeof(struct stacks_extent); // prime our vector pointer |
+ p_blob->stacks = p_vect; // set actual vectors start |
+ v_head = (void *)p_vect + vect_size; // prime head pointer start |
+ v_list = v_head + (head_size * maxstacks); // prime our stacks pointer |
+
+ for (i = 0; i < maxstacks; i++) {
+ p_head = (struct diskstats_stack *)v_head;
+ p_head->head = diskstats_itemize_stack((struct diskstats_result *)v_list, this->numitems, this->items);
+ p_blob->stacks[i] = p_head;
+ v_list += list_size;
+ v_head += head_size;
+ }
+ p_blob->ext_numstacks = maxstacks;
+ return p_blob;
+} // end: diskstats_stacks_alloc
+
+
+static int diskstats_stacks_fetch (
+ struct diskstats_info *info)
+{
+ #define n_alloc info->fetch.n_alloc
+ #define n_inuse info->fetch.n_inuse
+ #define n_saved info->fetch.n_alloc_save
+ struct stacks_extent *ext;
+ struct dev_node *node;
+
+ // initialize stuff -----------------------------------
+ if (!info->fetch.anchor) {
+ if (!(info->fetch.anchor = calloc(sizeof(void *), STACKS_INCR)))
+ return -ENOMEM;
+ n_alloc = STACKS_INCR;
+ }
+ if (!info->fetch_ext.extents) {
+ if (!(ext = diskstats_stacks_alloc(&info->fetch_ext, n_alloc)))
+ return -1; // here, errno was set to ENOMEM
+ memcpy(info->fetch.anchor, ext->stacks, sizeof(void *) * n_alloc);
+ }
+
+ // iterate stuff --------------------------------------
+ n_inuse = 0;
+ node = info->nodes;
+ while (node) {
+ if (!(n_inuse < n_alloc)) {
+ n_alloc += STACKS_INCR;
+ if ((!(info->fetch.anchor = realloc(info->fetch.anchor, sizeof(void *) * n_alloc)))
+ || (!(ext = diskstats_stacks_alloc(&info->fetch_ext, STACKS_INCR))))
+ return -1; // here, errno was set to ENOMEM
+ memcpy(info->fetch.anchor + n_inuse, ext->stacks, sizeof(void *) * STACKS_INCR);
+ }
+ diskstats_assign_results(info->fetch.anchor[n_inuse], node);
+ ++n_inuse;
+ node = node->next;
+ }
+
+ // finalize stuff -------------------------------------
+ /* note: we go to this trouble of maintaining a duplicate of the consolidated |
+ extent stacks addresses represented as our 'anchor' since these ptrs |
+ are exposed to a user (um, not that we don't trust 'em or anything). |
+ plus, we can NULL delimit these ptrs which we couldn't do otherwise. | */
+ if (n_saved < n_inuse + 1) {
+ n_saved = n_inuse + 1;
+ if (!(info->fetch.results.stacks = realloc(info->fetch.results.stacks, sizeof(void *) * n_saved)))
+ return -1;
+ }
+ memcpy(info->fetch.results.stacks, info->fetch.anchor, sizeof(void *) * n_inuse);
+ info->fetch.results.stacks[n_inuse] = NULL;
+ info->fetch.results.total = n_inuse;
+
+ return n_inuse;
+ #undef n_alloc
+ #undef n_inuse
+ #undef n_saved
+} // end: diskstats_stacks_fetch
+
+
+static int diskstats_stacks_reconfig_maybe (
+ struct ext_support *this,
+ enum diskstats_item *items,
+ int numitems)
+{
+ if (diskstats_items_check_failed(items, numitems))
+ return -1;
+ /* is this the first time or have things changed since we were last called?
+ if so, gotta' redo all of our stacks stuff ... */
+ if (this->numitems != numitems + 1
+ || memcmp(this->items, items, sizeof(enum diskstats_item) * numitems)) {
+ // allow for our DISKSTATS_logical_end
+ if (!(this->items = realloc(this->items, sizeof(enum diskstats_item) * (numitems + 1))))
+ return -1; // here, errno was set to ENOMEM
+ memcpy(this->items, items, sizeof(enum diskstats_item) * numitems);
+ this->items[numitems] = DISKSTATS_logical_end;
+ this->numitems = numitems + 1;
+ diskstats_extents_free_all(this);
+ return 1;
+ }
+ return 0;
+} // end: diskstats_stacks_reconfig_maybe
+
+
+// ___ Public Functions |||||||||||||||||||||||||||||||||||||||||||||||||||||||
+
+// --- standard required functions --------------------------------------------
+
+/*
+ * procps_diskstats_new():
+ *
+ * @info: location of returned new structure
+ *
+ * Returns: < 0 on failure, 0 on success along with
+ * a pointer to a new context struct
+ */
+PROCPS_EXPORT int procps_diskstats_new (
+ struct diskstats_info **info)
+{
+ struct diskstats_info *p;
+
+#ifdef ITEMTABLE_DEBUG
+ int i, failed = 0;
+ for (i = 0; i < MAXTABLE(Item_table); i++) {
+ if (i != Item_table[i].enumnumb) {
+ fprintf(stderr, "%s: enum/table error: Item_table[%d] was %s, but its value is %d\n"
+ , __FILE__, i, Item_table[i].enum2str, Item_table[i].enumnumb);
+ failed = 1;
+ }
+ }
+ if (failed) _Exit(EXIT_FAILURE);
+#endif
+
+ if (info == NULL || *info != NULL)
+ return -EINVAL;
+ if (!(p = calloc(1, sizeof(struct diskstats_info))))
+ return -ENOMEM;
+
+ p->refcount = 1;
+
+ /* do a priming read here for the following potential benefits: |
+ 1) ensure there will be no problems with subsequent access |
+ 2) make delta results potentially useful, even if 1st time |
+ 3) elimnate need for history distortions 1st time 'switch' | */
+ if (diskstats_read_failed(p)) {
+ procps_diskstats_unref(&p);
+ return -errno;
+ }
+
+ *info = p;
+ return 0;
+} // end: procps_diskstats_new
+
+
+PROCPS_EXPORT int procps_diskstats_ref (
+ struct diskstats_info *info)
+{
+ if (info == NULL)
+ return -EINVAL;
+
+ info->refcount++;
+ return info->refcount;
+} // end: procps_diskstats_ref
+
+
+PROCPS_EXPORT int procps_diskstats_unref (
+ struct diskstats_info **info)
+{
+ struct dev_node *node;
+
+ if (info == NULL || *info == NULL)
+ return -EINVAL;
+
+ (*info)->refcount--;
+
+ if ((*info)->refcount < 1) {
+ int errno_sav = errno;
+
+ if ((*info)->diskstats_fp) {
+ fclose((*info)->diskstats_fp);
+ (*info)->diskstats_fp = NULL;
+ }
+ node = (*info)->nodes;
+ while (node) {
+ struct dev_node *p = node;
+ node = p->next;
+ free(p);
+ }
+ if ((*info)->select_ext.extents)
+ diskstats_extents_free_all((&(*info)->select_ext));
+ if ((*info)->select_ext.items)
+ free((*info)->select_ext.items);
+
+ if ((*info)->fetch.anchor)
+ free((*info)->fetch.anchor);
+ if ((*info)->fetch.results.stacks)
+ free((*info)->fetch.results.stacks);
+
+ if ((*info)->fetch_ext.extents)
+ diskstats_extents_free_all(&(*info)->fetch_ext);
+ if ((*info)->fetch_ext.items)
+ free((*info)->fetch_ext.items);
+
+ free(*info);
+ *info = NULL;
+
+ errno = errno_sav;
+ return 0;
+ }
+ return (*info)->refcount;
+} // end: procps_diskstats_unref
+
+
+// --- variable interface functions -------------------------------------------
+
+PROCPS_EXPORT struct diskstats_result *procps_diskstats_get (
+ struct diskstats_info *info,
+ const char *name,
+ enum diskstats_item item)
+{
+ struct dev_node *node;
+ time_t cur_secs;
+
+ errno = EINVAL;
+ if (info == NULL)
+ return NULL;
+ if (item < 0 || item >= DISKSTATS_logical_end)
+ return NULL;
+ errno = 0;
+
+ /* we will NOT read the diskstat file with every call - rather, we'll offer
+ a granularity of 1 second between reads ... */
+ cur_secs = time(NULL);
+ if (1 <= cur_secs - info->new_stamp) {
+ if (diskstats_read_failed(info))
+ return NULL;
+ }
+
+ info->get_this.item = item;
+ // with 'get', we must NOT honor the usual 'noop' guarantee
+ info->get_this.result.ul_int = 0;
+
+ if (!(node = node_get(info, name))) {
+ errno = ENXIO;
+ return NULL;
+ }
+ Item_table[item].setsfunc(&info->get_this, node);
+
+ return &info->get_this;
+} // end: procps_diskstats_get
+
+
+/* procps_diskstats_reap():
+ *
+ * Harvest all the requested disks information providing
+ * the result stacks along with the total number of harvested.
+ *
+ * Returns: pointer to a diskstats_reaped struct on success, NULL on error.
+ */
+PROCPS_EXPORT struct diskstats_reaped *procps_diskstats_reap (
+ struct diskstats_info *info,
+ enum diskstats_item *items,
+ int numitems)
+{
+ errno = EINVAL;
+ if (info == NULL || items == NULL)
+ return NULL;
+ if (0 > diskstats_stacks_reconfig_maybe(&info->fetch_ext, items, numitems))
+ return NULL; // here, errno may be overridden with ENOMEM
+ errno = 0;
+
+ if (diskstats_read_failed(info))
+ return NULL;
+ if (0 > diskstats_stacks_fetch(info))
+ return NULL;
+
+ return &info->fetch.results;
+} // end: procps_diskstats_reap
+
+
+/* procps_diskstats_select():
+ *
+ * Obtain all the requested disk/partition information then return
+ * it in a single library provided results stack.
+ *
+ * Returns: pointer to a diskstats_stack struct on success, NULL on error.
+ */
+PROCPS_EXPORT struct diskstats_stack *procps_diskstats_select (
+ struct diskstats_info *info,
+ const char *name,
+ enum diskstats_item *items,
+ int numitems)
+{
+ struct dev_node *node;
+
+ errno = EINVAL;
+ if (info == NULL || items == NULL)
+ return NULL;
+ if (0 > diskstats_stacks_reconfig_maybe(&info->select_ext, items, numitems))
+ return NULL; // here, errno may be overridden with ENOMEM
+ errno = 0;
+
+ if (!info->select_ext.extents
+ && (!diskstats_stacks_alloc(&info->select_ext, 1)))
+ return NULL;
+
+ if (diskstats_read_failed(info))
+ return NULL;
+ if (!(node = node_get(info, name))) {
+ errno = ENXIO;
+ return NULL;
+ }
+
+ diskstats_assign_results(info->select_ext.extents->stacks[0], node);
+
+ return info->select_ext.extents->stacks[0];
+} // end: procps_diskstats_select
+
+
+/*
+ * procps_diskstats_sort():
+ *
+ * Sort stacks anchored in the passed stack pointers array
+ * based on the designated sort enumerator and specified order.
+ *
+ * Returns those same addresses sorted.
+ *
+ * Note: all of the stacks must be homogeneous (of equal length and content).
+ */
+PROCPS_EXPORT struct diskstats_stack **procps_diskstats_sort (
+ struct diskstats_info *info,
+ struct diskstats_stack *stacks[],
+ int numstacked,
+ enum diskstats_item sortitem,
+ enum diskstats_sort_order order)
+{
+ struct diskstats_result *p;
+ struct sort_parms parms;
+ int offset;
+
+ errno = EINVAL;
+ if (info == NULL || stacks == NULL)
+ return NULL;
+ // a diskstats_item is currently unsigned, but we'll protect our future
+ if (sortitem < 0 || sortitem >= DISKSTATS_logical_end)
+ return NULL;
+ if (order != DISKSTATS_SORT_ASCEND && order != DISKSTATS_SORT_DESCEND)
+ return NULL;
+ if (numstacked < 2)
+ return stacks;
+
+ offset = 0;
+ p = stacks[0]->head;
+ for (;;) {
+ if (p->item == sortitem)
+ break;
+ ++offset;
+ if (p->item >= DISKSTATS_logical_end)
+ return NULL;
+ ++p;
+ }
+ errno = 0;
+
+ parms.offset = offset;
+ parms.order = order;
+
+ qsort_r(stacks, numstacked, sizeof(void *), (QSR_t)Item_table[p->item].sortfunc, &parms);
+ return stacks;
+} // end: procps_diskstats_sort
+
+
+// --- special debugging function(s) ------------------------------------------
+/*
+ * The following isn't part of the normal programming interface. Rather,
+ * it exists to validate result types referenced in application programs.
+ *
+ * It's used only when:
+ * 1) the 'XTRA_PROCPS_DEBUG' has been defined, or
+ * 2) an #include of 'xtra-procps-debug.h' is used
+ */
+
+PROCPS_EXPORT struct diskstats_result *xtra_diskstats_get (
+ struct diskstats_info *info,
+ const char *name,
+ enum diskstats_item actual_enum,
+ const char *typestr,
+ const char *file,
+ int lineno)
+{
+ struct diskstats_result *r = procps_diskstats_get(info, name, actual_enum);
+
+ if (actual_enum < 0 || actual_enum >= DISKSTATS_logical_end) {
+ fprintf(stderr, "%s line %d: invalid item = %d, type = %s\n"
+ , file, lineno, actual_enum, typestr);
+ }
+ if (r) {
+ char *str = Item_table[r->item].type2str;
+ if (str[0]
+ && (strcmp(typestr, str)))
+ fprintf(stderr, "%s line %d: was %s, expected %s\n", file, lineno, typestr, str);
+ }
+ return r;
+} // end: xtra_diskstats_get_
+
+
+PROCPS_EXPORT struct diskstats_result *xtra_diskstats_val (
+ int relative_enum,
+ const char *typestr,
+ const struct diskstats_stack *stack,
+ struct diskstats_info *info,
+ const char *file,
+ int lineno)
+{
+ char *str;
+ int i;
+
+ for (i = 0; stack->head[i].item < DISKSTATS_logical_end; i++)
+ ;
+ if (relative_enum < 0 || relative_enum >= i) {
+ fprintf(stderr, "%s line %d: invalid relative_enum = %d, valid range = 0-%d\n"
+ , file, lineno, relative_enum, i-1);
+ return NULL;
+ }
+ str = Item_table[stack->head[relative_enum].item].type2str;
+ if (str[0]
+ && (strcmp(typestr, str))) {
+ fprintf(stderr, "%s line %d: was %s, expected %s\n", file, lineno, typestr, str);
+ }
+ return &stack->head[relative_enum];
+ (void)info;
+} // end: xtra_diskstats_val
diff --git a/library/escape.c b/library/escape.c
new file mode 100644
index 0000000..f988672
--- /dev/null
+++ b/library/escape.c
@@ -0,0 +1,157 @@
+/*
+ * escape.c - printing handling
+ *
+ * Copyright © 2011-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2016-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 1998-2005 Albert Cahalan
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <limits.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "escape.h"
+#include "readproc.h"
+#include "nls.h"
+
+#define SECURE_ESCAPE_ARGS(dst, bytes) do { \
+ if ((bytes) <= 0) return 0; \
+ *(dst) = '\0'; \
+ if ((bytes) >= INT_MAX) return 0; \
+} while (0)
+
+static const char UTF_tab[] = {
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x00 - 0x0F
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x10 - 0x1F
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x20 - 0x2F
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x30 - 0x3F
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x40 - 0x4F
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x50 - 0x5F
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x60 - 0x6F
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x70 - 0x7F
+ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 0x80 - 0x8F
+ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 0x90 - 0x9F
+ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 0xA0 - 0xAF
+ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 0xB0 - 0xBF
+ -1,-1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // 0xC0 - 0xCF
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // 0xD0 - 0xDF
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, // 0xE0 - 0xEF
+ 4, 4, 4, 4, 4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 0xF0 - 0xFF
+};
+
+static const unsigned char ESC_tab[] = {
+ "@..............................." // 0x00 - 0x1F
+ "||||||||||||||||||||||||||||||||" // 0x20 - 0x3F
+ "||||||||||||||||||||||||||||||||" // 0x40 - 0x5f
+ "|||||||||||||||||||||||||||||||." // 0x60 - 0x7F
+ "????????????????????????????????" // 0x80 - 0x9F
+ "????????????????????????????????" // 0xA0 - 0xBF
+ "????????????????????????????????" // 0xC0 - 0xDF
+ "????????????????????????????????" // 0xE0 - 0xFF
+};
+
+static inline void esc_all (unsigned char *str) {
+ unsigned char c;
+
+ // if bad locale/corrupt str, replace non-printing stuff
+ while (*str) {
+ if ((c = ESC_tab[*str]) != '|')
+ *str = c;
+ ++str;
+ }
+}
+
+static inline void esc_ctl (unsigned char *str, int len) {
+ #define setQ { *str = '?'; n = 1; goto next_up; }
+ int i, n, x;
+
+ for (i = 0; i < len; ) {
+ n = UTF_tab[*str];
+ /* even with a proper locale, strings might be corrupt or we
+ might encounter one of those 32 unicode multibyte control
+ characters which begin at U+0080 (0xc280) */
+ if (n < 0 || i + n > len
+ || (*str == 0xc2 && str[1] >= 0x80 && str[1] <= 0x9f)) {
+ setQ
+ }
+ /* let's validate those utf-8 continuation bytes too, all of
+ which must take the binary form of 10xxxxxx */
+ for (x = 1; x < n; x++) {
+ if (str[x] < 0x80 || str[x] > 0xbf) {
+ setQ
+ }
+ }
+ // and eliminate those non-printing control characters
+ if (*str < 0x20 || *str == 0x7f)
+ *str = '?';
+next_up:
+ str += n;
+ i += n;
+ }
+ #undef setQ
+}
+
+int escape_str (char *dst, const char *src, int bufsize) {
+ static __thread int utf_sw = 0;
+ int n;
+
+ if (utf_sw == 0) {
+ char *enc = nl_langinfo(CODESET);
+ utf_sw = enc && strcasecmp(enc, "UTF-8") == 0 ? 1 : -1;
+ }
+ SECURE_ESCAPE_ARGS(dst, bufsize);
+ n = snprintf(dst, bufsize, "%s", src);
+ if (n < 0) {
+ *dst = '\0';
+ return 0;
+ }
+ if (n >= bufsize) n = bufsize-1;
+ if (utf_sw < 0)
+ esc_all((unsigned char *)dst);
+ else
+ esc_ctl((unsigned char *)dst, n);
+ return n;
+}
+
+int escape_command (char *outbuf, const proc_t *pp, int bytes, unsigned flags) {
+ int overhead = 0;
+ int end = 0;
+
+ if (flags & ESC_BRACKETS)
+ overhead += 2;
+ if (flags & ESC_DEFUNCT) {
+ if (pp->state == 'Z') overhead += 10; // chars in " <defunct>"
+ else flags &= ~ESC_DEFUNCT;
+ }
+ if (overhead + 1 >= bytes) {
+ // if no room for even one byte of the command name
+ outbuf[0] = '\0';
+ return 0;
+ }
+ if (flags & ESC_BRACKETS)
+ outbuf[end++] = '[';
+ end += escape_str(outbuf+end, pp->cmd, bytes-overhead);
+ // we want "[foo] <defunct>", not "[foo <defunct>]"
+ if (flags & ESC_BRACKETS)
+ outbuf[end++] = ']';
+ if (flags & ESC_DEFUNCT) {
+ memcpy(outbuf+end, " <defunct>", 10);
+ end += 10;
+ }
+ outbuf[end] = '\0';
+ return end; // bytes, not including the NUL
+}
diff --git a/library/include/devname.h b/library/include/devname.h
new file mode 100644
index 0000000..467cd29
--- /dev/null
+++ b/library/include/devname.h
@@ -0,0 +1,10 @@
+#ifndef PROC_DEVNAME_H
+#define PROC_DEVNAME_H
+
+#define ABBREV_DEV 1 /* remove /dev/ */
+#define ABBREV_TTY 2 /* remove tty */
+#define ABBREV_PTS 4 /* remove pts/ */
+
+unsigned dev_to_tty(char *__restrict ret, unsigned chop, dev_t dev_t_dev, int pid, unsigned int flags);
+
+#endif
diff --git a/library/include/diskstats.h b/library/include/diskstats.h
new file mode 100644
index 0000000..d5a4b1f
--- /dev/null
+++ b/library/include/diskstats.h
@@ -0,0 +1,135 @@
+/*
+ * diskstats.h - disk I/O related declarations for libproc2
+ *
+ * Copyright © 2015-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2015-2023 Craig Small <csmall@dropbear.xyz>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+#ifndef PROCPS_DISKSTATS_H
+#define PROCPS_DISKSTATS_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum diskstats_item {
+ DISKSTATS_noop, // ( never altered )
+ DISKSTATS_extra, // ( reset to zero )
+ // returns origin, see proc(5)
+ // ------- -------------------
+ DISKSTATS_NAME, // str /proc/diskstats
+ DISKSTATS_TYPE, // s_int "
+ DISKSTATS_MAJOR, // s_int "
+ DISKSTATS_MINOR, // s_int "
+
+ DISKSTATS_READS, // ul_int "
+ DISKSTATS_READS_MERGED, // ul_int "
+ DISKSTATS_READ_SECTORS, // ul_int "
+ DISKSTATS_READ_TIME, // ul_int "
+ DISKSTATS_WRITES, // ul_int "
+ DISKSTATS_WRITES_MERGED, // ul_int "
+ DISKSTATS_WRITE_SECTORS, // ul_int "
+ DISKSTATS_WRITE_TIME, // ul_int "
+ DISKSTATS_IO_TIME, // ul_int "
+ DISKSTATS_WEIGHTED_TIME, // ul_int "
+
+ DISKSTATS_IO_INPROGRESS, // s_int "
+
+ DISKSTATS_DELTA_READS, // s_int derived from above
+ DISKSTATS_DELTA_READS_MERGED, // s_int "
+ DISKSTATS_DELTA_READ_SECTORS, // s_int "
+ DISKSTATS_DELTA_READ_TIME, // s_int "
+ DISKSTATS_DELTA_WRITES, // s_int "
+ DISKSTATS_DELTA_WRITES_MERGED, // s_int "
+ DISKSTATS_DELTA_WRITE_SECTORS, // s_int "
+ DISKSTATS_DELTA_WRITE_TIME, // s_int "
+ DISKSTATS_DELTA_IO_TIME, // s_int "
+ DISKSTATS_DELTA_WEIGHTED_TIME // s_int "
+};
+
+enum diskstats_sort_order {
+ DISKSTATS_SORT_ASCEND = +1,
+ DISKSTATS_SORT_DESCEND = -1
+};
+
+
+struct diskstats_result {
+ enum diskstats_item item;
+ union {
+ signed int s_int;
+ unsigned long ul_int;
+ char *str;
+ } result;
+};
+
+struct diskstats_stack {
+ struct diskstats_result *head;
+};
+
+struct diskstats_reaped {
+ int total;
+ struct diskstats_stack **stacks;
+};
+
+struct diskstats_info;
+
+
+#define DISKSTATS_TYPE_DISK -11111
+#define DISKSTATS_TYPE_PARTITION -22222
+
+#define DISKSTATS_GET( info, name, actual_enum, type ) ( { \
+ struct diskstats_result *r = procps_diskstats_get( info, name, actual_enum ); \
+ r ? r->result . type : 0; } )
+
+#define DISKSTATS_VAL( relative_enum, type, stack, info ) \
+ stack -> head [ relative_enum ] . result . type
+
+
+int procps_diskstats_new (struct diskstats_info **info);
+int procps_diskstats_ref (struct diskstats_info *info);
+int procps_diskstats_unref (struct diskstats_info **info);
+
+struct diskstats_result *procps_diskstats_get (
+ struct diskstats_info *info,
+ const char *name,
+ enum diskstats_item item);
+
+struct diskstats_reaped *procps_diskstats_reap (
+ struct diskstats_info *info,
+ enum diskstats_item *items,
+ int numitems);
+
+struct diskstats_stack *procps_diskstats_select (
+ struct diskstats_info *info,
+ const char *name,
+ enum diskstats_item *items,
+ int numitems);
+
+struct diskstats_stack **procps_diskstats_sort (
+ struct diskstats_info *info,
+ struct diskstats_stack *stacks[],
+ int numstacked,
+ enum diskstats_item sortitem,
+ enum diskstats_sort_order order);
+
+
+#ifdef XTRA_PROCPS_DEBUG
+# include "xtra-procps-debug.h"
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/library/include/escape.h b/library/include/escape.h
new file mode 100644
index 0000000..1f0b0f9
--- /dev/null
+++ b/library/include/escape.h
@@ -0,0 +1,35 @@
+/*
+ * escape.h - printing handling
+ *
+ * Copyright © 2011-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2016-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 1998-2005 Albert Cahalan
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef PROCPS_PROC_ESCAPE_H
+#define PROCPS_PROC_ESCAPE_H
+
+#include "readproc.h"
+
+#define ESC_BRACKETS 0x2 // if using cmd, put '[' and ']' around it
+#define ESC_DEFUNCT 0x4 // mark zombies with " <defunct>"
+
+int escape_command (char *outbuf, const proc_t *pp, int bytes, unsigned flags);
+
+int escape_str (char *dst, const char *src, int bufsize);
+
+#endif
diff --git a/library/include/meminfo.h b/library/include/meminfo.h
new file mode 100644
index 0000000..edca8d2
--- /dev/null
+++ b/library/include/meminfo.h
@@ -0,0 +1,216 @@
+/*
+ * meminfo.h - memory related declarations for libproc2
+ *
+ * Copyright © 2015-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2015-2023 Craig Small <csmall@dropbear.xyz>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef PROCPS_MEMINFO_H
+#define PROCPS_MEMINFO_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum meminfo_item {
+ MEMINFO_noop, // ( never altered )
+ MEMINFO_extra, // ( reset to zero )
+ /*
+ note: all of the following values are expressed as KiB
+ */
+ // returns origin, see proc(5)
+ // ------- -------------------
+ MEMINFO_MEM_ACTIVE, // ul_int /proc/meminfo
+ MEMINFO_MEM_ACTIVE_ANON, // ul_int "
+ MEMINFO_MEM_ACTIVE_FILE, // ul_int "
+ MEMINFO_MEM_ANON, // ul_int "
+ MEMINFO_MEM_AVAILABLE, // ul_int "
+ MEMINFO_MEM_BOUNCE, // ul_int "
+ MEMINFO_MEM_BUFFERS, // ul_int "
+ MEMINFO_MEM_CACHED, // ul_int "
+ MEMINFO_MEM_CACHED_ALL, // ul_int derived from MEM_CACHED + MEM_SLAB_RECLAIM
+ MEMINFO_MEM_CMA_FREE, // ul_int /proc/meminfo
+ MEMINFO_MEM_CMA_TOTAL, // ul_int "
+ MEMINFO_MEM_COMMITTED_AS, // ul_int "
+ MEMINFO_MEM_COMMIT_LIMIT, // ul_int "
+ MEMINFO_MEM_DIRECTMAP_1G, // ul_int "
+ MEMINFO_MEM_DIRECTMAP_2M, // ul_int "
+ MEMINFO_MEM_DIRECTMAP_4K, // ul_int "
+ MEMINFO_MEM_DIRECTMAP_4M, // ul_int "
+ MEMINFO_MEM_DIRTY, // ul_int "
+ MEMINFO_MEM_FILE_HUGEPAGES, // ul_int "
+ MEMINFO_MEM_FILE_PMDMAPPED, // ul_int "
+ MEMINFO_MEM_FREE, // ul_int "
+ MEMINFO_MEM_HARD_CORRUPTED, // ul_int "
+ MEMINFO_MEM_HIGH_FREE, // ul_int "
+ MEMINFO_MEM_HIGH_TOTAL, // ul_int "
+ MEMINFO_MEM_HIGH_USED, // ul_int derived from MEM_HIGH_TOTAL - MEM_HIGH_FREE
+ MEMINFO_MEM_HUGETBL, // ul_int /proc/meminfo
+ MEMINFO_MEM_HUGE_ANON, // ul_int "
+ MEMINFO_MEM_HUGE_FREE, // ul_int "
+ MEMINFO_MEM_HUGE_RSVD, // ul_int "
+ MEMINFO_MEM_HUGE_SIZE, // ul_int "
+ MEMINFO_MEM_HUGE_SURPLUS, // ul_int "
+ MEMINFO_MEM_HUGE_TOTAL, // ul_int "
+ MEMINFO_MEM_INACTIVE, // ul_int "
+ MEMINFO_MEM_INACTIVE_ANON, // ul_int "
+ MEMINFO_MEM_INACTIVE_FILE, // ul_int "
+ MEMINFO_MEM_KERNEL_RECLAIM, // ul_int "
+ MEMINFO_MEM_KERNEL_STACK, // ul_int "
+ MEMINFO_MEM_LOCKED, // ul_int "
+ MEMINFO_MEM_LOW_FREE, // ul_int "
+ MEMINFO_MEM_LOW_TOTAL, // ul_int "
+ MEMINFO_MEM_LOW_USED, // ul_int derived from MEM_LOW_TOTAL - MEM_LOW_FREE
+ MEMINFO_MEM_MAPPED, // ul_int /proc/meminfo
+ MEMINFO_MEM_MAP_COPY, // ul_int "
+ MEMINFO_MEM_NFS_UNSTABLE, // ul_int "
+ MEMINFO_MEM_PAGE_TABLES, // ul_int "
+ MEMINFO_MEM_PER_CPU, // ul_int "
+ MEMINFO_MEM_SHADOWCALLSTACK, // ul_int "
+ MEMINFO_MEM_SHARED, // ul_int "
+ MEMINFO_MEM_SHMEM_HUGE, // ul_int "
+ MEMINFO_MEM_SHMEM_HUGE_MAP, // ul_int "
+ MEMINFO_MEM_SLAB, // ul_int "
+ MEMINFO_MEM_SLAB_RECLAIM, // ul_int "
+ MEMINFO_MEM_SLAB_UNRECLAIM, // ul_int "
+ MEMINFO_MEM_TOTAL, // ul_int "
+ MEMINFO_MEM_UNEVICTABLE, // ul_int "
+ MEMINFO_MEM_USED, // ul_int derived from MEM_TOTAL - MEM_AVAILABLE
+ MEMINFO_MEM_VM_ALLOC_CHUNK, // ul_int /proc/meminfo
+ MEMINFO_MEM_VM_ALLOC_TOTAL, // ul_int "
+ MEMINFO_MEM_VM_ALLOC_USED, // ul_int "
+ MEMINFO_MEM_WRITEBACK, // ul_int "
+ MEMINFO_MEM_WRITEBACK_TMP, // ul_int "
+
+ MEMINFO_DELTA_ACTIVE, // s_int derived from above
+ MEMINFO_DELTA_ACTIVE_ANON, // s_int "
+ MEMINFO_DELTA_ACTIVE_FILE, // s_int "
+ MEMINFO_DELTA_ANON, // s_int "
+ MEMINFO_DELTA_AVAILABLE, // s_int "
+ MEMINFO_DELTA_BOUNCE, // s_int "
+ MEMINFO_DELTA_BUFFERS, // s_int "
+ MEMINFO_DELTA_CACHED, // s_int "
+ MEMINFO_DELTA_CACHED_ALL, // s_int "
+ MEMINFO_DELTA_CMA_FREE, // s_int "
+ MEMINFO_DELTA_CMA_TOTAL, // s_int "
+ MEMINFO_DELTA_COMMITTED_AS, // s_int "
+ MEMINFO_DELTA_COMMIT_LIMIT, // s_int "
+ MEMINFO_DELTA_DIRECTMAP_1G, // s_int "
+ MEMINFO_DELTA_DIRECTMAP_2M, // s_int "
+ MEMINFO_DELTA_DIRECTMAP_4K, // s_int "
+ MEMINFO_DELTA_DIRECTMAP_4M, // s_int "
+ MEMINFO_DELTA_DIRTY, // s_int "
+ MEMINFO_DELTA_FILE_HUGEPAGES, // s_int "
+ MEMINFO_DELTA_FILE_PMDMAPPED, // s_int "
+ MEMINFO_DELTA_FREE, // s_int "
+ MEMINFO_DELTA_HARD_CORRUPTED, // s_int "
+ MEMINFO_DELTA_HIGH_FREE, // s_int "
+ MEMINFO_DELTA_HIGH_TOTAL, // s_int "
+ MEMINFO_DELTA_HIGH_USED, // s_int "
+ MEMINFO_DELTA_HUGETBL, // s_int "
+ MEMINFO_DELTA_HUGE_ANON, // s_int "
+ MEMINFO_DELTA_HUGE_FREE, // s_int "
+ MEMINFO_DELTA_HUGE_RSVD, // s_int "
+ MEMINFO_DELTA_HUGE_SIZE, // s_int "
+ MEMINFO_DELTA_HUGE_SURPLUS, // s_int "
+ MEMINFO_DELTA_HUGE_TOTAL, // s_int "
+ MEMINFO_DELTA_INACTIVE, // s_int "
+ MEMINFO_DELTA_INACTIVE_ANON, // s_int "
+ MEMINFO_DELTA_INACTIVE_FILE, // s_int "
+ MEMINFO_DELTA_KERNEL_RECLAIM, // s_int "
+ MEMINFO_DELTA_KERNEL_STACK, // s_int "
+ MEMINFO_DELTA_LOCKED, // s_int "
+ MEMINFO_DELTA_LOW_FREE, // s_int "
+ MEMINFO_DELTA_LOW_TOTAL, // s_int "
+ MEMINFO_DELTA_LOW_USED, // s_int "
+ MEMINFO_DELTA_MAPPED, // s_int "
+ MEMINFO_DELTA_MAP_COPY, // s_int "
+ MEMINFO_DELTA_NFS_UNSTABLE, // s_int "
+ MEMINFO_DELTA_PAGE_TABLES, // s_int "
+ MEMINFO_DELTA_PER_CPU, // s_int "
+ MEMINFO_DELTA_SHADOWCALLSTACK, // s_int "
+ MEMINFO_DELTA_SHARED, // s_int "
+ MEMINFO_DELTA_SHMEM_HUGE, // s_int "
+ MEMINFO_DELTA_SHMEM_HUGE_MAP, // s_int "
+ MEMINFO_DELTA_SLAB, // s_int "
+ MEMINFO_DELTA_SLAB_RECLAIM, // s_int "
+ MEMINFO_DELTA_SLAB_UNRECLAIM, // s_int "
+ MEMINFO_DELTA_TOTAL, // s_int "
+ MEMINFO_DELTA_UNEVICTABLE, // s_int "
+ MEMINFO_DELTA_USED, // s_int "
+ MEMINFO_DELTA_VM_ALLOC_CHUNK, // s_int "
+ MEMINFO_DELTA_VM_ALLOC_TOTAL, // s_int "
+ MEMINFO_DELTA_VM_ALLOC_USED, // s_int "
+ MEMINFO_DELTA_WRITEBACK, // s_int "
+ MEMINFO_DELTA_WRITEBACK_TMP, // s_int "
+
+ MEMINFO_SWAP_CACHED, // ul_int /proc/meminfo
+ MEMINFO_SWAP_FREE, // ul_int "
+ MEMINFO_SWAP_TOTAL, // ul_int "
+ MEMINFO_SWAP_USED, // ul_int derived from SWAP_TOTAL - SWAP_FREE
+
+ MEMINFO_SWAP_DELTA_CACHED, // s_int derived from above
+ MEMINFO_SWAP_DELTA_FREE, // s_int "
+ MEMINFO_SWAP_DELTA_TOTAL, // s_int "
+ MEMINFO_SWAP_DELTA_USED // s_int "
+};
+
+
+struct meminfo_result {
+ enum meminfo_item item;
+ union {
+ signed int s_int;
+ unsigned long ul_int;
+ } result;
+};
+
+struct meminfo_stack {
+ struct meminfo_result *head;
+};
+
+struct meminfo_info;
+
+
+#define MEMINFO_GET( info, actual_enum, type ) ( { \
+ struct meminfo_result *r = procps_meminfo_get( info, actual_enum ); \
+ r ? r->result . type : 0; } )
+
+#define MEMINFO_VAL( relative_enum, type, stack, info ) \
+ stack -> head [ relative_enum ] . result . type
+
+
+int procps_meminfo_new (struct meminfo_info **info);
+int procps_meminfo_ref (struct meminfo_info *info);
+int procps_meminfo_unref (struct meminfo_info **info);
+
+struct meminfo_result *procps_meminfo_get (
+ struct meminfo_info *info,
+ enum meminfo_item item);
+
+struct meminfo_stack *procps_meminfo_select (
+ struct meminfo_info *info,
+ enum meminfo_item *items,
+ int numitems);
+
+
+#ifdef XTRA_PROCPS_DEBUG
+# include "xtra-procps-debug.h"
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/library/include/misc.h b/library/include/misc.h
new file mode 100644
index 0000000..bbfa5e2
--- /dev/null
+++ b/library/include/misc.h
@@ -0,0 +1,90 @@
+/*
+ * misc.h - miscellaneous declarations for libproc2
+ *
+ * Copyright © 2015-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2021-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 1998-2003 Albert Cahalan
+ * Copyright © 1992-1998 Michael K. Johnson <johnsonm@redhat.com>
+ * Copyright © 1996 Charles Blake <cblake@bbn.com>
+ * Copyright © 1993 J. Cowley
+ * Copyright © 1995 Martin Schulze <joey@infodrom.north.de>
+ * Copyright © ???? Larry Greenfield <greenfie@gauss.rutgers.edu>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef PROC_MISC_H
+#define PROC_MISC_H
+#include <sys/types.h>
+#include <dirent.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+// //////////////////////////////////////////////////////////////////
+// Platform Particulars /////////////////////////////////////////////
+
+long procps_cpu_count (void);
+long procps_hertz_get (void);
+unsigned int procps_pid_length (void);
+
+ // Convenience macros for composing/decomposing version codes
+#define LINUX_VERSION(x,y,z) (0x10000*((x)&0x7fff) + 0x100*((y)&0xff) + ((z)&0xff))
+#define LINUX_VERSION_MAJOR(x) (((x)>>16) & 0xFF)
+#define LINUX_VERSION_MINOR(x) (((x)>> 8) & 0xFF)
+#define LINUX_VERSION_PATCH(x) ( (x) & 0xFF)
+
+int procps_linux_version(void);
+
+
+// //////////////////////////////////////////////////////////////////
+// Runtime Particulars //////////////////////////////////////////////
+
+int procps_loadavg (double *av1, double *av5, double *av15);
+int procps_uptime (double *uptime_secs, double *idle_secs);
+char *procps_uptime_sprint (void);
+char *procps_uptime_sprint_short (void);
+
+
+// //////////////////////////////////////////////////////////////////
+// Namespace Particulars ////////////////////////////////////////////
+
+enum namespace_type {
+ PROCPS_NS_CGROUP,
+ PROCPS_NS_IPC,
+ PROCPS_NS_MNT,
+ PROCPS_NS_NET,
+ PROCPS_NS_PID,
+ PROCPS_NS_TIME,
+ PROCPS_NS_USER,
+ PROCPS_NS_UTS,
+ PROCPS_NS_COUNT // total namespaces (fencepost)
+};
+
+struct procps_ns {
+ unsigned long ns[PROCPS_NS_COUNT];
+};
+
+const char *procps_ns_get_name (const int id);
+int procps_ns_get_id (const char *name);
+int procps_ns_read_pid (const int pid, struct procps_ns *nsp);
+
+
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/library/include/numa.h b/library/include/numa.h
new file mode 100644
index 0000000..5a4368b
--- /dev/null
+++ b/library/include/numa.h
@@ -0,0 +1,30 @@
+/*
+ * NUMA node support for <PIDS> & <STAT> interfaces
+ *
+ * Copyright © 2017-2023 Jim Warner <james.warner@comcast.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef PROCPS_NUMA_H
+#define PROCPS_NUMA_H
+
+void numa_init (void);
+void numa_uninit (void);
+
+extern int (*numa_max_node) (void);
+extern int (*numa_node_of_cpu) (int);
+
+#endif
diff --git a/library/include/pids.h b/library/include/pids.h
new file mode 100644
index 0000000..8245e36
--- /dev/null
+++ b/library/include/pids.h
@@ -0,0 +1,287 @@
+/*
+ * pids.h - process related declarations for libproc2
+ *
+ * Copyright © 2015-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2015-2023 Craig Small <csmall@dropbear.xyz>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef PROCPS_PIDS_H
+#define PROCPS_PIDS_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum pids_item {
+ PIDS_noop, // ( never altered )
+ PIDS_extra, // ( reset to zero )
+ // returns origin, see proc(5)
+ // ------- -------------------
+ PIDS_ADDR_CODE_END, // ul_int stat: end_code
+ PIDS_ADDR_CODE_START, // ul_int stat: start_code
+ PIDS_ADDR_CURR_EIP, // ul_int stat: eip
+ PIDS_ADDR_CURR_ESP, // ul_int stat: esp
+ PIDS_ADDR_STACK_START, // ul_int stat: start_stack
+ PIDS_AUTOGRP_ID, // s_int autogroup
+ PIDS_AUTOGRP_NICE, // s_int autogroup
+ PIDS_CGNAME, // str derived from CGROUP ':name='
+ PIDS_CGROUP, // str cgroup
+ PIDS_CGROUP_V, // strv cgroup, as *str[]
+ PIDS_CMD, // str stat: comm or status: Name
+ PIDS_CMDLINE, // str cmdline
+ PIDS_CMDLINE_V, // strv cmdline, as *str[]
+ PIDS_ENVIRON, // str environ
+ PIDS_ENVIRON_V, // strv environ, as *str[]
+ PIDS_EXE, // str exe
+ PIDS_EXIT_SIGNAL, // s_int stat: exit_signal
+ PIDS_FLAGS, // ul_int stat: flags
+ PIDS_FLT_MAJ, // ul_int stat: maj_flt
+ PIDS_FLT_MAJ_C, // ul_int derived from stat: maj_flt + cmaj_flt
+ PIDS_FLT_MAJ_DELTA, // s_int derived from FLT_MAJ
+ PIDS_FLT_MIN, // ul_int stat: min_flt
+ PIDS_FLT_MIN_C, // ul_int derived from stat: min_flt + cmin_flt
+ PIDS_FLT_MIN_DELTA, // s_int derived from FLT_MIN
+ PIDS_ID_EGID, // u_int status: Gid
+ PIDS_ID_EGROUP, // str derived from EGID, see getgrgid(3)
+ PIDS_ID_EUID, // u_int status: Uid
+ PIDS_ID_EUSER, // str derived from EUID, see getpwuid(3)
+ PIDS_ID_FGID, // u_int status: Gid
+ PIDS_ID_FGROUP, // str derived from FGID, see getgrgid(3)
+ PIDS_ID_FUID, // u_int status: Uid
+ PIDS_ID_FUSER, // str derived from FUID, see getpwuid(3)
+ PIDS_ID_LOGIN, // s_int loginuid
+ PIDS_ID_PGRP, // s_int stat: pgrp
+ PIDS_ID_PID, // s_int from /proc/<pid>
+ PIDS_ID_PPID, // s_int stat: ppid or status: PPid
+ PIDS_ID_RGID, // u_int status: Gid
+ PIDS_ID_RGROUP, // str derived from RGID, see getgrgid(3)
+ PIDS_ID_RUID, // u_int status: Uid
+ PIDS_ID_RUSER, // str derived from RUID, see getpwuid(3)
+ PIDS_ID_SESSION, // s_int stat: sid
+ PIDS_ID_SGID, // u_int status: Gid
+ PIDS_ID_SGROUP, // str derived from SGID, see getgrgid(3)
+ PIDS_ID_SUID, // u_int status: Uid
+ PIDS_ID_SUSER, // str derived from SUID, see getpwuid(3)
+ PIDS_ID_TGID, // s_int status: Tgid
+ PIDS_ID_TID, // s_int from /proc/<pid>/task/<tid>
+ PIDS_ID_TPGID, // s_int stat: tty_pgrp
+ PIDS_IO_READ_BYTES, // ul_int io: read_bytes
+ PIDS_IO_READ_CHARS, // ul_int io: rchar
+ PIDS_IO_READ_OPS, // ul_int io: syscr
+ PIDS_IO_WRITE_BYTES, // ul_int io: write_bytes
+ PIDS_IO_WRITE_CBYTES, // ul_int io: cancelled_write_bytes
+ PIDS_IO_WRITE_CHARS, // ul_int io: wchar
+ PIDS_IO_WRITE_OPS, // ul_int io: syscw
+ PIDS_LXCNAME, // str derived from CGROUP 'lxc.payload'
+ PIDS_MEM_CODE, // ul_int derived from MEM_CODE_PGS, as KiB
+ PIDS_MEM_CODE_PGS, // ul_int statm: trs
+ PIDS_MEM_DATA, // ul_int derived from MEM_DATA_PGS, as KiB
+ PIDS_MEM_DATA_PGS, // ul_int statm: drs
+ PIDS_MEM_RES, // ul_int derived from MEM_RES_PGS, as KiB
+ PIDS_MEM_RES_PGS, // ul_int statm: resident
+ PIDS_MEM_SHR, // ul_int derived from MEM_SHR_PGS, as KiB
+ PIDS_MEM_SHR_PGS, // ul_int statm: shared
+ PIDS_MEM_VIRT, // ul_int derived from MEM_VIRT_PGS, as KiB
+ PIDS_MEM_VIRT_PGS, // ul_int statm: size
+ PIDS_NICE, // s_int stat: nice
+ PIDS_NLWP, // s_int stat: num_threads or status: Threads
+ PIDS_NS_CGROUP, // ul_int ns/
+ PIDS_NS_IPC, // ul_int "
+ PIDS_NS_MNT, // ul_int "
+ PIDS_NS_NET, // ul_int "
+ PIDS_NS_PID, // ul_int "
+ PIDS_NS_TIME, // ul_int "
+ PIDS_NS_USER, // ul_int "
+ PIDS_NS_UTS, // ul_int "
+ PIDS_OOM_ADJ, // s_int oom_score_adj
+ PIDS_OOM_SCORE, // s_int oom_score
+ PIDS_PRIORITY, // s_int stat: priority
+ PIDS_PRIORITY_RT, // s_int stat: rt_priority
+ PIDS_PROCESSOR, // s_int stat: task_cpu
+ PIDS_PROCESSOR_NODE, // s_int derived from PROCESSOR, see numa(3)
+ PIDS_RSS, // ul_int stat: rss
+ PIDS_RSS_RLIM, // ul_int stat: rsslim
+ PIDS_SCHED_CLASS, // s_int stat: policy
+ PIDS_SD_MACH, // str derived from PID/TID, see sd-login(3)
+ PIDS_SD_OUID, // str "
+ PIDS_SD_SEAT, // str "
+ PIDS_SD_SESS, // str "
+ PIDS_SD_SLICE, // str "
+ PIDS_SD_UNIT, // str "
+ PIDS_SD_UUNIT, // str "
+ PIDS_SIGBLOCKED, // str status: SigBlk
+ PIDS_SIGCATCH, // str status: SigCgt
+ PIDS_SIGIGNORE, // str status: SigIgn
+ PIDS_SIGNALS, // str status: ShdPnd
+ PIDS_SIGPENDING, // str status: SigPnd
+ PIDS_SMAP_ANONYMOUS, // ul_int smaps_rollup: Anonymous
+ PIDS_SMAP_HUGE_ANON, // ul_int smaps_rollup: AnonHugePages
+ PIDS_SMAP_HUGE_FILE, // ul_int smaps_rollup: FilePmdMapped
+ PIDS_SMAP_HUGE_SHMEM, // ul_int smaps_rollup: ShmemPmdMapped
+ PIDS_SMAP_HUGE_TLBPRV, // ul_int smaps_rollup: Private_Hugetlb
+ PIDS_SMAP_HUGE_TLBSHR, // ul_int smaps_rollup: Shared_Hugetlb
+ PIDS_SMAP_LAZY_FREE, // ul_int smaps_rollup: LazyFree
+ PIDS_SMAP_LOCKED, // ul_int smaps_rollup: Locked
+ PIDS_SMAP_PRV_CLEAN, // ul_int smaps_rollup: Private_Clean
+ PIDS_SMAP_PRV_DIRTY, // ul_int smaps_rollup: Private_Dirty
+ PIDS_SMAP_PRV_TOTAL, // ul_int derived from SMAP_PRV_CLEAN + SMAP_PRV_DIRTY
+ PIDS_SMAP_PSS, // ul_int smaps_rollup: Pss
+ PIDS_SMAP_PSS_ANON, // ul_int smaps_rollup: Pss_Anon
+ PIDS_SMAP_PSS_FILE, // ul_int smaps_rollup: Pss_File
+ PIDS_SMAP_PSS_SHMEM, // ul_int smaps_rollup: Pss_Shmem
+ PIDS_SMAP_REFERENCED, // ul_int smaps_rollup: Referenced
+ PIDS_SMAP_RSS, // ul_int smaps_rollup: Rss
+ PIDS_SMAP_SHR_CLEAN, // ul_int smaps_rollup: Shared_Clean
+ PIDS_SMAP_SHR_DIRTY, // ul_int smaps_rollup: Shared_Dirty
+ PIDS_SMAP_SWAP, // ul_int smaps_rollup: Swap
+ PIDS_SMAP_SWAP_PSS, // ul_int smaps_rollup: SwapPss
+ PIDS_STATE, // s_ch stat: state or status: State
+ PIDS_SUPGIDS, // str status: Groups
+ PIDS_SUPGROUPS, // str derived from SUPGIDS, see getgrgid(3)
+ PIDS_TICS_ALL, // ull_int derived from stat: stime + utime
+ PIDS_TICS_ALL_C, // ull_int derived from stat: stime + utime + cstime + cutime
+ PIDS_TICS_ALL_DELTA, // u_int derived from TICS_ALL
+ PIDS_TICS_BEGAN, // ull_int stat: start_time
+ PIDS_TICS_BLKIO, // ull_int stat: blkio_ticks
+ PIDS_TICS_GUEST, // ull_int stat: gtime
+ PIDS_TICS_GUEST_C, // ull_int derived from stat: gtime + cgtime
+ PIDS_TICS_SYSTEM, // ull_int stat: stime
+ PIDS_TICS_SYSTEM_C, // ull_int derived from stat: stime + cstime
+ PIDS_TICS_USER, // ull_int stat: utime
+ PIDS_TICS_USER_C, // ull_int derived from stat: utime + cutime
+ PIDS_TIME_ALL, // real * derived from stat: (utime + stime) / hertz
+ PIDS_TIME_ALL_C, // real * derived from stat: (utime + stime + cutime + cstime) / hertz
+ PIDS_TIME_ELAPSED, // real * derived from stat: (/proc/uptime - start_time) / hertz
+ PIDS_TIME_START, // real * derived from stat: start_time / hertz
+ PIDS_TTY, // s_int stat: tty_nr
+ PIDS_TTY_NAME, // str derived from TTY
+ PIDS_TTY_NUMBER, // str derived from TTY as str
+ PIDS_UTILIZATION, // real derived from TIME_ALL / TIME_ELAPSED, as percentage
+ PIDS_UTILIZATION_C, // real derived from TIME_ALL_C / TIME_ELAPSED, as percentage
+ PIDS_VM_DATA, // ul_int status: VmData
+ PIDS_VM_EXE, // ul_int status: VmExe
+ PIDS_VM_LIB, // ul_int status: VmLib
+ PIDS_VM_RSS, // ul_int status: VmRSS
+ PIDS_VM_RSS_ANON, // ul_int status: RssAnon
+ PIDS_VM_RSS_FILE, // ul_int status: RssFile
+ PIDS_VM_RSS_LOCKED, // ul_int status: VmLck
+ PIDS_VM_RSS_SHARED, // ul_int status: RssShmem
+ PIDS_VM_SIZE, // ul_int status: VmSize
+ PIDS_VM_STACK, // ul_int status: VmStk
+ PIDS_VM_SWAP, // ul_int status: VmSwap
+ PIDS_VM_USED, // ul_int derived from status: VmRSS + VmSwap
+ PIDS_VSIZE_BYTES, // ul_int stat: vsize
+ PIDS_WCHAN_NAME // str wchan
+};
+ // * while these are all expressed as seconds, each can be
+ // converted into tics/jiffies with no loss of precision
+ // when multiplied by hertz obtained via procps_misc(3).
+enum pids_fetch_type {
+ PIDS_FETCH_TASKS_ONLY,
+ PIDS_FETCH_THREADS_TOO
+};
+
+enum pids_select_type {
+ PIDS_SELECT_PID = 0x10000,
+ PIDS_SELECT_PID_THREADS = 0x10001,
+ PIDS_SELECT_UID = 0x20000,
+ PIDS_SELECT_UID_THREADS = 0x20001
+};
+
+enum pids_sort_order {
+ PIDS_SORT_ASCEND = +1,
+ PIDS_SORT_DESCEND = -1
+};
+
+
+struct pids_result {
+ enum pids_item item;
+ union {
+ signed char s_ch;
+ signed int s_int;
+ unsigned int u_int;
+ unsigned long ul_int;
+ unsigned long long ull_int;
+ char *str;
+ char **strv;
+ double real;
+ } result;
+};
+
+struct pids_stack {
+ struct pids_result *head;
+};
+
+struct pids_counts {
+ int total;
+ int running, sleeping, stopped, zombied, other;
+};
+
+struct pids_fetch {
+ struct pids_counts *counts;
+ struct pids_stack **stacks;
+};
+
+struct pids_info;
+
+
+#define PIDS_VAL( relative_enum, type, stack, info ) \
+ stack -> head [ relative_enum ] . result . type
+
+
+int procps_pids_new (struct pids_info **info, enum pids_item *items, int numitems);
+int procps_pids_ref (struct pids_info *info);
+int procps_pids_unref (struct pids_info **info);
+
+struct pids_stack *fatal_proc_unmounted (
+ struct pids_info *info,
+ int return_self);
+
+struct pids_stack *procps_pids_get (
+ struct pids_info *info,
+ enum pids_fetch_type which);
+
+struct pids_fetch *procps_pids_reap (
+ struct pids_info *info,
+ enum pids_fetch_type which);
+
+int procps_pids_reset (
+ struct pids_info *info,
+ enum pids_item *newitems,
+ int newnumitems);
+
+struct pids_fetch *procps_pids_select (
+ struct pids_info *info,
+ unsigned *these,
+ int numthese,
+ enum pids_select_type which);
+
+struct pids_stack **procps_pids_sort (
+ struct pids_info *info,
+ struct pids_stack *stacks[],
+ int numstacked,
+ enum pids_item sortitem,
+ enum pids_sort_order order);
+
+
+#ifdef XTRA_PROCPS_DEBUG
+# include "xtra-procps-debug.h"
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/library/include/procps-private.h b/library/include/procps-private.h
new file mode 100644
index 0000000..835ea21
--- /dev/null
+++ b/library/include/procps-private.h
@@ -0,0 +1,28 @@
+/*
+ * libprocps - Library to read proc filesystem
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+#ifndef PROCPS_PRIVATE_H
+#define PROCPS_PRIVATE_H
+
+#define PROCPS_EXPORT __attribute__ ((visibility("default")))
+
+#define STRINGIFY_ARG(a) #a
+#define STRINGIFY(a) STRINGIFY_ARG(a)
+
+#define MAXTABLE(t) (int)(sizeof(t) / sizeof(t[0]))
+
+#endif
diff --git a/library/include/pwcache.h b/library/include/pwcache.h
new file mode 100644
index 0000000..524a2af
--- /dev/null
+++ b/library/include/pwcache.h
@@ -0,0 +1,38 @@
+/*
+ * pwcache.c - memory cache passwd file handling
+ *
+ * Copyright © 2011-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2015-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2002 Albert Cahalan
+ *
+ * Older version:
+ * Copyright © 1992-1998 Michael K. Johnson <johnsonm@redhat.com>
+ * Note: most likely none of his code remains
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef PROCPS_PROC_PWCACHE_H
+#define PROCPS_PROC_PWCACHE_H
+
+#include <sys/types.h>
+
+// used in pwcache and in readproc to set size of username or groupname
+#define P_G_SZ 33
+
+char *pwcache_get_user(uid_t uid);
+char *pwcache_get_group(gid_t gid);
+
+#endif
diff --git a/library/include/readproc.h b/library/include/readproc.h
new file mode 100644
index 0000000..33c630e
--- /dev/null
+++ b/library/include/readproc.h
@@ -0,0 +1,303 @@
+/*
+ * readproc - interface to process table
+ *
+ * Copyright © 2002-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2011-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 1998-2010 Albert Cahalan
+ * Copyright © 1998 Michael K. Johnson
+ * Copyright © 1996 Charles L. Blake.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef PROCPS_PROC_READPROC_H
+#define PROCPS_PROC_READPROC_H
+
+#include <sys/types.h>
+#include <dirent.h>
+#include <unistd.h>
+#include "misc.h"
+
+// the following is development only, forcing display of "[ duplicate ENUM ]" strings
+// #define FALSE_THREADS /* set most child string fields to NULL */
+
+
+// This is to help document a transition from pid to tgid/tid caused
+// by the introduction of thread support. It is used in cases where
+// neither tgid nor tid seemed correct. (in other words, FIXME)
+#define XXXID tid
+
+// Basic data structure which holds all information we can get about a process.
+// (unless otherwise specified, fields are read from /proc/#/stat)
+//
+// Most of it comes from task_struct in linux/sched.h
+//
+typedef struct proc_t {
+ int
+ tid, // (special) task id, the POSIX thread ID (see also: tgid)
+ ppid; // stat,status pid of parent process
+ char
+ state, // stat,status single-char code for process state (S=sleeping)
+ pad_1, // n/a padding
+ pad_2, // n/a padding
+ pad_3; // n/a padding
+ unsigned long long
+ utime, // stat user-mode CPU time accumulated by process
+ stime, // stat kernel-mode CPU time accumulated by process
+ cutime, // stat cumulative utime of process and reaped children
+ cstime, // stat cumulative stime of process and reaped children
+ start_time, // stat start time of process -- seconds since system boot
+ blkio_tics, // stat time spent waiting for block IO
+ gtime, // stat guest time of the task in jiffies
+ cgtime; // stat guest time of the task children in jiffies
+ int // next 3 fields are NOT filled in by readproc
+ pcpu, // stat (special) elapsed tics for %CPU usage calculation
+ maj_delta, // stat (special) major page faults since last update
+ min_delta; // stat (special) minor page faults since last update
+ char
+ // Linux 2.1.7x and up have 64 signals. Allow 64, plus '\0' and padding.
+ signal[18], // status mask of pending signals
+ blocked[18], // status mask of blocked signals
+ sigignore[18], // status mask of ignored signals
+ sigcatch[18], // status mask of caught signals
+ _sigpnd[18]; // status mask of PER TASK pending signals
+ unsigned long
+ start_code, // stat address of beginning of code segment
+ end_code, // stat address of end of code segment
+ start_stack, // stat address of the bottom of stack for the process
+ kstk_esp, // stat kernel stack pointer
+ kstk_eip, // stat kernel instruction pointer
+ wchan, // stat (special) address of kernel wait channel proc is sleeping in
+ rss, // stat identical to 'resident'
+ alarm; // stat ?
+ int
+ priority, // stat kernel scheduling priority
+ nice; // stat standard unix nice level of process
+ unsigned long
+ // the next 7 members come from /proc/#/statm
+ size, // statm total virtual memory (as # pages)
+ resident, // statm resident non-swapped memory (as # pages)
+ share, // statm shared (mmap'd) memory (as # pages)
+ trs, // statm text (exe) resident set (as # pages)
+ lrs, // statm library resident set (always 0 w/ 2.6)
+ drs, // statm data+stack resident set (as # pages)
+ dt; // statm dirty pages (always 0 w/ 2.6)
+ unsigned long
+ vm_size, // status equals 'size' (as kb)
+ vm_lock, // status locked pages (as kb)
+ vm_rss, // status equals 'rss' and/or 'resident' (as kb)
+ vm_rss_anon, // status the 'anonymous' portion of vm_rss (as kb)
+ vm_rss_file, // status the 'file-backed' portion of vm_rss (as kb)
+ vm_rss_shared, // status the 'shared' portion of vm_rss (as kb)
+ vm_data, // status data only size (as kb)
+ vm_stack, // status stack only size (as kb)
+ vm_swap, // status based on linux-2.6.34 "swap ents" (as kb)
+ vm_exe, // status equals 'trs' (as kb)
+ vm_lib, // status total, not just used, library pages (as kb)
+ vsize, // stat number of pages of virtual memory ...
+ rss_rlim, // stat resident set size limit?
+ flags, // stat kernel flags for the process
+ min_flt, // stat number of minor page faults since process start
+ maj_flt, // stat number of major page faults since process start
+ cmin_flt, // stat cumulative min_flt of process and child processes
+ cmaj_flt, // stat cumulative maj_flt of process and child processes
+ rchar, // io characters read
+ wchar, // io characters written
+ syscr, // io number of read I/O operations
+ syscw, // io number of write I/O operations
+ read_bytes, // io number of bytes fetched from the storage layer
+ write_bytes, // io number of bytes sent to the storage layer
+ cancelled_write_bytes, // io number of bytes truncating pagecache
+ smap_Rss, // smaps_rollup mapping currently resident in RAM
+ smap_Pss, // " Rss divided by total processes sharing it
+ smap_Pss_Anon, // " proportional share of 'anonymous' memory
+ smap_Pss_File, // " proportional share of 'file' memory
+ smap_Pss_Shmem, // " proportional share of 'shmem' memory
+ smap_Shared_Clean, // " unmodified shared memory
+ smap_Shared_Dirty, // " altered shared memory
+ smap_Private_Clean, // " unmodified private memory
+ smap_Private_Dirty, // " altered private memory
+ smap_Referenced, // " memory marked as referenced/accessed
+ smap_Anonymous, // " memory not belonging to any file
+ smap_LazyFree, // " memory marked by madvise(MADV_FREE)
+ smap_AnonHugePages, // " memory backed by transparent huge pages
+ smap_ShmemPmdMapped, // " shmem/tmpfs memory backed by huge pages
+ smap_FilePmdMapped, // " file memory backed by huge pages
+ smap_Shared_Hugetlb, // " hugetlbfs backed memory *not* counted in Rss/Pss
+ smap_Private_Hugetlb, // " hugetlbfs backed memory *not* counted in Rss/Pss
+ smap_Swap, // " swapped would-be-anonymous memory (includes swapped out shmem)
+ smap_SwapPss, // " the proportional share of 'Swap' (excludes swapped out shmem)
+ smap_Locked; // " memory amount locked to RAM
+ char
+ *environ, // (special) environment as string (/proc/#/environ)
+ *cmdline, // (special) command line as string (/proc/#/cmdline)
+ *cgroup, // (special) cgroup as string (/proc/#/cgroup)
+ *cgname, // (special) name portion of above (if possible)
+ *supgid, // status supplementary gids as comma delimited str
+ *supgrp, // supp grp names as comma delimited str, derived from supgid
+ **environ_v, // (special) environment string vectors (/proc/#/environ)
+ **cmdline_v, // (special) command line string vectors (/proc/#/cmdline)
+ **cgroup_v; // (special) cgroup string vectors (/proc/#/cgroup)
+ char
+ *euser, // stat(),status effective user name
+ *ruser, // status real user name
+ *suser, // status saved user name
+ *fuser, // status filesystem user name
+ *rgroup, // status real group name
+ *egroup, // status effective group name
+ *sgroup, // status saved group name
+ *fgroup, // status filesystem group name
+ *cmd; // stat,status basename of executable file in call to exec(2)
+ int
+ rtprio, // stat real-time priority
+ sched, // stat scheduling class
+ pgrp, // stat process group id
+ session, // stat session id
+ nlwp, // stat,status number of threads, or 0 if no clue
+ tgid, // (special) thread group ID, the POSIX PID (see also: tid)
+ tty; // stat full device number of controlling terminal
+ /* FIXME: int uids & gids should be uid_t or gid_t from pwd.h */
+ uid_t euid; gid_t egid; // stat(),status effective
+ uid_t ruid; gid_t rgid; // status real
+ uid_t suid; gid_t sgid; // status saved
+ uid_t fuid; gid_t fgid; // status fs (used for file access only)
+ int
+ tpgid, // stat terminal process group id
+ exit_signal, // stat might not be SIGCHLD
+ processor; // stat current (or most recent?) CPU
+ int
+ oom_score, // oom_score (badness for OOM killer)
+ oom_adj; // oom_adj (adjustment to OOM score)
+ struct procps_ns ns; // (ns subdir) inode number of namespaces
+ char
+ *sd_mach, // n/a systemd vm/container name
+ *sd_ouid, // n/a systemd session owner uid
+ *sd_seat, // n/a systemd login session seat
+ *sd_sess, // n/a systemd login session id
+ *sd_slice, // n/a systemd slice unit
+ *sd_unit, // n/a systemd system unit id
+ *sd_uunit; // n/a systemd user unit id
+ char
+ *lxcname, // n/a lxc container name
+ *exe; // exe executable path + name
+ int
+ luid, // loginuid user id at login
+ autogrp_id, // autogroup autogroup number (id)
+ autogrp_nice; // autogroup autogroup nice value
+} proc_t;
+
+// PROCTAB: data structure holding the persistent information readproc needs
+// from openproc(). The setup is intentionally similar to the dirent interface
+// and other system table interfaces (utmp+wtmp come to mind).
+
+#define PROCPATHLEN 64 // must hold /proc/2000222000/task/2000222000/cmdline
+
+typedef struct PROCTAB {
+ DIR *procfs;
+// char deBug0[64];
+ DIR *taskdir; // for threads
+// char deBug1[64];
+ pid_t taskdir_user; // for threads
+ int(*finder)(struct PROCTAB *__restrict const, proc_t *__restrict const);
+ proc_t*(*reader)(struct PROCTAB *__restrict const, proc_t *__restrict const);
+ int(*taskfinder)(struct PROCTAB *__restrict const, const proc_t *__restrict const, proc_t *__restrict const, char *__restrict const);
+ proc_t*(*taskreader)(struct PROCTAB *__restrict const, proc_t *__restrict const, char *__restrict const);
+ pid_t *pids; // pids of the procs
+ uid_t *uids; // uids of procs
+ int nuid; // cannot really sentinel-terminate unsigned short[]
+ int i; // generic
+ int hide_kernel; // getenv LIBPROC_HIDE_KERNEL was set
+ unsigned flags;
+ unsigned u; // generic
+ void * vp; // generic
+ char path[PROCPATHLEN]; // must hold /proc/2000222000/task/2000222000/cmdline
+ unsigned pathlen; // length of string in the above (w/o '\0')
+} PROCTAB;
+
+
+// openproc/readproctab:
+//
+// Return PROCTAB* / *proc_t[] or NULL on error ((probably) "/proc" cannot be
+// opened.) By default readproc will consider all processes as valid to parse
+// and return, but not actually fill in the cmdline, environ, and /proc/#/statm
+// derived memory fields.
+//
+// `flags' (a bitwise-or of PROC_* below) modifies the default behavior. The
+// "fill" options will cause more of the proc_t to be filled in. The "filter"
+// options all use the second argument as the pointer to a list of objects:
+// process status', process id's, user id's. The third
+// argument is the length of the list (currently only used for lists of user
+// id's since uid_t supports no convenient termination sentinel.)
+
+#define PROC_FILLMEM 0x00000001 // read statm
+#define PROC_FILLARG 0x00000002 // alloc and fill in `cmdline' vectors
+#define PROC_FILLENV 0x00000004 // alloc and fill in `environ' vectors
+#define PROC_FILLUSR 0x00000008 // resolve user id number -> user name
+#define PROC_FILLGRP 0x00000010 // resolve group id number -> group name
+#define PROC_FILLSTATUS 0x00000020 // read status
+#define PROC_FILLSTAT 0x00000040 // read stat
+#define PROC_FILLCGROUP 0x00000080 // alloc and fill in `cgroup` vectors
+#define PROC_FILLOOM 0x00000100 // fill in proc_t oom_score and oom_adj
+#define PROC_FILLNS 0x00000200 // fill in proc_t namespace information
+#define PROC_FILLSYSTEMD 0x00000400 // fill in proc_t systemd information
+#define PROC_FILL_LXC 0x00000800 // fill in proc_t lxcname, if possible
+#define PROC_FILL_LUID 0x00001000 // fill in proc_t luid (login user id)
+#define PROC_FILL_EXE 0x00002000 // fill in proc_t exe path + pgm name
+#define PROC_FILLIO 0x00004000 // fill in proc_t io information
+#define PROC_FILLSMAPS 0x00008000 // fill in proc_t smaps_rollup stuff
+
+// consider only processes with one of the passed:
+#define PROC_PID 0x00010000 // process id numbers ( 0 terminated )
+#define PROC_UID 0x00020000 // user id numbers ( length needed )
+// Note: the above 2 values must NOT change without also changing pids.h !!!
+
+#define PROC_EDITCGRPCVT 0x00040000 // edit `cgroup' as regular string
+#define PROC_EDITCMDLCVT 0x00080000 // edit `cmdline' as regular string
+#define PROC_EDITENVRCVT 0x00100000 // edit `environ' as regular string
+
+// these three also require the PROC_FILLSTATUS flage
+#define PROC_FILL_OUSERS ( 0x00200000 | PROC_FILLSTATUS ) // obtain other user names
+#define PROC_FILL_OGROUPS ( 0x00400000 | PROC_FILLSTATUS ) // obtain other group names
+#define PROC_FILL_SUPGRP ( 0x00800000 | PROC_FILLSTATUS ) // obtain supplementary group names
+
+// and let's put new flags here ...
+#define PROC_FILLAUTOGRP 0x01000000 // fill in proc_t autogroup stuff
+
+// it helps to give app code a few spare bits
+#define PROC_SPARE_1 0x10000000
+#define PROC_SPARE_2 0x20000000
+#define PROC_SPARE_3 0x40000000
+#define PROC_SPARE_4 0x80000000
+
+// Function definitions
+// Initialize a PROCTAB structure holding needed call-to-call persistent data
+PROCTAB *openproc(unsigned flags, ... /* pid_t *| uid_t *| dev_t *| char *[, int n] */ );
+// Retrieve the next process or task matching the criteria set by the openproc().
+//
+// Note: When NULL is used as the readproc 'p' or readeither 'x'
+// parameter, the library will allocate the necessary proc_t storage.
+//
+// Alternatively, you may provide your own reuseable buffer address
+// in which case that buffer *MUST* be initialized to zero one time
+// only before first use. Thereafter, the library will manage such
+// a passed proc_t, freeing any additional acquired memory associated
+// with the previous process or thread.
+proc_t *readproc(PROCTAB *__restrict const PT, proc_t *__restrict p);
+proc_t *readeither(PROCTAB *__restrict const PT, proc_t *__restrict x);
+int look_up_our_self(void);
+void closeproc(PROCTAB *PT);
+char **vectorize_this_str(const char *src);
+
+#endif
diff --git a/library/include/slabinfo.h b/library/include/slabinfo.h
new file mode 100644
index 0000000..f63ca79
--- /dev/null
+++ b/library/include/slabinfo.h
@@ -0,0 +1,140 @@
+/*
+ * slabinfo.h - slab pools related declarations for libproc2
+ *
+ * Copyright © 2015-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2015-2023 Craig Small <csmall@dropbear.xyz>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef PROCPS_SLABINFO_H
+#define PROCPS_SLABINFO_H
+
+#ifdef __cplusplus
+extern "C "{
+#endif
+
+enum slabinfo_item {
+ SLABINFO_noop, // ( never altered )
+ SLABINFO_extra, // ( reset to zero )
+ // returns origin, see proc(5)
+ // ------- -------------------
+ SLAB_NAME, // str /proc/slabinfo
+ SLAB_NUM_OBJS, // u_int "
+ SLAB_ACTIVE_OBJS, // u_int "
+ SLAB_OBJ_SIZE, // u_int "
+ SLAB_OBJ_PER_SLAB, // u_int "
+ SLAB_NUMS_SLABS, // u_int "
+ SLAB_ACTIVE_SLABS, // u_int "
+ SLAB_PAGES_PER_SLAB, // u_int "
+ SLAB_PERCENT_USED, // u_int derived from ACTIVE_OBJS / NUM_OBJS
+ SLAB_SIZE_TOTAL, // ul_int derived from page size * NUMS_SLABS * PAGES_PER_SLAB
+
+ SLABS_CACHES_TOTAL, // u_int derived from all caches
+ SLABS_CACHES_ACTIVE, // u_int "
+ SLABS_NUM_OBJS, // u_int "
+ SLABS_ACTIVE_OBJS, // u_int "
+ SLABS_OBJ_SIZE_AVG, // u_int "
+ SLABS_OBJ_SIZE_MIN, // u_int "
+ SLABS_OBJ_SIZE_MAX, // u_int "
+ SLABS_NUMS_SLABS, // u_int "
+ SLABS_ACTIVE_SLABS, // u_int "
+ SLABS_PAGES_TOTAL, // u_int "
+ SLABS_SIZE_ACTIVE, // ul_int "
+ SLABS_SIZE_TOTAL, // ul_int "
+
+ SLABS_DELTA_CACHES_TOTAL, // s_int derived from above
+ SLABS_DELTA_CACHES_ACTIVE, // s_int "
+ SLABS_DELTA_NUM_OBJS, // s_int "
+ SLABS_DELTA_ACTIVE_OBJS, // s_int "
+ SLABS_DELTA_OBJ_SIZE_AVG, // s_int "
+ SLABS_DELTA_OBJ_SIZE_MIN, // s_int "
+ SLABS_DELTA_OBJ_SIZE_MAX, // s_int "
+ SLABS_DELTA_NUMS_SLABS, // s_int "
+ SLABS_DELTA_ACTIVE_SLABS, // s_int "
+ SLABS_DELTA_PAGES_TOTAL, // s_int "
+ SLABS_DELTA_SIZE_ACTIVE, // s_int "
+ SLABS_DELTA_SIZE_TOTAL // s_int "
+};
+
+enum slabinfo_sort_order {
+ SLABINFO_SORT_ASCEND = +1,
+ SLABINFO_SORT_DESCEND = -1
+};
+
+
+struct slabinfo_result {
+ enum slabinfo_item item;
+ union {
+ signed int s_int;
+ unsigned int u_int;
+ unsigned long ul_int;
+ char *str;
+ } result;
+};
+
+struct slabinfo_stack {
+ struct slabinfo_result *head;
+};
+
+struct slabinfo_reaped {
+ int total;
+ struct slabinfo_stack **stacks;
+};
+
+struct slabinfo_info;
+
+
+#define SLABINFO_GET( info, actual_enum, type ) ( { \
+ struct slabinfo_result *r = procps_slabinfo_get( info, actual_enum ); \
+ r ? r->result . type : 0; } )
+
+#define SLABINFO_VAL( relative_enum, type, stack, info ) \
+ stack -> head [ relative_enum ] . result . type
+
+
+int procps_slabinfo_new (struct slabinfo_info **info);
+int procps_slabinfo_ref (struct slabinfo_info *info);
+int procps_slabinfo_unref (struct slabinfo_info **info);
+
+struct slabinfo_result *procps_slabinfo_get (
+ struct slabinfo_info *info,
+ enum slabinfo_item item);
+
+struct slabinfo_reaped *procps_slabinfo_reap (
+ struct slabinfo_info *info,
+ enum slabinfo_item *items,
+ int numitems);
+
+struct slabinfo_stack *procps_slabinfo_select (
+ struct slabinfo_info *info,
+ enum slabinfo_item *items,
+ int numitems);
+
+struct slabinfo_stack **procps_slabinfo_sort (
+ struct slabinfo_info *info,
+ struct slabinfo_stack *stacks[],
+ int numstacked,
+ enum slabinfo_item sortitem,
+ enum slabinfo_sort_order order);
+
+
+#ifdef XTRA_PROCPS_DEBUG
+# include "xtra-procps-debug.h"
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/library/include/stat.h b/library/include/stat.h
new file mode 100644
index 0000000..7adefa6
--- /dev/null
+++ b/library/include/stat.h
@@ -0,0 +1,175 @@
+/*
+ * stat.h - cpu/numa related declarations for libproc2
+ *
+ * Copyright © 2015-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2015-2023 Craig Small <csmall@dropbear.xyz>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef PROCPS_STAT_H
+#define PROCPS_STAT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum stat_item {
+ STAT_noop, // ( never altered )
+ STAT_extra, // ( reset to zero )
+ // returns origin, see proc(5)
+ // ------- -------------------
+ STAT_TIC_ID, // s_int /proc/stat, cpu or numa node id
+ STAT_TIC_ID_CORE, // s_int /proc/cpuinfo: 'core id', -1 = n/a
+ STAT_TIC_NUMA_NODE, // s_int [ CPU ID based, see: numa(3) ]
+ STAT_TIC_NUM_CONTRIBUTORS, // s_int [ total CPUs contributing to TIC counts ]
+ STAT_TIC_TYPE_CORE, // s_int [ 2 = P-core, 1 = E-core, 0 = n/a ]
+
+ STAT_TIC_USER, // ull_int /proc/stat
+ STAT_TIC_NICE, // ull_int "
+ STAT_TIC_SYSTEM, // ull_int "
+ STAT_TIC_IDLE, // ull_int "
+ STAT_TIC_IOWAIT, // ull_int "
+ STAT_TIC_IRQ, // ull_int "
+ STAT_TIC_SOFTIRQ, // ull_int "
+ STAT_TIC_STOLEN, // ull_int "
+ STAT_TIC_GUEST, // ull_int "
+ STAT_TIC_GUEST_NICE, // ull_int "
+
+ STAT_TIC_DELTA_USER, // sl_int derived from above
+ STAT_TIC_DELTA_NICE, // sl_int "
+ STAT_TIC_DELTA_SYSTEM, // sl_int "
+ STAT_TIC_DELTA_IDLE, // sl_int "
+ STAT_TIC_DELTA_IOWAIT, // sl_int "
+ STAT_TIC_DELTA_IRQ, // sl_int "
+ STAT_TIC_DELTA_SOFTIRQ, // sl_int "
+ STAT_TIC_DELTA_STOLEN, // sl_int "
+ STAT_TIC_DELTA_GUEST, // sl_int "
+ STAT_TIC_DELTA_GUEST_NICE, // sl_int "
+
+ STAT_TIC_SUM_USER, // ull_int derived from USER + NICE tics
+ STAT_TIC_SUM_SYSTEM, // ull_int derived from SYSTEM + IRQ + SOFTIRQ tics
+ STAT_TIC_SUM_IDLE, // ull_int derived from IDLE + IOWAIT tics
+ STAT_TIC_SUM_BUSY, // ull_int derived from SUM_TOTAL - SUM_IDLE tics
+ STAT_TIC_SUM_TOTAL, // ull_int derived from sum of all 10 tics
+
+ STAT_TIC_SUM_DELTA_USER, // sl_int derived from above
+ STAT_TIC_SUM_DELTA_SYSTEM, // sl_int "
+ STAT_TIC_SUM_DELTA_IDLE, // sl_int "
+ STAT_TIC_SUM_DELTA_BUSY, // sl_int "
+ STAT_TIC_SUM_DELTA_TOTAL, // sl_int "
+
+ STAT_SYS_CTX_SWITCHES, // ul_int /proc/stat
+ STAT_SYS_INTERRUPTS, // ul_int "
+ STAT_SYS_PROC_BLOCKED, // ul_int "
+ STAT_SYS_PROC_CREATED, // ul_int "
+ STAT_SYS_PROC_RUNNING, // ul_int "
+ STAT_SYS_TIME_OF_BOOT, // ul_int "
+
+ STAT_SYS_DELTA_CTX_SWITCHES, // s_int derived from above
+ STAT_SYS_DELTA_INTERRUPTS, // s_int "
+ STAT_SYS_DELTA_PROC_BLOCKED, // s_int "
+ STAT_SYS_DELTA_PROC_CREATED, // s_int "
+ STAT_SYS_DELTA_PROC_RUNNING // s_int "
+};
+
+enum stat_reap_type {
+ STAT_REAP_CPUS_ONLY,
+ STAT_REAP_NUMA_NODES_TOO
+};
+
+enum stat_sort_order {
+ STAT_SORT_ASCEND = +1,
+ STAT_SORT_DESCEND = -1
+};
+
+
+struct stat_result {
+ enum stat_item item;
+ union {
+ signed int s_int;
+ signed long sl_int;
+ unsigned long ul_int;
+ unsigned long long ull_int;
+ } result;
+};
+
+struct stat_stack {
+ struct stat_result *head;
+};
+
+struct stat_reap {
+ int total;
+ struct stat_stack **stacks;
+};
+
+struct stat_reaped {
+ struct stat_stack *summary;
+ struct stat_reap *cpus;
+ struct stat_reap *numa;
+};
+
+struct stat_info;
+
+
+ // STAT_TIC_ID value for /proc/stat cpu summary
+#define STAT_SUMMARY_ID -11111
+ // STAT_TIC_NUMA_NODE value for STAT_REAP_CPUS_ONLY or
+ // for STAT_REAP_NUMA_NODES_TOO when node was inactive
+#define STAT_NODE_INVALID -22222
+
+
+#define STAT_GET( info, actual_enum, type ) ( { \
+ struct stat_result *r = procps_stat_get( info, actual_enum ); \
+ r ? r->result . type : 0; } )
+
+#define STAT_VAL( relative_enum, type, stack, info ) \
+ stack -> head [ relative_enum ] . result . type
+
+
+int procps_stat_new (struct stat_info **info);
+int procps_stat_ref (struct stat_info *info);
+int procps_stat_unref (struct stat_info **info);
+
+struct stat_result *procps_stat_get (
+ struct stat_info *info,
+ enum stat_item item);
+
+struct stat_reaped *procps_stat_reap (
+ struct stat_info *info,
+ enum stat_reap_type what,
+ enum stat_item *items,
+ int numitems);
+
+struct stat_stack *procps_stat_select (
+ struct stat_info *info,
+ enum stat_item *items,
+ int numitems);
+
+struct stat_stack **procps_stat_sort (
+ struct stat_info *info,
+ struct stat_stack *stacks[],
+ int numstacked,
+ enum stat_item sortitem,
+ enum stat_sort_order order);
+
+
+#ifdef XTRA_PROCPS_DEBUG
+# include "xtra-procps-debug.h"
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/library/include/vmstat.h b/library/include/vmstat.h
new file mode 100644
index 0000000..9b94931
--- /dev/null
+++ b/library/include/vmstat.h
@@ -0,0 +1,382 @@
+/*
+ * vmstat.h - virtual memory related declarations for libproc2
+ *
+ * Copyright © 2015-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2015-2023 Craig Small <csmall@dropbear.xyz>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+#ifndef PROCPS_VMSTAT_H
+#define PROCPS_VMSTAT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+enum vmstat_item {
+ VMSTAT_noop, // ( never altered )
+ VMSTAT_extra, // ( reset to zero )
+ // returns origin, see proc(5)
+ // ------- -------------------
+ VMSTAT_ALLOCSTALL_DMA, // ul_int /proc/vmstat
+ VMSTAT_ALLOCSTALL_DMA32, // ul_int "
+ VMSTAT_ALLOCSTALL_HIGH, // ul_int "
+ VMSTAT_ALLOCSTALL_MOVABLE, // ul_int "
+ VMSTAT_ALLOCSTALL_NORMAL, // ul_int "
+ VMSTAT_BALLOON_DEFLATE, // ul_int "
+ VMSTAT_BALLOON_INFLATE, // ul_int "
+ VMSTAT_BALLOON_MIGRATE, // ul_int "
+ VMSTAT_COMPACT_DAEMON_FREE_SCANNED, // ul_int "
+ VMSTAT_COMPACT_DAEMON_MIGRATE_SCANNED, // ul_int "
+ VMSTAT_COMPACT_DAEMON_WAKE, // ul_int "
+ VMSTAT_COMPACT_FAIL, // ul_int "
+ VMSTAT_COMPACT_FREE_SCANNED, // ul_int "
+ VMSTAT_COMPACT_ISOLATED, // ul_int "
+ VMSTAT_COMPACT_MIGRATE_SCANNED, // ul_int "
+ VMSTAT_COMPACT_STALL, // ul_int "
+ VMSTAT_COMPACT_SUCCESS, // ul_int "
+ VMSTAT_DROP_PAGECACHE, // ul_int "
+ VMSTAT_DROP_SLAB, // ul_int "
+ VMSTAT_HTLB_BUDDY_ALLOC_FAIL, // ul_int "
+ VMSTAT_HTLB_BUDDY_ALLOC_SUCCESS, // ul_int "
+ VMSTAT_KSWAPD_HIGH_WMARK_HIT_QUICKLY, // ul_int "
+ VMSTAT_KSWAPD_INODESTEAL, // ul_int "
+ VMSTAT_KSWAPD_LOW_WMARK_HIT_QUICKLY, // ul_int "
+ VMSTAT_NR_ACTIVE_ANON, // ul_int "
+ VMSTAT_NR_ACTIVE_FILE, // ul_int "
+ VMSTAT_NR_ANON_PAGES, // ul_int "
+ VMSTAT_NR_ANON_TRANSPARENT_HUGEPAGES, // ul_int "
+ VMSTAT_NR_BOUNCE, // ul_int "
+ VMSTAT_NR_DIRTIED, // ul_int "
+ VMSTAT_NR_DIRTY, // ul_int "
+ VMSTAT_NR_DIRTY_BACKGROUND_THRESHOLD, // ul_int "
+ VMSTAT_NR_DIRTY_THRESHOLD, // ul_int "
+ VMSTAT_NR_FILE_HUGEPAGES, // ul_int "
+ VMSTAT_NR_FILE_PAGES, // ul_int "
+ VMSTAT_NR_FILE_PMDMAPPED, // ul_int "
+ VMSTAT_NR_FOLL_PIN_ACQUIRED, // ul_int "
+ VMSTAT_NR_FOLL_PIN_RELEASED, // ul_int "
+ VMSTAT_NR_FREE_CMA, // ul_int "
+ VMSTAT_NR_FREE_PAGES, // ul_int "
+ VMSTAT_NR_INACTIVE_ANON, // ul_int "
+ VMSTAT_NR_INACTIVE_FILE, // ul_int "
+ VMSTAT_NR_ISOLATED_ANON, // ul_int "
+ VMSTAT_NR_ISOLATED_FILE, // ul_int "
+ VMSTAT_NR_KERNEL_MISC_RECLAIMABLE, // ul_int "
+ VMSTAT_NR_KERNEL_STACK, // ul_int "
+ VMSTAT_NR_MAPPED, // ul_int "
+ VMSTAT_NR_MLOCK, // ul_int "
+ VMSTAT_NR_PAGE_TABLE_PAGES, // ul_int "
+ VMSTAT_NR_SHADOW_CALL_STACK, // ul_int "
+ VMSTAT_NR_SHMEM, // ul_int "
+ VMSTAT_NR_SHMEM_HUGEPAGES, // ul_int "
+ VMSTAT_NR_SHMEM_PMDMAPPED, // ul_int "
+ VMSTAT_NR_SLAB_RECLAIMABLE, // ul_int "
+ VMSTAT_NR_SLAB_UNRECLAIMABLE, // ul_int "
+ VMSTAT_NR_UNEVICTABLE, // ul_int "
+ VMSTAT_NR_UNSTABLE, // ul_int "
+ VMSTAT_NR_VMSCAN_IMMEDIATE_RECLAIM, // ul_int "
+ VMSTAT_NR_VMSCAN_WRITE, // ul_int "
+ VMSTAT_NR_WRITEBACK, // ul_int "
+ VMSTAT_NR_WRITEBACK_TEMP, // ul_int "
+ VMSTAT_NR_WRITTEN, // ul_int "
+ VMSTAT_NR_ZONE_ACTIVE_ANON, // ul_int "
+ VMSTAT_NR_ZONE_ACTIVE_FILE, // ul_int "
+ VMSTAT_NR_ZONE_INACTIVE_ANON, // ul_int "
+ VMSTAT_NR_ZONE_INACTIVE_FILE, // ul_int "
+ VMSTAT_NR_ZONE_UNEVICTABLE, // ul_int "
+ VMSTAT_NR_ZONE_WRITE_PENDING, // ul_int "
+ VMSTAT_NR_ZSPAGES, // ul_int "
+ VMSTAT_NUMA_FOREIGN, // ul_int "
+ VMSTAT_NUMA_HINT_FAULTS, // ul_int "
+ VMSTAT_NUMA_HINT_FAULTS_LOCAL, // ul_int "
+ VMSTAT_NUMA_HIT, // ul_int "
+ VMSTAT_NUMA_HUGE_PTE_UPDATES, // ul_int "
+ VMSTAT_NUMA_INTERLEAVE, // ul_int "
+ VMSTAT_NUMA_LOCAL, // ul_int "
+ VMSTAT_NUMA_MISS, // ul_int "
+ VMSTAT_NUMA_OTHER, // ul_int "
+ VMSTAT_NUMA_PAGES_MIGRATED, // ul_int "
+ VMSTAT_NUMA_PTE_UPDATES, // ul_int "
+ VMSTAT_OOM_KILL, // ul_int "
+ VMSTAT_PAGEOUTRUN, // ul_int "
+ VMSTAT_PGACTIVATE, // ul_int "
+ VMSTAT_PGALLOC_DMA, // ul_int "
+ VMSTAT_PGALLOC_DMA32, // ul_int "
+ VMSTAT_PGALLOC_HIGH, // ul_int "
+ VMSTAT_PGALLOC_MOVABLE, // ul_int "
+ VMSTAT_PGALLOC_NORMAL, // ul_int "
+ VMSTAT_PGDEACTIVATE, // ul_int "
+ VMSTAT_PGFAULT, // ul_int "
+ VMSTAT_PGFREE, // ul_int "
+ VMSTAT_PGINODESTEAL, // ul_int "
+ VMSTAT_PGLAZYFREE, // ul_int "
+ VMSTAT_PGLAZYFREED, // ul_int "
+ VMSTAT_PGMAJFAULT, // ul_int "
+ VMSTAT_PGMIGRATE_FAIL, // ul_int "
+ VMSTAT_PGMIGRATE_SUCCESS, // ul_int "
+ VMSTAT_PGPGIN, // ul_int "
+ VMSTAT_PGPGOUT, // ul_int "
+ VMSTAT_PGREFILL, // ul_int "
+ VMSTAT_PGROTATED, // ul_int "
+ VMSTAT_PGSCAN_ANON, // ul_int "
+ VMSTAT_PGSCAN_DIRECT, // ul_int "
+ VMSTAT_PGSCAN_DIRECT_THROTTLE, // ul_int "
+ VMSTAT_PGSCAN_FILE, // ul_int "
+ VMSTAT_PGSCAN_KSWAPD, // ul_int "
+ VMSTAT_PGSKIP_DMA, // ul_int "
+ VMSTAT_PGSKIP_DMA32, // ul_int "
+ VMSTAT_PGSKIP_HIGH, // ul_int "
+ VMSTAT_PGSKIP_MOVABLE, // ul_int "
+ VMSTAT_PGSKIP_NORMAL, // ul_int "
+ VMSTAT_PGSTEAL_ANON, // ul_int "
+ VMSTAT_PGSTEAL_DIRECT, // ul_int "
+ VMSTAT_PGSTEAL_FILE, // ul_int "
+ VMSTAT_PGSTEAL_KSWAPD, // ul_int "
+ VMSTAT_PSWPIN, // ul_int "
+ VMSTAT_PSWPOUT, // ul_int "
+ VMSTAT_SLABS_SCANNED, // ul_int "
+ VMSTAT_SWAP_RA, // ul_int "
+ VMSTAT_SWAP_RA_HIT, // ul_int "
+ VMSTAT_THP_COLLAPSE_ALLOC, // ul_int "
+ VMSTAT_THP_COLLAPSE_ALLOC_FAILED, // ul_int "
+ VMSTAT_THP_DEFERRED_SPLIT_PAGE, // ul_int "
+ VMSTAT_THP_FAULT_ALLOC, // ul_int "
+ VMSTAT_THP_FAULT_FALLBACK, // ul_int "
+ VMSTAT_THP_FAULT_FALLBACK_CHARGE, // ul_int "
+ VMSTAT_THP_FILE_ALLOC, // ul_int "
+ VMSTAT_THP_FILE_FALLBACK, // ul_int "
+ VMSTAT_THP_FILE_FALLBACK_CHARGE, // ul_int "
+ VMSTAT_THP_FILE_MAPPED, // ul_int "
+ VMSTAT_THP_SPLIT_PAGE, // ul_int "
+ VMSTAT_THP_SPLIT_PAGE_FAILED, // ul_int "
+ VMSTAT_THP_SPLIT_PMD, // ul_int "
+ VMSTAT_THP_SPLIT_PUD, // ul_int "
+ VMSTAT_THP_SWPOUT, // ul_int "
+ VMSTAT_THP_SWPOUT_FALLBACK, // ul_int "
+ VMSTAT_THP_ZERO_PAGE_ALLOC, // ul_int "
+ VMSTAT_THP_ZERO_PAGE_ALLOC_FAILED, // ul_int "
+ VMSTAT_UNEVICTABLE_PGS_CLEARED, // ul_int "
+ VMSTAT_UNEVICTABLE_PGS_CULLED, // ul_int "
+ VMSTAT_UNEVICTABLE_PGS_MLOCKED, // ul_int "
+ VMSTAT_UNEVICTABLE_PGS_MUNLOCKED, // ul_int "
+ VMSTAT_UNEVICTABLE_PGS_RESCUED, // ul_int "
+ VMSTAT_UNEVICTABLE_PGS_SCANNED, // ul_int "
+ VMSTAT_UNEVICTABLE_PGS_STRANDED, // ul_int "
+ VMSTAT_WORKINGSET_ACTIVATE, // ul_int "
+ VMSTAT_WORKINGSET_NODERECLAIM, // ul_int "
+ VMSTAT_WORKINGSET_NODES, // ul_int "
+ VMSTAT_WORKINGSET_REFAULT, // ul_int "
+ VMSTAT_WORKINGSET_RESTORE, // ul_int "
+ VMSTAT_ZONE_RECLAIM_FAILED, // ul_int "
+
+ VMSTAT_DELTA_ALLOCSTALL_DMA, // sl_int derived from above
+ VMSTAT_DELTA_ALLOCSTALL_DMA32, // sl_int "
+ VMSTAT_DELTA_ALLOCSTALL_HIGH, // sl_int "
+ VMSTAT_DELTA_ALLOCSTALL_MOVABLE, // sl_int "
+ VMSTAT_DELTA_ALLOCSTALL_NORMAL, // sl_int "
+ VMSTAT_DELTA_BALLOON_DEFLATE, // sl_int "
+ VMSTAT_DELTA_BALLOON_INFLATE, // sl_int "
+ VMSTAT_DELTA_BALLOON_MIGRATE, // sl_int "
+ VMSTAT_DELTA_COMPACT_DAEMON_FREE_SCANNED, // sl_int "
+ VMSTAT_DELTA_COMPACT_DAEMON_MIGRATE_SCANNED, // sl_int "
+ VMSTAT_DELTA_COMPACT_DAEMON_WAKE, // sl_int "
+ VMSTAT_DELTA_COMPACT_FAIL, // sl_int "
+ VMSTAT_DELTA_COMPACT_FREE_SCANNED, // sl_int "
+ VMSTAT_DELTA_COMPACT_ISOLATED, // sl_int "
+ VMSTAT_DELTA_COMPACT_MIGRATE_SCANNED, // sl_int "
+ VMSTAT_DELTA_COMPACT_STALL, // sl_int "
+ VMSTAT_DELTA_COMPACT_SUCCESS, // sl_int "
+ VMSTAT_DELTA_DROP_PAGECACHE, // sl_int "
+ VMSTAT_DELTA_DROP_SLAB, // sl_int "
+ VMSTAT_DELTA_HTLB_BUDDY_ALLOC_FAIL, // sl_int "
+ VMSTAT_DELTA_HTLB_BUDDY_ALLOC_SUCCESS, // sl_int "
+ VMSTAT_DELTA_KSWAPD_HIGH_WMARK_HIT_QUICKLY, // sl_int "
+ VMSTAT_DELTA_KSWAPD_INODESTEAL, // sl_int "
+ VMSTAT_DELTA_KSWAPD_LOW_WMARK_HIT_QUICKLY, // sl_int "
+ VMSTAT_DELTA_NR_ACTIVE_ANON, // sl_int "
+ VMSTAT_DELTA_NR_ACTIVE_FILE, // sl_int "
+ VMSTAT_DELTA_NR_ANON_PAGES, // sl_int "
+ VMSTAT_DELTA_NR_ANON_TRANSPARENT_HUGEPAGES, // sl_int "
+ VMSTAT_DELTA_NR_BOUNCE, // sl_int "
+ VMSTAT_DELTA_NR_DIRTIED, // sl_int "
+ VMSTAT_DELTA_NR_DIRTY, // sl_int "
+ VMSTAT_DELTA_NR_DIRTY_BACKGROUND_THRESHOLD, // sl_int "
+ VMSTAT_DELTA_NR_DIRTY_THRESHOLD, // sl_int "
+ VMSTAT_DELTA_NR_FILE_HUGEPAGES, // sl_int "
+ VMSTAT_DELTA_NR_FILE_PAGES, // sl_int "
+ VMSTAT_DELTA_NR_FILE_PMDMAPPED, // sl_int "
+ VMSTAT_DELTA_NR_FOLL_PIN_ACQUIRED, // sl_int "
+ VMSTAT_DELTA_NR_FOLL_PIN_RELEASED, // sl_int "
+ VMSTAT_DELTA_NR_FREE_CMA, // sl_int "
+ VMSTAT_DELTA_NR_FREE_PAGES, // sl_int "
+ VMSTAT_DELTA_NR_INACTIVE_ANON, // sl_int "
+ VMSTAT_DELTA_NR_INACTIVE_FILE, // sl_int "
+ VMSTAT_DELTA_NR_ISOLATED_ANON, // sl_int "
+ VMSTAT_DELTA_NR_ISOLATED_FILE, // sl_int "
+ VMSTAT_DELTA_NR_KERNEL_MISC_RECLAIMABLE, // sl_int "
+ VMSTAT_DELTA_NR_KERNEL_STACK, // sl_int "
+ VMSTAT_DELTA_NR_MAPPED, // sl_int "
+ VMSTAT_DELTA_NR_MLOCK, // sl_int "
+ VMSTAT_DELTA_NR_PAGE_TABLE_PAGES, // sl_int "
+ VMSTAT_DELTA_NR_SHADOW_CALL_STACK, // sl_int "
+ VMSTAT_DELTA_NR_SHMEM, // sl_int "
+ VMSTAT_DELTA_NR_SHMEM_HUGEPAGES, // sl_int "
+ VMSTAT_DELTA_NR_SHMEM_PMDMAPPED, // sl_int "
+ VMSTAT_DELTA_NR_SLAB_RECLAIMABLE, // sl_int "
+ VMSTAT_DELTA_NR_SLAB_UNRECLAIMABLE, // sl_int "
+ VMSTAT_DELTA_NR_UNEVICTABLE, // sl_int "
+ VMSTAT_DELTA_NR_UNSTABLE, // sl_int "
+ VMSTAT_DELTA_NR_VMSCAN_IMMEDIATE_RECLAIM, // sl_int "
+ VMSTAT_DELTA_NR_VMSCAN_WRITE, // sl_int "
+ VMSTAT_DELTA_NR_WRITEBACK, // sl_int "
+ VMSTAT_DELTA_NR_WRITEBACK_TEMP, // sl_int "
+ VMSTAT_DELTA_NR_WRITTEN, // sl_int "
+ VMSTAT_DELTA_NR_ZONE_ACTIVE_ANON, // sl_int "
+ VMSTAT_DELTA_NR_ZONE_ACTIVE_FILE, // sl_int "
+ VMSTAT_DELTA_NR_ZONE_INACTIVE_ANON, // sl_int "
+ VMSTAT_DELTA_NR_ZONE_INACTIVE_FILE, // sl_int "
+ VMSTAT_DELTA_NR_ZONE_UNEVICTABLE, // sl_int "
+ VMSTAT_DELTA_NR_ZONE_WRITE_PENDING, // sl_int "
+ VMSTAT_DELTA_NR_ZSPAGES, // sl_int "
+ VMSTAT_DELTA_NUMA_FOREIGN, // sl_int "
+ VMSTAT_DELTA_NUMA_HINT_FAULTS, // sl_int "
+ VMSTAT_DELTA_NUMA_HINT_FAULTS_LOCAL, // sl_int "
+ VMSTAT_DELTA_NUMA_HIT, // sl_int "
+ VMSTAT_DELTA_NUMA_HUGE_PTE_UPDATES, // sl_int "
+ VMSTAT_DELTA_NUMA_INTERLEAVE, // sl_int "
+ VMSTAT_DELTA_NUMA_LOCAL, // sl_int "
+ VMSTAT_DELTA_NUMA_MISS, // sl_int "
+ VMSTAT_DELTA_NUMA_OTHER, // sl_int "
+ VMSTAT_DELTA_NUMA_PAGES_MIGRATED, // sl_int "
+ VMSTAT_DELTA_NUMA_PTE_UPDATES, // sl_int "
+ VMSTAT_DELTA_OOM_KILL, // sl_int "
+ VMSTAT_DELTA_PAGEOUTRUN, // sl_int "
+ VMSTAT_DELTA_PGACTIVATE, // sl_int "
+ VMSTAT_DELTA_PGALLOC_DMA, // sl_int "
+ VMSTAT_DELTA_PGALLOC_DMA32, // sl_int "
+ VMSTAT_DELTA_PGALLOC_HIGH, // sl_int "
+ VMSTAT_DELTA_PGALLOC_MOVABLE, // sl_int "
+ VMSTAT_DELTA_PGALLOC_NORMAL, // sl_int "
+ VMSTAT_DELTA_PGDEACTIVATE, // sl_int "
+ VMSTAT_DELTA_PGFAULT, // sl_int "
+ VMSTAT_DELTA_PGFREE, // sl_int "
+ VMSTAT_DELTA_PGINODESTEAL, // sl_int "
+ VMSTAT_DELTA_PGLAZYFREE, // sl_int "
+ VMSTAT_DELTA_PGLAZYFREED, // sl_int "
+ VMSTAT_DELTA_PGMAJFAULT, // sl_int "
+ VMSTAT_DELTA_PGMIGRATE_FAIL, // sl_int "
+ VMSTAT_DELTA_PGMIGRATE_SUCCESS, // sl_int "
+ VMSTAT_DELTA_PGPGIN, // sl_int "
+ VMSTAT_DELTA_PGPGOUT, // sl_int "
+ VMSTAT_DELTA_PGREFILL, // sl_int "
+ VMSTAT_DELTA_PGROTATED, // sl_int "
+ VMSTAT_DELTA_PGSCAN_ANON, // sl_int "
+ VMSTAT_DELTA_PGSCAN_DIRECT, // sl_int "
+ VMSTAT_DELTA_PGSCAN_DIRECT_THROTTLE, // sl_int "
+ VMSTAT_DELTA_PGSCAN_FILE, // sl_int "
+ VMSTAT_DELTA_PGSCAN_KSWAPD, // sl_int "
+ VMSTAT_DELTA_PGSKIP_DMA, // sl_int "
+ VMSTAT_DELTA_PGSKIP_DMA32, // sl_int "
+ VMSTAT_DELTA_PGSKIP_HIGH, // sl_int "
+ VMSTAT_DELTA_PGSKIP_MOVABLE, // sl_int "
+ VMSTAT_DELTA_PGSKIP_NORMAL, // sl_int "
+ VMSTAT_DELTA_PGSTEAL_ANON, // sl_int "
+ VMSTAT_DELTA_PGSTEAL_DIRECT, // sl_int "
+ VMSTAT_DELTA_PGSTEAL_FILE, // sl_int "
+ VMSTAT_DELTA_PGSTEAL_KSWAPD, // sl_int "
+ VMSTAT_DELTA_PSWPIN, // sl_int "
+ VMSTAT_DELTA_PSWPOUT, // sl_int "
+ VMSTAT_DELTA_SLABS_SCANNED, // sl_int "
+ VMSTAT_DELTA_SWAP_RA, // sl_int "
+ VMSTAT_DELTA_SWAP_RA_HIT, // sl_int "
+ VMSTAT_DELTA_THP_COLLAPSE_ALLOC, // sl_int "
+ VMSTAT_DELTA_THP_COLLAPSE_ALLOC_FAILED, // sl_int "
+ VMSTAT_DELTA_THP_DEFERRED_SPLIT_PAGE, // sl_int "
+ VMSTAT_DELTA_THP_FAULT_ALLOC, // sl_int "
+ VMSTAT_DELTA_THP_FAULT_FALLBACK, // sl_int "
+ VMSTAT_DELTA_THP_FAULT_FALLBACK_CHARGE, // sl_int "
+ VMSTAT_DELTA_THP_FILE_ALLOC, // sl_int "
+ VMSTAT_DELTA_THP_FILE_FALLBACK, // sl_int "
+ VMSTAT_DELTA_THP_FILE_FALLBACK_CHARGE, // sl_int "
+ VMSTAT_DELTA_THP_FILE_MAPPED, // sl_int "
+ VMSTAT_DELTA_THP_SPLIT_PAGE, // sl_int "
+ VMSTAT_DELTA_THP_SPLIT_PAGE_FAILED, // sl_int "
+ VMSTAT_DELTA_THP_SPLIT_PMD, // sl_int "
+ VMSTAT_DELTA_THP_SPLIT_PUD, // sl_int "
+ VMSTAT_DELTA_THP_SWPOUT, // sl_int "
+ VMSTAT_DELTA_THP_SWPOUT_FALLBACK, // sl_int "
+ VMSTAT_DELTA_THP_ZERO_PAGE_ALLOC, // sl_int "
+ VMSTAT_DELTA_THP_ZERO_PAGE_ALLOC_FAILED, // sl_int "
+ VMSTAT_DELTA_UNEVICTABLE_PGS_CLEARED, // sl_int "
+ VMSTAT_DELTA_UNEVICTABLE_PGS_CULLED, // sl_int "
+ VMSTAT_DELTA_UNEVICTABLE_PGS_MLOCKED, // sl_int "
+ VMSTAT_DELTA_UNEVICTABLE_PGS_MUNLOCKED, // sl_int "
+ VMSTAT_DELTA_UNEVICTABLE_PGS_RESCUED, // sl_int "
+ VMSTAT_DELTA_UNEVICTABLE_PGS_SCANNED, // sl_int "
+ VMSTAT_DELTA_UNEVICTABLE_PGS_STRANDED, // sl_int "
+ VMSTAT_DELTA_WORKINGSET_ACTIVATE, // sl_int "
+ VMSTAT_DELTA_WORKINGSET_NODERECLAIM, // sl_int "
+ VMSTAT_DELTA_WORKINGSET_NODES, // sl_int "
+ VMSTAT_DELTA_WORKINGSET_REFAULT, // sl_int "
+ VMSTAT_DELTA_WORKINGSET_RESTORE, // sl_int "
+ VMSTAT_DELTA_ZONE_RECLAIM_FAILED // sl_int "
+};
+
+
+struct vmstat_result {
+ enum vmstat_item item;
+ union {
+ signed long sl_int;
+ unsigned long ul_int;
+ } result;
+};
+
+struct vmstat_stack {
+ struct vmstat_result *head;
+};
+
+struct vmstat_info;
+
+
+#define VMSTAT_GET( info, actual_enum, type ) ( { \
+ struct vmstat_result *r = procps_vmstat_get( info, actual_enum ); \
+ r ? r->result . type : 0; } )
+
+#define VMSTAT_VAL( relative_enum, type, stack, info ) \
+ stack -> head [ relative_enum ] . result . type
+
+
+int procps_vmstat_new (struct vmstat_info **info);
+int procps_vmstat_ref (struct vmstat_info *info);
+int procps_vmstat_unref (struct vmstat_info **info);
+
+struct vmstat_result *procps_vmstat_get (
+ struct vmstat_info *info,
+ enum vmstat_item item);
+
+struct vmstat_stack *procps_vmstat_select (
+ struct vmstat_info *info,
+ enum vmstat_item *items,
+ int numitems);
+
+
+#ifdef XTRA_PROCPS_DEBUG
+# include "xtra-procps-debug.h"
+#endif
+#ifdef __cplusplus
+}
+#endif
+#endif
diff --git a/library/include/wchan.h b/library/include/wchan.h
new file mode 100644
index 0000000..ef1d689
--- /dev/null
+++ b/library/include/wchan.h
@@ -0,0 +1,27 @@
+/*
+ * wchan.c - kernel symbol handling
+ *
+ * Copyright © 2015-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 1998-2003 Albert Cahalan
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef PROCPS_PROC_WCHAN_H
+#define PROCPS_PROC_WCHAN_H
+
+extern const char *lookup_wchan (int pid);
+
+#endif
diff --git a/library/include/xtra-procps-debug.h b/library/include/xtra-procps-debug.h
new file mode 100644
index 0000000..ead8075
--- /dev/null
+++ b/library/include/xtra-procps-debug.h
@@ -0,0 +1,208 @@
+/*
+ * libproc2 - Library to read proc filesystem
+ *
+ * Copyright © 2016-2023 Jim Warner <james.warner@comcast.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#define STRINGIFY_ARG(a) #a
+#define STRINGIFY(a) STRINGIFY_ARG(a)
+
+
+// --- DISKSTATS ------------------------------------------
+#if defined(PROCPS_DISKSTATS_H) && !defined(PROCPS_DISKSTATS_H_DEBUG)
+#define PROCPS_DISKSTATS_H_DEBUG
+
+struct diskstats_result *xtra_diskstats_get (
+ struct diskstats_info *info,
+ const char *name,
+ enum diskstats_item actual_enum,
+ const char *typestr,
+ const char *file,
+ int lineno);
+
+# undef DISKSTATS_GET
+#define DISKSTATS_GET( info, name, actual_enum, type ) ( { \
+ struct diskstats_result *r; \
+ r = xtra_diskstats_get(info, name, actual_enum , STRINGIFY(type), __FILE__, __LINE__); \
+ r ? r->result . type : 0; } )
+
+struct diskstats_result *xtra_diskstats_val (
+ int relative_enum,
+ const char *typestr,
+ const struct diskstats_stack *stack,
+ struct diskstats_info *info,
+ const char *file,
+ int lineno);
+
+# undef DISKSTATS_VAL
+#define DISKSTATS_VAL( relative_enum, type, stack, info ) ( { \
+ struct diskstats_result *r; \
+ r = xtra_diskstats_val(relative_enum, STRINGIFY(type), stack, info, __FILE__, __LINE__); \
+ r ? r->result . type : 0; } )
+#endif // . . . . . . . . . .
+
+
+// --- MEMINFO --------------------------------------------
+#if defined(PROCPS_MEMINFO_H) && !defined(PROCPS_MEMINFO_H_DEBUG)
+#define PROCPS_MEMINFO_H_DEBUG
+
+struct meminfo_result *xtra_meminfo_get (
+ struct meminfo_info *info,
+ enum meminfo_item actual_enum,
+ const char *typestr,
+ const char *file,
+ int lineno);
+
+# undef MEMINFO_GET
+#define MEMINFO_GET( info, actual_enum, type ) ( { \
+ struct meminfo_result *r; \
+ r = xtra_meminfo_get(info, actual_enum , STRINGIFY(type), __FILE__, __LINE__); \
+ r ? r->result . type : 0; } )
+
+struct meminfo_result *xtra_meminfo_val (
+ int relative_enum,
+ const char *typestr,
+ const struct meminfo_stack *stack,
+ struct meminfo_info *info,
+ const char *file,
+ int lineno);
+
+# undef MEMINFO_VAL
+#define MEMINFO_VAL( relative_enum, type, stack, info ) ( { \
+ struct meminfo_result *r; \
+ r = xtra_meminfo_val(relative_enum, STRINGIFY(type), stack, info, __FILE__, __LINE__); \
+ r ? r->result . type : 0; } )
+#endif // . . . . . . . . . .
+
+
+// --- PIDS -----------------------------------------------
+#if defined(PROCPS_PIDS_H) && !defined(PROCPS_PIDS_H_DEBUG)
+#define PROCPS_PIDS_H_DEBUG
+
+struct pids_result *xtra_pids_val (
+ int relative_enum,
+ const char *typestr,
+ const struct pids_stack *stack,
+ struct pids_info *info,
+ const char *file,
+ int lineno);
+
+# undef PIDS_VAL
+#define PIDS_VAL( relative_enum, type, stack, info ) ( { \
+ struct pids_result *r; \
+ r = xtra_pids_val(relative_enum, STRINGIFY(type), stack, info, __FILE__, __LINE__); \
+ r ? r->result . type : 0; } )
+#endif // . . . . . . . . . .
+
+
+// --- SLABINFO -------------------------------------------
+#if defined(PROCPS_SLABINFO_H) && !defined(PROCPS_SLABINFO_H_DEBUG)
+#define PROCPS_SLABINFO_H_DEBUG
+
+struct slabinfo_result *xtra_slabinfo_get (
+ struct slabinfo_info *info,
+ enum slabinfo_item actual_enum,
+ const char *typestr,
+ const char *file,
+ int lineno);
+
+# undef SLABINFO_GET
+#define SLABINFO_GET( info, actual_enum, type ) ( { \
+ struct slabinfo_result *r; \
+ r = xtra_slabinfo_get(info, actual_enum , STRINGIFY(type), __FILE__, __LINE__); \
+ r ? r->result . type : 0; } )
+
+struct slabinfo_result *xtra_slabinfo_val (
+ int relative_enum,
+ const char *typestr,
+ const struct slabinfo_stack *stack,
+ struct slabinfo_info *info,
+ const char *file,
+ int lineno);
+
+# undef SLABINFO_VAL
+#define SLABINFO_VAL( relative_enum, type, stack, info ) ( { \
+ struct slabinfo_result *r; \
+ r = xtra_slabinfo_val(relative_enum, STRINGIFY(type), stack, info, __FILE__, __LINE__); \
+ r ? r->result . type : 0; } )
+#endif // . . . . . . . . . .
+
+
+// --- STAT -----------------------------------------------
+#if defined(PROCPS_STAT_H) && !defined(PROCPS_STAT_H_DEBUG)
+#define PROCPS_STAT_H_DEBUG
+
+struct stat_result *xtra_stat_get (
+ struct stat_info *info,
+ enum stat_item actual_enum,
+ const char *typestr,
+ const char *file,
+ int lineno);
+
+# undef STAT_GET
+#define STAT_GET( info, actual_enum, type ) ( { \
+ struct stat_result *r; \
+ r = xtra_stat_get(info, actual_enum , STRINGIFY(type), __FILE__, __LINE__); \
+ r ? r->result . type : 0; } )
+
+struct stat_result *xtra_stat_val (
+ int relative_enum,
+ const char *typestr,
+ const struct stat_stack *stack,
+ struct stat_info *info,
+ const char *file,
+ int lineno);
+
+# undef STAT_VAL
+#define STAT_VAL( relative_enum, type, stack, info ) ( { \
+ struct stat_result *r; \
+ r = xtra_stat_val(relative_enum, STRINGIFY(type), stack, info, __FILE__, __LINE__); \
+ r ? r->result . type : 0; } )
+#endif // . . . . . . . . . .
+
+
+// --- VMSTAT ---------------------------------------------
+#if defined(PROCPS_VMSTAT_H) && !defined(PROCPS_VMSTAT_H_DEBUG)
+#define PROCPS_VMSTAT_H_DEBUG
+
+struct vmstat_result *xtra_vmstat_get (
+ struct vmstat_info *info,
+ enum vmstat_item actual_enum,
+ const char *typestr,
+ const char *file,
+ int lineno);
+
+# undef VMSTAT_GET
+#define VMSTAT_GET( info, actual_enum, type ) ( { \
+ struct vmstat_result *r; \
+ r = xtra_vmstat_get(info, actual_enum , STRINGIFY(type), __FILE__, __LINE__); \
+ r ? r->result . type : 0; } )
+
+struct vmstat_result *xtra_vmstat_val (
+ int relative_enum,
+ const char *typestr,
+ const struct vmstat_stack *stack,
+ struct vmstat_info *info,
+ const char *file,
+ int lineno);
+
+# undef VMSTAT_VAL
+#define VMSTAT_VAL( relative_enum, type, stack, info ) ( { \
+ struct vmstat_result *r; \
+ r = xtra_vmstat_val(relative_enum, STRINGIFY(type), stack, info, __FILE__, __LINE__); \
+ r ? r->result . type : 0; } )
+#endif // . . . . . . . . . .
diff --git a/library/libproc2.pc.in b/library/libproc2.pc.in
new file mode 100644
index 0000000..99fd97e
--- /dev/null
+++ b/library/libproc2.pc.in
@@ -0,0 +1,11 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: libproc2
+Description: Library to control and query process state
+Version: @VERSION@
+Libs: -L${libdir} -lproc2
+Libs.private:
+Cflags: -I${includedir}
diff --git a/library/libproc2.sym b/library/libproc2.sym
new file mode 100644
index 0000000..bb84ba9
--- /dev/null
+++ b/library/libproc2.sym
@@ -0,0 +1,67 @@
+LIBPROC_2 {
+global:
+ fatal_proc_unmounted;
+ procps_cpu_count;
+ procps_diskstats_new;
+ procps_diskstats_ref;
+ procps_diskstats_unref;
+ procps_diskstats_get;
+ procps_diskstats_reap;
+ procps_diskstats_select;
+ procps_diskstats_sort;
+ procps_hertz_get;
+ procps_linux_version;
+ procps_loadavg;
+ procps_meminfo_new;
+ procps_meminfo_ref;
+ procps_meminfo_unref;
+ procps_meminfo_get;
+ procps_meminfo_select;
+ procps_ns_get_name;
+ procps_ns_get_id;
+ procps_ns_read_pid;
+ procps_pid_length;
+ procps_pids_new;
+ procps_pids_ref;
+ procps_pids_unref;
+ procps_pids_get;
+ procps_pids_reap;
+ procps_pids_reset;
+ procps_pids_select;
+ procps_pids_sort;
+ procps_slabinfo_new;
+ procps_slabinfo_ref;
+ procps_slabinfo_unref;
+ procps_slabinfo_get;
+ procps_slabinfo_reap;
+ procps_slabinfo_select;
+ procps_slabinfo_sort;
+ procps_stat_new;
+ procps_stat_ref;
+ procps_stat_unref;
+ procps_stat_get;
+ procps_stat_reap;
+ procps_stat_select;
+ procps_stat_sort;
+ procps_uptime;
+ procps_uptime_sprint;
+ procps_uptime_sprint_short;
+ procps_vmstat_new;
+ procps_vmstat_ref;
+ procps_vmstat_unref;
+ procps_vmstat_get;
+ procps_vmstat_select;
+ xtra_diskstats_get;
+ xtra_diskstats_val;
+ xtra_meminfo_get;
+ xtra_meminfo_val;
+ xtra_pids_val;
+ xtra_slabinfo_get;
+ xtra_slabinfo_val;
+ xtra_stat_get;
+ xtra_stat_val;
+ xtra_vmstat_get;
+ xtra_vmstat_val;
+local:
+ *;
+};
diff --git a/library/meminfo.c b/library/meminfo.c
new file mode 100644
index 0000000..4289a23
--- /dev/null
+++ b/library/meminfo.c
@@ -0,0 +1,1016 @@
+/*
+ * meminfo.c - memory related definitions for libproc2
+ *
+ * Copyright © 2015-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2015-2023 Craig Small <csmall@dropbear.xyz>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <search.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <unistd.h>
+
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include "procps-private.h"
+#include "meminfo.h"
+
+
+#define MEMINFO_FILE "/proc/meminfo"
+#define MEMINFO_BUFF 8192
+
+/* ------------------------------------------------------------------------- +
+ this provision can be used to ensure that our Item_table was synchronized |
+ with those enumerators found in the associated header file. It's intended |
+ to only be used locally (& temporarily) at some point prior to a release! | */
+// #define ITEMTABLE_DEBUG //----------------------------------------------- |
+// ------------------------------------------------------------------------- +
+
+
+struct meminfo_data {
+ unsigned long Active;
+ unsigned long Active_anon; // as: Active(anon): man 5 proc: 'to be documented'
+ unsigned long Active_file; // as: Active(file): man 5 proc: 'to be documented'
+ unsigned long AnonHugePages;
+ unsigned long AnonPages;
+ unsigned long Bounce;
+ unsigned long Buffers;
+ unsigned long Cached;
+ unsigned long CmaFree;
+ unsigned long CmaTotal;
+ unsigned long CommitLimit;
+ unsigned long Committed_AS;
+ unsigned long DirectMap1G;
+ unsigned long DirectMap2M;
+ unsigned long DirectMap4M;
+ unsigned long DirectMap4k;
+ unsigned long Dirty;
+ unsigned long FileHugePages;
+ unsigned long FilePmdMapped;
+ unsigned long HardwareCorrupted; // man 5 proc: 'to be documented'
+ unsigned long HighFree;
+ unsigned long HighTotal;
+ unsigned long HugePages_Free;
+ unsigned long HugePages_Rsvd;
+ unsigned long HugePages_Surp;
+ unsigned long HugePages_Total;
+ unsigned long Hugepagesize;
+ unsigned long Hugetlb;
+ unsigned long Inactive;
+ unsigned long Inactive_anon; // as: Inactive(anon): man 5 proc: 'to be documented'
+ unsigned long Inactive_file; // as: Inactive(file): man 5 proc: 'to be documented'
+ unsigned long KReclaimable;
+ unsigned long KernelStack;
+ unsigned long LowFree;
+ unsigned long LowTotal;
+ unsigned long Mapped;
+ unsigned long MemAvailable;
+ unsigned long MemFree;
+ unsigned long MemTotal;
+ unsigned long Mlocked; // man 5 proc: 'to be documented'
+ unsigned long MmapCopy; // man 5 proc: 'to be documented'
+ unsigned long NFS_Unstable;
+ unsigned long PageTables;
+ unsigned long Percpu;
+ unsigned long SReclaimable;
+ unsigned long SUnreclaim;
+ unsigned long ShadowCallStack;
+ unsigned long Shmem;
+ unsigned long ShmemHugePages;
+ unsigned long ShmemPmdMapped;
+ unsigned long Slab;
+ unsigned long SwapCached;
+ unsigned long SwapFree;
+ unsigned long SwapTotal;
+ unsigned long Unevictable; // man 5 proc: 'to be documented'
+ unsigned long VmallocChunk;
+ unsigned long VmallocTotal;
+ unsigned long VmallocUsed;
+ unsigned long Writeback;
+ unsigned long WritebackTmp;
+
+ unsigned long derived_mem_cached;
+ unsigned long derived_mem_hi_used;
+ unsigned long derived_mem_lo_used;
+ unsigned long derived_mem_used;
+ unsigned long derived_swap_used;
+};
+
+struct mem_hist {
+ struct meminfo_data new;
+ struct meminfo_data old;
+};
+
+struct stacks_extent {
+ int ext_numstacks;
+ struct stacks_extent *next;
+ struct meminfo_stack **stacks;
+};
+
+struct meminfo_info {
+ int refcount;
+ int meminfo_fd;
+ struct mem_hist hist;
+ int numitems;
+ enum meminfo_item *items;
+ struct stacks_extent *extents;
+ struct hsearch_data hashtab;
+ struct meminfo_result get_this;
+ time_t sav_secs;
+};
+
+
+// ___ Results 'Set' Support ||||||||||||||||||||||||||||||||||||||||||||||||||
+
+#define setNAME(e) set_meminfo_ ## e
+#define setDECL(e) static void setNAME(e) \
+ (struct meminfo_result *R, struct mem_hist *H)
+
+// regular assignment
+#define MEM_set(e,t,x) setDECL(e) { R->result. t = H->new. x; }
+// delta assignment
+#define HST_set(e,t,x) setDECL(e) { R->result. t = ( H->new. x - H->old. x ); }
+
+setDECL(noop) { (void)R; (void)H; }
+setDECL(extra) { (void)H; R->result.ul_int = 0; }
+
+MEM_set(MEM_ACTIVE, ul_int, Active)
+MEM_set(MEM_ACTIVE_ANON, ul_int, Active_anon)
+MEM_set(MEM_ACTIVE_FILE, ul_int, Active_file)
+MEM_set(MEM_ANON, ul_int, AnonPages)
+MEM_set(MEM_AVAILABLE, ul_int, MemAvailable)
+MEM_set(MEM_BOUNCE, ul_int, Bounce)
+MEM_set(MEM_BUFFERS, ul_int, Buffers)
+MEM_set(MEM_CACHED, ul_int, Cached)
+MEM_set(MEM_CACHED_ALL, ul_int, derived_mem_cached)
+MEM_set(MEM_CMA_FREE, ul_int, CmaFree)
+MEM_set(MEM_CMA_TOTAL, ul_int, CmaTotal)
+MEM_set(MEM_COMMITTED_AS, ul_int, Committed_AS)
+MEM_set(MEM_COMMIT_LIMIT, ul_int, CommitLimit)
+MEM_set(MEM_DIRECTMAP_1G, ul_int, DirectMap1G)
+MEM_set(MEM_DIRECTMAP_2M, ul_int, DirectMap2M)
+MEM_set(MEM_DIRECTMAP_4K, ul_int, DirectMap4k)
+MEM_set(MEM_DIRECTMAP_4M, ul_int, DirectMap4M)
+MEM_set(MEM_DIRTY, ul_int, Dirty)
+MEM_set(MEM_FILE_HUGEPAGES, ul_int, FileHugePages)
+MEM_set(MEM_FILE_PMDMAPPED, ul_int, FilePmdMapped)
+MEM_set(MEM_FREE, ul_int, MemFree)
+MEM_set(MEM_HARD_CORRUPTED, ul_int, HardwareCorrupted)
+MEM_set(MEM_HIGH_FREE, ul_int, HighFree)
+MEM_set(MEM_HIGH_TOTAL, ul_int, HighTotal)
+MEM_set(MEM_HIGH_USED, ul_int, derived_mem_hi_used)
+MEM_set(MEM_HUGETBL, ul_int, Hugetlb)
+MEM_set(MEM_HUGE_ANON, ul_int, AnonHugePages)
+MEM_set(MEM_HUGE_FREE, ul_int, HugePages_Free)
+MEM_set(MEM_HUGE_RSVD, ul_int, HugePages_Rsvd)
+MEM_set(MEM_HUGE_SIZE, ul_int, Hugepagesize)
+MEM_set(MEM_HUGE_SURPLUS, ul_int, HugePages_Surp)
+MEM_set(MEM_HUGE_TOTAL, ul_int, HugePages_Total)
+MEM_set(MEM_INACTIVE, ul_int, Inactive)
+MEM_set(MEM_INACTIVE_ANON, ul_int, Inactive_anon)
+MEM_set(MEM_INACTIVE_FILE, ul_int, Inactive_file)
+MEM_set(MEM_KERNEL_RECLAIM, ul_int, KReclaimable)
+MEM_set(MEM_KERNEL_STACK, ul_int, KernelStack)
+MEM_set(MEM_LOCKED, ul_int, Mlocked)
+MEM_set(MEM_LOW_FREE, ul_int, LowFree)
+MEM_set(MEM_LOW_TOTAL, ul_int, LowTotal)
+MEM_set(MEM_LOW_USED, ul_int, derived_mem_lo_used)
+MEM_set(MEM_MAPPED, ul_int, Mapped)
+MEM_set(MEM_MAP_COPY, ul_int, MmapCopy)
+MEM_set(MEM_NFS_UNSTABLE, ul_int, NFS_Unstable)
+MEM_set(MEM_PAGE_TABLES, ul_int, PageTables)
+MEM_set(MEM_PER_CPU, ul_int, Percpu)
+MEM_set(MEM_SHADOWCALLSTACK, ul_int, ShadowCallStack)
+MEM_set(MEM_SHARED, ul_int, Shmem)
+MEM_set(MEM_SHMEM_HUGE, ul_int, ShmemHugePages)
+MEM_set(MEM_SHMEM_HUGE_MAP, ul_int, ShmemPmdMapped)
+MEM_set(MEM_SLAB, ul_int, Slab)
+MEM_set(MEM_SLAB_RECLAIM, ul_int, SReclaimable)
+MEM_set(MEM_SLAB_UNRECLAIM, ul_int, SUnreclaim)
+MEM_set(MEM_TOTAL, ul_int, MemTotal)
+MEM_set(MEM_UNEVICTABLE, ul_int, Unevictable)
+MEM_set(MEM_USED, ul_int, derived_mem_used)
+MEM_set(MEM_VM_ALLOC_CHUNK, ul_int, VmallocChunk)
+MEM_set(MEM_VM_ALLOC_TOTAL, ul_int, VmallocTotal)
+MEM_set(MEM_VM_ALLOC_USED, ul_int, VmallocUsed)
+MEM_set(MEM_WRITEBACK, ul_int, Writeback)
+MEM_set(MEM_WRITEBACK_TMP, ul_int, WritebackTmp)
+
+HST_set(DELTA_ACTIVE, s_int, Active)
+HST_set(DELTA_ACTIVE_ANON, s_int, Active_anon)
+HST_set(DELTA_ACTIVE_FILE, s_int, Active_file)
+HST_set(DELTA_ANON, s_int, AnonPages)
+HST_set(DELTA_AVAILABLE, s_int, MemAvailable)
+HST_set(DELTA_BOUNCE, s_int, Bounce)
+HST_set(DELTA_BUFFERS, s_int, Buffers)
+HST_set(DELTA_CACHED, s_int, Cached)
+HST_set(DELTA_CACHED_ALL, s_int, derived_mem_cached)
+HST_set(DELTA_CMA_FREE, s_int, CmaFree)
+HST_set(DELTA_CMA_TOTAL, s_int, CmaTotal)
+HST_set(DELTA_COMMITTED_AS, s_int, Committed_AS)
+HST_set(DELTA_COMMIT_LIMIT, s_int, CommitLimit)
+HST_set(DELTA_DIRECTMAP_1G, s_int, DirectMap1G)
+HST_set(DELTA_DIRECTMAP_2M, s_int, DirectMap2M)
+HST_set(DELTA_DIRECTMAP_4K, s_int, DirectMap4k)
+HST_set(DELTA_DIRECTMAP_4M, s_int, DirectMap4M)
+HST_set(DELTA_DIRTY, s_int, Dirty)
+HST_set(DELTA_FILE_HUGEPAGES, s_int, FileHugePages)
+HST_set(DELTA_FILE_PMDMAPPED, s_int, FilePmdMapped)
+HST_set(DELTA_FREE, s_int, MemFree)
+HST_set(DELTA_HARD_CORRUPTED, s_int, HardwareCorrupted)
+HST_set(DELTA_HIGH_FREE, s_int, HighFree)
+HST_set(DELTA_HIGH_TOTAL, s_int, HighTotal)
+HST_set(DELTA_HIGH_USED, s_int, derived_mem_hi_used)
+HST_set(DELTA_HUGETBL, s_int, Hugetlb)
+HST_set(DELTA_HUGE_ANON, s_int, AnonHugePages)
+HST_set(DELTA_HUGE_FREE, s_int, HugePages_Free)
+HST_set(DELTA_HUGE_RSVD, s_int, HugePages_Rsvd)
+HST_set(DELTA_HUGE_SIZE, s_int, Hugepagesize)
+HST_set(DELTA_HUGE_SURPLUS, s_int, HugePages_Surp)
+HST_set(DELTA_HUGE_TOTAL, s_int, HugePages_Total)
+HST_set(DELTA_INACTIVE, s_int, Inactive)
+HST_set(DELTA_INACTIVE_ANON, s_int, Inactive_anon)
+HST_set(DELTA_INACTIVE_FILE, s_int, Inactive_file)
+HST_set(DELTA_KERNEL_RECLAIM, s_int, KReclaimable)
+HST_set(DELTA_KERNEL_STACK, s_int, KernelStack)
+HST_set(DELTA_LOCKED, s_int, Mlocked)
+HST_set(DELTA_LOW_FREE, s_int, LowFree)
+HST_set(DELTA_LOW_TOTAL, s_int, LowTotal)
+HST_set(DELTA_LOW_USED, s_int, derived_mem_lo_used)
+HST_set(DELTA_MAPPED, s_int, Mapped)
+HST_set(DELTA_MAP_COPY, s_int, MmapCopy)
+HST_set(DELTA_NFS_UNSTABLE, s_int, NFS_Unstable)
+HST_set(DELTA_PAGE_TABLES, s_int, PageTables)
+HST_set(DELTA_PER_CPU, s_int, Percpu)
+HST_set(DELTA_SHADOWCALLSTACK, s_int, ShadowCallStack)
+HST_set(DELTA_SHARED, s_int, Shmem)
+HST_set(DELTA_SHMEM_HUGE, s_int, ShmemHugePages)
+HST_set(DELTA_SHMEM_HUGE_MAP, s_int, ShmemPmdMapped)
+HST_set(DELTA_SLAB, s_int, Slab)
+HST_set(DELTA_SLAB_RECLAIM, s_int, SReclaimable)
+HST_set(DELTA_SLAB_UNRECLAIM, s_int, SUnreclaim)
+HST_set(DELTA_TOTAL, s_int, MemTotal)
+HST_set(DELTA_UNEVICTABLE, s_int, Unevictable)
+HST_set(DELTA_USED, s_int, derived_mem_used)
+HST_set(DELTA_VM_ALLOC_CHUNK, s_int, VmallocChunk)
+HST_set(DELTA_VM_ALLOC_TOTAL, s_int, VmallocTotal)
+HST_set(DELTA_VM_ALLOC_USED, s_int, VmallocUsed)
+HST_set(DELTA_WRITEBACK, s_int, Writeback)
+HST_set(DELTA_WRITEBACK_TMP, s_int, WritebackTmp)
+
+MEM_set(SWAP_CACHED, ul_int, SwapCached)
+MEM_set(SWAP_FREE, ul_int, SwapFree)
+MEM_set(SWAP_TOTAL, ul_int, SwapTotal)
+MEM_set(SWAP_USED, ul_int, derived_swap_used)
+
+HST_set(SWAP_DELTA_CACHED, s_int, SwapCached)
+HST_set(SWAP_DELTA_FREE, s_int, SwapFree)
+HST_set(SWAP_DELTA_TOTAL, s_int, SwapTotal)
+HST_set(SWAP_DELTA_USED, s_int, derived_swap_used)
+
+#undef setDECL
+#undef MEM_set
+#undef HST_set
+
+
+// ___ Controlling Table ||||||||||||||||||||||||||||||||||||||||||||||||||||||
+
+typedef void (*SET_t)(struct meminfo_result *, struct mem_hist *);
+#ifdef ITEMTABLE_DEBUG
+#define RS(e) (SET_t)setNAME(e), MEMINFO_ ## e, STRINGIFY(MEMINFO_ ## e)
+#else
+#define RS(e) (SET_t)setNAME(e)
+#endif
+
+#define TS(t) STRINGIFY(t)
+#define TS_noop ""
+
+ /*
+ * Need it be said?
+ * This table must be kept in the exact same order as
+ * those 'enum meminfo_item' guys ! */
+static struct {
+ SET_t setsfunc; // the actual result setting routine
+#ifdef ITEMTABLE_DEBUG
+ int enumnumb; // enumerator (must match position!)
+ char *enum2str; // enumerator name as a char* string
+#endif
+ char *type2str; // the result type as a string value
+} Item_table[] = {
+/* setsfunc type2str
+ ------------------------- ---------- */
+ { RS(noop), TS_noop },
+ { RS(extra), TS_noop },
+
+ { RS(MEM_ACTIVE), TS(ul_int) },
+ { RS(MEM_ACTIVE_ANON), TS(ul_int) },
+ { RS(MEM_ACTIVE_FILE), TS(ul_int) },
+ { RS(MEM_ANON), TS(ul_int) },
+ { RS(MEM_AVAILABLE), TS(ul_int) },
+ { RS(MEM_BOUNCE), TS(ul_int) },
+ { RS(MEM_BUFFERS), TS(ul_int) },
+ { RS(MEM_CACHED), TS(ul_int) },
+ { RS(MEM_CACHED_ALL), TS(ul_int) },
+ { RS(MEM_CMA_FREE), TS(ul_int) },
+ { RS(MEM_CMA_TOTAL), TS(ul_int) },
+ { RS(MEM_COMMITTED_AS), TS(ul_int) },
+ { RS(MEM_COMMIT_LIMIT), TS(ul_int) },
+ { RS(MEM_DIRECTMAP_1G), TS(ul_int) },
+ { RS(MEM_DIRECTMAP_2M), TS(ul_int) },
+ { RS(MEM_DIRECTMAP_4K), TS(ul_int) },
+ { RS(MEM_DIRECTMAP_4M), TS(ul_int) },
+ { RS(MEM_DIRTY), TS(ul_int) },
+ { RS(MEM_FILE_HUGEPAGES), TS(ul_int) },
+ { RS(MEM_FILE_PMDMAPPED), TS(ul_int) },
+ { RS(MEM_FREE), TS(ul_int) },
+ { RS(MEM_HARD_CORRUPTED), TS(ul_int) },
+ { RS(MEM_HIGH_FREE), TS(ul_int) },
+ { RS(MEM_HIGH_TOTAL), TS(ul_int) },
+ { RS(MEM_HIGH_USED), TS(ul_int) },
+ { RS(MEM_HUGETBL), TS(ul_int) },
+ { RS(MEM_HUGE_ANON), TS(ul_int) },
+ { RS(MEM_HUGE_FREE), TS(ul_int) },
+ { RS(MEM_HUGE_RSVD), TS(ul_int) },
+ { RS(MEM_HUGE_SIZE), TS(ul_int) },
+ { RS(MEM_HUGE_SURPLUS), TS(ul_int) },
+ { RS(MEM_HUGE_TOTAL), TS(ul_int) },
+ { RS(MEM_INACTIVE), TS(ul_int) },
+ { RS(MEM_INACTIVE_ANON), TS(ul_int) },
+ { RS(MEM_INACTIVE_FILE), TS(ul_int) },
+ { RS(MEM_KERNEL_RECLAIM), TS(ul_int) },
+ { RS(MEM_KERNEL_STACK), TS(ul_int) },
+ { RS(MEM_LOCKED), TS(ul_int) },
+ { RS(MEM_LOW_FREE), TS(ul_int) },
+ { RS(MEM_LOW_TOTAL), TS(ul_int) },
+ { RS(MEM_LOW_USED), TS(ul_int) },
+ { RS(MEM_MAPPED), TS(ul_int) },
+ { RS(MEM_MAP_COPY), TS(ul_int) },
+ { RS(MEM_NFS_UNSTABLE), TS(ul_int) },
+ { RS(MEM_PAGE_TABLES), TS(ul_int) },
+ { RS(MEM_PER_CPU), TS(ul_int) },
+ { RS(MEM_SHADOWCALLSTACK), TS(ul_int) },
+ { RS(MEM_SHARED), TS(ul_int) },
+ { RS(MEM_SHMEM_HUGE), TS(ul_int) },
+ { RS(MEM_SHMEM_HUGE_MAP), TS(ul_int) },
+ { RS(MEM_SLAB), TS(ul_int) },
+ { RS(MEM_SLAB_RECLAIM), TS(ul_int) },
+ { RS(MEM_SLAB_UNRECLAIM), TS(ul_int) },
+ { RS(MEM_TOTAL), TS(ul_int) },
+ { RS(MEM_UNEVICTABLE), TS(ul_int) },
+ { RS(MEM_USED), TS(ul_int) },
+ { RS(MEM_VM_ALLOC_CHUNK), TS(ul_int) },
+ { RS(MEM_VM_ALLOC_TOTAL), TS(ul_int) },
+ { RS(MEM_VM_ALLOC_USED), TS(ul_int) },
+ { RS(MEM_WRITEBACK), TS(ul_int) },
+ { RS(MEM_WRITEBACK_TMP), TS(ul_int) },
+
+ { RS(DELTA_ACTIVE), TS(s_int) },
+ { RS(DELTA_ACTIVE_ANON), TS(s_int) },
+ { RS(DELTA_ACTIVE_FILE), TS(s_int) },
+ { RS(DELTA_ANON), TS(s_int) },
+ { RS(DELTA_AVAILABLE), TS(s_int) },
+ { RS(DELTA_BOUNCE), TS(s_int) },
+ { RS(DELTA_BUFFERS), TS(s_int) },
+ { RS(DELTA_CACHED), TS(s_int) },
+ { RS(DELTA_CACHED_ALL), TS(s_int) },
+ { RS(DELTA_CMA_FREE), TS(s_int) },
+ { RS(DELTA_CMA_TOTAL), TS(s_int) },
+ { RS(DELTA_COMMITTED_AS), TS(s_int) },
+ { RS(DELTA_COMMIT_LIMIT), TS(s_int) },
+ { RS(DELTA_DIRECTMAP_1G), TS(s_int) },
+ { RS(DELTA_DIRECTMAP_2M), TS(s_int) },
+ { RS(DELTA_DIRECTMAP_4K), TS(s_int) },
+ { RS(DELTA_DIRECTMAP_4M), TS(s_int) },
+ { RS(DELTA_DIRTY), TS(s_int) },
+ { RS(DELTA_FILE_HUGEPAGES), TS(s_int) },
+ { RS(DELTA_FILE_PMDMAPPED), TS(s_int) },
+ { RS(DELTA_FREE), TS(s_int) },
+ { RS(DELTA_HARD_CORRUPTED), TS(s_int) },
+ { RS(DELTA_HIGH_FREE), TS(s_int) },
+ { RS(DELTA_HIGH_TOTAL), TS(s_int) },
+ { RS(DELTA_HIGH_USED), TS(s_int) },
+ { RS(DELTA_HUGETBL), TS(s_int) },
+ { RS(DELTA_HUGE_ANON), TS(s_int) },
+ { RS(DELTA_HUGE_FREE), TS(s_int) },
+ { RS(DELTA_HUGE_RSVD), TS(s_int) },
+ { RS(DELTA_HUGE_SIZE), TS(s_int) },
+ { RS(DELTA_HUGE_SURPLUS), TS(s_int) },
+ { RS(DELTA_HUGE_TOTAL), TS(s_int) },
+ { RS(DELTA_INACTIVE), TS(s_int) },
+ { RS(DELTA_INACTIVE_ANON), TS(s_int) },
+ { RS(DELTA_INACTIVE_FILE), TS(s_int) },
+ { RS(DELTA_KERNEL_RECLAIM), TS(s_int) },
+ { RS(DELTA_KERNEL_STACK), TS(s_int) },
+ { RS(DELTA_LOCKED), TS(s_int) },
+ { RS(DELTA_LOW_FREE), TS(s_int) },
+ { RS(DELTA_LOW_TOTAL), TS(s_int) },
+ { RS(DELTA_LOW_USED), TS(s_int) },
+ { RS(DELTA_MAPPED), TS(s_int) },
+ { RS(DELTA_MAP_COPY), TS(s_int) },
+ { RS(DELTA_NFS_UNSTABLE), TS(s_int) },
+ { RS(DELTA_PAGE_TABLES), TS(s_int) },
+ { RS(DELTA_PER_CPU), TS(s_int) },
+ { RS(DELTA_SHADOWCALLSTACK), TS(s_int) },
+ { RS(DELTA_SHARED), TS(s_int) },
+ { RS(DELTA_SHMEM_HUGE), TS(s_int) },
+ { RS(DELTA_SHMEM_HUGE_MAP), TS(s_int) },
+ { RS(DELTA_SLAB), TS(s_int) },
+ { RS(DELTA_SLAB_RECLAIM), TS(s_int) },
+ { RS(DELTA_SLAB_UNRECLAIM), TS(s_int) },
+ { RS(DELTA_TOTAL), TS(s_int) },
+ { RS(DELTA_UNEVICTABLE), TS(s_int) },
+ { RS(DELTA_USED), TS(s_int) },
+ { RS(DELTA_VM_ALLOC_CHUNK), TS(s_int) },
+ { RS(DELTA_VM_ALLOC_TOTAL), TS(s_int) },
+ { RS(DELTA_VM_ALLOC_USED), TS(s_int) },
+ { RS(DELTA_WRITEBACK), TS(s_int) },
+ { RS(DELTA_WRITEBACK_TMP), TS(s_int) },
+
+ { RS(SWAP_CACHED), TS(ul_int) },
+ { RS(SWAP_FREE), TS(ul_int) },
+ { RS(SWAP_TOTAL), TS(ul_int) },
+ { RS(SWAP_USED), TS(ul_int) },
+
+ { RS(SWAP_DELTA_CACHED), TS(s_int) },
+ { RS(SWAP_DELTA_FREE), TS(s_int) },
+ { RS(SWAP_DELTA_TOTAL), TS(s_int) },
+ { RS(SWAP_DELTA_USED), TS(s_int) },
+};
+
+ /* please note,
+ * this enum MUST be 1 greater than the highest value of any enum */
+enum meminfo_item MEMINFO_logical_end = MAXTABLE(Item_table);
+
+#undef setNAME
+#undef RS
+
+
+// ___ Private Functions ||||||||||||||||||||||||||||||||||||||||||||||||||||||
+
+static inline void meminfo_assign_results (
+ struct meminfo_stack *stack,
+ struct mem_hist *hist)
+{
+ struct meminfo_result *this = stack->head;
+
+ for (;;) {
+ enum meminfo_item item = this->item;
+ if (item >= MEMINFO_logical_end)
+ break;
+ Item_table[item].setsfunc(this, hist);
+ ++this;
+ }
+ return;
+} // end: meminfo_assign_results
+
+
+static void meminfo_extents_free_all (
+ struct meminfo_info *info)
+{
+ while (info->extents) {
+ struct stacks_extent *p = info->extents;
+ info->extents = info->extents->next;
+ free(p);
+ };
+} // end: meminfo_extents_free_all
+
+
+static inline struct meminfo_result *meminfo_itemize_stack (
+ struct meminfo_result *p,
+ int depth,
+ enum meminfo_item *items)
+{
+ struct meminfo_result *p_sav = p;
+ int i;
+
+ for (i = 0; i < depth; i++) {
+ p->item = items[i];
+ ++p;
+ }
+ return p_sav;
+} // end: meminfo_itemize_stack
+
+
+static inline int meminfo_items_check_failed (
+ int numitems,
+ enum meminfo_item *items)
+{
+ int i;
+
+ /* if an enum is passed instead of an address of one or more enums, ol' gcc
+ * will silently convert it to an address (possibly NULL). only clang will
+ * offer any sort of warning like the following:
+ *
+ * warning: incompatible integer to pointer conversion passing 'int' to parameter of type 'enum meminfo_item *'
+ * my_stack = procps_meminfo_select(info, MEMINFO_noop, num);
+ * ^~~~~~~~~~~~~~~~
+ */
+ if (numitems < 1
+ || (void *)items < (void *)(unsigned long)(2 * MEMINFO_logical_end))
+ return 1;
+
+ for (i = 0; i < numitems; i++) {
+ // a meminfo_item is currently unsigned, but we'll protect our future
+ if (items[i] < 0)
+ return 1;
+ if (items[i] >= MEMINFO_logical_end)
+ return 1;
+ }
+
+ return 0;
+} // end: meminfo_items_check_failed
+
+
+static int meminfo_make_hash_failed (
+ struct meminfo_info *info)
+{
+ #define htVAL(f) e.key = STRINGIFY(f); e.data = &info->hist.new. f; \
+ if (!hsearch_r(e, ENTER, &ep, &info->hashtab)) return 1;
+ #define htXTRA(k,f) e.key = STRINGIFY(k); e.data = &info->hist.new. f; \
+ if (!hsearch_r(e, ENTER, &ep, &info->hashtab)) return 1;
+ ENTRY e, *ep;
+ size_t n;
+
+ // will also include those derived fields (more is better)
+ n = sizeof(struct meminfo_data) / sizeof(unsigned long);
+ // we'll follow the hsearch recommendation of an extra 25%
+ if (!hcreate_r(n + (n / 4), &info->hashtab))
+ return 1;
+
+ htVAL(Active)
+ htXTRA(Active(anon), Active_anon)
+ htXTRA(Active(file), Active_file)
+ htVAL(AnonHugePages)
+ htVAL(AnonPages)
+ htVAL(Bounce)
+ htVAL(Buffers)
+ htVAL(Cached)
+ htVAL(CmaFree)
+ htVAL(CmaTotal)
+ htVAL(CommitLimit)
+ htVAL(Committed_AS)
+ htVAL(DirectMap1G)
+ htVAL(DirectMap2M)
+ htVAL(DirectMap4M)
+ htVAL(DirectMap4k)
+ htVAL(Dirty)
+ htVAL(FileHugePages)
+ htVAL(FilePmdMapped)
+ htVAL(HardwareCorrupted)
+ htVAL(HighFree)
+ htVAL(HighTotal)
+ htVAL(HugePages_Free)
+ htVAL(HugePages_Rsvd)
+ htVAL(HugePages_Surp)
+ htVAL(HugePages_Total)
+ htVAL(Hugepagesize)
+ htVAL(Hugetlb)
+ htVAL(Inactive)
+ htXTRA(Inactive(anon), Inactive_anon)
+ htXTRA(Inactive(file), Inactive_file)
+ htVAL(KReclaimable)
+ htVAL(KernelStack)
+ htVAL(LowFree)
+ htVAL(LowTotal)
+ htVAL(Mapped)
+ htVAL(MemAvailable)
+ htVAL(MemFree)
+ htVAL(MemTotal)
+ htVAL(Mlocked)
+ htVAL(MmapCopy)
+ htVAL(NFS_Unstable)
+ htVAL(PageTables)
+ htVAL(Percpu)
+ htVAL(SReclaimable)
+ htVAL(SUnreclaim)
+ htVAL(ShadowCallStack)
+ htVAL(Shmem)
+ htVAL(ShmemHugePages)
+ htVAL(ShmemPmdMapped)
+ htVAL(Slab)
+ htVAL(SwapCached)
+ htVAL(SwapFree)
+ htVAL(SwapTotal)
+ htVAL(Unevictable)
+ htVAL(VmallocChunk)
+ htVAL(VmallocTotal)
+ htVAL(VmallocUsed)
+ htVAL(Writeback)
+ htVAL(WritebackTmp)
+
+ return 0;
+ #undef htVAL
+ #undef htXTRA
+} // end: meminfo_make_hash_failed
+
+
+/*
+ * meminfo_read_failed():
+ *
+ * Read the data out of /proc/meminfo putting the information
+ * into the supplied info structure
+ */
+static int meminfo_read_failed (
+ struct meminfo_info *info)
+{
+ /* a 'memory history reference' macro for readability,
+ so we can focus the field names ... */
+ #define mHr(f) info->hist.new. f
+ char buf[MEMINFO_BUFF];
+ char *head, *tail;
+ int size;
+ unsigned long *valptr;
+ signed long mem_used;
+
+ // remember history from last time around
+ memcpy(&info->hist.old, &info->hist.new, sizeof(struct meminfo_data));
+ // clear out the soon to be 'current' values
+ memset(&info->hist.new, 0, sizeof(struct meminfo_data));
+
+ if (-1 == info->meminfo_fd
+ && (-1 == (info->meminfo_fd = open(MEMINFO_FILE, O_RDONLY))))
+ return 1;
+
+ if (lseek(info->meminfo_fd, 0L, SEEK_SET) == -1)
+ return 1;
+
+ for (;;) {
+ if ((size = read(info->meminfo_fd, buf, sizeof(buf)-1)) < 0) {
+ if (errno == EINTR || errno == EAGAIN)
+ continue;
+ return 1;
+ }
+ break;
+ }
+ if (size == 0) {
+ errno = EIO;
+ return 1;
+ }
+ buf[size] = '\0';
+
+ head = buf;
+
+ for (;;) {
+ static __thread ENTRY e; // keep coverity off our backs (e.data)
+ ENTRY *ep;
+
+ if (!(tail = strchr(head, ':')))
+ break;
+ *tail = '\0';
+ valptr = NULL;
+
+ e.key = head;
+ if (hsearch_r(e, FIND, &ep, &info->hashtab))
+ valptr = ep->data;
+ head = tail + 1;
+ if (valptr)
+ *valptr = strtoul(head, NULL, 10);
+
+ if (!(tail = strchr(head, '\n')))
+ break;
+ head = tail + 1;
+ }
+
+ if (0 == mHr(MemAvailable))
+ mHr(MemAvailable) = mHr(MemFree);
+ mHr(derived_mem_cached) = mHr(Cached) + mHr(SReclaimable);
+
+ /* if 'available' is greater than 'total' or our calculation of mem_used
+ overflows, that's symptomatic of running within a lxc container where
+ such values will be dramatically distorted over those of the host. */
+ if (mHr(MemAvailable) > mHr(MemTotal))
+ mHr(MemAvailable) = mHr(MemFree);
+ mem_used = mHr(MemTotal) - mHr(MemAvailable);
+ if (mem_used < 0)
+ mem_used = mHr(MemTotal) - mHr(MemFree);
+ mHr(derived_mem_used) = (unsigned long)mem_used;
+
+ if (mHr(HighFree) < mHr(HighTotal))
+ mHr(derived_mem_hi_used) = mHr(HighTotal) - mHr(HighFree);
+
+ if (0 == mHr(LowTotal)) {
+ mHr(LowTotal) = mHr(MemTotal);
+ mHr(LowFree) = mHr(MemFree);
+ }
+ if (mHr(LowFree) < mHr(LowTotal))
+ mHr(derived_mem_lo_used) = mHr(LowTotal) - mHr(LowFree);
+
+ if (mHr(SwapFree) < mHr(SwapTotal))
+ mHr(derived_swap_used) = mHr(SwapTotal) - mHr(SwapFree);
+
+ return 0;
+ #undef mHr
+} // end: meminfo_read_failed
+
+
+/*
+ * meminfo_stacks_alloc():
+ *
+ * Allocate and initialize one or more stacks each of which is anchored in an
+ * associated context structure.
+ *
+ * All such stacks will have their result structures properly primed with
+ * 'items', while the result itself will be zeroed.
+ *
+ * Returns a stacks_extent struct anchoring the 'heads' of each new stack.
+ */
+static struct stacks_extent *meminfo_stacks_alloc (
+ struct meminfo_info *info,
+ int maxstacks)
+{
+ struct stacks_extent *p_blob;
+ struct meminfo_stack **p_vect;
+ struct meminfo_stack *p_head;
+ size_t vect_size, head_size, list_size, blob_size;
+ void *v_head, *v_list;
+ int i;
+
+ vect_size = sizeof(void *) * maxstacks; // size of the addr vectors |
+ vect_size += sizeof(void *); // plus NULL addr delimiter |
+ head_size = sizeof(struct meminfo_stack); // size of that head struct |
+ list_size = sizeof(struct meminfo_result)*info->numitems; // any single results stack |
+ blob_size = sizeof(struct stacks_extent); // the extent anchor itself |
+ blob_size += vect_size; // plus room for addr vects |
+ blob_size += head_size * maxstacks; // plus room for head thing |
+ blob_size += list_size * maxstacks; // plus room for our stacks |
+
+ /* note: all of this memory is allocated in a single blob, facilitating a later free(). |
+ as a minimum, it is important that the result structures themselves always are |
+ contiguous within each stack since they're accessed through relative position. | */
+ if (NULL == (p_blob = calloc(1, blob_size)))
+ return NULL;
+
+ p_blob->next = info->extents; // push this extent onto... |
+ info->extents = p_blob; // ...some existing extents |
+ p_vect = (void *)p_blob + sizeof(struct stacks_extent); // prime our vector pointer |
+ p_blob->stacks = p_vect; // set actual vectors start |
+ v_head = (void *)p_vect + vect_size; // prime head pointer start |
+ v_list = v_head + (head_size * maxstacks); // prime our stacks pointer |
+
+ for (i = 0; i < maxstacks; i++) {
+ p_head = (struct meminfo_stack *)v_head;
+ p_head->head = meminfo_itemize_stack((struct meminfo_result *)v_list, info->numitems, info->items);
+ p_blob->stacks[i] = p_head;
+ v_list += list_size;
+ v_head += head_size;
+ }
+ p_blob->ext_numstacks = maxstacks;
+ return p_blob;
+} // end: meminfo_stacks_alloc
+
+
+// ___ Public Functions |||||||||||||||||||||||||||||||||||||||||||||||||||||||
+
+// --- standard required functions --------------------------------------------
+
+/*
+ * procps_meminfo_new:
+ *
+ * Create a new container to hold the stat information
+ *
+ * The initial refcount is 1, and needs to be decremented
+ * to release the resources of the structure.
+ *
+ * Returns: < 0 on failure, 0 on success along with
+ * a pointer to a new context struct
+ */
+PROCPS_EXPORT int procps_meminfo_new (
+ struct meminfo_info **info)
+{
+ struct meminfo_info *p;
+
+#ifdef ITEMTABLE_DEBUG
+ int i, failed = 0;
+ for (i = 0; i < MAXTABLE(Item_table); i++) {
+ if (i != Item_table[i].enumnumb) {
+ fprintf(stderr, "%s: enum/table error: Item_table[%d] was %s, but its value is %d\n"
+ , __FILE__, i, Item_table[i].enum2str, Item_table[i].enumnumb);
+ failed = 1;
+ }
+ }
+ if (failed) _Exit(EXIT_FAILURE);
+#endif
+
+ if (info == NULL || *info != NULL)
+ return -EINVAL;
+ if (!(p = calloc(1, sizeof(struct meminfo_info))))
+ return -ENOMEM;
+
+ p->refcount = 1;
+ p->meminfo_fd = -1;
+
+ if (meminfo_make_hash_failed(p)) {
+ free(p);
+ return -errno;
+ }
+
+ /* do a priming read here for the following potential benefits: |
+ 1) ensure there will be no problems with subsequent access |
+ 2) make delta results potentially useful, even if 1st time |
+ 3) elimnate need for history distortions 1st time 'switch' | */
+ if (meminfo_read_failed(p)) {
+ procps_meminfo_unref(&p);
+ return -errno;
+ }
+
+ *info = p;
+ return 0;
+} // end: procps_meminfo_new
+
+
+PROCPS_EXPORT int procps_meminfo_ref (
+ struct meminfo_info *info)
+{
+ if (info == NULL)
+ return -EINVAL;
+
+ info->refcount++;
+ return info->refcount;
+} // end: procps_meminfo_ref
+
+
+PROCPS_EXPORT int procps_meminfo_unref (
+ struct meminfo_info **info)
+{
+ if (info == NULL || *info == NULL)
+ return -EINVAL;
+
+ (*info)->refcount--;
+
+ if ((*info)->refcount < 1) {
+ int errno_sav = errno;
+
+ if ((*info)->meminfo_fd != -1)
+ close((*info)->meminfo_fd);
+
+ if ((*info)->extents)
+ meminfo_extents_free_all((*info));
+ if ((*info)->items)
+ free((*info)->items);
+ hdestroy_r(&(*info)->hashtab);
+
+ free(*info);
+ *info = NULL;
+
+ errno = errno_sav;
+ return 0;
+ }
+ return (*info)->refcount;
+} // end: procps_meminfo_unref
+
+
+// --- variable interface functions -------------------------------------------
+
+PROCPS_EXPORT struct meminfo_result *procps_meminfo_get (
+ struct meminfo_info *info,
+ enum meminfo_item item)
+{
+ time_t cur_secs;
+
+ errno = EINVAL;
+ if (info == NULL)
+ return NULL;
+ if (item < 0 || item >= MEMINFO_logical_end)
+ return NULL;
+ errno = 0;
+
+ /* we will NOT read the meminfo file with every call - rather, we'll offer
+ a granularity of 1 second between reads ... */
+ cur_secs = time(NULL);
+ if (1 <= cur_secs - info->sav_secs) {
+ if (meminfo_read_failed(info))
+ return NULL;
+ info->sav_secs = cur_secs;
+ }
+
+ info->get_this.item = item;
+ // with 'get', we must NOT honor the usual 'noop' guarantee
+ info->get_this.result.ul_int = 0;
+ Item_table[item].setsfunc(&info->get_this, &info->hist);
+
+ return &info->get_this;
+} // end: procps_meminfo_get
+
+
+/* procps_meminfo_select():
+ *
+ * Harvest all the requested MEM and/or SWAP information then return
+ * it in a results stack.
+ *
+ * Returns: pointer to a meminfo_stack struct on success, NULL on error.
+ */
+PROCPS_EXPORT struct meminfo_stack *procps_meminfo_select (
+ struct meminfo_info *info,
+ enum meminfo_item *items,
+ int numitems)
+{
+ errno = EINVAL;
+ if (info == NULL || items == NULL)
+ return NULL;
+ if (meminfo_items_check_failed(numitems, items))
+ return NULL;
+ errno = 0;
+
+ /* is this the first time or have things changed since we were last called?
+ if so, gotta' redo all of our stacks stuff ... */
+ if (info->numitems != numitems + 1
+ || memcmp(info->items, items, sizeof(enum meminfo_item) * numitems)) {
+ // allow for our MEMINFO_logical_end
+ if (!(info->items = realloc(info->items, sizeof(enum meminfo_item) * (numitems + 1))))
+ return NULL;
+ memcpy(info->items, items, sizeof(enum meminfo_item) * numitems);
+ info->items[numitems] = MEMINFO_logical_end;
+ info->numitems = numitems + 1;
+ if (info->extents)
+ meminfo_extents_free_all(info);
+ }
+ if (!info->extents
+ && (!meminfo_stacks_alloc(info, 1)))
+ return NULL;
+
+ if (meminfo_read_failed(info))
+ return NULL;
+ meminfo_assign_results(info->extents->stacks[0], &info->hist);
+
+ return info->extents->stacks[0];
+} // end: procps_meminfo_select
+
+
+// --- special debugging function(s) ------------------------------------------
+/*
+ * The following isn't part of the normal programming interface. Rather,
+ * it exists to validate result types referenced in application programs.
+ *
+ * It's used only when:
+ * 1) the 'XTRA_PROCPS_DEBUG' has been defined, or
+ * 2) an #include of 'xtra-procps-debug.h' is used
+ */
+
+PROCPS_EXPORT struct meminfo_result *xtra_meminfo_get (
+ struct meminfo_info *info,
+ enum meminfo_item actual_enum,
+ const char *typestr,
+ const char *file,
+ int lineno)
+{
+ struct meminfo_result *r = procps_meminfo_get(info, actual_enum);
+
+ if (actual_enum < 0 || actual_enum >= MEMINFO_logical_end) {
+ fprintf(stderr, "%s line %d: invalid item = %d, type = %s\n"
+ , file, lineno, actual_enum, typestr);
+ }
+ if (r) {
+ char *str = Item_table[r->item].type2str;
+ if (str[0]
+ && (strcmp(typestr, str)))
+ fprintf(stderr, "%s line %d: was %s, expected %s\n", file, lineno, typestr, str);
+ }
+ return r;
+} // end: xtra_meminfo_get_
+
+
+PROCPS_EXPORT struct meminfo_result *xtra_meminfo_val (
+ int relative_enum,
+ const char *typestr,
+ const struct meminfo_stack *stack,
+ struct meminfo_info *info,
+ const char *file,
+ int lineno)
+{
+ char *str;
+ int i;
+
+ for (i = 0; stack->head[i].item < MEMINFO_logical_end; i++)
+ ;
+ if (relative_enum < 0 || relative_enum >= i) {
+ fprintf(stderr, "%s line %d: invalid relative_enum = %d, valid range = 0-%d\n"
+ , file, lineno, relative_enum, i-1);
+ return NULL;
+ }
+ str = Item_table[stack->head[relative_enum].item].type2str;
+ if (str[0]
+ && (strcmp(typestr, str))) {
+ fprintf(stderr, "%s line %d: was %s, expected %s\n", file, lineno, typestr, str);
+ }
+ return &stack->head[relative_enum];
+ (void)info;
+} // end: xtra_meminfo_val
diff --git a/library/namespace.c b/library/namespace.c
new file mode 100644
index 0000000..04e4c45
--- /dev/null
+++ b/library/namespace.c
@@ -0,0 +1,116 @@
+/*
+ * namespace.c - Library API for Linux namespaces
+ *
+ * Copyright © 2015-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2015-2023 Craig Small <csmall@dropbear.xyz>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <errno.h>
+#include <stdio.h>
+#include <string.h>
+#include <sys/stat.h>
+
+#include "misc.h"
+#include "procps-private.h"
+
+#define NSPATHLEN 64
+
+static const char *ns_names[] = {
+ [PROCPS_NS_CGROUP] = "cgroup",
+ [PROCPS_NS_IPC] = "ipc",
+ [PROCPS_NS_MNT] = "mnt",
+ [PROCPS_NS_NET] = "net",
+ [PROCPS_NS_PID] = "pid",
+ [PROCPS_NS_TIME] = "time",
+ [PROCPS_NS_USER] = "user",
+ [PROCPS_NS_UTS] = "uts"
+};
+
+
+/*
+ * procps_ns_get_name:
+ *
+ * Find the name of the namespace with the given ID
+ *
+ * @id: The ID of the required namespace, see
+ * namespace_type
+ *
+ * Returns: static string of the namespace
+ */
+PROCPS_EXPORT const char *procps_ns_get_name(const int id)
+{
+ if (id >= PROCPS_NS_COUNT || id < 0)
+ return NULL;
+ return ns_names[id];
+}
+
+/*
+ * procps_ns_get_id:
+ *
+ * Find the namespace ID that matches the given
+ * name.
+ *
+ * @name: the name of the required namespace
+ *
+ * Returns: ID of found name
+ * < 0 means error
+ */
+PROCPS_EXPORT int procps_ns_get_id(const char *name)
+{
+ int i;
+
+ if (name == NULL)
+ return -EINVAL;
+ for (i=0; i < PROCPS_NS_COUNT; i++)
+ if (!strcmp(ns_names[i], name))
+ return i;
+ return -EINVAL;
+}
+
+/*
+ * procs_ns_read_pid:
+ *
+ * Find all namespaces for the given process.
+ * @pid: Process ID for required process
+ * @nsp: Pointer to the struct procps_ns
+ *
+ * Returns:
+ * 0 on success
+ * < 0 on error
+ */
+PROCPS_EXPORT int procps_ns_read_pid(
+ const int pid,
+ struct procps_ns *nsp)
+{
+ char path[NSPATHLEN+1];
+ struct stat st;
+ int i;
+
+ if (nsp == NULL)
+ return -EINVAL;
+ if (pid < 1)
+ return -EINVAL;
+
+ for (i=0; i < PROCPS_NS_COUNT; i++) {
+ snprintf(path, NSPATHLEN, "/proc/%d/ns/%s", pid, ns_names[i]);
+ if (0 == stat(path, &st))
+ nsp->ns[i] = (unsigned long)st.st_ino;
+ else
+ nsp->ns[i] = 0;
+ }
+ return 0;
+}
diff --git a/library/numa.c b/library/numa.c
new file mode 100644
index 0000000..3fca413
--- /dev/null
+++ b/library/numa.c
@@ -0,0 +1,114 @@
+/*
+ * NUMA node support for <PIDS> & <STAT> interfaces
+ *
+ * Copyright © 2017-2023 Jim Warner <james.warner@comcast.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef NUMA_DISABLE
+#include <dlfcn.h>
+#endif
+#include <stdlib.h>
+
+#include "numa.h"
+
+/*
+ * We're structured so that if numa_init() is NOT called or that ./configure |
+ * --disable-numa WAS specified, then calls to both of our primary functions |
+ * of numa_max_node() plus numa_node_of_cpu() would always return a negative |
+ * 1 which signifies that NUMA information isn't available. That ./configure |
+ * option might be required when libdl.so (necessary for dlopen) is missing. |
+ */
+
+
+/* ------------------------------------------------------------------------- +
+ a strictly development #define, existing specifically for the top program |
+ ( and it has no affect if ./configure --disable-numa has been specified ) | */
+//#define PRETEND_NUMA // pretend there are 3 'discontiguous' numa nodes |
+// ------------------------------------------------------------------------- +
+
+
+static int null_max_node (void) { return -1; }
+static int null_node_of_cpu (int n) { (void)n; return -1; }
+
+
+#ifndef NUMA_DISABLE
+ #ifdef PRETEND_NUMA
+static int fake_max_node (void) { return 3; }
+static int fake_node_of_cpu (int n) { return (1 == (n % 4)) ? 0 : (n % 4); }
+ #endif
+#endif
+
+
+#ifndef NUMA_DISABLE
+static void *libnuma_handle;
+#endif
+int (*numa_max_node) (void) = null_max_node;
+int (*numa_node_of_cpu) (int) = null_node_of_cpu;
+
+
+void numa_init (void) {
+ static int initialized;
+
+ if (initialized)
+ return;
+
+#ifndef NUMA_DISABLE
+ #ifndef PRETEND_NUMA
+ // we'll try for the most recent version, then a version we know works...
+ if ((libnuma_handle = dlopen("libnuma.so", RTLD_LAZY))
+ || (libnuma_handle = dlopen("libnuma.so.1", RTLD_LAZY))) {
+ numa_max_node = dlsym(libnuma_handle, "numa_max_node");
+ numa_node_of_cpu = dlsym(libnuma_handle, "numa_node_of_cpu");
+ if (numa_max_node == NULL
+ || (numa_node_of_cpu == NULL)) {
+ // this dlclose is safe - we've yet to call numa_node_of_cpu
+ // ( there's one other dlclose which has now been disabled )
+ dlclose(libnuma_handle);
+ libnuma_handle = NULL;
+ numa_max_node = null_max_node;
+ numa_node_of_cpu = null_node_of_cpu;
+ }
+ }
+ #else
+ libnuma_handle = (void *)-1;
+ numa_max_node = fake_max_node;
+ numa_node_of_cpu = fake_node_of_cpu;
+ #endif
+#endif
+ initialized = 1;
+} // end: numa_init
+
+
+void numa_uninit (void) {
+#ifndef PRETEND_NUMA
+ /* note: we'll skip a dlcose() to avoid the following libnuma memory
+ * leak which is triggered after a call to numa_node_of_cpu():
+ * ==1234== LEAK SUMMARY:
+ * ==1234== definitely lost: 512 bytes in 1 blocks
+ * ==1234== indirectly lost: 48 bytes in 2 blocks
+ * ==1234== ...
+ * [ thanks very much libnuma for all the pains you have caused us ]
+ */
+// if (libnuma_handle)
+// dlclose(libnuma_handle);
+#endif
+} // end: numa_uninit
+
+
+#if defined(PRETEND_NUMA) && defined(NUMA_DISABLE)
+# warning 'PRETEND_NUMA' ignored, 'NUMA_DISABLE' is active
+#endif
diff --git a/library/pids.c b/library/pids.c
new file mode 100644
index 0000000..6ae94ad
--- /dev/null
+++ b/library/pids.c
@@ -0,0 +1,1700 @@
+/*
+ * pids.c - process related definitions for libproc2
+ *
+ * Copyright © 2015-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2015-2023 Craig Small <csmall@dropbear.xyz>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+//efine _GNU_SOURCE // for qsort_r
+
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include "devname.h"
+#include "misc.h"
+#include "numa.h"
+#include "readproc.h"
+#include "wchan.h"
+
+#include "procps-private.h"
+#include "pids.h"
+
+
+//#define UNREF_RPTHASH // report hash details at uref() time
+
+#define FILL_ID_MAX 255 // upper limit with select of pid/uid
+#define STACKS_INIT 1024 // amount of initial stack allocation
+#define STACKS_GROW 128 // amount reap stack allocations grow
+#define NEWOLD_INIT 1024 // amount for initial hist allocation
+#define NEWOLD_GROW 128 // amt by which hist allocations grow
+
+/* ------------------------------------------------------------------------- +
+ this provision can be used to ensure that our Item_table was synchronized |
+ with those enumerators found in the associated header file. It's intended |
+ to only be used locally (& temporarily) at some point prior to a release! | */
+// #define ITEMTABLE_DEBUG //----------------------------------------------- |
+// ------------------------------------------------------------------------- +
+
+
+struct stacks_extent {
+ int ext_numstacks;
+ struct stacks_extent *next;
+ struct pids_stack **stacks;
+};
+
+struct fetch_support {
+ struct pids_stack **anchor; // reap/select consolidated extents
+ int n_alloc; // number of above pointers allocated
+ int n_inuse; // number of above pointers occupied
+ int n_alloc_save; // last known results.stacks allocation
+ struct pids_fetch results; // counts + stacks for return to caller
+ struct pids_counts counts; // actual counts pointed to by 'results'
+};
+
+typedef void (*SET_t)(struct pids_info *, struct pids_result *, proc_t *);
+
+struct pids_info {
+ int refcount;
+ int maxitems; // includes 'logical_end' delimiter
+ enum pids_item *items; // includes 'logical_end' delimiter
+ struct stacks_extent *extents; // anchor for all resettable extents
+ struct stacks_extent *otherexts; // anchor for invariant extents // <=== currently unused
+ struct fetch_support fetch; // support for procps_pids_reap, select, fatal
+ int history_yes; // need historical data
+ struct history_info *hist; // pointer to historical support data
+ proc_t*(*read_something)(PROCTAB*, proc_t*); // readproc/readeither via which
+ unsigned pgs2k_shift; // to convert some proc vaules
+ unsigned oldflags; // the old library PROC_FILL flagss
+ PROCTAB *fetch_PT; // oldlib interface for 'select' & 'reap'
+ unsigned long hertz; // for the 'TIME' & 'UTILIZATION' calculations
+ unsigned long long boot_tics; // for TIME_ELAPSED & 'UTILIZATION' calculations
+ PROCTAB *get_PT; // oldlib interface for active 'get'
+ struct stacks_extent *get_ext; // for active 'get' (also within 'extents')
+ enum pids_fetch_type get_type; // last known type of 'get' request
+ int seterr; // an ENOMEM encountered during assign
+ proc_t get_proc; // the proc_t used by procps_pids_get
+ proc_t fetch_proc; // the proc_t used by pids_stacks_fetch
+ SET_t *func_array; // extracted Item_table 'setsfunc' pointers
+};
+
+
+// ___ Free Storage Support |||||||||||||||||||||||||||||||||||||||||||||||||||
+
+#define freNAME(t) free_pids_ ## t
+
+static void freNAME(str) (struct pids_result *R) {
+ if (R->result.str) free(R->result.str);
+}
+
+static void freNAME(strv) (struct pids_result *R) {
+ if (R->result.strv && *R->result.strv) free(*R->result.strv);
+}
+
+
+// ___ Results 'Set' Support ||||||||||||||||||||||||||||||||||||||||||||||||||
+
+#define setNAME(e) set_pids_ ## e
+#define setDECL(e) static void setNAME(e) \
+ (struct pids_info *I, struct pids_result *R, proc_t *P)
+
+/* convert pages to kib */
+#define CVT_set(e,t,x) setDECL(e) { \
+ R->result. t = (long)(P-> x) << I -> pgs2k_shift; }
+/* strdup of a static char array */
+#define DUP_set(e,x) setDECL(e) { \
+ freNAME(str)(R); \
+ if (!(R->result.str = strdup(P-> x))) I->seterr = 1; }
+/* regular assignment copy */
+#define REG_set(e,t,x) setDECL(e) { \
+ (void)I; R->result. t = P-> x; }
+/* take ownership of a normal single string if possible, else return
+ some sort of hint that they duplicated this char * item ... */
+#define STR_set(e,x) setDECL(e) { \
+ freNAME(str)(R); \
+ if (NULL != P-> x) { R->result.str = P-> x; P-> x = NULL; } \
+ else { R->result.str = strdup("[ duplicate " STRINGIFY(e) " ]"); \
+ if (!R->result.str) I->seterr = 1; } }
+/* take ownership of true vectorized strings if possible, else return
+ some sort of hint that they duplicated this char ** item ... */
+#define VEC_set(e,x) setDECL(e) { \
+ freNAME(strv)(R); \
+ if (NULL != P-> x) { R->result.strv = P-> x; P-> x = NULL; } \
+ else { R->result.strv = vectorize_this_str("[ duplicate " STRINGIFY(e) " ]"); \
+ if (!R->result.strv) I->seterr = 1; } }
+
+
+setDECL(noop) { (void)I; (void)R; (void)P; }
+setDECL(extra) { (void)I; (void)P; R->result.ull_int = 0; }
+
+REG_set(ADDR_CODE_END, ul_int, end_code)
+REG_set(ADDR_CODE_START, ul_int, start_code)
+REG_set(ADDR_CURR_EIP, ul_int, kstk_eip)
+REG_set(ADDR_CURR_ESP, ul_int, kstk_esp)
+REG_set(ADDR_STACK_START, ul_int, start_stack)
+REG_set(AUTOGRP_ID, s_int, autogrp_id)
+REG_set(AUTOGRP_NICE, s_int, autogrp_nice)
+STR_set(CGNAME, cgname)
+STR_set(CGROUP, cgroup)
+VEC_set(CGROUP_V, cgroup_v)
+STR_set(CMD, cmd)
+STR_set(CMDLINE, cmdline)
+VEC_set(CMDLINE_V, cmdline_v)
+STR_set(ENVIRON, environ)
+VEC_set(ENVIRON_V, environ_v)
+STR_set(EXE, exe)
+REG_set(EXIT_SIGNAL, s_int, exit_signal)
+REG_set(FLAGS, ul_int, flags)
+REG_set(FLT_MAJ, ul_int, maj_flt)
+setDECL(FLT_MAJ_C) { (void)I; R->result.ul_int = P->maj_flt + P->cmaj_flt; }
+REG_set(FLT_MAJ_DELTA, s_int, maj_delta)
+REG_set(FLT_MIN, ul_int, min_flt)
+setDECL(FLT_MIN_C) { (void)I; R->result.ul_int = P->min_flt + P->cmin_flt; }
+REG_set(FLT_MIN_DELTA, s_int, min_delta)
+REG_set(ID_EGID, u_int, egid)
+REG_set(ID_EGROUP, str, egroup)
+REG_set(ID_EUID, u_int, euid)
+REG_set(ID_EUSER, str, euser)
+REG_set(ID_FGID, u_int, fgid)
+REG_set(ID_FGROUP, str, fgroup)
+REG_set(ID_FUID, u_int, fuid)
+REG_set(ID_FUSER, str, fuser)
+REG_set(ID_LOGIN, s_int, luid)
+REG_set(ID_PGRP, s_int, pgrp)
+REG_set(ID_PID, s_int, tid)
+REG_set(ID_PPID, s_int, ppid)
+REG_set(ID_RGID, u_int, rgid)
+REG_set(ID_RGROUP, str, rgroup)
+REG_set(ID_RUID, u_int, ruid)
+REG_set(ID_RUSER, str, ruser)
+REG_set(ID_SESSION, s_int, session)
+REG_set(ID_SGID, u_int, sgid)
+REG_set(ID_SGROUP, str, sgroup)
+REG_set(ID_SUID, u_int, suid)
+REG_set(ID_SUSER, str, suser)
+REG_set(ID_TGID, s_int, tgid)
+REG_set(ID_TID, s_int, tid)
+REG_set(ID_TPGID, s_int, tpgid)
+REG_set(IO_READ_BYTES, ul_int, read_bytes)
+REG_set(IO_READ_CHARS, ul_int, rchar)
+REG_set(IO_READ_OPS, ul_int, syscr)
+REG_set(IO_WRITE_BYTES, ul_int, write_bytes)
+REG_set(IO_WRITE_CBYTES, ul_int, cancelled_write_bytes)
+REG_set(IO_WRITE_CHARS, ul_int, wchar)
+REG_set(IO_WRITE_OPS, ul_int, syscw)
+REG_set(LXCNAME, str, lxcname)
+CVT_set(MEM_CODE, ul_int, trs)
+REG_set(MEM_CODE_PGS, ul_int, trs)
+CVT_set(MEM_DATA, ul_int, drs)
+REG_set(MEM_DATA_PGS, ul_int, drs)
+CVT_set(MEM_RES, ul_int, resident)
+REG_set(MEM_RES_PGS, ul_int, resident)
+CVT_set(MEM_SHR, ul_int, share)
+REG_set(MEM_SHR_PGS, ul_int, share)
+CVT_set(MEM_VIRT, ul_int, size)
+REG_set(MEM_VIRT_PGS, ul_int, size)
+REG_set(NICE, s_int, nice)
+REG_set(NLWP, s_int, nlwp)
+REG_set(NS_CGROUP, ul_int, ns.ns[0])
+REG_set(NS_IPC, ul_int, ns.ns[1])
+REG_set(NS_MNT, ul_int, ns.ns[2])
+REG_set(NS_NET, ul_int, ns.ns[3])
+REG_set(NS_PID, ul_int, ns.ns[4])
+REG_set(NS_TIME, ul_int, ns.ns[5])
+REG_set(NS_USER, ul_int, ns.ns[6])
+REG_set(NS_UTS, ul_int, ns.ns[7])
+REG_set(OOM_ADJ, s_int, oom_adj)
+REG_set(OOM_SCORE, s_int, oom_score)
+REG_set(PRIORITY, s_int, priority)
+REG_set(PRIORITY_RT, s_int, rtprio)
+REG_set(PROCESSOR, s_int, processor)
+setDECL(PROCESSOR_NODE) { (void)I; R->result.s_int = numa_node_of_cpu(P->processor); }
+REG_set(RSS, ul_int, rss)
+REG_set(RSS_RLIM, ul_int, rss_rlim)
+REG_set(SCHED_CLASS, s_int, sched)
+STR_set(SD_MACH, sd_mach)
+STR_set(SD_OUID, sd_ouid)
+STR_set(SD_SEAT, sd_seat)
+STR_set(SD_SESS, sd_sess)
+STR_set(SD_SLICE, sd_slice)
+STR_set(SD_UNIT, sd_unit)
+STR_set(SD_UUNIT, sd_uunit)
+DUP_set(SIGBLOCKED, blocked)
+DUP_set(SIGCATCH, sigcatch)
+DUP_set(SIGIGNORE, sigignore)
+DUP_set(SIGNALS, signal)
+DUP_set(SIGPENDING, _sigpnd)
+REG_set(SMAP_ANONYMOUS, ul_int, smap_Anonymous)
+REG_set(SMAP_HUGE_ANON, ul_int, smap_AnonHugePages)
+REG_set(SMAP_HUGE_FILE, ul_int, smap_FilePmdMapped)
+REG_set(SMAP_HUGE_SHMEM, ul_int, smap_ShmemPmdMapped)
+REG_set(SMAP_HUGE_TLBPRV, ul_int, smap_Private_Hugetlb)
+REG_set(SMAP_HUGE_TLBSHR, ul_int, smap_Shared_Hugetlb)
+REG_set(SMAP_LAZY_FREE, ul_int, smap_LazyFree)
+REG_set(SMAP_LOCKED, ul_int, smap_Locked)
+REG_set(SMAP_PRV_CLEAN, ul_int, smap_Private_Clean)
+REG_set(SMAP_PRV_DIRTY, ul_int, smap_Private_Dirty)
+setDECL(SMAP_PRV_TOTAL) { (void)I; R->result.ul_int = P->smap_Private_Clean + P->smap_Private_Dirty; }
+REG_set(SMAP_PSS, ul_int, smap_Pss)
+REG_set(SMAP_PSS_ANON, ul_int, smap_Pss_Anon)
+REG_set(SMAP_PSS_FILE, ul_int, smap_Pss_File)
+REG_set(SMAP_PSS_SHMEM, ul_int, smap_Pss_Shmem)
+REG_set(SMAP_REFERENCED, ul_int, smap_Referenced)
+REG_set(SMAP_RSS, ul_int, smap_Rss)
+REG_set(SMAP_SHR_CLEAN, ul_int, smap_Shared_Clean)
+REG_set(SMAP_SHR_DIRTY, ul_int, smap_Shared_Dirty)
+REG_set(SMAP_SWAP, ul_int, smap_Swap)
+REG_set(SMAP_SWAP_PSS, ul_int, smap_SwapPss)
+REG_set(STATE, s_ch, state)
+STR_set(SUPGIDS, supgid)
+STR_set(SUPGROUPS, supgrp)
+setDECL(TICS_ALL) { (void)I; R->result.ull_int = P->utime + P->stime; }
+setDECL(TICS_ALL_C) { (void)I; R->result.ull_int = P->utime + P->stime + P->cutime + P->cstime; }
+REG_set(TICS_ALL_DELTA, u_int, pcpu)
+REG_set(TICS_BEGAN, ull_int, start_time)
+REG_set(TICS_BLKIO, ull_int, blkio_tics)
+REG_set(TICS_GUEST, ull_int, gtime)
+setDECL(TICS_GUEST_C) { (void)I; R->result.ull_int = P->gtime + P->cgtime; }
+REG_set(TICS_SYSTEM, ull_int, stime)
+setDECL(TICS_SYSTEM_C) { (void)I; R->result.ull_int = P->stime + P->cstime; }
+REG_set(TICS_USER, ull_int, utime)
+setDECL(TICS_USER_C) { (void)I; R->result.ull_int = P->utime + P->cutime; }
+setDECL(TIME_ALL) { R->result.real = ((double)P->utime + P->stime) / I->hertz; }
+setDECL(TIME_ALL_C) { R->result.real = ((double)P->utime + P->stime + P->cutime + P->cstime) / I->hertz; }
+setDECL(TIME_ELAPSED) { double t = I->boot_tics - P->start_time; if (t > 0) R->result.real = t / I->hertz; }
+setDECL(TIME_START) { R->result.real = (double)P->start_time / I->hertz; }
+REG_set(TTY, s_int, tty)
+setDECL(TTY_NAME) { char buf[64]; freNAME(str)(R); dev_to_tty(buf, sizeof(buf), P->tty, P->tid, ABBREV_DEV); if (!(R->result.str = strdup(buf))) I->seterr = 1; }
+setDECL(TTY_NUMBER) { char buf[64]; freNAME(str)(R); dev_to_tty(buf, sizeof(buf), P->tty, P->tid, ABBREV_DEV|ABBREV_TTY|ABBREV_PTS); if (!(R->result.str = strdup(buf))) I->seterr = 1; }
+setDECL(UTILIZATION) { double t = I->boot_tics - P->start_time; if (t > 0) R->result.real = ((P->utime + P->stime) * 100.0f) / t; }
+setDECL(UTILIZATION_C) { double t = I->boot_tics - P->start_time; if (t > 0) R->result.real = ((P->utime + P->stime + P->cutime + P->cstime) * 100.0f) / t; }
+REG_set(VM_DATA, ul_int, vm_data)
+REG_set(VM_EXE, ul_int, vm_exe)
+REG_set(VM_LIB, ul_int, vm_lib)
+REG_set(VM_RSS, ul_int, vm_rss)
+REG_set(VM_RSS_ANON, ul_int, vm_rss_anon)
+REG_set(VM_RSS_FILE, ul_int, vm_rss_file)
+REG_set(VM_RSS_LOCKED, ul_int, vm_lock)
+REG_set(VM_RSS_SHARED, ul_int, vm_rss_shared)
+REG_set(VM_SIZE, ul_int, vm_size)
+REG_set(VM_STACK, ul_int, vm_stack)
+REG_set(VM_SWAP, ul_int, vm_swap)
+setDECL(VM_USED) { (void)I; R->result.ul_int = P->vm_swap + P->vm_rss; }
+REG_set(VSIZE_BYTES, ul_int, vsize)
+setDECL(WCHAN_NAME) { freNAME(str)(R); if (!(R->result.str = strdup(lookup_wchan(P->tid)))) I->seterr = 1;; }
+
+#undef setDECL
+#undef CVT_set
+#undef DUP_set
+#undef REG_set
+#undef STR_set
+#undef VEC_set
+
+
+// ___ Sorting Support ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+
+struct sort_parms {
+ int offset;
+ enum pids_sort_order order;
+};
+
+#define srtNAME(t) sort_pids_ ## t
+#define srtDECL(t) static int srtNAME(t) \
+ (const struct pids_stack **A, const struct pids_stack **B, struct sort_parms *P)
+
+#define NUM_srt(T) srtDECL(T) { \
+ const struct pids_result *a = (*A)->head + P->offset; \
+ const struct pids_result *b = (*B)->head + P->offset; \
+ return P->order * (a->result. T - b->result. T); }
+
+#define REG_srt(T) srtDECL(T) { \
+ const struct pids_result *a = (*A)->head + P->offset; \
+ const struct pids_result *b = (*B)->head + P->offset; \
+ if ( a->result. T > b->result. T ) return P->order > 0 ? 1 : -1; \
+ if ( a->result. T < b->result. T ) return P->order > 0 ? -1 : 1; \
+ return 0; }
+
+NUM_srt(s_ch)
+NUM_srt(s_int)
+
+REG_srt(u_int)
+REG_srt(ul_int)
+REG_srt(ull_int)
+
+REG_srt(real)
+
+srtDECL(str) {
+ const struct pids_result *a = (*A)->head + P->offset;
+ const struct pids_result *b = (*B)->head + P->offset;
+ return P->order * strcoll(a->result.str, b->result.str);
+}
+
+srtDECL(strv) {
+ const struct pids_result *a = (*A)->head + P->offset;
+ const struct pids_result *b = (*B)->head + P->offset;
+ if (!a->result.strv || !b->result.strv) return 0;
+ return P->order * strcoll((*a->result.strv), (*b->result.strv));
+}
+
+srtDECL(strvers) {
+ const struct pids_result *a = (*A)->head + P->offset;
+ const struct pids_result *b = (*B)->head + P->offset;
+ return P->order * strverscmp(a->result.str, b->result.str);
+}
+
+srtDECL(noop) {
+ (void)A; (void)B; (void)P;
+ return 0;
+}
+
+#undef srtDECL
+#undef NUM_srt
+#undef REG_srt
+
+
+// ___ Controlling Table ||||||||||||||||||||||||||||||||||||||||||||||||||||||
+
+#define f_either PROC_SPARE_1 // either status or stat (favor stat)
+#define f_exe PROC_FILL_EXE
+#define f_grp PROC_FILLGRP
+#define f_io PROC_FILLIO
+#define f_login PROC_FILL_LUID
+#define f_lxc PROC_FILL_LXC
+#define f_ns PROC_FILLNS
+#define f_oom PROC_FILLOOM
+#define f_smaps PROC_FILLSMAPS
+#define f_stat PROC_FILLSTAT
+#define f_statm PROC_FILLMEM
+#define f_status PROC_FILLSTATUS
+#define f_systemd PROC_FILLSYSTEMD
+#define f_usr PROC_FILLUSR
+ // these next three will yield true verctorized strings
+#define v_arg PROC_FILLARG
+#define v_cgroup PROC_FILLCGROUP
+#define v_env PROC_FILLENV
+ // these next three will yield a single string (never vectorized)
+#define x_cgroup PROC_EDITCGRPCVT
+#define x_cmdline PROC_EDITCMDLCVT
+#define x_environ PROC_EDITENVRCVT
+ // these next three will also force PROC_FILLSTATUS
+#define x_ogroup PROC_FILL_OGROUPS
+#define x_ouser PROC_FILL_OUSERS
+#define x_supgrp PROC_FILL_SUPGRP
+ // placed here so an 'f' prefix wouldn't make 'em first
+#define z_autogrp PROC_FILLAUTOGRP
+
+typedef void (*FRE_t)(struct pids_result *);
+typedef int (*QSR_t)(const void *, const void *, void *);
+
+#ifdef ITEMTABLE_DEBUG
+#define RS(e) (SET_t)setNAME(e), PIDS_ ## e, STRINGIFY(PIDS_ ## e)
+#else
+#define RS(e) (SET_t)setNAME(e)
+#endif
+#define FF(t) (FRE_t)freNAME(t)
+#define QS(t) (QSR_t)srtNAME(t)
+#define TS(t) STRINGIFY(t)
+#define TS_noop ""
+
+ /*
+ * Need it be said?
+ * This table must be kept in the exact same order as
+ * those 'enum pids_item' guys ! */
+static struct {
+ SET_t setsfunc; // the actual result setting routine
+#ifdef ITEMTABLE_DEBUG
+ int enumnumb; // enumerator (must match position!)
+ char *enum2str; // enumerator name as a char* string
+#endif
+ unsigned oldflags; // PROC_FILLxxxx flags for this item
+ FRE_t freefunc; // free function for strings storage
+ QSR_t sortfunc; // sort cmp func for a specific type
+ int needhist; // a result requires history support
+ char *type2str; // the result type as a string value
+} Item_table[] = {
+/* setsfunc oldflags freefunc sortfunc needhist type2str
+ --------------------- ---------- --------- ------------- -------- ----------- */
+ { RS(noop), 0, NULL, QS(noop), 0, TS_noop }, // user only, never altered
+ { RS(extra), 0, NULL, QS(ull_int), 0, TS_noop }, // user only, reset to zero
+
+ { RS(ADDR_CODE_END), f_stat, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(ADDR_CODE_START), f_stat, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(ADDR_CURR_EIP), f_stat, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(ADDR_CURR_ESP), f_stat, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(ADDR_STACK_START), f_stat, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(AUTOGRP_ID), z_autogrp, NULL, QS(s_int), 0, TS(s_int) },
+ { RS(AUTOGRP_NICE), z_autogrp, NULL, QS(s_int), 0, TS(s_int) },
+ { RS(CGNAME), x_cgroup, FF(str), QS(str), 0, TS(str) },
+ { RS(CGROUP), x_cgroup, FF(str), QS(str), 0, TS(str) },
+ { RS(CGROUP_V), v_cgroup, FF(strv), QS(strv), 0, TS(strv) },
+ { RS(CMD), f_either, FF(str), QS(str), 0, TS(str) },
+ { RS(CMDLINE), x_cmdline, FF(str), QS(str), 0, TS(str) },
+ { RS(CMDLINE_V), v_arg, FF(strv), QS(strv), 0, TS(strv) },
+ { RS(ENVIRON), x_environ, FF(str), QS(str), 0, TS(str) },
+ { RS(ENVIRON_V), v_env, FF(strv), QS(strv), 0, TS(strv) },
+ { RS(EXE), f_exe, FF(str), QS(str), 0, TS(str) },
+ { RS(EXIT_SIGNAL), f_stat, NULL, QS(s_int), 0, TS(s_int) },
+ { RS(FLAGS), f_stat, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(FLT_MAJ), f_stat, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(FLT_MAJ_C), f_stat, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(FLT_MAJ_DELTA), f_stat, NULL, QS(s_int), +1, TS(s_int) },
+ { RS(FLT_MIN), f_stat, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(FLT_MIN_C), f_stat, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(FLT_MIN_DELTA), f_stat, NULL, QS(s_int), +1, TS(s_int) },
+ { RS(ID_EGID), 0, NULL, QS(u_int), 0, TS(u_int) }, // oldflags: free w/ simple_read
+ { RS(ID_EGROUP), f_grp, NULL, QS(str), 0, TS(str) },
+ { RS(ID_EUID), 0, NULL, QS(u_int), 0, TS(u_int) }, // oldflags: free w/ simple_read
+ { RS(ID_EUSER), f_usr, NULL, QS(str), 0, TS(str) }, // freefunc NULL w/ cached string
+ { RS(ID_FGID), f_status, NULL, QS(u_int), 0, TS(u_int) },
+ { RS(ID_FGROUP), x_ogroup, NULL, QS(str), 0, TS(str) },
+ { RS(ID_FUID), f_status, NULL, QS(u_int), 0, TS(u_int) },
+ { RS(ID_FUSER), x_ouser, NULL, QS(str), 0, TS(str) }, // freefunc NULL w/ cached string
+ { RS(ID_LOGIN), f_login, NULL, QS(s_int), 0, TS(s_int) },
+ { RS(ID_PGRP), f_stat, NULL, QS(s_int), 0, TS(s_int) },
+ { RS(ID_PID), 0, NULL, QS(s_int), 0, TS(s_int) }, // oldflags: free w/ simple_nextpid
+ { RS(ID_PPID), f_either, NULL, QS(s_int), 0, TS(s_int) },
+ { RS(ID_RGID), f_status, NULL, QS(u_int), 0, TS(u_int) },
+ { RS(ID_RGROUP), x_ogroup, NULL, QS(str), 0, TS(str) },
+ { RS(ID_RUID), f_status, NULL, QS(u_int), 0, TS(u_int) },
+ { RS(ID_RUSER), x_ouser, NULL, QS(str), 0, TS(str) }, // freefunc NULL w/ cached string
+ { RS(ID_SESSION), f_stat, NULL, QS(s_int), 0, TS(s_int) },
+ { RS(ID_SGID), f_status, NULL, QS(u_int), 0, TS(u_int) },
+ { RS(ID_SGROUP), x_ogroup, NULL, QS(str), 0, TS(str) },
+ { RS(ID_SUID), f_status, NULL, QS(u_int), 0, TS(u_int) },
+ { RS(ID_SUSER), x_ouser, NULL, QS(str), 0, TS(str) }, // freefunc NULL w/ cached string
+ { RS(ID_TGID), 0, NULL, QS(s_int), 0, TS(s_int) }, // oldflags: free w/ simple_nextpid
+ { RS(ID_TID), 0, NULL, QS(s_int), 0, TS(s_int) }, // oldflags: free w/ simple_nexttid
+ { RS(ID_TPGID), f_stat, NULL, QS(s_int), 0, TS(s_int) },
+ { RS(IO_READ_BYTES), f_io, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(IO_READ_CHARS), f_io, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(IO_READ_OPS), f_io, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(IO_WRITE_BYTES), f_io, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(IO_WRITE_CBYTES), f_io, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(IO_WRITE_CHARS), f_io, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(IO_WRITE_OPS), f_io, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(LXCNAME), f_lxc, NULL, QS(str), 0, TS(str) }, // freefunc NULL w/ cached string
+ { RS(MEM_CODE), f_statm, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(MEM_CODE_PGS), f_statm, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(MEM_DATA), f_statm, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(MEM_DATA_PGS), f_statm, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(MEM_RES), f_statm, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(MEM_RES_PGS), f_statm, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(MEM_SHR), f_statm, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(MEM_SHR_PGS), f_statm, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(MEM_VIRT), f_statm, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(MEM_VIRT_PGS), f_statm, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(NICE), f_stat, NULL, QS(s_int), 0, TS(s_int) },
+ { RS(NLWP), f_either, NULL, QS(s_int), 0, TS(s_int) },
+ { RS(NS_CGROUP), f_ns, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(NS_IPC), f_ns, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(NS_MNT), f_ns, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(NS_NET), f_ns, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(NS_PID), f_ns, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(NS_TIME), f_ns, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(NS_USER), f_ns, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(NS_UTS), f_ns, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(OOM_ADJ), f_oom, NULL, QS(s_int), 0, TS(s_int) },
+ { RS(OOM_SCORE), f_oom, NULL, QS(s_int), 0, TS(s_int) },
+ { RS(PRIORITY), f_stat, NULL, QS(s_int), 0, TS(s_int) },
+ { RS(PRIORITY_RT), f_stat, NULL, QS(s_int), 0, TS(s_int) },
+ { RS(PROCESSOR), f_stat, NULL, QS(s_int), 0, TS(s_int) },
+ { RS(PROCESSOR_NODE), f_stat, NULL, QS(s_int), 0, TS(s_int) },
+ { RS(RSS), f_stat, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(RSS_RLIM), f_stat, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(SCHED_CLASS), f_stat, NULL, QS(s_int), 0, TS(s_int) },
+ { RS(SD_MACH), f_systemd, FF(str), QS(str), 0, TS(str) },
+ { RS(SD_OUID), f_systemd, FF(str), QS(str), 0, TS(str) },
+ { RS(SD_SEAT), f_systemd, FF(str), QS(str), 0, TS(str) },
+ { RS(SD_SESS), f_systemd, FF(str), QS(str), 0, TS(str) },
+ { RS(SD_SLICE), f_systemd, FF(str), QS(str), 0, TS(str) },
+ { RS(SD_UNIT), f_systemd, FF(str), QS(str), 0, TS(str) },
+ { RS(SD_UUNIT), f_systemd, FF(str), QS(str), 0, TS(str) },
+ { RS(SIGBLOCKED), f_status, FF(str), QS(str), 0, TS(str) },
+ { RS(SIGCATCH), f_status, FF(str), QS(str), 0, TS(str) },
+ { RS(SIGIGNORE), f_status, FF(str), QS(str), 0, TS(str) },
+ { RS(SIGNALS), f_status, FF(str), QS(str), 0, TS(str) },
+ { RS(SIGPENDING), f_status, FF(str), QS(str), 0, TS(str) },
+ { RS(SMAP_ANONYMOUS), f_smaps, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(SMAP_HUGE_ANON), f_smaps, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(SMAP_HUGE_FILE), f_smaps, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(SMAP_HUGE_SHMEM), f_smaps, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(SMAP_HUGE_TLBPRV), f_smaps, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(SMAP_HUGE_TLBSHR), f_smaps, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(SMAP_LAZY_FREE), f_smaps, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(SMAP_LOCKED), f_smaps, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(SMAP_PRV_CLEAN), f_smaps, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(SMAP_PRV_DIRTY), f_smaps, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(SMAP_PRV_TOTAL), f_smaps, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(SMAP_PSS), f_smaps, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(SMAP_PSS_ANON), f_smaps, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(SMAP_PSS_FILE), f_smaps, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(SMAP_PSS_SHMEM), f_smaps, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(SMAP_REFERENCED), f_smaps, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(SMAP_RSS), f_smaps, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(SMAP_SHR_CLEAN), f_smaps, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(SMAP_SHR_DIRTY), f_smaps, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(SMAP_SWAP), f_smaps, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(SMAP_SWAP_PSS), f_smaps, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(STATE), f_either, NULL, QS(s_ch), 0, TS(s_ch) },
+ { RS(SUPGIDS), f_status, FF(str), QS(str), 0, TS(str) },
+ { RS(SUPGROUPS), x_supgrp, FF(str), QS(str), 0, TS(str) },
+ { RS(TICS_ALL), f_stat, NULL, QS(ull_int), 0, TS(ull_int) },
+ { RS(TICS_ALL_C), f_stat, NULL, QS(ull_int), 0, TS(ull_int) },
+ { RS(TICS_ALL_DELTA), f_stat, NULL, QS(u_int), +1, TS(u_int) },
+ { RS(TICS_BEGAN), f_stat, NULL, QS(ull_int), 0, TS(ull_int) },
+ { RS(TICS_BLKIO), f_stat, NULL, QS(ull_int), 0, TS(ull_int) },
+ { RS(TICS_GUEST), f_stat, NULL, QS(ull_int), 0, TS(ull_int) },
+ { RS(TICS_GUEST_C), f_stat, NULL, QS(ull_int), 0, TS(ull_int) },
+ { RS(TICS_SYSTEM), f_stat, NULL, QS(ull_int), 0, TS(ull_int) },
+ { RS(TICS_SYSTEM_C), f_stat, NULL, QS(ull_int), 0, TS(ull_int) },
+ { RS(TICS_USER), f_stat, NULL, QS(ull_int), 0, TS(ull_int) },
+ { RS(TICS_USER_C), f_stat, NULL, QS(ull_int), 0, TS(ull_int) },
+ { RS(TIME_ALL), f_stat, NULL, QS(real), 0, TS(real) },
+ { RS(TIME_ALL_C), f_stat, NULL, QS(real), 0, TS(real) },
+ { RS(TIME_ELAPSED), f_stat, NULL, QS(real), 0, TS(real) },
+ { RS(TIME_START), f_stat, NULL, QS(real), 0, TS(real) },
+ { RS(TTY), f_stat, NULL, QS(s_int), 0, TS(s_int) },
+ { RS(TTY_NAME), f_stat, FF(str), QS(strvers), 0, TS(str) },
+ { RS(TTY_NUMBER), f_stat, FF(str), QS(strvers), 0, TS(str) },
+ { RS(UTILIZATION), f_stat, NULL, QS(real), 0, TS(real) },
+ { RS(UTILIZATION_C), f_stat, NULL, QS(real), 0, TS(real) },
+ { RS(VM_DATA), f_status, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(VM_EXE), f_status, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(VM_LIB), f_status, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(VM_RSS), f_status, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(VM_RSS_ANON), f_status, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(VM_RSS_FILE), f_status, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(VM_RSS_LOCKED), f_status, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(VM_RSS_SHARED), f_status, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(VM_SIZE), f_status, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(VM_STACK), f_status, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(VM_SWAP), f_status, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(VM_USED), f_status, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(VSIZE_BYTES), f_stat, NULL, QS(ul_int), 0, TS(ul_int) },
+ { RS(WCHAN_NAME), 0, FF(str), QS(str), 0, TS(str) }, // oldflags: tid already free
+};
+
+ /* please note,
+ * this enum MUST be 1 greater than the highest value of any enum */
+enum pids_item PIDS_logical_end = MAXTABLE(Item_table);
+
+#undef setNAME
+#undef freNAME
+#undef srtNAME
+#undef RS
+#undef FF
+#undef QS
+
+//#undef f_either // needed later
+#undef f_exe
+#undef f_grp
+#undef f_io
+#undef f_login
+#undef f_lxc
+#undef f_ns
+#undef f_oom
+#undef f_smaps
+//#undef f_stat // needed later
+#undef f_statm
+//#undef f_status // needed later
+#undef f_systemd
+#undef f_usr
+#undef v_arg
+#undef v_cgroup
+#undef v_env
+#undef x_cgroup
+#undef x_cmdline
+#undef x_environ
+#undef x_ogroup
+#undef x_ouser
+#undef x_supgrp
+#undef z_autogrp
+
+
+// ___ History Support Private Functions ||||||||||||||||||||||||||||||||||||||
+// ( stolen from top when he wasn't looking ) -------------------------------
+
+#define HHASH_SIZE 4096
+#define _HASH_PID_(K) (K & (HHASH_SIZE - 1))
+
+#define Hr(x) info->hist->x // 'hist ref', minimize stolen impact
+
+typedef unsigned long long TIC_t;
+
+typedef struct HST_t {
+ TIC_t tics; // last frame's tics count
+ unsigned long maj, min; // last frame's maj/min_flt counts
+ int pid; // record 'key'
+ int lnk; // next on hash chain
+} HST_t;
+
+
+struct history_info {
+ int num_tasks; // used as index (tasks tallied)
+ int HHist_siz; // max number of HST_t structs
+ HST_t *PHist_sav; // alternating 'old/new' HST_t anchors
+ HST_t *PHist_new;
+ int HHash_one [HHASH_SIZE]; // the actual hash tables
+ int HHash_two [HHASH_SIZE]; // (accessed via PHash_sav/PHash_new)
+ int HHash_nul [HHASH_SIZE]; // an 'empty' hash table image
+ int *PHash_sav; // alternating 'old/new' hash tables
+ int *PHash_new; // (aka. the 'one/two' actual tables)
+};
+
+
+static void pids_config_history (
+ struct pids_info *info)
+{
+ int i;
+
+ for (i = 0; i < HHASH_SIZE; i++) // make the 'empty' table image
+ Hr(HHash_nul[i]) = -1;
+ memcpy(Hr(HHash_one), Hr(HHash_nul), sizeof(Hr(HHash_nul)));
+ memcpy(Hr(HHash_two), Hr(HHash_nul), sizeof(Hr(HHash_nul)));
+ Hr(PHash_sav) = Hr(HHash_one); // alternating 'old/new' hash tables
+ Hr(PHash_new) = Hr(HHash_two);
+} // end: pids_config_history
+
+
+static inline HST_t *pids_histget (
+ struct pids_info *info,
+ int pid)
+{
+ int V = Hr(PHash_sav[_HASH_PID_(pid)]);
+
+ while (-1 < V) {
+ if (Hr(PHist_sav[V].pid) == pid)
+ return &Hr(PHist_sav[V]);
+ V = Hr(PHist_sav[V].lnk);
+ }
+ return NULL;
+} // end: pids_histget
+
+
+static inline void pids_histput (
+ struct pids_info *info,
+ unsigned this)
+{
+ int V = _HASH_PID_(Hr(PHist_new[this].pid));
+
+ Hr(PHist_new[this].lnk) = Hr(PHash_new[V]);
+ Hr(PHash_new[V] = this);
+} // end: pids_histput
+
+#undef _HASH_PID_
+
+
+static inline int pids_make_hist (
+ struct pids_info *info,
+ proc_t *p)
+{
+ TIC_t tics;
+ HST_t *h;
+ int slot = info->hist->num_tasks;
+
+ if (slot + 1 >= Hr(HHist_siz)) {
+ Hr(HHist_siz) += NEWOLD_GROW;
+ Hr(PHist_sav) = realloc(Hr(PHist_sav), sizeof(HST_t) * Hr(HHist_siz));
+ Hr(PHist_new) = realloc(Hr(PHist_new), sizeof(HST_t) * Hr(HHist_siz));
+ if (!Hr(PHist_sav) || !Hr(PHist_new))
+ return 0;
+ }
+ Hr(PHist_new[slot].pid) = p->tid;
+ Hr(PHist_new[slot].maj) = p->maj_flt;
+ Hr(PHist_new[slot].min) = p->min_flt;
+ Hr(PHist_new[slot].tics) = tics = (p->utime + p->stime);
+
+ pids_histput(info, slot);
+
+ if ((h = pids_histget(info, p->tid))) {
+ tics -= h->tics;
+ p->maj_delta = p->maj_flt - h->maj;
+ p->min_delta = p->min_flt - h->min;
+ }
+ /* here we're saving elapsed tics, which will include any
+ tasks not previously seen via that pids_histget() guy! */
+ p->pcpu = tics;
+
+ info->hist->num_tasks++;
+ return 1;
+} // end: pids_make_hist
+
+
+static inline void pids_toggle_history (
+ struct pids_info *info)
+{
+ void *v;
+
+ v = Hr(PHist_sav);
+ Hr(PHist_sav) = Hr(PHist_new);
+ Hr(PHist_new) = v;
+
+ v = Hr(PHash_sav);
+ Hr(PHash_sav) = Hr(PHash_new);
+ Hr(PHash_new) = v;
+ memcpy(Hr(PHash_new), Hr(HHash_nul), sizeof(Hr(HHash_nul)));
+
+ info->hist->num_tasks = 0;
+} // end: pids_toggle_history
+
+
+#ifdef UNREF_RPTHASH
+static void pids_unref_rpthash (
+ struct pids_info *info)
+{
+ int i, j, pop, total_occupied, maxdepth, maxdepth_sav, numdepth
+ , cross_foot, sz = HHASH_SIZE * (int)sizeof(int)
+ , hsz = (int)sizeof(HST_t) * Hr(HHist_siz);
+ int depths[HHASH_SIZE];
+
+ for (i = 0, total_occupied = 0, maxdepth = 0; i < HHASH_SIZE; i++) {
+ int V = Hr(PHash_new[i]);
+ j = 0;
+ if (-1 < V) {
+ ++total_occupied;
+ while (-1 < V) {
+ V = Hr(PHist_new[V].lnk);
+ if (-1 < V) j++;
+ }
+ }
+ depths[i] = j;
+ if (maxdepth < j) maxdepth = j;
+ }
+ maxdepth_sav = maxdepth;
+
+ fprintf(stderr,
+ "\n History Memory Costs:"
+ "\n\tHST_t size = %d, total allocated = %d,"
+ "\n\tthus PHist_new & PHist_sav consumed %dk (%d) total bytes."
+ "\n"
+ "\n\tTwo hash tables provide for %d entries each + 1 extra 'empty' image,"
+ "\n\tthus %dk (%d) bytes per table for %dk (%d) total bytes."
+ "\n"
+ "\n\tGrand total = %dk (%d) bytes."
+ "\n"
+ "\n Hash Results Report:"
+ "\n\tTotal hashed = %d"
+ "\n\tLevel-0 hash entries = %d (%d%% occupied)"
+ "\n\tMax Depth = %d"
+ "\n\n"
+ , (int)sizeof(HST_t), Hr(HHist_siz)
+ , hsz / 1024, hsz
+ , HHASH_SIZE
+ , sz / 1024, sz, (sz * 3) / 1024, sz * 3
+ , (hsz + (sz * 3)) / 1024, hsz + (sz * 3)
+ , info->hist->num_tasks
+ , total_occupied, (total_occupied * 100) / HHASH_SIZE
+ , maxdepth);
+
+ if (total_occupied) {
+ for (pop = total_occupied, cross_foot = 0; maxdepth; maxdepth--) {
+ for (i = 0, numdepth = 0; i < HHASH_SIZE; i++)
+ if (depths[i] == maxdepth) ++numdepth;
+ if (numdepth) fprintf(stderr,
+ "\t %5d (%3d%%) hash table entries at depth %d\n"
+ , numdepth, (numdepth * 100) / total_occupied, maxdepth);
+ pop -= numdepth;
+ cross_foot += numdepth;
+ if (0 == pop && cross_foot == total_occupied) break;
+ }
+ if (pop) {
+ fprintf(stderr, "\t %5d (%3d%%) unchained entries (at depth 0)\n"
+ , pop, (pop * 100) / total_occupied);
+ cross_foot += pop;
+ }
+ fprintf(stderr,
+ "\t -----\n"
+ "\t %5d total entries occupied\n", cross_foot);
+
+ if (maxdepth_sav > 1) {
+ fprintf(stderr, "\n PIDs at max depth: ");
+ for (i = 0; i < HHASH_SIZE; i++)
+ if (depths[i] == maxdepth_sav) {
+ j = Hr(PHash_new[i]);
+ fprintf(stderr, "\n\tpos %4d: %05d", i, Hr(PHist_new[j].pid));
+ while (-1 < j) {
+ j = Hr(PHist_new[j].lnk);
+ if (-1 < j) fprintf(stderr, ", %05d", Hr(PHist_new[j].pid));
+ }
+ }
+ fprintf(stderr, "\n");
+ }
+ }
+} // end: pids_unref_rpthash
+#endif // UNREF_RPTHASH
+
+#undef Hr
+#undef HHASH_SIZE
+
+
+// ___ Standard Private Functions |||||||||||||||||||||||||||||||||||||||||||||
+
+static inline int pids_assign_results (
+ struct pids_info *info,
+ struct pids_stack *stack,
+ proc_t *p)
+{
+ struct pids_result *this = stack->head;
+ SET_t *that = &info->func_array[0];
+
+ info->seterr = 0;
+ while (*that) {
+ (*that)(info, this, p);
+ ++this;
+ ++that;
+ }
+ return !info->seterr;
+} // end: pids_assign_results
+
+
+static inline void pids_cleanup_stack (
+ struct pids_result *this)
+{
+ for (;;) {
+ enum pids_item item = this->item;
+ if (item >= PIDS_logical_end)
+ break;
+ if (Item_table[item].freefunc)
+ Item_table[item].freefunc(this);
+ this->result.ull_int = 0;
+ ++this;
+ }
+} // end: pids_cleanup_stack
+
+
+static inline void pids_cleanup_stacks_all (
+ struct pids_info *info)
+{
+ struct stacks_extent *ext = info->extents;
+ int i;
+
+ while (ext) {
+ for (i = 0; ext->stacks[i]; i++)
+ pids_cleanup_stack(ext->stacks[i]->head);
+ ext = ext->next;
+ };
+} // end: pids_cleanup_stacks_all
+
+
+#if 0 // not currently needed after 'fatal_proc_unmounted' was refactored
+ /*
+ * This routine exists in case we ever want to offer something like
+ * 'static' or 'invarient' results stacks. By unsplicing an extent
+ * from the info anchor it will be isolated from future reset/free. */
+static struct stacks_extent *pids_extent_cut (
+ struct pids_info *info,
+ struct stacks_extent *ext)
+{
+ struct stacks_extent *p = info->extents;
+
+ if (ext) {
+ if (ext == p) {
+ info->extents = p->next;
+ return ext;
+ }
+ do {
+ if (ext == p->next) {
+ p->next = p->next->next;
+ return ext;
+ }
+ p = p->next;
+ } while (p);
+ }
+ return NULL;
+} // end: pids_extent_cut
+#endif // ----------------------------------------------------------------
+
+
+static inline struct pids_result *pids_itemize_stack (
+ struct pids_result *p,
+ int depth,
+ enum pids_item *items)
+{
+ struct pids_result *p_sav = p;
+ int i;
+
+ for (i = 0; i < depth; i++) {
+ p->item = items[i];
+ ++p;
+ }
+ return p_sav;
+} // end: pids_itemize_stack
+
+
+static void pids_itemize_stacks_all (
+ struct pids_info *info)
+{
+ struct stacks_extent *ext = info->extents;
+
+ while (ext) {
+ int i;
+ for (i = 0; ext->stacks[i]; i++)
+ pids_itemize_stack(ext->stacks[i]->head, info->maxitems, info->items);
+ ext = ext->next;
+ };
+} // end: pids_itemize_stacks_all
+
+
+static inline int pids_items_check_failed (
+ enum pids_item *items,
+ int numitems)
+{
+ int i;
+
+ /* if an enum is passed instead of an address of one or more enums, ol' gcc
+ * will silently convert it to an address (possibly NULL). only clang will
+ * offer any sort of warning like the following:
+ *
+ * warning: incompatible integer to pointer conversion passing 'int' to parameter of type 'enum pids_item *'
+ * if (procps_pids_new(&info, PIDS_noop, 3) < 0)
+ * ^~~~~~~~~~~~~~~~
+ */
+ if (numitems < 1
+ || (void *)items < (void *)0x8000) // twice as big as our largest enum
+ return 1;
+
+ for (i = 0; i < numitems; i++) {
+ // a pids_item is currently unsigned, but we'll protect our future
+ if (items[i] < 0)
+ return 1;
+ if (items[i] >= PIDS_logical_end) {
+ return 1;
+ }
+ }
+ return 0;
+} // end: pids_items_check_failed
+
+
+static inline void pids_libflags_set (
+ struct pids_info *info)
+{
+ enum pids_item e;
+ int i;
+
+ info->oldflags = info->history_yes = 0;
+ for (i = 0; i < info->maxitems; i++) {
+ if (((e = info->items[i])) >= PIDS_logical_end)
+ break;
+ info->oldflags |= Item_table[e].oldflags;
+ info->history_yes |= Item_table[e].needhist;
+ }
+ if (info->oldflags & f_either) {
+ if (!(info->oldflags & (f_stat | f_status)))
+ info->oldflags |= f_stat;
+ }
+ return;
+} // end: pids_libflags_set
+
+
+static inline void pids_oldproc_close (
+ PROCTAB **this)
+{
+ if (*this != NULL) {
+ int errsav = errno;
+ closeproc(*this);
+ *this = NULL;
+ errno = errsav;
+ }
+} // end: pids_oldproc_close
+
+
+static inline int pids_oldproc_open (
+ PROCTAB **this,
+ unsigned flags,
+ ...)
+{
+ va_list vl;
+ int *ids;
+ int num = 0;
+
+ if (*this == NULL) {
+ va_start(vl, flags);
+ ids = va_arg(vl, int*);
+ if (flags & PROC_UID) num = va_arg(vl, int);
+ va_end(vl);
+ if (NULL == (*this = openproc(flags, ids, num)))
+ return 0;
+ }
+ return 1;
+} // end: pids_oldproc_open
+
+
+static int pids_prep_func_array (
+ struct pids_info *info)
+{
+ int i;
+
+ if (!(info->func_array = realloc(info->func_array, sizeof(SET_t) * info->maxitems)))
+ return 0;
+ for (i = 0; i < info->maxitems -1; i++)
+ info->func_array[i] = Item_table[info->items[i]].setsfunc;
+ info->func_array[i] = NULL;
+ return 1;
+} // end: pids_prep_func_array
+
+
+static inline int pids_proc_tally (
+ struct pids_info *info,
+ struct pids_counts *counts,
+ proc_t *p)
+{
+ switch (p->state) {
+ case 'R':
+ ++counts->running;
+ break;
+ case 'D': // 'D' (disk sleep)
+ case 'S':
+ ++counts->sleeping;
+ break;
+ case 't': // 't' (tracing stop)
+ case 'T':
+ ++counts->stopped;
+ break;
+ case 'Z':
+ ++counts->zombied;
+ break;
+ default:
+ /* currently: 'I' (idle),
+ 'P' (parked),
+ 'X' (dead - actually 'dying' & probably never seen)
+ */
+ ++counts->other;
+ break;
+ }
+ ++counts->total;
+
+ if (info->history_yes)
+ return pids_make_hist(info, p);
+ return 1;
+} // end: pids_proc_tally
+
+
+/*
+ * pids_stacks_alloc():
+ *
+ * Allocate and initialize one or more stacks each of which is anchored in an
+ * associated context structure.
+ *
+ * All such stacks will will have their result structures properly primed with
+ * 'items', while the result itself will be zeroed.
+ *
+ * Returns an array of pointers representing the 'heads' of each new stack.
+ */
+static struct stacks_extent *pids_stacks_alloc (
+ struct pids_info *info,
+ int maxstacks)
+{
+ struct stacks_extent *p_blob;
+ struct pids_stack **p_vect;
+ struct pids_stack *p_head;
+ size_t vect_size, head_size, list_size, blob_size;
+ void *v_head, *v_list;
+ int i;
+
+ vect_size = sizeof(void *) * maxstacks; // size of the addr vectors |
+ vect_size += sizeof(void *); // plus NULL addr delimiter |
+ head_size = sizeof(struct pids_stack); // size of that head struct |
+ list_size = sizeof(struct pids_result) * info->maxitems; // any single results stack |
+ blob_size = sizeof(struct stacks_extent); // the extent anchor itself |
+ blob_size += vect_size; // plus room for addr vects |
+ blob_size += head_size * maxstacks; // plus room for head thing |
+ blob_size += list_size * maxstacks; // plus room for our stacks |
+
+ /* note: all of our memory is allocated in a single blob, facilitating a later free(). |
+ as a minimum, it is important that the result structures themselves always be |
+ contiguous for every stack since they are accessed through relative position. | */
+ if (NULL == (p_blob = calloc(1, blob_size)))
+ return NULL;
+
+ p_blob->next = info->extents; // push this extent onto... |
+ info->extents = p_blob; // ...some existing extents |
+ p_vect = (void *)p_blob + sizeof(struct stacks_extent); // prime our vector pointer |
+ p_blob->stacks = p_vect; // set actual vectors start |
+ v_head = (void *)p_vect + vect_size; // prime head pointer start |
+ v_list = v_head + (head_size * maxstacks); // prime our stacks pointer |
+
+ for (i = 0; i < maxstacks; i++) {
+ p_head = (struct pids_stack *)v_head;
+ p_head->head = pids_itemize_stack((struct pids_result *)v_list, info->maxitems, info->items);
+ p_blob->stacks[i] = p_head;
+ v_list += list_size;
+ v_head += head_size;
+ }
+ p_blob->ext_numstacks = maxstacks;
+ return p_blob;
+} // end: pids_stacks_alloc
+
+
+static int pids_stacks_fetch (
+ struct pids_info *info)
+{
+ #define n_alloc info->fetch.n_alloc
+ #define n_inuse info->fetch.n_inuse
+ #define n_saved info->fetch.n_alloc_save
+ struct stacks_extent *ext;
+
+ // initialize stuff -----------------------------------
+ if (!info->fetch.anchor) {
+ if (!(info->fetch.anchor = calloc(STACKS_INIT, sizeof(void *))))
+ return -1;
+ if (!(ext = pids_stacks_alloc(info, STACKS_INIT)))
+ return -1; // here, errno was set to ENOMEM
+ memcpy(info->fetch.anchor, ext->stacks, sizeof(void *) * STACKS_INIT);
+ n_alloc = STACKS_INIT;
+ }
+ pids_toggle_history(info);
+ memset(&info->fetch.counts, 0, sizeof(struct pids_counts));
+
+ // iterate stuff --------------------------------------
+ n_inuse = 0;
+ while (info->read_something(info->fetch_PT, &info->fetch_proc)) {
+ if (!(n_inuse < n_alloc)) {
+ n_alloc += STACKS_GROW;
+ if (!(info->fetch.anchor = realloc(info->fetch.anchor, sizeof(void *) * n_alloc))
+ || (!(ext = pids_stacks_alloc(info, STACKS_GROW))))
+ return -1; // here, errno was set to ENOMEM
+ memcpy(info->fetch.anchor + n_inuse, ext->stacks, sizeof(void *) * STACKS_GROW);
+ }
+ if (!pids_proc_tally(info, &info->fetch.counts, &info->fetch_proc))
+ return -1; // here, errno was set to ENOMEM
+ if (!pids_assign_results(info, info->fetch.anchor[n_inuse++], &info->fetch_proc))
+ return -1; // here, errno was set to ENOMEM
+ }
+ /* while the possibility is extremely remote, the readproc.c (read_something) |
+ simple_readproc and simple_readtask guys could have encountered this error |
+ in which case they would have returned a NULL, thus ending our while loop. | */
+ if (errno == ENOMEM)
+ return -1;
+
+ // finalize stuff -------------------------------------
+ /* note: we go to this trouble of maintaining a duplicate of the consolidated |
+ extent stacks addresses represented as our 'anchor' since these ptrs |
+ are exposed to a user (um, not that we don't trust 'em or anything). |
+ plus, we can NULL delimit these ptrs which we couldn't do otherwise. | */
+ if (n_saved < n_inuse + 1) {
+ n_saved = n_inuse + 1;
+ if (!(info->fetch.results.stacks = realloc(info->fetch.results.stacks, sizeof(void *) * n_saved)))
+ return -1;
+ }
+ memcpy(info->fetch.results.stacks, info->fetch.anchor, sizeof(void *) * n_inuse);
+ info->fetch.results.stacks[n_inuse] = NULL;
+
+ return n_inuse; // callers beware, this might be zero !
+ #undef n_alloc
+ #undef n_inuse
+ #undef n_saved
+} // end: pids_stacks_fetch
+
+
+// ___ Public Functions |||||||||||||||||||||||||||||||||||||||||||||||||||||||
+
+// --- standard required functions --------------------------------------------
+
+/*
+ * procps_pids_new():
+ *
+ * @info: location of returned new structure
+ *
+ * Returns: < 0 on failure, 0 on success along with
+ * a pointer to a new context struct
+ */
+PROCPS_EXPORT int procps_pids_new (
+ struct pids_info **info,
+ enum pids_item *items,
+ int numitems)
+{
+ struct pids_info *p;
+ int pgsz;
+
+#ifdef ITEMTABLE_DEBUG
+ int i, failed = 0;
+ for (i = 0; i < MAXTABLE(Item_table); i++) {
+ if (i != Item_table[i].enumnumb) {
+ fprintf(stderr, "%s: enum/table error: Item_table[%d] was %s, but its value is %d\n"
+ , __FILE__, i, Item_table[i].enum2str, Item_table[i].enumnumb);
+ failed = 1;
+ }
+ }
+ if (PIDS_SELECT_PID != PROC_PID) {
+ fprintf(stderr, "%s: header error: PIDS_SELECT_PID = 0x%04x, PROC_PID = 0x%04x\n"
+ , __FILE__, PIDS_SELECT_PID, PROC_PID);
+ failed = 1;
+ }
+ if (PIDS_SELECT_PID_THREADS != PIDS_SELECT_PID + 1) {
+ fprintf(stderr, "%s: header error: PIDS_SELECT_PID_THREADS = 0x%04x, should be 0x%04x\n"
+ , __FILE__, PIDS_SELECT_PID_THREADS, PIDS_SELECT_PID + 1);
+ failed = 1;
+ }
+ if (PIDS_SELECT_UID != PROC_UID) {
+ fprintf(stderr, "%s: header error: PIDS_SELECT_UID = 0x%04x, PROC_UID = 0x%04x\n"
+ , __FILE__, PIDS_SELECT_UID, PROC_UID);
+ failed = 1;
+ }
+ if (PIDS_SELECT_UID_THREADS != PIDS_SELECT_UID + 1) {
+ fprintf(stderr, "%s: header error: PIDS_SELECT_UID_THREADS = 0x%04x, should be 0x%04x\n"
+ , __FILE__, PIDS_SELECT_UID_THREADS, PIDS_SELECT_UID + 1);
+ failed = 1;
+ }
+ // our select() function & select enumerators assume the following ...
+ if (PIDS_FETCH_THREADS_TOO != 1) {
+ fprintf(stderr, "%s: header error: PIDS_FETCH_THREADS_TOO = %d, should be 1\n"
+ , __FILE__, PIDS_FETCH_THREADS_TOO);
+ failed = 1;
+ }
+ if (failed) _Exit(EXIT_FAILURE);
+#endif
+
+ if (info == NULL || *info != NULL)
+ return -EINVAL;
+ if (!(p = calloc(1, sizeof(struct pids_info))))
+ return -ENOMEM;
+
+ /* if we're without items or numitems, a later call to
+ procps_pids_reset() will become mandatory */
+ if (items && numitems) {
+ if (pids_items_check_failed(items, numitems)) {
+ free(p);
+ return -EINVAL;
+ }
+ // allow for our PIDS_logical_end
+ p->maxitems = numitems + 1;
+ if (!(p->items = calloc(p->maxitems, sizeof(enum pids_item)))) {
+ free(p);
+ return -ENOMEM;
+ }
+ memcpy(p->items, items, sizeof(enum pids_item) * numitems);
+ p->items[numitems] = PIDS_logical_end;
+ pids_libflags_set(p);
+ if (!pids_prep_func_array(p))
+ return -ENOMEM;
+ }
+
+ if (!(p->hist = calloc(1, sizeof(struct history_info)))
+ || (!(p->hist->PHist_new = calloc(NEWOLD_INIT, sizeof(HST_t))))
+ || (!(p->hist->PHist_sav = calloc(NEWOLD_INIT, sizeof(HST_t))))) {
+ free(p->items);
+ if (p->hist) {
+ free(p->hist->PHist_sav); // this & next might be NULL ...
+ free(p->hist->PHist_new);
+ free(p->hist);
+ }
+ free(p);
+ return -ENOMEM;
+ }
+ p->hist->HHist_siz = NEWOLD_INIT;
+ pids_config_history(p);
+
+ pgsz = getpagesize();
+ while (pgsz > 1024) { pgsz >>= 1; p->pgs2k_shift++; }
+ p->hertz = procps_hertz_get();
+
+ numa_init();
+
+ p->fetch.results.counts = &p->fetch.counts;
+
+ p->refcount = 1;
+ *info = p;
+ return 0;
+} // end: procps_pids_new
+
+
+PROCPS_EXPORT int procps_pids_ref (
+ struct pids_info *info)
+{
+ if (info == NULL)
+ return -EINVAL;
+
+ info->refcount++;
+ return info->refcount;
+} // end: procps_pids_ref
+
+
+PROCPS_EXPORT int procps_pids_unref (
+ struct pids_info **info)
+{
+ if (info == NULL || *info == NULL)
+ return -EINVAL;
+
+ (*info)->refcount--;
+
+ if ((*info)->refcount < 1) {
+#ifdef UNREF_RPTHASH
+ pids_unref_rpthash(*info);
+#endif
+ if ((*info)->extents) {
+ pids_cleanup_stacks_all(*info);
+ do {
+ struct stacks_extent *p = (*info)->extents;
+ (*info)->extents = (*info)->extents->next;
+ free(p);
+ } while ((*info)->extents);
+ }
+ if ((*info)->otherexts) {
+ struct stacks_extent *nextext, *ext = (*info)->otherexts;
+ while (ext) {
+ nextext = ext->next;
+ pids_cleanup_stack(ext->stacks[0]->head);
+ free(ext);
+ ext = nextext;
+ };
+ }
+ if ((*info)->fetch.anchor)
+ free((*info)->fetch.anchor);
+ if ((*info)->fetch.results.stacks)
+ free((*info)->fetch.results.stacks);
+
+ if ((*info)->items)
+ free((*info)->items);
+ if ((*info)->hist) {
+ free((*info)->hist->PHist_sav);
+ free((*info)->hist->PHist_new);
+ free((*info)->hist);
+ }
+
+ if ((*info)->get_ext)
+ pids_oldproc_close(&(*info)->get_PT);
+
+ if ((*info)->func_array)
+ free((*info)->func_array);
+
+ numa_uninit();
+
+ free(*info);
+ *info = NULL;
+ return 0;
+ }
+ return (*info)->refcount;
+} // end: procps_pids_unref
+
+
+// --- variable interface functions -------------------------------------------
+
+PROCPS_EXPORT struct pids_stack *fatal_proc_unmounted (
+ struct pids_info *info,
+ int return_self)
+{
+ struct pids_fetch *fetched;
+ unsigned tid;
+
+ /* this is very likely the *only* newlib function where the
+ context (pids_info) of NULL will ever be permitted */
+ if (!look_up_our_self()
+ || (!return_self))
+ return NULL;
+
+ tid = getpid();
+ if (!(fetched = procps_pids_select(info, &tid, 1, PIDS_SELECT_PID)))
+ return NULL;
+ return fetched->stacks[0];
+} // end: fatal_proc_unmounted
+
+
+PROCPS_EXPORT struct pids_stack *procps_pids_get (
+ struct pids_info *info,
+ enum pids_fetch_type which)
+{
+ double up_secs;
+
+ errno = EINVAL;
+ if (info == NULL)
+ return NULL;
+ if (which != PIDS_FETCH_TASKS_ONLY && which != PIDS_FETCH_THREADS_TOO)
+ return NULL;
+ /* with items & numitems technically optional at 'new' time, it's
+ expected 'reset' will have been called -- but just in case ... */
+ if (!info->maxitems)
+ return NULL;
+
+ if (!info->get_ext) {
+ if (!(info->get_ext = pids_stacks_alloc(info, 1)))
+ return NULL; // here, errno was overridden with ENOMEM
+fresh_start:
+ if (!pids_oldproc_open(&info->get_PT, info->oldflags))
+ return NULL; // here, errno was overridden with ENOMEM/others
+ info->get_type = which;
+ info->read_something = which ? readeither : readproc;
+ }
+
+ if (info->get_type != which) {
+ pids_oldproc_close(&info->get_PT);
+ goto fresh_start;
+ }
+ errno = 0;
+
+ /* when in a namespace with proc mounted subset=pid,
+ we will be restricted to process information only */
+ info->boot_tics = 0;
+ if (0 >= procps_uptime(&up_secs, NULL))
+ info->boot_tics = up_secs * info->hertz;
+
+ if (NULL == info->read_something(info->get_PT, &info->get_proc))
+ return NULL;
+ if (!pids_assign_results(info, info->get_ext->stacks[0], &info->get_proc))
+ return NULL;
+ return info->get_ext->stacks[0];
+} // end: procps_pids_get
+
+
+/* procps_pids_reap():
+ *
+ * Harvest all the available tasks/threads and provide the result
+ * stacks along with a summary of the information gathered.
+ *
+ * Returns: pointer to a pids_fetch struct on success, NULL on error.
+ */
+PROCPS_EXPORT struct pids_fetch *procps_pids_reap (
+ struct pids_info *info,
+ enum pids_fetch_type which)
+{
+ double up_secs;
+ int rc;
+
+ errno = EINVAL;
+ if (info == NULL)
+ return NULL;
+ if (which != PIDS_FETCH_TASKS_ONLY && which != PIDS_FETCH_THREADS_TOO)
+ return NULL;
+ /* with items & numitems technically optional at 'new' time, it's
+ expected 'reset' will have been called -- but just in case ... */
+ if (!info->maxitems)
+ return NULL;
+ errno = 0;
+
+ if (!pids_oldproc_open(&info->fetch_PT, info->oldflags))
+ return NULL;
+ info->read_something = which ? readeither : readproc;
+
+ /* when in a namespace with proc mounted subset=pid,
+ we will be restricted to process information only */
+ info->boot_tics = 0;
+ if (0 >= procps_uptime(&up_secs, NULL))
+ info->boot_tics = up_secs * info->hertz;
+
+ rc = pids_stacks_fetch(info);
+
+ pids_oldproc_close(&info->fetch_PT);
+ // we better have found at least 1 pid
+ return (rc > 0) ? &info->fetch.results : NULL;
+} // end: procps_pids_reap
+
+
+PROCPS_EXPORT int procps_pids_reset (
+ struct pids_info *info,
+ enum pids_item *newitems,
+ int newnumitems)
+{
+ if (info == NULL || newitems == NULL)
+ return -EINVAL;
+ if (pids_items_check_failed(newitems, newnumitems))
+ return -EINVAL;
+
+ pids_cleanup_stacks_all(info);
+
+ /* shame on this caller, they didn't change anything. and unless they have
+ altered the depth of the stacks we're not gonna change anything either! */
+ if (info->maxitems == newnumitems + 1
+ && !memcmp(info->items, newitems, sizeof(enum pids_item) * newnumitems))
+ return 0;
+
+ if (info->maxitems < newnumitems + 1) {
+ while (info->extents) {
+ struct stacks_extent *p = info->extents;
+ info->extents = p->next;
+ free(p);
+ };
+ if (info->get_ext) {
+ pids_oldproc_close(&info->get_PT);
+ info->get_ext = NULL;
+ }
+ if (info->fetch.anchor) {
+ free(info->fetch.anchor);
+ info->fetch.anchor = NULL;
+ }
+ // allow for our PIDS_logical_end
+ info->maxitems = newnumitems + 1;
+ if (!(info->items = realloc(info->items, sizeof(enum pids_item) * info->maxitems)))
+ return -ENOMEM;
+ }
+
+ memcpy(info->items, newitems, sizeof(enum pids_item) * newnumitems);
+ info->items[newnumitems] = PIDS_logical_end;
+ // account for above PIDS_logical_end
+ info->maxitems = newnumitems + 1;
+
+ // if extents were freed above, this next guy will have no effect
+ // so we'll rely on pids_stacks_alloc() to itemize ...
+ pids_itemize_stacks_all(info);
+ pids_libflags_set(info);
+ if (!pids_prep_func_array(info))
+ return -ENOMEM;
+
+ return 0;
+} // end: procps_pids_reset
+
+
+/* procps_pids_select():
+ *
+ * Harvest any processes matching the specified PID or UID and provide the
+ * result stacks along with a summary of the information gathered.
+ *
+ * Returns: pointer to a pids_fetch struct on success, NULL on error.
+ */
+PROCPS_EXPORT struct pids_fetch *procps_pids_select (
+ struct pids_info *info,
+ unsigned *these,
+ int numthese,
+ enum pids_select_type which)
+{
+ unsigned ids[FILL_ID_MAX + 1];
+ double up_secs;
+ int rc;
+
+ errno = EINVAL;
+ if (info == NULL || these == NULL)
+ return NULL;
+ if (numthese < 1 || numthese > FILL_ID_MAX)
+ return NULL;
+ if ((which != PIDS_SELECT_PID && which != PIDS_SELECT_UID)
+ && ((which != PIDS_SELECT_PID_THREADS && which != PIDS_SELECT_UID_THREADS)))
+ return NULL;
+ /* with items & numitems technically optional at 'new' time, it's
+ expected 'reset' will have been called -- but just in case ... */
+ if (!info->maxitems)
+ return NULL;
+ errno = 0;
+
+ // this zero delimiter is really only needed with PIDS_SELECT_PID
+ memcpy(ids, these, sizeof(unsigned) * numthese);
+ ids[numthese] = 0;
+
+ if (!pids_oldproc_open(&info->fetch_PT, (info->oldflags | which), ids, numthese))
+ return NULL;
+ info->read_something = (which & PIDS_FETCH_THREADS_TOO) ? readeither : readproc;
+
+ /* when in a namespace with proc mounted subset=pid,
+ we will be restricted to process information only */
+ info->boot_tics = 0;
+ if (0 >= procps_uptime(&up_secs, NULL))
+ info->boot_tics = up_secs * info->hertz;
+
+ rc = pids_stacks_fetch(info);
+
+ pids_oldproc_close(&info->fetch_PT);
+ // no guarantee any pids/uids were found
+ return (rc >= 0) ? &info->fetch.results : NULL;
+} // end: procps_pids_select
+
+
+/*
+ * procps_pids_sort():
+ *
+ * Sort stacks anchored in the passed stack pointers array
+ * based on the designated sort enumerator and specified order.
+ *
+ * Returns those same addresses sorted.
+ *
+ * Note: all of the stacks must be homogeneous (of equal length and content).
+ */
+PROCPS_EXPORT struct pids_stack **procps_pids_sort (
+ struct pids_info *info,
+ struct pids_stack *stacks[],
+ int numstacked,
+ enum pids_item sortitem,
+ enum pids_sort_order order)
+{
+ struct sort_parms parms;
+ struct pids_result *p;
+ int offset;
+
+ errno = EINVAL;
+ if (info == NULL || stacks == NULL)
+ return NULL;
+ // a pids_item is currently unsigned, but we'll protect our future
+ if (sortitem < 0 || sortitem >= PIDS_logical_end)
+ return NULL;
+ if (order != PIDS_SORT_ASCEND && order != PIDS_SORT_DESCEND)
+ return NULL;
+ if (numstacked < 2)
+ return stacks;
+
+ offset = 0;
+ p = stacks[0]->head;
+ for (;;) {
+ if (p->item == sortitem)
+ break;
+ ++offset;
+ if (offset >= info->maxitems)
+ return NULL;
+ if (p->item >= PIDS_logical_end)
+ return NULL;
+ ++p;
+ }
+ errno = 0;
+
+ parms.offset = offset;
+ parms.order = order;
+
+ qsort_r(stacks, numstacked, sizeof(void *), (QSR_t)Item_table[p->item].sortfunc, &parms);
+ return stacks;
+} // end: procps_pids_sort
+
+
+// --- special debugging function(s) ------------------------------------------
+/*
+ * The following isn't part of the normal programming interface. Rather,
+ * it exists to validate result types referenced in application programs.
+ *
+ * It's used only when:
+ * 1) the 'XTRA_PROCPS_DEBUG' has been defined, or
+ * 2) an #include of 'xtra-procps-debug.h' is used
+ */
+
+PROCPS_EXPORT struct pids_result *xtra_pids_val (
+ int relative_enum,
+ const char *typestr,
+ const struct pids_stack *stack,
+ struct pids_info *info,
+ const char *file,
+ int lineno)
+{
+ char *str;
+ int i;
+
+ for (i = 0; stack->head[i].item < PIDS_logical_end; i++)
+ ;
+ if (relative_enum < 0 || relative_enum >= i) {
+ fprintf(stderr, "%s line %d: invalid relative_enum = %d, valid range = 0-%d\n"
+ , file, lineno, relative_enum, i-1);
+ return NULL;
+ }
+ str = Item_table[stack->head[relative_enum].item].type2str;
+ if (str[0]
+ && (strcmp(typestr, str))) {
+ fprintf(stderr, "%s line %d: was %s, expected %s\n", file, lineno, typestr, str);
+ }
+ return &stack->head[relative_enum];
+ (void)info;
+} // end: xtra_pids_val
diff --git a/library/pwcache.c b/library/pwcache.c
new file mode 100644
index 0000000..f75e207
--- /dev/null
+++ b/library/pwcache.c
@@ -0,0 +1,99 @@
+/*
+ * pwcache.c - memory cache passwd file handling
+ *
+ * Copyright © 2011-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2015-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2002 Albert Cahalan
+ *
+ * Older version:
+ * Copyright © 1992-1998 Michael K. Johnson <johnsonm@redhat.com>
+ * Note: most likely none of his code remains
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <sys/types.h>
+#include <stdlib.h>
+#include <pwd.h>
+#include <grp.h>
+
+#include "pwcache.h"
+#include "procps-private.h"
+
+// might as well fill cache lines... else we waste memory anyway
+
+#define HASHSIZE 64 /* power of 2 */
+#define HASH(x) ((x) & (HASHSIZE - 1))
+
+static char ERRname[] = "?";
+
+static __thread struct pwbuf {
+ struct pwbuf *next;
+ uid_t uid;
+ char name[P_G_SZ];
+} *pwhash[HASHSIZE];
+
+char *pwcache_get_user(uid_t uid) {
+ struct pwbuf **p;
+ struct passwd *pw;
+
+ p = &pwhash[HASH(uid)];
+ while (*p) {
+ if ((*p)->uid == uid)
+ return((*p)->name);
+ p = &(*p)->next;
+ }
+ if (!(*p = (struct pwbuf *)malloc(sizeof(struct pwbuf))))
+ return ERRname;
+ (*p)->uid = uid;
+ pw = getpwuid(uid);
+ if(!pw || strlen(pw->pw_name) >= P_G_SZ)
+ sprintf((*p)->name, "%u", uid);
+ else
+ strcpy((*p)->name, pw->pw_name);
+
+ (*p)->next = NULL;
+ return((*p)->name);
+}
+
+static __thread struct grpbuf {
+ struct grpbuf *next;
+ gid_t gid;
+ char name[P_G_SZ];
+} *grphash[HASHSIZE];
+
+char *pwcache_get_group(gid_t gid) {
+ struct grpbuf **g;
+ struct group *gr;
+
+ g = &grphash[HASH(gid)];
+ while (*g) {
+ if ((*g)->gid == gid)
+ return((*g)->name);
+ g = &(*g)->next;
+ }
+ if (!(*g = (struct grpbuf *)malloc(sizeof(struct grpbuf))))
+ return ERRname;;
+ (*g)->gid = gid;
+ gr = getgrgid(gid);
+ if (!gr || strlen(gr->gr_name) >= P_G_SZ)
+ sprintf((*g)->name, "%u", gid);
+ else
+ strcpy((*g)->name, gr->gr_name);
+ (*g)->next = NULL;
+ return((*g)->name);
+}
diff --git a/library/readproc.c b/library/readproc.c
new file mode 100644
index 0000000..2dfe4c9
--- /dev/null
+++ b/library/readproc.c
@@ -0,0 +1,1627 @@
+/*
+ * readproc - interface to process table
+ *
+ * Copyright © 2002-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2011-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 1998-2010 Albert Cahalan
+ * Copyright © 2010-2011 Jan Görig <jgorig@redhat.com>
+ * Copyright © 1998 Michael K. Johnson
+ * Copyright © 1996 Charles L. Blake.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <stddef.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <stdarg.h>
+#include <string.h>
+#include <unistd.h>
+#include <signal.h>
+#include <fcntl.h>
+#include <dirent.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <limits.h>
+#include <stdint.h>
+#ifdef WITH_SYSTEMD
+#include <systemd/sd-login.h>
+#endif
+#ifdef WITH_ELOGIND
+#include <elogind/sd-login.h>
+#endif
+
+#include "devname.h"
+#include "escape.h"
+#include "misc.h"
+#include "pwcache.h"
+#include "readproc.h"
+
+// sometimes it's easier to do this manually, w/o gcc helping
+#ifdef PROF
+extern void __cyg_profile_func_enter(void*,void*);
+#define ENTER(x) __cyg_profile_func_enter((void*)x,(void*)x)
+#define LEAVE(x) __cyg_profile_func_exit((void*)x,(void*)x)
+#else
+#define ENTER(x)
+#define LEAVE(x)
+#endif
+
+#ifdef FALSE_THREADS
+#define IS_THREAD(q) ( q->tid != q->tgid )
+#endif
+
+// utility buffers of MAX_BUFSZ bytes each, available to
+// any function following an openproc() call
+static __thread char *src_buffer,
+ *dst_buffer;
+#define MAX_BUFSZ 1024*64*2
+
+// dynamic 'utility' buffer support for file2str() calls
+struct utlbuf_s {
+ char *buf; // dynamically grown buffer
+ int siz; // current len of the above
+} utlbuf_s;
+
+static int task_dir_missing;
+
+
+// free any additional dynamically acquired storage associated with a proc_t
+static inline void free_acquired (proc_t *p) {
+ /*
+ * here we free those items that might exist even when not explicitly |
+ * requested by our caller. it is expected that pid.c will then free |
+ * any remaining dynamic memory which might be dangling off a proc_t. | */
+ if (p->cgname) free(p->cgname);
+ if (p->cgroup) free(p->cgroup);
+ if (p->cmd) free(p->cmd);
+ if (p->sd_mach) free(p->sd_mach);
+ if (p->sd_ouid) free(p->sd_ouid);
+ if (p->sd_seat) free(p->sd_seat);
+ if (p->sd_sess) free(p->sd_sess);
+ if (p->sd_slice) free(p->sd_slice);
+ if (p->sd_unit) free(p->sd_unit);
+ if (p->sd_uunit) free(p->sd_uunit);
+ if (p->supgid) free(p->supgid);
+
+ memset(p, '\0', sizeof(proc_t));
+}
+
+
+///////////////////////////////////////////////////////////////////////////
+
+typedef struct status_table_struct {
+ unsigned char name[8]; // /proc/*/status field name
+ unsigned char len; // name length
+#ifdef LABEL_OFFSET
+ long offset; // jump address offset
+#else
+ void *addr;
+#endif
+} status_table_struct;
+
+#ifdef LABEL_OFFSET
+#define F(x) {#x, sizeof(#x)-1, (long)(&&case_##x-&&base)},
+#else
+#define F(x) {#x, sizeof(#x)-1, &&case_##x},
+#endif
+#define NUL {"", 0, 0},
+
+#define GPERF_TABLE_SIZE 128
+
+// Derived from:
+// gperf -7 --language=ANSI-C --key-positions=1,3,4 -C -n -c <if-not-piped>
+// ( --key-positions verified by omission & reported "Computed positions" )
+//
+// Suggested method:
+// Grep this file for "case_", then strip those down to the name.
+// Eliminate duplicates (due to #ifs), the ' case_' prefix and
+// any c comments. Leave the colon and newline so that "Pid:\n",
+// "Threads:\n", etc. would be lines, but no quote, no escape, etc.
+//
+// After a pipe through gperf, insert the resulting 'asso_values'
+// into our 'asso' array. Then convert the gperf 'wordlist' array
+// into our 'table' array by wrapping the string literals within
+// the F macro and replacing empty strings with the NUL define.
+//
+// In the status_table_struct watch out for name size (grrr, expanding)
+// and the number of entries. Currently, the table is padded to 128
+// entries and we therefore mask with 127.
+
+static int status2proc (char *S, proc_t *restrict P, int is_proc) {
+ long Threads = 0;
+ long Tgid = 0;
+ long Pid = 0;
+
+ // 128 entries because we trust the kernel to use ASCII names
+ static const unsigned char asso[] =
+ {
+ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 101, 6, 101,
+ 101, 101, 101, 101, 101, 45, 55, 25, 31, 50,
+ 50, 10, 0, 35, 101, 101, 21, 101, 30, 101,
+ 20, 36, 0, 5, 0, 40, 0, 0, 101, 101,
+ 101, 101, 101, 101, 101, 101, 101, 30, 101, 15,
+ 0, 1, 101, 10, 101, 10, 101, 101, 101, 25,
+ 101, 40, 0, 101, 0, 50, 6, 40, 101, 1,
+ 35, 101, 101, 101, 101, 101, 101, 101
+ };
+
+ static const status_table_struct table[GPERF_TABLE_SIZE] = {
+ F(VmHWM)
+ F(Threads)
+ NUL NUL NUL
+ F(VmRSS)
+ F(VmSwap)
+ NUL NUL NUL
+ F(Tgid)
+ F(VmStk)
+ NUL NUL NUL
+ F(VmSize)
+ F(Gid)
+ NUL NUL NUL
+ F(VmPTE)
+ F(VmPeak)
+ NUL NUL NUL
+ F(ShdPnd)
+ F(Pid)
+ NUL NUL NUL
+ F(PPid)
+ F(VmLib)
+ NUL NUL NUL
+ F(SigPnd)
+ F(VmLck)
+ NUL NUL NUL
+ F(SigCgt)
+ F(State)
+ NUL NUL NUL
+ F(CapPrm)
+ F(Uid)
+ NUL NUL NUL
+ F(SigIgn)
+ F(SigQ)
+ NUL NUL NUL
+ F(RssShmem)
+ F(Name)
+ NUL NUL NUL
+ F(CapInh)
+ F(VmData)
+ NUL NUL NUL
+ F(FDSize)
+ NUL NUL NUL NUL
+ F(SigBlk)
+ NUL NUL NUL NUL
+ F(CapEff)
+ NUL NUL NUL NUL
+ F(CapBnd)
+ NUL NUL NUL NUL
+ F(VmExe)
+ NUL NUL NUL NUL
+ F(Groups)
+ NUL NUL NUL NUL
+ F(RssAnon)
+ NUL NUL NUL NUL
+ F(RssFile)
+ };
+
+#undef F
+#undef NUL
+
+ENTER(0x220);
+
+ goto base;
+
+ for(;;){
+ char *colon;
+ status_table_struct entry;
+
+ // advance to next line
+ S = strchr(S, '\n');
+ if(!S) break; // if no newline
+ S++;
+
+ // examine a field name (hash and compare)
+ base:
+ if(!*S) break;
+ if((!S[0] || !S[1] || !S[2] || !S[3])) break;
+ entry = table[(GPERF_TABLE_SIZE -1) & (asso[S[3]&127] + asso[S[2]&127] + asso[S[0]&127])];
+ colon = strchr(S, ':');
+ if(!colon) break;
+ if(colon[1]!='\t') break;
+ if(colon-S != entry.len) continue;
+ if(memcmp(entry.name,S,colon-S)) continue;
+
+ S = colon+2; // past the '\t'
+
+#ifdef LABEL_OFFSET
+ goto *(&&base + entry.offset);
+#else
+ goto *entry.addr;
+#endif
+
+ case_Name:
+ { char buf[64], raw[64];
+ unsigned u = 0;
+ while(u < sizeof(raw) - 1u){
+ int c = *S++;
+ if(c=='\n') break;
+ if(c=='\0') break; // should never happen
+ if(c=='\\'){
+ c = *S++;
+ if(c=='\n') break; // should never happen
+ if(!c) break; // should never happen
+ if(c=='n') c='\n'; // else we assume it is '\\'
+ }
+ raw[u++] = c;
+ }
+ raw[u] = '\0';
+#ifdef FALSE_THREADS
+ if (!IS_THREAD(P)) {
+#endif
+ if (!P->cmd) {
+ escape_str(buf, raw, sizeof(buf));
+ if (!(P->cmd = strdup(buf))) return 1;
+ }
+#ifdef FALSE_THREADS
+ }
+#endif
+ S--; // put back the '\n' or '\0'
+ continue;
+ }
+ case_ShdPnd:
+ memcpy(P->signal, S, 16);
+ P->signal[16] = '\0';
+ continue;
+ case_SigBlk:
+ memcpy(P->blocked, S, 16);
+ P->blocked[16] = '\0';
+ continue;
+ case_SigCgt:
+ memcpy(P->sigcatch, S, 16);
+ P->sigcatch[16] = '\0';
+ continue;
+ case_SigIgn:
+ memcpy(P->sigignore, S, 16);
+ P->sigignore[16] = '\0';
+ continue;
+ case_SigPnd:
+ memcpy(P->_sigpnd, S, 16);
+ P->_sigpnd[16] = '\0';
+ continue;
+ case_State:
+ P->state = *S;
+ continue;
+ case_Tgid:
+ Tgid = strtol(S,&S,10);
+ continue;
+ case_Pid:
+ Pid = strtol(S,&S,10);
+ continue;
+ case_PPid:
+ P->ppid = strtol(S,&S,10);
+ continue;
+ case_Threads:
+ Threads = strtol(S,&S,10);
+ continue;
+ case_Uid:
+ P->ruid = strtol(S,&S,10);
+ P->euid = strtol(S,&S,10);
+ P->suid = strtol(S,&S,10);
+ P->fuid = strtol(S,&S,10);
+ continue;
+ case_Gid:
+ P->rgid = strtol(S,&S,10);
+ P->egid = strtol(S,&S,10);
+ P->sgid = strtol(S,&S,10);
+ P->fgid = strtol(S,&S,10);
+ continue;
+ case_VmData:
+ P->vm_data = (unsigned long)strtol(S,&S,10);
+ continue;
+ case_VmExe:
+ P->vm_exe = (unsigned long)strtol(S,&S,10);
+ continue;
+ case_VmLck:
+ P->vm_lock = (unsigned long)strtol(S,&S,10);
+ continue;
+ case_VmLib:
+ P->vm_lib = (unsigned long)strtol(S,&S,10);
+ continue;
+ case_VmRSS:
+ P->vm_rss = (unsigned long)strtol(S,&S,10);
+ continue;
+ case_RssAnon: // subset of VmRSS, linux-4.5
+ P->vm_rss_anon = (unsigned long)strtol(S,&S,10);
+ continue;
+ case_RssFile: // subset of VmRSS, linux-4.5
+ P->vm_rss_file = (unsigned long)strtol(S,&S,10);
+ continue;
+ case_RssShmem: // subset of VmRSS, linux-4.5
+ P->vm_rss_shared = (unsigned long)strtol(S,&S,10);
+ continue;
+ case_VmSize:
+ P->vm_size = (unsigned long)strtol(S,&S,10);
+ continue;
+ case_VmStk:
+ P->vm_stack = (unsigned long)strtol(S,&S,10);
+ continue;
+ case_VmSwap: // Linux 2.6.34
+ P->vm_swap = (unsigned long)strtol(S,&S,10);
+ continue;
+ case_Groups:
+ { char *ss = S, *nl = strchr(S, '\n');
+ size_t j;
+
+#ifdef FALSE_THREADS
+ if (IS_THREAD(P)) continue;
+#endif
+ while (' ' == *ss || '\t' == *ss) ss++;
+ if (ss >= nl) continue;
+ j = nl ? (size_t)(nl - ss) : strlen(ss);
+ if (j > 0 && j < INT_MAX) {
+ P->supgid = malloc(j+1); // +1 in case space disappears
+ if (!P->supgid)
+ return 1;
+ memcpy(P->supgid, ss, j);
+ if (' ' != P->supgid[--j]) ++j;
+ P->supgid[j] = '\0'; // whack the space or the newline
+ for ( ; j; j--)
+ if (' ' == P->supgid[j])
+ P->supgid[j] = ',';
+ }
+ continue;
+ }
+ case_CapBnd:
+ case_CapEff:
+ case_CapInh:
+ case_CapPrm:
+ case_FDSize:
+ case_SigQ:
+ case_VmHWM: // 2005, peak VmRSS unless VmRSS is bigger
+ case_VmPTE:
+ case_VmPeak: // 2005, peak VmSize unless VmSize is bigger
+ continue;
+ }
+
+#if 0
+ // recent kernels supply per-tgid pending signals
+ if(is_proc && *ShdPnd){
+ memcpy(P->signal, ShdPnd, 16);
+ P->signal[16] = '\0';
+ }
+#endif
+
+ // recent kernels supply per-tgid pending signals
+ if(!is_proc || !P->signal[0]){
+ memcpy(P->signal, P->_sigpnd, 16);
+ P->signal[16] = '\0';
+ }
+
+ // Linux 2.4.13-pre1 to max 2.4.xx have a useless "Tgid"
+ // that is not initialized for built-in kernel tasks.
+ // Only 2.6.0 and above have "Threads" (nlwp) info.
+
+ if(Threads){
+ P->nlwp = Threads;
+ P->tgid = Tgid; // the POSIX PID value
+ P->tid = Pid; // the thread ID
+ }else{
+ P->nlwp = 1;
+ P->tgid = Pid;
+ P->tid = Pid;
+ }
+
+#ifdef FALSE_THREADS
+ if (!IS_THREAD(P)) {
+#endif
+ if (!P->supgid) {
+ P->supgid = strdup("-");
+ if (!P->supgid)
+ return 1;
+ }
+#ifdef FALSE_THREADS
+ }
+#endif
+LEAVE(0x220);
+ return 0;
+}
+#undef GPERF_TABLE_SIZE
+
+
+static int supgrps_from_supgids (proc_t *p) {
+ char *g, *s;
+ int t;
+
+#ifdef FALSE_THREADS
+ if (IS_THREAD(p)) return 0;
+#endif
+ if (!p->supgid || '-' == *p->supgid)
+ goto wrap_up;
+
+ s = p->supgid;
+ t = 0;
+ do {
+ const int max = P_G_SZ+2;
+ char *end = NULL;
+ gid_t gid;
+ int len;
+
+ while (',' == *s) ++s;
+ gid = strtol(s, &end, 10);
+ if (end <= s) break;
+ s = end;
+ g = pwcache_get_group(gid);
+
+ if ((t >= INT_MAX - max)
+ || (!(p->supgrp = realloc(p->supgrp, t + max))))
+ return 1;
+
+ len = snprintf(p->supgrp+t, max, "%s%s", t ? "," : "", g);
+ if (len <= 0) (p->supgrp+t)[len = 0] = '\0';
+ else if (len >= max) len = max-1;
+ t += len;
+ } while (*s);
+
+wrap_up:
+ if (!p->supgrp
+ && !(p->supgrp = strdup("-")))
+ return 1;
+ return 0;
+}
+
+
+///////////////////////////////////////////////////////////////////////
+
+static inline void oomscore2proc(const char *S, proc_t *restrict P)
+{
+ sscanf(S, "%d", &P->oom_score);
+}
+
+static inline void oomadj2proc(const char *S, proc_t *restrict P)
+{
+ sscanf(S, "%d", &P->oom_adj);
+}
+
+
+///////////////////////////////////////////////////////////////////////
+
+static int sd2proc (proc_t *restrict p) {
+#if defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)
+ char buf[64];
+ uid_t uid;
+
+ if (0 > sd_pid_get_machine_name(p->tid, &p->sd_mach)) {
+ if (!(p->sd_mach = strdup("-")))
+ return 1;
+ }
+ if (0 > sd_pid_get_owner_uid(p->tid, &uid)) {
+ if (!(p->sd_ouid = strdup("-")))
+ return 1;
+ } else {
+ snprintf(buf, sizeof(buf), "%d", (int)uid);
+ if (!(p->sd_ouid = strdup(buf)))
+ return 1;
+ }
+ if (0 > sd_pid_get_session(p->tid, &p->sd_sess)) {
+ if (!(p->sd_sess = strdup("-")))
+ return 1;
+ if (!(p->sd_seat = strdup("-")))
+ return 1;
+ } else {
+ if (0 > sd_session_get_seat(p->sd_sess, &p->sd_seat))
+ if (!(p->sd_seat = strdup("-")))
+ return 1;
+ }
+ if (0 > sd_pid_get_slice(p->tid, &p->sd_slice))
+ if (!(p->sd_slice = strdup("-")))
+ return 1;
+ if (0 > sd_pid_get_unit(p->tid, &p->sd_unit))
+ if (!(p->sd_unit = strdup("-")))
+ return 1;
+ if (0 > sd_pid_get_user_unit(p->tid, &p->sd_uunit))
+ if (!(p->sd_uunit = strdup("-")))
+ return 1;
+#else
+ if (!(p->sd_mach = strdup("?")))
+ return 1;
+ if (!(p->sd_ouid = strdup("?")))
+ return 1;
+ if (!(p->sd_seat = strdup("?")))
+ return 1;
+ if (!(p->sd_sess = strdup("?")))
+ return 1;
+ if (!(p->sd_slice = strdup("?")))
+ return 1;
+ if (!(p->sd_unit = strdup("?")))
+ return 1;
+ if (!(p->sd_uunit = strdup("?")))
+ return 1;
+#endif
+ return 0;
+}
+
+
+///////////////////////////////////////////////////////////////////////
+
+// Reads /proc/*/stat files, being careful not to trip over processes with
+// names like ":-) 1 2 3 4 5 6".
+static int stat2proc (const char *S, proc_t *restrict P) {
+ char buf[64], raw[64];
+ size_t num;
+ char *tmp;
+
+ENTER(0x160);
+
+ /* fill in default values for older kernels */
+ P->processor = 0;
+ P->rtprio = -1;
+ P->sched = -1;
+ P->nlwp = 0;
+
+ S = strchr(S, '(');
+ if (!S) return 0;
+ S++;
+ tmp = strrchr(S, ')');
+ if (!tmp || !tmp[1]) return 0;
+#ifdef FALSE_THREADS
+ if (!IS_THREAD(P)) {
+#endif
+ if (!P->cmd) {
+ num = tmp - S;
+ memcpy(raw, S, num);
+ raw[num] = '\0';
+ escape_str(buf, raw, sizeof(buf));
+ if (!(P->cmd = strdup(buf))) return 1;
+ }
+#ifdef FALSE_THREADS
+ }
+#endif
+ S = tmp + 2; // skip ") "
+
+ sscanf(S,
+ "%c " // state
+ "%d %d %d %d %d " // ppid, pgrp, sid, tty_nr, tty_pgrp
+ "%lu %lu %lu %lu %lu " // flags, min_flt, cmin_flt, maj_flt, cmaj_flt
+ "%llu %llu %llu %llu " // utime, stime, cutime, cstime
+ "%d %d " // priority, nice
+ "%d " // num_threads
+ "%lu " // 'alarm' == it_real_value (obsolete, always 0)
+ "%llu " // start_time
+ "%lu " // vsize
+ "%lu " // rss
+ "%lu %lu %lu %lu %lu %lu " // rsslim, start_code, end_code, start_stack, esp, eip
+ "%*s %*s %*s %*s " // pending, blocked, sigign, sigcatch <=== DISCARDED
+ "%lu %*u %*u " // 0 (former wchan), 0, 0 <=== Placeholders only
+ "%d %d " // exit_signal, task_cpu
+ "%d %d " // rt_priority, policy (sched)
+ "%llu %llu %llu", // blkio_ticks, gtime, cgtime
+ &P->state,
+ &P->ppid, &P->pgrp, &P->session, &P->tty, &P->tpgid,
+ &P->flags, &P->min_flt, &P->cmin_flt, &P->maj_flt, &P->cmaj_flt,
+ &P->utime, &P->stime, &P->cutime, &P->cstime,
+ &P->priority, &P->nice,
+ &P->nlwp,
+ &P->alarm,
+ &P->start_time,
+ &P->vsize,
+ &P->rss,
+ &P->rss_rlim, &P->start_code, &P->end_code, &P->start_stack, &P->kstk_esp, &P->kstk_eip,
+/* P->signal, P->blocked, P->sigignore, P->sigcatch, */ /* can't use */
+ &P->wchan, /* &P->nswap, &P->cnswap, */ /* nswap and cnswap dead for 2.4.xx and up */
+/* -- Linux 2.0.35 ends here -- */
+ &P->exit_signal, &P->processor, /* 2.2.1 ends with "exit_signal" */
+/* -- Linux 2.2.8 to 2.5.17 end here -- */
+ &P->rtprio, &P->sched, /* both added to 2.5.18 */
+ &P->blkio_tics, &P->gtime, &P->cgtime
+ );
+
+ if(!P->nlwp)
+ P->nlwp = 1;
+
+ return 0;
+LEAVE(0x160);
+}
+
+
+/////////////////////////////////////////////////////////////////////////
+
+static void statm2proc(const char *s, proc_t *restrict P) {
+ sscanf(s, "%lu %lu %lu %lu %lu %lu %lu",
+ &P->size, &P->resident, &P->share,
+ &P->trs, &P->lrs, &P->drs, &P->dt);
+}
+
+static void io2proc(const char *s, proc_t *restrict P) {
+ sscanf(s, "rchar: %lu wchar: %lu syscr: %lu syscw: %lu read_bytes: %lu write_bytes: %lu cancelled_write_bytes: %lu",
+ &P->rchar, &P->wchar, &P->syscr,
+ &P->syscw, &P->read_bytes, &P->write_bytes, &P->cancelled_write_bytes);
+}
+
+ // Assuming permissions have allowed the read of smaps_rollup, this
+ // guy will extract some %lu data. Considering the number of items,
+ // we are between small enough to use a sscanf and large enough for
+ // a search.h approach. Thus we roll (get it?) our own custom code.
+static void smaps2proc (const char *s, proc_t *restrict P) {
+ #define enMAX (int)((sizeof(smaptab) / sizeof(smaptab[0])))
+ // 1st proc_t data field
+ #define fZERO tid
+ // a smaptab entry generator
+ #define mkENT(F) { #F ":", -1, offsetof(proc_t, smap_ ## F) }
+ // make a target field
+ #define mkOBJ(X) ( (unsigned long *)((void *)&P->fZERO + smaptab[X].offs) )
+ static struct {
+ const char *item;
+ int slen;
+ int offs;
+ } smaptab[] = {
+ /* Size smaps only, not rollup */
+ /* KernelPageSize " */
+ /* MMUPageSize " */
+ mkENT(Rss),
+ mkENT(Pss),
+ mkENT(Pss_Anon), /* rollup only, not smaps */
+ mkENT(Pss_File), /* " */
+ mkENT(Pss_Shmem), /* " */
+ mkENT(Shared_Clean),
+ mkENT(Shared_Dirty),
+ mkENT(Private_Clean),
+ mkENT(Private_Dirty),
+ mkENT(Referenced),
+ mkENT(Anonymous),
+ mkENT(LazyFree),
+ mkENT(AnonHugePages),
+ mkENT(ShmemPmdMapped),
+ mkENT(FilePmdMapped),
+ mkENT(Shared_Hugetlb),
+ mkENT(Private_Hugetlb),
+ mkENT(Swap),
+ mkENT(SwapPss),
+ mkENT(Locked)
+ /* THPeligible smaps only, not rollup */
+ /* ProtectionKey " */
+ /* VmFlags " */
+ };
+ char *head, *tail;
+ int i;
+
+ if (smaptab[0].slen < 0) {
+ for (i = 0; i < enMAX; i++)
+ smaptab[i].slen = (int)strlen(smaptab[i].item);
+ }
+ for (i = 0; i < enMAX; i++) {
+ if (!(head = strstr(s, smaptab[i].item)))
+ continue;
+ head += smaptab[i].slen;
+ *mkOBJ(i) = strtoul(head, &tail, 10);
+ // saves some overhead BUT makes us dependent on current order
+ s = tail;
+ }
+ #undef enMAX
+ #undef fZERO
+ #undef mkENT
+ #undef mkOBJ
+}
+
+static int file2str(const char *directory, const char *what, struct utlbuf_s *ub) {
+ #define buffGRW 1024
+ char path[PROCPATHLEN];
+ int fd, num, tot_read = 0, len;
+
+ /* on first use we preallocate a buffer of minimum size to emulate
+ former 'local static' behavior -- even if this read fails, that
+ buffer will likely soon be used for another subdirectory anyway
+ ( besides, with the calloc call we will never need use memcpy ) */
+ if (ub->buf) ub->buf[0] = '\0';
+ else {
+ ub->buf = calloc(1, (ub->siz = buffGRW));
+ if (!ub->buf) return -1;
+ }
+ len = snprintf(path, sizeof path, "%s/%s", directory, what);
+ if (len <= 0 || (size_t)len >= sizeof path) return -1;
+ if (-1 == (fd = open(path, O_RDONLY, 0))) return -1;
+ while (0 < (num = read(fd, ub->buf + tot_read, ub->siz - tot_read))) {
+ tot_read += num;
+ if (tot_read < ub->siz) break;
+ if (ub->siz >= INT_MAX - buffGRW) {
+ tot_read--;
+ break;
+ }
+ if (!(ub->buf = realloc(ub->buf, (ub->siz += buffGRW)))) {
+ close(fd);
+ return -1;
+ }
+ };
+ ub->buf[tot_read] = '\0';
+ close(fd);
+ if (tot_read < 1) return -1;
+ return tot_read;
+ #undef buffGRW
+}
+
+
+static char **file2strvec(const char *directory, const char *what) {
+ char buf[2048]; /* read buf bytes at a time */
+ char *p, *rbuf = 0, *endbuf, **q, **ret, *strp;
+ int fd, tot = 0, n, c, end_of_file = 0;
+ int align;
+
+ const int len = snprintf(buf, sizeof buf, "%s/%s", directory, what);
+ if(len <= 0 || (size_t)len >= sizeof buf) return NULL;
+ fd = open(buf, O_RDONLY, 0);
+ if(fd==-1) return NULL;
+
+ /* read whole file into a memory buffer, allocating as we go */
+ while ((n = read(fd, buf, sizeof buf - 1)) >= 0) {
+ if (n < (int)(sizeof buf - 1))
+ end_of_file = 1;
+ if (n <= 0 && tot <= 0) { /* nothing read now, nothing read before */
+ break; /* process died between our open and read */
+ }
+ /* ARG_LEN is our guesstimated median length of a command-line argument
+ or environment variable (the minimum is 1, the maximum is 131072) */
+ #define ARG_LEN 64
+ if (tot >= INT_MAX / (ARG_LEN + (int)sizeof(char*)) * ARG_LEN - n) {
+ end_of_file = 1; /* integer overflow: null-terminate and break */
+ n = 0; /* but tot > 0 */
+ }
+ #undef ARG_LEN
+ if (end_of_file &&
+ ((n > 0 && buf[n-1] != '\0') || /* last read char not null */
+ (n <= 0 && rbuf && rbuf[tot-1] != '\0'))) /* last read char not null */
+
+ buf[n++] = '\0'; /* so append null-terminator */
+
+ if (n <= 0) break; /* unneeded (end_of_file = 1) but avoid realloc */
+ rbuf = realloc(rbuf, tot + n); /* allocate more memory */
+ if (!rbuf) {
+ close(fd);
+ return NULL;
+ }
+ memcpy(rbuf + tot, buf, n); /* copy buffer into it */
+ tot += n; /* increment total byte ctr */
+ if (end_of_file)
+ break;
+ }
+ close(fd);
+ if (n < 0 || tot <= 0) { /* error, or nothing read */
+ if (rbuf) free(rbuf);
+ return NULL; /* read error */
+ }
+
+ rbuf[tot-1] = '\0'; /* belt and suspenders (the while loop did it, too) */
+ endbuf = rbuf + tot; /* count space for pointers */
+ align = (sizeof(char*)-1) - ((tot + sizeof(char*)-1) & (sizeof(char*)-1));
+ c = sizeof(char*); /* one extra for NULL term */
+ for (p = rbuf; p < endbuf; p++) {
+ if (!*p || *p == '\n') {
+ if (c >= INT_MAX - (tot + (int)sizeof(char*) + align)) break;
+ c += sizeof(char*);
+ }
+ if (*p == '\n')
+ *p = 0;
+ }
+
+ rbuf = realloc(rbuf, tot + c + align); /* make room for ptrs AT END */
+ if (!rbuf) return NULL;
+ endbuf = rbuf + tot; /* addr just past data buf */
+ q = ret = (char**) (endbuf+align); /* ==> free(*ret) to dealloc */
+ for (strp = p = rbuf; p < endbuf; p++) {
+ if (!*p) { /* NUL char implies that */
+ if (c < 2 * (int)sizeof(char*)) break;
+ c -= sizeof(char*);
+ *q++ = strp; /* point ptrs to the strings */
+ strp = p+1; /* next string -> next char */
+ }
+ }
+ *q = 0; /* null ptr list terminator */
+ return ret;
+}
+
+
+ // this is the former under utilized 'read_cmdline', which has been
+ // generalized in support of these new libproc flags:
+ // PROC_EDITCGRPCVT, PROC_EDITCMDLCVT and PROC_EDITENVRCVT
+static int read_unvectored(char *restrict const dst, unsigned sz, const char *whom, const char *what, char sep) {
+ char path[PROCPATHLEN];
+ int fd, len;
+ unsigned n = 0;
+
+ if(sz <= 0) return 0;
+ if(sz >= INT_MAX) sz = INT_MAX-1;
+ dst[0] = '\0';
+
+ len = snprintf(path, sizeof(path), "%s/%s", whom, what);
+ if(len <= 0 || (size_t)len >= sizeof(path)) return 0;
+ fd = open(path, O_RDONLY);
+ if(fd==-1) return 0;
+
+ for(;;){
+ ssize_t r = read(fd,dst+n,sz-n);
+ if(r==-1){
+ if(errno==EINTR) continue;
+ break;
+ }
+ if(r<=0) break; // EOF
+ n += r;
+ if(n==sz) { // filled the buffer
+ --n; // make room for '\0'
+ break;
+ }
+ }
+ close(fd);
+ if(n){
+ unsigned i = n;
+ while(i && dst[i-1]=='\0') --i; // skip trailing zeroes
+ while(i--)
+ if(dst[i]=='\n' || dst[i]=='\0') dst[i]=sep;
+ if(dst[n-1]==' ') dst[n-1]='\0';
+ }
+ dst[n] = '\0';
+ return n;
+}
+
+
+char **vectorize_this_str (const char *src) {
+ #define pSZ (sizeof(char*))
+ char *cpy, **vec;
+ size_t adj, tot;
+
+ tot = strlen(src) + 1; // prep for our vectors
+ if (tot < 1 || tot >= INT_MAX) tot = INT_MAX-1; // integer overflow?
+ adj = (pSZ-1) - ((tot + pSZ-1) & (pSZ-1)); // calc alignment bytes
+ cpy = calloc(1, tot + adj + (2 * pSZ)); // get new larger buffer
+ if (!cpy) return NULL; // oops, looks like ENOMEM
+ snprintf(cpy, tot, "%s", src); // duplicate their string
+ vec = (char**)(cpy + tot + adj); // prep pointer to pointers
+ *vec = cpy; // point 1st vector to string
+ *(vec+1) = NULL; // null ptr 'list' delimit
+ return vec; // ==> free(*vec) to dealloc
+ #undef pSZ
+}
+
+
+ // This littl' guy just serves those true vectorized fields
+ // ( when a /proc source field didn't exist )
+static int vectorize_dash_rc (char ***vec) {
+ if (!(*vec = vectorize_this_str("-")))
+ return 1;
+ return 0;
+}
+
+
+ // This routine reads a 'cgroup' for the designated proc_t and
+ // guarantees the caller a valid proc_t.cgroup pointer.
+static int fill_cgroup_cvt (const char *directory, proc_t *restrict p) {
+ #define vMAX ( MAX_BUFSZ - (int)(dst - dst_buffer) )
+ char *src, *dst, *grp, *eob, *name;
+ int tot, x, len;
+
+ *(dst = dst_buffer) = '\0'; // empty destination
+ tot = read_unvectored(src_buffer, MAX_BUFSZ, directory, "cgroup", '\0');
+ for (src = src_buffer, eob = src_buffer + tot; src < eob; src += x) {
+ x = 1; // loop assist
+ if (!*src) continue;
+ x = strlen((grp = src));
+ if ('/' == grp[x - 1]) continue; // skip empty root cgroups
+#if 0
+ grp += strspn(grp, "0123456789:"); // jump past group number
+#endif
+ if (vMAX <= 1) break;
+ len = snprintf(dst, vMAX, "%s", (dst > dst_buffer) ? "," : "");
+ if (len < 0 || len >= vMAX) break;
+ dst += len;
+ dst += escape_str(dst, grp, vMAX);
+ }
+ if (!(p->cgroup = strdup(dst_buffer[0] ? dst_buffer : "-")))
+ return 1;
+ name = strstr(p->cgroup, ":name=");
+ if (name && *(name+6)) name += 6; else name = p->cgroup;
+ if (!(p->cgname = strdup(name)))
+ return 1;
+ return 0;
+ #undef vMAX
+}
+
+
+ // This routine reads a 'cmdline' for the designated proc_t, "escapes"
+ // the result into a single string while guaranteeing the caller a
+ // valid proc_t.cmdline pointer.
+static int fill_cmdline_cvt (const char *directory, proc_t *restrict p) {
+ #define uFLG ( ESC_BRACKETS | ESC_DEFUNCT )
+ if (read_unvectored(src_buffer, MAX_BUFSZ, directory, "cmdline", ' '))
+ escape_str(dst_buffer, src_buffer, MAX_BUFSZ);
+ else
+ escape_command(dst_buffer, p, MAX_BUFSZ, uFLG);
+ p->cmdline = strdup(dst_buffer[0] ? dst_buffer : "?");
+ if (!p->cmdline)
+ return 1;
+ return 0;
+ #undef uFLG
+}
+
+
+ // This routine reads an 'environ' for the designated proc_t and
+ // guarantees the caller a valid proc_t.environ pointer.
+static int fill_environ_cvt (const char *directory, proc_t *restrict p) {
+ dst_buffer[0] = '\0';
+ if (read_unvectored(src_buffer, MAX_BUFSZ, directory, "environ", ' '))
+ escape_str(dst_buffer, src_buffer, MAX_BUFSZ);
+ p->environ = strdup(dst_buffer[0] ? dst_buffer : "-");
+ if (!p->environ)
+ return 1;
+ return 0;
+}
+
+
+ // Provide the means to value proc_t.lxcname (perhaps only with "-") while
+ // tracking all names already seen thus avoiding the overhead of repeating
+ // malloc() and free() calls.
+static char *lxc_containers (const char *path) {
+ static __thread struct utlbuf_s ub = { NULL, 0 }; // util buffer for whole cgroup
+ static char lxc_none[] = "-";
+ static char lxc_oops[] = "?"; // used when memory alloc fails
+ /*
+ try to locate the lxc delimiter eyecatcher somewhere in a task's cgroup
+ directory -- the following are from nested privileged plus unprivileged
+ containers, where the '/lxc/' delimiter precedes the container name ...
+ 10:cpuset:/lxc/lxc-P/lxc/lxc-P-nested
+ 10:cpuset:/user.slice/user-1000.slice/session-c2.scope/lxc/lxc-U/lxc/lxc-U-nested
+
+ ... some minor complications are the potential addition of more cgroups
+ for a controller displacing the lxc name (normally last on a line), and
+ environments with unexpected /proc/##/cgroup ordering/contents as with:
+ 10:cpuset:/lxc/lxc-P/lxc/lxc-P-nested/MY-NEW-CGROUP
+ or
+ 2:name=systemd:/
+ 1:cpuset,cpu,cpuacct,devices,freezer,net_cls,blkio,perf_event,net_prio:/lxc/lxc-P
+ */
+ if (file2str(path, "cgroup", &ub) > 0) {
+ /* ouch, the next defaults could be changed at lxc ./configure time
+ ( and a changed 'lxc.cgroup.pattern' is only available to root ) */
+ static const char *lxc_delm1 = "lxc.payload."; // with lxc-4.0.0
+ static const char *lxc_delm2 = "lxc.payload/"; // thru lxc-3.2.1
+ static const char *lxc_delm3 = "lxc/"; // thru lxc-3.0.3
+ const char *delim;
+ char *p1;
+
+ if ((p1 = strstr(ub.buf, (delim = lxc_delm1)))
+ || ((p1 = strstr(ub.buf, (delim = lxc_delm2)))
+ || ((p1 = strstr(ub.buf, (delim = lxc_delm3)))))) {
+ static __thread struct lxc_ele {
+ struct lxc_ele *next;
+ char *name;
+ } *anchor = NULL;
+ struct lxc_ele *ele = anchor;
+ int delim_len = strlen(delim);
+ char *p2;
+
+ if ((p2 = strchr(p1, '\n'))) // isolate a controller's line
+ *p2 = '\0';
+ do { // deal with nested containers
+ p2 = p1 + delim_len;
+ p1 = strstr(p2, delim);
+ } while (p1);
+ if ((p1 = strchr(p2, '/'))) // isolate name only substring
+ *p1 = '\0';
+ while (ele) { // have we already seen a name
+ if (!strcmp(ele->name, p2))
+ return ele->name; // return just a recycled name
+ ele = ele->next;
+ }
+ if (!(ele = (struct lxc_ele *)malloc(sizeof(struct lxc_ele))))
+ return lxc_oops;
+ if (!(ele->name = strdup(p2))) {
+ free(ele);
+ return lxc_oops;
+ }
+ ele->next = anchor; // push the new container name
+ anchor = ele;
+ return ele->name; // return a new container name
+ }
+ }
+ return lxc_none;
+}
+
+
+ // Provide the user id at login (or -1 if not available)
+static int login_uid (const char *path) {
+ char buf[PROCPATHLEN];
+ int fd, id, in;
+
+ id = -1;
+ snprintf(buf, sizeof(buf), "%s/loginuid", path);
+ if ((fd = open(buf, O_RDONLY, 0)) != -1) {
+ in = read(fd, buf, sizeof(buf) - 1);
+ close(fd);
+ if (in > 0) {
+ buf[in] = '\0';
+ id = atoi(buf);
+ }
+ }
+ return id;
+}
+
+
+static char *readlink_exe (const char *path){
+ char buf[PROCPATHLEN];
+ int in;
+
+ snprintf(buf, sizeof(buf), "%s/exe", path);
+ in = (int)readlink(buf, src_buffer, MAX_BUFSZ-1);
+ if (in > 0) {
+ src_buffer[in] = '\0';
+ escape_str(dst_buffer, src_buffer, MAX_BUFSZ);
+ return strdup(dst_buffer);
+ }
+ return strdup("-");
+}
+
+
+ // Provide the autogroup fields (or -1 if not available)
+static void autogroup_fill (const char *path, proc_t *p) {
+ char buf[PROCPATHLEN];
+ int fd, in;
+
+ p->autogrp_id = -1;
+ snprintf(buf, sizeof(buf), "%s/autogroup", path);
+ if ((fd = open(buf, O_RDONLY, 0)) != -1) {
+ in = read(fd, buf, sizeof(buf) - 1);
+ close(fd);
+ if (in > 0) {
+ buf[in] = '\0';
+ sscanf(buf, "/autogroup-%d nice %d"
+ , &p->autogrp_id, &p->autogrp_nice);
+ }
+ }
+}
+
+
+///////////////////////////////////////////////////////////////////////
+
+/* These are some nice GNU C expression subscope "inline" functions.
+ * The can be used with arbitrary types and evaluate their arguments
+ * exactly once.
+ */
+
+/* Test if item X of type T is present in the 0 terminated list L */
+# define XinL(T, X, L) ( { \
+ T x = (X), *l = (L); \
+ while (*l && *l != x) l++; \
+ *l == x; \
+ } )
+
+/* Test if item X of type T is present in the list L of length N */
+# define XinLN(T, X, L, N) ( { \
+ T x = (X), *l = (L); \
+ int i = 0, n = (N); \
+ while (i < n && l[i] != x) i++; \
+ i < n && l[i] == x; \
+ } )
+
+
+//////////////////////////////////////////////////////////////////////////////////
+// This reads process info from /proc in the traditional way, for one process.
+// The pid (tgid? tid?) is already in p, and a path to it in path, with some
+// room to spare.
+static proc_t *simple_readproc(PROCTAB *restrict const PT, proc_t *restrict const p) {
+ static __thread struct utlbuf_s ub = { NULL, 0 }; // buf for stat,statm,status
+ static __thread struct stat sb; // stat() buffer
+ char *restrict const path = PT->path;
+ unsigned flags = PT->flags;
+ int rc = 0;
+
+ if (stat(path, &sb) == -1) /* no such dirent (anymore) */
+ goto next_proc;
+
+ if ((flags & PROC_UID) && !XinLN(uid_t, sb.st_uid, PT->uids, PT->nuid))
+ goto next_proc; /* not one of the requested uids */
+
+ p->euid = sb.st_uid; /* need a way to get real uid */
+ p->egid = sb.st_gid; /* need a way to get real gid */
+
+ if (flags & PROC_FILLSTAT) { // read /proc/#/stat
+ if (file2str(path, "stat", &ub) == -1)
+ goto next_proc;
+ rc += stat2proc(ub.buf, p);
+ }
+
+ if (flags & PROC_FILLIO) { // read /proc/#/io
+ if (file2str(path, "io", &ub) != -1)
+ io2proc(ub.buf, p);
+ }
+
+ if (flags & PROC_FILLSMAPS) { // read /proc/#/smaps_rollup
+ if (file2str(path, "smaps_rollup", &ub) != -1)
+ smaps2proc(ub.buf, p);
+ }
+
+ if (flags & PROC_FILLMEM) { // read /proc/#/statm
+ if (file2str(path, "statm", &ub) != -1)
+ statm2proc(ub.buf, p);
+ }
+
+ if (flags & PROC_FILLSTATUS) { // read /proc/#/status
+ if (file2str(path, "status", &ub) != -1){
+ rc += status2proc(ub.buf, p, 1);
+ if (flags & (PROC_FILL_SUPGRP & ~PROC_FILLSTATUS))
+ rc += supgrps_from_supgids(p);
+ if (flags & (PROC_FILL_OUSERS & ~PROC_FILLSTATUS)) {
+ p->ruser = pwcache_get_user(p->ruid);
+ p->suser = pwcache_get_user(p->suid);
+ p->fuser = pwcache_get_user(p->fuid);
+ }
+ if (flags & (PROC_FILL_OGROUPS & ~PROC_FILLSTATUS)) {
+ p->rgroup = pwcache_get_group(p->rgid);
+ p->sgroup = pwcache_get_group(p->sgid);
+ p->fgroup = pwcache_get_group(p->fgid);
+ }
+ }
+ }
+
+ // if multithreaded, some values are crap
+ if(p->nlwp > 1)
+ p->wchan = ~0ul;
+
+ /* some number->text resolving which is time consuming */
+ /* ( names are cached, so memcpy to arrays was silly ) */
+ if (flags & PROC_FILLUSR)
+ p->euser = pwcache_get_user(p->euid);
+ if (flags & PROC_FILLGRP)
+ p->egroup = pwcache_get_group(p->egid);
+
+ if (flags & PROC_FILLENV) // read /proc/#/environ
+ if (!(p->environ_v = file2strvec(path, "environ")))
+ rc += vectorize_dash_rc(&p->environ_v);
+ if (flags & PROC_EDITENVRCVT)
+ rc += fill_environ_cvt(path, p);
+
+ if (flags & PROC_FILLARG) // read /proc/#/cmdline
+ if (!(p->cmdline_v = file2strvec(path, "cmdline")))
+ rc += vectorize_dash_rc(&p->cmdline_v);
+ if (flags & PROC_EDITCMDLCVT)
+ rc += fill_cmdline_cvt(path, p);
+
+ if ((flags & PROC_FILLCGROUP)) // read /proc/#/cgroup
+ if (!(p->cgroup_v = file2strvec(path, "cgroup")))
+ rc += vectorize_dash_rc(&p->cgroup_v);
+ if (flags & PROC_EDITCGRPCVT)
+ rc += fill_cgroup_cvt(path, p);
+
+ if (flags & PROC_FILLOOM) {
+ if (file2str(path, "oom_score", &ub) != -1)
+ oomscore2proc(ub.buf, p);
+ if (file2str(path, "oom_score_adj", &ub) != -1)
+ oomadj2proc(ub.buf, p);
+ }
+
+ if (flags & PROC_FILLNS) // read /proc/#/ns/*
+ procps_ns_read_pid(p->tid, &(p->ns));
+
+
+ if (flags & PROC_FILLSYSTEMD) // get sd-login.h stuff
+ rc += sd2proc(p);
+
+ if (flags & PROC_FILL_LXC) // value the lxc name
+ p->lxcname = lxc_containers(path);
+
+ if (flags & PROC_FILL_LUID) // value the login user id
+ p->luid = login_uid(path);
+
+ if (flags & PROC_FILL_EXE) {
+ if (!(p->exe = readlink_exe(path)))
+ rc += 1;
+ }
+
+ if (flags & PROC_FILLAUTOGRP) // value the 2 autogroup fields
+ autogroup_fill(path, p);
+
+ // openproc() ensured that a ppid will be present when needed ...
+ if (rc == 0) {
+ if (PT->hide_kernel && (p->ppid == 2 || p->tid == 2)) {
+ free_acquired(p);
+ return NULL;
+ }
+ return p;
+ }
+ errno = ENOMEM;
+next_proc:
+ return NULL;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////////
+// This reads /proc/*/task/* data, for one task.
+// t is the POSIX thread (task group member, generally not the leader)
+// path is a path to the task, with some room to spare.
+static proc_t *simple_readtask(PROCTAB *restrict const PT, proc_t *restrict const t, char *restrict const path) {
+ static __thread struct utlbuf_s ub = { NULL, 0 }; // buf for stat,statm,status
+ static __thread struct stat sb; // stat() buffer
+ unsigned flags = PT->flags;
+ int rc = 0;
+
+ if (stat(path, &sb) == -1) /* no such dirent (anymore) */
+ goto next_task;
+
+// if ((flags & PROC_UID) && !XinLN(uid_t, sb.st_uid, PT->uids, PT->nuid))
+// goto next_task; /* not one of the requested uids */
+
+ t->euid = sb.st_uid; /* need a way to get real uid */
+ t->egid = sb.st_gid; /* need a way to get real gid */
+
+ if (flags & PROC_FILLSTAT) { // read /proc/#/task/#/stat
+ if (file2str(path, "stat", &ub) == -1)
+ goto next_task;
+ rc += stat2proc(ub.buf, t);
+ }
+
+ if (flags & PROC_FILLIO) { // read /proc/#/task/#/io
+ if (file2str(path, "io", &ub) != -1)
+ io2proc(ub.buf, t);
+ }
+
+ if (flags & PROC_FILLSMAPS) { // read /proc/#/task/#/smaps_rollup
+ if (file2str(path, "smaps_rollup", &ub) != -1)
+ smaps2proc(ub.buf, t);
+ }
+
+ if (flags & PROC_FILLMEM) { // read /proc/#/task/#/statm
+ if (file2str(path, "statm", &ub) != -1)
+ statm2proc(ub.buf, t);
+ }
+
+ if (flags & PROC_FILLSTATUS) { // read /proc/#/task/#/status
+ if (file2str(path, "status", &ub) != -1) {
+ rc += status2proc(ub.buf, t, 0);
+ if (flags & (PROC_FILL_SUPGRP & ~PROC_FILLSTATUS))
+ rc += supgrps_from_supgids(t);
+ if (flags & (PROC_FILL_OUSERS & ~PROC_FILLSTATUS)) {
+ t->ruser = pwcache_get_user(t->ruid);
+ t->suser = pwcache_get_user(t->suid);
+ t->fuser = pwcache_get_user(t->fuid);
+ }
+ if (flags & (PROC_FILL_OGROUPS & ~PROC_FILLSTATUS)) {
+ t->rgroup = pwcache_get_group(t->rgid);
+ t->sgroup = pwcache_get_group(t->sgid);
+ t->fgroup = pwcache_get_group(t->fgid);
+ }
+ }
+ }
+
+ /* some number->text resolving which is time consuming */
+ /* ( names are cached, so memcpy to arrays was silly ) */
+ if (flags & PROC_FILLUSR)
+ t->euser = pwcache_get_user(t->euid);
+ if (flags & PROC_FILLGRP)
+ t->egroup = pwcache_get_group(t->egid);
+
+#ifdef FALSE_THREADS
+ if (!IS_THREAD(t)) {
+#endif
+ if (flags & PROC_FILLARG) // read /proc/#/task/#/cmdline
+ if (!(t->cmdline_v = file2strvec(path, "cmdline")))
+ rc += vectorize_dash_rc(&t->cmdline_v);
+ if (flags & PROC_EDITCMDLCVT)
+ rc += fill_cmdline_cvt(path, t);
+
+ if (flags & PROC_FILLENV) // read /proc/#/task/#/environ
+ if (!(t->environ_v = file2strvec(path, "environ")))
+ rc += vectorize_dash_rc(&t->environ_v);
+ if (flags & PROC_EDITENVRCVT)
+ rc += fill_environ_cvt(path, t);
+
+ if ((flags & PROC_FILLCGROUP)) // read /proc/#/task/#/cgroup
+ if (!(t->cgroup_v = file2strvec(path, "cgroup")))
+ rc += vectorize_dash_rc(&t->cgroup_v);
+ if (flags & PROC_EDITCGRPCVT)
+ rc += fill_cgroup_cvt(path, t);
+
+ if (flags & PROC_FILLSYSTEMD) // get sd-login.h stuff
+ rc += sd2proc(t);
+
+ if (flags & PROC_FILL_EXE) {
+ if (!(t->exe = readlink_exe(path)))
+ rc += 1;
+ }
+#ifdef FALSE_THREADS
+ }
+#endif
+
+ if (flags & PROC_FILLOOM) {
+ if (file2str(path, "oom_score", &ub) != -1)
+ oomscore2proc(ub.buf, t);
+ if (file2str(path, "oom_score_adj", &ub) != -1)
+ oomadj2proc(ub.buf, t);
+ }
+ if (flags & PROC_FILLNS) // read /proc/#/task/#/ns/*
+ procps_ns_read_pid(t->tid, &(t->ns));
+
+ if (flags & PROC_FILL_LXC)
+ t->lxcname = lxc_containers(path);
+
+ if (flags & PROC_FILL_LUID)
+ t->luid = login_uid(path);
+
+ if (flags & PROC_FILLAUTOGRP) // value the 2 autogroup fields
+ autogroup_fill(path, t);
+
+ // openproc() ensured that a ppid will be present when needed ...
+ if (rc == 0) {
+ if (PT->hide_kernel && (t->ppid == 2 || t->tid == 2)) {
+ free_acquired(t);
+ return NULL;
+ }
+ return t;
+ }
+ errno = ENOMEM;
+next_task:
+ return NULL;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////////
+// This finds processes in /proc in the traditional way.
+// Return non-zero on success.
+static int simple_nextpid(PROCTAB *restrict const PT, proc_t *restrict const p) {
+ static __thread struct dirent *ent; /* dirent handle */
+ char *restrict const path = PT->path;
+ for (;;) {
+ ent = readdir(PT->procfs);
+ if (!ent || !ent->d_name[0]) break;
+ if (*ent->d_name > '0' && *ent->d_name <= '9') {
+ errno = 0;
+ p->tgid = strtoul(ent->d_name, NULL, 10);
+ if (errno == 0) {
+ p->tid = p->tgid;
+ snprintf(path, PROCPATHLEN, "/proc/%d", p->tgid);
+ return 1;
+ }
+ }
+ }
+ return 0;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////////
+// This finds tasks in /proc/*/task/ in the traditional way.
+// Return non-zero on success.
+static int simple_nexttid(PROCTAB *restrict const PT, const proc_t *restrict const p, proc_t *restrict const t, char *restrict const path) {
+ static __thread struct dirent *ent; /* dirent handle */
+ if(PT->taskdir_user != p->tgid){
+ if(PT->taskdir){
+ closedir(PT->taskdir);
+ }
+ // use "path" as some tmp space
+ snprintf(path, PROCPATHLEN, "/proc/%d/task", p->tgid);
+ PT->taskdir = opendir(path);
+ if(!PT->taskdir) return 0;
+ PT->taskdir_user = p->tgid;
+ }
+ for (;;) {
+ ent = readdir(PT->taskdir);
+ if(!ent || !ent->d_name[0]) return 0;
+ if(*ent->d_name > '0' && *ent->d_name <= '9') break;
+ }
+ t->tid = strtoul(ent->d_name, NULL, 10);
+ t->tgid = p->tgid;
+//t->ppid = p->ppid; // cover for kernel behavior? we want both actually...?
+ snprintf(path, PROCPATHLEN, "/proc/%d/task/%.10s", p->tgid, ent->d_name);
+ return 1;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////////
+// This "finds" processes in a list that was given to openproc().
+// Return non-zero on success. (tgid is a real headache)
+static int listed_nextpid (PROCTAB *PT, proc_t *p) {
+ static __thread struct utlbuf_s ub = { NULL, 0 };
+ pid_t pid = *(PT->pids)++;
+ char *path = PT->path;
+
+ if (pid) {
+ snprintf(path, PROCPATHLEN, "/proc/%d", pid);
+ p->tid = p->tgid = pid; // this tgid may be a huge fib |
+
+ /* the 'status' directory is the only place where we find the |
+ task's real tgid. it's a bit expensive, but remember we're |
+ dealing with fewer processes, unlike the other 'next' guys |
+ (plus we need not parse the whole thing like status2proc)! | */
+
+ if (file2str(path, "status", &ub) != -1) {
+ char *str = strstr(ub.buf, "Tgid:");
+ if (str)
+ p->tgid = atoi(str + 5); // this tgid is the proper one |
+ }
+ }
+ return pid;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////////
+/* readproc: return a pointer to a proc_t filled with requested info about the
+ * next process available matching the restriction set. If no more such
+ * processes are available, return a null pointer (boolean false). Use the
+ * passed buffer instead of allocating space if it is non-NULL. */
+
+/* This is optimized so that if a PID list is given, only those files are
+ * searched for in /proc. If other lists are given in addition to the PID list,
+ * the same logic can follow through as for the no-PID list case. This is
+ * fairly complex, but it does try to not to do any unnecessary work.
+ */
+proc_t *readproc(PROCTAB *restrict const PT, proc_t *restrict p) {
+ proc_t *ret;
+
+ free_acquired(p);
+
+ for(;;){
+ // fills in the path, plus p->tid and p->tgid
+ if (!PT->finder(PT,p)) goto out;
+
+ // go read the process data
+ ret = PT->reader(PT,p);
+ if(ret) return ret;
+ }
+
+out:
+ return NULL;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////////
+// readeither: return a pointer to a proc_t filled with requested info about
+// the next unique process or task available. If no more are available,
+// return a null pointer (boolean false).
+proc_t *readeither (PROCTAB *restrict const PT, proc_t *restrict x) {
+ static __thread proc_t skel_p; // skeleton proc_t, only uses tid + tgid
+ static __thread proc_t *new_p; // for process/task transitions
+ static __thread int canary;
+ char path[PROCPATHLEN];
+ proc_t *ret;
+
+ free_acquired(x);
+
+ if (new_p) {
+ if (new_p->tid != canary) new_p = NULL;
+ goto next_task;
+ }
+
+next_proc:
+ new_p = NULL;
+ for (;;) {
+ // fills in the PT->path, plus skel_p.tid and skel_p.tgid
+ if (!PT->finder(PT,&skel_p)) goto end_procs; // simple_nextpid
+ if (!task_dir_missing) break;
+ if ((ret = PT->reader(PT,x))) return ret; // simple_readproc
+ }
+
+next_task:
+ // fills in our path, plus x->tid and x->tgid
+ if ((!(PT->taskfinder(PT,&skel_p,x,path))) // simple_nexttid
+ || (!(ret = PT->taskreader(PT,x,path)))) { // simple_readtask
+ goto next_proc;
+ }
+ if (!new_p) {
+ new_p = ret;
+ canary = new_p->tid;
+ }
+ return ret;
+
+end_procs:
+ return NULL;
+}
+
+
+//////////////////////////////////////////////////////////////////////////////////
+
+// initiate a process table scan
+PROCTAB *openproc(unsigned flags, ...) {
+ va_list ap;
+ struct stat sbuf;
+ static __thread int did_stat;
+ static __thread int hide_kernel = -1;
+ PROCTAB *PT = calloc(1, sizeof(PROCTAB));
+
+ if (!PT)
+ return NULL;
+ if (hide_kernel < 0)
+ hide_kernel = (NULL != getenv("LIBPROC_HIDE_KERNEL"));
+ if (!did_stat){
+ task_dir_missing = stat("/proc/self/task", &sbuf);
+ did_stat = 1;
+ }
+ PT->taskdir = NULL;
+ PT->taskdir_user = -1;
+ PT->taskfinder = simple_nexttid;
+ PT->taskreader = simple_readtask;
+
+ PT->reader = simple_readproc;
+ if (flags & PROC_PID){
+ PT->procfs = NULL;
+ PT->finder = listed_nextpid;
+ }else{
+ PT->procfs = opendir("/proc");
+ if (!PT->procfs) { free(PT); return NULL; }
+ PT->finder = simple_nextpid;
+ }
+ PT->flags = flags;
+
+ va_start(ap, flags);
+ if (flags & PROC_PID)
+ PT->pids = va_arg(ap, pid_t*);
+ else if (flags & PROC_UID){
+ PT->uids = va_arg(ap, uid_t*);
+ PT->nuid = va_arg(ap, int);
+ }
+ va_end(ap);
+
+ if (hide_kernel > 0) {
+ PT->hide_kernel = 1;
+ // we'll need the ppid, ensure it's obtained via cheapest means ...
+ if (!(PT->flags & (PROC_FILLSTAT | PROC_FILLSTATUS)))
+ PT->flags |= PROC_FILLSTAT;
+ }
+
+ if (!src_buffer
+ && !(src_buffer = malloc(MAX_BUFSZ))) {
+ closedir(PT->procfs);
+ free(PT);
+ return NULL;
+ }
+ if (!dst_buffer
+ && !(dst_buffer = malloc(MAX_BUFSZ))) {
+ closedir(PT->procfs);
+ free(src_buffer);
+ free(PT);
+ return NULL;
+ }
+
+ return PT;
+}
+
+
+// terminate a process table scan
+void closeproc(PROCTAB *PT) {
+ if (PT){
+ if (PT->procfs) closedir(PT->procfs);
+ if (PT->taskdir) closedir(PT->taskdir);
+ memset(PT,'#',sizeof(PROCTAB));
+ free(PT);
+ }
+}
+
+
+//////////////////////////////////////////////////////////////////////////////////
+int look_up_our_self(void) {
+ struct utlbuf_s ub = { NULL, 0 };
+ int rc = 0;
+ proc_t p;
+
+ memset(&p, 0, sizeof(proc_t));
+ if(file2str("/proc/self", "stat", &ub) == -1){
+ fprintf(stderr, "Error, do this: mount -t proc proc /proc\n");
+ _exit(47);
+ }
+ rc = stat2proc(ub.buf, &p); // parse /proc/self/stat
+ free_acquired(&p);
+ free(ub.buf);
+ return !rc;
+}
+
+#undef IS_THREAD
+#undef MAX_BUFSZ
diff --git a/library/slabinfo.c b/library/slabinfo.c
new file mode 100644
index 0000000..b87f353
--- /dev/null
+++ b/library/slabinfo.c
@@ -0,0 +1,1044 @@
+/*
+ * slabinfo.c - slab pools related definitions for libproc2
+ *
+ * Copyright © 2015-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2015-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2004-2006 Albert Cahalan
+ * Copyright © 2003 Chris Rivera
+ * Copyright © 2003 Fabian Frederick
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <unistd.h>
+
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include "procps-private.h"
+#include "slabinfo.h"
+
+
+#define SLABINFO_FILE "/proc/slabinfo"
+#define SLABINFO_LINE_LEN 2048
+#define SLABINFO_NAME_LEN 128
+
+#define STACKS_INCR 128 // amount reap stack allocations grow
+
+/* ---------------------------------------------------------------------------- +
+ this #define will be used to help ensure that our Item_table is synchronized |
+ with all the enumerators found in the associated header file. It is intended |
+ to only be defined locally (and temporarily) at some point prior to release! | */
+// #define ITEMTABLE_DEBUG //-------------------------------------------------- |
+// ---------------------------------------------------------------------------- +
+
+/*
+ Because 'select' could, at most, return only node[0] values and since 'reap' |
+ would be forced to duplicate global slabs stuff in every node results stack, |
+ the following #define can be used to enforce strictly logical return values. |
+ select: allow only SLABINFO & SLABS items
+ reap: allow only SLABINFO & SLAB items
+ Without the #define, these functions always return something even if just 0. |
+ get: return only SLABS results, else 0
+ select: return only SLABINFO & SLABS results, else zero
+ reap: return any requested, even when duplicated in each cache's stack */
+//#define ENFORCE_LOGICAL // ensure only logical items accepted by select/reap
+
+
+struct slabs_summ {
+ unsigned int nr_objs; // number of objects, among all caches
+ unsigned int nr_active_objs; // number of active objects, among all caches
+ unsigned int nr_pages; // number of pages consumed by all objects
+ unsigned int nr_slabs; // number of slabs, among all caches
+ unsigned int nr_active_slabs; // number of active slabs, among all caches
+ unsigned int nr_caches; // number of caches
+ unsigned int nr_active_caches; // number of active caches
+ unsigned int avg_obj_size; // average object size
+ unsigned int min_obj_size; // size of smallest object
+ unsigned int max_obj_size; // size of largest object
+ unsigned long active_size; // size of all active objects
+ unsigned long total_size; // size of all objects
+};
+
+struct slabs_node {
+ char name[SLABINFO_NAME_LEN+1]; // name of this cache
+ unsigned long cache_size; // size of entire cache
+ unsigned int nr_objs; // number of objects in this cache
+ unsigned int nr_active_objs; // number of active objects
+ unsigned int obj_size; // size of each object
+ unsigned int objs_per_slab; // number of objects per slab
+ unsigned int pages_per_slab; // number of pages per slab
+ unsigned int nr_slabs; // number of slabs in this cache
+ unsigned int nr_active_slabs; // number of active slabs
+ unsigned int use; // percent full: total / active
+};
+
+struct slabs_hist {
+ struct slabs_summ new;
+ struct slabs_summ old;
+};
+
+struct stacks_extent {
+ int ext_numstacks;
+ struct stacks_extent *next;
+ struct slabinfo_stack **stacks;
+};
+
+struct ext_support {
+ int numitems; // includes 'logical_end' delimiter
+ enum slabinfo_item *items; // includes 'logical_end' delimiter
+ struct stacks_extent *extents; // anchor for these extents
+#ifdef ENFORCE_LOGICAL
+ enum slabinfo_item lowest; // range of allowable enums
+ enum slabinfo_item highest;
+#endif
+};
+
+struct fetch_support {
+ struct slabinfo_stack **anchor; // fetch consolidated extents
+ int n_alloc; // number of above pointers allocated
+ int n_inuse; // number of above pointers occupied
+ int n_alloc_save; // last known reap.stacks allocation
+ struct slabinfo_reaped results; // count + stacks for return to caller
+};
+
+struct slabinfo_info {
+ int refcount;
+ FILE *slabinfo_fp;
+ int nodes_alloc; // nodes alloc()ed
+ int nodes_used; // nodes using alloced memory
+ struct slabs_node *nodes; // first slabnode of this list
+ struct slabs_hist slabs; // new/old slabs_summ data
+ struct ext_support select_ext; // supports concurrent select/reap
+ struct ext_support fetch_ext; // supports concurrent select/reap
+ struct fetch_support fetch; // support for procps_slabinfo_reap
+ struct slabs_node nul_node; // used by slabinfo_get/select
+ struct slabinfo_result get_this; // used by slabinfo_get
+ time_t sav_secs; // used by slabinfo_get
+};
+
+
+// ___ Results 'Set' Support ||||||||||||||||||||||||||||||||||||||||||||||||||
+
+#define setNAME(e) set_ ## e
+#define setDECL(e) static void setNAME(e) \
+ (struct slabinfo_result *R, struct slabs_hist *S, struct slabs_node *N)
+
+// regular assignment
+#define REG_set(e,t,x) setDECL(e) { (void)N; R->result. t = S->new. x; }
+#define NOD_set(e,t,x) setDECL(e) { (void)S; R->result. t = N-> x; }
+// delta assignment
+#define HST_set(e,t,x) setDECL(e) { (void)N; R->result. t = (signed long)S->new. x - S->old. x; }
+
+setDECL(SLABINFO_noop) { (void)R; (void)S; (void)N; }
+setDECL(SLABINFO_extra) { (void)S; (void)N; R->result.ul_int = 0; }
+
+NOD_set(SLAB_NAME, str, name)
+NOD_set(SLAB_NUM_OBJS, u_int, nr_objs)
+NOD_set(SLAB_ACTIVE_OBJS, u_int, nr_active_objs)
+NOD_set(SLAB_OBJ_SIZE, u_int, obj_size)
+NOD_set(SLAB_OBJ_PER_SLAB, u_int, objs_per_slab)
+NOD_set(SLAB_NUMS_SLABS, u_int, nr_slabs)
+NOD_set(SLAB_ACTIVE_SLABS, u_int, nr_active_slabs)
+NOD_set(SLAB_PAGES_PER_SLAB, u_int, pages_per_slab)
+NOD_set(SLAB_PERCENT_USED, u_int, use)
+NOD_set(SLAB_SIZE_TOTAL, ul_int, cache_size)
+
+REG_set(SLABS_CACHES_TOTAL, u_int, nr_caches)
+REG_set(SLABS_CACHES_ACTIVE, u_int, nr_active_caches)
+REG_set(SLABS_NUM_OBJS, u_int, nr_objs)
+REG_set(SLABS_ACTIVE_OBJS, u_int, nr_active_objs)
+REG_set(SLABS_OBJ_SIZE_AVG, u_int, avg_obj_size)
+REG_set(SLABS_OBJ_SIZE_MIN, u_int, min_obj_size)
+REG_set(SLABS_OBJ_SIZE_MAX, u_int, max_obj_size)
+REG_set(SLABS_NUMS_SLABS, u_int, nr_slabs)
+REG_set(SLABS_ACTIVE_SLABS, u_int, nr_active_slabs)
+REG_set(SLABS_PAGES_TOTAL, u_int, nr_pages)
+REG_set(SLABS_SIZE_ACTIVE, ul_int, active_size)
+REG_set(SLABS_SIZE_TOTAL, ul_int, total_size)
+
+HST_set(SLABS_DELTA_CACHES_TOTAL, s_int, nr_caches)
+HST_set(SLABS_DELTA_CACHES_ACTIVE, s_int, nr_active_caches)
+HST_set(SLABS_DELTA_NUM_OBJS, s_int, nr_objs)
+HST_set(SLABS_DELTA_ACTIVE_OBJS, s_int, nr_active_objs)
+HST_set(SLABS_DELTA_OBJ_SIZE_AVG, s_int, avg_obj_size)
+HST_set(SLABS_DELTA_OBJ_SIZE_MIN, s_int, min_obj_size)
+HST_set(SLABS_DELTA_OBJ_SIZE_MAX, s_int, max_obj_size)
+HST_set(SLABS_DELTA_NUMS_SLABS, s_int, nr_slabs)
+HST_set(SLABS_DELTA_ACTIVE_SLABS, s_int, nr_active_slabs)
+HST_set(SLABS_DELTA_PAGES_TOTAL, s_int, nr_pages)
+HST_set(SLABS_DELTA_SIZE_ACTIVE, s_int, active_size)
+HST_set(SLABS_DELTA_SIZE_TOTAL, s_int, total_size)
+
+#undef setDECL
+#undef REG_set
+#undef NOD_set
+#undef HST_set
+
+
+// ___ Sorting Support ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+
+struct sort_parms {
+ int offset;
+ enum slabinfo_sort_order order;
+};
+
+#define srtNAME(t) sort_slabinfo_ ## t
+#define srtDECL(t) static int srtNAME(t) \
+ (const struct slabinfo_stack **A, const struct slabinfo_stack **B, struct sort_parms *P)
+
+srtDECL(u_int) {
+ const struct slabinfo_result *a = (*A)->head + P->offset; \
+ const struct slabinfo_result *b = (*B)->head + P->offset; \
+ if ( a->result.u_int > b->result.u_int ) return P->order > 0 ? 1 : -1; \
+ if ( a->result.u_int < b->result.u_int ) return P->order > 0 ? -1 : 1; \
+ return 0;
+}
+
+srtDECL(ul_int) {
+ const struct slabinfo_result *a = (*A)->head + P->offset; \
+ const struct slabinfo_result *b = (*B)->head + P->offset; \
+ if ( a->result.ul_int > b->result.ul_int ) return P->order > 0 ? 1 : -1; \
+ if ( a->result.ul_int < b->result.ul_int ) return P->order > 0 ? -1 : 1; \
+ return 0;
+}
+
+srtDECL(str) {
+ const struct slabinfo_result *a = (*A)->head + P->offset;
+ const struct slabinfo_result *b = (*B)->head + P->offset;
+ return P->order * strcoll(a->result.str, b->result.str);
+}
+
+srtDECL(noop) { \
+ (void)A; (void)B; (void)P; \
+ return 0;
+}
+
+#undef srtDECL
+
+
+// ___ Controlling Table ||||||||||||||||||||||||||||||||||||||||||||||||||||||
+
+typedef void (*SET_t)(struct slabinfo_result *, struct slabs_hist *, struct slabs_node *);
+#ifdef ITEMTABLE_DEBUG
+#define RS(e) (SET_t)setNAME(e), e, STRINGIFY(e)
+#else
+#define RS(e) (SET_t)setNAME(e)
+#endif
+
+typedef int (*QSR_t)(const void *, const void *, void *);
+#define QS(t) (QSR_t)srtNAME(t)
+
+#define TS(t) STRINGIFY(t)
+#define TS_noop ""
+
+ /*
+ * Need it be said?
+ * This table must be kept in the exact same order as
+ * those *enum slabinfo_item* guys ! */
+static struct {
+ SET_t setsfunc; // the actual result setting routine
+#ifdef ITEMTABLE_DEBUG
+ int enumnumb; // enumerator (must match position!)
+ char *enum2str; // enumerator name as a char* string
+#endif
+ QSR_t sortfunc; // sort cmp func for a specific type
+ char *type2str; // the result type as a string value
+} Item_table[] = {
+/* setsfunc sortfunc type2str
+ ------------------------------ ----------- ---------- */
+ { RS(SLABINFO_noop), QS(noop), TS_noop },
+ { RS(SLABINFO_extra), QS(ul_int), TS_noop },
+
+ { RS(SLAB_NAME), QS(str), TS(str) },
+ { RS(SLAB_NUM_OBJS), QS(u_int), TS(u_int) },
+ { RS(SLAB_ACTIVE_OBJS), QS(u_int), TS(u_int) },
+ { RS(SLAB_OBJ_SIZE), QS(u_int), TS(u_int) },
+ { RS(SLAB_OBJ_PER_SLAB), QS(u_int), TS(u_int) },
+ { RS(SLAB_NUMS_SLABS), QS(u_int), TS(u_int) },
+ { RS(SLAB_ACTIVE_SLABS), QS(u_int), TS(u_int) },
+ { RS(SLAB_PAGES_PER_SLAB), QS(u_int), TS(u_int) },
+ { RS(SLAB_PERCENT_USED), QS(u_int), TS(u_int) },
+ { RS(SLAB_SIZE_TOTAL), QS(ul_int), TS(ul_int) },
+
+ { RS(SLABS_CACHES_TOTAL), QS(noop), TS(u_int) },
+ { RS(SLABS_CACHES_ACTIVE), QS(noop), TS(u_int) },
+ { RS(SLABS_NUM_OBJS), QS(noop), TS(u_int) },
+ { RS(SLABS_ACTIVE_OBJS), QS(noop), TS(u_int) },
+ { RS(SLABS_OBJ_SIZE_AVG), QS(noop), TS(u_int) },
+ { RS(SLABS_OBJ_SIZE_MIN), QS(noop), TS(u_int) },
+ { RS(SLABS_OBJ_SIZE_MAX), QS(noop), TS(u_int) },
+ { RS(SLABS_NUMS_SLABS), QS(noop), TS(u_int) },
+ { RS(SLABS_ACTIVE_SLABS), QS(noop), TS(u_int) },
+ { RS(SLABS_PAGES_TOTAL), QS(noop), TS(u_int) },
+ { RS(SLABS_SIZE_ACTIVE), QS(noop), TS(ul_int) },
+ { RS(SLABS_SIZE_TOTAL), QS(noop), TS(ul_int) },
+
+ { RS(SLABS_DELTA_CACHES_TOTAL), QS(noop), TS(s_int) },
+ { RS(SLABS_DELTA_CACHES_ACTIVE), QS(noop), TS(s_int) },
+ { RS(SLABS_DELTA_NUM_OBJS), QS(noop), TS(s_int) },
+ { RS(SLABS_DELTA_ACTIVE_OBJS), QS(noop), TS(s_int) },
+ { RS(SLABS_DELTA_OBJ_SIZE_AVG), QS(noop), TS(s_int) },
+ { RS(SLABS_DELTA_OBJ_SIZE_MIN), QS(noop), TS(s_int) },
+ { RS(SLABS_DELTA_OBJ_SIZE_MAX), QS(noop), TS(s_int) },
+ { RS(SLABS_DELTA_NUMS_SLABS), QS(noop), TS(s_int) },
+ { RS(SLABS_DELTA_ACTIVE_SLABS), QS(noop), TS(s_int) },
+ { RS(SLABS_DELTA_PAGES_TOTAL), QS(noop), TS(s_int) },
+ { RS(SLABS_DELTA_SIZE_ACTIVE), QS(noop), TS(s_int) },
+ { RS(SLABS_DELTA_SIZE_TOTAL), QS(noop), TS(s_int) },
+};
+
+ /* please note,
+ * this enum MUST be 1 greater than the highest value of any enum */
+enum slabinfo_item SLABINFO_logical_end = MAXTABLE(Item_table);
+
+#undef setNAME
+#undef srtNAME
+#undef RS
+#undef QS
+
+
+// ___ Private Functions ||||||||||||||||||||||||||||||||||||||||||||||||||||||
+// --- slabnode specific support ----------------------------------------------
+
+/* Alloc up more slabnode memory, if required
+ */
+static int alloc_slabnodes (
+ struct slabinfo_info *info)
+{
+ struct slabs_node *new_nodes;
+ int new_count;
+
+ if (info->nodes_used < info->nodes_alloc)
+ return 1;
+ /* Increment the allocated number of slabs */
+ new_count = info->nodes_alloc * 5/4+30;
+
+ new_nodes = realloc(info->nodes, sizeof(struct slabs_node) * new_count);
+ if (!new_nodes)
+ return 0;
+ info->nodes = new_nodes;
+ info->nodes_alloc = new_count;
+ return 1;
+} // end: alloc_slabnodes
+
+
+/*
+ * get_slabnode - allocate slab_info structures using a free list
+ *
+ * In the fast path, we simply return a node off the free list. In the slow
+ * list, we malloc() a new node. The free list is never automatically reaped,
+ * both for simplicity and because the number of slab caches is fairly
+ * constant.
+ */
+static int get_slabnode (
+ struct slabinfo_info *info,
+ struct slabs_node **node)
+{
+ if (info->nodes_used == info->nodes_alloc) {
+ if (!alloc_slabnodes(info))
+ return 0; // here, errno was set to ENOMEM
+ }
+ *node = &(info->nodes[info->nodes_used++]);
+ return 1;
+} // end: get_slabnode
+
+
+/* parse_slabinfo20:
+ *
+ * Actual parse routine for slabinfo 2.x (2.6 kernels)
+ * Note: difference between 2.0 and 2.1 is in the ": globalstat" part where version 2.1
+ * has extra column <nodeallocs>. We don't use ": globalstat" part in both versions.
+ *
+ * Formats (we don't use "statistics" extensions)
+ *
+ * slabinfo - version: 2.1
+ * # name <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> \
+ * : tunables <batchcount> <limit> <sharedfactor> \
+ * : slabdata <active_slabs> <num_slabs> <sharedavail>
+ *
+ * slabinfo - version: 2.1 (statistics)
+ * # name <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> \
+ * : tunables <batchcount> <limit> <sharedfactor> \
+ * : slabdata <active_slabs> <num_slabs> <sharedavail> \
+ * : globalstat <listallocs> <maxobjs> <grown> <reaped> <error> <maxfreeable> <freelimit> <nodeallocs> \
+ * : cpustat <allochit> <allocmiss> <freehit> <freemiss>
+ *
+ * slabinfo - version: 2.0
+ * # name <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> \
+ * : tunables <batchcount> <limit> <sharedfactor> \
+ * : slabdata <active_slabs> <num_slabs> <sharedavail>
+ *
+ * slabinfo - version: 2.0 (statistics)
+ * # name <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> \
+ * : tunables <batchcount> <limit> <sharedfactor> \
+ * : slabdata <active_slabs> <num_slabs> <sharedavail> \
+ * : globalstat <listallocs> <maxobjs> <grown> <reaped> <error> <maxfreeable> <freelimit> \
+ * : cpustat <allochit> <allocmiss> <freehit> <freemiss>
+ */
+static int parse_slabinfo20 (
+ struct slabinfo_info *info)
+{
+ struct slabs_node *node;
+ char buffer[SLABINFO_LINE_LEN];
+ int page_size = getpagesize();
+ struct slabs_summ *slabs = &(info->slabs.new);
+
+ slabs->min_obj_size = INT_MAX;
+ slabs->max_obj_size = 0;
+
+ while (fgets(buffer, SLABINFO_LINE_LEN, info->slabinfo_fp )) {
+ if (buffer[0] == '#')
+ continue;
+
+ if (!get_slabnode(info, &node))
+ return 1; // here, errno was set to ENOMEM
+
+ if (sscanf(buffer,
+ "%" STRINGIFY(SLABINFO_NAME_LEN) "s" \
+ "%u %u %u %u %u : tunables %*u %*u %*u : slabdata %u %u %*u",
+ node->name,
+ &node->nr_active_objs, &node->nr_objs,
+ &node->obj_size, &node->objs_per_slab,
+ &node->pages_per_slab, &node->nr_active_slabs,
+ &node->nr_slabs) < 8) {
+ errno = ERANGE;
+ return 1;
+ }
+
+ if (!node->name[0])
+ snprintf(node->name, sizeof(node->name), "%s", "unknown");
+
+ if (node->obj_size < slabs->min_obj_size)
+ slabs->min_obj_size = node->obj_size;
+ if (node->obj_size > slabs->max_obj_size)
+ slabs->max_obj_size = node->obj_size;
+
+ /* cache_size is not accurate, it's the upper limit of memory used by this slab.
+ * When system using slub(most common case) is under high memory pressure, there
+ * are slab order fallbacks, which means pages_per_slab is not constant and may decrease.
+ */
+ node->cache_size = (unsigned long)node->nr_slabs * node->pages_per_slab * page_size;
+
+ if (node->nr_objs) {
+ node->use = (unsigned int)(100 * ((float)node->nr_active_objs / node->nr_objs));
+ slabs->nr_active_caches++;
+ } else
+ node->use = 0;
+
+ slabs->nr_objs += node->nr_objs;
+ slabs->nr_active_objs += node->nr_active_objs;
+ slabs->total_size += (unsigned long)node->nr_objs * node->obj_size;
+ slabs->active_size += (unsigned long)node->nr_active_objs * node->obj_size;
+ slabs->nr_pages += node->nr_slabs * node->pages_per_slab;
+ slabs->nr_slabs += node->nr_slabs;
+ slabs->nr_active_slabs += node->nr_active_slabs;
+ slabs->nr_caches++;
+ }
+
+ if (slabs->nr_objs)
+ slabs->avg_obj_size = slabs->total_size / slabs->nr_objs;
+
+ return 0;
+} // end: parse_slabinfo20
+
+
+/* slabinfo_read_failed():
+ *
+ * Read the data out of /proc/slabinfo putting the information
+ * into the supplied info container
+ *
+ * Returns: 0 on success, 1 on error
+ */
+static int slabinfo_read_failed (
+ struct slabinfo_info *info)
+{
+ char line[SLABINFO_LINE_LEN];
+ int major, minor;
+
+ memcpy(&info->slabs.old, &info->slabs.new, sizeof(struct slabs_summ));
+ memset(&(info->slabs.new), 0, sizeof(struct slabs_summ));
+ if (!alloc_slabnodes(info))
+ return 1; // here, errno was set to ENOMEM
+
+ memset(info->nodes, 0, sizeof(struct slabs_node)*info->nodes_alloc);
+ info->nodes_used = 0;
+
+ if (NULL == info->slabinfo_fp
+ && (info->slabinfo_fp = fopen(SLABINFO_FILE, "r")) == NULL)
+ return 1;
+
+ if (fseek(info->slabinfo_fp, 0L, SEEK_SET) < 0)
+ return 1;
+
+ /* Parse the version string */
+ if (!fgets(line, SLABINFO_LINE_LEN, info->slabinfo_fp))
+ return 1;
+
+ if (2 != sscanf(line, "slabinfo - version: %d.%d", &major, &minor)
+ || (major != 2)) {
+ errno = ERANGE;
+ return 1;
+ }
+
+ return parse_slabinfo20(info);
+} // end: slabinfo_read_failed
+
+
+// ___ Private Functions ||||||||||||||||||||||||||||||||||||||||||||||||||||||
+// --- generalized support ----------------------------------------------------
+
+static inline void slabinfo_assign_results (
+ struct slabinfo_stack *stack,
+ struct slabs_hist *summ,
+ struct slabs_node *node)
+{
+ struct slabinfo_result *this = stack->head;
+
+ for (;;) {
+ enum slabinfo_item item = this->item;
+ if (item >= SLABINFO_logical_end)
+ break;
+ Item_table[item].setsfunc(this, summ, node);
+ ++this;
+ }
+ return;
+} // end: slabinfo_assign_results
+
+
+static void slabinfo_extents_free_all (
+ struct ext_support *this)
+{
+ while (this->extents) {
+ struct stacks_extent *p = this->extents;
+ this->extents = this->extents->next;
+ free(p);
+ };
+} // end: slabinfo_extents_free_all
+
+
+static inline struct slabinfo_result *slabinfo_itemize_stack (
+ struct slabinfo_result *p,
+ int depth,
+ enum slabinfo_item *items)
+{
+ struct slabinfo_result *p_sav = p;
+ int i;
+
+ for (i = 0; i < depth; i++) {
+ p->item = items[i];
+ ++p;
+ }
+ return p_sav;
+} // end: slabinfo_itemize_stack
+
+
+static inline int slabinfo_items_check_failed (
+ struct ext_support *this,
+ enum slabinfo_item *items,
+ int numitems)
+{
+ int i;
+
+ /* if an enum is passed instead of an address of one or more enums, ol' gcc
+ * will silently convert it to an address (possibly NULL). only clang will
+ * offer any sort of warning like the following:
+ *
+ * warning: incompatible integer to pointer conversion passing 'int' to parameter of type 'enum slabinfo_item *'
+ * my_stack = procps_slabinfo_select(info, SLABINFO_noop, num);
+ * ^~~~~~~~~~~~~~~~
+ */
+ if (numitems < 1
+ || (void *)items < (void *)(unsigned long)(2 * SLABINFO_logical_end))
+ return 1;
+
+ for (i = 0; i < numitems; i++) {
+#ifdef ENFORCE_LOGICAL
+ if (items[i] == SLABINFO_noop
+ || (items[i] == SLABINFO_extra))
+ continue;
+ if (items[i] < this->lowest
+ || (items[i] > this->highest))
+ return 1;
+#else
+ // a slabinfo_item is currently unsigned, but we'll protect our future
+ if (items[i] < 0)
+ return 1;
+ if (items[i] >= SLABINFO_logical_end)
+ return 1;
+ (void)this;
+#endif
+ }
+
+ return 0;
+} // end: slabinfo_items_check_failed
+
+
+/*
+ * slabinfo_stacks_alloc():
+ *
+ * Allocate and initialize one or more stacks each of which is anchored in an
+ * associated context structure.
+ *
+ * All such stacks will have their result structures properly primed with
+ * 'items', while the result itself will be zeroed.
+ *
+ * Returns a stacks_extent struct anchoring the 'heads' of each new stack.
+ */
+static struct stacks_extent *slabinfo_stacks_alloc (
+ struct ext_support *this,
+ int maxstacks)
+{
+ struct stacks_extent *p_blob;
+ struct slabinfo_stack **p_vect;
+ struct slabinfo_stack *p_head;
+ size_t vect_size, head_size, list_size, blob_size;
+ void *v_head, *v_list;
+ int i;
+
+ vect_size = sizeof(void *) * maxstacks; // size of the addr vectors |
+ vect_size += sizeof(void *); // plus NULL addr delimiter |
+ head_size = sizeof(struct slabinfo_stack); // size of that head struct |
+ list_size = sizeof(struct slabinfo_result)*this->numitems; // any single results stack |
+ blob_size = sizeof(struct stacks_extent); // the extent anchor itself |
+ blob_size += vect_size; // plus room for addr vects |
+ blob_size += head_size * maxstacks; // plus room for head thing |
+ blob_size += list_size * maxstacks; // plus room for our stacks |
+
+ /* note: all of our memory is allocated in one single blob, facilitating a later free(). |
+ as a minimum, it is important that those result structures themselves always be |
+ contiguous within each stack since they are accessed through relative position. | */
+ if (NULL == (p_blob = calloc(1, blob_size)))
+ return NULL;
+
+ p_blob->next = this->extents; // push this extent onto... |
+ this->extents = p_blob; // ...some existing extents |
+ p_vect = (void *)p_blob + sizeof(struct stacks_extent); // prime our vector pointer |
+ p_blob->stacks = p_vect; // set actual vectors start |
+ v_head = (void *)p_vect + vect_size; // prime head pointer start |
+ v_list = v_head + (head_size * maxstacks); // prime our stacks pointer |
+
+ for (i = 0; i < maxstacks; i++) {
+ p_head = (struct slabinfo_stack *)v_head;
+ p_head->head = slabinfo_itemize_stack((struct slabinfo_result *)v_list, this->numitems, this->items);
+ p_blob->stacks[i] = p_head;
+ v_list += list_size;
+ v_head += head_size;
+ }
+ p_blob->ext_numstacks = maxstacks;
+ return p_blob;
+} // end: slabinfo_stacks_alloc
+
+
+static int slabinfo_stacks_fetch (
+ struct slabinfo_info *info)
+{
+ #define n_alloc info->fetch.n_alloc
+ #define n_inuse info->fetch.n_inuse
+ #define n_saved info->fetch.n_alloc_save
+ struct stacks_extent *ext;
+
+ // initialize stuff -----------------------------------
+ if (!info->fetch.anchor) {
+ if (!(info->fetch.anchor = calloc(sizeof(void *), STACKS_INCR)))
+ return -1;
+ n_alloc = STACKS_INCR;
+ }
+ if (!info->fetch_ext.extents) {
+ if (!(ext = slabinfo_stacks_alloc(&info->fetch_ext, n_alloc)))
+ return -1; // here, errno was set to ENOMEM
+ memcpy(info->fetch.anchor, ext->stacks, sizeof(void *) * n_alloc);
+ }
+
+ // iterate stuff --------------------------------------
+ n_inuse = 0;
+ while (n_inuse < info->nodes_used) {
+ if (!(n_inuse < n_alloc)) {
+ n_alloc += STACKS_INCR;
+ if ((!(info->fetch.anchor = realloc(info->fetch.anchor, sizeof(void *) * n_alloc)))
+ || (!(ext = slabinfo_stacks_alloc(&info->fetch_ext, STACKS_INCR))))
+ return -1; // here, errno was set to ENOMEM
+ memcpy(info->fetch.anchor + n_inuse, ext->stacks, sizeof(void *) * STACKS_INCR);
+ }
+ slabinfo_assign_results(info->fetch.anchor[n_inuse], &info->slabs, &info->nodes[n_inuse]);
+ ++n_inuse;
+ }
+
+ // finalize stuff -------------------------------------
+ /* note: we go to this trouble of maintaining a duplicate of the consolidated |
+ extent stacks addresses represented as our 'anchor' since these ptrs |
+ are exposed to a user (um, not that we don't trust 'em or anything). |
+ plus, we can NULL delimit these ptrs which we couldn't do otherwise. | */
+ if (n_saved < n_inuse + 1) {
+ n_saved = n_inuse + 1;
+ if (!(info->fetch.results.stacks = realloc(info->fetch.results.stacks, sizeof(void *) * n_saved)))
+ return -1;
+ }
+ memcpy(info->fetch.results.stacks, info->fetch.anchor, sizeof(void *) * n_inuse);
+ info->fetch.results.stacks[n_inuse] = NULL;
+ info->fetch.results.total = n_inuse;
+
+ return n_inuse;
+ #undef n_alloc
+ #undef n_inuse
+ #undef n_saved
+} // end: slabinfo_stacks_fetch
+
+
+static int slabinfo_stacks_reconfig_maybe (
+ struct ext_support *this,
+ enum slabinfo_item *items,
+ int numitems)
+{
+ if (slabinfo_items_check_failed(this, items, numitems))
+ return -1;
+ /* is this the first time or have things changed since we were last called?
+ if so, gotta' redo all of our stacks stuff ... */
+ if (this->numitems != numitems + 1
+ || memcmp(this->items, items, sizeof(enum slabinfo_item) * numitems)) {
+ // allow for our SLABINFO_logical_end
+ if (!(this->items = realloc(this->items, sizeof(enum slabinfo_item) * (numitems + 1))))
+ return -1;
+ memcpy(this->items, items, sizeof(enum slabinfo_item) * numitems);
+ this->items[numitems] = SLABINFO_logical_end;
+ this->numitems = numitems + 1;
+ slabinfo_extents_free_all(this);
+ return 1;
+ }
+ return 0;
+} // end: slabinfo_stacks_reconfig_maybe
+
+
+// ___ Public Functions |||||||||||||||||||||||||||||||||||||||||||||||||||||||
+
+// --- standard required functions --------------------------------------------
+
+/*
+ * procps_slabinfo_new():
+ *
+ * @info: location of returned new structure
+ *
+ * Returns: < 0 on failure, 0 on success along with
+ * a pointer to a new context struct
+ */
+PROCPS_EXPORT int procps_slabinfo_new (
+ struct slabinfo_info **info)
+{
+ struct slabinfo_info *p;
+
+#ifdef ITEMTABLE_DEBUG
+ int i, failed = 0;
+ for (i = 0; i < MAXTABLE(Item_table); i++) {
+ if (i != Item_table[i].enumnumb) {
+ fprintf(stderr, "%s: enum/table error: Item_table[%d] was %s, but its value is %d\n"
+ , __FILE__, i, Item_table[i].enum2str, Item_table[i].enumnumb);
+ failed = 1;
+ }
+ }
+ if (failed) _Exit(EXIT_FAILURE);
+#endif
+
+ if (info == NULL || *info != NULL)
+ return -EINVAL;
+ if (!(p = calloc(1, sizeof(struct slabinfo_info))))
+ return -ENOMEM;
+
+#ifdef ENFORCE_LOGICAL
+ p->select_ext.lowest = SLABS_CACHES_TOTAL;
+ p->select_ext.highest = SLABS_DELTA_SIZE_TOTAL;
+ p->fetch_ext.lowest = SLAB_NAME;
+ p->fetch_ext.highest = SLAB_SIZE_TOTAL;
+#endif
+
+ p->refcount = 1;
+
+ /* do a priming read here for the following potential benefits: |
+ 1) see if that caller's permissions were sufficient (root) |
+ 2) make delta results potentially useful, even if 1st time |
+ 3) elimnate need for history distortions 1st time 'switch' | */
+ if (slabinfo_read_failed(p)) {
+ procps_slabinfo_unref(&p);
+ return -errno;
+ }
+
+ *info = p;
+ return 0;
+} // end: procps_slabinfo_new
+
+
+PROCPS_EXPORT int procps_slabinfo_ref (
+ struct slabinfo_info *info)
+{
+ if (info == NULL)
+ return -EINVAL;
+
+ info->refcount++;
+ return info->refcount;
+} // end: procps_slabinfo_ref
+
+
+PROCPS_EXPORT int procps_slabinfo_unref (
+ struct slabinfo_info **info)
+{
+ if (info == NULL || *info == NULL)
+ return -EINVAL;
+
+ (*info)->refcount--;
+
+ if ((*info)->refcount < 1) {
+ int errno_sav = errno;
+
+ if ((*info)->slabinfo_fp) {
+ fclose((*info)->slabinfo_fp);
+ (*info)->slabinfo_fp = NULL;
+ }
+ if ((*info)->select_ext.extents)
+ slabinfo_extents_free_all((&(*info)->select_ext));
+ if ((*info)->select_ext.items)
+ free((*info)->select_ext.items);
+
+ if ((*info)->fetch.anchor)
+ free((*info)->fetch.anchor);
+ if ((*info)->fetch.results.stacks)
+ free((*info)->fetch.results.stacks);
+
+ if ((*info)->fetch_ext.extents)
+ slabinfo_extents_free_all(&(*info)->fetch_ext);
+ if ((*info)->fetch_ext.items)
+ free((*info)->fetch_ext.items);
+
+ free((*info)->nodes);
+
+ free(*info);
+ *info = NULL;
+
+ errno = errno_sav;
+ return 0;
+ }
+ return (*info)->refcount;
+} // end: procps_slabinfo_unref
+
+
+// --- variable interface functions -------------------------------------------
+
+PROCPS_EXPORT struct slabinfo_result *procps_slabinfo_get (
+ struct slabinfo_info *info,
+ enum slabinfo_item item)
+{
+ time_t cur_secs;
+
+ errno = EINVAL;
+ if (info == NULL)
+ return NULL;
+ if (item < 0 || item >= SLABINFO_logical_end)
+ return NULL;
+ errno = 0;
+
+ /* we will NOT read the slabinfo file with every call - rather, we'll offer
+ a granularity of 1 second between reads ... */
+ cur_secs = time(NULL);
+ if (1 <= cur_secs - info->sav_secs) {
+ if (slabinfo_read_failed(info))
+ return NULL;
+ info->sav_secs = cur_secs;
+ }
+
+ info->get_this.item = item;
+ // with 'get', we must NOT honor the usual 'noop' guarantee
+ info->get_this.result.ul_int = 0;
+ Item_table[item].setsfunc(&info->get_this, &info->slabs, &info->nul_node);
+
+ return &info->get_this;
+} // end: procps_slabinfo_get
+
+
+/* procps_slabinfo_reap():
+ *
+ * Harvest all the requested SLAB (individual nodes) information
+ * providing the result stacks along with the total number of nodes.
+ *
+ * Returns: pointer to a slabinfo_reaped struct on success, NULL on error.
+ */
+PROCPS_EXPORT struct slabinfo_reaped *procps_slabinfo_reap (
+ struct slabinfo_info *info,
+ enum slabinfo_item *items,
+ int numitems)
+{
+ errno = EINVAL;
+ if (info == NULL || items == NULL)
+ return NULL;
+ if (0 > slabinfo_stacks_reconfig_maybe(&info->fetch_ext, items, numitems))
+ return NULL; // here, errno may be overridden with ENOMEM
+ errno = 0;
+
+ if (slabinfo_read_failed(info))
+ return NULL;
+ if (0 > slabinfo_stacks_fetch(info))
+ return NULL;
+
+ return &info->fetch.results;
+} // end: procps_slabinfo_reap
+
+
+/* procps_slabinfo_select():
+ *
+ * Obtain all the requested SLABS (global) information then return
+ * it in a single library provided results stack.
+ *
+ * Returns: pointer to a slabinfo_stack struct on success, NULL on error.
+ */
+PROCPS_EXPORT struct slabinfo_stack *procps_slabinfo_select (
+ struct slabinfo_info *info,
+ enum slabinfo_item *items,
+ int numitems)
+{
+ errno = EINVAL;
+ if (info == NULL || items == NULL)
+ return NULL;
+ if (0 > slabinfo_stacks_reconfig_maybe(&info->select_ext, items, numitems))
+ return NULL; // here, errno may be overridden with ENOMEM
+ errno = 0;
+
+ if (!info->select_ext.extents
+ && (!slabinfo_stacks_alloc(&info->select_ext, 1)))
+ return NULL;
+
+ if (slabinfo_read_failed(info))
+ return NULL;
+ slabinfo_assign_results(info->select_ext.extents->stacks[0], &info->slabs, &info->nul_node);
+
+ return info->select_ext.extents->stacks[0];
+} // end: procps_slabinfo_select
+
+
+/*
+ * procps_slabinfo_sort():
+ *
+ * Sort stacks anchored in the passed stack pointers array
+ * based on the designated sort enumerator and specified order.
+ *
+ * Returns those same addresses sorted.
+ *
+ * Note: all of the stacks must be homogeneous (of equal length and content).
+ */
+PROCPS_EXPORT struct slabinfo_stack **procps_slabinfo_sort (
+ struct slabinfo_info *info,
+ struct slabinfo_stack *stacks[],
+ int numstacked,
+ enum slabinfo_item sortitem,
+ enum slabinfo_sort_order order)
+{
+ struct slabinfo_result *p;
+ struct sort_parms parms;
+ int offset;
+
+ errno = EINVAL;
+ if (info == NULL || stacks == NULL)
+ return NULL;
+ // a slabinfo_item is currently unsigned, but we'll protect our future
+ if (sortitem < 0 || sortitem >= SLABINFO_logical_end)
+ return NULL;
+ if (order != SLABINFO_SORT_ASCEND && order != SLABINFO_SORT_DESCEND)
+ return NULL;
+ if (numstacked < 2)
+ return stacks;
+
+ offset = 0;
+ p = stacks[0]->head;
+ for (;;) {
+ if (p->item == sortitem)
+ break;
+ ++offset;
+ if (p->item >= SLABINFO_logical_end)
+ return NULL;
+ ++p;
+ }
+ errno = 0;
+
+ parms.offset = offset;
+ parms.order = order;
+
+ qsort_r(stacks, numstacked, sizeof(void *), (QSR_t)Item_table[p->item].sortfunc, &parms);
+ return stacks;
+} // end: procps_slabinfo_sort
+
+
+// --- special debugging function(s) ------------------------------------------
+/*
+ * The following isn't part of the normal programming interface. Rather,
+ * it exists to validate result types referenced in application programs.
+ *
+ * It's used only when:
+ * 1) the 'XTRA_PROCPS_DEBUG' has been defined, or
+ * 2) an #include of 'xtra-procps-debug.h' is used
+ */
+
+PROCPS_EXPORT struct slabinfo_result *xtra_slabinfo_get (
+ struct slabinfo_info *info,
+ enum slabinfo_item actual_enum,
+ const char *typestr,
+ const char *file,
+ int lineno)
+{
+ struct slabinfo_result *r = procps_slabinfo_get(info, actual_enum);
+
+ if (actual_enum < 0 || actual_enum >= SLABINFO_logical_end) {
+ fprintf(stderr, "%s line %d: invalid item = %d, type = %s\n"
+ , file, lineno, actual_enum, typestr);
+ }
+ if (r) {
+ char *str = Item_table[r->item].type2str;
+ if (str[0]
+ && (strcmp(typestr, str)))
+ fprintf(stderr, "%s line %d: was %s, expected %s\n", file, lineno, typestr, str);
+ }
+ return r;
+} // end: xtra_slabinfo_get_
+
+
+PROCPS_EXPORT struct slabinfo_result *xtra_slabinfo_val (
+ int relative_enum,
+ const char *typestr,
+ const struct slabinfo_stack *stack,
+ struct slabinfo_info *info,
+ const char *file,
+ int lineno)
+{
+ char *str;
+ int i;
+
+ for (i = 0; stack->head[i].item < SLABINFO_logical_end; i++)
+ ;
+ if (relative_enum < 0 || relative_enum >= i) {
+ fprintf(stderr, "%s line %d: invalid relative_enum = %d, valid range = 0-%d\n"
+ , file, lineno, relative_enum, i-1);
+ return NULL;
+ }
+ str = Item_table[stack->head[relative_enum].item].type2str;
+ if (str[0]
+ && (strcmp(typestr, str))) {
+ fprintf(stderr, "%s line %d: was %s, expected %s\n", file, lineno, typestr, str);
+ }
+ return &stack->head[relative_enum];
+ (void)info;
+} // end: xtra_slabinfo_val
diff --git a/library/stat.c b/library/stat.c
new file mode 100644
index 0000000..131cad5
--- /dev/null
+++ b/library/stat.c
@@ -0,0 +1,1443 @@
+/*
+ * stat.c - cpu/numa related definitions for libproc2
+ *
+ * Copyright © 2015-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2015-2023 Craig Small <csmall@dropbear.xyz>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <unistd.h>
+
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include "numa.h"
+
+#include "procps-private.h"
+#include "stat.h"
+
+
+#define STAT_FILE "/proc/stat"
+#define CORE_FILE "/proc/cpuinfo"
+
+#define CORE_BUFSIZ 1024 // buf size for line of /proc/cpuinfo
+#define BUFFER_INCR 8192 // amount i/p buffer allocations grow
+#define STACKS_INCR 64 // amount reap stack allocations grow
+#define NEWOLD_INCR 64 // amount jiffs hist allocations grow
+
+#define ECORE_BEGIN 10 // PRETEND_E_CORES begin at this cpu#
+
+/* ------------------------------------------------------------------------- +
+ this provision just does what its name sugggests - it will create several |
+ E-Core cpus for testing that STAT_TIC_ID_CORE & STAT_TIC_TYPE_CORE stuff! |*/
+// #define PRETEND_E_CORES //----------------------------------------------- |
+// ------------------------------------------------------------------------- +
+
+/* ------------------------------------------------------------------------- +
+ this provision can be used to ensure that our Item_table was synchronized |
+ with those enumerators found in the associated header file. It's intended |
+ to only be used locally (& temporarily) at some point prior to a release! | */
+// #define ITEMTABLE_DEBUG //----------------------------------------------- |
+// ------------------------------------------------------------------------- +
+
+/* ------------------------------------------------------------------------- +
+ because 'reap' would be forced to duplicate the global SYS stuff in every |
+ TIC type results stack, the following #define can be used to enforce that |
+ only STAT_noop and STAT_extra plus all the STAT_TIC items will be allowed | */
+//#define ENFORCE_LOGICAL // ensure only logical items are accepted by reap |
+// ------------------------------------------------------------------------- +
+
+/* --------------------------------------------------------------------------+
+ this next define is equivalent to the master top's CPU_ZEROTICS provision |
+ except that here in newlib we'll take an opposite approach to our default | */
+//#define CPU_IDLE_FORCED // show as 100% idle if fewer ticks than expected |
+// --------------------------------------------------------------------------+
+
+#ifdef CPU_IDLE_FORCED
+ /* this is the % used in establishing a ticks threshold below which some |
+ cpu will be treated 'idle' rather than reflect misleading tick values | */
+#define TICS_THRESHOLD ( 100 / 20 )
+#endif
+
+struct stat_jifs {
+ unsigned long long user, nice, system, idle, iowait, irq, sirq, stolen, guest, gnice;
+ unsigned long long xusr, xsys, xidl, xbsy, xtot;
+};
+
+struct stat_core {
+ int id;
+ int type; // 2 = p-core, 1 = e-core, 0 = unsure
+ int thread_1;
+ int thread_2;
+ struct stat_core *next;
+};
+
+struct stat_data {
+ unsigned long intr;
+ unsigned long ctxt;
+ unsigned long btime;
+ unsigned long procs_created;
+ unsigned long procs_blocked;
+ unsigned long procs_running;
+};
+
+struct hist_sys {
+ struct stat_data new;
+ struct stat_data old;
+};
+
+struct hist_tic {
+ int id;
+ int numa_node;
+ int count;
+ struct stat_jifs new;
+ struct stat_jifs old;
+#ifdef CPU_IDLE_FORCED
+ unsigned long edge; // only valued/valid with cpu summary
+#endif
+ struct stat_core *core;
+ int saved_id;
+};
+
+struct stacks_extent {
+ int ext_numstacks;
+ struct stacks_extent *next;
+ struct stat_stack **stacks;
+};
+
+struct item_support {
+ int num; // includes 'logical_end' delimiter
+ enum stat_item *enums; // includes 'logical_end' delimiter
+};
+
+struct ext_support {
+ struct item_support *items; // how these stacks are configured
+ struct stacks_extent *extents; // anchor for these extents
+};
+
+struct tic_support {
+ int n_alloc; // number of below structs allocated
+ int n_inuse; // number of below structs occupied
+ struct hist_tic *tics; // actual new/old jiffies
+};
+
+struct reap_support {
+ int total; // independently obtained # of cpus/nodes
+ struct ext_support fetch; // extents plus items details
+ struct tic_support hist; // cpu and node jiffies management
+ int n_alloc; // last known anchor pointers allocation
+ struct stat_stack **anchor; // reapable stacks (consolidated extents)
+ int n_alloc_save; // last known results.stacks allocation
+ struct stat_reap result; // summary + stacks returned to caller
+};
+
+struct stat_info {
+ int refcount;
+ FILE *stat_fp;
+ char *stat_buf; // grows to accommodate all /proc/stat
+ int stat_buf_size; // current size for the above stat_buf
+ int cpu_count_hwm; // if changed, triggers new cores scan
+ struct hist_sys sys_hist; // SYS type management
+ struct hist_tic cpu_hist; // TIC type management for cpu summary
+ struct reap_support cpus; // TIC type management for real cpus
+ struct reap_support nodes; // TIC type management for numa nodes
+ struct ext_support cpu_summary; // supports /proc/stat line #1 results
+ struct ext_support select; // support for 'procps_stat_select()'
+ struct stat_reaped results; // for return to caller after a reap
+ struct stat_result get_this; // for return to caller after a get
+ struct item_support reap_items; // items used for reap (shared among 3)
+ struct item_support select_items; // items unique to select
+ time_t sav_secs; // used by procps_stat_get to limit i/o
+ struct stat_core *cores; // linked list, also linked from hist_tic
+};
+
+// ___ Results 'Set' Support ||||||||||||||||||||||||||||||||||||||||||||||||||
+
+#define setNAME(e) set_stat_ ## e
+#define setDECL(e) static void setNAME(e) \
+ (struct stat_result *R, struct hist_sys *S, struct hist_tic *T)
+
+// regular assignment
+#define TIC_set(e,t,x) setDECL(e) { \
+ (void)S; R->result. t = T->new. x; }
+#define SYS_set(e,t,x) setDECL(e) { \
+ (void)T; R->result. t = S->new. x; }
+// delta assignment
+#define TICsetH(e,t,x) setDECL(e) { \
+ (void)S; R->result. t = ( T->new. x - T->old. x ); \
+ if (R->result. t < 0) R->result. t = 0; }
+#define SYSsetH(e,t,x) setDECL(e) { \
+ (void)T; R->result. t = ( S->new. x - S->old. x ); }
+
+setDECL(noop) { (void)R; (void)S; (void)T; }
+setDECL(extra) { (void)S; (void)T; R->result.ull_int = 0; }
+
+setDECL(TIC_ID) { (void)S; R->result.s_int = T->id; }
+setDECL(TIC_ID_CORE) { (void)S; R->result.s_int = (T->core) ? T->core->id : -1; }
+setDECL(TIC_NUMA_NODE) { (void)S; R->result.s_int = T->numa_node; }
+setDECL(TIC_NUM_CONTRIBUTORS) { (void)S; R->result.s_int = T->count; }
+setDECL(TIC_TYPE_CORE) { (void)S; R->result.s_int = (T->core) ? T->core->type : 0; }
+
+TIC_set(TIC_USER, ull_int, user)
+TIC_set(TIC_NICE, ull_int, nice)
+TIC_set(TIC_SYSTEM, ull_int, system)
+TIC_set(TIC_IDLE, ull_int, idle)
+TIC_set(TIC_IOWAIT, ull_int, iowait)
+TIC_set(TIC_IRQ, ull_int, irq)
+TIC_set(TIC_SOFTIRQ, ull_int, sirq)
+TIC_set(TIC_STOLEN, ull_int, stolen)
+TIC_set(TIC_GUEST, ull_int, guest)
+TIC_set(TIC_GUEST_NICE, ull_int, gnice)
+
+TICsetH(TIC_DELTA_USER, sl_int, user)
+TICsetH(TIC_DELTA_NICE, sl_int, nice)
+TICsetH(TIC_DELTA_SYSTEM, sl_int, system)
+TICsetH(TIC_DELTA_IDLE, sl_int, idle)
+TICsetH(TIC_DELTA_IOWAIT, sl_int, iowait)
+TICsetH(TIC_DELTA_IRQ, sl_int, irq)
+TICsetH(TIC_DELTA_SOFTIRQ, sl_int, sirq)
+TICsetH(TIC_DELTA_STOLEN, sl_int, stolen)
+TICsetH(TIC_DELTA_GUEST, sl_int, guest)
+TICsetH(TIC_DELTA_GUEST_NICE, sl_int, gnice)
+
+TIC_set(TIC_SUM_USER, ull_int, xusr)
+TIC_set(TIC_SUM_SYSTEM, ull_int, xsys)
+TIC_set(TIC_SUM_IDLE, ull_int, xidl)
+TIC_set(TIC_SUM_BUSY, ull_int, xbsy)
+TIC_set(TIC_SUM_TOTAL, ull_int, xtot)
+
+TICsetH(TIC_SUM_DELTA_USER, sl_int, xusr)
+TICsetH(TIC_SUM_DELTA_SYSTEM, sl_int, xsys)
+TICsetH(TIC_SUM_DELTA_IDLE, sl_int, xidl)
+TICsetH(TIC_SUM_DELTA_BUSY, sl_int, xbsy)
+TICsetH(TIC_SUM_DELTA_TOTAL, sl_int, xtot)
+
+SYS_set(SYS_CTX_SWITCHES, ul_int, ctxt)
+SYS_set(SYS_INTERRUPTS, ul_int, intr)
+SYS_set(SYS_PROC_BLOCKED, ul_int, procs_blocked)
+SYS_set(SYS_PROC_CREATED, ul_int, procs_created)
+SYS_set(SYS_PROC_RUNNING, ul_int, procs_running)
+SYS_set(SYS_TIME_OF_BOOT, ul_int, btime)
+
+SYSsetH(SYS_DELTA_CTX_SWITCHES, s_int, ctxt)
+SYSsetH(SYS_DELTA_INTERRUPTS, s_int, intr)
+SYSsetH(SYS_DELTA_PROC_BLOCKED, s_int, procs_blocked)
+SYSsetH(SYS_DELTA_PROC_CREATED, s_int, procs_created)
+SYSsetH(SYS_DELTA_PROC_RUNNING, s_int, procs_running)
+
+#undef setDECL
+#undef TIC_set
+#undef SYS_set
+#undef TICsetH
+#undef SYSsetH
+
+
+// ___ Sorting Support ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
+
+struct sort_parms {
+ int offset;
+ enum stat_sort_order order;
+};
+
+#define srtNAME(t) sort_stat_ ## t
+#define srtDECL(t) static int srtNAME(t) \
+ (const struct stat_stack **A, const struct stat_stack **B, struct sort_parms *P)
+
+srtDECL(s_int) {
+ const struct stat_result *a = (*A)->head + P->offset; \
+ const struct stat_result *b = (*B)->head + P->offset; \
+ return P->order * (a->result.s_int - b->result.s_int);
+}
+
+srtDECL(sl_int) {
+ const struct stat_result *a = (*A)->head + P->offset; \
+ const struct stat_result *b = (*B)->head + P->offset; \
+ return P->order * (a->result.sl_int - b->result.sl_int);
+}
+
+srtDECL(ul_int) {
+ const struct stat_result *a = (*A)->head + P->offset; \
+ const struct stat_result *b = (*B)->head + P->offset; \
+ if ( a->result.ul_int > b->result.ul_int ) return P->order > 0 ? 1 : -1; \
+ if ( a->result.ul_int < b->result.ul_int ) return P->order > 0 ? -1 : 1; \
+ return 0;
+}
+
+srtDECL(ull_int) {
+ const struct stat_result *a = (*A)->head + P->offset; \
+ const struct stat_result *b = (*B)->head + P->offset; \
+ if ( a->result.ull_int > b->result.ull_int ) return P->order > 0 ? 1 : -1; \
+ if ( a->result.ull_int < b->result.ull_int ) return P->order > 0 ? -1 : 1; \
+ return 0;
+}
+
+srtDECL(noop) { \
+ (void)A; (void)B; (void)P; \
+ return 0;
+}
+
+#undef srtDECL
+
+
+// ___ Controlling Table ||||||||||||||||||||||||||||||||||||||||||||||||||||||
+
+typedef void (*SET_t)(struct stat_result *, struct hist_sys *, struct hist_tic *);
+#ifdef ITEMTABLE_DEBUG
+#define RS(e) (SET_t)setNAME(e), STAT_ ## e, STRINGIFY(STAT_ ## e)
+#else
+#define RS(e) (SET_t)setNAME(e)
+#endif
+
+typedef int (*QSR_t)(const void *, const void *, void *);
+#define QS(t) (QSR_t)srtNAME(t)
+
+#define TS(t) STRINGIFY(t)
+#define TS_noop ""
+
+ /*
+ * Need it be said?
+ * This table must be kept in the exact same order as
+ * those 'enum stat_item' guys ! */
+static struct {
+ SET_t setsfunc; // the actual result setting routine
+#ifdef ITEMTABLE_DEBUG
+ int enumnumb; // enumerator (must match position!)
+ char *enum2str; // enumerator name as a char* string
+#endif
+ QSR_t sortfunc; // sort cmp func for a specific type
+ char *type2str; // the result type as a string value
+} Item_table[] = {
+/* setsfunc sortfunc type2str
+ --------------------------- ------------ ----------- */
+ { RS(noop), QS(noop), TS_noop },
+ { RS(extra), QS(ull_int), TS_noop },
+
+ { RS(TIC_ID), QS(s_int), TS(s_int) },
+ { RS(TIC_ID_CORE), QS(s_int), TS(s_int) },
+ { RS(TIC_NUMA_NODE), QS(s_int), TS(s_int) },
+ { RS(TIC_NUM_CONTRIBUTORS), QS(s_int), TS(s_int) },
+ { RS(TIC_TYPE_CORE), QS(s_int), TS(s_int) },
+ { RS(TIC_USER), QS(ull_int), TS(ull_int) },
+ { RS(TIC_NICE), QS(ull_int), TS(ull_int) },
+ { RS(TIC_SYSTEM), QS(ull_int), TS(ull_int) },
+ { RS(TIC_IDLE), QS(ull_int), TS(ull_int) },
+ { RS(TIC_IOWAIT), QS(ull_int), TS(ull_int) },
+ { RS(TIC_IRQ), QS(ull_int), TS(ull_int) },
+ { RS(TIC_SOFTIRQ), QS(ull_int), TS(ull_int) },
+ { RS(TIC_STOLEN), QS(ull_int), TS(ull_int) },
+ { RS(TIC_GUEST), QS(ull_int), TS(ull_int) },
+ { RS(TIC_GUEST_NICE), QS(ull_int), TS(ull_int) },
+
+ { RS(TIC_DELTA_USER), QS(sl_int), TS(sl_int) },
+ { RS(TIC_DELTA_NICE), QS(sl_int), TS(sl_int) },
+ { RS(TIC_DELTA_SYSTEM), QS(sl_int), TS(sl_int) },
+ { RS(TIC_DELTA_IDLE), QS(sl_int), TS(sl_int) },
+ { RS(TIC_DELTA_IOWAIT), QS(sl_int), TS(sl_int) },
+ { RS(TIC_DELTA_IRQ), QS(sl_int), TS(sl_int) },
+ { RS(TIC_DELTA_SOFTIRQ), QS(sl_int), TS(sl_int) },
+ { RS(TIC_DELTA_STOLEN), QS(sl_int), TS(sl_int) },
+ { RS(TIC_DELTA_GUEST), QS(sl_int), TS(sl_int) },
+ { RS(TIC_DELTA_GUEST_NICE), QS(sl_int), TS(sl_int) },
+
+ { RS(TIC_SUM_USER), QS(ull_int), TS(ull_int) },
+ { RS(TIC_SUM_SYSTEM), QS(ull_int), TS(ull_int) },
+ { RS(TIC_SUM_IDLE), QS(ull_int), TS(ull_int) },
+ { RS(TIC_SUM_BUSY), QS(ull_int), TS(ull_int) },
+ { RS(TIC_SUM_TOTAL), QS(ull_int), TS(ull_int) },
+
+ { RS(TIC_SUM_DELTA_USER), QS(sl_int), TS(sl_int) },
+ { RS(TIC_SUM_DELTA_SYSTEM), QS(sl_int), TS(sl_int) },
+ { RS(TIC_SUM_DELTA_IDLE), QS(sl_int), TS(sl_int) },
+ { RS(TIC_SUM_DELTA_BUSY), QS(sl_int), TS(sl_int) },
+ { RS(TIC_SUM_DELTA_TOTAL), QS(sl_int), TS(sl_int) },
+
+ { RS(SYS_CTX_SWITCHES), QS(ul_int), TS(ul_int) },
+ { RS(SYS_INTERRUPTS), QS(ul_int), TS(ul_int) },
+ { RS(SYS_PROC_BLOCKED), QS(ul_int), TS(ul_int) },
+ { RS(SYS_PROC_CREATED), QS(ul_int), TS(ul_int) },
+ { RS(SYS_PROC_RUNNING), QS(ul_int), TS(ul_int) },
+ { RS(SYS_TIME_OF_BOOT), QS(ul_int), TS(ul_int) },
+
+ { RS(SYS_DELTA_CTX_SWITCHES), QS(s_int), TS(s_int) },
+ { RS(SYS_DELTA_INTERRUPTS), QS(s_int), TS(s_int) },
+ { RS(SYS_DELTA_PROC_BLOCKED), QS(s_int), TS(s_int) },
+ { RS(SYS_DELTA_PROC_CREATED), QS(s_int), TS(s_int) },
+ { RS(SYS_DELTA_PROC_RUNNING), QS(s_int), TS(s_int) },
+};
+
+ /* please note,
+ * 1st enum MUST be kept in sync with highest TIC type
+ * 2nd enum MUST be 1 greater than the highest value of any enum */
+#ifdef ENFORCE_LOGICAL
+enum stat_item STAT_TIC_highest = STAT_TIC_DELTA_GUEST_NICE;
+#endif
+enum stat_item STAT_logical_end = MAXTABLE(Item_table);
+
+#undef setNAME
+#undef srtNAME
+#undef RS
+#undef QS
+
+
+// ___ Private Functions ||||||||||||||||||||||||||||||||||||||||||||||||||||||
+
+static inline void stat_assign_results (
+ struct stat_stack *stack,
+ struct hist_sys *sys_hist,
+ struct hist_tic *tic_hist)
+{
+ struct stat_result *this = stack->head;
+
+ for (;;) {
+ enum stat_item item = this->item;
+ if (item >= STAT_logical_end)
+ break;
+ Item_table[item].setsfunc(this, sys_hist, tic_hist);
+ ++this;
+ }
+ return;
+} // end: stat_assign_results
+
+
+#define E_CORE 1
+#define P_CORE 2
+#define VACANT -1
+
+static int stat_core_add (
+ struct stat_info *info,
+ int a_core,
+ int a_cpu)
+{
+ struct stat_core *last = NULL, *core = info->cores;
+
+ while (core) {
+ if (core->id == a_core) {
+ if (a_cpu == core->thread_1
+ || (a_cpu == core->thread_2))
+ return 1;
+ core->thread_2 = a_cpu;
+ core->type = P_CORE;
+ return 1;
+ }
+ last = core;
+ core = core->next;
+ }
+ if (!(core = calloc(1, sizeof(struct stat_core))))
+ return 0;
+ if (last) last->next = core;
+ else info->cores = core;
+ core->id = a_core;
+ core->thread_1 = a_cpu;
+ core->thread_2 = VACANT;
+ return 1;
+} // end: stat_core_add
+
+
+static void stat_cores_check (
+ struct stat_info *info)
+{
+ struct stat_core *core;
+#ifndef PRETEND_E_CORES
+ int p_core = 0;
+
+ core = info->cores;
+ while (core) {
+ if (core->type == P_CORE) {
+ p_core = 1;
+ break;
+ }
+ core = core->next;
+ }
+ if (p_core) {
+ core = info->cores;
+ do {
+ if (core->thread_2 == VACANT)
+ core->type = E_CORE;
+ } while ((core = core->next));
+ }
+#else
+ core = info->cores;
+ while (core) {
+ core->type = P_CORE;
+ if (core->thread_1 > ECORE_BEGIN
+ || (core->thread_2 > ECORE_BEGIN))
+ core->type = E_CORE;
+ core = core->next;
+ }
+#endif
+} // end: stat_cores_check
+
+#undef E_CORE
+#undef P_CORE
+#undef VACANT
+
+
+static void stat_cores_link (
+ struct stat_info *info,
+ struct hist_tic *this)
+{
+ struct stat_core *core = info->cores;
+
+ while (core) {
+ if (this->id == core->thread_1
+ || (this->id == core->thread_2)) {
+ this->core = core;
+ break;
+ }
+ core = core->next;
+ }
+} // end: stat_cores_link
+
+
+static int stat_cores_verify (
+ struct stat_info *info)
+{
+ char buf[CORE_BUFSIZ];
+ int a_cpu, a_core;
+ FILE *fp;
+
+ // be tolerant of a missing CORE_FILE ...
+ if (!(fp = fopen(CORE_FILE, "r")))
+ return 1;
+ for (;;) {
+ if (NULL == fgets(buf, sizeof(buf), fp))
+ break;
+ if (buf[0] != 'p') continue;
+ if (!strstr(buf, "processor"))
+ continue;
+ sscanf(buf, "processor : %d", &a_cpu);
+ for (;;) {
+ // be tolerant of missing empty line on last processor entry ...
+ if (NULL == fgets(buf, sizeof(buf), fp))
+ goto wrap_up;
+ // be tolerant of a missing 'core id' on any processor entry ...
+ if (buf[0] == '\n') {
+ a_core = a_cpu;
+ break;
+ }
+ if (buf[0] != 'c') continue;
+ if (!strstr(buf, "core id"))
+ continue;
+ sscanf(buf, "core id : %d", &a_core);
+ break;
+ }
+ if (!stat_core_add(info, a_core, a_cpu)) {
+ fclose(fp);
+ return 0;
+ }
+ }
+wrap_up:
+ fclose(fp);
+ stat_cores_check(info);
+ return 1;
+} // end: stat_cores_verify
+
+
+static inline void stat_derive_unique (
+ struct hist_tic *this)
+{
+ /* note: we calculate these derived values in a manner consistent with
+ the calculations for cgroup accounting, as nearly as possible
+ ( see linux sources: ./kernel/cgroup/rstat.c, root_cgroup_cputime ) */
+ this->new.xusr
+ = this->new.user
+ + this->new.nice;
+ this->new.xsys
+ = this->new.system
+ + this->new.irq
+ + this->new.sirq;
+ this->new.xidl
+ = this->new.idle
+ + this->new.iowait;
+ this->new.xtot
+ = this->new.xusr + this->new.xsys + this->new.xidl
+ + this->new.stolen
+ + this->new.guest
+ + this->new.gnice;
+ this->new.xbsy
+ = this->new.xtot - this->new.xidl;
+
+ // don't distort deltas when cpus are taken offline or brought online
+ if (this->new.xusr < this->old.xusr
+ || (this->new.xsys < this->old.xsys)
+ || (this->new.xidl < this->old.xidl)
+ || (this->new.xbsy < this->old.xbsy)
+ || (this->new.xtot < this->old.xtot))
+ memcpy(&this->old, &this->new, sizeof(struct stat_jifs));
+} // end: stat_derive_unique
+
+
+static void stat_extents_free_all (
+ struct ext_support *this)
+{
+ while (this->extents) {
+ struct stacks_extent *p = this->extents;
+ this->extents = this->extents->next;
+ free(p);
+ };
+} // end: stat_extents_free_all
+
+
+static inline struct stat_result *stat_itemize_stack (
+ struct stat_result *p,
+ int depth,
+ enum stat_item *items)
+{
+ struct stat_result *p_sav = p;
+ int i;
+
+ for (i = 0; i < depth; i++) {
+ p->item = items[i];
+ ++p;
+ }
+ return p_sav;
+} // end: stat_itemize_stack
+
+
+static inline int stat_items_check_failed (
+ int numitems,
+ enum stat_item *items)
+{
+ int i;
+
+ /* if an enum is passed instead of an address of one or more enums, ol' gcc
+ * will silently convert it to an address (possibly NULL). only clang will
+ * offer any sort of warning like the following:
+ *
+ * warning: incompatible integer to pointer conversion passing 'int' to parameter of type 'enum stat_item *'
+ * my_stack = procps_stat_select(info, STAT_noop, num);
+ * ^~~~~~~~~~~~~~~~
+ */
+ if (numitems < 1
+ || (void *)items < (void *)(unsigned long)(2 * STAT_logical_end))
+ return 1;
+
+ for (i = 0; i < numitems; i++) {
+ // a stat_item is currently unsigned, but we'll protect our future
+ if (items[i] < 0)
+ return 1;
+ if (items[i] >= STAT_logical_end) {
+ return 1;
+ }
+ }
+ return 0;
+} // end: stat_items_check_failed
+
+
+static int stat_make_numa_hist (
+ struct stat_info *info)
+{
+ struct hist_tic *cpu_ptr, *nod_ptr;
+ int i, node;
+
+ /* are numa nodes dynamic like online cpus can be?
+ ( and be careful, this libnuma call returns the highest node id in use, )
+ ( NOT an actual number of nodes - some of those 'slots' might be unused ) */
+ if (!(info->nodes.total = numa_max_node() + 1))
+ return 0;
+
+ if (info->nodes.hist.n_alloc == 0
+ || (info->nodes.total >= info->nodes.hist.n_alloc)) {
+ info->nodes.hist.n_alloc = info->nodes.total + NEWOLD_INCR;
+ info->nodes.hist.tics = realloc(info->nodes.hist.tics, info->nodes.hist.n_alloc * sizeof(struct hist_tic));
+ if (info->nodes.hist.tics == NULL)
+ return -ENOMEM;
+ }
+
+ // forget all of the prior node statistics & anticipate unassigned slots
+ memset(info->nodes.hist.tics, 0, info->nodes.hist.n_alloc * sizeof(struct hist_tic));
+ nod_ptr = info->nodes.hist.tics;
+ for (i = 0; i < info->nodes.total; i++) {
+ nod_ptr->numa_node = STAT_NODE_INVALID;
+ nod_ptr->id = i;
+ ++nod_ptr;
+ }
+
+ // spin thru each cpu and value the jiffs for it's numa node
+ for (i = 0; i < info->cpus.hist.n_inuse; i++) {
+ cpu_ptr = info->cpus.hist.tics + i;
+ if (-1 < (node = numa_node_of_cpu(cpu_ptr->id))) {
+ nod_ptr = info->nodes.hist.tics + node;
+ nod_ptr->new.user += cpu_ptr->new.user; nod_ptr->old.user += cpu_ptr->old.user;
+ nod_ptr->new.nice += cpu_ptr->new.nice; nod_ptr->old.nice += cpu_ptr->old.nice;
+ nod_ptr->new.system += cpu_ptr->new.system; nod_ptr->old.system += cpu_ptr->old.system;
+ nod_ptr->new.idle += cpu_ptr->new.idle; nod_ptr->old.idle += cpu_ptr->old.idle;
+ nod_ptr->new.iowait += cpu_ptr->new.iowait; nod_ptr->old.iowait += cpu_ptr->old.iowait;
+ nod_ptr->new.irq += cpu_ptr->new.irq; nod_ptr->old.irq += cpu_ptr->old.irq;
+ nod_ptr->new.sirq += cpu_ptr->new.sirq; nod_ptr->old.sirq += cpu_ptr->old.sirq;
+ nod_ptr->new.stolen += cpu_ptr->new.stolen; nod_ptr->old.stolen += cpu_ptr->old.stolen;
+ nod_ptr->new.guest += cpu_ptr->new.guest; nod_ptr->old.guest += cpu_ptr->old.guest;
+ nod_ptr->new.gnice += cpu_ptr->new.gnice; nod_ptr->old.gnice += cpu_ptr->old.gnice;
+
+ nod_ptr->new.xusr += cpu_ptr->new.xusr; nod_ptr->old.xusr += cpu_ptr->old.xusr;
+ nod_ptr->new.xsys += cpu_ptr->new.xsys; nod_ptr->old.xsys += cpu_ptr->old.xsys;
+ nod_ptr->new.xidl += cpu_ptr->new.xidl; nod_ptr->old.xidl += cpu_ptr->old.xidl;
+ nod_ptr->new.xbsy += cpu_ptr->new.xbsy; nod_ptr->old.xbsy += cpu_ptr->old.xbsy;
+ nod_ptr->new.xtot += cpu_ptr->new.xtot; nod_ptr->old.xtot += cpu_ptr->old.xtot;
+
+ cpu_ptr->numa_node = nod_ptr->numa_node = node;
+ nod_ptr->count++; ;
+ }
+ }
+ info->nodes.hist.n_inuse = info->nodes.total;
+ return info->nodes.hist.n_inuse;
+} // end: stat_make_numa_hist
+
+
+static int stat_read_failed (
+ struct stat_info *info)
+{
+ struct hist_tic *sum_ptr, *cpu_ptr;
+ char *bp, *b;
+ int i, rc, num, tot_read;
+ unsigned long long llnum;
+
+ if (!info->cpus.hist.n_alloc) {
+ info->cpus.hist.tics = calloc(NEWOLD_INCR, sizeof(struct hist_tic));
+ if (!(info->cpus.hist.tics))
+ return 1;
+ info->cpus.hist.n_alloc = NEWOLD_INCR;
+ info->cpus.hist.n_inuse = 0;
+ }
+
+ if (!info->stat_fp
+ && (!(info->stat_fp = fopen(STAT_FILE, "r"))))
+ return 1;
+ fflush(info->stat_fp);
+ rewind(info->stat_fp);
+
+ #define maxSIZ info->stat_buf_size
+ #define curSIZ ( maxSIZ - tot_read )
+ #define curPOS ( info->stat_buf + tot_read )
+ /* we slurp in the entire directory thus avoiding repeated calls to fread, |
+ especially for a massively parallel environment. additionally, each cpu |
+ line is then frozen in time rather than changing until we get around to |
+ accessing it. this helps to minimize (not eliminate) some distortions. | */
+ tot_read = 0;
+ while ((0 < (num = fread(curPOS, 1, curSIZ, info->stat_fp)))) {
+ tot_read += num;
+ if (tot_read < maxSIZ)
+ break;
+ maxSIZ += BUFFER_INCR;
+ if (!(info->stat_buf = realloc(info->stat_buf, maxSIZ)))
+ return 1;
+ };
+ #undef maxSIZ
+ #undef curSIZ
+ #undef curPOS
+
+ if (!feof(info->stat_fp)) {
+ errno = EIO;
+ return 1;
+ }
+ info->stat_buf[tot_read] = '\0';
+ bp = info->stat_buf;
+
+ sum_ptr = &info->cpu_hist;
+ // remember summary from last time around
+ memcpy(&sum_ptr->old, &sum_ptr->new, sizeof(struct stat_jifs));
+
+ sum_ptr->id = STAT_SUMMARY_ID; // mark as summary
+ sum_ptr->numa_node = STAT_NODE_INVALID; // mark as invalid
+
+ // now value the cpu summary tics from line #1
+#ifdef __CYGWIN__
+ if (4 > sscanf(bp, "cpu %llu %llu %llu %llu %llu %llu %llu %llu %llu %llu"
+#else
+ if (8 > sscanf(bp, "cpu %llu %llu %llu %llu %llu %llu %llu %llu %llu %llu"
+#endif
+ , &sum_ptr->new.user, &sum_ptr->new.nice, &sum_ptr->new.system
+ , &sum_ptr->new.idle, &sum_ptr->new.iowait, &sum_ptr->new.irq
+ , &sum_ptr->new.sirq, &sum_ptr->new.stolen
+ , &sum_ptr->new.guest, &sum_ptr->new.gnice)) {
+ errno = ERANGE;
+ return 1;
+ }
+ stat_derive_unique(sum_ptr);
+#ifdef CPU_IDLE_FORCED
+ /* if any cpu accumulated substantially fewer tics than what is expected |
+ we'll force it to be treated as 'idle' so as not to return misleading |
+ statistics (and that sum_ptr->count also serves as first time switch) | */
+ if (sum_ptr->count) sum_ptr->edge =
+ ((sum_ptr->new.xtot - sum_ptr->old.xtot) / sum_ptr->count) / TICS_THRESHOLD;
+#endif
+
+ i = 0;
+reap_em_again:
+ cpu_ptr = info->cpus.hist.tics + i; // adapt to relocated if reap_em_again
+
+ do {
+ static int once_sw;
+
+ bp = 1 + strchr(bp, '\n');
+ // remember this cpu from last time around
+ memcpy(&cpu_ptr->old, &cpu_ptr->new, sizeof(struct stat_jifs));
+ // next can be overridden under 'stat_make_numa_hist'
+ cpu_ptr->numa_node = STAT_NODE_INVALID;
+ cpu_ptr->count = 1;
+
+#ifdef __CYGWIN__
+ if (4 > (rc = sscanf(bp, "cpu%d %llu %llu %llu %llu %llu %llu %llu %llu %llu %llu"
+#else
+ if (8 > (rc = sscanf(bp, "cpu%d %llu %llu %llu %llu %llu %llu %llu %llu %llu %llu"
+#endif
+ , &cpu_ptr->id
+ , &cpu_ptr->new.user, &cpu_ptr->new.nice, &cpu_ptr->new.system
+ , &cpu_ptr->new.idle, &cpu_ptr->new.iowait, &cpu_ptr->new.irq
+ , &cpu_ptr->new.sirq, &cpu_ptr->new.stolen
+ , &cpu_ptr->new.guest, &cpu_ptr->new.gnice))) {
+ break; // we must tolerate cpus taken offline
+ }
+ stat_derive_unique(cpu_ptr);
+
+ // force a one time core link for cpu0 (if possible) ...
+ if (!once_sw)
+ once_sw = cpu_ptr->saved_id = -1;
+
+ /* this happens if cpus are taken offline/brought back online
+ so we better force the proper current core association ... */
+ if (cpu_ptr->saved_id != cpu_ptr->id) {
+ cpu_ptr->saved_id = cpu_ptr->id;
+ cpu_ptr->core = NULL;
+ stat_cores_link(info, cpu_ptr);
+ }
+
+#ifdef CPU_IDLE_FORCED
+ // first time through (that priming read) sum_ptr->edge will be zero |
+ if (cpu_ptr->new.xtot < sum_ptr->edge) {
+ cpu_ptr->old.xtot = cpu_ptr->old.xbsy = cpu_ptr->old.xidl = cpu_ptr->old.xusr = cpu_ptr->old.xsys
+ = cpu_ptr->new.xbsy = cpu_ptr->new.xusr = cpu_ptr->new.xsys = 0;
+ cpu_ptr->new.xtot = cpu_ptr->new.xidl = 1;
+ }
+#endif
+ ++cpu_ptr;
+ ++i;
+ } while (i < info->cpus.hist.n_alloc);
+
+ if (i == info->cpus.hist.n_alloc && rc >= 8) {
+ info->cpus.hist.n_alloc += NEWOLD_INCR;
+ info->cpus.hist.tics = realloc(info->cpus.hist.tics, info->cpus.hist.n_alloc * sizeof(struct hist_tic));
+ if (!(info->cpus.hist.tics))
+ return 1;
+ goto reap_em_again;
+ }
+
+ info->cpus.total = info->cpus.hist.n_inuse = sum_ptr->count = i;
+ /* whoa, if a new cpu was brought online, we better
+ ensure that no new cores have now become visible */
+ if (info->cpu_count_hwm < info->cpus.total) {
+ /* next means it's not the first time, so we'll re-verify.
+ otherwise, procps_stat_new() already setup any cores so
+ that they could be linked above during tics processing. */
+ if (info->cpu_count_hwm) {
+ if (!stat_cores_verify(info))
+ return 1;
+ }
+ info->cpu_count_hwm = info->cpus.total;
+ }
+
+ // remember sys_hist stuff from last time around
+ memcpy(&info->sys_hist.old, &info->sys_hist.new, sizeof(struct stat_data));
+
+ llnum = 0;
+ if ((b = strstr(bp, "intr ")))
+ sscanf(b, "intr %llu", &llnum);
+ info->sys_hist.new.intr = llnum;
+
+ llnum = 0;
+ if ((b = strstr(bp, "ctxt ")))
+ sscanf(b, "ctxt %llu", &llnum);
+ info->sys_hist.new.ctxt = llnum;
+
+ llnum = 0;
+ if ((b = strstr(bp, "btime ")))
+ sscanf(b, "btime %llu", &llnum);
+ info->sys_hist.new.btime = llnum;
+
+ llnum = 0;
+ if ((b = strstr(bp, "processes ")))
+ sscanf(b, "processes %llu", &llnum);
+ info->sys_hist.new.procs_created = llnum;
+
+ llnum = 0;
+ if ((b = strstr(bp, "procs_blocked ")))
+ sscanf(b, "procs_blocked %llu", &llnum);
+ info->sys_hist.new.procs_blocked = llnum;
+
+ llnum = 0;
+ if ((b = strstr(bp, "procs_running ")))
+ sscanf(b, "procs_running %llu", &llnum);
+ if (llnum)
+ llnum--; //exclude itself
+ info->sys_hist.new.procs_running = llnum;
+
+ return 0;
+} // end: stat_read_failed
+
+
+/*
+ * stat_stacks_alloc():
+ *
+ * Allocate and initialize one or more stacks each of which is anchored in an
+ * associated context structure.
+ *
+ * All such stacks will have their result structures properly primed with
+ * 'items', while the result itself will be zeroed.
+ *
+ * Returns a stack_extent struct anchoring the 'heads' of each new stack.
+ */
+static struct stacks_extent *stat_stacks_alloc (
+ struct ext_support *this,
+ int maxstacks)
+{
+ struct stacks_extent *p_blob;
+ struct stat_stack **p_vect;
+ struct stat_stack *p_head;
+ size_t vect_size, head_size, list_size, blob_size;
+ void *v_head, *v_list;
+ int i;
+
+ vect_size = sizeof(void *) * maxstacks; // size of the addr vectors |
+ vect_size += sizeof(void *); // plus NULL addr delimiter |
+ head_size = sizeof(struct stat_stack); // size of that head struct |
+ list_size = sizeof(struct stat_result) * this->items->num; // any single results stack |
+ blob_size = sizeof(struct stacks_extent); // the extent anchor itself |
+ blob_size += vect_size; // plus room for addr vects |
+ blob_size += head_size * maxstacks; // plus room for head thing |
+ blob_size += list_size * maxstacks; // plus room for our stacks |
+
+ /* note: all of our memory is allocated in one single blob, facilitating a later free(). |
+ as a minimum, it is important that those result structures themselves always be |
+ contiguous within each stack since they are accessed through relative position. | */
+ if (NULL == (p_blob = calloc(1, blob_size)))
+ return NULL;
+
+ p_blob->next = this->extents; // push this extent onto... |
+ this->extents = p_blob; // ...some existing extents |
+ p_vect = (void *)p_blob + sizeof(struct stacks_extent); // prime our vector pointer |
+ p_blob->stacks = p_vect; // set actual vectors start |
+ v_head = (void *)p_vect + vect_size; // prime head pointer start |
+ v_list = v_head + (head_size * maxstacks); // prime our stacks pointer |
+
+ for (i = 0; i < maxstacks; i++) {
+ p_head = (struct stat_stack *)v_head;
+ p_head->head = stat_itemize_stack((struct stat_result *)v_list, this->items->num, this->items->enums);
+ p_blob->stacks[i] = p_head;
+ v_list += list_size;
+ v_head += head_size;
+ }
+ p_blob->ext_numstacks = maxstacks;
+ return p_blob;
+} // end: stat_stacks_alloc
+
+
+static int stat_stacks_fetch (
+ struct stat_info *info,
+ struct reap_support *this)
+{
+ #define n_alloc this->n_alloc
+ #define n_inuse this->hist.n_inuse
+ #define n_saved this->n_alloc_save
+ struct stacks_extent *ext;
+ int i;
+
+ // initialize stuff -----------------------------------
+ if (!this->anchor) {
+ if (!(this->anchor = calloc(sizeof(void *), STACKS_INCR)))
+ return -1;
+ n_alloc = STACKS_INCR;
+ }
+ if (!this->fetch.extents) {
+ if (!(ext = stat_stacks_alloc(&this->fetch, n_alloc)))
+ return -1; // here, errno was set to ENOMEM
+ memcpy(this->anchor, ext->stacks, sizeof(void *) * n_alloc);
+ }
+
+ // iterate stuff --------------------------------------
+ for (i = 0; i < n_inuse; i++) {
+ if (!(i < n_alloc)) {
+ n_alloc += STACKS_INCR;
+ if ((!(this->anchor = realloc(this->anchor, sizeof(void *) * n_alloc)))
+ || (!(ext = stat_stacks_alloc(&this->fetch, STACKS_INCR))))
+ return -1; // here, errno was set to ENOMEM
+ memcpy(this->anchor + i, ext->stacks, sizeof(void *) * STACKS_INCR);
+ }
+ stat_assign_results(this->anchor[i], &info->sys_hist, &this->hist.tics[i]);
+ }
+
+ // finalize stuff -------------------------------------
+ /* note: we go to this trouble of maintaining a duplicate of the consolidated |
+ extent stacks addresses represented as our 'anchor' since these ptrs |
+ are exposed to a user (um, not that we don't trust 'em or anything). |
+ plus, we can NULL delimit these ptrs which we couldn't do otherwise. | */
+ if (n_saved < i + 1) {
+ n_saved = i + 1;
+ if (!(this->result.stacks = realloc(this->result.stacks, sizeof(void *) * n_saved)))
+ return -1;
+ }
+ memcpy(this->result.stacks, this->anchor, sizeof(void *) * i);
+ this->result.stacks[i] = NULL;
+ this->result.total = i;
+
+ // callers beware, this might be zero (maybe no libnuma.so) ...
+ return this->result.total;
+ #undef n_alloc
+ #undef n_inuse
+ #undef n_saved
+} // end: stat_stacks_fetch
+
+
+static int stat_stacks_reconfig_maybe (
+ struct ext_support *this,
+ enum stat_item *items,
+ int numitems)
+{
+ if (stat_items_check_failed(numitems, items))
+ return -1;
+ /* is this the first time or have things changed since we were last called?
+ if so, gotta' redo all of our stacks stuff ... */
+ if (this->items->num != numitems + 1
+ || memcmp(this->items->enums, items, sizeof(enum stat_item) * numitems)) {
+ // allow for our STAT_logical_end
+ if (!(this->items->enums = realloc(this->items->enums, sizeof(enum stat_item) * (numitems + 1))))
+ return -1;
+ memcpy(this->items->enums, items, sizeof(enum stat_item) * numitems);
+ this->items->enums[numitems] = STAT_logical_end;
+ this->items->num = numitems + 1;
+ stat_extents_free_all(this);
+ return 1;
+ }
+ return 0;
+} // end: stat_stacks_reconfig_maybe
+
+
+static struct stat_stack *stat_update_single_stack (
+ struct stat_info *info,
+ struct ext_support *this)
+{
+ if (!this->extents
+ && !(stat_stacks_alloc(this, 1)))
+ return NULL;
+
+ stat_assign_results(this->extents->stacks[0], &info->sys_hist, &info->cpu_hist);
+
+ return this->extents->stacks[0];
+} // end: stat_update_single_stack
+
+
+
+// ___ Public Functions |||||||||||||||||||||||||||||||||||||||||||||||||||||||
+
+// --- standard required functions --------------------------------------------
+
+/*
+ * procps_stat_new:
+ *
+ * Create a new container to hold the stat information
+ *
+ * The initial refcount is 1, and needs to be decremented
+ * to release the resources of the structure.
+ *
+ * Returns: < 0 on failure, 0 on success along with
+ * a pointer to a new context struct
+ */
+PROCPS_EXPORT int procps_stat_new (
+ struct stat_info **info)
+{
+ struct stat_info *p;
+
+#ifdef ITEMTABLE_DEBUG
+ int i, failed = 0;
+ for (i = 0; i < MAXTABLE(Item_table); i++) {
+ if (i != Item_table[i].enumnumb) {
+ fprintf(stderr, "%s: enum/table error: Item_table[%d] was %s, but its value is %d\n"
+ , __FILE__, i, Item_table[i].enum2str, Item_table[i].enumnumb);
+ failed = 1;
+ }
+ }
+ if (failed) _Exit(EXIT_FAILURE);
+#endif
+
+ if (info == NULL || *info != NULL)
+ return -EINVAL;
+ if (!(p = calloc(1, sizeof(struct stat_info))))
+ return -ENOMEM;
+ if (!(p->stat_buf = calloc(1, BUFFER_INCR))) {
+ free(p);
+ return -ENOMEM;
+ }
+ p->stat_buf_size = BUFFER_INCR;
+ p->refcount = 1;
+
+ p->results.cpus = &p->cpus.result;
+ p->results.numa = &p->nodes.result;
+
+ // these 3 are for reap, sharing a single set of items
+ p->cpu_summary.items = p->cpus.fetch.items = p->nodes.fetch.items = &p->reap_items;
+
+ // the select guy has its own set of items
+ p->select.items = &p->select_items;
+
+ numa_init();
+
+ // identify the current P-cores and E-cores, if any
+ if (!stat_cores_verify(p)) {
+ procps_stat_unref(&p);
+ return -errno;
+ }
+
+ /* do a priming read here for the following potential benefits: |
+ 1) ensure there will be no problems with subsequent access |
+ 2) make delta results potentially useful, even if 1st time |
+ 3) elimnate need for history distortions 1st time 'switch' | */
+ if (stat_read_failed(p)) {
+ procps_stat_unref(&p);
+ return -errno;
+ }
+
+ *info = p;
+ return 0;
+} // end :procps_stat_new
+
+
+PROCPS_EXPORT int procps_stat_ref (
+ struct stat_info *info)
+{
+ if (info == NULL)
+ return -EINVAL;
+
+ info->refcount++;
+ return info->refcount;
+} // end: procps_stat_ref
+
+
+PROCPS_EXPORT int procps_stat_unref (
+ struct stat_info **info)
+{
+ if (info == NULL || *info == NULL)
+ return -EINVAL;
+
+ (*info)->refcount--;
+
+ if ((*info)->refcount < 1) {
+ int errno_sav = errno;
+
+ if ((*info)->stat_fp)
+ fclose((*info)->stat_fp);
+ if ((*info)->stat_buf)
+ free((*info)->stat_buf);
+
+ if ((*info)->cpus.anchor)
+ free((*info)->cpus.anchor);
+ if ((*info)->cpus.result.stacks)
+ free((*info)->cpus.result.stacks);
+ if ((*info)->cpus.hist.tics)
+ free((*info)->cpus.hist.tics);
+ if ((*info)->cpus.fetch.extents)
+ stat_extents_free_all(&(*info)->cpus.fetch);
+
+ if ((*info)->nodes.anchor)
+ free((*info)->nodes.anchor);
+ if ((*info)->nodes.result.stacks)
+ free((*info)->nodes.result.stacks);
+ if ((*info)->nodes.hist.tics)
+ free((*info)->nodes.hist.tics);
+ if ((*info)->nodes.fetch.extents)
+ stat_extents_free_all(&(*info)->nodes.fetch);
+
+ if ((*info)->cpu_summary.extents)
+ stat_extents_free_all(&(*info)->cpu_summary);
+
+ if ((*info)->select.extents)
+ stat_extents_free_all(&(*info)->select);
+
+ if ((*info)->reap_items.enums)
+ free((*info)->reap_items.enums);
+ if ((*info)->select_items.enums)
+ free((*info)->select_items.enums);
+
+ if ((*info)->cores) {
+ struct stat_core *next, *this = (*info)->cores;
+ while (this) {
+ next = this->next;
+ free(this);
+ this = next;
+ };
+ }
+
+ numa_uninit();
+
+ free(*info);
+ *info = NULL;
+
+ errno = errno_sav;
+ return 0;
+ }
+ return (*info)->refcount;
+} // end: procps_stat_unref
+
+
+// --- variable interface functions -------------------------------------------
+
+PROCPS_EXPORT struct stat_result *procps_stat_get (
+ struct stat_info *info,
+ enum stat_item item)
+{
+ time_t cur_secs;
+
+ errno = EINVAL;
+ if (info == NULL)
+ return NULL;
+ if (item < 0 || item >= STAT_logical_end)
+ return NULL;
+ errno = 0;
+
+ /* we will NOT read the source file with every call - rather, we'll offer
+ a granularity of 1 second between reads ... */
+ cur_secs = time(NULL);
+ if (1 <= cur_secs - info->sav_secs) {
+ if (stat_read_failed(info))
+ return NULL;
+ info->sav_secs = cur_secs;
+ }
+
+ info->get_this.item = item;
+ // with 'get', we must NOT honor the usual 'noop' guarantee
+ info->get_this.result.ull_int = 0;
+ Item_table[item].setsfunc(&info->get_this, &info->sys_hist, &info->cpu_hist);
+
+ return &info->get_this;
+} // end: procps_stat_get
+
+
+/* procps_stat_reap():
+ *
+ * Harvest all the requested NUMA NODE and/or CPU information providing the
+ * result stacks along with totals and the cpu summary.
+ *
+ * Returns: pointer to a stat_reaped struct on success, NULL on error.
+ */
+PROCPS_EXPORT struct stat_reaped *procps_stat_reap (
+ struct stat_info *info,
+ enum stat_reap_type what,
+ enum stat_item *items,
+ int numitems)
+{
+ int rc;
+
+ errno = EINVAL;
+ if (info == NULL || items == NULL)
+ return NULL;
+ if (what != STAT_REAP_CPUS_ONLY && what != STAT_REAP_NUMA_NODES_TOO)
+ return NULL;
+
+#ifdef ENFORCE_LOGICAL
+{ int i;
+ // those STAT_SYS_type enum's make sense only to 'select' ...
+ for (i = 0; i < numitems; i++) {
+ if (items[i] > STAT_TIC_highest)
+ return NULL;
+ }
+}
+#endif
+ if (0 > (rc = stat_stacks_reconfig_maybe(&info->cpu_summary, items, numitems)))
+ return NULL; // here, errno may be overridden with ENOMEM
+ if (rc) {
+ stat_extents_free_all(&info->cpus.fetch);
+ stat_extents_free_all(&info->nodes.fetch);
+ }
+ errno = 0;
+
+ if (stat_read_failed(info))
+ return NULL;
+ info->results.summary = stat_update_single_stack(info, &info->cpu_summary);
+
+ /* unlike the other 'reap' functions, <stat> provides for two separate |
+ stacks pointer arrays exposed to callers. Thus, to keep our promise |
+ of NULL delimit we must ensure a minimal array for the optional one | */
+ if (!info->nodes.result.stacks
+ && (!(info->nodes.result.stacks = malloc(sizeof(void *)))))
+ return NULL;
+ info->nodes.result.total = 0;
+ info->nodes.result.stacks[0] = NULL;
+
+ switch (what) {
+ case STAT_REAP_CPUS_ONLY:
+ if (0 > stat_stacks_fetch(info, &info->cpus))
+ return NULL;
+ break;
+ case STAT_REAP_NUMA_NODES_TOO:
+ /* note: if we're doing numa at all, we must do this numa history |
+ before we build (fetch) cpu stacks since that stat_read_failed |
+ guy always marks (temporarily) all the cpu node ids as invalid | */
+ if (0 > stat_make_numa_hist(info))
+ return NULL;
+ if (0 > stat_stacks_fetch(info, &info->nodes))
+ return NULL;
+ if (0 > stat_stacks_fetch(info, &info->cpus))
+ return NULL;
+ break;
+ default:
+ return NULL;
+ };
+
+ return &info->results;
+} // end: procps_stat_reap
+
+
+/* procps_stat_select():
+ *
+ * Harvest all the requested TIC and/or SYS information then return
+ * it in a results stack.
+ *
+ * Returns: pointer to a stat_stack struct on success, NULL on error.
+ */
+PROCPS_EXPORT struct stat_stack *procps_stat_select (
+ struct stat_info *info,
+ enum stat_item *items,
+ int numitems)
+{
+ errno = EINVAL;
+ if (info == NULL || items == NULL)
+ return NULL;
+ if (0 > stat_stacks_reconfig_maybe(&info->select, items, numitems))
+ return NULL; // here, errno may be overridden with ENOMEM
+ errno = 0;
+
+ if (stat_read_failed(info))
+ return NULL;
+
+ return stat_update_single_stack(info, &info->select);
+} // end: procps_stat_select
+
+
+/*
+ * procps_stat_sort():
+ *
+ * Sort stacks anchored in the passed stack pointers array
+ * based on the designated sort enumerator and specified order.
+ *
+ * Returns those same addresses sorted.
+ *
+ * Note: all of the stacks must be homogeneous (of equal length and content).
+ */
+PROCPS_EXPORT struct stat_stack **procps_stat_sort (
+ struct stat_info *info,
+ struct stat_stack *stacks[],
+ int numstacked,
+ enum stat_item sortitem,
+ enum stat_sort_order order)
+{
+ struct stat_result *p;
+ struct sort_parms parms;
+ int offset;
+
+ errno = EINVAL;
+ if (info == NULL || stacks == NULL)
+ return NULL;
+ // a stat_item is currently unsigned, but we'll protect our future
+ if (sortitem < 0 || sortitem >= STAT_logical_end)
+ return NULL;
+ if (order != STAT_SORT_ASCEND && order != STAT_SORT_DESCEND)
+ return NULL;
+ if (numstacked < 2)
+ return stacks;
+
+ offset = 0;
+ p = stacks[0]->head;
+ for (;;) {
+ if (p->item == sortitem)
+ break;
+ ++offset;
+ if (p->item >= STAT_logical_end)
+ return NULL;
+ ++p;
+ }
+ errno = 0;
+
+ parms.offset = offset;
+ parms.order = order;
+
+ qsort_r(stacks, numstacked, sizeof(void *), (QSR_t)Item_table[p->item].sortfunc, &parms);
+ return stacks;
+} // end: procps_stat_sort
+
+
+// --- special debugging function(s) ------------------------------------------
+/*
+ * The following isn't part of the normal programming interface. Rather,
+ * it exists to validate result types referenced in application programs.
+ *
+ * It's used only when:
+ * 1) the 'XTRA_PROCPS_DEBUG' has been defined, or
+ * 2) an #include of 'xtra-procps-debug.h' is used
+ */
+
+PROCPS_EXPORT struct stat_result *xtra_stat_get (
+ struct stat_info *info,
+ enum stat_item actual_enum,
+ const char *typestr,
+ const char *file,
+ int lineno)
+{
+ struct stat_result *r = procps_stat_get(info, actual_enum);
+
+ if (actual_enum < 0 || actual_enum >= STAT_logical_end) {
+ fprintf(stderr, "%s line %d: invalid item = %d, type = %s\n"
+ , file, lineno, actual_enum, typestr);
+ }
+ if (r) {
+ char *str = Item_table[r->item].type2str;
+ if (str[0]
+ && (strcmp(typestr, str)))
+ fprintf(stderr, "%s line %d: was %s, expected %s\n", file, lineno, typestr, str);
+ }
+ return r;
+} // end: xtra_stat_get_
+
+
+PROCPS_EXPORT struct stat_result *xtra_stat_val (
+ int relative_enum,
+ const char *typestr,
+ const struct stat_stack *stack,
+ struct stat_info *info,
+ const char *file,
+ int lineno)
+{
+ char *str;
+ int i;
+
+ for (i = 0; stack->head[i].item < STAT_logical_end; i++)
+ ;
+ if (relative_enum < 0 || relative_enum >= i) {
+ fprintf(stderr, "%s line %d: invalid relative_enum = %d, valid range = 0-%d\n"
+ , file, lineno, relative_enum, i-1);
+ return NULL;
+ }
+ str = Item_table[stack->head[relative_enum].item].type2str;
+ if (str[0]
+ && (strcmp(typestr, str))) {
+ fprintf(stderr, "%s line %d: was %s, expected %s\n", file, lineno, typestr, str);
+ }
+ return &stack->head[relative_enum];
+ (void)info;
+} // end: xtra_stat_val
diff --git a/library/sysinfo.c b/library/sysinfo.c
new file mode 100644
index 0000000..35a9922
--- /dev/null
+++ b/library/sysinfo.c
@@ -0,0 +1,167 @@
+/*
+ * File for parsing top-level /proc entities.
+ *
+ * Copyright © 2011-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2011-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 1998-2008 Albert Cahalan
+ * Copyright © 1992-1998 Michael K. Johnson <johnsonm@redhat.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <ctype.h>
+#include <locale.h>
+#include <errno.h>
+
+#include <unistd.h>
+#include <fcntl.h>
+#ifdef __CYGWIN__
+#include <sys/param.h>
+#endif
+#include "misc.h"
+#include "procps-private.h"
+
+
+#define LOADAVG_FILE "/proc/loadavg"
+
+/* evals 'x' twice */
+#define SET_IF_DESIRED(x,y) do{ if(x) *(x) = (y); }while(0)
+
+/* return minimum of two values */
+#ifndef __CYGWIN__
+#define MIN(x,y) ((x) < (y) ? (x) : (y))
+#endif
+
+/*
+ * procps_hertz_get:
+ *
+ *
+ * Some values in /proc are expressed in units of 1/HZ seconds, where HZ
+ * is the kernel clock tick rate. One of these units is called a jiffy.
+ * The HZ value used in the kernel may vary according to hacker desire.
+ *
+ * On some architectures, the kernel provides an ELF note to indicate
+ * HZ.
+ *
+ * Returns:
+ * The discovered or assumed hertz value
+ */
+PROCPS_EXPORT long procps_hertz_get(void)
+{
+ long hz;
+
+#ifdef _SC_CLK_TCK
+ if ((hz = sysconf(_SC_CLK_TCK)) > 0)
+ return hz;
+#endif
+#ifdef HZ
+ return(HZ);
+#endif
+ /* Last resort, assume 100 */
+ return 100;
+}
+
+/*
+ * procps_loadavg:
+ * @av1: location to store 1 minute load average
+ * @av5: location to store 5 minute load average
+ * @av15: location to store 15 minute load average
+ *
+ * Find the 1,5 and 15 minute load average of the system
+ *
+ * Returns: 0 on success <0 on error
+ */
+PROCPS_EXPORT int procps_loadavg(
+ double *restrict av1,
+ double *restrict av5,
+ double *restrict av15)
+{
+ double avg_1=0, avg_5=0, avg_15=0;
+ locale_t tmplocale;
+ int retval=0;
+ FILE *fp;
+
+ if ((fp = fopen(LOADAVG_FILE, "r")) == NULL)
+ return -errno;
+
+ tmplocale = newlocale(LC_NUMERIC_MASK, "C", (locale_t)0);
+ uselocale(tmplocale);
+ if (fscanf(fp, "%lf %lf %lf", &avg_1, &avg_5, &avg_15) < 3)
+ retval = -ERANGE;
+
+ fclose(fp);
+ uselocale(LC_GLOBAL_LOCALE);
+ freelocale(tmplocale);
+ SET_IF_DESIRED(av1, avg_1);
+ SET_IF_DESIRED(av5, avg_5);
+ SET_IF_DESIRED(av15, avg_15);
+ return retval;
+}
+
+/////////////////////////////////////////////////////////////////////////////
+
+#define PROCFS_PID_MAX "/proc/sys/kernel/pid_max"
+#define DEFAULT_PID_LENGTH 5
+
+/*
+ * procps_pid_length
+ *
+ * Return the length of the maximum possible pid.
+ *
+ * Returns either the strlen of PROCFS_PID_MAX or the
+ * best-guess DEFAULT_PID_LENGTH
+ */
+PROCPS_EXPORT unsigned int procps_pid_length(void)
+{
+ FILE *fp;
+ char pidbuf[24];
+ static __thread int pid_length=0;
+
+ if (pid_length)
+ return pid_length;
+
+ pid_length = DEFAULT_PID_LENGTH;
+ if ((fp = fopen(PROCFS_PID_MAX, "r")) != NULL) {
+ if (fgets(pidbuf, sizeof(pidbuf), fp) != NULL) {
+ pid_length = strlen(pidbuf);
+ if (pidbuf[pid_length-1] == '\n')
+ --pid_length;
+ }
+ fclose(fp);
+ }
+ return pid_length;
+}
+
+///////////////////////////////////////////////////////////////////////////
+
+/* procps_cpu_count:
+ *
+ * Returns the number of CPUs that are currently online.
+ *
+ */
+long procps_cpu_count(void)
+{
+ long cpus;
+
+ cpus = sysconf(_SC_NPROCESSORS_ONLN);
+ if (cpus < 1)
+ return 1;
+ return cpus;
+}
+
diff --git a/library/tests/test_Itemtables.c b/library/tests/test_Itemtables.c
new file mode 100644
index 0000000..4204700
--- /dev/null
+++ b/library/tests/test_Itemtables.c
@@ -0,0 +1,91 @@
+/*
+ * libprocps - Library to read proc filesystem
+ * Tests for Item_table/enumerator synchronization
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <stdlib.h>
+
+#include "diskstats.h"
+#include "meminfo.h"
+#include "pids.h"
+#include "slabinfo.h"
+#include "stat.h"
+#include "vmstat.h"
+
+#include "tests.h"
+
+static int check_diskstats (void *data) {
+ struct diskstats_info *ctx = NULL;
+ testname = "Itemtable check, diskstats";
+ if (0 == procps_diskstats_new(&ctx))
+ procps_diskstats_unref(&ctx);
+ return 1;
+}
+
+static int check_meminfo (void *data) {
+ struct meminfo_info *ctx = NULL;
+ testname = "Itemtable check, meminfo";
+ if (0 == procps_meminfo_new(&ctx))
+ procps_meminfo_unref(&ctx);
+ return 1;
+}
+
+static int check_pids (void *data) {
+ struct pids_info *ctx = NULL;
+ testname = "Itemtable check, pids";
+ if (0 == procps_pids_new(&ctx, NULL, 0))
+ procps_pids_unref(&ctx);
+ return 1;
+}
+
+static int check_slabinfo (void *data) {
+ struct slabinfo_info *ctx = NULL;
+ testname = "Itemtable check, slabinfo";
+ if (0 == procps_slabinfo_new(&ctx))
+ procps_slabinfo_unref(&ctx);
+ return 1;
+}
+
+static int check_stat (void *data) {
+ struct stat_info *ctx = NULL;
+ testname = "Itemtable check, stat";
+ if (0 == procps_stat_new(&ctx))
+ procps_stat_unref(&ctx);
+ return 1;
+}
+
+static int check_vmstat (void *data) {
+ struct vmstat_info *ctx = NULL;
+ testname = "Itemtable check, vmstat";
+ if (0 == procps_vmstat_new(&ctx))
+ procps_vmstat_unref(&ctx);
+ return 1;
+}
+
+static TestFunction test_funcs[] = {
+ check_diskstats,
+ check_meminfo,
+ check_pids,
+ check_slabinfo,
+ check_stat,
+ check_vmstat,
+ NULL
+};
+
+int main (void) {
+ return run_tests(test_funcs, NULL);
+}
diff --git a/library/tests/test_namespace.c b/library/tests/test_namespace.c
new file mode 100644
index 0000000..2c55c4f
--- /dev/null
+++ b/library/tests/test_namespace.c
@@ -0,0 +1,76 @@
+/*
+ * libprocps - Library to read proc filesystem
+ * Tests for namespace library calls
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "misc.h"
+#include "tests.h"
+
+int check_name_minus(void *data)
+{
+ testname = "procps_ns_get_name() negative id";
+ return (procps_ns_get_name(-1) == NULL);
+}
+
+int check_name_over(void *data)
+{
+ testname = "procps_ns_get_name() id over limit";
+ return (procps_ns_get_name(999) == NULL);
+}
+
+int check_name_ipc(void *data)
+{
+ testname = "procps_ns_get_name() ipc";
+ return (strcmp(procps_ns_get_name(PROCPS_NS_IPC),"ipc")==0);
+}
+
+int check_id_null(void *data)
+{
+ testname = "procps_ns_get_id(NULL)";
+ return (procps_ns_get_id(NULL) < 0);
+}
+
+int check_id_unfound(void *data)
+{
+ testname = "procps_ns_get_id(unknown)";
+ return (procps_ns_get_id("foobar") < 0);
+}
+
+int check_id_mnt(void *data)
+{
+ testname = "procps_ns_get_id(mnt)";
+ return (procps_ns_get_id("mnt") == PROCPS_NS_MNT);
+}
+
+TestFunction test_funcs[] = {
+ check_name_minus,
+ check_name_over,
+ check_name_ipc,
+ check_id_null,
+ check_id_unfound,
+ check_id_mnt,
+ NULL
+};
+
+int main(int argc, char *argv[])
+{
+ return run_tests(test_funcs, NULL);
+}
+
diff --git a/library/tests/test_pids.c b/library/tests/test_pids.c
new file mode 100644
index 0000000..eda0b73
--- /dev/null
+++ b/library/tests/test_pids.c
@@ -0,0 +1,75 @@
+/*
+ * libprocps - Library to read proc filesystem
+ * Tests for pids library calls
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+#include <stdlib.h>
+#include <stdio.h>
+#include <errno.h>
+
+#include "pids.h"
+#include "tests.h"
+
+enum pids_item items[] = { PIDS_ID_PID, PIDS_ID_PID };
+enum pids_item items2[] = { PIDS_ID_PID, PIDS_VM_RSS };
+
+int check_pids_new_nullinfo(void *data)
+{
+ testname = "procps_pids_new() info=NULL returns -EINVAL";
+ return (procps_pids_new(NULL, items, 0) == -EINVAL);
+}
+
+int check_pids_new_toomany(void *data)
+{
+ struct pids_info *info;
+ testname = "procps_pids_new() too many items returns -EINVAL";
+ return (procps_pids_new(&info, items, 1) == -EINVAL);
+}
+
+int check_pids_new_and_unref(void *data)
+{
+ struct pids_info *info = NULL;
+ testname = "procps_pids new then unref";
+ return ( (procps_pids_new(&info, items, 2) == 0) &&
+ (procps_pids_unref(&info) == 0) &&
+ info == NULL);
+}
+
+int check_fatal_proc_unmounted(void *data)
+{
+ struct pids_info *info = NULL;
+ struct pids_stack *stack;
+ testname = "check_fatal_proc_unmounted";
+
+ return ( (procps_pids_new(&info, items2, 2) == 0) &&
+ ( (stack = fatal_proc_unmounted(info, 1)) != NULL) &&
+ ( PIDS_VAL(0, s_int, stack, info) > 0) &&
+ ( PIDS_VAL(1, ul_int, stack, info) > 0));
+}
+
+TestFunction test_funcs[] = {
+ check_pids_new_nullinfo,
+ // skipped, ask Jim check_pids_new_toomany,
+ check_pids_new_and_unref,
+ check_fatal_proc_unmounted,
+ NULL };
+
+int main(int argc, char *argv[])
+{
+ return run_tests(test_funcs, NULL);
+}
+
+
diff --git a/library/tests/test_sysinfo.c b/library/tests/test_sysinfo.c
new file mode 100644
index 0000000..8390ccd
--- /dev/null
+++ b/library/tests/test_sysinfo.c
@@ -0,0 +1,64 @@
+/*
+ * libprocps - Library to read proc filesystem
+ * Tests for sysinfo library calls
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+#include <stdlib.h>
+#include <stdio.h>
+
+#include "misc.h"
+#include "tests.h"
+
+int check_hertz(void *data)
+{
+ long hz;
+ testname = "procps_hertz_get()";
+
+ hz = procps_hertz_get();
+ return (hz > 0);
+}
+
+int check_loadavg(void *data)
+{
+ double a,b,c;
+ testname = "procps_loadavg()";
+
+ if (procps_loadavg(&a, &b, &c) == 0)
+ return 1;
+ return (a>0 && b>0 && c>0);
+}
+
+int check_loadavg_null(void *data)
+{
+ testname = "procps_loadavg() with NULLs";
+ if (procps_loadavg(NULL, NULL, NULL) == 0)
+ return 1;
+ return 0;
+}
+
+TestFunction test_funcs[] = {
+ check_hertz,
+ check_loadavg,
+ check_loadavg_null,
+ NULL,
+};
+
+int main(int argc, char *argv[])
+{
+ return run_tests(test_funcs, NULL);
+}
+
+
diff --git a/library/tests/test_uptime.c b/library/tests/test_uptime.c
new file mode 100644
index 0000000..35d3e2e
--- /dev/null
+++ b/library/tests/test_uptime.c
@@ -0,0 +1,97 @@
+/*
+ * libprocps - Library to read proc filesystem
+ * Tests for version library calls
+ *
+ * Copyright 2016 Craig Small <csmall@dropbear.xyz>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+#include <stdlib.h>
+#include <stdio.h>
+
+#include "misc.h"
+#include "tests.h"
+
+int check_uptime(void *data)
+{
+ testname = "procps_uptime()";
+ double up=0, idle=0;
+ int rc;
+ rc = procps_uptime(&up, &idle);
+ return (rc == 0 && up > 0 && idle > 0);
+}
+
+int check_uptime_nullup(void *data)
+{
+ double idle=0;
+ int rc;
+ testname = "procps_uptime() (up=NULL)";
+ rc = procps_uptime(NULL, &idle);
+ return (rc == 0 && idle > 0);
+}
+
+int check_uptime_nullidle(void *data)
+{
+ double up=0;
+ int rc;
+ testname = "procps_uptime() (idle=NULL)";
+ rc = procps_uptime(&up, NULL);
+ return (rc == 0 && up > 0);
+}
+
+int check_uptime_nullall(void *data)
+{
+ int rc;
+ testname = "procps_uptime() (up,idle=NULL)";
+ rc = procps_uptime(NULL, NULL);
+ return (rc == 0);
+}
+
+int check_uptime_sprint(void *data)
+{
+ char *str;
+ testname = "procps_uptime_sprint()";
+
+ str = procps_uptime_sprint();
+
+ return (str != NULL && str[0] != '\0');
+}
+
+int check_uptime_sprint_short(void *data)
+{
+ char *str;
+ testname = "procps_uptime_sprint_short()";
+
+ str = procps_uptime_sprint_short();
+
+ return (str != NULL && str[0] != '\0');
+}
+
+TestFunction test_funcs[] = {
+ check_uptime,
+ check_uptime_nullup,
+ check_uptime_nullidle,
+ check_uptime_nullall,
+ check_uptime_sprint,
+ check_uptime_sprint_short,
+ NULL,
+};
+
+int main(int argc, char *argv[])
+{
+ return run_tests(test_funcs, NULL);
+}
+
+
diff --git a/library/tests/test_version.c b/library/tests/test_version.c
new file mode 100644
index 0000000..f2f5e1f
--- /dev/null
+++ b/library/tests/test_version.c
@@ -0,0 +1,72 @@
+/*
+ * libprocps - Library to read proc filesystem
+ * Tests for version library calls
+ *
+ * Copyright 2016 Craig Small <csmall@dropbear.xyz>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+#include <stdlib.h>
+#include <stdio.h>
+
+#include "misc.h"
+#include "tests.h"
+
+int check_linux_version(void *data)
+{
+ testname = "procps_linux_version()";
+ return (procps_linux_version() > 0);
+}
+
+int check_conversion(void *data)
+{
+ testname = "LINUX_VERSION macro";
+ struct testvals {
+ int retval;
+ int major, minor, patch;
+ };
+
+ struct testvals *tv;
+ struct testvals tvs[] = {
+ { 132096, 2, 4, 0 },
+ { 132635, 2, 6, 27 },
+ { 199936, 3, 13, 0 },
+ { 263426, 4, 5, 2 },
+ { 0, 0, 0, 0}
+ };
+
+ for (tv=tvs; tv->major != 0; tv++)
+ {
+ if (LINUX_VERSION(tv->major, tv->minor, tv->patch) != tv->retval) {
+ fprintf(stderr, "Failed %d != %d\n", LINUX_VERSION(tv->major, tv->minor,
+ tv->patch), tv->retval);
+ return 0;
+ }
+ }
+ return 1;
+}
+
+TestFunction test_funcs[] = {
+ check_conversion,
+ check_linux_version,
+ NULL
+};
+
+int main(int argc, char *argv[])
+{
+ return run_tests(test_funcs, NULL);
+}
+
+
diff --git a/library/uptime.c b/library/uptime.c
new file mode 100644
index 0000000..1826343
--- /dev/null
+++ b/library/uptime.c
@@ -0,0 +1,268 @@
+/*
+ * uptime - uptime related functions - part of libproc2
+ *
+ * Copyright © 2015-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2015-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 1998-2003 Albert Cahalan
+ * Copyright © 1992-1998 Michael K. Johnson <johnsonm@redhat.com>
+ * Copyright © 1993 J. Cowley
+ * Copyright © ???? Larry Greenfield <greenfie@gauss.rutgers.edu>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <errno.h>
+#include <locale.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <unistd.h>
+#include <utmp.h>
+#ifdef WITH_SYSTEMD
+#include <systemd/sd-daemon.h>
+#include <systemd/sd-login.h>
+#endif
+#ifdef WITH_ELOGIND
+#include <elogind/sd-daemon.h>
+#include <elogind/sd-login.h>
+#endif
+
+#include "misc.h"
+#include "procps-private.h"
+
+#define UPTIME_FILE "/proc/uptime"
+
+static __thread char upbuf[256];
+static __thread char shortbuf[256];
+
+static int count_users(void)
+{
+ int numuser = 0;
+ struct utmp *ut;
+
+#if defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)
+ if (sd_booted() > 0)
+ return sd_get_sessions(NULL);
+#endif
+
+ setutent();
+ while ((ut = getutent())) {
+ if ((ut->ut_type == USER_PROCESS) && (ut->ut_name[0] != '\0'))
+ numuser++;
+ }
+ endutent();
+
+ return numuser;
+}
+
+/*
+ * uptime:
+ *
+ * Find the uptime and idle time of the system.
+ * These numbers are found in /proc/uptime
+ * Unlike other procps functions this closes the file each time
+ * Either uptime_secs or idle_secs can be null
+ *
+ * Returns: 0 on success and <0 on failure
+ */
+PROCPS_EXPORT int procps_uptime(
+ double *restrict uptime_secs,
+ double *restrict idle_secs)
+{
+ double up=0, idle=0;
+ locale_t tmplocale;
+ FILE *fp;
+ int rc;
+
+ if ((fp = fopen(UPTIME_FILE, "r")) == NULL)
+ return -errno;
+
+ tmplocale = newlocale(LC_NUMERIC_MASK, "C", (locale_t)0);
+ uselocale(tmplocale);
+ rc = fscanf(fp, "%lf %lf", &up, &idle);
+ fclose(fp);
+ uselocale(LC_GLOBAL_LOCALE);
+ freelocale(tmplocale);
+
+ if (uptime_secs)
+ *uptime_secs = up;
+ if (idle_secs)
+ *idle_secs = idle;
+
+ if (rc < 2)
+ return -ERANGE;
+ return 0;
+}
+
+/*
+ * procps_uptime_sprint:
+ *
+ * Print current time in nice format
+ *
+ * Returns a statically allocated upbuf or NULL on error
+ */
+PROCPS_EXPORT char *procps_uptime_sprint(void)
+{
+ int upminutes, uphours, updays, users;
+ int pos;
+ time_t realseconds;
+ struct tm realtime;
+ double uptime_secs, idle_secs;
+ double av1, av5, av15;
+
+ upbuf[0] = '\0';
+ if (time(&realseconds) < 0)
+ return upbuf;
+ localtime_r(&realseconds, &realtime);
+
+ if (procps_uptime(&uptime_secs, &idle_secs) < 0)
+ return upbuf;
+
+ updays = ((int) uptime_secs / (60*60*24));
+ uphours = ((int) uptime_secs / (60*60)) % 24;
+ upminutes = ((int) uptime_secs / (60)) % 60;
+
+ pos = sprintf(upbuf, " %02d:%02d:%02d up ",
+ realtime.tm_hour, realtime.tm_min, realtime.tm_sec);
+
+ if (updays)
+ pos += sprintf(upbuf + pos, "%d %s, ", updays, (updays > 1) ? "days" : "day");
+
+ if (uphours)
+ pos += sprintf(upbuf + pos, "%2d:%02d, ", uphours, upminutes);
+ else
+ pos += sprintf(upbuf + pos, "%d min, ", upminutes);
+
+ users = count_users();
+ procps_loadavg(&av1, &av5, &av15);
+
+ if (users < 0)
+ pos += sprintf(upbuf + pos, " ? ");
+ else
+ pos += sprintf(upbuf + pos, "%2d ", users);
+
+ pos += sprintf(upbuf + pos, "%s, load average: %.2f, %.2f, %.2f",
+ users > 1 ? "users" : "user",
+ av1, av5, av15);
+
+ return upbuf;
+}
+
+/*
+ * procps_uptime_sprint_short:
+ *
+ * Print current time in nice format
+ *
+ * Returns a statically allocated buffer or NULL on error
+ */
+PROCPS_EXPORT char *procps_uptime_sprint_short(void)
+{
+ int updecades, upyears, upweeks, updays, uphours = 0, upminutes = 0;
+ int pos = 3;
+ int comma = 0;
+ double uptime_secs, idle_secs;
+
+ shortbuf[0] = '\0';
+ if (procps_uptime(&uptime_secs, &idle_secs) < 0)
+ return shortbuf;
+
+ if (uptime_secs>60*60*24*365*10) {
+ updecades = (int) uptime_secs / (60*60*24*365*10);
+ uptime_secs -= updecades*60*60*24*365*10;
+ }
+ else {
+ updecades = 0;
+ }
+ if (uptime_secs>60*60*24*365) {
+ upyears = (int) uptime_secs / (60*60*24*365);
+ uptime_secs -= upyears*60*60*24*365;
+ }
+ else {
+ upyears = 0;
+ }
+ if (uptime_secs>60*60*24*7) {
+ upweeks = (int) uptime_secs / (60*60*24*7);
+ uptime_secs -= upweeks*60*60*24*7;
+ }
+ else {
+ upweeks = 0;
+ }
+ if (uptime_secs>60*60*24) {
+ updays = (int) uptime_secs / (60*60*24);
+ uptime_secs -= updays*60*60*24;
+ }
+ else {
+ updays = 0;
+ }
+ if (uptime_secs>60*60) {
+ uphours = (int) uptime_secs / (60*60);
+ uptime_secs -= uphours*60*60;
+ }
+ if (uptime_secs>60) {
+ upminutes = (int) uptime_secs / 60;
+ uptime_secs -= upminutes*60;
+ }
+ /*updecades = (int) uptime_secs / (60*60*24*365*10);
+ upyears = ((int) uptime_secs / (60*60*24*365)) % 10;
+ upweeks = ((int) uptime_secs / (60*60*24*7)) % 52;
+ updays = ((int) uptime_secs / (60*60*24)) % 7;
+ uphours = ((int) uptime_secs / (60*60)) % 24;
+ upminutes = ((int) uptime_secs / (60)) % 60;
+*/
+ strcat(shortbuf, "up ");
+
+ if (updecades) {
+ pos += sprintf(shortbuf + pos, "%d %s",
+ updecades, updecades > 1 ? "decades" : "decade");
+ comma += 1;
+ }
+
+ if (upyears) {
+ pos += sprintf(shortbuf + pos, "%s%d %s",
+ comma > 0 ? ", " : "", upyears,
+ upyears > 1 ? "years" : "year");
+ comma += 1;
+ }
+
+ if (upweeks) {
+ pos += sprintf(shortbuf + pos, "%s%d %s",
+ comma > 0 ? ", " : "", upweeks,
+ upweeks > 1 ? "weeks" : "week");
+ comma += 1;
+ }
+
+ if (updays) {
+ pos += sprintf(shortbuf + pos, "%s%d %s",
+ comma > 0 ? ", " : "", updays,
+ updays > 1 ? "days" : "day");
+ comma += 1;
+ }
+
+ if (uphours) {
+ pos += sprintf(shortbuf + pos, "%s%d %s",
+ comma > 0 ? ", " : "", uphours,
+ uphours > 1 ? "hours" : "hour");
+ comma += 1;
+ }
+
+ if (upminutes || (!upminutes && uptime_secs < 60)) {
+ pos += sprintf(shortbuf + pos, "%s%d %s",
+ comma > 0 ? ", " : "", upminutes,
+ upminutes != 1 ? "minutes" : "minute");
+ comma += 1;
+ }
+ return shortbuf;
+}
diff --git a/library/version.c b/library/version.c
new file mode 100644
index 0000000..eab3404
--- /dev/null
+++ b/library/version.c
@@ -0,0 +1,71 @@
+/*
+ * libproc2 - Library to read proc filesystem
+ *
+ * Copyright © 2002-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2013-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2011-2012 Sami Kerola <kerolasa@iki.fi>
+ * Copyright © 2002-2003 Albert Cahalan
+ * Copyright © 1996 Charles Blake <cblake@bbn.com>
+ * Copyright © 1995 Martin Schulze <joey@infodrom.north.de>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+#include <errno.h>
+#include <stdio.h>
+#include "misc.h"
+#include "procps-private.h"
+
+#ifdef __CYGWIN__
+#define PROCFS_OSRELEASE "/proc/version"
+#define PROCFS_OSPATTERN "%*s version %u.%u.%u"
+#else
+#define PROCFS_OSRELEASE "/proc/sys/kernel/osrelease"
+#define PROCFS_OSPATTERN "%u.%u.%u"
+#endif
+
+/*
+ * procps_linux_version
+ *
+ * Return the current running Linux version release as shown in
+ * the procps filesystem.
+ *
+ * There are three ways you can get OS release:
+ * 1) /proc/sys/kernel/osrelease - returns correct version of procfs
+ * 2) /proc/version - returns version of kernel e.g. BSD this is wrong
+ * 3) uname and uts.release - same as /proc/version field #3
+ *
+ * Returns: version as an integer
+ * Negative value means an error
+ */
+PROCPS_EXPORT int procps_linux_version(void)
+{
+ FILE *fp;
+ char buf[256];
+ unsigned int x = 0, y = 0, z = 0;
+ int version_string_depth;
+
+ if ((fp = fopen(PROCFS_OSRELEASE, "r")) == NULL)
+ return -errno;
+ if (fgets(buf, 256, fp) == NULL) {
+ fclose(fp);
+ return -EIO;
+ }
+ fclose(fp);
+ version_string_depth = sscanf(buf, PROCFS_OSPATTERN, &x, &y, &z);
+ if ((version_string_depth < 2) || /* Non-standard for all known kernels */
+ ((version_string_depth < 3) && (x < 3))) /* Non-standard for 2.x.x kernels */
+ return -ERANGE;
+ return LINUX_VERSION(x,y,z);
+}
diff --git a/library/vmstat.c b/library/vmstat.c
new file mode 100644
index 0000000..f9ae715
--- /dev/null
+++ b/library/vmstat.c
@@ -0,0 +1,1513 @@
+/*
+ * vmstat.c - virtual memory related definitions for libproc2
+ *
+ * Copyright © 2015-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2015-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2003 Albert Cahalan
+ * Copyright © 1996 Charles Blake <cblake@bbn.com>
+ * Copyright © 1995 Martin Schulze <joey@infodrom.north.de>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <search.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <unistd.h>
+
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include "procps-private.h"
+#include "vmstat.h"
+
+
+#define VMSTAT_FILE "/proc/vmstat"
+#define VMSTAT_BUFF 8192
+
+/* ------------------------------------------------------------- +
+ this provision can be used to help ensure that our Item_table |
+ was synchronized with the enumerators found in the associated |
+ header file. It's intended to be used locally (& temporarily) |
+ at least once at some point prior to publishing new releases! | */
+// #define ITEMTABLE_DEBUG //----------------------------------- |
+// ------------------------------------------------------------- +
+
+/*
+ * Perhaps someday we'll all learn what is in these fields. But |
+ * that might require available linux documentation progressing |
+ * beyond a state that was acknowledged in the following thread |
+ *
+ * http://www.spinics.net/lists/linux-man/msg09096.html
+ */
+struct vmstat_data {
+ unsigned long allocstall_dma;
+ unsigned long allocstall_dma32;
+ unsigned long allocstall_high;
+ unsigned long allocstall_movable;
+ unsigned long allocstall_normal;
+ unsigned long balloon_deflate;
+ unsigned long balloon_inflate;
+ unsigned long balloon_migrate;
+ unsigned long compact_daemon_free_scanned;
+ unsigned long compact_daemon_migrate_scanned;
+ unsigned long compact_daemon_wake;
+ unsigned long compact_fail;
+ unsigned long compact_free_scanned;
+ unsigned long compact_isolated;
+ unsigned long compact_migrate_scanned;
+ unsigned long compact_stall;
+ unsigned long compact_success;
+ unsigned long drop_pagecache;
+ unsigned long drop_slab;
+ unsigned long htlb_buddy_alloc_fail;
+ unsigned long htlb_buddy_alloc_success;
+ unsigned long kswapd_high_wmark_hit_quickly;
+ unsigned long kswapd_inodesteal;
+ unsigned long kswapd_low_wmark_hit_quickly;
+ unsigned long nr_active_anon;
+ unsigned long nr_active_file;
+ unsigned long nr_anon_pages;
+ unsigned long nr_anon_transparent_hugepages;
+ unsigned long nr_bounce;
+ unsigned long nr_dirtied;
+ unsigned long nr_dirty;
+ unsigned long nr_dirty_background_threshold;
+ unsigned long nr_dirty_threshold;
+ unsigned long nr_file_hugepages;
+ unsigned long nr_file_pages;
+ unsigned long nr_file_pmdmapped;
+ unsigned long nr_foll_pin_acquired;
+ unsigned long nr_foll_pin_released;
+ unsigned long nr_free_cma;
+ unsigned long nr_free_pages;
+ unsigned long nr_inactive_anon;
+ unsigned long nr_inactive_file;
+ unsigned long nr_isolated_anon;
+ unsigned long nr_isolated_file;
+ unsigned long nr_kernel_misc_reclaimable;
+ unsigned long nr_kernel_stack;
+ unsigned long nr_mapped;
+ unsigned long nr_mlock;
+ unsigned long nr_page_table_pages;
+ unsigned long nr_shadow_call_stack;
+ unsigned long nr_shmem;
+ unsigned long nr_shmem_hugepages;
+ unsigned long nr_shmem_pmdmapped;
+ unsigned long nr_slab_reclaimable;
+ unsigned long nr_slab_unreclaimable;
+/* nr_tlb_local_flush_all; CONFIG_DEBUG_TLBFLUSH only */
+/* nr_tlb_local_flush_one; CONFIG_DEBUG_TLBFLUSH only */
+/* nr_tlb_remote_flush; CONFIG_DEBUG_TLBFLUSH only */
+/* nr_tlb_remote_flush_received; CONFIG_DEBUG_TLBFLUSH only */
+ unsigned long nr_unevictable;
+ unsigned long nr_unstable;
+ unsigned long nr_vmscan_immediate_reclaim;
+ unsigned long nr_vmscan_write;
+ unsigned long nr_writeback;
+ unsigned long nr_writeback_temp;
+ unsigned long nr_written;
+ unsigned long nr_zone_active_anon;
+ unsigned long nr_zone_active_file;
+ unsigned long nr_zone_inactive_anon;
+ unsigned long nr_zone_inactive_file;
+ unsigned long nr_zone_unevictable;
+ unsigned long nr_zone_write_pending;
+ unsigned long nr_zspages;
+ unsigned long numa_foreign;
+ unsigned long numa_hint_faults;
+ unsigned long numa_hint_faults_local;
+ unsigned long numa_hit;
+ unsigned long numa_huge_pte_updates;
+ unsigned long numa_interleave;
+ unsigned long numa_local;
+ unsigned long numa_miss;
+ unsigned long numa_other;
+ unsigned long numa_pages_migrated;
+ unsigned long numa_pte_updates;
+ unsigned long oom_kill;
+ unsigned long pageoutrun;
+ unsigned long pgactivate;
+ unsigned long pgalloc_dma;
+ unsigned long pgalloc_dma32;
+ unsigned long pgalloc_high;
+ unsigned long pgalloc_movable;
+ unsigned long pgalloc_normal;
+ unsigned long pgdeactivate;
+ unsigned long pgfault;
+ unsigned long pgfree;
+ unsigned long pginodesteal;
+ unsigned long pglazyfree;
+ unsigned long pglazyfreed;
+ unsigned long pgmajfault;
+ unsigned long pgmigrate_fail;
+ unsigned long pgmigrate_success;
+ unsigned long pgpgin;
+ unsigned long pgpgout;
+ unsigned long pgrefill;
+ unsigned long pgrotated;
+ unsigned long pgscan_anon;
+ unsigned long pgscan_direct;
+ unsigned long pgscan_direct_throttle;
+ unsigned long pgscan_file;
+ unsigned long pgscan_kswapd;
+ unsigned long pgskip_dma;
+ unsigned long pgskip_dma32;
+ unsigned long pgskip_high;
+ unsigned long pgskip_movable;
+ unsigned long pgskip_normal;
+ unsigned long pgsteal_anon;
+ unsigned long pgsteal_direct;
+ unsigned long pgsteal_file;
+ unsigned long pgsteal_kswapd;
+ unsigned long pswpin;
+ unsigned long pswpout;
+ unsigned long slabs_scanned;
+ unsigned long swap_ra;
+ unsigned long swap_ra_hit;
+ unsigned long thp_collapse_alloc;
+ unsigned long thp_collapse_alloc_failed;
+ unsigned long thp_deferred_split_page;
+ unsigned long thp_fault_alloc;
+ unsigned long thp_fault_fallback;
+ unsigned long thp_fault_fallback_charge;
+ unsigned long thp_file_alloc;
+ unsigned long thp_file_fallback;
+ unsigned long thp_file_fallback_charge;
+ unsigned long thp_file_mapped;
+ unsigned long thp_split_page;
+ unsigned long thp_split_page_failed;
+ unsigned long thp_split_pmd;
+ unsigned long thp_split_pud;
+ unsigned long thp_swpout;
+ unsigned long thp_swpout_fallback;
+ unsigned long thp_zero_page_alloc;
+ unsigned long thp_zero_page_alloc_failed;
+ unsigned long unevictable_pgs_cleared;
+ unsigned long unevictable_pgs_culled;
+ unsigned long unevictable_pgs_mlocked;
+ unsigned long unevictable_pgs_munlocked;
+ unsigned long unevictable_pgs_rescued;
+ unsigned long unevictable_pgs_scanned;
+ unsigned long unevictable_pgs_stranded;
+/* vmacache_find_calls; CONFIG_DEBUG_VM_VMACACHE only */
+/* vmacache_find_hits; CONFIG_DEBUG_VM_VMACACHE only */
+ unsigned long workingset_activate;
+ unsigned long workingset_nodereclaim;
+ unsigned long workingset_nodes;
+ unsigned long workingset_refault;
+ unsigned long workingset_restore;
+ unsigned long zone_reclaim_failed;
+};
+
+struct vmstat_hist {
+ struct vmstat_data new;
+ struct vmstat_data old;
+};
+
+struct stacks_extent {
+ int ext_numstacks;
+ struct stacks_extent *next;
+ struct vmstat_stack **stacks;
+};
+
+struct vmstat_info {
+ int refcount;
+ int vmstat_fd;
+ struct vmstat_hist hist;
+ int numitems;
+ enum vmstat_item *items;
+ struct stacks_extent *extents;
+ struct hsearch_data hashtab;
+ struct vmstat_result get_this;
+ time_t sav_secs;
+};
+
+
+// ___ Results 'Set' Support ||||||||||||||||||||||||||||||||||||||||||||||||||
+
+#define setNAME(e) set_vmstat_ ## e
+#define setDECL(e) static void setNAME(e) \
+ (struct vmstat_result *R, struct vmstat_hist *H)
+
+// regular assignment
+#define REG_set(e,x) setDECL(e) { R->result.ul_int = H->new. x; }
+// delta assignment
+#define HST_set(e,x) setDECL(e) { R->result.sl_int = ( H->new. x - H->old. x ); }
+
+setDECL(noop) { (void)R; (void)H; }
+setDECL(extra) { (void)H; R->result.ul_int = 0; }
+
+REG_set(ALLOCSTALL_DMA, allocstall_dma)
+REG_set(ALLOCSTALL_DMA32, allocstall_dma32)
+REG_set(ALLOCSTALL_HIGH, allocstall_high)
+REG_set(ALLOCSTALL_MOVABLE, allocstall_movable)
+REG_set(ALLOCSTALL_NORMAL, allocstall_normal)
+REG_set(BALLOON_DEFLATE, balloon_deflate)
+REG_set(BALLOON_INFLATE, balloon_inflate)
+REG_set(BALLOON_MIGRATE, balloon_migrate)
+REG_set(COMPACT_DAEMON_FREE_SCANNED, compact_daemon_free_scanned)
+REG_set(COMPACT_DAEMON_MIGRATE_SCANNED, compact_daemon_migrate_scanned)
+REG_set(COMPACT_DAEMON_WAKE, compact_daemon_wake)
+REG_set(COMPACT_FAIL, compact_fail)
+REG_set(COMPACT_FREE_SCANNED, compact_free_scanned)
+REG_set(COMPACT_ISOLATED, compact_isolated)
+REG_set(COMPACT_MIGRATE_SCANNED, compact_migrate_scanned)
+REG_set(COMPACT_STALL, compact_stall)
+REG_set(COMPACT_SUCCESS, compact_success)
+REG_set(DROP_PAGECACHE, drop_pagecache)
+REG_set(DROP_SLAB, drop_slab)
+REG_set(HTLB_BUDDY_ALLOC_FAIL, htlb_buddy_alloc_fail)
+REG_set(HTLB_BUDDY_ALLOC_SUCCESS, htlb_buddy_alloc_success)
+REG_set(KSWAPD_HIGH_WMARK_HIT_QUICKLY, kswapd_high_wmark_hit_quickly)
+REG_set(KSWAPD_INODESTEAL, kswapd_inodesteal)
+REG_set(KSWAPD_LOW_WMARK_HIT_QUICKLY, kswapd_low_wmark_hit_quickly)
+REG_set(NR_ACTIVE_ANON, nr_active_anon)
+REG_set(NR_ACTIVE_FILE, nr_active_file)
+REG_set(NR_ANON_PAGES, nr_anon_pages)
+REG_set(NR_ANON_TRANSPARENT_HUGEPAGES, nr_anon_transparent_hugepages)
+REG_set(NR_BOUNCE, nr_bounce)
+REG_set(NR_DIRTIED, nr_dirtied)
+REG_set(NR_DIRTY, nr_dirty)
+REG_set(NR_DIRTY_BACKGROUND_THRESHOLD, nr_dirty_background_threshold)
+REG_set(NR_DIRTY_THRESHOLD, nr_dirty_threshold)
+REG_set(NR_FILE_HUGEPAGES, nr_file_hugepages)
+REG_set(NR_FILE_PAGES, nr_file_pages)
+REG_set(NR_FILE_PMDMAPPED, nr_file_pmdmapped)
+REG_set(NR_FOLL_PIN_ACQUIRED, nr_foll_pin_acquired)
+REG_set(NR_FOLL_PIN_RELEASED, nr_foll_pin_released)
+REG_set(NR_FREE_CMA, nr_free_cma)
+REG_set(NR_FREE_PAGES, nr_free_pages)
+REG_set(NR_INACTIVE_ANON, nr_inactive_anon)
+REG_set(NR_INACTIVE_FILE, nr_inactive_file)
+REG_set(NR_ISOLATED_ANON, nr_isolated_anon)
+REG_set(NR_ISOLATED_FILE, nr_isolated_file)
+REG_set(NR_KERNEL_MISC_RECLAIMABLE, nr_kernel_misc_reclaimable)
+REG_set(NR_KERNEL_STACK, nr_kernel_stack)
+REG_set(NR_MAPPED, nr_mapped)
+REG_set(NR_MLOCK, nr_mlock)
+REG_set(NR_PAGE_TABLE_PAGES, nr_page_table_pages)
+REG_set(NR_SHADOW_CALL_STACK, nr_shadow_call_stack)
+REG_set(NR_SHMEM, nr_shmem)
+REG_set(NR_SHMEM_HUGEPAGES, nr_shmem_hugepages)
+REG_set(NR_SHMEM_PMDMAPPED, nr_shmem_pmdmapped)
+REG_set(NR_SLAB_RECLAIMABLE, nr_slab_reclaimable)
+REG_set(NR_SLAB_UNRECLAIMABLE, nr_slab_unreclaimable)
+REG_set(NR_UNEVICTABLE, nr_unevictable)
+REG_set(NR_UNSTABLE, nr_unstable)
+REG_set(NR_VMSCAN_IMMEDIATE_RECLAIM, nr_vmscan_immediate_reclaim)
+REG_set(NR_VMSCAN_WRITE, nr_vmscan_write)
+REG_set(NR_WRITEBACK, nr_writeback)
+REG_set(NR_WRITEBACK_TEMP, nr_writeback_temp)
+REG_set(NR_WRITTEN, nr_written)
+REG_set(NR_ZONE_ACTIVE_ANON, nr_zone_active_anon)
+REG_set(NR_ZONE_ACTIVE_FILE, nr_zone_active_file)
+REG_set(NR_ZONE_INACTIVE_ANON, nr_zone_inactive_anon)
+REG_set(NR_ZONE_INACTIVE_FILE, nr_zone_inactive_file)
+REG_set(NR_ZONE_UNEVICTABLE, nr_zone_unevictable)
+REG_set(NR_ZONE_WRITE_PENDING, nr_zone_write_pending)
+REG_set(NR_ZSPAGES, nr_zspages)
+REG_set(NUMA_FOREIGN, numa_foreign)
+REG_set(NUMA_HINT_FAULTS, numa_hint_faults)
+REG_set(NUMA_HINT_FAULTS_LOCAL, numa_hint_faults_local)
+REG_set(NUMA_HIT, numa_hit)
+REG_set(NUMA_HUGE_PTE_UPDATES, numa_huge_pte_updates)
+REG_set(NUMA_INTERLEAVE, numa_interleave)
+REG_set(NUMA_LOCAL, numa_local)
+REG_set(NUMA_MISS, numa_miss)
+REG_set(NUMA_OTHER, numa_other)
+REG_set(NUMA_PAGES_MIGRATED, numa_pages_migrated)
+REG_set(NUMA_PTE_UPDATES, numa_pte_updates)
+REG_set(OOM_KILL, oom_kill)
+REG_set(PAGEOUTRUN, pageoutrun)
+REG_set(PGACTIVATE, pgactivate)
+REG_set(PGALLOC_DMA, pgalloc_dma)
+REG_set(PGALLOC_DMA32, pgalloc_dma32)
+REG_set(PGALLOC_HIGH, pgalloc_high)
+REG_set(PGALLOC_MOVABLE, pgalloc_movable)
+REG_set(PGALLOC_NORMAL, pgalloc_normal)
+REG_set(PGDEACTIVATE, pgdeactivate)
+REG_set(PGFAULT, pgfault)
+REG_set(PGFREE, pgfree)
+REG_set(PGINODESTEAL, pginodesteal)
+REG_set(PGLAZYFREE, pglazyfree)
+REG_set(PGLAZYFREED, pglazyfreed)
+REG_set(PGMAJFAULT, pgmajfault)
+REG_set(PGMIGRATE_FAIL, pgmigrate_fail)
+REG_set(PGMIGRATE_SUCCESS, pgmigrate_success)
+REG_set(PGPGIN, pgpgin)
+REG_set(PGPGOUT, pgpgout)
+REG_set(PGREFILL, pgrefill)
+REG_set(PGROTATED, pgrotated)
+REG_set(PGSCAN_ANON, pgscan_anon)
+REG_set(PGSCAN_DIRECT, pgscan_direct)
+REG_set(PGSCAN_DIRECT_THROTTLE, pgscan_direct_throttle)
+REG_set(PGSCAN_FILE, pgscan_file)
+REG_set(PGSCAN_KSWAPD, pgscan_kswapd)
+REG_set(PGSKIP_DMA, pgskip_dma)
+REG_set(PGSKIP_DMA32, pgskip_dma32)
+REG_set(PGSKIP_HIGH, pgskip_high)
+REG_set(PGSKIP_MOVABLE, pgskip_movable)
+REG_set(PGSKIP_NORMAL, pgskip_normal)
+REG_set(PGSTEAL_ANON, pgsteal_anon)
+REG_set(PGSTEAL_DIRECT, pgsteal_direct)
+REG_set(PGSTEAL_FILE, pgsteal_file)
+REG_set(PGSTEAL_KSWAPD, pgsteal_kswapd)
+REG_set(PSWPIN, pswpin)
+REG_set(PSWPOUT, pswpout)
+REG_set(SLABS_SCANNED, slabs_scanned)
+REG_set(SWAP_RA, swap_ra)
+REG_set(SWAP_RA_HIT, swap_ra_hit)
+REG_set(THP_COLLAPSE_ALLOC, thp_collapse_alloc)
+REG_set(THP_COLLAPSE_ALLOC_FAILED, thp_collapse_alloc_failed)
+REG_set(THP_DEFERRED_SPLIT_PAGE, thp_deferred_split_page)
+REG_set(THP_FAULT_ALLOC, thp_fault_alloc)
+REG_set(THP_FAULT_FALLBACK, thp_fault_fallback)
+REG_set(THP_FAULT_FALLBACK_CHARGE, thp_fault_fallback_charge)
+REG_set(THP_FILE_ALLOC, thp_file_alloc)
+REG_set(THP_FILE_FALLBACK, thp_file_fallback)
+REG_set(THP_FILE_FALLBACK_CHARGE, thp_file_fallback_charge)
+REG_set(THP_FILE_MAPPED, thp_file_mapped)
+REG_set(THP_SPLIT_PAGE, thp_split_page)
+REG_set(THP_SPLIT_PAGE_FAILED, thp_split_page_failed)
+REG_set(THP_SPLIT_PMD, thp_split_pmd)
+REG_set(THP_SPLIT_PUD, thp_split_pud)
+REG_set(THP_SWPOUT, thp_swpout)
+REG_set(THP_SWPOUT_FALLBACK, thp_swpout_fallback)
+REG_set(THP_ZERO_PAGE_ALLOC, thp_zero_page_alloc)
+REG_set(THP_ZERO_PAGE_ALLOC_FAILED, thp_zero_page_alloc_failed)
+REG_set(UNEVICTABLE_PGS_CLEARED, unevictable_pgs_cleared)
+REG_set(UNEVICTABLE_PGS_CULLED, unevictable_pgs_culled)
+REG_set(UNEVICTABLE_PGS_MLOCKED, unevictable_pgs_mlocked)
+REG_set(UNEVICTABLE_PGS_MUNLOCKED, unevictable_pgs_munlocked)
+REG_set(UNEVICTABLE_PGS_RESCUED, unevictable_pgs_rescued)
+REG_set(UNEVICTABLE_PGS_SCANNED, unevictable_pgs_scanned)
+REG_set(UNEVICTABLE_PGS_STRANDED, unevictable_pgs_stranded)
+REG_set(WORKINGSET_ACTIVATE, workingset_activate)
+REG_set(WORKINGSET_NODERECLAIM, workingset_nodereclaim)
+REG_set(WORKINGSET_NODES, workingset_nodes)
+REG_set(WORKINGSET_REFAULT, workingset_refault)
+REG_set(WORKINGSET_RESTORE, workingset_restore)
+REG_set(ZONE_RECLAIM_FAILED, zone_reclaim_failed)
+
+HST_set(DELTA_ALLOCSTALL_DMA, allocstall_dma)
+HST_set(DELTA_ALLOCSTALL_DMA32, allocstall_dma32)
+HST_set(DELTA_ALLOCSTALL_HIGH, allocstall_high)
+HST_set(DELTA_ALLOCSTALL_MOVABLE, allocstall_movable)
+HST_set(DELTA_ALLOCSTALL_NORMAL, allocstall_normal)
+HST_set(DELTA_BALLOON_DEFLATE, balloon_deflate)
+HST_set(DELTA_BALLOON_INFLATE, balloon_inflate)
+HST_set(DELTA_BALLOON_MIGRATE, balloon_migrate)
+HST_set(DELTA_COMPACT_DAEMON_FREE_SCANNED, compact_daemon_free_scanned)
+HST_set(DELTA_COMPACT_DAEMON_MIGRATE_SCANNED, compact_daemon_migrate_scanned)
+HST_set(DELTA_COMPACT_DAEMON_WAKE, compact_daemon_wake)
+HST_set(DELTA_COMPACT_FAIL, compact_fail)
+HST_set(DELTA_COMPACT_FREE_SCANNED, compact_free_scanned)
+HST_set(DELTA_COMPACT_ISOLATED, compact_isolated)
+HST_set(DELTA_COMPACT_MIGRATE_SCANNED, compact_migrate_scanned)
+HST_set(DELTA_COMPACT_STALL, compact_stall)
+HST_set(DELTA_COMPACT_SUCCESS, compact_success)
+HST_set(DELTA_DROP_PAGECACHE, drop_pagecache)
+HST_set(DELTA_DROP_SLAB, drop_slab)
+HST_set(DELTA_HTLB_BUDDY_ALLOC_FAIL, htlb_buddy_alloc_fail)
+HST_set(DELTA_HTLB_BUDDY_ALLOC_SUCCESS, htlb_buddy_alloc_success)
+HST_set(DELTA_KSWAPD_HIGH_WMARK_HIT_QUICKLY, kswapd_high_wmark_hit_quickly)
+HST_set(DELTA_KSWAPD_INODESTEAL, kswapd_inodesteal)
+HST_set(DELTA_KSWAPD_LOW_WMARK_HIT_QUICKLY, kswapd_low_wmark_hit_quickly)
+HST_set(DELTA_NR_ACTIVE_ANON, nr_active_anon)
+HST_set(DELTA_NR_ACTIVE_FILE, nr_active_file)
+HST_set(DELTA_NR_ANON_PAGES, nr_anon_pages)
+HST_set(DELTA_NR_ANON_TRANSPARENT_HUGEPAGES, nr_anon_transparent_hugepages)
+HST_set(DELTA_NR_BOUNCE, nr_bounce)
+HST_set(DELTA_NR_DIRTIED, nr_dirtied)
+HST_set(DELTA_NR_DIRTY, nr_dirty)
+HST_set(DELTA_NR_DIRTY_BACKGROUND_THRESHOLD, nr_dirty_background_threshold)
+HST_set(DELTA_NR_DIRTY_THRESHOLD, nr_dirty_threshold)
+HST_set(DELTA_NR_FILE_HUGEPAGES, nr_file_hugepages)
+HST_set(DELTA_NR_FILE_PAGES, nr_file_pages)
+HST_set(DELTA_NR_FILE_PMDMAPPED, nr_file_pmdmapped)
+HST_set(DELTA_NR_FOLL_PIN_ACQUIRED, nr_foll_pin_acquired)
+HST_set(DELTA_NR_FOLL_PIN_RELEASED, nr_foll_pin_released)
+HST_set(DELTA_NR_FREE_CMA, nr_free_cma)
+HST_set(DELTA_NR_FREE_PAGES, nr_free_pages)
+HST_set(DELTA_NR_INACTIVE_ANON, nr_inactive_anon)
+HST_set(DELTA_NR_INACTIVE_FILE, nr_inactive_file)
+HST_set(DELTA_NR_ISOLATED_ANON, nr_isolated_anon)
+HST_set(DELTA_NR_ISOLATED_FILE, nr_isolated_file)
+HST_set(DELTA_NR_KERNEL_MISC_RECLAIMABLE, nr_kernel_misc_reclaimable)
+HST_set(DELTA_NR_KERNEL_STACK, nr_kernel_stack)
+HST_set(DELTA_NR_MAPPED, nr_mapped)
+HST_set(DELTA_NR_MLOCK, nr_mlock)
+HST_set(DELTA_NR_PAGE_TABLE_PAGES, nr_page_table_pages)
+HST_set(DELTA_NR_SHADOW_CALL_STACK, nr_shadow_call_stack)
+HST_set(DELTA_NR_SHMEM, nr_shmem)
+HST_set(DELTA_NR_SHMEM_HUGEPAGES, nr_shmem_hugepages)
+HST_set(DELTA_NR_SHMEM_PMDMAPPED, nr_shmem_pmdmapped)
+HST_set(DELTA_NR_SLAB_RECLAIMABLE, nr_slab_reclaimable)
+HST_set(DELTA_NR_SLAB_UNRECLAIMABLE, nr_slab_unreclaimable)
+HST_set(DELTA_NR_UNEVICTABLE, nr_unevictable)
+HST_set(DELTA_NR_UNSTABLE, nr_unstable)
+HST_set(DELTA_NR_VMSCAN_IMMEDIATE_RECLAIM, nr_vmscan_immediate_reclaim)
+HST_set(DELTA_NR_VMSCAN_WRITE, nr_vmscan_write)
+HST_set(DELTA_NR_WRITEBACK, nr_writeback)
+HST_set(DELTA_NR_WRITEBACK_TEMP, nr_writeback_temp)
+HST_set(DELTA_NR_WRITTEN, nr_written)
+HST_set(DELTA_NR_ZONE_ACTIVE_ANON, nr_zone_active_anon)
+HST_set(DELTA_NR_ZONE_ACTIVE_FILE, nr_zone_active_file)
+HST_set(DELTA_NR_ZONE_INACTIVE_ANON, nr_zone_inactive_anon)
+HST_set(DELTA_NR_ZONE_INACTIVE_FILE, nr_zone_inactive_file)
+HST_set(DELTA_NR_ZONE_UNEVICTABLE, nr_zone_unevictable)
+HST_set(DELTA_NR_ZONE_WRITE_PENDING, nr_zone_write_pending)
+HST_set(DELTA_NR_ZSPAGES, nr_zspages)
+HST_set(DELTA_NUMA_FOREIGN, numa_foreign)
+HST_set(DELTA_NUMA_HINT_FAULTS, numa_hint_faults)
+HST_set(DELTA_NUMA_HINT_FAULTS_LOCAL, numa_hint_faults_local)
+HST_set(DELTA_NUMA_HIT, numa_hit)
+HST_set(DELTA_NUMA_HUGE_PTE_UPDATES, numa_huge_pte_updates)
+HST_set(DELTA_NUMA_INTERLEAVE, numa_interleave)
+HST_set(DELTA_NUMA_LOCAL, numa_local)
+HST_set(DELTA_NUMA_MISS, numa_miss)
+HST_set(DELTA_NUMA_OTHER, numa_other)
+HST_set(DELTA_NUMA_PAGES_MIGRATED, numa_pages_migrated)
+HST_set(DELTA_NUMA_PTE_UPDATES, numa_pte_updates)
+HST_set(DELTA_OOM_KILL, oom_kill)
+HST_set(DELTA_PAGEOUTRUN, pageoutrun)
+HST_set(DELTA_PGACTIVATE, pgactivate)
+HST_set(DELTA_PGALLOC_DMA, pgalloc_dma)
+HST_set(DELTA_PGALLOC_DMA32, pgalloc_dma32)
+HST_set(DELTA_PGALLOC_HIGH, pgalloc_high)
+HST_set(DELTA_PGALLOC_MOVABLE, pgalloc_movable)
+HST_set(DELTA_PGALLOC_NORMAL, pgalloc_normal)
+HST_set(DELTA_PGDEACTIVATE, pgdeactivate)
+HST_set(DELTA_PGFAULT, pgfault)
+HST_set(DELTA_PGFREE, pgfree)
+HST_set(DELTA_PGINODESTEAL, pginodesteal)
+HST_set(DELTA_PGLAZYFREE, pglazyfree)
+HST_set(DELTA_PGLAZYFREED, pglazyfreed)
+HST_set(DELTA_PGMAJFAULT, pgmajfault)
+HST_set(DELTA_PGMIGRATE_FAIL, pgmigrate_fail)
+HST_set(DELTA_PGMIGRATE_SUCCESS, pgmigrate_success)
+HST_set(DELTA_PGPGIN, pgpgin)
+HST_set(DELTA_PGPGOUT, pgpgout)
+HST_set(DELTA_PGREFILL, pgrefill)
+HST_set(DELTA_PGROTATED, pgrotated)
+HST_set(DELTA_PGSCAN_ANON, pgscan_anon)
+HST_set(DELTA_PGSCAN_DIRECT, pgscan_direct)
+HST_set(DELTA_PGSCAN_DIRECT_THROTTLE, pgscan_direct_throttle)
+HST_set(DELTA_PGSCAN_FILE, pgscan_file)
+HST_set(DELTA_PGSCAN_KSWAPD, pgscan_kswapd)
+HST_set(DELTA_PGSKIP_DMA, pgskip_dma)
+HST_set(DELTA_PGSKIP_DMA32, pgskip_dma32)
+HST_set(DELTA_PGSKIP_HIGH, pgskip_high)
+HST_set(DELTA_PGSKIP_MOVABLE, pgskip_movable)
+HST_set(DELTA_PGSKIP_NORMAL, pgskip_normal)
+HST_set(DELTA_PGSTEAL_ANON, pgsteal_anon)
+HST_set(DELTA_PGSTEAL_DIRECT, pgsteal_direct)
+HST_set(DELTA_PGSTEAL_FILE, pgsteal_file)
+HST_set(DELTA_PGSTEAL_KSWAPD, pgsteal_kswapd)
+HST_set(DELTA_PSWPIN, pswpin)
+HST_set(DELTA_PSWPOUT, pswpout)
+HST_set(DELTA_SLABS_SCANNED, slabs_scanned)
+HST_set(DELTA_SWAP_RA, swap_ra)
+HST_set(DELTA_SWAP_RA_HIT, swap_ra_hit)
+HST_set(DELTA_THP_COLLAPSE_ALLOC, thp_collapse_alloc)
+HST_set(DELTA_THP_COLLAPSE_ALLOC_FAILED, thp_collapse_alloc_failed)
+HST_set(DELTA_THP_DEFERRED_SPLIT_PAGE, thp_deferred_split_page)
+HST_set(DELTA_THP_FAULT_ALLOC, thp_fault_alloc)
+HST_set(DELTA_THP_FAULT_FALLBACK, thp_fault_fallback)
+HST_set(DELTA_THP_FAULT_FALLBACK_CHARGE, thp_fault_fallback_charge)
+HST_set(DELTA_THP_FILE_ALLOC, thp_file_alloc)
+HST_set(DELTA_THP_FILE_FALLBACK, thp_file_fallback)
+HST_set(DELTA_THP_FILE_FALLBACK_CHARGE, thp_file_fallback_charge)
+HST_set(DELTA_THP_FILE_MAPPED, thp_file_mapped)
+HST_set(DELTA_THP_SPLIT_PAGE, thp_split_page)
+HST_set(DELTA_THP_SPLIT_PAGE_FAILED, thp_split_page_failed)
+HST_set(DELTA_THP_SPLIT_PMD, thp_split_pmd)
+HST_set(DELTA_THP_SPLIT_PUD, thp_split_pud)
+HST_set(DELTA_THP_SWPOUT, thp_swpout)
+HST_set(DELTA_THP_SWPOUT_FALLBACK, thp_swpout_fallback)
+HST_set(DELTA_THP_ZERO_PAGE_ALLOC, thp_zero_page_alloc)
+HST_set(DELTA_THP_ZERO_PAGE_ALLOC_FAILED, thp_zero_page_alloc_failed)
+HST_set(DELTA_UNEVICTABLE_PGS_CLEARED, unevictable_pgs_cleared)
+HST_set(DELTA_UNEVICTABLE_PGS_CULLED, unevictable_pgs_culled)
+HST_set(DELTA_UNEVICTABLE_PGS_MLOCKED, unevictable_pgs_mlocked)
+HST_set(DELTA_UNEVICTABLE_PGS_MUNLOCKED, unevictable_pgs_munlocked)
+HST_set(DELTA_UNEVICTABLE_PGS_RESCUED, unevictable_pgs_rescued)
+HST_set(DELTA_UNEVICTABLE_PGS_SCANNED, unevictable_pgs_scanned)
+HST_set(DELTA_UNEVICTABLE_PGS_STRANDED, unevictable_pgs_stranded)
+HST_set(DELTA_WORKINGSET_ACTIVATE, workingset_activate)
+HST_set(DELTA_WORKINGSET_NODERECLAIM, workingset_nodereclaim)
+HST_set(DELTA_WORKINGSET_NODES, workingset_nodes)
+HST_set(DELTA_WORKINGSET_REFAULT, workingset_refault)
+HST_set(DELTA_WORKINGSET_RESTORE, workingset_restore)
+HST_set(DELTA_ZONE_RECLAIM_FAILED, zone_reclaim_failed)
+
+#undef setDECL
+#undef REG_set
+#undef HST_set
+
+
+// ___ Controlling Table ||||||||||||||||||||||||||||||||||||||||||||||||||||||
+
+typedef void (*SET_t)(struct vmstat_result *, struct vmstat_hist *);
+#ifdef ITEMTABLE_DEBUG
+#define RS(e) (SET_t)setNAME(e), VMSTAT_ ## e, STRINGIFY(VMSTAT_ ## e)
+#else
+#define RS(e) (SET_t)setNAME(e)
+#endif
+
+#define TS(t) STRINGIFY(t)
+#define TS_noop ""
+
+ /*
+ * Need it be said?
+ * This table must be kept in the exact same order as
+ * those 'enum vmstat_item' guys ! */
+static struct {
+ SET_t setsfunc; // the actual result setting routine
+#ifdef ITEMTABLE_DEBUG
+ int enumnumb; // enumerator (must match position!)
+ char *enum2str; // enumerator name as a char* string
+#endif
+ char *type2str; // the result type as a string value
+} Item_table[] = {
+/* setsfunc type2str
+ ----------------------------------------- ---------- */
+ { RS(noop), TS_noop },
+ { RS(extra), TS_noop },
+
+ { RS(ALLOCSTALL_DMA), TS(ul_int) },
+ { RS(ALLOCSTALL_DMA32), TS(ul_int) },
+ { RS(ALLOCSTALL_HIGH), TS(ul_int) },
+ { RS(ALLOCSTALL_MOVABLE), TS(ul_int) },
+ { RS(ALLOCSTALL_NORMAL), TS(ul_int) },
+ { RS(BALLOON_DEFLATE), TS(ul_int) },
+ { RS(BALLOON_INFLATE), TS(ul_int) },
+ { RS(BALLOON_MIGRATE), TS(ul_int) },
+ { RS(COMPACT_DAEMON_FREE_SCANNED), TS(ul_int) },
+ { RS(COMPACT_DAEMON_MIGRATE_SCANNED), TS(ul_int) },
+ { RS(COMPACT_DAEMON_WAKE), TS(ul_int) },
+ { RS(COMPACT_FAIL), TS(ul_int) },
+ { RS(COMPACT_FREE_SCANNED), TS(ul_int) },
+ { RS(COMPACT_ISOLATED), TS(ul_int) },
+ { RS(COMPACT_MIGRATE_SCANNED), TS(ul_int) },
+ { RS(COMPACT_STALL), TS(ul_int) },
+ { RS(COMPACT_SUCCESS), TS(ul_int) },
+ { RS(DROP_PAGECACHE), TS(ul_int) },
+ { RS(DROP_SLAB), TS(ul_int) },
+ { RS(HTLB_BUDDY_ALLOC_FAIL), TS(ul_int) },
+ { RS(HTLB_BUDDY_ALLOC_SUCCESS), TS(ul_int) },
+ { RS(KSWAPD_HIGH_WMARK_HIT_QUICKLY), TS(ul_int) },
+ { RS(KSWAPD_INODESTEAL), TS(ul_int) },
+ { RS(KSWAPD_LOW_WMARK_HIT_QUICKLY), TS(ul_int) },
+ { RS(NR_ACTIVE_ANON), TS(ul_int) },
+ { RS(NR_ACTIVE_FILE), TS(ul_int) },
+ { RS(NR_ANON_PAGES), TS(ul_int) },
+ { RS(NR_ANON_TRANSPARENT_HUGEPAGES), TS(ul_int) },
+ { RS(NR_BOUNCE), TS(ul_int) },
+ { RS(NR_DIRTIED), TS(ul_int) },
+ { RS(NR_DIRTY), TS(ul_int) },
+ { RS(NR_DIRTY_BACKGROUND_THRESHOLD), TS(ul_int) },
+ { RS(NR_DIRTY_THRESHOLD), TS(ul_int) },
+ { RS(NR_FILE_HUGEPAGES), TS(ul_int) },
+ { RS(NR_FILE_PAGES), TS(ul_int) },
+ { RS(NR_FILE_PMDMAPPED), TS(ul_int) },
+ { RS(NR_FOLL_PIN_ACQUIRED), TS(ul_int) },
+ { RS(NR_FOLL_PIN_RELEASED), TS(ul_int) },
+ { RS(NR_FREE_CMA), TS(ul_int) },
+ { RS(NR_FREE_PAGES), TS(ul_int) },
+ { RS(NR_INACTIVE_ANON), TS(ul_int) },
+ { RS(NR_INACTIVE_FILE), TS(ul_int) },
+ { RS(NR_ISOLATED_ANON), TS(ul_int) },
+ { RS(NR_ISOLATED_FILE), TS(ul_int) },
+ { RS(NR_KERNEL_MISC_RECLAIMABLE), TS(ul_int) },
+ { RS(NR_KERNEL_STACK), TS(ul_int) },
+ { RS(NR_MAPPED), TS(ul_int) },
+ { RS(NR_MLOCK), TS(ul_int) },
+ { RS(NR_PAGE_TABLE_PAGES), TS(ul_int) },
+ { RS(NR_SHADOW_CALL_STACK), TS(ul_int) },
+ { RS(NR_SHMEM), TS(ul_int) },
+ { RS(NR_SHMEM_HUGEPAGES), TS(ul_int) },
+ { RS(NR_SHMEM_PMDMAPPED), TS(ul_int) },
+ { RS(NR_SLAB_RECLAIMABLE), TS(ul_int) },
+ { RS(NR_SLAB_UNRECLAIMABLE), TS(ul_int) },
+ { RS(NR_UNEVICTABLE), TS(ul_int) },
+ { RS(NR_UNSTABLE), TS(ul_int) },
+ { RS(NR_VMSCAN_IMMEDIATE_RECLAIM), TS(ul_int) },
+ { RS(NR_VMSCAN_WRITE), TS(ul_int) },
+ { RS(NR_WRITEBACK), TS(ul_int) },
+ { RS(NR_WRITEBACK_TEMP), TS(ul_int) },
+ { RS(NR_WRITTEN), TS(ul_int) },
+ { RS(NR_ZONE_ACTIVE_ANON), TS(ul_int) },
+ { RS(NR_ZONE_ACTIVE_FILE), TS(ul_int) },
+ { RS(NR_ZONE_INACTIVE_ANON), TS(ul_int) },
+ { RS(NR_ZONE_INACTIVE_FILE), TS(ul_int) },
+ { RS(NR_ZONE_UNEVICTABLE), TS(ul_int) },
+ { RS(NR_ZONE_WRITE_PENDING), TS(ul_int) },
+ { RS(NR_ZSPAGES), TS(ul_int) },
+ { RS(NUMA_FOREIGN), TS(ul_int) },
+ { RS(NUMA_HINT_FAULTS), TS(ul_int) },
+ { RS(NUMA_HINT_FAULTS_LOCAL), TS(ul_int) },
+ { RS(NUMA_HIT), TS(ul_int) },
+ { RS(NUMA_HUGE_PTE_UPDATES), TS(ul_int) },
+ { RS(NUMA_INTERLEAVE), TS(ul_int) },
+ { RS(NUMA_LOCAL), TS(ul_int) },
+ { RS(NUMA_MISS), TS(ul_int) },
+ { RS(NUMA_OTHER), TS(ul_int) },
+ { RS(NUMA_PAGES_MIGRATED), TS(ul_int) },
+ { RS(NUMA_PTE_UPDATES), TS(ul_int) },
+ { RS(OOM_KILL), TS(ul_int) },
+ { RS(PAGEOUTRUN), TS(ul_int) },
+ { RS(PGACTIVATE), TS(ul_int) },
+ { RS(PGALLOC_DMA), TS(ul_int) },
+ { RS(PGALLOC_DMA32), TS(ul_int) },
+ { RS(PGALLOC_HIGH), TS(ul_int) },
+ { RS(PGALLOC_MOVABLE), TS(ul_int) },
+ { RS(PGALLOC_NORMAL), TS(ul_int) },
+ { RS(PGDEACTIVATE), TS(ul_int) },
+ { RS(PGFAULT), TS(ul_int) },
+ { RS(PGFREE), TS(ul_int) },
+ { RS(PGINODESTEAL), TS(ul_int) },
+ { RS(PGLAZYFREE), TS(ul_int) },
+ { RS(PGLAZYFREED), TS(ul_int) },
+ { RS(PGMAJFAULT), TS(ul_int) },
+ { RS(PGMIGRATE_FAIL), TS(ul_int) },
+ { RS(PGMIGRATE_SUCCESS), TS(ul_int) },
+ { RS(PGPGIN), TS(ul_int) },
+ { RS(PGPGOUT), TS(ul_int) },
+ { RS(PGREFILL), TS(ul_int) },
+ { RS(PGROTATED), TS(ul_int) },
+ { RS(PGSCAN_ANON), TS(ul_int) },
+ { RS(PGSCAN_DIRECT), TS(ul_int) },
+ { RS(PGSCAN_DIRECT_THROTTLE), TS(ul_int) },
+ { RS(PGSCAN_FILE), TS(ul_int) },
+ { RS(PGSCAN_KSWAPD), TS(ul_int) },
+ { RS(PGSKIP_DMA), TS(ul_int) },
+ { RS(PGSKIP_DMA32), TS(ul_int) },
+ { RS(PGSKIP_HIGH), TS(ul_int) },
+ { RS(PGSKIP_MOVABLE), TS(ul_int) },
+ { RS(PGSKIP_NORMAL), TS(ul_int) },
+ { RS(PGSTEAL_ANON), TS(ul_int) },
+ { RS(PGSTEAL_DIRECT), TS(ul_int) },
+ { RS(PGSTEAL_FILE), TS(ul_int) },
+ { RS(PGSTEAL_KSWAPD), TS(ul_int) },
+ { RS(PSWPIN), TS(ul_int) },
+ { RS(PSWPOUT), TS(ul_int) },
+ { RS(SLABS_SCANNED), TS(ul_int) },
+ { RS(SWAP_RA), TS(ul_int) },
+ { RS(SWAP_RA_HIT), TS(ul_int) },
+ { RS(THP_COLLAPSE_ALLOC), TS(ul_int) },
+ { RS(THP_COLLAPSE_ALLOC_FAILED), TS(ul_int) },
+ { RS(THP_DEFERRED_SPLIT_PAGE), TS(ul_int) },
+ { RS(THP_FAULT_ALLOC), TS(ul_int) },
+ { RS(THP_FAULT_FALLBACK), TS(ul_int) },
+ { RS(THP_FAULT_FALLBACK_CHARGE), TS(ul_int) },
+ { RS(THP_FILE_ALLOC), TS(ul_int) },
+ { RS(THP_FILE_FALLBACK), TS(ul_int) },
+ { RS(THP_FILE_FALLBACK_CHARGE), TS(ul_int) },
+ { RS(THP_FILE_MAPPED), TS(ul_int) },
+ { RS(THP_SPLIT_PAGE), TS(ul_int) },
+ { RS(THP_SPLIT_PAGE_FAILED), TS(ul_int) },
+ { RS(THP_SPLIT_PMD), TS(ul_int) },
+ { RS(THP_SPLIT_PUD), TS(ul_int) },
+ { RS(THP_SWPOUT), TS(ul_int) },
+ { RS(THP_SWPOUT_FALLBACK), TS(ul_int) },
+ { RS(THP_ZERO_PAGE_ALLOC), TS(ul_int) },
+ { RS(THP_ZERO_PAGE_ALLOC_FAILED), TS(ul_int) },
+ { RS(UNEVICTABLE_PGS_CLEARED), TS(ul_int) },
+ { RS(UNEVICTABLE_PGS_CULLED), TS(ul_int) },
+ { RS(UNEVICTABLE_PGS_MLOCKED), TS(ul_int) },
+ { RS(UNEVICTABLE_PGS_MUNLOCKED), TS(ul_int) },
+ { RS(UNEVICTABLE_PGS_RESCUED), TS(ul_int) },
+ { RS(UNEVICTABLE_PGS_SCANNED), TS(ul_int) },
+ { RS(UNEVICTABLE_PGS_STRANDED), TS(ul_int) },
+ { RS(WORKINGSET_ACTIVATE), TS(ul_int) },
+ { RS(WORKINGSET_NODERECLAIM), TS(ul_int) },
+ { RS(WORKINGSET_NODES), TS(ul_int) },
+ { RS(WORKINGSET_REFAULT), TS(ul_int) },
+ { RS(WORKINGSET_RESTORE), TS(ul_int) },
+ { RS(ZONE_RECLAIM_FAILED), TS(ul_int) },
+
+ { RS(DELTA_ALLOCSTALL_DMA), TS(sl_int) },
+ { RS(DELTA_ALLOCSTALL_DMA32), TS(sl_int) },
+ { RS(DELTA_ALLOCSTALL_HIGH), TS(sl_int) },
+ { RS(DELTA_ALLOCSTALL_MOVABLE), TS(sl_int) },
+ { RS(DELTA_ALLOCSTALL_NORMAL), TS(sl_int) },
+ { RS(DELTA_BALLOON_DEFLATE), TS(sl_int) },
+ { RS(DELTA_BALLOON_INFLATE), TS(sl_int) },
+ { RS(DELTA_BALLOON_MIGRATE), TS(sl_int) },
+ { RS(DELTA_COMPACT_DAEMON_FREE_SCANNED), TS(sl_int) },
+ { RS(DELTA_COMPACT_DAEMON_MIGRATE_SCANNED), TS(sl_int) },
+ { RS(DELTA_COMPACT_DAEMON_WAKE), TS(sl_int) },
+ { RS(DELTA_COMPACT_FAIL), TS(sl_int) },
+ { RS(DELTA_COMPACT_FREE_SCANNED), TS(sl_int) },
+ { RS(DELTA_COMPACT_ISOLATED), TS(sl_int) },
+ { RS(DELTA_COMPACT_MIGRATE_SCANNED), TS(sl_int) },
+ { RS(DELTA_COMPACT_STALL), TS(sl_int) },
+ { RS(DELTA_COMPACT_SUCCESS), TS(sl_int) },
+ { RS(DELTA_DROP_PAGECACHE), TS(sl_int) },
+ { RS(DELTA_DROP_SLAB), TS(sl_int) },
+ { RS(DELTA_HTLB_BUDDY_ALLOC_FAIL), TS(sl_int) },
+ { RS(DELTA_HTLB_BUDDY_ALLOC_SUCCESS), TS(sl_int) },
+ { RS(DELTA_KSWAPD_HIGH_WMARK_HIT_QUICKLY), TS(sl_int) },
+ { RS(DELTA_KSWAPD_INODESTEAL), TS(sl_int) },
+ { RS(DELTA_KSWAPD_LOW_WMARK_HIT_QUICKLY), TS(sl_int) },
+ { RS(DELTA_NR_ACTIVE_ANON), TS(sl_int) },
+ { RS(DELTA_NR_ACTIVE_FILE), TS(sl_int) },
+ { RS(DELTA_NR_ANON_PAGES), TS(sl_int) },
+ { RS(DELTA_NR_ANON_TRANSPARENT_HUGEPAGES), TS(sl_int) },
+ { RS(DELTA_NR_BOUNCE), TS(sl_int) },
+ { RS(DELTA_NR_DIRTIED), TS(sl_int) },
+ { RS(DELTA_NR_DIRTY), TS(sl_int) },
+ { RS(DELTA_NR_DIRTY_BACKGROUND_THRESHOLD), TS(sl_int) },
+ { RS(DELTA_NR_DIRTY_THRESHOLD), TS(sl_int) },
+ { RS(DELTA_NR_FILE_HUGEPAGES), TS(sl_int) },
+ { RS(DELTA_NR_FILE_PAGES), TS(sl_int) },
+ { RS(DELTA_NR_FILE_PMDMAPPED), TS(sl_int) },
+ { RS(DELTA_NR_FOLL_PIN_ACQUIRED), TS(sl_int) },
+ { RS(DELTA_NR_FOLL_PIN_RELEASED), TS(sl_int) },
+ { RS(DELTA_NR_FREE_CMA), TS(sl_int) },
+ { RS(DELTA_NR_FREE_PAGES), TS(sl_int) },
+ { RS(DELTA_NR_INACTIVE_ANON), TS(sl_int) },
+ { RS(DELTA_NR_INACTIVE_FILE), TS(sl_int) },
+ { RS(DELTA_NR_ISOLATED_ANON), TS(sl_int) },
+ { RS(DELTA_NR_ISOLATED_FILE), TS(sl_int) },
+ { RS(DELTA_NR_KERNEL_MISC_RECLAIMABLE), TS(sl_int) },
+ { RS(DELTA_NR_KERNEL_STACK), TS(sl_int) },
+ { RS(DELTA_NR_MAPPED), TS(sl_int) },
+ { RS(DELTA_NR_MLOCK), TS(sl_int) },
+ { RS(DELTA_NR_PAGE_TABLE_PAGES), TS(sl_int) },
+ { RS(DELTA_NR_SHADOW_CALL_STACK), TS(sl_int) },
+ { RS(DELTA_NR_SHMEM), TS(sl_int) },
+ { RS(DELTA_NR_SHMEM_HUGEPAGES), TS(sl_int) },
+ { RS(DELTA_NR_SHMEM_PMDMAPPED), TS(sl_int) },
+ { RS(DELTA_NR_SLAB_RECLAIMABLE), TS(sl_int) },
+ { RS(DELTA_NR_SLAB_UNRECLAIMABLE), TS(sl_int) },
+ { RS(DELTA_NR_UNEVICTABLE), TS(sl_int) },
+ { RS(DELTA_NR_UNSTABLE), TS(sl_int) },
+ { RS(DELTA_NR_VMSCAN_IMMEDIATE_RECLAIM), TS(sl_int) },
+ { RS(DELTA_NR_VMSCAN_WRITE), TS(sl_int) },
+ { RS(DELTA_NR_WRITEBACK), TS(sl_int) },
+ { RS(DELTA_NR_WRITEBACK_TEMP), TS(sl_int) },
+ { RS(DELTA_NR_WRITTEN), TS(sl_int) },
+ { RS(DELTA_NR_ZONE_ACTIVE_ANON), TS(sl_int) },
+ { RS(DELTA_NR_ZONE_ACTIVE_FILE), TS(sl_int) },
+ { RS(DELTA_NR_ZONE_INACTIVE_ANON), TS(sl_int) },
+ { RS(DELTA_NR_ZONE_INACTIVE_FILE), TS(sl_int) },
+ { RS(DELTA_NR_ZONE_UNEVICTABLE), TS(sl_int) },
+ { RS(DELTA_NR_ZONE_WRITE_PENDING), TS(sl_int) },
+ { RS(DELTA_NR_ZSPAGES), TS(sl_int) },
+ { RS(DELTA_NUMA_FOREIGN), TS(sl_int) },
+ { RS(DELTA_NUMA_HINT_FAULTS), TS(sl_int) },
+ { RS(DELTA_NUMA_HINT_FAULTS_LOCAL), TS(sl_int) },
+ { RS(DELTA_NUMA_HIT), TS(sl_int) },
+ { RS(DELTA_NUMA_HUGE_PTE_UPDATES), TS(sl_int) },
+ { RS(DELTA_NUMA_INTERLEAVE), TS(sl_int) },
+ { RS(DELTA_NUMA_LOCAL), TS(sl_int) },
+ { RS(DELTA_NUMA_MISS), TS(sl_int) },
+ { RS(DELTA_NUMA_OTHER), TS(sl_int) },
+ { RS(DELTA_NUMA_PAGES_MIGRATED), TS(sl_int) },
+ { RS(DELTA_NUMA_PTE_UPDATES), TS(sl_int) },
+ { RS(DELTA_OOM_KILL), TS(sl_int) },
+ { RS(DELTA_PAGEOUTRUN), TS(sl_int) },
+ { RS(DELTA_PGACTIVATE), TS(sl_int) },
+ { RS(DELTA_PGALLOC_DMA), TS(sl_int) },
+ { RS(DELTA_PGALLOC_DMA32), TS(sl_int) },
+ { RS(DELTA_PGALLOC_HIGH), TS(sl_int) },
+ { RS(DELTA_PGALLOC_MOVABLE), TS(sl_int) },
+ { RS(DELTA_PGALLOC_NORMAL), TS(sl_int) },
+ { RS(DELTA_PGDEACTIVATE), TS(sl_int) },
+ { RS(DELTA_PGFAULT), TS(sl_int) },
+ { RS(DELTA_PGFREE), TS(sl_int) },
+ { RS(DELTA_PGINODESTEAL), TS(sl_int) },
+ { RS(DELTA_PGLAZYFREE), TS(sl_int) },
+ { RS(DELTA_PGLAZYFREED), TS(sl_int) },
+ { RS(DELTA_PGMAJFAULT), TS(sl_int) },
+ { RS(DELTA_PGMIGRATE_FAIL), TS(sl_int) },
+ { RS(DELTA_PGMIGRATE_SUCCESS), TS(sl_int) },
+ { RS(DELTA_PGPGIN), TS(sl_int) },
+ { RS(DELTA_PGPGOUT), TS(sl_int) },
+ { RS(DELTA_PGREFILL), TS(sl_int) },
+ { RS(DELTA_PGROTATED), TS(sl_int) },
+ { RS(DELTA_PGSCAN_ANON), TS(sl_int) },
+ { RS(DELTA_PGSCAN_DIRECT), TS(sl_int) },
+ { RS(DELTA_PGSCAN_DIRECT_THROTTLE), TS(sl_int) },
+ { RS(DELTA_PGSCAN_FILE), TS(sl_int) },
+ { RS(DELTA_PGSCAN_KSWAPD), TS(sl_int) },
+ { RS(DELTA_PGSKIP_DMA), TS(sl_int) },
+ { RS(DELTA_PGSKIP_DMA32), TS(sl_int) },
+ { RS(DELTA_PGSKIP_HIGH), TS(sl_int) },
+ { RS(DELTA_PGSKIP_MOVABLE), TS(sl_int) },
+ { RS(DELTA_PGSKIP_NORMAL), TS(sl_int) },
+ { RS(DELTA_PGSTEAL_ANON), TS(sl_int) },
+ { RS(DELTA_PGSTEAL_DIRECT), TS(sl_int) },
+ { RS(DELTA_PGSTEAL_FILE), TS(sl_int) },
+ { RS(DELTA_PGSTEAL_KSWAPD), TS(sl_int) },
+ { RS(DELTA_PSWPIN), TS(sl_int) },
+ { RS(DELTA_PSWPOUT), TS(sl_int) },
+ { RS(DELTA_SLABS_SCANNED), TS(sl_int) },
+ { RS(DELTA_SWAP_RA), TS(sl_int) },
+ { RS(DELTA_SWAP_RA_HIT), TS(sl_int) },
+ { RS(DELTA_THP_COLLAPSE_ALLOC), TS(sl_int) },
+ { RS(DELTA_THP_COLLAPSE_ALLOC_FAILED), TS(sl_int) },
+ { RS(DELTA_THP_DEFERRED_SPLIT_PAGE), TS(sl_int) },
+ { RS(DELTA_THP_FAULT_ALLOC), TS(sl_int) },
+ { RS(DELTA_THP_FAULT_FALLBACK), TS(sl_int) },
+ { RS(DELTA_THP_FAULT_FALLBACK_CHARGE), TS(sl_int) },
+ { RS(DELTA_THP_FILE_ALLOC), TS(sl_int) },
+ { RS(DELTA_THP_FILE_FALLBACK), TS(sl_int) },
+ { RS(DELTA_THP_FILE_FALLBACK_CHARGE), TS(sl_int) },
+ { RS(DELTA_THP_FILE_MAPPED), TS(sl_int) },
+ { RS(DELTA_THP_SPLIT_PAGE), TS(sl_int) },
+ { RS(DELTA_THP_SPLIT_PAGE_FAILED), TS(sl_int) },
+ { RS(DELTA_THP_SPLIT_PMD), TS(sl_int) },
+ { RS(DELTA_THP_SPLIT_PUD), TS(sl_int) },
+ { RS(DELTA_THP_SWPOUT), TS(sl_int) },
+ { RS(DELTA_THP_SWPOUT_FALLBACK), TS(sl_int) },
+ { RS(DELTA_THP_ZERO_PAGE_ALLOC), TS(sl_int) },
+ { RS(DELTA_THP_ZERO_PAGE_ALLOC_FAILED), TS(sl_int) },
+ { RS(DELTA_UNEVICTABLE_PGS_CLEARED), TS(sl_int) },
+ { RS(DELTA_UNEVICTABLE_PGS_CULLED), TS(sl_int) },
+ { RS(DELTA_UNEVICTABLE_PGS_MLOCKED), TS(sl_int) },
+ { RS(DELTA_UNEVICTABLE_PGS_MUNLOCKED), TS(sl_int) },
+ { RS(DELTA_UNEVICTABLE_PGS_RESCUED), TS(sl_int) },
+ { RS(DELTA_UNEVICTABLE_PGS_SCANNED), TS(sl_int) },
+ { RS(DELTA_UNEVICTABLE_PGS_STRANDED), TS(sl_int) },
+ { RS(DELTA_WORKINGSET_ACTIVATE), TS(sl_int) },
+ { RS(DELTA_WORKINGSET_NODERECLAIM), TS(sl_int) },
+ { RS(DELTA_WORKINGSET_NODES), TS(sl_int) },
+ { RS(DELTA_WORKINGSET_REFAULT), TS(sl_int) },
+ { RS(DELTA_WORKINGSET_RESTORE), TS(sl_int) },
+ { RS(DELTA_ZONE_RECLAIM_FAILED), TS(sl_int) },
+};
+
+ /* please note,
+ * this enum MUST be 1 greater than the highest value of any enum */
+enum vmstat_item VMSTAT_logical_end = MAXTABLE(Item_table);
+
+#undef setNAME
+#undef RS
+
+
+// ___ Private Functions ||||||||||||||||||||||||||||||||||||||||||||||||||||||
+
+static inline void vmstat_assign_results (
+ struct vmstat_stack *stack,
+ struct vmstat_hist *hist)
+{
+ struct vmstat_result *this = stack->head;
+
+ for (;;) {
+ enum vmstat_item item = this->item;
+ if (item >= VMSTAT_logical_end)
+ break;
+ Item_table[item].setsfunc(this, hist);
+ ++this;
+ }
+ return;
+} // end: vmstat_assign_results
+
+
+static void vmstat_extents_free_all (
+ struct vmstat_info *info)
+{
+ while (info->extents) {
+ struct stacks_extent *p = info->extents;
+ info->extents = info->extents->next;
+ free(p);
+ };
+} // end: vmstat_extents_free_all
+
+
+static inline struct vmstat_result *vmstat_itemize_stack (
+ struct vmstat_result *p,
+ int depth,
+ enum vmstat_item *items)
+{
+ struct vmstat_result *p_sav = p;
+ int i;
+
+ for (i = 0; i < depth; i++) {
+ p->item = items[i];
+ ++p;
+ }
+ return p_sav;
+} // end: vmstat_itemize_stack
+
+
+static inline int vmstat_items_check_failed (
+ int numitems,
+ enum vmstat_item *items)
+{
+ int i;
+
+ /* if an enum is passed instead of an address of one or more enums, ol' gcc
+ * will silently convert it to an address (possibly NULL). only clang will
+ * offer any sort of warning like the following:
+ *
+ * warning: incompatible integer to pointer conversion passing 'int' to parameter of type 'enum vmstat_item *'
+ * my_stack = procps_vmstat_select(info, VMSTAT_noop, num);
+ * ^~~~~~~~~~~~~~~~
+ */
+ if (numitems < 1
+ || (void *)items < (void *)(unsigned long)(2 * VMSTAT_logical_end))
+ return 1;
+
+ for (i = 0; i < numitems; i++) {
+ // a vmstat_item is currently unsigned, but we'll protect our future
+ if (items[i] < 0)
+ return 1;
+ if (items[i] >= VMSTAT_logical_end)
+ return 1;
+ }
+
+ return 0;
+} // end: vmstat_items_check_failed
+
+
+static int vmstat_make_hash_failed (
+ struct vmstat_info *info)
+{
+ #define htVAL(f) e.key = STRINGIFY(f); e.data = &info->hist.new. f; \
+ if (!hsearch_r(e, ENTER, &ep, &info->hashtab)) return 1;
+ ENTRY e, *ep;
+ size_t n;
+
+ n = sizeof(struct vmstat_data) / sizeof(unsigned long);
+ // we'll follow the hsearch recommendation of an extra 25%
+ if (!hcreate_r(n + (n / 4), &info->hashtab))
+ return 1;
+
+ htVAL(allocstall_dma)
+ htVAL(allocstall_dma32)
+ htVAL(allocstall_high)
+ htVAL(allocstall_movable)
+ htVAL(allocstall_normal)
+ htVAL(balloon_deflate)
+ htVAL(balloon_inflate)
+ htVAL(balloon_migrate)
+ htVAL(compact_daemon_free_scanned)
+ htVAL(compact_daemon_migrate_scanned)
+ htVAL(compact_daemon_wake)
+ htVAL(compact_fail)
+ htVAL(compact_free_scanned)
+ htVAL(compact_isolated)
+ htVAL(compact_migrate_scanned)
+ htVAL(compact_stall)
+ htVAL(compact_success)
+ htVAL(drop_pagecache)
+ htVAL(drop_slab)
+ htVAL(htlb_buddy_alloc_fail)
+ htVAL(htlb_buddy_alloc_success)
+ htVAL(kswapd_high_wmark_hit_quickly)
+ htVAL(kswapd_inodesteal)
+ htVAL(kswapd_low_wmark_hit_quickly)
+ htVAL(nr_active_anon)
+ htVAL(nr_active_file)
+ htVAL(nr_anon_pages)
+ htVAL(nr_anon_transparent_hugepages)
+ htVAL(nr_bounce)
+ htVAL(nr_dirtied)
+ htVAL(nr_dirty)
+ htVAL(nr_dirty_background_threshold)
+ htVAL(nr_dirty_threshold)
+ htVAL(nr_file_hugepages)
+ htVAL(nr_file_pages)
+ htVAL(nr_file_pmdmapped)
+ htVAL(nr_foll_pin_acquired)
+ htVAL(nr_foll_pin_released)
+ htVAL(nr_free_cma)
+ htVAL(nr_free_pages)
+ htVAL(nr_inactive_anon)
+ htVAL(nr_inactive_file)
+ htVAL(nr_isolated_anon)
+ htVAL(nr_isolated_file)
+ htVAL(nr_kernel_misc_reclaimable)
+ htVAL(nr_kernel_stack)
+ htVAL(nr_mapped)
+ htVAL(nr_mlock)
+ htVAL(nr_page_table_pages)
+ htVAL(nr_shadow_call_stack)
+ htVAL(nr_shmem)
+ htVAL(nr_shmem_hugepages)
+ htVAL(nr_shmem_pmdmapped)
+ htVAL(nr_slab_reclaimable)
+ htVAL(nr_slab_unreclaimable)
+ htVAL(nr_unevictable)
+ htVAL(nr_unstable)
+ htVAL(nr_vmscan_immediate_reclaim)
+ htVAL(nr_vmscan_write)
+ htVAL(nr_writeback)
+ htVAL(nr_writeback_temp)
+ htVAL(nr_written)
+ htVAL(nr_zone_active_anon)
+ htVAL(nr_zone_active_file)
+ htVAL(nr_zone_inactive_anon)
+ htVAL(nr_zone_inactive_file)
+ htVAL(nr_zone_unevictable)
+ htVAL(nr_zone_write_pending)
+ htVAL(nr_zspages)
+ htVAL(numa_foreign)
+ htVAL(numa_hint_faults)
+ htVAL(numa_hint_faults_local)
+ htVAL(numa_hit)
+ htVAL(numa_huge_pte_updates)
+ htVAL(numa_interleave)
+ htVAL(numa_local)
+ htVAL(numa_miss)
+ htVAL(numa_other)
+ htVAL(numa_pages_migrated)
+ htVAL(numa_pte_updates)
+ htVAL(oom_kill)
+ htVAL(pageoutrun)
+ htVAL(pgactivate)
+ htVAL(pgalloc_dma)
+ htVAL(pgalloc_dma32)
+ htVAL(pgalloc_high)
+ htVAL(pgalloc_movable)
+ htVAL(pgalloc_normal)
+ htVAL(pgdeactivate)
+ htVAL(pgfault)
+ htVAL(pgfree)
+ htVAL(pginodesteal)
+ htVAL(pglazyfree)
+ htVAL(pglazyfreed)
+ htVAL(pgmajfault)
+ htVAL(pgmigrate_fail)
+ htVAL(pgmigrate_success)
+ htVAL(pgpgin)
+ htVAL(pgpgout)
+ htVAL(pgrefill)
+ htVAL(pgrotated)
+ htVAL(pgscan_anon)
+ htVAL(pgscan_direct)
+ htVAL(pgscan_direct_throttle)
+ htVAL(pgscan_file)
+ htVAL(pgscan_kswapd)
+ htVAL(pgskip_dma)
+ htVAL(pgskip_dma32)
+ htVAL(pgskip_high)
+ htVAL(pgskip_movable)
+ htVAL(pgskip_normal)
+ htVAL(pgsteal_anon)
+ htVAL(pgsteal_direct)
+ htVAL(pgsteal_file)
+ htVAL(pgsteal_kswapd)
+ htVAL(pswpin)
+ htVAL(pswpout)
+ htVAL(slabs_scanned)
+ htVAL(swap_ra)
+ htVAL(swap_ra_hit)
+ htVAL(thp_collapse_alloc)
+ htVAL(thp_collapse_alloc_failed)
+ htVAL(thp_deferred_split_page)
+ htVAL(thp_fault_alloc)
+ htVAL(thp_fault_fallback)
+ htVAL(thp_fault_fallback_charge)
+ htVAL(thp_file_alloc)
+ htVAL(thp_file_fallback)
+ htVAL(thp_file_fallback_charge)
+ htVAL(thp_file_mapped)
+ htVAL(thp_split_page)
+ htVAL(thp_split_page_failed)
+ htVAL(thp_split_pmd)
+ htVAL(thp_split_pud)
+ htVAL(thp_swpout)
+ htVAL(thp_swpout_fallback)
+ htVAL(thp_zero_page_alloc)
+ htVAL(thp_zero_page_alloc_failed)
+ htVAL(unevictable_pgs_cleared)
+ htVAL(unevictable_pgs_culled)
+ htVAL(unevictable_pgs_mlocked)
+ htVAL(unevictable_pgs_munlocked)
+ htVAL(unevictable_pgs_rescued)
+ htVAL(unevictable_pgs_scanned)
+ htVAL(unevictable_pgs_stranded)
+ htVAL(workingset_activate)
+ htVAL(workingset_nodereclaim)
+ htVAL(workingset_nodes)
+ htVAL(workingset_refault)
+ htVAL(workingset_restore)
+ htVAL(zone_reclaim_failed)
+
+ return 0;
+ #undef htVAL
+} // end: vmstat_make_hash_failed
+
+
+/*
+ * vmstat_read_failed():
+ *
+ * Read the data out of /proc/vmstat putting the information
+ * into the supplied info structure
+ */
+static int vmstat_read_failed (
+ struct vmstat_info *info)
+{
+ char buf[VMSTAT_BUFF];
+ char *head, *tail;
+ int size;
+ unsigned long *valptr;
+
+ // remember history from last time around
+ memcpy(&info->hist.old, &info->hist.new, sizeof(struct vmstat_data));
+ // clear out the soon to be 'current' values
+ memset(&info->hist.new, 0, sizeof(struct vmstat_data));
+
+#ifndef __CYGWIN__ /* /proc/vmstat does not exist */
+ if (-1 == info->vmstat_fd
+ && (-1 == (info->vmstat_fd = open(VMSTAT_FILE, O_RDONLY))))
+ return 1;
+
+ if (lseek(info->vmstat_fd, 0L, SEEK_SET) == -1)
+ return 1;
+
+ for (;;) {
+ if ((size = read(info->vmstat_fd, buf, sizeof(buf)-1)) < 0) {
+ if (errno == EINTR || errno == EAGAIN)
+ continue;
+ return 1;
+ }
+ break;
+ }
+ if (size == 0) {
+ errno = EIO;
+ return 1;
+ }
+ buf[size] = '\0';
+
+ head = buf;
+
+ for (;;) {
+ static __thread ENTRY e; // keep coverity off our backs (e.data)
+ ENTRY *ep;
+
+ if (!(tail = strchr(head, ' ')))
+ break;
+ *tail = '\0';
+ valptr = NULL;
+
+ e.key = head;
+ if (hsearch_r(e, FIND, &ep, &info->hashtab))
+ valptr = ep->data;
+ head = tail + 1;
+ if (valptr)
+ *valptr = strtoul(head, NULL, 10);
+
+ if (!(tail = strchr(head, '\n')))
+ break;
+ head = tail + 1;
+ }
+#endif /* !__CYGWIN__ */
+ return 0;
+} // end: vmstat_read_failed
+
+
+/*
+ * vmstat_stacks_alloc():
+ *
+ * Allocate and initialize one or more stacks each of which is anchored in an
+ * associated context structure.
+ *
+ * All such stacks will have their result structures properly primed with
+ * 'items', while the result itself will be zeroed.
+ *
+ * Returns a stacks_extent struct anchoring the 'heads' of each new stack.
+ */
+static struct stacks_extent *vmstat_stacks_alloc (
+ struct vmstat_info *info,
+ int maxstacks)
+{
+ struct stacks_extent *p_blob;
+ struct vmstat_stack **p_vect;
+ struct vmstat_stack *p_head;
+ size_t vect_size, head_size, list_size, blob_size;
+ void *v_head, *v_list;
+ int i;
+
+ vect_size = sizeof(void *) * maxstacks; // size of the addr vectors |
+ vect_size += sizeof(void *); // plus NULL addr delimiter |
+ head_size = sizeof(struct vmstat_stack); // size of that head struct |
+ list_size = sizeof(struct vmstat_result)*info->numitems; // any single results stack |
+ blob_size = sizeof(struct stacks_extent); // the extent anchor itself |
+ blob_size += vect_size; // plus room for addr vects |
+ blob_size += head_size * maxstacks; // plus room for head thing |
+ blob_size += list_size * maxstacks; // plus room for our stacks |
+
+ /* note: all of our memory is allocated in a single blob, facilitating a later free(). |
+ as a minimum, it is important that the result structures themselves always be |
+ contiguous for every stack since they are accessed through relative position. | */
+ if (NULL == (p_blob = calloc(1, blob_size)))
+ return NULL;
+
+ p_blob->next = info->extents; // push this extent onto... |
+ info->extents = p_blob; // ...some existing extents |
+ p_vect = (void *)p_blob + sizeof(struct stacks_extent); // prime our vector pointer |
+ p_blob->stacks = p_vect; // set actual vectors start |
+ v_head = (void *)p_vect + vect_size; // prime head pointer start |
+ v_list = v_head + (head_size * maxstacks); // prime our stacks pointer |
+
+ for (i = 0; i < maxstacks; i++) {
+ p_head = (struct vmstat_stack *)v_head;
+ p_head->head = vmstat_itemize_stack((struct vmstat_result *)v_list, info->numitems, info->items);
+ p_blob->stacks[i] = p_head;
+ v_list += list_size;
+ v_head += head_size;
+ }
+ p_blob->ext_numstacks = maxstacks;
+ return p_blob;
+} // end: vmstat_stacks_alloc
+
+
+// ___ Public Functions |||||||||||||||||||||||||||||||||||||||||||||||||||||||
+
+// --- standard required functions --------------------------------------------
+
+/*
+ * procps_vmstat_new:
+ *
+ * Create a new container to hold the stat information
+ *
+ * The initial refcount is 1, and needs to be decremented
+ * to release the resources of the structure.
+ *
+ * Returns: < 0 on failure, 0 on success along with
+ * a pointer to a new context struct
+ */
+PROCPS_EXPORT int procps_vmstat_new (
+ struct vmstat_info **info)
+{
+ struct vmstat_info *p;
+
+#ifdef ITEMTABLE_DEBUG
+ int i, failed = 0;
+ for (i = 0; i < MAXTABLE(Item_table); i++) {
+ if (i != Item_table[i].enumnumb) {
+ fprintf(stderr, "%s: enum/table error: Item_table[%d] was %s, but its value is %d\n"
+ , __FILE__, i, Item_table[i].enum2str, Item_table[i].enumnumb);
+ failed = 1;
+ }
+ }
+ if (failed) _Exit(EXIT_FAILURE);
+#endif
+
+ if (info == NULL || *info != NULL)
+ return -EINVAL;
+ if (!(p = calloc(1, sizeof(struct vmstat_info))))
+ return -ENOMEM;
+
+ p->refcount = 1;
+ p->vmstat_fd = -1;
+
+ if (vmstat_make_hash_failed(p)) {
+ free(p);
+ return -errno;
+ }
+
+ /* do a priming read here for the following potential benefits: |
+ 1) ensure there will be no problems with subsequent access |
+ 2) make delta results potentially useful, even if 1st time |
+ 3) elimnate need for history distortions 1st time 'switch' | */
+ if (vmstat_read_failed(p)) {
+ procps_vmstat_unref(&p);
+ return -errno;
+ }
+
+ *info = p;
+ return 0;
+} // end: procps_vmstat_new
+
+
+PROCPS_EXPORT int procps_vmstat_ref (
+ struct vmstat_info *info)
+{
+ if (info == NULL)
+ return -EINVAL;
+
+ info->refcount++;
+ return info->refcount;
+} // end: procps_vmstat_ref
+
+
+PROCPS_EXPORT int procps_vmstat_unref (
+ struct vmstat_info **info)
+{
+ if (info == NULL || *info == NULL)
+ return -EINVAL;
+
+ (*info)->refcount--;
+
+ if ((*info)->refcount < 1) {
+ int errno_sav = errno;
+
+ if ((*info)->vmstat_fd != -1)
+ close((*info)->vmstat_fd);
+
+ if ((*info)->extents)
+ vmstat_extents_free_all((*info));
+ if ((*info)->items)
+ free((*info)->items);
+ hdestroy_r(&(*info)->hashtab);
+
+ free(*info);
+ *info = NULL;
+
+ errno = errno_sav;
+ return 0;
+ }
+ return (*info)->refcount;
+} // end: procps_vmstat_unref
+
+
+// --- variable interface functions -------------------------------------------
+
+PROCPS_EXPORT struct vmstat_result *procps_vmstat_get (
+ struct vmstat_info *info,
+ enum vmstat_item item)
+{
+ time_t cur_secs;
+
+ errno = EINVAL;
+ if (info == NULL)
+ return NULL;
+ if (item < 0 || item >= VMSTAT_logical_end)
+ return NULL;
+ errno = 0;
+
+ /* we will NOT read the vmstat file with every call - rather, we'll offer
+ a granularity of 1 second between reads ... */
+ cur_secs = time(NULL);
+ if (1 <= cur_secs - info->sav_secs) {
+ if (vmstat_read_failed(info))
+ return NULL;
+ info->sav_secs = cur_secs;
+ }
+
+ info->get_this.item = item;
+ // with 'get', we must NOT honor the usual 'noop' guarantee
+ info->get_this.result.ul_int = 0;
+ Item_table[item].setsfunc(&info->get_this, &info->hist);
+
+ return &info->get_this;
+} // end: procps_vmstat_get
+
+
+/* procps_vmstat_select():
+ *
+ * Harvest all the requested /proc/vmstat information then return
+ * it in a results stack.
+ *
+ * Returns: pointer to a vmstat_stack struct on success, NULL on error.
+ */
+PROCPS_EXPORT struct vmstat_stack *procps_vmstat_select (
+ struct vmstat_info *info,
+ enum vmstat_item *items,
+ int numitems)
+{
+ errno = EINVAL;
+ if (info == NULL || items == NULL)
+ return NULL;
+ if (vmstat_items_check_failed(numitems, items))
+ return NULL;
+ errno = 0;
+
+ /* is this the first time or have things changed since we were last called?
+ if so, gotta' redo all of our stacks stuff ... */
+ if (info->numitems != numitems + 1
+ || memcmp(info->items, items, sizeof(enum vmstat_item) * numitems)) {
+ // allow for our VMSTAT_logical_end
+ if (!(info->items = realloc(info->items, sizeof(enum vmstat_item) * (numitems + 1))))
+ return NULL;
+ memcpy(info->items, items, sizeof(enum vmstat_item) * numitems);
+ info->items[numitems] = VMSTAT_logical_end;
+ info->numitems = numitems + 1;
+ if (info->extents)
+ vmstat_extents_free_all(info);
+ }
+ if (!info->extents
+ && (!vmstat_stacks_alloc(info, 1)))
+ return NULL;
+
+ if (vmstat_read_failed(info))
+ return NULL;
+ vmstat_assign_results(info->extents->stacks[0], &info->hist);
+
+ return info->extents->stacks[0];
+} // end: procps_vmstat_select
+
+
+// --- special debugging function(s) ------------------------------------------
+/*
+ * The following isn't part of the normal programming interface. Rather,
+ * it exists to validate result types referenced in application programs.
+ *
+ * It's used only when:
+ * 1) the 'XTRA_PROCPS_DEBUG' has been defined, or
+ * 2) an #include of 'xtra-procps-debug.h' is used
+ */
+
+PROCPS_EXPORT struct vmstat_result *xtra_vmstat_get (
+ struct vmstat_info *info,
+ enum vmstat_item actual_enum,
+ const char *typestr,
+ const char *file,
+ int lineno)
+{
+ struct vmstat_result *r = procps_vmstat_get(info, actual_enum);
+
+ if (actual_enum < 0 || actual_enum >= VMSTAT_logical_end) {
+ fprintf(stderr, "%s line %d: invalid item = %d, type = %s\n"
+ , file, lineno, actual_enum, typestr);
+ }
+ if (r) {
+ char *str = Item_table[r->item].type2str;
+ if (str[0]
+ && (strcmp(typestr, str)))
+ fprintf(stderr, "%s line %d: was %s, expected %s\n", file, lineno, typestr, str);
+ }
+ return r;
+} // end: xtra_vmstat_get_
+
+
+PROCPS_EXPORT struct vmstat_result *xtra_vmstat_val (
+ int relative_enum,
+ const char *typestr,
+ const struct vmstat_stack *stack,
+ struct vmstat_info *info,
+ const char *file,
+ int lineno)
+{
+ char *str;
+ int i;
+
+ for (i = 0; stack->head[i].item < VMSTAT_logical_end; i++)
+ ;
+ if (relative_enum < 0 || relative_enum >= i) {
+ fprintf(stderr, "%s line %d: invalid relative_enum = %d, valid range = 0-%d\n"
+ , file, lineno, relative_enum, i-1);
+ return NULL;
+ }
+ str = Item_table[stack->head[relative_enum].item].type2str;
+ if (str[0]
+ && (strcmp(typestr, str))) {
+ fprintf(stderr, "%s line %d: was %s, expected %s\n", file, lineno, typestr, str);
+ }
+ return &stack->head[relative_enum];
+ (void)info;
+} // end: xtra_vmstat_val
diff --git a/library/wchan.c b/library/wchan.c
new file mode 100644
index 0000000..d342fef
--- /dev/null
+++ b/library/wchan.c
@@ -0,0 +1,54 @@
+/*
+ * wchan.c - kernel symbol handling
+ *
+ * Copyright © 2015-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 1998-2003 Albert Cahalan
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <sys/stat.h>
+
+#include "wchan.h" // to verify prototype
+
+
+const char *lookup_wchan (int pid) {
+ static __thread char buf[64];
+ const char *ret = buf;
+ ssize_t num;
+ int fd;
+
+ snprintf(buf, sizeof buf, "/proc/%d/wchan", pid);
+ fd = open(buf, O_RDONLY);
+ if (fd==-1) return "?";
+
+ num = read(fd, buf, sizeof buf - 1);
+ close(fd);
+
+ if (num<1) return "?"; // allow for "0"
+ buf[num] = '\0';
+
+ if (buf[0]=='0' && buf[1]=='\0') return "-";
+
+ // lame ppc64 has a '.' in front of every name
+ if (*ret=='.') ret++;
+ while(*ret=='_') ret++;
+
+ return ret;
+}
diff --git a/local/Makefile.am b/local/Makefile.am
new file mode 100644
index 0000000..9f97890
--- /dev/null
+++ b/local/Makefile.am
@@ -0,0 +1,10 @@
+dist_noinst_HEADERS = \
+ c.h \
+ fileutils.h \
+ nls.h \
+ procio.h \
+ rpmatch.h \
+ signals.h \
+ strutils.h \
+ tests.h \
+ xalloc.h
diff --git a/local/Makefile.in b/local/Makefile.in
new file mode 100644
index 0000000..b03992d
--- /dev/null
+++ b/local/Makefile.in
@@ -0,0 +1,553 @@
+# Makefile.in generated by automake 1.16.5 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2021 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = local
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
+ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(dist_noinst_HEADERS) \
+ $(am__DIST_COMMON)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+HEADERS = $(dist_noinst_HEADERS)
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/mkinstalldirs
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CSCOPE = @CSCOPE@
+CTAGS = @CTAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEJAGNU = @DEJAGNU@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DL_LIB = @DL_LIB@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ELOGIND_CFLAGS = @ELOGIND_CFLAGS@
+ELOGIND_LIBS = @ELOGIND_LIBS@
+ETAGS = @ETAGS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FILECMD = @FILECMD@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+HARDEN_CFLAGS = @HARDEN_CFLAGS@
+HARDEN_LDFLAGS = @HARDEN_LDFLAGS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
+NCURSES_CFLAGS = @NCURSES_CFLAGS@
+NCURSES_LIBS = @NCURSES_LIBS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+PO4A = @PO4A@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@
+SYSTEMD_LIBS = @SYSTEMD_LIBS@
+USE_NLS = @USE_NLS@
+USE_PO4A = @USE_PO4A@
+VERSION = @VERSION@
+WITH_COLORWATCH = @WITH_COLORWATCH@
+WITH_WATCH8BIT = @WITH_WATCH8BIT@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+usrbin_execdir = @usrbin_execdir@
+dist_noinst_HEADERS = \
+ c.h \
+ fileutils.h \
+ nls.h \
+ procio.h \
+ rpmatch.h \
+ signals.h \
+ strutils.h \
+ tests.h \
+ xalloc.h
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign local/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign local/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+check: check-am
+all-am: Makefile $(HEADERS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \
+ clean-libtool cscopelist-am ctags ctags-am distclean \
+ distclean-generic distclean-libtool distclean-tags distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-html install-html-am \
+ install-info install-info-am install-man install-pdf \
+ install-pdf-am install-ps install-ps-am install-strip \
+ installcheck installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
+ uninstall-am
+
+.PRECIOUS: Makefile
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/local/c.h b/local/c.h
new file mode 100644
index 0000000..2471209
--- /dev/null
+++ b/local/c.h
@@ -0,0 +1,162 @@
+/*
+ * This header was copied from util-linux at fall 2011.
+ */
+
+/*
+ * Fundamental C definitions.
+ */
+
+#ifndef PROCPS_NG_C_H
+#define PROCPS_NG_C_H
+
+#include <limits.h>
+#include <stdint.h>
+#include <stdio.h>
+#include <stdarg.h>
+#include <stdlib.h>
+#include <string.h>
+#include <errno.h>
+#ifdef HAVE_ERROR_H
+#include <error.h>
+#else
+#include <stdarg.h>
+#endif
+
+/*
+ * Compiler specific stuff
+ */
+#ifndef __GNUC_PREREQ
+# if defined __GNUC__ && defined __GNUC_MINOR__
+# define __GNUC_PREREQ(maj, min) \
+ ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
+# else
+# define __GNUC_PREREQ(maj, min) 0
+# endif
+#endif
+
+/*
+ * Function attributes
+ */
+#ifndef __ul_alloc_size
+# if __GNUC_PREREQ (4, 3)
+# define __ul_alloc_size(s) __attribute__((alloc_size(s)))
+# else
+# define __ul_alloc_size(s)
+# endif
+#endif
+
+#ifndef __ul_calloc_size
+# if __GNUC_PREREQ (4, 3)
+# define __ul_calloc_size(n, s) __attribute__((alloc_size(n, s)))
+# else
+# define __ul_calloc_size(n, s)
+# endif
+#endif
+
+/*
+ * Misc
+ */
+#ifndef PATH_MAX
+# define PATH_MAX 4096
+#endif
+
+#ifndef TRUE
+# define TRUE 1
+#endif
+
+#ifndef FALSE
+# define FALSE 0
+#endif
+
+/*
+ * Program name.
+ */
+#ifndef HAVE_PROGRAM_INVOCATION_SHORT_NAME
+# ifdef HAVE___PROGNAME
+extern char *__progname;
+# define program_invocation_short_name __progname
+# else
+# ifdef HAVE_GETEXECNAME
+# define program_invocation_short_name \
+ prog_inv_sh_nm_from_file(getexecname(), 0)
+# else
+# define program_invocation_short_name \
+ prog_inv_sh_nm_from_file(__FILE__, 1)
+# endif
+static char prog_inv_sh_nm_buf[256];
+static inline char *prog_inv_sh_nm_from_file(char *f, char stripext)
+{
+ char *t;
+
+ if ((t = strrchr(f, '/')) != NULL)
+ t++;
+ else
+ t = f;
+
+ strncpy(prog_inv_sh_nm_buf, t, sizeof(prog_inv_sh_nm_buf) - 1);
+ prog_inv_sh_nm_buf[sizeof(prog_inv_sh_nm_buf) - 1] = '\0';
+
+ if (stripext && (t = strrchr(prog_inv_sh_nm_buf, '.')) != NULL)
+ *t = '\0';
+
+ return prog_inv_sh_nm_buf;
+}
+# endif
+#endif
+
+/*
+ * Error printing.
+ */
+#ifndef HAVE_ERROR_H
+/* Emulate the error() function from glibc */
+__attribute__((__format__(__printf__, 3, 4)))
+static void error(int status, int errnum, const char *format, ...)
+{
+ va_list argp;
+ fprintf(stderr, "%s: ", program_invocation_short_name);
+ va_start(argp, format);
+ vfprintf(stderr, format, argp);
+ va_end(argp);
+ if (errnum != 0)
+ fprintf(stderr, ": %s", strerror(errnum));
+ fprintf(stderr, "\n");
+ if (status != 0)
+ exit(status);
+}
+
+/* Emulate the error_at_line() function from glibc */
+__attribute__((__format__(__printf__, 5, 6)))
+static void error_at_line(int status, int errnum, const char *filename,
+ unsigned int linenum, const char *format, ...)
+{
+ va_list argp;
+ fprintf(stderr, "%s:%s:%u: ", program_invocation_short_name,
+ filename, linenum);
+ va_start(argp, format);
+ vfprintf(stderr, format, argp);
+ va_end(argp);
+ if (errnum != 0)
+ fprintf(stderr, ": error code %d", errnum);
+ fprintf(stderr, "\n");
+ if (status != 0)
+ exit(status);
+}
+#endif
+#define xwarn(...) error(0, errno, __VA_ARGS__)
+#define xwarnx(...) error(0, 0, __VA_ARGS__)
+#define xerr(STATUS, ...) error(STATUS, errno, __VA_ARGS__)
+#define xerrx(STATUS, ...) error(STATUS, 0, __VA_ARGS__)
+
+/*
+ * Constant strings for usage() functions.
+ */
+#define USAGE_HEADER _("\nUsage:\n")
+#define USAGE_OPTIONS _("\nOptions:\n")
+#define USAGE_SEPARATOR _("\n")
+#define USAGE_HELP _(" -h, --help display this help and exit\n")
+#define USAGE_VERSION _(" -V, --version output version information and exit\n")
+#define USAGE_MAN_TAIL(_man) _("\nFor more details see %s.\n"), _man
+
+#define PROCPS_NG_VERSION _("%s from %s\n"), program_invocation_short_name, PACKAGE_STRING
+
+#endif /* PROCPS_NG_C_H */
diff --git a/local/fileutils.c b/local/fileutils.c
new file mode 100644
index 0000000..14c7452
--- /dev/null
+++ b/local/fileutils.c
@@ -0,0 +1,45 @@
+#include <errno.h>
+#ifdef HAVE_ERROR_H
+# include <error.h>
+#endif
+#ifdef HAVE_STDIO_EXT_H
+# include <stdio_ext.h>
+#else
+/* FIXME: use a more portable definition of __fpending() (from gnulib?) */
+# include <stdio.h>
+# define __fpending(fp) ((fp)->_p - (fp)->_bf._base)
+#endif
+#include <stdlib.h>
+#include <unistd.h>
+
+#include "nls.h"
+#include "fileutils.h"
+#ifndef HAVE_ERROR_H
+# include "c.h" /* for error() emulation */
+#endif
+
+int close_stream(FILE * stream)
+{
+ const int some_pending = (__fpending(stream) != 0);
+ const int prev_fail = (ferror(stream) != 0);
+ const int fclose_fail = (fclose(stream) != 0);
+ if (prev_fail || (fclose_fail && (some_pending || errno != EBADF))) {
+ if (!fclose_fail && errno != EPIPE)
+ errno = 0;
+ return EOF;
+ }
+ return 0;
+}
+
+/* Use atexit(); */
+void close_stdout(void)
+{
+ if (close_stream(stdout) != 0 && !(errno == EPIPE)) {
+ char const *write_error = _("write error");
+ error(0, errno, "%s", write_error);
+ _exit(EXIT_FAILURE);
+ }
+
+ if (close_stream(stderr) != 0)
+ _exit(EXIT_FAILURE);
+}
diff --git a/local/fileutils.h b/local/fileutils.h
new file mode 100644
index 0000000..cfab570
--- /dev/null
+++ b/local/fileutils.h
@@ -0,0 +1,7 @@
+#ifndef PROCPS_NG_FILEUTILS
+#define PROCPS_NG_FILEUTILS
+
+int close_stream(FILE * stream);
+void close_stdout(void);
+
+#endif
diff --git a/local/git-version-gen b/local/git-version-gen
new file mode 100755
index 0000000..171767f
--- /dev/null
+++ b/local/git-version-gen
@@ -0,0 +1,181 @@
+#!/bin/sh
+# Print a version string.
+scriptversion=2011-02-19.19; # UTC
+
+# Copyright (C) 2007-2011 Free Software Foundation, Inc.
+#
+# 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
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+# This script is derived from GIT-VERSION-GEN from GIT: http://git.or.cz/.
+# It may be run two ways:
+# - from a git repository in which the "git describe" command below
+# produces useful output (thus requiring at least one signed tag)
+# - from a non-git-repo directory containing a .tarball-version file, which
+# presumes this script is invoked like "./git-version-gen .tarball-version".
+
+# In order to use intra-version strings in your project, you will need two
+# separate generated version string files:
+#
+# .tarball-version - present only in a distribution tarball, and not in
+# a checked-out repository. Created with contents that were learned at
+# the last time autoconf was run, and used by git-version-gen. Must not
+# be present in either $(srcdir) or $(builddir) for git-version-gen to
+# give accurate answers during normal development with a checked out tree,
+# but must be present in a tarball when there is no version control system.
+# Therefore, it cannot be used in any dependencies. GNUmakefile has
+# hooks to force a reconfigure at distribution time to get the value
+# correct, without penalizing normal development with extra reconfigures.
+#
+# .version - present in a checked-out repository and in a distribution
+# tarball. Usable in dependencies, particularly for files that don't
+# want to depend on config.h but do want to track version changes.
+# Delete this file prior to any autoconf run where you want to rebuild
+# files to pick up a version string change; and leave it stale to
+# minimize rebuild time after unrelated changes to configure sources.
+#
+# It is probably wise to add these two files to .gitignore, so that you
+# don't accidentally commit either generated file.
+#
+# Use the following line in your configure.ac, so that $(VERSION) will
+# automatically be up-to-date each time configure is run (and note that
+# since configure.ac no longer includes a version string, Makefile rules
+# should not depend on configure.ac for version updates).
+#
+# AC_INIT([GNU project],
+# m4_esyscmd([build-aux/git-version-gen .tarball-version]),
+# [bug-project@example])
+#
+# Then use the following lines in your Makefile.am, so that .version
+# will be present for dependencies, and so that .tarball-version will
+# exist in distribution tarballs.
+#
+# BUILT_SOURCES = $(top_srcdir)/.version
+# $(top_srcdir)/.version:
+# echo $(VERSION) > $@-t && mv $@-t $@
+# dist-hook:
+# echo $(VERSION) > $(distdir)/.tarball-version
+
+case $# in
+ 1|2) ;;
+ *) echo 1>&2 "Usage: $0 \$srcdir/.tarball-version" \
+ '[TAG-NORMALIZATION-SED-SCRIPT]'
+ exit 1;;
+esac
+
+tarball_version_file=$1
+tag_sed_script="${2:-s/x/x/}"
+nl='
+'
+
+# Avoid meddling by environment variable of the same name.
+v=
+v_from_git=
+
+# First see if there is a tarball-only version file.
+# then try "git describe", then default.
+if test -f $tarball_version_file
+then
+ v=`cat $tarball_version_file` || v=
+ case $v in
+ *$nl*) v= ;; # reject multi-line output
+ [0-9]*) ;;
+ *) v= ;;
+ esac
+ test -z "$v" \
+ && echo "$0: WARNING: $tarball_version_file is missing or damaged" 1>&2
+fi
+
+if test -n "$v"
+then
+ : # use $v
+# Otherwise, if there is at least one git commit involving the working
+# directory, and "git describe" output looks sensible, use that to
+# derive a version string.
+elif test "`git log -1 --pretty=format:x . 2>&1`" = x \
+ && v=`git describe --abbrev=4 --match='v*' HEAD 2>/dev/null \
+ || git describe --abbrev=4 HEAD 2>/dev/null` \
+ && v=`printf '%s\n' "$v" | sed "$tag_sed_script"` \
+ && case $v in
+ v[0-9]*) ;;
+ *) (exit 1) ;;
+ esac
+then
+ # Is this a new git that lists number of commits since the last
+ # tag or the previous older version that did not?
+ # Newer: v6.10-77-g0f8faeb
+ # Older: v6.10-g0f8faeb
+ case $v in
+ *-rc[0-9]) ;; # release candidate
+ *-*-*) : git describe is okay three part flavor ;;
+ *-*)
+ : git describe is older two part flavor
+ # Recreate the number of commits and rewrite such that the
+ # result is the same as if we were using the newer version
+ # of git describe.
+ vtag=`echo "$v" | sed 's/-.*//'`
+ commit_list=`git rev-list "$vtag"..HEAD 2>/dev/null` \
+ || { commit_list=failed;
+ echo "$0: WARNING: git rev-list failed" 1>&2; }
+ numcommits=`echo "$commit_list" | wc -l`
+ v=`echo "$v" | sed "s/\(.*\)-\(.*\)/\1-$numcommits-\2/"`;
+ test "$commit_list" = failed && v=UNKNOWN
+ ;;
+ esac
+
+ case $v in
+ *-rc[0-9])
+ # Remove the "g" in git describe's output string, to save a byte.
+ v=`echo "$v" | sed 's/\(.*\)-g/\1-/'`;
+ ;;
+ *)
+ # Change the first '-' to a '.', so version-comparing tools work properly.
+ # Remove the "g" in git describe's output string, to save a byte.
+ v=`echo "$v" | sed 's/-/./;s/\(.*\)-g/\1-/'`;
+ ;;
+ esac
+ v_from_git=1
+else
+ v=UNKNOWN
+fi
+
+v=`echo "$v" |sed 's/^v//'`
+
+# Test whether to append the "-dirty" suffix only if the version
+# string we're using came from git. I.e., skip the test if it's "UNKNOWN"
+# or if it came from .tarball-version.
+if test -n "$v_from_git"; then
+ # Don't declare a version "dirty" merely because a time stamp has changed.
+ git update-index --refresh > /dev/null 2>&1
+
+ dirty=`exec 2>/dev/null;git diff-index --name-only HEAD` || dirty=
+ case "$dirty" in
+ '') ;;
+ *) # Append the suffix only if there isn't one already.
+ case $v in
+ *-dirty) ;;
+ *) v="$v-dirty" ;;
+ esac ;;
+ esac
+fi
+
+# Omit the trailing newline, so that m4_esyscmd can use the result directly.
+echo "$v" | tr -d "$nl"
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/local/nls.h b/local/nls.h
new file mode 100644
index 0000000..f5abe05
--- /dev/null
+++ b/local/nls.h
@@ -0,0 +1,114 @@
+/*
+ * This header was copied from util-linux at fall 2011.
+ */
+
+#ifndef PROCPS_NG_NLS_H
+#define PROCPS_NG_NLS_H
+
+/* programs issuing textdomain() need PACKAGE string */
+#include "config.h"
+
+/* programs issuing bindtextdomain() also need LOCALEDIR string */
+#ifndef LOCALEDIR
+#define LOCALEDIR "/usr/share/locale"
+#endif
+
+#ifdef HAVE_LOCALE_H
+# include <locale.h>
+#else
+# undef setlocale
+# define setlocale(Category, Locale) /* empty */
+#endif
+
+#ifdef ENABLE_NLS
+# include <libintl.h>
+# define _(Text) gettext (Text)
+# ifdef gettext_noop
+# define N_(String) gettext_noop (String)
+# else
+# define N_(String) (String)
+# endif
+# define P_(Singular, Plural, n) ngettext (Singular, Plural, n)
+#else
+# undef bindtextdomain
+# define bindtextdomain(Domain, Directory) /* empty */
+# undef textdomain
+# define textdomain(Domain) /* empty */
+# define _(Text) (Text)
+# define N_(Text) (Text)
+# define P_(Singular, Plural, n) ((n) == 1 ? (Singular) : (Plural))
+#endif /* ENABLE_NLS */
+
+#ifdef HAVE_LANGINFO_H
+# include <langinfo.h>
+#else
+
+typedef int nl_item;
+extern char *langinfo_fallback(nl_item item);
+
+# define nl_langinfo langinfo_fallback
+
+enum {
+ CODESET = 1,
+ RADIXCHAR,
+ THOUSEP,
+ D_T_FMT,
+ D_FMT,
+ T_FMT,
+ T_FMT_AMPM,
+ AM_STR,
+ PM_STR,
+
+ DAY_1,
+ DAY_2,
+ DAY_3,
+ DAY_4,
+ DAY_5,
+ DAY_6,
+ DAY_7,
+
+ ABDAY_1,
+ ABDAY_2,
+ ABDAY_3,
+ ABDAY_4,
+ ABDAY_5,
+ ABDAY_6,
+ ABDAY_7,
+
+ MON_1,
+ MON_2,
+ MON_3,
+ MON_4,
+ MON_5,
+ MON_6,
+ MON_7,
+ MON_8,
+ MON_9,
+ MON_10,
+ MON_11,
+ MON_12,
+
+ ABMON_1,
+ ABMON_2,
+ ABMON_3,
+ ABMON_4,
+ ABMON_5,
+ ABMON_6,
+ ABMON_7,
+ ABMON_8,
+ ABMON_9,
+ ABMON_10,
+ ABMON_11,
+ ABMON_12,
+
+ ERA_D_FMT,
+ ERA_D_T_FMT,
+ ERA_T_FMT,
+ ALT_DIGITS,
+ CRNCYSTR,
+ YESEXPR,
+ NOEXPR
+};
+
+#endif /* !HAVE_LANGINFO_H */
+#endif /* PROCPS_NG_NLS_H */
diff --git a/local/procio.c b/local/procio.c
new file mode 100644
index 0000000..bbd7c84
--- /dev/null
+++ b/local/procio.c
@@ -0,0 +1,292 @@
+/*
+ * procio.c -- Replace stdio for read and write on files below
+ * proc to be able to read and write large buffers as well.
+ *
+ * Copyright (C) 2017 Werner Fink
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef _GNU_SOURCE
+# define _GNU_SOURCE
+#endif
+#include <errno.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+typedef struct pcookie {
+ char *buf;
+ size_t count;
+ size_t length;
+ off_t offset;
+ int fd;
+ int delim;
+ int final:1;
+} pcookie_t;
+
+static ssize_t proc_read(void *, char *, size_t);
+static ssize_t proc_write(void *, const char *, size_t);
+static int proc_close(void *);
+
+__extension__
+static cookie_io_functions_t procio = {
+ .read = proc_read,
+ .write = proc_write,
+ .seek = NULL,
+ .close = proc_close,
+};
+
+FILE *fprocopen(const char *path, const char *mode)
+{
+ pcookie_t *cookie = NULL;
+ FILE *handle = NULL;
+ mode_t flags = 0;
+ size_t len = 0;
+ int c, delim;
+
+ if (!mode || !(len = strlen(mode))) {
+ errno = EINVAL;
+ goto out;
+ }
+
+ /* No append mode possible */
+ switch (mode[0]) {
+ case 'r':
+ flags |= O_RDONLY;
+ break;
+ case 'w':
+ flags |= O_WRONLY|O_TRUNC;
+ break;
+ default:
+ errno = EINVAL;
+ goto out;
+ }
+
+ delim = ','; /* default delimeter is the comma */
+ for (c = 1; c < len; c++) {
+ switch (mode[c]) {
+ case '\0':
+ break;
+ case '+':
+ errno = EINVAL;
+ goto out;
+ case 'e':
+ flags |= O_CLOEXEC;
+ continue;
+ case 'b':
+ case 'm':
+ case 'x':
+ /* ignore this */
+ continue;
+ default:
+ if (mode[c] == ' ' || (mode[c] >= ',' && mode[c] <= '.') || mode[c] == ':')
+ delim = mode[c];
+ else {
+ errno = EINVAL;
+ goto out;
+ }
+ break;
+ }
+ break;
+ }
+
+ cookie = (pcookie_t *)malloc(sizeof(pcookie_t));
+ if (!cookie)
+ goto out;
+ cookie->count = BUFSIZ;
+ cookie->buf = (char *)malloc(cookie->count);
+ if (!cookie->buf) {
+ int errsv = errno;
+ free(cookie);
+ errno = errsv;
+ goto out;
+ }
+ cookie->final = 0;
+ cookie->offset = 0;
+ cookie->length = 0;
+ cookie->delim = delim;
+
+ cookie->fd = openat(AT_FDCWD, path, flags);
+ if (cookie->fd < 0) {
+ int errsv = errno;
+ free(cookie->buf);
+ free(cookie);
+ errno = errsv;
+ goto out;
+ }
+
+ handle = fopencookie(cookie, mode, procio);
+ if (!handle) {
+ int errsv = errno;
+ close(cookie->fd);
+ free(cookie->buf);
+ free(cookie);
+ errno = errsv;
+ goto out;
+ }
+out:
+ return handle;
+}
+
+static
+ssize_t proc_read(void *c, char *buf, size_t count)
+{
+ pcookie_t *cookie = c;
+ ssize_t len = -1;
+ void *ptr;
+
+ if (cookie->count < count) {
+ ptr = realloc(cookie->buf, count);
+ if (!ptr)
+ goto out;
+ cookie->buf = ptr;
+ cookie->count = count;
+ }
+
+ while (!cookie->final) {
+ len = read(cookie->fd, cookie->buf, cookie->count);
+
+ if (len <= 0) {
+ if (len == 0) {
+ /* EOF */
+ cookie->final = 1;
+ cookie->buf[cookie->length] = '\0';
+ break;
+ }
+ goto out; /* error or done */
+ }
+
+ cookie->length = len;
+
+ if (cookie->length < cookie->count)
+ continue;
+
+ /* Likly to small buffer here */
+
+ lseek(cookie->fd, 0, SEEK_SET); /* reset for a retry */
+
+ ptr = realloc(cookie->buf, cookie->count += BUFSIZ);
+ if (!ptr)
+ goto out;
+ cookie->buf = ptr;
+ }
+
+ len = count;
+ if (cookie->length - cookie->offset < len)
+ len = cookie->length - cookie->offset;
+
+ if (len < 0)
+ len = 0;
+
+ if (len) {
+ (void)memcpy(buf, cookie->buf+cookie->offset, len);
+ cookie->offset += len;
+ } else
+ len = EOF;
+out:
+ return len;
+}
+
+#define LINELEN 4096
+
+static
+ssize_t proc_write(void *c, const char *buf, size_t count)
+{
+ pcookie_t *cookie = c;
+ ssize_t len = -1;
+ void *ptr;
+
+ if (!count) {
+ len = 0;
+ goto out;
+ }
+
+ /* NL is the final input */
+ cookie->final = memrchr(buf, '\n', count) ? 1 : 0;
+
+ while (cookie->count < cookie->offset + count) {
+ ptr = realloc(cookie->buf, cookie->count += count);
+ if (!ptr)
+ goto out;
+ cookie->buf = ptr;
+ }
+
+ len = count;
+ (void)memcpy(cookie->buf+cookie->offset, buf, count);
+ cookie->offset += count;
+
+ if (cookie->final) {
+ len = write(cookie->fd, cookie->buf, cookie->offset);
+ if (len < 0 && errno == EINVAL) {
+ size_t offset;
+ off_t amount;
+ char *token;
+ /*
+ * Oops buffer might be to large, split buffer into
+ * pieces at delimeter if provided
+ */
+ if (!cookie->delim)
+ goto out; /* Hey dude?! */
+ offset = 0;
+ do {
+ token = NULL;
+ if (cookie->offset > LINELEN)
+ token = (char*)memrchr(cookie->buf+offset, cookie->delim, LINELEN);
+ else
+ token = (char*)memrchr(cookie->buf+offset, '\n', cookie->offset);
+ if (token)
+ *token = '\n';
+ else {
+ errno = EINVAL;
+ len = -1;
+ goto out; /* Wrong/Missing delimeter? */
+ }
+ if (offset > 0)
+ lseek(cookie->fd, 1, SEEK_CUR);
+
+ amount = token-(cookie->buf+offset)+1;
+ ptr = cookie->buf+offset;
+
+ len = write(cookie->fd, ptr, amount);
+ if (len < 1 || len >= cookie->offset)
+ break;
+
+ offset += len;
+ cookie->offset -= len;
+
+ } while (cookie->offset > 0);
+ }
+ if (len > 0)
+ len = count;
+ }
+out:
+ return len;
+}
+
+static
+int proc_close(void *c)
+{
+ pcookie_t *cookie = c;
+ close(cookie->fd);
+ free(cookie->buf);
+ free(cookie);
+ return 0;
+}
diff --git a/local/procio.h b/local/procio.h
new file mode 100644
index 0000000..043506a
--- /dev/null
+++ b/local/procio.h
@@ -0,0 +1,6 @@
+#ifndef PROCPS_PROC_PROCIO_H
+#define PROCPS_PROC_PROCIO_H
+
+FILE *fprocopen(const char *path, const char *mode);
+
+#endif
diff --git a/local/rpmatch.h b/local/rpmatch.h
new file mode 100644
index 0000000..2541aa3
--- /dev/null
+++ b/local/rpmatch.h
@@ -0,0 +1,9 @@
+#ifndef PROCPS_NG_RPMATCH_H
+#define PROCPS_NG_RPMATCH_H
+
+#ifndef HAVE_RPMATCH
+#define rpmatch(r) \
+ (*r == 'y' || *r == 'Y' ? 1 : *r == 'n' || *r == 'N' ? 0 : -1)
+#endif
+
+#endif /* PROCPS_NG_RPMATCH_H */
diff --git a/local/signals.c b/local/signals.c
new file mode 100644
index 0000000..caff420
--- /dev/null
+++ b/local/signals.c
@@ -0,0 +1,316 @@
+/*
+ * signals.c - signal name, and number, conversions
+ * Copyright 1998-2003 by Albert Cahalan
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <ctype.h>
+#include <signal.h>
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include "signals.h"
+#include "c.h"
+
+/* Linux signals:
+ *
+ * SIGSYS is required by Unix98.
+ * SIGEMT is part of SysV, BSD, and ancient UNIX tradition.
+ *
+ * They are provided by these Linux ports: alpha, mips, sparc, and sparc64.
+ * You get SIGSTKFLT and SIGUNUSED instead on i386, m68k, ppc, and arm.
+ * (this is a Linux & libc bug -- both must be fixed)
+ *
+ * Total garbage: SIGIO SIGINFO SIGIOT SIGCLD
+ * (popular ones are handled as aliases)
+ * SIGLOST
+ * (except on the Hurd; reused to mean a server died)
+ * Nearly garbage: SIGSTKFLT SIGUNUSED (nothing else to fill slots)
+ */
+
+/* Linux 2.3.29 replaces SIGUNUSED with the standard SIGSYS signal */
+#ifndef SIGSYS
+# warning Standards require that <signal.h> define SIGSYS
+# define SIGSYS SIGUNUSED
+#endif
+
+/* If we see both, it is likely SIGSTKFLT (junk) was replaced. */
+#ifdef SIGEMT
+# undef SIGSTKFLT
+#endif
+
+#ifndef SIGRTMIN
+# warning Standards require that <signal.h> define SIGRTMIN; assuming 32
+# define SIGRTMIN 32
+#endif
+
+/* It seems the SPARC libc does not know the kernel supports SIGPWR. */
+#if defined(__linux__) && !defined(SIGPWR)
+# warning Your header files lack SIGPWR. (assuming it is number 29)
+# define SIGPWR 29
+#endif
+
+typedef struct mapstruct {
+ const char *name;
+ int num;
+} mapstruct;
+
+
+static const mapstruct sigtable[] = {
+ {"ABRT", SIGABRT}, /* IOT */
+ {"ALRM", SIGALRM},
+ {"BUS", SIGBUS},
+ {"CHLD", SIGCHLD}, /* CLD */
+ {"CONT", SIGCONT},
+#ifdef SIGEMT
+ {"EMT", SIGEMT},
+#endif
+ {"FPE", SIGFPE},
+ {"HUP", SIGHUP},
+ {"ILL", SIGILL},
+ {"INT", SIGINT},
+ {"KILL", SIGKILL},
+#if defined(__GNU__)
+ {"LOST", SIGLOST}, /* Hurd-specific */
+#endif
+ {"PIPE", SIGPIPE},
+ {"POLL", SIGPOLL}, /* IO */
+ {"PROF", SIGPROF},
+#ifdef SIGPWR
+ {"PWR", SIGPWR},
+#endif
+ {"QUIT", SIGQUIT},
+ {"SEGV", SIGSEGV},
+#ifdef SIGSTKFLT
+ {"STKFLT", SIGSTKFLT},
+#endif
+ {"STOP", SIGSTOP},
+ {"SYS", SIGSYS}, /* UNUSED */
+ {"TERM", SIGTERM},
+ {"TRAP", SIGTRAP},
+ {"TSTP", SIGTSTP},
+ {"TTIN", SIGTTIN},
+ {"TTOU", SIGTTOU},
+ {"URG", SIGURG},
+ {"USR1", SIGUSR1},
+ {"USR2", SIGUSR2},
+ {"VTALRM", SIGVTALRM},
+ {"WINCH", SIGWINCH},
+ {"XCPU", SIGXCPU},
+ {"XFSZ", SIGXFSZ}
+};
+
+
+#define number_of_signals (sizeof(sigtable)/sizeof(mapstruct))
+
+#define XJOIN(a, b) JOIN(a, b)
+#define JOIN(a, b) a##b
+#define STATIC_ASSERT(x) typedef int XJOIN(static_assert_on_line_,__LINE__)[(x) ? 1 : -1]
+
+/* sanity check */
+#if defined(__linux__)
+STATIC_ASSERT(number_of_signals == 31);
+#elif defined(__FreeBSD_kernel__) || defined(__FreeBSD__)
+STATIC_ASSERT(number_of_signals == 30);
+#elif defined(__GNU__)
+STATIC_ASSERT(number_of_signals == 31);
+#elif defined(__CYGWIN__)
+STATIC_ASSERT(number_of_signals == 31);
+#else
+# warning Unknown operating system; assuming number_of_signals is correct
+#endif
+
+static int compare_signal_names(const void *a, const void *b){
+ return strcasecmp( ((const mapstruct*)a)->name, ((const mapstruct*)b)->name );
+}
+
+
+const char *get_sigtable_name(int row)
+{
+ if (row < 0 || row >= number_of_signals)
+ return NULL;
+ return sigtable[row].name;
+}
+
+const int get_sigtable_num(int row)
+{
+ if (row < 0 || row >= number_of_signals)
+ return -1;
+ return sigtable[row].num;
+}
+
+/* return -1 on failure */
+int signal_name_to_number(const char *restrict name){
+ long val;
+ int offset;
+
+ /* clean up name */
+ if(!strncasecmp(name,"SIG",3))
+ name += 3;
+
+ if(!strcasecmp(name,"CLD"))
+ return SIGCHLD;
+ if(!strcasecmp(name,"IO"))
+ return SIGPOLL;
+ if(!strcasecmp(name,"IOT"))
+ return SIGABRT;
+ /* search the table */
+ {
+ const mapstruct ms = {name,0};
+ const mapstruct *restrict const ptr = bsearch(
+ &ms,
+ sigtable,
+ number_of_signals,
+ sizeof(mapstruct),
+ compare_signal_names);
+ if(ptr)
+ return ptr->num;
+ }
+
+ if(!strcasecmp(name,"RTMIN"))
+ return SIGRTMIN;
+ if(!strcasecmp(name,"EXIT"))
+ return 0;
+ if(!strcasecmp(name,"NULL"))
+ return 0;
+
+ offset = 0;
+ if(!strncasecmp(name,"RTMIN+",6)) {
+ name += 6;
+ offset = SIGRTMIN;
+ }
+
+ /* not found, so try as a number */
+ {
+ char *endp;
+ val = strtol(name,&endp,10);
+ if(*endp || endp==name)
+ return -1; /* not valid */
+ }
+ if(val<0 || val+SIGRTMIN>127)
+ return -1; /* not valid */
+ return val+offset;
+}
+
+const char *signal_number_to_name(int signo)
+{
+ static char buf[32];
+ int n = number_of_signals;
+ signo &= 0x7f; /* need to process exit values too */
+ while (n--) {
+ if(sigtable[n].num==signo)
+ return sigtable[n].name;
+ }
+ if (signo == SIGRTMIN)
+ return "RTMIN";
+ if (signo)
+ sprintf(buf, "RTMIN+%d", signo-SIGRTMIN);
+ else
+ strcpy(buf,"0"); /* AIX has NULL; Solaris has EXIT */
+ return buf;
+}
+
+int skill_sig_option(int *argc, char **argv)
+{
+ int i;
+ int signo = -1;
+ for (i = 1; i < *argc; i++) {
+ if (argv[i][0] == '-') {
+ signo = signal_name_to_number(argv[i] + 1);
+ if (-1 < signo) {
+ memmove(argv + i, argv + i + 1,
+ sizeof(char *) * (*argc - i));
+ (*argc)--;
+ return signo;
+ }
+ }
+ }
+ return signo;
+}
+
+
+/* strtosig is similar to print_given_signals() with exception, that
+ * this function takes a string, and converts it to a signal name or
+ * a number string depending on which way a round conversion is
+ * queried. Non-existing signals return NULL. Notice that the
+ * returned string should be freed after use.
+ */
+char *strtosig(const char *restrict s)
+{
+ char *converted = NULL, *copy, *p, *endp;
+ int i, numsignal = 0;
+
+ copy = strdup(s);
+ if (!copy)
+ xerrx(EXIT_FAILURE, "cannot duplicate string");
+ for (p = copy; *p != '\0'; p++)
+ *p = toupper(*p);
+ p = copy;
+ if (p[0] == 'S' && p[1] == 'I' && p[2] == 'G')
+ p += 3;
+ if (isdigit(*p)){
+ numsignal = strtol(s,&endp,10);
+ if(*endp || endp==s){
+ free(p);
+ return NULL; /* not valid */
+ }
+ }
+ if (numsignal){
+ for (i = 0; i < number_of_signals; i++){
+ if (numsignal == get_sigtable_num(i)){
+ converted = strdup(get_sigtable_name(i));
+ break;
+ }
+ }
+ } else {
+ for (i = 0; i < number_of_signals; i++){
+ if (strcmp(p, get_sigtable_name(i)) == 0){
+ converted = malloc(12);
+ if (converted)
+ snprintf(converted, 12, "%d", sigtable[i].num);
+ break;
+ }
+ }
+ }
+ free(copy);
+ return converted;
+}
+
+void unix_print_signals(void)
+{
+ int pos = 0;
+ int i = 0;
+ while(++i <= number_of_signals){
+ if(i-1) printf("%c", (pos>73)?(pos=0,'\n'):(pos++,' ') );
+ pos += printf("%s", signal_number_to_name(i));
+ }
+ printf("\n");
+}
+
+void pretty_print_signals(void)
+{
+ int i = 0;
+ while(++i <= number_of_signals){
+ int n;
+ n = printf("%2d %s", i, signal_number_to_name(i));
+ if(n>0 && i%7)
+ printf("%s", " \0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" + n);
+ else
+ printf("\n");
+ }
+ if((i-1)%7) printf("\n");
+}
+
diff --git a/local/signals.h b/local/signals.h
new file mode 100644
index 0000000..db23e9f
--- /dev/null
+++ b/local/signals.h
@@ -0,0 +1,33 @@
+#ifndef PROC_SIG_H
+#define PROC_SIG_H
+/*
+ * Copyright 1998-2003 by Albert Cahalan; all rights resered.
+ * This file may be used subject to the terms and conditions of the
+ * GNU Library General Public License Version 2, or any later version
+ * at your option, as published by the Free Software Foundation.
+ * 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 Library General Public License for more details.
+ */
+
+extern const int number_of_signals;
+
+extern const char *get_sigtable_name(int row);
+
+extern const int get_sigtable_num(int row);
+
+/* return -1 on failure */
+extern int signal_name_to_number(const char *__restrict name);
+
+extern const char *signal_number_to_name(int signo);
+
+extern int skill_sig_option(int *argc, char **argv);
+
+extern char *strtosig(const char *restrict s);
+
+extern void pretty_print_signals(void);
+
+extern void unix_print_signals(void);
+
+#endif
diff --git a/local/strutils.c b/local/strutils.c
new file mode 100644
index 0000000..e5245db
--- /dev/null
+++ b/local/strutils.c
@@ -0,0 +1,123 @@
+/*
+ * strutils.c - various string routines shared by commands
+ * This file was copied from util-linux at fall 2011.
+ *
+ * Copyright (C) 2010 Karel Zak <kzak@redhat.com>
+ * Copyright (C) 2010 Davidlohr Bueso <dave@gnu.org>
+ *
+ * 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 2
+ * 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
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include <stdlib.h>
+#include <ctype.h>
+
+#include "c.h"
+#include "strutils.h"
+
+/*
+ * same as strtol(3) but exit on failure instead of returning crap
+ */
+long strtol_or_err(const char *str, const char *errmesg)
+{
+ long num;
+ char *end = NULL;
+
+ if (str != NULL && *str != '\0') {
+ errno = 0;
+ num = strtol(str, &end, 10);
+ if (errno == 0 && str != end && end != NULL && *end == '\0')
+ return num;
+ }
+ error(EXIT_FAILURE, errno, "%s: '%s'", errmesg, str);
+ return 0;
+}
+
+/*
+ * same as strtod(3) but exit on failure instead of returning crap
+ */
+double strtod_or_err(const char *str, const char *errmesg)
+{
+ double num;
+ char *end = NULL;
+
+ if (str != NULL && *str != '\0') {
+ errno = 0;
+ num = strtod(str, &end);
+ if (errno == 0 && str != end && end != NULL && *end == '\0')
+ return num;
+ }
+ error(EXIT_FAILURE, errno, "%s: '%s'", errmesg, str);
+ return 0;
+}
+
+/*
+ * Covert a string into a double in a non-locale aware way.
+ * This means the decimal point can be either . or ,
+ * Also means you cannot use the other for thousands separator
+ *
+ * Exits on failure like its other _or_err cousins
+ */
+double strtod_nol_or_err(char *str, const char *errmesg)
+{
+ double num;
+ const char *cp, *radix;
+ double mult;
+ int negative = 0;
+
+ if (str != NULL && *str != '\0') {
+ num = 0.0;
+ cp = str;
+ /* strip leading spaces */
+ while (isspace(*cp))
+ cp++;
+
+ /* get sign */
+ if (*cp == '-') {
+ negative = 1;
+ cp++;
+ } else if (*cp == '+')
+ cp++;
+
+ /* find radix */
+ radix = cp;
+ mult=0.1;
+ while(isdigit(*radix)) {
+ radix++;
+ mult *= 10;
+ }
+ while(isdigit(*cp)) {
+ num += (*cp - '0') * mult;
+ mult /= 10;
+ cp++;
+ }
+ /* got the integers */
+ if (*cp == '\0')
+ return (negative?-num:num);
+ if (*cp != '.' && *cp != ',')
+ error(EXIT_FAILURE, EINVAL, "%s: '%s'", errmesg, str);
+
+ cp++;
+ mult = 0.1;
+ while(isdigit(*cp)) {
+ num += (*cp - '0') * mult;
+ mult /= 10;
+ cp++;
+ }
+ if (*cp == '\0')
+ return (negative?-num:num);
+ }
+ error(EXIT_FAILURE, errno, "%s: '%s'", errmesg, str);
+ return 0;
+}
diff --git a/local/strutils.h b/local/strutils.h
new file mode 100644
index 0000000..85a6192
--- /dev/null
+++ b/local/strutils.h
@@ -0,0 +1,12 @@
+/*
+ * This header was copied from util-linux at fall 2011.
+ */
+
+#ifndef PROCPS_NG_STRUTILS
+#define PROCPS_NG_STRUTILS
+
+extern long strtol_or_err(const char *str, const char *errmesg);
+extern double strtod_or_err(const char *str, const char *errmesg);
+double strtod_nol_or_err(char *str, const char *errmesg);
+
+#endif
diff --git a/local/strverscmp.c b/local/strverscmp.c
new file mode 100644
index 0000000..e71ecd0
--- /dev/null
+++ b/local/strverscmp.c
@@ -0,0 +1,158 @@
+/* Compare strings while treating digits characters numerically.
+ Copyright (C) 1997, 2002, 2005 Free Software Foundation, Inc.
+ This file is part of the libiberty library.
+ Contributed by Jean-François Bignolles <bignolle@ecoledoc.ibp.fr>, 1997.
+
+ Libiberty is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ Libiberty 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
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, write to the Free
+ Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301 USA. */
+
+/* #include "libiberty.h" */
+/* #include "safe-ctype.h" */
+#include <ctype.h>
+
+/*
+@deftypefun int strverscmp (const char *@var{s1}, const char *@var{s2})
+The @code{strverscmp} function compares the string @var{s1} against
+@var{s2}, considering them as holding indices/version numbers. Return
+value follows the same conventions as found in the @code{strverscmp}
+function. In fact, if @var{s1} and @var{s2} contain no digits,
+@code{strverscmp} behaves like @code{strcmp}.
+
+Basically, we compare strings normally (character by character), until
+we find a digit in each string - then we enter a special comparison
+mode, where each sequence of digits is taken as a whole. If we reach the
+end of these two parts without noticing a difference, we return to the
+standard comparison mode. There are two types of numeric parts:
+"integral" and "fractional" (those begin with a '0'). The types
+of the numeric parts affect the way we sort them:
+
+@itemize @bullet
+@item
+integral/integral: we compare values as you would expect.
+
+@item
+fractional/integral: the fractional part is less than the integral one.
+Again, no surprise.
+
+@item
+fractional/fractional: the things become a bit more complex.
+If the common prefix contains only leading zeroes, the longest part is less
+than the other one; else the comparison behaves normally.
+@end itemize
+
+@smallexample
+strverscmp ("no digit", "no digit")
+ @result{} 0 // @r{same behavior as strcmp.}
+strverscmp ("item#99", "item#100")
+ @result{} <0 // @r{same prefix, but 99 < 100.}
+strverscmp ("alpha1", "alpha001")
+ @result{} >0 // @r{fractional part inferior to integral one.}
+strverscmp ("part1_f012", "part1_f01")
+ @result{} >0 // @r{two fractional parts.}
+strverscmp ("foo.009", "foo.0")
+ @result{} <0 // @r{idem, but with leading zeroes only.}
+@end smallexample
+
+This function is especially useful when dealing with filename sorting,
+because filenames frequently hold indices/version numbers.
+@end deftypefun
+
+*/
+
+/* states: S_N: normal, S_I: comparing integral part, S_F: comparing
+ fractional parts, S_Z: idem but with leading Zeroes only */
+#define S_N 0x0
+#define S_I 0x4
+#define S_F 0x8
+#define S_Z 0xC
+
+/* result_type: CMP: return diff; LEN: compare using len_diff/diff */
+#define CMP 2
+#define LEN 3
+
+
+/* Compare S1 and S2 as strings holding indices/version numbers,
+ returning less than, equal to or greater than zero if S1 is less than,
+ equal to or greater than S2 (for more info, see the Glibc texinfo doc). */
+
+int
+strverscmp (const char *s1, const char *s2)
+{
+ const unsigned char *p1 = (const unsigned char *) s1;
+ const unsigned char *p2 = (const unsigned char *) s2;
+ unsigned char c1, c2;
+ int state;
+ int diff;
+
+ /* Symbol(s) 0 [1-9] others (padding)
+ Transition (10) 0 (01) d (00) x (11) - */
+ static const unsigned int next_state[] =
+ {
+ /* state x d 0 - */
+ /* S_N */ S_N, S_I, S_Z, S_N,
+ /* S_I */ S_N, S_I, S_I, S_I,
+ /* S_F */ S_N, S_F, S_F, S_F,
+ /* S_Z */ S_N, S_F, S_Z, S_Z
+ };
+
+ static const int result_type[] =
+ {
+ /* state x/x x/d x/0 x/- d/x d/d d/0 d/-
+ 0/x 0/d 0/0 0/- -/x -/d -/0 -/- */
+
+ /* S_N */ CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP,
+ CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP,
+ /* S_I */ CMP, -1, -1, CMP, +1, LEN, LEN, CMP,
+ +1, LEN, LEN, CMP, CMP, CMP, CMP, CMP,
+ /* S_F */ CMP, CMP, CMP, CMP, CMP, LEN, CMP, CMP,
+ CMP, CMP, CMP, CMP, CMP, CMP, CMP, CMP,
+ /* S_Z */ CMP, +1, +1, CMP, -1, CMP, CMP, CMP,
+ -1, CMP, CMP, CMP
+ };
+
+ if (p1 == p2)
+ return 0;
+
+ c1 = *p1++;
+ c2 = *p2++;
+ /* Hint: '0' is a digit too. */
+ state = S_N | ((c1 == '0') + (isdigit (c1) != 0));
+
+ while ((diff = c1 - c2) == 0 && c1 != '\0')
+ {
+ state = next_state[state];
+ c1 = *p1++;
+ c2 = *p2++;
+ state |= (c1 == '0') + (isdigit (c1) != 0);
+ }
+
+ state = result_type[state << 2 | (((c2 == '0') + (isdigit (c2) != 0)))];
+
+ switch (state)
+ {
+ case CMP:
+ return diff;
+
+ case LEN:
+ while (isdigit (*p1++))
+ if (!isdigit (*p2++))
+ return 1;
+
+ return isdigit (*p2) ? -1 : diff;
+
+ default:
+ return state;
+ }
+}
diff --git a/local/tests.h b/local/tests.h
new file mode 100644
index 0000000..324cc22
--- /dev/null
+++ b/local/tests.h
@@ -0,0 +1,29 @@
+
+#ifndef PROCPS_NG_TESTS_H
+#define PROCPS_NG_TESTS_H
+
+#include <stdio.h>
+
+typedef int (*TestFunction)(void *data);
+
+char *testname;
+
+
+static inline int run_tests(TestFunction *list, void *data)
+{
+ int i;
+ TestFunction current;
+
+ for (i=0; list[i] != NULL; i++) {
+ testname = NULL;
+ current = list[i];
+ if (!current(data)) {
+ fprintf(stderr, "FAIL: %s\n", testname);
+ return EXIT_FAILURE;
+ } else {
+ fprintf(stderr, "PASS: %s\n", testname);
+ }
+ }
+ return EXIT_SUCCESS;
+}
+#endif
diff --git a/local/xalloc.h b/local/xalloc.h
new file mode 100644
index 0000000..a804689
--- /dev/null
+++ b/local/xalloc.h
@@ -0,0 +1,60 @@
+/*
+ * This header was copied from util-linux at fall 2011.
+ */
+
+/*
+ * General memory allocation wrappers for malloc, realloc, calloc
+ * and strdup.
+ */
+
+#ifndef PROCPS_NG_XALLOC_H
+#define PROCPS_NG_XALLOC_H
+
+#include <stdlib.h>
+#include <string.h>
+
+#include "c.h"
+
+#ifndef XALLOC_EXIT_CODE
+# define XALLOC_EXIT_CODE EXIT_FAILURE
+#endif
+
+static inline __ul_alloc_size(1)
+void *xmalloc(const size_t size)
+{
+ void *ret = malloc(size);
+ if (!ret && size)
+ xerrx(XALLOC_EXIT_CODE, "cannot allocate %zu bytes", size);
+ return ret;
+}
+
+static inline __ul_alloc_size(2)
+void *xrealloc(void *ptr, const size_t size)
+{
+ void *ret = realloc(ptr, size);
+ if (!ret && size)
+ xerrx(XALLOC_EXIT_CODE, "cannot allocate %zu bytes", size);
+ return ret;
+}
+
+static inline __ul_calloc_size(1, 2)
+void *xcalloc(const size_t nelems, const size_t size)
+{
+ void *ret = calloc(nelems, size);
+ if (!ret && size && nelems)
+ xerrx(XALLOC_EXIT_CODE, "cannot allocate %zu bytes", nelems*size);
+ return ret;
+}
+
+static inline char *xstrdup(const char *str)
+{
+ char *ret;
+ if (!str)
+ return NULL;
+ ret = strdup(str);
+ if (!ret)
+ xerrx(XALLOC_EXIT_CODE, "cannot duplicate string");
+ return ret;
+}
+
+#endif /* PROCPS_NG_XALLOC_H */
diff --git a/ltmain.sh b/ltmain.sh
new file mode 100755
index 0000000..9b12fbb
--- /dev/null
+++ b/ltmain.sh
@@ -0,0 +1,11448 @@
+#! /usr/bin/env sh
+## DO NOT EDIT - This file generated from ./build-aux/ltmain.in
+## by inline-source v2019-02-19.15
+
+# libtool (GNU libtool) 2.4.7
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
+
+# Copyright (C) 1996-2019, 2021-2022 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions. There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool 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 2 of the License, or
+# (at your option) any later version.
+#
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool 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
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+
+
+PROGRAM=libtool
+PACKAGE=libtool
+VERSION="2.4.7 Debian-2.4.7-5"
+package_revision=2.4.7
+
+
+## ------ ##
+## Usage. ##
+## ------ ##
+
+# Run './libtool --help' for help with using this script from the
+# command line.
+
+
+## ------------------------------- ##
+## User overridable command paths. ##
+## ------------------------------- ##
+
+# After configure completes, it has a better idea of some of the
+# shell tools we need than the defaults used by the functions shared
+# with bootstrap, so set those here where they can still be over-
+# ridden by the user, but otherwise take precedence.
+
+: ${AUTOCONF="autoconf"}
+: ${AUTOMAKE="automake"}
+
+
+## -------------------------- ##
+## Source external libraries. ##
+## -------------------------- ##
+
+# Much of our low-level functionality needs to be sourced from external
+# libraries, which are installed to $pkgauxdir.
+
+# Set a version string for this script.
+scriptversion=2019-02-19.15; # UTC
+
+# General shell script boiler plate, and helper functions.
+# Written by Gary V. Vaughan, 2004
+
+# This is free software. There is NO warranty; not even for
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# Copyright (C) 2004-2019, 2021 Bootstrap Authors
+#
+# This file is dual licensed under the terms of the MIT license
+# <https://opensource.org/license/MIT>, and GPL version 2 or later
+# <http://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of
+# these licenses when using or redistributing this software or any of
+# the files within it. See the URLs above, or the file `LICENSE`
+# included in the Bootstrap distribution for the full license texts.
+
+# Please report bugs or propose patches to:
+# <https://github.com/gnulib-modules/bootstrap/issues>
+
+
+## ------ ##
+## Usage. ##
+## ------ ##
+
+# Evaluate this file near the top of your script to gain access to
+# the functions and variables defined here:
+#
+# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh
+#
+# If you need to override any of the default environment variable
+# settings, do that before evaluating this file.
+
+
+## -------------------- ##
+## Shell normalisation. ##
+## -------------------- ##
+
+# Some shells need a little help to be as Bourne compatible as possible.
+# Before doing anything else, make sure all that help has been provided!
+
+DUALCASE=1; export DUALCASE # for MKS sh
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
+ emulate sh
+ NULLCMD=:
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac
+fi
+
+# NLS nuisances: We save the old values in case they are required later.
+_G_user_locale=
+_G_safe_locale=
+for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+do
+ eval "if test set = \"\${$_G_var+set}\"; then
+ save_$_G_var=\$$_G_var
+ $_G_var=C
+ export $_G_var
+ _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\"
+ _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\"
+ fi"
+done
+# These NLS vars are set unconditionally (bootstrap issue #24). Unset those
+# in case the environment reset is needed later and the $save_* variant is not
+# defined (see the code above).
+LC_ALL=C
+LANGUAGE=C
+export LANGUAGE LC_ALL
+
+# Make sure IFS has a sensible default
+sp=' '
+nl='
+'
+IFS="$sp $nl"
+
+# There are apparently some retarded systems that use ';' as a PATH separator!
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
+fi
+
+
+# func_unset VAR
+# --------------
+# Portably unset VAR.
+# In some shells, an 'unset VAR' statement leaves a non-zero return
+# status if VAR is already unset, which might be problematic if the
+# statement is used at the end of a function (thus poisoning its return
+# value) or when 'set -e' is active (causing even a spurious abort of
+# the script in this case).
+func_unset ()
+{
+ { eval $1=; (eval unset $1) >/dev/null 2>&1 && eval unset $1 || : ; }
+}
+
+
+# Make sure CDPATH doesn't cause `cd` commands to output the target dir.
+func_unset CDPATH
+
+# Make sure ${,E,F}GREP behave sanely.
+func_unset GREP_OPTIONS
+
+
+## ------------------------- ##
+## Locate command utilities. ##
+## ------------------------- ##
+
+
+# func_executable_p FILE
+# ----------------------
+# Check that FILE is an executable regular file.
+func_executable_p ()
+{
+ test -f "$1" && test -x "$1"
+}
+
+
+# func_path_progs PROGS_LIST CHECK_FUNC [PATH]
+# --------------------------------------------
+# Search for either a program that responds to --version with output
+# containing "GNU", or else returned by CHECK_FUNC otherwise, by
+# trying all the directories in PATH with each of the elements of
+# PROGS_LIST.
+#
+# CHECK_FUNC should accept the path to a candidate program, and
+# set $func_check_prog_result if it truncates its output less than
+# $_G_path_prog_max characters.
+func_path_progs ()
+{
+ _G_progs_list=$1
+ _G_check_func=$2
+ _G_PATH=${3-"$PATH"}
+
+ _G_path_prog_max=0
+ _G_path_prog_found=false
+ _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:}
+ for _G_dir in $_G_PATH; do
+ IFS=$_G_save_IFS
+ test -z "$_G_dir" && _G_dir=.
+ for _G_prog_name in $_G_progs_list; do
+ for _exeext in '' .EXE; do
+ _G_path_prog=$_G_dir/$_G_prog_name$_exeext
+ func_executable_p "$_G_path_prog" || continue
+ case `"$_G_path_prog" --version 2>&1` in
+ *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;;
+ *) $_G_check_func $_G_path_prog
+ func_path_progs_result=$func_check_prog_result
+ ;;
+ esac
+ $_G_path_prog_found && break 3
+ done
+ done
+ done
+ IFS=$_G_save_IFS
+ test -z "$func_path_progs_result" && {
+ echo "no acceptable sed could be found in \$PATH" >&2
+ exit 1
+ }
+}
+
+
+# We want to be able to use the functions in this file before configure
+# has figured out where the best binaries are kept, which means we have
+# to search for them ourselves - except when the results are already set
+# where we skip the searches.
+
+# Unless the user overrides by setting SED, search the path for either GNU
+# sed, or the sed that truncates its output the least.
+test -z "$SED" && {
+ _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+ for _G_i in 1 2 3 4 5 6 7; do
+ _G_sed_script=$_G_sed_script$nl$_G_sed_script
+ done
+ echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed
+ _G_sed_script=
+
+ func_check_prog_sed ()
+ {
+ _G_path_prog=$1
+
+ _G_count=0
+ printf 0123456789 >conftest.in
+ while :
+ do
+ cat conftest.in conftest.in >conftest.tmp
+ mv conftest.tmp conftest.in
+ cp conftest.in conftest.nl
+ echo '' >> conftest.nl
+ "$_G_path_prog" -f conftest.sed <conftest.nl >conftest.out 2>/dev/null || break
+ diff conftest.out conftest.nl >/dev/null 2>&1 || break
+ _G_count=`expr $_G_count + 1`
+ if test "$_G_count" -gt "$_G_path_prog_max"; then
+ # Best one so far, save it but keep looking for a better one
+ func_check_prog_result=$_G_path_prog
+ _G_path_prog_max=$_G_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test 10 -lt "$_G_count" && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out
+ }
+
+ func_path_progs "sed gsed" func_check_prog_sed "$PATH:/usr/xpg4/bin"
+ rm -f conftest.sed
+ SED=$func_path_progs_result
+}
+
+
+# Unless the user overrides by setting GREP, search the path for either GNU
+# grep, or the grep that truncates its output the least.
+test -z "$GREP" && {
+ func_check_prog_grep ()
+ {
+ _G_path_prog=$1
+
+ _G_count=0
+ _G_path_prog_max=0
+ printf 0123456789 >conftest.in
+ while :
+ do
+ cat conftest.in conftest.in >conftest.tmp
+ mv conftest.tmp conftest.in
+ cp conftest.in conftest.nl
+ echo 'GREP' >> conftest.nl
+ "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' <conftest.nl >conftest.out 2>/dev/null || break
+ diff conftest.out conftest.nl >/dev/null 2>&1 || break
+ _G_count=`expr $_G_count + 1`
+ if test "$_G_count" -gt "$_G_path_prog_max"; then
+ # Best one so far, save it but keep looking for a better one
+ func_check_prog_result=$_G_path_prog
+ _G_path_prog_max=$_G_count
+ fi
+ # 10*(2^10) chars as input seems more than enough
+ test 10 -lt "$_G_count" && break
+ done
+ rm -f conftest.in conftest.tmp conftest.nl conftest.out
+ }
+
+ func_path_progs "grep ggrep" func_check_prog_grep "$PATH:/usr/xpg4/bin"
+ GREP=$func_path_progs_result
+}
+
+
+## ------------------------------- ##
+## User overridable command paths. ##
+## ------------------------------- ##
+
+# All uppercase variable names are used for environment variables. These
+# variables can be overridden by the user before calling a script that
+# uses them if a suitable command of that name is not already available
+# in the command search PATH.
+
+: ${CP="cp -f"}
+: ${ECHO="printf %s\n"}
+: ${EGREP="$GREP -E"}
+: ${FGREP="$GREP -F"}
+: ${LN_S="ln -s"}
+: ${MAKE="make"}
+: ${MKDIR="mkdir"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
+
+
+## -------------------- ##
+## Useful sed snippets. ##
+## -------------------- ##
+
+sed_dirname='s|/[^/]*$||'
+sed_basename='s|^.*/||'
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='s|\([`"$\\]\)|\\\1|g'
+
+# Same as above, but do not quote variable references.
+sed_double_quote_subst='s/\(["`\\]\)/\\\1/g'
+
+# Sed substitution that turns a string into a regex matching for the
+# string literally.
+sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g'
+
+# Sed substitution that converts a w32 file name or path
+# that contains forward slashes, into one that contains
+# (escaped) backslashes. A very naive implementation.
+sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+
+# Re-'\' parameter expansions in output of sed_double_quote_subst that
+# were '\'-ed in input to the same. If an odd number of '\' preceded a
+# '$' in input to sed_double_quote_subst, that '$' was protected from
+# expansion. Since each input '\' is now two '\'s, look for any number
+# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'.
+_G_bs='\\'
+_G_bs2='\\\\'
+_G_bs4='\\\\\\\\'
+_G_dollar='\$'
+sed_double_backslash="\
+ s/$_G_bs4/&\\
+/g
+ s/^$_G_bs2$_G_dollar/$_G_bs&/
+ s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g
+ s/\n//g"
+
+# require_check_ifs_backslash
+# ---------------------------
+# Check if we can use backslash as IFS='\' separator, and set
+# $check_ifs_backshlash_broken to ':' or 'false'.
+require_check_ifs_backslash=func_require_check_ifs_backslash
+func_require_check_ifs_backslash ()
+{
+ _G_save_IFS=$IFS
+ IFS='\'
+ _G_check_ifs_backshlash='a\\b'
+ for _G_i in $_G_check_ifs_backshlash
+ do
+ case $_G_i in
+ a)
+ check_ifs_backshlash_broken=false
+ ;;
+ '')
+ break
+ ;;
+ *)
+ check_ifs_backshlash_broken=:
+ break
+ ;;
+ esac
+ done
+ IFS=$_G_save_IFS
+ require_check_ifs_backslash=:
+}
+
+
+## ----------------- ##
+## Global variables. ##
+## ----------------- ##
+
+# Except for the global variables explicitly listed below, the following
+# functions in the '^func_' namespace, and the '^require_' namespace
+# variables initialised in the 'Resource management' section, sourcing
+# this file will not pollute your global namespace with anything
+# else. There's no portable way to scope variables in Bourne shell
+# though, so actually running these functions will sometimes place
+# results into a variable named after the function, and often use
+# temporary variables in the '^_G_' namespace. If you are careful to
+# avoid using those namespaces casually in your sourcing script, things
+# should continue to work as you expect. And, of course, you can freely
+# overwrite any of the functions or variables defined here before
+# calling anything to customize them.
+
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing.
+EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake.
+
+# Allow overriding, eg assuming that you follow the convention of
+# putting '$debug_cmd' at the start of all your functions, you can get
+# bash to show function call trace with:
+#
+# debug_cmd='echo "${FUNCNAME[0]} $*" >&2' bash your-script-name
+debug_cmd=${debug_cmd-":"}
+exit_cmd=:
+
+# By convention, finish your script with:
+#
+# exit $exit_status
+#
+# so that you can set exit_status to non-zero if you want to indicate
+# something went wrong during execution without actually bailing out at
+# the point of failure.
+exit_status=$EXIT_SUCCESS
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath=$0
+
+# The name of this program.
+progname=`$ECHO "$progpath" |$SED "$sed_basename"`
+
+# Make sure we have an absolute progpath for reexecution:
+case $progpath in
+ [\\/]*|[A-Za-z]:\\*) ;;
+ *[\\/]*)
+ progdir=`$ECHO "$progpath" |$SED "$sed_dirname"`
+ progdir=`cd "$progdir" && pwd`
+ progpath=$progdir/$progname
+ ;;
+ *)
+ _G_IFS=$IFS
+ IFS=${PATH_SEPARATOR-:}
+ for progdir in $PATH; do
+ IFS=$_G_IFS
+ test -x "$progdir/$progname" && break
+ done
+ IFS=$_G_IFS
+ test -n "$progdir" || progdir=`pwd`
+ progpath=$progdir/$progname
+ ;;
+esac
+
+
+## ----------------- ##
+## Standard options. ##
+## ----------------- ##
+
+# The following options affect the operation of the functions defined
+# below, and should be set appropriately depending on run-time para-
+# meters passed on the command line.
+
+opt_dry_run=false
+opt_quiet=false
+opt_verbose=false
+
+# Categories 'all' and 'none' are always available. Append any others
+# you will pass as the first argument to func_warning from your own
+# code.
+warning_categories=
+
+# By default, display warnings according to 'opt_warning_types'. Set
+# 'warning_func' to ':' to elide all warnings, or func_fatal_error to
+# treat the next displayed warning as a fatal error.
+warning_func=func_warn_and_continue
+
+# Set to 'all' to display all warnings, 'none' to suppress all
+# warnings, or a space delimited list of some subset of
+# 'warning_categories' to display only the listed warnings.
+opt_warning_types=all
+
+
+## -------------------- ##
+## Resource management. ##
+## -------------------- ##
+
+# This section contains definitions for functions that each ensure a
+# particular resource (a file, or a non-empty configuration variable for
+# example) is available, and if appropriate to extract default values
+# from pertinent package files. Call them using their associated
+# 'require_*' variable to ensure that they are executed, at most, once.
+#
+# It's entirely deliberate that calling these functions can set
+# variables that don't obey the namespace limitations obeyed by the rest
+# of this file, in order that that they be as useful as possible to
+# callers.
+
+
+# require_term_colors
+# -------------------
+# Allow display of bold text on terminals that support it.
+require_term_colors=func_require_term_colors
+func_require_term_colors ()
+{
+ $debug_cmd
+
+ test -t 1 && {
+ # COLORTERM and USE_ANSI_COLORS environment variables take
+ # precedence, because most terminfo databases neglect to describe
+ # whether color sequences are supported.
+ test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"}
+
+ if test 1 = "$USE_ANSI_COLORS"; then
+ # Standard ANSI escape sequences
+ tc_reset=''
+ tc_bold=''; tc_standout=''
+ tc_red=''; tc_green=''
+ tc_blue=''; tc_cyan=''
+ else
+ # Otherwise trust the terminfo database after all.
+ test -n "`tput sgr0 2>/dev/null`" && {
+ tc_reset=`tput sgr0`
+ test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold`
+ tc_standout=$tc_bold
+ test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso`
+ test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1`
+ test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2`
+ test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4`
+ test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5`
+ }
+ fi
+ }
+
+ require_term_colors=:
+}
+
+
+## ----------------- ##
+## Function library. ##
+## ----------------- ##
+
+# This section contains a variety of useful functions to call in your
+# scripts. Take note of the portable wrappers for features provided by
+# some modern shells, which will fall back to slower equivalents on
+# less featureful shells.
+
+
+# func_append VAR VALUE
+# ---------------------
+# Append VALUE onto the existing contents of VAR.
+
+ # We should try to minimise forks, especially on Windows where they are
+ # unreasonably slow, so skip the feature probes when bash or zsh are
+ # being used:
+ if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then
+ : ${_G_HAVE_ARITH_OP="yes"}
+ : ${_G_HAVE_XSI_OPS="yes"}
+ # The += operator was introduced in bash 3.1
+ case $BASH_VERSION in
+ [12].* | 3.0 | 3.0*) ;;
+ *)
+ : ${_G_HAVE_PLUSEQ_OP="yes"}
+ ;;
+ esac
+ fi
+
+ # _G_HAVE_PLUSEQ_OP
+ # Can be empty, in which case the shell is probed, "yes" if += is
+ # useable or anything else if it does not work.
+ test -z "$_G_HAVE_PLUSEQ_OP" \
+ && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \
+ && _G_HAVE_PLUSEQ_OP=yes
+
+if test yes = "$_G_HAVE_PLUSEQ_OP"
+then
+ # This is an XSI compatible shell, allowing a faster implementation...
+ eval 'func_append ()
+ {
+ $debug_cmd
+
+ eval "$1+=\$2"
+ }'
+else
+ # ...otherwise fall back to using expr, which is often a shell builtin.
+ func_append ()
+ {
+ $debug_cmd
+
+ eval "$1=\$$1\$2"
+ }
+fi
+
+
+# func_append_quoted VAR VALUE
+# ----------------------------
+# Quote VALUE and append to the end of shell variable VAR, separated
+# by a space.
+if test yes = "$_G_HAVE_PLUSEQ_OP"; then
+ eval 'func_append_quoted ()
+ {
+ $debug_cmd
+
+ func_quote_arg pretty "$2"
+ eval "$1+=\\ \$func_quote_arg_result"
+ }'
+else
+ func_append_quoted ()
+ {
+ $debug_cmd
+
+ func_quote_arg pretty "$2"
+ eval "$1=\$$1\\ \$func_quote_arg_result"
+ }
+fi
+
+
+# func_append_uniq VAR VALUE
+# --------------------------
+# Append unique VALUE onto the existing contents of VAR, assuming
+# entries are delimited by the first character of VALUE. For example:
+#
+# func_append_uniq options " --another-option option-argument"
+#
+# will only append to $options if " --another-option option-argument "
+# is not already present somewhere in $options already (note spaces at
+# each end implied by leading space in second argument).
+func_append_uniq ()
+{
+ $debug_cmd
+
+ eval _G_current_value='`$ECHO $'$1'`'
+ _G_delim=`expr "$2" : '\(.\)'`
+
+ case $_G_delim$_G_current_value$_G_delim in
+ *"$2$_G_delim"*) ;;
+ *) func_append "$@" ;;
+ esac
+}
+
+
+# func_arith TERM...
+# ------------------
+# Set func_arith_result to the result of evaluating TERMs.
+ test -z "$_G_HAVE_ARITH_OP" \
+ && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \
+ && _G_HAVE_ARITH_OP=yes
+
+if test yes = "$_G_HAVE_ARITH_OP"; then
+ eval 'func_arith ()
+ {
+ $debug_cmd
+
+ func_arith_result=$(( $* ))
+ }'
+else
+ func_arith ()
+ {
+ $debug_cmd
+
+ func_arith_result=`expr "$@"`
+ }
+fi
+
+
+# func_basename FILE
+# ------------------
+# Set func_basename_result to FILE with everything up to and including
+# the last / stripped.
+if test yes = "$_G_HAVE_XSI_OPS"; then
+ # If this shell supports suffix pattern removal, then use it to avoid
+ # forking. Hide the definitions single quotes in case the shell chokes
+ # on unsupported syntax...
+ _b='func_basename_result=${1##*/}'
+ _d='case $1 in
+ */*) func_dirname_result=${1%/*}$2 ;;
+ * ) func_dirname_result=$3 ;;
+ esac'
+
+else
+ # ...otherwise fall back to using sed.
+ _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`'
+ _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"`
+ if test "X$func_dirname_result" = "X$1"; then
+ func_dirname_result=$3
+ else
+ func_append func_dirname_result "$2"
+ fi'
+fi
+
+eval 'func_basename ()
+{
+ $debug_cmd
+
+ '"$_b"'
+}'
+
+
+# func_dirname FILE APPEND NONDIR_REPLACEMENT
+# -------------------------------------------
+# Compute the dirname of FILE. If nonempty, add APPEND to the result,
+# otherwise set result to NONDIR_REPLACEMENT.
+eval 'func_dirname ()
+{
+ $debug_cmd
+
+ '"$_d"'
+}'
+
+
+# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT
+# --------------------------------------------------------
+# Perform func_basename and func_dirname in a single function
+# call:
+# dirname: Compute the dirname of FILE. If nonempty,
+# add APPEND to the result, otherwise set result
+# to NONDIR_REPLACEMENT.
+# value returned in "$func_dirname_result"
+# basename: Compute filename of FILE.
+# value retuned in "$func_basename_result"
+# For efficiency, we do not delegate to the functions above but instead
+# duplicate the functionality here.
+eval 'func_dirname_and_basename ()
+{
+ $debug_cmd
+
+ '"$_b"'
+ '"$_d"'
+}'
+
+
+# func_echo ARG...
+# ----------------
+# Echo program name prefixed message.
+func_echo ()
+{
+ $debug_cmd
+
+ _G_message=$*
+
+ func_echo_IFS=$IFS
+ IFS=$nl
+ for _G_line in $_G_message; do
+ IFS=$func_echo_IFS
+ $ECHO "$progname: $_G_line"
+ done
+ IFS=$func_echo_IFS
+}
+
+
+# func_echo_all ARG...
+# --------------------
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+ $ECHO "$*"
+}
+
+
+# func_echo_infix_1 INFIX ARG...
+# ------------------------------
+# Echo program name, followed by INFIX on the first line, with any
+# additional lines not showing INFIX.
+func_echo_infix_1 ()
+{
+ $debug_cmd
+
+ $require_term_colors
+
+ _G_infix=$1; shift
+ _G_indent=$_G_infix
+ _G_prefix="$progname: $_G_infix: "
+ _G_message=$*
+
+ # Strip color escape sequences before counting printable length
+ for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan"
+ do
+ test -n "$_G_tc" && {
+ _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"`
+ _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"`
+ }
+ done
+ _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes
+
+ func_echo_infix_1_IFS=$IFS
+ IFS=$nl
+ for _G_line in $_G_message; do
+ IFS=$func_echo_infix_1_IFS
+ $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2
+ _G_prefix=$_G_indent
+ done
+ IFS=$func_echo_infix_1_IFS
+}
+
+
+# func_error ARG...
+# -----------------
+# Echo program name prefixed message to standard error.
+func_error ()
+{
+ $debug_cmd
+
+ $require_term_colors
+
+ func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2
+}
+
+
+# func_fatal_error ARG...
+# -----------------------
+# Echo program name prefixed message to standard error, and exit.
+func_fatal_error ()
+{
+ $debug_cmd
+
+ func_error "$*"
+ exit $EXIT_FAILURE
+}
+
+
+# func_grep EXPRESSION FILENAME
+# -----------------------------
+# Check whether EXPRESSION matches any line of FILENAME, without output.
+func_grep ()
+{
+ $debug_cmd
+
+ $GREP "$1" "$2" >/dev/null 2>&1
+}
+
+
+# func_len STRING
+# ---------------
+# Set func_len_result to the length of STRING. STRING may not
+# start with a hyphen.
+ test -z "$_G_HAVE_XSI_OPS" \
+ && (eval 'x=a/b/c;
+ test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
+ && _G_HAVE_XSI_OPS=yes
+
+if test yes = "$_G_HAVE_XSI_OPS"; then
+ eval 'func_len ()
+ {
+ $debug_cmd
+
+ func_len_result=${#1}
+ }'
+else
+ func_len ()
+ {
+ $debug_cmd
+
+ func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len`
+ }
+fi
+
+
+# func_mkdir_p DIRECTORY-PATH
+# ---------------------------
+# Make sure the entire path to DIRECTORY-PATH is available.
+func_mkdir_p ()
+{
+ $debug_cmd
+
+ _G_directory_path=$1
+ _G_dir_list=
+
+ if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then
+
+ # Protect directory names starting with '-'
+ case $_G_directory_path in
+ -*) _G_directory_path=./$_G_directory_path ;;
+ esac
+
+ # While some portion of DIR does not yet exist...
+ while test ! -d "$_G_directory_path"; do
+ # ...make a list in topmost first order. Use a colon delimited
+ # list incase some portion of path contains whitespace.
+ _G_dir_list=$_G_directory_path:$_G_dir_list
+
+ # If the last portion added has no slash in it, the list is done
+ case $_G_directory_path in */*) ;; *) break ;; esac
+
+ # ...otherwise throw away the child directory and loop
+ _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"`
+ done
+ _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'`
+
+ func_mkdir_p_IFS=$IFS; IFS=:
+ for _G_dir in $_G_dir_list; do
+ IFS=$func_mkdir_p_IFS
+ # mkdir can fail with a 'File exist' error if two processes
+ # try to create one of the directories concurrently. Don't
+ # stop in that case!
+ $MKDIR "$_G_dir" 2>/dev/null || :
+ done
+ IFS=$func_mkdir_p_IFS
+
+ # Bail out if we (or some other process) failed to create a directory.
+ test -d "$_G_directory_path" || \
+ func_fatal_error "Failed to create '$1'"
+ fi
+}
+
+
+# func_mktempdir [BASENAME]
+# -------------------------
+# Make a temporary directory that won't clash with other running
+# libtool processes, and avoids race conditions if possible. If
+# given, BASENAME is the basename for that directory.
+func_mktempdir ()
+{
+ $debug_cmd
+
+ _G_template=${TMPDIR-/tmp}/${1-$progname}
+
+ if test : = "$opt_dry_run"; then
+ # Return a directory name, but don't create it in dry-run mode
+ _G_tmpdir=$_G_template-$$
+ else
+
+ # If mktemp works, use that first and foremost
+ _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null`
+
+ if test ! -d "$_G_tmpdir"; then
+ # Failing that, at least try and use $RANDOM to avoid a race
+ _G_tmpdir=$_G_template-${RANDOM-0}$$
+
+ func_mktempdir_umask=`umask`
+ umask 0077
+ $MKDIR "$_G_tmpdir"
+ umask $func_mktempdir_umask
+ fi
+
+ # If we're not in dry-run mode, bomb out on failure
+ test -d "$_G_tmpdir" || \
+ func_fatal_error "cannot create temporary directory '$_G_tmpdir'"
+ fi
+
+ $ECHO "$_G_tmpdir"
+}
+
+
+# func_normal_abspath PATH
+# ------------------------
+# Remove doubled-up and trailing slashes, "." path components,
+# and cancel out any ".." path components in PATH after making
+# it an absolute path.
+func_normal_abspath ()
+{
+ $debug_cmd
+
+ # These SED scripts presuppose an absolute path with a trailing slash.
+ _G_pathcar='s|^/\([^/]*\).*$|\1|'
+ _G_pathcdr='s|^/[^/]*||'
+ _G_removedotparts=':dotsl
+ s|/\./|/|g
+ t dotsl
+ s|/\.$|/|'
+ _G_collapseslashes='s|/\{1,\}|/|g'
+ _G_finalslash='s|/*$|/|'
+
+ # Start from root dir and reassemble the path.
+ func_normal_abspath_result=
+ func_normal_abspath_tpath=$1
+ func_normal_abspath_altnamespace=
+ case $func_normal_abspath_tpath in
+ "")
+ # Empty path, that just means $cwd.
+ func_stripname '' '/' "`pwd`"
+ func_normal_abspath_result=$func_stripname_result
+ return
+ ;;
+ # The next three entries are used to spot a run of precisely
+ # two leading slashes without using negated character classes;
+ # we take advantage of case's first-match behaviour.
+ ///*)
+ # Unusual form of absolute path, do nothing.
+ ;;
+ //*)
+ # Not necessarily an ordinary path; POSIX reserves leading '//'
+ # and for example Cygwin uses it to access remote file shares
+ # over CIFS/SMB, so we conserve a leading double slash if found.
+ func_normal_abspath_altnamespace=/
+ ;;
+ /*)
+ # Absolute path, do nothing.
+ ;;
+ *)
+ # Relative path, prepend $cwd.
+ func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
+ ;;
+ esac
+
+ # Cancel out all the simple stuff to save iterations. We also want
+ # the path to end with a slash for ease of parsing, so make sure
+ # there is one (and only one) here.
+ func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+ -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"`
+ while :; do
+ # Processed it all yet?
+ if test / = "$func_normal_abspath_tpath"; then
+ # If we ascended to the root using ".." the result may be empty now.
+ if test -z "$func_normal_abspath_result"; then
+ func_normal_abspath_result=/
+ fi
+ break
+ fi
+ func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
+ -e "$_G_pathcar"`
+ func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
+ -e "$_G_pathcdr"`
+ # Figure out what to do with it
+ case $func_normal_abspath_tcomponent in
+ "")
+ # Trailing empty path component, ignore it.
+ ;;
+ ..)
+ # Parent dir; strip last assembled component from result.
+ func_dirname "$func_normal_abspath_result"
+ func_normal_abspath_result=$func_dirname_result
+ ;;
+ *)
+ # Actual path component, append it.
+ func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent"
+ ;;
+ esac
+ done
+ # Restore leading double-slash if one was found on entry.
+ func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
+}
+
+
+# func_notquiet ARG...
+# --------------------
+# Echo program name prefixed message only when not in quiet mode.
+func_notquiet ()
+{
+ $debug_cmd
+
+ $opt_quiet || func_echo ${1+"$@"}
+
+ # A bug in bash halts the script if the last line of a function
+ # fails when set -e is in force, so we need another command to
+ # work around that:
+ :
+}
+
+
+# func_relative_path SRCDIR DSTDIR
+# --------------------------------
+# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR.
+func_relative_path ()
+{
+ $debug_cmd
+
+ func_relative_path_result=
+ func_normal_abspath "$1"
+ func_relative_path_tlibdir=$func_normal_abspath_result
+ func_normal_abspath "$2"
+ func_relative_path_tbindir=$func_normal_abspath_result
+
+ # Ascend the tree starting from libdir
+ while :; do
+ # check if we have found a prefix of bindir
+ case $func_relative_path_tbindir in
+ $func_relative_path_tlibdir)
+ # found an exact match
+ func_relative_path_tcancelled=
+ break
+ ;;
+ $func_relative_path_tlibdir*)
+ # found a matching prefix
+ func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
+ func_relative_path_tcancelled=$func_stripname_result
+ if test -z "$func_relative_path_result"; then
+ func_relative_path_result=.
+ fi
+ break
+ ;;
+ *)
+ func_dirname $func_relative_path_tlibdir
+ func_relative_path_tlibdir=$func_dirname_result
+ if test -z "$func_relative_path_tlibdir"; then
+ # Have to descend all the way to the root!
+ func_relative_path_result=../$func_relative_path_result
+ func_relative_path_tcancelled=$func_relative_path_tbindir
+ break
+ fi
+ func_relative_path_result=../$func_relative_path_result
+ ;;
+ esac
+ done
+
+ # Now calculate path; take care to avoid doubling-up slashes.
+ func_stripname '' '/' "$func_relative_path_result"
+ func_relative_path_result=$func_stripname_result
+ func_stripname '/' '/' "$func_relative_path_tcancelled"
+ if test -n "$func_stripname_result"; then
+ func_append func_relative_path_result "/$func_stripname_result"
+ fi
+
+ # Normalisation. If bindir is libdir, return '.' else relative path.
+ if test -n "$func_relative_path_result"; then
+ func_stripname './' '' "$func_relative_path_result"
+ func_relative_path_result=$func_stripname_result
+ fi
+
+ test -n "$func_relative_path_result" || func_relative_path_result=.
+
+ :
+}
+
+
+# func_quote_portable EVAL ARG
+# ----------------------------
+# Internal function to portably implement func_quote_arg. Note that we still
+# keep attention to performance here so we as much as possible try to avoid
+# calling sed binary (so far O(N) complexity as long as func_append is O(1)).
+func_quote_portable ()
+{
+ $debug_cmd
+
+ $require_check_ifs_backslash
+
+ func_quote_portable_result=$2
+
+ # one-time-loop (easy break)
+ while true
+ do
+ if $1; then
+ func_quote_portable_result=`$ECHO "$2" | $SED \
+ -e "$sed_double_quote_subst" -e "$sed_double_backslash"`
+ break
+ fi
+
+ # Quote for eval.
+ case $func_quote_portable_result in
+ *[\\\`\"\$]*)
+ # Fallback to sed for $func_check_bs_ifs_broken=:, or when the string
+ # contains the shell wildcard characters.
+ case $check_ifs_backshlash_broken$func_quote_portable_result in
+ :*|*[\[\*\?]*)
+ func_quote_portable_result=`$ECHO "$func_quote_portable_result" \
+ | $SED "$sed_quote_subst"`
+ break
+ ;;
+ esac
+
+ func_quote_portable_old_IFS=$IFS
+ for _G_char in '\' '`' '"' '$'
+ do
+ # STATE($1) PREV($2) SEPARATOR($3)
+ set start "" ""
+ func_quote_portable_result=dummy"$_G_char$func_quote_portable_result$_G_char"dummy
+ IFS=$_G_char
+ for _G_part in $func_quote_portable_result
+ do
+ case $1 in
+ quote)
+ func_append func_quote_portable_result "$3$2"
+ set quote "$_G_part" "\\$_G_char"
+ ;;
+ start)
+ set first "" ""
+ func_quote_portable_result=
+ ;;
+ first)
+ set quote "$_G_part" ""
+ ;;
+ esac
+ done
+ done
+ IFS=$func_quote_portable_old_IFS
+ ;;
+ *) ;;
+ esac
+ break
+ done
+
+ func_quote_portable_unquoted_result=$func_quote_portable_result
+ case $func_quote_portable_result in
+ # double-quote args containing shell metacharacters to delay
+ # word splitting, command substitution and variable expansion
+ # for a subsequent eval.
+ # many bourne shells cannot handle close brackets correctly
+ # in scan sets, so we specify it separately.
+ *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"")
+ func_quote_portable_result=\"$func_quote_portable_result\"
+ ;;
+ esac
+}
+
+
+# func_quotefast_eval ARG
+# -----------------------
+# Quote one ARG (internal). This is equivalent to 'func_quote_arg eval ARG',
+# but optimized for speed. Result is stored in $func_quotefast_eval.
+if test xyes = `(x=; printf -v x %q yes; echo x"$x") 2>/dev/null`; then
+ printf -v _GL_test_printf_tilde %q '~'
+ if test '\~' = "$_GL_test_printf_tilde"; then
+ func_quotefast_eval ()
+ {
+ printf -v func_quotefast_eval_result %q "$1"
+ }
+ else
+ # Broken older Bash implementations. Make those faster too if possible.
+ func_quotefast_eval ()
+ {
+ case $1 in
+ '~'*)
+ func_quote_portable false "$1"
+ func_quotefast_eval_result=$func_quote_portable_result
+ ;;
+ *)
+ printf -v func_quotefast_eval_result %q "$1"
+ ;;
+ esac
+ }
+ fi
+else
+ func_quotefast_eval ()
+ {
+ func_quote_portable false "$1"
+ func_quotefast_eval_result=$func_quote_portable_result
+ }
+fi
+
+
+# func_quote_arg MODEs ARG
+# ------------------------
+# Quote one ARG to be evaled later. MODEs argument may contain zero or more
+# specifiers listed below separated by ',' character. This function returns two
+# values:
+# i) func_quote_arg_result
+# double-quoted (when needed), suitable for a subsequent eval
+# ii) func_quote_arg_unquoted_result
+# has all characters that are still active within double
+# quotes backslashified. Available only if 'unquoted' is specified.
+#
+# Available modes:
+# ----------------
+# 'eval' (default)
+# - escape shell special characters
+# 'expand'
+# - the same as 'eval'; but do not quote variable references
+# 'pretty'
+# - request aesthetic output, i.e. '"a b"' instead of 'a\ b'. This might
+# be used later in func_quote to get output like: 'echo "a b"' instead
+# of 'echo a\ b'. This is slower than default on some shells.
+# 'unquoted'
+# - produce also $func_quote_arg_unquoted_result which does not contain
+# wrapping double-quotes.
+#
+# Examples for 'func_quote_arg pretty,unquoted string':
+#
+# string | *_result | *_unquoted_result
+# ------------+-----------------------+-------------------
+# " | \" | \"
+# a b | "a b" | a b
+# "a b" | "\"a b\"" | \"a b\"
+# * | "*" | *
+# z="${x-$y}" | "z=\"\${x-\$y}\"" | z=\"\${x-\$y}\"
+#
+# Examples for 'func_quote_arg pretty,unquoted,expand string':
+#
+# string | *_result | *_unquoted_result
+# --------------+---------------------+--------------------
+# z="${x-$y}" | "z=\"${x-$y}\"" | z=\"${x-$y}\"
+func_quote_arg ()
+{
+ _G_quote_expand=false
+ case ,$1, in
+ *,expand,*)
+ _G_quote_expand=:
+ ;;
+ esac
+
+ case ,$1, in
+ *,pretty,*|*,expand,*|*,unquoted,*)
+ func_quote_portable $_G_quote_expand "$2"
+ func_quote_arg_result=$func_quote_portable_result
+ func_quote_arg_unquoted_result=$func_quote_portable_unquoted_result
+ ;;
+ *)
+ # Faster quote-for-eval for some shells.
+ func_quotefast_eval "$2"
+ func_quote_arg_result=$func_quotefast_eval_result
+ ;;
+ esac
+}
+
+
+# func_quote MODEs ARGs...
+# ------------------------
+# Quote all ARGs to be evaled later and join them into single command. See
+# func_quote_arg's description for more info.
+func_quote ()
+{
+ $debug_cmd
+ _G_func_quote_mode=$1 ; shift
+ func_quote_result=
+ while test 0 -lt $#; do
+ func_quote_arg "$_G_func_quote_mode" "$1"
+ if test -n "$func_quote_result"; then
+ func_append func_quote_result " $func_quote_arg_result"
+ else
+ func_append func_quote_result "$func_quote_arg_result"
+ fi
+ shift
+ done
+}
+
+
+# func_stripname PREFIX SUFFIX NAME
+# ---------------------------------
+# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+if test yes = "$_G_HAVE_XSI_OPS"; then
+ eval 'func_stripname ()
+ {
+ $debug_cmd
+
+ # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
+ # positional parameters, so assign one to ordinary variable first.
+ func_stripname_result=$3
+ func_stripname_result=${func_stripname_result#"$1"}
+ func_stripname_result=${func_stripname_result%"$2"}
+ }'
+else
+ func_stripname ()
+ {
+ $debug_cmd
+
+ case $2 in
+ .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;;
+ *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;;
+ esac
+ }
+fi
+
+
+# func_show_eval CMD [FAIL_EXP]
+# -----------------------------
+# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is
+# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it.
+func_show_eval ()
+{
+ $debug_cmd
+
+ _G_cmd=$1
+ _G_fail_exp=${2-':'}
+
+ func_quote_arg pretty,expand "$_G_cmd"
+ eval "func_notquiet $func_quote_arg_result"
+
+ $opt_dry_run || {
+ eval "$_G_cmd"
+ _G_status=$?
+ if test 0 -ne "$_G_status"; then
+ eval "(exit $_G_status); $_G_fail_exp"
+ fi
+ }
+}
+
+
+# func_show_eval_locale CMD [FAIL_EXP]
+# ------------------------------------
+# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is
+# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it. Use the saved locale for evaluation.
+func_show_eval_locale ()
+{
+ $debug_cmd
+
+ _G_cmd=$1
+ _G_fail_exp=${2-':'}
+
+ $opt_quiet || {
+ func_quote_arg expand,pretty "$_G_cmd"
+ eval "func_echo $func_quote_arg_result"
+ }
+
+ $opt_dry_run || {
+ eval "$_G_user_locale
+ $_G_cmd"
+ _G_status=$?
+ eval "$_G_safe_locale"
+ if test 0 -ne "$_G_status"; then
+ eval "(exit $_G_status); $_G_fail_exp"
+ fi
+ }
+}
+
+
+# func_tr_sh
+# ----------
+# Turn $1 into a string suitable for a shell variable name.
+# Result is stored in $func_tr_sh_result. All characters
+# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
+# if $1 begins with a digit, a '_' is prepended as well.
+func_tr_sh ()
+{
+ $debug_cmd
+
+ case $1 in
+ [0-9]* | *[!a-zA-Z0-9_]*)
+ func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'`
+ ;;
+ * )
+ func_tr_sh_result=$1
+ ;;
+ esac
+}
+
+
+# func_verbose ARG...
+# -------------------
+# Echo program name prefixed message in verbose mode only.
+func_verbose ()
+{
+ $debug_cmd
+
+ $opt_verbose && func_echo "$*"
+
+ :
+}
+
+
+# func_warn_and_continue ARG...
+# -----------------------------
+# Echo program name prefixed warning message to standard error.
+func_warn_and_continue ()
+{
+ $debug_cmd
+
+ $require_term_colors
+
+ func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2
+}
+
+
+# func_warning CATEGORY ARG...
+# ----------------------------
+# Echo program name prefixed warning message to standard error. Warning
+# messages can be filtered according to CATEGORY, where this function
+# elides messages where CATEGORY is not listed in the global variable
+# 'opt_warning_types'.
+func_warning ()
+{
+ $debug_cmd
+
+ # CATEGORY must be in the warning_categories list!
+ case " $warning_categories " in
+ *" $1 "*) ;;
+ *) func_internal_error "invalid warning category '$1'" ;;
+ esac
+
+ _G_category=$1
+ shift
+
+ case " $opt_warning_types " in
+ *" $_G_category "*) $warning_func ${1+"$@"} ;;
+ esac
+}
+
+
+# func_sort_ver VER1 VER2
+# -----------------------
+# 'sort -V' is not generally available.
+# Note this deviates from the version comparison in automake
+# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a
+# but this should suffice as we won't be specifying old
+# version formats or redundant trailing .0 in bootstrap.conf.
+# If we did want full compatibility then we should probably
+# use m4_version_compare from autoconf.
+func_sort_ver ()
+{
+ $debug_cmd
+
+ printf '%s\n%s\n' "$1" "$2" \
+ | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n
+}
+
+# func_lt_ver PREV CURR
+# ---------------------
+# Return true if PREV and CURR are in the correct order according to
+# func_sort_ver, otherwise false. Use it like this:
+#
+# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..."
+func_lt_ver ()
+{
+ $debug_cmd
+
+ test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q`
+}
+
+
+# Local variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC"
+# time-stamp-time-zone: "UTC"
+# End:
+#! /bin/sh
+
+# A portable, pluggable option parser for Bourne shell.
+# Written by Gary V. Vaughan, 2010
+
+# This is free software. There is NO warranty; not even for
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+#
+# Copyright (C) 2010-2019, 2021 Bootstrap Authors
+#
+# This file is dual licensed under the terms of the MIT license
+# <https://opensource.org/license/MIT>, and GPL version 2 or later
+# <http://www.gnu.org/licenses/gpl-2.0.html>. You must apply one of
+# these licenses when using or redistributing this software or any of
+# the files within it. See the URLs above, or the file `LICENSE`
+# included in the Bootstrap distribution for the full license texts.
+
+# Please report bugs or propose patches to:
+# <https://github.com/gnulib-modules/bootstrap/issues>
+
+# Set a version string for this script.
+scriptversion=2019-02-19.15; # UTC
+
+
+## ------ ##
+## Usage. ##
+## ------ ##
+
+# This file is a library for parsing options in your shell scripts along
+# with assorted other useful supporting features that you can make use
+# of too.
+#
+# For the simplest scripts you might need only:
+#
+# #!/bin/sh
+# . relative/path/to/funclib.sh
+# . relative/path/to/options-parser
+# scriptversion=1.0
+# func_options ${1+"$@"}
+# eval set dummy "$func_options_result"; shift
+# ...rest of your script...
+#
+# In order for the '--version' option to work, you will need to have a
+# suitably formatted comment like the one at the top of this file
+# starting with '# Written by ' and ending with '# Copyright'.
+#
+# For '-h' and '--help' to work, you will also need a one line
+# description of your script's purpose in a comment directly above the
+# '# Written by ' line, like the one at the top of this file.
+#
+# The default options also support '--debug', which will turn on shell
+# execution tracing (see the comment above debug_cmd below for another
+# use), and '--verbose' and the func_verbose function to allow your script
+# to display verbose messages only when your user has specified
+# '--verbose'.
+#
+# After sourcing this file, you can plug in processing for additional
+# options by amending the variables from the 'Configuration' section
+# below, and following the instructions in the 'Option parsing'
+# section further down.
+
+## -------------- ##
+## Configuration. ##
+## -------------- ##
+
+# You should override these variables in your script after sourcing this
+# file so that they reflect the customisations you have added to the
+# option parser.
+
+# The usage line for option parsing errors and the start of '-h' and
+# '--help' output messages. You can embed shell variables for delayed
+# expansion at the time the message is displayed, but you will need to
+# quote other shell meta-characters carefully to prevent them being
+# expanded when the contents are evaled.
+usage='$progpath [OPTION]...'
+
+# Short help message in response to '-h' and '--help'. Add to this or
+# override it after sourcing this library to reflect the full set of
+# options your script accepts.
+usage_message="\
+ --debug enable verbose shell tracing
+ -W, --warnings=CATEGORY
+ report the warnings falling in CATEGORY [all]
+ -v, --verbose verbosely report processing
+ --version print version information and exit
+ -h, --help print short or long help message and exit
+"
+
+# Additional text appended to 'usage_message' in response to '--help'.
+long_help_message="
+Warning categories include:
+ 'all' show all warnings
+ 'none' turn off all the warnings
+ 'error' warnings are treated as fatal errors"
+
+# Help message printed before fatal option parsing errors.
+fatal_help="Try '\$progname --help' for more information."
+
+
+
+## ------------------------- ##
+## Hook function management. ##
+## ------------------------- ##
+
+# This section contains functions for adding, removing, and running hooks
+# in the main code. A hook is just a list of function names that can be
+# run in order later on.
+
+# func_hookable FUNC_NAME
+# -----------------------
+# Declare that FUNC_NAME will run hooks added with
+# 'func_add_hook FUNC_NAME ...'.
+func_hookable ()
+{
+ $debug_cmd
+
+ func_append hookable_fns " $1"
+}
+
+
+# func_add_hook FUNC_NAME HOOK_FUNC
+# ---------------------------------
+# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must
+# first have been declared "hookable" by a call to 'func_hookable'.
+func_add_hook ()
+{
+ $debug_cmd
+
+ case " $hookable_fns " in
+ *" $1 "*) ;;
+ *) func_fatal_error "'$1' does not accept hook functions." ;;
+ esac
+
+ eval func_append ${1}_hooks '" $2"'
+}
+
+
+# func_remove_hook FUNC_NAME HOOK_FUNC
+# ------------------------------------
+# Remove HOOK_FUNC from the list of hook functions to be called by
+# FUNC_NAME.
+func_remove_hook ()
+{
+ $debug_cmd
+
+ eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`'
+}
+
+
+# func_propagate_result FUNC_NAME_A FUNC_NAME_B
+# ---------------------------------------------
+# If the *_result variable of FUNC_NAME_A _is set_, assign its value to
+# *_result variable of FUNC_NAME_B.
+func_propagate_result ()
+{
+ $debug_cmd
+
+ func_propagate_result_result=:
+ if eval "test \"\${${1}_result+set}\" = set"
+ then
+ eval "${2}_result=\$${1}_result"
+ else
+ func_propagate_result_result=false
+ fi
+}
+
+
+# func_run_hooks FUNC_NAME [ARG]...
+# ---------------------------------
+# Run all hook functions registered to FUNC_NAME.
+# It's assumed that the list of hook functions contains nothing more
+# than a whitespace-delimited list of legal shell function names, and
+# no effort is wasted trying to catch shell meta-characters or preserve
+# whitespace.
+func_run_hooks ()
+{
+ $debug_cmd
+
+ _G_rc_run_hooks=false
+
+ case " $hookable_fns " in
+ *" $1 "*) ;;
+ *) func_fatal_error "'$1' does not support hook functions." ;;
+ esac
+
+ eval _G_hook_fns=\$$1_hooks; shift
+
+ for _G_hook in $_G_hook_fns; do
+ func_unset "${_G_hook}_result"
+ eval $_G_hook '${1+"$@"}'
+ func_propagate_result $_G_hook func_run_hooks
+ if $func_propagate_result_result; then
+ eval set dummy "$func_run_hooks_result"; shift
+ fi
+ done
+}
+
+
+
+## --------------- ##
+## Option parsing. ##
+## --------------- ##
+
+# In order to add your own option parsing hooks, you must accept the
+# full positional parameter list from your hook function. You may remove
+# or edit any options that you action, and then pass back the remaining
+# unprocessed options in '<hooked_function_name>_result', escaped
+# suitably for 'eval'.
+#
+# The '<hooked_function_name>_result' variable is automatically unset
+# before your hook gets called; for best performance, only set the
+# *_result variable when necessary (i.e. don't call the 'func_quote'
+# function unnecessarily because it can be an expensive operation on some
+# machines).
+#
+# Like this:
+#
+# my_options_prep ()
+# {
+# $debug_cmd
+#
+# # Extend the existing usage message.
+# usage_message=$usage_message'
+# -s, --silent don'\''t print informational messages
+# '
+# # No change in '$@' (ignored completely by this hook). Leave
+# # my_options_prep_result variable intact.
+# }
+# func_add_hook func_options_prep my_options_prep
+#
+#
+# my_silent_option ()
+# {
+# $debug_cmd
+#
+# args_changed=false
+#
+# # Note that, for efficiency, we parse as many options as we can
+# # recognise in a loop before passing the remainder back to the
+# # caller on the first unrecognised argument we encounter.
+# while test $# -gt 0; do
+# opt=$1; shift
+# case $opt in
+# --silent|-s) opt_silent=:
+# args_changed=:
+# ;;
+# # Separate non-argument short options:
+# -s*) func_split_short_opt "$_G_opt"
+# set dummy "$func_split_short_opt_name" \
+# "-$func_split_short_opt_arg" ${1+"$@"}
+# shift
+# args_changed=:
+# ;;
+# *) # Make sure the first unrecognised option "$_G_opt"
+# # is added back to "$@" in case we need it later,
+# # if $args_changed was set to 'true'.
+# set dummy "$_G_opt" ${1+"$@"}; shift; break ;;
+# esac
+# done
+#
+# # Only call 'func_quote' here if we processed at least one argument.
+# if $args_changed; then
+# func_quote eval ${1+"$@"}
+# my_silent_option_result=$func_quote_result
+# fi
+# }
+# func_add_hook func_parse_options my_silent_option
+#
+#
+# my_option_validation ()
+# {
+# $debug_cmd
+#
+# $opt_silent && $opt_verbose && func_fatal_help "\
+# '--silent' and '--verbose' options are mutually exclusive."
+# }
+# func_add_hook func_validate_options my_option_validation
+#
+# You'll also need to manually amend $usage_message to reflect the extra
+# options you parse. It's preferable to append if you can, so that
+# multiple option parsing hooks can be added safely.
+
+
+# func_options_finish [ARG]...
+# ----------------------------
+# Finishing the option parse loop (call 'func_options' hooks ATM).
+func_options_finish ()
+{
+ $debug_cmd
+
+ func_run_hooks func_options ${1+"$@"}
+ func_propagate_result func_run_hooks func_options_finish
+}
+
+
+# func_options [ARG]...
+# ---------------------
+# All the functions called inside func_options are hookable. See the
+# individual implementations for details.
+func_hookable func_options
+func_options ()
+{
+ $debug_cmd
+
+ _G_options_quoted=false
+
+ for my_func in options_prep parse_options validate_options options_finish
+ do
+ func_unset func_${my_func}_result
+ func_unset func_run_hooks_result
+ eval func_$my_func '${1+"$@"}'
+ func_propagate_result func_$my_func func_options
+ if $func_propagate_result_result; then
+ eval set dummy "$func_options_result"; shift
+ _G_options_quoted=:
+ fi
+ done
+
+ $_G_options_quoted || {
+ # As we (func_options) are top-level options-parser function and
+ # nobody quoted "$@" for us yet, we need to do it explicitly for
+ # caller.
+ func_quote eval ${1+"$@"}
+ func_options_result=$func_quote_result
+ }
+}
+
+
+# func_options_prep [ARG]...
+# --------------------------
+# All initialisations required before starting the option parse loop.
+# Note that when calling hook functions, we pass through the list of
+# positional parameters. If a hook function modifies that list, and
+# needs to propagate that back to rest of this script, then the complete
+# modified list must be put in 'func_run_hooks_result' before returning.
+func_hookable func_options_prep
+func_options_prep ()
+{
+ $debug_cmd
+
+ # Option defaults:
+ opt_verbose=false
+ opt_warning_types=
+
+ func_run_hooks func_options_prep ${1+"$@"}
+ func_propagate_result func_run_hooks func_options_prep
+}
+
+
+# func_parse_options [ARG]...
+# ---------------------------
+# The main option parsing loop.
+func_hookable func_parse_options
+func_parse_options ()
+{
+ $debug_cmd
+
+ _G_parse_options_requote=false
+ # this just eases exit handling
+ while test $# -gt 0; do
+ # Defer to hook functions for initial option parsing, so they
+ # get priority in the event of reusing an option name.
+ func_run_hooks func_parse_options ${1+"$@"}
+ func_propagate_result func_run_hooks func_parse_options
+ if $func_propagate_result_result; then
+ eval set dummy "$func_parse_options_result"; shift
+ # Even though we may have changed "$@", we passed the "$@" array
+ # down into the hook and it quoted it for us (because we are in
+ # this if-branch). No need to quote it again.
+ _G_parse_options_requote=false
+ fi
+
+ # Break out of the loop if we already parsed every option.
+ test $# -gt 0 || break
+
+ # We expect that one of the options parsed in this function matches
+ # and thus we remove _G_opt from "$@" and need to re-quote.
+ _G_match_parse_options=:
+ _G_opt=$1
+ shift
+ case $_G_opt in
+ --debug|-x) debug_cmd='set -x'
+ func_echo "enabling shell trace mode" >&2
+ $debug_cmd
+ ;;
+
+ --no-warnings|--no-warning|--no-warn)
+ set dummy --warnings none ${1+"$@"}
+ shift
+ ;;
+
+ --warnings|--warning|-W)
+ if test $# = 0 && func_missing_arg $_G_opt; then
+ _G_parse_options_requote=:
+ break
+ fi
+ case " $warning_categories $1" in
+ *" $1 "*)
+ # trailing space prevents matching last $1 above
+ func_append_uniq opt_warning_types " $1"
+ ;;
+ *all)
+ opt_warning_types=$warning_categories
+ ;;
+ *none)
+ opt_warning_types=none
+ warning_func=:
+ ;;
+ *error)
+ opt_warning_types=$warning_categories
+ warning_func=func_fatal_error
+ ;;
+ *)
+ func_fatal_error \
+ "unsupported warning category: '$1'"
+ ;;
+ esac
+ shift
+ ;;
+
+ --verbose|-v) opt_verbose=: ;;
+ --version) func_version ;;
+ -\?|-h) func_usage ;;
+ --help) func_help ;;
+
+ # Separate optargs to long options (plugins may need this):
+ --*=*) func_split_equals "$_G_opt"
+ set dummy "$func_split_equals_lhs" \
+ "$func_split_equals_rhs" ${1+"$@"}
+ shift
+ ;;
+
+ # Separate optargs to short options:
+ -W*)
+ func_split_short_opt "$_G_opt"
+ set dummy "$func_split_short_opt_name" \
+ "$func_split_short_opt_arg" ${1+"$@"}
+ shift
+ ;;
+
+ # Separate non-argument short options:
+ -\?*|-h*|-v*|-x*)
+ func_split_short_opt "$_G_opt"
+ set dummy "$func_split_short_opt_name" \
+ "-$func_split_short_opt_arg" ${1+"$@"}
+ shift
+ ;;
+
+ --) _G_parse_options_requote=: ; break ;;
+ -*) func_fatal_help "unrecognised option: '$_G_opt'" ;;
+ *) set dummy "$_G_opt" ${1+"$@"}; shift
+ _G_match_parse_options=false
+ break
+ ;;
+ esac
+
+ if $_G_match_parse_options; then
+ _G_parse_options_requote=:
+ fi
+ done
+
+ if $_G_parse_options_requote; then
+ # save modified positional parameters for caller
+ func_quote eval ${1+"$@"}
+ func_parse_options_result=$func_quote_result
+ fi
+}
+
+
+# func_validate_options [ARG]...
+# ------------------------------
+# Perform any sanity checks on option settings and/or unconsumed
+# arguments.
+func_hookable func_validate_options
+func_validate_options ()
+{
+ $debug_cmd
+
+ # Display all warnings if -W was not given.
+ test -n "$opt_warning_types" || opt_warning_types=" $warning_categories"
+
+ func_run_hooks func_validate_options ${1+"$@"}
+ func_propagate_result func_run_hooks func_validate_options
+
+ # Bail if the options were screwed!
+ $exit_cmd $EXIT_FAILURE
+}
+
+
+
+## ----------------- ##
+## Helper functions. ##
+## ----------------- ##
+
+# This section contains the helper functions used by the rest of the
+# hookable option parser framework in ascii-betical order.
+
+
+# func_fatal_help ARG...
+# ----------------------
+# Echo program name prefixed message to standard error, followed by
+# a help hint, and exit.
+func_fatal_help ()
+{
+ $debug_cmd
+
+ eval \$ECHO \""Usage: $usage"\"
+ eval \$ECHO \""$fatal_help"\"
+ func_error ${1+"$@"}
+ exit $EXIT_FAILURE
+}
+
+
+# func_help
+# ---------
+# Echo long help message to standard output and exit.
+func_help ()
+{
+ $debug_cmd
+
+ func_usage_message
+ $ECHO "$long_help_message"
+ exit 0
+}
+
+
+# func_missing_arg ARGNAME
+# ------------------------
+# Echo program name prefixed message to standard error and set global
+# exit_cmd.
+func_missing_arg ()
+{
+ $debug_cmd
+
+ func_error "Missing argument for '$1'."
+ exit_cmd=exit
+}
+
+
+# func_split_equals STRING
+# ------------------------
+# Set func_split_equals_lhs and func_split_equals_rhs shell variables
+# after splitting STRING at the '=' sign.
+test -z "$_G_HAVE_XSI_OPS" \
+ && (eval 'x=a/b/c;
+ test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \
+ && _G_HAVE_XSI_OPS=yes
+
+if test yes = "$_G_HAVE_XSI_OPS"
+then
+ # This is an XSI compatible shell, allowing a faster implementation...
+ eval 'func_split_equals ()
+ {
+ $debug_cmd
+
+ func_split_equals_lhs=${1%%=*}
+ func_split_equals_rhs=${1#*=}
+ if test "x$func_split_equals_lhs" = "x$1"; then
+ func_split_equals_rhs=
+ fi
+ }'
+else
+ # ...otherwise fall back to using expr, which is often a shell builtin.
+ func_split_equals ()
+ {
+ $debug_cmd
+
+ func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'`
+ func_split_equals_rhs=
+ test "x$func_split_equals_lhs=" = "x$1" \
+ || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'`
+ }
+fi #func_split_equals
+
+
+# func_split_short_opt SHORTOPT
+# -----------------------------
+# Set func_split_short_opt_name and func_split_short_opt_arg shell
+# variables after splitting SHORTOPT after the 2nd character.
+if test yes = "$_G_HAVE_XSI_OPS"
+then
+ # This is an XSI compatible shell, allowing a faster implementation...
+ eval 'func_split_short_opt ()
+ {
+ $debug_cmd
+
+ func_split_short_opt_arg=${1#??}
+ func_split_short_opt_name=${1%"$func_split_short_opt_arg"}
+ }'
+else
+ # ...otherwise fall back to using expr, which is often a shell builtin.
+ func_split_short_opt ()
+ {
+ $debug_cmd
+
+ func_split_short_opt_name=`expr "x$1" : 'x\(-.\)'`
+ func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'`
+ }
+fi #func_split_short_opt
+
+
+# func_usage
+# ----------
+# Echo short help message to standard output and exit.
+func_usage ()
+{
+ $debug_cmd
+
+ func_usage_message
+ $ECHO "Run '$progname --help |${PAGER-more}' for full usage"
+ exit 0
+}
+
+
+# func_usage_message
+# ------------------
+# Echo short help message to standard output.
+func_usage_message ()
+{
+ $debug_cmd
+
+ eval \$ECHO \""Usage: $usage"\"
+ echo
+ $SED -n 's|^# ||
+ /^Written by/{
+ x;p;x
+ }
+ h
+ /^Written by/q' < "$progpath"
+ echo
+ eval \$ECHO \""$usage_message"\"
+}
+
+
+# func_version
+# ------------
+# Echo version message to standard output and exit.
+# The version message is extracted from the calling file's header
+# comments, with leading '# ' stripped:
+# 1. First display the progname and version
+# 2. Followed by the header comment line matching /^# Written by /
+# 3. Then a blank line followed by the first following line matching
+# /^# Copyright /
+# 4. Immediately followed by any lines between the previous matches,
+# except lines preceding the intervening completely blank line.
+# For example, see the header comments of this file.
+func_version ()
+{
+ $debug_cmd
+
+ printf '%s\n' "$progname $scriptversion"
+ $SED -n '
+ /^# Written by /!b
+ s|^# ||; p; n
+
+ :fwd2blnk
+ /./ {
+ n
+ b fwd2blnk
+ }
+ p; n
+
+ :holdwrnt
+ s|^# ||
+ s|^# *$||
+ /^Copyright /!{
+ /./H
+ n
+ b holdwrnt
+ }
+
+ s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2|
+ G
+ s|\(\n\)\n*|\1|g
+ p; q' < "$progpath"
+
+ exit $?
+}
+
+
+# Local variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-pattern: "30/scriptversion=%:y-%02m-%02d.%02H; # UTC"
+# time-stamp-time-zone: "UTC"
+# End:
+
+# Set a version string.
+scriptversion='(GNU libtool) 2.4.7'
+
+
+# func_echo ARG...
+# ----------------
+# Libtool also displays the current mode in messages, so override
+# funclib.sh func_echo with this custom definition.
+func_echo ()
+{
+ $debug_cmd
+
+ _G_message=$*
+
+ func_echo_IFS=$IFS
+ IFS=$nl
+ for _G_line in $_G_message; do
+ IFS=$func_echo_IFS
+ $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line"
+ done
+ IFS=$func_echo_IFS
+}
+
+
+# func_warning ARG...
+# -------------------
+# Libtool warnings are not categorized, so override funclib.sh
+# func_warning with this simpler definition.
+func_warning ()
+{
+ $debug_cmd
+
+ $warning_func ${1+"$@"}
+}
+
+
+## ---------------- ##
+## Options parsing. ##
+## ---------------- ##
+
+# Hook in the functions to make sure our own options are parsed during
+# the option parsing loop.
+
+usage='$progpath [OPTION]... [MODE-ARG]...'
+
+# Short help message in response to '-h'.
+usage_message="Options:
+ --config show all configuration variables
+ --debug enable verbose shell tracing
+ -n, --dry-run display commands without modifying any files
+ --features display basic configuration information and exit
+ --mode=MODE use operation mode MODE
+ --no-warnings equivalent to '-Wnone'
+ --preserve-dup-deps don't remove duplicate dependency libraries
+ --quiet, --silent don't print informational messages
+ --tag=TAG use configuration variables from tag TAG
+ -v, --verbose print more informational messages than default
+ --version print version information
+ -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all]
+ -h, --help, --help-all print short, long, or detailed help message
+"
+
+# Additional text appended to 'usage_message' in response to '--help'.
+func_help ()
+{
+ $debug_cmd
+
+ func_usage_message
+ $ECHO "$long_help_message
+
+MODE must be one of the following:
+
+ clean remove files from the build directory
+ compile compile a source file into a libtool object
+ execute automatically set library path, then run a program
+ finish complete the installation of libtool libraries
+ install install libraries or executables
+ link create a library or an executable
+ uninstall remove libraries from an installed directory
+
+MODE-ARGS vary depending on the MODE. When passed as first option,
+'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that.
+Try '$progname --help --mode=MODE' for a more detailed description of MODE.
+
+When reporting a bug, please describe a test case to reproduce it and
+include the following information:
+
+ host-triplet: $host
+ shell: $SHELL
+ compiler: $LTCC
+ compiler flags: $LTCFLAGS
+ linker: $LD (gnu? $with_gnu_ld)
+ version: $progname $scriptversion Debian-2.4.7-5
+ automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q`
+ autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q`
+
+Report bugs to <bug-libtool@gnu.org>.
+GNU libtool home page: <http://www.gnu.org/s/libtool/>.
+General help using GNU software: <http://www.gnu.org/gethelp/>."
+ exit 0
+}
+
+
+# func_lo2o OBJECT-NAME
+# ---------------------
+# Transform OBJECT-NAME from a '.lo' suffix to the platform specific
+# object suffix.
+
+lo2o=s/\\.lo\$/.$objext/
+o2lo=s/\\.$objext\$/.lo/
+
+if test yes = "$_G_HAVE_XSI_OPS"; then
+ eval 'func_lo2o ()
+ {
+ case $1 in
+ *.lo) func_lo2o_result=${1%.lo}.$objext ;;
+ * ) func_lo2o_result=$1 ;;
+ esac
+ }'
+
+ # func_xform LIBOBJ-OR-SOURCE
+ # ---------------------------
+ # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise)
+ # suffix to a '.lo' libtool-object suffix.
+ eval 'func_xform ()
+ {
+ func_xform_result=${1%.*}.lo
+ }'
+else
+ # ...otherwise fall back to using sed.
+ func_lo2o ()
+ {
+ func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"`
+ }
+
+ func_xform ()
+ {
+ func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'`
+ }
+fi
+
+
+# func_fatal_configuration ARG...
+# -------------------------------
+# Echo program name prefixed message to standard error, followed by
+# a configuration failure hint, and exit.
+func_fatal_configuration ()
+{
+ func_fatal_error ${1+"$@"} \
+ "See the $PACKAGE documentation for more information." \
+ "Fatal configuration error."
+}
+
+
+# func_config
+# -----------
+# Display the configuration for all the tags in this script.
+func_config ()
+{
+ re_begincf='^# ### BEGIN LIBTOOL'
+ re_endcf='^# ### END LIBTOOL'
+
+ # Default configuration.
+ $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
+
+ # Now print the configurations for the tags.
+ for tagname in $taglist; do
+ $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
+ done
+
+ exit $?
+}
+
+
+# func_features
+# -------------
+# Display the features supported by this script.
+func_features ()
+{
+ echo "host: $host"
+ if test yes = "$build_libtool_libs"; then
+ echo "enable shared libraries"
+ else
+ echo "disable shared libraries"
+ fi
+ if test yes = "$build_old_libs"; then
+ echo "enable static libraries"
+ else
+ echo "disable static libraries"
+ fi
+
+ exit $?
+}
+
+
+# func_enable_tag TAGNAME
+# -----------------------
+# Verify that TAGNAME is valid, and either flag an error and exit, or
+# enable the TAGNAME tag. We also add TAGNAME to the global $taglist
+# variable here.
+func_enable_tag ()
+{
+ # Global variable:
+ tagname=$1
+
+ re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
+ re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
+ sed_extractcf=/$re_begincf/,/$re_endcf/p
+
+ # Validate tagname.
+ case $tagname in
+ *[!-_A-Za-z0-9,/]*)
+ func_fatal_error "invalid tag name: $tagname"
+ ;;
+ esac
+
+ # Don't test for the "default" C tag, as we know it's
+ # there but not specially marked.
+ case $tagname in
+ CC) ;;
+ *)
+ if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
+ taglist="$taglist $tagname"
+
+ # Evaluate the configuration. Be careful to quote the path
+ # and the sed script, to avoid splitting on whitespace, but
+ # also don't use non-portable quotes within backquotes within
+ # quotes we have to do it in 2 steps:
+ extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
+ eval "$extractedcf"
+ else
+ func_error "ignoring unknown tag $tagname"
+ fi
+ ;;
+ esac
+}
+
+
+# func_check_version_match
+# ------------------------
+# Ensure that we are using m4 macros, and libtool script from the same
+# release of libtool.
+func_check_version_match ()
+{
+ if test "$package_revision" != "$macro_revision"; then
+ if test "$VERSION" != "$macro_version"; then
+ if test -z "$macro_version"; then
+ cat >&2 <<_LT_EOF
+$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from an older release.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+ else
+ cat >&2 <<_LT_EOF
+$progname: Version mismatch error. This is $PACKAGE $VERSION, but the
+$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
+$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
+$progname: and run autoconf again.
+_LT_EOF
+ fi
+ else
+ cat >&2 <<_LT_EOF
+$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision,
+$progname: but the definition of this LT_INIT comes from revision $macro_revision.
+$progname: You should recreate aclocal.m4 with macros from revision $package_revision
+$progname: of $PACKAGE $VERSION and run autoconf again.
+_LT_EOF
+ fi
+
+ exit $EXIT_MISMATCH
+ fi
+}
+
+
+# libtool_options_prep [ARG]...
+# -----------------------------
+# Preparation for options parsed by libtool.
+libtool_options_prep ()
+{
+ $debug_mode
+
+ # Option defaults:
+ opt_config=false
+ opt_dlopen=
+ opt_dry_run=false
+ opt_help=false
+ opt_mode=
+ opt_preserve_dup_deps=false
+ opt_quiet=false
+
+ nonopt=
+ preserve_args=
+
+ _G_rc_lt_options_prep=:
+
+ _G_rc_lt_options_prep=:
+
+ # Shorthand for --mode=foo, only valid as the first argument
+ case $1 in
+ clean|clea|cle|cl)
+ shift; set dummy --mode clean ${1+"$@"}; shift
+ ;;
+ compile|compil|compi|comp|com|co|c)
+ shift; set dummy --mode compile ${1+"$@"}; shift
+ ;;
+ execute|execut|execu|exec|exe|ex|e)
+ shift; set dummy --mode execute ${1+"$@"}; shift
+ ;;
+ finish|finis|fini|fin|fi|f)
+ shift; set dummy --mode finish ${1+"$@"}; shift
+ ;;
+ install|instal|insta|inst|ins|in|i)
+ shift; set dummy --mode install ${1+"$@"}; shift
+ ;;
+ link|lin|li|l)
+ shift; set dummy --mode link ${1+"$@"}; shift
+ ;;
+ uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
+ shift; set dummy --mode uninstall ${1+"$@"}; shift
+ ;;
+ *)
+ _G_rc_lt_options_prep=false
+ ;;
+ esac
+
+ if $_G_rc_lt_options_prep; then
+ # Pass back the list of options.
+ func_quote eval ${1+"$@"}
+ libtool_options_prep_result=$func_quote_result
+ fi
+}
+func_add_hook func_options_prep libtool_options_prep
+
+
+# libtool_parse_options [ARG]...
+# ---------------------------------
+# Provide handling for libtool specific options.
+libtool_parse_options ()
+{
+ $debug_cmd
+
+ _G_rc_lt_parse_options=false
+
+ # Perform our own loop to consume as many options as possible in
+ # each iteration.
+ while test $# -gt 0; do
+ _G_match_lt_parse_options=:
+ _G_opt=$1
+ shift
+ case $_G_opt in
+ --dry-run|--dryrun|-n)
+ opt_dry_run=:
+ ;;
+
+ --config) func_config ;;
+
+ --dlopen|-dlopen)
+ opt_dlopen="${opt_dlopen+$opt_dlopen
+}$1"
+ shift
+ ;;
+
+ --preserve-dup-deps)
+ opt_preserve_dup_deps=: ;;
+
+ --features) func_features ;;
+
+ --finish) set dummy --mode finish ${1+"$@"}; shift ;;
+
+ --help) opt_help=: ;;
+
+ --help-all) opt_help=': help-all' ;;
+
+ --mode) test $# = 0 && func_missing_arg $_G_opt && break
+ opt_mode=$1
+ case $1 in
+ # Valid mode arguments:
+ clean|compile|execute|finish|install|link|relink|uninstall) ;;
+
+ # Catch anything else as an error
+ *) func_error "invalid argument for $_G_opt"
+ exit_cmd=exit
+ break
+ ;;
+ esac
+ shift
+ ;;
+
+ --no-silent|--no-quiet)
+ opt_quiet=false
+ func_append preserve_args " $_G_opt"
+ ;;
+
+ --no-warnings|--no-warning|--no-warn)
+ opt_warning=false
+ func_append preserve_args " $_G_opt"
+ ;;
+
+ --no-verbose)
+ opt_verbose=false
+ func_append preserve_args " $_G_opt"
+ ;;
+
+ --silent|--quiet)
+ opt_quiet=:
+ opt_verbose=false
+ func_append preserve_args " $_G_opt"
+ ;;
+
+ --tag) test $# = 0 && func_missing_arg $_G_opt && break
+ opt_tag=$1
+ func_append preserve_args " $_G_opt $1"
+ func_enable_tag "$1"
+ shift
+ ;;
+
+ --verbose|-v) opt_quiet=false
+ opt_verbose=:
+ func_append preserve_args " $_G_opt"
+ ;;
+
+ # An option not handled by this hook function:
+ *) set dummy "$_G_opt" ${1+"$@"} ; shift
+ _G_match_lt_parse_options=false
+ break
+ ;;
+ esac
+ $_G_match_lt_parse_options && _G_rc_lt_parse_options=:
+ done
+
+ if $_G_rc_lt_parse_options; then
+ # save modified positional parameters for caller
+ func_quote eval ${1+"$@"}
+ libtool_parse_options_result=$func_quote_result
+ fi
+}
+func_add_hook func_parse_options libtool_parse_options
+
+
+
+# libtool_validate_options [ARG]...
+# ---------------------------------
+# Perform any sanity checks on option settings and/or unconsumed
+# arguments.
+libtool_validate_options ()
+{
+ # save first non-option argument
+ if test 0 -lt $#; then
+ nonopt=$1
+ shift
+ fi
+
+ # preserve --debug
+ test : = "$debug_cmd" || func_append preserve_args " --debug"
+
+ case $host in
+ # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452
+ # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788
+ *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*)
+ # don't eliminate duplications in $postdeps and $predeps
+ opt_duplicate_compiler_generated_deps=:
+ ;;
+ *)
+ opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
+ ;;
+ esac
+
+ $opt_help || {
+ # Sanity checks first:
+ func_check_version_match
+
+ test yes != "$build_libtool_libs" \
+ && test yes != "$build_old_libs" \
+ && func_fatal_configuration "not configured to build any kind of library"
+
+ # Darwin sucks
+ eval std_shrext=\"$shrext_cmds\"
+
+ # Only execute mode is allowed to have -dlopen flags.
+ if test -n "$opt_dlopen" && test execute != "$opt_mode"; then
+ func_error "unrecognized option '-dlopen'"
+ $ECHO "$help" 1>&2
+ exit $EXIT_FAILURE
+ fi
+
+ # Change the help message to a mode-specific one.
+ generic_help=$help
+ help="Try '$progname --help --mode=$opt_mode' for more information."
+ }
+
+ # Pass back the unparsed argument list
+ func_quote eval ${1+"$@"}
+ libtool_validate_options_result=$func_quote_result
+}
+func_add_hook func_validate_options libtool_validate_options
+
+
+# Process options as early as possible so that --help and --version
+# can return quickly.
+func_options ${1+"$@"}
+eval set dummy "$func_options_result"; shift
+
+
+
+## ----------- ##
+## Main. ##
+## ----------- ##
+
+magic='%%%MAGIC variable%%%'
+magic_exe='%%%MAGIC EXE variable%%%'
+
+# Global variables.
+extracted_archives=
+extracted_serial=0
+
+# If this variable is set in any of the actions, the command in it
+# will be execed at the end. This prevents here-documents from being
+# left over by shells.
+exec_cmd=
+
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+$1
+_LTECHO_EOF'
+}
+
+# func_generated_by_libtool
+# True iff stdin has been generated by Libtool. This function is only
+# a basic sanity check; it will hardly flush out determined imposters.
+func_generated_by_libtool_p ()
+{
+ $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
+}
+
+# func_lalib_p file
+# True iff FILE is a libtool '.la' library or '.lo' object file.
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_lalib_p ()
+{
+ test -f "$1" &&
+ $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p
+}
+
+# func_lalib_unsafe_p file
+# True iff FILE is a libtool '.la' library or '.lo' object file.
+# This function implements the same check as func_lalib_p without
+# resorting to external programs. To this end, it redirects stdin and
+# closes it afterwards, without saving the original file descriptor.
+# As a safety measure, use it only where a negative result would be
+# fatal anyway. Works if 'file' does not exist.
+func_lalib_unsafe_p ()
+{
+ lalib_p=no
+ if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
+ for lalib_p_l in 1 2 3 4
+ do
+ read lalib_p_line
+ case $lalib_p_line in
+ \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
+ esac
+ done
+ exec 0<&5 5<&-
+ fi
+ test yes = "$lalib_p"
+}
+
+# func_ltwrapper_script_p file
+# True iff FILE is a libtool wrapper script
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_script_p ()
+{
+ test -f "$1" &&
+ $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p
+}
+
+# func_ltwrapper_executable_p file
+# True iff FILE is a libtool wrapper executable
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_executable_p ()
+{
+ func_ltwrapper_exec_suffix=
+ case $1 in
+ *.exe) ;;
+ *) func_ltwrapper_exec_suffix=.exe ;;
+ esac
+ $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
+}
+
+# func_ltwrapper_scriptname file
+# Assumes file is an ltwrapper_executable
+# uses $file to determine the appropriate filename for a
+# temporary ltwrapper_script.
+func_ltwrapper_scriptname ()
+{
+ func_dirname_and_basename "$1" "" "."
+ func_stripname '' '.exe' "$func_basename_result"
+ func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper
+}
+
+# func_ltwrapper_p file
+# True iff FILE is a libtool wrapper script or wrapper executable
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_p ()
+{
+ func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
+}
+
+
+# func_execute_cmds commands fail_cmd
+# Execute tilde-delimited COMMANDS.
+# If FAIL_CMD is given, eval that upon failure.
+# FAIL_CMD may read-access the current command in variable CMD!
+func_execute_cmds ()
+{
+ $debug_cmd
+
+ save_ifs=$IFS; IFS='~'
+ for cmd in $1; do
+ IFS=$sp$nl
+ eval cmd=\"$cmd\"
+ IFS=$save_ifs
+ func_show_eval "$cmd" "${2-:}"
+ done
+ IFS=$save_ifs
+}
+
+
+# func_source file
+# Source FILE, adding directory component if necessary.
+# Note that it is not necessary on cygwin/mingw to append a dot to
+# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
+# behavior happens only for exec(3), not for open(2)! Also, sourcing
+# 'FILE.' does not work on cygwin managed mounts.
+func_source ()
+{
+ $debug_cmd
+
+ case $1 in
+ */* | *\\*) . "$1" ;;
+ *) . "./$1" ;;
+ esac
+}
+
+
+# func_resolve_sysroot PATH
+# Replace a leading = in PATH with a sysroot. Store the result into
+# func_resolve_sysroot_result
+func_resolve_sysroot ()
+{
+ func_resolve_sysroot_result=$1
+ case $func_resolve_sysroot_result in
+ =*)
+ func_stripname '=' '' "$func_resolve_sysroot_result"
+ func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
+ ;;
+ esac
+}
+
+# func_replace_sysroot PATH
+# If PATH begins with the sysroot, replace it with = and
+# store the result into func_replace_sysroot_result.
+func_replace_sysroot ()
+{
+ case $lt_sysroot:$1 in
+ ?*:"$lt_sysroot"*)
+ func_stripname "$lt_sysroot" '' "$1"
+ func_replace_sysroot_result='='$func_stripname_result
+ ;;
+ *)
+ # Including no sysroot.
+ func_replace_sysroot_result=$1
+ ;;
+ esac
+}
+
+# func_infer_tag arg
+# Infer tagged configuration to use if any are available and
+# if one wasn't chosen via the "--tag" command line option.
+# Only attempt this if the compiler in the base compile
+# command doesn't match the default compiler.
+# arg is usually of the form 'gcc ...'
+func_infer_tag ()
+{
+ $debug_cmd
+
+ if test -n "$available_tags" && test -z "$tagname"; then
+ CC_quoted=
+ for arg in $CC; do
+ func_append_quoted CC_quoted "$arg"
+ done
+ CC_expanded=`func_echo_all $CC`
+ CC_quoted_expanded=`func_echo_all $CC_quoted`
+ case $@ in
+ # Blanks in the command may have been stripped by the calling shell,
+ # but not from the CC environment variable when configure was run.
+ " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
+ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
+ # Blanks at the start of $base_compile will cause this to fail
+ # if we don't check for them as well.
+ *)
+ for z in $available_tags; do
+ if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
+ # Evaluate the configuration.
+ eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
+ CC_quoted=
+ for arg in $CC; do
+ # Double-quote args containing other shell metacharacters.
+ func_append_quoted CC_quoted "$arg"
+ done
+ CC_expanded=`func_echo_all $CC`
+ CC_quoted_expanded=`func_echo_all $CC_quoted`
+ case "$@ " in
+ " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
+ " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
+ # The compiler in the base compile command matches
+ # the one in the tagged configuration.
+ # Assume this is the tagged configuration we want.
+ tagname=$z
+ break
+ ;;
+ esac
+ fi
+ done
+ # If $tagname still isn't set, then no tagged configuration
+ # was found and let the user know that the "--tag" command
+ # line option must be used.
+ if test -z "$tagname"; then
+ func_echo "unable to infer tagged configuration"
+ func_fatal_error "specify a tag with '--tag'"
+# else
+# func_verbose "using $tagname tagged configuration"
+ fi
+ ;;
+ esac
+ fi
+}
+
+
+
+# func_write_libtool_object output_name pic_name nonpic_name
+# Create a libtool object file (analogous to a ".la" file),
+# but don't create it if we're doing a dry run.
+func_write_libtool_object ()
+{
+ write_libobj=$1
+ if test yes = "$build_libtool_libs"; then
+ write_lobj=\'$2\'
+ else
+ write_lobj=none
+ fi
+
+ if test yes = "$build_old_libs"; then
+ write_oldobj=\'$3\'
+ else
+ write_oldobj=none
+ fi
+
+ $opt_dry_run || {
+ cat >${write_libobj}T <<EOF
+# $write_libobj - a libtool object file
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# Name of the PIC object.
+pic_object=$write_lobj
+
+# Name of the non-PIC object
+non_pic_object=$write_oldobj
+
+EOF
+ $MV "${write_libobj}T" "$write_libobj"
+ }
+}
+
+
+##################################################
+# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
+##################################################
+
+# func_convert_core_file_wine_to_w32 ARG
+# Helper function used by file name conversion functions when $build is *nix,
+# and $host is mingw, cygwin, or some other w32 environment. Relies on a
+# correctly configured wine environment available, with the winepath program
+# in $build's $PATH.
+#
+# ARG is the $build file name to be converted to w32 format.
+# Result is available in $func_convert_core_file_wine_to_w32_result, and will
+# be empty on error (or when ARG is empty)
+func_convert_core_file_wine_to_w32 ()
+{
+ $debug_cmd
+
+ func_convert_core_file_wine_to_w32_result=$1
+ if test -n "$1"; then
+ # Unfortunately, winepath does not exit with a non-zero error code, so we
+ # are forced to check the contents of stdout. On the other hand, if the
+ # command is not found, the shell will set an exit code of 127 and print
+ # *an error message* to stdout. So we must check for both error code of
+ # zero AND non-empty stdout, which explains the odd construction:
+ func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
+ if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then
+ func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
+ $SED -e "$sed_naive_backslashify"`
+ else
+ func_convert_core_file_wine_to_w32_result=
+ fi
+ fi
+}
+# end: func_convert_core_file_wine_to_w32
+
+
+# func_convert_core_path_wine_to_w32 ARG
+# Helper function used by path conversion functions when $build is *nix, and
+# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
+# configured wine environment available, with the winepath program in $build's
+# $PATH. Assumes ARG has no leading or trailing path separator characters.
+#
+# ARG is path to be converted from $build format to win32.
+# Result is available in $func_convert_core_path_wine_to_w32_result.
+# Unconvertible file (directory) names in ARG are skipped; if no directory names
+# are convertible, then the result may be empty.
+func_convert_core_path_wine_to_w32 ()
+{
+ $debug_cmd
+
+ # unfortunately, winepath doesn't convert paths, only file names
+ func_convert_core_path_wine_to_w32_result=
+ if test -n "$1"; then
+ oldIFS=$IFS
+ IFS=:
+ for func_convert_core_path_wine_to_w32_f in $1; do
+ IFS=$oldIFS
+ func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
+ if test -n "$func_convert_core_file_wine_to_w32_result"; then
+ if test -z "$func_convert_core_path_wine_to_w32_result"; then
+ func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result
+ else
+ func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
+ fi
+ fi
+ done
+ IFS=$oldIFS
+ fi
+}
+# end: func_convert_core_path_wine_to_w32
+
+
+# func_cygpath ARGS...
+# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
+# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
+# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
+# (2), returns the Cygwin file name or path in func_cygpath_result (input
+# file name or path is assumed to be in w32 format, as previously converted
+# from $build's *nix or MSYS format). In case (3), returns the w32 file name
+# or path in func_cygpath_result (input file name or path is assumed to be in
+# Cygwin format). Returns an empty string on error.
+#
+# ARGS are passed to cygpath, with the last one being the file name or path to
+# be converted.
+#
+# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
+# environment variable; do not put it in $PATH.
+func_cygpath ()
+{
+ $debug_cmd
+
+ if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
+ func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
+ if test "$?" -ne 0; then
+ # on failure, ensure result is empty
+ func_cygpath_result=
+ fi
+ else
+ func_cygpath_result=
+ func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'"
+ fi
+}
+#end: func_cygpath
+
+
+# func_convert_core_msys_to_w32 ARG
+# Convert file name or path ARG from MSYS format to w32 format. Return
+# result in func_convert_core_msys_to_w32_result.
+func_convert_core_msys_to_w32 ()
+{
+ $debug_cmd
+
+ # awkward: cmd appends spaces to result
+ func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
+ $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"`
+}
+#end: func_convert_core_msys_to_w32
+
+
+# func_convert_file_check ARG1 ARG2
+# Verify that ARG1 (a file name in $build format) was converted to $host
+# format in ARG2. Otherwise, emit an error message, but continue (resetting
+# func_to_host_file_result to ARG1).
+func_convert_file_check ()
+{
+ $debug_cmd
+
+ if test -z "$2" && test -n "$1"; then
+ func_error "Could not determine host file name corresponding to"
+ func_error " '$1'"
+ func_error "Continuing, but uninstalled executables may not work."
+ # Fallback:
+ func_to_host_file_result=$1
+ fi
+}
+# end func_convert_file_check
+
+
+# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
+# Verify that FROM_PATH (a path in $build format) was converted to $host
+# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
+# func_to_host_file_result to a simplistic fallback value (see below).
+func_convert_path_check ()
+{
+ $debug_cmd
+
+ if test -z "$4" && test -n "$3"; then
+ func_error "Could not determine the host path corresponding to"
+ func_error " '$3'"
+ func_error "Continuing, but uninstalled executables may not work."
+ # Fallback. This is a deliberately simplistic "conversion" and
+ # should not be "improved". See libtool.info.
+ if test "x$1" != "x$2"; then
+ lt_replace_pathsep_chars="s|$1|$2|g"
+ func_to_host_path_result=`echo "$3" |
+ $SED -e "$lt_replace_pathsep_chars"`
+ else
+ func_to_host_path_result=$3
+ fi
+ fi
+}
+# end func_convert_path_check
+
+
+# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
+# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
+# and appending REPL if ORIG matches BACKPAT.
+func_convert_path_front_back_pathsep ()
+{
+ $debug_cmd
+
+ case $4 in
+ $1 ) func_to_host_path_result=$3$func_to_host_path_result
+ ;;
+ esac
+ case $4 in
+ $2 ) func_append func_to_host_path_result "$3"
+ ;;
+ esac
+}
+# end func_convert_path_front_back_pathsep
+
+
+##################################################
+# $build to $host FILE NAME CONVERSION FUNCTIONS #
+##################################################
+# invoked via '$to_host_file_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# Result will be available in $func_to_host_file_result.
+
+
+# func_to_host_file ARG
+# Converts the file name ARG from $build format to $host format. Return result
+# in func_to_host_file_result.
+func_to_host_file ()
+{
+ $debug_cmd
+
+ $to_host_file_cmd "$1"
+}
+# end func_to_host_file
+
+
+# func_to_tool_file ARG LAZY
+# converts the file name ARG from $build format to toolchain format. Return
+# result in func_to_tool_file_result. If the conversion in use is listed
+# in (the comma separated) LAZY, no conversion takes place.
+func_to_tool_file ()
+{
+ $debug_cmd
+
+ case ,$2, in
+ *,"$to_tool_file_cmd",*)
+ func_to_tool_file_result=$1
+ ;;
+ *)
+ $to_tool_file_cmd "$1"
+ func_to_tool_file_result=$func_to_host_file_result
+ ;;
+ esac
+}
+# end func_to_tool_file
+
+
+# func_convert_file_noop ARG
+# Copy ARG to func_to_host_file_result.
+func_convert_file_noop ()
+{
+ func_to_host_file_result=$1
+}
+# end func_convert_file_noop
+
+
+# func_convert_file_msys_to_w32 ARG
+# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper. Returns result in
+# func_to_host_file_result.
+func_convert_file_msys_to_w32 ()
+{
+ $debug_cmd
+
+ func_to_host_file_result=$1
+ if test -n "$1"; then
+ func_convert_core_msys_to_w32 "$1"
+ func_to_host_file_result=$func_convert_core_msys_to_w32_result
+ fi
+ func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_w32
+
+
+# func_convert_file_cygwin_to_w32 ARG
+# Convert file name ARG from Cygwin to w32 format. Returns result in
+# func_to_host_file_result.
+func_convert_file_cygwin_to_w32 ()
+{
+ $debug_cmd
+
+ func_to_host_file_result=$1
+ if test -n "$1"; then
+ # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
+ # LT_CYGPATH in this case.
+ func_to_host_file_result=`cygpath -m "$1"`
+ fi
+ func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_cygwin_to_w32
+
+
+# func_convert_file_nix_to_w32 ARG
+# Convert file name ARG from *nix to w32 format. Requires a wine environment
+# and a working winepath. Returns result in func_to_host_file_result.
+func_convert_file_nix_to_w32 ()
+{
+ $debug_cmd
+
+ func_to_host_file_result=$1
+ if test -n "$1"; then
+ func_convert_core_file_wine_to_w32 "$1"
+ func_to_host_file_result=$func_convert_core_file_wine_to_w32_result
+ fi
+ func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_w32
+
+
+# func_convert_file_msys_to_cygwin ARG
+# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_file_msys_to_cygwin ()
+{
+ $debug_cmd
+
+ func_to_host_file_result=$1
+ if test -n "$1"; then
+ func_convert_core_msys_to_w32 "$1"
+ func_cygpath -u "$func_convert_core_msys_to_w32_result"
+ func_to_host_file_result=$func_cygpath_result
+ fi
+ func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_msys_to_cygwin
+
+
+# func_convert_file_nix_to_cygwin ARG
+# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed
+# in a wine environment, working winepath, and LT_CYGPATH set. Returns result
+# in func_to_host_file_result.
+func_convert_file_nix_to_cygwin ()
+{
+ $debug_cmd
+
+ func_to_host_file_result=$1
+ if test -n "$1"; then
+ # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
+ func_convert_core_file_wine_to_w32 "$1"
+ func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
+ func_to_host_file_result=$func_cygpath_result
+ fi
+ func_convert_file_check "$1" "$func_to_host_file_result"
+}
+# end func_convert_file_nix_to_cygwin
+
+
+#############################################
+# $build to $host PATH CONVERSION FUNCTIONS #
+#############################################
+# invoked via '$to_host_path_cmd ARG'
+#
+# In each case, ARG is the path to be converted from $build to $host format.
+# The result will be available in $func_to_host_path_result.
+#
+# Path separators are also converted from $build format to $host format. If
+# ARG begins or ends with a path separator character, it is preserved (but
+# converted to $host format) on output.
+#
+# All path conversion functions are named using the following convention:
+# file name conversion function : func_convert_file_X_to_Y ()
+# path conversion function : func_convert_path_X_to_Y ()
+# where, for any given $build/$host combination the 'X_to_Y' value is the
+# same. If conversion functions are added for new $build/$host combinations,
+# the two new functions must follow this pattern, or func_init_to_host_path_cmd
+# will break.
+
+
+# func_init_to_host_path_cmd
+# Ensures that function "pointer" variable $to_host_path_cmd is set to the
+# appropriate value, based on the value of $to_host_file_cmd.
+to_host_path_cmd=
+func_init_to_host_path_cmd ()
+{
+ $debug_cmd
+
+ if test -z "$to_host_path_cmd"; then
+ func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
+ to_host_path_cmd=func_convert_path_$func_stripname_result
+ fi
+}
+
+
+# func_to_host_path ARG
+# Converts the path ARG from $build format to $host format. Return result
+# in func_to_host_path_result.
+func_to_host_path ()
+{
+ $debug_cmd
+
+ func_init_to_host_path_cmd
+ $to_host_path_cmd "$1"
+}
+# end func_to_host_path
+
+
+# func_convert_path_noop ARG
+# Copy ARG to func_to_host_path_result.
+func_convert_path_noop ()
+{
+ func_to_host_path_result=$1
+}
+# end func_convert_path_noop
+
+
+# func_convert_path_msys_to_w32 ARG
+# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
+# conversion to w32 is not available inside the cwrapper. Returns result in
+# func_to_host_path_result.
+func_convert_path_msys_to_w32 ()
+{
+ $debug_cmd
+
+ func_to_host_path_result=$1
+ if test -n "$1"; then
+ # Remove leading and trailing path separator characters from ARG. MSYS
+ # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
+ # and winepath ignores them completely.
+ func_stripname : : "$1"
+ func_to_host_path_tmp1=$func_stripname_result
+ func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+ func_to_host_path_result=$func_convert_core_msys_to_w32_result
+ func_convert_path_check : ";" \
+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
+ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+ fi
+}
+# end func_convert_path_msys_to_w32
+
+
+# func_convert_path_cygwin_to_w32 ARG
+# Convert path ARG from Cygwin to w32 format. Returns result in
+# func_to_host_file_result.
+func_convert_path_cygwin_to_w32 ()
+{
+ $debug_cmd
+
+ func_to_host_path_result=$1
+ if test -n "$1"; then
+ # See func_convert_path_msys_to_w32:
+ func_stripname : : "$1"
+ func_to_host_path_tmp1=$func_stripname_result
+ func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
+ func_convert_path_check : ";" \
+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
+ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+ fi
+}
+# end func_convert_path_cygwin_to_w32
+
+
+# func_convert_path_nix_to_w32 ARG
+# Convert path ARG from *nix to w32 format. Requires a wine environment and
+# a working winepath. Returns result in func_to_host_file_result.
+func_convert_path_nix_to_w32 ()
+{
+ $debug_cmd
+
+ func_to_host_path_result=$1
+ if test -n "$1"; then
+ # See func_convert_path_msys_to_w32:
+ func_stripname : : "$1"
+ func_to_host_path_tmp1=$func_stripname_result
+ func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+ func_to_host_path_result=$func_convert_core_path_wine_to_w32_result
+ func_convert_path_check : ";" \
+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
+ func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
+ fi
+}
+# end func_convert_path_nix_to_w32
+
+
+# func_convert_path_msys_to_cygwin ARG
+# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set.
+# Returns result in func_to_host_file_result.
+func_convert_path_msys_to_cygwin ()
+{
+ $debug_cmd
+
+ func_to_host_path_result=$1
+ if test -n "$1"; then
+ # See func_convert_path_msys_to_w32:
+ func_stripname : : "$1"
+ func_to_host_path_tmp1=$func_stripname_result
+ func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+ func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
+ func_to_host_path_result=$func_cygpath_result
+ func_convert_path_check : : \
+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
+ func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+ fi
+}
+# end func_convert_path_msys_to_cygwin
+
+
+# func_convert_path_nix_to_cygwin ARG
+# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a
+# a wine environment, working winepath, and LT_CYGPATH set. Returns result in
+# func_to_host_file_result.
+func_convert_path_nix_to_cygwin ()
+{
+ $debug_cmd
+
+ func_to_host_path_result=$1
+ if test -n "$1"; then
+ # Remove leading and trailing path separator characters from
+ # ARG. msys behavior is inconsistent here, cygpath turns them
+ # into '.;' and ';.', and winepath ignores them completely.
+ func_stripname : : "$1"
+ func_to_host_path_tmp1=$func_stripname_result
+ func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
+ func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
+ func_to_host_path_result=$func_cygpath_result
+ func_convert_path_check : : \
+ "$func_to_host_path_tmp1" "$func_to_host_path_result"
+ func_convert_path_front_back_pathsep ":*" "*:" : "$1"
+ fi
+}
+# end func_convert_path_nix_to_cygwin
+
+
+# func_dll_def_p FILE
+# True iff FILE is a Windows DLL '.def' file.
+# Keep in sync with _LT_DLL_DEF_P in libtool.m4
+func_dll_def_p ()
+{
+ $debug_cmd
+
+ func_dll_def_p_tmp=`$SED -n \
+ -e 's/^[ ]*//' \
+ -e '/^\(;.*\)*$/d' \
+ -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \
+ -e q \
+ "$1"`
+ test DEF = "$func_dll_def_p_tmp"
+}
+
+
+# func_mode_compile arg...
+func_mode_compile ()
+{
+ $debug_cmd
+
+ # Get the compilation command and the source file.
+ base_compile=
+ srcfile=$nonopt # always keep a non-empty value in "srcfile"
+ suppress_opt=yes
+ suppress_output=
+ arg_mode=normal
+ libobj=
+ later=
+ pie_flag=
+
+ for arg
+ do
+ case $arg_mode in
+ arg )
+ # do not "continue". Instead, add this to base_compile
+ lastarg=$arg
+ arg_mode=normal
+ ;;
+
+ target )
+ libobj=$arg
+ arg_mode=normal
+ continue
+ ;;
+
+ normal )
+ # Accept any command-line options.
+ case $arg in
+ -o)
+ test -n "$libobj" && \
+ func_fatal_error "you cannot specify '-o' more than once"
+ arg_mode=target
+ continue
+ ;;
+
+ -pie | -fpie | -fPIE)
+ func_append pie_flag " $arg"
+ continue
+ ;;
+
+ -shared | -static | -prefer-pic | -prefer-non-pic)
+ func_append later " $arg"
+ continue
+ ;;
+
+ -no-suppress)
+ suppress_opt=no
+ continue
+ ;;
+
+ -Xcompiler)
+ arg_mode=arg # the next one goes into the "base_compile" arg list
+ continue # The current "srcfile" will either be retained or
+ ;; # replaced later. I would guess that would be a bug.
+
+ -Wc,*)
+ func_stripname '-Wc,' '' "$arg"
+ args=$func_stripname_result
+ lastarg=
+ save_ifs=$IFS; IFS=,
+ for arg in $args; do
+ IFS=$save_ifs
+ func_append_quoted lastarg "$arg"
+ done
+ IFS=$save_ifs
+ func_stripname ' ' '' "$lastarg"
+ lastarg=$func_stripname_result
+
+ # Add the arguments to base_compile.
+ func_append base_compile " $lastarg"
+ continue
+ ;;
+
+ *)
+ # Accept the current argument as the source file.
+ # The previous "srcfile" becomes the current argument.
+ #
+ lastarg=$srcfile
+ srcfile=$arg
+ ;;
+ esac # case $arg
+ ;;
+ esac # case $arg_mode
+
+ # Aesthetically quote the previous argument.
+ func_append_quoted base_compile "$lastarg"
+ done # for arg
+
+ case $arg_mode in
+ arg)
+ func_fatal_error "you must specify an argument for -Xcompile"
+ ;;
+ target)
+ func_fatal_error "you must specify a target with '-o'"
+ ;;
+ *)
+ # Get the name of the library object.
+ test -z "$libobj" && {
+ func_basename "$srcfile"
+ libobj=$func_basename_result
+ }
+ ;;
+ esac
+
+ # Recognize several different file suffixes.
+ # If the user specifies -o file.o, it is replaced with file.lo
+ case $libobj in
+ *.[cCFSifmso] | \
+ *.ada | *.adb | *.ads | *.asm | \
+ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
+ *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
+ func_xform "$libobj"
+ libobj=$func_xform_result
+ ;;
+ esac
+
+ case $libobj in
+ *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
+ *)
+ func_fatal_error "cannot determine name of library object from '$libobj'"
+ ;;
+ esac
+
+ func_infer_tag $base_compile
+
+ for arg in $later; do
+ case $arg in
+ -shared)
+ test yes = "$build_libtool_libs" \
+ || func_fatal_configuration "cannot build a shared library"
+ build_old_libs=no
+ continue
+ ;;
+
+ -static)
+ build_libtool_libs=no
+ build_old_libs=yes
+ continue
+ ;;
+
+ -prefer-pic)
+ pic_mode=yes
+ continue
+ ;;
+
+ -prefer-non-pic)
+ pic_mode=no
+ continue
+ ;;
+ esac
+ done
+
+ func_quote_arg pretty "$libobj"
+ test "X$libobj" != "X$func_quote_arg_result" \
+ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
+ && func_warning "libobj name '$libobj' may not contain shell special characters."
+ func_dirname_and_basename "$obj" "/" ""
+ objname=$func_basename_result
+ xdir=$func_dirname_result
+ lobj=$xdir$objdir/$objname
+
+ test -z "$base_compile" && \
+ func_fatal_help "you must specify a compilation command"
+
+ # Delete any leftover library objects.
+ if test yes = "$build_old_libs"; then
+ removelist="$obj $lobj $libobj ${libobj}T"
+ else
+ removelist="$lobj $libobj ${libobj}T"
+ fi
+
+ # On Cygwin there's no "real" PIC flag so we must build both object types
+ case $host_os in
+ cygwin* | mingw* | pw32* | os2* | cegcc*)
+ pic_mode=default
+ ;;
+ esac
+ if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then
+ # non-PIC code in shared libraries is not supported
+ pic_mode=default
+ fi
+
+ # Calculate the filename of the output object if compiler does
+ # not support -o with -c
+ if test no = "$compiler_c_o"; then
+ output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext
+ lockfile=$output_obj.lock
+ else
+ output_obj=
+ need_locks=no
+ lockfile=
+ fi
+
+ # Lock this critical section if it is needed
+ # We use this script file to make the link, it avoids creating a new file
+ if test yes = "$need_locks"; then
+ until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+ func_echo "Waiting for $lockfile to be removed"
+ sleep 2
+ done
+ elif test warn = "$need_locks"; then
+ if test -f "$lockfile"; then
+ $ECHO "\
+*** ERROR, $lockfile exists and contains:
+`cat $lockfile 2>/dev/null`
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support '-c' and '-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $opt_dry_run || $RM $removelist
+ exit $EXIT_FAILURE
+ fi
+ func_append removelist " $output_obj"
+ $ECHO "$srcfile" > "$lockfile"
+ fi
+
+ $opt_dry_run || $RM $removelist
+ func_append removelist " $lockfile"
+ trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
+
+ func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
+ srcfile=$func_to_tool_file_result
+ func_quote_arg pretty "$srcfile"
+ qsrcfile=$func_quote_arg_result
+
+ # Only build a PIC object if we are building libtool libraries.
+ if test yes = "$build_libtool_libs"; then
+ # Without this assignment, base_compile gets emptied.
+ fbsd_hideous_sh_bug=$base_compile
+
+ if test no != "$pic_mode"; then
+ command="$base_compile $qsrcfile $pic_flag"
+ else
+ # Don't build PIC code
+ command="$base_compile $qsrcfile"
+ fi
+
+ func_mkdir_p "$xdir$objdir"
+
+ if test -z "$output_obj"; then
+ # Place PIC objects in $objdir
+ func_append command " -o $lobj"
+ fi
+
+ func_show_eval_locale "$command" \
+ 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
+
+ if test warn = "$need_locks" &&
+ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+ $ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support '-c' and '-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $opt_dry_run || $RM $removelist
+ exit $EXIT_FAILURE
+ fi
+
+ # Just move the object if needed, then go on to compile the next one
+ if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
+ func_show_eval '$MV "$output_obj" "$lobj"' \
+ 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+ fi
+
+ # Allow error messages only from the first compilation.
+ if test yes = "$suppress_opt"; then
+ suppress_output=' >/dev/null 2>&1'
+ fi
+ fi
+
+ # Only build a position-dependent object if we build old libraries.
+ if test yes = "$build_old_libs"; then
+ if test yes != "$pic_mode"; then
+ # Don't build PIC code
+ command="$base_compile $qsrcfile$pie_flag"
+ else
+ command="$base_compile $qsrcfile $pic_flag"
+ fi
+ if test yes = "$compiler_c_o"; then
+ func_append command " -o $obj"
+ fi
+
+ # Suppress compiler output if we already did a PIC compilation.
+ func_append command "$suppress_output"
+ func_show_eval_locale "$command" \
+ '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
+
+ if test warn = "$need_locks" &&
+ test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
+ $ECHO "\
+*** ERROR, $lockfile contains:
+`cat $lockfile 2>/dev/null`
+
+but it should contain:
+$srcfile
+
+This indicates that another process is trying to use the same
+temporary object file, and libtool could not work around it because
+your compiler does not support '-c' and '-o' together. If you
+repeat this compilation, it may succeed, by chance, but you had better
+avoid parallel builds (make -j) in this platform, or get a better
+compiler."
+
+ $opt_dry_run || $RM $removelist
+ exit $EXIT_FAILURE
+ fi
+
+ # Just move the object if needed
+ if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
+ func_show_eval '$MV "$output_obj" "$obj"' \
+ 'error=$?; $opt_dry_run || $RM $removelist; exit $error'
+ fi
+ fi
+
+ $opt_dry_run || {
+ func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
+
+ # Unlock the critical section if it was locked
+ if test no != "$need_locks"; then
+ removelist=$lockfile
+ $RM "$lockfile"
+ fi
+ }
+
+ exit $EXIT_SUCCESS
+}
+
+$opt_help || {
+ test compile = "$opt_mode" && func_mode_compile ${1+"$@"}
+}
+
+func_mode_help ()
+{
+ # We need to display help for each of the modes.
+ case $opt_mode in
+ "")
+ # Generic help is extracted from the usage comments
+ # at the start of this file.
+ func_help
+ ;;
+
+ clean)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
+
+Remove files from the build directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed
+to RM.
+
+If FILE is a libtool library, object or program, all the files associated
+with it are deleted. Otherwise, only FILE itself is deleted using RM."
+ ;;
+
+ compile)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
+
+Compile a source file into a libtool library object.
+
+This mode accepts the following additional options:
+
+ -o OUTPUT-FILE set the output file name to OUTPUT-FILE
+ -no-suppress do not suppress compiler output for multiple passes
+ -prefer-pic try to build PIC objects only
+ -prefer-non-pic try to build non-PIC objects only
+ -shared do not build a '.o' file suitable for static linking
+ -static only build a '.o' file suitable for static linking
+ -Wc,FLAG
+ -Xcompiler FLAG pass FLAG directly to the compiler
+
+COMPILE-COMMAND is a command to be used in creating a 'standard' object file
+from the given SOURCEFILE.
+
+The output file name is determined by removing the directory component from
+SOURCEFILE, then substituting the C source code suffix '.c' with the
+library object suffix, '.lo'."
+ ;;
+
+ execute)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
+
+Automatically set library path, then run a program.
+
+This mode accepts the following additional options:
+
+ -dlopen FILE add the directory containing FILE to the library path
+
+This mode sets the library path environment variable according to '-dlopen'
+flags.
+
+If any of the ARGS are libtool executable wrappers, then they are translated
+into their corresponding uninstalled binary, and any of their required library
+directories are added to the library path.
+
+Then, COMMAND is executed, with ARGS as arguments."
+ ;;
+
+ finish)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
+
+Complete the installation of libtool libraries.
+
+Each LIBDIR is a directory that contains libtool libraries.
+
+The commands that this mode executes may require superuser privileges. Use
+the '--dry-run' option if you just want to see what would be executed."
+ ;;
+
+ install)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
+
+Install executables or libraries.
+
+INSTALL-COMMAND is the installation command. The first component should be
+either the 'install' or 'cp' program.
+
+The following components of INSTALL-COMMAND are treated specially:
+
+ -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation
+
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+ ;;
+
+ link)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
+
+Link object files or libraries together to form another library, or to
+create an executable program.
+
+LINK-COMMAND is a command using the C compiler that you would use to create
+a program from several object files.
+
+The following components of LINK-COMMAND are treated specially:
+
+ -all-static do not do any dynamic linking at all
+ -avoid-version do not add a version suffix if possible
+ -bindir BINDIR specify path to binaries directory (for systems where
+ libraries must be found in the PATH setting at runtime)
+ -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime
+ -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
+ -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
+ -export-symbols SYMFILE
+ try to export only the symbols listed in SYMFILE
+ -export-symbols-regex REGEX
+ try to export only the symbols matching REGEX
+ -LLIBDIR search LIBDIR for required installed libraries
+ -lNAME OUTPUT-FILE requires the installed library libNAME
+ -module build a library that can dlopened
+ -no-fast-install disable the fast-install mode
+ -no-install link a not-installable executable
+ -no-undefined declare that a library does not refer to external symbols
+ -o OUTPUT-FILE create OUTPUT-FILE from the specified objects
+ -objectlist FILE use a list of object files found in FILE to specify objects
+ -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes)
+ -precious-files-regex REGEX
+ don't remove output files matching REGEX
+ -release RELEASE specify package release information
+ -rpath LIBDIR the created library will eventually be installed in LIBDIR
+ -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
+ -shared only do dynamic linking of libtool libraries
+ -shrext SUFFIX override the standard shared library file extension
+ -static do not do any dynamic linking of uninstalled libtool libraries
+ -static-libtool-libs
+ do not do any dynamic linking of libtool libraries
+ -version-info CURRENT[:REVISION[:AGE]]
+ specify library version info [each variable defaults to 0]
+ -weak LIBNAME declare that the target provides the LIBNAME interface
+ -Wc,FLAG
+ -Xcompiler FLAG pass linker-specific FLAG directly to the compiler
+ -Wa,FLAG
+ -Xassembler FLAG pass linker-specific FLAG directly to the assembler
+ -Wl,FLAG
+ -Xlinker FLAG pass linker-specific FLAG directly to the linker
+ -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC)
+
+All other options (arguments beginning with '-') are ignored.
+
+Every other argument is treated as a filename. Files ending in '.la' are
+treated as uninstalled libtool libraries, other files are standard or library
+object files.
+
+If the OUTPUT-FILE ends in '.la', then a libtool library is created,
+only library objects ('.lo' files) may be specified, and '-rpath' is
+required, except when creating a convenience library.
+
+If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created
+using 'ar' and 'ranlib', or on Windows using 'lib'.
+
+If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file
+is created, otherwise an executable program is created."
+ ;;
+
+ uninstall)
+ $ECHO \
+"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
+
+Remove libraries from an installation directory.
+
+RM is the name of the program to use to delete files associated with each FILE
+(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed
+to RM.
+
+If FILE is a libtool library, all the files associated with it are deleted.
+Otherwise, only FILE itself is deleted using RM."
+ ;;
+
+ *)
+ func_fatal_help "invalid operation mode '$opt_mode'"
+ ;;
+ esac
+
+ echo
+ $ECHO "Try '$progname --help' for more information about other modes."
+}
+
+# Now that we've collected a possible --mode arg, show help if necessary
+if $opt_help; then
+ if test : = "$opt_help"; then
+ func_mode_help
+ else
+ {
+ func_help noexit
+ for opt_mode in compile link execute install finish uninstall clean; do
+ func_mode_help
+ done
+ } | $SED -n '1p; 2,$s/^Usage:/ or: /p'
+ {
+ func_help noexit
+ for opt_mode in compile link execute install finish uninstall clean; do
+ echo
+ func_mode_help
+ done
+ } |
+ $SED '1d
+ /^When reporting/,/^Report/{
+ H
+ d
+ }
+ $x
+ /information about other modes/d
+ /more detailed .*MODE/d
+ s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
+ fi
+ exit $?
+fi
+
+
+# func_mode_execute arg...
+func_mode_execute ()
+{
+ $debug_cmd
+
+ # The first argument is the command name.
+ cmd=$nonopt
+ test -z "$cmd" && \
+ func_fatal_help "you must specify a COMMAND"
+
+ # Handle -dlopen flags immediately.
+ for file in $opt_dlopen; do
+ test -f "$file" \
+ || func_fatal_help "'$file' is not a file"
+
+ dir=
+ case $file in
+ *.la)
+ func_resolve_sysroot "$file"
+ file=$func_resolve_sysroot_result
+
+ # Check to see that this really is a libtool archive.
+ func_lalib_unsafe_p "$file" \
+ || func_fatal_help "'$lib' is not a valid libtool archive"
+
+ # Read the libtool library.
+ dlname=
+ library_names=
+ func_source "$file"
+
+ # Skip this library if it cannot be dlopened.
+ if test -z "$dlname"; then
+ # Warn if it was a shared library.
+ test -n "$library_names" && \
+ func_warning "'$file' was not linked with '-export-dynamic'"
+ continue
+ fi
+
+ func_dirname "$file" "" "."
+ dir=$func_dirname_result
+
+ if test -f "$dir/$objdir/$dlname"; then
+ func_append dir "/$objdir"
+ else
+ if test ! -f "$dir/$dlname"; then
+ func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'"
+ fi
+ fi
+ ;;
+
+ *.lo)
+ # Just add the directory containing the .lo file.
+ func_dirname "$file" "" "."
+ dir=$func_dirname_result
+ ;;
+
+ *)
+ func_warning "'-dlopen' is ignored for non-libtool libraries and objects"
+ continue
+ ;;
+ esac
+
+ # Get the absolute pathname.
+ absdir=`cd "$dir" && pwd`
+ test -n "$absdir" && dir=$absdir
+
+ # Now add the directory to shlibpath_var.
+ if eval "test -z \"\$$shlibpath_var\""; then
+ eval "$shlibpath_var=\"\$dir\""
+ else
+ eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
+ fi
+ done
+
+ # This variable tells wrapper scripts just to set shlibpath_var
+ # rather than running their programs.
+ libtool_execute_magic=$magic
+
+ # Check if any of the arguments is a wrapper script.
+ args=
+ for file
+ do
+ case $file in
+ -* | *.la | *.lo ) ;;
+ *)
+ # Do a test to see if this is really a libtool program.
+ if func_ltwrapper_script_p "$file"; then
+ func_source "$file"
+ # Transform arg to wrapped name.
+ file=$progdir/$program
+ elif func_ltwrapper_executable_p "$file"; then
+ func_ltwrapper_scriptname "$file"
+ func_source "$func_ltwrapper_scriptname_result"
+ # Transform arg to wrapped name.
+ file=$progdir/$program
+ fi
+ ;;
+ esac
+ # Quote arguments (to preserve shell metacharacters).
+ func_append_quoted args "$file"
+ done
+
+ if $opt_dry_run; then
+ # Display what would be done.
+ if test -n "$shlibpath_var"; then
+ eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
+ echo "export $shlibpath_var"
+ fi
+ $ECHO "$cmd$args"
+ exit $EXIT_SUCCESS
+ else
+ if test -n "$shlibpath_var"; then
+ # Export the shlibpath_var.
+ eval "export $shlibpath_var"
+ fi
+
+ # Restore saved environment variables
+ for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+ do
+ eval "if test \"\${save_$lt_var+set}\" = set; then
+ $lt_var=\$save_$lt_var; export $lt_var
+ else
+ $lt_unset $lt_var
+ fi"
+ done
+
+ # Now prepare to actually exec the command.
+ exec_cmd=\$cmd$args
+ fi
+}
+
+test execute = "$opt_mode" && func_mode_execute ${1+"$@"}
+
+
+# func_mode_finish arg...
+func_mode_finish ()
+{
+ $debug_cmd
+
+ libs=
+ libdirs=
+ admincmds=
+
+ for opt in "$nonopt" ${1+"$@"}
+ do
+ if test -d "$opt"; then
+ func_append libdirs " $opt"
+
+ elif test -f "$opt"; then
+ if func_lalib_unsafe_p "$opt"; then
+ func_append libs " $opt"
+ else
+ func_warning "'$opt' is not a valid libtool archive"
+ fi
+
+ else
+ func_fatal_error "invalid argument '$opt'"
+ fi
+ done
+
+ if test -n "$libs"; then
+ if test -n "$lt_sysroot"; then
+ sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
+ sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
+ else
+ sysroot_cmd=
+ fi
+
+ # Remove sysroot references
+ if $opt_dry_run; then
+ for lib in $libs; do
+ echo "removing references to $lt_sysroot and '=' prefixes from $lib"
+ done
+ else
+ tmpdir=`func_mktempdir`
+ for lib in $libs; do
+ $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
+ > $tmpdir/tmp-la
+ mv -f $tmpdir/tmp-la $lib
+ done
+ ${RM}r "$tmpdir"
+ fi
+ fi
+
+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+ for libdir in $libdirs; do
+ if test -n "$finish_cmds"; then
+ # Do each command in the finish commands.
+ func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
+'"$cmd"'"'
+ fi
+ if test -n "$finish_eval"; then
+ # Do the single finish_eval.
+ eval cmds=\"$finish_eval\"
+ $opt_dry_run || eval "$cmds" || func_append admincmds "
+ $cmds"
+ fi
+ done
+ fi
+
+ # Exit here if they wanted silent mode.
+ $opt_quiet && exit $EXIT_SUCCESS
+
+ if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
+ echo "----------------------------------------------------------------------"
+ echo "Libraries have been installed in:"
+ for libdir in $libdirs; do
+ $ECHO " $libdir"
+ done
+ echo
+ echo "If you ever happen to want to link against installed libraries"
+ echo "in a given directory, LIBDIR, you must either use libtool, and"
+ echo "specify the full pathname of the library, or use the '-LLIBDIR'"
+ echo "flag during linking and do at least one of the following:"
+ if test -n "$shlibpath_var"; then
+ echo " - add LIBDIR to the '$shlibpath_var' environment variable"
+ echo " during execution"
+ fi
+ if test -n "$runpath_var"; then
+ echo " - add LIBDIR to the '$runpath_var' environment variable"
+ echo " during linking"
+ fi
+ if test -n "$hardcode_libdir_flag_spec"; then
+ libdir=LIBDIR
+ eval flag=\"$hardcode_libdir_flag_spec\"
+
+ $ECHO " - use the '$flag' linker flag"
+ fi
+ if test -n "$admincmds"; then
+ $ECHO " - have your system administrator run these commands:$admincmds"
+ fi
+ if test -f /etc/ld.so.conf; then
+ echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'"
+ fi
+ echo
+
+ echo "See any operating system documentation about shared libraries for"
+ case $host in
+ solaris2.[6789]|solaris2.1[0-9])
+ echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
+ echo "pages."
+ ;;
+ *)
+ echo "more information, such as the ld(1) and ld.so(8) manual pages."
+ ;;
+ esac
+ echo "----------------------------------------------------------------------"
+ fi
+ exit $EXIT_SUCCESS
+}
+
+test finish = "$opt_mode" && func_mode_finish ${1+"$@"}
+
+
+# func_mode_install arg...
+func_mode_install ()
+{
+ $debug_cmd
+
+ # There may be an optional sh(1) argument at the beginning of
+ # install_prog (especially on Windows NT).
+ if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" ||
+ # Allow the use of GNU shtool's install command.
+ case $nonopt in *shtool*) :;; *) false;; esac
+ then
+ # Aesthetically quote it.
+ func_quote_arg pretty "$nonopt"
+ install_prog="$func_quote_arg_result "
+ arg=$1
+ shift
+ else
+ install_prog=
+ arg=$nonopt
+ fi
+
+ # The real first argument should be the name of the installation program.
+ # Aesthetically quote it.
+ func_quote_arg pretty "$arg"
+ func_append install_prog "$func_quote_arg_result"
+ install_shared_prog=$install_prog
+ case " $install_prog " in
+ *[\\\ /]cp\ *) install_cp=: ;;
+ *) install_cp=false ;;
+ esac
+
+ # We need to accept at least all the BSD install flags.
+ dest=
+ files=
+ opts=
+ prev=
+ install_type=
+ isdir=false
+ stripme=
+ no_mode=:
+ for arg
+ do
+ arg2=
+ if test -n "$dest"; then
+ func_append files " $dest"
+ dest=$arg
+ continue
+ fi
+
+ case $arg in
+ -d) isdir=: ;;
+ -f)
+ if $install_cp; then :; else
+ prev=$arg
+ fi
+ ;;
+ -g | -m | -o)
+ prev=$arg
+ ;;
+ -s)
+ stripme=" -s"
+ continue
+ ;;
+ -*)
+ ;;
+ *)
+ # If the previous option needed an argument, then skip it.
+ if test -n "$prev"; then
+ if test X-m = "X$prev" && test -n "$install_override_mode"; then
+ arg2=$install_override_mode
+ no_mode=false
+ fi
+ prev=
+ else
+ dest=$arg
+ continue
+ fi
+ ;;
+ esac
+
+ # Aesthetically quote the argument.
+ func_quote_arg pretty "$arg"
+ func_append install_prog " $func_quote_arg_result"
+ if test -n "$arg2"; then
+ func_quote_arg pretty "$arg2"
+ fi
+ func_append install_shared_prog " $func_quote_arg_result"
+ done
+
+ test -z "$install_prog" && \
+ func_fatal_help "you must specify an install program"
+
+ test -n "$prev" && \
+ func_fatal_help "the '$prev' option requires an argument"
+
+ if test -n "$install_override_mode" && $no_mode; then
+ if $install_cp; then :; else
+ func_quote_arg pretty "$install_override_mode"
+ func_append install_shared_prog " -m $func_quote_arg_result"
+ fi
+ fi
+
+ if test -z "$files"; then
+ if test -z "$dest"; then
+ func_fatal_help "no file or destination specified"
+ else
+ func_fatal_help "you must specify a destination"
+ fi
+ fi
+
+ # Strip any trailing slash from the destination.
+ func_stripname '' '/' "$dest"
+ dest=$func_stripname_result
+
+ # Check to see that the destination is a directory.
+ test -d "$dest" && isdir=:
+ if $isdir; then
+ destdir=$dest
+ destname=
+ else
+ func_dirname_and_basename "$dest" "" "."
+ destdir=$func_dirname_result
+ destname=$func_basename_result
+
+ # Not a directory, so check to see that there is only one file specified.
+ set dummy $files; shift
+ test "$#" -gt 1 && \
+ func_fatal_help "'$dest' is not a directory"
+ fi
+ case $destdir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ for file in $files; do
+ case $file in
+ *.lo) ;;
+ *)
+ func_fatal_help "'$destdir' must be an absolute directory name"
+ ;;
+ esac
+ done
+ ;;
+ esac
+
+ # This variable tells wrapper scripts just to set variables rather
+ # than running their programs.
+ libtool_install_magic=$magic
+
+ staticlibs=
+ future_libdirs=
+ current_libdirs=
+ for file in $files; do
+
+ # Do each installation.
+ case $file in
+ *.$libext)
+ # Do the static libraries later.
+ func_append staticlibs " $file"
+ ;;
+
+ *.la)
+ func_resolve_sysroot "$file"
+ file=$func_resolve_sysroot_result
+
+ # Check to see that this really is a libtool archive.
+ func_lalib_unsafe_p "$file" \
+ || func_fatal_help "'$file' is not a valid libtool archive"
+
+ library_names=
+ old_library=
+ relink_command=
+ func_source "$file"
+
+ # Add the libdir to current_libdirs if it is the destination.
+ if test "X$destdir" = "X$libdir"; then
+ case "$current_libdirs " in
+ *" $libdir "*) ;;
+ *) func_append current_libdirs " $libdir" ;;
+ esac
+ else
+ # Note the libdir as a future libdir.
+ case "$future_libdirs " in
+ *" $libdir "*) ;;
+ *) func_append future_libdirs " $libdir" ;;
+ esac
+ fi
+
+ func_dirname "$file" "/" ""
+ dir=$func_dirname_result
+ func_append dir "$objdir"
+
+ if test -n "$relink_command"; then
+ # Determine the prefix the user has applied to our future dir.
+ inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
+
+ # Don't allow the user to place us outside of our expected
+ # location b/c this prevents finding dependent libraries that
+ # are installed to the same prefix.
+ # At present, this check doesn't affect windows .dll's that
+ # are installed into $libdir/../bin (currently, that works fine)
+ # but it's something to keep an eye on.
+ test "$inst_prefix_dir" = "$destdir" && \
+ func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir"
+
+ if test -n "$inst_prefix_dir"; then
+ # Stick the inst_prefix_dir data into the link command.
+ relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
+ else
+ relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
+ fi
+
+ func_warning "relinking '$file'"
+ func_show_eval "$relink_command" \
+ 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"'
+ fi
+
+ # See the names of the shared library.
+ set dummy $library_names; shift
+ if test -n "$1"; then
+ realname=$1
+ shift
+
+ srcname=$realname
+ test -n "$relink_command" && srcname=${realname}T
+
+ # Install the shared library and build the symlinks.
+ func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
+ 'exit $?'
+ tstripme=$stripme
+ case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ case $realname in
+ *.dll.a)
+ tstripme=
+ ;;
+ esac
+ ;;
+ os2*)
+ case $realname in
+ *_dll.a)
+ tstripme=
+ ;;
+ esac
+ ;;
+ esac
+ if test -n "$tstripme" && test -n "$striplib"; then
+ func_show_eval "$striplib $destdir/$realname" 'exit $?'
+ fi
+
+ if test "$#" -gt 0; then
+ # Delete the old symlinks, and create new ones.
+ # Try 'ln -sf' first, because the 'ln' binary might depend on
+ # the symlink we replace! Solaris /bin/ln does not understand -f,
+ # so we also need to try rm && ln -s.
+ for linkname
+ do
+ test "$linkname" != "$realname" \
+ && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
+ done
+ fi
+
+ # Do each command in the postinstall commands.
+ lib=$destdir/$realname
+ func_execute_cmds "$postinstall_cmds" 'exit $?'
+ fi
+
+ # Install the pseudo-library for information purposes.
+ func_basename "$file"
+ name=$func_basename_result
+ instname=$dir/${name}i
+ func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
+
+ # Maybe install the static library, too.
+ test -n "$old_library" && func_append staticlibs " $dir/$old_library"
+ ;;
+
+ *.lo)
+ # Install (i.e. copy) a libtool object.
+
+ # Figure out destination file name, if it wasn't already specified.
+ if test -n "$destname"; then
+ destfile=$destdir/$destname
+ else
+ func_basename "$file"
+ destfile=$func_basename_result
+ destfile=$destdir/$destfile
+ fi
+
+ # Deduce the name of the destination old-style object file.
+ case $destfile in
+ *.lo)
+ func_lo2o "$destfile"
+ staticdest=$func_lo2o_result
+ ;;
+ *.$objext)
+ staticdest=$destfile
+ destfile=
+ ;;
+ *)
+ func_fatal_help "cannot copy a libtool object to '$destfile'"
+ ;;
+ esac
+
+ # Install the libtool object if requested.
+ test -n "$destfile" && \
+ func_show_eval "$install_prog $file $destfile" 'exit $?'
+
+ # Install the old object if enabled.
+ if test yes = "$build_old_libs"; then
+ # Deduce the name of the old-style object file.
+ func_lo2o "$file"
+ staticobj=$func_lo2o_result
+ func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
+ fi
+ exit $EXIT_SUCCESS
+ ;;
+
+ *)
+ # Figure out destination file name, if it wasn't already specified.
+ if test -n "$destname"; then
+ destfile=$destdir/$destname
+ else
+ func_basename "$file"
+ destfile=$func_basename_result
+ destfile=$destdir/$destfile
+ fi
+
+ # If the file is missing, and there is a .exe on the end, strip it
+ # because it is most likely a libtool script we actually want to
+ # install
+ stripped_ext=
+ case $file in
+ *.exe)
+ if test ! -f "$file"; then
+ func_stripname '' '.exe' "$file"
+ file=$func_stripname_result
+ stripped_ext=.exe
+ fi
+ ;;
+ esac
+
+ # Do a test to see if this is really a libtool program.
+ case $host in
+ *cygwin* | *mingw*)
+ if func_ltwrapper_executable_p "$file"; then
+ func_ltwrapper_scriptname "$file"
+ wrapper=$func_ltwrapper_scriptname_result
+ else
+ func_stripname '' '.exe' "$file"
+ wrapper=$func_stripname_result
+ fi
+ ;;
+ *)
+ wrapper=$file
+ ;;
+ esac
+ if func_ltwrapper_script_p "$wrapper"; then
+ notinst_deplibs=
+ relink_command=
+
+ func_source "$wrapper"
+
+ # Check the variables that should have been set.
+ test -z "$generated_by_libtool_version" && \
+ func_fatal_error "invalid libtool wrapper script '$wrapper'"
+
+ finalize=:
+ for lib in $notinst_deplibs; do
+ # Check to see that each library is installed.
+ libdir=
+ if test -f "$lib"; then
+ func_source "$lib"
+ fi
+ libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'`
+ if test -n "$libdir" && test ! -f "$libfile"; then
+ func_warning "'$lib' has not been installed in '$libdir'"
+ finalize=false
+ fi
+ done
+
+ relink_command=
+ func_source "$wrapper"
+
+ outputname=
+ if test no = "$fast_install" && test -n "$relink_command"; then
+ $opt_dry_run || {
+ if $finalize; then
+ tmpdir=`func_mktempdir`
+ func_basename "$file$stripped_ext"
+ file=$func_basename_result
+ outputname=$tmpdir/$file
+ # Replace the output file specification.
+ relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
+
+ $opt_quiet || {
+ func_quote_arg expand,pretty "$relink_command"
+ eval "func_echo $func_quote_arg_result"
+ }
+ if eval "$relink_command"; then :
+ else
+ func_error "error: relink '$file' with the above command before installing it"
+ $opt_dry_run || ${RM}r "$tmpdir"
+ continue
+ fi
+ file=$outputname
+ else
+ func_warning "cannot relink '$file'"
+ fi
+ }
+ else
+ # Install the binary that we compiled earlier.
+ file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
+ fi
+ fi
+
+ # remove .exe since cygwin /usr/bin/install will append another
+ # one anyway
+ case $install_prog,$host in
+ */usr/bin/install*,*cygwin*)
+ case $file:$destfile in
+ *.exe:*.exe)
+ # this is ok
+ ;;
+ *.exe:*)
+ destfile=$destfile.exe
+ ;;
+ *:*.exe)
+ func_stripname '' '.exe' "$destfile"
+ destfile=$func_stripname_result
+ ;;
+ esac
+ ;;
+ esac
+ func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
+ $opt_dry_run || if test -n "$outputname"; then
+ ${RM}r "$tmpdir"
+ fi
+ ;;
+ esac
+ done
+
+ for file in $staticlibs; do
+ func_basename "$file"
+ name=$func_basename_result
+
+ # Set up the ranlib parameters.
+ oldlib=$destdir/$name
+ func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
+ tool_oldlib=$func_to_tool_file_result
+
+ func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
+
+ if test -n "$stripme" && test -n "$old_striplib"; then
+ func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
+ fi
+
+ # Do each command in the postinstall commands.
+ func_execute_cmds "$old_postinstall_cmds" 'exit $?'
+ done
+
+ test -n "$future_libdirs" && \
+ func_warning "remember to run '$progname --finish$future_libdirs'"
+
+ if test -n "$current_libdirs"; then
+ # Maybe just do a dry run.
+ $opt_dry_run && current_libdirs=" -n$current_libdirs"
+ exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs'
+ else
+ exit $EXIT_SUCCESS
+ fi
+}
+
+test install = "$opt_mode" && func_mode_install ${1+"$@"}
+
+
+# func_generate_dlsyms outputname originator pic_p
+# Extract symbols from dlprefiles and create ${outputname}S.o with
+# a dlpreopen symbol table.
+func_generate_dlsyms ()
+{
+ $debug_cmd
+
+ my_outputname=$1
+ my_originator=$2
+ my_pic_p=${3-false}
+ my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'`
+ my_dlsyms=
+
+ if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
+ if test -n "$NM" && test -n "$global_symbol_pipe"; then
+ my_dlsyms=${my_outputname}S.c
+ else
+ func_error "not configured to extract global symbols from dlpreopened files"
+ fi
+ fi
+
+ if test -n "$my_dlsyms"; then
+ case $my_dlsyms in
+ "") ;;
+ *.c)
+ # Discover the nlist of each of the dlfiles.
+ nlist=$output_objdir/$my_outputname.nm
+
+ func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
+
+ # Parse the name list into a source file.
+ func_verbose "creating $output_objdir/$my_dlsyms"
+
+ $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
+/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */
+/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */
+
+#ifdef __cplusplus
+extern \"C\" {
+#endif
+
+#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
+#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
+#endif
+
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
+ relocations are performed -- see ld's documentation on pseudo-relocs. */
+# define LT_DLSYM_CONST
+#elif defined __osf__
+/* This system does not cope well with relocations in const data. */
+# define LT_DLSYM_CONST
+#else
+# define LT_DLSYM_CONST const
+#endif
+
+#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)
+
+/* External symbol declarations for the compiler. */\
+"
+
+ if test yes = "$dlself"; then
+ func_verbose "generating symbol list for '$output'"
+
+ $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
+
+ # Add our own program objects to the symbol list.
+ progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
+ for progfile in $progfiles; do
+ func_to_tool_file "$progfile" func_convert_file_msys_to_w32
+ func_verbose "extracting global C symbols from '$func_to_tool_file_result'"
+ $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
+ done
+
+ if test -n "$exclude_expsyms"; then
+ $opt_dry_run || {
+ eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+ eval '$MV "$nlist"T "$nlist"'
+ }
+ fi
+
+ if test -n "$export_symbols_regex"; then
+ $opt_dry_run || {
+ eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+ eval '$MV "$nlist"T "$nlist"'
+ }
+ fi
+
+ # Prepare the list of exported symbols
+ if test -z "$export_symbols"; then
+ export_symbols=$output_objdir/$outputname.exp
+ $opt_dry_run || {
+ $RM $export_symbols
+ eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+ case $host in
+ *cygwin* | *mingw* | *cegcc* )
+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+ eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
+ ;;
+ esac
+ }
+ else
+ $opt_dry_run || {
+ eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+ eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
+ eval '$MV "$nlist"T "$nlist"'
+ case $host in
+ *cygwin* | *mingw* | *cegcc* )
+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+ eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
+ ;;
+ esac
+ }
+ fi
+ fi
+
+ for dlprefile in $dlprefiles; do
+ func_verbose "extracting global C symbols from '$dlprefile'"
+ func_basename "$dlprefile"
+ name=$func_basename_result
+ case $host in
+ *cygwin* | *mingw* | *cegcc* )
+ # if an import library, we need to obtain dlname
+ if func_win32_import_lib_p "$dlprefile"; then
+ func_tr_sh "$dlprefile"
+ eval "curr_lafile=\$libfile_$func_tr_sh_result"
+ dlprefile_dlbasename=
+ if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
+ # Use subshell, to avoid clobbering current variable values
+ dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
+ if test -n "$dlprefile_dlname"; then
+ func_basename "$dlprefile_dlname"
+ dlprefile_dlbasename=$func_basename_result
+ else
+ # no lafile. user explicitly requested -dlpreopen <import library>.
+ $sharedlib_from_linklib_cmd "$dlprefile"
+ dlprefile_dlbasename=$sharedlib_from_linklib_result
+ fi
+ fi
+ $opt_dry_run || {
+ if test -n "$dlprefile_dlbasename"; then
+ eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
+ else
+ func_warning "Could not compute DLL name from $name"
+ eval '$ECHO ": $name " >> "$nlist"'
+ fi
+ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
+ $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
+ }
+ else # not an import lib
+ $opt_dry_run || {
+ eval '$ECHO ": $name " >> "$nlist"'
+ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+ }
+ fi
+ ;;
+ *)
+ $opt_dry_run || {
+ eval '$ECHO ": $name " >> "$nlist"'
+ func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
+ eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+ }
+ ;;
+ esac
+ done
+
+ $opt_dry_run || {
+ # Make sure we have at least an empty file.
+ test -f "$nlist" || : > "$nlist"
+
+ if test -n "$exclude_expsyms"; then
+ $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
+ $MV "$nlist"T "$nlist"
+ fi
+
+ # Try sorting and uniquifying the output.
+ if $GREP -v "^: " < "$nlist" |
+ if sort -k 3 </dev/null >/dev/null 2>&1; then
+ sort -k 3
+ else
+ sort +2
+ fi |
+ uniq > "$nlist"S; then
+ :
+ else
+ $GREP -v "^: " < "$nlist" > "$nlist"S
+ fi
+
+ if test -f "$nlist"S; then
+ eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
+ else
+ echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
+ fi
+
+ func_show_eval '$RM "${nlist}I"'
+ if test -n "$global_symbol_to_import"; then
+ eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I'
+ fi
+
+ echo >> "$output_objdir/$my_dlsyms" "\
+
+/* The mapping between symbol names and symbols. */
+typedef struct {
+ const char *name;
+ void *address;
+} lt_dlsymlist;
+extern LT_DLSYM_CONST lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[];\
+"
+
+ if test -s "$nlist"I; then
+ echo >> "$output_objdir/$my_dlsyms" "\
+static void lt_syminit(void)
+{
+ LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols;
+ for (; symbol->name; ++symbol)
+ {"
+ $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms"
+ echo >> "$output_objdir/$my_dlsyms" "\
+ }
+}"
+ fi
+ echo >> "$output_objdir/$my_dlsyms" "\
+LT_DLSYM_CONST lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[] =
+{ {\"$my_originator\", (void *) 0},"
+
+ if test -s "$nlist"I; then
+ echo >> "$output_objdir/$my_dlsyms" "\
+ {\"@INIT@\", (void *) &lt_syminit},"
+ fi
+
+ case $need_lib_prefix in
+ no)
+ eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
+ ;;
+ *)
+ eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
+ ;;
+ esac
+ echo >> "$output_objdir/$my_dlsyms" "\
+ {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt_${my_prefix}_LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+ } # !$opt_dry_run
+
+ pic_flag_for_symtable=
+ case "$compile_command " in
+ *" -static "*) ;;
+ *)
+ case $host in
+ # compiling the symbol table file with pic_flag works around
+ # a FreeBSD bug that causes programs to crash when -lm is
+ # linked before any other PIC object. But we must not use
+ # pic_flag when linking with -static. The problem exists in
+ # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
+ *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
+ pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
+ *-*-hpux*)
+ pic_flag_for_symtable=" $pic_flag" ;;
+ *)
+ $my_pic_p && pic_flag_for_symtable=" $pic_flag"
+ ;;
+ esac
+ ;;
+ esac
+ symtab_cflags=
+ for arg in $LTCFLAGS; do
+ case $arg in
+ -pie | -fpie | -fPIE) ;;
+ *) func_append symtab_cflags " $arg" ;;
+ esac
+ done
+
+ # Now compile the dynamic symbol file.
+ func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
+
+ # Clean up the generated files.
+ func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"'
+
+ # Transform the symbol file into the correct name.
+ symfileobj=$output_objdir/${my_outputname}S.$objext
+ case $host in
+ *cygwin* | *mingw* | *cegcc* )
+ if test -f "$output_objdir/$my_outputname.def"; then
+ compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+ finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+ else
+ compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+ finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+ fi
+ ;;
+ *)
+ compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+ finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
+ ;;
+ esac
+ ;;
+ *)
+ func_fatal_error "unknown suffix for '$my_dlsyms'"
+ ;;
+ esac
+ else
+ # We keep going just in case the user didn't refer to
+ # lt_preloaded_symbols. The linker will fail if global_symbol_pipe
+ # really was required.
+
+ # Nullify the symbol file.
+ compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
+ finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
+ fi
+}
+
+# func_cygming_gnu_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is a GNU/binutils-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_gnu_implib_p ()
+{
+ $debug_cmd
+
+ func_to_tool_file "$1" func_convert_file_msys_to_w32
+ func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
+ test -n "$func_cygming_gnu_implib_tmp"
+}
+
+# func_cygming_ms_implib_p ARG
+# This predicate returns with zero status (TRUE) if
+# ARG is an MS-style import library. Returns
+# with nonzero status (FALSE) otherwise.
+func_cygming_ms_implib_p ()
+{
+ $debug_cmd
+
+ func_to_tool_file "$1" func_convert_file_msys_to_w32
+ func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
+ test -n "$func_cygming_ms_implib_tmp"
+}
+
+# func_win32_libid arg
+# return the library type of file 'arg'
+#
+# Need a lot of goo to handle *both* DLLs and import libs
+# Has to be a shell function in order to 'eat' the argument
+# that is supplied when $file_magic_command is called.
+# Despite the name, also deal with 64 bit binaries.
+func_win32_libid ()
+{
+ $debug_cmd
+
+ win32_libid_type=unknown
+ win32_fileres=`file -L $1 2>/dev/null`
+ case $win32_fileres in
+ *ar\ archive\ import\ library*) # definitely import
+ win32_libid_type="x86 archive import"
+ ;;
+ *ar\ archive*) # could be an import, or static
+ # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
+ if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
+ $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
+ case $nm_interface in
+ "MS dumpbin")
+ if func_cygming_ms_implib_p "$1" ||
+ func_cygming_gnu_implib_p "$1"
+ then
+ win32_nmres=import
+ else
+ win32_nmres=
+ fi
+ ;;
+ *)
+ func_to_tool_file "$1" func_convert_file_msys_to_w32
+ win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
+ $SED -n -e '
+ 1,100{
+ / I /{
+ s|.*|import|
+ p
+ q
+ }
+ }'`
+ ;;
+ esac
+ case $win32_nmres in
+ import*) win32_libid_type="x86 archive import";;
+ *) win32_libid_type="x86 archive static";;
+ esac
+ fi
+ ;;
+ *DLL*)
+ win32_libid_type="x86 DLL"
+ ;;
+ *executable*) # but shell scripts are "executable" too...
+ case $win32_fileres in
+ *MS\ Windows\ PE\ Intel*)
+ win32_libid_type="x86 DLL"
+ ;;
+ esac
+ ;;
+ esac
+ $ECHO "$win32_libid_type"
+}
+
+# func_cygming_dll_for_implib ARG
+#
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+# Invoked by eval'ing the libtool variable
+# $sharedlib_from_linklib_cmd
+# Result is available in the variable
+# $sharedlib_from_linklib_result
+func_cygming_dll_for_implib ()
+{
+ $debug_cmd
+
+ sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
+}
+
+# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
+#
+# The is the core of a fallback implementation of a
+# platform-specific function to extract the name of the
+# DLL associated with the specified import library LIBNAME.
+#
+# SECTION_NAME is either .idata$6 or .idata$7, depending
+# on the platform and compiler that created the implib.
+#
+# Echos the name of the DLL associated with the
+# specified import library.
+func_cygming_dll_for_implib_fallback_core ()
+{
+ $debug_cmd
+
+ match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
+ $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
+ $SED '/^Contents of section '"$match_literal"':/{
+ # Place marker at beginning of archive member dllname section
+ s/.*/====MARK====/
+ p
+ d
+ }
+ # These lines can sometimes be longer than 43 characters, but
+ # are always uninteresting
+ /:[ ]*file format pe[i]\{,1\}-/d
+ /^In archive [^:]*:/d
+ # Ensure marker is printed
+ /^====MARK====/p
+ # Remove all lines with less than 43 characters
+ /^.\{43\}/!d
+ # From remaining lines, remove first 43 characters
+ s/^.\{43\}//' |
+ $SED -n '
+ # Join marker and all lines until next marker into a single line
+ /^====MARK====/ b para
+ H
+ $ b para
+ b
+ :para
+ x
+ s/\n//g
+ # Remove the marker
+ s/^====MARK====//
+ # Remove trailing dots and whitespace
+ s/[\. \t]*$//
+ # Print
+ /./p' |
+ # we now have a list, one entry per line, of the stringified
+ # contents of the appropriate section of all members of the
+ # archive that possess that section. Heuristic: eliminate
+ # all those that have a first or second character that is
+ # a '.' (that is, objdump's representation of an unprintable
+ # character.) This should work for all archives with less than
+ # 0x302f exports -- but will fail for DLLs whose name actually
+ # begins with a literal '.' or a single character followed by
+ # a '.'.
+ #
+ # Of those that remain, print the first one.
+ $SED -e '/^\./d;/^.\./d;q'
+}
+
+# func_cygming_dll_for_implib_fallback ARG
+# Platform-specific function to extract the
+# name of the DLL associated with the specified
+# import library ARG.
+#
+# This fallback implementation is for use when $DLLTOOL
+# does not support the --identify-strict option.
+# Invoked by eval'ing the libtool variable
+# $sharedlib_from_linklib_cmd
+# Result is available in the variable
+# $sharedlib_from_linklib_result
+func_cygming_dll_for_implib_fallback ()
+{
+ $debug_cmd
+
+ if func_cygming_gnu_implib_p "$1"; then
+ # binutils import library
+ sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
+ elif func_cygming_ms_implib_p "$1"; then
+ # ms-generated import library
+ sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
+ else
+ # unknown
+ sharedlib_from_linklib_result=
+ fi
+}
+
+
+# func_extract_an_archive dir oldlib
+func_extract_an_archive ()
+{
+ $debug_cmd
+
+ f_ex_an_ar_dir=$1; shift
+ f_ex_an_ar_oldlib=$1
+ if test yes = "$lock_old_archive_extraction"; then
+ lockfile=$f_ex_an_ar_oldlib.lock
+ until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
+ func_echo "Waiting for $lockfile to be removed"
+ sleep 2
+ done
+ fi
+ func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
+ 'stat=$?; rm -f "$lockfile"; exit $stat'
+ if test yes = "$lock_old_archive_extraction"; then
+ $opt_dry_run || rm -f "$lockfile"
+ fi
+ if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
+ :
+ else
+ func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
+ fi
+}
+
+
+# func_extract_archives gentop oldlib ...
+func_extract_archives ()
+{
+ $debug_cmd
+
+ my_gentop=$1; shift
+ my_oldlibs=${1+"$@"}
+ my_oldobjs=
+ my_xlib=
+ my_xabs=
+ my_xdir=
+
+ for my_xlib in $my_oldlibs; do
+ # Extract the objects.
+ case $my_xlib in
+ [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;;
+ *) my_xabs=`pwd`"/$my_xlib" ;;
+ esac
+ func_basename "$my_xlib"
+ my_xlib=$func_basename_result
+ my_xlib_u=$my_xlib
+ while :; do
+ case " $extracted_archives " in
+ *" $my_xlib_u "*)
+ func_arith $extracted_serial + 1
+ extracted_serial=$func_arith_result
+ my_xlib_u=lt$extracted_serial-$my_xlib ;;
+ *) break ;;
+ esac
+ done
+ extracted_archives="$extracted_archives $my_xlib_u"
+ my_xdir=$my_gentop/$my_xlib_u
+
+ func_mkdir_p "$my_xdir"
+
+ case $host in
+ *-darwin*)
+ func_verbose "Extracting $my_xabs"
+ # Do not bother doing anything if just a dry run
+ $opt_dry_run || {
+ darwin_orig_dir=`pwd`
+ cd $my_xdir || exit $?
+ darwin_archive=$my_xabs
+ darwin_curdir=`pwd`
+ func_basename "$darwin_archive"
+ darwin_base_archive=$func_basename_result
+ darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
+ if test -n "$darwin_arches"; then
+ darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
+ darwin_arch=
+ func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
+ for darwin_arch in $darwin_arches; do
+ func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch"
+ $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive"
+ cd "unfat-$$/$darwin_base_archive-$darwin_arch"
+ func_extract_an_archive "`pwd`" "$darwin_base_archive"
+ cd "$darwin_curdir"
+ $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive"
+ done # $darwin_arches
+ ## Okay now we've a bunch of thin objects, gotta fatten them up :)
+ darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u`
+ darwin_file=
+ darwin_files=
+ for darwin_file in $darwin_filelist; do
+ darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
+ $LIPO -create -output "$darwin_file" $darwin_files
+ done # $darwin_filelist
+ $RM -rf unfat-$$
+ cd "$darwin_orig_dir"
+ else
+ cd $darwin_orig_dir
+ func_extract_an_archive "$my_xdir" "$my_xabs"
+ fi # $darwin_arches
+ } # !$opt_dry_run
+ ;;
+ *)
+ func_extract_an_archive "$my_xdir" "$my_xabs"
+ ;;
+ esac
+ my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
+ done
+
+ func_extract_archives_result=$my_oldobjs
+}
+
+
+# func_emit_wrapper [arg=no]
+#
+# Emit a libtool wrapper script on stdout.
+# Don't directly open a file because we may want to
+# incorporate the script contents within a cygwin/mingw
+# wrapper executable. Must ONLY be called from within
+# func_mode_link because it depends on a number of variables
+# set therein.
+#
+# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
+# variable will take. If 'yes', then the emitted script
+# will assume that the directory where it is stored is
+# the $objdir directory. This is a cygwin/mingw-specific
+# behavior.
+func_emit_wrapper ()
+{
+ func_emit_wrapper_arg1=${1-no}
+
+ $ECHO "\
+#! $SHELL
+
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
+#
+# The $output program cannot be directly executed until all the libtool
+# libraries that it depends on are installed.
+#
+# This wrapper script should never be moved out of the build directory.
+# If it is, it will not operate correctly.
+
+# Sed substitution that helps us do robust quoting. It backslashifies
+# metacharacters that are still active within double-quoted strings.
+sed_quote_subst='$sed_quote_subst'
+
+# Be Bourne compatible
+if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '\${1+\"\$@\"}'='\"\$@\"'
+ setopt NO_GLOB_SUBST
+else
+ case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+relink_command=\"$relink_command\"
+
+# This environment variable determines our operation mode.
+if test \"\$libtool_install_magic\" = \"$magic\"; then
+ # install mode needs the following variables:
+ generated_by_libtool_version='$macro_version'
+ notinst_deplibs='$notinst_deplibs'
+else
+ # When we are sourced in execute mode, \$file and \$ECHO are already set.
+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
+ file=\"\$0\""
+
+ func_quote_arg pretty "$ECHO"
+ qECHO=$func_quote_arg_result
+ $ECHO "\
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+\$1
+_LTECHO_EOF'
+}
+ ECHO=$qECHO
+ fi
+
+# Very basic option parsing. These options are (a) specific to
+# the libtool wrapper, (b) are identical between the wrapper
+# /script/ and the wrapper /executable/ that is used only on
+# windows platforms, and (c) all begin with the string "--lt-"
+# (application programs are unlikely to have options that match
+# this pattern).
+#
+# There are only two supported options: --lt-debug and
+# --lt-dump-script. There is, deliberately, no --lt-help.
+#
+# The first argument to this parsing function should be the
+# script's $0 value, followed by "$@".
+lt_option_debug=
+func_parse_lt_options ()
+{
+ lt_script_arg0=\$0
+ shift
+ for lt_opt
+ do
+ case \"\$lt_opt\" in
+ --lt-debug) lt_option_debug=1 ;;
+ --lt-dump-script)
+ lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
+ test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
+ lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
+ cat \"\$lt_dump_D/\$lt_dump_F\"
+ exit 0
+ ;;
+ --lt-*)
+ \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
+ exit 1
+ ;;
+ esac
+ done
+
+ # Print the debug banner immediately:
+ if test -n \"\$lt_option_debug\"; then
+ echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2
+ fi
+}
+
+# Used when --lt-debug. Prints its arguments to stdout
+# (redirection is the responsibility of the caller)
+func_lt_dump_args ()
+{
+ lt_dump_args_N=1;
+ for lt_arg
+ do
+ \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\"
+ lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
+ done
+}
+
+# Core function for launching the target application
+func_exec_program_core ()
+{
+"
+ case $host in
+ # Backslashes separate directories on plain windows
+ *-*-mingw | *-*-os2* | *-cegcc*)
+ $ECHO "\
+ if test -n \"\$lt_option_debug\"; then
+ \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2
+ func_lt_dump_args \${1+\"\$@\"} 1>&2
+ fi
+ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+"
+ ;;
+
+ *)
+ $ECHO "\
+ if test -n \"\$lt_option_debug\"; then
+ \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2
+ func_lt_dump_args \${1+\"\$@\"} 1>&2
+ fi
+ exec \"\$progdir/\$program\" \${1+\"\$@\"}
+"
+ ;;
+ esac
+ $ECHO "\
+ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
+ exit 1
+}
+
+# A function to encapsulate launching the target application
+# Strips options in the --lt-* namespace from \$@ and
+# launches target application with the remaining arguments.
+func_exec_program ()
+{
+ case \" \$* \" in
+ *\\ --lt-*)
+ for lt_wr_arg
+ do
+ case \$lt_wr_arg in
+ --lt-*) ;;
+ *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
+ esac
+ shift
+ done ;;
+ esac
+ func_exec_program_core \${1+\"\$@\"}
+}
+
+ # Parse options
+ func_parse_lt_options \"\$0\" \${1+\"\$@\"}
+
+ # Find the directory that this script lives in.
+ thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
+ test \"x\$thisdir\" = \"x\$file\" && thisdir=.
+
+ # Follow symbolic links until we get to the real thisdir.
+ file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
+ while test -n \"\$file\"; do
+ destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
+
+ # If there was a directory component, then change thisdir.
+ if test \"x\$destdir\" != \"x\$file\"; then
+ case \"\$destdir\" in
+ [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
+ *) thisdir=\"\$thisdir/\$destdir\" ;;
+ esac
+ fi
+
+ file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
+ file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
+ done
+
+ # Usually 'no', except on cygwin/mingw when embedded into
+ # the cwrapper.
+ WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
+ if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
+ # special case for '.'
+ if test \"\$thisdir\" = \".\"; then
+ thisdir=\`pwd\`
+ fi
+ # remove .libs from thisdir
+ case \"\$thisdir\" in
+ *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
+ $objdir ) thisdir=. ;;
+ esac
+ fi
+
+ # Try to get the absolute directory name.
+ absdir=\`cd \"\$thisdir\" && pwd\`
+ test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
+
+ if test yes = "$fast_install"; then
+ $ECHO "\
+ program=lt-'$outputname'$exeext
+ progdir=\"\$thisdir/$objdir\"
+
+ if test ! -f \"\$progdir/\$program\" ||
+ { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\
+ test \"X\$file\" != \"X\$progdir/\$program\"; }; then
+
+ file=\"\$\$-\$program\"
+
+ if test ! -d \"\$progdir\"; then
+ $MKDIR \"\$progdir\"
+ else
+ $RM \"\$progdir/\$file\"
+ fi"
+
+ $ECHO "\
+
+ # relink executable if necessary
+ if test -n \"\$relink_command\"; then
+ if relink_command_output=\`eval \$relink_command 2>&1\`; then :
+ else
+ \$ECHO \"\$relink_command_output\" >&2
+ $RM \"\$progdir/\$file\"
+ exit 1
+ fi
+ fi
+
+ $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+ { $RM \"\$progdir/\$program\";
+ $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+ $RM \"\$progdir/\$file\"
+ fi"
+ else
+ $ECHO "\
+ program='$outputname'
+ progdir=\"\$thisdir/$objdir\"
+"
+ fi
+
+ $ECHO "\
+
+ if test -f \"\$progdir/\$program\"; then"
+
+ # fixup the dll searchpath if we need to.
+ #
+ # Fix the DLL searchpath if we need to. Do this before prepending
+ # to shlibpath, because on Windows, both are PATH and uninstalled
+ # libraries must come first.
+ if test -n "$dllsearchpath"; then
+ $ECHO "\
+ # Add the dll search path components to the executable PATH
+ PATH=$dllsearchpath:\$PATH
+"
+ fi
+
+ # Export our shlibpath_var if we have one.
+ if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+ $ECHO "\
+ # Add our own library path to $shlibpath_var
+ $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
+
+ # Some systems cannot cope with colon-terminated $shlibpath_var
+ # The second colon is a workaround for a bug in BeOS R4 sed
+ $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
+
+ export $shlibpath_var
+"
+ fi
+
+ $ECHO "\
+ if test \"\$libtool_execute_magic\" != \"$magic\"; then
+ # Run the actual program with our arguments.
+ func_exec_program \${1+\"\$@\"}
+ fi
+ else
+ # The program doesn't exist.
+ \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2
+ \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
+ \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
+ exit 1
+ fi
+fi\
+"
+}
+
+
+# func_emit_cwrapperexe_src
+# emit the source code for a wrapper executable on stdout
+# Must ONLY be called from within func_mode_link because
+# it depends on a number of variable set therein.
+func_emit_cwrapperexe_src ()
+{
+ cat <<EOF
+
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
+ Generated by $PROGRAM (GNU $PACKAGE) $VERSION
+
+ The $output program cannot be directly executed until all the libtool
+ libraries that it depends on are installed.
+
+ This wrapper executable should never be moved out of the build directory.
+ If it is, it will not operate correctly.
+*/
+EOF
+ cat <<"EOF"
+#ifdef _MSC_VER
+# define _CRT_SECURE_NO_DEPRECATE 1
+#endif
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef _MSC_VER
+# include <direct.h>
+# include <process.h>
+# include <io.h>
+#else
+# include <unistd.h>
+# include <stdint.h>
+# ifdef __CYGWIN__
+# include <io.h>
+# endif
+#endif
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <string.h>
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0)
+
+/* declarations of non-ANSI functions */
+#if defined __MINGW32__
+# ifdef __STRICT_ANSI__
+int _putenv (const char *);
+# endif
+#elif defined __CYGWIN__
+# ifdef __STRICT_ANSI__
+char *realpath (const char *, char *);
+int putenv (char *);
+int setenv (const char *, const char *, int);
+# endif
+/* #elif defined other_platform || defined ... */
+#endif
+
+/* portability defines, excluding path handling macros */
+#if defined _MSC_VER
+# define setmode _setmode
+# define stat _stat
+# define chmod _chmod
+# define getcwd _getcwd
+# define putenv _putenv
+# define S_IXUSR _S_IEXEC
+#elif defined __MINGW32__
+# define setmode _setmode
+# define stat _stat
+# define chmod _chmod
+# define getcwd _getcwd
+# define putenv _putenv
+#elif defined __CYGWIN__
+# define HAVE_SETENV
+# define FOPEN_WB "wb"
+/* #elif defined other platforms ... */
+#endif
+
+#if defined PATH_MAX
+# define LT_PATHMAX PATH_MAX
+#elif defined MAXPATHLEN
+# define LT_PATHMAX MAXPATHLEN
+#else
+# define LT_PATHMAX 1024
+#endif
+
+#ifndef S_IXOTH
+# define S_IXOTH 0
+#endif
+#ifndef S_IXGRP
+# define S_IXGRP 0
+#endif
+
+/* path handling portability macros */
+#ifndef DIR_SEPARATOR
+# define DIR_SEPARATOR '/'
+# define PATH_SEPARATOR ':'
+#endif
+
+#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \
+ defined __OS2__
+# define HAVE_DOS_BASED_FILE_SYSTEM
+# define FOPEN_WB "wb"
+# ifndef DIR_SEPARATOR_2
+# define DIR_SEPARATOR_2 '\\'
+# endif
+# ifndef PATH_SEPARATOR_2
+# define PATH_SEPARATOR_2 ';'
+# endif
+#endif
+
+#ifndef DIR_SEPARATOR_2
+# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
+#else /* DIR_SEPARATOR_2 */
+# define IS_DIR_SEPARATOR(ch) \
+ (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
+#endif /* DIR_SEPARATOR_2 */
+
+#ifndef PATH_SEPARATOR_2
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
+#else /* PATH_SEPARATOR_2 */
+# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
+#endif /* PATH_SEPARATOR_2 */
+
+#ifndef FOPEN_WB
+# define FOPEN_WB "w"
+#endif
+#ifndef _O_BINARY
+# define _O_BINARY 0
+#endif
+
+#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
+#define XFREE(stale) do { \
+ if (stale) { free (stale); stale = 0; } \
+} while (0)
+
+#if defined LT_DEBUGWRAPPER
+static int lt_debug = 1;
+#else
+static int lt_debug = 0;
+#endif
+
+const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
+
+void *xmalloc (size_t num);
+char *xstrdup (const char *string);
+const char *base_name (const char *name);
+char *find_executable (const char *wrapper);
+char *chase_symlinks (const char *pathspec);
+int make_executable (const char *path);
+int check_executable (const char *path);
+char *strendzap (char *str, const char *pat);
+void lt_debugprintf (const char *file, int line, const char *fmt, ...);
+void lt_fatal (const char *file, int line, const char *message, ...);
+static const char *nonnull (const char *s);
+static const char *nonempty (const char *s);
+void lt_setenv (const char *name, const char *value);
+char *lt_extend_str (const char *orig_value, const char *add, int to_end);
+void lt_update_exe_path (const char *name, const char *value);
+void lt_update_lib_path (const char *name, const char *value);
+char **prepare_spawn (char **argv);
+void lt_dump_script (FILE *f);
+EOF
+
+ cat <<EOF
+#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
+# define externally_visible volatile
+#else
+# define externally_visible __attribute__((externally_visible)) volatile
+#endif
+externally_visible const char * MAGIC_EXE = "$magic_exe";
+const char * LIB_PATH_VARNAME = "$shlibpath_var";
+EOF
+
+ if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+ func_to_host_path "$temp_rpath"
+ cat <<EOF
+const char * LIB_PATH_VALUE = "$func_to_host_path_result";
+EOF
+ else
+ cat <<"EOF"
+const char * LIB_PATH_VALUE = "";
+EOF
+ fi
+
+ if test -n "$dllsearchpath"; then
+ func_to_host_path "$dllsearchpath:"
+ cat <<EOF
+const char * EXE_PATH_VARNAME = "PATH";
+const char * EXE_PATH_VALUE = "$func_to_host_path_result";
+EOF
+ else
+ cat <<"EOF"
+const char * EXE_PATH_VARNAME = "";
+const char * EXE_PATH_VALUE = "";
+EOF
+ fi
+
+ if test yes = "$fast_install"; then
+ cat <<EOF
+const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
+EOF
+ else
+ cat <<EOF
+const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
+EOF
+ fi
+
+
+ cat <<"EOF"
+
+#define LTWRAPPER_OPTION_PREFIX "--lt-"
+
+static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
+static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
+static const char *debug_opt = LTWRAPPER_OPTION_PREFIX "debug";
+
+int
+main (int argc, char *argv[])
+{
+ char **newargz;
+ int newargc;
+ char *tmp_pathspec;
+ char *actual_cwrapper_path;
+ char *actual_cwrapper_name;
+ char *target_name;
+ char *lt_argv_zero;
+ int rval = 127;
+
+ int i;
+
+ program_name = (char *) xstrdup (base_name (argv[0]));
+ newargz = XMALLOC (char *, (size_t) argc + 1);
+
+ /* very simple arg parsing; don't want to rely on getopt
+ * also, copy all non cwrapper options to newargz, except
+ * argz[0], which is handled differently
+ */
+ newargc=0;
+ for (i = 1; i < argc; i++)
+ {
+ if (STREQ (argv[i], dumpscript_opt))
+ {
+EOF
+ case $host in
+ *mingw* | *cygwin* )
+ # make stdout use "unix" line endings
+ echo " setmode(1,_O_BINARY);"
+ ;;
+ esac
+
+ cat <<"EOF"
+ lt_dump_script (stdout);
+ return 0;
+ }
+ if (STREQ (argv[i], debug_opt))
+ {
+ lt_debug = 1;
+ continue;
+ }
+ if (STREQ (argv[i], ltwrapper_option_prefix))
+ {
+ /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
+ namespace, but it is not one of the ones we know about and
+ have already dealt with, above (inluding dump-script), then
+ report an error. Otherwise, targets might begin to believe
+ they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
+ namespace. The first time any user complains about this, we'll
+ need to make LTWRAPPER_OPTION_PREFIX a configure-time option
+ or a configure.ac-settable value.
+ */
+ lt_fatal (__FILE__, __LINE__,
+ "unrecognized %s option: '%s'",
+ ltwrapper_option_prefix, argv[i]);
+ }
+ /* otherwise ... */
+ newargz[++newargc] = xstrdup (argv[i]);
+ }
+ newargz[++newargc] = NULL;
+
+EOF
+ cat <<EOF
+ /* The GNU banner must be the first non-error debug message */
+ lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE) $VERSION\n");
+EOF
+ cat <<"EOF"
+ lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
+ lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
+
+ tmp_pathspec = find_executable (argv[0]);
+ if (tmp_pathspec == NULL)
+ lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
+ lt_debugprintf (__FILE__, __LINE__,
+ "(main) found exe (before symlink chase) at: %s\n",
+ tmp_pathspec);
+
+ actual_cwrapper_path = chase_symlinks (tmp_pathspec);
+ lt_debugprintf (__FILE__, __LINE__,
+ "(main) found exe (after symlink chase) at: %s\n",
+ actual_cwrapper_path);
+ XFREE (tmp_pathspec);
+
+ actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
+ strendzap (actual_cwrapper_path, actual_cwrapper_name);
+
+ /* wrapper name transforms */
+ strendzap (actual_cwrapper_name, ".exe");
+ tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
+ XFREE (actual_cwrapper_name);
+ actual_cwrapper_name = tmp_pathspec;
+ tmp_pathspec = 0;
+
+ /* target_name transforms -- use actual target program name; might have lt- prefix */
+ target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
+ strendzap (target_name, ".exe");
+ tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
+ XFREE (target_name);
+ target_name = tmp_pathspec;
+ tmp_pathspec = 0;
+
+ lt_debugprintf (__FILE__, __LINE__,
+ "(main) libtool target name: %s\n",
+ target_name);
+EOF
+
+ cat <<EOF
+ newargz[0] =
+ XMALLOC (char, (strlen (actual_cwrapper_path) +
+ strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
+ strcpy (newargz[0], actual_cwrapper_path);
+ strcat (newargz[0], "$objdir");
+ strcat (newargz[0], "/");
+EOF
+
+ cat <<"EOF"
+ /* stop here, and copy so we don't have to do this twice */
+ tmp_pathspec = xstrdup (newargz[0]);
+
+ /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
+ strcat (newargz[0], actual_cwrapper_name);
+
+ /* DO want the lt- prefix here if it exists, so use target_name */
+ lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
+ XFREE (tmp_pathspec);
+ tmp_pathspec = NULL;
+EOF
+
+ case $host_os in
+ mingw*)
+ cat <<"EOF"
+ {
+ char* p;
+ while ((p = strchr (newargz[0], '\\')) != NULL)
+ {
+ *p = '/';
+ }
+ while ((p = strchr (lt_argv_zero, '\\')) != NULL)
+ {
+ *p = '/';
+ }
+ }
+EOF
+ ;;
+ esac
+
+ cat <<"EOF"
+ XFREE (target_name);
+ XFREE (actual_cwrapper_path);
+ XFREE (actual_cwrapper_name);
+
+ lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
+ lt_setenv ("DUALCASE", "1"); /* for MSK sh */
+ /* Update the DLL searchpath. EXE_PATH_VALUE ($dllsearchpath) must
+ be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
+ because on Windows, both *_VARNAMEs are PATH but uninstalled
+ libraries must come first. */
+ lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
+ lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
+
+ lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
+ nonnull (lt_argv_zero));
+ for (i = 0; i < newargc; i++)
+ {
+ lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
+ i, nonnull (newargz[i]));
+ }
+
+EOF
+
+ case $host_os in
+ mingw*)
+ cat <<"EOF"
+ /* execv doesn't actually work on mingw as expected on unix */
+ newargz = prepare_spawn (newargz);
+ rval = (int) _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
+ if (rval == -1)
+ {
+ /* failed to start process */
+ lt_debugprintf (__FILE__, __LINE__,
+ "(main) failed to launch target \"%s\": %s\n",
+ lt_argv_zero, nonnull (strerror (errno)));
+ return 127;
+ }
+ return rval;
+EOF
+ ;;
+ *)
+ cat <<"EOF"
+ execv (lt_argv_zero, newargz);
+ return rval; /* =127, but avoids unused variable warning */
+EOF
+ ;;
+ esac
+
+ cat <<"EOF"
+}
+
+void *
+xmalloc (size_t num)
+{
+ void *p = (void *) malloc (num);
+ if (!p)
+ lt_fatal (__FILE__, __LINE__, "memory exhausted");
+
+ return p;
+}
+
+char *
+xstrdup (const char *string)
+{
+ return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
+ string) : NULL;
+}
+
+const char *
+base_name (const char *name)
+{
+ const char *base;
+
+#if defined HAVE_DOS_BASED_FILE_SYSTEM
+ /* Skip over the disk name in MSDOS pathnames. */
+ if (isalpha ((unsigned char) name[0]) && name[1] == ':')
+ name += 2;
+#endif
+
+ for (base = name; *name; name++)
+ if (IS_DIR_SEPARATOR (*name))
+ base = name + 1;
+ return base;
+}
+
+int
+check_executable (const char *path)
+{
+ struct stat st;
+
+ lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
+ nonempty (path));
+ if ((!path) || (!*path))
+ return 0;
+
+ if ((stat (path, &st) >= 0)
+ && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
+ return 1;
+ else
+ return 0;
+}
+
+int
+make_executable (const char *path)
+{
+ int rval = 0;
+ struct stat st;
+
+ lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
+ nonempty (path));
+ if ((!path) || (!*path))
+ return 0;
+
+ if (stat (path, &st) >= 0)
+ {
+ rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
+ }
+ return rval;
+}
+
+/* Searches for the full path of the wrapper. Returns
+ newly allocated full path name if found, NULL otherwise
+ Does not chase symlinks, even on platforms that support them.
+*/
+char *
+find_executable (const char *wrapper)
+{
+ int has_slash = 0;
+ const char *p;
+ const char *p_next;
+ /* static buffer for getcwd */
+ char tmp[LT_PATHMAX + 1];
+ size_t tmp_len;
+ char *concat_name;
+
+ lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
+ nonempty (wrapper));
+
+ if ((wrapper == NULL) || (*wrapper == '\0'))
+ return NULL;
+
+ /* Absolute path? */
+#if defined HAVE_DOS_BASED_FILE_SYSTEM
+ if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
+ {
+ concat_name = xstrdup (wrapper);
+ if (check_executable (concat_name))
+ return concat_name;
+ XFREE (concat_name);
+ }
+ else
+ {
+#endif
+ if (IS_DIR_SEPARATOR (wrapper[0]))
+ {
+ concat_name = xstrdup (wrapper);
+ if (check_executable (concat_name))
+ return concat_name;
+ XFREE (concat_name);
+ }
+#if defined HAVE_DOS_BASED_FILE_SYSTEM
+ }
+#endif
+
+ for (p = wrapper; *p; p++)
+ if (*p == '/')
+ {
+ has_slash = 1;
+ break;
+ }
+ if (!has_slash)
+ {
+ /* no slashes; search PATH */
+ const char *path = getenv ("PATH");
+ if (path != NULL)
+ {
+ for (p = path; *p; p = p_next)
+ {
+ const char *q;
+ size_t p_len;
+ for (q = p; *q; q++)
+ if (IS_PATH_SEPARATOR (*q))
+ break;
+ p_len = (size_t) (q - p);
+ p_next = (*q == '\0' ? q : q + 1);
+ if (p_len == 0)
+ {
+ /* empty path: current directory */
+ if (getcwd (tmp, LT_PATHMAX) == NULL)
+ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+ nonnull (strerror (errno)));
+ tmp_len = strlen (tmp);
+ concat_name =
+ XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+ memcpy (concat_name, tmp, tmp_len);
+ concat_name[tmp_len] = '/';
+ strcpy (concat_name + tmp_len + 1, wrapper);
+ }
+ else
+ {
+ concat_name =
+ XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
+ memcpy (concat_name, p, p_len);
+ concat_name[p_len] = '/';
+ strcpy (concat_name + p_len + 1, wrapper);
+ }
+ if (check_executable (concat_name))
+ return concat_name;
+ XFREE (concat_name);
+ }
+ }
+ /* not found in PATH; assume curdir */
+ }
+ /* Relative path | not found in path: prepend cwd */
+ if (getcwd (tmp, LT_PATHMAX) == NULL)
+ lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
+ nonnull (strerror (errno)));
+ tmp_len = strlen (tmp);
+ concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
+ memcpy (concat_name, tmp, tmp_len);
+ concat_name[tmp_len] = '/';
+ strcpy (concat_name + tmp_len + 1, wrapper);
+
+ if (check_executable (concat_name))
+ return concat_name;
+ XFREE (concat_name);
+ return NULL;
+}
+
+char *
+chase_symlinks (const char *pathspec)
+{
+#ifndef S_ISLNK
+ return xstrdup (pathspec);
+#else
+ char buf[LT_PATHMAX];
+ struct stat s;
+ char *tmp_pathspec = xstrdup (pathspec);
+ char *p;
+ int has_symlinks = 0;
+ while (strlen (tmp_pathspec) && !has_symlinks)
+ {
+ lt_debugprintf (__FILE__, __LINE__,
+ "checking path component for symlinks: %s\n",
+ tmp_pathspec);
+ if (lstat (tmp_pathspec, &s) == 0)
+ {
+ if (S_ISLNK (s.st_mode) != 0)
+ {
+ has_symlinks = 1;
+ break;
+ }
+
+ /* search backwards for last DIR_SEPARATOR */
+ p = tmp_pathspec + strlen (tmp_pathspec) - 1;
+ while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+ p--;
+ if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+ {
+ /* no more DIR_SEPARATORS left */
+ break;
+ }
+ *p = '\0';
+ }
+ else
+ {
+ lt_fatal (__FILE__, __LINE__,
+ "error accessing file \"%s\": %s",
+ tmp_pathspec, nonnull (strerror (errno)));
+ }
+ }
+ XFREE (tmp_pathspec);
+
+ if (!has_symlinks)
+ {
+ return xstrdup (pathspec);
+ }
+
+ tmp_pathspec = realpath (pathspec, buf);
+ if (tmp_pathspec == 0)
+ {
+ lt_fatal (__FILE__, __LINE__,
+ "could not follow symlinks for %s", pathspec);
+ }
+ return xstrdup (tmp_pathspec);
+#endif
+}
+
+char *
+strendzap (char *str, const char *pat)
+{
+ size_t len, patlen;
+
+ assert (str != NULL);
+ assert (pat != NULL);
+
+ len = strlen (str);
+ patlen = strlen (pat);
+
+ if (patlen <= len)
+ {
+ str += len - patlen;
+ if (STREQ (str, pat))
+ *str = '\0';
+ }
+ return str;
+}
+
+void
+lt_debugprintf (const char *file, int line, const char *fmt, ...)
+{
+ va_list args;
+ if (lt_debug)
+ {
+ (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
+ va_start (args, fmt);
+ (void) vfprintf (stderr, fmt, args);
+ va_end (args);
+ }
+}
+
+static void
+lt_error_core (int exit_status, const char *file,
+ int line, const char *mode,
+ const char *message, va_list ap)
+{
+ fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
+ vfprintf (stderr, message, ap);
+ fprintf (stderr, ".\n");
+
+ if (exit_status >= 0)
+ exit (exit_status);
+}
+
+void
+lt_fatal (const char *file, int line, const char *message, ...)
+{
+ va_list ap;
+ va_start (ap, message);
+ lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
+ va_end (ap);
+}
+
+static const char *
+nonnull (const char *s)
+{
+ return s ? s : "(null)";
+}
+
+static const char *
+nonempty (const char *s)
+{
+ return (s && !*s) ? "(empty)" : nonnull (s);
+}
+
+void
+lt_setenv (const char *name, const char *value)
+{
+ lt_debugprintf (__FILE__, __LINE__,
+ "(lt_setenv) setting '%s' to '%s'\n",
+ nonnull (name), nonnull (value));
+ {
+#ifdef HAVE_SETENV
+ /* always make a copy, for consistency with !HAVE_SETENV */
+ char *str = xstrdup (value);
+ setenv (name, str, 1);
+#else
+ size_t len = strlen (name) + 1 + strlen (value) + 1;
+ char *str = XMALLOC (char, len);
+ sprintf (str, "%s=%s", name, value);
+ if (putenv (str) != EXIT_SUCCESS)
+ {
+ XFREE (str);
+ }
+#endif
+ }
+}
+
+char *
+lt_extend_str (const char *orig_value, const char *add, int to_end)
+{
+ char *new_value;
+ if (orig_value && *orig_value)
+ {
+ size_t orig_value_len = strlen (orig_value);
+ size_t add_len = strlen (add);
+ new_value = XMALLOC (char, add_len + orig_value_len + 1);
+ if (to_end)
+ {
+ strcpy (new_value, orig_value);
+ strcpy (new_value + orig_value_len, add);
+ }
+ else
+ {
+ strcpy (new_value, add);
+ strcpy (new_value + add_len, orig_value);
+ }
+ }
+ else
+ {
+ new_value = xstrdup (add);
+ }
+ return new_value;
+}
+
+void
+lt_update_exe_path (const char *name, const char *value)
+{
+ lt_debugprintf (__FILE__, __LINE__,
+ "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
+ nonnull (name), nonnull (value));
+
+ if (name && *name && value && *value)
+ {
+ char *new_value = lt_extend_str (getenv (name), value, 0);
+ /* some systems can't cope with a ':'-terminated path #' */
+ size_t len = strlen (new_value);
+ while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
+ {
+ new_value[--len] = '\0';
+ }
+ lt_setenv (name, new_value);
+ XFREE (new_value);
+ }
+}
+
+void
+lt_update_lib_path (const char *name, const char *value)
+{
+ lt_debugprintf (__FILE__, __LINE__,
+ "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
+ nonnull (name), nonnull (value));
+
+ if (name && *name && value && *value)
+ {
+ char *new_value = lt_extend_str (getenv (name), value, 0);
+ lt_setenv (name, new_value);
+ XFREE (new_value);
+ }
+}
+
+EOF
+ case $host_os in
+ mingw*)
+ cat <<"EOF"
+
+/* Prepares an argument vector before calling spawn().
+ Note that spawn() does not by itself call the command interpreter
+ (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
+ ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+ GetVersionEx(&v);
+ v.dwPlatformId == VER_PLATFORM_WIN32_NT;
+ }) ? "cmd.exe" : "command.com").
+ Instead it simply concatenates the arguments, separated by ' ', and calls
+ CreateProcess(). We must quote the arguments since Win32 CreateProcess()
+ interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
+ special way:
+ - Space and tab are interpreted as delimiters. They are not treated as
+ delimiters if they are surrounded by double quotes: "...".
+ - Unescaped double quotes are removed from the input. Their only effect is
+ that within double quotes, space and tab are treated like normal
+ characters.
+ - Backslashes not followed by double quotes are not special.
+ - But 2*n+1 backslashes followed by a double quote become
+ n backslashes followed by a double quote (n >= 0):
+ \" -> "
+ \\\" -> \"
+ \\\\\" -> \\"
+ */
+#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
+#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
+char **
+prepare_spawn (char **argv)
+{
+ size_t argc;
+ char **new_argv;
+ size_t i;
+
+ /* Count number of arguments. */
+ for (argc = 0; argv[argc] != NULL; argc++)
+ ;
+
+ /* Allocate new argument vector. */
+ new_argv = XMALLOC (char *, argc + 1);
+
+ /* Put quoted arguments into the new argument vector. */
+ for (i = 0; i < argc; i++)
+ {
+ const char *string = argv[i];
+
+ if (string[0] == '\0')
+ new_argv[i] = xstrdup ("\"\"");
+ else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
+ {
+ int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
+ size_t length;
+ unsigned int backslashes;
+ const char *s;
+ char *quoted_string;
+ char *p;
+
+ length = 0;
+ backslashes = 0;
+ if (quote_around)
+ length++;
+ for (s = string; *s != '\0'; s++)
+ {
+ char c = *s;
+ if (c == '"')
+ length += backslashes + 1;
+ length++;
+ if (c == '\\')
+ backslashes++;
+ else
+ backslashes = 0;
+ }
+ if (quote_around)
+ length += backslashes + 1;
+
+ quoted_string = XMALLOC (char, length + 1);
+
+ p = quoted_string;
+ backslashes = 0;
+ if (quote_around)
+ *p++ = '"';
+ for (s = string; *s != '\0'; s++)
+ {
+ char c = *s;
+ if (c == '"')
+ {
+ unsigned int j;
+ for (j = backslashes + 1; j > 0; j--)
+ *p++ = '\\';
+ }
+ *p++ = c;
+ if (c == '\\')
+ backslashes++;
+ else
+ backslashes = 0;
+ }
+ if (quote_around)
+ {
+ unsigned int j;
+ for (j = backslashes; j > 0; j--)
+ *p++ = '\\';
+ *p++ = '"';
+ }
+ *p = '\0';
+
+ new_argv[i] = quoted_string;
+ }
+ else
+ new_argv[i] = (char *) string;
+ }
+ new_argv[argc] = NULL;
+
+ return new_argv;
+}
+EOF
+ ;;
+ esac
+
+ cat <<"EOF"
+void lt_dump_script (FILE* f)
+{
+EOF
+ func_emit_wrapper yes |
+ $SED -n -e '
+s/^\(.\{79\}\)\(..*\)/\1\
+\2/
+h
+s/\([\\"]\)/\\\1/g
+s/$/\\n/
+s/\([^\n]*\).*/ fputs ("\1", f);/p
+g
+D'
+ cat <<"EOF"
+}
+EOF
+}
+# end: func_emit_cwrapperexe_src
+
+# func_win32_import_lib_p ARG
+# True if ARG is an import lib, as indicated by $file_magic_cmd
+func_win32_import_lib_p ()
+{
+ $debug_cmd
+
+ case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
+ *import*) : ;;
+ *) false ;;
+ esac
+}
+
+# func_suncc_cstd_abi
+# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!!
+# Several compiler flags select an ABI that is incompatible with the
+# Cstd library. Avoid specifying it if any are in CXXFLAGS.
+func_suncc_cstd_abi ()
+{
+ $debug_cmd
+
+ case " $compile_command " in
+ *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*)
+ suncc_use_cstd_abi=no
+ ;;
+ *)
+ suncc_use_cstd_abi=yes
+ ;;
+ esac
+}
+
+# func_mode_link arg...
+func_mode_link ()
+{
+ $debug_cmd
+
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+ # It is impossible to link a dll without this setting, and
+ # we shouldn't force the makefile maintainer to figure out
+ # what system we are compiling for in order to pass an extra
+ # flag for every libtool invocation.
+ # allow_undefined=no
+
+ # FIXME: Unfortunately, there are problems with the above when trying
+ # to make a dll that has undefined symbols, in which case not
+ # even a static library is built. For now, we need to specify
+ # -no-undefined on the libtool link line when we can be certain
+ # that all symbols are satisfied, otherwise we get a static library.
+ allow_undefined=yes
+ ;;
+ *)
+ allow_undefined=yes
+ ;;
+ esac
+ libtool_args=$nonopt
+ base_compile="$nonopt $@"
+ compile_command=$nonopt
+ finalize_command=$nonopt
+
+ compile_rpath=
+ finalize_rpath=
+ compile_shlibpath=
+ finalize_shlibpath=
+ convenience=
+ old_convenience=
+ deplibs=
+ old_deplibs=
+ compiler_flags=
+ linker_flags=
+ dllsearchpath=
+ lib_search_path=`pwd`
+ inst_prefix_dir=
+ new_inherited_linker_flags=
+
+ avoid_version=no
+ bindir=
+ dlfiles=
+ dlprefiles=
+ dlself=no
+ export_dynamic=no
+ export_symbols=
+ export_symbols_regex=
+ generated=
+ libobjs=
+ ltlibs=
+ module=no
+ no_install=no
+ objs=
+ os2dllname=
+ non_pic_objects=
+ precious_files_regex=
+ prefer_static_libs=no
+ preload=false
+ prev=
+ prevarg=
+ release=
+ rpath=
+ xrpath=
+ perm_rpath=
+ temp_rpath=
+ thread_safe=no
+ vinfo=
+ vinfo_number=no
+ weak_libs=
+ single_module=$wl-single_module
+ func_infer_tag $base_compile
+
+ # We need to know -static, to get the right output filenames.
+ for arg
+ do
+ case $arg in
+ -shared)
+ test yes != "$build_libtool_libs" \
+ && func_fatal_configuration "cannot build a shared library"
+ build_old_libs=no
+ break
+ ;;
+ -all-static | -static | -static-libtool-libs)
+ case $arg in
+ -all-static)
+ if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then
+ func_warning "complete static linking is impossible in this configuration"
+ fi
+ if test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ prefer_static_libs=yes
+ ;;
+ -static)
+ if test -z "$pic_flag" && test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ prefer_static_libs=built
+ ;;
+ -static-libtool-libs)
+ if test -z "$pic_flag" && test -n "$link_static_flag"; then
+ dlopen_self=$dlopen_self_static
+ fi
+ prefer_static_libs=yes
+ ;;
+ esac
+ build_libtool_libs=no
+ build_old_libs=yes
+ break
+ ;;
+ esac
+ done
+
+ # See if our shared archives depend on static archives.
+ test -n "$old_archive_from_new_cmds" && build_old_libs=yes
+
+ # Go through the arguments, transforming them on the way.
+ while test "$#" -gt 0; do
+ arg=$1
+ shift
+ func_quote_arg pretty,unquoted "$arg"
+ qarg=$func_quote_arg_unquoted_result
+ func_append libtool_args " $func_quote_arg_result"
+
+ # If the previous option needs an argument, assign it.
+ if test -n "$prev"; then
+ case $prev in
+ output)
+ func_append compile_command " @OUTPUT@"
+ func_append finalize_command " @OUTPUT@"
+ ;;
+ esac
+
+ case $prev in
+ bindir)
+ bindir=$arg
+ prev=
+ continue
+ ;;
+ dlfiles|dlprefiles)
+ $preload || {
+ # Add the symbol object into the linking commands.
+ func_append compile_command " @SYMFILE@"
+ func_append finalize_command " @SYMFILE@"
+ preload=:
+ }
+ case $arg in
+ *.la | *.lo) ;; # We handle these cases below.
+ force)
+ if test no = "$dlself"; then
+ dlself=needless
+ export_dynamic=yes
+ fi
+ prev=
+ continue
+ ;;
+ self)
+ if test dlprefiles = "$prev"; then
+ dlself=yes
+ elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then
+ dlself=yes
+ else
+ dlself=needless
+ export_dynamic=yes
+ fi
+ prev=
+ continue
+ ;;
+ *)
+ if test dlfiles = "$prev"; then
+ func_append dlfiles " $arg"
+ else
+ func_append dlprefiles " $arg"
+ fi
+ prev=
+ continue
+ ;;
+ esac
+ ;;
+ expsyms)
+ export_symbols=$arg
+ test -f "$arg" \
+ || func_fatal_error "symbol file '$arg' does not exist"
+ prev=
+ continue
+ ;;
+ expsyms_regex)
+ export_symbols_regex=$arg
+ prev=
+ continue
+ ;;
+ framework)
+ case $host in
+ *-*-darwin*)
+ case "$deplibs " in
+ *" $qarg.ltframework "*) ;;
+ *) func_append deplibs " $qarg.ltframework" # this is fixed later
+ ;;
+ esac
+ ;;
+ esac
+ prev=
+ continue
+ ;;
+ inst_prefix)
+ inst_prefix_dir=$arg
+ prev=
+ continue
+ ;;
+ mllvm)
+ # Clang does not use LLVM to link, so we can simply discard any
+ # '-mllvm $arg' options when doing the link step.
+ prev=
+ continue
+ ;;
+ objectlist)
+ if test -f "$arg"; then
+ save_arg=$arg
+ moreargs=
+ for fil in `cat "$save_arg"`
+ do
+# func_append moreargs " $fil"
+ arg=$fil
+ # A libtool-controlled object.
+
+ # Check to see that this really is a libtool object.
+ if func_lalib_unsafe_p "$arg"; then
+ pic_object=
+ non_pic_object=
+
+ # Read the .lo file
+ func_source "$arg"
+
+ if test -z "$pic_object" ||
+ test -z "$non_pic_object" ||
+ test none = "$pic_object" &&
+ test none = "$non_pic_object"; then
+ func_fatal_error "cannot find name of object for '$arg'"
+ fi
+
+ # Extract subdirectory from the argument.
+ func_dirname "$arg" "/" ""
+ xdir=$func_dirname_result
+
+ if test none != "$pic_object"; then
+ # Prepend the subdirectory the object is found in.
+ pic_object=$xdir$pic_object
+
+ if test dlfiles = "$prev"; then
+ if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then
+ func_append dlfiles " $pic_object"
+ prev=
+ continue
+ else
+ # If libtool objects are unsupported, then we need to preload.
+ prev=dlprefiles
+ fi
+ fi
+
+ # CHECK ME: I think I busted this. -Ossama
+ if test dlprefiles = "$prev"; then
+ # Preload the old-style object.
+ func_append dlprefiles " $pic_object"
+ prev=
+ fi
+
+ # A PIC object.
+ func_append libobjs " $pic_object"
+ arg=$pic_object
+ fi
+
+ # Non-PIC object.
+ if test none != "$non_pic_object"; then
+ # Prepend the subdirectory the object is found in.
+ non_pic_object=$xdir$non_pic_object
+
+ # A standard non-PIC object
+ func_append non_pic_objects " $non_pic_object"
+ if test -z "$pic_object" || test none = "$pic_object"; then
+ arg=$non_pic_object
+ fi
+ else
+ # If the PIC object exists, use it instead.
+ # $xdir was prepended to $pic_object above.
+ non_pic_object=$pic_object
+ func_append non_pic_objects " $non_pic_object"
+ fi
+ else
+ # Only an error if not doing a dry-run.
+ if $opt_dry_run; then
+ # Extract subdirectory from the argument.
+ func_dirname "$arg" "/" ""
+ xdir=$func_dirname_result
+
+ func_lo2o "$arg"
+ pic_object=$xdir$objdir/$func_lo2o_result
+ non_pic_object=$xdir$func_lo2o_result
+ func_append libobjs " $pic_object"
+ func_append non_pic_objects " $non_pic_object"
+ else
+ func_fatal_error "'$arg' is not a valid libtool object"
+ fi
+ fi
+ done
+ else
+ func_fatal_error "link input file '$arg' does not exist"
+ fi
+ arg=$save_arg
+ prev=
+ continue
+ ;;
+ os2dllname)
+ os2dllname=$arg
+ prev=
+ continue
+ ;;
+ precious_regex)
+ precious_files_regex=$arg
+ prev=
+ continue
+ ;;
+ release)
+ release=-$arg
+ prev=
+ continue
+ ;;
+ rpath | xrpath)
+ # We need an absolute path.
+ case $arg in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ func_fatal_error "only absolute run-paths are allowed"
+ ;;
+ esac
+ if test rpath = "$prev"; then
+ case "$rpath " in
+ *" $arg "*) ;;
+ *) func_append rpath " $arg" ;;
+ esac
+ else
+ case "$xrpath " in
+ *" $arg "*) ;;
+ *) func_append xrpath " $arg" ;;
+ esac
+ fi
+ prev=
+ continue
+ ;;
+ shrext)
+ shrext_cmds=$arg
+ prev=
+ continue
+ ;;
+ weak)
+ func_append weak_libs " $arg"
+ prev=
+ continue
+ ;;
+ xassembler)
+ func_append compiler_flags " -Xassembler $qarg"
+ prev=
+ func_append compile_command " -Xassembler $qarg"
+ func_append finalize_command " -Xassembler $qarg"
+ continue
+ ;;
+ xcclinker)
+ func_append linker_flags " $qarg"
+ func_append compiler_flags " $qarg"
+ prev=
+ func_append compile_command " $qarg"
+ func_append finalize_command " $qarg"
+ continue
+ ;;
+ xcompiler)
+ func_append compiler_flags " $qarg"
+ prev=
+ func_append compile_command " $qarg"
+ func_append finalize_command " $qarg"
+ continue
+ ;;
+ xlinker)
+ func_append linker_flags " $qarg"
+ func_append compiler_flags " $wl$qarg"
+ prev=
+ func_append compile_command " $wl$qarg"
+ func_append finalize_command " $wl$qarg"
+ continue
+ ;;
+ *)
+ eval "$prev=\"\$arg\""
+ prev=
+ continue
+ ;;
+ esac
+ fi # test -n "$prev"
+
+ prevarg=$arg
+
+ case $arg in
+ -all-static)
+ if test -n "$link_static_flag"; then
+ # See comment for -static flag below, for more details.
+ func_append compile_command " $link_static_flag"
+ func_append finalize_command " $link_static_flag"
+ fi
+ continue
+ ;;
+
+ -allow-undefined)
+ # FIXME: remove this flag sometime in the future.
+ func_fatal_error "'-allow-undefined' must not be used because it is the default"
+ ;;
+
+ -avoid-version)
+ avoid_version=yes
+ continue
+ ;;
+
+ -bindir)
+ prev=bindir
+ continue
+ ;;
+
+ -dlopen)
+ prev=dlfiles
+ continue
+ ;;
+
+ -dlpreopen)
+ prev=dlprefiles
+ continue
+ ;;
+
+ -export-dynamic)
+ export_dynamic=yes
+ continue
+ ;;
+
+ -export-symbols | -export-symbols-regex)
+ if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
+ func_fatal_error "more than one -exported-symbols argument is not allowed"
+ fi
+ if test X-export-symbols = "X$arg"; then
+ prev=expsyms
+ else
+ prev=expsyms_regex
+ fi
+ continue
+ ;;
+
+ -framework)
+ prev=framework
+ continue
+ ;;
+
+ -inst-prefix-dir)
+ prev=inst_prefix
+ continue
+ ;;
+
+ # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
+ # so, if we see these flags be careful not to treat them like -L
+ -L[A-Z][A-Z]*:*)
+ case $with_gcc/$host in
+ no/*-*-irix* | /*-*-irix*)
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+ ;;
+ esac
+ continue
+ ;;
+
+ -L*)
+ func_stripname "-L" '' "$arg"
+ if test -z "$func_stripname_result"; then
+ if test "$#" -gt 0; then
+ func_fatal_error "require no space between '-L' and '$1'"
+ else
+ func_fatal_error "need path for '-L' option"
+ fi
+ fi
+ func_resolve_sysroot "$func_stripname_result"
+ dir=$func_resolve_sysroot_result
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ *)
+ absdir=`cd "$dir" && pwd`
+ test -z "$absdir" && \
+ func_fatal_error "cannot determine absolute directory name of '$dir'"
+ dir=$absdir
+ ;;
+ esac
+ case "$deplibs " in
+ *" -L$dir "* | *" $arg "*)
+ # Will only happen for absolute or sysroot arguments
+ ;;
+ *)
+ # Preserve sysroot, but never include relative directories
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
+ *) func_append deplibs " -L$dir" ;;
+ esac
+ func_append lib_search_path " $dir"
+ ;;
+ esac
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+ testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
+ case :$dllsearchpath: in
+ *":$dir:"*) ;;
+ ::) dllsearchpath=$dir;;
+ *) func_append dllsearchpath ":$dir";;
+ esac
+ case :$dllsearchpath: in
+ *":$testbindir:"*) ;;
+ ::) dllsearchpath=$testbindir;;
+ *) func_append dllsearchpath ":$testbindir";;
+ esac
+ ;;
+ esac
+ continue
+ ;;
+
+ -l*)
+ if test X-lc = "X$arg" || test X-lm = "X$arg"; then
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
+ # These systems don't actually have a C or math library (as such)
+ continue
+ ;;
+ *-*-os2*)
+ # These systems don't actually have a C library (as such)
+ test X-lc = "X$arg" && continue
+ ;;
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*)
+ # Do not include libc due to us having libc/libc_r.
+ test X-lc = "X$arg" && continue
+ ;;
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # Rhapsody C and math libraries are in the System framework
+ func_append deplibs " System.ltframework"
+ continue
+ ;;
+ *-*-sco3.2v5* | *-*-sco5v6*)
+ # Causes problems with __ctype
+ test X-lc = "X$arg" && continue
+ ;;
+ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+ # Compiler inserts libc in the correct place for threads to work
+ test X-lc = "X$arg" && continue
+ ;;
+ esac
+ elif test X-lc_r = "X$arg"; then
+ case $host in
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig* | *-*-midnightbsd*)
+ # Do not include libc_r directly, use -pthread flag.
+ continue
+ ;;
+ esac
+ fi
+ func_append deplibs " $arg"
+ continue
+ ;;
+
+ -mllvm)
+ prev=mllvm
+ continue
+ ;;
+
+ -module)
+ module=yes
+ continue
+ ;;
+
+ # Tru64 UNIX uses -model [arg] to determine the layout of C++
+ # classes, name mangling, and exception handling.
+ # Darwin uses the -arch flag to determine output architecture.
+ -model|-arch|-isysroot|--sysroot)
+ func_append compiler_flags " $arg"
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+ prev=xcompiler
+ continue
+ ;;
+ # Solaris ld rejects as of 11.4. Refer to Oracle bug 22985199.
+ -pthread)
+ case $host in
+ *solaris2*) ;;
+ *)
+ case "$new_inherited_linker_flags " in
+ *" $arg "*) ;;
+ * ) func_append new_inherited_linker_flags " $arg" ;;
+ esac
+ ;;
+ esac
+ continue
+ ;;
+ -mt|-mthreads|-kthread|-Kthread|-pthreads|--thread-safe \
+ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
+ func_append compiler_flags " $arg"
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+ case "$new_inherited_linker_flags " in
+ *" $arg "*) ;;
+ * ) func_append new_inherited_linker_flags " $arg" ;;
+ esac
+ continue
+ ;;
+
+ -multi_module)
+ single_module=$wl-multi_module
+ continue
+ ;;
+
+ -no-fast-install)
+ fast_install=no
+ continue
+ ;;
+
+ -no-install)
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
+ # The PATH hackery in wrapper scripts is required on Windows
+ # and Darwin in order for the loader to find any dlls it needs.
+ func_warning "'-no-install' is ignored for $host"
+ func_warning "assuming '-no-fast-install' instead"
+ fast_install=no
+ ;;
+ *) no_install=yes ;;
+ esac
+ continue
+ ;;
+
+ -no-undefined)
+ allow_undefined=no
+ continue
+ ;;
+
+ -objectlist)
+ prev=objectlist
+ continue
+ ;;
+
+ -os2dllname)
+ prev=os2dllname
+ continue
+ ;;
+
+ -o) prev=output ;;
+
+ -precious-files-regex)
+ prev=precious_regex
+ continue
+ ;;
+
+ -release)
+ prev=release
+ continue
+ ;;
+
+ -rpath)
+ prev=rpath
+ continue
+ ;;
+
+ -R)
+ prev=xrpath
+ continue
+ ;;
+
+ -R*)
+ func_stripname '-R' '' "$arg"
+ dir=$func_stripname_result
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) ;;
+ =*)
+ func_stripname '=' '' "$dir"
+ dir=$lt_sysroot$func_stripname_result
+ ;;
+ *)
+ func_fatal_error "only absolute run-paths are allowed"
+ ;;
+ esac
+ case "$xrpath " in
+ *" $dir "*) ;;
+ *) func_append xrpath " $dir" ;;
+ esac
+ continue
+ ;;
+
+ -shared)
+ # The effects of -shared are defined in a previous loop.
+ continue
+ ;;
+
+ -shrext)
+ prev=shrext
+ continue
+ ;;
+
+ -static | -static-libtool-libs)
+ # The effects of -static are defined in a previous loop.
+ # We used to do the same as -all-static on platforms that
+ # didn't have a PIC flag, but the assumption that the effects
+ # would be equivalent was wrong. It would break on at least
+ # Digital Unix and AIX.
+ continue
+ ;;
+
+ -thread-safe)
+ thread_safe=yes
+ continue
+ ;;
+
+ -version-info)
+ prev=vinfo
+ continue
+ ;;
+
+ -version-number)
+ prev=vinfo
+ vinfo_number=yes
+ continue
+ ;;
+
+ -weak)
+ prev=weak
+ continue
+ ;;
+
+ -Wc,*)
+ func_stripname '-Wc,' '' "$arg"
+ args=$func_stripname_result
+ arg=
+ save_ifs=$IFS; IFS=,
+ for flag in $args; do
+ IFS=$save_ifs
+ func_quote_arg pretty "$flag"
+ func_append arg " $func_quote_arg_result"
+ func_append compiler_flags " $func_quote_arg_result"
+ done
+ IFS=$save_ifs
+ func_stripname ' ' '' "$arg"
+ arg=$func_stripname_result
+ ;;
+
+ -Wl,*)
+ func_stripname '-Wl,' '' "$arg"
+ args=$func_stripname_result
+ arg=
+ save_ifs=$IFS; IFS=,
+ for flag in $args; do
+ IFS=$save_ifs
+ func_quote_arg pretty "$flag"
+ func_append arg " $wl$func_quote_arg_result"
+ func_append compiler_flags " $wl$func_quote_arg_result"
+ func_append linker_flags " $func_quote_arg_result"
+ done
+ IFS=$save_ifs
+ func_stripname ' ' '' "$arg"
+ arg=$func_stripname_result
+ ;;
+
+ -Xassembler)
+ prev=xassembler
+ continue
+ ;;
+
+ -Xcompiler)
+ prev=xcompiler
+ continue
+ ;;
+
+ -Xlinker)
+ prev=xlinker
+ continue
+ ;;
+
+ -XCClinker)
+ prev=xcclinker
+ continue
+ ;;
+
+ # -msg_* for osf cc
+ -msg_*)
+ func_quote_arg pretty "$arg"
+ arg=$func_quote_arg_result
+ ;;
+
+ # Flags to be passed through unchanged, with rationale:
+ # -64, -mips[0-9] enable 64-bit mode for the SGI compiler
+ # -r[0-9][0-9]* specify processor for the SGI compiler
+ # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
+ # +DA*, +DD* enable 64-bit mode for the HP compiler
+ # -q* compiler args for the IBM compiler
+ # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
+ # -F/path path to uninstalled frameworks, gcc on darwin
+ # -p, -pg, --coverage, -fprofile-* profiling flags for GCC
+ # -fstack-protector* stack protector flags for GCC
+ # @file GCC response files
+ # -tp=* Portland pgcc target processor selection
+ # --sysroot=* for sysroot support
+ # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
+ # -specs=* GCC specs files
+ # -stdlib=* select c++ std lib with clang
+ # -fsanitize=* Clang/GCC memory and address sanitizer
+ # -fuse-ld=* Linker select flags for GCC
+ # -static-* direct GCC to link specific libraries statically
+ # -fcilkplus Cilk Plus language extension features for C/C++
+ # -Wa,* Pass flags directly to the assembler
+ -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
+ -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
+ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \
+ -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-fcilkplus|-Wa,*)
+ func_quote_arg pretty "$arg"
+ arg=$func_quote_arg_result
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+ func_append compiler_flags " $arg"
+ continue
+ ;;
+
+ -Z*)
+ if test os2 = "`expr $host : '.*\(os2\)'`"; then
+ # OS/2 uses -Zxxx to specify OS/2-specific options
+ compiler_flags="$compiler_flags $arg"
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+ case $arg in
+ -Zlinker | -Zstack)
+ prev=xcompiler
+ ;;
+ esac
+ continue
+ else
+ # Otherwise treat like 'Some other compiler flag' below
+ func_quote_arg pretty "$arg"
+ arg=$func_quote_arg_result
+ fi
+ ;;
+
+ # Some other compiler flag.
+ -* | +*)
+ func_quote_arg pretty "$arg"
+ arg=$func_quote_arg_result
+ ;;
+
+ *.$objext)
+ # A standard object.
+ func_append objs " $arg"
+ ;;
+
+ *.lo)
+ # A libtool-controlled object.
+
+ # Check to see that this really is a libtool object.
+ if func_lalib_unsafe_p "$arg"; then
+ pic_object=
+ non_pic_object=
+
+ # Read the .lo file
+ func_source "$arg"
+
+ if test -z "$pic_object" ||
+ test -z "$non_pic_object" ||
+ test none = "$pic_object" &&
+ test none = "$non_pic_object"; then
+ func_fatal_error "cannot find name of object for '$arg'"
+ fi
+
+ # Extract subdirectory from the argument.
+ func_dirname "$arg" "/" ""
+ xdir=$func_dirname_result
+
+ test none = "$pic_object" || {
+ # Prepend the subdirectory the object is found in.
+ pic_object=$xdir$pic_object
+
+ if test dlfiles = "$prev"; then
+ if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then
+ func_append dlfiles " $pic_object"
+ prev=
+ continue
+ else
+ # If libtool objects are unsupported, then we need to preload.
+ prev=dlprefiles
+ fi
+ fi
+
+ # CHECK ME: I think I busted this. -Ossama
+ if test dlprefiles = "$prev"; then
+ # Preload the old-style object.
+ func_append dlprefiles " $pic_object"
+ prev=
+ fi
+
+ # A PIC object.
+ func_append libobjs " $pic_object"
+ arg=$pic_object
+ }
+
+ # Non-PIC object.
+ if test none != "$non_pic_object"; then
+ # Prepend the subdirectory the object is found in.
+ non_pic_object=$xdir$non_pic_object
+
+ # A standard non-PIC object
+ func_append non_pic_objects " $non_pic_object"
+ if test -z "$pic_object" || test none = "$pic_object"; then
+ arg=$non_pic_object
+ fi
+ else
+ # If the PIC object exists, use it instead.
+ # $xdir was prepended to $pic_object above.
+ non_pic_object=$pic_object
+ func_append non_pic_objects " $non_pic_object"
+ fi
+ else
+ # Only an error if not doing a dry-run.
+ if $opt_dry_run; then
+ # Extract subdirectory from the argument.
+ func_dirname "$arg" "/" ""
+ xdir=$func_dirname_result
+
+ func_lo2o "$arg"
+ pic_object=$xdir$objdir/$func_lo2o_result
+ non_pic_object=$xdir$func_lo2o_result
+ func_append libobjs " $pic_object"
+ func_append non_pic_objects " $non_pic_object"
+ else
+ func_fatal_error "'$arg' is not a valid libtool object"
+ fi
+ fi
+ ;;
+
+ *.$libext)
+ # An archive.
+ func_append deplibs " $arg"
+ func_append old_deplibs " $arg"
+ continue
+ ;;
+
+ *.la)
+ # A libtool-controlled library.
+
+ func_resolve_sysroot "$arg"
+ if test dlfiles = "$prev"; then
+ # This library was specified with -dlopen.
+ func_append dlfiles " $func_resolve_sysroot_result"
+ prev=
+ elif test dlprefiles = "$prev"; then
+ # The library was specified with -dlpreopen.
+ func_append dlprefiles " $func_resolve_sysroot_result"
+ prev=
+ else
+ func_append deplibs " $func_resolve_sysroot_result"
+ fi
+ continue
+ ;;
+
+ # Some other compiler argument.
+ *)
+ # Unknown arguments in both finalize_command and compile_command need
+ # to be aesthetically quoted because they are evaled later.
+ func_quote_arg pretty "$arg"
+ arg=$func_quote_arg_result
+ ;;
+ esac # arg
+
+ # Now actually substitute the argument into the commands.
+ if test -n "$arg"; then
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+ fi
+ done # argument parsing loop
+
+ test -n "$prev" && \
+ func_fatal_help "the '$prevarg' option requires an argument"
+
+ if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then
+ eval arg=\"$export_dynamic_flag_spec\"
+ func_append compile_command " $arg"
+ func_append finalize_command " $arg"
+ fi
+
+ oldlibs=
+ # calculate the name of the file, without its directory
+ func_basename "$output"
+ outputname=$func_basename_result
+ libobjs_save=$libobjs
+
+ if test -n "$shlibpath_var"; then
+ # get the directories listed in $shlibpath_var
+ eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\`
+ else
+ shlib_search_path=
+ fi
+ eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
+ eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
+
+ # Definition is injected by LT_CONFIG during libtool generation.
+ func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH"
+
+ func_dirname "$output" "/" ""
+ output_objdir=$func_dirname_result$objdir
+ func_to_tool_file "$output_objdir/"
+ tool_output_objdir=$func_to_tool_file_result
+ # Create the object directory.
+ func_mkdir_p "$output_objdir"
+
+ # Determine the type of output
+ case $output in
+ "")
+ func_fatal_help "you must specify an output file"
+ ;;
+ *.$libext) linkmode=oldlib ;;
+ *.lo | *.$objext) linkmode=obj ;;
+ *.la) linkmode=lib ;;
+ *) linkmode=prog ;; # Anything else should be a program.
+ esac
+
+ specialdeplibs=
+
+ libs=
+ # Find all interdependent deplibs by searching for libraries
+ # that are linked more than once (e.g. -la -lb -la)
+ for deplib in $deplibs; do
+ if $opt_preserve_dup_deps; then
+ case "$libs " in
+ *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+ esac
+ fi
+ func_append libs " $deplib"
+ done
+
+ if test lib = "$linkmode"; then
+ libs="$predeps $libs $compiler_lib_search_path $postdeps"
+
+ # Compute libraries that are listed more than once in $predeps
+ # $postdeps and mark them as special (i.e., whose duplicates are
+ # not to be eliminated).
+ pre_post_deps=
+ if $opt_duplicate_compiler_generated_deps; then
+ for pre_post_dep in $predeps $postdeps; do
+ case "$pre_post_deps " in
+ *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
+ esac
+ func_append pre_post_deps " $pre_post_dep"
+ done
+ fi
+ pre_post_deps=
+ fi
+
+ deplibs=
+ newdependency_libs=
+ newlib_search_path=
+ need_relink=no # whether we're linking any uninstalled libtool libraries
+ notinst_deplibs= # not-installed libtool libraries
+ notinst_path= # paths that contain not-installed libtool libraries
+
+ case $linkmode in
+ lib)
+ passes="conv dlpreopen link"
+ for file in $dlfiles $dlprefiles; do
+ case $file in
+ *.la) ;;
+ *)
+ func_fatal_help "libraries can '-dlopen' only libtool libraries: $file"
+ ;;
+ esac
+ done
+ ;;
+ prog)
+ compile_deplibs=
+ finalize_deplibs=
+ alldeplibs=false
+ newdlfiles=
+ newdlprefiles=
+ passes="conv scan dlopen dlpreopen link"
+ ;;
+ *) passes="conv"
+ ;;
+ esac
+
+ for pass in $passes; do
+ # The preopen pass in lib mode reverses $deplibs; put it back here
+ # so that -L comes before libs that need it for instance...
+ if test lib,link = "$linkmode,$pass"; then
+ ## FIXME: Find the place where the list is rebuilt in the wrong
+ ## order, and fix it there properly
+ tmp_deplibs=
+ for deplib in $deplibs; do
+ tmp_deplibs="$deplib $tmp_deplibs"
+ done
+ deplibs=$tmp_deplibs
+ fi
+
+ if test lib,link = "$linkmode,$pass" ||
+ test prog,scan = "$linkmode,$pass"; then
+ libs=$deplibs
+ deplibs=
+ fi
+ if test prog = "$linkmode"; then
+ case $pass in
+ dlopen) libs=$dlfiles ;;
+ dlpreopen) libs=$dlprefiles ;;
+ link)
+ libs="$deplibs %DEPLIBS%"
+ test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
+ ;;
+ esac
+ fi
+ if test lib,dlpreopen = "$linkmode,$pass"; then
+ # Collect and forward deplibs of preopened libtool libs
+ for lib in $dlprefiles; do
+ # Ignore non-libtool-libs
+ dependency_libs=
+ func_resolve_sysroot "$lib"
+ case $lib in
+ *.la) func_source "$func_resolve_sysroot_result" ;;
+ esac
+
+ # Collect preopened libtool deplibs, except any this library
+ # has declared as weak libs
+ for deplib in $dependency_libs; do
+ func_basename "$deplib"
+ deplib_base=$func_basename_result
+ case " $weak_libs " in
+ *" $deplib_base "*) ;;
+ *) func_append deplibs " $deplib" ;;
+ esac
+ done
+ done
+ libs=$dlprefiles
+ fi
+ if test dlopen = "$pass"; then
+ # Collect dlpreopened libraries
+ save_deplibs=$deplibs
+ deplibs=
+ fi
+
+ for deplib in $libs; do
+ lib=
+ found=false
+ case $deplib in
+ -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
+ |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
+ if test prog,link = "$linkmode,$pass"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ func_append compiler_flags " $deplib"
+ if test lib = "$linkmode"; then
+ case "$new_inherited_linker_flags " in
+ *" $deplib "*) ;;
+ * ) func_append new_inherited_linker_flags " $deplib" ;;
+ esac
+ fi
+ fi
+ continue
+ ;;
+ -l*)
+ if test lib != "$linkmode" && test prog != "$linkmode"; then
+ func_warning "'-l' is ignored for archives/objects"
+ continue
+ fi
+ func_stripname '-l' '' "$deplib"
+ name=$func_stripname_result
+ if test lib = "$linkmode"; then
+ searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
+ else
+ searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
+ fi
+ for searchdir in $searchdirs; do
+ for search_ext in .la $std_shrext .so .a; do
+ # Search the libtool library
+ lib=$searchdir/lib$name$search_ext
+ if test -f "$lib"; then
+ if test .la = "$search_ext"; then
+ found=:
+ else
+ found=false
+ fi
+ break 2
+ fi
+ done
+ done
+ if $found; then
+ # deplib is a libtool library
+ # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
+ # We need to do some special things here, and not later.
+ if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+ case " $predeps $postdeps " in
+ *" $deplib "*)
+ if func_lalib_p "$lib"; then
+ library_names=
+ old_library=
+ func_source "$lib"
+ for l in $old_library $library_names; do
+ ll=$l
+ done
+ if test "X$ll" = "X$old_library"; then # only static version available
+ found=false
+ func_dirname "$lib" "" "."
+ ladir=$func_dirname_result
+ lib=$ladir/$old_library
+ if test prog,link = "$linkmode,$pass"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ deplibs="$deplib $deplibs"
+ test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs"
+ fi
+ continue
+ fi
+ fi
+ ;;
+ *) ;;
+ esac
+ fi
+ else
+ # deplib doesn't seem to be a libtool library
+ if test prog,link = "$linkmode,$pass"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ deplibs="$deplib $deplibs"
+ test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs"
+ fi
+ continue
+ fi
+ ;; # -l
+ *.ltframework)
+ if test prog,link = "$linkmode,$pass"; then
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ deplibs="$deplib $deplibs"
+ if test lib = "$linkmode"; then
+ case "$new_inherited_linker_flags " in
+ *" $deplib "*) ;;
+ * ) func_append new_inherited_linker_flags " $deplib" ;;
+ esac
+ fi
+ fi
+ continue
+ ;;
+ -L*)
+ case $linkmode in
+ lib)
+ deplibs="$deplib $deplibs"
+ test conv = "$pass" && continue
+ newdependency_libs="$deplib $newdependency_libs"
+ func_stripname '-L' '' "$deplib"
+ func_resolve_sysroot "$func_stripname_result"
+ func_append newlib_search_path " $func_resolve_sysroot_result"
+ ;;
+ prog)
+ if test conv = "$pass"; then
+ deplibs="$deplib $deplibs"
+ continue
+ fi
+ if test scan = "$pass"; then
+ deplibs="$deplib $deplibs"
+ else
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ fi
+ func_stripname '-L' '' "$deplib"
+ func_resolve_sysroot "$func_stripname_result"
+ func_append newlib_search_path " $func_resolve_sysroot_result"
+ ;;
+ *)
+ func_warning "'-L' is ignored for archives/objects"
+ ;;
+ esac # linkmode
+ continue
+ ;; # -L
+ -R*)
+ if test link = "$pass"; then
+ func_stripname '-R' '' "$deplib"
+ func_resolve_sysroot "$func_stripname_result"
+ dir=$func_resolve_sysroot_result
+ # Make sure the xrpath contains only unique directories.
+ case "$xrpath " in
+ *" $dir "*) ;;
+ *) func_append xrpath " $dir" ;;
+ esac
+ fi
+ deplibs="$deplib $deplibs"
+ continue
+ ;;
+ *.la)
+ func_resolve_sysroot "$deplib"
+ lib=$func_resolve_sysroot_result
+ ;;
+ *.$libext)
+ if test conv = "$pass"; then
+ deplibs="$deplib $deplibs"
+ continue
+ fi
+ case $linkmode in
+ lib)
+ # Linking convenience modules into shared libraries is allowed,
+ # but linking other static libraries is non-portable.
+ case " $dlpreconveniencelibs " in
+ *" $deplib "*) ;;
+ *)
+ valid_a_lib=false
+ case $deplibs_check_method in
+ match_pattern*)
+ set dummy $deplibs_check_method; shift
+ match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+ if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
+ | $EGREP "$match_pattern_regex" > /dev/null; then
+ valid_a_lib=:
+ fi
+ ;;
+ pass_all)
+ valid_a_lib=:
+ ;;
+ esac
+ if $valid_a_lib; then
+ echo
+ $ECHO "*** Warning: Linking the shared library $output against the"
+ $ECHO "*** static library $deplib is not portable!"
+ deplibs="$deplib $deplibs"
+ else
+ echo
+ $ECHO "*** Warning: Trying to link with static lib archive $deplib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have"
+ echo "*** because the file extensions .$libext of this argument makes me believe"
+ echo "*** that it is just a static archive that I should not use here."
+ fi
+ ;;
+ esac
+ continue
+ ;;
+ prog)
+ if test link != "$pass"; then
+ deplibs="$deplib $deplibs"
+ else
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ fi
+ continue
+ ;;
+ esac # linkmode
+ ;; # *.$libext
+ *.lo | *.$objext)
+ if test conv = "$pass"; then
+ deplibs="$deplib $deplibs"
+ elif test prog = "$linkmode"; then
+ if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then
+ # If there is no dlopen support or we're linking statically,
+ # we need to preload.
+ func_append newdlprefiles " $deplib"
+ compile_deplibs="$deplib $compile_deplibs"
+ finalize_deplibs="$deplib $finalize_deplibs"
+ else
+ func_append newdlfiles " $deplib"
+ fi
+ fi
+ continue
+ ;;
+ %DEPLIBS%)
+ alldeplibs=:
+ continue
+ ;;
+ esac # case $deplib
+
+ $found || test -f "$lib" \
+ || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'"
+
+ # Check to see that this really is a libtool archive.
+ func_lalib_unsafe_p "$lib" \
+ || func_fatal_error "'$lib' is not a valid libtool archive"
+
+ func_dirname "$lib" "" "."
+ ladir=$func_dirname_result
+
+ dlname=
+ dlopen=
+ dlpreopen=
+ libdir=
+ library_names=
+ old_library=
+ inherited_linker_flags=
+ # If the library was installed with an old release of libtool,
+ # it will not redefine variables installed, or shouldnotlink
+ installed=yes
+ shouldnotlink=no
+ avoidtemprpath=
+
+
+ # Read the .la file
+ func_source "$lib"
+
+ # Convert "-framework foo" to "foo.ltframework"
+ if test -n "$inherited_linker_flags"; then
+ tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
+ for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
+ case " $new_inherited_linker_flags " in
+ *" $tmp_inherited_linker_flag "*) ;;
+ *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
+ esac
+ done
+ fi
+ dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ if test lib,link = "$linkmode,$pass" ||
+ test prog,scan = "$linkmode,$pass" ||
+ { test prog != "$linkmode" && test lib != "$linkmode"; }; then
+ test -n "$dlopen" && func_append dlfiles " $dlopen"
+ test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
+ fi
+
+ if test conv = "$pass"; then
+ # Only check for convenience libraries
+ deplibs="$lib $deplibs"
+ if test -z "$libdir"; then
+ if test -z "$old_library"; then
+ func_fatal_error "cannot find name of link library for '$lib'"
+ fi
+ # It is a libtool convenience library, so add in its objects.
+ func_append convenience " $ladir/$objdir/$old_library"
+ func_append old_convenience " $ladir/$objdir/$old_library"
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ deplibs="$deplib $deplibs"
+ if $opt_preserve_dup_deps; then
+ case "$tmp_libs " in
+ *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+ esac
+ fi
+ func_append tmp_libs " $deplib"
+ done
+ elif test prog != "$linkmode" && test lib != "$linkmode"; then
+ func_fatal_error "'$lib' is not a convenience library"
+ fi
+ continue
+ fi # $pass = conv
+
+
+ # Get the name of the library we link against.
+ linklib=
+ if test -n "$old_library" &&
+ { test yes = "$prefer_static_libs" ||
+ test built,no = "$prefer_static_libs,$installed"; }; then
+ linklib=$old_library
+ else
+ for l in $old_library $library_names; do
+ linklib=$l
+ done
+ fi
+ if test -z "$linklib"; then
+ func_fatal_error "cannot find name of link library for '$lib'"
+ fi
+
+ # This library was specified with -dlopen.
+ if test dlopen = "$pass"; then
+ test -z "$libdir" \
+ && func_fatal_error "cannot -dlopen a convenience library: '$lib'"
+ if test -z "$dlname" ||
+ test yes != "$dlopen_support" ||
+ test no = "$build_libtool_libs"
+ then
+ # If there is no dlname, no dlopen support or we're linking
+ # statically, we need to preload. We also need to preload any
+ # dependent libraries so libltdl's deplib preloader doesn't
+ # bomb out in the load deplibs phase.
+ func_append dlprefiles " $lib $dependency_libs"
+ else
+ func_append newdlfiles " $lib"
+ fi
+ continue
+ fi # $pass = dlopen
+
+ # We need an absolute path.
+ case $ladir in
+ [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;;
+ *)
+ abs_ladir=`cd "$ladir" && pwd`
+ if test -z "$abs_ladir"; then
+ func_warning "cannot determine absolute directory name of '$ladir'"
+ func_warning "passing it literally to the linker, although it might fail"
+ abs_ladir=$ladir
+ fi
+ ;;
+ esac
+ func_basename "$lib"
+ laname=$func_basename_result
+
+ # Find the relevant object directory and library name.
+ if test yes = "$installed"; then
+ if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+ func_warning "library '$lib' was moved."
+ dir=$ladir
+ absdir=$abs_ladir
+ libdir=$abs_ladir
+ else
+ dir=$lt_sysroot$libdir
+ absdir=$lt_sysroot$libdir
+ fi
+ test yes = "$hardcode_automatic" && avoidtemprpath=yes
+ else
+ if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
+ dir=$ladir
+ absdir=$abs_ladir
+ # Remove this search path later
+ func_append notinst_path " $abs_ladir"
+ else
+ dir=$ladir/$objdir
+ absdir=$abs_ladir/$objdir
+ # Remove this search path later
+ func_append notinst_path " $abs_ladir"
+ fi
+ fi # $installed = yes
+ func_stripname 'lib' '.la' "$laname"
+ name=$func_stripname_result
+
+ # This library was specified with -dlpreopen.
+ if test dlpreopen = "$pass"; then
+ if test -z "$libdir" && test prog = "$linkmode"; then
+ func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'"
+ fi
+ case $host in
+ # special handling for platforms with PE-DLLs.
+ *cygwin* | *mingw* | *cegcc* )
+ # Linker will automatically link against shared library if both
+ # static and shared are present. Therefore, ensure we extract
+ # symbols from the import library if a shared library is present
+ # (otherwise, the dlopen module name will be incorrect). We do
+ # this by putting the import library name into $newdlprefiles.
+ # We recover the dlopen module name by 'saving' the la file
+ # name in a special purpose variable, and (later) extracting the
+ # dlname from the la file.
+ if test -n "$dlname"; then
+ func_tr_sh "$dir/$linklib"
+ eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
+ func_append newdlprefiles " $dir/$linklib"
+ else
+ func_append newdlprefiles " $dir/$old_library"
+ # Keep a list of preopened convenience libraries to check
+ # that they are being used correctly in the link pass.
+ test -z "$libdir" && \
+ func_append dlpreconveniencelibs " $dir/$old_library"
+ fi
+ ;;
+ * )
+ # Prefer using a static library (so that no silly _DYNAMIC symbols
+ # are required to link).
+ if test -n "$old_library"; then
+ func_append newdlprefiles " $dir/$old_library"
+ # Keep a list of preopened convenience libraries to check
+ # that they are being used correctly in the link pass.
+ test -z "$libdir" && \
+ func_append dlpreconveniencelibs " $dir/$old_library"
+ # Otherwise, use the dlname, so that lt_dlopen finds it.
+ elif test -n "$dlname"; then
+ func_append newdlprefiles " $dir/$dlname"
+ else
+ func_append newdlprefiles " $dir/$linklib"
+ fi
+ ;;
+ esac
+ fi # $pass = dlpreopen
+
+ if test -z "$libdir"; then
+ # Link the convenience library
+ if test lib = "$linkmode"; then
+ deplibs="$dir/$old_library $deplibs"
+ elif test prog,link = "$linkmode,$pass"; then
+ compile_deplibs="$dir/$old_library $compile_deplibs"
+ finalize_deplibs="$dir/$old_library $finalize_deplibs"
+ else
+ deplibs="$lib $deplibs" # used for prog,scan pass
+ fi
+ continue
+ fi
+
+
+ if test prog = "$linkmode" && test link != "$pass"; then
+ func_append newlib_search_path " $ladir"
+ deplibs="$lib $deplibs"
+
+ linkalldeplibs=false
+ if test no != "$link_all_deplibs" || test -z "$library_names" ||
+ test no = "$build_libtool_libs"; then
+ linkalldeplibs=:
+ fi
+
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ case $deplib in
+ -L*) func_stripname '-L' '' "$deplib"
+ func_resolve_sysroot "$func_stripname_result"
+ func_append newlib_search_path " $func_resolve_sysroot_result"
+ ;;
+ esac
+ # Need to link against all dependency_libs?
+ if $linkalldeplibs; then
+ deplibs="$deplib $deplibs"
+ else
+ # Need to hardcode shared library paths
+ # or/and link against static libraries
+ newdependency_libs="$deplib $newdependency_libs"
+ fi
+ if $opt_preserve_dup_deps; then
+ case "$tmp_libs " in
+ *" $deplib "*) func_append specialdeplibs " $deplib" ;;
+ esac
+ fi
+ func_append tmp_libs " $deplib"
+ done # for deplib
+ continue
+ fi # $linkmode = prog...
+
+ if test prog,link = "$linkmode,$pass"; then
+ if test -n "$library_names" &&
+ { { test no = "$prefer_static_libs" ||
+ test built,yes = "$prefer_static_libs,$installed"; } ||
+ test -z "$old_library"; }; then
+ # We need to hardcode the library path
+ if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then
+ # Make sure the rpath contains only unique directories.
+ case $temp_rpath: in
+ *"$absdir:"*) ;;
+ *) func_append temp_rpath "$absdir:" ;;
+ esac
+ fi
+
+ # Hardcode the library path.
+ # Skip directories that are in the system default run-time
+ # search path.
+ case " $sys_lib_dlsearch_path " in
+ *" $absdir "*) ;;
+ *)
+ case "$compile_rpath " in
+ *" $absdir "*) ;;
+ *) func_append compile_rpath " $absdir" ;;
+ esac
+ ;;
+ esac
+ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+ *)
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) func_append finalize_rpath " $libdir" ;;
+ esac
+ ;;
+ esac
+ fi # $linkmode,$pass = prog,link...
+
+ if $alldeplibs &&
+ { test pass_all = "$deplibs_check_method" ||
+ { test yes = "$build_libtool_libs" &&
+ test -n "$library_names"; }; }; then
+ # We only need to search for static libraries
+ continue
+ fi
+ fi
+
+ link_static=no # Whether the deplib will be linked statically
+ use_static_libs=$prefer_static_libs
+ if test built = "$use_static_libs" && test yes = "$installed"; then
+ use_static_libs=no
+ fi
+ if test -n "$library_names" &&
+ { test no = "$use_static_libs" || test -z "$old_library"; }; then
+ case $host in
+ *cygwin* | *mingw* | *cegcc* | *os2*)
+ # No point in relinking DLLs because paths are not encoded
+ func_append notinst_deplibs " $lib"
+ need_relink=no
+ ;;
+ *)
+ if test no = "$installed"; then
+ func_append notinst_deplibs " $lib"
+ need_relink=yes
+ fi
+ ;;
+ esac
+ # This is a shared library
+
+ # Warn about portability, can't link against -module's on some
+ # systems (darwin). Don't bleat about dlopened modules though!
+ dlopenmodule=
+ for dlpremoduletest in $dlprefiles; do
+ if test "X$dlpremoduletest" = "X$lib"; then
+ dlopenmodule=$dlpremoduletest
+ break
+ fi
+ done
+ if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then
+ echo
+ if test prog = "$linkmode"; then
+ $ECHO "*** Warning: Linking the executable $output against the loadable module"
+ else
+ $ECHO "*** Warning: Linking the shared library $output against the loadable module"
+ fi
+ $ECHO "*** $linklib is not portable!"
+ fi
+ if test lib = "$linkmode" &&
+ test yes = "$hardcode_into_libs"; then
+ # Hardcode the library path.
+ # Skip directories that are in the system default run-time
+ # search path.
+ case " $sys_lib_dlsearch_path " in
+ *" $absdir "*) ;;
+ *)
+ case "$compile_rpath " in
+ *" $absdir "*) ;;
+ *) func_append compile_rpath " $absdir" ;;
+ esac
+ ;;
+ esac
+ case " $sys_lib_dlsearch_path " in
+ *" $libdir "*) ;;
+ *)
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) func_append finalize_rpath " $libdir" ;;
+ esac
+ ;;
+ esac
+ fi
+
+ if test -n "$old_archive_from_expsyms_cmds"; then
+ # figure out the soname
+ set dummy $library_names
+ shift
+ realname=$1
+ shift
+ libname=`eval "\\$ECHO \"$libname_spec\""`
+ # use dlname if we got it. it's perfectly good, no?
+ if test -n "$dlname"; then
+ soname=$dlname
+ elif test -n "$soname_spec"; then
+ # bleh windows
+ case $host in
+ *cygwin* | mingw* | *cegcc* | *os2*)
+ func_arith $current - $age
+ major=$func_arith_result
+ versuffix=-$major
+ ;;
+ esac
+ eval soname=\"$soname_spec\"
+ else
+ soname=$realname
+ fi
+
+ # Make a new name for the extract_expsyms_cmds to use
+ soroot=$soname
+ func_basename "$soroot"
+ soname=$func_basename_result
+ func_stripname 'lib' '.dll' "$soname"
+ newlib=libimp-$func_stripname_result.a
+
+ # If the library has no export list, then create one now
+ if test -f "$output_objdir/$soname-def"; then :
+ else
+ func_verbose "extracting exported symbol list from '$soname'"
+ func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
+ fi
+
+ # Create $newlib
+ if test -f "$output_objdir/$newlib"; then :; else
+ func_verbose "generating import library for '$soname'"
+ func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
+ fi
+ # make sure the library variables are pointing to the new library
+ dir=$output_objdir
+ linklib=$newlib
+ fi # test -n "$old_archive_from_expsyms_cmds"
+
+ if test prog = "$linkmode" || test relink != "$opt_mode"; then
+ add_shlibpath=
+ add_dir=
+ add=
+ lib_linked=yes
+ case $hardcode_action in
+ immediate | unsupported)
+ if test no = "$hardcode_direct"; then
+ add=$dir/$linklib
+ case $host in
+ *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;;
+ *-*-sysv4*uw2*) add_dir=-L$dir ;;
+ *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
+ *-*-unixware7*) add_dir=-L$dir ;;
+ *-*-darwin* )
+ # if the lib is a (non-dlopened) module then we cannot
+ # link against it, someone is ignoring the earlier warnings
+ if /usr/bin/file -L $add 2> /dev/null |
+ $GREP ": [^:]* bundle" >/dev/null; then
+ if test "X$dlopenmodule" != "X$lib"; then
+ $ECHO "*** Warning: lib $linklib is a module, not a shared library"
+ if test -z "$old_library"; then
+ echo
+ echo "*** And there doesn't seem to be a static archive available"
+ echo "*** The link will probably fail, sorry"
+ else
+ add=$dir/$old_library
+ fi
+ elif test -n "$old_library"; then
+ add=$dir/$old_library
+ fi
+ fi
+ esac
+ elif test no = "$hardcode_minus_L"; then
+ case $host in
+ *-*-sunos*) add_shlibpath=$dir ;;
+ esac
+ add_dir=-L$dir
+ add=-l$name
+ elif test no = "$hardcode_shlibpath_var"; then
+ add_shlibpath=$dir
+ add=-l$name
+ else
+ lib_linked=no
+ fi
+ ;;
+ relink)
+ if test yes = "$hardcode_direct" &&
+ test no = "$hardcode_direct_absolute"; then
+ add=$dir/$linklib
+ elif test yes = "$hardcode_minus_L"; then
+ add_dir=-L$absdir
+ # Try looking first in the location we're being installed to.
+ if test -n "$inst_prefix_dir"; then
+ case $libdir in
+ [\\/]*)
+ func_append add_dir " -L$inst_prefix_dir$libdir"
+ ;;
+ esac
+ fi
+ add=-l$name
+ elif test yes = "$hardcode_shlibpath_var"; then
+ add_shlibpath=$dir
+ add=-l$name
+ else
+ lib_linked=no
+ fi
+ ;;
+ *) lib_linked=no ;;
+ esac
+
+ if test yes != "$lib_linked"; then
+ func_fatal_configuration "unsupported hardcode properties"
+ fi
+
+ if test -n "$add_shlibpath"; then
+ case :$compile_shlibpath: in
+ *":$add_shlibpath:"*) ;;
+ *) func_append compile_shlibpath "$add_shlibpath:" ;;
+ esac
+ fi
+ if test prog = "$linkmode"; then
+ test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
+ test -n "$add" && compile_deplibs="$add $compile_deplibs"
+ else
+ test -n "$add_dir" && deplibs="$add_dir $deplibs"
+ test -n "$add" && deplibs="$add $deplibs"
+ if test yes != "$hardcode_direct" &&
+ test yes != "$hardcode_minus_L" &&
+ test yes = "$hardcode_shlibpath_var"; then
+ case :$finalize_shlibpath: in
+ *":$libdir:"*) ;;
+ *) func_append finalize_shlibpath "$libdir:" ;;
+ esac
+ fi
+ fi
+ fi
+
+ if test prog = "$linkmode" || test relink = "$opt_mode"; then
+ add_shlibpath=
+ add_dir=
+ add=
+ # Finalize command for both is simple: just hardcode it.
+ if test yes = "$hardcode_direct" &&
+ test no = "$hardcode_direct_absolute"; then
+ add=$libdir/$linklib
+ elif test yes = "$hardcode_minus_L"; then
+ add_dir=-L$libdir
+ add=-l$name
+ elif test yes = "$hardcode_shlibpath_var"; then
+ case :$finalize_shlibpath: in
+ *":$libdir:"*) ;;
+ *) func_append finalize_shlibpath "$libdir:" ;;
+ esac
+ add=-l$name
+ elif test yes = "$hardcode_automatic"; then
+ if test -n "$inst_prefix_dir" &&
+ test -f "$inst_prefix_dir$libdir/$linklib"; then
+ add=$inst_prefix_dir$libdir/$linklib
+ else
+ add=$libdir/$linklib
+ fi
+ else
+ # We cannot seem to hardcode it, guess we'll fake it.
+ add_dir=-L$libdir
+ # Try looking first in the location we're being installed to.
+ if test -n "$inst_prefix_dir"; then
+ case $libdir in
+ [\\/]*)
+ func_append add_dir " -L$inst_prefix_dir$libdir"
+ ;;
+ esac
+ fi
+ add=-l$name
+ fi
+
+ if test prog = "$linkmode"; then
+ test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
+ test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
+ else
+ test -n "$add_dir" && deplibs="$add_dir $deplibs"
+ test -n "$add" && deplibs="$add $deplibs"
+ fi
+ fi
+ elif test prog = "$linkmode"; then
+ # Here we assume that one of hardcode_direct or hardcode_minus_L
+ # is not unsupported. This is valid on all known static and
+ # shared platforms.
+ if test unsupported != "$hardcode_direct"; then
+ test -n "$old_library" && linklib=$old_library
+ compile_deplibs="$dir/$linklib $compile_deplibs"
+ finalize_deplibs="$dir/$linklib $finalize_deplibs"
+ else
+ compile_deplibs="-l$name -L$dir $compile_deplibs"
+ finalize_deplibs="-l$name -L$dir $finalize_deplibs"
+ fi
+ elif test yes = "$build_libtool_libs"; then
+ # Not a shared library
+ if test pass_all != "$deplibs_check_method"; then
+ # We're trying link a shared library against a static one
+ # but the system doesn't support it.
+
+ # Just print a warning and add the library to dependency_libs so
+ # that the program can be linked against the static library.
+ echo
+ $ECHO "*** Warning: This system cannot link to static lib archive $lib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have."
+ if test yes = "$module"; then
+ echo "*** But as you try to build a module library, libtool will still create "
+ echo "*** a static module, that should work as long as the dlopening application"
+ echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
+ if test -z "$global_symbol_pipe"; then
+ echo
+ echo "*** However, this would only work if libtool was able to extract symbol"
+ echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
+ echo "*** not find such a program. So, this module is probably useless."
+ echo "*** 'nm' from GNU binutils and a full rebuild may help."
+ fi
+ if test no = "$build_old_libs"; then
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ fi
+ else
+ deplibs="$dir/$old_library $deplibs"
+ link_static=yes
+ fi
+ fi # link shared/static library?
+
+ if test lib = "$linkmode"; then
+ if test -n "$dependency_libs" &&
+ { test yes != "$hardcode_into_libs" ||
+ test yes = "$build_old_libs" ||
+ test yes = "$link_static"; }; then
+ # Extract -R from dependency_libs
+ temp_deplibs=
+ for libdir in $dependency_libs; do
+ case $libdir in
+ -R*) func_stripname '-R' '' "$libdir"
+ temp_xrpath=$func_stripname_result
+ case " $xrpath " in
+ *" $temp_xrpath "*) ;;
+ *) func_append xrpath " $temp_xrpath";;
+ esac;;
+ *) func_append temp_deplibs " $libdir";;
+ esac
+ done
+ dependency_libs=$temp_deplibs
+ fi
+
+ func_append newlib_search_path " $absdir"
+ # Link against this library
+ test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
+ # ... and its dependency_libs
+ tmp_libs=
+ for deplib in $dependency_libs; do
+ newdependency_libs="$deplib $newdependency_libs"
+ case $deplib in
+ -L*) func_stripname '-L' '' "$deplib"
+ func_resolve_sysroot "$func_stripname_result";;
+ *) func_resolve_sysroot "$deplib" ;;
+ esac
+ if $opt_preserve_dup_deps; then
+ case "$tmp_libs " in
+ *" $func_resolve_sysroot_result "*)
+ func_append specialdeplibs " $func_resolve_sysroot_result" ;;
+ esac
+ fi
+ func_append tmp_libs " $func_resolve_sysroot_result"
+ done
+
+ if test no != "$link_all_deplibs"; then
+ # Add the search paths of all dependency libraries
+ for deplib in $dependency_libs; do
+ path=
+ case $deplib in
+ -L*) path=$deplib ;;
+ *.la)
+ func_resolve_sysroot "$deplib"
+ deplib=$func_resolve_sysroot_result
+ func_dirname "$deplib" "" "."
+ dir=$func_dirname_result
+ # We need an absolute path.
+ case $dir in
+ [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;;
+ *)
+ absdir=`cd "$dir" && pwd`
+ if test -z "$absdir"; then
+ func_warning "cannot determine absolute directory name of '$dir'"
+ absdir=$dir
+ fi
+ ;;
+ esac
+ if $GREP "^installed=no" $deplib > /dev/null; then
+ case $host in
+ *-*-darwin*)
+ depdepl=
+ eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+ if test -n "$deplibrary_names"; then
+ for tmp in $deplibrary_names; do
+ depdepl=$tmp
+ done
+ if test -f "$absdir/$objdir/$depdepl"; then
+ depdepl=$absdir/$objdir/$depdepl
+ darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
+ if test -z "$darwin_install_name"; then
+ darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
+ fi
+ func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl"
+ func_append linker_flags " -dylib_file $darwin_install_name:$depdepl"
+ path=
+ fi
+ fi
+ ;;
+ *)
+ path=-L$absdir/$objdir
+ ;;
+ esac
+ else
+ eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
+ test -z "$libdir" && \
+ func_fatal_error "'$deplib' is not a valid libtool archive"
+ test "$absdir" != "$libdir" && \
+ func_warning "'$deplib' seems to be moved"
+
+ path=-L$absdir
+ fi
+ ;;
+ esac
+ case " $deplibs " in
+ *" $path "*) ;;
+ *) deplibs="$path $deplibs" ;;
+ esac
+ done
+ fi # link_all_deplibs != no
+ fi # linkmode = lib
+ done # for deplib in $libs
+ if test link = "$pass"; then
+ if test prog = "$linkmode"; then
+ compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
+ finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
+ else
+ compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ fi
+ fi
+ dependency_libs=$newdependency_libs
+ if test dlpreopen = "$pass"; then
+ # Link the dlpreopened libraries before other libraries
+ for deplib in $save_deplibs; do
+ deplibs="$deplib $deplibs"
+ done
+ fi
+ if test dlopen != "$pass"; then
+ test conv = "$pass" || {
+ # Make sure lib_search_path contains only unique directories.
+ lib_search_path=
+ for dir in $newlib_search_path; do
+ case "$lib_search_path " in
+ *" $dir "*) ;;
+ *) func_append lib_search_path " $dir" ;;
+ esac
+ done
+ newlib_search_path=
+ }
+
+ if test prog,link = "$linkmode,$pass"; then
+ vars="compile_deplibs finalize_deplibs"
+ else
+ vars=deplibs
+ fi
+ for var in $vars dependency_libs; do
+ # Add libraries to $var in reverse order
+ eval tmp_libs=\"\$$var\"
+ new_libs=
+ for deplib in $tmp_libs; do
+ # FIXME: Pedantically, this is the right thing to do, so
+ # that some nasty dependency loop isn't accidentally
+ # broken:
+ #new_libs="$deplib $new_libs"
+ # Pragmatically, this seems to cause very few problems in
+ # practice:
+ case $deplib in
+ -L*) new_libs="$deplib $new_libs" ;;
+ -R*) ;;
+ *)
+ # And here is the reason: when a library appears more
+ # than once as an explicit dependence of a library, or
+ # is implicitly linked in more than once by the
+ # compiler, it is considered special, and multiple
+ # occurrences thereof are not removed. Compare this
+ # with having the same library being listed as a
+ # dependency of multiple other libraries: in this case,
+ # we know (pedantically, we assume) the library does not
+ # need to be listed more than once, so we keep only the
+ # last copy. This is not always right, but it is rare
+ # enough that we require users that really mean to play
+ # such unportable linking tricks to link the library
+ # using -Wl,-lname, so that libtool does not consider it
+ # for duplicate removal.
+ case " $specialdeplibs " in
+ *" $deplib "*) new_libs="$deplib $new_libs" ;;
+ *)
+ case " $new_libs " in
+ *" $deplib "*) ;;
+ *) new_libs="$deplib $new_libs" ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+ done
+ tmp_libs=
+ for deplib in $new_libs; do
+ case $deplib in
+ -L*)
+ case " $tmp_libs " in
+ *" $deplib "*) ;;
+ *) func_append tmp_libs " $deplib" ;;
+ esac
+ ;;
+ *) func_append tmp_libs " $deplib" ;;
+ esac
+ done
+ eval $var=\"$tmp_libs\"
+ done # for var
+ fi
+
+ # Add Sun CC postdeps if required:
+ test CXX = "$tagname" && {
+ case $host_os in
+ linux*)
+ case `$CC -V 2>&1 | $SED 5q` in
+ *Sun\ C*) # Sun C++ 5.9
+ func_suncc_cstd_abi
+
+ if test no != "$suncc_use_cstd_abi"; then
+ func_append postdeps ' -library=Cstd -library=Crun'
+ fi
+ ;;
+ esac
+ ;;
+
+ solaris*)
+ func_cc_basename "$CC"
+ case $func_cc_basename_result in
+ CC* | sunCC*)
+ func_suncc_cstd_abi
+
+ if test no != "$suncc_use_cstd_abi"; then
+ func_append postdeps ' -library=Cstd -library=Crun'
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ }
+
+ # Last step: remove runtime libs from dependency_libs
+ # (they stay in deplibs)
+ tmp_libs=
+ for i in $dependency_libs; do
+ case " $predeps $postdeps $compiler_lib_search_path " in
+ *" $i "*)
+ i=
+ ;;
+ esac
+ if test -n "$i"; then
+ func_append tmp_libs " $i"
+ fi
+ done
+ dependency_libs=$tmp_libs
+ done # for pass
+ if test prog = "$linkmode"; then
+ dlfiles=$newdlfiles
+ fi
+ if test prog = "$linkmode" || test lib = "$linkmode"; then
+ dlprefiles=$newdlprefiles
+ fi
+
+ case $linkmode in
+ oldlib)
+ if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
+ func_warning "'-dlopen' is ignored for archives"
+ fi
+
+ case " $deplibs" in
+ *\ -l* | *\ -L*)
+ func_warning "'-l' and '-L' are ignored for archives" ;;
+ esac
+
+ test -n "$rpath" && \
+ func_warning "'-rpath' is ignored for archives"
+
+ test -n "$xrpath" && \
+ func_warning "'-R' is ignored for archives"
+
+ test -n "$vinfo" && \
+ func_warning "'-version-info/-version-number' is ignored for archives"
+
+ test -n "$release" && \
+ func_warning "'-release' is ignored for archives"
+
+ test -n "$export_symbols$export_symbols_regex" && \
+ func_warning "'-export-symbols' is ignored for archives"
+
+ # Now set the variables for building old libraries.
+ build_libtool_libs=no
+ oldlibs=$output
+ func_append objs "$old_deplibs"
+ ;;
+
+ lib)
+ # Make sure we only generate libraries of the form 'libNAME.la'.
+ case $outputname in
+ lib*)
+ func_stripname 'lib' '.la' "$outputname"
+ name=$func_stripname_result
+ eval shared_ext=\"$shrext_cmds\"
+ eval libname=\"$libname_spec\"
+ ;;
+ *)
+ test no = "$module" \
+ && func_fatal_help "libtool library '$output' must begin with 'lib'"
+
+ if test no != "$need_lib_prefix"; then
+ # Add the "lib" prefix for modules if required
+ func_stripname '' '.la' "$outputname"
+ name=$func_stripname_result
+ eval shared_ext=\"$shrext_cmds\"
+ eval libname=\"$libname_spec\"
+ else
+ func_stripname '' '.la' "$outputname"
+ libname=$func_stripname_result
+ fi
+ ;;
+ esac
+
+ if test -n "$objs"; then
+ if test pass_all != "$deplibs_check_method"; then
+ func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs"
+ else
+ echo
+ $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
+ $ECHO "*** objects $objs is not portable!"
+ func_append libobjs " $objs"
+ fi
+ fi
+
+ test no = "$dlself" \
+ || func_warning "'-dlopen self' is ignored for libtool libraries"
+
+ set dummy $rpath
+ shift
+ test 1 -lt "$#" \
+ && func_warning "ignoring multiple '-rpath's for a libtool library"
+
+ install_libdir=$1
+
+ oldlibs=
+ if test -z "$rpath"; then
+ if test yes = "$build_libtool_libs"; then
+ # Building a libtool convenience library.
+ # Some compilers have problems with a '.al' extension so
+ # convenience libraries should have the same extension an
+ # archive normally would.
+ oldlibs="$output_objdir/$libname.$libext $oldlibs"
+ build_libtool_libs=convenience
+ build_old_libs=yes
+ fi
+
+ test -n "$vinfo" && \
+ func_warning "'-version-info/-version-number' is ignored for convenience libraries"
+
+ test -n "$release" && \
+ func_warning "'-release' is ignored for convenience libraries"
+ else
+
+ # Parse the version information argument.
+ save_ifs=$IFS; IFS=:
+ set dummy $vinfo 0 0 0
+ shift
+ IFS=$save_ifs
+
+ test -n "$7" && \
+ func_fatal_help "too many parameters to '-version-info'"
+
+ # convert absolute version numbers to libtool ages
+ # this retains compatibility with .la files and attempts
+ # to make the code below a bit more comprehensible
+
+ case $vinfo_number in
+ yes)
+ number_major=$1
+ number_minor=$2
+ number_revision=$3
+ #
+ # There are really only two kinds -- those that
+ # use the current revision as the major version
+ # and those that subtract age and use age as
+ # a minor version. But, then there is irix
+ # that has an extra 1 added just for fun
+ #
+ case $version_type in
+ # correct linux to gnu/linux during the next big refactor
+ darwin|freebsd-elf|linux|midnightbsd-elf|osf|windows|none)
+ func_arith $number_major + $number_minor
+ current=$func_arith_result
+ age=$number_minor
+ revision=$number_revision
+ ;;
+ freebsd-aout|qnx|sunos)
+ current=$number_major
+ revision=$number_minor
+ age=0
+ ;;
+ irix|nonstopux)
+ func_arith $number_major + $number_minor
+ current=$func_arith_result
+ age=$number_minor
+ revision=$number_minor
+ lt_irix_increment=no
+ ;;
+ *)
+ func_fatal_configuration "$modename: unknown library version type '$version_type'"
+ ;;
+ esac
+ ;;
+ no)
+ current=$1
+ revision=$2
+ age=$3
+ ;;
+ esac
+
+ # Check that each of the things are valid numbers.
+ case $current in
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+ func_error "CURRENT '$current' must be a nonnegative integer"
+ func_fatal_error "'$vinfo' is not valid version information"
+ ;;
+ esac
+
+ case $revision in
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+ func_error "REVISION '$revision' must be a nonnegative integer"
+ func_fatal_error "'$vinfo' is not valid version information"
+ ;;
+ esac
+
+ case $age in
+ 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
+ *)
+ func_error "AGE '$age' must be a nonnegative integer"
+ func_fatal_error "'$vinfo' is not valid version information"
+ ;;
+ esac
+
+ if test "$age" -gt "$current"; then
+ func_error "AGE '$age' is greater than the current interface number '$current'"
+ func_fatal_error "'$vinfo' is not valid version information"
+ fi
+
+ # Calculate the version variables.
+ major=
+ versuffix=
+ verstring=
+ case $version_type in
+ none) ;;
+
+ darwin)
+ # Like Linux, but with the current version available in
+ # verstring for coding it into the library header
+ func_arith $current - $age
+ major=.$func_arith_result
+ versuffix=$major.$age.$revision
+ # Darwin ld doesn't like 0 for these options...
+ func_arith $current + 1
+ minor_current=$func_arith_result
+ xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+ # On Darwin other compilers
+ case $CC in
+ nagfor*)
+ verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision"
+ ;;
+ *)
+ verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
+ ;;
+ esac
+ ;;
+
+ freebsd-aout)
+ major=.$current
+ versuffix=.$current.$revision
+ ;;
+
+ freebsd-elf | midnightbsd-elf)
+ func_arith $current - $age
+ major=.$func_arith_result
+ versuffix=$major.$age.$revision
+ ;;
+
+ irix | nonstopux)
+ if test no = "$lt_irix_increment"; then
+ func_arith $current - $age
+ else
+ func_arith $current - $age + 1
+ fi
+ major=$func_arith_result
+
+ case $version_type in
+ nonstopux) verstring_prefix=nonstopux ;;
+ *) verstring_prefix=sgi ;;
+ esac
+ verstring=$verstring_prefix$major.$revision
+
+ # Add in all the interfaces that we are compatible with.
+ loop=$revision
+ while test 0 -ne "$loop"; do
+ func_arith $revision - $loop
+ iface=$func_arith_result
+ func_arith $loop - 1
+ loop=$func_arith_result
+ verstring=$verstring_prefix$major.$iface:$verstring
+ done
+
+ # Before this point, $major must not contain '.'.
+ major=.$major
+ versuffix=$major.$revision
+ ;;
+
+ linux) # correct to gnu/linux during the next big refactor
+ func_arith $current - $age
+ major=.$func_arith_result
+ versuffix=$major.$age.$revision
+ ;;
+
+ osf)
+ func_arith $current - $age
+ major=.$func_arith_result
+ versuffix=.$current.$age.$revision
+ verstring=$current.$age.$revision
+
+ # Add in all the interfaces that we are compatible with.
+ loop=$age
+ while test 0 -ne "$loop"; do
+ func_arith $current - $loop
+ iface=$func_arith_result
+ func_arith $loop - 1
+ loop=$func_arith_result
+ verstring=$verstring:$iface.0
+ done
+
+ # Make executables depend on our current version.
+ func_append verstring ":$current.0"
+ ;;
+
+ qnx)
+ major=.$current
+ versuffix=.$current
+ ;;
+
+ sco)
+ major=.$current
+ versuffix=.$current
+ ;;
+
+ sunos)
+ major=.$current
+ versuffix=.$current.$revision
+ ;;
+
+ windows)
+ # Use '-' rather than '.', since we only want one
+ # extension on DOS 8.3 file systems.
+ func_arith $current - $age
+ major=$func_arith_result
+ versuffix=-$major
+ ;;
+
+ *)
+ func_fatal_configuration "unknown library version type '$version_type'"
+ ;;
+ esac
+
+ # Clear the version info if we defaulted, and they specified a release.
+ if test -z "$vinfo" && test -n "$release"; then
+ major=
+ case $version_type in
+ darwin)
+ # we can't check for "0.0" in archive_cmds due to quoting
+ # problems, so we reset it completely
+ verstring=
+ ;;
+ *)
+ verstring=0.0
+ ;;
+ esac
+ if test no = "$need_version"; then
+ versuffix=
+ else
+ versuffix=.0.0
+ fi
+ fi
+
+ # Remove version info from name if versioning should be avoided
+ if test yes,no = "$avoid_version,$need_version"; then
+ major=
+ versuffix=
+ verstring=
+ fi
+
+ # Check to see if the archive will have undefined symbols.
+ if test yes = "$allow_undefined"; then
+ if test unsupported = "$allow_undefined_flag"; then
+ if test yes = "$build_old_libs"; then
+ func_warning "undefined symbols not allowed in $host shared libraries; building static only"
+ build_libtool_libs=no
+ else
+ func_fatal_error "can't build $host shared library unless -no-undefined is specified"
+ fi
+ fi
+ else
+ # Don't allow undefined symbols.
+ allow_undefined_flag=$no_undefined_flag
+ fi
+
+ fi
+
+ func_generate_dlsyms "$libname" "$libname" :
+ func_append libobjs " $symfileobj"
+ test " " = "$libobjs" && libobjs=
+
+ if test relink != "$opt_mode"; then
+ # Remove our outputs, but don't remove object files since they
+ # may have been created when compiling PIC objects.
+ removelist=
+ tempremovelist=`$ECHO "$output_objdir/*"`
+ for p in $tempremovelist; do
+ case $p in
+ *.$objext | *.gcno)
+ ;;
+ $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*)
+ if test -n "$precious_files_regex"; then
+ if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
+ then
+ continue
+ fi
+ fi
+ func_append removelist " $p"
+ ;;
+ *) ;;
+ esac
+ done
+ test -n "$removelist" && \
+ func_show_eval "${RM}r \$removelist"
+ fi
+
+ # Now set the variables for building old libraries.
+ if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then
+ func_append oldlibs " $output_objdir/$libname.$libext"
+
+ # Transform .lo files to .o files.
+ oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP`
+ fi
+
+ # Eliminate all temporary directories.
+ #for path in $notinst_path; do
+ # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
+ # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
+ # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
+ #done
+
+ if test -n "$xrpath"; then
+ # If the user specified any rpath flags, then add them.
+ temp_xrpath=
+ for libdir in $xrpath; do
+ func_replace_sysroot "$libdir"
+ func_append temp_xrpath " -R$func_replace_sysroot_result"
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) func_append finalize_rpath " $libdir" ;;
+ esac
+ done
+ if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then
+ dependency_libs="$temp_xrpath $dependency_libs"
+ fi
+ fi
+
+ # Make sure dlfiles contains only unique files that won't be dlpreopened
+ old_dlfiles=$dlfiles
+ dlfiles=
+ for lib in $old_dlfiles; do
+ case " $dlprefiles $dlfiles " in
+ *" $lib "*) ;;
+ *) func_append dlfiles " $lib" ;;
+ esac
+ done
+
+ # Make sure dlprefiles contains only unique files
+ old_dlprefiles=$dlprefiles
+ dlprefiles=
+ for lib in $old_dlprefiles; do
+ case "$dlprefiles " in
+ *" $lib "*) ;;
+ *) func_append dlprefiles " $lib" ;;
+ esac
+ done
+
+ if test yes = "$build_libtool_libs"; then
+ if test -n "$rpath"; then
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
+ # these systems don't actually have a c library (as such)!
+ ;;
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # Rhapsody C library is in the System framework
+ func_append deplibs " System.ltframework"
+ ;;
+ *-*-netbsd*)
+ # Don't link with libc until the a.out ld.so is fixed.
+ ;;
+ *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-midnightbsd*)
+ # Do not include libc due to us having libc/libc_r.
+ ;;
+ *-*-sco3.2v5* | *-*-sco5v6*)
+ # Causes problems with __ctype
+ ;;
+ *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
+ # Compiler inserts libc in the correct place for threads to work
+ ;;
+ *)
+ # Add libc to deplibs on all other systems if necessary.
+ if test yes = "$build_libtool_need_lc"; then
+ func_append deplibs " -lc"
+ fi
+ ;;
+ esac
+ fi
+
+ # Transform deplibs into only deplibs that can be linked in shared.
+ name_save=$name
+ libname_save=$libname
+ release_save=$release
+ versuffix_save=$versuffix
+ major_save=$major
+ # I'm not sure if I'm treating the release correctly. I think
+ # release should show up in the -l (ie -lgmp5) so we don't want to
+ # add it in twice. Is that correct?
+ release=
+ versuffix=
+ major=
+ newdeplibs=
+ droppeddeps=no
+ case $deplibs_check_method in
+ pass_all)
+ # Don't check for shared/static. Everything works.
+ # This might be a little naive. We might want to check
+ # whether the library exists or not. But this is on
+ # osf3 & osf4 and I'm not really sure... Just
+ # implementing what was already the behavior.
+ newdeplibs=$deplibs
+ ;;
+ test_compile)
+ # This code stresses the "libraries are programs" paradigm to its
+ # limits. Maybe even breaks it. We compile a program, linking it
+ # against the deplibs as a proxy for the library. Then we can check
+ # whether they linked in statically or dynamically with ldd.
+ $opt_dry_run || $RM conftest.c
+ cat > conftest.c <<EOF
+ int main() { return 0; }
+EOF
+ $opt_dry_run || $RM conftest
+ if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
+ ldd_output=`ldd conftest`
+ for i in $deplibs; do
+ case $i in
+ -l*)
+ func_stripname -l '' "$i"
+ name=$func_stripname_result
+ if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+ case " $predeps $postdeps " in
+ *" $i "*)
+ func_append newdeplibs " $i"
+ i=
+ ;;
+ esac
+ fi
+ if test -n "$i"; then
+ libname=`eval "\\$ECHO \"$libname_spec\""`
+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+ set dummy $deplib_matches; shift
+ deplib_match=$1
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
+ func_append newdeplibs " $i"
+ else
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which I believe you do not have"
+ echo "*** because a test_compile did reveal that the linker did not use it for"
+ echo "*** its dynamic dependency list that programs get resolved with at runtime."
+ fi
+ fi
+ ;;
+ *)
+ func_append newdeplibs " $i"
+ ;;
+ esac
+ done
+ else
+ # Error occurred in the first compile. Let's try to salvage
+ # the situation: Compile a separate program for each library.
+ for i in $deplibs; do
+ case $i in
+ -l*)
+ func_stripname -l '' "$i"
+ name=$func_stripname_result
+ $opt_dry_run || $RM conftest
+ if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
+ ldd_output=`ldd conftest`
+ if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+ case " $predeps $postdeps " in
+ *" $i "*)
+ func_append newdeplibs " $i"
+ i=
+ ;;
+ esac
+ fi
+ if test -n "$i"; then
+ libname=`eval "\\$ECHO \"$libname_spec\""`
+ deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
+ set dummy $deplib_matches; shift
+ deplib_match=$1
+ if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0; then
+ func_append newdeplibs " $i"
+ else
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning: dynamic linker does not accept needed library $i."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have"
+ echo "*** because a test_compile did reveal that the linker did not use this one"
+ echo "*** as a dynamic dependency that programs can get resolved with at runtime."
+ fi
+ fi
+ else
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning! Library $i is needed by this library but I was not able to"
+ echo "*** make it link in! You will probably need to install it or some"
+ echo "*** library that it depends on before this library will be fully"
+ echo "*** functional. Installing it before continuing would be even better."
+ fi
+ ;;
+ *)
+ func_append newdeplibs " $i"
+ ;;
+ esac
+ done
+ fi
+ ;;
+ file_magic*)
+ set dummy $deplibs_check_method; shift
+ file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+ for a_deplib in $deplibs; do
+ case $a_deplib in
+ -l*)
+ func_stripname -l '' "$a_deplib"
+ name=$func_stripname_result
+ if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+ case " $predeps $postdeps " in
+ *" $a_deplib "*)
+ func_append newdeplibs " $a_deplib"
+ a_deplib=
+ ;;
+ esac
+ fi
+ if test -n "$a_deplib"; then
+ libname=`eval "\\$ECHO \"$libname_spec\""`
+ if test -n "$file_magic_glob"; then
+ libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
+ else
+ libnameglob=$libname
+ fi
+ test yes = "$want_nocaseglob" && nocaseglob=`shopt -p nocaseglob`
+ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ if test yes = "$want_nocaseglob"; then
+ shopt -s nocaseglob
+ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+ $nocaseglob
+ else
+ potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
+ fi
+ for potent_lib in $potential_libs; do
+ # Follow soft links.
+ if ls -lLd "$potent_lib" 2>/dev/null |
+ $GREP " -> " >/dev/null; then
+ continue
+ fi
+ # The statement above tries to avoid entering an
+ # endless loop below, in case of cyclic links.
+ # We might still enter an endless loop, since a link
+ # loop can be closed while we follow links,
+ # but so what?
+ potlib=$potent_lib
+ while test -h "$potlib" 2>/dev/null; do
+ potliblink=`ls -ld $potlib | $SED 's/.* -> //'`
+ case $potliblink in
+ [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;;
+ *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";;
+ esac
+ done
+ if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
+ $SED -e 10q |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ func_append newdeplibs " $a_deplib"
+ a_deplib=
+ break 2
+ fi
+ done
+ done
+ fi
+ if test -n "$a_deplib"; then
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have"
+ echo "*** because I did check the linker path looking for a file starting"
+ if test -z "$potlib"; then
+ $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
+ else
+ $ECHO "*** with $libname and none of the candidates passed a file format test"
+ $ECHO "*** using a file magic. Last file checked: $potlib"
+ fi
+ fi
+ ;;
+ *)
+ # Add a -L argument.
+ func_append newdeplibs " $a_deplib"
+ ;;
+ esac
+ done # Gone through all deplibs.
+ ;;
+ match_pattern*)
+ set dummy $deplibs_check_method; shift
+ match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
+ for a_deplib in $deplibs; do
+ case $a_deplib in
+ -l*)
+ func_stripname -l '' "$a_deplib"
+ name=$func_stripname_result
+ if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+ case " $predeps $postdeps " in
+ *" $a_deplib "*)
+ func_append newdeplibs " $a_deplib"
+ a_deplib=
+ ;;
+ esac
+ fi
+ if test -n "$a_deplib"; then
+ libname=`eval "\\$ECHO \"$libname_spec\""`
+ for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
+ for potent_lib in $potential_libs; do
+ potlib=$potent_lib # see symlink-check above in file_magic test
+ if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
+ $EGREP "$match_pattern_regex" > /dev/null; then
+ func_append newdeplibs " $a_deplib"
+ a_deplib=
+ break 2
+ fi
+ done
+ done
+ fi
+ if test -n "$a_deplib"; then
+ droppeddeps=yes
+ echo
+ $ECHO "*** Warning: linker path does not have real file for library $a_deplib."
+ echo "*** I have the capability to make that library automatically link in when"
+ echo "*** you link to this library. But I can only do this if you have a"
+ echo "*** shared version of the library, which you do not appear to have"
+ echo "*** because I did check the linker path looking for a file starting"
+ if test -z "$potlib"; then
+ $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
+ else
+ $ECHO "*** with $libname and none of the candidates passed a file format test"
+ $ECHO "*** using a regex pattern. Last file checked: $potlib"
+ fi
+ fi
+ ;;
+ *)
+ # Add a -L argument.
+ func_append newdeplibs " $a_deplib"
+ ;;
+ esac
+ done # Gone through all deplibs.
+ ;;
+ none | unknown | *)
+ newdeplibs=
+ tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
+ if test yes = "$allow_libtool_libs_with_static_runtimes"; then
+ for i in $predeps $postdeps; do
+ # can't use Xsed below, because $i might contain '/'
+ tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"`
+ done
+ fi
+ case $tmp_deplibs in
+ *[!\ \ ]*)
+ echo
+ if test none = "$deplibs_check_method"; then
+ echo "*** Warning: inter-library dependencies are not supported in this platform."
+ else
+ echo "*** Warning: inter-library dependencies are not known to be supported."
+ fi
+ echo "*** All declared inter-library dependencies are being dropped."
+ droppeddeps=yes
+ ;;
+ esac
+ ;;
+ esac
+ versuffix=$versuffix_save
+ major=$major_save
+ release=$release_save
+ libname=$libname_save
+ name=$name_save
+
+ case $host in
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # On Rhapsody replace the C library with the System framework
+ newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
+ ;;
+ esac
+
+ if test yes = "$droppeddeps"; then
+ if test yes = "$module"; then
+ echo
+ echo "*** Warning: libtool could not satisfy all declared inter-library"
+ $ECHO "*** dependencies of module $libname. Therefore, libtool will create"
+ echo "*** a static module, that should work as long as the dlopening"
+ echo "*** application is linked with the -dlopen flag."
+ if test -z "$global_symbol_pipe"; then
+ echo
+ echo "*** However, this would only work if libtool was able to extract symbol"
+ echo "*** lists from a program, using 'nm' or equivalent, but libtool could"
+ echo "*** not find such a program. So, this module is probably useless."
+ echo "*** 'nm' from GNU binutils and a full rebuild may help."
+ fi
+ if test no = "$build_old_libs"; then
+ oldlibs=$output_objdir/$libname.$libext
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ else
+ echo "*** The inter-library dependencies that have been dropped here will be"
+ echo "*** automatically added whenever a program is linked with this library"
+ echo "*** or is declared to -dlopen it."
+
+ if test no = "$allow_undefined"; then
+ echo
+ echo "*** Since this library must not contain undefined symbols,"
+ echo "*** because either the platform does not support them or"
+ echo "*** it was explicitly requested with -no-undefined,"
+ echo "*** libtool will only create a static version of it."
+ if test no = "$build_old_libs"; then
+ oldlibs=$output_objdir/$libname.$libext
+ build_libtool_libs=module
+ build_old_libs=yes
+ else
+ build_libtool_libs=no
+ fi
+ fi
+ fi
+ fi
+ # Done checking deplibs!
+ deplibs=$newdeplibs
+ fi
+ # Time to change all our "foo.ltframework" stuff back to "-framework foo"
+ case $host in
+ *-*-darwin*)
+ newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ ;;
+ esac
+
+ # move library search paths that coincide with paths to not yet
+ # installed libraries to the beginning of the library search list
+ new_libs=
+ for path in $notinst_path; do
+ case " $new_libs " in
+ *" -L$path/$objdir "*) ;;
+ *)
+ case " $deplibs " in
+ *" -L$path/$objdir "*)
+ func_append new_libs " -L$path/$objdir" ;;
+ esac
+ ;;
+ esac
+ done
+ for deplib in $deplibs; do
+ case $deplib in
+ -L*)
+ case " $new_libs " in
+ *" $deplib "*) ;;
+ *) func_append new_libs " $deplib" ;;
+ esac
+ ;;
+ *) func_append new_libs " $deplib" ;;
+ esac
+ done
+ deplibs=$new_libs
+
+ # All the library-specific variables (install_libdir is set above).
+ library_names=
+ old_library=
+ dlname=
+
+ # Test again, we may have decided not to build it any more
+ if test yes = "$build_libtool_libs"; then
+ # Remove $wl instances when linking with ld.
+ # FIXME: should test the right _cmds variable.
+ case $archive_cmds in
+ *\$LD\ *) wl= ;;
+ esac
+ if test yes = "$hardcode_into_libs"; then
+ # Hardcode the library paths
+ hardcode_libdirs=
+ dep_rpath=
+ rpath=$finalize_rpath
+ test relink = "$opt_mode" || rpath=$compile_rpath$rpath
+ for libdir in $rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ func_replace_sysroot "$libdir"
+ libdir=$func_replace_sysroot_result
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs=$libdir
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ func_append dep_rpath " $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$perm_rpath " in
+ *" $libdir "*) ;;
+ *) func_append perm_rpath " $libdir" ;;
+ esac
+ fi
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir=$hardcode_libdirs
+ eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
+ fi
+ if test -n "$runpath_var" && test -n "$perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $perm_rpath; do
+ func_append rpath "$dir:"
+ done
+ eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
+ fi
+ test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
+ fi
+
+ shlibpath=$finalize_shlibpath
+ test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath
+ if test -n "$shlibpath"; then
+ eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
+ fi
+
+ # Get the real and link names of the library.
+ eval shared_ext=\"$shrext_cmds\"
+ eval library_names=\"$library_names_spec\"
+ set dummy $library_names
+ shift
+ realname=$1
+ shift
+
+ if test -n "$soname_spec"; then
+ eval soname=\"$soname_spec\"
+ else
+ soname=$realname
+ fi
+ if test -z "$dlname"; then
+ dlname=$soname
+ fi
+
+ lib=$output_objdir/$realname
+ linknames=
+ for link
+ do
+ func_append linknames " $link"
+ done
+
+ # Use standard objects if they are pic
+ test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
+ test "X$libobjs" = "X " && libobjs=
+
+ delfiles=
+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
+ $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
+ export_symbols=$output_objdir/$libname.uexp
+ func_append delfiles " $export_symbols"
+ fi
+
+ orig_export_symbols=
+ case $host_os in
+ cygwin* | mingw* | cegcc*)
+ if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
+ # exporting using user supplied symfile
+ func_dll_def_p "$export_symbols" || {
+ # and it's NOT already a .def file. Must figure out
+ # which of the given symbols are data symbols and tag
+ # them as such. So, trigger use of export_symbols_cmds.
+ # export_symbols gets reassigned inside the "prepare
+ # the list of exported symbols" if statement, so the
+ # include_expsyms logic still works.
+ orig_export_symbols=$export_symbols
+ export_symbols=
+ always_export_symbols=yes
+ }
+ fi
+ ;;
+ esac
+
+ # Prepare the list of exported symbols
+ if test -z "$export_symbols"; then
+ if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then
+ func_verbose "generating symbol list for '$libname.la'"
+ export_symbols=$output_objdir/$libname.exp
+ $opt_dry_run || $RM $export_symbols
+ cmds=$export_symbols_cmds
+ save_ifs=$IFS; IFS='~'
+ for cmd1 in $cmds; do
+ IFS=$save_ifs
+ # Take the normal branch if the nm_file_list_spec branch
+ # doesn't work or if tool conversion is not needed.
+ case $nm_file_list_spec~$to_tool_file_cmd in
+ *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
+ try_normal_branch=yes
+ eval cmd=\"$cmd1\"
+ func_len " $cmd"
+ len=$func_len_result
+ ;;
+ *)
+ try_normal_branch=no
+ ;;
+ esac
+ if test yes = "$try_normal_branch" \
+ && { test "$len" -lt "$max_cmd_len" \
+ || test "$max_cmd_len" -le -1; }
+ then
+ func_show_eval "$cmd" 'exit $?'
+ skipped_export=false
+ elif test -n "$nm_file_list_spec"; then
+ func_basename "$output"
+ output_la=$func_basename_result
+ save_libobjs=$libobjs
+ save_output=$output
+ output=$output_objdir/$output_la.nm
+ func_to_tool_file "$output"
+ libobjs=$nm_file_list_spec$func_to_tool_file_result
+ func_append delfiles " $output"
+ func_verbose "creating $NM input file list: $output"
+ for obj in $save_libobjs; do
+ func_to_tool_file "$obj"
+ $ECHO "$func_to_tool_file_result"
+ done > "$output"
+ eval cmd=\"$cmd1\"
+ func_show_eval "$cmd" 'exit $?'
+ output=$save_output
+ libobjs=$save_libobjs
+ skipped_export=false
+ else
+ # The command line is too long to execute in one step.
+ func_verbose "using reloadable object file for export list..."
+ skipped_export=:
+ # Break out early, otherwise skipped_export may be
+ # set to false by a later but shorter cmd.
+ break
+ fi
+ done
+ IFS=$save_ifs
+ if test -n "$export_symbols_regex" && test : != "$skipped_export"; then
+ func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+ func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+ fi
+ fi
+ fi
+
+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
+ tmp_export_symbols=$export_symbols
+ test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols
+ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
+ fi
+
+ if test : != "$skipped_export" && test -n "$orig_export_symbols"; then
+ # The given exports_symbols file has to be filtered, so filter it.
+ func_verbose "filter symbol list for '$libname.la' to tag DATA exports"
+ # FIXME: $output_objdir/$libname.filter potentially contains lots of
+ # 's' commands, which not all seds can handle. GNU sed should be fine
+ # though. Also, the filter scales superlinearly with the number of
+ # global variables. join(1) would be nice here, but unfortunately
+ # isn't a blessed tool.
+ $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+ func_append delfiles " $export_symbols $output_objdir/$libname.filter"
+ export_symbols=$output_objdir/$libname.def
+ $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+ fi
+
+ tmp_deplibs=
+ for test_deplib in $deplibs; do
+ case " $convenience " in
+ *" $test_deplib "*) ;;
+ *)
+ func_append tmp_deplibs " $test_deplib"
+ ;;
+ esac
+ done
+ deplibs=$tmp_deplibs
+
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec" &&
+ test yes = "$compiler_needs_object" &&
+ test -z "$libobjs"; then
+ # extract the archives, so we have objects to list.
+ # TODO: could optimize this to just extract one archive.
+ whole_archive_flag_spec=
+ fi
+ if test -n "$whole_archive_flag_spec"; then
+ save_libobjs=$libobjs
+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+ test "X$libobjs" = "X " && libobjs=
+ else
+ gentop=$output_objdir/${outputname}x
+ func_append generated " $gentop"
+
+ func_extract_archives $gentop $convenience
+ func_append libobjs " $func_extract_archives_result"
+ test "X$libobjs" = "X " && libobjs=
+ fi
+ fi
+
+ if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then
+ eval flag=\"$thread_safe_flag_spec\"
+ func_append linker_flags " $flag"
+ fi
+
+ # Make a backup of the uninstalled library when relinking
+ if test relink = "$opt_mode"; then
+ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
+ fi
+
+ # Do each of the archive commands.
+ if test yes = "$module" && test -n "$module_cmds"; then
+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+ eval test_cmds=\"$module_expsym_cmds\"
+ cmds=$module_expsym_cmds
+ else
+ eval test_cmds=\"$module_cmds\"
+ cmds=$module_cmds
+ fi
+ else
+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+ eval test_cmds=\"$archive_expsym_cmds\"
+ cmds=$archive_expsym_cmds
+ else
+ eval test_cmds=\"$archive_cmds\"
+ cmds=$archive_cmds
+ fi
+ fi
+
+ if test : != "$skipped_export" &&
+ func_len " $test_cmds" &&
+ len=$func_len_result &&
+ test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+ :
+ else
+ # The command line is too long to link in one step, link piecewise
+ # or, if using GNU ld and skipped_export is not :, use a linker
+ # script.
+
+ # Save the value of $output and $libobjs because we want to
+ # use them later. If we have whole_archive_flag_spec, we
+ # want to use save_libobjs as it was before
+ # whole_archive_flag_spec was expanded, because we can't
+ # assume the linker understands whole_archive_flag_spec.
+ # This may have to be revisited, in case too many
+ # convenience libraries get linked in and end up exceeding
+ # the spec.
+ if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
+ save_libobjs=$libobjs
+ fi
+ save_output=$output
+ func_basename "$output"
+ output_la=$func_basename_result
+
+ # Clear the reloadable object creation command queue and
+ # initialize k to one.
+ test_cmds=
+ concat_cmds=
+ objlist=
+ last_robj=
+ k=1
+
+ if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then
+ output=$output_objdir/$output_la.lnkscript
+ func_verbose "creating GNU ld script: $output"
+ echo 'INPUT (' > $output
+ for obj in $save_libobjs
+ do
+ func_to_tool_file "$obj"
+ $ECHO "$func_to_tool_file_result" >> $output
+ done
+ echo ')' >> $output
+ func_append delfiles " $output"
+ func_to_tool_file "$output"
+ output=$func_to_tool_file_result
+ elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then
+ output=$output_objdir/$output_la.lnk
+ func_verbose "creating linker input file list: $output"
+ : > $output
+ set x $save_libobjs
+ shift
+ firstobj=
+ if test yes = "$compiler_needs_object"; then
+ firstobj="$1 "
+ shift
+ fi
+ for obj
+ do
+ func_to_tool_file "$obj"
+ $ECHO "$func_to_tool_file_result" >> $output
+ done
+ func_append delfiles " $output"
+ func_to_tool_file "$output"
+ output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
+ else
+ if test -n "$save_libobjs"; then
+ func_verbose "creating reloadable object files..."
+ output=$output_objdir/$output_la-$k.$objext
+ eval test_cmds=\"$reload_cmds\"
+ func_len " $test_cmds"
+ len0=$func_len_result
+ len=$len0
+
+ # Loop over the list of objects to be linked.
+ for obj in $save_libobjs
+ do
+ func_len " $obj"
+ func_arith $len + $func_len_result
+ len=$func_arith_result
+ if test -z "$objlist" ||
+ test "$len" -lt "$max_cmd_len"; then
+ func_append objlist " $obj"
+ else
+ # The command $test_cmds is almost too long, add a
+ # command to the queue.
+ if test 1 -eq "$k"; then
+ # The first file doesn't have a previous command to add.
+ reload_objs=$objlist
+ eval concat_cmds=\"$reload_cmds\"
+ else
+ # All subsequent reloadable object files will link in
+ # the last one created.
+ reload_objs="$objlist $last_robj"
+ eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
+ fi
+ last_robj=$output_objdir/$output_la-$k.$objext
+ func_arith $k + 1
+ k=$func_arith_result
+ output=$output_objdir/$output_la-$k.$objext
+ objlist=" $obj"
+ func_len " $last_robj"
+ func_arith $len0 + $func_len_result
+ len=$func_arith_result
+ fi
+ done
+ # Handle the remaining objects by creating one last
+ # reloadable object file. All subsequent reloadable object
+ # files will link in the last one created.
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+ reload_objs="$objlist $last_robj"
+ eval concat_cmds=\"\$concat_cmds$reload_cmds\"
+ if test -n "$last_robj"; then
+ eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
+ fi
+ func_append delfiles " $output"
+
+ else
+ output=
+ fi
+
+ ${skipped_export-false} && {
+ func_verbose "generating symbol list for '$libname.la'"
+ export_symbols=$output_objdir/$libname.exp
+ $opt_dry_run || $RM $export_symbols
+ libobjs=$output
+ # Append the command to create the export file.
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+ eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
+ if test -n "$last_robj"; then
+ eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
+ fi
+ }
+
+ test -n "$save_libobjs" &&
+ func_verbose "creating a temporary reloadable object file: $output"
+
+ # Loop through the commands generated above and execute them.
+ save_ifs=$IFS; IFS='~'
+ for cmd in $concat_cmds; do
+ IFS=$save_ifs
+ $opt_quiet || {
+ func_quote_arg expand,pretty "$cmd"
+ eval "func_echo $func_quote_arg_result"
+ }
+ $opt_dry_run || eval "$cmd" || {
+ lt_exit=$?
+
+ # Restore the uninstalled library and exit
+ if test relink = "$opt_mode"; then
+ ( cd "$output_objdir" && \
+ $RM "${realname}T" && \
+ $MV "${realname}U" "$realname" )
+ fi
+
+ exit $lt_exit
+ }
+ done
+ IFS=$save_ifs
+
+ if test -n "$export_symbols_regex" && ${skipped_export-false}; then
+ func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
+ func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
+ fi
+ fi
+
+ ${skipped_export-false} && {
+ if test -n "$export_symbols" && test -n "$include_expsyms"; then
+ tmp_export_symbols=$export_symbols
+ test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols
+ $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
+ fi
+
+ if test -n "$orig_export_symbols"; then
+ # The given exports_symbols file has to be filtered, so filter it.
+ func_verbose "filter symbol list for '$libname.la' to tag DATA exports"
+ # FIXME: $output_objdir/$libname.filter potentially contains lots of
+ # 's' commands, which not all seds can handle. GNU sed should be fine
+ # though. Also, the filter scales superlinearly with the number of
+ # global variables. join(1) would be nice here, but unfortunately
+ # isn't a blessed tool.
+ $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
+ func_append delfiles " $export_symbols $output_objdir/$libname.filter"
+ export_symbols=$output_objdir/$libname.def
+ $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
+ fi
+ }
+
+ libobjs=$output
+ # Restore the value of output.
+ output=$save_output
+
+ if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
+ eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
+ test "X$libobjs" = "X " && libobjs=
+ fi
+ # Expand the library linking commands again to reset the
+ # value of $libobjs for piecewise linking.
+
+ # Do each of the archive commands.
+ if test yes = "$module" && test -n "$module_cmds"; then
+ if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
+ cmds=$module_expsym_cmds
+ else
+ cmds=$module_cmds
+ fi
+ else
+ if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
+ cmds=$archive_expsym_cmds
+ else
+ cmds=$archive_cmds
+ fi
+ fi
+ fi
+
+ if test -n "$delfiles"; then
+ # Append the command to remove temporary files to $cmds.
+ eval cmds=\"\$cmds~\$RM $delfiles\"
+ fi
+
+ # Add any objects from preloaded convenience libraries
+ if test -n "$dlprefiles"; then
+ gentop=$output_objdir/${outputname}x
+ func_append generated " $gentop"
+
+ func_extract_archives $gentop $dlprefiles
+ func_append libobjs " $func_extract_archives_result"
+ test "X$libobjs" = "X " && libobjs=
+ fi
+
+ save_ifs=$IFS; IFS='~'
+ for cmd in $cmds; do
+ IFS=$sp$nl
+ eval cmd=\"$cmd\"
+ IFS=$save_ifs
+ $opt_quiet || {
+ func_quote_arg expand,pretty "$cmd"
+ eval "func_echo $func_quote_arg_result"
+ }
+ $opt_dry_run || eval "$cmd" || {
+ lt_exit=$?
+
+ # Restore the uninstalled library and exit
+ if test relink = "$opt_mode"; then
+ ( cd "$output_objdir" && \
+ $RM "${realname}T" && \
+ $MV "${realname}U" "$realname" )
+ fi
+
+ exit $lt_exit
+ }
+ done
+ IFS=$save_ifs
+
+ # Restore the uninstalled library and exit
+ if test relink = "$opt_mode"; then
+ $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
+
+ if test -n "$convenience"; then
+ if test -z "$whole_archive_flag_spec"; then
+ func_show_eval '${RM}r "$gentop"'
+ fi
+ fi
+
+ exit $EXIT_SUCCESS
+ fi
+
+ # Create links to the real library.
+ for linkname in $linknames; do
+ if test "$realname" != "$linkname"; then
+ func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
+ fi
+ done
+
+ # If -module or -export-dynamic was specified, set the dlname.
+ if test yes = "$module" || test yes = "$export_dynamic"; then
+ # On all known operating systems, these are identical.
+ dlname=$soname
+ fi
+ fi
+ ;;
+
+ obj)
+ if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then
+ func_warning "'-dlopen' is ignored for objects"
+ fi
+
+ case " $deplibs" in
+ *\ -l* | *\ -L*)
+ func_warning "'-l' and '-L' are ignored for objects" ;;
+ esac
+
+ test -n "$rpath" && \
+ func_warning "'-rpath' is ignored for objects"
+
+ test -n "$xrpath" && \
+ func_warning "'-R' is ignored for objects"
+
+ test -n "$vinfo" && \
+ func_warning "'-version-info' is ignored for objects"
+
+ test -n "$release" && \
+ func_warning "'-release' is ignored for objects"
+
+ case $output in
+ *.lo)
+ test -n "$objs$old_deplibs" && \
+ func_fatal_error "cannot build library object '$output' from non-libtool objects"
+
+ libobj=$output
+ func_lo2o "$libobj"
+ obj=$func_lo2o_result
+ ;;
+ *)
+ libobj=
+ obj=$output
+ ;;
+ esac
+
+ # Delete the old objects.
+ $opt_dry_run || $RM $obj $libobj
+
+ # Objects from convenience libraries. This assumes
+ # single-version convenience libraries. Whenever we create
+ # different ones for PIC/non-PIC, this we'll have to duplicate
+ # the extraction.
+ reload_conv_objs=
+ gentop=
+ # if reload_cmds runs $LD directly, get rid of -Wl from
+ # whole_archive_flag_spec and hope we can get by with turning comma
+ # into space.
+ case $reload_cmds in
+ *\$LD[\ \$]*) wl= ;;
+ esac
+ if test -n "$convenience"; then
+ if test -n "$whole_archive_flag_spec"; then
+ eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
+ test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
+ reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags
+ else
+ gentop=$output_objdir/${obj}x
+ func_append generated " $gentop"
+
+ func_extract_archives $gentop $convenience
+ reload_conv_objs="$reload_objs $func_extract_archives_result"
+ fi
+ fi
+
+ # If we're not building shared, we need to use non_pic_objs
+ test yes = "$build_libtool_libs" || libobjs=$non_pic_objects
+
+ # Create the old-style object.
+ reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs
+
+ output=$obj
+ func_execute_cmds "$reload_cmds" 'exit $?'
+
+ # Exit if we aren't doing a library object file.
+ if test -z "$libobj"; then
+ if test -n "$gentop"; then
+ func_show_eval '${RM}r "$gentop"'
+ fi
+
+ exit $EXIT_SUCCESS
+ fi
+
+ test yes = "$build_libtool_libs" || {
+ if test -n "$gentop"; then
+ func_show_eval '${RM}r "$gentop"'
+ fi
+
+ # Create an invalid libtool object if no PIC, so that we don't
+ # accidentally link it into a program.
+ # $show "echo timestamp > $libobj"
+ # $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
+ exit $EXIT_SUCCESS
+ }
+
+ if test -n "$pic_flag" || test default != "$pic_mode"; then
+ # Only do commands if we really have different PIC objects.
+ reload_objs="$libobjs $reload_conv_objs"
+ output=$libobj
+ func_execute_cmds "$reload_cmds" 'exit $?'
+ fi
+
+ if test -n "$gentop"; then
+ func_show_eval '${RM}r "$gentop"'
+ fi
+
+ exit $EXIT_SUCCESS
+ ;;
+
+ prog)
+ case $host in
+ *cygwin*) func_stripname '' '.exe' "$output"
+ output=$func_stripname_result.exe;;
+ esac
+ test -n "$vinfo" && \
+ func_warning "'-version-info' is ignored for programs"
+
+ test -n "$release" && \
+ func_warning "'-release' is ignored for programs"
+
+ $preload \
+ && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \
+ && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support."
+
+ case $host in
+ *-*-rhapsody* | *-*-darwin1.[012])
+ # On Rhapsody replace the C library is the System framework
+ compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
+ finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
+ ;;
+ esac
+
+ case $host in
+ *-*-darwin*)
+ # Don't allow lazy linking, it breaks C++ global constructors
+ # But is supposedly fixed on 10.4 or later (yay!).
+ if test CXX = "$tagname"; then
+ case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
+ 10.[0123])
+ func_append compile_command " $wl-bind_at_load"
+ func_append finalize_command " $wl-bind_at_load"
+ ;;
+ esac
+ fi
+ # Time to change all our "foo.ltframework" stuff back to "-framework foo"
+ compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
+ ;;
+ esac
+
+
+ # move library search paths that coincide with paths to not yet
+ # installed libraries to the beginning of the library search list
+ new_libs=
+ for path in $notinst_path; do
+ case " $new_libs " in
+ *" -L$path/$objdir "*) ;;
+ *)
+ case " $compile_deplibs " in
+ *" -L$path/$objdir "*)
+ func_append new_libs " -L$path/$objdir" ;;
+ esac
+ ;;
+ esac
+ done
+ for deplib in $compile_deplibs; do
+ case $deplib in
+ -L*)
+ case " $new_libs " in
+ *" $deplib "*) ;;
+ *) func_append new_libs " $deplib" ;;
+ esac
+ ;;
+ *) func_append new_libs " $deplib" ;;
+ esac
+ done
+ compile_deplibs=$new_libs
+
+
+ func_append compile_command " $compile_deplibs"
+ func_append finalize_command " $finalize_deplibs"
+
+ if test -n "$rpath$xrpath"; then
+ # If the user specified any rpath flags, then add them.
+ for libdir in $rpath $xrpath; do
+ # This is the magic to use -rpath.
+ case "$finalize_rpath " in
+ *" $libdir "*) ;;
+ *) func_append finalize_rpath " $libdir" ;;
+ esac
+ done
+ fi
+
+ # Now hardcode the library paths
+ rpath=
+ hardcode_libdirs=
+ for libdir in $compile_rpath $finalize_rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs=$libdir
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ func_append rpath " $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$perm_rpath " in
+ *" $libdir "*) ;;
+ *) func_append perm_rpath " $libdir" ;;
+ esac
+ fi
+ case $host in
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
+ testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'`
+ case :$dllsearchpath: in
+ *":$libdir:"*) ;;
+ ::) dllsearchpath=$libdir;;
+ *) func_append dllsearchpath ":$libdir";;
+ esac
+ case :$dllsearchpath: in
+ *":$testbindir:"*) ;;
+ ::) dllsearchpath=$testbindir;;
+ *) func_append dllsearchpath ":$testbindir";;
+ esac
+ ;;
+ esac
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir=$hardcode_libdirs
+ eval rpath=\" $hardcode_libdir_flag_spec\"
+ fi
+ compile_rpath=$rpath
+
+ rpath=
+ hardcode_libdirs=
+ for libdir in $finalize_rpath; do
+ if test -n "$hardcode_libdir_flag_spec"; then
+ if test -n "$hardcode_libdir_separator"; then
+ if test -z "$hardcode_libdirs"; then
+ hardcode_libdirs=$libdir
+ else
+ # Just accumulate the unique libdirs.
+ case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
+ *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
+ ;;
+ *)
+ func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
+ ;;
+ esac
+ fi
+ else
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ func_append rpath " $flag"
+ fi
+ elif test -n "$runpath_var"; then
+ case "$finalize_perm_rpath " in
+ *" $libdir "*) ;;
+ *) func_append finalize_perm_rpath " $libdir" ;;
+ esac
+ fi
+ done
+ # Substitute the hardcoded libdirs into the rpath.
+ if test -n "$hardcode_libdir_separator" &&
+ test -n "$hardcode_libdirs"; then
+ libdir=$hardcode_libdirs
+ eval rpath=\" $hardcode_libdir_flag_spec\"
+ fi
+ finalize_rpath=$rpath
+
+ if test -n "$libobjs" && test yes = "$build_old_libs"; then
+ # Transform all the library objects into standard objects.
+ compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
+ finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
+ fi
+
+ func_generate_dlsyms "$outputname" "@PROGRAM@" false
+
+ # template prelinking step
+ if test -n "$prelink_cmds"; then
+ func_execute_cmds "$prelink_cmds" 'exit $?'
+ fi
+
+ wrappers_required=:
+ case $host in
+ *cegcc* | *mingw32ce*)
+ # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
+ wrappers_required=false
+ ;;
+ *cygwin* | *mingw* )
+ test yes = "$build_libtool_libs" || wrappers_required=false
+ ;;
+ *)
+ if test no = "$need_relink" || test yes != "$build_libtool_libs"; then
+ wrappers_required=false
+ fi
+ ;;
+ esac
+ $wrappers_required || {
+ # Replace the output file specification.
+ compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
+ link_command=$compile_command$compile_rpath
+
+ # We have no uninstalled library dependencies, so finalize right now.
+ exit_status=0
+ func_show_eval "$link_command" 'exit_status=$?'
+
+ if test -n "$postlink_cmds"; then
+ func_to_tool_file "$output"
+ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+ func_execute_cmds "$postlink_cmds" 'exit $?'
+ fi
+
+ # Delete the generated files.
+ if test -f "$output_objdir/${outputname}S.$objext"; then
+ func_show_eval '$RM "$output_objdir/${outputname}S.$objext"'
+ fi
+
+ exit $exit_status
+ }
+
+ if test -n "$compile_shlibpath$finalize_shlibpath"; then
+ compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
+ fi
+ if test -n "$finalize_shlibpath"; then
+ finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
+ fi
+
+ compile_var=
+ finalize_var=
+ if test -n "$runpath_var"; then
+ if test -n "$perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $perm_rpath; do
+ func_append rpath "$dir:"
+ done
+ compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
+ fi
+ if test -n "$finalize_perm_rpath"; then
+ # We should set the runpath_var.
+ rpath=
+ for dir in $finalize_perm_rpath; do
+ func_append rpath "$dir:"
+ done
+ finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
+ fi
+ fi
+
+ if test yes = "$no_install"; then
+ # We don't need to create a wrapper script.
+ link_command=$compile_var$compile_command$compile_rpath
+ # Replace the output file specification.
+ link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
+ # Delete the old output file.
+ $opt_dry_run || $RM $output
+ # Link the executable and exit
+ func_show_eval "$link_command" 'exit $?'
+
+ if test -n "$postlink_cmds"; then
+ func_to_tool_file "$output"
+ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+ func_execute_cmds "$postlink_cmds" 'exit $?'
+ fi
+
+ exit $EXIT_SUCCESS
+ fi
+
+ case $hardcode_action,$fast_install in
+ relink,*)
+ # Fast installation is not supported
+ link_command=$compile_var$compile_command$compile_rpath
+ relink_command=$finalize_var$finalize_command$finalize_rpath
+
+ func_warning "this platform does not like uninstalled shared libraries"
+ func_warning "'$output' will be relinked during installation"
+ ;;
+ *,yes)
+ link_command=$finalize_var$compile_command$finalize_rpath
+ relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
+ ;;
+ *,no)
+ link_command=$compile_var$compile_command$compile_rpath
+ relink_command=$finalize_var$finalize_command$finalize_rpath
+ ;;
+ *,needless)
+ link_command=$finalize_var$compile_command$finalize_rpath
+ relink_command=
+ ;;
+ esac
+
+ # Replace the output file specification.
+ link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
+
+ # Delete the old output files.
+ $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
+
+ func_show_eval "$link_command" 'exit $?'
+
+ if test -n "$postlink_cmds"; then
+ func_to_tool_file "$output_objdir/$outputname"
+ postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
+ func_execute_cmds "$postlink_cmds" 'exit $?'
+ fi
+
+ # Now create the wrapper script.
+ func_verbose "creating $output"
+
+ # Quote the relink command for shipping.
+ if test -n "$relink_command"; then
+ # Preserve any variables that may affect compiler behavior
+ for var in $variables_saved_for_relink; do
+ if eval test -z \"\${$var+set}\"; then
+ relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+ elif eval var_value=\$$var; test -z "$var_value"; then
+ relink_command="$var=; export $var; $relink_command"
+ else
+ func_quote_arg pretty "$var_value"
+ relink_command="$var=$func_quote_arg_result; export $var; $relink_command"
+ fi
+ done
+ func_quote eval cd "`pwd`"
+ func_quote_arg pretty,unquoted "($func_quote_result; $relink_command)"
+ relink_command=$func_quote_arg_unquoted_result
+ fi
+
+ # Only actually do things if not in dry run mode.
+ $opt_dry_run || {
+ # win32 will think the script is a binary if it has
+ # a .exe suffix, so we strip it off here.
+ case $output in
+ *.exe) func_stripname '' '.exe' "$output"
+ output=$func_stripname_result ;;
+ esac
+ # test for cygwin because mv fails w/o .exe extensions
+ case $host in
+ *cygwin*)
+ exeext=.exe
+ func_stripname '' '.exe' "$outputname"
+ outputname=$func_stripname_result ;;
+ *) exeext= ;;
+ esac
+ case $host in
+ *cygwin* | *mingw* )
+ func_dirname_and_basename "$output" "" "."
+ output_name=$func_basename_result
+ output_path=$func_dirname_result
+ cwrappersource=$output_path/$objdir/lt-$output_name.c
+ cwrapper=$output_path/$output_name.exe
+ $RM $cwrappersource $cwrapper
+ trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
+
+ func_emit_cwrapperexe_src > $cwrappersource
+
+ # The wrapper executable is built using the $host compiler,
+ # because it contains $host paths and files. If cross-
+ # compiling, it, like the target executable, must be
+ # executed on the $host or under an emulation environment.
+ $opt_dry_run || {
+ $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
+ $STRIP $cwrapper
+ }
+
+ # Now, create the wrapper script for func_source use:
+ func_ltwrapper_scriptname $cwrapper
+ $RM $func_ltwrapper_scriptname_result
+ trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
+ $opt_dry_run || {
+ # note: this script will not be executed, so do not chmod.
+ if test "x$build" = "x$host"; then
+ $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
+ else
+ func_emit_wrapper no > $func_ltwrapper_scriptname_result
+ fi
+ }
+ ;;
+ * )
+ $RM $output
+ trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
+
+ func_emit_wrapper no > $output
+ chmod +x $output
+ ;;
+ esac
+ }
+ exit $EXIT_SUCCESS
+ ;;
+ esac
+
+ # See if we need to build an old-fashioned archive.
+ for oldlib in $oldlibs; do
+
+ case $build_libtool_libs in
+ convenience)
+ oldobjs="$libobjs_save $symfileobj"
+ addlibs=$convenience
+ build_libtool_libs=no
+ ;;
+ module)
+ oldobjs=$libobjs_save
+ addlibs=$old_convenience
+ build_libtool_libs=no
+ ;;
+ *)
+ oldobjs="$old_deplibs $non_pic_objects"
+ $preload && test -f "$symfileobj" \
+ && func_append oldobjs " $symfileobj"
+ addlibs=$old_convenience
+ ;;
+ esac
+
+ if test -n "$addlibs"; then
+ gentop=$output_objdir/${outputname}x
+ func_append generated " $gentop"
+
+ func_extract_archives $gentop $addlibs
+ func_append oldobjs " $func_extract_archives_result"
+ fi
+
+ # Do each command in the archive commands.
+ if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then
+ cmds=$old_archive_from_new_cmds
+ else
+
+ # Add any objects from preloaded convenience libraries
+ if test -n "$dlprefiles"; then
+ gentop=$output_objdir/${outputname}x
+ func_append generated " $gentop"
+
+ func_extract_archives $gentop $dlprefiles
+ func_append oldobjs " $func_extract_archives_result"
+ fi
+
+ # POSIX demands no paths to be encoded in archives. We have
+ # to avoid creating archives with duplicate basenames if we
+ # might have to extract them afterwards, e.g., when creating a
+ # static archive out of a convenience library, or when linking
+ # the entirety of a libtool archive into another (currently
+ # not supported by libtool).
+ if (for obj in $oldobjs
+ do
+ func_basename "$obj"
+ $ECHO "$func_basename_result"
+ done | sort | sort -uc >/dev/null 2>&1); then
+ :
+ else
+ echo "copying selected object files to avoid basename conflicts..."
+ gentop=$output_objdir/${outputname}x
+ func_append generated " $gentop"
+ func_mkdir_p "$gentop"
+ save_oldobjs=$oldobjs
+ oldobjs=
+ counter=1
+ for obj in $save_oldobjs
+ do
+ func_basename "$obj"
+ objbase=$func_basename_result
+ case " $oldobjs " in
+ " ") oldobjs=$obj ;;
+ *[\ /]"$objbase "*)
+ while :; do
+ # Make sure we don't pick an alternate name that also
+ # overlaps.
+ newobj=lt$counter-$objbase
+ func_arith $counter + 1
+ counter=$func_arith_result
+ case " $oldobjs " in
+ *[\ /]"$newobj "*) ;;
+ *) if test ! -f "$gentop/$newobj"; then break; fi ;;
+ esac
+ done
+ func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
+ func_append oldobjs " $gentop/$newobj"
+ ;;
+ *) func_append oldobjs " $obj" ;;
+ esac
+ done
+ fi
+ func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
+ tool_oldlib=$func_to_tool_file_result
+ eval cmds=\"$old_archive_cmds\"
+
+ func_len " $cmds"
+ len=$func_len_result
+ if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+ cmds=$old_archive_cmds
+ elif test -n "$archiver_list_spec"; then
+ func_verbose "using command file archive linking..."
+ for obj in $oldobjs
+ do
+ func_to_tool_file "$obj"
+ $ECHO "$func_to_tool_file_result"
+ done > $output_objdir/$libname.libcmd
+ func_to_tool_file "$output_objdir/$libname.libcmd"
+ oldobjs=" $archiver_list_spec$func_to_tool_file_result"
+ cmds=$old_archive_cmds
+ else
+ # the command line is too long to link in one step, link in parts
+ func_verbose "using piecewise archive linking..."
+ save_RANLIB=$RANLIB
+ RANLIB=:
+ objlist=
+ concat_cmds=
+ save_oldobjs=$oldobjs
+ oldobjs=
+ # Is there a better way of finding the last object in the list?
+ for obj in $save_oldobjs
+ do
+ last_oldobj=$obj
+ done
+ eval test_cmds=\"$old_archive_cmds\"
+ func_len " $test_cmds"
+ len0=$func_len_result
+ len=$len0
+ for obj in $save_oldobjs
+ do
+ func_len " $obj"
+ func_arith $len + $func_len_result
+ len=$func_arith_result
+ func_append objlist " $obj"
+ if test "$len" -lt "$max_cmd_len"; then
+ :
+ else
+ # the above command should be used before it gets too long
+ oldobjs=$objlist
+ if test "$obj" = "$last_oldobj"; then
+ RANLIB=$save_RANLIB
+ fi
+ test -z "$concat_cmds" || concat_cmds=$concat_cmds~
+ eval concat_cmds=\"\$concat_cmds$old_archive_cmds\"
+ objlist=
+ len=$len0
+ fi
+ done
+ RANLIB=$save_RANLIB
+ oldobjs=$objlist
+ if test -z "$oldobjs"; then
+ eval cmds=\"\$concat_cmds\"
+ else
+ eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
+ fi
+ fi
+ fi
+ func_execute_cmds "$cmds" 'exit $?'
+ done
+
+ test -n "$generated" && \
+ func_show_eval "${RM}r$generated"
+
+ # Now create the libtool archive.
+ case $output in
+ *.la)
+ old_library=
+ test yes = "$build_old_libs" && old_library=$libname.$libext
+ func_verbose "creating $output"
+
+ # Preserve any variables that may affect compiler behavior
+ for var in $variables_saved_for_relink; do
+ if eval test -z \"\${$var+set}\"; then
+ relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
+ elif eval var_value=\$$var; test -z "$var_value"; then
+ relink_command="$var=; export $var; $relink_command"
+ else
+ func_quote_arg pretty,unquoted "$var_value"
+ relink_command="$var=$func_quote_arg_unquoted_result; export $var; $relink_command"
+ fi
+ done
+ # Quote the link command for shipping.
+ func_quote eval cd "`pwd`"
+ relink_command="($func_quote_result; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
+ func_quote_arg pretty,unquoted "$relink_command"
+ relink_command=$func_quote_arg_unquoted_result
+ if test yes = "$hardcode_automatic"; then
+ relink_command=
+ fi
+
+ # Only create the output if not a dry run.
+ $opt_dry_run || {
+ for installed in no yes; do
+ if test yes = "$installed"; then
+ if test -z "$install_libdir"; then
+ break
+ fi
+ output=$output_objdir/${outputname}i
+ # Replace all uninstalled libtool libraries with the installed ones
+ newdependency_libs=
+ for deplib in $dependency_libs; do
+ case $deplib in
+ *.la)
+ func_basename "$deplib"
+ name=$func_basename_result
+ func_resolve_sysroot "$deplib"
+ eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
+ test -z "$libdir" && \
+ func_fatal_error "'$deplib' is not a valid libtool archive"
+ func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
+ ;;
+ -L*)
+ func_stripname -L '' "$deplib"
+ func_replace_sysroot "$func_stripname_result"
+ func_append newdependency_libs " -L$func_replace_sysroot_result"
+ ;;
+ -R*)
+ func_stripname -R '' "$deplib"
+ func_replace_sysroot "$func_stripname_result"
+ func_append newdependency_libs " -R$func_replace_sysroot_result"
+ ;;
+ *) func_append newdependency_libs " $deplib" ;;
+ esac
+ done
+ dependency_libs=$newdependency_libs
+ newdlfiles=
+
+ for lib in $dlfiles; do
+ case $lib in
+ *.la)
+ func_basename "$lib"
+ name=$func_basename_result
+ eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+ test -z "$libdir" && \
+ func_fatal_error "'$lib' is not a valid libtool archive"
+ func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
+ ;;
+ *) func_append newdlfiles " $lib" ;;
+ esac
+ done
+ dlfiles=$newdlfiles
+ newdlprefiles=
+ for lib in $dlprefiles; do
+ case $lib in
+ *.la)
+ # Only pass preopened files to the pseudo-archive (for
+ # eventual linking with the app. that links it) if we
+ # didn't already link the preopened objects directly into
+ # the library:
+ func_basename "$lib"
+ name=$func_basename_result
+ eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
+ test -z "$libdir" && \
+ func_fatal_error "'$lib' is not a valid libtool archive"
+ func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
+ ;;
+ esac
+ done
+ dlprefiles=$newdlprefiles
+ else
+ newdlfiles=
+ for lib in $dlfiles; do
+ case $lib in
+ [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;;
+ *) abs=`pwd`"/$lib" ;;
+ esac
+ func_append newdlfiles " $abs"
+ done
+ dlfiles=$newdlfiles
+ newdlprefiles=
+ for lib in $dlprefiles; do
+ case $lib in
+ [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;;
+ *) abs=`pwd`"/$lib" ;;
+ esac
+ func_append newdlprefiles " $abs"
+ done
+ dlprefiles=$newdlprefiles
+ fi
+ $RM $output
+ # place dlname in correct position for cygwin
+ # In fact, it would be nice if we could use this code for all target
+ # systems that can't hard-code library paths into their executables
+ # and that have no shared library path variable independent of PATH,
+ # but it turns out we can't easily determine that from inspecting
+ # libtool variables, so we have to hard-code the OSs to which it
+ # applies here; at the moment, that means platforms that use the PE
+ # object format with DLL files. See the long comment at the top of
+ # tests/bindir.at for full details.
+ tdlname=$dlname
+ case $host,$output,$installed,$module,$dlname in
+ *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
+ # If a -bindir argument was supplied, place the dll there.
+ if test -n "$bindir"; then
+ func_relative_path "$install_libdir" "$bindir"
+ tdlname=$func_relative_path_result/$dlname
+ else
+ # Otherwise fall back on heuristic.
+ tdlname=../bin/$dlname
+ fi
+ ;;
+ esac
+ $ECHO > $output "\
+# $outputname - a libtool library file
+# Generated by $PROGRAM (GNU $PACKAGE) $VERSION
+#
+# Please DO NOT delete this file!
+# It is necessary for linking the library.
+
+# The name that we can dlopen(3).
+dlname='$tdlname'
+
+# Names of this library.
+library_names='$library_names'
+
+# The name of the static archive.
+old_library='$old_library'
+
+# Linker flags that cannot go in dependency_libs.
+inherited_linker_flags='$new_inherited_linker_flags'
+
+# Libraries that this one depends upon.
+dependency_libs='$dependency_libs'
+
+# Names of additional weak libraries provided by this library
+weak_library_names='$weak_libs'
+
+# Version information for $libname.
+current=$current
+age=$age
+revision=$revision
+
+# Is this an already installed library?
+installed=$installed
+
+# Should we warn about portability when linking against -modules?
+shouldnotlink=$module
+
+# Files to dlopen/dlpreopen
+dlopen='$dlfiles'
+dlpreopen='$dlprefiles'
+
+# Directory that this library needs to be installed in:
+libdir='$install_libdir'"
+ if test no,yes = "$installed,$need_relink"; then
+ $ECHO >> $output "\
+relink_command=\"$relink_command\""
+ fi
+ done
+ }
+
+ # Do a symbolic link so that the libtool archive can be found in
+ # LD_LIBRARY_PATH before the program is installed.
+ func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
+ ;;
+ esac
+ exit $EXIT_SUCCESS
+}
+
+if test link = "$opt_mode" || test relink = "$opt_mode"; then
+ func_mode_link ${1+"$@"}
+fi
+
+
+# func_mode_uninstall arg...
+func_mode_uninstall ()
+{
+ $debug_cmd
+
+ RM=$nonopt
+ files=
+ rmforce=false
+ exit_status=0
+
+ # This variable tells wrapper scripts just to set variables rather
+ # than running their programs.
+ libtool_install_magic=$magic
+
+ for arg
+ do
+ case $arg in
+ -f) func_append RM " $arg"; rmforce=: ;;
+ -*) func_append RM " $arg" ;;
+ *) func_append files " $arg" ;;
+ esac
+ done
+
+ test -z "$RM" && \
+ func_fatal_help "you must specify an RM program"
+
+ rmdirs=
+
+ for file in $files; do
+ func_dirname "$file" "" "."
+ dir=$func_dirname_result
+ if test . = "$dir"; then
+ odir=$objdir
+ else
+ odir=$dir/$objdir
+ fi
+ func_basename "$file"
+ name=$func_basename_result
+ test uninstall = "$opt_mode" && odir=$dir
+
+ # Remember odir for removal later, being careful to avoid duplicates
+ if test clean = "$opt_mode"; then
+ case " $rmdirs " in
+ *" $odir "*) ;;
+ *) func_append rmdirs " $odir" ;;
+ esac
+ fi
+
+ # Don't error if the file doesn't exist and rm -f was used.
+ if { test -L "$file"; } >/dev/null 2>&1 ||
+ { test -h "$file"; } >/dev/null 2>&1 ||
+ test -f "$file"; then
+ :
+ elif test -d "$file"; then
+ exit_status=1
+ continue
+ elif $rmforce; then
+ continue
+ fi
+
+ rmfiles=$file
+
+ case $name in
+ *.la)
+ # Possibly a libtool archive, so verify it.
+ if func_lalib_p "$file"; then
+ func_source $dir/$name
+
+ # Delete the libtool libraries and symlinks.
+ for n in $library_names; do
+ func_append rmfiles " $odir/$n"
+ done
+ test -n "$old_library" && func_append rmfiles " $odir/$old_library"
+
+ case $opt_mode in
+ clean)
+ case " $library_names " in
+ *" $dlname "*) ;;
+ *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
+ esac
+ test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
+ ;;
+ uninstall)
+ if test -n "$library_names"; then
+ # Do each command in the postuninstall commands.
+ func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1'
+ fi
+
+ if test -n "$old_library"; then
+ # Do each command in the old_postuninstall commands.
+ func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1'
+ fi
+ # FIXME: should reinstall the best remaining shared library.
+ ;;
+ esac
+ fi
+ ;;
+
+ *.lo)
+ # Possibly a libtool object, so verify it.
+ if func_lalib_p "$file"; then
+
+ # Read the .lo file
+ func_source $dir/$name
+
+ # Add PIC object to the list of files to remove.
+ if test -n "$pic_object" && test none != "$pic_object"; then
+ func_append rmfiles " $dir/$pic_object"
+ fi
+
+ # Add non-PIC object to the list of files to remove.
+ if test -n "$non_pic_object" && test none != "$non_pic_object"; then
+ func_append rmfiles " $dir/$non_pic_object"
+ fi
+ fi
+ ;;
+
+ *)
+ if test clean = "$opt_mode"; then
+ noexename=$name
+ case $file in
+ *.exe)
+ func_stripname '' '.exe' "$file"
+ file=$func_stripname_result
+ func_stripname '' '.exe' "$name"
+ noexename=$func_stripname_result
+ # $file with .exe has already been added to rmfiles,
+ # add $file without .exe
+ func_append rmfiles " $file"
+ ;;
+ esac
+ # Do a test to see if this is a libtool program.
+ if func_ltwrapper_p "$file"; then
+ if func_ltwrapper_executable_p "$file"; then
+ func_ltwrapper_scriptname "$file"
+ relink_command=
+ func_source $func_ltwrapper_scriptname_result
+ func_append rmfiles " $func_ltwrapper_scriptname_result"
+ else
+ relink_command=
+ func_source $dir/$noexename
+ fi
+
+ # note $name still contains .exe if it was in $file originally
+ # as does the version of $file that was added into $rmfiles
+ func_append rmfiles " $odir/$name $odir/${name}S.$objext"
+ if test yes = "$fast_install" && test -n "$relink_command"; then
+ func_append rmfiles " $odir/lt-$name"
+ fi
+ if test "X$noexename" != "X$name"; then
+ func_append rmfiles " $odir/lt-$noexename.c"
+ fi
+ fi
+ fi
+ ;;
+ esac
+ func_show_eval "$RM $rmfiles" 'exit_status=1'
+ done
+
+ # Try to remove the $objdir's in the directories where we deleted files
+ for dir in $rmdirs; do
+ if test -d "$dir"; then
+ func_show_eval "rmdir $dir >/dev/null 2>&1"
+ fi
+ done
+
+ exit $exit_status
+}
+
+if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then
+ func_mode_uninstall ${1+"$@"}
+fi
+
+test -z "$opt_mode" && {
+ help=$generic_help
+ func_fatal_help "you must specify a MODE"
+}
+
+test -z "$exec_cmd" && \
+ func_fatal_help "invalid operation mode '$opt_mode'"
+
+if test -n "$exec_cmd"; then
+ eval exec "$exec_cmd"
+ exit $EXIT_FAILURE
+fi
+
+exit $exit_status
+
+
+# The TAGs below are defined such that we never get into a situation
+# where we disable both kinds of libraries. Given conflicting
+# choices, we go for a static library, that is the most portable,
+# since we can't tell whether shared libraries were disabled because
+# the user asked for that or because the platform doesn't support
+# them. This is particularly important on AIX, because we don't
+# support having both static and shared libraries enabled at the same
+# time on that platform, so we default to a shared-only configuration.
+# If a disable-shared tag is given, we'll fallback to a static-only
+# configuration. But we'll never go from static-only to shared-only.
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
+build_libtool_libs=no
+build_old_libs=yes
+# ### END LIBTOOL TAG CONFIG: disable-shared
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
+build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
+# ### END LIBTOOL TAG CONFIG: disable-static
+
+# Local Variables:
+# mode:shell-script
+# sh-indentation:2
+# End:
diff --git a/m4/gettext.m4 b/m4/gettext.m4
new file mode 100644
index 0000000..a374f03
--- /dev/null
+++ b/m4/gettext.m4
@@ -0,0 +1,487 @@
+# gettext.m4 serial 28 (gettext-0.13)
+dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+dnl Macro to add for using GNU gettext.
+
+dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
+dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
+dnl default (if it is not specified or empty) is 'no-libtool'.
+dnl INTLSYMBOL should be 'external' for packages with no intl directory,
+dnl and 'no-libtool' or 'use-libtool' for packages with an intl directory.
+dnl If INTLSYMBOL is 'use-libtool', then a libtool library
+dnl $(top_builddir)/intl/libintl.la will be created (shared and/or static,
+dnl depending on --{enable,disable}-{shared,static} and on the presence of
+dnl AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
+dnl $(top_builddir)/intl/libintl.a will be created.
+dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
+dnl implementations (in libc or libintl) without the ngettext() function
+dnl will be ignored. If NEEDSYMBOL is specified and is
+dnl 'need-formatstring-macros', then GNU gettext implementations that don't
+dnl support the ISO C 99 <inttypes.h> formatstring macros will be ignored.
+dnl INTLDIR is used to find the intl libraries. If empty,
+dnl the value `$(top_builddir)/intl/' is used.
+dnl
+dnl The result of the configuration is one of three cases:
+dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled
+dnl and used.
+dnl Catalog format: GNU --> install in $(datadir)
+dnl Catalog extension: .mo after installation, .gmo in source tree
+dnl 2) GNU gettext has been found in the system's C library.
+dnl Catalog format: GNU --> install in $(datadir)
+dnl Catalog extension: .mo after installation, .gmo in source tree
+dnl 3) No internationalization, always use English msgid.
+dnl Catalog format: none
+dnl Catalog extension: none
+dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur.
+dnl The use of .gmo is historical (it was needed to avoid overwriting the
+dnl GNU format catalogs when building on a platform with an X/Open gettext),
+dnl but we keep it in order not to force irrelevant filename changes on the
+dnl maintainers.
+dnl
+AC_DEFUN([AM_GNU_GETTEXT],
+[
+ dnl Argument checking.
+ ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
+ [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
+])])])])])
+ ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
+ [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
+])])])])
+ define(gt_included_intl, ifelse([$1], [external], [no], [yes]))
+ define(gt_libtool_suffix_prefix, ifelse([$1], [use-libtool], [l], []))
+
+ AC_REQUIRE([AM_PO_SUBDIRS])dnl
+ ifelse(gt_included_intl, yes, [
+ AC_REQUIRE([AM_INTL_SUBDIR])dnl
+ ])
+
+ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+
+ dnl Sometimes libintl requires libiconv, so first search for libiconv.
+ dnl Ideally we would do this search only after the
+ dnl if test "$USE_NLS" = "yes"; then
+ dnl if test "$gt_cv_func_gnugettext_libc" != "yes"; then
+ dnl tests. But if configure.in invokes AM_ICONV after AM_GNU_GETTEXT
+ dnl the configure script would need to contain the same shell code
+ dnl again, outside any 'if'. There are two solutions:
+ dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
+ dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
+ dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
+ dnl documented, we avoid it.
+ ifelse(gt_included_intl, yes, , [
+ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+ ])
+
+ dnl Set USE_NLS.
+ AM_NLS
+
+ ifelse(gt_included_intl, yes, [
+ BUILD_INCLUDED_LIBINTL=no
+ USE_INCLUDED_LIBINTL=no
+ ])
+ LIBINTL=
+ LTLIBINTL=
+ POSUB=
+
+ dnl If we use NLS figure out what method
+ if test "$USE_NLS" = "yes"; then
+ gt_use_preinstalled_gnugettext=no
+ ifelse(gt_included_intl, yes, [
+ AC_MSG_CHECKING([whether included gettext is requested])
+ AC_ARG_WITH(included-gettext,
+ [ --with-included-gettext use the GNU gettext library included here],
+ nls_cv_force_use_gnu_gettext=$withval,
+ nls_cv_force_use_gnu_gettext=no)
+ AC_MSG_RESULT($nls_cv_force_use_gnu_gettext)
+
+ nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+ if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
+ ])
+ dnl User does not insist on using GNU NLS library. Figure out what
+ dnl to use. If GNU gettext is available we use this. Else we have
+ dnl to fall back to GNU NLS library.
+
+ dnl Add a version number to the cache macros.
+ define([gt_api_version], ifelse([$2], [need-formatstring-macros], 3, ifelse([$2], [need-ngettext], 2, 1)))
+ define([gt_cv_func_gnugettext_libc], [gt_cv_func_gnugettext]gt_api_version[_libc])
+ define([gt_cv_func_gnugettext_libintl], [gt_cv_func_gnugettext]gt_api_version[_libintl])
+
+ AC_CACHE_CHECK([for GNU gettext in libc], gt_cv_func_gnugettext_libc,
+ [AC_TRY_LINK([#include <libintl.h>
+]ifelse([$2], [need-formatstring-macros],
+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+], [])[extern int _nl_msg_cat_cntr;
+extern int *_nl_domain_bindings;],
+ [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_domain_bindings],
+ gt_cv_func_gnugettext_libc=yes,
+ gt_cv_func_gnugettext_libc=no)])
+
+ if test "$gt_cv_func_gnugettext_libc" != "yes"; then
+ dnl Sometimes libintl requires libiconv, so first search for libiconv.
+ ifelse(gt_included_intl, yes, , [
+ AM_ICONV_LINK
+ ])
+ dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL
+ dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv])
+ dnl because that would add "-liconv" to LIBINTL and LTLIBINTL
+ dnl even if libiconv doesn't exist.
+ AC_LIB_LINKFLAGS_BODY([intl])
+ AC_CACHE_CHECK([for GNU gettext in libintl],
+ gt_cv_func_gnugettext_libintl,
+ [gt_save_CPPFLAGS="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS $INCINTL"
+ gt_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBINTL"
+ dnl Now see whether libintl exists and does not depend on libiconv.
+ AC_TRY_LINK([#include <libintl.h>
+]ifelse([$2], [need-formatstring-macros],
+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+], [])[extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias ();],
+ [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
+ gt_cv_func_gnugettext_libintl=yes,
+ gt_cv_func_gnugettext_libintl=no)
+ dnl Now see whether libintl exists and depends on libiconv.
+ if test "$gt_cv_func_gnugettext_libintl" != yes && test -n "$LIBICONV"; then
+ LIBS="$LIBS $LIBICONV"
+ AC_TRY_LINK([#include <libintl.h>
+]ifelse([$2], [need-formatstring-macros],
+[#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1)
+#endif
+changequote(,)dnl
+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1];
+changequote([,])dnl
+], [])[extern int _nl_msg_cat_cntr;
+extern
+#ifdef __cplusplus
+"C"
+#endif
+const char *_nl_expand_alias ();],
+ [bindtextdomain ("", "");
+return (int) gettext ("")]ifelse([$2], [need-ngettext], [ + (int) ngettext ("", "", 0)], [])[ + _nl_msg_cat_cntr + *_nl_expand_alias (0)],
+ [LIBINTL="$LIBINTL $LIBICONV"
+ LTLIBINTL="$LTLIBINTL $LTLIBICONV"
+ gt_cv_func_gnugettext_libintl=yes
+ ])
+ fi
+ CPPFLAGS="$gt_save_CPPFLAGS"
+ LIBS="$gt_save_LIBS"])
+ fi
+
+ dnl If an already present or preinstalled GNU gettext() is found,
+ dnl use it. But if this macro is used in GNU gettext, and GNU
+ dnl gettext is already preinstalled in libintl, we update this
+ dnl libintl. (Cf. the install rule in intl/Makefile.in.)
+ if test "$gt_cv_func_gnugettext_libc" = "yes" \
+ || { test "$gt_cv_func_gnugettext_libintl" = "yes" \
+ && test "$PACKAGE" != gettext-runtime \
+ && test "$PACKAGE" != gettext-tools; }; then
+ gt_use_preinstalled_gnugettext=yes
+ else
+ dnl Reset the values set by searching for libintl.
+ LIBINTL=
+ LTLIBINTL=
+ INCINTL=
+ fi
+
+ ifelse(gt_included_intl, yes, [
+ if test "$gt_use_preinstalled_gnugettext" != "yes"; then
+ dnl GNU gettext is not found in the C library.
+ dnl Fall back on included GNU gettext library.
+ nls_cv_use_gnu_gettext=yes
+ fi
+ fi
+
+ if test "$nls_cv_use_gnu_gettext" = "yes"; then
+ dnl Mark actions used to generate GNU NLS library.
+ BUILD_INCLUDED_LIBINTL=yes
+ USE_INCLUDED_LIBINTL=yes
+ LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV"
+ LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV"
+ LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
+ fi
+
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ dnl Mark actions to use GNU gettext tools.
+ CATOBJEXT=.gmo
+ fi
+ ])
+
+ if test "$gt_use_preinstalled_gnugettext" = "yes" \
+ || test "$nls_cv_use_gnu_gettext" = "yes"; then
+ AC_DEFINE(ENABLE_NLS, 1,
+ [Define to 1 if translation of program messages to the user's native language
+ is requested.])
+ else
+ USE_NLS=no
+ fi
+ fi
+
+ AC_MSG_CHECKING([whether to use NLS])
+ AC_MSG_RESULT([$USE_NLS])
+ if test "$USE_NLS" = "yes"; then
+ AC_MSG_CHECKING([where the gettext function comes from])
+ if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+ if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
+ gt_source="external libintl"
+ else
+ gt_source="libc"
+ fi
+ else
+ gt_source="included intl directory"
+ fi
+ AC_MSG_RESULT([$gt_source])
+ fi
+
+ if test "$USE_NLS" = "yes"; then
+
+ if test "$gt_use_preinstalled_gnugettext" = "yes"; then
+ if test "$gt_cv_func_gnugettext_libintl" = "yes"; then
+ AC_MSG_CHECKING([how to link with libintl])
+ AC_MSG_RESULT([$LIBINTL])
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL])
+ fi
+
+ dnl For backward compatibility. Some packages may be using this.
+ AC_DEFINE(HAVE_GETTEXT, 1,
+ [Define if the GNU gettext() function is already present or preinstalled.])
+ AC_DEFINE(HAVE_DCGETTEXT, 1,
+ [Define if the GNU dcgettext() function is already present or preinstalled.])
+ fi
+
+ dnl We need to process the po/ directory.
+ POSUB=po
+ fi
+
+ ifelse(gt_included_intl, yes, [
+ dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
+ dnl to 'yes' because some of the testsuite requires it.
+ if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
+ BUILD_INCLUDED_LIBINTL=yes
+ fi
+
+ dnl Make all variables we use known to autoconf.
+ AC_SUBST(BUILD_INCLUDED_LIBINTL)
+ AC_SUBST(USE_INCLUDED_LIBINTL)
+ AC_SUBST(CATOBJEXT)
+
+ dnl For backward compatibility. Some configure.ins may be using this.
+ nls_cv_header_intl=
+ nls_cv_header_libgt=
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ DATADIRNAME=share
+ AC_SUBST(DATADIRNAME)
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ INSTOBJEXT=.mo
+ AC_SUBST(INSTOBJEXT)
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ GENCAT=gencat
+ AC_SUBST(GENCAT)
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ if test "$USE_INCLUDED_LIBINTL" = yes; then
+ INTLOBJS="\$(GETTOBJS)"
+ fi
+ AC_SUBST(INTLOBJS)
+
+ dnl Enable libtool support if the surrounding package wishes it.
+ INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
+ AC_SUBST(INTL_LIBTOOL_SUFFIX_PREFIX)
+ ])
+
+ dnl For backward compatibility. Some Makefiles may be using this.
+ INTLLIBS="$LIBINTL"
+ AC_SUBST(INTLLIBS)
+
+ dnl Make all documented variables known to autoconf.
+ AC_SUBST(LIBINTL)
+ AC_SUBST(LTLIBINTL)
+ AC_SUBST(POSUB)
+])
+
+
+dnl Checks for all prerequisites of the intl subdirectory,
+dnl except for INTL_LIBTOOL_SUFFIX_PREFIX (and possibly LIBTOOL), INTLOBJS,
+dnl USE_INCLUDED_LIBINTL, BUILD_INCLUDED_LIBINTL.
+AC_DEFUN([AM_INTL_SUBDIR],
+[
+ AC_REQUIRE([AC_PROG_INSTALL])dnl
+ AC_REQUIRE([AM_MKINSTALLDIRS])dnl
+ AC_REQUIRE([AC_PROG_CC])dnl
+ AC_REQUIRE([AC_CANONICAL_HOST])dnl
+ AC_REQUIRE([AC_PROG_RANLIB])dnl
+ AC_REQUIRE([AC_ISC_POSIX])dnl
+ AC_REQUIRE([AC_HEADER_STDC])dnl
+ AC_REQUIRE([AC_C_CONST])dnl
+ AC_REQUIRE([bh_C_SIGNED])dnl
+ AC_REQUIRE([AC_C_INLINE])dnl
+ AC_REQUIRE([AC_TYPE_OFF_T])dnl
+ AC_REQUIRE([AC_TYPE_SIZE_T])dnl
+ AC_REQUIRE([jm_AC_TYPE_LONG_LONG])dnl
+ AC_REQUIRE([gt_TYPE_LONGDOUBLE])dnl
+ AC_REQUIRE([gt_TYPE_WCHAR_T])dnl
+ AC_REQUIRE([gt_TYPE_WINT_T])dnl
+ AC_REQUIRE([jm_AC_HEADER_INTTYPES_H])
+ AC_REQUIRE([jm_AC_HEADER_STDINT_H])
+ AC_REQUIRE([gt_TYPE_INTMAX_T])
+ AC_REQUIRE([gt_PRINTF_POSIX])
+ AC_REQUIRE([AC_FUNC_ALLOCA])dnl
+ AC_REQUIRE([AC_FUNC_MMAP])dnl
+ AC_REQUIRE([jm_GLIBC21])dnl
+ AC_REQUIRE([gt_INTDIV0])dnl
+ AC_REQUIRE([jm_AC_TYPE_UINTMAX_T])dnl
+ AC_REQUIRE([gt_HEADER_INTTYPES_H])dnl
+ AC_REQUIRE([gt_INTTYPES_PRI])dnl
+ AC_REQUIRE([gl_XSIZE])dnl
+
+ AC_CHECK_TYPE([ptrdiff_t], ,
+ [AC_DEFINE([ptrdiff_t], [long],
+ [Define as the type of the result of subtracting two pointers, if the system doesn't define it.])
+ ])
+ AC_CHECK_HEADERS([argz.h limits.h locale.h nl_types.h malloc.h stddef.h \
+stdlib.h string.h unistd.h sys/param.h])
+ AC_CHECK_FUNCS([asprintf fwprintf getcwd getegid geteuid getgid getuid \
+mempcpy munmap putenv setenv setlocale snprintf stpcpy strcasecmp strdup \
+strtoul tsearch wcslen __argz_count __argz_stringify __argz_next \
+__fsetlocking])
+
+ dnl Use the _snprintf function only if it is declared (because on NetBSD it
+ dnl is defined as a weak alias of snprintf; we prefer to use the latter).
+ gt_CHECK_DECL(_snprintf, [#include <stdio.h>])
+ gt_CHECK_DECL(_snwprintf, [#include <stdio.h>])
+
+ dnl Use the *_unlocked functions only if they are declared.
+ dnl (because some of them were defined without being declared in Solaris
+ dnl 2.5.1 but were removed in Solaris 2.6, whereas we want binaries built
+ dnl on Solaris 2.5.1 to run on Solaris 2.6).
+ dnl Don't use AC_CHECK_DECLS because it isn't supported in autoconf-2.13.
+ gt_CHECK_DECL(feof_unlocked, [#include <stdio.h>])
+ gt_CHECK_DECL(fgets_unlocked, [#include <stdio.h>])
+ gt_CHECK_DECL(getc_unlocked, [#include <stdio.h>])
+
+ case $gt_cv_func_printf_posix in
+ *yes) HAVE_POSIX_PRINTF=1 ;;
+ *) HAVE_POSIX_PRINTF=0 ;;
+ esac
+ AC_SUBST([HAVE_POSIX_PRINTF])
+ if test "$ac_cv_func_asprintf" = yes; then
+ HAVE_ASPRINTF=1
+ else
+ HAVE_ASPRINTF=0
+ fi
+ AC_SUBST([HAVE_ASPRINTF])
+ if test "$ac_cv_func_snprintf" = yes; then
+ HAVE_SNPRINTF=1
+ else
+ HAVE_SNPRINTF=0
+ fi
+ AC_SUBST([HAVE_SNPRINTF])
+ if test "$ac_cv_func_wprintf" = yes; then
+ HAVE_WPRINTF=1
+ else
+ HAVE_WPRINTF=0
+ fi
+ AC_SUBST([HAVE_WPRINTF])
+
+ AM_ICONV
+ AM_LANGINFO_CODESET
+ if test $ac_cv_header_locale_h = yes; then
+ AM_LC_MESSAGES
+ fi
+
+ dnl intl/plural.c is generated from intl/plural.y. It requires bison,
+ dnl because plural.y uses bison specific features. It requires at least
+ dnl bison-1.26 because earlier versions generate a plural.c that doesn't
+ dnl compile.
+ dnl bison is only needed for the maintainer (who touches plural.y). But in
+ dnl order to avoid separate Makefiles or --enable-maintainer-mode, we put
+ dnl the rule in general Makefile. Now, some people carelessly touch the
+ dnl files or have a broken "make" program, hence the plural.c rule will
+ dnl sometimes fire. To avoid an error, defines BISON to ":" if it is not
+ dnl present or too old.
+ AC_CHECK_PROGS([INTLBISON], [bison])
+ if test -z "$INTLBISON"; then
+ ac_verc_fail=yes
+ else
+ dnl Found it, now check the version.
+ AC_MSG_CHECKING([version of bison])
+changequote(<<,>>)dnl
+ ac_prog_version=`$INTLBISON --version 2>&1 | sed -n 's/^.*GNU Bison.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
+ case $ac_prog_version in
+ '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+ 1.2[6-9]* | 1.[3-9][0-9]* | [2-9].*)
+changequote([,])dnl
+ ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+ *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+ esac
+ AC_MSG_RESULT([$ac_prog_version])
+ fi
+ if test $ac_verc_fail = yes; then
+ INTLBISON=:
+ fi
+])
+
+
+dnl gt_CHECK_DECL(FUNC, INCLUDES)
+dnl Check whether a function is declared.
+AC_DEFUN([gt_CHECK_DECL],
+[
+ AC_CACHE_CHECK([whether $1 is declared], ac_cv_have_decl_$1,
+ [AC_TRY_COMPILE([$2], [
+#ifndef $1
+ char *p = (char *) $1;
+#endif
+], ac_cv_have_decl_$1=yes, ac_cv_have_decl_$1=no)])
+ if test $ac_cv_have_decl_$1 = yes; then
+ gt_value=1
+ else
+ gt_value=0
+ fi
+ AC_DEFINE_UNQUOTED([HAVE_DECL_]translit($1, [a-z], [A-Z]), [$gt_value],
+ [Define to 1 if you have the declaration of `$1', and to 0 if you don't.])
+])
+
+
+dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
+AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
diff --git a/m4/iconv.m4 b/m4/iconv.m4
new file mode 100644
index 0000000..c5f3579
--- /dev/null
+++ b/m4/iconv.m4
@@ -0,0 +1,103 @@
+# iconv.m4 serial AM4 (gettext-0.11.3)
+dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
+[
+ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+
+ dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+ dnl accordingly.
+ AC_LIB_LINKFLAGS_BODY([iconv])
+])
+
+AC_DEFUN([AM_ICONV_LINK],
+[
+ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
+ dnl those with the standalone portable GNU libiconv installed).
+
+ dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV
+ dnl accordingly.
+ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
+
+ dnl Add $INCICONV to CPPFLAGS before performing the following checks,
+ dnl because if the user has installed libiconv and not disabled its use
+ dnl via --without-libiconv-prefix, he wants to use it. The first
+ dnl AC_TRY_LINK will then fail, the second AC_TRY_LINK will succeed.
+ am_save_CPPFLAGS="$CPPFLAGS"
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV])
+
+ AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
+ am_cv_func_iconv="no, consider installing GNU libiconv"
+ am_cv_lib_iconv=no
+ AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
+ [iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);],
+ am_cv_func_iconv=yes)
+ if test "$am_cv_func_iconv" != yes; then
+ am_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIBICONV"
+ AC_TRY_LINK([#include <stdlib.h>
+#include <iconv.h>],
+ [iconv_t cd = iconv_open("","");
+ iconv(cd,NULL,NULL,NULL,NULL);
+ iconv_close(cd);],
+ am_cv_lib_iconv=yes
+ am_cv_func_iconv=yes)
+ LIBS="$am_save_LIBS"
+ fi
+ ])
+ if test "$am_cv_func_iconv" = yes; then
+ AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
+ fi
+ if test "$am_cv_lib_iconv" = yes; then
+ AC_MSG_CHECKING([how to link with libiconv])
+ AC_MSG_RESULT([$LIBICONV])
+ else
+ dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV
+ dnl either.
+ CPPFLAGS="$am_save_CPPFLAGS"
+ LIBICONV=
+ LTLIBICONV=
+ fi
+ AC_SUBST(LIBICONV)
+ AC_SUBST(LTLIBICONV)
+])
+
+AC_DEFUN([AM_ICONV],
+[
+ AM_ICONV_LINK
+ if test "$am_cv_func_iconv" = yes; then
+ AC_MSG_CHECKING([for iconv declaration])
+ AC_CACHE_VAL(am_cv_proto_iconv, [
+ AC_TRY_COMPILE([
+#include <stdlib.h>
+#include <iconv.h>
+extern
+#ifdef __cplusplus
+"C"
+#endif
+#if defined(__STDC__) || defined(__cplusplus)
+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
+#else
+size_t iconv();
+#endif
+], [], am_cv_proto_iconv_arg1="", am_cv_proto_iconv_arg1="const")
+ am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
+ am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
+ AC_MSG_RESULT([$]{ac_t:-
+ }[$]am_cv_proto_iconv)
+ AC_DEFINE_UNQUOTED(ICONV_CONST, $am_cv_proto_iconv_arg1,
+ [Define as const if the declaration of iconv() needs const.])
+ fi
+])
diff --git a/m4/lib-ld.m4 b/m4/lib-ld.m4
new file mode 100644
index 0000000..38aeaec
--- /dev/null
+++ b/m4/lib-ld.m4
@@ -0,0 +1,112 @@
+# lib-ld.m4 serial 3 (gettext-0.13)
+dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl Subroutines of libtool.m4,
+dnl with replacements s/AC_/AC_LIB/ and s/lt_cv/acl_cv/ to avoid collision
+dnl with libtool.m4.
+
+dnl From libtool-1.4. Sets the variable with_gnu_ld to yes or no.
+AC_DEFUN([AC_LIB_PROG_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], acl_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU ld's only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ acl_cv_prog_gnu_ld=yes ;;
+*)
+ acl_cv_prog_gnu_ld=no ;;
+esac])
+with_gnu_ld=$acl_cv_prog_gnu_ld
+])
+
+dnl From libtool-1.4. Sets the variable LD.
+AC_DEFUN([AC_LIB_PROG_LD],
+[AC_ARG_WITH(gnu-ld,
+[ --with-gnu-ld assume the C compiler uses GNU ld [default=no]],
+test "$withval" = no || with_gnu_ld=yes, with_gnu_ld=no)
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
+ac_prog=ld
+if test "$GCC" = yes; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ AC_MSG_CHECKING([for ld used by GCC])
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [[\\/]* | [A-Za-z]:[\\/]*)]
+ [re_direlt='/[^/][^/]*/\.\./']
+ # Canonicalize the path of ld
+ ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'`
+ while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD="$ac_prog"
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test "$with_gnu_ld" = yes; then
+ AC_MSG_CHECKING([for GNU ld])
+else
+ AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(acl_cv_path_LD,
+[if test -z "$LD"; then
+ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}"
+ for ac_dir in $PATH; do
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ acl_cv_path_LD="$ac_dir/$ac_prog"
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some GNU ld's only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in
+ *GNU* | *'with BFD'*)
+ test "$with_gnu_ld" != no && break ;;
+ *)
+ test "$with_gnu_ld" != yes && break ;;
+ esac
+ fi
+ done
+ IFS="$ac_save_ifs"
+else
+ acl_cv_path_LD="$LD" # Let the user override the test with a path.
+fi])
+LD="$acl_cv_path_LD"
+if test -n "$LD"; then
+ AC_MSG_RESULT($LD)
+else
+ AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+AC_LIB_PROG_LD_GNU
+])
diff --git a/m4/lib-link.m4 b/m4/lib-link.m4
new file mode 100644
index 0000000..eeb200d
--- /dev/null
+++ b/m4/lib-link.m4
@@ -0,0 +1,551 @@
+# lib-link.m4 serial 4 (gettext-0.12)
+dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets and AC_SUBSTs the LIB${NAME} and LTLIB${NAME} variables and
+dnl augments the CPPFLAGS variable.
+AC_DEFUN([AC_LIB_LINKFLAGS],
+[
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+ define([Name],[translit([$1],[./-], [___])])
+ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+ AC_CACHE_CHECK([how to link with lib[]$1], [ac_cv_lib[]Name[]_libs], [
+ AC_LIB_LINKFLAGS_BODY([$1], [$2])
+ ac_cv_lib[]Name[]_libs="$LIB[]NAME"
+ ac_cv_lib[]Name[]_ltlibs="$LTLIB[]NAME"
+ ac_cv_lib[]Name[]_cppflags="$INC[]NAME"
+ ])
+ LIB[]NAME="$ac_cv_lib[]Name[]_libs"
+ LTLIB[]NAME="$ac_cv_lib[]Name[]_ltlibs"
+ INC[]NAME="$ac_cv_lib[]Name[]_cppflags"
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+ AC_SUBST([LIB]NAME)
+ AC_SUBST([LTLIB]NAME)
+ dnl Also set HAVE_LIB[]NAME so that AC_LIB_HAVE_LINKFLAGS can reuse the
+ dnl results of this search when this library appears as a dependency.
+ HAVE_LIB[]NAME=yes
+ undefine([Name])
+ undefine([NAME])
+])
+
+dnl AC_LIB_HAVE_LINKFLAGS(name, dependencies, includes, testcode)
+dnl searches for libname and the libraries corresponding to explicit and
+dnl implicit dependencies, together with the specified include files and
+dnl the ability to compile and link the specified testcode. If found, it
+dnl sets and AC_SUBSTs HAVE_LIB${NAME}=yes and the LIB${NAME} and
+dnl LTLIB${NAME} variables and augments the CPPFLAGS variable, and
+dnl #defines HAVE_LIB${NAME} to 1. Otherwise, it sets and AC_SUBSTs
+dnl HAVE_LIB${NAME}=no and LIB${NAME} and LTLIB${NAME} to empty.
+AC_DEFUN([AC_LIB_HAVE_LINKFLAGS],
+[
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ AC_REQUIRE([AC_LIB_RPATH])
+ define([Name],[translit([$1],[./-], [___])])
+ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+
+ dnl Search for lib[]Name and define LIB[]NAME, LTLIB[]NAME and INC[]NAME
+ dnl accordingly.
+ AC_LIB_LINKFLAGS_BODY([$1], [$2])
+
+ dnl Add $INC[]NAME to CPPFLAGS before performing the following checks,
+ dnl because if the user has installed lib[]Name and not disabled its use
+ dnl via --without-lib[]Name-prefix, he wants to use it.
+ ac_save_CPPFLAGS="$CPPFLAGS"
+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INC]NAME)
+
+ AC_CACHE_CHECK([for lib[]$1], [ac_cv_lib[]Name], [
+ ac_save_LIBS="$LIBS"
+ LIBS="$LIBS $LIB[]NAME"
+ AC_TRY_LINK([$3], [$4], [ac_cv_lib[]Name=yes], [ac_cv_lib[]Name=no])
+ LIBS="$ac_save_LIBS"
+ ])
+ if test "$ac_cv_lib[]Name" = yes; then
+ HAVE_LIB[]NAME=yes
+ AC_DEFINE([HAVE_LIB]NAME, 1, [Define if you have the $1 library.])
+ AC_MSG_CHECKING([how to link with lib[]$1])
+ AC_MSG_RESULT([$LIB[]NAME])
+ else
+ HAVE_LIB[]NAME=no
+ dnl If $LIB[]NAME didn't lead to a usable library, we don't need
+ dnl $INC[]NAME either.
+ CPPFLAGS="$ac_save_CPPFLAGS"
+ LIB[]NAME=
+ LTLIB[]NAME=
+ fi
+ AC_SUBST([HAVE_LIB]NAME)
+ AC_SUBST([LIB]NAME)
+ AC_SUBST([LTLIB]NAME)
+ undefine([Name])
+ undefine([NAME])
+])
+
+dnl Determine the platform dependent parameters needed to use rpath:
+dnl libext, shlibext, hardcode_libdir_flag_spec, hardcode_libdir_separator,
+dnl hardcode_direct, hardcode_minus_L.
+AC_DEFUN([AC_LIB_RPATH],
+[
+ AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS
+ AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld
+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host
+ AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT]) dnl we use $ac_aux_dir
+ AC_CACHE_CHECK([for shared library run path origin], acl_cv_rpath, [
+ CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \
+ ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh
+ . ./conftest.sh
+ rm -f ./conftest.sh
+ acl_cv_rpath=done
+ ])
+ wl="$acl_cv_wl"
+ libext="$acl_cv_libext"
+ shlibext="$acl_cv_shlibext"
+ hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec"
+ hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator"
+ hardcode_direct="$acl_cv_hardcode_direct"
+ hardcode_minus_L="$acl_cv_hardcode_minus_L"
+ dnl Determine whether the user wants rpath handling at all.
+ AC_ARG_ENABLE(rpath,
+ [ --disable-rpath do not hardcode runtime library paths],
+ :, enable_rpath=yes)
+])
+
+dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and
+dnl the libraries corresponding to explicit and implicit dependencies.
+dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables.
+AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
+[
+ define([NAME],[translit([$1],[abcdefghijklmnopqrstuvwxyz./-],
+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ___])])
+ dnl By default, look in $includedir and $libdir.
+ use_additional=yes
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ AC_LIB_ARG_WITH([lib$1-prefix],
+[ --with-lib$1-prefix[=DIR] search for lib$1 in DIR/include and DIR/lib
+ --without-lib$1-prefix don't search for lib$1 in includedir and libdir],
+[
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ else
+ additional_includedir="$withval/include"
+ additional_libdir="$withval/lib"
+ fi
+ fi
+])
+ dnl Search the library and its dependencies in $additional_libdir and
+ dnl $LDFLAGS. Using breadth-first-seach.
+ LIB[]NAME=
+ LTLIB[]NAME=
+ INC[]NAME=
+ rpathdirs=
+ ltrpathdirs=
+ names_already_handled=
+ names_next_round='$1 $2'
+ while test -n "$names_next_round"; do
+ names_this_round="$names_next_round"
+ names_next_round=
+ for name in $names_this_round; do
+ already_handled=
+ for n in $names_already_handled; do
+ if test "$n" = "$name"; then
+ already_handled=yes
+ break
+ fi
+ done
+ if test -z "$already_handled"; then
+ names_already_handled="$names_already_handled $name"
+ dnl See if it was already located by an earlier AC_LIB_LINKFLAGS
+ dnl or AC_LIB_HAVE_LINKFLAGS call.
+ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'`
+ eval value=\"\$HAVE_LIB$uppername\"
+ if test -n "$value"; then
+ if test "$value" = yes; then
+ eval value=\"\$LIB$uppername\"
+ test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value"
+ eval value=\"\$LTLIB$uppername\"
+ test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value"
+ else
+ dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined
+ dnl that this library doesn't exist. So just drop it.
+ :
+ fi
+ else
+ dnl Search the library lib$name in $additional_libdir and $LDFLAGS
+ dnl and the already constructed $LIBNAME/$LTLIBNAME.
+ found_dir=
+ found_la=
+ found_so=
+ found_a=
+ if test $use_additional = yes; then
+ if test -n "$shlibext" && test -f "$additional_libdir/lib$name.$shlibext"; then
+ found_dir="$additional_libdir"
+ found_so="$additional_libdir/lib$name.$shlibext"
+ if test -f "$additional_libdir/lib$name.la"; then
+ found_la="$additional_libdir/lib$name.la"
+ fi
+ else
+ if test -f "$additional_libdir/lib$name.$libext"; then
+ found_dir="$additional_libdir"
+ found_a="$additional_libdir/lib$name.$libext"
+ if test -f "$additional_libdir/lib$name.la"; then
+ found_la="$additional_libdir/lib$name.la"
+ fi
+ fi
+ fi
+ fi
+ if test "X$found_dir" = "X"; then
+ for x in $LDFLAGS $LTLIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ case "$x" in
+ -L*)
+ dir=`echo "X$x" | sed -e 's/^X-L//'`
+ if test -n "$shlibext" && test -f "$dir/lib$name.$shlibext"; then
+ found_dir="$dir"
+ found_so="$dir/lib$name.$shlibext"
+ if test -f "$dir/lib$name.la"; then
+ found_la="$dir/lib$name.la"
+ fi
+ else
+ if test -f "$dir/lib$name.$libext"; then
+ found_dir="$dir"
+ found_a="$dir/lib$name.$libext"
+ if test -f "$dir/lib$name.la"; then
+ found_la="$dir/lib$name.la"
+ fi
+ fi
+ fi
+ ;;
+ esac
+ if test "X$found_dir" != "X"; then
+ break
+ fi
+ done
+ fi
+ if test "X$found_dir" != "X"; then
+ dnl Found the library.
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name"
+ if test "X$found_so" != "X"; then
+ dnl Linking with a shared library. We attempt to hardcode its
+ dnl directory into the executable's runpath, unless it's the
+ dnl standard /usr/lib.
+ if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/lib"; then
+ dnl No hardcoding is needed.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ else
+ dnl Use an explicit option to hardcode DIR into the resulting
+ dnl binary.
+ dnl Potentially add DIR to ltrpathdirs.
+ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $found_dir"
+ fi
+ dnl The hardcoding into $LIBNAME is system dependent.
+ if test "$hardcode_direct" = yes; then
+ dnl Using DIR/libNAME.so during linking hardcodes DIR into the
+ dnl resulting binary.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ else
+ if test -n "$hardcode_libdir_flag_spec" && test "$hardcode_minus_L" = no; then
+ dnl Use an explicit option to hardcode DIR into the resulting
+ dnl binary.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ dnl Potentially add DIR to rpathdirs.
+ dnl The rpathdirs will be appended to $LIBNAME at the end.
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $found_dir"
+ fi
+ else
+ dnl Rely on "-L$found_dir".
+ dnl But don't add it if it's already contained in the LDFLAGS
+ dnl or the already constructed $LIBNAME
+ haveit=
+ for x in $LDFLAGS $LIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$found_dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir"
+ fi
+ if test "$hardcode_minus_L" != no; then
+ dnl FIXME: Not sure whether we should use
+ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+ dnl here.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
+ else
+ dnl We cannot use $hardcode_runpath_var and LD_RUN_PATH
+ dnl here, because this doesn't fit in flags passed to the
+ dnl compiler. So give up. No hardcoding. This affects only
+ dnl very old systems.
+ dnl FIXME: Not sure whether we should use
+ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so"
+ dnl here.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+ fi
+ fi
+ fi
+ fi
+ else
+ if test "X$found_a" != "X"; then
+ dnl Linking with a static library.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a"
+ else
+ dnl We shouldn't come here, but anyway it's good to have a
+ dnl fallback.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name"
+ fi
+ fi
+ dnl Assume the include files are nearby.
+ additional_includedir=
+ case "$found_dir" in
+ */lib | */lib/)
+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e 's,/lib/*$,,'`
+ additional_includedir="$basedir/include"
+ ;;
+ esac
+ if test "X$additional_includedir" != "X"; then
+ dnl Potentially add $additional_includedir to $INCNAME.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/include,
+ dnl 2. if it's /usr/local/include and we are using GCC on Linux,
+ dnl 3. if it's already present in $CPPFLAGS or the already
+ dnl constructed $INCNAME,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux*) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ for x in $CPPFLAGS $INC[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ dnl Really add $additional_includedir to $INCNAME.
+ INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ fi
+ dnl Look for dependencies.
+ if test -n "$found_la"; then
+ dnl Read the .la file. It defines the variables
+ dnl dlname, library_names, old_library, dependency_libs, current,
+ dnl age, revision, installed, dlopen, dlpreopen, libdir.
+ save_libdir="$libdir"
+ case "$found_la" in
+ */* | *\\*) . "$found_la" ;;
+ *) . "./$found_la" ;;
+ esac
+ libdir="$save_libdir"
+ dnl We use only dependency_libs.
+ for dep in $dependency_libs; do
+ case "$dep" in
+ -L*)
+ additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+ dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/lib,
+ dnl 2. if it's /usr/local/lib and we are using GCC on Linux,
+ dnl 3. if it's already present in $LDFLAGS or the already
+ dnl constructed $LIBNAME,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_libdir" != "X/usr/lib"; then
+ haveit=
+ if test "X$additional_libdir" = "X/usr/local/lib"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux*) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ haveit=
+ for x in $LDFLAGS $LIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ dnl Really add $additional_libdir to $LIBNAME.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
+ fi
+ fi
+ haveit=
+ for x in $LDFLAGS $LTLIB[]NAME; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ dnl Really add $additional_libdir to $LTLIBNAME.
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
+ fi
+ fi
+ fi
+ fi
+ ;;
+ -R*)
+ dir=`echo "X$dep" | sed -e 's/^X-R//'`
+ if test "$enable_rpath" != no; then
+ dnl Potentially add DIR to rpathdirs.
+ dnl The rpathdirs will be appended to $LIBNAME at the end.
+ haveit=
+ for x in $rpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ rpathdirs="$rpathdirs $dir"
+ fi
+ dnl Potentially add DIR to ltrpathdirs.
+ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end.
+ haveit=
+ for x in $ltrpathdirs; do
+ if test "X$x" = "X$dir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ ltrpathdirs="$ltrpathdirs $dir"
+ fi
+ fi
+ ;;
+ -l*)
+ dnl Handle this in the next round.
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+ ;;
+ *.la)
+ dnl Handle this in the next round. Throw away the .la's
+ dnl directory; it is already contained in a preceding -L
+ dnl option.
+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
+ ;;
+ *)
+ dnl Most likely an immediate library name.
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep"
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep"
+ ;;
+ esac
+ done
+ fi
+ else
+ dnl Didn't find the library; assume it is in the system directories
+ dnl known to the linker and runtime loader. (All the system
+ dnl directories known to the linker should also be known to the
+ dnl runtime loader, otherwise the system is severely misconfigured.)
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name"
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name"
+ fi
+ fi
+ fi
+ done
+ done
+ if test "X$rpathdirs" != "X"; then
+ if test -n "$hardcode_libdir_separator"; then
+ dnl Weird platform: only the last -rpath option counts, the user must
+ dnl pass all path elements in one option. We can arrange that for a
+ dnl single library, but not when more than one $LIBNAMEs are used.
+ alldirs=
+ for found_dir in $rpathdirs; do
+ alldirs="${alldirs}${alldirs:+$hardcode_libdir_separator}$found_dir"
+ done
+ dnl Note: hardcode_libdir_flag_spec uses $libdir and $wl.
+ acl_save_libdir="$libdir"
+ libdir="$alldirs"
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+ else
+ dnl The -rpath options are cumulative.
+ for found_dir in $rpathdirs; do
+ acl_save_libdir="$libdir"
+ libdir="$found_dir"
+ eval flag=\"$hardcode_libdir_flag_spec\"
+ libdir="$acl_save_libdir"
+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag"
+ done
+ fi
+ fi
+ if test "X$ltrpathdirs" != "X"; then
+ dnl When using libtool, the option that works for both libraries and
+ dnl executables is -R. The -R options are cumulative.
+ for found_dir in $ltrpathdirs; do
+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
+ done
+ fi
+])
+
+dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR,
+dnl unless already present in VAR.
+dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes
+dnl contains two or three consecutive elements that belong together.
+AC_DEFUN([AC_LIB_APPENDTOVAR],
+[
+ for element in [$2]; do
+ haveit=
+ for x in $[$1]; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X$element"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ [$1]="${[$1]}${[$1]:+ }$element"
+ fi
+ done
+])
diff --git a/m4/lib-prefix.m4 b/m4/lib-prefix.m4
new file mode 100644
index 0000000..8aff5a9
--- /dev/null
+++ b/m4/lib-prefix.m4
@@ -0,0 +1,155 @@
+# lib-prefix.m4 serial 3 (gettext-0.13)
+dnl Copyright (C) 2001-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+
+dnl From Bruno Haible.
+
+dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
+dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
+dnl require excessive bracketing.
+ifdef([AC_HELP_STRING],
+[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
+[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
+
+dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
+dnl to access previously installed libraries. The basic assumption is that
+dnl a user will want packages to use other packages he previously installed
+dnl with the same --prefix option.
+dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate
+dnl libraries, but is otherwise very convenient.
+AC_DEFUN([AC_LIB_PREFIX],
+[
+ AC_BEFORE([$0], [AC_LIB_LINKFLAGS])
+ AC_REQUIRE([AC_PROG_CC])
+ AC_REQUIRE([AC_CANONICAL_HOST])
+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX])
+ dnl By default, look in $includedir and $libdir.
+ use_additional=yes
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ AC_LIB_ARG_WITH([lib-prefix],
+[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
+ --without-lib-prefix don't search for libraries in includedir and libdir],
+[
+ if test "X$withval" = "Xno"; then
+ use_additional=no
+ else
+ if test "X$withval" = "X"; then
+ AC_LIB_WITH_FINAL_PREFIX([
+ eval additional_includedir=\"$includedir\"
+ eval additional_libdir=\"$libdir\"
+ ])
+ else
+ additional_includedir="$withval/include"
+ additional_libdir="$withval/lib"
+ fi
+ fi
+])
+ if test $use_additional = yes; then
+ dnl Potentially add $additional_includedir to $CPPFLAGS.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/include,
+ dnl 2. if it's already present in $CPPFLAGS,
+ dnl 3. if it's /usr/local/include and we are using GCC on Linux,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_includedir" != "X/usr/include"; then
+ haveit=
+ for x in $CPPFLAGS; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-I$additional_includedir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test "X$additional_includedir" = "X/usr/local/include"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux*) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ if test -d "$additional_includedir"; then
+ dnl Really add $additional_includedir to $CPPFLAGS.
+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir"
+ fi
+ fi
+ fi
+ fi
+ dnl Potentially add $additional_libdir to $LDFLAGS.
+ dnl But don't add it
+ dnl 1. if it's the standard /usr/lib,
+ dnl 2. if it's already present in $LDFLAGS,
+ dnl 3. if it's /usr/local/lib and we are using GCC on Linux,
+ dnl 4. if it doesn't exist as a directory.
+ if test "X$additional_libdir" != "X/usr/lib"; then
+ haveit=
+ for x in $LDFLAGS; do
+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
+ if test "X$x" = "X-L$additional_libdir"; then
+ haveit=yes
+ break
+ fi
+ done
+ if test -z "$haveit"; then
+ if test "X$additional_libdir" = "X/usr/local/lib"; then
+ if test -n "$GCC"; then
+ case $host_os in
+ linux*) haveit=yes;;
+ esac
+ fi
+ fi
+ if test -z "$haveit"; then
+ if test -d "$additional_libdir"; then
+ dnl Really add $additional_libdir to $LDFLAGS.
+ LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir"
+ fi
+ fi
+ fi
+ fi
+ fi
+])
+
+dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix,
+dnl acl_final_exec_prefix, containing the values to which $prefix and
+dnl $exec_prefix will expand at the end of the configure script.
+AC_DEFUN([AC_LIB_PREPARE_PREFIX],
+[
+ dnl Unfortunately, prefix and exec_prefix get only finally determined
+ dnl at the end of configure.
+ if test "X$prefix" = "XNONE"; then
+ acl_final_prefix="$ac_default_prefix"
+ else
+ acl_final_prefix="$prefix"
+ fi
+ if test "X$exec_prefix" = "XNONE"; then
+ acl_final_exec_prefix='${prefix}'
+ else
+ acl_final_exec_prefix="$exec_prefix"
+ fi
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ eval acl_final_exec_prefix=\"$acl_final_exec_prefix\"
+ prefix="$acl_save_prefix"
+])
+
+dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the
+dnl variables prefix and exec_prefix bound to the values they will have
+dnl at the end of the configure script.
+AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
+[
+ acl_save_prefix="$prefix"
+ prefix="$acl_final_prefix"
+ acl_save_exec_prefix="$exec_prefix"
+ exec_prefix="$acl_final_exec_prefix"
+ $1
+ exec_prefix="$acl_save_exec_prefix"
+ prefix="$acl_save_prefix"
+])
diff --git a/m4/libtool.m4 b/m4/libtool.m4
new file mode 100644
index 0000000..e7b6833
--- /dev/null
+++ b/m4/libtool.m4
@@ -0,0 +1,8427 @@
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+#
+# Copyright (C) 1996-2001, 2003-2019, 2021-2022 Free Software
+# Foundation, Inc.
+# Written by Gordon Matzigkeit, 1996
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+m4_define([_LT_COPYING], [dnl
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This is free software; see the source for copying conditions. There is NO
+# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+# GNU Libtool 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 2 of of the License, or
+# (at your option) any later version.
+#
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program or library that is built
+# using GNU Libtool, you may include this file under the same
+# distribution terms that you use for the rest of that program.
+#
+# GNU Libtool 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
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+])
+
+# serial 59 LT_INIT
+
+
+# LT_PREREQ(VERSION)
+# ------------------
+# Complain and exit if this libtool version is less that VERSION.
+m4_defun([LT_PREREQ],
+[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
+ [m4_default([$3],
+ [m4_fatal([Libtool version $1 or higher is required],
+ 63)])],
+ [$2])])
+
+
+# _LT_CHECK_BUILDDIR
+# ------------------
+# Complain if the absolute build directory name contains unusual characters
+m4_defun([_LT_CHECK_BUILDDIR],
+[case `pwd` in
+ *\ * | *\ *)
+ AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
+esac
+])
+
+
+# LT_INIT([OPTIONS])
+# ------------------
+AC_DEFUN([LT_INIT],
+[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK
+AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
+AC_BEFORE([$0], [LT_LANG])dnl
+AC_BEFORE([$0], [LT_OUTPUT])dnl
+AC_BEFORE([$0], [LTDL_INIT])dnl
+m4_require([_LT_CHECK_BUILDDIR])dnl
+
+dnl Autoconf doesn't catch unexpanded LT_ macros by default:
+m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
+m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
+dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
+dnl unless we require an AC_DEFUNed macro:
+AC_REQUIRE([LTOPTIONS_VERSION])dnl
+AC_REQUIRE([LTSUGAR_VERSION])dnl
+AC_REQUIRE([LTVERSION_VERSION])dnl
+AC_REQUIRE([LTOBSOLETE_VERSION])dnl
+m4_require([_LT_PROG_LTMAIN])dnl
+
+_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
+
+dnl Parse OPTIONS
+_LT_SET_OPTIONS([$0], [$1])
+
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS=$ltmain
+
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
+
+_LT_SETUP
+
+# Only expand once:
+m4_define([LT_INIT])
+])# LT_INIT
+
+# Old names:
+AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
+AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
+dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
+
+
+# _LT_PREPARE_CC_BASENAME
+# -----------------------
+m4_defun([_LT_PREPARE_CC_BASENAME], [
+# Calculate cc_basename. Skip known compiler wrappers and cross-prefix.
+func_cc_basename ()
+{
+ for cc_temp in @S|@*""; do
+ case $cc_temp in
+ compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
+ distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
+ \-*) ;;
+ *) break;;
+ esac
+ done
+ func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
+}
+])# _LT_PREPARE_CC_BASENAME
+
+
+# _LT_CC_BASENAME(CC)
+# -------------------
+# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME,
+# but that macro is also expanded into generated libtool script, which
+# arranges for $SED and $ECHO to be set by different means.
+m4_defun([_LT_CC_BASENAME],
+[m4_require([_LT_PREPARE_CC_BASENAME])dnl
+AC_REQUIRE([_LT_DECL_SED])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+func_cc_basename $1
+cc_basename=$func_cc_basename_result
+])
+
+
+# _LT_FILEUTILS_DEFAULTS
+# ----------------------
+# It is okay to use these file commands and assume they have been set
+# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'.
+m4_defun([_LT_FILEUTILS_DEFAULTS],
+[: ${CP="cp -f"}
+: ${MV="mv -f"}
+: ${RM="rm -f"}
+])# _LT_FILEUTILS_DEFAULTS
+
+
+# _LT_SETUP
+# ---------
+m4_defun([_LT_SETUP],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
+
+_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
+dnl
+_LT_DECL([], [host_alias], [0], [The host system])dnl
+_LT_DECL([], [host], [0])dnl
+_LT_DECL([], [host_os], [0])dnl
+dnl
+_LT_DECL([], [build_alias], [0], [The build system])dnl
+_LT_DECL([], [build], [0])dnl
+_LT_DECL([], [build_os], [0])dnl
+dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+dnl
+AC_REQUIRE([AC_PROG_LN_S])dnl
+test -z "$LN_S" && LN_S="ln -s"
+_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
+dnl
+AC_REQUIRE([LT_CMD_MAX_LEN])dnl
+_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
+_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
+dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
+m4_require([_LT_CMD_RELOAD])dnl
+m4_require([_LT_DECL_FILECMD])dnl
+m4_require([_LT_CHECK_MAGIC_METHOD])dnl
+m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
+m4_require([_LT_CMD_OLD_ARCHIVE])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_WITH_SYSROOT])dnl
+m4_require([_LT_CMD_TRUNCATE])dnl
+
+_LT_CONFIG_LIBTOOL_INIT([
+# See if we are running on zsh, and set the options that allow our
+# commands through without removal of \ escapes INIT.
+if test -n "\${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+fi
+])
+if test -n "${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+fi
+
+_LT_CHECK_OBJDIR
+
+m4_require([_LT_TAG_COMPILER])dnl
+
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test set != "${COLLECT_NAMES+set}"; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
+
+# Global variables:
+ofile=libtool
+can_build_shared=yes
+
+# All known linkers require a '.a' archive for static linking (except MSVC and
+# ICC, which need '.lib').
+libext=a
+
+with_gnu_ld=$lt_cv_prog_gnu_ld
+
+old_CC=$CC
+old_CFLAGS=$CFLAGS
+
+# Set sane defaults for various variables
+test -z "$CC" && CC=cc
+test -z "$LTCC" && LTCC=$CC
+test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
+test -z "$LD" && LD=ld
+test -z "$ac_objext" && ac_objext=o
+
+_LT_CC_BASENAME([$compiler])
+
+# Only perform the check for file, if the check method requires it
+test -z "$MAGIC_CMD" && MAGIC_CMD=file
+case $deplibs_check_method in
+file_magic*)
+ if test "$file_magic_cmd" = '$MAGIC_CMD'; then
+ _LT_PATH_MAGIC
+ fi
+ ;;
+esac
+
+# Use C for the default configuration in the libtool script
+LT_SUPPORTED_TAG([CC])
+_LT_LANG_C_CONFIG
+_LT_LANG_DEFAULT_CONFIG
+_LT_CONFIG_COMMANDS
+])# _LT_SETUP
+
+
+# _LT_PREPARE_SED_QUOTE_VARS
+# --------------------------
+# Define a few sed substitution that help us do robust quoting.
+m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
+[# Backslashify metacharacters that are still active within
+# double-quoted strings.
+sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
+
+# Same as above, but do not quote variable references.
+double_quote_subst='s/\([["`\\]]\)/\\\1/g'
+
+# Sed substitution to delay expansion of an escaped shell variable in a
+# double_quote_subst'ed string.
+delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
+
+# Sed substitution to delay expansion of an escaped single quote.
+delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
+
+# Sed substitution to avoid accidental globbing in evaled expressions
+no_glob_subst='s/\*/\\\*/g'
+])
+
+# _LT_PROG_LTMAIN
+# ---------------
+# Note that this code is called both from 'configure', and 'config.status'
+# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably,
+# 'config.status' has no value for ac_aux_dir unless we are using Automake,
+# so we pass a copy along to make sure it has a sensible value anyway.
+m4_defun([_LT_PROG_LTMAIN],
+[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
+_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
+ltmain=$ac_aux_dir/ltmain.sh
+])# _LT_PROG_LTMAIN
+
+
+## ------------------------------------- ##
+## Accumulate code for creating libtool. ##
+## ------------------------------------- ##
+
+# So that we can recreate a full libtool script including additional
+# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
+# in macros and then make a single call at the end using the 'libtool'
+# label.
+
+
+# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
+# ----------------------------------------
+# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL_INIT],
+[m4_ifval([$1],
+ [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
+ [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_INIT])
+
+
+# _LT_CONFIG_LIBTOOL([COMMANDS])
+# ------------------------------
+# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
+m4_define([_LT_CONFIG_LIBTOOL],
+[m4_ifval([$1],
+ [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
+ [$1
+])])])
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
+
+
+# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
+# -----------------------------------------------------
+m4_defun([_LT_CONFIG_SAVE_COMMANDS],
+[_LT_CONFIG_LIBTOOL([$1])
+_LT_CONFIG_LIBTOOL_INIT([$2])
+])
+
+
+# _LT_FORMAT_COMMENT([COMMENT])
+# -----------------------------
+# Add leading comment marks to the start of each line, and a trailing
+# full-stop to the whole comment if one is not present already.
+m4_define([_LT_FORMAT_COMMENT],
+[m4_ifval([$1], [
+m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
+ [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
+)])
+
+
+
+## ------------------------ ##
+## FIXME: Eliminate VARNAME ##
+## ------------------------ ##
+
+
+# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
+# -------------------------------------------------------------------
+# CONFIGNAME is the name given to the value in the libtool script.
+# VARNAME is the (base) name used in the configure script.
+# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
+# VARNAME. Any other value will be used directly.
+m4_define([_LT_DECL],
+[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
+ [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
+ [m4_ifval([$1], [$1], [$2])])
+ lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
+ m4_ifval([$4],
+ [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
+ lt_dict_add_subkey([lt_decl_dict], [$2],
+ [tagged?], [m4_ifval([$5], [yes], [no])])])
+])
+
+
+# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
+# --------------------------------------------------------
+m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
+
+
+# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_tag_varnames],
+[_lt_decl_filter([tagged?], [yes], $@)])
+
+
+# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
+# ---------------------------------------------------------
+m4_define([_lt_decl_filter],
+[m4_case([$#],
+ [0], [m4_fatal([$0: too few arguments: $#])],
+ [1], [m4_fatal([$0: too few arguments: $#: $1])],
+ [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
+ [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
+ [lt_dict_filter([lt_decl_dict], $@)])[]dnl
+])
+
+
+# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
+# --------------------------------------------------
+m4_define([lt_decl_quote_varnames],
+[_lt_decl_filter([value], [1], $@)])
+
+
+# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_dquote_varnames],
+[_lt_decl_filter([value], [2], $@)])
+
+
+# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
+# ---------------------------------------------------
+m4_define([lt_decl_varnames_tagged],
+[m4_assert([$# <= 2])dnl
+_$0(m4_quote(m4_default([$1], [[, ]])),
+ m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
+ m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
+m4_define([_lt_decl_varnames_tagged],
+[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
+
+
+# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
+# ------------------------------------------------
+m4_define([lt_decl_all_varnames],
+[_$0(m4_quote(m4_default([$1], [[, ]])),
+ m4_if([$2], [],
+ m4_quote(lt_decl_varnames),
+ m4_quote(m4_shift($@))))[]dnl
+])
+m4_define([_lt_decl_all_varnames],
+[lt_join($@, lt_decl_varnames_tagged([$1],
+ lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
+])
+
+
+# _LT_CONFIG_STATUS_DECLARE([VARNAME])
+# ------------------------------------
+# Quote a variable value, and forward it to 'config.status' so that its
+# declaration there will have the same value as in 'configure'. VARNAME
+# must have a single quote delimited value for this to work.
+m4_define([_LT_CONFIG_STATUS_DECLARE],
+[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
+
+
+# _LT_CONFIG_STATUS_DECLARATIONS
+# ------------------------------
+# We delimit libtool config variables with single quotes, so when
+# we write them to config.status, we have to be sure to quote all
+# embedded single quotes properly. In configure, this macro expands
+# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
+#
+# <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
+m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
+ [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAGS
+# ----------------
+# Output comment and list of tags supported by the script
+m4_defun([_LT_LIBTOOL_TAGS],
+[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
+available_tags='_LT_TAGS'dnl
+])
+
+
+# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
+# -----------------------------------
+# Extract the dictionary values for VARNAME (optionally with TAG) and
+# expand to a commented shell variable setting:
+#
+# # Some comment about what VAR is for.
+# visible_name=$lt_internal_name
+m4_define([_LT_LIBTOOL_DECLARE],
+[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
+ [description])))[]dnl
+m4_pushdef([_libtool_name],
+ m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
+m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
+ [0], [_libtool_name=[$]$1],
+ [1], [_libtool_name=$lt_[]$1],
+ [2], [_libtool_name=$lt_[]$1],
+ [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
+m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
+])
+
+
+# _LT_LIBTOOL_CONFIG_VARS
+# -----------------------
+# Produce commented declarations of non-tagged libtool config variables
+# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool'
+# script. Tagged libtool config variables (even for the LIBTOOL CONFIG
+# section) are produced by _LT_LIBTOOL_TAG_VARS.
+m4_defun([_LT_LIBTOOL_CONFIG_VARS],
+[m4_foreach([_lt_var],
+ m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
+ [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
+
+
+# _LT_LIBTOOL_TAG_VARS(TAG)
+# -------------------------
+m4_define([_LT_LIBTOOL_TAG_VARS],
+[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
+ [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
+
+
+# _LT_TAGVAR(VARNAME, [TAGNAME])
+# ------------------------------
+m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
+
+
+# _LT_CONFIG_COMMANDS
+# -------------------
+# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of
+# variables for single and double quote escaping we saved from calls
+# to _LT_DECL, we can put quote escaped variables declarations
+# into 'config.status', and then the shell code to quote escape them in
+# for loops in 'config.status'. Finally, any additional code accumulated
+# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
+m4_defun([_LT_CONFIG_COMMANDS],
+[AC_PROVIDE_IFELSE([LT_OUTPUT],
+ dnl If the libtool generation code has been placed in $CONFIG_LT,
+ dnl instead of duplicating it all over again into config.status,
+ dnl then we will have config.status run $CONFIG_LT later, so it
+ dnl needs to know what name is stored there:
+ [AC_CONFIG_COMMANDS([libtool],
+ [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
+ dnl If the libtool generation code is destined for config.status,
+ dnl expand the accumulated commands and init code now:
+ [AC_CONFIG_COMMANDS([libtool],
+ [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
+])#_LT_CONFIG_COMMANDS
+
+
+# Initialize.
+m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
+[
+
+# The HP-UX ksh and POSIX shell print the target directory to stdout
+# if CDPATH is set.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+sed_quote_subst='$sed_quote_subst'
+double_quote_subst='$double_quote_subst'
+delay_variable_subst='$delay_variable_subst'
+_LT_CONFIG_STATUS_DECLARATIONS
+LTCC='$LTCC'
+LTCFLAGS='$LTCFLAGS'
+compiler='$compiler_DEFAULT'
+
+# A function that is used when there is no print builtin or printf.
+func_fallback_echo ()
+{
+ eval 'cat <<_LTECHO_EOF
+\$[]1
+_LTECHO_EOF'
+}
+
+# Quote evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_quote_varnames); do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[[\\\\\\\`\\"\\\$]]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+# Double-quote double-evaled strings.
+for var in lt_decl_all_varnames([[ \
+]], lt_decl_dquote_varnames); do
+ case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
+ *[[\\\\\\\`\\"\\\$]]*)
+ eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes
+ ;;
+ *)
+ eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
+ ;;
+ esac
+done
+
+_LT_OUTPUT_LIBTOOL_INIT
+])
+
+# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
+# ------------------------------------
+# Generate a child script FILE with all initialization necessary to
+# reuse the environment learned by the parent script, and make the
+# file executable. If COMMENT is supplied, it is inserted after the
+# '#!' sequence but before initialization text begins. After this
+# macro, additional text can be appended to FILE to form the body of
+# the child script. The macro ends with non-zero status if the
+# file could not be fully written (such as if the disk is full).
+m4_ifdef([AS_INIT_GENERATED],
+[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
+[m4_defun([_LT_GENERATED_FILE_INIT],
+[m4_require([AS_PREPARE])]dnl
+[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
+[lt_write_fail=0
+cat >$1 <<_ASEOF || lt_write_fail=1
+#! $SHELL
+# Generated by $as_me.
+$2
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$1 <<\_ASEOF || lt_write_fail=1
+AS_SHELL_SANITIZE
+_AS_PREPARE
+exec AS_MESSAGE_FD>&1
+_ASEOF
+test 0 = "$lt_write_fail" && chmod +x $1[]dnl
+m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
+
+# LT_OUTPUT
+# ---------
+# This macro allows early generation of the libtool script (before
+# AC_OUTPUT is called), incase it is used in configure for compilation
+# tests.
+AC_DEFUN([LT_OUTPUT],
+[: ${CONFIG_LT=./config.lt}
+AC_MSG_NOTICE([creating $CONFIG_LT])
+_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
+[# Run this file to recreate a libtool stub with the current configuration.])
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+lt_cl_silent=false
+exec AS_MESSAGE_LOG_FD>>config.log
+{
+ echo
+ AS_BOX([Running $as_me.])
+} >&AS_MESSAGE_LOG_FD
+
+lt_cl_help="\
+'$as_me' creates a local libtool stub from the current configuration,
+for use in further configure time tests before the real libtool is
+generated.
+
+Usage: $[0] [[OPTIONS]]
+
+ -h, --help print this help, then exit
+ -V, --version print version number, then exit
+ -q, --quiet do not print progress messages
+ -d, --debug don't remove temporary files
+
+Report bugs to <bug-libtool@gnu.org>."
+
+lt_cl_version="\
+m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
+m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
+configured by $[0], generated by m4_PACKAGE_STRING.
+
+Copyright (C) 2011 Free Software Foundation, Inc.
+This config.lt script is free software; the Free Software Foundation
+gives unlimited permision to copy, distribute and modify it."
+
+while test 0 != $[#]
+do
+ case $[1] in
+ --version | --v* | -V )
+ echo "$lt_cl_version"; exit 0 ;;
+ --help | --h* | -h )
+ echo "$lt_cl_help"; exit 0 ;;
+ --debug | --d* | -d )
+ debug=: ;;
+ --quiet | --q* | --silent | --s* | -q )
+ lt_cl_silent=: ;;
+
+ -*) AC_MSG_ERROR([unrecognized option: $[1]
+Try '$[0] --help' for more information.]) ;;
+
+ *) AC_MSG_ERROR([unrecognized argument: $[1]
+Try '$[0] --help' for more information.]) ;;
+ esac
+ shift
+done
+
+if $lt_cl_silent; then
+ exec AS_MESSAGE_FD>/dev/null
+fi
+_LTEOF
+
+cat >>"$CONFIG_LT" <<_LTEOF
+_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
+_LTEOF
+
+cat >>"$CONFIG_LT" <<\_LTEOF
+AC_MSG_NOTICE([creating $ofile])
+_LT_OUTPUT_LIBTOOL_COMMANDS
+AS_EXIT(0)
+_LTEOF
+chmod +x "$CONFIG_LT"
+
+# configure is writing to config.log, but config.lt does its own redirection,
+# appending to config.log, which fails on DOS, as config.log is still kept
+# open by configure. Here we exec the FD to /dev/null, effectively closing
+# config.log, so it can be properly (re)opened and appended to by config.lt.
+lt_cl_success=:
+test yes = "$silent" &&
+ lt_config_lt_args="$lt_config_lt_args --quiet"
+exec AS_MESSAGE_LOG_FD>/dev/null
+$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
+exec AS_MESSAGE_LOG_FD>>config.log
+$lt_cl_success || AS_EXIT(1)
+])# LT_OUTPUT
+
+
+# _LT_CONFIG(TAG)
+# ---------------
+# If TAG is the built-in tag, create an initial libtool script with a
+# default configuration from the untagged config vars. Otherwise add code
+# to config.status for appending the configuration named by TAG from the
+# matching tagged config vars.
+m4_defun([_LT_CONFIG],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_CONFIG_SAVE_COMMANDS([
+ m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
+ m4_if(_LT_TAG, [C], [
+ # See if we are running on zsh, and set the options that allow our
+ # commands through without removal of \ escapes.
+ if test -n "${ZSH_VERSION+set}"; then
+ setopt NO_GLOB_SUBST
+ fi
+
+ cfgfile=${ofile}T
+ trap "$RM \"$cfgfile\"; exit 1" 1 2 15
+ $RM "$cfgfile"
+
+ cat <<_LT_EOF >> "$cfgfile"
+#! $SHELL
+# Generated automatically by $as_me ($PACKAGE) $VERSION
+# NOTE: Changes made to this file will be lost: look at ltmain.sh.
+
+# Provide generalized library-building support services.
+# Written by Gordon Matzigkeit, 1996
+
+_LT_COPYING
+_LT_LIBTOOL_TAGS
+
+# Configured defaults for sys_lib_dlsearch_path munging.
+: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"}
+
+# ### BEGIN LIBTOOL CONFIG
+_LT_LIBTOOL_CONFIG_VARS
+_LT_LIBTOOL_TAG_VARS
+# ### END LIBTOOL CONFIG
+
+_LT_EOF
+
+ cat <<'_LT_EOF' >> "$cfgfile"
+
+# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_PREPARE_MUNGE_PATH_LIST
+_LT_PREPARE_CC_BASENAME
+
+# ### END FUNCTIONS SHARED WITH CONFIGURE
+
+_LT_EOF
+
+ case $host_os in
+ aix3*)
+ cat <<\_LT_EOF >> "$cfgfile"
+# AIX sometimes has problems with the GCC collect2 program. For some
+# reason, if we set the COLLECT_NAMES environment variable, the problems
+# vanish in a puff of smoke.
+if test set != "${COLLECT_NAMES+set}"; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+fi
+_LT_EOF
+ ;;
+ esac
+
+ _LT_PROG_LTMAIN
+
+ # We use sed instead of cat because bash on DJGPP gets confused if
+ # if finds mixed CR/LF and LF-only lines. Since sed operates in
+ # text mode, it properly converts lines to CR/LF. This bash problem
+ # is reportedly fixed, but why not run on old versions too?
+ $SED '$q' "$ltmain" >> "$cfgfile" \
+ || (rm -f "$cfgfile"; exit 1)
+
+ mv -f "$cfgfile" "$ofile" ||
+ (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
+ chmod +x "$ofile"
+],
+[cat <<_LT_EOF >> "$ofile"
+
+dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
+dnl in a comment (ie after a #).
+# ### BEGIN LIBTOOL TAG CONFIG: $1
+_LT_LIBTOOL_TAG_VARS(_LT_TAG)
+# ### END LIBTOOL TAG CONFIG: $1
+_LT_EOF
+])dnl /m4_if
+],
+[m4_if([$1], [], [
+ PACKAGE='$PACKAGE'
+ VERSION='$VERSION'
+ RM='$RM'
+ ofile='$ofile'], [])
+])dnl /_LT_CONFIG_SAVE_COMMANDS
+])# _LT_CONFIG
+
+
+# LT_SUPPORTED_TAG(TAG)
+# ---------------------
+# Trace this macro to discover what tags are supported by the libtool
+# --tag option, using:
+# autoconf --trace 'LT_SUPPORTED_TAG:$1'
+AC_DEFUN([LT_SUPPORTED_TAG], [])
+
+
+# C support is built-in for now
+m4_define([_LT_LANG_C_enabled], [])
+m4_define([_LT_TAGS], [])
+
+
+# LT_LANG(LANG)
+# -------------
+# Enable libtool support for the given language if not already enabled.
+AC_DEFUN([LT_LANG],
+[AC_BEFORE([$0], [LT_OUTPUT])dnl
+m4_case([$1],
+ [C], [_LT_LANG(C)],
+ [C++], [_LT_LANG(CXX)],
+ [Go], [_LT_LANG(GO)],
+ [Java], [_LT_LANG(GCJ)],
+ [Fortran 77], [_LT_LANG(F77)],
+ [Fortran], [_LT_LANG(FC)],
+ [Windows Resource], [_LT_LANG(RC)],
+ [m4_ifdef([_LT_LANG_]$1[_CONFIG],
+ [_LT_LANG($1)],
+ [m4_fatal([$0: unsupported language: "$1"])])])dnl
+])# LT_LANG
+
+
+# _LT_LANG(LANGNAME)
+# ------------------
+m4_defun([_LT_LANG],
+[m4_ifdef([_LT_LANG_]$1[_enabled], [],
+ [LT_SUPPORTED_TAG([$1])dnl
+ m4_append([_LT_TAGS], [$1 ])dnl
+ m4_define([_LT_LANG_]$1[_enabled], [])dnl
+ _LT_LANG_$1_CONFIG($1)])dnl
+])# _LT_LANG
+
+
+m4_ifndef([AC_PROG_GO], [
+############################################################
+# NOTE: This macro has been submitted for inclusion into #
+# GNU Autoconf as AC_PROG_GO. When it is available in #
+# a released version of Autoconf we should remove this #
+# macro and use it instead. #
+############################################################
+m4_defun([AC_PROG_GO],
+[AC_LANG_PUSH(Go)dnl
+AC_ARG_VAR([GOC], [Go compiler command])dnl
+AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
+_AC_ARG_VAR_LDFLAGS()dnl
+AC_CHECK_TOOL(GOC, gccgo)
+if test -z "$GOC"; then
+ if test -n "$ac_tool_prefix"; then
+ AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
+ fi
+fi
+if test -z "$GOC"; then
+ AC_CHECK_PROG(GOC, gccgo, gccgo, false)
+fi
+])#m4_defun
+])#m4_ifndef
+
+
+# _LT_LANG_DEFAULT_CONFIG
+# -----------------------
+m4_defun([_LT_LANG_DEFAULT_CONFIG],
+[AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [LT_LANG(CXX)],
+ [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_F77],
+ [LT_LANG(F77)],
+ [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
+
+AC_PROVIDE_IFELSE([AC_PROG_FC],
+ [LT_LANG(FC)],
+ [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
+
+dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
+dnl pulling things in needlessly.
+AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+ [LT_LANG(GCJ)],
+ [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+ [LT_LANG(GCJ)],
+ [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
+ [LT_LANG(GCJ)],
+ [m4_ifdef([AC_PROG_GCJ],
+ [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
+ m4_ifdef([A][M_PROG_GCJ],
+ [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
+ m4_ifdef([LT_PROG_GCJ],
+ [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
+
+AC_PROVIDE_IFELSE([AC_PROG_GO],
+ [LT_LANG(GO)],
+ [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
+
+AC_PROVIDE_IFELSE([LT_PROG_RC],
+ [LT_LANG(RC)],
+ [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
+])# _LT_LANG_DEFAULT_CONFIG
+
+# Obsolete macros:
+AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
+AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
+AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
+AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
+AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
+dnl AC_DEFUN([AC_LIBTOOL_F77], [])
+dnl AC_DEFUN([AC_LIBTOOL_FC], [])
+dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
+dnl AC_DEFUN([AC_LIBTOOL_RC], [])
+
+
+# _LT_TAG_COMPILER
+# ----------------
+m4_defun([_LT_TAG_COMPILER],
+[AC_REQUIRE([AC_PROG_CC])dnl
+
+_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
+_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
+_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
+_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
+
+# If no C compiler was specified, use CC.
+LTCC=${LTCC-"$CC"}
+
+# If no C compiler flags were specified, use CFLAGS.
+LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
+
+# Allow CC to be a program name with arguments.
+compiler=$CC
+])# _LT_TAG_COMPILER
+
+
+# _LT_COMPILER_BOILERPLATE
+# ------------------------
+# Check for compiler boilerplate output or warnings with
+# the simple compiler test code.
+m4_defun([_LT_COMPILER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_compile_test_code" >conftest.$ac_ext
+eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_compiler_boilerplate=`cat conftest.err`
+$RM conftest*
+])# _LT_COMPILER_BOILERPLATE
+
+
+# _LT_LINKER_BOILERPLATE
+# ----------------------
+# Check for linker boilerplate output or warnings with
+# the simple link test code.
+m4_defun([_LT_LINKER_BOILERPLATE],
+[m4_require([_LT_DECL_SED])dnl
+ac_outfile=conftest.$ac_objext
+echo "$lt_simple_link_test_code" >conftest.$ac_ext
+eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
+_lt_linker_boilerplate=`cat conftest.err`
+$RM -r conftest*
+])# _LT_LINKER_BOILERPLATE
+
+# _LT_REQUIRED_DARWIN_CHECKS
+# -------------------------
+m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
+ case $host_os in
+ rhapsody* | darwin*)
+ AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
+ AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
+ AC_CHECK_TOOL([LIPO], [lipo], [:])
+ AC_CHECK_TOOL([OTOOL], [otool], [:])
+ AC_CHECK_TOOL([OTOOL64], [otool64], [:])
+ _LT_DECL([], [DSYMUTIL], [1],
+ [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
+ _LT_DECL([], [NMEDIT], [1],
+ [Tool to change global to local symbols on Mac OS X])
+ _LT_DECL([], [LIPO], [1],
+ [Tool to manipulate fat objects and archives on Mac OS X])
+ _LT_DECL([], [OTOOL], [1],
+ [ldd/readelf like tool for Mach-O binaries on Mac OS X])
+ _LT_DECL([], [OTOOL64], [1],
+ [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
+
+ AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
+ [lt_cv_apple_cc_single_mod=no
+ if test -z "$LT_MULTI_MODULE"; then
+ # By default we will add the -single_module flag. You can override
+ # by either setting the environment variable LT_MULTI_MODULE
+ # non-empty at configure time, or by adding -multi_module to the
+ # link flags.
+ rm -rf libconftest.dylib*
+ echo "int foo(void){return 1;}" > conftest.c
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
+ $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+ -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
+ _lt_result=$?
+ # If there is a non-empty error log, and "single_module"
+ # appears in it, assume the flag caused a linker warning
+ if test -s conftest.err && $GREP single_module conftest.err; then
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ # Otherwise, if the output was created with a 0 exit code from
+ # the compiler, it worked.
+ elif test -f libconftest.dylib && test 0 = "$_lt_result"; then
+ lt_cv_apple_cc_single_mod=yes
+ else
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ fi
+ rm -rf libconftest.dylib*
+ rm -f conftest.*
+ fi])
+
+ AC_CACHE_CHECK([for -exported_symbols_list linker flag],
+ [lt_cv_ld_exported_symbols_list],
+ [lt_cv_ld_exported_symbols_list=no
+ save_LDFLAGS=$LDFLAGS
+ echo "_main" > conftest.sym
+ LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+ [lt_cv_ld_exported_symbols_list=yes],
+ [lt_cv_ld_exported_symbols_list=no])
+ LDFLAGS=$save_LDFLAGS
+ ])
+
+ AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
+ [lt_cv_ld_force_load=no
+ cat > conftest.c << _LT_EOF
+int forced_loaded() { return 2;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
+ $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
+ echo "$AR $AR_FLAGS libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
+ $AR $AR_FLAGS libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
+ echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
+ $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
+ cat > conftest.c << _LT_EOF
+int main() { return 0;}
+_LT_EOF
+ echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
+ $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
+ _lt_result=$?
+ if test -s conftest.err && $GREP force_load conftest.err; then
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then
+ lt_cv_ld_force_load=yes
+ else
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ fi
+ rm -f conftest.err libconftest.a conftest conftest.c
+ rm -rf conftest.dSYM
+ ])
+ case $host_os in
+ rhapsody* | darwin1.[[012]])
+ _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;;
+ darwin1.*)
+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+ darwin*)
+ case $MACOSX_DEPLOYMENT_TARGET,$host in
+ 10.[[012]],*|,*powerpc*-darwin[[5-8]]*)
+ _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;;
+ *)
+ _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;;
+ esac
+ ;;
+ esac
+ if test yes = "$lt_cv_apple_cc_single_mod"; then
+ _lt_dar_single_mod='$single_module'
+ fi
+ if test yes = "$lt_cv_ld_exported_symbols_list"; then
+ _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym'
+ else
+ _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib'
+ fi
+ if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then
+ _lt_dsymutil='~$DSYMUTIL $lib || :'
+ else
+ _lt_dsymutil=
+ fi
+ ;;
+ esac
+])
+
+
+# _LT_DARWIN_LINKER_FEATURES([TAG])
+# ---------------------------------
+# Checks for linker and compiler features on darwin
+m4_defun([_LT_DARWIN_LINKER_FEATURES],
+[
+ m4_require([_LT_REQUIRED_DARWIN_CHECKS])
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_automatic, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+ if test yes = "$lt_cv_ld_force_load"; then
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
+ m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
+ [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes])
+ else
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=''
+ fi
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined
+ case $cc_basename in
+ ifort*|nagfor*) _lt_dar_can_shared=yes ;;
+ *) _lt_dar_can_shared=$GCC ;;
+ esac
+ if test yes = "$_lt_dar_can_shared"; then
+ output_verbose_link_cmd=func_echo_all
+ _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil"
+ _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil"
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil"
+ _LT_TAGVAR(module_expsym_cmds, $1)="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil"
+ m4_if([$1], [CXX],
+[ if test yes != "$lt_cv_apple_cc_single_mod"; then
+ _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil"
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil"
+ fi
+],[])
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+])
+
+# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
+# ----------------------------------
+# Links a minimal program and checks the executable
+# for the system default hardcoded library path. In most cases,
+# this is /usr/lib:/lib, but when the MPI compilers are used
+# the location of the communication and MPI libs are included too.
+# If we don't find anything, use the default library path according
+# to the aix ld manual.
+# Store the results from the different compilers for each TAGNAME.
+# Allow to override them for all tags through lt_cv_aix_libpath.
+m4_defun([_LT_SYS_MODULE_PATH_AIX],
+[m4_require([_LT_DECL_SED])dnl
+if test set = "${lt_cv_aix_libpath+set}"; then
+ aix_libpath=$lt_cv_aix_libpath
+else
+ AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
+ [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
+ lt_aix_libpath_sed='[
+ /Import File Strings/,/^$/ {
+ /^0/ {
+ s/^0 *\([^ ]*\) *$/\1/
+ p
+ }
+ }]'
+ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ # Check for a 64-bit object if we didn't find anything.
+ if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
+ fi],[])
+ if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
+ _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib
+ fi
+ ])
+ aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
+fi
+])# _LT_SYS_MODULE_PATH_AIX
+
+
+# _LT_SHELL_INIT(ARG)
+# -------------------
+m4_define([_LT_SHELL_INIT],
+[m4_divert_text([M4SH-INIT], [$1
+])])# _LT_SHELL_INIT
+
+
+
+# _LT_PROG_ECHO_BACKSLASH
+# -----------------------
+# Find how we can fake an echo command that does not interpret backslash.
+# In particular, with Autoconf 2.60 or later we add some code to the start
+# of the generated configure script that will find a shell with a builtin
+# printf (that we can use as an echo command).
+m4_defun([_LT_PROG_ECHO_BACKSLASH],
+[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+
+AC_MSG_CHECKING([how to print strings])
+# Test print first, because it will be a builtin if present.
+if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
+ test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='print -r --'
+elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
+ ECHO='printf %s\n'
+else
+ # Use this function as a fallback that always works.
+ func_fallback_echo ()
+ {
+ eval 'cat <<_LTECHO_EOF
+$[]1
+_LTECHO_EOF'
+ }
+ ECHO='func_fallback_echo'
+fi
+
+# func_echo_all arg...
+# Invoke $ECHO with all args, space-separated.
+func_echo_all ()
+{
+ $ECHO "$*"
+}
+
+case $ECHO in
+ printf*) AC_MSG_RESULT([printf]) ;;
+ print*) AC_MSG_RESULT([print -r]) ;;
+ *) AC_MSG_RESULT([cat]) ;;
+esac
+
+m4_ifdef([_AS_DETECT_SUGGESTED],
+[_AS_DETECT_SUGGESTED([
+ test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
+ ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
+ ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
+ PATH=/empty FPATH=/empty; export PATH FPATH
+ test "X`printf %s $ECHO`" = "X$ECHO" \
+ || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
+
+_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
+_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
+])# _LT_PROG_ECHO_BACKSLASH
+
+
+# _LT_WITH_SYSROOT
+# ----------------
+AC_DEFUN([_LT_WITH_SYSROOT],
+[m4_require([_LT_DECL_SED])dnl
+AC_MSG_CHECKING([for sysroot])
+AC_ARG_WITH([sysroot],
+[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@],
+ [Search for dependent libraries within DIR (or the compiler's sysroot
+ if not specified).])],
+[], [with_sysroot=no])
+
+dnl lt_sysroot will always be passed unquoted. We quote it here
+dnl in case the user passed a directory name.
+lt_sysroot=
+case $with_sysroot in #(
+ yes)
+ if test yes = "$GCC"; then
+ lt_sysroot=`$CC --print-sysroot 2>/dev/null`
+ fi
+ ;; #(
+ /*)
+ lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"`
+ ;; #(
+ no|'')
+ ;; #(
+ *)
+ AC_MSG_RESULT([$with_sysroot])
+ AC_MSG_ERROR([The sysroot must be an absolute path.])
+ ;;
+esac
+
+ AC_MSG_RESULT([${lt_sysroot:-no}])
+_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
+[dependent libraries, and where our libraries should be installed.])])
+
+# _LT_ENABLE_LOCK
+# ---------------
+m4_defun([_LT_ENABLE_LOCK],
+[AC_ARG_ENABLE([libtool-lock],
+ [AS_HELP_STRING([--disable-libtool-lock],
+ [avoid locking (might break parallel builds)])])
+test no = "$enable_libtool_lock" || enable_libtool_lock=yes
+
+# Some flags need to be propagated to the compiler or linker for good
+# libtool support.
+case $host in
+ia64-*-hpux*)
+ # Find out what ABI is being produced by ac_compile, and set mode
+ # options accordingly.
+ echo 'int i;' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case `$FILECMD conftest.$ac_objext` in
+ *ELF-32*)
+ HPUX_IA64_MODE=32
+ ;;
+ *ELF-64*)
+ HPUX_IA64_MODE=64
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+*-*-irix6*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ if test yes = "$lt_cv_prog_gnu_ld"; then
+ case `$FILECMD conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -melf32bsmip"
+ ;;
+ *N32*)
+ LD="${LD-ld} -melf32bmipn32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -melf64bmip"
+ ;;
+ esac
+ else
+ case `$FILECMD conftest.$ac_objext` in
+ *32-bit*)
+ LD="${LD-ld} -32"
+ ;;
+ *N32*)
+ LD="${LD-ld} -n32"
+ ;;
+ *64-bit*)
+ LD="${LD-ld} -64"
+ ;;
+ esac
+ fi
+ fi
+ rm -rf conftest*
+ ;;
+
+mips64*-*linux*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ emul=elf
+ case `$FILECMD conftest.$ac_objext` in
+ *32-bit*)
+ emul="${emul}32"
+ ;;
+ *64-bit*)
+ emul="${emul}64"
+ ;;
+ esac
+ case `$FILECMD conftest.$ac_objext` in
+ *MSB*)
+ emul="${emul}btsmip"
+ ;;
+ *LSB*)
+ emul="${emul}ltsmip"
+ ;;
+ esac
+ case `$FILECMD conftest.$ac_objext` in
+ *N32*)
+ emul="${emul}n32"
+ ;;
+ esac
+ LD="${LD-ld} -m $emul"
+ fi
+ rm -rf conftest*
+ ;;
+
+x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \
+s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly. Note that the listed cases only cover the
+ # situations where additional linker options are needed (such as when
+ # doing 32-bit compilation for a host where ld defaults to 64-bit, or
+ # vice versa); the common cases where no linker options are needed do
+ # not appear in the list.
+ echo 'int i;' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case `$FILECMD conftest.o` in
+ *32-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_i386_fbsd"
+ ;;
+ x86_64-*linux*)
+ case `$FILECMD conftest.o` in
+ *x86-64*)
+ LD="${LD-ld} -m elf32_x86_64"
+ ;;
+ *)
+ LD="${LD-ld} -m elf_i386"
+ ;;
+ esac
+ ;;
+ powerpc64le-*linux*)
+ LD="${LD-ld} -m elf32lppclinux"
+ ;;
+ powerpc64-*linux*)
+ LD="${LD-ld} -m elf32ppclinux"
+ ;;
+ s390x-*linux*)
+ LD="${LD-ld} -m elf_s390"
+ ;;
+ sparc64-*linux*)
+ LD="${LD-ld} -m elf32_sparc"
+ ;;
+ esac
+ ;;
+ *64-bit*)
+ case $host in
+ x86_64-*kfreebsd*-gnu)
+ LD="${LD-ld} -m elf_x86_64_fbsd"
+ ;;
+ x86_64-*linux*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ powerpcle-*linux*)
+ LD="${LD-ld} -m elf64lppc"
+ ;;
+ powerpc-*linux*)
+ LD="${LD-ld} -m elf64ppc"
+ ;;
+ s390*-*linux*|s390*-*tpf*)
+ LD="${LD-ld} -m elf64_s390"
+ ;;
+ sparc*-*linux*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+
+*-*-sco3.2v5*)
+ # On SCO OpenServer 5, we need -belf to get full-featured binaries.
+ SAVE_CFLAGS=$CFLAGS
+ CFLAGS="$CFLAGS -belf"
+ AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
+ [AC_LANG_PUSH(C)
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
+ AC_LANG_POP])
+ if test yes != "$lt_cv_cc_needs_belf"; then
+ # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
+ CFLAGS=$SAVE_CFLAGS
+ fi
+ ;;
+*-*solaris*)
+ # Find out what ABI is being produced by ac_compile, and set linker
+ # options accordingly.
+ echo 'int i;' > conftest.$ac_ext
+ if AC_TRY_EVAL(ac_compile); then
+ case `$FILECMD conftest.o` in
+ *64-bit*)
+ case $lt_cv_prog_gnu_ld in
+ yes*)
+ case $host in
+ i?86-*-solaris*|x86_64-*-solaris*)
+ LD="${LD-ld} -m elf_x86_64"
+ ;;
+ sparc*-*-solaris*)
+ LD="${LD-ld} -m elf64_sparc"
+ ;;
+ esac
+ # GNU ld 2.21 introduced _sol2 emulations. Use them if available.
+ if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
+ LD=${LD-ld}_sol2
+ fi
+ ;;
+ *)
+ if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+ LD="${LD-ld} -64"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ rm -rf conftest*
+ ;;
+esac
+
+need_locks=$enable_libtool_lock
+])# _LT_ENABLE_LOCK
+
+
+# _LT_PROG_AR
+# -----------
+m4_defun([_LT_PROG_AR],
+[AC_CHECK_TOOLS(AR, [ar], false)
+: ${AR=ar}
+_LT_DECL([], [AR], [1], [The archiver])
+
+# Use ARFLAGS variable as AR's operation code to sync the variable naming with
+# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have
+# higher priority because thats what people were doing historically (setting
+# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS
+# variable obsoleted/removed.
+
+test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr}
+lt_ar_flags=$AR_FLAGS
+_LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)])
+
+# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override
+# by AR_FLAGS because that was never working and AR_FLAGS is about to die.
+_LT_DECL([], [AR_FLAGS], [\@S|@{ARFLAGS-"\@S|@lt_ar_flags"}],
+ [Flags to create an archive])
+
+AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
+ [lt_cv_ar_at_file=no
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
+ [echo conftest.$ac_objext > conftest.lst
+ lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
+ AC_TRY_EVAL([lt_ar_try])
+ if test 0 -eq "$ac_status"; then
+ # Ensure the archiver fails upon bogus file names.
+ rm -f conftest.$ac_objext libconftest.a
+ AC_TRY_EVAL([lt_ar_try])
+ if test 0 -ne "$ac_status"; then
+ lt_cv_ar_at_file=@
+ fi
+ fi
+ rm -f conftest.* libconftest.a
+ ])
+ ])
+
+if test no = "$lt_cv_ar_at_file"; then
+ archiver_list_spec=
+else
+ archiver_list_spec=$lt_cv_ar_at_file
+fi
+_LT_DECL([], [archiver_list_spec], [1],
+ [How to feed a file listing to the archiver])
+])# _LT_PROG_AR
+
+
+# _LT_CMD_OLD_ARCHIVE
+# -------------------
+m4_defun([_LT_CMD_OLD_ARCHIVE],
+[_LT_PROG_AR
+
+AC_CHECK_TOOL(STRIP, strip, :)
+test -z "$STRIP" && STRIP=:
+_LT_DECL([], [STRIP], [1], [A symbol stripping program])
+
+AC_CHECK_TOOL(RANLIB, ranlib, :)
+test -z "$RANLIB" && RANLIB=:
+_LT_DECL([], [RANLIB], [1],
+ [Commands used to install an old-style archive])
+
+# Determine commands to create old-style static archives.
+old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
+old_postinstall_cmds='chmod 644 $oldlib'
+old_postuninstall_cmds=
+
+if test -n "$RANLIB"; then
+ case $host_os in
+ bitrig* | openbsd*)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
+ ;;
+ *)
+ old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
+ ;;
+ esac
+ old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
+fi
+
+case $host_os in
+ darwin*)
+ lock_old_archive_extraction=yes ;;
+ *)
+ lock_old_archive_extraction=no ;;
+esac
+_LT_DECL([], [old_postinstall_cmds], [2])
+_LT_DECL([], [old_postuninstall_cmds], [2])
+_LT_TAGDECL([], [old_archive_cmds], [2],
+ [Commands used to build an old-style archive])
+_LT_DECL([], [lock_old_archive_extraction], [0],
+ [Whether to use a lock for old archive extraction])
+])# _LT_CMD_OLD_ARCHIVE
+
+
+# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------------------
+# Check whether the given compiler option works
+AC_DEFUN([_LT_COMPILER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+ [$2=no
+ m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+ lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ # The option is referenced via a variable to avoid confusing sed.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$lt_compile" 2>conftest.err)
+ ac_status=$?
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ if (exit $ac_status) && test -s "$ac_outfile"; then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings other than the usual output.
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+ $2=yes
+ fi
+ fi
+ $RM conftest*
+])
+
+if test yes = "[$]$2"; then
+ m4_if([$5], , :, [$5])
+else
+ m4_if([$6], , :, [$6])
+fi
+])# _LT_COMPILER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
+
+
+# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
+# [ACTION-SUCCESS], [ACTION-FAILURE])
+# ----------------------------------------------------
+# Check whether the given linker option works
+AC_DEFUN([_LT_LINKER_OPTION],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_SED])dnl
+AC_CACHE_CHECK([$1], [$2],
+ [$2=no
+ save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS $3"
+ echo "$lt_simple_link_test_code" > conftest.$ac_ext
+ if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
+ # The linker can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ if test -s conftest.err; then
+ # Append any errors to the config.log.
+ cat conftest.err 1>&AS_MESSAGE_LOG_FD
+ $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+ $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
+ if diff conftest.exp conftest.er2 >/dev/null; then
+ $2=yes
+ fi
+ else
+ $2=yes
+ fi
+ fi
+ $RM -r conftest*
+ LDFLAGS=$save_LDFLAGS
+])
+
+if test yes = "[$]$2"; then
+ m4_if([$4], , :, [$4])
+else
+ m4_if([$5], , :, [$5])
+fi
+])# _LT_LINKER_OPTION
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
+
+
+# LT_CMD_MAX_LEN
+#---------------
+AC_DEFUN([LT_CMD_MAX_LEN],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+# find the maximum length of command line arguments
+AC_MSG_CHECKING([the maximum length of command line arguments])
+AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
+ i=0
+ teststring=ABCD
+
+ case $build_os in
+ msdosdjgpp*)
+ # On DJGPP, this test can blow up pretty badly due to problems in libc
+ # (any single argument exceeding 2000 bytes causes a buffer overrun
+ # during glob expansion). Even if it were fixed, the result of this
+ # check would be larger than it should be.
+ lt_cv_sys_max_cmd_len=12288; # 12K is about right
+ ;;
+
+ gnu*)
+ # Under GNU Hurd, this test is not required because there is
+ # no limit to the length of command line arguments.
+ # Libtool will interpret -1 as no limit whatsoever
+ lt_cv_sys_max_cmd_len=-1;
+ ;;
+
+ cygwin* | mingw* | cegcc*)
+ # On Win9x/ME, this test blows up -- it succeeds, but takes
+ # about 5 minutes as the teststring grows exponentially.
+ # Worse, since 9x/ME are not pre-emptively multitasking,
+ # you end up with a "frozen" computer, even though with patience
+ # the test eventually succeeds (with a max line length of 256k).
+ # Instead, let's just punt: use the minimum linelength reported by
+ # all of the supported platforms: 8192 (on NT/2K/XP).
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ mint*)
+ # On MiNT this can take a long time and run out of memory.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ amigaos*)
+ # On AmigaOS with pdksh, this test takes hours, literally.
+ # So we just punt and use a minimum line length of 8192.
+ lt_cv_sys_max_cmd_len=8192;
+ ;;
+
+ bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*)
+ # This has been around since 386BSD, at least. Likely further.
+ if test -x /sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
+ elif test -x /usr/sbin/sysctl; then
+ lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
+ else
+ lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs
+ fi
+ # And add a safety zone
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ ;;
+
+ interix*)
+ # We know the value 262144 and hardcode it with a safety zone (like BSD)
+ lt_cv_sys_max_cmd_len=196608
+ ;;
+
+ os2*)
+ # The test takes a long time on OS/2.
+ lt_cv_sys_max_cmd_len=8192
+ ;;
+
+ osf*)
+ # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
+ # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
+ # nice to cause kernel panics so lets avoid the loop below.
+ # First set a reasonable default.
+ lt_cv_sys_max_cmd_len=16384
+ #
+ if test -x /sbin/sysconfig; then
+ case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
+ *1*) lt_cv_sys_max_cmd_len=-1 ;;
+ esac
+ fi
+ ;;
+ sco3.2v5*)
+ lt_cv_sys_max_cmd_len=102400
+ ;;
+ sysv5* | sco5v6* | sysv4.2uw2*)
+ kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
+ if test -n "$kargmax"; then
+ lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[[ ]]//'`
+ else
+ lt_cv_sys_max_cmd_len=32768
+ fi
+ ;;
+ *)
+ lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
+ if test -n "$lt_cv_sys_max_cmd_len" && \
+ test undefined != "$lt_cv_sys_max_cmd_len"; then
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
+ else
+ # Make teststring a little bigger before we do anything with it.
+ # a 1K string should be a reasonable start.
+ for i in 1 2 3 4 5 6 7 8; do
+ teststring=$teststring$teststring
+ done
+ SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
+ # If test is not a shell built-in, we'll probably end up computing a
+ # maximum length that is only half of the actual maximum length, but
+ # we can't tell.
+ while { test X`env echo "$teststring$teststring" 2>/dev/null` \
+ = "X$teststring$teststring"; } >/dev/null 2>&1 &&
+ test 17 != "$i" # 1/2 MB should be enough
+ do
+ i=`expr $i + 1`
+ teststring=$teststring$teststring
+ done
+ # Only check the string length outside the loop.
+ lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
+ teststring=
+ # Add a significant safety factor because C++ compilers can tack on
+ # massive amounts of additional arguments before passing them to the
+ # linker. It appears as though 1/2 is a usable value.
+ lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
+ fi
+ ;;
+ esac
+])
+if test -n "$lt_cv_sys_max_cmd_len"; then
+ AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
+else
+ AC_MSG_RESULT(none)
+fi
+max_cmd_len=$lt_cv_sys_max_cmd_len
+_LT_DECL([], [max_cmd_len], [0],
+ [What is the maximum length of a command?])
+])# LT_CMD_MAX_LEN
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
+
+
+# _LT_HEADER_DLFCN
+# ----------------
+m4_defun([_LT_HEADER_DLFCN],
+[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
+])# _LT_HEADER_DLFCN
+
+
+# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
+# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
+# ----------------------------------------------------------------
+m4_defun([_LT_TRY_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test yes = "$cross_compiling"; then :
+ [$4]
+else
+ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
+ lt_status=$lt_dlunknown
+ cat > conftest.$ac_ext <<_LT_EOF
+[#line $LINENO "configure"
+#include "confdefs.h"
+
+#if HAVE_DLFCN_H
+#include <dlfcn.h>
+#endif
+
+#include <stdio.h>
+
+#ifdef RTLD_GLOBAL
+# define LT_DLGLOBAL RTLD_GLOBAL
+#else
+# ifdef DL_GLOBAL
+# define LT_DLGLOBAL DL_GLOBAL
+# else
+# define LT_DLGLOBAL 0
+# endif
+#endif
+
+/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
+ find out it does not work in some platform. */
+#ifndef LT_DLLAZY_OR_NOW
+# ifdef RTLD_LAZY
+# define LT_DLLAZY_OR_NOW RTLD_LAZY
+# else
+# ifdef DL_LAZY
+# define LT_DLLAZY_OR_NOW DL_LAZY
+# else
+# ifdef RTLD_NOW
+# define LT_DLLAZY_OR_NOW RTLD_NOW
+# else
+# ifdef DL_NOW
+# define LT_DLLAZY_OR_NOW DL_NOW
+# else
+# define LT_DLLAZY_OR_NOW 0
+# endif
+# endif
+# endif
+# endif
+#endif
+
+/* When -fvisibility=hidden is used, assume the code has been annotated
+ correspondingly for the symbols needed. */
+#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
+int fnord () __attribute__((visibility("default")));
+#endif
+
+int fnord () { return 42; }
+int main ()
+{
+ void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
+ int status = $lt_dlunknown;
+
+ if (self)
+ {
+ if (dlsym (self,"fnord")) status = $lt_dlno_uscore;
+ else
+ {
+ if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore;
+ else puts (dlerror ());
+ }
+ /* dlclose (self); */
+ }
+ else
+ puts (dlerror ());
+
+ return status;
+}]
+_LT_EOF
+ if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then
+ (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
+ lt_status=$?
+ case x$lt_status in
+ x$lt_dlno_uscore) $1 ;;
+ x$lt_dlneed_uscore) $2 ;;
+ x$lt_dlunknown|x*) $3 ;;
+ esac
+ else :
+ # compilation failed
+ $3
+ fi
+fi
+rm -fr conftest*
+])# _LT_TRY_DLOPEN_SELF
+
+
+# LT_SYS_DLOPEN_SELF
+# ------------------
+AC_DEFUN([LT_SYS_DLOPEN_SELF],
+[m4_require([_LT_HEADER_DLFCN])dnl
+if test yes != "$enable_dlopen"; then
+ enable_dlopen=unknown
+ enable_dlopen_self=unknown
+ enable_dlopen_self_static=unknown
+else
+ lt_cv_dlopen=no
+ lt_cv_dlopen_libs=
+
+ case $host_os in
+ beos*)
+ lt_cv_dlopen=load_add_on
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ;;
+
+ mingw* | pw32* | cegcc*)
+ lt_cv_dlopen=LoadLibrary
+ lt_cv_dlopen_libs=
+ ;;
+
+ cygwin*)
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ ;;
+
+ darwin*)
+ # if libdl is installed we need to link against it
+ AC_CHECK_LIB([dl], [dlopen],
+ [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[
+ lt_cv_dlopen=dyld
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=yes
+ ])
+ ;;
+
+ tpf*)
+ # Don't try to run any link tests for TPF. We know it's impossible
+ # because TPF is a cross-compiler, and we know how we open DSOs.
+ lt_cv_dlopen=dlopen
+ lt_cv_dlopen_libs=
+ lt_cv_dlopen_self=no
+ ;;
+
+ *)
+ AC_CHECK_FUNC([shl_load],
+ [lt_cv_dlopen=shl_load],
+ [AC_CHECK_LIB([dld], [shl_load],
+ [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld],
+ [AC_CHECK_FUNC([dlopen],
+ [lt_cv_dlopen=dlopen],
+ [AC_CHECK_LIB([dl], [dlopen],
+ [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],
+ [AC_CHECK_LIB([svld], [dlopen],
+ [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld],
+ [AC_CHECK_LIB([dld], [dld_link],
+ [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld])
+ ])
+ ])
+ ])
+ ])
+ ])
+ ;;
+ esac
+
+ if test no = "$lt_cv_dlopen"; then
+ enable_dlopen=no
+ else
+ enable_dlopen=yes
+ fi
+
+ case $lt_cv_dlopen in
+ dlopen)
+ save_CPPFLAGS=$CPPFLAGS
+ test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
+
+ save_LDFLAGS=$LDFLAGS
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
+
+ save_LIBS=$LIBS
+ LIBS="$lt_cv_dlopen_libs $LIBS"
+
+ AC_CACHE_CHECK([whether a program can dlopen itself],
+ lt_cv_dlopen_self, [dnl
+ _LT_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
+ lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
+ ])
+
+ if test yes = "$lt_cv_dlopen_self"; then
+ wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
+ AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
+ lt_cv_dlopen_self_static, [dnl
+ _LT_TRY_DLOPEN_SELF(
+ lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
+ lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross)
+ ])
+ fi
+
+ CPPFLAGS=$save_CPPFLAGS
+ LDFLAGS=$save_LDFLAGS
+ LIBS=$save_LIBS
+ ;;
+ esac
+
+ case $lt_cv_dlopen_self in
+ yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
+ *) enable_dlopen_self=unknown ;;
+ esac
+
+ case $lt_cv_dlopen_self_static in
+ yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
+ *) enable_dlopen_self_static=unknown ;;
+ esac
+fi
+_LT_DECL([dlopen_support], [enable_dlopen], [0],
+ [Whether dlopen is supported])
+_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
+ [Whether dlopen of programs is supported])
+_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
+ [Whether dlopen of statically linked programs is supported])
+])# LT_SYS_DLOPEN_SELF
+
+# Old name:
+AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
+
+
+# _LT_COMPILER_C_O([TAGNAME])
+# ---------------------------
+# Check to see if options -c and -o are simultaneously supported by compiler.
+# This macro does not hard code the compiler like AC_PROG_CC_C_O.
+m4_defun([_LT_COMPILER_C_O],
+[m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
+ [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
+ [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
+ $RM -r conftest 2>/dev/null
+ mkdir conftest
+ cd conftest
+ mkdir out
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ lt_compiler_flag="-o out/conftest2.$ac_objext"
+ # Insert the option either (1) after the last *FLAGS variable, or
+ # (2) before a word containing "conftest.", or (3) at the end.
+ # Note that $ac_compile itself does not contain backslashes and begins
+ # with a dollar sign (not a hyphen), so the echo should work correctly.
+ lt_compile=`echo "$ac_compile" | $SED \
+ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
+ -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
+ -e 's:$: $lt_compiler_flag:'`
+ (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$lt_compile" 2>out/conftest.err)
+ ac_status=$?
+ cat out/conftest.err >&AS_MESSAGE_LOG_FD
+ echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
+ if (exit $ac_status) && test -s out/conftest2.$ac_objext
+ then
+ # The compiler can only warn and ignore the option if not recognized
+ # So say no if there are warnings
+ $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+ $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
+ if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+ _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+ fi
+ fi
+ chmod u+w . 2>&AS_MESSAGE_LOG_FD
+ $RM conftest*
+ # SGI C++ compiler will create directory out/ii_files/ for
+ # template instantiation
+ test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
+ $RM out/* && rmdir out
+ cd ..
+ $RM -r conftest
+ $RM conftest*
+])
+_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
+ [Does compiler simultaneously support -c and -o options?])
+])# _LT_COMPILER_C_O
+
+
+# _LT_COMPILER_FILE_LOCKS([TAGNAME])
+# ----------------------------------
+# Check to see if we can do hard links to lock some files if needed
+m4_defun([_LT_COMPILER_FILE_LOCKS],
+[m4_require([_LT_ENABLE_LOCK])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+_LT_COMPILER_C_O([$1])
+
+hard_links=nottested
+if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then
+ # do not overwrite the value of need_locks provided by the user
+ AC_MSG_CHECKING([if we can lock with hard links])
+ hard_links=yes
+ $RM conftest*
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ touch conftest.a
+ ln conftest.a conftest.b 2>&5 || hard_links=no
+ ln conftest.a conftest.b 2>/dev/null && hard_links=no
+ AC_MSG_RESULT([$hard_links])
+ if test no = "$hard_links"; then
+ AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe])
+ need_locks=warn
+ fi
+else
+ need_locks=no
+fi
+_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
+])# _LT_COMPILER_FILE_LOCKS
+
+
+# _LT_CHECK_OBJDIR
+# ----------------
+m4_defun([_LT_CHECK_OBJDIR],
+[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
+[rm -f .libs 2>/dev/null
+mkdir .libs 2>/dev/null
+if test -d .libs; then
+ lt_cv_objdir=.libs
+else
+ # MS-DOS does not allow filenames that begin with a dot.
+ lt_cv_objdir=_libs
+fi
+rmdir .libs 2>/dev/null])
+objdir=$lt_cv_objdir
+_LT_DECL([], [objdir], [0],
+ [The name of the directory that contains temporary libtool files])dnl
+m4_pattern_allow([LT_OBJDIR])dnl
+AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/",
+ [Define to the sub-directory where libtool stores uninstalled libraries.])
+])# _LT_CHECK_OBJDIR
+
+
+# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
+# --------------------------------------
+# Check hardcoding attributes.
+m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
+[AC_MSG_CHECKING([how to hardcode library paths into programs])
+_LT_TAGVAR(hardcode_action, $1)=
+if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
+ test -n "$_LT_TAGVAR(runpath_var, $1)" ||
+ test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then
+
+ # We can hardcode non-existent directories.
+ if test no != "$_LT_TAGVAR(hardcode_direct, $1)" &&
+ # If the only mechanism to avoid hardcoding is shlibpath_var, we
+ # have to relink, otherwise we might link with an installed library
+ # when we should be linking with a yet-to-be-installed one
+ ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" &&
+ test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then
+ # Linking always hardcodes the temporary library directory.
+ _LT_TAGVAR(hardcode_action, $1)=relink
+ else
+ # We can link without hardcoding, and we can hardcode nonexisting dirs.
+ _LT_TAGVAR(hardcode_action, $1)=immediate
+ fi
+else
+ # We cannot hardcode anything, or else we can only hardcode existing
+ # directories.
+ _LT_TAGVAR(hardcode_action, $1)=unsupported
+fi
+AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
+
+if test relink = "$_LT_TAGVAR(hardcode_action, $1)" ||
+ test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then
+ # Fast installation is not supported
+ enable_fast_install=no
+elif test yes = "$shlibpath_overrides_runpath" ||
+ test no = "$enable_shared"; then
+ # Fast installation is not necessary
+ enable_fast_install=needless
+fi
+_LT_TAGDECL([], [hardcode_action], [0],
+ [How to hardcode a shared library path into an executable])
+])# _LT_LINKER_HARDCODE_LIBPATH
+
+
+# _LT_CMD_STRIPLIB
+# ----------------
+m4_defun([_LT_CMD_STRIPLIB],
+[m4_require([_LT_DECL_EGREP])
+striplib=
+old_striplib=
+AC_MSG_CHECKING([whether stripping libraries is possible])
+if test -z "$STRIP"; then
+ AC_MSG_RESULT([no])
+else
+ if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
+ old_striplib="$STRIP --strip-debug"
+ striplib="$STRIP --strip-unneeded"
+ AC_MSG_RESULT([yes])
+ else
+ case $host_os in
+ darwin*)
+ # FIXME - insert some real tests, host_os isn't really good enough
+ striplib="$STRIP -x"
+ old_striplib="$STRIP -S"
+ AC_MSG_RESULT([yes])
+ ;;
+ freebsd*)
+ if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then
+ old_striplib="$STRIP --strip-debug"
+ striplib="$STRIP --strip-unneeded"
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+ ;;
+ *)
+ AC_MSG_RESULT([no])
+ ;;
+ esac
+ fi
+fi
+_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
+_LT_DECL([], [striplib], [1])
+])# _LT_CMD_STRIPLIB
+
+
+# _LT_PREPARE_MUNGE_PATH_LIST
+# ---------------------------
+# Make sure func_munge_path_list() is defined correctly.
+m4_defun([_LT_PREPARE_MUNGE_PATH_LIST],
+[[# func_munge_path_list VARIABLE PATH
+# -----------------------------------
+# VARIABLE is name of variable containing _space_ separated list of
+# directories to be munged by the contents of PATH, which is string
+# having a format:
+# "DIR[:DIR]:"
+# string "DIR[ DIR]" will be prepended to VARIABLE
+# ":DIR[:DIR]"
+# string "DIR[ DIR]" will be appended to VARIABLE
+# "DIRP[:DIRP]::[DIRA:]DIRA"
+# string "DIRP[ DIRP]" will be prepended to VARIABLE and string
+# "DIRA[ DIRA]" will be appended to VARIABLE
+# "DIR[:DIR]"
+# VARIABLE will be replaced by "DIR[ DIR]"
+func_munge_path_list ()
+{
+ case x@S|@2 in
+ x)
+ ;;
+ *:)
+ eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\"
+ ;;
+ x:*)
+ eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\"
+ ;;
+ *::*)
+ eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\"
+ eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\"
+ ;;
+ *)
+ eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\"
+ ;;
+ esac
+}
+]])# _LT_PREPARE_PATH_LIST
+
+
+# _LT_SYS_DYNAMIC_LINKER([TAG])
+# -----------------------------
+# PORTME Fill in your ld.so characteristics
+m4_defun([_LT_SYS_DYNAMIC_LINKER],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_OBJDUMP])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CHECK_SHELL_FEATURES])dnl
+m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl
+AC_MSG_CHECKING([dynamic linker characteristics])
+m4_if([$1],
+ [], [
+if test yes = "$GCC"; then
+ case $host_os in
+ darwin*) lt_awk_arg='/^libraries:/,/LR/' ;;
+ *) lt_awk_arg='/^libraries:/' ;;
+ esac
+ case $host_os in
+ mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;;
+ *) lt_sed_strip_eq='s|=/|/|g' ;;
+ esac
+ lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
+ case $lt_search_path_spec in
+ *\;*)
+ # if the path contains ";" then we assume it to be the separator
+ # otherwise default to the standard path separator (i.e. ":") - it is
+ # assumed that no part of a normal pathname contains ";" but that should
+ # okay in the real world where ";" in dirpaths is itself problematic.
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
+ ;;
+ *)
+ lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ esac
+ # Ok, now we have the path, separated by spaces, we can step through it
+ # and add multilib dir if necessary...
+ lt_tmp_lt_search_path_spec=
+ lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
+ # ...but if some path component already ends with the multilib dir we assume
+ # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer).
+ case "$lt_multi_os_dir; $lt_search_path_spec " in
+ "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*)
+ lt_multi_os_dir=
+ ;;
+ esac
+ for lt_sys_path in $lt_search_path_spec; do
+ if test -d "$lt_sys_path$lt_multi_os_dir"; then
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir"
+ elif test -n "$lt_multi_os_dir"; then
+ test -d "$lt_sys_path" && \
+ lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
+ fi
+ done
+ lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
+BEGIN {RS = " "; FS = "/|\n";} {
+ lt_foo = "";
+ lt_count = 0;
+ for (lt_i = NF; lt_i > 0; lt_i--) {
+ if ($lt_i != "" && $lt_i != ".") {
+ if ($lt_i == "..") {
+ lt_count++;
+ } else {
+ if (lt_count == 0) {
+ lt_foo = "/" $lt_i lt_foo;
+ } else {
+ lt_count--;
+ }
+ }
+ }
+ }
+ if (lt_foo != "") { lt_freq[[lt_foo]]++; }
+ if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
+}'`
+ # AWK program above erroneously prepends '/' to C:/dos/paths
+ # for these hosts.
+ case $host_os in
+ mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
+ $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;;
+ esac
+ sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
+else
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+fi])
+library_names_spec=
+libname_spec='lib$name'
+soname_spec=
+shrext_cmds=.so
+postinstall_cmds=
+postuninstall_cmds=
+finish_cmds=
+finish_eval=
+shlibpath_var=
+shlibpath_overrides_runpath=unknown
+version_type=none
+dynamic_linker="$host_os ld.so"
+sys_lib_dlsearch_path_spec="/lib /usr/lib"
+need_lib_prefix=unknown
+hardcode_into_libs=no
+
+# when you set need_version to no, make sure it does not cause -set_version
+# flags to be left without arguments
+need_version=unknown
+
+AC_ARG_VAR([LT_SYS_LIBRARY_PATH],
+[User-defined run-time library search path.])
+
+case $host_os in
+aix3*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname.a'
+ shlibpath_var=LIBPATH
+
+ # AIX 3 has no versioning support, so we append a major version to the name.
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+
+aix[[4-9]]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ hardcode_into_libs=yes
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 supports IA64
+ library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ else
+ # With GCC up to 2.95.x, collect2 would create an import file
+ # for dependence libraries. The import file would start with
+ # the line '#! .'. This would cause the generated library to
+ # depend on '.', always an invalid library. This was fixed in
+ # development snapshots of GCC prior to 3.0.
+ case $host_os in
+ aix4 | aix4.[[01]] | aix4.[[01]].*)
+ if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
+ echo ' yes '
+ echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then
+ :
+ else
+ can_build_shared=no
+ fi
+ ;;
+ esac
+ # Using Import Files as archive members, it is possible to support
+ # filename-based versioning of shared library archives on AIX. While
+ # this would work for both with and without runtime linking, it will
+ # prevent static linking of such archives. So we do filename-based
+ # shared library versioning with .so extension only, which is used
+ # when both runtime linking and shared linking is enabled.
+ # Unfortunately, runtime linking may impact performance, so we do
+ # not want this to be the default eventually. Also, we use the
+ # versioned .so libs for executables only if there is the -brtl
+ # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only.
+ # To allow for filename-based versioning support, we need to create
+ # libNAME.so.V as an archive file, containing:
+ # *) an Import File, referring to the versioned filename of the
+ # archive as well as the shared archive member, telling the
+ # bitwidth (32 or 64) of that shared object, and providing the
+ # list of exported symbols of that shared object, eventually
+ # decorated with the 'weak' keyword
+ # *) the shared object with the F_LOADONLY flag set, to really avoid
+ # it being seen by the linker.
+ # At run time we better use the real file rather than another symlink,
+ # but for link time we create the symlink libNAME.so -> libNAME.so.V
+
+ case $with_aix_soname,$aix_use_runtimelinking in
+ # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct
+ # soname into executable. Probably we can add versioning support to
+ # collect2, so additional links can be useful in future.
+ aix,yes) # traditional libtool
+ dynamic_linker='AIX unversionable lib.so'
+ # If using run time linking (on AIX 4.2 or later) use lib<name>.so
+ # instead of lib<name>.a to let people know that these are not
+ # typical AIX shared libraries.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ ;;
+ aix,no) # traditional AIX only
+ dynamic_linker='AIX lib.a[(]lib.so.V[)]'
+ # We preserve .a as extension for shared libraries through AIX4.2
+ # and later when we are not doing run time linking.
+ library_names_spec='$libname$release.a $libname.a'
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+ svr4,*) # full svr4 only
+ dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]"
+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+ # We do not specify a path in Import Files, so LIBPATH fires.
+ shlibpath_overrides_runpath=yes
+ ;;
+ *,yes) # both, prefer svr4
+ dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]"
+ library_names_spec='$libname$release$shared_ext$major $libname$shared_ext'
+ # unpreferred sharedlib libNAME.a needs extra handling
+ postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"'
+ postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"'
+ # We do not specify a path in Import Files, so LIBPATH fires.
+ shlibpath_overrides_runpath=yes
+ ;;
+ *,no) # both, prefer aix
+ dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]"
+ library_names_spec='$libname$release.a $libname.a'
+ soname_spec='$libname$release$shared_ext$major'
+ # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling
+ postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)'
+ postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"'
+ ;;
+ esac
+ shlibpath_var=LIBPATH
+ fi
+ ;;
+
+amigaos*)
+ case $host_cpu in
+ powerpc)
+ # Since July 2007 AmigaOS4 officially supports .so libraries.
+ # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ ;;
+ m68k)
+ library_names_spec='$libname.ixlibrary $libname.a'
+ # Create ${libname}_ixlibrary.a entries in /sys/libs.
+ finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
+ ;;
+ esac
+ ;;
+
+beos*)
+ library_names_spec='$libname$shared_ext'
+ dynamic_linker="$host_os ld.so"
+ shlibpath_var=LIBRARY_PATH
+ ;;
+
+bsdi[[45]]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
+ # the default ld.so.conf also contains /usr/contrib/lib and
+ # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
+ # libtool to hard-code these into programs
+ ;;
+
+cygwin* | mingw* | pw32* | cegcc*)
+ version_type=windows
+ shrext_cmds=.dll
+ need_version=no
+ need_lib_prefix=no
+
+ case $GCC,$cc_basename in
+ yes,*)
+ # gcc
+ library_names_spec='$libname.dll.a'
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+
+ case $host_os in
+ cygwin*)
+ # Cygwin DLLs use 'cyg' prefix rather than 'lib'
+ soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+m4_if([$1], [],[
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
+ ;;
+ mingw* | cegcc*)
+ # MinGW DLLs use traditional 'lib' prefix
+ soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+ ;;
+ pw32*)
+ # pw32 DLLs use 'pw' prefix rather than 'lib'
+ library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+ ;;
+ esac
+ dynamic_linker='Win32 ld.exe'
+ ;;
+
+ *,cl* | *,icl*)
+ # Native MSVC or ICC
+ libname_spec='$name'
+ soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
+ library_names_spec='$libname.dll.lib'
+
+ case $build_os in
+ mingw*)
+ sys_lib_search_path_spec=
+ lt_save_ifs=$IFS
+ IFS=';'
+ for lt_path in $LIB
+ do
+ IFS=$lt_save_ifs
+ # Let DOS variable expansion print the short 8.3 style file name.
+ lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
+ sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
+ done
+ IFS=$lt_save_ifs
+ # Convert to MSYS style.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
+ ;;
+ cygwin*)
+ # Convert to unix form, then to dos form, then back to unix form
+ # but this time dos style (no spaces!) so that the unix form looks
+ # like /cygdrive/c/PROGRA~1:/cygdr...
+ sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
+ sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
+ sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ ;;
+ *)
+ sys_lib_search_path_spec=$LIB
+ if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
+ # It is most probably a Windows format PATH.
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
+ else
+ sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
+ fi
+ # FIXME: find the short name or the path components, as spaces are
+ # common. (e.g. "Program Files" -> "PROGRA~1")
+ ;;
+ esac
+
+ # DLL is installed to $(libdir)/../bin by postinstall_cmds
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ shlibpath_overrides_runpath=yes
+ dynamic_linker='Win32 link.exe'
+ ;;
+
+ *)
+ # Assume MSVC and ICC wrapper
+ library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib'
+ dynamic_linker='Win32 ld.exe'
+ ;;
+ esac
+ # FIXME: first we should search . and the directory the executable is in
+ shlibpath_var=PATH
+ ;;
+
+darwin* | rhapsody*)
+ dynamic_linker="$host_os dyld"
+ version_type=darwin
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$major$shared_ext $libname$shared_ext'
+ soname_spec='$libname$release$major$shared_ext'
+ shlibpath_overrides_runpath=yes
+ shlibpath_var=DYLD_LIBRARY_PATH
+ shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
+m4_if([$1], [],[
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
+ sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
+ ;;
+
+dgux*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+freebsd* | dragonfly* | midnightbsd*)
+ # DragonFly does not have aout. When/if they implement a new
+ # versioning mechanism, adjust this.
+ if test -x /usr/bin/objformat; then
+ objformat=`/usr/bin/objformat`
+ else
+ case $host_os in
+ freebsd[[23]].*) objformat=aout ;;
+ *) objformat=elf ;;
+ esac
+ fi
+ version_type=freebsd-$objformat
+ case $version_type in
+ freebsd-elf*)
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ need_version=no
+ need_lib_prefix=no
+ ;;
+ freebsd-*)
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ need_version=yes
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_os in
+ freebsd2.*)
+ shlibpath_overrides_runpath=yes
+ ;;
+ freebsd3.[[01]]* | freebsdelf3.[[01]]*)
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
+ freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+ *) # from 4.6 on, and DragonFly
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+ esac
+ ;;
+
+haiku*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ dynamic_linker="$host_os runtime_loader"
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
+ hardcode_into_libs=yes
+ ;;
+
+hpux9* | hpux10* | hpux11*)
+ # Give a soname corresponding to the major version so that dld.sl refuses to
+ # link against other versions.
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ case $host_cpu in
+ ia64*)
+ shrext_cmds='.so'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.so"
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ if test 32 = "$HPUX_IA64_MODE"; then
+ sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
+ sys_lib_dlsearch_path_spec=/usr/lib/hpux32
+ else
+ sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
+ sys_lib_dlsearch_path_spec=/usr/lib/hpux64
+ fi
+ ;;
+ hppa*64*)
+ shrext_cmds='.sl'
+ hardcode_into_libs=yes
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
+ shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+ *)
+ shrext_cmds='.sl'
+ dynamic_linker="$host_os dld.sl"
+ shlibpath_var=SHLIB_PATH
+ shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ ;;
+ esac
+ # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
+ postinstall_cmds='chmod 555 $lib'
+ # or fails outright, so override atomically:
+ install_override_mode=555
+ ;;
+
+interix[[3-9]]*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $host_os in
+ nonstopux*) version_type=nonstopux ;;
+ *)
+ if test yes = "$lt_cv_prog_gnu_ld"; then
+ version_type=linux # correct to gnu/linux during the next big refactor
+ else
+ version_type=irix
+ fi ;;
+ esac
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='$libname$release$shared_ext$major'
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext'
+ case $host_os in
+ irix5* | nonstopux*)
+ libsuff= shlibsuff=
+ ;;
+ *)
+ case $LD in # libtool.m4 will add one of these switches to LD
+ *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
+ libsuff= shlibsuff= libmagic=32-bit;;
+ *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
+ libsuff=32 shlibsuff=N32 libmagic=N32;;
+ *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
+ libsuff=64 shlibsuff=64 libmagic=64-bit;;
+ *) libsuff= shlibsuff= libmagic=never-match;;
+ esac
+ ;;
+ esac
+ shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff"
+ sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff"
+ hardcode_into_libs=yes
+ ;;
+
+# No shared lib support for Linux oldld, aout, or coff.
+linux*oldld* | linux*aout* | linux*coff*)
+ dynamic_linker=no
+ ;;
+
+linux*android*)
+ version_type=none # Android doesn't support versioned libraries.
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext'
+ soname_spec='$libname$release$shared_ext'
+ finish_cmds=
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ dynamic_linker='Android linker'
+ # Don't embed -rpath directories since the linker doesn't support them.
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+
+ # Some binutils ld are patched to set DT_RUNPATH
+ AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
+ [lt_cv_shlibpath_overrides_runpath=no
+ save_LDFLAGS=$LDFLAGS
+ save_libdir=$libdir
+ eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
+ LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
+ [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
+ [lt_cv_shlibpath_overrides_runpath=yes])])
+ LDFLAGS=$save_LDFLAGS
+ libdir=$save_libdir
+ ])
+ shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
+
+ # This implies no fast_install, which is unacceptable.
+ # Some rework will be needed to allow for fast_install
+ # before this can be enabled.
+ hardcode_into_libs=yes
+
+ # Ideally, we could use ldconfig to report *all* directores which are
+ # searched for libraries, however this is still not possible. Aside from not
+ # being certain /sbin/ldconfig is available, command
+ # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64,
+ # even though it is searched at run-time. Try to do the best guess by
+ # appending ld.so.conf contents (and includes) to the search path.
+ if test -f /etc/ld.so.conf; then
+ lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
+ sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
+ fi
+
+ # We used to test for /lib/ld.so.1 and disable shared libraries on
+ # powerpc, because MkLinux only supported shared libraries with the
+ # GNU dynamic linker. Since this was broken with cross compilers,
+ # most powerpc-linux boxes support dynamic linking these days and
+ # people can always --disable-shared, the test was removed, and we
+ # assume the GNU/Linux dynamic linker is in use.
+ dynamic_linker='GNU/Linux ld.so'
+ ;;
+
+netbsdelf*-gnu)
+ version_type=linux
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+ soname_spec='${libname}${release}${shared_ext}$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='NetBSD ld.elf_so'
+ ;;
+
+netbsd*)
+ version_type=sunos
+ need_lib_prefix=no
+ need_version=no
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ dynamic_linker='NetBSD (a.out) ld.so'
+ else
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ dynamic_linker='NetBSD ld.elf_so'
+ fi
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ ;;
+
+newsos6)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+*nto* | *qnx*)
+ version_type=qnx
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ dynamic_linker='ldqnx.so'
+ ;;
+
+openbsd* | bitrig*)
+ version_type=sunos
+ sys_lib_dlsearch_path_spec=/usr/lib
+ need_lib_prefix=no
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ need_version=no
+ else
+ need_version=yes
+ fi
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ ;;
+
+os2*)
+ libname_spec='$name'
+ version_type=windows
+ shrext_cmds=.dll
+ need_version=no
+ need_lib_prefix=no
+ # OS/2 can only load a DLL with a base name of 8 characters or less.
+ soname_spec='`test -n "$os2dllname" && libname="$os2dllname";
+ v=$($ECHO $release$versuffix | tr -d .-);
+ n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _);
+ $ECHO $n$v`$shared_ext'
+ library_names_spec='${libname}_dll.$libext'
+ dynamic_linker='OS/2 ld.exe'
+ shlibpath_var=BEGINLIBPATH
+ sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ postinstall_cmds='base_file=`basename \$file`~
+ dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~
+ dldir=$destdir/`dirname \$dlpath`~
+ test -d \$dldir || mkdir -p \$dldir~
+ $install_prog $dir/$dlname \$dldir/$dlname~
+ chmod a+x \$dldir/$dlname~
+ if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
+ eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
+ fi'
+ postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~
+ dlpath=$dir/\$dldll~
+ $RM \$dlpath'
+ ;;
+
+osf3* | osf4* | osf5*)
+ version_type=osf
+ need_lib_prefix=no
+ need_version=no
+ soname_spec='$libname$release$shared_ext$major'
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
+ sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
+ ;;
+
+rdos*)
+ dynamic_linker=no
+ ;;
+
+solaris*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ # ldd complains unless libraries are executable
+ postinstall_cmds='chmod +x $lib'
+ ;;
+
+sunos4*)
+ version_type=sunos
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix'
+ finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ if test yes = "$with_gnu_ld"; then
+ need_lib_prefix=no
+ fi
+ need_version=yes
+ ;;
+
+sysv4 | sysv4.3*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ case $host_vendor in
+ sni)
+ shlibpath_overrides_runpath=no
+ need_lib_prefix=no
+ runpath_var=LD_RUN_PATH
+ ;;
+ siemens)
+ need_lib_prefix=no
+ ;;
+ motorola)
+ need_lib_prefix=no
+ need_version=no
+ shlibpath_overrides_runpath=no
+ sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
+ ;;
+ esac
+ ;;
+
+sysv4*MP*)
+ if test -d /usr/nec; then
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext'
+ soname_spec='$libname$shared_ext.$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ fi
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ version_type=sco
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=yes
+ hardcode_into_libs=yes
+ if test yes = "$with_gnu_ld"; then
+ sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
+ else
+ sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
+ case $host_os in
+ sco3.2v5*)
+ sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
+ ;;
+ esac
+ fi
+ sys_lib_dlsearch_path_spec='/usr/lib'
+ ;;
+
+tpf*)
+ # TPF is a cross-target only. Preferred cross-host = GNU/Linux.
+ version_type=linux # correct to gnu/linux during the next big refactor
+ need_lib_prefix=no
+ need_version=no
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ shlibpath_var=LD_LIBRARY_PATH
+ shlibpath_overrides_runpath=no
+ hardcode_into_libs=yes
+ ;;
+
+uts4*)
+ version_type=linux # correct to gnu/linux during the next big refactor
+ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+ soname_spec='$libname$release$shared_ext$major'
+ shlibpath_var=LD_LIBRARY_PATH
+ ;;
+
+*)
+ dynamic_linker=no
+ ;;
+esac
+AC_MSG_RESULT([$dynamic_linker])
+test no = "$dynamic_linker" && can_build_shared=no
+
+variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
+if test yes = "$GCC"; then
+ variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
+fi
+
+if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then
+ sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec
+fi
+
+if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then
+ sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec
+fi
+
+# remember unaugmented sys_lib_dlsearch_path content for libtool script decls...
+configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec
+
+# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code
+func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH"
+
+# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool
+configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH
+
+_LT_DECL([], [variables_saved_for_relink], [1],
+ [Variables whose values should be saved in libtool wrapper scripts and
+ restored at link time])
+_LT_DECL([], [need_lib_prefix], [0],
+ [Do we need the "lib" prefix for modules?])
+_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
+_LT_DECL([], [version_type], [0], [Library versioning type])
+_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable])
+_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
+_LT_DECL([], [shlibpath_overrides_runpath], [0],
+ [Is shlibpath searched before the hard-coded library search path?])
+_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
+_LT_DECL([], [library_names_spec], [1],
+ [[List of archive names. First name is the real one, the rest are links.
+ The last name is the one that the linker finds with -lNAME]])
+_LT_DECL([], [soname_spec], [1],
+ [[The coded name of the library, if different from the real name]])
+_LT_DECL([], [install_override_mode], [1],
+ [Permission mode override for installation of shared libraries])
+_LT_DECL([], [postinstall_cmds], [2],
+ [Command to use after installation of a shared archive])
+_LT_DECL([], [postuninstall_cmds], [2],
+ [Command to use after uninstallation of a shared archive])
+_LT_DECL([], [finish_cmds], [2],
+ [Commands used to finish a libtool library installation in a directory])
+_LT_DECL([], [finish_eval], [1],
+ [[As "finish_cmds", except a single script fragment to be evaled but
+ not shown]])
+_LT_DECL([], [hardcode_into_libs], [0],
+ [Whether we should hardcode library paths into libraries])
+_LT_DECL([], [sys_lib_search_path_spec], [2],
+ [Compile-time system search path for libraries])
+_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2],
+ [Detected run-time system search path for libraries])
+_LT_DECL([], [configure_time_lt_sys_library_path], [2],
+ [Explicit LT_SYS_LIBRARY_PATH set during ./configure time])
+])# _LT_SYS_DYNAMIC_LINKER
+
+
+# _LT_PATH_TOOL_PREFIX(TOOL)
+# --------------------------
+# find a file program that can recognize shared library
+AC_DEFUN([_LT_PATH_TOOL_PREFIX],
+[m4_require([_LT_DECL_EGREP])dnl
+AC_MSG_CHECKING([for $1])
+AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
+[case $MAGIC_CMD in
+[[\\/*] | ?:[\\/]*])
+ lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path.
+ ;;
+*)
+ lt_save_MAGIC_CMD=$MAGIC_CMD
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+dnl $ac_dummy forces splitting on constant user-supplied paths.
+dnl POSIX.2 word splitting is done only on the output of word expansions,
+dnl not every word. This closes a longstanding sh security hole.
+ ac_dummy="m4_if([$2], , $PATH, [$2])"
+ for ac_dir in $ac_dummy; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$1"; then
+ lt_cv_path_MAGIC_CMD=$ac_dir/"$1"
+ if test -n "$file_magic_test_file"; then
+ case $deplibs_check_method in
+ "file_magic "*)
+ file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
+ MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+ if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
+ $EGREP "$file_magic_regex" > /dev/null; then
+ :
+ else
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the command libtool uses to detect shared libraries,
+*** $file_magic_cmd, produces output that libtool cannot recognize.
+*** The result is that libtool may fail to recognize shared libraries
+*** as such. This will affect the creation of libtool libraries that
+*** depend on shared libraries, but programs linked with such libtool
+*** libraries will work regardless of this problem. Nevertheless, you
+*** may want to report the problem to your system manager and/or to
+*** bug-libtool@gnu.org
+
+_LT_EOF
+ fi ;;
+ esac
+ fi
+ break
+ fi
+ done
+ IFS=$lt_save_ifs
+ MAGIC_CMD=$lt_save_MAGIC_CMD
+ ;;
+esac])
+MAGIC_CMD=$lt_cv_path_MAGIC_CMD
+if test -n "$MAGIC_CMD"; then
+ AC_MSG_RESULT($MAGIC_CMD)
+else
+ AC_MSG_RESULT(no)
+fi
+_LT_DECL([], [MAGIC_CMD], [0],
+ [Used to examine libraries when file_magic_cmd begins with "file"])dnl
+])# _LT_PATH_TOOL_PREFIX
+
+# Old name:
+AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
+
+
+# _LT_PATH_MAGIC
+# --------------
+# find a file program that can recognize a shared library
+m4_defun([_LT_PATH_MAGIC],
+[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
+if test -z "$lt_cv_path_MAGIC_CMD"; then
+ if test -n "$ac_tool_prefix"; then
+ _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
+ else
+ MAGIC_CMD=:
+ fi
+fi
+])# _LT_PATH_MAGIC
+
+
+# LT_PATH_LD
+# ----------
+# find the pathname to the GNU or non-GNU linker
+AC_DEFUN([LT_PATH_LD],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
+
+AC_ARG_WITH([gnu-ld],
+ [AS_HELP_STRING([--with-gnu-ld],
+ [assume the C compiler uses GNU ld @<:@default=no@:>@])],
+ [test no = "$withval" || with_gnu_ld=yes],
+ [with_gnu_ld=no])dnl
+
+ac_prog=ld
+if test yes = "$GCC"; then
+ # Check if gcc -print-prog-name=ld gives a path.
+ AC_MSG_CHECKING([for ld used by $CC])
+ case $host in
+ *-*-mingw*)
+ # gcc leaves a trailing carriage return, which upsets mingw
+ ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+ *)
+ ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
+ esac
+ case $ac_prog in
+ # Accept absolute paths.
+ [[\\/]]* | ?:[[\\/]]*)
+ re_direlt='/[[^/]][[^/]]*/\.\./'
+ # Canonicalize the pathname of ld
+ ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
+ while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
+ ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
+ done
+ test -z "$LD" && LD=$ac_prog
+ ;;
+ "")
+ # If it fails, then pretend we aren't using GCC.
+ ac_prog=ld
+ ;;
+ *)
+ # If it is relative, then search for the first ld in PATH.
+ with_gnu_ld=unknown
+ ;;
+ esac
+elif test yes = "$with_gnu_ld"; then
+ AC_MSG_CHECKING([for GNU ld])
+else
+ AC_MSG_CHECKING([for non-GNU ld])
+fi
+AC_CACHE_VAL(lt_cv_path_LD,
+[if test -z "$LD"; then
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+ lt_cv_path_LD=$ac_dir/$ac_prog
+ # Check to see if the program is GNU ld. I'd rather use --version,
+ # but apparently some variants of GNU ld only accept -v.
+ # Break only if it was the GNU/non-GNU ld that we prefer.
+ case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
+ *GNU* | *'with BFD'*)
+ test no != "$with_gnu_ld" && break
+ ;;
+ *)
+ test yes != "$with_gnu_ld" && break
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+else
+ lt_cv_path_LD=$LD # Let the user override the test with a path.
+fi])
+LD=$lt_cv_path_LD
+if test -n "$LD"; then
+ AC_MSG_RESULT($LD)
+else
+ AC_MSG_RESULT(no)
+fi
+test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
+_LT_PATH_LD_GNU
+AC_SUBST([LD])
+
+_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
+])# LT_PATH_LD
+
+# Old names:
+AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
+AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_LD], [])
+dnl AC_DEFUN([AC_PROG_LD], [])
+
+
+# _LT_PATH_LD_GNU
+#- --------------
+m4_defun([_LT_PATH_LD_GNU],
+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
+[# I'd rather use --version here, but apparently some GNU lds only accept -v.
+case `$LD -v 2>&1 </dev/null` in
+*GNU* | *'with BFD'*)
+ lt_cv_prog_gnu_ld=yes
+ ;;
+*)
+ lt_cv_prog_gnu_ld=no
+ ;;
+esac])
+with_gnu_ld=$lt_cv_prog_gnu_ld
+])# _LT_PATH_LD_GNU
+
+
+# _LT_CMD_RELOAD
+# --------------
+# find reload flag for linker
+# -- PORTME Some linkers may need a different reload flag.
+m4_defun([_LT_CMD_RELOAD],
+[AC_CACHE_CHECK([for $LD option to reload object files],
+ lt_cv_ld_reload_flag,
+ [lt_cv_ld_reload_flag='-r'])
+reload_flag=$lt_cv_ld_reload_flag
+case $reload_flag in
+"" | " "*) ;;
+*) reload_flag=" $reload_flag" ;;
+esac
+reload_cmds='$LD$reload_flag -o $output$reload_objs'
+case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ if test yes != "$GCC"; then
+ reload_cmds=false
+ fi
+ ;;
+ darwin*)
+ if test yes = "$GCC"; then
+ reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs'
+ else
+ reload_cmds='$LD$reload_flag -o $output$reload_objs'
+ fi
+ ;;
+esac
+_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
+_LT_TAGDECL([], [reload_cmds], [2])dnl
+])# _LT_CMD_RELOAD
+
+
+# _LT_PATH_DD
+# -----------
+# find a working dd
+m4_defun([_LT_PATH_DD],
+[AC_CACHE_CHECK([for a working dd], [ac_cv_path_lt_DD],
+[printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+: ${lt_DD:=$DD}
+AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd],
+[if "$ac_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+ cmp -s conftest.i conftest.out \
+ && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=:
+fi])
+rm -f conftest.i conftest2.i conftest.out])
+])# _LT_PATH_DD
+
+
+# _LT_CMD_TRUNCATE
+# ----------------
+# find command to truncate a binary pipe
+m4_defun([_LT_CMD_TRUNCATE],
+[m4_require([_LT_PATH_DD])
+AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin],
+[printf 0123456789abcdef0123456789abcdef >conftest.i
+cat conftest.i conftest.i >conftest2.i
+lt_cv_truncate_bin=
+if "$ac_cv_path_lt_DD" bs=32 count=1 <conftest2.i >conftest.out 2>/dev/null; then
+ cmp -s conftest.i conftest.out \
+ && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1"
+fi
+rm -f conftest.i conftest2.i conftest.out
+test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"])
+_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1],
+ [Command to truncate a binary pipe])
+])# _LT_CMD_TRUNCATE
+
+
+# _LT_CHECK_MAGIC_METHOD
+# ----------------------
+# how to check for library dependencies
+# -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_MAGIC_METHOD],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+AC_CACHE_CHECK([how to recognize dependent libraries],
+lt_cv_deplibs_check_method,
+[lt_cv_file_magic_cmd='$MAGIC_CMD'
+lt_cv_file_magic_test_file=
+lt_cv_deplibs_check_method='unknown'
+# Need to set the preceding variable on all platforms that support
+# interlibrary dependencies.
+# 'none' -- dependencies not supported.
+# 'unknown' -- same as none, but documents that we really don't know.
+# 'pass_all' -- all dependencies passed with no checks.
+# 'test_compile' -- check by making test program.
+# 'file_magic [[regex]]' -- check by looking for files in library path
+# that responds to the $file_magic_cmd with a given extended regex.
+# If you have 'file' or equivalent on your system and you're not sure
+# whether 'pass_all' will *always* work, you probably want this one.
+
+case $host_os in
+aix[[4-9]]*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+beos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+bsdi[[45]]*)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
+ lt_cv_file_magic_cmd='$FILECMD -L'
+ lt_cv_file_magic_test_file=/shlib/libc.so
+ ;;
+
+cygwin*)
+ # func_win32_libid is a shell function defined in ltmain.sh
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ ;;
+
+mingw* | pw32*)
+ # Base MSYS/MinGW do not provide the 'file' command needed by
+ # func_win32_libid shell function, so use a weaker test based on 'objdump',
+ # unless we find 'file', for example because we are cross-compiling.
+ if ( file / ) >/dev/null 2>&1; then
+ lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
+ lt_cv_file_magic_cmd='func_win32_libid'
+ else
+ # Keep this pattern in sync with the one in func_win32_libid.
+ lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ fi
+ ;;
+
+cegcc*)
+ # use the weaker test based on 'objdump'. See mingw*.
+ lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
+ lt_cv_file_magic_cmd='$OBJDUMP -f'
+ ;;
+
+darwin* | rhapsody*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+freebsd* | dragonfly* | midnightbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ case $host_cpu in
+ i*86 )
+ # Not sure whether the presence of OpenBSD here was a mistake.
+ # Let's accept both of them until this is cleared up.
+ lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
+ lt_cv_file_magic_cmd=$FILECMD
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
+ ;;
+ esac
+ else
+ lt_cv_deplibs_check_method=pass_all
+ fi
+ ;;
+
+haiku*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+hpux10.20* | hpux11*)
+ lt_cv_file_magic_cmd=$FILECMD
+ case $host_cpu in
+ ia64*)
+ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
+ lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
+ ;;
+ hppa*64*)
+ [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
+ lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
+ ;;
+ *)
+ lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
+ lt_cv_file_magic_test_file=/usr/lib/libc.sl
+ ;;
+ esac
+ ;;
+
+interix[[3-9]]*)
+ # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
+ ;;
+
+irix5* | irix6* | nonstopux*)
+ case $LD in
+ *-32|*"-32 ") libmagic=32-bit;;
+ *-n32|*"-n32 ") libmagic=N32;;
+ *-64|*"-64 ") libmagic=64-bit;;
+ *) libmagic=never-match;;
+ esac
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+netbsd* | netbsdelf*-gnu)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
+ fi
+ ;;
+
+newos6*)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
+ lt_cv_file_magic_cmd=$FILECMD
+ lt_cv_file_magic_test_file=/usr/lib/libnls.so
+ ;;
+
+*nto* | *qnx*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+openbsd* | bitrig*)
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
+ else
+ lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
+ fi
+ ;;
+
+osf3* | osf4* | osf5*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+rdos*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+solaris*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+
+sysv4 | sysv4.3*)
+ case $host_vendor in
+ motorola)
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
+ lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
+ ;;
+ ncr)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ sequent)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
+ ;;
+ sni)
+ lt_cv_file_magic_cmd='/bin/file'
+ lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
+ lt_cv_file_magic_test_file=/lib/libc.so
+ ;;
+ siemens)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ pc)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+ esac
+ ;;
+
+tpf*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+os2*)
+ lt_cv_deplibs_check_method=pass_all
+ ;;
+esac
+])
+
+file_magic_glob=
+want_nocaseglob=no
+if test "$build" = "$host"; then
+ case $host_os in
+ mingw* | pw32*)
+ if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
+ want_nocaseglob=yes
+ else
+ file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
+ fi
+ ;;
+ esac
+fi
+
+file_magic_cmd=$lt_cv_file_magic_cmd
+deplibs_check_method=$lt_cv_deplibs_check_method
+test -z "$deplibs_check_method" && deplibs_check_method=unknown
+
+_LT_DECL([], [deplibs_check_method], [1],
+ [Method to check whether dependent libraries are shared objects])
+_LT_DECL([], [file_magic_cmd], [1],
+ [Command to use when deplibs_check_method = "file_magic"])
+_LT_DECL([], [file_magic_glob], [1],
+ [How to find potential files when deplibs_check_method = "file_magic"])
+_LT_DECL([], [want_nocaseglob], [1],
+ [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
+])# _LT_CHECK_MAGIC_METHOD
+
+
+# LT_PATH_NM
+# ----------
+# find the pathname to a BSD- or MS-compatible name lister
+AC_DEFUN([LT_PATH_NM],
+[AC_REQUIRE([AC_PROG_CC])dnl
+AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
+[if test -n "$NM"; then
+ # Let the user override the test.
+ lt_cv_path_NM=$NM
+else
+ lt_nm_to_check=${ac_tool_prefix}nm
+ if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
+ lt_nm_to_check="$lt_nm_to_check nm"
+ fi
+ for lt_tmp_nm in $lt_nm_to_check; do
+ lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR
+ for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
+ IFS=$lt_save_ifs
+ test -z "$ac_dir" && ac_dir=.
+ tmp_nm=$ac_dir/$lt_tmp_nm
+ if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then
+ # Check to see if the nm accepts a BSD-compat flag.
+ # Adding the 'sed 1q' prevents false positives on HP-UX, which says:
+ # nm: unknown option "B" ignored
+ # Tru64's nm complains that /dev/null is an invalid object file
+ # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty
+ case $build_os in
+ mingw*) lt_bad_file=conftest.nm/nofile ;;
+ *) lt_bad_file=/dev/null ;;
+ esac
+ case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in
+ *$lt_bad_file* | *'Invalid file or object type'*)
+ lt_cv_path_NM="$tmp_nm -B"
+ break 2
+ ;;
+ *)
+ case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in
+ */dev/null*)
+ lt_cv_path_NM="$tmp_nm -p"
+ break 2
+ ;;
+ *)
+ lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
+ continue # so that we can try to find one that supports BSD flags
+ ;;
+ esac
+ ;;
+ esac
+ fi
+ done
+ IFS=$lt_save_ifs
+ done
+ : ${lt_cv_path_NM=no}
+fi])
+if test no != "$lt_cv_path_NM"; then
+ NM=$lt_cv_path_NM
+else
+ # Didn't find any BSD compatible name lister, look for dumpbin.
+ if test -n "$DUMPBIN"; then :
+ # Let the user override the test.
+ else
+ AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
+ case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in
+ *COFF*)
+ DUMPBIN="$DUMPBIN -symbols -headers"
+ ;;
+ *)
+ DUMPBIN=:
+ ;;
+ esac
+ fi
+ AC_SUBST([DUMPBIN])
+ if test : != "$DUMPBIN"; then
+ NM=$DUMPBIN
+ fi
+fi
+test -z "$NM" && NM=nm
+AC_SUBST([NM])
+_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
+
+AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
+ [lt_cv_nm_interface="BSD nm"
+ echo "int some_variable = 0;" > conftest.$ac_ext
+ (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$ac_compile" 2>conftest.err)
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
+ (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
+ cat conftest.out >&AS_MESSAGE_LOG_FD
+ if $GREP 'External.*some_variable' conftest.out > /dev/null; then
+ lt_cv_nm_interface="MS dumpbin"
+ fi
+ rm -f conftest*])
+])# LT_PATH_NM
+
+# Old names:
+AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
+AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_PROG_NM], [])
+dnl AC_DEFUN([AC_PROG_NM], [])
+
+# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+# --------------------------------
+# how to determine the name of the shared library
+# associated with a specific link library.
+# -- PORTME fill in with the dynamic library characteristics
+m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
+[m4_require([_LT_DECL_EGREP])
+m4_require([_LT_DECL_OBJDUMP])
+m4_require([_LT_DECL_DLLTOOL])
+AC_CACHE_CHECK([how to associate runtime and link libraries],
+lt_cv_sharedlib_from_linklib_cmd,
+[lt_cv_sharedlib_from_linklib_cmd='unknown'
+
+case $host_os in
+cygwin* | mingw* | pw32* | cegcc*)
+ # two different shell functions defined in ltmain.sh;
+ # decide which one to use based on capabilities of $DLLTOOL
+ case `$DLLTOOL --help 2>&1` in
+ *--identify-strict*)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
+ ;;
+ *)
+ lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
+ ;;
+ esac
+ ;;
+*)
+ # fallback: assume linklib IS sharedlib
+ lt_cv_sharedlib_from_linklib_cmd=$ECHO
+ ;;
+esac
+])
+sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
+test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
+
+_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
+ [Command to associate shared and link libraries])
+])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
+
+
+# _LT_PATH_MANIFEST_TOOL
+# ----------------------
+# locate the manifest tool
+m4_defun([_LT_PATH_MANIFEST_TOOL],
+[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
+test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
+AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
+ [lt_cv_path_mainfest_tool=no
+ echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
+ $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
+ cat conftest.err >&AS_MESSAGE_LOG_FD
+ if $GREP 'Manifest Tool' conftest.out > /dev/null; then
+ lt_cv_path_mainfest_tool=yes
+ fi
+ rm -f conftest*])
+if test yes != "$lt_cv_path_mainfest_tool"; then
+ MANIFEST_TOOL=:
+fi
+_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
+])# _LT_PATH_MANIFEST_TOOL
+
+
+# _LT_DLL_DEF_P([FILE])
+# ---------------------
+# True iff FILE is a Windows DLL '.def' file.
+# Keep in sync with func_dll_def_p in the libtool script
+AC_DEFUN([_LT_DLL_DEF_P],
+[dnl
+ test DEF = "`$SED -n dnl
+ -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace
+ -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments
+ -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl
+ -e q dnl Only consider the first "real" line
+ $1`" dnl
+])# _LT_DLL_DEF_P
+
+
+# LT_LIB_M
+# --------
+# check for math library
+AC_DEFUN([LT_LIB_M],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+LIBM=
+case $host in
+*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
+ # These system don't have libm, or don't need it
+ ;;
+*-ncr-sysv4.3*)
+ AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw)
+ AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
+ ;;
+*)
+ AC_CHECK_LIB(m, cos, LIBM=-lm)
+ ;;
+esac
+AC_SUBST([LIBM])
+])# LT_LIB_M
+
+# Old name:
+AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_CHECK_LIBM], [])
+
+
+# _LT_COMPILER_NO_RTTI([TAGNAME])
+# -------------------------------
+m4_defun([_LT_COMPILER_NO_RTTI],
+[m4_require([_LT_TAG_COMPILER])dnl
+
+_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+
+if test yes = "$GCC"; then
+ case $cc_basename in
+ nvcc*)
+ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
+ esac
+
+ _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
+ lt_cv_prog_compiler_rtti_exceptions,
+ [-fno-rtti -fno-exceptions], [],
+ [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
+fi
+_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
+ [Compiler flag to turn off builtin functions])
+])# _LT_COMPILER_NO_RTTI
+
+
+# _LT_CMD_GLOBAL_SYMBOLS
+# ----------------------
+m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_AWK])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+AC_REQUIRE([LT_PATH_LD])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+
+# Check for command to grab the raw symbol name followed by C symbol from nm.
+AC_MSG_CHECKING([command to parse $NM output from $compiler object])
+AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
+[
+# These are sane defaults that work on at least a few old systems.
+# [They come from Ultrix. What could be older than Ultrix?!! ;)]
+
+# Character class describing NM global symbol codes.
+symcode='[[BCDEGRST]]'
+
+# Regexp to match symbols that can be accessed directly from C.
+sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
+
+# Define system-specific variables.
+case $host_os in
+aix*)
+ symcode='[[BCDT]]'
+ ;;
+cygwin* | mingw* | pw32* | cegcc*)
+ symcode='[[ABCDGISTW]]'
+ ;;
+hpux*)
+ if test ia64 = "$host_cpu"; then
+ symcode='[[ABCDEGRST]]'
+ fi
+ ;;
+irix* | nonstopux*)
+ symcode='[[BCDEGRST]]'
+ ;;
+osf*)
+ symcode='[[BCDEGQRST]]'
+ ;;
+solaris*)
+ symcode='[[BDRT]]'
+ ;;
+sco3.2v5*)
+ symcode='[[DT]]'
+ ;;
+sysv4.2uw2*)
+ symcode='[[DT]]'
+ ;;
+sysv5* | sco5v6* | unixware* | OpenUNIX*)
+ symcode='[[ABDT]]'
+ ;;
+sysv4)
+ symcode='[[DFNSTU]]'
+ ;;
+esac
+
+# If we're using GNU nm, then use its standard symbol codes.
+case `$NM -V 2>&1` in
+*GNU* | *'with BFD'*)
+ symcode='[[ABCDGIRSTW]]' ;;
+esac
+
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Gets list of data symbols to import.
+ lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'"
+ # Adjust the below global symbol transforms to fixup imported variables.
+ lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'"
+ lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'"
+ lt_c_name_lib_hook="\
+ -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\
+ -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'"
+else
+ # Disable hooks by default.
+ lt_cv_sys_global_symbol_to_import=
+ lt_cdecl_hook=
+ lt_c_name_hook=
+ lt_c_name_lib_hook=
+fi
+
+# Transform an extracted symbol line into a proper C declaration.
+# Some systems (esp. on ia64) link data and code symbols differently,
+# so use this general approach.
+lt_cv_sys_global_symbol_to_cdecl="$SED -n"\
+$lt_cdecl_hook\
+" -e 's/^T .* \(.*\)$/extern int \1();/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'"
+
+# Transform an extracted symbol line into symbol name and symbol address
+lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\
+$lt_c_name_hook\
+" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'"
+
+# Transform an extracted symbol line into symbol name with lib prefix and
+# symbol address.
+lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\
+$lt_c_name_lib_hook\
+" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\
+" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\
+" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'"
+
+# Handle CRLF in mingw tool chain
+opt_cr=
+case $build_os in
+mingw*)
+ opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
+ ;;
+esac
+
+# Try without a prefix underscore, then with it.
+for ac_symprfx in "" "_"; do
+
+ # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
+ symxfrm="\\1 $ac_symprfx\\2 \\2"
+
+ # Write the raw and C identifiers.
+ if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ # Fake it for dumpbin and say T for any non-static function,
+ # D for any global variable and I for any imported variable.
+ # Also find C++ and __fastcall symbols from MSVC++ or ICC,
+ # which start with @ or ?.
+ lt_cv_sys_global_symbol_pipe="$AWK ['"\
+" {last_section=section; section=\$ 3};"\
+" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
+" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
+" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\
+" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\
+" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\
+" \$ 0!~/External *\|/{next};"\
+" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
+" {if(hide[section]) next};"\
+" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\
+" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\
+" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\
+" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\
+" ' prfx=^$ac_symprfx]"
+ else
+ lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
+ fi
+ lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'"
+
+ # Check to see that the pipe works correctly.
+ pipe_works=no
+
+ rm -f conftest*
+ cat > conftest.$ac_ext <<_LT_EOF
+#ifdef __cplusplus
+extern "C" {
+#endif
+char nm_test_var;
+void nm_test_func(void);
+void nm_test_func(void){}
+#ifdef __cplusplus
+}
+#endif
+int main(){nm_test_var='a';nm_test_func();return(0);}
+_LT_EOF
+
+ if AC_TRY_EVAL(ac_compile); then
+ # Now try to grab the symbols.
+ nlist=conftest.nm
+ $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&AS_MESSAGE_LOG_FD
+ if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&AS_MESSAGE_LOG_FD && test -s "$nlist"; then
+ # Try sorting and uniquifying the output.
+ if sort "$nlist" | uniq > "$nlist"T; then
+ mv -f "$nlist"T "$nlist"
+ else
+ rm -f "$nlist"T
+ fi
+
+ # Make sure that we snagged all the symbols we need.
+ if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
+ if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
+ cat <<_LT_EOF > conftest.$ac_ext
+/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */
+#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE
+/* DATA imports from DLLs on WIN32 can't be const, because runtime
+ relocations are performed -- see ld's documentation on pseudo-relocs. */
+# define LT@&t@_DLSYM_CONST
+#elif defined __osf__
+/* This system does not cope well with relocations in const data. */
+# define LT@&t@_DLSYM_CONST
+#else
+# define LT@&t@_DLSYM_CONST const
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+_LT_EOF
+ # Now generate the symbol file.
+ eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
+
+ cat <<_LT_EOF >> conftest.$ac_ext
+
+/* The mapping between symbol names and symbols. */
+LT@&t@_DLSYM_CONST struct {
+ const char *name;
+ void *address;
+}
+lt__PROGRAM__LTX_preloaded_symbols[[]] =
+{
+ { "@PROGRAM@", (void *) 0 },
+_LT_EOF
+ $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
+ cat <<\_LT_EOF >> conftest.$ac_ext
+ {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt__PROGRAM__LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+_LT_EOF
+ # Now try linking the two files.
+ mv conftest.$ac_objext conftstm.$ac_objext
+ lt_globsym_save_LIBS=$LIBS
+ lt_globsym_save_CFLAGS=$CFLAGS
+ LIBS=conftstm.$ac_objext
+ CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
+ if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then
+ pipe_works=yes
+ fi
+ LIBS=$lt_globsym_save_LIBS
+ CFLAGS=$lt_globsym_save_CFLAGS
+ else
+ echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
+ fi
+ else
+ echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
+ cat conftest.$ac_ext >&5
+ fi
+ rm -rf conftest* conftst*
+
+ # Do not use the global_symbol_pipe unless it works.
+ if test yes = "$pipe_works"; then
+ break
+ else
+ lt_cv_sys_global_symbol_pipe=
+ fi
+done
+])
+if test -z "$lt_cv_sys_global_symbol_pipe"; then
+ lt_cv_sys_global_symbol_to_cdecl=
+fi
+if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
+ AC_MSG_RESULT(failed)
+else
+ AC_MSG_RESULT(ok)
+fi
+
+# Response file support.
+if test "$lt_cv_nm_interface" = "MS dumpbin"; then
+ nm_file_list_spec='@'
+elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
+ nm_file_list_spec='@'
+fi
+
+_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
+ [Take the output of nm and produce a listing of raw symbols and C names])
+_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
+ [Transform the output of nm in a proper C declaration])
+_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1],
+ [Transform the output of nm into a list of symbols to manually relocate])
+_LT_DECL([global_symbol_to_c_name_address],
+ [lt_cv_sys_global_symbol_to_c_name_address], [1],
+ [Transform the output of nm in a C name address pair])
+_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
+ [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
+ [Transform the output of nm in a C name address pair when lib prefix is needed])
+_LT_DECL([nm_interface], [lt_cv_nm_interface], [1],
+ [The name lister interface])
+_LT_DECL([], [nm_file_list_spec], [1],
+ [Specify filename containing input files for $NM])
+]) # _LT_CMD_GLOBAL_SYMBOLS
+
+
+# _LT_COMPILER_PIC([TAGNAME])
+# ---------------------------
+m4_defun([_LT_COMPILER_PIC],
+[m4_require([_LT_TAG_COMPILER])dnl
+_LT_TAGVAR(lt_prog_compiler_wl, $1)=
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+_LT_TAGVAR(lt_prog_compiler_static, $1)=
+
+m4_if([$1], [CXX], [
+ # C++ specific cases for pic, static, wl, etc.
+ if test yes = "$GXX"; then
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ fi
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the '-m68020' flag to GCC prevents building anything better,
+ # like '-m68040'.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+ mingw* | cygwin* | os2* | pw32* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ m4_if([$1], [GCJ], [],
+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+ case $host_os in
+ os2*)
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+ ;;
+ esac
+ ;;
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+ ;;
+ *djgpp*)
+ # DJGPP does not support shared libraries at all
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+ ;;
+ haiku*)
+ # PIC is the default for Haiku.
+ # The "-static" flag exists, but is broken.
+ _LT_TAGVAR(lt_prog_compiler_static, $1)=
+ ;;
+ interix[[3-9]]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+ fi
+ ;;
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+ ;;
+ *qnx* | *nto*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+ else
+ case $host_os in
+ aix[[4-9]]*)
+ # All AIX code is PIC.
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ else
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+ chorus*)
+ case $cc_basename in
+ cxch68*)
+ # Green Hills C++ Compiler
+ # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
+ ;;
+ esac
+ ;;
+ mingw* | cygwin* | os2* | pw32* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ m4_if([$1], [GCJ], [],
+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+ ;;
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ freebsd* | dragonfly* | midnightbsd*)
+ # FreeBSD uses GNU C++
+ ;;
+ hpux9* | hpux10* | hpux11*)
+ case $cc_basename in
+ CC*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
+ if test ia64 != "$host_cpu"; then
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+ fi
+ ;;
+ aCC*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+ ;;
+ esac
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ interix*)
+ # This is c89, which is MS Visual C++ (no shared libs)
+ # Anyone wants to do a port?
+ ;;
+ irix5* | irix6* | nonstopux*)
+ case $cc_basename in
+ CC*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ # CC pic flag -KPIC is the default.
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ case $cc_basename in
+ KCC*)
+ # KAI C++ Compiler
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ ecpc* )
+ # old Intel C++ for x86_64, which still supported -KPIC.
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ icpc* )
+ # Intel C++, used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ pgCC* | pgcpp*)
+ # Portland Group C++ compiler
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ cxx*)
+ # Compaq C++
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+ xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
+ # IBM XL 8.0, 9.0 on PPC and BlueGene
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | $SED 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ lynxos*)
+ ;;
+ m88k*)
+ ;;
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ netbsd* | netbsdelf*-gnu)
+ ;;
+ *qnx* | *nto*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+ ;;
+ osf3* | osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ ;;
+ cxx*)
+ # Digital/Compaq C++
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # Make sure the PIC flag is empty. It appears that all Alpha
+ # Linux and Compaq Tru64 Unix objects are PIC.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ psos*)
+ ;;
+ solaris*)
+ case $cc_basename in
+ CC* | sunCC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ lcc*)
+ # Lucid
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ case $cc_basename in
+ CC*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ esac
+ ;;
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ ;;
+ *)
+ ;;
+ esac
+ ;;
+ vxworks*)
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ ;;
+ esac
+ fi
+],
+[
+ if test yes = "$GCC"; then
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+
+ case $host_os in
+ aix*)
+ # All AIX code is PIC.
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ fi
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ m68k)
+ # FIXME: we need at least 68020 code to build shared libraries, but
+ # adding the '-m68020' flag to GCC prevents building anything better,
+ # like '-m68040'.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
+ ;;
+ esac
+ ;;
+
+ beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
+ # PIC is the default for these OSes.
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ # Although the cygwin gcc ignores -fPIC, still need this for old-style
+ # (--disable-auto-import) libraries
+ m4_if([$1], [GCJ], [],
+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+ case $host_os in
+ os2*)
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+ ;;
+ esac
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+ ;;
+
+ haiku*)
+ # PIC is the default for Haiku.
+ # The "-static" flag exists, but is broken.
+ _LT_TAGVAR(lt_prog_compiler_static, $1)=
+ ;;
+
+ hpux*)
+ # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
+ # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag
+ # sets the default TLS model and affects inlining.
+ case $host_cpu in
+ hppa*64*)
+ # +Z the default
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+ ;;
+
+ interix[[3-9]]*)
+ # Interix 3.x gcc -fpic/-fPIC options generate broken code.
+ # Instead, we relocate shared libraries at runtime.
+ ;;
+
+ msdosdjgpp*)
+ # Just because we use GCC doesn't mean we suddenly get shared libraries
+ # on systems that don't support them.
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ enable_shared=no
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
+ fi
+ ;;
+
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ ;;
+ esac
+
+ case $cc_basename in
+ nvcc*) # Cuda Compiler Driver 2.2
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
+ if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
+ fi
+ ;;
+ esac
+ else
+ # PORTME Check for flag to pass linker flags through the system compiler.
+ case $host_os in
+ aix*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ if test ia64 = "$host_cpu"; then
+ # AIX 5 now supports IA64 processor
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ else
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+ fi
+ ;;
+
+ darwin* | rhapsody*)
+ # PIC is the default on this platform
+ # Common symbols not allowed in MH_DYLIB files
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
+ case $cc_basename in
+ nagfor*)
+ # NAG Fortran compiler
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ esac
+ ;;
+
+ mingw* | cygwin* | pw32* | os2* | cegcc*)
+ # This hack is so that the source file can tell whether it is being
+ # built for inclusion in a dll (and should export symbols for example).
+ m4_if([$1], [GCJ], [],
+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
+ case $host_os in
+ os2*)
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static'
+ ;;
+ esac
+ ;;
+
+ hpux9* | hpux10* | hpux11*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
+ # not for PA HP-UX.
+ case $host_cpu in
+ hppa*64*|ia64*)
+ # +Z the default
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
+ ;;
+ esac
+ # Is there a better lt_prog_compiler_static that works with the bundled CC?
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive'
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # PIC (with -KPIC) is the default.
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ case $cc_basename in
+ # old Intel for x86_64, which still supported -KPIC.
+ ecc*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ # flang / f18. f95 an alias for gfortran or flang on Debian
+ flang* | f18* | f95*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ # icc used to be incompatible with GCC.
+ # ICC 10 doesn't accept -KPIC any more.
+ icc* | ifort*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ # Lahey Fortran 8.1.
+ lf95*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
+ ;;
+ nagfor*)
+ # NAG Fortran compiler
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ tcc*)
+ # Fabrice Bellard et al's Tiny C Compiler
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group compilers (*not* the Pentium gcc compiler,
+ # which looks to be a dead project)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ ccc*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # All Alpha code is PIC.
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+ xl* | bgxl* | bgf* | mpixl*)
+ # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
+ ;;
+ *)
+ case `$CC -V 2>&1 | $SED 5q` in
+ *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
+ # Sun Fortran 8.3 passes all unrecognized flags to the linker
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
+ ;;
+ *Sun\ F* | *Sun*Fortran*)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+ ;;
+ *Sun\ C*)
+ # Sun C 5.9
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ ;;
+ *Intel*\ [[CF]]*Compiler*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+ ;;
+ *Portland\ Group*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ newsos6)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ *nto* | *qnx*)
+ # QNX uses GNU C++, but need to define -shared option too, otherwise
+ # it will coredump.
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
+ ;;
+
+ osf3* | osf4* | osf5*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ # All OSF/1 code is PIC.
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+
+ rdos*)
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
+ ;;
+
+ solaris*)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ case $cc_basename in
+ f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
+ esac
+ ;;
+
+ sunos4*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ sysv4 | sysv4.2uw2* | sysv4.3*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ fi
+ ;;
+
+ sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ unicos*)
+ _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ ;;
+
+ uts4*)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
+ _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
+ ;;
+
+ *)
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
+ ;;
+ esac
+ fi
+])
+case $host_os in
+ # For platforms that do not support PIC, -DPIC is meaningless:
+ *djgpp*)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)=
+ ;;
+ *)
+ _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
+ ;;
+esac
+
+AC_CACHE_CHECK([for $compiler option to produce PIC],
+ [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
+ [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
+_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
+
+#
+# Check to make sure the PIC flag actually works.
+#
+if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
+ _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
+ [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
+ [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
+ [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
+ "" | " "*) ;;
+ *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
+ esac],
+ [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
+ _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
+fi
+_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
+ [Additional compiler flags for building library objects])
+
+_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
+ [How to pass a linker flag through the compiler])
+#
+# Check to make sure the static flag actually works.
+#
+wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
+_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
+ _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
+ $lt_tmp_static_flag,
+ [],
+ [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
+_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
+ [Compiler flag to prevent dynamic linking])
+])# _LT_COMPILER_PIC
+
+
+# _LT_LINKER_SHLIBS([TAGNAME])
+# ----------------------------
+# See if the linker supports building shared libraries.
+m4_defun([_LT_LINKER_SHLIBS],
+[AC_REQUIRE([LT_PATH_LD])dnl
+AC_REQUIRE([LT_PATH_NM])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
+m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_DECL_SED])dnl
+m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
+m4_require([_LT_TAG_COMPILER])dnl
+AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+m4_if([$1], [CXX], [
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+ case $host_os in
+ aix[[4-9]]*)
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+ # Without the "-l" option, or with the "-B" option, AIX nm treats
+ # weak defined symbols like other global defined symbols, whereas
+ # GNU nm marks them as "W".
+ # While the 'weak' keyword is ignored in the Export File, we need
+ # it in the Import File for the 'aix-soname' feature, so we have
+ # to replace the "-B" option with "-P" for AIX nm.
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
+ else
+ _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+ fi
+ ;;
+ pw32*)
+ _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds
+ ;;
+ cygwin* | mingw* | cegcc*)
+ case $cc_basename in
+ cl* | icl*)
+ _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+ ;;
+ *)
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+ ;;
+ esac
+ ;;
+ linux* | k*bsd*-gnu | gnu*)
+ _LT_TAGVAR(link_all_deplibs, $1)=no
+ ;;
+ *)
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ ;;
+ esac
+], [
+ runpath_var=
+ _LT_TAGVAR(allow_undefined_flag, $1)=
+ _LT_TAGVAR(always_export_symbols, $1)=no
+ _LT_TAGVAR(archive_cmds, $1)=
+ _LT_TAGVAR(archive_expsym_cmds, $1)=
+ _LT_TAGVAR(compiler_needs_object, $1)=no
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_TAGVAR(hardcode_automatic, $1)=no
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=
+ _LT_TAGVAR(hardcode_minus_L, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+ _LT_TAGVAR(inherit_rpath, $1)=no
+ _LT_TAGVAR(link_all_deplibs, $1)=unknown
+ _LT_TAGVAR(module_cmds, $1)=
+ _LT_TAGVAR(module_expsym_cmds, $1)=
+ _LT_TAGVAR(old_archive_from_new_cmds, $1)=
+ _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
+ _LT_TAGVAR(thread_safe_flag_spec, $1)=
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=
+ # include_expsyms should be a list of space-separated symbols to be *always*
+ # included in the symbol list
+ _LT_TAGVAR(include_expsyms, $1)=
+ # exclude_expsyms can be an extended regexp of symbols to exclude
+ # it will be wrapped by ' (' and ')$', so one must not match beginning or
+ # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc',
+ # as well as any symbol that contains 'd'.
+ _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
+ # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
+ # platforms (ab)use it in PIC code, but their linkers get confused if
+ # the symbol is explicitly referenced. Since portable code cannot
+ # rely on this symbol name, it's probably fine to never include it in
+ # preloaded symbol tables.
+ # Exclude shared library initialization/finalization symbols.
+dnl Note also adjust exclude_expsyms for C++ above.
+ extract_expsyms_cmds=
+
+ case $host_os in
+ cygwin* | mingw* | pw32* | cegcc*)
+ # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++ or Intel C++ Compiler.
+ if test yes != "$GCC"; then
+ with_gnu_ld=no
+ fi
+ ;;
+ interix*)
+ # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC)
+ with_gnu_ld=yes
+ ;;
+ openbsd* | bitrig*)
+ with_gnu_ld=no
+ ;;
+ linux* | k*bsd*-gnu | gnu*)
+ _LT_TAGVAR(link_all_deplibs, $1)=no
+ ;;
+ esac
+
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+
+ # On some targets, GNU ld is compatible enough with the native linker
+ # that we're better off using the native interface for both.
+ lt_use_gnu_ld_interface=no
+ if test yes = "$with_gnu_ld"; then
+ case $host_os in
+ aix*)
+ # The AIX port of GNU ld has always aspired to compatibility
+ # with the native linker. However, as the warning in the GNU ld
+ # block says, versions before 2.19.5* couldn't really create working
+ # shared libraries, regardless of the interface used.
+ case `$LD -v 2>&1` in
+ *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
+ *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
+ *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ ;;
+ *)
+ lt_use_gnu_ld_interface=yes
+ ;;
+ esac
+ fi
+
+ if test yes = "$lt_use_gnu_ld_interface"; then
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ wlarc='$wl'
+
+ # Set some defaults for GNU ld with shared library support. These
+ # are reset later if shared libraries are not supported. Putting them
+ # here allows them to be overridden if necessary.
+ runpath_var=LD_RUN_PATH
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+ else
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=
+ fi
+ supports_anon_versioning=no
+ case `$LD -v | $SED -e 's/([[^)]]\+)\s\+//' 2>&1` in
+ *GNU\ gold*) supports_anon_versioning=yes ;;
+ *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
+ *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
+ *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
+ *\ 2.11.*) ;; # other 2.11 versions
+ *) supports_anon_versioning=yes ;;
+ esac
+
+ # See if GNU ld supports shared libraries.
+ case $host_os in
+ aix[[3-9]]*)
+ # On AIX/PPC, the GNU linker is very broken
+ if test ia64 != "$host_cpu"; then
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: the GNU linker, at least up to release 2.19, is reported
+*** to be unable to reliably create shared libraries on AIX.
+*** Therefore, libtool is disabling shared libraries support. If you
+*** really care for shared libraries, you may want to install binutils
+*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
+*** You will then need to restart the configuration process.
+
+_LT_EOF
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)=''
+ ;;
+ m68k)
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ ;;
+ esac
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+ # as there is no search path for DLLs.
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols'
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_TAGVAR(always_export_symbols, $1)=no
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
+ _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file, use it as
+ # is; otherwise, prepend EXPORTS...
+ _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ haiku*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+
+ os2*)
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ shrext_cmds=.dll
+ _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ _LT_TAGVAR(file_list_spec, $1)='@'
+ ;;
+
+ interix[[3-9]]*)
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+
+ gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
+ tmp_diet=no
+ if test linux-dietlibc = "$host_os"; then
+ case $cc_basename in
+ diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn)
+ esac
+ fi
+ if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
+ && test no = "$tmp_diet"
+ then
+ tmp_addflag=' $pic_flag'
+ tmp_sharedflag='-shared'
+ case $cc_basename,$host_cpu in
+ pgcc*) # Portland Group C compiler
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ tmp_addflag=' $pic_flag'
+ ;;
+ pgf77* | pgf90* | pgf95* | pgfortran*)
+ # Portland Group f77 and f90 compilers
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ tmp_addflag=' $pic_flag -Mnomain' ;;
+ ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64
+ tmp_addflag=' -i_dynamic' ;;
+ efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64
+ tmp_addflag=' -i_dynamic -nofor_main' ;;
+ ifc* | ifort*) # Intel Fortran compiler
+ tmp_addflag=' -nofor_main' ;;
+ lf95*) # Lahey Fortran 8.1
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=
+ tmp_sharedflag='--shared' ;;
+ nagfor*) # NAGFOR 5.3
+ tmp_sharedflag='-Wl,-shared' ;;
+ xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
+ tmp_sharedflag='-qmkshrobj'
+ tmp_addflag= ;;
+ nvcc*) # Cuda Compiler Driver 2.2
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ _LT_TAGVAR(compiler_needs_object, $1)=yes
+ ;;
+ esac
+ case `$CC -V 2>&1 | $SED 5q` in
+ *Sun\ C*) # Sun C 5.9
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ _LT_TAGVAR(compiler_needs_object, $1)=yes
+ tmp_sharedflag='-G' ;;
+ *Sun\ F*) # Sun Fortran 8.3
+ tmp_sharedflag='-G' ;;
+ esac
+ _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+
+ if test yes = "$supports_anon_versioning"; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
+ fi
+
+ case $cc_basename in
+ tcc*)
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic'
+ ;;
+ xlf* | bgf* | bgxlf* | mpixlf*)
+ # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
+ if test yes = "$supports_anon_versioning"; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ esac
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ netbsd* | netbsdelf*-gnu)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
+ wlarc=
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ fi
+ ;;
+
+ solaris*)
+ if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: The releases 2.8.* of the GNU linker cannot reliably
+*** create shared libraries on Solaris systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.9.1 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
+ case `$LD -v 2>&1` in
+ *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ cat <<_LT_EOF 1>&2
+
+*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot
+*** reliably create shared libraries on SCO systems. Therefore, libtool
+*** is disabling shared libraries support. We urge you to upgrade GNU
+*** binutils to release 2.16.91.0.3 or newer. Another option is to modify
+*** your PATH or compiler configuration so that the native linker is
+*** used, and then restart.
+
+_LT_EOF
+ ;;
+ *)
+ # For security reasons, it is highly recommended that you always
+ # use absolute paths for naming shared libraries, and exclude the
+ # DT_RUNPATH tag from executables and libraries. But doing so
+ # requires that you compile everything twice, which is a pain.
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+
+ sunos4*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ wlarc=
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ *)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+
+ if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then
+ runpath_var=
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)=
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=
+ fi
+ else
+ # PORTME fill in a description of your system's linker (not GNU ld)
+ case $host_os in
+ aix3*)
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_TAGVAR(always_export_symbols, $1)=yes
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
+ # Note: this linker hardcodes the directories in LIBPATH if there
+ # are no directories specified by -L.
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then
+ # Neither direct hardcoding nor static linking is supported with a
+ # broken collect2.
+ _LT_TAGVAR(hardcode_direct, $1)=unsupported
+ fi
+ ;;
+
+ aix[[4-9]]*)
+ if test ia64 = "$host_cpu"; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=
+ else
+ # If we're using GNU nm, then we don't want the "-C" option.
+ # -C means demangle to GNU nm, but means don't demangle to AIX nm.
+ # Without the "-l" option, or with the "-B" option, AIX nm treats
+ # weak defined symbols like other global defined symbols, whereas
+ # GNU nm marks them as "W".
+ # While the 'weak' keyword is ignored in the Export File, we need
+ # it in the Import File for the 'aix-soname' feature, so we have
+ # to replace the "-B" option with "-P" for AIX nm.
+ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols'
+ else
+ _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols'
+ fi
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # have runtime linking enabled, and use it for executables.
+ # For shared libraries, we enable/disable runtime linking
+ # depending on the kind of the shared library created -
+ # when "with_aix_soname,aix_use_runtimelinking" is:
+ # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables
+ # "aix,yes" lib.so shared, rtl:yes, for executables
+ # lib.a static archive
+ # "both,no" lib.so.V(shr.o) shared, rtl:yes
+ # lib.a(lib.so.V) shared, rtl:no, for executables
+ # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a(lib.so.V) shared, rtl:no
+ # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a static archive
+ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+ for ld_flag in $LDFLAGS; do
+ if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then
+ aix_use_runtimelinking=yes
+ break
+ fi
+ done
+ if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # With aix-soname=svr4, we create the lib.so.V shared archives only,
+ # so we don't have lib.a shared libs to link our executables.
+ # We have to force runtime linking in this case.
+ aix_use_runtimelinking=yes
+ LDFLAGS="$LDFLAGS -Wl,-brtl"
+ fi
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ _LT_TAGVAR(archive_cmds, $1)=''
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ _LT_TAGVAR(file_list_spec, $1)='$wl-f,'
+ case $with_aix_soname,$aix_use_runtimelinking in
+ aix,*) ;; # traditional, no import file
+ svr4,* | *,yes) # use import file
+ # The Import File defines what to hardcode.
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+ ;;
+ esac
+
+ if test yes = "$GCC"; then
+ case $host_os in aix4.[[012]]|aix4.[[012]].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`$CC -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ _LT_TAGVAR(hardcode_direct, $1)=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=
+ fi
+ ;;
+ esac
+ shared_flag='-shared'
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag="$shared_flag "'$wl-G'
+ fi
+ # Need to ensure runtime linking is disabled for the traditional
+ # shared library, or the linker may eventually find shared libraries
+ # /with/ Import File - we do not want to mix them.
+ shared_flag_aix='-shared'
+ shared_flag_svr4='-shared $wl-G'
+ else
+ # not using gcc
+ if test ia64 = "$host_cpu"; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag='$wl-G'
+ else
+ shared_flag='$wl-bM:SRE'
+ fi
+ shared_flag_aix='$wl-bM:SRE'
+ shared_flag_svr4='$wl-G'
+ fi
+ fi
+
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to export.
+ _LT_TAGVAR(always_export_symbols, $1)=yes
+ if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ _LT_SYS_MODULE_PATH_AIX([$1])
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
+ else
+ if test ia64 = "$host_cpu"; then
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib'
+ _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+ _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ _LT_SYS_MODULE_PATH_AIX([$1])
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok'
+ _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok'
+ if test yes = "$with_gnu_ld"; then
+ # We only use this code for GNU lds that support --whole-archive.
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
+ else
+ # Exported symbols can be pulled into shared objects from archives
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+ fi
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+ # -brtl affects multiple linker settings, -berok does not and is overridden later
+ compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`'
+ if test svr4 != "$with_aix_soname"; then
+ # This is similar to how AIX traditionally builds its shared libraries.
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+ fi
+ if test aix != "$with_aix_soname"; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+ else
+ # used by -dlpreopen to get the symbols
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir'
+ fi
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d'
+ fi
+ fi
+ ;;
+
+ amigaos*)
+ case $host_cpu in
+ powerpc)
+ # see comment about AmigaOS4 .so support
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)=''
+ ;;
+ m68k)
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ ;;
+ esac
+ ;;
+
+ bsdi[[45]]*)
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ # When not using gcc, we currently assume that we are using
+ # Microsoft Visual C++ or Intel C++ Compiler.
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ case $cc_basename in
+ cl* | icl*)
+ # Native MSVC or ICC
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_TAGVAR(always_export_symbols, $1)=yes
+ _LT_TAGVAR(file_list_spec, $1)='@'
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+ _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+ cp "$export_symbols" "$output_objdir/$soname.def";
+ echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+ else
+ $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+ fi~
+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+ linknames='
+ # The linker will not automatically build a static lib if we build a DLL.
+ # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
+ _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
+ # Don't use ranlib
+ _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+ _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+ lt_tool_outputfile="@TOOL_OUTPUT@"~
+ case $lt_outputfile in
+ *.exe|*.EXE) ;;
+ *)
+ lt_outputfile=$lt_outputfile.exe
+ lt_tool_outputfile=$lt_tool_outputfile.exe
+ ;;
+ esac~
+ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+ $RM "$lt_outputfile.manifest";
+ fi'
+ ;;
+ *)
+ # Assume MSVC and ICC wrapper
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+ # The linker will automatically build a .lib file if we build a DLL.
+ _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+ # FIXME: Should let the user specify the lib program.
+ _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ ;;
+ esac
+ ;;
+
+ darwin* | rhapsody*)
+ _LT_DARWIN_LINKER_FEATURES($1)
+ ;;
+
+ dgux*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
+ # support. Future versions do this automatically, but an explicit c++rt0.o
+ # does not break anything, and helps significantly (at the cost of a little
+ # extra space).
+ freebsd2.2*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ # Unfortunately, older versions of FreeBSD 2 do not have this feature.
+ freebsd2.*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
+ freebsd* | dragonfly* | midnightbsd*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ hpux9*)
+ if test yes = "$GCC"; then
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ fi
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+ ;;
+
+ hpux10*)
+ if test yes,no = "$GCC,$with_gnu_ld"; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ if test no = "$with_gnu_ld"; then
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ fi
+ ;;
+
+ hpux11*)
+ if test yes,no = "$GCC,$with_gnu_ld"; then
+ case $host_cpu in
+ hppa*64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ else
+ case $host_cpu in
+ hppa*64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ ia64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ m4_if($1, [], [
+ # Older versions of the 11.00 compiler do not understand -b yet
+ # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
+ _LT_LINKER_OPTION([if $CC understands -b],
+ _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
+ [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
+ [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
+ [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
+ ;;
+ esac
+ fi
+ if test no = "$with_gnu_ld"; then
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+ *)
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+
+ # hardcode_minus_L: Not really in the search PATH,
+ # but as the default location of the library.
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ ;;
+ esac
+ fi
+ ;;
+
+ irix5* | irix6* | nonstopux*)
+ if test yes = "$GCC"; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ # Try to use the -exported_symbol ld option, if it does not
+ # work, assume that -exports_file does not work either and
+ # implicitly export all symbols.
+ # This should be the same for all languages, so no per-tag cache variable.
+ AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
+ [lt_cv_irix_exported_symbol],
+ [save_LDFLAGS=$LDFLAGS
+ LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null"
+ AC_LINK_IFELSE(
+ [AC_LANG_SOURCE(
+ [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
+ [C++], [[int foo (void) { return 0; }]],
+ [Fortran 77], [[
+ subroutine foo
+ end]],
+ [Fortran], [[
+ subroutine foo
+ end]])])],
+ [lt_cv_irix_exported_symbol=yes],
+ [lt_cv_irix_exported_symbol=no])
+ LDFLAGS=$save_LDFLAGS])
+ if test yes = "$lt_cv_irix_exported_symbol"; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib'
+ fi
+ _LT_TAGVAR(link_all_deplibs, $1)=no
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib'
+ fi
+ _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_TAGVAR(inherit_rpath, $1)=yes
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+
+ linux*)
+ case $cc_basename in
+ tcc*)
+ # Fabrice Bellard et al's Tiny C Compiler
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ ;;
+ esac
+ ;;
+
+ netbsd* | netbsdelf*-gnu)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF
+ fi
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ newsos6)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ *nto* | *qnx*)
+ ;;
+
+ openbsd* | bitrig*)
+ if test -f /usr/libexec/ld.so; then
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+ fi
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ os2*)
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ shrext_cmds=.dll
+ _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ _LT_TAGVAR(file_list_spec, $1)='@'
+ ;;
+
+ osf3*)
+ if test yes = "$GCC"; then
+ _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ else
+ _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ fi
+ _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ ;;
+
+ osf4* | osf5*) # as osf3* with the addition of -msym flag
+ if test yes = "$GCC"; then
+ _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ else
+ _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
+
+ # Both c and cxx compiler support -rpath directly
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+ fi
+ _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ ;;
+
+ solaris*)
+ _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
+ if test yes = "$GCC"; then
+ wlarc='$wl'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ else
+ case `$CC -V 2>&1` in
+ *"Compilers 5.0"*)
+ wlarc=''
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+ ;;
+ *)
+ wlarc='$wl'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+ ;;
+ esac
+ fi
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ case $host_os in
+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands '-z linker_flag'. GCC discards it without '$wl',
+ # but is careful enough not to reorder.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ if test yes = "$GCC"; then
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
+ else
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+ fi
+ ;;
+ esac
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+
+ sunos4*)
+ if test sequent = "$host_vendor"; then
+ # Use $CC to link under sequent, because it throws in some extra .o
+ # files that make .init and .fini sections work.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
+ fi
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ sysv4)
+ case $host_vendor in
+ sni)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
+ ;;
+ siemens)
+ ## LD is ld it makes a PLAMLIB
+ ## CC just makes a GrossModule.
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ ;;
+ motorola)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
+ ;;
+ esac
+ runpath_var='LD_RUN_PATH'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ sysv4.3*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
+ ;;
+
+ sysv4*MP*)
+ if test -d /usr/nec; then
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ runpath_var=LD_RUN_PATH
+ hardcode_runpath_var=yes
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+ fi
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+ _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ runpath_var='LD_RUN_PATH'
+
+ if test yes = "$GCC"; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We CANNOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+ _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs'
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ if test yes = "$GCC"; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ fi
+ ;;
+
+ uts4*)
+ _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+
+ *)
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+
+ if test sni = "$host_vendor"; then
+ case $host in
+ sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym'
+ ;;
+ esac
+ fi
+ fi
+])
+AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no
+
+_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
+
+_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
+_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
+_LT_DECL([], [extract_expsyms_cmds], [2],
+ [The commands to extract the exported symbol list from a shared archive])
+
+#
+# Do we need to explicitly link libc?
+#
+case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
+x|xyes)
+ # Assume -lc should be added
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+
+ if test yes,yes = "$GCC,$enable_shared"; then
+ case $_LT_TAGVAR(archive_cmds, $1) in
+ *'~'*)
+ # FIXME: we may have to deal with multi-command sequences.
+ ;;
+ '$CC '*)
+ # Test whether the compiler implicitly links with -lc since on some
+ # systems, -lgcc has to come before -lc. If gcc already passes -lc
+ # to ld, don't add -lc before -lgcc.
+ AC_CACHE_CHECK([whether -lc should be explicitly linked in],
+ [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
+ [$RM conftest*
+ echo "$lt_simple_compile_test_code" > conftest.$ac_ext
+
+ if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
+ soname=conftest
+ lib=conftest
+ libobjs=conftest.$ac_objext
+ deplibs=
+ wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
+ pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
+ compiler_flags=-v
+ linker_flags=-v
+ verstring=
+ output_objdir=.
+ libname=conftest
+ lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
+ _LT_TAGVAR(allow_undefined_flag, $1)=
+ if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
+ then
+ lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ else
+ lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+ fi
+ _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
+ else
+ cat conftest.err 1>&5
+ fi
+ $RM conftest*
+ ])
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
+ ;;
+ esac
+ fi
+ ;;
+esac
+
+_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
+ [Whether or not to add -lc for building shared libraries])
+_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
+ [enable_shared_with_static_runtimes], [0],
+ [Whether or not to disallow shared libs when runtime libs are static])
+_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
+ [Compiler flag to allow reflexive dlopens])
+_LT_TAGDECL([], [whole_archive_flag_spec], [1],
+ [Compiler flag to generate shared objects directly from archives])
+_LT_TAGDECL([], [compiler_needs_object], [1],
+ [Whether the compiler copes with passing no objects directly])
+_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
+ [Create an old-style archive from a shared archive])
+_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
+ [Create a temporary old-style archive to link instead of a shared archive])
+_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
+_LT_TAGDECL([], [archive_expsym_cmds], [2])
+_LT_TAGDECL([], [module_cmds], [2],
+ [Commands used to build a loadable module if different from building
+ a shared archive.])
+_LT_TAGDECL([], [module_expsym_cmds], [2])
+_LT_TAGDECL([], [with_gnu_ld], [1],
+ [Whether we are building with GNU ld or not])
+_LT_TAGDECL([], [allow_undefined_flag], [1],
+ [Flag that allows shared libraries with undefined symbols to be built])
+_LT_TAGDECL([], [no_undefined_flag], [1],
+ [Flag that enforces no undefined symbols])
+_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
+ [Flag to hardcode $libdir into a binary during linking.
+ This must work even if $libdir does not exist])
+_LT_TAGDECL([], [hardcode_libdir_separator], [1],
+ [Whether we need a single "-rpath" flag with a separated argument])
+_LT_TAGDECL([], [hardcode_direct], [0],
+ [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
+ DIR into the resulting binary])
+_LT_TAGDECL([], [hardcode_direct_absolute], [0],
+ [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes
+ DIR into the resulting binary and the resulting library dependency is
+ "absolute", i.e impossible to change by setting $shlibpath_var if the
+ library is relocated])
+_LT_TAGDECL([], [hardcode_minus_L], [0],
+ [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
+ into the resulting binary])
+_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
+ [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
+ into the resulting binary])
+_LT_TAGDECL([], [hardcode_automatic], [0],
+ [Set to "yes" if building a shared library automatically hardcodes DIR
+ into the library and all subsequent libraries and executables linked
+ against it])
+_LT_TAGDECL([], [inherit_rpath], [0],
+ [Set to yes if linker adds runtime paths of dependent libraries
+ to runtime path list])
+_LT_TAGDECL([], [link_all_deplibs], [0],
+ [Whether libtool must link a program against all its dependency libraries])
+_LT_TAGDECL([], [always_export_symbols], [0],
+ [Set to "yes" if exported symbols are required])
+_LT_TAGDECL([], [export_symbols_cmds], [2],
+ [The commands to list exported symbols])
+_LT_TAGDECL([], [exclude_expsyms], [1],
+ [Symbols that should not be listed in the preloaded symbols])
+_LT_TAGDECL([], [include_expsyms], [1],
+ [Symbols that must always be exported])
+_LT_TAGDECL([], [prelink_cmds], [2],
+ [Commands necessary for linking programs (against libraries) with templates])
+_LT_TAGDECL([], [postlink_cmds], [2],
+ [Commands necessary for finishing linking programs])
+_LT_TAGDECL([], [file_list_spec], [1],
+ [Specify filename containing input files])
+dnl FIXME: Not yet implemented
+dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
+dnl [Compiler flag to generate thread safe objects])
+])# _LT_LINKER_SHLIBS
+
+
+# _LT_LANG_C_CONFIG([TAG])
+# ------------------------
+# Ensure that the configuration variables for a C compiler are suitably
+# defined. These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_C_CONFIG],
+[m4_require([_LT_DECL_EGREP])dnl
+lt_save_CC=$CC
+AC_LANG_PUSH(C)
+
+# Source file extension for C test sources.
+ac_ext=c
+
+# Object file extension for compiled C test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+_LT_TAG_COMPILER
+# Save the default compiler, since it gets overwritten when the other
+# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
+compiler_DEFAULT=$CC
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+ _LT_COMPILER_NO_RTTI($1)
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_SYS_DYNAMIC_LINKER($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+ LT_SYS_DLOPEN_SELF
+ _LT_CMD_STRIPLIB
+
+ # Report what library types will actually be built
+ AC_MSG_CHECKING([if libtool supports shared libraries])
+ AC_MSG_RESULT([$can_build_shared])
+
+ AC_MSG_CHECKING([whether to build shared libraries])
+ test no = "$can_build_shared" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test yes = "$enable_shared" && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+
+ aix[[4-9]]*)
+ if test ia64 != "$host_cpu"; then
+ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+ yes,aix,yes) ;; # shared object as lib.so file only
+ yes,svr4,*) ;; # shared object as lib.so archive member only
+ yes,*) enable_static=no ;; # shared object in lib.a archive as well
+ esac
+ fi
+ ;;
+ esac
+ AC_MSG_RESULT([$enable_shared])
+
+ AC_MSG_CHECKING([whether to build static libraries])
+ # Make sure either enable_shared or enable_static is yes.
+ test yes = "$enable_shared" || enable_static=yes
+ AC_MSG_RESULT([$enable_static])
+
+ _LT_CONFIG($1)
+fi
+AC_LANG_POP
+CC=$lt_save_CC
+])# _LT_LANG_C_CONFIG
+
+
+# _LT_LANG_CXX_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a C++ compiler are suitably
+# defined. These variables are subsequently used by _LT_CONFIG to write
+# the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_CXX_CONFIG],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+m4_require([_LT_DECL_EGREP])dnl
+m4_require([_LT_PATH_MANIFEST_TOOL])dnl
+if test -n "$CXX" && ( test no != "$CXX" &&
+ ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) ||
+ (test g++ != "$CXX"))); then
+ AC_PROG_CXXCPP
+else
+ _lt_caught_CXX_error=yes
+fi
+
+AC_LANG_PUSH(C++)
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(compiler_needs_object, $1)=no
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for C++ test sources.
+ac_ext=cpp
+
+# Object file extension for compiled C++ test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the CXX compiler isn't working. Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test yes != "$_lt_caught_CXX_error"; then
+ # Code to be used in simple compile tests
+ lt_simple_compile_test_code="int some_variable = 0;"
+
+ # Code to be used in simple link tests
+ lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
+
+ # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+ _LT_TAG_COMPILER
+
+ # save warnings/boilerplate of simple test code
+ _LT_COMPILER_BOILERPLATE
+ _LT_LINKER_BOILERPLATE
+
+ # Allow CC to be a program name with arguments.
+ lt_save_CC=$CC
+ lt_save_CFLAGS=$CFLAGS
+ lt_save_LD=$LD
+ lt_save_GCC=$GCC
+ GCC=$GXX
+ lt_save_with_gnu_ld=$with_gnu_ld
+ lt_save_path_LD=$lt_cv_path_LD
+ if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
+ lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
+ else
+ $as_unset lt_cv_prog_gnu_ld
+ fi
+ if test -n "${lt_cv_path_LDCXX+set}"; then
+ lt_cv_path_LD=$lt_cv_path_LDCXX
+ else
+ $as_unset lt_cv_path_LD
+ fi
+ test -z "${LDCXX+set}" || LD=$LDCXX
+ CC=${CXX-"c++"}
+ CFLAGS=$CXXFLAGS
+ compiler=$CC
+ _LT_TAGVAR(compiler, $1)=$CC
+ _LT_CC_BASENAME([$compiler])
+
+ if test -n "$compiler"; then
+ # We don't want -fno-exception when compiling C++ code, so set the
+ # no_builtin_flag separately
+ if test yes = "$GXX"; then
+ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
+ else
+ _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
+ fi
+
+ if test yes = "$GXX"; then
+ # Set up default GNU C++ configuration
+
+ LT_PATH_LD
+
+ # Check if GNU C++ uses GNU ld as the underlying linker, since the
+ # archiving commands below assume that GNU ld is being used.
+ if test yes = "$with_gnu_ld"; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+
+ # If archive_cmds runs LD, not CC, wlarc should be empty
+ # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
+ # investigate it a little bit more. (MM)
+ wlarc='$wl'
+
+ # ancient GNU ld didn't support --whole-archive et. al.
+ if eval "`$CC -print-prog-name=ld` --help 2>&1" |
+ $GREP 'no-whole-archive' > /dev/null; then
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+ else
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=
+ fi
+ else
+ with_gnu_ld=no
+ wlarc=
+
+ # A generic and very simple default shared library creation
+ # command for GNU C++ for the case where it uses the native
+ # linker, instead of GNU ld. If possible, this setting should
+ # overridden to take advantage of the native linker features on
+ # the platform it is being used on.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ fi
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
+
+ else
+ GXX=no
+ with_gnu_ld=no
+ wlarc=
+ fi
+
+ # PORTME: fill in a description of your system's C++ link characteristics
+ AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+ case $host_os in
+ aix3*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ aix[[4-9]]*)
+ if test ia64 = "$host_cpu"; then
+ # On IA64, the linker does run time linking by default, so we don't
+ # have to do anything special.
+ aix_use_runtimelinking=no
+ exp_sym_flag='-Bexport'
+ no_entry_flag=
+ else
+ aix_use_runtimelinking=no
+
+ # Test if we are trying to use run time linking or normal
+ # AIX style linking. If -brtl is somewhere in LDFLAGS, we
+ # have runtime linking enabled, and use it for executables.
+ # For shared libraries, we enable/disable runtime linking
+ # depending on the kind of the shared library created -
+ # when "with_aix_soname,aix_use_runtimelinking" is:
+ # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables
+ # "aix,yes" lib.so shared, rtl:yes, for executables
+ # lib.a static archive
+ # "both,no" lib.so.V(shr.o) shared, rtl:yes
+ # lib.a(lib.so.V) shared, rtl:no, for executables
+ # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a(lib.so.V) shared, rtl:no
+ # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables
+ # lib.a static archive
+ case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
+ for ld_flag in $LDFLAGS; do
+ case $ld_flag in
+ *-brtl*)
+ aix_use_runtimelinking=yes
+ break
+ ;;
+ esac
+ done
+ if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # With aix-soname=svr4, we create the lib.so.V shared archives only,
+ # so we don't have lib.a shared libs to link our executables.
+ # We have to force runtime linking in this case.
+ aix_use_runtimelinking=yes
+ LDFLAGS="$LDFLAGS -Wl,-brtl"
+ fi
+ ;;
+ esac
+
+ exp_sym_flag='-bexport'
+ no_entry_flag='-bnoentry'
+ fi
+
+ # When large executables or shared objects are built, AIX ld can
+ # have problems creating the table of contents. If linking a library
+ # or program results in "error TOC overflow" add -mminimal-toc to
+ # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not
+ # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
+
+ _LT_TAGVAR(archive_cmds, $1)=''
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ _LT_TAGVAR(file_list_spec, $1)='$wl-f,'
+ case $with_aix_soname,$aix_use_runtimelinking in
+ aix,*) ;; # no import file
+ svr4,* | *,yes) # use import file
+ # The Import File defines what to hardcode.
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=no
+ ;;
+ esac
+
+ if test yes = "$GXX"; then
+ case $host_os in aix4.[[012]]|aix4.[[012]].*)
+ # We only want to do this on AIX 4.2 and lower, the check
+ # below for broken collect2 doesn't work under 4.3+
+ collect2name=`$CC -print-prog-name=collect2`
+ if test -f "$collect2name" &&
+ strings "$collect2name" | $GREP resolve_lib_name >/dev/null
+ then
+ # We have reworked collect2
+ :
+ else
+ # We have old collect2
+ _LT_TAGVAR(hardcode_direct, $1)=unsupported
+ # It fails to find uninstalled libraries when the uninstalled
+ # path is not listed in the libpath. Setting hardcode_minus_L
+ # to unsupported forces relinking
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=
+ fi
+ esac
+ shared_flag='-shared'
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag=$shared_flag' $wl-G'
+ fi
+ # Need to ensure runtime linking is disabled for the traditional
+ # shared library, or the linker may eventually find shared libraries
+ # /with/ Import File - we do not want to mix them.
+ shared_flag_aix='-shared'
+ shared_flag_svr4='-shared $wl-G'
+ else
+ # not using gcc
+ if test ia64 = "$host_cpu"; then
+ # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
+ # chokes on -Wl,-G. The following line is correct:
+ shared_flag='-G'
+ else
+ if test yes = "$aix_use_runtimelinking"; then
+ shared_flag='$wl-G'
+ else
+ shared_flag='$wl-bM:SRE'
+ fi
+ shared_flag_aix='$wl-bM:SRE'
+ shared_flag_svr4='$wl-G'
+ fi
+ fi
+
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall'
+ # It seems that -bexpall does not export symbols beginning with
+ # underscore (_), so it is better to generate a list of symbols to
+ # export.
+ _LT_TAGVAR(always_export_symbols, $1)=yes
+ if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then
+ # Warning - without using the other runtime loading flags (-brtl),
+ # -berok will link without error, but may produce a broken library.
+ # The "-G" linker flag allows undefined symbols.
+ _LT_TAGVAR(no_undefined_flag, $1)='-bernotok'
+ # Determine the default libpath from the value encoded in an empty
+ # executable.
+ _LT_SYS_MODULE_PATH_AIX([$1])
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
+
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag
+ else
+ if test ia64 = "$host_cpu"; then
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib'
+ _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
+ _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols"
+ else
+ # Determine the default libpath from the value encoded in an
+ # empty executable.
+ _LT_SYS_MODULE_PATH_AIX([$1])
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath"
+ # Warning - without using the other run time loading flags,
+ # -berok will link without error, but may produce a broken library.
+ _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok'
+ _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok'
+ if test yes = "$with_gnu_ld"; then
+ # We only use this code for GNU lds that support --whole-archive.
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
+ else
+ # Exported symbols can be pulled into shared objects from archives
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
+ fi
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d'
+ # -brtl affects multiple linker settings, -berok does not and is overridden later
+ compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`'
+ if test svr4 != "$with_aix_soname"; then
+ # This is similar to how AIX traditionally builds its shared
+ # libraries. Need -bnortl late, we may have -brtl in LDFLAGS.
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname'
+ fi
+ if test aix != "$with_aix_soname"; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp'
+ else
+ # used by -dlpreopen to get the symbols
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir'
+ fi
+ _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d'
+ fi
+ fi
+ ;;
+
+ beos*)
+ if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ # Joseph Beckenbach <jrb3@best.com> says some releases of gcc
+ # support --undefined. This deserves some investigation. FIXME
+ _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ chorus*)
+ case $cc_basename in
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+
+ cygwin* | mingw* | pw32* | cegcc*)
+ case $GXX,$cc_basename in
+ ,cl* | no,cl* | ,icl* | no,icl*)
+ # Native MSVC or ICC
+ # hardcode_libdir_flag_spec is actually meaningless, as there is
+ # no search path for DLLs.
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_TAGVAR(always_export_symbols, $1)=yes
+ _LT_TAGVAR(file_list_spec, $1)='@'
+ # Tell ltmain to make .lib files, not .a files.
+ libext=lib
+ # Tell ltmain to make .dll files, not .so files.
+ shrext_cmds=.dll
+ # FIXME: Setting linknames here is a bad hack.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+ _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+ cp "$export_symbols" "$output_objdir/$soname.def";
+ echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+ else
+ $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+ fi~
+ $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
+ linknames='
+ # The linker will not automatically build a static lib if we build a DLL.
+ # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ # Don't use ranlib
+ _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
+ _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
+ lt_tool_outputfile="@TOOL_OUTPUT@"~
+ case $lt_outputfile in
+ *.exe|*.EXE) ;;
+ *)
+ lt_outputfile=$lt_outputfile.exe
+ lt_tool_outputfile=$lt_tool_outputfile.exe
+ ;;
+ esac~
+ func_to_tool_file "$lt_outputfile"~
+ if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then
+ $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
+ $RM "$lt_outputfile.manifest";
+ fi'
+ ;;
+ *)
+ # g++
+ # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
+ # as there is no search path for DLLs.
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols'
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ _LT_TAGVAR(always_export_symbols, $1)=no
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+
+ if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ # If the export-symbols file already is a .def file, use it as
+ # is; otherwise, prepend EXPORTS...
+ _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
+ cp $export_symbols $output_objdir/$soname.def;
+ else
+ echo EXPORTS > $output_objdir/$soname.def;
+ cat $export_symbols >> $output_objdir/$soname.def;
+ fi~
+ $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+ darwin* | rhapsody*)
+ _LT_DARWIN_LINKER_FEATURES($1)
+ ;;
+
+ os2*)
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes
+ _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
+ shrext_cmds=.dll
+ _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~
+ $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~
+ $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~
+ $ECHO EXPORTS >> $output_objdir/$libname.def~
+ prefix_cmds="$SED"~
+ if test EXPORTS = "`$SED 1q $export_symbols`"; then
+ prefix_cmds="$prefix_cmds -e 1d";
+ fi~
+ prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~
+ cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~
+ $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~
+ emximp -o $lib $output_objdir/$libname.def'
+ _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def'
+ _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
+ _LT_TAGVAR(file_list_spec, $1)='@'
+ ;;
+
+ dgux*)
+ case $cc_basename in
+ ec++*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ ghcx*)
+ # Green Hills C++ Compiler
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+
+ freebsd2.*)
+ # C++ shared libraries reported to be fairly broken before
+ # switch to ELF
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ freebsd-elf*)
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ ;;
+
+ freebsd* | dragonfly* | midnightbsd*)
+ # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
+ # conventions
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+ ;;
+
+ haiku*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+
+ hpux9*)
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ aCC*)
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+ ;;
+ *)
+ if test yes = "$GXX"; then
+ _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib'
+ else
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+
+ hpux10*|hpux11*)
+ if test no = "$with_gnu_ld"; then
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ case $host_cpu in
+ hppa*64*|ia64*)
+ ;;
+ *)
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+ ;;
+ esac
+ fi
+ case $host_cpu in
+ hppa*64*|ia64*)
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ ;;
+ *)
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
+ # but as the default
+ # location of the library.
+ ;;
+ esac
+
+ case $cc_basename in
+ CC*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ aCC*)
+ case $host_cpu in
+ hppa*64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ ia64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+ ;;
+ *)
+ if test yes = "$GXX"; then
+ if test no = "$with_gnu_ld"; then
+ case $host_cpu in
+ hppa*64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ ia64*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ ;;
+ esac
+ fi
+ else
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+
+ interix[[3-9]]*)
+ _LT_TAGVAR(hardcode_direct, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+ # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
+ # Instead, shared libraries are loaded at an image base (0x10000000 by
+ # default) and relocated if they conflict, which is a slow very memory
+ # consuming and fragmenting process. To avoid this, we pick a random,
+ # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
+ # time. Moving up from 0x10000000 also allows more sbrk(2) space.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
+ ;;
+ irix5* | irix6*)
+ case $cc_basename in
+ CC*)
+ # SGI C++
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+
+ # Archives containing C++ object files must be created using
+ # "CC -ar", where "CC" is the IRIX C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
+ ;;
+ *)
+ if test yes = "$GXX"; then
+ if test no = "$with_gnu_ld"; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ else
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib'
+ fi
+ fi
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ ;;
+ esac
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+ _LT_TAGVAR(inherit_rpath, $1)=yes
+ ;;
+
+ linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib'
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+
+ # Archives containing C++ object files must be created using
+ # "CC -Bstatic", where "CC" is the KAI C++ compiler.
+ _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
+ ;;
+ icpc* | ecpc* )
+ # Intel C++
+ with_gnu_ld=yes
+ # version 8.0 and above of icpc choke on multiply defined symbols
+ # if we add $predep_objects and $postdep_objects, however 7.1 and
+ # earlier do not add the objects themselves.
+ case `$CC -V 2>&1` in
+ *"Version 7."*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ *) # Version 8.0 or newer
+ tmp_idyn=
+ case $host_cpu in
+ ia64*) tmp_idyn=' -i_dynamic';;
+ esac
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ esac
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive'
+ ;;
+ pgCC* | pgcpp*)
+ # Portland Group C++ compiler
+ case `$CC -V` in
+ *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
+ _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
+ compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
+ _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
+ $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
+ $RANLIB $oldlib'
+ _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
+ rm -rf $tpldir~
+ $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
+ $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ *) # Version 6 and above use weak symbols
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+ ;;
+ esac
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ ;;
+ cxx*)
+ # Compaq C++
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols'
+
+ runpath_var=LD_RUN_PATH
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
+ ;;
+ xl* | mpixl* | bgxl*)
+ # IBM XL 8.0 on PPC, with GNU ld
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+ if test yes = "$supports_anon_versioning"; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
+ cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
+ echo "local: *; };" >> $output_objdir/$libname.ver~
+ $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib'
+ fi
+ ;;
+ *)
+ case `$CC -V 2>&1 | $SED 5q` in
+ *Sun\ C*)
+ # Sun C++ 5.9
+ _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive'
+ _LT_TAGVAR(compiler_needs_object, $1)=yes
+
+ # Not sure whether something based on
+ # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
+ # would be better.
+ output_verbose_link_cmd='func_echo_all'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+
+ lynxos*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ m88k*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ mvs*)
+ case $cc_basename in
+ cxx*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+
+ netbsd*)
+ if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
+ wlarc=
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ fi
+ # Workaround some broken pre-1.5 toolchains
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
+ ;;
+
+ *nto* | *qnx*)
+ _LT_TAGVAR(ld_shlibs, $1)=yes
+ ;;
+
+ openbsd* | bitrig*)
+ if test -f /usr/libexec/ld.so; then
+ _LT_TAGVAR(hardcode_direct, $1)=yes
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+ if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib'
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E'
+ _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive'
+ fi
+ output_verbose_link_cmd=func_echo_all
+ else
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+
+ osf3* | osf4* | osf5*)
+ case $cc_basename in
+ KCC*)
+ # Kuck and Associates, Inc. (KAI) C++ Compiler
+
+ # KCC will only create a shared library if the output file
+ # ends with ".so" (or ".sl" for HP-UX), so rename the library
+ # to its proper name (with version) after linking.
+ _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Archives containing C++ object files must be created using
+ # the KAI C++ compiler.
+ case $host in
+ osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
+ *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
+ esac
+ ;;
+ RCC*)
+ # Rational C++ 2.4.1
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ cxx*)
+ case $host in
+ osf3*)
+ _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ ;;
+ *)
+ _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
+ echo "-hidden">> $lib.exp~
+ $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~
+ $RM $lib.exp'
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
+ ;;
+ esac
+
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ #
+ # There doesn't appear to be a way to prevent this compiler from
+ # explicitly linking system object files so we need to strip them
+ # from the output so that they don't get included in the library
+ # dependencies.
+ output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
+ ;;
+ *)
+ if test yes,no = "$GXX,$with_gnu_ld"; then
+ _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*'
+ case $host in
+ osf3*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib'
+ ;;
+ esac
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=:
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
+
+ else
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ fi
+ ;;
+ esac
+ ;;
+
+ psos*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ sunos4*)
+ case $cc_basename in
+ CC*)
+ # Sun C++ 4.x
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ lcc*)
+ # Lucid
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+
+ solaris*)
+ case $cc_basename in
+ CC* | sunCC*)
+ # Sun C++ 4.2, 5.x and Centerline C++
+ _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
+ _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ case $host_os in
+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+ *)
+ # The compiler driver will combine and reorder linker options,
+ # but understands '-z linker_flag'.
+ # Supported since Solaris 2.6 (maybe 2.5.1?)
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
+ ;;
+ esac
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+
+ output_verbose_link_cmd='func_echo_all'
+
+ # Archives containing C++ object files must be created using
+ # "CC -xar", where "CC" is the Sun C++ compiler. This is
+ # necessary to make sure instantiated templates are included
+ # in the archive.
+ _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
+ ;;
+ gcx*)
+ # Green Hills C++ Compiler
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
+
+ # The C++ compiler must be used to create the archive.
+ _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
+ ;;
+ *)
+ # GNU C++ compiler with Solaris linker
+ if test yes,no = "$GXX,$with_gnu_ld"; then
+ _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs'
+ if $CC --version | $GREP -v '^2\.7' > /dev/null; then
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
+ else
+ # g++ 2.7 appears to require '-G' NOT '-shared' on this
+ # platform.
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
+ $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+
+ # Commands to make compiler produce verbose output that lists
+ # what "hidden" libraries, object files and flags are used when
+ # linking a shared library.
+ output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"'
+ fi
+
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir'
+ case $host_os in
+ solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
+ *)
+ _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract'
+ ;;
+ esac
+ fi
+ ;;
+ esac
+ ;;
+
+ sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
+ _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ runpath_var='LD_RUN_PATH'
+
+ case $cc_basename in
+ CC*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ sysv5* | sco3.2v5* | sco5v6*)
+ # Note: We CANNOT use -z defs as we might desire, because we do not
+ # link with -lc, and that would cause any symbols used from libc to
+ # always be unresolved, which means just about no library would
+ # ever link correctly. If we're not using GNU ld we use -z text
+ # though, which does catch some bad symbols but isn't as heavy-handed
+ # as -z defs.
+ _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text'
+ _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs'
+ _LT_TAGVAR(archive_cmds_need_lc, $1)=no
+ _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
+ _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir'
+ _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
+ _LT_TAGVAR(link_all_deplibs, $1)=yes
+ _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport'
+ runpath_var='LD_RUN_PATH'
+
+ case $cc_basename in
+ CC*)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
+ '"$_LT_TAGVAR(old_archive_cmds, $1)"
+ _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
+ '"$_LT_TAGVAR(reload_cmds, $1)"
+ ;;
+ *)
+ _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
+ ;;
+ esac
+ ;;
+
+ tandem*)
+ case $cc_basename in
+ NCC*)
+ # NonStop-UX NCC 3.20
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+ ;;
+
+ vxworks*)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+
+ *)
+ # FIXME: insert proper C++ library support
+ _LT_TAGVAR(ld_shlibs, $1)=no
+ ;;
+ esac
+
+ AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
+ test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no
+
+ _LT_TAGVAR(GCC, $1)=$GXX
+ _LT_TAGVAR(LD, $1)=$LD
+
+ ## CAVEAT EMPTOR:
+ ## There is no encapsulation within the following macros, do not change
+ ## the running order or otherwise move them around unless you know exactly
+ ## what you are doing...
+ _LT_SYS_HIDDEN_LIBDEPS($1)
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_SYS_DYNAMIC_LINKER($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+
+ _LT_CONFIG($1)
+ fi # test -n "$compiler"
+
+ CC=$lt_save_CC
+ CFLAGS=$lt_save_CFLAGS
+ LDCXX=$LD
+ LD=$lt_save_LD
+ GCC=$lt_save_GCC
+ with_gnu_ld=$lt_save_with_gnu_ld
+ lt_cv_path_LDCXX=$lt_cv_path_LD
+ lt_cv_path_LD=$lt_save_path_LD
+ lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
+ lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
+fi # test yes != "$_lt_caught_CXX_error"
+
+AC_LANG_POP
+])# _LT_LANG_CXX_CONFIG
+
+
+# _LT_FUNC_STRIPNAME_CNF
+# ----------------------
+# func_stripname_cnf prefix suffix name
+# strip PREFIX and SUFFIX off of NAME.
+# PREFIX and SUFFIX must not contain globbing or regex special
+# characters, hashes, percent signs, but SUFFIX may contain a leading
+# dot (in which case that matches only a dot).
+#
+# This function is identical to the (non-XSI) version of func_stripname,
+# except this one can be used by m4 code that may be executed by configure,
+# rather than the libtool script.
+m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
+AC_REQUIRE([_LT_DECL_SED])
+AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
+func_stripname_cnf ()
+{
+ case @S|@2 in
+ .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;;
+ *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;;
+ esac
+} # func_stripname_cnf
+])# _LT_FUNC_STRIPNAME_CNF
+
+
+# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
+# ---------------------------------
+# Figure out "hidden" library dependencies from verbose
+# compiler output when linking a shared library.
+# Parse the compiler output and extract the necessary
+# objects, libraries and library flags.
+m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
+[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
+AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
+# Dependencies to place before and after the object being linked:
+_LT_TAGVAR(predep_objects, $1)=
+_LT_TAGVAR(postdep_objects, $1)=
+_LT_TAGVAR(predeps, $1)=
+_LT_TAGVAR(postdeps, $1)=
+_LT_TAGVAR(compiler_lib_search_path, $1)=
+
+dnl we can't use the lt_simple_compile_test_code here,
+dnl because it contains code intended for an executable,
+dnl not a library. It's possible we should let each
+dnl tag define a new lt_????_link_test_code variable,
+dnl but it's only used here...
+m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
+int a;
+void foo (void) { a = 0; }
+_LT_EOF
+], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
+class Foo
+{
+public:
+ Foo (void) { a = 0; }
+private:
+ int a;
+};
+_LT_EOF
+], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
+ subroutine foo
+ implicit none
+ integer*4 a
+ a=0
+ return
+ end
+_LT_EOF
+], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
+ subroutine foo
+ implicit none
+ integer a
+ a=0
+ return
+ end
+_LT_EOF
+], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
+public class foo {
+ private int a;
+ public void bar (void) {
+ a = 0;
+ }
+};
+_LT_EOF
+], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
+package foo
+func foo() {
+}
+_LT_EOF
+])
+
+_lt_libdeps_save_CFLAGS=$CFLAGS
+case "$CC $CFLAGS " in #(
+*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
+*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
+*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
+esac
+
+dnl Parse the compiler output and extract the necessary
+dnl objects, libraries and library flags.
+if AC_TRY_EVAL(ac_compile); then
+ # Parse the compiler output and extract the necessary
+ # objects, libraries and library flags.
+
+ # Sentinel used to keep track of whether or not we are before
+ # the conftest object file.
+ pre_test_object_deps_done=no
+
+ for p in `eval "$output_verbose_link_cmd"`; do
+ case $prev$p in
+
+ -L* | -R* | -l*)
+ # Some compilers place space between "-{L,R}" and the path.
+ # Remove the space.
+ if test x-L = "$p" ||
+ test x-R = "$p"; then
+ prev=$p
+ continue
+ fi
+
+ # Expand the sysroot to ease extracting the directories later.
+ if test -z "$prev"; then
+ case $p in
+ -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
+ -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
+ -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
+ esac
+ fi
+ case $p in
+ =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
+ esac
+ if test no = "$pre_test_object_deps_done"; then
+ case $prev in
+ -L | -R)
+ # Internal compiler library paths should come after those
+ # provided the user. The postdeps already come after the
+ # user supplied libs so there is no need to process them.
+ if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
+ _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p
+ else
+ _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p"
+ fi
+ ;;
+ # The "-l" case would never come before the object being
+ # linked, so don't bother handling this case.
+ esac
+ else
+ if test -z "$_LT_TAGVAR(postdeps, $1)"; then
+ _LT_TAGVAR(postdeps, $1)=$prev$p
+ else
+ _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p"
+ fi
+ fi
+ prev=
+ ;;
+
+ *.lto.$objext) ;; # Ignore GCC LTO objects
+ *.$objext)
+ # This assumes that the test object file only shows up
+ # once in the compiler output.
+ if test "$p" = "conftest.$objext"; then
+ pre_test_object_deps_done=yes
+ continue
+ fi
+
+ if test no = "$pre_test_object_deps_done"; then
+ if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
+ _LT_TAGVAR(predep_objects, $1)=$p
+ else
+ _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
+ fi
+ else
+ if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
+ _LT_TAGVAR(postdep_objects, $1)=$p
+ else
+ _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
+ fi
+ fi
+ ;;
+
+ *) ;; # Ignore the rest.
+
+ esac
+ done
+
+ # Clean up.
+ rm -f a.out a.exe
+else
+ echo "libtool.m4: error: problem compiling $1 test program"
+fi
+
+$RM -f confest.$objext
+CFLAGS=$_lt_libdeps_save_CFLAGS
+
+# PORTME: override above test on systems where it is broken
+m4_if([$1], [CXX],
+[case $host_os in
+interix[[3-9]]*)
+ # Interix 3.5 installs completely hosed .la files for C++, so rather than
+ # hack all around it, let's just trust "g++" to DTRT.
+ _LT_TAGVAR(predep_objects,$1)=
+ _LT_TAGVAR(postdep_objects,$1)=
+ _LT_TAGVAR(postdeps,$1)=
+ ;;
+esac
+])
+
+case " $_LT_TAGVAR(postdeps, $1) " in
+*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
+esac
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=
+if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
+ _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'`
+fi
+_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
+ [The directories searched by this compiler when creating a shared library])
+_LT_TAGDECL([], [predep_objects], [1],
+ [Dependencies to place before and after the objects being linked to
+ create a shared library])
+_LT_TAGDECL([], [postdep_objects], [1])
+_LT_TAGDECL([], [predeps], [1])
+_LT_TAGDECL([], [postdeps], [1])
+_LT_TAGDECL([], [compiler_lib_search_path], [1],
+ [The library search path used internally by the compiler when linking
+ a shared library])
+])# _LT_SYS_HIDDEN_LIBDEPS
+
+
+# _LT_LANG_F77_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for a Fortran 77 compiler are
+# suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_F77_CONFIG],
+[AC_LANG_PUSH(Fortran 77)
+if test -z "$F77" || test no = "$F77"; then
+ _lt_disable_F77=yes
+fi
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for f77 test sources.
+ac_ext=f
+
+# Object file extension for compiled f77 test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the F77 compiler isn't working. Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test yes != "$_lt_disable_F77"; then
+ # Code to be used in simple compile tests
+ lt_simple_compile_test_code="\
+ subroutine t
+ return
+ end
+"
+
+ # Code to be used in simple link tests
+ lt_simple_link_test_code="\
+ program t
+ end
+"
+
+ # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+ _LT_TAG_COMPILER
+
+ # save warnings/boilerplate of simple test code
+ _LT_COMPILER_BOILERPLATE
+ _LT_LINKER_BOILERPLATE
+
+ # Allow CC to be a program name with arguments.
+ lt_save_CC=$CC
+ lt_save_GCC=$GCC
+ lt_save_CFLAGS=$CFLAGS
+ CC=${F77-"f77"}
+ CFLAGS=$FFLAGS
+ compiler=$CC
+ _LT_TAGVAR(compiler, $1)=$CC
+ _LT_CC_BASENAME([$compiler])
+ GCC=$G77
+ if test -n "$compiler"; then
+ AC_MSG_CHECKING([if libtool supports shared libraries])
+ AC_MSG_RESULT([$can_build_shared])
+
+ AC_MSG_CHECKING([whether to build shared libraries])
+ test no = "$can_build_shared" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test yes = "$enable_shared" && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+ aix[[4-9]]*)
+ if test ia64 != "$host_cpu"; then
+ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+ yes,aix,yes) ;; # shared object as lib.so file only
+ yes,svr4,*) ;; # shared object as lib.so archive member only
+ yes,*) enable_static=no ;; # shared object in lib.a archive as well
+ esac
+ fi
+ ;;
+ esac
+ AC_MSG_RESULT([$enable_shared])
+
+ AC_MSG_CHECKING([whether to build static libraries])
+ # Make sure either enable_shared or enable_static is yes.
+ test yes = "$enable_shared" || enable_static=yes
+ AC_MSG_RESULT([$enable_static])
+
+ _LT_TAGVAR(GCC, $1)=$G77
+ _LT_TAGVAR(LD, $1)=$LD
+
+ ## CAVEAT EMPTOR:
+ ## There is no encapsulation within the following macros, do not change
+ ## the running order or otherwise move them around unless you know exactly
+ ## what you are doing...
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_SYS_DYNAMIC_LINKER($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+
+ _LT_CONFIG($1)
+ fi # test -n "$compiler"
+
+ GCC=$lt_save_GCC
+ CC=$lt_save_CC
+ CFLAGS=$lt_save_CFLAGS
+fi # test yes != "$_lt_disable_F77"
+
+AC_LANG_POP
+])# _LT_LANG_F77_CONFIG
+
+
+# _LT_LANG_FC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for a Fortran compiler are
+# suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_FC_CONFIG],
+[AC_LANG_PUSH(Fortran)
+
+if test -z "$FC" || test no = "$FC"; then
+ _lt_disable_FC=yes
+fi
+
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+_LT_TAGVAR(allow_undefined_flag, $1)=
+_LT_TAGVAR(always_export_symbols, $1)=no
+_LT_TAGVAR(archive_expsym_cmds, $1)=
+_LT_TAGVAR(export_dynamic_flag_spec, $1)=
+_LT_TAGVAR(hardcode_direct, $1)=no
+_LT_TAGVAR(hardcode_direct_absolute, $1)=no
+_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
+_LT_TAGVAR(hardcode_libdir_separator, $1)=
+_LT_TAGVAR(hardcode_minus_L, $1)=no
+_LT_TAGVAR(hardcode_automatic, $1)=no
+_LT_TAGVAR(inherit_rpath, $1)=no
+_LT_TAGVAR(module_cmds, $1)=
+_LT_TAGVAR(module_expsym_cmds, $1)=
+_LT_TAGVAR(link_all_deplibs, $1)=unknown
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+_LT_TAGVAR(no_undefined_flag, $1)=
+_LT_TAGVAR(whole_archive_flag_spec, $1)=
+_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
+
+# Source file extension for fc test sources.
+ac_ext=${ac_fc_srcext-f}
+
+# Object file extension for compiled fc test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# No sense in running all these tests if we already determined that
+# the FC compiler isn't working. Some variables (like enable_shared)
+# are currently assumed to apply to all compilers on this platform,
+# and will be corrupted by setting them based on a non-working compiler.
+if test yes != "$_lt_disable_FC"; then
+ # Code to be used in simple compile tests
+ lt_simple_compile_test_code="\
+ subroutine t
+ return
+ end
+"
+
+ # Code to be used in simple link tests
+ lt_simple_link_test_code="\
+ program t
+ end
+"
+
+ # ltmain only uses $CC for tagged configurations so make sure $CC is set.
+ _LT_TAG_COMPILER
+
+ # save warnings/boilerplate of simple test code
+ _LT_COMPILER_BOILERPLATE
+ _LT_LINKER_BOILERPLATE
+
+ # Allow CC to be a program name with arguments.
+ lt_save_CC=$CC
+ lt_save_GCC=$GCC
+ lt_save_CFLAGS=$CFLAGS
+ CC=${FC-"f95"}
+ CFLAGS=$FCFLAGS
+ compiler=$CC
+ GCC=$ac_cv_fc_compiler_gnu
+
+ _LT_TAGVAR(compiler, $1)=$CC
+ _LT_CC_BASENAME([$compiler])
+
+ if test -n "$compiler"; then
+ AC_MSG_CHECKING([if libtool supports shared libraries])
+ AC_MSG_RESULT([$can_build_shared])
+
+ AC_MSG_CHECKING([whether to build shared libraries])
+ test no = "$can_build_shared" && enable_shared=no
+
+ # On AIX, shared libraries and static libraries use the same namespace, and
+ # are all built from PIC.
+ case $host_os in
+ aix3*)
+ test yes = "$enable_shared" && enable_static=no
+ if test -n "$RANLIB"; then
+ archive_cmds="$archive_cmds~\$RANLIB \$lib"
+ postinstall_cmds='$RANLIB $lib'
+ fi
+ ;;
+ aix[[4-9]]*)
+ if test ia64 != "$host_cpu"; then
+ case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in
+ yes,aix,yes) ;; # shared object as lib.so file only
+ yes,svr4,*) ;; # shared object as lib.so archive member only
+ yes,*) enable_static=no ;; # shared object in lib.a archive as well
+ esac
+ fi
+ ;;
+ esac
+ AC_MSG_RESULT([$enable_shared])
+
+ AC_MSG_CHECKING([whether to build static libraries])
+ # Make sure either enable_shared or enable_static is yes.
+ test yes = "$enable_shared" || enable_static=yes
+ AC_MSG_RESULT([$enable_static])
+
+ _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu
+ _LT_TAGVAR(LD, $1)=$LD
+
+ ## CAVEAT EMPTOR:
+ ## There is no encapsulation within the following macros, do not change
+ ## the running order or otherwise move them around unless you know exactly
+ ## what you are doing...
+ _LT_SYS_HIDDEN_LIBDEPS($1)
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_SYS_DYNAMIC_LINKER($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+
+ _LT_CONFIG($1)
+ fi # test -n "$compiler"
+
+ GCC=$lt_save_GCC
+ CC=$lt_save_CC
+ CFLAGS=$lt_save_CFLAGS
+fi # test yes != "$_lt_disable_FC"
+
+AC_LANG_POP
+])# _LT_LANG_FC_CONFIG
+
+
+# _LT_LANG_GCJ_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Java Compiler compiler
+# are suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_GCJ_CONFIG],
+[AC_REQUIRE([LT_PROG_GCJ])dnl
+AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=java
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="class foo {}"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GCJ-"gcj"}
+CFLAGS=$GCJFLAGS
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)=$LD
+_LT_CC_BASENAME([$compiler])
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+ _LT_COMPILER_NO_RTTI($1)
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+
+ _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_GCJ_CONFIG
+
+
+# _LT_LANG_GO_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Go compiler
+# are suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_GO_CONFIG],
+[AC_REQUIRE([LT_PROG_GO])dnl
+AC_LANG_SAVE
+
+# Source file extension for Go test sources.
+ac_ext=go
+
+# Object file extension for compiled Go test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="package main; func main() { }"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='package main; func main() { }'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=yes
+CC=${GOC-"gccgo"}
+CFLAGS=$GOFLAGS
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)=$LD
+_LT_CC_BASENAME([$compiler])
+
+# Go did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+ _LT_COMPILER_NO_RTTI($1)
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+
+ _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_GO_CONFIG
+
+
+# _LT_LANG_RC_CONFIG([TAG])
+# -------------------------
+# Ensure that the configuration variables for the Windows resource compiler
+# are suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_RC_CONFIG],
+[AC_REQUIRE([LT_PROG_RC])dnl
+AC_LANG_SAVE
+
+# Source file extension for RC test sources.
+ac_ext=rc
+
+# Object file extension for compiled RC test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
+
+# Code to be used in simple link tests
+lt_simple_link_test_code=$lt_simple_compile_test_code
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=
+CC=${RC-"windres"}
+CFLAGS=
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
+
+if test -n "$compiler"; then
+ :
+ _LT_CONFIG($1)
+fi
+
+GCC=$lt_save_GCC
+AC_LANG_RESTORE
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_RC_CONFIG
+
+
+# LT_PROG_GCJ
+# -----------
+AC_DEFUN([LT_PROG_GCJ],
+[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
+ [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
+ [AC_CHECK_TOOL(GCJ, gcj,)
+ test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2"
+ AC_SUBST(GCJFLAGS)])])[]dnl
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
+
+
+# LT_PROG_GO
+# ----------
+AC_DEFUN([LT_PROG_GO],
+[AC_CHECK_TOOL(GOC, gccgo,)
+])
+
+
+# LT_PROG_RC
+# ----------
+AC_DEFUN([LT_PROG_RC],
+[AC_CHECK_TOOL(RC, windres,)
+])
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_RC], [])
+
+
+# _LT_DECL_EGREP
+# --------------
+# If we don't have a new enough Autoconf to choose the best grep
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_EGREP],
+[AC_REQUIRE([AC_PROG_EGREP])dnl
+AC_REQUIRE([AC_PROG_FGREP])dnl
+test -z "$GREP" && GREP=grep
+_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
+_LT_DECL([], [EGREP], [1], [An ERE matcher])
+_LT_DECL([], [FGREP], [1], [A literal string matcher])
+dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
+AC_SUBST([GREP])
+])
+
+
+# _LT_DECL_OBJDUMP
+# --------------
+# If we don't have a new enough Autoconf to choose the best objdump
+# available, choose the one first in the user's PATH.
+m4_defun([_LT_DECL_OBJDUMP],
+[AC_CHECK_TOOL(OBJDUMP, objdump, false)
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
+AC_SUBST([OBJDUMP])
+])
+
+# _LT_DECL_DLLTOOL
+# ----------------
+# Ensure DLLTOOL variable is set.
+m4_defun([_LT_DECL_DLLTOOL],
+[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
+AC_SUBST([DLLTOOL])
+])
+
+# _LT_DECL_FILECMD
+# ----------------
+# Check for a file(cmd) program that can be used to detect file type and magic
+m4_defun([_LT_DECL_FILECMD],
+[AC_CHECK_TOOL([FILECMD], [file], [:])
+_LT_DECL([], [FILECMD], [1], [A file(cmd) program that detects file types])
+])# _LD_DECL_FILECMD
+
+# _LT_DECL_SED
+# ------------
+# Check for a fully-functional sed program, that truncates
+# as few characters as possible. Prefer GNU sed if found.
+m4_defun([_LT_DECL_SED],
+[AC_PROG_SED
+test -z "$SED" && SED=sed
+Xsed="$SED -e 1s/^X//"
+_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
+_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
+ [Sed that helps us avoid accidentally triggering echo(1) options like -n])
+])# _LT_DECL_SED
+
+m4_ifndef([AC_PROG_SED], [
+############################################################
+# NOTE: This macro has been submitted for inclusion into #
+# GNU Autoconf as AC_PROG_SED. When it is available in #
+# a released version of Autoconf we should remove this #
+# macro and use it instead. #
+############################################################
+
+m4_defun([AC_PROG_SED],
+[AC_MSG_CHECKING([for a sed that does not truncate output])
+AC_CACHE_VAL(lt_cv_path_SED,
+[# Loop through the user's path and test for sed and gsed.
+# Then use that list of sed's as ones to test for truncation.
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ for lt_ac_prog in sed gsed; do
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
+ lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
+ fi
+ done
+ done
+done
+IFS=$as_save_IFS
+lt_ac_max=0
+lt_ac_count=0
+# Add /usr/xpg4/bin/sed as it is typically found on Solaris
+# along with /bin/sed that truncates output.
+for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
+ test ! -f "$lt_ac_sed" && continue
+ cat /dev/null > conftest.in
+ lt_ac_count=0
+ echo $ECHO_N "0123456789$ECHO_C" >conftest.in
+ # Check for GNU sed and select it if it is found.
+ if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
+ lt_cv_path_SED=$lt_ac_sed
+ break
+ fi
+ while true; do
+ cat conftest.in conftest.in >conftest.tmp
+ mv conftest.tmp conftest.in
+ cp conftest.in conftest.nl
+ echo >>conftest.nl
+ $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
+ cmp -s conftest.out conftest.nl || break
+ # 10000 chars as input seems more than enough
+ test 10 -lt "$lt_ac_count" && break
+ lt_ac_count=`expr $lt_ac_count + 1`
+ if test "$lt_ac_count" -gt "$lt_ac_max"; then
+ lt_ac_max=$lt_ac_count
+ lt_cv_path_SED=$lt_ac_sed
+ fi
+ done
+done
+])
+SED=$lt_cv_path_SED
+AC_SUBST([SED])
+AC_MSG_RESULT([$SED])
+])#AC_PROG_SED
+])#m4_ifndef
+
+# Old name:
+AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([LT_AC_PROG_SED], [])
+
+
+# _LT_CHECK_SHELL_FEATURES
+# ------------------------
+# Find out whether the shell is Bourne or XSI compatible,
+# or has some other useful features.
+m4_defun([_LT_CHECK_SHELL_FEATURES],
+[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
+ lt_unset=unset
+else
+ lt_unset=false
+fi
+_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
+
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+ lt_SP2NL='tr \040 \012'
+ lt_NL2SP='tr \015\012 \040\040'
+ ;;
+ *) # EBCDIC based system
+ lt_SP2NL='tr \100 \n'
+ lt_NL2SP='tr \r\n \100\100'
+ ;;
+esac
+_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
+_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
+])# _LT_CHECK_SHELL_FEATURES
+
+
+# _LT_PATH_CONVERSION_FUNCTIONS
+# -----------------------------
+# Determine what file name conversion functions should be used by
+# func_to_host_file (and, implicitly, by func_to_host_path). These are needed
+# for certain cross-compile configurations and native mingw.
+m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_MSG_CHECKING([how to convert $build file names to $host format])
+AC_CACHE_VAL(lt_cv_to_host_file_cmd,
+[case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
+ ;;
+ esac
+ ;;
+ *-*-cygwin* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
+ ;;
+ *-*-cygwin* )
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+ * ) # otherwise, assume *nix
+ lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
+ ;;
+ esac
+ ;;
+ * ) # unhandled hosts (and "normal" native builds)
+ lt_cv_to_host_file_cmd=func_convert_file_noop
+ ;;
+esac
+])
+to_host_file_cmd=$lt_cv_to_host_file_cmd
+AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
+_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
+ [0], [convert $build file names to $host format])dnl
+
+AC_MSG_CHECKING([how to convert $build file names to toolchain format])
+AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
+[#assume ordinary cross tools, or native build.
+lt_cv_to_tool_file_cmd=func_convert_file_noop
+case $host in
+ *-*-mingw* )
+ case $build in
+ *-*-mingw* ) # actually msys
+ lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
+ ;;
+ esac
+ ;;
+esac
+])
+to_tool_file_cmd=$lt_cv_to_tool_file_cmd
+AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
+_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
+ [0], [convert $build files to toolchain format])dnl
+])# _LT_PATH_CONVERSION_FUNCTIONS
diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4
new file mode 100644
index 0000000..b0b5e9c
--- /dev/null
+++ b/m4/ltoptions.m4
@@ -0,0 +1,437 @@
+# Helper functions for option handling. -*- Autoconf -*-
+#
+# Copyright (C) 2004-2005, 2007-2009, 2011-2019, 2021-2022 Free
+# Software Foundation, Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 8 ltoptions.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
+
+
+# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
+# ------------------------------------------
+m4_define([_LT_MANGLE_OPTION],
+[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
+
+
+# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
+# ---------------------------------------
+# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
+# matching handler defined, dispatch to it. Other OPTION-NAMEs are
+# saved as a flag.
+m4_define([_LT_SET_OPTION],
+[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
+m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
+ _LT_MANGLE_DEFUN([$1], [$2]),
+ [m4_warning([Unknown $1 option '$2'])])[]dnl
+])
+
+
+# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
+# ------------------------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+m4_define([_LT_IF_OPTION],
+[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
+
+
+# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
+# -------------------------------------------------------
+# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
+# are set.
+m4_define([_LT_UNLESS_OPTIONS],
+[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+ [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
+ [m4_define([$0_found])])])[]dnl
+m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
+])[]dnl
+])
+
+
+# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
+# ----------------------------------------
+# OPTION-LIST is a space-separated list of Libtool options associated
+# with MACRO-NAME. If any OPTION has a matching handler declared with
+# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
+# the unknown option and exit.
+m4_defun([_LT_SET_OPTIONS],
+[# Set options
+m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+ [_LT_SET_OPTION([$1], _LT_Option)])
+
+m4_if([$1],[LT_INIT],[
+ dnl
+ dnl Simply set some default values (i.e off) if boolean options were not
+ dnl specified:
+ _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
+ ])
+ _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
+ ])
+ dnl
+ dnl If no reference was made to various pairs of opposing options, then
+ dnl we run the default mode handler for the pair. For example, if neither
+ dnl 'shared' nor 'disable-shared' was passed, we enable building of shared
+ dnl archives by default:
+ _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
+ _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
+ _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
+ _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
+ [_LT_ENABLE_FAST_INSTALL])
+ _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4],
+ [_LT_WITH_AIX_SONAME([aix])])
+ ])
+])# _LT_SET_OPTIONS
+
+
+## --------------------------------- ##
+## Macros to handle LT_INIT options. ##
+## --------------------------------- ##
+
+# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
+# -----------------------------------------
+m4_define([_LT_MANGLE_DEFUN],
+[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
+
+
+# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
+# -----------------------------------------------
+m4_define([LT_OPTION_DEFINE],
+[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
+])# LT_OPTION_DEFINE
+
+
+# dlopen
+# ------
+LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
+])
+
+AU_DEFUN([AC_LIBTOOL_DLOPEN],
+[_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'dlopen' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
+
+
+# win32-dll
+# ---------
+# Declare package support for building win32 dll's.
+LT_OPTION_DEFINE([LT_INIT], [win32-dll],
+[enable_win32_dll=yes
+
+case $host in
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
+ AC_CHECK_TOOL(AS, as, false)
+ AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+ AC_CHECK_TOOL(OBJDUMP, objdump, false)
+ ;;
+esac
+
+test -z "$AS" && AS=as
+_LT_DECL([], [AS], [1], [Assembler program])dnl
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
+])# win32-dll
+
+AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'win32-dll' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
+
+
+# _LT_ENABLE_SHARED([DEFAULT])
+# ----------------------------
+# implement the --enable-shared flag, and supports the 'shared' and
+# 'disable-shared' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
+m4_define([_LT_ENABLE_SHARED],
+[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([shared],
+ [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+ [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_shared=yes ;;
+ no) enable_shared=no ;;
+ *)
+ enable_shared=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_shared=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac],
+ [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
+
+ _LT_DECL([build_libtool_libs], [enable_shared], [0],
+ [Whether or not to build shared libraries])
+])# _LT_ENABLE_SHARED
+
+LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
+])
+
+AC_DEFUN([AC_DISABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], [disable-shared])
+])
+
+AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_SHARED], [])
+dnl AC_DEFUN([AM_DISABLE_SHARED], [])
+
+
+
+# _LT_ENABLE_STATIC([DEFAULT])
+# ----------------------------
+# implement the --enable-static flag, and support the 'static' and
+# 'disable-static' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
+m4_define([_LT_ENABLE_STATIC],
+[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([static],
+ [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+ [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_static=yes ;;
+ no) enable_static=no ;;
+ *)
+ enable_static=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_static=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac],
+ [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
+
+ _LT_DECL([build_old_libs], [enable_static], [0],
+ [Whether or not to build static libraries])
+])# _LT_ENABLE_STATIC
+
+LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
+])
+
+AC_DEFUN([AC_DISABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], [disable-static])
+])
+
+AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_STATIC], [])
+dnl AC_DEFUN([AM_DISABLE_STATIC], [])
+
+
+
+# _LT_ENABLE_FAST_INSTALL([DEFAULT])
+# ----------------------------------
+# implement the --enable-fast-install flag, and support the 'fast-install'
+# and 'disable-fast-install' LT_INIT options.
+# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'.
+m4_define([_LT_ENABLE_FAST_INSTALL],
+[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([fast-install],
+ [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+ [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
+ [p=${PACKAGE-default}
+ case $enableval in
+ yes) enable_fast_install=yes ;;
+ no) enable_fast_install=no ;;
+ *)
+ enable_fast_install=no
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for pkg in $enableval; do
+ IFS=$lt_save_ifs
+ if test "X$pkg" = "X$p"; then
+ enable_fast_install=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac],
+ [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
+
+_LT_DECL([fast_install], [enable_fast_install], [0],
+ [Whether or not to optimize for fast installation])dnl
+])# _LT_ENABLE_FAST_INSTALL
+
+LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
+
+# Old names:
+AU_DEFUN([AC_ENABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the 'fast-install' option into LT_INIT's first parameter.])
+])
+
+AU_DEFUN([AC_DISABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the 'disable-fast-install' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
+dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
+
+
+# _LT_WITH_AIX_SONAME([DEFAULT])
+# ----------------------------------
+# implement the --with-aix-soname flag, and support the `aix-soname=aix'
+# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT
+# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'.
+m4_define([_LT_WITH_AIX_SONAME],
+[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl
+shared_archive_member_spec=
+case $host,$enable_shared in
+power*-*-aix[[5-9]]*,yes)
+ AC_MSG_CHECKING([which variant of shared library versioning to provide])
+ AC_ARG_WITH([aix-soname],
+ [AS_HELP_STRING([--with-aix-soname=aix|svr4|both],
+ [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])],
+ [case $withval in
+ aix|svr4|both)
+ ;;
+ *)
+ AC_MSG_ERROR([Unknown argument to --with-aix-soname])
+ ;;
+ esac
+ lt_cv_with_aix_soname=$with_aix_soname],
+ [AC_CACHE_VAL([lt_cv_with_aix_soname],
+ [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT)
+ with_aix_soname=$lt_cv_with_aix_soname])
+ AC_MSG_RESULT([$with_aix_soname])
+ if test aix != "$with_aix_soname"; then
+ # For the AIX way of multilib, we name the shared archive member
+ # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o',
+ # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File.
+ # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag,
+ # the AIX toolchain works better with OBJECT_MODE set (default 32).
+ if test 64 = "${OBJECT_MODE-32}"; then
+ shared_archive_member_spec=shr_64
+ else
+ shared_archive_member_spec=shr
+ fi
+ fi
+ ;;
+*)
+ with_aix_soname=aix
+ ;;
+esac
+
+_LT_DECL([], [shared_archive_member_spec], [0],
+ [Shared archive member basename, for filename based shared library versioning on AIX])dnl
+])# _LT_WITH_AIX_SONAME
+
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])])
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])])
+LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])])
+
+
+# _LT_WITH_PIC([MODE])
+# --------------------
+# implement the --with-pic flag, and support the 'pic-only' and 'no-pic'
+# LT_INIT options.
+# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'.
+m4_define([_LT_WITH_PIC],
+[AC_ARG_WITH([pic],
+ [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
+ [try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
+ [lt_p=${PACKAGE-default}
+ case $withval in
+ yes|no) pic_mode=$withval ;;
+ *)
+ pic_mode=default
+ # Look at the argument we got. We use all the common list separators.
+ lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR,
+ for lt_pkg in $withval; do
+ IFS=$lt_save_ifs
+ if test "X$lt_pkg" = "X$lt_p"; then
+ pic_mode=yes
+ fi
+ done
+ IFS=$lt_save_ifs
+ ;;
+ esac],
+ [pic_mode=m4_default([$1], [default])])
+
+_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
+])# _LT_WITH_PIC
+
+LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
+
+# Old name:
+AU_DEFUN([AC_LIBTOOL_PICMODE],
+[_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the 'pic-only' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
+
+## ----------------- ##
+## LTDL_INIT Options ##
+## ----------------- ##
+
+m4_define([_LTDL_MODE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
+ [m4_define([_LTDL_MODE], [nonrecursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [recursive],
+ [m4_define([_LTDL_MODE], [recursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [subproject],
+ [m4_define([_LTDL_MODE], [subproject])])
+
+m4_define([_LTDL_TYPE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [installable],
+ [m4_define([_LTDL_TYPE], [installable])])
+LT_OPTION_DEFINE([LTDL_INIT], [convenience],
+ [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4
new file mode 100644
index 0000000..902508b
--- /dev/null
+++ b/m4/ltsugar.m4
@@ -0,0 +1,124 @@
+# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
+#
+# Copyright (C) 2004-2005, 2007-2008, 2011-2019, 2021-2022 Free Software
+# Foundation, Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 6 ltsugar.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
+
+
+# lt_join(SEP, ARG1, [ARG2...])
+# -----------------------------
+# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
+# associated separator.
+# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
+# versions in m4sugar had bugs.
+m4_define([lt_join],
+[m4_if([$#], [1], [],
+ [$#], [2], [[$2]],
+ [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
+m4_define([_lt_join],
+[m4_if([$#$2], [2], [],
+ [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
+
+
+# lt_car(LIST)
+# lt_cdr(LIST)
+# ------------
+# Manipulate m4 lists.
+# These macros are necessary as long as will still need to support
+# Autoconf-2.59, which quotes differently.
+m4_define([lt_car], [[$1]])
+m4_define([lt_cdr],
+[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
+ [$#], 1, [],
+ [m4_dquote(m4_shift($@))])])
+m4_define([lt_unquote], $1)
+
+
+# lt_append(MACRO-NAME, STRING, [SEPARATOR])
+# ------------------------------------------
+# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'.
+# Note that neither SEPARATOR nor STRING are expanded; they are appended
+# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
+# No SEPARATOR is output if MACRO-NAME was previously undefined (different
+# than defined and empty).
+#
+# This macro is needed until we can rely on Autoconf 2.62, since earlier
+# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
+m4_define([lt_append],
+[m4_define([$1],
+ m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
+
+
+
+# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
+# ----------------------------------------------------------
+# Produce a SEP delimited list of all paired combinations of elements of
+# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list
+# has the form PREFIXmINFIXSUFFIXn.
+# Needed until we can rely on m4_combine added in Autoconf 2.62.
+m4_define([lt_combine],
+[m4_if(m4_eval([$# > 3]), [1],
+ [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
+[[m4_foreach([_Lt_prefix], [$2],
+ [m4_foreach([_Lt_suffix],
+ ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
+ [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
+
+
+# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
+# -----------------------------------------------------------------------
+# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
+# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
+m4_define([lt_if_append_uniq],
+[m4_ifdef([$1],
+ [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
+ [lt_append([$1], [$2], [$3])$4],
+ [$5])],
+ [lt_append([$1], [$2], [$3])$4])])
+
+
+# lt_dict_add(DICT, KEY, VALUE)
+# -----------------------------
+m4_define([lt_dict_add],
+[m4_define([$1($2)], [$3])])
+
+
+# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
+# --------------------------------------------
+m4_define([lt_dict_add_subkey],
+[m4_define([$1($2:$3)], [$4])])
+
+
+# lt_dict_fetch(DICT, KEY, [SUBKEY])
+# ----------------------------------
+m4_define([lt_dict_fetch],
+[m4_ifval([$3],
+ m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
+ m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
+
+
+# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
+# -----------------------------------------------------------------
+m4_define([lt_if_dict_fetch],
+[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
+ [$5],
+ [$6])])
+
+
+# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
+# --------------------------------------------------------------
+m4_define([lt_dict_filter],
+[m4_if([$5], [], [],
+ [lt_join(m4_quote(m4_default([$4], [[, ]])),
+ lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
+ [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
+])
diff --git a/m4/ltversion.m4 b/m4/ltversion.m4
new file mode 100644
index 0000000..b155d0a
--- /dev/null
+++ b/m4/ltversion.m4
@@ -0,0 +1,24 @@
+# ltversion.m4 -- version numbers -*- Autoconf -*-
+#
+# Copyright (C) 2004, 2011-2019, 2021-2022 Free Software Foundation,
+# Inc.
+# Written by Scott James Remnant, 2004
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# @configure_input@
+
+# serial 4245 ltversion.m4
+# This file is part of GNU Libtool
+
+m4_define([LT_PACKAGE_VERSION], [2.4.7])
+m4_define([LT_PACKAGE_REVISION], [2.4.7])
+
+AC_DEFUN([LTVERSION_VERSION],
+[macro_version='2.4.7'
+macro_revision='2.4.7'
+_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
+_LT_DECL(, macro_revision, 0)
+])
diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4
new file mode 100644
index 0000000..0f7a875
--- /dev/null
+++ b/m4/lt~obsolete.m4
@@ -0,0 +1,99 @@
+# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
+#
+# Copyright (C) 2004-2005, 2007, 2009, 2011-2019, 2021-2022 Free
+# Software Foundation, Inc.
+# Written by Scott James Remnant, 2004.
+#
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to copy and/or distribute it, with or without
+# modifications, as long as this notice is preserved.
+
+# serial 5 lt~obsolete.m4
+
+# These exist entirely to fool aclocal when bootstrapping libtool.
+#
+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN),
+# which have later been changed to m4_define as they aren't part of the
+# exported API, or moved to Autoconf or Automake where they belong.
+#
+# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN
+# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
+# using a macro with the same name in our local m4/libtool.m4 it'll
+# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
+# and doesn't know about Autoconf macros at all.)
+#
+# So we provide this file, which has a silly filename so it's always
+# included after everything else. This provides aclocal with the
+# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
+# because those macros already exist, or will be overwritten later.
+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
+#
+# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
+# Yes, that means every name once taken will need to remain here until
+# we give up compatibility with versions before 1.7, at which point
+# we need to keep only those names which we still refer to.
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
+
+m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
+m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])])
+m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])])
+m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
+m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])])
+m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])])
+m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
+m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])])
+m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])])
+m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])])
+m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
+m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
+m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
+m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
+m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
+m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
+m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
+m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])])
+m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])])
+m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
+m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
+m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
+m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
+m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])])
+m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])])
+m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])])
+m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
+m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
+m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])])
+m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])])
+m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
+m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
+m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])])
+m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
+m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
+m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
+m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
+m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
+m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
+m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
+m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
+m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
+m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
+m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
+m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
+m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
+m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])])
+m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
+m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])])
+m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])])
+m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])])
diff --git a/m4/nls.m4 b/m4/nls.m4
new file mode 100644
index 0000000..36bc493
--- /dev/null
+++ b/m4/nls.m4
@@ -0,0 +1,49 @@
+# nls.m4 serial 1 (gettext-0.12)
+dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+AC_DEFUN([AM_NLS],
+[
+ AC_MSG_CHECKING([whether NLS is requested])
+ dnl Default is enabled NLS
+ AC_ARG_ENABLE(nls,
+ [ --disable-nls do not use Native Language Support],
+ USE_NLS=$enableval, USE_NLS=yes)
+ AC_MSG_RESULT($USE_NLS)
+ AC_SUBST(USE_NLS)
+])
+
+AC_DEFUN([AM_MKINSTALLDIRS],
+[
+ dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly
+ dnl find the mkinstalldirs script in another subdir but $(top_srcdir).
+ dnl Try to locate it.
+ MKINSTALLDIRS=
+ if test -n "$ac_aux_dir"; then
+ case "$ac_aux_dir" in
+ /*) MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" ;;
+ *) MKINSTALLDIRS="\$(top_builddir)/$ac_aux_dir/mkinstalldirs" ;;
+ esac
+ fi
+ if test -z "$MKINSTALLDIRS"; then
+ MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs"
+ fi
+ AC_SUBST(MKINSTALLDIRS)
+])
diff --git a/m4/po.m4 b/m4/po.m4
new file mode 100644
index 0000000..e161998
--- /dev/null
+++ b/m4/po.m4
@@ -0,0 +1,426 @@
+# po.m4 serial 3 (gettext-0.14)
+dnl Copyright (C) 1995-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+dnl Checks for all prerequisites of the po subdirectory.
+AC_DEFUN([AM_PO_SUBDIRS],
+[
+ AC_REQUIRE([AC_PROG_MAKE_SET])dnl
+ AC_REQUIRE([AC_PROG_INSTALL])dnl
+ AC_REQUIRE([AM_MKINSTALLDIRS])dnl
+ AC_REQUIRE([AM_NLS])dnl
+
+ dnl Perform the following tests also if --disable-nls has been given,
+ dnl because they are needed for "make dist" to work.
+
+ dnl Search for GNU msgfmt in the PATH.
+ dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions.
+ dnl The second test excludes FreeBSD msgfmt.
+ AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt,
+ [$ac_dir/$ac_word --statistics /dev/null >/dev/null 2>&1 &&
+ (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+ :)
+ AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
+
+ dnl Search for GNU xgettext 0.12 or newer in the PATH.
+ dnl The first test excludes Solaris xgettext and early GNU xgettext versions.
+ dnl The second test excludes FreeBSD xgettext.
+ AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext,
+ [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
+ (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)],
+ :)
+ dnl Remove leftover from FreeBSD xgettext call.
+ rm -f messages.po
+
+ dnl Search for GNU msgmerge 0.11 or newer in the PATH.
+ AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
+ [$ac_dir/$ac_word --update -q /dev/null /dev/null >/dev/null 2>&1], :)
+
+ dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
+ dnl Test whether we really found GNU msgfmt.
+ if test "$GMSGFMT" != ":"; then
+ dnl If it is no GNU msgfmt we define it as : so that the
+ dnl Makefiles still can work.
+ if $GMSGFMT --statistics /dev/null >/dev/null 2>&1 &&
+ (if $GMSGFMT --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+ : ;
+ else
+ GMSGFMT=`echo "$GMSGFMT" | sed -e 's,^.*/,,'`
+ AC_MSG_RESULT(
+ [found $GMSGFMT program is not GNU msgfmt; ignore it])
+ GMSGFMT=":"
+ fi
+ fi
+
+ dnl This could go away some day; the PATH_PROG_WITH_TEST already does it.
+ dnl Test whether we really found GNU xgettext.
+ if test "$XGETTEXT" != ":"; then
+ dnl If it is no GNU xgettext we define it as : so that the
+ dnl Makefiles still can work.
+ if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >/dev/null 2>&1 &&
+ (if $XGETTEXT --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then
+ : ;
+ else
+ AC_MSG_RESULT(
+ [found xgettext program is not GNU xgettext; ignore it])
+ XGETTEXT=":"
+ fi
+ dnl Remove leftover from FreeBSD xgettext call.
+ rm -f messages.po
+ fi
+
+ AC_OUTPUT_COMMANDS([
+ for ac_file in $CONFIG_FILES; do
+ # Support "outfile[:infile[:infile...]]"
+ case "$ac_file" in
+ *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+ esac
+ # PO directories have a Makefile.in generated from Makefile.in.in.
+ case "$ac_file" in */Makefile.in)
+ # Adjust a relative srcdir.
+ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+ ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+ # In autoconf-2.13 it is called $ac_given_srcdir.
+ # In autoconf-2.50 it is called $srcdir.
+ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+ case "$ac_given_srcdir" in
+ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+ /*) top_srcdir="$ac_given_srcdir" ;;
+ *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+ if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then
+ rm -f "$ac_dir/POTFILES"
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES"
+ cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES"
+ POMAKEFILEDEPS="POTFILES.in"
+ # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend
+ # on $ac_dir but don't depend on user-specified configuration
+ # parameters.
+ if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+ # The LINGUAS file contains the set of available languages.
+ if test -n "$OBSOLETE_ALL_LINGUAS"; then
+ test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+ fi
+ ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+ # Hide the ALL_LINGUAS assigment from automake.
+ eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+ else
+ # The set of available languages was given in configure.in.
+ eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
+ fi
+ # Compute POFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+ # Compute UPDATEPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+ # Compute DUMMYPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+ # Compute GMOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+ case "$ac_given_srcdir" in
+ .) srcdirpre= ;;
+ *) srcdirpre='$(srcdir)/' ;;
+ esac
+ POFILES=
+ UPDATEPOFILES=
+ DUMMYPOFILES=
+ GMOFILES=
+ for lang in $ALL_LINGUAS; do
+ POFILES="$POFILES $srcdirpre$lang.po"
+ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+ done
+ # CATALOGS depends on both $ac_dir and the user's LINGUAS
+ # environment variable.
+ INST_LINGUAS=
+ if test -n "$ALL_LINGUAS"; then
+ for presentlang in $ALL_LINGUAS; do
+ useit=no
+ if test "%UNSET%" != "$LINGUAS"; then
+ desiredlanguages="$LINGUAS"
+ else
+ desiredlanguages="$ALL_LINGUAS"
+ fi
+ for desiredlang in $desiredlanguages; do
+ # Use the presentlang catalog if desiredlang is
+ # a. equal to presentlang, or
+ # b. a variant of presentlang (because in this case,
+ # presentlang can be used as a fallback for messages
+ # which are not translated in the desiredlang catalog).
+ case "$desiredlang" in
+ "$presentlang"*) useit=yes;;
+ esac
+ done
+ if test $useit = yes; then
+ INST_LINGUAS="$INST_LINGUAS $presentlang"
+ fi
+ done
+ fi
+ CATALOGS=
+ if test -n "$INST_LINGUAS"; then
+ for lang in $INST_LINGUAS; do
+ CATALOGS="$CATALOGS $lang.gmo"
+ done
+ fi
+ test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile"
+ sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile"
+ for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do
+ if test -f "$f"; then
+ case "$f" in
+ *.orig | *.bak | *~) ;;
+ *) cat "$f" >> "$ac_dir/Makefile" ;;
+ esac
+ fi
+ done
+ fi
+ ;;
+ esac
+ done],
+ [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
+ # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
+ # from automake.
+ eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
+ # Capture the value of LINGUAS because we need it to compute CATALOGS.
+ LINGUAS="${LINGUAS-%UNSET%}"
+ ])
+])
+
+dnl Postprocesses a Makefile in a directory containing PO files.
+AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE],
+[
+ # When this code is run, in config.status, two variables have already been
+ # set:
+ # - OBSOLETE_ALL_LINGUAS is the value of LINGUAS set in configure.in,
+ # - LINGUAS is the value of the environment variable LINGUAS at configure
+ # time.
+
+changequote(,)dnl
+ # Adjust a relative srcdir.
+ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'`
+ ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`"
+ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'`
+ # In autoconf-2.13 it is called $ac_given_srcdir.
+ # In autoconf-2.50 it is called $srcdir.
+ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir"
+ case "$ac_given_srcdir" in
+ .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;;
+ /*) top_srcdir="$ac_given_srcdir" ;;
+ *) top_srcdir="$ac_dots$ac_given_srcdir" ;;
+ esac
+
+ # Find a way to echo strings without interpreting backslash.
+ if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then
+ gt_echo='echo'
+ else
+ if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then
+ gt_echo='printf %s\n'
+ else
+ echo_func () {
+ cat <<EOT
+$*
+EOT
+ }
+ gt_echo='echo_func'
+ fi
+ fi
+
+ # A sed script that extracts the value of VARIABLE from a Makefile.
+ sed_x_variable='
+# Test if the hold space is empty.
+x
+s/P/P/
+x
+ta
+# Yes it was empty. Look if we have the expected variable definition.
+/^[ ]*VARIABLE[ ]*=/{
+ # Seen the first line of the variable definition.
+ s/^[ ]*VARIABLE[ ]*=//
+ ba
+}
+bd
+:a
+# Here we are processing a line from the variable definition.
+# Remove comment, more precisely replace it with a space.
+s/#.*$/ /
+# See if the line ends in a backslash.
+tb
+:b
+s/\\$//
+# Print the line, without the trailing backslash.
+p
+tc
+# There was no trailing backslash. The end of the variable definition is
+# reached. Clear the hold space.
+s/^.*$//
+x
+bd
+:c
+# A trailing backslash means that the variable definition continues in the
+# next line. Put a nonempty string into the hold space to indicate this.
+s/^.*$/P/
+x
+:d
+'
+changequote([,])dnl
+
+ # Set POTFILES to the value of the Makefile variable POTFILES.
+ sed_x_POTFILES="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/POTFILES/g'`"
+ POTFILES=`sed -n -e "$sed_x_POTFILES" < "$ac_file"`
+ # Compute POTFILES_DEPS as
+ # $(foreach file, $(POTFILES), $(top_srcdir)/$(file))
+ POTFILES_DEPS=
+ for file in $POTFILES; do
+ POTFILES_DEPS="$POTFILES_DEPS "'$(top_srcdir)/'"$file"
+ done
+ POMAKEFILEDEPS=""
+
+ if test -n "$OBSOLETE_ALL_LINGUAS"; then
+ test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
+ fi
+ if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
+ # The LINGUAS file contains the set of available languages.
+ ALL_LINGUAS_=`sed -e "/^#/d" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+ POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
+ else
+ # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS.
+ sed_x_LINGUAS="`$gt_echo \"$sed_x_variable\" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`"
+ ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
+ fi
+ # Hide the ALL_LINGUAS assigment from automake.
+ eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+ # Compute POFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
+ # Compute UPDATEPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update)
+ # Compute DUMMYPOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop)
+ # Compute GMOFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
+ # Compute PROPERTIESFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties)
+ # Compute CLASSFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class)
+ # Compute QMFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm)
+ # Compute MSGFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang)).msg)
+ # Compute RESOURCESDLLFILES
+ # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(frob $(lang))/$(DOMAIN).resources.dll)
+ case "$ac_given_srcdir" in
+ .) srcdirpre= ;;
+ *) srcdirpre='$(srcdir)/' ;;
+ esac
+ POFILES=
+ UPDATEPOFILES=
+ DUMMYPOFILES=
+ GMOFILES=
+ PROPERTIESFILES=
+ CLASSFILES=
+ QMFILES=
+ MSGFILES=
+ RESOURCESDLLFILES=
+ for lang in $ALL_LINGUAS; do
+ POFILES="$POFILES $srcdirpre$lang.po"
+ UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
+ DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
+ GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
+ PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties"
+ CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class"
+ QMFILES="$QMFILES $srcdirpre$lang.qm"
+ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+ MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg"
+ frobbedlang=`echo $lang | sed -e 's/_/-/g'`
+ RESOURCESDLLFILES="$RESOURCESDLLFILES $srcdirpre$frobbedlang/\$(DOMAIN).resources.dll"
+ done
+ # CATALOGS depends on both $ac_dir and the user's LINGUAS
+ # environment variable.
+ INST_LINGUAS=
+ if test -n "$ALL_LINGUAS"; then
+ for presentlang in $ALL_LINGUAS; do
+ useit=no
+ if test "%UNSET%" != "$LINGUAS"; then
+ desiredlanguages="$LINGUAS"
+ else
+ desiredlanguages="$ALL_LINGUAS"
+ fi
+ for desiredlang in $desiredlanguages; do
+ # Use the presentlang catalog if desiredlang is
+ # a. equal to presentlang, or
+ # b. a variant of presentlang (because in this case,
+ # presentlang can be used as a fallback for messages
+ # which are not translated in the desiredlang catalog).
+ case "$desiredlang" in
+ "$presentlang"*) useit=yes;;
+ esac
+ done
+ if test $useit = yes; then
+ INST_LINGUAS="$INST_LINGUAS $presentlang"
+ fi
+ done
+ fi
+ CATALOGS=
+ JAVACATALOGS=
+ QTCATALOGS=
+ TCLCATALOGS=
+ CSHARPCATALOGS=
+ if test -n "$INST_LINGUAS"; then
+ for lang in $INST_LINGUAS; do
+ CATALOGS="$CATALOGS $lang.gmo"
+ JAVACATALOGS="$JAVACATALOGS \$(DOMAIN)_$lang.properties"
+ QTCATALOGS="$QTCATALOGS $lang.qm"
+ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+ TCLCATALOGS="$TCLCATALOGS $frobbedlang.msg"
+ frobbedlang=`echo $lang | sed -e 's/_/-/g'`
+ CSHARPCATALOGS="$CSHARPCATALOGS $frobbedlang/\$(DOMAIN).resources.dll"
+ done
+ fi
+
+ sed -e "s|@POTFILES_DEPS@|$POTFILES_DEPS|g" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@PROPERTIESFILES@|$PROPERTIESFILES|g" -e "s|@CLASSFILES@|$CLASSFILES|g" -e "s|@QMFILES@|$QMFILES|g" -e "s|@MSGFILES@|$MSGFILES|g" -e "s|@RESOURCESDLLFILES@|$RESOURCESDLLFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@JAVACATALOGS@|$JAVACATALOGS|g" -e "s|@QTCATALOGS@|$QTCATALOGS|g" -e "s|@TCLCATALOGS@|$TCLCATALOGS|g" -e "s|@CSHARPCATALOGS@|$CSHARPCATALOGS|g" -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp"
+ if grep -l '@TCLCATALOGS@' "$ac_file" > /dev/null; then
+ # Add dependencies that cannot be formulated as a simple suffix rule.
+ for lang in $ALL_LINGUAS; do
+ frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
+ cat >> "$ac_file.tmp" <<EOF
+$frobbedlang.msg: $lang.po
+ @echo "\$(MSGFMT) -c --tcl -d \$(srcdir) -l $lang $srcdirpre$lang.po"; \
+ \$(MSGFMT) -c --tcl -d "\$(srcdir)" -l $lang $srcdirpre$lang.po || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+EOF
+ done
+ fi
+ if grep -l '@CSHARPCATALOGS@' "$ac_file" > /dev/null; then
+ # Add dependencies that cannot be formulated as a simple suffix rule.
+ for lang in $ALL_LINGUAS; do
+ frobbedlang=`echo $lang | sed -e 's/_/-/g'`
+ cat >> "$ac_file.tmp" <<EOF
+$frobbedlang/\$(DOMAIN).resources.dll: $lang.po
+ @echo "\$(MSGFMT) -c --csharp -d \$(srcdir) -l $lang $srcdirpre$lang.po -r \$(DOMAIN)"; \
+ \$(MSGFMT) -c --csharp -d "\$(srcdir)" -l $lang $srcdirpre$lang.po -r "\$(DOMAIN)" || { rm -f "\$(srcdir)/$frobbedlang.msg"; exit 1; }
+EOF
+ done
+ fi
+ if test -n "$POMAKEFILEDEPS"; then
+ cat >> "$ac_file.tmp" <<EOF
+Makefile: $POMAKEFILEDEPS
+EOF
+ fi
+ mv "$ac_file.tmp" "$ac_file"
+])
diff --git a/m4/progtest.m4 b/m4/progtest.m4
new file mode 100644
index 0000000..8fe527c
--- /dev/null
+++ b/m4/progtest.m4
@@ -0,0 +1,91 @@
+# progtest.m4 serial 3 (gettext-0.12)
+dnl Copyright (C) 1996-2003 Free Software Foundation, Inc.
+dnl This file is free software, distributed under the terms of the GNU
+dnl General Public License. As a special exception to the GNU General
+dnl Public License, this file may be distributed as part of a program
+dnl that contains a configuration script generated by Autoconf, under
+dnl the same distribution terms as the rest of that program.
+dnl
+dnl This file can can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1996.
+
+# Search path for a program which passes the given test.
+
+dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR,
+dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]])
+AC_DEFUN([AM_PATH_PROG_WITH_TEST],
+[
+# Prepare PATH_SEPARATOR.
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ echo "#! /bin/sh" >conf$$.sh
+ echo "exit 0" >>conf$$.sh
+ chmod +x conf$$.sh
+ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+ PATH_SEPARATOR=';'
+ else
+ PATH_SEPARATOR=:
+ fi
+ rm -f conf$$.sh
+fi
+
+# Find out how to test for executable files. Don't use a zero-byte file,
+# as systems may use methods other than mode bits to determine executability.
+cat >conf$$.file <<_ASEOF
+#! /bin/sh
+exit 0
+_ASEOF
+chmod +x conf$$.file
+if test -x conf$$.file >/dev/null 2>&1; then
+ ac_executable_p="test -x"
+else
+ ac_executable_p="test -f"
+fi
+rm -f conf$$.file
+
+# Extract the first word of "$2", so it can be a program name with args.
+set dummy $2; ac_word=[$]2
+AC_MSG_CHECKING([for $ac_word])
+AC_CACHE_VAL(ac_cv_path_$1,
+[case "[$]$1" in
+ [[\\/]]* | ?:[[\\/]]*)
+ ac_cv_path_$1="[$]$1" # Let the user override the test with a path.
+ ;;
+ *)
+ ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
+ for ac_dir in ifelse([$5], , $PATH, [$5]); do
+ IFS="$ac_save_IFS"
+ test -z "$ac_dir" && ac_dir=.
+ for ac_exec_ext in '' $ac_executable_extensions; do
+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then
+ if [$3]; then
+ ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext"
+ break 2
+ fi
+ fi
+ done
+ done
+ IFS="$ac_save_IFS"
+dnl If no 4th arg is given, leave the cache variable unset,
+dnl so AC_PATH_PROGS will keep looking.
+ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+])dnl
+ ;;
+esac])dnl
+$1="$ac_cv_path_$1"
+if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
+ AC_MSG_RESULT([$]$1)
+else
+ AC_MSG_RESULT(no)
+fi
+AC_SUBST($1)dnl
+])
diff --git a/man/free.1 b/man/free.1
new file mode 100644
index 0000000..cfe9509
--- /dev/null
+++ b/man/free.1
@@ -0,0 +1,169 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2003 Albert Cahalan
+.\" Copyright (c) 1993 Matt Welsh <mdw@sunsite.unc.edu>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.TH FREE 1 "2023-05-02" "procps-ng" "User Commands"
+.SH NAME
+free \- Display amount of free and used memory in the system
+.SH SYNOPSIS
+.B free
+.RI [ options ]
+.SH DESCRIPTION
+.B free
+displays the total amount of free and used physical and swap memory in the
+system, as well as the buffers and caches used by the kernel. The
+information is gathered by parsing /proc/meminfo. The displayed
+columns are:
+.TP
+\fBtotal\fR
+Total usable memory (MemTotal and SwapTotal in /proc/meminfo). This includes
+the physical and swap memory minus a few reserved bits and kernel binary code.
+.TP
+\fBused\fR
+Used or unavailable memory (calculated as \fBtotal\fR - \fBavailable\fR)
+.TP
+\fBfree\fR
+Unused memory (MemFree and SwapFree in /proc/meminfo)
+.TP
+\fBshared\fR
+Memory used (mostly) by tmpfs (Shmem in /proc/meminfo)
+.TP
+\fBbuffers\fR
+Memory used by kernel buffers (Buffers in /proc/meminfo)
+.TP
+\fBcache\fR
+Memory used by the page cache and slabs (Cached and SReclaimable in /proc/meminfo)
+.TP
+\fBbuff/cache\fR
+Sum of \fBbuffers\fR and \fBcache\fR
+.TP
+\fBavailable\fR
+Estimation of how much memory is available for starting
+new applications, without swapping. Unlike the data
+provided by the \fBcache\fR or \fBfree\fR fields,
+this field takes into account page cache and also that
+not all reclaimable memory slabs will be reclaimed
+due to items being in use (MemAvailable in /proc/meminfo, available on
+kernels 3.14, emulated on kernels 2.6.27+, otherwise the same as \fBfree\fR)
+.SH OPTIONS
+.TP
+\fB\-b\fR, \fB\-\-bytes\fR
+Display the amount of memory in bytes.
+.TP
+\fB\-k\fR, \fB\-\-kibi\fR
+Display the amount of memory in kibibytes. This is the default.
+.TP
+\fB\-m\fR, \fB\-\-mebi\fR
+Display the amount of memory in mebibytes.
+.TP
+\fB\-g\fR, \fB\-\-gibi\fR
+Display the amount of memory in gibibytes.
+.TP
+\fB\-\-tebi\fR
+Display the amount of memory in tebibytes.
+.TP
+\fB\-\-pebi\fR
+Display the amount of memory in pebibytes.
+.TP
+\fB\-\-kilo\fR
+Display the amount of memory in kilobytes. Implies --si.
+.TP
+\fB\-\-mega\fR
+Display the amount of memory in megabytes. Implies --si.
+.TP
+\fB\-\-giga\fR
+Display the amount of memory in gigabytes. Implies --si.
+.TP
+\fB\-\-tera\fR
+Display the amount of memory in terabytes. Implies --si.
+.TP
+\fB\-\-peta\fR
+Display the amount of memory in petabytes. Implies --si.
+.TP
+\fB\-h\fR, \fB\-\-human\fP
+Show all output fields automatically scaled to shortest three digit unit and
+display the units of print out. Following units are used.
+.sp
+.nf
+ B = bytes
+ Ki = kibibyte
+ Mi = mebibyte
+ Gi = gibibyte
+ Ti = tebibyte
+ Pi = pebibyte
+.fi
+.sp
+If unit is missing, and you have exbibyte of RAM or swap, the number is in
+tebibytes and columns might not be aligned with header.
+.TP
+\fB\-w\fR, \fB\-\-wide\fR
+Switch to the wide mode. The wide mode produces lines longer
+than 80 characters. In this mode \fBbuffers\fR and \fBcache\fR
+are reported in two separate columns.
+.TP
+\fB\-c\fR, \fB\-\-count\fR \fIcount\fR
+Display the result
+.I count
+times. Requires the
+.B \-s
+option.
+.TP
+\fB\-l\fR, \fB\-\-lohi\fR
+Show detailed low and high memory statistics.
+.TP
+\fB\-L\fR, \fB\-\-line\fR
+Show output on a single line, often used with the
+.B \-s
+option to show memory statistics repeatedly.
+.TP
+\fB\-s\fR, \fB\-\-seconds\fR \fIdelay\fR
+Continuously display the result \fIdelay\fR seconds
+apart. You may actually specify any floating point number for
+\fIdelay\fR using either . or , for decimal point.
+.BR usleep (3)
+is used for microsecond resolution delay times.
+.TP
+\fB\-\-si\fR
+Use kilo, mega, giga etc (power of 1000) instead of kibi, mebi, gibi (power
+of 1024).
+.TP
+\fB\-t\fR, \fB\-\-total\fR
+Display a line showing the column totals.
+.TP
+\fB\-v\fR, \fB\-\-committed\fR
+Display a line showing the memory commit limit and amount of committed/uncommitted
+memory. The \fBtotal\fR column on this line will display the memory commit
+limit. This line is relevant if memory overcommit is disabled.
+.TP
+\fB\-\-help\fR
+Print help.
+.TP
+\fB\-V\fR, \fB\-\-version\fR
+Display version information.
+.PD
+.SH FILES
+.TP
+/proc/meminfo
+memory information
+.PD
+.SH BUGS
+The value for the \fBshared\fR column is not available from kernels before
+2.6.32 and is displayed as zero.
+.TP
+Please send bug reports to
+.UR procps@freelists.org
+.UE
+.SH "SEE ALSO"
+.BR ps (1),
+.BR slabtop (1),
+.BR top "(1),
+.BR vmstat (8).
diff --git a/man/kill.1 b/man/kill.1
new file mode 100644
index 0000000..b74717c
--- /dev/null
+++ b/man/kill.1
@@ -0,0 +1,110 @@
+.\"
+.\" Copyright (c) 2002-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1998-2003 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.TH KILL 1 "2023-01-16" "procps-ng" "User Commands"
+.SH NAME
+kill \- send a signal to a process
+.SH SYNOPSIS
+.B kill
+[options] <pid> [...]
+.SH DESCRIPTION
+The default signal for kill is TERM. Use
+.B \-l
+or
+.B \-L
+to list available signals. Particularly useful signals include HUP,
+INT, KILL, STOP, CONT, and 0. Alternate signals may be specified in
+three ways:
+.BR \-9 ", " \-SIGKILL
+or
+.BR \-KILL .
+Negative PID values may be used to choose whole process groups; see
+the PGID column in ps command output. A PID of
+.B \-1
+is special; it indicates all processes except the kill process itself
+and init.
+.SH OPTIONS
+.TP
+.B <pid> [...]
+Send signal to every <pid> listed.
+.TP
+.B \-<signal>
+.TQ
+.B \-s <signal>
+.TQ
+.B \-\-signal <signal>
+Specify the
+.B signal
+to be sent. The signal can be specified by using name or number.
+The behavior of signals is explained in
+.BR signal (7)
+manual page.
+.TP
+\fB\-q\fR, \fB\-\-queue \fIvalue\fP
+Use
+.BR sigqueue (3)
+rather than
+.BR kill (2)
+and the value argument is used to specify
+an integer to be sent with the signal. If the receiving process has
+installed a handler for this signal using the SA_SIGINFO flag to
+.BR sigaction (2),
+then it can obtain this data via the si_value field of the
+siginfo_t structure.
+.TP
+\fB\-l\fR, \fB\-\-list\fR [\fIsignal\fR]
+List signal names. This option has optional argument, which
+will convert signal number to signal name, or other way round.
+.TP
+.BR \-L , \ \-\-table
+List signal names in a nice table.
+.TP
+.PD
+.SH NOTES
+Your shell (command line interpreter) may have a built-in kill
+command. You may need to run the command described here as /bin/kill
+to solve the conflict.
+.SH EXAMPLES
+.TP
+.B kill \-9 \-1
+Kill all processes you can kill.
+.TP
+.B kill \-l 11
+Translate number 11 into a signal name.
+.TP
+.B kill -L
+List the available signal choices in a nice table.
+.TP
+.B kill 123 543 2341 3453
+Send the default signal, SIGTERM, to all those processes.
+.SH "SEE ALSO"
+.BR kill (2),
+.BR killall (1),
+.BR nice (1),
+.BR pkill (1),
+.BR renice (1),
+.BR signal (7),
+.BR sigqueue (3),
+.BR skill (1)
+.SH STANDARDS
+This command meets appropriate standards. The
+.B \-L
+flag is Linux-specific.
+.SH AUTHOR
+.UR albert@users.sf.net
+Albert Cahalan
+.UE
+wrote kill in 1999 to replace a bsdutils one that was not standards
+compliant. The util-linux one might also work correctly.
+.SH "REPORTING BUGS"
+Please send bug reports to
+.UR procps@freelists.org
+.UE
diff --git a/man/pgrep.1 b/man/pgrep.1
new file mode 100644
index 0000000..41d9ac0
--- /dev/null
+++ b/man/pgrep.1
@@ -0,0 +1,334 @@
+.\"
+.\" Copyright (c) 2004-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2004 Albert Cahalan
+.\" Copyright (c) 2000 Kjetil Torgrim Homme
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.TH PGREP "1" "2023-01-16" "procps-ng" "User Commands"
+.SH NAME
+pgrep, pkill, pidwait \- look up, signal, or wait for processes based on name and other attributes
+.SH SYNOPSIS
+.B pgrep
+[options] pattern
+.br
+.B pkill
+[options] pattern
+.br
+.B pidwait
+[options] pattern
+.SH DESCRIPTION
+.B pgrep
+looks through the currently running processes and lists the process IDs which
+match the selection criteria to stdout. All the criteria have to match.
+For example,
+.IP
+$ pgrep \-u root sshd
+.PP
+will only list the processes called
+.B sshd
+AND owned by
+.BR root .
+On the other hand,
+.IP
+$ pgrep \-u root,daemon
+.PP
+will list the processes owned by
+.B root
+OR
+.BR daemon .
+.PP
+.B pkill
+will send the specified signal (by default
+.BR SIGTERM )
+to each process instead of listing them on stdout.
+.PP
+.B pidwait
+will wait for each process instead of listing them on stdout.
+.SH OPTIONS
+.TP
+\fB\-\fR\fIsignal\fP
+.TQ
+\fB\-\-signal\fR \fIsignal\fR
+Defines the signal to send to each matched process. Either the numeric or
+the symbolic signal name can be used. In
+.B pgrep
+or
+.B pidwait
+mode only the long option can be used and has no effect unless used in conjunction with
+\fB\-\-require\-handler\fR to filter to processes with a userspace signal
+handler present for a particular signal.
+
+.TP
+\fB\-c\fR, \fB\-\-count\fR
+Suppress normal output; instead print a count of matching processes. When
+count does not match anything, e.g. returns zero, the command will return
+non-zero value. Note that for pkill and pidwait, the count is the number of
+matching processes, not the processes that were successfully signaled or waited
+for.
+.TP
+\fB\-d\fR, \fB\-\-delimiter\fR \fIdelimiter\fP
+Sets the string used to delimit each process ID in the output (by default a
+newline).
+.RB ( pgrep
+only.)
+.TP
+\fB\-e\fR, \fB\-\-echo\fR
+Display name and PID of the process being killed.
+.RB ( pkill
+only.)
+.TP
+\fB\-f\fR, \fB\-\-full\fR
+The
+.I pattern
+is normally only matched against the process name. When
+.B \-f
+is set, the full command line is used.
+.TP
+\fB\-g\fR, \fB\-\-pgroup\fR \fIpgrp\fP,...
+Only match processes in the process group IDs listed. Process group 0 is
+translated into
+.BR pgrep 's,
+.BR pkill 's,
+or
+.BR pidwait 's
+own process group.
+.TP
+\fB\-G\fR, \fB\-\-group\fR \fIgid\fP,...
+Only match processes whose real group ID is listed. Either the numerical or
+symbolical value may be used.
+.TP
+\fB\-i\fR, \fB\-\-ignore\-case\fR
+Match processes case-insensitively.
+.TP
+\fB\-l\fR, \fB\-\-list\-name\fR
+List the process name as well as the process ID.
+.RB ( pgrep
+only.)
+.TP
+\fB\-a\fR, \fB\-\-list\-full\fR
+List the full command line as well as the process ID.
+.RB ( pgrep
+only.)
+.TP
+\fB\-n\fR, \fB\-\-newest\fR
+Select only the newest (most recently started) of the matching processes.
+.TP
+\fB\-o\fR, \fB\-\-oldest\fR
+Select only the oldest (least recently started) of the matching processes.
+.TP
+\fB\-O\fR, \fB\-\-older\fR \fIsecs\fP
+Select processes older than secs.
+.TP
+\fB\-P\fR, \fB\-\-parent\fR \fIppid\fP,...
+Only match processes whose parent process ID is listed.
+.TP
+\fB\-s\fR, \fB\-\-session\fR \fIsid\fP,...
+Only match processes whose process session ID is listed. Session ID 0
+is translated into
+.BR pgrep 's,
+.BR pkill 's,
+or
+.BR pidwait 's
+own session ID.
+.TP
+\fB\-t\fR, \fB\-\-terminal\fR \fIterm\fP,...
+Only match processes whose controlling terminal is listed. The terminal name
+should be specified without the "/dev/" prefix.
+.TP
+\fB\-u\fR, \fB\-\-euid\fR \fIeuid\fP,...
+Only match processes whose effective user ID is listed. Either the numerical
+or symbolical value may be used.
+.TP
+\fB\-U\fR, \fB\-\-uid\fR \fIuid\fP,...
+Only match processes whose real user ID is listed. Either the numerical or
+symbolical value may be used.
+.TP
+\fB\-v\fR, \fB\-\-inverse\fR\fR
+Negates the matching. This option is usually used in
+.BR pgrep 's
+or
+.BR pidwait 's
+context. In
+.BR pkill 's
+context the short option is disabled to avoid accidental usage of the option.
+.TP
+\fB\-w\fR, \fB\-\-lightweight\fR\fR
+Shows all thread ids instead of pids in
+.BR pgrep 's
+or
+.BR pidwait 's
+context. In
+.BR pkill 's
+context this option is disabled.
+.TP
+\fB\-x\fR, \fB\-\-exact\fR\fR
+Only match processes whose names (or command lines if \fB\-f\fR is specified)
+.B exactly
+match the
+.IR pattern .
+.TP
+\fB\-F\fR, \fB\-\-pidfile\fR \fIfile\fR
+Read \fIPID\fRs from \fIfile\fR. This option is more useful for
+.B pkill
+or
+.B pidwait
+than
+.BR pgrep .
+.TP
+\fB\-L\fR, \fB\-\-logpidfile\fR
+Fail if pidfile (see \fB\-F\fR) not locked.
+.TP
+\fB\-r\fR, \fB\-\-runstates\fR \fID,R,S,Z,\fP...
+Match only processes which match the process state.
+.TP
+\fB\-A\fR, \fB\-\-ignore-ancestors\fR\fR
+Ignore all ancestors of
+.BR pgrep ,
+.BR pkill ,
+or
+.BR pidwait .
+For example, this can be useful when elevating with
+.BR sudo
+or similar tools.
+.TP
+\fB\-H\fR, \fB\-\-require\-handler\fR\fR
+Only match processes with a userspace signal handler present for the signal to
+be sent.
+.TP
+\fB\-\-cgroup \fIname\fP,...
+Match on provided control group (cgroup) v2 name. See
+.BR cgroups (8)
+.TP
+\fB\-\-ns \fIpid\fP
+Match processes that belong to the same namespaces. Required to run as
+root to match processes from other users. See \fB\-\-nslist\fR for how to
+limit which namespaces to match.
+.TP
+\fB\-\-nslist \fIname\fP,...
+Match only the provided namespaces. Available namespaces:
+ipc, mnt, net, pid, user, uts.
+.TP
+\fB\-q\fR, \fB\-\-queue \fIvalue\fP
+Use
+.BR sigqueue (3)
+rather than
+.BR kill (2)
+and the value argument is used to specify
+an integer to be sent with the signal. If the receiving process has
+installed a handler for this signal using the SA_SIGINFO flag to
+.BR sigaction (2),
+then it can obtain this data via the si_value field of the
+siginfo_t structure.
+.TP
+\fB\-V\fR, \fB\-\-version\fR
+Display version information and exit.
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Display help and exit.
+.PD
+.SH OPERANDS
+.TP
+.I pattern
+Specifies an Extended Regular Expression for matching against the process
+names or command lines.
+.SH EXAMPLES
+Example 1: Find the process ID of the
+.B named
+daemon:
+.IP
+$ pgrep \-u root named
+.PP
+Example 2: Make
+.B syslog
+reread its configuration file:
+.IP
+$ pkill \-HUP syslogd
+.PP
+Example 3: Give detailed information on all
+.B xterm
+processes:
+.IP
+$ ps \-fp $(pgrep \-d, \-x xterm)
+.PP
+Example 4: Make all
+.B chrome
+processes run nicer:
+.IP
+$ renice +4 $(pgrep chrome)
+.SH "EXIT STATUS"
+.PD 0
+.TP
+0
+One or more processes matched the criteria. For
+.B pkill
+and
+.BR pidwait ,
+one or more
+processes must also have been successfully signalled or waited for.
+.TP
+1
+No processes matched or none of them could be signalled.
+.TP
+2
+Syntax error in the command line.
+.TP
+3
+Fatal error: out of memory etc.
+.PD
+.SH NOTES
+The process name used for matching is limited to the 15 characters present in
+the output of /proc/\fIpid\fP/stat. Use the \fB\-f\fR option to match against the
+complete command line, /proc/\fIpid\fP/cmdline. Threads may not have the
+same process name as the parent process but will have the same command line.
+.PP
+The running
+.BR pgrep ,
+.BR pkill ,
+or
+.B pidwait
+process will never report itself as a
+match.
+.PP
+The
+.B \-O \-\-older
+option will silently fail if \fI/proc\fR is mounted with the \fIsubset=pid\fR option.
+.SH BUGS
+The options
+.B \-n
+and
+.B \-o
+and
+.B \-v
+can not be combined. Let
+me know if you need to do this.
+.PP
+Defunct processes are reported.
+.PP
+.B pidwait
+requires the
+.BR pidfd_open (2)
+system call which first appeared in Linux 5.3.
+.SH "SEE ALSO"
+.BR ps (1),
+.BR regex (7),
+.BR signal (7),
+.BR sigqueue (3),
+.BR killall (1),
+.BR skill (1),
+.BR kill (1),
+.BR kill (2),
+.BR cgroups (8).
+.SH AUTHOR
+.UR kjetilho@ifi.uio.no
+Kjetil Torgrim Homme
+.UE
+.SH "REPORTING BUGS"
+Please send bug reports to
+.UR procps@freelists.org
+.UE
diff --git a/man/pidof.1 b/man/pidof.1
new file mode 100644
index 0000000..479b4b5
--- /dev/null
+++ b/man/pidof.1
@@ -0,0 +1,82 @@
+.\"
+.\" Copyright (c) 2018-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2019-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013 Jaromir Capik <jcapik@redhat.com>
+.\" Copyright (c) 1998 Miquel van Smoorenburg
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.TH PIDOF 1 "2023-01-16" "" "User Commands"
+.SH NAME
+pidof \- find the process ID of a running program
+.SH SYNOPSIS
+.B pidof
+.RB [ \-s ]
+.RB [ \-c ]
+.RB [ \-q ]
+.RB [ \-w ]
+.RB [ \-x ]
+.RB [ \-o
+.IR omitpid[,omitpid...]... ]
+.RB [ \-t ]
+.RB [ \-S
+.IR separator ]
+.I program
+.IB [ program... ]
+.SH DESCRIPTION
+.B Pidof
+finds the process id's (pids) of the named programs. It prints those
+id's on the standard output.
+.SH OPTIONS
+.IP \fB\-s\fP
+Single shot - this instructs the program to only return one \fIpid\fP.
+.IP \fB\-c\fP
+Only return process ids that are running with the same root directory.
+This option is ignored for non-root users, as they will be unable to check
+the current root directory of processes they do not own.
+.IP \fB\-q\fP
+Quiet mode, suppress any output and only sets the exit status accordingly.
+.IP \fB\-w\fP
+Show also processes that do not have visible command line (e.g. kernel
+worker threads).
+.IP \fB\-x\fP
+Scripts too - this causes the program to also return process id's of
+shells running the named scripts.
+.IP "\fB-o\fP \fIomitpid\fP"
+Tells \fBpidof\fP to omit processes with that process id. The special
+pid \fB%PPID\fP can be used to name the parent process of the \fBpidof\fP
+program, in other words the calling shell or shell script.
+.IP \fB\-t\fP
+Shows all thread ids instead of pids.
+.IP "\fB-S\fP \fIseparator\fP"
+Use \fIseparator\fP as a separator put between pids. Used only when
+more than one pids are printed for the program.
+The \fB\-d\fR option is an alias for this option for sysvinit
+.B pidof
+compatibility.
+.SH "EXIT STATUS"
+.TP
+.B 0
+At least one program was found with the requested name.
+.TP
+.B 1
+No program was found with the requested name.
+
+.SH BUGS
+When using the \fB\-x\fP option,
+.B pidof
+only has a simple method for detecting scripts and will miss scripts that,
+for example, use env. This limitation is due to how the scripts look in
+the proc filesystem.
+
+.SH SEE ALSO
+.BR pgrep (1),
+.BR pkill (1)
+.SH AUTHOR
+.UR jcapik@redhat.com
+Jaromir Capik
+.UE
diff --git a/man/pidwait.1 b/man/pidwait.1
new file mode 100644
index 0000000..0e94b52
--- /dev/null
+++ b/man/pidwait.1
@@ -0,0 +1 @@
+.so man1/pgrep.1
diff --git a/man/pkill.1 b/man/pkill.1
new file mode 100644
index 0000000..0e94b52
--- /dev/null
+++ b/man/pkill.1
@@ -0,0 +1 @@
+.so man1/pgrep.1
diff --git a/man/pmap.1 b/man/pmap.1
new file mode 100644
index 0000000..6954158
--- /dev/null
+++ b/man/pmap.1
@@ -0,0 +1,100 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2013 Jaromir Capik <jcapik@redhat.com>
+.\" Copyright (c) 1998-2002 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\" (The preceding line is a note to broken versions of man to tell
+.\" them to pre-process this man page with tbl)
+.\" Man page for pmap.
+.\" Licensed under version 2 of the GNU General Public License.
+.\" Written by Albert Cahalan.
+.\"
+.TH PMAP "1" "2020-06-04" "procps-ng" "User Commands"
+.SH NAME
+pmap \- report memory map of a process
+.SH SYNOPSIS
+.B pmap
+[\fIoptions\fR] \fIpid\fR [...]
+.SH DESCRIPTION
+The
+.B pmap
+command reports the memory map of a process or processes.
+.SH OPTIONS
+.TP
+\fB\-x\fR, \fB\-\-extended\fR
+Show the extended format.
+.TP
+\fB\-d\fR, \fB\-\-device\fR
+Show the device format.
+.TP
+\fB\-q\fR, \fB\-\-quiet\fR
+Do not display some header or footer lines.
+.TP
+\fB\-A\fR, \fB\-\-range\fR \fIlow\fR,\fIhigh\fR
+Limit results to the given range to
+.I low
+and
+.I high
+address range. Notice that the low and high arguments are single string
+separated with comma.
+.TP
+\fB\-X\fR
+Show even more details than the \fB\-x\fR option. WARNING: format changes
+according to \fI/proc/PID/smaps\fR
+.TP
+\fB\-XX\fR
+Show everything the kernel provides
+.TP
+\fB\-p\fR, \fB\-\-show\-path\fR
+Show full path to files in the mapping column
+.TP
+\fB\-c\fR, \fB\-\-read\-rc\fR
+Read the default configuration
+.TP
+\fB\-C\fR, \fB\-\-read\-rc\-from\fR \fIfile\fR
+Read the configuration from \fIfile\fR
+.TP
+\fB\-n\fR, \fB\-\-create\-rc\fR
+Create new default configuration
+.TP
+\fB\-N\fR, \fB\-\-create\-rc\-to\fR \fIfile\fR
+Create new configuration to \fIfile\fR
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Display help text and exit.
+.TP
+\fB\-V\fR, \fB\-\-version\fR
+Display version information and exit.
+.SH "EXIT STATUS"
+.PP
+.RS
+.PD 0
+.TP
+.B 0
+Success.
+.TP
+.B 1
+Failure.
+.TP
+.B 42
+Did not find all processes asked for.
+.PD
+.RE
+.SH "SEE ALSO"
+.BR ps (1),
+.BR pgrep (1)
+.SH STANDARDS
+No standards apply, but
+.B pmap
+looks an awful lot like a SunOS command.
+.SH "REPORTING BUGS"
+Please send bug reports to
+.UR procps@freelists.org
+.UE
diff --git a/man/procps.3 b/man/procps.3
new file mode 100644
index 0000000..4e07a92
--- /dev/null
+++ b/man/procps.3
@@ -0,0 +1,185 @@
+.\"
+.\" Copyright (c) 2020-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2020-2023 Craig Small <csmall@dropbear.xyz>
+.\"
+.\" This manual is free software; you can redistribute it and/or
+.\" modify it under the terms of the GNU Lesser General Public
+.\" License as published by the Free Software Foundation; either
+.\" version 2.1 of the License, or (at your option) any later version.
+.\"
+.\"
+.TH PROCPS 3 "August 2022" "libproc2"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.nh
+.SH NAME
+procps \- API to access system level information in the /proc filesystem
+
+.SH SYNOPSIS
+Five distinct interfaces are represented in this synopsis and named after
+the files they access in the /proc pseudo filesystem:
+.BR diskstats ", " meminfo ", " slabinfo ", " stat " and " vmstat .
+
+.nf
+.RS +4
+#include <libproc2/\fBnamed_interface\fR.h>
+
+.RI "int\fB procps_new \fR (struct info **" info );
+.RI "int\fB procps_ref \fR (struct info *" info );
+.RI "int\fB procps_unref\fR (struct info **" info );
+
+.RB "struct result *" procps_get " ("
+.RI " struct info *" info ,
+.RI "[ const char *" name ", ] \fBdiskstats\fR api only"
+.RI " enum item " item );
+
+.RB "struct stack *" procps_select " ("
+.RI " struct info *" info ,
+.RI "[ const char *" name ", ] \fBdiskstats\fR api only"
+.RI " enum item *" items ,
+.RI " int " numitems );
+
+.RB "struct reaped *" procps_reap " ("
+.RI " struct info *" info ,
+.RI "[ enum reap_type " what ", ] \fBstat\fR api only"
+.RI " enum item *" items ,
+.RI " int " numitems );
+
+.RB "struct stack **" procps_sort " ("
+.RI " struct info *" info ,
+.RI " struct stack *" stacks [],
+.RI " int " numstacked ,
+.RI " enum item " sortitem ,
+.RI " enum sort_order " order );
+
+.fi
+
+The above functions and structures are generic but the specific
+\fBnamed_interface\fR would also be part of any identifiers.
+For example, `procps_new' would actually be `procps_\fBmeminfo\fR_new'
+and `info' would really be `\fBdiskstats\fR_info', etc.
+
+The same \fBnamed_interface\fR is used in each header file name with
+an appended `.h' suffix.
+
+Link with \fI\-lproc2\fP.
+
+.SH DESCRIPTION
+.SS Overview
+Central to these interfaces is a simple `result'
+structure reflecting an `item' plus its value (in a union
+with standard C language types as members).
+All `result' structures are automatically allocated and
+provided by the library.
+
+By specifying an array of `items', these structures can be
+organized as a `stack', potentially yielding many results
+with a single function call.
+Thus, a `stack' can be viewed as a variable length record
+whose content and order is determined solely by the user.
+
+As part of each interface there are two unique enumerators.
+The `noop' and `extra' items exist to hold user values.
+They are never set by the library, but the `extra'
+result will be zeroed with each library interaction.
+
+The \fBnamed_interface\fR header file will be an essential
+document during user program development.
+There you will find available items, their return type
+(the `result' struct member name) and the source for such values.
+Additional enumerators and structures are also documented there.
+
+.SS Usage
+The following would be a typical sequence of calls to
+these interfaces.
+
+.nf
+.RB "1. " procps_new()
+.RB "2. " procps_get() ", " procps_select() " or " procps_reap()
+.RB "3. " procps_unref()
+.fi
+
+The \fBget\fR function is used to retrieve a `result' structure for
+a single `item'.
+Alternatively, a \fBGET\fR macro is available when only the return
+value is of interest.
+
+The \fBselect\fR function can retrieve multiple `result' structures
+in a single `stack'.
+
+For unpredictable variable outcomes, the \fBdiskstats\fR, \fBslabinfo\fR
+and \fBstat\fR interfaces export a \fBreap\fR function.
+It is used to retrieve multiple `stacks' each containing multiple
+`result' structures.
+Optionally, a user may choose to \fBsort\fR those results.
+
+To exploit any `stack', and access individual `result' structures,
+a \fIrelative_enum\fR is required as shown in the \fBVAL\fR macro
+defined in the header file.
+Such values could be hard coded as: 0 through numitems-1.
+However, this need is typically satisfied by creating your own
+enumerators corresponding to the order of the `items' array.
+
+.SS Caveats
+The \fBnew\fR, \fBref\fR, \fBunref\fR, \fBget\fR and \fBselect\fR
+functions are available in all five interfaces.
+
+For the \fBnew\fR and \fBunref\fR functions, the address of an \fIinfo\fR
+struct pointer must be supplied.
+With \fBnew\fR it must have been initialized to NULL.
+With \fBunref\fR it will be reset to NULL if the reference count reaches zero.
+
+In the case of the \fBdiskstats\fR interface, a \fIname\fR parameter
+on the \fBget\fR and \fBselect\fR functions identifies a disk or
+partition name
+
+For the \fBstat\fR interface, a \fIwhat\fR parameter on the \fBreap\fR
+function identifies whether data for just CPUs or both CPUs and NUMA
+nodes is to be gathered.
+
+When using the \fBsort\fR function, the parameters \fIstacks\fR and
+\fInumstacked\fR would normally be those returned in the `reaped'
+structure.
+
+.SH RETURN VALUE
+.SS Functions Returning an `int'
+An error will be indicated by a negative number that
+is always the inverse of some well known errno.h value.
+
+Success is indicated by a zero return value.
+However, the \fBref\fR and \fBunref\fR functions return
+the current \fIinfo\fR structure reference count.
+
+.SS Functions Returning an `address'
+An error will be indicated by a NULL return pointer
+with the reason found in the formal errno value.
+
+Success is indicated by a pointer to the named structure.
+
+.SH DEBUGGING
+To aid in program development, there is a provision that can
+help ensure `result' member references agree with library
+expectations.
+It assumes that a supplied macro in the header file is
+used to access the `result' value.
+
+This feature can be activated through either of the following
+methods and any discrepancies will be written to \fBstderr\fR.
+
+.IP 1) 3
+Add CFLAGS='-DXTRA_PROCPS_DEBUG' to any other ./configure
+options employed.
+
+.IP 2) 3
+Add #include <procps/xtra-procps-debug.h> to any program
+\fIafter\fR the named interface includes.
+
+.PP
+This verification feature incurs substantial overhead.
+Therefore, it is important that it \fInot\fR be activated
+for a production/release build.
+
+.SH SEE ALSO
+.BR procps_misc (3),
+.BR procps_pids (3),
+.BR proc (5).
diff --git a/man/procps_misc.3 b/man/procps_misc.3
new file mode 100644
index 0000000..bc42aac
--- /dev/null
+++ b/man/procps_misc.3
@@ -0,0 +1,156 @@
+.\"
+.\" Copyright (c) 2020-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2020-2023 Craig Small <csmall@dropbear.xyz>
+.\"
+.\" This manual is free software; you can redistribute it and/or
+.\" modify it under the terms of the GNU Lesser General Public
+.\" License as published by the Free Software Foundation; either
+.\" version 2.1 of the License, or (at your option) any later version.
+.\"
+.\"
+.TH PROCPS_MISC 3 "August 2022" "libproc2"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.nh
+.SH NAME
+procps_misc \- API for miscellaneous information in the /proc filesystem
+.SH SYNOPSIS
+.nf
+.B #include <libproc2/misc.h>
+.PP
+Platform Particulars
+.RS 4
+.PP
+.RB "long " procps_cpu_count " (void);
+.RB "long " procps_hertz_get " (void);
+.RB "unsigned int " procps_pid_length " (void);
+.RB "int " procps_linux_version " (void);
+.RE
+.PP
+Runtime Particulars
+.PP
+.RS 4
+.RI "int \fB procps_loadavg\fR (double *" av1 ", double *" av5 ", double *" av15 ");"
+.RI "int \fB procps_uptime\fR (double *" uptime_secs ", double *" idle_secs ");"
+.RB "char *" procps_uptime_sprint " (void);"
+.RB "char *" procps_uptime_sprint_short " (void);"
+.RE
+.PP
+Namespace Particulars
+.PP
+.RS 4
+.RI "int \fB procps_ns_get_id\fR (const char *" name ");"
+.RI "const char\fB *procps_ns_get_name\fR (int " id ");"
+.RI "int \fB procps_ns_read_pid\fR (int " pid ", struct procps_ns *" nsp ");"
+.RE
+
+Link with \fI\-lproc2\fP.
+
+.SH DESCRIPTION
+.BR procps_cpu_count ()
+returns the number of CPUs that are currently online as
+.BI sysconf( _SC_NPROCESSORS_ONLY )
+or an assumed \fI1\fR.
+
+.BR procps_hertz_get ()
+returns the number of clock ticks per second as
+.BI sysconf( _SC_CLK_TCK )
+or an assumed \fI100\fR.
+Dividing tics by this value yields seconds.
+
+.BR procps_pid_length ()
+returns the maximum string length for a PID on the system. For example, if the largest
+possible PID value on was 123, then the length would be 3. If the file
+\fI/proc/sys/kernel/pid_max\fR is unreadable, the value is assumed to be \fI5\fR.
+
+.BR procps_linux_version ()
+returns the current Linux version as an encoded integer. On non-Linux systems that
+have an emulated proc filesystem this function returns the version of the
+Linux emulation instead.
+The version consists of three positive integers representing the major,
+minor and patch levels.
+The following macros are provided for encoding a given Linux version or
+separating out the components of the current version.
+.RS 4
+.PP
+LINUX_VERSION(\ major\ ,\ minor\ ,\ patch\ )
+.PP
+LINUX_VERSION_MAJOR(\ ver\ )
+.PP
+LINUX_VERSION_MINOR(\ ver\ )
+.PP
+LINUX_VERSION_PATCH(\ ver\ )
+.RE
+
+.BR procps_loadavg ()
+fetches the system load average and puts the 1, 5 and 15 minute averages into
+location(s) specified by any pointer which is not \fINULL\fR.
+
+.BR procps_uptime ()
+returns uptime and/or idle seconds into location(s) specified by any pointer
+which is not \fINULL\fR.
+The \fBsprint\fR varieties return a human-readable string in one of two forms.
+.RS 4
+.PP
+HH:MM:SS up HH:MM, # users, load average: 1, 5, 15 MM averages
+.PP
+up HH, MM
+.RE
+
+.BR procps_ns_get_id ()
+returns the integer id (enum namespace_type) of the namespace for the given namespace \fIname\fR.
+
+.BR procps_ns_get_name ()
+returns the name of the namespace for the given \fIid\fR (enum namespace_type).
+
+.BR procps_ns_read_pid ()
+returns the inodes for the namespaces of the given process in the
+procps_ns structure pointed to by \fInsp\fR.
+Those inodes will appear in the order proscribed by enum namespace_type.
+.PP
+.RS 4
+.nf
+enum namespace_type {
+ PROCPS_NS_CGROUP,
+ PROCPS_NS_IPC,
+ PROCPS_NS_MNT,
+ PROCPS_NS_NET,
+ PROCPS_NS_PID,
+ PROCPS_NS_TIME,
+ PROCPS_NS_USER,
+ PROCPS_NS_UTS
+};
+.fi
+.RE
+
+
+.SH RETURN VALUE
+.SS Functions Returning an `int' or `long'
+An error will be indicated by a negative number that
+is always the inverse of some well known errno.h value.
+
+.SS Functions Returning an `address'
+An error will be indicated by a NULL return pointer
+with the reason found in the formal errno value.
+
+.SH FILES
+.TP
+.I /proc/loadavg
+The raw values for load average.
+.TP
+.I /proc/sys/kernel/osrelease
+Contains the release version of the Linux kernel or proc filesystem.
+.TP
+.I /proc/sys/kernel/pid_max
+Contains the value at which PIDs wrap around, one greater than the maximum PID value.
+.TP
+.I /proc/uptime
+The raw values for uptime and idle time.
+.TP
+.IB /proc/<PID>/ns
+contains the set of namespaces for a particular \fBPID\fR.
+
+.SH SEE ALSO
+.BR procps (3),
+.BR procps_pids (3),
+.BR proc (5).
diff --git a/man/procps_pids.3 b/man/procps_pids.3
new file mode 100644
index 0000000..9ead691
--- /dev/null
+++ b/man/procps_pids.3
@@ -0,0 +1,210 @@
+.\"
+.\" Copyright (c) 2020-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2020-2023 Craig Small <csmall@dropbear.xyz>
+.\"
+.\" This manual is free software; you can redistribute it and/or
+.\" modify it under the terms of the GNU Lesser General Public
+.\" License as published by the Free Software Foundation; either
+.\" version 2.1 of the License, or (at your option) any later version.
+.\"
+.\"
+.TH PROCPS_PIDS 3 "August 2022" "libproc2"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.nh
+.SH NAME
+procps_pids \- API to access process information in the /proc filesystem
+
+.SH SYNOPSIS
+.nf
+#include <libproc2/pids.h>
+
+.RI "int\fB procps_pids_new \fR (struct pids_info **" info ", enum pids_item *" items ", int " numitems );
+.RI "int\fB procps_pids_ref \fR (struct pids_info *" info );
+.RI "int\fB procps_pids_unref\fR (struct pids_info **" info );
+
+
+.RB "struct pids_stack *" procps_pids_get " ("
+.RI " struct pids_info *" info ,
+.RI " enum pids_fetch_type " which );
+
+.RB "struct pids_fetch *" procps_pids_reap " ("
+.RI " struct pids_info *" info ,
+.RI " enum pids_fetch_type " which );
+
+.RB "struct pids_fetch *" procps_pids_select " ("
+.RI " struct pids_info *" info ,
+.RI " unsigned *" these ,
+.RI " int " numthese ,
+.RI " enum pids_select_type " which );
+
+.RB "struct pids_stack **" procps_pids_sort " ("
+.RI " struct pids_info *" info ,
+.RI " struct pids_stack *" stacks [],
+.RI " int " numstacked ,
+.RI " enum pids_item " sortitem ,
+.RI " enum pids_sort_order " order );
+
+.RB "int " procps_pids_reset " ("
+.RI " struct pids_info *" info ,
+.RI " enum pids_item *" newitems ,
+.RI " int " newnumitems );
+
+.RB "struct pids_stack *" fatal_proc_unmounted " ("
+.RI " struct pids_info *" info ,
+.RI " int " return_self );
+
+.fi
+
+Link with \fI\-lproc2\fP.
+
+.SH DESCRIPTION
+.SS Overview
+Central to this interface is a simple `result'
+structure reflecting an `item' plus its value (in a union
+with standard C language types as members).
+All `result' structures are automatically allocated and
+provided by the library.
+
+By specifying an array of `items', these structures can be
+organized as a `stack', potentially yielding many results
+with a single function call.
+Thus, a `stack' can be viewed as a variable length record
+whose content and order is determined solely by the user.
+
+As part of this interface there are two unique enumerators.
+The `noop' and `extra' items exist to hold user values.
+They are never set by the library, but the `extra'
+result will be zeroed with each library interaction.
+
+The pids.h file will be an essential document during
+user program development.
+There you will find available items, their return type
+(the `result' struct member name) and the source for such values.
+Additional enumerators and structures are also documented there.
+
+.SS Usage
+The following would be a typical sequence of calls to
+this interface.
+
+.nf
+.RB "1. " fatal_proc_unmounted()
+.RB "2. " procps_pids_new()
+.RB "3. " procps_pids_get() ", " procps_pids_reap() " or " procps_pids_select()
+.RB "4. " procps_pids_unref()
+.fi
+
+The \fBget\fR function is an iterator for successive PIDs/TIDs,
+returning those `items' previously identified via \fBnew\fR
+or \fBreset\fR.
+
+Two functions support unpredictable variable outcomes.
+The \fBreap\fR function gathers data for all processes while
+the \fBselect\fR function deals with specific PIDs or UIDs.
+Both can return multiple `stacks' each containing multiple `result'
+structures.
+Optionally, a user may choose to \fBsort\fR such results
+
+To exploit any `stack', and access individual `result' structures,
+a \fIrelative_enum\fR is required as shown in the \fBVAL\fR macro
+defined in the header file.
+Such values could be hard coded as: 0 through numitems-1.
+However, this need is typically satisfied by creating your own
+enumerators corresponding to the order of the `items' array.
+
+.SS Caveats
+The <pids> API differs from others in that those items
+of interest must be provided at \fBnew\fR or \fBreset\fR time,
+the latter being unique to this API.
+If either the \fIitems\fR or \fInumitems\fR parameter is zero at
+\fBnew\fR time, then \fBreset\fR becomes mandatory before
+issuing any other call.
+
+For the \fBnew\fR and \fBunref\fR functions, the address of an \fIinfo\fR
+struct pointer must be supplied.
+With \fBnew\fR it must have been initialized to NULL.
+With \fBunref\fR it will be reset to NULL if the reference count reaches zero.
+
+The \fBget\fR and \fBreap\fR functions use the \fIwhich\fR parameter
+to specify whether just tasks or both tasks and threads are to be fetched.
+
+The \fBselect\fR function requires an array of PIDs or UIDs as
+\fIthese\fR along with \fInumthese\fR to identify which processes
+are to be fetched.
+This function then operates as a subset of \fBreap\fR.
+
+When using the \fBsort\fR function, the parameters \fIstacks\fR and
+\fInumstacked\fR would normally be those returned in the `pids_fetch'
+structure.
+
+Lastly, a \fBfatal_proc_unmounted\fR function may be called before
+any other function to ensure that the /proc/ directory is mounted.
+As such, the \fIinfo\fR parameter would be NULL and the
+\fIreturn_self\fR parameter zero.
+If, however, some items are desired for the issuing program (a
+\fIreturn_self\fR other than zero) then the \fBnew\fR call must precede
+it to identify the \fIitems\fR and obtain the required \fIinfo\fR pointer.
+
+.SH RETURN VALUE
+.SS Functions Returning an `int'
+An error will be indicated by a negative number that
+is always the inverse of some well known errno.h value.
+
+Success is indicated by a zero return value.
+However, the \fBref\fR and \fBunref\fR functions return
+the current \fIinfo\fR structure reference count.
+
+.SS Functions Returning an `address'
+An error will be indicated by a NULL return pointer
+with the reason found in the formal errno value.
+
+Success is indicated by a pointer to the named structure.
+However, if one survives the \fBfatal_proc_unmounted\fR call,
+NULL is always returned when \fIreturn_self\fR is zero.
+
+.SH DEBUGGING
+To aid in program development, there are two procps-ng provisions
+that can be exploited.
+
+The first is a supplied file named `libproc.supp' which may be
+useful when developing a \fImulti-threaded\fR application.
+When used with the valgrind `--suppressions=' option, warnings
+associated with the procps library itself are avoided.
+
+Such warnings arise because the library handles heap based
+allocations in a thread-safe manner.
+A \fIsingle-threaded\fR application will not receive those warnings.
+
+The second provision can help ensure `result' member references
+agree with library expectations.
+It assumes that a supplied macro in the header file is
+used to access the `result' value.
+
+This feature can be activated through either of the following
+methods and any discrepancies will be written to \fBstderr\fR.
+
+.IP 1) 3
+Add CFLAGS='-DXTRA_PROCPS_DEBUG' to any other ./configure
+options your project may employ.
+
+.IP 2) 3
+Add #include <procps/xtra-procps-debug.h> to any program
+\fIafter\fR the #include <procps/pids.h>.
+
+.PP
+This verification feature incurs substantial overhead.
+Therefore, it is important that it \fInot\fR be activated
+for a production/release build.
+
+.SH ENVIRONMENT VARIABLE(S)
+The value set for the following is unimportant, just its presence.
+
+.IP LIBPROC_HIDE_KERNEL
+This will hide kernel threads which would otherwise be returned with a
+.BR procps_pids_get ", " procps_pids_select " or " procps_pids_reap
+call.
+
+.SH SEE ALSO
+.BR procps (3),
+.BR procps_misc (3),
+.BR proc (5).
diff --git a/man/ps.1 b/man/ps.1
new file mode 100644
index 0000000..0f4d946
--- /dev/null
+++ b/man/ps.1
@@ -0,0 +1,2124 @@
+.\"
+.\" Copyright (c) 2004-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1998-2003 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.TH PS "1" "2023-08-19" "procps-ng" "User Commands"
+.\"
+.\" Ragged-right text.
+.na
+.\" Disable hyphenation.
+.nh
+.\"
+.\" ColSize is used for the format spec table.
+.\" It's the left margin, minus the right, minus
+.\" the space needed for the 1st two columns.
+.\" Making it messy: inches, ens, points, scaled points...
+.\"
+.nr ColSize ((\n[.l] - \n[.i]) / 1n - 29)
+.\"
+.SH NAME
+ps \- report a snapshot of the current processes.
+.SH SYNOPSIS
+\fBps\fR [\,\fIoptions\/\fR]
+.SH DESCRIPTION
+.B ps
+displays information about a selection of the active processes. If you want
+a repetitive update of the selection and the displayed information, use
+.B top
+instead.
+.P
+This version of
+.B ps
+accepts several kinds of options:
+.IP
+.PD 0
+.IP 1 4
+UNIX options, which may be grouped and must be preceded by a dash.
+.IP 2 4
+BSD options, which may be grouped and must not be used with a dash.
+.IP 3 4
+GNU long options, which are preceded by two dashes.
+.PD
+.PP
+Options of different types may be freely mixed, but conflicts can appear.
+There are some synonymous options, which are functionally identical, due to
+the many standards and
+.B ps
+implementations that this
+.B ps
+is compatible with.
+.P
+By default,
+.B ps
+selects all processes with the same effective user ID (euid=EUID) as the
+current user and associated with the same terminal as the invoker. It
+displays the process ID (pid=PID), the terminal associated with the process
+(tname=TTY), the cumulated CPU time in [DD\-]hh:mm:ss format (time=TIME), and
+the executable name (ucmd=CMD). Output is unsorted by default.
+.P
+The use of BSD\-style options will add process state (stat=STAT) to the
+default display and show the command args (args=COMMAND) instead of the
+executable name. You can override this with the
+.B PS_FORMAT
+environment variable. The use of BSD\-style options will also change the
+process selection to include processes on other terminals (TTYs) that are
+owned by you; alternately, this may be described as setting the selection to
+be the set of all processes filtered to exclude processes owned by other
+users or not on a terminal. These effects are not considered when options
+are described as being "identical" below, so
+.B \-M
+will be considered identical to \fBZ\fR and so on.
+.P
+Except as described below, process selection options are additive. The
+default selection is discarded, and then the selected processes are added to
+the set of processes to be displayed. A process will thus be shown if it
+meets any of the given selection criteria.
+.SH "EXAMPLES"
+.TP 3
+To see every process on the system using standard syntax:
+.B ps\ \-e
+.br
+.B ps\ \-ef
+.br
+.B ps\ \-eF
+.br
+.B ps\ \-ely
+.TP
+To see every process on the system using BSD syntax:
+.B ps\ ax
+.br
+.B ps\ axu
+.TP
+To print a process tree:
+.B ps\ \-ejH
+.br
+.B ps\ axjf
+.TP
+To get info about threads:
+.B ps\ \-eLf
+.br
+.B ps\ axms
+.TP
+To get security info:
+.B ps\ \-eo euser,ruser,suser,fuser,f,comm,label
+.br
+.B ps\ axZ
+.br
+.B ps\ \-eM
+.TP
+To see every process running as root (real\ &\ effective\ ID) in user format:
+.B ps\ \-U\ root\ \-u\ root\ u
+.TP
+To see every process with a user\-defined format:
+.B ps\ \-eo\ pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
+.br
+.B ps\ axo\ stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
+.br
+.B ps\ \-Ao\ pid,tt,user,fname,tmout,f,wchan
+.TP
+Print only the process IDs of syslogd:
+.B ps\ \-C\ syslogd\ \-o\ pid=
+.TP
+Print only the name of PID 42:
+.B ps\ \-q\ 42\ \-o\ comm=
+.SH "SIMPLE PROCESS SELECTION"
+.TP
+.B a
+Lift the BSD\-style "only yourself" restriction, which is imposed upon the
+set of all processes when some BSD\-style (without "\-") options are used or
+when the
+.B ps
+personality setting is BSD\-like. The set of processes selected in this
+manner is in addition to the set of processes selected by other means. An
+alternate description is that this option causes
+.B ps
+to list all processes with a terminal (tty), or to list all processes when
+used together with the
+.B x
+option.
+.TP
+.B \-A
+Select all processes. Identical to
+.BR \-e .
+.TP
+.B \-a
+Select all processes except both session leaders (see
+.IR getsid (2))
+and processes not associated with a terminal.
+.TP
+.B \-d
+Select all processes except session leaders.
+.TP
+.B \-\-deselect
+Select all processes except those that fulfill the specified conditions
+(negates the selection). Identical to
+.BR \-N .
+.TP
+.B \-e
+Select all processes. Identical to
+.BR \-A .
+.\" Current "g" behavior: add in the session leaders, which would
+.\" be excluded in the sunos4 personality. Supposed "g" behavior:
+.\" add in the group leaders -- at least according to the SunOS 4
+.\" man page on the FreeBSD site. Uh oh. I think I had tested SunOS
+.\" though, so maybe the code is correct.
+.TP
+.B g
+Really all, even session leaders. This flag is obsolete and may be
+discontinued in a future release. It is normally implied by the
+.B a
+flag, and is only useful when operating in the sunos4 personality.
+.TP
+.B \-N
+Select all processes except those that fulfill the specified conditions
+(negates the selection). Identical to
+.BR \-\-deselect .
+.TP
+.B T
+Select all processes associated with this terminal. Identical to the
+.B t
+option without any argument.
+.TP
+.B r
+Restrict the selection to only running processes.
+.TP
+.B x
+Lift the BSD\-style "must have a tty" restriction, which is imposed upon the
+set of all processes when some BSD\-style (without "\-") options are used or
+when the
+.B ps
+personality setting is BSD\-like. The set of processes selected in this
+manner is in addition to the set of processes selected by other means. An
+alternate description is that this option causes
+.B ps
+to list all processes owned by you (same EUID as
+.BR ps ),
+or to list all processes when used together with the
+.B a
+option.
+.PD
+.SH "PROCESS SELECTION BY LIST"
+These options accept a single argument in the form of a blank\-separated or
+comma\-separated list. They can be used multiple times. For example:
+.B ps\ \-p\ "1\ 2"\ \-p\ 3,4
+.TP
+.I 123
+Identical to
+.B \-\-pid\ \fI123\fR.
+.TP
+.RI \+ 123
+Identical to
+.B \-\-sid\ \fI123\fR.
+.TP
+.RI \- 123
+Select by process group ID (PGID).
+.TP
+.BI \-C \ cmdlist
+Select by command name. This selects the processes whose executable name is
+given in
+.IR cmdlist .
+NOTE: The command name is not the same as the command line. Previous versions
+of procps and the kernel truncated this command name to 15 characters. This
+limitation is no longer present in both. If you depended on matching only
+15 characters, you may no longer get a match.
+.TP
+.BI \-G \ grplist
+Select by real group ID (RGID) or name. This selects the processes whose
+real group name or ID is in the
+.I grplist
+list. The real group ID identifies the group of the user who created the
+process, see
+.IR getgid (2).
+.TP
+.BI \-g \ grplist
+Select by session OR by effective group name. Selection by session is
+specified by many standards, but selection by effective group is the logical
+behavior that several other operating systems use. This
+.B ps
+will select by session when the list is completely numeric (as sessions
+are). Group ID numbers will work only when some group names are also
+specified. See the
+.B \-s
+and
+.B \-\-group
+options.
+.TP
+.BI \-\-Group \ grplist
+Select by real group ID (RGID) or name. Identical to
+.BR \-G .
+.TP
+.BI \-\-group \ grplist
+Select by effective group ID (EGID) or name. This selects the processes
+whose effective group name or ID is in
+.IR grplist .
+The effective group ID describes the group whose file access permissions are
+used by the process (see
+.IR getegid (2)).
+The
+.B \-g
+option is often an alternative to
+.BR \-\-group .
+.TP
+.BI p \ pidlist
+Select by process ID. Identical to
+.B \-p
+and
+.BR \-\-pid .
+.TP
+.BI \-p \ pidlist
+Select by PID. This selects the processes whose process ID numbers appear in
+.IR pidlist .
+Identical to
+.B p
+and
+.BR \-\-pid .
+.TP
+.BI \-\-pid \ pidlist
+Select by process\ ID. Identical to
+.B \-p
+and
+.BR p .
+.TP
+.BI \-\-ppid \ pidlist
+Select by parent process ID. This selects the processes with a parent
+process\ ID in
+.IR pidlist .
+That is, it selects processes that are children of those listed in
+.IR pidlist .
+.TP
+.BI q \ pidlist
+Select by process ID (quick mode). Identical to
+.B \-q
+and
+.BR \-\-quick\-pid .
+.TP
+.BI \-q \ pidlist
+Select by PID (quick mode).
+This selects the processes whose process ID numbers appear in
+.IR pidlist .
+With this option \fBps\fR reads the necessary info only
+for the pids listed in the \fIpidlist\fR and doesn't apply
+additional filtering rules. The order of pids is unsorted
+and preserved. No additional selection options, sorting
+and forest type listings are allowed in this mode.
+Identical to
+.B q
+and
+.BR \-\-quick\-pid .
+.TP
+.BI \-\-quick\-pid \ pidlist
+Select by process\ ID (quick mode). Identical to
+.B \-q
+and
+.BR q .
+.TP
+.BI \-s \ sesslist
+Select by session ID. This selects the processes with a session ID specified
+in
+.IR sesslist .
+.TP
+.BI \-\-sid \ sesslist
+Select by session\ ID. Identical to
+.BR \-s .
+.TP
+.BI t \ ttylist
+Select by tty. Nearly identical to
+.B \-t
+and
+.BR \-\-tty ,
+but can also
+be used with an empty
+.I ttylist
+to indicate the terminal associated with
+.BR ps .
+Using the
+.B T
+option is considered cleaner than using
+.B t
+with an empty
+.IR ttylist .
+.TP
+.BI \-t \ ttylist
+Select by tty. This selects the processes associated with the terminals
+given in
+.IR ttylist .
+Terminals (ttys, or screens for text output) can be specified in several
+forms: /dev/ttyS1, ttyS1, S1. A plain "\-" may be used to select processes
+not attached to any terminal.
+.TP
+.BI \-\-tty \ ttylist
+Select by terminal. Identical to
+.B \-t
+and
+.BR t .
+.TP
+.BI U \ userlist
+Select by effective user ID (EUID) or name. This selects the processes whose
+effective user name or ID is in
+.IR userlist .
+The effective user ID describes the user whose file access permissions are
+used by the process (see
+.IR geteuid (2)).
+Identical to
+.B \-u
+and
+.BR \-\-user .
+.TP
+.BI \-U \ userlist
+Select by real user ID (RUID) or name. It selects the processes whose real
+user name or ID is in the
+.I userlist
+list. The real user ID identifies the user who created the process, see
+.IR getuid (2).
+.TP
+.BI \-u \ userlist
+Select by effective user ID (EUID) or name. This selects the processes whose
+effective user name or ID is in
+.IR userlist .
+
+The effective user ID describes the user whose file
+access permissions are used by the process (see
+.IR geteuid (2)).
+Identical to
+.B U
+and
+.BR \-\-user .
+.TP
+.BI \-\-User \ userlist
+Select by real user ID (RUID) or name. Identical to
+.BR \-U .
+.TP
+.BI \-\-user \ userlist
+Select by effective user ID (EUID) or name. Identical to
+.B \-u
+and
+.BR U .
+.PD
+.SH "OUTPUT FORMAT CONTROL"
+These options are used to choose the information displayed by
+.BR ps .
+The output may differ by personality.
+.TP
+.B \-c
+Show different scheduler information for the
+.B \-l
+option.
+.TP
+.B \-\-context
+Display security context format (for SELinux).
+.TP
+.B \-f
+Do full\-format listing. This option can be combined with many other
+UNIX\-style options to add additional columns. It also causes the command
+arguments to be printed. When used with
+.BR \-L ,
+the NLWP (number of threads) and LWP (thread ID) columns will be added. See
+the
+.B c
+option, the format keyword
+.BR args ,
+and the format keyword
+.BR comm .
+.TP
+.B \-F
+Extra full format. See the
+.B \-f
+option, which
+.B \-F
+implies.
+.TP
+.BI \-\-format \ format
+user\-defined format. Identical to
+.B \-o
+and
+.BR o .
+.TP
+.B j
+BSD job control format.
+.TP
+.B \-j
+Jobs format.
+.TP
+.B l
+Display BSD long format.
+.TP
+.B \-l
+Long format. The
+.B \-y
+option is often useful with this.
+.TP
+.B \-M
+Add a column of security data. Identical to
+.B Z
+(for SELinux).
+.TP
+.BI O \ format
+is preloaded
+.B o
+(overloaded). The BSD
+.B O
+option can act like
+.B \-O
+(user\-defined output format with some common fields predefined) or can be
+used to specify sort order. Heuristics are used to determine the behavior of
+this option. To ensure that the desired behavior is obtained (sorting or
+formatting), specify the option in some other way (e.g. with
+.B \-O
+or
+.BR \-\-sort ).
+When used as a formatting option, it is identical to
+.BR \-O ,
+with the BSD personality.
+.TP
+.BI \-O \ format
+Like
+.BR \-o ,
+but preloaded with some default columns. Identical to
+.BI \-o\ pid,\: format ,\:state,\:tname,\:time,\:command
+or
+.BI \-o\ pid,\: format ,\:tname,\:time,\:cmd \fR,
+see
+.B \-o
+below.
+.TP
+.BI o \ format
+Specify user\-defined format. Identical to
+.B \-o
+and
+.BR \-\-format .
+.TP
+.BI \-o \ format
+User\-defined format.
+.I format
+is a single argument in the form of a blank\-separated or comma\-separated
+list, which offers a way to specify individual output columns. The
+recognized keywords are described in the
+.B STANDARD FORMAT SPECIFIERS
+section below. Headers may be renamed
+.RB ( "ps \-o pid,\:ruser=RealUser \-o comm=Command" )
+as desired.
+If all column headers are empty
+.RB ( "ps \-o pid= \-o comm=" )
+then the header line will not be output. Column width will increase as
+needed for wide headers; this may be used to widen up columns such as WCHAN
+.RB ( "ps \-o pid,\:wchan=\:WIDE\-\:WCHAN\-\:COLUMN \-o comm" ).
+Explicit width
+control
+.RB ( "ps opid,\:wchan:42,\:cmd" )
+is offered too. The behavior of
+.B ps \-o pid=X,\:comm=Y
+varies with personality; output may be one column named "X,\:comm=Y" or two
+columns named "X" and "Y". Use multiple
+.B \-o
+options when in doubt. Use the
+.B PS_FORMAT
+environment variable to specify a default as desired; DefSysV and DefBSD are
+macros that may be used to choose the default UNIX or BSD columns.
+.TP
+.B \-P
+Add a column showing \fBpsr\fR.
+.TP
+.B s
+Display signal format.
+.TP
+.B u
+Display user\-oriented format.
+.TP
+.B v
+Display virtual memory format.
+.TP
+.B X
+Register format.
+.TP
+.B \-y
+Do not show flags; show rss in place of addr. This option can only be used
+with
+.BR \-l .
+.TP
+.B Z
+Add a column of security data. Identical to
+.B \-M
+(for SELinux).
+.PD
+.SH "OUTPUT MODIFIERS"
+.TP
+.B c
+Show the true command name. This is derived from the name of the executable
+file, rather than from the argv value. Command arguments and any
+modifications to them are thus not shown. This option effectively turns the
+.B args
+format keyword into the
+.B comm
+format keyword; it is useful with the
+.B \-f
+format option and with the various BSD\-style format options, which all
+normally display the command arguments. See the
+.B \-f
+option, the format
+keyword
+.BR args ,
+and the format keyword
+.BR comm .
+.TP
+.BI \-\-cols \ n
+Set screen width.
+.TP
+.BI \-\-columns \ n
+Set screen width.
+.TP
+.B \-\-cumulative
+Include some dead child process data (as a sum with the parent).
+.TP
+.TP
+.BI \-D \ format
+Set the date format of the \fBlstart\fR field to \fIformat\fR. This format is parsed
+by
+.BR strftime (3)
+and should be a maximum of 24 characters to not mis-align columns.
+.TP
+.BI \-\-date-format \ format
+Identical to \fB\-D\fR.
+.TP
+.B e
+Show the environment after the command.
+.TP
+.B f
+ASCII art process hierarchy (forest).
+.TP
+.B \-\-forest
+ASCII art process tree.
+.TP
+.B h
+No header. (or, one header per screen in the BSD personality). The
+.B h
+option is problematic. Standard BSD
+.B ps
+uses this option to print a header on each page of output, but older Linux
+.B ps
+uses this option to totally disable the header. This version of
+.B ps
+follows the Linux usage of not printing the header unless the BSD personality
+has been selected, in which case it prints a header on each page of output.
+Regardless of the current personality, you can use the long options
+.B \-\-headers
+and
+.B \-\-no\-headers
+to enable printing headers each page or disable headers entirely,
+respectively.
+.TP
+.B \-H
+Show process hierarchy (forest).
+.TP
+.B \-\-headers
+Repeat header lines, one per page of output.
+.TP
+.BI k \ spec
+Specify sorting order. Sorting syntax is
+.RB [ + | \- ]\c
+.I key\/\c
+.RB [,[ + | \- ]\c
+.IR key [,...]].
+Choose a multi\-letter key from the
+.B STANDARD FORMAT SPECIFIERS
+section. The "+" is optional since default direction is increasing
+numerical or lexicographic order. Identical to
+.BR \-\-sort .
+.RS 8
+.IP
+Examples:
+.br
+.B ps jaxkuid,\-ppid,+pid
+.br
+.B ps axk comm o comm,args
+.br
+.B ps kstart_time \-ef
+.RE
+.TP
+.BI \-\-lines \ n
+Set screen height.
+.TP
+.B n
+Numeric output for WCHAN and USER (including all types of UID and GID).
+.TP
+.B \-\-no\-headers
+Print no header line at all.
+.B \-\-no\-heading
+is an alias for this option.
+.TP
+.BI O \ order
+Sorting order (overloaded).
+The BSD
+.B O
+option can act like
+.B \-O
+(user\-defined output format with some common fields predefined) or can be
+used to specify sort order. Heuristics are used to determine the behavior of
+this option. To ensure that the desired behavior is obtained (sorting or
+formatting), specify the option in some other way (e.g. with
+.B \-O
+or
+.BR \-\-sort ).
+.IP
+For sorting, obsolete BSD
+.B O
+option syntax is
+.BR O [ + | \- ]\c
+.IR k1 [,[\c
+.BR + | \- ]\c
+.IR k2 [,...]].
+It orders the processes listing according to the multilevel sort specified by
+the sequence of one\-letter short keys
+.IR k1 , k2 ", ...\&"
+described in the
+.B OBSOLETE SORT KEYS
+section below. The\ "+" is currently optional, merely re\-iterating the
+default direction on a key, but may help to distinguish an
+.B O
+sort from an
+.B O
+format. The "\-" reverses direction only on the key it precedes.
+.TP
+.BI \-\-rows \ n
+Set screen height.
+.TP
+.B S
+Sum up some information, such as CPU usage, from dead child processes into
+their parent. This is useful for examining a system where a parent process
+repeatedly forks off short\-lived children to do work.
+.TP
+.BI \-\-sort \ spec
+Specify sorting order. Sorting syntax is
+.RI [ + | \- ]\c
+.IR key [,[\c
+.BR + | \- ]\c
+.IR key [,...]].
+Choose a multi\-letter key from the
+.B STANDARD FORMAT SPECIFIERS
+section. The "+" is optional since default direction is increasing numerical
+or lexicographic order. Identical to
+.BR k .
+For example:
+.B ps jax \-\-sort=\:uid,\:\-ppid,\:+pid
+.TP
+.B \-\-signames
+Show signal masks using abbreviated signal names and expands the collumn.
+If the column width cannot show all signals, the column will end with a plus "\fI+\fR".
+Columns with only a hyphen have no signals.
+.TP
+.B w
+Wide output. Use this option twice for unlimited width.
+.TP
+.B \-w
+Wide output. Use this option twice for unlimited width.
+.TP
+.BI \-\-width \ n
+Set screen width.
+.PD
+.SH "THREAD DISPLAY"
+.TP
+.B H
+Show threads as if they were processes.
+.TP
+.B \-L
+Show threads, possibly with LWP and NLWP columns.
+.TP
+.B m
+Show threads after processes.
+.TP
+.B \-m
+Show threads after processes.
+.TP
+.B \-T
+Show threads, possibly with SPID column.
+.SH "OTHER INFORMATION"
+.TP
+.BI \-\-help \ section
+Print a help message. The \fIsection\fR argument can be one of
+.IR s imple,
+.IR l ist,
+.IR o utput,
+.IR t hreads,
+.IR m "isc, or"
+.IR a ll.
+The argument can be shortened to one of the underlined letters as in:
+s\^|\^l\^|\^o\^|\^t\^|\^m\^|\^a.
+.TP
+.B \-\-info
+Print debugging info.
+.TP
+.B L
+List all format specifiers.
+.TP
+.B V
+Print the procps-ng version.
+.TP
+.B \-V
+Print the procps-ng version.
+.TP
+.B \-\-version
+Print the procps-ng version.
+.SH NOTES
+This
+.B ps
+works by reading the virtual files in /proc. This
+.B ps
+does not need to be setuid kmem or have any privileges to run. Do not give
+this
+.B ps
+any special permissions.
+.PP
+CPU usage is currently expressed as the percentage of time spent running
+during the entire lifetime of a process. This is not ideal, and\ it does not
+conform to the standards that
+.B ps
+otherwise conforms to. CPU usage is unlikely to add up to exactly 100%.
+.PP
+The SIZE and RSS fields don't count some parts of a process including the
+page tables, kernel stack, struct thread_info, and struct task_struct. This
+is usually at least 20\ KiB of memory that is always resident. SIZE is the
+virtual size of the process (code+\:data+\:stack).
+.PP
+Processes marked <defunct> are dead processes (so\-called "zombies") that
+remain because their parent has not destroyed them properly. These processes
+will be destroyed by
+.IR init (8)
+if the parent process exits.
+.PP
+If the length of the username is greater than the width of the display
+column, the username will be truncated. See the \fB\-o\fR and \fB\-O\fR
+formatting options to customize length.
+.PP
+Commands options such as
+.B ps \-aux
+are not recommended as it is a confusion of two different standards.
+According to the POSIX and UNIX standards, the above command asks to
+display all processes with a TTY (generally the commands users are
+running) plus all processes owned by a user named \fIx\fR. If that user
+doesn't exist, then
+.B ps
+will assume you really meant
+.RB """" ps
+.IR aux """."
+.SH "PROCESS FLAGS"
+The sum of these values is displayed in the "F" column,
+which is provided by the
+.B flags
+output specifier:
+.PP
+.RS 8
+.PD 0
+.TP 5
+1
+forked but didn't exec
+.TP
+4
+used super\-user privileges
+.PD
+.RE
+.SH "PROCESS STATE CODES"
+Here are the different values that the
+.BR s ", " stat " and " state
+output specifiers (header "STAT" or "S") will display to describe the state
+of a process:
+.PP
+.RS 8
+.PD 0
+.TP 5
+D
+uninterruptible sleep (usually IO)
+.TP
+I
+Idle kernel thread
+.TP
+R
+running or runnable (on run queue)
+.TP
+S
+interruptible sleep (waiting for an event to complete)
+.TP
+T
+stopped by job control signal
+.TP
+t
+stopped by debugger during the tracing
+.TP
+W
+paging (not valid since the 2.6.xx kernel)
+.TP
+X
+dead (should never be seen)
+.TP
+Z
+defunct ("zombie") process, terminated but not reaped by its parent
+.PD
+.RE
+.PP
+For BSD formats and when the
+.B stat
+keyword is used, additional characters may be displayed:
+.PP
+.RS 8
+.PD 0
+.TP 5
+<
+high\-priority (not nice to other users)
+.TP
+N
+low\-priority (nice to other users)
+.TP
+L
+has pages locked into memory (for real\-time and custom IO)
+.TP
+s
+is a session leader
+.TP
+l
+is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)
+.TP
++
+is in the foreground process group
+.PD
+.RE
+.SH "OBSOLETE SORT KEYS"
+These keys are used by the BSD
+.B O
+option (when it is used for sorting). The GNU
+.B \-\-sort
+option doesn't use these keys, but the specifiers described below in the
+.B STANDARD FORMAT SPECIFIERS
+section. Note that the values used in sorting are the internal values
+.B ps
+uses and not the "cooked" values used in some of the output format fields
+(e.g. sorting on tty will sort into device number, not according to the
+terminal name displayed). Pipe
+.B ps
+output into the
+.BR sort (1)
+command if you want to sort the cooked values.
+.TS
+l l lw(3i).
+\fBKEY LONG DESCRIPTION\fR
+c cmd simple name of executable
+C pcpu cpu utilization
+f flags flags as in long format F field
+g pgrp process group ID
+G tpgid controlling tty process group ID
+j cutime cumulative user time
+J cstime cumulative system time
+k utime user time
+m min_flt number of minor page faults
+M maj_flt number of major page faults
+n cmin_flt cumulative minor page faults
+N cmaj_flt cumulative major page faults
+o session session ID
+p pid process ID
+P ppid parent process ID
+r rss resident set size
+R resident resident pages
+s size memory size in kilobytes
+S share amount of shared pages
+t tty the device number of the controlling tty
+T start_time time process was started
+U uid user ID number
+u user user name
+v vsize total VM size in KiB
+y priority kernel scheduling priority
+.\"K stime system time (conflict, system vs. start time)
+.TE
+.SH "AIX FORMAT DESCRIPTORS"
+This
+.B ps
+supports AIX format descriptors, which work somewhat like the
+formatting codes of
+.IR printf (1)
+and
+.IR printf (3).
+For example, the normal default output can be produced with this:
+.B ps \-eo """%p %y %x %c""\fR."
+The
+.B NORMAL
+codes are described in the next section.
+.TS
+l l l.
+\fBCODE NORMAL HEADER\fR
+%C pcpu %CPU
+%G group GROUP
+%P ppid PPID
+%U user USER
+%a args COMMAND
+%c comm COMMAND
+%g rgroup RGROUP
+%n nice NI
+%p pid PID
+%r pgid PGID
+%t etime ELAPSED
+%u ruser RUSER
+%x time TIME
+%y tty TTY
+%z vsz VSZ
+.TE
+.SH "STANDARD FORMAT SPECIFIERS"
+Here are the different keywords that may be used to control the output
+format (e.g., with option
+.BR \-o )
+or to sort the selected processes with the GNU\-style
+.B \-\-sort
+option.
+.PP
+For example:
+.B ps \-eo pid,\:user,\:args \-\-sort user
+.PP
+This version of
+.B ps
+tries to recognize most of the keywords used in other implementations of
+.BR ps .
+.PP
+The following user\-defined format specifiers may contain
+spaces:
+.BR args ", " cmd ", " comm ", " command ", " fname ", " ucmd ", " ucomm ,
+.BR lstart ", " bsdstart ", " start .
+.PP
+Some keywords may not be available for sorting.
+
+.\" #######################################################################
+.\" lB1 lB1 lB1 lB1 s s s
+.\" lB1 l1 l1 l1 s s s.
+.\"
+.\" lB1 lB1 lBw(5.5i)
+.\" lB1 l1 l.
+.\"
+.TS
+expand;
+l1B l1B lBw(\n[ColSize]n)
+l1B l1 l.
+CODE HEADER DESCRIPTION
+
+%cpu %CPU T{
+cpu utilization of the process in "##.#" format. Currently, it is the CPU
+time used divided by the time the process has been running (cputime/realtime
+ratio), expressed as a percentage. It will not add up to 100% unless you are
+lucky. (alias
+.BR pcpu ).
+T}
+
+%mem %MEM T{
+ratio of the process's resident set size to the physical memory on the
+machine, expressed as a percentage. (alias
+.BR pmem ).
+T}
+
+ag_id AGID T{
+The autogroup identifier associated with a process which operates in conjunction
+with the CFS scheduler to improve interactive desktop performance.
+T}
+
+ag_nice AGNI T{
+The autogroup nice value which affects scheduling of all processes in that group.
+T}
+
+args COMMAND T{
+command with all its arguments as a string. Modifications to the arguments
+may be shown. The output in this column may contain spaces. A process
+marked <defunct> is partly dead, waiting to be fully destroyed by its parent.
+Sometimes the process args will be unavailable; when this happens,
+.B ps
+will instead print the executable name in brackets. (alias
+.BR cmd ", " command ).
+See also the
+.B comm
+format keyword, the
+.B \-f
+option, and the
+.B c
+option.
+.br
+When specified last, this column will extend to the edge of the display. If
+.B ps
+can not determine display width, as when output is redirected (piped) into a
+file or another command, the output width is undefined (it may be 80,
+unlimited, determined by the
+.B TERM
+variable, and so on). The
+.B COLUMNS
+environment variable or
+.B \-\-cols
+option may be used to exactly determine the width in this case. The
+.B w
+or
+.B \-w
+option may be also be used to adjust width.
+T}
+
+blocked BLOCKED T{
+mask of the blocked signals, see
+.IR signal (7).
+According to the width of the field, a 32 or 64\-bit mask in hexadecimal
+format is displayed, unless the \fB\-\-signames\fR option is used. (alias
+.BR sig_block ", " sigmask ).
+T}
+
+bsdstart START T{
+time the command started. If the process was started less than 24 hours ago,
+the output format is "\ HH:MM", else it is " Mmm:SS" (where Mmm is the three
+letters of the month). See also
+.BR lstart , \ start , \ start_time ", and" \ stime .
+T}
+
+bsdtime TIME T{
+accumulated cpu time, user + system. The display format is usually
+"MMM:SS", but can be shifted to the right if the process used more than 999
+minutes of cpu time.
+T}
+
+c C T{
+processor utilization. Currently, this is the integer value of the percent
+usage over the lifetime of the process. (see
+.BR %cpu ).
+T}
+
+caught CAUGHT T{
+mask of the caught signals, see
+.IR signal (7).
+According to the width of the field, a 32 or 64 bits mask in hexadecimal
+format is displayed, unless the \fB\-\-signames\fR option is used. (alias
+.BR sig_catch ", " sigcatch ).
+T}
+
+cgname CGNAME T{
+display name of control groups to which the process belongs.
+T}
+
+cgroup CGROUP T{
+display control groups to which the process belongs.
+T}
+
+cgroupns CGROUPNS T{
+Unique inode number describing the namespace the process belongs to.
+See
+.IR namespaces (7).
+T}
+
+class CLS T{
+scheduling class of the process. (alias
+.BR policy ", " cls ).
+Field's possible values are:
+.sp 1
+.in +9n
+\- not reported
+.br
+TS SCHED_OTHER
+.br
+FF SCHED_FIFO
+.br
+RR SCHED_RR
+.br
+B SCHED_BATCH
+.br
+ISO SCHED_ISO
+.br
+IDL SCHED_IDLE
+.br
+DLN SCHED_DEADLINE
+.br
+? unknown value
+.in
+T}
+
+cls CLS T{
+scheduling class of the process. (alias
+.BR policy ", " cls ).
+Field's possible values are:
+.sp 1
+.in +9n
+\- not reported
+.br
+TS SCHED_OTHER
+.br
+FF SCHED_FIFO
+.br
+RR SCHED_RR
+.br
+B SCHED_BATCH
+.br
+ISO SCHED_ISO
+.br
+IDL SCHED_IDLE
+.br
+DLN SCHED_DEADLINE
+.br
+? unknown value
+.in
+T}
+
+cmd CMD T{
+see
+.BR args .
+(alias
+.BR args ", " command ).
+T}
+
+comm COMMAND T{
+command name (only the executable name). The output in this column may
+contain spaces.
+(alias
+.BR ucmd ", " ucomm ).
+See also the
+.B args
+format keyword, the
+.B \-f
+option, and the
+.B c
+option.
+.br
+When specified last, this column will extend to the edge of the display. If
+.B ps
+can not determine display width, as when output is redirected (piped) into a
+file or another command, the output width is undefined (it may be 80,
+unlimited, determined by the
+.B TERM
+variable, and so on). The
+.B COLUMNS
+environment variable or
+.B \-\-cols
+option may be used to exactly determine the width in this case. The
+.BR w \ or \ \-w
+option may be also be used to adjust width.
+T}
+
+command COMMAND T{
+See
+.BR args .
+(alias
+.BR args ", " command ).
+T}
+
+cp CP T{
+per\-mill (tenths of a percent) CPU usage. (see
+.BR %cpu ).
+T}
+
+cputime TIME T{
+cumulative CPU time, "[DD\-]hh:mm:ss" format. (alias
+.BR time ).
+T}
+
+cputimes TIME T{
+cumulative CPU time in seconds (alias
+.BR times ).
+T}
+
+cuc %CUC T{
+The CPU utilization of a process, including dead children, in an extended "##.###" format.
+(see also
+.BR %cpu ,
+.BR c ,
+.BR cp ,
+.BR cuu ,
+.BR pcpu ).
+T}
+
+cuu %CUU T{
+The CPU utilization of a process in an extended "##.###" format.
+(see also
+.BR %cpu ,
+.BR c ,
+.BR cp ,
+.BR cuc ,
+.BR pcpu ).
+T}
+
+drs DRS T{
+data resident set size, the amount of private memory \fIreserved\fR by a process.
+It is also known as DATA. Such memory may not yet be mapped to
+.B rss
+but will always be included
+included in the
+.B vsz
+amount.
+
+T}
+
+egid EGID T{
+effective group ID number of the process as a decimal integer. (alias
+.BR gid ).
+T}
+
+egroup EGROUP T{
+effective group ID of the process. This will be the textual group ID, if it
+can be obtained and the field width permits, or a decimal representation
+otherwise. (alias
+.BR group ).
+T}
+
+eip EIP T{
+instruction pointer. As of kernel 4.9.xx will be zeroed out unless task is
+exiting or being core dumped.
+T}
+
+esp ESP T{
+stack pointer. As of kernel 4.9.xx will be zeroed out unless task is
+exiting or being core dumped.
+T}
+
+etime ELAPSED T{
+elapsed time since the process was started, in the form [[DD\-]hh:]mm:ss.
+T}
+
+etimes ELAPSED T{
+elapsed time since the process was started, in seconds.
+T}
+
+euid EUID T{
+effective user ID (alias
+.BR uid ).
+T}
+
+euser EUSER T{
+effective user name. This will be the textual user ID, if it can be obtained
+and the field width permits, or a decimal representation otherwise. The
+.B n
+option can be used to force the decimal representation. (alias
+.BR uname ", " user ).
+T}
+
+exe EXE T{
+path to the executable. Useful if path cannot be printed via
+.BR cmd ", " comm
+or
+.BR args
+format options.
+T}
+
+f F T{
+flags associated with the process, see the
+.B PROCESS FLAGS
+section. (alias
+.BR flag ", " flags ).
+T}
+
+fgid FGID T{
+filesystem access group\ ID. (alias
+.BR fsgid ).
+T}
+
+fgroup FGROUP T{
+filesystem access group ID. This will be the textual group ID, if it can
+be obtained and the field width permits, or a decimal representation
+otherwise. (alias
+.BR fsgroup ).
+T}
+
+flag F T{
+see
+.BR f .
+(alias
+.BR f ", " flags ).
+T}
+
+flags F T{
+see
+.BR f .
+(alias
+.BR f ", " flag ).
+T}
+
+fname COMMAND T{
+first 8 bytes of the base name of the process's executable file. The output
+in this column may contain spaces.
+T}
+
+fuid FUID T{
+filesystem access user ID. (alias
+.BR fsuid ).
+T}
+
+fuser FUSER T{
+filesystem access user ID. This will be the textual user ID, if it can be
+obtained and the field width permits, or a decimal representation otherwise.
+T}
+
+gid GID T{
+see
+.BR egid .
+(alias
+.BR egid ).
+T}
+
+group GROUP T{
+see
+.BR egroup .
+(alias
+.BR egroup ).
+T}
+
+ignored IGNORED T{
+mask of the ignored signals, see
+.IR signal (7).
+According to the width of the field, a 32 or 64 bits mask in hexadecimal
+format is displayed, unless the \fB\-\-signames\fR option is used. (alias
+.BR sig_ignore ", " sigignore ).
+T}
+
+ipcns IPCNS T{
+Unique inode number describing the namespace the process belongs to.
+See
+.IR namespaces (7).
+T}
+
+label LABEL T{
+security label, most commonly used for SELinux context data. This is for
+the
+.I Mandatory Access Control
+("MAC") found on high\-security systems.
+T}
+
+lstart STARTED T{
+time the command started. This will be in the form "DDD mmm HH:MM:SS YYY"
+unless changed by the \fB\-D\fR option.
+T}
+
+lsession SESSION T{
+displays the login session identifier of a process,
+if systemd support has been included.
+T}
+
+luid LUID T{
+displays Login ID associated with a process.
+T}
+
+lwp LWP T{
+light weight process (thread) ID of the dispatchable entity (alias
+.BR spid , \ tid ).
+See
+.B tid
+for additional information.
+T}
+
+lxc LXC T{
+The name of the lxc container within which a task is running.
+If a process is not running inside a container, a dash ('\-') will be shown.
+T}
+
+machine MACHINE T{
+displays the machine name for processes assigned to VM or container,
+if systemd support has been included.
+T}
+
+maj_flt MAJFLT T{
+The number of major page faults that have occurred with this process.
+T}
+
+min_flt MINFLT T{
+The number of minor page faults that have occurred with this process.
+T}
+
+mntns MNTNS T{
+Unique inode number describing the namespace the process belongs to.
+See
+.IR namespaces (7).
+T}
+
+netns NETNS T{
+Unique inode number describing the namespace the process belongs to.
+See
+.IR namespaces (7).
+T}
+
+ni NI T{
+nice value. This ranges from 19 (nicest) to \-20 (not nice to others),
+see
+.IR nice (1).
+(alias
+.BR nice ).
+T}
+
+nice NI T{
+see
+.BR ni . (alias
+.BR ni ).
+T}
+
+nlwp NLWP T{
+number of lwps (threads) in the process. (alias
+.BR thcount ).
+T}
+
+numa NUMA T{
+The node associated with the most recently used processor.
+A \fI\-1\fR means that NUMA information is unavailable.
+T}
+
+nwchan WCHAN T{
+address of the kernel function where the process is sleeping (use
+.B wchan
+if you want the kernel function name).
+T}
+
+oom OOM T{
+Out of Memory Score. The value, ranging from 0 to +1000, used to select
+task(s) to kill when memory is exhausted.
+T}
+
+oomadj OOMADJ T{
+Out of Memory Adjustment Factor. The value is added to the current out of
+memory score which is then used to determine which task to kill when memory
+is exhausted.
+T}
+
+ouid OWNER T{
+displays the Unix user identifier of the owner of the session of a process,
+if systemd support has been included.
+T}
+
+pcpu %CPU T{
+see
+.BR %cpu .
+(alias
+.BR %cpu ).
+T}
+
+pending PENDING T{
+mask of the pending signals. See
+.IR signal (7).
+Signals pending on the process are distinct from signals pending on
+individual threads. Use the
+.B m
+option or the
+.B \-m
+option to see both. According to the width of the field, a 32 or 64 bits
+mask in hexadecimal
+format is displayed, unless the \fB\-\-signames\fR option is used. (alias
+.BR sig ).
+T}
+
+pgid PGID T{
+process group ID or, equivalently, the process ID of the process group
+leader. (alias
+.BR pgrp ).
+T}
+
+pgrp PGRP T{
+see
+.BR pgid .
+(alias
+.BR pgid ).
+T}
+
+pid PID T{
+a number representing the process ID (alias
+.BR tgid ).
+T}
+
+pidns PIDNS T{
+Unique inode number describing the namespace the process belongs to.
+See
+.IR namespaces (7).
+T}
+
+pmem %MEM T{
+see
+.BR %mem .
+(alias
+.BR %mem ).
+T}
+
+policy POL T{
+scheduling class of the process. (alias
+.BR class ", " cls ).
+Possible values are:
+.sp 1
+.in +9n
+\- not reported
+.br
+TS SCHED_OTHER
+.br
+FF SCHED_FIFO
+.br
+RR SCHED_RR
+.br
+B SCHED_BATCH
+.br
+ISO SCHED_ISO
+.br
+IDL SCHED_IDLE
+.br
+DLN SCHED_DEADLINE
+.br
+? unknown value
+.in
+T}
+
+ppid PPID T{
+parent process ID.
+T}
+
+pri PRI T{
+priority of the process. Higher number means higher priority.
+T}
+
+psr PSR T{
+processor that process last executed on.
+T}
+
+pss PSS T{
+Proportional share size, the non-swapped physical memory, with shared memory
+proportionally accounted to all tasks mapping it.
+T}
+
+rbytes RBYTES T{
+Number of bytes which this process really did cause to be fetched from the storage layer.
+T}
+
+rchars RCHARS T{
+Number of bytes which this task has caused to be read from storage.
+T}
+
+rgid RGID T{
+real group ID.
+T}
+
+rgroup RGROUP T{
+real group name. This will be the textual group ID, if it can be obtained
+and the field width permits, or a decimal representation otherwise.
+T}
+
+rops ROPS T{
+Number of read I/O operations—that is, system calls such as
+.BR read "(2) and " pread (2).
+T}
+
+rss RSS T{
+resident set size, the non\-swapped physical memory that a task has used (in
+kilobytes). (alias
+.BR rssize ", " rsz ).
+T}
+
+rssize RSS T{
+see
+.BR rss .
+(alias
+.BR rss ", " rsz ).
+T}
+
+rsz RSZ T{
+see
+.BR rss .
+(alias
+.BR rss ", " rssize ).
+T}
+
+rtprio RTPRIO T{
+realtime priority.
+T}
+
+ruid RUID T{
+real user ID.
+T}
+
+ruser RUSER T{
+real user ID. This will be the textual user ID, if it can be obtained and
+the field width permits, or a decimal representation otherwise.
+T}
+
+s S T{
+minimal state display (one character). See section
+.B PROCESS STATE CODES
+for the different values. See also
+.B stat
+if you want additional information displayed. (alias
+.BR state ).
+T}
+
+sched SCH T{
+scheduling policy of the process. The policies SCHED_OTHER (SCHED_NORMAL),
+SCHED_FIFO, SCHED_RR, SCHED_BATCH, SCHED_ISO, SCHED_IDLE and SCHED_DEADLINE are
+respectively displayed as 0, 1, 2, 3, 4, 5 and 6.
+T}
+
+seat SEAT T{
+displays the identifier associated with all hardware devices assigned
+to a specific workplace,
+if systemd support has been included.
+T}
+
+sess SESS T{
+session ID or, equivalently, the process ID of the session leader. (alias
+.BR session ", " sid ).
+T}
+
+sgi_p P T{
+processor that the process is currently executing on. Displays "*" if the
+process is not currently running or runnable.
+T}
+
+sgid SGID T{
+saved group ID. (alias
+.BR svgid ).
+T}
+
+sgroup SGROUP T{
+saved group name. This will be the textual group ID, if it can be obtained
+and the field width permits, or a decimal representation otherwise.
+T}
+
+sid SID T{
+see
+.BR sess .
+(alias
+.BR sess ", " session ).
+T}
+
+sig PENDING T{
+see
+.BR pending .
+(alias
+.BR pending ", " sig_pend ).
+T}
+
+sigcatch CAUGHT T{
+see
+.BR caught .
+(alias
+.BR caught ", " sig_catch ).
+T}
+
+sigignore IGNORED T{
+see
+.BR ignored .
+(alias
+.BR ignored ", " sig_ignore ).
+T}
+
+sigmask BLOCKED T{
+see
+.BR blocked .
+(alias
+.BR blocked ", " sig_block ).
+T}
+
+size SIZE T{
+approximate amount of swap space that would be required if the process were
+to dirty all writable pages and then be swapped out. This number is very
+rough!
+T}
+
+slice SLICE T{
+displays the slice unit which a process belongs to,
+if systemd support has been included.
+T}
+
+spid SPID T{
+see
+.BR lwp .
+(alias
+.BR lwp ", " tid ).
+T}
+
+stackp STACKP T{
+address of the bottom (start) of stack for the process.
+T}
+
+start STARTED T{
+time the command started. If the process was started less than 24 hours ago,
+the output format is "HH:MM:SS", else it is "\ \ Mmm\ dd" (where Mmm is a
+three\-letter month name). See also
+.BR bsdstart ", " start ", " start_time ", and " stime .
+T}
+
+start_time START T{
+starting time or date of the process. Only the year will be displayed if the
+process was not started the same year
+.B ps
+was invoked, or "MmmDD" if it was not started the same day, or "HH:MM"
+otherwise. See also
+.BR bsdstart ", " start ", " lstart ", and " stime .
+T}
+
+stat STAT T{
+multi\-character process state. See section
+.B PROCESS STATE CODES
+for the different values meaning. See also
+.BR s \ and \ state
+if you just want the first character displayed.
+T}
+
+state S T{
+see
+.BR s ".\& (alias" \ s ).
+T}
+
+stime STIME T{
+see \fBstart_time\fR. (alias \fBstart_time\fR).
+T}
+
+suid SUID T{
+saved user ID. (alias
+.BR svuid ).
+T}
+
+supgid SUPGID T{
+group ids of supplementary groups, if any. See
+.BR getgroups (2).
+T}
+
+supgrp SUPGRP T{
+group names of supplementary groups, if any. See
+.BR getgroups (2).
+T}
+
+suser SUSER T{
+saved user name. This will be the textual user ID, if it can be obtained and
+the field width permits, or a decimal representation otherwise. (alias
+.BR svuser ).
+T}
+
+svgid SVGID T{
+see
+.BR sgid .
+(alias
+.BR sgid ).
+T}
+
+svuid SVUID T{
+see
+.BR suid .
+(alias
+.BR suid ).
+T}
+
+sz SZ T{
+size in physical pages of the core image of the process. This includes text,
+data, and stack space. Device mappings are currently excluded; this is
+subject to change. See
+.BR vsz \ and \ rss .
+T}
+
+tgid TGID T{
+a number representing the thread group to which a task belongs (alias
+.BR pid ).
+It is the process ID of the thread group leader.
+T}
+
+thcount THCNT T{
+see
+.BR nlwp .
+(alias
+.BR nlwp ).
+number of kernel threads owned by the process.
+T}
+
+tid TID T{
+the unique number representing a dispatchable entity (alias
+.BR spid ", " tid ).
+This value may also appear as: a process ID (pid); a process group ID (pgrp);
+a session ID for the session leader (sid); a thread group ID for the thread
+group leader (tgid); and a tty process group ID for the process group leader
+(tpgid).
+T}
+
+time TIME T{
+cumulative CPU\ time, "[DD\-]HH:MM:SS" format. (alias
+.BR cputime ).
+T}
+
+timens TIMENS T{
+Unique inode number describing the namespace the process belongs to.
+See
+.IR namespaces (7).
+T}
+
+times TIME T{
+cumulative CPU\ time in seconds (alias
+.BR cputimes ).
+T}
+
+tname TTY T{
+controlling tty (terminal). (alias
+.BR tt ", " tty ).
+T}
+
+tpgid TPGID T{
+ID of the foreground process group on the tty (terminal) that the process is
+connected to, or \-1 if the process is not connected to a tty.
+T}
+
+trs TRS T{
+text resident set size, the amount of physical memory devoted to executable code.
+T}
+
+tt TT T{
+controlling tty (terminal). (alias
+.BR tname ", " tty ).
+T}
+
+tty TT T{
+controlling tty (terminal). (alias
+.BR tname ", " tt ).
+T}
+
+ucmd CMD T{
+see
+.BR comm .
+(alias
+.BR comm ", " ucomm ).
+T}
+
+ucomm COMMAND T{
+see
+.BR comm .
+(alias
+.BR comm ", " ucmd ).
+T}
+
+uid UID T{
+see
+.BR euid .
+(alias
+.BR euid ).
+T}
+
+uname USER T{
+see
+.BR euser .
+(alias
+.BR euser ", " user ).
+T}
+
+unit UNIT T{
+displays unit which a process belongs to,
+if systemd support has been included.
+T}
+
+user USER T{
+see
+.BR euser .
+(alias
+.BR euser ", " uname ).
+T}
+
+userns USERNS T{
+Unique inode number describing the namespace the process belongs to.
+See
+.IR namespaces (7).
+T}
+
+uss USS T{
+Unique set size, the non-swapped physical memory, which
+is not shared with an another task.
+T}
+
+utsns UTSNS T{
+Unique inode number describing the namespace the process belongs to.
+See
+.IR namespaces (7).
+T}
+
+uunit UUNIT T{
+displays user unit which a process belongs to,
+if systemd support has been included.
+T}
+
+vsize VSZ T{
+see
+.BR vsz .
+(alias
+.BR vsz ).
+T}
+
+vsz VSZ T{
+virtual memory size of the process in KiB (1024\-byte units). Device
+mappings are currently excluded; this is subject to change. (alias
+.BR vsize ).
+T}
+
+wbytes WBYTES T{
+Number of bytes which this process caused to be sent to the storage layer.
+T}
+
+wcbytes WCBYTES T{
+Number of cancelled write bytes.
+T}
+
+wchan WCHAN T{
+name of the kernel function in which the process is sleeping.
+T}
+
+wchars WCHARS T{
+Number of bytes which this task has caused, or shall cause to be written to disk.
+T}
+
+wops WOPS T{
+Number of write I/O operations—that is, system calls such as
+.BR write "(2) and " pwrite (2).
+T}
+
+.TE
+.SH "ENVIRONMENT VARIABLES"
+The following environment variables could affect
+.BR ps :
+.TP 3
+.B COLUMNS
+Override default display width.
+.TP
+.B LINES
+Override default display height.
+.TP
+.B PS_PERSONALITY
+Set to one of posix, old, linux, bsd, sun, digital...\& (see section
+.B PERSONALITY
+below).
+.TP
+.B CMD_ENV
+Set to one of posix, old, linux, bsd, sun, digital...\& (see section
+.B PERSONALITY
+below).
+.TP
+.B I_WANT_A_BROKEN_PS
+Force obsolete command line interpretation.
+.TP
+.B LC_TIME
+Date format.
+.TP
+.B LIBPROC_HIDE_KERNEL
+Set this to any value to hide kernel threads normally displayed with the
+.B -e
+option. This is equivalent to selecting
+.B --ppid 2 -p 2 --deselect
+instead. Also works in BSD mode.
+.TP
+.B PS_COLORS
+Not currently supported.
+.TP
+.B PS_FORMAT
+Default output format override. You may set this to a format
+string of the type used for the
+.B \-o
+option.
+The
+.B DefSysV
+and
+.B DefBSD
+values are particularly useful.
+.TP
+.B POSIXLY_CORRECT
+Don't find excuses to ignore bad "features".
+.TP
+.B POSIX2
+When set to "on", acts as
+.BR POSIXLY_CORRECT .
+.TP
+.B UNIX95
+Don't find excuses to ignore bad "features".
+.TP
+.B _XPG
+Cancel
+.BR CMD_ENV =\c
+.I irix
+non\-standard behavior.
+.PP
+In general, it is a bad idea to set these variables. The one exception is
+.B CMD_ENV
+or
+.BR PS_PERSONALITY ,
+which could be set to Linux for normal systems. Without that setting,
+.B ps
+follows the useless and bad parts of the Unix98 standard.
+.SH "PERSONALITY"
+.TS
+l l.
+390 like the OS/390 OpenEdition \fBps\fR
+aix like AIX \fBps\fR
+bsd like FreeBSD \fBps\fR (totally non\-standard)
+compaq like Digital Unix \fBps\fR
+debian like the old Debian \fBps\fR
+digital like Tru64 (was Digital\ Unix, was OSF/1) \fBps\fR
+gnu like the old Debian \fBps\fR
+hp like HP\-UX \fBps\fR
+hpux like HP\-UX \fBps\fR
+irix like Irix \fBps\fR
+linux ***** \fBrecommended\fR *****
+old like the original Linux \fBps\fR (totally non\-standard)
+os390 like OS/390 Open Edition \fBps\fR
+posix standard
+s390 like OS/390 Open Edition \fBps\fR
+sco like SCO \fBps\fR
+sgi like Irix \fBps\fR
+solaris2 like Solaris 2+ (SunOS 5) \fBps\fR
+sunos4 like SunOS 4 (Solaris 1) \fBps\fR (totally non\-standard)
+svr4 standard
+sysv standard
+tru64 like Tru64 (was Digital Unix, was OSF/1) \fBps\fR
+unix standard
+unix95 standard
+unix98 standard
+.TE
+.SH BUGS
+The fields \fBbsdstart\fR and \fBstart\fR will only show the abbreviated
+month name in English. The fields \fBlstart\fR and \fBstime\fR will show
+the abbreviated month name in the configured locale but may exceed the
+column width due to the different lengths for abbreviated month and day
+names across languages.
+.PP
+.SH "SEE ALSO"
+.BR pgrep (1),
+.BR pstree (1),
+.BR top (1),
+.BR strftime (3),
+.BR proc (5).
+.SH STANDARDS
+This
+.B ps
+conforms to:
+.PP
+.PD 0
+.IP 1 4
+Version 2 of the Single Unix Specification
+.IP 2 4
+The Open Group Technical Standard Base Specifications, Issue\ 6
+.IP 3 4
+IEEE Std 1003.1, 2004\ Edition
+.IP 4 4
+X/Open System Interfaces Extension [UP\ XSI]
+.IP 5 4
+ISO/IEC 9945:2003
+.PD
+.SH AUTHOR
+.B ps
+was originally written by
+.MT lankeste@\:fwi.\:uva.\:nl
+Branko Lankester
+.ME .
+.MT johnsonm@\:redhat.\:com
+Michael K. Johnson
+.ME
+re\-wrote it significantly to use the proc filesystem, changing a few things
+in the process.
+.MT mjshield@\:nyx.\:cs.\:du.\:edu
+Michael Shields
+.ME
+added the pid\-list feature.
+.MT cblake@\:bbn.\:com
+Charles Blake
+.ME
+added multi\-level sorting, the dirent\-style library, the device
+name\-to\-number mmaped database, the approximate binary search directly on
+System.map, and many code and documentation cleanups. David Mossberger\-Tang
+wrote the generic BFD support for psupdate.
+.MT albert@\:users.\:sf.\:net
+Albert Cahalan
+.ME
+rewrote ps for full Unix98 and BSD support, along with some ugly hacks for
+obsolete and foreign syntax.
+.PP
+Please send bug reports to
+.MT procps@\:freelists.\:org
+.ME .
+No subscription is required or suggested.
diff --git a/man/pwdx.1 b/man/pwdx.1
new file mode 100644
index 0000000..98e7b6e
--- /dev/null
+++ b/man/pwdx.1
@@ -0,0 +1,40 @@
+.\"
+.\" Copyright (c) 2020-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2004 Nicholas Miel.
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.TH PWDX "1" "2020-06-04" "procps-ng" "User Commands"
+.SH NAME
+pwdx \- report current working directory of a process
+.SH SYNOPSIS
+.B pwdx
+[\fIoptions\fR] \fIpid\fR [...]
+.SH OPTIONS
+.TP
+\fB\-V\fR, \fB\-\-version\fR
+Output version information and exit.
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Output help screen and exit.
+.SH "SEE ALSO"
+.BR ps (1),
+.BR pgrep (1)
+.SH STANDARDS
+No standards apply, but
+.B pwdx
+looks an awful lot like a SunOS command.
+.SH AUTHOR
+.UR nmiell@gmail.com
+Nicholas Miell
+.UE
+wrote pwdx in 2004.
+.SH "REPORTING BUGS"
+Please send bug reports to
+.UR procps@freelists.org
+.UE
diff --git a/man/skill.1 b/man/skill.1
new file mode 100644
index 0000000..de95871
--- /dev/null
+++ b/man/skill.1
@@ -0,0 +1,128 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2006 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.TH SKILL 1 "2023-08-19" "procps-ng" "User Commands"
+.SH NAME
+skill, snice \- send a signal or report process status
+.SH SYNOPSIS
+.B skill
+.RI [ signal ]
+.RI [ options ]
+.I expression
+.br
+.B snice
+.RI [ "new priority" ]
+.RI [ options ]
+.I expression
+.SH DESCRIPTION
+These tools are obsolete and unportable. The command syntax is
+poorly defined. Consider using the
+.BR killall ,
+.BR pkill ,
+and
+.B pgrep
+commands instead.
+.PP
+The default signal for \fBskill\fP is TERM. Use \fB\-l\fP or \fB\-L\fP to list
+available signals. Particularly useful signals include HUP, INT,
+KILL, STOP, CONT, and 0. Alternate signals may be specified in three
+ways: \fB\-9\fP \fB\-SIGKILL\fP \fB\-KILL\fP.
+.PP
+The default priority for \fBsnice\fP is +4. Priority numbers range from
++20 (slowest) to \-20 (fastest). Negative priority numbers are
+restricted to administrative users.
+.SH OPTIONS
+.TP
+.BR \-f , \ \-\-fast
+Fast mode. This option has not been implemented.
+.TP
+.BR \-i , \ \-\-interactive
+Interactive use. You will be asked to approve each action.
+.TP
+.BR \-l , \ \-\-list
+List all signal names.
+.TP
+.BR \-L , \ \-\-table
+List all signal names in a nice table.
+.TP
+.BR \-n , \ \-\-no\-action
+No action; perform a simulation of events that would occur but do not
+actually change the system.
+.TP
+.BR \-v , \ \-\-verbose
+Verbose; explain what is being done.
+.TP
+.BR \-w , \ \-\-warnings
+Enable warnings. This option has not been implemented.
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Display help text and exit.
+.TP
+\fB\-V\fR, \fB\-\-version\fR
+Display version information.
+.PD
+.SH "PROCESS SELECTION OPTIONS"
+Selection criteria can be: terminal, user, pid, command. The options
+below may be used to ensure correct interpretation.
+.TP
+\fB\-t\fR, \fB\-\-tty\fR \fItty\fR
+The next expression is a terminal (tty or pty).
+.TP
+\fB\-u\fR, \fB\-\-user\fR \fIuser\fR
+The next expression is a username.
+.TP
+\fB\-p\fR, \fB\-\-pid\fR \fIpid\fR
+The next expression is a process ID number.
+.TP
+\fB\-c\fR, \fB\-\-command\fR \fIcommand\fR
+The next expression is a command name.
+.TP
+\fB\-\-ns \fIpid\fR
+Match the processes that belong to the same namespace as pid.
+.TP
+\fB\-\-nslist \fIns\/\fR,\,\fI...\/\fR
+list which namespaces will be considered for the \fB\-\-ns\fP option.
+Available namespaces: ipc, mnt, net, pid, user, uts.
+.PD
+.SH SIGNALS
+The behavior of signals is explained in
+.BR signal (7)
+manual page.
+.SH EXAMPLES
+.TP
+.B snice \-c seti \-c crack +7
++Slow down \fBseti\fP and \fBcrack\fP commands.
+.TP
+.B skill \-KILL \-t /dev/pts/*
+Kill users on PTY devices.
+.TP
+.B skill \-STOP \-u viro \-u lm \-u davem
+Stop three users.
+.SH "SEE ALSO"
+.BR kill (1),
+.BR kill (2),
+.BR killall (1),
+.BR nice (1),
+.BR pkill (1),
+.BR renice (1),
+.BR signal (7)
+.SH STANDARDS
+No standards apply.
+.SH AUTHOR
+.MT albert@users.sf.net
+Albert Cahalan
+.ME
+wrote skill and snice in 1999 as a replacement for a non-free
+version.
+.SH "REPORTING BUGS"
+Please send bug reports to
+.UR procps@freelists.org
+.UE
diff --git a/man/slabtop.1 b/man/slabtop.1
new file mode 100644
index 0000000..0734348
--- /dev/null
+++ b/man/slabtop.1
@@ -0,0 +1,123 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2004-2006 Albert Cahalan
+.\" Copyright (C) 2003 Chris Rivera
+.\"
+.\" This program is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU Lesser General Public License as
+.\" published by the Free Software Foundation; either version 2.1 of the
+.\" License, or (at your option) any later version.
+.\"
+.\"
+.TH SLABTOP "1" "2021-03-11" "procps-ng" "User Commands"
+.SH NAME
+slabtop \- display kernel slab cache information in real time
+.SH SYNOPSIS
+.B slabtop
+[\fIoptions\fR]
+.SH DESCRIPTION
+.B slabtop
+displays detailed kernel slab cache information in real time. It displays a
+listing of the top caches sorted by one of the listed sort criteria. It also
+displays a statistics header filled with slab layer information.
+.SH OPTIONS
+Normal invocation of
+.B slabtop
+does not require any options. The behavior, however, can be fine-tuned by
+specifying one or more of the following flags:
+.TP
+\fB\-d\fR, \fB\-\-delay\fR=\fIN\fR
+Refresh the display every
+.I n
+in seconds. By default,
+.B slabtop
+refreshes the display every three seconds. To exit the program, hit
+.BR q .
+This cannot be combined with the \fB-o\fR option.
+.TP
+\fB\-s\fR, \fB\-\-sort\fR=\fIS\fR
+Sort by \fIS\fR, where \fIS\fR is one of the sort criteria.
+.TP
+\fB\-o\fR, \fB\-\-once\fR
+Display the output once and then exit.
+.TP
+\fB\-V\fR, \fB\-\-version\fR
+Display version information and exit.
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Display usage information and exit.
+.SH SORT CRITERIA
+The following are valid sort criteria used to sort the individual slab caches
+and thereby determine what are the "top" slab caches to display. The default
+sort criteria is to sort by the number of objects ("o").
+.PP
+The sort criteria can also be changed while
+.B slabtop
+is running by pressing the associated character.
+.TS
+l l l.
+\fBcharacter description header\fR
+a number of active objects ACTIVE
+b objects per slab OBJ/SLAB
+c cache size CACHE SIZE
+l number of slabs SLABS
+v number of active slabs N/A
+n name NAME\:
+o number of objects OBJS
+p pages per slab N/A
+s object size OBJ SIZE
+u cache utilization USE
+.TE
+.SH COMMANDS
+.B slabtop
+accepts keyboard commands from the user during use. The following are
+supported. In the case of letters, both cases are accepted.
+.PP
+Each of the valid sort characters are also accepted, to change the sort
+routine. See the section
+.BR "SORT CRITERIA" .
+.TP
+.BR <SPACEBAR>
+Refresh the screen.
+.TP
+.BR Q
+Quit the program.
+.SH FILES
+.TP
+.I /proc/slabinfo
+slab information
+.SH "SEE ALSO"
+.BR free (1),
+.BR ps (1),
+.BR top (1),
+.BR vmstat (8)
+.SH NOTES
+Currently,
+.B slabtop
+requires a 2.4 or later kernel (specifically, a version 1.1 or later
+.IR /proc/slabinfo ).
+Kernel 2.2 should be supported in the future.
+.PP
+The
+.B slabtop
+statistic header is tracking how many bytes of slabs are being
+used and is not a measure of physical memory. The 'Slab' field in the
+\fI/proc/meminfo\fR file is tracking information about used slab physical memory.
+.PP
+The
+.B CACHE SIZE
+column is not accurate, it's the upper limit of memory used by specific slab. When system
+using slub (most common case) is under high memory pressure, there are slab order
+fallbacks, which means "pages per slab" is not constant and may decrease.
+.SH AUTHORS
+Written by Chris Rivera and Robert Love.
+.PP
+.B slabtop
+was inspired by Martin Bligh's perl script,
+.BR vmtop .
+.SH "REPORTING BUGS"
+Please send bug reports to
+.UR procps@freelists.org
+.UE
diff --git a/man/snice.1 b/man/snice.1
new file mode 100644
index 0000000..1595a80
--- /dev/null
+++ b/man/snice.1
@@ -0,0 +1 @@
+.so man1/skill.1
diff --git a/man/sysctl.8 b/man/sysctl.8
new file mode 100644
index 0000000..fe555bd
--- /dev/null
+++ b/man/sysctl.8
@@ -0,0 +1,196 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2004-2006 Albert Cahalan
+.\" Copyright (c) 1999 George Staikos <staikos@0wned.org>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.TH SYSCTL "8" "2023-08-19" "procps-ng" "System Administration"
+.SH NAME
+sysctl \- configure kernel parameters at runtime
+.SH SYNOPSIS
+.B sysctl
+[\fIoptions\fR] [\fIvariable\fR[\fB=\fIvalue\fR]] [...]
+.br
+.B sysctl \-p
+[\fIfile\fR or \fIregexp\fR] [...]
+.SH DESCRIPTION
+.B sysctl
+is used to modify kernel parameters at runtime. The parameters available
+are those listed under \fI/proc/sys/\fR. Procfs is required for
+.B sysctl
+support in Linux. You can use
+.B sysctl
+to both read and write sysctl data.
+.SH PARAMETERS
+.TP
+.I variable
+The name of a key to read from. An example is kernel.ostype. The '/'
+separator is also accepted in place of a '.'.
+.TP
+.IR variable = value
+To set a key, use the form
+.IR variable = value
+where
+.I variable
+is the key and
+.I value
+is the value to set it to. If the value contains quotes or characters
+which are parsed by the shell, you may need to enclose the value in double
+quotes.
+.TP
+\fB\-n\fR, \fB\-\-values\fR
+Use this option to disable printing of the key name when printing values.
+.TP
+\fB\-e\fR, \fB\-\-ignore\fR
+Use this option to ignore errors about unknown keys.
+.TP
+\fB\-N\fR, \fB\-\-names\fR
+Use this option to only print the names. It may be useful with shells that
+have programmable completion.
+.TP
+\fB\-q\fR, \fB\-\-quiet\fR
+Use this option to not display the values set to stdout.
+.TP
+\fB\-w\fR, \fB\-\-write\fR
+Force all arguments to be write arguments and print an error if
+they cannot be parsed this way.
+.TP
+\fB\-p\fR[\fIFILE\fR], \fB\-\-load\fR[=\fIFILE\fR]
+Load in \fBsysctl\fR settings from the file specified or \fI/etc/sysctl.conf\fR
+if none given. Specifying \- as filename means reading data from standard
+input. Using this option will mean arguments to
+.B sysctl
+are files, which are read in the order they are specified.
+The file argument may be specified as regular expression.
+.TP
+\fB\-a\fR, \fB\-\-all\fR
+Display all values currently available.
+.TP
+\fB\-\-deprecated\fR
+Include deprecated parameters to
+.B \-\-all
+values listing.
+.TP
+\fB\-b\fR, \fB\-\-binary\fR
+Print value without new line.
+.TP
+\fB\-\-system\fR
+Load settings from all system configuration files. See the
+.B SYSTEM FILE PRECEDENCE
+section below.
+.TP
+\fB\-r\fR, \fB\-\-pattern\fR \fIpattern\fR
+Only apply settings that match
+.IR pattern .
+The
+.I pattern
+uses extended regular expression syntax.
+.TP
+\fB\-A\fR
+Alias of \fB\-a\fR
+.TP
+\fB\-d\fR
+Alias of \fB\-h\fR
+.TP
+\fB\-f\fR
+Alias of \fB\-p\fR
+.TP
+\fB\-X\fR
+Alias of \fB\-a\fR
+.TP
+\fB\-o\fR
+Does nothing, exists for BSD compatibility.
+.TP
+\fB\-x\fR
+Does nothing, exists for BSD compatibility.
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Display help text and exit.
+.TP
+\fB\-V\fR, \fB\-\-version\fR
+Display version information and exit.
+.SH SYSTEM FILE PRECEDENCE
+When using the \fB\-\-system\fR option,
+.B sysctl
+will read files from directories in the following list in given
+order from top to bottom. Once a file of a given filename is loaded, any
+file of the same name in subsequent directories is ignored.
+
+/etc/sysctl.d/*.conf
+.br
+/run/sysctl.d/*.conf
+.br
+/usr/local/lib/sysctl.d/*.conf
+.br
+/usr/lib/sysctl.d/*.conf
+.br
+/lib/sysctl.d/*.conf
+.br
+/etc/sysctl.conf
+
+All configuration files are sorted in lexicographic order, regardless of the
+directory they reside in. Configuration files can either be completely
+replaced (by having a new configuration file with the same name in a
+directory of higher priority) or partially replaced (by having a configuration
+file that is ordered later).
+.SH EXAMPLES
+/sbin/sysctl \-a
+.br
+/sbin/sysctl \-n kernel.hostname
+.br
+/sbin/sysctl \-w kernel.domainname="example.com"
+.br
+/sbin/sysctl \-p/etc/sysctl.conf
+.br
+/sbin/sysctl \-a \-\-pattern forward
+.br
+/sbin/sysctl \-a \-\-pattern forward$
+.br
+/sbin/sysctl \-a \-\-pattern 'net.ipv4.conf.(eth|wlan)0.arp'
+.br
+/sbin/sysctl \-\-pattern '\[char94]net.ipv6' \-\-system
+.SH DEPRECATED PARAMETERS
+The
+.B base_reachable_time
+and
+.B retrans_time
+are deprecated. The
+.B sysctl
+command does not allow changing values of these
+parameters. Users who insist to use deprecated kernel interfaces should push values
+to \fB/proc\fR file system by other means. For example:
+.PP
+echo 256 > /proc/sys/net/ipv6/neigh/eth0/base_reachable_time
+.SH FILES
+.I /proc/sys
+.br
+.I /etc/sysctl.d/*.conf
+.br
+.I /run/sysctl.d/*.conf
+.br
+.I /usr/local/lib/sysctl.d/*.conf
+.br
+.I /usr/lib/sysctl.d/*.conf
+.br
+.I /lib/sysctl.d/*.conf
+.br
+.I /etc/sysctl.conf
+.SH SEE ALSO
+.BR proc (5),
+.BR sysctl.conf (5),
+.BR regex (7)
+.SH AUTHOR
+.UR staikos@0wned.org
+George Staikos
+.UE
+.SH "REPORTING BUGS"
+Please send bug reports to
+.UR procps@freelists.org
+.UE
diff --git a/man/sysctl.conf.5 b/man/sysctl.conf.5
new file mode 100644
index 0000000..b64cb3b
--- /dev/null
+++ b/man/sysctl.conf.5
@@ -0,0 +1,92 @@
+.\"
+.\" Copyright (c) 2016-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2019-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1999 George Staikos <staikos@0wned.org>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.TH SYSCTL.CONF "5" "2021-09-15" "procps-ng" "File Formats"
+.SH NAME
+sysctl.conf \- sysctl preload/configuration file
+.SH DESCRIPTION
+.B sysctl.conf
+is a simple file containing sysctl values to be read in and set by
+.BR sysctl .
+The syntax is simply as follows:
+.RS
+.sp
+.nf
+.ne 7
+# comment
+; comment
+
+token = value
+.fi
+.RE
+.PP
+Note that blank lines are ignored, and whitespace before and after a token or
+value is ignored, although a value can contain whitespace within. Lines which
+begin with a \fI#\fR or \fI;\fR are considered comments and ignored.
+
+If a line begins with a single \-, any attempts to set the value that fail will be
+ignored.
+
+.SH NOTES
+As the
+.BR /etc/sysctl.conf
+file is used to override default kernel parameter values, only a small number of parameters is predefined in the file.
+Use
+.IR /sbin/sysctl\ \-a
+or follow
+.BR sysctl (8)
+to list all possible parameters. The description of individual parameters can be found in the kernel documentation.
+
+Maximum supported line length of the value is 4096 characters due
+to a limitation of \fI/proc\fR entries in Linux kernel.
+.SH EXAMPLE
+.RS
+.sp
+.nf
+.ne 7
+# sysctl.conf sample
+#
+ kernel.domainname = example.com
+; this one has a space which will be written to the sysctl!
+ kernel.modprobe = /sbin/mod probe
+.fi
+.RE
+.PP
+.SH FILES
+.I /etc/sysctl.d/*.conf
+.br
+.I /run/sysctl.d/*.conf
+.br
+.I /usr/local/lib/sysctl.d/*.conf
+.br
+.I /usr/lib/sysctl.d/*.conf
+.br
+.I /lib/sysctl.d/*.conf
+.br
+.I /etc/sysctl.conf
+
+The paths where
+.B sysctl
+preload files usually exist. See also
+.B sysctl
+option
+.IR \-\-system .
+.SH SEE ALSO
+.BR sysctl (8)
+.SH AUTHOR
+.UR staikos@0wned.org
+George Staikos
+.UE
+.SH "REPORTING BUGS"
+Please send bug reports to
+.UR procps@freelists.org
+.UE
diff --git a/man/tload.1 b/man/tload.1
new file mode 100644
index 0000000..c2a12f5
--- /dev/null
+++ b/man/tload.1
@@ -0,0 +1,69 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1993 Matt Welsh <mdw@tc.cornell.edu>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.TH TLOAD "1" "2020-06-04" "procps-ng" "User Commands"
+.SH NAME
+tload \- graphic representation of system load average
+.SH SYNOPSIS
+.B tload
+[\fIoptions\fR] [\fItty\fR]
+.SH DESCRIPTION
+.B tload
+prints a graph of the current system load average to the specified
+.I tty
+(or the tty of the
+.B tload
+process if none is specified).
+.SH OPTIONS
+.TP
+\fB\-s\fR, \fB\-\-scale\fR \fInumber\fR
+The scale option allows a vertical scale to be specified for the display (in
+characters between graph ticks); thus, a smaller value represents a larger
+scale, and vice versa.
+.TP
+\fB\-d\fR, \fB\-\-delay\fR \fIseconds\fR
+The delay sets the delay between graph updates in
+.IR seconds .
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Display this help text.
+.TP
+\fB\-V\fR, \fB\-\-version\fR
+Display version information and exit.
+.PP
+.SH FILES
+.I /proc/loadavg
+load average information
+.SH "SEE ALSO"
+.BR ps (1),
+.BR top (1),
+.BR uptime (1),
+.BR w (1)
+.SH BUGS
+The
+.BI "\-d" " delay"
+option sets the time argument for an
+.BR alarm (2);
+if \-d 0 is specified, the alarm is set to 0, which will never send the
+.B SIGALRM
+and update the display.
+.SH AUTHORS
+Branko Lankester,
+.UR david@\:ods.\:com
+David Engel
+.UE , and
+.UR johnsonm@\:redhat.\:com
+Michael K. Johnson
+.UE .
+.SH "REPORTING BUGS"
+Please send bug reports to
+.UR procps@freelists.org
+.UE
diff --git a/man/top.1 b/man/top.1
new file mode 100644
index 0000000..3791dfe
--- /dev/null
+++ b/man/top.1
@@ -0,0 +1,2810 @@
+.ig
+. manual page for NEW and IMPROVED linux top
+.
+. Copyright (c) 2002-2023 Jim Warner <james.warner@comcast.net
+.
+. This file may be copied under the terms of the GNU Public License.
+..
+\# Setup ////////////////////////////////////////////////////////////////
+\# Commonly used strings (for consistency) ----------
+\# - our em-dashes
+.ds Em \fR\ \-\-\ \fR
+.ds EM \fB\ \-\-\ \fR
+\# - our program name (makes great grammar)
+.ds We top
+.ds WE \fBtop\fR
+\# - other misc strs for consistent usage
+.ds F \fIOff\fR
+.ds O \fIOn\fR
+.
+.ds AK asterisk (`*')
+.ds AM alternate\-display mode
+.ds AS auxiliary storage
+.ds CF configuration file
+.ds CG `current' window/field group
+.ds CI interactive command
+.ds CO command\-line option
+.ds CT command toggle
+.ds CW `current' window
+.ds FG field group
+.ds FM full\-screen mode
+.ds KA arrow key
+.ds KS scrolling key
+.ds MP physical memory
+.ds MS swap file
+.ds MV virtual memory
+.ds NT \fBNote\fR:
+.ds PU CPU
+.ds Pu cpu
+.ds SA summary area
+.ds TA task area
+.ds TD task display
+.ds TT \fBprocesses\fR or \fBthreads\fR
+.ds TW task window
+\# Reference to the various widths/sizes ------------
+\# - the max screen width limit
+.ds WX 512
+\# - the header width w/ all fields
+.ds WF approximately 250
+\# - pid monitoring limit
+\# Xref's that depend on/mention other stuff --------
+.ds Xa see
+.ds XC See the
+.ds Xc see the
+.ds XT See topic
+.ds Xt see topic
+.ds XX See `OVERVIEW, Linux Memory Types' for additional details
+.ds ZX Accessing smaps values is 10x more costly than other \
+memory statistics and data for other users requires root privileges
+.
+.\" Document /////////////////////////////////////////////////////////////
+.\" ----------------------------------------------------------------------
+.TH TOP 1 "August 2023" "procps-ng" "User Commands"
+.\" ----------------------------------------------------------------------
+.nh
+
+.\" ----------------------------------------------------------------------
+.SH NAME
+.\" ----------------------------------------------------------------------
+top \- display Linux processes
+
+.\" ----------------------------------------------------------------------
+.SH SYNOPSIS
+.\" ----------------------------------------------------------------------
+\*(WE [options]
+
+.\" ----------------------------------------------------------------------
+.SH DESCRIPTION
+.\" ----------------------------------------------------------------------
+The \*(WE program provides a dynamic real-time view of a running system.
+It can display\fB system\fR summary information as well as a list of
+\*(TT currently being managed by the Linux kernel.
+The types of system summary information shown and the types, order and
+size of information displayed for processes are all user configurable
+and that configuration can be made persistent across restarts.
+
+The program provides a limited interactive interface for process
+manipulation as well as a much more extensive interface for personal
+configuration \*(Em encompassing every aspect of its operation.
+And while \*(WE is referred to throughout this document, you are free
+to name the program anything you wish.
+That new name, possibly an alias, will then be reflected on \*(We's
+display and used when reading and writing a \*(CF.
+
+.\" ----------------------------------------------------------------------
+.SH OVERVIEW
+.\" ----------------------------------------------------------------------
+.\" ......................................................................
+.SS Documentation
+.\" ----------------------------------------------------------------------
+The remaining Table of Contents
+
+.nf
+ OVERVIEW
+ Operation
+ Linux Memory Types
+ 1. COMMAND\-LINE Options
+ 2. SUMMARY Display
+ a. UPTIME and LOAD Averages
+ b. TASK and CPU States
+ c. MEMORY Usage
+ 3. FIELDS / Columns Display
+ a. DESCRIPTIONS of Fields
+ b. MANAGING Fields
+ 4. INTERACTIVE Commands
+ a. GLOBAL Commands
+ b. SUMMARY AREA Commands
+ c. TASK AREA Commands
+ 1. Appearance
+ 2. Content
+ 3. Size
+ 4. Sorting
+ d. COLOR Mapping
+ 5. ALTERNATE\-DISPLAY Provisions
+ a. WINDOWS Overview
+ b. COMMANDS for Windows
+ c. SCROLLING a Window
+ d. SEARCHING in a Window
+ e. FILTERING in a Window
+ 6. FILES
+ a. PERSONAL Configuration File
+ b. ADDING INSPECT Entries
+ c. SYSTEM Configuration File
+ d. SYSTEM Restrictions File
+ 7. ENVIRONMENT VARIABLE(S)
+ 8. STUPID TRICKS Sampler
+ a. Kernel Magic
+ b. Bouncing Windows
+ c. The Big Bird Window
+ d. The Ol' Switcheroo
+ 9. BUGS, 10. SEE Also
+.fi
+
+.\" ......................................................................
+.SS Operation
+.\" ----------------------------------------------------------------------
+When operating \*(We, the two most important keys are the help (h or ?)
+key and quit (`q') key.
+Alternatively, you could simply use the traditional interrupt key (^C)
+when you're done.
+
+When started for the first time, you'll be presented with these traditional
+elements on the main \*(We screen: 1) Summary Area; 2) Fields/Columns Header;
+3) Task Area.
+Each of these will be explored in the sections that follow.
+There is also an Input/Message line between the Summary Area and Columns
+Header which needs no further explanation.
+
+The main \*(We screen is \fIgenerally\fR quite adaptive to changes in
+terminal dimensions under X-Windows.
+Other \*(We screens may be less so, especially those with static text.
+It ultimately depends, however, on your particular window manager and
+terminal emulator.
+There may be occasions when their view of terminal size and current contents
+differs from \*(We's view, which is always based on operating system calls.
+
+Following any re-size operation, if a \*(We screen is corrupted, appears
+incomplete or disordered, simply typing something innocuous like a
+punctuation character or cursor motion key will usually restore it.
+In extreme cases, the following sequence almost certainly will:
+.nf
+ \fIkey/cmd objective \fR
+ ^Z \fBsuspend\fR \*(We
+ fg \fBresume\fR \*(We
+ <Left> force a screen \fBredraw\fR (if necessary)
+.fi
+
+But if the display is still corrupted, there is one more step you could try.
+Insert this command after \*(We has been suspended but before resuming it.
+.nf
+ \fIkey/cmd objective \fR
+ reset restore your \fBterminal settings\fR
+.fi
+
+\*(NT the width of \*(We's display will be limited to \*(WX positions.
+Displaying all fields requires \*(WF characters.
+Remaining screen width is usually allocated to any variable width columns
+currently visible.
+The variable width columns, such as COMMAND, are noted in topic
+3a. DESCRIPTIONS of Fields.
+Actual output width may also be influenced by the \-w switch, which is
+discussed in topic 1. COMMAND\-LINE Options.
+
+Lastly, some of \*(We's screens or functions require the use of cursor
+motion keys like the standard \*(KAs plus the Home, End, PgUp and PgDn keys.
+If your terminal or emulator does not provide those keys, the following
+combinations are accepted as alternatives:
+.nf
+ \fI key equivalent-keys \fR
+ Left alt +\fB h \fR
+ Down alt +\fB j \fR
+ Up alt +\fB k \fR
+ Right alt +\fB l \fR
+ Home alt + ctrl +\fB h \fR
+ PgDn alt + ctrl +\fB j \fR
+ PgUp alt + ctrl +\fB k \fR
+ End alt + ctrl +\fB l \fR
+.fi
+
+The \fBUp\fR and \fBDown\fR \*(KAs have special significance when prompted
+for line input terminated with the <Enter> key.
+Those keys, or their aliases, can be used to retrieve previous input lines
+which can then be edited and re-input.
+And there are four additional keys available with line oriented input.
+.nf
+ \fI key special-significance \fR
+ Up recall \fBolder\fR strings for re-editing
+ Down recall \fBnewer\fR strings or \fBerase\fR entire line
+ Insert toggle between \fBinsert\fR and \fBovertype\fR modes
+ Delete character \fBremoved\fR at cursor, moving others left
+ Home jump to \fBbeginning\fR of input line
+ End jump to \fBend\fR of input line
+.fi
+
+.\" ......................................................................
+.SS Linux Memory Types
+.\" ----------------------------------------------------------------------
+For our purposes there are three types of memory, and one is optional.
+First is \*(MP, a limited resource where code and data must
+reside when executed or referenced.
+Next is the optional \*(MS, where modified (dirty) memory can be saved
+and later retrieved if too many demands are made on \*(MP.
+Lastly we have \*(MV, a nearly unlimited resource serving the
+following goals:
+
+.nf
+ 1. abstraction, free from physical memory addresses/limits
+ 2. isolation, every process in a separate address space
+ 3. sharing, a single mapping can serve multiple needs
+ 4. flexibility, assign a virtual address to a file
+.fi
+
+Regardless of which of these forms memory may take, all are managed as
+pages (typically 4096 bytes) but expressed by default in \*(We as
+KiB (kibibyte).
+The memory discussed under topic `2c. MEMORY Usage' deals with \*(MP
+and the \*(MS for the system as a whole.
+The memory reviewed in topic `3. FIELDS / Columns Display'
+embraces all three memory types, but for individual processes.
+
+For each such process, every memory page is restricted to a single
+quadrant from the table below.
+Both \*(MP and \*(MV can include any of the four, while the \*(MS only
+includes #1 through #3.
+The memory in quadrant #4, when modified, acts as its own dedicated \*(MS.
+
+.nf
+ \fBPrivate\fR | \fBShared\fR
+ \fB1\fR | \fB2\fR
+ \fBAnonymous\fR . stack |
+ . malloc() |
+ . brk()/sbrk() | . POSIX shm*
+ . mmap(PRIVATE, ANON) | . mmap(SHARED, ANON)
+ -----------------------+----------------------
+ . mmap(PRIVATE, fd) | . mmap(SHARED, fd)
+ \fBFile-backed\fR . pgms/shared libs |
+ \fB3\fR | \fB4\fR
+.fi
+
+The following may help in interpreting process level memory values displayed
+as scalable columns and discussed under topic `3a. DESCRIPTIONS of Fields'.
+
+.nf
+ %MEM \- simply RES divided by total \*(MP
+ CODE \- the `pgms' portion of quadrant \fB3\fR
+ DATA \- the entire quadrant \fB1\fR portion of VIRT plus all
+ explicit mmap file-backed pages of quadrant \fB3\fR
+ RES \- anything occupying \*(MP which, beginning with
+ Linux-4.5, is the sum of the following three fields:
+ RSan \- quadrant \fB1\fR pages, which include any
+ former quadrant \fB3\fR pages if modified
+ RSfd \- quadrant \fB3\fR and quadrant \fB4\fR pages
+ RSsh \- quadrant \fB2\fR pages
+ RSlk \- subset of RES which cannot be swapped out (any quadrant)
+ SHR \- subset of RES (excludes \fB1\fR, includes all \fB2\fR & \fB4\fR, some \fB3\fR)
+ SWAP \- potentially any quadrant except \fB4\fR
+ USED \- simply the sum of RES and SWAP
+ VIRT \- everything in-use and/or reserved (all quadrants)
+.fi
+
+\*(NT Even though program images and shared libraries are considered
+\fIprivate\fR to a process, they will be accounted for as \fIshared\fR
+(SHR) by the kernel.
+
+.\" ----------------------------------------------------------------------
+.SH 1. COMMAND-LINE Options
+.\" ----------------------------------------------------------------------
+Mandatory\fI arguments\fR to long options are mandatory for short
+options too.
+
+Although not required, the equals sign can be used with either option
+form and whitespace before and/or after the `=' is permitted.
+
+.TP 3
+\-\fBb\fR, \fB\-\-batch\fR
+Starts \*(We in Batch mode, which could be useful for sending output
+from \*(We to other programs or to a file.
+In this mode, \*(We will not accept input and runs until the iterations
+limit you've set with the `\-n' \*(CO or until killed.
+
+.TP 3
+\-\fBc\fR, \fB\-\-cmdline\-toggle\fR
+Starts \*(We with the last remembered `c' state reversed.
+Thus, if \*(We was displaying command lines, now that field will show program
+names, and vice versa.
+\*(XC `c' \*(CI for additional information.
+
+.TP 3
+\-\fBd\fR, \fB\-\-delay\fR = \fISECS\fR [\fI.TENTHS\fR]\fR
+Specifies the delay between screen updates, and overrides the corresponding
+value in one's personal \*(CF or the startup default.
+Later this can be changed with the `d' or `s' \*(CIs.
+
+Fractional seconds are honored, but a negative number is not allowed.
+In all cases, however, such changes are prohibited if \*(We is running
+in Secure mode, except for root (unless the `s' \*(CO was used).
+For additional information on Secure mode \*(Xt 6d. SYSTEM Restrictions File.
+
+.TP 3
+\-\fBE\fR, \fB\-\-scale-summary-mem\fR = \fIk\fR | \fIm\fR | \fIg\fR | \fIt\fR | \fIp\fR | \fIe\fR
+Instructs \*(We to force \*(SA memory to be scaled as:
+.nf
+ k \- kibibytes
+ m \- mebibytes
+ g \- gibibytes
+ t \- tebibytes
+ p \- pebibytes
+ e \- exbibytes
+.fi
+
+Later this can be changed with the `E' \*(CT.
+
+.TP 3
+\-\fBe\fR, \fB\-\-scale-task-mem\fR = \fIk\fR | \fIm\fR | \fIg\fR | \fIt\fR | \fIp\fR
+Instructs \*(We to force \*(TA memory to be scaled as:
+.nf
+ k \- kibibytes
+ m \- mebibytes
+ g \- gibibytes
+ t \- tebibytes
+ p \- pebibytes
+.fi
+
+Later this can be changed with the `e' \*(CT.
+
+.TP 3
+\-\fBH\fR, \fB\-\-threads-show\fR
+Instructs \*(We to display individual threads.
+Without this \*(CO a summation of all threads in each process is shown.
+Later this can be changed with the `H' \*(CI.
+
+.TP 3
+\-\fBh\fR, \fB\-\-help\fR
+Display usage help text, then quit.
+
+.TP 3
+\-\fBi\fR, \fB\-\-idle-toggle\fR
+Starts \*(We with the last remembered `i' state reversed.
+When this toggle is \*F, tasks that have not used any \*(PU since the
+last update will not be displayed.
+For additional information regarding this toggle
+\*(Xt 4c. TASK AREA Commands, SIZE.
+
+.TP 3
+\-\fBn\fR, \fB\-\-iterations\fR = \fINUMBER\fR
+Specifies the maximum number of iterations, or frames, \*(We should
+produce before ending.
+
+.TP 3
+\-\fBO\fR, \fB\-\-list-fields\fR
+This option acts as a form of help for the \-o option shown below.
+It will cause \*(We to print each of the available field names on a
+separate line, then quit.
+Such names are subject to NLS (National Language Support) translation.
+
+.TP 3
+\-\fBo\fR, \fB\-\-sort-override\fR = \fIFIELDNAME\fR
+Specifies the name of the field on which tasks will be sorted, independent
+of what is reflected in the configuration file.
+You can prepend a `+' or `\-' to the field name to also override the sort
+direction.
+A leading `+' will force sorting high to low, whereas a `\-' will ensure
+a low to high ordering.
+
+This option exists primarily to support automated/scripted batch mode
+operation.
+
+.TP 3
+\-\fBp\fR, \fB\-\-pid\fR = \fIPIDLIST\fR \
+(as: \fI1\fR,\fI2\fR,\fI3\fR, ...\fR or \fR-p\fI1\fR -p\fI2\fR -p\fI3\fR ...)
+Monitor only processes with specified process IDs.
+However, when combined with Threads mode (`H'), all processes in the
+thread group (\*(Xa TGID) of each monitored PID will also be shown.
+
+This option can be given up to 20 times, or you can provide a comma delimited
+list with up to 20 pids.
+Co-mingling both approaches is permitted.
+
+A pid value of zero will be treated as the process id of the \*(We program
+itself once it is running.
+
+This is a \*(CO only and should you wish to return to normal operation,
+it is not necessary to quit and restart \*(We \*(Em just issue any
+of these \*(CIs: `=', `u' or `U'.
+
+The `p', `u' and `U' \*(COs are mutually exclusive.
+
+.TP 3
+\-\fBS\fR, \fB\-\-accum-time-toggle\fR
+Starts \*(We with the last remembered `S' state reversed.
+When Cumulative time mode is \*O, each process is listed with the \*(Pu
+time that it and its dead children have used.
+\*(XC `S' \*(CI for additional information regarding this mode.
+
+.TP 3
+\-\fBs\fR, \fB\-\-secure-mode\fR
+Starts \*(We with secure mode forced, even for root.
+This mode is far better controlled through a system \*(CF
+(\*(Xt 6. FILES).
+
+.TP 3
+\-\fBU\fR, \fB\-\-filter-any-user\fR = \fIUSER\fR (as: \fInumber\fR or \fIname\fR)
+Display only processes with a user id or user name matching that given.
+This option matches on\fI any\fR user (\fIreal\fR, \fIeffective\fR,
+\fIsaved\fR, or \fIfilesystem\fR).
+
+Prepending an exclamation point (`!') to the user id or name instructs \*(We
+to display only processes with users not matching the one provided.
+
+The `p', `U' and `u' \*(COs are mutually exclusive.
+
+.TP 3
+\-\fBu\fR, \fB\-\-filter-only-euser\fR = \fIUSER\fR (as: \fInumber\fR or \fIname\fR)
+Display only processes with a user id or user name matching that given.
+This option matches on the\fI effective\fR user id only.
+
+Prepending an exclamation point (`!') to the user id or name instructs \*(We
+to display only processes with users not matching the one provided.
+
+The `p', `U' and `u' \*(COs are mutually exclusive.
+
+.TP 3
+\-\fBV\fR, \fB\-\-version\fR
+Display version information, then quit.
+
+.TP 3
+\-\fBw\fR, \fB\-\-width\fR [=\fICOLUMNS\fR]
+In Batch mode, when used without an argument \*(We will format
+output using the COLUMNS= and LINES= environment variables, if set.
+Otherwise, width will be fixed at the maximum \*(WX columns.
+With an argument, output width can be decreased or increased (up to \*(WX)
+but the number of rows is considered unlimited.
+
+In normal display mode, when used without an argument \*(We will\fI attempt\fR
+to format output using the COLUMNS= and LINES= environment variables, if set.
+With an argument, output width can only be decreased, not increased.
+Whether using environment variables or an argument with \-w, when\fI not\fR
+in Batch mode actual terminal dimensions can never be exceeded.
+
+\*(NT Without the use of this \*(CO, output width is always based on the
+terminal at which \*(We was invoked whether or not in Batch mode.
+
+.TP 3
+\-\fB1\fR, \fB\-\-single-cpu-toggle\fR
+Starts \*(We with the last remembered Cpu States portion of the \*(SA reversed.
+Either all \*(Pu information will be displayed in a single line or
+each \*(Pu will be displayed separately, depending on the state of the NUMA Node
+\*(CT (`2').
+
+\*(XC `1' and `2' \*(CIs for additional information.
+
+.\" ----------------------------------------------------------------------
+.SH 2. SUMMARY Display
+.\" ----------------------------------------------------------------------
+Each of the following three areas are individually controlled through
+one or more \*(CIs.
+\*(XT 4b. SUMMARY AREA Commands for additional information regarding
+these provisions.
+
+.\" ......................................................................
+.SS 2a. UPTIME and LOAD Averages
+.\" ----------------------------------------------------------------------
+This portion consists of a single line containing:
+.nf
+ \fBprogram\fR or\fB window\fR name, depending on display mode
+ current time and length of time since last boot
+ total number of users
+ system load avg over the last 1, 5 and 15 minutes
+.fi
+
+.\" ......................................................................
+.SS 2b. TASK and CPU States
+.\" ----------------------------------------------------------------------
+This portion consists of a minimum of two lines.
+In an SMP environment, additional lines can reflect individual \*(PU
+state percentages.
+
+Line 1 shows total\fB tasks\fR or\fB threads\fR, depending on the state
+of the Threads-mode toggle.
+That total is further classified as:
+.nf
+ running; sleeping; stopped; zombie
+.fi
+
+Line 2 shows \*(PU state percentages based on the interval since the
+last refresh.
+
+As a default, percentages for these individual categories are displayed.
+Depending on your kernel version, the \fBst\fR field may not be shown.
+.nf
+ \fBus\fR : time running un-niced user processes
+ \fBsy\fR : time running kernel processes
+ \fBni\fR : time running niced user processes
+ \fBid\fR : time spent in the kernel idle handler
+ \fBwa\fR : time waiting for I/O completion
+ \fBhi\fR : time spent servicing hardware interrupts
+ \fBsi\fR : time spent servicing software interrupts
+ \fBst\fR : time stolen from this vm by the hypervisor
+.fi
+
+The `sy' value above also reflects the time running a virtual \*(Pu
+for guest operating systems, including those that have been niced.
+
+Beyond the first tasks/threads line, there are alternate \*(PU display
+modes available via the 4-way `t' \*(CT.
+They show an abbreviated summary consisting of these elements:
+.nf
+ \fR a \fR b \fR c \fR d
+ %Cpu(s): \fB75.0\fR/25.0 \fB100\fR[ ... ]
+
+.fi
+
+Where: a) is the `user' (us + ni) percentage; b) is the `system'
+(sy + hi + si + guests) percentage; c) is the total percentage;
+and d) is one of two visual graphs of those representations.
+Such graphs also reflect separate `user' and `system' portions.
+
+If the `4' \*(CT is used to yield more than two cpus per line,
+results will be further abridged eliminating the a) and b) elements.
+However, that information is still reflected in the graph itself
+assuming color is active or, if not, bars vs. blocks are being shown.
+
+\*(XT 4b. SUMMARY AREA Commands for additional information on the `t'
+and `4' \*(CTs.
+
+.\" ......................................................................
+.SS 2c. MEMORY Usage
+.\" ----------------------------------------------------------------------
+This portion consists of two lines which may express values in kibibytes (KiB)
+through exbibytes (EiB) depending on the scaling factor enforced
+with the `E' \*(CI. The /proc/meminfo source fields are shown in parenthesis.
+
+Line 1 reflects \*(MP, classified as:
+.nf
+ total ( MemTotal )
+ free ( MemFree )
+ used ( MemTotal - MemAvailable )
+ buff/cache ( Buffers + Cached + SReclaimable )
+.fi
+
+Line 2 reflects mostly \*(MV, classified as:
+.nf
+ total ( SwapTotal )
+ free ( SwapFree )
+ used ( SwapTotal - SwapFree )
+ avail ( MemAvailable, which is \*(MP )
+.fi
+
+The \fBavail\fR number on line 2 is an estimation of \*(MP available for
+starting new applications, without swapping.
+Unlike the \fBfree\fR field, it attempts to account for readily reclaimable
+page cache and memory slabs.
+It is available on kernels 3.14, emulated on kernels 2.6.27+, otherwise
+the same as \fBfree\fR.
+
+In the alternate memory display modes, two abbreviated summary lines
+are shown consisting of these elements:
+.nf
+ \fR a \fR b c
+ GiB Mem : \fB18.7\fR/15.738 [ ... ]
+ GiB Swap: \fB 0.0\fR/7.999 [ ... ]
+.fi
+
+Where: a) is the percentage used; b) is the total available; and c) is one of two
+visual graphs of those representations.
+
+In the case of \*(MP, the percentage represents the \fBtotal\fR minus the estimated
+\fBavail\fR noted above.
+The `Mem' graph itself is divided between the non-cached portion of \fBused\fR and
+any remaining memory not otherwise accounted for by \fBavail\fR.
+\*(XT 4b. SUMMARY AREA Commands and the `m' command for additional information
+on that special 4-way toggle.
+
+This table may help in interpreting the scaled values displayed:
+.nf
+ KiB = kibibyte = 1024 bytes
+ MiB = mebibyte = 1024 KiB = 1,048,576 bytes
+ GiB = gibibyte = 1024 MiB = 1,073,741,824 bytes
+ TiB = tebibyte = 1024 GiB = 1,099,511,627,776 bytes
+ PiB = pebibyte = 1024 TiB = 1,125,899,906,842,624 bytes
+ EiB = exbibyte = 1024 PiB = 1,152,921,504,606,846,976 bytes
+.fi
+
+.\" ----------------------------------------------------------------------
+.SH 3. FIELDS / Columns
+.\" ----------------------------------------------------------------------
+.\" ......................................................................
+.SS 3a. DESCRIPTIONS of Fields
+.\" ----------------------------------------------------------------------
+Listed below are \*(We's available process fields (columns).
+They are shown in strict ascii alphabetical order.
+You may customize their position and whether or not they are displayable
+with the `f' (Fields Management) \*(CI.
+
+Any field is selectable as the sort field, and you control whether they
+are sorted high-to-low or low-to-high.
+For additional information on sort provisions
+\*(Xt 4c. TASK AREA Commands, SORTING.
+
+The fields related to \*(MP or \*(MV reference `(KiB)' which is the
+unsuffixed display mode.
+Such fields may, however, be scaled from KiB through PiB.
+That scaling is influenced via the `e' \*(CI or established for startup
+through a build option.
+
+.TP 4
+\fB%CPU \*(Em \*(PU Usage \fR
+The task's share of the elapsed \*(PU time since the last screen update,
+expressed as a percentage of total \*(PU time.
+
+In a true SMP environment, if a process is multi-threaded and \*(We is
+\fInot\fR operating in Threads mode, amounts greater than 100% may be
+reported.
+You toggle Threads mode with the `H' \*(CI.
+
+Also for multi-processor environments, if Irix mode is \*F, \*(We
+will operate in Solaris mode where a task's \*(Pu usage will be
+divided by the total number of \*(PUs.
+You toggle Irix/Solaris modes with the `I' \*(CI.
+
+\*(NT When running in forest view mode (`V') with children
+collapsed (`v'), this field will also include the \*(PU time of
+those unseen children.
+\*(XT 4c. TASK AREA Commands, CONTENT for more information regarding
+the `V' and `v' toggles.
+
+.TP 4
+\fB%CUC \*(Em \*(PU Utilization \fR
+This field is identical to %CUU below, except the percentage also
+reflects reaped child processes.
+
+.TP 4
+\fB%CUU \*(Em \*(PU Utilization \fR
+A task's total \*(PU usage divided by its elapsed running time,
+expressed as a percentage.
+
+If a process currently displays high \*(PU usage, this field can help
+determine if such behavior is normal.
+Conversely, if a process has low \*(PU usage currently, %CUU may reflect
+historically higher demands over its lifetime.
+
+.TP 4
+\fB%MEM \*(Em Memory Usage (RES) \fR
+A task's currently resident share of available \*(MP.
+
+\*(XX.
+
+.TP 4
+\fBAGID \*(Em Autogroup Identifier \fR
+The autogroup identifier associated with a process.
+This feature operates in conjunction with the CFS scheduler
+to improve interactive desktop performance.
+
+When /proc/sys/kernel/sched_autogroup_enabled is set, a new
+autogroup is created with each new session (\*(Xa SID).
+All subsequently forked processes in that session inherit membership in
+this autogroup.
+The kernel then attempts to equalize distribution of CPU cycles
+across such groups.
+Thus, an autogroup with many \*(PU intensive processes (e.g make -j)
+will not dominate an autogroup with only one or two processes.
+
+When -1 is displayed it means this information is not available.
+
+.TP 4
+\fBAGNI \*(Em Autogroup Nice Value \fR
+The autogroup nice value which affects scheduling of all processes
+in that group.
+A negative nice value means higher priority, whereas a positive nice
+value means lower priority.
+
+.TP 4
+\fBCGNAME \*(Em Control Group Name \fR
+The name of the control group to which a process belongs,
+or `\-' if not applicable for that process.
+
+This will typically be the last entry in the full list of control
+groups as shown under the next heading (CGROUPS).
+And as is true there, this field is also variable width.
+
+.TP 4
+\fBCGROUPS \*(Em Control Groups \fR
+The names of the control group(s) to which a process belongs,
+or `\-' if not applicable for that process.
+
+Control Groups provide for allocating resources (cpu, memory, network
+bandwidth, etc.) among installation-defined groups of processes.
+They enable fine-grained control over allocating, denying, prioritizing,
+managing and monitoring those resources.
+
+Many different hierarchies of cgroups can exist simultaneously on a system
+and each hierarchy is attached to one or more subsystems.
+A subsystem represents a single resource.
+
+\*(NT The CGROUPS field, unlike most columns, is not fixed-width.
+When displayed, it plus any other variable width columns will be allocated
+all remaining screen width (up to the maximum \*(WX characters).
+Even so, such variable width fields could still suffer truncation.
+\*(XT 5c. SCROLLING a Window for additional information on accessing
+any truncated data.
+
+.TP 4
+\fBCODE \*(Em Code Size (KiB) \fR
+The amount of \*(MP currently devoted to executable code, also known
+as the Text Resident Set size or TRS.
+
+\*(XX.
+
+.TP 4
+\fBCOMMAND \*(Em Command\fB Name\fR or Command\fB Line \fR
+Display the command line used to start a task or the name of the associated
+program.
+You toggle between command\fI line\fR and\fI name\fR with `c', which is both
+a \*(CO and an \*(CI.
+
+When you've chosen to display command lines, processes without a command
+line (like kernel threads) will be shown with only the program name in
+brackets, as in this example:
+ \fR[kthreadd]
+
+This field may also be impacted by the forest view display mode.
+\*(XC `V' \*(CI for additional information regarding that mode.
+
+\*(NT The COMMAND field, unlike most columns, is not fixed-width.
+When displayed, it plus any other variable width columns will be allocated
+all remaining screen width (up to the maximum \*(WX characters).
+Even so, such variable width fields could still suffer truncation.
+This is especially true for this field when command lines are being
+displayed (the `c' \*(CI.)
+\*(XT 5c. SCROLLING a Window for additional information on accessing
+any truncated data.
+
+.TP 4
+\fBDATA \*(Em Data + Stack Size (KiB) \fR
+The amount of private memory \fIreserved\fR by a process.
+It is also known as the Data Resident Set or DRS.
+Such memory may not yet be mapped to \*(MP (RES) but will always be
+included in the \*(MV (VIRT) amount.
+
+\*(XX.
+
+.TP 4
+\fBELAPSED \*(Em Elapsed Running Time\fR
+The length of time since a process was started.
+Thus, the most recently started task will display the smallest time interval.
+
+The value will be expressed as `HH,MM' (hours,minutes) but is subject to
+additional scaling if the interval becomes too great to fit column width.
+At that point it will be scaled to `DD+HH' (days+hours) and possibly
+beyond.
+
+.TP 4
+\fBENVIRON \*(Em Environment variables \fR
+Display all of the environment variables, if any, as seen by the
+respective processes.
+These variables will be displayed in their raw native order, not the
+sorted order you are accustomed to seeing with an unqualified `set'.
+
+\*(NT The ENVIRON field, unlike most columns, is not fixed-width.
+When displayed, it plus any other variable width columns will be allocated
+all remaining screen width (up to the maximum \*(WX characters).
+Even so, such variable width fields could still suffer truncation.
+This is especially true for this field.
+\*(XT 5c. SCROLLING a Window for additional information on accessing
+any truncated data.
+
+.TP 4
+\fBEXE \*(Em Executable Path \fR
+Where available, this is the full path to the executable,
+including the program name.
+
+\*(NT The EXE field, unlike most columns, is not fixed-width.
+When displayed, it plus any other variable width columns will be allocated
+all remaining screen width (up to the maximum \*(WX characters).
+
+.TP 4
+\fBFlags \*(Em Task Flags \fR
+This column represents the task's current scheduling flags which are
+expressed in hexadecimal notation and with zeros suppressed.
+These flags are officially documented in <linux/sched.h>.
+
+.TP 4
+\fBGID \*(Em Group Id \fR
+The\fI effective\fR group ID.
+
+.TP 4
+\fBGROUP \*(Em Group Name \fR
+The\fI effective\fR group name.
+
+.TP 4
+\fBLOGID \*(Em Login User Id \fR
+The user ID used at\fI login\fR.
+When -1 is displayed it means this information is not available.
+
+.TP 4
+\fBLXC \*(Em Lxc Container Name \fR
+The name of the lxc container within which a task is running.
+If a process is not running inside a container, a dash (`\-') will be shown.
+
+.TP 4
+\fBNI \*(Em Nice Value \fR
+The nice value of the task.
+A negative nice value means higher priority, whereas a positive nice value
+means lower priority.
+Zero in this field simply means priority will not be adjusted in determining
+a task's dispatch-ability.
+
+\*(NT This value only affects scheduling priority relative to other processes
+in the same autogroup.
+\*(XC `AGID' and `AGNI' fields for additional information on autogroups.
+
+.TP 4
+\fBNU \*(Em Last known NUMA node \fR
+A number representing the NUMA node associated with the last used processor (`P').
+When -1 is displayed it means that NUMA information is not available.
+
+\*(XC `2' and `3' \*(CIs for additional NUMA provisions affecting the \*(SA.
+
+.TP 4
+\fBOOMa \*(Em Out of Memory Adjustment Factor \fR
+The value, ranging from -1000 to +1000, added to the current out of memory
+score (OOMs) which is then used to determine which task to kill when memory
+is exhausted.
+
+.TP 4
+\fBOOMs \*(Em Out of Memory Score \fR
+The value, ranging from 0 to +1000, used to select task(s) to kill when memory
+is exhausted.
+Zero translates to `never kill' whereas 1000 means `always kill'.
+
+.TP 4
+\fBP \*(Em Last used \*(PU (SMP) \fR
+A number representing the last used processor.
+In a true SMP environment this will likely change frequently since the kernel
+intentionally uses weak affinity.
+Also, the very act of running \*(We may break this weak affinity and cause more
+processes to change \*(PUs more often (because of the extra demand for
+\*(Pu time).
+
+.TP 4
+\fBPGRP \*(Em Process Group Id \fR
+Every process is member of a unique process group which is used for
+distribution of signals and by terminals to arbitrate requests for their
+input and output.
+When a process is created (forked), it becomes a member of the process
+group of its parent.
+By convention, this value equals the process ID (\*(Xa PID) of the first
+member of a process group, called the process group leader.
+
+.TP 4
+\fBPID \*(Em Process Id \fR
+The task's unique process ID, which periodically wraps, though never
+restarting at zero.
+In kernel terms, it is a dispatchable entity defined by a task_struct.
+
+This value may also be used as: a process group ID (\*(Xa PGRP);
+a session ID for the session leader (\*(Xa SID);
+a thread group ID for the thread group leader (\*(Xa TGID);
+and a TTY process group ID for the process group leader (\*(Xa TPGID).
+
+.TP 4
+\fBPPID \*(Em Parent Process Id \fR
+The process ID (pid) of a task's parent.
+
+.TP 4
+\fBPR \*(Em Priority \fR
+The scheduling priority of the task.
+If you see `rt' in this field, it means the task is running
+under real time scheduling priority.
+
+Under linux, real time priority is somewhat misleading since traditionally
+the operating itself was not preemptible.
+And while the 2.6 kernel can be made mostly preemptible, it is not always so.
+
+.TP 4
+\fBPSS \*(Em Proportional Resident Memory, smaps (KiB) \fR
+The proportion of this task's share of `RSS' where each page is divided by
+the number of processes sharing it.
+It is also the sum of the `PSan', `PSfd' and `PSsh' fields.
+
+For example, if a process has 1000 resident pages alone and 1000 resident
+pages shared with another process, its `PSS' would be 1500 (times page size).
+
+\*(ZX.
+
+.PP
+\fBPSan \*(Em Proportional Anonymous Memory, smaps (KiB) \fR
+.br
+\fBPSfd \*(Em Proportional File Memory, smaps (KiB) \fR
+.br
+\fBPSsh \*(Em Proportional Shmem Memory, smaps (KiB) \fR
+.RS 4
+As was true for `PSS' above (total proportional resident memory),
+these fields represent the proportion of this task's share of each type
+of memory divided by the number of processes sharing it.
+
+\*(ZX.
+.RE
+
+.TP 4
+\fBRES \*(Em Resident Memory Size (KiB) \fR
+A subset of the virtual address space (VIRT) representing the non-swapped
+\*(MP a task is currently using.
+It is also the sum of the `RSan', `RSfd' and `RSsh' fields.
+
+It can include private anonymous pages, private pages mapped to files
+(including program images and shared libraries) plus shared anonymous pages.
+All such memory is backed by the \*(MS represented separately under SWAP.
+
+Lastly, this field may also include shared file-backed pages which, when
+modified, act as a dedicated \*(MS and thus will never impact SWAP.
+
+\*(XX.
+
+.TP 4
+\fBRSS \*(Em Resident Memory, smaps (KiB) \fR
+Another, more precise view of process non-swapped \*(MP.
+It is obtained from the `smaps_rollup' file and is
+generally slightly larger than that shown for `RES'.
+
+\*(ZX.
+
+.TP 4
+\fBRSan \*(Em Resident Anonymous Memory Size (KiB) \fR
+A subset of resident memory (RES) representing private pages not
+mapped to a file.
+
+.TP 4
+\fBRSfd \*(Em Resident File-Backed Memory Size (KiB) \fR
+A subset of resident memory (RES) representing the implicitly shared
+pages supporting program images and shared libraries.
+It also includes explicit file mappings, both private and shared.
+
+.TP 4
+\fBRSlk \*(Em Resident Locked Memory Size (KiB) \fR
+A subset of resident memory (RES) which cannot be swapped out.
+
+.TP 4
+\fBRSsh \*(Em Resident Shared Memory Size (KiB) \fR
+A subset of resident memory (RES) representing the explicitly shared
+anonymous shm*/mmap pages.
+
+.TP 4
+\fBRUID \*(Em Real User Id \fR
+The\fI real\fR user ID.
+
+.TP 4
+\fBRUSER \*(Em Real User Name \fR
+The\fI real\fR user name.
+
+.TP 4
+\fBS \*(Em Process Status \fR
+The status of the task which can be one of:
+ \fBD\fR = uninterruptible sleep
+ \fBI\fR = idle
+ \fBR\fR = running
+ \fBS\fR = sleeping
+ \fBT\fR = stopped by job control signal
+ \fBt\fR = stopped by debugger during trace
+ \fBZ\fR = zombie
+
+Tasks shown as running should be more properly thought of as ready to run
+\*(Em their task_struct is simply represented on the Linux run-queue.
+Even without a true SMP machine, you may see numerous tasks in this state
+depending on \*(We's delay interval and nice value.
+
+.TP 4
+\fBSHR \*(Em Shared Memory Size (KiB) \fR
+A subset of resident memory (RES) that may be used by other processes.
+It will include shared anonymous pages and shared file-backed pages.
+It also includes private pages mapped to files representing
+program images and shared libraries.
+
+\*(XX.
+
+.TP 4
+\fBSID \*(Em Session Id \fR
+A session is a collection of process groups (\*(Xa PGRP),
+usually established by the login shell.
+A newly forked process joins the session of its creator.
+By convention, this value equals the process ID (\*(Xa PID) of the first
+member of the session, called the session leader, which is usually the
+login shell.
+
+.TP 4
+\fBSTARTED \*(Em Start Time Interval\fR
+The length of time since system boot when a process started.
+Thus, the most recently started task will display the largest time interval.
+
+The value will be expressed as `MM:SS' (minutes:seconds).
+But if the interval is too great to fit column width it will be scaled
+as `HH,MM' (hours,minutes) and possibly beyond.
+
+.TP 4
+\fBSUID \*(Em Saved User Id \fR
+The\fI saved\fR user ID.
+
+.TP 4
+\fBSUPGIDS \*(Em Supplementary Group IDs \fR
+The IDs of any supplementary group(s) established at login or
+inherited from a task's parent.
+They are displayed in a comma delimited list.
+
+\*(NT The SUPGIDS field, unlike most columns, is not fixed-width.
+When displayed, it plus any other variable width columns will be allocated
+all remaining screen width (up to the maximum \*(WX characters).
+
+.TP 4
+\fBSUPGRPS \*(Em Supplementary Group Names \fR
+The names of any supplementary group(s) established at login or
+inherited from a task's parent.
+They are displayed in a comma delimited list.
+
+\*(NT The SUPGRPS field, unlike most columns, is not fixed-width.
+When displayed, it plus any other variable width columns will be allocated
+all remaining screen width (up to the maximum \*(WX characters).
+
+.TP 4
+\fBSUSER \*(Em Saved User Name \fR
+The\fI saved\fR user name.
+
+.TP 4
+\fBSWAP \*(Em Swapped Size (KiB) \fR
+The formerly resident portion of a task's address space written
+to the \*(MS when \*(MP becomes over committed.
+
+\*(XX.
+
+.TP 4
+\fBTGID \*(Em Thread Group Id \fR
+The ID of the thread group to which a task belongs.
+It is the PID of the thread group leader.
+In kernel terms, it represents those tasks that share an mm_struct.
+
+.TP 4
+\fBTIME \*(Em \*(PU Time \fR
+Total \*(PU time the task has used since it started.
+When Cumulative mode is \*O, each process is listed with the \*(Pu
+time that it and its dead children have used.
+You toggle Cumulative mode with `S', which is both a \*(CO and an \*(CI.
+\*(XC `S' \*(CI for additional information regarding this mode.
+
+.TP 4
+\fBTIME+ \*(Em \*(PU Time, hundredths \fR
+The same as TIME, but reflecting more granularity through hundredths
+of a second.
+
+.TP 4
+\fBTPGID \*(Em Tty Process Group Id \fR
+The process group ID of the foreground process for the connected tty,
+or \-1 if a process is not connected to a terminal.
+By convention, this value equals the process ID (\*(Xa PID) of the
+process group leader (\*(Xa PGRP).
+
+.TP 4
+\fBTTY \*(Em Controlling Tty \fR
+The name of the controlling terminal.
+This is usually the device (serial port, pty, etc.) from which the
+process was started, and which it uses for input or output.
+However, a task need not be associated with a terminal, in which case
+you'll see `?' displayed.
+
+.TP 4
+\fBUID \*(Em User Id \fR
+The\fI effective\fR user ID of the task's owner.
+
+.TP 4
+\fBUSED \*(Em Memory in Use (KiB) \fR
+This field represents the non-swapped \*(MP a task is using (RES) plus
+the swapped out portion of its address space (SWAP).
+
+\*(XX.
+
+.TP 4
+\fBUSER \*(Em User Name \fR
+The\fI effective\fR user name of the task's owner.
+
+.TP 4
+\fBUSS \*(Em Unique Set Size \fR
+The non-swapped portion of \*(MP (`RSS') not shared with
+any other process.
+It is derived from the `smaps_rollup' file.
+
+\*(ZX.
+
+.TP 4
+\fBVIRT \*(Em Virtual Memory Size (KiB) \fR
+The total amount of \*(MV used by the task.
+It includes all code, data and shared libraries plus pages that have been
+swapped out and pages that have been mapped but not used.
+
+\*(XX.
+
+.TP 4
+\fBWCHAN \*(Em Sleeping in Function \fR
+This field will show the name of the kernel function in which the task
+is currently sleeping.
+Running tasks will display a dash (`\-') in this column.
+
+.TP 4
+\fBioR \*(Em I/O Bytes Read \fR
+The number of bytes a process caused to be fetched from the storage layer.
+
+Root privileges are required to display `io' data for other users.
+
+.TP 4
+\fBioRop \*(Em I/O Read Operations \fR
+The number of read I/O operations (syscalls) for a process.
+Such calls might not result in actual physical disk I/O.
+
+.TP 4
+\fBioW \*(Em I/O Bytes Written \fR
+The number of bytes a process caused to be sent to the storage layer.
+
+.TP 4
+\fBioWop \*(Em I/O Write Operations \fR
+The number of write I/O operations (syscalls) for a process.
+Such calls might not result in actual physical disk I/O.
+
+.TP 4
+\fBnDRT \*(Em Dirty Pages Count \fR
+The number of pages that have been modified since they were last
+written to \*(AS.
+Dirty pages must be written to \*(AS before the corresponding physical
+memory location can be used for some other virtual page.
+
+This field was deprecated with linux 2.6 and is always zero.
+
+.TP 4
+\fBnMaj \*(Em Major Page Fault Count \fR
+The number of\fB major\fR page faults that have occurred for a task.
+A page fault occurs when a process attempts to read from or write to a
+virtual page that is not currently present in its address space.
+A major page fault is when \*(AS access is involved in making that
+page available.
+
+.TP 4
+\fBnMin \*(Em Minor Page Fault count \fR
+The number of\fB minor\fR page faults that have occurred for a task.
+A page fault occurs when a process attempts to read from or write to a
+virtual page that is not currently present in its address space.
+A minor page fault does not involve \*(AS access in making that
+page available.
+
+.TP 4
+\fBnTH \*(Em Number of Threads \fR
+The number of threads associated with a process.
+
+.TP 4
+\fBnsCGROUP \*(Em CGROUP namespace \fR
+The Inode of the namespace used to hide the identity of the control group of
+which process is a member.
+
+.TP 4
+\fBnsIPC \*(Em IPC namespace \fR
+The Inode of the namespace used to isolate interprocess communication (IPC)
+resources such as System V IPC objects and POSIX message queues.
+
+.TP 4
+\fBnsMNT \*(Em MNT namespace \fR
+The Inode of the namespace used to isolate filesystem mount points thus
+offering different views of the filesystem hierarchy.
+
+.TP 4
+\fBnsNET \*(Em NET namespace \fR
+The Inode of the namespace used to isolate resources such as network devices,
+IP addresses, IP routing, port numbers, etc.
+
+.TP 4
+\fBnsPID \*(Em PID namespace \fR
+The Inode of the namespace used to isolate process ID numbers
+meaning they need not remain unique.
+Thus, each such namespace could have its own `init/systemd' (PID #1) to
+manage various initialization tasks and reap orphaned child processes.
+
+.TP 4
+\fBnsTIME \*(Em TIME namespace \fR
+The Inode of the namespace which allows processes to see different system
+times in a way similar to the UTS namespace.
+
+.TP 4
+\fBnsUSER \*(Em USER namespace \fR
+The Inode of the namespace used to isolate the user and group ID numbers.
+Thus, a process could have a normal unprivileged user ID outside a user
+namespace while having a user ID of 0, with full root privileges, inside
+that namespace.
+
+.TP 4
+\fBnsUTS \*(Em UTS namespace \fR
+The Inode of the namespace used to isolate hostname and NIS domain name.
+UTS simply means "UNIX Time-sharing System".
+
+.TP 4
+\fBvMj \*(Em Major Page Fault Count Delta\fR
+The number of\fB major\fR page faults that have occurred since the
+last update (see nMaj).
+
+.TP 4
+\fBvMn \*(Em Minor Page Fault Count Delta\fR
+The number of\fB minor\fR page faults that have occurred since the
+last update (see nMin).
+
+.\" ......................................................................
+.SS 3b. MANAGING Fields
+.\" ----------------------------------------------------------------------
+After pressing the \*(CI `f' (Fields Management) you will be presented
+with a screen showing: 1) the \*(CW name; 2) the designated sort field;
+3) all fields in their current order along with descriptions.
+Entries marked with an asterisk are the currently displayed fields,
+screen width permitting.
+
+.RS +4
+.IP \(bu 3
+As the on screen instructions indicate, you navigate among the fields with
+the\fB Up\fR and\fB Down\fR \*(KAs.
+The PgUp, PgDn, Home and End keys can also be used to quickly reach the
+first or last available field.
+
+.IP \(bu 3
+The\fB Right\fR \*(KA selects a field for repositioning and
+the\fB Left\fR \*(KA or the <\fBEnter\fR> key commits that field's
+placement.
+
+.IP \(bu 3
+The `\fBd\fR' key or the <\fBSpace\fR> bar toggles a field's display
+status, and thus the presence or absence of the asterisk.
+
+.IP \(bu 3
+The `\fBs\fR' key designates a field as the sort field.
+\*(XT 4c. TASK AREA Commands, SORTING for additional information regarding
+your selection of a sort field.
+
+.IP \(bu 3
+The `\fBa\fR' and `\fBw\fR' keys can be used to cycle through all available
+windows and the `\fBq\fR' or <\fBEsc\fR> keys exit Fields Management.
+.RS -4
+
+.PP
+The Fields Management screen can also be used to change the \*(CG in
+either \*(FM or \*(AM.
+Whatever was targeted when `q' or <Esc> was pressed will be made current
+as you return to the \*(We display.
+\*(XT 5. ALTERNATE\-DISPLAY Provisions and the `g' \*(CI for insight
+into \*(CWs and \*(FGs.
+
+.PP
+\*(NT Any window that has been scrolled\fI horizontally\fR will be reset if any
+field changes are made via the Fields Management screen.
+Any\fI vertical\fR scrolled position, however, will not be affected.
+\*(XT 5c. SCROLLING a Window for additional information regarding vertical
+and horizontal scrolling.
+
+.\" ----------------------------------------------------------------------
+.SH 4. INTERACTIVE Commands
+.\" ----------------------------------------------------------------------
+Listed below is a brief index of commands within categories.
+Some commands appear more than once \*(Em their meaning or scope may vary
+depending on the context in which they are issued.
+
+.nf
+ 4a.\fI Global-Commands \fR
+ <Ent/Sp> ?, =, 0,
+ A, B, d, E, e, g, H, h, I, k, q, r, s, W, X, Y, Z,
+ ^G, ^K, ^N, ^P, ^U, ^L, ^R
+ 4b.\fI Summary-Area-Commands \fR
+ C, l, t, m, 1, 2, 3, 4, 5, !
+ 4c.\fI Task-Area-Commands \fR
+ Appearance: b, J, j, x, y, z
+ Content: c, F, f, O, o, S, U, u, V, v, ^E
+ Size: #, i, n
+ Sorting: <, >, f, R
+ 4d.\fI Color-Mapping \fR
+ <Ret>, a, B, b, H, M, q, S, T, w, z, 0 \- 7
+ 5b.\fI Commands-for-Windows \fR
+ \-, _, =, +, A, a, G, g, w
+ 5c.\fI Scrolling-a-Window \fR
+ C, Up, Dn, Left, Right, PgUp, PgDn, Home, End
+ 5d.\fI Searching-in-a-Window \fR
+ L, &
+ 5e.\fI Filtering-in-a-Window
+ O, o, ^O, =, +
+.fi
+
+.\" ......................................................................
+.SS 4a. GLOBAL Commands
+.\" ----------------------------------------------------------------------
+The global \*(CIs are\fB always\fR available\fR in both \*(FM and \*(AM.
+However, some of these \*(CIs are\fB not available\fR when running
+in Secure mode.
+
+If you wish to know in advance whether or not your \*(We has been
+secured, simply ask for help and view the system summary on the second
+line.
+
+.TP 7
+\ \ <\fBEnter\fR> or <\fBSpace\fR>\ \ :\fIRefresh-Display \fR
+These commands awaken \*(We and following receipt of any input
+the entire display will be repainted.
+They also force an update of any hotplugged \*(Pu or \*(MP changes.
+
+Use either of these keys if you have a large delay interval and wish
+to see current status,
+
+.TP 7
+\ \ \ \fB?\fR | \fBh\fR\ \ :\fIHelp \fR
+There are two help levels available.
+The first will provide a reminder of all the basic \*(CIs.
+If \*(We is\fI secured\fR, that screen will be abbreviated.
+
+Typing `h' or `?' on that help screen will take you to help for
+those \*(CIs applicable to \*(AM.
+
+.TP 7
+\ \ \ \fB=\fR\ \ :\fIExit-Display-Limits \fR
+Removes restrictions on what is shown.
+This command will reverse any `i' (idle tasks), `n' (max tasks),
+`v' (hide children) and `F' focus commands that might be active.
+It also provides for an exit from PID monitoring, User filtering,
+Other filtering, Locate processing and Combine Cpus mode.
+
+Additionally, if the window has been scrolled it will be reset with
+this command.
+
+.TP 7
+\ \ \ \fB0\fR\ \ :\fIZero-Suppress\fR toggle \fR
+This command determines whether zeros are shown or suppressed for many
+of the fields in a \*(TW.
+Fields like UID, GID, NI, PR or P are not affected by this toggle.
+
+.TP 7
+\ \ \ \fBA\fR\ \ :\fIAlternate-Display-Mode\fR toggle \fR
+This command will switch between \*(FM and \*(AM.
+\*(XT 5. ALTERNATE\-DISPLAY Provisions and the `g' \*(CI for insight
+into \*(CWs and \*(FGs.
+
+.TP 7
+\ \ \ \fBB\fR\ \ :\fIBold-Disable/Enable\fR toggle \fR
+This command will influence use of the bold terminfo capability and
+alters\fB both\fR the \*(SA and \*(TA for the \*(CW.
+While it is intended primarily for use with dumb terminals, it can be
+applied anytime.
+
+\*(NT When this toggle is \*O and \*(We is operating in monochrome mode,
+the\fB entire display\fR will appear as normal text.
+Thus, unless the `x' and/or `y' toggles are using reverse for emphasis,
+there will be no visual confirmation that they are even on.
+
+.TP 7
+*\ \ \fBd\fR | \fBs\fR\ \ :\fIChange-Delay-Time-interval \fR
+You will be prompted to enter the delay time, in seconds, between
+display updates.
+
+Fractional seconds are honored, but a negative number is not allowed.
+Entering 0 causes (nearly) continuous updates, with an unsatisfactory
+display as the system and tty driver try to keep up with \*(We's demands.
+The delay value is inversely proportional to system loading,
+so set it with care.
+
+If at any time you wish to know the current delay time, simply ask for
+help and view the system summary on the second line.
+
+.TP 7
+\ \ \ \fBE\fR\ \ :\fIEnforce-Summary-Memory-Scale\fR in Summary Area
+With this command you can cycle through the available \*(SA memory scaling
+which ranges from KiB (kibibytes or 1,024 bytes) through EiB (exbibytes or
+1,152,921,504,606,846,976 bytes).
+
+If you see a `+' between a displayed number and the following label, it
+means that \*(We was forced to truncate some portion of that number.
+By raising the scaling factor, such truncation can be avoided.
+
+.TP 7
+\ \ \ \fBe\fR\ \ :\fIEnforce-Task-Memory-Scale\fR in Task Area
+With this command you can cycle through the available \*(TA memory scaling
+which ranges from KiB (kibibytes or 1,024 bytes) through PiB (pebibytes or
+1,125,899,906,842,624 bytes).
+
+While \*(We will try to honor the selected target range, additional
+scaling might still be necessary in order to accommodate current values.
+If you wish to see a more homogeneous result in the memory columns,
+raising the scaling range will usually accomplish that goal.
+Raising it too high, however, is likely to produce an all zero result
+which cannot be suppressed with the `0' \*(CI.
+
+.TP 7
+\ \ \ \fBg\fR\ \ :\fIChoose-Another-Window/Field-Group \fR
+You will be prompted to enter a number between 1 and 4 designating the
+\*(FG which should be made the \*(CW.
+You will soon grow comfortable with these 4 windows, especially after
+experimenting with \*(AM.
+
+.TP 7
+\ \ \ \fBH\fR\ \ :\fIThreads-mode\fR toggle \fR
+When this toggle is \*O, individual threads will be displayed for all
+processes in all visible \*(TWs.
+Otherwise, \*(We displays a summation of all threads in each process.
+
+.TP 7
+\ \ \ \fBI\fR\ \ :\fIIrix/Solaris-Mode\fR toggle \fR
+When operating in Solaris mode (`I' toggled \*F), a task's \*(Pu usage
+will be divided by the total number of \*(PUs.
+After issuing this command, you'll be told the new state of this toggle.
+
+.TP 7
+*\ \ \fBk\fR\ \ :\fIKill-a-task \fR
+You will be prompted for a PID and then the signal to send.
+
+Entering no PID or a negative number will be interpreted as
+the default shown in the prompt (the first task displayed).
+A PID value of zero means the \*(We program itself.
+
+The default signal, as reflected in the prompt, is SIGTERM.
+However, you can send any signal, via number or name.
+
+If you wish to abort the kill process, do one of the following
+depending on your progress:
+.nf
+ 1) at the pid prompt, type an invalid number
+ 2) at the signal prompt, type 0 (or any invalid signal)
+ 3) at any prompt, type <Esc>
+.fi
+
+.TP 7
+\ \ \ \fBq\fR\ \ :\fIQuit \fR
+
+.TP 7
+*\ \ \fBr\fR\ \ :\fIRenice-a-Task \fR
+You will be prompted for a PID and then the value to nice it to.
+
+Entering no PID or a negative number will be interpreted as
+the default shown in the prompt (the first task displayed).
+A PID value of zero means the \*(We program itself.
+
+A positive nice value will cause a process to lose priority.
+Conversely, a negative nice value will cause a process to be viewed
+more favorably by the kernel.
+As a general rule, ordinary users can only increase the nice value
+and are prevented from lowering it.
+
+If you wish to abort the renice process, do one of the following
+depending on your progress:
+.nf
+ 1) at the pid prompt, type an invalid number
+ 2) at the nice prompt, type <Enter> with no input
+ 3) at any prompt, type <Esc>
+.fi
+
+.TP 7
+\ \ \ \fBW\fR\ \ :\fIWrite-the-Configuration-File \fR
+This will save all of your options and toggles plus the current
+display mode and delay time.
+By issuing this command just before quitting \*(We, you will be able
+restart later in exactly that same state.
+
+.TP 7
+\ \ \ \fBX\fR\ \ :\fIExtra-Fixed-Width \fR
+Some fields are fixed width and not scalable.
+As such, they are subject to truncation which would be indicated
+by a `+' in the last position.
+
+This \*(CI can be used to alter the widths of the following fields:
+
+.nf
+ \fI field default field default field default \fR
+ GID 5 GROUP 8 WCHAN 10
+ LOGID 5 LXC 8 nsCGROUP 10
+ RUID 5 RUSER 8 nsIPC 10
+ SUID 5 SUSER 8 nsMNT 10
+ UID 5 TTY 8 nsNET 10
+ USER 8 nsPID 10
+ nsTIME 10
+ nsUSER 10
+ nsUTS 10
+.fi
+
+You will be prompted for the amount to be added to the default
+widths shown above.
+Entering zero forces a return to those defaults.
+
+If you enter a negative number, \*(We will automatically increase
+the column size as needed until there is no more truncated data.
+
+\*(NT Whether explicitly or automatically increased, the widths for
+these fields are never decreased by \*(We.
+To narrow them you must specify a smaller number or restore the defaults.
+
+.TP 7
+\ \ \ \fBY\fR\ \ :\fIInspect-Other-Output \fR
+After issuing the `Y' \*(CI, you will be prompted for a target PID.
+Typing a value or accepting the default results in a separate screen.
+That screen can be used to view a variety of files or piped command output
+while the normal \*(We iterative display is paused.
+
+\*(NT This \*(CI is only fully realized when supporting entries have been
+manually added to the end of the \*(We \*(CF.
+For details on creating those entries, \*(Xt 6b. ADDING INSPECT Entries.
+
+Most of the keys used to navigate the Inspect feature are reflected in
+its header prologue.
+There are, however, additional keys available once you have selected a
+particular file or command.
+They are familiar to anyone who has used the pager `less' and are
+summarized here for future reference.
+
+.nf
+ \fI key function \fR
+ = alternate status\-line, file or pipeline
+ / find, equivalent to `L' locate
+ n find next, equivalent to `&' locate next
+ <Space> scroll down, equivalent to <PgDn>
+ b scroll up, equivalent to <PgUp>
+ g first line, equivalent to <Home>
+ G last line, equivalent to <End>
+.fi
+
+.TP 7
+\ \ \ \fBZ\fR\ \ :\fIChange-Color-Mapping \fR
+This key will take you to a separate screen where you can change the
+colors for the \*(CW, or for all windows.
+For details regarding this \*(CI \*(Xt 4d. COLOR Mapping.
+
+.P
+\ \ \fB^G\fR\ \ :\fIDisplay-Control-Groups \fR (Ctrl key + `g')
+.br
+\ \ \fB^K\fR\ \ :\fIDisplay-Cmdline \fR (Ctrl key + `k')
+.br
+\ \ \fB^N\fR\ \ :\fIDisplay-Environment \fR (Ctrl key + `n')
+.br
+\ \ \fB^P\fR\ \ :\fIDisplay-Namesspaces \fR (Ctrl key + `p')
+.br
+\ \ \fB^U\fR\ \ :\fIDisplay-Supplementary-Groups \fR (Ctrl key + `u')
+.br
+.RS +7
+Applied to the first process displayed, these commands will show
+that task's full (potentially wrapped) information.
+Such data will be displayed in a separate window at the bottom of
+the screen while normal \*(We monitoring continues.
+
+Keying the\fI same\fR `Ctrl' command a second time removes that
+separate window as does the `=' command.
+Keying a different `Ctrl' combination, while one is already active,
+immediately transitions to the new information.
+
+Notable among these provisions is the Ctrl+N (environment) command.
+Its output can be extensive and not easily read when line wrapped.
+A more readable version can be achieved with an `Inspect' entry
+in the rcfile like the following.
+
+.nf
+ pipe ^I Environment ^I cat /proc/%d/environ | tr '\\0' '\\n'
+.fi
+
+\*(XC `Y' \*(CI above and topic 6b. ADDING INSPECT Entries for
+additional information.
+
+As an alternative to `Inspect', and available to all of these `Ctrl'
+commands, the tab key can be used to highlight individual elements
+in the bottom window.
+.RS -7
+
+.TP 7
+\ \ \fB^L\fR\ \ :\fILogged-Messages \fR (Ctrl key + `l')
+The 10 most recent messages are displayed in a separate window at
+the bottom of the screen while normal \*(We monitoring continues.
+Keying `^L' a second time removes that window as does the `=' command.
+Use the tab key to highlight individual messages.
+
+.TP 7
+*\ \fB^R\fR\ \ :\fIRenice-an-Autogroup \fR (Ctrl key + `r')
+You will be prompted for a PID and then the value for its
+autogroup AGNI.
+
+Entering no PID will be interpreted as the default shown in
+the prompt (the first task displayed).
+
+A positive AGNI value will cause processes in that autogroup
+to lose priority.
+Conversely, a negative value causes them to be viewed more
+favorably by the kernel.
+Ordinary users are not allowed to set negative AGNI values.
+
+If you wish to abort the renice process type <Esc>.
+
+.IP "*" 3
+The commands shown with an \*(AK are not available in Secure mode,
+nor will they be shown on the level-1 help screen.
+
+.\" ......................................................................
+.SS 4b. SUMMARY AREA Commands
+.\" ----------------------------------------------------------------------
+The \*(SA \*(CIs are\fB always available\fR in both \*(FM and \*(AM.
+They affect the beginning lines of your display and will determine the
+position of messages and prompts.
+
+These commands always impact just the \*(CG.
+\*(XT 5. ALTERNATE\-DISPLAY Provisions and the `g' \*(CI for insight into
+\*(CWs and \*(FGs.
+
+.TP 7
+\ \ \ \fBC\fR\ \ :\fIShow-scroll-coordinates\fR toggle \fR
+Toggle an informational message which is displayed whenever the message
+line is not otherwise being used.
+For additional information \*(Xt 5c. SCROLLING a Window.
+
+.TP 7
+\ \ \ \fBl\fR\ \ :\fILoad-Average/Uptime\fR toggle \fR
+This is also the line containing the program name (possibly an alias)
+when operating in \*(FM or the \*(CW name when operating in \*(AM.
+
+.TP 7
+\ \ \ \fBt\fR\ \ :\fITask/Cpu-States\fR toggle \fR
+This command affects from 2 to many \*(SA lines, depending on the state
+of the `1', `2' or `3' \*(CTs and whether or not \*(We is running under
+true SMP.
+
+This portion of the \*(SA is also influenced by the `H' \*(CI toggle,
+as reflected in the total label which shows either Tasks or Threads.
+
+This command serves as a 4-way toggle, cycling through these modes:
+.nf
+ 1. detailed percentages by category
+ 2. abbreviated user/system and total % + bar graph
+ 3. abbreviated user/system and total % + block graph
+ 4. turn off task and cpu states display
+.fi
+
+When operating in either of the graphic modes, the display becomes much
+more meaningful when individual CPUs or NUMA nodes are also displayed.
+\*(XC the `1', `2' and `3' commands below for additional information.
+
+.TP 7
+\ \ \ \fBm\fR\ \ :\fIMemory/Swap-Usage\fR toggle \fR
+This command affects the two \*(SA lines dealing with physical
+and virtual memory.
+
+This command serves as a 4-way toggle, cycling through these modes:
+.nf
+ 1. detailed percentages by memory type
+ 2. abbreviated % used/total available + bar graph
+ 3. abbreviated % used/total available + block graph
+ 4. turn off memory display
+.fi
+
+.TP 7
+\ \ \ \fB1\fR\ \ :\fISingle/Separate-Cpu-States\fR toggle \fR
+This command affects how the `t' command's Cpu States portion is shown.
+Although this toggle exists primarily to serve massively-parallel SMP
+machines, it is not restricted to solely SMP environments.
+
+When you see `%Cpu(s):' in the \*(SA, the `1' toggle is \*O and all
+\*(Pu information is gathered in a single line.
+Otherwise, each \*(Pu is displayed separately as: `%Cpu0, %Cpu1, ...'
+up to available screen height.
+
+.TP 7
+\ \ \ \fB2\fR\ \ :\fINUMA-Nodes/Cpu-Summary\fR toggle \fR
+This command toggles between the `1' command cpu summary display (only)
+or a summary display plus the cpu usage statistics for each NUMA Node.
+It is only available if a system has the requisite NUMA support.
+
+.TP 7
+\ \ \ \fB3\fR\ \ :\fIExpand-NUMA-Node \fR
+You will be invited to enter a number representing a NUMA Node.
+Thereafter, a node summary plus the statistics for each cpu in that
+node will be shown until the `1', `2' or `4' \*(CT is pressed.
+This \*(CI is only available if a system has the requisite NUMA support.
+
+.TP 7
+\ \ \ \fB4\fR\ \ :\fIDisplay-Multiple-Elements-Adjacent\fR toggle \fR
+This \*(CT turns the `1' toggle \*F and shows multiple \*(PU and
+Memory results on each line.
+Each successive `4' key adds another \*(PU until again reverting
+to separate lines for \*(PU and Memory results.
+
+A maximum of 8 \*(PUs per line can be displayed in this manner.
+However, data truncation may occur before reaching the maximum.
+That is definitely true when displaying detailed statistics via
+the `t' \*(CT since such data cannot be scaled like the graphic
+representations.
+
+If one wished to quickly exit adjacent mode without cycling all the
+way to 8, simply use the `1' \*(CT.
+
+.TP 7
+\ \ \ \fB5\fR\ \ :\fIDisplay-P-Cores-and-E-Cores\fR toggle \fR
+This \*(CT is only active when the `t' toggle is \*O and the `1', `2',
+`3' and `!' toggles are \*F, thus showing individual \*(PU results.
+It assumes a platform has multiple cores of two distinct types,
+either multi-threaded (P-Core) or single-threaded (E-Core).
+
+While normally each \*(Pu is displayed as `%Cpu0, %Cpu1, ...', this
+toggle can be used to identify and/or filter those \*(Pus by their
+core type, either P-Core (performance) or E-Core (efficient).
+
+The 1st time `5' is struck, each \*(PU is displayed as `%Cp\fBP\fR'
+or `%Cp\fBE\fR' representing the two core types.
+The 2nd time, only P-Cores (%Cp\fBP\fR) will be shown.
+The 3rd time, only E-Cores (%Cp\fBE\fR) are displayed.
+When this \*(CT is struck for the 4th time, the \*(PU display
+returns to the normal `%Cpu' convention.
+
+If separate\fI performance\fR and\fI efficient\fR categories are
+not present, this \*(CT will have no effect.
+
+.TP 7
+\ \ \ \fB!\fR\ \ :\fICombine-Cpus-Mode\fR toggle \fR
+This \*(CT is intended for massively parallel SMP environments where,
+even with the `4' \*(CT, not all processors can be displayed.
+With each press of `!' the number of \*(Pus combined is doubled thus
+reducing the total number of \*(Pu lines displayed.
+
+For example, with the first press of `!' two \*(Pus will be combined and
+displayed as `0-1, 2-3, ...' instead of the normal `%Cpu0, %Cpu1, %Cpu2,
+%Cpu3, ...'. With a second `!' \*(CT four \*(Pus are combined and shown
+as `0-3, 4-7, ...'.
+Then the third `!' press, combining eight \*(Pus, shows as `0-7, 8-15, ...',
+etc.
+
+Such progression continues until individual \*(Pus are again displayed
+and impacts both the `1' and `4' toggles (one or multiple columns).
+Use the `=' command to exit \fBCombine Cpus\fR mode.
+
+.PP
+\*(NT If the entire \*(SA has been toggled \*F for any window, you would
+be left with just the\fB message line\fR.
+In that way, you will have maximized available task rows but (temporarily)
+sacrificed the program name in \*(FM or the \*(CW name when in \*(AM.
+
+.\" ......................................................................
+.SS 4c. TASK AREA Commands
+.\" ----------------------------------------------------------------------
+The \*(TA \*(CIs are\fB always\fR available in \*(FM.
+
+The \*(TA \*(CIs are\fB never available\fR in \*(AM\fI if\fR the \*(CW's
+\*(TD has been toggled \*F (\*(Xt 5. ALTERNATE\-DISPLAY Provisions).
+
+.\" ..................................................
+.PP
+.B APPEARANCE\fR of \*(TW
+
+.TP 7
+\ \ \ \fBJ\fR\ \ :\fIJustify-Numeric-Columns\fR toggle \fR
+Alternates between right-justified (the default) and
+left-justified numeric data.
+If the numeric data completely fills the available column, this
+\*(CT may impact the column header only.
+
+.TP 7
+\ \ \ \fBj\fR\ \ :\fIJustify-Character-Columns\fR toggle \fR
+Alternates between left-justified (the default) and
+right-justified character data.
+If the character data completely fills the available column, this
+\*(CT may impact the column header only.
+
+.PP
+.RS +2
+The following commands will also be influenced by the state of the
+global `B' (bold enable) toggle.
+.RS -2
+
+.TP 7
+\ \ \ \fBb\fR\ \ :\fIBold/Reverse\fR toggle \fR
+This command will impact how the `x' and `y' toggles are displayed.
+It may also impact the \*(SA when a bar graph has been selected for \*(Pu
+states or memory usage via the `t' or `m' toggles.
+
+.TP 7
+\ \ \ \fBx\fR\ \ :\fIColumn-Highlight\fR toggle \fR
+Changes highlighting for the current sort field.
+If you forget which field is being sorted this command can serve as a quick
+visual reminder, providing the sort field is being displayed.
+The sort field might\fI not\fR be visible because:
+ 1) there is insufficient\fI Screen Width \fR
+ 2) the `f' \*(CI turned it \*F
+
+.TP 7
+\ \ \ \fBy\fR\ \ :\fIRow-Highlight\fR toggle \fR
+Changes highlighting for "running" tasks.
+For additional insight into this task state,
+\*(Xt 3a. DESCRIPTIONS of Fields, the `S' field (Process Status).
+
+Use of this provision provides important insight into your system's health.
+The only costs will be a few additional tty escape sequences.
+
+.TP 7
+\ \ \ \fBz\fR\ \ :\fIColor/Monochrome\fR toggle \fR
+Switches the \*(CW between your last used color scheme and the older form
+of black-on-white or white-on-black.
+This command will alter\fB both\fR the \*(SA and \*(TA but does not affect
+the state of the `x', `y' or `b' toggles.
+
+.\" ..................................................
+.PP
+.B CONTENT\fR of \*(TW
+
+.TP 7
+\ \ \ \fBc\fR\ \ :\fICommand-Line/Program-Name\fR toggle \fR
+This command will be honored whether or not the COMMAND column
+is currently visible.
+Later, should that field come into view, the change you applied will be seen.
+
+.TP 7
+\ \ \ \fBF\fR\ \ :\fIMaintain-Parent-Focus\fR toggle \fR
+When in forest view mode, this key serves as a toggle to retain focus
+on a target task, presumably one with forked children.
+If forest view mode is \*F this key has no effect.
+
+The toggle is applied to the first (topmost) process in the \*(CW.
+Once established, that task is always displayed as the first (topmost)
+process along with its forked children.
+All other processes will be suppressed.
+
+\*(NT keys like `i' (idle tasks), `n' (max tasks), `v' (hide children)
+and User/Other filtering remain accessible and can impact what is displayed.
+
+.TP 7
+\ \ \ \fBf\fR\ \ :\fIFields-Management \fR
+This key displays a separate screen where you can change which fields are
+displayed, their order and also designate the sort field.
+For additional information on this \*(CI
+\*(Xt 3b. MANAGING Fields.
+
+.TP 7
+\ \ \ \fBO\fR | \fBo\fR\ \ :\fIOther-Filtering \fR
+You will be prompted for the selection criteria which then determines
+which tasks will be shown in the \*(CW.
+Your criteria can be made case sensitive or case can be ignored.
+And you determine if \*(We should include or exclude matching tasks.
+
+\*(XT 5e. FILTERING in a window for details on these and additional
+related \*(CIs.
+
+.TP 7
+\ \ \ \fBS\fR\ \ :\fICumulative-Time-Mode\fR toggle \fR
+When Cumulative mode is \*O, each process is listed with the \*(Pu
+time that it and its dead children have used.
+
+When \*F, programs that fork into many separate tasks will appear
+less demanding.
+For programs like `init' or a shell this is appropriate but for others,
+like compilers, perhaps not.
+Experiment with two \*(TWs sharing the same sort field but with different `S'
+states and see which representation you prefer.
+
+After issuing this command, you'll be informed of the new state of this toggle.
+If you wish to know in advance whether or not Cumulative mode is in
+effect, simply ask for help and view the window summary on the second line.
+
+.TP 7
+\ \ \ \fBU\fR | \fBu\fR\ \ :\fIShow-Specific-User-Only \fR
+You will be prompted for the\fB uid\fR or\fB name\fR of the user to display.
+The \-u option matches on \fB effective\fR user whereas the \-U option
+matches on\fB any\fR user (real, effective, saved, or filesystem).
+
+Thereafter, in that \*(TW only matching users will be shown, or possibly
+no processes will be shown.
+Prepending an exclamation point (`!') to the user id or name instructs \*(We
+to display only processes with users not matching the one provided.
+
+Different \*(TWs can be used to filter different users.
+Later, if you wish to monitor all users again in the \*(CW, re-issue this
+command but just press <Enter> at the prompt.
+
+.TP 7
+\ \ \ \fBV\fR\ \ :\fIForest-View-Mode\fR toggle \fR
+In this mode, processes are reordered according to their parents and
+the layout of the COMMAND column resembles that of a tree.
+In forest view mode it is still possible to toggle between program
+name and command line (\*(Xc `c' \*(CI) or between processes and
+threads (\*(Xc `H' \*(CI).
+
+\*(NT Typing any key affecting the sort order will exit forest view
+mode in the \*(CW.
+\*(XT 4c. TASK AREA Commands, SORTING for information on those keys.
+
+.TP 7
+\ \ \ \fBv\fR\ \ :\fIHide/Show-Children\fR toggle \fR
+When in forest view mode, this key serves as a toggle to collapse or
+expand the children of a parent.
+
+The toggle is applied against the first (topmost) process in the \*(CW.
+\*(XT 5c. SCROLLING a Window for additional information regarding
+vertical scrolling.
+
+If the target process has not forked any children, this key has no effect.
+It also has no effect when not in forest view mode.
+
+.TP 7
+\ \ \fB^E\fR\ \ :\fIScale-CPU-Time-fields\fR (Ctrl key + `e')
+The `time' fields are normally displayed with the greatest
+precision their widths permit.
+This toggle reduces that precision until it wraps.
+It also illustrates the scaling those fields \fImight\fR experience
+automatically, which usually depends on how long the system runs.
+
+For example, if `MMM:SS.hh' is shown, each ^E keystroke would change
+it to: `MM:SS', `Hours,MM', `Days+Hours' and finally `Weeks+Days'.
+
+Not all time fields are subject to the full range of such scaling.
+
+.\" ..................................................
+.PP
+.B SIZE\fR of \*(TW
+
+.TP 7
+\ \ \ \fBi\fR\ \ :\fIIdle-Process\fR toggle \fR
+Displays all tasks or just active tasks.
+When this toggle is \*F, tasks that have not used any \*(PU since the
+last update will not be displayed.
+However, due to the granularity of the %CPU and TIME+ fields,
+some processes may still be displayed that\fI appear\fR to have
+used\fI no\fR \*(PU.
+
+If this command is applied to the last \*(TD when in \*(AM, then it will not
+affect the window's size, as all prior \*(TDs will have already been painted.
+
+.TP 7
+\ \ \ \fBn\fR | \fB#\fR\ \ :\fISet-Maximum-Tasks \fR
+You will be prompted to enter the number of tasks to display.
+The lessor of your number and available screen rows will be used.
+
+When used in \*(AM, this is the command that gives you precise control over
+the size of each currently visible \*(TD, except for the very last.
+It will not affect the last window's size, as all prior \*(TDs will have
+already been painted.
+
+\*(NT If you wish to increase the size of the last visible \*(TD when in \*(AM,
+simply decrease the size of the \*(TD(s) above it.
+
+.\" ..................................................
+.PP
+.B SORTING\fR of \*(TW
+.PP
+.RS +3
+For compatibility, this \*(We supports most of the former \*(We sort keys.
+Since this is primarily a service to former \*(We users, these commands do
+not appear on any help screen.
+.nf
+ \fI command sorted-field supported \fR
+ A start time (non-display) \fB No \fR
+ M %MEM Yes
+ N PID Yes
+ P %CPU Yes
+ T TIME+ Yes
+.fi
+
+Before using any of the following sort provisions, \*(We suggests that you
+temporarily turn on column highlighting using the `x' \*(CI.
+That will help ensure that the actual sort environment matches your intent.
+
+The following \*(CIs will\fB only\fR be honored when the current sort field
+is\fB visible\fR.
+The sort field might\fI not\fR be visible because:
+ 1) there is insufficient\fI Screen Width \fR
+ 2) the `f' \*(CI turned it \*F
+
+.TP 7
+\ \ \ \fB<\fR\ \ :\fIMove-Sort-Field-Left \fR
+Moves the sort column to the left unless the current sort field is
+the first field being displayed.
+
+.TP 7
+\ \ \ \fB>\fR\ \ :\fIMove-Sort-Field-Right \fR
+Moves the sort column to the right unless the current sort field is
+the last field being displayed.
+
+.PP
+The following \*(CIs will\fB always\fR be honored whether or not
+the current sort field is visible.
+
+.TP 7
+\ \ \ \fBf\fR\ \ :\fIFields-Management \fR
+This key displays a separate screen where you can change which field
+is used as the sort column, among other functions.
+This can be a convenient way to simply verify the current sort field,
+when running \*(We with column highlighting turned \*F.
+
+.TP 7
+\ \ \ \fBR\fR\ \ :\fIReverse/Normal-Sort-Field\fR toggle \fR
+Using this \*(CI you can alternate between high-to-low and low-to-high sorts.
+
+.\" ......................................................................
+.SS 4d. COLOR Mapping
+.\" ----------------------------------------------------------------------
+When you issue the `Z' \*(CI, you will be presented with a separate screen.
+That screen can be used to change the colors in just the \*(CW or
+in all four windows before returning to the \*(We display.
+
+.P
+The following \*(CIs are available.
+.nf
+ \fB4\fR upper case letters to select a\fB target \fR
+ \fB8\fR numbers to select a\fB color \fR
+ normal toggles available \fR
+ B :bold disable/enable
+ b :running tasks "bold"/reverse
+ z :color/mono
+ other commands available \fR
+ a/w :apply, then go to next/prior
+ <Enter> :apply and exit
+ q :abandon current changes and exit
+.fi
+
+If you use `a' or `w' to cycle the targeted window, you will
+have applied the color scheme that was displayed when you left that window.
+You can, of course, easily return to any window and reapply different
+colors or turn colors \*F completely with the `z' toggle.
+
+The Color Mapping screen can also be used to change the \*(CG in
+either \*(FM or \*(AM.
+Whatever was targeted when `q' or <Enter> was pressed will be made current
+as you return to the \*(We display.
+
+.\" ----------------------------------------------------------------------
+.SH 5. ALTERNATE\-DISPLAY Provisions
+.\" ----------------------------------------------------------------------
+.\" ......................................................................
+.SS 5a. WINDOWS Overview
+.\" ----------------------------------------------------------------------
+.TP 3
+.B Field Groups/Windows\fR:
+In \*(FM there is a single window represented by the entire screen.
+That single window can still be changed to display 1 of 4 different\fB field
+groups\fR (\*(Xc `g' \*(CI, repeated below).
+Each of the 4 \*(FGs has a unique separately configurable\fB \*(SA \fR
+and its own configurable\fB \*(TA\fR.
+
+In \*(AM, those 4 underlying \*(FGs can now be made visible
+simultaneously, or can be turned \*F individually at your command.
+
+The \*(SA will always exist, even if it's only the message line.
+At any given time only\fI one\fR \*(SA can be displayed.
+However, depending on your commands, there could be from\fI zero \fR
+to\fI four\fR separate \*(TDs currently showing on the screen.
+
+.TP 3
+.B Current Window\fR:
+The \*(CW is the window associated with the \*(SA and the window to which
+task related commands are always directed.
+Since in \*(AM you can toggle the \*(TD \*F, some commands might be
+restricted for the \*(CW.
+
+A further complication arises when you have toggled the first \*(SA
+line \*F.
+With the loss of the window name (the `l' toggled line), you'll not easily
+know what window is the \*(CW.
+
+.\" ......................................................................
+.SS 5b. COMMANDS for Windows
+.\" ----------------------------------------------------------------------
+.TP 7
+\ \ \ \fB-\fR | \fB_\fR\ \ :\fIShow/Hide-Window(s)\fR toggles \fR
+The `\-' key turns the \*(CW's \*(TD \*O and \*F.
+When \*O, that \*(TA will show a minimum of the columns header you've
+established with the `f' \*(CI.
+It will also reflect any other \*(TA options/toggles you've applied
+yielding zero or more tasks.
+
+The `_' key does the same for all \*(TDs.
+In other words, it switches between the currently visible \*(TD(s) and any
+\*(TD(s) you had toggled \*F.
+If all 4 \*(TDs are currently visible, this \*(CI will leave the \*(SA
+as the only display element.
+
+.TP 7
+*\ \ \fB=\fR | \fB+\fR\ \ :\fIEqualize/Reset-Window(s) \fR
+The `=' key forces the \*(CW's \*(TD to be visible.
+It also reverses any active `i' (idle tasks), `n' (max tasks), `u/U'
+(user filter), `o/O' (other filter), `v' (hide children), `F' focused,
+`L' (locate) and `!' (combine cpus) commands.
+Also, if the window had been scrolled, it will be reset with this command.
+\*(XT 5c. SCROLLING a Window for additional information regarding vertical
+and horizontal scrolling.
+
+The `+' key does the same for all windows.
+The four \*(TDs will reappear, evenly balanced, while retaining
+any customizations previously applied beyond those noted
+for the `=' \*(CT.
+
+.TP 7
+*\ \ \fBA\fR\ \ :\fIAlternate-Display-Mode\fR toggle \fR
+This command will switch between \*(FM and \*(AM.
+
+The first time you issue this command, all four \*(TDs will be shown.
+Thereafter when you switch modes, you will see only the \*(TD(s) you've
+chosen to make visible.
+
+.TP 7
+*\ \ \fBa\fR | \fBw\fR\ \ :\fINext-Window-Forward/Backward \fR
+This will change the \*(CW, which in turn changes the window to which
+commands are directed.
+These keys act in a circular fashion so you can reach any desired window
+using either key.
+
+Assuming the window name is visible (you have not toggled `l' \*F),
+whenever the \*(CW name loses its emphasis/color, that's a reminder
+the \*(TD is \*F and many commands will be restricted.
+
+.TP 7
+\ \ \ \fBG\fR\ \ :\fIChange-Window/Field-Group-Name \fR
+You will be prompted for a new name to be applied to the \*(CW.
+It does not require that the window name be visible
+(the `l' toggle to be \*O).
+
+.IP "*" 3
+The \*(CIs shown with an \*(AK have use beyond \*(AM.
+.nf
+ =, A, g are always available
+ a, w act the same with color mapping
+ and fields management
+.fi
+
+.TP 7
+*\ \ \fBg\fR\ \ :\fIChoose-Another-Window/Field-Group \fR
+You will be prompted to enter a number between 1 and 4 designating the
+\*(FG which should be made the \*(CW.
+
+In \*(FM, this command is necessary to alter the \*(CW.
+In \*(AM, it is simply a less convenient alternative to the `a' and `w'
+commands.
+
+.\" ......................................................................
+.SS 5c. SCROLLING a Window
+.\" ----------------------------------------------------------------------
+Typically a \*(TW is a partial view into a system's total tasks/threads
+which shows only some of the available fields/columns.
+With these \*(KSs, you can move that view vertically or horizontally to
+reveal any desired task or column.
+
+.TP 4
+\fBUp\fR,\fBPgUp\fR\ \ :\fIScroll-Tasks \fR
+Move the view up toward the first task row, until the first task is
+displayed at the top of the \*(CW.
+The \fIUp\fR \*(KA moves a single line while \fIPgUp\fR scrolls the
+entire window.
+
+.TP 4
+\fBDown\fR,\fBPgDn\fR\ \ :\fIScroll-Tasks \fR
+Move the view down toward the last task row, until the last task is
+the only task displayed at the top of the \*(CW.
+The \fIDown\fR \*(KA moves a single line while \fIPgDn\fR scrolls the
+entire window.
+
+.TP 4
+\fBLeft\fR,\fBRight\fR\ \ :\fIScroll-Columns \fR
+Move the view of displayable fields horizontally one column at a time.
+
+\*(NT As a reminder, some fields/columns are not fixed-width but
+allocated all remaining screen width when visible.
+When scrolling right or left, that feature may produce some
+unexpected results initially.
+
+Additionally, there are special provisions for any variable width field
+when positioned as the last displayed field.
+Once that field is reached via the right arrow key, and is thus the only
+column shown, you can continue scrolling horizontally within such a field.
+\*(XC `C' \*(CI below for additional information.
+
+.TP 4
+\fBHome\fR\ \ :\fIJump-to-Home-Position \fR
+Reposition the display to the un-scrolled coordinates.
+
+.TP 4
+\fBEnd\fR\ \ :\fIJump-to-End-Position \fR
+Reposition the display so that the rightmost column reflects the last
+displayable field and the bottom task row represents the last task.
+
+\*(NT From this position it is still possible to scroll\fI down\fR
+and\fI right\fR using the \*(KAs.
+This is true until a single column and a single task is left as the only
+display element.
+
+.TP 4
+\fBC\fR\ \ :\fIShow-scroll-coordinates\fR toggle \fR
+Toggle an informational message which is displayed whenever the message
+line is not otherwise being used.
+That message will take one of two forms depending on whether or not a
+variable width column has also been scrolled.
+
+.nf
+ \fBscroll coordinates: y = n/n (tasks), x = n/n (fields)\fR
+ \fRscroll coordinates: y = n/n (tasks), x = n/n (fields)\fB + nn\fR
+.fi
+
+The coordinates shown as \fBn\fR/\fBn\fR are relative to the upper left
+corner of the \*(CW.
+The additional `\fB+\ nn\fR' represents the displacement into a variable
+width column when it has been scrolled horizontally.
+Such displacement occurs in normal 8 character tab stop amounts via
+the right and left arrow keys.
+
+.RS +4
+.TP 4
+\fBy = n/n (tasks) \fR
+The first \fBn\fR represents the topmost visible task and is controlled
+by \*(KSs.
+The second \fBn\fR is updated automatically to reflect total tasks.
+
+.TP 4
+\fBx = n/n (fields) \fR
+The first \fBn\fR represents the leftmost displayed column and is
+controlled by \*(KSs.
+The second \fBn\fR is the total number of displayable fields and is
+established with the `\fBf\fR' \*(CI.
+.RS -4
+
+.PP
+The above \*(CIs are\fB always\fR available in \*(FM but\fB never\fR
+available in \*(AM if the \*(CW's \*(TD has been toggled \*F.
+
+\*(NT When any form of filtering is active, you can expect some slight
+aberrations when scrolling since not all tasks will be visible.
+This is particularly apparent when using the Up/Down \*(KAs.
+
+.\" ......................................................................
+.SS 5d. SEARCHING in a Window
+.\" ----------------------------------------------------------------------
+You can use these \*(CIs to locate a task row containing a particular value.
+
+.TP 4
+\fBL\fR\ \ :\fILocate-a-string\fR
+You will be prompted for the case-sensitive string to locate starting from
+the current window coordinates.
+There are no restrictions on search string content.
+
+Searches are not limited to values from a single field or column.
+All of the values displayed in a task row are allowed in a search string.
+You may include spaces, numbers, symbols and even forest view artwork.
+
+Keying <Enter> with no input will effectively disable the `&' key until
+a new search string is entered.
+
+.TP 4
+\fB&\fR\ \ :\fILocate-next\fR
+Assuming a search string has been established, \*(We will attempt to locate
+the next occurrence.
+
+.PP
+When a match is found, the current window is repositioned vertically so the
+task row containing that string is first.
+The scroll coordinates message can provide confirmation of such vertical
+repositioning (\*(Xc `C' \*(CI).
+Horizontal scrolling, however, is never altered via searching.
+
+The availability of a matching string will be influenced by the following
+factors.
+.RS +3
+.TP 3
+a. Which fields are displayable from the total available,
+\*(Xt 3b. MANAGING Fields.
+.TP 3
+b. Scrolling a window vertically and/or horizontally,
+\*(Xt 5c. SCROLLING a Window.
+.TP 3
+c. The state of the command/command-line toggle,
+\*(Xc `c' \*(CI.
+.TP 3
+d. The stability of the chosen sort column,
+for example PID is good but %CPU bad.
+.RS -3
+
+.PP
+If a search fails, restoring the \*(CW home (unscrolled) position, scrolling
+horizontally, displaying command-lines or choosing a more stable sort field
+could yet produce a successful `&' search.
+
+The above \*(CIs are\fB always\fR available in \*(FM but\fB never\fR
+available in \*(AM if the \*(CW's \*(TD has been toggled \*F.
+
+.\" ......................................................................
+.SS 5e. FILTERING in a Window
+.\" ----------------------------------------------------------------------
+You can use this `Other Filter' feature to establish selection criteria which
+will then determine which tasks are shown in the \*(CW.
+Such filters can be made persistent if preserved in the rcfile via
+the `W' \*(CI.
+
+Establishing a filter requires: 1) a field name; 2) an operator; and
+3) a selection value, as a minimum.
+This is the most complex of \*(We's user input requirements so, when you make
+a mistake, command recall will be your friend.
+Remember the Up/Down \*(KAs or their aliases when prompted for input.
+
+.B Filter Basics
+.RS +3
+.TP 3
+1. field names are case sensitive and spelled as in the header
+.TP 3
+2. selection values need not comprise the full displayed field
+.TP 3
+3. a selection is either case insensitive or sensitive to case
+.TP 3
+4. the default is inclusion, prepending `!' denotes exclusions
+.TP 3
+5. multiple selection criteria can be applied to a \*(TW
+.TP 3
+6. inclusion and exclusion criteria can be used simultaneously
+.TP 3
+7. the 1 equality and 2 relational filters can be freely mixed
+.TP 3
+8. separate unique filters are maintained for each \*(TW
+
+.PP
+If a field is not turned on or is not currently in view, then your selection
+criteria will not affect the display.
+Later, should a filtered field become visible, the selection criteria will
+then be applied.
+.RE
+
+.B Keyboard Summary
+.TP 6
+\ \ \fBO\fR\ \ :\fIOther-Filter\fR (upper case)
+You will be prompted to establish a \fBcase sensitive\fR filter.
+
+.TP 6
+\ \ \fBo\fR\ \ :\fIOther-Filter\fR (lower case)
+You will be prompted to establish a filter that \fBignores case\fR when
+matching.
+
+.TP 6
+\ \fB^O\fR\ \ :\fIShow-Active-Filters\fR (Ctrl key + `o')
+This can serve as a reminder of which filters are active in the \*(CW.
+A summary will be shown on the message line until you press the <Enter> key.
+
+.TP 6
+\ \ \fB=\fR\ \ :\fIReset-Filtering\fR in current window
+This clears all of your selection criteria in the \*(CW.
+It also has additional impact so please \*(Xt 4a. GLOBAL Commands.
+
+.TP 6
+\ \ \fB+\fR\ \ :\fIReset-Filtering\fR in all windows
+This clears the selection criteria in all windows, assuming you are in \*(AM.
+As with the `=' \*(CI, it too has additional consequences so you might wish to
+\*(Xt 5b. COMMANDS for Windows.
+
+.PP
+.B Input Requirements
+.RS +3
+.P
+When prompted for selection criteria, the data you provide must take one
+of two forms.
+There are 3 required pieces of information, with a 4th as optional.
+These examples use spaces for clarity but your input generally would not.
+.nf
+ #1 \fB#2\fR #3 ( required )
+ Field\-Name ? include\-if\-value
+ \fB!\fR Field\-Name ? \fBexclude\fR\-if\-value
+ #4 ( optional )
+.fi
+
+Items #1, #3 and #4 should be self\-explanatory.
+Item \fB#2\fR represents both a required \fIdelimiter\fR and the \fIoperator\fR
+which must be one of either equality (`=') or relation (`<' or `>').
+
+The `=' equality operator requires only a partial match and that
+can reduce your `if\-value' input requirements.
+The `>' or `<' relational operators always employ string comparisons,
+even with numeric fields.
+They are designed to work with a field's default \fIjustification\fR and
+with homogeneous data.
+When some field's numeric amounts have been subjected to \fIscaling\fR
+while others have not, that data is no longer homogeneous.
+
+If you establish a relational filter and you \fBhave\fR changed the
+default Numeric or Character \fIjustification\fR, that filter is likely to fail.
+When a relational filter is applied to a memory field and you \fBhave not\fR
+changed the \fIscaling\fR, it may produce misleading results.
+This happens, for example, because `100.0m' (MiB) would appear greater
+than `1.000g' (GiB) when compared as strings.
+
+If your filtered results appear suspect, simply altering justification or
+scaling may yet achieve the desired objective.
+See the `j', `J' and `e' \*(CIs for additional information.
+.RE
+
+.B Potential Problems
+.RS +3
+.P
+These \fBGROUP\fR filters could produce the exact same results or the
+second one might not display anything at all, just a blank \*(TW.
+.nf
+ GROUP=root ( only the same results when )
+ GROUP=ROOT ( invoked via lower case `o' )
+.fi
+
+Either of these \fBRES\fR filters might yield inconsistent and/or
+misleading results, depending on the current memory scaling factor.
+Or both filters could produce the exact same results.
+.nf
+ RES>9999 ( only the same results when )
+ !RES<10000 ( memory scaling is at `KiB' )
+.fi
+
+This \fBnMin\fR filter illustrates a problem unique to scalable fields.
+This particular field can display a maximum of 4 digits, beyond which values
+are automatically scaled to KiB or above.
+So while amounts greater than 9999 exist, they will appear as 2.6m, 197k, etc.
+.nf
+ nMin>9999 ( always a blank \*(TW )
+.fi
+.RE
+
+.B Potential Solutions
+.RS +3
+.P
+These examples illustrate how Other Filtering can be creatively
+applied to achieve almost any desired result.
+Single quotes are sometimes shown to delimit the spaces which are part of
+a filter or to represent a request for status (^O) accurately.
+But if you used them with if-values in real life, no matches would be found.
+
+Assuming field \fBnTH\fR is displayed, the first filter will result in
+only multi-threaded processes being shown.
+It also reminds us that a trailing space is part of every displayed field.
+The second filter achieves the exact same results with less typing.
+.nf
+ !nTH=` 1 ' ( ` for clarity only )
+ nTH>1 ( same with less i/p )
+.fi
+
+With Forest View mode active and the \fBCOMMAND\fR column in view, this
+filter effectively collapses child processes so that just 3 levels are shown.
+.nf
+ !COMMAND=` `- ' ( ` for clarity only )
+.fi
+
+The final two filters appear as in response to the status request key (^O).
+In reality, each filter would have required separate input.
+The \fBPR\fR example shows the two concurrent filters necessary to display
+tasks with priorities of 20 or more, since some might be negative.
+Then by exploiting trailing spaces, the \fBnMin\fR series of filters could
+achieve the failed `9999' objective discussed above.
+.nf
+ `PR>20' + `!PR=-' ( 2 for right result )
+ `!nMin=0 ' + `!nMin=1 ' + `!nMin=2 ' + `!nMin=3 ' ...
+.fi
+.RS -3
+
+.\" ----------------------------------------------------------------------
+.SH 6. FILES
+.\" ----------------------------------------------------------------------
+.SS 6a. PERSONAL Configuration File
+.\" ----------------------------------------------------------------------
+This file is created or updated via the `W' \*(CI.
+
+The legacy version is written as `$HOME/.your\-name\-4\-\*(We' + `rc'
+with a leading period.
+
+A newly created \*(CF is written as procps/your\-name\-4\-\*(We' + `rc'
+without a leading period.
+The procps directory will be subordinate to either $XDG_CONFIG_HOME when
+set as an absolute path or the $HOME/.config directory.
+
+While not intended to be edited manually, here is the general layout:
+.nf
+ global # line 1: the program name/alias notation
+ " # line 2: id,altscr,irixps,delay,curwin
+ per ea # line a: winname,fieldscur
+ window # line b: winflags,sortindx,maxtasks,etc
+ " # line c: summclr,msgsclr,headclr,taskclr
+ global # line 15: additional miscellaneous settings
+ " # any remaining lines are devoted to optional
+ " # active `other filters' discussed in section 5e above
+ " # plus `inspect' entries discussed in section 6b below
+.fi
+
+If a valid absolute path to the rcfile cannot be established, customizations
+made to a running \*(We will be impossible to preserve.
+
+.\" ......................................................................
+.SS 6b. ADDING INSPECT Entries
+.\" ----------------------------------------------------------------------
+To exploit the `Y' \*(CI, you must add entries at the\fB end\fR of the
+\*(We personal \*(CF.
+Such entries simply reflect a file to be read or command/pipeline to be
+executed whose results will then be displayed in a separate scrollable,
+searchable window.
+
+If you don't know the location or name of your \*(We rcfile, use the `W'
+\*(CI to rewrite it and note those details.
+
+Inspect entries can be added with a redirected echo or by editing the \*(CF.
+Redirecting an echo risks overwriting the rcfile should it replace (>)
+rather than append (>>) to that file.
+Conversely, when using an editor care must be taken not to corrupt existing
+lines, some of which could contain unprintable data or unusual characters
+depending on the \*(We version under which that \*(CF was saved.
+
+Those Inspect entries beginning with a `#' character are ignored, regardless
+of content.
+Otherwise they consist of the following 3 elements, each of which\fI must\fR
+be separated by a tab character (thus 2 `\\t' total):
+
+.nf
+ .type: literal `file' or `pipe'
+ .name: selection shown on the Inspect screen
+ .fmts: string representing a path or command
+.fi
+
+The two types of Inspect entries are\fI not\fR interchangeable.
+Those designated `\fBfile\fR' will be accessed using fopen and
+must reference a single file in the `.fmts' element.
+Entries specifying `\fBpipe\fR' will employ popen, their `.fmts' element
+could contain many pipelined commands and, none can be interactive.
+
+If the file or pipeline represented in your `.fmts' deals with the specific PID
+input or accepted when prompted, then the format string must also contain
+the `\fB%d\fR' specifier, as these examples illustrate.
+
+.nf
+ .fmts= /proc/\fI%d\fR/numa_maps
+ .fmts= lsof -P -p\fI %d\fR
+.fi
+
+For `\fBpipe\fR' type entries only, you may also wish to redirect stderr to
+stdout for a more comprehensive result.
+Thus the format string becomes:
+
+.nf
+ .fmts= pmap -x %d\fI 2>&1\fR
+.fi
+
+Here are examples of both types of Inspect entries as they might appear
+in the rcfile.
+The first entry will be ignored due to the initial `#' character.
+For clarity, the pseudo tab depictions (^I) are surrounded by an
+extra space but the actual tabs would not be.
+.nf
+
+ # pipe ^I Sockets ^I lsof -n -P -i 2>&1
+ pipe ^I Open Files ^I lsof -P -p %d 2>&1
+ file ^I NUMA Info ^I /proc/%d/numa_maps
+ pipe ^I Log ^I tail -n100 /var/log/syslog | sort -Mr
+.fi
+
+Except for the commented entry above, these next examples show what could
+be echoed to achieve similar results, assuming the rcfile name was `.toprc'.
+However, due to the embedded tab characters, each of these lines should be
+preceded by `\fB/bin/echo \-e\fR', not just a simple an `echo', to
+enable backslash interpretation regardless of which shell you use.
+
+.nf
+ "pipe\\tOpen Files\\tlsof -P -p %d 2>&1" >> ~/.toprc
+ "file\\tNUMA Info\\t/proc/%d/numa_maps" >> ~/.toprc
+ "pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr" >> ~/.toprc
+.fi
+
+If any inspect entry you create produces output with unprintable characters
+they will be displayed in either the ^C notation or hexadecimal <FF> form,
+depending on their value.
+This applies to tab characters as well, which will show as `^I'.
+If you want a truer representation, any embedded tabs should be expanded.
+The following example takes what could have been a `file' entry but employs
+a `pipe' instead so as to expand the embedded tabs.
+
+.nf
+ # next would have contained `\\t' ...
+ # file ^I <your_name> ^I /proc/%d/status
+ # but this will eliminate embedded `\\t' ...
+ pipe ^I <your_name> ^I cat /proc/%d/status | expand \-
+.fi
+
+\*(NT Some programs might rely on \fISIGINT\fR to end.
+Therefore, if a `\fBpipe\fR' such as the following is established, one must
+use Ctrl-C to terminate it in order to review the results.
+This is the single occasion where a `^C' will not also terminate \*(We.
+
+.nf
+ pipe ^I Trace ^I /usr/bin/strace -p %d 2>&1
+.fi
+
+Lastly, while `\fBpipe\fR' type entries have been discussed in terms of pipelines
+and commands, there is nothing to prevent you from including \fI shell scripts\fR
+as well.
+Perhaps even newly created scripts designed specifically for the `Y' \*(CI.
+
+For example, as the number of your Inspect entries grows over time, the `Options:'
+row will be truncated when screen width is exceeded.
+That does not affect operation other than to make some selections invisible.
+However, if some choices are lost to truncation but you want to see more options,
+there is an easy solution hinted at below.
+
+.nf
+ Inspection Pause at pid ...
+ Use: left/right then <Enter> ...
+ Options: help 1 2 3 4 5 6 7 8 9 10 11 ...
+.fi
+
+The entries in the \*(We rcfile would have a number for the `.name' element and
+the `help' entry would identify a shell script you've written explaining what
+those numbered selections actually mean.
+In that way, many more choices can be made visible.
+
+.\" ......................................................................
+.SS 6c. SYSTEM Configuration File
+.\" ----------------------------------------------------------------------
+This \*(CF represents defaults for users who have not saved their own \*(CF.
+The format mirrors exactly the personal \*(CF and can also include `inspect'
+entries as explained above.
+
+Creating it is a simple process.
+
+1. Configure \*(We appropriately for your installation and preserve that
+configuration with the `W' \*(CI.
+
+2. Add and test any desired `inspect' entries.
+
+3. Copy that \*(CF to the \fI/etc/\fR directory as `\fBtopdefaultrc\fR'.
+
+.\" ......................................................................
+.SS 6d. SYSTEM Restrictions File
+.\" ----------------------------------------------------------------------
+The presence of this file will influence which version of the help screen
+is shown to an ordinary user.
+
+More importantly, it will limit what ordinary users are allowed
+to do when \*(We is running.
+They will not be able to issue the following commands.
+.nf
+ k Kill a task
+ r Renice a task
+ d or s Change delay/sleep interval
+.fi
+
+This \*(CF is not created by \*(We.
+Rather, it is created manually and placed it in the \fI/etc/\fR
+directory as `\fBtoprc\fR'.
+
+It should have exactly two lines, as shown in this example:
+.nf
+ s # line 1: secure mode switch
+ 5.0 # line 2: delay interval in seconds
+.fi
+
+.\" ----------------------------------------------------------------------
+.SH 7. ENVIRONMENT VARIABLE(S)
+.\" ----------------------------------------------------------------------
+The value set for the following is unimportant, just its presence.
+
+.IP LIBPROC_HIDE_KERNEL
+This will prevent display of any kernel threads and exclude such processes
+from the \*(SA Tasks/Threads counts.
+
+.\" ----------------------------------------------------------------------
+.SH 8. STUPID TRICKS Sampler
+.\" ----------------------------------------------------------------------
+Many of these tricks work best when you give \*(We a scheduling boost.
+So plan on starting him with a nice value of \-10, assuming you've got
+the authority.
+
+.\" ......................................................................
+.SS 7a. Kernel Magic
+.\" ----------------------------------------------------------------------
+.\" sorry, just can't help it -- don't ya love the sound of this?
+For these stupid tricks, \*(We needs \*(FM.
+.\" ( apparently AM static was a potential concern )
+
+.IP \(bu 3
+The user interface, through prompts and help, intentionally implies
+that the delay interval is limited to tenths of a second.
+However, you're free to set any desired delay.
+If you want to see Linux at his scheduling best, try a delay of .09
+seconds or less.
+
+For this experiment, under x-windows open an xterm and maximize it.
+Then do the following:
+.nf
+ . provide a scheduling boost and tiny delay via:
+ nice -n -10 \*(We -d.09
+ . keep sorted column highlighting \*F so as to
+ minimize path length
+ . turn \*O reverse row highlighting for emphasis
+ . try various sort columns (TIME/MEM work well),
+ and normal or reverse sorts to bring the most
+ active processes into view
+.fi
+
+What you'll see is a very busy Linux doing what he's always done for you,
+but there was no program available to illustrate this.
+
+.IP \(bu 3
+Under an xterm using `white-on-black' colors, on \*(We's Color Mapping screen
+set the task color to black and be sure that task highlighting is set to bold,
+not reverse.
+Then set the delay interval to around .3 seconds.
+
+After bringing the most active processes into view, what you'll see are
+the ghostly images of just the currently running tasks.
+
+.IP \(bu 3
+Delete the existing rcfile, or create a new symlink.
+Start this new version then type `T' (a secret key,
+\*(Xt 4c. Task Area Commands, SORTING) followed by `W' and `q'.
+Finally, restart the program with \-d0 (zero delay).
+
+Your display will be refreshed at three times the rate of the former \*(We,
+a 300% speed advantage.
+As \*(We climbs the TIME ladder, be as patient as you can while speculating
+on whether or not \*(We will ever reach the \*(We.
+
+.\" ......................................................................
+.SS 7b. Bouncing Windows
+.\" ----------------------------------------------------------------------
+For these stupid tricks, \*(We needs \*(AM.
+
+.IP \(bu 3
+With 3 or 4 \*(TDs visible, pick any window other than the last
+and turn idle processes \*F using the `i' \*(CT.
+Depending on where you applied `i', sometimes several \*(TDs are bouncing and
+sometimes it's like an accordion, as \*(We tries his best to allocate space.
+
+.IP \(bu 3
+Set each window's summary lines differently: one with no memory (`m'); another
+with no states (`t'); maybe one with nothing at all, just the message line.
+Then hold down `a' or `w' and watch a variation on bouncing windows \*(Em
+hopping windows.
+
+.IP \(bu 3
+Display all 4 windows and for each, in turn, set idle processes to \*F using
+the `i' \*(CT.
+You've just entered the "extreme bounce" zone.
+
+.\" ......................................................................
+.SS 7c. The Big Bird Window
+.\" ----------------------------------------------------------------------
+This stupid trick also requires \*(AM.
+
+.IP \(bu 3
+Display all 4 windows and make sure that 1:Def is the \*(CW.
+Then, keep increasing window size with the `n' \*(CI until all the other
+\*(TDs are "pushed out of the nest".
+
+When they've all been displaced, toggle between all visible/invisible windows
+using the `_' \*(CT.
+Then ponder this:
+.br
+ is \*(We fibbing or telling honestly your imposed truth?
+
+.\" ......................................................................
+.SS 7d. The Ol' Switcheroo
+.\" ----------------------------------------------------------------------
+This stupid trick works best without \*(AM, since justification is active
+on a per window basis.
+
+.IP \(bu 3
+Start \*(We and make COMMAND the last (rightmost) column displayed.
+If necessary, use the `c' \*(CT to display command lines and ensure
+that forest view mode is active with the `V' \*(CT.
+
+Then use the up/down arrow keys to position the display so that some
+truncated command lines are shown (`+' in last position).
+You may have to resize your xterm to produce truncation.
+
+Lastly, use the `j' \*(CT to make the COMMAND column right justified.
+
+Now use the right arrow key to reach the COMMAND column.
+Continuing with the right arrow key, watch closely the direction
+of travel for the command lines being shown.
+
+.br
+ some lines travel left, while others travel right
+
+ eventually all lines will Switcheroo, and move right
+
+.\" ----------------------------------------------------------------------
+.SH 9. BUGS
+.\" ----------------------------------------------------------------------
+Please send bug reports to
+.UR procps@freelists.org
+.UE .
+
+ \" ----------------------------------------------------------------------
+.SH 10. SEE Also
+.\" ----------------------------------------------------------------------
+.BR free (1),
+.BR ps (1),
+.BR uptime (1),
+.BR atop (1),
+.BR slabtop (1),
+.BR vmstat (8),
+.BR w (1)
diff --git a/man/uptime.1 b/man/uptime.1
new file mode 100644
index 0000000..eb8cc9f
--- /dev/null
+++ b/man/uptime.1
@@ -0,0 +1,74 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.TH UPTIME "1" "December 2012" "procps-ng" "User Commands"
+.SH NAME
+uptime \- Tell how long the system has been running.
+.SH SYNOPSIS
+.B uptime
+[\fIoptions\fR]
+.SH DESCRIPTION
+.B uptime
+gives a one line display of the following information. The current time, how
+long the system has been running, how many users are currently logged on, and
+the system load averages for the past 1, 5, and 15 minutes.
+.PP
+This is the same information contained in the header line displayed by
+.BR w (1).
+.PP
+System load averages is the average number of processes that are either in a
+runnable or uninterruptable state. A process in a runnable state is either
+using the CPU or waiting to use the CPU. A process in uninterruptable state
+is waiting for some I/O access, eg waiting for disk. The averages are taken
+over the three time intervals. Load averages are not normalized for the
+number of CPUs in a system, so a load average of 1 means a single CPU system
+is loaded all the time while on a 4 CPU system it means it was idle 75% of
+the time.
+.SH OPTIONS
+.TP
+\fB\-p\fR, \fB\-\-pretty\fR
+show uptime in pretty format
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+display this help text
+.TP
+\fB\-s\fR, \fB\-\-since\fR
+system up since, in yyyy-mm-dd HH:MM:SS format
+.TP
+\fB\-V\fR, \fB\-\-version\fR
+display version information and exit
+.SH FILES
+.TP
+.I /var/run/utmp
+information about who is currently logged on
+.TP
+.I /proc
+process information
+.SH AUTHORS
+.B uptime
+was written by
+.UR greenfie@gauss.\:rutgers.\:edu
+Larry Greenfield
+.UE
+and
+.UR johnsonm@sunsite.\:unc.\:edu
+Michael K. Johnson
+.UE
+.SH "SEE ALSO"
+.BR ps (1),
+.BR top (1),
+.BR utmp (5),
+.BR w (1)
+.SH "REPORTING BUGS"
+Please send bug reports to
+.UR procps@freelists.org
+.UE
diff --git a/man/vmstat.8 b/man/vmstat.8
new file mode 100644
index 0000000..bfaba27
--- /dev/null
+++ b/man/vmstat.8
@@ -0,0 +1,202 @@
+.\"
+.\" Copyright (c) 2002-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2012-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1994 Henry Ware <al172@yfn.ysu.edu>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.TH VMSTAT 8 "2023-01-18" "procps-ng" "System Administration"
+.SH NAME
+vmstat \- Report virtual memory statistics
+.SH SYNOPSIS
+.B vmstat
+[options]
+.RI [ delay " [" count ]]
+.SH DESCRIPTION
+.B vmstat
+reports information about processes, memory, paging, block IO, traps, disks
+and cpu activity.
+.PP
+The first report produced gives averages since the last reboot. Additional
+reports give information on a sampling period of length
+.IR delay .
+The process and memory reports are instantaneous in either case.
+.SH OPTIONS
+.TP
+.I delay
+The
+.I delay
+between updates in seconds. If no
+.I delay
+is specified, only one report is printed with the average values since boot.
+.TP
+.I count
+Number of updates. In absence of
+.IR count ,
+when
+.I delay
+is defined, default is infinite.
+.TP
+\fB\-a\fR, \fB\-\-active\fR
+Display active and inactive memory, given a 2.5.41 kernel or better.
+.TP
+\fB\-f\fR, \fB\-\-forks\fR
+The
+.B \-f
+switch displays the number of forks since boot. This includes the fork,
+vfork, and clone system calls, and is equivalent to the total number of tasks
+created. Each process is represented by one or more tasks, depending on
+thread usage. This display does not repeat.
+.TP
+\fB\-m\fR, \fB\-\-slabs\fR
+Displays slabinfo.
+.TP
+\fB\-n\fR, \fB\-\-one-header\fR
+Display the header only once rather than periodically.
+.TP
+\fB\-s\fR, \fB\-\-stats\fR
+Displays a table of various event counters and memory statistics. This
+display does not repeat.
+.TP
+\fB\-d\fR, \fB\-\-disk\fR
+Report disk statistics (2.5.70 or above required).
+.TP
+\fB\-D\fR, \fB\-\-disk-sum\fR
+Report some summary statistics about disk activity.
+.TP
+\fB\-p\fR, \fB\-\-partition\fR \fIdevice\fR
+Detailed statistics about partition (2.5.70 or above required).
+.TP
+\fB\-S\fR, \fB\-\-unit\fR \fIcharacter\fR
+Switches outputs between 1000
+.RI ( k ),
+1024
+.RI ( K ),
+1000000
+.RI ( m ),
+or 1048576
+.RI ( M )
+bytes. Note this does not change the swap (si/so) or block (bi/bo)
+fields.
+.TP
+\fB\-t\fR, \fB\-\-timestamp\fR
+Append timestamp to each line
+.TP
+\fB\-w\fR, \fB\-\-wide\fR
+Wide output mode (useful for systems with higher amount of memory,
+where the default output mode suffers from unwanted column breakage).
+The output is wider than 80 characters per line.
+.TP
+\fB\-y\fR, \fB\-\-no-first\fR
+Omits first report with statistics since system boot.
+.TP
+\fB\-V\fR, \fB\-\-version\fR
+Display version information and exit.
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Display help and exit.
+.PD
+.SH FIELD DESCRIPTION FOR VM MODE
+.SS Procs
+.nf
+r: The number of runnable processes (running or waiting for run time).
+b: The number of processes blocked waiting for I/O to complete.
+.fi
+.SS Memory
+These are affected by the \fB\-\-unit\fR option.
+.nf
+swpd: the amount of swap memory used.
+free: the amount of idle memory.
+buff: the amount of memory used as buffers.
+cache: the amount of memory used as cache.
+inact: the amount of inactive memory. (\fB\-a\fR option)
+active: the amount of active memory. (\fB\-a\fR option)
+.fi
+.SS Swap
+These are affected by the \fB\-\-unit\fR option.
+.nf
+si: Amount of memory swapped in from disk (/s).
+so: Amount of memory swapped to disk (/s).
+.fi
+.SS IO
+.nf
+bi: Kibibyte received from a block device (KiB/s).
+bo: Kibibyte sent to a block device (KiB/s).
+.fi
+.SS System
+.nf
+in: The number of interrupts per second, including the clock.
+cs: The number of context switches per second.
+.fi
+.SS CPU
+These are percentages of total CPU time.
+.nf
+us: Time spent running non\-kernel code. (user time, including nice time)
+sy: Time spent running kernel code. (system time)
+id: Time spent idle. Prior to Linux 2.5.41, this includes IO\-wait time.
+wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle.
+st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.
+gu: Time spent running KVM guest code (guest time, including guest nice).
+.fi
+.SH FIELD DESCRIPTION FOR DISK MODE
+.SS Reads
+.nf
+total: Total reads completed successfully
+merged: grouped reads (resulting in one I/O)
+sectors: Sectors read successfully
+ms: milliseconds spent reading
+.fi
+.SS Writes
+.nf
+total: Total writes completed successfully
+merged: grouped writes (resulting in one I/O)
+sectors: Sectors written successfully
+ms: milliseconds spent writing
+.fi
+.SS IO
+.nf
+cur: I/O in progress
+s: seconds spent for I/O
+.fi
+.SH FIELD DESCRIPTION FOR DISK PARTITION MODE
+.nf
+reads: Total number of reads issued to this partition
+read sectors: Total read sectors for partition
+writes : Total number of writes issued to this partition
+requested writes: Total number of write requests made for partition
+.fi
+.SH FIELD DESCRIPTION FOR SLAB MODE
+Slab mode shows statistics per slab, for more information
+about this information see
+.BR slabinfo (5)
+.PP
+.nf
+cache: Cache name
+num: Number of currently active objects
+total: Total number of available objects
+size: Size of each object
+pages: Number of pages with at least one active object
+.fi
+.SH NOTES
+.B vmstat
+requires read access to files under \fI/proc\fR. The \fB\-m\fR requires read
+access to \fI/proc/slabinfo\fR which may not be available to standard users.
+Mount options for \fI/proc\fR such as \fIsubset=pid\fR may also impact what
+is visible.
+.SH "SEE ALSO"
+.BR free (1),
+.BR iostat (1),
+.BR mpstat (1),
+.BR ps (1),
+.BR sar (1),
+.BR top (1),
+.BR slabinfo (5)
+.SH "REPORTING BUGS"
+Please send bug reports to
+.UR procps@freelists.org
+.UE
diff --git a/man/w.1 b/man/w.1
new file mode 100644
index 0000000..dd10e9c
--- /dev/null
+++ b/man/w.1
@@ -0,0 +1,115 @@
+.\"
+.\" Copyright (c) 2009-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2015-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2012-2013 Jaromir Capik <jcapik@redhat.com>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2004 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.TH W "1" "2023-01-15" "procps-ng" "User Commands"
+.SH NAME
+w \- Show who is logged on and what they are doing.
+.SH SYNOPSIS
+.B w
+[\fIoptions\fR] [\fIuser\fR]
+.SH DESCRIPTION
+.B w
+displays information about the users currently on the machine, and their
+processes. The header shows, in this order, the current time, how long the
+system has been running, how many users are currently logged on, and the
+system load averages for the past 1, 5, and 15 minutes.
+.PP
+The following entries are displayed for each user: login name, the tty name,
+the remote host, login time, idle time, JCPU, PCPU, and the command line of
+their current process.
+.PP
+The JCPU time is the time used by all processes attached to the tty. It does
+not include past background jobs, but does include currently running
+background jobs.
+.PP
+The PCPU time is the time used by the current process, named in the "what"
+field.
+.SH "COMMAND\-LINE OPTIONS"
+.TP
+\fB\-h\fR, \fB\-\-no\-header\fR
+Don't print the header.
+.TP
+\fB\-u\fR, \fB\-\-no\-current\fR
+Ignores the username while figuring out the
+current process and cpu times. To demonstrate this, do a
+.B su
+and do a
+.B w
+and a
+.BR "w \-u".
+.TP
+\fB\-s\fR, \fB\-\-short\fR
+Use the short format. Don't print the login time, JCPU or PCPU times.
+.TP
+\fB\-f\fR, \fB\-\-from\fR
+Toggle printing the
+.B from
+(remote hostname) field. The default as released is for the
+.B from
+field to not be printed, although your system administrator or distribution
+maintainer may have compiled a version in which the
+.B from
+field is shown by default.
+.TP
+\fB\-\-help\fR
+Display help text and exit.
+.TP
+\fB\-i\fR, \fB\-\-ip\-addr\fR
+Display IP address instead of hostname for \fBfrom\fR field.
+.TP
+\fB\-p\fR, \fB\-\-pids\fR
+Display pid of the login process/the "what" process in the "what" field.
+.TP
+\fB\-V\fR, \fB\-\-version\fR
+Display version information.
+.TP
+\fB\-o\fR, \fB\-\-old\-style\fR
+Old style output. Prints blank space for idle times less than one minute.
+.TP
+.B "user "
+Show information about the specified user only.
+.SH ENVIRONMENT
+.TP
+PROCPS_USERLEN
+Override the default width of the username column. Defaults to 8.
+.TP
+PROCPS_FROMLEN
+Override the default width of the from column. Defaults to 16.
+.SH FILES
+.TP
+.I /var/run/utmp
+information about who is currently logged on
+.TP
+.I /proc
+process information
+.SH "SEE ALSO"
+.BR free (1),
+.BR ps (1),
+.BR top (1),
+.BR uptime (1),
+.BR utmp (5),
+.BR who (1)
+.SH AUTHORS
+.B w
+was re-written almost entirely by Charles Blake, based on the version by
+.UR greenfie@\:gauss.\:rutgers.\:edu
+Larry Greenfield
+.UE
+and
+.UR johnsonm@\:redhat.\:com
+Michael K. Johnson
+.UE
+.SH "REPORTING BUGS"
+Please send bug reports to
+.UR procps@freelists.org
+.UE
diff --git a/man/watch.1 b/man/watch.1
new file mode 100644
index 0000000..01685e6
--- /dev/null
+++ b/man/watch.1
@@ -0,0 +1,232 @@
+.\"
+.\" Copyright (c) 2009-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2018-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2003 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.TH WATCH 1 "2023-01-17" "procps-ng" "User Commands"
+.SH NAME
+watch \- execute a program periodically, showing output fullscreen
+.SH SYNOPSIS
+.B watch
+[\fIoptions\fR] \fIcommand\fR
+.SH DESCRIPTION
+.B watch
+runs
+.I command
+repeatedly, displaying its output and errors (the first screenfull). This
+allows you to watch the program output change over time. By default,
+\fIcommand\fR is run every 2 seconds and \fBwatch\fR will run until interrupted.
+.SH OPTIONS
+.TP
+\fB\-b\fR, \fB\-\-beep\fR
+Beep if command has a non-zero exit.
+.TP
+\fB\-c\fR, \fB\-\-color\fR
+Interpret ANSI color and style sequences.
+.TP
+\fB\-C\fR, \fB\-\-no-color\fR
+Do not interpret ANSI color and style sequences.
+.TP
+\fB\-d\fR, \fB\-\-differences\fR[=\fIpermanent\fR]
+Highlight the differences between successive updates. If the optional
+\fIpermanent\fR argument is specified then
+.B watch
+will show all changes since the first iteration.
+.TP
+\fB\-e\fR, \fB\-\-errexit\fR
+Freeze updates on command error, and exit after a key press.
+.TP
+\fB\-g\fR, \fB\-\-chgexit\fR
+Exit when the output of
+.I command
+changes.
+.TP
+\fB\-n\fR, \fB\-\-interval\fR \fIseconds\fR
+Specify update interval. The command will not allow quicker than 0.1 second
+interval, in which the smaller values are converted. Both '.' and ',' work
+for any locales. The \fBWATCH_INTERVAL\fR environment can be used to persistently
+set a non-default interval (following the same rules and formatting).
+.TP
+\fB\-p\fR, \fB\-\-precise\fR
+Make
+.BR watch
+attempt to run
+.I command
+every
+.B \-\-interval
+.IR seconds .
+Try it with
+.B ntptime
+(if present) and notice how the fractional seconds stays (nearly) the same, as opposed to
+normal mode where they continuously increase.
+.TP
+\fB\-q\fR, \fB\-\-equexit\fR <cycles>
+Exit when output of
+.I command
+does not change for the given number of cycles.
+.TP
+\fB\-r\fR, \fB\-\-no-rerun\fR
+Do not run the program on terminal resize, the output of the program will re-appear at the next
+regular run time.
+.TP
+\fB\-t\fR, \fB\-\-no\-title\fR
+Turn off the header showing the interval, command, and current time at the
+top of the display, as well as the following blank line.
+.TP
+\fB\-w\fR, \fB\-\-no\-wrap\fR
+Turn off line wrapping. Long lines will be truncated instead of wrapped to the next line.
+.TP
+\fB\-x\fR, \fB\-\-exec\fR
+Pass
+.I command
+to
+.BR exec (2)
+instead of
+.B sh \-c
+which reduces the need to use extra quoting to get the desired effect.
+.TP
+\fB\-h\fR, \fB\-\-help\fR
+Display help text and exit.
+.TP
+\fB\-v\fR, \fB\-\-version\fR
+Display version information and exit.
+.SH "EXIT STATUS"
+.PP
+.RS
+.PD 0
+.TP
+.B 0
+Success.
+.TP
+.B 1
+Various failures.
+.TP
+.B 2
+Forking the process to watch failed.
+.TP
+.B 3
+Replacing child process stdout with write side pipe failed.
+.TP
+.B 4
+Command execution failed.
+.TP
+.B 5
+Closing child process write pipe failed.
+.TP
+.B 7
+IPC pipe creation failed.
+.TP
+.B 8
+Getting child process return value with
+.BR waitpid (2)
+failed, or command exited up on error.
+.TP
+.B other
+The watch will propagate command exit status as child exit status.
+.SH ENVIRONMENT
+The behavior of
+.B watch
+is affected by the following environment variables.
+
+.TP
+.B WATCH_INTERVAL
+Update interval, follows the same rules as the
+.B \-\-interval
+command line option.
+.sp
+.SH NOTES
+POSIX option processing is used (i.e., option processing stops at
+the first non\-option argument). This means that flags after
+.I command
+don't get interpreted by
+.BR watch
+itself.
+.sp
+.SH BUGS
+Upon terminal resize, the screen will not be correctly repainted until the
+next scheduled update. All
+.B \-\-differences
+highlighting is lost on that update as well. When using the
+.B \-\-no\-rerun
+option, no output of will be visible.
+
+Non-printing characters are stripped from program output. Use \fBcat -v\fR as
+part of the command pipeline if you want to see them.
+
+Combining Characters that are supposed to display on the character at the
+last column on the screen may display one column early, or they may not
+display at all.
+
+Combining Characters never count as different in
+.B \-\-differences
+mode. Only the base character counts.
+
+Blank lines directly after a line which ends in the last column do not
+display.
+
+.B \-\-precise
+mode doesn't yet have advanced temporal distortion technology to compensate
+for a
+.I command
+that takes more than
+.B \-\-interval
+.I seconds
+to execute.
+.B watch
+also can get into a state where it rapid-fires as many executions of
+.I command
+as it can to catch up from a previous executions running longer than
+.B \-\-interval
+(for example,
+.BR netstat (8)
+taking ages on a DNS lookup).
+.sp
+.SH EXAMPLES
+.PP
+To watch for mail, you might do
+.IP
+watch \-n 60 from
+.PP
+To watch the contents of a directory change, you could use
+.IP
+watch \-d ls \-l
+.PP
+If you're only interested in files owned by user joe, you might use
+.IP
+watch \-d 'ls \-l | fgrep joe'
+.PP
+To see the effects of quoting, try these out
+.IP
+watch echo $$
+.br
+watch echo '$$'
+.br
+watch echo "'"'$$'"'"
+.PP
+To see the effect of precision time keeping, try adding
+.B \-p
+to
+.IP
+watch \-n 10 sleep 1
+.PP
+You can watch for your administrator to install the latest kernel with
+.IP
+watch uname \-r
+.PP
+(Note that
+.B \-p
+isn't guaranteed to work across reboots, especially in the face of
+.B ntpdate
+(if present) or other bootup time-changing mechanisms)
+.sp
+.SH "REPORTING BUGS"
+Please send bug reports to
+.UR procps@freelists.org
+.UE
diff --git a/missing b/missing
new file mode 100755
index 0000000..1fe1611
--- /dev/null
+++ b/missing
@@ -0,0 +1,215 @@
+#! /bin/sh
+# Common wrapper for a few potentially missing GNU programs.
+
+scriptversion=2018-03-07.03; # UTC
+
+# Copyright (C) 1996-2021 Free Software Foundation, Inc.
+# Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
+
+# 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 2, 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
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+if test $# -eq 0; then
+ echo 1>&2 "Try '$0 --help' for more information"
+ exit 1
+fi
+
+case $1 in
+
+ --is-lightweight)
+ # Used by our autoconf macros to check whether the available missing
+ # script is modern enough.
+ exit 0
+ ;;
+
+ --run)
+ # Back-compat with the calling convention used by older automake.
+ shift
+ ;;
+
+ -h|--h|--he|--hel|--help)
+ echo "\
+$0 [OPTION]... PROGRAM [ARGUMENT]...
+
+Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due
+to PROGRAM being missing or too old.
+
+Options:
+ -h, --help display this help and exit
+ -v, --version output version information and exit
+
+Supported PROGRAM values:
+ aclocal autoconf autoheader autom4te automake makeinfo
+ bison yacc flex lex help2man
+
+Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
+'g' are ignored when checking the name.
+
+Send bug reports to <bug-automake@gnu.org>."
+ exit $?
+ ;;
+
+ -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
+ echo "missing $scriptversion (GNU Automake)"
+ exit $?
+ ;;
+
+ -*)
+ echo 1>&2 "$0: unknown '$1' option"
+ echo 1>&2 "Try '$0 --help' for more information"
+ exit 1
+ ;;
+
+esac
+
+# Run the given program, remember its exit status.
+"$@"; st=$?
+
+# If it succeeded, we are done.
+test $st -eq 0 && exit 0
+
+# Also exit now if we it failed (or wasn't found), and '--version' was
+# passed; such an option is passed most likely to detect whether the
+# program is present and works.
+case $2 in --version|--help) exit $st;; esac
+
+# Exit code 63 means version mismatch. This often happens when the user
+# tries to use an ancient version of a tool on a file that requires a
+# minimum version.
+if test $st -eq 63; then
+ msg="probably too old"
+elif test $st -eq 127; then
+ # Program was missing.
+ msg="missing on your system"
+else
+ # Program was found and executed, but failed. Give up.
+ exit $st
+fi
+
+perl_URL=https://www.perl.org/
+flex_URL=https://github.com/westes/flex
+gnu_software_URL=https://www.gnu.org/software
+
+program_details ()
+{
+ case $1 in
+ aclocal|automake)
+ echo "The '$1' program is part of the GNU Automake package:"
+ echo "<$gnu_software_URL/automake>"
+ echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/autoconf>"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ autoconf|autom4te|autoheader)
+ echo "The '$1' program is part of the GNU Autoconf package:"
+ echo "<$gnu_software_URL/autoconf/>"
+ echo "It also requires GNU m4 and Perl in order to run:"
+ echo "<$gnu_software_URL/m4/>"
+ echo "<$perl_URL>"
+ ;;
+ esac
+}
+
+give_advice ()
+{
+ # Normalize program name to check for.
+ normalized_program=`echo "$1" | sed '
+ s/^gnu-//; t
+ s/^gnu//; t
+ s/^g//; t'`
+
+ printf '%s\n' "'$1' is $msg."
+
+ configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+ case $normalized_program in
+ autoconf*)
+ echo "You should only need it if you modified 'configure.ac',"
+ echo "or m4 files included by it."
+ program_details 'autoconf'
+ ;;
+ autoheader*)
+ echo "You should only need it if you modified 'acconfig.h' or"
+ echo "$configure_deps."
+ program_details 'autoheader'
+ ;;
+ automake*)
+ echo "You should only need it if you modified 'Makefile.am' or"
+ echo "$configure_deps."
+ program_details 'automake'
+ ;;
+ aclocal*)
+ echo "You should only need it if you modified 'acinclude.m4' or"
+ echo "$configure_deps."
+ program_details 'aclocal'
+ ;;
+ autom4te*)
+ echo "You might have modified some maintainer files that require"
+ echo "the 'autom4te' program to be rebuilt."
+ program_details 'autom4te'
+ ;;
+ bison*|yacc*)
+ echo "You should only need it if you modified a '.y' file."
+ echo "You may want to install the GNU Bison package:"
+ echo "<$gnu_software_URL/bison/>"
+ ;;
+ lex*|flex*)
+ echo "You should only need it if you modified a '.l' file."
+ echo "You may want to install the Fast Lexical Analyzer package:"
+ echo "<$flex_URL>"
+ ;;
+ help2man*)
+ echo "You should only need it if you modified a dependency" \
+ "of a man page."
+ echo "You may want to install the GNU Help2man package:"
+ echo "<$gnu_software_URL/help2man/>"
+ ;;
+ makeinfo*)
+ echo "You should only need it if you modified a '.texi' file, or"
+ echo "any other file indirectly affecting the aspect of the manual."
+ echo "You might want to install the Texinfo package:"
+ echo "<$gnu_software_URL/texinfo/>"
+ echo "The spurious makeinfo call might also be the consequence of"
+ echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might"
+ echo "want to install GNU make:"
+ echo "<$gnu_software_URL/make/>"
+ ;;
+ *)
+ echo "You might have modified some files without having the proper"
+ echo "tools for further handling them. Check the 'README' file, it"
+ echo "often tells you about the needed prerequisites for installing"
+ echo "this package. You may also peek at any GNU archive site, in"
+ echo "case some other package contains this missing '$1' program."
+ ;;
+ esac
+}
+
+give_advice "$1" | sed -e '1s/^/WARNING: /' \
+ -e '2,$s/^/ /' >&2
+
+# Propagate the correct exit status (expected to be 127 for a program
+# not found, 63 for a program that failed due to version mismatch).
+exit $st
+
+# Local variables:
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC0"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/mkinstalldirs b/mkinstalldirs
new file mode 100755
index 0000000..d2d5f21
--- /dev/null
+++ b/mkinstalldirs
@@ -0,0 +1,111 @@
+#! /bin/sh
+# mkinstalldirs --- make directory hierarchy
+# Author: Noah Friedman <friedman@prep.ai.mit.edu>
+# Created: 1993-05-16
+# Public domain
+
+errstatus=0
+dirmode=""
+
+usage="\
+Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
+
+# process command line arguments
+while test $# -gt 0 ; do
+ case $1 in
+ -h | --help | --h*) # -h for help
+ echo "$usage" 1>&2
+ exit 0
+ ;;
+ -m) # -m PERM arg
+ shift
+ test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
+ dirmode=$1
+ shift
+ ;;
+ --) # stop option processing
+ shift
+ break
+ ;;
+ -*) # unknown option
+ echo "$usage" 1>&2
+ exit 1
+ ;;
+ *) # first non-opt arg
+ break
+ ;;
+ esac
+done
+
+for file
+do
+ if test -d "$file"; then
+ shift
+ else
+ break
+ fi
+done
+
+case $# in
+ 0) exit 0 ;;
+esac
+
+case $dirmode in
+ '')
+ if mkdir -p -- . 2>/dev/null; then
+ echo "mkdir -p -- $*"
+ exec mkdir -p -- "$@"
+ fi
+ ;;
+ *)
+ if mkdir -m "$dirmode" -p -- . 2>/dev/null; then
+ echo "mkdir -m $dirmode -p -- $*"
+ exec mkdir -m "$dirmode" -p -- "$@"
+ fi
+ ;;
+esac
+
+for file
+do
+ set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`
+ shift
+
+ pathcomp=
+ for d
+ do
+ pathcomp="$pathcomp$d"
+ case $pathcomp in
+ -*) pathcomp=./$pathcomp ;;
+ esac
+
+ if test ! -d "$pathcomp"; then
+ echo "mkdir $pathcomp"
+
+ mkdir "$pathcomp" || lasterr=$?
+
+ if test ! -d "$pathcomp"; then
+ errstatus=$lasterr
+ else
+ if test ! -z "$dirmode"; then
+ echo "chmod $dirmode $pathcomp"
+ lasterr=""
+ chmod "$dirmode" "$pathcomp" || lasterr=$?
+
+ if test ! -z "$lasterr"; then
+ errstatus=$lasterr
+ fi
+ fi
+ fi
+ fi
+
+ pathcomp="$pathcomp/"
+ done
+done
+
+exit $errstatus
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# End:
+# mkinstalldirs ends here
diff --git a/po-man/Makefile.am b/po-man/Makefile.am
new file mode 100644
index 0000000..cb531af
--- /dev/null
+++ b/po-man/Makefile.am
@@ -0,0 +1,101 @@
+
+# *.po and *.pot are kept in VCS and generated by po4a-dist command
+# translated/* are put in distribution but not found in VCS
+#
+# run:
+# rm po-man/man.stamp
+# make -C po-man man.stamp
+# To update man page translations
+
+src_MANS = $(wildcard $(top_srcdir)/man/*.[1-9])
+
+translated_MANS = $(wildcard translated/*/*.[1-9])
+translated_MAN_sections=$(subst .,,$(sort $(suffix $(translated_MANS))))
+
+translated_langs = $(notdir $(wildcard translated/*))
+
+
+EXTRA_DIST = po4a.cfg \
+ procps-man.pot \
+ $(translated_MANS)
+
+# Extract the list of languages from the po4a config file.
+LINGUAS_DIST = $(shell sed -ne 's/^.*\[po4a_langs\] \(.*\)$$/\1/p' $(srcdir)/po4a.cfg)
+
+# If the user has not defined it let's use the default.
+LINGUAS ?= $(LINGUAS_DIST)
+
+PO4A_V = $(PO4A_V_@AM_V@)
+PO4A_V_ = $(PO4A_V_@AM_DEFAULT_V@)
+PO4A_V_0 = @echo " PO4A $@";
+
+PO4A_OPTS = --srcdir $(srcdir) --destdir $(CURDIR) \
+ --package-name $(PACKAGE) --package-version $(VERSION) \
+ --msgid-bugs-address "Procps list <procps@freelists.org>"
+
+all-local: all-local-@USE_PO4A@
+
+all-local-no:
+all-local-yes: man.stamp
+
+# FIXME: Use a stamp file until po4a supports them internally.
+man.stamp:
+ $(PO4A_V) $(PO4A) $(PO4A_OPTS) $(srcdir)/po4a.cfg
+ $(AM_V_at) touch $@
+
+clean-local: clean-local-@USE_PO4A@
+
+clean-local-no:
+clean-local-yes:
+ rm -rf $(LINGUAS_DIST)
+ $(AM_V_at) rm -f man.stamp
+
+.PHONY: update-po
+
+procps-man.pot: $(src_MANS)
+# parafiles = $(patsubst %,-m%,$(subst :, ,$(src_MANS)))
+# parafiles = $(src_MANS:doc=Ente)
+ po4a-gettextize -M utf8 --option groff_code=verbatim --option generated --option untranslated="a.RE,\|" --option unknown_macros=untranslated -f man $(patsubst %,-m%,$(subst :, ,$(src_MANS))) -p $@
+
+update-po:
+ $(PO4A_V) $(PO4A) $(PO4A_OPTS) --force $(srcdir)/po4a.cfg
+
+
+install-data-local:
+ for lang in $(LINGUAS) ; do \
+ files=""; \
+ for trans in $(notdir $(src_MANS)); do \
+ if [ -f $(CURDIR)/$$lang/$$trans ]; then \
+ files="$$files $(CURDIR)/$$lang/$$trans"; \
+ elif [ -f $(srcdir)/$$lang/$$trans ]; then \
+ files="$$files $(srcdir)/$$lang/$$trans"; \
+ fi; \
+ done; \
+ $(MAKE) -C .. install-man \
+ mandir="$(mandir)/$$lang" \
+ dist_man_MANS="$$files"; \
+ done
+
+uninstall-local:
+ for lang in $(LINGUAS); do \
+ files=""; \
+ for trans in $(notdir $(src_MANS)); do \
+ if [ -f $(CURDIR)/$$lang/$$trans ]; then \
+ files="$$files $(CURDIR)/$$lang/$$trans"; \
+ elif [ -f $(srcdir)/$$lang/$$trans ]; then \
+ files="$$files $(srcdir)/$$lang/$$trans"; \
+ fi; \
+ done; \
+ $(MAKE) -C .. uninstall-man \
+ mandir="$(mandir)/$$lang" \
+ dist_man_MANS="$$files"; \
+ done
+
+dist-hook: man.stamp
+ cp $(srcdir)/man.stamp $(distdir)/
+ for lang in $(LINGUAS_DIST); do \
+ cp $(srcdir)/$$lang.po $(distdir); \
+ cp $(srcdir)/$$lang.add $(distdir); \
+ $(MKDIR_P) $(distdir)/$$lang; \
+ cp -r $(srcdir)/$$lang $(distdir)/; \
+ done
diff --git a/po-man/Makefile.in b/po-man/Makefile.in
new file mode 100644
index 0000000..6c7e67c
--- /dev/null
+++ b/po-man/Makefile.in
@@ -0,0 +1,575 @@
+# Makefile.in generated by automake 1.16.5 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2021 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+# *.po and *.pot are kept in VCS and generated by po4a-dist command
+# translated/* are put in distribution but not found in VCS
+#
+# run:
+# rm po-man/man.stamp
+# make -C po-man man.stamp
+# To update man page translations
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = po-man
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
+ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/mkinstalldirs
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CSCOPE = @CSCOPE@
+CTAGS = @CTAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEJAGNU = @DEJAGNU@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DL_LIB = @DL_LIB@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ELOGIND_CFLAGS = @ELOGIND_CFLAGS@
+ELOGIND_LIBS = @ELOGIND_LIBS@
+ETAGS = @ETAGS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FILECMD = @FILECMD@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+HARDEN_CFLAGS = @HARDEN_CFLAGS@
+HARDEN_LDFLAGS = @HARDEN_LDFLAGS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
+NCURSES_CFLAGS = @NCURSES_CFLAGS@
+NCURSES_LIBS = @NCURSES_LIBS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+PO4A = @PO4A@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@
+SYSTEMD_LIBS = @SYSTEMD_LIBS@
+USE_NLS = @USE_NLS@
+USE_PO4A = @USE_PO4A@
+VERSION = @VERSION@
+WITH_COLORWATCH = @WITH_COLORWATCH@
+WITH_WATCH8BIT = @WITH_WATCH8BIT@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+usrbin_execdir = @usrbin_execdir@
+src_MANS = $(wildcard $(top_srcdir)/man/*.[1-9])
+translated_MANS = $(wildcard translated/*/*.[1-9])
+translated_MAN_sections = $(subst .,,$(sort $(suffix $(translated_MANS))))
+translated_langs = $(notdir $(wildcard translated/*))
+EXTRA_DIST = po4a.cfg \
+ procps-man.pot \
+ $(translated_MANS)
+
+
+# Extract the list of languages from the po4a config file.
+LINGUAS_DIST = $(shell sed -ne 's/^.*\[po4a_langs\] \(.*\)$$/\1/p' $(srcdir)/po4a.cfg)
+PO4A_V = $(PO4A_V_@AM_V@)
+PO4A_V_ = $(PO4A_V_@AM_DEFAULT_V@)
+PO4A_V_0 = @echo " PO4A $@";
+PO4A_OPTS = --srcdir $(srcdir) --destdir $(CURDIR) \
+ --package-name $(PACKAGE) --package-version $(VERSION) \
+ --msgid-bugs-address "Procps list <procps@freelists.org>"
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign po-man/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign po-man/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+ $(MAKE) $(AM_MAKEFLAGS) \
+ top_distdir="$(top_distdir)" distdir="$(distdir)" \
+ dist-hook
+check-am: all-am
+check: check-am
+all-am: Makefile all-local
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-local mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am: install-data-local
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-local
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am all-local check check-am clean clean-generic \
+ clean-libtool clean-local cscopelist-am ctags-am dist-hook \
+ distclean distclean-generic distclean-libtool distdir dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-data-local install-dvi \
+ install-dvi-am install-exec install-exec-am install-html \
+ install-html-am install-info install-info-am install-man \
+ install-pdf install-pdf-am install-ps install-ps-am \
+ install-strip installcheck installcheck-am installdirs \
+ maintainer-clean maintainer-clean-generic mostlyclean \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags-am uninstall uninstall-am uninstall-local
+
+.PRECIOUS: Makefile
+
+
+# If the user has not defined it let's use the default.
+LINGUAS ?= $(LINGUAS_DIST)
+
+all-local: all-local-@USE_PO4A@
+
+all-local-no:
+all-local-yes: man.stamp
+
+# FIXME: Use a stamp file until po4a supports them internally.
+man.stamp:
+ $(PO4A_V) $(PO4A) $(PO4A_OPTS) $(srcdir)/po4a.cfg
+ $(AM_V_at) touch $@
+
+clean-local: clean-local-@USE_PO4A@
+
+clean-local-no:
+clean-local-yes:
+ rm -rf $(LINGUAS_DIST)
+ $(AM_V_at) rm -f man.stamp
+
+.PHONY: update-po
+
+procps-man.pot: $(src_MANS)
+# parafiles = $(patsubst %,-m%,$(subst :, ,$(src_MANS)))
+# parafiles = $(src_MANS:doc=Ente)
+ po4a-gettextize -M utf8 --option groff_code=verbatim --option generated --option untranslated="a.RE,\|" --option unknown_macros=untranslated -f man $(patsubst %,-m%,$(subst :, ,$(src_MANS))) -p $@
+
+update-po:
+ $(PO4A_V) $(PO4A) $(PO4A_OPTS) --force $(srcdir)/po4a.cfg
+
+install-data-local:
+ for lang in $(LINGUAS) ; do \
+ files=""; \
+ for trans in $(notdir $(src_MANS)); do \
+ if [ -f $(CURDIR)/$$lang/$$trans ]; then \
+ files="$$files $(CURDIR)/$$lang/$$trans"; \
+ elif [ -f $(srcdir)/$$lang/$$trans ]; then \
+ files="$$files $(srcdir)/$$lang/$$trans"; \
+ fi; \
+ done; \
+ $(MAKE) -C .. install-man \
+ mandir="$(mandir)/$$lang" \
+ dist_man_MANS="$$files"; \
+ done
+
+uninstall-local:
+ for lang in $(LINGUAS); do \
+ files=""; \
+ for trans in $(notdir $(src_MANS)); do \
+ if [ -f $(CURDIR)/$$lang/$$trans ]; then \
+ files="$$files $(CURDIR)/$$lang/$$trans"; \
+ elif [ -f $(srcdir)/$$lang/$$trans ]; then \
+ files="$$files $(srcdir)/$$lang/$$trans"; \
+ fi; \
+ done; \
+ $(MAKE) -C .. uninstall-man \
+ mandir="$(mandir)/$$lang" \
+ dist_man_MANS="$$files"; \
+ done
+
+dist-hook: man.stamp
+ cp $(srcdir)/man.stamp $(distdir)/
+ for lang in $(LINGUAS_DIST); do \
+ cp $(srcdir)/$$lang.po $(distdir); \
+ cp $(srcdir)/$$lang.add $(distdir); \
+ $(MKDIR_P) $(distdir)/$$lang; \
+ cp -r $(srcdir)/$$lang $(distdir)/; \
+ done
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/po-man/de.po b/po-man/de.po
new file mode 100644
index 0000000..70992b7
--- /dev/null
+++ b/po-man/de.po
@@ -0,0 +1,16179 @@
+# German translation of the procps man pages.
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This file is distributed under the same license as the procps-ng package.
+#
+# Martin Eberhard Schauer <Martin.E.Schauer@gmx.de>, 2010.
+# Tobias Quathamer <toddy@debian.org>, 2011, 2012, 2014.
+# Mario Blättermann <mario.blaettermann@gmail.com>, 2014, 2019, 2021-2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: procps-ng-man-4.0.4-rc1\n"
+"Report-Msgid-Bugs-To: Procps list <procps@freelists.org>\n"
+"POT-Creation-Date: 2023-08-19 17:38+1000\n"
+"PO-Revision-Date: 2023-08-20 17:36+0200\n"
+"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
+"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"X-Generator: Lokalize 23.04.3\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+
+#. type: TH
+#: ../man/free.1:14
+#, no-wrap
+msgid "FREE"
+msgstr "FREE"
+
+#. type: TH
+#: ../man/free.1:14
+#, no-wrap
+msgid "2023-05-02"
+msgstr "2. Mai 2023"
+
+#. type: TH
+#: ../man/free.1:14 ../man/kill.1:12 ../man/pgrep.1:13 ../man/pmap.1:19
+#: ../man/pwdx.1:12 ../man/skill.1:12 ../man/slabtop.1:14 ../man/sysctl.8:14
+#: ../man/sysctl.conf.5:13 ../man/tload.1:12 ../man/uptime.1:13
+#: ../man/vmstat.8:13 ../man/w.1:14 ../man/watch.1:13 ../man/ps.1:13
+#: ../man/top.1:62
+#, no-wrap
+msgid "procps-ng"
+msgstr "procps-ng"
+
+#. type: TH
+#: ../man/free.1:14 ../man/kill.1:12 ../man/pgrep.1:13 ../man/pidof.1:13
+#: ../man/pmap.1:19 ../man/pwdx.1:12 ../man/skill.1:12 ../man/slabtop.1:14
+#: ../man/tload.1:12 ../man/uptime.1:13 ../man/w.1:14 ../man/watch.1:13
+#: ../man/ps.1:13 ../man/top.1:62
+#, no-wrap
+msgid "User Commands"
+msgstr "Dienstprogramme für Benutzer"
+
+#. type: SH
+#: ../man/free.1:15 ../man/kill.1:13 ../man/pgrep.1:14 ../man/pidof.1:14
+#: ../man/pmap.1:20 ../man/pwdx.1:13 ../man/skill.1:13 ../man/slabtop.1:15
+#: ../man/sysctl.8:15 ../man/sysctl.conf.5:14 ../man/tload.1:13
+#: ../man/uptime.1:14 ../man/vmstat.8:14 ../man/w.1:15 ../man/watch.1:14
+#: ../man/ps.1:27 ../man/top.1:67 ../man/procps.3:15 ../man/procps_misc.3:15
+#: ../man/procps_pids.3:15
+#, no-wrap
+msgid "NAME"
+msgstr "BEZEICHNUNG"
+
+#. type: Plain text
+#: ../man/free.1:17
+msgid "free - Display amount of free and used memory in the system"
+msgstr "free - Anzeige des freien und belegten Speichers"
+
+#. type: SH
+#: ../man/free.1:17 ../man/kill.1:15 ../man/pgrep.1:16 ../man/pidof.1:16
+#: ../man/pmap.1:22 ../man/pwdx.1:15 ../man/skill.1:15 ../man/slabtop.1:17
+#: ../man/sysctl.8:17 ../man/tload.1:15 ../man/uptime.1:16 ../man/vmstat.8:16
+#: ../man/w.1:17 ../man/watch.1:16 ../man/ps.1:29 ../man/top.1:72
+#: ../man/procps.3:18 ../man/procps_misc.3:17 ../man/procps_pids.3:18
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "ÃœBERSICHT"
+
+#. type: Plain text
+#: ../man/free.1:20
+msgid "B<free> [I<options>]"
+msgstr "B<free> [I<Optionen>]"
+
+#. type: SH
+#: ../man/free.1:20 ../man/kill.1:18 ../man/pgrep.1:25 ../man/pidof.1:30
+#: ../man/pmap.1:25 ../man/skill.1:25 ../man/slabtop.1:20 ../man/sysctl.8:23
+#: ../man/sysctl.conf.5:16 ../man/tload.1:18 ../man/uptime.1:19
+#: ../man/vmstat.8:20 ../man/w.1:20 ../man/watch.1:19 ../man/ps.1:31
+#: ../man/ps.1:1002 ../man/top.1:77 ../man/procps.3:67 ../man/procps_misc.3:49
+#: ../man/procps_pids.3:61
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "BESCHREIBUNG"
+
+#. type: Plain text
+#: ../man/free.1:26
+msgid "B<free> displays the total amount of free and used physical and swap memory in the system, as well as the buffers and caches used by the kernel. The information is gathered by parsing /proc/meminfo. The displayed columns are:"
+msgstr "B<free> zeigt den gesamten freien und genutzten physischen Speicher und Auslagerungsspeicher im System sowie die vom Kernel verwendeten Puffer und Zwischenspeicher an. Die Informationen werden durch Auslesen von /proc/meminfo ermittelt. Folgende Spalten werden angezeigt:"
+
+#. type: TP
+#: ../man/free.1:26
+#, no-wrap
+msgid "B<total>"
+msgstr "B<gesamt>"
+
+#. type: Plain text
+#: ../man/free.1:30
+msgid "Total usable memory (MemTotal and SwapTotal in /proc/meminfo). This includes the physical and swap memory minus a few reserved bits and kernel binary code."
+msgstr "Gesamter nutzbarer Speicher (MemTotal und SwapTotal in /proc/meminfo). Dies umfasst den physischen und den Auslagerungsspeicher, abzüglich reservierter Bits und Kernel-Binärcode."
+
+#. type: TP
+#: ../man/free.1:30
+#, no-wrap
+msgid "B<used>"
+msgstr "B<benutzt>"
+
+#. type: Plain text
+#: ../man/free.1:33
+msgid "Used or unavailable memory (calculated as B<total> - B<available>)"
+msgstr "Benutzter oder nicht verfügbarer Speicher (errechnet durch B<gesamt> minus B<verfügbar>)"
+
+#. type: TP
+#: ../man/free.1:33
+#, no-wrap
+msgid "B<free>"
+msgstr "B<frei>"
+
+#. type: Plain text
+#: ../man/free.1:36
+msgid "Unused memory (MemFree and SwapFree in /proc/meminfo)"
+msgstr "Ungenutzter Speicher (MemFree und SwapFree in /proc/meminfo)"
+
+#. type: TP
+#: ../man/free.1:36
+#, no-wrap
+msgid "B<shared>"
+msgstr "B<gemns.>"
+
+#. type: Plain text
+#: ../man/free.1:39
+msgid "Memory used (mostly) by tmpfs (Shmem in /proc/meminfo)"
+msgstr "(Meist) von Tmpfs genutzter Speicher (Shmem in /proc/meminfo)"
+
+#. type: TP
+#: ../man/free.1:39
+#, no-wrap
+msgid "B<buffers>"
+msgstr "B<Puffer>"
+
+#. type: Plain text
+#: ../man/free.1:42
+msgid "Memory used by kernel buffers (Buffers in /proc/meminfo)"
+msgstr "Von den Kernel-Puffern genutzter Speicher (Buffers in /proc/meminfo)"
+
+#. type: TP
+#: ../man/free.1:42
+#, no-wrap
+msgid "B<cache>"
+msgstr "B<Cache>"
+
+#. type: Plain text
+#: ../man/free.1:45
+msgid "Memory used by the page cache and slabs (Cached and SReclaimable in /proc/meminfo)"
+msgstr "Vom Page-Cache und Slabs genutzter Speicher (Cached und SReclaimable in /proc/meminfo)"
+
+#. type: TP
+#: ../man/free.1:45
+#, no-wrap
+msgid "B<buff/cache>"
+msgstr "B<Puffer/Cache>"
+
+#. type: Plain text
+#: ../man/free.1:48
+msgid "Sum of B<buffers> and B<cache>"
+msgstr "Summe von B<Puffer> und B<Cache>"
+
+#. type: TP
+#: ../man/free.1:48
+#, no-wrap
+msgid "B<available>"
+msgstr "B<verfügbar>"
+
+#. type: Plain text
+#: ../man/free.1:57
+msgid "Estimation of how much memory is available for starting new applications, without swapping. Unlike the data provided by the B<cache> or B<free> fields, this field takes into account page cache and also that not all reclaimable memory slabs will be reclaimed due to items being in use (MemAvailable in /proc/meminfo, available on kernels 3.14, emulated on kernels 2.6.27+, otherwise the same as B<free>)"
+msgstr "Schätzung des zum Starten neuer Anwendungen verfügbaren Speichers, ohne den Auslagerungsspeicher zu nutzen. Im Gegensatz zu den in den Feldern B<Cache> oder B<Frei> angezeigten Daten bezieht dieses Feld den Page-Cache mit ein, und beachtet außerdem, dass nicht alle beanspruchbaren Speicher-Slabs durch in Verwendung befindliche Objekte auch wirklich beansprucht werden. (MemAvailable in /proc/meminfo, verfügbar ab Kernel 3.14, emuliert in Kernel 2.6.27 und neuer, anderenfalls gleichbedeutend mit B<Frei>)"
+
+#. type: SH
+#: ../man/free.1:57 ../man/kill.1:34 ../man/pgrep.1:53 ../man/pidof.1:34
+#: ../man/pmap.1:29 ../man/pwdx.1:18 ../man/skill.1:42 ../man/slabtop.1:25
+#: ../man/tload.1:25 ../man/uptime.1:36 ../man/vmstat.8:29 ../man/watch.1:26
+#, no-wrap
+msgid "OPTIONS"
+msgstr "OPTIONEN"
+
+#. type: TP
+#: ../man/free.1:58
+#, no-wrap
+msgid "B<-b>, B<--bytes>"
+msgstr "B<-b>, B<--bytes>"
+
+#. type: Plain text
+#: ../man/free.1:61
+msgid "Display the amount of memory in bytes."
+msgstr "zeigt die Speichergröße in Byte an."
+
+#. type: TP
+#: ../man/free.1:61
+#, no-wrap
+msgid "B<-k>, B<--kibi>"
+msgstr "B<-k>, B<--kibi>"
+
+#. type: Plain text
+#: ../man/free.1:64
+msgid "Display the amount of memory in kibibytes. This is the default."
+msgstr "zeigt die Speichergröße in Kibibyte an. Das ist die Voreinstellung."
+
+#. type: TP
+#: ../man/free.1:64
+#, no-wrap
+msgid "B<-m>, B<--mebi>"
+msgstr "B<-m>, B<--mebi>"
+
+#. type: Plain text
+#: ../man/free.1:67
+msgid "Display the amount of memory in mebibytes."
+msgstr "zeigt die Speichergröße in Mebibyte an."
+
+#. type: TP
+#: ../man/free.1:67
+#, no-wrap
+msgid "B<-g>, B<--gibi>"
+msgstr "B<-g>, B<--gibi>"
+
+#. type: Plain text
+#: ../man/free.1:70
+msgid "Display the amount of memory in gibibytes."
+msgstr "zeigt die Speichergröße in Gibibyte an."
+
+#. type: TP
+#: ../man/free.1:70
+#, no-wrap
+msgid "B<--tebi>"
+msgstr "B<--tebi>"
+
+#. type: Plain text
+#: ../man/free.1:73
+msgid "Display the amount of memory in tebibytes."
+msgstr "zeigt die Speichergröße in Tebibyte an."
+
+#. type: TP
+#: ../man/free.1:73
+#, no-wrap
+msgid "B<--pebi>"
+msgstr "B<--pebi>"
+
+#. type: Plain text
+#: ../man/free.1:76
+msgid "Display the amount of memory in pebibytes."
+msgstr "Zeigt die Speichergröße in Pebibyte an."
+
+#. type: TP
+#: ../man/free.1:76
+#, no-wrap
+msgid "B<--kilo>"
+msgstr "B<--kilo>"
+
+#. type: Plain text
+#: ../man/free.1:79
+msgid "Display the amount of memory in kilobytes. Implies --si."
+msgstr "zeigt die Speichergröße in Kilobyte an. Impliziert --si."
+
+#. type: TP
+#: ../man/free.1:79
+#, no-wrap
+msgid "B<--mega>"
+msgstr "B<--mega>"
+
+#. type: Plain text
+#: ../man/free.1:82
+msgid "Display the amount of memory in megabytes. Implies --si."
+msgstr "zeigt die Speichergröße in Megabyte an. Impliziert --si."
+
+#. type: TP
+#: ../man/free.1:82
+#, no-wrap
+msgid "B<--giga>"
+msgstr "B<--giga>"
+
+#. type: Plain text
+#: ../man/free.1:85
+msgid "Display the amount of memory in gigabytes. Implies --si."
+msgstr "zeigt die Speichergröße in Gigabyte an. Impliziert --si."
+
+#. type: TP
+#: ../man/free.1:85
+#, no-wrap
+msgid "B<--tera>"
+msgstr "B<--tera>"
+
+#. type: Plain text
+#: ../man/free.1:88
+msgid "Display the amount of memory in terabytes. Implies --si."
+msgstr "zeigt die Speichergröße in Terabyte an. Impliziert --si."
+
+#. type: TP
+#: ../man/free.1:88
+#, no-wrap
+msgid "B<--peta>"
+msgstr "B<--peta>"
+
+#. type: Plain text
+#: ../man/free.1:91
+msgid "Display the amount of memory in petabytes. Implies --si."
+msgstr "zeigt die Speichergröße in Petabyte an. Impliziert --si."
+
+#. type: TP
+#: ../man/free.1:91
+#, no-wrap
+msgid "B<-h>, B<--human>"
+msgstr "B<-h>, B<--human>"
+
+#. type: Plain text
+#: ../man/free.1:95
+msgid "Show all output fields automatically scaled to shortest three digit unit and display the units of print out. Following units are used."
+msgstr "Alle angezeigten Felder werden automatisch auf die kleinste Einheit mit drei Ziffern skaliert. Die Einheiten werden in der Ausgabe angezeigt. Es werden die folgenden Einheiten verwendet."
+
+#. type: Plain text
+#: ../man/free.1:103
+#, no-wrap
+msgid ""
+" B = bytes\n"
+" Ki = kibibyte\n"
+" Mi = mebibyte\n"
+" Gi = gibibyte\n"
+" Ti = tebibyte\n"
+" Pi = pebibyte\n"
+msgstr ""
+" B = Byte\n"
+" Ki = Kibibyte\n"
+" Mi = Mebibyte\n"
+" Gi = Gibibyte\n"
+" Ti = Tebibyte\n"
+" Pi = Pebibyte\n"
+
+#. type: Plain text
+#: ../man/free.1:107
+msgid "If unit is missing, and you have exbibyte of RAM or swap, the number is in tebibytes and columns might not be aligned with header."
+msgstr "Falls die Einheit fehlt und Sie Exbibyte an RAM oder Auslagerungsspeicher haben, wird die Zahl in Tebibyte angezeigt und die Spalten sind möglicherweise nicht an den Kopfzeilen ausgerichtet."
+
+#. type: TP
+#: ../man/free.1:107 ../man/vmstat.8:89
+#, no-wrap
+msgid "B<-w>, B<--wide>"
+msgstr "B<-w>, B<--wide>"
+
+#. type: Plain text
+#: ../man/free.1:112
+msgid "Switch to the wide mode. The wide mode produces lines longer than 80 characters. In this mode B<buffers> and B<cache> are reported in two separate columns."
+msgstr "wechselt in den breiten Modus. In diesem Modus können Zeilen dargestellt werden, die länger als 80 Zeichen sind. B<Puffer> und B<Cache> werden dann in zwei separaten Spalten dargestellt."
+
+#. type: TP
+#: ../man/free.1:112
+#, no-wrap
+msgid "B<-c>, B<--count> I<count>"
+msgstr "B<-c>, B<--count> I<Anzahl>"
+
+#. type: Plain text
+#: ../man/free.1:119
+msgid "Display the result I<count> times. Requires the B<-s> option."
+msgstr "zeigt das Ergebnis I<Anzahl> mal an. Erfordert die Option B<-s>."
+
+#. type: TP
+#: ../man/free.1:119
+#, no-wrap
+msgid "B<-l>, B<--lohi>"
+msgstr "B<-l>, B<--lohi>"
+
+#. type: Plain text
+#: ../man/free.1:122
+msgid "Show detailed low and high memory statistics."
+msgstr "zeigt detailliert die Belegung von »low memory« und »high memory« an."
+
+#. type: TP
+#: ../man/free.1:122
+#, no-wrap
+msgid "B<-L>, B<--line>"
+msgstr "B<-L>, B<--line>"
+
+#. type: Plain text
+#: ../man/free.1:127
+msgid "Show output on a single line, often used with the B<-s> option to show memory statistics repeatedly."
+msgstr "zeigt die Ausgabe in einer einzelnen Zeile an; wird oft mit der Option B<-s> verwendet, um Speicherstatistiken wiederholt anzuzeigen."
+
+#. type: TP
+#: ../man/free.1:127
+#, no-wrap
+msgid "B<-s>, B<--seconds> I<delay>"
+msgstr "B<-s>, B<--seconds> I<Intervall>"
+
+#. type: Plain text
+#: ../man/free.1:134
+msgid "Continuously display the result I<delay> seconds apart. You may actually specify any floating point number for I<delay> using either . or , for decimal point. B<usleep>(3) is used for microsecond resolution delay times."
+msgstr "Fortlaufende Aktualisierung der Anzeige nach I<Intervall> Sekunden. Sie können für I<Intervall> eine beliebige Gleitkommazahl angeben mit einem Punkt oder Komma als Dezimaltrenner angeben. Durch die Nutzung von B<usleep>(3) können die Intervalle bis auf die Mikrosekunde genau festgelegt werden."
+
+#. type: TP
+#: ../man/free.1:134
+#, no-wrap
+msgid "B<--si>"
+msgstr "B<--si>"
+
+#. type: Plain text
+#: ../man/free.1:138
+msgid "Use kilo, mega, giga etc (power of 1000) instead of kibi, mebi, gibi (power of 1024)."
+msgstr "verwendet Kilo, Mega, Giga usw. (Vielfache von 1000) anstelle von Kibi, Mebi, Gibi (Vielfache von 1024)."
+
+#. type: TP
+#: ../man/free.1:138
+#, no-wrap
+msgid "B<-t>, B<--total>"
+msgstr "B<-t>, B<--total>"
+
+#. type: Plain text
+#: ../man/free.1:141
+msgid "Display a line showing the column totals."
+msgstr "zeigt eine Zeile mit den Spaltensummen an."
+
+#. type: TP
+#: ../man/free.1:141
+#, no-wrap
+msgid "B<-v>, B<--committed>"
+msgstr "B<-v>, B<--committed>"
+
+#. type: Plain text
+#: ../man/free.1:146
+msgid "Display a line showing the memory commit limit and amount of committed/uncommitted memory. The B<total> column on this line will display the memory commit limit. This line is relevant if memory overcommit is disabled."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:146 ../man/w.1:63
+#, no-wrap
+msgid "B<--help>"
+msgstr "B<--help>"
+
+#. type: Plain text
+#: ../man/free.1:149
+msgid "Print help."
+msgstr "Hilfe ausgeben."
+
+#. type: TP
+#: ../man/free.1:149 ../man/pgrep.1:228 ../man/pmap.1:72 ../man/pwdx.1:19
+#: ../man/skill.1:68 ../man/slabtop.1:45 ../man/sysctl.8:116 ../man/tload.1:38
+#: ../man/uptime.1:46 ../man/vmstat.8:97 ../man/w.1:72
+#, no-wrap
+msgid "B<-V>, B<--version>"
+msgstr "B<-V>, B<--version>"
+
+#. type: Plain text
+#: ../man/free.1:152 ../man/skill.1:71 ../man/w.1:75
+msgid "Display version information."
+msgstr "Versionsinformationen anzeigen."
+
+#. type: SH
+#: ../man/free.1:153 ../man/slabtop.1:87 ../man/sysctl.8:171
+#: ../man/sysctl.conf.5:64 ../man/tload.1:42 ../man/uptime.1:49 ../man/w.1:88
+#: ../man/procps_misc.3:136
+#, no-wrap
+msgid "FILES"
+msgstr "DATEIEN"
+
+#. type: TP
+#: ../man/free.1:154
+#, no-wrap
+msgid "/proc/meminfo"
+msgstr "/proc/meminfo"
+
+#. type: Plain text
+#: ../man/free.1:157
+msgid "memory information"
+msgstr "Speicherinformationen"
+
+#. type: SH
+#: ../man/free.1:158 ../man/pgrep.1:301 ../man/pidof.1:69 ../man/tload.1:50
+#: ../man/watch.1:152 ../man/ps.1:2063
+#, no-wrap
+msgid "BUGS"
+msgstr "FEHLER"
+
+#. type: Plain text
+#: ../man/free.1:161
+msgid "The value for the B<shared> column is not available from kernels before 2.6.32 and is displayed as zero."
+msgstr "Der Wert der Spalte B<gemns.> ist für Kernel vor 2.6.32 nicht verfügbar und wird als Null angezeigt."
+
+#. type: TP
+#: ../man/free.1:161
+#, no-wrap
+msgid "Please send bug reports to"
+msgstr "Bitte senden Sie Fehlermeldungen (auf Englisch) an"
+
+#. type: Plain text
+#: ../man/free.1:165
+msgid "E<.UR procps@freelists.org> E<.UE>"
+msgstr "E<.UR procps@freelists.org> E<.UE>"
+
+#. type: SH
+#: ../man/free.1:165 ../man/kill.1:88 ../man/pgrep.1:317 ../man/pidof.1:76
+#: ../man/pmap.1:90 ../man/pwdx.1:25 ../man/skill.1:109 ../man/slabtop.1:91
+#: ../man/sysctl.8:185 ../man/sysctl.conf.5:83 ../man/tload.1:45
+#: ../man/uptime.1:66 ../man/vmstat.8:191 ../man/w.1:95 ../man/ps.1:2070
+#: ../man/procps.3:182 ../man/procps_misc.3:153 ../man/procps_pids.3:207
+#, no-wrap
+msgid "SEE ALSO"
+msgstr "SIEHE AUCH"
+
+#. type: Plain text
+#: ../man/free.1:169
+msgid "B<ps>(1), B<slabtop>(1), B<top>(1), B<vmstat>(8)."
+msgstr "B<ps>(1), B<slabtop>(1), B<top>(1), B<vmstat>(8)."
+
+#. type: TH
+#: ../man/kill.1:12
+#, no-wrap
+msgid "KILL"
+msgstr "KILL"
+
+#. type: TH
+#: ../man/kill.1:12 ../man/pgrep.1:13 ../man/pidof.1:13
+#, no-wrap
+msgid "2023-01-16"
+msgstr "16. Januar 2023"
+
+#. type: Plain text
+#: ../man/kill.1:15
+msgid "kill - send a signal to a process"
+msgstr "kill - ein Signal an einen Prozess senden"
+
+#. type: Plain text
+#: ../man/kill.1:18
+msgid "B<kill> [options] E<lt>pidE<gt> [...]"
+msgstr "B<kill> [Optionen] E<lt>ProzesskennungE<gt> […]"
+
+#. type: Plain text
+#: ../man/kill.1:34
+msgid "The default signal for kill is TERM. Use B<-l> or B<-L> to list available signals. Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0. Alternate signals may be specified in three ways: B<-9>, B<-SIGKILL> or B<-KILL>. Negative PID values may be used to choose whole process groups; see the PGID column in ps command output. A PID of B<-1> is special; it indicates all processes except the kill process itself and init."
+msgstr "Das Standardsignal für B<kill> ist TERM. Mit B<-l> oder B<-L> können Sie die verfügbaren Signale auflisten. Im einzelnen sind HUP, INT, KILL, STOP, CONT und 0 nützliche Signale. Alternative Signale können auf drei Arten angegeben werden: B<-9>, B<-SIGKILL> oder B<-KILL>. Negative Werte für die Prozesskennung können verwendet werden, um ganze Prozessgruppen auszuwählen; siehe die Spalte PGID der Ausgabe des Befehls B<ps>. Eine Prozesskennung von B<-1> ist besonders. Sie bezeichnet alle Prozesse außer B<init> und den B<kill>-Prozess selbst."
+
+#. type: TP
+#: ../man/kill.1:35
+#, no-wrap
+msgid "B<E<lt>pidE<gt> [...]>"
+msgstr "B<E<lt>ProzesskennungE<gt> […]>"
+
+#. type: Plain text
+#: ../man/kill.1:38
+msgid "Send signal to every E<lt>pidE<gt> listed."
+msgstr "sendet das Signal an alle aufgelisteten E<lt>ProzesskennungenE<gt>."
+
+#. type: TP
+#: ../man/kill.1:38
+#, no-wrap
+msgid "B<-E<lt>signalE<gt>>"
+msgstr "B<-E<lt>SignalE<gt>>"
+
+#. type: TQ
+#: ../man/kill.1:40
+#, no-wrap
+msgid "B<-s E<lt>signalE<gt>>"
+msgstr "B<-s E<lt>SignalE<gt>>"
+
+#. type: TQ
+#: ../man/kill.1:42
+#, no-wrap
+msgid "B<--signal E<lt>signalE<gt>>"
+msgstr "B<--signal E<lt>SignalE<gt>>"
+
+#. type: Plain text
+#: ../man/kill.1:50
+msgid "Specify the B<signal> to be sent. The signal can be specified by using name or number. The behavior of signals is explained in B<signal>(7) manual page."
+msgstr "gibt das zu sendende B<Signal> an. Es kann als Name oder Nummer angegeben werden. Das Verhalten der Signale ist in der Handbuchseite zu B<signal>(7) beschrieben."
+
+#. type: TP
+#: ../man/kill.1:50 ../man/pgrep.1:216
+#, no-wrap
+msgid "B<-q>, B<--queue >I<value>"
+msgstr "B<-q>, B<--queue >I<Wert>"
+
+# FIXME Formatting
+#. type: Plain text
+#: ../man/kill.1:62 ../man/pgrep.1:228
+msgid "Use B<sigqueue>(3) rather than B<kill>(2) and the value argument is used to specify an integer to be sent with the signal. If the receiving process has installed a handler for this signal using the SA_SIGINFO flag to B<sigaction>(2), then it can obtain this data via the si_value field of the siginfo_t structure."
+msgstr "verwendet B<sigqueue>(3) anstatt B<kill>(2) und das I<Wert>-Argument wird zur Angabe einer Ganzzahl verwendet, die mit dem Signal gesendet wird. Falls der empfangende Prozess mit dem SA_SIGINFO-Flag für B<sigaction>(2) einen Handler für dieses Signal installiert hat, dann kann er diese Daten über das I<si_value>-Feld der Struktur I<siginfo_t> beziehen."
+
+#. type: TP
+#: ../man/kill.1:62
+#, no-wrap
+msgid "B<-l>, B<--list> [I<signal>]"
+msgstr "B<-l>, B<--list> [I<Signal>]"
+
+#. type: Plain text
+#: ../man/kill.1:66
+msgid "List signal names. This option has optional argument, which will convert signal number to signal name, or other way round."
+msgstr "listet Signalnamen auf. Diese Option kann ein Argument haben, welches die Signalnummer in einen Signalnamen umwandelt oder umgekehrt."
+
+#. type: TP
+#: ../man/kill.1:66 ../man/skill.1:52
+#, no-wrap
+msgid "B<-L>,B<\\ --table>"
+msgstr "B<-L>,B<\\ --table>"
+
+#. type: Plain text
+#: ../man/kill.1:69
+msgid "List signal names in a nice table."
+msgstr "listet Signalnamen in einer übersichtlichen Tabelle auf."
+
+#. type: SH
+#: ../man/kill.1:71 ../man/pgrep.1:284 ../man/slabtop.1:96
+#: ../man/sysctl.conf.5:39 ../man/vmstat.8:185 ../man/watch.1:144
+#: ../man/ps.1:768
+#, no-wrap
+msgid "NOTES"
+msgstr "ANMERKUNGEN"
+
+#. type: Plain text
+#: ../man/kill.1:75
+msgid "Your shell (command line interpreter) may have a built-in kill command. You may need to run the command described here as /bin/kill to solve the conflict."
+msgstr "In Ihrer Shell (dem Befehlszeileninterpreter) könnte bereits ein Kill-Befehl eingebaut sein. In diesem Fall müssen Sie den hier beschriebenen Befehl als /bin/kill aufrufen, um den Konflikt zu umgehen."
+
+#. type: SH
+#: ../man/kill.1:75 ../man/pgrep.1:240 ../man/skill.1:99 ../man/sysctl.8:143
+#: ../man/watch.1:191 ../man/ps.1:84
+#, no-wrap
+msgid "EXAMPLES"
+msgstr "BEISPIELE"
+
+#. type: TP
+#: ../man/kill.1:76
+#, no-wrap
+msgid "B<kill -9 -1>"
+msgstr "B<kill -9 -1>"
+
+#. type: Plain text
+#: ../man/kill.1:79
+msgid "Kill all processes you can kill."
+msgstr "killt alle Prozesse, die gekillt werden können."
+
+#. type: TP
+#: ../man/kill.1:79
+#, no-wrap
+msgid "B<kill -l 11>"
+msgstr "B<kill -l 11>"
+
+#. type: Plain text
+#: ../man/kill.1:82
+msgid "Translate number 11 into a signal name."
+msgstr "übersetzt die Zahl 11 in einen Signalnamen."
+
+#. type: TP
+#: ../man/kill.1:82
+#, no-wrap
+msgid "B<kill -L>"
+msgstr "B<kill -L>"
+
+#. type: Plain text
+#: ../man/kill.1:85
+msgid "List the available signal choices in a nice table."
+msgstr "listet die Auswahl der verfügbaren Signale in einer übersichtlichen Tabelle auf."
+
+#. type: TP
+#: ../man/kill.1:85
+#, no-wrap
+msgid "B<kill 123 543 2341 3453>"
+msgstr "B<kill 123 543 2341 3453>"
+
+#. type: Plain text
+#: ../man/kill.1:88
+msgid "Send the default signal, SIGTERM, to all those processes."
+msgstr "Sendet das Standardsignal SIGTERM an alle diese Prozesse."
+
+#. type: Plain text
+#: ../man/kill.1:97
+msgid "B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), B<renice>(1), B<signal>(7), B<sigqueue>(3), B<skill>(1)"
+msgstr "B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), B<renice>(1), B<signal>(7), B<sigqueue>(3), B<skill>(1)"
+
+#. type: SH
+#: ../man/kill.1:97 ../man/pmap.1:93 ../man/pwdx.1:28 ../man/skill.1:117
+#: ../man/ps.1:2076
+#, no-wrap
+msgid "STANDARDS"
+msgstr "STANDARDS"
+
+#. type: Plain text
+#: ../man/kill.1:101
+msgid "This command meets appropriate standards. The B<-L> flag is Linux-specific."
+msgstr "Dieser Befehl erfüllt die entsprechenden Standards. Der Schalter B<-L> ist Linux-spezifisch."
+
+#. type: SH
+#: ../man/kill.1:101 ../man/pgrep.1:327 ../man/pidof.1:79 ../man/pwdx.1:32
+#: ../man/skill.1:119 ../man/sysctl.8:189 ../man/sysctl.conf.5:85
+#: ../man/ps.1:2093
+#, no-wrap
+msgid "AUTHOR"
+msgstr "AUTOR"
+
+#. type: Plain text
+#: ../man/kill.1:107
+msgid "E<.UR albert@users.sf.net> Albert Cahalan E<.UE> wrote kill in 1999 to replace a bsdutils one that was not standards compliant. The util-linux one might also work correctly."
+msgstr "E<.MT albert@users.sf.net> Albert Cahalan E<.ME> schrieb B<kill> im Jahre 1999, um die Version aus den Bsdutils zu ersetzen, die nicht standardkonform war. Die Version aus Util-linux sollte ebenfalls korrekt funktionieren."
+
+#. type: SH
+#: ../man/kill.1:107 ../man/pgrep.1:331 ../man/pmap.1:97 ../man/pwdx.1:37
+#: ../man/skill.1:125 ../man/slabtop.1:120 ../man/sysctl.8:193
+#: ../man/sysctl.conf.5:89 ../man/tload.1:66 ../man/uptime.1:71
+#: ../man/vmstat.8:199 ../man/w.1:112 ../man/watch.1:229
+#, no-wrap
+msgid "REPORTING BUGS"
+msgstr "FEHLER MELDEN"
+
+#. type: Plain text
+#: ../man/kill.1:110 ../man/pgrep.1:334 ../man/pmap.1:100 ../man/pwdx.1:40
+#: ../man/skill.1:128 ../man/slabtop.1:123 ../man/sysctl.8:196
+#: ../man/sysctl.conf.5:92 ../man/tload.1:69 ../man/uptime.1:74
+#: ../man/vmstat.8:202 ../man/w.1:115 ../man/watch.1:232
+msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE>"
+msgstr "Bitte schicken Sie Fehlermeldungen (auf Englisch) an E<.MT procps@freelists.org> E<.ME>"
+
+#. type: TH
+#: ../man/pgrep.1:13
+#, no-wrap
+msgid "PGREP"
+msgstr "PGREP"
+
+#. type: Plain text
+#: ../man/pgrep.1:16
+msgid "pgrep, pkill, pidwait - look up, signal, or wait for processes based on name and other attributes"
+msgstr "pgrep, pkill, pidwait - Prozesse finden oder ein Signal auf Basis des Namens oder anderer Attribute senden oder auf Prozesse warten"
+
+#. type: Plain text
+#: ../man/pgrep.1:19
+msgid "B<pgrep> [options] pattern"
+msgstr "B<pgrep> [Optionen] Muster"
+
+#. type: Plain text
+#: ../man/pgrep.1:22
+msgid "B<pkill> [options] pattern"
+msgstr "B<pkill> [Optionen] Muster"
+
+#. type: Plain text
+#: ../man/pgrep.1:25
+msgid "B<pidwait> [options] pattern"
+msgstr "B<pidwait> [Optionen] Muster"
+
+#. type: Plain text
+#: ../man/pgrep.1:30
+msgid "B<pgrep> looks through the currently running processes and lists the process IDs which match the selection criteria to stdout. All the criteria have to match. For example,"
+msgstr "B<pgrep> durchsucht die gegenwärtig laufenden Prozesse und listet die Prozesskennungen (IDs), welche den Auswahlkriterien entsprechen, in der Standardausgabe auf. Übereinstimmungen sind für alle Auswahlkriterien erforderlich. Beispielsweise listet"
+
+#. type: Plain text
+#: ../man/pgrep.1:32
+msgid "$ pgrep -u root sshd"
+msgstr "$ pgrep -u root sshd"
+
+#. type: Plain text
+#: ../man/pgrep.1:38
+msgid "will only list the processes called B<sshd> AND owned by B<root>. On the other hand,"
+msgstr "nur die Prozesse auf, deren Name B<sshd> lautet UND B<root> gehören. Andererseits listet"
+
+#. type: Plain text
+#: ../man/pgrep.1:40
+msgid "$ pgrep -u root,daemon"
+msgstr "$ pgrep -u root,daemon"
+
+#. type: Plain text
+#: ../man/pgrep.1:45
+msgid "will list the processes owned by B<root> OR B<daemon>."
+msgstr "jene Prozesse auf, die entweder B<root> ODER B<daemon> gehören."
+
+#. type: Plain text
+#: ../man/pgrep.1:50
+msgid "B<pkill> will send the specified signal (by default B<SIGTERM>) to each process instead of listing them on stdout."
+msgstr "B<pkill> sendet das angegebene Signal (per Vorgabe B<SIGTERM>) an jeden Prozess, anstatt diese in der Standardausgabe aufzulisten."
+
+#. type: Plain text
+#: ../man/pgrep.1:53
+msgid "B<pidwait> will wait for each process instead of listing them on stdout."
+msgstr "B<pidwait> wartet auf jeden Prozess, anstatt diesen in der Standardausgabe aufzulisten."
+
+#. type: TP
+#: ../man/pgrep.1:54
+#, no-wrap
+msgid "B<->I<signal>"
+msgstr "B<->I<Signal>"
+
+#. type: TQ
+#: ../man/pgrep.1:56
+#, no-wrap
+msgid "B<--signal> I<signal>"
+msgstr "B<--signal> I<Signal>"
+
+#. type: Plain text
+#: ../man/pgrep.1:66
+msgid "Defines the signal to send to each matched process. Either the numeric or the symbolic signal name can be used. In B<pgrep> or B<pidwait> mode only the long option can be used and has no effect unless used in conjunction with B<--require-handler> to filter to processes with a userspace signal handler present for a particular signal."
+msgstr "definiert das Signal, das an jeden der passenden Prozesse gesendet werden soll. Dafür kann entweder der numerische oder ein symbolischer Signalname verwendet werden. Nur im B<pgrep>- oder B<pidwait>-Modus kann die lange Option verwendet werden. Sie ist allerdings dann wirkungslos, wenn sie nicht zusammen mit B<--require-handler> verwendet wird, um nur Prozesse anzuzeigen, für die bei einem bestimmten Signal ein Userspace-Signalhandler vorhanden ist."
+
+#. type: TP
+#: ../man/pgrep.1:67
+#, no-wrap
+msgid "B<-c>, B<--count>"
+msgstr "B<-c>, B<--count>"
+
+#. type: Plain text
+#: ../man/pgrep.1:74
+msgid "Suppress normal output; instead print a count of matching processes. When count does not match anything, e.g. returns zero, the command will return non-zero value. Note that for pkill and pidwait, the count is the number of matching processes, not the processes that were successfully signaled or waited for."
+msgstr "unterdrückt normale Ausgaben und gibt stattdessen die Anzahl der passenden Prozesse aus. Wenn keine Übereinstimmungen gefunden werden, liefert der Befehl einen von 0 verschiedenen Rückgabewert. Beachten Sie, dass für B<pkill> und B<pidwait> die Anzahl der Anzahl der passenden Prozesse entspricht und nicht der Anzahl der Prozesse, an die erfolgreich ein Signal gesendet oder auf die gewartet wurde."
+
+#. type: TP
+#: ../man/pgrep.1:74
+#, no-wrap
+msgid "B<-d>, B<--delimiter> I<delimiter>"
+msgstr "B<-d>, B<--delimiter> I<Trenner>"
+
+#. type: Plain text
+#: ../man/pgrep.1:80
+msgid "Sets the string used to delimit each process ID in the output (by default a newline). (B<pgrep> only.)"
+msgstr "legt die in der Ausgabe als Trenner für die Prozesskennungen zu verwendende Zeichenkette fest. Vorgabe ist ein Zeilenumbruch (gilt nur für B<pgrep>)."
+
+#. type: TP
+#: ../man/pgrep.1:80
+#, no-wrap
+msgid "B<-e>, B<--echo>"
+msgstr "B<-e>, B<--echo>"
+
+#. type: Plain text
+#: ../man/pgrep.1:85
+msgid "Display name and PID of the process being killed. (B<pkill> only.)"
+msgstr "zeigt Name und Prozesskennung des zu killenden Prozesses an (nur für B<pkill>)."
+
+#. type: TP
+#: ../man/pgrep.1:85
+#, no-wrap
+msgid "B<-f>, B<--full>"
+msgstr "B<-f>, B<--full>"
+
+#. type: Plain text
+#: ../man/pgrep.1:92
+msgid "The I<pattern> is normally only matched against the process name. When B<-f> is set, the full command line is used."
+msgstr "Das I<Muster> wird normalerweise nur auf den Prozessnamen angewendet. Wenn B<-f> gesetzt ist, wird die vollständige Befehlszeile verwendet."
+
+#. type: TP
+#: ../man/pgrep.1:92
+#, no-wrap
+msgid "B<-g>, B<--pgroup> I<pgrp>,..."
+msgstr "B<-g>, B<--pgroup> I<Prozessgruppe>, …"
+
+#. type: Plain text
+#: ../man/pgrep.1:101
+msgid "Only match processes in the process group IDs listed. Process group 0 is translated into B<pgrep>'s, B<pkill>'s, or B<pidwait>'s own process group."
+msgstr "sucht nur nach passenden Prozessen, die in den Prozessgruppenkennungen aufgelistet sind. Die Prozessgruppe 0 wird in die eigene Prozessgruppe von B<pgrep>, B<pkill> oder B<pidwait> übersetzt."
+
+#. type: TP
+#: ../man/pgrep.1:101
+#, no-wrap
+msgid "B<-G>, B<--group> I<gid>,..."
+msgstr "B<-G>, B<--group> I<Gruppenkennung>, …"
+
+#. type: Plain text
+#: ../man/pgrep.1:105
+msgid "Only match processes whose real group ID is listed. Either the numerical or symbolical value may be used."
+msgstr "berücksichtigt nur Prozesse, deren reale Gruppenkennung aufgelistet ist. Hier kann entweder der numerische oder der symbolische Wert verwendet werden."
+
+#. type: TP
+#: ../man/pgrep.1:105
+#, no-wrap
+msgid "B<-i>, B<--ignore-case>"
+msgstr "B<-i>, B<--ignore-case>"
+
+#. type: Plain text
+#: ../man/pgrep.1:108
+msgid "Match processes case-insensitively."
+msgstr "ignoriert Groß-/Kleinschreibung bei der Suche. "
+
+#. type: TP
+#: ../man/pgrep.1:108
+#, no-wrap
+msgid "B<-l>, B<--list-name>"
+msgstr "B<-l>, B<--list-name>"
+
+#. type: Plain text
+#: ../man/pgrep.1:113
+msgid "List the process name as well as the process ID. (B<pgrep> only.)"
+msgstr "listet sowohl den Prozessnamen als auch die Prozesskennung auf (nur für B<pgrep>)."
+
+#. type: TP
+#: ../man/pgrep.1:113
+#, no-wrap
+msgid "B<-a>, B<--list-full>"
+msgstr "B<-a>, B<--list-full>"
+
+#. type: Plain text
+#: ../man/pgrep.1:118
+msgid "List the full command line as well as the process ID. (B<pgrep> only.)"
+msgstr "listet sowohl die vollständige Befehlszeile als auch die Prozesskennung auf (nur für B<pgrep>)."
+
+#. type: TP
+#: ../man/pgrep.1:118
+#, no-wrap
+msgid "B<-n>, B<--newest>"
+msgstr "B<-n>, B<--newest>"
+
+#. type: Plain text
+#: ../man/pgrep.1:121
+msgid "Select only the newest (most recently started) of the matching processes."
+msgstr "wählt nur den neuesten (zuletzt gestarteten) aus den passenden Prozessen aus."
+
+#. type: TP
+#: ../man/pgrep.1:121
+#, no-wrap
+msgid "B<-o>, B<--oldest>"
+msgstr "B<-o>, B<--oldest>"
+
+#. type: Plain text
+#: ../man/pgrep.1:124
+msgid "Select only the oldest (least recently started) of the matching processes."
+msgstr "wählt nur den ältesten (zuerst gestarteten) aus den passenden Prozessen aus."
+
+#. type: TP
+#: ../man/pgrep.1:124
+#, no-wrap
+msgid "B<-O>, B<--older> I<secs>"
+msgstr "B<-O>, B<--older> I<Sekunden>"
+
+#. type: Plain text
+#: ../man/pgrep.1:127
+msgid "Select processes older than secs."
+msgstr "wählt Prozesse aus, die älter als die angegebene Anzahl Sekunden sind."
+
+#. type: TP
+#: ../man/pgrep.1:127
+#, no-wrap
+msgid "B<-P>, B<--parent> I<ppid>,..."
+msgstr "B<-P>, B<--parent> I<Eltern-Prozesskennung>, …"
+
+#. type: Plain text
+#: ../man/pgrep.1:130
+msgid "Only match processes whose parent process ID is listed."
+msgstr "sucht nur nach Prozessen, von denen die Kennung des übergeordneten Prozesses aufgelistet ist."
+
+#. type: TP
+#: ../man/pgrep.1:130
+#, no-wrap
+msgid "B<-s>, B<--session> I<sid>,..."
+msgstr "B<-s>, B<--session> I<Sitzungskennung>, …"
+
+#. type: Plain text
+#: ../man/pgrep.1:139
+msgid "Only match processes whose process session ID is listed. Session ID 0 is translated into B<pgrep>'s, B<pkill>'s, or B<pidwait>'s own session ID."
+msgstr "sucht nur nach passenden Prozessen, die in den Prozess-Sitzungskennungen aufgelistet ist. Die Sitzungskennung 0 wird in die eigene Prozessgruppe von B<pgrep>, B<pkill> oder B<pidwait> übersetzt."
+
+#. type: TP
+#: ../man/pgrep.1:139
+#, no-wrap
+msgid "B<-t>, B<--terminal> I<term>,..."
+msgstr "B<-t>, B<--terminal> I<Terminal>, …"
+
+#. type: Plain text
+#: ../man/pgrep.1:143
+msgid "Only match processes whose controlling terminal is listed. The terminal name should be specified without the \"/dev/\" prefix."
+msgstr "sucht nur nach passenden Prozessen, deren steuerndes Terminal aufgelistet ist. Der Terminalname sollte ohne das Präfix »dev« angegeben werden."
+
+#. type: TP
+#: ../man/pgrep.1:143
+#, no-wrap
+msgid "B<-u>, B<--euid> I<euid>,..."
+msgstr "B<-u>, B<--euid> I<effektive_Benutzerkennung>, …"
+
+#. type: Plain text
+#: ../man/pgrep.1:147
+msgid "Only match processes whose effective user ID is listed. Either the numerical or symbolical value may be used."
+msgstr "sucht nur nach passenden Prozessen, deren effektive Benutzerkennung aufgelistet ist. Sie können entweder numerische oder symbolische Werte verwenden."
+
+#. type: TP
+#: ../man/pgrep.1:147
+#, no-wrap
+msgid "B<-U>, B<--uid> I<uid>,..."
+msgstr "B<-U>, B<--uid> I<Benutzerkennung>, …"
+
+#. type: Plain text
+#: ../man/pgrep.1:151
+msgid "Only match processes whose real user ID is listed. Either the numerical or symbolical value may be used."
+msgstr "sucht nur nach passenden Prozessen, deren reale Benutzerkennung aufgelistet ist. Sie können entweder numerische oder symbolische Werte verwenden."
+
+#. type: TP
+#: ../man/pgrep.1:151
+#, no-wrap
+msgid "B<-v>, B<--inverse>"
+msgstr "B<-v>, B<--inverse>"
+
+#. type: Plain text
+#: ../man/pgrep.1:160
+msgid "Negates the matching. This option is usually used in B<pgrep>'s or B<pidwait>'s context. In B<pkill>'s context the short option is disabled to avoid accidental usage of the option."
+msgstr "negiert die Anwendung der Suchkriterien. Diese Option wird üblicherweise mit B<pgrep> oder B<pidwait> verwendet. In B<pkill> ist die Kurzoption deaktiviert, um die zufällige Anwendung dieser Option zu vermeiden."
+
+#. type: TP
+#: ../man/pgrep.1:160
+#, no-wrap
+msgid "B<-w>, B<--lightweight>"
+msgstr "B<-w>, B<--lightweight>"
+
+#. type: Plain text
+#: ../man/pgrep.1:169
+msgid "Shows all thread ids instead of pids in B<pgrep>'s or B<pidwait>'s context. In B<pkill>'s context this option is disabled."
+msgstr "zeigt bei B<pgrep> oder B<pidwait> alle Thread-Kennungen anstelle der Prozess-Kennungen an. In B<pkill> ist diese Option deaktiviert."
+
+#. type: TP
+#: ../man/pgrep.1:169
+#, no-wrap
+msgid "B<-x>, B<--exact>"
+msgstr "B<-x>, B<--exact>"
+
+# FIXME argument formatting
+# FIXME line → lines
+#. type: Plain text
+#: ../man/pgrep.1:175
+msgid "Only match processes whose names (or command lines if B<-f> is specified) B<exactly> match the I<pattern>."
+msgstr "sucht nur nach passenden Prozessen, deren Namen (oder Befehlszeilen, falls B<-f> angegeben ist) B<exakt> dem I<Muster> entsprechen."
+
+#. type: TP
+#: ../man/pgrep.1:175
+#, no-wrap
+msgid "B<-F>, B<--pidfile> I<file>"
+msgstr "B<-F>, B<--pidfile> I<Datei>"
+
+# FIXME I<PID>'s → I<PID>s
+#. type: Plain text
+#: ../man/pgrep.1:183
+msgid "Read I<PID>s from I<file>. This option is more useful for B<pkill> or B<pidwait> than B<pgrep>."
+msgstr "liest die I<Prozesskennungen> aus einer I<Datei>. Diese Option ist eher für B<pkill> oder B<pidwait> als für B<pgrep> sinnvoll."
+
+#. type: TP
+#: ../man/pgrep.1:183
+#, no-wrap
+msgid "B<-L>, B<--logpidfile>"
+msgstr "B<-L>, B<--logpidfile>"
+
+# FIXME argument formatting
+#. type: Plain text
+#: ../man/pgrep.1:186
+msgid "Fail if pidfile (see B<-F>) not locked."
+msgstr "schlägt fehl, wenn die PID-Datei (siehe B<-F>) nicht gesperrt ist."
+
+#. type: TP
+#: ../man/pgrep.1:186
+#, no-wrap
+msgid "B<-r>, B<--runstates> I<D,R,S,Z,>..."
+msgstr "B<-r>, B<--runstates> I<D,R,S,Z,> …"
+
+#. type: Plain text
+#: ../man/pgrep.1:189
+msgid "Match only processes which match the process state."
+msgstr "sucht nur nach Prozessen, die diesem Prozessstatus entsprechen."
+
+#. type: TP
+#: ../man/pgrep.1:189
+#, no-wrap
+msgid "B<-A>, B<--ignore-ancestors>"
+msgstr "B<-A>, B<--ignore-ancestors>"
+
+#. type: Plain text
+#: ../man/pgrep.1:199
+msgid "Ignore all ancestors of B<pgrep>, B<pkill>, or B<pidwait>. For example, this can be useful when elevating with B<sudo> or similar tools."
+msgstr "ignoriert alle Vorgänger von B<pgrep>, B<pkill> oder B<pidwait>. Dies kann beispielsweise in Verbindung mit B<sudo> oder ähnlichen Werkzeugen nützlich sein."
+
+#. type: TP
+#: ../man/pgrep.1:199
+#, no-wrap
+msgid "B<-H>, B<--require-handler>"
+msgstr "B<-H>, B<--require-handler>"
+
+#. type: Plain text
+#: ../man/pgrep.1:203
+msgid "Only match processes with a userspace signal handler present for the signal to be sent."
+msgstr "sucht nur nach Prozessen, für die für das zu sendende Signal ein Userspace-Signalhandler vorhanden ist."
+
+#. type: TP
+#: ../man/pgrep.1:203
+#, no-wrap
+msgid "B<--cgroup >I<name>B<,...>"
+msgstr "B<--cgroup >I<Name>B<,…>"
+
+#. type: Plain text
+#: ../man/pgrep.1:207
+msgid "Match on provided control group (cgroup) v2 name. See B<cgroups>(8)"
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:207 ../man/skill.1:87
+#, no-wrap
+msgid "B<--ns >I<pid>"
+msgstr "B<--ns >I<Prozesskennung>"
+
+# FIXME argument formatting
+#. type: Plain text
+#: ../man/pgrep.1:212
+msgid "Match processes that belong to the same namespaces. Required to run as root to match processes from other users. See B<--nslist> for how to limit which namespaces to match."
+msgstr "sucht nach passenden Prozessen, die zu den gleichen Namensräumen gehören. Um Prozesse anderer Benutzer zu finden, sind Root-Rechte erforderlich. In B<--nslist> finden Sie Informationen, wie Sie die Übereinstimmungen im Zusammenhang mit Namensräumen begrenzen können."
+
+#. type: TP
+#: ../man/pgrep.1:212
+#, no-wrap
+msgid "B<--nslist >I<name>B<,...>"
+msgstr "B<--nslist >I<Name>B<, …>"
+
+#. type: Plain text
+#: ../man/pgrep.1:216
+msgid "Match only the provided namespaces. Available namespaces: ipc, mnt, net, pid, user, uts."
+msgstr "sucht nur in den angegebenen Namensräumen nach Übereinstimmungen. Verfügbare Namensräume: ipc, mnt, net, pid, user, uts."
+
+#. type: Plain text
+#: ../man/pgrep.1:231 ../man/pmap.1:75 ../man/slabtop.1:48 ../man/sysctl.8:119
+#: ../man/tload.1:41 ../man/vmstat.8:100 ../man/watch.1:100
+msgid "Display version information and exit."
+msgstr "zeigt Versionsinformationen an und beendet das Programm."
+
+#. type: TP
+#: ../man/pgrep.1:231 ../man/pmap.1:69 ../man/pwdx.1:22 ../man/skill.1:65
+#: ../man/slabtop.1:48 ../man/sysctl.8:113 ../man/tload.1:35
+#: ../man/uptime.1:40 ../man/vmstat.8:100 ../man/watch.1:94
+#, no-wrap
+msgid "B<-h>, B<--help>"
+msgstr "B<-h>, B<--help>"
+
+#. type: Plain text
+#: ../man/pgrep.1:234 ../man/vmstat.8:103
+msgid "Display help and exit."
+msgstr "zeigt eine Hilfe an und beendet das Programm."
+
+#. type: SH
+#: ../man/pgrep.1:235
+#, no-wrap
+msgid "OPERANDS"
+msgstr "OPERANDEN"
+
+#. type: TP
+#: ../man/pgrep.1:236
+#, no-wrap
+msgid "I<pattern>"
+msgstr "I<Muster>"
+
+#. type: Plain text
+#: ../man/pgrep.1:240
+msgid "Specifies an Extended Regular Expression for matching against the process names or command lines."
+msgstr "gibt einen erweiterten regulären Ausdruck für die Übereinstimmungen von Prozessnamen oder Befehlszeilen an."
+
+#. type: Plain text
+#: ../man/pgrep.1:244
+msgid "Example 1: Find the process ID of the B<named> daemon:"
+msgstr "Beispiel 1: Prozesskennung des B<named>-Daemons suchen:"
+
+#. type: Plain text
+#: ../man/pgrep.1:246
+msgid "$ pgrep -u root named"
+msgstr "$ pgrep -u root named"
+
+#. type: Plain text
+#: ../man/pgrep.1:250
+msgid "Example 2: Make B<syslog> reread its configuration file:"
+msgstr "Beispiel 2: B<syslog> veranlassen, seine Konfigurationsdatei neu einzulesen:"
+
+#. type: Plain text
+#: ../man/pgrep.1:252
+msgid "$ pkill -HUP syslogd"
+msgstr "$ pkill -HUP syslogd"
+
+#. type: Plain text
+#: ../man/pgrep.1:256
+msgid "Example 3: Give detailed information on all B<xterm> processes:"
+msgstr "Beispiel 3: Detaillierte Informationen zu allen B<xterm>-Prozessen ausgeben:"
+
+#. type: Plain text
+#: ../man/pgrep.1:258
+msgid "$ ps -fp $(pgrep -d, -x xterm)"
+msgstr "$ ps -fp $(pgrep -d, -x xterm)"
+
+#. type: Plain text
+#: ../man/pgrep.1:262
+msgid "Example 4: Make all B<chrome> processes run nicer:"
+msgstr "Beispiel 4: Den Nice-Wert für alle B<chrome>-Prozesse erhöhen:"
+
+#. type: Plain text
+#: ../man/pgrep.1:264
+msgid "$ renice +4 $(pgrep chrome)"
+msgstr "$ renice +4 $(pgrep chrome)"
+
+#. type: SH
+#: ../man/pgrep.1:264 ../man/pidof.1:61 ../man/pmap.1:75 ../man/watch.1:100
+#, no-wrap
+msgid "EXIT STATUS"
+msgstr "EXIT-STATUS"
+
+#. type: TP
+#: ../man/pgrep.1:266
+#, no-wrap
+msgid "0"
+msgstr "0"
+
+#. type: Plain text
+#: ../man/pgrep.1:274
+msgid "One or more processes matched the criteria. For B<pkill> and B<pidwait>, one or more processes must also have been successfully signalled or waited for."
+msgstr "Einer oder mehrere Prozesse entsprechen dem Kriterium. Für B<pkill> und B<pidwait> muss auch ein Signal erfolgreich an einen oder mehrere Prozesse gesendet oder auf sie gewartet worden sein."
+
+#. type: IP
+#: ../man/pgrep.1:274 ../man/ps.1:43 ../man/ps.1:818 ../man/ps.1:2082
+#, no-wrap
+msgid "1"
+msgstr "1"
+
+#. type: Plain text
+#: ../man/pgrep.1:277
+msgid "No processes matched or none of them could be signalled."
+msgstr "Es wurden keine passenden Prozesse gefunden oder an keine von ihnen konnte ein Signal gesendet werden."
+
+#. type: IP
+#: ../man/pgrep.1:277 ../man/ps.1:45 ../man/ps.1:2084
+#, no-wrap
+msgid "2"
+msgstr "2"
+
+#. type: Plain text
+#: ../man/pgrep.1:280
+msgid "Syntax error in the command line."
+msgstr "Syntaxfehler in der Befehlszeile."
+
+#. type: IP
+#: ../man/pgrep.1:280 ../man/ps.1:47 ../man/ps.1:2086
+#, no-wrap
+msgid "3"
+msgstr "3"
+
+#. type: Plain text
+#: ../man/pgrep.1:283
+msgid "Fatal error: out of memory etc."
+msgstr "Schwerwiegender Fehler: Speicher ausgeschöpft usw."
+
+# FIXME argument formatting
+#. type: Plain text
+#: ../man/pgrep.1:289
+msgid "The process name used for matching is limited to the 15 characters present in the output of /proc/I<pid>/stat. Use the B<-f> option to match against the complete command line, /proc/I<pid>/cmdline. Threads may not have the same process name as the parent process but will have the same command line."
+msgstr "Der für die Suche verwendete Prozessname ist auf die 15 Zeichen in der Ausgabe von /proc/I<Prozesskennung>/stat beschränkt. Verwenden Sie die Option B<-f>, um stattdessen Übereinstimmungen in der gesamten Befehlszeile (/proc/I<Prozesskennung>/cmdline) zu suchen. Threads könnten nicht den gleichen Prozessnamen wie der Elternprozess haben, wohl aber die gleiche Befehlszeile."
+
+#. type: Plain text
+#: ../man/pgrep.1:297
+msgid "The running B<pgrep>, B<pkill>, or B<pidwait> process will never report itself as a match."
+msgstr "Die laufenden B<pgrep>-, B<pkill>- oder B<pidwait>-Prozesse werden niemals selbst als Treffer gemeldet."
+
+#. type: Plain text
+#: ../man/pgrep.1:301
+msgid "The B<-O --older> option will silently fail if I</proc> is mounted with the I<subset=pid> option."
+msgstr "Die Option B<-O --older> wird stillschweigend fehlschlagen, falls I</proc> mit der Option I<subset=pid> eingehängt ist."
+
+#. type: Plain text
+#: ../man/pgrep.1:310
+msgid "The options B<-n> and B<-o> and B<-v> can not be combined. Let me know if you need to do this."
+msgstr "Die Optionen B<-n>, B<-o> und B<-v> können nicht kombiniert werden. Bitte informieren Sie die Entwickler, falls das für Ihre Zwecke nötig sein sollte."
+
+#. type: Plain text
+#: ../man/pgrep.1:312
+msgid "Defunct processes are reported."
+msgstr "Bereits beendete Prozesse werden gemeldet."
+
+#. type: Plain text
+#: ../man/pgrep.1:317
+msgid "B<pidwait> requires the B<pidfd_open>(2) system call which first appeared in Linux 5.3."
+msgstr "B<pidwait> erfordert den Systemaufruf B<pidfd_open>(2), der zuerst in Linux 5.3 erschien."
+
+#. type: Plain text
+#: ../man/pgrep.1:327
+msgid "B<ps>(1), B<regex>(7), B<signal>(7), B<sigqueue>(3), B<killall>(1), B<skill>(1), B<kill>(1), B<kill>(2), B<cgroups>(8)."
+msgstr "B<ps>(1), B<regex>(7), B<signal>(7), B<sigqueue>(3), B<killall>(1), B<skill>(1), B<kill>(1), B<kill>(2), B<cgroups>(8)"
+
+#. type: Plain text
+#: ../man/pgrep.1:331
+msgid "E<.UR kjetilho@ifi.uio.no> Kjetil Torgrim Homme E<.UE>"
+msgstr "E<.UR kjetilho@ifi.uio.no> Kjetil Torgrim Homme E<.UE>"
+
+#. type: TH
+#: ../man/pidof.1:13
+#, no-wrap
+msgid "PIDOF"
+msgstr "PIDOF"
+
+# FIXME Satzpunkt
+#. type: Plain text
+#: ../man/pidof.1:16
+msgid "pidof - find the process ID of a running program"
+msgstr "pidof - die Prozesskennung eines laufenden Programms ermitteln"
+
+# FIXME .. → …
+#. type: Plain text
+#: ../man/pidof.1:30
+msgid "B<pidof> [B<-s>] [B<-c>] [B<-q>] [B<-w>] [B<-x>] [B<-o> I<omitpid[,omitpid...]...>] [B<-t>] [B<-S> I<separator>] I<program> I<[>B<program...>I<]>"
+msgstr "B<pidof> [B<-s>] [B<-c>] [B<-q>] [B<-w>] [B<-x>] [B<-o> I<überspringen[,überspringen …] …>] [B<-t>] [B<-S> I<Trenner>] I<Programm> I<[>B<Programm …>I<]>"
+
+#. type: Plain text
+#: ../man/pidof.1:34
+msgid "B<Pidof> finds the process id's (pids) of the named programs. It prints those id's on the standard output."
+msgstr "B<Pidof> findet die Prozesskennungen (PIDs) der benannten Programme. Es schreibt diese Kennungen in die Standardausgabe."
+
+#. type: IP
+#: ../man/pidof.1:35
+#, no-wrap
+msgid "B<-s>"
+msgstr "B<-s>"
+
+#. type: Plain text
+#: ../man/pidof.1:37
+msgid "Single shot - this instructs the program to only return one I<pid>."
+msgstr "weist das Programm an, nur eine I<PID> auszugeben."
+
+#. type: TP
+#: ../man/pidof.1:37 ../man/ps.1:409
+#, no-wrap
+msgid "B<-c>"
+msgstr "B<-c>"
+
+#. type: Plain text
+#: ../man/pidof.1:41
+msgid "Only return process ids that are running with the same root directory. This option is ignored for non-root users, as they will be unable to check the current root directory of processes they do not own."
+msgstr "gibt nur Kennungen von Prozessen zurück, die im gleichen Wurzelverzeichnis laufen. Diese Option wird für gewöhnliche Benutzer (ohne Administratorrechte) ignoriert, da diese das aktuelle Wurzelverzeichnis nicht nach Prozessen durchsuchen können, deren Eigentümer sie nicht sind."
+
+#. type: IP
+#: ../man/pidof.1:41
+#, no-wrap
+msgid "B<-q>"
+msgstr "B<-q>"
+
+#. type: Plain text
+#: ../man/pidof.1:43
+msgid "Quiet mode, suppress any output and only sets the exit status accordingly."
+msgstr "aktiviert den stillen Modus, unterdrückt sämtliche Ausgaben und setzt den Exit-Status entsprechend."
+
+#. type: TP
+#: ../man/pidof.1:43 ../man/ps.1:718
+#, no-wrap
+msgid "B<-w>"
+msgstr "B<-w>"
+
+#. type: Plain text
+#: ../man/pidof.1:46
+msgid "Show also processes that do not have visible command line (e.g. kernel worker threads)."
+msgstr "zeigt auch Prozesse an, die keine sichtbare Befehlszeile haben (zum Beispiel Kernel-Arbeits-Threads)."
+
+#. type: TP
+#: ../man/pidof.1:46 ../man/sysctl.8:110
+#, no-wrap
+msgid "B<-x>"
+msgstr "B<-x>"
+
+#. type: Plain text
+#: ../man/pidof.1:49
+msgid "Scripts too - this causes the program to also return process id's of shells running the named scripts."
+msgstr "berücksichtigt auch Skripte. Das Programm gibt auch Prozesskennungen der Shells zurück, die die benannten Skripte ausführen."
+
+#. type: IP
+#: ../man/pidof.1:49
+#, no-wrap
+msgid "B<-o> I<omitpid>"
+msgstr "B<-o> I<überspringen>"
+
+#. type: Plain text
+#: ../man/pidof.1:53
+msgid "Tells B<pidof> to omit processes with that process id. The special pid B<%PPID> can be used to name the parent process of the B<pidof> program, in other words the calling shell or shell script."
+msgstr "weist B<pidof> an, Prozesse mit der angegebenen PID zu überspringen. Die spezielle PID B<%PPID> kann verwendet werden, um den Elternprozess des B<pidof>-Programms zu bezeichnen, also die aufrufende Shell oder das Shell-Skript."
+
+#. type: IP
+#: ../man/pidof.1:53
+#, no-wrap
+msgid "B<-t>"
+msgstr "B<-t>"
+
+#. type: Plain text
+#: ../man/pidof.1:55
+msgid "Shows all thread ids instead of pids."
+msgstr "zeigt alle Thread-IDs anstelle von PIDs an."
+
+#. type: IP
+#: ../man/pidof.1:55
+#, no-wrap
+msgid "B<-S> I<separator>"
+msgstr "B<-S> I<Trenner>"
+
+#. type: Plain text
+#: ../man/pidof.1:61
+msgid "Use I<separator> as a separator put between pids. Used only when more than one pids are printed for the program. The B<-d> option is an alias for this option for sysvinit B<pidof> compatibility."
+msgstr "verwendet den angegebenen I<Trenner> zwischen PIDs. Dieser wird nur verwendet, wenn für das Programm mehrere PIDs ausgegeben werden. Die Option I<-d> ist ein Alias für diese Option, der aus Gründen der Kompatibilität zu B<pidof> aus Sysvinit zur Verfügung steht."
+
+#. type: TP
+#: ../man/pidof.1:62 ../man/pmap.1:79 ../man/watch.1:104
+#, no-wrap
+msgid "B<0>"
+msgstr "B<0>"
+
+#. type: Plain text
+#: ../man/pidof.1:65
+msgid "At least one program was found with the requested name."
+msgstr "Es wurde mindestens ein Programm mit dem angegebenen Namen gefunden."
+
+#. type: TP
+#: ../man/pidof.1:65 ../man/pmap.1:82 ../man/watch.1:107
+#, no-wrap
+msgid "B<1>"
+msgstr "B<1>"
+
+#. type: Plain text
+#: ../man/pidof.1:68
+msgid "No program was found with the requested name."
+msgstr "Es wurde kein Programm mit dem angegebenen Namen gefunden."
+
+#. type: Plain text
+#: ../man/pidof.1:75
+msgid "When using the B<-x> option, B<pidof> only has a simple method for detecting scripts and will miss scripts that, for example, use env. This limitation is due to how the scripts look in the proc filesystem."
+msgstr "Wenn Sie die Option B<-x> verwenden, verfügt B<pidof> nur eine einfache Methode zum Erkennen von Skripten und wird beispielsweise Skripte nicht erkennen, die B<env> verwenden. Diese Einschränkung ist darauf zurückzuführen, wie die Skripte im proc-Dateisystem aussehen."
+
+#. type: Plain text
+#: ../man/pidof.1:79
+msgid "B<pgrep>(1), B<pkill>(1)"
+msgstr "B<pgrep>(1), B<pkill>(1)"
+
+#. type: Plain text
+#: ../man/pidof.1:82
+msgid "E<.UR jcapik@redhat.com> Jaromir Capik E<.UE>"
+msgstr "E<.UR jcapik@redhat.com> Jaromir Capik E<.UE>"
+
+#. type: TH
+#: ../man/pmap.1:19
+#, no-wrap
+msgid "PMAP"
+msgstr "PMAP"
+
+#. type: TH
+#: ../man/pmap.1:19 ../man/pwdx.1:12 ../man/tload.1:12
+#, no-wrap
+msgid "2020-06-04"
+msgstr "4. April 2020"
+
+#. type: Plain text
+#: ../man/pmap.1:22
+msgid "pmap - report memory map of a process"
+msgstr "pmap - die Speicherzuordnung eines Prozesses melden"
+
+#. type: Plain text
+#: ../man/pmap.1:25
+msgid "B<pmap> [I<options>] I<pid> [...]"
+msgstr "B<pmap> [I<Optionen>] I<Prozesskennung> […]"
+
+# FIXME command name formatting
+#. type: Plain text
+#: ../man/pmap.1:29
+msgid "The B<pmap> command reports the memory map of a process or processes."
+msgstr "Der Befehl B<pmap> meldet die Speicherzuordnung eines oder mehrerer Prozesse."
+
+#. type: TP
+#: ../man/pmap.1:30
+#, no-wrap
+msgid "B<-x>, B<--extended>"
+msgstr "B<-x>, B<--extended>"
+
+#. type: Plain text
+#: ../man/pmap.1:33
+msgid "Show the extended format."
+msgstr "zeigt im erweiterten Format an."
+
+#. type: TP
+#: ../man/pmap.1:33
+#, no-wrap
+msgid "B<-d>, B<--device>"
+msgstr "B<-d>, B<--device>"
+
+#. type: Plain text
+#: ../man/pmap.1:36
+msgid "Show the device format."
+msgstr "zeigt im Geräteformat an."
+
+#. type: TP
+#: ../man/pmap.1:36 ../man/sysctl.8:57
+#, no-wrap
+msgid "B<-q>, B<--quiet>"
+msgstr "B<-q>, B<--quiet>"
+
+#. type: Plain text
+#: ../man/pmap.1:39
+msgid "Do not display some header or footer lines."
+msgstr "zeigt nicht alle Kopf- oder Fußzeilen an."
+
+#. type: TP
+#: ../man/pmap.1:39
+#, no-wrap
+msgid "B<-A>, B<--range> I<low>,I<high>"
+msgstr "B<-A>, B<--range> I<Untergrenze>,I<Obergrenze>"
+
+#. type: Plain text
+#: ../man/pmap.1:47
+msgid "Limit results to the given range to I<low> and I<high> address range. Notice that the low and high arguments are single string separated with comma."
+msgstr "begrenzt die Ergebnisse auf den angegebenen Adressbereich zwischen I<Untergrenze> und I<Obergrenze>. Beachten Sie, dass die Argumente für Unter- und Obergrenze eine einzige, durch ein Komma getrennte Zeichenkette sind."
+
+#. type: TP
+#: ../man/pmap.1:47 ../man/sysctl.8:104
+#, no-wrap
+msgid "B<-X>"
+msgstr "B<-X>"
+
+#. type: Plain text
+#: ../man/pmap.1:51
+msgid "Show even more details than the B<-x> option. WARNING: format changes according to I</proc/PID/smaps>"
+msgstr "zeigt noch mehr Details als die Option B<-x> an. WARNUNG: Das Format ändert sich entsprechend I</proc/Prozesskennung/smaps>."
+
+#. type: TP
+#: ../man/pmap.1:51
+#, no-wrap
+msgid "B<-XX>"
+msgstr "B<-XX>"
+
+#. type: Plain text
+#: ../man/pmap.1:54
+msgid "Show everything the kernel provides"
+msgstr "zeigt alles, was der Kernel bereitstellt."
+
+#. type: TP
+#: ../man/pmap.1:54
+#, no-wrap
+msgid "B<-p>, B<--show-path>"
+msgstr "B<-p>, B<--show-path>"
+
+#. type: Plain text
+#: ../man/pmap.1:57
+msgid "Show full path to files in the mapping column"
+msgstr "zeigt den vollständigen Pfad zu den Dateien in der Zuordnungs-Spalte an."
+
+#. type: TP
+#: ../man/pmap.1:57
+#, no-wrap
+msgid "B<-c>, B<--read-rc>"
+msgstr "B<-c>, B<--read-rc>"
+
+#. type: Plain text
+#: ../man/pmap.1:60
+msgid "Read the default configuration"
+msgstr "liest die Standard-Konfigurationsdatei ein."
+
+#. type: TP
+#: ../man/pmap.1:60
+#, no-wrap
+msgid "B<-C>, B<--read-rc-from> I<file>"
+msgstr "B<-C>, B<--read-rc-from> I<Datei>"
+
+#. type: Plain text
+#: ../man/pmap.1:63
+msgid "Read the configuration from I<file>"
+msgstr "liest die Konfiguration aus der angegebenen I<Datei>."
+
+#. type: TP
+#: ../man/pmap.1:63
+#, no-wrap
+msgid "B<-n>, B<--create-rc>"
+msgstr "B<-n>, B<--create-rc>"
+
+#. type: Plain text
+#: ../man/pmap.1:66
+msgid "Create new default configuration"
+msgstr "erstellt eine neue Standardkonfiguration."
+
+#. type: TP
+#: ../man/pmap.1:66
+#, no-wrap
+msgid "B<-N>, B<--create-rc-to> I<file>"
+msgstr "B<-N>, B<--create-rc-to> I<Datei>"
+
+#. type: Plain text
+#: ../man/pmap.1:69
+msgid "Create new configuration to I<file>"
+msgstr "legt eine neue Konfiguration in der angegebenen I<Datei> an."
+
+#. type: Plain text
+#: ../man/pmap.1:72 ../man/skill.1:68 ../man/sysctl.8:116 ../man/w.1:66
+#: ../man/watch.1:97
+msgid "Display help text and exit."
+msgstr "zeigt einen Hilfetext an und beendet das Programm."
+
+#. type: Plain text
+#: ../man/pmap.1:82 ../man/watch.1:107
+msgid "Success."
+msgstr "Erfolg."
+
+#. type: Plain text
+#: ../man/pmap.1:85
+msgid "Failure."
+msgstr "Fehlschlag."
+
+#. type: TP
+#: ../man/pmap.1:85
+#, no-wrap
+msgid "B<42>"
+msgstr "B<42>"
+
+#. type: Plain text
+#: ../man/pmap.1:88
+msgid "Did not find all processes asked for."
+msgstr "Nicht alle Prozesse, nach denen gefragt wurde, konnten gefunden werden."
+
+#. type: Plain text
+#: ../man/pmap.1:93 ../man/pwdx.1:28
+msgid "B<ps>(1), B<pgrep>(1)"
+msgstr "B<ps>(1), B<pgrep>(1)"
+
+# FIXME command name formatting
+#. type: Plain text
+#: ../man/pmap.1:97
+msgid "No standards apply, but B<pmap> looks an awful lot like a SunOS command."
+msgstr "Es sind keine Standards anwendbar, aber B<pmap> ähnelt stark einem SunOS-Befehl."
+
+#. type: TH
+#: ../man/pwdx.1:12
+#, no-wrap
+msgid "PWDX"
+msgstr "PWDX"
+
+#. type: Plain text
+#: ../man/pwdx.1:15
+msgid "pwdx - report current working directory of a process"
+msgstr "pwdx - aktuelles Arbeitsverzeichnis eines Prozesses anzeigen"
+
+#. type: Plain text
+#: ../man/pwdx.1:18
+msgid "B<pwdx> [I<options>] I<pid> [...]"
+msgstr "B<pwdx> [I<Optionen>] I<Prozesskennung> […]"
+
+#. type: Plain text
+#: ../man/pwdx.1:22
+msgid "Output version information and exit."
+msgstr "zeigt Versionsinformation an und beendet das Programm."
+
+#. type: Plain text
+#: ../man/pwdx.1:25
+msgid "Output help screen and exit."
+msgstr "zeigt eine Hilfe an und beendet das Programm."
+
+# FIXME command name formatting
+#. type: Plain text
+#: ../man/pwdx.1:32
+msgid "No standards apply, but B<pwdx> looks an awful lot like a SunOS command."
+msgstr "Es sind keine Standards anwendbar, aber B<pwdx> ähnelt stark einem SunOS-Befehl."
+
+#. type: Plain text
+#: ../man/pwdx.1:37
+msgid "E<.UR nmiell@gmail.com> Nicholas Miell E<.UE> wrote pwdx in 2004."
+msgstr "E<.UR nmiell@gmail.com> Nicholas Miell E<.UE> schrieb Pwdx im Jahre 2004."
+
+#. type: TH
+#: ../man/skill.1:12
+#, no-wrap
+msgid "SKILL"
+msgstr "SKILL"
+
+#. type: TH
+#: ../man/skill.1:12 ../man/sysctl.8:14 ../man/ps.1:13
+#, no-wrap
+msgid "2023-08-19"
+msgstr "19. August 2023"
+
+#. type: Plain text
+#: ../man/skill.1:15
+msgid "skill, snice - send a signal or report process status"
+msgstr "skill, snice - ein Signal senden oder den Prozessstatus ermitteln"
+
+#. type: Plain text
+#: ../man/skill.1:20
+msgid "B<skill> [I<signal>] [I<options>] I<expression>"
+msgstr "B<skill> [I<Signal>] [I<Optionen>] I<Ausdruck>"
+
+#. type: Plain text
+#: ../man/skill.1:25
+msgid "B<snice> [I<new priority>] [I<options>] I<expression>"
+msgstr "B<snice> [I<neue Priorität>] [I<Optionen>] I<Ausdruck>"
+
+#. type: Plain text
+#: ../man/skill.1:33
+msgid "These tools are obsolete and unportable. The command syntax is poorly defined. Consider using the B<killall>, B<pkill>, and B<pgrep> commands instead."
+msgstr "Diese Dienstprogramme sind veraltet und nicht portabel. Die Befehlssyntax ist unzureichend dokumentiert. Bitte verwenden Sie stattdessen die Befehle B<killall>(1), B<pkill>(1) und B<pgrep>(1)."
+
+# FIXME command name formatting
+#. type: Plain text
+#: ../man/skill.1:38
+msgid "The default signal for B<skill> is TERM. Use B<-l> or B<-L> to list available signals. Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0. Alternate signals may be specified in three ways: B<-9> B<-SIGKILL> B<-KILL>."
+msgstr "Das Standardsignal für B<skill> ist TERM. Verwenden Sie B<-l> oder B<-L>, um verfügbare Signale aufzulisten. Im Einzelnen sind diese Signale HUP, INT, KILL, STOP, CONT und 0. Andere Signale können auf drei verschiedene Arten angegeben werden: B<-9>, B<-SIGKILL> oder B<-KILL>."
+
+# FIXME command name formatting
+#. type: Plain text
+#: ../man/skill.1:42
+msgid "The default priority for B<snice> is +4. Priority numbers range from +20 (slowest) to -20 (fastest). Negative priority numbers are restricted to administrative users."
+msgstr "Die Vorgabepriorität für B<snice> ist +4. Prioritätskennziffern liegen im Bereich von +20 (am langsamsten) und -20 (am schnellsten). Negative Prioritätskennziffern sind Benutzern mit Administratorrechten vorbehalten."
+
+#. type: TP
+#: ../man/skill.1:43
+#, no-wrap
+msgid "B<-f>,B<\\ --fast>"
+msgstr "B<-f>,B<\\ --fast>"
+
+#. type: Plain text
+#: ../man/skill.1:46
+msgid "Fast mode. This option has not been implemented."
+msgstr "Schneller Modus. Diese Option wurde nicht implementiert."
+
+#. type: TP
+#: ../man/skill.1:46
+#, no-wrap
+msgid "B<-i>,B<\\ --interactive>"
+msgstr "B<-i>,B<\\ --interactive>"
+
+#. type: Plain text
+#: ../man/skill.1:49
+msgid "Interactive use. You will be asked to approve each action."
+msgstr "Interaktiver Modus. Sie werden vor der Ausführung einer Aktion stets um Bestätigung gebeten."
+
+#. type: TP
+#: ../man/skill.1:49
+#, no-wrap
+msgid "B<-l>,B<\\ --list>"
+msgstr "B<-l>,B<\\ --list>"
+
+#. type: Plain text
+#: ../man/skill.1:52
+msgid "List all signal names."
+msgstr "listet alle Signalnamen auf."
+
+#. type: Plain text
+#: ../man/skill.1:55
+msgid "List all signal names in a nice table."
+msgstr "listet alle Signalnamen in einer Tabelle auf."
+
+#. type: TP
+#: ../man/skill.1:55
+#, no-wrap
+msgid "B<-n>,B<\\ --no-action>"
+msgstr "B<-n>,B<\\ --no-action>"
+
+#. type: Plain text
+#: ../man/skill.1:59
+msgid "No action; perform a simulation of events that would occur but do not actually change the system."
+msgstr "führt keine Aktion aus. Es wird eine Simulation ausgeführt, aber keine Änderung am System vorgenommen."
+
+#. type: TP
+#: ../man/skill.1:59
+#, no-wrap
+msgid "B<-v>,B<\\ --verbose>"
+msgstr "B<-v>,B<\\ --verbose>"
+
+#. type: Plain text
+#: ../man/skill.1:62
+msgid "Verbose; explain what is being done."
+msgstr "Ausführlicher Modus, es wird erklärt, was geschieht."
+
+#. type: TP
+#: ../man/skill.1:62
+#, no-wrap
+msgid "B<-w>,B<\\ --warnings>"
+msgstr "B<-w>,B<\\ --warnings>"
+
+#. type: Plain text
+#: ../man/skill.1:65
+msgid "Enable warnings. This option has not been implemented."
+msgstr "aktiviert Warnungen. Diese Option wurde nicht implementiert."
+
+#. type: SH
+#: ../man/skill.1:72
+#, no-wrap
+msgid "PROCESS SELECTION OPTIONS"
+msgstr "OPTIONEN ZUR PROZESSAUSWAHL"
+
+#. type: Plain text
+#: ../man/skill.1:75
+msgid "Selection criteria can be: terminal, user, pid, command. The options below may be used to ensure correct interpretation."
+msgstr "Auswahlkriterien können sein: terminal, user, pid, command. Die nachfolgenden Optionen können verwendet werden, um eine korrekte Interpretation zu gewährleisten."
+
+#. type: TP
+#: ../man/skill.1:75
+#, no-wrap
+msgid "B<-t>, B<--tty> I<tty>"
+msgstr "B<-t>, B<--tty> I<TTY>"
+
+#. type: Plain text
+#: ../man/skill.1:78
+msgid "The next expression is a terminal (tty or pty)."
+msgstr "Der nächste Ausdruck ist ein Terminal (tty oder pty)."
+
+#. type: TP
+#: ../man/skill.1:78
+#, no-wrap
+msgid "B<-u>, B<--user> I<user>"
+msgstr "B<-u>, B<--user> I<Benutzer>"
+
+#. type: Plain text
+#: ../man/skill.1:81
+msgid "The next expression is a username."
+msgstr "Der nächste Ausdruck ist ein Benutzername."
+
+#. type: TP
+#: ../man/skill.1:81
+#, no-wrap
+msgid "B<-p>, B<--pid> I<pid>"
+msgstr "B<-p>, B<--pid> I<PID>"
+
+#. type: Plain text
+#: ../man/skill.1:84
+msgid "The next expression is a process ID number."
+msgstr "Der nächste Ausdruck ist eine Prozesskennung (ID)."
+
+#. type: TP
+#: ../man/skill.1:84
+#, no-wrap
+msgid "B<-c>, B<--command> I<command>"
+msgstr "B<-c>, B<--command> I<BEFEHL>"
+
+#. type: Plain text
+#: ../man/skill.1:87
+msgid "The next expression is a command name."
+msgstr "Der nächste Ausdruck ist ein Befehlsname."
+
+#. type: Plain text
+#: ../man/skill.1:90
+msgid "Match the processes that belong to the same namespace as pid."
+msgstr "sucht nach Prozessen, die zum gleichen Namensraum wie I<PID> gehören."
+
+#. type: TP
+#: ../man/skill.1:90
+#, no-wrap
+msgid "B<--nslist >I<ns\\/>,\\,I<...\\/>"
+msgstr "B<--nslist >I<Namensraum\\/>,\\,I<…\\/>"
+
+#. type: Plain text
+#: ../man/skill.1:94
+msgid "list which namespaces will be considered for the B<--ns> option. Available namespaces: ipc, mnt, net, pid, user, uts."
+msgstr "listet die Namensräume auf, die in der Option B<--ns> berücksichtigt werden. Verfügbare Namensräume: ipc, mnt, net, pid, user, uts."
+
+#. type: SH
+#: ../man/skill.1:95
+#, no-wrap
+msgid "SIGNALS"
+msgstr "SIGNALE"
+
+#. type: Plain text
+#: ../man/skill.1:99
+msgid "The behavior of signals is explained in B<signal>(7) manual page."
+msgstr "Das Verhalten der Signale ist in der Handbuchseite zu B<signal>(7) beschrieben."
+
+#. type: TP
+#: ../man/skill.1:100
+#, no-wrap
+msgid "B<snice -c seti -c crack +7>"
+msgstr "B<snice -c seti -c crack +7>"
+
+# FIXME command name formatting
+#. type: Plain text
+#: ../man/skill.1:103
+msgid "+Slow down B<seti> and B<crack> commands."
+msgstr "verlangsamt die Ausführung der B<seti>- und B<crack>-Befehle."
+
+#. type: TP
+#: ../man/skill.1:103
+#, no-wrap
+msgid "B<skill -KILL -t /dev/pts/*>"
+msgstr "B<skill -KILL -t /dev/pts/*>"
+
+#. type: Plain text
+#: ../man/skill.1:106
+msgid "Kill users on PTY devices."
+msgstr "killt Benutzer auf PTY-Geräten."
+
+#. type: TP
+#: ../man/skill.1:106
+#, no-wrap
+msgid "B<skill -STOP -u viro -u lm -u davem>"
+msgstr "B<skill -STOP -u viro -u lm -u davem>"
+
+#. type: Plain text
+#: ../man/skill.1:109
+msgid "Stop three users."
+msgstr "stoppt drei Benutzer."
+
+#. type: Plain text
+#: ../man/skill.1:117
+msgid "B<kill>(1), B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), B<renice>(1), B<signal>(7)"
+msgstr "B<kill>(1), B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), B<renice>(1), B<signal>(7)"
+
+#. type: Plain text
+#: ../man/skill.1:119
+msgid "No standards apply."
+msgstr "Es sind keine Standards anwendbar."
+
+#. type: Plain text
+#: ../man/skill.1:125
+msgid "E<.MT albert@users.sf.net> Albert Cahalan E<.ME> wrote skill and snice in 1999 as a replacement for a non-free version."
+msgstr "E<.MT albert@users.sf.net> Albert Cahalan E<.ME> schrieb B<skill> und B<snice> im Jahre 1999 als Ersatz für eine unfreie Version."
+
+#. type: TH
+#: ../man/slabtop.1:14
+#, no-wrap
+msgid "SLABTOP"
+msgstr "SLABTOP"
+
+#. type: TH
+#: ../man/slabtop.1:14
+#, no-wrap
+msgid "2021-03-11"
+msgstr "11. März 2021"
+
+#. type: Plain text
+#: ../man/slabtop.1:17
+msgid "slabtop - display kernel slab cache information in real time"
+msgstr "slabtop - zeigt Informationen zum Slab-Zwischenspeicher des Kernels in Echtzeit an"
+
+#. type: Plain text
+#: ../man/slabtop.1:20
+msgid "B<slabtop> [I<options>]"
+msgstr "B<slabtop> [I<Optionen>]"
+
+#. type: Plain text
+#: ../man/slabtop.1:25
+msgid "B<slabtop> displays detailed kernel slab cache information in real time. It displays a listing of the top caches sorted by one of the listed sort criteria. It also displays a statistics header filled with slab layer information."
+msgstr "B<slabtop> zeigt detaillierte Informationen zum Slab-Zwischenspeicher des Kernels in Echtzeit an. Es zeigt eine Liste der Top-Zwischenspeicher, nach einem der aufgeführten Kriterien sortiert. Außerdem werden Statistik-Kopfzeilen mit Slab-Ebenen-Informationen angezeigt."
+
+#. type: Plain text
+#: ../man/slabtop.1:30
+msgid "Normal invocation of B<slabtop> does not require any options. The behavior, however, can be fine-tuned by specifying one or more of the following flags:"
+msgstr "Der normale Aufruf von B<slabtop> erfordert keine Optionen. Sie können das Verhalten beeinflussen, indem Sie einen oder mehrere der folgenden Schalter angeben:"
+
+#. type: TP
+#: ../man/slabtop.1:30
+#, no-wrap
+msgid "B<-d>, B<--delay>=I<N>"
+msgstr "B<-d>, B<--delay>=I<N>"
+
+#. type: Plain text
+#: ../man/slabtop.1:39
+msgid "Refresh the display every I<n> in seconds. By default, B<slabtop> refreshes the display every three seconds. To exit the program, hit B<q>. This cannot be combined with the B<-o> option."
+msgstr "aktualisiert die Anzeige alle I<n> Sekunden. Per Vorgabe aktualisiert B<slabtop> die Anzeige alle drei Sekunden. Um das Programm zu beenden, drücken Sie B<q>. Dies kann nicht mit der Option B<-o> kombiniert werden."
+
+#. type: TP
+#: ../man/slabtop.1:39
+#, no-wrap
+msgid "B<-s>, B<--sort>=I<S>"
+msgstr "B<-s>, B<--sort>=I<S>"
+
+#. type: Plain text
+#: ../man/slabtop.1:42
+msgid "Sort by I<S>, where I<S> is one of the sort criteria."
+msgstr "sortiert nach I<S>, wobei I<S> eines der Suchkritieren ist."
+
+#. type: TP
+#: ../man/slabtop.1:42
+#, no-wrap
+msgid "B<-o>, B<--once>"
+msgstr "B<-o>, B<--once>"
+
+#. type: Plain text
+#: ../man/slabtop.1:45
+msgid "Display the output once and then exit."
+msgstr "zeigt die Ausgabe einmal an und beendet das Programm."
+
+#. type: Plain text
+#: ../man/slabtop.1:51
+msgid "Display usage information and exit."
+msgstr "zeigt Informationen zur Benutzung an und beendet das Programm."
+
+#. type: SH
+#: ../man/slabtop.1:51
+#, no-wrap
+msgid "SORT CRITERIA"
+msgstr "SORTIERKRITERIEN"
+
+#. type: Plain text
+#: ../man/slabtop.1:55
+msgid "The following are valid sort criteria used to sort the individual slab caches and thereby determine what are the \"top\" slab caches to display. The default sort criteria is to sort by the number of objects (\"o\")."
+msgstr "Folgende Kriterien sind für die Sortierung der einzelnen Slab-Zwischenspeicher zulässig und bestimmen, welche die obersten Zwischenspeicher für die Anzeige sind. Die Voreinstellung ist die Sortierung nach der Anzahl der Objekte (»o«)."
+
+# FIXME command name formatting
+#. type: Plain text
+#: ../man/slabtop.1:59
+msgid "The sort criteria can also be changed while B<slabtop> is running by pressing the associated character."
+msgstr "Die Sortierkriterien können auch angepasst werden, während B<slabtop> läuft, indem Sie die Taste mit dem entsprechenden Zeichen drücken."
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<character>"
+msgstr "B<Zeichen>"
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<description>"
+msgstr "B<Beschreibung>"
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<header>"
+msgstr "B<Header>"
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "a"
+msgstr "a"
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "number of active objects"
+msgstr "Anzahl der aktiven Objekte"
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "ACTIVE"
+msgstr "ACTIVE"
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "b"
+msgstr "b"
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "objects per slab"
+msgstr "Objekte pro Slab"
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "OBJ/SLAB"
+msgstr "OBJ/SLAB"
+
+# #-#-#-#-# de.po (procps-ng-man-3.3.16-pre2) #-#-#-#-#
+# FIXME formatting
+#. type: tbl table
+#: ../man/slabtop.1:64 ../man/ps.1:909 ../man/ps.1:1081
+#, no-wrap
+msgid "c"
+msgstr "c"
+
+#. type: tbl table
+#: ../man/slabtop.1:64
+#, no-wrap
+msgid "cache size"
+msgstr "Cache-Größe"
+
+#. type: tbl table
+#: ../man/slabtop.1:64
+#, no-wrap
+msgid "CACHE SIZE"
+msgstr "CACHE SIZE"
+
+#. type: TP
+#: ../man/slabtop.1:65 ../man/ps.1:882
+#, no-wrap
+msgid "l"
+msgstr "l"
+
+#. type: tbl table
+#: ../man/slabtop.1:65
+#, no-wrap
+msgid "number of slabs"
+msgstr "Anzahl der Slabs"
+
+#. type: tbl table
+#: ../man/slabtop.1:65
+#, no-wrap
+msgid "SLABS"
+msgstr "SLABS"
+
+#. type: tbl table
+#: ../man/slabtop.1:66 ../man/ps.1:932
+#, no-wrap
+msgid "v"
+msgstr "v"
+
+#. type: tbl table
+#: ../man/slabtop.1:66
+#, no-wrap
+msgid "number of active slabs"
+msgstr "Anzahl der aktiven Slabs"
+
+#. type: tbl table
+#: ../man/slabtop.1:66 ../man/slabtop.1:69
+#, no-wrap
+msgid "N/A"
+msgstr "n.v."
+
+#. type: tbl table
+#: ../man/slabtop.1:67 ../man/ps.1:919
+#, no-wrap
+msgid "n"
+msgstr "n"
+
+#. type: tbl table
+#: ../man/slabtop.1:67
+#, no-wrap
+msgid "name"
+msgstr "Name"
+
+#. type: tbl table
+#: ../man/slabtop.1:67
+#, no-wrap
+msgid "NAME\\:"
+msgstr "NAME\\:"
+
+#. type: tbl table
+#: ../man/slabtop.1:68 ../man/ps.1:921
+#, no-wrap
+msgid "o"
+msgstr "o"
+
+#. type: tbl table
+#: ../man/slabtop.1:68
+#, no-wrap
+msgid "number of objects"
+msgstr "Anzahl der Objekte"
+
+#. type: tbl table
+#: ../man/slabtop.1:68
+#, no-wrap
+msgid "OBJS"
+msgstr "OBJS"
+
+#. type: tbl table
+#: ../man/slabtop.1:69 ../man/ps.1:922
+#, no-wrap
+msgid "p"
+msgstr "p"
+
+#. type: tbl table
+#: ../man/slabtop.1:69
+#, no-wrap
+msgid "pages per slab"
+msgstr "Seiten pro Slab"
+
+# #-#-#-#-# de.po (procps-ng-man-3.3.16-pre2) #-#-#-#-#
+# FIXME formatting
+#. type: tbl table
+#: ../man/slabtop.1:70 ../man/ps.1:879 ../man/ps.1:926 ../man/ps.1:1631
+#, no-wrap
+msgid "s"
+msgstr "s"
+
+#. type: tbl table
+#: ../man/slabtop.1:70
+#, no-wrap
+msgid "object size"
+msgstr "Objektgröße"
+
+#. type: tbl table
+#: ../man/slabtop.1:70
+#, no-wrap
+msgid "OBJ SIZE"
+msgstr "OBJ SIZE"
+
+#. type: tbl table
+#: ../man/slabtop.1:71 ../man/ps.1:931
+#, no-wrap
+msgid "u"
+msgstr "u"
+
+#. type: tbl table
+#: ../man/slabtop.1:71
+#, no-wrap
+msgid "cache utilization"
+msgstr "Zwischenspeichernutzung"
+
+#. type: tbl table
+#: ../man/slabtop.1:71
+#, no-wrap
+msgid "USE"
+msgstr "USE"
+
+#. type: SH
+#: ../man/slabtop.1:73
+#, no-wrap
+msgid "COMMANDS"
+msgstr "BEFEHLE"
+
+#. type: Plain text
+#: ../man/slabtop.1:77
+msgid "B<slabtop> accepts keyboard commands from the user during use. The following are supported. In the case of letters, both cases are accepted."
+msgstr "B<slabtop> akzeptiert Tastaturbefehle des Benutzers, während das Programm läuft. Die folgenden Befehle werden unterstützt, wobei für Buchstaben die Groß- oder Kleinschreibung nicht berücksichtigt wird."
+
+#. type: Plain text
+#: ../man/slabtop.1:81
+msgid "Each of the valid sort characters are also accepted, to change the sort routine. See the section B<SORT CRITERIA>."
+msgstr "Jedes der zulässigen Sortierzeichen wird zum Anpassen der Sortierroutine ebenfalls unterstützt. Siehe Abschnitt B<SORTIERKRITERIEN>."
+
+#. type: TP
+#: ../man/slabtop.1:81
+#, no-wrap
+msgid "B<E<lt>SPACEBARE<gt>>"
+msgstr "B<E<lt>LEERTASTEE<gt>>"
+
+#. type: Plain text
+#: ../man/slabtop.1:84
+msgid "Refresh the screen."
+msgstr "aktualisiert den Bildschirm."
+
+#. type: TP
+#: ../man/slabtop.1:84
+#, no-wrap
+msgid "B<Q>"
+msgstr "B<Q>"
+
+#. type: Plain text
+#: ../man/slabtop.1:87
+msgid "Quit the program."
+msgstr "beendet das Programm."
+
+#. type: TP
+#: ../man/slabtop.1:88
+#, no-wrap
+msgid "I</proc/slabinfo>"
+msgstr "I</proc/slabinfo>"
+
+#. type: Plain text
+#: ../man/slabtop.1:91
+msgid "slab information"
+msgstr "Slab-Information"
+
+#. type: Plain text
+#: ../man/slabtop.1:96
+msgid "B<free>(1), B<ps>(1), B<top>(1), B<vmstat>(8)"
+msgstr "B<free>(1), B<ps>(1), B<top>(1), B<vmstat>(8)"
+
+#. type: Plain text
+#: ../man/slabtop.1:102
+msgid "Currently, B<slabtop> requires a 2.4 or later kernel (specifically, a version 1.1 or later I</proc/slabinfo>). Kernel 2.2 should be supported in the future."
+msgstr "Gegenwärtig benötigt B<slabtop> einen Kernel der Version 2.4 oder neuer (speziell I</proc/slabinfo> in Version 1.1 oder neuer). Der Kernel 2.2 wird wahrscheinlich in zukünftigen Versionen unterstützt."
+
+#. type: Plain text
+#: ../man/slabtop.1:108
+msgid "The B<slabtop> statistic header is tracking how many bytes of slabs are being used and is not a measure of physical memory. The 'Slab' field in the I</proc/meminfo> file is tracking information about used slab physical memory."
+msgstr "Die Statistik-Kopfzeile von B<slabtop> verfolgt die Byte-Anzahl der genutzten Slabs, bezieht sich aber nicht auf den tatsächlichen physischen Speicher. Das »Slab«-Feld in der Datei I</proc/meminfo> enthält Informationen über den physischen Slab-Speicher."
+
+#. type: Plain text
+#: ../man/slabtop.1:114
+msgid "The B<CACHE SIZE> column is not accurate, it's the upper limit of memory used by specific slab. When system using slub (most common case) is under high memory pressure, there are slab order fallbacks, which means \"pages per slab\" is not constant and may decrease."
+msgstr ""
+
+#. type: SH
+#: ../man/slabtop.1:114 ../man/tload.1:58 ../man/uptime.1:56 ../man/w.1:102
+#, no-wrap
+msgid "AUTHORS"
+msgstr "AUTOREN"
+
+#. type: Plain text
+#: ../man/slabtop.1:116
+msgid "Written by Chris Rivera and Robert Love."
+msgstr "Geschrieben von Chris Rivera und Robert Love."
+
+#. type: Plain text
+#: ../man/slabtop.1:120
+msgid "B<slabtop> was inspired by Martin Bligh's perl script, B<vmtop>."
+msgstr "B<slabtop> wurde vom Perl-Skript B<vmtop> von Martin Bligh inspiriert."
+
+#. type: TH
+#: ../man/sysctl.8:14
+#, no-wrap
+msgid "SYSCTL"
+msgstr "SYSCTL"
+
+#. type: TH
+#: ../man/sysctl.8:14 ../man/vmstat.8:13
+#, no-wrap
+msgid "System Administration"
+msgstr "System-Administration"
+
+#. type: Plain text
+#: ../man/sysctl.8:17
+msgid "sysctl - configure kernel parameters at runtime"
+msgstr "sysctl - Kernelparameter zur Laufzeit konfigurieren"
+
+#. type: Plain text
+#: ../man/sysctl.8:20
+msgid "B<sysctl> [I<options>] [I<variable>[B<=>I<value>]] [...]"
+msgstr "B<sysctl> [I<Optionen>] [I<Variable>[B<=>I<Wert>]] […]"
+
+#. type: Plain text
+#: ../man/sysctl.8:23
+msgid "B<sysctl -p> [I<file> or I<regexp>] [...]"
+msgstr "B<sysctl -p> [I<Datei> oder I<regulärer_Ausdruck>] […]"
+
+#. type: Plain text
+#: ../man/sysctl.8:31
+msgid "B<sysctl> is used to modify kernel parameters at runtime. The parameters available are those listed under I</proc/sys/>. Procfs is required for B<sysctl> support in Linux. You can use B<sysctl> to both read and write sysctl data."
+msgstr "B<sysctl> wird dazu verwendet, Kernelparameter zur Laufzeit zu ändern. Die verfügbaren Parameter sind unter I</proc/sys/> aufgelistet. Für die B<sysctl>-Unterstützung in Linux ist Procfs notwendig. Sie können B<sysctl> sowohl zum Lesen als auch zum Schreiben von Sysctl-Daten verwenden."
+
+#. type: SH
+#: ../man/sysctl.8:31
+#, no-wrap
+msgid "PARAMETERS"
+msgstr "PARAMETER"
+
+#. type: TP
+#: ../man/sysctl.8:32
+#, no-wrap
+msgid "I<variable>"
+msgstr "I<Variable>"
+
+#. type: Plain text
+#: ../man/sysctl.8:36
+msgid "The name of a key to read from. An example is kernel.ostype. The '/' separator is also accepted in place of a '.'."
+msgstr "bezeichnet den Namen des Schlüssels, aus dem gelesen werden soll. Ein Beispiel ist kernel.ostype. Anstelle von ».« wird auch »/« als Trenner akzeptiert."
+
+#. type: TP
+#: ../man/sysctl.8:36
+#, no-wrap
+msgid "I<variable>=I<value>"
+msgstr "I<Variable>=I<Wert>"
+
+#. type: Plain text
+#: ../man/sysctl.8:47
+msgid "To set a key, use the form I<variable>=I<value> where I<variable> is the key and I<value> is the value to set it to. If the value contains quotes or characters which are parsed by the shell, you may need to enclose the value in double quotes."
+msgstr "Um einen Schlüssel zu setzen, verwenden Sie die Form I<Variable>=I<Wert>, wobei die I<Variable> der Schlüssel ist und I<Wert> der Wert, auf den er gesetzt werden soll. Wenn der Wert Anführungszeichen oder Zeichen enthält, die von der Shell ausgewertet werden, müssen Sie den Wert in doppelte Anführungszeichen (\") einschließen."
+
+#. type: TP
+#: ../man/sysctl.8:47
+#, no-wrap
+msgid "B<-n>, B<--values>"
+msgstr "B<-n>, B<--values>"
+
+#. type: Plain text
+#: ../man/sysctl.8:50
+msgid "Use this option to disable printing of the key name when printing values."
+msgstr "deaktiviert die Ausgabe des Schlüsselnamens, wenn Werte ausgegeben werden."
+
+#. type: TP
+#: ../man/sysctl.8:50
+#, no-wrap
+msgid "B<-e>, B<--ignore>"
+msgstr "B<-e>, B<--ignore>"
+
+#. type: Plain text
+#: ../man/sysctl.8:53
+msgid "Use this option to ignore errors about unknown keys."
+msgstr "ignoriert Fehlermeldungen über unbekannte Schlüssel."
+
+#. type: TP
+#: ../man/sysctl.8:53
+#, no-wrap
+msgid "B<-N>, B<--names>"
+msgstr "B<-N>, B<--names>"
+
+#. type: Plain text
+#: ../man/sysctl.8:57
+msgid "Use this option to only print the names. It may be useful with shells that have programmable completion."
+msgstr "gibt nur die Namen aus. Dies könnte mit Shells nützlich sein, die über eine programmierbare Vervollständigung verfügen."
+
+#. type: Plain text
+#: ../man/sysctl.8:60
+msgid "Use this option to not display the values set to stdout."
+msgstr "bewirkt, dass die gesetzten Werte nicht in die Standardausgabe geschrieben werden."
+
+#. type: TP
+#: ../man/sysctl.8:60
+#, no-wrap
+msgid "B<-w>, B<--write>"
+msgstr "B<-w>, B<--write>"
+
+#. type: Plain text
+#: ../man/sysctl.8:64
+msgid "Force all arguments to be write arguments and print an error if they cannot be parsed this way."
+msgstr "erzwingt, dass alle Argumente Schreibargumente sind und gibt einen Fehler aus, wenn die Argumente nicht nach dieser Vorgabe ausgewertet werden können."
+
+#. type: TP
+#: ../man/sysctl.8:64
+#, no-wrap
+msgid "B<-p>[I<FILE>], B<--load>[=I<FILE>]"
+msgstr "B<-p>[I<DATEI>], B<--load>[=I<DATEI>]"
+
+# FIXME Formatierung des Minuszeichens
+#. type: Plain text
+#: ../man/sysctl.8:72
+msgid "Load in B<sysctl> settings from the file specified or I</etc/sysctl.conf> if none given. Specifying - as filename means reading data from standard input. Using this option will mean arguments to B<sysctl> are files, which are read in the order they are specified. The file argument may be specified as regular expression."
+msgstr "lädt B<sysctl>-Einstellungen aus der angegebenen Datei oder aus I</etc/sysctl.conf>, falls keine Datei angegeben ist. Die Angabe von B<-> als Dateiname bewirkt, dass die Daten aus der Standardeingabe gelesen werden. Mit dieser Option sieht B<sysctl> Argumente als Dateien an, die in der Reihenfolge gelesen werden, in der sie angegeben sind. Das Datei-Argument kann als regulärer Ausdruck angegeben werden."
+
+#. type: TP
+#: ../man/sysctl.8:72
+#, no-wrap
+msgid "B<-a>, B<--all>"
+msgstr "B<-a>, B<--all>"
+
+#. type: Plain text
+#: ../man/sysctl.8:75
+msgid "Display all values currently available."
+msgstr "zeigt alle aktuell verfügbaren Werte an."
+
+#. type: TP
+#: ../man/sysctl.8:75
+#, no-wrap
+msgid "B<--deprecated>"
+msgstr "B<--deprecated>"
+
+#. type: Plain text
+#: ../man/sysctl.8:80
+msgid "Include deprecated parameters to B<--all> values listing."
+msgstr "schließt veraltete Parameter in die Auflistung der Werte mit B<--all> ein."
+
+#. type: TP
+#: ../man/sysctl.8:80
+#, no-wrap
+msgid "B<-b>, B<--binary>"
+msgstr "B<-b>, B<--binary>"
+
+#. type: Plain text
+#: ../man/sysctl.8:83
+msgid "Print value without new line."
+msgstr "gibt Werte ohne Zeilenumbrüche aus."
+
+#. type: TP
+#: ../man/sysctl.8:83
+#, no-wrap
+msgid "B<--system>"
+msgstr "B<--system>"
+
+#. type: Plain text
+#: ../man/sysctl.8:88
+msgid "Load settings from all system configuration files. See the B<SYSTEM FILE PRECEDENCE> section below."
+msgstr "lädt Einstellungen aus allen Systemkonfigurationsdateien. Siehe B<RANGFOLGE DER SYSTEMDATEIEN> unten."
+
+#. type: TP
+#: ../man/sysctl.8:88
+#, no-wrap
+msgid "B<-r>, B<--pattern> I<pattern>"
+msgstr "B<-r>, B<--pattern> I<Muster>"
+
+#. type: Plain text
+#: ../man/sysctl.8:95
+msgid "Only apply settings that match I<pattern>. The I<pattern> uses extended regular expression syntax."
+msgstr "wendet nur Einstellungen an, die dem angegebenen I<Muster> entsprechen. Das I<Muster> kann ein erweiterter regulärer Ausdruck sein."
+
+#. type: TP
+#: ../man/sysctl.8:95 ../man/ps.1:147
+#, no-wrap
+msgid "B<-A>"
+msgstr "B<-A>"
+
+#. type: Plain text
+#: ../man/sysctl.8:98 ../man/sysctl.8:107
+msgid "Alias of B<-a>"
+msgstr "Alias für B<-a>"
+
+#. type: TP
+#: ../man/sysctl.8:98 ../man/ps.1:156
+#, no-wrap
+msgid "B<-d>"
+msgstr "B<-d>"
+
+#. type: Plain text
+#: ../man/sysctl.8:101
+msgid "Alias of B<-h>"
+msgstr "Alias für B<-h>"
+
+#. type: TP
+#: ../man/sysctl.8:101 ../man/ps.1:417
+#, no-wrap
+msgid "B<-f>"
+msgstr "B<-f>"
+
+#. type: Plain text
+#: ../man/sysctl.8:104
+msgid "Alias of B<-p>"
+msgstr "Alias für B<-p>"
+
+#. type: TP
+#: ../man/sysctl.8:107
+#, no-wrap
+msgid "B<-o>"
+msgstr "B<-o>"
+
+#. type: Plain text
+#: ../man/sysctl.8:110 ../man/sysctl.8:113
+msgid "Does nothing, exists for BSD compatibility."
+msgstr "bewirkt nichts; ist nur zwecks BSD-Kompatibilität vorhanden."
+
+#. type: SH
+#: ../man/sysctl.8:119
+#, no-wrap
+msgid "SYSTEM FILE PRECEDENCE"
+msgstr "RANGFOLGE DER SYSTEMDATEIEN"
+
+#. type: Plain text
+#: ../man/sysctl.8:125
+msgid "When using the B<--system> option, B<sysctl> will read files from directories in the following list in given order from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored."
+msgstr "Wenn Sie die Option B<--system> verwenden, liest B<sysctl> Dateien aus den Verzeichnissen in der folgenden Liste in der angegebenen Reihenfolge von oben nach unten. Sobald eine Datei eines angegebenen Namens geladen ist, werden jegliche Dateien gleichen Namens in darauf folgenden Verzeichnissen ignoriert."
+
+#. type: Plain text
+#: ../man/sysctl.8:127
+msgid "/etc/sysctl.d/*.conf"
+msgstr "/etc/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:129
+msgid "/run/sysctl.d/*.conf"
+msgstr "/run/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:131
+msgid "/usr/local/lib/sysctl.d/*.conf"
+msgstr "/usr/local/lib/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:133
+msgid "/usr/lib/sysctl.d/*.conf"
+msgstr "/usr/lib/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:135
+msgid "/lib/sysctl.d/*.conf"
+msgstr "/lib/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:137
+msgid "/etc/sysctl.conf"
+msgstr "/etc/sysctl.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:143
+#, fuzzy
+msgid "All configuration files are sorted in lexicographic order, regardless of the directory they reside in. Configuration files can either be completely replaced (by having a new configuration file with the same name in a directory of higher priority) or partially replaced (by having a configuration file that is ordered later)."
+msgstr "Alle Konfigurationsdateien werden lexikografisch aufgelistet, unabhängig davon, in welchem Ordner sie enthalten sind."
+
+#. type: Plain text
+#: ../man/sysctl.8:145
+msgid "/sbin/sysctl -a"
+msgstr "/sbin/sysctl -a"
+
+#. type: Plain text
+#: ../man/sysctl.8:147
+msgid "/sbin/sysctl -n kernel.hostname"
+msgstr "/sbin/sysctl -n kernel.hostname"
+
+#. type: Plain text
+#: ../man/sysctl.8:149
+msgid "/sbin/sysctl -w kernel.domainname=\"example.com\""
+msgstr "/sbin/sysctl -w kernel.domainname=\"example.com\""
+
+#. type: Plain text
+#: ../man/sysctl.8:151
+msgid "/sbin/sysctl -p/etc/sysctl.conf"
+msgstr "/sbin/sysctl -p/etc/sysctl.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:153
+msgid "/sbin/sysctl -a --pattern forward"
+msgstr "/sbin/sysctl -a --pattern forward"
+
+#. type: Plain text
+#: ../man/sysctl.8:155
+msgid "/sbin/sysctl -a --pattern forward$"
+msgstr "/sbin/sysctl -a --pattern forward$"
+
+#. type: Plain text
+#: ../man/sysctl.8:157
+msgid "/sbin/sysctl -a --pattern 'net.ipv4.conf.(eth|wlan)0.arp'"
+msgstr "/sbin/sysctl -a --pattern 'net.ipv4.conf.(eth|wlan)0.arp'"
+
+#. type: Plain text
+#: ../man/sysctl.8:159
+msgid "/sbin/sysctl --pattern '\\[char94]net.ipv6' --system"
+msgstr "/sbin/sysctl --pattern '\\[char94]net.ipv6' --system"
+
+#. type: SH
+#: ../man/sysctl.8:159
+#, no-wrap
+msgid "DEPRECATED PARAMETERS"
+msgstr "VERALTETE PARAMETER"
+
+# FIXME command name formatting
+#. type: Plain text
+#: ../man/sysctl.8:169
+msgid "The B<base_reachable_time> and B<retrans_time> are deprecated. The B<sysctl> command does not allow changing values of these parameters. Users who insist to use deprecated kernel interfaces should push values to B</proc> file system by other means. For example:"
+msgstr "Die Parameter B<base_reachable_time> und B<retrans_time> sind veraltet. Der Befehl B<sysctl> erlaubt keine Änderungen der Werte dieser Parameter. Benutzer, die nach wie vor veraltete Kernel-Schnittstellen verwenden, sollten die Werte auf anderen Wegen in das /I<proc>-Dateisystem befördern. Zum Beispiel:"
+
+#. type: Plain text
+#: ../man/sysctl.8:171
+msgid "echo 256 E<gt> /proc/sys/net/ipv6/neigh/eth0/base_reachable_time"
+msgstr "echo 256 E<gt> /proc/sys/net/ipv6/neigh/eth0/base_reachable_time"
+
+#. type: Plain text
+#: ../man/sysctl.8:173
+msgid "I</proc/sys>"
+msgstr "I</proc/sys>"
+
+#. type: Plain text
+#: ../man/sysctl.8:175 ../man/sysctl.conf.5:66
+msgid "I</etc/sysctl.d/*.conf>"
+msgstr "I</etc/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:177 ../man/sysctl.conf.5:68
+msgid "I</run/sysctl.d/*.conf>"
+msgstr "I</run/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:179 ../man/sysctl.conf.5:70
+msgid "I</usr/local/lib/sysctl.d/*.conf>"
+msgstr "I</usr/local/lib/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:181 ../man/sysctl.conf.5:72
+msgid "I</usr/lib/sysctl.d/*.conf>"
+msgstr "I</usr/lib/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:183 ../man/sysctl.conf.5:74
+msgid "I</lib/sysctl.d/*.conf>"
+msgstr "I</lib/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:185 ../man/sysctl.conf.5:76
+msgid "I</etc/sysctl.conf>"
+msgstr "I</etc/sysctl.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:189
+msgid "B<proc>(5), B<sysctl.conf>(5), B<regex>(7)"
+msgstr "B<proc>(5), B<sysctl.conf>(5), B<regex>(7)"
+
+#. type: Plain text
+#: ../man/sysctl.8:193 ../man/sysctl.conf.5:89
+msgid "E<.UR staikos@0wned.org> George Staikos E<.UE>"
+msgstr "E<.UR staikos@0wned.org> George Staikos E<.UE>"
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "SYSCTL.CONF"
+msgstr "SYSCTL.CONF"
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "2021-09-15"
+msgstr "15. September 2021"
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "File Formats"
+msgstr "Dateiformate"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:16
+msgid "sysctl.conf - sysctl preload/configuration file"
+msgstr "sysctl.conf - Vorlade-/Konfigurationsdatei für Sysctl"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:21
+msgid "B<sysctl.conf> is a simple file containing sysctl values to be read in and set by B<sysctl>. The syntax is simply as follows:"
+msgstr "B<sysctl.conf> ist eine einfache Datei, welche Sysctl-Werte enthält, die in B<sysctl> gelesen und gesetzt werden. Die Syntax ist einfach, wie folgt:"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:27
+#, no-wrap
+msgid ""
+"# comment\n"
+"; comment\n"
+msgstr ""
+"# Kommentar\n"
+"; Kommentar\n"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:29
+#, no-wrap
+msgid "token = value\n"
+msgstr "Token = Wert\n"
+
+# FIXME formatting
+#. type: Plain text
+#: ../man/sysctl.conf.5:35
+msgid "Note that blank lines are ignored, and whitespace before and after a token or value is ignored, although a value can contain whitespace within. Lines which begin with a I<#> or I<;> are considered comments and ignored."
+msgstr "Beachten Sie, dass leere Zeilen sowie Leerräume vor und nach einem Token oder einem Wert ignoriert werden, obwohl ein Token auch Leerraum enthalten kann. Zeilen, die mit einem I<#> oder I<;> beginnen, werden als Kommentarzeilen angesehen und ignoriert."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:38
+msgid "If a line begins with a single -, any attempts to set the value that fail will be ignored."
+msgstr "Falls eine Zeile mit einem einzelnen B<-> beginnt, werden alle fehlschlagenden Versuche, den Wert zu setzen, ignoriert."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:48
+msgid "As the B</etc/sysctl.conf> file is used to override default kernel parameter values, only a small number of parameters is predefined in the file. Use I</sbin/sysctl\\ -a> or follow B<sysctl>(8) to list all possible parameters. The description of individual parameters can be found in the kernel documentation."
+msgstr "Da die Datei B</etc/sysctl.conf> zur Außerkraftsetzung standardmäßiger Werte der Kernelparameter verwendet wird, ist in der Datei nur eine kleine Anzahl Parameter vordefiniert. Verwenden Sie I</sbin/sysctl\\ -a> oder folgen Sie B<sysctl>(8), um alle möglichen Parameter aufzulisten. Die Beschreibungen der einzelnen Parameter finden Sie in der Kerneldokumentation."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:51
+msgid "Maximum supported line length of the value is 4096 characters due to a limitation of I</proc> entries in Linux kernel."
+msgstr "Aufgrund einer Beschränkung der I</proc>-Einträge im Linux-Kernel ist die maximal mögliche Zeilenlänge auf 4096 Zeichen begrenzt."
+
+#. type: SH
+#: ../man/sysctl.conf.5:51
+#, no-wrap
+msgid "EXAMPLE"
+msgstr "BEISPIEL"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:61
+#, no-wrap
+msgid ""
+"# sysctl.conf sample\n"
+"#\n"
+" kernel.domainname = example.com\n"
+"; this one has a space which will be written to the sysctl!\n"
+" kernel.modprobe = /sbin/mod probe\n"
+msgstr ""
+"# sysctl.conf sample\n"
+"#\n"
+" kernel.domainname = example.com\n"
+"; this one has a space which will be written to the sysctl!\n"
+" kernel.modprobe = /sbin/mod probe\n"
+
+# FIXME comand formatting
+#. type: Plain text
+#: ../man/sysctl.conf.5:83
+msgid "The paths where B<sysctl> preload files usually exist. See also B<sysctl> option I<--system>."
+msgstr "Die Pfade, aus denen B<sysctl> Dateien vorlädt, existieren üblicherweise. Siehe auch die Option B<--system> zu B<sysctl>."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:85
+msgid "B<sysctl>(8)"
+msgstr "B<sysctl>(8)"
+
+#. type: TH
+#: ../man/tload.1:12
+#, no-wrap
+msgid "TLOAD"
+msgstr "TLOAD"
+
+#. type: Plain text
+#: ../man/tload.1:15
+msgid "tload - graphic representation of system load average"
+msgstr "tload - grafische Darstellung der durchschnittlichen Systemlast"
+
+#. type: Plain text
+#: ../man/tload.1:18
+msgid "B<tload> [I<options>] [I<tty>]"
+msgstr "B<tload> [I<Optionen>] [I<TTY>]"
+
+# FIXME process name formatting
+#. type: Plain text
+#: ../man/tload.1:25
+msgid "B<tload> prints a graph of the current system load average to the specified I<tty> (or the tty of the B<tload> process if none is specified)."
+msgstr "B<tload> gibt eine Grafik der aktuellen durchschnittlichen Systemlast an das angegebene I<Terminal> aus (oder an das Terminal des B<tload>-Prozesses, falls keines angegeben wurde)."
+
+#. type: TP
+#: ../man/tload.1:26
+#, no-wrap
+msgid "B<-s>, B<--scale> I<number>"
+msgstr "B<-s>, B<--scale> I<Zahl>"
+
+#. type: Plain text
+#: ../man/tload.1:31
+msgid "The scale option allows a vertical scale to be specified for the display (in characters between graph ticks); thus, a smaller value represents a larger scale, and vice versa."
+msgstr "ermöglicht die Angabe eines vertikalen Maßstabes für die Anzeige (in Zeichen zwischen den Diagrammeinheiten). Ein kleinerer Wert bezeichnet daher einen größeren Maßstab und umgekehrt."
+
+#. type: TP
+#: ../man/tload.1:31
+#, no-wrap
+msgid "B<-d>, B<--delay> I<seconds>"
+msgstr "B<-d>, B<--delay> I<Sekunden>"
+
+#. type: Plain text
+#: ../man/tload.1:35
+msgid "The delay sets the delay between graph updates in I<seconds>."
+msgstr "legt die Zeitspanne in I<Sekunden> zwischen den Aktualisierungen des Graphen fest."
+
+#. type: Plain text
+#: ../man/tload.1:38
+msgid "Display this help text."
+msgstr "zeigt einen Hilfetext an."
+
+#. type: Plain text
+#: ../man/tload.1:45
+msgid "I</proc/loadavg> load average information"
+msgstr "I</proc/loadavg> enthält Informationen zur Durchschnittslast"
+
+#. type: Plain text
+#: ../man/tload.1:50
+msgid "B<ps>(1), B<top>(1), B<uptime>(1), B<w>(1)"
+msgstr "B<ps>(1), B<top>(1), B<uptime>(1), B<w>(1)"
+
+#. type: Plain text
+#: ../man/tload.1:58
+msgid "The B<-d>I< delay> option sets the time argument for an B<alarm>(2); if -d 0 is specified, the alarm is set to 0, which will never send the B<SIGALRM> and update the display."
+msgstr "Die Option B<-d>I< Verzögerung> setzt das Zeitargument für B<alarm>(2). Falls -d 0 angegeben ist, wird der Alarm auf 0 gesetzt, wodurch niemals das Signal B<SIGALRM> gesendet und die Anzeige aktualisiert wird."
+
+#. type: Plain text
+#: ../man/tload.1:66
+msgid "Branko Lankester, E<.UR david@\\:ods.\\:com> David Engel E<.UE , and> E<.UR johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE .>"
+msgstr "Branko Lankester, E<.UR david@\\:ods.\\:com> David Engel E<.UE und> E<.UR johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE .>"
+
+#. type: TH
+#: ../man/uptime.1:13
+#, no-wrap
+msgid "UPTIME"
+msgstr "UPTIME"
+
+#. type: TH
+#: ../man/uptime.1:13
+#, no-wrap
+msgid "December 2012"
+msgstr "Dezember 2012"
+
+#. type: Plain text
+#: ../man/uptime.1:16
+msgid "uptime - Tell how long the system has been running."
+msgstr "uptime - feststellen, wie lange das System schon läuft"
+
+#. type: Plain text
+#: ../man/uptime.1:19
+msgid "B<uptime> [I<options>]"
+msgstr "B<uptime> [I<Optionen>]"
+
+#. type: Plain text
+#: ../man/uptime.1:24
+msgid "B<uptime> gives a one line display of the following information. The current time, how long the system has been running, how many users are currently logged on, and the system load averages for the past 1, 5, and 15 minutes."
+msgstr "B<uptime> zeigt in einer Zeile die folgenden Informationen an: die aktuelle Zeit, wie lange das System bereits läuft, die Anzahl der aktuell angemeldeten Benutzer und die durchschnittliche Auslastung des Systems in den letzten 1, 5 und 15 Minuten."
+
+#. type: Plain text
+#: ../man/uptime.1:27
+msgid "This is the same information contained in the header line displayed by B<w>(1)."
+msgstr "Dies sind dieselben Informationen, die auch in der Kopfzeile des Befehls B<w>(1) angezeigt werden."
+
+#. type: Plain text
+#: ../man/uptime.1:36
+msgid "System load averages is the average number of processes that are either in a runnable or uninterruptable state. A process in a runnable state is either using the CPU or waiting to use the CPU. A process in uninterruptable state is waiting for some I/O access, eg waiting for disk. The averages are taken over the three time intervals. Load averages are not normalized for the number of CPUs in a system, so a load average of 1 means a single CPU system is loaded all the time while on a 4 CPU system it means it was idle 75% of the time."
+msgstr "Die durchschnittliche Auslastung des Systems ist die durchschnittliche Anzahl der Prozesse, die entweder in einem lauffähigen oder nicht unterbrechbaren Zustand sind. Lauffähiger Zustand bedeutet, dass ein Prozess entweder gerade die CPU benutzt oder darauf wartet, sie benutzen zu können. Der nicht unterbrechbare Zustand bedeutet, dass ein Prozess auf einen E/A-Zugriff wartet, beispielsweise auf die Festplatte. Die Durchschnitte werden über drei Zeitintervalle gebildet. Die durchschnittliche Auslastung wird nicht auf die Anzahl der CPUs in einem System normalisiert, so dass eine Auslastung von 1 bei einem System mit einer CPU bedeutet, dass das System zu jeder Zeit voll ausgelastet ist. Auf einem System mit vier CPUs bedeutet dieselbe Auslastung, dass der Rechner während 75% der Zeit im Leerlauf war."
+
+#. type: TP
+#: ../man/uptime.1:37
+#, no-wrap
+msgid "B<-p>, B<--pretty>"
+msgstr "B<-p>, B<--pretty>"
+
+#. type: Plain text
+#: ../man/uptime.1:40
+msgid "show uptime in pretty format"
+msgstr "Uptime im schönen Format anzeigen"
+
+#. type: Plain text
+#: ../man/uptime.1:43
+msgid "display this help text"
+msgstr "Diesen Hilfetext anzeigen"
+
+#. type: TP
+#: ../man/uptime.1:43
+#, no-wrap
+msgid "B<-s>, B<--since>"
+msgstr "B<-s>, B<--since>"
+
+#. type: Plain text
+#: ../man/uptime.1:46
+msgid "system up since, in yyyy-mm-dd HH:MM:SS format"
+msgstr "System ist hochgefahren seit, im Format »yyyy-mm-dd HH:MM:SS«"
+
+#. type: Plain text
+#: ../man/uptime.1:49
+msgid "display version information and exit"
+msgstr "Versionsinformationen anzeigen und das Programm beenden."
+
+#. type: TP
+#: ../man/uptime.1:50 ../man/w.1:89
+#, no-wrap
+msgid "I</var/run/utmp>"
+msgstr "I</var/run/utmp>"
+
+#. type: Plain text
+#: ../man/uptime.1:53 ../man/w.1:92
+msgid "information about who is currently logged on"
+msgstr "Informationen darüber, wer aktuell angemeldet ist"
+
+#. type: TP
+#: ../man/uptime.1:53 ../man/w.1:92
+#, no-wrap
+msgid "I</proc>"
+msgstr "I</proc>"
+
+#. type: Plain text
+#: ../man/uptime.1:56 ../man/w.1:95
+msgid "process information"
+msgstr "Prozessinformation"
+
+#. type: Plain text
+#: ../man/uptime.1:66
+msgid "B<uptime> was written by E<.UR greenfie@gauss.\\:rutgers.\\:edu> Larry Greenfield E<.UE> and E<.UR johnsonm@sunsite.\\:unc.\\:edu> Michael K. Johnson E<.UE>"
+msgstr "B<uptime> wurde von E<.UR greenfie@gauss.\\:rutgers.\\:edu> Larry Greenfield E<.UE> und E<.UR johnsonm@sunsite.\\:unc.\\:edu> Michael K. Johnson E<.UE> geschrieben."
+
+#. type: Plain text
+#: ../man/uptime.1:71
+msgid "B<ps>(1), B<top>(1), B<utmp>(5), B<w>(1)"
+msgstr "B<ps>(1), B<top>(1), B<utmp>(5), B<w>(1)"
+
+#. type: TH
+#: ../man/vmstat.8:13
+#, no-wrap
+msgid "VMSTAT"
+msgstr "VMSTAT"
+
+#. type: TH
+#: ../man/vmstat.8:13
+#, no-wrap
+msgid "2023-01-18"
+msgstr "18. Januar 2023"
+
+#. type: Plain text
+#: ../man/vmstat.8:16
+msgid "vmstat - Report virtual memory statistics"
+msgstr "vmstat - Statistiken zum virtuellen Speicher anzeigen"
+
+#. type: Plain text
+#: ../man/vmstat.8:20
+msgid "B<vmstat> [options] [I<delay> [I<count>]]"
+msgstr "B<vmstat> [Optionen] [I<Verzögerung> [I<Anzahl>]]"
+
+#. type: Plain text
+#: ../man/vmstat.8:24
+msgid "B<vmstat> reports information about processes, memory, paging, block IO, traps, disks and cpu activity."
+msgstr "B<vmstat> zeigt Informationen zu Prozessen, Speicher, Paging, Block-E/A, Traps, Laufwerken und CPU-Aktivität an."
+
+#. type: Plain text
+#: ../man/vmstat.8:29
+msgid "The first report produced gives averages since the last reboot. Additional reports give information on a sampling period of length I<delay>. The process and memory reports are instantaneous in either case."
+msgstr "Der erste erzeugte Bericht zeigt Durchschnittswerte seit dem letzten Neustart des Systems an. Weitere erzeugte Berichte beziehen diese Informationen auf ein Zeitintervall, das in I<Verzögerung> definiert ist. Die Berichte zu Prozessen und Speicher werden unverzüglich ausgegeben."
+
+#. type: TP
+#: ../man/vmstat.8:30
+#, no-wrap
+msgid "I<delay>"
+msgstr "I<Verzögerung>"
+
+#. type: Plain text
+#: ../man/vmstat.8:37
+msgid "The I<delay> between updates in seconds. If no I<delay> is specified, only one report is printed with the average values since boot."
+msgstr "gibt die I<Verzögerung> zwischen Aktualisierungen in Sekunden an. Falls keine I<Verzögerung> angegeben ist, wird nur ein Bericht ausgegeben, der die Durchschnittswerte seit dem Systemstart enthält."
+
+#. type: TP
+#: ../man/vmstat.8:37
+#, no-wrap
+msgid "I<count>"
+msgstr "I<Anzahl>"
+
+#. type: Plain text
+#: ../man/vmstat.8:44
+msgid "Number of updates. In absence of I<count>, when I<delay> is defined, default is infinite."
+msgstr "gibt die Anzahl der Aktualisierungen an. Wenn die I<Anzahl> nicht angegeben, aber eine I<Verzögerung> definiert ist, dann ist die Anzahl der Aktualisierungen unendlich."
+
+#. type: TP
+#: ../man/vmstat.8:44
+#, no-wrap
+msgid "B<-a>, B<--active>"
+msgstr "B<-a>, B<--active>"
+
+#. type: Plain text
+#: ../man/vmstat.8:47
+msgid "Display active and inactive memory, given a 2.5.41 kernel or better."
+msgstr "zeigt aktiven und inaktiven Speicher an. Dafür ist ein Kernel 2.5.41 oder neuer erforderlich."
+
+#. type: TP
+#: ../man/vmstat.8:47
+#, no-wrap
+msgid "B<-f>, B<--forks>"
+msgstr "B<-f>, B<--forks>"
+
+#. type: Plain text
+#: ../man/vmstat.8:55
+msgid "The B<-f> switch displays the number of forks since boot. This includes the fork, vfork, and clone system calls, and is equivalent to the total number of tasks created. Each process is represented by one or more tasks, depending on thread usage. This display does not repeat."
+msgstr "Der Schalter B<-f> zeigt die Anzahl der Forks seit dem Systemstart an. Dies bezieht die Systemaufrufe »fork«, »vfork« und »clone« ein und entspricht der Gesamtzahl der erzeugten Tasks. Jeder Prozess wird durch ein oder mehrere Tasks repräsentiert, abhängig von der Thread-Nutzung. Diese Anzeige wird nicht wiederholt."
+
+#. type: TP
+#: ../man/vmstat.8:55
+#, no-wrap
+msgid "B<-m>, B<--slabs>"
+msgstr "B<-m>, B<--slabs>"
+
+#. type: Plain text
+#: ../man/vmstat.8:58
+msgid "Displays slabinfo."
+msgstr "zeigt Slabinfo an."
+
+#. type: TP
+#: ../man/vmstat.8:58
+#, no-wrap
+msgid "B<-n>, B<--one-header>"
+msgstr "B<-n>, B<--one-header>"
+
+#. type: Plain text
+#: ../man/vmstat.8:61
+msgid "Display the header only once rather than periodically."
+msgstr "zeigt den Header nur einmalig anstatt periodisch an."
+
+#. type: TP
+#: ../man/vmstat.8:61
+#, no-wrap
+msgid "B<-s>, B<--stats>"
+msgstr "B<-s>, B<--stats>"
+
+#. type: Plain text
+#: ../man/vmstat.8:65
+msgid "Displays a table of various event counters and memory statistics. This display does not repeat."
+msgstr "zeigt eine Tabelle verschiedener Ereigniszähler und Speicherstatistiken an. Diese Anzeige wird nicht wiederholt."
+
+#. type: TP
+#: ../man/vmstat.8:65
+#, no-wrap
+msgid "B<-d>, B<--disk>"
+msgstr "B<-d>, B<--disk>"
+
+#. type: Plain text
+#: ../man/vmstat.8:68
+msgid "Report disk statistics (2.5.70 or above required)."
+msgstr "zeigt Plattenstatistiken an (Kernel 2.5.70 oder neuer erforderlich)."
+
+#. type: TP
+#: ../man/vmstat.8:68
+#, no-wrap
+msgid "B<-D>, B<--disk-sum>"
+msgstr "B<-D>, B<--disk-sum>"
+
+#. type: Plain text
+#: ../man/vmstat.8:71
+msgid "Report some summary statistics about disk activity."
+msgstr "zeigt eine statistische Zusammenfassung der Plattenaktivitäten an."
+
+#. type: TP
+#: ../man/vmstat.8:71
+#, no-wrap
+msgid "B<-p>, B<--partition> I<device>"
+msgstr "B<-p>, B<--partition> I<Gerät>"
+
+#. type: Plain text
+#: ../man/vmstat.8:74
+msgid "Detailed statistics about partition (2.5.70 or above required)."
+msgstr "zeigt detaillierte Statistiken zu Partitionen an (Kernel 2.5.70 oder neuer erforderlich)."
+
+#. type: TP
+#: ../man/vmstat.8:74
+#, no-wrap
+msgid "B<-S>, B<--unit> I<character>"
+msgstr "B<-S>, B<--unit> I<Zeichen>"
+
+#. type: Plain text
+#: ../man/vmstat.8:86
+msgid "Switches outputs between 1000 (I<k>), 1024 (I<K>), 1000000 (I<m>), or 1048576 (I<M>) bytes. Note this does not change the swap (si/so) or block (bi/bo) fields."
+msgstr "wechselt die Einheit der Ausgabe zwischen 1000 (I<k>), 1024 (I<K>), 1000000 (I<m>) oder 1048576 (I<M>) Byte. Beachten Sie, dass diese Änderung die Swap- (si/so) oder Block-Felder (bi/bo) nicht beeinflusst, die stets in Blöcken gemessen werden."
+
+#. type: TP
+#: ../man/vmstat.8:86
+#, no-wrap
+msgid "B<-t>, B<--timestamp>"
+msgstr "B<-t>, B<--timestamp>"
+
+#. type: Plain text
+#: ../man/vmstat.8:89
+msgid "Append timestamp to each line"
+msgstr "hängt an jede Zeile einen Zeitstempel an."
+
+#. type: Plain text
+#: ../man/vmstat.8:94
+msgid "Wide output mode (useful for systems with higher amount of memory, where the default output mode suffers from unwanted column breakage). The output is wider than 80 characters per line."
+msgstr "Breiter Ausgabemodus. Dieser ist sinnvoll, wenn der vorgegebene Ausgabemodus unerwünschte Umbrüche in den Spalten enthält, was für Systeme mit einer größeren Menge an Speicher vorkommt. Die Ausgabe ist breiter als 80 Zeichen pro Zeile."
+
+#. type: TP
+#: ../man/vmstat.8:94
+#, no-wrap
+msgid "B<-y>, B<--no-first>"
+msgstr "B<-y>, B<--no-first>"
+
+#. type: Plain text
+#: ../man/vmstat.8:97
+msgid "Omits first report with statistics since system boot."
+msgstr "überspringt den ersten Bericht mit Statistiken seit dem Systemstart."
+
+#. type: SH
+#: ../man/vmstat.8:104
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR VM MODE"
+msgstr "FELDBESCHREIBUNG FÃœR VM-MODUS"
+
+#. type: SS
+#: ../man/vmstat.8:105
+#, no-wrap
+msgid "Procs"
+msgstr "Prozesse"
+
+#. type: Plain text
+#: ../man/vmstat.8:109
+#, no-wrap
+msgid ""
+"r: The number of runnable processes (running or waiting for run time).\n"
+"b: The number of processes blocked waiting for I/O to complete.\n"
+msgstr ""
+"r: die Anzahl der ausführbaren Prozesse (laufend oder auf Ausführungszeit wartend).\n"
+"b: die Anzahl der blockierten Prozesse, auf Ein-/Ausgaben zum Abschluss wartend.\n"
+
+#. type: SS
+#: ../man/vmstat.8:110
+#, no-wrap
+msgid "Memory"
+msgstr "Speicher"
+
+#. type: Plain text
+#: ../man/vmstat.8:112 ../man/vmstat.8:122
+msgid "These are affected by the B<--unit> option."
+msgstr "Diese werden von der Option B<--unit> beeinflusst."
+
+# FIXME formatting
+#. type: Plain text
+#: ../man/vmstat.8:119
+#, no-wrap
+msgid ""
+"swpd: the amount of swap memory used.\n"
+"free: the amount of idle memory.\n"
+"buff: the amount of memory used as buffers.\n"
+"cache: the amount of memory used as cache.\n"
+"inact: the amount of inactive memory. (B<-a> option)\n"
+"active: the amount of active memory. (B<-a> option)\n"
+msgstr ""
+"swpd: die Menge des verwendeten Auslagerungsspeichers.\n"
+"free: die Menge des untätigen Speichers.\n"
+"buff: die Menge des als Puffer verwendeten Speichers.\n"
+"cache: die Menge des als Zwischenspeicher verwendeten Speichers.\n"
+"inact: die Menge des inaktiven Speichers (Option B<-a>)\n"
+"active: die Menge des aktiven Speichers (Option B<-a>)\n"
+
+#. type: SS
+#: ../man/vmstat.8:120
+#, no-wrap
+msgid "Swap"
+msgstr "Swap"
+
+#. type: Plain text
+#: ../man/vmstat.8:125
+#, no-wrap
+msgid ""
+"si: Amount of memory swapped in from disk (/s).\n"
+"so: Amount of memory swapped to disk (/s).\n"
+msgstr ""
+"si: Speichermenge aus dem Auslagerungsspeicher geholt (/s).\n"
+"so: Speichermenge in den Auslagerungsspeicher geschrieben (/s).\n"
+
+#. type: SS
+#: ../man/vmstat.8:126 ../man/vmstat.8:161
+#, no-wrap
+msgid "IO"
+msgstr "E/A"
+
+#. type: Plain text
+#: ../man/vmstat.8:130
+#, no-wrap
+msgid ""
+"bi: Kibibyte received from a block device (KiB/s).\n"
+"bo: Kibibyte sent to a block device (KiB/s).\n"
+msgstr ""
+"bi: von einem Blockgerät empfangene Kibibyte (KiB/s).\n"
+"bo: an ein Blockgerät gesendete Kibibyte (KiB/s).\n"
+
+#. type: SS
+#: ../man/vmstat.8:131
+#, no-wrap
+msgid "System"
+msgstr "System"
+
+#. type: Plain text
+#: ../man/vmstat.8:135
+#, no-wrap
+msgid ""
+"in: The number of interrupts per second, including the clock.\n"
+"cs: The number of context switches per second.\n"
+msgstr ""
+"in: Anzahl der Interrupts pro Sekunde, einschließlich der Uhr.\n"
+"cs: Anzahl der Kontext-Switches pro Sekunde.\n"
+
+#. type: ds PU
+#: ../man/vmstat.8:136 ../man/top.1:37
+#, no-wrap
+msgid "CPU"
+msgstr "CPU"
+
+#. type: Plain text
+#: ../man/vmstat.8:138
+msgid "These are percentages of total CPU time."
+msgstr "Dies sind Prozentsätze der gesamten CPU-Zeit."
+
+#. type: Plain text
+#: ../man/vmstat.8:145
+#, no-wrap
+msgid ""
+"us: Time spent running non-kernel code. (user time, including nice time)\n"
+"sy: Time spent running kernel code. (system time)\n"
+"id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.\n"
+"wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle.\n"
+"st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.\n"
+"gu: Time spent running KVM guest code (guest time, including guest nice).\n"
+msgstr ""
+"us: Verbrauchte Zeit für Nicht-Kernel-Code (Benutzerzeit, einschließlich Nice-Zeit)\n"
+"sy: Verbrauchte Zeit für Kernel-Code (Systemzeit)\n"
+"id: Verbrauchte Zeit für Leerlauf. Vor Linux 2.5.41 bezieht dies die E/A-Wartezeit ein.\n"
+"wa: Verbrauchte Zeit für Warten auf E/A. Vor Linux 2.5.41 bezieht dies die Leerlaufzeit ein.\n"
+"st: Von einer virtuellen Maschine abgezweigte Zeit. Vor Linux 2.6.11 ist diese unbekannt.\n"
+"gu: Verbrauchte Zeit für KVM-Gastcode (Gastzeit, einschließlich Gast-Nice).\n"
+
+#. type: SH
+#: ../man/vmstat.8:146
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR DISK MODE"
+msgstr "FELDBESCHREIBUNG FÃœR PlattenMODUS"
+
+#. type: SS
+#: ../man/vmstat.8:147
+#, no-wrap
+msgid "Reads"
+msgstr "Lesevorgänge"
+
+#. type: Plain text
+#: ../man/vmstat.8:153
+#, no-wrap
+msgid ""
+"total: Total reads completed successfully\n"
+"merged: grouped reads (resulting in one I/O)\n"
+"sectors: Sectors read successfully\n"
+"ms: milliseconds spent reading\n"
+msgstr ""
+"total: Gesamtzahl erfolgreich abgeschlossener Lesevorgänge\n"
+"merged: Gruppierte Lesevorgänge (resultierend in einem E/A-Vorgang)\n"
+"sectors: Erfolgreich gelesene Sektoren\n"
+"ms: Zeit für Lesevorgänge in Millisekunden\n"
+
+#. type: SS
+#: ../man/vmstat.8:154
+#, no-wrap
+msgid "Writes"
+msgstr "Schreibvorgänge"
+
+#. type: Plain text
+#: ../man/vmstat.8:160
+#, no-wrap
+msgid ""
+"total: Total writes completed successfully\n"
+"merged: grouped writes (resulting in one I/O)\n"
+"sectors: Sectors written successfully\n"
+"ms: milliseconds spent writing\n"
+msgstr ""
+"total: Gesamtzahl erfolgreich abgeschlossener Schreibvorgänge\n"
+"merged: Gruppierte Schreibvorgänge (resultierend in einem E/A-Vorgang)\n"
+"sectors: Erfolgreich geschriebene Sektoren\n"
+"ms: Zeit für Schreibvorgänge in Millisekunden\n"
+
+#. type: Plain text
+#: ../man/vmstat.8:165
+#, no-wrap
+msgid ""
+"cur: I/O in progress\n"
+"s: seconds spent for I/O\n"
+msgstr ""
+"cur: E/A in Verarbeitung\n"
+"s: für E/A verbrauchte Sekunden\n"
+
+#. type: SH
+#: ../man/vmstat.8:166
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR DISK PARTITION MODE"
+msgstr "FELDBESCHREIBUNG FÃœR PLATTENPARTITIONSMODUS"
+
+#. type: Plain text
+#: ../man/vmstat.8:172
+#, no-wrap
+msgid ""
+"reads: Total number of reads issued to this partition\n"
+"read sectors: Total read sectors for partition\n"
+"writes : Total number of writes issued to this partition\n"
+"requested writes: Total number of write requests made for partition\n"
+msgstr ""
+"reads: Gesamtzahl der Lesevorgänge auf dieser Partition\n"
+"read sectors: Insgesamt gelesene Sektoren auf dieser Partition\n"
+"writes : Gesamtzahl der Schreibvorgänge auf dieser Partition\n"
+"requested writes: Gesamtzahl der für diese Partition\n"
+" angeforderten Schreibvorgänge\n"
+
+#. type: SH
+#: ../man/vmstat.8:173
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR SLAB MODE"
+msgstr "FELDBESCHREIBUNG FÃœR SLAB-MODUS"
+
+#. type: Plain text
+#: ../man/vmstat.8:177
+msgid "Slab mode shows statistics per slab, for more information about this information see B<slabinfo>(5)"
+msgstr "Der Slab-Modus zeigt Statistiken pro Slab an; weitere Informationen hierzu finden Sie in B<slabinfo>(5)."
+
+#. type: Plain text
+#: ../man/vmstat.8:184
+#, no-wrap
+msgid ""
+"cache: Cache name\n"
+"num: Number of currently active objects\n"
+"total: Total number of available objects\n"
+"size: Size of each object\n"
+"pages: Number of pages with at least one active object\n"
+msgstr ""
+"cache: Zwischenspeichername\n"
+"num: Anzahl der gegenwärtig aktiven Objekte\n"
+"total: Gesamtzahl der verfügbaren Objekte\n"
+"size: Größe jedes Objekts\n"
+"pages: Anzahl der Seiten mit mindestens einem aktiven Objekt\n"
+
+#. type: Plain text
+#: ../man/vmstat.8:191
+msgid "B<vmstat> requires read access to files under I</proc>. The B<-m> requires read access to I</proc/slabinfo> which may not be available to standard users. Mount options for I</proc> such as I<subset=pid> may also impact what is visible."
+msgstr "B<vmstat> benötigt Lesezugriff auf Dateien unterhalb von I</proc>. Die Option B<-m> erfordert Lesezugriff auf I</proc/slabinfo>, was bei Standardbenutzern unter Umständen nicht der Fall ist. Auch die Einhängeoptionen für I</proc>, wie beispielsweise I<subset=PID>, könnten sich darauf auswirken, was tatsächlich angezeigt wird."
+
+#. type: Plain text
+#: ../man/vmstat.8:199
+msgid "B<free>(1), B<iostat>(1), B<mpstat>(1), B<ps>(1), B<sar>(1), B<top>(1), B<slabinfo>(5)"
+msgstr "B<free>(1), B<iostat>(1), B<mpstat>(1), B<ps>(1), B<sar>(1), B<top>(1), B<slabinfo>(5)"
+
+#. type: TP
+#: ../man/w.1:14 ../man/ps.1:852
+#, no-wrap
+msgid "W"
+msgstr "W"
+
+#. type: TH
+#: ../man/w.1:14
+#, no-wrap
+msgid "2023-01-15"
+msgstr "15. Januar 2023"
+
+#. type: Plain text
+#: ../man/w.1:17
+msgid "w - Show who is logged on and what they are doing."
+msgstr "w - anzeigen, welche Benutzer angemeldet sind und was sie machen."
+
+#. type: Plain text
+#: ../man/w.1:20
+msgid "B<w> [I<options>] [I<user>]"
+msgstr "B<w> [I<Optionen>] [I<Benutzer>]"
+
+#. type: Plain text
+#: ../man/w.1:26
+msgid "B<w> displays information about the users currently on the machine, and their processes. The header shows, in this order, the current time, how long the system has been running, how many users are currently logged on, and the system load averages for the past 1, 5, and 15 minutes."
+msgstr "B<w> zeigt Informationen über die gerade angemeldeten Benutzer und ihre Prozesse an. Die Kopfzeile enthält in dieser Reihenfolge die aktuelle Zeit, die Laufzeit des Systems, wie viele Benutzer gerade angemeldet sind und die durchschnittliche Systemlast der letzten 1, 5 und 15 Minuten."
+
+#. type: Plain text
+#: ../man/w.1:30
+msgid "The following entries are displayed for each user: login name, the tty name, the remote host, login time, idle time, JCPU, PCPU, and the command line of their current process."
+msgstr "Die folgenden Daten werden für jeden Benutzer angezeigt: Der Anmeldename, der TTY-Name, der ferne Rechner, die Anmeldezeit, die Leerlaufzeit, JCPU, PCPU und die Befehlszeile des laufenden Prozesses."
+
+#. type: Plain text
+#: ../man/w.1:34
+msgid "The JCPU time is the time used by all processes attached to the tty. It does not include past background jobs, but does include currently running background jobs."
+msgstr "Die JCPU-Zeit ist die Zeit, die von allen Prozessen genutzt wurde, die zu dem jeweiligen Terminal gehören. Sie enthält keine abgeschlossenen Hintergrund-Aufträge, jedoch die derzeit laufenden Hintergrund-Aufträge."
+
+#. type: Plain text
+#: ../man/w.1:37
+msgid "The PCPU time is the time used by the current process, named in the \"what\" field."
+msgstr "Die PCPU-Zeit ist die Zeit, die vom derzeit laufenden Prozess bisher genutzt wurde und im Feld »what« benannt ist."
+
+#. type: SH
+#: ../man/w.1:37
+#, no-wrap
+msgid "COMMAND-LINE OPTIONS"
+msgstr "BEFEHLSZEILENOPTIONEN"
+
+#. type: TP
+#: ../man/w.1:38
+#, no-wrap
+msgid "B<-h>, B<--no-header>"
+msgstr "B<-h>, B<--no-header>"
+
+#. type: Plain text
+#: ../man/w.1:41
+msgid "Don't print the header."
+msgstr "gibt keine Kopfzeile aus."
+
+#. type: TP
+#: ../man/w.1:41
+#, no-wrap
+msgid "B<-u>, B<--no-current>"
+msgstr "B<-u>, B<--no-current>"
+
+# FIXME command formatting
+#. type: Plain text
+#: ../man/w.1:50
+msgid "Ignores the username while figuring out the current process and cpu times. To demonstrate this, do a B<su> and do a B<w> and a B<w -u>."
+msgstr "ignoriert den Benutzernamen, während der aktuelle Prozess und die CPU-Zeiten ermittelt werden. Probieren Sie die Option aus, indem Sie zunächst B<su>, danach B<w> und B<w -u> eingeben."
+
+#. type: TP
+#: ../man/w.1:50
+#, no-wrap
+msgid "B<-s>, B<--short>"
+msgstr "B<-s>, B<--short>"
+
+#. type: Plain text
+#: ../man/w.1:53
+msgid "Use the short format. Don't print the login time, JCPU or PCPU times."
+msgstr "verwendet das Kurzformat. Die Anmeldezeit, die JCPU- und die PCPU-Zeit werden nicht ausgegeben."
+
+#. type: TP
+#: ../man/w.1:53
+#, no-wrap
+msgid "B<-f>, B<--from>"
+msgstr "B<-f>, B<--from>"
+
+#. type: Plain text
+#: ../man/w.1:63
+msgid "Toggle printing the B<from> (remote hostname) field. The default as released is for the B<from> field to not be printed, although your system administrator or distribution maintainer may have compiled a version in which the B<from> field is shown by default."
+msgstr "schaltet die Anzeige des B<from>-Feldes (ferner Rechnername) ein oder aus. Standardmäßig wird das B<from>-Feld nicht angezeigt. Allerdings könnte Ihr Systemadministrator oder Ihr Distributor eine Version kompiliert haben, in der das B<from>-Feld standardmäßig angezeigt wird."
+
+#. type: TP
+#: ../man/w.1:66
+#, no-wrap
+msgid "B<-i>, B<--ip-addr>"
+msgstr "B<-i>, B<--ip-addr>"
+
+#. type: Plain text
+#: ../man/w.1:69
+msgid "Display IP address instead of hostname for B<from> field."
+msgstr "zeigt die IP-Adresse anstelle des Rechnernamens im Feld B<from> an."
+
+#. type: TP
+#: ../man/w.1:69
+#, no-wrap
+msgid "B<-p>, B<--pids>"
+msgstr "B<-p>, B<--pids>"
+
+#. type: Plain text
+#: ../man/w.1:72
+msgid "Display pid of the login process/the \"what\" process in the \"what\" field."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:75
+#, no-wrap
+msgid "B<-o>, B<--old-style>"
+msgstr "B<-o>, B<--old-style>"
+
+#. type: Plain text
+#: ../man/w.1:78
+msgid "Old style output. Prints blank space for idle times less than one minute."
+msgstr "aktiviert die Ausgabe im alten Stil. Für Leerlaufzeiten unter einer Minute werden Leerräume ausgegeben."
+
+#. type: TP
+#: ../man/w.1:78
+#, no-wrap
+msgid "B<user >"
+msgstr "B<Benutzer >"
+
+#. type: Plain text
+#: ../man/w.1:81
+msgid "Show information about the specified user only."
+msgstr "zeigt Informationen nur für den angegebenen Benutzer an."
+
+#. type: SH
+#: ../man/w.1:81 ../man/watch.1:133
+#, no-wrap
+msgid "ENVIRONMENT"
+msgstr "UMGEBUNGSVARIABLEN"
+
+#. type: TP
+#: ../man/w.1:82
+#, no-wrap
+msgid "PROCPS_USERLEN"
+msgstr "PROCPS_USERLEN"
+
+#. type: Plain text
+#: ../man/w.1:85
+msgid "Override the default width of the username column. Defaults to 8."
+msgstr "setzt die vorgegebene Breite der USER-Spalte außer Kraft. Standardmäßig 8."
+
+#. type: TP
+#: ../man/w.1:85
+#, no-wrap
+msgid "PROCPS_FROMLEN"
+msgstr "PROCPS_FROMLEN"
+
+#. type: Plain text
+#: ../man/w.1:88
+msgid "Override the default width of the from column. Defaults to 16."
+msgstr "setzt die vorgegebene Breite der From-Spalte außer Kraft. Standardmäßig 16."
+
+#. type: Plain text
+#: ../man/w.1:102
+msgid "B<free>(1), B<ps>(1), B<top>(1), B<uptime>(1), B<utmp>(5), B<who>(1)"
+msgstr "B<free>(1), B<ps>(1), B<top>(1), B<uptime>(1), B<utmp>(5), B<who>(1)"
+
+#. type: Plain text
+#: ../man/w.1:112
+msgid "B<w> was re-written almost entirely by Charles Blake, based on the version by E<.UR greenfie@\\:gauss.\\:rutgers.\\:edu> Larry Greenfield E<.UE> and E<.UR johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE>"
+msgstr "B<w> wurde von Charles Blake fast vollständig neu geschrieben, basierend auf der Version von E<.UR greenfie@\\:gauss.\\:rutgers.\\:edu> Larry Greenfield E<.UE> und E<.UR johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE>"
+
+#. type: TH
+#: ../man/watch.1:13
+#, no-wrap
+msgid "WATCH"
+msgstr "WATCH"
+
+#. type: TH
+#: ../man/watch.1:13
+#, no-wrap
+msgid "2023-01-17"
+msgstr "17. Januar 2023"
+
+#. type: Plain text
+#: ../man/watch.1:16
+msgid "watch - execute a program periodically, showing output fullscreen"
+msgstr "watch - ein Programm periodisch ausführen, die Ausgabe im Vollbildmodus anzeigen"
+
+#. type: Plain text
+#: ../man/watch.1:19
+msgid "B<watch> [I<options>] I<command>"
+msgstr "B<watch> [I<Optionen>] I<Befehl>"
+
+#. type: Plain text
+#: ../man/watch.1:26
+msgid "B<watch> runs I<command> repeatedly, displaying its output and errors (the first screenfull). This allows you to watch the program output change over time. By default, I<command> is run every 2 seconds and B<watch> will run until interrupted."
+msgstr "B<watch> führt den I<Befehl> wiederholt aus, wobei dessen Ausgabe und Fehler angezeigt werden (der erste Bildschirminhalt). Dies ermöglicht Ihnen die Überwachung der Änderungen der Programmausgaben über längere Zeit. Standardmäßig wird der I<Befehl> alle zwei Sekunden ausgeführt und B<watch> läuft, bis es unterbrochen wird."
+
+#. type: TP
+#: ../man/watch.1:27
+#, no-wrap
+msgid "B<-b>, B<--beep>"
+msgstr "B<-b>, B<--beep>"
+
+#. type: Plain text
+#: ../man/watch.1:30
+msgid "Beep if command has a non-zero exit."
+msgstr "lässt die Systemglocke ertönen, falls ein Befehl sich mit einem von Null verschiedenen Rückgabewert beendet."
+
+#. type: TP
+#: ../man/watch.1:30
+#, no-wrap
+msgid "B<-c>, B<--color>"
+msgstr "B<-c>, B<--color>"
+
+#. type: Plain text
+#: ../man/watch.1:33
+msgid "Interpret ANSI color and style sequences."
+msgstr "interpretiert ANSI-Farb- und -Stilsequenzen."
+
+#. type: TP
+#: ../man/watch.1:33
+#, no-wrap
+msgid "B<-C>, B<--no-color>"
+msgstr "B<-C>, B<--no-color>"
+
+#. type: Plain text
+#: ../man/watch.1:36
+msgid "Do not interpret ANSI color and style sequences."
+msgstr "interpretiert keine ANSI-Farb- und -Stilsequenzen."
+
+#. type: TP
+#: ../man/watch.1:36
+#, no-wrap
+msgid "B<-d>, B<--differences>[=I<permanent>]"
+msgstr "B<-d>, B<--differences>[=I<permanent>]"
+
+# FIXME Formulierung des zweiten Satzes
+#. type: Plain text
+#: ../man/watch.1:42
+msgid "Highlight the differences between successive updates. If the optional I<permanent> argument is specified then B<watch> will show all changes since the first iteration."
+msgstr "hebt die Unterschiede zwischen aufeinander folgenden Aktualisierungen hervor. Falls das optionale Argument I<permanent> angegeben ist, dann zeigt B<watch> alles, was sich seit dem ersten Durchlauf mindestens einmal geändert hat."
+
+#. type: TP
+#: ../man/watch.1:42
+#, no-wrap
+msgid "B<-e>, B<--errexit>"
+msgstr "B<-e>, B<--errexit>"
+
+#. type: Plain text
+#: ../man/watch.1:45
+msgid "Freeze updates on command error, and exit after a key press."
+msgstr "friert die Aktualisierungen bei Fehlern in der Befehlsausführung ein und bricht nach einem Tastendruck ab."
+
+#. type: TP
+#: ../man/watch.1:45
+#, no-wrap
+msgid "B<-g>, B<--chgexit>"
+msgstr "B<-g>, B<--chgexit>"
+
+#. type: Plain text
+#: ../man/watch.1:50
+msgid "Exit when the output of I<command> changes."
+msgstr "beendet, wenn sich die Ausgabe des I<Befehls> ändert."
+
+#. type: TP
+#: ../man/watch.1:50
+#, no-wrap
+msgid "B<-n>, B<--interval> I<seconds>"
+msgstr "B<-n>, B<--interval> I<Sekunden>"
+
+# FIXME formatting
+#. type: Plain text
+#: ../man/watch.1:56
+msgid "Specify update interval. The command will not allow quicker than 0.1 second interval, in which the smaller values are converted. Both '.' and ',' work for any locales. The B<WATCH_INTERVAL> environment can be used to persistently set a non-default interval (following the same rules and formatting)."
+msgstr "gibt das Aktualisierungsintervall an. Der Befehl erlaubt kein Intervall kleiner als 0,1 Sekunden; kleinere Werte werden auf diesen Wert geändert. In einigen Locales funktionieren sowohl »,« als auch ».«. Mit der Umgebungsvariable B<WATCH_INTERVAL> können Sie ein Nicht-Standard-Intervall dauerhaft setzen (den gleichen Regeln und der gleichen Formatierung folgend)."
+
+#. type: TP
+#: ../man/watch.1:56
+#, no-wrap
+msgid "B<-p>, B<--precise>"
+msgstr "B<-p>, B<--precise>"
+
+#. type: Plain text
+#: ../man/watch.1:69
+msgid "Make B<watch> attempt to run I<command> every B<--interval> I<seconds>. Try it with B<ntptime> (if present) and notice how the fractional seconds stays (nearly) the same, as opposed to normal mode where they continuously increase."
+msgstr "lässt B<watch> versuchen, diesen I<Befehl> im angegebenen B<--interval> in I<Sekunden> auszuführen. Versuchen Sie es mit B<ntptime> (falls verfügbar) und beachten Sie, wie die Sekundenbruchteile (nahezu) gleich bleiben, während sie im normalen Modus fortwährend größer werden."
+
+#. type: TP
+#: ../man/watch.1:69
+#, no-wrap
+msgid "B<-q>, B<--equexit> E<lt>cyclesE<gt>"
+msgstr "B<-q>, B<--equexit> E<lt>DurchläufeE<gt>"
+
+#. type: Plain text
+#: ../man/watch.1:74
+msgid "Exit when output of I<command> does not change for the given number of cycles."
+msgstr "beendet, wenn sich die Ausgabe des I<Befehls> über die angegebene Anzahl durchläufe nicht ändert."
+
+#. type: TP
+#: ../man/watch.1:74
+#, no-wrap
+msgid "B<-r>, B<--no-rerun>"
+msgstr "B<-r>, B<--no-rerun>"
+
+#. type: Plain text
+#: ../man/watch.1:78
+msgid "Do not run the program on terminal resize, the output of the program will re-appear at the next regular run time."
+msgstr "führt das Programm bei Änderungen der Terminalgröße nicht erneut aus; die Ausgabe des Programms erscheint wieder zum nächsten regulären Ausführungszeitpunkt."
+
+#. type: TP
+#: ../man/watch.1:78
+#, no-wrap
+msgid "B<-t>, B<--no-title>"
+msgstr "B<-t>, B<--no-title>"
+
+#. type: Plain text
+#: ../man/watch.1:82
+msgid "Turn off the header showing the interval, command, and current time at the top of the display, as well as the following blank line."
+msgstr "deaktiviert die Anzeige der Kopfzeile, in der Intervall, Befehl und die aktuelle Zeit oben in der Anzeige sowie eine nachfolgende Leerzeile dargestellt werden."
+
+#. type: TP
+#: ../man/watch.1:82
+#, no-wrap
+msgid "B<-w>, B<--no-wrap>"
+msgstr "B<-w>, B<--no-wrap>"
+
+#. type: Plain text
+#: ../man/watch.1:85
+msgid "Turn off line wrapping. Long lines will be truncated instead of wrapped to the next line."
+msgstr "deaktiviert den Zeilenumbruch. Lange Zeilen werden gekürzt, anstatt sie in die nächste Zeile umzubrechen."
+
+#. type: TP
+#: ../man/watch.1:85
+#, no-wrap
+msgid "B<-x>, B<--exec>"
+msgstr "B<-x>, B<--exec>"
+
+#. type: Plain text
+#: ../man/watch.1:94
+msgid "Pass I<command> to B<exec>(2) instead of B<sh -c> which reduces the need to use extra quoting to get the desired effect."
+msgstr "übergibt den I<Befehl> an B<exec>(2) anstelle von B<sh -c>, was das Setzen von Anführungszeichen unnötig macht, um den gewünschten Effekt zu erzielen."
+
+#. type: TP
+#: ../man/watch.1:97
+#, no-wrap
+msgid "B<-v>, B<--version>"
+msgstr "B<-v>, B<--version>"
+
+#. type: Plain text
+#: ../man/watch.1:110
+msgid "Various failures."
+msgstr "Verschiedene Fehlschläge."
+
+#. type: TP
+#: ../man/watch.1:110
+#, no-wrap
+msgid "B<2>"
+msgstr "B<2>"
+
+#. type: Plain text
+#: ../man/watch.1:113
+msgid "Forking the process to watch failed."
+msgstr "Forken des zu überwachenden Prozesses ist fehlgeschlagen."
+
+#. type: TP
+#: ../man/watch.1:113
+#, no-wrap
+msgid "B<3>"
+msgstr "B<3>"
+
+#. type: Plain text
+#: ../man/watch.1:116
+msgid "Replacing child process stdout with write side pipe failed."
+msgstr "Ersetzen der Standardausgabe des Kindprozesses von der Schreibseite der Pipe aus ist fehlgeschlagen."
+
+#. type: TP
+#: ../man/watch.1:116
+#, no-wrap
+msgid "B<4>"
+msgstr "B<4>"
+
+#. type: Plain text
+#: ../man/watch.1:119
+msgid "Command execution failed."
+msgstr "Befehlsausführung ist fehlgeschlagen."
+
+#. type: TP
+#: ../man/watch.1:119
+#, no-wrap
+msgid "B<5>"
+msgstr "B<5>"
+
+#. type: Plain text
+#: ../man/watch.1:122
+msgid "Closing child process write pipe failed."
+msgstr "Schließen der Schreib-Pipe des Kindprozesses ist fehlgeschlagen."
+
+#. type: TP
+#: ../man/watch.1:122
+#, no-wrap
+msgid "B<7>"
+msgstr "B<7>"
+
+#. type: Plain text
+#: ../man/watch.1:125
+msgid "IPC pipe creation failed."
+msgstr "Erzeugung der IPC-Pipe ist fehlgeschlagen."
+
+#. type: TP
+#: ../man/watch.1:125
+#, no-wrap
+msgid "B<8>"
+msgstr "B<8>"
+
+#. type: Plain text
+#: ../man/watch.1:130
+msgid "Getting child process return value with B<waitpid>(2) failed, or command exited up on error."
+msgstr "Das Ermitteln des Rückgabewertes des Kindprozesses mit B<waitpid>(2) ist fehlgeschlagen oder der Befehl brach aufgrund eines Fehlers ab."
+
+#. type: TP
+#: ../man/watch.1:130
+#, no-wrap
+msgid "B<other>"
+msgstr "B<other>"
+
+#. type: Plain text
+#: ../man/watch.1:133
+msgid "The watch will propagate command exit status as child exit status."
+msgstr "Die Ãœberwachung gibt den Exit-Status des Befehls als Exit-Status des Kindprozesses weiter."
+
+#. type: Plain text
+#: ../man/watch.1:137
+msgid "The behavior of B<watch> is affected by the following environment variables."
+msgstr "Das Verhalten von B<watch> wird durch die folgenden Umgebungsvariablen beeinflusst."
+
+#. type: TP
+#: ../man/watch.1:138
+#, no-wrap
+msgid "B<WATCH_INTERVAL>"
+msgstr "B<WATCH_INTERVAL>"
+
+#. type: Plain text
+#: ../man/watch.1:143
+msgid "Update interval, follows the same rules as the B<--interval> command line option."
+msgstr "Aktualisierungsintervall, welches den gleichen Regeln wie die Befehlszeilenoption B<--interval> folgt."
+
+#. type: Plain text
+#: ../man/watch.1:151
+msgid "POSIX option processing is used (i.e., option processing stops at the first non-option argument). This means that flags after I<command> don't get interpreted by B<watch> itself."
+msgstr "Die Optionen werden gemäß POSIX verarbeitet (das heißt, die Optionsverarbeitung stoppt nach dem ersten Argument, das keine Option ist). Das bedeutet, dass Schalter nach dem I<Befehl> nicht von B<watch> selbst interpretiert werden."
+
+#. type: Plain text
+#: ../man/watch.1:159
+msgid "Upon terminal resize, the screen will not be correctly repainted until the next scheduled update. All B<--differences> highlighting is lost on that update as well. When using the B<--no-rerun> option, no output of will be visible."
+msgstr "Bei Größenänderungen des Terminals wird der Bildschirm nicht korrekt neu gezeichnet, bis die nächste geplante Aktualisierung erfolgt. Jegliche Hervorhebungen durch B<--differences> gehen durch diese Aktualisierung ebenfalls verloren. Wenn Sie die Option B<--no-rerun> verwenden, erfolgt keine Ausgabe."
+
+# FIXME command formatting
+#. type: Plain text
+#: ../man/watch.1:162
+msgid "Non-printing characters are stripped from program output. Use B<cat -v> as part of the command pipeline if you want to see them."
+msgstr "Nicht darstellbare Zeichen werden aus der Programmausgabe entfernt. Verwenden Sie B<cat -v> als Teil der Befehls-Pipeline, wenn Sie diese sehen wollen."
+
+#. type: Plain text
+#: ../man/watch.1:166
+msgid "Combining Characters that are supposed to display on the character at the last column on the screen may display one column early, or they may not display at all."
+msgstr "Kombinierende Zeichen, die mit einem Zeichen in der letzten Spalte des Bildschirms angezeigt werden sollen, könnten eine Spalte vorher erscheinen oder überhaupt nicht dargestellt werden."
+
+#. type: Plain text
+#: ../man/watch.1:170
+msgid "Combining Characters never count as different in B<--differences> mode. Only the base character counts."
+msgstr "Kombinierende Zeichen werden im Modus B<--differences> nie als Unterschiede gewertet. Es wird nur das Basiszeichen ausgewertet."
+
+#. type: Plain text
+#: ../man/watch.1:173
+msgid "Blank lines directly after a line which ends in the last column do not display."
+msgstr "Leere Zeilen direkt nach einer Zeile, die in der letzten Spalte endet, werden nicht angezeigt."
+
+#. type: Plain text
+#: ../man/watch.1:190
+msgid "B<--precise> mode doesn't yet have advanced temporal distortion technology to compensate for a I<command> that takes more than B<--interval> I<seconds> to execute. B<watch> also can get into a state where it rapid-fires as many executions of I<command> as it can to catch up from a previous executions running longer than B<--interval> (for example, B<netstat>(8) taking ages on a DNS lookup)."
+msgstr "Der Modus B<--precise> verfügt noch nicht über eine fortgeschrittene Technologie zur zeitlichen Verzerrungskompensierung eines Befehls, dessen Ausführung mehr als die als B<--interval> angegebenen I<Sekunden> benötigt. B<watch> kann auch in einen Zustand gelangen, wo es so viele Befehlsausführungen auslöst, wie es kann, um frühere Ausführungen aufzuholen, die länger als das B<--interval> benötigen (zum Beispiel wenn B<netstat>(8) eine unglaublich lange Zeit bei einem DNS-Suchvorgang braucht)."
+
+#. type: Plain text
+#: ../man/watch.1:194
+msgid "To watch for mail, you might do"
+msgstr "Nach neuen Mails schauen:"
+
+#. type: Plain text
+#: ../man/watch.1:196
+msgid "watch -n 60 from"
+msgstr "watch -n 60 from"
+
+#. type: Plain text
+#: ../man/watch.1:198
+msgid "To watch the contents of a directory change, you could use"
+msgstr "Den Inhalt eines Verzeichnisses auf Änderungen überwachen:"
+
+#. type: Plain text
+#: ../man/watch.1:200
+msgid "watch -d ls -l"
+msgstr "watch -d ls -l"
+
+#. type: Plain text
+#: ../man/watch.1:202
+msgid "If you're only interested in files owned by user joe, you might use"
+msgstr "Nur nach den Dateien des Benutzers »joe« schauen:"
+
+#. type: Plain text
+#: ../man/watch.1:204
+msgid "watch -d 'ls -l | fgrep joe'"
+msgstr "watch -d 'ls -l | fgrep joe'"
+
+#. type: Plain text
+#: ../man/watch.1:206
+msgid "To see the effects of quoting, try these out"
+msgstr "Die Effekte von Anführungszeichen sehen:"
+
+#. type: Plain text
+#: ../man/watch.1:208
+msgid "watch echo $$"
+msgstr "watch echo $$"
+
+#. type: Plain text
+#: ../man/watch.1:210
+msgid "watch echo '$$'"
+msgstr "watch echo '$$'"
+
+#. type: Plain text
+#: ../man/watch.1:212
+msgid "watch echo \"'\"'$$'\"'\""
+msgstr "watch echo \"'\"'$$'\"'\""
+
+#. type: Plain text
+#: ../man/watch.1:216
+msgid "To see the effect of precision time keeping, try adding B<-p> to"
+msgstr "Um den Effekt der genauen Zeithaltung zu beobachten, versuchen Sie, I<-p> zu Folgendem hinzuzufügen:"
+
+#. type: Plain text
+#: ../man/watch.1:218
+msgid "watch -n 10 sleep 1"
+msgstr "watch -n 10 sleep 1"
+
+#. type: Plain text
+#: ../man/watch.1:220
+msgid "You can watch for your administrator to install the latest kernel with"
+msgstr "Beobachten, wenn Ihr Administrator den neuesten Kernel installiert:"
+
+#. type: Plain text
+#: ../man/watch.1:222
+msgid "watch uname -r"
+msgstr "watch uname -r"
+
+#. type: Plain text
+#: ../man/watch.1:228
+msgid "(Note that B<-p> isn't guaranteed to work across reboots, especially in the face of B<ntpdate> (if present) or other bootup time-changing mechanisms)"
+msgstr "(Beachten Sie, dass nicht garantiert werden kann, dass B<-p> nach einem Neustart noch funktioniert, insbesondere im Hinblick auf B<ntpdate> (falls verfügbar) oder andere die Zeit beeinflussende Startmechanismen)"
+
+#. type: TH
+#: ../man/ps.1:13
+#, no-wrap
+msgid "PS"
+msgstr "PS"
+
+#. type: Plain text
+#: ../man/ps.1:29
+msgid "ps - report a snapshot of the current processes."
+msgstr "ps - einen Schnappschuss der aktuellen Prozesse darstellen."
+
+#. type: Plain text
+#: ../man/ps.1:31
+msgid "B<ps> [\\,I<options\\/>]"
+msgstr "B<ps> [\\,I<Optionen\\/>]"
+
+#. type: Plain text
+#: ../man/ps.1:37
+msgid "B<ps> displays information about a selection of the active processes. If you want a repetitive update of the selection and the displayed information, use B<top> instead."
+msgstr "B<ps> zeigt Informationen zu einer Auswahl aktiver Prozesse an. Falls Sie eine wiederholte Aktualisierung der Auswahl und der angezeigten Informationen benötigen, verwenden Sie stattdessen B<top>."
+
+#. type: Plain text
+#: ../man/ps.1:41
+msgid "This version of B<ps> accepts several kinds of options:"
+msgstr "Diese Version von B<ps> akzeptiert verschiedene Arten von Optionen:"
+
+#. type: Plain text
+#: ../man/ps.1:45
+msgid "UNIX options, which may be grouped and must be preceded by a dash."
+msgstr "UNIX-Optionen, die gruppiert sein können und denen ein Bindestrich vorangestellt werden darf."
+
+#. type: Plain text
+#: ../man/ps.1:47
+msgid "BSD options, which may be grouped and must not be used with a dash."
+msgstr "BSD-Optionen, die gruppiert sein können und denen kein Bindestrich vorangestellt werden muss."
+
+#. type: Plain text
+#: ../man/ps.1:49
+msgid "GNU long options, which are preceded by two dashes."
+msgstr "Lange GNU-Optionen, denen zwei Bindestriche vorangestellt werden müssen."
+
+#. type: Plain text
+#: ../man/ps.1:58
+msgid "Options of different types may be freely mixed, but conflicts can appear. There are some synonymous options, which are functionally identical, due to the many standards and B<ps> implementations that this B<ps> is compatible with."
+msgstr "Optionen verschiedener Typen können beliebig gemischt werden, was aber auch Konflikte hervorrufen kann. Es gibt einige gleichbedeutende Optionen, die funktionell identisch sind. Das beruht auf den zahlreichen Standards und Implementationen von B<ps>, zu denen das vorliegende B<ps> kompatibel ist."
+
+#. type: Plain text
+#: ../man/ps.1:66
+msgid "By default, B<ps> selects all processes with the same effective user ID (euid=EUID) as the current user and associated with the same terminal as the invoker. It displays the process ID (pid=PID), the terminal associated with the process (tname=TTY), the cumulated CPU time in [DD-]hh:mm:ss format (time=TIME), and the executable name (ucmd=CMD). Output is unsorted by default."
+msgstr "Standardmäßig wählt B<ps> alle Prozesse mit der effektiven Benutzerkennung (euid=EUID) des aktuellen Benutzers aus, die dem gleichen Terminal wie der Aufrufende zugeordnet sind. Es zeigt die Prozesskennung (pid=PID), das dem Prozess zugeordnete Terminal (tname=TTY), die kumulierte CPU-Zeit (time=TIME) im Format [TT-]hh:mm:ss sowie den Namen des ausführbaren Programms an. Die Ausgabe wird standardmäßig nicht sortiert."
+
+#. type: Plain text
+#: ../man/ps.1:79
+msgid "The use of BSD-style options will add process state (stat=STAT) to the default display and show the command args (args=COMMAND) instead of the executable name. You can override this with the B<PS_FORMAT> environment variable. The use of BSD-style options will also change the process selection to include processes on other terminals (TTYs) that are owned by you; alternately, this may be described as setting the selection to be the set of all processes filtered to exclude processes owned by other users or not on a terminal. These effects are not considered when options are described as being \"identical\" below, so B<-M> will be considered identical to B<Z> and so on."
+msgstr "Durch die Verwendung von Optionen im BSD-Stil wird der Prozessstatus (stat=STATUS) zur standardmäßigen Anzeige hinzugefügt und die Befehlsargumente (args=BEFEHL) anstelle des Namens der ausführbaren Datei angezeigt. Sie können dies in der Umgebungsvariable B<PS_FORMAT> außer Kraft setzen. Durch die Verwendung von Optionen im BSD-Stil zeigt die Prozessauswahl außerdem Prozesse auf anderen Terminals (TTYs) an, deren Besitzer Sie selbst sind; alternativ könnte dies als Setzen der Auswahl auf alle Prozesse beschrieben werden, aus denen aber Prozesse herausgefiltert werden, die anderen Benutzern gehören oder nicht auf einem Terminal laufen. Diese Effekte werden nicht berücksichtigt, wenn Optionen nachfolgend als »gleichbedeutend« beschrieben werden, so wird B<-M> als gleichbedeutend mit B<Z> usw. aufgefasst."
+
+#. type: Plain text
+#: ../man/ps.1:84
+msgid "Except as described below, process selection options are additive. The default selection is discarded, and then the selected processes are added to the set of processes to be displayed. A process will thus be shown if it meets any of the given selection criteria."
+msgstr "Außer in den nachfolgend beschriebenen Ausnahmen sind Optionen zur Prozessauswahl additiv. Die standardmäßige Auswahl wird verworfen und dann werden die ausgewählten Prozesse zur Gruppe der anzuzeigenden Prozesse hinzugefügt. Ein Prozess wird also dann angezeigt, wenn er irgendeinem der angegebenen Auswahlkriterien entspricht."
+
+#. type: TP
+#: ../man/ps.1:85
+#, no-wrap
+msgid "To see every process on the system using standard syntax:"
+msgstr "Alle Prozesse im System in der Standard-Syntax anzeigen:"
+
+#. type: Plain text
+#: ../man/ps.1:88
+msgid "B<ps\\ -e>"
+msgstr "B<ps\\ -e>"
+
+#. type: Plain text
+#: ../man/ps.1:90
+msgid "B<ps\\ -ef>"
+msgstr "B<ps\\ -ef>"
+
+#. type: Plain text
+#: ../man/ps.1:92
+msgid "B<ps\\ -eF>"
+msgstr "B<ps\\ -eF>"
+
+#. type: Plain text
+#: ../man/ps.1:94
+msgid "B<ps\\ -ely>"
+msgstr "B<ps\\ -ely>"
+
+#. type: TP
+#: ../man/ps.1:94
+#, no-wrap
+msgid "To see every process on the system using BSD syntax:"
+msgstr "Alle Prozess im System in der BSD-Syntax anzeigen:"
+
+#. type: Plain text
+#: ../man/ps.1:97
+msgid "B<ps\\ ax>"
+msgstr "B<ps\\ ax>"
+
+#. type: Plain text
+#: ../man/ps.1:99
+msgid "B<ps\\ axu>"
+msgstr "B<ps\\ axu>"
+
+#. type: TP
+#: ../man/ps.1:99
+#, no-wrap
+msgid "To print a process tree:"
+msgstr "Einen Prozessbaum ausgeben:"
+
+#. type: Plain text
+#: ../man/ps.1:102
+msgid "B<ps\\ -ejH>"
+msgstr "B<ps\\ -ejH>"
+
+#. type: Plain text
+#: ../man/ps.1:104
+msgid "B<ps\\ axjf>"
+msgstr "B<ps\\ axjf>"
+
+#. type: TP
+#: ../man/ps.1:104
+#, no-wrap
+msgid "To get info about threads:"
+msgstr "Informationen zu Threads erhalten:"
+
+#. type: Plain text
+#: ../man/ps.1:107
+msgid "B<ps\\ -eLf>"
+msgstr "B<ps\\ -eLf>"
+
+#. type: Plain text
+#: ../man/ps.1:109
+msgid "B<ps\\ axms>"
+msgstr "B<ps\\ axms>"
+
+#. type: TP
+#: ../man/ps.1:109
+#, no-wrap
+msgid "To get security info:"
+msgstr "Sicherheitsinformationen erhalten:"
+
+#. type: Plain text
+#: ../man/ps.1:112
+msgid "B<ps\\ -eo euser,ruser,suser,fuser,f,comm,label>"
+msgstr "B<ps\\ -eo euser,ruser,suser,fuser,f,comm,label>"
+
+#. type: Plain text
+#: ../man/ps.1:114
+msgid "B<ps\\ axZ>"
+msgstr "B<ps\\ axZ>"
+
+#. type: Plain text
+#: ../man/ps.1:116
+msgid "B<ps\\ -eM>"
+msgstr "B<ps\\ -eM>"
+
+#. type: TP
+#: ../man/ps.1:116
+#, no-wrap
+msgid "To see every process running as root (real\\ &\\ effective\\ ID) in user format:"
+msgstr "Alle Prozesse im System, die mit Root-Rechten laufen (reale\\ &\\ effektive\\ Kennung), in einem benutzerdefinierten Format anzeigen:"
+
+#. type: Plain text
+#: ../man/ps.1:119
+msgid "B<ps\\ -U\\ root\\ -u\\ root\\ u>"
+msgstr "B<ps\\ -U\\ root\\ -u\\ root\\ u>"
+
+#. type: TP
+#: ../man/ps.1:119
+#, no-wrap
+msgid "To see every process with a user-defined format:"
+msgstr "Alle Prozesse in einem benutzerdefinierten Format anzeigen:"
+
+#. type: Plain text
+#: ../man/ps.1:122
+msgid "B<ps\\ -eo\\ pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm>"
+msgstr "B<ps\\ -eo\\ pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm>"
+
+#. type: Plain text
+#: ../man/ps.1:124
+msgid "B<ps\\ axo\\ stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm>"
+msgstr "B<ps\\ axo\\ stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm>"
+
+#. type: Plain text
+#: ../man/ps.1:126
+msgid "B<ps\\ -Ao\\ pid,tt,user,fname,tmout,f,wchan>"
+msgstr "B<ps\\ -Ao\\ pid,tt,user,fname,tmout,f,wchan>"
+
+#. type: TP
+#: ../man/ps.1:126
+#, no-wrap
+msgid "Print only the process IDs of syslogd:"
+msgstr "Nur die Prozesskennungen (PIDs) von B<syslogd> ausgeben:"
+
+#. type: Plain text
+#: ../man/ps.1:129
+msgid "B<ps\\ -C\\ syslogd\\ -o\\ pid=>"
+msgstr "B<ps\\ -C\\ syslogd\\ -o\\ pid=>"
+
+#. type: TP
+#: ../man/ps.1:129
+#, no-wrap
+msgid "Print only the name of PID 42:"
+msgstr "Nur den Namen des Prozesses mit der Kennung 42 ausgeben:"
+
+#. type: Plain text
+#: ../man/ps.1:132
+msgid "B<ps\\ -q\\ 42\\ -o\\ comm=>"
+msgstr "B<ps\\ -q\\ 42\\ -o\\ comm=>"
+
+#. type: SH
+#: ../man/ps.1:132
+#, no-wrap
+msgid "SIMPLE PROCESS SELECTION"
+msgstr "EINFACHE PROZESSAUSWAHL"
+
+#. type: TP
+#: ../man/ps.1:133
+#, no-wrap
+msgid "B<a>"
+msgstr "B<a>"
+
+#. type: Plain text
+#: ../man/ps.1:147
+msgid "Lift the BSD-style \"only yourself\" restriction, which is imposed upon the set of all processes when some BSD-style (without \"-\") options are used or when the B<ps> personality setting is BSD-like. The set of processes selected in this manner is in addition to the set of processes selected by other means. An alternate description is that this option causes B<ps> to list all processes with a terminal (tty), or to list all processes when used together with the B<x> option."
+msgstr "hebt die Einschränkung »nur Sie selbst« des BSD-Stils auf, die für die Gruppe aller Prozesse gilt, wenn einige BSD-artige Optionen (ohne »-«) verwendet werden oder wenn die Einstellung der Prozessausführungsumgebung von B<ps> BSD-ähnlich ist. Die auf diese Weise ausgewählte Prozessgruppe wird zusätzlich zu den bereits auf andere Weise ausgewählten Prozessen ausgewählt. Alternativ könnte dies so beschrieben werden, dass diese Option B<ps> veranlasst, alle Prozesse mit einem Terminal (TTY) aufzulisten, oder alle Prozesse aufzulisten, wenn dies zusammen mit der Option B<x> verwendet wird."
+
+#. type: Plain text
+#: ../man/ps.1:151
+msgid "Select all processes. Identical to B<-e>."
+msgstr "wählt alle Prozesse aus. Gleichbedeutend mit B<-e>."
+
+#. type: TP
+#: ../man/ps.1:151
+#, no-wrap
+msgid "B<-a>"
+msgstr "B<-a>"
+
+#. type: Plain text
+#: ../man/ps.1:156
+msgid "Select all processes except both session leaders (see I<getsid>(2)) and processes not associated with a terminal."
+msgstr "wählt alle Prozesse aus, außer sowohl Sitzungsleiter (siehe I<getsid>(2)) als auch Prozesse, die keinem Terminal zugeordnet sind."
+
+#. type: Plain text
+#: ../man/ps.1:159
+msgid "Select all processes except session leaders."
+msgstr "wählt alle Prozesse außer Sitzungsleiter aus."
+
+#. type: TP
+#: ../man/ps.1:159
+#, no-wrap
+msgid "B<--deselect>"
+msgstr "B<--deselect>"
+
+#. type: Plain text
+#: ../man/ps.1:164
+msgid "Select all processes except those that fulfill the specified conditions (negates the selection). Identical to B<-N>."
+msgstr "wählt alle Prozesse aus, außer jene, welche die angegebenen Bedingungen erfüllen (negiert die Auswahl). Gleichbedeutend mit B<-N>."
+
+#. type: TP
+#: ../man/ps.1:164
+#, no-wrap
+msgid "B<-e>"
+msgstr "B<-e>"
+
+#. Current "g" behavior: add in the session leaders, which would
+#. be excluded in the sunos4 personality. Supposed "g" behavior:
+#. add in the group leaders -- at least according to the SunOS 4
+#. man page on the FreeBSD site. Uh oh. I think I had tested SunOS
+#. though, so maybe the code is correct.
+#. type: Plain text
+#: ../man/ps.1:173
+msgid "Select all processes. Identical to B<-A>."
+msgstr "wählt alle Prozesse aus. Gleichbedeutend mit B<-A>."
+
+#. type: TP
+#: ../man/ps.1:173
+#, no-wrap
+msgid "B<g>"
+msgstr "B<g>"
+
+#. type: Plain text
+#: ../man/ps.1:179
+msgid "Really all, even session leaders. This flag is obsolete and may be discontinued in a future release. It is normally implied by the B<a> flag, and is only useful when operating in the sunos4 personality."
+msgstr "wählt wirklich alle, selbst die Sitzungsleiter. Dieser Schalter ist veraltet und könnte in zukünftigen Veröffentlichungen nicht mehr zur Verfügung stehen. Es wird normalerweise vom Schalter B<a> impliziert und ist nur nützlich, wenn es in einer SunOs-Prozessausführungsumgebung ausgeführt wird."
+
+#. type: TP
+#: ../man/ps.1:179
+#, no-wrap
+msgid "B<-N>"
+msgstr "B<-N>"
+
+#. type: Plain text
+#: ../man/ps.1:184
+msgid "Select all processes except those that fulfill the specified conditions (negates the selection). Identical to B<--deselect>."
+msgstr "wählt alle Prozesse aus, außer jene, welche die angegebenen Bedingungen erfüllen (negiert die Auswahl). Gleichbedeutend mit B<--deselect>."
+
+#. type: TP
+#: ../man/ps.1:184
+#, no-wrap
+msgid "B<T>"
+msgstr "B<T>"
+
+#. type: Plain text
+#: ../man/ps.1:189
+msgid "Select all processes associated with this terminal. Identical to the B<t> option without any argument."
+msgstr "wählt alle Prozesse aus, welche diesem Terminal zugeordnet sind. Gleichbedeutend mit der Option B<t> ohne Argumente."
+
+#. type: TP
+#: ../man/ps.1:189
+#, no-wrap
+msgid "B<r>"
+msgstr "B<r>"
+
+#. type: Plain text
+#: ../man/ps.1:192
+msgid "Restrict the selection to only running processes."
+msgstr "schränkt die Auswahl nur auf laufende Prozesse ein."
+
+#. type: TP
+#: ../man/ps.1:192
+#, no-wrap
+msgid "B<x>"
+msgstr "B<x>"
+
+#. type: Plain text
+#: ../man/ps.1:207
+msgid "Lift the BSD-style \"must have a tty\" restriction, which is imposed upon the set of all processes when some BSD-style (without \"-\") options are used or when the B<ps> personality setting is BSD-like. The set of processes selected in this manner is in addition to the set of processes selected by other means. An alternate description is that this option causes B<ps> to list all processes owned by you (same EUID as B<ps>), or to list all processes when used together with the B<a> option."
+msgstr "hebt die Einschränkung »muss ein TTY haben« des BSD-Stils auf, die für die Gruppe aller Prozesse gilt, wenn einige BSD-artige Optionen (ohne »-«) verwendet werden oder wenn die Einstellung der Prozessausführungsumgebung von B<ps> BSD-ähnlich ist. Die auf diese Weise ausgewählte Prozessgruppe wird zusätzlich zu den bereits auf andere Weise ausgewählten Prozessen ausgewählt. Alternativ könnte dies so beschrieben werden, dass diese Option B<ps> veranlasst, alle Prozesse aufzulisten, deren Besitzer Sie selbst sind (gleiche EUID wie B<ps>), oder alle Prozesse aufzulisten, wenn dies zusammen mit der Option B<a> verwendet wird."
+
+#. type: SH
+#: ../man/ps.1:208
+#, no-wrap
+msgid "PROCESS SELECTION BY LIST"
+msgstr "PROZESSAUSWAHL NACH LISTE"
+
+#. type: Plain text
+#: ../man/ps.1:212
+msgid "These options accept a single argument in the form of a blank-separated or comma-separated list. They can be used multiple times. For example: B<ps\\ -p\\ \"1\\ 2\"\\ -p\\ 3,4>"
+msgstr "Diese Optionen akzeptieren ein einzelnes Argument in der Form einer durch Leerräume oder Kommata getrennten Liste. Dies kann mehrmals angegeben werden. Beispiel: B<ps\\ -p\\ \"1\\ 2\"\\ -p\\ 3,4>"
+
+#. type: TP
+#: ../man/ps.1:212
+#, no-wrap
+msgid "I<123>"
+msgstr "I<123>"
+
+#. type: Plain text
+#: ../man/ps.1:216
+msgid "Identical to B<--pid\\ >I<123>."
+msgstr "ist gleichbedeutend mit B<--pid\\ >I<123>."
+
+#. type: TP
+#: ../man/ps.1:216
+#, no-wrap
+msgid "\\+I<123>"
+msgstr "\\+I<123>"
+
+#. type: Plain text
+#: ../man/ps.1:220
+msgid "Identical to B<--sid\\ >I<123>."
+msgstr "ist gleichbedeutend mit B<--sid\\ >I<123>."
+
+#. type: TP
+#: ../man/ps.1:220
+#, no-wrap
+msgid "-I<123>"
+msgstr "-I<123>"
+
+#. type: Plain text
+#: ../man/ps.1:223
+#, fuzzy
+#| msgid "process group ID"
+msgid "Select by process group ID (PGID)."
+msgstr "Prozessgruppenkennung"
+
+#. type: TP
+#: ../man/ps.1:223
+#, no-wrap
+msgid "B<-C>I<\\ cmdlist>"
+msgstr "B<-C>I<\\ Befehlsliste>"
+
+#. type: Plain text
+#: ../man/ps.1:232
+msgid "Select by command name. This selects the processes whose executable name is given in I<cmdlist>. NOTE: The command name is not the same as the command line. Previous versions of procps and the kernel truncated this command name to 15 characters. This limitation is no longer present in both. If you depended on matching only 15 characters, you may no longer get a match."
+msgstr "wählt nach Befehlsnamen aus. Dadurch werden die Prozesse ausgewählt, deren Namen der ausführbaren Dateien in der I<Befehlsliste> aufgeführt sind. Achtung: Der Befehlsname entspricht nicht der Befehlszeile. Frühere Versionen von B<procps> und der Kernel kürzten diesen Befehlsnamen auf 15 Zeichen. Diese Einschränkung gibt es in beiden nicht mehr. Falls Sie sich nur auf 15 Zeichen beziehen, erhalten Sie keinen Treffer mehr."
+
+#. type: TP
+#: ../man/ps.1:232
+#, no-wrap
+msgid "B<-G>I<\\ grplist>"
+msgstr "B<-G>I<\\ Gruppenliste>"
+
+#. type: Plain text
+#: ../man/ps.1:240
+msgid "Select by real group ID (RGID) or name. This selects the processes whose real group name or ID is in the I<grplist> list. The real group ID identifies the group of the user who created the process, see I<getgid>(2)."
+msgstr "wählt nach realer Gruppenkennung (RGID) oder nach Namen aus. Dadurch werden die Prozesse ausgewählt, deren realer Gruppenname oder -kennung in der I<Gruppenliste> aufgeführt ist. Die reale Gruppenkennung identifiziert die Gruppe des Benutzers, der den Prozess erstellt hat, siehe I<getgid>(2)."
+
+#. type: TP
+#: ../man/ps.1:240
+#, no-wrap
+msgid "B<-g>I<\\ grplist>"
+msgstr "B<-g>I<\\ Gruppenliste>"
+
+#. type: Plain text
+#: ../man/ps.1:253
+msgid "Select by session OR by effective group name. Selection by session is specified by many standards, but selection by effective group is the logical behavior that several other operating systems use. This B<ps> will select by session when the list is completely numeric (as sessions are). Group ID numbers will work only when some group names are also specified. See the B<-s> and B<--group> options."
+msgstr "wählt nach Sitzung ODER effektivem Gruppennamen aus. Die Auswahl nach Sitzung wird durch zahlreiche Standards angegeben, aber die Auswahl nach effektiver Gruppe ist das logische Verhalten, das verschiedene andere Betriebssysteme verwenden. Diese Version von B<ps> wählt nach Sitzung aus, wenn die Liste vollständig numerisch ist (wie es bei Sitzungen der Fall ist). Mit Gruppenkennungen (ID-Nummern) funktioniert es nur dann, wenn auch einige Gruppennamen angegeben werden. Siehe die Optionen B<-s> und B<--group>."
+
+#. type: TP
+#: ../man/ps.1:253
+#, no-wrap
+msgid "B<--Group>I<\\ grplist>"
+msgstr "B<--Group>I<\\ Gruppenliste>"
+
+#. type: Plain text
+#: ../man/ps.1:257
+msgid "Select by real group ID (RGID) or name. Identical to B<-G>."
+msgstr "wählt nach realer Gruppenkennung (RGID) oder Name aus. Gleichbedeutend mit B<-G>."
+
+#. type: TP
+#: ../man/ps.1:257
+#, no-wrap
+msgid "B<--group>I<\\ grplist>"
+msgstr "B<--group>I<\\ Gruppenliste>"
+
+#. type: Plain text
+#: ../man/ps.1:269
+msgid "Select by effective group ID (EGID) or name. This selects the processes whose effective group name or ID is in I<grplist>. The effective group ID describes the group whose file access permissions are used by the process (see I<getegid>(2)). The B<-g> option is often an alternative to B<--group>."
+msgstr "wählt nach effektiver Gruppenkennung (EGID) oder Name aus. Dadurch werden die Prozesse ausgewählt, deren effektiver Gruppenname oder -kennung in der I<Gruppenliste> aufgeführt ist. Die effektive Gruppenkennung bezieht sich auf die Gruppe, deren Dateizugriffsrechte vom Prozess genutzt werden (siehe I<getegid>(2)). Die Option B<-g> ist häufig eine Alternative zu B<--group>."
+
+#. type: TP
+#: ../man/ps.1:269
+#, no-wrap
+msgid "B<p>I<\\ pidlist>"
+msgstr "B<p>I<\\ PID-Liste>"
+
+#. type: Plain text
+#: ../man/ps.1:275
+msgid "Select by process ID. Identical to B<-p> and B<--pid>."
+msgstr "wählt nach Prozesskennung (PID) aus. Gleichbedeutend mit B<-p> und B<--pid>."
+
+#. type: TP
+#: ../man/ps.1:275
+#, no-wrap
+msgid "B<-p>I<\\ pidlist>"
+msgstr "B<-p>I<\\ PID-Liste>"
+
+#. type: Plain text
+#: ../man/ps.1:283
+msgid "Select by PID. This selects the processes whose process ID numbers appear in I<pidlist>. Identical to B<p> and B<--pid>."
+msgstr "wählt nach Prozesskennung (PID) aus. Dadurch werden die Prozesse ausgewählt, deren Prozesskennungen (ID-Nummern) in der I<PID-Liste> aufgeführt sind. Gleichbedeutend mit B<p> und B<--pid>."
+
+#. type: TP
+#: ../man/ps.1:283
+#, no-wrap
+msgid "B<--pid>I<\\ pidlist>"
+msgstr "B<--pid>I<\\ PID-Liste>"
+
+#. type: Plain text
+#: ../man/ps.1:289
+msgid "Select by process\\ ID. Identical to B<-p> and B<p>."
+msgstr "wählt nach Prozesskennung (PID) )aus. Gleichbedeutend mit B<-p> und B<p>."
+
+#. type: TP
+#: ../man/ps.1:289
+#, no-wrap
+msgid "B<--ppid>I<\\ pidlist>"
+msgstr "B<--ppid>I<\\ PID-Liste>"
+
+#. type: Plain text
+#: ../man/ps.1:296
+msgid "Select by parent process ID. This selects the processes with a parent process\\ ID in I<pidlist>. That is, it selects processes that are children of those listed in I<pidlist>."
+msgstr "wählt nach Kennung des Elternprozesses aus. Dadurch werden die Prozesse ausgewählt, für die die Kennung eines Elternprozesses in der I<PID-Liste> aufgeführt ist. Das bedeutet, dass Prozesse ausgewählt werden, die Kindprozesse der Prozesse in der I<PID-Liste> sind."
+
+#. type: TP
+#: ../man/ps.1:296
+#, no-wrap
+msgid "B<q>I<\\ pidlist>"
+msgstr "B<q>I<\\ PID-Liste>"
+
+#. type: Plain text
+#: ../man/ps.1:302
+msgid "Select by process ID (quick mode). Identical to B<-q> and B<--quick-pid>."
+msgstr "wählt nach Prozesskennung (PID) aus (schneller Modus). Gleichbedeutend mit B<-q> und B<--quick-pid>."
+
+#. type: TP
+#: ../man/ps.1:302
+#, no-wrap
+msgid "B<-q>I<\\ pidlist>"
+msgstr "B<-q>I<\\ PID-Liste>"
+
+#. type: Plain text
+#: ../man/ps.1:316
+msgid "Select by PID (quick mode). This selects the processes whose process ID numbers appear in I<pidlist>. With this option B<ps> reads the necessary info only for the pids listed in the I<pidlist> and doesn't apply additional filtering rules. The order of pids is unsorted and preserved. No additional selection options, sorting and forest type listings are allowed in this mode. Identical to B<q> and B<--quick-pid>."
+msgstr "wählt nach Prozesskennung (PID) aus (schneller Modus). Dadurch werden die Prozesse ausgewählt, deren Prozesskennungen (ID-Nummern) in der I<PID-Liste> aufgeführt sind. Mit dieser Option liest B<ps> die notwendigen Informationen nur für die in der I<PID-Liste> aufgeführten Prozesskennungen und wendet keine zusätzlichen Filterregeln an. Die Reihenfolge der Prozesskennungen ist unsortiert und wird beibehalten. In diesem Modus sind keine weiteren Auswahloptionen, Sortierungen und Waldtyp-Auflistungen erlaubt. Gleichbedeutend mit B<q> und B<--quick-pid>."
+
+#. type: TP
+#: ../man/ps.1:316
+#, no-wrap
+msgid "B<--quick-pid>I<\\ pidlist>"
+msgstr "B<--quick-pid>I<\\ PID-Liste>"
+
+#. type: Plain text
+#: ../man/ps.1:322
+msgid "Select by process\\ ID (quick mode). Identical to B<-q> and B<q>."
+msgstr "wählt nach Prozesskennung (PID) aus (schneller Modus). Gleichbedeutend mit B<-q> und B<q>."
+
+#. type: TP
+#: ../man/ps.1:322
+#, no-wrap
+msgid "B<-s>I<\\ sesslist>"
+msgstr "B<-s>I<\\ Sitzungsliste>"
+
+#. type: Plain text
+#: ../man/ps.1:327
+msgid "Select by session ID. This selects the processes with a session ID specified in I<sesslist>."
+msgstr "wählt nach Sitzungskennung aus. Dies wählt alle Prozesse aus, deren Sitzungskennung in der I<Sitzungsliste> enthalten ist."
+
+#. type: TP
+#: ../man/ps.1:327
+#, no-wrap
+msgid "B<--sid>I<\\ sesslist>"
+msgstr "B<--sid>I<\\ Sitzungsliste>"
+
+#. type: Plain text
+#: ../man/ps.1:331
+msgid "Select by session\\ ID. Identical to B<-s>."
+msgstr "wählt nach Sitzungskennung aus. Gleichbedeutend mit B<-s>."
+
+#. type: TP
+#: ../man/ps.1:331
+#, no-wrap
+msgid "B<t>I<\\ ttylist>"
+msgstr "B<t>I<\\ TTY-Liste>"
+
+#. type: Plain text
+#: ../man/ps.1:348
+msgid "Select by tty. Nearly identical to B<-t> and B<--tty>, but can also be used with an empty I<ttylist> to indicate the terminal associated with B<ps>. Using the B<T> option is considered cleaner than using B<t> with an empty I<ttylist>."
+msgstr "wählt nach TTY aus. Dies ist fast gleichbedeutend mit B<-t> und B<--tty>, kann aber auch mit einer leeren I<TTY-Liste> verwendet werden, um das B<ps> zugeordnete Terminal zu bezeichnen. Die Verwendung der Option B<T> wird als sauberer als die Option B<t> mit einer leeren I<TTY-Liste> betrachtet."
+
+#. type: TP
+#: ../man/ps.1:348
+#, no-wrap
+msgid "B<-t>I<\\ ttylist>"
+msgstr "B<-t>I<\\ TTY-Liste>"
+
+#. type: Plain text
+#: ../man/ps.1:356
+msgid "Select by tty. This selects the processes associated with the terminals given in I<ttylist>. Terminals (ttys, or screens for text output) can be specified in several forms: /dev/ttyS1, ttyS1, S1. A plain \"-\" may be used to select processes not attached to any terminal."
+msgstr "wählt nach TTY aus. Dadurch werden die Prozesse ausgewählt, die den in der B<TTY-Liste> angegebenen Terminals zugeordnet sind. Terminals (TTYs oder Bildschirme für Textausgabe) können in verschiedenen Formen angegeben werden: /dev/ttyS1, ttyS1, S1. Ein einfaches »-« kann verwendet werden, um Prozesse auszuwählen, die keinem Terminal zugeordnet sind."
+
+#. type: TP
+#: ../man/ps.1:356
+#, no-wrap
+msgid "B<--tty>I<\\ ttylist>"
+msgstr "B<--tty>I<\\ TTY-Liste>"
+
+#. type: Plain text
+#: ../man/ps.1:362
+msgid "Select by terminal. Identical to B<-t> and B<t>."
+msgstr "wählt nach Terminal aus. Gleichbedeutend mit B<-t> und B<t>."
+
+#. type: TP
+#: ../man/ps.1:362
+#, no-wrap
+msgid "B<U>I<\\ userlist>"
+msgstr "B<U>I<\\ Benutzerliste>"
+
+#. type: Plain text
+#: ../man/ps.1:374
+msgid "Select by effective user ID (EUID) or name. This selects the processes whose effective user name or ID is in I<userlist>. The effective user ID describes the user whose file access permissions are used by the process (see I<geteuid>(2)). Identical to B<-u> and B<--user>."
+msgstr "wählt nach effektiver Benutzerkennung (EUID) oder Name aus. Dadurch werden die Prozesse ausgewählt, deren effektiver Benutzername oder -kennung in der I<Benutzerliste> aufgeführt ist. Die effektive Benutzerkennung bezieht sich auf den Benutzer, dessen Dateizugriffsrechte vom Prozess genutzt werden (siehe I<geteuid>(2)). Gleichbedeutend mit B<-u> und B<--user>."
+
+#. type: TP
+#: ../man/ps.1:374
+#, no-wrap
+msgid "B<-U>I<\\ userlist>"
+msgstr "B<-U>I<\\ Benutzerliste>"
+
+#. type: Plain text
+#: ../man/ps.1:381
+msgid "Select by real user ID (RUID) or name. It selects the processes whose real user name or ID is in the I<userlist> list. The real user ID identifies the user who created the process, see I<getuid>(2)."
+msgstr "wählt nach realer Benutzerkennung (RUID) oder nach Namen aus. Dadurch werden die Prozesse ausgewählt, deren realer Benutzername oder -kennung in der I<Benutzerliste> aufgeführt ist. Die reale Benutzerkennung identifiziert den Benutzer, der den Prozess erstellt hat, siehe I<getuid>(2)."
+
+#. type: TP
+#: ../man/ps.1:381
+#, no-wrap
+msgid "B<-u>I<\\ userlist>"
+msgstr "B<-u>I<\\ Benutzerliste>"
+
+#. type: Plain text
+#: ../man/ps.1:386
+msgid "Select by effective user ID (EUID) or name. This selects the processes whose effective user name or ID is in I<userlist>."
+msgstr "wählt nach effektiver Benutzerkennung (EUID) oder Name aus. Dadurch werden die Prozesse ausgewählt, deren effektiver Benutzername oder -kennung in der I<Benutzerliste> aufgeführt ist."
+
+#. type: Plain text
+#: ../man/ps.1:394
+msgid "The effective user ID describes the user whose file access permissions are used by the process (see I<geteuid>(2)). Identical to B<U> and B<--user>."
+msgstr "Die effektiver Benutzerkennung beschreibt den Benutzer, dessen Dateizugriffsrechte vom Prozess genutzt werden (siehe I<geteuid>(2)). Gleichbedeutend mit B<U> und B<--user>."
+
+#. type: TP
+#: ../man/ps.1:394
+#, no-wrap
+msgid "B<--User>I<\\ userlist>"
+msgstr "B<--User>I<\\ Benutzerliste>"
+
+#. type: Plain text
+#: ../man/ps.1:398
+msgid "Select by real user ID (RUID) or name. Identical to B<-U>."
+msgstr "wählt nach realer Benutzerkennung (RUID) oder Name aus. Gleichbedeutend mit B<-U>."
+
+#. type: TP
+#: ../man/ps.1:398
+#, no-wrap
+msgid "B<--user>I<\\ userlist>"
+msgstr "B<--user>I<\\ Benutzerliste>"
+
+#. type: Plain text
+#: ../man/ps.1:404
+msgid "Select by effective user ID (EUID) or name. Identical to B<-u> and B<U>."
+msgstr "wählt nach effektiver Benutzerkennung (EUID) oder Name aus. Gleichbedeutend mit B<-u> und B<U>."
+
+#. type: SH
+#: ../man/ps.1:405
+#, no-wrap
+msgid "OUTPUT FORMAT CONTROL"
+msgstr "STEUERUNG DES AUSGABEFORMATS"
+
+#. type: Plain text
+#: ../man/ps.1:409
+msgid "These options are used to choose the information displayed by B<ps>. The output may differ by personality."
+msgstr "Diese Optionen werden dazu verwendet, die von B<ps> angezeigten Informationen auszuwählen. Die Ausgabe kann je nach Prozessausführungsumgebung variieren."
+
+#. type: Plain text
+#: ../man/ps.1:414
+msgid "Show different scheduler information for the B<-l> option."
+msgstr "zeigt verschiedene Scheduler-Informationen für die Option B<-l> an."
+
+#. type: TP
+#: ../man/ps.1:414
+#, no-wrap
+msgid "B<--context>"
+msgstr "B<--context>"
+
+#. type: Plain text
+#: ../man/ps.1:417
+msgid "Display security context format (for SELinux)."
+msgstr "zeigt das Format des Sicherheitskontexts an (für SELinux)."
+
+#. type: Plain text
+#: ../man/ps.1:430
+msgid "Do full-format listing. This option can be combined with many other UNIX-style options to add additional columns. It also causes the command arguments to be printed. When used with B<-L>, the NLWP (number of threads) and LWP (thread ID) columns will be added. See the B<c> option, the format keyword B<args>, and the format keyword B<comm>."
+msgstr "zeigt eine Auflistung im Vollformat an. Diese Option kann mit vielen anderen Optionen im UNIX-Stil kombiniert werden, um zusätzliche Spalten hinzuzufügen. Außerdem bewirkt die Option, dass die Befehlsargumente ausgegeben werden. Wenn Sie die Option zusammen mit B<-L> verwenden, werden die Spalten NLWP (Anzahl der Threads) und LWP (Threadkennung) hinzugefügt. Siehe die Option B<c> sowie die Formatschlüsselwörter B<args> und B<comm>."
+
+#. type: TP
+#: ../man/ps.1:430
+#, no-wrap
+msgid "B<-F>"
+msgstr "B<-F>"
+
+#. type: Plain text
+#: ../man/ps.1:437
+msgid "Extra full format. See the B<-f> option, which B<-F> implies."
+msgstr "zeigt eine Auflistung im erweiterten Vollformat an. Siehe die Option B<-f>, welche B<-F> impliziert."
+
+#. type: TP
+#: ../man/ps.1:437
+#, no-wrap
+msgid "B<--format>I<\\ format>"
+msgstr "B<--format>I<\\ Format>"
+
+#. type: Plain text
+#: ../man/ps.1:443
+msgid "user-defined format. Identical to B<-o> and B<o>."
+msgstr "zeigt im benutzerdefinierten Format an. Gleichbedeutend mit B<-o> und B<o>."
+
+#. type: TP
+#: ../man/ps.1:443
+#, no-wrap
+msgid "B<j>"
+msgstr "B<j>"
+
+#. type: Plain text
+#: ../man/ps.1:446
+msgid "BSD job control format."
+msgstr "BSD-Jobsteuerung-Format."
+
+#. type: TP
+#: ../man/ps.1:446
+#, no-wrap
+msgid "B<-j>"
+msgstr "B<-j>"
+
+#. type: Plain text
+#: ../man/ps.1:449
+msgid "Jobs format."
+msgstr "Job-Format."
+
+#. type: TP
+#: ../man/ps.1:449
+#, no-wrap
+msgid "B<l>"
+msgstr "B<l>"
+
+#. type: Plain text
+#: ../man/ps.1:452
+msgid "Display BSD long format."
+msgstr "zeigt das lange BSD-Format an."
+
+#. type: TP
+#: ../man/ps.1:452
+#, no-wrap
+msgid "B<-l>"
+msgstr "B<-l>"
+
+#. type: Plain text
+#: ../man/ps.1:457
+msgid "Long format. The B<-y> option is often useful with this."
+msgstr "Langes Format. Die Option B<-y> ist oft dafür nützlich."
+
+#. type: TP
+#: ../man/ps.1:457
+#, no-wrap
+msgid "B<-M>"
+msgstr "B<-M>"
+
+#. type: Plain text
+#: ../man/ps.1:462
+msgid "Add a column of security data. Identical to B<Z> (for SELinux)."
+msgstr "fügt eine Spalte mit sicherheitsrelevanten Daten hinzu. Gleichbedeutend mit B<Z> (für SELinux)."
+
+#. type: TP
+#: ../man/ps.1:462
+#, no-wrap
+msgid "B<O>I<\\ format>"
+msgstr "B<O>I<\\ Format>"
+
+#. type: Plain text
+#: ../man/ps.1:480
+msgid "is preloaded B<o> (overloaded). The BSD B<O> option can act like B<-O> (user-defined output format with some common fields predefined) or can be used to specify sort order. Heuristics are used to determine the behavior of this option. To ensure that the desired behavior is obtained (sorting or formatting), specify the option in some other way (e.g. with B<-O> or B<--sort>). When used as a formatting option, it is identical to B<-O>, with the BSD personality."
+msgstr "ist ein vorgeladenes B<o> (überladen). Die BSD-Option B<O> kann wie B<-O> agieren (benutzerdefiniertes Ausgabeformat mit einigen vordefinierten häufig genutzten Feldern) oder dazu verwendet werden, die Sortierreihenfolge anzugeben. Das Verhalten dieser Option wird heuristisch bestimmt. Um das gewünschte Verhalten sicherzustellen (Sortierung oder Formatierung), geben Sie die Option auf eine andere Weise an (zum Beispiel mit B<-O> oder B<--sort>). Wenn Sie sie als Formatierungsoption verwenden, ist sie in der BSD-Prozessausführungsumgebung gleichbedeutend mit B<-O>."
+
+#. type: TP
+#: ../man/ps.1:480
+#, no-wrap
+msgid "B<-O>I<\\ format>"
+msgstr "B<-O>I<\\ Format>"
+
+#. type: Plain text
+#: ../man/ps.1:491
+msgid "Like B<-o>, but preloaded with some default columns. Identical to B<-o\\ pid,\\:>I<format>B<,\\:state,\\:tname,\\:time,\\:command> or B<-o\\ pid,\\:>I<format>B<,\\:tname,\\:time,\\:cmd>, see B<-o> below."
+msgstr "ist ähnlich zu B<-o>, aber mit einigen Standardspalten vorgeladen. Gleichbedeutend mit B<-o\\ PID,\\:>I<Format>B<,\\:Status,\\:tName,\\:Zeit,\\:Befehl> oder B<-o\\ PID,\\:>I<Format>B<,\\:tName,\\:Zeit,\\:Befehl>, siehe B<-o> nachfolgend."
+
+#. type: TP
+#: ../man/ps.1:491
+#, no-wrap
+msgid "B<o>I<\\ format>"
+msgstr "B<o>I<\\ Format>"
+
+#. type: Plain text
+#: ../man/ps.1:497
+msgid "Specify user-defined format. Identical to B<-o> and B<--format>."
+msgstr "legt das benutzerdefinierte Format fest. Gleichbedeutend mit B<-o> und B<--format>."
+
+#. type: TP
+#: ../man/ps.1:497
+#, no-wrap
+msgid "B<-o>I<\\ format>"
+msgstr "B<-o>I<\\ Format>"
+
+#. type: Plain text
+#: ../man/ps.1:525
+msgid "User-defined format. I<format> is a single argument in the form of a blank-separated or comma-separated list, which offers a way to specify individual output columns. The recognized keywords are described in the B<STANDARD FORMAT SPECIFIERS> section below. Headers may be renamed (B<ps -o pid,\\:ruser=RealUser -o comm=Command>) as desired. If all column headers are empty (B<ps -o pid= -o comm=>) then the header line will not be output. Column width will increase as needed for wide headers; this may be used to widen up columns such as WCHAN (B<ps -o pid,\\:wchan=\\:WIDE-\\:WCHAN-\\:COLUMN -o comm>). Explicit width control (B<ps opid,\\:wchan:42,\\:cmd>) is offered too. The behavior of B<ps -o pid=X,\\:comm=Y> varies with personality; output may be one column named \"X,\\:comm=Y\" or two columns named \"X\" and \"Y\". Use multiple B<-o> options when in doubt. Use the B<PS_FORMAT> environment variable to specify a default as desired; DefSysV and DefBSD are macros that may be used to choose the default UNIX or BSD columns."
+msgstr "legt das benutzerdefinierte Format fest. Das I<Format> ist ein einzelnes Argument in der From einer durch Leerräume oder Kommata getrennten Liste, die eine Möglichkeit bietet, individuelle Ausgabespalten anzugeben. Die erkannten Schlüsselwörter sind im nachfolgenden Abschnitt B<STANDARD-FORMATBEZEICHNER> beschrieben. Kopfzeilen dürfen nach Wunsch umbenannt werden (B<ps -o PID,\\:ruser=echter_Benutzer -o comm=Befehl>). Falls alle Spaltenüberschriften leer sind (B<ps -o pid= -o comm=>), wird keine Kopfzeile ausgegeben. Die Spaltenbreite wird bei breiteren Überschriften angepasst; das kann zur Verbreiterung von Spalten wie WCHAN (B<ps -o PID,\\:wchan=\\:WIDE-\\:WCHAN-\\:COLUMN -o comm>) angewendet werden. Eine explizite Steuerung der Breite ist ebenfalls möglich (B<ps opid,\\:wchan:42,\\:cmd>). Das Verhalten von B<ps -o pid=X,\\:comm=Y> variiert je nach Prozessausführungsumgebung; die Ausgabe kann in einer Spalte namens »X,\\:comm=Y« oder in zwei Spalten namens »X« und »Y« erfolgen. Im Zweifel sollten Sie die Option B<-o> mehrmals verwenden. Mit der Umgebungsvariable B<PS_FORMAT> können Sie eine Vorgabe nach Ihrem Wunsch festlegen; DefSysV und DefBSD sind Makros, die Sie zur Wahl der standardmäßigen UNIX- oder BSD-Spalten verwenden können."
+
+#. type: TP
+#: ../man/ps.1:525
+#, no-wrap
+msgid "B<-P>"
+msgstr "B<-P>"
+
+#. type: Plain text
+#: ../man/ps.1:528
+msgid "Add a column showing B<psr>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:528
+#, no-wrap
+msgid "B<s>"
+msgstr "B<s>"
+
+#. type: Plain text
+#: ../man/ps.1:531
+msgid "Display signal format."
+msgstr "zeigt im Signalformat an."
+
+#. type: TP
+#: ../man/ps.1:531
+#, no-wrap
+msgid "B<u>"
+msgstr "B<u>"
+
+#. type: Plain text
+#: ../man/ps.1:534
+msgid "Display user-oriented format."
+msgstr "zeigt im benutzerorientierten Format an."
+
+#. type: TP
+#: ../man/ps.1:534
+#, no-wrap
+msgid "B<v>"
+msgstr "B<v>"
+
+#. type: Plain text
+#: ../man/ps.1:537
+msgid "Display virtual memory format."
+msgstr "zeigt im virtuellen Speicherformat an."
+
+#. type: TP
+#: ../man/ps.1:537
+#, no-wrap
+msgid "B<X>"
+msgstr "B<X>"
+
+#. type: Plain text
+#: ../man/ps.1:540
+msgid "Register format."
+msgstr "zeigt im Registerformat an."
+
+#. type: TP
+#: ../man/ps.1:540
+#, no-wrap
+msgid "B<-y>"
+msgstr "B<-y>"
+
+#. type: Plain text
+#: ../man/ps.1:545
+msgid "Do not show flags; show rss in place of addr. This option can only be used with B<-l>."
+msgstr "zeigt keine Schalter an; statt B<addr> wird B<rss> angezeigt. Diese Option kann nur zusammen mit B<-l> verwendet werden."
+
+#. type: TP
+#: ../man/ps.1:545
+#, no-wrap
+msgid "B<Z>"
+msgstr "B<Z>"
+
+#. type: Plain text
+#: ../man/ps.1:550
+msgid "Add a column of security data. Identical to B<-M> (for SELinux)."
+msgstr "fügt eine Spalte mit sicherheitsrelevanten Daten hinzu. Gleichbedeutend mit B<-M> (für SELinux)."
+
+#. type: SH
+#: ../man/ps.1:551
+#, no-wrap
+msgid "OUTPUT MODIFIERS"
+msgstr "AUSGABE-MODIFIKATOREN"
+
+#. type: TP
+#: ../man/ps.1:552
+#, no-wrap
+msgid "B<c>"
+msgstr "B<c>"
+
+#. type: Plain text
+#: ../man/ps.1:570
+msgid "Show the true command name. This is derived from the name of the executable file, rather than from the argv value. Command arguments and any modifications to them are thus not shown. This option effectively turns the B<args> format keyword into the B<comm> format keyword; it is useful with the B<-f> format option and with the various BSD-style format options, which all normally display the command arguments. See the B<-f> option, the format keyword B<args>, and the format keyword B<comm>."
+msgstr "zeigt den echten Befehlsnamen an. Dieser wird aus dem Namen der ausführbaren Datei statt aus dem Wert von argv abgeleitet. Befehlsargumente und deren eventuelle Änderungen werden daher nicht angezeigt. Diese Option verwandelt das Formatschlüsselwort B<args> effektiv in das Formatschlüsselwort B<comm>; sie ist mit der Formatoption B<-f> und den verschiedenen Formatoptionen im BSD-Stil nützlich, welche alle normalerweise die Befehlsargumente anzeigen. Siehe die Option B<-f> sowie die Formatschlüsselwörter B<args> und B<comm>."
+
+#. type: TP
+#: ../man/ps.1:570
+#, no-wrap
+msgid "B<--cols>I<\\ n>"
+msgstr "B<--cols>I<\\ n>"
+
+#. type: Plain text
+#: ../man/ps.1:573 ../man/ps.1:576 ../man/ps.1:724
+msgid "Set screen width."
+msgstr "legt die Bildschirmbreite fest."
+
+#. type: TP
+#: ../man/ps.1:573
+#, no-wrap
+msgid "B<--columns>I<\\ n>"
+msgstr "B<--columns>I<\\ n>"
+
+#. type: TP
+#: ../man/ps.1:576
+#, no-wrap
+msgid "B<--cumulative>"
+msgstr "B<--cumulative>"
+
+#. type: Plain text
+#: ../man/ps.1:579
+msgid "Include some dead child process data (as a sum with the parent)."
+msgstr "fügt einige Daten toter Kindprozesse hinzu (als Summe mit den Elternprozessen)."
+
+#. type: TP
+#: ../man/ps.1:580
+#, no-wrap
+msgid "B<-D>I<\\ format>"
+msgstr "B<-D>I<\\ Format>"
+
+#. type: Plain text
+#: ../man/ps.1:586
+msgid "Set the date format of the B<lstart> field to I<format>. This format is parsed by B<strftime>(3) and should be a maximum of 24 characters to not mis-align columns."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:586
+#, no-wrap
+msgid "B<--date-format>I<\\ format>"
+msgstr "B<--date-format>I<\\ Format>"
+
+#. type: Plain text
+#: ../man/ps.1:589
+msgid "Identical to B<-D>."
+msgstr "ist gleichbedeutend mit B<-D>."
+
+#. type: TP
+#: ../man/ps.1:589
+#, no-wrap
+msgid "B<e>"
+msgstr "B<e>"
+
+#. type: Plain text
+#: ../man/ps.1:592
+msgid "Show the environment after the command."
+msgstr "zeigt die Umgebung nach dem Befehl an."
+
+#. type: TP
+#: ../man/ps.1:592
+#, no-wrap
+msgid "B<f>"
+msgstr "B<f>"
+
+#. type: Plain text
+#: ../man/ps.1:595
+msgid "ASCII art process hierarchy (forest)."
+msgstr "zeigt die Prozesshierarchie in ASCII-Art an (Wald)."
+
+#. type: TP
+#: ../man/ps.1:595
+#, no-wrap
+msgid "B<--forest>"
+msgstr "B<--forest>"
+
+#. type: Plain text
+#: ../man/ps.1:598
+msgid "ASCII art process tree."
+msgstr "zeigt einen Prozessbaum in ASCII-Art an."
+
+#. type: TP
+#: ../man/ps.1:598
+#, no-wrap
+msgid "B<h>"
+msgstr "B<h>"
+
+#. type: Plain text
+#: ../man/ps.1:616
+msgid "No header. (or, one header per screen in the BSD personality). The B<h> option is problematic. Standard BSD B<ps> uses this option to print a header on each page of output, but older Linux B<ps> uses this option to totally disable the header. This version of B<ps> follows the Linux usage of not printing the header unless the BSD personality has been selected, in which case it prints a header on each page of output. Regardless of the current personality, you can use the long options B<--headers> and B<--no-headers> to enable printing headers each page or disable headers entirely, respectively."
+msgstr "zeigt keine Kopfzeilen an (oder eine Kopfzeile pro Bildschirm in der BSD-Prozessausführungsumgebung). Die Option B<h> ist problematisch. Das standardmäßige B<ps> in BSD verwendet diese Option, um eine Kopfzeile auf jeder Seite der Ausgabe anzuzeigen, ältere Linux-Versionen von B<ps> hingegen unterdrücken damit die Anzeige der Kopfzeile komplett. Diese Version von B<ps> gibt keine Kopfzeilen aus und folgt damit dem Linux-Verhalten. Nur wenn die BSD-Prozessausführungsumgebung ausgewählt ist, wird eine Kopfzeile auf jeder Seite der Ausgabe angezeigt. Unabhängig von der aktuellen Prozessausführungsumgebung können Sie die Langoptionen B<--headers> bzw. B<--no-headers> dazu verwenden, um die Anzeige der Kopfzeilen auf jeder Seite zu aktivieren oder vollständig zu deaktivieren."
+
+#. type: TP
+#: ../man/ps.1:616
+#, no-wrap
+msgid "B<-H>"
+msgstr "B<-H>"
+
+#. type: Plain text
+#: ../man/ps.1:619
+msgid "Show process hierarchy (forest)."
+msgstr "zeigt die Prozesshierarchie an (Waldansicht)."
+
+#. type: TP
+#: ../man/ps.1:619
+#, no-wrap
+msgid "B<--headers>"
+msgstr "B<--headers>"
+
+#. type: Plain text
+#: ../man/ps.1:622
+msgid "Repeat header lines, one per page of output."
+msgstr "wiederholt die Kopfzeilen jeweils einmal pro ausgegebener Seite."
+
+#. type: TP
+#: ../man/ps.1:622
+#, no-wrap
+msgid "B<k>I<\\ spec>"
+msgstr "B<k>I<\\ Spez>"
+
+# FIXME artifacts from Groff code, bug in po4a?
+#. type: Plain text
+#: ../man/ps.1:634
+msgid "Specify sorting order. Sorting syntax is [B<+>|B<->]I<key\\/.RB [,[ + | - ].IR key [,...]].> Choose a multi-letter key from the B<STANDARD FORMAT SPECIFIERS> section. The \"+\" is optional since default direction is increasing numerical or lexicographic order. Identical to B<--sort>."
+msgstr "legt die Sortierreihenfolge fest. Die Sortierungssyntax ist [B<+>|B<->]I<Schlüssel\\/>[,[B<+>|B<->]I<Schlüssel>[, …]]. Wählen Sie einen aus mehreren Buchstaben bestehenden Schlüssel aus dem Abschnitt B<STANDARD-FORMATBEZEICHNER>. Das »+« ist optional, da die Standardsortierung nach der ansteigenden numerischen oder lexikographischen Reihenfolge vorgenommen wird. Gleichbedeutend mit B<--sort>."
+
+#. type: Plain text
+#: ../man/ps.1:637
+msgid "Examples:"
+msgstr "Beispiele:"
+
+#. type: Plain text
+#: ../man/ps.1:639
+msgid "B<ps jaxkuid,-ppid,+pid>"
+msgstr "B<ps jaxkuid,-ppid,+pid>"
+
+#. type: Plain text
+#: ../man/ps.1:641
+msgid "B<ps axk comm o comm,args>"
+msgstr "B<ps axk comm o comm,args>"
+
+#. type: Plain text
+#: ../man/ps.1:643
+msgid "B<ps kstart_time -ef>"
+msgstr "B<ps kstart_time -ef>"
+
+#. type: TP
+#: ../man/ps.1:644
+#, no-wrap
+msgid "B<--lines>I<\\ n>"
+msgstr "B<--lines>I<\\ n>"
+
+#. type: Plain text
+#: ../man/ps.1:647 ../man/ps.1:691
+msgid "Set screen height."
+msgstr "legt die Bildschirmhöhe fest."
+
+#. type: TP
+#: ../man/ps.1:647
+#, no-wrap
+msgid "B<n>"
+msgstr "B<n>"
+
+#. type: Plain text
+#: ../man/ps.1:650
+msgid "Numeric output for WCHAN and USER (including all types of UID and GID)."
+msgstr "aktiviert die numerische Ausgabe für WCHAN und USER (einschließlich aller UID- und GID-Typen)."
+
+#. type: TP
+#: ../man/ps.1:650
+#, no-wrap
+msgid "B<--no-headers>"
+msgstr "B<--no-headers>"
+
+#. type: Plain text
+#: ../man/ps.1:655
+msgid "Print no header line at all. B<--no-heading> is an alias for this option."
+msgstr "unterdrückt die Ausgabe jeglicher Kopfzeilen. B<--no-heading> ist ein Alias für diese Option."
+
+#. type: TP
+#: ../man/ps.1:655
+#, no-wrap
+msgid "B<O>I<\\ order>"
+msgstr "B<O>I<\\ Reihenfolge>"
+
+#. type: Plain text
+#: ../man/ps.1:669
+msgid "Sorting order (overloaded). The BSD B<O> option can act like B<-O> (user-defined output format with some common fields predefined) or can be used to specify sort order. Heuristics are used to determine the behavior of this option. To ensure that the desired behavior is obtained (sorting or formatting), specify the option in some other way (e.g. with B<-O> or B<--sort>)."
+msgstr "legt die Sortierreihenfolge fest (überladen). Die BSD-Option B<O> kann wie B<-O> agieren (benutzerdefiniertes Ausgabeformat mit einigen vordefinierten häufig genutzten Feldern) oder dazu verwendet werden, die Sortierreihenfolge anzugeben. Das Verhalten dieser Option wird heuristisch bestimmt. Um das gewünschte Verhalten sicherzustellen (Sortierung oder Formatierung), geben Sie die Option auf eine andere Weise an (zum Beispiel mit B<-O> oder B<--sort>)."
+
+#. type: Plain text
+#: ../man/ps.1:688
+msgid "For sorting, obsolete BSD B<O> option syntax is B<O>[B<+>|B<->]I<k1>[,[B<+>|B<->]I<k2>[,...]]. It orders the processes listing according to the multilevel sort specified by the sequence of one-letter short keys I<k1>,I<k2>, ...\" described in the B<OBSOLETE SORT KEYS> section below. The\\ \"+\" is currently optional, merely re-iterating the default direction on a key, but may help to distinguish an B<O> sort from an B<O> format. The \"-\" reverses direction only on the key it precedes."
+msgstr "Für die Sortierung ist B<O>[B<+>|B<->]I<k1>[,[B<+>|B<->]I<k2>[, …]] die Syntax der veralteten BSD-Option B<O>. Es ordnet die Prozessliste anhand der mehrstufigen Sortierung gemäß der einbuchstabigen Kurzschlüssel I<k1>, I<k2>, … , die nachfolgend im Abschnitt B<VERALTETE SORTIERSCHLÜSSEL> beschrieben sind. Das »+« ist derzeit optional, es wiederholt nur die Standardrichtung eines Schlüssels, aber kann dabei helfen, Sortierungen nach B<O> von einem Format B<O> zu unterscheiden. Das »-« kehrt die Richtung nur für den Schlüssel um, dem es vorangestellt ist."
+
+#. type: TP
+#: ../man/ps.1:688
+#, no-wrap
+msgid "B<--rows>I<\\ n>"
+msgstr "B<--rows>I<\\ n>"
+
+#. type: TP
+#: ../man/ps.1:691
+#, no-wrap
+msgid "B<S>"
+msgstr "B<S>"
+
+#. type: Plain text
+#: ../man/ps.1:696
+msgid "Sum up some information, such as CPU usage, from dead child processes into their parent. This is useful for examining a system where a parent process repeatedly forks off short-lived children to do work."
+msgstr "addiert Informationen, wie die CPU-Nutzung, aus den Informationen toter Kindprozesse und denen ihrer Elternprozesse. Dies ist nützlich, wenn Sie ein System untersuchen wollen, in dem ein Elternprozess fortwährend kurzlebige Kindprozesse mit fork() erstellt, um arbeiten zu können."
+
+#. type: TP
+#: ../man/ps.1:696
+#, no-wrap
+msgid "B<--sort>I<\\ spec>"
+msgstr "B<--sort>I<\\ Spez>"
+
+#. type: Plain text
+#: ../man/ps.1:710
+msgid "Specify sorting order. Sorting syntax is [I<+>|I<->]I<key>[,[B<+>|B<->]I<key>[,...]]. Choose a multi-letter key from the B<STANDARD FORMAT SPECIFIERS> section. The \"+\" is optional since default direction is increasing numerical or lexicographic order. Identical to B<k>. For example: B<ps jax --sort=\\:uid,\\:-ppid,\\:+pid>"
+msgstr "legt die Sortierreihenfolge fest. Die Sortierungssyntax ist [I<+>|I<->]I<Schlüssel>[,[B<+>|B<->]I<Schlüssel>[, …]]. Wählen Sie einen aus mehreren Buchstaben bestehenden Schlüssel aus dem Abschnitt B<STANDARD-FORMATBEZEICHNER>. Das »+« ist optional, da die Standardsortierung nach der aufsteigenden numerischen oder lexikographischen Reihenfolge vorgenommen wird. Gleichbedeutend mit B<k>. Beispiel: B<ps jax --sort=\\:uid,\\:-ppid,\\:+pid>"
+
+#. type: TP
+#: ../man/ps.1:710
+#, no-wrap
+msgid "B<--signames>"
+msgstr "B<--signames>"
+
+# FIXMe collumn → column
+#. type: Plain text
+#: ../man/ps.1:715
+msgid "Show signal masks using abbreviated signal names and expands the collumn. If the column width cannot show all signals, the column will end with a plus \"I<+>\". Columns with only a hyphen have no signals."
+msgstr "zeigt Signalmasken mittels abgekürzter Signalnamen an und passt die Spalte an. Falls die Spaltenbreite nicht alle Signale anzeigen kann, endet die Spalte mit einem Plus-Zeichen (»+«). Spalten, die nur einen Bindestrich enthalten, haben keine Signale."
+
+#. type: TP
+#: ../man/ps.1:715
+#, no-wrap
+msgid "B<w>"
+msgstr "B<w>"
+
+#. type: Plain text
+#: ../man/ps.1:718 ../man/ps.1:721
+msgid "Wide output. Use this option twice for unlimited width."
+msgstr "aktiviert die breite Ausgabe. Verwenden Sie diese Option zweimal, um die Breite auf unbegrenzt zu setzen."
+
+#. type: TP
+#: ../man/ps.1:721
+#, no-wrap
+msgid "B<--width>I<\\ n>"
+msgstr "B<--width>I<\\ n>"
+
+#. type: SH
+#: ../man/ps.1:725
+#, no-wrap
+msgid "THREAD DISPLAY"
+msgstr "THREAD-ANZEIGE"
+
+#. type: TP
+#: ../man/ps.1:726
+#, no-wrap
+msgid "B<H>"
+msgstr "B<H>"
+
+#. type: Plain text
+#: ../man/ps.1:729
+msgid "Show threads as if they were processes."
+msgstr "zeigt Threads so an, als wären sie Prozesse."
+
+#. type: TP
+#: ../man/ps.1:729
+#, no-wrap
+msgid "B<-L>"
+msgstr "B<-L>"
+
+#. type: Plain text
+#: ../man/ps.1:732
+msgid "Show threads, possibly with LWP and NLWP columns."
+msgstr "zeigt Threads an, eventuell mit den Spalten LWP und NLWP."
+
+#. type: TP
+#: ../man/ps.1:732
+#, no-wrap
+msgid "B<m>"
+msgstr "B<m>"
+
+#. type: Plain text
+#: ../man/ps.1:735 ../man/ps.1:738
+msgid "Show threads after processes."
+msgstr "zeigt Threads nach Prozessen an."
+
+#. type: TP
+#: ../man/ps.1:735
+#, no-wrap
+msgid "B<-m>"
+msgstr "B<-m>"
+
+#. type: TP
+#: ../man/ps.1:738
+#, no-wrap
+msgid "B<-T>"
+msgstr "B<-T>"
+
+#. type: Plain text
+#: ../man/ps.1:741
+msgid "Show threads, possibly with SPID column."
+msgstr "zeigt Threads an, möglicherweise mit einer SPID-Spalte."
+
+#. type: SH
+#: ../man/ps.1:741
+#, no-wrap
+msgid "OTHER INFORMATION"
+msgstr "WEITERE INFORMATIONEN"
+
+# Sieht merkwürdig aus, funktioniert aber tatsächlich so.
+#. type: TP
+#: ../man/ps.1:742
+#, no-wrap
+msgid "B<--help>I<\\ section>"
+msgstr "B<--Hilfe>I<\\ Abschnitt>"
+
+#. type: Plain text
+#: ../man/ps.1:753
+msgid "Print a help message. The I<section> argument can be one of I<s>imple, I<l>ist, I<o>utput, I<t>hreads, I<m>isc, or I<a>ll. The argument can be shortened to one of the underlined letters as in: s\\^|\\^l\\^|\\^o\\^|\\^t\\^|\\^m\\^|\\^a."
+msgstr "gibt eine Hilfemeldung aus. Das Argument I<Abschnitt> kann eines aus I<s>imple, I<l>ist, I<o>utput, I<t>hreads, I<m>isc oder I<a>ll sein. Das Argument kann wie folgt auf einen der unterstrichenen Buchstaben gekürzt werden: s\\^|\\^l\\^|\\^o\\^|\\^t\\^|\\^m\\^|\\^a."
+
+#. type: TP
+#: ../man/ps.1:753
+#, no-wrap
+msgid "B<--info>"
+msgstr "B<--info>"
+
+#. type: Plain text
+#: ../man/ps.1:756
+msgid "Print debugging info."
+msgstr "gibt Informationen zur Fehlerdiagnose aus."
+
+#. type: TP
+#: ../man/ps.1:756
+#, no-wrap
+msgid "B<L>"
+msgstr "B<L>"
+
+#. type: Plain text
+#: ../man/ps.1:759
+msgid "List all format specifiers."
+msgstr "listet alle Formatbezeichner auf."
+
+#. type: TP
+#: ../man/ps.1:759
+#, no-wrap
+msgid "B<V>"
+msgstr "B<V>"
+
+#. type: Plain text
+#: ../man/ps.1:762 ../man/ps.1:765 ../man/ps.1:768
+msgid "Print the procps-ng version."
+msgstr "gibt die Version von Procps-ng aus."
+
+#. type: TP
+#: ../man/ps.1:762
+#, no-wrap
+msgid "B<-V>"
+msgstr "B<-V>"
+
+#. type: TP
+#: ../man/ps.1:765
+#, no-wrap
+msgid "B<--version>"
+msgstr "B<--version>"
+
+#. type: Plain text
+#: ../man/ps.1:777
+msgid "This B<ps> works by reading the virtual files in /proc. This B<ps> does not need to be setuid kmem or have any privileges to run. Do not give this B<ps> any special permissions."
+msgstr "Diese Version von B<ps> basiert auf dem Auslesen virtueller Dateien in /proc. Diese Version von B<ps> muss nicht setuid »kmem« sein oder zur Ausführung über irgendwelche Privilegien verfügen. Geben Sie dieser Version von B<ps> keine besonderen Rechte."
+
+#. type: Plain text
+#: ../man/ps.1:783
+msgid "CPU usage is currently expressed as the percentage of time spent running during the entire lifetime of a process. This is not ideal, and\\ it does not conform to the standards that B<ps> otherwise conforms to. CPU usage is unlikely to add up to exactly 100%."
+msgstr "Die CPU-Nutzung wird derzeit als der Prozentwert der während der gesamten Lebensdauer verwendeten Laufzeit ausgedrückt. Das ist nicht ideal und ist nicht zu den Standards konform, an denen sich B<ps> ansonsten orientiert. Es ist unwahrscheinlich, dass die Summe der CPU-Nutzung 100% erreicht."
+
+#. type: Plain text
+#: ../man/ps.1:788
+msgid "The SIZE and RSS fields don't count some parts of a process including the page tables, kernel stack, struct thread_info, and struct task_struct. This is usually at least 20\\ KiB of memory that is always resident. SIZE is the virtual size of the process (code+\\:data+\\:stack)."
+msgstr "Die Felder SIZE und RSS zählen einige Teile des Prozesses nicht, wie die Seitentabellen, den Kernel-Stack, die Structs »thread_info« und »task_struct«. Dies ergibt üblicherweise mindestens 20 KiB Speicher, die immer belegt sind. SIZE ist die virtuelle Größe des Prozesses (Code+\\:Daten+\\:Stack)."
+
+#. type: Plain text
+#: ../man/ps.1:794
+msgid "Processes marked E<lt>defunctE<gt> are dead processes (so-called \"zombies\") that remain because their parent has not destroyed them properly. These processes will be destroyed by I<init>(8) if the parent process exits."
+msgstr "Als E<lt>defunctE<gt> markierte Prozesse sind tote Prozesse (sogenannte »Zombies«). Diese sind deswegen noch vorhanden, weil deren Elternprozesse sie nicht sauber beendet haben. Diese Prozesse werden durch I<init>(8) zerstört, sofern der Elternprozess existiert."
+
+#. type: Plain text
+#: ../man/ps.1:798
+msgid "If the length of the username is greater than the width of the display column, the username will be truncated. See the B<-o> and B<-O> formatting options to customize length."
+msgstr "Falls der Benutzername länger ist als die Breite der Anzeigespalte, wird der Benutzername gekürzt. Mit den Formatierungsoptionen B<-o> und B<-O> können Sie die Breite anpassen."
+
+#. type: Plain text
+#: ../man/ps.1:810
+msgid "Commands options such as B<ps -aux> are not recommended as it is a confusion of two different standards. According to the POSIX and UNIX standards, the above command asks to display all processes with a TTY (generally the commands users are running) plus all processes owned by a user named I<x>. If that user doesn't exist, then B<ps> will assume you really meant \"B<ps> I<aux>\"."
+msgstr "Von Befehlszeilenoptionen wie B<ps -aux> wird abgeraten, da sie zwei Standards vermischen. Entsprechend den POSIX- und UNIX-Standards bewirkt der vorstehende Befehl die Anzeige aller Prozesse mit einem TTY (im Allgemeinen die Befehle, die Benutzer ausführen) und zusätzlich aller Prozesse, die einem Benutzer namens I<x> gehören. Existiert dieser Benutzer nicht, wird B<ps> annehmen, dass Sie eigentlich B<ps> I<aux> meinten."
+
+#. type: SH
+#: ../man/ps.1:810
+#, no-wrap
+msgid "PROCESS FLAGS"
+msgstr "PROZESSSCHALTER"
+
+#. type: Plain text
+#: ../man/ps.1:815
+msgid "The sum of these values is displayed in the \"F\" column, which is provided by the B<flags> output specifier:"
+msgstr "Die Summe dieser Werte wird in der Spalte »F« angezeigt, die durch den Ausgabebezeichner B<flags> bereitgestellt wird:"
+
+#. type: Plain text
+#: ../man/ps.1:821
+msgid "forked but didn't exec"
+msgstr "mit fork() erstellt, aber nicht ausgeführt"
+
+#. type: IP
+#: ../man/ps.1:821 ../man/ps.1:2088
+#, no-wrap
+msgid "4"
+msgstr "4"
+
+#. type: Plain text
+#: ../man/ps.1:824
+msgid "used super-user privileges"
+msgstr "Superuser-Privilegien verwendet"
+
+#. type: SH
+#: ../man/ps.1:826
+#, no-wrap
+msgid "PROCESS STATE CODES"
+msgstr "PROZESSZUSTANDSCODES"
+
+#. type: Plain text
+#: ../man/ps.1:831
+msgid "Here are the different values that the B<s>, B<stat> and B<state> output specifiers (header \"STAT\" or \"S\") will display to describe the state of a process:"
+msgstr "Dies sind die verschiedenen Werte, welche die Ausgabebezeichner B<s>, B<stat> und B<state> (Überschrift »STAT« oder »S«) anzeigen, um den Status eines Prozesses zu beschreiben:"
+
+#. type: TP
+#: ../man/ps.1:834
+#, no-wrap
+msgid "D"
+msgstr "D"
+
+#. type: Plain text
+#: ../man/ps.1:837
+msgid "uninterruptible sleep (usually IO)"
+msgstr "Nicht unterbrechbarer Schlafzustand (üblicherweise E/A)"
+
+#. type: TP
+#: ../man/ps.1:837
+#, no-wrap
+msgid "I"
+msgstr "I"
+
+#. type: Plain text
+#: ../man/ps.1:840
+msgid "Idle kernel thread"
+msgstr "Kernel-Thread im Leerlauf"
+
+#. type: tbl table
+#: ../man/ps.1:840 ../man/ps.1:925
+#, no-wrap
+msgid "R"
+msgstr "R"
+
+#. type: Plain text
+#: ../man/ps.1:843
+msgid "running or runnable (on run queue)"
+msgstr "Laufend oder lauffähig (in der Ausführungswarteschlange)"
+
+#. type: tbl table
+#: ../man/ps.1:843 ../man/ps.1:927 ../man/ps.1:1631 ../man/ps.1:1753
+#, no-wrap
+msgid "S"
+msgstr "S"
+
+#. type: Plain text
+#: ../man/ps.1:846
+msgid "interruptible sleep (waiting for an event to complete)"
+msgstr "Unterbrechbarer Schlafzustand (auf den Abschluss eines Ereignisses wartend)"
+
+#. type: tbl table
+#: ../man/ps.1:846 ../man/ps.1:929
+#, no-wrap
+msgid "T"
+msgstr "T"
+
+#. type: Plain text
+#: ../man/ps.1:849
+msgid "stopped by job control signal"
+msgstr "Durch Jobsteuersignal gestoppt"
+
+#. type: tbl table
+#: ../man/ps.1:849 ../man/ps.1:928
+#, no-wrap
+msgid "t"
+msgstr "t"
+
+#. type: Plain text
+#: ../man/ps.1:852
+msgid "stopped by debugger during the tracing"
+msgstr "Durch Debugger während der Verfolgung gestoppt"
+
+#. type: Plain text
+#: ../man/ps.1:855
+msgid "paging (not valid since the 2.6.xx kernel)"
+msgstr "Paging (ungültig seit Kernel 2.6.xx)"
+
+#. type: TP
+#: ../man/ps.1:855
+#, no-wrap
+msgid "X"
+msgstr "X"
+
+#. type: Plain text
+#: ../man/ps.1:858
+msgid "dead (should never be seen)"
+msgstr "Tot (sollte niemals angezeigt werden)"
+
+#. type: TP
+#: ../man/ps.1:858
+#, no-wrap
+msgid "Z"
+msgstr "Z"
+
+#. type: Plain text
+#: ../man/ps.1:861
+msgid "defunct (\"zombie\") process, terminated but not reaped by its parent"
+msgstr "Defunktionaler (»Zombie«-) Prozess, beendet, aber durch seinen Elternprozess nicht aufgeräumt"
+
+#. type: Plain text
+#: ../man/ps.1:867
+msgid "For BSD formats and when the B<stat> keyword is used, additional characters may be displayed:"
+msgstr "Für BSD-Formate und bei Verwendung des Schlüsselworts B<stat> können zusätzliche Zeichen angezeigt werden:"
+
+#. type: TP
+#: ../man/ps.1:870
+#, no-wrap
+msgid "E<lt>"
+msgstr "E<lt>"
+
+#. type: Plain text
+#: ../man/ps.1:873
+msgid "high-priority (not nice to other users)"
+msgstr "Hohe Priorität (nicht »nice« zu anderen Benutzern)"
+
+#. type: tbl table
+#: ../man/ps.1:873 ../man/ps.1:920
+#, no-wrap
+msgid "N"
+msgstr "N"
+
+#. type: Plain text
+#: ../man/ps.1:876
+msgid "low-priority (nice to other users)"
+msgstr "Niedrige Priorität (»nice« zu anderen Benutzern)"
+
+#. type: TP
+#: ../man/ps.1:876
+#, no-wrap
+msgid "L"
+msgstr "L"
+
+#. type: Plain text
+#: ../man/ps.1:879
+msgid "has pages locked into memory (for real-time and custom IO)"
+msgstr "Hat im Speicher gesperrte Seiten (für Echtzeit- und benutzerdefinierte E/A)"
+
+#. type: Plain text
+#: ../man/ps.1:882
+msgid "is a session leader"
+msgstr "Ist ein Sitzungsleiter"
+
+#. type: Plain text
+#: ../man/ps.1:885
+msgid "is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)"
+msgstr "Ist multi-threaded (mittels CLONE_THREAD, wie es NPTL-Pthreads tun)"
+
+#. type: TP
+#: ../man/ps.1:885
+#, no-wrap
+msgid "+"
+msgstr "+"
+
+#. type: Plain text
+#: ../man/ps.1:888
+msgid "is in the foreground process group"
+msgstr "Ist in der Vordergrund-Prozessgruppe"
+
+#. type: SH
+#: ../man/ps.1:890
+#, no-wrap
+msgid "OBSOLETE SORT KEYS"
+msgstr "VERALTETE SORTIERSCHLÃœSSEL"
+
+#. type: Plain text
+#: ../man/ps.1:906
+msgid "These keys are used by the BSD B<O> option (when it is used for sorting). The GNU B<--sort> option doesn't use these keys, but the specifiers described below in the B<STANDARD FORMAT SPECIFIERS> section. Note that the values used in sorting are the internal values B<ps> uses and not the \"cooked\" values used in some of the output format fields (e.g. sorting on tty will sort into device number, not according to the terminal name displayed). Pipe B<ps> output into the B<sort>(1) command if you want to sort the cooked values."
+msgstr "Diese Schlüssel werden von der BSD-Option B<O> verwendet (wenn diese zur Sortierung verwendet wird). Die GNU-Option B<--sort> verwendet diese Schlüssel nicht, sondern die im nachfolgenden Abschnitt B<STANDARD-FORMATBEZEICHNER> beschriebenen Schlüssel. Beachten Sie, dass die in der Sortierung verwendeten Werte die internen Werte sind, die B<ps> nutzt, und nicht die »verarbeiteten« Werte, die in einigen der Ausgabeformat-Felder verwendet werden (zum Beispiel wird bei der Sortierung nach TTY anhand der Gerätenummern sortiert und nicht anhand des angezeigten Terminalnamens). Leiten Sie die Ausgabe von B<ps> an den Befehl B<sort> weiter, wenn Sie nach den verarbeiteten Werten sortieren wollen."
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, no-wrap
+msgid "B<KEY>"
+msgstr "B<SCHLÃœSSEL>"
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, no-wrap
+msgid "B<LONG>"
+msgstr "B<LANG>"
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, no-wrap
+msgid "B<DESCRIPTION>"
+msgstr "B<BESCHREIBUNG>"
+
+#. type: tbl table
+#: ../man/ps.1:909 ../man/ps.1:1161
+#, no-wrap
+msgid "cmd"
+msgstr "cmd"
+
+#. type: tbl table
+#: ../man/ps.1:909
+#, no-wrap
+msgid "simple name of executable"
+msgstr "Einfacher Name der ausführbaren Datei"
+
+#. type: tbl table
+#: ../man/ps.1:910 ../man/ps.1:1081
+#, no-wrap
+msgid "C"
+msgstr "C"
+
+#. type: tbl table
+#: ../man/ps.1:910 ../man/ps.1:952 ../man/ps.1:1481
+#, no-wrap
+msgid "pcpu"
+msgstr "pcpu"
+
+#. type: tbl table
+#: ../man/ps.1:910
+#, no-wrap
+msgid "cpu utilization"
+msgstr "CPU-Nutzung"
+
+#. type: tbl table
+#: ../man/ps.1:911 ../man/ps.1:1300
+#, no-wrap
+msgid "f"
+msgstr "f"
+
+#. type: tbl table
+#: ../man/ps.1:911 ../man/ps.1:1326
+#, no-wrap
+msgid "flags"
+msgstr "flags"
+
+#. type: tbl table
+#: ../man/ps.1:911
+#, no-wrap
+msgid "flags as in long format F field"
+msgstr "Schalter, wie im F-Feld im Langformat"
+
+#. type: tbl table
+#: ../man/ps.1:912
+#, no-wrap
+msgid "g"
+msgstr "g"
+
+#. type: tbl table
+#: ../man/ps.1:912 ../man/ps.1:1508
+#, no-wrap
+msgid "pgrp"
+msgstr "pgrp"
+
+#. type: tbl table
+#: ../man/ps.1:912
+#, no-wrap
+msgid "process group ID"
+msgstr "Prozessgruppenkennung"
+
+#. type: tbl table
+#: ../man/ps.1:913
+#, no-wrap
+msgid "G"
+msgstr "G"
+
+#. type: tbl table
+#: ../man/ps.1:913 ../man/ps.1:1848
+#, no-wrap
+msgid "tpgid"
+msgstr "tpgid"
+
+#. type: tbl table
+#: ../man/ps.1:913
+#, no-wrap
+msgid "controlling tty process group ID"
+msgstr "Prozessgruppenkennung des steuernden TTY"
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "j"
+msgstr "j"
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "cutime"
+msgstr "cutime"
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "cumulative user time"
+msgstr "Kumulative Benutzerzeit"
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "J"
+msgstr "J"
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "cstime"
+msgstr "cstime"
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "cumulative system time"
+msgstr "Kumulative Systemzeit"
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "k"
+msgstr "k"
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "utime"
+msgstr "utime"
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "user time"
+msgstr "Benutzerzeit"
+
+#. type: tbl table
+#: ../man/ps.1:917
+#, no-wrap
+msgid "m"
+msgstr "m"
+
+#. type: tbl table
+#: ../man/ps.1:917 ../man/ps.1:1419
+#, no-wrap
+msgid "min_flt"
+msgstr "min_flt"
+
+#. type: tbl table
+#: ../man/ps.1:917
+#, no-wrap
+msgid "number of minor page faults"
+msgstr "Anzahl der geringfügigen Seitenfehlerausnahmebehandlungen"
+
+#. type: tbl table
+#: ../man/ps.1:918
+#, no-wrap
+msgid "M"
+msgstr "M"
+
+#. type: tbl table
+#: ../man/ps.1:918 ../man/ps.1:1415
+#, no-wrap
+msgid "maj_flt"
+msgstr "maj_flt"
+
+#. type: tbl table
+#: ../man/ps.1:918
+#, no-wrap
+msgid "number of major page faults"
+msgstr "Anzahl der großen Seitenfehlerausnahmebehandlungen"
+
+#. type: tbl table
+#: ../man/ps.1:919
+#, no-wrap
+msgid "cmin_flt"
+msgstr "cmin_flt"
+
+#. type: tbl table
+#: ../man/ps.1:919
+#, no-wrap
+msgid "cumulative minor page faults"
+msgstr "Kumulierte Anzahl der geringfügigen Seitenfehlerausnahmebehandlungen"
+
+#. type: tbl table
+#: ../man/ps.1:920
+#, no-wrap
+msgid "cmaj_flt"
+msgstr "cmaj_flt"
+
+#. type: tbl table
+#: ../man/ps.1:920
+#, no-wrap
+msgid "cumulative major page faults"
+msgstr "Kumulierte Anzahl der großen Seitenfehlerausnahmebehandlungen"
+
+#. type: tbl table
+#: ../man/ps.1:921
+#, no-wrap
+msgid "session"
+msgstr "session"
+
+#. type: tbl table
+#: ../man/ps.1:921
+#, no-wrap
+msgid "session ID"
+msgstr "Sitzungskennung"
+
+#. type: tbl table
+#: ../man/ps.1:922 ../man/ps.1:960 ../man/ps.1:1515
+#, no-wrap
+msgid "pid"
+msgstr "pid"
+
+#. type: tbl table
+#: ../man/ps.1:922
+#, no-wrap
+msgid "process ID"
+msgstr "Prozesskennung"
+
+#. type: tbl table
+#: ../man/ps.1:923 ../man/ps.1:1657
+#, no-wrap
+msgid "P"
+msgstr "P"
+
+#. type: tbl table
+#: ../man/ps.1:923 ../man/ps.1:954 ../man/ps.1:1559
+#, no-wrap
+msgid "ppid"
+msgstr "ppid"
+
+#. type: tbl table
+#: ../man/ps.1:923
+#, no-wrap
+msgid "parent process ID"
+msgstr "Kennung des Elternprozesses"
+
+#. type: tbl table
+#: ../man/ps.1:924
+#, no-wrap
+msgid "r"
+msgstr "r"
+
+#. type: tbl table
+#: ../man/ps.1:924 ../man/ps.1:1598
+#, no-wrap
+msgid "rss"
+msgstr "rss"
+
+#. type: tbl table
+#: ../man/ps.1:924
+#, no-wrap
+msgid "resident set size"
+msgstr "Hauptspeicherbelegung"
+
+#. type: tbl table
+#: ../man/ps.1:925
+#, no-wrap
+msgid "resident"
+msgstr "resident"
+
+#. type: tbl table
+#: ../man/ps.1:925
+#, no-wrap
+msgid "resident pages"
+msgstr "Seiten in der Hauptspeicherbelegung"
+
+#. type: tbl table
+#: ../man/ps.1:926 ../man/ps.1:1707
+#, no-wrap
+msgid "size"
+msgstr "size"
+
+#. type: tbl table
+#: ../man/ps.1:926
+#, no-wrap
+msgid "memory size in kilobytes"
+msgstr "Speichergröße in Kilobyte"
+
+#. type: tbl table
+#: ../man/ps.1:927
+#, no-wrap
+msgid "share"
+msgstr "share"
+
+#. type: tbl table
+#: ../man/ps.1:927
+#, no-wrap
+msgid "amount of shared pages"
+msgstr "Menge der gemeinsam genutzten Seiten"
+
+#. type: tbl table
+#: ../man/ps.1:928 ../man/ps.1:965 ../man/ps.1:1862
+#, no-wrap
+msgid "tty"
+msgstr "tty"
+
+#. type: tbl table
+#: ../man/ps.1:928
+#, no-wrap
+msgid "the device number of the controlling tty"
+msgstr "Die Gerätenummer des steuernden TTY"
+
+#. type: tbl table
+#: ../man/ps.1:929 ../man/ps.1:1736
+#, no-wrap
+msgid "start_time"
+msgstr "start_time"
+
+#. type: tbl table
+#: ../man/ps.1:929
+#, no-wrap
+msgid "time process was started"
+msgstr "Zeit, zu der der Prozess gestartet wurde"
+
+#. type: tbl table
+#: ../man/ps.1:930
+#, no-wrap
+msgid "U"
+msgstr "U"
+
+#. type: tbl table
+#: ../man/ps.1:930 ../man/ps.1:1881
+#, no-wrap
+msgid "uid"
+msgstr "uid"
+
+#. type: tbl table
+#: ../man/ps.1:930
+#, no-wrap
+msgid "user ID number"
+msgstr "Benutzerkennung (ID)"
+
+#. type: tbl table
+#: ../man/ps.1:931 ../man/ps.1:955 ../man/ps.1:1900
+#, no-wrap
+msgid "user"
+msgstr "user"
+
+#. type: tbl table
+#: ../man/ps.1:931
+#, no-wrap
+msgid "user name"
+msgstr "Benutzername"
+
+#. type: tbl table
+#: ../man/ps.1:932 ../man/ps.1:1929
+#, no-wrap
+msgid "vsize"
+msgstr "vsize"
+
+#. type: tbl table
+#: ../man/ps.1:932
+#, no-wrap
+msgid "total VM size in KiB"
+msgstr "Gesamtgröße des virtuellen Speichers in KiB"
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "y"
+msgstr "y"
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "priority"
+msgstr "priority"
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "kernel scheduling priority"
+msgstr "Scheduling-Priorität des Kernels"
+
+#. type: SH
+#: ../man/ps.1:936
+#, no-wrap
+msgid "AIX FORMAT DESCRIPTORS"
+msgstr "AIX-FORMATDESKRIPTOREN"
+
+#. type: Plain text
+#: ../man/ps.1:949
+msgid "This B<ps> supports AIX format descriptors, which work somewhat like the formatting codes of I<printf>(1) and I<printf>(3). For example, the normal default output can be produced with this: B<ps -eo \"%p %y %x %c\">. The B<NORMAL> codes are described in the next section."
+msgstr "Diese Version von B<ps> unterstützt AIX-Formatdeskriptoren, die ähnlich den Formatierungscodes von I<printf>(1) und I<printf>(3) funktionieren. Die normale, standardmäßige Ausgabe kann folgendermaßen erzeugt werden: B<ps -eo \"%p %y %x %c\">. Die B<NORMAL>-Codes sind im nächsten Abschnitt beschrieben."
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<CODE>"
+msgstr "B<CODE>"
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<NORMAL>"
+msgstr "B<NORMAL>"
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<HEADER>"
+msgstr "B<KOPFZEILE>"
+
+#. type: tbl table
+#: ../man/ps.1:952
+#, no-wrap
+msgid "%C"
+msgstr "%C"
+
+#. type: tbl table
+#: ../man/ps.1:952 ../man/ps.1:1004 ../man/ps.1:1481
+#, no-wrap
+msgid "%CPU"
+msgstr "%CPU"
+
+#. type: tbl table
+#: ../man/ps.1:953
+#, no-wrap
+msgid "%G"
+msgstr "%G"
+
+#. type: tbl table
+#: ../man/ps.1:953 ../man/ps.1:1355
+#, no-wrap
+msgid "group"
+msgstr "group"
+
+#. type: tbl table
+#: ../man/ps.1:953 ../man/ps.1:1355
+#, no-wrap
+msgid "GROUP"
+msgstr "GROUP"
+
+#. type: tbl table
+#: ../man/ps.1:954
+#, no-wrap
+msgid "%P"
+msgstr "%P"
+
+#. type: tbl table
+#: ../man/ps.1:954 ../man/ps.1:1559
+#, no-wrap
+msgid "PPID"
+msgstr "PPID"
+
+#. type: tbl table
+#: ../man/ps.1:955
+#, no-wrap
+msgid "%U"
+msgstr "%U"
+
+#. type: tbl table
+#: ../man/ps.1:955 ../man/ps.1:1888 ../man/ps.1:1900
+#, no-wrap
+msgid "USER"
+msgstr "USER"
+
+#. type: tbl table
+#: ../man/ps.1:956
+#, no-wrap
+msgid "%a"
+msgstr "%a"
+
+#. type: tbl table
+#: ../man/ps.1:956 ../man/ps.1:1027
+#, no-wrap
+msgid "args"
+msgstr "args"
+
+#. type: tbl table
+#: ../man/ps.1:956 ../man/ps.1:957 ../man/ps.1:1027 ../man/ps.1:1168
+#: ../man/ps.1:1196 ../man/ps.1:1333 ../man/ps.1:1874
+#, no-wrap
+msgid "COMMAND"
+msgstr "BEFEHL"
+
+#. type: tbl table
+#: ../man/ps.1:957
+#, no-wrap
+msgid "%c"
+msgstr "%c"
+
+#. type: tbl table
+#: ../man/ps.1:957 ../man/ps.1:1168
+#, no-wrap
+msgid "comm"
+msgstr "comm"
+
+#. type: tbl table
+#: ../man/ps.1:958
+#, no-wrap
+msgid "%g"
+msgstr "%g"
+
+#. type: tbl table
+#: ../man/ps.1:958 ../man/ps.1:1588
+#, no-wrap
+msgid "rgroup"
+msgstr "rgroup"
+
+#. type: tbl table
+#: ../man/ps.1:958 ../man/ps.1:1588
+#, no-wrap
+msgid "RGROUP"
+msgstr "RGROUP"
+
+#. type: tbl table
+#: ../man/ps.1:959
+#, no-wrap
+msgid "%n"
+msgstr "%n"
+
+#. type: tbl table
+#: ../man/ps.1:959 ../man/ps.1:1443
+#, no-wrap
+msgid "nice"
+msgstr "nice"
+
+#. type: tbl table
+#: ../man/ps.1:959 ../man/ps.1:1435 ../man/ps.1:1443
+#, no-wrap
+msgid "NI"
+msgstr "NI"
+
+#. type: tbl table
+#: ../man/ps.1:960
+#, no-wrap
+msgid "%p"
+msgstr "%p"
+
+#. type: tbl table
+#: ../man/ps.1:960 ../man/ps.1:1515
+#, no-wrap
+msgid "PID"
+msgstr "PID"
+
+#. type: tbl table
+#: ../man/ps.1:961
+#, no-wrap
+msgid "%r"
+msgstr "%r"
+
+#. type: tbl table
+#: ../man/ps.1:961 ../man/ps.1:1502
+#, no-wrap
+msgid "pgid"
+msgstr "pgid"
+
+#. type: tbl table
+#: ../man/ps.1:961 ../man/ps.1:1502
+#, no-wrap
+msgid "PGID"
+msgstr "PGID"
+
+#. type: tbl table
+#: ../man/ps.1:962
+#, no-wrap
+msgid "%t"
+msgstr "%t"
+
+#. type: tbl table
+#: ../man/ps.1:962 ../man/ps.1:1271
+#, no-wrap
+msgid "etime"
+msgstr "etime"
+
+#. type: tbl table
+#: ../man/ps.1:962 ../man/ps.1:1271 ../man/ps.1:1275
+#, no-wrap
+msgid "ELAPSED"
+msgstr "ELAPSED"
+
+#. type: tbl table
+#: ../man/ps.1:963
+#, no-wrap
+msgid "%u"
+msgstr "%u"
+
+#. type: tbl table
+#: ../man/ps.1:963 ../man/ps.1:1626
+#, no-wrap
+msgid "ruser"
+msgstr "ruser"
+
+#. type: tbl table
+#: ../man/ps.1:963 ../man/ps.1:1626
+#, no-wrap
+msgid "RUSER"
+msgstr "RUSER"
+
+#. type: tbl table
+#: ../man/ps.1:964
+#, no-wrap
+msgid "%x"
+msgstr "%x"
+
+#. type: tbl table
+#: ../man/ps.1:964 ../man/ps.1:1827
+#, no-wrap
+msgid "time"
+msgstr "time"
+
+#. type: tbl table
+#: ../man/ps.1:964 ../man/ps.1:1075 ../man/ps.1:1208 ../man/ps.1:1213
+#: ../man/ps.1:1827 ../man/ps.1:1838
+#, no-wrap
+msgid "TIME"
+msgstr "TIME"
+
+#. type: tbl table
+#: ../man/ps.1:965
+#, no-wrap
+msgid "%y"
+msgstr "%y"
+
+#. type: tbl table
+#: ../man/ps.1:965 ../man/ps.1:1843
+#, no-wrap
+msgid "TTY"
+msgstr "TTY"
+
+#. type: tbl table
+#: ../man/ps.1:966
+#, no-wrap
+msgid "%z"
+msgstr "%z"
+
+#. type: tbl table
+#: ../man/ps.1:966 ../man/ps.1:1936
+#, no-wrap
+msgid "vsz"
+msgstr "vsz"
+
+#. type: tbl table
+#: ../man/ps.1:966 ../man/ps.1:1929 ../man/ps.1:1936
+#, no-wrap
+msgid "VSZ"
+msgstr "VSZ"
+
+#. type: SH
+#: ../man/ps.1:968
+#, no-wrap
+msgid "STANDARD FORMAT SPECIFIERS"
+msgstr "STANDARD-FORMATBEZEICHNER"
+
+#. type: Plain text
+#: ../man/ps.1:975
+msgid "Here are the different keywords that may be used to control the output format (e.g., with option B<-o>) or to sort the selected processes with the GNU-style B<--sort> option."
+msgstr "Hier sind die verschiedenen Schlüsselwörter, die zum Steuern des Ausgabeformats (zum Beispiel mit der Option B<-o>) oder zum Sortieren der ausgewählten Prozesse mit der GNU-artigen Option B<--sort> verwendet werden können."
+
+#. type: Plain text
+#: ../man/ps.1:978
+msgid "For example: B<ps -eo pid,\\:user,\\:args --sort user>"
+msgstr "Beispiel: B<ps -eo pid,\\:user,\\:args --sort user>"
+
+#. type: Plain text
+#: ../man/ps.1:983
+msgid "This version of B<ps> tries to recognize most of the keywords used in other implementations of B<ps>."
+msgstr "Diese Version von B<ps> versucht, die meisten der in anderen Implementierungen von B<ps> verwendeten Schlüsselwörter zu erkennen."
+
+#. type: Plain text
+#: ../man/ps.1:988
+msgid "The following user-defined format specifiers may contain spaces: B<args>, B<cmd>, B<comm>, B<command>, B<fname>, B<ucmd>, B<ucomm>, B<lstart>, B<bsdstart>, B<start>."
+msgstr "Die folgenden benutzerdefinierten Formatbezeichner dürfen Leerräume enthalten: B<args>, B<cmd>, B<comm>, B<command>, B<fname>, B<ucmd>, B<ucomm>, B<lstart>, B<bsdstart>, B<start>."
+
+#. type: Plain text
+#: ../man/ps.1:990
+msgid "Some keywords may not be available for sorting."
+msgstr "Einige Schlüsselwörter könnten nicht für die Sortierung verfügbar sein."
+
+#. type: tbl table
+#: ../man/ps.1:1002
+#, no-wrap
+msgid "CODE"
+msgstr "CODE"
+
+#. type: tbl table
+#: ../man/ps.1:1002
+#, no-wrap
+msgid "HEADER"
+msgstr "HEADER"
+
+#. type: tbl table
+#: ../man/ps.1:1004
+#, no-wrap
+msgid "%cpu"
+msgstr "%cpu"
+
+#. type: tbl table
+#: ../man/ps.1:1010
+#, no-wrap
+msgid ""
+"cpu utilization of the process in \"##.#\" format. Currently, it is the CPU\n"
+"time used divided by the time the process has been running (cputime/realtime\n"
+"ratio), expressed as a percentage. It will not add up to 100% unless you are\n"
+"lucky. (alias\n"
+"B<pcpu>)."
+msgstr "CPU-Nutzung des Prozesses im Format »##.#«. Gegenwärtig ist es die CPU-Zeit dividiert durch die Zeit, die der Prozess bisher läuft (CPU-Zeit/Echtzeit-Verhältnis), ausgedrückt als Prozentwert. Wenn Sie nicht gerade Glück haben, wird dieser Wert nicht auf 100% aufsummieren (alias B<pcpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1012
+#, no-wrap
+msgid "%mem"
+msgstr "%mem"
+
+#. type: tbl table
+#: ../man/ps.1:1012 ../man/ps.1:1526
+#, no-wrap
+msgid "%MEM"
+msgstr "%MEM"
+
+#. type: tbl table
+#: ../man/ps.1:1016
+#, no-wrap
+msgid ""
+"ratio of the process's resident set size to the physical memory on the\n"
+"machine, expressed as a percentage. (alias\n"
+"B<pmem>)."
+msgstr "Prozentuales Verhältnis der Hauptspeicherbelegung des Prozesses (»resident set size«) zur Größe des physischen Speichers der Maschine (alias B<pmem>)."
+
+#. type: tbl table
+#: ../man/ps.1:1018
+#, no-wrap
+msgid "ag_id"
+msgstr "ag_id"
+
+#. type: tbl table
+#: ../man/ps.1:1018
+#, no-wrap
+msgid "AGID"
+msgstr "AGID"
+
+#. type: tbl table
+#: ../man/ps.1:1021
+#, no-wrap
+msgid ""
+"The autogroup identifier associated with a process which operates in conjunction\n"
+"with the CFS scheduler to improve interactive desktop performance."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1023
+#, no-wrap
+msgid "ag_nice"
+msgstr "ag_nice"
+
+#. type: tbl table
+#: ../man/ps.1:1023
+#, no-wrap
+msgid "AGNI"
+msgstr "AGNI"
+
+#. type: tbl table
+#: ../man/ps.1:1025
+#, no-wrap
+msgid "The autogroup nice value which affects scheduling of all processes in that group."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1042
+#, no-wrap
+msgid ""
+"command with all its arguments as a string. Modifications to the arguments\n"
+"may be shown. The output in this column may contain spaces. A process\n"
+"marked E<lt>defunctE<gt> is partly dead, waiting to be fully destroyed by its parent.\n"
+"Sometimes the process args will be unavailable; when this happens,\n"
+"B<ps>\n"
+"will instead print the executable name in brackets. (alias\n"
+"B<cmd>, B<command>).\n"
+"See also the\n"
+"B<comm>\n"
+"format keyword, the\n"
+"B<-f>\n"
+"option, and the\n"
+"B<c>\n"
+"option.\n"
+msgstr "Befehl mit allen seinen Argumenten als Zeichenkette. Modifikationen der Argumente können angezeigt werden. Die Ausgabe in dieser Spalte darf Leerräume enthalten. Ein als E<lt>defunctE<gt> markierter Prozess ist teilweise tot und wartet darauf, von seinem Elternprozess endgültig zerstört zu werden. Gelegentlich sind die Argumente des Prozesses nicht verfügbar. Falls die passiert, gibt B<ps> stattdessen den Namen der ausführbaren Datei in Klammern aus (alias B<cmd>, B<command>). Siehe auch das Formatschlüsselwort B<comm> sowie die Optionen B<-f> und B<c>.\n"
+
+#. type: tbl table
+#: ../man/ps.1:1042 ../man/ps.1:1116 ../man/ps.1:1118 ../man/ps.1:1120
+#: ../man/ps.1:1122 ../man/ps.1:1124 ../man/ps.1:1126 ../man/ps.1:1128
+#: ../man/ps.1:1130 ../man/ps.1:1142 ../man/ps.1:1144 ../man/ps.1:1146
+#: ../man/ps.1:1148 ../man/ps.1:1150 ../man/ps.1:1152 ../man/ps.1:1154
+#: ../man/ps.1:1156 ../man/ps.1:1180 ../man/ps.1:1540 ../man/ps.1:1542
+#: ../man/ps.1:1544 ../man/ps.1:1546 ../man/ps.1:1548 ../man/ps.1:1550
+#: ../man/ps.1:1552 ../man/ps.1:1554
+#, no-wrap
+msgid ".br\n"
+msgstr ".br\n"
+
+#. type: tbl table
+#: ../man/ps.1:1058
+#, no-wrap
+msgid ""
+"When specified last, this column will extend to the edge of the display. If\n"
+"B<ps>\n"
+"can not determine display width, as when output is redirected (piped) into a\n"
+"file or another command, the output width is undefined (it may be 80,\n"
+"unlimited, determined by the\n"
+"B<TERM>\n"
+"variable, and so on). The\n"
+"B<COLUMNS>\n"
+"environment variable or\n"
+"B<--cols>\n"
+"option may be used to exactly determine the width in this case. The\n"
+"B<w>\n"
+"or\n"
+"B<-w>\n"
+"option may be also be used to adjust width."
+msgstr "Wenn dies als Letztes angegeben wird, dann wird die letzte Spalte bis zum Rand des Bildschirms verbreitert. Falls B<ps> die Bildschirmbreite nicht ermitteln kann, wenn die Ausgabe beispielsweise in eine Datei oder an einen anderen Befehl weitergeleitet wird, ist die Ausgabebreite nicht definiert (sie könnte 80, unbegrenzt, durch die Variable B<TERM> bestimmt usw. sein). Die Umgebungsvariable B<COLUMNS> oder die Option B<--cols> können dazu verwendet werden, in diesem Fall die Breite genau festzulegen. Die Optionen B<w> oder B<-w> können auch zur Anpassung der Breite verwendet werden."
+
+#. type: tbl table
+#: ../man/ps.1:1060
+#, no-wrap
+msgid "blocked"
+msgstr "blocked"
+
+#. type: tbl table
+#: ../man/ps.1:1060 ../man/ps.1:1700
+#, no-wrap
+msgid "BLOCKED"
+msgstr "BLOCKED"
+
+#. type: tbl table
+#: ../man/ps.1:1066
+#, no-wrap
+msgid ""
+"mask of the blocked signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64-bit mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_block>, B<sigmask>)."
+msgstr "Maske der blockierten Signale, siehe I<signal>(7). Entsprechend der Feldbreite wird eine 32- oder 64-Bit-Maske in hexadezimalem Format angezeigt, außer wenn die Option B<--signames> verwendet wird (alias B<sig_block>, B<sigmask>)."
+
+#. type: tbl table
+#: ../man/ps.1:1068
+#, no-wrap
+msgid "bsdstart"
+msgstr "bsdstart"
+
+#. type: tbl table
+#: ../man/ps.1:1068 ../man/ps.1:1736
+#, no-wrap
+msgid "START"
+msgstr "START"
+
+#. type: tbl table
+#: ../man/ps.1:1073
+#, no-wrap
+msgid ""
+"time the command started. If the process was started less than 24 hours ago,\n"
+"the output format is \"\\ HH:MM\", else it is \" Mmm:SS\" (where Mmm is the three\n"
+"letters of the month). See also\n"
+"B<lstart>,B<\\ start>,B<\\ start_time>, andB<\\ stime>."
+msgstr "Zeitpunkt, zu dem der Befehl gestartet wurde. Falls der Prozess vor weniger als 24 Stunden gestartet wurde, ist das Ausgabeformat »\\ HH:MM«, anderenfalls ist es » Mmm:SS« (wobei Mmm die aus drei Buchstaben bestehende Kurzform des Monats ist). Siehe auch B<lstart>, B<start>, B<start_time> und B<stime>."
+
+#. type: tbl table
+#: ../man/ps.1:1075
+#, no-wrap
+msgid "bsdtime"
+msgstr "bsdtime"
+
+#. type: tbl table
+#: ../man/ps.1:1079
+#, no-wrap
+msgid ""
+"accumulated cpu time, user + system. The display format is usually\n"
+"\"MMM:SS\", but can be shifted to the right if the process used more than 999\n"
+"minutes of cpu time."
+msgstr "Kumulierte CPU-Zeit, Benutzer + System. Das Anzeigeformat ist üblicherweise »MMM:SS«, kann aber auch nach rechts verschoben werden, falls der Prozess mehr als 999 Minuten CPU-Zeit verbraucht hat."
+
+# FIXME Zeilenumbrüche…?
+#. type: tbl table
+#: ../man/ps.1:1085
+#, no-wrap
+msgid ""
+"processor utilization. Currently, this is the integer value of the percent\n"
+"usage over the lifetime of the process. (see\n"
+"B<%cpu>)."
+msgstr "Prozessornutzung. Gegenwärtig ist dies der ganzzahlige Wert der prozentualen Nutzung über die gesamte Lebensdauer des Prozesses (siehe B<%cpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1087
+#, no-wrap
+msgid "caught"
+msgstr "caught"
+
+#. type: tbl table
+#: ../man/ps.1:1087 ../man/ps.1:1686
+#, no-wrap
+msgid "CAUGHT"
+msgstr "CAUGHT"
+
+#. type: tbl table
+#: ../man/ps.1:1093
+#, no-wrap
+msgid ""
+"mask of the caught signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64 bits mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_catch>, B<sigcatch>)."
+msgstr "Maske der abgefangenen Signale, siehe I<signal>(7). Entsprechend der Feldbreite wird eine 32- oder 64-Bit-Maske in hexadezimalem Format angezeigt, außer wenn die Option B<--signames> verwendet wird (alias B<sig_catch>,B<\\ sigcatch>)."
+
+#. type: tbl table
+#: ../man/ps.1:1095
+#, no-wrap
+msgid "cgname"
+msgstr "cgname"
+
+#. type: tbl table
+#: ../man/ps.1:1095
+#, no-wrap
+msgid "CGNAME"
+msgstr "CGNAME"
+
+#. type: tbl table
+#: ../man/ps.1:1097
+#, no-wrap
+msgid "display name of control groups to which the process belongs."
+msgstr "zeigt den Namen der Control-Gruppen an, zu denen der Prozess gehört."
+
+#. type: tbl table
+#: ../man/ps.1:1099
+#, no-wrap
+msgid "cgroup"
+msgstr "cgroup"
+
+#. type: tbl table
+#: ../man/ps.1:1099
+#, no-wrap
+msgid "CGROUP"
+msgstr "CGROUP"
+
+#. type: tbl table
+#: ../man/ps.1:1101
+#, no-wrap
+msgid "display control groups to which the process belongs."
+msgstr "zeigt die Control-Gruppen an, zu denen der Prozess gehört."
+
+#. type: tbl table
+#: ../man/ps.1:1103
+#, no-wrap
+msgid "cgroupns"
+msgstr "cgroupns"
+
+#. type: tbl table
+#: ../man/ps.1:1103
+#, no-wrap
+msgid "CGROUPNS"
+msgstr "CGROUPNS"
+
+#. type: tbl table
+#: ../man/ps.1:1107 ../man/ps.1:1374 ../man/ps.1:1427 ../man/ps.1:1433
+#: ../man/ps.1:1524 ../man/ps.1:1836 ../man/ps.1:1911 ../man/ps.1:1922
+#, no-wrap
+msgid ""
+"Unique inode number describing the namespace the process belongs to.\n"
+"See\n"
+"I<namespaces>(7)."
+msgstr ""
+"Eindeutige Inode-Nummer, welche den Namennsraum angibt, zu dem der\n"
+"Prozess gehört. Siehe I<namespaces>(7)."
+
+#. type: tbl table
+#: ../man/ps.1:1109
+#, no-wrap
+msgid "class"
+msgstr "class"
+
+#. type: tbl table
+#: ../man/ps.1:1109 ../man/ps.1:1135
+#, no-wrap
+msgid "CLS"
+msgstr "CLS"
+
+#. type: tbl table
+#: ../man/ps.1:1113 ../man/ps.1:1139
+#, no-wrap
+msgid ""
+"scheduling class of the process. (alias\n"
+"B<policy>, B<cls>).\n"
+"Field's possible values are:\n"
+msgstr "Scheduling-Klasse des Prozesses (alias B<policy>, B<cls>). Mögliche Werte des Feldes sind:\n"
+
+#. type: tbl table
+#: ../man/ps.1:1113 ../man/ps.1:1139 ../man/ps.1:1537
+#, no-wrap
+msgid ".sp 1\n"
+msgstr ".sp 1\n"
+
+#. type: tbl table
+#: ../man/ps.1:1114 ../man/ps.1:1140 ../man/ps.1:1538
+#, no-wrap
+msgid ".in +9n\n"
+msgstr ".in +9n\n"
+
+#. type: tbl table
+#: ../man/ps.1:1116 ../man/ps.1:1142 ../man/ps.1:1540
+#, no-wrap
+msgid "-\tnot reported\n"
+msgstr "-\tnicht berichtet\n"
+
+#. type: tbl table
+#: ../man/ps.1:1118 ../man/ps.1:1144 ../man/ps.1:1542
+#, no-wrap
+msgid "TS\tSCHED_OTHER\n"
+msgstr "TS\tSCHED_OTHER\n"
+
+#. type: tbl table
+#: ../man/ps.1:1120 ../man/ps.1:1146 ../man/ps.1:1544
+#, no-wrap
+msgid "FF\tSCHED_FIFO\n"
+msgstr "FF\tSCHED_FIFO\n"
+
+#. type: tbl table
+#: ../man/ps.1:1122 ../man/ps.1:1148 ../man/ps.1:1546
+#, no-wrap
+msgid "RR\tSCHED_RR\n"
+msgstr "RR\tSCHED_RR\n"
+
+#. type: tbl table
+#: ../man/ps.1:1124 ../man/ps.1:1150 ../man/ps.1:1548
+#, no-wrap
+msgid "B\tSCHED_BATCH\n"
+msgstr "B\tSCHED_BATCH\n"
+
+#. type: tbl table
+#: ../man/ps.1:1126 ../man/ps.1:1152 ../man/ps.1:1550
+#, no-wrap
+msgid "ISO\tSCHED_ISO\n"
+msgstr "ISO\tSCHED_ISO\n"
+
+#. type: tbl table
+#: ../man/ps.1:1128 ../man/ps.1:1154 ../man/ps.1:1552
+#, no-wrap
+msgid "IDL\tSCHED_IDLE\n"
+msgstr "IDL\tSCHED_IDLE\n"
+
+#. type: tbl table
+#: ../man/ps.1:1130 ../man/ps.1:1156 ../man/ps.1:1554
+#, no-wrap
+msgid "DLN\tSCHED_DEADLINE\n"
+msgstr "DLN\tSCHED_DEADLINE\n"
+
+#. type: tbl table
+#: ../man/ps.1:1132 ../man/ps.1:1158 ../man/ps.1:1556
+#, no-wrap
+msgid "?\tunknown value\n"
+msgstr "?\tunbekannter Wert\n"
+
+#. type: tbl table
+#: ../man/ps.1:1132 ../man/ps.1:1158 ../man/ps.1:1556
+#, no-wrap
+msgid ".in\n"
+msgstr ".in\n"
+
+#. type: tbl table
+#: ../man/ps.1:1135
+#, no-wrap
+msgid "cls"
+msgstr "cls"
+
+#. type: tbl table
+#: ../man/ps.1:1161 ../man/ps.1:1867
+#, no-wrap
+msgid "CMD"
+msgstr "CMD"
+
+#. type: tbl table
+#: ../man/ps.1:1166
+#, no-wrap
+msgid ""
+"see\n"
+"B<args>.\n"
+"(alias\n"
+"B<args>, B<command>)."
+msgstr "Siehe B<args> (alias B<args>, B<command>)."
+
+#. type: tbl table
+#: ../man/ps.1:1180
+#, fuzzy, no-wrap
+#| msgid ""
+#| "command with all its arguments as a string.\n"
+#| "Modifications to the arguments may be shown.\n"
+#| "The output in this column may contain spaces.\n"
+#| "A process marked E<lt>defunctE<gt> is partly dead,\n"
+#| "waiting to be fully destroyed by its parent.\n"
+#| "Sometimes the process args will be unavailable; when this happens,\n"
+#| "B<ps>\n"
+#| "will instead print the executable name in brackets. (alias\n"
+#| "B<cmd>, B<command>).\n"
+#| "See also the\n"
+#| "B<comm>\n"
+#| "format keyword, the\n"
+#| "B<-f>\n"
+#| "option, and the\n"
+#| "B<c>\n"
+#| "option.\n"
+msgid ""
+"command name (only the executable name). The output in this column may\n"
+"contain spaces.\n"
+"(alias\n"
+"B<ucmd>, B<ucomm>).\n"
+"See also the\n"
+"B<args>\n"
+"format keyword, the\n"
+"B<-f>\n"
+"option, and the\n"
+"B<c>\n"
+"option.\n"
+msgstr "Befehl mit allen seinen Argumenten als Zeichenkette. Modifikationen der Argumente können angezeigt werden. Die Ausgabe in dieser Spalte darf Leerräume enthalten. Ein als E<lt>defunctE<gt> markierter Prozess ist teilweise tot und wartet darauf, von seinem Elternprozess endgültig zerstört zu werden. Gelegentlich sind die Argumente des Prozesses nicht verfügbar. Falls die passiert, gibt B<ps> stattdessen den Namen der ausführbaren Datei in Klammern aus (alias B<cmd>, B<command>). Siehe auch das Formatschlüsselwort B<comm> sowie die Optionen B<-f> und B<c>.\n"
+
+#. type: tbl table
+#: ../man/ps.1:1194
+#, no-wrap
+msgid ""
+"When specified last, this column will extend to the edge of the display. If\n"
+"B<ps>\n"
+"can not determine display width, as when output is redirected (piped) into a\n"
+"file or another command, the output width is undefined (it may be 80,\n"
+"unlimited, determined by the\n"
+"B<TERM>\n"
+"variable, and so on). The\n"
+"B<COLUMNS>\n"
+"environment variable or\n"
+"B<--cols>\n"
+"option may be used to exactly determine the width in this case. The\n"
+"B<w>\\ orB<\\ -w>\n"
+"option may be also be used to adjust width."
+msgstr "Wenn dies als Letztes angegeben wird, dann wird die letzte Spalte bis zum Rand des Bildschirms verbreitert. Falls B<ps> die Bildschirmbreite nicht ermitteln kann, wenn die Ausgabe beispielsweise in eine Datei oder an einen anderen Befehl weitergeleitet wird, ist die Ausgabebreite nicht definiert (sie könnte 80, unbegrenzt, durch die Variable B<TERM> bestimmt usw. sein). Die Umgebungsvariable B<COLUMNS> oder die Option B<--cols> können dazu verwendet werden, in diesem Fall die Breite genau festzulegen. Die Optionen B<w> oder B<-w> können auch zur Anpassung der Breite verwendet werden."
+
+#. type: tbl table
+#: ../man/ps.1:1196
+#, no-wrap
+msgid "command"
+msgstr "command"
+
+#. type: tbl table
+#: ../man/ps.1:1201
+#, no-wrap
+msgid ""
+"See\n"
+"B<args>.\n"
+"(alias\n"
+"B<args>, B<command>)."
+msgstr "Siehe B<args> (alias B<args>, B<Befehl>)."
+
+#. type: tbl table
+#: ../man/ps.1:1203
+#, no-wrap
+msgid "cp"
+msgstr "cp"
+
+#. type: tbl table
+#: ../man/ps.1:1203
+#, no-wrap
+msgid "CP"
+msgstr "CP"
+
+#. type: tbl table
+#: ../man/ps.1:1206
+#, no-wrap
+msgid ""
+"per-mill (tenths of a percent) CPU usage. (see\n"
+"B<%cpu>)."
+msgstr "CPU-Nutzung in Promille (dem Zehntel eines Prozents; siehe B<%cpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1208
+#, no-wrap
+msgid "cputime"
+msgstr "cputime"
+
+#. type: tbl table
+#: ../man/ps.1:1211
+#, no-wrap
+msgid ""
+"cumulative CPU time, \"[DD-]hh:mm:ss\" format. (alias\n"
+"B<time>)."
+msgstr "Kumulative CPU-Zeit im Format »[TT-]hh:mm:ss« (alias B<time>)."
+
+#. type: tbl table
+#: ../man/ps.1:1213
+#, no-wrap
+msgid "cputimes"
+msgstr "cputimes"
+
+#. type: tbl table
+#: ../man/ps.1:1216
+#, no-wrap
+msgid ""
+"cumulative CPU time in seconds (alias\n"
+"B<times>)."
+msgstr "Kumulative CPU-Zeit in Sekunden (alias B<times>)."
+
+#. type: tbl table
+#: ../man/ps.1:1218
+#, no-wrap
+msgid "cuc"
+msgstr "cuc"
+
+#. type: tbl table
+#: ../man/ps.1:1218
+#, no-wrap
+msgid "%CUC"
+msgstr "%CUC"
+
+#. type: tbl table
+#: ../man/ps.1:1226
+#, no-wrap
+msgid ""
+"The CPU utilization of a process, including dead children, in an extended \"##.###\" format.\n"
+"(see also\n"
+"B<%cpu>,\n"
+"B<c>,\n"
+"B<cp>,\n"
+"B<cuu>,\n"
+"B<pcpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1228
+#, no-wrap
+msgid "cuu"
+msgstr "cuu"
+
+#. type: tbl table
+#: ../man/ps.1:1228
+#, no-wrap
+msgid "%CUU"
+msgstr "%CUU"
+
+#. type: tbl table
+#: ../man/ps.1:1236
+#, no-wrap
+msgid ""
+"The CPU utilization of a process in an extended \"##.###\" format.\n"
+"(see also\n"
+"B<%cpu>,\n"
+"B<c>,\n"
+"B<cp>,\n"
+"B<cuc>,\n"
+"B<pcpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1238
+#, no-wrap
+msgid "drs"
+msgstr "drs"
+
+#. type: tbl table
+#: ../man/ps.1:1238
+#, no-wrap
+msgid "DRS"
+msgstr "DRS"
+
+#. type: tbl table
+#: ../man/ps.1:1247
+#, no-wrap
+msgid ""
+"data resident set size, the amount of private memory I<reserved> by a process.\n"
+"It is also known as DATA. Such memory may not yet be mapped to\n"
+"B<rss>\n"
+"but will always be included\n"
+"included in the\n"
+"B<vsz>\n"
+"amount.\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1249
+#, no-wrap
+msgid "egid"
+msgstr "egid"
+
+#. type: tbl table
+#: ../man/ps.1:1249
+#, no-wrap
+msgid "EGID"
+msgstr "EGID"
+
+#. type: tbl table
+#: ../man/ps.1:1252
+#, no-wrap
+msgid ""
+"effective group ID number of the process as a decimal integer. (alias\n"
+"B<gid>)."
+msgstr "Effektive Gruppenkennung (ID-Nummer) des Prozesses als dezimale Ganzzahl (alias B<gid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1254
+#, no-wrap
+msgid "egroup"
+msgstr "egroup"
+
+#. type: tbl table
+#: ../man/ps.1:1254
+#, no-wrap
+msgid "EGROUP"
+msgstr "EGROUP"
+
+#. type: tbl table
+#: ../man/ps.1:1259
+#, no-wrap
+msgid ""
+"effective group ID of the process. This will be the textual group ID, if it\n"
+"can be obtained and the field width permits, or a decimal representation\n"
+"otherwise. (alias\n"
+"B<group>)."
+msgstr "Effektive Gruppenkennung des Prozesses. Dies wird die Gruppenkennung in Textform, falls diese ermittelt werden kann und es die Feldbreite erlaubt, oder anderenfalls eine Dezimaldarstellung sein (alias B<group>)."
+
+#. type: tbl table
+#: ../man/ps.1:1261
+#, no-wrap
+msgid "eip"
+msgstr "eip"
+
+#. type: tbl table
+#: ../man/ps.1:1261
+#, no-wrap
+msgid "EIP"
+msgstr "EIP"
+
+#. type: tbl table
+#: ../man/ps.1:1264
+#, no-wrap
+msgid ""
+"instruction pointer. As of kernel 4.9.xx will be zeroed out unless task is\n"
+"exiting or being core dumped."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1266
+#, no-wrap
+msgid "esp"
+msgstr "esp"
+
+#. type: tbl table
+#: ../man/ps.1:1266
+#, no-wrap
+msgid "ESP"
+msgstr "ESP"
+
+#. type: tbl table
+#: ../man/ps.1:1269
+#, no-wrap
+msgid ""
+"stack pointer. As of kernel 4.9.xx will be zeroed out unless task is\n"
+"exiting or being core dumped."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1273
+#, no-wrap
+msgid "elapsed time since the process was started, in the form [[DD-]hh:]mm:ss."
+msgstr "Vergangene Zeit, seit der Prozess gestartet wurde, in der Form [[TT-]hh:]mm:ss."
+
+#. type: tbl table
+#: ../man/ps.1:1275
+#, no-wrap
+msgid "etimes"
+msgstr "etimes"
+
+#. type: tbl table
+#: ../man/ps.1:1277
+#, no-wrap
+msgid "elapsed time since the process was started, in seconds."
+msgstr "Vergangene Zeit, seit der Prozess gestartet wurde, in Sekunden."
+
+#. type: tbl table
+#: ../man/ps.1:1279
+#, no-wrap
+msgid "euid"
+msgstr "euid"
+
+#. type: tbl table
+#: ../man/ps.1:1279
+#, no-wrap
+msgid "EUID"
+msgstr "EUID"
+
+#. type: tbl table
+#: ../man/ps.1:1282
+#, no-wrap
+msgid ""
+"effective user ID (alias\n"
+"B<uid>)."
+msgstr ""
+"Effektive Benutzerkennung (alias\n"
+"B<uid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1284
+#, no-wrap
+msgid "euser"
+msgstr "euser"
+
+#. type: tbl table
+#: ../man/ps.1:1284
+#, no-wrap
+msgid "EUSER"
+msgstr "EUSER"
+
+#. type: tbl table
+#: ../man/ps.1:1290
+#, no-wrap
+msgid ""
+"effective user name. This will be the textual user ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise. The\n"
+"B<n>\n"
+"option can be used to force the decimal representation. (alias\n"
+"B<uname>, B<user>)."
+msgstr "Effektiver Benutzername. Dies wird die Benutzerkennung in Textform, falls diese ermittelt werden kann und die Feldgröße es erlaubt, oder anderenfalls eine Dezimaldarstellung sein. Die Option B<n> kann zum Erzwingen der Dezimaldarstellung verwendet werden (alias B<uname>, B<user>)."
+
+#. type: tbl table
+#: ../man/ps.1:1292
+#, no-wrap
+msgid "exe"
+msgstr "exe"
+
+#. type: tbl table
+#: ../man/ps.1:1292
+#, no-wrap
+msgid "EXE"
+msgstr "EXE"
+
+#. type: tbl table
+#: ../man/ps.1:1298
+#, no-wrap
+msgid ""
+"path to the executable. Useful if path cannot be printed via\n"
+"B<cmd>, B<comm>\n"
+"or\n"
+"B<args>\n"
+"format options."
+msgstr ""
+"Pfad zur ausführbaren Datei. Dies ist sinnvoll, wenn der Pfad\n"
+"nicht über die Formatierungsoptionen B<cmd>, B<comm>\n"
+"oder B<args> ausgegeben werden kann."
+
+#. type: tbl table
+#: ../man/ps.1:1300 ../man/ps.1:1319 ../man/ps.1:1326
+#, no-wrap
+msgid "F"
+msgstr "F"
+
+#. type: tbl table
+#: ../man/ps.1:1305
+#, no-wrap
+msgid ""
+"flags associated with the process, see the\n"
+"B<PROCESS FLAGS>\n"
+"section. (alias\n"
+"B<flag>, B<flags>)."
+msgstr "Dem Prozess zugehörige Schalter, siehe den Abschnitt B<PROZESSSCHALTER> (alias B<flag>, B<flags>)."
+
+#. type: tbl table
+#: ../man/ps.1:1307
+#, no-wrap
+msgid "fgid"
+msgstr "fgid"
+
+#. type: tbl table
+#: ../man/ps.1:1307
+#, no-wrap
+msgid "FGID"
+msgstr "FGID"
+
+#. type: tbl table
+#: ../man/ps.1:1310
+#, no-wrap
+msgid ""
+"filesystem access group\\ ID. (alias\n"
+"B<fsgid>)."
+msgstr "Dateisystemzugriffsgruppenkennung (alias B<fsgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1312
+#, no-wrap
+msgid "fgroup"
+msgstr "fgroup"
+
+#. type: tbl table
+#: ../man/ps.1:1312
+#, no-wrap
+msgid "FGROUP"
+msgstr "FGROUP"
+
+#. type: tbl table
+#: ../man/ps.1:1317
+#, no-wrap
+msgid ""
+"filesystem access group ID. This will be the textual group ID, if it can\n"
+"be obtained and the field width permits, or a decimal representation\n"
+"otherwise. (alias\n"
+"B<fsgroup>)."
+msgstr "Dateisystemzugriffsgruppenkennung. Dies wird die Gruppenkennung in Textform, falls diese ermittelt werden kann und es die Feldgröße erlaubt, oder anderenfalls eine Dezimaldarstellung sein (alias B<fsgroup>)."
+
+#. type: tbl table
+#: ../man/ps.1:1319
+#, no-wrap
+msgid "flag"
+msgstr "flag"
+
+#. type: tbl table
+#: ../man/ps.1:1324
+#, no-wrap
+msgid ""
+"see\n"
+"B<f>.\n"
+"(alias\n"
+"B<f>, B<flags>)."
+msgstr "Siehe B<f> (alias B<f>, B<flags>)."
+
+#. type: tbl table
+#: ../man/ps.1:1331
+#, no-wrap
+msgid ""
+"see\n"
+"B<f>.\n"
+"(alias\n"
+"B<f>, B<flag>)."
+msgstr "Siehe B<f> (alias B<f>, B<flag>)."
+
+#. type: tbl table
+#: ../man/ps.1:1333
+#, no-wrap
+msgid "fname"
+msgstr "fname"
+
+#. type: tbl table
+#: ../man/ps.1:1336
+#, no-wrap
+msgid ""
+"first 8 bytes of the base name of the process's executable file. The output\n"
+"in this column may contain spaces."
+msgstr "Die ersten 8 Byte des Basisnamens der ausführbaren Datei des Prozesses. Die Ausgabe in dieser Spalte kann Leerräume enthalten."
+
+#. type: tbl table
+#: ../man/ps.1:1338
+#, no-wrap
+msgid "fuid"
+msgstr "fuid"
+
+#. type: tbl table
+#: ../man/ps.1:1338
+#, no-wrap
+msgid "FUID"
+msgstr "FUID"
+
+#. type: tbl table
+#: ../man/ps.1:1341
+#, no-wrap
+msgid ""
+"filesystem access user ID. (alias\n"
+"B<fsuid>)."
+msgstr "Dateisystemzugriffsbenutzerkennung (alias B<fsuid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1343
+#, no-wrap
+msgid "fuser"
+msgstr "fuser"
+
+#. type: tbl table
+#: ../man/ps.1:1343
+#, no-wrap
+msgid "FUSER"
+msgstr "FUSER"
+
+#. type: tbl table
+#: ../man/ps.1:1346
+#, no-wrap
+msgid ""
+"filesystem access user ID. This will be the textual user ID, if it can be\n"
+"obtained and the field width permits, or a decimal representation otherwise."
+msgstr "Dateisystemzugriffsbenutzerkennung. Dies wird die Benutzerkennung in Textform, falls diese ermittelt werden kann und es die Feldgröße erlaubt, oder anderenfalls eine Dezimaldarstellung sein."
+
+#. type: tbl table
+#: ../man/ps.1:1348
+#, no-wrap
+msgid "gid"
+msgstr "gid"
+
+#. type: tbl table
+#: ../man/ps.1:1348
+#, no-wrap
+msgid "GID"
+msgstr "GID"
+
+#. type: tbl table
+#: ../man/ps.1:1353
+#, no-wrap
+msgid ""
+"see\n"
+"B<egid>.\n"
+"(alias\n"
+"B<egid>)."
+msgstr "Siehe B<egid> (alias B<egid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1360
+#, no-wrap
+msgid ""
+"see\n"
+"B<egroup>.\n"
+"(alias\n"
+"B<egroup>)."
+msgstr "Siehe B<egroup> (alias B<egroup>)."
+
+#. type: tbl table
+#: ../man/ps.1:1362
+#, no-wrap
+msgid "ignored"
+msgstr "ignored"
+
+#. type: tbl table
+#: ../man/ps.1:1362 ../man/ps.1:1693
+#, no-wrap
+msgid "IGNORED"
+msgstr "IGNORED"
+
+#. type: tbl table
+#: ../man/ps.1:1368
+#, no-wrap
+msgid ""
+"mask of the ignored signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64 bits mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_ignore>, B<sigignore>)."
+msgstr "Maske der ignorierten Signale, siehe I<signal>(7). Entsprechend der Feldbreite wird eine 32- oder 64-Bit-Maske in hexadezimalem Format angezeigt, außer wenn die Option B<--signames> verwendet wird (alias B<sig_ignore>, B<sigignore>)."
+
+#. type: tbl table
+#: ../man/ps.1:1370
+#, no-wrap
+msgid "ipcns"
+msgstr "ipcns"
+
+#. type: tbl table
+#: ../man/ps.1:1370
+#, no-wrap
+msgid "IPCNS"
+msgstr "IPCNS"
+
+#. type: tbl table
+#: ../man/ps.1:1376
+#, no-wrap
+msgid "label"
+msgstr "label"
+
+#. type: tbl table
+#: ../man/ps.1:1376
+#, no-wrap
+msgid "LABEL"
+msgstr "LABEL"
+
+#. type: tbl table
+#: ../man/ps.1:1381
+#, no-wrap
+msgid ""
+"security label, most commonly used for SELinux context data. This is for\n"
+"the\n"
+"I<Mandatory Access Control>\n"
+"(\"MAC\") found on high-security systems."
+msgstr "Sicherheitslabel, das am häufigsten für SELinux-Kontextdaten verwendet wird. Dies ist für die I<Mandatory Access Control> (»MAC«) auf Hochsicherheitssystemen gedacht."
+
+#. type: tbl table
+#: ../man/ps.1:1383
+#, no-wrap
+msgid "lstart"
+msgstr "lstart"
+
+#. type: tbl table
+#: ../man/ps.1:1383 ../man/ps.1:1729
+#, no-wrap
+msgid "STARTED"
+msgstr "STARTED"
+
+#. type: tbl table
+#: ../man/ps.1:1386
+#, no-wrap
+msgid ""
+"time the command started. This will be in the form \"DDD mmm HH:MM:SS YYY\"\n"
+"unless changed by the B<-D> option."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1388
+#, no-wrap
+msgid "lsession"
+msgstr "lsession"
+
+#. type: tbl table
+#: ../man/ps.1:1388
+#, no-wrap
+msgid "SESSION"
+msgstr "SESSION"
+
+#. type: tbl table
+#: ../man/ps.1:1391
+#, no-wrap
+msgid ""
+"displays the login session identifier of a process,\n"
+"if systemd support has been included."
+msgstr "zeigt den Anmeldesitzungs-Bezeichner eines Prozesses an, falls Unterstützung für Systemd verfügbar ist."
+
+#. type: tbl table
+#: ../man/ps.1:1393
+#, no-wrap
+msgid "luid"
+msgstr "luid"
+
+#. type: tbl table
+#: ../man/ps.1:1393
+#, no-wrap
+msgid "LUID"
+msgstr "LUID"
+
+#. type: tbl table
+#: ../man/ps.1:1395
+#, no-wrap
+msgid "displays Login ID associated with a process."
+msgstr "zeigt die Anmeldekennung an, die dem Prozess zugeordnet ist."
+
+#. type: tbl table
+#: ../man/ps.1:1397
+#, no-wrap
+msgid "lwp"
+msgstr "lwp"
+
+#. type: tbl table
+#: ../man/ps.1:1397
+#, no-wrap
+msgid "LWP"
+msgstr "LWP"
+
+#. type: tbl table
+#: ../man/ps.1:1403
+#, fuzzy, no-wrap
+msgid ""
+"light weight process (thread) ID of the dispatchable entity (alias\n"
+"B<spid>,B<\\ tid>).\n"
+"See\n"
+"B<tid>\n"
+"for additional information."
+msgstr "Leichtgewichtige Prozess- bzw. Threadkennung (ID-Nummer) der … (alias B<spid>,B<\\ tid>). Siehe B<tid> für zusätzliche Informationen."
+
+#. type: tbl table
+#: ../man/ps.1:1405
+#, no-wrap
+msgid "lxc"
+msgstr "lxc"
+
+#. type: tbl table
+#: ../man/ps.1:1405
+#, no-wrap
+msgid "LXC"
+msgstr "LXC"
+
+#. type: tbl table
+#: ../man/ps.1:1408
+#, no-wrap
+msgid ""
+"The name of the lxc container within which a task is running.\n"
+"If a process is not running inside a container, a dash ('-') will be shown."
+msgstr ""
+"Der Name des LXC-Containers, in dem die Task läuft. Falls ein Prozess\n"
+"nicht innerhalb eines Containers läuft, wird ein Bindestrich (»-«) angezeigt."
+
+#. type: tbl table
+#: ../man/ps.1:1410
+#, no-wrap
+msgid "machine"
+msgstr "machine"
+
+#. type: tbl table
+#: ../man/ps.1:1410
+#, no-wrap
+msgid "MACHINE"
+msgstr "MACHINE"
+
+#. type: tbl table
+#: ../man/ps.1:1413
+#, no-wrap
+msgid ""
+"displays the machine name for processes assigned to VM or container,\n"
+"if systemd support has been included."
+msgstr "zeigt den Rechnernamen für Prozesse an, die einer virtuellen Maschine oder einem Container zugeordnet sind, falls Unterstützung für Systemd verfügbar ist."
+
+#. type: tbl table
+#: ../man/ps.1:1415
+#, no-wrap
+msgid "MAJFLT"
+msgstr "MAJFLT"
+
+#. type: tbl table
+#: ../man/ps.1:1417
+#, no-wrap
+msgid "The number of major page faults that have occurred with this process."
+msgstr "Die Anzahl der großen Seitenfehlerausnahmebehandlungen, die sich mit diesem Prozess ereignet haben."
+
+#. type: tbl table
+#: ../man/ps.1:1419
+#, no-wrap
+msgid "MINFLT"
+msgstr "MINFLT"
+
+#. type: tbl table
+#: ../man/ps.1:1421
+#, no-wrap
+msgid "The number of minor page faults that have occurred with this process."
+msgstr "Die Anzahl der geringfügigen Seitenfehlerausnahmebehandlungen, die sich mit diesem Prozess ereignet haben."
+
+#. type: tbl table
+#: ../man/ps.1:1423
+#, no-wrap
+msgid "mntns"
+msgstr "mntns"
+
+#. type: tbl table
+#: ../man/ps.1:1423
+#, no-wrap
+msgid "MNTNS"
+msgstr "MNTNS"
+
+#. type: tbl table
+#: ../man/ps.1:1429
+#, no-wrap
+msgid "netns"
+msgstr "netns"
+
+#. type: tbl table
+#: ../man/ps.1:1429
+#, no-wrap
+msgid "NETNS"
+msgstr "NETNS"
+
+#. type: tbl table
+#: ../man/ps.1:1435
+#, no-wrap
+msgid "ni"
+msgstr "ni"
+
+#. type: tbl table
+#: ../man/ps.1:1441
+#, no-wrap
+msgid ""
+"nice value. This ranges from 19 (nicest) to -20 (not nice to others),\n"
+"see\n"
+"I<nice>(1).\n"
+"(alias\n"
+"B<nice>)."
+msgstr "Nice-Wert. Bereich von 19 (am »schönsten«) bis -20 (nicht »schön« für Andere), siehe I<nice>(1). (alias B<nice>)."
+
+#. type: tbl table
+#: ../man/ps.1:1447
+#, no-wrap
+msgid ""
+"see\n"
+"B<ni>.B<(alias>\n"
+"B<ni>)."
+msgstr "Siehe B<ni> B<(alias> B<ni>)."
+
+#. type: tbl table
+#: ../man/ps.1:1449
+#, no-wrap
+msgid "nlwp"
+msgstr "nlwp"
+
+#. type: tbl table
+#: ../man/ps.1:1449
+#, no-wrap
+msgid "NLWP"
+msgstr "NLWP"
+
+#. type: tbl table
+#: ../man/ps.1:1452
+#, no-wrap
+msgid ""
+"number of lwps (threads) in the process. (alias\n"
+"B<thcount>)."
+msgstr "Anzahl der lwps (Threads) im Prozess (alias B<thcount>)."
+
+#. type: tbl table
+#: ../man/ps.1:1454
+#, no-wrap
+msgid "numa"
+msgstr "numa"
+
+#. type: tbl table
+#: ../man/ps.1:1454
+#, no-wrap
+msgid "NUMA"
+msgstr "NUMA"
+
+#. type: tbl table
+#: ../man/ps.1:1457
+#, no-wrap
+msgid ""
+"The node associated with the most recently used processor.\n"
+"A I<-1> means that NUMA information is unavailable."
+msgstr ""
+"Der Knoten, der dem zuletzt verwendeten Prozessor zugeordnet ist.\n"
+"Ein I<-1> bedeutet, dass keine NUMA-Information verfügbar ist."
+
+#. type: tbl table
+#: ../man/ps.1:1459
+#, no-wrap
+msgid "nwchan"
+msgstr "nwchan"
+
+#. type: tbl table
+#: ../man/ps.1:1459 ../man/ps.1:1950
+#, no-wrap
+msgid "WCHAN"
+msgstr "WCHAN"
+
+#. type: tbl table
+#: ../man/ps.1:1463
+#, no-wrap
+msgid ""
+"address of the kernel function where the process is sleeping (use\n"
+"B<wchan>\n"
+"if you want the kernel function name)."
+msgstr ""
+"Adresse der Kernelfunktion, in der der Prozess schläft (verwenden Sie\n"
+"B<wchan>, falls Sie den Namen der Kernelfunktion benötigen)."
+
+#. type: tbl table
+#: ../man/ps.1:1465
+#, no-wrap
+msgid "oom"
+msgstr "oom"
+
+#. type: tbl table
+#: ../man/ps.1:1465
+#, no-wrap
+msgid "OOM"
+msgstr "OOM"
+
+#. type: tbl table
+#: ../man/ps.1:1468
+#, no-wrap
+msgid ""
+"Out of Memory Score. The value, ranging from 0 to +1000, used to select\n"
+"task(s) to kill when memory is exhausted."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1470
+#, no-wrap
+msgid "oomadj"
+msgstr "oomadj"
+
+#. type: tbl table
+#: ../man/ps.1:1470
+#, no-wrap
+msgid "OOMADJ"
+msgstr "OOMADJ"
+
+#. type: tbl table
+#: ../man/ps.1:1474
+#, no-wrap
+msgid ""
+"Out of Memory Adjustment Factor. The value is added to the current out of\n"
+"memory score which is then used to determine which task to kill when memory\n"
+"is exhausted."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1476
+#, no-wrap
+msgid "ouid"
+msgstr "ouid"
+
+#. type: tbl table
+#: ../man/ps.1:1476
+#, no-wrap
+msgid "OWNER"
+msgstr "OWNER"
+
+#. type: tbl table
+#: ../man/ps.1:1479
+#, no-wrap
+msgid ""
+"displays the Unix user identifier of the owner of the session of a process,\n"
+"if systemd support has been included."
+msgstr "zeigt den Unix-Benutzer-Bezeichner des Eigentümers der Sitzung eines Prozesses an, falls Unterstützung für Systemd verfügbar ist."
+
+#. type: tbl table
+#: ../man/ps.1:1486
+#, no-wrap
+msgid ""
+"see\n"
+"B<%cpu>.\n"
+"(alias\n"
+"B<%cpu>)."
+msgstr "Siehe B<%cpu> (alias B<%cpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1488
+#, no-wrap
+msgid "pending"
+msgstr "pending"
+
+#. type: tbl table
+#: ../man/ps.1:1488 ../man/ps.1:1679
+#, no-wrap
+msgid "PENDING"
+msgstr "PENDING"
+
+#. type: tbl table
+#: ../man/ps.1:1500
+#, no-wrap
+msgid ""
+"mask of the pending signals. See\n"
+"I<signal>(7).\n"
+"Signals pending on the process are distinct from signals pending on\n"
+"individual threads. Use the\n"
+"B<m>\n"
+"option or the\n"
+"B<-m>\n"
+"option to see both. According to the width of the field, a 32 or 64 bits\n"
+"mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig>)."
+msgstr "Maske der ausstehenden Signale. Siehe I<signal>(7). Ausstehende Signale der Prozesse unterscheiden sich von den ausstehenden Signalen einzelner Threads. Verwenden Sie die Option B<m> oder B<-m>, um beides anzeigen zu lassen. Entsprechend der Feldbreite wird ein eine 32-Bit- oder 64-Bit-Maske in hexadezimalem Format angezeigt, außer wenn die Option B<--signames> verwendet wird (alias B<sig>)."
+
+#. type: tbl table
+#: ../man/ps.1:1506
+#, no-wrap
+msgid ""
+"process group ID or, equivalently, the process ID of the process group\n"
+"leader. (alias\n"
+"B<pgrp>)."
+msgstr "Prozessgruppenkennung oder (äquivalent) die Prozesskennung (PID) des Prozessgruppenleiters (alias B<pgrp>)."
+
+#. type: tbl table
+#: ../man/ps.1:1508
+#, no-wrap
+msgid "PGRP"
+msgstr "PGRP"
+
+#. type: tbl table
+#: ../man/ps.1:1513
+#, no-wrap
+msgid ""
+"see\n"
+"B<pgid>.\n"
+"(alias\n"
+"B<pgid>)."
+msgstr "Siehe B<pgid> (alias B<pgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1518
+#, no-wrap
+msgid ""
+"a number representing the process ID (alias\n"
+"B<tgid>)."
+msgstr "Eine Zahl, welche die Prozesskennung (ID-Nummer) repräsentiert (alias B<tgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1520
+#, no-wrap
+msgid "pidns"
+msgstr "pidns"
+
+#. type: tbl table
+#: ../man/ps.1:1520
+#, no-wrap
+msgid "PIDNS"
+msgstr "PIDNS"
+
+#. type: tbl table
+#: ../man/ps.1:1526
+#, no-wrap
+msgid "pmem"
+msgstr "pmem"
+
+#. type: tbl table
+#: ../man/ps.1:1531
+#, no-wrap
+msgid ""
+"see\n"
+"B<%mem>.\n"
+"(alias\n"
+"B<%mem>)."
+msgstr "Siehe B<%mem> (alias B<%mem>)."
+
+#. type: tbl table
+#: ../man/ps.1:1533
+#, no-wrap
+msgid "policy"
+msgstr "policy"
+
+#. type: tbl table
+#: ../man/ps.1:1533
+#, no-wrap
+msgid "POL"
+msgstr "POL"
+
+#. type: tbl table
+#: ../man/ps.1:1537
+#, no-wrap
+msgid ""
+"scheduling class of the process. (alias\n"
+"B<class>, B<cls>).\n"
+"Possible values are:\n"
+msgstr "Scheduling-Klasse des Prozesses (alias B<class>, B<cls>). Mögliche Werte sind:\n"
+
+#. type: tbl table
+#: ../man/ps.1:1561
+#, no-wrap
+msgid "parent process ID."
+msgstr "Kennung des Elternprozesses."
+
+#. type: tbl table
+#: ../man/ps.1:1563
+#, no-wrap
+msgid "pri"
+msgstr "pri"
+
+#. type: tbl table
+#: ../man/ps.1:1563
+#, no-wrap
+msgid "PRI"
+msgstr "PRI"
+
+#. type: tbl table
+#: ../man/ps.1:1565
+#, no-wrap
+msgid "priority of the process. Higher number means higher priority."
+msgstr "Priorität des Prozesses. Größere Zahlen bedeuten eine höhere Priorität."
+
+#. type: tbl table
+#: ../man/ps.1:1567
+#, no-wrap
+msgid "psr"
+msgstr "psr"
+
+#. type: tbl table
+#: ../man/ps.1:1567
+#, no-wrap
+msgid "PSR"
+msgstr "PSR"
+
+#. type: tbl table
+#: ../man/ps.1:1569
+#, no-wrap
+msgid "processor that process last executed on."
+msgstr "Prozessor, auf dem der Prozess zuletzt ausgeführt wurde."
+
+#. type: tbl table
+#: ../man/ps.1:1571
+#, no-wrap
+msgid "pss"
+msgstr "pss"
+
+#. type: tbl table
+#: ../man/ps.1:1571
+#, no-wrap
+msgid "PSS"
+msgstr "PSS"
+
+#. type: tbl table
+#: ../man/ps.1:1574
+#, no-wrap
+msgid ""
+"Proportional share size, the non-swapped physical memory, with shared memory\n"
+"proportionally accounted to all tasks mapping it."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1576
+#, no-wrap
+msgid "rbytes"
+msgstr "rbytes"
+
+#. type: tbl table
+#: ../man/ps.1:1576
+#, no-wrap
+msgid "RBYTES"
+msgstr "RBYTES"
+
+#. type: tbl table
+#: ../man/ps.1:1578
+#, no-wrap
+msgid "Number of bytes which this process really did cause to be fetched from the storage layer."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1580
+#, no-wrap
+msgid "rchars"
+msgstr "rchars"
+
+#. type: tbl table
+#: ../man/ps.1:1580
+#, no-wrap
+msgid "RCHARS"
+msgstr "RCHARS"
+
+#. type: tbl table
+#: ../man/ps.1:1582
+#, no-wrap
+msgid "Number of bytes which this task has caused to be read from storage."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1584
+#, no-wrap
+msgid "rgid"
+msgstr "rgid"
+
+#. type: tbl table
+#: ../man/ps.1:1584
+#, no-wrap
+msgid "RGID"
+msgstr "RGID"
+
+#. type: tbl table
+#: ../man/ps.1:1586
+#, no-wrap
+msgid "real group ID."
+msgstr "reale Gruppenkennung."
+
+#. type: tbl table
+#: ../man/ps.1:1591
+#, no-wrap
+msgid ""
+"real group name. This will be the textual group ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise."
+msgstr "Realer Gruppenname. Dies wird die Gruppenkennung in Textform, falls diese ermittelt werden kann und es die Feldgröße erlaubt, oder anderenfalls eine Dezimaldarstellung sein."
+
+#. type: tbl table
+#: ../man/ps.1:1593
+#, no-wrap
+msgid "rops"
+msgstr "rops"
+
+#. type: tbl table
+#: ../man/ps.1:1593
+#, no-wrap
+msgid "ROPS"
+msgstr "ROPS"
+
+#. type: tbl table
+#: ../man/ps.1:1596
+#, no-wrap
+msgid ""
+"Number of read I/O operations—that is, system calls such as\n"
+"B<read>(2) and B<pread>(2)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1598 ../man/ps.1:1604
+#, no-wrap
+msgid "RSS"
+msgstr "RSS"
+
+#. type: tbl table
+#: ../man/ps.1:1602
+#, no-wrap
+msgid ""
+"resident set size, the non-swapped physical memory that a task has used (in\n"
+"kilobytes). (alias\n"
+"B<rssize>, B<rsz>)."
+msgstr ""
+"Hauptspeicherbelegung; der nicht ausgelagerte physische Speicher, den eine\n"
+"Task (in Kilobyte) verwendet (alias B<rssize>, B<rsz>)."
+
+#. type: tbl table
+#: ../man/ps.1:1604
+#, no-wrap
+msgid "rssize"
+msgstr "rssize"
+
+#. type: tbl table
+#: ../man/ps.1:1609
+#, no-wrap
+msgid ""
+"see\n"
+"B<rss>.\n"
+"(alias\n"
+"B<rss>, B<rsz>)."
+msgstr "Siehe B<rss> (alias B<rss>, B<rsz>)."
+
+#. type: tbl table
+#: ../man/ps.1:1611
+#, no-wrap
+msgid "rsz"
+msgstr "rsz"
+
+#. type: tbl table
+#: ../man/ps.1:1611
+#, no-wrap
+msgid "RSZ"
+msgstr "RSZ"
+
+#. type: tbl table
+#: ../man/ps.1:1616
+#, no-wrap
+msgid ""
+"see\n"
+"B<rss>.\n"
+"(alias\n"
+"B<rss>, B<rssize>)."
+msgstr "Siehe B<rss> (alias B<rss>, B<rssize>)."
+
+#. type: tbl table
+#: ../man/ps.1:1618
+#, no-wrap
+msgid "rtprio"
+msgstr "rtprio"
+
+#. type: tbl table
+#: ../man/ps.1:1618
+#, no-wrap
+msgid "RTPRIO"
+msgstr "RTPRIO"
+
+#. type: tbl table
+#: ../man/ps.1:1620
+#, no-wrap
+msgid "realtime priority."
+msgstr "Echtzeit-Priorität."
+
+#. type: tbl table
+#: ../man/ps.1:1622
+#, no-wrap
+msgid "ruid"
+msgstr "ruid"
+
+#. type: tbl table
+#: ../man/ps.1:1622
+#, no-wrap
+msgid "RUID"
+msgstr "RUID"
+
+#. type: tbl table
+#: ../man/ps.1:1624
+#, no-wrap
+msgid "real user ID."
+msgstr "Reale Benutzerkennung."
+
+#. type: tbl table
+#: ../man/ps.1:1629
+#, no-wrap
+msgid ""
+"real user ID. This will be the textual user ID, if it can be obtained and\n"
+"the field width permits, or a decimal representation otherwise."
+msgstr "Reale Benutzerkennung. Dies wird die Benutzerkennung in Textform, falls diese ermittelt werden kann und es die Feldgröße erlaubt, oder anderenfalls eine Dezimaldarstellung sein."
+
+#. type: tbl table
+#: ../man/ps.1:1638
+#, no-wrap
+msgid ""
+"minimal state display (one character). See section\n"
+"B<PROCESS STATE CODES>\n"
+"for the different values. See also\n"
+"B<stat>\n"
+"if you want additional information displayed. (alias\n"
+"B<state>)."
+msgstr "Minimale Statusanzeige (ein Zeichen). Siehe Abschnitt B<PROZESSZUSTANDSCODES> für die Bedeutung der verschiedenen Werte. Siehe auch B<stat>, wenn Sie zusätzliche Informationen anzeigen lassen wollen (alias B<state>)."
+
+#. type: tbl table
+#: ../man/ps.1:1640
+#, no-wrap
+msgid "sched"
+msgstr "sched"
+
+#. type: tbl table
+#: ../man/ps.1:1640
+#, no-wrap
+msgid "SCH"
+msgstr "SCH"
+
+#. type: tbl table
+#: ../man/ps.1:1644
+#, no-wrap
+msgid ""
+"scheduling policy of the process. The policies SCHED_OTHER (SCHED_NORMAL),\n"
+"SCHED_FIFO, SCHED_RR, SCHED_BATCH, SCHED_ISO, SCHED_IDLE and SCHED_DEADLINE are\n"
+"respectively displayed as 0, 1, 2, 3, 4, 5 and 6."
+msgstr "Scheduling-Regeln des Prozesses. Die Regeln SCHED_OTHER (SCHED_NORMAL), SCHED_FIFO, SCHED_RR, SCHED_BATCH, SCHED_ISO, SCHED_IDLE beziehungsweise SCHED_DEADLINE werden als 0, 1, 2, 3, 4, 5 beziehungsweise 6 angezeigt."
+
+#. type: tbl table
+#: ../man/ps.1:1646
+#, no-wrap
+msgid "seat"
+msgstr "seat"
+
+#. type: tbl table
+#: ../man/ps.1:1646
+#, no-wrap
+msgid "SEAT"
+msgstr "SEAT"
+
+#. type: tbl table
+#: ../man/ps.1:1650
+#, no-wrap
+msgid ""
+"displays the identifier associated with all hardware devices assigned\n"
+"to a specific workplace,\n"
+"if systemd support has been included."
+msgstr "zeigt den Bezeichner an, der sämtlichen Hardware-Geräten zugeordnet ist, die einem bestimmten Arbeitsplatz zugewiesen sind, falls Unterstützung für Systemd verfügbar ist."
+
+#. type: tbl table
+#: ../man/ps.1:1652
+#, no-wrap
+msgid "sess"
+msgstr "sess"
+
+#. type: tbl table
+#: ../man/ps.1:1652
+#, no-wrap
+msgid "SESS"
+msgstr "SESS"
+
+#. type: tbl table
+#: ../man/ps.1:1655
+#, no-wrap
+msgid ""
+"session ID or, equivalently, the process ID of the session leader. (alias\n"
+"B<session>, B<sid>)."
+msgstr "Sitzungskennung oder (äquivalent) die Prozesskennung (PID) des Sitzungsleiters (alias B<session>, B<sid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1657
+#, no-wrap
+msgid "sgi_p"
+msgstr "sgi_p"
+
+#. type: tbl table
+#: ../man/ps.1:1660
+#, no-wrap
+msgid ""
+"processor that the process is currently executing on. Displays \"*\" if the\n"
+"process is not currently running or runnable."
+msgstr "Prozessor, auf dem der Prozess derzeit ausgeführt wird. Falls der Prozess gegenwärtig nicht ausgeführt wird oder nicht ausführbar ist, wird »*« angezeigt."
+
+#. type: tbl table
+#: ../man/ps.1:1662
+#, no-wrap
+msgid "sgid"
+msgstr "sgid"
+
+#. type: tbl table
+#: ../man/ps.1:1662
+#, no-wrap
+msgid "SGID"
+msgstr "SGID"
+
+#. type: tbl table
+#: ../man/ps.1:1665
+#, no-wrap
+msgid ""
+"saved group ID. (alias\n"
+"B<svgid>)."
+msgstr "Gespeicherte Gruppenkennung (alias B<svgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1667
+#, no-wrap
+msgid "sgroup"
+msgstr "sgroup"
+
+#. type: tbl table
+#: ../man/ps.1:1667
+#, no-wrap
+msgid "SGROUP"
+msgstr "SGROUP"
+
+#. type: tbl table
+#: ../man/ps.1:1670
+#, no-wrap
+msgid ""
+"saved group name. This will be the textual group ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise."
+msgstr "Gespeicherter Gruppenname. Dies wird die Gruppenkennung in Textform, falls diese ermittelt werden kann und es die Feldgröße erlaubt, oder anderenfalls eine Dezimaldarstellung sein."
+
+#. type: tbl table
+#: ../man/ps.1:1672
+#, no-wrap
+msgid "sid"
+msgstr "sid"
+
+#. type: tbl table
+#: ../man/ps.1:1672
+#, no-wrap
+msgid "SID"
+msgstr "SID"
+
+#. type: tbl table
+#: ../man/ps.1:1677
+#, no-wrap
+msgid ""
+"see\n"
+"B<sess>.\n"
+"(alias\n"
+"B<sess>, B<session>)."
+msgstr "Siehe B<sess> (alias B<sess>, B<session>)."
+
+#. type: tbl table
+#: ../man/ps.1:1679
+#, no-wrap
+msgid "sig"
+msgstr "sig"
+
+#. type: tbl table
+#: ../man/ps.1:1684
+#, no-wrap
+msgid ""
+"see\n"
+"B<pending>.\n"
+"(alias\n"
+"B<pending>, B<sig_pend>)."
+msgstr "Siehe B<pending> (alias B<pending>, B<sig_pend>)."
+
+#. type: tbl table
+#: ../man/ps.1:1686
+#, no-wrap
+msgid "sigcatch"
+msgstr "sigcatch"
+
+#. type: tbl table
+#: ../man/ps.1:1691
+#, no-wrap
+msgid ""
+"see\n"
+"B<caught>.\n"
+"(alias\n"
+"B<caught>, B<sig_catch>)."
+msgstr "Siehe B<caught> (alias B<caught>, B<sig_catch>)."
+
+#. type: tbl table
+#: ../man/ps.1:1693
+#, no-wrap
+msgid "sigignore"
+msgstr "sigignore"
+
+#. type: tbl table
+#: ../man/ps.1:1698
+#, no-wrap
+msgid ""
+"see\n"
+"B<ignored>.\n"
+"(alias\n"
+"B<ignored>, B<sig_ignore>)."
+msgstr "Siehe B<ignored> (alias B<ignored>, B<sig_ignore>)."
+
+#. type: tbl table
+#: ../man/ps.1:1700
+#, no-wrap
+msgid "sigmask"
+msgstr "sigmask"
+
+#. type: tbl table
+#: ../man/ps.1:1705
+#, no-wrap
+msgid ""
+"see\n"
+"B<blocked>.\n"
+"(alias\n"
+"B<blocked>, B<sig_block>)."
+msgstr "Siehe B<blocked> (alias B<blocked>, B<sig_block>)."
+
+#. type: tbl table
+#: ../man/ps.1:1707
+#, no-wrap
+msgid "SIZE"
+msgstr "GRÖSSE"
+
+#. type: tbl table
+#: ../man/ps.1:1711
+#, no-wrap
+msgid ""
+"approximate amount of swap space that would be required if the process were\n"
+"to dirty all writable pages and then be swapped out. This number is very\n"
+"rough!"
+msgstr "Ungefähre Menge des Auslagerungsspeichers, der erforderlich wäre, wenn der Prozess alle schreibbaren Speicherseiten bearbeiten und dann ausgelagert werden würde. Diese Zahl ist eine sehr grobe Schätzung!"
+
+#. type: tbl table
+#: ../man/ps.1:1713
+#, no-wrap
+msgid "slice"
+msgstr "slice"
+
+#. type: tbl table
+#: ../man/ps.1:1713
+#, no-wrap
+msgid "SLICE"
+msgstr "SLICE"
+
+#. type: tbl table
+#: ../man/ps.1:1716
+#, no-wrap
+msgid ""
+"displays the slice unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr "zeigt die Scheiben-Unit an, zu der ein Prozess gehört, falls Unterstützung für Systemd verfügbar ist."
+
+#. type: tbl table
+#: ../man/ps.1:1718
+#, no-wrap
+msgid "spid"
+msgstr "spid"
+
+#. type: tbl table
+#: ../man/ps.1:1718
+#, no-wrap
+msgid "SPID"
+msgstr "SPID"
+
+#. type: tbl table
+#: ../man/ps.1:1723
+#, no-wrap
+msgid ""
+"see\n"
+"B<lwp>.\n"
+"(alias\n"
+"B<lwp>, B<tid>)."
+msgstr "Siehe B<lwp> (alias B<lwp>, B<tid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1725
+#, no-wrap
+msgid "stackp"
+msgstr "stackp"
+
+#. type: tbl table
+#: ../man/ps.1:1725
+#, no-wrap
+msgid "STACKP"
+msgstr "STACKP"
+
+#. type: tbl table
+#: ../man/ps.1:1727
+#, no-wrap
+msgid "address of the bottom (start) of stack for the process."
+msgstr "Adresse des untersten Stapelendes (Start) des Prozess-Stacks."
+
+#. type: tbl table
+#: ../man/ps.1:1729
+#, no-wrap
+msgid "start"
+msgstr "start"
+
+#. type: tbl table
+#: ../man/ps.1:1734
+#, no-wrap
+msgid ""
+"time the command started. If the process was started less than 24 hours ago,\n"
+"the output format is \"HH:MM:SS\", else it is \"\\ \\ Mmm\\ dd\" (where Mmm is a\n"
+"three-letter month name). See also\n"
+"B<bsdstart>, B<start>, B<start_time>, and B<stime>."
+msgstr "Zeitpunkt, zu dem der Befehl gestartet wurde. Falls der Prozess vor weniger als 24 Stunden gestartet wurde, ist das Ausgabeformat »HH:MM:SS«, anderenfalls ist es »\\ \\ Mmm\\ dd« (wobei Mmm die aus drei Buchstaben bestehende Kurzform des Monats ist). Siehe auch B<bsdstart>, B<start>, B<start_time> und B<stime>."
+
+#. type: tbl table
+#: ../man/ps.1:1743
+#, no-wrap
+msgid ""
+"starting time or date of the process. Only the year will be displayed if the\n"
+"process was not started the same year\n"
+"B<ps>\n"
+"was invoked, or \"MmmDD\" if it was not started the same day, or \"HH:MM\"\n"
+"otherwise. See also\n"
+"B<bsdstart>, B<start>, B<lstart>, and B<stime>."
+msgstr "Startzeit oder -datum des Prozesses. Falls der Prozess nicht im gleichen Jahr gestartet wurde, in dem B<ps> aufgerufen wurde, wird nur das Jahr angezeigt, oder »MmmTT«, falls es nicht am gleichen Tag gestartet wurde, oder anderenfalls »HH:MM«. Siehe auch B<bsdstart>, B<start>, B<lstart> und B<stime>."
+
+#. type: tbl table
+#: ../man/ps.1:1745
+#, no-wrap
+msgid "stat"
+msgstr "stat"
+
+#. type: tbl table
+#: ../man/ps.1:1745
+#, no-wrap
+msgid "STAT"
+msgstr "STAT"
+
+#. type: tbl table
+#: ../man/ps.1:1751
+#, no-wrap
+msgid ""
+"multi-character process state. See section\n"
+"B<PROCESS STATE CODES>\n"
+"for the different values meaning. See also\n"
+"B<s>\\ andB<\\ state>\n"
+"if you just want the first character displayed."
+msgstr "Statusanzeige in mehreren Zeichen. Siehe Abschnitt B<PROZESSZUSTANDSCODES> für die Bedeutung der verschiedenen Werte. Siehe auch B<s>\\ undB<\\ state>, wenn Sie nur das erste Zeichen anzeigen lassen wollen."
+
+#. type: tbl table
+#: ../man/ps.1:1753
+#, no-wrap
+msgid "state"
+msgstr "state"
+
+#. type: tbl table
+#: ../man/ps.1:1756
+#, no-wrap
+msgid ""
+"see\n"
+"B<s>.\\& (aliasB<\\ s>)."
+msgstr "Siehe B<s> (alias B<s>)."
+
+#. type: tbl table
+#: ../man/ps.1:1758
+#, no-wrap
+msgid "stime"
+msgstr "stime"
+
+#. type: tbl table
+#: ../man/ps.1:1758
+#, no-wrap
+msgid "STIME"
+msgstr "STIME"
+
+#. type: tbl table
+#: ../man/ps.1:1760
+#, no-wrap
+msgid "see B<start_time>. (alias B<start_time>)."
+msgstr "siehe B<start_time>. (alias B<start_time>)."
+
+#. type: tbl table
+#: ../man/ps.1:1762
+#, no-wrap
+msgid "suid"
+msgstr "suid"
+
+#. type: tbl table
+#: ../man/ps.1:1762
+#, no-wrap
+msgid "SUID"
+msgstr "SUID"
+
+#. type: tbl table
+#: ../man/ps.1:1765
+#, no-wrap
+msgid ""
+"saved user ID. (alias\n"
+"B<svuid>)."
+msgstr ""
+"Gespeicherte Benutzerkennung. (alias\n"
+"B<svuid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1767
+#, no-wrap
+msgid "supgid"
+msgstr "supgid"
+
+#. type: tbl table
+#: ../man/ps.1:1767
+#, no-wrap
+msgid "SUPGID"
+msgstr "SUPGID"
+
+#. type: tbl table
+#: ../man/ps.1:1770
+#, no-wrap
+msgid ""
+"group ids of supplementary groups, if any. See\n"
+"B<getgroups>(2)."
+msgstr "Gruppenkennungen zusätzlicher Gruppen, falls vorhanden. Siehe B<getgroups>(2)."
+
+#. type: tbl table
+#: ../man/ps.1:1772
+#, no-wrap
+msgid "supgrp"
+msgstr "supgrp"
+
+#. type: tbl table
+#: ../man/ps.1:1772
+#, no-wrap
+msgid "SUPGRP"
+msgstr "SUPGRP"
+
+#. type: tbl table
+#: ../man/ps.1:1775
+#, no-wrap
+msgid ""
+"group names of supplementary groups, if any. See\n"
+"B<getgroups>(2)."
+msgstr ""
+"Gruppennamen zusätzlicher Gruppen, falls vorhanden. Siehe\n"
+"B<getgroups>(2)."
+
+#. type: tbl table
+#: ../man/ps.1:1777
+#, no-wrap
+msgid "suser"
+msgstr "suser"
+
+#. type: tbl table
+#: ../man/ps.1:1777
+#, no-wrap
+msgid "SUSER"
+msgstr "SUSER"
+
+#. type: tbl table
+#: ../man/ps.1:1781
+#, no-wrap
+msgid ""
+"saved user name. This will be the textual user ID, if it can be obtained and\n"
+"the field width permits, or a decimal representation otherwise. (alias\n"
+"B<svuser>)."
+msgstr "Gespeicherter Benutzername. Dies wird die Benutzerkennung in Textform, falls diese ermittelt werden kann und es die Feldgröße erlaubt, oder anderenfalls eine Dezimaldarstellung sein (alias B<svuser>)."
+
+#. type: tbl table
+#: ../man/ps.1:1783
+#, no-wrap
+msgid "svgid"
+msgstr "svgid"
+
+#. type: tbl table
+#: ../man/ps.1:1783
+#, no-wrap
+msgid "SVGID"
+msgstr "SVGID"
+
+#. type: tbl table
+#: ../man/ps.1:1788
+#, no-wrap
+msgid ""
+"see\n"
+"B<sgid>.\n"
+"(alias\n"
+"B<sgid>)."
+msgstr "Siehe B<sgid> (alias B<sgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1790
+#, no-wrap
+msgid "svuid"
+msgstr "svuid"
+
+#. type: tbl table
+#: ../man/ps.1:1790
+#, no-wrap
+msgid "SVUID"
+msgstr "SVUID"
+
+#. type: tbl table
+#: ../man/ps.1:1795
+#, no-wrap
+msgid ""
+"see\n"
+"B<suid>.\n"
+"(alias\n"
+"B<suid>)."
+msgstr "Siehe B<suid> (alias B<suid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1797
+#, no-wrap
+msgid "sz"
+msgstr "sz"
+
+#. type: tbl table
+#: ../man/ps.1:1797
+#, no-wrap
+msgid "SZ"
+msgstr "SZ"
+
+#. type: tbl table
+#: ../man/ps.1:1802
+#, no-wrap
+msgid ""
+"size in physical pages of the core image of the process. This includes text,\n"
+"data, and stack space. Device mappings are currently excluded; this is\n"
+"subject to change. See\n"
+"B<vsz>\\ andB<\\ rss>."
+msgstr "Größe in physischen Seiten des Kern-Images des Prozesses. Dies schließt Text-, Daten- und Stack-Bereich ein. Gerätezuordnungen werden gegenwärtig ausgeschlossen; dies könnte sich später ändern. Siehe B<vsz>\\ undB<\\ rss>."
+
+#. type: tbl table
+#: ../man/ps.1:1804
+#, no-wrap
+msgid "tgid"
+msgstr "tgid"
+
+#. type: tbl table
+#: ../man/ps.1:1804
+#, no-wrap
+msgid "TGID"
+msgstr "TGID"
+
+#. type: tbl table
+#: ../man/ps.1:1808
+#, no-wrap
+msgid ""
+"a number representing the thread group to which a task belongs (alias\n"
+"B<pid>).\n"
+"It is the process ID of the thread group leader."
+msgstr ""
+"Eine Zahl, die eine Thread-Gruppe repräsentiert, zu der eine Task gehört\n"
+"(alias B<pid>). Es ist die Prozesskennung (PID) des Thread-Gruppenleiters."
+
+#. type: tbl table
+#: ../man/ps.1:1810
+#, no-wrap
+msgid "thcount"
+msgstr "thcount"
+
+#. type: tbl table
+#: ../man/ps.1:1810
+#, no-wrap
+msgid "THCNT"
+msgstr "THCNT"
+
+#. type: tbl table
+#: ../man/ps.1:1816
+#, no-wrap
+msgid ""
+"see\n"
+"B<nlwp>.\n"
+"(alias\n"
+"B<nlwp>).\n"
+"number of kernel threads owned by the process."
+msgstr "Siehe B<nlwp> (alias B<nlwp>). Anzahl der Kernel-Threads, die dem Prozess gehören."
+
+#. type: tbl table
+#: ../man/ps.1:1818
+#, no-wrap
+msgid "tid"
+msgstr "tid"
+
+#. type: tbl table
+#: ../man/ps.1:1818
+#, no-wrap
+msgid "TID"
+msgstr "TID"
+
+#. type: tbl table
+#: ../man/ps.1:1825
+#, fuzzy, no-wrap
+msgid ""
+"the unique number representing a dispatchable entity (alias\n"
+"B<spid>, B<tid>).\n"
+"This value may also appear as: a process ID (pid); a process group ID (pgrp);\n"
+"a session ID for the session leader (sid); a thread group ID for the thread\n"
+"group leader (tgid); and a tty process group ID for the process group leader\n"
+"(tpgid)."
+msgstr "Eindeutige Zahl, die eine … repräsentiert (alias B<lwp>,B<\\ spid>). Dieser Wert kann auch folgendermaßen erscheinen: als Prozesskennung (pid); als Prozessgruppenkennung (pgrp); als Sitzungskennung für den Sitzungsleiter (sid); als Thread-Gruppenkennung für den Thread-Gruppenleiter (tgid); und als TTY-Prozessgruppenkennung für den Prozessgruppenleiter (tpgid)."
+
+#. type: tbl table
+#: ../man/ps.1:1830
+#, no-wrap
+msgid ""
+"cumulative CPU\\ time, \"[DD-]HH:MM:SS\" format. (alias\n"
+"B<cputime>)."
+msgstr "Kumulative CPU-Zeit im Format »[DD-]HH:MM:SS« (alias B<cputime>)."
+
+#. type: tbl table
+#: ../man/ps.1:1832
+#, no-wrap
+msgid "timens"
+msgstr "timens"
+
+#. type: tbl table
+#: ../man/ps.1:1832
+#, no-wrap
+msgid "TIMENS"
+msgstr "TIMENS"
+
+#. type: tbl table
+#: ../man/ps.1:1838
+#, no-wrap
+msgid "times"
+msgstr "times"
+
+#. type: tbl table
+#: ../man/ps.1:1841
+#, no-wrap
+msgid ""
+"cumulative CPU\\ time in seconds (alias\n"
+"B<cputimes>)."
+msgstr "Kumulative CPU-Zeit in Sekunden (alias B<cputimes>)."
+
+#. type: tbl table
+#: ../man/ps.1:1843
+#, no-wrap
+msgid "tname"
+msgstr "tname"
+
+#. type: tbl table
+#: ../man/ps.1:1846
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tt>, B<tty>)."
+msgstr "Steuerndes TTY (Terminal). (alias B<tt>, B<tty>)."
+
+#. type: tbl table
+#: ../man/ps.1:1848
+#, no-wrap
+msgid "TPGID"
+msgstr "TPGID"
+
+#. type: tbl table
+#: ../man/ps.1:1851
+#, no-wrap
+msgid ""
+"ID of the foreground process group on the tty (terminal) that the process is\n"
+"connected to, or -1 if the process is not connected to a tty."
+msgstr "Kennung der Vordergrundprozessgruppe auf dem TTY (Terminal), mit dem der Prozess verbunden ist, oder -1, falls der Prozess nicht mit einem Terminal verbunden ist."
+
+#. type: tbl table
+#: ../man/ps.1:1853
+#, no-wrap
+msgid "trs"
+msgstr "trs"
+
+#. type: tbl table
+#: ../man/ps.1:1853
+#, no-wrap
+msgid "TRS"
+msgstr "TRS"
+
+#. type: tbl table
+#: ../man/ps.1:1855
+#, no-wrap
+msgid "text resident set size, the amount of physical memory devoted to executable code."
+msgstr "Hauptspeicherbelegung als Text; die Menge des physischen Speichers, der mit ausführbarem Code belegt ist."
+
+#. type: tbl table
+#: ../man/ps.1:1857
+#, no-wrap
+msgid "tt"
+msgstr "tt"
+
+#. type: tbl table
+#: ../man/ps.1:1857 ../man/ps.1:1862
+#, no-wrap
+msgid "TT"
+msgstr "TT"
+
+#. type: tbl table
+#: ../man/ps.1:1860
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tname>, B<tty>)."
+msgstr "Steuerndes TTY (Terminal). (alias B<tname>, B<tty>)."
+
+#. type: tbl table
+#: ../man/ps.1:1865
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tname>, B<tt>)."
+msgstr "Steuerndes TTY (Terminal). (alias B<tname>, B<tt>)."
+
+#. type: tbl table
+#: ../man/ps.1:1867
+#, no-wrap
+msgid "ucmd"
+msgstr "ucmd"
+
+#. type: tbl table
+#: ../man/ps.1:1872
+#, no-wrap
+msgid ""
+"see\n"
+"B<comm>.\n"
+"(alias\n"
+"B<comm>, B<ucomm>)."
+msgstr "Siehe B<comm> (alias B<comm>, B<ucomm>)."
+
+#. type: tbl table
+#: ../man/ps.1:1874
+#, no-wrap
+msgid "ucomm"
+msgstr "ucomm"
+
+#. type: tbl table
+#: ../man/ps.1:1879
+#, no-wrap
+msgid ""
+"see\n"
+"B<comm>.\n"
+"(alias\n"
+"B<comm>, B<ucmd>)."
+msgstr "Siehe B<comm> (alias B<comm>, B<ucmd>)."
+
+#. type: tbl table
+#: ../man/ps.1:1881
+#, no-wrap
+msgid "UID"
+msgstr "UID"
+
+#. type: tbl table
+#: ../man/ps.1:1886
+#, no-wrap
+msgid ""
+"see\n"
+"B<euid>.\n"
+"(alias\n"
+"B<euid>)."
+msgstr "Siehe B<euid> (alias B<euid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1888
+#, no-wrap
+msgid "uname"
+msgstr "uname"
+
+#. type: tbl table
+#: ../man/ps.1:1893
+#, no-wrap
+msgid ""
+"see\n"
+"B<euser>.\n"
+"(alias\n"
+"B<euser>, B<user>)."
+msgstr "Siehe B<euser> (alias B<euser>, B<user>)."
+
+#. type: tbl table
+#: ../man/ps.1:1895
+#, no-wrap
+msgid "unit"
+msgstr "unit"
+
+#. type: tbl table
+#: ../man/ps.1:1895
+#, no-wrap
+msgid "UNIT"
+msgstr "UNIT"
+
+#. type: tbl table
+#: ../man/ps.1:1898
+#, no-wrap
+msgid ""
+"displays unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr "zeigt die Unit an, zu der ein Prozess gehört, falls Unterstützung für Systemd verfügbar ist."
+
+#. type: tbl table
+#: ../man/ps.1:1905
+#, no-wrap
+msgid ""
+"see\n"
+"B<euser>.\n"
+"(alias\n"
+"B<euser>, B<uname>)."
+msgstr "Siehe B<euser> (alias B<euser>, B<uname>)."
+
+#. type: tbl table
+#: ../man/ps.1:1907
+#, no-wrap
+msgid "userns"
+msgstr "userns"
+
+#. type: tbl table
+#: ../man/ps.1:1907
+#, no-wrap
+msgid "USERNS"
+msgstr "USERNS"
+
+#. type: tbl table
+#: ../man/ps.1:1913
+#, no-wrap
+msgid "uss"
+msgstr "uss"
+
+#. type: tbl table
+#: ../man/ps.1:1913
+#, no-wrap
+msgid "USS"
+msgstr "USS"
+
+#. type: tbl table
+#: ../man/ps.1:1916
+#, fuzzy, no-wrap
+#| msgid ""
+#| "resident set size, the non-swapped physical memory that a task has used (in\n"
+#| "kilobytes). (alias\n"
+#| "B<rssize>, B<rsz>)."
+msgid ""
+"Unique set size, the non-swapped physical memory, which\n"
+"is not shared with an another task."
+msgstr ""
+"Hauptspeicherbelegung; der nicht ausgelagerte physische Speicher, den eine\n"
+"Task (in Kilobyte) verwendet (alias B<rssize>, B<rsz>)."
+
+#. type: tbl table
+#: ../man/ps.1:1918
+#, no-wrap
+msgid "utsns"
+msgstr "utsns"
+
+#. type: tbl table
+#: ../man/ps.1:1918
+#, no-wrap
+msgid "UTSNS"
+msgstr "UTSNS"
+
+#. type: tbl table
+#: ../man/ps.1:1924
+#, no-wrap
+msgid "uunit"
+msgstr "uunit"
+
+#. type: tbl table
+#: ../man/ps.1:1924
+#, no-wrap
+msgid "UUNIT"
+msgstr "UUNIT"
+
+#. type: tbl table
+#: ../man/ps.1:1927
+#, no-wrap
+msgid ""
+"displays user unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr "zeigt die Benutzer-Unit an, zu der ein Prozess gehört, falls Unterstützung für Systemd verfügbar ist."
+
+#. type: tbl table
+#: ../man/ps.1:1934
+#, no-wrap
+msgid ""
+"see\n"
+"B<vsz>.\n"
+"(alias\n"
+"B<vsz>)."
+msgstr "Siehe B<vsz> (alias B<vsz>)."
+
+#. type: tbl table
+#: ../man/ps.1:1940
+#, no-wrap
+msgid ""
+"virtual memory size of the process in KiB (1024-byte units). Device\n"
+"mappings are currently excluded; this is subject to change. (alias\n"
+"B<vsize>)."
+msgstr "Größe des virtuellen Speichers des Prozesses in KiB (1024-Byte-Einheiten). Gerätezuweisungen werden gegenwärtig ausgeschlossen; dies könnte sich später ändern (alias B<vsize>)."
+
+#. type: tbl table
+#: ../man/ps.1:1942
+#, no-wrap
+msgid "wbytes"
+msgstr "wbytes"
+
+#. type: tbl table
+#: ../man/ps.1:1942
+#, no-wrap
+msgid "WBYTES"
+msgstr "WBYTES"
+
+#. type: tbl table
+#: ../man/ps.1:1944
+#, no-wrap
+msgid "Number of bytes which this process caused to be sent to the storage layer."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1946
+#, no-wrap
+msgid "wcbytes"
+msgstr "wcbytes"
+
+#. type: tbl table
+#: ../man/ps.1:1946
+#, no-wrap
+msgid "WCBYTES"
+msgstr "WCBYTES"
+
+#. type: tbl table
+#: ../man/ps.1:1948
+#, fuzzy, no-wrap
+#| msgid "number of active objects"
+msgid "Number of cancelled write bytes."
+msgstr "Anzahl der aktiven Objekte"
+
+#. type: tbl table
+#: ../man/ps.1:1950
+#, no-wrap
+msgid "wchan"
+msgstr "wchan"
+
+#. type: tbl table
+#: ../man/ps.1:1952
+#, fuzzy, no-wrap
+#| msgid "display name of control groups to which the process belongs."
+msgid "name of the kernel function in which the process is sleeping."
+msgstr "zeigt den Namen der Control-Gruppen an, zu denen der Prozess gehört."
+
+#. type: tbl table
+#: ../man/ps.1:1954
+#, no-wrap
+msgid "wchars"
+msgstr "wchars"
+
+#. type: tbl table
+#: ../man/ps.1:1954
+#, no-wrap
+msgid "WCHARS"
+msgstr "WCHARS"
+
+#. type: tbl table
+#: ../man/ps.1:1956
+#, no-wrap
+msgid "Number of bytes which this task has caused, or shall cause to be written to disk."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1958
+#, no-wrap
+msgid "wops"
+msgstr "wops"
+
+#. type: tbl table
+#: ../man/ps.1:1958
+#, no-wrap
+msgid "WOPS"
+msgstr "WOPS"
+
+#. type: tbl table
+#: ../man/ps.1:1961
+#, no-wrap
+msgid ""
+"Number of write I/O operations—that is, system calls such as\n"
+"B<write>(2) and B<pwrite>(2)."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:1964
+#, no-wrap
+msgid "ENVIRONMENT VARIABLES"
+msgstr "UMGEBUNGSVARIABLEN"
+
+#. type: Plain text
+#: ../man/ps.1:1967
+msgid "The following environment variables could affect B<ps>:"
+msgstr "Die folgenden Umgebungsvariablen könnten B<ps> beeinflussen:"
+
+#. type: TP
+#: ../man/ps.1:1967
+#, no-wrap
+msgid "B<COLUMNS>"
+msgstr "B<COLUMNS>"
+
+#. type: Plain text
+#: ../man/ps.1:1970
+msgid "Override default display width."
+msgstr "setzt die vorgegebene Bildschirmbreite außer Kraft."
+
+#. type: TP
+#: ../man/ps.1:1970
+#, no-wrap
+msgid "B<LINES>"
+msgstr "B<LINES>"
+
+#. type: Plain text
+#: ../man/ps.1:1973
+msgid "Override default display height."
+msgstr "setzt die vorgegebene Bildschirmhöhe außer Kraft."
+
+#. type: TP
+#: ../man/ps.1:1973
+#, no-wrap
+msgid "B<PS_PERSONALITY>"
+msgstr "B<PS_PERSONALITY>"
+
+#. type: Plain text
+#: ../man/ps.1:1978 ../man/ps.1:1983
+msgid "Set to one of posix, old, linux, bsd, sun, digital...\\& (see section B<PERSONALITY> below)."
+msgstr "wird auf eines von »posix«, »old«, »linux«, »bsd«, »sun«, »digital« …\\& gesetzt (siehe Abschnitt B<PROZESSAUSFÜHRUNGSUMGEBUNG> nachfolgend)."
+
+#. type: TP
+#: ../man/ps.1:1978
+#, no-wrap
+msgid "B<CMD_ENV>"
+msgstr "B<CMD_ENV>"
+
+#. type: TP
+#: ../man/ps.1:1983
+#, no-wrap
+msgid "B<I_WANT_A_BROKEN_PS>"
+msgstr "B<I_WANT_A_BROKEN_PS>"
+
+#. type: Plain text
+#: ../man/ps.1:1986
+msgid "Force obsolete command line interpretation."
+msgstr "erzwingt die Interpretation veralteter Befehlszeilen."
+
+#. type: TP
+#: ../man/ps.1:1986
+#, no-wrap
+msgid "B<LC_TIME>"
+msgstr "B<LC_TIME>"
+
+#. type: Plain text
+#: ../man/ps.1:1989
+msgid "Date format."
+msgstr "Datumsformat."
+
+#. type: TP
+#: ../man/ps.1:1989
+#, no-wrap
+msgid "B<LIBPROC_HIDE_KERNEL>"
+msgstr "B<LIBPROC_HIDE_KERNEL>"
+
+#. type: Plain text
+#: ../man/ps.1:1996
+msgid "Set this to any value to hide kernel threads normally displayed with the B<-e> option. This is equivalent to selecting B<--ppid 2 -p 2 --deselect> instead. Also works in BSD mode."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1996
+#, no-wrap
+msgid "B<PS_COLORS>"
+msgstr "B<PS_COLORS>"
+
+#. type: Plain text
+#: ../man/ps.1:1999
+msgid "Not currently supported."
+msgstr "wird gegenwärtig nicht unterstützt."
+
+#. type: TP
+#: ../man/ps.1:1999
+#, no-wrap
+msgid "B<PS_FORMAT>"
+msgstr "B<PS_FORMAT>"
+
+#. type: Plain text
+#: ../man/ps.1:2010
+msgid "Default output format override. You may set this to a format string of the type used for the B<-o> option. The B<DefSysV> and B<DefBSD> values are particularly useful."
+msgstr "Außerkraftsetzung des vorgegebenen Ausgabeformats. Sie können dies auf eine Formatzeichenkette des Typs setzen, den Sie für die Option B<-o> nutzen. Insbesondere die Werte B<DefSysV> und B<DefBSD> sind sinnvoll."
+
+#. type: TP
+#: ../man/ps.1:2010
+#, no-wrap
+msgid "B<POSIXLY_CORRECT>"
+msgstr "B<POSIXLY_CORRECT>"
+
+#. type: Plain text
+#: ../man/ps.1:2013 ../man/ps.1:2020
+msgid "Don't find excuses to ignore bad \"features\"."
+msgstr "Finde keine Entschuldigungen zum Ignorieren schlechter »Funktionen«."
+
+#. type: TP
+#: ../man/ps.1:2013
+#, no-wrap
+msgid "B<POSIX2>"
+msgstr "B<POSIX2>"
+
+#. type: Plain text
+#: ../man/ps.1:2017
+msgid "When set to \"on\", acts as B<POSIXLY_CORRECT>."
+msgstr "Wenn auf »on« gesetzt, agiert es als B<POSIXLY_CORRECT>."
+
+#. type: TP
+#: ../man/ps.1:2017
+#, no-wrap
+msgid "B<UNIX95>"
+msgstr "B<UNIX95>"
+
+#. type: TP
+#: ../man/ps.1:2020
+#, no-wrap
+msgid "B<_XPG>"
+msgstr "B<_XPG>"
+
+#. type: Plain text
+#: ../man/ps.1:2026
+msgid "Cancel B<CMD_ENV>=I<irix> non-standard behavior."
+msgstr "Zeigt kein nicht standardkonformes Verhalten bei B<CMD_ENV>=I<irix>."
+
+#. type: Plain text
+#: ../man/ps.1:2034
+msgid "In general, it is a bad idea to set these variables. The one exception is B<CMD_ENV> or B<PS_PERSONALITY>, which could be set to Linux for normal systems. Without that setting, B<ps> follows the useless and bad parts of the Unix98 standard."
+msgstr "Generell ist es keine gute Idee, diese Variablen zu setzen. Die einzige Ausnahme ist B<CMD_ENV> oder B<PS_PERSONALITY>, die für normale Systeme auf »Linux« gesetzt werden können. Ohne diese Einstellung folgt B<ps> den nutzlosen und schlechten Teilen des Unix98-Standards."
+
+#. type: SH
+#: ../man/ps.1:2034
+#, no-wrap
+msgid "PERSONALITY"
+msgstr "PROZESSAUSFÃœHRUNGSUMGEBUNG"
+
+#. type: tbl table
+#: ../man/ps.1:2037
+#, no-wrap
+msgid "390"
+msgstr "390"
+
+#. type: tbl table
+#: ../man/ps.1:2037
+#, no-wrap
+msgid "like the OS/390 OpenEdition B<ps>"
+msgstr "wie das B<ps> in OS/390 OpenEdition"
+
+#. type: tbl table
+#: ../man/ps.1:2038
+#, no-wrap
+msgid "aix"
+msgstr "aix"
+
+#. type: tbl table
+#: ../man/ps.1:2038
+#, no-wrap
+msgid "like AIX B<ps>"
+msgstr "wie das B<ps> in AIX"
+
+#. type: tbl table
+#: ../man/ps.1:2039
+#, no-wrap
+msgid "bsd"
+msgstr "bsd"
+
+#. type: tbl table
+#: ../man/ps.1:2039
+#, no-wrap
+msgid "like FreeBSD B<ps> (totally non-standard)"
+msgstr "wie das B<ps> in FreeBSD (überhaupt nicht standardkonform)"
+
+#. type: tbl table
+#: ../man/ps.1:2040
+#, no-wrap
+msgid "compaq"
+msgstr "compaq"
+
+#. type: tbl table
+#: ../man/ps.1:2040
+#, no-wrap
+msgid "like Digital Unix B<ps>"
+msgstr "wie das B<ps> in Digital Unix"
+
+#. type: tbl table
+#: ../man/ps.1:2041
+#, no-wrap
+msgid "debian"
+msgstr "debian"
+
+#. type: tbl table
+#: ../man/ps.1:2041 ../man/ps.1:2043
+#, no-wrap
+msgid "like the old Debian B<ps>"
+msgstr "wie das alte B<ps> in Debian"
+
+#. type: tbl table
+#: ../man/ps.1:2042
+#, no-wrap
+msgid "digital"
+msgstr "digital"
+
+#. type: tbl table
+#: ../man/ps.1:2042
+#, no-wrap
+msgid "like Tru64 (was Digital\\ Unix, was OSF/1) B<ps>"
+msgstr "wie das B<ps> in Tru64 (war Digital Unix, war OSF/1)"
+
+#. type: tbl table
+#: ../man/ps.1:2043
+#, no-wrap
+msgid "gnu"
+msgstr "gnu"
+
+#. type: tbl table
+#: ../man/ps.1:2044
+#, no-wrap
+msgid "hp"
+msgstr "hp"
+
+#. type: tbl table
+#: ../man/ps.1:2044 ../man/ps.1:2045
+#, no-wrap
+msgid "like HP-UX B<ps>"
+msgstr "wie das B<ps> in HP-UX"
+
+#. type: tbl table
+#: ../man/ps.1:2045
+#, no-wrap
+msgid "hpux"
+msgstr "hpux"
+
+#. type: tbl table
+#: ../man/ps.1:2046
+#, no-wrap
+msgid "irix"
+msgstr "irix"
+
+#. type: tbl table
+#: ../man/ps.1:2046 ../man/ps.1:2053
+#, no-wrap
+msgid "like Irix B<ps>"
+msgstr "wie das B<ps> in Irix"
+
+#. type: tbl table
+#: ../man/ps.1:2047
+#, no-wrap
+msgid "linux"
+msgstr "linux"
+
+#. type: tbl table
+#: ../man/ps.1:2047
+#, no-wrap
+msgid "***** B<recommended> *****"
+msgstr "***** B<empfohlen> *****"
+
+#. type: tbl table
+#: ../man/ps.1:2048
+#, no-wrap
+msgid "old"
+msgstr "old"
+
+#. type: tbl table
+#: ../man/ps.1:2048
+#, no-wrap
+msgid "like the original Linux B<ps> (totally non-standard)"
+msgstr "wie das ursprüngliche B<ps> in Linux (überhaupt nicht standardkonform)"
+
+#. type: tbl table
+#: ../man/ps.1:2049
+#, no-wrap
+msgid "os390"
+msgstr "os390"
+
+#. type: tbl table
+#: ../man/ps.1:2049 ../man/ps.1:2051
+#, no-wrap
+msgid "like OS/390 Open Edition B<ps>"
+msgstr "wie das B<ps> in OS/390 Open Edition"
+
+#. type: tbl table
+#: ../man/ps.1:2050
+#, no-wrap
+msgid "posix"
+msgstr "posix"
+
+#. type: tbl table
+#: ../man/ps.1:2050 ../man/ps.1:2056 ../man/ps.1:2057 ../man/ps.1:2059
+#: ../man/ps.1:2060 ../man/ps.1:2061
+#, no-wrap
+msgid "standard"
+msgstr "standard"
+
+#. type: tbl table
+#: ../man/ps.1:2051
+#, no-wrap
+msgid "s390"
+msgstr "S390"
+
+#. type: tbl table
+#: ../man/ps.1:2052
+#, no-wrap
+msgid "sco"
+msgstr "sco"
+
+#. type: tbl table
+#: ../man/ps.1:2052
+#, no-wrap
+msgid "like SCO B<ps>"
+msgstr "wie das B<ps> in SCO"
+
+#. type: tbl table
+#: ../man/ps.1:2053
+#, no-wrap
+msgid "sgi"
+msgstr "sgi"
+
+#. type: tbl table
+#: ../man/ps.1:2054
+#, no-wrap
+msgid "solaris2"
+msgstr "solaris2"
+
+#. type: tbl table
+#: ../man/ps.1:2054
+#, no-wrap
+msgid "like Solaris 2+ (SunOS 5) B<ps>"
+msgstr "wie das B<ps> in Solaris 2+ (SunOS 5)"
+
+#. type: tbl table
+#: ../man/ps.1:2055
+#, no-wrap
+msgid "sunos4"
+msgstr "sunos4"
+
+#. type: tbl table
+#: ../man/ps.1:2055
+#, no-wrap
+msgid "like SunOS 4 (Solaris 1) B<ps> (totally non-standard)"
+msgstr "wie das B<ps> in SunOS 4 (Solaris 1) (überhaupt nicht standardkonform)"
+
+#. type: tbl table
+#: ../man/ps.1:2056
+#, no-wrap
+msgid "svr4"
+msgstr "svr4"
+
+#. type: tbl table
+#: ../man/ps.1:2057
+#, no-wrap
+msgid "sysv"
+msgstr "sysv"
+
+#. type: tbl table
+#: ../man/ps.1:2058
+#, no-wrap
+msgid "tru64"
+msgstr "tru64"
+
+#. type: tbl table
+#: ../man/ps.1:2058
+#, no-wrap
+msgid "like Tru64 (was Digital Unix, was OSF/1) B<ps>"
+msgstr "wie das B<ps> in Tru64 (war Digital Unix, war OSF/1)"
+
+#. type: tbl table
+#: ../man/ps.1:2059
+#, no-wrap
+msgid "unix"
+msgstr "unix"
+
+#. type: tbl table
+#: ../man/ps.1:2060
+#, no-wrap
+msgid "unix95"
+msgstr "unix95"
+
+#. type: tbl table
+#: ../man/ps.1:2061
+#, no-wrap
+msgid "unix98"
+msgstr "unix98"
+
+#. type: Plain text
+#: ../man/ps.1:2069
+msgid "The fields B<bsdstart> and B<start> will only show the abbreviated month name in English. The fields B<lstart> and B<stime> will show the abbreviated month name in the configured locale but may exceed the column width due to the different lengths for abbreviated month and day names across languages."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2076
+msgid "B<pgrep>(1), B<pstree>(1), B<top>(1), B<strftime>(3), B<proc>(5)."
+msgstr "B<pgrep>(1), B<pstree>(1), B<top>(1), B<strftime>(3), B<proc>(5)."
+
+#. type: Plain text
+#: ../man/ps.1:2080
+msgid "This B<ps> conforms to:"
+msgstr "Diese Version von B<ps> ist konform zu:"
+
+#. type: Plain text
+#: ../man/ps.1:2084
+msgid "Version 2 of the Single Unix Specification"
+msgstr "Version 2 der Single Unix Specification"
+
+#. type: Plain text
+#: ../man/ps.1:2086
+msgid "The Open Group Technical Standard Base Specifications, Issue\\ 6"
+msgstr "The Open Group Technical Standard Base Specifications, Ausgabe\\ 6"
+
+#. type: Plain text
+#: ../man/ps.1:2088
+msgid "IEEE Std 1003.1, 2004\\ Edition"
+msgstr "IEEE Std 1003.1, Ausgabe\\ 2004"
+
+#. type: Plain text
+#: ../man/ps.1:2090
+msgid "X/Open System Interfaces Extension [UP\\ XSI]"
+msgstr "X/Open System Interfaces Extension [UP\\ XSI]"
+
+#. type: IP
+#: ../man/ps.1:2090
+#, no-wrap
+msgid "5"
+msgstr "5"
+
+#. type: Plain text
+#: ../man/ps.1:2092
+msgid "ISO/IEC 9945:2003"
+msgstr "ISO/IEC 9945:2003"
+
+#. type: Plain text
+#: ../man/ps.1:2120
+msgid "B<ps> was originally written by E<.MT lankeste@\\:fwi.\\:uva.\\:nl> Branko Lankester E<.ME .> E<.MT johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.ME> re-wrote it significantly to use the proc filesystem, changing a few things in the process. E<.MT mjshield@\\:nyx.\\:cs.\\:du.\\:edu> Michael Shields E<.ME> added the pid-list feature. E<.MT cblake@\\:bbn.\\:com> Charles Blake E<.ME> added multi-level sorting, the dirent-style library, the device name-to-number mmaped database, the approximate binary search directly on System.map, and many code and documentation cleanups. David Mossberger-Tang wrote the generic BFD support for psupdate. E<.MT albert@\\:users.\\:sf.\\:net> Albert Cahalan E<.ME> rewrote ps for full Unix98 and BSD support, along with some ugly hacks for obsolete and foreign syntax."
+msgstr "B<ps> wurde ursprünglich von E<.MT lankeste@\\:fwi.\\:uva.\\:nl> Branko LankesterE<.ME> geschrieben. E<.MT johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.ME> überarbeitete es deutlich, damit es das Proc-Dateisystem nutzt, wobei einige Dinge dabei geändert wurden. E<.MT mjshield@\\:nyx.\\:cs.\\:du.\\:edu> Michael Shields E<.ME> fügte die PID-Listen-Funktion hinzu. E<.MT cblake@\\:bbn.\\:com> Charles Blake E<.ME> fügte die mehrstufige Sortierung, die Bibliothek im Dirent-Stil, die Datenbank zum Zuweisen von Gerätenamen zu deren Nummern, die näherungsweise Binärsuche direkt in System.map hinzu sowie bereinigte größere Teile des Codes und der Dokumentation. David Mossberger-Tang schrieb die generische BFD-Unterstützung für B<psupdate>. E<.MT albert@\\:users.\\:sf.\\:net> Albert Cahalan E<.ME> überarbeitete B<ps> für vollständige Unix98- und BSD-Unterstützung, zusammen mit einigen Hacks bezüglich veralteter and fremder Syntax."
+
+#. type: Plain text
+#: ../man/ps.1:2124
+msgid "Please send bug reports to E<.MT procps@\\:freelists.\\:org> E<.ME .> No subscription is required or suggested."
+msgstr "Bitte schicken Sie Fehlermeldungen (auf Englisch) an E<.MT procps@\\:freelists.\\:org> E<.ME .> Dafür ist keine Registrierung erforderlich."
+
+#. Setup ////////////////////////////////////////////////////////////////
+#. Commonly used strings (for consistency) ----------
+#. - our em-dashes
+#. type: ds Em
+#: ../man/top.1:11
+#, no-wrap
+msgid "\\ --\\ "
+msgstr "\\ --\\ "
+
+#. type: ds EM
+#: ../man/top.1:12
+#, no-wrap
+msgid "B<\\ --\\ >"
+msgstr "B<\\ --\\ >"
+
+#. - our program name (makes great grammar)
+#. type: ds We
+#: ../man/top.1:14
+#, no-wrap
+msgid "top"
+msgstr "top"
+
+#. type: ds WE
+#: ../man/top.1:15
+#, no-wrap
+msgid "B<top>"
+msgstr "B<top>"
+
+#. - other misc strs for consistent usage
+#. type: ds F
+#: ../man/top.1:17
+#, no-wrap
+msgid "I<Off>"
+msgstr "I<Aus>"
+
+#. type: ds O
+#: ../man/top.1:18
+#, no-wrap
+msgid "I<On>"
+msgstr "I<An>"
+
+#. type: ds AK
+#: ../man/top.1:20
+#, no-wrap
+msgid "asterisk (`*')"
+msgstr "Asterisk (`*')"
+
+#. type: ds AM
+#: ../man/top.1:21
+#, no-wrap
+msgid "alternate-display mode"
+msgstr ""
+
+#. type: ds AS
+#: ../man/top.1:22
+#, no-wrap
+msgid "auxiliary storage"
+msgstr ""
+
+#. type: ds CF
+#: ../man/top.1:23
+#, no-wrap
+msgid "configuration file"
+msgstr "Konfigurationsdatei"
+
+#. type: ds CG
+#: ../man/top.1:24
+#, no-wrap
+msgid "`current' window/field group"
+msgstr ""
+
+#. type: ds CI
+#: ../man/top.1:25
+#, no-wrap
+msgid "interactive command"
+msgstr "interaktiver Befehl"
+
+#. type: ds CO
+#: ../man/top.1:26
+#, no-wrap
+msgid "command-line option"
+msgstr "Befehlszeilenoption"
+
+#. type: ds CT
+#: ../man/top.1:27
+#, fuzzy, no-wrap
+#| msgid "command"
+msgid "command toggle"
+msgstr "command"
+
+#. type: ds CW
+#: ../man/top.1:28
+#, no-wrap
+msgid "`current' window"
+msgstr ""
+
+#. type: ds FG
+#: ../man/top.1:29
+#, fuzzy, no-wrap
+#| msgid "egroup"
+msgid "field group"
+msgstr "egroup"
+
+#. type: ds FM
+#: ../man/top.1:30
+#, no-wrap
+msgid "full-screen mode"
+msgstr "Vollbildmodus"
+
+#. type: ds KA
+#: ../man/top.1:31
+#, no-wrap
+msgid "arrow key"
+msgstr "Pfeiltaste"
+
+#. type: ds KS
+#: ../man/top.1:32
+#, no-wrap
+msgid "scrolling key"
+msgstr ""
+
+#. type: ds MP
+#: ../man/top.1:33
+#, no-wrap
+msgid "physical memory"
+msgstr "Physischer Speicher"
+
+#. type: ds MS
+#: ../man/top.1:34
+#, no-wrap
+msgid "swap file"
+msgstr "Auslagerungsdatei"
+
+#. type: ds MV
+#: ../man/top.1:35
+#, no-wrap
+msgid "virtual memory"
+msgstr "Virtueller Speicher"
+
+#. type: ds NT
+#: ../man/top.1:36
+#, no-wrap
+msgid "B<Note>:"
+msgstr "B<Hinweis>:"
+
+#. type: ds Pu
+#: ../man/top.1:38
+#, no-wrap
+msgid "cpu"
+msgstr "CPU"
+
+#. type: ds SA
+#: ../man/top.1:39
+#, no-wrap
+msgid "summary area"
+msgstr ""
+
+#. type: ds TA
+#: ../man/top.1:40
+#, no-wrap
+msgid "task area"
+msgstr ""
+
+#. type: ds TD
+#: ../man/top.1:41
+#, no-wrap
+msgid "task display"
+msgstr ""
+
+#. type: ds TT
+#: ../man/top.1:42
+#, no-wrap
+msgid "B<processes> or B<threads>"
+msgstr "B<Prozesse> oder B<Threads>"
+
+#. type: ds TW
+#: ../man/top.1:43
+#, no-wrap
+msgid "task window"
+msgstr ""
+
+#. Reference to the various widths/sizes ------------
+#. - the max screen width limit
+#. type: ds WX
+#: ../man/top.1:46
+#, no-wrap
+msgid "512"
+msgstr "512"
+
+#. - the header width w/ all fields
+#. type: ds WF
+#: ../man/top.1:48
+#, no-wrap
+msgid "approximately 250"
+msgstr "etwa 250"
+
+#. - pid monitoring limit
+#. Xref's that depend on/mention other stuff --------
+#. type: ds Xa
+#: ../man/top.1:51
+#, no-wrap
+msgid "see"
+msgstr "siehe"
+
+#. type: ds XC
+#: ../man/top.1:52
+#, no-wrap
+msgid "See the"
+msgstr "Siehe"
+
+#. type: ds Xc
+#: ../man/top.1:53
+#, no-wrap
+msgid "see the"
+msgstr "Siehe"
+
+#. type: ds XT
+#: ../man/top.1:54
+#, no-wrap
+msgid "See topic"
+msgstr "Siehe Thema"
+
+#. type: ds Xt
+#: ../man/top.1:55
+#, no-wrap
+msgid "see topic"
+msgstr "Siehe Thema"
+
+#. type: ds XX
+#: ../man/top.1:56
+#, no-wrap
+msgid "See `OVERVIEW, Linux Memory Types' for additional details"
+msgstr ""
+
+#. type: ds ZX
+#: ../man/top.1:57
+#, no-wrap
+msgid "Accessing smaps values is 10x more costly than other memory statistics and data for other users requires root privileges"
+msgstr ""
+
+#. type: TH
+#: ../man/top.1:62
+#, no-wrap
+msgid "TOP"
+msgstr "TOP"
+
+#. type: TH
+#: ../man/top.1:62
+#, no-wrap
+msgid "August 2023"
+msgstr "August 2023"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:70
+msgid "top - display Linux processes"
+msgstr "top - Linux-Prozesse anzeigen"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:75
+msgid "\\*(WE [options]"
+msgstr "\\*(WE [Optionen]"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:85
+msgid "The \\*(WE program provides a dynamic real-time view of a running system. It can displayB< system> summary information as well as a list of \\*(TT currently being managed by the Linux kernel. The types of system summary information shown and the types, order and size of information displayed for processes are all user configurable and that configuration can be made persistent across restarts."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:93
+msgid "The program provides a limited interactive interface for process manipulation as well as a much more extensive interface for personal configuration \\*(Em encompassing every aspect of its operation. And while \\*(WE is referred to throughout this document, you are free to name the program anything you wish. That new name, possibly an alias, will then be reflected on \\*(We's display and used when reading and writing a \\*(CF."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:95
+#, no-wrap
+msgid "OVERVIEW"
+msgstr "ÃœBERSICHT"
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:98
+#, no-wrap
+msgid "Documentation"
+msgstr "Dokumentation"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:101
+msgid "The remaining Table of Contents"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:141
+#, no-wrap
+msgid ""
+" OVERVIEW\n"
+" Operation\n"
+" Linux Memory Types\n"
+" 1. COMMAND-LINE Options\n"
+" 2. SUMMARY Display\n"
+" a. UPTIME and LOAD Averages\n"
+" b. TASK and CPU States\n"
+" c. MEMORY Usage\n"
+" 3. FIELDS / Columns Display\n"
+" a. DESCRIPTIONS of Fields\n"
+" b. MANAGING Fields\n"
+" 4. INTERACTIVE Commands\n"
+" a. GLOBAL Commands\n"
+" b. SUMMARY AREA Commands\n"
+" c. TASK AREA Commands\n"
+" 1. Appearance\n"
+" 2. Content\n"
+" 3. Size\n"
+" 4. Sorting\n"
+" d. COLOR Mapping\n"
+" 5. ALTERNATE-DISPLAY Provisions\n"
+" a. WINDOWS Overview\n"
+" b. COMMANDS for Windows\n"
+" c. SCROLLING a Window\n"
+" d. SEARCHING in a Window\n"
+" e. FILTERING in a Window\n"
+" 6. FILES\n"
+" a. PERSONAL Configuration File\n"
+" b. ADDING INSPECT Entries\n"
+" c. SYSTEM Configuration File\n"
+" d. SYSTEM Restrictions File\n"
+" 7. ENVIRONMENT VARIABLE(S)\n"
+" 8. STUPID TRICKS Sampler\n"
+" a. Kernel Magic\n"
+" b. Bouncing Windows\n"
+" c. The Big Bird Window\n"
+" d. The Ol' Switcheroo\n"
+" 9. BUGS, 10. SEE Also\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:144
+#, no-wrap
+msgid "Operation"
+msgstr "Aktion"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:150
+msgid "When operating \\*(We, the two most important keys are the help (h or ?) key and quit (`q') key. Alternatively, you could simply use the traditional interrupt key (^C) when you're done."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:157
+msgid "When started for the first time, you'll be presented with these traditional elements on the main \\*(We screen: 1) Summary Area; 2) Fields/Columns Header; 3) Task Area. Each of these will be explored in the sections that follow. There is also an Input/Message line between the Summary Area and Columns Header which needs no further explanation."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:165
+msgid "The main \\*(We screen is I<generally> quite adaptive to changes in terminal dimensions under X-Windows. Other \\*(We screens may be less so, especially those with static text. It ultimately depends, however, on your particular window manager and terminal emulator. There may be occasions when their view of terminal size and current contents differs from \\*(We's view, which is always based on operating system calls."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:170
+msgid "Following any re-size operation, if a \\*(We screen is corrupted, appears incomplete or disordered, simply typing something innocuous like a punctuation character or cursor motion key will usually restore it. In extreme cases, the following sequence almost certainly will:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:175
+#, no-wrap
+msgid ""
+" I<key/cmd objective >\n"
+" ^Z B<suspend> \\*(We\n"
+" fg B<resume> \\*(We\n"
+" E<lt>LeftE<gt> force a screen B<redraw> (if necessary)\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:179
+msgid "But if the display is still corrupted, there is one more step you could try. Insert this command after \\*(We has been suspended but before resuming it."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:182
+#, no-wrap
+msgid ""
+" I<key/cmd objective >\n"
+" reset restore your B<terminal settings>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:192
+msgid "\\*(NT the width of \\*(We's display will be limited to \\*(WX positions. Displaying all fields requires \\*(WF characters. Remaining screen width is usually allocated to any variable width columns currently visible. The variable width columns, such as COMMAND, are noted in topic 3a. DESCRIPTIONS of Fields. Actual output width may also be influenced by the -w switch, which is discussed in topic 1. COMMAND-LINE Options."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:197
+msgid "Lastly, some of \\*(We's screens or functions require the use of cursor motion keys like the standard \\*(KAs plus the Home, End, PgUp and PgDn keys. If your terminal or emulator does not provide those keys, the following combinations are accepted as alternatives:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:207
+#, no-wrap
+msgid ""
+" I< key equivalent-keys >\n"
+" Left alt +B< h >\n"
+" Down alt +B< j >\n"
+" Up alt +B< k >\n"
+" Right alt +B< l >\n"
+" Home alt + ctrl +B< h >\n"
+" PgDn alt + ctrl +B< j >\n"
+" PgUp alt + ctrl +B< k >\n"
+" End alt + ctrl +B< l >\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:214
+msgid "The B<Up> and B<Down> \\*(KAs have special significance when prompted for line input terminated with the E<lt>EnterE<gt> key. Those keys, or their aliases, can be used to retrieve previous input lines which can then be edited and re-input. And there are four additional keys available with line oriented input."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:222
+#, no-wrap
+msgid ""
+" I< key special-significance >\n"
+" Up recall B<older> strings for re-editing\n"
+" Down recall B<newer> strings or B<erase> entire line\n"
+" Insert toggle between B<insert> and B<overtype> modes\n"
+" Delete character B<removed> at cursor, moving others left\n"
+" Home jump to B<beginning> of input line\n"
+" End jump to B<end> of input line\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:225
+#, no-wrap
+msgid "Linux Memory Types"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:234
+msgid "For our purposes there are three types of memory, and one is optional. First is \\*(MP, a limited resource where code and data must reside when executed or referenced. Next is the optional \\*(MS, where modified (dirty) memory can be saved and later retrieved if too many demands are made on \\*(MP. Lastly we have \\*(MV, a nearly unlimited resource serving the following goals:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:240
+#, no-wrap
+msgid ""
+" 1. abstraction, free from physical memory addresses/limits\n"
+" 2. isolation, every process in a separate address space\n"
+" 3. sharing, a single mapping can serve multiple needs\n"
+" 4. flexibility, assign a virtual address to a file\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:249
+msgid "Regardless of which of these forms memory may take, all are managed as pages (typically 4096 bytes) but expressed by default in \\*(We as KiB (kibibyte). The memory discussed under topic `2c. MEMORY Usage' deals with \\*(MP and the \\*(MS for the system as a whole. The memory reviewed in topic `3. FIELDS / Columns Display' embraces all three memory types, but for individual processes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:255
+msgid "For each such process, every memory page is restricted to a single quadrant from the table below. Both \\*(MP and \\*(MV can include any of the four, while the \\*(MS only includes #1 through #3. The memory in quadrant #4, when modified, acts as its own dedicated \\*(MS."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:267
+#, no-wrap
+msgid ""
+" B<Private> | B<Shared>\n"
+" B<1> | B<2>\n"
+" B<Anonymous> . stack |\n"
+" . malloc() |\n"
+" . brk()/sbrk() | . POSIX shm*\n"
+" . mmap(PRIVATE, ANON) | . mmap(SHARED, ANON)\n"
+" -----------------------+----------------------\n"
+" . mmap(PRIVATE, fd) | . mmap(SHARED, fd)\n"
+" B<File-backed> . pgms/shared libs |\n"
+" B<3> | B<4>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:271
+msgid "The following may help in interpreting process level memory values displayed as scalable columns and discussed under topic `3a. DESCRIPTIONS of Fields'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:288
+#, no-wrap
+msgid ""
+" %MEM - simply RES divided by total \\*(MP\n"
+" CODE - the `pgms' portion of quadrant B<3>\n"
+" DATA - the entire quadrant B<1> portion of VIRT plus all\n"
+" explicit mmap file-backed pages of quadrant B<3>\n"
+" RES - anything occupying \\*(MP which, beginning with\n"
+" Linux-4.5, is the sum of the following three fields:\n"
+" RSan - quadrant B<1> pages, which include any\n"
+" former quadrant B<3> pages if modified\n"
+" RSfd - quadrant B<3> and quadrant B<4> pages\n"
+" RSsh - quadrant B<2> pages\n"
+" RSlk - subset of RES which cannot be swapped out (any quadrant)\n"
+" SHR - subset of RES (excludes B<1>, includes all B<2> & B<4>, some B<3>)\n"
+" SWAP - potentially any quadrant except B<4>\n"
+" USED - simply the sum of RES and SWAP\n"
+" VIRT - everything in-use and/or reserved (all quadrants)\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:293
+msgid "\\*(NT Even though program images and shared libraries are considered I<private> to a process, they will be accounted for as I<shared> (SHR) by the kernel."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:295
+#, no-wrap
+msgid "1. COMMAND-LINE Options"
+msgstr "1. BEFEHLSZEILENOPTIONEN"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:299
+msgid "MandatoryI< arguments> to long options are mandatory for short options too."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:302
+msgid "Although not required, the equals sign can be used with either option form and whitespace before and/or after the `=' is permitted."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:303
+#, fuzzy, no-wrap
+#| msgid "B<-b>, B<--bytes>"
+msgid "-B<b>, B<--batch>"
+msgstr "B<-b>, B<--bytes>"
+
+#. type: Plain text
+#: ../man/top.1:309
+msgid "Starts \\*(We in Batch mode, which could be useful for sending output from \\*(We to other programs or to a file. In this mode, \\*(We will not accept input and runs until the iterations limit you've set with the `-n' \\*(CO or until killed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:310
+#, fuzzy, no-wrap
+#| msgid "B<-c>, B<--count>"
+msgid "-B<c>, B<--cmdline-toggle>"
+msgstr "B<-c>, B<--count>"
+
+#. type: Plain text
+#: ../man/top.1:316
+msgid "Starts \\*(We with the last remembered `c' state reversed. Thus, if \\*(We was displaying command lines, now that field will show program names, and vice versa. \\*(XC `c' \\*(CI for additional information."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:317
+#, no-wrap
+msgid "-B<d>, B<--delay> = I<SECS> [I<.TENTHS>]"
+msgstr "-B<d>, B<--delay> = I<SEKUNDEN> [I<.ZEHNTEL>]"
+
+#. type: Plain text
+#: ../man/top.1:322
+msgid "Specifies the delay between screen updates, and overrides the corresponding value in one's personal \\*(CF or the startup default. Later this can be changed with the `d' or `s' \\*(CIs."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:327
+msgid "Fractional seconds are honored, but a negative number is not allowed. In all cases, however, such changes are prohibited if \\*(We is running in Secure mode, except for root (unless the `s' \\*(CO was used). For additional information on Secure mode \\*(Xt 6d. SYSTEM Restrictions File."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:328
+#, no-wrap
+msgid "-B<E>, B<--scale-summary-mem> = I<k> | I<m> | I<g> | I<t> | I<p> | I<e>"
+msgstr "-B<E>, B<--scale-summary-mem> = I<k> | I<m> | I<g> | I<t> | I<p> | I<e>"
+
+#. type: Plain text
+#: ../man/top.1:331
+msgid "Instructs \\*(We to force \\*(SA memory to be scaled as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:338
+#, no-wrap
+msgid ""
+" k - kibibytes\n"
+" m - mebibytes\n"
+" g - gibibytes\n"
+" t - tebibytes\n"
+" p - pebibytes\n"
+" e - exbibytes\n"
+msgstr ""
+" k - Kibibyte\n"
+" m - Mebibyte\n"
+" g - Gibibyte\n"
+" t - Tebibyte\n"
+" p - Pebibyte\n"
+" e - Exbibyte\n"
+
+#. type: Plain text
+#: ../man/top.1:341
+msgid "Later this can be changed with the `E' \\*(CT."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:342
+#, no-wrap
+msgid "-B<e>, B<--scale-task-mem> = I<k> | I<m> | I<g> | I<t> | I<p>"
+msgstr "-B<e>, B<--scale-task-mem> = I<k> | I<m> | I<g> | I<t> | I<p>"
+
+#. type: Plain text
+#: ../man/top.1:345
+msgid "Instructs \\*(We to force \\*(TA memory to be scaled as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:351
+#, no-wrap
+msgid ""
+" k - kibibytes\n"
+" m - mebibytes\n"
+" g - gibibytes\n"
+" t - tebibytes\n"
+" p - pebibytes\n"
+msgstr ""
+" k - Kibibyte\n"
+" m - Mebibyte\n"
+" g - Gibibyte\n"
+" t - Tebibyte\n"
+" p - Pebibyte\n"
+
+#. type: Plain text
+#: ../man/top.1:354
+msgid "Later this can be changed with the `e' \\*(CT."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:355
+#, no-wrap
+msgid "-B<H>, B<--threads-show>"
+msgstr "-B<H>, B<--threads-show>"
+
+#. type: Plain text
+#: ../man/top.1:360
+msgid "Instructs \\*(We to display individual threads. Without this \\*(CO a summation of all threads in each process is shown. Later this can be changed with the `H' \\*(CI."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:361
+#, no-wrap
+msgid "-B<h>, B<--help>"
+msgstr "-B<h>, B<--help>"
+
+#. type: Plain text
+#: ../man/top.1:364
+#, fuzzy
+#| msgid "Display help text and exit."
+msgid "Display usage help text, then quit."
+msgstr "zeigt einen Hilfetext an und beendet das Programm."
+
+#. type: TP
+#: ../man/top.1:365
+#, no-wrap
+msgid "-B<i>, B<--idle-toggle>"
+msgstr "-B<i>, B<--idle-toggle>"
+
+#. type: Plain text
+#: ../man/top.1:372
+msgid "Starts \\*(We with the last remembered `i' state reversed. When this toggle is \\*F, tasks that have not used any \\*(PU since the last update will not be displayed. For additional information regarding this toggle \\*(Xt 4c. TASK AREA Commands, SIZE."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:373
+#, no-wrap
+msgid "-B<n>, B<--iterations> = I<NUMBER>"
+msgstr "-B<n>, B<--iterations> = I<ANZAHL>"
+
+#. type: Plain text
+#: ../man/top.1:377
+msgid "Specifies the maximum number of iterations, or frames, \\*(We should produce before ending."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:378
+#, no-wrap
+msgid "-B<O>, B<--list-fields>"
+msgstr "-B<O>, B<--list-fields>"
+
+#. type: Plain text
+#: ../man/top.1:384
+msgid "This option acts as a form of help for the -o option shown below. It will cause \\*(We to print each of the available field names on a separate line, then quit. Such names are subject to NLS (National Language Support) translation."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:385
+#, no-wrap
+msgid "-B<o>, B<--sort-override> = I<FIELDNAME>"
+msgstr "-B<o>, B<--sort-override> = I<FELDNAME>"
+
+#. type: Plain text
+#: ../man/top.1:393
+msgid "Specifies the name of the field on which tasks will be sorted, independent of what is reflected in the configuration file. You can prepend a `+' or `-' to the field name to also override the sort direction. A leading `+' will force sorting high to low, whereas a `-' will ensure a low to high ordering."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:396
+msgid "This option exists primarily to support automated/scripted batch mode operation."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:397
+#, no-wrap
+msgid "-B<p>, B<--pid> = I<PIDLIST> (as: I<1>,I<2>,I<3>, ... or -pI<1> -pI<2> -pI<3> ...)"
+msgstr "-B<p>, B<--pid> = I<PID-LISTE> (wie: I<1>,I<2>,I<3>, … oder -pI<1> -pI<2> -pI<3> ...)"
+
+#. type: Plain text
+#: ../man/top.1:403
+msgid "Monitor only processes with specified process IDs. However, when combined with Threads mode (`H'), all processes in the thread group (\\*(Xa TGID) of each monitored PID will also be shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:407
+msgid "This option can be given up to 20 times, or you can provide a comma delimited list with up to 20 pids. Co-mingling both approaches is permitted."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:410
+msgid "A pid value of zero will be treated as the process id of the \\*(We program itself once it is running."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:414
+msgid "This is a \\*(CO only and should you wish to return to normal operation, it is not necessary to quit and restart \\*(We \\*(Em just issue any of these \\*(CIs: `=', `u' or `U'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:416
+msgid "The `p', `u' and `U' \\*(COs are mutually exclusive."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:417
+#, no-wrap
+msgid "-B<S>, B<--accum-time-toggle>"
+msgstr "-B<S>, B<--accum-time-toggle>"
+
+#. type: Plain text
+#: ../man/top.1:423
+msgid "Starts \\*(We with the last remembered `S' state reversed. When Cumulative time mode is \\*O, each process is listed with the \\*(Pu time that it and its dead children have used. \\*(XC `S' \\*(CI for additional information regarding this mode."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:424
+#, no-wrap
+msgid "-B<s>, B<--secure-mode>"
+msgstr "-B<s>, B<--secure-mode>"
+
+#. type: Plain text
+#: ../man/top.1:429
+msgid "Starts \\*(We with secure mode forced, even for root. This mode is far better controlled through a system \\*(CF (\\*(Xt 6. FILES)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:430
+#, no-wrap
+msgid "-B<U>, B<--filter-any-user> = I<USER> (as: I<number> or I<name>)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:435
+msgid "Display only processes with a user id or user name matching that given. This option matches onI< any> user (I<real>, I<effective>, I<saved>, or I<filesystem>)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:438 ../man/top.1:448
+msgid "Prepending an exclamation point (`!') to the user id or name instructs \\*(We to display only processes with users not matching the one provided."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:440 ../man/top.1:450
+msgid "The `p', `U' and `u' \\*(COs are mutually exclusive."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:441
+#, no-wrap
+msgid "-B<u>, B<--filter-only-euser> = I<USER> (as: I<number> or I<name>)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:445
+msgid "Display only processes with a user id or user name matching that given. This option matches on theI< effective> user id only."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:451
+#, no-wrap
+msgid "-B<V>, B<--version>"
+msgstr "-B<V>, B<--version>"
+
+#. type: Plain text
+#: ../man/top.1:454
+msgid "Display version information, then quit."
+msgstr "zeigt Versionsinformationen an und beendet das Programm."
+
+#. type: TP
+#: ../man/top.1:455
+#, no-wrap
+msgid "-B<w>, B<--width> [=I<COLUMNS>]"
+msgstr "-B<w>, B<--width> [=I<SPALTEN>]"
+
+#. type: Plain text
+#: ../man/top.1:462
+msgid "In Batch mode, when used without an argument \\*(We will format output using the COLUMNS= and LINES= environment variables, if set. Otherwise, width will be fixed at the maximum \\*(WX columns. With an argument, output width can be decreased or increased (up to \\*(WX) but the number of rows is considered unlimited."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:468
+msgid "In normal display mode, when used without an argument \\*(We willI< attempt> to format output using the COLUMNS= and LINES= environment variables, if set. With an argument, output width can only be decreased, not increased. Whether using environment variables or an argument with -w, whenI< not> in Batch mode actual terminal dimensions can never be exceeded."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:471
+msgid "\\*(NT Without the use of this \\*(CO, output width is always based on the terminal at which \\*(We was invoked whether or not in Batch mode."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:472
+#, no-wrap
+msgid "-B<1>, B<--single-cpu-toggle>"
+msgstr "-B<1>, B<--single-cpu-toggle>"
+
+#. type: Plain text
+#: ../man/top.1:478
+msgid "Starts \\*(We with the last remembered Cpu States portion of the \\*(SA reversed. Either all \\*(Pu information will be displayed in a single line or each \\*(Pu will be displayed separately, depending on the state of the NUMA Node \\*(CT (`2')."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:480
+msgid "\\*(XC `1' and `2' \\*(CIs for additional information."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:482
+#, no-wrap
+msgid "2. SUMMARY Display"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:488
+msgid "Each of the following three areas are individually controlled through one or more \\*(CIs. \\*(XT 4b. SUMMARY AREA Commands for additional information regarding these provisions."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:490
+#, no-wrap
+msgid "2a. UPTIME and LOAD Averages"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:493
+msgid "This portion consists of a single line containing:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:498
+#, no-wrap
+msgid ""
+" B<program> orB< window> name, depending on display mode\n"
+" current time and length of time since last boot\n"
+" total number of users\n"
+" system load avg over the last 1, 5 and 15 minutes\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:501
+#, no-wrap
+msgid "2b. TASK and CPU States"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:506
+msgid "This portion consists of a minimum of two lines. In an SMP environment, additional lines can reflect individual \\*(PU state percentages."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:510
+msgid "Line 1 shows totalB< tasks> orB< threads>, depending on the state of the Threads-mode toggle. That total is further classified as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:512
+#, no-wrap
+msgid " running; sleeping; stopped; zombie\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:516
+msgid "Line 2 shows \\*(PU state percentages based on the interval since the last refresh."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:519
+msgid "As a default, percentages for these individual categories are displayed. Depending on your kernel version, the B<st> field may not be shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:528
+#, no-wrap
+msgid ""
+" B<us> : time running un-niced user processes\n"
+" B<sy> : time running kernel processes\n"
+" B<ni> : time running niced user processes\n"
+" B<id> : time spent in the kernel idle handler\n"
+" B<wa> : time waiting for I/O completion\n"
+" B<hi> : time spent servicing hardware interrupts\n"
+" B<si> : time spent servicing software interrupts\n"
+" B<st> : time stolen from this vm by the hypervisor\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:532
+msgid "The `sy' value above also reflects the time running a virtual \\*(Pu for guest operating systems, including those that have been niced."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:536
+msgid "Beyond the first tasks/threads line, there are alternate \\*(PU display modes available via the 4-way `t' \\*(CT. They show an abbreviated summary consisting of these elements:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:539
+#, fuzzy, no-wrap
+#| msgid ""
+#| " a b c d\n"
+#| " %Cpu(s): B<75.0>/25.0 B<100>[ ...\n"
+msgid ""
+" a b c d\n"
+" %Cpu(s): B<75.0>/25.0 B<100>[ ... ]\n"
+msgstr ""
+" a b c d\n"
+" %Cpu(s): B<75.0>/25.0 B<100>[ ...\n"
+
+#. type: Plain text
+#: ../man/top.1:546
+msgid "Where: a) is the `user' (us + ni) percentage; b) is the `system' (sy + hi + si + guests) percentage; c) is the total percentage; and d) is one of two visual graphs of those representations. Such graphs also reflect separate `user' and `system' portions."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:551
+msgid "If the `4' \\*(CT is used to yield more than two cpus per line, results will be further abridged eliminating the a) and b) elements. However, that information is still reflected in the graph itself assuming color is active or, if not, bars vs. blocks are being shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:554
+msgid "\\*(XT 4b. SUMMARY AREA Commands for additional information on the `t' and `4' \\*(CTs."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:556
+#, no-wrap
+msgid "2c. MEMORY Usage"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:561
+msgid "This portion consists of two lines which may express values in kibibytes (KiB) through exbibytes (EiB) depending on the scaling factor enforced with the `E' \\*(CI. The /proc/meminfo source fields are shown in parenthesis."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:563
+msgid "Line 1 reflects \\*(MP, classified as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:568
+#, no-wrap
+msgid ""
+" total ( MemTotal )\n"
+" free ( MemFree )\n"
+" used ( MemTotal - MemAvailable )\n"
+" buff/cache ( Buffers + Cached + SReclaimable )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:571
+msgid "Line 2 reflects mostly \\*(MV, classified as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:576
+#, no-wrap
+msgid ""
+" total ( SwapTotal )\n"
+" free ( SwapFree )\n"
+" used ( SwapTotal - SwapFree )\n"
+" avail ( MemAvailable, which is \\*(MP )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:584
+#, fuzzy
+#| msgid "Estimation of how much memory is available for starting new applications, without swapping. Unlike the data provided by the B<cache> or B<free> fields, this field takes into account page cache and also that not all reclaimable memory slabs will be reclaimed due to items being in use (MemAvailable in /proc/meminfo, available on kernels 3.14, emulated on kernels 2.6.27+, otherwise the same as B<free>)"
+msgid "The B<avail> number on line 2 is an estimation of \\*(MP available for starting new applications, without swapping. Unlike the B<free> field, it attempts to account for readily reclaimable page cache and memory slabs. It is available on kernels 3.14, emulated on kernels 2.6.27+, otherwise the same as B<free>."
+msgstr "Schätzung des zum Starten neuer Anwendungen verfügbaren Speichers, ohne den Auslagerungsspeicher zu nutzen. Im Gegensatz zu den in den Feldern B<Cache> oder B<Frei> angezeigten Daten bezieht dieses Feld den Page-Cache mit ein, und beachtet außerdem, dass nicht alle beanspruchbaren Speicher-Slabs durch in Verwendung befindliche Objekte auch wirklich beansprucht werden. (MemAvailable in /proc/meminfo, verfügbar ab Kernel 3.14, emuliert in Kernel 2.6.27 und neuer, anderenfalls gleichbedeutend mit B<Frei>)"
+
+#. type: Plain text
+#: ../man/top.1:587
+msgid "In the alternate memory display modes, two abbreviated summary lines are shown consisting of these elements:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:591
+#, fuzzy, no-wrap
+#| msgid ""
+#| " a b c d\n"
+#| " %Cpu(s): B<75.0>/25.0 B<100>[ ...\n"
+msgid ""
+" a b c\n"
+" GiB Mem : B<18.7>/15.738 [ ... ]\n"
+" GiB Swap: B< 0.0>/7.999 [ ... ]\n"
+msgstr ""
+" a b c d\n"
+" %Cpu(s): B<75.0>/25.0 B<100>[ ...\n"
+
+#. type: Plain text
+#: ../man/top.1:595
+msgid "Where: a) is the percentage used; b) is the total available; and c) is one of two visual graphs of those representations."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:602
+msgid "In the case of \\*(MP, the percentage represents the B<total> minus the estimated B<avail> noted above. The `Mem' graph itself is divided between the non-cached portion of B<used> and any remaining memory not otherwise accounted for by B<avail>. \\*(XT 4b. SUMMARY AREA Commands and the `m' command for additional information on that special 4-way toggle."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:604
+msgid "This table may help in interpreting the scaled values displayed:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:611
+#, no-wrap
+msgid ""
+" KiB = kibibyte = 1024 bytes\n"
+" MiB = mebibyte = 1024 KiB = 1,048,576 bytes\n"
+" GiB = gibibyte = 1024 MiB = 1,073,741,824 bytes\n"
+" TiB = tebibyte = 1024 GiB = 1,099,511,627,776 bytes\n"
+" PiB = pebibyte = 1024 TiB = 1,125,899,906,842,624 bytes\n"
+" EiB = exbibyte = 1024 PiB = 1,152,921,504,606,846,976 bytes\n"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:614
+#, no-wrap
+msgid "3. FIELDS / Columns"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:617
+#, fuzzy, no-wrap
+#| msgid "DESCRIPTION"
+msgid "3a. DESCRIPTIONS of Fields"
+msgstr "BESCHREIBUNG"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:623
+msgid "Listed below are \\*(We's available process fields (columns). They are shown in strict ascii alphabetical order. You may customize their position and whether or not they are displayable with the `f' (Fields Management) \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:628
+msgid "Any field is selectable as the sort field, and you control whether they are sorted high-to-low or low-to-high. For additional information on sort provisions \\*(Xt 4c. TASK AREA Commands, SORTING."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:634
+msgid "The fields related to \\*(MP or \\*(MV reference `(KiB)' which is the unsuffixed display mode. Such fields may, however, be scaled from KiB through PiB. That scaling is influenced via the `e' \\*(CI or established for startup through a build option."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:635
+#, no-wrap
+msgid "B<%CPU \\*(Em \\*(PU Usage >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:639
+msgid "The task's share of the elapsed \\*(PU time since the last screen update, expressed as a percentage of total \\*(PU time."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:644
+msgid "In a true SMP environment, if a process is multi-threaded and \\*(We is I<not> operating in Threads mode, amounts greater than 100% may be reported. You toggle Threads mode with the `H' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:649
+msgid "Also for multi-processor environments, if Irix mode is \\*F, \\*(We will operate in Solaris mode where a task's \\*(Pu usage will be divided by the total number of \\*(PUs. You toggle Irix/Solaris modes with the `I' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:655
+msgid "\\*(NT When running in forest view mode (`V') with children collapsed (`v'), this field will also include the \\*(PU time of those unseen children. \\*(XT 4c. TASK AREA Commands, CONTENT for more information regarding the `V' and `v' toggles."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:656
+#, no-wrap
+msgid "B<%CUC \\*(Em \\*(PU Utilization >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:660
+msgid "This field is identical to %CUU below, except the percentage also reflects reaped child processes."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:661
+#, no-wrap
+msgid "B<%CUU \\*(Em \\*(PU Utilization >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:665
+msgid "A task's total \\*(PU usage divided by its elapsed running time, expressed as a percentage."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:670
+msgid "If a process currently displays high \\*(PU usage, this field can help determine if such behavior is normal. Conversely, if a process has low \\*(PU usage currently, %CUU may reflect historically higher demands over its lifetime."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:671
+#, no-wrap
+msgid "B<%MEM \\*(Em Memory Usage (RES) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:674
+msgid "A task's currently resident share of available \\*(MP."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:676 ../man/top.1:737 ../man/top.1:770 ../man/top.1:943
+#: ../man/top.1:1004 ../man/top.1:1057 ../man/top.1:1102 ../man/top.1:1122
+msgid "\\*(XX."
+msgstr "\\*(XX."
+
+#. type: TP
+#: ../man/top.1:677
+#, no-wrap
+msgid "B<AGID \\*(Em Autogroup Identifier >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:682
+msgid "The autogroup identifier associated with a process. This feature operates in conjunction with the CFS scheduler to improve interactive desktop performance."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:691
+msgid "When /proc/sys/kernel/sched_autogroup_enabled is set, a new autogroup is created with each new session (\\*(Xa SID). All subsequently forked processes in that session inherit membership in this autogroup. The kernel then attempts to equalize distribution of CPU cycles across such groups. Thus, an autogroup with many \\*(PU intensive processes (e.g make -j) will not dominate an autogroup with only one or two processes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:693
+msgid "When -1 is displayed it means this information is not available."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:694
+#, no-wrap
+msgid "B<AGNI \\*(Em Autogroup Nice Value >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:700
+msgid "The autogroup nice value which affects scheduling of all processes in that group. A negative nice value means higher priority, whereas a positive nice value means lower priority."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:701
+#, no-wrap
+msgid "B<CGNAME \\*(Em Control Group Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:705
+#, fuzzy
+#| msgid "display name of control groups to which the process belongs."
+msgid "The name of the control group to which a process belongs, or `-' if not applicable for that process."
+msgstr "zeigt den Namen der Control-Gruppen an, zu denen der Prozess gehört."
+
+#. type: Plain text
+#: ../man/top.1:709
+msgid "This will typically be the last entry in the full list of control groups as shown under the next heading (CGROUPS). And as is true there, this field is also variable width."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:710
+#, no-wrap
+msgid "B<CGROUPS \\*(Em Control Groups >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:714
+#, fuzzy
+#| msgid "display name of control groups to which the process belongs."
+msgid "The names of the control group(s) to which a process belongs, or `-' if not applicable for that process."
+msgstr "zeigt den Namen der Control-Gruppen an, zu denen der Prozess gehört."
+
+#. type: Plain text
+#: ../man/top.1:719
+msgid "Control Groups provide for allocating resources (cpu, memory, network bandwidth, etc.) among installation-defined groups of processes. They enable fine-grained control over allocating, denying, prioritizing, managing and monitoring those resources."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:723
+msgid "Many different hierarchies of cgroups can exist simultaneously on a system and each hierarchy is attached to one or more subsystems. A subsystem represents a single resource."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:730
+msgid "\\*(NT The CGROUPS field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum \\*(WX characters). Even so, such variable width fields could still suffer truncation. \\*(XT 5c. SCROLLING a Window for additional information on accessing any truncated data."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:731
+#, no-wrap
+msgid "B<CODE \\*(Em Code Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:735
+msgid "The amount of \\*(MP currently devoted to executable code, also known as the Text Resident Set size or TRS."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:738
+#, no-wrap
+msgid "B<COMMAND \\*(Em Command Name> or CommandB< Line >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:744
+msgid "Display the command line used to start a task or the name of the associated program. You toggle between commandI< line> andI< name> with `c', which is both a \\*(CO and an \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:749
+#, no-wrap
+msgid ""
+"When you've chosen to display command lines, processes without a command\n"
+"line (like kernel threads) will be shown with only the program name in\n"
+"brackets, as in this example:\n"
+" [kthreadd]\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:752
+msgid "This field may also be impacted by the forest view display mode. \\*(XC `V' \\*(CI for additional information regarding that mode."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:761
+msgid "\\*(NT The COMMAND field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum \\*(WX characters). Even so, such variable width fields could still suffer truncation. This is especially true for this field when command lines are being displayed (the `c' \\*(CI.) \\*(XT 5c. SCROLLING a Window for additional information on accessing any truncated data."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:762
+#, no-wrap
+msgid "B<DATA \\*(Em Data + Stack Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:768
+msgid "The amount of private memory I<reserved> by a process. It is also known as the Data Resident Set or DRS. Such memory may not yet be mapped to \\*(MP (RES) but will always be included in the \\*(MV (VIRT) amount."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:771
+#, no-wrap
+msgid "B<ELAPSED \\*(Em Elapsed Running Time>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:775
+msgid "The length of time since a process was started. Thus, the most recently started task will display the smallest time interval."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:780
+msgid "The value will be expressed as `HH,MM' (hours,minutes) but is subject to additional scaling if the interval becomes too great to fit column width. At that point it will be scaled to `DD+HH' (days+hours) and possibly beyond."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:781
+#, no-wrap
+msgid "B<ENVIRON \\*(Em Environment variables >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:787
+msgid "Display all of the environment variables, if any, as seen by the respective processes. These variables will be displayed in their raw native order, not the sorted order you are accustomed to seeing with an unqualified `set'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:795
+msgid "\\*(NT The ENVIRON field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum \\*(WX characters). Even so, such variable width fields could still suffer truncation. This is especially true for this field. \\*(XT 5c. SCROLLING a Window for additional information on accessing any truncated data."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:796
+#, no-wrap
+msgid "B<EXE \\*(Em Executable Path >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:800
+msgid "Where available, this is the full path to the executable, including the program name."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:804
+msgid "\\*(NT The EXE field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum \\*(WX characters)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:805
+#, no-wrap
+msgid "B<Flags \\*(Em Task Flags >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:810
+msgid "This column represents the task's current scheduling flags which are expressed in hexadecimal notation and with zeros suppressed. These flags are officially documented in E<lt>linux/sched.hE<gt>."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:811
+#, no-wrap
+msgid "B<GID \\*(Em Group Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:814
+msgid "TheI< effective> group ID."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:815
+#, no-wrap
+msgid "B<GROUP \\*(Em Group Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:818
+#, fuzzy
+#| msgid "The next expression is a username."
+msgid "TheI< effective> group name."
+msgstr "Der nächste Ausdruck ist ein Benutzername."
+
+#. type: TP
+#: ../man/top.1:819
+#, no-wrap
+msgid "B<LOGID \\*(Em Login User Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:823
+msgid "The user ID used atI< login>. When -1 is displayed it means this information is not available."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:824
+#, no-wrap
+msgid "B<LXC \\*(Em Lxc Container Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:828
+msgid "The name of the lxc container within which a task is running. If a process is not running inside a container, a dash (`-') will be shown."
+msgstr "Der Name des LXC-Containers, in dem die Task läuft. Falls ein Prozess nicht innerhalb eines Containers läuft, wird ein Bindestrich (»-«) angezeigt."
+
+#. type: TP
+#: ../man/top.1:829
+#, no-wrap
+msgid "B<NI \\*(Em Nice Value >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:836
+msgid "The nice value of the task. A negative nice value means higher priority, whereas a positive nice value means lower priority. Zero in this field simply means priority will not be adjusted in determining a task's dispatch-ability."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:840
+msgid "\\*(NT This value only affects scheduling priority relative to other processes in the same autogroup. \\*(XC `AGID' and `AGNI' fields for additional information on autogroups."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:841
+#, no-wrap
+msgid "B<NU \\*(Em Last known NUMA node >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:845
+#, fuzzy
+#| msgid ""
+#| "The node associated with the most recently used processor.\n"
+#| "A I<-1> means that NUMA information is unavailable."
+msgid "A number representing the NUMA node associated with the last used processor (`P'). When -1 is displayed it means that NUMA information is not available."
+msgstr ""
+"Der Knoten, der dem zuletzt verwendeten Prozessor zugeordnet ist.\n"
+"Ein I<-1> bedeutet, dass keine NUMA-Information verfügbar ist."
+
+#. type: Plain text
+#: ../man/top.1:847
+msgid "\\*(XC `2' and `3' \\*(CIs for additional NUMA provisions affecting the \\*(SA."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:848
+#, no-wrap
+msgid "B<OOMa \\*(Em Out of Memory Adjustment Factor >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:853
+msgid "The value, ranging from -1000 to +1000, added to the current out of memory score (OOMs) which is then used to determine which task to kill when memory is exhausted."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:854
+#, no-wrap
+msgid "B<OOMs \\*(Em Out of Memory Score >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:859
+msgid "The value, ranging from 0 to +1000, used to select task(s) to kill when memory is exhausted. Zero translates to `never kill' whereas 1000 means `always kill'."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:860
+#, no-wrap
+msgid "B<P \\*(Em Last used \\*(PU (SMP) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:868
+msgid "A number representing the last used processor. In a true SMP environment this will likely change frequently since the kernel intentionally uses weak affinity. Also, the very act of running \\*(We may break this weak affinity and cause more processes to change \\*(PUs more often (because of the extra demand for \\*(Pu time)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:869
+#, no-wrap
+msgid "B<PGRP \\*(Em Process Group Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:878
+msgid "Every process is member of a unique process group which is used for distribution of signals and by terminals to arbitrate requests for their input and output. When a process is created (forked), it becomes a member of the process group of its parent. By convention, this value equals the process ID (\\*(Xa PID) of the first member of a process group, called the process group leader."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:879
+#, no-wrap
+msgid "B<PID \\*(Em Process Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:884
+msgid "The task's unique process ID, which periodically wraps, though never restarting at zero. In kernel terms, it is a dispatchable entity defined by a task_struct."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:889
+#, fuzzy
+msgid "This value may also be used as: a process group ID (\\*(Xa PGRP); a session ID for the session leader (\\*(Xa SID); a thread group ID for the thread group leader (\\*(Xa TGID); and a TTY process group ID for the process group leader (\\*(Xa TPGID)."
+msgstr "Eindeutige Zahl, die eine … repräsentiert (alias B<lwp>,B<\\ spid>). Dieser Wert kann auch folgendermaßen erscheinen: als Prozesskennung (pid); als Prozessgruppenkennung (pgrp); als Sitzungskennung für den Sitzungsleiter (sid); als Thread-Gruppenkennung für den Thread-Gruppenleiter (tgid); und als TTY-Prozessgruppenkennung für den Prozessgruppenleiter (tpgid)."
+
+#. type: TP
+#: ../man/top.1:890
+#, no-wrap
+msgid "B<PPID \\*(Em Parent Process Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:893
+msgid "The process ID (pid) of a task's parent."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:894
+#, no-wrap
+msgid "B<PR \\*(Em Priority >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:899
+msgid "The scheduling priority of the task. If you see `rt' in this field, it means the task is running under real time scheduling priority."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:903
+msgid "Under linux, real time priority is somewhat misleading since traditionally the operating itself was not preemptible. And while the 2.6 kernel can be made mostly preemptible, it is not always so."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:904
+#, no-wrap
+msgid "B<PSS \\*(Em Proportional Resident Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:909
+msgid "The proportion of this task's share of `RSS' where each page is divided by the number of processes sharing it. It is also the sum of the `PSan', `PSfd' and `PSsh' fields."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:912
+msgid "For example, if a process has 1000 resident pages alone and 1000 resident pages shared with another process, its `PSS' would be 1500 (times page size)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:914 ../man/top.1:927 ../man/top.1:951 ../man/top.1:1114
+msgid "\\*(ZX."
+msgstr "\\*(ZX."
+
+#. type: Plain text
+#: ../man/top.1:917
+msgid "B<PSan \\*(Em Proportional Anonymous Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:919
+msgid "B<PSfd \\*(Em Proportional File Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:921
+msgid "B<PSsh \\*(Em Proportional Shmem Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:925
+msgid "As was true for `PSS' above (total proportional resident memory), these fields represent the proportion of this task's share of each type of memory divided by the number of processes sharing it."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:929
+#, no-wrap
+msgid "B<RES \\*(Em Resident Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:934
+msgid "A subset of the virtual address space (VIRT) representing the non-swapped \\*(MP a task is currently using. It is also the sum of the `RSan', `RSfd' and `RSsh' fields."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:938
+msgid "It can include private anonymous pages, private pages mapped to files (including program images and shared libraries) plus shared anonymous pages. All such memory is backed by the \\*(MS represented separately under SWAP."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:941
+msgid "Lastly, this field may also include shared file-backed pages which, when modified, act as a dedicated \\*(MS and thus will never impact SWAP."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:944
+#, no-wrap
+msgid "B<RSS \\*(Em Resident Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:949
+msgid "Another, more precise view of process non-swapped \\*(MP. It is obtained from the `smaps_rollup' file and is generally slightly larger than that shown for `RES'."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:952
+#, no-wrap
+msgid "B<RSan \\*(Em Resident Anonymous Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:956
+msgid "A subset of resident memory (RES) representing private pages not mapped to a file."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:957
+#, no-wrap
+msgid "B<RSfd \\*(Em Resident File-Backed Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:962
+msgid "A subset of resident memory (RES) representing the implicitly shared pages supporting program images and shared libraries. It also includes explicit file mappings, both private and shared."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:963
+#, no-wrap
+msgid "B<RSlk \\*(Em Resident Locked Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:966
+msgid "A subset of resident memory (RES) which cannot be swapped out."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:967
+#, no-wrap
+msgid "B<RSsh \\*(Em Resident Shared Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:971
+msgid "A subset of resident memory (RES) representing the explicitly shared anonymous shm*/mmap pages."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:972
+#, no-wrap
+msgid "B<RUID \\*(Em Real User Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:975
+#, fuzzy
+#| msgid "The next expression is a username."
+msgid "TheI< real> user ID."
+msgstr "Der nächste Ausdruck ist ein Benutzername."
+
+#. type: TP
+#: ../man/top.1:976
+#, no-wrap
+msgid "B<RUSER \\*(Em Real User Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:979
+#, fuzzy
+#| msgid "The next expression is a username."
+msgid "TheI< real> user name."
+msgstr "Der nächste Ausdruck ist ein Benutzername."
+
+#. type: TP
+#: ../man/top.1:980
+#, no-wrap
+msgid "B<S \\*(Em Process Status >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:990
+#, no-wrap
+msgid ""
+"The status of the task which can be one of:\n"
+" B<D> = uninterruptible sleep\n"
+" B<I> = idle\n"
+" B<R> = running\n"
+" B<S> = sleeping\n"
+" B<T> = stopped by job control signal\n"
+" B<t> = stopped by debugger during trace\n"
+" B<Z> = zombie\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:995
+msgid "Tasks shown as running should be more properly thought of as ready to run \\*(Em their task_struct is simply represented on the Linux run-queue. Even without a true SMP machine, you may see numerous tasks in this state depending on \\*(We's delay interval and nice value."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:996
+#, no-wrap
+msgid "B<SHR \\*(Em Shared Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1002
+msgid "A subset of resident memory (RES) that may be used by other processes. It will include shared anonymous pages and shared file-backed pages. It also includes private pages mapped to files representing program images and shared libraries."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1005
+#, no-wrap
+msgid "B<SID \\*(Em Session Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1013
+msgid "A session is a collection of process groups (\\*(Xa PGRP), usually established by the login shell. A newly forked process joins the session of its creator. By convention, this value equals the process ID (\\*(Xa PID) of the first member of the session, called the session leader, which is usually the login shell."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1014
+#, no-wrap
+msgid "B<STARTED \\*(Em Start Time Interval>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1018
+msgid "The length of time since system boot when a process started. Thus, the most recently started task will display the largest time interval."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1022
+msgid "The value will be expressed as `MM:SS' (minutes:seconds). But if the interval is too great to fit column width it will be scaled as `HH,MM' (hours,minutes) and possibly beyond."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1023
+#, no-wrap
+msgid "B<SUID \\*(Em Saved User Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1026
+#, fuzzy
+#| msgid "The next expression is a username."
+msgid "TheI< saved> user ID."
+msgstr "Der nächste Ausdruck ist ein Benutzername."
+
+#. type: TP
+#: ../man/top.1:1027
+#, no-wrap
+msgid "B<SUPGIDS \\*(Em Supplementary Group IDs >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1032
+msgid "The IDs of any supplementary group(s) established at login or inherited from a task's parent. They are displayed in a comma delimited list."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1036
+msgid "\\*(NT The SUPGIDS field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum \\*(WX characters)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1037
+#, no-wrap
+msgid "B<SUPGRPS \\*(Em Supplementary Group Names >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1042
+msgid "The names of any supplementary group(s) established at login or inherited from a task's parent. They are displayed in a comma delimited list."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1046
+msgid "\\*(NT The SUPGRPS field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum \\*(WX characters)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1047
+#, no-wrap
+msgid "B<SUSER \\*(Em Saved User Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1050
+#, fuzzy
+#| msgid "The next expression is a username."
+msgid "TheI< saved> user name."
+msgstr "Der nächste Ausdruck ist ein Benutzername."
+
+#. type: TP
+#: ../man/top.1:1051
+#, no-wrap
+msgid "B<SWAP \\*(Em Swapped Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1055
+msgid "The formerly resident portion of a task's address space written to the \\*(MS when \\*(MP becomes over committed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1058
+#, no-wrap
+msgid "B<TGID \\*(Em Thread Group Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1063
+msgid "The ID of the thread group to which a task belongs. It is the PID of the thread group leader. In kernel terms, it represents those tasks that share an mm_struct."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1064
+#, no-wrap
+msgid "B<TIME \\*(Em \\*(PU Time >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1071
+msgid "Total \\*(PU time the task has used since it started. When Cumulative mode is \\*O, each process is listed with the \\*(Pu time that it and its dead children have used. You toggle Cumulative mode with `S', which is both a \\*(CO and an \\*(CI. \\*(XC `S' \\*(CI for additional information regarding this mode."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1072
+#, no-wrap
+msgid "B<TIME+ \\*(Em \\*(PU Time, hundredths >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1076
+msgid "The same as TIME, but reflecting more granularity through hundredths of a second."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1077
+#, no-wrap
+msgid "B<TPGID \\*(Em Tty Process Group Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1083
+msgid "The process group ID of the foreground process for the connected tty, or -1 if a process is not connected to a terminal. By convention, this value equals the process ID (\\*(Xa PID) of the process group leader (\\*(Xa PGRP)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1084
+#, no-wrap
+msgid "B<TTY \\*(Em Controlling Tty >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1091
+msgid "The name of the controlling terminal. This is usually the device (serial port, pty, etc.) from which the process was started, and which it uses for input or output. However, a task need not be associated with a terminal, in which case you'll see `?' displayed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1092
+#, no-wrap
+msgid "B<UID \\*(Em User Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1095
+msgid "TheI< effective> user ID of the task's owner."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1096
+#, no-wrap
+msgid "B<USED \\*(Em Memory in Use (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1100
+msgid "This field represents the non-swapped \\*(MP a task is using (RES) plus the swapped out portion of its address space (SWAP)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1103
+#, no-wrap
+msgid "B<USER \\*(Em User Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1106
+msgid "TheI< effective> user name of the task's owner."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1107
+#, no-wrap
+msgid "B<USS \\*(Em Unique Set Size >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1112
+msgid "The non-swapped portion of \\*(MP (`RSS') not shared with any other process. It is derived from the `smaps_rollup' file."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1115
+#, no-wrap
+msgid "B<VIRT \\*(Em Virtual Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1120
+msgid "The total amount of \\*(MV used by the task. It includes all code, data and shared libraries plus pages that have been swapped out and pages that have been mapped but not used."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1123
+#, no-wrap
+msgid "B<WCHAN \\*(Em Sleeping in Function >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1128
+#, fuzzy
+#| msgid ""
+#| "address of the kernel function where the process is sleeping (use\n"
+#| "B<wchan>\n"
+#| "if you want the kernel function name). Running tasks will display a dash\n"
+#| "('-') in this column."
+msgid "This field will show the name of the kernel function in which the task is currently sleeping. Running tasks will display a dash (`-') in this column."
+msgstr ""
+"Adresse der Kernelfunktion, in der der Prozess schläft (verwenden Sie\n"
+"B<wchan>, falls Sie den Namen der Kernelfunktion benötigen). Laufende Tasks\n"
+"zeigen in dieser Spalte einen Bindestrich (»-«) an."
+
+#. type: TP
+#: ../man/top.1:1129
+#, no-wrap
+msgid "B<ioR \\*(Em I/O Bytes Read >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1132
+msgid "The number of bytes a process caused to be fetched from the storage layer."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1134
+msgid "Root privileges are required to display `io' data for other users."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1135
+#, no-wrap
+msgid "B<ioRop \\*(Em I/O Read Operations >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1139
+msgid "The number of read I/O operations (syscalls) for a process. Such calls might not result in actual physical disk I/O."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1140
+#, no-wrap
+msgid "B<ioW \\*(Em I/O Bytes Written >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1143
+msgid "The number of bytes a process caused to be sent to the storage layer."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1144
+#, no-wrap
+msgid "B<ioWop \\*(Em I/O Write Operations >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1148
+msgid "The number of write I/O operations (syscalls) for a process. Such calls might not result in actual physical disk I/O."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1149
+#, no-wrap
+msgid "B<nDRT \\*(Em Dirty Pages Count >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1155
+msgid "The number of pages that have been modified since they were last written to \\*(AS. Dirty pages must be written to \\*(AS before the corresponding physical memory location can be used for some other virtual page."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1157
+msgid "This field was deprecated with linux 2.6 and is always zero."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1158
+#, no-wrap
+msgid "B<nMaj \\*(Em Major Page Fault Count >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1165
+msgid "The number ofB< major> page faults that have occurred for a task. A page fault occurs when a process attempts to read from or write to a virtual page that is not currently present in its address space. A major page fault is when \\*(AS access is involved in making that page available."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1166
+#, no-wrap
+msgid "B<nMin \\*(Em Minor Page Fault count >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1173
+msgid "The number ofB< minor> page faults that have occurred for a task. A page fault occurs when a process attempts to read from or write to a virtual page that is not currently present in its address space. A minor page fault does not involve \\*(AS access in making that page available."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1174
+#, no-wrap
+msgid "B<nTH \\*(Em Number of Threads >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1177
+#, fuzzy
+#| msgid "The number of major page faults that have occurred with this process."
+msgid "The number of threads associated with a process."
+msgstr "Die Anzahl der großen Seitenfehlerausnahmebehandlungen, die sich mit diesem Prozess ereignet haben."
+
+#. type: TP
+#: ../man/top.1:1178
+#, no-wrap
+msgid "B<nsCGROUP \\*(Em CGROUP namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1182
+msgid "The Inode of the namespace used to hide the identity of the control group of which process is a member."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1183
+#, no-wrap
+msgid "B<nsIPC \\*(Em IPC namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1187
+msgid "The Inode of the namespace used to isolate interprocess communication (IPC) resources such as System V IPC objects and POSIX message queues."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1188
+#, no-wrap
+msgid "B<nsMNT \\*(Em MNT namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1192
+msgid "The Inode of the namespace used to isolate filesystem mount points thus offering different views of the filesystem hierarchy."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1193
+#, no-wrap
+msgid "B<nsNET \\*(Em NET namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1197
+msgid "The Inode of the namespace used to isolate resources such as network devices, IP addresses, IP routing, port numbers, etc."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1198
+#, no-wrap
+msgid "B<nsPID \\*(Em PID namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1204
+msgid "The Inode of the namespace used to isolate process ID numbers meaning they need not remain unique. Thus, each such namespace could have its own `init/systemd' (PID #1) to manage various initialization tasks and reap orphaned child processes."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1205
+#, no-wrap
+msgid "B<nsTIME \\*(Em TIME namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1209
+msgid "The Inode of the namespace which allows processes to see different system times in a way similar to the UTS namespace."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1210
+#, no-wrap
+msgid "B<nsUSER \\*(Em USER namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1216
+msgid "The Inode of the namespace used to isolate the user and group ID numbers. Thus, a process could have a normal unprivileged user ID outside a user namespace while having a user ID of 0, with full root privileges, inside that namespace."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1217
+#, no-wrap
+msgid "B<nsUTS \\*(Em UTS namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1221
+msgid "The Inode of the namespace used to isolate hostname and NIS domain name. UTS simply means \"UNIX Time-sharing System\"."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1222
+#, no-wrap
+msgid "B<vMj \\*(Em Major Page Fault Count Delta>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1226
+#, fuzzy
+#| msgid "The number of major page faults that have occurred with this process."
+msgid "The number ofB< major> page faults that have occurred since the last update (see nMaj)."
+msgstr "Die Anzahl der großen Seitenfehlerausnahmebehandlungen, die sich mit diesem Prozess ereignet haben."
+
+#. type: TP
+#: ../man/top.1:1227
+#, no-wrap
+msgid "B<vMn \\*(Em Minor Page Fault Count Delta>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1231
+#, fuzzy
+#| msgid "The number of minor page faults that have occurred with this process."
+msgid "The number ofB< minor> page faults that have occurred since the last update (see nMin)."
+msgstr "Die Anzahl der geringfügigen Seitenfehlerausnahmebehandlungen, die sich mit diesem Prozess ereignet haben."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1233
+#, no-wrap
+msgid "3b. MANAGING Fields"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1240
+msgid "After pressing the \\*(CI `f' (Fields Management) you will be presented with a screen showing: 1) the \\*(CW name; 2) the designated sort field; 3) all fields in their current order along with descriptions. Entries marked with an asterisk are the currently displayed fields, screen width permitting."
+msgstr ""
+
+#. type: IP
+#: ../man/top.1:1242 ../man/top.1:1248 ../man/top.1:1253 ../man/top.1:1257
+#: ../man/top.1:1262 ../man/top.1:2687 ../man/top.1:2710 ../man/top.1:2719
+#: ../man/top.1:2735 ../man/top.1:2741 ../man/top.1:2747 ../man/top.1:2757
+#: ../man/top.1:2774
+#, no-wrap
+msgid "\\(bu"
+msgstr "\\(bu"
+
+#. type: Plain text
+#: ../man/top.1:1247
+msgid "As the on screen instructions indicate, you navigate among the fields with theB< Up> andB< Down> \\*(KAs. The PgUp, PgDn, Home and End keys can also be used to quickly reach the first or last available field."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1252
+msgid "TheB< Right> \\*(KA selects a field for repositioning and theB< Left> \\*(KA or the E<lt>B<Enter>E<gt> key commits that field's placement."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1256
+msgid "The `B<d>' key or the E<lt>B<Space>E<gt> bar toggles a field's display status, and thus the presence or absence of the asterisk."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1261
+msgid "The `B<s>' key designates a field as the sort field. \\*(XT 4c. TASK AREA Commands, SORTING for additional information regarding your selection of a sort field."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1265
+msgid "The `B<a>' and `B<w>' keys can be used to cycle through all available windows and the `B<q>' or E<lt>B<Esc>E<gt> keys exit Fields Management."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1274
+msgid "The Fields Management screen can also be used to change the \\*(CG in either \\*(FM or \\*(AM. Whatever was targeted when `q' or E<lt>EscE<gt> was pressed will be made current as you return to the \\*(We display. \\*(XT 5. ALTERNATE-DISPLAY Provisions and the `g' \\*(CI for insight into \\*(CWs and \\*(FGs."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1281
+msgid "\\*(NT Any window that has been scrolledI< horizontally> will be reset if any field changes are made via the Fields Management screen. AnyI< vertical> scrolled position, however, will not be affected. \\*(XT 5c. SCROLLING a Window for additional information regarding vertical and horizontal scrolling."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:1283
+#, no-wrap
+msgid "4. INTERACTIVE Commands"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1288
+msgid "Listed below is a brief index of commands within categories. Some commands appear more than once \\*(Em their meaning or scope may vary depending on the context in which they are issued."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1311
+#, no-wrap
+msgid ""
+" 4a.I< Global-Commands >\n"
+" E<lt>Ent/SpE<gt> ?, =, 0,\n"
+" A, B, d, E, e, g, H, h, I, k, q, r, s, W, X, Y, Z,\n"
+" ^G, ^K, ^N, ^P, ^U, ^L, ^R\n"
+" 4b.I< Summary-Area-Commands >\n"
+" C, l, t, m, 1, 2, 3, 4, 5, !\n"
+" 4c.I< Task-Area-Commands >\n"
+" Appearance: b, J, j, x, y, z\n"
+" Content: c, F, f, O, o, S, U, u, V, v, ^E\n"
+" Size: #, i, n\n"
+" Sorting: E<lt>, E<gt>, f, R\n"
+" 4d.I< Color-Mapping >\n"
+" E<lt>RetE<gt>, a, B, b, H, M, q, S, T, w, z, 0 - 7\n"
+" 5b.I< Commands-for-Windows >\n"
+" -, _, =, +, A, a, G, g, w\n"
+" 5c.I< Scrolling-a-Window >\n"
+" C, Up, Dn, Left, Right, PgUp, PgDn, Home, End\n"
+" 5d.I< Searching-in-a-Window >\n"
+" L, &\n"
+" 5e.I< Filtering-in-a-Window\n"
+" O, o, ^O, =, +>\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1314
+#, no-wrap
+msgid "4a. GLOBAL Commands"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1319
+msgid "The global \\*(CIs areB< always> available in both \\*(FM and \\*(AM. However, some of these \\*(CIs areB< not available> when running in Secure mode."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1323
+msgid "If you wish to know in advance whether or not your \\*(We has been secured, simply ask for help and view the system summary on the second line."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1324
+#, no-wrap
+msgid "\\ \\ E<lt>B<Enter>E<gt> or E<lt>B<Space>E<gt>\\ \\ :I<Refresh-Display >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1329
+msgid "These commands awaken \\*(We and following receipt of any input the entire display will be repainted. They also force an update of any hotplugged \\*(Pu or \\*(MP changes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1332
+msgid "Use either of these keys if you have a large delay interval and wish to see current status,"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1333
+#, no-wrap
+msgid "\\ \\ \\ B<?> | B<h>\\ \\ :I<Help >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1338
+msgid "There are two help levels available. The first will provide a reminder of all the basic \\*(CIs. If \\*(We isI< secured>, that screen will be abbreviated."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1341
+msgid "Typing `h' or `?' on that help screen will take you to help for those \\*(CIs applicable to \\*(AM."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1342
+#, no-wrap
+msgid "\\ \\ \\ B<=>\\ \\ :I<Exit-Display-Limits >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1349
+msgid "Removes restrictions on what is shown. This command will reverse any `i' (idle tasks), `n' (max tasks), `v' (hide children) and `F' focus commands that might be active. It also provides for an exit from PID monitoring, User filtering, Other filtering, Locate processing and Combine Cpus mode."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1352
+msgid "Additionally, if the window has been scrolled it will be reset with this command."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1353
+#, no-wrap
+msgid "\\ \\ \\ B<0>\\ \\ :I<Zero-Suppress> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1358
+msgid "This command determines whether zeros are shown or suppressed for many of the fields in a \\*(TW. Fields like UID, GID, NI, PR or P are not affected by this toggle."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1359
+#, no-wrap
+msgid "\\ \\ \\ B<A>\\ \\ :I<Alternate-Display-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1364
+msgid "This command will switch between \\*(FM and \\*(AM. \\*(XT 5. ALTERNATE-DISPLAY Provisions and the `g' \\*(CI for insight into \\*(CWs and \\*(FGs."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1365
+#, no-wrap
+msgid "\\ \\ \\ B<B>\\ \\ :I<Bold-Disable/Enable> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1371
+msgid "This command will influence use of the bold terminfo capability and altersB< both> the \\*(SA and \\*(TA for the \\*(CW. While it is intended primarily for use with dumb terminals, it can be applied anytime."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1376
+msgid "\\*(NT When this toggle is \\*O and \\*(We is operating in monochrome mode, theB< entire display> will appear as normal text. Thus, unless the `x' and/or `y' toggles are using reverse for emphasis, there will be no visual confirmation that they are even on."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1377
+#, no-wrap
+msgid "*\\ \\ B<d> | B<s>\\ \\ :I<Change-Delay-Time-interval >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1381
+msgid "You will be prompted to enter the delay time, in seconds, between display updates."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1387
+msgid "Fractional seconds are honored, but a negative number is not allowed. Entering 0 causes (nearly) continuous updates, with an unsatisfactory display as the system and tty driver try to keep up with \\*(We's demands. The delay value is inversely proportional to system loading, so set it with care."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1390
+msgid "If at any time you wish to know the current delay time, simply ask for help and view the system summary on the second line."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1391
+#, no-wrap
+msgid "\\ \\ \\ B<E>\\ \\ :I<Enforce-Summary-Memory-Scale> in Summary Area"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1396
+msgid "With this command you can cycle through the available \\*(SA memory scaling which ranges from KiB (kibibytes or 1,024 bytes) through EiB (exbibytes or 1,152,921,504,606,846,976 bytes)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1400
+msgid "If you see a `+' between a displayed number and the following label, it means that \\*(We was forced to truncate some portion of that number. By raising the scaling factor, such truncation can be avoided."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1401
+#, no-wrap
+msgid "\\ \\ \\ B<e>\\ \\ :I<Enforce-Task-Memory-Scale> in Task Area"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1406
+msgid "With this command you can cycle through the available \\*(TA memory scaling which ranges from KiB (kibibytes or 1,024 bytes) through PiB (pebibytes or 1,125,899,906,842,624 bytes)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1413
+msgid "While \\*(We will try to honor the selected target range, additional scaling might still be necessary in order to accommodate current values. If you wish to see a more homogeneous result in the memory columns, raising the scaling range will usually accomplish that goal. Raising it too high, however, is likely to produce an all zero result which cannot be suppressed with the `0' \\*(CI."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1414
+#, no-wrap
+msgid "\\ \\ \\ B<g>\\ \\ :I<Choose-Another-Window/Field-Group >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1420
+msgid "You will be prompted to enter a number between 1 and 4 designating the \\*(FG which should be made the \\*(CW. You will soon grow comfortable with these 4 windows, especially after experimenting with \\*(AM."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1421
+#, no-wrap
+msgid "\\ \\ \\ B<H>\\ \\ :I<Threads-mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1426
+msgid "When this toggle is \\*O, individual threads will be displayed for all processes in all visible \\*(TWs. Otherwise, \\*(We displays a summation of all threads in each process."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1427
+#, no-wrap
+msgid "\\ \\ \\ B<I>\\ \\ :I<Irix/Solaris-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1432
+msgid "When operating in Solaris mode (`I' toggled \\*F), a task's \\*(Pu usage will be divided by the total number of \\*(PUs. After issuing this command, you'll be told the new state of this toggle."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1433
+#, no-wrap
+msgid "*\\ \\ B<k>\\ \\ :I<Kill-a-task >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1436
+msgid "You will be prompted for a PID and then the signal to send."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1440 ../man/top.1:1462
+msgid "Entering no PID or a negative number will be interpreted as the default shown in the prompt (the first task displayed). A PID value of zero means the \\*(We program itself."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1443
+msgid "The default signal, as reflected in the prompt, is SIGTERM. However, you can send any signal, via number or name."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1446
+msgid "If you wish to abort the kill process, do one of the following depending on your progress:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1450
+#, no-wrap
+msgid ""
+" 1) at the pid prompt, type an invalid number\n"
+" 2) at the signal prompt, type 0 (or any invalid signal)\n"
+" 3) at any prompt, type E<lt>EscE<gt>\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1452
+#, no-wrap
+msgid "\\ \\ \\ B<q>\\ \\ :I<Quit >"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1455
+#, no-wrap
+msgid "*\\ \\ B<r>\\ \\ :I<Renice-a-Task >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1458
+msgid "You will be prompted for a PID and then the value to nice it to."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1468
+msgid "A positive nice value will cause a process to lose priority. Conversely, a negative nice value will cause a process to be viewed more favorably by the kernel. As a general rule, ordinary users can only increase the nice value and are prevented from lowering it."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1471
+msgid "If you wish to abort the renice process, do one of the following depending on your progress:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1475
+#, no-wrap
+msgid ""
+" 1) at the pid prompt, type an invalid number\n"
+" 2) at the nice prompt, type E<lt>EnterE<gt> with no input\n"
+" 3) at any prompt, type E<lt>EscE<gt>\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1477
+#, no-wrap
+msgid "\\ \\ \\ B<W>\\ \\ :I<Write-the-Configuration-File >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1483
+msgid "This will save all of your options and toggles plus the current display mode and delay time. By issuing this command just before quitting \\*(We, you will be able restart later in exactly that same state."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1484
+#, no-wrap
+msgid "\\ \\ \\ B<X>\\ \\ :I<Extra-Fixed-Width >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1489
+msgid "Some fields are fixed width and not scalable. As such, they are subject to truncation which would be indicated by a `+' in the last position."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1491
+msgid "This \\*(CI can be used to alter the widths of the following fields:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1503
+#, no-wrap
+msgid ""
+" I< field default field default field default >\n"
+" GID 5 GROUP 8 WCHAN 10\n"
+" LOGID 5 LXC 8 nsCGROUP 10\n"
+" RUID 5 RUSER 8 nsIPC 10\n"
+" SUID 5 SUSER 8 nsMNT 10\n"
+" UID 5 TTY 8 nsNET 10\n"
+" USER 8 nsPID 10\n"
+" nsTIME 10\n"
+" nsUSER 10\n"
+" nsUTS 10\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1508
+msgid "You will be prompted for the amount to be added to the default widths shown above. Entering zero forces a return to those defaults."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1511
+msgid "If you enter a negative number, \\*(We will automatically increase the column size as needed until there is no more truncated data."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1515
+msgid "\\*(NT Whether explicitly or automatically increased, the widths for these fields are never decreased by \\*(We. To narrow them you must specify a smaller number or restore the defaults."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1516
+#, no-wrap
+msgid "\\ \\ \\ B<Y>\\ \\ :I<Inspect-Other-Output >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1522
+msgid "After issuing the `Y' \\*(CI, you will be prompted for a target PID. Typing a value or accepting the default results in a separate screen. That screen can be used to view a variety of files or piped command output while the normal \\*(We iterative display is paused."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1526
+msgid "\\*(NT This \\*(CI is only fully realized when supporting entries have been manually added to the end of the \\*(We \\*(CF. For details on creating those entries, \\*(Xt 6b. ADDING INSPECT Entries."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1533
+msgid "Most of the keys used to navigate the Inspect feature are reflected in its header prologue. There are, however, additional keys available once you have selected a particular file or command. They are familiar to anyone who has used the pager `less' and are summarized here for future reference."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1543
+#, no-wrap
+msgid ""
+" I< key function >\n"
+" = alternate status-line, file or pipeline\n"
+" / find, equivalent to `L' locate\n"
+" n find next, equivalent to `&' locate next\n"
+" E<lt>SpaceE<gt> scroll down, equivalent to E<lt>PgDnE<gt>\n"
+" b scroll up, equivalent to E<lt>PgUpE<gt>\n"
+" g first line, equivalent to E<lt>HomeE<gt>\n"
+" G last line, equivalent to E<lt>EndE<gt>\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1545
+#, no-wrap
+msgid "\\ \\ \\ B<Z>\\ \\ :I<Change-Color-Mapping >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1550
+msgid "This key will take you to a separate screen where you can change the colors for the \\*(CW, or for all windows. For details regarding this \\*(CI \\*(Xt 4d. COLOR Mapping."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1553
+msgid "\\ \\ B<^G>\\ \\ :I<Display-Control-Groups > (Ctrl key + `g')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1555
+msgid "\\ \\ B<^K>\\ \\ :I<Display-Cmdline > (Ctrl key + `k')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1557
+msgid "\\ \\ B<^N>\\ \\ :I<Display-Environment > (Ctrl key + `n')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1559
+msgid "\\ \\ B<^P>\\ \\ :I<Display-Namesspaces > (Ctrl key + `p')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1561
+msgid "\\ \\ B<^U>\\ \\ :I<Display-Supplementary-Groups > (Ctrl key + `u')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1567
+msgid "Applied to the first process displayed, these commands will show that task's full (potentially wrapped) information. Such data will be displayed in a separate window at the bottom of the screen while normal \\*(We monitoring continues."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1572
+msgid "Keying theI< same> `Ctrl' command a second time removes that separate window as does the `=' command. Keying a different `Ctrl' combination, while one is already active, immediately transitions to the new information."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1577
+msgid "Notable among these provisions is the Ctrl+N (environment) command. Its output can be extensive and not easily read when line wrapped. A more readable version can be achieved with an `Inspect' entry in the rcfile like the following."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1580
+#, no-wrap
+msgid " pipe ^I Environment ^I cat /proc/%d/environ | tr '\\e0' '\\en'\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1584
+msgid "\\*(XC `Y' \\*(CI above and topic 6b. ADDING INSPECT Entries for additional information."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1588
+msgid "As an alternative to `Inspect', and available to all of these `Ctrl' commands, the tab key can be used to highlight individual elements in the bottom window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1590
+#, no-wrap
+msgid "\\ \\ B<^L>\\ \\ :I<Logged-Messages > (Ctrl key + `l')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1596
+msgid "The 10 most recent messages are displayed in a separate window at the bottom of the screen while normal \\*(We monitoring continues. Keying `^L' a second time removes that window as does the `=' command. Use the tab key to highlight individual messages."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1597
+#, no-wrap
+msgid "*\\ B<^R>\\ \\ :I<Renice-an-Autogroup > (Ctrl key + `r')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1601
+msgid "You will be prompted for a PID and then the value for its autogroup AGNI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1604
+msgid "Entering no PID will be interpreted as the default shown in the prompt (the first task displayed)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1610
+msgid "A positive AGNI value will cause processes in that autogroup to lose priority. Conversely, a negative value causes them to be viewed more favorably by the kernel. Ordinary users are not allowed to set negative AGNI values."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1612
+msgid "If you wish to abort the renice process type E<lt>EscE<gt>."
+msgstr ""
+
+#. type: IP
+#: ../man/top.1:1613 ../man/top.1:2134
+#, no-wrap
+msgid "*"
+msgstr "*"
+
+#. type: Plain text
+#: ../man/top.1:1616
+msgid "The commands shown with an \\*(AK are not available in Secure mode, nor will they be shown on the level-1 help screen."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1618
+#, no-wrap
+msgid "4b. SUMMARY AREA Commands"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1623
+msgid "The \\*(SA \\*(CIs areB< always available> in both \\*(FM and \\*(AM. They affect the beginning lines of your display and will determine the position of messages and prompts."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1627
+msgid "These commands always impact just the \\*(CG. \\*(XT 5. ALTERNATE-DISPLAY Provisions and the `g' \\*(CI for insight into \\*(CWs and \\*(FGs."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1628
+#, no-wrap
+msgid "\\ \\ \\ B<C>\\ \\ :I<Show-scroll-coordinates> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1633
+msgid "Toggle an informational message which is displayed whenever the message line is not otherwise being used. For additional information \\*(Xt 5c. SCROLLING a Window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1634
+#, no-wrap
+msgid "\\ \\ \\ B<l>\\ \\ :I<Load-Average/Uptime> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1638
+msgid "This is also the line containing the program name (possibly an alias) when operating in \\*(FM or the \\*(CW name when operating in \\*(AM."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1639
+#, no-wrap
+msgid "\\ \\ \\ B<t>\\ \\ :I<Task/Cpu-States> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1644
+msgid "This command affects from 2 to many \\*(SA lines, depending on the state of the `1', `2' or `3' \\*(CTs and whether or not \\*(We is running under true SMP."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1647
+msgid "This portion of the \\*(SA is also influenced by the `H' \\*(CI toggle, as reflected in the total label which shows either Tasks or Threads."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1649 ../man/top.1:1666
+msgid "This command serves as a 4-way toggle, cycling through these modes:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1654
+#, no-wrap
+msgid ""
+" 1. detailed percentages by category\n"
+" 2. abbreviated user/system and total % + bar graph\n"
+" 3. abbreviated user/system and total % + block graph\n"
+" 4. turn off task and cpu states display\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1659
+msgid "When operating in either of the graphic modes, the display becomes much more meaningful when individual CPUs or NUMA nodes are also displayed. \\*(XC the `1', `2' and `3' commands below for additional information."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1660
+#, no-wrap
+msgid "\\ \\ \\ B<m>\\ \\ :I<Memory/Swap-Usage> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1664
+msgid "This command affects the two \\*(SA lines dealing with physical and virtual memory."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1671
+#, no-wrap
+msgid ""
+" 1. detailed percentages by memory type\n"
+" 2. abbreviated % used/total available + bar graph\n"
+" 3. abbreviated % used/total available + block graph\n"
+" 4. turn off memory display\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1673
+#, no-wrap
+msgid "\\ \\ \\ B<1>\\ \\ :I<Single/Separate-Cpu-States> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1678
+msgid "This command affects how the `t' command's Cpu States portion is shown. Although this toggle exists primarily to serve massively-parallel SMP machines, it is not restricted to solely SMP environments."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1683
+msgid "When you see `%Cpu(s):' in the \\*(SA, the `1' toggle is \\*O and all \\*(Pu information is gathered in a single line. Otherwise, each \\*(Pu is displayed separately as: `%Cpu0, %Cpu1, ...' up to available screen height."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1684
+#, no-wrap
+msgid "\\ \\ \\ B<2>\\ \\ :I<NUMA-Nodes/Cpu-Summary> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1689
+msgid "This command toggles between the `1' command cpu summary display (only) or a summary display plus the cpu usage statistics for each NUMA Node. It is only available if a system has the requisite NUMA support."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1690
+#, no-wrap
+msgid "\\ \\ \\ B<3>\\ \\ :I<Expand-NUMA-Node >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1696
+msgid "You will be invited to enter a number representing a NUMA Node. Thereafter, a node summary plus the statistics for each cpu in that node will be shown until the `1', `2' or `4' \\*(CT is pressed. This \\*(CI is only available if a system has the requisite NUMA support."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1697
+#, no-wrap
+msgid "\\ \\ \\ B<4>\\ \\ :I<Display-Multiple-Elements-Adjacent> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1703
+msgid "This \\*(CT turns the `1' toggle \\*F and shows multiple \\*(PU and Memory results on each line. Each successive `4' key adds another \\*(PU until again reverting to separate lines for \\*(PU and Memory results."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1709
+msgid "A maximum of 8 \\*(PUs per line can be displayed in this manner. However, data truncation may occur before reaching the maximum. That is definitely true when displaying detailed statistics via the `t' \\*(CT since such data cannot be scaled like the graphic representations."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1712
+msgid "If one wished to quickly exit adjacent mode without cycling all the way to 8, simply use the `1' \\*(CT."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1713
+#, no-wrap
+msgid "\\ \\ \\ B<5>\\ \\ :I<Display-P-Cores-and-E-Cores> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1719
+msgid "This \\*(CT is only active when the `t' toggle is \\*O and the `1', `2', `3' and `!' toggles are \\*F, thus showing individual \\*(PU results. It assumes a platform has multiple cores of two distinct types, either multi-threaded (P-Core) or single-threaded (E-Core)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1723
+msgid "While normally each \\*(Pu is displayed as `%Cpu0, %Cpu1, ...', this toggle can be used to identify and/or filter those \\*(Pus by their core type, either P-Core (performance) or E-Core (efficient)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1730
+msgid "The 1st time `5' is struck, each \\*(PU is displayed as `%CpB<P>' or `%CpB<E>' representing the two core types. The 2nd time, only P-Cores (%CpB<P>) will be shown. The 3rd time, only E-Cores (%CpB<E>) are displayed. When this \\*(CT is struck for the 4th time, the \\*(PU display returns to the normal `%Cpu' convention."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1733
+msgid "If separateI< performance> andI< efficient> categories are not present, this \\*(CT will have no effect."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1734
+#, no-wrap
+msgid "\\ \\ \\ B<!>\\ \\ :I<Combine-Cpus-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1740
+msgid "This \\*(CT is intended for massively parallel SMP environments where, even with the `4' \\*(CT, not all processors can be displayed. With each press of `!' the number of \\*(Pus combined is doubled thus reducing the total number of \\*(Pu lines displayed."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1747
+msgid "For example, with the first press of `!' two \\*(Pus will be combined and displayed as `0-1, 2-3, ...' instead of the normal `%Cpu0, %Cpu1, %Cpu2, %Cpu3, ...'. With a second `!' \\*(CT four \\*(Pus are combined and shown as `0-3, 4-7, ...'. Then the third `!' press, combining eight \\*(Pus, shows as `0-7, 8-15, ...', etc."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1751
+msgid "Such progression continues until individual \\*(Pus are again displayed and impacts both the `1' and `4' toggles (one or multiple columns). Use the `=' command to exit B<Combine Cpus> mode."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1757
+msgid "\\*(NT If the entire \\*(SA has been toggled \\*F for any window, you would be left with just theB< message line>. In that way, you will have maximized available task rows but (temporarily) sacrificed the program name in \\*(FM or the \\*(CW name when in \\*(AM."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1759
+#, no-wrap
+msgid "4c. TASK AREA Commands"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1762
+msgid "The \\*(TA \\*(CIs areB< always> available in \\*(FM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1765
+msgid "The \\*(TA \\*(CIs areB< never available> in \\*(AMI< if> the \\*(CW's \\*(TD has been toggled \\*F (\\*(Xt 5. ALTERNATE-DISPLAY Provisions)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1769
+msgid "B<APPEARANCE> of \\*(TW"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1770
+#, no-wrap
+msgid "\\ \\ \\ B<J>\\ \\ :I<Justify-Numeric-Columns> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1776
+msgid "Alternates between right-justified (the default) and left-justified numeric data. If the numeric data completely fills the available column, this \\*(CT may impact the column header only."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1777
+#, no-wrap
+msgid "\\ \\ \\ B<j>\\ \\ :I<Justify-Character-Columns> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1783
+msgid "Alternates between left-justified (the default) and right-justified character data. If the character data completely fills the available column, this \\*(CT may impact the column header only."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1788
+msgid "The following commands will also be influenced by the state of the global `B' (bold enable) toggle."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1790
+#, no-wrap
+msgid "\\ \\ \\ B<b>\\ \\ :I<Bold/Reverse> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1795
+msgid "This command will impact how the `x' and `y' toggles are displayed. It may also impact the \\*(SA when a bar graph has been selected for \\*(Pu states or memory usage via the `t' or `m' toggles."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1796
+#, no-wrap
+msgid "\\ \\ \\ B<x>\\ \\ :I<Column-Highlight> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1804
+#, no-wrap
+msgid ""
+"Changes highlighting for the current sort field.\n"
+"If you forget which field is being sorted this command can serve as a quick\n"
+"visual reminder, providing the sort field is being displayed.\n"
+"The sort field mightI< not> be visible because:\n"
+" 1) there is insufficientI< Screen Width >\n"
+" 2) the `f' \\*(CI turned it \\*F\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1805
+#, no-wrap
+msgid "\\ \\ \\ B<y>\\ \\ :I<Row-Highlight> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1810
+msgid "Changes highlighting for \"running\" tasks. For additional insight into this task state, \\*(Xt 3a. DESCRIPTIONS of Fields, the `S' field (Process Status)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1813
+msgid "Use of this provision provides important insight into your system's health. The only costs will be a few additional tty escape sequences."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1814
+#, no-wrap
+msgid "\\ \\ \\ B<z>\\ \\ :I<Color/Monochrome> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1820
+msgid "Switches the \\*(CW between your last used color scheme and the older form of black-on-white or white-on-black. This command will alterB< both> the \\*(SA and \\*(TA but does not affect the state of the `x', `y' or `b' toggles."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1824
+msgid "B<CONTENT> of \\*(TW"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1825
+#, no-wrap
+msgid "\\ \\ \\ B<c>\\ \\ :I<Command-Line/Program-Name> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1830
+msgid "This command will be honored whether or not the COMMAND column is currently visible. Later, should that field come into view, the change you applied will be seen."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1831
+#, no-wrap
+msgid "\\ \\ \\ B<F>\\ \\ :I<Maintain-Parent-Focus> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1836
+msgid "When in forest view mode, this key serves as a toggle to retain focus on a target task, presumably one with forked children. If forest view mode is \\*F this key has no effect."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1841
+msgid "The toggle is applied to the first (topmost) process in the \\*(CW. Once established, that task is always displayed as the first (topmost) process along with its forked children. All other processes will be suppressed."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1844
+msgid "\\*(NT keys like `i' (idle tasks), `n' (max tasks), `v' (hide children) and User/Other filtering remain accessible and can impact what is displayed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1845 ../man/top.1:2000
+#, no-wrap
+msgid "\\ \\ \\ B<f>\\ \\ :I<Fields-Management >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1851
+msgid "This key displays a separate screen where you can change which fields are displayed, their order and also designate the sort field. For additional information on this \\*(CI \\*(Xt 3b. MANAGING Fields."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1852
+#, no-wrap
+msgid "\\ \\ \\ B<O> | B<o>\\ \\ :I<Other-Filtering >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1858
+msgid "You will be prompted for the selection criteria which then determines which tasks will be shown in the \\*(CW. Your criteria can be made case sensitive or case can be ignored. And you determine if \\*(We should include or exclude matching tasks."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1861
+msgid "\\*(XT 5e. FILTERING in a window for details on these and additional related \\*(CIs."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1862
+#, no-wrap
+msgid "\\ \\ \\ B<S>\\ \\ :I<Cumulative-Time-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1866
+msgid "When Cumulative mode is \\*O, each process is listed with the \\*(Pu time that it and its dead children have used."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1873
+msgid "When \\*F, programs that fork into many separate tasks will appear less demanding. For programs like `init' or a shell this is appropriate but for others, like compilers, perhaps not. Experiment with two \\*(TWs sharing the same sort field but with different `S' states and see which representation you prefer."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1877
+msgid "After issuing this command, you'll be informed of the new state of this toggle. If you wish to know in advance whether or not Cumulative mode is in effect, simply ask for help and view the window summary on the second line."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1878
+#, no-wrap
+msgid "\\ \\ \\ B<U> | B<u>\\ \\ :I<Show-Specific-User-Only >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1883
+msgid "You will be prompted for theB< uid> orB< name> of the user to display. The -u option matches on B< effective> user whereas the -U option matches onB< any> user (real, effective, saved, or filesystem)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1888
+msgid "Thereafter, in that \\*(TW only matching users will be shown, or possibly no processes will be shown. Prepending an exclamation point (`!') to the user id or name instructs \\*(We to display only processes with users not matching the one provided."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1892
+msgid "Different \\*(TWs can be used to filter different users. Later, if you wish to monitor all users again in the \\*(CW, re-issue this command but just press E<lt>EnterE<gt> at the prompt."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1893
+#, no-wrap
+msgid "\\ \\ \\ B<V>\\ \\ :I<Forest-View-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1900
+msgid "In this mode, processes are reordered according to their parents and the layout of the COMMAND column resembles that of a tree. In forest view mode it is still possible to toggle between program name and command line (\\*(Xc `c' \\*(CI) or between processes and threads (\\*(Xc `H' \\*(CI)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1904
+msgid "\\*(NT Typing any key affecting the sort order will exit forest view mode in the \\*(CW. \\*(XT 4c. TASK AREA Commands, SORTING for information on those keys."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1905
+#, no-wrap
+msgid "\\ \\ \\ B<v>\\ \\ :I<Hide/Show-Children> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1909
+msgid "When in forest view mode, this key serves as a toggle to collapse or expand the children of a parent."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1913
+msgid "The toggle is applied against the first (topmost) process in the \\*(CW. \\*(XT 5c. SCROLLING a Window for additional information regarding vertical scrolling."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1916
+msgid "If the target process has not forked any children, this key has no effect. It also has no effect when not in forest view mode."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1917
+#, no-wrap
+msgid "\\ \\ B<^E>\\ \\ :I<Scale-CPU-Time-fields> (Ctrl key + `e')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1924
+msgid "The `time' fields are normally displayed with the greatest precision their widths permit. This toggle reduces that precision until it wraps. It also illustrates the scaling those fields I<might> experience automatically, which usually depends on how long the system runs."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1927
+msgid "For example, if `MMM:SS.hh' is shown, each ^E keystroke would change it to: `MM:SS', `Hours,MM', `Days+Hours' and finally `Weeks+Days'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1929
+msgid "Not all time fields are subject to the full range of such scaling."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1933
+msgid "B<SIZE> of \\*(TW"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1934
+#, no-wrap
+msgid "\\ \\ \\ B<i>\\ \\ :I<Idle-Process> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1942
+msgid "Displays all tasks or just active tasks. When this toggle is \\*F, tasks that have not used any \\*(PU since the last update will not be displayed. However, due to the granularity of the %CPU and TIME+ fields, some processes may still be displayed thatI< appear> to have usedI< no> \\*(PU."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1945
+msgid "If this command is applied to the last \\*(TD when in \\*(AM, then it will not affect the window's size, as all prior \\*(TDs will have already been painted."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1946
+#, no-wrap
+msgid "\\ \\ \\ B<n> | B<#>\\ \\ :I<Set-Maximum-Tasks >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1950
+msgid "You will be prompted to enter the number of tasks to display. The lessor of your number and available screen rows will be used."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1955
+msgid "When used in \\*(AM, this is the command that gives you precise control over the size of each currently visible \\*(TD, except for the very last. It will not affect the last window's size, as all prior \\*(TDs will have already been painted."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1958
+msgid "\\*(NT If you wish to increase the size of the last visible \\*(TD when in \\*(AM, simply decrease the size of the \\*(TD(s) above it."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1962
+msgid "B<SORTING> of \\*(TW"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1967
+msgid "For compatibility, this \\*(We supports most of the former \\*(We sort keys. Since this is primarily a service to former \\*(We users, these commands do not appear on any help screen."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1974
+#, no-wrap
+msgid ""
+" I< command sorted-field supported >\n"
+" A start time (non-display) B< No >\n"
+" M %MEM Yes\n"
+" N PID Yes\n"
+" P %CPU Yes\n"
+" T TIME+ Yes\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1979
+msgid "Before using any of the following sort provisions, \\*(We suggests that you temporarily turn on column highlighting using the `x' \\*(CI. That will help ensure that the actual sort environment matches your intent."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1985
+#, no-wrap
+msgid ""
+"The following \\*(CIs willB< only> be honored when the current sort field\n"
+"isB< visible>.\n"
+"The sort field mightI< not> be visible because:\n"
+" 1) there is insufficientI< Screen Width >\n"
+" 2) the `f' \\*(CI turned it \\*F\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1986
+#, no-wrap
+msgid "\\ \\ \\ B<E<lt>>\\ \\ :I<Move-Sort-Field-Left >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1990
+msgid "Moves the sort column to the left unless the current sort field is the first field being displayed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1991
+#, no-wrap
+msgid "\\ \\ \\ B<E<gt>>\\ \\ :I<Move-Sort-Field-Right >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1995
+msgid "Moves the sort column to the right unless the current sort field is the last field being displayed."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1999
+msgid "The following \\*(CIs willB< always> be honored whether or not the current sort field is visible."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2006
+msgid "This key displays a separate screen where you can change which field is used as the sort column, among other functions. This can be a convenient way to simply verify the current sort field, when running \\*(We with column highlighting turned \\*F."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2007
+#, no-wrap
+msgid "\\ \\ \\ B<R>\\ \\ :I<Reverse/Normal-Sort-Field> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2010
+msgid "Using this \\*(CI you can alternate between high-to-low and low-to-high sorts."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2012
+#, no-wrap
+msgid "4d. COLOR Mapping"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2017
+msgid "When you issue the `Z' \\*(CI, you will be presented with a separate screen. That screen can be used to change the colors in just the \\*(CW or in all four windows before returning to the \\*(We display."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2020
+msgid "The following \\*(CIs are available."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2031
+#, no-wrap
+msgid ""
+" B<4> upper case letters to select aB< target >\n"
+" B<8> numbers to select aB< color >\n"
+" normal toggles available \n"
+" B :bold disable/enable\n"
+" b :running tasks \"bold\"/reverse\n"
+" z :color/mono\n"
+" other commands available \n"
+" a/w :apply, then go to next/prior\n"
+" E<lt>EnterE<gt> :apply and exit\n"
+" q :abandon current changes and exit\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2037
+msgid "If you use `a' or `w' to cycle the targeted window, you will have applied the color scheme that was displayed when you left that window. You can, of course, easily return to any window and reapply different colors or turn colors \\*F completely with the `z' toggle."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2042
+msgid "The Color Mapping screen can also be used to change the \\*(CG in either \\*(FM or \\*(AM. Whatever was targeted when `q' or E<lt>EnterE<gt> was pressed will be made current as you return to the \\*(We display."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2044
+#, no-wrap
+msgid "5. ALTERNATE-DISPLAY Provisions"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2047
+#, no-wrap
+msgid "5a. WINDOWS Overview"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2049
+#, no-wrap
+msgid "B<Field Groups/Windows>:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2056
+msgid "In \\*(FM there is a single window represented by the entire screen. That single window can still be changed to display 1 of 4 differentB< field groups> (\\*(Xc `g' \\*(CI, repeated below). Each of the 4 \\*(FGs has a unique separately configurableB< \\*(SA > and its own configurableB< \\*(TA>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2059
+msgid "In \\*(AM, those 4 underlying \\*(FGs can now be made visible simultaneously, or can be turned \\*F individually at your command."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2064
+msgid "The \\*(SA will always exist, even if it's only the message line. At any given time onlyI< one> \\*(SA can be displayed. However, depending on your commands, there could be fromI< zero > toI< four> separate \\*(TDs currently showing on the screen."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2065
+#, no-wrap
+msgid "B<Current Window>:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2071
+msgid "The \\*(CW is the window associated with the \\*(SA and the window to which task related commands are always directed. Since in \\*(AM you can toggle the \\*(TD \\*F, some commands might be restricted for the \\*(CW."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2076
+msgid "A further complication arises when you have toggled the first \\*(SA line \\*F. With the loss of the window name (the `l' toggled line), you'll not easily know what window is the \\*(CW."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2078
+#, no-wrap
+msgid "5b. COMMANDS for Windows"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2080
+#, no-wrap
+msgid "\\ \\ \\ B<-> | B<_>\\ \\ :I<Show/Hide-Window(s)> toggles "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2087
+msgid "The `-' key turns the \\*(CW's \\*(TD \\*O and \\*F. When \\*O, that \\*(TA will show a minimum of the columns header you've established with the `f' \\*(CI. It will also reflect any other \\*(TA options/toggles you've applied yielding zero or more tasks."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2093
+msgid "The `_' key does the same for all \\*(TDs. In other words, it switches between the currently visible \\*(TD(s) and any \\*(TD(s) you had toggled \\*F. If all 4 \\*(TDs are currently visible, this \\*(CI will leave the \\*(SA as the only display element."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2094
+#, no-wrap
+msgid "*\\ \\ B<=> | B<+>\\ \\ :I<Equalize/Reset-Window(s) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2103
+msgid "The `=' key forces the \\*(CW's \\*(TD to be visible. It also reverses any active `i' (idle tasks), `n' (max tasks), `u/U' (user filter), `o/O' (other filter), `v' (hide children), `F' focused, `L' (locate) and `!' (combine cpus) commands. Also, if the window had been scrolled, it will be reset with this command. \\*(XT 5c. SCROLLING a Window for additional information regarding vertical and horizontal scrolling."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2108
+msgid "The `+' key does the same for all windows. The four \\*(TDs will reappear, evenly balanced, while retaining any customizations previously applied beyond those noted for the `=' \\*(CT."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2109
+#, no-wrap
+msgid "*\\ \\ B<A>\\ \\ :I<Alternate-Display-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2112
+msgid "This command will switch between \\*(FM and \\*(AM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2116
+msgid "The first time you issue this command, all four \\*(TDs will be shown. Thereafter when you switch modes, you will see only the \\*(TD(s) you've chosen to make visible."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2117
+#, no-wrap
+msgid "*\\ \\ B<a> | B<w>\\ \\ :I<Next-Window-Forward/Backward >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2123
+msgid "This will change the \\*(CW, which in turn changes the window to which commands are directed. These keys act in a circular fashion so you can reach any desired window using either key."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2127
+msgid "Assuming the window name is visible (you have not toggled `l' \\*F), whenever the \\*(CW name loses its emphasis/color, that's a reminder the \\*(TD is \\*F and many commands will be restricted."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2128
+#, no-wrap
+msgid "\\ \\ \\ B<G>\\ \\ :I<Change-Window/Field-Group-Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2133
+msgid "You will be prompted for a new name to be applied to the \\*(CW. It does not require that the window name be visible (the `l' toggle to be \\*O)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2136
+msgid "The \\*(CIs shown with an \\*(AK have use beyond \\*(AM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2140
+#, no-wrap
+msgid ""
+" =, A, g are always available\n"
+" a, w act the same with color mapping\n"
+" and fields management\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2142
+#, no-wrap
+msgid "*\\ \\ B<g>\\ \\ :I<Choose-Another-Window/Field-Group >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2146
+msgid "You will be prompted to enter a number between 1 and 4 designating the \\*(FG which should be made the \\*(CW."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2150
+msgid "In \\*(FM, this command is necessary to alter the \\*(CW. In \\*(AM, it is simply a less convenient alternative to the `a' and `w' commands."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2152
+#, no-wrap
+msgid "5c. SCROLLING a Window"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2158
+msgid "Typically a \\*(TW is a partial view into a system's total tasks/threads which shows only some of the available fields/columns. With these \\*(KSs, you can move that view vertically or horizontally to reveal any desired task or column."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2159
+#, no-wrap
+msgid "B<Up>,B<PgUp>\\ \\ :I<Scroll-Tasks >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2165
+msgid "Move the view up toward the first task row, until the first task is displayed at the top of the \\*(CW. The I<Up> \\*(KA moves a single line while I<PgUp> scrolls the entire window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2166
+#, no-wrap
+msgid "B<Down>,B<PgDn>\\ \\ :I<Scroll-Tasks >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2172
+msgid "Move the view down toward the last task row, until the last task is the only task displayed at the top of the \\*(CW. The I<Down> \\*(KA moves a single line while I<PgDn> scrolls the entire window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2173
+#, no-wrap
+msgid "B<Left>,B<Right>\\ \\ :I<Scroll-Columns >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2176
+msgid "Move the view of displayable fields horizontally one column at a time."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2181
+msgid "\\*(NT As a reminder, some fields/columns are not fixed-width but allocated all remaining screen width when visible. When scrolling right or left, that feature may produce some unexpected results initially."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2187
+msgid "Additionally, there are special provisions for any variable width field when positioned as the last displayed field. Once that field is reached via the right arrow key, and is thus the only column shown, you can continue scrolling horizontally within such a field. \\*(XC `C' \\*(CI below for additional information."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2188
+#, no-wrap
+msgid "B<Home>\\ \\ :I<Jump-to-Home-Position >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2191
+msgid "Reposition the display to the un-scrolled coordinates."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2192
+#, no-wrap
+msgid "B<End>\\ \\ :I<Jump-to-End-Position >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2196
+msgid "Reposition the display so that the rightmost column reflects the last displayable field and the bottom task row represents the last task."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2201
+msgid "\\*(NT From this position it is still possible to scrollI< down> andI< right> using the \\*(KAs. This is true until a single column and a single task is left as the only display element."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2202
+#, no-wrap
+msgid "B<C>\\ \\ :I<Show-scroll-coordinates> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2208
+msgid "Toggle an informational message which is displayed whenever the message line is not otherwise being used. That message will take one of two forms depending on whether or not a variable width column has also been scrolled."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2212
+#, no-wrap
+msgid ""
+" B<scroll coordinates: y = n/n (tasks), x = n/n (fields)>\n"
+" scroll coordinates: y = n/n (tasks), x = n/n (fields)B< + nn>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2220
+msgid "The coordinates shown as B<n>/B<n> are relative to the upper left corner of the \\*(CW. The additional `B<+\\ nn>' represents the displacement into a variable width column when it has been scrolled horizontally. Such displacement occurs in normal 8 character tab stop amounts via the right and left arrow keys."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2222
+#, no-wrap
+msgid "B<y = n/n (tasks) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2227
+msgid "The first B<n> represents the topmost visible task and is controlled by \\*(KSs. The second B<n> is updated automatically to reflect total tasks."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2228
+#, no-wrap
+msgid "B<x = n/n (fields) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2234
+msgid "The first B<n> represents the leftmost displayed column and is controlled by \\*(KSs. The second B<n> is the total number of displayable fields and is established with the `B<f>' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2239 ../man/top.1:2298
+msgid "The above \\*(CIs areB< always> available in \\*(FM butB< never> available in \\*(AM if the \\*(CW's \\*(TD has been toggled \\*F."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2243
+msgid "\\*(NT When any form of filtering is active, you can expect some slight aberrations when scrolling since not all tasks will be visible. This is particularly apparent when using the Up/Down \\*(KAs."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2245
+#, no-wrap
+msgid "5d. SEARCHING in a Window"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2248
+msgid "You can use these \\*(CIs to locate a task row containing a particular value."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2249
+#, no-wrap
+msgid "B<L>\\ \\ :I<Locate-a-string>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2254
+msgid "You will be prompted for the case-sensitive string to locate starting from the current window coordinates. There are no restrictions on search string content."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2258
+msgid "Searches are not limited to values from a single field or column. All of the values displayed in a task row are allowed in a search string. You may include spaces, numbers, symbols and even forest view artwork."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2261
+msgid "Keying E<lt>EnterE<gt> with no input will effectively disable the `&' key until a new search string is entered."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2262
+#, no-wrap
+msgid "B<&>\\ \\ :I<Locate-next>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2266
+msgid "Assuming a search string has been established, \\*(We will attempt to locate the next occurrence."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2273
+msgid "When a match is found, the current window is repositioned vertically so the task row containing that string is first. The scroll coordinates message can provide confirmation of such vertical repositioning (\\*(Xc `C' \\*(CI). Horizontal scrolling, however, is never altered via searching."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2276
+msgid "The availability of a matching string will be influenced by the following factors."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2277
+#, no-wrap
+msgid "a. Which fields are displayable from the total available,"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2280
+msgid "\\*(Xt 3b. MANAGING Fields."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2280
+#, no-wrap
+msgid "b. Scrolling a window vertically and/or horizontally,"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2283
+msgid "\\*(Xt 5c. SCROLLING a Window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2283
+#, no-wrap
+msgid "c. The state of the command/command-line toggle,"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2286
+msgid "\\*(Xc `c' \\*(CI."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2286
+#, no-wrap
+msgid "d. The stability of the chosen sort column,"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2289
+msgid "for example PID is good but %CPU bad."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2295
+msgid "If a search fails, restoring the \\*(CW home (unscrolled) position, scrolling horizontally, displaying command-lines or choosing a more stable sort field could yet produce a successful `&' search."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2300
+#, no-wrap
+msgid "5e. FILTERING in a Window"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2306
+msgid "You can use this `Other Filter' feature to establish selection criteria which will then determine which tasks are shown in the \\*(CW. Such filters can be made persistent if preserved in the rcfile via the `W' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2312
+msgid "Establishing a filter requires: 1) a field name; 2) an operator; and 3) a selection value, as a minimum. This is the most complex of \\*(We's user input requirements so, when you make a mistake, command recall will be your friend. Remember the Up/Down \\*(KAs or their aliases when prompted for input."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2314
+msgid "B<Filter Basics>"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2315
+#, no-wrap
+msgid "1. field names are case sensitive and spelled as in the header"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2317
+#, no-wrap
+msgid "2. selection values need not comprise the full displayed field"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2319
+#, no-wrap
+msgid "3. a selection is either case insensitive or sensitive to case"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2321
+#, no-wrap
+msgid "4. the default is inclusion, prepending `!' denotes exclusions"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2323
+#, no-wrap
+msgid "5. multiple selection criteria can be applied to a \\*(TW"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2325
+#, no-wrap
+msgid "6. inclusion and exclusion criteria can be used simultaneously"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2327
+#, no-wrap
+msgid "7. the 1 equality and 2 relational filters can be freely mixed"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2329
+#, no-wrap
+msgid "8. separate unique filters are maintained for each \\*(TW"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2337
+msgid "If a field is not turned on or is not currently in view, then your selection criteria will not affect the display. Later, should a filtered field become visible, the selection criteria will then be applied."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2340
+msgid "B<Keyboard Summary>"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2340
+#, no-wrap
+msgid "\\ \\ B<O>\\ \\ :I<Other-Filter> (upper case)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2343
+msgid "You will be prompted to establish a B<case sensitive> filter."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2344
+#, no-wrap
+msgid "\\ \\ B<o>\\ \\ :I<Other-Filter> (lower case)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2348
+msgid "You will be prompted to establish a filter that B<ignores case> when matching."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2349
+#, no-wrap
+msgid "\\ B<^O>\\ \\ :I<Show-Active-Filters> (Ctrl key + `o')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2353
+msgid "This can serve as a reminder of which filters are active in the \\*(CW. A summary will be shown on the message line until you press the E<lt>EnterE<gt> key."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2354
+#, no-wrap
+msgid "\\ \\ B<=>\\ \\ :I<Reset-Filtering> in current window"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2358
+msgid "This clears all of your selection criteria in the \\*(CW. It also has additional impact so please \\*(Xt 4a. GLOBAL Commands."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2359
+#, no-wrap
+msgid "\\ \\ B<+>\\ \\ :I<Reset-Filtering> in all windows"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2364
+msgid "This clears the selection criteria in all windows, assuming you are in \\*(AM. As with the `=' \\*(CI, it too has additional consequences so you might wish to \\*(Xt 5b. COMMANDS for Windows."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2367
+msgid "B<Input Requirements>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2373
+msgid "When prompted for selection criteria, the data you provide must take one of two forms. There are 3 required pieces of information, with a 4th as optional. These examples use spaces for clarity but your input generally would not."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2378
+#, no-wrap
+msgid ""
+" #1 B<#2> #3 ( required )\n"
+" Field-Name ? include-if-value\n"
+" B<!> Field-Name ? B<exclude>-if-value\n"
+" #4 ( optional )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2383
+msgid "Items #1, #3 and #4 should be self-explanatory. Item B<#2> represents both a required I<delimiter> and the I<operator> which must be one of either equality (`=') or relation (`E<lt>' or `E<gt>')."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2392
+msgid "The `=' equality operator requires only a partial match and that can reduce your `if-value' input requirements. The `E<gt>' or `E<lt>' relational operators always employ string comparisons, even with numeric fields. They are designed to work with a field's default I<justification> and with homogeneous data. When some field's numeric amounts have been subjected to I<scaling> while others have not, that data is no longer homogeneous."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2399
+msgid "If you establish a relational filter and you B<have> changed the default Numeric or Character I<justification>, that filter is likely to fail. When a relational filter is applied to a memory field and you B<have not> changed the I<scaling>, it may produce misleading results. This happens, for example, because `100.0m' (MiB) would appear greater than `1.000g' (GiB) when compared as strings."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2403
+msgid "If your filtered results appear suspect, simply altering justification or scaling may yet achieve the desired objective. See the `j', `J' and `e' \\*(CIs for additional information."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2406
+msgid "B<Potential Problems>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2410
+msgid "These B<GROUP> filters could produce the exact same results or the second one might not display anything at all, just a blank \\*(TW."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2413
+#, no-wrap
+msgid ""
+" GROUP=root ( only the same results when )\n"
+" GROUP=ROOT ( invoked via lower case `o' )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2418
+msgid "Either of these B<RES> filters might yield inconsistent and/or misleading results, depending on the current memory scaling factor. Or both filters could produce the exact same results."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2421
+#, no-wrap
+msgid ""
+" RESE<gt>9999 ( only the same results when )\n"
+" !RESE<lt>10000 ( memory scaling is at `KiB' )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2427
+msgid "This B<nMin> filter illustrates a problem unique to scalable fields. This particular field can display a maximum of 4 digits, beyond which values are automatically scaled to KiB or above. So while amounts greater than 9999 exist, they will appear as 2.6m, 197k, etc."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2429
+#, no-wrap
+msgid " nMinE<gt>9999 ( always a blank \\*(TW )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2433
+msgid "B<Potential Solutions>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2440
+msgid "These examples illustrate how Other Filtering can be creatively applied to achieve almost any desired result. Single quotes are sometimes shown to delimit the spaces which are part of a filter or to represent a request for status (^O) accurately. But if you used them with if-values in real life, no matches would be found."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2445
+msgid "Assuming field B<nTH> is displayed, the first filter will result in only multi-threaded processes being shown. It also reminds us that a trailing space is part of every displayed field. The second filter achieves the exact same results with less typing."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2448
+#, no-wrap
+msgid ""
+" !nTH=` 1 ' ( ` for clarity only )\n"
+" nTHE<gt>1 ( same with less i/p )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2452
+msgid "With Forest View mode active and the B<COMMAND> column in view, this filter effectively collapses child processes so that just 3 levels are shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2454
+#, no-wrap
+msgid " !COMMAND=` `- ' ( ` for clarity only )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2462
+msgid "The final two filters appear as in response to the status request key (^O). In reality, each filter would have required separate input. The B<PR> example shows the two concurrent filters necessary to display tasks with priorities of 20 or more, since some might be negative. Then by exploiting trailing spaces, the B<nMin> series of filters could achieve the failed `9999' objective discussed above."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2465
+#, no-wrap
+msgid ""
+" `PRE<gt>20' + `!PR=-' ( 2 for right result )\n"
+" `!nMin=0 ' + `!nMin=1 ' + `!nMin=2 ' + `!nMin=3 ' ...\n"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2469
+#, fuzzy, no-wrap
+#| msgid "FILES"
+msgid "6. FILES"
+msgstr "DATEIEN"
+
+#. ----------------------------------------------------------------------
+#. type: SS
+#: ../man/top.1:2471
+#, fuzzy, no-wrap
+#| msgid "configuration file"
+msgid "6a. PERSONAL Configuration File"
+msgstr "Konfigurationsdatei"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2474
+msgid "This file is created or updated via the `W' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2477
+msgid "The legacy version is written as `$HOME/.your-name-4-\\*(We' + `rc' with a leading period."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2482
+msgid "A newly created \\*(CF is written as procps/your-name-4-\\*(We' + `rc' without a leading period. The procps directory will be subordinate to either $XDG_CONFIG_HOME when set as an absolute path or the $HOME/.config directory."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2484
+msgid "While not intended to be edited manually, here is the general layout:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2494
+#, no-wrap
+msgid ""
+" global # line 1: the program name/alias notation\n"
+" \" # line 2: id,altscr,irixps,delay,curwin\n"
+" per ea # line a: winname,fieldscur\n"
+" window # line b: winflags,sortindx,maxtasks,etc\n"
+" \" # line c: summclr,msgsclr,headclr,taskclr\n"
+" global # line 15: additional miscellaneous settings\n"
+" \" # any remaining lines are devoted to optional\n"
+" \" # active `other filters' discussed in section 5e above\n"
+" \" # plus `inspect' entries discussed in section 6b below\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2498
+msgid "If a valid absolute path to the rcfile cannot be established, customizations made to a running \\*(We will be impossible to preserve."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2500
+#, no-wrap
+msgid "6b. ADDING INSPECT Entries"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2507
+msgid "To exploit the `Y' \\*(CI, you must add entries at theB< end> of the \\*(We personal \\*(CF. Such entries simply reflect a file to be read or command/pipeline to be executed whose results will then be displayed in a separate scrollable, searchable window."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2510
+msgid "If you don't know the location or name of your \\*(We rcfile, use the `W' \\*(CI to rewrite it and note those details."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2517
+msgid "Inspect entries can be added with a redirected echo or by editing the \\*(CF. Redirecting an echo risks overwriting the rcfile should it replace (E<gt>) rather than append (E<gt>E<gt>) to that file. Conversely, when using an editor care must be taken not to corrupt existing lines, some of which could contain unprintable data or unusual characters depending on the \\*(We version under which that \\*(CF was saved."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2522
+msgid "Those Inspect entries beginning with a `#' character are ignored, regardless of content. Otherwise they consist of the following 3 elements, each of whichI< must> be separated by a tab character (thus 2 `\\et' total):"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2527
+#, no-wrap
+msgid ""
+" .type: literal `file' or `pipe'\n"
+" .name: selection shown on the Inspect screen\n"
+" .fmts: string representing a path or command\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2534
+msgid "The two types of Inspect entries areI< not> interchangeable. Those designated `B<file>' will be accessed using fopen and must reference a single file in the `.fmts' element. Entries specifying `B<pipe>' will employ popen, their `.fmts' element could contain many pipelined commands and, none can be interactive."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2538
+msgid "If the file or pipeline represented in your `.fmts' deals with the specific PID input or accepted when prompted, then the format string must also contain the `B<%d>' specifier, as these examples illustrate."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2542
+#, no-wrap
+msgid ""
+" .fmts= /proc/I<%d>/numa_maps\n"
+" .fmts= lsof -P -pI< %d>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2547
+msgid "For `B<pipe>' type entries only, you may also wish to redirect stderr to stdout for a more comprehensive result. Thus the format string becomes:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2550
+#, no-wrap
+msgid " .fmts= pmap -x %dI< 2E<gt>&1>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2557
+msgid "Here are examples of both types of Inspect entries as they might appear in the rcfile. The first entry will be ignored due to the initial `#' character. For clarity, the pseudo tab depictions (^I) are surrounded by an extra space but the actual tabs would not be."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2563
+#, no-wrap
+msgid ""
+" # pipe ^I Sockets ^I lsof -n -P -i 2E<gt>&1\n"
+" pipe ^I Open Files ^I lsof -P -p %d 2E<gt>&1\n"
+" file ^I NUMA Info ^I /proc/%d/numa_maps\n"
+" pipe ^I Log ^I tail -n100 /var/log/syslog | sort -Mr\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2570
+msgid "Except for the commented entry above, these next examples show what could be echoed to achieve similar results, assuming the rcfile name was `.toprc'. However, due to the embedded tab characters, each of these lines should be preceded by `B</bin/echo -e>', not just a simple an `echo', to enable backslash interpretation regardless of which shell you use."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2575
+#, no-wrap
+msgid ""
+" \"pipe\\etOpen Files\\etlsof -P -p %d 2E<gt>&1\" E<gt>E<gt> ~/.toprc\n"
+" \"file\\etNUMA Info\\et/proc/%d/numa_maps\" E<gt>E<gt> ~/.toprc\n"
+" \"pipe\\etLog\\ettail -n200 /var/log/syslog | sort -Mr\" E<gt>E<gt> ~/.toprc\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2584
+msgid "If any inspect entry you create produces output with unprintable characters they will be displayed in either the ^C notation or hexadecimal E<lt>FFE<gt> form, depending on their value. This applies to tab characters as well, which will show as `^I'. If you want a truer representation, any embedded tabs should be expanded. The following example takes what could have been a `file' entry but employs a `pipe' instead so as to expand the embedded tabs."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2590
+#, no-wrap
+msgid ""
+" # next would have contained `\\et' ...\n"
+" # file ^I E<lt>your_nameE<gt> ^I /proc/%d/status\n"
+" # but this will eliminate embedded `\\et' ...\n"
+" pipe ^I E<lt>your_nameE<gt> ^I cat /proc/%d/status | expand -\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2596
+msgid "\\*(NT Some programs might rely on I<SIGINT> to end. Therefore, if a `B<pipe>' such as the following is established, one must use Ctrl-C to terminate it in order to review the results. This is the single occasion where a `^C' will not also terminate \\*(We."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2599
+#, no-wrap
+msgid " pipe ^I Trace ^I /usr/bin/strace -p %d 2E<gt>&1\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2605
+msgid "Lastly, while `B<pipe>' type entries have been discussed in terms of pipelines and commands, there is nothing to prevent you from including I< shell scripts> as well. Perhaps even newly created scripts designed specifically for the `Y' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2611
+msgid "For example, as the number of your Inspect entries grows over time, the `Options:' row will be truncated when screen width is exceeded. That does not affect operation other than to make some selections invisible. However, if some choices are lost to truncation but you want to see more options, there is an easy solution hinted at below."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2616
+#, no-wrap
+msgid ""
+" Inspection Pause at pid ...\n"
+" Use: left/right then E<lt>EnterE<gt> ...\n"
+" Options: help 1 2 3 4 5 6 7 8 9 10 11 ...\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2622
+msgid "The entries in the \\*(We rcfile would have a number for the `.name' element and the `help' entry would identify a shell script you've written explaining what those numbered selections actually mean. In that way, many more choices can be made visible."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2624
+#, fuzzy, no-wrap
+#| msgid "configuration file"
+msgid "6c. SYSTEM Configuration File"
+msgstr "Konfigurationsdatei"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2629
+msgid "This \\*(CF represents defaults for users who have not saved their own \\*(CF. The format mirrors exactly the personal \\*(CF and can also include `inspect' entries as explained above."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2631
+msgid "Creating it is a simple process."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2634
+msgid "1. Configure \\*(We appropriately for your installation and preserve that configuration with the `W' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2636
+msgid "2. Add and test any desired `inspect' entries."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2638
+msgid "3. Copy that \\*(CF to the I</etc/> directory as `B<topdefaultrc>'."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2640
+#, no-wrap
+msgid "6d. SYSTEM Restrictions File"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2644
+msgid "The presence of this file will influence which version of the help screen is shown to an ordinary user."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2648
+msgid "More importantly, it will limit what ordinary users are allowed to do when \\*(We is running. They will not be able to issue the following commands."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2652
+#, no-wrap
+msgid ""
+" k Kill a task\n"
+" r Renice a task\n"
+" d or s Change delay/sleep interval\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2657
+msgid "This \\*(CF is not created by \\*(We. Rather, it is created manually and placed it in the I</etc/> directory as `B<toprc>'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2659
+msgid "It should have exactly two lines, as shown in this example:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2662
+#, no-wrap
+msgid ""
+" s # line 1: secure mode switch\n"
+" 5.0 # line 2: delay interval in seconds\n"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2665
+#, fuzzy, no-wrap
+#| msgid "ENVIRONMENT VARIABLES"
+msgid "7. ENVIRONMENT VARIABLE(S)"
+msgstr "UMGEBUNGSVARIABLEN"
+
+#. type: Plain text
+#: ../man/top.1:2668 ../man/procps_pids.3:201
+msgid "The value set for the following is unimportant, just its presence."
+msgstr ""
+
+#. type: IP
+#: ../man/top.1:2669 ../man/procps_pids.3:202
+#, no-wrap
+msgid "LIBPROC_HIDE_KERNEL"
+msgstr "LIBPROC_HIDE_KERNEL"
+
+#. type: Plain text
+#: ../man/top.1:2672
+msgid "This will prevent display of any kernel threads and exclude such processes from the \\*(SA Tasks/Threads counts."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2674
+#, no-wrap
+msgid "8. STUPID TRICKS Sampler"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2679
+msgid "Many of these tricks work best when you give \\*(We a scheduling boost. So plan on starting him with a nice value of -10, assuming you've got the authority."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2681
+#, no-wrap
+msgid "7a. Kernel Magic"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. sorry, just can't help it -- don't ya love the sound of this?
+#. ( apparently AM static was a potential concern )
+#. type: Plain text
+#: ../man/top.1:2686
+msgid "For these stupid tricks, \\*(We needs \\*(FM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2693
+msgid "The user interface, through prompts and help, intentionally implies that the delay interval is limited to tenths of a second. However, you're free to set any desired delay. If you want to see Linux at his scheduling best, try a delay of .09 seconds or less."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2696
+msgid "For this experiment, under x-windows open an xterm and maximize it. Then do the following:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2705
+#, no-wrap
+msgid ""
+" . provide a scheduling boost and tiny delay via:\n"
+" nice -n -10 \\*(We -d.09\n"
+" . keep sorted column highlighting \\*F so as to\n"
+" minimize path length\n"
+" . turn \\*O reverse row highlighting for emphasis\n"
+" . try various sort columns (TIME/MEM work well),\n"
+" and normal or reverse sorts to bring the most\n"
+" active processes into view\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2709
+msgid "What you'll see is a very busy Linux doing what he's always done for you, but there was no program available to illustrate this."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2715
+msgid "Under an xterm using `white-on-black' colors, on \\*(We's Color Mapping screen set the task color to black and be sure that task highlighting is set to bold, not reverse. Then set the delay interval to around .3 seconds."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2718
+msgid "After bringing the most active processes into view, what you'll see are the ghostly images of just the currently running tasks."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2724
+msgid "Delete the existing rcfile, or create a new symlink. Start this new version then type `T' (a secret key, \\*(Xt 4c. Task Area Commands, SORTING) followed by `W' and `q'. Finally, restart the program with -d0 (zero delay)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2729
+msgid "Your display will be refreshed at three times the rate of the former \\*(We, a 300% speed advantage. As \\*(We climbs the TIME ladder, be as patient as you can while speculating on whether or not \\*(We will ever reach the \\*(We."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2731
+#, no-wrap
+msgid "7b. Bouncing Windows"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2734
+msgid "For these stupid tricks, \\*(We needs \\*(AM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2740
+msgid "With 3 or 4 \\*(TDs visible, pick any window other than the last and turn idle processes \\*F using the `i' \\*(CT. Depending on where you applied `i', sometimes several \\*(TDs are bouncing and sometimes it's like an accordion, as \\*(We tries his best to allocate space."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2746
+msgid "Set each window's summary lines differently: one with no memory (`m'); another with no states (`t'); maybe one with nothing at all, just the message line. Then hold down `a' or `w' and watch a variation on bouncing windows \\*(Em hopping windows."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2751
+msgid "Display all 4 windows and for each, in turn, set idle processes to \\*F using the `i' \\*(CT. You've just entered the \"extreme bounce\" zone."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2753
+#, no-wrap
+msgid "7c. The Big Bird Window"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2756
+msgid "This stupid trick also requires \\*(AM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2761
+msgid "Display all 4 windows and make sure that 1:Def is the \\*(CW. Then, keep increasing window size with the `n' \\*(CI until all the other \\*(TDs are \"pushed out of the nest\"."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2765
+msgid "When they've all been displaced, toggle between all visible/invisible windows using the `_' \\*(CT. Then ponder this:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2767
+#, no-wrap
+msgid " is \\*(We fibbing or telling honestly your imposed truth?\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2769
+#, no-wrap
+msgid "7d. The Ol' Switcheroo"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2773
+msgid "This stupid trick works best without \\*(AM, since justification is active on a per window basis."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2778
+msgid "Start \\*(We and make COMMAND the last (rightmost) column displayed. If necessary, use the `c' \\*(CT to display command lines and ensure that forest view mode is active with the `V' \\*(CT."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2782
+msgid "Then use the up/down arrow keys to position the display so that some truncated command lines are shown (`+' in last position). You may have to resize your xterm to produce truncation."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2784
+msgid "Lastly, use the `j' \\*(CT to make the COMMAND column right justified."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2788
+msgid "Now use the right arrow key to reach the COMMAND column. Continuing with the right arrow key, watch closely the direction of travel for the command lines being shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2791
+#, no-wrap
+msgid " some lines travel left, while others travel right\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2793
+#, no-wrap
+msgid " eventually all lines will Switcheroo, and move right\n"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2795
+#, no-wrap
+msgid "9. BUGS"
+msgstr "8. FEHLER"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2800
+msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE .>"
+msgstr "Bitte schicken Sie Fehlermeldungen (auf Englisch) an E<.MT procps@freelists.org> E<.ME .>"
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2802
+#, no-wrap
+msgid "10. SEE Also"
+msgstr "10. SIEHE AUCH"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2810
+msgid "B<free>(1), B<ps>(1), B<uptime>(1), B<atop>(1), B<slabtop>(1), B<vmstat>(8), B<w>(1)"
+msgstr "B<free>(1), B<ps>(1), B<uptime>(1), B<atop>(1), B<slabtop>(1), B<vmstat>(8), B<w>(1)"
+
+#. type: TH
+#: ../man/procps.3:11
+#, no-wrap
+msgid "PROCPS"
+msgstr "PROCPS"
+
+#. type: TH
+#: ../man/procps.3:11 ../man/procps_misc.3:11 ../man/procps_pids.3:11
+#, no-wrap
+msgid "August 2022"
+msgstr "August 2022"
+
+#. type: TH
+#: ../man/procps.3:11 ../man/procps_misc.3:11 ../man/procps_pids.3:11
+#, no-wrap
+msgid "libproc2"
+msgstr "libproc2"
+
+#. type: Plain text
+#: ../man/procps.3:17
+msgid "procps - API to access system level information in the /proc filesystem"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:22
+msgid "Five distinct interfaces are represented in this synopsis and named after the files they access in the /proc pseudo filesystem: B<diskstats>, B<meminfo>, B<slabinfo>, B<stat> and B<vmstat>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:26
+#, no-wrap
+msgid "#include E<lt>libproc2/B<named_interface>.hE<gt>\n"
+msgstr "#include E<lt>libproc2/B<benannte_Schnittstelle>.hE<gt>\n"
+
+#. type: Plain text
+#: ../man/procps.3:30
+#, no-wrap
+msgid ""
+"intB< procps_new > (struct info **I<info>);\n"
+"intB< procps_ref > (struct info *I<info>);\n"
+"intB< procps_unref> (struct info **I<info>);\n"
+msgstr ""
+"intB< procps_new > (struct info **I<info>);\n"
+"intB< procps_ref > (struct info *I<info>);\n"
+"intB< procps_unref> (struct info **I<info>);\n"
+
+#. type: Plain text
+#: ../man/procps.3:35
+#, no-wrap
+msgid ""
+"struct result *B<procps_get> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<name>, ] B<diskstats> api only\n"
+" enum item I<item>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:41
+#, no-wrap
+msgid ""
+"struct stack *B<procps_select> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<name>, ] B<diskstats> api only\n"
+" enum item *I<items>,\n"
+" int I<numitems>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:47
+#, no-wrap
+msgid ""
+"struct reaped *B<procps_reap> (\n"
+" struct info *I<info>,\n"
+"[ enum reap_type I<what>, ] B<stat> api only\n"
+" enum item *I<items>,\n"
+" int I<numitems>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:54
+#, no-wrap
+msgid ""
+"struct stack **B<procps_sort> (\n"
+" struct info *I<info>,\n"
+" struct stack *I<stacks>[],\n"
+" int I<numstacked>,\n"
+" enum item I<sortitem>,\n"
+" enum sort_order I<order>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:61
+msgid "The above functions and structures are generic but the specific B<named_interface> would also be part of any identifiers. For example, `procps_new' would actually be `procps_B<meminfo>_new' and `info' would really be `B<diskstats>_info', etc."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:64
+msgid "The same B<named_interface> is used in each header file name with an appended `.h' suffix."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:66 ../man/procps_pids.3:60
+msgid "Link with I<-lproc2>."
+msgstr "Linken Sie mit der Option I<-lproc2>."
+
+#. type: SS
+#: ../man/procps.3:68 ../man/procps_pids.3:62
+#, no-wrap
+msgid "Overview"
+msgstr "Ãœbersicht"
+
+#. type: Plain text
+#: ../man/procps.3:74
+msgid "Central to these interfaces is a simple `result' structure reflecting an `item' plus its value (in a union with standard C language types as members). All `result' structures are automatically allocated and provided by the library."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:80 ../man/procps_pids.3:74
+msgid "By specifying an array of `items', these structures can be organized as a `stack', potentially yielding many results with a single function call. Thus, a `stack' can be viewed as a variable length record whose content and order is determined solely by the user."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:85
+msgid "As part of each interface there are two unique enumerators. The `noop' and `extra' items exist to hold user values. They are never set by the library, but the `extra' result will be zeroed with each library interaction."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:91
+msgid "The B<named_interface> header file will be an essential document during user program development. There you will find available items, their return type (the `result' struct member name) and the source for such values. Additional enumerators and structures are also documented there."
+msgstr ""
+
+#. type: SS
+#: ../man/procps.3:92 ../man/procps_pids.3:86
+#, no-wrap
+msgid "Usage"
+msgstr "Verwendung"
+
+#. type: Plain text
+#: ../man/procps.3:95
+msgid "The following would be a typical sequence of calls to these interfaces."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:100
+#, no-wrap
+msgid ""
+"1. B<procps_new()>\n"
+"2. B<procps_get()>, B<procps_select()> or B<procps_reap()>\n"
+"3. B<procps_unref()>\n"
+msgstr ""
+"1. B<procps_new()>\n"
+"2. B<procps_get()>, B<procps_select()> oder B<procps_reap()>\n"
+"3. B<procps_unref()>\n"
+
+#. type: Plain text
+#: ../man/procps.3:106
+msgid "The B<get> function is used to retrieve a `result' structure for a single `item'. Alternatively, a B<GET> macro is available when only the return value is of interest."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:109
+msgid "The B<select> function can retrieve multiple `result' structures in a single `stack'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:115
+msgid "For unpredictable variable outcomes, the B<diskstats>, B<slabinfo> and B<stat> interfaces export a B<reap> function. It is used to retrieve multiple `stacks' each containing multiple `result' structures. Optionally, a user may choose to B<sort> those results."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:122 ../man/procps_pids.3:114
+msgid "To exploit any `stack', and access individual `result' structures, a I<relative_enum> is required as shown in the B<VAL> macro defined in the header file. Such values could be hard coded as: 0 through numitems-1. However, this need is typically satisfied by creating your own enumerators corresponding to the order of the `items' array."
+msgstr ""
+
+#. type: SS
+#: ../man/procps.3:123 ../man/procps_pids.3:115
+#, no-wrap
+msgid "Caveats"
+msgstr "Einschränkungen"
+
+#. type: Plain text
+#: ../man/procps.3:126
+msgid "The B<new>, B<ref>, B<unref>, B<get> and B<select> functions are available in all five interfaces."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:131 ../man/procps_pids.3:127
+msgid "For the B<new> and B<unref> functions, the address of an I<info> struct pointer must be supplied. With B<new> it must have been initialized to NULL. With B<unref> it will be reset to NULL if the reference count reaches zero."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:135
+msgid "In the case of the B<diskstats> interface, a I<name> parameter on the B<get> and B<select> functions identifies a disk or partition name"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:139
+msgid "For the B<stat> interface, a I<what> parameter on the B<reap> function identifies whether data for just CPUs or both CPUs and NUMA nodes is to be gathered."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:143
+msgid "When using the B<sort> function, the parameters I<stacks> and I<numstacked> would normally be those returned in the `reaped' structure."
+msgstr ""
+
+#. type: SH
+#: ../man/procps.3:144 ../man/procps_misc.3:127 ../man/procps_pids.3:148
+#, no-wrap
+msgid "RETURN VALUE"
+msgstr "RÃœCKGABEWERT"
+
+#. type: SS
+#: ../man/procps.3:145 ../man/procps_pids.3:149
+#, no-wrap
+msgid "Functions Returning an `int'"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:148 ../man/procps_misc.3:131 ../man/procps_pids.3:152
+msgid "An error will be indicated by a negative number that is always the inverse of some well known errno.h value."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:152 ../man/procps_pids.3:156
+msgid "Success is indicated by a zero return value. However, the B<ref> and B<unref> functions return the current I<info> structure reference count."
+msgstr ""
+
+#. type: SS
+#: ../man/procps.3:153 ../man/procps_misc.3:132 ../man/procps_pids.3:157
+#, no-wrap
+msgid "Functions Returning an `address'"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:156 ../man/procps_misc.3:135 ../man/procps_pids.3:160
+msgid "An error will be indicated by a NULL return pointer with the reason found in the formal errno value."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:158
+msgid "Success is indicated by a pointer to the named structure."
+msgstr ""
+
+#. type: SH
+#: ../man/procps.3:159 ../man/procps_pids.3:165
+#, no-wrap
+msgid "DEBUGGING"
+msgstr "FEHLERDIAGNOSE"
+
+#. type: Plain text
+#: ../man/procps.3:165
+msgid "To aid in program development, there is a provision that can help ensure `result' member references agree with library expectations. It assumes that a supplied macro in the header file is used to access the `result' value."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:168 ../man/procps_pids.3:185
+msgid "This feature can be activated through either of the following methods and any discrepancies will be written to B<stderr>."
+msgstr ""
+
+#. type: IP
+#: ../man/procps.3:169 ../man/procps_pids.3:186
+#, no-wrap
+msgid "1)"
+msgstr "1)"
+
+#. type: Plain text
+#: ../man/procps.3:172
+msgid "Add CFLAGS='-DXTRA_PROCPS_DEBUG' to any other ./configure options employed."
+msgstr ""
+
+#. type: IP
+#: ../man/procps.3:173 ../man/procps_pids.3:190
+#, no-wrap
+msgid "2)"
+msgstr "2)"
+
+#. type: Plain text
+#: ../man/procps.3:176
+msgid "Add #include E<lt>procps/xtra-procps-debug.hE<gt> to any program I<after> the named interface includes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:181 ../man/procps_pids.3:198
+msgid "This verification feature incurs substantial overhead. Therefore, it is important that it I<not> be activated for a production/release build."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:185
+msgid "B<procps_misc>(3), B<procps_pids>(3), B<proc>(5)."
+msgstr "B<procps_misc>(3), B<procps_pids>(3), B<proc>(5)."
+
+#. type: TH
+#: ../man/procps_misc.3:11
+#, no-wrap
+msgid "PROCPS_MISC"
+msgstr "PROCPS_MISC"
+
+#. type: Plain text
+#: ../man/procps_misc.3:17
+msgid "procps_misc - API for miscellaneous information in the /proc filesystem"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:20
+#, no-wrap
+msgid "B<#include E<lt>libproc2/misc.hE<gt>>\n"
+msgstr "B<#include E<lt>libproc2/misc.hE<gt>>\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:22
+#, no-wrap
+msgid "Platform Particulars\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:28
+#, no-wrap
+msgid ""
+"long B<procps_cpu_count> (void);\n"
+"long B<procps_hertz_get> (void);\n"
+"unsigned int B<procps_pid_length> (void);\n"
+"int B<procps_linux_version> (void);\n"
+msgstr ""
+"long B<procps_cpu_count> (void);\n"
+"long B<procps_hertz_get> (void);\n"
+"unsigned int B<procps_pid_length> (void);\n"
+"int B<procps_linux_version> (void);\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:31
+#, no-wrap
+msgid "Runtime Particulars\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:37
+#, no-wrap
+msgid ""
+"int B< procps_loadavg> (double *I<av1>, double *I<av5>, double *I<av15>);\n"
+"int B< procps_uptime> (double *I<uptime_secs>, double *I<idle_secs>);\n"
+"char *B<procps_uptime_sprint> (void);\n"
+"char *B<procps_uptime_sprint_short> (void);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:40
+#, no-wrap
+msgid "Namespace Particulars\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:45
+#, no-wrap
+msgid ""
+"int B< procps_ns_get_id> (const char *I<name>);\n"
+"const charB< *procps_ns_get_name> (int I<id>);\n"
+"int B< procps_ns_read_pid> (int I<pid>, struct procps_ns *I<nsp>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:48
+#, no-wrap
+msgid "Link with I<-lproc2>.\n"
+msgstr "Linken Sie mit der Option I<-lproc2>.\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:54
+msgid "B<procps_cpu_count>() returns the number of CPUs that are currently online as B<sysconf(>I<_SC_NPROCESSORS_ONLY>B<)> or an assumed I<1>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:60
+msgid "B<procps_hertz_get>() returns the number of clock ticks per second as B<sysconf(>I<_SC_CLK_TCK>B<)> or an assumed I<100>. Dividing tics by this value yields seconds."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:65
+msgid "B<procps_pid_length>() returns the maximum string length for a PID on the system. For example, if the largest possible PID value on was 123, then the length would be 3. If the file I</proc/sys/kernel/pid_max> is unreadable, the value is assumed to be I<5>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:74
+msgid "B<procps_linux_version>() returns the current Linux version as an encoded integer. On non-Linux systems that have an emulated proc filesystem this function returns the version of the Linux emulation instead. The version consists of three positive integers representing the major, minor and patch levels. The following macros are provided for encoding a given Linux version or separating out the components of the current version."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:77
+msgid "LINUX_VERSION(\\ major\\ ,\\ minor\\ ,\\ patch\\ )"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:79
+msgid "LINUX_VERSION_MAJOR(\\ ver\\ )"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:81
+msgid "LINUX_VERSION_MINOR(\\ ver\\ )"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:83
+msgid "LINUX_VERSION_PATCH(\\ ver\\ )"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:88
+msgid "B<procps_loadavg>() fetches the system load average and puts the 1, 5 and 15 minute averages into location(s) specified by any pointer which is not I<NULL>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:93
+msgid "B<procps_uptime>() returns uptime and/or idle seconds into location(s) specified by any pointer which is not I<NULL>. The B<sprint> varieties return a human-readable string in one of two forms."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:96
+msgid "HH:MM:SS up HH:MM, # users, load average: 1, 5, 15 MM averages"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:98
+msgid "up HH, MM"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:102
+msgid "B<procps_ns_get_id>() returns the integer id (enum namespace_type) of the namespace for the given namespace I<name>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:105
+msgid "B<procps_ns_get_name>() returns the name of the namespace for the given I<id> (enum namespace_type)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:110
+msgid "B<procps_ns_read_pid>() returns the inodes for the namespaces of the given process in the procps_ns structure pointed to by I<nsp>. Those inodes will appear in the order proscribed by enum namespace_type."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:123
+#, no-wrap
+msgid ""
+"enum namespace_type {\n"
+" PROCPS_NS_CGROUP,\n"
+" PROCPS_NS_IPC,\n"
+" PROCPS_NS_MNT,\n"
+" PROCPS_NS_NET,\n"
+" PROCPS_NS_PID,\n"
+" PROCPS_NS_TIME,\n"
+" PROCPS_NS_USER,\n"
+" PROCPS_NS_UTS\n"
+"};\n"
+msgstr ""
+
+#. type: SS
+#: ../man/procps_misc.3:128
+#, no-wrap
+msgid "Functions Returning an `int' or `long'"
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:137
+#, no-wrap
+msgid "I</proc/loadavg>"
+msgstr "I</proc/loadavg>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:140
+msgid "The raw values for load average."
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:140
+#, no-wrap
+msgid "I</proc/sys/kernel/osrelease>"
+msgstr "I</proc/sys/kernel/osrelease>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:143
+msgid "Contains the release version of the Linux kernel or proc filesystem."
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:143
+#, no-wrap
+msgid "I</proc/sys/kernel/pid_max>"
+msgstr "I</proc/sys/kernel/pid_max>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:146
+msgid "Contains the value at which PIDs wrap around, one greater than the maximum PID value."
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:146
+#, no-wrap
+msgid "I</proc/uptime>"
+msgstr "I</proc/uptime>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:149
+msgid "The raw values for uptime and idle time."
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:149
+#, no-wrap
+msgid "I</proc/E<lt>PIDE<gt>/ns>"
+msgstr "I</proc/E<lt>PIDE<gt>/ns>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:152
+msgid "contains the set of namespaces for a particular B<PID>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:156
+msgid "B<procps>(3), B<procps_pids>(3), B<proc>(5)."
+msgstr "B<procps>(3), B<procps_pids>(3), B<proc>(5)."
+
+#. type: TH
+#: ../man/procps_pids.3:11
+#, no-wrap
+msgid "PROCPS_PIDS"
+msgstr "PROCPS_PIDS"
+
+#. type: Plain text
+#: ../man/procps_pids.3:17
+msgid "procps_pids - API to access process information in the /proc filesystem"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:21
+#, no-wrap
+msgid "#include E<lt>libproc2/pids.hE<gt>\n"
+msgstr "#include E<lt>libproc2/pids.hE<gt>\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:25
+#, no-wrap
+msgid ""
+"intB< procps_pids_new > (struct pids_info **I<info>, enum pids_item *I<items>, int I<numitems>);\n"
+"intB< procps_pids_ref > (struct pids_info *I<info>);\n"
+"intB< procps_pids_unref> (struct pids_info **I<info>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:30
+#, no-wrap
+msgid ""
+"struct pids_stack *B<procps_pids_get> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<which>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:34
+#, no-wrap
+msgid ""
+"struct pids_fetch *B<procps_pids_reap> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<which>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:40
+#, no-wrap
+msgid ""
+"struct pids_fetch *B<procps_pids_select> (\n"
+" struct pids_info *I<info>,\n"
+" unsigned *I<these>,\n"
+" int I<numthese>,\n"
+" enum pids_select_type I<which>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:47
+#, no-wrap
+msgid ""
+"struct pids_stack **B<procps_pids_sort> (\n"
+" struct pids_info *I<info>,\n"
+" struct pids_stack *I<stacks>[],\n"
+" int I<numstacked>,\n"
+" enum pids_item I<sortitem>,\n"
+" enum pids_sort_order I<order>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:52
+#, no-wrap
+msgid ""
+"int B<procps_pids_reset> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_item *I<newitems>,\n"
+" int I<newnumitems>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:56
+#, no-wrap
+msgid ""
+"struct pids_stack *B<fatal_proc_unmounted> (\n"
+" struct pids_info *I<info>,\n"
+" int I<return_self>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:68
+msgid "Central to this interface is a simple `result' structure reflecting an `item' plus its value (in a union with standard C language types as members). All `result' structures are automatically allocated and provided by the library."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:79
+msgid "As part of this interface there are two unique enumerators. The `noop' and `extra' items exist to hold user values. They are never set by the library, but the `extra' result will be zeroed with each library interaction."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:85
+msgid "The pids.h file will be an essential document during user program development. There you will find available items, their return type (the `result' struct member name) and the source for such values. Additional enumerators and structures are also documented there."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:89
+msgid "The following would be a typical sequence of calls to this interface."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:95
+#, no-wrap
+msgid ""
+"1. B<fatal_proc_unmounted()>\n"
+"2. B<procps_pids_new()>\n"
+"3. B<procps_pids_get()>, B<procps_pids_reap()> or B<procps_pids_select()>\n"
+"4. B<procps_pids_unref()>\n"
+msgstr ""
+"1. B<fatal_proc_unmounted()>\n"
+"2. B<procps_pids_new()>\n"
+"3. B<procps_pids_get()>, B<procps_pids_reap()> oder B<procps_pids_select()>\n"
+"4. B<procps_pids_unref()>\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:100
+msgid "The B<get> function is an iterator for successive PIDs/TIDs, returning those `items' previously identified via B<new> or B<reset>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:107
+msgid "Two functions support unpredictable variable outcomes. The B<reap> function gathers data for all processes while the B<select> function deals with specific PIDs or UIDs. Both can return multiple `stacks' each containing multiple `result' structures. Optionally, a user may choose to B<sort> such results"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:122
+msgid "The E<lt>pidsE<gt> API differs from others in that those items of interest must be provided at B<new> or B<reset> time, the latter being unique to this API. If either the I<items> or I<numitems> parameter is zero at B<new> time, then B<reset> becomes mandatory before issuing any other call."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:130
+msgid "The B<get> and B<reap> functions use the I<which> parameter to specify whether just tasks or both tasks and threads are to be fetched."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:135
+msgid "The B<select> function requires an array of PIDs or UIDs as I<these> along with I<numthese> to identify which processes are to be fetched. This function then operates as a subset of B<reap>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:139
+msgid "When using the B<sort> function, the parameters I<stacks> and I<numstacked> would normally be those returned in the `pids_fetch' structure."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:147
+msgid "Lastly, a B<fatal_proc_unmounted> function may be called before any other function to ensure that the /proc/ directory is mounted. As such, the I<info> parameter would be NULL and the I<return_self> parameter zero. If, however, some items are desired for the issuing program (a I<return_self> other than zero) then the B<new> call must precede it to identify the I<items> and obtain the required I<info> pointer."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:164
+msgid "Success is indicated by a pointer to the named structure. However, if one survives the B<fatal_proc_unmounted> call, NULL is always returned when I<return_self> is zero."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:168
+msgid "To aid in program development, there are two procps-ng provisions that can be exploited."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:173
+msgid "The first is a supplied file named `libproc.supp' which may be useful when developing a I<multi-threaded> application. When used with the valgrind `--suppressions=' option, warnings associated with the procps library itself are avoided."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:177
+msgid "Such warnings arise because the library handles heap based allocations in a thread-safe manner. A I<single-threaded> application will not receive those warnings."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:182
+msgid "The second provision can help ensure `result' member references agree with library expectations. It assumes that a supplied macro in the header file is used to access the `result' value."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:189
+msgid "Add CFLAGS='-DXTRA_PROCPS_DEBUG' to any other ./configure options your project may employ."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:193
+msgid "Add #include E<lt>procps/xtra-procps-debug.hE<gt> to any program I<after> the #include E<lt>procps/pids.hE<gt>."
+msgstr ""
+
+#. type: SH
+#: ../man/procps_pids.3:199
+#, no-wrap
+msgid "ENVIRONMENT VARIABLE(S)"
+msgstr "UMGEBUNGSVARIABLE(N)"
+
+#. type: Plain text
+#: ../man/procps_pids.3:206
+msgid "This will hide kernel threads which would otherwise be returned with a B<procps_pids_get>, B<procps_pids_select> or B<procps_pids_reap> call."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:210
+msgid "B<procps>(3), B<procps_misc>(3), B<proc>(5)."
+msgstr "B<procps>(3), B<procps_misc>(3), B<proc>(5)."
+
+#~ msgid "October 2011"
+#~ msgstr "Oktober 2011"
+
+#~ msgid "Use this option when all arguments prescribe a key to be set."
+#~ msgstr "gibt an, dass alle Argumente einen zu setzenden Schlüssel vorschreiben."
+
+#~ msgid "Note that B<ps -aux> is distinct from B<ps\\ aux>. The POSIX and UNIX standards require that B<ps\\ -aux> print all processes owned by a user named I<x>, as well as printing all processes that would be selected by the B<-a> option. If the user named I<x> does not exist, this B<ps> may interpret the command as B<ps\\ aux> instead and print a warning. This behavior is intended to aid in transitioning old scripts and habits. It is fragile, subject to change, and thus should not be relied upon."
+#~ msgstr "Beachten Sie, dass sich B<ps -aux> von B<ps\\ aux> unterscheidet. Die POSIX- und UNIX-Standards erfordern, dass B<ps\\ -aux> sowohl alle dem Benutzer namens I<x> gehörenden Prozesse als auch jene Prozesse ausgibt, die durch die Option B<-a> ausgewählt werden. Falls der Benutzer namens I<x> nicht existiert, könnte diese Version von B<ps> den Befehl als B<ps\\ aux> interpetieren und eine Warnung ausgeben. Dieses Verhalten ist dazu gedacht, den Übergang aus alten Skripten und Gewohnheiten zu erleichtern. Es ist fragil und möglicherweise Änderungen unterworfen. Daher sollten Sie sich nicht darauf verlassen."
+
+#~ msgid ".IP \"\" 2\n"
+#~ msgstr ".IP \"\" 2\n"
+
+#, fuzzy
+#~| msgid "16 January 2018"
+#~ msgid "January 2023"
+#~ msgstr "16. Januar 2018"
+
+#~ msgid "2022-06-25"
+#~ msgstr "25. Juni 2022"
+
+#~ msgid "Total installed memory (MemTotal and SwapTotal in /proc/meminfo)"
+#~ msgstr "zeigt den insgesamt installierten Speicher an (MemTotal und SwapTotal in /proc/meminfo)."
+
+#~ msgid "2021-05-18"
+#~ msgstr "18. Mai 2021"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Dienstprogramme für Benutzer "
+
+#~ msgid "NAME "
+#~ msgstr "BEZEICHNUNG "
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "ÃœBERSICHT "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "BESCHREIBUNG "
+
+#~ msgid "OPTIONS "
+#~ msgstr "OPTIONEN "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "SIEHE AUCH "
+
+#~ msgid "2022-08-31"
+#~ msgstr "31. August 2022"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Dienstprogramme für Benutzer "
+
+#~ msgid "NAME "
+#~ msgstr "BEZEICHNUNG "
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "ÃœBERSICHT "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "BESCHREIBUNG "
+
+#~ msgid "OPTIONS "
+#~ msgstr "OPTIONEN "
+
+#~ msgid "Defines the signal to send to each matched process. Either the numeric or the symbolic signal name can be used. (B<pkill> only.)"
+#~ msgstr "definiert das Signal, das an jeden passenden Prozess gesendet werden soll. Es werden entweder numerische Angaben oder der symbolische Signalname akzeptiert (nur für B<pkill>)."
+
+#~ msgid "B<-q>, B<--queue >I<value> "
+#~ msgstr "B<-q>, B<--queue >I<Wert> "
+
+# FIXME Formatting
+#~ msgid "Use B<sigqueue(3)> rather than B<kill(2)> and the value argument is used to specify an integer to be sent with the signal. If the receiving process has installed a handler for this signal using the SA_SIGINFO flag to B<sigaction(2)> , then it can obtain this data via the si_value field of the siginfo_t structure."
+#~ msgstr "verwendet B<sigqueue>(3) anstatt B<kill>(2) und das I<Wert>-Argument wird zur Angabe einer Ganzzahl verwendet, die mit dem Signal gesendet wird. Falls der empfangende Prozess mit dem SA_SIGINFO-Flag für B<sigaction>(2) einen Handler für dieses Signal installiert hat, dann kann er diese Daten über das I<si_value>-Feld der Struktur I<siginfo_t> beziehen."
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "EXAMPLES "
+#~ msgstr "BEISPIELE "
+
+#~ msgid "NOTES "
+#~ msgstr "ANMERKUNGEN "
+
+#~ msgid "BUGS "
+#~ msgstr "FEHLER "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "SIEHE AUCH "
+
+#~ msgid "AUTHOR "
+#~ msgstr "AUTOR "
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "FEHLER MELDEN"
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Bitte schicken Sie Fehlermeldungen (auf Englisch) an E<.MT procps@freelists.org> E<.ME>"
+
+#~ msgid "2020-12-22"
+#~ msgstr "22. Dezember 2020"
+
+#~ msgid "User Commands "
+#~ msgstr "Dienstprogramme für Benutzer"
+
+#~ msgid "NAME "
+#~ msgstr "BEZEICHNUNG"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "ÃœBERSICHT"
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "BESCHREIBUNG"
+
+#~ msgid "OPTIONS "
+#~ msgstr "OPTIONEN"
+
+# FIXME formatting
+#~ msgid "-s"
+#~ msgstr "-s"
+
+# FIXME formatting
+#~ msgid "-c"
+#~ msgstr "-c"
+
+#~ msgid "-q"
+#~ msgstr "-q"
+
+#~ msgid "-w"
+#~ msgstr "-w"
+
+#~ msgid "-x"
+#~ msgstr "-x"
+
+#~ msgid "EXIT STATUS "
+#~ msgstr "EXIT-STATUS"
+
+#~ msgid "BUGS "
+#~ msgstr "FEHLER"
+
+#~ msgid "SEE ALSO "
+#~ msgstr "SIEHE AUCH"
+
+#~ msgid "AUTHOR "
+#~ msgstr "AUTOR"
+
+#~ msgid "Jaromir Capik E<lt>jcapik@redhat.comE<gt>"
+#~ msgstr "Jaromir Capik E<lt>jcapik@redhat.comE<gt>"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Dienstprogramme für Benutzer"
+
+#~ msgid "NAME "
+#~ msgstr "BEZEICHNUNG"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "ÃœBERSICHT"
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "BESCHREIBUNG"
+
+#~ msgid "OPTIONS "
+#~ msgstr "OPTIONEN"
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "Display version information and exit. "
+#~ msgstr "zeigt Versionsinformationen an und beendet das Programm."
+
+#~ msgid "EXIT STATUS "
+#~ msgstr "EXIT-STATUS"
+
+#~ msgid "B<0> "
+#~ msgstr "B<0> "
+
+#~ msgid "B<1> "
+#~ msgstr "B<1> "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "SIEHE AUCH"
+
+#~ msgid "STANDARDS "
+#~ msgstr "STANDARDS"
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "FEHLER MELDEN"
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Bitte schicken Sie Fehlermeldungen (auf Englisch) an E<.MT procps@freelists.org> E<.ME>"
+
+#~ msgid "PROCIO"
+#~ msgstr "PROCIO"
+
+#~ msgid "Linux Manpage"
+#~ msgstr "Linux-Handbuchseite"
+
+#~ msgid "Linux Programmer's Manual"
+#~ msgstr "Linux-Programmierhandbuch"
+
+#~ msgid "NAME "
+#~ msgstr "BEZEICHNUNG"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "ÃœBERSICHT"
+
+#~ msgid "B<#define _GNU_SOURCE>"
+#~ msgstr "B<#define _GNU_SOURCE>"
+
+#~ msgid "B<#include E<lt>stdio.hE<gt>>"
+#~ msgstr "B<#include E<lt>stdio.hE<gt>>"
+
+#~ msgid "B<#include E<lt>proc/procio.hE<gt>>"
+#~ msgstr "B<#include E<lt>proc/procio.hE<gt>>"
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "BESCHREIBUNG"
+
+#~ msgid "B<w>[B<E<lt>delE<gt>>]"
+#~ msgstr "B<w>[B<E<lt>TrennerE<gt>>]"
+
+#~ msgid "The underlying file descriptor will be closed if you use any of the `exec...' functions within your code."
+#~ msgstr "Der zugrundeliegende Dateideskriptor wird geschlossen, falls Sie eine der »exec…«-Funktionen in Ihrem Code verwenden."
+
+#~ msgid "The internal API allows the use of stdio functions to read and write large buffers below I</proc/##>."
+#~ msgstr "Die interne API erlaubt die Nutzung der stdio()-Funktionen zum Lesen und Schreiben der Puffer unterhalb von I</proc/##>."
+
+#~ msgid "SEE ALSO "
+#~ msgstr "SIEHE AUCH"
+
+#~ msgid "B<fopen>(3),"
+#~ msgstr "B<fopen>(3),"
+
+#~ msgid "B<fopencookie>(3)"
+#~ msgstr "B<fopencookie>(3)"
+
+#~ msgid "B<setvbuf>(3)"
+#~ msgstr "B<setvbuf>(3)"
+
+#~ msgid "B<lseek>(3)"
+#~ msgstr "B<lseek>(3)"
+
+#~ msgid "COPYRIGHT"
+#~ msgstr "COPYRIGHT"
+
+#~ msgid "2018 Werner Fink,"
+#~ msgstr "2018 Werner Fink,"
+
+#~ msgid "AUTHOR "
+#~ msgstr "AUTOR"
+
+#
+#
+#
+#~ msgid "Werner Fink E<lt>werner@suse.deE<gt>"
+#~ msgstr "Werner Fink E<lt>werner@suse.deE<gt>"
+
+#~ msgid "NAME "
+#~ msgstr "BEZEICHNUNG"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "ÃœBERSICHT"
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "BESCHREIBUNG"
+
+#~ msgid "SEE ALSO "
+#~ msgstr "SIEHE AUCH"
+
+#~ msgid "August 2022 "
+#~ msgstr "August 2022 "
+
+#~ msgid "libproc2 "
+#~ msgstr "libproc2 "
+
+#~ msgid "NAME "
+#~ msgstr "BEZEICHNUNG"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "ÃœBERSICHT"
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "BESCHREIBUNG"
+
+#~ msgid "RETURN VALUE "
+#~ msgstr "RÃœCKGABEWERT "
+
+#~ msgid "FILES "
+#~ msgstr "DATEIEN"
+
+#~ msgid "SEE ALSO "
+#~ msgstr "SIEHE AUCH"
+
+#~ msgid "August 2022 "
+#~ msgstr "August 2022 "
+
+#~ msgid "libproc2 "
+#~ msgstr "libproc2 "
+
+#~ msgid "NAME "
+#~ msgstr "BEZEICHNUNG"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "ÃœBERSICHT"
+
+#~ msgid "Link with I<-lproc2>. "
+#~ msgstr "Linken Sie mit der Option I<-lproc2>. "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "BESCHREIBUNG"
+
+#~ msgid "Overview "
+#~ msgstr "Ãœbersicht "
+
+#~ msgid "Usage "
+#~ msgstr "Verwendung "
+
+#~ msgid "Caveats "
+#~ msgstr "Einschränkungen "
+
+#~ msgid "RETURN VALUE "
+#~ msgstr "RÃœCKGABEWERT "
+
+#~ msgid "DEBUGGING "
+#~ msgstr "FEHLERDIAGNOSE "
+
+#~ msgid "1) "
+#~ msgstr "1) "
+
+#~ msgid "2) "
+#~ msgstr "2) "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "SIEHE AUCH "
+
+#~ msgid "2022-05-11"
+#~ msgstr "11. Mai 2022"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Dienstprogramme für Benutzer"
+
+#~ msgid "NAME "
+#~ msgstr "BEZEICHNUNG"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "ÃœBERSICHT"
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "BESCHREIBUNG"
+
+#~ msgid "1 "
+#~ msgstr "1 "
+
+#~ msgid "2 "
+#~ msgstr "2 "
+
+#~ msgid "3 "
+#~ msgstr "3 "
+
+#~ msgid "EXAMPLES "
+#~ msgstr "BEISPIELE"
+
+#~ msgid "B<r> "
+#~ msgstr "B<r> "
+
+#~ msgid "Identical to B<--pid\\ >I<123>. "
+#~ msgstr "ist gleichbedeutend mit B<--pid\\ >I<123>."
+
+#~ msgid "Set screen width. "
+#~ msgstr "legt die Bildschirmbreite fest."
+
+#~ msgid "B<e> "
+#~ msgstr "B<e> "
+
+#~ msgid "Set screen height. "
+#~ msgstr "legt die Bildschirmhöhe fest."
+
+#~ msgid "Wide output. Use this option twice for unlimited width. "
+#~ msgstr "aktiviert die breite Ausgabe. Verwenden Sie diese Option zweimal, um die Breite auf unbegrenzt zu setzen."
+
+#~ msgid "Set screen width. "
+#~ msgstr "legt die Bildschirmbreite fest."
+
+#~ msgid "Show threads after processes. "
+#~ msgstr "zeigt Threads nach Prozessen an."
+
+#~ msgid "Print the procps-ng version. "
+#~ msgstr "gibt die Version von Procps-ng aus."
+
+#~ msgid "Print the procps-ng version. "
+#~ msgstr "gibt die Version von Procps-ng aus."
+
+#~ msgid "NOTES "
+#~ msgstr "ANMERKUNGEN"
+
+#~ msgid "1 "
+#~ msgstr "1 "
+
+#~ msgid "N "
+#~ msgstr "N "
+
+#~ msgid "R "
+#~ msgstr "R "
+
+# #-#-#-#-# de.po (procps-ng-man-3.3.16-pre2) #-#-#-#-# FIXME formatting
+#~ msgid "s "
+#~ msgstr "s "
+
+#~ msgid "S "
+#~ msgstr "S "
+
+#~ msgid "t "
+#~ msgstr "t "
+
+#~ msgid "T "
+#~ msgstr "T "
+
+#~ msgid "pcpu "
+#~ msgstr "pcpu "
+
+#~ msgid "ppid "
+#~ msgstr "ppid "
+
+#~ msgid "user "
+#~ msgstr "user "
+
+#~ msgid "COMMAND "
+#~ msgstr "BEFEHL"
+
+#~ msgid "pid "
+#~ msgstr "pid "
+
+#~ msgid "tty "
+#~ msgstr "tty "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "BESCHREIBUNG"
+
+#~ msgid "%CPU "
+#~ msgstr "%CPU "
+
+#~ msgid "args "
+#~ msgstr "args "
+
+#~ msgid "COMMAND "
+#~ msgstr "BEFEHL"
+
+#~ msgid "TIME "
+#~ msgstr "TIME "
+
+# #-#-#-#-# de.po (procps-ng-man-3.3.16-pre2) #-#-#-#-# FIXME formatting
+#~ msgid "c "
+#~ msgstr "c "
+
+#~ msgid "C "
+#~ msgstr "C "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid "CLS "
+#~ msgstr "CLS "
+
+#~ msgid ""
+#~ "scheduling class of the process. (alias\n"
+#~ "B<policy>,B<\\ cls>).\n"
+#~ "Field's possible values are:\n"
+#~ " "
+#~ msgstr ""
+#~ "Scheduling-Klasse des Prozesses (alias B<policy>, B<cls>). Mögliche Werte des Feldes sind:\n"
+#~ " "
+
+#~ msgid ""
+#~ ".IP \"\" 2\n"
+#~ " "
+#~ msgstr ""
+#~ ".IP \"\" 2\n"
+#~ " "
+
+#~ msgid ""
+#~ "-\tnot reported\n"
+#~ " "
+#~ msgstr ""
+#~ "-\tnicht berichtet\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "TS\tSCHED_OTHER\n"
+#~ " "
+#~ msgstr ""
+#~ "TS\tSCHED_OTHER\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "FF\tSCHED_FIFO\n"
+#~ " "
+#~ msgstr ""
+#~ "FF\tSCHED_FIFO\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "RR\tSCHED_RR\n"
+#~ " "
+#~ msgstr ""
+#~ "RR\tSCHED_RR\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "B\tSCHED_BATCH\n"
+#~ " "
+#~ msgstr ""
+#~ "B\tSCHED_BATCH\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "ISO\tSCHED_ISO\n"
+#~ " "
+#~ msgstr ""
+#~ "ISO\tSCHED_ISO\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "IDL\tSCHED_IDLE\n"
+#~ " "
+#~ msgstr ""
+#~ "IDL\tSCHED_IDLE\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "DLN\tSCHED_DEADLINE\n"
+#~ " "
+#~ msgstr ""
+#~ "DLN\tSCHED_DEADLINE\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid "?\tunknown value "
+#~ msgstr "?\tunbekannter Wert"
+
+#~ msgid "cmd "
+#~ msgstr "cmd "
+
+#~ msgid "comm "
+#~ msgstr "comm "
+
+#~ msgid "COMMAND "
+#~ msgstr "BEFEHL"
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid "COMMAND "
+#~ msgstr "BEFEHL"
+
+#~ msgid "TIME "
+#~ msgstr "TIME"
+
+#~ msgid "TIME "
+#~ msgstr "TIME"
+
+#~ msgid ""
+#~ "data resident set size, the amount of physical memory devoted to other than\n"
+#~ "executable code."
+#~ msgstr "… , die Menge des physischen Speichers, der nicht mit ausführbarem Code belegt ist."
+
+#~ msgid "etime "
+#~ msgstr "etime "
+
+#~ msgid "ELAPSED "
+#~ msgstr "ELAPSED "
+
+#~ msgid "ELAPSED "
+#~ msgstr "ELAPSED "
+
+#~ msgid "f "
+#~ msgstr "f "
+
+#~ msgid "F "
+#~ msgstr "F "
+
+#~ msgid "flags "
+#~ msgstr "flags "
+
+#~ msgid "F "
+#~ msgstr "F "
+
+#~ msgid "COMMAND "
+#~ msgstr "BEFEHL"
+
+#~ msgid "group "
+#~ msgstr "group "
+
+#~ msgid "GROUP "
+#~ msgstr "GROUP "
+
+#~ msgid ""
+#~ "Unique inode number describing the namespace the process belongs to.\n"
+#~ "See\n"
+#~ "I<namespaces>(7). "
+#~ msgstr ""
+#~ "Eindeutige Inode-Nummer, welche den Namennsraum angibt, zu dem der\n"
+#~ "Prozess gehört. Siehe I<namespaces>(7)."
+
+#~ msgid ""
+#~ "time the command started. See also\n"
+#~ "B<bsdstart>,B<\\ start>,B<\\ start_time>, andB<\\ stime>."
+#~ msgstr "Zeit, zu der der Befehl gestartet wurde. Siehe auch B<bsdstart>, B<start>, B<start_time> und B<stime>."
+
+#~ msgid "maj_flt "
+#~ msgstr "maj_flt "
+
+#~ msgid "min_flt "
+#~ msgstr "min_flt "
+
+#~ msgid ""
+#~ "Unique inode number describing the namespace the process belongs to.\n"
+#~ "See\n"
+#~ "I<namespaces>(7). "
+#~ msgstr ""
+#~ "Eindeutige Inode-Nummer, welche den Namennsraum angibt, zu dem der\n"
+#~ "Prozess gehört. Siehe I<namespaces>(7)."
+
+#~ msgid ""
+#~ "Unique inode number describing the namespace the process belongs to.\n"
+#~ "See\n"
+#~ "I<namespaces>(7). "
+#~ msgstr ""
+#~ "Eindeutige Inode-Nummer, welche den Namennsraum angibt, zu dem der\n"
+#~ "Prozess gehört. Siehe I<namespaces>(7)."
+
+#~ msgid "NI "
+#~ msgstr "NI "
+
+#~ msgid "nice "
+#~ msgstr "nice "
+
+#~ msgid "NI "
+#~ msgstr "NI "
+
+#~ msgid "pcpu "
+#~ msgstr "pcpu "
+
+#~ msgid "%CPU "
+#~ msgstr "%CPU "
+
+#~ msgid "pgid "
+#~ msgstr "pgid "
+
+#~ msgid "PGID "
+#~ msgstr "PGID "
+
+#~ msgid "pgrp "
+#~ msgstr "pgrp "
+
+#~ msgid "pid "
+#~ msgstr "pid "
+
+#~ msgid "PID "
+#~ msgstr "PID "
+
+#~ msgid ""
+#~ "Unique inode number describing the namespace the process belongs to.\n"
+#~ "See\n"
+#~ "I<namespaces>(7). "
+#~ msgstr ""
+#~ "Eindeutige Inode-Nummer, welche den Namennsraum angibt, zu dem der\n"
+#~ "Prozess gehört. Siehe I<namespaces>(7)."
+
+#~ msgid "%MEM "
+#~ msgstr "%MEM "
+
+#~ msgid ""
+#~ ".IP \"\" 2\n"
+#~ " "
+#~ msgstr ""
+#~ ".IP \"\" 2\n"
+#~ " "
+
+#~ msgid ""
+#~ "-\tnot reported\n"
+#~ " "
+#~ msgstr ""
+#~ "-\tnicht berichtet\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "TS\tSCHED_OTHER\n"
+#~ " "
+#~ msgstr ""
+#~ "TS\tSCHED_OTHER\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "FF\tSCHED_FIFO\n"
+#~ " "
+#~ msgstr ""
+#~ "FF\tSCHED_FIFO\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "RR\tSCHED_RR\n"
+#~ " "
+#~ msgstr ""
+#~ "RR\tSCHED_RR\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "B\tSCHED_BATCH\n"
+#~ " "
+#~ msgstr ""
+#~ "B\tSCHED_BATCH\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "ISO\tSCHED_ISO\n"
+#~ " "
+#~ msgstr ""
+#~ "ISO\tSCHED_ISO\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "IDL\tSCHED_IDLE\n"
+#~ " "
+#~ msgstr ""
+#~ "IDL\tSCHED_IDLE\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "DLN\tSCHED_DEADLINE\n"
+#~ " "
+#~ msgstr ""
+#~ "DLN\tSCHED_DEADLINE\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid "?\tunknown value "
+#~ msgstr "?\tunbekannter Wert"
+
+#~ msgid "ppid "
+#~ msgstr "ppid "
+
+#~ msgid "PPID "
+#~ msgstr "PPID "
+
+#~ msgid "rgroup "
+#~ msgstr "rgroup "
+
+#~ msgid "RGROUP "
+#~ msgstr "RGROUP "
+
+#~ msgid "rss "
+#~ msgstr "rss "
+
+#~ msgid "RSS "
+#~ msgstr "RSS "
+
+#~ msgid "ruser "
+#~ msgstr "ruser "
+
+#~ msgid "RUSER "
+#~ msgstr "RUSER "
+
+#~ msgid "s "
+#~ msgstr "s "
+
+#~ msgid "S "
+#~ msgstr "S "
+
+#~ msgid "P "
+#~ msgstr "P "
+
+#~ msgid "PENDING "
+#~ msgstr "PENDING "
+
+#~ msgid "CAUGHT "
+#~ msgstr "CAUGHT "
+
+#~ msgid "IGNORED "
+#~ msgstr "IGNORED "
+
+#~ msgid "BLOCKED "
+#~ msgstr "BLOCKED "
+
+#~ msgid "size "
+#~ msgstr "size "
+
+#~ msgid "STARTED "
+#~ msgstr "STARTED "
+
+#~ msgid "start_time "
+#~ msgstr "start_time "
+
+#~ msgid "START "
+#~ msgstr "START "
+
+#~ msgid "S "
+#~ msgstr "S "
+
+#~ msgid "time "
+#~ msgstr "time "
+
+#~ msgid "TIME "
+#~ msgstr "TIME "
+
+#~ msgid ""
+#~ "Unique inode number describing the namespace the process belongs to.\n"
+#~ "See\n"
+#~ "I<namespaces>(7). "
+#~ msgstr ""
+#~ "Eindeutige Inode-Nummer, welche den Namensraum angibt, zu dem der\n"
+#~ "Prozess gehört. Siehe I<namespaces>(7)."
+
+#~ msgid "TIME "
+#~ msgstr "TIME "
+
+#~ msgid "TTY "
+#~ msgstr "TTY "
+
+#~ msgid "tpgid "
+#~ msgstr "tpgid "
+
+#~ msgid "tty "
+#~ msgstr "tty "
+
+#~ msgid "TT "
+#~ msgstr "TT "
+
+#~ msgid "CMD "
+#~ msgstr "CMD "
+
+#~ msgid "COMMAND "
+#~ msgstr "COMMAND "
+
+#~ msgid "uid "
+#~ msgstr "uid "
+
+#~ msgid "USER "
+#~ msgstr "USER "
+
+#~ msgid "user "
+#~ msgstr "user "
+
+#~ msgid "USER "
+#~ msgstr "USER "
+
+#~ msgid ""
+#~ "Unique inode number describing the namespace the process belongs to.\n"
+#~ "See\n"
+#~ "I<namespaces>(7). "
+#~ msgstr ""
+#~ "Eindeutige Inode-Nummer, welche den Namensraum angibt, zu dem der\n"
+#~ "Prozess gehört. Siehe I<namespaces>(7)."
+
+#~ msgid ""
+#~ "Unique inode number describing the namespace the process belongs to.\n"
+#~ "See\n"
+#~ "I<namespaces>(7). "
+#~ msgstr ""
+#~ "Eindeutige Inode-Nummer, welche den Namennsraum angibt, zu dem der\n"
+#~ "Prozess gehört. Siehe I<namespaces>(7)."
+
+#~ msgid "vsize "
+#~ msgstr "vsize "
+
+#~ msgid "VSZ "
+#~ msgstr "VSZ "
+
+#~ msgid "vsz "
+#~ msgstr "vsz "
+
+#~ msgid "VSZ "
+#~ msgstr "VSZ "
+
+#~ msgid "WCHAN "
+#~ msgstr "WCHAN "
+
+#~ msgid "Set to one of posix, old, linux, bsd, sun, digital... (see section B<PERSONALITY> below). "
+#~ msgstr "wird auf eines von »posix«, »old«, »linux«, »bsd«, »sun«, »digital« …\\& gesetzt (siehe Abschnitt B<PROZESSAUSFÜHRUNGSUMGEBUNG> nachfolgend)."
+
+#~ msgid "Don't find excuses to ignore bad \"features\". "
+#~ msgstr "Finde keine Entschuldigungen zum Ignorieren schlechter »Funktionen«."
+
+#~ msgid "like the old Debian B<ps> "
+#~ msgstr "wie das alte B<ps> in Debian"
+
+#~ msgid "like HP-UX B<ps> "
+#~ msgstr "wie das B<ps> in HP-UX"
+
+#~ msgid "like OS/390 Open Edition B<ps> "
+#~ msgstr "wie das B<ps> in OS/390 Open Edition"
+
+#~ msgid "like Irix B<ps> "
+#~ msgstr "wie das B<ps> in Irix"
+
+#~ msgid "standard "
+#~ msgstr "standard "
+
+#~ msgid "standard "
+#~ msgstr "standard "
+
+#~ msgid "standard "
+#~ msgstr "standard "
+
+#~ msgid "standard "
+#~ msgstr "standard "
+
+#~ msgid "standard "
+#~ msgstr "standard "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "SIEHE AUCH"
+
+#~ msgid "STANDARDS "
+#~ msgstr "STANDARDS "
+
+#~ msgid "1 "
+#~ msgstr "1 "
+
+#~ msgid "2 "
+#~ msgstr "2 "
+
+#~ msgid "3 "
+#~ msgstr "3 "
+
+#~ msgid "4 "
+#~ msgstr "4 "
+
+#~ msgid "AUTHOR "
+#~ msgstr "AUTOR"
+
+#~ msgid "2020-06-04 "
+#~ msgstr "4. Juni 2020"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Dienstprogramme für Benutzer"
+
+#~ msgid "NAME "
+#~ msgstr "BEZEICHNUNG"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "ÃœBERSICHT"
+
+#~ msgid "OPTIONS "
+#~ msgstr "OPTIONEN"
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "SIEHE AUCH"
+
+#~ msgid "B<ps>(1), B<pgrep>(1) "
+#~ msgstr "B<ps>(1), B<pgrep>(1) "
+
+#~ msgid "STANDARDS "
+#~ msgstr "STANDARDS"
+
+#~ msgid "AUTHOR "
+#~ msgstr "AUTOR"
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "FEHLER MELDEN"
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Bitte schicken Sie Fehlermeldungen (auf Englisch) an E<.MT procps@freelists.org> E<.ME>"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Dienstprogramme für Benutzer"
+
+#~ msgid "NAME "
+#~ msgstr "BEZEICHNUNG"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "ÃœBERSICHT"
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "BESCHREIBUNG"
+
+#~ msgid "OPTIONS "
+#~ msgstr "OPTIONEN"
+
+#~ msgid "B<-L>,B<\\ --table> "
+#~ msgstr "B<-L>,B<\\ --table> "
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "Display help text and exit. "
+#~ msgstr "zeigt einen Hilfetext an und beendet das Programm."
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "Display version information. "
+#~ msgstr "Versionsinformationen anzeigen."
+
+#~ msgid "B<--ns >I<pid> "
+#~ msgstr "B<--ns >I<Prozesskennung>"
+
+#~ msgid "EXAMPLES "
+#~ msgstr "BEISPIELE"
+
+#~ msgid "SEE ALSO "
+#~ msgstr "SIEHE AUCH"
+
+#~ msgid "STANDARDS "
+#~ msgstr "STANDARDS"
+
+#~ msgid "AUTHOR "
+#~ msgstr "AUTOR"
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "FEHLER MELDEN"
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Bitte schicken Sie Fehlermeldungen (auf Englisch) an E<.MT procps@freelists.org> E<.ME>"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Dienstprogramme für Benutzer"
+
+#~ msgid "NAME "
+#~ msgstr "BEZEICHNUNG"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "ÃœBERSICHT"
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "BESCHREIBUNG"
+
+#~ msgid "OPTIONS "
+#~ msgstr "OPTIONEN"
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "Display version information and exit. "
+#~ msgstr "zeigt Versionsinformationen an und beendet das Programm."
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "c "
+#~ msgstr "c "
+
+#~ msgid "l "
+#~ msgstr "l "
+
+#~ msgid "v "
+#~ msgstr "v "
+
+#~ msgid "n "
+#~ msgstr "n "
+
+#~ msgid "o "
+#~ msgstr "o "
+
+#~ msgid "p "
+#~ msgstr "p "
+
+#~ msgid "s "
+#~ msgstr "s "
+
+#~ msgid "u "
+#~ msgstr "u "
+
+#~ msgid "FILES "
+#~ msgstr "DATEIEN"
+
+#~ msgid "SEE ALSO "
+#~ msgstr "SIEHE AUCH"
+
+#~ msgid "NOTES "
+#~ msgstr "ANMERKUNGEN"
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "FEHLER MELDEN"
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Bitte schicken Sie Fehlermeldungen (auf Englisch) an E<.MT procps@freelists.org> E<.ME>"
+
+#~ msgid "2021-03-29"
+#~ msgstr "29. März 2021"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "NAME "
+#~ msgstr "BEZEICHNUNG"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "ÃœBERSICHT"
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "BESCHREIBUNG"
+
+#~ msgid "B<-q>, B<--quiet> "
+#~ msgstr "B<-q>, B<--quiet> "
+
+#~ msgid "B<-A> "
+#~ msgstr "B<-A> "
+
+#~ msgid "B<-d> "
+#~ msgstr "B<-d> "
+
+#~ msgid "B<-f> "
+#~ msgstr "B<-f> "
+
+#~ msgid "B<-X> "
+#~ msgstr "B<-X> "
+
+#~ msgid "Alias of B<-a> "
+#~ msgstr "Alias für B<-a>"
+
+#~ msgid "Does nothing, exists for BSD compatibility. "
+#~ msgstr "bewirkt nichts; ist nur zwecks BSD-Kompatibilität vorhanden."
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "Display help text and exit. "
+#~ msgstr "zeigt einen Hilfetext an und beendet das Programm."
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "Display version information and exit. "
+#~ msgstr "zeigt Versionsinformationen an und beendet das Programm."
+
+#~ msgid "EXAMPLES "
+#~ msgstr "BEISPIELE"
+
+#~ msgid "FILES "
+#~ msgstr "DATEIEN"
+
+#~ msgid "SEE ALSO "
+#~ msgstr "SIEHE AUCH"
+
+#~ msgid "AUTHOR "
+#~ msgstr "AUTOR"
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "FEHLER MELDEN"
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Bitte schicken Sie Fehlermeldungen (auf Englisch) an E<.MT procps@freelists.org> E<.ME>"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "NAME "
+#~ msgstr "BEZEICHNUNG"
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "BESCHREIBUNG"
+
+#~ msgid "NOTES "
+#~ msgstr "ANMERKUNGEN"
+
+#~ msgid "FILES "
+#~ msgstr "DATEIEN"
+
+#~ msgid "I</etc/sysctl.d/*.conf> "
+#~ msgstr "I</etc/sysctl.d/*.conf> "
+
+#~ msgid "I</run/sysctl.d/*.conf> "
+#~ msgstr "I</run/sysctl.d/*.conf> "
+
+#~ msgid "I</usr/local/lib/sysctl.d/*.conf> "
+#~ msgstr "I</usr/local/lib/sysctl.d/*.conf> "
+
+#~ msgid "I</usr/lib/sysctl.d/*.conf> "
+#~ msgstr "I</usr/lib/sysctl.d/*.conf> "
+
+#~ msgid "I</lib/sysctl.d/*.conf> "
+#~ msgstr "I</lib/sysctl.d/*.conf> "
+
+#~ msgid "I</etc/sysctl.conf> "
+#~ msgstr "I</etc/sysctl.conf> "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "SIEHE AUCH"
+
+#~ msgid "AUTHOR "
+#~ msgstr "AUTOR"
+
+#~ msgid "E<.UR staikos@0wned.org> George Staikos E<.UE> "
+#~ msgstr "E<.MT staikos@0wned.org> George Staikos E<.ME> "
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "FEHLER MELDEN"
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Bitte schicken Sie Fehlermeldungen (auf Englisch) an E<.MT procps@freelists.org> E<.ME>"
+
+#~ msgid "2020-06-04 "
+#~ msgstr "4. Juni 2020"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Dienstprogramme für Benutzer"
+
+#~ msgid "NAME "
+#~ msgstr "BEZEICHNUNG"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "ÃœBERSICHT"
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "BESCHREIBUNG"
+
+#~ msgid "OPTIONS "
+#~ msgstr "OPTIONEN"
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "Display version information and exit. "
+#~ msgstr "zeigt Versionsinformationen an und beendet das Programm."
+
+#~ msgid "FILES "
+#~ msgstr "DATEIEN"
+
+#~ msgid "SEE ALSO "
+#~ msgstr "SIEHE AUCH"
+
+#~ msgid "BUGS "
+#~ msgstr "FEHLER"
+
+#~ msgid "AUTHORS "
+#~ msgstr "AUTOREN"
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "FEHLER MELDEN"
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Bitte schicken Sie Fehlermeldungen (auf Englisch) an E<.MT procps@freelists.org> E<.ME>"
+
+#~ msgid "September 2022"
+#~ msgstr "September 2022"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Dienstprogramme für Benutzer"
+
+#~ msgid "NAME "
+#~ msgstr "BEZEICHNUNG"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "ÃœBERSICHT"
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "BESCHREIBUNG"
+
+#, fuzzy
+#~| msgid "\\*(XX."
+#~ msgid "\\*(XX. "
+#~ msgstr "\\*(XX."
+
+#, fuzzy
+#~| msgid "\\*(XX."
+#~ msgid "\\*(XX. "
+#~ msgstr "\\*(XX."
+
+#, fuzzy
+#~| msgid "\\*(XX."
+#~ msgid "\\*(XX. "
+#~ msgstr "\\*(XX."
+
+#, fuzzy
+#~| msgid "\\*(XX."
+#~ msgid "\\*(XX. "
+#~ msgstr "\\*(XX."
+
+#, fuzzy
+#~| msgid "\\*(XX."
+#~ msgid "\\*(XX. "
+#~ msgstr "\\*(XX."
+
+#, fuzzy
+#~| msgid "\\*(XX."
+#~ msgid "\\*(XX. "
+#~ msgstr "\\*(XX."
+
+#, fuzzy
+#~| msgid "\\*(XX."
+#~ msgid "\\*(XX. "
+#~ msgstr "\\*(XX."
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Dienstprogramme für Benutzer"
+
+#~ msgid "NAME "
+#~ msgstr "BEZEICHNUNG"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "ÃœBERSICHT"
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "BESCHREIBUNG"
+
+#~ msgid "OPTIONS "
+#~ msgstr "OPTIONEN"
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "FILES "
+#~ msgstr "DATEIEN"
+
+#~ msgid "AUTHORS "
+#~ msgstr "AUTOREN"
+
+#~ msgid "SEE ALSO "
+#~ msgstr "SIEHE AUCH"
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "FEHLER MELDEN"
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Bitte schicken Sie Fehlermeldungen (auf Englisch) an E<.MT procps@freelists.org> E<.ME>"
+
+#~ msgid "2020-06-04 "
+#~ msgstr "4. Juni 2020"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "System Administration "
+#~ msgstr "System-Administration"
+
+#~ msgid "NAME "
+#~ msgstr "BEZEICHNUNG"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "ÃœBERSICHT"
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "BESCHREIBUNG"
+
+#~ msgid "OPTIONS "
+#~ msgstr "OPTIONEN"
+
+#~ msgid "B<-w>, B<--wide> "
+#~ msgstr "B<-w>, B<--wide> "
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "Display version information and exit. "
+#~ msgstr "zeigt Versionsinformationen an und beendet das Programm."
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "Display help and exit. "
+#~ msgstr "zeigt eine Hilfe an und beendet das Programm."
+
+#~ msgid "These are affected by the B<--unit> option. "
+#~ msgstr "Diese werden von der Option B<--unit> beeinflusst."
+
+#~ msgid "CPU "
+#~ msgstr "CPU "
+
+#~ msgid "IO "
+#~ msgstr "E/A"
+
+#~ msgid "NOTES "
+#~ msgstr "ANMERKUNGEN"
+
+# FIXME Formatierter Leerraum
+#~ msgid "B<vmstat> does not require special permissions."
+#~ msgstr "B<vmstat> erfordert keine besonderen Rechte."
+
+#~ msgid "These reports are intended to help identify system bottlenecks. Linux B<vmstat> does not count itself as a running process."
+#~ msgstr "Diese Berichte haben den Zweck, Engstellen (»Flaschenhälse«) im System zu erkennen. Die Linux-Version von B<vmstat> rechnet sich dabei selbst nicht zu den laufenden Prozessen."
+
+#~ msgid "All linux blocks are currently 1024 bytes. Old kernels may report blocks as 512 bytes, 2048 bytes, or 4096 bytes."
+#~ msgstr "Alle Linux-Blöcke sind gegenwärtig 1024 Byte groß. Ältere Kernel könnten Blockgrößen als 512 Byte, 2048 Byte oder 4096 Byte melden."
+
+#~ msgid "Since procps 3.1.9, vmstat lets you choose units (k, K, m, M). Default is K (1024 bytes) in the default mode."
+#~ msgstr "Seit Procps 3.1.9, können Sie in Vmstat Einheiten wählen (k, K, m, M). Die Voreinstellung ist K (1024 Byte) im Standardmodus."
+
+#~ msgid "vmstat uses slabinfo 1.1"
+#~ msgstr "Vmstat verwendet Slabinfo 1.1"
+
+#~ msgid "FILES "
+#~ msgstr "DATEIEN"
+
+#~ msgid ""
+#~ "/proc/meminfo\n"
+#~ "/proc/stat\n"
+#~ "/proc/*/stat\n"
+#~ msgstr ""
+#~ "/proc/meminfo\n"
+#~ "/proc/stat\n"
+#~ "/proc/*/stat\n"
+
+#~ msgid "SEE ALSO "
+#~ msgstr "SIEHE AUCH"
+
+#~ msgid "BUGS "
+#~ msgstr "FEHLER"
+
+#~ msgid "Does not tabulate the block io per device or count the number of system calls."
+#~ msgstr "Die Block-Ein-/Ausgaben werden nicht gerätebezogen aufgeführt oder die Anzahl der Systemaufrufe gezählt."
+
+#~ msgid "AUTHORS "
+#~ msgstr "AUTOREN"
+
+#~ msgid "Written by E<.UR al172@yfn.\\:ysu.\\:edu> Henry Ware E<.UE .>"
+#~ msgstr "Geschrieben von E<.UR al172@yfn.\\:ysu.\\:edu> Henry Ware E<.UE .>"
+
+#~ msgid "E<.UR ffrederick@users.\\:sourceforge.\\:net> Fabian Fr\\('ed\\('erick E<.UE> (diskstat, slab, partitions...)"
+#~ msgstr "E<.UR ffrederick@users.\\:sourceforge.\\:net> Fabian Fr\\('ed\\('erick E<.UE> (diskstat, slab, Partitionen …)"
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "FEHLER MELDEN"
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Bitte schicken Sie Fehlermeldungen (auf Englisch) an E<.MT procps@freelists.org> E<.ME>"
+
+#~ msgid "W "
+#~ msgstr "W "
+
+#~ msgid "2020-06-04 "
+#~ msgstr "4. Juni 2020"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Dienstprogramme für Benutzer"
+
+#~ msgid "NAME "
+#~ msgstr "BEZEICHNUNG"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "ÃœBERSICHT"
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "BESCHREIBUNG"
+
+#~ msgid "B<--help> "
+#~ msgstr "B<--help> "
+
+#~ msgid "Display help text and exit. "
+#~ msgstr "zeigt einen Hilfetext an und beendet das Programm."
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "Display version information. "
+#~ msgstr "Versionsinformationen anzeigen."
+
+#~ msgid "FILES "
+#~ msgstr "DATEIEN"
+
+#~ msgid "I</var/run/utmp> "
+#~ msgstr "I</var/run/utmp> "
+
+#~ msgid "information about who is currently logged on "
+#~ msgstr "Informationen darüber, wer aktuell angemeldet ist"
+
+#~ msgid "I</proc> "
+#~ msgstr "I</proc> "
+
+#~ msgid "process information "
+#~ msgstr "Prozessinformation"
+
+#~ msgid "SEE ALSO "
+#~ msgstr "SIEHE AUCH"
+
+#~ msgid "AUTHORS "
+#~ msgstr "AUTOREN"
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "FEHLER MELDEN"
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Bitte schicken Sie Fehlermeldungen (auf Englisch) an E<.MT procps@freelists.org> E<.ME>"
+
+#~ msgid "2021-04-24"
+#~ msgstr "24. April 2021"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Dienstprogramme für Benutzer"
+
+#~ msgid "NAME "
+#~ msgstr "BEZEICHNUNG"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "ÃœBERSICHT"
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "BESCHREIBUNG"
+
+#~ msgid "OPTIONS "
+#~ msgstr "OPTIONEN"
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "Display help text and exit. "
+#~ msgstr "zeigt einen Hilfetext an und beendet das Programm."
+
+#~ msgid "Display version information and exit. "
+#~ msgstr "zeigt Versionsinformationen an und beendet das Programm."
+
+#~ msgid "EXIT STATUS "
+#~ msgstr "EXIT-STATUS"
+
+#~ msgid "B<0> "
+#~ msgstr "B<0> "
+
+#~ msgid "Success. "
+#~ msgstr "Erfolg."
+
+#~ msgid "B<1> "
+#~ msgstr "B<1> "
+
+#~ msgid "ENVIRONMENT "
+#~ msgstr "UMGEBUNGSVARIABLEN"
+
+#~ msgid "NOTES "
+#~ msgstr "ANMERKUNGEN"
+
+#~ msgid "BUGS "
+#~ msgstr "FEHLER"
+
+#~ msgid "EXAMPLES "
+#~ msgstr "BEISPIELE"
diff --git a/po-man/de/free.1 b/po-man/de/free.1
new file mode 100644
index 0000000..16967d3
--- /dev/null
+++ b/po-man/de/free.1
@@ -0,0 +1,170 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2003 Albert Cahalan
+.\" Copyright (c) 1993 Matt Welsh <mdw@sunsite.unc.edu>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH FREE 1 "2. Mai 2023" procps\-ng "Dienstprogramme für Benutzer"
+.SH BEZEICHNUNG
+free \- Anzeige des freien und belegten Speichers
+.SH ÃœBERSICHT
+\fBfree\fP [\fIOptionen\fP]
+.SH BESCHREIBUNG
+\fBfree\fP zeigt den gesamten freien und genutzten physischen Speicher und
+Auslagerungsspeicher im System sowie die vom Kernel verwendeten Puffer und
+Zwischenspeicher an. Die Informationen werden durch Auslesen von
+/proc/meminfo ermittelt. Folgende Spalten werden angezeigt:
+.TP
+\fBgesamt\fP
+Gesamter nutzbarer Speicher (MemTotal und SwapTotal in /proc/meminfo). Dies
+umfasst den physischen und den Auslagerungsspeicher, abzüglich reservierter
+Bits und Kernel\-Binärcode.
+.TP
+\fBbenutzt\fP
+Benutzter oder nicht verfügbarer Speicher (errechnet durch \fBgesamt\fP minus
+\fBverfügbar\fP)
+.TP
+\fBfrei\fP
+Ungenutzter Speicher (MemFree und SwapFree in /proc/meminfo)
+.TP
+\fBgemns.\fP
+(Meist) von Tmpfs genutzter Speicher (Shmem in /proc/meminfo)
+.TP
+\fBPuffer\fP
+Von den Kernel\-Puffern genutzter Speicher (Buffers in /proc/meminfo)
+.TP
+\fBCache\fP
+Vom Page\-Cache und Slabs genutzter Speicher (Cached und SReclaimable in
+/proc/meminfo)
+.TP
+\fBPuffer/Cache\fP
+Summe von \fBPuffer\fP und \fBCache\fP
+.TP
+\fBverfügbar\fP
+Schätzung des zum Starten neuer Anwendungen verfügbaren Speichers, ohne den
+Auslagerungsspeicher zu nutzen. Im Gegensatz zu den in den Feldern \fBCache\fP
+oder \fBFrei\fP angezeigten Daten bezieht dieses Feld den Page\-Cache mit ein,
+und beachtet außerdem, dass nicht alle beanspruchbaren Speicher\-Slabs durch
+in Verwendung befindliche Objekte auch wirklich beansprucht
+werden. (MemAvailable in /proc/meminfo, verfügbar ab Kernel 3.14, emuliert
+in Kernel 2.6.27 und neuer, anderenfalls gleichbedeutend mit \fBFrei\fP)
+.SH OPTIONEN
+.TP
+\fB\-b\fP, \fB\-\-bytes\fP
+zeigt die Speichergröße in Byte an.
+.TP
+\fB\-k\fP, \fB\-\-kibi\fP
+zeigt die Speichergröße in Kibibyte an. Das ist die Voreinstellung.
+.TP
+\fB\-m\fP, \fB\-\-mebi\fP
+zeigt die Speichergröße in Mebibyte an.
+.TP
+\fB\-g\fP, \fB\-\-gibi\fP
+zeigt die Speichergröße in Gibibyte an.
+.TP
+\fB\-\-tebi\fP
+zeigt die Speichergröße in Tebibyte an.
+.TP
+\fB\-\-pebi\fP
+Zeigt die Speichergröße in Pebibyte an.
+.TP
+\fB\-\-kilo\fP
+zeigt die Speichergröße in Kilobyte an. Impliziert \-\-si.
+.TP
+\fB\-\-mega\fP
+zeigt die Speichergröße in Megabyte an. Impliziert \-\-si.
+.TP
+\fB\-\-giga\fP
+zeigt die Speichergröße in Gigabyte an. Impliziert \-\-si.
+.TP
+\fB\-\-tera\fP
+zeigt die Speichergröße in Terabyte an. Impliziert \-\-si.
+.TP
+\fB\-\-peta\fP
+zeigt die Speichergröße in Petabyte an. Impliziert \-\-si.
+.TP
+\fB\-h\fP, \fB\-\-human\fP
+Alle angezeigten Felder werden automatisch auf die kleinste Einheit mit drei
+Ziffern skaliert. Die Einheiten werden in der Ausgabe angezeigt. Es werden
+die folgenden Einheiten verwendet.
+.sp
+.nf
+ B = Byte
+ Ki = Kibibyte
+ Mi = Mebibyte
+ Gi = Gibibyte
+ Ti = Tebibyte
+ Pi = Pebibyte
+.fi
+.sp
+Falls die Einheit fehlt und Sie Exbibyte an RAM oder Auslagerungsspeicher
+haben, wird die Zahl in Tebibyte angezeigt und die Spalten sind
+möglicherweise nicht an den Kopfzeilen ausgerichtet.
+.TP
+\fB\-w\fP, \fB\-\-wide\fP
+wechselt in den breiten Modus. In diesem Modus können Zeilen dargestellt
+werden, die länger als 80 Zeichen sind. \fBPuffer\fP und \fBCache\fP werden dann
+in zwei separaten Spalten dargestellt.
+.TP
+\fB\-c\fP, \fB\-\-count\fP \fIAnzahl\fP
+zeigt das Ergebnis \fIAnzahl\fP mal an. Erfordert die Option \fB\-s\fP.
+.TP
+\fB\-l\fP, \fB\-\-lohi\fP
+zeigt detailliert die Belegung von »low memory« und »high memory« an.
+.TP
+\fB\-L\fP, \fB\-\-line\fP
+zeigt die Ausgabe in einer einzelnen Zeile an; wird oft mit der Option \fB\-s\fP
+verwendet, um Speicherstatistiken wiederholt anzuzeigen.
+.TP
+\fB\-s\fP, \fB\-\-seconds\fP \fIIntervall\fP
+Fortlaufende Aktualisierung der Anzeige nach \fIIntervall\fP Sekunden. Sie
+können für \fIIntervall\fP eine beliebige Gleitkommazahl angeben mit einem
+Punkt oder Komma als Dezimaltrenner angeben. Durch die Nutzung von
+\fBusleep\fP(3) können die Intervalle bis auf die Mikrosekunde genau festgelegt
+werden.
+.TP
+\fB\-\-si\fP
+verwendet Kilo, Mega, Giga usw. (Vielfache von 1000) anstelle von Kibi,
+Mebi, Gibi (Vielfache von 1024).
+.TP
+\fB\-t\fP, \fB\-\-total\fP
+zeigt eine Zeile mit den Spaltensummen an.
+.TP
+\fB\-v\fP, \fB\-\-committed\fP
+Display a line showing the memory commit limit and amount of
+committed/uncommitted memory. The \fBtotal\fP column on this line will display
+the memory commit limit. This line is relevant if memory overcommit is
+disabled.
+.TP
+\fB\-\-help\fP
+Hilfe ausgeben.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Versionsinformationen anzeigen.
+.PD
+.SH DATEIEN
+.TP
+/proc/meminfo
+Speicherinformationen
+.PD
+.SH FEHLER
+Der Wert der Spalte \fBgemns.\fP ist für Kernel vor 2.6.32 nicht verfügbar und
+wird als Null angezeigt.
+.TP
+Bitte senden Sie Fehlermeldungen (auf Englisch) an
+.UR procps@freelists.org
+.UE
+.SH "SIEHE AUCH"
+\fBps\fP(1), \fBslabtop\fP(1), \fBtop\fP(1), \fBvmstat\fP(8).
diff --git a/po-man/de/kill.1 b/po-man/de/kill.1
new file mode 100644
index 0000000..ac308fd
--- /dev/null
+++ b/po-man/de/kill.1
@@ -0,0 +1,94 @@
+.\"
+.\" Copyright (c) 2002-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1998-2003 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH KILL 1 "16. Januar 2023" procps\-ng "Dienstprogramme für Benutzer"
+.SH BEZEICHNUNG
+kill \- ein Signal an einen Prozess senden
+.SH ÃœBERSICHT
+\fBkill\fP [Optionen] <Prozesskennung> […]
+.SH BESCHREIBUNG
+Das Standardsignal für \fBkill\fP ist TERM. Mit \fB\-l\fP oder \fB\-L\fP können Sie die
+verfügbaren Signale auflisten. Im einzelnen sind HUP, INT, KILL, STOP, CONT
+und 0 nützliche Signale. Alternative Signale können auf drei Arten angegeben
+werden: \fB\-9\fP, \fB\-SIGKILL\fP oder \fB\-KILL\fP. Negative Werte für die
+Prozesskennung können verwendet werden, um ganze Prozessgruppen auszuwählen;
+siehe die Spalte PGID der Ausgabe des Befehls \fBps\fP. Eine Prozesskennung von
+\fB\-1\fP ist besonders. Sie bezeichnet alle Prozesse außer \fBinit\fP und den
+\fBkill\fP\-Prozess selbst.
+.SH OPTIONEN
+.TP
+\fB<Prozesskennung> […]\fP
+sendet das Signal an alle aufgelisteten <Prozesskennungen>.
+.TP
+\fB\-<Signal>\fP
+.TQ
+\fB\-s <Signal>\fP
+.TQ
+\fB\-\-signal <Signal>\fP
+gibt das zu sendende \fBSignal\fP an. Es kann als Name oder Nummer angegeben
+werden. Das Verhalten der Signale ist in der Handbuchseite zu \fBsignal\fP(7)
+beschrieben.
+.TP
+\fB\-q\fP, \fB\-\-queue \fP\fIWert\fP
+verwendet \fBsigqueue\fP(3) anstatt \fBkill\fP(2) und das \fIWert\fP\-Argument wird
+zur Angabe einer Ganzzahl verwendet, die mit dem Signal gesendet wird. Falls
+der empfangende Prozess mit dem SA_SIGINFO\-Flag für \fBsigaction\fP(2) einen
+Handler für dieses Signal installiert hat, dann kann er diese Daten über das
+\fIsi_value\fP\-Feld der Struktur \fIsiginfo_t\fP beziehen.
+.TP
+\fB\-l\fP, \fB\-\-list\fP [\fISignal\fP]
+listet Signalnamen auf. Diese Option kann ein Argument haben, welches die
+Signalnummer in einen Signalnamen umwandelt oder umgekehrt.
+.TP
+\fB\-L\fP,\fB\ \-\-table\fP
+listet Signalnamen in einer übersichtlichen Tabelle auf.
+.TP
+.PD
+.SH ANMERKUNGEN
+In Ihrer Shell (dem Befehlszeileninterpreter) könnte bereits ein Kill\-Befehl
+eingebaut sein. In diesem Fall müssen Sie den hier beschriebenen Befehl als
+/bin/kill aufrufen, um den Konflikt zu umgehen.
+.SH BEISPIELE
+.TP
+\fBkill \-9 \-1\fP
+killt alle Prozesse, die gekillt werden können.
+.TP
+\fBkill \-l 11\fP
+übersetzt die Zahl 11 in einen Signalnamen.
+.TP
+\fBkill \-L\fP
+listet die Auswahl der verfügbaren Signale in einer übersichtlichen Tabelle
+auf.
+.TP
+\fBkill 123 543 2341 3453\fP
+Sendet das Standardsignal SIGTERM an alle diese Prozesse.
+.SH "SIEHE AUCH"
+\fBkill\fP(2), \fBkillall\fP(1), \fBnice\fP(1), \fBpkill\fP(1), \fBrenice\fP(1),
+\fBsignal\fP(7), \fBsigqueue\fP(3), \fBskill\fP(1)
+.SH STANDARDS
+Dieser Befehl erfüllt die entsprechenden Standards. Der Schalter \fB\-L\fP ist
+Linux\-spezifisch.
+.SH AUTOR
+.MT albert@users.sf.net
+Albert Cahalan
+.ME
+schrieb \fBkill\fP im Jahre
+1999, um die Version aus den Bsdutils zu ersetzen, die nicht standardkonform
+war. Die Version aus Util\-linux sollte ebenfalls korrekt funktionieren.
+.SH "FEHLER MELDEN"
+Bitte schicken Sie Fehlermeldungen (auf Englisch) an
+.MT procps@freelists.org
+.ME
diff --git a/po-man/de/pgrep.1 b/po-man/de/pgrep.1
new file mode 100644
index 0000000..a1bb299
--- /dev/null
+++ b/po-man/de/pgrep.1
@@ -0,0 +1,263 @@
+.\"
+.\" Copyright (c) 2004-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2004 Albert Cahalan
+.\" Copyright (c) 2000 Kjetil Torgrim Homme
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PGREP 1 "16. Januar 2023" procps\-ng "Dienstprogramme für Benutzer"
+.SH BEZEICHNUNG
+pgrep, pkill, pidwait \- Prozesse finden oder ein Signal auf Basis des Namens
+oder anderer Attribute senden oder auf Prozesse warten
+.SH ÃœBERSICHT
+\fBpgrep\fP [Optionen] Muster
+.br
+\fBpkill\fP [Optionen] Muster
+.br
+\fBpidwait\fP [Optionen] Muster
+.SH BESCHREIBUNG
+\fBpgrep\fP durchsucht die gegenwärtig laufenden Prozesse und listet die
+Prozesskennungen (IDs), welche den Auswahlkriterien entsprechen, in der
+Standardausgabe auf. Übereinstimmungen sind für alle Auswahlkriterien
+erforderlich. Beispielsweise listet
+.IP
+$ pgrep \-u root sshd
+.PP
+nur die Prozesse auf, deren Name \fBsshd\fP lautet UND \fBroot\fP
+gehören. Andererseits listet
+.IP
+$ pgrep \-u root,daemon
+.PP
+jene Prozesse auf, die entweder \fBroot\fP ODER \fBdaemon\fP gehören.
+.PP
+\fBpkill\fP sendet das angegebene Signal (per Vorgabe \fBSIGTERM\fP) an jeden
+Prozess, anstatt diese in der Standardausgabe aufzulisten.
+.PP
+\fBpidwait\fP wartet auf jeden Prozess, anstatt diesen in der Standardausgabe
+aufzulisten.
+.SH OPTIONEN
+.TP
+\fB\-\fP\fISignal\fP
+.TQ
+\fB\-\-signal\fP \fISignal\fP
+definiert das Signal, das an jeden der passenden Prozesse gesendet werden
+soll. Dafür kann entweder der numerische oder ein symbolischer Signalname
+verwendet werden. Nur im \fBpgrep\fP\- oder \fBpidwait\fP\-Modus kann die lange
+Option verwendet werden. Sie ist allerdings dann wirkungslos, wenn sie nicht
+zusammen mit \fB\-\-require\-handler\fP verwendet wird, um nur Prozesse
+anzuzeigen, für die bei einem bestimmten Signal ein Userspace\-Signalhandler
+vorhanden ist.
+
+.TP
+\fB\-c\fP, \fB\-\-count\fP
+unterdrückt normale Ausgaben und gibt stattdessen die Anzahl der passenden
+Prozesse aus. Wenn keine Ãœbereinstimmungen gefunden werden, liefert der
+Befehl einen von 0 verschiedenen Rückgabewert. Beachten Sie, dass für
+\fBpkill\fP und \fBpidwait\fP die Anzahl der Anzahl der passenden Prozesse
+entspricht und nicht der Anzahl der Prozesse, an die erfolgreich ein Signal
+gesendet oder auf die gewartet wurde.
+.TP
+\fB\-d\fP, \fB\-\-delimiter\fP \fITrenner\fP
+legt die in der Ausgabe als Trenner für die Prozesskennungen zu verwendende
+Zeichenkette fest. Vorgabe ist ein Zeilenumbruch (gilt nur für \fBpgrep\fP).
+.TP
+\fB\-e\fP, \fB\-\-echo\fP
+zeigt Name und Prozesskennung des zu killenden Prozesses an (nur für
+\fBpkill\fP).
+.TP
+\fB\-f\fP, \fB\-\-full\fP
+Das \fIMuster\fP wird normalerweise nur auf den Prozessnamen angewendet. Wenn
+\fB\-f\fP gesetzt ist, wird die vollständige Befehlszeile verwendet.
+.TP
+\fB\-g\fP, \fB\-\-pgroup\fP \fIProzessgruppe\fP, …
+sucht nur nach passenden Prozessen, die in den Prozessgruppenkennungen
+aufgelistet sind. Die Prozessgruppe 0 wird in die eigene Prozessgruppe von
+\fBpgrep\fP, \fBpkill\fP oder \fBpidwait\fP übersetzt.
+.TP
+\fB\-G\fP, \fB\-\-group\fP \fIGruppenkennung\fP, …
+berücksichtigt nur Prozesse, deren reale Gruppenkennung aufgelistet
+ist. Hier kann entweder der numerische oder der symbolische Wert verwendet
+werden.
+.TP
+\fB\-i\fP, \fB\-\-ignore\-case\fP
+ignoriert Groß\-/Kleinschreibung bei der Suche.
+.TP
+\fB\-l\fP, \fB\-\-list\-name\fP
+listet sowohl den Prozessnamen als auch die Prozesskennung auf (nur für
+\fBpgrep\fP).
+.TP
+\fB\-a\fP, \fB\-\-list\-full\fP
+listet sowohl die vollständige Befehlszeile als auch die Prozesskennung auf
+(nur für \fBpgrep\fP).
+.TP
+\fB\-n\fP, \fB\-\-newest\fP
+wählt nur den neuesten (zuletzt gestarteten) aus den passenden Prozessen
+aus.
+.TP
+\fB\-o\fP, \fB\-\-oldest\fP
+wählt nur den ältesten (zuerst gestarteten) aus den passenden Prozessen aus.
+.TP
+\fB\-O\fP, \fB\-\-older\fP \fISekunden\fP
+wählt Prozesse aus, die älter als die angegebene Anzahl Sekunden sind.
+.TP
+\fB\-P\fP, \fB\-\-parent\fP \fIEltern\-Prozesskennung\fP, …
+sucht nur nach Prozessen, von denen die Kennung des übergeordneten Prozesses
+aufgelistet ist.
+.TP
+\fB\-s\fP, \fB\-\-session\fP \fISitzungskennung\fP, …
+sucht nur nach passenden Prozessen, die in den Prozess\-Sitzungskennungen
+aufgelistet ist. Die Sitzungskennung 0 wird in die eigene Prozessgruppe von
+\fBpgrep\fP, \fBpkill\fP oder \fBpidwait\fP übersetzt.
+.TP
+\fB\-t\fP, \fB\-\-terminal\fP \fITerminal\fP, …
+sucht nur nach passenden Prozessen, deren steuerndes Terminal aufgelistet
+ist. Der Terminalname sollte ohne das Präfix »dev« angegeben werden.
+.TP
+\fB\-u\fP, \fB\-\-euid\fP \fIeffektive_Benutzerkennung\fP, …
+sucht nur nach passenden Prozessen, deren effektive Benutzerkennung
+aufgelistet ist. Sie können entweder numerische oder symbolische Werte
+verwenden.
+.TP
+\fB\-U\fP, \fB\-\-uid\fP \fIBenutzerkennung\fP, …
+sucht nur nach passenden Prozessen, deren reale Benutzerkennung aufgelistet
+ist. Sie können entweder numerische oder symbolische Werte verwenden.
+.TP
+\fB\-v\fP, \fB\-\-inverse\fP
+negiert die Anwendung der Suchkriterien. Diese Option wird üblicherweise mit
+\fBpgrep\fP oder \fBpidwait\fP verwendet. In \fBpkill\fP ist die Kurzoption
+deaktiviert, um die zufällige Anwendung dieser Option zu vermeiden.
+.TP
+\fB\-w\fP, \fB\-\-lightweight\fP
+zeigt bei \fBpgrep\fP oder \fBpidwait\fP alle Thread\-Kennungen anstelle der
+Prozess\-Kennungen an. In \fBpkill\fP ist diese Option deaktiviert.
+.TP
+\fB\-x\fP, \fB\-\-exact\fP
+sucht nur nach passenden Prozessen, deren Namen (oder Befehlszeilen, falls
+\fB\-f\fP angegeben ist) \fBexakt\fP dem \fIMuster\fP entsprechen.
+.TP
+\fB\-F\fP, \fB\-\-pidfile\fP \fIDatei\fP
+liest die \fIProzesskennungen\fP aus einer \fIDatei\fP. Diese Option ist eher für
+\fBpkill\fP oder \fBpidwait\fP als für \fBpgrep\fP sinnvoll.
+.TP
+\fB\-L\fP, \fB\-\-logpidfile\fP
+schlägt fehl, wenn die PID\-Datei (siehe \fB\-F\fP) nicht gesperrt ist.
+.TP
+\fB\-r\fP, \fB\-\-runstates\fP \fID,R,S,Z,\fP …
+sucht nur nach Prozessen, die diesem Prozessstatus entsprechen.
+.TP
+\fB\-A\fP, \fB\-\-ignore\-ancestors\fP
+ignoriert alle Vorgänger von \fBpgrep\fP, \fBpkill\fP oder \fBpidwait\fP. Dies kann
+beispielsweise in Verbindung mit \fBsudo\fP oder ähnlichen Werkzeugen nützlich
+sein.
+.TP
+\fB\-H\fP, \fB\-\-require\-handler\fP
+sucht nur nach Prozessen, für die für das zu sendende Signal ein
+Userspace\-Signalhandler vorhanden ist.
+.TP
+\fB\-\-cgroup \fP\fIName\fP\fB,…\fP
+Match on provided control group (cgroup) v2 name. See \fBcgroups\fP(8)
+.TP
+\fB\-\-ns \fP\fIProzesskennung\fP
+sucht nach passenden Prozessen, die zu den gleichen Namensräumen gehören. Um
+Prozesse anderer Benutzer zu finden, sind Root\-Rechte erforderlich. In
+\fB\-\-nslist\fP finden Sie Informationen, wie Sie die Ãœbereinstimmungen im
+Zusammenhang mit Namensräumen begrenzen können.
+.TP
+\fB\-\-nslist \fP\fIName\fP\fB, …\fP
+sucht nur in den angegebenen Namensräumen nach Übereinstimmungen. Verfügbare
+Namensräume: ipc, mnt, net, pid, user, uts.
+.TP
+\fB\-q\fP, \fB\-\-queue \fP\fIWert\fP
+verwendet \fBsigqueue\fP(3) anstatt \fBkill\fP(2) und das \fIWert\fP\-Argument wird
+zur Angabe einer Ganzzahl verwendet, die mit dem Signal gesendet wird. Falls
+der empfangende Prozess mit dem SA_SIGINFO\-Flag für \fBsigaction\fP(2) einen
+Handler für dieses Signal installiert hat, dann kann er diese Daten über das
+\fIsi_value\fP\-Feld der Struktur \fIsiginfo_t\fP beziehen.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+zeigt Versionsinformationen an und beendet das Programm.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+zeigt eine Hilfe an und beendet das Programm.
+.PD
+.SH OPERANDEN
+.TP
+\fIMuster\fP
+gibt einen erweiterten regulären Ausdruck für die Übereinstimmungen von
+Prozessnamen oder Befehlszeilen an.
+.SH BEISPIELE
+Beispiel 1: Prozesskennung des \fBnamed\fP\-Daemons suchen:
+.IP
+$ pgrep \-u root named
+.PP
+Beispiel 2: \fBsyslog\fP veranlassen, seine Konfigurationsdatei neu einzulesen:
+.IP
+$ pkill \-HUP syslogd
+.PP
+Beispiel 3: Detaillierte Informationen zu allen \fBxterm\fP\-Prozessen ausgeben:
+.IP
+$ ps \-fp $(pgrep \-d, \-x xterm)
+.PP
+Beispiel 4: Den Nice\-Wert für alle \fBchrome\fP\-Prozesse erhöhen:
+.IP
+$ renice +4 $(pgrep chrome)
+.SH EXIT\-STATUS
+.PD 0
+.TP
+0
+Einer oder mehrere Prozesse entsprechen dem Kriterium. Für \fBpkill\fP und
+\fBpidwait\fP muss auch ein Signal erfolgreich an einen oder mehrere Prozesse
+gesendet oder auf sie gewartet worden sein.
+.TP
+1
+Es wurden keine passenden Prozesse gefunden oder an keine von ihnen konnte
+ein Signal gesendet werden.
+.TP
+2
+Syntaxfehler in der Befehlszeile.
+.TP
+3
+Schwerwiegender Fehler: Speicher ausgeschöpft usw.
+.PD
+.SH ANMERKUNGEN
+Der für die Suche verwendete Prozessname ist auf die 15 Zeichen in der
+Ausgabe von /proc/\fIProzesskennung\fP/stat beschränkt. Verwenden Sie die
+Option \fB\-f\fP, um stattdessen Ãœbereinstimmungen in der gesamten Befehlszeile
+(/proc/\fIProzesskennung\fP/cmdline) zu suchen. Threads könnten nicht den
+gleichen Prozessnamen wie der Elternprozess haben, wohl aber die gleiche
+Befehlszeile.
+.PP
+Die laufenden \fBpgrep\fP\-, \fBpkill\fP\- oder \fBpidwait\fP\-Prozesse werden niemals
+selbst als Treffer gemeldet.
+.PP
+Die Option \fB\-O \-\-older\fP wird stillschweigend fehlschlagen, falls \fI/proc\fP
+mit der Option \fIsubset=pid\fP eingehängt ist.
+.SH FEHLER
+Die Optionen \fB\-n\fP, \fB\-o\fP und \fB\-v\fP können nicht kombiniert werden. Bitte
+informieren Sie die Entwickler, falls das für Ihre Zwecke nötig sein sollte.
+.PP
+Bereits beendete Prozesse werden gemeldet.
+.PP
+\fBpidwait\fP erfordert den Systemaufruf \fBpidfd_open\fP(2), der zuerst in Linux
+5.3 erschien.
+.SH "SIEHE AUCH"
+\fBps\fP(1), \fBregex\fP(7), \fBsignal\fP(7), \fBsigqueue\fP(3), \fBkillall\fP(1),
+\fBskill\fP(1), \fBkill\fP(1), \fBkill\fP(2), \fBcgroups\fP(8)
+.SH AUTOR
+.UR kjetilho@ifi.uio.no
+Kjetil Torgrim Homme
+.UE
+.SH "FEHLER MELDEN"
+Bitte schicken Sie Fehlermeldungen (auf Englisch) an
+.MT procps@freelists.org
+.ME
diff --git a/po-man/de/pidof.1 b/po-man/de/pidof.1
new file mode 100644
index 0000000..95f00c3
--- /dev/null
+++ b/po-man/de/pidof.1
@@ -0,0 +1,76 @@
+.\"
+.\" Copyright (c) 2018-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2019-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013 Jaromir Capik <jcapik@redhat.com>
+.\" Copyright (c) 1998 Miquel van Smoorenburg
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PIDOF 1 "16. Januar 2023" "" "Dienstprogramme für Benutzer"
+.SH BEZEICHNUNG
+pidof \- die Prozesskennung eines laufenden Programms ermitteln
+.SH ÃœBERSICHT
+\fBpidof\fP [\fB\-s\fP] [\fB\-c\fP] [\fB\-q\fP] [\fB\-w\fP] [\fB\-x\fP] [\fB\-o\fP
+\fIüberspringen[,überspringen …] …\fP] [\fB\-t\fP] [\fB\-S\fP \fITrenner\fP] \fIProgramm\fP
+\fI[\fP\fBProgramm …\fP\fI]\fP
+.SH BESCHREIBUNG
+\fBPidof\fP findet die Prozesskennungen (PIDs) der benannten Programme. Es
+schreibt diese Kennungen in die Standardausgabe.
+.SH OPTIONEN
+.IP \fB\-s\fP
+weist das Programm an, nur eine \fIPID\fP auszugeben.
+.IP \fB\-c\fP
+gibt nur Kennungen von Prozessen zurück, die im gleichen Wurzelverzeichnis
+laufen. Diese Option wird für gewöhnliche Benutzer (ohne
+Administratorrechte) ignoriert, da diese das aktuelle Wurzelverzeichnis
+nicht nach Prozessen durchsuchen können, deren Eigentümer sie nicht sind.
+.IP \fB\-q\fP
+aktiviert den stillen Modus, unterdrückt sämtliche Ausgaben und setzt den
+Exit\-Status entsprechend.
+.IP \fB\-w\fP
+zeigt auch Prozesse an, die keine sichtbare Befehlszeile haben (zum Beispiel
+Kernel\-Arbeits\-Threads).
+.IP \fB\-x\fP
+berücksichtigt auch Skripte. Das Programm gibt auch Prozesskennungen der
+Shells zurück, die die benannten Skripte ausführen.
+.IP "\fB\-o\fP \fIüberspringen\fP"
+weist \fBpidof\fP an, Prozesse mit der angegebenen PID zu überspringen. Die
+spezielle PID \fB%PPID\fP kann verwendet werden, um den Elternprozess des
+\fBpidof\fP\-Programms zu bezeichnen, also die aufrufende Shell oder das
+Shell\-Skript.
+.IP \fB\-t\fP
+zeigt alle Thread\-IDs anstelle von PIDs an.
+.IP "\fB\-S\fP \fITrenner\fP"
+verwendet den angegebenen \fITrenner\fP zwischen PIDs. Dieser wird nur
+verwendet, wenn für das Programm mehrere PIDs ausgegeben werden. Die Option
+\fI\-d\fP ist ein Alias für diese Option, der aus Gründen der Kompatibilität zu
+\fBpidof\fP aus Sysvinit zur Verfügung steht.
+.SH EXIT\-STATUS
+.TP
+\fB0\fP
+Es wurde mindestens ein Programm mit dem angegebenen Namen gefunden.
+.TP
+\fB1\fP
+Es wurde kein Programm mit dem angegebenen Namen gefunden.
+
+.SH FEHLER
+Wenn Sie die Option \fB\-x\fP verwenden, verfügt \fBpidof\fP nur eine einfache
+Methode zum Erkennen von Skripten und wird beispielsweise Skripte nicht
+erkennen, die \fBenv\fP verwenden. Diese Einschränkung ist darauf
+zurückzuführen, wie die Skripte im proc\-Dateisystem aussehen.
+
+.SH "SIEHE AUCH"
+\fBpgrep\fP(1), \fBpkill\fP(1)
+.SH AUTOR
+.UR jcapik@redhat.com
+Jaromir Capik
+.UE
diff --git a/po-man/de/pmap.1 b/po-man/de/pmap.1
new file mode 100644
index 0000000..2d8c265
--- /dev/null
+++ b/po-man/de/pmap.1
@@ -0,0 +1,99 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2013 Jaromir Capik <jcapik@redhat.com>
+.\" Copyright (c) 1998-2002 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\" (The preceding line is a note to broken versions of man to tell
+.\" them to pre-process this man page with tbl)
+.\" Man page for pmap.
+.\" Licensed under version 2 of the GNU General Public License.
+.\" Written by Albert Cahalan.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PMAP 1 "4. April 2020" procps\-ng "Dienstprogramme für Benutzer"
+.SH BEZEICHNUNG
+pmap \- die Speicherzuordnung eines Prozesses melden
+.SH ÃœBERSICHT
+\fBpmap\fP [\fIOptionen\fP] \fIProzesskennung\fP […]
+.SH BESCHREIBUNG
+Der Befehl \fBpmap\fP meldet die Speicherzuordnung eines oder mehrerer
+Prozesse.
+.SH OPTIONEN
+.TP
+\fB\-x\fP, \fB\-\-extended\fP
+zeigt im erweiterten Format an.
+.TP
+\fB\-d\fP, \fB\-\-device\fP
+zeigt im Geräteformat an.
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+zeigt nicht alle Kopf\- oder Fußzeilen an.
+.TP
+\fB\-A\fP, \fB\-\-range\fP \fIUntergrenze\fP,\fIObergrenze\fP
+begrenzt die Ergebnisse auf den angegebenen Adressbereich zwischen
+\fIUntergrenze\fP und \fIObergrenze\fP. Beachten Sie, dass die Argumente für
+Unter\- und Obergrenze eine einzige, durch ein Komma getrennte Zeichenkette
+sind.
+.TP
+\fB\-X\fP
+zeigt noch mehr Details als die Option \fB\-x\fP an. WARNUNG: Das Format ändert
+sich entsprechend \fI/proc/Prozesskennung/smaps\fP.
+.TP
+\fB\-XX\fP
+zeigt alles, was der Kernel bereitstellt.
+.TP
+\fB\-p\fP, \fB\-\-show\-path\fP
+zeigt den vollständigen Pfad zu den Dateien in der Zuordnungs\-Spalte an.
+.TP
+\fB\-c\fP, \fB\-\-read\-rc\fP
+liest die Standard\-Konfigurationsdatei ein.
+.TP
+\fB\-C\fP, \fB\-\-read\-rc\-from\fP \fIDatei\fP
+liest die Konfiguration aus der angegebenen \fIDatei\fP.
+.TP
+\fB\-n\fP, \fB\-\-create\-rc\fP
+erstellt eine neue Standardkonfiguration.
+.TP
+\fB\-N\fP, \fB\-\-create\-rc\-to\fP \fIDatei\fP
+legt eine neue Konfiguration in der angegebenen \fIDatei\fP an.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+zeigt einen Hilfetext an und beendet das Programm.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+zeigt Versionsinformationen an und beendet das Programm.
+.SH EXIT\-STATUS
+.PP
+.RS
+.PD 0
+.TP
+\fB0\fP
+Erfolg.
+.TP
+\fB1\fP
+Fehlschlag.
+.TP
+\fB42\fP
+Nicht alle Prozesse, nach denen gefragt wurde, konnten gefunden werden.
+.PD
+.RE
+.SH "SIEHE AUCH"
+\fBps\fP(1), \fBpgrep\fP(1)
+.SH STANDARDS
+Es sind keine Standards anwendbar, aber \fBpmap\fP ähnelt stark einem
+SunOS\-Befehl.
+.SH "FEHLER MELDEN"
+Bitte schicken Sie Fehlermeldungen (auf Englisch) an
+.MT procps@freelists.org
+.ME
diff --git a/po-man/de/ps.1 b/po-man/de/ps.1
new file mode 100644
index 0000000..ee38d4a
--- /dev/null
+++ b/po-man/de/ps.1
@@ -0,0 +1,1660 @@
+.\"
+.\" Copyright (c) 2004-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1998-2003 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PS 1 "19. August 2023" procps\-ng "Dienstprogramme für Benutzer"
+.\"
+.\" Ragged-right text.
+.na
+.\" Disable hyphenation.
+.nh
+.\"
+.\" ColSize is used for the format spec table.
+.\" It's the left margin, minus the right, minus
+.\" the space needed for the 1st two columns.
+.\" Making it messy: inches, ens, points, scaled points...
+.\"
+.nr ColSize ((\n[.l] - \n[.i]) / 1n - 29)
+.\"
+.SH BEZEICHNUNG
+ps \- einen Schnappschuss der aktuellen Prozesse darstellen.
+.SH ÃœBERSICHT
+\fBps\fP [\,\fIOptionen\/\fP]
+.SH BESCHREIBUNG
+\fBps\fP zeigt Informationen zu einer Auswahl aktiver Prozesse an. Falls Sie
+eine wiederholte Aktualisierung der Auswahl und der angezeigten
+Informationen benötigen, verwenden Sie stattdessen \fBtop\fP.
+.P
+Diese Version von \fBps\fP akzeptiert verschiedene Arten von Optionen:
+.IP
+.PD 0
+.IP 1 4
+UNIX\-Optionen, die gruppiert sein können und denen ein Bindestrich
+vorangestellt werden darf.
+.IP 2 4
+BSD\-Optionen, die gruppiert sein können und denen kein Bindestrich
+vorangestellt werden muss.
+.IP 3 4
+Lange GNU\-Optionen, denen zwei Bindestriche vorangestellt werden müssen.
+.PD
+.PP
+Optionen verschiedener Typen können beliebig gemischt werden, was aber auch
+Konflikte hervorrufen kann. Es gibt einige gleichbedeutende Optionen, die
+funktionell identisch sind. Das beruht auf den zahlreichen Standards und
+Implementationen von \fBps\fP, zu denen das vorliegende \fBps\fP kompatibel ist.
+.P
+Standardmäßig wählt \fBps\fP alle Prozesse mit der effektiven Benutzerkennung
+(euid=EUID) des aktuellen Benutzers aus, die dem gleichen Terminal wie der
+Aufrufende zugeordnet sind. Es zeigt die Prozesskennung (pid=PID), das dem
+Prozess zugeordnete Terminal (tname=TTY), die kumulierte CPU\-Zeit
+(time=TIME) im Format [TT\-]hh:mm:ss sowie den Namen des ausführbaren
+Programms an. Die Ausgabe wird standardmäßig nicht sortiert.
+.P
+Durch die Verwendung von Optionen im BSD\-Stil wird der Prozessstatus
+(stat=STATUS) zur standardmäßigen Anzeige hinzugefügt und die
+Befehlsargumente (args=BEFEHL) anstelle des Namens der ausführbaren Datei
+angezeigt. Sie können dies in der Umgebungsvariable \fBPS_FORMAT\fP außer Kraft
+setzen. Durch die Verwendung von Optionen im BSD\-Stil zeigt die
+Prozessauswahl außerdem Prozesse auf anderen Terminals (TTYs) an, deren
+Besitzer Sie selbst sind; alternativ könnte dies als Setzen der Auswahl auf
+alle Prozesse beschrieben werden, aus denen aber Prozesse herausgefiltert
+werden, die anderen Benutzern gehören oder nicht auf einem Terminal
+laufen. Diese Effekte werden nicht berücksichtigt, wenn Optionen nachfolgend
+als »gleichbedeutend« beschrieben werden, so wird \fB\-M\fP als gleichbedeutend
+mit \fBZ\fP usw. aufgefasst.
+.P
+Außer in den nachfolgend beschriebenen Ausnahmen sind Optionen zur
+Prozessauswahl additiv. Die standardmäßige Auswahl wird verworfen und dann
+werden die ausgewählten Prozesse zur Gruppe der anzuzeigenden Prozesse
+hinzugefügt. Ein Prozess wird also dann angezeigt, wenn er irgendeinem der
+angegebenen Auswahlkriterien entspricht.
+.SH BEISPIELE
+.TP 3
+Alle Prozesse im System in der Standard\-Syntax anzeigen:
+\fBps\ \-e\fP
+.br
+\fBps\ \-ef\fP
+.br
+\fBps\ \-eF\fP
+.br
+\fBps\ \-ely\fP
+.TP
+Alle Prozess im System in der BSD\-Syntax anzeigen:
+\fBps\ ax\fP
+.br
+\fBps\ axu\fP
+.TP
+Einen Prozessbaum ausgeben:
+\fBps\ \-ejH\fP
+.br
+\fBps\ axjf\fP
+.TP
+Informationen zu Threads erhalten:
+\fBps\ \-eLf\fP
+.br
+\fBps\ axms\fP
+.TP
+Sicherheitsinformationen erhalten:
+\fBps\ \-eo euser,ruser,suser,fuser,f,comm,label\fP
+.br
+\fBps\ axZ\fP
+.br
+\fBps\ \-eM\fP
+.TP
+Alle Prozesse im System, die mit Root\-Rechten laufen (reale\ &\ effektive\ Kennung), in einem benutzerdefinierten Format anzeigen:
+\fBps\ \-U\ root\ \-u\ root\ u\fP
+.TP
+Alle Prozesse in einem benutzerdefinierten Format anzeigen:
+\fBps\ \-eo\ pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm\fP
+.br
+\fBps\ axo\ stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm\fP
+.br
+\fBps\ \-Ao\ pid,tt,user,fname,tmout,f,wchan\fP
+.TP
+Nur die Prozesskennungen (PIDs) von \fBsyslogd\fP ausgeben:
+\fBps\ \-C\ syslogd\ \-o\ pid=\fP
+.TP
+Nur den Namen des Prozesses mit der Kennung 42 ausgeben:
+\fBps\ \-q\ 42\ \-o\ comm=\fP
+.SH "EINFACHE PROZESSAUSWAHL"
+.TP
+\fBa\fP
+hebt die Einschränkung »nur Sie selbst« des BSD\-Stils auf, die für die
+Gruppe aller Prozesse gilt, wenn einige BSD\-artige Optionen (ohne »\-«)
+verwendet werden oder wenn die Einstellung der Prozessausführungsumgebung
+von \fBps\fP BSD\-ähnlich ist. Die auf diese Weise ausgewählte Prozessgruppe
+wird zusätzlich zu den bereits auf andere Weise ausgewählten Prozessen
+ausgewählt. Alternativ könnte dies so beschrieben werden, dass diese Option
+\fBps\fP veranlasst, alle Prozesse mit einem Terminal (TTY) aufzulisten, oder
+alle Prozesse aufzulisten, wenn dies zusammen mit der Option \fBx\fP verwendet
+wird.
+.TP
+\fB\-A\fP
+wählt alle Prozesse aus. Gleichbedeutend mit \fB\-e\fP.
+.TP
+\fB\-a\fP
+wählt alle Prozesse aus, außer sowohl Sitzungsleiter (siehe \fIgetsid\fP(2))
+als auch Prozesse, die keinem Terminal zugeordnet sind.
+.TP
+\fB\-d\fP
+wählt alle Prozesse außer Sitzungsleiter aus.
+.TP
+\fB\-\-deselect\fP
+wählt alle Prozesse aus, außer jene, welche die angegebenen Bedingungen
+erfüllen (negiert die Auswahl). Gleichbedeutend mit \fB\-N\fP.
+.TP
+\fB\-e\fP
+.\" Current "g" behavior: add in the session leaders, which would
+.\" be excluded in the sunos4 personality. Supposed "g" behavior:
+.\" add in the group leaders -- at least according to the SunOS 4
+.\" man page on the FreeBSD site. Uh oh. I think I had tested SunOS
+.\" though, so maybe the code is correct.
+wählt alle Prozesse aus. Gleichbedeutend mit \fB\-A\fP.
+.TP
+\fBg\fP
+wählt wirklich alle, selbst die Sitzungsleiter. Dieser Schalter ist veraltet
+und könnte in zukünftigen Veröffentlichungen nicht mehr zur Verfügung
+stehen. Es wird normalerweise vom Schalter \fBa\fP impliziert und ist nur
+nützlich, wenn es in einer SunOs\-Prozessausführungsumgebung ausgeführt wird.
+.TP
+\fB\-N\fP
+wählt alle Prozesse aus, außer jene, welche die angegebenen Bedingungen
+erfüllen (negiert die Auswahl). Gleichbedeutend mit \fB\-\-deselect\fP.
+.TP
+\fBT\fP
+wählt alle Prozesse aus, welche diesem Terminal zugeordnet
+sind. Gleichbedeutend mit der Option \fBt\fP ohne Argumente.
+.TP
+\fBr\fP
+schränkt die Auswahl nur auf laufende Prozesse ein.
+.TP
+\fBx\fP
+hebt die Einschränkung »muss ein TTY haben« des BSD\-Stils auf, die für die
+Gruppe aller Prozesse gilt, wenn einige BSD\-artige Optionen (ohne »\-«)
+verwendet werden oder wenn die Einstellung der Prozessausführungsumgebung
+von \fBps\fP BSD\-ähnlich ist. Die auf diese Weise ausgewählte Prozessgruppe
+wird zusätzlich zu den bereits auf andere Weise ausgewählten Prozessen
+ausgewählt. Alternativ könnte dies so beschrieben werden, dass diese Option
+\fBps\fP veranlasst, alle Prozesse aufzulisten, deren Besitzer Sie selbst sind
+(gleiche EUID wie \fBps\fP), oder alle Prozesse aufzulisten, wenn dies zusammen
+mit der Option \fBa\fP verwendet wird.
+.PD
+.SH "PROZESSAUSWAHL NACH LISTE"
+Diese Optionen akzeptieren ein einzelnes Argument in der Form einer durch
+Leerräume oder Kommata getrennten Liste. Dies kann mehrmals angegeben
+werden. Beispiel: \fBps\ \-p\ "1\ 2"\ \-p\ 3,4\fP
+.TP
+\fI123\fP
+ist gleichbedeutend mit \fB\-\-pid\ \fP\fI123\fP.
+.TP
+\+\fI123\fP
+ist gleichbedeutend mit \fB\-\-sid\ \fP\fI123\fP.
+.TP
+\-\fI123\fP
+Select by process group ID (PGID).
+.TP
+\fB\-C\fP\fI\ Befehlsliste\fP
+wählt nach Befehlsnamen aus. Dadurch werden die Prozesse ausgewählt, deren
+Namen der ausführbaren Dateien in der \fIBefehlsliste\fP aufgeführt
+sind. Achtung: Der Befehlsname entspricht nicht der Befehlszeile. Frühere
+Versionen von \fBprocps\fP und der Kernel kürzten diesen Befehlsnamen auf 15
+Zeichen. Diese Einschränkung gibt es in beiden nicht mehr. Falls Sie sich
+nur auf 15 Zeichen beziehen, erhalten Sie keinen Treffer mehr.
+.TP
+\fB\-G\fP\fI\ Gruppenliste\fP
+wählt nach realer Gruppenkennung (RGID) oder nach Namen aus. Dadurch werden
+die Prozesse ausgewählt, deren realer Gruppenname oder \-kennung in der
+\fIGruppenliste\fP aufgeführt ist. Die reale Gruppenkennung identifiziert die
+Gruppe des Benutzers, der den Prozess erstellt hat, siehe \fIgetgid\fP(2).
+.TP
+\fB\-g\fP\fI\ Gruppenliste\fP
+wählt nach Sitzung ODER effektivem Gruppennamen aus. Die Auswahl nach
+Sitzung wird durch zahlreiche Standards angegeben, aber die Auswahl nach
+effektiver Gruppe ist das logische Verhalten, das verschiedene andere
+Betriebssysteme verwenden. Diese Version von \fBps\fP wählt nach Sitzung aus,
+wenn die Liste vollständig numerisch ist (wie es bei Sitzungen der Fall
+ist). Mit Gruppenkennungen (ID\-Nummern) funktioniert es nur dann, wenn auch
+einige Gruppennamen angegeben werden. Siehe die Optionen \fB\-s\fP und
+\fB\-\-group\fP.
+.TP
+\fB\-\-Group\fP\fI\ Gruppenliste\fP
+wählt nach realer Gruppenkennung (RGID) oder Name aus. Gleichbedeutend mit
+\fB\-G\fP.
+.TP
+\fB\-\-group\fP\fI\ Gruppenliste\fP
+wählt nach effektiver Gruppenkennung (EGID) oder Name aus. Dadurch werden
+die Prozesse ausgewählt, deren effektiver Gruppenname oder \-kennung in der
+\fIGruppenliste\fP aufgeführt ist. Die effektive Gruppenkennung bezieht sich
+auf die Gruppe, deren Dateizugriffsrechte vom Prozess genutzt werden (siehe
+\fIgetegid\fP(2)). Die Option \fB\-g\fP ist häufig eine Alternative zu \fB\-\-group\fP.
+.TP
+\fBp\fP\fI\ PID\-Liste\fP
+wählt nach Prozesskennung (PID) aus. Gleichbedeutend mit \fB\-p\fP und \fB\-\-pid\fP.
+.TP
+\fB\-p\fP\fI\ PID\-Liste\fP
+wählt nach Prozesskennung (PID) aus. Dadurch werden die Prozesse ausgewählt,
+deren Prozesskennungen (ID\-Nummern) in der \fIPID\-Liste\fP aufgeführt
+sind. Gleichbedeutend mit \fBp\fP und \fB\-\-pid\fP.
+.TP
+\fB\-\-pid\fP\fI\ PID\-Liste\fP
+wählt nach Prozesskennung (PID) )aus. Gleichbedeutend mit \fB\-p\fP und \fBp\fP.
+.TP
+\fB\-\-ppid\fP\fI\ PID\-Liste\fP
+wählt nach Kennung des Elternprozesses aus. Dadurch werden die Prozesse
+ausgewählt, für die die Kennung eines Elternprozesses in der \fIPID\-Liste\fP
+aufgeführt ist. Das bedeutet, dass Prozesse ausgewählt werden, die
+Kindprozesse der Prozesse in der \fIPID\-Liste\fP sind.
+.TP
+\fBq\fP\fI\ PID\-Liste\fP
+wählt nach Prozesskennung (PID) aus (schneller Modus). Gleichbedeutend mit
+\fB\-q\fP und \fB\-\-quick\-pid\fP.
+.TP
+\fB\-q\fP\fI\ PID\-Liste\fP
+wählt nach Prozesskennung (PID) aus (schneller Modus). Dadurch werden die
+Prozesse ausgewählt, deren Prozesskennungen (ID\-Nummern) in der \fIPID\-Liste\fP
+aufgeführt sind. Mit dieser Option liest \fBps\fP die notwendigen Informationen
+nur für die in der \fIPID\-Liste\fP aufgeführten Prozesskennungen und wendet
+keine zusätzlichen Filterregeln an. Die Reihenfolge der Prozesskennungen ist
+unsortiert und wird beibehalten. In diesem Modus sind keine weiteren
+Auswahloptionen, Sortierungen und Waldtyp\-Auflistungen
+erlaubt. Gleichbedeutend mit \fBq\fP und \fB\-\-quick\-pid\fP.
+.TP
+\fB\-\-quick\-pid\fP\fI\ PID\-Liste\fP
+wählt nach Prozesskennung (PID) aus (schneller Modus). Gleichbedeutend mit
+\fB\-q\fP und \fBq\fP.
+.TP
+\fB\-s\fP\fI\ Sitzungsliste\fP
+wählt nach Sitzungskennung aus. Dies wählt alle Prozesse aus, deren
+Sitzungskennung in der \fISitzungsliste\fP enthalten ist.
+.TP
+\fB\-\-sid\fP\fI\ Sitzungsliste\fP
+wählt nach Sitzungskennung aus. Gleichbedeutend mit \fB\-s\fP.
+.TP
+\fBt\fP\fI\ TTY\-Liste\fP
+wählt nach TTY aus. Dies ist fast gleichbedeutend mit \fB\-t\fP und \fB\-\-tty\fP,
+kann aber auch mit einer leeren \fITTY\-Liste\fP verwendet werden, um das \fBps\fP
+zugeordnete Terminal zu bezeichnen. Die Verwendung der Option \fBT\fP wird als
+sauberer als die Option \fBt\fP mit einer leeren \fITTY\-Liste\fP betrachtet.
+.TP
+\fB\-t\fP\fI\ TTY\-Liste\fP
+wählt nach TTY aus. Dadurch werden die Prozesse ausgewählt, die den in der
+\fBTTY\-Liste\fP angegebenen Terminals zugeordnet sind. Terminals (TTYs oder
+Bildschirme für Textausgabe) können in verschiedenen Formen angegeben
+werden: /dev/ttyS1, ttyS1, S1. Ein einfaches »\-« kann verwendet werden, um
+Prozesse auszuwählen, die keinem Terminal zugeordnet sind.
+.TP
+\fB\-\-tty\fP\fI\ TTY\-Liste\fP
+wählt nach Terminal aus. Gleichbedeutend mit \fB\-t\fP und \fBt\fP.
+.TP
+\fBU\fP\fI\ Benutzerliste\fP
+wählt nach effektiver Benutzerkennung (EUID) oder Name aus. Dadurch werden
+die Prozesse ausgewählt, deren effektiver Benutzername oder \-kennung in der
+\fIBenutzerliste\fP aufgeführt ist. Die effektive Benutzerkennung bezieht sich
+auf den Benutzer, dessen Dateizugriffsrechte vom Prozess genutzt werden
+(siehe \fIgeteuid\fP(2)). Gleichbedeutend mit \fB\-u\fP und \fB\-\-user\fP.
+.TP
+\fB\-U\fP\fI\ Benutzerliste\fP
+wählt nach realer Benutzerkennung (RUID) oder nach Namen aus. Dadurch werden
+die Prozesse ausgewählt, deren realer Benutzername oder \-kennung in der
+\fIBenutzerliste\fP aufgeführt ist. Die reale Benutzerkennung identifiziert den
+Benutzer, der den Prozess erstellt hat, siehe \fIgetuid\fP(2).
+.TP
+\fB\-u\fP\fI\ Benutzerliste\fP
+wählt nach effektiver Benutzerkennung (EUID) oder Name aus. Dadurch werden
+die Prozesse ausgewählt, deren effektiver Benutzername oder \-kennung in der
+\fIBenutzerliste\fP aufgeführt ist.
+
+Die effektiver Benutzerkennung beschreibt den Benutzer, dessen
+Dateizugriffsrechte vom Prozess genutzt werden (siehe
+\fIgeteuid\fP(2)). Gleichbedeutend mit \fBU\fP und \fB\-\-user\fP.
+.TP
+\fB\-\-User\fP\fI\ Benutzerliste\fP
+wählt nach realer Benutzerkennung (RUID) oder Name aus. Gleichbedeutend mit
+\fB\-U\fP.
+.TP
+\fB\-\-user\fP\fI\ Benutzerliste\fP
+wählt nach effektiver Benutzerkennung (EUID) oder Name aus. Gleichbedeutend
+mit \fB\-u\fP und \fBU\fP.
+.PD
+.SH "STEUERUNG DES AUSGABEFORMATS"
+Diese Optionen werden dazu verwendet, die von \fBps\fP angezeigten
+Informationen auszuwählen. Die Ausgabe kann je nach
+Prozessausführungsumgebung variieren.
+.TP
+\fB\-c\fP
+zeigt verschiedene Scheduler\-Informationen für die Option \fB\-l\fP an.
+.TP
+\fB\-\-context\fP
+zeigt das Format des Sicherheitskontexts an (für SELinux).
+.TP
+\fB\-f\fP
+zeigt eine Auflistung im Vollformat an. Diese Option kann mit vielen anderen
+Optionen im UNIX\-Stil kombiniert werden, um zusätzliche Spalten
+hinzuzufügen. Außerdem bewirkt die Option, dass die Befehlsargumente
+ausgegeben werden. Wenn Sie die Option zusammen mit \fB\-L\fP verwenden, werden
+die Spalten NLWP (Anzahl der Threads) und LWP (Threadkennung)
+hinzugefügt. Siehe die Option \fBc\fP sowie die Formatschlüsselwörter \fBargs\fP
+und \fBcomm\fP.
+.TP
+\fB\-F\fP
+zeigt eine Auflistung im erweiterten Vollformat an. Siehe die Option \fB\-f\fP,
+welche \fB\-F\fP impliziert.
+.TP
+\fB\-\-format\fP\fI\ Format\fP
+zeigt im benutzerdefinierten Format an. Gleichbedeutend mit \fB\-o\fP und \fBo\fP.
+.TP
+\fBj\fP
+BSD\-Jobsteuerung\-Format.
+.TP
+\fB\-j\fP
+Job\-Format.
+.TP
+\fBl\fP
+zeigt das lange BSD\-Format an.
+.TP
+\fB\-l\fP
+Langes Format. Die Option \fB\-y\fP ist oft dafür nützlich.
+.TP
+\fB\-M\fP
+fügt eine Spalte mit sicherheitsrelevanten Daten hinzu. Gleichbedeutend mit
+\fBZ\fP (für SELinux).
+.TP
+\fBO\fP\fI\ Format\fP
+ist ein vorgeladenes \fBo\fP (überladen). Die BSD\-Option \fBO\fP kann wie \fB\-O\fP
+agieren (benutzerdefiniertes Ausgabeformat mit einigen vordefinierten häufig
+genutzten Feldern) oder dazu verwendet werden, die Sortierreihenfolge
+anzugeben. Das Verhalten dieser Option wird heuristisch bestimmt. Um das
+gewünschte Verhalten sicherzustellen (Sortierung oder Formatierung), geben
+Sie die Option auf eine andere Weise an (zum Beispiel mit \fB\-O\fP oder
+\fB\-\-sort\fP). Wenn Sie sie als Formatierungsoption verwenden, ist sie in der
+BSD\-Prozessausführungsumgebung gleichbedeutend mit \fB\-O\fP.
+.TP
+\fB\-O\fP\fI\ Format\fP
+ist ähnlich zu \fB\-o\fP, aber mit einigen Standardspalten
+vorgeladen. Gleichbedeutend mit \fB\-o\ PID,\:\fP\fIFormat\fP\fB,\:Status,\:tName,\:Zeit,\:Befehl\fP oder \fB\-o\ PID,\:\fP\fIFormat\fP\fB,\:tName,\:Zeit,\:Befehl\fP, siehe \fB\-o\fP nachfolgend.
+.TP
+\fBo\fP\fI\ Format\fP
+legt das benutzerdefinierte Format fest. Gleichbedeutend mit \fB\-o\fP und
+\fB\-\-format\fP.
+.TP
+\fB\-o\fP\fI\ Format\fP
+legt das benutzerdefinierte Format fest. Das \fIFormat\fP ist ein einzelnes
+Argument in der From einer durch Leerräume oder Kommata getrennten Liste,
+die eine Möglichkeit bietet, individuelle Ausgabespalten anzugeben. Die
+erkannten Schlüsselwörter sind im nachfolgenden Abschnitt
+\fBSTANDARD\-FORMATBEZEICHNER\fP beschrieben. Kopfzeilen dürfen nach Wunsch
+umbenannt werden (\fBps \-o PID,\:ruser=echter_Benutzer \-o comm=Befehl\fP). Falls alle Spaltenüberschriften leer sind (\fBps \-o pid= \-o comm=\fP), wird keine Kopfzeile ausgegeben. Die Spaltenbreite wird bei
+breiteren Ãœberschriften angepasst; das kann zur Verbreiterung von Spalten
+wie WCHAN (\fBps \-o PID,\:wchan=\:WIDE\-\:WCHAN\-\:COLUMN \-o comm\fP) angewendet
+werden. Eine explizite Steuerung der Breite ist ebenfalls möglich (\fBps opid,\:wchan:42,\:cmd\fP). Das Verhalten von \fBps \-o pid=X,\:comm=Y\fP variiert
+je nach Prozessausführungsumgebung; die Ausgabe kann in einer Spalte namens
+»X,\:comm=Y« oder in zwei Spalten namens »X« und »Y« erfolgen. Im Zweifel
+sollten Sie die Option \fB\-o\fP mehrmals verwenden. Mit der Umgebungsvariable
+\fBPS_FORMAT\fP können Sie eine Vorgabe nach Ihrem Wunsch festlegen; DefSysV
+und DefBSD sind Makros, die Sie zur Wahl der standardmäßigen UNIX\- oder
+BSD\-Spalten verwenden können.
+.TP
+\fB\-P\fP
+Add a column showing \fBpsr\fP.
+.TP
+\fBs\fP
+zeigt im Signalformat an.
+.TP
+\fBu\fP
+zeigt im benutzerorientierten Format an.
+.TP
+\fBv\fP
+zeigt im virtuellen Speicherformat an.
+.TP
+\fBX\fP
+zeigt im Registerformat an.
+.TP
+\fB\-y\fP
+zeigt keine Schalter an; statt \fBaddr\fP wird \fBrss\fP angezeigt. Diese Option
+kann nur zusammen mit \fB\-l\fP verwendet werden.
+.TP
+\fBZ\fP
+fügt eine Spalte mit sicherheitsrelevanten Daten hinzu. Gleichbedeutend mit
+\fB\-M\fP (für SELinux).
+.PD
+.SH AUSGABE\-MODIFIKATOREN
+.TP
+\fBc\fP
+zeigt den echten Befehlsnamen an. Dieser wird aus dem Namen der ausführbaren
+Datei statt aus dem Wert von argv abgeleitet. Befehlsargumente und deren
+eventuelle Änderungen werden daher nicht angezeigt. Diese Option verwandelt
+das Formatschlüsselwort \fBargs\fP effektiv in das Formatschlüsselwort \fBcomm\fP;
+sie ist mit der Formatoption \fB\-f\fP und den verschiedenen Formatoptionen im
+BSD\-Stil nützlich, welche alle normalerweise die Befehlsargumente
+anzeigen. Siehe die Option \fB\-f\fP sowie die Formatschlüsselwörter \fBargs\fP und
+\fBcomm\fP.
+.TP
+\fB\-\-cols\fP\fI\ n\fP
+legt die Bildschirmbreite fest.
+.TP
+\fB\-\-columns\fP\fI\ n\fP
+legt die Bildschirmbreite fest.
+.TP
+\fB\-\-cumulative\fP
+fügt einige Daten toter Kindprozesse hinzu (als Summe mit den
+Elternprozessen).
+.TP
+.TP
+\fB\-D\fP\fI\ Format\fP
+Set the date format of the \fBlstart\fP field to \fIformat\fP. This format is
+parsed by \fBstrftime\fP(3) and should be a maximum of 24 characters to not
+mis\-align columns.
+.TP
+\fB\-\-date\-format\fP\fI\ Format\fP
+ist gleichbedeutend mit \fB\-D\fP.
+.TP
+\fBe\fP
+zeigt die Umgebung nach dem Befehl an.
+.TP
+\fBf\fP
+zeigt die Prozesshierarchie in ASCII\-Art an (Wald).
+.TP
+\fB\-\-forest\fP
+zeigt einen Prozessbaum in ASCII\-Art an.
+.TP
+\fBh\fP
+zeigt keine Kopfzeilen an (oder eine Kopfzeile pro Bildschirm in der
+BSD\-Prozessausführungsumgebung). Die Option \fBh\fP ist problematisch. Das
+standardmäßige \fBps\fP in BSD verwendet diese Option, um eine Kopfzeile auf
+jeder Seite der Ausgabe anzuzeigen, ältere Linux\-Versionen von \fBps\fP
+hingegen unterdrücken damit die Anzeige der Kopfzeile komplett. Diese
+Version von \fBps\fP gibt keine Kopfzeilen aus und folgt damit dem
+Linux\-Verhalten. Nur wenn die BSD\-Prozessausführungsumgebung ausgewählt ist,
+wird eine Kopfzeile auf jeder Seite der Ausgabe angezeigt. Unabhängig von
+der aktuellen Prozessausführungsumgebung können Sie die Langoptionen
+\fB\-\-headers\fP bzw. \fB\-\-no\-headers\fP dazu verwenden, um die Anzeige der
+Kopfzeilen auf jeder Seite zu aktivieren oder vollständig zu deaktivieren.
+.TP
+\fB\-H\fP
+zeigt die Prozesshierarchie an (Waldansicht).
+.TP
+\fB\-\-headers\fP
+wiederholt die Kopfzeilen jeweils einmal pro ausgegebener Seite.
+.TP
+\fBk\fP\fI\ Spez\fP
+legt die Sortierreihenfolge fest. Die Sortierungssyntax ist
+[\fB+\fP|\fB\-\fP]\fISchlüssel\/\fP[,[\fB+\fP|\fB\-\fP]\fISchlüssel\fP[, …]]. Wählen Sie einen
+aus mehreren Buchstaben bestehenden Schlüssel aus dem Abschnitt
+\fBSTANDARD\-FORMATBEZEICHNER\fP. Das »+« ist optional, da die
+Standardsortierung nach der ansteigenden numerischen oder lexikographischen
+Reihenfolge vorgenommen wird. Gleichbedeutend mit \fB\-\-sort\fP.
+.RS 8
+.IP
+Beispiele:
+.br
+\fBps jaxkuid,\-ppid,+pid\fP
+.br
+\fBps axk comm o comm,args\fP
+.br
+\fBps kstart_time \-ef\fP
+.RE
+.TP
+\fB\-\-lines\fP\fI\ n\fP
+legt die Bildschirmhöhe fest.
+.TP
+\fBn\fP
+aktiviert die numerische Ausgabe für WCHAN und USER (einschließlich aller
+UID\- und GID\-Typen).
+.TP
+\fB\-\-no\-headers\fP
+unterdrückt die Ausgabe jeglicher Kopfzeilen. \fB\-\-no\-heading\fP ist ein Alias
+für diese Option.
+.TP
+\fBO\fP\fI\ Reihenfolge\fP
+legt die Sortierreihenfolge fest (überladen). Die BSD\-Option \fBO\fP kann wie
+\fB\-O\fP agieren (benutzerdefiniertes Ausgabeformat mit einigen vordefinierten
+häufig genutzten Feldern) oder dazu verwendet werden, die Sortierreihenfolge
+anzugeben. Das Verhalten dieser Option wird heuristisch bestimmt. Um das
+gewünschte Verhalten sicherzustellen (Sortierung oder Formatierung), geben
+Sie die Option auf eine andere Weise an (zum Beispiel mit \fB\-O\fP oder
+\fB\-\-sort\fP).
+.IP
+Für die Sortierung ist \fBO\fP[\fB+\fP|\fB\-\fP]\fIk1\fP[,[\fB+\fP|\fB\-\fP]\fIk2\fP[, …]] die
+Syntax der veralteten BSD\-Option \fBO\fP. Es ordnet die Prozessliste anhand der
+mehrstufigen Sortierung gemäß der einbuchstabigen Kurzschlüssel \fIk1\fP,
+\fIk2\fP, … , die nachfolgend im Abschnitt \fBVERALTETE SORTIERSCHLÜSSEL\fP
+beschrieben sind. Das »+« ist derzeit optional, es wiederholt nur die
+Standardrichtung eines Schlüssels, aber kann dabei helfen, Sortierungen nach
+\fBO\fP von einem Format \fBO\fP zu unterscheiden. Das »\-« kehrt die Richtung nur
+für den Schlüssel um, dem es vorangestellt ist.
+.TP
+\fB\-\-rows\fP\fI\ n\fP
+legt die Bildschirmhöhe fest.
+.TP
+\fBS\fP
+addiert Informationen, wie die CPU\-Nutzung, aus den Informationen toter
+Kindprozesse und denen ihrer Elternprozesse. Dies ist nützlich, wenn Sie ein
+System untersuchen wollen, in dem ein Elternprozess fortwährend kurzlebige
+Kindprozesse mit fork() erstellt, um arbeiten zu können.
+.TP
+\fB\-\-sort\fP\fI\ Spez\fP
+legt die Sortierreihenfolge fest. Die Sortierungssyntax ist
+[\fI+\fP|\fI\-\fP]\fISchlüssel\fP[,[\fB+\fP|\fB\-\fP]\fISchlüssel\fP[, …]]. Wählen Sie einen aus
+mehreren Buchstaben bestehenden Schlüssel aus dem Abschnitt
+\fBSTANDARD\-FORMATBEZEICHNER\fP. Das »+« ist optional, da die
+Standardsortierung nach der aufsteigenden numerischen oder lexikographischen
+Reihenfolge vorgenommen wird. Gleichbedeutend mit \fBk\fP. Beispiel: \fBps jax \-\-sort=\:uid,\:\-ppid,\:+pid\fP
+.TP
+\fB\-\-signames\fP
+zeigt Signalmasken mittels abgekürzter Signalnamen an und passt die Spalte
+an. Falls die Spaltenbreite nicht alle Signale anzeigen kann, endet die
+Spalte mit einem Plus\-Zeichen (»+«). Spalten, die nur einen Bindestrich
+enthalten, haben keine Signale.
+.TP
+\fBw\fP
+aktiviert die breite Ausgabe. Verwenden Sie diese Option zweimal, um die
+Breite auf unbegrenzt zu setzen.
+.TP
+\fB\-w\fP
+aktiviert die breite Ausgabe. Verwenden Sie diese Option zweimal, um die
+Breite auf unbegrenzt zu setzen.
+.TP
+\fB\-\-width\fP\fI\ n\fP
+legt die Bildschirmbreite fest.
+.PD
+.SH THREAD\-ANZEIGE
+.TP
+\fBH\fP
+zeigt Threads so an, als wären sie Prozesse.
+.TP
+\fB\-L\fP
+zeigt Threads an, eventuell mit den Spalten LWP und NLWP.
+.TP
+\fBm\fP
+zeigt Threads nach Prozessen an.
+.TP
+\fB\-m\fP
+zeigt Threads nach Prozessen an.
+.TP
+\fB\-T\fP
+zeigt Threads an, möglicherweise mit einer SPID\-Spalte.
+.SH "WEITERE INFORMATIONEN"
+.TP
+\fB\-\-Hilfe\fP\fI\ Abschnitt\fP
+gibt eine Hilfemeldung aus. Das Argument \fIAbschnitt\fP kann eines aus
+\fIs\fPimple, \fIl\fPist, \fIo\fPutput, \fIt\fPhreads, \fIm\fPisc oder \fIa\fPll sein. Das
+Argument kann wie folgt auf einen der unterstrichenen Buchstaben gekürzt
+werden: s\^|\^l\^|\^o\^|\^t\^|\^m\^|\^a.
+.TP
+\fB\-\-info\fP
+gibt Informationen zur Fehlerdiagnose aus.
+.TP
+\fBL\fP
+listet alle Formatbezeichner auf.
+.TP
+\fBV\fP
+gibt die Version von Procps\-ng aus.
+.TP
+\fB\-V\fP
+gibt die Version von Procps\-ng aus.
+.TP
+\fB\-\-version\fP
+gibt die Version von Procps\-ng aus.
+.SH ANMERKUNGEN
+Diese Version von \fBps\fP basiert auf dem Auslesen virtueller Dateien in
+/proc. Diese Version von \fBps\fP muss nicht setuid »kmem« sein oder zur
+Ausführung über irgendwelche Privilegien verfügen. Geben Sie dieser Version
+von \fBps\fP keine besonderen Rechte.
+.PP
+Die CPU\-Nutzung wird derzeit als der Prozentwert der während der gesamten
+Lebensdauer verwendeten Laufzeit ausgedrückt. Das ist nicht ideal und ist
+nicht zu den Standards konform, an denen sich \fBps\fP ansonsten orientiert. Es
+ist unwahrscheinlich, dass die Summe der CPU\-Nutzung 100% erreicht.
+.PP
+Die Felder SIZE und RSS zählen einige Teile des Prozesses nicht, wie die
+Seitentabellen, den Kernel\-Stack, die Structs »thread_info« und
+»task_struct«. Dies ergibt üblicherweise mindestens 20 KiB Speicher, die
+immer belegt sind. SIZE ist die virtuelle Größe des Prozesses
+(Code+\:Daten+\:Stack).
+.PP
+Als <defunct> markierte Prozesse sind tote Prozesse (sogenannte
+»Zombies«). Diese sind deswegen noch vorhanden, weil deren Elternprozesse
+sie nicht sauber beendet haben. Diese Prozesse werden durch \fIinit\fP(8)
+zerstört, sofern der Elternprozess existiert.
+.PP
+Falls der Benutzername länger ist als die Breite der Anzeigespalte, wird der
+Benutzername gekürzt. Mit den Formatierungsoptionen \fB\-o\fP und \fB\-O\fP können
+Sie die Breite anpassen.
+.PP
+Von Befehlszeilenoptionen wie \fBps \-aux\fP wird abgeraten, da sie zwei
+Standards vermischen. Entsprechend den POSIX\- und UNIX\-Standards bewirkt der
+vorstehende Befehl die Anzeige aller Prozesse mit einem TTY (im Allgemeinen
+die Befehle, die Benutzer ausführen) und zusätzlich aller Prozesse, die
+einem Benutzer namens \fIx\fP gehören. Existiert dieser Benutzer nicht, wird
+\fBps\fP annehmen, dass Sie eigentlich \fBps\fP \fIaux\fP meinten.
+.SH PROZESSSCHALTER
+Die Summe dieser Werte wird in der Spalte »F« angezeigt, die durch den
+Ausgabebezeichner \fBflags\fP bereitgestellt wird:
+.PP
+.RS 8
+.PD 0
+.TP 5
+1
+mit fork() erstellt, aber nicht ausgeführt
+.TP
+4
+Superuser\-Privilegien verwendet
+.PD
+.RE
+.SH PROZESSZUSTANDSCODES
+Dies sind die verschiedenen Werte, welche die Ausgabebezeichner \fBs\fP,
+\fBstat\fP und \fBstate\fP (Überschrift »STAT« oder »S«) anzeigen, um den Status
+eines Prozesses zu beschreiben:
+.PP
+.RS 8
+.PD 0
+.TP 5
+D
+Nicht unterbrechbarer Schlafzustand (üblicherweise E/A)
+.TP
+I
+Kernel\-Thread im Leerlauf
+.TP
+R
+Laufend oder lauffähig (in der Ausführungswarteschlange)
+.TP
+S
+Unterbrechbarer Schlafzustand (auf den Abschluss eines Ereignisses wartend)
+.TP
+T
+Durch Jobsteuersignal gestoppt
+.TP
+t
+Durch Debugger während der Verfolgung gestoppt
+.TP
+W
+Paging (ungültig seit Kernel 2.6.xx)
+.TP
+X
+Tot (sollte niemals angezeigt werden)
+.TP
+Z
+Defunktionaler (»Zombie«\-) Prozess, beendet, aber durch seinen Elternprozess
+nicht aufgeräumt
+.PD
+.RE
+.PP
+Für BSD\-Formate und bei Verwendung des Schlüsselworts \fBstat\fP können
+zusätzliche Zeichen angezeigt werden:
+.PP
+.RS 8
+.PD 0
+.TP 5
+<
+Hohe Priorität (nicht »nice« zu anderen Benutzern)
+.TP
+N
+Niedrige Priorität (»nice« zu anderen Benutzern)
+.TP
+L
+Hat im Speicher gesperrte Seiten (für Echtzeit\- und benutzerdefinierte E/A)
+.TP
+s
+Ist ein Sitzungsleiter
+.TP
+l
+Ist multi\-threaded (mittels CLONE_THREAD, wie es NPTL\-Pthreads tun)
+.TP
++
+Ist in der Vordergrund\-Prozessgruppe
+.PD
+.RE
+.SH "VERALTETE SORTIERSCHLÃœSSEL"
+Diese Schlüssel werden von der BSD\-Option \fBO\fP verwendet (wenn diese zur
+Sortierung verwendet wird). Die GNU\-Option \fB\-\-sort\fP verwendet diese
+Schlüssel nicht, sondern die im nachfolgenden Abschnitt
+\fBSTANDARD\-FORMATBEZEICHNER\fP beschriebenen Schlüssel. Beachten Sie, dass die
+in der Sortierung verwendeten Werte die internen Werte sind, die \fBps\fP
+nutzt, und nicht die »verarbeiteten« Werte, die in einigen der
+Ausgabeformat\-Felder verwendet werden (zum Beispiel wird bei der Sortierung
+nach TTY anhand der Gerätenummern sortiert und nicht anhand des angezeigten
+Terminalnamens). Leiten Sie die Ausgabe von \fBps\fP an den Befehl \fBsort\fP
+weiter, wenn Sie nach den verarbeiteten Werten sortieren wollen.
+.TS
+l l lw(3i).
+\fBSCHLÃœSSEL\fP \fBLANG\fP \fBBESCHREIBUNG\fP
+c cmd Einfacher Name der ausführbaren Datei
+C pcpu CPU\-Nutzung
+f flags Schalter, wie im F\-Feld im Langformat
+g pgrp Prozessgruppenkennung
+G tpgid Prozessgruppenkennung des steuernden TTY
+j cutime Kumulative Benutzerzeit
+J cstime Kumulative Systemzeit
+k utime Benutzerzeit
+m min_flt Anzahl der geringfügigen Seitenfehlerausnahmebehandlungen
+M maj_flt Anzahl der großen Seitenfehlerausnahmebehandlungen
+n cmin_flt Kumulierte Anzahl der geringfügigen Seitenfehlerausnahmebehandlungen
+N cmaj_flt Kumulierte Anzahl der großen Seitenfehlerausnahmebehandlungen
+o session Sitzungskennung
+p pid Prozesskennung
+P ppid Kennung des Elternprozesses
+r rss Hauptspeicherbelegung
+R resident Seiten in der Hauptspeicherbelegung
+s size Speichergröße in Kilobyte
+S share Menge der gemeinsam genutzten Seiten
+t tty Die Gerätenummer des steuernden TTY
+T start_time Zeit, zu der der Prozess gestartet wurde
+U uid Benutzerkennung (ID)
+u user Benutzername
+v vsize Gesamtgröße des virtuellen Speichers in KiB
+y priority Scheduling\-Priorität des Kernels
+.\"K stime system time (conflict, system vs. start time)
+.TE
+.SH AIX\-FORMATDESKRIPTOREN
+Diese Version von \fBps\fP unterstützt AIX\-Formatdeskriptoren, die ähnlich den
+Formatierungscodes von \fIprintf\fP(1) und \fIprintf\fP(3) funktionieren. Die
+normale, standardmäßige Ausgabe kann folgendermaßen erzeugt werden: \fBps \-eo "%p %y %x %c"\fP. Die \fBNORMAL\fP\-Codes sind im nächsten Abschnitt beschrieben.
+.TS
+l l l.
+\fBCODE\fP \fBNORMAL\fP \fBKOPFZEILE\fP
+%C pcpu %CPU
+%G group GROUP
+%P ppid PPID
+%U user USER
+%a args BEFEHL
+%c comm BEFEHL
+%g rgroup RGROUP
+%n nice NI
+%p pid PID
+%r pgid PGID
+%t etime ELAPSED
+%u ruser RUSER
+%x time TIME
+%y tty TTY
+%z vsz VSZ
+.TE
+.SH STANDARD\-FORMATBEZEICHNER
+Hier sind die verschiedenen Schlüsselwörter, die zum Steuern des
+Ausgabeformats (zum Beispiel mit der Option \fB\-o\fP) oder zum Sortieren der
+ausgewählten Prozesse mit der GNU\-artigen Option \fB\-\-sort\fP verwendet werden
+können.
+.PP
+Beispiel: \fBps \-eo pid,\:user,\:args \-\-sort user\fP
+.PP
+Diese Version von \fBps\fP versucht, die meisten der in anderen
+Implementierungen von \fBps\fP verwendeten Schlüsselwörter zu erkennen.
+.PP
+Die folgenden benutzerdefinierten Formatbezeichner dürfen Leerräume
+enthalten: \fBargs\fP, \fBcmd\fP, \fBcomm\fP, \fBcommand\fP, \fBfname\fP, \fBucmd\fP,
+\fBucomm\fP, \fBlstart\fP, \fBbsdstart\fP, \fBstart\fP.
+.PP
+Einige Schlüsselwörter könnten nicht für die Sortierung verfügbar sein.
+
+.\" #######################################################################
+.\" lB1 lB1 lB1 lB1 s s s
+.\" lB1 l1 l1 l1 s s s.
+.\"
+.\" lB1 lB1 lBw(5.5i)
+.\" lB1 l1 l.
+.\"
+.TS
+expand;
+l1B l1B lBw(\n[ColSize]n)
+l1B l1 l.
+CODE HEADER BESCHREIBUNG
+
+%cpu %CPU T{
+CPU\-Nutzung des Prozesses im Format »##.#«. Gegenwärtig ist es die CPU\-Zeit dividiert durch die Zeit, die der Prozess bisher läuft (CPU\-Zeit/Echtzeit\-Verhältnis), ausgedrückt als Prozentwert. Wenn Sie nicht gerade Glück haben, wird dieser Wert nicht auf 100% aufsummieren (alias \fBpcpu\fP).
+T}
+
+%mem %MEM T{
+Prozentuales Verhältnis der Hauptspeicherbelegung des Prozesses (»resident set size«) zur Größe des physischen Speichers der Maschine (alias \fBpmem\fP).
+T}
+
+ag_id AGID T{
+The autogroup identifier associated with a process which operates in conjunction
+with the CFS scheduler to improve interactive desktop performance.
+T}
+
+ag_nice AGNI T{
+The autogroup nice value which affects scheduling of all processes in that group.
+T}
+
+args BEFEHL T{
+Befehl mit allen seinen Argumenten als Zeichenkette. Modifikationen der Argumente können angezeigt werden. Die Ausgabe in dieser Spalte darf Leerräume enthalten. Ein als <defunct> markierter Prozess ist teilweise tot und wartet darauf, von seinem Elternprozess endgültig zerstört zu werden. Gelegentlich sind die Argumente des Prozesses nicht verfügbar. Falls die passiert, gibt \fBps\fP stattdessen den Namen der ausführbaren Datei in Klammern aus (alias \fBcmd\fP, \fBcommand\fP). Siehe auch das Formatschlüsselwort \fBcomm\fP sowie die Optionen \fB\-f\fP und \fBc\fP.
+.br
+Wenn dies als Letztes angegeben wird, dann wird die letzte Spalte bis zum Rand des Bildschirms verbreitert. Falls \fBps\fP die Bildschirmbreite nicht ermitteln kann, wenn die Ausgabe beispielsweise in eine Datei oder an einen anderen Befehl weitergeleitet wird, ist die Ausgabebreite nicht definiert (sie könnte 80, unbegrenzt, durch die Variable \fBTERM\fP bestimmt usw. sein). Die Umgebungsvariable \fBCOLUMNS\fP oder die Option \fB\-\-cols\fP können dazu verwendet werden, in diesem Fall die Breite genau festzulegen. Die Optionen \fBw\fP oder \fB\-w\fP können auch zur Anpassung der Breite verwendet werden.
+T}
+
+blocked BLOCKED T{
+Maske der blockierten Signale, siehe \fIsignal\fP(7). Entsprechend der Feldbreite wird eine 32\- oder 64\-Bit\-Maske in hexadezimalem Format angezeigt, außer wenn die Option \fB\-\-signames\fP verwendet wird (alias \fBsig_block\fP, \fBsigmask\fP).
+T}
+
+bsdstart START T{
+Zeitpunkt, zu dem der Befehl gestartet wurde. Falls der Prozess vor weniger als 24 Stunden gestartet wurde, ist das Ausgabeformat »\ HH:MM«, anderenfalls ist es » Mmm:SS« (wobei Mmm die aus drei Buchstaben bestehende Kurzform des Monats ist). Siehe auch \fBlstart\fP, \fBstart\fP, \fBstart_time\fP und \fBstime\fP.
+T}
+
+bsdtime TIME T{
+Kumulierte CPU\-Zeit, Benutzer + System. Das Anzeigeformat ist üblicherweise »MMM:SS«, kann aber auch nach rechts verschoben werden, falls der Prozess mehr als 999 Minuten CPU\-Zeit verbraucht hat.
+T}
+
+c C T{
+Prozessornutzung. Gegenwärtig ist dies der ganzzahlige Wert der prozentualen Nutzung über die gesamte Lebensdauer des Prozesses (siehe \fB%cpu\fP).
+T}
+
+caught CAUGHT T{
+Maske der abgefangenen Signale, siehe \fIsignal\fP(7). Entsprechend der Feldbreite wird eine 32\- oder 64\-Bit\-Maske in hexadezimalem Format angezeigt, außer wenn die Option \fB\-\-signames\fP verwendet wird (alias \fBsig_catch\fP,\fB\ sigcatch\fP).
+T}
+
+cgname CGNAME T{
+zeigt den Namen der Control\-Gruppen an, zu denen der Prozess gehört.
+T}
+
+cgroup CGROUP T{
+zeigt die Control\-Gruppen an, zu denen der Prozess gehört.
+T}
+
+cgroupns CGROUPNS T{
+Eindeutige Inode\-Nummer, welche den Namennsraum angibt, zu dem der
+Prozess gehört. Siehe \fInamespaces\fP(7).
+T}
+
+class CLS T{
+Scheduling\-Klasse des Prozesses (alias \fBpolicy\fP, \fBcls\fP). Mögliche Werte des Feldes sind:
+.sp 1
+.in +9n
+\- nicht berichtet
+.br
+TS SCHED_OTHER
+.br
+FF SCHED_FIFO
+.br
+RR SCHED_RR
+.br
+B SCHED_BATCH
+.br
+ISO SCHED_ISO
+.br
+IDL SCHED_IDLE
+.br
+DLN SCHED_DEADLINE
+.br
+? unbekannter Wert
+.in
+T}
+
+cls CLS T{
+Scheduling\-Klasse des Prozesses (alias \fBpolicy\fP, \fBcls\fP). Mögliche Werte des Feldes sind:
+.sp 1
+.in +9n
+\- nicht berichtet
+.br
+TS SCHED_OTHER
+.br
+FF SCHED_FIFO
+.br
+RR SCHED_RR
+.br
+B SCHED_BATCH
+.br
+ISO SCHED_ISO
+.br
+IDL SCHED_IDLE
+.br
+DLN SCHED_DEADLINE
+.br
+? unbekannter Wert
+.in
+T}
+
+cmd CMD T{
+Siehe \fBargs\fP (alias \fBargs\fP, \fBcommand\fP).
+T}
+
+comm BEFEHL T{
+command name (only the executable name). The output in this column may
+contain spaces.
+(alias
+\fBucmd\fP, \fBucomm\fP).
+See also the
+\fBargs\fP
+format keyword, the
+\fB\-f\fP
+option, and the
+\fBc\fP
+option.
+.br
+Wenn dies als Letztes angegeben wird, dann wird die letzte Spalte bis zum Rand des Bildschirms verbreitert. Falls \fBps\fP die Bildschirmbreite nicht ermitteln kann, wenn die Ausgabe beispielsweise in eine Datei oder an einen anderen Befehl weitergeleitet wird, ist die Ausgabebreite nicht definiert (sie könnte 80, unbegrenzt, durch die Variable \fBTERM\fP bestimmt usw. sein). Die Umgebungsvariable \fBCOLUMNS\fP oder die Option \fB\-\-cols\fP können dazu verwendet werden, in diesem Fall die Breite genau festzulegen. Die Optionen \fBw\fP oder \fB\-w\fP können auch zur Anpassung der Breite verwendet werden.
+T}
+
+command BEFEHL T{
+Siehe \fBargs\fP (alias \fBargs\fP, \fBBefehl\fP).
+T}
+
+cp CP T{
+CPU\-Nutzung in Promille (dem Zehntel eines Prozents; siehe \fB%cpu\fP).
+T}
+
+cputime TIME T{
+Kumulative CPU\-Zeit im Format »[TT\-]hh:mm:ss« (alias \fBtime\fP).
+T}
+
+cputimes TIME T{
+Kumulative CPU\-Zeit in Sekunden (alias \fBtimes\fP).
+T}
+
+cuc %CUC T{
+The CPU utilization of a process, including dead children, in an extended "##.###" format.
+(see also
+\fB%cpu\fP,
+\fBc\fP,
+\fBcp\fP,
+\fBcuu\fP,
+\fBpcpu\fP).
+T}
+
+cuu %CUU T{
+The CPU utilization of a process in an extended "##.###" format.
+(see also
+\fB%cpu\fP,
+\fBc\fP,
+\fBcp\fP,
+\fBcuc\fP,
+\fBpcpu\fP).
+T}
+
+drs DRS T{
+data resident set size, the amount of private memory \fIreserved\fP by a process.
+It is also known as DATA. Such memory may not yet be mapped to
+\fBrss\fP
+but will always be included
+included in the
+\fBvsz\fP
+amount.
+
+T}
+
+egid EGID T{
+Effektive Gruppenkennung (ID\-Nummer) des Prozesses als dezimale Ganzzahl (alias \fBgid\fP).
+T}
+
+egroup EGROUP T{
+Effektive Gruppenkennung des Prozesses. Dies wird die Gruppenkennung in Textform, falls diese ermittelt werden kann und es die Feldbreite erlaubt, oder anderenfalls eine Dezimaldarstellung sein (alias \fBgroup\fP).
+T}
+
+eip EIP T{
+instruction pointer. As of kernel 4.9.xx will be zeroed out unless task is
+exiting or being core dumped.
+T}
+
+esp ESP T{
+stack pointer. As of kernel 4.9.xx will be zeroed out unless task is
+exiting or being core dumped.
+T}
+
+etime ELAPSED T{
+Vergangene Zeit, seit der Prozess gestartet wurde, in der Form [[TT\-]hh:]mm:ss.
+T}
+
+etimes ELAPSED T{
+Vergangene Zeit, seit der Prozess gestartet wurde, in Sekunden.
+T}
+
+euid EUID T{
+Effektive Benutzerkennung (alias
+\fBuid\fP).
+T}
+
+euser EUSER T{
+Effektiver Benutzername. Dies wird die Benutzerkennung in Textform, falls diese ermittelt werden kann und die Feldgröße es erlaubt, oder anderenfalls eine Dezimaldarstellung sein. Die Option \fBn\fP kann zum Erzwingen der Dezimaldarstellung verwendet werden (alias \fBuname\fP, \fBuser\fP).
+T}
+
+exe EXE T{
+Pfad zur ausführbaren Datei. Dies ist sinnvoll, wenn der Pfad
+nicht über die Formatierungsoptionen \fBcmd\fP, \fBcomm\fP
+oder \fBargs\fP ausgegeben werden kann.
+T}
+
+f F T{
+Dem Prozess zugehörige Schalter, siehe den Abschnitt \fBPROZESSSCHALTER\fP (alias \fBflag\fP, \fBflags\fP).
+T}
+
+fgid FGID T{
+Dateisystemzugriffsgruppenkennung (alias \fBfsgid\fP).
+T}
+
+fgroup FGROUP T{
+Dateisystemzugriffsgruppenkennung. Dies wird die Gruppenkennung in Textform, falls diese ermittelt werden kann und es die Feldgröße erlaubt, oder anderenfalls eine Dezimaldarstellung sein (alias \fBfsgroup\fP).
+T}
+
+flag F T{
+Siehe \fBf\fP (alias \fBf\fP, \fBflags\fP).
+T}
+
+flags F T{
+Siehe \fBf\fP (alias \fBf\fP, \fBflag\fP).
+T}
+
+fname BEFEHL T{
+Die ersten 8 Byte des Basisnamens der ausführbaren Datei des Prozesses. Die Ausgabe in dieser Spalte kann Leerräume enthalten.
+T}
+
+fuid FUID T{
+Dateisystemzugriffsbenutzerkennung (alias \fBfsuid\fP).
+T}
+
+fuser FUSER T{
+Dateisystemzugriffsbenutzerkennung. Dies wird die Benutzerkennung in Textform, falls diese ermittelt werden kann und es die Feldgröße erlaubt, oder anderenfalls eine Dezimaldarstellung sein.
+T}
+
+gid GID T{
+Siehe \fBegid\fP (alias \fBegid\fP).
+T}
+
+group GROUP T{
+Siehe \fBegroup\fP (alias \fBegroup\fP).
+T}
+
+ignored IGNORED T{
+Maske der ignorierten Signale, siehe \fIsignal\fP(7). Entsprechend der Feldbreite wird eine 32\- oder 64\-Bit\-Maske in hexadezimalem Format angezeigt, außer wenn die Option \fB\-\-signames\fP verwendet wird (alias \fBsig_ignore\fP, \fBsigignore\fP).
+T}
+
+ipcns IPCNS T{
+Eindeutige Inode\-Nummer, welche den Namennsraum angibt, zu dem der
+Prozess gehört. Siehe \fInamespaces\fP(7).
+T}
+
+label LABEL T{
+Sicherheitslabel, das am häufigsten für SELinux\-Kontextdaten verwendet wird. Dies ist für die \fIMandatory Access Control\fP (»MAC«) auf Hochsicherheitssystemen gedacht.
+T}
+
+lstart STARTED T{
+time the command started. This will be in the form "DDD mmm HH:MM:SS YYY"
+unless changed by the \fB\-D\fP option.
+T}
+
+lsession SESSION T{
+zeigt den Anmeldesitzungs\-Bezeichner eines Prozesses an, falls Unterstützung für Systemd verfügbar ist.
+T}
+
+luid LUID T{
+zeigt die Anmeldekennung an, die dem Prozess zugeordnet ist.
+T}
+
+lwp LWP T{
+light weight process (thread) ID of the dispatchable entity (alias
+\fBspid\fP,\fB\ tid\fP).
+See
+\fBtid\fP
+for additional information.
+T}
+
+lxc LXC T{
+Der Name des LXC\-Containers, in dem die Task läuft. Falls ein Prozess
+nicht innerhalb eines Containers läuft, wird ein Bindestrich (»\-«) angezeigt.
+T}
+
+machine MACHINE T{
+zeigt den Rechnernamen für Prozesse an, die einer virtuellen Maschine oder einem Container zugeordnet sind, falls Unterstützung für Systemd verfügbar ist.
+T}
+
+maj_flt MAJFLT T{
+Die Anzahl der großen Seitenfehlerausnahmebehandlungen, die sich mit diesem Prozess ereignet haben.
+T}
+
+min_flt MINFLT T{
+Die Anzahl der geringfügigen Seitenfehlerausnahmebehandlungen, die sich mit diesem Prozess ereignet haben.
+T}
+
+mntns MNTNS T{
+Eindeutige Inode\-Nummer, welche den Namennsraum angibt, zu dem der
+Prozess gehört. Siehe \fInamespaces\fP(7).
+T}
+
+netns NETNS T{
+Eindeutige Inode\-Nummer, welche den Namennsraum angibt, zu dem der
+Prozess gehört. Siehe \fInamespaces\fP(7).
+T}
+
+ni NI T{
+Nice\-Wert. Bereich von 19 (am »schönsten«) bis \-20 (nicht »schön« für Andere), siehe \fInice\fP(1). (alias \fBnice\fP).
+T}
+
+nice NI T{
+Siehe \fBni\fP \fB(alias\fP \fBni\fP).
+T}
+
+nlwp NLWP T{
+Anzahl der lwps (Threads) im Prozess (alias \fBthcount\fP).
+T}
+
+numa NUMA T{
+Der Knoten, der dem zuletzt verwendeten Prozessor zugeordnet ist.
+Ein \fI\-1\fP bedeutet, dass keine NUMA\-Information verfügbar ist.
+T}
+
+nwchan WCHAN T{
+Adresse der Kernelfunktion, in der der Prozess schläft (verwenden Sie
+\fBwchan\fP, falls Sie den Namen der Kernelfunktion benötigen).
+T}
+
+oom OOM T{
+Out of Memory Score. The value, ranging from 0 to +1000, used to select
+task(s) to kill when memory is exhausted.
+T}
+
+oomadj OOMADJ T{
+Out of Memory Adjustment Factor. The value is added to the current out of
+memory score which is then used to determine which task to kill when memory
+is exhausted.
+T}
+
+ouid OWNER T{
+zeigt den Unix\-Benutzer\-Bezeichner des Eigentümers der Sitzung eines Prozesses an, falls Unterstützung für Systemd verfügbar ist.
+T}
+
+pcpu %CPU T{
+Siehe \fB%cpu\fP (alias \fB%cpu\fP).
+T}
+
+pending PENDING T{
+Maske der ausstehenden Signale. Siehe \fIsignal\fP(7). Ausstehende Signale der Prozesse unterscheiden sich von den ausstehenden Signalen einzelner Threads. Verwenden Sie die Option \fBm\fP oder \fB\-m\fP, um beides anzeigen zu lassen. Entsprechend der Feldbreite wird ein eine 32\-Bit\- oder 64\-Bit\-Maske in hexadezimalem Format angezeigt, außer wenn die Option \fB\-\-signames\fP verwendet wird (alias \fBsig\fP).
+T}
+
+pgid PGID T{
+Prozessgruppenkennung oder (äquivalent) die Prozesskennung (PID) des Prozessgruppenleiters (alias \fBpgrp\fP).
+T}
+
+pgrp PGRP T{
+Siehe \fBpgid\fP (alias \fBpgid\fP).
+T}
+
+pid PID T{
+Eine Zahl, welche die Prozesskennung (ID\-Nummer) repräsentiert (alias \fBtgid\fP).
+T}
+
+pidns PIDNS T{
+Eindeutige Inode\-Nummer, welche den Namennsraum angibt, zu dem der
+Prozess gehört. Siehe \fInamespaces\fP(7).
+T}
+
+pmem %MEM T{
+Siehe \fB%mem\fP (alias \fB%mem\fP).
+T}
+
+policy POL T{
+Scheduling\-Klasse des Prozesses (alias \fBclass\fP, \fBcls\fP). Mögliche Werte sind:
+.sp 1
+.in +9n
+\- nicht berichtet
+.br
+TS SCHED_OTHER
+.br
+FF SCHED_FIFO
+.br
+RR SCHED_RR
+.br
+B SCHED_BATCH
+.br
+ISO SCHED_ISO
+.br
+IDL SCHED_IDLE
+.br
+DLN SCHED_DEADLINE
+.br
+? unbekannter Wert
+.in
+T}
+
+ppid PPID T{
+Kennung des Elternprozesses.
+T}
+
+pri PRI T{
+Priorität des Prozesses. Größere Zahlen bedeuten eine höhere Priorität.
+T}
+
+psr PSR T{
+Prozessor, auf dem der Prozess zuletzt ausgeführt wurde.
+T}
+
+pss PSS T{
+Proportional share size, the non\-swapped physical memory, with shared memory
+proportionally accounted to all tasks mapping it.
+T}
+
+rbytes RBYTES T{
+Number of bytes which this process really did cause to be fetched from the storage layer.
+T}
+
+rchars RCHARS T{
+Number of bytes which this task has caused to be read from storage.
+T}
+
+rgid RGID T{
+reale Gruppenkennung.
+T}
+
+rgroup RGROUP T{
+Realer Gruppenname. Dies wird die Gruppenkennung in Textform, falls diese ermittelt werden kann und es die Feldgröße erlaubt, oder anderenfalls eine Dezimaldarstellung sein.
+T}
+
+rops ROPS T{
+Number of read I/O operations—that is, system calls such as
+\fBread\fP(2) and \fBpread\fP(2).
+T}
+
+rss RSS T{
+Hauptspeicherbelegung; der nicht ausgelagerte physische Speicher, den eine
+Task (in Kilobyte) verwendet (alias \fBrssize\fP, \fBrsz\fP).
+T}
+
+rssize RSS T{
+Siehe \fBrss\fP (alias \fBrss\fP, \fBrsz\fP).
+T}
+
+rsz RSZ T{
+Siehe \fBrss\fP (alias \fBrss\fP, \fBrssize\fP).
+T}
+
+rtprio RTPRIO T{
+Echtzeit\-Priorität.
+T}
+
+ruid RUID T{
+Reale Benutzerkennung.
+T}
+
+ruser RUSER T{
+Reale Benutzerkennung. Dies wird die Benutzerkennung in Textform, falls diese ermittelt werden kann und es die Feldgröße erlaubt, oder anderenfalls eine Dezimaldarstellung sein.
+T}
+
+s S T{
+Minimale Statusanzeige (ein Zeichen). Siehe Abschnitt \fBPROZESSZUSTANDSCODES\fP für die Bedeutung der verschiedenen Werte. Siehe auch \fBstat\fP, wenn Sie zusätzliche Informationen anzeigen lassen wollen (alias \fBstate\fP).
+T}
+
+sched SCH T{
+Scheduling\-Regeln des Prozesses. Die Regeln SCHED_OTHER (SCHED_NORMAL), SCHED_FIFO, SCHED_RR, SCHED_BATCH, SCHED_ISO, SCHED_IDLE beziehungsweise SCHED_DEADLINE werden als 0, 1, 2, 3, 4, 5 beziehungsweise 6 angezeigt.
+T}
+
+seat SEAT T{
+zeigt den Bezeichner an, der sämtlichen Hardware\-Geräten zugeordnet ist, die einem bestimmten Arbeitsplatz zugewiesen sind, falls Unterstützung für Systemd verfügbar ist.
+T}
+
+sess SESS T{
+Sitzungskennung oder (äquivalent) die Prozesskennung (PID) des Sitzungsleiters (alias \fBsession\fP, \fBsid\fP).
+T}
+
+sgi_p P T{
+Prozessor, auf dem der Prozess derzeit ausgeführt wird. Falls der Prozess gegenwärtig nicht ausgeführt wird oder nicht ausführbar ist, wird »*« angezeigt.
+T}
+
+sgid SGID T{
+Gespeicherte Gruppenkennung (alias \fBsvgid\fP).
+T}
+
+sgroup SGROUP T{
+Gespeicherter Gruppenname. Dies wird die Gruppenkennung in Textform, falls diese ermittelt werden kann und es die Feldgröße erlaubt, oder anderenfalls eine Dezimaldarstellung sein.
+T}
+
+sid SID T{
+Siehe \fBsess\fP (alias \fBsess\fP, \fBsession\fP).
+T}
+
+sig PENDING T{
+Siehe \fBpending\fP (alias \fBpending\fP, \fBsig_pend\fP).
+T}
+
+sigcatch CAUGHT T{
+Siehe \fBcaught\fP (alias \fBcaught\fP, \fBsig_catch\fP).
+T}
+
+sigignore IGNORED T{
+Siehe \fBignored\fP (alias \fBignored\fP, \fBsig_ignore\fP).
+T}
+
+sigmask BLOCKED T{
+Siehe \fBblocked\fP (alias \fBblocked\fP, \fBsig_block\fP).
+T}
+
+size GRÖSSE T{
+Ungefähre Menge des Auslagerungsspeichers, der erforderlich wäre, wenn der Prozess alle schreibbaren Speicherseiten bearbeiten und dann ausgelagert werden würde. Diese Zahl ist eine sehr grobe Schätzung!
+T}
+
+slice SLICE T{
+zeigt die Scheiben\-Unit an, zu der ein Prozess gehört, falls Unterstützung für Systemd verfügbar ist.
+T}
+
+spid SPID T{
+Siehe \fBlwp\fP (alias \fBlwp\fP, \fBtid\fP).
+T}
+
+stackp STACKP T{
+Adresse des untersten Stapelendes (Start) des Prozess\-Stacks.
+T}
+
+start STARTED T{
+Zeitpunkt, zu dem der Befehl gestartet wurde. Falls der Prozess vor weniger als 24 Stunden gestartet wurde, ist das Ausgabeformat »HH:MM:SS«, anderenfalls ist es »\ \ Mmm\ dd« (wobei Mmm die aus drei Buchstaben bestehende Kurzform des Monats ist). Siehe auch \fBbsdstart\fP, \fBstart\fP, \fBstart_time\fP und \fBstime\fP.
+T}
+
+start_time START T{
+Startzeit oder \-datum des Prozesses. Falls der Prozess nicht im gleichen Jahr gestartet wurde, in dem \fBps\fP aufgerufen wurde, wird nur das Jahr angezeigt, oder »MmmTT«, falls es nicht am gleichen Tag gestartet wurde, oder anderenfalls »HH:MM«. Siehe auch \fBbsdstart\fP, \fBstart\fP, \fBlstart\fP und \fBstime\fP.
+T}
+
+stat STAT T{
+Statusanzeige in mehreren Zeichen. Siehe Abschnitt \fBPROZESSZUSTANDSCODES\fP für die Bedeutung der verschiedenen Werte. Siehe auch \fBs\fP\ und\fB\ state\fP, wenn Sie nur das erste Zeichen anzeigen lassen wollen.
+T}
+
+state S T{
+Siehe \fBs\fP (alias \fBs\fP).
+T}
+
+stime STIME T{
+siehe \fBstart_time\fP. (alias \fBstart_time\fP).
+T}
+
+suid SUID T{
+Gespeicherte Benutzerkennung. (alias
+\fBsvuid\fP).
+T}
+
+supgid SUPGID T{
+Gruppenkennungen zusätzlicher Gruppen, falls vorhanden. Siehe \fBgetgroups\fP(2).
+T}
+
+supgrp SUPGRP T{
+Gruppennamen zusätzlicher Gruppen, falls vorhanden. Siehe
+\fBgetgroups\fP(2).
+T}
+
+suser SUSER T{
+Gespeicherter Benutzername. Dies wird die Benutzerkennung in Textform, falls diese ermittelt werden kann und es die Feldgröße erlaubt, oder anderenfalls eine Dezimaldarstellung sein (alias \fBsvuser\fP).
+T}
+
+svgid SVGID T{
+Siehe \fBsgid\fP (alias \fBsgid\fP).
+T}
+
+svuid SVUID T{
+Siehe \fBsuid\fP (alias \fBsuid\fP).
+T}
+
+sz SZ T{
+Größe in physischen Seiten des Kern\-Images des Prozesses. Dies schließt Text\-, Daten\- und Stack\-Bereich ein. Gerätezuordnungen werden gegenwärtig ausgeschlossen; dies könnte sich später ändern. Siehe \fBvsz\fP\ und\fB\ rss\fP.
+T}
+
+tgid TGID T{
+Eine Zahl, die eine Thread\-Gruppe repräsentiert, zu der eine Task gehört
+(alias \fBpid\fP). Es ist die Prozesskennung (PID) des Thread\-Gruppenleiters.
+T}
+
+thcount THCNT T{
+Siehe \fBnlwp\fP (alias \fBnlwp\fP). Anzahl der Kernel\-Threads, die dem Prozess gehören.
+T}
+
+tid TID T{
+the unique number representing a dispatchable entity (alias
+\fBspid\fP, \fBtid\fP).
+This value may also appear as: a process ID (pid); a process group ID (pgrp);
+a session ID for the session leader (sid); a thread group ID for the thread
+group leader (tgid); and a tty process group ID for the process group leader
+(tpgid).
+T}
+
+time TIME T{
+Kumulative CPU\-Zeit im Format »[DD\-]HH:MM:SS« (alias \fBcputime\fP).
+T}
+
+timens TIMENS T{
+Eindeutige Inode\-Nummer, welche den Namennsraum angibt, zu dem der
+Prozess gehört. Siehe \fInamespaces\fP(7).
+T}
+
+times TIME T{
+Kumulative CPU\-Zeit in Sekunden (alias \fBcputimes\fP).
+T}
+
+tname TTY T{
+Steuerndes TTY (Terminal). (alias \fBtt\fP, \fBtty\fP).
+T}
+
+tpgid TPGID T{
+Kennung der Vordergrundprozessgruppe auf dem TTY (Terminal), mit dem der Prozess verbunden ist, oder \-1, falls der Prozess nicht mit einem Terminal verbunden ist.
+T}
+
+trs TRS T{
+Hauptspeicherbelegung als Text; die Menge des physischen Speichers, der mit ausführbarem Code belegt ist.
+T}
+
+tt TT T{
+Steuerndes TTY (Terminal). (alias \fBtname\fP, \fBtty\fP).
+T}
+
+tty TT T{
+Steuerndes TTY (Terminal). (alias \fBtname\fP, \fBtt\fP).
+T}
+
+ucmd CMD T{
+Siehe \fBcomm\fP (alias \fBcomm\fP, \fBucomm\fP).
+T}
+
+ucomm BEFEHL T{
+Siehe \fBcomm\fP (alias \fBcomm\fP, \fBucmd\fP).
+T}
+
+uid UID T{
+Siehe \fBeuid\fP (alias \fBeuid\fP).
+T}
+
+uname USER T{
+Siehe \fBeuser\fP (alias \fBeuser\fP, \fBuser\fP).
+T}
+
+unit UNIT T{
+zeigt die Unit an, zu der ein Prozess gehört, falls Unterstützung für Systemd verfügbar ist.
+T}
+
+user USER T{
+Siehe \fBeuser\fP (alias \fBeuser\fP, \fBuname\fP).
+T}
+
+userns USERNS T{
+Eindeutige Inode\-Nummer, welche den Namennsraum angibt, zu dem der
+Prozess gehört. Siehe \fInamespaces\fP(7).
+T}
+
+uss USS T{
+Unique set size, the non\-swapped physical memory, which
+is not shared with an another task.
+T}
+
+utsns UTSNS T{
+Eindeutige Inode\-Nummer, welche den Namennsraum angibt, zu dem der
+Prozess gehört. Siehe \fInamespaces\fP(7).
+T}
+
+uunit UUNIT T{
+zeigt die Benutzer\-Unit an, zu der ein Prozess gehört, falls Unterstützung für Systemd verfügbar ist.
+T}
+
+vsize VSZ T{
+Siehe \fBvsz\fP (alias \fBvsz\fP).
+T}
+
+vsz VSZ T{
+Größe des virtuellen Speichers des Prozesses in KiB (1024\-Byte\-Einheiten). Gerätezuweisungen werden gegenwärtig ausgeschlossen; dies könnte sich später ändern (alias \fBvsize\fP).
+T}
+
+wbytes WBYTES T{
+Number of bytes which this process caused to be sent to the storage layer.
+T}
+
+wcbytes WCBYTES T{
+Number of cancelled write bytes.
+T}
+
+wchan WCHAN T{
+name of the kernel function in which the process is sleeping.
+T}
+
+wchars WCHARS T{
+Number of bytes which this task has caused, or shall cause to be written to disk.
+T}
+
+wops WOPS T{
+Number of write I/O operations—that is, system calls such as
+\fBwrite\fP(2) and \fBpwrite\fP(2).
+T}
+
+.TE
+.SH UMGEBUNGSVARIABLEN
+Die folgenden Umgebungsvariablen könnten \fBps\fP beeinflussen:
+.TP 3
+\fBCOLUMNS\fP
+setzt die vorgegebene Bildschirmbreite außer Kraft.
+.TP
+\fBLINES\fP
+setzt die vorgegebene Bildschirmhöhe außer Kraft.
+.TP
+\fBPS_PERSONALITY\fP
+wird auf eines von »posix«, »old«, »linux«, »bsd«, »sun«, »digital« …\&
+gesetzt (siehe Abschnitt \fBPROZESSAUSFÃœHRUNGSUMGEBUNG\fP nachfolgend).
+.TP
+\fBCMD_ENV\fP
+wird auf eines von »posix«, »old«, »linux«, »bsd«, »sun«, »digital« …\&
+gesetzt (siehe Abschnitt \fBPROZESSAUSFÃœHRUNGSUMGEBUNG\fP nachfolgend).
+.TP
+\fBI_WANT_A_BROKEN_PS\fP
+erzwingt die Interpretation veralteter Befehlszeilen.
+.TP
+\fBLC_TIME\fP
+Datumsformat.
+.TP
+\fBLIBPROC_HIDE_KERNEL\fP
+Set this to any value to hide kernel threads normally displayed with the
+\fB\-e\fP option. This is equivalent to selecting \fB\-\-ppid 2 \-p 2 \-\-deselect\fP
+instead. Also works in BSD mode.
+.TP
+\fBPS_COLORS\fP
+wird gegenwärtig nicht unterstützt.
+.TP
+\fBPS_FORMAT\fP
+Außerkraftsetzung des vorgegebenen Ausgabeformats. Sie können dies auf eine
+Formatzeichenkette des Typs setzen, den Sie für die Option \fB\-o\fP
+nutzen. Insbesondere die Werte \fBDefSysV\fP und \fBDefBSD\fP sind sinnvoll.
+.TP
+\fBPOSIXLY_CORRECT\fP
+Finde keine Entschuldigungen zum Ignorieren schlechter »Funktionen«.
+.TP
+\fBPOSIX2\fP
+Wenn auf »on« gesetzt, agiert es als \fBPOSIXLY_CORRECT\fP.
+.TP
+\fBUNIX95\fP
+Finde keine Entschuldigungen zum Ignorieren schlechter »Funktionen«.
+.TP
+\fB_XPG\fP
+Zeigt kein nicht standardkonformes Verhalten bei \fBCMD_ENV\fP=\fIirix\fP.
+.PP
+Generell ist es keine gute Idee, diese Variablen zu setzen. Die einzige
+Ausnahme ist \fBCMD_ENV\fP oder \fBPS_PERSONALITY\fP, die für normale Systeme auf
+»Linux« gesetzt werden können. Ohne diese Einstellung folgt \fBps\fP den
+nutzlosen und schlechten Teilen des Unix98\-Standards.
+.SH PROZESSAUSFÃœHRUNGSUMGEBUNG
+.TS
+l l.
+390 wie das \fBps\fP in OS/390 OpenEdition
+aix wie das \fBps\fP in AIX
+bsd wie das \fBps\fP in FreeBSD (überhaupt nicht standardkonform)
+compaq wie das \fBps\fP in Digital Unix
+debian wie das alte \fBps\fP in Debian
+digital wie das \fBps\fP in Tru64 (war Digital Unix, war OSF/1)
+gnu wie das alte \fBps\fP in Debian
+hp wie das \fBps\fP in HP\-UX
+hpux wie das \fBps\fP in HP\-UX
+irix wie das \fBps\fP in Irix
+linux ***** \fBempfohlen\fP *****
+old wie das ursprüngliche \fBps\fP in Linux (überhaupt nicht standardkonform)
+os390 wie das \fBps\fP in OS/390 Open Edition
+posix standard
+S390 wie das \fBps\fP in OS/390 Open Edition
+sco wie das \fBps\fP in SCO
+sgi wie das \fBps\fP in Irix
+solaris2 wie das \fBps\fP in Solaris 2+ (SunOS 5)
+sunos4 wie das \fBps\fP in SunOS 4 (Solaris 1) (überhaupt nicht standardkonform)
+svr4 standard
+sysv standard
+tru64 wie das \fBps\fP in Tru64 (war Digital Unix, war OSF/1)
+unix standard
+unix95 standard
+unix98 standard
+.TE
+.SH FEHLER
+The fields \fBbsdstart\fP and \fBstart\fP will only show the abbreviated month
+name in English. The fields \fBlstart\fP and \fBstime\fP will show the abbreviated
+month name in the configured locale but may exceed the column width due to
+the different lengths for abbreviated month and day names across languages.
+.PP
+.SH "SIEHE AUCH"
+\fBpgrep\fP(1), \fBpstree\fP(1), \fBtop\fP(1), \fBstrftime\fP(3), \fBproc\fP(5).
+.SH STANDARDS
+Diese Version von \fBps\fP ist konform zu:
+.PP
+.PD 0
+.IP 1 4
+Version 2 der Single Unix Specification
+.IP 2 4
+The Open Group Technical Standard Base Specifications, Ausgabe\ 6
+.IP 3 4
+IEEE Std 1003.1, Ausgabe\ 2004
+.IP 4 4
+X/Open System Interfaces Extension [UP\ XSI]
+.IP 5 4
+ISO/IEC 9945:2003
+.PD
+.SH AUTOR
+\fBps\fP wurde ursprünglich von
+.MT lankeste@\:fwi.\:uva.\:nl
+Branko
+Lankester
+.ME
+geschrieben.
+.MT johnsonm@\:redhat.\:com
+Michael
+K. Johnson
+.ME
+überarbeitete es deutlich, damit es das Proc\-Dateisystem
+nutzt, wobei einige Dinge dabei geändert wurden.
+.MT mjshield@\:nyx.\:cs.\:du.\:edu
+Michael Shields
+.ME
+fügte die
+PID\-Listen\-Funktion hinzu.
+.MT cblake@\:bbn.\:com
+Charles Blake
+.ME
+fügte die mehrstufige Sortierung, die Bibliothek im Dirent\-Stil, die
+Datenbank zum Zuweisen von Gerätenamen zu deren Nummern, die näherungsweise
+Binärsuche direkt in System.map hinzu sowie bereinigte größere Teile des
+Codes und der Dokumentation. David Mossberger\-Tang schrieb die generische
+BFD\-Unterstützung für \fBpsupdate\fP.
+.MT albert@\:users.\:sf.\:net
+Albert
+Cahalan
+.ME
+überarbeitete \fBps\fP für vollständige Unix98\- und
+BSD\-Unterstützung, zusammen mit einigen Hacks bezüglich veralteter and
+fremder Syntax.
+.PP
+Bitte schicken Sie Fehlermeldungen (auf Englisch) an
+.MT procps@\:freelists.\:org
+.ME .
+Dafür ist keine Registrierung
+erforderlich.
diff --git a/po-man/de/pwdx.1 b/po-man/de/pwdx.1
new file mode 100644
index 0000000..2b15dfd
--- /dev/null
+++ b/po-man/de/pwdx.1
@@ -0,0 +1,42 @@
+.\"
+.\" Copyright (c) 2020-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2004 Nicholas Miel.
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PWDX 1 "4. April 2020" procps\-ng "Dienstprogramme für Benutzer"
+.SH BEZEICHNUNG
+pwdx \- aktuelles Arbeitsverzeichnis eines Prozesses anzeigen
+.SH ÃœBERSICHT
+\fBpwdx\fP [\fIOptionen\fP] \fIProzesskennung\fP […]
+.SH OPTIONEN
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+zeigt Versionsinformation an und beendet das Programm.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+zeigt eine Hilfe an und beendet das Programm.
+.SH "SIEHE AUCH"
+\fBps\fP(1), \fBpgrep\fP(1)
+.SH STANDARDS
+Es sind keine Standards anwendbar, aber \fBpwdx\fP ähnelt stark einem
+SunOS\-Befehl.
+.SH AUTOR
+.UR nmiell@gmail.com
+Nicholas Miell
+.UE
+schrieb Pwdx im Jahre 2004.
+.SH "FEHLER MELDEN"
+Bitte schicken Sie Fehlermeldungen (auf Englisch) an
+.MT procps@freelists.org
+.ME
diff --git a/po-man/de/skill.1 b/po-man/de/skill.1
new file mode 100644
index 0000000..9fa9d45
--- /dev/null
+++ b/po-man/de/skill.1
@@ -0,0 +1,119 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2006 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SKILL 1 "19. August 2023" procps\-ng "Dienstprogramme für Benutzer"
+.SH BEZEICHNUNG
+skill, snice \- ein Signal senden oder den Prozessstatus ermitteln
+.SH ÃœBERSICHT
+\fBskill\fP [\fISignal\fP] [\fIOptionen\fP] \fIAusdruck\fP
+.br
+\fBsnice\fP [\fIneue Priorität\fP] [\fIOptionen\fP] \fIAusdruck\fP
+.SH BESCHREIBUNG
+Diese Dienstprogramme sind veraltet und nicht portabel. Die Befehlssyntax
+ist unzureichend dokumentiert. Bitte verwenden Sie stattdessen die Befehle
+\fBkillall\fP(1), \fBpkill\fP(1) und \fBpgrep\fP(1).
+.PP
+Das Standardsignal für \fBskill\fP ist TERM. Verwenden Sie \fB\-l\fP oder \fB\-L\fP, um
+verfügbare Signale aufzulisten. Im Einzelnen sind diese Signale HUP, INT,
+KILL, STOP, CONT und 0. Andere Signale können auf drei verschiedene Arten
+angegeben werden: \fB\-9\fP, \fB\-SIGKILL\fP oder \fB\-KILL\fP.
+.PP
+Die Vorgabepriorität für \fBsnice\fP ist +4. Prioritätskennziffern liegen im
+Bereich von +20 (am langsamsten) und \-20 (am schnellsten). Negative
+Prioritätskennziffern sind Benutzern mit Administratorrechten vorbehalten.
+.SH OPTIONEN
+.TP
+\fB\-f\fP,\fB\ \-\-fast\fP
+Schneller Modus. Diese Option wurde nicht implementiert.
+.TP
+\fB\-i\fP,\fB\ \-\-interactive\fP
+Interaktiver Modus. Sie werden vor der Ausführung einer Aktion stets um
+Bestätigung gebeten.
+.TP
+\fB\-l\fP,\fB\ \-\-list\fP
+listet alle Signalnamen auf.
+.TP
+\fB\-L\fP,\fB\ \-\-table\fP
+listet alle Signalnamen in einer Tabelle auf.
+.TP
+\fB\-n\fP,\fB\ \-\-no\-action\fP
+führt keine Aktion aus. Es wird eine Simulation ausgeführt, aber keine
+Änderung am System vorgenommen.
+.TP
+\fB\-v\fP,\fB\ \-\-verbose\fP
+Ausführlicher Modus, es wird erklärt, was geschieht.
+.TP
+\fB\-w\fP,\fB\ \-\-warnings\fP
+aktiviert Warnungen. Diese Option wurde nicht implementiert.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+zeigt einen Hilfetext an und beendet das Programm.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Versionsinformationen anzeigen.
+.PD
+.SH "OPTIONEN ZUR PROZESSAUSWAHL"
+Auswahlkriterien können sein: terminal, user, pid, command. Die
+nachfolgenden Optionen können verwendet werden, um eine korrekte
+Interpretation zu gewährleisten.
+.TP
+\fB\-t\fP, \fB\-\-tty\fP \fITTY\fP
+Der nächste Ausdruck ist ein Terminal (tty oder pty).
+.TP
+\fB\-u\fP, \fB\-\-user\fP \fIBenutzer\fP
+Der nächste Ausdruck ist ein Benutzername.
+.TP
+\fB\-p\fP, \fB\-\-pid\fP \fIPID\fP
+Der nächste Ausdruck ist eine Prozesskennung (ID).
+.TP
+\fB\-c\fP, \fB\-\-command\fP \fIBEFEHL\fP
+Der nächste Ausdruck ist ein Befehlsname.
+.TP
+\fB\-\-ns \fP\fIProzesskennung\fP
+sucht nach Prozessen, die zum gleichen Namensraum wie \fIPID\fP gehören.
+.TP
+\fB\-\-nslist \fP\fINamensraum\/\fP,\,\fI…\/\fP
+listet die Namensräume auf, die in der Option \fB\-\-ns\fP berücksichtigt
+werden. Verfügbare Namensräume: ipc, mnt, net, pid, user, uts.
+.PD
+.SH SIGNALE
+Das Verhalten der Signale ist in der Handbuchseite zu \fBsignal\fP(7)
+beschrieben.
+.SH BEISPIELE
+.TP
+\fBsnice \-c seti \-c crack +7\fP
+verlangsamt die Ausführung der \fBseti\fP\- und \fBcrack\fP\-Befehle.
+.TP
+\fBskill \-KILL \-t /dev/pts/*\fP
+killt Benutzer auf PTY\-Geräten.
+.TP
+\fBskill \-STOP \-u viro \-u lm \-u davem\fP
+stoppt drei Benutzer.
+.SH "SIEHE AUCH"
+\fBkill\fP(1), \fBkill\fP(2), \fBkillall\fP(1), \fBnice\fP(1), \fBpkill\fP(1),
+\fBrenice\fP(1), \fBsignal\fP(7)
+.SH STANDARDS
+Es sind keine Standards anwendbar.
+.SH AUTOR
+.MT albert@users.sf.net
+Albert Cahalan
+.ME
+schrieb \fBskill\fP und
+\fBsnice\fP im Jahre 1999 als Ersatz für eine unfreie Version.
+.SH "FEHLER MELDEN"
+Bitte schicken Sie Fehlermeldungen (auf Englisch) an
+.MT procps@freelists.org
+.ME
diff --git a/po-man/de/slabtop.1 b/po-man/de/slabtop.1
new file mode 100644
index 0000000..0ee98a5
--- /dev/null
+++ b/po-man/de/slabtop.1
@@ -0,0 +1,113 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2004-2006 Albert Cahalan
+.\" Copyright (C) 2003 Chris Rivera
+.\"
+.\" This program is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU Lesser General Public License as
+.\" published by the Free Software Foundation; either version 2.1 of the
+.\" License, or (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SLABTOP 1 "11. März 2021" procps\-ng "Dienstprogramme für Benutzer"
+.SH BEZEICHNUNG
+slabtop \- zeigt Informationen zum Slab\-Zwischenspeicher des Kernels in
+Echtzeit an
+.SH ÃœBERSICHT
+\fBslabtop\fP [\fIOptionen\fP]
+.SH BESCHREIBUNG
+\fBslabtop\fP zeigt detaillierte Informationen zum Slab\-Zwischenspeicher des
+Kernels in Echtzeit an. Es zeigt eine Liste der Top\-Zwischenspeicher, nach
+einem der aufgeführten Kriterien sortiert. Außerdem werden
+Statistik\-Kopfzeilen mit Slab\-Ebenen\-Informationen angezeigt.
+.SH OPTIONEN
+Der normale Aufruf von \fBslabtop\fP erfordert keine Optionen. Sie können das
+Verhalten beeinflussen, indem Sie einen oder mehrere der folgenden Schalter
+angeben:
+.TP
+\fB\-d\fP, \fB\-\-delay\fP=\fIN\fP
+aktualisiert die Anzeige alle \fIn\fP Sekunden. Per Vorgabe aktualisiert
+\fBslabtop\fP die Anzeige alle drei Sekunden. Um das Programm zu beenden,
+drücken Sie \fBq\fP. Dies kann nicht mit der Option \fB\-o\fP kombiniert werden.
+.TP
+\fB\-s\fP, \fB\-\-sort\fP=\fIS\fP
+sortiert nach \fIS\fP, wobei \fIS\fP eines der Suchkritieren ist.
+.TP
+\fB\-o\fP, \fB\-\-once\fP
+zeigt die Ausgabe einmal an und beendet das Programm.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+zeigt Versionsinformationen an und beendet das Programm.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+zeigt Informationen zur Benutzung an und beendet das Programm.
+.SH SORTIERKRITERIEN
+Folgende Kriterien sind für die Sortierung der einzelnen
+Slab\-Zwischenspeicher zulässig und bestimmen, welche die obersten
+Zwischenspeicher für die Anzeige sind. Die Voreinstellung ist die Sortierung
+nach der Anzahl der Objekte (»o«).
+.PP
+Die Sortierkriterien können auch angepasst werden, während \fBslabtop\fP läuft,
+indem Sie die Taste mit dem entsprechenden Zeichen drücken.
+.TS
+l l l.
+\fBZeichen\fP \fBBeschreibung\fP \fBHeader\fP
+a Anzahl der aktiven Objekte ACTIVE
+b Objekte pro Slab OBJ/SLAB
+c Cache\-Größe CACHE SIZE
+l Anzahl der Slabs SLABS
+v Anzahl der aktiven Slabs n.v.
+n Name NAME\:
+o Anzahl der Objekte OBJS
+p Seiten pro Slab n.v.
+s Objektgröße OBJ SIZE
+u Zwischenspeichernutzung USE
+.TE
+.SH BEFEHLE
+\fBslabtop\fP akzeptiert Tastaturbefehle des Benutzers, während das Programm
+läuft. Die folgenden Befehle werden unterstützt, wobei für Buchstaben die
+Groß\- oder Kleinschreibung nicht berücksichtigt wird.
+.PP
+Jedes der zulässigen Sortierzeichen wird zum Anpassen der Sortierroutine
+ebenfalls unterstützt. Siehe Abschnitt \fBSORTIERKRITERIEN\fP.
+.TP
+\fB<LEERTASTE>\fP
+aktualisiert den Bildschirm.
+.TP
+\fBQ\fP
+beendet das Programm.
+.SH DATEIEN
+.TP
+\fI/proc/slabinfo\fP
+Slab\-Information
+.SH "SIEHE AUCH"
+\fBfree\fP(1), \fBps\fP(1), \fBtop\fP(1), \fBvmstat\fP(8)
+.SH ANMERKUNGEN
+Gegenwärtig benötigt \fBslabtop\fP einen Kernel der Version 2.4 oder neuer
+(speziell \fI/proc/slabinfo\fP in Version 1.1 oder neuer). Der Kernel 2.2 wird
+wahrscheinlich in zukünftigen Versionen unterstützt.
+.PP
+Die Statistik\-Kopfzeile von \fBslabtop\fP verfolgt die Byte\-Anzahl der
+genutzten Slabs, bezieht sich aber nicht auf den tatsächlichen physischen
+Speicher. Das »Slab«\-Feld in der Datei \fI/proc/meminfo\fP enthält
+Informationen über den physischen Slab\-Speicher.
+.PP
+The \fBCACHE SIZE\fP column is not accurate, it's the upper limit of memory
+used by specific slab. When system using slub (most common case) is under
+high memory pressure, there are slab order fallbacks, which means "pages per
+slab" is not constant and may decrease.
+.SH AUTOREN
+Geschrieben von Chris Rivera und Robert Love.
+.PP
+\fBslabtop\fP wurde vom Perl\-Skript \fBvmtop\fP von Martin Bligh inspiriert.
+.SH "FEHLER MELDEN"
+Bitte schicken Sie Fehlermeldungen (auf Englisch) an
+.MT procps@freelists.org
+.ME
diff --git a/po-man/de/sysctl.8 b/po-man/de/sysctl.8
new file mode 100644
index 0000000..a078ccd
--- /dev/null
+++ b/po-man/de/sysctl.8
@@ -0,0 +1,181 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2004-2006 Albert Cahalan
+.\" Copyright (c) 1999 George Staikos <staikos@0wned.org>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SYSCTL 8 "19. August 2023" procps\-ng System\-Administration
+.SH BEZEICHNUNG
+sysctl \- Kernelparameter zur Laufzeit konfigurieren
+.SH ÃœBERSICHT
+\fBsysctl\fP [\fIOptionen\fP] [\fIVariable\fP[\fB=\fP\fIWert\fP]] […]
+.br
+\fBsysctl \-p\fP [\fIDatei\fP oder \fIregulärer_Ausdruck\fP] […]
+.SH BESCHREIBUNG
+\fBsysctl\fP wird dazu verwendet, Kernelparameter zur Laufzeit zu ändern. Die
+verfügbaren Parameter sind unter \fI/proc/sys/\fP aufgelistet. Für die
+\fBsysctl\fP\-Unterstützung in Linux ist Procfs notwendig. Sie können \fBsysctl\fP
+sowohl zum Lesen als auch zum Schreiben von Sysctl\-Daten verwenden.
+.SH PARAMETER
+.TP
+\fIVariable\fP
+bezeichnet den Namen des Schlüssels, aus dem gelesen werden soll. Ein
+Beispiel ist kernel.ostype. Anstelle von ».« wird auch »/« als Trenner
+akzeptiert.
+.TP
+\fIVariable\fP=\fIWert\fP
+Um einen Schlüssel zu setzen, verwenden Sie die Form \fIVariable\fP=\fIWert\fP,
+wobei die \fIVariable\fP der Schlüssel ist und \fIWert\fP der Wert, auf den er
+gesetzt werden soll. Wenn der Wert Anführungszeichen oder Zeichen enthält,
+die von der Shell ausgewertet werden, müssen Sie den Wert in doppelte
+Anführungszeichen (") einschließen.
+.TP
+\fB\-n\fP, \fB\-\-values\fP
+deaktiviert die Ausgabe des Schlüsselnamens, wenn Werte ausgegeben werden.
+.TP
+\fB\-e\fP, \fB\-\-ignore\fP
+ignoriert Fehlermeldungen über unbekannte Schlüssel.
+.TP
+\fB\-N\fP, \fB\-\-names\fP
+gibt nur die Namen aus. Dies könnte mit Shells nützlich sein, die über eine
+programmierbare Vervollständigung verfügen.
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+bewirkt, dass die gesetzten Werte nicht in die Standardausgabe geschrieben
+werden.
+.TP
+\fB\-w\fP, \fB\-\-write\fP
+erzwingt, dass alle Argumente Schreibargumente sind und gibt einen Fehler
+aus, wenn die Argumente nicht nach dieser Vorgabe ausgewertet werden können.
+.TP
+\fB\-p\fP[\fIDATEI\fP], \fB\-\-load\fP[=\fIDATEI\fP]
+lädt \fBsysctl\fP\-Einstellungen aus der angegebenen Datei oder aus
+\fI/etc/sysctl.conf\fP, falls keine Datei angegeben ist. Die Angabe von \fB\-\fP
+als Dateiname bewirkt, dass die Daten aus der Standardeingabe gelesen
+werden. Mit dieser Option sieht \fBsysctl\fP Argumente als Dateien an, die in
+der Reihenfolge gelesen werden, in der sie angegeben sind. Das
+Datei\-Argument kann als regulärer Ausdruck angegeben werden.
+.TP
+\fB\-a\fP, \fB\-\-all\fP
+zeigt alle aktuell verfügbaren Werte an.
+.TP
+\fB\-\-deprecated\fP
+schließt veraltete Parameter in die Auflistung der Werte mit \fB\-\-all\fP ein.
+.TP
+\fB\-b\fP, \fB\-\-binary\fP
+gibt Werte ohne Zeilenumbrüche aus.
+.TP
+\fB\-\-system\fP
+lädt Einstellungen aus allen Systemkonfigurationsdateien. Siehe \fBRANGFOLGE DER SYSTEMDATEIEN\fP unten.
+.TP
+\fB\-r\fP, \fB\-\-pattern\fP \fIMuster\fP
+wendet nur Einstellungen an, die dem angegebenen \fIMuster\fP entsprechen. Das
+\fIMuster\fP kann ein erweiterter regulärer Ausdruck sein.
+.TP
+\fB\-A\fP
+Alias für \fB\-a\fP
+.TP
+\fB\-d\fP
+Alias für \fB\-h\fP
+.TP
+\fB\-f\fP
+Alias für \fB\-p\fP
+.TP
+\fB\-X\fP
+Alias für \fB\-a\fP
+.TP
+\fB\-o\fP
+bewirkt nichts; ist nur zwecks BSD\-Kompatibilität vorhanden.
+.TP
+\fB\-x\fP
+bewirkt nichts; ist nur zwecks BSD\-Kompatibilität vorhanden.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+zeigt einen Hilfetext an und beendet das Programm.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+zeigt Versionsinformationen an und beendet das Programm.
+.SH "RANGFOLGE DER SYSTEMDATEIEN"
+Wenn Sie die Option \fB\-\-system\fP verwenden, liest \fBsysctl\fP Dateien aus den
+Verzeichnissen in der folgenden Liste in der angegebenen Reihenfolge von
+oben nach unten. Sobald eine Datei eines angegebenen Namens geladen ist,
+werden jegliche Dateien gleichen Namens in darauf folgenden Verzeichnissen
+ignoriert.
+
+/etc/sysctl.d/*.conf
+.br
+/run/sysctl.d/*.conf
+.br
+/usr/local/lib/sysctl.d/*.conf
+.br
+/usr/lib/sysctl.d/*.conf
+.br
+/lib/sysctl.d/*.conf
+.br
+/etc/sysctl.conf
+
+All configuration files are sorted in lexicographic order, regardless of the
+directory they reside in. Configuration files can either be completely
+replaced (by having a new configuration file with the same name in a
+directory of higher priority) or partially replaced (by having a
+configuration file that is ordered later).
+.SH BEISPIELE
+/sbin/sysctl \-a
+.br
+/sbin/sysctl \-n kernel.hostname
+.br
+/sbin/sysctl \-w kernel.domainname="example.com"
+.br
+/sbin/sysctl \-p/etc/sysctl.conf
+.br
+/sbin/sysctl \-a \-\-pattern forward
+.br
+/sbin/sysctl \-a \-\-pattern forward$
+.br
+/sbin/sysctl \-a \-\-pattern 'net.ipv4.conf.(eth|wlan)0.arp'
+.br
+/sbin/sysctl \-\-pattern '\[char94]net.ipv6' \-\-system
+.SH "VERALTETE PARAMETER"
+Die Parameter \fBbase_reachable_time\fP und \fBretrans_time\fP sind veraltet. Der
+Befehl \fBsysctl\fP erlaubt keine Änderungen der Werte dieser
+Parameter. Benutzer, die nach wie vor veraltete Kernel\-Schnittstellen
+verwenden, sollten die Werte auf anderen Wegen in das /\fIproc\fP\-Dateisystem
+befördern. Zum Beispiel:
+.PP
+echo 256 > /proc/sys/net/ipv6/neigh/eth0/base_reachable_time
+.SH DATEIEN
+\fI/proc/sys\fP
+.br
+\fI/etc/sysctl.d/*.conf\fP
+.br
+\fI/run/sysctl.d/*.conf\fP
+.br
+\fI/usr/local/lib/sysctl.d/*.conf\fP
+.br
+\fI/usr/lib/sysctl.d/*.conf\fP
+.br
+\fI/lib/sysctl.d/*.conf\fP
+.br
+\fI/etc/sysctl.conf\fP
+.SH "SIEHE AUCH"
+\fBproc\fP(5), \fBsysctl.conf\fP(5), \fBregex\fP(7)
+.SH AUTOR
+.UR staikos@0wned.org
+George Staikos
+.UE
+.SH "FEHLER MELDEN"
+Bitte schicken Sie Fehlermeldungen (auf Englisch) an
+.MT procps@freelists.org
+.ME
diff --git a/po-man/de/sysctl.conf.5 b/po-man/de/sysctl.conf.5
new file mode 100644
index 0000000..ee2b8f5
--- /dev/null
+++ b/po-man/de/sysctl.conf.5
@@ -0,0 +1,89 @@
+.\"
+.\" Copyright (c) 2016-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2019-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1999 George Staikos <staikos@0wned.org>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SYSCTL.CONF 5 "15. September 2021" procps\-ng Dateiformate
+.SH BEZEICHNUNG
+sysctl.conf \- Vorlade\-/Konfigurationsdatei für Sysctl
+.SH BESCHREIBUNG
+\fBsysctl.conf\fP ist eine einfache Datei, welche Sysctl\-Werte enthält, die in
+\fBsysctl\fP gelesen und gesetzt werden. Die Syntax ist einfach, wie folgt:
+.RS
+.sp
+.nf
+.ne 7
+# Kommentar
+; Kommentar
+
+Token = Wert
+.fi
+.RE
+.PP
+Beachten Sie, dass leere Zeilen sowie Leerräume vor und nach einem Token
+oder einem Wert ignoriert werden, obwohl ein Token auch Leerraum enthalten
+kann. Zeilen, die mit einem \fI#\fP oder \fI;\fP beginnen, werden als
+Kommentarzeilen angesehen und ignoriert.
+
+Falls eine Zeile mit einem einzelnen \fB\-\fP beginnt, werden alle
+fehlschlagenden Versuche, den Wert zu setzen, ignoriert.
+
+.SH ANMERKUNGEN
+Da die Datei \fB/etc/sysctl.conf\fP zur Außerkraftsetzung standardmäßiger Werte
+der Kernelparameter verwendet wird, ist in der Datei nur eine kleine Anzahl
+Parameter vordefiniert. Verwenden Sie \fI/sbin/sysctl\ \-a\fP oder folgen Sie
+\fBsysctl\fP(8), um alle möglichen Parameter aufzulisten. Die Beschreibungen
+der einzelnen Parameter finden Sie in der Kerneldokumentation.
+
+Aufgrund einer Beschränkung der \fI/proc\fP\-Einträge im Linux\-Kernel ist die
+maximal mögliche Zeilenlänge auf 4096 Zeichen begrenzt.
+.SH BEISPIEL
+.RS
+.sp
+.nf
+.ne 7
+# sysctl.conf sample
+#
+ kernel.domainname = example.com
+; this one has a space which will be written to the sysctl!
+ kernel.modprobe = /sbin/mod probe
+.fi
+.RE
+.PP
+.SH DATEIEN
+\fI/etc/sysctl.d/*.conf\fP
+.br
+\fI/run/sysctl.d/*.conf\fP
+.br
+\fI/usr/local/lib/sysctl.d/*.conf\fP
+.br
+\fI/usr/lib/sysctl.d/*.conf\fP
+.br
+\fI/lib/sysctl.d/*.conf\fP
+.br
+\fI/etc/sysctl.conf\fP
+
+Die Pfade, aus denen \fBsysctl\fP Dateien vorlädt, existieren
+üblicherweise. Siehe auch die Option \fB\-\-system\fP zu \fBsysctl\fP.
+.SH "SIEHE AUCH"
+\fBsysctl\fP(8)
+.SH AUTOR
+.UR staikos@0wned.org
+George Staikos
+.UE
+.SH "FEHLER MELDEN"
+Bitte schicken Sie Fehlermeldungen (auf Englisch) an
+.MT procps@freelists.org
+.ME
diff --git a/po-man/de/tload.1 b/po-man/de/tload.1
new file mode 100644
index 0000000..da6daef
--- /dev/null
+++ b/po-man/de/tload.1
@@ -0,0 +1,62 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1993 Matt Welsh <mdw@tc.cornell.edu>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH TLOAD 1 "4. April 2020" procps\-ng "Dienstprogramme für Benutzer"
+.SH BEZEICHNUNG
+tload \- grafische Darstellung der durchschnittlichen Systemlast
+.SH ÃœBERSICHT
+\fBtload\fP [\fIOptionen\fP] [\fITTY\fP]
+.SH BESCHREIBUNG
+\fBtload\fP gibt eine Grafik der aktuellen durchschnittlichen Systemlast an das
+angegebene \fITerminal\fP aus (oder an das Terminal des \fBtload\fP\-Prozesses,
+falls keines angegeben wurde).
+.SH OPTIONEN
+.TP
+\fB\-s\fP, \fB\-\-scale\fP \fIZahl\fP
+ermöglicht die Angabe eines vertikalen Maßstabes für die Anzeige (in Zeichen
+zwischen den Diagrammeinheiten). Ein kleinerer Wert bezeichnet daher einen
+größeren Maßstab und umgekehrt.
+.TP
+\fB\-d\fP, \fB\-\-delay\fP \fISekunden\fP
+legt die Zeitspanne in \fISekunden\fP zwischen den Aktualisierungen des Graphen
+fest.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+zeigt einen Hilfetext an.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+zeigt Versionsinformationen an und beendet das Programm.
+.PP
+.SH DATEIEN
+\fI/proc/loadavg\fP enthält Informationen zur Durchschnittslast
+.SH "SIEHE AUCH"
+\fBps\fP(1), \fBtop\fP(1), \fBuptime\fP(1), \fBw\fP(1)
+.SH FEHLER
+Die Option \fB\-d\fP\fI Verzögerung\fP setzt das Zeitargument für
+\fBalarm\fP(2). Falls \-d 0 angegeben ist, wird der Alarm auf 0 gesetzt, wodurch
+niemals das Signal \fBSIGALRM\fP gesendet und die Anzeige aktualisiert wird.
+.SH AUTOREN
+Branko Lankester,
+.UR david@\:ods.\:com
+David Engel
+.UE und
+.UR johnsonm@\:redhat.\:com
+Michael K. Johnson
+.UE .
+.SH "FEHLER MELDEN"
+Bitte schicken Sie Fehlermeldungen (auf Englisch) an
+.MT procps@freelists.org
+.ME
diff --git a/po-man/de/uptime.1 b/po-man/de/uptime.1
new file mode 100644
index 0000000..56c18e8
--- /dev/null
+++ b/po-man/de/uptime.1
@@ -0,0 +1,79 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH UPTIME 1 "Dezember 2012" procps\-ng "Dienstprogramme für Benutzer"
+.SH BEZEICHNUNG
+uptime \- feststellen, wie lange das System schon läuft
+.SH ÃœBERSICHT
+\fBuptime\fP [\fIOptionen\fP]
+.SH BESCHREIBUNG
+\fBuptime\fP zeigt in einer Zeile die folgenden Informationen an: die aktuelle
+Zeit, wie lange das System bereits läuft, die Anzahl der aktuell
+angemeldeten Benutzer und die durchschnittliche Auslastung des Systems in
+den letzten 1, 5 und 15 Minuten.
+.PP
+Dies sind dieselben Informationen, die auch in der Kopfzeile des Befehls
+\fBw\fP(1) angezeigt werden.
+.PP
+Die durchschnittliche Auslastung des Systems ist die durchschnittliche
+Anzahl der Prozesse, die entweder in einem lauffähigen oder nicht
+unterbrechbaren Zustand sind. Lauffähiger Zustand bedeutet, dass ein Prozess
+entweder gerade die CPU benutzt oder darauf wartet, sie benutzen zu
+können. Der nicht unterbrechbare Zustand bedeutet, dass ein Prozess auf
+einen E/A\-Zugriff wartet, beispielsweise auf die Festplatte. Die
+Durchschnitte werden über drei Zeitintervalle gebildet. Die
+durchschnittliche Auslastung wird nicht auf die Anzahl der CPUs in einem
+System normalisiert, so dass eine Auslastung von 1 bei einem System mit
+einer CPU bedeutet, dass das System zu jeder Zeit voll ausgelastet ist. Auf
+einem System mit vier CPUs bedeutet dieselbe Auslastung, dass der Rechner
+während 75% der Zeit im Leerlauf war.
+.SH OPTIONEN
+.TP
+\fB\-p\fP, \fB\-\-pretty\fP
+Uptime im schönen Format anzeigen
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Diesen Hilfetext anzeigen
+.TP
+\fB\-s\fP, \fB\-\-since\fP
+System ist hochgefahren seit, im Format »yyyy\-mm\-dd HH:MM:SS«
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Versionsinformationen anzeigen und das Programm beenden.
+.SH DATEIEN
+.TP
+\fI/var/run/utmp\fP
+Informationen darüber, wer aktuell angemeldet ist
+.TP
+\fI/proc\fP
+Prozessinformation
+.SH AUTOREN
+\fBuptime\fP wurde von
+.UR greenfie@gauss.\:rutgers.\:edu
+Larry Greenfield
+.UE
+und
+.UR johnsonm@sunsite.\:unc.\:edu
+Michael K. Johnson
+.UE
+geschrieben.
+.SH "SIEHE AUCH"
+\fBps\fP(1), \fBtop\fP(1), \fButmp\fP(5), \fBw\fP(1)
+.SH "FEHLER MELDEN"
+Bitte schicken Sie Fehlermeldungen (auf Englisch) an
+.MT procps@freelists.org
+.ME
diff --git a/po-man/de/vmstat.8 b/po-man/de/vmstat.8
new file mode 100644
index 0000000..b2bc5f2
--- /dev/null
+++ b/po-man/de/vmstat.8
@@ -0,0 +1,191 @@
+.\"
+.\" Copyright (c) 2002-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2012-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1994 Henry Ware <al172@yfn.ysu.edu>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH VMSTAT 8 "18. Januar 2023" procps\-ng System\-Administration
+.SH BEZEICHNUNG
+vmstat \- Statistiken zum virtuellen Speicher anzeigen
+.SH ÃœBERSICHT
+\fBvmstat\fP [Optionen] [\fIVerzögerung\fP [\fIAnzahl\fP]]
+.SH BESCHREIBUNG
+\fBvmstat\fP zeigt Informationen zu Prozessen, Speicher, Paging, Block\-E/A,
+Traps, Laufwerken und CPU\-Aktivität an.
+.PP
+Der erste erzeugte Bericht zeigt Durchschnittswerte seit dem letzten
+Neustart des Systems an. Weitere erzeugte Berichte beziehen diese
+Informationen auf ein Zeitintervall, das in \fIVerzögerung\fP definiert
+ist. Die Berichte zu Prozessen und Speicher werden unverzüglich ausgegeben.
+.SH OPTIONEN
+.TP
+\fIVerzögerung\fP
+gibt die \fIVerzögerung\fP zwischen Aktualisierungen in Sekunden an. Falls
+keine \fIVerzögerung\fP angegeben ist, wird nur ein Bericht ausgegeben, der die
+Durchschnittswerte seit dem Systemstart enthält.
+.TP
+\fIAnzahl\fP
+gibt die Anzahl der Aktualisierungen an. Wenn die \fIAnzahl\fP nicht angegeben,
+aber eine \fIVerzögerung\fP definiert ist, dann ist die Anzahl der
+Aktualisierungen unendlich.
+.TP
+\fB\-a\fP, \fB\-\-active\fP
+zeigt aktiven und inaktiven Speicher an. Dafür ist ein Kernel 2.5.41 oder
+neuer erforderlich.
+.TP
+\fB\-f\fP, \fB\-\-forks\fP
+Der Schalter \fB\-f\fP zeigt die Anzahl der Forks seit dem Systemstart an. Dies
+bezieht die Systemaufrufe »fork«, »vfork« und »clone« ein und entspricht der
+Gesamtzahl der erzeugten Tasks. Jeder Prozess wird durch ein oder mehrere
+Tasks repräsentiert, abhängig von der Thread\-Nutzung. Diese Anzeige wird
+nicht wiederholt.
+.TP
+\fB\-m\fP, \fB\-\-slabs\fP
+zeigt Slabinfo an.
+.TP
+\fB\-n\fP, \fB\-\-one\-header\fP
+zeigt den Header nur einmalig anstatt periodisch an.
+.TP
+\fB\-s\fP, \fB\-\-stats\fP
+zeigt eine Tabelle verschiedener Ereigniszähler und Speicherstatistiken
+an. Diese Anzeige wird nicht wiederholt.
+.TP
+\fB\-d\fP, \fB\-\-disk\fP
+zeigt Plattenstatistiken an (Kernel 2.5.70 oder neuer erforderlich).
+.TP
+\fB\-D\fP, \fB\-\-disk\-sum\fP
+zeigt eine statistische Zusammenfassung der Plattenaktivitäten an.
+.TP
+\fB\-p\fP, \fB\-\-partition\fP \fIGerät\fP
+zeigt detaillierte Statistiken zu Partitionen an (Kernel 2.5.70 oder neuer
+erforderlich).
+.TP
+\fB\-S\fP, \fB\-\-unit\fP \fIZeichen\fP
+wechselt die Einheit der Ausgabe zwischen 1000 (\fIk\fP), 1024 (\fIK\fP), 1000000
+(\fIm\fP) oder 1048576 (\fIM\fP) Byte. Beachten Sie, dass diese Änderung die Swap\-
+(si/so) oder Block\-Felder (bi/bo) nicht beeinflusst, die stets in Blöcken
+gemessen werden.
+.TP
+\fB\-t\fP, \fB\-\-timestamp\fP
+hängt an jede Zeile einen Zeitstempel an.
+.TP
+\fB\-w\fP, \fB\-\-wide\fP
+Breiter Ausgabemodus. Dieser ist sinnvoll, wenn der vorgegebene Ausgabemodus
+unerwünschte Umbrüche in den Spalten enthält, was für Systeme mit einer
+größeren Menge an Speicher vorkommt. Die Ausgabe ist breiter als 80 Zeichen
+pro Zeile.
+.TP
+\fB\-y\fP, \fB\-\-no\-first\fP
+überspringt den ersten Bericht mit Statistiken seit dem Systemstart.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+zeigt Versionsinformationen an und beendet das Programm.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+zeigt eine Hilfe an und beendet das Programm.
+.PD
+.SH "FELDBESCHREIBUNG FÃœR VM\-MODUS"
+.SS Prozesse
+.nf
+r: die Anzahl der ausführbaren Prozesse (laufend oder auf Ausführungszeit wartend).
+b: die Anzahl der blockierten Prozesse, auf Ein\-/Ausgaben zum Abschluss wartend.
+.fi
+.SS Speicher
+Diese werden von der Option \fB\-\-unit\fP beeinflusst.
+.nf
+swpd: die Menge des verwendeten Auslagerungsspeichers.
+free: die Menge des untätigen Speichers.
+buff: die Menge des als Puffer verwendeten Speichers.
+cache: die Menge des als Zwischenspeicher verwendeten Speichers.
+inact: die Menge des inaktiven Speichers (Option \fB\-a\fP)
+active: die Menge des aktiven Speichers (Option \fB\-a\fP)
+.fi
+.SS Swap
+Diese werden von der Option \fB\-\-unit\fP beeinflusst.
+.nf
+si: Speichermenge aus dem Auslagerungsspeicher geholt (/s).
+so: Speichermenge in den Auslagerungsspeicher geschrieben (/s).
+.fi
+.SS E/A
+.nf
+bi: von einem Blockgerät empfangene Kibibyte (KiB/s).
+bo: an ein Blockgerät gesendete Kibibyte (KiB/s).
+.fi
+.SS System
+.nf
+in: Anzahl der Interrupts pro Sekunde, einschließlich der Uhr.
+cs: Anzahl der Kontext\-Switches pro Sekunde.
+.fi
+.SS CPU
+Dies sind Prozentsätze der gesamten CPU\-Zeit.
+.nf
+us: Verbrauchte Zeit für Nicht\-Kernel\-Code (Benutzerzeit, einschließlich Nice\-Zeit)
+sy: Verbrauchte Zeit für Kernel\-Code (Systemzeit)
+id: Verbrauchte Zeit für Leerlauf. Vor Linux 2.5.41 bezieht dies die E/A\-Wartezeit ein.
+wa: Verbrauchte Zeit für Warten auf E/A. Vor Linux 2.5.41 bezieht dies die Leerlaufzeit ein.
+st: Von einer virtuellen Maschine abgezweigte Zeit. Vor Linux 2.6.11 ist diese unbekannt.
+gu: Verbrauchte Zeit für KVM\-Gastcode (Gastzeit, einschließlich Gast\-Nice).
+.fi
+.SH "FELDBESCHREIBUNG FÃœR PlattenMODUS"
+.SS Lesevorgänge
+.nf
+total: Gesamtzahl erfolgreich abgeschlossener Lesevorgänge
+merged: Gruppierte Lesevorgänge (resultierend in einem E/A\-Vorgang)
+sectors: Erfolgreich gelesene Sektoren
+ms: Zeit für Lesevorgänge in Millisekunden
+.fi
+.SS Schreibvorgänge
+.nf
+total: Gesamtzahl erfolgreich abgeschlossener Schreibvorgänge
+merged: Gruppierte Schreibvorgänge (resultierend in einem E/A\-Vorgang)
+sectors: Erfolgreich geschriebene Sektoren
+ms: Zeit für Schreibvorgänge in Millisekunden
+.fi
+.SS E/A
+.nf
+cur: E/A in Verarbeitung
+s: für E/A verbrauchte Sekunden
+.fi
+.SH "FELDBESCHREIBUNG FÃœR PLATTENPARTITIONSMODUS"
+.nf
+reads: Gesamtzahl der Lesevorgänge auf dieser Partition
+read sectors: Insgesamt gelesene Sektoren auf dieser Partition
+writes : Gesamtzahl der Schreibvorgänge auf dieser Partition
+requested writes: Gesamtzahl der für diese Partition
+ angeforderten Schreibvorgänge
+.fi
+.SH "FELDBESCHREIBUNG FÃœR SLAB\-MODUS"
+Der Slab\-Modus zeigt Statistiken pro Slab an; weitere Informationen hierzu
+finden Sie in \fBslabinfo\fP(5).
+.PP
+.nf
+cache: Zwischenspeichername
+num: Anzahl der gegenwärtig aktiven Objekte
+total: Gesamtzahl der verfügbaren Objekte
+size: Größe jedes Objekts
+pages: Anzahl der Seiten mit mindestens einem aktiven Objekt
+.fi
+.SH ANMERKUNGEN
+\fBvmstat\fP benötigt Lesezugriff auf Dateien unterhalb von \fI/proc\fP. Die
+Option \fB\-m\fP erfordert Lesezugriff auf \fI/proc/slabinfo\fP, was bei
+Standardbenutzern unter Umständen nicht der Fall ist. Auch die
+Einhängeoptionen für \fI/proc\fP, wie beispielsweise \fIsubset=PID\fP, könnten
+sich darauf auswirken, was tatsächlich angezeigt wird.
+.SH "SIEHE AUCH"
+\fBfree\fP(1), \fBiostat\fP(1), \fBmpstat\fP(1), \fBps\fP(1), \fBsar\fP(1), \fBtop\fP(1),
+\fBslabinfo\fP(5)
+.SH "FEHLER MELDEN"
+Bitte schicken Sie Fehlermeldungen (auf Englisch) an
+.MT procps@freelists.org
+.ME
diff --git a/po-man/de/w.1 b/po-man/de/w.1
new file mode 100644
index 0000000..3c48da4
--- /dev/null
+++ b/po-man/de/w.1
@@ -0,0 +1,107 @@
+.\"
+.\" Copyright (c) 2009-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2015-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2012-2013 Jaromir Capik <jcapik@redhat.com>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2004 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH W 1 "15. Januar 2023" procps\-ng "Dienstprogramme für Benutzer"
+.SH BEZEICHNUNG
+w \- anzeigen, welche Benutzer angemeldet sind und was sie machen.
+.SH ÃœBERSICHT
+\fBw\fP [\fIOptionen\fP] [\fIBenutzer\fP]
+.SH BESCHREIBUNG
+\fBw\fP zeigt Informationen über die gerade angemeldeten Benutzer und ihre
+Prozesse an. Die Kopfzeile enthält in dieser Reihenfolge die aktuelle Zeit,
+die Laufzeit des Systems, wie viele Benutzer gerade angemeldet sind und die
+durchschnittliche Systemlast der letzten 1, 5 und 15 Minuten.
+.PP
+Die folgenden Daten werden für jeden Benutzer angezeigt: Der Anmeldename,
+der TTY\-Name, der ferne Rechner, die Anmeldezeit, die Leerlaufzeit, JCPU,
+PCPU und die Befehlszeile des laufenden Prozesses.
+.PP
+Die JCPU\-Zeit ist die Zeit, die von allen Prozessen genutzt wurde, die zu
+dem jeweiligen Terminal gehören. Sie enthält keine abgeschlossenen
+Hintergrund\-Aufträge, jedoch die derzeit laufenden Hintergrund\-Aufträge.
+.PP
+Die PCPU\-Zeit ist die Zeit, die vom derzeit laufenden Prozess bisher genutzt
+wurde und im Feld »what« benannt ist.
+.SH BEFEHLSZEILENOPTIONEN
+.TP
+\fB\-h\fP, \fB\-\-no\-header\fP
+gibt keine Kopfzeile aus.
+.TP
+\fB\-u\fP, \fB\-\-no\-current\fP
+ignoriert den Benutzernamen, während der aktuelle Prozess und die CPU\-Zeiten
+ermittelt werden. Probieren Sie die Option aus, indem Sie zunächst \fBsu\fP,
+danach \fBw\fP und \fBw \-u\fP eingeben.
+.TP
+\fB\-s\fP, \fB\-\-short\fP
+verwendet das Kurzformat. Die Anmeldezeit, die JCPU\- und die PCPU\-Zeit
+werden nicht ausgegeben.
+.TP
+\fB\-f\fP, \fB\-\-from\fP
+schaltet die Anzeige des \fBfrom\fP\-Feldes (ferner Rechnername) ein oder
+aus. Standardmäßig wird das \fBfrom\fP\-Feld nicht angezeigt. Allerdings könnte
+Ihr Systemadministrator oder Ihr Distributor eine Version kompiliert haben,
+in der das \fBfrom\fP\-Feld standardmäßig angezeigt wird.
+.TP
+\fB\-\-help\fP
+zeigt einen Hilfetext an und beendet das Programm.
+.TP
+\fB\-i\fP, \fB\-\-ip\-addr\fP
+zeigt die IP\-Adresse anstelle des Rechnernamens im Feld \fBfrom\fP an.
+.TP
+\fB\-p\fP, \fB\-\-pids\fP
+Display pid of the login process/the "what" process in the "what" field.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Versionsinformationen anzeigen.
+.TP
+\fB\-o\fP, \fB\-\-old\-style\fP
+aktiviert die Ausgabe im alten Stil. Für Leerlaufzeiten unter einer Minute
+werden Leerräume ausgegeben.
+.TP
+\fBBenutzer \fP
+zeigt Informationen nur für den angegebenen Benutzer an.
+.SH UMGEBUNGSVARIABLEN
+.TP
+PROCPS_USERLEN
+setzt die vorgegebene Breite der USER\-Spalte außer Kraft. Standardmäßig 8.
+.TP
+PROCPS_FROMLEN
+setzt die vorgegebene Breite der From\-Spalte außer Kraft. Standardmäßig 16.
+.SH DATEIEN
+.TP
+\fI/var/run/utmp\fP
+Informationen darüber, wer aktuell angemeldet ist
+.TP
+\fI/proc\fP
+Prozessinformation
+.SH "SIEHE AUCH"
+\fBfree\fP(1), \fBps\fP(1), \fBtop\fP(1), \fBuptime\fP(1), \fButmp\fP(5), \fBwho\fP(1)
+.SH AUTOREN
+\fBw\fP wurde von Charles Blake fast vollständig neu geschrieben, basierend auf
+der Version von
+.UR greenfie@\:gauss.\:rutgers.\:edu
+Larry Greenfield
+.UE
+und
+.UR johnsonm@\:redhat.\:com
+Michael K. Johnson
+.UE
+.SH "FEHLER MELDEN"
+Bitte schicken Sie Fehlermeldungen (auf Englisch) an
+.MT procps@freelists.org
+.ME
diff --git a/po-man/de/watch.1 b/po-man/de/watch.1
new file mode 100644
index 0000000..6cd7403
--- /dev/null
+++ b/po-man/de/watch.1
@@ -0,0 +1,213 @@
+.\"
+.\" Copyright (c) 2009-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2018-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2003 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH WATCH 1 "17. Januar 2023" procps\-ng "Dienstprogramme für Benutzer"
+.SH BEZEICHNUNG
+watch \- ein Programm periodisch ausführen, die Ausgabe im Vollbildmodus
+anzeigen
+.SH ÃœBERSICHT
+\fBwatch\fP [\fIOptionen\fP] \fIBefehl\fP
+.SH BESCHREIBUNG
+\fBwatch\fP führt den \fIBefehl\fP wiederholt aus, wobei dessen Ausgabe und Fehler
+angezeigt werden (der erste Bildschirminhalt). Dies ermöglicht Ihnen die
+Überwachung der Änderungen der Programmausgaben über längere
+Zeit. Standardmäßig wird der \fIBefehl\fP alle zwei Sekunden ausgeführt und
+\fBwatch\fP läuft, bis es unterbrochen wird.
+.SH OPTIONEN
+.TP
+\fB\-b\fP, \fB\-\-beep\fP
+lässt die Systemglocke ertönen, falls ein Befehl sich mit einem von Null
+verschiedenen Rückgabewert beendet.
+.TP
+\fB\-c\fP, \fB\-\-color\fP
+interpretiert ANSI\-Farb\- und \-Stilsequenzen.
+.TP
+\fB\-C\fP, \fB\-\-no\-color\fP
+interpretiert keine ANSI\-Farb\- und \-Stilsequenzen.
+.TP
+\fB\-d\fP, \fB\-\-differences\fP[=\fIpermanent\fP]
+hebt die Unterschiede zwischen aufeinander folgenden Aktualisierungen
+hervor. Falls das optionale Argument \fIpermanent\fP angegeben ist, dann zeigt
+\fBwatch\fP alles, was sich seit dem ersten Durchlauf mindestens einmal
+geändert hat.
+.TP
+\fB\-e\fP, \fB\-\-errexit\fP
+friert die Aktualisierungen bei Fehlern in der Befehlsausführung ein und
+bricht nach einem Tastendruck ab.
+.TP
+\fB\-g\fP, \fB\-\-chgexit\fP
+beendet, wenn sich die Ausgabe des \fIBefehls\fP ändert.
+.TP
+\fB\-n\fP, \fB\-\-interval\fP \fISekunden\fP
+gibt das Aktualisierungsintervall an. Der Befehl erlaubt kein Intervall
+kleiner als 0,1 Sekunden; kleinere Werte werden auf diesen Wert geändert. In
+einigen Locales funktionieren sowohl »,« als auch ».«. Mit der
+Umgebungsvariable \fBWATCH_INTERVAL\fP können Sie ein Nicht\-Standard\-Intervall
+dauerhaft setzen (den gleichen Regeln und der gleichen Formatierung
+folgend).
+.TP
+\fB\-p\fP, \fB\-\-precise\fP
+lässt \fBwatch\fP versuchen, diesen \fIBefehl\fP im angegebenen \fB\-\-interval\fP in
+\fISekunden\fP auszuführen. Versuchen Sie es mit \fBntptime\fP (falls verfügbar)
+und beachten Sie, wie die Sekundenbruchteile (nahezu) gleich bleiben,
+während sie im normalen Modus fortwährend größer werden.
+.TP
+\fB\-q\fP, \fB\-\-equexit\fP <Durchläufe>
+beendet, wenn sich die Ausgabe des \fIBefehls\fP über die angegebene Anzahl
+durchläufe nicht ändert.
+.TP
+\fB\-r\fP, \fB\-\-no\-rerun\fP
+führt das Programm bei Änderungen der Terminalgröße nicht erneut aus; die
+Ausgabe des Programms erscheint wieder zum nächsten regulären
+Ausführungszeitpunkt.
+.TP
+\fB\-t\fP, \fB\-\-no\-title\fP
+deaktiviert die Anzeige der Kopfzeile, in der Intervall, Befehl und die
+aktuelle Zeit oben in der Anzeige sowie eine nachfolgende Leerzeile
+dargestellt werden.
+.TP
+\fB\-w\fP, \fB\-\-no\-wrap\fP
+deaktiviert den Zeilenumbruch. Lange Zeilen werden gekürzt, anstatt sie in
+die nächste Zeile umzubrechen.
+.TP
+\fB\-x\fP, \fB\-\-exec\fP
+übergibt den \fIBefehl\fP an \fBexec\fP(2) anstelle von \fBsh \-c\fP, was das Setzen
+von Anführungszeichen unnötig macht, um den gewünschten Effekt zu erzielen.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+zeigt einen Hilfetext an und beendet das Programm.
+.TP
+\fB\-v\fP, \fB\-\-version\fP
+zeigt Versionsinformationen an und beendet das Programm.
+.SH EXIT\-STATUS
+.PP
+.RS
+.PD 0
+.TP
+\fB0\fP
+Erfolg.
+.TP
+\fB1\fP
+Verschiedene Fehlschläge.
+.TP
+\fB2\fP
+Forken des zu überwachenden Prozesses ist fehlgeschlagen.
+.TP
+\fB3\fP
+Ersetzen der Standardausgabe des Kindprozesses von der Schreibseite der Pipe
+aus ist fehlgeschlagen.
+.TP
+\fB4\fP
+Befehlsausführung ist fehlgeschlagen.
+.TP
+\fB5\fP
+Schließen der Schreib\-Pipe des Kindprozesses ist fehlgeschlagen.
+.TP
+\fB7\fP
+Erzeugung der IPC\-Pipe ist fehlgeschlagen.
+.TP
+\fB8\fP
+Das Ermitteln des Rückgabewertes des Kindprozesses mit \fBwaitpid\fP(2) ist
+fehlgeschlagen oder der Befehl brach aufgrund eines Fehlers ab.
+.TP
+\fBother\fP
+Die Ãœberwachung gibt den Exit\-Status des Befehls als Exit\-Status des
+Kindprozesses weiter.
+.SH UMGEBUNGSVARIABLEN
+Das Verhalten von \fBwatch\fP wird durch die folgenden Umgebungsvariablen
+beeinflusst.
+
+.TP
+\fBWATCH_INTERVAL\fP
+Aktualisierungsintervall, welches den gleichen Regeln wie die
+Befehlszeilenoption \fB\-\-interval\fP folgt.
+.sp
+.SH ANMERKUNGEN
+Die Optionen werden gemäß POSIX verarbeitet (das heißt, die
+Optionsverarbeitung stoppt nach dem ersten Argument, das keine Option
+ist). Das bedeutet, dass Schalter nach dem \fIBefehl\fP nicht von \fBwatch\fP
+selbst interpretiert werden.
+.sp
+.SH FEHLER
+Bei Größenänderungen des Terminals wird der Bildschirm nicht korrekt neu
+gezeichnet, bis die nächste geplante Aktualisierung erfolgt. Jegliche
+Hervorhebungen durch \fB\-\-differences\fP gehen durch diese Aktualisierung
+ebenfalls verloren. Wenn Sie die Option \fB\-\-no\-rerun\fP verwenden, erfolgt
+keine Ausgabe.
+
+Nicht darstellbare Zeichen werden aus der Programmausgabe
+entfernt. Verwenden Sie \fBcat \-v\fP als Teil der Befehls\-Pipeline, wenn Sie
+diese sehen wollen.
+
+Kombinierende Zeichen, die mit einem Zeichen in der letzten Spalte des
+Bildschirms angezeigt werden sollen, könnten eine Spalte vorher erscheinen
+oder überhaupt nicht dargestellt werden.
+
+Kombinierende Zeichen werden im Modus \fB\-\-differences\fP nie als Unterschiede
+gewertet. Es wird nur das Basiszeichen ausgewertet.
+
+Leere Zeilen direkt nach einer Zeile, die in der letzten Spalte endet,
+werden nicht angezeigt.
+
+Der Modus \fB\-\-precise\fP verfügt noch nicht über eine fortgeschrittene
+Technologie zur zeitlichen Verzerrungskompensierung eines Befehls, dessen
+Ausführung mehr als die als \fB\-\-interval\fP angegebenen \fISekunden\fP
+benötigt. \fBwatch\fP kann auch in einen Zustand gelangen, wo es so viele
+Befehlsausführungen auslöst, wie es kann, um frühere Ausführungen
+aufzuholen, die länger als das \fB\-\-interval\fP benötigen (zum Beispiel wenn
+\fBnetstat\fP(8) eine unglaublich lange Zeit bei einem DNS\-Suchvorgang
+braucht).
+.sp
+.SH BEISPIELE
+.PP
+Nach neuen Mails schauen:
+.IP
+watch \-n 60 from
+.PP
+Den Inhalt eines Verzeichnisses auf Änderungen überwachen:
+.IP
+watch \-d ls \-l
+.PP
+Nur nach den Dateien des Benutzers »joe« schauen:
+.IP
+watch \-d 'ls \-l | fgrep joe'
+.PP
+Die Effekte von Anführungszeichen sehen:
+.IP
+watch echo $$
+.br
+watch echo '$$'
+.br
+watch echo "'"'$$'"'"
+.PP
+Um den Effekt der genauen Zeithaltung zu beobachten, versuchen Sie, \fI\-p\fP zu
+Folgendem hinzuzufügen:
+.IP
+watch \-n 10 sleep 1
+.PP
+Beobachten, wenn Ihr Administrator den neuesten Kernel installiert:
+.IP
+watch uname \-r
+.PP
+(Beachten Sie, dass nicht garantiert werden kann, dass \fB\-p\fP nach einem
+Neustart noch funktioniert, insbesondere im Hinblick auf \fBntpdate\fP (falls
+verfügbar) oder andere die Zeit beeinflussende Startmechanismen)
+.sp
+.SH "FEHLER MELDEN"
+Bitte schicken Sie Fehlermeldungen (auf Englisch) an
+.MT procps@freelists.org
+.ME
diff --git a/po-man/fr.po b/po-man/fr.po
new file mode 100644
index 0000000..f15e297
--- /dev/null
+++ b/po-man/fr.po
@@ -0,0 +1,21039 @@
+# French translation for procps-ng-man.
+# Copyright (C) 2019 Free Software Foundation, Inc.
+# This file is distributed under the same license as the procps-ng package.
+# Sylvain Archenault <sylvain.archenault@laposte.net>, 2006.
+# Frédéric Zulian <zulian@free.fr>, 2006.
+# Gregory Colpart <reg@evolix.fr>, 2006.
+# Philippe Piette <foudre-blanche@skynet.be>, 2006.
+# Julien Cristau <julien.cristau@ens-lyon.org>, 2006.
+# Thomas Huriaux <thomas.huriaux@gmail.com>, 2006, 2007.
+# Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, 2006.
+# Jean-Baka Domelevo-Entfellner <domelevo@gmail.com>, 2006.
+# Florentin Duneau <f.baced@wanadoo.fr>, 2006.
+# Philippe Piette <foudre-blanche@skynet.be>, 2006, 2007.
+# Florentin Duneau <fduneau@gmail.com>, 2008-2010.
+# David Prévot <david@tilapin.org>, 2010-2014.
+# Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>, 2020.
+# Jean-Philippe MENGUAL <jpmengual@debian.org>, 2020.
+# Stéphane Aulery <lkppo@free.fr>, 2020-2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: procps-ng-man 3.3.17rc1\n"
+"Report-Msgid-Bugs-To: Procps list <procps@freelists.org>\n"
+"POT-Creation-Date: 2023-08-19 17:38+1000\n"
+"PO-Revision-Date: 2021-08-20 00:10+0200\n"
+"Last-Translator: Stéphane Aulery <lkppo@free.fr>\n"
+"Language-Team: French <traduc@traduc.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"X-Generator: Lokalize 1.5\n"
+"Plural-Forms: nplurals=2; plural=(n > 1);\n"
+
+#. type: TH
+#: ../man/free.1:14
+#, no-wrap
+msgid "FREE"
+msgstr "FREE"
+
+#. type: TH
+#: ../man/free.1:14
+#, fuzzy, no-wrap
+#| msgid "2018-05-31"
+msgid "2023-05-02"
+msgstr "31-05-2018"
+
+#. type: TH
+#: ../man/free.1:14 ../man/kill.1:12 ../man/pgrep.1:13 ../man/pmap.1:19
+#: ../man/pwdx.1:12 ../man/skill.1:12 ../man/slabtop.1:14 ../man/sysctl.8:14
+#: ../man/sysctl.conf.5:13 ../man/tload.1:12 ../man/uptime.1:13
+#: ../man/vmstat.8:13 ../man/w.1:14 ../man/watch.1:13 ../man/ps.1:13
+#: ../man/top.1:62
+#, no-wrap
+msgid "procps-ng"
+msgstr "procps-ng"
+
+#. type: TH
+#: ../man/free.1:14 ../man/kill.1:12 ../man/pgrep.1:13 ../man/pidof.1:13
+#: ../man/pmap.1:19 ../man/pwdx.1:12 ../man/skill.1:12 ../man/slabtop.1:14
+#: ../man/tload.1:12 ../man/uptime.1:13 ../man/w.1:14 ../man/watch.1:13
+#: ../man/ps.1:13 ../man/top.1:62
+#, no-wrap
+msgid "User Commands"
+msgstr "Commandes de l'utilisateur"
+
+#. type: SH
+#: ../man/free.1:15 ../man/kill.1:13 ../man/pgrep.1:14 ../man/pidof.1:14
+#: ../man/pmap.1:20 ../man/pwdx.1:13 ../man/skill.1:13 ../man/slabtop.1:15
+#: ../man/sysctl.8:15 ../man/sysctl.conf.5:14 ../man/tload.1:13
+#: ../man/uptime.1:14 ../man/vmstat.8:14 ../man/w.1:15 ../man/watch.1:14
+#: ../man/ps.1:27 ../man/top.1:67 ../man/procps.3:15 ../man/procps_misc.3:15
+#: ../man/procps_pids.3:15
+#, no-wrap
+msgid "NAME"
+msgstr "NOM"
+
+#. type: Plain text
+#: ../man/free.1:17
+msgid "free - Display amount of free and used memory in the system"
+msgstr "free - Afficher la quantité de mémoire libre et utilisée du système"
+
+#. type: SH
+#: ../man/free.1:17 ../man/kill.1:15 ../man/pgrep.1:16 ../man/pidof.1:16
+#: ../man/pmap.1:22 ../man/pwdx.1:15 ../man/skill.1:15 ../man/slabtop.1:17
+#: ../man/sysctl.8:17 ../man/tload.1:15 ../man/uptime.1:16 ../man/vmstat.8:16
+#: ../man/w.1:17 ../man/watch.1:16 ../man/ps.1:29 ../man/top.1:72
+#: ../man/procps.3:18 ../man/procps_misc.3:17 ../man/procps_pids.3:18
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "SYNOPSIS"
+
+#. type: Plain text
+#: ../man/free.1:20
+msgid "B<free> [I<options>]"
+msgstr "B<free> [I<options>]"
+
+#. type: SH
+#: ../man/free.1:20 ../man/kill.1:18 ../man/pgrep.1:25 ../man/pidof.1:30
+#: ../man/pmap.1:25 ../man/skill.1:25 ../man/slabtop.1:20 ../man/sysctl.8:23
+#: ../man/sysctl.conf.5:16 ../man/tload.1:18 ../man/uptime.1:19
+#: ../man/vmstat.8:20 ../man/w.1:20 ../man/watch.1:19 ../man/ps.1:31
+#: ../man/ps.1:1002 ../man/top.1:77 ../man/procps.3:67 ../man/procps_misc.3:49
+#: ../man/procps_pids.3:61
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "DESCRIPTION"
+
+#. type: Plain text
+#: ../man/free.1:26
+msgid ""
+"B<free> displays the total amount of free and used physical and swap memory "
+"in the system, as well as the buffers and caches used by the kernel. The "
+"information is gathered by parsing /proc/meminfo. The displayed columns are:"
+msgstr ""
+"B<free> affiche la quantité totale de mémoire physique et d'espace d'échange "
+"libre et utilisée par le système, ainsi que les tampons et caches utilisés "
+"par le noyau. Les renseignements sont rassemblés en analysant I</proc/"
+"meminfo>. Les colonnes affichées sont les suivantes."
+
+#. type: TP
+#: ../man/free.1:26
+#, no-wrap
+msgid "B<total>"
+msgstr "B<total>"
+
+#. type: Plain text
+#: ../man/free.1:30
+msgid ""
+"Total usable memory (MemTotal and SwapTotal in /proc/meminfo). This includes "
+"the physical and swap memory minus a few reserved bits and kernel binary "
+"code."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:30
+#, no-wrap
+msgid "B<used>"
+msgstr "B<used>"
+
+#. type: Plain text
+#: ../man/free.1:33
+#, fuzzy
+#| msgid ""
+#| "Used memory (calculated as B<total> - B<free> - B<buffers> - B<cache>)"
+msgid "Used or unavailable memory (calculated as B<total> - B<available>)"
+msgstr ""
+"Mémoire utilisée (calculée comme B<total> - B<free> - B<buffers> - B<cache>)"
+
+#. type: TP
+#: ../man/free.1:33
+#, no-wrap
+msgid "B<free>"
+msgstr "B<free>"
+
+#. type: Plain text
+#: ../man/free.1:36
+msgid "Unused memory (MemFree and SwapFree in /proc/meminfo)"
+msgstr "Mémoire inutilisée (MemFree et SwapFree dans I</proc/meminfo>)"
+
+#. type: TP
+#: ../man/free.1:36
+#, no-wrap
+msgid "B<shared>"
+msgstr "B<shared>"
+
+#. type: Plain text
+#: ../man/free.1:39
+msgid "Memory used (mostly) by tmpfs (Shmem in /proc/meminfo)"
+msgstr "Mémoire utilisée surtout par tmpfs (Shmem dans I</proc/meminfo>)"
+
+#. type: TP
+#: ../man/free.1:39
+#, no-wrap
+msgid "B<buffers>"
+msgstr "B<buffers>"
+
+#. type: Plain text
+#: ../man/free.1:42
+msgid "Memory used by kernel buffers (Buffers in /proc/meminfo)"
+msgstr ""
+"Mémoire utilisée par les tampons du noyau (Buffers dans I</proc/meminfo>)"
+
+#. type: TP
+#: ../man/free.1:42
+#, no-wrap
+msgid "B<cache>"
+msgstr "B<cache>"
+
+#. type: Plain text
+#: ../man/free.1:45
+msgid ""
+"Memory used by the page cache and slabs (Cached and SReclaimable in /proc/"
+"meminfo)"
+msgstr ""
+"Mémoire utilisée par le cache de page et les slabs (Cached et SReclaimable "
+"dans I</proc/meminfo>)"
+
+#. type: TP
+#: ../man/free.1:45
+#, no-wrap
+msgid "B<buff/cache>"
+msgstr "B<buff/cache>"
+
+#. type: Plain text
+#: ../man/free.1:48
+msgid "Sum of B<buffers> and B<cache>"
+msgstr "Somme de B<buffers> et B<cache>"
+
+#. type: TP
+#: ../man/free.1:48
+#, no-wrap
+msgid "B<available>"
+msgstr "B<available>"
+
+#. type: Plain text
+#: ../man/free.1:57
+msgid ""
+"Estimation of how much memory is available for starting new applications, "
+"without swapping. Unlike the data provided by the B<cache> or B<free> "
+"fields, this field takes into account page cache and also that not all "
+"reclaimable memory slabs will be reclaimed due to items being in use "
+"(MemAvailable in /proc/meminfo, available on kernels 3.14, emulated on "
+"kernels 2.6.27+, otherwise the same as B<free>)"
+msgstr ""
+"Estimation de la quantité de mémoire disponible pour le démarrage de "
+"nouvelles applications, sans utiliser l’espace d’échange. Contrairement aux "
+"données fournies par les champs B<cache> ou B<free>, ce champ tient compte "
+"du cache de page et aussi du fait que tous les slabs de mémoire récupérables "
+"seront récupérés à cause des éléments utilisés (MemAvailable dans I</proc/"
+"meminfo>, disponible à partir du noyau 3.14, émulé à partir du noyau 2.6.27, "
+"sinon identique à B<free>)"
+
+#. type: SH
+#: ../man/free.1:57 ../man/kill.1:34 ../man/pgrep.1:53 ../man/pidof.1:34
+#: ../man/pmap.1:29 ../man/pwdx.1:18 ../man/skill.1:42 ../man/slabtop.1:25
+#: ../man/tload.1:25 ../man/uptime.1:36 ../man/vmstat.8:29 ../man/watch.1:26
+#, no-wrap
+msgid "OPTIONS"
+msgstr "OPTIONS"
+
+#. type: TP
+#: ../man/free.1:58
+#, no-wrap
+msgid "B<-b>, B<--bytes>"
+msgstr "B<-b>, B<--bytes>"
+
+#. type: Plain text
+#: ../man/free.1:61
+msgid "Display the amount of memory in bytes."
+msgstr "Afficher la quantité de mémoire en octets."
+
+#. type: TP
+#: ../man/free.1:61
+#, no-wrap
+msgid "B<-k>, B<--kibi>"
+msgstr "B<-k>, B<--kibi>"
+
+#. type: Plain text
+#: ../man/free.1:64
+msgid "Display the amount of memory in kibibytes. This is the default."
+msgstr ""
+"Afficher la quantité de mémoire en kibioctets. Il s'agit du comportement par "
+"défaut."
+
+#. type: TP
+#: ../man/free.1:64
+#, no-wrap
+msgid "B<-m>, B<--mebi>"
+msgstr "B<-m>, B<--mebi>"
+
+#. type: Plain text
+#: ../man/free.1:67
+msgid "Display the amount of memory in mebibytes."
+msgstr "Afficher la quantité de mémoire en mébioctets."
+
+#. type: TP
+#: ../man/free.1:67
+#, no-wrap
+msgid "B<-g>, B<--gibi>"
+msgstr "B<-g>, B<--gibi>"
+
+#. type: Plain text
+#: ../man/free.1:70
+msgid "Display the amount of memory in gibibytes."
+msgstr "Afficher la quantité de mémoire en gibioctets."
+
+#. type: TP
+#: ../man/free.1:70
+#, no-wrap
+msgid "B<--tebi>"
+msgstr "B<--tebi>"
+
+#. type: Plain text
+#: ../man/free.1:73
+msgid "Display the amount of memory in tebibytes."
+msgstr "Afficher la quantité de mémoire en tébioctets."
+
+#. type: TP
+#: ../man/free.1:73
+#, no-wrap
+msgid "B<--pebi>"
+msgstr "B<--pebi>"
+
+#. type: Plain text
+#: ../man/free.1:76
+msgid "Display the amount of memory in pebibytes."
+msgstr "Afficher la quantité de mémoire en pébioctets."
+
+#. type: TP
+#: ../man/free.1:76
+#, no-wrap
+msgid "B<--kilo>"
+msgstr "B<--kilo>"
+
+#. type: Plain text
+#: ../man/free.1:79
+msgid "Display the amount of memory in kilobytes. Implies --si."
+msgstr "Afficher la quantité de mémoire en kilooctets. Implique --si."
+
+#. type: TP
+#: ../man/free.1:79
+#, no-wrap
+msgid "B<--mega>"
+msgstr "B<--mega>"
+
+#. type: Plain text
+#: ../man/free.1:82
+msgid "Display the amount of memory in megabytes. Implies --si."
+msgstr "Afficher la quantité de mémoire en mégaoctets. Implique --si."
+
+#. type: TP
+#: ../man/free.1:82
+#, no-wrap
+msgid "B<--giga>"
+msgstr "B<--giga>"
+
+#. type: Plain text
+#: ../man/free.1:85
+msgid "Display the amount of memory in gigabytes. Implies --si."
+msgstr "Afficher la quantité de mémoire en gigaoctets. Implique --si."
+
+#. type: TP
+#: ../man/free.1:85
+#, no-wrap
+msgid "B<--tera>"
+msgstr "B<--tera>"
+
+#. type: Plain text
+#: ../man/free.1:88
+msgid "Display the amount of memory in terabytes. Implies --si."
+msgstr "Afficher la quantité de mémoire en téraoctets. Implique --si."
+
+#. type: TP
+#: ../man/free.1:88
+#, no-wrap
+msgid "B<--peta>"
+msgstr "B<--peta>"
+
+#. type: Plain text
+#: ../man/free.1:91
+msgid "Display the amount of memory in petabytes. Implies --si."
+msgstr "Afficher la quantité de mémoire en pétaoctets. Implique --si."
+
+#. type: TP
+#: ../man/free.1:91
+#, no-wrap
+msgid "B<-h>, B<--human>"
+msgstr "B<-h>, B<--human>"
+
+#. type: Plain text
+#: ../man/free.1:95
+msgid ""
+"Show all output fields automatically scaled to shortest three digit unit and "
+"display the units of print out. Following units are used."
+msgstr ""
+"Montrer tous les champs automatiquement à l'échelle la plus appropriée : le "
+"plus petit nombre à trois chiffres affiché avec l'unité. Les unités "
+"suivantes sont utilisées."
+
+#. type: Plain text
+#: ../man/free.1:103
+#, no-wrap
+msgid ""
+" B = bytes\n"
+" Ki = kibibyte\n"
+" Mi = mebibyte\n"
+" Gi = gibibyte\n"
+" Ti = tebibyte\n"
+" Pi = pebibyte\n"
+msgstr ""
+" B = octets\n"
+" Ki = kibioctets\n"
+" Mi = mébioctets\n"
+" Gi = gibioctets\n"
+" Ti = tébioctets\n"
+" Pi = pébioctets\n"
+
+#. type: Plain text
+#: ../man/free.1:107
+msgid ""
+"If unit is missing, and you have exbibyte of RAM or swap, the number is in "
+"tebibytes and columns might not be aligned with header."
+msgstr ""
+"En l'absence d'unité, pour des quantités de l'ordre du exaoctet de RAM ou "
+"d'espace d'échange, le nombre est en tébioctet et les colonnes risquent de "
+"ne pas être alignées avec l'en-tête."
+
+#. type: TP
+#: ../man/free.1:107 ../man/vmstat.8:89
+#, no-wrap
+msgid "B<-w>, B<--wide>"
+msgstr "B<-w>, B<--wide>"
+
+#. type: Plain text
+#: ../man/free.1:112
+msgid ""
+"Switch to the wide mode. The wide mode produces lines longer than 80 "
+"characters. In this mode B<buffers> and B<cache> are reported in two "
+"separate columns."
+msgstr ""
+"Basculer en mode large. Le mode large produit des lignes plus grandes que "
+"80 caractères. Dans ce mode, B<buffers> et B<cache> sont affichés en deux "
+"colonnes séparées."
+
+#. type: TP
+#: ../man/free.1:112
+#, no-wrap
+msgid "B<-c>, B<--count> I<count>"
+msgstr "B<-c>, B<--count> I<compte>"
+
+#. type: Plain text
+#: ../man/free.1:119
+msgid "Display the result I<count> times. Requires the B<-s> option."
+msgstr "Afficher le résultat I<compte> fois. Nécessite l'option B<-s>."
+
+#. type: TP
+#: ../man/free.1:119
+#, no-wrap
+msgid "B<-l>, B<--lohi>"
+msgstr "B<-l>, B<--lohi>"
+
+#. type: Plain text
+#: ../man/free.1:122
+msgid "Show detailed low and high memory statistics."
+msgstr ""
+"Afficher les statistiques détaillées pour la mémoire basse et la mémoire "
+"haute."
+
+#. type: TP
+#: ../man/free.1:122
+#, fuzzy, no-wrap
+#| msgid "B<-s>, B<--since>"
+msgid "B<-L>, B<--line>"
+msgstr "B<-s>, B<--since>"
+
+#. type: Plain text
+#: ../man/free.1:127
+msgid ""
+"Show output on a single line, often used with the B<-s> option to show "
+"memory statistics repeatedly."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:127
+#, no-wrap
+msgid "B<-s>, B<--seconds> I<delay>"
+msgstr "B<-s>, B<--seconds> I<délai>"
+
+#. type: Plain text
+#: ../man/free.1:134
+msgid ""
+"Continuously display the result I<delay> seconds apart. You may actually "
+"specify any floating point number for I<delay> using either . or , for "
+"decimal point. B<usleep>(3) is used for microsecond resolution delay times."
+msgstr ""
+"Afficher le résultat en continu toutes les I<délai> secondes. Vous pouvez "
+"indiquer une valeur décimale pour I<délai> avec un point ou une virgule "
+"décimale. B<usleep>(3) est utilisé pour obtenir un délai avec une résolution "
+"en microseconde."
+
+#. type: TP
+#: ../man/free.1:134
+#, no-wrap
+msgid "B<--si>"
+msgstr "B<--si>"
+
+#. type: Plain text
+#: ../man/free.1:138
+msgid ""
+"Use kilo, mega, giga etc (power of 1000) instead of kibi, mebi, gibi (power "
+"of 1024)."
+msgstr ""
+"Utiliser kilo, mega, giga, etc (puissances de 1000) au lieu de kibi, mebi, "
+"gibi (puissances de 1024)."
+
+#. type: TP
+#: ../man/free.1:138
+#, no-wrap
+msgid "B<-t>, B<--total>"
+msgstr "B<-t>, B<--total>"
+
+#. type: Plain text
+#: ../man/free.1:141
+msgid "Display a line showing the column totals."
+msgstr "Afficher une ligne contenant les quantités totales des colonnes."
+
+#. type: TP
+#: ../man/free.1:141
+#, fuzzy, no-wrap
+#| msgid "B<-c>, B<--count>"
+msgid "B<-v>, B<--committed>"
+msgstr "B<-c>, B<--count>"
+
+#. type: Plain text
+#: ../man/free.1:146
+msgid ""
+"Display a line showing the memory commit limit and amount of committed/"
+"uncommitted memory. The B<total> column on this line will display the memory "
+"commit limit. This line is relevant if memory overcommit is disabled."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:146 ../man/w.1:63
+#, no-wrap
+msgid "B<--help>"
+msgstr "B<--help>"
+
+#. type: Plain text
+#: ../man/free.1:149
+msgid "Print help."
+msgstr "Afficher l'aide."
+
+#. type: TP
+#: ../man/free.1:149 ../man/pgrep.1:228 ../man/pmap.1:72 ../man/pwdx.1:19
+#: ../man/skill.1:68 ../man/slabtop.1:45 ../man/sysctl.8:116 ../man/tload.1:38
+#: ../man/uptime.1:46 ../man/vmstat.8:97 ../man/w.1:72
+#, no-wrap
+msgid "B<-V>, B<--version>"
+msgstr "B<-V>, B<--version>"
+
+#. type: Plain text
+#: ../man/free.1:152 ../man/skill.1:71 ../man/w.1:75
+msgid "Display version information."
+msgstr "Afficher les informations de version."
+
+#. type: SH
+#: ../man/free.1:153 ../man/slabtop.1:87 ../man/sysctl.8:171
+#: ../man/sysctl.conf.5:64 ../man/tload.1:42 ../man/uptime.1:49 ../man/w.1:88
+#: ../man/procps_misc.3:136
+#, no-wrap
+msgid "FILES"
+msgstr "FICHIERS"
+
+#. type: TP
+#: ../man/free.1:154
+#, no-wrap
+msgid "/proc/meminfo"
+msgstr "I</proc/meminfo>"
+
+#. type: Plain text
+#: ../man/free.1:157
+msgid "memory information"
+msgstr "Renseignements sur la mémoire"
+
+#. type: SH
+#: ../man/free.1:158 ../man/pgrep.1:301 ../man/pidof.1:69 ../man/tload.1:50
+#: ../man/watch.1:152 ../man/ps.1:2063
+#, no-wrap
+msgid "BUGS"
+msgstr "BOGUES"
+
+#. type: Plain text
+#: ../man/free.1:161
+msgid ""
+"The value for the B<shared> column is not available from kernels before "
+"2.6.32 and is displayed as zero."
+msgstr ""
+"La valeur de la colonne B<shared> n'est pas disponible pour les noyaux "
+"antérieurs à la version 2.6.32 (affiche zéro à la place)."
+
+#. type: TP
+#: ../man/free.1:161
+#, no-wrap
+msgid "Please send bug reports to"
+msgstr "Veuillez signaler les bogues à"
+
+#. type: Plain text
+#: ../man/free.1:165
+msgid "E<.UR procps@freelists.org> E<.UE>"
+msgstr "E<.UR procps@freelists.org> E<.UE>"
+
+#. type: SH
+#: ../man/free.1:165 ../man/kill.1:88 ../man/pgrep.1:317 ../man/pidof.1:76
+#: ../man/pmap.1:90 ../man/pwdx.1:25 ../man/skill.1:109 ../man/slabtop.1:91
+#: ../man/sysctl.8:185 ../man/sysctl.conf.5:83 ../man/tload.1:45
+#: ../man/uptime.1:66 ../man/vmstat.8:191 ../man/w.1:95 ../man/ps.1:2070
+#: ../man/procps.3:182 ../man/procps_misc.3:153 ../man/procps_pids.3:207
+#, no-wrap
+msgid "SEE ALSO"
+msgstr "VOIR AUSSI"
+
+#. type: Plain text
+#: ../man/free.1:169
+msgid "B<ps>(1), B<slabtop>(1), B<top>(1), B<vmstat>(8)."
+msgstr "B<ps>(1), B<slabtop>(1), B<top>(1), B<vmstat>(8)"
+
+#. type: TH
+#: ../man/kill.1:12
+#, no-wrap
+msgid "KILL"
+msgstr "KILL"
+
+#. type: TH
+#: ../man/kill.1:12 ../man/pgrep.1:13 ../man/pidof.1:13
+#, fuzzy, no-wrap
+#| msgid "2018-01-13"
+msgid "2023-01-16"
+msgstr "13 janvier 2018"
+
+#. type: Plain text
+#: ../man/kill.1:15
+msgid "kill - send a signal to a process"
+msgstr "kill - Envoyer un signal à un processus"
+
+#. type: Plain text
+#: ../man/kill.1:18
+msgid "B<kill> [options] E<lt>pidE<gt> [...]"
+msgstr "B<kill> [I<options>] I<PID> [...]"
+
+#. type: Plain text
+#: ../man/kill.1:34
+msgid ""
+"The default signal for kill is TERM. Use B<-l> or B<-L> to list available "
+"signals. Particularly useful signals include HUP, INT, KILL, STOP, CONT, "
+"and 0. Alternate signals may be specified in three ways: B<-9>, B<-SIGKILL> "
+"or B<-KILL>. Negative PID values may be used to choose whole process "
+"groups; see the PGID column in ps command output. A PID of B<-1> is "
+"special; it indicates all processes except the kill process itself and init."
+msgstr ""
+"Le I<signal> par défaut de B<kill> est B<TERM>. Les options B<-l> et B<-L> "
+"affichent les signaux disponibles. Les signaux particulièrement utiles sont "
+"B<HUP>, B<INT>, B<KILL>, B<STOP>, B<CONT> et B<0>. Les signaux peuvent être "
+"indiqués de 3 façons différentes : B<-9> B<-SIGKILL> B<-KILL>. Une valeur de "
+"I<PID> négative peut être utilisée pour sélectionner des groupes de "
+"processus tout entiers ; regardez la colonne PGID de la sortie de la "
+"commande B<ps>. Un I<PID> de valeur B<-1> est particulier : il indique tous "
+"les processus sauf le processus B<kill> lui-même et B<init>."
+
+#. type: TP
+#: ../man/kill.1:35
+#, no-wrap
+msgid "B<E<lt>pidE<gt> [...]>"
+msgstr "I<PID> [...]"
+
+#. type: Plain text
+#: ../man/kill.1:38
+msgid "Send signal to every E<lt>pidE<gt> listed."
+msgstr "Envoyer un signal à tous les I<PID> indiqués."
+
+#. type: TP
+#: ../man/kill.1:38
+#, no-wrap
+msgid "B<-E<lt>signalE<gt>>"
+msgstr "B<->I<signal>"
+
+#. type: TQ
+#: ../man/kill.1:40
+#, no-wrap
+msgid "B<-s E<lt>signalE<gt>>"
+msgstr "B<-s> I<signal>"
+
+#. type: TQ
+#: ../man/kill.1:42
+#, no-wrap
+msgid "B<--signal E<lt>signalE<gt>>"
+msgstr "B<--signal> I<signal>"
+
+#. type: Plain text
+#: ../man/kill.1:50
+msgid ""
+"Specify the B<signal> to be sent. The signal can be specified by using name "
+"or number. The behavior of signals is explained in B<signal>(7) manual "
+"page."
+msgstr ""
+"Indiquer le I<signal> à envoyer. Le signal peut être indiqué en utilisant un "
+"nom ou un nombre. Le comportement du signal est expliqué dans la page de "
+"manuel B<signal>(7)."
+
+#. type: TP
+#: ../man/kill.1:50 ../man/pgrep.1:216
+#, no-wrap
+msgid "B<-q>, B<--queue >I<value>"
+msgstr "B<-q>, B<--queue >I<valeur>"
+
+#. type: Plain text
+#: ../man/kill.1:62 ../man/pgrep.1:228
+msgid ""
+"Use B<sigqueue>(3) rather than B<kill>(2) and the value argument is used "
+"to specify an integer to be sent with the signal. If the receiving process "
+"has installed a handler for this signal using the SA_SIGINFO flag to "
+"B<sigaction>(2), then it can obtain this data via the si_value field of the "
+"siginfo_t structure."
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:62
+#, no-wrap
+msgid "B<-l>, B<--list> [I<signal>]"
+msgstr "B<-l>, B<--list> [I<signal>]"
+
+#. type: Plain text
+#: ../man/kill.1:66
+msgid ""
+"List signal names. This option has optional argument, which will convert "
+"signal number to signal name, or other way round."
+msgstr ""
+"Afficher les noms de signaux. Cette option a un paramètre facultatif qui "
+"sera converti en nom de signal, s'il s'agit d'un numéro de signal, et vice "
+"versa."
+
+#. type: TP
+#: ../man/kill.1:66 ../man/skill.1:52
+#, no-wrap
+msgid "B<-L>,B<\\ --table>"
+msgstr "B<-L>, B<--table>"
+
+#. type: Plain text
+#: ../man/kill.1:69
+msgid "List signal names in a nice table."
+msgstr "Afficher les noms de signaux en un tableau bien présenté."
+
+#. type: SH
+#: ../man/kill.1:71 ../man/pgrep.1:284 ../man/slabtop.1:96
+#: ../man/sysctl.conf.5:39 ../man/vmstat.8:185 ../man/watch.1:144
+#: ../man/ps.1:768
+#, no-wrap
+msgid "NOTES"
+msgstr "NOTES"
+
+#. type: Plain text
+#: ../man/kill.1:75
+msgid ""
+"Your shell (command line interpreter) may have a built-in kill command. You "
+"may need to run the command described here as /bin/kill to solve the "
+"conflict."
+msgstr ""
+"Votre interpréteur de commandes possède probablement une commande kill "
+"interne. Vous devriez saisir /bin/kill pour exécuter la commande décrite ici "
+"au lieu de la commande interne."
+
+#. type: SH
+#: ../man/kill.1:75 ../man/pgrep.1:240 ../man/skill.1:99 ../man/sysctl.8:143
+#: ../man/watch.1:191 ../man/ps.1:84
+#, no-wrap
+msgid "EXAMPLES"
+msgstr "EXEMPLES"
+
+#. type: TP
+#: ../man/kill.1:76
+#, no-wrap
+msgid "B<kill -9 -1>"
+msgstr "B<kill -9 -1>"
+
+#. type: Plain text
+#: ../man/kill.1:79
+msgid "Kill all processes you can kill."
+msgstr "Tuer tous les processus possibles."
+
+#. type: TP
+#: ../man/kill.1:79
+#, no-wrap
+msgid "B<kill -l 11>"
+msgstr "B<kill -l 11>"
+
+#. type: Plain text
+#: ../man/kill.1:82
+msgid "Translate number 11 into a signal name."
+msgstr "Traduire le nombre 11 en nom de signal."
+
+#. type: TP
+#: ../man/kill.1:82
+#, no-wrap
+msgid "B<kill -L>"
+msgstr "B<kill -L>"
+
+#. type: Plain text
+#: ../man/kill.1:85
+msgid "List the available signal choices in a nice table."
+msgstr "Afficher les choix de signaux disponibles en un tableau bien présenté."
+
+#. type: TP
+#: ../man/kill.1:85
+#, no-wrap
+msgid "B<kill 123 543 2341 3453>"
+msgstr "B<kill 123 543 2341 3453>"
+
+#. type: Plain text
+#: ../man/kill.1:88
+msgid "Send the default signal, SIGTERM, to all those processes."
+msgstr "Envoyer le signal B<SIGTERM> par défaut à tous ces processus."
+
+#. type: Plain text
+#: ../man/kill.1:97
+msgid ""
+"B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), B<renice>(1), "
+"B<signal>(7), B<sigqueue>(3), B<skill>(1)"
+msgstr ""
+"B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), B<renice>(1), "
+"B<signal>(7), B<sigqueue>(3), B<skill>(1)"
+
+#. type: SH
+#: ../man/kill.1:97 ../man/pmap.1:93 ../man/pwdx.1:28 ../man/skill.1:117
+#: ../man/ps.1:2076
+#, no-wrap
+msgid "STANDARDS"
+msgstr "STANDARDS"
+
+#. type: Plain text
+#: ../man/kill.1:101
+#, fuzzy
+#| msgid ""
+#| "This command meets appropriate standards. The B<-L> flag is Linux-"
+#| "specific."
+msgid ""
+"This command meets appropriate standards. The B<-L> flag is Linux-specific."
+msgstr ""
+"Cette commande est conforme aux normes. L'option B<-L> est spécifique à "
+"Linux."
+
+#. type: SH
+#: ../man/kill.1:101 ../man/pgrep.1:327 ../man/pidof.1:79 ../man/pwdx.1:32
+#: ../man/skill.1:119 ../man/sysctl.8:189 ../man/sysctl.conf.5:85
+#: ../man/ps.1:2093
+#, no-wrap
+msgid "AUTHOR"
+msgstr "AUTEUR"
+
+#. type: Plain text
+#: ../man/kill.1:107
+#, fuzzy
+#| msgid ""
+#| "E<.MT albert@users.sf.net> Albert Cahalan E<.ME> wrote kill in 1999 to "
+#| "replace a bsdutils one that was not standards compliant. The util-linux "
+#| "one might also work correctly."
+msgid ""
+"E<.UR albert@users.sf.net> Albert Cahalan E<.UE> wrote kill in 1999 to "
+"replace a bsdutils one that was not standards compliant. The util-linux one "
+"might also work correctly."
+msgstr ""
+"Albert Cahalan <albert@users.sf.net> a écrit kill en 1999 pour remplacer la "
+"version « bsdutils » qui ne suivait pas les normes. La version d’util-linux "
+"devrait aussi fonctionner correctement."
+
+#. type: SH
+#: ../man/kill.1:107 ../man/pgrep.1:331 ../man/pmap.1:97 ../man/pwdx.1:37
+#: ../man/skill.1:125 ../man/slabtop.1:120 ../man/sysctl.8:193
+#: ../man/sysctl.conf.5:89 ../man/tload.1:66 ../man/uptime.1:71
+#: ../man/vmstat.8:199 ../man/w.1:112 ../man/watch.1:229
+#, no-wrap
+msgid "REPORTING BUGS"
+msgstr "BOGUES"
+
+#. type: Plain text
+#: ../man/kill.1:110 ../man/pgrep.1:334 ../man/pmap.1:100 ../man/pwdx.1:40
+#: ../man/skill.1:128 ../man/slabtop.1:123 ../man/sysctl.8:196
+#: ../man/sysctl.conf.5:92 ../man/tload.1:69 ../man/uptime.1:74
+#: ../man/vmstat.8:202 ../man/w.1:115 ../man/watch.1:232
+msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE>"
+msgstr "Signalez les bogues à E<lt>I<procps@freelists.org>E<gt>"
+
+#. type: TH
+#: ../man/pgrep.1:13
+#, no-wrap
+msgid "PGREP"
+msgstr "PGREP"
+
+#. type: Plain text
+#: ../man/pgrep.1:16
+#, fuzzy
+#| msgid ""
+#| "pgrep, pkill - look up or signal processes based on name and other "
+#| "attributes"
+msgid ""
+"pgrep, pkill, pidwait - look up, signal, or wait for processes based on name "
+"and other attributes"
+msgstr ""
+"pgrep, pkill - Rechercher ou envoyer un signal à des processus en fonction "
+"de leur nom et d'autres propriétés"
+
+#. type: Plain text
+#: ../man/pgrep.1:19
+msgid "B<pgrep> [options] pattern"
+msgstr "B<pgrep> [B<options>] I<motif>"
+
+#. type: Plain text
+#: ../man/pgrep.1:22
+msgid "B<pkill> [options] pattern"
+msgstr "B<pkill> [B<options>] I<motif>"
+
+#. type: Plain text
+#: ../man/pgrep.1:25
+#, fuzzy
+#| msgid "B<pwait> [options] pattern"
+msgid "B<pidwait> [options] pattern"
+msgstr "B<pwait> [B<options>] I<motif>"
+
+#. type: Plain text
+#: ../man/pgrep.1:30
+msgid ""
+"B<pgrep> looks through the currently running processes and lists the process "
+"IDs which match the selection criteria to stdout. All the criteria have to "
+"match. For example,"
+msgstr ""
+"B<pgrep> parcourt les processus en cours d'exécution et affiche sur la "
+"sortie standard les identifiants des processus qui correspondent aux "
+"critères de sélection donnés. Tous les critères doivent correspondre. Par "
+"exemple\\ :"
+
+#. type: Plain text
+#: ../man/pgrep.1:32
+msgid "$ pgrep -u root sshd"
+msgstr "$ pgrep -u root sshd"
+
+#. type: Plain text
+#: ../man/pgrep.1:38
+msgid ""
+"will only list the processes called B<sshd> AND owned by B<root>. On the "
+"other hand,"
+msgstr ""
+"n'affichera que les processus appelés B<sshd> ET qui appartiennent à "
+"B<root>. En revanche,"
+
+#. type: Plain text
+#: ../man/pgrep.1:40
+msgid "$ pgrep -u root,daemon"
+msgstr "$ pgrep -u root,daemon"
+
+#. type: Plain text
+#: ../man/pgrep.1:45
+msgid "will list the processes owned by B<root> OR B<daemon>."
+msgstr "affichera les processus appartenant à B<root> OU à B<daemon>."
+
+#. type: Plain text
+#: ../man/pgrep.1:50
+msgid ""
+"B<pkill> will send the specified signal (by default B<SIGTERM>) to each "
+"process instead of listing them on stdout."
+msgstr ""
+"B<pkill> enverra le signal indiqué (B<SIGTERM> par défaut) à chaque "
+"processus au lieu de les afficher sur la sortie standard."
+
+#. type: Plain text
+#: ../man/pgrep.1:53
+#, fuzzy
+#| msgid ""
+#| "B<pkill> will send the specified signal (by default B<SIGTERM>) to each "
+#| "process instead of listing them on stdout."
+msgid ""
+"B<pidwait> will wait for each process instead of listing them on stdout."
+msgstr ""
+"B<pkill> enverra le signal indiqué (B<SIGTERM> par défaut) à chaque "
+"processus au lieu de les afficher sur la sortie standard."
+
+#. type: TP
+#: ../man/pgrep.1:54
+#, no-wrap
+msgid "B<->I<signal>"
+msgstr "B<->I<signal>"
+
+#. type: TQ
+#: ../man/pgrep.1:56
+#, no-wrap
+msgid "B<--signal> I<signal>"
+msgstr "B<--signal> I<signal>"
+
+#. type: Plain text
+#: ../man/pgrep.1:66
+msgid ""
+"Defines the signal to send to each matched process. Either the numeric or "
+"the symbolic signal name can be used. In B<pgrep> or B<pidwait> mode only "
+"the long option can be used and has no effect unless used in conjunction "
+"with B<--require-handler> to filter to processes with a userspace signal "
+"handler present for a particular signal."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:67
+#, no-wrap
+msgid "B<-c>, B<--count>"
+msgstr "B<-c>, B<--count>"
+
+#. type: Plain text
+#: ../man/pgrep.1:74
+#, fuzzy
+#| msgid ""
+#| "Suppress normal output; instead print a count of matching processes. "
+#| "When count does not match anything, e.g. returns zero, the command will "
+#| "return non-zero value."
+msgid ""
+"Suppress normal output; instead print a count of matching processes. When "
+"count does not match anything, e.g. returns zero, the command will return "
+"non-zero value. Note that for pkill and pidwait, the count is the number of "
+"matching processes, not the processes that were successfully signaled or "
+"waited for."
+msgstr ""
+"À la place de la sortie normale, afficher le nombre de processus "
+"correspondant aux critères. S'il n'y a pas de correspondance, c'est-à-dire "
+"si zéro est renvoyé, la commande renverra une valeur non nulle."
+
+#. type: TP
+#: ../man/pgrep.1:74
+#, no-wrap
+msgid "B<-d>, B<--delimiter> I<delimiter>"
+msgstr "B<-d>, B<--delimiter> I<délimiteur>"
+
+#. type: Plain text
+#: ../man/pgrep.1:80
+msgid ""
+"Sets the string used to delimit each process ID in the output (by default a "
+"newline). (B<pgrep> only.)"
+msgstr ""
+"Déterminer la chaîne utilisée pour délimiter les PID en sortie (un saut de "
+"ligne par défaut) (seulement pour B<pgrep>)."
+
+#. type: TP
+#: ../man/pgrep.1:80
+#, no-wrap
+msgid "B<-e>, B<--echo>"
+msgstr "B<-e>, B<--echo>"
+
+#. type: Plain text
+#: ../man/pgrep.1:85
+#, fuzzy
+#| msgid "List the process name as well as the process ID. (B<pgrep> only.)"
+msgid "Display name and PID of the process being killed. (B<pkill> only.)"
+msgstr "Afficher le nom du processus avec le PID (seulement pour B<pgrep>)."
+
+#. type: TP
+#: ../man/pgrep.1:85
+#, no-wrap
+msgid "B<-f>, B<--full>"
+msgstr "B<-f>, B<--full>"
+
+#. type: Plain text
+#: ../man/pgrep.1:92
+msgid ""
+"The I<pattern> is normally only matched against the process name. When B<-"
+"f> is set, the full command line is used."
+msgstr ""
+"Le I<motif> n'est normalement comparé qu'au nom du processus. Avec B<-f>, la "
+"ligne de commande complète est utilisée."
+
+#. type: TP
+#: ../man/pgrep.1:92
+#, no-wrap
+msgid "B<-g>, B<--pgroup> I<pgrp>,..."
+msgstr "B<-g>, B<--pgroup> I<pgrp>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:101
+#, fuzzy
+#| msgid ""
+#| "Only match processes in the process group IDs listed. Process group 0 is "
+#| "translated into B<pgrep>'s, B<pkill>'s, or B<pwait>'s own process group."
+msgid ""
+"Only match processes in the process group IDs listed. Process group 0 is "
+"translated into B<pgrep>'s, B<pkill>'s, or B<pidwait>'s own process group."
+msgstr ""
+"Ne rechercher que des processus dans les groupes de processus donnés. Le "
+"groupe de processus 0 se traduit par le propre groupe de processus de "
+"B<pgrep>, B<pkill> ou B<pwait>."
+
+#. type: TP
+#: ../man/pgrep.1:101
+#, no-wrap
+msgid "B<-G>, B<--group> I<gid>,..."
+msgstr "B<-G>, B<--group> I<gid>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:105
+msgid ""
+"Only match processes whose real group ID is listed. Either the numerical or "
+"symbolical value may be used."
+msgstr ""
+"Ne rechercher que des processus dont l'identifiant de groupe réel est donné. "
+"Les valeurs utilisées peuvent être numériques ou symboliques."
+
+#. type: TP
+#: ../man/pgrep.1:105
+#, no-wrap
+msgid "B<-i>, B<--ignore-case>"
+msgstr "B<-i>, B<--ignore-case>"
+
+#. type: Plain text
+#: ../man/pgrep.1:108
+msgid "Match processes case-insensitively."
+msgstr "Recherche des processus insensible à la casse."
+
+#. type: TP
+#: ../man/pgrep.1:108
+#, no-wrap
+msgid "B<-l>, B<--list-name>"
+msgstr "B<-l>, B<--list-name>"
+
+#. type: Plain text
+#: ../man/pgrep.1:113
+msgid "List the process name as well as the process ID. (B<pgrep> only.)"
+msgstr "Afficher le nom du processus avec le PID (seulement pour B<pgrep>)."
+
+#. type: TP
+#: ../man/pgrep.1:113
+#, no-wrap
+msgid "B<-a>, B<--list-full>"
+msgstr "B<-a>, B<--list-full>"
+
+#. type: Plain text
+#: ../man/pgrep.1:118
+msgid "List the full command line as well as the process ID. (B<pgrep> only.)"
+msgstr ""
+"Afficher la ligne de commande complète avec le PID (seulement pour B<pgrep>)."
+
+#. type: TP
+#: ../man/pgrep.1:118
+#, no-wrap
+msgid "B<-n>, B<--newest>"
+msgstr "B<-n>, B<--newest>"
+
+#. type: Plain text
+#: ../man/pgrep.1:121
+msgid ""
+"Select only the newest (most recently started) of the matching processes."
+msgstr "Ne sélectionner que le processus correspondant le plus récent."
+
+#. type: TP
+#: ../man/pgrep.1:121
+#, no-wrap
+msgid "B<-o>, B<--oldest>"
+msgstr "B<-o>, B<--oldest>"
+
+#. type: Plain text
+#: ../man/pgrep.1:124
+msgid ""
+"Select only the oldest (least recently started) of the matching processes."
+msgstr "Ne sélectionner que le processus correspondant le plus ancien."
+
+#. type: TP
+#: ../man/pgrep.1:124
+#, no-wrap
+msgid "B<-O>, B<--older> I<secs>"
+msgstr "B<-O>, B<--older> I<délai>"
+
+#. type: Plain text
+#: ../man/pgrep.1:127
+msgid "Select processes older than secs."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:127
+#, no-wrap
+msgid "B<-P>, B<--parent> I<ppid>,..."
+msgstr "B<-P>, B<--parent> I<ppid>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:130
+msgid "Only match processes whose parent process ID is listed."
+msgstr "Ne sélectionner que les processus dont le PID parent est donné."
+
+#. type: TP
+#: ../man/pgrep.1:130
+#, no-wrap
+msgid "B<-s>, B<--session> I<sid>,..."
+msgstr "B<-s>, B<--session> I<sid>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:139
+#, fuzzy
+#| msgid ""
+#| "Only match processes whose process session ID is listed. Session ID 0 is "
+#| "translated into B<pgrep>'s, B<pkill>'s, or B<pwait>'s own session ID."
+msgid ""
+"Only match processes whose process session ID is listed. Session ID 0 is "
+"translated into B<pgrep>'s, B<pkill>'s, or B<pidwait>'s own session ID."
+msgstr ""
+"Ne sélectionner que les processus dont l'identifiant de session est donné. "
+"La session 0 se traduit par le propre identifiant de session de B<pgrep>, "
+"B<pkill> ou B<pwait>."
+
+#. type: TP
+#: ../man/pgrep.1:139
+#, no-wrap
+msgid "B<-t>, B<--terminal> I<term>,..."
+msgstr "B<-t>, B<--terminal> I<term>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:143
+msgid ""
+"Only match processes whose controlling terminal is listed. The terminal "
+"name should be specified without the \"/dev/\" prefix."
+msgstr ""
+"Ne sélectionner que les processus dont le terminal de contrôle est donné. Le "
+"nom du terminal doit être indiqué sans le préfixe «\\ /dev/\\ »."
+
+#. type: TP
+#: ../man/pgrep.1:143
+#, no-wrap
+msgid "B<-u>, B<--euid> I<euid>,..."
+msgstr "B<-u>, B<--euid> I<euid>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:147
+msgid ""
+"Only match processes whose effective user ID is listed. Either the "
+"numerical or symbolical value may be used."
+msgstr ""
+"Ne sélectionner que les processus dont l'UID effectif est donné. La valeur "
+"utilisée peut être numérique ou symbolique."
+
+#. type: TP
+#: ../man/pgrep.1:147
+#, no-wrap
+msgid "B<-U>, B<--uid> I<uid>,..."
+msgstr "B<-U>, B<--uid> I<uid>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:151
+msgid ""
+"Only match processes whose real user ID is listed. Either the numerical or "
+"symbolical value may be used."
+msgstr ""
+"Ne sélectionner que les processus dont l'UID réel est donné. La valeur "
+"utilisée peut être numérique ou symbolique."
+
+#. type: TP
+#: ../man/pgrep.1:151
+#, no-wrap
+msgid "B<-v>, B<--inverse>"
+msgstr "B<-v>, B<--inverse>"
+
+#. type: Plain text
+#: ../man/pgrep.1:160
+#, fuzzy
+#| msgid ""
+#| "Negates the matching. This option is usually used in B<pgrep>'s "
+#| "context. In B<pkill>'s context the short option is disabled to avoid "
+#| "accidental usage of the option."
+msgid ""
+"Negates the matching. This option is usually used in B<pgrep>'s or "
+"B<pidwait>'s context. In B<pkill>'s context the short option is disabled to "
+"avoid accidental usage of the option."
+msgstr ""
+"Inverser la sélection. Cette option est normalement utilisée dans le "
+"contexte de B<pgrep>. Dans le contexte de B<pkill>, l'option courte est "
+"désactivée pour éviter qu'elle soit utilisée par accident."
+
+#. type: TP
+#: ../man/pgrep.1:160
+#, no-wrap
+msgid "B<-w>, B<--lightweight>"
+msgstr "B<-w>, B<--lightweight>"
+
+#. type: Plain text
+#: ../man/pgrep.1:169
+#, fuzzy
+#| msgid ""
+#| "Shows all thread ids instead of pids in B<pgrep>'s or B<pwait>'s context. "
+#| "In B<pkill>'s context this option is disabled."
+msgid ""
+"Shows all thread ids instead of pids in B<pgrep>'s or B<pidwait>'s context. "
+"In B<pkill>'s context this option is disabled."
+msgstr ""
+"Montrer tous les identifiants de processus légers (« threads ») au lieu des "
+"PID dans le contexte de B<pgrep> ou B<pwait>. Dans le contexte de B<pkill>, "
+"cette option est désactivée."
+
+#. type: TP
+#: ../man/pgrep.1:169
+#, no-wrap
+msgid "B<-x>, B<--exact>"
+msgstr "B<-x>, B<--exact>"
+
+#. type: Plain text
+#: ../man/pgrep.1:175
+msgid ""
+"Only match processes whose names (or command lines if B<-f> is specified) "
+"B<exactly> match the I<pattern>."
+msgstr ""
+"Ne sélectionner que les processus dont le nom (ou la ligne de commande si B<-"
+"f> est utilisée) correspond B<exactement> au I<motif>."
+
+#. type: TP
+#: ../man/pgrep.1:175
+#, no-wrap
+msgid "B<-F>, B<--pidfile> I<file>"
+msgstr "B<-F>, B<--pidfile> I<fichier>"
+
+#. type: Plain text
+#: ../man/pgrep.1:183
+#, fuzzy
+#| msgid ""
+#| "Read I<PID>'s from file. This option is perhaps more useful for B<pkill> "
+#| "than B<pgrep>."
+msgid ""
+"Read I<PID>s from I<file>. This option is more useful for B<pkill> or "
+"B<pidwait> than B<pgrep>."
+msgstr ""
+"Lire les I<PID> dans le fichier. Cette option est peut-être plus utile pour "
+"B<pkill> que B<pgrep>."
+
+#. type: TP
+#: ../man/pgrep.1:183
+#, no-wrap
+msgid "B<-L>, B<--logpidfile>"
+msgstr "B<-L>, B<--logpidfile>"
+
+#. type: Plain text
+#: ../man/pgrep.1:186
+#, fuzzy
+#| msgid "Fail if pidfile (see -F) not locked."
+msgid "Fail if pidfile (see B<-F>) not locked."
+msgstr ""
+"Échouer si le I<fichier> de PID (consultez B<-F>) n'est pas verrouillé."
+
+#. type: TP
+#: ../man/pgrep.1:186
+#, no-wrap
+msgid "B<-r>, B<--runstates> I<D,R,S,Z,>..."
+msgstr "B<-r>, B<--runstates> I<D,R,S,Z,>..."
+
+#. type: Plain text
+#: ../man/pgrep.1:189
+msgid "Match only processes which match the process state."
+msgstr "Ne sélectionner que les processus du même état."
+
+#. type: TP
+#: ../man/pgrep.1:189
+#, fuzzy, no-wrap
+#| msgid "B<-i>, B<--ignore-case>"
+msgid "B<-A>, B<--ignore-ancestors>"
+msgstr "B<-i>, B<--ignore-case>"
+
+#. type: Plain text
+#: ../man/pgrep.1:199
+msgid ""
+"Ignore all ancestors of B<pgrep>, B<pkill>, or B<pidwait>. For example, "
+"this can be useful when elevating with B<sudo> or similar tools."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:199
+#, fuzzy, no-wrap
+#| msgid "B<-n>, B<--one-header>"
+msgid "B<-H>, B<--require-handler>"
+msgstr "B<-n>, B<--one-header>"
+
+#. type: Plain text
+#: ../man/pgrep.1:203
+msgid ""
+"Only match processes with a userspace signal handler present for the signal "
+"to be sent."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:203
+#, fuzzy, no-wrap
+#| msgid "B<--nslist >I<name>B<,...>"
+msgid "B<--cgroup >I<name>B<,...>"
+msgstr "B<--nslist> I<en>[B<,>I<en>]..."
+
+#. type: Plain text
+#: ../man/pgrep.1:207
+msgid "Match on provided control group (cgroup) v2 name. See B<cgroups>(8)"
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:207 ../man/skill.1:87
+#, no-wrap
+msgid "B<--ns >I<pid>"
+msgstr "B<--ns> I<PID>"
+
+#. type: Plain text
+#: ../man/pgrep.1:212
+msgid ""
+"Match processes that belong to the same namespaces. Required to run as root "
+"to match processes from other users. See B<--nslist> for how to limit which "
+"namespaces to match."
+msgstr ""
+"Sélectionner les processus qui appartiennent aux mêmes espaces de nommage. "
+"Doit être exécuté en tant que superutilisateur pour sélectionner les "
+"processus d’autres utilisateurs. Consultez B<--nslist> pour une manière de "
+"limiter les espaces de nommage à sélectionner."
+
+#. type: TP
+#: ../man/pgrep.1:212
+#, no-wrap
+msgid "B<--nslist >I<name>B<,...>"
+msgstr "B<--nslist> I<en>[B<,>I<en>]..."
+
+#. type: Plain text
+#: ../man/pgrep.1:216
+#, fuzzy
+#| msgid ""
+#| "Match only the provided namespaces. Available namespaces: ipc, mnt, net, "
+#| "pid, user,uts."
+msgid ""
+"Match only the provided namespaces. Available namespaces: ipc, mnt, net, "
+"pid, user, uts."
+msgstr ""
+"Ne sélectionner que les espaces de nommage fournis. Les espaces de nommage "
+"disponibles sont : ipc, mnt, net, pid, user et uts."
+
+#. type: Plain text
+#: ../man/pgrep.1:231 ../man/pmap.1:75 ../man/slabtop.1:48 ../man/sysctl.8:119
+#: ../man/tload.1:41 ../man/vmstat.8:100 ../man/watch.1:100
+msgid "Display version information and exit."
+msgstr "Afficher la version du logiciel et quitter."
+
+#. type: TP
+#: ../man/pgrep.1:231 ../man/pmap.1:69 ../man/pwdx.1:22 ../man/skill.1:65
+#: ../man/slabtop.1:48 ../man/sysctl.8:113 ../man/tload.1:35 ../man/uptime.1:40
+#: ../man/vmstat.8:100 ../man/watch.1:94
+#, no-wrap
+msgid "B<-h>, B<--help>"
+msgstr "B<-h>, B<--help>"
+
+#. type: Plain text
+#: ../man/pgrep.1:234 ../man/vmstat.8:103
+msgid "Display help and exit."
+msgstr "Afficher l'aide et quitter."
+
+#. type: SH
+#: ../man/pgrep.1:235
+#, no-wrap
+msgid "OPERANDS"
+msgstr "OPÉRANDES"
+
+#. type: TP
+#: ../man/pgrep.1:236
+#, no-wrap
+msgid "I<pattern>"
+msgstr "I<motif>"
+
+#. type: Plain text
+#: ../man/pgrep.1:240
+msgid ""
+"Specifies an Extended Regular Expression for matching against the process "
+"names or command lines."
+msgstr ""
+"Indiquer une expression rationnelle étendue utilisée pour comparer avec les "
+"noms de processus ou les lignes de commandes."
+
+#. type: Plain text
+#: ../man/pgrep.1:244
+msgid "Example 1: Find the process ID of the B<named> daemon:"
+msgstr "Exemple 1\\ : Trouver le PID du démon B<named>\\ :"
+
+#. type: Plain text
+#: ../man/pgrep.1:246
+msgid "$ pgrep -u root named"
+msgstr "$ pgrep -u root named"
+
+#. type: Plain text
+#: ../man/pgrep.1:250
+msgid "Example 2: Make B<syslog> reread its configuration file:"
+msgstr ""
+"Exemple 2\\ : Faire relire son fichier de configuration par B<syslog>\\ :"
+
+#. type: Plain text
+#: ../man/pgrep.1:252
+msgid "$ pkill -HUP syslogd"
+msgstr "$ pkill -HUP syslogd"
+
+#. type: Plain text
+#: ../man/pgrep.1:256
+msgid "Example 3: Give detailed information on all B<xterm> processes:"
+msgstr ""
+"Exemple 3\\ : Donner des informations détaillées sur tous les processus "
+"B<xterm>\\ :"
+
+#. type: Plain text
+#: ../man/pgrep.1:258
+msgid "$ ps -fp $(pgrep -d, -x xterm)"
+msgstr "$ ps -fp $(pgrep -d, -x xterm)"
+
+#. type: Plain text
+#: ../man/pgrep.1:262
+msgid "Example 4: Make all B<chrome> processes run nicer:"
+msgstr "Exemple 4 : Réduire la priorité de tous les processus B<chrome> :"
+
+#. type: Plain text
+#: ../man/pgrep.1:264
+msgid "$ renice +4 $(pgrep chrome)"
+msgstr "$ renice +4 $(pgrep chrome)"
+
+#. type: SH
+#: ../man/pgrep.1:264 ../man/pidof.1:61 ../man/pmap.1:75 ../man/watch.1:100
+#, no-wrap
+msgid "EXIT STATUS"
+msgstr "CODES DE RETOUR"
+
+#. type: TP
+#: ../man/pgrep.1:266
+#, no-wrap
+msgid "0"
+msgstr "0"
+
+#. type: Plain text
+#: ../man/pgrep.1:274
+#, fuzzy
+#| msgid ""
+#| "One or more processes matched the criteria. For pkill the process must "
+#| "also have been successfully signalled."
+msgid ""
+"One or more processes matched the criteria. For B<pkill> and B<pidwait>, one "
+"or more processes must also have been successfully signalled or waited for."
+msgstr ""
+"Un ou plusieurs processus correspondent aux critères. Pour pkill le "
+"processus doit avoir aussi été bien signalé."
+
+#. type: IP
+#: ../man/pgrep.1:274 ../man/ps.1:43 ../man/ps.1:818 ../man/ps.1:2082
+#, no-wrap
+msgid "1"
+msgstr "1"
+
+#. type: Plain text
+#: ../man/pgrep.1:277
+msgid "No processes matched or none of them could be signalled."
+msgstr "Aucun processus correspondant ou aucun signalé."
+
+#. type: IP
+#: ../man/pgrep.1:277 ../man/ps.1:45 ../man/ps.1:2084
+#, no-wrap
+msgid "2"
+msgstr "2"
+
+#. type: Plain text
+#: ../man/pgrep.1:280
+msgid "Syntax error in the command line."
+msgstr "Erreur de syntaxe dans la ligne de commande."
+
+#. type: IP
+#: ../man/pgrep.1:280 ../man/ps.1:47 ../man/ps.1:2086
+#, no-wrap
+msgid "3"
+msgstr "3"
+
+#. type: Plain text
+#: ../man/pgrep.1:283
+msgid "Fatal error: out of memory etc."
+msgstr "Erreur fatale, par exemple plus de mémoire disponible."
+
+#. type: Plain text
+#: ../man/pgrep.1:289
+#, fuzzy
+#| msgid ""
+#| "The process name used for matching is limited to the 15 characters "
+#| "present in the output of /proc/I<pid>/stat. Use the B<-f> option to "
+#| "match against the complete command line, /proc/I<pid>/cmdline."
+msgid ""
+"The process name used for matching is limited to the 15 characters present "
+"in the output of /proc/I<pid>/stat. Use the B<-f> option to match against "
+"the complete command line, /proc/I<pid>/cmdline. Threads may not have the "
+"same process name as the parent process but will have the same command line."
+msgstr ""
+"Le nom du processus utilisé pour la sélection est limité aux 15\\ caractères "
+"présents dans /proc/I<pid>/stat. Utilisez l'option B<-f> pour sélectionner "
+"en fonction de la ligne de commande complète, /proc/I<pid>/cmdline."
+
+#. type: Plain text
+#: ../man/pgrep.1:297
+#, fuzzy
+#| msgid ""
+#| "The running B<pgrep>, B<pkill>, or B<pwait> process will never report "
+#| "itself as a match."
+msgid ""
+"The running B<pgrep>, B<pkill>, or B<pidwait> process will never report "
+"itself as a match."
+msgstr ""
+"Le processus B<pgrep>, B<pkill> ou B<pwait> qui s'exécute ne se considérera "
+"jamais comme correspondant aux critères."
+
+#. type: Plain text
+#: ../man/pgrep.1:301
+msgid ""
+"The B<-O --older> option will silently fail if I</proc> is mounted with the "
+"I<subset=pid> option."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:310
+msgid ""
+"The options B<-n> and B<-o> and B<-v> can not be combined. Let me know if "
+"you need to do this."
+msgstr ""
+"Les options B<-n>, B<-o> et B<-v> ne peuvent pas être utilisées en même "
+"temps. Signalez-le si vous en avez besoin."
+
+#. type: Plain text
+#: ../man/pgrep.1:312
+msgid "Defunct processes are reported."
+msgstr "Les processus zombies sont affichés."
+
+#. type: Plain text
+#: ../man/pgrep.1:317
+msgid ""
+"B<pidwait> requires the B<pidfd_open>(2) system call which first appeared "
+"in Linux 5.3."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:327
+#, fuzzy
+#| msgid ""
+#| "B<ps>(1), B<regex>(7), B<signal>(7), B<sigqueue>(3), B<killall>(1), "
+#| "B<skill>(1), B<kill>(1), B<kill>(2)"
+msgid ""
+"B<ps>(1), B<regex>(7), B<signal>(7), B<sigqueue>(3), B<killall>(1), "
+"B<skill>(1), B<kill>(1), B<kill>(2), B<cgroups>(8)."
+msgstr ""
+"B<ps>(1), B<regex>(7), B<signal>(7), B<sigqueue>(3), B<killall>(1), "
+"B<skill>(1), B<kill>(1), B<kill>(2)"
+
+#. type: Plain text
+#: ../man/pgrep.1:331
+msgid "E<.UR kjetilho@ifi.uio.no> Kjetil Torgrim Homme E<.UE>"
+msgstr "Kjetil Torgrim Homme E<lt>I<kjetilho@ifi.uio.no>E<gt>"
+
+#. type: TH
+#: ../man/pidof.1:13
+#, no-wrap
+msgid "PIDOF"
+msgstr "PIDOF"
+
+#. type: Plain text
+#: ../man/pidof.1:16
+#, fuzzy
+#| msgid "pidof -- find the process ID of a running program"
+msgid "pidof - find the process ID of a running program"
+msgstr "pidof - Afficher le PID d'un programme"
+
+#. type: Plain text
+#: ../man/pidof.1:30
+#, fuzzy
+#| msgid ""
+#| "B<pidof> [B<-s>] [B<-c>] [B<-q>] [B<-w>] [B<-x>] [B<-o> I<omitpid[,"
+#| "omitpid...]...>] [B<-S> I<separator>] B<program> [B<program...>]"
+msgid ""
+"B<pidof> [B<-s>] [B<-c>] [B<-q>] [B<-w>] [B<-x>] [B<-o> I<omitpid[,"
+"omitpid...]...>] [B<-t>] [B<-S> I<separator>] I<program> I<[>B<program..."
+">I<]>"
+msgstr ""
+"B<pidof> [B<-s>] [B<-c>] [B<-q>] [B<-w>] [B<-x>] [B<-o> I<sans_pid[,"
+"sans_pid...]...>] [B<-S> I<separateur>] B<programme> [B<programme...>]"
+
+#. type: Plain text
+#: ../man/pidof.1:34
+msgid ""
+"B<Pidof> finds the process id's (pids) of the named programs. It prints "
+"those id's on the standard output."
+msgstr ""
+"B<pidof> cherche les identifiants de processus (PID) portant l'un des noms "
+"de programme indiqués. Il affiche ces numéros sur la sortie standard. "
+
+#. type: IP
+#: ../man/pidof.1:35
+#, no-wrap
+msgid "B<-s>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:37
+msgid "Single shot - this instructs the program to only return one I<pid>."
+msgstr "Un seul coup – I<pidof> ne renverra qu'un seul I<pid>."
+
+#. type: TP
+#: ../man/pidof.1:37 ../man/ps.1:409
+#, no-wrap
+msgid "B<-c>"
+msgstr "B<-c>"
+
+#. type: Plain text
+#: ../man/pidof.1:41
+msgid ""
+"Only return process ids that are running with the same root directory. This "
+"option is ignored for non-root users, as they will be unable to check the "
+"current root directory of processes they do not own."
+msgstr ""
+"Ne renvoyer que les identifiants des processus qui sont exécutés dans le "
+"même répertoire racine. Cette option est ignorée pour les utilisateurs "
+"autres que le superutilisateur puisqu'ils ne peuvent pas vérifier le "
+"répertoire racine en cours des processus dont ils ne sont pas propriétaires."
+
+#. type: IP
+#: ../man/pidof.1:41
+#, no-wrap
+msgid "B<-q>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:43
+msgid ""
+"Quiet mode, suppress any output and only sets the exit status accordingly."
+msgstr ""
+
+#. type: TP
+#: ../man/pidof.1:43 ../man/ps.1:718
+#, no-wrap
+msgid "B<-w>"
+msgstr "B<-w>"
+
+#. type: Plain text
+#: ../man/pidof.1:46
+msgid ""
+"Show also processes that do not have visible command line (e.g. kernel "
+"worker threads)."
+msgstr ""
+
+#. type: TP
+#: ../man/pidof.1:46 ../man/sysctl.8:110
+#, no-wrap
+msgid "B<-x>"
+msgstr "B<-x>"
+
+#. type: Plain text
+#: ../man/pidof.1:49
+msgid ""
+"Scripts too - this causes the program to also return process id's of shells "
+"running the named scripts."
+msgstr ""
+"Scripts également — I<pidof> renverra également les PID des interpréteurs de "
+"commandes exécutant les scripts indiqués."
+
+#. type: IP
+#: ../man/pidof.1:49
+#, fuzzy, no-wrap
+#| msgid "-o I<omitpid>"
+msgid "B<-o> I<omitpid>"
+msgstr "B<-o> I<sans_pid>"
+
+#. type: Plain text
+#: ../man/pidof.1:53
+#, fuzzy
+#| msgid ""
+#| "Tells I<pidof> to omit processes with that process id. The special pid "
+#| "B<%PPID> can be used to name the parent process of the I<pidof> program, "
+#| "in other words the calling shell or shell script."
+msgid ""
+"Tells B<pidof> to omit processes with that process id. The special pid "
+"B<%PPID> can be used to name the parent process of the B<pidof> program, in "
+"other words the calling shell or shell script."
+msgstr ""
+"Demander à I<pidof> de ne pas tenir compte du PID indiqué. Le PID spécial "
+"B<%PPID> peut décrire le processus parent du programme I<pidof>, c'est-à-"
+"dire l’interpréteur de commandes ou le script appelant."
+
+#. type: IP
+#: ../man/pidof.1:53
+#, no-wrap
+msgid "B<-t>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:55
+msgid "Shows all thread ids instead of pids."
+msgstr ""
+
+#. type: IP
+#: ../man/pidof.1:55
+#, fuzzy, no-wrap
+#| msgid "-S I<separator>"
+msgid "B<-S> I<separator>"
+msgstr "-S I<separateur>"
+
+#. type: Plain text
+#: ../man/pidof.1:61
+msgid ""
+"Use I<separator> as a separator put between pids. Used only when more than "
+"one pids are printed for the program. The B<-d> option is an alias for this "
+"option for sysvinit B<pidof> compatibility."
+msgstr ""
+"Utiliser I<separateur> comme séparateur des pid. Utilisé seulement lorsque "
+"plus d'un pid est affiché par le programme. L'option B<-d> est un alias de "
+"cette option pour compatibilité avec le B<pidof> de sysvinit."
+
+#. type: TP
+#: ../man/pidof.1:62 ../man/pmap.1:79 ../man/watch.1:104
+#, no-wrap
+msgid "B<0>"
+msgstr "B<0>"
+
+#. type: Plain text
+#: ../man/pidof.1:65
+msgid "At least one program was found with the requested name."
+msgstr "Au moins un programme a été trouvé avec le nom demandé."
+
+#. type: TP
+#: ../man/pidof.1:65 ../man/pmap.1:82 ../man/watch.1:107
+#, no-wrap
+msgid "B<1>"
+msgstr "B<1>"
+
+#. type: Plain text
+#: ../man/pidof.1:68
+msgid "No program was found with the requested name."
+msgstr "Aucun programme trouvé avec le nom demandé."
+
+#. type: Plain text
+#: ../man/pidof.1:75
+#, fuzzy
+#| msgid ""
+#| "When using the I<-x> option, B<pidof> only has a simple method for "
+#| "detecting scripts and will miss scripts that, for example, use env. This "
+#| "limitation is due to how the scripts look in the proc filesystem."
+msgid ""
+"When using the B<-x> option, B<pidof> only has a simple method for detecting "
+"scripts and will miss scripts that, for example, use env. This limitation is "
+"due to how the scripts look in the proc filesystem."
+msgstr ""
+"Avec l'option I<-x>, B<pidof> a une méthode basique pour détecter les "
+"scripts et en manquera certains, par exemple ceux qui utilise env. Cette "
+"limitation est inhérente à la représentation des scripts du système de "
+"fichiers proc."
+
+#. type: Plain text
+#: ../man/pidof.1:79
+msgid "B<pgrep>(1), B<pkill>(1)"
+msgstr "B<pgrep>(1), B<pkill>(1)"
+
+#. type: Plain text
+#: ../man/pidof.1:82
+#, fuzzy
+#| msgid "E<.UR staikos@0wned.org> George Staikos E<.UE>"
+msgid "E<.UR jcapik@redhat.com> Jaromir Capik E<.UE>"
+msgstr "George Staikos E<lt>I<staikos@wnedorg>E<gt>"
+
+#. type: TH
+#: ../man/pmap.1:19
+#, no-wrap
+msgid "PMAP"
+msgstr "PMAP"
+
+#. type: TH
+#: ../man/pmap.1:19 ../man/pwdx.1:12 ../man/tload.1:12
+#, no-wrap
+msgid "2020-06-04"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:22
+msgid "pmap - report memory map of a process"
+msgstr "pmap - Afficher l'empreinte mémoire d'un processus"
+
+#. type: Plain text
+#: ../man/pmap.1:25
+msgid "B<pmap> [I<options>] I<pid> [...]"
+msgstr "B<pmap> [I<options>] I<PID> [...]"
+
+#. type: Plain text
+#: ../man/pmap.1:29
+msgid "The B<pmap> command reports the memory map of a process or processes."
+msgstr ""
+"La commande B<pmap> affiche l'empreinte mémoire d'un ou plusieurs processus."
+
+#. type: TP
+#: ../man/pmap.1:30
+#, no-wrap
+msgid "B<-x>, B<--extended>"
+msgstr "B<-x>, B<--extended>"
+
+#. type: Plain text
+#: ../man/pmap.1:33
+msgid "Show the extended format."
+msgstr "Afficher la sortie au format étendu."
+
+#. type: TP
+#: ../man/pmap.1:33
+#, no-wrap
+msgid "B<-d>, B<--device>"
+msgstr "B<-d>, B<--device>"
+
+#. type: Plain text
+#: ../man/pmap.1:36
+msgid "Show the device format."
+msgstr "Afficher la sortie au format périphérique."
+
+#. type: TP
+#: ../man/pmap.1:36 ../man/sysctl.8:57
+#, no-wrap
+msgid "B<-q>, B<--quiet>"
+msgstr "B<-q>, B<--quiet>"
+
+#. type: Plain text
+#: ../man/pmap.1:39
+msgid "Do not display some header or footer lines."
+msgstr "Ne pas afficher certaines lignes d'en-tête ou de pied de page."
+
+#. type: TP
+#: ../man/pmap.1:39
+#, no-wrap
+msgid "B<-A>, B<--range> I<low>,I<high>"
+msgstr "B<-A>, B<--range> I<bas>B<,>I<haut>"
+
+#. type: Plain text
+#: ../man/pmap.1:47
+msgid ""
+"Limit results to the given range to I<low> and I<high> address range. "
+"Notice that the low and high arguments are single string separated with "
+"comma."
+msgstr ""
+"Restreindre les résultats à l'intervalle d'adresses comprises entre I<bas> "
+"et I<haut>. Remarquez que les paramètres I<bas> et I<haut> sont de simples "
+"chaînes séparées par une virgule."
+
+#. type: TP
+#: ../man/pmap.1:47 ../man/sysctl.8:104
+#, no-wrap
+msgid "B<-X>"
+msgstr "B<-X>"
+
+# NOTE: Missing period
+#. type: Plain text
+#: ../man/pmap.1:51
+msgid ""
+"Show even more details than the B<-x> option. WARNING: format changes "
+"according to I</proc/PID/smaps>"
+msgstr ""
+"Afficher encore plus de précisions qu'avec l'option B<-x>. Attention, le "
+"format change en fonction de I</proc/PID/smaps>."
+
+#. type: TP
+#: ../man/pmap.1:51
+#, no-wrap
+msgid "B<-XX>"
+msgstr "B<-XX>"
+
+# NOTE: Missing period
+#. type: Plain text
+#: ../man/pmap.1:54
+msgid "Show everything the kernel provides"
+msgstr "Afficher tout ce que le noyau fournit."
+
+#. type: TP
+#: ../man/pmap.1:54
+#, no-wrap
+msgid "B<-p>, B<--show-path>"
+msgstr "B<-p>, B<--show-path>"
+
+#. type: Plain text
+#: ../man/pmap.1:57
+msgid "Show full path to files in the mapping column"
+msgstr ""
+"Montrer le chemin complet vers les fichiers dans la colonne de "
+"correspondance."
+
+#. type: TP
+#: ../man/pmap.1:57
+#, no-wrap
+msgid "B<-c>, B<--read-rc>"
+msgstr "B<-c>, B<--read-rc>"
+
+#. type: Plain text
+#: ../man/pmap.1:60
+msgid "Read the default configuration"
+msgstr "Lire la configuration par défaut."
+
+#. type: TP
+#: ../man/pmap.1:60
+#, no-wrap
+msgid "B<-C>, B<--read-rc-from> I<file>"
+msgstr "B<-C>, B<--read-rc-from> I<fichier>"
+
+#. type: Plain text
+#: ../man/pmap.1:63
+msgid "Read the configuration from I<file>"
+msgstr "Lire le fichier de configuration I<fichier>."
+
+#. type: TP
+#: ../man/pmap.1:63
+#, no-wrap
+msgid "B<-n>, B<--create-rc>"
+msgstr "B<-n>, B<--create-rc>"
+
+#. type: Plain text
+#: ../man/pmap.1:66
+msgid "Create new default configuration"
+msgstr "Créer une nouvelle configuration par défaut."
+
+#. type: TP
+#: ../man/pmap.1:66
+#, no-wrap
+msgid "B<-N>, B<--create-rc-to> I<file>"
+msgstr "B<-N>, B<--create-rc-to> I<fichier>"
+
+#. type: Plain text
+#: ../man/pmap.1:69
+msgid "Create new configuration to I<file>"
+msgstr "Créer une nouvelle configuration dans I<fichier>."
+
+#. type: Plain text
+#: ../man/pmap.1:72 ../man/skill.1:68 ../man/sysctl.8:116 ../man/w.1:66
+#: ../man/watch.1:97
+msgid "Display help text and exit."
+msgstr "Afficher l'aide et quitter."
+
+#. type: Plain text
+#: ../man/pmap.1:82 ../man/watch.1:107
+msgid "Success."
+msgstr "Réussite."
+
+#. type: Plain text
+#: ../man/pmap.1:85
+msgid "Failure."
+msgstr "Échec."
+
+#. type: TP
+#: ../man/pmap.1:85
+#, no-wrap
+msgid "B<42>"
+msgstr "B<42>"
+
+#. type: Plain text
+#: ../man/pmap.1:88
+msgid "Did not find all processes asked for."
+msgstr "Les processus demandés n'ont pas tous été trouvés."
+
+#. type: Plain text
+#: ../man/pmap.1:93 ../man/pwdx.1:28
+msgid "B<ps>(1), B<pgrep>(1)"
+msgstr "B<ps>(1), B<pgrep>(1)"
+
+#. type: Plain text
+#: ../man/pmap.1:97
+msgid ""
+"No standards apply, but B<pmap> looks an awful lot like a SunOS command."
+msgstr ""
+"Aucune norme n'est respectée mais B<pmap> ressemble fortement à une commande "
+"SunOS."
+
+#. type: TH
+#: ../man/pwdx.1:12
+#, no-wrap
+msgid "PWDX"
+msgstr "PWDX"
+
+#. type: Plain text
+#: ../man/pwdx.1:15
+msgid "pwdx - report current working directory of a process"
+msgstr "pwdx - Afficher le répertoire de travail d'un processus"
+
+#. type: Plain text
+#: ../man/pwdx.1:18
+msgid "B<pwdx> [I<options>] I<pid> [...]"
+msgstr "B<pwdx> [I<options>] I<PID> [...]"
+
+#. type: Plain text
+#: ../man/pwdx.1:22
+msgid "Output version information and exit."
+msgstr "Afficher la version du logiciel et quitter."
+
+#. type: Plain text
+#: ../man/pwdx.1:25
+msgid "Output help screen and exit."
+msgstr "Afficher un écran d'aide puis quitter."
+
+#. type: Plain text
+#: ../man/pwdx.1:32
+msgid ""
+"No standards apply, but B<pwdx> looks an awful lot like a SunOS command."
+msgstr ""
+"Aucune norme n'est respectée mais B<pwdx> ressemble fortement à une commande "
+"SunOS."
+
+#. type: Plain text
+#: ../man/pwdx.1:37
+msgid "E<.UR nmiell@gmail.com> Nicholas Miell E<.UE> wrote pwdx in 2004."
+msgstr "Nicholas Miell E<lt>I<nmiell@gmail.com>E<gt> a écrit pwdx en 2004."
+
+#. type: TH
+#: ../man/skill.1:12
+#, no-wrap
+msgid "SKILL"
+msgstr "SKILL"
+
+#. type: TH
+#: ../man/skill.1:12 ../man/sysctl.8:14 ../man/ps.1:13
+#, fuzzy, no-wrap
+#| msgid "2018-08-08"
+msgid "2023-08-19"
+msgstr "8 août 2018"
+
+#. type: Plain text
+#: ../man/skill.1:15
+msgid "skill, snice - send a signal or report process status"
+msgstr ""
+"skill, snice - Envoyer un signal ou rendre compte de l'état d'un processus"
+
+#. type: Plain text
+#: ../man/skill.1:20
+msgid "B<skill> [I<signal>] [I<options>] I<expression>"
+msgstr "B<skill> [I<signal>] [I<options>] I<expression>"
+
+#. type: Plain text
+#: ../man/skill.1:25
+msgid "B<snice> [I<new priority>] [I<options>] I<expression>"
+msgstr "B<snice> [I<nouvelle priorité>] [I<options>] I<expression>"
+
+#. type: Plain text
+#: ../man/skill.1:33
+#, fuzzy
+#| msgid ""
+#| "These tools are obsolete and unportable. The command syntax is poorly "
+#| "defined. Consider using the killall, pkill, and pgrep commands instead."
+msgid ""
+"These tools are obsolete and unportable. The command syntax is poorly "
+"defined. Consider using the B<killall>, B<pkill>, and B<pgrep> commands "
+"instead."
+msgstr ""
+"Ces outils sont obsolètes et non portables. La syntaxe de la commande n'est "
+"pas optimale. Veuillez utiliser les commandes B<killall>, B<pkill> et "
+"B<pgrep> à la place."
+
+#. type: Plain text
+#: ../man/skill.1:38
+#, fuzzy
+#| msgid ""
+#| "The default signal for skill is TERM. Use -l or -L to list available "
+#| "signals. Particularly useful signals include HUP, INT, KILL, STOP, CONT, "
+#| "and 0. Alternate signals may be specified in three ways: -9 -SIGKILL -"
+#| "KILL."
+msgid ""
+"The default signal for B<skill> is TERM. Use B<-l> or B<-L> to list "
+"available signals. Particularly useful signals include HUP, INT, KILL, "
+"STOP, CONT, and 0. Alternate signals may be specified in three ways: B<-9> "
+"B<-SIGKILL> B<-KILL>."
+msgstr ""
+"Le I<signal> par défaut pour B<skill> est B<TERM>. Utilisez B<-l> ou B<-L> "
+"pour obtenir la liste des signaux disponibles. Parmi les plus utiles, on "
+"trouve B<HUP>, B<INT>, B<KILL>, B<STOP>, B<CONT> et B<0>. Certains signaux "
+"peuvent être désignés de trois manières différentes\\ : -9 -SIGKILL -KILL."
+
+#. type: Plain text
+#: ../man/skill.1:42
+#, fuzzy
+#| msgid ""
+#| "The default priority for snice is +4. Priority numbers range from +20 "
+#| "(slowest) to -20 (fastest). Negative priority numbers are restricted to "
+#| "administrative users."
+msgid ""
+"The default priority for B<snice> is +4. Priority numbers range from +20 "
+"(slowest) to -20 (fastest). Negative priority numbers are restricted to "
+"administrative users."
+msgstr ""
+"La priorité par défaut pour snice est +4. Les indices de priorité vont de "
+"+20 (le plus lent) à -20 (le plus rapide). Les indices de priorité négatifs "
+"sont réservés aux administrateurs."
+
+#. type: TP
+#: ../man/skill.1:43
+#, no-wrap
+msgid "B<-f>,B<\\ --fast>"
+msgstr "B<-f>,B<\\ --fast>"
+
+#. type: Plain text
+#: ../man/skill.1:46
+msgid "Fast mode. This option has not been implemented."
+msgstr "Mode rapide. Cette option n'a pas été implémentée."
+
+#. type: TP
+#: ../man/skill.1:46
+#, no-wrap
+msgid "B<-i>,B<\\ --interactive>"
+msgstr "B<-i>,B<\\ --interactive>"
+
+#. type: Plain text
+#: ../man/skill.1:49
+msgid "Interactive use. You will be asked to approve each action."
+msgstr "Mode interactif. Chaque action devra être validée."
+
+#. type: TP
+#: ../man/skill.1:49
+#, no-wrap
+msgid "B<-l>,B<\\ --list>"
+msgstr "B<-l>,B<\\ --list>"
+
+#. type: Plain text
+#: ../man/skill.1:52
+msgid "List all signal names."
+msgstr "Afficher tous les noms de signaux."
+
+#. type: Plain text
+#: ../man/skill.1:55
+msgid "List all signal names in a nice table."
+msgstr "Afficher tous les noms de signaux en tableau bien présenté."
+
+#. type: TP
+#: ../man/skill.1:55
+#, no-wrap
+msgid "B<-n>,B<\\ --no-action>"
+msgstr "B<-n>,B<\\ --no-action>"
+
+#. type: Plain text
+#: ../man/skill.1:59
+msgid ""
+"No action; perform a simulation of events that would occur but do not "
+"actually change the system."
+msgstr ""
+"Pas d'action. Réaliser une simulation des événements qui auraient lieu mais "
+"sans vraiment modifier le système."
+
+#. type: TP
+#: ../man/skill.1:59
+#, no-wrap
+msgid "B<-v>,B<\\ --verbose>"
+msgstr "B<-v>,B<\\ --verbose>"
+
+#. type: Plain text
+#: ../man/skill.1:62
+msgid "Verbose; explain what is being done."
+msgstr "Bavard. Expliquer ce qui est en train de se faire."
+
+#. type: TP
+#: ../man/skill.1:62
+#, no-wrap
+msgid "B<-w>,B<\\ --warnings>"
+msgstr "B<-w>,B<\\ --warnings>"
+
+#. type: Plain text
+#: ../man/skill.1:65
+msgid "Enable warnings. This option has not been implemented."
+msgstr "Alertes activées. Cette option n'a pas été implémentée."
+
+#. type: SH
+#: ../man/skill.1:72
+#, no-wrap
+msgid "PROCESS SELECTION OPTIONS"
+msgstr "OPTIONS DE SÉLECTION DES PROCESSUS"
+
+#. type: Plain text
+#: ../man/skill.1:75
+msgid ""
+"Selection criteria can be: terminal, user, pid, command. The options below "
+"may be used to ensure correct interpretation."
+msgstr ""
+"Les critères de sélection peuvent être\\ : terminal, nom d'utilisateur, "
+"identifiant de processus, commande. Les options ci-dessous peuvent être "
+"utilisées pour s'assurer d'une interprétation correcte."
+
+#. type: TP
+#: ../man/skill.1:75
+#, no-wrap
+msgid "B<-t>, B<--tty> I<tty>"
+msgstr "B<-t>, B<--tty> I<tty>"
+
+#. type: Plain text
+#: ../man/skill.1:78
+msgid "The next expression is a terminal (tty or pty)."
+msgstr "I<tty> est un terminal (tty ou pty)."
+
+#. type: TP
+#: ../man/skill.1:78
+#, no-wrap
+msgid "B<-u>, B<--user> I<user>"
+msgstr "B<-u>, B<--user> I<utilisateur>"
+
+#. type: Plain text
+#: ../man/skill.1:81
+msgid "The next expression is a username."
+msgstr "I<utilisateur> est un nom d'utilisateur."
+
+#. type: TP
+#: ../man/skill.1:81
+#, no-wrap
+msgid "B<-p>, B<--pid> I<pid>"
+msgstr "B<-p>, B<--pid> I<PID>"
+
+#. type: Plain text
+#: ../man/skill.1:84
+msgid "The next expression is a process ID number."
+msgstr "I<PID> est un numéro d'identifiant de processus."
+
+#. type: TP
+#: ../man/skill.1:84
+#, no-wrap
+msgid "B<-c>, B<--command> I<command>"
+msgstr "B<-c>, B<--command> I<commande>"
+
+#. type: Plain text
+#: ../man/skill.1:87
+msgid "The next expression is a command name."
+msgstr "I<commande> est un nom de commande."
+
+#. type: Plain text
+#: ../man/skill.1:90
+msgid "Match the processes that belong to the same namespace as pid."
+msgstr ""
+"Sélectionner les processus qui appartiennent aux mêmes espaces de nommage "
+"que I<PID>."
+
+#. type: TP
+#: ../man/skill.1:90
+#, no-wrap
+msgid "B<--nslist >I<ns\\/>,\\,I<...\\/>"
+msgstr "B<--nslist >I<ns\\/>,\\,I<...\\/>"
+
+#. type: Plain text
+#: ../man/skill.1:94
+#, fuzzy
+#| msgid ""
+#| "list which namespaces will be considered for the --ns option. Available "
+#| "namespaces: ipc, mnt, net, pid, user, uts."
+msgid ""
+"list which namespaces will be considered for the B<--ns> option. Available "
+"namespaces: ipc, mnt, net, pid, user, uts."
+msgstr ""
+"Afficher les espaces de nommage qui seront considérés pour l’option B<--ns>. "
+"Les espaces de nommage disponibles sont : ipc, mnt, net, pid, user et uts."
+
+#. type: SH
+#: ../man/skill.1:95
+#, no-wrap
+msgid "SIGNALS"
+msgstr "SIGNAUX"
+
+#. type: Plain text
+#: ../man/skill.1:99
+msgid "The behavior of signals is explained in B<signal>(7) manual page."
+msgstr ""
+"Le comportement du signal est expliqué dans la page de manuel B<signal>(7)."
+
+#. type: TP
+#: ../man/skill.1:100
+#, no-wrap
+msgid "B<snice -c seti -c crack +7>"
+msgstr "B<snice -c seti -c crack +7>"
+
+#. type: Plain text
+#: ../man/skill.1:103
+#, fuzzy
+#| msgid "Slow down seti and crack commands."
+msgid "+Slow down B<seti> and B<crack> commands."
+msgstr "Ralentir les commandes seti et crack."
+
+#. type: TP
+#: ../man/skill.1:103
+#, no-wrap
+msgid "B<skill -KILL -t /dev/pts/*>"
+msgstr "B<skill -KILL -t /dev/pts/*>"
+
+#. type: Plain text
+#: ../man/skill.1:106
+msgid "Kill users on PTY devices."
+msgstr "Tuer les utilisateurs sur les périphériques PTY."
+
+#. type: TP
+#: ../man/skill.1:106
+#, no-wrap
+msgid "B<skill -STOP -u viro -u lm -u davem>"
+msgstr "B<skill -STOP -u viro -u lm -u davem>"
+
+#. type: Plain text
+#: ../man/skill.1:109
+msgid "Stop three users."
+msgstr "Suspendre les trois utilisateurs en question."
+
+#. type: Plain text
+#: ../man/skill.1:117
+msgid ""
+"B<kill>(1), B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), "
+"B<renice>(1), B<signal>(7)"
+msgstr ""
+"B<kill>(1), B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), "
+"B<renice>(1), B<signal>(7)"
+
+#. type: Plain text
+#: ../man/skill.1:119
+msgid "No standards apply."
+msgstr "Aucune norme ne s'applique."
+
+#. type: Plain text
+#: ../man/skill.1:125
+msgid ""
+"E<.MT albert@users.sf.net> Albert Cahalan E<.ME> wrote skill and snice in "
+"1999 as a replacement for a non-free version."
+msgstr ""
+"Albert Cahalan E<.MT albert@users.sf.net> E<.ME> a écrit skill et snice en "
+"1999 en remplacement d'une version non libre."
+
+#. type: TH
+#: ../man/slabtop.1:14
+#, no-wrap
+msgid "SLABTOP"
+msgstr "SLABTOP"
+
+#. type: TH
+#: ../man/slabtop.1:14
+#, fuzzy, no-wrap
+#| msgid "2019-03-05"
+msgid "2021-03-11"
+msgstr "05-03-2019"
+
+#. type: Plain text
+#: ../man/slabtop.1:17
+msgid "slabtop - display kernel slab cache information in real time"
+msgstr ""
+"slabtop - Afficher en temps réel les informations des caches slab du noyau"
+
+#. type: Plain text
+#: ../man/slabtop.1:20
+msgid "B<slabtop> [I<options>]"
+msgstr "B<slabtop> [I<options>]"
+
+#. type: Plain text
+#: ../man/slabtop.1:25
+msgid ""
+"B<slabtop> displays detailed kernel slab cache information in real time. It "
+"displays a listing of the top caches sorted by one of the listed sort "
+"criteria. It also displays a statistics header filled with slab layer "
+"information."
+msgstr ""
+"B<slabtop> affiche en temps réel les informations détaillées des caches slab "
+"(objets alloués au noyau) du noyau. Une liste des principaux caches, triée "
+"selon différents critères, est présentée. Un en-tête présente également des "
+"statistiques de la couche slab."
+
+#. type: Plain text
+#: ../man/slabtop.1:30
+msgid ""
+"Normal invocation of B<slabtop> does not require any options. The behavior, "
+"however, can be fine-tuned by specifying one or more of the following flags:"
+msgstr ""
+"Un appel normal de B<slabtop> ne demande aucune option. Le comportement peut "
+"cependant être affiné en ajoutant une ou plusieurs des options suivantes\\ :"
+
+#. type: TP
+#: ../man/slabtop.1:30
+#, no-wrap
+msgid "B<-d>, B<--delay>=I<N>"
+msgstr "B<-d>, B<--delay=>I<N>"
+
+#. type: Plain text
+#: ../man/slabtop.1:39
+#, fuzzy
+#| msgid ""
+#| "Refresh the display every I<n> in seconds. By default, B<slabtop> "
+#| "refreshes the display every three seconds. To exit the program, hit B<q.>"
+msgid ""
+"Refresh the display every I<n> in seconds. By default, B<slabtop> refreshes "
+"the display every three seconds. To exit the program, hit B<q>. This "
+"cannot be combined with the B<-o> option."
+msgstr ""
+"Rafraîchir l'affichage toutes les I<n> secondes. Par défaut, B<slabtop> "
+"rafraîchit l'affichage toutes les trois secondes. Pour sortir du programme, "
+"entrez B<q>."
+
+#. type: TP
+#: ../man/slabtop.1:39
+#, no-wrap
+msgid "B<-s>, B<--sort>=I<S>"
+msgstr "B<-s>, B<--sort=>I<S>"
+
+#. type: Plain text
+#: ../man/slabtop.1:42
+msgid "Sort by I<S>, where I<S> is one of the sort criteria."
+msgstr "Trier selon le critère de tri I<S>."
+
+#. type: TP
+#: ../man/slabtop.1:42
+#, no-wrap
+msgid "B<-o>, B<--once>"
+msgstr "B<-o>, B<--once>"
+
+#. type: Plain text
+#: ../man/slabtop.1:45
+msgid "Display the output once and then exit."
+msgstr "Afficher la sortie une seule fois et quitter."
+
+#. type: Plain text
+#: ../man/slabtop.1:51
+msgid "Display usage information and exit."
+msgstr "Afficher l'aide-mémoire et quitter."
+
+#. type: SH
+#: ../man/slabtop.1:51
+#, no-wrap
+msgid "SORT CRITERIA"
+msgstr "CRITÈRES DE TRI"
+
+#. type: Plain text
+#: ../man/slabtop.1:55
+msgid ""
+"The following are valid sort criteria used to sort the individual slab "
+"caches and thereby determine what are the \"top\" slab caches to display. "
+"The default sort criteria is to sort by the number of objects (\"o\")."
+msgstr ""
+"Les critères de tri suivants sont utilisés pour classer les caches slab un "
+"par un et déterminer ceux qui seront affichés en tête du classement. Le "
+"classement par défaut est fait selon le nombre d'objets («\\ o\\ »)."
+
+#. type: Plain text
+#: ../man/slabtop.1:59
+msgid ""
+"The sort criteria can also be changed while B<slabtop> is running by "
+"pressing the associated character."
+msgstr ""
+"Les critères de tri peuvent également être modifiés pendant l'exécution de "
+"B<slabtop> en entrant le caractère associé."
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<character>"
+msgstr "B<caractère>"
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<description>"
+msgstr "B<description>"
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<header>"
+msgstr "B<header>"
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "a"
+msgstr "a"
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "number of active objects"
+msgstr "nombre d'objets actifs"
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "ACTIVE"
+msgstr "ACTIF"
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "b"
+msgstr "b"
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "objects per slab"
+msgstr "nombre d'objets par slab"
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "OBJ/SLAB"
+msgstr "OBJ/SLAB"
+
+#. type: tbl table
+#: ../man/slabtop.1:64 ../man/ps.1:909 ../man/ps.1:1081
+#, no-wrap
+msgid "c"
+msgstr "c"
+
+#. type: tbl table
+#: ../man/slabtop.1:64
+#, no-wrap
+msgid "cache size"
+msgstr "taille du cache"
+
+#. type: tbl table
+#: ../man/slabtop.1:64
+#, no-wrap
+msgid "CACHE SIZE"
+msgstr "TAILLE DU CACHE"
+
+#. type: TP
+#: ../man/slabtop.1:65 ../man/ps.1:882
+#, no-wrap
+msgid "l"
+msgstr "l"
+
+#. type: tbl table
+#: ../man/slabtop.1:65
+#, no-wrap
+msgid "number of slabs"
+msgstr "nombre de slabs"
+
+#. type: tbl table
+#: ../man/slabtop.1:65
+#, no-wrap
+msgid "SLABS"
+msgstr "SLABS"
+
+#. type: tbl table
+#: ../man/slabtop.1:66 ../man/ps.1:932
+#, no-wrap
+msgid "v"
+msgstr "v"
+
+#. type: tbl table
+#: ../man/slabtop.1:66
+#, no-wrap
+msgid "number of active slabs"
+msgstr "nombre de slabs actifs"
+
+#. type: tbl table
+#: ../man/slabtop.1:66 ../man/slabtop.1:69
+#, no-wrap
+msgid "N/A"
+msgstr "N/A"
+
+#. type: tbl table
+#: ../man/slabtop.1:67 ../man/ps.1:919
+#, no-wrap
+msgid "n"
+msgstr "n"
+
+#. type: tbl table
+#: ../man/slabtop.1:67
+#, no-wrap
+msgid "name"
+msgstr "nom"
+
+#. type: tbl table
+#: ../man/slabtop.1:67
+#, no-wrap
+msgid "NAME\\:"
+msgstr "NOM\\:"
+
+#. type: tbl table
+#: ../man/slabtop.1:68 ../man/ps.1:921
+#, no-wrap
+msgid "o"
+msgstr "o"
+
+#. type: tbl table
+#: ../man/slabtop.1:68
+#, no-wrap
+msgid "number of objects"
+msgstr "nombre d'objets"
+
+#. type: tbl table
+#: ../man/slabtop.1:68
+#, no-wrap
+msgid "OBJS"
+msgstr "OBJS"
+
+#. type: tbl table
+#: ../man/slabtop.1:69 ../man/ps.1:922
+#, no-wrap
+msgid "p"
+msgstr "p"
+
+#. type: tbl table
+#: ../man/slabtop.1:69
+#, no-wrap
+msgid "pages per slab"
+msgstr "nombre de pages par slab"
+
+#. type: tbl table
+#: ../man/slabtop.1:70 ../man/ps.1:879 ../man/ps.1:926 ../man/ps.1:1631
+#, no-wrap
+msgid "s"
+msgstr "s"
+
+#. type: tbl table
+#: ../man/slabtop.1:70
+#, no-wrap
+msgid "object size"
+msgstr "taille des objets"
+
+#. type: tbl table
+#: ../man/slabtop.1:70
+#, no-wrap
+msgid "OBJ SIZE"
+msgstr "TAILLE OBJ"
+
+#. type: tbl table
+#: ../man/slabtop.1:71 ../man/ps.1:931
+#, no-wrap
+msgid "u"
+msgstr "u"
+
+#. type: tbl table
+#: ../man/slabtop.1:71
+#, no-wrap
+msgid "cache utilization"
+msgstr "utilisation du cache"
+
+#. type: tbl table
+#: ../man/slabtop.1:71
+#, no-wrap
+msgid "USE"
+msgstr "USAGE"
+
+#. type: SH
+#: ../man/slabtop.1:73
+#, no-wrap
+msgid "COMMANDS"
+msgstr "COMMANDES"
+
+#. type: Plain text
+#: ../man/slabtop.1:77
+msgid ""
+"B<slabtop> accepts keyboard commands from the user during use. The "
+"following are supported. In the case of letters, both cases are accepted."
+msgstr ""
+"B<slabtop> accepte les commandes entrées au clavier par l'utilisateur "
+"pendant l'exécution. Les commandes suivantes sont gérées. Lorsqu'il s'agit "
+"de lettres, les minuscules et les majuscules sont acceptées."
+
+#. type: Plain text
+#: ../man/slabtop.1:81
+msgid ""
+"Each of the valid sort characters are also accepted, to change the sort "
+"routine. See the section B<SORT CRITERIA>."
+msgstr ""
+"Tous les caractères de tri valables sont aussi acceptés, afin de changer la "
+"méthode de tri. Consultez la section B<CRITÈRES DE TRI>."
+
+#. type: TP
+#: ../man/slabtop.1:81
+#, no-wrap
+msgid "B<E<lt>SPACEBARE<gt>>"
+msgstr "B<E<lt>BARRE_D'ESPACEE<gt>>"
+
+#. type: Plain text
+#: ../man/slabtop.1:84
+msgid "Refresh the screen."
+msgstr "Rafraîchir l'écran."
+
+#. type: TP
+#: ../man/slabtop.1:84
+#, no-wrap
+msgid "B<Q>"
+msgstr "B<Q>"
+
+#. type: Plain text
+#: ../man/slabtop.1:87
+msgid "Quit the program."
+msgstr "Quitter le programme."
+
+#. type: TP
+#: ../man/slabtop.1:88
+#, no-wrap
+msgid "I</proc/slabinfo>"
+msgstr "I</proc/slabinfo>"
+
+#. type: Plain text
+#: ../man/slabtop.1:91
+msgid "slab information"
+msgstr "informations sur slab"
+
+#. type: Plain text
+#: ../man/slabtop.1:96
+msgid "B<free>(1), B<ps>(1), B<top>(1), B<vmstat>(8)"
+msgstr "B<free>(1), B<ps>(1), B<top>(1), B<vmstat>(8)"
+
+#. type: Plain text
+#: ../man/slabtop.1:102
+msgid ""
+"Currently, B<slabtop> requires a 2.4 or later kernel (specifically, a "
+"version 1.1 or later I</proc/slabinfo>). Kernel 2.2 should be supported in "
+"the future."
+msgstr ""
+"Actuellement, B<slabtop> requiert un noyau\\ 2.4 ou supérieur (en "
+"particulier, une version\\ 1.1 ou supérieure de I</proc/slabinfo>). Les "
+"noyaux\\ 2.2 devraient être gérés dans le futur."
+
+#. type: Plain text
+#: ../man/slabtop.1:108
+#, fuzzy
+#| msgid ""
+#| "The B<slabtop> statistic header is tracking how many bytes of slabs are "
+#| "being used and is not a measure of physical memory. The 'Slab' field in "
+#| "the /proc/meminfo file is tracking information about used slab physical "
+#| "memory."
+msgid ""
+"The B<slabtop> statistic header is tracking how many bytes of slabs are "
+"being used and is not a measure of physical memory. The 'Slab' field in the "
+"I</proc/meminfo> file is tracking information about used slab physical "
+"memory."
+msgstr ""
+"L'en-tête des statistiques de B<slabtop> quantifie le nombre d'octets "
+"utilisés par slab et ce n'est pas une mesure de la mémoire physique. Le "
+"champ « Slab » du fichier I</proc/meminfo> affiche les informations à propos "
+"de l'utilisation de la mémoire physique par slab."
+
+#. type: Plain text
+#: ../man/slabtop.1:114
+msgid ""
+"The B<CACHE SIZE> column is not accurate, it's the upper limit of memory "
+"used by specific slab. When system using slub (most common case) is under "
+"high memory pressure, there are slab order fallbacks, which means \"pages "
+"per slab\" is not constant and may decrease."
+msgstr ""
+
+#. type: SH
+#: ../man/slabtop.1:114 ../man/tload.1:58 ../man/uptime.1:56 ../man/w.1:102
+#, no-wrap
+msgid "AUTHORS"
+msgstr "AUTEURS"
+
+#. type: Plain text
+#: ../man/slabtop.1:116
+msgid "Written by Chris Rivera and Robert Love."
+msgstr "Écrit par Chris Rivera et Robert Love."
+
+#. type: Plain text
+#: ../man/slabtop.1:120
+msgid "B<slabtop> was inspired by Martin Bligh's perl script, B<vmtop>."
+msgstr "B<slabtop> a été inspiré par le script Perl B<vmtop> de Martin Bligh."
+
+#. type: TH
+#: ../man/sysctl.8:14
+#, no-wrap
+msgid "SYSCTL"
+msgstr "SYSCTL"
+
+#. type: TH
+#: ../man/sysctl.8:14 ../man/vmstat.8:13
+#, no-wrap
+msgid "System Administration"
+msgstr "Administration système"
+
+#. type: Plain text
+#: ../man/sysctl.8:17
+msgid "sysctl - configure kernel parameters at runtime"
+msgstr "sysctl - Configurer les paramètres du noyau à chaud"
+
+#. type: Plain text
+#: ../man/sysctl.8:20
+msgid "B<sysctl> [I<options>] [I<variable>[B<=>I<value>]] [...]"
+msgstr "B<sysctl> [I<options>] [I<variable>[B<=>I<valeur>]] [...]"
+
+# NOTE: s/or/|/
+#. type: Plain text
+#: ../man/sysctl.8:23
+msgid "B<sysctl -p> [I<file> or I<regexp>] [...]"
+msgstr "B<sysctl -p> [I<fichier> | I<expression rationnelle>] [...]"
+
+#. type: Plain text
+#: ../man/sysctl.8:31
+#, fuzzy
+#| msgid ""
+#| "B<sysctl> is used to modify kernel parameters at runtime. The parameters "
+#| "available are those listed under /proc/sys/. Procfs is required for "
+#| "B<sysctl> support in Linux. You can use B<sysctl> to both read and write "
+#| "sysctl data."
+msgid ""
+"B<sysctl> is used to modify kernel parameters at runtime. The parameters "
+"available are those listed under I</proc/sys/>. Procfs is required for "
+"B<sysctl> support in Linux. You can use B<sysctl> to both read and write "
+"sysctl data."
+msgstr ""
+"B<sysctl> est utilisé pour modifier les paramètres du noyau en cours "
+"d'exécution. Les paramètres utilisables sont ceux présents dans le "
+"répertoire /proc/sys. Procfs est nécessaire pour utiliser B<sysctl> sous "
+"Linux. Vous pouvez utiliser B<sysctl> aussi bien pour lire que pour écrire "
+"des paramètres."
+
+#. type: SH
+#: ../man/sysctl.8:31
+#, no-wrap
+msgid "PARAMETERS"
+msgstr "PARAMÈTRES"
+
+#. type: TP
+#: ../man/sysctl.8:32
+#, no-wrap
+msgid "I<variable>"
+msgstr "I<variable>"
+
+#. type: Plain text
+#: ../man/sysctl.8:36
+msgid ""
+"The name of a key to read from. An example is kernel.ostype. The '/' "
+"separator is also accepted in place of a '.'."
+msgstr ""
+"Le nom d'une clé à lire. Par exemple «\\ kernel.ostype\\ ». Le séparateur "
+"« / » est aussi accepté en lieu et place de «\\ .\\ »."
+
+#. type: TP
+#: ../man/sysctl.8:36
+#, no-wrap
+msgid "I<variable>=I<value>"
+msgstr "I<variable>B<=>I<valeur>"
+
+#. type: Plain text
+#: ../man/sysctl.8:47
+msgid ""
+"To set a key, use the form I<variable>=I<value> where I<variable> is the key "
+"and I<value> is the value to set it to. If the value contains quotes or "
+"characters which are parsed by the shell, you may need to enclose the value "
+"in double quotes."
+msgstr ""
+"Pour saisir une clé, utilisez la forme I<variable>B<=>I<valeur>, où "
+"I<variable> est la clé et I<valeur> la valeur à lui affecter. Si valeur "
+"contient des apostrophes ou des caractères interprétés par l'interpréteur de "
+"commande, il faut placer la valeur entre guillemets doubles."
+
+#. type: TP
+#: ../man/sysctl.8:47
+#, no-wrap
+msgid "B<-n>, B<--values>"
+msgstr "B<-n>, B<--values>"
+
+#. type: Plain text
+#: ../man/sysctl.8:50
+msgid ""
+"Use this option to disable printing of the key name when printing values."
+msgstr "Empêcher l'affichage des clés lors de l'affichage des valeurs."
+
+#. type: TP
+#: ../man/sysctl.8:50
+#, no-wrap
+msgid "B<-e>, B<--ignore>"
+msgstr "B<-e>, B<--ignore>"
+
+#. type: Plain text
+#: ../man/sysctl.8:53
+msgid "Use this option to ignore errors about unknown keys."
+msgstr "Ignorer les erreurs concernant les clés inconnues."
+
+#. type: TP
+#: ../man/sysctl.8:53
+#, no-wrap
+msgid "B<-N>, B<--names>"
+msgstr "B<-N>, B<--names>"
+
+#. type: Plain text
+#: ../man/sysctl.8:57
+msgid ""
+"Use this option to only print the names. It may be useful with shells that "
+"have programmable completion."
+msgstr ""
+"Afficher les options. Cela peut être utile pour les interpréteurs de "
+"commandes disposant d'un complètement automatique programmable."
+
+#. type: Plain text
+#: ../man/sysctl.8:60
+msgid "Use this option to not display the values set to stdout."
+msgstr "Empêcher l'affichage des valeurs dans la sortie standard."
+
+#. type: TP
+#: ../man/sysctl.8:60
+#, no-wrap
+msgid "B<-w>, B<--write>"
+msgstr "B<-w>, B<--write>"
+
+#. type: Plain text
+#: ../man/sysctl.8:64
+msgid ""
+"Force all arguments to be write arguments and print an error if they cannot "
+"be parsed this way."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:64
+#, no-wrap
+msgid "B<-p>[I<FILE>], B<--load>[=I<FILE>]"
+msgstr "B<-p>[I<fichier>], B<--load>[B<=>I<fichier>]"
+
+#. type: Plain text
+#: ../man/sysctl.8:72
+#, fuzzy
+#| msgid ""
+#| "Load in sysctl settings from the file specified or /etc/sysctl.conf if "
+#| "none given. Specifying - as filename means reading data from standard "
+#| "input. Using this option will mean arguments to B<sysctl> are files, "
+#| "which are read in the order they are specified. The file argument may be "
+#| "specified as regular expression."
+msgid ""
+"Load in B<sysctl> settings from the file specified or I</etc/sysctl.conf> if "
+"none given. Specifying - as filename means reading data from standard "
+"input. Using this option will mean arguments to B<sysctl> are files, which "
+"are read in the order they are specified. The file argument may be "
+"specified as regular expression."
+msgstr ""
+"Charger les paramètres sysctl depuis le I<fichier> donné en paramètre ou "
+"depuis I</etc/sysctl.conf> si aucun fichier n'est donné. Indiquer «\\ -\\ » "
+"comme fichier signifie que les données seront lues depuis l'entrée standard. "
+"L'utilisation de cette option signifiera que les arguments de B<sysctl> sont "
+"des fichiers lus dans l'ordre indiqué. L'argument fichier peut être indiqué "
+"comme une expression rationnelle."
+
+#. type: TP
+#: ../man/sysctl.8:72
+#, no-wrap
+msgid "B<-a>, B<--all>"
+msgstr "B<-a>, B<--all>"
+
+#. type: Plain text
+#: ../man/sysctl.8:75
+msgid "Display all values currently available."
+msgstr "Afficher toutes les valeurs disponibles."
+
+#. type: TP
+#: ../man/sysctl.8:75
+#, no-wrap
+msgid "B<--deprecated>"
+msgstr "B<--deprecated>"
+
+#. type: Plain text
+#: ../man/sysctl.8:80
+msgid "Include deprecated parameters to B<--all> values listing."
+msgstr "Inclure les paramètres obsolètes à la liste de valeurs avec B<--all>."
+
+#. type: TP
+#: ../man/sysctl.8:80
+#, no-wrap
+msgid "B<-b>, B<--binary>"
+msgstr "B<-b>, B<--binary>"
+
+#. type: Plain text
+#: ../man/sysctl.8:83
+msgid "Print value without new line."
+msgstr "Afficher la valeur sans retour à la ligne."
+
+#. type: TP
+#: ../man/sysctl.8:83
+#, no-wrap
+msgid "B<--system>"
+msgstr "B<--system>"
+
+#. type: Plain text
+#: ../man/sysctl.8:88
+msgid ""
+"Load settings from all system configuration files. See the B<SYSTEM FILE "
+"PRECEDENCE> section below."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:88
+#, no-wrap
+msgid "B<-r>, B<--pattern> I<pattern>"
+msgstr "B<-r>, B<--pattern> I<motif>"
+
+#. type: Plain text
+#: ../man/sysctl.8:95
+msgid ""
+"Only apply settings that match I<pattern>. The I<pattern> uses extended "
+"regular expression syntax."
+msgstr ""
+"N'appliquer que les réglages qui correspondent au I<motif>. Le I<motif> "
+"utilise la syntaxe d'expression rationnelle étendue."
+
+#. type: TP
+#: ../man/sysctl.8:95 ../man/ps.1:147
+#, no-wrap
+msgid "B<-A>"
+msgstr "B<-A>"
+
+#. type: Plain text
+#: ../man/sysctl.8:98 ../man/sysctl.8:107
+msgid "Alias of B<-a>"
+msgstr "Alias de B<-a>."
+
+#. type: TP
+#: ../man/sysctl.8:98 ../man/ps.1:156
+#, no-wrap
+msgid "B<-d>"
+msgstr "B<-d>"
+
+#. type: Plain text
+#: ../man/sysctl.8:101
+msgid "Alias of B<-h>"
+msgstr "Alias de B<-h>."
+
+#. type: TP
+#: ../man/sysctl.8:101 ../man/ps.1:417
+#, no-wrap
+msgid "B<-f>"
+msgstr "B<-f>"
+
+#. type: Plain text
+#: ../man/sysctl.8:104
+msgid "Alias of B<-p>"
+msgstr "Alias de B<-p>."
+
+#. type: TP
+#: ../man/sysctl.8:107
+#, no-wrap
+msgid "B<-o>"
+msgstr "B<-o>"
+
+#. type: Plain text
+#: ../man/sysctl.8:110 ../man/sysctl.8:113
+msgid "Does nothing, exists for BSD compatibility."
+msgstr "Ne rien faire, pour la compatibilité BSD."
+
+#. type: SH
+#: ../man/sysctl.8:119
+#, no-wrap
+msgid "SYSTEM FILE PRECEDENCE"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:125
+#, fuzzy
+#| msgid ""
+#| "Load settings from all system configuration files. Files are read from "
+#| "directories in the following list in given order from top to bottom. "
+#| "Once a file of a given filename is loaded, any file of the same name in "
+#| "subsequent directories is ignored."
+msgid ""
+"When using the B<--system> option, B<sysctl> will read files from "
+"directories in the following list in given order from top to bottom. Once a "
+"file of a given filename is loaded, any file of the same name in subsequent "
+"directories is ignored."
+msgstr ""
+"Charge la configuration de tous les fichiers de configuration. Les fichiers "
+"sont lus dans la liste des répertoires suivants de haut en bas. Une fois "
+"qu'un fichier avec un nom donné a été chargé, un autre ficher de même nom ne "
+"sera pas chargé."
+
+#. type: Plain text
+#: ../man/sysctl.8:127
+msgid "/etc/sysctl.d/*.conf"
+msgstr "I</etc/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:129
+msgid "/run/sysctl.d/*.conf"
+msgstr "I</run/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:131
+msgid "/usr/local/lib/sysctl.d/*.conf"
+msgstr "I</usr/local/lib/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:133
+msgid "/usr/lib/sysctl.d/*.conf"
+msgstr "I</usr/lib/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:135
+msgid "/lib/sysctl.d/*.conf"
+msgstr "I</lib/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:137
+msgid "/etc/sysctl.conf"
+msgstr "I</etc/sysctl.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:143
+msgid ""
+"All configuration files are sorted in lexicographic order, regardless of the "
+"directory they reside in. Configuration files can either be completely "
+"replaced (by having a new configuration file with the same name in a "
+"directory of higher priority) or partially replaced (by having a "
+"configuration file that is ordered later)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:145
+msgid "/sbin/sysctl -a"
+msgstr "/sbin/sysctl -a"
+
+#. type: Plain text
+#: ../man/sysctl.8:147
+msgid "/sbin/sysctl -n kernel.hostname"
+msgstr "/sbin/sysctl -n kernel.hostname"
+
+#. type: Plain text
+#: ../man/sysctl.8:149
+msgid "/sbin/sysctl -w kernel.domainname=\"example.com\""
+msgstr "/sbin/sysctl -w kernel.domainname=\"example.com\""
+
+#. type: Plain text
+#: ../man/sysctl.8:151
+msgid "/sbin/sysctl -p/etc/sysctl.conf"
+msgstr "/sbin/sysctl -p/etc/sysctl.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:153
+msgid "/sbin/sysctl -a --pattern forward"
+msgstr "/sbin/sysctl -a --pattern forward"
+
+#. type: Plain text
+#: ../man/sysctl.8:155
+msgid "/sbin/sysctl -a --pattern forward$"
+msgstr "/sbin/sysctl -a --pattern forward$"
+
+#. type: Plain text
+#: ../man/sysctl.8:157
+msgid "/sbin/sysctl -a --pattern 'net.ipv4.conf.(eth|wlan)0.arp'"
+msgstr "/sbin/sysctl -a --pattern 'net.ipv4.conf.(eth|wlan)0.arp'"
+
+#. type: Plain text
+#: ../man/sysctl.8:159
+#, fuzzy
+#| msgid "/sbin/sysctl --system --pattern '^net.ipv6'"
+msgid "/sbin/sysctl --pattern '\\[char94]net.ipv6' --system"
+msgstr "/sbin/sysctl --system --pattern '^net.ipv6'"
+
+#. type: SH
+#: ../man/sysctl.8:159
+#, no-wrap
+msgid "DEPRECATED PARAMETERS"
+msgstr "PARAMÈTRES OBSOLÈTES"
+
+#. type: Plain text
+#: ../man/sysctl.8:169
+#, fuzzy
+#| msgid ""
+#| "The B<base_reachable_time> and B<retrans_time> are deprecated. The "
+#| "B<sysctl> command does not allow changing values of these parameters. "
+#| "Users who insist to use deprecated kernel interfaces should push values "
+#| "to /proc file system by other means. For example:"
+msgid ""
+"The B<base_reachable_time> and B<retrans_time> are deprecated. The "
+"B<sysctl> command does not allow changing values of these parameters. Users "
+"who insist to use deprecated kernel interfaces should push values to B</"
+"proc> file system by other means. For example:"
+msgstr ""
+"B<base_reachable_time> et B<retrans_time> sont obsolètes. La commande "
+"B<sysctl> ne permet pas de modifier les valeurs de ces paramètres. Les "
+"utilisateurs qui désirent vraiment utiliser les interfaces obsolètes du "
+"noyau devraient insérer autrement les valeurs dans le système de fichiers I</"
+"proc>. Par exemple :"
+
+#. type: Plain text
+#: ../man/sysctl.8:171
+msgid "echo 256 E<gt> /proc/sys/net/ipv6/neigh/eth0/base_reachable_time"
+msgstr "echo 256 E<gt> /proc/sys/net/ipv6/neigh/eth0/base_reachable_time"
+
+#. type: Plain text
+#: ../man/sysctl.8:173
+msgid "I</proc/sys>"
+msgstr "I</proc/sys>"
+
+#. type: Plain text
+#: ../man/sysctl.8:175 ../man/sysctl.conf.5:66
+msgid "I</etc/sysctl.d/*.conf>"
+msgstr "I</etc/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:177 ../man/sysctl.conf.5:68
+msgid "I</run/sysctl.d/*.conf>"
+msgstr "I</run/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:179 ../man/sysctl.conf.5:70
+msgid "I</usr/local/lib/sysctl.d/*.conf>"
+msgstr "I</usr/local/lib/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:181 ../man/sysctl.conf.5:72
+msgid "I</usr/lib/sysctl.d/*.conf>"
+msgstr "I</usr/lib/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:183 ../man/sysctl.conf.5:74
+msgid "I</lib/sysctl.d/*.conf>"
+msgstr "I</lib/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:185 ../man/sysctl.conf.5:76
+msgid "I</etc/sysctl.conf>"
+msgstr "I</etc/sysctl.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:189
+#, fuzzy
+#| msgid "B<sysctl.conf>(5) B<regex>(7)"
+msgid "B<proc>(5), B<sysctl.conf>(5), B<regex>(7)"
+msgstr "B<sysctl.conf>(5), B<regex>(7)"
+
+#. type: Plain text
+#: ../man/sysctl.8:193 ../man/sysctl.conf.5:89
+msgid "E<.UR staikos@0wned.org> George Staikos E<.UE>"
+msgstr "George Staikos E<lt>I<staikos@wnedorg>E<gt>"
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "SYSCTL.CONF"
+msgstr "SYSCTL.CONF"
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, fuzzy, no-wrap
+#| msgid "2019-09-21"
+msgid "2021-09-15"
+msgstr "21-09-2019"
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "File Formats"
+msgstr "Formats de fichier"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:16
+msgid "sysctl.conf - sysctl preload/configuration file"
+msgstr "sysctl.conf - Fichier de configuration et de chargement pour sysctl"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:21
+msgid ""
+"B<sysctl.conf> is a simple file containing sysctl values to be read in and "
+"set by B<sysctl>. The syntax is simply as follows:"
+msgstr ""
+"I<sysctl.conf> est un simple fichier contenant les valeurs qui doivent être "
+"définies par B<sysctl>. La syntaxe est la suivante\\ :"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:27
+#, no-wrap
+msgid ""
+"# comment\n"
+"; comment\n"
+msgstr ""
+"# commentaire\n"
+"; commentaire\n"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:29
+#, no-wrap
+msgid "token = value\n"
+msgstr "élément = valeur\n"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:35
+msgid ""
+"Note that blank lines are ignored, and whitespace before and after a token "
+"or value is ignored, although a value can contain whitespace within. Lines "
+"which begin with a I<#> or I<;> are considered comments and ignored."
+msgstr ""
+"Notez que les lignes vides et les espaces avant ou après un élément ou une "
+"valeur sont ignorées. Une valeur peut, cependant, contenir des espaces. Les "
+"lignes commençant par un I<#> ou un I<;> sont des commentaires et sont donc "
+"ignorées."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:38
+msgid ""
+"If a line begins with a single -, any attempts to set the value that fail "
+"will be ignored."
+msgstr ""
+"Si une ligne débute par un seul -, toute tentative échouée de définir cette "
+"valeur sera ignorée."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:48
+msgid ""
+"As the B</etc/sysctl.conf> file is used to override default kernel parameter "
+"values, only a small number of parameters is predefined in the file. Use I</"
+"sbin/sysctl\\ -a> or follow B<sysctl>(8) to list all possible parameters. "
+"The description of individual parameters can be found in the kernel "
+"documentation."
+msgstr ""
+"Comme le fichier B</etc/sysctl.conf> est utilisé pour redéfinir les "
+"paramètres par défaut du noyau, seul un petit nombre de paramètres est "
+"possible dans ce fichier. Utiliser I</sbin/sysctl\\ -a> ou suivre "
+"B<sysctl>(8) pour afficher les paramètres disponibles. Chaque paramètre est "
+"décrit dans la documentation du noyau."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:51
+msgid ""
+"Maximum supported line length of the value is 4096 characters due to a "
+"limitation of I</proc> entries in Linux kernel."
+msgstr ""
+
+#. type: SH
+#: ../man/sysctl.conf.5:51
+#, no-wrap
+msgid "EXAMPLE"
+msgstr "EXEMPLE"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:61
+#, no-wrap
+msgid ""
+"# sysctl.conf sample\n"
+"#\n"
+" kernel.domainname = example.com\n"
+"; this one has a space which will be written to the sysctl!\n"
+" kernel.modprobe = /sbin/mod probe\n"
+msgstr ""
+"# Exemple de fichier sysctl.conf\n"
+"#\n"
+" kernel.domainname = example.com\n"
+"; la ligne suivante contient une espace\n"
+"; qui sera passée à la commande sysctl.\n"
+" kernel.modprobe = /sbin/mod probe\n"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:83
+msgid ""
+"The paths where B<sysctl> preload files usually exist. See also B<sysctl> "
+"option I<--system>."
+msgstr ""
+"Les chemins où les fichiers préchargés de B<sysctl> qui existent d’habitude. "
+"Consultez aussi l'option B<--system> de B<sysctl>(8)."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:85
+msgid "B<sysctl>(8)"
+msgstr "B<sysctl>(8)"
+
+#. type: TH
+#: ../man/tload.1:12
+#, no-wrap
+msgid "TLOAD"
+msgstr "TLOAD"
+
+#. type: Plain text
+#: ../man/tload.1:15
+msgid "tload - graphic representation of system load average"
+msgstr "tload - Représentation graphique de la charge moyenne du système"
+
+#. type: Plain text
+#: ../man/tload.1:18
+msgid "B<tload> [I<options>] [I<tty>]"
+msgstr "B<tload> [I<options>] [I<tty>]"
+
+#. type: Plain text
+#: ../man/tload.1:25
+msgid ""
+"B<tload> prints a graph of the current system load average to the specified "
+"I<tty> (or the tty of the B<tload> process if none is specified)."
+msgstr ""
+"B<tload> affiche un graphe de la charge moyenne du système dans la console "
+"I<tty> (ou la console du processus de B<tload> si aucune n'est précisée)."
+
+#. type: TP
+#: ../man/tload.1:26
+#, no-wrap
+msgid "B<-s>, B<--scale> I<number>"
+msgstr "B<-s>, B<--scale> I<échelle>"
+
+#. type: Plain text
+#: ../man/tload.1:31
+msgid ""
+"The scale option allows a vertical scale to be specified for the display (in "
+"characters between graph ticks); thus, a smaller value represents a larger "
+"scale, and vice versa."
+msgstr ""
+"L'option I<échelle> permet d'indiquer une échelle verticale pour l'affichage "
+"(en caractères entre les tirets)\\ ; ainsi une plus petite valeur représente "
+"une plus grande échelle, et vice versa."
+
+#. type: TP
+#: ../man/tload.1:31
+#, no-wrap
+msgid "B<-d>, B<--delay> I<seconds>"
+msgstr "B<-d>, B<--delay> I<délai>"
+
+#. type: Plain text
+#: ../man/tload.1:35
+msgid "The delay sets the delay between graph updates in I<seconds>."
+msgstr ""
+"Le I<délai> définit le délai en seconde entre les mises à jour des graphes."
+
+#. type: Plain text
+#: ../man/tload.1:38
+msgid "Display this help text."
+msgstr "Afficher l'aide et quitter."
+
+#. type: Plain text
+#: ../man/tload.1:45
+msgid "I</proc/loadavg> load average information"
+msgstr "I</proc/loadavg> information sur la charge moyenne"
+
+#. type: Plain text
+#: ../man/tload.1:50
+msgid "B<ps>(1), B<top>(1), B<uptime>(1), B<w>(1)"
+msgstr "B<ps>(1), B<top>(1), B<uptime>(1), B<w>(1)"
+
+#. type: Plain text
+#: ../man/tload.1:58
+msgid ""
+"The B<-d>I< delay> option sets the time argument for an B<alarm>(2); if -d 0 "
+"is specified, the alarm is set to 0, which will never send the B<SIGALRM> "
+"and update the display."
+msgstr ""
+"L'option B<-d>I< délai> définit le paramètre de temps de la commande "
+"B<alarm>(2)\\ ; si -d 0 est indiqué, l'alarme est désactivée, elle n'enverra "
+"jamais de signal B<SIGALRM> bloquant ainsi la mise à jour de l'affichage."
+
+# NOTE: missing Branko’s email address
+#. type: Plain text
+#: ../man/tload.1:66
+msgid ""
+"Branko Lankester, E<.UR david@\\:ods.\\:com> David Engel E<.UE , and> E<.UR "
+"johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE .>"
+msgstr ""
+"Branko Lankester E<lt>I<lankeste@fwi.uva.nl>E<gt>, David Engel "
+"E<lt>I<david@ods.com>E<gt> et Michael K. Johnson E<lt>I<johnsonm@redhat."
+"com>E<gt>."
+
+#. type: TH
+#: ../man/uptime.1:13
+#, no-wrap
+msgid "UPTIME"
+msgstr "UPTIME"
+
+#. type: TH
+#: ../man/uptime.1:13
+#, no-wrap
+msgid "December 2012"
+msgstr "décembre 2012"
+
+#. type: Plain text
+#: ../man/uptime.1:16
+msgid "uptime - Tell how long the system has been running."
+msgstr "uptime - Indiquer depuis quand le système a été mis en route"
+
+#. type: Plain text
+#: ../man/uptime.1:19
+msgid "B<uptime> [I<options>]"
+msgstr "B<uptime> [I<options>]"
+
+#. type: Plain text
+#: ../man/uptime.1:24
+msgid ""
+"B<uptime> gives a one line display of the following information. The "
+"current time, how long the system has been running, how many users are "
+"currently logged on, and the system load averages for the past 1, 5, and 15 "
+"minutes."
+msgstr ""
+"B<uptime> affiche sur une ligne les informations suivantes : l'heure "
+"actuelle, la durée depuis laquelle le système fonctionne, le nombre "
+"d'utilisateurs actuellement connectés, et la charge système moyenne pour les "
+"1, 5, et 15 dernières minutes."
+
+#. type: Plain text
+#: ../man/uptime.1:27
+msgid ""
+"This is the same information contained in the header line displayed by "
+"B<w>(1)."
+msgstr ""
+"Ce sont les mêmes informations que celles contenues dans la ligne d'en-tête "
+"de B<w>(1)."
+
+#. type: Plain text
+#: ../man/uptime.1:36
+msgid ""
+"System load averages is the average number of processes that are either in a "
+"runnable or uninterruptable state. A process in a runnable state is either "
+"using the CPU or waiting to use the CPU. A process in uninterruptable state "
+"is waiting for some I/O access, eg waiting for disk. The averages are taken "
+"over the three time intervals. Load averages are not normalized for the "
+"number of CPUs in a system, so a load average of 1 means a single CPU system "
+"is loaded all the time while on a 4 CPU system it means it was idle 75% of "
+"the time."
+msgstr ""
+"La charge système moyenne est le nombre moyen de processus qui sont dans un "
+"état exécutable ou non interruptible. Un processus exécutable utilise le "
+"processeur ou est en attente pour l'utiliser. Un processus non interruptible "
+"est en attente pour des entrées et sorties, par exemple, attendre un disque. "
+"Les moyennes sont calculées sur trois intervalles de temps. La charge "
+"moyenne n'est pas normalisée par rapport au nombre de processeurs du "
+"système. Ainsi une charge moyenne de 1 signifie qu'un système monoprocesseur "
+"est chargé tout le temps alors qu'un système à quatre processeurs est "
+"inactif 75\\ % du temps."
+
+#. type: TP
+#: ../man/uptime.1:37
+#, no-wrap
+msgid "B<-p>, B<--pretty>"
+msgstr "B<-p>, B<--pretty>"
+
+#. type: Plain text
+#: ../man/uptime.1:40
+msgid "show uptime in pretty format"
+msgstr "Afficher en format élégant"
+
+#. type: Plain text
+#: ../man/uptime.1:43
+msgid "display this help text"
+msgstr "Afficher l'aide"
+
+#. type: TP
+#: ../man/uptime.1:43
+#, no-wrap
+msgid "B<-s>, B<--since>"
+msgstr "B<-s>, B<--since>"
+
+#. type: Plain text
+#: ../man/uptime.1:46
+msgid "system up since, in yyyy-mm-dd HH:MM:SS format"
+msgstr ""
+"Date depuis laquelle le système est en route, au format aaaa-mm-jj HH:MM:SS"
+
+#. type: Plain text
+#: ../man/uptime.1:49
+msgid "display version information and exit"
+msgstr "Afficher la version du logiciel et quitter"
+
+#. type: TP
+#: ../man/uptime.1:50 ../man/w.1:89
+#, no-wrap
+msgid "I</var/run/utmp>"
+msgstr "I</var/run/utmp>"
+
+#. type: Plain text
+#: ../man/uptime.1:53 ../man/w.1:92
+msgid "information about who is currently logged on"
+msgstr "informations concernant les utilisateurs présents sur le système"
+
+#. type: TP
+#: ../man/uptime.1:53 ../man/w.1:92
+#, no-wrap
+msgid "I</proc>"
+msgstr "I</proc>"
+
+#. type: Plain text
+#: ../man/uptime.1:56 ../man/w.1:95
+msgid "process information"
+msgstr "informations concernant les processus"
+
+#. type: Plain text
+#: ../man/uptime.1:66
+msgid ""
+"B<uptime> was written by E<.UR greenfie@gauss.\\:rutgers.\\:edu> Larry "
+"Greenfield E<.UE> and E<.UR johnsonm@sunsite.\\:unc.\\:edu> Michael K. "
+"Johnson E<.UE>"
+msgstr ""
+"B<uptime> a été écrit par Larry Greenfield E<lt>I<greenfie@gauss.rutgers."
+"edu>E<gt> et Michael K. Johnson E<lt>I<johnsonm@sunsite.unc.edu>E<gt>."
+
+#. type: Plain text
+#: ../man/uptime.1:71
+msgid "B<ps>(1), B<top>(1), B<utmp>(5), B<w>(1)"
+msgstr "B<ps>(1), B<top>(1), B<utmp>(5), B<w>(1)"
+
+#. type: TH
+#: ../man/vmstat.8:13
+#, no-wrap
+msgid "VMSTAT"
+msgstr "VMSTAT"
+
+#. type: TH
+#: ../man/vmstat.8:13
+#, fuzzy, no-wrap
+#| msgid "2018-01-13"
+msgid "2023-01-18"
+msgstr "13 janvier 2018"
+
+#. type: Plain text
+#: ../man/vmstat.8:16
+msgid "vmstat - Report virtual memory statistics"
+msgstr "vmstat - Afficher des statistiques sur la mémoire virtuelle"
+
+#. type: Plain text
+#: ../man/vmstat.8:20
+msgid "B<vmstat> [options] [I<delay> [I<count>]]"
+msgstr "B<vmstat> [I<options>] [I<délai> [I<total>]]"
+
+#. type: Plain text
+#: ../man/vmstat.8:24
+msgid ""
+"B<vmstat> reports information about processes, memory, paging, block IO, "
+"traps, disks and cpu activity."
+msgstr ""
+"B<vmstat> affiche des informations sur les processus, la mémoire, la "
+"pagination, les blocs d'entrées et sorties, les interruptions et l'activité "
+"du processeur et des disques."
+
+#. type: Plain text
+#: ../man/vmstat.8:29
+msgid ""
+"The first report produced gives averages since the last reboot. Additional "
+"reports give information on a sampling period of length I<delay>. The "
+"process and memory reports are instantaneous in either case."
+msgstr ""
+"Le premier rapport produit présente les moyennes depuis le dernier "
+"démarrage. Les rapports ultérieurs présentent un compte rendu tous les "
+"I<délai>. Les rapports sur les processus et la mémoire sont immédiats dans "
+"tous les cas de figure."
+
+#. type: TP
+#: ../man/vmstat.8:30
+#, no-wrap
+msgid "I<delay>"
+msgstr "I<délai>"
+
+#. type: Plain text
+#: ../man/vmstat.8:37
+msgid ""
+"The I<delay> between updates in seconds. If no I<delay> is specified, only "
+"one report is printed with the average values since boot."
+msgstr ""
+"Le I<délai> en seconde entre les mises à jour. Si aucun I<délai> n'est "
+"précisé, seul un rapport est affiché avec les valeurs moyennes depuis le "
+"démarrage."
+
+#. type: TP
+#: ../man/vmstat.8:37
+#, no-wrap
+msgid "I<count>"
+msgstr "I<total>"
+
+#. type: Plain text
+#: ../man/vmstat.8:44
+msgid ""
+"Number of updates. In absence of I<count>, when I<delay> is defined, "
+"default is infinite."
+msgstr ""
+"Le nombre de mises à jour. Si I<total> n'est pas indiqué, quand I<délai> est "
+"défini, I<total> vaut l'infini par défaut."
+
+#. type: TP
+#: ../man/vmstat.8:44
+#, no-wrap
+msgid "B<-a>, B<--active>"
+msgstr "B<-a>, B<--active>"
+
+#. type: Plain text
+#: ../man/vmstat.8:47
+msgid "Display active and inactive memory, given a 2.5.41 kernel or better."
+msgstr ""
+"Afficher la mémoire active et inactive pour les noyaux 2.5.41 et supérieurs."
+
+#. type: TP
+#: ../man/vmstat.8:47
+#, no-wrap
+msgid "B<-f>, B<--forks>"
+msgstr "B<-f>, B<--forks>"
+
+#. type: Plain text
+#: ../man/vmstat.8:55
+msgid ""
+"The B<-f> switch displays the number of forks since boot. This includes the "
+"fork, vfork, and clone system calls, and is equivalent to the total number "
+"of tasks created. Each process is represented by one or more tasks, "
+"depending on thread usage. This display does not repeat."
+msgstr ""
+"L'option B<-f> affiche le nombre de processus fils depuis le démarrage du "
+"système, à savoir les « fork », « vfork » et les clones d'appels système. "
+"Cela correspond au nombre total de tâches créées. Chaque processus est "
+"représenté par une ou plusieurs tâches dépendant de l'utilisation des "
+"processus légers (« threads »). Il n'y a pas de rafraîchissement."
+
+#. type: TP
+#: ../man/vmstat.8:55
+#, no-wrap
+msgid "B<-m>, B<--slabs>"
+msgstr "B<-m>, B<--slabs>"
+
+#. type: Plain text
+#: ../man/vmstat.8:58
+msgid "Displays slabinfo."
+msgstr "Afficher le slabinfo."
+
+#. type: TP
+#: ../man/vmstat.8:58
+#, no-wrap
+msgid "B<-n>, B<--one-header>"
+msgstr "B<-n>, B<--one-header>"
+
+#. type: Plain text
+#: ../man/vmstat.8:61
+msgid "Display the header only once rather than periodically."
+msgstr "N'afficher l'en-tête qu'une fois plutôt que périodiquement."
+
+#. type: TP
+#: ../man/vmstat.8:61
+#, no-wrap
+msgid "B<-s>, B<--stats>"
+msgstr "B<-s>, B<--stats>"
+
+#. type: Plain text
+#: ../man/vmstat.8:65
+msgid ""
+"Displays a table of various event counters and memory statistics. This "
+"display does not repeat."
+msgstr ""
+"Afficher un tableau de compteurs d'événements et des statistiques sur la "
+"mémoire. Il s'agit d'un affichage unique."
+
+#. type: TP
+#: ../man/vmstat.8:65
+#, no-wrap
+msgid "B<-d>, B<--disk>"
+msgstr "B<-d>, B<--disk>"
+
+#. type: Plain text
+#: ../man/vmstat.8:68
+msgid "Report disk statistics (2.5.70 or above required)."
+msgstr ""
+"Afficher des statistiques sur le disque (pour les versions 2.5.70 ou "
+"supérieures)."
+
+#. type: TP
+#: ../man/vmstat.8:68
+#, no-wrap
+msgid "B<-D>, B<--disk-sum>"
+msgstr "B<-D>, B<--disk-sum>"
+
+#. type: Plain text
+#: ../man/vmstat.8:71
+msgid "Report some summary statistics about disk activity."
+msgstr ""
+"Afficher des statistiques succinctes à propos de l'activité des disques."
+
+#. type: TP
+#: ../man/vmstat.8:71
+#, no-wrap
+msgid "B<-p>, B<--partition> I<device>"
+msgstr "B<-p>, B<--partition> I<périphérique>"
+
+#. type: Plain text
+#: ../man/vmstat.8:74
+msgid "Detailed statistics about partition (2.5.70 or above required)."
+msgstr ""
+"Afficher des statistiques sur les partitions (pour les versions 2.5.70 ou "
+"supérieures)."
+
+#. type: TP
+#: ../man/vmstat.8:74
+#, no-wrap
+msgid "B<-S>, B<--unit> I<character>"
+msgstr "B<-S>, B<--unit> I<lettre>"
+
+#. type: Plain text
+#: ../man/vmstat.8:86
+#, fuzzy
+#| msgid ""
+#| "Switches outputs between 1000 (I<k>), 1024 (I<K>), 1000000 (I<m>), or "
+#| "1048576 (I<M>) bytes. Note this does not change the block (bi/bo) "
+#| "fields, which are always measured in blocks."
+msgid ""
+"Switches outputs between 1000 (I<k>), 1024 (I<K>), 1000000 (I<m>), or "
+"1048576 (I<M>) bytes. Note this does not change the swap (si/so) or block "
+"(bi/bo) fields."
+msgstr ""
+"Modifier les unités en sortie de 1000 (I<k>), 1024 (I<K>), 1000000 (I<m>) ou "
+"1048576 (I<M>) octets. Remarquez que les champs block (bi/bo) ne sont pas "
+"modifiés car ils sont toujours mesurés en blocs."
+
+#. type: TP
+#: ../man/vmstat.8:86
+#, no-wrap
+msgid "B<-t>, B<--timestamp>"
+msgstr "B<-t>, B<--timestamp>"
+
+# NOTE: final period missing
+#. type: Plain text
+#: ../man/vmstat.8:89
+msgid "Append timestamp to each line"
+msgstr "Ajouter un horodatage à toutes les lignes."
+
+#. type: Plain text
+#: ../man/vmstat.8:94
+msgid ""
+"Wide output mode (useful for systems with higher amount of memory, where the "
+"default output mode suffers from unwanted column breakage). The output is "
+"wider than 80 characters per line."
+msgstr ""
+"Mode de sortie large (utile pour les systèmes avec une grande quantité de "
+"mémoire, où le mode d’affichage par défaut est victime de rupture de colonne "
+"involontaire). La sortie est plus grande que 80 caractères par ligne."
+
+#. type: TP
+#: ../man/vmstat.8:94
+#, fuzzy, no-wrap
+#| msgid "B<-t>, B<--no-title>"
+msgid "B<-y>, B<--no-first>"
+msgstr "B<-t>, B<--no-title>"
+
+#. type: Plain text
+#: ../man/vmstat.8:97
+msgid "Omits first report with statistics since system boot."
+msgstr ""
+
+#. type: SH
+#: ../man/vmstat.8:104
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR VM MODE"
+msgstr "DESCRIPTIONS DES CHAMPS POUR LE MODE VM"
+
+#. type: SS
+#: ../man/vmstat.8:105
+#, no-wrap
+msgid "Procs"
+msgstr "procs (processus)"
+
+#. type: Plain text
+#: ../man/vmstat.8:109
+#, fuzzy, no-wrap
+#| msgid ""
+#| "r: The number of runnable processes (running or waiting for run time).\n"
+#| "b: The number of processes in uninterruptible sleep.\n"
+msgid ""
+"r: The number of runnable processes (running or waiting for run time).\n"
+"b: The number of processes blocked waiting for I/O to complete.\n"
+msgstr ""
+"r\\ : Nombre de processus exécutables (en cours ou en attente d'exécution).\n"
+"b\\ : Nombre de processus en sommeil non interruptible.\n"
+
+#. type: SS
+#: ../man/vmstat.8:110
+#, no-wrap
+msgid "Memory"
+msgstr "memory (mémoire)"
+
+#. type: Plain text
+#: ../man/vmstat.8:112 ../man/vmstat.8:122
+msgid "These are affected by the B<--unit> option."
+msgstr "Ceci est affecté par l'option B<--unit>."
+
+#. type: Plain text
+#: ../man/vmstat.8:119
+#, fuzzy, no-wrap
+#| msgid ""
+#| "swpd: the amount of virtual memory used.\n"
+#| "free: the amount of idle memory.\n"
+#| "buff: the amount of memory used as buffers.\n"
+#| "cache: the amount of memory used as cache.\n"
+#| "inact: the amount of inactive memory. (-a option)\n"
+#| "active: the amount of active memory. (-a option)\n"
+msgid ""
+"swpd: the amount of swap memory used.\n"
+"free: the amount of idle memory.\n"
+"buff: the amount of memory used as buffers.\n"
+"cache: the amount of memory used as cache.\n"
+"inact: the amount of inactive memory. (B<-a> option)\n"
+"active: the amount of active memory. (B<-a> option)\n"
+msgstr ""
+"swpd\\ : Quantité de mémoire virtuelle utilisée.\n"
+"free\\ : Quantité de mémoire disponible.\n"
+"buff\\ : Quantité de mémoire tampon.\n"
+"cache\\ : Quantité de mémoire cache.\n"
+"inact\\ : Quantité de mémoire inactive (option -a).\n"
+"active\\ : Quantité de mémoire active (option -a).\n"
+
+#. type: SS
+#: ../man/vmstat.8:120
+#, no-wrap
+msgid "Swap"
+msgstr "swap (espace d'échange)"
+
+#. type: Plain text
+#: ../man/vmstat.8:125
+#, no-wrap
+msgid ""
+"si: Amount of memory swapped in from disk (/s).\n"
+"so: Amount of memory swapped to disk (/s).\n"
+msgstr ""
+"si\\ : Quantité de mémoire paginée lue depuis le disque en ko/s.\n"
+"so\\ : Quantité de mémoire paginée transférée sur disque en ko/s.\n"
+
+#. type: SS
+#: ../man/vmstat.8:126 ../man/vmstat.8:161
+#, no-wrap
+msgid "IO"
+msgstr "io (entrées et sorties)"
+
+#. type: Plain text
+#: ../man/vmstat.8:130
+#, fuzzy, no-wrap
+#| msgid ""
+#| "bi: Blocks received from a block device (blocks/s).\n"
+#| "bo: Blocks sent to a block device (blocks/s).\n"
+msgid ""
+"bi: Kibibyte received from a block device (KiB/s).\n"
+"bo: Kibibyte sent to a block device (KiB/s).\n"
+msgstr ""
+"bi\\ : Blocs reçus d'un périphérique en mode bloc (blocs/s).\n"
+"bo\\ : Blocs envoyés à un périphérique en mode bloc (blocs/s).\n"
+
+#. type: SS
+#: ../man/vmstat.8:131
+#, no-wrap
+msgid "System"
+msgstr "system (système)"
+
+#. type: Plain text
+#: ../man/vmstat.8:135
+#, no-wrap
+msgid ""
+"in: The number of interrupts per second, including the clock.\n"
+"cs: The number of context switches per second.\n"
+msgstr ""
+"in\\ : Nombre d'interruptions par seconde, incluant l'horloge.\n"
+"cs\\ : Nombre de bascules du contexte par seconde.\n"
+
+#. type: ds PU
+#: ../man/vmstat.8:136 ../man/top.1:37
+#, no-wrap
+msgid "CPU"
+msgstr "CPU"
+
+#. type: Plain text
+#: ../man/vmstat.8:138
+msgid "These are percentages of total CPU time."
+msgstr "Il s'agit de la répartition du temps processeur en pourcentage."
+
+#. type: Plain text
+#: ../man/vmstat.8:145
+#, fuzzy, no-wrap
+#| msgid ""
+#| "us: Time spent running non-kernel code. (user time, including nice time)\n"
+#| "sy: Time spent running kernel code. (system time)\n"
+#| "id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.\n"
+#| "wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle.\n"
+#| "st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.\n"
+msgid ""
+"us: Time spent running non-kernel code. (user time, including nice time)\n"
+"sy: Time spent running kernel code. (system time)\n"
+"id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.\n"
+"wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle.\n"
+"st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.\n"
+"gu: Time spent running KVM guest code (guest time, including guest nice).\n"
+msgstr ""
+"us\\ : Temps consommé par les processus hors noyau (temps utilisateur\n"
+" incluant le temps de définition des priorités).\n"
+"sy\\ : Temps consommé par le noyau (temps système).\n"
+"id\\ : Temps d'inactivité. Avant Linux\\ 2.5.41, le temps d'attente\n"
+" des entrées et sorties était inclus.\n"
+"wa\\ : Temps d'attente des entrées et sorties. Inclus dans le temps\n"
+" d'inactivité avant Linux\\ 2.5.41.\n"
+"st\\ : Temps volé par une machine virtuelle. Inconnu avant Linux\\ 2.6.11.\n"
+
+#. type: SH
+#: ../man/vmstat.8:146
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR DISK MODE"
+msgstr "DESCRIPTIONS DES CHAMPS POUR LE MODE DISQUE"
+
+#. type: SS
+#: ../man/vmstat.8:147
+#, no-wrap
+msgid "Reads"
+msgstr "reads (lectures)"
+
+#. type: Plain text
+#: ../man/vmstat.8:153
+#, no-wrap
+msgid ""
+"total: Total reads completed successfully\n"
+"merged: grouped reads (resulting in one I/O)\n"
+"sectors: Sectors read successfully\n"
+"ms: milliseconds spent reading\n"
+msgstr ""
+"total\\ : Nombre total de lectures réussies.\n"
+"merged\\ : Lectures groupées (en une seule opération d'entrée ou sortie).\n"
+"sectors\\ : Secteurs lus avec succès.\n"
+"ms\\ : Temps de lecture en milliseconde.\n"
+
+#. type: SS
+#: ../man/vmstat.8:154
+#, no-wrap
+msgid "Writes"
+msgstr "writes (écritures)"
+
+#. type: Plain text
+#: ../man/vmstat.8:160
+#, no-wrap
+msgid ""
+"total: Total writes completed successfully\n"
+"merged: grouped writes (resulting in one I/O)\n"
+"sectors: Sectors written successfully\n"
+"ms: milliseconds spent writing\n"
+msgstr ""
+"total\\ : Nombre total d'écritures terminées avec succès.\n"
+"merged\\ : Écritures groupées (en une seule opération d'entrée ou sortie).\n"
+"sectors\\ : Secteurs écrits avec succès.\n"
+"ms\\ : Temps d'écriture en milliseconde.\n"
+
+#. type: Plain text
+#: ../man/vmstat.8:165
+#, no-wrap
+msgid ""
+"cur: I/O in progress\n"
+"s: seconds spent for I/O\n"
+msgstr ""
+"cur\\ : Entrées et sorties en cours.\n"
+"s\\ : Temps en seconde utilisé par les entrées et sorties.\n"
+
+#. type: SH
+#: ../man/vmstat.8:166
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR DISK PARTITION MODE"
+msgstr "DESCRIPTIONS DES CHAMPS POUR LE MODE DE PARTITION DE DISQUE"
+
+#. type: Plain text
+#: ../man/vmstat.8:172
+#, no-wrap
+msgid ""
+"reads: Total number of reads issued to this partition\n"
+"read sectors: Total read sectors for partition\n"
+"writes : Total number of writes issued to this partition\n"
+"requested writes: Total number of write requests made for partition\n"
+msgstr ""
+"reads\\ : Nombre total de lectures de la partition.\n"
+"read sectors\\ : Nombre total de secteurs lus pour la partition.\n"
+"writes\\ : Nombre total d'écritures sur la partition.\n"
+"requested writes\\ : Nombre total de requêtes d'écriture sur la partition.\n"
+
+#. type: SH
+#: ../man/vmstat.8:173
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR SLAB MODE"
+msgstr "DESCRIPTIONS DES CHAMPS POUR LE MODE SLAB"
+
+#. type: Plain text
+#: ../man/vmstat.8:177
+msgid ""
+"Slab mode shows statistics per slab, for more information about this "
+"information see B<slabinfo>(5)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:184
+#, no-wrap
+msgid ""
+"cache: Cache name\n"
+"num: Number of currently active objects\n"
+"total: Total number of available objects\n"
+"size: Size of each object\n"
+"pages: Number of pages with at least one active object\n"
+msgstr ""
+"cache\\ : Nom du cache.\n"
+"num\\ : Nombre d'objets actuellement actifs.\n"
+"total\\ : Nombre total d'objets disponibles.\n"
+"size\\ : Taille de chaque objet.\n"
+"pages\\ : Nombre de pages avec au moins un objet actif.\n"
+
+#. type: Plain text
+#: ../man/vmstat.8:191
+msgid ""
+"B<vmstat> requires read access to files under I</proc>. The B<-m> requires "
+"read access to I</proc/slabinfo> which may not be available to standard "
+"users. Mount options for I</proc> such as I<subset=pid> may also impact "
+"what is visible."
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:199
+#, fuzzy
+#| msgid ""
+#| "B<free>(1), B<iostat>(1), B<mpstat>(1), B<ps>(1), B<sar>(1), B<top>(1)"
+msgid ""
+"B<free>(1), B<iostat>(1), B<mpstat>(1), B<ps>(1), B<sar>(1), B<top>(1), "
+"B<slabinfo>(5)"
+msgstr "B<free>(1), B<iostat>(1), B<mpstat>(1), B<ps>(1), B<sar>(1), B<top>(1)"
+
+#. type: TP
+#: ../man/w.1:14 ../man/ps.1:852
+#, no-wrap
+msgid "W"
+msgstr "W"
+
+#. type: TH
+#: ../man/w.1:14
+#, fuzzy, no-wrap
+#| msgid "2018-01-13"
+msgid "2023-01-15"
+msgstr "13 janvier 2018"
+
+#. type: Plain text
+#: ../man/w.1:17
+msgid "w - Show who is logged on and what they are doing."
+msgstr "w - Afficher les utilisateurs présents sur le système et leur activité"
+
+#. type: Plain text
+#: ../man/w.1:20
+#, fuzzy
+#| msgid "B<w> [I<options>] I<user> [...]"
+msgid "B<w> [I<options>] [I<user>]"
+msgstr "B<w> [I<options>] I<utilisateur> [...]"
+
+#. type: Plain text
+#: ../man/w.1:26
+msgid ""
+"B<w> displays information about the users currently on the machine, and "
+"their processes. The header shows, in this order, the current time, how "
+"long the system has been running, how many users are currently logged on, "
+"and the system load averages for the past 1, 5, and 15 minutes."
+msgstr ""
+"B<w> affiche des informations concernant les utilisateurs qui sont "
+"actuellement présents sur le système et leurs processus. L'en-tête affiche, "
+"dans cet ordre, l'heure actuelle, depuis combien de temps le système est "
+"actif, combien d'utilisateurs sont actuellement présents sur le système et "
+"la charge moyenne du système pour la dernière, les 5 et les 15 dernières "
+"minutes."
+
+#. type: Plain text
+#: ../man/w.1:30
+msgid ""
+"The following entries are displayed for each user: login name, the tty name, "
+"the remote host, login time, idle time, JCPU, PCPU, and the command line of "
+"their current process."
+msgstr ""
+"Les entrées suivantes sont affichées pour chacun des utilisateurs : nom "
+"d'utilisateur, nom du terminal (« tty »), hôte distant, temps écoulé depuis "
+"le début de la connexion, temps d'inactivité, JCPU, PCPU, ainsi que la ligne "
+"de commande de leur processus en cours."
+
+#. type: Plain text
+#: ../man/w.1:34
+msgid ""
+"The JCPU time is the time used by all processes attached to the tty. It "
+"does not include past background jobs, but does include currently running "
+"background jobs."
+msgstr ""
+"Le temps JCPU est le temps utilisé par tous les processus attachés au tty. "
+"Il n'inclut pas les travaux terminés qui ont été exécutés en tâche de fond, "
+"mais il inclut les travaux en tâche de fond qui sont actuellement actifs."
+
+#. type: Plain text
+#: ../man/w.1:37
+msgid ""
+"The PCPU time is the time used by the current process, named in the \"what\" "
+"field."
+msgstr ""
+"Le temps PCPU est le temps utilisé par le processus actuel, le nom de ce "
+"processus se trouve dans la colonne dont l'intitulé est « WHAT »."
+
+#. type: SH
+#: ../man/w.1:37
+#, no-wrap
+msgid "COMMAND-LINE OPTIONS"
+msgstr "OPTIONS DE LA LIGNE DE COMMANDE"
+
+#. type: TP
+#: ../man/w.1:38
+#, no-wrap
+msgid "B<-h>, B<--no-header>"
+msgstr "B<-h>, B<--no-header>"
+
+#. type: Plain text
+#: ../man/w.1:41
+msgid "Don't print the header."
+msgstr "Ne pas afficher l'en-tête"
+
+#. type: TP
+#: ../man/w.1:41
+#, no-wrap
+msgid "B<-u>, B<--no-current>"
+msgstr "B<-u>, B<--no-current>"
+
+#. type: Plain text
+#: ../man/w.1:50
+msgid ""
+"Ignores the username while figuring out the current process and cpu times. "
+"To demonstrate this, do a B<su> and do a B<w> and a B<w -u>."
+msgstr ""
+"Ignorer le nom d'utilisateur lors de la détermination du nombre de processus "
+"et des temps CPU. Pour en voir l'effet, faire B<su> puis B<w> et B<w -u>."
+
+#. type: TP
+#: ../man/w.1:50
+#, no-wrap
+msgid "B<-s>, B<--short>"
+msgstr "B<-s>, B<--short>"
+
+#. type: Plain text
+#: ../man/w.1:53
+msgid "Use the short format. Don't print the login time, JCPU or PCPU times."
+msgstr ""
+"Utiliser le format court. N'afficher ni le temps de présence ni les temps "
+"JCPU et PCPU."
+
+#. type: TP
+#: ../man/w.1:53
+#, no-wrap
+msgid "B<-f>, B<--from>"
+msgstr "B<-f>, B<--from>"
+
+#. type: Plain text
+#: ../man/w.1:63
+msgid ""
+"Toggle printing the B<from> (remote hostname) field. The default as "
+"released is for the B<from> field to not be printed, although your system "
+"administrator or distribution maintainer may have compiled a version in "
+"which the B<from> field is shown by default."
+msgstr ""
+"Alterner entre l'activation et la désactivation de l'affichage du champ "
+"« FROM » (nom de l'hôte distant). Le comportement initial par défaut est de "
+"ne pas afficher le champ « FROM ». Cependant, une version affichant le champ "
+"« FROM » par défaut peut avoir été compilée par l'administrateur système ou "
+"les responsables de la distribution."
+
+#. type: TP
+#: ../man/w.1:66
+#, no-wrap
+msgid "B<-i>, B<--ip-addr>"
+msgstr "B<-i>, B<--ip-addr>"
+
+#. type: Plain text
+#: ../man/w.1:69
+msgid "Display IP address instead of hostname for B<from> field."
+msgstr "Afficher l'adresse IP au lieu du nom d'hôte pour le champ « FROM »."
+
+#. type: TP
+#: ../man/w.1:69
+#, fuzzy, no-wrap
+#| msgid "B<-p>, B<--precise>"
+msgid "B<-p>, B<--pids>"
+msgstr "B<-p>, B<--precise>"
+
+#. type: Plain text
+#: ../man/w.1:72
+msgid ""
+"Display pid of the login process/the \"what\" process in the \"what\" field."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:75
+#, no-wrap
+msgid "B<-o>, B<--old-style>"
+msgstr "B<-o>, B<--old-style>"
+
+#. type: Plain text
+#: ../man/w.1:78
+msgid ""
+"Old style output. Prints blank space for idle times less than one minute."
+msgstr ""
+"Formatage de la sortie selon l'ancien style. Laisser vierges les durées "
+"d'inactivité de moins d'une minute."
+
+#. type: TP
+#: ../man/w.1:78
+#, no-wrap
+msgid "B<user >"
+msgstr "B<utilisateur >"
+
+#. type: Plain text
+#: ../man/w.1:81
+msgid "Show information about the specified user only."
+msgstr "N'afficher d'informations que pour l'utilisateur indiqué."
+
+#. type: SH
+#: ../man/w.1:81 ../man/watch.1:133
+#, no-wrap
+msgid "ENVIRONMENT"
+msgstr "ENVIRONNEMENT"
+
+#. type: TP
+#: ../man/w.1:82
+#, no-wrap
+msgid "PROCPS_USERLEN"
+msgstr "PROCPS_USERLEN"
+
+#. type: Plain text
+#: ../man/w.1:85
+msgid "Override the default width of the username column. Defaults to 8."
+msgstr ""
+"Remplace la largeur par défaut de la colonne « USER ». La valeur par défaut "
+"est de 8."
+
+#. type: TP
+#: ../man/w.1:85
+#, no-wrap
+msgid "PROCPS_FROMLEN"
+msgstr "PROCPS_FROMLEN"
+
+#. type: Plain text
+#: ../man/w.1:88
+msgid "Override the default width of the from column. Defaults to 16."
+msgstr ""
+"Remplace la largeur par défaut de la colonne « FROM ». La valeur par défaut "
+"est de 16."
+
+#. type: Plain text
+#: ../man/w.1:102
+msgid "B<free>(1), B<ps>(1), B<top>(1), B<uptime>(1), B<utmp>(5), B<who>(1)"
+msgstr "B<free>(1), B<ps>(1), B<top>(1), B<uptime>(1), B<utmp>(5), B<who>(1)"
+
+#. type: Plain text
+#: ../man/w.1:112
+msgid ""
+"B<w> was re-written almost entirely by Charles Blake, based on the version "
+"by E<.UR greenfie@\\:gauss.\\:rutgers.\\:edu> Larry Greenfield E<.UE> and E<."
+"UR johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE>"
+msgstr ""
+"B<w> a presque entièrement été réécrit par Charles Blake qui s'est basé sur "
+"une version de Larry Greenfield E<lt>I<greenfie@gauss.rutgers.edu>E<gt> et "
+"Michael K. Johnson E<lt>I<johnsonm@redhat.com>E<gt>."
+
+#. type: TH
+#: ../man/watch.1:13
+#, no-wrap
+msgid "WATCH"
+msgstr "WATCH"
+
+#. type: TH
+#: ../man/watch.1:13
+#, fuzzy, no-wrap
+#| msgid "2018-01-13"
+msgid "2023-01-17"
+msgstr "13 janvier 2018"
+
+#. type: Plain text
+#: ../man/watch.1:16
+msgid "watch - execute a program periodically, showing output fullscreen"
+msgstr ""
+"watch - Exécuter un programme périodiquement en affichant le résultat à "
+"l'écran"
+
+#. type: Plain text
+#: ../man/watch.1:19
+msgid "B<watch> [I<options>] I<command>"
+msgstr "B<watch> [I<options>] I<commande>"
+
+#. type: Plain text
+#: ../man/watch.1:26
+msgid ""
+"B<watch> runs I<command> repeatedly, displaying its output and errors (the "
+"first screenfull). This allows you to watch the program output change over "
+"time. By default, I<command> is run every 2 seconds and B<watch> will run "
+"until interrupted."
+msgstr ""
+"B<watch> exécute la I<commande> périodiquement et affiche le résultat et les "
+"erreurs (en plein écran). Cela permet d'observer les changements de "
+"résultats du programme au fil du temps. Par défaut, I<command> est exécuté "
+"toutes les deux secondes et B<watch> fonctionnera jusqu'à être interrompu."
+
+#. type: TP
+#: ../man/watch.1:27
+#, no-wrap
+msgid "B<-b>, B<--beep>"
+msgstr "B<-b>, B<--beep>"
+
+#. type: Plain text
+#: ../man/watch.1:30
+msgid "Beep if command has a non-zero exit."
+msgstr "Émettre un bip lorsque le code de retour de la commande est non nul."
+
+#. type: TP
+#: ../man/watch.1:30
+#, no-wrap
+msgid "B<-c>, B<--color>"
+msgstr "B<-c>, B<--color>"
+
+#. type: Plain text
+#: ../man/watch.1:33
+msgid "Interpret ANSI color and style sequences."
+msgstr "Interpréter les suites et style de couleur ANSI."
+
+#. type: TP
+#: ../man/watch.1:33
+#, fuzzy, no-wrap
+#| msgid "B<-c>, B<--color>"
+msgid "B<-C>, B<--no-color>"
+msgstr "B<-c>, B<--color>"
+
+#. type: Plain text
+#: ../man/watch.1:36
+#, fuzzy
+#| msgid "Interpret ANSI color and style sequences."
+msgid "Do not interpret ANSI color and style sequences."
+msgstr "Interpréter les suites et style de couleur ANSI."
+
+#. type: TP
+#: ../man/watch.1:36
+#, no-wrap
+msgid "B<-d>, B<--differences>[=I<permanent>]"
+msgstr "B<-d>, B<--differences>[=I<permanent>]"
+
+#. type: Plain text
+#: ../man/watch.1:42
+#, fuzzy
+#| msgid ""
+#| "Highlight the differences between successive updates. Option will read "
+#| "optional argument that changes highlight to be permanent, allowing to see "
+#| "what has changed at least once since first iteration."
+msgid ""
+"Highlight the differences between successive updates. If the optional "
+"I<permanent> argument is specified then B<watch> will show all changes since "
+"the first iteration."
+msgstr ""
+"Surligner les différences entre les mises à jour successives. L'option lira "
+"un argument facultatif qui modifie la surbrillance de façon permanente, "
+"permettant de voir ce qui a été modifié au moins une fois depuis la première "
+"itération."
+
+#. type: TP
+#: ../man/watch.1:42
+#, no-wrap
+msgid "B<-e>, B<--errexit>"
+msgstr "B<-e>, B<--errexit>"
+
+#. type: Plain text
+#: ../man/watch.1:45
+msgid "Freeze updates on command error, and exit after a key press."
+msgstr ""
+"Geler les mises à jour en cas d'erreur de la commande et quitter après avoir "
+"appuyé sur une touche."
+
+#. type: TP
+#: ../man/watch.1:45
+#, no-wrap
+msgid "B<-g>, B<--chgexit>"
+msgstr "B<-g>, B<--chgexit>"
+
+#. type: Plain text
+#: ../man/watch.1:50
+msgid "Exit when the output of I<command> changes."
+msgstr "Terminer quand la sortie de I<commande> est modifiée."
+
+#. type: TP
+#: ../man/watch.1:50
+#, no-wrap
+msgid "B<-n>, B<--interval> I<seconds>"
+msgstr "B<-n>, B<--interval> I<intervalle>"
+
+#. type: Plain text
+#: ../man/watch.1:56
+#, fuzzy
+#| msgid ""
+#| "Specify update interval. The command will not allow quicker than 0.1 "
+#| "second interval, in which the smaller values are converted. Both '.' and "
+#| "',' work for any locales."
+msgid ""
+"Specify update interval. The command will not allow quicker than 0.1 second "
+"interval, in which the smaller values are converted. Both '.' and ',' work "
+"for any locales. The B<WATCH_INTERVAL> environment can be used to "
+"persistently set a non-default interval (following the same rules and "
+"formatting)."
+msgstr ""
+"Indiquer l'I<intervalle> de mise à jour, en seconde. La commande ne permet "
+"pas d'utiliser un intervalle plus rapide que 0,1 seconde, qui est la valeur "
+"utilisée à la place des valeurs plus petites. Le point et la virgule "
+"décimale fonctionne pour toutes les locales."
+
+#. type: TP
+#: ../man/watch.1:56
+#, no-wrap
+msgid "B<-p>, B<--precise>"
+msgstr "B<-p>, B<--precise>"
+
+#. type: Plain text
+#: ../man/watch.1:69
+#, fuzzy
+#| msgid ""
+#| "Make B<watch> attempt to run I<command> every I<interval> seconds. Try it "
+#| "with B<ntptime> and notice how the fractional seconds stays (nearly) the "
+#| "same, as opposed to normal mode where they continuously increase."
+msgid ""
+"Make B<watch> attempt to run I<command> every B<--interval> I<seconds>. Try "
+"it with B<ntptime> (if present) and notice how the fractional seconds stays "
+"(nearly) the same, as opposed to normal mode where they continuously "
+"increase."
+msgstr ""
+"Essayer d'exécuter I<commande> toutes les I<intervalle> secondes. Essayez "
+"avec B<ntptime> et regardez comme les fractions de seconde ne changent "
+"quasiment pas, contrairement au mode normal où elles augmentent "
+"continuellement."
+
+#. type: TP
+#: ../man/watch.1:69
+#, fuzzy, no-wrap
+#| msgid "B<-q>, B<--quiet>"
+msgid "B<-q>, B<--equexit> E<lt>cyclesE<gt>"
+msgstr "B<-q>, B<--quiet>"
+
+#. type: Plain text
+#: ../man/watch.1:74
+#, fuzzy
+#| msgid "Exit when the output of I<command> changes."
+msgid ""
+"Exit when output of I<command> does not change for the given number of "
+"cycles."
+msgstr "Terminer quand la sortie de I<commande> est modifiée."
+
+#. type: TP
+#: ../man/watch.1:74
+#, fuzzy, no-wrap
+#| msgid "B<-u>, B<--no-current>"
+msgid "B<-r>, B<--no-rerun>"
+msgstr "B<-u>, B<--no-current>"
+
+#. type: Plain text
+#: ../man/watch.1:78
+msgid ""
+"Do not run the program on terminal resize, the output of the program will re-"
+"appear at the next regular run time."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:78
+#, no-wrap
+msgid "B<-t>, B<--no-title>"
+msgstr "B<-t>, B<--no-title>"
+
+#. type: Plain text
+#: ../man/watch.1:82
+msgid ""
+"Turn off the header showing the interval, command, and current time at the "
+"top of the display, as well as the following blank line."
+msgstr ""
+"Cacher l'en-tête contenant l'intervalle, la commande et la date actuelle en "
+"haut de l'affichage, ainsi que la ligne blanche qui suit. "
+
+#. type: TP
+#: ../man/watch.1:82
+#, fuzzy, no-wrap
+#| msgid "B<-w>, B<--no-linewrap>"
+msgid "B<-w>, B<--no-wrap>"
+msgstr "B<-w>, B<--no-linewrap>"
+
+#. type: Plain text
+#: ../man/watch.1:85
+msgid ""
+"Turn off line wrapping. Long lines will be truncated instead of wrapped to "
+"the next line."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:85
+#, no-wrap
+msgid "B<-x>, B<--exec>"
+msgstr "B<-x>, B<--exec>"
+
+#. type: Plain text
+#: ../man/watch.1:94
+msgid ""
+"Pass I<command> to B<exec>(2) instead of B<sh -c> which reduces the need to "
+"use extra quoting to get the desired effect."
+msgstr ""
+"Passer I<command> à B<exec>(2) au lieu de B<sh -c> réduit le nombre "
+"d'échappements pour obtenir le même résultat."
+
+#. type: TP
+#: ../man/watch.1:97
+#, no-wrap
+msgid "B<-v>, B<--version>"
+msgstr "B<-v>, B<--version>"
+
+#. type: Plain text
+#: ../man/watch.1:110
+msgid "Various failures."
+msgstr "Erreurs diverses."
+
+#. type: TP
+#: ../man/watch.1:110
+#, no-wrap
+msgid "B<2>"
+msgstr "B<2>"
+
+#. type: Plain text
+#: ../man/watch.1:113
+msgid "Forking the process to watch failed."
+msgstr "Échec lors du dédoublement (« fork ») du processus à observer."
+
+#. type: TP
+#: ../man/watch.1:113
+#, no-wrap
+msgid "B<3>"
+msgstr "B<3>"
+
+#. type: Plain text
+#: ../man/watch.1:116
+msgid "Replacing child process stdout with write side pipe failed."
+msgstr ""
+"Échec de remplacement de la sortie standard du processus fils par une "
+"écriture vers le tube."
+
+#. type: TP
+#: ../man/watch.1:116
+#, no-wrap
+msgid "B<4>"
+msgstr "B<4>"
+
+#. type: Plain text
+#: ../man/watch.1:119
+msgid "Command execution failed."
+msgstr "Échec d'exécution de la commande."
+
+#. type: TP
+#: ../man/watch.1:119
+#, no-wrap
+msgid "B<5>"
+msgstr "B<5>"
+
+#. type: Plain text
+#: ../man/watch.1:122
+msgid "Closing child process write pipe failed."
+msgstr "Échec de la fermeture d'écriture vers le tube du processus fils."
+
+#. type: TP
+#: ../man/watch.1:122
+#, no-wrap
+msgid "B<7>"
+msgstr "B<7>"
+
+#. type: Plain text
+#: ../man/watch.1:125
+msgid "IPC pipe creation failed."
+msgstr "Échec de la création du tube IPC."
+
+#. type: TP
+#: ../man/watch.1:125
+#, no-wrap
+msgid "B<8>"
+msgstr "B<8>"
+
+#. type: Plain text
+#: ../man/watch.1:130
+msgid ""
+"Getting child process return value with B<waitpid>(2) failed, or command "
+"exited up on error."
+msgstr ""
+"Le processus fils n'a pas pu renvoyer une valeur avec B<waitpid>(2) ou la "
+"commande s'est terminée en erreur."
+
+#. type: TP
+#: ../man/watch.1:130
+#, no-wrap
+msgid "B<other>"
+msgstr "B<autre>"
+
+#. type: Plain text
+#: ../man/watch.1:133
+msgid "The watch will propagate command exit status as child exit status."
+msgstr ""
+"L'observation propagera l'état du code de retour en tant que code de retour "
+"du fils."
+
+#. type: Plain text
+#: ../man/watch.1:137
+msgid ""
+"The behavior of B<watch> is affected by the following environment variables."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:138
+#, no-wrap
+msgid "B<WATCH_INTERVAL>"
+msgstr "B<WATCH_INTERVAL>"
+
+#. type: Plain text
+#: ../man/watch.1:143
+msgid ""
+"Update interval, follows the same rules as the B<--interval> command line "
+"option."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:151
+msgid ""
+"POSIX option processing is used (i.e., option processing stops at the first "
+"non-option argument). This means that flags after I<command> don't get "
+"interpreted by B<watch> itself."
+msgstr ""
+"Remarquez que la reconnaissance des options suit la norme POSIX (le "
+"traitement des options s'arrête dès le premier paramètre qui n'est pas une "
+"option). Cela signifie que les options se trouvant après la I<commande> ne "
+"seront pas interprétées par B<watch>."
+
+#. type: Plain text
+#: ../man/watch.1:159
+#, fuzzy
+#| msgid ""
+#| "Upon terminal resize, the screen will not be correctly repainted until "
+#| "the next scheduled update. All B<--differences> highlighting is lost on "
+#| "that update as well."
+msgid ""
+"Upon terminal resize, the screen will not be correctly repainted until the "
+"next scheduled update. All B<--differences> highlighting is lost on that "
+"update as well. When using the B<--no-rerun> option, no output of will be "
+"visible."
+msgstr ""
+"Lors du redimensionnement d'un terminal, l'écran ne sera pas rafraîchi "
+"correctement avant la prochaine exécution. Les mises en évidence dues à B<--"
+"differences> sont également perdues."
+
+#. type: Plain text
+#: ../man/watch.1:162
+msgid ""
+"Non-printing characters are stripped from program output. Use B<cat -v> as "
+"part of the command pipeline if you want to see them."
+msgstr ""
+"Les caractères non imprimables de la sortie du programme sont ignorés. "
+"Utilisez B<cat -v> pour les afficher."
+
+#. type: Plain text
+#: ../man/watch.1:166
+msgid ""
+"Combining Characters that are supposed to display on the character at the "
+"last column on the screen may display one column early, or they may not "
+"display at all."
+msgstr ""
+"La combinaison de caractères supposés s'afficher en dernière colonne de "
+"l'écran risque de s'afficher dans la colonne précédente ou pas du tout."
+
+#. type: Plain text
+#: ../man/watch.1:170
+msgid ""
+"Combining Characters never count as different in B<--differences> mode. "
+"Only the base character counts."
+msgstr ""
+"Les combinaisons de caractères ne sont jamais considérées différentes en "
+"mode B<--differences>. Seul le caractère de base est considéré."
+
+#. type: Plain text
+#: ../man/watch.1:173
+msgid ""
+"Blank lines directly after a line which ends in the last column do not "
+"display."
+msgstr ""
+"Les lignes blanches qui suivent directement une ligne s'arrêtant en dernière "
+"colonne ne sont pas affichées"
+
+#. type: Plain text
+#: ../man/watch.1:190
+#, fuzzy
+#| msgid ""
+#| "I<--precise> mode doesn't yet have advanced temporal distortion "
+#| "technology to compensate for a I<command> that takes more than "
+#| "I<interval> seconds to execute. B<watch> also can get into a state where "
+#| "it rapid-fires as many executions of I<command> as it can to catch up "
+#| "from a previous executions running longer than I<interval> (for example, "
+#| "B<netstat> taking ages on a DNS lookup)."
+msgid ""
+"B<--precise> mode doesn't yet have advanced temporal distortion technology "
+"to compensate for a I<command> that takes more than B<--interval> I<seconds> "
+"to execute. B<watch> also can get into a state where it rapid-fires as many "
+"executions of I<command> as it can to catch up from a previous executions "
+"running longer than B<--interval> (for example, B<netstat>(8) taking ages "
+"on a DNS lookup)."
+msgstr ""
+"Le mode B<--precise> ne dispose pas encore de fonctions de temporisation "
+"pour compenser une I<commande> dont le temps d'exécution est supérieure à "
+"I<secondes> secondes. B<watch> peut également lancer en rafales autant "
+"d'exécution de I<commande> que possible pour rattraper une exécution "
+"précédente qui aurait pris plus de I<secondes> secondes à s'exécuter (par "
+"exemple, B<netstat> prend beaucoup de temps pour effectuer une interrogation "
+"DNS)."
+
+#. type: Plain text
+#: ../man/watch.1:194
+msgid "To watch for mail, you might do"
+msgstr "Pour vérifier les courriels\\ :"
+
+#. type: Plain text
+#: ../man/watch.1:196
+msgid "watch -n 60 from"
+msgstr "watch -n 60 from"
+
+#. type: Plain text
+#: ../man/watch.1:198
+msgid "To watch the contents of a directory change, you could use"
+msgstr "Pour afficher les changements dans le contenu d'un répertoire\\ :"
+
+#. type: Plain text
+#: ../man/watch.1:200
+msgid "watch -d ls -l"
+msgstr "watch -d ls -l"
+
+#. type: Plain text
+#: ../man/watch.1:202
+msgid "If you're only interested in files owned by user joe, you might use"
+msgstr "Pour n'afficher que les fichiers appartenant à arthur\\ :"
+
+#. type: Plain text
+#: ../man/watch.1:204
+msgid "watch -d 'ls -l | fgrep joe'"
+msgstr "watch\\ -d 'ls\\ -l\\ |\\ fgrep arthur'"
+
+#. type: Plain text
+#: ../man/watch.1:206
+msgid "To see the effects of quoting, try these out"
+msgstr "Pour vérifier l'effet des guillemets\\ :"
+
+#. type: Plain text
+#: ../man/watch.1:208
+msgid "watch echo $$"
+msgstr "watch echo $$"
+
+#. type: Plain text
+#: ../man/watch.1:210
+msgid "watch echo '$$'"
+msgstr "watch echo '$$'"
+
+#. type: Plain text
+#: ../man/watch.1:212
+msgid "watch echo \"'\"'$$'\"'\""
+msgstr "watch echo \"'\"'$$'\"'\""
+
+#. type: Plain text
+#: ../man/watch.1:216
+msgid "To see the effect of precision time keeping, try adding B<-p> to"
+msgstr ""
+"Pour vérifier l'effet du temps de maintien de la précision, essayez en "
+"ajoutant B<-p> à"
+
+#. type: Plain text
+#: ../man/watch.1:218
+msgid "watch -n 10 sleep 1"
+msgstr "watch -n 10 sleep 1"
+
+#. type: Plain text
+#: ../man/watch.1:220
+msgid "You can watch for your administrator to install the latest kernel with"
+msgstr "Pour vérifier que l'administrateur a installé le dernier noyau avec"
+
+#. type: Plain text
+#: ../man/watch.1:222
+msgid "watch uname -r"
+msgstr "watch uname -r"
+
+#. type: Plain text
+#: ../man/watch.1:228
+#, fuzzy
+#| msgid ""
+#| "(Note that I<-p> isn't guaranteed to work across reboots, especially in "
+#| "the face of B<ntpdate> or other bootup time-changing mechanisms)"
+msgid ""
+"(Note that B<-p> isn't guaranteed to work across reboots, especially in the "
+"face of B<ntpdate> (if present) or other bootup time-changing mechanisms)"
+msgstr ""
+"Notez que B<-p> peut ne pas fonctionner entre deux redémarrages, à cause de "
+"B<ntpdate> ou d'autres programmes modifiant la date au démarrage."
+
+#. type: TH
+#: ../man/ps.1:13
+#, no-wrap
+msgid "PS"
+msgstr "PS"
+
+#. type: Plain text
+#: ../man/ps.1:29
+msgid "ps - report a snapshot of the current processes."
+msgstr "ps - Présenter un cliché instantané des processus en cours"
+
+#. type: Plain text
+#: ../man/ps.1:31
+msgid "B<ps> [\\,I<options\\/>]"
+msgstr "B<ps> [\\,I<options\\/>]"
+
+#. type: Plain text
+#: ../man/ps.1:37
+msgid ""
+"B<ps> displays information about a selection of the active processes. If "
+"you want a repetitive update of the selection and the displayed information, "
+"use B<top> instead."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:41
+msgid "This version of B<ps> accepts several kinds of options:"
+msgstr "Cette version de B<ps> accepte plusieurs types d'options :"
+
+#. type: Plain text
+#: ../man/ps.1:45
+msgid "UNIX options, which may be grouped and must be preceded by a dash."
+msgstr ""
+"les options UNIX qui peuvent être regroupées et qui doivent être précédées "
+"d'un tiret ;"
+
+#. type: Plain text
+#: ../man/ps.1:47
+msgid "BSD options, which may be grouped and must not be used with a dash."
+msgstr ""
+"les options BSD qui peuvent être regroupées et qui ne doivent pas être "
+"utilisées avec un tiret ;"
+
+#. type: Plain text
+#: ../man/ps.1:49
+msgid "GNU long options, which are preceded by two dashes."
+msgstr ""
+"les options GNU de forme longue qui doivent être précédées de deux tirets."
+
+#. type: Plain text
+#: ../man/ps.1:58
+msgid ""
+"Options of different types may be freely mixed, but conflicts can appear. "
+"There are some synonymous options, which are functionally identical, due to "
+"the many standards and B<ps> implementations that this B<ps> is compatible "
+"with."
+msgstr ""
+"Les options de différents types peuvent être mélangées, mais des conflits "
+"peuvent apparaître. Certaines options sont synonymes (fonctionnellement "
+"identiques) à cause des différentes normes et implémentations de B<ps> avec "
+"lesquelles ce B<ps> est compatible."
+
+#. type: Plain text
+#: ../man/ps.1:66
+msgid ""
+"By default, B<ps> selects all processes with the same effective user ID "
+"(euid=EUID) as the current user and associated with the same terminal as the "
+"invoker. It displays the process ID (pid=PID), the terminal associated with "
+"the process (tname=TTY), the cumulated CPU time in [DD-]hh:mm:ss format "
+"(time=TIME), and the executable name (ucmd=CMD). Output is unsorted by "
+"default."
+msgstr ""
+"Par défaut, B<ps> sélectionne tous les processus avec le même identifiant "
+"utilisateur effectif (euid=EUID) que l'utilisateur en cours et associés au "
+"même terminal que l'appelant. Il affiche l'identifiant de processus "
+"(pid=PID), le terminal associé au processus (tname=TTY), le temps CPU cumulé "
+"au format [JJ-]HH:MM:SS (time=TIME) et le nom de l'exécutable (ucmd=CMD). La "
+"sortie n'est pas ordonnée par défaut."
+
+#. type: Plain text
+#: ../man/ps.1:79
+msgid ""
+"The use of BSD-style options will add process state (stat=STAT) to the "
+"default display and show the command args (args=COMMAND) instead of the "
+"executable name. You can override this with the B<PS_FORMAT> environment "
+"variable. The use of BSD-style options will also change the process "
+"selection to include processes on other terminals (TTYs) that are owned by "
+"you; alternately, this may be described as setting the selection to be the "
+"set of all processes filtered to exclude processes owned by other users or "
+"not on a terminal. These effects are not considered when options are "
+"described as being \"identical\" below, so B<-M> will be considered "
+"identical to B<Z> and so on."
+msgstr ""
+"L'utilisation d'options « à la BSD » ajoutera l'état du processus "
+"(stat=STAT) à l'affichage par défaut et montrera les arguments de commande "
+"(args=COMMAND) au lieu du nom de l'exécutable. La variable d'environnement "
+"B<PS_FORMAT> permet de modifier ce comportement. L'utilisation d'options « à "
+"la BSD » modifiera également la sélection de processus pour inclure les "
+"processus d'autres terminaux (TTY) vous appartenant ; autrement dit, il "
+"s'agit de la sélection de tous les processus, filtrés pour exclure les "
+"processus appartenant aux autres utilisateurs ou en dehors d'un terminal. "
+"Ces effets ne sont pas pris en compte pour les options décrites ci-dessous "
+"comme « identiques », donc B<-M> sera considérée identique à B<Z> et ainsi "
+"de suite."
+
+#. type: Plain text
+#: ../man/ps.1:84
+msgid ""
+"Except as described below, process selection options are additive. The "
+"default selection is discarded, and then the selected processes are added to "
+"the set of processes to be displayed. A process will thus be shown if it "
+"meets any of the given selection criteria."
+msgstr ""
+"Aux exceptions près décrites ci-dessous, les options de sélection de "
+"processus sont cumulatives. La sélection par défaut est supprimée, puis les "
+"processus sélectionnés sont ajoutés à l'ensemble des processus à afficher. "
+"Un processus sera donc montré s'il satisfait n'importe quel critère de "
+"sélection donné."
+
+#. type: TP
+#: ../man/ps.1:85
+#, no-wrap
+msgid "To see every process on the system using standard syntax:"
+msgstr "Pour voir tous les processus du système en utilisant la syntaxe traditionnelle :"
+
+#. type: Plain text
+#: ../man/ps.1:88
+msgid "B<ps\\ -e>"
+msgstr "B<ps\\ -e>"
+
+#. type: Plain text
+#: ../man/ps.1:90
+msgid "B<ps\\ -ef>"
+msgstr "B<ps\\ -ef>"
+
+#. type: Plain text
+#: ../man/ps.1:92
+msgid "B<ps\\ -eF>"
+msgstr "B<ps\\ -eF>"
+
+#. type: Plain text
+#: ../man/ps.1:94
+msgid "B<ps\\ -ely>"
+msgstr "B<ps\\ -ely>"
+
+#. type: TP
+#: ../man/ps.1:94
+#, no-wrap
+msgid "To see every process on the system using BSD syntax:"
+msgstr "Pour voir tous les processus du système en utilisant la syntaxe BSD :"
+
+#. type: Plain text
+#: ../man/ps.1:97
+msgid "B<ps\\ ax>"
+msgstr "B<ps\\ ax>"
+
+#. type: Plain text
+#: ../man/ps.1:99
+msgid "B<ps\\ axu>"
+msgstr "B<ps\\ axu>"
+
+#. type: TP
+#: ../man/ps.1:99
+#, no-wrap
+msgid "To print a process tree:"
+msgstr "Pour afficher une arborescence des processus :"
+
+#. type: Plain text
+#: ../man/ps.1:102
+msgid "B<ps\\ -ejH>"
+msgstr "B<ps\\ -ejH>"
+
+#. type: Plain text
+#: ../man/ps.1:104
+msgid "B<ps\\ axjf>"
+msgstr "B<ps\\ axjf>"
+
+#. type: TP
+#: ../man/ps.1:104
+#, no-wrap
+msgid "To get info about threads:"
+msgstr "Pour obtenir des renseignements sur les processus légers (« threads ») :"
+
+#. type: Plain text
+#: ../man/ps.1:107
+msgid "B<ps\\ -eLf>"
+msgstr "B<ps\\ -eLf>"
+
+#. type: Plain text
+#: ../man/ps.1:109
+msgid "B<ps\\ axms>"
+msgstr "B<ps\\ axms>"
+
+#. type: TP
+#: ../man/ps.1:109
+#, no-wrap
+msgid "To get security info:"
+msgstr "Pour obtenir des renseignements de sécurité :"
+
+#. type: Plain text
+#: ../man/ps.1:112
+msgid "B<ps\\ -eo euser,ruser,suser,fuser,f,comm,label>"
+msgstr "B<ps\\ -eo euser,ruser,suser,fuser,f,comm,label>"
+
+#. type: Plain text
+#: ../man/ps.1:114
+msgid "B<ps\\ axZ>"
+msgstr "B<ps\\ axZ>"
+
+#. type: Plain text
+#: ../man/ps.1:116
+msgid "B<ps\\ -eM>"
+msgstr "B<ps\\ -eM>"
+
+#. type: TP
+#: ../man/ps.1:116
+#, no-wrap
+msgid "To see every process running as root (real\\ &\\ effective\\ ID) in user format:"
+msgstr "Pour voir tous les processus exécutés en tant que superutilisateur (identifiant réel et effectif) au format utilisateur :"
+
+#. type: Plain text
+#: ../man/ps.1:119
+msgid "B<ps\\ -U\\ root\\ -u\\ root\\ u>"
+msgstr "B<ps\\ -U\\ root\\ -u\\ root\\ u>"
+
+#. type: TP
+#: ../man/ps.1:119
+#, no-wrap
+msgid "To see every process with a user-defined format:"
+msgstr "Pour voir tous les processus avec un format défini par l'utilisateur :"
+
+#. type: Plain text
+#: ../man/ps.1:122
+msgid "B<ps\\ -eo\\ pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm>"
+msgstr "B<ps\\ -eo\\ pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm>"
+
+#. type: Plain text
+#: ../man/ps.1:124
+msgid "B<ps\\ axo\\ stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm>"
+msgstr "B<ps\\ axo\\ stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm>"
+
+#. type: Plain text
+#: ../man/ps.1:126
+msgid "B<ps\\ -Ao\\ pid,tt,user,fname,tmout,f,wchan>"
+msgstr "B<ps\\ -Ao\\ pid,tt,user,fname,tmout,f,wchan>"
+
+#. type: TP
+#: ../man/ps.1:126
+#, no-wrap
+msgid "Print only the process IDs of syslogd:"
+msgstr "N'afficher que le PID de syslogd :"
+
+#. type: Plain text
+#: ../man/ps.1:129
+msgid "B<ps\\ -C\\ syslogd\\ -o\\ pid=>"
+msgstr "B<ps\\ -C\\ syslogd\\ -o\\ pid=>"
+
+#. type: TP
+#: ../man/ps.1:129
+#, no-wrap
+msgid "Print only the name of PID 42:"
+msgstr "Afficher uniquement le nom du PID 42 :"
+
+#. type: Plain text
+#: ../man/ps.1:132
+msgid "B<ps\\ -q\\ 42\\ -o\\ comm=>"
+msgstr "B<ps\\ -q\\ 42\\ -o\\ comm=>"
+
+#. type: SH
+#: ../man/ps.1:132
+#, no-wrap
+msgid "SIMPLE PROCESS SELECTION"
+msgstr "SÉLECTION SIMPLE DES PROCESSUS"
+
+#. type: TP
+#: ../man/ps.1:133
+#, no-wrap
+msgid "B<a>"
+msgstr "B<a>"
+
+#. type: Plain text
+#: ../man/ps.1:147
+msgid ""
+"Lift the BSD-style \"only yourself\" restriction, which is imposed upon the "
+"set of all processes when some BSD-style (without \"-\") options are used or "
+"when the B<ps> personality setting is BSD-like. The set of processes "
+"selected in this manner is in addition to the set of processes selected by "
+"other means. An alternate description is that this option causes B<ps> to "
+"list all processes with a terminal (tty), or to list all processes when used "
+"together with the B<x> option."
+msgstr ""
+"Lever la restriction « seulement vous » du style BSD, qui est imposée sur "
+"l'ensemble des processus si des options « à la BSD » (sans « - ») sont "
+"utilisées ou si la personnalité de B<ps> est configurée « à la BSD ». "
+"L'ensemble des processus sélectionnés de cette façon est ajouté à l'ensemble "
+"des processus sélectionnés autrement. Autrement dit, cette option conduit "
+"B<ps> à énumérer tous les processus avec un terminal (tty) ou énumérer tous "
+"les processus lorsqu'elle est utilisée avec l'option B<x>."
+
+#. type: Plain text
+#: ../man/ps.1:151
+msgid "Select all processes. Identical to B<-e>."
+msgstr "Sélectionner tous les processus. Identique à B<-e>."
+
+#. type: TP
+#: ../man/ps.1:151
+#, no-wrap
+msgid "B<-a>"
+msgstr "B<-a>"
+
+#. type: Plain text
+#: ../man/ps.1:156
+msgid ""
+"Select all processes except both session leaders (see I<getsid>(2)) and "
+"processes not associated with a terminal."
+msgstr ""
+"Sélectionner tous les processus sauf les meneurs de session (consultez "
+"B<getsid>(2)) et les processus non associés à un terminal."
+
+#. type: Plain text
+#: ../man/ps.1:159
+msgid "Select all processes except session leaders."
+msgstr "Sélectionner tous les processus sauf les meneurs de session."
+
+#. type: TP
+#: ../man/ps.1:159
+#, no-wrap
+msgid "B<--deselect>"
+msgstr "B<--deselect>"
+
+#. type: Plain text
+#: ../man/ps.1:164
+msgid ""
+"Select all processes except those that fulfill the specified conditions "
+"(negates the selection). Identical to B<-N>."
+msgstr ""
+"Sélectionner tous les processus sauf ceux qui remplissent les conditions "
+"indiquées (inverse la sélection). Identique à B<-N>."
+
+#. type: TP
+#: ../man/ps.1:164
+#, no-wrap
+msgid "B<-e>"
+msgstr "B<-e>"
+
+#. Current "g" behavior: add in the session leaders, which would
+#. be excluded in the sunos4 personality. Supposed "g" behavior:
+#. add in the group leaders -- at least according to the SunOS 4
+#. man page on the FreeBSD site. Uh oh. I think I had tested SunOS
+#. though, so maybe the code is correct.
+#. type: Plain text
+#: ../man/ps.1:173
+msgid "Select all processes. Identical to B<-A>."
+msgstr "Sélectionner tous les processus. Identique à B<-A>."
+
+#. type: TP
+#: ../man/ps.1:173
+#, no-wrap
+msgid "B<g>"
+msgstr "B<g>"
+
+#. type: Plain text
+#: ../man/ps.1:179
+msgid ""
+"Really all, even session leaders. This flag is obsolete and may be "
+"discontinued in a future release. It is normally implied by the B<a> flag, "
+"and is only useful when operating in the sunos4 personality."
+msgstr ""
+"Vraiment tout, même les meneurs de session. Cette option est obsolète et "
+"peut disparaître des prochaines publications. Elle est normalement implicite "
+"avec l'option B<a>, et n'est utile qu'en fonctionnement avec la personnalité "
+"sunos4."
+
+#. type: TP
+#: ../man/ps.1:179
+#, no-wrap
+msgid "B<-N>"
+msgstr "B<-N>"
+
+#. type: Plain text
+#: ../man/ps.1:184
+msgid ""
+"Select all processes except those that fulfill the specified conditions "
+"(negates the selection). Identical to B<--deselect>."
+msgstr ""
+"Sélectionner tous les processus sauf ceux qui remplissent les conditions "
+"indiquées (inverse la sélection). Identique à B<--deselect>."
+
+#. type: TP
+#: ../man/ps.1:184
+#, no-wrap
+msgid "B<T>"
+msgstr "B<T>"
+
+#. type: Plain text
+#: ../man/ps.1:189
+msgid ""
+"Select all processes associated with this terminal. Identical to the B<t> "
+"option without any argument."
+msgstr ""
+"Sélectionner tous les processus associés à ce terminal. Identique à l'option "
+"B<t> sans autre paramètre."
+
+#. type: TP
+#: ../man/ps.1:189
+#, no-wrap
+msgid "B<r>"
+msgstr "B<r>"
+
+#. type: Plain text
+#: ../man/ps.1:192
+msgid "Restrict the selection to only running processes."
+msgstr "Restreindre la sélection aux processus en cours d'exécution."
+
+#. type: TP
+#: ../man/ps.1:192
+#, no-wrap
+msgid "B<x>"
+msgstr "B<x>"
+
+#. type: Plain text
+#: ../man/ps.1:207
+msgid ""
+"Lift the BSD-style \"must have a tty\" restriction, which is imposed upon "
+"the set of all processes when some BSD-style (without \"-\") options are "
+"used or when the B<ps> personality setting is BSD-like. The set of "
+"processes selected in this manner is in addition to the set of processes "
+"selected by other means. An alternate description is that this option "
+"causes B<ps> to list all processes owned by you (same EUID as B<ps>), or to "
+"list all processes when used together with the B<a> option."
+msgstr ""
+"Lever la restriction « doit avoir un terminal » du style BSD, qui est "
+"imposée sur l'ensemble des processus si des options « à la BSD » (sans « -"
+" ») sont utilisées ou si la personnalité de B<ps> est configurée « à la "
+"BSD ». L'ensemble des processus sélectionnés de cette façon est ajouté à "
+"l'ensemble des processus sélectionnés autrement. Autrement dit, cette option "
+"conduit B<ps> à énumérer tous les processus vous appartenant (même EUID que "
+"B<ps>) ou énumérer tous les processus lorsqu'elle est utilisée avec l'option "
+"B<a>."
+
+#. type: SH
+#: ../man/ps.1:208
+#, no-wrap
+msgid "PROCESS SELECTION BY LIST"
+msgstr "SÉLECTION DES PROCESSUS PAR UNE LISTE"
+
+#. type: Plain text
+#: ../man/ps.1:212
+msgid ""
+"These options accept a single argument in the form of a blank-separated or "
+"comma-separated list. They can be used multiple times. For example: B<ps\\ "
+"-p\\ \"1\\ 2\"\\ -p\\ 3,4>"
+msgstr ""
+"Ces options acceptent un unique paramètre sous forme de liste séparée par "
+"des blancs ou des virgules. Elles peuvent être utilisées plusieurs fois. Par "
+"exemple : B<ps\\ -p\\ \"1\\ 2\"\\ -p\\ 3,4>."
+
+#. type: TP
+#: ../man/ps.1:212
+#, no-wrap
+msgid "I<123>"
+msgstr "I<123>"
+
+#. type: Plain text
+#: ../man/ps.1:216
+msgid "Identical to B<--pid\\ >I<123>."
+msgstr "Identique à B<--pid\\ >I<123>."
+
+#. type: TP
+#: ../man/ps.1:216
+#, fuzzy, no-wrap
+#| msgid "I<123>"
+msgid "\\+I<123>"
+msgstr "I<123>"
+
+#. type: Plain text
+#: ../man/ps.1:220
+#, fuzzy
+#| msgid "Identical to B<--pid\\ >I<123>."
+msgid "Identical to B<--sid\\ >I<123>."
+msgstr "Identique à B<--pid\\ >I<123>."
+
+#. type: TP
+#: ../man/ps.1:220
+#, no-wrap
+msgid "-I<123>"
+msgstr "B<->I<123>"
+
+#. type: Plain text
+#: ../man/ps.1:223
+#, fuzzy
+#| msgid "process group ID"
+msgid "Select by process group ID (PGID)."
+msgstr "GID du processus"
+
+#. type: TP
+#: ../man/ps.1:223
+#, no-wrap
+msgid "B<-C>I<\\ cmdlist>"
+msgstr "B<-C>I<\\ liste_commandes>"
+
+#. type: Plain text
+#: ../man/ps.1:232
+msgid ""
+"Select by command name. This selects the processes whose executable name is "
+"given in I<cmdlist>. NOTE: The command name is not the same as the command "
+"line. Previous versions of procps and the kernel truncated this command name "
+"to 15 characters. This limitation is no longer present in both. If you "
+"depended on matching only 15 characters, you may no longer get a match."
+msgstr ""
+"Sélectionner par nom de commande. Cela sélectionne les processus dont le nom "
+"d'exécutable figure dans I<liste_commandes>. REMARQUE : le nom de la "
+"commande n'est pas le même que le nom sur la ligne de commande. Les "
+"anciennes versions de B<procps> et du noyau réduisaient ce nom de commande à "
+"15 caractères. Cette limite n'existe plus. Si vous faisiez une recherche sur "
+"15 caractères seulement, il se peut que votre recherche ne donne plus de "
+"résultats."
+
+#. type: TP
+#: ../man/ps.1:232
+#, no-wrap
+msgid "B<-G>I<\\ grplist>"
+msgstr "B<-G>I<\\ liste_groupes>"
+
+#. type: Plain text
+#: ../man/ps.1:240
+msgid ""
+"Select by real group ID (RGID) or name. This selects the processes whose "
+"real group name or ID is in the I<grplist> list. The real group ID "
+"identifies the group of the user who created the process, see I<getgid>(2)."
+msgstr ""
+"Sélectionner par nom ou identifiant de groupe réel (RGID). Cela sélectionne "
+"les processus dont l'identifiant ou nom de groupe réel est dans "
+"I<liste_groupes>. Le RGID identifie le groupe de l'utilisateur qui a créé le "
+"processus, consultez B<getgid>(2)."
+
+#. type: TP
+#: ../man/ps.1:240
+#, no-wrap
+msgid "B<-g>I<\\ grplist>"
+msgstr "B<-g>I<\\ liste_groupes>"
+
+#. type: Plain text
+#: ../man/ps.1:253
+msgid ""
+"Select by session OR by effective group name. Selection by session is "
+"specified by many standards, but selection by effective group is the logical "
+"behavior that several other operating systems use. This B<ps> will select "
+"by session when the list is completely numeric (as sessions are). Group ID "
+"numbers will work only when some group names are also specified. See the B<-"
+"s> and B<--group> options."
+msgstr ""
+"Sélectionner par session ou nom de groupe effectif. La sélection par session "
+"est précisée par plusieurs normes, mais la sélection par groupe effectif est "
+"le comportement logique utilisé par de nombreux autres systèmes "
+"d'exploitation. Ce B<ps> sélectionnera par session quand la liste est "
+"complètement numérique (comme le sont les sessions). Les GID numériques "
+"fonctionneront seulement quand des noms de groupes sont également indiqués. "
+"Consultez les options B<-s> et B<--group>."
+
+#. type: TP
+#: ../man/ps.1:253
+#, no-wrap
+msgid "B<--Group>I<\\ grplist>"
+msgstr "B<--Group>I<\\ liste_groupes>"
+
+#. type: Plain text
+#: ../man/ps.1:257
+msgid "Select by real group ID (RGID) or name. Identical to B<-G>."
+msgstr ""
+"Sélectionner par identifiant de groupe réel (RGID) ou nom. Identique à B<-G>."
+
+#. type: TP
+#: ../man/ps.1:257
+#, no-wrap
+msgid "B<--group>I<\\ grplist>"
+msgstr "B<--group>I<\\ liste_groupes>"
+
+#. type: Plain text
+#: ../man/ps.1:269
+msgid ""
+"Select by effective group ID (EGID) or name. This selects the processes "
+"whose effective group name or ID is in I<grplist>. The effective group ID "
+"describes the group whose file access permissions are used by the process "
+"(see I<getegid>(2)). The B<-g> option is often an alternative to B<--group>."
+msgstr ""
+"Sélectionner par identifiant de groupe effectif (EGID) ou nom. Cela "
+"sélectionne les processus dont l'identifiant ou nom de groupe effectif est "
+"dans I<liste_groupes>. L'EGID identifie le groupe dont les droits d'accès au "
+"fichier sont utilisés par le processus, consultez B<getegid>(2). L'option B<-"
+"g> est souvent une alternative à B<--group>."
+
+#. type: TP
+#: ../man/ps.1:269
+#, no-wrap
+msgid "B<p>I<\\ pidlist>"
+msgstr "B<p>I<\\ liste_pid>"
+
+#. type: Plain text
+#: ../man/ps.1:275
+msgid "Select by process ID. Identical to B<-p> and B<--pid>."
+msgstr ""
+"Sélectionner par identifiant de processus (PID). Identique à B<-p> et B<--"
+"pid>."
+
+#. type: TP
+#: ../man/ps.1:275
+#, no-wrap
+msgid "B<-p>I<\\ pidlist>"
+msgstr "B<-p>I<\\ liste_pid>"
+
+#. type: Plain text
+#: ../man/ps.1:283
+msgid ""
+"Select by PID. This selects the processes whose process ID numbers appear "
+"in I<pidlist>. Identical to B<p> and B<--pid>."
+msgstr ""
+"Sélectionner par PID. Cela sélectionne les processus dont l'identifiant de "
+"processus apparaît dans I<liste_pid>. Identique à B<p> et B<--pid>."
+
+#. type: TP
+#: ../man/ps.1:283
+#, no-wrap
+msgid "B<--pid>I<\\ pidlist>"
+msgstr "B<--pid>I<\\ liste_pid>"
+
+#. type: Plain text
+#: ../man/ps.1:289
+msgid "Select by process\\ ID. Identical to B<-p> and B<p>."
+msgstr ""
+"Sélectionner par identifiant de processus (PID). Identique à B<-p> et B<p>."
+
+#. type: TP
+#: ../man/ps.1:289
+#, no-wrap
+msgid "B<--ppid>I<\\ pidlist>"
+msgstr "B<--ppid>I<\\ liste_pid>"
+
+#. type: Plain text
+#: ../man/ps.1:296
+msgid ""
+"Select by parent process ID. This selects the processes with a parent "
+"process\\ ID in I<pidlist>. That is, it selects processes that are children "
+"of those listed in I<pidlist>."
+msgstr ""
+"Sélectionner par PID parent. Cela sélectionne des processus dont le PID "
+"parent est dans I<liste_pid>. Autrement dit, il sélectionne les processus "
+"enfants de ceux indiqués dans I<liste_pid>."
+
+#. type: TP
+#: ../man/ps.1:296
+#, no-wrap
+msgid "B<q>I<\\ pidlist>"
+msgstr "B<q>I<\\ liste_pid>"
+
+#. type: Plain text
+#: ../man/ps.1:302
+msgid ""
+"Select by process ID (quick mode). Identical to B<-q> and B<--quick-pid>."
+msgstr ""
+"Sélectionner par identifiant de processus (PID). Identique à B<-q> et B<--"
+"quick-pid>."
+
+#. type: TP
+#: ../man/ps.1:302
+#, no-wrap
+msgid "B<-q>I<\\ pidlist>"
+msgstr "B<-q>I<\\ liste_pid>"
+
+#. type: Plain text
+#: ../man/ps.1:316
+msgid ""
+"Select by PID (quick mode). This selects the processes whose process ID "
+"numbers appear in I<pidlist>. With this option B<ps> reads the necessary "
+"info only for the pids listed in the I<pidlist> and doesn't apply additional "
+"filtering rules. The order of pids is unsorted and preserved. No additional "
+"selection options, sorting and forest type listings are allowed in this "
+"mode. Identical to B<q> and B<--quick-pid>."
+msgstr ""
+"Sélectionner par PID (mode rapide). Cela sélectionne les processus dont le "
+"numéro d'identifiant figure dans I<liste_pid>. Avec cette option, B<ps> ne "
+"lit les informations nécessaires que pour les PID se trouvant dans "
+"I<liste_pid> et il n'applique aucune règle de filtrage supplémentaire. Les "
+"PID ne sont pas triés et ils sont préservés. Dans ce mode, aucune option de "
+"sélection supplémentaire, aucun tri ou listage en arborescence n'est "
+"possible. Identique à B<q> et B<--quick-pid>."
+
+#. type: TP
+#: ../man/ps.1:316
+#, no-wrap
+msgid "B<--quick-pid>I<\\ pidlist>"
+msgstr "B<--quick-pid>I<\\ liste_pid>"
+
+#. type: Plain text
+#: ../man/ps.1:322
+msgid "Select by process\\ ID (quick mode). Identical to B<-q> and B<q>."
+msgstr ""
+"Sélectionner par identifiant de processus (PID). Identique à B<-q> et B<q>."
+
+#. type: TP
+#: ../man/ps.1:322
+#, no-wrap
+msgid "B<-s>I<\\ sesslist>"
+msgstr "B<-s>I<\\ liste_sessions>"
+
+#. type: Plain text
+#: ../man/ps.1:327
+msgid ""
+"Select by session ID. This selects the processes with a session ID "
+"specified in I<sesslist>."
+msgstr ""
+"Sélectionner par identifiant de session. Cela sélectionne les processus dont "
+"l'identifiant de session est indiqué dans I<liste_sessions>."
+
+#. type: TP
+#: ../man/ps.1:327
+#, no-wrap
+msgid "B<--sid>I<\\ sesslist>"
+msgstr "B<--sid>I<\\ liste_sessions>"
+
+#. type: Plain text
+#: ../man/ps.1:331
+msgid "Select by session\\ ID. Identical to B<-s>."
+msgstr "Sélectionner par identifiant de session. Identique à B<-s>."
+
+#. type: TP
+#: ../man/ps.1:331
+#, no-wrap
+msgid "B<t>I<\\ ttylist>"
+msgstr "B<t>I<\\ liste_ttys>"
+
+#. type: Plain text
+#: ../man/ps.1:348
+msgid ""
+"Select by tty. Nearly identical to B<-t> and B<--tty>, but can also be used "
+"with an empty I<ttylist> to indicate the terminal associated with B<ps>. "
+"Using the B<T> option is considered cleaner than using B<t> with an empty "
+"I<ttylist>."
+msgstr ""
+"Sélectionner par terminal (tty). Quasiment identique à B<-t> et B<--tty>, "
+"mais peut également être utilisé avec une I<liste_ttys> vide pour indiquer "
+"le terminal associé à B<ps>. L'utilisation de l'option B<T> est considérée "
+"plus propre que l'utilisation de B<t> avec une I<liste_ttys> vide."
+
+#. type: TP
+#: ../man/ps.1:348
+#, no-wrap
+msgid "B<-t>I<\\ ttylist>"
+msgstr "B<-t>I<\\ liste_ttys>"
+
+#. type: Plain text
+#: ../man/ps.1:356
+msgid ""
+"Select by tty. This selects the processes associated with the terminals "
+"given in I<ttylist>. Terminals (ttys, or screens for text output) can be "
+"specified in several forms: /dev/ttyS1, ttyS1, S1. A plain \"-\" may be "
+"used to select processes not attached to any terminal."
+msgstr ""
+"Sélectionner par tty. Cela sélectionne les processus associés aux terminaux "
+"donnés dans I<liste_ttys>. Les terminaux (ttys, ou écrans pour sortie texte) "
+"peuvent être indiqués sous différentes formes : /dev/ttyS1, ttyS1, S1. Un "
+"simple « - » permet de sélectionner les processus qui ne sont pas attachés à "
+"un terminal."
+
+#. type: TP
+#: ../man/ps.1:356
+#, no-wrap
+msgid "B<--tty>I<\\ ttylist>"
+msgstr "B<--tty>I<\\ liste_ttys>"
+
+#. type: Plain text
+#: ../man/ps.1:362
+msgid "Select by terminal. Identical to B<-t> and B<t>."
+msgstr "Sélectionner par terminal. Identique à B<-t> et B<t>."
+
+#. type: TP
+#: ../man/ps.1:362
+#, no-wrap
+msgid "B<U>I<\\ userlist>"
+msgstr "B<U>I<\\ liste_utilisateurs>"
+
+#. type: Plain text
+#: ../man/ps.1:374
+msgid ""
+"Select by effective user ID (EUID) or name. This selects the processes "
+"whose effective user name or ID is in I<userlist>. The effective user ID "
+"describes the user whose file access permissions are used by the process "
+"(see I<geteuid>(2)). Identical to B<-u> and B<--user>."
+msgstr ""
+"Sélectionner par identifiant d'utilisateur effectif (EUID) ou nom. Cela "
+"sélectionne les processus dont l'identifiant ou nom d'utilisateur effectif "
+"est dans I<liste_utilisateurs>. L'EUID identifie l'utilisateur dont les "
+"droits d'accès au fichier sont utilisés par le processus, consultez "
+"B<geteuid>(2). Identique à B<-u> et B<--user>."
+
+#. type: TP
+#: ../man/ps.1:374
+#, no-wrap
+msgid "B<-U>I<\\ userlist>"
+msgstr "B<-U>I<\\ liste_utilisateurs>"
+
+#. type: Plain text
+#: ../man/ps.1:381
+msgid ""
+"Select by real user ID (RUID) or name. It selects the processes whose real "
+"user name or ID is in the I<userlist> list. The real user ID identifies the "
+"user who created the process, see I<getuid>(2)."
+msgstr ""
+"Sélectionner par identifiant d'utilisateur réel (RUID) ou nom. Cela "
+"sélectionne les processus dont l'identifiant ou nom d'utilisateur réel est "
+"dans I<liste_utilisateurs>. Le RUID identifie l'utilisateur qui a créé le "
+"processus, consultez B<getuid>(2)."
+
+#. type: TP
+#: ../man/ps.1:381
+#, no-wrap
+msgid "B<-u>I<\\ userlist>"
+msgstr "B<-u>I<\\ liste_utilisateurs>"
+
+#. type: Plain text
+#: ../man/ps.1:386
+msgid ""
+"Select by effective user ID (EUID) or name. This selects the processes "
+"whose effective user name or ID is in I<userlist>."
+msgstr ""
+"Sélectionner par identifiant d'utilisateur effectif (EUID) ou nom. Cela "
+"sélectionne les processus dont le nom ou l'identifiant d'utilisateur "
+"effectif est dans I<liste_utilisateurs>."
+
+#. type: Plain text
+#: ../man/ps.1:394
+msgid ""
+"The effective user ID describes the user whose file access permissions are "
+"used by the process (see I<geteuid>(2)). Identical to B<U> and B<--user>."
+msgstr ""
+"L'EUID identifie l'utilisateur dont les droits d'accès au fichier sont "
+"utilisés par le processus, consultez B<geteuid>(2). Identique à B<U> et B<--"
+"user>."
+
+#. type: TP
+#: ../man/ps.1:394
+#, no-wrap
+msgid "B<--User>I<\\ userlist>"
+msgstr "B<--User>I<\\ liste_utilisateurs>"
+
+#. type: Plain text
+#: ../man/ps.1:398
+msgid "Select by real user ID (RUID) or name. Identical to B<-U>."
+msgstr ""
+"Sélectionner par identifiant d'utilisateur réel (RUID) ou nom. Identique à "
+"B<-U>."
+
+#. type: TP
+#: ../man/ps.1:398
+#, no-wrap
+msgid "B<--user>I<\\ userlist>"
+msgstr "B<--user>I<\\ liste_utilisateurs>"
+
+#. type: Plain text
+#: ../man/ps.1:404
+msgid ""
+"Select by effective user ID (EUID) or name. Identical to B<-u> and B<U>."
+msgstr ""
+"Sélectionner par identifiant d'utilisateur effectif (EUID) ou nom. Identique "
+"à B<-u> et B<U>."
+
+#. type: SH
+#: ../man/ps.1:405
+#, no-wrap
+msgid "OUTPUT FORMAT CONTROL"
+msgstr "CONTRÔLE DU FORMAT DE SORTIE"
+
+#. type: Plain text
+#: ../man/ps.1:409
+msgid ""
+"These options are used to choose the information displayed by B<ps>. The "
+"output may differ by personality."
+msgstr ""
+"Ces options sont utilisées pour choisir les renseignements affichés par "
+"B<ps>. La sortie peut changer en fonction de la personnalité."
+
+#. type: Plain text
+#: ../man/ps.1:414
+msgid "Show different scheduler information for the B<-l> option."
+msgstr ""
+"Montrer des renseignements d'ordonnanceur différents pour l'option B<-l>."
+
+#. type: TP
+#: ../man/ps.1:414
+#, no-wrap
+msgid "B<--context>"
+msgstr "B<--context>"
+
+#. type: Plain text
+#: ../man/ps.1:417
+msgid "Display security context format (for SELinux)."
+msgstr "Afficher au format du contexte de sécurité (pour SELinux)."
+
+#. type: Plain text
+#: ../man/ps.1:430
+msgid ""
+"Do full-format listing. This option can be combined with many other UNIX-"
+"style options to add additional columns. It also causes the command "
+"arguments to be printed. When used with B<-L>, the NLWP (number of threads) "
+"and LWP (thread ID) columns will be added. See the B<c> option, the format "
+"keyword B<args>, and the format keyword B<comm>."
+msgstr ""
+"Faire une liste au format complet. Cette option peut être combinée aux "
+"nombreuses autres options « à la UNIX » pour ajouter des colonnes "
+"supplémentaires. Cela conduit également à afficher les paramètres de la "
+"commande. Lorsqu'elle est utilisée avec B<-L>, les colonnes NLWP (nombre de "
+"processus légers) et LWP (identifiant de processus léger) seront ajoutées. "
+"Consultez l'option B<c> et les mots-clés de format B<args> et B<comm>."
+
+#. type: TP
+#: ../man/ps.1:430
+#, no-wrap
+msgid "B<-F>"
+msgstr "B<-F>"
+
+#. type: Plain text
+#: ../man/ps.1:437
+msgid "Extra full format. See the B<-f> option, which B<-F> implies."
+msgstr "Format complet étendu. Consultez l'option B<-f>, implicite avec B<-F>."
+
+#. type: TP
+#: ../man/ps.1:437
+#, no-wrap
+msgid "B<--format>I<\\ format>"
+msgstr "B<--format>I<\\ format>"
+
+#. type: Plain text
+#: ../man/ps.1:443
+msgid "user-defined format. Identical to B<-o> and B<o>."
+msgstr "Format défini par l'utilisateur. Identique à B<-o> et B<o>."
+
+#. type: TP
+#: ../man/ps.1:443
+#, no-wrap
+msgid "B<j>"
+msgstr "B<j>"
+
+#. type: Plain text
+#: ../man/ps.1:446
+msgid "BSD job control format."
+msgstr "Format BSD de contrôle des tâches."
+
+#. type: TP
+#: ../man/ps.1:446
+#, no-wrap
+msgid "B<-j>"
+msgstr "B<-j>"
+
+#. type: Plain text
+#: ../man/ps.1:449
+msgid "Jobs format."
+msgstr "Format des tâches."
+
+#. type: TP
+#: ../man/ps.1:449
+#, no-wrap
+msgid "B<l>"
+msgstr "B<l>"
+
+#. type: Plain text
+#: ../man/ps.1:452
+msgid "Display BSD long format."
+msgstr "Afficher au format BSD long."
+
+#. type: TP
+#: ../man/ps.1:452
+#, no-wrap
+msgid "B<-l>"
+msgstr "B<-l>"
+
+#. type: Plain text
+#: ../man/ps.1:457
+msgid "Long format. The B<-y> option is often useful with this."
+msgstr "Format long. L'option B<-y> est souvent utile en complément."
+
+#. type: TP
+#: ../man/ps.1:457
+#, no-wrap
+msgid "B<-M>"
+msgstr "B<-M>"
+
+#. type: Plain text
+#: ../man/ps.1:462
+msgid "Add a column of security data. Identical to B<Z> (for SELinux)."
+msgstr ""
+"Afficher une colonne de données de sécurité. Identique à B<Z> (pour SELinux)."
+
+#. type: TP
+#: ../man/ps.1:462
+#, no-wrap
+msgid "B<O>I<\\ format>"
+msgstr "B<O>I<\\ format>"
+
+#. type: Plain text
+#: ../man/ps.1:480
+msgid ""
+"is preloaded B<o> (overloaded). The BSD B<O> option can act like B<-O> "
+"(user-defined output format with some common fields predefined) or can be "
+"used to specify sort order. Heuristics are used to determine the behavior "
+"of this option. To ensure that the desired behavior is obtained (sorting or "
+"formatting), specify the option in some other way (e.g. with B<-O> or B<--"
+"sort>). When used as a formatting option, it is identical to B<-O>, with "
+"the BSD personality."
+msgstr ""
+"B<o> préchargé (surchargé). L'option BSD B<O> peut se comporter comme B<-O> "
+"(format de sortie défini par l'utilisateur avec quelques champs communs "
+"prédéfinis) ou être utilisée pour indiquer un ordre de tri. Les paramètres "
+"sont utilisés pour déterminer le comportement de cette option. Pour "
+"s'assurer que le comportement voulu soit obtenu (tri ou formatage), indiquer "
+"cette option d'une autre façon (par exemple avec B<-O> ou B<--sort>). "
+"Identique à B<-O> quand utilisée comme option de formatage, avec la "
+"personnalité BSD."
+
+#. type: TP
+#: ../man/ps.1:480
+#, no-wrap
+msgid "B<-O>I<\\ format>"
+msgstr "B<-O>I<\\ format>"
+
+#. type: Plain text
+#: ../man/ps.1:491
+msgid ""
+"Like B<-o>, but preloaded with some default columns. Identical to B<-o\\ "
+"pid,\\:>I<format>B<,\\:state,\\:tname,\\:time,\\:command> or B<-o\\ pid,\\:"
+">I<format>B<,\\:tname,\\:time,\\:cmd>, see B<-o> below."
+msgstr ""
+"Comme B<-o>, mais préchargé avec quelques colonnes par défaut. Identique à "
+"B<-o pid,>I<format>B<,state,tname,time,command> ou B<-o pid,>I<format>B<,"
+"tname,time,cmd>, consultez B<-o> ci-dessous."
+
+#. type: TP
+#: ../man/ps.1:491
+#, no-wrap
+msgid "B<o>I<\\ format>"
+msgstr "B<o>I<\\ format>"
+
+#. type: Plain text
+#: ../man/ps.1:497
+msgid "Specify user-defined format. Identical to B<-o> and B<--format>."
+msgstr ""
+"Indiquer un format défini par l'utilisateur. Identique à B<-o> et B<--"
+"format>."
+
+#. type: TP
+#: ../man/ps.1:497
+#, no-wrap
+msgid "B<-o>I<\\ format>"
+msgstr "B<-o>I<\\ format>"
+
+#. type: Plain text
+#: ../man/ps.1:525
+msgid ""
+"User-defined format. I<format> is a single argument in the form of a blank-"
+"separated or comma-separated list, which offers a way to specify individual "
+"output columns. The recognized keywords are described in the B<STANDARD "
+"FORMAT SPECIFIERS> section below. Headers may be renamed (B<ps -o pid,\\:"
+"ruser=RealUser -o comm=Command>) as desired. If all column headers are "
+"empty (B<ps -o pid= -o comm=>) then the header line will not be output. "
+"Column width will increase as needed for wide headers; this may be used to "
+"widen up columns such as WCHAN (B<ps -o pid,\\:wchan=\\:WIDE-\\:WCHAN-\\:"
+"COLUMN -o comm>). Explicit width control (B<ps opid,\\:wchan:42,\\:cmd>) "
+"is offered too. The behavior of B<ps -o pid=X,\\:comm=Y> varies with "
+"personality; output may be one column named \"X,\\:comm=Y\" or two columns "
+"named \"X\" and \"Y\". Use multiple B<-o> options when in doubt. Use the "
+"B<PS_FORMAT> environment variable to specify a default as desired; DefSysV "
+"and DefBSD are macros that may be used to choose the default UNIX or BSD "
+"columns."
+msgstr ""
+"Format défini par l'utilisateur. I<format> est un paramètre unique sous "
+"forme de liste séparée par des blancs ou des virgules, qui permet d'indiquer "
+"des colonnes de sorties individuelles. Les mots-clés reconnus sont décrits "
+"ci-dessous dans la section B<INDICATEURS DE FORMAT STANDARDS>. Les en-têtes "
+"peuvent êtres renommés (B<ps\\ -o\\ pid,ruser=RealUser\\ -o\\ comm=Command>) "
+"si besoin. Si tous les en-têtes de colonnes sont vides (B<ps\\ -o\\ pid=\\ -"
+"o\\ comm=>), la ligne d'en-têtes ne sera pas affichée. La largeur de colonne "
+"augmentera si de larges en-têtes l'exigent ; ce peut être utilisé pour "
+"élargir des colonnes comme WCHAN (B<ps\\ -o\\ pid,wchan=WIDE-WCHAN-COLUMN\\ -"
+"o\\ comm>). Un contrôle explicite de la largeur (B<ps\\ opid,wchan:42,cmd>) "
+"est également possible. Le comportement de B<ps\\ -o\\ pid=X,comm=Y> change "
+"avec les personnalités ; la sortie peut être une colonne appelée « X,"
+"comm=Y » ou deux colonnes appelées « X » et « Y ». Utilisez plusieurs "
+"options B<-o> pour dissiper les doutes. Utilisez la variable d'environnement "
+"B<PS_FORMAT> pour indiquer une valeur par défaut ; DefSysV et DefBSD sont "
+"des macros qui peuvent être utilisées pour choisir les colonnes UNIX ou BSD "
+"par défaut."
+
+#. type: TP
+#: ../man/ps.1:525
+#, no-wrap
+msgid "B<-P>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:528
+msgid "Add a column showing B<psr>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:528
+#, no-wrap
+msgid "B<s>"
+msgstr "B<s>"
+
+#. type: Plain text
+#: ../man/ps.1:531
+msgid "Display signal format."
+msgstr "Afficher au format de signal."
+
+#. type: TP
+#: ../man/ps.1:531
+#, no-wrap
+msgid "B<u>"
+msgstr "B<u>"
+
+#. type: Plain text
+#: ../man/ps.1:534
+msgid "Display user-oriented format."
+msgstr "Afficher au format orienté utilisateur."
+
+#. type: TP
+#: ../man/ps.1:534
+#, no-wrap
+msgid "B<v>"
+msgstr "B<v>"
+
+#. type: Plain text
+#: ../man/ps.1:537
+msgid "Display virtual memory format."
+msgstr "Afficher au format de mémoire virtuelle."
+
+#. type: TP
+#: ../man/ps.1:537
+#, no-wrap
+msgid "B<X>"
+msgstr "B<X>"
+
+#. type: Plain text
+#: ../man/ps.1:540
+msgid "Register format."
+msgstr "Format de registre."
+
+#. type: TP
+#: ../man/ps.1:540
+#, no-wrap
+msgid "B<-y>"
+msgstr "B<-y>"
+
+#. type: Plain text
+#: ../man/ps.1:545
+msgid ""
+"Do not show flags; show rss in place of addr. This option can only be used "
+"with B<-l>."
+msgstr ""
+"Ne pas montrer d'indicateurs ; montrer B<rss> au lieu de B<addr>. Cette "
+"option ne peut être utilisée qu'avec B<-l>."
+
+#. type: TP
+#: ../man/ps.1:545
+#, no-wrap
+msgid "B<Z>"
+msgstr "B<Z>"
+
+#. type: Plain text
+#: ../man/ps.1:550
+msgid "Add a column of security data. Identical to B<-M> (for SELinux)."
+msgstr ""
+"Afficher une colonne de données de sécurité. Identique à B<-M> (pour "
+"SELinux)."
+
+#. type: SH
+#: ../man/ps.1:551
+#, no-wrap
+msgid "OUTPUT MODIFIERS"
+msgstr "MODIFICATEURS DE SORTIE"
+
+#. type: TP
+#: ../man/ps.1:552
+#, no-wrap
+msgid "B<c>"
+msgstr "B<c>"
+
+#. type: Plain text
+#: ../man/ps.1:570
+msgid ""
+"Show the true command name. This is derived from the name of the executable "
+"file, rather than from the argv value. Command arguments and any "
+"modifications to them are thus not shown. This option effectively turns the "
+"B<args> format keyword into the B<comm> format keyword; it is useful with "
+"the B<-f> format option and with the various BSD-style format options, which "
+"all normally display the command arguments. See the B<-f> option, the "
+"format keyword B<args>, and the format keyword B<comm>."
+msgstr ""
+"Montrer les vrais noms de commande. Cela vient du nom de fichier exécutable, "
+"plutôt que de la valeur I<argv>. Les paramètres de la commande et leurs "
+"modifications éventuelles ne sont donc pas montrés. Cette option transforme "
+"en fait le mot-clé de format B<args> en B<comm> ; c'est pratique pour "
+"l'option de format B<-f> et avec toutes les options de format « à la BSD », "
+"qui entraînent normalement toutes un affichage des paramètres de la "
+"commande. Consultez l'option B<-f> et les mots-clés de format B<args> et "
+"B<comm>."
+
+#. type: TP
+#: ../man/ps.1:570
+#, no-wrap
+msgid "B<--cols>I<\\ n>"
+msgstr "B<--cols>I<\\ n>"
+
+#. type: Plain text
+#: ../man/ps.1:573 ../man/ps.1:576 ../man/ps.1:724
+msgid "Set screen width."
+msgstr "Configurer la largeur de l'écran."
+
+#. type: TP
+#: ../man/ps.1:573
+#, no-wrap
+msgid "B<--columns>I<\\ n>"
+msgstr "B<--columns>I<\\ n>"
+
+#. type: TP
+#: ../man/ps.1:576
+#, no-wrap
+msgid "B<--cumulative>"
+msgstr "B<--cumulative>"
+
+#. type: Plain text
+#: ../man/ps.1:579
+msgid "Include some dead child process data (as a sum with the parent)."
+msgstr ""
+"Inclure des données sur les processus enfants tués (comme une somme avec le "
+"parent)."
+
+#. type: TP
+#: ../man/ps.1:580
+#, fuzzy, no-wrap
+#| msgid "B<-O>I<\\ format>"
+msgid "B<-D>I<\\ format>"
+msgstr "B<-O>I<\\ format>"
+
+#. type: Plain text
+#: ../man/ps.1:586
+msgid ""
+"Set the date format of the B<lstart> field to I<format>. This format is "
+"parsed by B<strftime>(3) and should be a maximum of 24 characters to not "
+"mis-align columns."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:586
+#, fuzzy, no-wrap
+#| msgid "B<--format>I<\\ format>"
+msgid "B<--date-format>I<\\ format>"
+msgstr "B<--format>I<\\ format>"
+
+#. type: Plain text
+#: ../man/ps.1:589
+#, fuzzy
+#| msgid "Identical to B<--pid\\ >I<123>."
+msgid "Identical to B<-D>."
+msgstr "Identique à B<--pid\\ >I<123>."
+
+#. type: TP
+#: ../man/ps.1:589
+#, no-wrap
+msgid "B<e>"
+msgstr "B<e>"
+
+#. type: Plain text
+#: ../man/ps.1:592
+msgid "Show the environment after the command."
+msgstr "Montrer l'environnement après la commande."
+
+#. type: TP
+#: ../man/ps.1:592
+#, no-wrap
+msgid "B<f>"
+msgstr "B<f>"
+
+#. type: Plain text
+#: ../man/ps.1:595
+msgid "ASCII art process hierarchy (forest)."
+msgstr "Hiérarchie des processus en ASCII art (arborescence)."
+
+#. type: TP
+#: ../man/ps.1:595
+#, no-wrap
+msgid "B<--forest>"
+msgstr "B<--forest>"
+
+#. type: Plain text
+#: ../man/ps.1:598
+msgid "ASCII art process tree."
+msgstr "Arborescence des processus en ASCII art."
+
+#. type: TP
+#: ../man/ps.1:598
+#, no-wrap
+msgid "B<h>"
+msgstr "B<h>"
+
+#. type: Plain text
+#: ../man/ps.1:616
+msgid ""
+"No header. (or, one header per screen in the BSD personality). The B<h> "
+"option is problematic. Standard BSD B<ps> uses this option to print a "
+"header on each page of output, but older Linux B<ps> uses this option to "
+"totally disable the header. This version of B<ps> follows the Linux usage "
+"of not printing the header unless the BSD personality has been selected, in "
+"which case it prints a header on each page of output. Regardless of the "
+"current personality, you can use the long options B<--headers> and B<--no-"
+"headers> to enable printing headers each page or disable headers entirely, "
+"respectively."
+msgstr ""
+"Sans en-tête (ou avec un en-tête par écran en personnalité BSD). L'option "
+"B<h> est problématique. Le B<ps> standard de BSD utilise cette option pour "
+"afficher un en-tête sur chaque page de sortie, mais l'ancien B<ps> de Linux "
+"utilise cette option pour désactiver l'en-tête. Cette version de B<ps> suit "
+"l'habitude de Linux de ne pas afficher l'en-tête sauf si la personnalité BSD "
+"a été choisie, auquel cas elle affiche un en-tête sur chaque page de sortie. "
+"Quelle que soit la personnalité utilisée, les options longues B<--headers> "
+"et B<--no-headers> permettent respectivement d'activer l'affichage des en-"
+"têtes sur chaque page ou de désactiver complètement les en-têtes."
+
+#. type: TP
+#: ../man/ps.1:616
+#, no-wrap
+msgid "B<-H>"
+msgstr "B<-H>"
+
+#. type: Plain text
+#: ../man/ps.1:619
+msgid "Show process hierarchy (forest)."
+msgstr "Montrer la hiérarchie des processus (arborescence)."
+
+#. type: TP
+#: ../man/ps.1:619
+#, no-wrap
+msgid "B<--headers>"
+msgstr "B<--headers>"
+
+#. type: Plain text
+#: ../man/ps.1:622
+msgid "Repeat header lines, one per page of output."
+msgstr "Répéter les lignes d'en-tête, une par page de sortie."
+
+#. type: TP
+#: ../man/ps.1:622
+#, no-wrap
+msgid "B<k>I<\\ spec>"
+msgstr "B<k>I<\\ spec>"
+
+#. type: Plain text
+#: ../man/ps.1:634
+msgid ""
+"Specify sorting order. Sorting syntax is [B<+>|B<->]I<key\\/.RB [,[ + | - ]."
+"IR key [,...]].> Choose a multi-letter key from the B<STANDARD FORMAT "
+"SPECIFIERS> section. The \"+\" is optional since default direction is "
+"increasing numerical or lexicographic order. Identical to B<--sort>."
+msgstr ""
+"Indiquer l'ordre de tri. La syntaxe de tri est [B<+>|B<->]I<clé\\/.RB [,[ + "
+"| - ].clé IR [,...]].>. Choisissez une I<clé> multicaractère de la section "
+"B<INDICATEURS DE FORMAT STANDARDS>. Le « + » est facultatif puisque l'ordre "
+"numérique ou lexicographique est croissant par défaut. Identique à B<--sort>."
+
+#. type: Plain text
+#: ../man/ps.1:637
+msgid "Examples:"
+msgstr "Exemples :"
+
+#. type: Plain text
+#: ../man/ps.1:639
+msgid "B<ps jaxkuid,-ppid,+pid>"
+msgstr "B<ps jaxkuid,-ppid,+pid>"
+
+#. type: Plain text
+#: ../man/ps.1:641
+msgid "B<ps axk comm o comm,args>"
+msgstr "B<ps axk comm o comm,args>"
+
+#. type: Plain text
+#: ../man/ps.1:643
+msgid "B<ps kstart_time -ef>"
+msgstr "B<ps kstart_time -ef>"
+
+#. type: TP
+#: ../man/ps.1:644
+#, no-wrap
+msgid "B<--lines>I<\\ n>"
+msgstr "B<--lines>I<\\ n>"
+
+#. type: Plain text
+#: ../man/ps.1:647 ../man/ps.1:691
+msgid "Set screen height."
+msgstr "Configurer la hauteur de l'écran."
+
+#. type: TP
+#: ../man/ps.1:647
+#, no-wrap
+msgid "B<n>"
+msgstr "B<n>"
+
+#. type: Plain text
+#: ../man/ps.1:650
+msgid "Numeric output for WCHAN and USER (including all types of UID and GID)."
+msgstr ""
+"Sortie numérique pour WCHAN et USER (incluant tous les types d'UID et GID)."
+
+#. type: TP
+#: ../man/ps.1:650
+#, no-wrap
+msgid "B<--no-headers>"
+msgstr "B<--no-headers>"
+
+#. type: Plain text
+#: ../man/ps.1:655
+msgid ""
+"Print no header line at all. B<--no-heading> is an alias for this option."
+msgstr ""
+"Ne pas afficher d'en-tête du tout. B<--no-heading> est un alias pour cette "
+"option."
+
+#. type: TP
+#: ../man/ps.1:655
+#, no-wrap
+msgid "B<O>I<\\ order>"
+msgstr "B<O>I<\\ order>"
+
+#. type: Plain text
+#: ../man/ps.1:669
+msgid ""
+"Sorting order (overloaded). The BSD B<O> option can act like B<-O> (user-"
+"defined output format with some common fields predefined) or can be used to "
+"specify sort order. Heuristics are used to determine the behavior of this "
+"option. To ensure that the desired behavior is obtained (sorting or "
+"formatting), specify the option in some other way (e.g. with B<-O> or B<--"
+"sort>)."
+msgstr ""
+"Ordre de tri (surchargé). L'option BSD B<O> peut se comporter comme B<-O> "
+"(format de sortie défini par l'utilisateur avec quelques champs communs "
+"prédéfinis) ou peut être utilisée pour indiquer un ordre de tri. Les "
+"paramètres sont utilisés pour déterminer le comportement de cette option. "
+"Pour s'assurer que le comportement voulu soit obtenu (tri ou formatage), "
+"indiquer cette option d'une autre façon (par exemple avec B<-O> ou B<--"
+"sort>)."
+
+#. type: Plain text
+#: ../man/ps.1:688
+msgid ""
+"For sorting, obsolete BSD B<O> option syntax is B<O>[B<+>|B<->]I<k1>[,[B<+>|"
+"B<->]I<k2>[,...]]. It orders the processes listing according to the "
+"multilevel sort specified by the sequence of one-letter short keys I<k1>,"
+"I<k2>, ...\" described in the B<OBSOLETE SORT KEYS> section below. The\\ \"+"
+"\" is currently optional, merely re-iterating the default direction on a "
+"key, but may help to distinguish an B<O> sort from an B<O> format. The \"-"
+"\" reverses direction only on the key it precedes."
+msgstr ""
+"Pour trier, la syntaxe de l'option BSD obsolète est « B<O>[B<+>|B<->]I<k1>[,"
+"[B<+>|B<->]I<k2>[,...]] ». L'ordre de la liste de processus est effectué en "
+"fonction de l'ordre multiniveau indiqué par la suite de clés courtes à une "
+"lettre I<k1>, I<k2>, etc., décrites ci-dessous dans la section B<CLÉS DE TRI "
+"OBSOLÈTES>. Le « + » actuellement facultatif réitère simplement l'ordre par "
+"défaut d'une clé, mais permet également de distinguer un B<O> de tri d'un "
+"B<O> de formatage. Le « - » inverse uniquement l'ordre de la clé qu'il "
+"précède."
+
+#. type: TP
+#: ../man/ps.1:688
+#, no-wrap
+msgid "B<--rows>I<\\ n>"
+msgstr "B<--rows>I<\\ n>"
+
+#. type: TP
+#: ../man/ps.1:691
+#, no-wrap
+msgid "B<S>"
+msgstr "B<S>"
+
+#. type: Plain text
+#: ../man/ps.1:696
+msgid ""
+"Sum up some information, such as CPU usage, from dead child processes into "
+"their parent. This is useful for examining a system where a parent process "
+"repeatedly forks off short-lived children to do work."
+msgstr ""
+"Résumer quelques renseignements, comme l'utilisation CPU, à partir des "
+"processus enfants tués dans leur parent. C'est pratique pour observer un "
+"système où les processus parents engendrent des processus enfants de courte "
+"durée de vie pour faire leur travail."
+
+#. type: TP
+#: ../man/ps.1:696
+#, no-wrap
+msgid "B<--sort>I<\\ spec>"
+msgstr "B<--sort>I<\\ spec>"
+
+#. type: Plain text
+#: ../man/ps.1:710
+msgid ""
+"Specify sorting order. Sorting syntax is [I<+>|I<->]I<key>[,[B<+>|B<-"
+">]I<key>[,...]]. Choose a multi-letter key from the B<STANDARD FORMAT "
+"SPECIFIERS> section. The \"+\" is optional since default direction is "
+"increasing numerical or lexicographic order. Identical to B<k>. For "
+"example: B<ps jax --sort=\\:uid,\\:-ppid,\\:+pid>"
+msgstr ""
+"Indiquer l'ordre de tri. La syntaxe de tri est « [B<+>|B<->]I<clé>[,[B<+>|B<-"
+">]I<clé>[,...]] ». Choisir une I<clé> multicaractère de la section "
+"B<INDICATEURS DE FORMAT STANDARDS>. Le « + » est facultatif puisque l'ordre "
+"numérique ou lexicographique est croissant par défaut. Identique à B<k>. Par "
+"exemple : B<ps\\ jax\\ --sort=uid,-ppid,+pid>."
+
+#. type: TP
+#: ../man/ps.1:710
+#, fuzzy, no-wrap
+#| msgid "B<--giga>"
+msgid "B<--signames>"
+msgstr "B<--giga>"
+
+#. type: Plain text
+#: ../man/ps.1:715
+msgid ""
+"Show signal masks using abbreviated signal names and expands the collumn. "
+"If the column width cannot show all signals, the column will end with a plus "
+"\"I<+>\". Columns with only a hyphen have no signals."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:715
+#, no-wrap
+msgid "B<w>"
+msgstr "B<w>"
+
+#. type: Plain text
+#: ../man/ps.1:718 ../man/ps.1:721
+msgid "Wide output. Use this option twice for unlimited width."
+msgstr ""
+"Sortie large. Utilisez cette option deux fois pour une largeur illimitée."
+
+#. type: TP
+#: ../man/ps.1:721
+#, no-wrap
+msgid "B<--width>I<\\ n>"
+msgstr "B<--width>I<\\ n>"
+
+#. type: SH
+#: ../man/ps.1:725
+#, no-wrap
+msgid "THREAD DISPLAY"
+msgstr "AFFICHAGE DE PROCESSUS LÉGERS (« THREAD »)"
+
+#. type: TP
+#: ../man/ps.1:726
+#, no-wrap
+msgid "B<H>"
+msgstr "B<H>"
+
+#. type: Plain text
+#: ../man/ps.1:729
+msgid "Show threads as if they were processes."
+msgstr "Montrer les processus légers comme s'ils étaient des processus."
+
+#. type: TP
+#: ../man/ps.1:729
+#, no-wrap
+msgid "B<-L>"
+msgstr "B<-L>"
+
+#. type: Plain text
+#: ../man/ps.1:732
+msgid "Show threads, possibly with LWP and NLWP columns."
+msgstr ""
+"Montrer les processus légers, si possible avec les colonnes LWP et NLWP."
+
+#. type: TP
+#: ../man/ps.1:732
+#, no-wrap
+msgid "B<m>"
+msgstr "B<m>"
+
+#. type: Plain text
+#: ../man/ps.1:735 ../man/ps.1:738
+msgid "Show threads after processes."
+msgstr "Montrer les processus légers après les processus."
+
+#. type: TP
+#: ../man/ps.1:735
+#, no-wrap
+msgid "B<-m>"
+msgstr "B<-m>"
+
+#. type: TP
+#: ../man/ps.1:738
+#, no-wrap
+msgid "B<-T>"
+msgstr "B<-T>"
+
+#. type: Plain text
+#: ../man/ps.1:741
+msgid "Show threads, possibly with SPID column."
+msgstr "Montrer les processus légers, si possible avec la colonne SPID."
+
+#. type: SH
+#: ../man/ps.1:741
+#, no-wrap
+msgid "OTHER INFORMATION"
+msgstr "AUTRES RENSEIGNEMENTS"
+
+#. type: TP
+#: ../man/ps.1:742
+#, no-wrap
+msgid "B<--help>I<\\ section>"
+msgstr "B<--help>I<\\ section>"
+
+#. type: Plain text
+#: ../man/ps.1:753
+msgid ""
+"Print a help message. The I<section> argument can be one of I<s>imple, "
+"I<l>ist, I<o>utput, I<t>hreads, I<m>isc, or I<a>ll. The argument can be "
+"shortened to one of the underlined letters as in: s\\^|\\^l\\^|\\^o\\^|"
+"\\^t\\^|\\^m\\^|\\^a."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:753
+#, no-wrap
+msgid "B<--info>"
+msgstr "B<--info>"
+
+#. type: Plain text
+#: ../man/ps.1:756
+msgid "Print debugging info."
+msgstr "Afficher des informations de débogage."
+
+#. type: TP
+#: ../man/ps.1:756
+#, no-wrap
+msgid "B<L>"
+msgstr "B<L>"
+
+#. type: Plain text
+#: ../man/ps.1:759
+msgid "List all format specifiers."
+msgstr "Afficher la liste de tous les indicateurs de format."
+
+#. type: TP
+#: ../man/ps.1:759
+#, no-wrap
+msgid "B<V>"
+msgstr "B<V>"
+
+#. type: Plain text
+#: ../man/ps.1:762 ../man/ps.1:765 ../man/ps.1:768
+msgid "Print the procps-ng version."
+msgstr "Afficher la version de B<procps-ng>."
+
+#. type: TP
+#: ../man/ps.1:762
+#, no-wrap
+msgid "B<-V>"
+msgstr "B<-V>"
+
+#. type: TP
+#: ../man/ps.1:765
+#, no-wrap
+msgid "B<--version>"
+msgstr "B<--version>"
+
+#. type: Plain text
+#: ../man/ps.1:777
+msgid ""
+"This B<ps> works by reading the virtual files in /proc. This B<ps> does not "
+"need to be setuid kmem or have any privileges to run. Do not give this "
+"B<ps> any special permissions."
+msgstr ""
+"Ce B<ps> fonctionne en lisant les fichiers virtuels de I</proc>. Ce B<ps> "
+"n'a pas besoin d'être Set-UID kmem et ne nécessite aucun privilège pour "
+"fonctionner. Ne pas donner de permissions particulières à ce B<ps>."
+
+#. type: Plain text
+#: ../man/ps.1:783
+msgid ""
+"CPU usage is currently expressed as the percentage of time spent running "
+"during the entire lifetime of a process. This is not ideal, and\\ it does "
+"not conform to the standards that B<ps> otherwise conforms to. CPU usage is "
+"unlikely to add up to exactly 100%."
+msgstr ""
+"L'utilisation CPU est actuellement exprimée en pourcentage de temps passé à "
+"fonctionner pendant le temps de vie complet d'un processus. Ce n'est ni "
+"idéal, ni conforme aux normes par ailleurs respectées par B<ps>. Il est peu "
+"probable que la somme d'utilisations CPU soit exactement égale à 100\\ %."
+
+#. type: Plain text
+#: ../man/ps.1:788
+msgid ""
+"The SIZE and RSS fields don't count some parts of a process including the "
+"page tables, kernel stack, struct thread_info, and struct task_struct. This "
+"is usually at least 20\\ KiB of memory that is always resident. SIZE is the "
+"virtual size of the process (code+\\:data+\\:stack)."
+msgstr ""
+"Les champs SIZE et RSS ne comptent pas certaines parties d'un processus "
+"comme les tables de pages, la pile du noyau, la structure thread_info, et la "
+"structure task_struct. Cela représente au moins 20\\ Kio de mémoire toujours "
+"résidente. SIZE est la taille virtuelle du processus (code + données + pile)."
+
+#. type: Plain text
+#: ../man/ps.1:794
+msgid ""
+"Processes marked E<lt>defunctE<gt> are dead processes (so-called "
+"\"zombies\") that remain because their parent has not destroyed them "
+"properly. These processes will be destroyed by I<init>(8) if the parent "
+"process exits."
+msgstr ""
+"Les processus marqués E<lt>defunctE<gt> sont les processus tués (appelés "
+"« zombies ») qui restent parce que leur parent ne les a pas détruits "
+"proprement. Ces processus seront détruits par B<init>(8) si le processus "
+"parent se termine."
+
+#. type: Plain text
+#: ../man/ps.1:798
+#, fuzzy
+#| msgid ""
+#| "If the length of the username is greater than the length of the display "
+#| "column, the username will be truncated. See the -o and -O formatting "
+#| "options to customize length."
+msgid ""
+"If the length of the username is greater than the width of the display "
+"column, the username will be truncated. See the B<-o> and B<-O> formatting "
+"options to customize length."
+msgstr ""
+"Si la longueur du nom d'utilisateur dépasse la largeur de la colonne "
+"d'affichage, le nom sera tronqué. Consultez les options de formatage B<-o> "
+"et B<-O> pour personnaliser la longueur."
+
+#. type: Plain text
+#: ../man/ps.1:810
+#, fuzzy
+#| msgid ""
+#| "Commands options such as B<ps -aux> are not recommended as it is a "
+#| "confusion of two different standards. According to the POSIX and UNIX "
+#| "standards, the above command asks to display all processes with a TTY "
+#| "(generally the commands users are running) plus all processes owned by a "
+#| "user named \"x\". If that user doesn't exist, then B<ps> will assume you "
+#| "really meant \"B<ps> I<aux>\"."
+msgid ""
+"Commands options such as B<ps -aux> are not recommended as it is a confusion "
+"of two different standards. According to the POSIX and UNIX standards, the "
+"above command asks to display all processes with a TTY (generally the "
+"commands users are running) plus all processes owned by a user named I<x>. "
+"If that user doesn't exist, then B<ps> will assume you really meant \"B<ps> "
+"I<aux>\"."
+msgstr ""
+"Les options de commande comme B<ps -aux> ne sont pas recommandées car il "
+"s'agit d'une confusion entre deux différentes normes. D'après les normes "
+"POSIX et UNIX, la commande ci-dessus demande d'afficher tous les processus "
+"avec un TTY (en général les commandes exécutées par les utilisateurs) et "
+"tous les processus appartenant à un utilisateur nommé « x ». Si cet "
+"utilisateur n'existe pas, alors B<ps> interprétera plutôt la commande comme "
+"« B<ps aux> »."
+
+#. type: SH
+#: ../man/ps.1:810
+#, no-wrap
+msgid "PROCESS FLAGS"
+msgstr "INDICATEURS DE PROCESSUS"
+
+#. type: Plain text
+#: ../man/ps.1:815
+msgid ""
+"The sum of these values is displayed in the \"F\" column, which is provided "
+"by the B<flags> output specifier:"
+msgstr ""
+"La somme de ces valeurs est affichée dans la colonne « F », fournie par "
+"l'indicateur de sortie B<flags> :"
+
+#. type: Plain text
+#: ../man/ps.1:821
+msgid "forked but didn't exec"
+msgstr "engendré mais pas exécuté ;"
+
+#. type: IP
+#: ../man/ps.1:821 ../man/ps.1:2088
+#, no-wrap
+msgid "4"
+msgstr "4"
+
+#. type: Plain text
+#: ../man/ps.1:824
+msgid "used super-user privileges"
+msgstr "a utilisé des privilèges de superutilisateur ;"
+
+#. type: SH
+#: ../man/ps.1:826
+#, no-wrap
+msgid "PROCESS STATE CODES"
+msgstr "CODES D'ÉTAT DE PROCESSUS"
+
+#. type: Plain text
+#: ../man/ps.1:831
+msgid ""
+"Here are the different values that the B<s>, B<stat> and B<state> output "
+"specifiers (header \"STAT\" or \"S\") will display to describe the state of "
+"a process:"
+msgstr ""
+"Voici les différentes valeurs que les indicateurs de sortie B<s>, B<stat> et "
+"B<state> (en-tête « STAT » ou « S ») afficheront pour décrire l'état d'un "
+"processus :"
+
+#. type: TP
+#: ../man/ps.1:834
+#, no-wrap
+msgid "D"
+msgstr "D"
+
+#. type: Plain text
+#: ../man/ps.1:837
+msgid "uninterruptible sleep (usually IO)"
+msgstr "en sommeil non interruptible (normalement entrées et sorties) ;"
+
+#. type: TP
+#: ../man/ps.1:837
+#, no-wrap
+msgid "I"
+msgstr "I"
+
+#. type: Plain text
+#: ../man/ps.1:840
+msgid "Idle kernel thread"
+msgstr "fil inactif du noyau ;"
+
+#. type: tbl table
+#: ../man/ps.1:840 ../man/ps.1:925
+#, no-wrap
+msgid "R"
+msgstr "R"
+
+#. type: Plain text
+#: ../man/ps.1:843
+msgid "running or runnable (on run queue)"
+msgstr "s'exécutant ou pouvant s'exécuter (dans la file d'exécution) ;"
+
+#. type: tbl table
+#: ../man/ps.1:843 ../man/ps.1:927 ../man/ps.1:1631 ../man/ps.1:1753
+#, no-wrap
+msgid "S"
+msgstr "S"
+
+#. type: Plain text
+#: ../man/ps.1:846
+msgid "interruptible sleep (waiting for an event to complete)"
+msgstr "en sommeil interruptible (en attente d'un événement pour finir) ;"
+
+#. type: tbl table
+#: ../man/ps.1:846 ../man/ps.1:929
+#, no-wrap
+msgid "T"
+msgstr "T"
+
+#. type: Plain text
+#: ../man/ps.1:849
+msgid "stopped by job control signal"
+msgstr "arrêté par le signal de contrôle de la tâche ;"
+
+#. type: tbl table
+#: ../man/ps.1:849 ../man/ps.1:928
+#, no-wrap
+msgid "t"
+msgstr "t"
+
+#. type: Plain text
+#: ../man/ps.1:852
+msgid "stopped by debugger during the tracing"
+msgstr "arrêté par le débogueur lors du traçage ;"
+
+#. type: Plain text
+#: ../man/ps.1:855
+msgid "paging (not valid since the 2.6.xx kernel)"
+msgstr "pagination (non valable depuis le noyau 2.6.xx) ;"
+
+#. type: TP
+#: ../man/ps.1:855
+#, no-wrap
+msgid "X"
+msgstr "X"
+
+#. type: Plain text
+#: ../man/ps.1:858
+msgid "dead (should never be seen)"
+msgstr "tué (ne devrait jamais être vu) ;"
+
+#. type: TP
+#: ../man/ps.1:858
+#, no-wrap
+msgid "Z"
+msgstr "Z"
+
+#. type: Plain text
+#: ../man/ps.1:861
+msgid "defunct (\"zombie\") process, terminated but not reaped by its parent"
+msgstr ""
+"processus zombie (E<lt>defunctE<gt>), terminé mais pas détruit par son "
+"parent."
+
+#. type: Plain text
+#: ../man/ps.1:867
+msgid ""
+"For BSD formats and when the B<stat> keyword is used, additional characters "
+"may be displayed:"
+msgstr ""
+"Pour les formats BSD et quand le mot-clé B<stat> est utilisé, les caractères "
+"supplémentaires suivants peuvent être affichés :"
+
+#. type: TP
+#: ../man/ps.1:870
+#, no-wrap
+msgid "E<lt>"
+msgstr "E<lt>"
+
+#. type: Plain text
+#: ../man/ps.1:873
+msgid "high-priority (not nice to other users)"
+msgstr "haute priorité (non poli pour les autres utilisateurs) ;"
+
+#. type: tbl table
+#: ../man/ps.1:873 ../man/ps.1:920
+#, no-wrap
+msgid "N"
+msgstr "N"
+
+#. type: Plain text
+#: ../man/ps.1:876
+msgid "low-priority (nice to other users)"
+msgstr "basse priorité (poli pour les autres utilisateurs) ;"
+
+#. type: TP
+#: ../man/ps.1:876
+#, no-wrap
+msgid "L"
+msgstr "L"
+
+#. type: Plain text
+#: ../man/ps.1:879
+msgid "has pages locked into memory (for real-time and custom IO)"
+msgstr ""
+"avec ses pages verrouillées en mémoire (pour temps réel et entrées et "
+"sorties personnalisées) ;"
+
+#. type: Plain text
+#: ../man/ps.1:882
+msgid "is a session leader"
+msgstr "meneur de session ;"
+
+#. type: Plain text
+#: ../man/ps.1:885
+msgid "is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)"
+msgstr ""
+"possède plusieurs processus légers (« multi-thread », utilisant CLONE_THREAD "
+"comme NPTL pthreads le fait) ;"
+
+#. type: TP
+#: ../man/ps.1:885
+#, no-wrap
+msgid "+"
+msgstr "+"
+
+#. type: Plain text
+#: ../man/ps.1:888
+msgid "is in the foreground process group"
+msgstr "dans le groupe de processus au premier plan."
+
+#. type: SH
+#: ../man/ps.1:890
+#, no-wrap
+msgid "OBSOLETE SORT KEYS"
+msgstr "CLÉS DE TRI OBSOLÈTES"
+
+#. type: Plain text
+#: ../man/ps.1:906
+msgid ""
+"These keys are used by the BSD B<O> option (when it is used for sorting). "
+"The GNU B<--sort> option doesn't use these keys, but the specifiers "
+"described below in the B<STANDARD FORMAT SPECIFIERS> section. Note that the "
+"values used in sorting are the internal values B<ps> uses and not the "
+"\"cooked\" values used in some of the output format fields (e.g. sorting on "
+"tty will sort into device number, not according to the terminal name "
+"displayed). Pipe B<ps> output into the B<sort>(1) command if you want to "
+"sort the cooked values."
+msgstr ""
+"Ces clés sont utilisées par l'option BSD B<O> (quand elle est utilisée pour "
+"trier). L'option GNU B<--sort> n'utilise pas ces clés, mais celles décrites "
+"ci-dessous dans la section B<INDICATEURS DE FORMAT STANDARDS>. Remarquez que "
+"les valeurs utilisées pour le tri sont les valeurs internes que B<ps> "
+"utilise et non les valeurs « trafiquées » utilisées dans certains champs de "
+"format de sortie (par exemple trier sur tty ordonnera par numéro de "
+"périphérique, pas en fonction du nom de terminal affiché). Envoyer la sortie "
+"de B<ps> dans un tube (« pipe ») vers la commande B<sort>(1) permet "
+"d'obtenir un tri selon les valeurs trafiquées."
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, no-wrap
+msgid "B<KEY>"
+msgstr "B<CLÉ>"
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, no-wrap
+msgid "B<LONG>"
+msgstr "B<LONGUE>"
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, no-wrap
+msgid "B<DESCRIPTION>"
+msgstr "B<DESCRIPTION>"
+
+#. type: tbl table
+#: ../man/ps.1:909 ../man/ps.1:1161
+#, no-wrap
+msgid "cmd"
+msgstr "cmd"
+
+#. type: tbl table
+#: ../man/ps.1:909
+#, no-wrap
+msgid "simple name of executable"
+msgstr "juste le nom de l'exécutable"
+
+#. type: tbl table
+#: ../man/ps.1:910 ../man/ps.1:1081
+#, no-wrap
+msgid "C"
+msgstr "C"
+
+#. type: tbl table
+#: ../man/ps.1:910 ../man/ps.1:952 ../man/ps.1:1481
+#, no-wrap
+msgid "pcpu"
+msgstr "pcpu"
+
+#. type: tbl table
+#: ../man/ps.1:910
+#, no-wrap
+msgid "cpu utilization"
+msgstr "utilisation du CPU"
+
+#. type: tbl table
+#: ../man/ps.1:911 ../man/ps.1:1300
+#, no-wrap
+msgid "f"
+msgstr "f"
+
+#. type: tbl table
+#: ../man/ps.1:911 ../man/ps.1:1326
+#, no-wrap
+msgid "flags"
+msgstr "attributs"
+
+#. type: tbl table
+#: ../man/ps.1:911
+#, no-wrap
+msgid "flags as in long format F field"
+msgstr "indicateurs comme le champ F du format long"
+
+#. type: tbl table
+#: ../man/ps.1:912
+#, no-wrap
+msgid "g"
+msgstr "g"
+
+#. type: tbl table
+#: ../man/ps.1:912 ../man/ps.1:1508
+#, no-wrap
+msgid "pgrp"
+msgstr "pgrp"
+
+#. type: tbl table
+#: ../man/ps.1:912
+#, no-wrap
+msgid "process group ID"
+msgstr "GID du processus"
+
+#. type: tbl table
+#: ../man/ps.1:913
+#, no-wrap
+msgid "G"
+msgstr "G"
+
+#. type: tbl table
+#: ../man/ps.1:913 ../man/ps.1:1848
+#, no-wrap
+msgid "tpgid"
+msgstr "tpgid"
+
+#. type: tbl table
+#: ../man/ps.1:913
+#, no-wrap
+msgid "controlling tty process group ID"
+msgstr "GID du processus contrôlant le tty"
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "j"
+msgstr "j"
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "cutime"
+msgstr "cutime"
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "cumulative user time"
+msgstr "temps utilisateur cumulé"
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "J"
+msgstr "J"
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "cstime"
+msgstr "cstime"
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "cumulative system time"
+msgstr "temps système cumulé"
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "k"
+msgstr "k"
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "utime"
+msgstr "utime"
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "user time"
+msgstr "temps utilisateur"
+
+#. type: tbl table
+#: ../man/ps.1:917
+#, no-wrap
+msgid "m"
+msgstr "m"
+
+#. type: tbl table
+#: ../man/ps.1:917 ../man/ps.1:1419
+#, no-wrap
+msgid "min_flt"
+msgstr "min_flt"
+
+#. type: tbl table
+#: ../man/ps.1:917
+#, no-wrap
+msgid "number of minor page faults"
+msgstr "nombre de défauts de page mineurs"
+
+#. type: tbl table
+#: ../man/ps.1:918
+#, no-wrap
+msgid "M"
+msgstr "M"
+
+#. type: tbl table
+#: ../man/ps.1:918 ../man/ps.1:1415
+#, no-wrap
+msgid "maj_flt"
+msgstr "maj_flt"
+
+#. type: tbl table
+#: ../man/ps.1:918
+#, no-wrap
+msgid "number of major page faults"
+msgstr "nombre de défauts de page majeurs"
+
+#. type: tbl table
+#: ../man/ps.1:919
+#, no-wrap
+msgid "cmin_flt"
+msgstr "cmin_flt"
+
+#. type: tbl table
+#: ../man/ps.1:919
+#, no-wrap
+msgid "cumulative minor page faults"
+msgstr "défauts de page mineurs cumulés"
+
+#. type: tbl table
+#: ../man/ps.1:920
+#, no-wrap
+msgid "cmaj_flt"
+msgstr "cmaj_flt"
+
+#. type: tbl table
+#: ../man/ps.1:920
+#, no-wrap
+msgid "cumulative major page faults"
+msgstr "défauts de page majeurs cumulés"
+
+#. type: tbl table
+#: ../man/ps.1:921
+#, no-wrap
+msgid "session"
+msgstr "session"
+
+#. type: tbl table
+#: ../man/ps.1:921
+#, no-wrap
+msgid "session ID"
+msgstr "identifiant de session"
+
+#. type: tbl table
+#: ../man/ps.1:922 ../man/ps.1:960 ../man/ps.1:1515
+#, no-wrap
+msgid "pid"
+msgstr "pid"
+
+#. type: tbl table
+#: ../man/ps.1:922
+#, no-wrap
+msgid "process ID"
+msgstr "identifiant de processus (PID)"
+
+#. type: tbl table
+#: ../man/ps.1:923 ../man/ps.1:1657
+#, no-wrap
+msgid "P"
+msgstr "P"
+
+#. type: tbl table
+#: ../man/ps.1:923 ../man/ps.1:954 ../man/ps.1:1559
+#, no-wrap
+msgid "ppid"
+msgstr "ppid"
+
+#. type: tbl table
+#: ../man/ps.1:923
+#, no-wrap
+msgid "parent process ID"
+msgstr "PID du processus parent"
+
+#. type: tbl table
+#: ../man/ps.1:924
+#, no-wrap
+msgid "r"
+msgstr "r"
+
+#. type: tbl table
+#: ../man/ps.1:924 ../man/ps.1:1598
+#, no-wrap
+msgid "rss"
+msgstr "rss"
+
+#. type: tbl table
+#: ../man/ps.1:924
+#, no-wrap
+msgid "resident set size"
+msgstr "taille de mémoire résidente"
+
+#. type: tbl table
+#: ../man/ps.1:925
+#, no-wrap
+msgid "resident"
+msgstr "resident"
+
+#. type: tbl table
+#: ../man/ps.1:925
+#, no-wrap
+msgid "resident pages"
+msgstr "pages résidentes"
+
+#. type: tbl table
+#: ../man/ps.1:926 ../man/ps.1:1707
+#, no-wrap
+msgid "size"
+msgstr "size"
+
+#. type: tbl table
+#: ../man/ps.1:926
+#, no-wrap
+msgid "memory size in kilobytes"
+msgstr "taille mémoire en kilooctets"
+
+#. type: tbl table
+#: ../man/ps.1:927
+#, no-wrap
+msgid "share"
+msgstr "share"
+
+#. type: tbl table
+#: ../man/ps.1:927
+#, no-wrap
+msgid "amount of shared pages"
+msgstr "nombre de pages partagées"
+
+#. type: tbl table
+#: ../man/ps.1:928 ../man/ps.1:965 ../man/ps.1:1862
+#, no-wrap
+msgid "tty"
+msgstr "tty"
+
+#. type: tbl table
+#: ../man/ps.1:928
+#, no-wrap
+msgid "the device number of the controlling tty"
+msgstr "numéro de périphérique du tty contrôlant "
+
+#. type: tbl table
+#: ../man/ps.1:929 ../man/ps.1:1736
+#, no-wrap
+msgid "start_time"
+msgstr "start_time"
+
+#. type: tbl table
+#: ../man/ps.1:929
+#, no-wrap
+msgid "time process was started"
+msgstr "heure de démarrage du processus"
+
+#. type: tbl table
+#: ../man/ps.1:930
+#, no-wrap
+msgid "U"
+msgstr "U"
+
+#. type: tbl table
+#: ../man/ps.1:930 ../man/ps.1:1881
+#, no-wrap
+msgid "uid"
+msgstr "uid"
+
+#. type: tbl table
+#: ../man/ps.1:930
+#, no-wrap
+msgid "user ID number"
+msgstr "identifiant utilisateur (UID)"
+
+#. type: tbl table
+#: ../man/ps.1:931 ../man/ps.1:955 ../man/ps.1:1900
+#, no-wrap
+msgid "user"
+msgstr "user"
+
+#. type: tbl table
+#: ../man/ps.1:931
+#, no-wrap
+msgid "user name"
+msgstr "nom d'utilisateur"
+
+#. type: tbl table
+#: ../man/ps.1:932 ../man/ps.1:1929
+#, no-wrap
+msgid "vsize"
+msgstr "vsize"
+
+#. type: tbl table
+#: ../man/ps.1:932
+#, no-wrap
+msgid "total VM size in KiB"
+msgstr "taille totale de mémoire virtuelle en kibioctets"
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "y"
+msgstr "y"
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "priority"
+msgstr "priority"
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "kernel scheduling priority"
+msgstr "priorité d'ordonnancement du noyau"
+
+#. type: SH
+#: ../man/ps.1:936
+#, no-wrap
+msgid "AIX FORMAT DESCRIPTORS"
+msgstr "DESCRIPTEURS DE FORMAT AIX"
+
+#. type: Plain text
+#: ../man/ps.1:949
+msgid ""
+"This B<ps> supports AIX format descriptors, which work somewhat like the "
+"formatting codes of I<printf>(1) and I<printf>(3). For example, the normal "
+"default output can be produced with this: B<ps -eo \"%p %y %x %c\">. The "
+"B<NORMAL> codes are described in the next section."
+msgstr ""
+"Ce B<ps> prend en charge les descripteurs de format AIX, qui fonctionnent un "
+"peu comme les codes de formatage de B<printf>(1) et B<printf>(3). Par "
+"exemple, la sortie normale par défaut peut être produite ainsi : B<ps\\ -"
+"eo\\ \"%p\\ %y\\ %x\\ %c\">. Les codes B<STANDARD> sont décrits dans la "
+"section suivante."
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<CODE>"
+msgstr "B<CODE>"
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<NORMAL>"
+msgstr "B<STANDARD>"
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<HEADER>"
+msgstr "B<EN-TÊTE>"
+
+#. type: tbl table
+#: ../man/ps.1:952
+#, no-wrap
+msgid "%C"
+msgstr "%C"
+
+#. type: tbl table
+#: ../man/ps.1:952 ../man/ps.1:1004 ../man/ps.1:1481
+#, no-wrap
+msgid "%CPU"
+msgstr "%CPU"
+
+#. type: tbl table
+#: ../man/ps.1:953
+#, no-wrap
+msgid "%G"
+msgstr "%G"
+
+#. type: tbl table
+#: ../man/ps.1:953 ../man/ps.1:1355
+#, no-wrap
+msgid "group"
+msgstr "group"
+
+#. type: tbl table
+#: ../man/ps.1:953 ../man/ps.1:1355
+#, no-wrap
+msgid "GROUP"
+msgstr "GROUP"
+
+#. type: tbl table
+#: ../man/ps.1:954
+#, no-wrap
+msgid "%P"
+msgstr "%P"
+
+#. type: tbl table
+#: ../man/ps.1:954 ../man/ps.1:1559
+#, no-wrap
+msgid "PPID"
+msgstr "PPID"
+
+#. type: tbl table
+#: ../man/ps.1:955
+#, no-wrap
+msgid "%U"
+msgstr "%U"
+
+#. type: tbl table
+#: ../man/ps.1:955 ../man/ps.1:1888 ../man/ps.1:1900
+#, no-wrap
+msgid "USER"
+msgstr "USER"
+
+#. type: tbl table
+#: ../man/ps.1:956
+#, no-wrap
+msgid "%a"
+msgstr "%a"
+
+#. type: tbl table
+#: ../man/ps.1:956 ../man/ps.1:1027
+#, no-wrap
+msgid "args"
+msgstr "args"
+
+#. type: tbl table
+#: ../man/ps.1:956 ../man/ps.1:957 ../man/ps.1:1027 ../man/ps.1:1168
+#: ../man/ps.1:1196 ../man/ps.1:1333 ../man/ps.1:1874
+#, no-wrap
+msgid "COMMAND"
+msgstr "COMMAND"
+
+#. type: tbl table
+#: ../man/ps.1:957
+#, no-wrap
+msgid "%c"
+msgstr "%c"
+
+#. type: tbl table
+#: ../man/ps.1:957 ../man/ps.1:1168
+#, no-wrap
+msgid "comm"
+msgstr "comm"
+
+#. type: tbl table
+#: ../man/ps.1:958
+#, no-wrap
+msgid "%g"
+msgstr "%g"
+
+#. type: tbl table
+#: ../man/ps.1:958 ../man/ps.1:1588
+#, no-wrap
+msgid "rgroup"
+msgstr "rgroup"
+
+#. type: tbl table
+#: ../man/ps.1:958 ../man/ps.1:1588
+#, no-wrap
+msgid "RGROUP"
+msgstr "RGROUP"
+
+#. type: tbl table
+#: ../man/ps.1:959
+#, no-wrap
+msgid "%n"
+msgstr "%n"
+
+#. type: tbl table
+#: ../man/ps.1:959 ../man/ps.1:1443
+#, no-wrap
+msgid "nice"
+msgstr "nice"
+
+#. type: tbl table
+#: ../man/ps.1:959 ../man/ps.1:1435 ../man/ps.1:1443
+#, no-wrap
+msgid "NI"
+msgstr "NI"
+
+#. type: tbl table
+#: ../man/ps.1:960
+#, no-wrap
+msgid "%p"
+msgstr "%p"
+
+#. type: tbl table
+#: ../man/ps.1:960 ../man/ps.1:1515
+#, no-wrap
+msgid "PID"
+msgstr "PID"
+
+#. type: tbl table
+#: ../man/ps.1:961
+#, no-wrap
+msgid "%r"
+msgstr "%r"
+
+#. type: tbl table
+#: ../man/ps.1:961 ../man/ps.1:1502
+#, no-wrap
+msgid "pgid"
+msgstr "pgid"
+
+#. type: tbl table
+#: ../man/ps.1:961 ../man/ps.1:1502
+#, no-wrap
+msgid "PGID"
+msgstr "PGID"
+
+#. type: tbl table
+#: ../man/ps.1:962
+#, no-wrap
+msgid "%t"
+msgstr "%t"
+
+#. type: tbl table
+#: ../man/ps.1:962 ../man/ps.1:1271
+#, no-wrap
+msgid "etime"
+msgstr "etime"
+
+#. type: tbl table
+#: ../man/ps.1:962 ../man/ps.1:1271 ../man/ps.1:1275
+#, no-wrap
+msgid "ELAPSED"
+msgstr "ELAPSED"
+
+#. type: tbl table
+#: ../man/ps.1:963
+#, no-wrap
+msgid "%u"
+msgstr "%u"
+
+#. type: tbl table
+#: ../man/ps.1:963 ../man/ps.1:1626
+#, no-wrap
+msgid "ruser"
+msgstr "ruser"
+
+#. type: tbl table
+#: ../man/ps.1:963 ../man/ps.1:1626
+#, no-wrap
+msgid "RUSER"
+msgstr "RUSER"
+
+#. type: tbl table
+#: ../man/ps.1:964
+#, no-wrap
+msgid "%x"
+msgstr "%x"
+
+#. type: tbl table
+#: ../man/ps.1:964 ../man/ps.1:1827
+#, no-wrap
+msgid "time"
+msgstr "time"
+
+# Nom de la commande time.2
+#. type: tbl table
+#: ../man/ps.1:964 ../man/ps.1:1075 ../man/ps.1:1208 ../man/ps.1:1213
+#: ../man/ps.1:1827 ../man/ps.1:1838
+#, no-wrap
+msgid "TIME"
+msgstr "TIME"
+
+#. type: tbl table
+#: ../man/ps.1:965
+#, no-wrap
+msgid "%y"
+msgstr "%y"
+
+#. type: tbl table
+#: ../man/ps.1:965 ../man/ps.1:1843
+#, no-wrap
+msgid "TTY"
+msgstr "TTY"
+
+#. type: tbl table
+#: ../man/ps.1:966
+#, no-wrap
+msgid "%z"
+msgstr "%z"
+
+#. type: tbl table
+#: ../man/ps.1:966 ../man/ps.1:1936
+#, no-wrap
+msgid "vsz"
+msgstr "vsz"
+
+#. type: tbl table
+#: ../man/ps.1:966 ../man/ps.1:1929 ../man/ps.1:1936
+#, no-wrap
+msgid "VSZ"
+msgstr "VSZ"
+
+#. type: SH
+#: ../man/ps.1:968
+#, no-wrap
+msgid "STANDARD FORMAT SPECIFIERS"
+msgstr "INDICATEURS DE FORMAT STANDARDS"
+
+#. type: Plain text
+#: ../man/ps.1:975
+msgid ""
+"Here are the different keywords that may be used to control the output "
+"format (e.g., with option B<-o>) or to sort the selected processes with the "
+"GNU-style B<--sort> option."
+msgstr ""
+"Voici les différents mots-clés pouvant être utilisés pour contrôler le "
+"format de sortie (par exemple avec l'option B<-o>) ou pour trier les "
+"processus sélectionnés avec l'option « à la GNU » B<--sort>."
+
+#. type: Plain text
+#: ../man/ps.1:978
+msgid "For example: B<ps -eo pid,\\:user,\\:args --sort user>"
+msgstr "Par exemple : B<ps\\ -eo\\ pid,user,args\\ --sort\\ user>"
+
+#. type: Plain text
+#: ../man/ps.1:983
+msgid ""
+"This version of B<ps> tries to recognize most of the keywords used in other "
+"implementations of B<ps>."
+msgstr ""
+"Cette version de B<ps> essaye de reconnaître la plupart des mots-clés "
+"utilisés avec les autres implémentations de B<ps>."
+
+#. type: Plain text
+#: ../man/ps.1:988
+msgid ""
+"The following user-defined format specifiers may contain spaces: B<args>, "
+"B<cmd>, B<comm>, B<command>, B<fname>, B<ucmd>, B<ucomm>, B<lstart>, "
+"B<bsdstart>, B<start>."
+msgstr ""
+"Les indicateurs suivants de format définis par l'utilisateur peuvent "
+"contenir des espaces : B<args>, B<cmd>, B<comm>, B<command>, B<fname>, "
+"B<ucmd>, B<ucomm>, B<lstart>, B<bsdstart>, B<start>."
+
+#. type: Plain text
+#: ../man/ps.1:990
+msgid "Some keywords may not be available for sorting."
+msgstr "Certains mots-clés peuvent être indisponibles pour le tri."
+
+#. type: tbl table
+#: ../man/ps.1:1002
+#, no-wrap
+msgid "CODE"
+msgstr "B<CODE>"
+
+#. type: tbl table
+#: ../man/ps.1:1002
+#, no-wrap
+msgid "HEADER"
+msgstr "B<EN-TÊTE>"
+
+#. type: tbl table
+#: ../man/ps.1:1004
+#, no-wrap
+msgid "%cpu"
+msgstr "%cpu"
+
+#. type: tbl table
+#: ../man/ps.1:1010
+#, no-wrap
+msgid ""
+"cpu utilization of the process in \"##.#\" format. Currently, it is the CPU\n"
+"time used divided by the time the process has been running (cputime/realtime\n"
+"ratio), expressed as a percentage. It will not add up to 100% unless you are\n"
+"lucky. (alias\n"
+"B<pcpu>)."
+msgstr ""
+"Utilisation CPU du processus exprimée avec un chiffre après la virgule.\n"
+"Actuellement, il s'agit du temps passé à fonctionner divisé par le temps de\n"
+"vie du processus (rapport cputime/realtime), exprimé en pourcentage.\n"
+"La somme ne dépassera pas 100\\ % sauf si vous êtes chanceux (alias\n"
+"B<pcpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1012
+#, no-wrap
+msgid "%mem"
+msgstr "%mem"
+
+#. type: tbl table
+#: ../man/ps.1:1012 ../man/ps.1:1526
+#, no-wrap
+msgid "%MEM"
+msgstr "%MEM"
+
+#. type: tbl table
+#: ../man/ps.1:1016
+#, no-wrap
+msgid ""
+"ratio of the process's resident set size to the physical memory on the\n"
+"machine, expressed as a percentage. (alias\n"
+"B<pmem>)."
+msgstr ""
+"Rapport entre la taille de mémoire résidente («\\ resident set size\\ » ou\n"
+"RSS) et la mémoire physique de la machine, exprimé en pourcentage (alias\n"
+"B<pmem>)."
+
+#. type: tbl table
+#: ../man/ps.1:1018
+#, no-wrap
+msgid "ag_id"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1018
+#, no-wrap
+msgid "AGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1021
+#, no-wrap
+msgid ""
+"The autogroup identifier associated with a process which operates in conjunction\n"
+"with the CFS scheduler to improve interactive desktop performance."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1023
+#, fuzzy, no-wrap
+#| msgid "nice"
+msgid "ag_nice"
+msgstr "nice"
+
+#. type: tbl table
+#: ../man/ps.1:1023
+#, no-wrap
+msgid "AGNI"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1025
+#, no-wrap
+msgid "The autogroup nice value which affects scheduling of all processes in that group."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1042
+#, fuzzy, no-wrap
+#| msgid ""
+#| "command with all its arguments as a string. Modifications to the arguments\n"
+#| "may be shown. The output in this column may contain spaces. A process\n"
+#| "marked E<lt>defunctE<gt> is partly dead, waiting to be fully destroyed by its parent.\n"
+#| "Sometimes the process args will be unavailable; when this happens,\n"
+#| "B<ps>\n"
+#| "will instead print the executable name in brackets. (alias\n"
+#| "B<cmd>,B<\\ command>).\n"
+#| "See also the\n"
+#| "B<comm>\n"
+#| "format keyword, the\n"
+#| "B<-f>\n"
+#| "option, and the\n"
+#| "B<c>\n"
+#| "option.\n"
+msgid ""
+"command with all its arguments as a string. Modifications to the arguments\n"
+"may be shown. The output in this column may contain spaces. A process\n"
+"marked E<lt>defunctE<gt> is partly dead, waiting to be fully destroyed by its parent.\n"
+"Sometimes the process args will be unavailable; when this happens,\n"
+"B<ps>\n"
+"will instead print the executable name in brackets. (alias\n"
+"B<cmd>, B<command>).\n"
+"See also the\n"
+"B<comm>\n"
+"format keyword, the\n"
+"B<-f>\n"
+"option, and the\n"
+"B<c>\n"
+"option.\n"
+msgstr ""
+"Commande avec tous ses arguments sous forme de chaîne.\n"
+"Les modifications aux arguments peuvent être montrées.\n"
+"Les éléments de cette colonne peuvent contenir des espaces.\n"
+"Un processus marqué E<lt>defunctE<gt> est partiellement tué.\n"
+"La valeur B<args> est parfois indisponible pour le processus, dans ce cas,\n"
+"B<ps>\n"
+"affichera à la place le nom de l'exécutable entre crochets (alias\n"
+"B<cmd>,B<\\ command>).\n"
+"Consultez aussi\n"
+"le mot-clé de format B<comm>\n"
+"et les options B<-f>\n"
+"et\n"
+"B<c>.\n"
+
+#. type: tbl table
+#: ../man/ps.1:1042 ../man/ps.1:1116 ../man/ps.1:1118 ../man/ps.1:1120
+#: ../man/ps.1:1122 ../man/ps.1:1124 ../man/ps.1:1126 ../man/ps.1:1128
+#: ../man/ps.1:1130 ../man/ps.1:1142 ../man/ps.1:1144 ../man/ps.1:1146
+#: ../man/ps.1:1148 ../man/ps.1:1150 ../man/ps.1:1152 ../man/ps.1:1154
+#: ../man/ps.1:1156 ../man/ps.1:1180 ../man/ps.1:1540 ../man/ps.1:1542
+#: ../man/ps.1:1544 ../man/ps.1:1546 ../man/ps.1:1548 ../man/ps.1:1550
+#: ../man/ps.1:1552 ../man/ps.1:1554
+#, no-wrap
+msgid ".br\n"
+msgstr ".br\n"
+
+#. type: tbl table
+#: ../man/ps.1:1058
+#, no-wrap
+msgid ""
+"When specified last, this column will extend to the edge of the display. If\n"
+"B<ps>\n"
+"can not determine display width, as when output is redirected (piped) into a\n"
+"file or another command, the output width is undefined (it may be 80,\n"
+"unlimited, determined by the\n"
+"B<TERM>\n"
+"variable, and so on). The\n"
+"B<COLUMNS>\n"
+"environment variable or\n"
+"B<--cols>\n"
+"option may be used to exactly determine the width in this case. The\n"
+"B<w>\n"
+"or\n"
+"B<-w>\n"
+"option may be also be used to adjust width."
+msgstr ""
+"Lorsque indiquée en dernier, cette colonne sera élargie jusqu'aux bords de l'affichage. Si\n"
+"B<ps>\n"
+"ne peut pas déterminer la largeur de l'affichage, comme quand la sortie est renvoyée\n"
+"(dans un tube, «\\ pipe\\ ») vers un fichier ou une autre commande,\n"
+"la largeur de sortie n'est pas définie\n"
+"(elle peut être de 80\\ caractères,\n"
+"illimitée, déterminée par la variable\n"
+"B<TERM>,\\ etc.)\n"
+"La variable d'environnement\n"
+"B<COLUMNS>\n"
+"ou l'option\n"
+"B<--cols>\n"
+"permettent de déterminer avec exactitude la largeur dans ce cas.\n"
+"Les options\n"
+"B<w>\n"
+"ou\n"
+"B<-w>\n"
+"peuvent également être utilisées pour adapter la largeur."
+
+#. type: tbl table
+#: ../man/ps.1:1060
+#, no-wrap
+msgid "blocked"
+msgstr "blocked"
+
+#. type: tbl table
+#: ../man/ps.1:1060 ../man/ps.1:1700
+#, no-wrap
+msgid "BLOCKED"
+msgstr "BLOCKED"
+
+#. type: tbl table
+#: ../man/ps.1:1066
+#, fuzzy, no-wrap
+#| msgid ""
+#| "mask of the blocked signals, see\n"
+#| "I<signal>(7).\n"
+#| "According to the width of the field, a 32 or 64-bit mask in hexadecimal\n"
+#| "format is displayed. (alias\n"
+#| "B<sig_block>, B<sigmask>)."
+msgid ""
+"mask of the blocked signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64-bit mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_block>, B<sigmask>)."
+msgstr ""
+"Masque des signaux bloqués, consultez\n"
+"B<signal>(7).\n"
+"Suivant la largeur du champ, un masque de 32 ou 64\\ bits au format hexadécimal est affiché\n"
+"(alias\n"
+"B<sig_block>, B<sigmask>)."
+
+#. type: tbl table
+#: ../man/ps.1:1068
+#, no-wrap
+msgid "bsdstart"
+msgstr "bsdstart"
+
+#. type: tbl table
+#: ../man/ps.1:1068 ../man/ps.1:1736
+#, no-wrap
+msgid "START"
+msgstr "START"
+
+#. type: tbl table
+#: ../man/ps.1:1073
+#, no-wrap
+msgid ""
+"time the command started. If the process was started less than 24 hours ago,\n"
+"the output format is \"\\ HH:MM\", else it is \" Mmm:SS\" (where Mmm is the three\n"
+"letters of the month). See also\n"
+"B<lstart>,B<\\ start>,B<\\ start_time>, andB<\\ stime>."
+msgstr ""
+"Heure de démarrage du processus. Si le processus a été démarré dans les dernières 24\\ heures,\n"
+"le format de sortie est «\\ \\ HH:MM\\ »,\n"
+"sinon il est «\\ Mmm\\ JJ\\ »\n"
+"(où «\\ Mmm\\ » représente les trois\n"
+"premières lettres du mois, en anglais). Consultez aussi\n"
+"B<lstart>, B<start>, B<start_time> et B<stime>."
+
+#. type: tbl table
+#: ../man/ps.1:1075
+#, no-wrap
+msgid "bsdtime"
+msgstr "bsdtime"
+
+#. type: tbl table
+#: ../man/ps.1:1079
+#, no-wrap
+msgid ""
+"accumulated cpu time, user + system. The display format is usually\n"
+"\"MMM:SS\", but can be shifted to the right if the process used more than 999\n"
+"minutes of cpu time."
+msgstr ""
+"Temps CPU cumulé, utilisateur plus système. Le format d'affichage est normalement\n"
+"«\\ MMM:SS\\ », mais peut être déplacé vers la droite si des processus ont cumulé\n"
+"plus de 999\\ minutes de temps CPU."
+
+#. type: tbl table
+#: ../man/ps.1:1085
+#, no-wrap
+msgid ""
+"processor utilization. Currently, this is the integer value of the percent\n"
+"usage over the lifetime of the process. (see\n"
+"B<%cpu>)."
+msgstr ""
+"Utilisation du processeur. C'est pour l'instant la partie entière\n"
+"du pourcentage d'utilisation par rapport au temps de vie du processus (consultez\n"
+"B<%cpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1087
+#, no-wrap
+msgid "caught"
+msgstr "caught"
+
+#. type: tbl table
+#: ../man/ps.1:1087 ../man/ps.1:1686
+#, no-wrap
+msgid "CAUGHT"
+msgstr "CAUGHT"
+
+#. type: tbl table
+#: ../man/ps.1:1093
+#, fuzzy, no-wrap
+#| msgid ""
+#| "mask of the caught signals, see\n"
+#| "I<signal>(7).\n"
+#| "According to the width of the field, a 32 or 64 bits mask in hexadecimal\n"
+#| "format is displayed. (alias\n"
+#| "B<sig_catch>, B<sigcatch>)."
+msgid ""
+"mask of the caught signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64 bits mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_catch>, B<sigcatch>)."
+msgstr ""
+"Masque des signaux bloqués, consultez\n"
+"B<signal>(7).\n"
+"Suivant la largeur du champ, un masque de 32 ou 64\\ bits au format hexadécimal\n"
+"(alias\n"
+"B<sig_catch>, B<sigcatch>)."
+
+#. type: tbl table
+#: ../man/ps.1:1095
+#, no-wrap
+msgid "cgname"
+msgstr "cgname"
+
+#. type: tbl table
+#: ../man/ps.1:1095
+#, no-wrap
+msgid "CGNAME"
+msgstr "CGNAME"
+
+#. type: tbl table
+#: ../man/ps.1:1097
+#, no-wrap
+msgid "display name of control groups to which the process belongs."
+msgstr "Afficher les groupes de contrôle auxquels appartient le processus."
+
+#. type: tbl table
+#: ../man/ps.1:1099
+#, no-wrap
+msgid "cgroup"
+msgstr "cgroup"
+
+#. type: tbl table
+#: ../man/ps.1:1099
+#, no-wrap
+msgid "CGROUP"
+msgstr "CGROUP"
+
+#. type: tbl table
+#: ../man/ps.1:1101
+#, no-wrap
+msgid "display control groups to which the process belongs."
+msgstr "Afficher les groupes auxquels appartient le processus."
+
+#. type: tbl table
+#: ../man/ps.1:1103
+#, fuzzy, no-wrap
+#| msgid "cgroup"
+msgid "cgroupns"
+msgstr "cgroup"
+
+#. type: tbl table
+#: ../man/ps.1:1103
+#, fuzzy, no-wrap
+#| msgid "CGROUP"
+msgid "CGROUPNS"
+msgstr "CGROUP"
+
+#. type: tbl table
+#: ../man/ps.1:1107 ../man/ps.1:1374 ../man/ps.1:1427 ../man/ps.1:1433
+#: ../man/ps.1:1524 ../man/ps.1:1836 ../man/ps.1:1911 ../man/ps.1:1922
+#, no-wrap
+msgid ""
+"Unique inode number describing the namespace the process belongs to.\n"
+"See\n"
+"I<namespaces>(7)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1109
+#, no-wrap
+msgid "class"
+msgstr "class"
+
+#. type: tbl table
+#: ../man/ps.1:1109 ../man/ps.1:1135
+#, no-wrap
+msgid "CLS"
+msgstr "CLS"
+
+#. type: tbl table
+#: ../man/ps.1:1113 ../man/ps.1:1139
+#, no-wrap
+msgid ""
+"scheduling class of the process. (alias\n"
+"B<policy>, B<cls>).\n"
+"Field's possible values are:\n"
+msgstr ""
+"Classe d’ordonnancement du processus (alias\n"
+"B<policy>,B<cls>).\n"
+"Les valeurs possibles du champ sont\\ :\n"
+
+#. type: tbl table
+#: ../man/ps.1:1113 ../man/ps.1:1139 ../man/ps.1:1537
+#, no-wrap
+msgid ".sp 1\n"
+msgstr ".sp 1\n"
+
+#. type: tbl table
+#: ../man/ps.1:1114 ../man/ps.1:1140 ../man/ps.1:1538
+#, no-wrap
+msgid ".in +9n\n"
+msgstr ".in +9n\n"
+
+#. type: tbl table
+#: ../man/ps.1:1116 ../man/ps.1:1142 ../man/ps.1:1540
+#, no-wrap
+msgid "-\tnot reported\n"
+msgstr "-\tnon signalé\n"
+
+#. type: tbl table
+#: ../man/ps.1:1118 ../man/ps.1:1144 ../man/ps.1:1542
+#, no-wrap
+msgid "TS\tSCHED_OTHER\n"
+msgstr "TS\tSCHED_OTHER\n"
+
+#. type: tbl table
+#: ../man/ps.1:1120 ../man/ps.1:1146 ../man/ps.1:1544
+#, no-wrap
+msgid "FF\tSCHED_FIFO\n"
+msgstr "FF\tSCHED_FIFO\n"
+
+#. type: tbl table
+#: ../man/ps.1:1122 ../man/ps.1:1148 ../man/ps.1:1546
+#, no-wrap
+msgid "RR\tSCHED_RR\n"
+msgstr "RR\tSCHED_RR\n"
+
+#. type: tbl table
+#: ../man/ps.1:1124 ../man/ps.1:1150 ../man/ps.1:1548
+#, no-wrap
+msgid "B\tSCHED_BATCH\n"
+msgstr "B\tSCHED_BATCH\n"
+
+#. type: tbl table
+#: ../man/ps.1:1126 ../man/ps.1:1152 ../man/ps.1:1550
+#, no-wrap
+msgid "ISO\tSCHED_ISO\n"
+msgstr "ISO\tSCHED_ISO\n"
+
+#. type: tbl table
+#: ../man/ps.1:1128 ../man/ps.1:1154 ../man/ps.1:1552
+#, no-wrap
+msgid "IDL\tSCHED_IDLE\n"
+msgstr "IDL\tSCHED_IDLE\n"
+
+#. type: tbl table
+#: ../man/ps.1:1130 ../man/ps.1:1156 ../man/ps.1:1554
+#, no-wrap
+msgid "DLN\tSCHED_DEADLINE\n"
+msgstr "DLN\tSCHED_DEADLINE\n"
+
+#. type: tbl table
+#: ../man/ps.1:1132 ../man/ps.1:1158 ../man/ps.1:1556
+#, no-wrap
+msgid "?\tunknown value\n"
+msgstr "?\tvaleur inconnue\n"
+
+#. type: tbl table
+#: ../man/ps.1:1132 ../man/ps.1:1158 ../man/ps.1:1556
+#, no-wrap
+msgid ".in\n"
+msgstr ".in\n"
+
+#. type: tbl table
+#: ../man/ps.1:1135
+#, no-wrap
+msgid "cls"
+msgstr "cls"
+
+#. type: tbl table
+#: ../man/ps.1:1161 ../man/ps.1:1867
+#, no-wrap
+msgid "CMD"
+msgstr "CMD"
+
+#. type: tbl table
+#: ../man/ps.1:1166
+#, no-wrap
+msgid ""
+"see\n"
+"B<args>.\n"
+"(alias\n"
+"B<args>, B<command>)."
+msgstr ""
+"Consultez\n"
+"B<args>\n"
+"(alias\n"
+"B<args>, B<command>)."
+
+#. type: tbl table
+#: ../man/ps.1:1180
+#, fuzzy, no-wrap
+#| msgid ""
+#| "command name (only the executable name). Modifications to the command name\n"
+#| "will not be shown. A process marked E<lt>defunctE<gt> is partly dead, waiting to be\n"
+#| "fully destroyed by its parent. The output in this column may contain spaces.\n"
+#| "(alias\n"
+#| "B<ucmd>, B<ucomm>).\n"
+#| "See also the\n"
+#| "B<args format keyword,>\n"
+#| "the\n"
+#| "B<-f>\n"
+#| "option, and the\n"
+#| "B<c>\n"
+#| "option.\n"
+msgid ""
+"command name (only the executable name). The output in this column may\n"
+"contain spaces.\n"
+"(alias\n"
+"B<ucmd>, B<ucomm>).\n"
+"See also the\n"
+"B<args>\n"
+"format keyword, the\n"
+"B<-f>\n"
+"option, and the\n"
+"B<c>\n"
+"option.\n"
+msgstr ""
+"Nom de la commande (seulement le nom de l'exécutable).\n"
+"Les modifications au nom de la commande ne seront pas montrées.\n"
+"Un processus marqué E<lt>defunctE<gt> est partiellement tué, en attente d'être\n"
+"complètement détruit par son parent.\n"
+"Les éléments de cette colonne peuvent contenir des espaces\n"
+"(alias\n"
+"B<ucmd>,B<\\ ucomm>).\n"
+"Consultez aussi\n"
+"B<paramètres de mots-clés de format>,\n"
+"et les options B<-f>\n"
+"et\n"
+"B<c>.\n"
+
+#. type: tbl table
+#: ../man/ps.1:1194
+#, no-wrap
+msgid ""
+"When specified last, this column will extend to the edge of the display. If\n"
+"B<ps>\n"
+"can not determine display width, as when output is redirected (piped) into a\n"
+"file or another command, the output width is undefined (it may be 80,\n"
+"unlimited, determined by the\n"
+"B<TERM>\n"
+"variable, and so on). The\n"
+"B<COLUMNS>\n"
+"environment variable or\n"
+"B<--cols>\n"
+"option may be used to exactly determine the width in this case. The\n"
+"B<w>\\ orB<\\ -w>\n"
+"option may be also be used to adjust width."
+msgstr ""
+"Lorsque indiquée en dernier, cette colonne sera élargie jusqu'aux bords de l'affichage. Si\n"
+"B<ps>\n"
+"ne peut pas déterminer la largeur de l'affichage, comme quand la sortie est renvoyée\n"
+"(dans un tube, «\\ pipe\\ ») vers un fichier ou une autre commande,\n"
+"la largeur de sortie n'est pas définie\n"
+"(elle peut être de 80\\ caractères,\n"
+"illimitée, déterminée par la variable\n"
+"B<TERM>,\\ etc.)\n"
+"La variable d'environnement\n"
+"B<COLUMNS>\n"
+"ou l'option\n"
+"B<--cols>\n"
+"permettent de déterminer avec exactitude la largeur dans ce cas.\n"
+"Les options\n"
+"B<w> ou B<-w>\n"
+"peuvent également être utilisées pour adapter la largeur."
+
+#. type: tbl table
+#: ../man/ps.1:1196
+#, no-wrap
+msgid "command"
+msgstr "command"
+
+#. type: tbl table
+#: ../man/ps.1:1201
+#, no-wrap
+msgid ""
+"See\n"
+"B<args>.\n"
+"(alias\n"
+"B<args>, B<command>)."
+msgstr ""
+"Consultez\n"
+"B<args>\n"
+"(alias\n"
+"B<args>, B<command>)."
+
+#. type: tbl table
+#: ../man/ps.1:1203
+#, no-wrap
+msgid "cp"
+msgstr "cp"
+
+#. type: tbl table
+#: ../man/ps.1:1203
+#, no-wrap
+msgid "CP"
+msgstr "CP"
+
+#. type: tbl table
+#: ../man/ps.1:1206
+#, no-wrap
+msgid ""
+"per-mill (tenths of a percent) CPU usage. (see\n"
+"B<%cpu>)."
+msgstr ""
+"Utilisation CPU en pour mille (dixième de pour cent) (consultez\n"
+"B<%cpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1208
+#, no-wrap
+msgid "cputime"
+msgstr "cputime"
+
+#. type: tbl table
+#: ../man/ps.1:1211
+#, no-wrap
+msgid ""
+"cumulative CPU time, \"[DD-]hh:mm:ss\" format. (alias\n"
+"B<time>)."
+msgstr ""
+"Temps CPU cumulé, au format «\\ [JJ-]HH:MM:SS\\ » (alias\n"
+"B<time>)."
+
+#. type: tbl table
+#: ../man/ps.1:1213
+#, no-wrap
+msgid "cputimes"
+msgstr "cputimes"
+
+#. type: tbl table
+#: ../man/ps.1:1216
+#, no-wrap
+msgid ""
+"cumulative CPU time in seconds (alias\n"
+"B<times>)."
+msgstr ""
+"Temps CPU cumulé en secondes (alias\n"
+"B<times>)."
+
+#. type: tbl table
+#: ../man/ps.1:1218
+#, fuzzy, no-wrap
+#| msgid "cpu"
+msgid "cuc"
+msgstr "processeur"
+
+#. type: tbl table
+#: ../man/ps.1:1218
+#, no-wrap
+msgid "%CUC"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1226
+#, no-wrap
+msgid ""
+"The CPU utilization of a process, including dead children, in an extended \"##.###\" format.\n"
+"(see also\n"
+"B<%cpu>,\n"
+"B<c>,\n"
+"B<cp>,\n"
+"B<cuu>,\n"
+"B<pcpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1228
+#, fuzzy, no-wrap
+#| msgid "cpu"
+msgid "cuu"
+msgstr "processeur"
+
+#. type: tbl table
+#: ../man/ps.1:1228
+#, no-wrap
+msgid "%CUU"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1236
+#, no-wrap
+msgid ""
+"The CPU utilization of a process in an extended \"##.###\" format.\n"
+"(see also\n"
+"B<%cpu>,\n"
+"B<c>,\n"
+"B<cp>,\n"
+"B<cuc>,\n"
+"B<pcpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1238
+#, no-wrap
+msgid "drs"
+msgstr "drs"
+
+#. type: tbl table
+#: ../man/ps.1:1238
+#, no-wrap
+msgid "DRS"
+msgstr "DRS"
+
+#. type: tbl table
+#: ../man/ps.1:1247
+#, fuzzy, no-wrap
+#| msgid "The amount of private memory I<reserved> by a process. It is also known as the Data Resident Set or DRS. Such memory may not yet be mapped to \\*(MP (RES) but will always be included in the \\*(MV (VIRT) amount."
+msgid ""
+"data resident set size, the amount of private memory I<reserved> by a process.\n"
+"It is also known as DATA. Such memory may not yet be mapped to\n"
+"B<rss>\n"
+"but will always be included\n"
+"included in the\n"
+"B<vsz>\n"
+"amount.\n"
+msgstr "La quantité de mémoire privée I<réservée> par un processus. Elle est également appelée « Data Resident Set » ou DRS. Ce type de mémoire ne peut pas encore être mappée dans la \\*(MP (RES) mais sera toujours incluse dans la quantité de \\*(MV (VIRT)."
+
+#. type: tbl table
+#: ../man/ps.1:1249
+#, no-wrap
+msgid "egid"
+msgstr "egid"
+
+#. type: tbl table
+#: ../man/ps.1:1249
+#, no-wrap
+msgid "EGID"
+msgstr "EGID"
+
+#. type: tbl table
+#: ../man/ps.1:1252
+#, no-wrap
+msgid ""
+"effective group ID number of the process as a decimal integer. (alias\n"
+"B<gid>)."
+msgstr ""
+"Identifiant de groupe effectif (EGID) du processus sous forme d'entier décimal\n"
+"(alias\n"
+"B<gid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1254
+#, no-wrap
+msgid "egroup"
+msgstr "egroup"
+
+#. type: tbl table
+#: ../man/ps.1:1254
+#, no-wrap
+msgid "EGROUP"
+msgstr "EGROUP"
+
+#. type: tbl table
+#: ../man/ps.1:1259
+#, no-wrap
+msgid ""
+"effective group ID of the process. This will be the textual group ID, if it\n"
+"can be obtained and the field width permits, or a decimal representation\n"
+"otherwise. (alias\n"
+"B<group>)."
+msgstr ""
+"Identifiant de groupe effectif (EGID) du processus,\n"
+"au format texte s'il peut être obtenu et que la largeur du champ le permet,\n"
+"sous forme d'entier décimal\n"
+"sinon (alias\n"
+"B<group>)."
+
+#. type: tbl table
+#: ../man/ps.1:1261
+#, no-wrap
+msgid "eip"
+msgstr "eip"
+
+#. type: tbl table
+#: ../man/ps.1:1261
+#, no-wrap
+msgid "EIP"
+msgstr "EIP"
+
+#. type: tbl table
+#: ../man/ps.1:1264
+#, no-wrap
+msgid ""
+"instruction pointer. As of kernel 4.9.xx will be zeroed out unless task is\n"
+"exiting or being core dumped."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1266
+#, no-wrap
+msgid "esp"
+msgstr "esp"
+
+#. type: tbl table
+#: ../man/ps.1:1266
+#, no-wrap
+msgid "ESP"
+msgstr "ESP"
+
+#. type: tbl table
+#: ../man/ps.1:1269
+#, no-wrap
+msgid ""
+"stack pointer. As of kernel 4.9.xx will be zeroed out unless task is\n"
+"exiting or being core dumped."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1273
+#, no-wrap
+msgid "elapsed time since the process was started, in the form [[DD-]hh:]mm:ss."
+msgstr ""
+"Temps écoulé depuis que le processus a été démarré,\n"
+"au format «\\ [[JJ-]HH:]MM:SS\\ »."
+
+#. type: tbl table
+#: ../man/ps.1:1275
+#, no-wrap
+msgid "etimes"
+msgstr "etimes"
+
+#. type: tbl table
+#: ../man/ps.1:1277
+#, no-wrap
+msgid "elapsed time since the process was started, in seconds."
+msgstr "Temps écoulé depuis que le processus a été démarré, en seconde."
+
+#. type: tbl table
+#: ../man/ps.1:1279
+#, no-wrap
+msgid "euid"
+msgstr "euid"
+
+#. type: tbl table
+#: ../man/ps.1:1279
+#, no-wrap
+msgid "EUID"
+msgstr "EUID"
+
+#. type: tbl table
+#: ../man/ps.1:1282
+#, no-wrap
+msgid ""
+"effective user ID (alias\n"
+"B<uid>)."
+msgstr ""
+"Identifiant utilisateur effectif (EUID) (alias\n"
+"B<uid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1284
+#, no-wrap
+msgid "euser"
+msgstr "euser"
+
+#. type: tbl table
+#: ../man/ps.1:1284
+#, no-wrap
+msgid "EUSER"
+msgstr "EUSER"
+
+#. type: tbl table
+#: ../man/ps.1:1290
+#, no-wrap
+msgid ""
+"effective user name. This will be the textual user ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise. The\n"
+"B<n>\n"
+"option can be used to force the decimal representation. (alias\n"
+"B<uname>, B<user>)."
+msgstr ""
+"Nom d'utilisateur effectif, au format texte s'il peut être obtenu\n"
+"et que la largeur du champ le permet,\n"
+"sous forme d'entier décimal sinon.\n"
+"L'option\n"
+"B<n>\n"
+"peut être utilisée\n"
+"pour forcer la représentation décimale (alias\n"
+"B<uname>, B<user>)."
+
+#. type: tbl table
+#: ../man/ps.1:1292
+#, no-wrap
+msgid "exe"
+msgstr "exe"
+
+#. type: tbl table
+#: ../man/ps.1:1292
+#, no-wrap
+msgid "EXE"
+msgstr "EXE"
+
+#. type: tbl table
+#: ../man/ps.1:1298
+#, no-wrap
+msgid ""
+"path to the executable. Useful if path cannot be printed via\n"
+"B<cmd>, B<comm>\n"
+"or\n"
+"B<args>\n"
+"format options."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1300 ../man/ps.1:1319 ../man/ps.1:1326
+#, no-wrap
+msgid "F"
+msgstr "F"
+
+#. type: tbl table
+#: ../man/ps.1:1305
+#, no-wrap
+msgid ""
+"flags associated with the process, see the\n"
+"B<PROCESS FLAGS>\n"
+"section. (alias\n"
+"B<flag>, B<flags>)."
+msgstr ""
+"Indicateur associé au processus, consultez la section\n"
+"B<INDICATEURS DE PROCESSUS>\n"
+"(alias\n"
+"B<flag>, B<flags>)."
+
+#. type: tbl table
+#: ../man/ps.1:1307
+#, no-wrap
+msgid "fgid"
+msgstr "fgid"
+
+#. type: tbl table
+#: ../man/ps.1:1307
+#, no-wrap
+msgid "FGID"
+msgstr "FGID"
+
+#. type: tbl table
+#: ../man/ps.1:1310
+#, no-wrap
+msgid ""
+"filesystem access group\\ ID. (alias\n"
+"B<fsgid>)."
+msgstr ""
+"GID d'accès au système de fichiers (alias\n"
+"B<fsgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1312
+#, no-wrap
+msgid "fgroup"
+msgstr "fgroup"
+
+#. type: tbl table
+#: ../man/ps.1:1312
+#, no-wrap
+msgid "FGROUP"
+msgstr "FGROUP"
+
+#. type: tbl table
+#: ../man/ps.1:1317
+#, no-wrap
+msgid ""
+"filesystem access group ID. This will be the textual group ID, if it can\n"
+"be obtained and the field width permits, or a decimal representation\n"
+"otherwise. (alias\n"
+"B<fsgroup>)."
+msgstr ""
+"GID d'accès au système de fichier, au format texte s'il peut\n"
+"être obtenu et que la largeur du champ le permet,\n"
+"ou sous forme d'entier décimal\n"
+"sinon (alias\n"
+"B<fsgroup>)."
+
+#. type: tbl table
+#: ../man/ps.1:1319
+#, no-wrap
+msgid "flag"
+msgstr "flag"
+
+#. type: tbl table
+#: ../man/ps.1:1324
+#, no-wrap
+msgid ""
+"see\n"
+"B<f>.\n"
+"(alias\n"
+"B<f>, B<flags>)."
+msgstr ""
+"Consultez\n"
+"B<f>\n"
+"(alias\n"
+"B<f>, B<flags>)."
+
+#. type: tbl table
+#: ../man/ps.1:1331
+#, no-wrap
+msgid ""
+"see\n"
+"B<f>.\n"
+"(alias\n"
+"B<f>, B<flag>)."
+msgstr ""
+"Consultez\n"
+"B<f>\n"
+"(alias\n"
+"B<f>, B<flag>)."
+
+#. type: tbl table
+#: ../man/ps.1:1333
+#, no-wrap
+msgid "fname"
+msgstr "fname"
+
+#. type: tbl table
+#: ../man/ps.1:1336
+#, no-wrap
+msgid ""
+"first 8 bytes of the base name of the process's executable file. The output\n"
+"in this column may contain spaces."
+msgstr ""
+"Huit premiers octets du nom de base du fichier exécutable du processus.\n"
+"Les éléments de cette colonne peuvent contenir des espaces."
+
+#. type: tbl table
+#: ../man/ps.1:1338
+#, no-wrap
+msgid "fuid"
+msgstr "fuid"
+
+#. type: tbl table
+#: ../man/ps.1:1338
+#, no-wrap
+msgid "FUID"
+msgstr "FUID"
+
+#. type: tbl table
+#: ../man/ps.1:1341
+#, no-wrap
+msgid ""
+"filesystem access user ID. (alias\n"
+"B<fsuid>)."
+msgstr ""
+"UID d'accès au système de fichier (alias\n"
+"B<fsuid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1343
+#, no-wrap
+msgid "fuser"
+msgstr "fuser"
+
+#. type: tbl table
+#: ../man/ps.1:1343
+#, no-wrap
+msgid "FUSER"
+msgstr "FUSER"
+
+#. type: tbl table
+#: ../man/ps.1:1346
+#, no-wrap
+msgid ""
+"filesystem access user ID. This will be the textual user ID, if it can be\n"
+"obtained and the field width permits, or a decimal representation otherwise."
+msgstr ""
+"UID d'accès au système de fichier,\n"
+"au format texte s'il peut être obtenu et que la largeur du champ le permet,\n"
+"sous forme d'entier décimal sinon."
+
+#. type: tbl table
+#: ../man/ps.1:1348
+#, no-wrap
+msgid "gid"
+msgstr "gid"
+
+#. type: tbl table
+#: ../man/ps.1:1348
+#, no-wrap
+msgid "GID"
+msgstr "GID"
+
+#. type: tbl table
+#: ../man/ps.1:1353
+#, no-wrap
+msgid ""
+"see\n"
+"B<egid>.\n"
+"(alias\n"
+"B<egid>)."
+msgstr ""
+"Consultez\n"
+"B<egid>\n"
+"(alias\n"
+"B<egid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1360
+#, no-wrap
+msgid ""
+"see\n"
+"B<egroup>.\n"
+"(alias\n"
+"B<egroup>)."
+msgstr ""
+"Consultez\n"
+"B<egroup>\n"
+"(alias\n"
+"B<egroup>)."
+
+#. type: tbl table
+#: ../man/ps.1:1362
+#, no-wrap
+msgid "ignored"
+msgstr "ignored"
+
+#. type: tbl table
+#: ../man/ps.1:1362 ../man/ps.1:1693
+#, no-wrap
+msgid "IGNORED"
+msgstr "IGNORED"
+
+#. type: tbl table
+#: ../man/ps.1:1368
+#, fuzzy, no-wrap
+#| msgid ""
+#| "mask of the ignored signals, see\n"
+#| "I<signal>(7).\n"
+#| "According to the width of the field, a 32 or 64 bits mask in hexadecimal\n"
+#| "format is displayed. (alias\n"
+#| "B<sig_ignore>, B<sigignore>)."
+msgid ""
+"mask of the ignored signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64 bits mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_ignore>, B<sigignore>)."
+msgstr ""
+"Masque des signaux ignorés, consultez\n"
+"B<signal>(7).\n"
+"Suivant la largeur du champ, un masque de 32 ou 64\\ bits au format hexadécimal\n"
+"(alias\n"
+"B<sig_ignore>, B<sigignore>)."
+
+#. type: tbl table
+#: ../man/ps.1:1370
+#, no-wrap
+msgid "ipcns"
+msgstr "ipcns"
+
+#. type: tbl table
+#: ../man/ps.1:1370
+#, no-wrap
+msgid "IPCNS"
+msgstr "IPCNS"
+
+#. type: tbl table
+#: ../man/ps.1:1376
+#, no-wrap
+msgid "label"
+msgstr "label"
+
+#. type: tbl table
+#: ../man/ps.1:1376
+#, no-wrap
+msgid "LABEL"
+msgstr "LABEL"
+
+#. type: tbl table
+#: ../man/ps.1:1381
+#, no-wrap
+msgid ""
+"security label, most commonly used for SELinux context data. This is for\n"
+"the\n"
+"I<Mandatory Access Control>\n"
+"(\"MAC\") found on high-security systems."
+msgstr ""
+"Étiquette de sécurité, surtout utilisée en contexte de données SELinux.\n"
+"À destination du\n"
+"I<contrôle d'accès obligatoire>\n"
+"(«\\ I<Mandatory Access Control>\\ » ou «\\ MAC\\ »)\n"
+"trouvé sur les systèmes de haute sécurité."
+
+#. type: tbl table
+#: ../man/ps.1:1383
+#, no-wrap
+msgid "lstart"
+msgstr "lstart"
+
+#. type: tbl table
+#: ../man/ps.1:1383 ../man/ps.1:1729
+#, no-wrap
+msgid "STARTED"
+msgstr "STARTED"
+
+#. type: tbl table
+#: ../man/ps.1:1386
+#, no-wrap
+msgid ""
+"time the command started. This will be in the form \"DDD mmm HH:MM:SS YYY\"\n"
+"unless changed by the B<-D> option."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1388
+#, no-wrap
+msgid "lsession"
+msgstr "lsession"
+
+#. type: tbl table
+#: ../man/ps.1:1388
+#, no-wrap
+msgid "SESSION"
+msgstr "SESSION"
+
+#. type: tbl table
+#: ../man/ps.1:1391
+#, no-wrap
+msgid ""
+"displays the login session identifier of a process,\n"
+"if systemd support has been included."
+msgstr ""
+"Afficher l'identifiant de session d'un processus,\n"
+"si la prise en charge de systemd a été incluse."
+
+#. type: tbl table
+#: ../man/ps.1:1393
+#, no-wrap
+msgid "luid"
+msgstr "luid"
+
+#. type: tbl table
+#: ../man/ps.1:1393
+#, no-wrap
+msgid "LUID"
+msgstr "LUID"
+
+#. type: tbl table
+#: ../man/ps.1:1395
+#, no-wrap
+msgid "displays Login ID associated with a process."
+msgstr "Afficher l’identifiant de session d'un processus."
+
+#. type: tbl table
+#: ../man/ps.1:1397
+#, no-wrap
+msgid "lwp"
+msgstr "lwp"
+
+#. type: tbl table
+#: ../man/ps.1:1397
+#, no-wrap
+msgid "LWP"
+msgstr "LWP"
+
+#. type: tbl table
+#: ../man/ps.1:1403
+#, no-wrap
+msgid ""
+"light weight process (thread) ID of the dispatchable entity (alias\n"
+"B<spid>,B<\\ tid>).\n"
+"See\n"
+"B<tid>\n"
+"for additional information."
+msgstr ""
+"Identifiant de processus léger («\\ light weight process\\ » ou «\\ thread\\ » ) de l'entité distribuable\n"
+"(alias\n"
+"B<spid>, B<tid>).\n"
+"Consultez\n"
+"B<tid>\n"
+"pour plus de renseignements."
+
+#. type: tbl table
+#: ../man/ps.1:1405
+#, no-wrap
+msgid "lxc"
+msgstr "lxc"
+
+#. type: tbl table
+#: ../man/ps.1:1405
+#, no-wrap
+msgid "LXC"
+msgstr "LXC"
+
+#. type: tbl table
+#: ../man/ps.1:1408
+#, no-wrap
+msgid ""
+"The name of the lxc container within which a task is running.\n"
+"If a process is not running inside a container, a dash ('-') will be shown."
+msgstr ""
+"Le nom du conteneur lxc dans lequel une tâche est en cours.\n"
+"Si un processus n'est pas en cours dans un conteneur, un tiret (« - ») sera affiché."
+
+#. type: tbl table
+#: ../man/ps.1:1410
+#, no-wrap
+msgid "machine"
+msgstr "machine"
+
+#. type: tbl table
+#: ../man/ps.1:1410
+#, no-wrap
+msgid "MACHINE"
+msgstr "MACHINE"
+
+#. type: tbl table
+#: ../man/ps.1:1413
+#, no-wrap
+msgid ""
+"displays the machine name for processes assigned to VM or container,\n"
+"if systemd support has been included."
+msgstr ""
+"Afficher le nom de machine pour les processus assignés à une machine virtuelle ou un conteneur\n"
+"si la prise en charge de systemd a été incluse."
+
+#. type: tbl table
+#: ../man/ps.1:1415
+#, no-wrap
+msgid "MAJFLT"
+msgstr "MAJFLT"
+
+#. type: tbl table
+#: ../man/ps.1:1417
+#, no-wrap
+msgid "The number of major page faults that have occurred with this process."
+msgstr "Nombre de défauts de page majeurs survenus avec ce processus."
+
+#. type: tbl table
+#: ../man/ps.1:1419
+#, no-wrap
+msgid "MINFLT"
+msgstr "MINFLT"
+
+#. type: tbl table
+#: ../man/ps.1:1421
+#, no-wrap
+msgid "The number of minor page faults that have occurred with this process."
+msgstr "Nombre de défauts de page mineurs survenus avec ce processus."
+
+#. type: tbl table
+#: ../man/ps.1:1423
+#, no-wrap
+msgid "mntns"
+msgstr "mntns"
+
+#. type: tbl table
+#: ../man/ps.1:1423
+#, no-wrap
+msgid "MNTNS"
+msgstr "MNTNS"
+
+#. type: tbl table
+#: ../man/ps.1:1429
+#, no-wrap
+msgid "netns"
+msgstr "netns"
+
+#. type: tbl table
+#: ../man/ps.1:1429
+#, no-wrap
+msgid "NETNS"
+msgstr "NETNS"
+
+#. type: tbl table
+#: ../man/ps.1:1435
+#, no-wrap
+msgid "ni"
+msgstr "ni"
+
+#. type: tbl table
+#: ../man/ps.1:1441
+#, no-wrap
+msgid ""
+"nice value. This ranges from 19 (nicest) to -20 (not nice to others),\n"
+"see\n"
+"I<nice>(1).\n"
+"(alias\n"
+"B<nice>)."
+msgstr ""
+"Valeur de politesse, comprise entre 19 (la plus polie) à -20 (la moins polie pour les autres),\n"
+"Consultez\n"
+"B<nice>(1)\n"
+"(alias\n"
+"B<nice>)."
+
+#. type: tbl table
+#: ../man/ps.1:1447
+#, no-wrap
+msgid ""
+"see\n"
+"B<ni>.B<(alias>\n"
+"B<ni>)."
+msgstr ""
+"Consultez\n"
+"B<ni> (alias\n"
+"B<ni>)."
+
+#. type: tbl table
+#: ../man/ps.1:1449
+#, no-wrap
+msgid "nlwp"
+msgstr "nlwp"
+
+#. type: tbl table
+#: ../man/ps.1:1449
+#, no-wrap
+msgid "NLWP"
+msgstr "NLWP"
+
+#. type: tbl table
+#: ../man/ps.1:1452
+#, no-wrap
+msgid ""
+"number of lwps (threads) in the process. (alias\n"
+"B<thcount>)."
+msgstr ""
+"Nombre de processus légers (threads) dans le processus (alias\n"
+"B<thcount>)."
+
+#. type: tbl table
+#: ../man/ps.1:1454
+#, no-wrap
+msgid "numa"
+msgstr "numa"
+
+#. type: tbl table
+#: ../man/ps.1:1454
+#, no-wrap
+msgid "NUMA"
+msgstr "NUMA"
+
+#. type: tbl table
+#: ../man/ps.1:1457
+#, no-wrap
+msgid ""
+"The node associated with the most recently used processor.\n"
+"A I<-1> means that NUMA information is unavailable."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1459
+#, no-wrap
+msgid "nwchan"
+msgstr "nwchan"
+
+#. type: tbl table
+#: ../man/ps.1:1459 ../man/ps.1:1950
+#, no-wrap
+msgid "WCHAN"
+msgstr "WCHAN"
+
+#. type: tbl table
+#: ../man/ps.1:1463
+#, fuzzy, no-wrap
+#| msgid ""
+#| "address of the kernel function where the process is sleeping (use\n"
+#| "B<wchan>\n"
+#| "if you want the kernel function name). Running tasks will display a dash\n"
+#| "('-') in this column."
+msgid ""
+"address of the kernel function where the process is sleeping (use\n"
+"B<wchan>\n"
+"if you want the kernel function name)."
+msgstr ""
+"Adresse de la fonction du noyau où le processus est en sommeil (utilisez\n"
+"B<wchan>\n"
+"pour connaître le nom de la fonction du noyau).\n"
+"Un tiret («\\ -\\ ») sera affiché dans cette colonne pour les tâches en cours d'exécution."
+
+#. type: tbl table
+#: ../man/ps.1:1465
+#, no-wrap
+msgid "oom"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1465
+#, no-wrap
+msgid "OOM"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1468
+#, fuzzy, no-wrap
+#| msgid "The value, ranging from 0 to +1000, used to select task(s) to kill when memory is exhausted. Zero translates to `never kill' whereas 1000 means `always kill'."
+msgid ""
+"Out of Memory Score. The value, ranging from 0 to +1000, used to select\n"
+"task(s) to kill when memory is exhausted."
+msgstr "La valeur, entre 0 et +1000, utilisée pour sélectionner la ou les tâches à tuer quand la mémoire est épuisée. Zéro se traduit par « ne jamais tuer » tandis que 1000 signifie « toujours tuer »."
+
+#. type: tbl table
+#: ../man/ps.1:1470
+#, no-wrap
+msgid "oomadj"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1470
+#, no-wrap
+msgid "OOMADJ"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1474
+#, fuzzy, no-wrap
+#| msgid "The value, ranging from -1000 to +1000, added to the current out of memory score (OOMs) which is then used to determine which task to kill when memory is exhausted."
+msgid ""
+"Out of Memory Adjustment Factor. The value is added to the current out of\n"
+"memory score which is then used to determine which task to kill when memory\n"
+"is exhausted."
+msgstr "La valeur, entre -1000 et +1000, ajoutée au score actuel d'insuffisance de mémoire (OOMs) qui est ensuite utilisé pour déterminer quelle tâche tuer quand la mémoire est épuisée."
+
+#. type: tbl table
+#: ../man/ps.1:1476
+#, no-wrap
+msgid "ouid"
+msgstr "ouid"
+
+#. type: tbl table
+#: ../man/ps.1:1476
+#, no-wrap
+msgid "OWNER"
+msgstr "OWNER"
+
+#. type: tbl table
+#: ../man/ps.1:1479
+#, no-wrap
+msgid ""
+"displays the Unix user identifier of the owner of the session of a process,\n"
+"if systemd support has been included."
+msgstr ""
+"Identifiant utilisateur UNIX du propriétaire de la session d'un processus\n"
+"si la prise en charge de systemd a été incluse."
+
+#. type: tbl table
+#: ../man/ps.1:1486
+#, no-wrap
+msgid ""
+"see\n"
+"B<%cpu>.\n"
+"(alias\n"
+"B<%cpu>)."
+msgstr ""
+"Consultez\n"
+"B<%cpu>\n"
+"(alias\n"
+"B<%cpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1488
+#, no-wrap
+msgid "pending"
+msgstr "pending"
+
+#. type: tbl table
+#: ../man/ps.1:1488 ../man/ps.1:1679
+#, no-wrap
+msgid "PENDING"
+msgstr "PENDING"
+
+#. type: tbl table
+#: ../man/ps.1:1500
+#, fuzzy, no-wrap
+#| msgid ""
+#| "mask of the pending signals. See\n"
+#| "I<signal>(7).\n"
+#| "Signals pending on the process are distinct from signals pending on\n"
+#| "individual threads. Use the\n"
+#| "B<m>\n"
+#| "option or the\n"
+#| "B<-m>\n"
+#| "option to see both. According to the width of the field, a 32 or 64 bits\n"
+#| "mask in hexadecimal format is displayed. (alias\n"
+#| "B<sig>)."
+msgid ""
+"mask of the pending signals. See\n"
+"I<signal>(7).\n"
+"Signals pending on the process are distinct from signals pending on\n"
+"individual threads. Use the\n"
+"B<m>\n"
+"option or the\n"
+"B<-m>\n"
+"option to see both. According to the width of the field, a 32 or 64 bits\n"
+"mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig>)."
+msgstr ""
+"Masque des signaux en attente, consultez\n"
+"B<signal>(7).\n"
+"Les signaux en attente du processus sont différents des signaux en attente de processus légers individuels.\n"
+"Utilisez l'option\n"
+"B<m>\n"
+"ou l'option\n"
+"B<-m>\n"
+"pour voir les deux.\n"
+"Suivant la largeur du champ,\n"
+"un masque de 32 ou 64\\ bits au format hexadécimal est affiché (alias\n"
+"B<sig>)."
+
+#. type: tbl table
+#: ../man/ps.1:1506
+#, no-wrap
+msgid ""
+"process group ID or, equivalently, the process ID of the process group\n"
+"leader. (alias\n"
+"B<pgrp>)."
+msgstr ""
+"Identifiant du processus (PID) ou, de manière équivalente,\n"
+"le PID du meneur\n"
+"du groupe (alias\n"
+"B<pgrp>)."
+
+#. type: tbl table
+#: ../man/ps.1:1508
+#, no-wrap
+msgid "PGRP"
+msgstr "PGRP"
+
+#. type: tbl table
+#: ../man/ps.1:1513
+#, no-wrap
+msgid ""
+"see\n"
+"B<pgid>.\n"
+"(alias\n"
+"B<pgid>)."
+msgstr ""
+"Consultez\n"
+"B<pgid>\n"
+"(alias\n"
+"B<pgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1518
+#, no-wrap
+msgid ""
+"a number representing the process ID (alias\n"
+"B<tgid>)."
+msgstr ""
+"Un nombre représentant l'identifiant de processus (alias\n"
+"B<tgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1520
+#, no-wrap
+msgid "pidns"
+msgstr "pidns"
+
+#. type: tbl table
+#: ../man/ps.1:1520
+#, no-wrap
+msgid "PIDNS"
+msgstr "PIDNS"
+
+#. type: tbl table
+#: ../man/ps.1:1526
+#, no-wrap
+msgid "pmem"
+msgstr "pmem"
+
+#. type: tbl table
+#: ../man/ps.1:1531
+#, no-wrap
+msgid ""
+"see\n"
+"B<%mem>.\n"
+"(alias\n"
+"B<%mem>)."
+msgstr ""
+"Consultez\n"
+"B<%mem>\n"
+"(alias\n"
+"B<%mem>)."
+
+#. type: tbl table
+#: ../man/ps.1:1533
+#, no-wrap
+msgid "policy"
+msgstr "policy"
+
+#. type: tbl table
+#: ../man/ps.1:1533
+#, no-wrap
+msgid "POL"
+msgstr "POL"
+
+#. type: tbl table
+#: ../man/ps.1:1537
+#, no-wrap
+msgid ""
+"scheduling class of the process. (alias\n"
+"B<class>, B<cls>).\n"
+"Possible values are:\n"
+msgstr ""
+"Classe d’ordonnancement du processus (alias\n"
+"B<class>,B<\\ cls>).\n"
+"Les valeurs possibles sont\\ :\n"
+
+#. type: tbl table
+#: ../man/ps.1:1561
+#, no-wrap
+msgid "parent process ID."
+msgstr "PID du processus parent."
+
+#. type: tbl table
+#: ../man/ps.1:1563
+#, no-wrap
+msgid "pri"
+msgstr "pri"
+
+#. type: tbl table
+#: ../man/ps.1:1563
+#, no-wrap
+msgid "PRI"
+msgstr "PRI"
+
+#. type: tbl table
+#: ../man/ps.1:1565
+#, fuzzy, no-wrap
+#| msgid "priority of the process. Higher number means lower priority."
+msgid "priority of the process. Higher number means higher priority."
+msgstr "Priorité du processus. Plus le nombre est grand, plus la priorité est basse."
+
+#. type: tbl table
+#: ../man/ps.1:1567
+#, no-wrap
+msgid "psr"
+msgstr "psr"
+
+#. type: tbl table
+#: ../man/ps.1:1567
+#, no-wrap
+msgid "PSR"
+msgstr "PSR"
+
+#. type: tbl table
+#: ../man/ps.1:1569
+#, fuzzy, no-wrap
+#| msgid "processor that process is currently assigned to."
+msgid "processor that process last executed on."
+msgstr "Processeur auquel ce processus est actuellement assigné."
+
+#. type: tbl table
+#: ../man/ps.1:1571
+#, fuzzy, no-wrap
+#| msgid "rss"
+msgid "pss"
+msgstr "rss"
+
+#. type: tbl table
+#: ../man/ps.1:1571
+#, fuzzy, no-wrap
+#| msgid "PS"
+msgid "PSS"
+msgstr "PS"
+
+#. type: tbl table
+#: ../man/ps.1:1574
+#, no-wrap
+msgid ""
+"Proportional share size, the non-swapped physical memory, with shared memory\n"
+"proportionally accounted to all tasks mapping it."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1576
+#, no-wrap
+msgid "rbytes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1576
+#, no-wrap
+msgid "RBYTES"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1578
+#, no-wrap
+msgid "Number of bytes which this process really did cause to be fetched from the storage layer."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1580
+#, no-wrap
+msgid "rchars"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1580
+#, no-wrap
+msgid "RCHARS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1582
+#, no-wrap
+msgid "Number of bytes which this task has caused to be read from storage."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1584
+#, no-wrap
+msgid "rgid"
+msgstr "rgid"
+
+#. type: tbl table
+#: ../man/ps.1:1584
+#, no-wrap
+msgid "RGID"
+msgstr "RGID"
+
+#. type: tbl table
+#: ../man/ps.1:1586
+#, no-wrap
+msgid "real group ID."
+msgstr "Identifiant de groupe réel (RGID)."
+
+#. type: tbl table
+#: ../man/ps.1:1591
+#, no-wrap
+msgid ""
+"real group name. This will be the textual group ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise."
+msgstr ""
+"Identifiant de groupe réel, au format texte s'il peut être obtenu et\n"
+"que la largeur du champ le permet, sous forme d'entier décimal sinon."
+
+#. type: tbl table
+#: ../man/ps.1:1593
+#, no-wrap
+msgid "rops"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1593
+#, no-wrap
+msgid "ROPS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1596
+#, no-wrap
+msgid ""
+"Number of read I/O operations—that is, system calls such as\n"
+"B<read>(2) and B<pread>(2)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1598 ../man/ps.1:1604
+#, no-wrap
+msgid "RSS"
+msgstr "RSS"
+
+#. type: tbl table
+#: ../man/ps.1:1602
+#, no-wrap
+msgid ""
+"resident set size, the non-swapped physical memory that a task has used (in\n"
+"kilobytes). (alias\n"
+"B<rssize>, B<rsz>)."
+msgstr ""
+"Taille de mémoire résidente («\\ resident set size\\ » ou RSS),\n"
+"la mémoire physique non transférée vers l'espace d'échange (swap)\n"
+"qu'une tâche a utilisée (en kilooctets) (alias\n"
+"B<rssize>, B<rsz>)."
+
+#. type: tbl table
+#: ../man/ps.1:1604
+#, no-wrap
+msgid "rssize"
+msgstr "rssize"
+
+#. type: tbl table
+#: ../man/ps.1:1609
+#, no-wrap
+msgid ""
+"see\n"
+"B<rss>.\n"
+"(alias\n"
+"B<rss>, B<rsz>)."
+msgstr ""
+"Consultez\n"
+"B<rss>\n"
+"(alias\n"
+"B<rss>, B<rsz>)."
+
+#. type: tbl table
+#: ../man/ps.1:1611
+#, no-wrap
+msgid "rsz"
+msgstr "rsz"
+
+#. type: tbl table
+#: ../man/ps.1:1611
+#, no-wrap
+msgid "RSZ"
+msgstr "RSZ"
+
+#. type: tbl table
+#: ../man/ps.1:1616
+#, no-wrap
+msgid ""
+"see\n"
+"B<rss>.\n"
+"(alias\n"
+"B<rss>, B<rssize>)."
+msgstr ""
+"Consultez\n"
+"B<rss>\n"
+"(alias\n"
+"B<rss>, B<rssize>)."
+
+#. type: tbl table
+#: ../man/ps.1:1618
+#, no-wrap
+msgid "rtprio"
+msgstr "rtprio"
+
+#. type: tbl table
+#: ../man/ps.1:1618
+#, no-wrap
+msgid "RTPRIO"
+msgstr "RTPRIO"
+
+#. type: tbl table
+#: ../man/ps.1:1620
+#, no-wrap
+msgid "realtime priority."
+msgstr "Priorité temps réel («\\ realtime\\ »)."
+
+#. type: tbl table
+#: ../man/ps.1:1622
+#, no-wrap
+msgid "ruid"
+msgstr "ruid"
+
+#. type: tbl table
+#: ../man/ps.1:1622
+#, no-wrap
+msgid "RUID"
+msgstr "RUID"
+
+#. type: tbl table
+#: ../man/ps.1:1624
+#, no-wrap
+msgid "real user ID."
+msgstr "Identifiant d'utilisateur réel (RUID)."
+
+#. type: tbl table
+#: ../man/ps.1:1629
+#, no-wrap
+msgid ""
+"real user ID. This will be the textual user ID, if it can be obtained and\n"
+"the field width permits, or a decimal representation otherwise."
+msgstr ""
+"Identifiant d'utilisateur réel (RUID),au format texte\n"
+"s'il peut être obtenu et que la largeur du champ le permet,\n"
+"sous forme d'entier décimal sinon."
+
+#. type: tbl table
+#: ../man/ps.1:1638
+#, no-wrap
+msgid ""
+"minimal state display (one character). See section\n"
+"B<PROCESS STATE CODES>\n"
+"for the different values. See also\n"
+"B<stat>\n"
+"if you want additional information displayed. (alias\n"
+"B<state>)."
+msgstr ""
+"Affichage d'état minimal (un caractère).\n"
+"Consultez la section\n"
+"B<CODES D'ÉTAT DE PROCESSUS>\n"
+"pour la signification des différentes valeurs.\n"
+"Consultez aussi\n"
+"B<stat>\n"
+"pour l'affichage de renseignements supplémentaires\n"
+"(alias\n"
+"B<state>)."
+
+#. type: tbl table
+#: ../man/ps.1:1640
+#, no-wrap
+msgid "sched"
+msgstr "sched"
+
+#. type: tbl table
+#: ../man/ps.1:1640
+#, no-wrap
+msgid "SCH"
+msgstr "SCH"
+
+#. type: tbl table
+#: ../man/ps.1:1644
+#, no-wrap
+msgid ""
+"scheduling policy of the process. The policies SCHED_OTHER (SCHED_NORMAL),\n"
+"SCHED_FIFO, SCHED_RR, SCHED_BATCH, SCHED_ISO, SCHED_IDLE and SCHED_DEADLINE are\n"
+"respectively displayed as 0, 1, 2, 3, 4, 5 and 6."
+msgstr ""
+"Ordonnancement de la politique du processus. Les politiques SCHED_OTHER (SCHED_NORMAL),\n"
+"SCHED_FIFO, SCHED_RR, SCHED_BATCH, SCHED_ISO et SCHED_IDLE sont respectivement\n"
+"affichées comme 0, 1, 2, 3, 4 et 5."
+
+#. type: tbl table
+#: ../man/ps.1:1646
+#, no-wrap
+msgid "seat"
+msgstr "seat"
+
+#. type: tbl table
+#: ../man/ps.1:1646
+#, no-wrap
+msgid "SEAT"
+msgstr "SEAT"
+
+#. type: tbl table
+#: ../man/ps.1:1650
+#, no-wrap
+msgid ""
+"displays the identifier associated with all hardware devices assigned\n"
+"to a specific workplace,\n"
+"if systemd support has been included."
+msgstr ""
+"Afficher l'identifiant associé à tous les périphériques ayant un\n"
+"emplacement de travail précis,\n"
+"si la prise en charge de systemd a été incluse."
+
+#. type: tbl table
+#: ../man/ps.1:1652
+#, no-wrap
+msgid "sess"
+msgstr "sess"
+
+#. type: tbl table
+#: ../man/ps.1:1652
+#, no-wrap
+msgid "SESS"
+msgstr "SESS"
+
+#. type: tbl table
+#: ../man/ps.1:1655
+#, no-wrap
+msgid ""
+"session ID or, equivalently, the process ID of the session leader. (alias\n"
+"B<session>, B<sid>)."
+msgstr ""
+"Identifiant de session ou, de manière équivalente, le PID du meneur de session\n"
+"(alias\n"
+"B<session>, B<sid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1657
+#, no-wrap
+msgid "sgi_p"
+msgstr "sgi_p"
+
+#. type: tbl table
+#: ../man/ps.1:1660
+#, no-wrap
+msgid ""
+"processor that the process is currently executing on. Displays \"*\" if the\n"
+"process is not currently running or runnable."
+msgstr ""
+"Processeur sur lequel le processus est actuellement exécuté.\n"
+"Afficher «\\ *\\ » si le processus ne s'exécute pas ou ne peut pas s'exécuter."
+
+#. type: tbl table
+#: ../man/ps.1:1662
+#, no-wrap
+msgid "sgid"
+msgstr "sgid"
+
+#. type: tbl table
+#: ../man/ps.1:1662
+#, no-wrap
+msgid "SGID"
+msgstr "SGID"
+
+#. type: tbl table
+#: ../man/ps.1:1665
+#, no-wrap
+msgid ""
+"saved group ID. (alias\n"
+"B<svgid>)."
+msgstr ""
+"Identifiant de groupe (GID) sauvegardé\n"
+"(alias\n"
+"B<svgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1667
+#, no-wrap
+msgid "sgroup"
+msgstr "sgroup"
+
+#. type: tbl table
+#: ../man/ps.1:1667
+#, no-wrap
+msgid "SGROUP"
+msgstr "SGROUP"
+
+#. type: tbl table
+#: ../man/ps.1:1670
+#, no-wrap
+msgid ""
+"saved group name. This will be the textual group ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise."
+msgstr ""
+"Nom de groupe sauvegardé,\n"
+"au format texte s'il peut être obtenu\n"
+"et que la largeur du champ le permet,\n"
+"sous forme d'entier décimal sinon."
+
+#. type: tbl table
+#: ../man/ps.1:1672
+#, no-wrap
+msgid "sid"
+msgstr "sid"
+
+#. type: tbl table
+#: ../man/ps.1:1672
+#, no-wrap
+msgid "SID"
+msgstr "SID"
+
+#. type: tbl table
+#: ../man/ps.1:1677
+#, no-wrap
+msgid ""
+"see\n"
+"B<sess>.\n"
+"(alias\n"
+"B<sess>, B<session>)."
+msgstr ""
+"Consultez\n"
+"B<sess>\n"
+"(alias\n"
+"B<sess>, B<session>)."
+
+#. type: tbl table
+#: ../man/ps.1:1679
+#, no-wrap
+msgid "sig"
+msgstr "sig"
+
+#. type: tbl table
+#: ../man/ps.1:1684
+#, no-wrap
+msgid ""
+"see\n"
+"B<pending>.\n"
+"(alias\n"
+"B<pending>, B<sig_pend>)."
+msgstr ""
+"Consultez\n"
+"B<pending>\n"
+"(alias\n"
+"B<pending>, B<sig_pend>)."
+
+#. type: tbl table
+#: ../man/ps.1:1686
+#, no-wrap
+msgid "sigcatch"
+msgstr "sigcatch"
+
+#. type: tbl table
+#: ../man/ps.1:1691
+#, no-wrap
+msgid ""
+"see\n"
+"B<caught>.\n"
+"(alias\n"
+"B<caught>, B<sig_catch>)."
+msgstr ""
+"Consultez\n"
+"B<caught>\n"
+"(alias\n"
+"B<caught>, B<sig_catch>)."
+
+#. type: tbl table
+#: ../man/ps.1:1693
+#, no-wrap
+msgid "sigignore"
+msgstr "sigignore"
+
+#. type: tbl table
+#: ../man/ps.1:1698
+#, no-wrap
+msgid ""
+"see\n"
+"B<ignored>.\n"
+"(alias\n"
+"B<ignored>, B<sig_ignore>)."
+msgstr ""
+"Consultez\n"
+"B<ignored>\n"
+"(alias\n"
+"B<ignored>, B<sig_ignore>)."
+
+#. type: tbl table
+#: ../man/ps.1:1700
+#, no-wrap
+msgid "sigmask"
+msgstr "sigmask"
+
+#. type: tbl table
+#: ../man/ps.1:1705
+#, no-wrap
+msgid ""
+"see\n"
+"B<blocked>.\n"
+"(alias\n"
+"B<blocked>, B<sig_block>)."
+msgstr ""
+"Consultez\n"
+"B<blocked>\n"
+"(alias\n"
+"B<blocked>, B<sig_block>)."
+
+#. type: tbl table
+#: ../man/ps.1:1707
+#, no-wrap
+msgid "SIZE"
+msgstr "SIZE"
+
+#. type: tbl table
+#: ../man/ps.1:1711
+#, no-wrap
+msgid ""
+"approximate amount of swap space that would be required if the process were\n"
+"to dirty all writable pages and then be swapped out. This number is very\n"
+"rough!"
+msgstr ""
+"Montant approximatif d'espace d'échange qui serait nécessaire\n"
+"si le processus s'apprêtait à modifier («\\ dirty\\ ») toutes les\n"
+"pages accessibles en écriture puis se transférait sur l'espace\n"
+"d'échange («\\ swap\\ »). Ce nombre est très approximatif\\ !"
+
+#. type: tbl table
+#: ../man/ps.1:1713
+#, no-wrap
+msgid "slice"
+msgstr "slice"
+
+#. type: tbl table
+#: ../man/ps.1:1713
+#, no-wrap
+msgid "SLICE"
+msgstr "SLICE"
+
+#. type: tbl table
+#: ../man/ps.1:1716
+#, no-wrap
+msgid ""
+"displays the slice unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr ""
+"Unité « slice » à laquelle appartient le processus\n"
+"si la prise en charge de systemd a été incluse."
+
+#. type: tbl table
+#: ../man/ps.1:1718
+#, no-wrap
+msgid "spid"
+msgstr "spid"
+
+#. type: tbl table
+#: ../man/ps.1:1718
+#, no-wrap
+msgid "SPID"
+msgstr "SPID"
+
+#. type: tbl table
+#: ../man/ps.1:1723
+#, no-wrap
+msgid ""
+"see\n"
+"B<lwp>.\n"
+"(alias\n"
+"B<lwp>, B<tid>)."
+msgstr ""
+"Consultez\n"
+"B<lwp>\n"
+"(alias\n"
+"B<lwp>, B<tid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1725
+#, no-wrap
+msgid "stackp"
+msgstr "stackp"
+
+#. type: tbl table
+#: ../man/ps.1:1725
+#, no-wrap
+msgid "STACKP"
+msgstr "STACKP"
+
+#. type: tbl table
+#: ../man/ps.1:1727
+#, no-wrap
+msgid "address of the bottom (start) of stack for the process."
+msgstr "Adresse du bas (début) de la pile pour le processus."
+
+#. type: tbl table
+#: ../man/ps.1:1729
+#, no-wrap
+msgid "start"
+msgstr "start"
+
+#. type: tbl table
+#: ../man/ps.1:1734
+#, fuzzy, no-wrap
+#| msgid ""
+#| "time the command started. If the process was started less than 24 hours ago,\n"
+#| "the output format is \"HH:MM:SS\", else it is \"\\ \\ Mmm\\ dd\" (where Mmm is a\n"
+#| "three-letter month name). See also\n"
+#| "B<lstart>, B<bsdstart>, B<start_time>, and B<stime>."
+msgid ""
+"time the command started. If the process was started less than 24 hours ago,\n"
+"the output format is \"HH:MM:SS\", else it is \"\\ \\ Mmm\\ dd\" (where Mmm is a\n"
+"three-letter month name). See also\n"
+"B<bsdstart>, B<start>, B<start_time>, and B<stime>."
+msgstr ""
+"Heure de démarrage du processus. Si le processus a été démarré dans les\n"
+"dernières 24\\ heures, le format de sortie est «\\ HH:MM:SS\\ »,\n"
+"sinon il est «\\ \\ Mmm\\ JJ\\ » (où «\\ Mmm\\ » sont les trois\n"
+"premières lettres du mois, en anglais). Consultez aussi\n"
+"B<lstart>, B<bsdstart>, B<start_time> et B<stime>."
+
+#. type: tbl table
+#: ../man/ps.1:1743
+#, no-wrap
+msgid ""
+"starting time or date of the process. Only the year will be displayed if the\n"
+"process was not started the same year\n"
+"B<ps>\n"
+"was invoked, or \"MmmDD\" if it was not started the same day, or \"HH:MM\"\n"
+"otherwise. See also\n"
+"B<bsdstart>, B<start>, B<lstart>, and B<stime>."
+msgstr ""
+"Heure ou date de démarrage du processus.\n"
+"Seule l'année est affichée si le processus n'a pas été\n"
+"démarré la même année que\n"
+"B<ps>\n"
+"a été appelé,\n"
+"«\\ MmmDD\\ » s'il n'a pas été démarré le même jour\n"
+"ou «\\ HH:MM\\ » sinon.\n"
+"Consultez aussi\n"
+"B<bsdstart>, B<start>, B<lstart> et B<stime>."
+
+#. type: tbl table
+#: ../man/ps.1:1745
+#, no-wrap
+msgid "stat"
+msgstr "stat"
+
+#. type: tbl table
+#: ../man/ps.1:1745
+#, no-wrap
+msgid "STAT"
+msgstr "STAT"
+
+#. type: tbl table
+#: ../man/ps.1:1751
+#, no-wrap
+msgid ""
+"multi-character process state. See section\n"
+"B<PROCESS STATE CODES>\n"
+"for the different values meaning. See also\n"
+"B<s>\\ andB<\\ state>\n"
+"if you just want the first character displayed."
+msgstr ""
+"État multicaractère du processus.\n"
+"Consultez la section\n"
+"B<CODES D'ÉTAT DE PROCESSUS>\n"
+"pour la signification des différentes valeurs.\n"
+"Consultez aussi\n"
+"B<s> et B<state>\n"
+"pour l'affichage du premier caractère seulement."
+
+#. type: tbl table
+#: ../man/ps.1:1753
+#, no-wrap
+msgid "state"
+msgstr "state"
+
+#. type: tbl table
+#: ../man/ps.1:1756
+#, no-wrap
+msgid ""
+"see\n"
+"B<s>.\\& (aliasB<\\ s>)."
+msgstr ""
+"Consultez\n"
+"B<s>.\\& (aliasB<\\ s>)."
+
+#. type: tbl table
+#: ../man/ps.1:1758
+#, no-wrap
+msgid "stime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1758
+#, no-wrap
+msgid "STIME"
+msgstr "STIME"
+
+#. type: tbl table
+#: ../man/ps.1:1760
+#, no-wrap
+msgid "see B<start_time>. (alias B<start_time>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1762
+#, no-wrap
+msgid "suid"
+msgstr "suid"
+
+#. type: tbl table
+#: ../man/ps.1:1762
+#, no-wrap
+msgid "SUID"
+msgstr "SUID"
+
+#. type: tbl table
+#: ../man/ps.1:1765
+#, no-wrap
+msgid ""
+"saved user ID. (alias\n"
+"B<svuid>)."
+msgstr ""
+"Identifiant utilisateur (UID) sauvegardé (alias\n"
+"B<svuid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1767
+#, no-wrap
+msgid "supgid"
+msgstr "supgid"
+
+#. type: tbl table
+#: ../man/ps.1:1767
+#, no-wrap
+msgid "SUPGID"
+msgstr "SUPGID"
+
+#. type: tbl table
+#: ../man/ps.1:1770
+#, no-wrap
+msgid ""
+"group ids of supplementary groups, if any. See\n"
+"B<getgroups>(2)."
+msgstr ""
+"GID des groupes additionnels, s'il y en a.\n"
+"Consultez\n"
+"B<getgroups>(2)."
+
+#. type: tbl table
+#: ../man/ps.1:1772
+#, no-wrap
+msgid "supgrp"
+msgstr "supgrp"
+
+#. type: tbl table
+#: ../man/ps.1:1772
+#, no-wrap
+msgid "SUPGRP"
+msgstr "SUPGRP"
+
+#. type: tbl table
+#: ../man/ps.1:1775
+#, no-wrap
+msgid ""
+"group names of supplementary groups, if any. See\n"
+"B<getgroups>(2)."
+msgstr ""
+"Noms des groupes additionnels, s'il y en a.\n"
+"Consultez\n"
+"B<getgroups>(2)."
+
+#. type: tbl table
+#: ../man/ps.1:1777
+#, no-wrap
+msgid "suser"
+msgstr "suser"
+
+#. type: tbl table
+#: ../man/ps.1:1777
+#, no-wrap
+msgid "SUSER"
+msgstr "SUSER"
+
+#. type: tbl table
+#: ../man/ps.1:1781
+#, no-wrap
+msgid ""
+"saved user name. This will be the textual user ID, if it can be obtained and\n"
+"the field width permits, or a decimal representation otherwise. (alias\n"
+"B<svuser>)."
+msgstr ""
+"Nom d'utilisateur sauvegardé, au format texte s'il peut\n"
+"être obtenu et que la largeur du champ le permet,\n"
+"sous forme d'entier décimal sinon. (alias\n"
+"B<svuser>)."
+
+#. type: tbl table
+#: ../man/ps.1:1783
+#, no-wrap
+msgid "svgid"
+msgstr "svgid"
+
+#. type: tbl table
+#: ../man/ps.1:1783
+#, no-wrap
+msgid "SVGID"
+msgstr "SVGID"
+
+#. type: tbl table
+#: ../man/ps.1:1788
+#, no-wrap
+msgid ""
+"see\n"
+"B<sgid>.\n"
+"(alias\n"
+"B<sgid>)."
+msgstr ""
+"Consultez\n"
+"B<sgid>\n"
+"(alias\n"
+"B<sgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1790
+#, no-wrap
+msgid "svuid"
+msgstr "svuid"
+
+#. type: tbl table
+#: ../man/ps.1:1790
+#, no-wrap
+msgid "SVUID"
+msgstr "SVUID"
+
+#. type: tbl table
+#: ../man/ps.1:1795
+#, no-wrap
+msgid ""
+"see\n"
+"B<suid>.\n"
+"(alias\n"
+"B<suid>)."
+msgstr ""
+"Consultez\n"
+"B<suid>\n"
+"(alias\n"
+"B<suid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1797
+#, no-wrap
+msgid "sz"
+msgstr "sz"
+
+#. type: tbl table
+#: ../man/ps.1:1797
+#, no-wrap
+msgid "SZ"
+msgstr "SZ"
+
+#. type: tbl table
+#: ../man/ps.1:1802
+#, no-wrap
+msgid ""
+"size in physical pages of the core image of the process. This includes text,\n"
+"data, and stack space. Device mappings are currently excluded; this is\n"
+"subject to change. See\n"
+"B<vsz>\\ andB<\\ rss>."
+msgstr ""
+"Taille en pages physiques de l'image du noyau du processus,\n"
+"incluant le texte, les données et l'espace de la pile.\n"
+"Les correspondances («\\ mappings\\ ») de périphériques sont\n"
+"actuellement ignorées, mais cela pourrait changer.\n"
+"Consultez\n"
+"B<vsz> etB<\\ rss>."
+
+#. type: tbl table
+#: ../man/ps.1:1804
+#, no-wrap
+msgid "tgid"
+msgstr "tgid"
+
+#. type: tbl table
+#: ../man/ps.1:1804
+#, no-wrap
+msgid "TGID"
+msgstr "TGID"
+
+#. type: tbl table
+#: ../man/ps.1:1808
+#, no-wrap
+msgid ""
+"a number representing the thread group to which a task belongs (alias\n"
+"B<pid>).\n"
+"It is the process ID of the thread group leader."
+msgstr ""
+"Un nombre représentant le groupe de processus légers auquel une tâche appartient,\n"
+"(alias\n"
+"B<pid>).\n"
+"C'est l'identifiant de processus du meneur de groupe de processus légers."
+
+#. type: tbl table
+#: ../man/ps.1:1810
+#, no-wrap
+msgid "thcount"
+msgstr "thcount"
+
+#. type: tbl table
+#: ../man/ps.1:1810
+#, no-wrap
+msgid "THCNT"
+msgstr "THCNT"
+
+#. type: tbl table
+#: ../man/ps.1:1816
+#, no-wrap
+msgid ""
+"see\n"
+"B<nlwp>.\n"
+"(alias\n"
+"B<nlwp>).\n"
+"number of kernel threads owned by the process."
+msgstr ""
+"Consultez\n"
+"B<nlwp>\n"
+"(alias\n"
+"B<nlwp>).\n"
+"Nombre de processus légers du noyau (thread) appartenant au processus."
+
+#. type: tbl table
+#: ../man/ps.1:1818
+#, no-wrap
+msgid "tid"
+msgstr "tid"
+
+#. type: tbl table
+#: ../man/ps.1:1818
+#, no-wrap
+msgid "TID"
+msgstr "TID"
+
+#. type: tbl table
+#: ../man/ps.1:1825
+#, fuzzy, no-wrap
+#| msgid ""
+#| "the unique number representing a dispatchable entity (alias\n"
+#| "B<lwp>, B<spid>).\n"
+#| "This value may also appear as: a process ID (pid); a process group ID (pgrp);\n"
+#| "a session ID for the session leader (sid); a thread group ID for the thread\n"
+#| "group leader (tgid); and a tty process group ID for the process group leader\n"
+#| "(tpgid)."
+msgid ""
+"the unique number representing a dispatchable entity (alias\n"
+"B<spid>, B<tid>).\n"
+"This value may also appear as: a process ID (pid); a process group ID (pgrp);\n"
+"a session ID for the session leader (sid); a thread group ID for the thread\n"
+"group leader (tgid); and a tty process group ID for the process group leader\n"
+"(tpgid)."
+msgstr ""
+"Le nombre unique représentant l'identifiant d'une entité distribuable\n"
+"(alias\n"
+"B<lwp>,\\ B<spid>).\n"
+"Cette valeur peut aussi apparaître en tant qu'identifiant de processus (pid),\n"
+"identifiant de groupe de processus (pgrp),\n"
+"identifiant de session du meneur de session (sid),\n"
+"identifiant de groupe de processus légers du meneur de processus légers (tgid)\n"
+"et identifiant du groupe de processus du meneur de groupe de processus\n"
+"(tpgid)."
+
+#. type: tbl table
+#: ../man/ps.1:1830
+#, no-wrap
+msgid ""
+"cumulative CPU\\ time, \"[DD-]HH:MM:SS\" format. (alias\n"
+"B<cputime>)."
+msgstr ""
+"Temps CPU cumulé, au format «\\ [JJ-]HH:MM:SS\\ » (alias\n"
+"B<cputime>)."
+
+#. type: tbl table
+#: ../man/ps.1:1832
+#, fuzzy, no-wrap
+#| msgid "times"
+msgid "timens"
+msgstr "times"
+
+# Nom de la commande time.2
+#. type: tbl table
+#: ../man/ps.1:1832
+#, fuzzy, no-wrap
+#| msgid "TIME"
+msgid "TIMENS"
+msgstr "TIME"
+
+#. type: tbl table
+#: ../man/ps.1:1838
+#, no-wrap
+msgid "times"
+msgstr "times"
+
+#. type: tbl table
+#: ../man/ps.1:1841
+#, no-wrap
+msgid ""
+"cumulative CPU\\ time in seconds (alias\n"
+"B<cputimes>)."
+msgstr ""
+"Temps CPU cumulé, en seconde (alias\n"
+"B<cputime>)."
+
+#. type: tbl table
+#: ../man/ps.1:1843
+#, no-wrap
+msgid "tname"
+msgstr "tname"
+
+#. type: tbl table
+#: ../man/ps.1:1846
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tt>, B<tty>)."
+msgstr ""
+"tty (terminal) de contrôle\n"
+"(alias\n"
+"B<tt>, B<tty>).n"
+
+#. type: tbl table
+#: ../man/ps.1:1848
+#, no-wrap
+msgid "TPGID"
+msgstr "TPGID"
+
+#. type: tbl table
+#: ../man/ps.1:1851
+#, no-wrap
+msgid ""
+"ID of the foreground process group on the tty (terminal) that the process is\n"
+"connected to, or -1 if the process is not connected to a tty."
+msgstr ""
+"Identifiant du groupe de processus au premier plan sur le terminal (tty)\n"
+"auquel le processus est connecté, ou -1 si le processus n'est pas connecté\n"
+"à un tty."
+
+#. type: tbl table
+#: ../man/ps.1:1853
+#, no-wrap
+msgid "trs"
+msgstr "trs"
+
+#. type: tbl table
+#: ../man/ps.1:1853
+#, no-wrap
+msgid "TRS"
+msgstr "TRS"
+
+#. type: tbl table
+#: ../man/ps.1:1855
+#, no-wrap
+msgid "text resident set size, the amount of physical memory devoted to executable code."
+msgstr "Taille du texte en mémoire résidente, la quantité de mémoire physique consacrée au code exécutable."
+
+#. type: tbl table
+#: ../man/ps.1:1857
+#, no-wrap
+msgid "tt"
+msgstr "tt"
+
+#. type: tbl table
+#: ../man/ps.1:1857 ../man/ps.1:1862
+#, no-wrap
+msgid "TT"
+msgstr "TT"
+
+#. type: tbl table
+#: ../man/ps.1:1860
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tname>, B<tty>)."
+msgstr ""
+"tty (terminal) de contrôle\n"
+"(alias\n"
+"B<tname>, B<tty>)."
+
+#. type: tbl table
+#: ../man/ps.1:1865
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tname>, B<tt>)."
+msgstr ""
+"tty (terminal) de contrôle\n"
+"(alias\n"
+"B<tname>, B<tt>)."
+
+#. type: tbl table
+#: ../man/ps.1:1867
+#, no-wrap
+msgid "ucmd"
+msgstr "ucmd"
+
+#. type: tbl table
+#: ../man/ps.1:1872
+#, no-wrap
+msgid ""
+"see\n"
+"B<comm>.\n"
+"(alias\n"
+"B<comm>, B<ucomm>)."
+msgstr ""
+"Consultez\n"
+"B<comm>\n"
+"(alias\n"
+"B<comm>, B<ucomm>)."
+
+#. type: tbl table
+#: ../man/ps.1:1874
+#, no-wrap
+msgid "ucomm"
+msgstr "ucomm"
+
+#. type: tbl table
+#: ../man/ps.1:1879
+#, no-wrap
+msgid ""
+"see\n"
+"B<comm>.\n"
+"(alias\n"
+"B<comm>, B<ucmd>)."
+msgstr ""
+"Consultez\n"
+"B<comm>\n"
+"(alias\n"
+"B<comm>, B<ucmd>)."
+
+#. type: tbl table
+#: ../man/ps.1:1881
+#, no-wrap
+msgid "UID"
+msgstr "UID"
+
+#. type: tbl table
+#: ../man/ps.1:1886
+#, no-wrap
+msgid ""
+"see\n"
+"B<euid>.\n"
+"(alias\n"
+"B<euid>)."
+msgstr ""
+"Consultez\n"
+"B<euid>\n"
+"(alias\n"
+"B<euid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1888
+#, no-wrap
+msgid "uname"
+msgstr "uname"
+
+#. type: tbl table
+#: ../man/ps.1:1893
+#, no-wrap
+msgid ""
+"see\n"
+"B<euser>.\n"
+"(alias\n"
+"B<euser>, B<user>)."
+msgstr ""
+"Consultez\n"
+"B<euser>\n"
+"(alias\n"
+"B<euser>, B<user>)."
+
+#. type: tbl table
+#: ../man/ps.1:1895
+#, no-wrap
+msgid "unit"
+msgstr "unit"
+
+#. type: tbl table
+#: ../man/ps.1:1895
+#, no-wrap
+msgid "UNIT"
+msgstr "UNIT"
+
+#. type: tbl table
+#: ../man/ps.1:1898
+#, no-wrap
+msgid ""
+"displays unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr ""
+"Afficher l'unité « slice » à laquelle appartient le processus,\n"
+"si la prise en charge de systemd est incluse."
+
+#. type: tbl table
+#: ../man/ps.1:1905
+#, no-wrap
+msgid ""
+"see\n"
+"B<euser>.\n"
+"(alias\n"
+"B<euser>, B<uname>)."
+msgstr ""
+"Consultez\n"
+"B<euser>\n"
+"(alias\n"
+"B<euser>, B<uname>)."
+
+#. type: tbl table
+#: ../man/ps.1:1907
+#, no-wrap
+msgid "userns"
+msgstr "userns"
+
+#. type: tbl table
+#: ../man/ps.1:1907
+#, no-wrap
+msgid "USERNS"
+msgstr "USERNS"
+
+#. type: tbl table
+#: ../man/ps.1:1913
+#, fuzzy, no-wrap
+#| msgid "utsns"
+msgid "uss"
+msgstr "utsns"
+
+#. type: tbl table
+#: ../man/ps.1:1913
+#, fuzzy, no-wrap
+#| msgid "UTSNS"
+msgid "USS"
+msgstr "UTSNS"
+
+#. type: tbl table
+#: ../man/ps.1:1916
+#, fuzzy, no-wrap
+#| msgid ""
+#| "resident set size, the non-swapped physical memory that a task has used (in\n"
+#| "kilobytes). (alias\n"
+#| "B<rssize>, B<rsz>)."
+msgid ""
+"Unique set size, the non-swapped physical memory, which\n"
+"is not shared with an another task."
+msgstr ""
+"Taille de mémoire résidente («\\ resident set size\\ » ou RSS),\n"
+"la mémoire physique non transférée vers l'espace d'échange (swap)\n"
+"qu'une tâche a utilisée (en kilooctets) (alias\n"
+"B<rssize>, B<rsz>)."
+
+#. type: tbl table
+#: ../man/ps.1:1918
+#, no-wrap
+msgid "utsns"
+msgstr "utsns"
+
+#. type: tbl table
+#: ../man/ps.1:1918
+#, no-wrap
+msgid "UTSNS"
+msgstr "UTSNS"
+
+#. type: tbl table
+#: ../man/ps.1:1924
+#, no-wrap
+msgid "uunit"
+msgstr "uunit"
+
+#. type: tbl table
+#: ../man/ps.1:1924
+#, no-wrap
+msgid "UUNIT"
+msgstr "UUNIT"
+
+#. type: tbl table
+#: ../man/ps.1:1927
+#, no-wrap
+msgid ""
+"displays user unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr ""
+"Afficher l'unité « slice » à laquelle appartient le processus,\n"
+"si la prise en charge de systemd est incluse."
+
+#. type: tbl table
+#: ../man/ps.1:1934
+#, no-wrap
+msgid ""
+"see\n"
+"B<vsz>.\n"
+"(alias\n"
+"B<vsz>)."
+msgstr ""
+"Consultez\n"
+"B<vsz>\n"
+"(alias\n"
+"B<vsz>)."
+
+#. type: tbl table
+#: ../man/ps.1:1940
+#, no-wrap
+msgid ""
+"virtual memory size of the process in KiB (1024-byte units). Device\n"
+"mappings are currently excluded; this is subject to change. (alias\n"
+"B<vsize>)."
+msgstr ""
+"Taille de la mémoire virtuelle du processus en Kio (unités de 1024\\ octets).\n"
+"Les correspondances («\\ mappings\\ ») de périphériques sont actuellement\n"
+"ignorées, mais cela pourrait changer\n"
+"(alias\n"
+"B<vsize>)."
+
+#. type: tbl table
+#: ../man/ps.1:1942
+#, no-wrap
+msgid "wbytes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1942
+#, no-wrap
+msgid "WBYTES"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1944
+#, no-wrap
+msgid "Number of bytes which this process caused to be sent to the storage layer."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1946
+#, no-wrap
+msgid "wcbytes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1946
+#, no-wrap
+msgid "WCBYTES"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1948
+#, fuzzy, no-wrap
+#| msgid "number of active objects"
+msgid "Number of cancelled write bytes."
+msgstr "nombre d'objets actifs"
+
+#. type: tbl table
+#: ../man/ps.1:1950
+#, no-wrap
+msgid "wchan"
+msgstr "wchan"
+
+#. type: tbl table
+#: ../man/ps.1:1952
+#, fuzzy, no-wrap
+#| msgid "display name of control groups to which the process belongs."
+msgid "name of the kernel function in which the process is sleeping."
+msgstr "Afficher les groupes de contrôle auxquels appartient le processus."
+
+#. type: tbl table
+#: ../man/ps.1:1954
+#, fuzzy, no-wrap
+#| msgid "wchan"
+msgid "wchars"
+msgstr "wchan"
+
+#. type: tbl table
+#: ../man/ps.1:1954
+#, fuzzy, no-wrap
+#| msgid "WCHAN"
+msgid "WCHARS"
+msgstr "WCHAN"
+
+#. type: tbl table
+#: ../man/ps.1:1956
+#, no-wrap
+msgid "Number of bytes which this task has caused, or shall cause to be written to disk."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1958
+#, no-wrap
+msgid "wops"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1958
+#, no-wrap
+msgid "WOPS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1961
+#, no-wrap
+msgid ""
+"Number of write I/O operations—that is, system calls such as\n"
+"B<write>(2) and B<pwrite>(2)."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:1964
+#, no-wrap
+msgid "ENVIRONMENT VARIABLES"
+msgstr "VARIABLES D'ENVIRONNEMENT"
+
+#. type: Plain text
+#: ../man/ps.1:1967
+msgid "The following environment variables could affect B<ps>:"
+msgstr "Les variables d'environnement suivantes peuvent affecter B<ps> :"
+
+#. type: TP
+#: ../man/ps.1:1967
+#, no-wrap
+msgid "B<COLUMNS>"
+msgstr "B<COLUMNS>"
+
+#. type: Plain text
+#: ../man/ps.1:1970
+msgid "Override default display width."
+msgstr "Remplacer la largeur par défaut de l'affichage."
+
+#. type: TP
+#: ../man/ps.1:1970
+#, no-wrap
+msgid "B<LINES>"
+msgstr "B<LINES>"
+
+#. type: Plain text
+#: ../man/ps.1:1973
+msgid "Override default display height."
+msgstr "Remplacer la hauteur par défaut de l'affichage."
+
+#. type: TP
+#: ../man/ps.1:1973
+#, no-wrap
+msgid "B<PS_PERSONALITY>"
+msgstr "B<PS_PERSONALITY>"
+
+#. type: Plain text
+#: ../man/ps.1:1978 ../man/ps.1:1983
+msgid ""
+"Set to one of posix, old, linux, bsd, sun, digital...\\& (see section "
+"B<PERSONALITY> below)."
+msgstr ""
+"Configurer parmi posix, old, linux, bsd, sun, digital, etc. (consultez ci-"
+"dessous la section B<PERSONNALITÉ>)."
+
+#. type: TP
+#: ../man/ps.1:1978
+#, no-wrap
+msgid "B<CMD_ENV>"
+msgstr "B<CMD_ENV>"
+
+#. type: TP
+#: ../man/ps.1:1983
+#, no-wrap
+msgid "B<I_WANT_A_BROKEN_PS>"
+msgstr "B<I_WANT_A_BROKEN_PS>"
+
+#. type: Plain text
+#: ../man/ps.1:1986
+msgid "Force obsolete command line interpretation."
+msgstr "Forcer l'interprétation obsolète de la ligne de commande."
+
+#. type: TP
+#: ../man/ps.1:1986
+#, no-wrap
+msgid "B<LC_TIME>"
+msgstr "B<LC_TIME>"
+
+#. type: Plain text
+#: ../man/ps.1:1989
+msgid "Date format."
+msgstr "Format de date."
+
+#. type: TP
+#: ../man/ps.1:1989
+#, no-wrap
+msgid "B<LIBPROC_HIDE_KERNEL>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1996
+msgid ""
+"Set this to any value to hide kernel threads normally displayed with the B<-"
+"e> option. This is equivalent to selecting B<--ppid 2 -p 2 --deselect> "
+"instead. Also works in BSD mode."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1996
+#, no-wrap
+msgid "B<PS_COLORS>"
+msgstr "B<PS_COLORS>"
+
+#. type: Plain text
+#: ../man/ps.1:1999
+msgid "Not currently supported."
+msgstr "Non pris en charge pour le moment."
+
+#. type: TP
+#: ../man/ps.1:1999
+#, no-wrap
+msgid "B<PS_FORMAT>"
+msgstr "B<PS_FORMAT>"
+
+#. type: Plain text
+#: ../man/ps.1:2010
+msgid ""
+"Default output format override. You may set this to a format string of the "
+"type used for the B<-o> option. The B<DefSysV> and B<DefBSD> values are "
+"particularly useful."
+msgstr ""
+"Redéfinir le format de sortie par défaut, à configurer avec une chaîne de "
+"format du même type que celle utilisée pour l'option B<-o>. Les valeurs "
+"B<DefSysV> et B<DefBSD> sont particulièrement utiles."
+
+#. type: TP
+#: ../man/ps.1:2010
+#, no-wrap
+msgid "B<POSIXLY_CORRECT>"
+msgstr "B<POSIXLY_CORRECT>"
+
+#. type: Plain text
+#: ../man/ps.1:2013 ../man/ps.1:2020
+msgid "Don't find excuses to ignore bad \"features\"."
+msgstr ""
+"Ne pas chercher d'excuse pour ignorer les mauvaises « fonctionnalités »."
+
+#. type: TP
+#: ../man/ps.1:2013
+#, no-wrap
+msgid "B<POSIX2>"
+msgstr "B<POSIX2>"
+
+#. type: Plain text
+#: ../man/ps.1:2017
+msgid "When set to \"on\", acts as B<POSIXLY_CORRECT>."
+msgstr "Agir comme B<POSIXLY_CORRECT> une fois configuré à « on »."
+
+#. type: TP
+#: ../man/ps.1:2017
+#, no-wrap
+msgid "B<UNIX95>"
+msgstr "B<UNIX95>"
+
+#. type: TP
+#: ../man/ps.1:2020
+#, no-wrap
+msgid "B<_XPG>"
+msgstr "B<_XPG>"
+
+#. type: Plain text
+#: ../man/ps.1:2026
+msgid "Cancel B<CMD_ENV>=I<irix> non-standard behavior."
+msgstr "Annuler le comportement non standard B<CMD_ENV>=I<irix>."
+
+#. type: Plain text
+#: ../man/ps.1:2034
+msgid ""
+"In general, it is a bad idea to set these variables. The one exception is "
+"B<CMD_ENV> or B<PS_PERSONALITY>, which could be set to Linux for normal "
+"systems. Without that setting, B<ps> follows the useless and bad parts of "
+"the Unix98 standard."
+msgstr ""
+"Il est généralement déconseillé de configurer ces variables, à l'exception "
+"de B<CMD_ENV> ou B<PS_PERSONALITY>. Ces dernières peuvent être configurées à "
+"linux pour les systèmes normaux. Sans cette configuration, B<ps> suit les "
+"aspects inutiles et mauvais de la norme Unix98."
+
+#. type: SH
+#: ../man/ps.1:2034
+#, no-wrap
+msgid "PERSONALITY"
+msgstr "PERSONNALITÉ"
+
+#. type: tbl table
+#: ../man/ps.1:2037
+#, no-wrap
+msgid "390"
+msgstr "390"
+
+#. type: tbl table
+#: ../man/ps.1:2037
+#, no-wrap
+msgid "like the OS/390 OpenEdition B<ps>"
+msgstr "comme le B<ps> d'0S/390 Open Edition"
+
+#. type: tbl table
+#: ../man/ps.1:2038
+#, no-wrap
+msgid "aix"
+msgstr "aix"
+
+#. type: tbl table
+#: ../man/ps.1:2038
+#, no-wrap
+msgid "like AIX B<ps>"
+msgstr "comme le B<ps> d'AIX"
+
+#. type: tbl table
+#: ../man/ps.1:2039
+#, no-wrap
+msgid "bsd"
+msgstr "bsd"
+
+#. type: tbl table
+#: ../man/ps.1:2039
+#, no-wrap
+msgid "like FreeBSD B<ps> (totally non-standard)"
+msgstr "comme le B<ps> de FreeBSD (complètement non standard)"
+
+#. type: tbl table
+#: ../man/ps.1:2040
+#, no-wrap
+msgid "compaq"
+msgstr "compaq"
+
+#. type: tbl table
+#: ../man/ps.1:2040
+#, no-wrap
+msgid "like Digital Unix B<ps>"
+msgstr "comme le B<ps> de Digital Unix B"
+
+#. type: tbl table
+#: ../man/ps.1:2041
+#, no-wrap
+msgid "debian"
+msgstr "debian"
+
+#. type: tbl table
+#: ../man/ps.1:2041 ../man/ps.1:2043
+#, no-wrap
+msgid "like the old Debian B<ps>"
+msgstr "comme l'ancien B<ps> de Debian"
+
+#. type: tbl table
+#: ../man/ps.1:2042
+#, no-wrap
+msgid "digital"
+msgstr "digital"
+
+#. type: tbl table
+#: ../man/ps.1:2042
+#, no-wrap
+msgid "like Tru64 (was Digital\\ Unix, was OSF/1) B<ps>"
+msgstr "comme le B<ps> de Tru64 (ex. Digital Unix, ex. OSF/1)"
+
+#. type: tbl table
+#: ../man/ps.1:2043
+#, no-wrap
+msgid "gnu"
+msgstr "gnu"
+
+#. type: tbl table
+#: ../man/ps.1:2044
+#, no-wrap
+msgid "hp"
+msgstr "hp"
+
+#. type: tbl table
+#: ../man/ps.1:2044 ../man/ps.1:2045
+#, no-wrap
+msgid "like HP-UX B<ps>"
+msgstr "comme le B<ps> de HP-UX"
+
+#. type: tbl table
+#: ../man/ps.1:2045
+#, no-wrap
+msgid "hpux"
+msgstr "hpux"
+
+#. type: tbl table
+#: ../man/ps.1:2046
+#, no-wrap
+msgid "irix"
+msgstr "irix"
+
+#. type: tbl table
+#: ../man/ps.1:2046 ../man/ps.1:2053
+#, no-wrap
+msgid "like Irix B<ps>"
+msgstr "comme le B<ps> d'Irix"
+
+#. type: tbl table
+#: ../man/ps.1:2047
+#, no-wrap
+msgid "linux"
+msgstr "linux"
+
+#. type: tbl table
+#: ../man/ps.1:2047
+#, no-wrap
+msgid "***** B<recommended> *****"
+msgstr "***** B<recommandé> *****"
+
+#. type: tbl table
+#: ../man/ps.1:2048
+#, no-wrap
+msgid "old"
+msgstr "old"
+
+#. type: tbl table
+#: ../man/ps.1:2048
+#, no-wrap
+msgid "like the original Linux B<ps> (totally non-standard)"
+msgstr "comme le B<ps> d'origine de Linux (entièrement non standard)"
+
+#. type: tbl table
+#: ../man/ps.1:2049
+#, no-wrap
+msgid "os390"
+msgstr "os390"
+
+#. type: tbl table
+#: ../man/ps.1:2049 ../man/ps.1:2051
+#, no-wrap
+msgid "like OS/390 Open Edition B<ps>"
+msgstr "comme le B<ps> d'OS/390 Open Edition"
+
+#. type: tbl table
+#: ../man/ps.1:2050
+#, no-wrap
+msgid "posix"
+msgstr "posix"
+
+#. type: tbl table
+#: ../man/ps.1:2050 ../man/ps.1:2056 ../man/ps.1:2057 ../man/ps.1:2059
+#: ../man/ps.1:2060 ../man/ps.1:2061
+#, no-wrap
+msgid "standard"
+msgstr "standard"
+
+#. type: tbl table
+#: ../man/ps.1:2051
+#, no-wrap
+msgid "s390"
+msgstr "s390"
+
+#. type: tbl table
+#: ../man/ps.1:2052
+#, no-wrap
+msgid "sco"
+msgstr "sco"
+
+#. type: tbl table
+#: ../man/ps.1:2052
+#, no-wrap
+msgid "like SCO B<ps>"
+msgstr "comme le B<ps> de SCO"
+
+#. type: tbl table
+#: ../man/ps.1:2053
+#, no-wrap
+msgid "sgi"
+msgstr "sgi"
+
+#. type: tbl table
+#: ../man/ps.1:2054
+#, no-wrap
+msgid "solaris2"
+msgstr "solaris2"
+
+#. type: tbl table
+#: ../man/ps.1:2054
+#, no-wrap
+msgid "like Solaris 2+ (SunOS 5) B<ps>"
+msgstr "comme le B<ps> de Solaris 2+ (SunOS 5)"
+
+#. type: tbl table
+#: ../man/ps.1:2055
+#, no-wrap
+msgid "sunos4"
+msgstr "sunos4"
+
+#. type: tbl table
+#: ../man/ps.1:2055
+#, no-wrap
+msgid "like SunOS 4 (Solaris 1) B<ps> (totally non-standard)"
+msgstr "comme le B<ps> de SunOS 4 (Solaris 1) (non standard)"
+
+#. type: tbl table
+#: ../man/ps.1:2056
+#, no-wrap
+msgid "svr4"
+msgstr "svr4"
+
+#. type: tbl table
+#: ../man/ps.1:2057
+#, no-wrap
+msgid "sysv"
+msgstr "sysv"
+
+#. type: tbl table
+#: ../man/ps.1:2058
+#, no-wrap
+msgid "tru64"
+msgstr "tru64"
+
+#. type: tbl table
+#: ../man/ps.1:2058
+#, no-wrap
+msgid "like Tru64 (was Digital Unix, was OSF/1) B<ps>"
+msgstr "comme le B<ps> de Tru64 (ex. Digital Unix, ex. OSF/1)"
+
+#. type: tbl table
+#: ../man/ps.1:2059
+#, no-wrap
+msgid "unix"
+msgstr "unix"
+
+#. type: tbl table
+#: ../man/ps.1:2060
+#, no-wrap
+msgid "unix95"
+msgstr "unix95"
+
+#. type: tbl table
+#: ../man/ps.1:2061
+#, no-wrap
+msgid "unix98"
+msgstr "unix98"
+
+#. type: Plain text
+#: ../man/ps.1:2069
+msgid ""
+"The fields B<bsdstart> and B<start> will only show the abbreviated month "
+"name in English. The fields B<lstart> and B<stime> will show the abbreviated "
+"month name in the configured locale but may exceed the column width due to "
+"the different lengths for abbreviated month and day names across languages."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2076
+#, fuzzy
+#| msgid "B<pgrep>(1), B<pstree>(1), B<top>(1), B<proc>(5)."
+msgid "B<pgrep>(1), B<pstree>(1), B<top>(1), B<strftime>(3), B<proc>(5)."
+msgstr "B<pgrep>(1), B<pstree>(1), B<top>(1), B<proc>(5)"
+
+#. type: Plain text
+#: ../man/ps.1:2080
+msgid "This B<ps> conforms to:"
+msgstr "Ce B<ps> est conforme à :"
+
+#. type: Plain text
+#: ../man/ps.1:2084
+msgid "Version 2 of the Single Unix Specification"
+msgstr "la Single UNIX Specification version 2 ;"
+
+#. type: Plain text
+#: ../man/ps.1:2086
+msgid "The Open Group Technical Standard Base Specifications, Issue\\ 6"
+msgstr "les Open Group Technical Standard Base Specifications, version 6 ;"
+
+#. type: Plain text
+#: ../man/ps.1:2088
+msgid "IEEE Std 1003.1, 2004\\ Edition"
+msgstr "l'IEEE Std 1003.1, édition 2004 ;"
+
+#. type: Plain text
+#: ../man/ps.1:2090
+msgid "X/Open System Interfaces Extension [UP\\ XSI]"
+msgstr "la X/Open System Interfaces Extension [UP XSI] ;"
+
+#. type: IP
+#: ../man/ps.1:2090
+#, no-wrap
+msgid "5"
+msgstr "5"
+
+#. type: Plain text
+#: ../man/ps.1:2092
+msgid "ISO/IEC 9945:2003"
+msgstr "l'ISO/IEC 9945:2003."
+
+#. type: Plain text
+#: ../man/ps.1:2120
+#, fuzzy
+#| msgid ""
+#| "B<ps> was originally written by E<.MT lankeste@\\:fwi.\\:uva.\\:nl> "
+#| "Branko Lankester E<.ME .> E<.MT johnsonm@\\:redhat.\\:com> Michael K.\\& "
+#| "Johnson E<.ME> re-wrote it significantly to use the proc filesystem, "
+#| "changing a few things in the process. E<.MT mjshield@\\:nyx.\\:cs.\\:du."
+#| "\\:edu> Michael Shields E<.ME> added the pid-list feature. E<.MT "
+#| "cblake@\\:bbn.\\:com> Charles Blake E<.ME> added multi-level sorting, the "
+#| "dirent-style library, the device name-to-number mmaped database, the "
+#| "approximate binary search directly on System.map, and many code and "
+#| "documentation cleanups. David Mossberger-Tang wrote the generic BFD "
+#| "support for psupdate. E<.MT albert@\\:users.\\:sf.\\:net> Albert Cahalan "
+#| "E<.ME> rewrote ps for full Unix98 and BSD support, along with some ugly "
+#| "hacks for obsolete and foreign syntax."
+msgid ""
+"B<ps> was originally written by E<.MT lankeste@\\:fwi.\\:uva.\\:nl> Branko "
+"Lankester E<.ME .> E<.MT johnsonm@\\:redhat.\\:com> Michael K. Johnson E<."
+"ME> re-wrote it significantly to use the proc filesystem, changing a few "
+"things in the process. E<.MT mjshield@\\:nyx.\\:cs.\\:du.\\:edu> Michael "
+"Shields E<.ME> added the pid-list feature. E<.MT cblake@\\:bbn.\\:com> "
+"Charles Blake E<.ME> added multi-level sorting, the dirent-style library, "
+"the device name-to-number mmaped database, the approximate binary search "
+"directly on System.map, and many code and documentation cleanups. David "
+"Mossberger-Tang wrote the generic BFD support for psupdate. E<.MT albert@\\:"
+"users.\\:sf.\\:net> Albert Cahalan E<.ME> rewrote ps for full Unix98 and BSD "
+"support, along with some ugly hacks for obsolete and foreign syntax."
+msgstr ""
+"B<ps> a été initialement écrit par E<.MT lankeste@\\:fwi.\\:uva.\\:nl> "
+"Branko Lankester E<.ME .> E<.MT johnsonm@\\:redhat.\\:com> Michael K.\\& "
+"Johnson E<.ME> l'a réécrit profondeur pour utiliser le système de fichiers "
+"proc, modifiant quelques détails au passage. E<.MT mjshield@\\:nyx.\\:cs.\\:"
+"du.\\:edu> Michael Shields E<.ME> a ajouté la fonctionnalité de liste de "
+"PID. E<.MT cblake@\\:bbn.\\:com> Charles Blake E<.ME> a ajouté le tri "
+"multiniveau, la bibliothèque « à la dirent », la base de données de "
+"correspondance entre numéro de périphérique et nom, la recherche "
+"approximative binaire directement dans System.map, et beaucoup d'autres "
+"nettoyages de code et de documentation. David Mossberger-Tang a écrit la "
+"prise en charge BFD pour psupdate. E<.MT albert@\\:users.\\:sf.\\:net> "
+"Albert Cahalan E<.ME> a réécrit B<ps> pour prendre en charge complètement "
+"Unix98 et BSD, ainsi que certains bidouillages pour les syntaxes obsolètes "
+"et étrangères."
+
+#. type: Plain text
+#: ../man/ps.1:2124
+msgid ""
+"Please send bug reports to E<.MT procps@\\:freelists.\\:org> E<.ME .> No "
+"subscription is required or suggested."
+msgstr ""
+"Signalez les bogues à E<.MT procps@\\:freelists.\\:org> E<.ME .>. "
+"L'inscription n'est ni nécessaire, ni suggérée."
+
+#. Setup ////////////////////////////////////////////////////////////////
+#. Commonly used strings (for consistency) ----------
+#. - our em-dashes
+#. type: ds Em
+#: ../man/top.1:11
+#, no-wrap
+msgid "\\ --\\ "
+msgstr " — "
+
+#. type: ds EM
+#: ../man/top.1:12
+#, no-wrap
+msgid "B<\\ --\\ >"
+msgstr "B< — >"
+
+# TODO: difficile!
+#. - our program name (makes great grammar)
+#. type: ds We
+#: ../man/top.1:14
+#, no-wrap
+msgid "top"
+msgstr "top"
+
+#. type: ds WE
+#: ../man/top.1:15
+#, no-wrap
+msgid "B<top>"
+msgstr "B<top>"
+
+#. - other misc strs for consistent usage
+#. type: ds F
+#: ../man/top.1:17
+#, no-wrap
+msgid "I<Off>"
+msgstr "I<Inactif>"
+
+#. type: ds O
+#: ../man/top.1:18
+#, no-wrap
+msgid "I<On>"
+msgstr "I<Actif>"
+
+#. type: ds AK
+#: ../man/top.1:20
+#, no-wrap
+msgid "asterisk (`*')"
+msgstr "astérisque («\\ *\\ »)"
+
+#. type: ds AM
+#: ../man/top.1:21
+#, no-wrap
+msgid "alternate-display mode"
+msgstr "mode d'affichage alternatif"
+
+#. type: ds AS
+#: ../man/top.1:22
+#, no-wrap
+msgid "auxiliary storage"
+msgstr "dispositif de stockage auxiliaire"
+
+#. type: ds CF
+#: ../man/top.1:23
+#, no-wrap
+msgid "configuration file"
+msgstr "fichier de configuration"
+
+#. type: ds CG
+#: ../man/top.1:24
+#, no-wrap
+msgid "`current' window/field group"
+msgstr "groupe de fenêtres ou champs « actifs »"
+
+#. type: ds CI
+#: ../man/top.1:25
+#, no-wrap
+msgid "interactive command"
+msgstr "commande interactive"
+
+#. type: ds CO
+#: ../man/top.1:26
+#, no-wrap
+msgid "command-line option"
+msgstr "option de ligne de commande"
+
+#. type: ds CT
+#: ../man/top.1:27
+#, no-wrap
+msgid "command toggle"
+msgstr "commande de basculement"
+
+#. type: ds CW
+#: ../man/top.1:28
+#, no-wrap
+msgid "`current' window"
+msgstr "fenêtre «\\ active\\ »"
+
+#. type: ds FG
+#: ../man/top.1:29
+#, no-wrap
+msgid "field group"
+msgstr "groupe de champs"
+
+#. type: ds FM
+#: ../man/top.1:30
+#, no-wrap
+msgid "full-screen mode"
+msgstr "mode plein écran"
+
+#. type: ds KA
+#: ../man/top.1:31
+#, no-wrap
+msgid "arrow key"
+msgstr "flèche"
+
+#. type: ds KS
+#: ../man/top.1:32
+#, no-wrap
+msgid "scrolling key"
+msgstr "touches de déplacement"
+
+#. type: ds MP
+#: ../man/top.1:33
+#, no-wrap
+msgid "physical memory"
+msgstr "mémoire physique"
+
+#. type: ds MS
+#: ../man/top.1:34
+#, no-wrap
+msgid "swap file"
+msgstr "fichier d'échange"
+
+#. type: ds MV
+#: ../man/top.1:35
+#, no-wrap
+msgid "virtual memory"
+msgstr "mémoire virtuelle"
+
+#. type: ds NT
+#: ../man/top.1:36
+#, no-wrap
+msgid "B<Note>:"
+msgstr "B<Remarque> :"
+
+#. type: ds Pu
+#: ../man/top.1:38
+#, no-wrap
+msgid "cpu"
+msgstr "processeur"
+
+#. type: ds SA
+#: ../man/top.1:39
+#, no-wrap
+msgid "summary area"
+msgstr "zone de résumé"
+
+#. type: ds TA
+#: ../man/top.1:40
+#, no-wrap
+msgid "task area"
+msgstr "zone de tâches"
+
+#. type: ds TD
+#: ../man/top.1:41
+#, no-wrap
+msgid "task display"
+msgstr "écran de tâches"
+
+#. type: ds TT
+#: ../man/top.1:42
+#, no-wrap
+msgid "B<processes> or B<threads>"
+msgstr "B<processus> ou B<tâches>"
+
+#. type: ds TW
+#: ../man/top.1:43
+#, no-wrap
+msgid "task window"
+msgstr "fenêtre de tâches"
+
+#. Reference to the various widths/sizes ------------
+#. - the max screen width limit
+#. type: ds WX
+#: ../man/top.1:46
+#, no-wrap
+msgid "512"
+msgstr "512"
+
+#. - the header width w/ all fields
+#. type: ds WF
+#: ../man/top.1:48
+#, no-wrap
+msgid "approximately 250"
+msgstr "environ 250"
+
+#. - pid monitoring limit
+#. Xref's that depend on/mention other stuff --------
+#. type: ds Xa
+#: ../man/top.1:51
+#, no-wrap
+msgid "see"
+msgstr "consultez"
+
+#. type: ds XC
+#: ../man/top.1:52
+#, no-wrap
+msgid "See the"
+msgstr "Consultez"
+
+#. type: ds Xc
+#: ../man/top.1:53
+#, no-wrap
+msgid "see the"
+msgstr "consultez"
+
+#. type: ds XT
+#: ../man/top.1:54
+#, no-wrap
+msgid "See topic"
+msgstr "Consultez la section"
+
+#. type: ds Xt
+#: ../man/top.1:55
+#, no-wrap
+msgid "see topic"
+msgstr "consultez la section"
+
+#. type: ds XX
+#: ../man/top.1:56
+#, no-wrap
+msgid "See `OVERVIEW, Linux Memory Types' for additional details"
+msgstr "Consultez « B<VUE D'ENSEMBLE> – B<Types de mémoire Linux> » pour plus de détails"
+
+#. type: ds ZX
+#: ../man/top.1:57
+#, no-wrap
+msgid "Accessing smaps values is 10x more costly than other memory statistics and data for other users requires root privileges"
+msgstr ""
+
+#. type: TH
+#: ../man/top.1:62
+#, no-wrap
+msgid "TOP"
+msgstr "TOP"
+
+#. type: TH
+#: ../man/top.1:62
+#, no-wrap
+msgid "August 2023"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:70
+msgid "top - display Linux processes"
+msgstr "top - Afficher les processus Linux"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:75
+#, fuzzy
+#| msgid "B<ps> [I<options>]"
+msgid "\\*(WE [options]"
+msgstr "B<ps> [I<options>]"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:85
+msgid ""
+"The \\*(WE program provides a dynamic real-time view of a running system. "
+"It can displayB< system> summary information as well as a list of \\*(TT "
+"currently being managed by the Linux kernel. The types of system summary "
+"information shown and the types, order and size of information displayed for "
+"processes are all user configurable and that configuration can be made "
+"persistent across restarts."
+msgstr ""
+"Le programme \\*(WE fournit une vue dynamique en temps réel du système en "
+"cours d'exécution. Il peut afficher un résumé des informations du B<système> "
+"aussi bien qu'une liste de \\*(TT gérés sur le moment par le noyau. "
+"L'affichage des différents types de résumés d'informations du système ainsi "
+"que la présentation des types, de l'ordonnancement et de la taille des "
+"informations sur les processus sont tous réglables et ces paramètres peuvent "
+"être conservés pour les démarrages ultérieurs."
+
+#. type: Plain text
+#: ../man/top.1:93
+msgid ""
+"The program provides a limited interactive interface for process "
+"manipulation as well as a much more extensive interface for personal "
+"configuration \\*(Em encompassing every aspect of its operation. And while "
+"\\*(WE is referred to throughout this document, you are free to name the "
+"program anything you wish. That new name, possibly an alias, will then be "
+"reflected on \\*(We's display and used when reading and writing a \\*(CF."
+msgstr ""
+"Le programme fournit une interface interactive aux fonctions limitées pour "
+"la manipulation de processus ainsi qu'une interface plus riche pour "
+"personnaliser sa propre configuration \\*(Em l'interface couvrant toutes les "
+"facettes de ces opérations. Alors que vous vous référez à \\*(WE tout au "
+"long de ce document, vous avez la liberté de le renommer comme vous "
+"l'entendez. Ce nouveau nom, probablement un alias, sera répercuté dans "
+"l'affichage de \\*(WE et utilisé lors de la lecture et de l'écriture du "
+"\\*(CF."
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:95
+#, no-wrap
+msgid "OVERVIEW"
+msgstr "VUE D'ENSEMBLE"
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:98
+#, no-wrap
+msgid "Documentation"
+msgstr "Documentation"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:101
+msgid "The remaining Table of Contents"
+msgstr "Table des matières"
+
+#. type: Plain text
+#: ../man/top.1:141
+#, fuzzy, no-wrap
+#| msgid ""
+#| " OVERVIEW\n"
+#| " Operation\n"
+#| " Linux Memory Types\n"
+#| " 1. COMMAND-LINE Options\n"
+#| " 2. SUMMARY Display\n"
+#| " a. UPTIME and LOAD Averages\n"
+#| " b. TASK and CPU States\n"
+#| " c. MEMORY Usage\n"
+#| " 3. FIELDS / Columns Display\n"
+#| " a. DESCRIPTIONS of Fields\n"
+#| " b. MANAGING Fields\n"
+#| " 4. INTERACTIVE Commands\n"
+#| " a. GLOBAL Commands\n"
+#| " b. SUMMARY AREA Commands\n"
+#| " c. TASK AREA Commands\n"
+#| " 1. Appearance\n"
+#| " 2. Content\n"
+#| " 3. Size\n"
+#| " 4. Sorting\n"
+#| " d. COLOR Mapping\n"
+#| " 5. ALTERNATE-DISPLAY Provisions\n"
+#| " a. WINDOWS Overview\n"
+#| " b. COMMANDS for Windows\n"
+#| " c. SCROLLING a Window\n"
+#| " d. SEARCHING in a Window\n"
+#| " e. FILTERING in a Window\n"
+#| " 6. FILES\n"
+#| " a. PERSONAL Configuration File\n"
+#| " b. ADDING INSPECT Entries\n"
+#| " c. SYSTEM Configuration File\n"
+#| " d. SYSTEM Restrictions File\n"
+#| " 7. STUPID TRICKS Sampler\n"
+#| " a. Kernel Magic\n"
+#| " b. Bouncing Windows\n"
+#| " c. The Big Bird Window\n"
+#| " d. The Ol' Switcheroo\n"
+#| " 8. BUGS, 9. SEE Also\n"
+msgid ""
+" OVERVIEW\n"
+" Operation\n"
+" Linux Memory Types\n"
+" 1. COMMAND-LINE Options\n"
+" 2. SUMMARY Display\n"
+" a. UPTIME and LOAD Averages\n"
+" b. TASK and CPU States\n"
+" c. MEMORY Usage\n"
+" 3. FIELDS / Columns Display\n"
+" a. DESCRIPTIONS of Fields\n"
+" b. MANAGING Fields\n"
+" 4. INTERACTIVE Commands\n"
+" a. GLOBAL Commands\n"
+" b. SUMMARY AREA Commands\n"
+" c. TASK AREA Commands\n"
+" 1. Appearance\n"
+" 2. Content\n"
+" 3. Size\n"
+" 4. Sorting\n"
+" d. COLOR Mapping\n"
+" 5. ALTERNATE-DISPLAY Provisions\n"
+" a. WINDOWS Overview\n"
+" b. COMMANDS for Windows\n"
+" c. SCROLLING a Window\n"
+" d. SEARCHING in a Window\n"
+" e. FILTERING in a Window\n"
+" 6. FILES\n"
+" a. PERSONAL Configuration File\n"
+" b. ADDING INSPECT Entries\n"
+" c. SYSTEM Configuration File\n"
+" d. SYSTEM Restrictions File\n"
+" 7. ENVIRONMENT VARIABLE(S)\n"
+" 8. STUPID TRICKS Sampler\n"
+" a. Kernel Magic\n"
+" b. Bouncing Windows\n"
+" c. The Big Bird Window\n"
+" d. The Ol' Switcheroo\n"
+" 9. BUGS, 10. SEE Also\n"
+msgstr ""
+" VUE D'ENSEMBLE\n"
+" Manipulation\n"
+" Types de mémoire Linux\n"
+" 1. Options de la LIGNE de COMMANDE\n"
+" 2. Affichage du RÉSUMÉ\n"
+" a. Moyennes de CHARGE et TEMPS D'ACTIVITÉ\n"
+" b. États des TÂCHES et des PROCESSEURS\n"
+" c. Utilisation de la MÉMOIRE\n"
+" 3. CHAMPS et COLONNES\n"
+" a. DESCRIPTIONS des champs\n"
+" b. GESTION des champs\n"
+" 4. Commandes INTERACTIVES\n"
+" a. Commandes GLOBALES\n"
+" b. Commandes de la ZONE de RÉSUMÉ\n"
+" c. Commandes de la ZONE de TÂCHES\n"
+" 1. Présentation\n"
+" 2. Contenu\n"
+" 3. Taille\n"
+" 4. Tri\n"
+" d. Palette de COULEURS\n"
+" 5. Dispositions d'AFFICHAGE ALTERNATIF\n"
+" a. Vue d'ensemble du FENÊTRAGE\n"
+" b. COMMANDES de fenêtrage\n"
+" c. DÉPLACEMENT dans une fenêtre\n"
+" d. RECHERCHE dans une fenêtre\n"
+" e. FILTRE dans une fenêtre\n"
+" 6. FICHIERS\n"
+" a. Fichier de configuration PERSONNEL\n"
+" b. AJOUT d'entrées d'INSPECTION\n"
+" c. Fichier de configuration SYSTÈME\n"
+" d. Fichier de restriction SYSTÈME\n"
+" 7. Échantillons d'ASTUCES IDIOTES\n"
+" a. Magie du noyau\n"
+" b. Fenêtres rebondissantes\n"
+" c. La fenêtre du grand oiseau\n"
+" d. Le coup de l'échange\n"
+" 8. BOGUES, 9. VOIR AUSSI\n"
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:144
+#, no-wrap
+msgid "Operation"
+msgstr "Manipulation"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:150
+msgid ""
+"When operating \\*(We, the two most important keys are the help (h or ?) "
+"key and quit (`q') key. Alternatively, you could simply use the traditional "
+"interrupt key (^C) when you're done."
+msgstr ""
+"Lors de la manipulation de \\*(WE, les deux touches les plus importantes "
+"sont celles qui permettent d'accéder à l'aide («\\ h\\ » ou «\\ ?\\ ») et de "
+"quitter le programme («\\ q\\ »). Vous pouvez tout aussi bien utiliser la "
+"combinaison des touches d'interruption classiques («\\ ^C\\ ») quand vous "
+"avez terminé."
+
+#. type: Plain text
+#: ../man/top.1:157
+msgid ""
+"When started for the first time, you'll be presented with these traditional "
+"elements on the main \\*(We screen: 1) Summary Area; 2) Fields/Columns "
+"Header; 3) Task Area. Each of these will be explored in the sections that "
+"follow. There is also an Input/Message line between the Summary Area and "
+"Columns Header which needs no further explanation."
+msgstr ""
+"Au premier démarrage, \\*(WE présente ces éléments d'écran habituels sur "
+"l'écran principal\\ :\n"
+" 1) zone de résumé\\ ;\n"
+" 2) en-tête de colonnes ou de champs ;\n"
+" 3) zone de tâches.\n"
+"\n"
+"Ils seront tous présentés dans les sections suivantes. Une ligne d'invite ou "
+"de message existe entre les deux premières zones et ne mérite pas de plus "
+"amples explications."
+
+#. type: Plain text
+#: ../man/top.1:165
+msgid ""
+"The main \\*(We screen is I<generally> quite adaptive to changes in terminal "
+"dimensions under X-Windows. Other \\*(We screens may be less so, especially "
+"those with static text. It ultimately depends, however, on your particular "
+"window manager and terminal emulator. There may be occasions when their "
+"view of terminal size and current contents differs from \\*(We's view, which "
+"is always based on operating system calls."
+msgstr ""
+"L'écran principal de \\*(WE s'adapte I<généralement> plutôt bien aux "
+"modifications de dimensions du terminal sous X Window. D'autres écrans de "
+"\\*(WE pourraient moins bien s'adapter, en particulier ceux contenant du "
+"texte statique. Cela dépend, au final, du gestionnaire de fenêtres et en "
+"particulier de l'émulateur de terminal. Leur vue de la taille du terminal et "
+"de son contenu pourrait éventuellement être différente de celle de \\*(WE, "
+"qui est toujours basée sur les appels du système d'exploitation."
+
+#. type: Plain text
+#: ../man/top.1:170
+msgid ""
+"Following any re-size operation, if a \\*(We screen is corrupted, appears "
+"incomplete or disordered, simply typing something innocuous like a "
+"punctuation character or cursor motion key will usually restore it. In "
+"extreme cases, the following sequence almost certainly will:"
+msgstr ""
+"Suite à une opération de redimensionnement, si un écran de \\*(WE est "
+"corrompu, paraît incomplet ou désordonné, taper simplement quelque chose "
+"d'inoffensif, comme un signe de ponctuation ou une touche de déplacement de "
+"curseur, le restaurera normalement. Dans des cas extrêmes, l'enchaînement "
+"suivant devrait sans doute fonctionner : "
+
+#. type: Plain text
+#: ../man/top.1:175
+#, no-wrap
+msgid ""
+" I<key/cmd objective >\n"
+" ^Z B<suspend> \\*(We\n"
+" fg B<resume> \\*(We\n"
+" E<lt>LeftE<gt> force a screen B<redraw> (if necessary)\n"
+msgstr ""
+" I<tche/cmd objectif>\n"
+" ^Z B<suspendre> \\*(WE\n"
+" fg B<reprendre> \\*(WE\n"
+" E<lt>GaucheE<gt> forcer un B<redessin> de l'écran (si nécessaire)\n"
+
+#. type: Plain text
+#: ../man/top.1:179
+msgid ""
+"But if the display is still corrupted, there is one more step you could "
+"try. Insert this command after \\*(We has been suspended but before "
+"resuming it."
+msgstr ""
+"Si l'affichage est toujours corrompu, une étape peut encore être essayée. "
+"Insérez cette commande après avoir suspendu \\*(WE mais avant de le "
+"reprendre."
+
+#. type: Plain text
+#: ../man/top.1:182
+#, no-wrap
+msgid ""
+" I<key/cmd objective >\n"
+" reset restore your B<terminal settings>\n"
+msgstr ""
+" I<tche/cmd objectif>\n"
+" reset restaurer les B<réglages du terminal>\n"
+
+#. type: Plain text
+#: ../man/top.1:192
+msgid ""
+"\\*(NT the width of \\*(We's display will be limited to \\*(WX positions. "
+"Displaying all fields requires \\*(WF characters. Remaining screen width is "
+"usually allocated to any variable width columns currently visible. The "
+"variable width columns, such as COMMAND, are noted in topic 3a. DESCRIPTIONS "
+"of Fields. Actual output width may also be influenced by the -w switch, "
+"which is discussed in topic 1. COMMAND-LINE Options."
+msgstr ""
+"\\*(NT la largeur de l'affichage de \\*(WE sera limitée à \\*(WX positions. "
+"L'affichage de tous les champs nécessite \\*(WF colonnes. Le reste de la "
+"largeur d'écran est normalement alloué à n'importe quelles colonnes de "
+"largeur variable actuellement visibles. Les colonnes de largeur variable, "
+"comme I<COMMANDE>, sont notées comme telles en B<3a. DESCRIPTIONS des "
+"champs>. La largeur de colonne peut aussi être modifiée par l'option B<-w>, "
+"comme c'est présenté en B<1. Options de la LIGNE de COMMANDE>."
+
+#. type: Plain text
+#: ../man/top.1:197
+msgid ""
+"Lastly, some of \\*(We's screens or functions require the use of cursor "
+"motion keys like the standard \\*(KAs plus the Home, End, PgUp and PgDn "
+"keys. If your terminal or emulator does not provide those keys, the "
+"following combinations are accepted as alternatives:"
+msgstr ""
+"Enfin, certains écrans ou fonctions de \\*(WE nécessitent l'utilisation des "
+"touches de déplacement du curseur comme les \\*(KAs classiques et les "
+"touches B<Orig>, B<Fin>, B<Pg.Préc> et B<Pg.Suiv>. Si votre terminal ou "
+"émulateur ne fournit pas ces touches, elles sont remplaçables par les "
+"combinaisons suivantes :"
+
+#. type: Plain text
+#: ../man/top.1:207
+#, no-wrap
+msgid ""
+" I< key equivalent-keys >\n"
+" Left alt +B< h >\n"
+" Down alt +B< j >\n"
+" Up alt +B< k >\n"
+" Right alt +B< l >\n"
+" Home alt + ctrl +B< h >\n"
+" PgDn alt + ctrl +B< j >\n"
+" PgUp alt + ctrl +B< k >\n"
+" End alt + ctrl +B< l >\n"
+msgstr ""
+" I<touche combinaisons équivalentes de touches>\n"
+" Gauche Alt + B<h>\n"
+" Bas Alt + B<j>\n"
+" Haut Alt + B<k>\n"
+" Droite Alt + B<l>\n"
+" Orig Alt + Ctrl + B<h>\n"
+" Pg.Suiv Alt + Ctrl + B<j>\n"
+" Pg.Préc Alt + Ctrl + B<k>\n"
+" Fin Alt + Ctrl + B<l>\n"
+
+#. type: Plain text
+#: ../man/top.1:214
+msgid ""
+"The B<Up> and B<Down> \\*(KAs have special significance when prompted for "
+"line input terminated with the E<lt>EnterE<gt> key. Those keys, or their "
+"aliases, can be used to retrieve previous input lines which can then be "
+"edited and re-input. And there are four additional keys available with line "
+"oriented input."
+msgstr ""
+"Les \\*(KAs B<Haut> et B<Bas> ont une signification particulière lors d'une "
+"invite de ligne d'entrée se terminant par E<lt>EntréeE<gt>. Ces touches, ou "
+"leurs alias, peuvent être utilisées pour récupérer les lignes entrées "
+"précédemment, avec possibilité de les éditer et de les rentrer. Quatre "
+"touches supplémentaires sont disponibles avec les lignes d'entrée."
+
+#. type: Plain text
+#: ../man/top.1:222
+#, no-wrap
+msgid ""
+" I< key special-significance >\n"
+" Up recall B<older> strings for re-editing\n"
+" Down recall B<newer> strings or B<erase> entire line\n"
+" Insert toggle between B<insert> and B<overtype> modes\n"
+" Delete character B<removed> at cursor, moving others left\n"
+" Home jump to B<beginning> of input line\n"
+" End jump to B<end> of input line\n"
+msgstr ""
+" I<touche signification particulière>\n"
+" Haut rappeler chaînes B<plus anciennes> pour réédition\n"
+" Bas rappeler chaînes B<plus récentes> ou B<effacer> ligne\n"
+" Inser basculer entre modes B<insertion> et B<remplacement>\n"
+" Suppr caractère B<supprimé> au curseur, déplacement à gauche\n"
+" Orig sauter au B<début> de la ligne d'entrée\n"
+" Fin sauter à la B<fin> de la ligne d'entrée\n"
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:225
+#, no-wrap
+msgid "Linux Memory Types"
+msgstr "Types de mémoire Linux"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:234
+msgid ""
+"For our purposes there are three types of memory, and one is optional. "
+"First is \\*(MP, a limited resource where code and data must reside when "
+"executed or referenced. Next is the optional \\*(MS, where modified (dirty) "
+"memory can be saved and later retrieved if too many demands are made on "
+"\\*(MP. Lastly we have \\*(MV, a nearly unlimited resource serving the "
+"following goals:"
+msgstr ""
+"Pour nos fins, il y a trois types de mémoire dont une est optionnelle. Le "
+"premier est la \\*(MP, une ressource limitée où le code et les données "
+"doivent être situés quand ils sont exécutés ou référencés. Le second est le "
+"\\*(MS optionnel où la mémoire modifiée (« dirty ») peut être sauvegardée "
+"puis récupérée si il y a trop de demandes sur la \\*(MP. Enfin, il y a la "
+"\\*(MV, une ressource presque illimitée servant aux objectifs suivants :"
+
+#. type: Plain text
+#: ../man/top.1:240
+#, no-wrap
+msgid ""
+" 1. abstraction, free from physical memory addresses/limits\n"
+" 2. isolation, every process in a separate address space\n"
+" 3. sharing, a single mapping can serve multiple needs\n"
+" 4. flexibility, assign a virtual address to a file\n"
+msgstr ""
+" 1. abstraction, libérée des adresses et des limites de la mémoire physique\n"
+" 2. isolation, chaque processus dans un espace d'adresses distinct\n"
+" 3. partage, un mappage unique peut répondre à plusieurs besoins\n"
+" 4. souplesse, assignation d'une adresse virtuelle à un fichier\n"
+
+#. type: Plain text
+#: ../man/top.1:249
+msgid ""
+"Regardless of which of these forms memory may take, all are managed as pages "
+"(typically 4096 bytes) but expressed by default in \\*(We as KiB "
+"(kibibyte). The memory discussed under topic `2c. MEMORY Usage' deals with "
+"\\*(MP and the \\*(MS for the system as a whole. The memory reviewed in "
+"topic `3. FIELDS / Columns Display' embraces all three memory types, but for "
+"individual processes."
+msgstr ""
+"Indépendamment de la forme que ces mémoires peuvent prendre, toutes sont "
+"gérées par pages (habituellement de 4096 octets) mais exprimées par défaut "
+"dans \\*(WE en KiO (kibioctets). La mémoire examinée dans la section "
+"B<2c. Utilisation de la MÉMOIRE> a trait à la \\*(MP et au \\*(MS pour le "
+"système dans son ensemble. La mémoire examinée dans la section B<3. CHAMPS "
+"et COLONNES> inclut les trois types de mémoire, mais pour des processus "
+"individuels."
+
+#. type: Plain text
+#: ../man/top.1:255
+msgid ""
+"For each such process, every memory page is restricted to a single quadrant "
+"from the table below. Both \\*(MP and \\*(MV can include any of the four, "
+"while the \\*(MS only includes #1 through #3. The memory in quadrant #4, "
+"when modified, acts as its own dedicated \\*(MS."
+msgstr ""
+"Pour chaque processus, chaque page de mémoire est limitée à un seul quadrant "
+"du tableau ci-dessous. La \\*(MP et la \\*(MV peuvent intégrer les quatre "
+"types tandis que le \\*(MS intègre seulement les types nº 1 à nº 3. La "
+"mémoire dans le quadrant nº 4, quand elle est modifiée, se comporte comme "
+"son propre \\*(MS dédié."
+
+#. type: Plain text
+#: ../man/top.1:267
+#, no-wrap
+msgid ""
+" B<Private> | B<Shared>\n"
+" B<1> | B<2>\n"
+" B<Anonymous> . stack |\n"
+" . malloc() |\n"
+" . brk()/sbrk() | . POSIX shm*\n"
+" . mmap(PRIVATE, ANON) | . mmap(SHARED, ANON)\n"
+" -----------------------+----------------------\n"
+" . mmap(PRIVATE, fd) | . mmap(SHARED, fd)\n"
+" B<File-backed> . pgms/shared libs |\n"
+" B<3> | B<4>\n"
+msgstr ""
+" B<Privée> | B<Partagée>\n"
+" B<1> | B<2>\n"
+" B<Anonyme> . pile |\n"
+" . malloc() |\n"
+" . brk()/sbrk() | . POSIX shm*\n"
+" . mmap(PRIVÉE, ANON) | . mmap(PARTAG, ANON)\n"
+" -----------------------+----------------------\n"
+" . mmap(PRIVÉE, fd) | . mmap(PARTAG, fd)\n"
+" B<sauv/fichier> . prog/bibl partag |\n"
+" B<3> | B<4>\n"
+
+#. type: Plain text
+#: ../man/top.1:271
+msgid ""
+"The following may help in interpreting process level memory values displayed "
+"as scalable columns and discussed under topic `3a. DESCRIPTIONS of Fields'."
+msgstr ""
+"Ce qui suit peut aider à l'interprétation des valeurs de mémoire au niveau "
+"des processus affichées dans des colonnes extensibles et discutées dans la "
+"section B<3a. DESCRIPTIONS des champs>."
+
+#. type: Plain text
+#: ../man/top.1:288
+#, no-wrap
+msgid ""
+" %MEM - simply RES divided by total \\*(MP\n"
+" CODE - the `pgms' portion of quadrant B<3>\n"
+" DATA - the entire quadrant B<1> portion of VIRT plus all\n"
+" explicit mmap file-backed pages of quadrant B<3>\n"
+" RES - anything occupying \\*(MP which, beginning with\n"
+" Linux-4.5, is the sum of the following three fields:\n"
+" RSan - quadrant B<1> pages, which include any\n"
+" former quadrant B<3> pages if modified\n"
+" RSfd - quadrant B<3> and quadrant B<4> pages\n"
+" RSsh - quadrant B<2> pages\n"
+" RSlk - subset of RES which cannot be swapped out (any quadrant)\n"
+" SHR - subset of RES (excludes B<1>, includes all B<2> & B<4>, some B<3>)\n"
+" SWAP - potentially any quadrant except B<4>\n"
+" USED - simply the sum of RES and SWAP\n"
+" VIRT - everything in-use and/or reserved (all quadrants)\n"
+msgstr ""
+" %MEM - simplement RES divisé par le total de \\*(MP\n"
+" CODE - La partie « prog » du quadrant B<3>\n"
+" DATA - la partie entière du quadrant B<1> de VIRT plus toutes les\n"
+" pages mmap sauvées sur fichier explicites du quadrant B<3>\n"
+" RES - tout ce qui occupe la \\*(MP, ce qui, à partir de Linux-4.5,\n"
+" est la somme des trois champs suivants :\n"
+" RSan - pages du quadrant B<1> qui comprennent toutes les \n"
+" anciennes pages du quadrant B<3> si modifiées\n"
+" RSfd - pages du quadrant B<3> et du quadrant B<4>\n"
+" RSsh - pages du quadrant B<2>\n"
+" RSlk - sous-ensemble de RES qui ne peut pas être transféré (tous quadrants)\n"
+" SHR - sous-ensemble de RES (sauf B<1>, comprend tout B<2> & B<4>, et une \n"
+" partie de B<3>)\n"
+" SWAP - potentiellement tous les quadrants sauf B<4>\n"
+" USED - simplement la somme de RES et de SWAP\n"
+" VIRT - tout ce qui est utilisé et/ou réservé (tous les quadrants)\n"
+
+#. type: Plain text
+#: ../man/top.1:293
+msgid ""
+"\\*(NT Even though program images and shared libraries are considered "
+"I<private> to a process, they will be accounted for as I<shared> (SHR) by "
+"the kernel."
+msgstr ""
+"\\*(NT Même si les images de programme et les bibliothèques partagées sont "
+"considérées comme I<privées> pour un processus, elles peuvent être comptées "
+"comme I<partagées> (SHR) par le noyau."
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:295
+#, no-wrap
+msgid "1. COMMAND-LINE Options"
+msgstr "1. Options de la LIGNE de COMMANDE"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:299
+msgid ""
+"MandatoryI< arguments> to long options are mandatory for short options too."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:302
+msgid ""
+"Although not required, the equals sign can be used with either option form "
+"and whitespace before and/or after the `=' is permitted."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:303
+#, fuzzy, no-wrap
+#| msgid "B<-b>, B<--bytes>"
+msgid "-B<b>, B<--batch>"
+msgstr "B<-b>, B<--bytes>"
+
+#. type: Plain text
+#: ../man/top.1:309
+msgid ""
+"Starts \\*(We in Batch mode, which could be useful for sending output from "
+"\\*(We to other programs or to a file. In this mode, \\*(We will not accept "
+"input and runs until the iterations limit you've set with the `-n' \\*(CO or "
+"until killed."
+msgstr ""
+"Lancer \\*(WE en mode «\\ traitement par lot\\ », utile pour envoyer, par "
+"exemple, le résultat de \\*(WE vers une autre application ou dans un "
+"fichier. Dans ce mode, \\*(WE n'accepte aucune entrée et s'exécutera jusqu'à "
+"atteindre la limite d'itérations déterminée par l'\\*(CO «\\ B<-n>\\ » ou "
+"jusqu'à ce qu'il soit tué."
+
+#. type: TP
+#: ../man/top.1:310
+#, fuzzy, no-wrap
+#| msgid "B<-t>, B<--no-title>"
+msgid "-B<c>, B<--cmdline-toggle>"
+msgstr "B<-t>, B<--no-title>"
+
+#. type: Plain text
+#: ../man/top.1:316
+msgid ""
+"Starts \\*(We with the last remembered `c' state reversed. Thus, if \\*(We "
+"was displaying command lines, now that field will show program names, and "
+"vice versa. \\*(XC `c' \\*(CI for additional information."
+msgstr ""
+"Lancer \\*(WE en inversant le dernier état «\\ c\\ » connu. Donc, si \\*(We "
+"affichait des lignes de commandes, maintenant, ce champ montrera le nom des "
+"applications, et vice versa. \\*(XC la \\*(CI «\\ c\\ » pour plus "
+"d'informations."
+
+#. type: TP
+#: ../man/top.1:317
+#, fuzzy, no-wrap
+#| msgid "B<-d>, B<--delay>=I<N>"
+msgid "-B<d>, B<--delay> = I<SECS> [I<.TENTHS>]"
+msgstr "B<-d>, B<--delay=>I<N>"
+
+#. type: Plain text
+#: ../man/top.1:322
+msgid ""
+"Specifies the delay between screen updates, and overrides the corresponding "
+"value in one's personal \\*(CF or the startup default. Later this can be "
+"changed with the `d' or `s' \\*(CIs."
+msgstr ""
+"Configurer le I<délai> de rafraîchissement de l'écran, remplaçant la valeur "
+"correspondante du \\*(CF personnel ou la valeur par défaut au démarrage. Par "
+"la suite, cette valeur peut être modifiée avec les commandes interactives "
+"«\\ d\\ » ou «\\ s\\ »."
+
+#. type: Plain text
+#: ../man/top.1:327
+msgid ""
+"Fractional seconds are honored, but a negative number is not allowed. In "
+"all cases, however, such changes are prohibited if \\*(We is running in "
+"Secure mode, except for root (unless the `s' \\*(CO was used). For "
+"additional information on Secure mode \\*(Xt 6d. SYSTEM Restrictions File."
+msgstr ""
+"Les fractions de seconde sont prises en compte, contrairement aux valeurs "
+"négatives. Quoiqu'il en soit, cependant, de telles modifications sont "
+"interdites quand \\*(WE fonctionne en «\\ mode sécurisé\\ », sauf pour le "
+"superutilisateur (à moins que l'\\*(CO «\\ s\\ » ne soit utilisée). Pour "
+"plus de renseignements sur le «\\ mode sécurisé\\ », \\*(Xt B<6d. Fichier de "
+"restriction SYSTÈME>."
+
+#. type: TP
+#: ../man/top.1:328
+#, fuzzy, no-wrap
+#| msgid "-B<E>\\ \\ :I<Extend-Memory-Scaling> as:\\ \\ B<-E k> | B<m> | B<g> | B<t> | B<p> | B<e>"
+msgid "-B<E>, B<--scale-summary-mem> = I<k> | I<m> | I<g> | I<t> | I<p> | I<e>"
+msgstr "B<-E>\\ \\ :I<échelle de mémoire étendue> :\\ \\ B<-E> I<k> | I<m> | I<g> | I<t> | I<p> | I<e>"
+
+#. type: Plain text
+#: ../man/top.1:331
+msgid "Instructs \\*(We to force \\*(SA memory to be scaled as:"
+msgstr ""
+"Demander à \\*(WE de contraindre l'affichage de la mémoire dans la \\*(SA en"
+
+#. type: Plain text
+#: ../man/top.1:338
+#, no-wrap
+msgid ""
+" k - kibibytes\n"
+" m - mebibytes\n"
+" g - gibibytes\n"
+" t - tebibytes\n"
+" p - pebibytes\n"
+" e - exbibytes\n"
+msgstr ""
+" k – kibioctets\n"
+" m – mebioctets\n"
+" g – gibioctets\n"
+" t – tebioctets\n"
+" p – pebioctets\n"
+" e – exbioctets\n"
+
+#. type: Plain text
+#: ../man/top.1:341
+msgid "Later this can be changed with the `E' \\*(CT."
+msgstr "Cela peut être modifié plus tard avec la \\*(CI « E »."
+
+#. type: TP
+#: ../man/top.1:342
+#, no-wrap
+msgid "-B<e>, B<--scale-task-mem> = I<k> | I<m> | I<g> | I<t> | I<p>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:345
+msgid "Instructs \\*(We to force \\*(TA memory to be scaled as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:351
+#, no-wrap
+msgid ""
+" k - kibibytes\n"
+" m - mebibytes\n"
+" g - gibibytes\n"
+" t - tebibytes\n"
+" p - pebibytes\n"
+msgstr ""
+" k = kibioctets\n"
+" m = mébioctets\n"
+" g = gibioctets\n"
+" t = tébioctets\n"
+" p = pébioctets\n"
+
+#. type: Plain text
+#: ../man/top.1:354
+msgid "Later this can be changed with the `e' \\*(CT."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:355
+#, fuzzy, no-wrap
+#| msgid "B<-c>, B<--read-rc>"
+msgid "-B<H>, B<--threads-show>"
+msgstr "B<-c>, B<--read-rc>"
+
+#. type: Plain text
+#: ../man/top.1:360
+msgid ""
+"Instructs \\*(We to display individual threads. Without this \\*(CO a "
+"summation of all threads in each process is shown. Later this can be "
+"changed with the `H' \\*(CI."
+msgstr ""
+"Demander à \\*(We d'afficher les processus légers (« threads ») individuels. "
+"Sans cette \\*(CO, un résumé de tous les processus légers de chaque "
+"processus est montré. Cela peut être modifié plus tard avec la \\*(CI « H »."
+
+#. type: TP
+#: ../man/top.1:361
+#, fuzzy, no-wrap
+#| msgid "B<-h>, B<--help>"
+msgid "-B<h>, B<--help>"
+msgstr "B<-h>, B<--help>"
+
+#. type: Plain text
+#: ../man/top.1:364
+#, fuzzy
+#| msgid "Display help text and exit."
+msgid "Display usage help text, then quit."
+msgstr "Afficher l'aide et quitter."
+
+#. type: TP
+#: ../man/top.1:365
+#, fuzzy, no-wrap
+#| msgid "B<-o>, B<--old-style>"
+msgid "-B<i>, B<--idle-toggle>"
+msgstr "B<-o>, B<--old-style>"
+
+#. type: Plain text
+#: ../man/top.1:372
+msgid ""
+"Starts \\*(We with the last remembered `i' state reversed. When this toggle "
+"is \\*F, tasks that have not used any \\*(PU since the last update will not "
+"be displayed. For additional information regarding this toggle \\*(Xt 4c. "
+"TASK AREA Commands, SIZE."
+msgstr ""
+"Lancer \\*(WE en inversant l'état connu de la dernière option «\\ i\\ ». En "
+"\\*F, les tâches qui n'ont pas utilisé de \\*(PU depuis la dernière mise à "
+"jour ne seront pas affichées. Pour plus de renseignements sur cette option, "
+"\\*(Xt B<4c. Commandes de la ZONE de TÂCHES> — B<TAILLE>."
+
+#. type: TP
+#: ../man/top.1:373
+#, fuzzy, no-wrap
+#| msgid "B<-n>, B<--interval> I<seconds>"
+msgid "-B<n>, B<--iterations> = I<NUMBER>"
+msgstr "B<-n>, B<--interval> I<intervalle>"
+
+#. type: Plain text
+#: ../man/top.1:377
+msgid ""
+"Specifies the maximum number of iterations, or frames, \\*(We should produce "
+"before ending."
+msgstr ""
+"Plafonner le nombre d'itérations ou de rafraîchissements que \\*(WE doit "
+"réaliser avant de se terminer."
+
+#. type: TP
+#: ../man/top.1:378
+#, fuzzy, no-wrap
+#| msgid "B<-a>, B<--list-full>"
+msgid "-B<O>, B<--list-fields>"
+msgstr "B<-a>, B<--list-full>"
+
+#. type: Plain text
+#: ../man/top.1:384
+#, fuzzy
+#| msgid ""
+#| "This option acts as a form of help for the above -o option. It will "
+#| "cause \\*(We to print each of the available field names on a separate "
+#| "line, then quit. Such names are subject to NLS (National Language "
+#| "Support) translation."
+msgid ""
+"This option acts as a form of help for the -o option shown below. It will "
+"cause \\*(We to print each of the available field names on a separate line, "
+"then quit. Such names are subject to NLS (National Language Support) "
+"translation."
+msgstr ""
+"Cette option agit sous forme d'aide à l'option B<-o> précédente. Cela "
+"forcera \\*(WE à afficher tous les noms de champs sur des lignes séparées "
+"avant de quitter. Ces noms peuvent être traduits (internationalisation)."
+
+#. type: TP
+#: ../man/top.1:385
+#, no-wrap
+msgid "-B<o>, B<--sort-override> = I<FIELDNAME>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:393
+msgid ""
+"Specifies the name of the field on which tasks will be sorted, independent "
+"of what is reflected in the configuration file. You can prepend a `+' or "
+"`-' to the field name to also override the sort direction. A leading `+' "
+"will force sorting high to low, whereas a `-' will ensure a low to high "
+"ordering."
+msgstr ""
+"Indiquer le nom du champ par rapport auquel les tâches seront ordonnées, "
+"indépendamment de ce que contient le fichier de configuration. Un « + » ou "
+"un « - » peut précéder le nom de champ pour remplacer aussi le sens du tri. "
+"Un « + » forcera un tri du plus grand au plus petit tandis qu'un « - » "
+"assurera un tri du plus petit au plus grand."
+
+#. type: Plain text
+#: ../man/top.1:396
+msgid ""
+"This option exists primarily to support automated/scripted batch mode "
+"operation."
+msgstr ""
+"Cette option existe surtout pour permettre le mode traitement par lots "
+"automatisé."
+
+#. type: TP
+#: ../man/top.1:397
+#, no-wrap
+msgid "-B<p>, B<--pid> = I<PIDLIST> (as: I<1>,I<2>,I<3>, ... or -pI<1> -pI<2> -pI<3> ...)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:403
+msgid ""
+"Monitor only processes with specified process IDs. However, when combined "
+"with Threads mode (`H'), all processes in the thread group (\\*(Xa TGID) of "
+"each monitored PID will also be shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:407
+#, fuzzy
+#| msgid ""
+#| "Monitor only processes with specified process IDs. This option can be "
+#| "given up to \\*(WP times, or you can provide a comma delimited list with "
+#| "up to \\*(WP pids. Co-mingling both approaches is permitted."
+msgid ""
+"This option can be given up to 20 times, or you can provide a comma "
+"delimited list with up to 20 pids. Co-mingling both approaches is permitted."
+msgstr ""
+"Surveiller seulement les processus déterminés par leurs identifiants. Cette "
+"option peut être réitérée jusqu'à \\*(WP fois. Vous avez aussi la "
+"possibilité de fournir une liste d'au plus \\*(WP PID séparés par des "
+"virgules. Une approche mixte est aussi autorisée."
+
+#. type: Plain text
+#: ../man/top.1:410
+msgid ""
+"A pid value of zero will be treated as the process id of the \\*(We program "
+"itself once it is running."
+msgstr ""
+"Une valeur de PID nulle sera traitée comme l'identifiant de processus du "
+"programme \\*(WE lui-même une fois en cours d'exécution."
+
+#. type: Plain text
+#: ../man/top.1:414
+msgid ""
+"This is a \\*(CO only and should you wish to return to normal operation, it "
+"is not necessary to quit and restart \\*(We \\*(Em just issue any of these "
+"\\*(CIs: `=', `u' or `U'."
+msgstr ""
+"Ça ne concerne que l'\\*(CO. Au cas où vous souhaiteriez revenir à un "
+"fonctionnement classique, il n'est pas nécessaire de quitter et de relancer "
+"\\*(We \\*(Em saisissez simplement n'importe quelle \\*(CI : « = », « u » ou "
+"« U »."
+
+#. type: Plain text
+#: ../man/top.1:416
+msgid "The `p', `u' and `U' \\*(COs are mutually exclusive."
+msgstr ""
+"Les options « p », « u » et « U » de la ligne de commande sont mutuellement "
+"exclusives."
+
+#. type: TP
+#: ../man/top.1:417
+#, fuzzy, no-wrap
+#| msgid "B<-t>, B<--no-title>"
+msgid "-B<S>, B<--accum-time-toggle>"
+msgstr "B<-t>, B<--no-title>"
+
+#. type: Plain text
+#: ../man/top.1:423
+msgid ""
+"Starts \\*(We with the last remembered `S' state reversed. When Cumulative "
+"time mode is \\*O, each process is listed with the \\*(Pu time that it and "
+"its dead children have used. \\*(XC `S' \\*(CI for additional information "
+"regarding this mode."
+msgstr ""
+"Lancer \\*(WE en inversant la valeur du dernier état de «\\ S\\ » connu. "
+"Lorsque le mode « cumul de temps » est \\*O, chaque processus est affiché "
+"avec le temps \\*(Pu consommé par lui-même et ses enfants morts. \\*(XC la "
+"\\*(CI «\\ S\\ » pour plus d'informations sur ce mode. "
+
+#. type: TP
+#: ../man/top.1:424
+#, fuzzy, no-wrap
+#| msgid "B<-s>, B<--since>"
+msgid "-B<s>, B<--secure-mode>"
+msgstr "B<-s>, B<--since>"
+
+#. type: Plain text
+#: ../man/top.1:429
+msgid ""
+"Starts \\*(We with secure mode forced, even for root. This mode is far "
+"better controlled through a system \\*(CF (\\*(Xt 6. FILES)."
+msgstr ""
+"Lancer \\*(WE en forçant le mode sécurisé, même pour le superutilisateur. Ce "
+"mode est plus finement contrôlé par le \\*(CF (\\*(Xt B<6. FICHIERS>)."
+
+#. type: TP
+#: ../man/top.1:430
+#, no-wrap
+msgid "-B<U>, B<--filter-any-user> = I<USER> (as: I<number> or I<name>)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:435
+#, fuzzy
+#| msgid ""
+#| "Display only processes with a user id or user name matching that given. "
+#| "The `-u' option matches on I< effective> user whereas the `-U' option "
+#| "matches onI< any> user (real, effective, saved, or filesystem)."
+msgid ""
+"Display only processes with a user id or user name matching that given. "
+"This option matches onI< any> user (I<real>, I<effective>, I<saved>, or "
+"I<filesystem>)."
+msgstr ""
+"N'afficher que les processus avec l'identifiant utilisateur ou le nom "
+"utilisateur correspondant à celui donné. L'option « -u » correspond à "
+"l'utilisateur I<effectif> tandis que l'option « -U » correspond à "
+"I<n'importe quel> utilisateur (réel, effectif, sauvegardé ou système de "
+"fichiers)."
+
+#. type: Plain text
+#: ../man/top.1:438 ../man/top.1:448
+msgid ""
+"Prepending an exclamation point (`!') to the user id or name instructs "
+"\\*(We to display only processes with users not matching the one provided."
+msgstr ""
+"Un point d'exclamation (« ! ») précédant l'identifiant ou le nom "
+"d'utilisateur indique à \\*(WE de n'afficher que les processus avec des "
+"utilisateurs ne correspondant pas à celui fourni."
+
+#. type: Plain text
+#: ../man/top.1:440 ../man/top.1:450
+#, fuzzy
+#| msgid "The `p', `u' and `U' \\*(COs are mutually exclusive."
+msgid "The `p', `U' and `u' \\*(COs are mutually exclusive."
+msgstr ""
+"Les options « p », « u » et « U » de la ligne de commande sont mutuellement "
+"exclusives."
+
+#. type: TP
+#: ../man/top.1:441
+#, no-wrap
+msgid "-B<u>, B<--filter-only-euser> = I<USER> (as: I<number> or I<name>)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:445
+#, fuzzy
+#| msgid ""
+#| "Display only processes with a user id or user name matching that given. "
+#| "The `-u' option matches on I< effective> user whereas the `-U' option "
+#| "matches onI< any> user (real, effective, saved, or filesystem)."
+msgid ""
+"Display only processes with a user id or user name matching that given. "
+"This option matches on theI< effective> user id only."
+msgstr ""
+"N'afficher que les processus avec l'identifiant utilisateur ou le nom "
+"utilisateur correspondant à celui donné. L'option « -u » correspond à "
+"l'utilisateur I<effectif> tandis que l'option « -U » correspond à "
+"I<n'importe quel> utilisateur (réel, effectif, sauvegardé ou système de "
+"fichiers)."
+
+#. type: TP
+#: ../man/top.1:451
+#, fuzzy, no-wrap
+#| msgid "B<-V>, B<--version>"
+msgid "-B<V>, B<--version>"
+msgstr "B<-V>, B<--version>"
+
+#. type: Plain text
+#: ../man/top.1:454
+#, fuzzy
+#| msgid "Display version information and exit."
+msgid "Display version information, then quit."
+msgstr "Afficher la version du logiciel et quitter."
+
+#. type: TP
+#: ../man/top.1:455
+#, fuzzy, no-wrap
+#| msgid "B<-s>, B<--sort>=I<S>"
+msgid "-B<w>, B<--width> [=I<COLUMNS>]"
+msgstr "B<-s>, B<--sort=>I<S>"
+
+#. type: Plain text
+#: ../man/top.1:462
+msgid ""
+"In Batch mode, when used without an argument \\*(We will format output using "
+"the COLUMNS= and LINES= environment variables, if set. Otherwise, width "
+"will be fixed at the maximum \\*(WX columns. With an argument, output width "
+"can be decreased or increased (up to \\*(WX) but the number of rows is "
+"considered unlimited."
+msgstr ""
+"En mode traitement par lot, si utilisé sans paramètre, \\*(WE formatera la "
+"sortie en utilisant les variables d'environnement B<COLUMNS> et B<LINES> si "
+"elles sont configurées. Sinon, la largeur sera configurée à \\*(WX colonnes "
+"au maximum. Avec un paramètre, la largeur de la sortie sera diminuée ou "
+"augmentée (jusqu'à \\*(WX) mais le nombre de lignes est considéré sans "
+"limite."
+
+#. type: Plain text
+#: ../man/top.1:468
+msgid ""
+"In normal display mode, when used without an argument \\*(We willI< attempt> "
+"to format output using the COLUMNS= and LINES= environment variables, if "
+"set. With an argument, output width can only be decreased, not increased. "
+"Whether using environment variables or an argument with -w, whenI< not> in "
+"Batch mode actual terminal dimensions can never be exceeded."
+msgstr ""
+"En mode d'affichage normal, si utilisé sans paramètre, \\*(WE I<essayera> de "
+"formater la sortie en utilisant les variables d'environnement B<COLUMNS> et "
+"B<LINES> si elles sont configurées. Avec un paramètre, la largeur de la "
+"sortie ne sera que diminuée, pas augmentée. Que ce soit avec les variables "
+"d'environnement ou avec un paramètre à B<-w>, I<sauf> en mode « traitement "
+"par lot s», les dimensions réelles du terminal ne peuvent jamais être "
+"dépassées."
+
+#. type: Plain text
+#: ../man/top.1:471
+msgid ""
+"\\*(NT Without the use of this \\*(CO, output width is always based on the "
+"terminal at which \\*(We was invoked whether or not in Batch mode."
+msgstr ""
+"\\*(NT sans utiliser cette \\*(CO, la largeur de la sortie est toujours "
+"relative à la largeur du terminal dans lequel \\*(WE a été appelé, que ce "
+"soit en mode « traitement par lots » ou non."
+
+#. type: TP
+#: ../man/top.1:472
+#, fuzzy, no-wrap
+#| msgid "B<-s>, B<--since>"
+msgid "-B<1>, B<--single-cpu-toggle>"
+msgstr "B<-s>, B<--since>"
+
+#. type: Plain text
+#: ../man/top.1:478
+#, fuzzy
+#| msgid ""
+#| "Starts \\*(We with the last remembered Cpu States portion of the \\*(SA "
+#| "reversed. Either all \\*(Pu information will be displayed in a single "
+#| "line or each \\*(Pu will be displayed separately, depending on the state "
+#| "of the NUMA Node \\*(CT ('2')."
+msgid ""
+"Starts \\*(We with the last remembered Cpu States portion of the \\*(SA "
+"reversed. Either all \\*(Pu information will be displayed in a single line "
+"or each \\*(Pu will be displayed separately, depending on the state of the "
+"NUMA Node \\*(CT (`2')."
+msgstr ""
+"Lancer \\*(WE en inversant la dernière zone des états CPU de la \\*(SA. Soit "
+"la totalité des informations des \\*(Pus seront affichés sur une seule "
+"ligne, soit chaque \\*(Pu sera affiché séparément, selon l'état de la \\*(CT "
+"du nœud NUMA (« 2 ») "
+
+#. type: Plain text
+#: ../man/top.1:480
+#, fuzzy
+#| msgid "\\*(XC `1' and '2' \\*(CIs for additional information."
+msgid "\\*(XC `1' and `2' \\*(CIs for additional information."
+msgstr "\\*(XC les \\*(CIs « 1 » et « 2 » pour plus de renseignements."
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:482
+#, no-wrap
+msgid "2. SUMMARY Display"
+msgstr "2. Affichage du RÉSUMÉ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:488
+msgid ""
+"Each of the following three areas are individually controlled through one or "
+"more \\*(CIs. \\*(XT 4b. SUMMARY AREA Commands for additional information "
+"regarding these provisions."
+msgstr ""
+"Chacune des trois zones suivantes est contrôlée individuellement à l'aide "
+"d'au moins une \\*(CI. \\*(XT B<4b. Commandes de la ZONE de RÉSUMÉ> pour "
+"obtenir plus de renseignements sur ces dispositions."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:490
+#, no-wrap
+msgid "2a. UPTIME and LOAD Averages"
+msgstr "2a. Moyennes de CHARGE et TEMPS D'ACTIVITÉ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:493
+msgid "This portion consists of a single line containing:"
+msgstr "Cette partie n'est qu'une simple ligne contenant :"
+
+#. type: Plain text
+#: ../man/top.1:498
+#, no-wrap
+msgid ""
+" B<program> orB< window> name, depending on display mode\n"
+" current time and length of time since last boot\n"
+" total number of users\n"
+" system load avg over the last 1, 5 and 15 minutes\n"
+msgstr ""
+" - nom du B<programme> ou de B<fenêtre>, suivant le mode d'affichage ;\n"
+" - heure actuelle et temps passé depuis le démarrage ;\n"
+" - nombre total d'utilisateurs ;\n"
+" - charge moyenne du système lors des dernières 1, 5 et 15 minutes.\n"
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:501
+#, no-wrap
+msgid "2b. TASK and CPU States"
+msgstr "2b. États des TÂCHES et des PROCESSEURS"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:506
+msgid ""
+"This portion consists of a minimum of two lines. In an SMP environment, "
+"additional lines can reflect individual \\*(PU state percentages."
+msgstr ""
+"Cette partie est composée d'au moins deux lignes. En environnement SMP, des "
+"lignes supplémentaires peuvent refléter les pourcentages individuels d'état "
+"\\*(PU."
+
+#. type: Plain text
+#: ../man/top.1:510
+msgid ""
+"Line 1 shows totalB< tasks> orB< threads>, depending on the state of the "
+"Threads-mode toggle. That total is further classified as:"
+msgstr ""
+"La première ligne montre le total de B<tâches> ou de B<processus légers>, "
+"suivant l'état du I<mode processus légers>. Ce total est ensuite classé :"
+
+#. type: Plain text
+#: ../man/top.1:512
+#, no-wrap
+msgid " running; sleeping; stopped; zombie\n"
+msgstr ""
+" - en cours d'exécution (« running ») ;\n"
+" - en sommeil (« sleeping ») ;\n"
+" - arrêté (« stopped ») ;\n"
+" - zombie.\n"
+
+#. type: Plain text
+#: ../man/top.1:516
+msgid ""
+"Line 2 shows \\*(PU state percentages based on the interval since the last "
+"refresh."
+msgstr ""
+"La deuxième ligne montre les pourcentages d'état \\*(PU en fonction de "
+"l'intervalle depuis le dernier rafraîchissement."
+
+#. type: Plain text
+#: ../man/top.1:519
+#, fuzzy
+#| msgid ""
+#| "As a default, percentages for these individual categories are displayed. "
+#| "Where two labels are shown below, those for more recent kernel versions "
+#| "are shown first."
+msgid ""
+"As a default, percentages for these individual categories are displayed. "
+"Depending on your kernel version, the B<st> field may not be shown."
+msgstr ""
+"Par défaut, les pourcentages d'état de ces catégories individuelles sont "
+"affichées. Quand deux étiquettes sont montrées ci-dessous, celles relatives "
+"aux versions de noyau les plus récentes sont montrées en premier."
+
+#. type: Plain text
+#: ../man/top.1:528
+#, fuzzy, no-wrap
+#| msgid ""
+#| " B<us>,B< user> : time running un-niced user processes\n"
+#| " B<sy>,B< system> : time running kernel processes\n"
+#| " B<ni>,B< nice> : time running niced user processes\n"
+#| " B<id>,B< idle> : time spent in the kernel idle handler\n"
+#| " B<wa>,B< IO-wait> : time waiting for I/O completion\n"
+#| " B<hi> : time spent servicing hardware interrupts\n"
+#| " B<si> : time spent servicing software interrupts\n"
+#| " B<st> : time stolen from this vm by the hypervisor\n"
+msgid ""
+" B<us> : time running un-niced user processes\n"
+" B<sy> : time running kernel processes\n"
+" B<ni> : time running niced user processes\n"
+" B<id> : time spent in the kernel idle handler\n"
+" B<wa> : time waiting for I/O completion\n"
+" B<hi> : time spent servicing hardware interrupts\n"
+" B<si> : time spent servicing software interrupts\n"
+" B<st> : time stolen from this vm by the hypervisor\n"
+msgstr ""
+" B<us>, B<user> : temps d'exécution des processus utilisateur sans politesse\n"
+" B<sy>, B<system> : temps d'exécution des processus du noyau\n"
+" B<ni>, B<nice> : temps d'exécution des processus utilisateur avec politesse\n"
+" B<id>, B<idle> : temps passé dans le gestionnaire de veille du noyau\n"
+" B<wa>, B<IO-wait> : temps d'attente pour la fin des entrées et sorties\n"
+" B<hi> : temps passé à l'entretien d'interruptions matérielles\n"
+" B<si> : temps passé à l'entretien d'interruptions logicielles\n"
+" B<st> : temps volé à cette machine virtuelle par l'hyperviseur\n"
+
+#. type: Plain text
+#: ../man/top.1:532
+msgid ""
+"The `sy' value above also reflects the time running a virtual \\*(Pu for "
+"guest operating systems, including those that have been niced."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:536
+#, fuzzy
+#| msgid ""
+#| "In the alternate cpu states display modes, beyond the first tasks/threads "
+#| "line, an abbreviated summary is shown consisting of these elements:"
+msgid ""
+"Beyond the first tasks/threads line, there are alternate \\*(PU display "
+"modes available via the 4-way `t' \\*(CT. They show an abbreviated summary "
+"consisting of these elements:"
+msgstr ""
+"Dans les modes alternatifs d'affichage d'états CPU, au-delà de la première "
+"ligne de tâches ou de processus légers, est montré un résumé abrégé "
+"consistant en ces éléments :"
+
+#. type: Plain text
+#: ../man/top.1:539
+#, fuzzy, no-wrap
+#| msgid ""
+#| " a b c d\n"
+#| " %Cpu(s): B<75.0>/25.0 B<100>[ ...\n"
+msgid ""
+" a b c d\n"
+" %Cpu(s): B<75.0>/25.0 B<100>[ ... ]\n"
+msgstr ""
+" a b c d\n"
+" %Cpu(s): B<75.0>/25.0 B<100>[ ...\n"
+
+#. type: Plain text
+#: ../man/top.1:546
+#, fuzzy
+#| msgid ""
+#| "Where: a) is the combined B<us> and B<ni> percentage; b) is the B<sy> "
+#| "percentage; c) is the total; and d) is one of two visual graphs of those "
+#| "representations. \\*(XT 4b. SUMMARY AREA Commands and the `t' command "
+#| "for additional information on that special 4-way toggle."
+msgid ""
+"Where: a) is the `user' (us + ni) percentage; b) is the `system' (sy + hi + "
+"si + guests) percentage; c) is the total percentage; and d) is one of two "
+"visual graphs of those representations. Such graphs also reflect separate "
+"`user' and `system' portions."
+msgstr ""
+"Où : B<a> est la combinaison des pourcentages B<us> et B<ni> ; B<b> est le "
+"pourcentage B<sy> ; B<c> est le total et B<d> est un des deux graphiques de "
+"ces représentations. \\*(XT B<4b. Commandes de la ZONE de RÉSUMÉ> et la "
+"commande « t»  pour plus de renseignements sur cette bascule quadruple "
+"particulière."
+
+#. type: Plain text
+#: ../man/top.1:551
+msgid ""
+"If the `4' \\*(CT is used to yield more than two cpus per line, results will "
+"be further abridged eliminating the a) and b) elements. However, that "
+"information is still reflected in the graph itself assuming color is active "
+"or, if not, bars vs. blocks are being shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:554
+msgid ""
+"\\*(XT 4b. SUMMARY AREA Commands for additional information on the `t' and "
+"`4' \\*(CTs."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:556
+#, no-wrap
+msgid "2c. MEMORY Usage"
+msgstr "2c. Utilisation de la MÉMOIRE"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:561
+#, fuzzy
+#| msgid ""
+#| "This portion consists of two lines which may express values in kibibytes "
+#| "(KiB) through exbibytes (EiB) depending on the scaling factor enforced "
+#| "with the `E' \\*(CI."
+msgid ""
+"This portion consists of two lines which may express values in kibibytes "
+"(KiB) through exbibytes (EiB) depending on the scaling factor enforced with "
+"the `E' \\*(CI. The /proc/meminfo source fields are shown in parenthesis."
+msgstr ""
+"Cette partie est composée de deux lignes qui expriment les valeurs en unité "
+"de kibioctet (Kio) à exbioctet (Eio) en fonction du facteur d'échelle forcé "
+"par la \\*(CI « E »."
+
+#. type: Plain text
+#: ../man/top.1:563
+#, fuzzy
+#| msgid "Line 2 reflects mostly \\*(MV, classified as:"
+msgid "Line 1 reflects \\*(MP, classified as:"
+msgstr "La deuxième ligne montre surtout la \\*(MV, classée en :"
+
+#. type: Plain text
+#: ../man/top.1:568
+#, no-wrap
+msgid ""
+" total ( MemTotal )\n"
+" free ( MemFree )\n"
+" used ( MemTotal - MemAvailable )\n"
+" buff/cache ( Buffers + Cached + SReclaimable )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:571
+msgid "Line 2 reflects mostly \\*(MV, classified as:"
+msgstr "La deuxième ligne montre surtout la \\*(MV, classée en :"
+
+#. type: Plain text
+#: ../man/top.1:576
+#, no-wrap
+msgid ""
+" total ( SwapTotal )\n"
+" free ( SwapFree )\n"
+" used ( SwapTotal - SwapFree )\n"
+" avail ( MemAvailable, which is \\*(MP )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:584
+msgid ""
+"The B<avail> number on line 2 is an estimation of \\*(MP available for "
+"starting new applications, without swapping. Unlike the B<free> field, it "
+"attempts to account for readily reclaimable page cache and memory slabs. It "
+"is available on kernels 3.14, emulated on kernels 2.6.27+, otherwise the "
+"same as B<free>."
+msgstr ""
+"Le nombre B<avail> sur la seconde ligne est une estimation de la \\*(MP "
+"disponible pour lancer de nouvelles applications sans utiliser l'espace "
+"d'échange. À la différence du champ B<free>, il tente de compter les blocs "
+"de cache de page et de mémoire immédiatement récupérables. Il est disponible "
+"avec les noyau 3.14, émulé avec les noyaux 2.6.17+, autrement, il est "
+"identique à B<free>."
+
+#. type: Plain text
+#: ../man/top.1:587
+msgid ""
+"In the alternate memory display modes, two abbreviated summary lines are "
+"shown consisting of these elements:"
+msgstr ""
+"Dans les modes d'affichage de mémoire alternatifs, deux lignes de résumé "
+"abrégé sont montrées consistant en ces éléments :"
+
+#. type: Plain text
+#: ../man/top.1:591
+#, fuzzy, no-wrap
+#| msgid ""
+#| " a b c\n"
+#| " GiB Mem : B<18.7>/15.738 [ ...\n"
+#| " GiB Swap: B< 0.0>/7.999 [ ...\n"
+msgid ""
+" a b c\n"
+" GiB Mem : B<18.7>/15.738 [ ... ]\n"
+" GiB Swap: B< 0.0>/7.999 [ ... ]\n"
+msgstr ""
+" a b c\n"
+" GiB Mem : B<18.7>/15.738 [ ...\n"
+" GiB Swap: B< 0.0>/7.999 [ ...\n"
+
+#. type: Plain text
+#: ../man/top.1:595
+msgid ""
+"Where: a) is the percentage used; b) is the total available; and c) is one "
+"of two visual graphs of those representations."
+msgstr ""
+"Où : B<a> est le pourcentage utilisé, B<b> le total disponible et B<c> un "
+"des deux graphiques de ces représentations."
+
+#. type: Plain text
+#: ../man/top.1:602
+#, fuzzy
+#| msgid ""
+#| "In the case of \\*(MP, the percentage represents the B<total> minus the "
+#| "estimated B<avail> noted above. The `Mem' graph itself is divided "
+#| "between B<used> and any remaining memory not otherwise accounted for by "
+#| "B<avail>. \\*(XT 4b. SUMMARY AREA Commands and the `m' command for "
+#| "additional information on that special 4-way toggle."
+msgid ""
+"In the case of \\*(MP, the percentage represents the B<total> minus the "
+"estimated B<avail> noted above. The `Mem' graph itself is divided between "
+"the non-cached portion of B<used> and any remaining memory not otherwise "
+"accounted for by B<avail>. \\*(XT 4b. SUMMARY AREA Commands and the `m' "
+"command for additional information on that special 4-way toggle."
+msgstr ""
+"Dans le cas de la \\*(MP, le pourcentage représente le B<total> moins le "
+"B<avail> estimé noté précédemment. Le graphique « Mem » lui-même est divisé "
+"entre B<used> et le reste de la mémoire qui n'est pas compté par ailleurs "
+"par B<avail>. \\*(XT B<4b. Commandes de la ZONE de RÉSUMÉ> et la commande "
+"« m»  pour plus de renseignements sur cette bascule quadruple particulière."
+
+#. type: Plain text
+#: ../man/top.1:604
+msgid "This table may help in interpreting the scaled values displayed:"
+msgstr ""
+"Ce tableau pourrait aider à interpréter les valeurs d'échelle affichées :"
+
+#. type: Plain text
+#: ../man/top.1:611
+#, no-wrap
+msgid ""
+" KiB = kibibyte = 1024 bytes\n"
+" MiB = mebibyte = 1024 KiB = 1,048,576 bytes\n"
+" GiB = gibibyte = 1024 MiB = 1,073,741,824 bytes\n"
+" TiB = tebibyte = 1024 GiB = 1,099,511,627,776 bytes\n"
+" PiB = pebibyte = 1024 TiB = 1,125,899,906,842,624 bytes\n"
+" EiB = exbibyte = 1024 PiB = 1,152,921,504,606,846,976 bytes\n"
+msgstr ""
+" Kio = kibioctet = 1024 octets\n"
+" Mio = mébioctet = 1024 Kio = 1 048 576 octets\n"
+" Gio = gibioctet = 1024 Mio = 1 073 741 824 octets\n"
+" Tio = tébioctet = 1024 Gio = 1 099 511 627 776 octets\n"
+" Pio = pébioctet = 1024 Tio = 1 125 899 906 842 624 octets\n"
+" Eio = exbioctet = 1024 Pio = 1 152 921 504 606 846 976 octets\n"
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:614
+#, no-wrap
+msgid "3. FIELDS / Columns"
+msgstr "3. CHAMPS et COLONNES"
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:617
+#, no-wrap
+msgid "3a. DESCRIPTIONS of Fields"
+msgstr "3a. DESCRIPTIONS des champs"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:623
+#, fuzzy
+#| msgid ""
+#| "Listed below are \\*(We's available process fields (columns). They are "
+#| "shown in strict ascii alphabetical order. You may customize their "
+#| "position and whether or not they are displayable with the `f' or "
+#| "`F' (Fields Management) \\*(CIs."
+msgid ""
+"Listed below are \\*(We's available process fields (columns). They are "
+"shown in strict ascii alphabetical order. You may customize their position "
+"and whether or not they are displayable with the `f' (Fields Management) "
+"\\*(CI."
+msgstr ""
+"Voici ci-dessous la liste des champs de processus (colonnes) disponibles "
+"dans \\*(We. Ils sont montrés dans l'ordre alphabétique strict ASCII. Vous "
+"pouvez personnaliser leur position et s'ils doivent apparaître ou non avec "
+"les commandes interactives « f » ou « F » (gestion des champs)."
+
+#. type: Plain text
+#: ../man/top.1:628
+msgid ""
+"Any field is selectable as the sort field, and you control whether they are "
+"sorted high-to-low or low-to-high. For additional information on sort "
+"provisions \\*(Xt 4c. TASK AREA Commands, SORTING."
+msgstr ""
+"Tout champ peut être choisi comme clé de tri croissant ou décroissant, comme "
+"bon vous semble. Pour plus d'informations sur les clés de tri \\*(Xt "
+"B<4c. Commandes de la ZONE de TÂCHES> — B<TRI>."
+
+#. type: Plain text
+#: ../man/top.1:634
+msgid ""
+"The fields related to \\*(MP or \\*(MV reference `(KiB)' which is the "
+"unsuffixed display mode. Such fields may, however, be scaled from KiB "
+"through PiB. That scaling is influenced via the `e' \\*(CI or established "
+"for startup through a build option."
+msgstr ""
+"Les champs relatifs à la \\*(MP ou à la \\*(MV utilisent « (Kio) » comme "
+"mode d'affichage sans suffixe par défaut. Ces champs peuvent cependant être "
+"mis à l'échelle de Kio à Pio. Ce facteur d'échelle est modifié à l'aide de "
+"la \\*(CI « e » ou fixé au démarrage au moyen d'une option de construction."
+
+#. type: TP
+#: ../man/top.1:635
+#, fuzzy, no-wrap
+#| msgid " 1.B< %CPU \\*(Em \\*(PU Usage >"
+msgid "B<%CPU \\*(Em \\*(PU Usage >"
+msgstr " 1. B<%CPU \\*(Em utilisation du \\*(PU>"
+
+#. type: Plain text
+#: ../man/top.1:639
+msgid ""
+"The task's share of the elapsed \\*(PU time since the last screen update, "
+"expressed as a percentage of total \\*(PU time."
+msgstr ""
+"La part des tâches du temps \\*(PU écoulé depuis le dernier rafraîchissement "
+"d'écran, exprimé en pourcentage du temps \\*(PU total."
+
+#. type: Plain text
+#: ../man/top.1:644
+msgid ""
+"In a true SMP environment, if a process is multi-threaded and \\*(We is "
+"I<not> operating in Threads mode, amounts greater than 100% may be "
+"reported. You toggle Threads mode with the `H' \\*(CI."
+msgstr ""
+"Dans un véritable environnement SMP, si le processus possède plusieurs "
+"processus légers (« multi-thread ») et que \\*(WE ne fonctionne B<pas> en "
+"mode processus légers, des quantités supérieures à 100 % pourraient être "
+"signalées. Le mode processus légers peut être activé avec la \\*(CI « H »."
+
+#. type: Plain text
+#: ../man/top.1:649
+msgid ""
+"Also for multi-processor environments, if Irix mode is \\*F, \\*(We will "
+"operate in Solaris mode where a task's \\*(Pu usage will be divided by the "
+"total number of \\*(PUs. You toggle Irix/Solaris modes with the `I' \\*(CI."
+msgstr ""
+"Aussi pour les environnements multiprocesseurs, si le «\\ mode Irix\\ » est "
+"\\*F, \\*(WE fonctionnera en «\\ mode Solaris\\ » où l'utilisation \\*(Pu "
+"d'une tâche sera divisée par le nombre total de \\*(PU. Vous pouvez basculer "
+"entre les modes « Irix » et « Solaris » avec la \\*(CI «\\ I\\ »."
+
+#. type: Plain text
+#: ../man/top.1:655
+msgid ""
+"\\*(NT When running in forest view mode (`V') with children collapsed (`v'), "
+"this field will also include the \\*(PU time of those unseen children. "
+"\\*(XT 4c. TASK AREA Commands, CONTENT for more information regarding the "
+"`V' and `v' toggles."
+msgstr ""
+"\\*(NT En mode d'affichage arborescent (« V ») avec des enfants dissimulés "
+"(« v »), ce champ sera aussi inclus dans le temps \\*(PU de ces enfants non "
+"visibles. \\*(XT B<4c. Commandes de la ZONE de TÂCHES — Contenu> pour plus "
+"d'informations sur les options « V » et « v »."
+
+#. type: TP
+#: ../man/top.1:656
+#, fuzzy, no-wrap
+#| msgid " 1.B< %CPU \\*(Em \\*(PU Usage >"
+msgid "B<%CUC \\*(Em \\*(PU Utilization >"
+msgstr " 1. B<%CPU \\*(Em utilisation du \\*(PU>"
+
+#. type: Plain text
+#: ../man/top.1:660
+msgid ""
+"This field is identical to %CUU below, except the percentage also reflects "
+"reaped child processes."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:661
+#, fuzzy, no-wrap
+#| msgid " 1.B< %CPU \\*(Em \\*(PU Usage >"
+msgid "B<%CUU \\*(Em \\*(PU Utilization >"
+msgstr " 1. B<%CPU \\*(Em utilisation du \\*(PU>"
+
+#. type: Plain text
+#: ../man/top.1:665
+msgid ""
+"A task's total \\*(PU usage divided by its elapsed running time, expressed "
+"as a percentage."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:670
+msgid ""
+"If a process currently displays high \\*(PU usage, this field can help "
+"determine if such behavior is normal. Conversely, if a process has low "
+"\\*(PU usage currently, %CUU may reflect historically higher demands over "
+"its lifetime."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:671
+#, fuzzy, no-wrap
+#| msgid " 2.B< %MEM \\*(Em Memory Usage (RES) >"
+msgid "B<%MEM \\*(Em Memory Usage (RES) >"
+msgstr " 2. B<%MEM \\*(Em utilisation mémoire (RES)>"
+
+#. type: Plain text
+#: ../man/top.1:674
+msgid "A task's currently resident share of available \\*(MP."
+msgstr ""
+"Pourcentage de la \\*(MP résidente disponible actuellement utilisée par la "
+"tâche."
+
+#. type: Plain text
+#: ../man/top.1:676 ../man/top.1:737 ../man/top.1:770 ../man/top.1:943
+#: ../man/top.1:1004 ../man/top.1:1057 ../man/top.1:1102 ../man/top.1:1122
+msgid "\\*(XX."
+msgstr "\\*(XX."
+
+#. type: TP
+#: ../man/top.1:677
+#, fuzzy, no-wrap
+#| msgid "10.B< GID \\*(Em Group Id >"
+msgid "B<AGID \\*(Em Autogroup Identifier >"
+msgstr " 10. B<GID \\*(Em identifiant de groupe>"
+
+#. type: Plain text
+#: ../man/top.1:682
+msgid ""
+"The autogroup identifier associated with a process. This feature operates "
+"in conjunction with the CFS scheduler to improve interactive desktop "
+"performance."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:691
+msgid ""
+"When /proc/sys/kernel/sched_autogroup_enabled is set, a new autogroup is "
+"created with each new session (\\*(Xa SID). All subsequently forked "
+"processes in that session inherit membership in this autogroup. The kernel "
+"then attempts to equalize distribution of CPU cycles across such groups. "
+"Thus, an autogroup with many \\*(PU intensive processes (e.g make -j) will "
+"not dominate an autogroup with only one or two processes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:693
+msgid "When -1 is displayed it means this information is not available."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:694
+#, fuzzy, no-wrap
+#| msgid "13.B< NI \\*(Em Nice Value >"
+msgid "B<AGNI \\*(Em Autogroup Nice Value >"
+msgstr "13. B<NI \\*(Em valeur de politesse>"
+
+#. type: Plain text
+#: ../man/top.1:700
+msgid ""
+"The autogroup nice value which affects scheduling of all processes in that "
+"group. A negative nice value means higher priority, whereas a positive nice "
+"value means lower priority."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:701
+#, fuzzy, no-wrap
+#| msgid " 3.B< CGNAME \\*(Em Control Group Name >"
+msgid "B<CGNAME \\*(Em Control Group Name >"
+msgstr " 3. B<CGNAME \\*(Em nom des groupes de contrôle>"
+
+#. type: Plain text
+#: ../man/top.1:705
+msgid ""
+"The name of the control group to which a process belongs, or `-' if not "
+"applicable for that process."
+msgstr ""
+"Les noms des groupes de contrôle auxquels appartient un processus, ou « - » "
+"si ça ne s'applique pas à ce processus."
+
+#. type: Plain text
+#: ../man/top.1:709
+msgid ""
+"This will typically be the last entry in the full list of control groups as "
+"shown under the next heading (CGROUPS). And as is true there, this field is "
+"also variable width."
+msgstr ""
+"Ce sera habituellement la dernière entrée de la liste complète de groupes de "
+"contrôle telle qu'elle apparaît sous l'en-tête suivant (B<CGROUPS>). Et "
+"comme cela s'avère ici, ce champ a aussi une largeur variable."
+
+#. type: TP
+#: ../man/top.1:710
+#, fuzzy, no-wrap
+#| msgid " 4.B< CGROUPS \\*(Em Control Groups >"
+msgid "B<CGROUPS \\*(Em Control Groups >"
+msgstr " 4. B<CGROUPS \\*(Em groupes de contrôle>"
+
+#. type: Plain text
+#: ../man/top.1:714
+msgid ""
+"The names of the control group(s) to which a process belongs, or `-' if not "
+"applicable for that process."
+msgstr ""
+"Les noms des groupes de contrôle auxquels appartient un processus, ou « - » "
+"si ça ne s'applique pas à ce processus."
+
+#. type: Plain text
+#: ../man/top.1:719
+msgid ""
+"Control Groups provide for allocating resources (cpu, memory, network "
+"bandwidth, etc.) among installation-defined groups of processes. They "
+"enable fine-grained control over allocating, denying, prioritizing, managing "
+"and monitoring those resources."
+msgstr ""
+"Les groupes de contrôle subviennent aux besoins d'allocations de ressources "
+"(processeur, mémoire, bande passante du réseau, etc.) des groupes de "
+"processus définis à l'installation. Ils permettent un contrôle fin de "
+"l'allocation en allouant, refusant, donnant des priorités, gérant et "
+"supervisant ces ressources."
+
+#. type: Plain text
+#: ../man/top.1:723
+msgid ""
+"Many different hierarchies of cgroups can exist simultaneously on a system "
+"and each hierarchy is attached to one or more subsystems. A subsystem "
+"represents a single resource."
+msgstr ""
+"De nombreuses hiérarchies de cgroups peuvent exister en même temps sur un "
+"système et chaque hiérarchie est attachée à au moins un sous-système. Un "
+"sous-système représente une unique ressource."
+
+#. type: Plain text
+#: ../man/top.1:730
+msgid ""
+"\\*(NT The CGROUPS field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters). Even so, such "
+"variable width fields could still suffer truncation. \\*(XT 5c. SCROLLING a "
+"Window for additional information on accessing any truncated data."
+msgstr ""
+"\\*(NT le champ « CGROUPS », contrairement à la plupart des colonnes, n'a "
+"pas de largeur fixe. La totalité de la largeur résiduelle de l'écran sera, "
+"lors de l'affichage, allouée à cette colonne et aux autres colonnes de "
+"taille variable (jusqu'à un maximum de \\*(WX caractères). Même dans ce cas, "
+"ces champs de taille variable pourraient être tronqués. \\*(XT "
+"B<5c. DÉPLACEMENT dans une fenêtre> pour obtenir plus de renseignements sur "
+"l'accès aux données tronquées."
+
+#. type: TP
+#: ../man/top.1:731
+#, fuzzy, no-wrap
+#| msgid " 5.B< CODE \\*(Em Code Size (KiB) >"
+msgid "B<CODE \\*(Em Code Size (KiB) >"
+msgstr " 5. B<CODE \\*(Em taille de code (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:735
+msgid ""
+"The amount of \\*(MP currently devoted to executable code, also known as the "
+"Text Resident Set size or TRS."
+msgstr ""
+"La quantité de \\*(MP allouée à un exécutable, aussi connue comme la taille "
+"du «\\ text resident set\\ » ou TRS."
+
+#. type: TP
+#: ../man/top.1:738
+#, fuzzy, no-wrap
+#| msgid " 6.B< COMMAND \\*(Em Command Name> or CommandB< Line >"
+msgid "B<COMMAND \\*(Em Command Name> or CommandB< Line >"
+msgstr " 6. B<COMMAND \\*(Em nom de commande> ou B<ligne de commande>"
+
+#. type: Plain text
+#: ../man/top.1:744
+msgid ""
+"Display the command line used to start a task or the name of the associated "
+"program. You toggle between commandI< line> andI< name> with `c', which is "
+"both a \\*(CO and an \\*(CI."
+msgstr ""
+"Afficher la ligne de commande utilisée pour lancer une tâche ou le nom du "
+"programme associé. Vous basculez entre la I<ligne> de commande et le I<nom> "
+"avec la touche «\\ c\\ », qui est à la fois une \\*(CO et une \\*(CI."
+
+#. type: Plain text
+#: ../man/top.1:749
+#, no-wrap
+msgid ""
+"When you've chosen to display command lines, processes without a command\n"
+"line (like kernel threads) will be shown with only the program name in\n"
+"brackets, as in this example:\n"
+" [kthreadd]\n"
+msgstr ""
+"Lorsque vous décidez d'afficher des lignes de commandes, les processus\n"
+"sans ligne de commande (tels les processus légers du noyau) seront\n"
+"présentés avec leur seul nom de programme entre crochets, comme dans\n"
+"cet exemple\\ :\n"
+" [kthreadd]\n"
+
+#. type: Plain text
+#: ../man/top.1:752
+msgid ""
+"This field may also be impacted by the forest view display mode. \\*(XC `V' "
+"\\*(CI for additional information regarding that mode."
+msgstr ""
+"Ce champ peut aussi être affecté par le I<mode d'affichage arborescent>. "
+"\\*(XC la \\*(CI « V » pour de plus amples renseignements sur ce mode."
+
+#. type: Plain text
+#: ../man/top.1:761
+msgid ""
+"\\*(NT The COMMAND field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters). Even so, such "
+"variable width fields could still suffer truncation. This is especially "
+"true for this field when command lines are being displayed (the `c' "
+"\\*(CI.) \\*(XT 5c. SCROLLING a Window for additional information on "
+"accessing any truncated data."
+msgstr ""
+"\\*(NT le champ « COMMAND », contrairement à la plupart des colonnes, n'a "
+"pas de largeur fixe. La totalité de la largeur résiduelle de l'écran sera, "
+"lors de l'affichage, allouée à cette colonne et aux autres colonnes de "
+"taille variable (jusqu'à un maximum de \\*(WX caractères). Même dans ce cas, "
+"ces champs de taille variable pourraient être tronqués. C'est "
+"particulièrement vrai pour ce champ quand les lignes de commandes sont "
+"affichées (la \\*(CI « c »). \\*(XT B<5c. DÉPLACEMENT dans une fenêtre> pour "
+"obtenir plus de renseignements sur l'accès aux données tronquées."
+
+#. type: TP
+#: ../man/top.1:762
+#, fuzzy, no-wrap
+#| msgid " 7.B< DATA \\*(Em Data + Stack Size (KiB) >"
+msgid "B<DATA \\*(Em Data + Stack Size (KiB) >"
+msgstr " 7. B<DATA \\*(Em taille des données + pile (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:768
+msgid ""
+"The amount of private memory I<reserved> by a process. It is also known as "
+"the Data Resident Set or DRS. Such memory may not yet be mapped to \\*(MP "
+"(RES) but will always be included in the \\*(MV (VIRT) amount."
+msgstr ""
+"La quantité de mémoire privée I<réservée> par un processus. Elle est "
+"également appelée « Data Resident Set » ou DRS. Ce type de mémoire ne peut "
+"pas encore être mappée dans la \\*(MP (RES) mais sera toujours incluse dans "
+"la quantité de \\*(MV (VIRT)."
+
+#. type: TP
+#: ../man/top.1:771
+#, no-wrap
+msgid "B<ELAPSED \\*(Em Elapsed Running Time>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:775
+msgid ""
+"The length of time since a process was started. Thus, the most recently "
+"started task will display the smallest time interval."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:780
+msgid ""
+"The value will be expressed as `HH,MM' (hours,minutes) but is subject to "
+"additional scaling if the interval becomes too great to fit column width. "
+"At that point it will be scaled to `DD+HH' (days+hours) and possibly beyond."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:781
+#, fuzzy, no-wrap
+#| msgid " 8.B< ENVIRON \\*(Em Environment variables >"
+msgid "B<ENVIRON \\*(Em Environment variables >"
+msgstr "8. B<ENVIRON \\*(Em variables d'environnement>"
+
+#. type: Plain text
+#: ../man/top.1:787
+msgid ""
+"Display all of the environment variables, if any, as seen by the respective "
+"processes. These variables will be displayed in their raw native order, not "
+"the sorted order you are accustomed to seeing with an unqualified `set'."
+msgstr ""
+"Afficher toutes les variables d'environnement, s'il y en a, telles qu'elles "
+"sont vues par les processus respectifs. Ces variables seront affichées dans "
+"leur ordre natif brut, pas dans l'ordre habituel renvoyé par « set » sans "
+"argument."
+
+#. type: Plain text
+#: ../man/top.1:795
+msgid ""
+"\\*(NT The ENVIRON field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters). Even so, such "
+"variable width fields could still suffer truncation. This is especially "
+"true for this field. \\*(XT 5c. SCROLLING a Window for additional "
+"information on accessing any truncated data."
+msgstr ""
+"\\*(NT le champ « ENVIRON », contrairement à la plupart des colonnes, n'a "
+"pas de largeur fixe. La totalité de la largeur résiduelle de l'écran sera, "
+"lors de l'affichage, allouée à cette colonne et aux autres colonnes de "
+"taille variable (jusqu'à un maximum de \\*(WX caractères). Même dans ce cas, "
+"ces champs de taille variable pourraient être tronqués. C'est "
+"particulièrement vrai pour ce champ. \\*(XT B<5c. DÉPLACEMENT dans une "
+"fenêtre> pour obtenir plus de renseignements sur l'accès aux données "
+"tronquées."
+
+#. type: TP
+#: ../man/top.1:796
+#, no-wrap
+msgid "B<EXE \\*(Em Executable Path >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:800
+msgid ""
+"Where available, this is the full path to the executable, including the "
+"program name."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:804
+#, fuzzy
+#| msgid ""
+#| "\\*(NT The CGROUPS field, unlike most columns, is not fixed-width. When "
+#| "displayed, it plus any other variable width columns will be allocated all "
+#| "remaining screen width (up to the maximum \\*(WX characters). Even so, "
+#| "such variable width fields could still suffer truncation. \\*(XT 5c. "
+#| "SCROLLING a Window for additional information on accessing any truncated "
+#| "data."
+msgid ""
+"\\*(NT The EXE field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters)."
+msgstr ""
+"\\*(NT le champ « CGROUPS », contrairement à la plupart des colonnes, n'a "
+"pas de largeur fixe. La totalité de la largeur résiduelle de l'écran sera, "
+"lors de l'affichage, allouée à cette colonne et aux autres colonnes de "
+"taille variable (jusqu'à un maximum de \\*(WX caractères). Même dans ce cas, "
+"ces champs de taille variable pourraient être tronqués. \\*(XT "
+"B<5c. DÉPLACEMENT dans une fenêtre> pour obtenir plus de renseignements sur "
+"l'accès aux données tronquées."
+
+#. type: TP
+#: ../man/top.1:805
+#, fuzzy, no-wrap
+#| msgid " 9.B< Flags \\*(Em Task Flags >"
+msgid "B<Flags \\*(Em Task Flags >"
+msgstr " 9. B<Flags \\*(Em indicateurs de tâche>"
+
+#. type: Plain text
+#: ../man/top.1:810
+msgid ""
+"This column represents the task's current scheduling flags which are "
+"expressed in hexadecimal notation and with zeros suppressed. These flags "
+"are officially documented in E<lt>linux/sched.hE<gt>."
+msgstr ""
+"Cette colonne représente les indicateurs de tâches actuellement "
+"ordonnancées. Ces indicateurs sont exprimés en notation hexadécimale sans "
+"les zéros. Ils sont officiellement documentés dans E<lt>linux/sched.hE<gt>."
+
+#. type: TP
+#: ../man/top.1:811
+#, fuzzy, no-wrap
+#| msgid "10.B< GID \\*(Em Group Id >"
+msgid "B<GID \\*(Em Group Id >"
+msgstr " 10. B<GID \\*(Em identifiant de groupe>"
+
+#. type: Plain text
+#: ../man/top.1:814
+msgid "TheI< effective> group ID."
+msgstr "L'identifiant de groupe I<effectif>."
+
+#. type: TP
+#: ../man/top.1:815
+#, fuzzy, no-wrap
+#| msgid "11.B< GROUP \\*(Em Group Name >"
+msgid "B<GROUP \\*(Em Group Name >"
+msgstr "11. B<GROUP \\*(Em nom du groupe>"
+
+#. type: Plain text
+#: ../man/top.1:818
+msgid "TheI< effective> group name."
+msgstr "Le nom de groupe I<effectif>."
+
+#. type: TP
+#: ../man/top.1:819
+#, fuzzy, no-wrap
+#| msgid "42.B< UID \\*(Em User Id >"
+msgid "B<LOGID \\*(Em Login User Id >"
+msgstr "42. B<UID \\*(Em identifiant de l'utilisateur>"
+
+#. type: Plain text
+#: ../man/top.1:823
+#, fuzzy
+#| msgid ""
+#| "A number representing the NUMA node associated with the last used "
+#| "processor (`P'). When -1 is displayed it means that NUMA information is "
+#| "not available."
+msgid ""
+"The user ID used atI< login>. When -1 is displayed it means this "
+"information is not available."
+msgstr ""
+"Un nombre représentant le nœud NUMA associé au dernier processeur utilisé "
+"(« P »). Quand B<-1> est affiché, cela signifie qu'il n'y a pas "
+"d'informations disponibles sur le NUMA."
+
+#. type: TP
+#: ../man/top.1:824
+#, fuzzy, no-wrap
+#| msgid "12.B< LXC \\*(Em Lxc Container Name >"
+msgid "B<LXC \\*(Em Lxc Container Name >"
+msgstr "12. B<LXC \\*(Em nom de conteneur lxc>"
+
+#. type: Plain text
+#: ../man/top.1:828
+msgid ""
+"The name of the lxc container within which a task is running. If a process "
+"is not running inside a container, a dash (`-') will be shown."
+msgstr ""
+"Le nom du conteneur lxc dans lequel une tâche est exécutée. Si un processus "
+"n'est pas exécuté dans un conteneur, un tiret (« - ») est affiché."
+
+#. type: TP
+#: ../man/top.1:829
+#, fuzzy, no-wrap
+#| msgid "13.B< NI \\*(Em Nice Value >"
+msgid "B<NI \\*(Em Nice Value >"
+msgstr "13. B<NI \\*(Em valeur de politesse>"
+
+#. type: Plain text
+#: ../man/top.1:836
+msgid ""
+"The nice value of the task. A negative nice value means higher priority, "
+"whereas a positive nice value means lower priority. Zero in this field "
+"simply means priority will not be adjusted in determining a task's dispatch-"
+"ability."
+msgstr ""
+"La valeur de politesse de la tâche. Une valeur négative signifie une "
+"priorité plus haute, à l'inverse d'une valeur positive. Un zéro signifie "
+"simplement que le lancement d'une tâche ne tiendra pas compte de la priorité."
+
+#. type: Plain text
+#: ../man/top.1:840
+msgid ""
+"\\*(NT This value only affects scheduling priority relative to other "
+"processes in the same autogroup. \\*(XC `AGID' and `AGNI' fields for "
+"additional information on autogroups."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:841
+#, fuzzy, no-wrap
+#| msgid "14.B< NU \\*(Em Last known NUMA node >"
+msgid "B<NU \\*(Em Last known NUMA node >"
+msgstr "14. B<NU \\*(Em dernier nœud NUMA connu>"
+
+#. type: Plain text
+#: ../man/top.1:845
+msgid ""
+"A number representing the NUMA node associated with the last used processor "
+"(`P'). When -1 is displayed it means that NUMA information is not available."
+msgstr ""
+"Un nombre représentant le nœud NUMA associé au dernier processeur utilisé "
+"(« P »). Quand B<-1> est affiché, cela signifie qu'il n'y a pas "
+"d'informations disponibles sur le NUMA."
+
+#. type: Plain text
+#: ../man/top.1:847
+#, fuzzy
+#| msgid ""
+#| "\\*(XC `'2' and `3' \\*(CIs for additional NUMA provisions affecting the "
+#| "\\*(SA."
+msgid ""
+"\\*(XC `2' and `3' \\*(CIs for additional NUMA provisions affecting the "
+"\\*(SA."
+msgstr ""
+"\\*(XC les commandes interactives « 2 » et « 3 » pour d'autres dispositions "
+"de NUMA affectant la \\*(SA."
+
+#. type: TP
+#: ../man/top.1:848
+#, fuzzy, no-wrap
+#| msgid "15.B< OOMa \\*(Em Out of Memory Adjustment Factor >"
+msgid "B<OOMa \\*(Em Out of Memory Adjustment Factor >"
+msgstr "15.B< OOMa \\*(Em facteur d'ajustement d'insuffisance de mémoire>"
+
+#. type: Plain text
+#: ../man/top.1:853
+msgid ""
+"The value, ranging from -1000 to +1000, added to the current out of memory "
+"score (OOMs) which is then used to determine which task to kill when memory "
+"is exhausted."
+msgstr ""
+"La valeur, entre -1000 et +1000, ajoutée au score actuel d'insuffisance de "
+"mémoire (OOMs) qui est ensuite utilisé pour déterminer quelle tâche tuer "
+"quand la mémoire est épuisée."
+
+#. type: TP
+#: ../man/top.1:854
+#, fuzzy, no-wrap
+#| msgid "16.B< OOMs \\*(Em Out of Memory Score >"
+msgid "B<OOMs \\*(Em Out of Memory Score >"
+msgstr "16.B< OOMs \\*(Em score d'insuffisance de mémoire>"
+
+#. type: Plain text
+#: ../man/top.1:859
+msgid ""
+"The value, ranging from 0 to +1000, used to select task(s) to kill when "
+"memory is exhausted. Zero translates to `never kill' whereas 1000 means "
+"`always kill'."
+msgstr ""
+"La valeur, entre 0 et +1000, utilisée pour sélectionner la ou les tâches à "
+"tuer quand la mémoire est épuisée. Zéro se traduit par « ne jamais tuer » "
+"tandis que 1000 signifie « toujours tuer »."
+
+#. type: TP
+#: ../man/top.1:860
+#, fuzzy, no-wrap
+#| msgid "17.B< P \\*(Em Last used \\*(PU (SMP) >"
+msgid "B<P \\*(Em Last used \\*(PU (SMP) >"
+msgstr "17. B<P \\*(Em dernier \\*(PU utilisé (SMP)>"
+
+#. type: Plain text
+#: ../man/top.1:868
+msgid ""
+"A number representing the last used processor. In a true SMP environment "
+"this will likely change frequently since the kernel intentionally uses weak "
+"affinity. Also, the very act of running \\*(We may break this weak affinity "
+"and cause more processes to change \\*(PUs more often (because of the extra "
+"demand for \\*(Pu time)."
+msgstr ""
+"Un nombre représentant le dernier processeur utilisé. Dans un véritable "
+"environnement SMP, cette valeur change fréquemment puisque le noyau utilise "
+"intentionnellement une affinité faible. Ainsi, l'activité propre de \\*(WE "
+"peut casser cette faible affinité et faire en sorte qu'un nombre plus élevé "
+"de processus change plus souvent de \\*(PU (à cause d'une demande "
+"supplémentaire de temps \\*(PU)."
+
+#. type: TP
+#: ../man/top.1:869
+#, fuzzy, no-wrap
+#| msgid "18.B< PGRP \\*(Em Process Group Id >"
+msgid "B<PGRP \\*(Em Process Group Id >"
+msgstr "18. B<PGRP \\*(Em identifiant de groupe de processus>"
+
+#. type: Plain text
+#: ../man/top.1:878
+msgid ""
+"Every process is member of a unique process group which is used for "
+"distribution of signals and by terminals to arbitrate requests for their "
+"input and output. When a process is created (forked), it becomes a member "
+"of the process group of its parent. By convention, this value equals the "
+"process ID (\\*(Xa PID) of the first member of a process group, called the "
+"process group leader."
+msgstr ""
+"Tous les processus font partie d'un seul groupe de processus qui est utilisé "
+"pour la distribution de signaux et par les terminaux pour arbitrer les "
+"requêtes d'entrées et sorties. Quand un processus est créé (forké), il "
+"devient membre du groupe de processus de son parent. Par convention, cette "
+"valeur est l'identifiant de processus (\\*(Xa PID) du premier membre du "
+"groupe de processus, appelé le meneur de groupe de processus."
+
+#. type: TP
+#: ../man/top.1:879
+#, fuzzy, no-wrap
+#| msgid "19.B< PID \\*(Em Process Id >"
+msgid "B<PID \\*(Em Process Id >"
+msgstr "19. B<PID \\*(Em identifiant de processus>"
+
+#. type: Plain text
+#: ../man/top.1:884
+msgid ""
+"The task's unique process ID, which periodically wraps, though never "
+"restarting at zero. In kernel terms, it is a dispatchable entity defined by "
+"a task_struct."
+msgstr ""
+"L'identifiant unique du processus de la tâche. Il s'adapte périodiquement, "
+"sans toutefois redémarrer à zéro. Du point de vue du noyau, c'est une entité "
+"distribuable définie par une « task_struct »."
+
+#. type: Plain text
+#: ../man/top.1:889
+msgid ""
+"This value may also be used as: a process group ID (\\*(Xa PGRP); a session "
+"ID for the session leader (\\*(Xa SID); a thread group ID for the thread "
+"group leader (\\*(Xa TGID); and a TTY process group ID for the process group "
+"leader (\\*(Xa TPGID)."
+msgstr ""
+"Cette valeur peut aussi être utilisée comme : identifiant de groupe de "
+"processus (\\*(Xa PGRP), identifiant de session pour le meneur de session "
+"(\\*(Xa SID), identifiant de groupe de processus légers pour le meneur de "
+"groupe de processus légers (\\*(Xa TGID) et identifiant de groupe de "
+"processus contrôlant le terminal pour le meneur de groupe de processus "
+"(\\*(Xa TPGID)."
+
+#. type: TP
+#: ../man/top.1:890
+#, fuzzy, no-wrap
+#| msgid "20.B< PPID \\*(Em Parent Process Id >"
+msgid "B<PPID \\*(Em Parent Process Id >"
+msgstr "20. B<PPID \\*(Em PID du processus parent>"
+
+#. type: Plain text
+#: ../man/top.1:893
+msgid "The process ID (pid) of a task's parent."
+msgstr "L'identifiant de processus (PID) du parent de la tâche."
+
+#. type: TP
+#: ../man/top.1:894
+#, fuzzy, no-wrap
+#| msgid "21.B< PR \\*(Em Priority >"
+msgid "B<PR \\*(Em Priority >"
+msgstr "21. B<PR \\*(Em priorité>"
+
+#. type: Plain text
+#: ../man/top.1:899
+msgid ""
+"The scheduling priority of the task. If you see `rt' in this field, it "
+"means the task is running under real time scheduling priority."
+msgstr ""
+"La priorité d'ordonnancement de la tâche. Si « rt » est dans ce champ, cela "
+"signifie que la tâche est exécutée avec une priorité d'ordonnancement "
+"« temps réel »."
+
+# s/operating/operating system/
+#. type: Plain text
+#: ../man/top.1:903
+msgid ""
+"Under linux, real time priority is somewhat misleading since traditionally "
+"the operating itself was not preemptible. And while the 2.6 kernel can be "
+"made mostly preemptible, it is not always so."
+msgstr ""
+"Sous Linux, la priorité temps réel est quelque peu trompeuse puisque le "
+"système d'exploitation lui-même n'était généralement pas préemptible. Même "
+"si le noyau 2.6 peut être presque entièrement préemptible, ce n'est pas "
+"toujours le cas."
+
+#. type: TP
+#: ../man/top.1:904
+#, fuzzy, no-wrap
+#| msgid "22.B< RES \\*(Em Resident Memory Size (KiB) >"
+msgid "B<PSS \\*(Em Proportional Resident Memory, smaps (KiB) >"
+msgstr "22. B<RES \\*(Em taille de mémoire résidente (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:909
+msgid ""
+"The proportion of this task's share of `RSS' where each page is divided by "
+"the number of processes sharing it. It is also the sum of the `PSan', "
+"`PSfd' and `PSsh' fields."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:912
+msgid ""
+"For example, if a process has 1000 resident pages alone and 1000 resident "
+"pages shared with another process, its `PSS' would be 1500 (times page size)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:914 ../man/top.1:927 ../man/top.1:951 ../man/top.1:1114
+msgid "\\*(ZX."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:917
+#, fuzzy
+#| msgid "23.B< RSan \\*(Em Resident Anonymous Memory Size (KiB) >"
+msgid "B<PSan \\*(Em Proportional Anonymous Memory, smaps (KiB) >"
+msgstr "23. B<RSan \\*(Em taille de mémoire résidente anonyme (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:919
+#, fuzzy
+#| msgid "24.B< RSfd \\*(Em Resident File-Backed Memory Size (KiB) >"
+msgid "B<PSfd \\*(Em Proportional File Memory, smaps (KiB) >"
+msgstr ""
+"24. B<RSfd \\*(Em taille de mémoire résidente sauvée sur fichier (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:921
+#, fuzzy
+#| msgid "26.B< RSsh \\*(Em Resident Shared Memory Size (KiB) >"
+msgid "B<PSsh \\*(Em Proportional Shmem Memory, smaps (KiB) >"
+msgstr "26. B<RSsh \\*(Em taille de mémoire résidente partagée (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:925
+msgid ""
+"As was true for `PSS' above (total proportional resident memory), these "
+"fields represent the proportion of this task's share of each type of memory "
+"divided by the number of processes sharing it."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:929
+#, fuzzy, no-wrap
+#| msgid "22.B< RES \\*(Em Resident Memory Size (KiB) >"
+msgid "B<RES \\*(Em Resident Memory Size (KiB) >"
+msgstr "22. B<RES \\*(Em taille de mémoire résidente (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:934
+#, fuzzy
+#| msgid ""
+#| "A subset of the virtual address space (VIRT) representing the non-swapped "
+#| "\\*(MP a task is currently using. It is also the sum of the RSan, RSfd "
+#| "and RSsh fields."
+msgid ""
+"A subset of the virtual address space (VIRT) representing the non-swapped "
+"\\*(MP a task is currently using. It is also the sum of the `RSan', `RSfd' "
+"and `RSsh' fields."
+msgstr ""
+"Un sous-ensemble de l'espace d'adresses virtuelles (VIRT représentant la "
+"\\*(MP non transférée qu'une tâche utilise actuellement. C'est aussi la "
+"somme des champs RSan, RSfd et RSsh."
+
+#. type: Plain text
+#: ../man/top.1:938
+msgid ""
+"It can include private anonymous pages, private pages mapped to files "
+"(including program images and shared libraries) plus shared anonymous "
+"pages. All such memory is backed by the \\*(MS represented separately under "
+"SWAP."
+msgstr ""
+"Il peut inclure des pages privées anonymes, des pages privées mappées vers "
+"des fichiers (y compris des images de programme et des bibliothèques "
+"partagées) plus des pages partagées anonymes. Toute cette mémoire s'appuie "
+"sur le \\*(MS représenté à part comme SWAP."
+
+#. type: Plain text
+#: ../man/top.1:941
+msgid ""
+"Lastly, this field may also include shared file-backed pages which, when "
+"modified, act as a dedicated \\*(MS and thus will never impact SWAP."
+msgstr ""
+"Enfin, ce champ peut aussi inclure des pages sauvées sur fichier qui, "
+"lorsqu'elles sont modifiées, se conduisent comme un \\*(MS dédié et donc "
+"n'impacteront jamais SWAP."
+
+#. type: TP
+#: ../man/top.1:944
+#, fuzzy, no-wrap
+#| msgid "22.B< RES \\*(Em Resident Memory Size (KiB) >"
+msgid "B<RSS \\*(Em Resident Memory, smaps (KiB) >"
+msgstr "22. B<RES \\*(Em taille de mémoire résidente (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:949
+msgid ""
+"Another, more precise view of process non-swapped \\*(MP. It is obtained "
+"from the `smaps_rollup' file and is generally slightly larger than that "
+"shown for `RES'."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:952
+#, fuzzy, no-wrap
+#| msgid "23.B< RSan \\*(Em Resident Anonymous Memory Size (KiB) >"
+msgid "B<RSan \\*(Em Resident Anonymous Memory Size (KiB) >"
+msgstr "23. B<RSan \\*(Em taille de mémoire résidente anonyme (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:956
+msgid ""
+"A subset of resident memory (RES) representing private pages not mapped to a "
+"file."
+msgstr ""
+"Un sous-ensemble de la mémoire résidente (RES) représentant les pages "
+"privées non mappées vers un fichier."
+
+#. type: TP
+#: ../man/top.1:957
+#, fuzzy, no-wrap
+#| msgid "24.B< RSfd \\*(Em Resident File-Backed Memory Size (KiB) >"
+msgid "B<RSfd \\*(Em Resident File-Backed Memory Size (KiB) >"
+msgstr "24. B<RSfd \\*(Em taille de mémoire résidente sauvée sur fichier (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:962
+msgid ""
+"A subset of resident memory (RES) representing the implicitly shared pages "
+"supporting program images and shared libraries. It also includes explicit "
+"file mappings, both private and shared."
+msgstr ""
+"Un sous-ensemble de la mémoire résidente (RES) représentant les pages "
+"partagées implicites gérant les images de programme et les bibliothèques "
+"partagées. Il intègre aussi des mappages explicites de fichier, partagé ou "
+"privé."
+
+#. type: TP
+#: ../man/top.1:963
+#, fuzzy, no-wrap
+#| msgid "25.B< RSlk \\*(Em Resident Locked Memory Size (KiB) >"
+msgid "B<RSlk \\*(Em Resident Locked Memory Size (KiB) >"
+msgstr "25. B<RSlk \\*(Em taille de mémoire résidente verrouillée (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:966
+msgid "A subset of resident memory (RES) which cannot be swapped out."
+msgstr ""
+"Un sous-ensemble de la mémoire résidente (RES) qui ne peut pas être "
+"transféré."
+
+#. type: TP
+#: ../man/top.1:967
+#, fuzzy, no-wrap
+#| msgid "26.B< RSsh \\*(Em Resident Shared Memory Size (KiB) >"
+msgid "B<RSsh \\*(Em Resident Shared Memory Size (KiB) >"
+msgstr "26. B<RSsh \\*(Em taille de mémoire résidente partagée (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:971
+msgid ""
+"A subset of resident memory (RES) representing the explicitly shared "
+"anonymous shm*/mmap pages."
+msgstr ""
+"Un sous-ensemble de la mémoire résidente (RES) représentant les pages I<shm*/"
+"mmap> anonymes explicitement partagées."
+
+#. type: TP
+#: ../man/top.1:972
+#, fuzzy, no-wrap
+#| msgid "27.B< RUID \\*(Em Real User Id >"
+msgid "B<RUID \\*(Em Real User Id >"
+msgstr "27. B<RUID \\*(Em identifiant de l'utilisateur réel>"
+
+#. type: Plain text
+#: ../man/top.1:975
+msgid "TheI< real> user ID."
+msgstr "L'identifiant d'utilisateur I<réel> (RUID)."
+
+#. type: TP
+#: ../man/top.1:976
+#, fuzzy, no-wrap
+#| msgid "28.B< RUSER \\*(Em Real User Name >"
+msgid "B<RUSER \\*(Em Real User Name >"
+msgstr "28. B<RUSER \\*(Em nom de l'utilisateur réel>"
+
+#. type: Plain text
+#: ../man/top.1:979
+msgid "TheI< real> user name."
+msgstr "Le nom d'utilisateur I<réel>."
+
+#. type: TP
+#: ../man/top.1:980
+#, fuzzy, no-wrap
+#| msgid "29.B< S \\*(Em Process Status >"
+msgid "B<S \\*(Em Process Status >"
+msgstr "29. B<S \\*(Em état du processus>"
+
+#. type: Plain text
+#: ../man/top.1:990
+#, no-wrap
+msgid ""
+"The status of the task which can be one of:\n"
+" B<D> = uninterruptible sleep\n"
+" B<I> = idle\n"
+" B<R> = running\n"
+" B<S> = sleeping\n"
+" B<T> = stopped by job control signal\n"
+" B<t> = stopped by debugger during trace\n"
+" B<Z> = zombie\n"
+msgstr ""
+"L'état de la tâche peut être\\ :\n"
+" B<D> = en sommeil non interruptible\n"
+" B<I> = en veille\n"
+" B<R> = en cours d'exécution\n"
+" B<S> = en sommeil\n"
+" B<T> = tracé ou arrêté\n"
+" B<t> = arrêté par le débogueur durant le traçage\n"
+" B<Z> = zombie\n"
+
+#. type: Plain text
+#: ../man/top.1:995
+msgid ""
+"Tasks shown as running should be more properly thought of as ready to run "
+"\\*(Em their task_struct is simply represented on the Linux run-queue. Even "
+"without a true SMP machine, you may see numerous tasks in this state "
+"depending on \\*(We's delay interval and nice value."
+msgstr ""
+"Les tâches dites « en cours d'exécution » doivent plutôt être considérées "
+"comme « prêtes à s'exécuter » \\*(Em leur task_struct est simplement "
+"représentée sur la file d'attente d'exécution du noyau. Même en l'absence "
+"d'une véritable machine SMP, vous pouvez voir de nombreuses tâches dans cet "
+"état en fonction de la valeur du délai et de la valeur de politesse de "
+"\\*(WE."
+
+#. type: TP
+#: ../man/top.1:996
+#, fuzzy, no-wrap
+#| msgid "30.B< SHR \\*(Em Shared Memory Size (KiB) >"
+msgid "B<SHR \\*(Em Shared Memory Size (KiB) >"
+msgstr "30. B<SHR \\*(Em taille de mémoire partagée (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:1002
+msgid ""
+"A subset of resident memory (RES) that may be used by other processes. It "
+"will include shared anonymous pages and shared file-backed pages. It also "
+"includes private pages mapped to files representing program images and "
+"shared libraries."
+msgstr ""
+"Un sous-ensemble de la mémoire résidente (RES) qui peut être utilisé par "
+"d'autres processus. Il inclura les pages partagées anonymes et les pages "
+"partagées sauvées sur fichier. Il comprend aussi les pages privées mappées "
+"vers des fichiers représentant des images de programme et des bibliothèques "
+"partagées."
+
+#. type: TP
+#: ../man/top.1:1005
+#, fuzzy, no-wrap
+#| msgid "31.B< SID \\*(Em Session Id >"
+msgid "B<SID \\*(Em Session Id >"
+msgstr "31. B<SID \\*(Em identifiant de session>"
+
+#. type: Plain text
+#: ../man/top.1:1013
+msgid ""
+"A session is a collection of process groups (\\*(Xa PGRP), usually "
+"established by the login shell. A newly forked process joins the session of "
+"its creator. By convention, this value equals the process ID (\\*(Xa PID) "
+"of the first member of the session, called the session leader, which is "
+"usually the login shell."
+msgstr ""
+"Une session est un ensemble de groupes de processus (\\*(Xa PGRP), souvent "
+"établi par l'interpréteur de commandes de connexion. Un processus "
+"nouvellement engendré rejoint la session de son créateur. Par convention, "
+"cette valeur est l'identifiant de processus (\\*(Xa PID) du premier membre "
+"de la session, appelé le meneur de session, qui est généralement "
+"l'interpréteur de commandes de connexion."
+
+#. type: TP
+#: ../man/top.1:1014
+#, no-wrap
+msgid "B<STARTED \\*(Em Start Time Interval>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1018
+msgid ""
+"The length of time since system boot when a process started. Thus, the most "
+"recently started task will display the largest time interval."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1022
+msgid ""
+"The value will be expressed as `MM:SS' (minutes:seconds). But if the "
+"interval is too great to fit column width it will be scaled as `HH,"
+"MM' (hours,minutes) and possibly beyond."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1023
+#, fuzzy, no-wrap
+#| msgid "32.B< SUID \\*(Em Saved User Id >"
+msgid "B<SUID \\*(Em Saved User Id >"
+msgstr "32. B<SUID \\*(Em identifiant de l'utilisateur sauvegardé>"
+
+#. type: Plain text
+#: ../man/top.1:1026
+msgid "TheI< saved> user ID."
+msgstr "L'identifiant d'utilisateur I<sauvegardé> (SUID)."
+
+#. type: TP
+#: ../man/top.1:1027
+#, fuzzy, no-wrap
+#| msgid "33.B< SUPGIDS \\*(Em Supplementary Group IDs >"
+msgid "B<SUPGIDS \\*(Em Supplementary Group IDs >"
+msgstr "33. B<SUPGIDS \\*(Em identifiants de groupes additionnels>"
+
+#. type: Plain text
+#: ../man/top.1:1032
+msgid ""
+"The IDs of any supplementary group(s) established at login or inherited from "
+"a task's parent. They are displayed in a comma delimited list."
+msgstr ""
+"Les identifiants de groupes additionnels établis à la connexion ou hérités "
+"d'une tâche parente. Ils sont affichés en liste, séparés par des virgules."
+
+#. type: Plain text
+#: ../man/top.1:1036
+#, fuzzy
+#| msgid ""
+#| "\\*(NT The SUPGIDS field, unlike most columns, is not fixed-width. When "
+#| "displayed, it plus any other variable width columns will be allocated all "
+#| "remaining screen width (up to the maximum \\*(WX characters). Even so, "
+#| "such variable width fields could still suffer truncation. \\*(XT 5c. "
+#| "SCROLLING a Window for additional information on accessing any truncated "
+#| "data."
+msgid ""
+"\\*(NT The SUPGIDS field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters)."
+msgstr ""
+"\\*(NT le champ « SUPGIDS », contrairement à la plupart des colonnes, n'a "
+"pas de largeur fixe. La totalité de la largeur résiduelle de l'écran sera, "
+"lors de l'affichage, allouée à cette colonne et aux autres colonnes de "
+"taille variable (jusqu'à un maximum de \\*(WX caractères). Même dans ce cas, "
+"ces champs de taille variable pourraient être tronqués. \\*(XT "
+"B<5c. DÉPLACEMENT dans une fenêtre> pour obtenir plus de renseignements sur "
+"l'accès aux données tronquées."
+
+#. type: TP
+#: ../man/top.1:1037
+#, fuzzy, no-wrap
+#| msgid "34.B< SUPGRPS \\*(Em Supplementary Group Names >"
+msgid "B<SUPGRPS \\*(Em Supplementary Group Names >"
+msgstr "34. B<SUPGRPS \\*(Em noms de groupes additionnels>"
+
+#. type: Plain text
+#: ../man/top.1:1042
+msgid ""
+"The names of any supplementary group(s) established at login or inherited "
+"from a task's parent. They are displayed in a comma delimited list."
+msgstr ""
+"Les noms de groupes additionnels établis à la connexion ou hérités d'une "
+"tâche parente. Ils sont affichés en liste, séparés par des virgules."
+
+#. type: Plain text
+#: ../man/top.1:1046
+#, fuzzy
+#| msgid ""
+#| "\\*(NT The SUPGRPS field, unlike most columns, is not fixed-width. When "
+#| "displayed, it plus any other variable width columns will be allocated all "
+#| "remaining screen width (up to the maximum \\*(WX characters). Even so, "
+#| "such variable width fields could still suffer truncation. \\*(XT 5c. "
+#| "SCROLLING a Window for additional information on accessing any truncated "
+#| "data."
+msgid ""
+"\\*(NT The SUPGRPS field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters)."
+msgstr ""
+"\\*(NT le champ « SUPGRPS », contrairement à la plupart des colonnes, n'a "
+"pas de largeur fixe. La totalité de la largeur résiduelle de l'écran sera, "
+"lors de l'affichage, allouée à cette colonne et aux autres colonnes de "
+"taille variable (jusqu'à un maximum de \\*(WX caractères). Même dans ce cas, "
+"ces champs de taille variable pourraient être tronqués. \\*(XT "
+"B<5c. DÉPLACEMENT dans une fenêtre> pour obtenir plus de renseignements sur "
+"l'accès aux données tronquées."
+
+#. type: TP
+#: ../man/top.1:1047
+#, fuzzy, no-wrap
+#| msgid "35.B< SUSER \\*(Em Saved User Name >"
+msgid "B<SUSER \\*(Em Saved User Name >"
+msgstr "35. B<SUSER \\*(Em nom de l'utilisateur sauvegardé>"
+
+#. type: Plain text
+#: ../man/top.1:1050
+msgid "TheI< saved> user name."
+msgstr "Le nom d'utilisateur I<sauvegardé>."
+
+#. type: TP
+#: ../man/top.1:1051
+#, fuzzy, no-wrap
+#| msgid "36.B< SWAP \\*(Em Swapped Size (KiB) >"
+msgid "B<SWAP \\*(Em Swapped Size (KiB) >"
+msgstr "36. B<SWAP \\*(Em taille en espace d'échange (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:1055
+msgid ""
+"The formerly resident portion of a task's address space written to the "
+"\\*(MS when \\*(MP becomes over committed."
+msgstr ""
+"La partie anciennement résidente de l'espace d'adresses d'une tâche écrite "
+"dans le \\*(MS quand la \\*(MP devient insuffisante."
+
+#. type: TP
+#: ../man/top.1:1058
+#, fuzzy, no-wrap
+#| msgid "37.B< TGID \\*(Em Thread Group Id >"
+msgid "B<TGID \\*(Em Thread Group Id >"
+msgstr "37. B<TGID \\*(Em identifiant de groupe de processus légers>"
+
+#. type: Plain text
+#: ../man/top.1:1063
+msgid ""
+"The ID of the thread group to which a task belongs. It is the PID of the "
+"thread group leader. In kernel terms, it represents those tasks that share "
+"an mm_struct."
+msgstr ""
+"L'identifiant de groupe de processus légers (« thread ») auquel une tâche "
+"appartient. C'est le PID du meneur de groupe de processus légers. Du point "
+"de vue du noyau, il représente les tâches qui partagent une « mm_struct »."
+
+#. type: TP
+#: ../man/top.1:1064
+#, fuzzy, no-wrap
+#| msgid "38.B< TIME \\*(Em \\*(PU Time >"
+msgid "B<TIME \\*(Em \\*(PU Time >"
+msgstr "38. B<TIME \\*(Em temps \\*(PU>"
+
+#. type: Plain text
+#: ../man/top.1:1071
+msgid ""
+"Total \\*(PU time the task has used since it started. When Cumulative mode "
+"is \\*O, each process is listed with the \\*(Pu time that it and its dead "
+"children have used. You toggle Cumulative mode with `S', which is both a "
+"\\*(CO and an \\*(CI. \\*(XC `S' \\*(CI for additional information "
+"regarding this mode."
+msgstr ""
+"Le temps \\*(PU total utilisé par la tâche depuis son lancement. Quand le "
+"« mode Cumulatif » est \\*O, chaque processus est affiché avec le temps "
+"\\*(Pu que lui et ses enfants tués ont utilisé. Vous pouvez basculer en «\\ "
+"mode Cumulatif\\ » avec «\\ S\\ », qui est à la fois une \\*(CO et une "
+"\\*(CI. \\*(XC la \\*(CI «\\ S\\ » pour plus d'informations sur ce mode."
+
+#. type: TP
+#: ../man/top.1:1072
+#, fuzzy, no-wrap
+#| msgid "39.B< TIME+ \\*(Em \\*(PU Time, hundredths >"
+msgid "B<TIME+ \\*(Em \\*(PU Time, hundredths >"
+msgstr "39. B<TIME+ \\*(Em temps \\*(PU, en centième de seconde>"
+
+#. type: Plain text
+#: ../man/top.1:1076
+msgid ""
+"The same as TIME, but reflecting more granularity through hundredths of a "
+"second."
+msgstr ""
+"Identique à «\\ TIME\\ », mais avec une précision supérieure grâce aux "
+"centièmes de seconde."
+
+#. type: TP
+#: ../man/top.1:1077
+#, fuzzy, no-wrap
+#| msgid "40.B< TPGID \\*(Em Tty Process Group Id >"
+msgid "B<TPGID \\*(Em Tty Process Group Id >"
+msgstr "40. B<TPGID \\*(Em identifiant de groupe de processus contrôlant le terminal>"
+
+#. type: Plain text
+#: ../man/top.1:1083
+msgid ""
+"The process group ID of the foreground process for the connected tty, or -1 "
+"if a process is not connected to a terminal. By convention, this value "
+"equals the process ID (\\*(Xa PID) of the process group leader (\\*(Xa PGRP)."
+msgstr ""
+"L'identifiant de groupe de processus du processus au premier plan pour le "
+"terminal connecté, ou B<-1> si un processus n'est pas connecté au terminal. "
+"Par convention, cette valeur est l'identifiant de processus (\\*(Xa PID) du "
+"meneur de groupe de processus (\\*(Xa PGRP)."
+
+#. type: TP
+#: ../man/top.1:1084
+#, fuzzy, no-wrap
+#| msgid "41.B< TTY \\*(Em Controlling Tty >"
+msgid "B<TTY \\*(Em Controlling Tty >"
+msgstr "41 .B<TTY \\*(Em terminal de contrôle>"
+
+#. type: Plain text
+#: ../man/top.1:1091
+msgid ""
+"The name of the controlling terminal. This is usually the device (serial "
+"port, pty, etc.) from which the process was started, and which it uses for "
+"input or output. However, a task need not be associated with a terminal, in "
+"which case you'll see `?' displayed."
+msgstr ""
+"Le nom du terminal de contrôle. Habituellement, il s'agit du périphérique "
+"(port série, pty, etc.) à partir duquel le processus a été lancé, et qu'il "
+"utilise pour ses entrées ou ses sorties. Au cas où un terminal n'est pas "
+"associé à une tâche, ce qui n'est pas obligatoire, un «\\ ?\\ » est affiché."
+
+#. type: TP
+#: ../man/top.1:1092
+#, fuzzy, no-wrap
+#| msgid "42.B< UID \\*(Em User Id >"
+msgid "B<UID \\*(Em User Id >"
+msgstr "42. B<UID \\*(Em identifiant de l'utilisateur>"
+
+#. type: Plain text
+#: ../man/top.1:1095
+msgid "TheI< effective> user ID of the task's owner."
+msgstr ""
+"L'identifiant utilisateur I<effectif> (EUID) du propriétaire de la tâche. "
+
+#. type: TP
+#: ../man/top.1:1096
+#, fuzzy, no-wrap
+#| msgid "43.B< USED \\*(Em Memory in Use (KiB) >"
+msgid "B<USED \\*(Em Memory in Use (KiB) >"
+msgstr "43. B<USED \\*(Em mémoire utilisée (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:1100
+msgid ""
+"This field represents the non-swapped \\*(MP a task is using (RES) plus the "
+"swapped out portion of its address space (SWAP)."
+msgstr ""
+"Ce champ représente la \\*(MP hors espace d'échange qu'une tâche utilise "
+"(RES) plus la portion transférée de son espace d'adresses (SWAP)."
+
+#. type: TP
+#: ../man/top.1:1103
+#, fuzzy, no-wrap
+#| msgid "44.B< USER \\*(Em User Name >"
+msgid "B<USER \\*(Em User Name >"
+msgstr "44. B<USER \\*(Em nom de l'utilisateur>"
+
+#. type: Plain text
+#: ../man/top.1:1106
+msgid "TheI< effective> user name of the task's owner."
+msgstr "Le nom d'utilisateur I<effectif> du propriétaire de la tâche."
+
+#. type: TP
+#: ../man/top.1:1107
+#, no-wrap
+msgid "B<USS \\*(Em Unique Set Size >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1112
+msgid ""
+"The non-swapped portion of \\*(MP (`RSS') not shared with any other "
+"process. It is derived from the `smaps_rollup' file."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1115
+#, fuzzy, no-wrap
+#| msgid "45.B< VIRT \\*(Em Virtual Memory Size (KiB) >"
+msgid "B<VIRT \\*(Em Virtual Memory Size (KiB) >"
+msgstr "45. B<VIRT \\*(Em taille de l'image virtuelle (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:1120
+msgid ""
+"The total amount of \\*(MV used by the task. It includes all code, data and "
+"shared libraries plus pages that have been swapped out and pages that have "
+"been mapped but not used."
+msgstr ""
+"La quantité totale de \\*(MV utilisée par la tâche, à savoir l'ensemble des "
+"codes, données, bibliothèques partagées et pages qui ont été transférées sur "
+"l'espace d'échange («\\ swap\\ ») et les pages qui ont été mappées mais pas "
+"utilisées."
+
+#. type: TP
+#: ../man/top.1:1123
+#, fuzzy, no-wrap
+#| msgid "46.B< WCHAN \\*(Em Sleeping in Function >"
+msgid "B<WCHAN \\*(Em Sleeping in Function >"
+msgstr "46. B<WCHAN \\*(Em fonction en sommeil>"
+
+#. type: Plain text
+#: ../man/top.1:1128
+msgid ""
+"This field will show the name of the kernel function in which the task is "
+"currently sleeping. Running tasks will display a dash (`-') in this column."
+msgstr ""
+"Ce champ affichera le nom de la fonction du noyau dans laquelle la tâche est "
+"effectivement en sommeil. Un tiret («\\ -\\ ») s'affichera dans cette "
+"colonne en regard des tâches actives."
+
+#. type: TP
+#: ../man/top.1:1129
+#, no-wrap
+msgid "B<ioR \\*(Em I/O Bytes Read >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1132
+msgid ""
+"The number of bytes a process caused to be fetched from the storage layer."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1134
+msgid "Root privileges are required to display `io' data for other users."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1135
+#, no-wrap
+msgid "B<ioRop \\*(Em I/O Read Operations >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1139
+msgid ""
+"The number of read I/O operations (syscalls) for a process. Such calls "
+"might not result in actual physical disk I/O."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1140
+#, no-wrap
+msgid "B<ioW \\*(Em I/O Bytes Written >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1143
+msgid "The number of bytes a process caused to be sent to the storage layer."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1144
+#, no-wrap
+msgid "B<ioWop \\*(Em I/O Write Operations >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1148
+msgid ""
+"The number of write I/O operations (syscalls) for a process. Such calls "
+"might not result in actual physical disk I/O."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1149
+#, fuzzy, no-wrap
+#| msgid "47.B< nDRT \\*(Em Dirty Pages Count >"
+msgid "B<nDRT \\*(Em Dirty Pages Count >"
+msgstr "47. B<nDRT \\*(Em nombre de pages modifiées («\\ Dirty Pages\\ »)>"
+
+#. type: Plain text
+#: ../man/top.1:1155
+msgid ""
+"The number of pages that have been modified since they were last written to "
+"\\*(AS. Dirty pages must be written to \\*(AS before the corresponding "
+"physical memory location can be used for some other virtual page."
+msgstr ""
+"Le nombre de pages modifiées depuis la dernière écriture sur le \\*(AS. Les "
+"pages modifiées doivent être écrites sur le \\*(AS avant que l'espace "
+"mémoire physique correspondant puisse être utilisé pour une autre page "
+"virtuelle."
+
+#. type: Plain text
+#: ../man/top.1:1157
+msgid "This field was deprecated with linux 2.6 and is always zero."
+msgstr "Ce champ est obsolète depuis Linux 2.6 et vaut toujours zéro."
+
+#. type: TP
+#: ../man/top.1:1158
+#, fuzzy, no-wrap
+#| msgid "48.B< nMaj \\*(Em Major Page Fault Count >"
+msgid "B<nMaj \\*(Em Major Page Fault Count >"
+msgstr "48. B<nMaj \\*(Em nombre de défauts de page majeurs>"
+
+#. type: Plain text
+#: ../man/top.1:1165
+msgid ""
+"The number ofB< major> page faults that have occurred for a task. A page "
+"fault occurs when a process attempts to read from or write to a virtual page "
+"that is not currently present in its address space. A major page fault is "
+"when \\*(AS access is involved in making that page available."
+msgstr ""
+"Le nombre de défauts de page B<majeurs> générés par une tâche. Un défaut de "
+"page arrive quand un processus tente de lire ou d'écrire dans une page "
+"virtuelle placée hors de son espace d'adressage. Un défaut de page est "
+"majeur quand un accès à un \\*(AS est impliqué lors de la récupération de "
+"cette page."
+
+#. type: TP
+#: ../man/top.1:1166
+#, fuzzy, no-wrap
+#| msgid "49.B< nMin \\*(Em Minor Page Fault count >"
+msgid "B<nMin \\*(Em Minor Page Fault count >"
+msgstr "49. B<nMin \\*(Em nombre de défauts de page mineurs>"
+
+#. type: Plain text
+#: ../man/top.1:1173
+msgid ""
+"The number ofB< minor> page faults that have occurred for a task. A page "
+"fault occurs when a process attempts to read from or write to a virtual page "
+"that is not currently present in its address space. A minor page fault does "
+"not involve \\*(AS access in making that page available."
+msgstr ""
+"Le nombre de défauts de page B<mineurs> générés par une tâche. Un défaut de "
+"page arrive quand un processus tente de lire ou d'écrire dans une page "
+"virtuelle placée hors de son espace d'adressage. Un défaut de page mineur "
+"n'implique pas d'accès à un \\*(AS lors de la récupération de cette page."
+
+#. type: TP
+#: ../man/top.1:1174
+#, fuzzy, no-wrap
+#| msgid "50.B< nTH \\*(Em Number of Threads >"
+msgid "B<nTH \\*(Em Number of Threads >"
+msgstr "50. B<nTH \\*(Em nombre de processus légers « threads »>"
+
+#. type: Plain text
+#: ../man/top.1:1177
+msgid "The number of threads associated with a process."
+msgstr ""
+"Le nombre de processus légers du noyau (« thread ») associés à un processus."
+
+#. type: TP
+#: ../man/top.1:1178
+#, fuzzy, no-wrap
+#| msgid "51.B< nsIPC \\*(Em IPC namespace >"
+msgid "B<nsCGROUP \\*(Em CGROUP namespace >"
+msgstr "51. B<nsIPC \\*(Em espace de nommage IPC>"
+
+#. type: Plain text
+#: ../man/top.1:1182
+msgid ""
+"The Inode of the namespace used to hide the identity of the control group of "
+"which process is a member."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1183
+#, fuzzy, no-wrap
+#| msgid "51.B< nsIPC \\*(Em IPC namespace >"
+msgid "B<nsIPC \\*(Em IPC namespace >"
+msgstr "51. B<nsIPC \\*(Em espace de nommage IPC>"
+
+#. type: Plain text
+#: ../man/top.1:1187
+msgid ""
+"The Inode of the namespace used to isolate interprocess communication (IPC) "
+"resources such as System V IPC objects and POSIX message queues."
+msgstr ""
+"L’inœud de l’espace de nommage utilisé pour isoler les ressources de "
+"communication interprocessus (IPC) comme les objets IPC System V et les "
+"files de messages POSIX."
+
+#. type: TP
+#: ../man/top.1:1188
+#, fuzzy, no-wrap
+#| msgid "52.B< nsMNT \\*(Em MNT namespace >"
+msgid "B<nsMNT \\*(Em MNT namespace >"
+msgstr "52. B<nsMNT \\*(Em espace de nommage MNT>"
+
+#. type: Plain text
+#: ../man/top.1:1192
+msgid ""
+"The Inode of the namespace used to isolate filesystem mount points thus "
+"offering different views of the filesystem hierarchy."
+msgstr ""
+"L’inœud de l’espace de nommage utilisé pour isoler les points de montage de "
+"systèmes de fichiers en offrant ainsi des vues différentes de la hiérarchie "
+"des systèmes de fichiers."
+
+#. type: TP
+#: ../man/top.1:1193
+#, fuzzy, no-wrap
+#| msgid "53.B< nsNET \\*(Em NET namespace >"
+msgid "B<nsNET \\*(Em NET namespace >"
+msgstr "53. B<nsNET \\*(Em espace de nommage NET>"
+
+#. type: Plain text
+#: ../man/top.1:1197
+msgid ""
+"The Inode of the namespace used to isolate resources such as network "
+"devices, IP addresses, IP routing, port numbers, etc."
+msgstr ""
+"L’inœud de l’espace de nommage utilisé pour isoler les ressources comme les "
+"périphériques réseau, les adresses IP, le routage IP, les numéros de "
+"port, etc."
+
+#. type: TP
+#: ../man/top.1:1198
+#, fuzzy, no-wrap
+#| msgid "54.B< nsPID \\*(Em PID namespace >"
+msgid "B<nsPID \\*(Em PID namespace >"
+msgstr "54. B<nsPID \\*(Em espace de nommage PID>"
+
+#. type: Plain text
+#: ../man/top.1:1204
+msgid ""
+"The Inode of the namespace used to isolate process ID numbers meaning they "
+"need not remain unique. Thus, each such namespace could have its own `init/"
+"systemd' (PID #1) to manage various initialization tasks and reap orphaned "
+"child processes."
+msgstr ""
+"L’inœud de l’espace de nommage utilisé pour isoler les numéros d’identifiant "
+"de processus leur permettant de ne pas rester uniques. Ainsi, tous ces "
+"espaces de nommage pourraient avoir leur propre « init/systemd » (PID nº 1) "
+"pour gérer plusieurs tâches d’initialisation et détruire les processus "
+"enfants orphelins."
+
+#. type: TP
+#: ../man/top.1:1205
+#, fuzzy, no-wrap
+#| msgid "51.B< nsIPC \\*(Em IPC namespace >"
+msgid "B<nsTIME \\*(Em TIME namespace >"
+msgstr "51. B<nsIPC \\*(Em espace de nommage IPC>"
+
+#. type: Plain text
+#: ../man/top.1:1209
+msgid ""
+"The Inode of the namespace which allows processes to see different system "
+"times in a way similar to the UTS namespace."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1210
+#, fuzzy, no-wrap
+#| msgid "55.B< nsUSER \\*(Em USER namespace >"
+msgid "B<nsUSER \\*(Em USER namespace >"
+msgstr "55. B<nsUSER \\*(Em espace de nommage USER>"
+
+#. type: Plain text
+#: ../man/top.1:1216
+msgid ""
+"The Inode of the namespace used to isolate the user and group ID numbers. "
+"Thus, a process could have a normal unprivileged user ID outside a user "
+"namespace while having a user ID of 0, with full root privileges, inside "
+"that namespace."
+msgstr ""
+"L’inœud de l’espace de nommage utilisé pour isoler les numéros d’identifiant "
+"d’utilisateur et de groupe. Ainsi, un processus pourrait avoir un "
+"identifiant utilisateur normal sans droit à l’extérieur d’un espace de "
+"nommage utilisateur, tout en ayant un identifiant utilisateur B<0>, avec "
+"tous les droits du superutilisateur, à l’intérieur de cet espace de nommage."
+
+#. type: TP
+#: ../man/top.1:1217
+#, fuzzy, no-wrap
+#| msgid "56.B< nsUTS \\*(Em UTS namespace >"
+msgid "B<nsUTS \\*(Em UTS namespace >"
+msgstr "56. B<nsUTS \\*(Em espace de nommage UTS>"
+
+#. type: Plain text
+#: ../man/top.1:1221
+msgid ""
+"The Inode of the namespace used to isolate hostname and NIS domain name. "
+"UTS simply means \"UNIX Time-sharing System\"."
+msgstr ""
+"L’inœud de l’espace de nommage utilisé pour isoler le nom d’hôte et le nom "
+"de domaine NIS. UTS signifie simplement « Système de partage de Temps UNIX »."
+
+#. type: TP
+#: ../man/top.1:1222
+#, fuzzy, no-wrap
+#| msgid "57.B< vMj \\*(Em Major Page Fault Count Delta>"
+msgid "B<vMj \\*(Em Major Page Fault Count Delta>"
+msgstr "57. B<vMj \\*(Em delta de défauts de page majeurs>"
+
+#. type: Plain text
+#: ../man/top.1:1226
+msgid ""
+"The number ofB< major> page faults that have occurred since the last update "
+"(see nMaj)."
+msgstr ""
+"Le nombre de défauts de page B<majeurs> survenus depuis la dernière mise à "
+"jour (consultez B<nMaj>)."
+
+#. type: TP
+#: ../man/top.1:1227
+#, fuzzy, no-wrap
+#| msgid "58.B< vMn \\*(Em Minor Page Fault Count Delta>"
+msgid "B<vMn \\*(Em Minor Page Fault Count Delta>"
+msgstr "58. B<vMn \\*(Em delta de défauts de page mineurs>"
+
+#. type: Plain text
+#: ../man/top.1:1231
+msgid ""
+"The number ofB< minor> page faults that have occurred since the last update "
+"(see nMin)."
+msgstr ""
+"Le nombre de défauts de page B<mineurs> survenus depuis la dernière mise à "
+"jour (consultez B<nMin>)."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1233
+#, no-wrap
+msgid "3b. MANAGING Fields"
+msgstr "3b. GESTION des champs"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1240
+#, fuzzy
+#| msgid ""
+#| "After pressing the \\*(CI `f' or `F' (Fields Management) you will be "
+#| "presented with a screen showing: 1) the \\*(CW name; 2) the designated "
+#| "sort field; 3) all fields in their current order along with "
+#| "descriptions. Entries marked with an asterisk are the currently "
+#| "displayed fields, screen width permitting."
+msgid ""
+"After pressing the \\*(CI `f' (Fields Management) you will be presented with "
+"a screen showing: 1) the \\*(CW name; 2) the designated sort field; 3) all "
+"fields in their current order along with descriptions. Entries marked with "
+"an asterisk are the currently displayed fields, screen width permitting."
+msgstr ""
+"Après avoir utilisé les commandes interactives « f » ou « F » (gestion des "
+"champs), un écran sera affiché, présentant :\n"
+" 1) le nom de la \\*(CW ;\n"
+" 2) le champ de tri désigné ;\n"
+" 3) tous les champs dans leur ordre actuel avec leur description.\n"
+"\n"
+"Les entrées marquées avec un astérisque sont les champs actuellement "
+"affichés, comme le permet la largeur de l'écran."
+
+#. type: IP
+#: ../man/top.1:1242 ../man/top.1:1248 ../man/top.1:1253 ../man/top.1:1257
+#: ../man/top.1:1262 ../man/top.1:2687 ../man/top.1:2710 ../man/top.1:2719
+#: ../man/top.1:2735 ../man/top.1:2741 ../man/top.1:2747 ../man/top.1:2757
+#: ../man/top.1:2774
+#, no-wrap
+msgid "\\(bu"
+msgstr "\\(bu"
+
+#. type: Plain text
+#: ../man/top.1:1247
+msgid ""
+"As the on screen instructions indicate, you navigate among the fields with "
+"theB< Up> andB< Down> \\*(KAs. The PgUp, PgDn, Home and End keys can also "
+"be used to quickly reach the first or last available field."
+msgstr ""
+"Conformément aux instructions de l'écran, la navigation entre les champs se "
+"fait avec les \\*(KAs B<Haut> et B<Bas>. Les touches Orig, Fin, Pg.Préc et "
+"Pg.Suiv peuvent aussi servir à atteindre rapidement les premiers et derniers "
+"champs disponibles."
+
+#. type: Plain text
+#: ../man/top.1:1252
+msgid ""
+"TheB< Right> \\*(KA selects a field for repositioning and theB< Left> \\*(KA "
+"or the E<lt>B<Enter>E<gt> key commits that field's placement."
+msgstr ""
+"La \\*(KA B<Droite> sélectionne un champ pour le repositionnement et les "
+"touches \\*(KA B<Gauche> et « B<Entrée> » valident la position de ce champ."
+
+#. type: Plain text
+#: ../man/top.1:1256
+msgid ""
+"The `B<d>' key or the E<lt>B<Space>E<gt> bar toggles a field's display "
+"status, and thus the presence or absence of the asterisk."
+msgstr ""
+"La touche « B<d> » et la barre d'« B<Espace> » modifient l'état d'affichage "
+"d'un champ, et par conséquent la présence ou l'absence d'astérisque."
+
+#. type: Plain text
+#: ../man/top.1:1261
+msgid ""
+"The `B<s>' key designates a field as the sort field. \\*(XT 4c. TASK AREA "
+"Commands, SORTING for additional information regarding your selection of a "
+"sort field."
+msgstr ""
+"La touche « B<s> » désigne un champ comme champ de tri. \\*(XT "
+"B<4c. Commandes de la ZONE de TÂCHES>, B<TRI> pour de plus amples "
+"renseignements sur la sélection d'un champ de tri."
+
+#. type: Plain text
+#: ../man/top.1:1265
+msgid ""
+"The `B<a>' and `B<w>' keys can be used to cycle through all available "
+"windows and the `B<q>' or E<lt>B<Esc>E<gt> keys exit Fields Management."
+msgstr ""
+"Les touches « B<a> » et « B<w> » permettent de passer en revue toutes les "
+"fenêtres disponibles et les touches « B<q> » ou « B<Éch> » permettent de "
+"sortir de la gestion des champs."
+
+#. type: Plain text
+#: ../man/top.1:1274
+msgid ""
+"The Fields Management screen can also be used to change the \\*(CG in either "
+"\\*(FM or \\*(AM. Whatever was targeted when `q' or E<lt>EscE<gt> was "
+"pressed will be made current as you return to the \\*(We display. \\*(XT 5. "
+"ALTERNATE-DISPLAY Provisions and the `g' \\*(CI for insight into \\*(CWs and "
+"\\*(FGs."
+msgstr ""
+"L'écran de gestion des champs permet aussi de modifier le \\*(CG en \\*(FM "
+"ou \\*(AM. Quelle que soit la cible au moment où vous saisissez «\\ q\\ » ou "
+"« B<Éch> », elle deviendra active lors du retour à l'affichage principal. "
+"\\*(XT B<5. Dispositions d'AFFICHAGE ALTERNATIF> et la \\*(CI « g » pour un "
+"aperçu des fenêtres « actives » et groupes de champs."
+
+#. type: Plain text
+#: ../man/top.1:1281
+msgid ""
+"\\*(NT Any window that has been scrolledI< horizontally> will be reset if "
+"any field changes are made via the Fields Management screen. AnyI< "
+"vertical> scrolled position, however, will not be affected. \\*(XT 5c. "
+"SCROLLING a Window for additional information regarding vertical and "
+"horizontal scrolling."
+msgstr ""
+"\\*(NT n'importe quelle fenêtre après une navigation I<horizontale> sera "
+"réinitialisée si une modification de champ est réalisée à l'aide de l'écran "
+"gestion de champs. Cependant, la position après une navigation I<verticale> "
+"ne sera pas modifiée. \\*(XT B<5c. DÉPLACEMENT dans une fenêtre> pour de "
+"plus amples renseignements sur les déplacements verticaux et horizontaux."
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:1283
+#, no-wrap
+msgid "4. INTERACTIVE Commands"
+msgstr "4. Commandes INTERACTIVES"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1288
+msgid ""
+"Listed below is a brief index of commands within categories. Some commands "
+"appear more than once \\*(Em their meaning or scope may vary depending on "
+"the context in which they are issued."
+msgstr ""
+"Ci-dessous, un index succinct de commandes regroupées par catégories. "
+"Certaines commandes apparaissent plus d'une fois \\*(Em leur signification "
+"ou leur portée peuvent différer selon le contexte de leur utilisation."
+
+#. type: Plain text
+#: ../man/top.1:1311
+#, fuzzy, no-wrap
+#| msgid ""
+#| " 4a.I< Global-Commands >\n"
+#| " E<lt>Ent/SpE<gt> ?, =, 0,\n"
+#| " A, B, d, E, e, g, h, H, I, k, q, r, s, W, X, Y, Z\n"
+#| " 4b.I< Summary-Area-Commands >\n"
+#| " C, l, t, m, 1, 2, 3\n"
+#| " 4c.I< Task-Area-Commands >\n"
+#| " Appearance: b, J, j, x, y, z\n"
+#| " Content: c, f, F, o, O, S, u, U, V, v\n"
+#| " Size: #, i, n\n"
+#| " Sorting: E<lt>, E<gt>, f, F, R\n"
+#| " 4d.I< Color-Mapping >\n"
+#| " E<lt>RetE<gt>, a, B, b, H, M, q, S, T, w, z, 0 - 7\n"
+#| " 5b.I< Commands-for-Windows >\n"
+#| " -, _, =, +, A, a, g, G, w\n"
+#| " 5c.I< Scrolling-a-Window >\n"
+#| " C, Up, Dn, Left, Right, PgUp, PgDn, Home, End\n"
+#| " 5d.I< Searching-in-a-Window >\n"
+#| " L, &\n"
+msgid ""
+" 4a.I< Global-Commands >\n"
+" E<lt>Ent/SpE<gt> ?, =, 0,\n"
+" A, B, d, E, e, g, H, h, I, k, q, r, s, W, X, Y, Z,\n"
+" ^G, ^K, ^N, ^P, ^U, ^L, ^R\n"
+" 4b.I< Summary-Area-Commands >\n"
+" C, l, t, m, 1, 2, 3, 4, 5, !\n"
+" 4c.I< Task-Area-Commands >\n"
+" Appearance: b, J, j, x, y, z\n"
+" Content: c, F, f, O, o, S, U, u, V, v, ^E\n"
+" Size: #, i, n\n"
+" Sorting: E<lt>, E<gt>, f, R\n"
+" 4d.I< Color-Mapping >\n"
+" E<lt>RetE<gt>, a, B, b, H, M, q, S, T, w, z, 0 - 7\n"
+" 5b.I< Commands-for-Windows >\n"
+" -, _, =, +, A, a, G, g, w\n"
+" 5c.I< Scrolling-a-Window >\n"
+" C, Up, Dn, Left, Right, PgUp, PgDn, Home, End\n"
+" 5d.I< Searching-in-a-Window >\n"
+" L, &\n"
+" 5e.I< Filtering-in-a-Window\n"
+" O, o, ^O, =, +>\n"
+msgstr ""
+" 4a. I<Commandes GLOBALES>\n"
+" E<lt>Entrée/EspaceE<gt> ?, =, 0,\n"
+" A, B, d, E, e, g, h, H, I, k, q, r, s, W, X, Y, Z\n"
+" 4b. I<Commandes de la ZONE de RÉSUMÉ>\n"
+" C, l, t, m, 1, 2, 3\n"
+" 4c. I<Commandes de la ZONE de TÂCHES>\n"
+" Apparence : b, J, j, x, y, z\n"
+" Contenu : c, f, F, o, O, S, u, U, V, v\n"
+" Taille : #, i, n\n"
+" Tri : E<lt>, E<gt>, f, F, R\n"
+" 4d. I<Palette de COULEURS>\n"
+" E<lt>EntréeE<gt>, a, B, b, H, M, q, S, T, w, z, 0 - 7\n"
+" 5b. I<COMMANDES de fenêtrage>\n"
+" -, _, =, +, A, a, g, G, w\n"
+" 5c. I<DÉPLACEMENT dans une fenêtre>\n"
+" C, Haut, Bas, Gauche, Droite, Pg.Préc, Pg.Suiv, Orig, Fin\n"
+" 5d. I<RECHERCHE dans une fenêtre>\n"
+" L, &\n"
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1314
+#, no-wrap
+msgid "4a. GLOBAL Commands"
+msgstr "4a. Commandes GLOBALES"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1319
+msgid ""
+"The global \\*(CIs areB< always> available in both \\*(FM and \\*(AM. "
+"However, some of these \\*(CIs areB< not available> when running in Secure "
+"mode."
+msgstr ""
+"Les commandes interactives globales sont B<toujours> disponibles que ce soit "
+"en \\*(FM ou en \\*(AM. Toutefois, certaines de ces commandes interactives "
+"B<ne sont pas disponibles> en «\\ mode sécurisé\\ »."
+
+#. type: Plain text
+#: ../man/top.1:1323
+msgid ""
+"If you wish to know in advance whether or not your \\*(We has been secured, "
+"simply ask for help and view the system summary on the second line."
+msgstr ""
+"Si vous souhaitez savoir à l'avance si \\*(WE fonctionne en mode sécurisé, "
+"appelez simplement l'aide et consultez la deuxième ligne du résumé système."
+
+#. type: TP
+#: ../man/top.1:1324
+#, no-wrap
+msgid "\\ \\ E<lt>B<Enter>E<gt> or E<lt>B<Space>E<gt>\\ \\ :I<Refresh-Display >"
+msgstr "\\ \\ E<lt>B<Entrée>E<gt> ou E<lt>B<Espace>E<gt>\\ \\ : I<rafraîchir l'affichage>"
+
+#. type: Plain text
+#: ../man/top.1:1329
+msgid ""
+"These commands awaken \\*(We and following receipt of any input the entire "
+"display will be repainted. They also force an update of any hotplugged "
+"\\*(Pu or \\*(MP changes."
+msgstr ""
+"Ces commandes activent \\*(WE et toute réception ultérieure rafraîchira "
+"l'intégralité de l'écran. Elles forcent aussi la mise à jour des "
+"modifications de \\*(Pu ou de \\*(MP branchés à chaud."
+
+#. type: Plain text
+#: ../man/top.1:1332
+msgid ""
+"Use either of these keys if you have a large delay interval and wish to see "
+"current status,"
+msgstr ""
+"Utilisez l'une ou l'autre de ces touches quand le délai est élevé et que "
+"vous souhaitez consulter l'état actuel."
+
+#. type: TP
+#: ../man/top.1:1333
+#, no-wrap
+msgid "\\ \\ \\ B<?> | B<h>\\ \\ :I<Help >"
+msgstr "\\ \\ \\ B<?> | B<h>\\ \\ : I<aide>"
+
+#. type: Plain text
+#: ../man/top.1:1338
+msgid ""
+"There are two help levels available. The first will provide a reminder of "
+"all the basic \\*(CIs. If \\*(We isI< secured>, that screen will be "
+"abbreviated."
+msgstr ""
+"Deux niveaux d'aide sont disponibles. Le premier offre un rappel de toutes "
+"les commandes interactives de base. Quand \\*(WE est I<sécurisé>, cet écran "
+"est plus succinct."
+
+#. type: Plain text
+#: ../man/top.1:1341
+msgid ""
+"Typing `h' or `?' on that help screen will take you to help for those "
+"\\*(CIs applicable to \\*(AM."
+msgstr ""
+"En appuyant sur «\\ h\\ » ou «\\ ?\\ » dans l'écran d'aide, l'écran "
+"affichera l'aide de cette \\*(CI applicable au \\*(AM."
+
+#. type: TP
+#: ../man/top.1:1342
+#, no-wrap
+msgid "\\ \\ \\ B<=>\\ \\ :I<Exit-Display-Limits >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1349
+#, fuzzy
+#| msgid ""
+#| "Removes restrictions on which tasks are shown. This command will reverse "
+#| "any `i' (idle tasks), `n' (max tasks) and `v' (hide children) commands "
+#| "that might be active. It also provides for an exit from PID monitoring, "
+#| "User filtering, Other filtering and Locate processing."
+msgid ""
+"Removes restrictions on what is shown. This command will reverse any "
+"`i' (idle tasks), `n' (max tasks), `v' (hide children) and `F' focus "
+"commands that might be active. It also provides for an exit from PID "
+"monitoring, User filtering, Other filtering, Locate processing and Combine "
+"Cpus mode."
+msgstr ""
+"Enlever les restrictions sur les tâches qui sont affichées. Cette commande "
+"inverse chaque commande «\\ i\\ » (tâches en veille), «\\ n\\ » (nombre "
+"maximal de tâches) et «\\ v\\ » (masquer les enfants) qui peuvent être "
+"actives. Elle fournit aussi un moyen d'arrêter la surveillance d'un PID, le "
+"filtrage « utilisateur », « autre » filtrage et le traitement de "
+"« localiser »."
+
+#. type: Plain text
+#: ../man/top.1:1352
+msgid ""
+"Additionally, if the window has been scrolled it will be reset with this "
+"command."
+msgstr ""
+"De plus, après navigation, la fenêtre sera réinitialisée avec cette commande."
+
+#. type: TP
+#: ../man/top.1:1353
+#, no-wrap
+msgid "\\ \\ \\ B<0>\\ \\ :I<Zero-Suppress> toggle "
+msgstr "\\ \\ \\ B<0>\\ \\ : basculer en I<zéros supprimés> "
+
+#. type: Plain text
+#: ../man/top.1:1358
+msgid ""
+"This command determines whether zeros are shown or suppressed for many of "
+"the fields in a \\*(TW. Fields like UID, GID, NI, PR or P are not affected "
+"by this toggle."
+msgstr ""
+"Cette commande détermine si les zéros sont montrés ou supprimés pour "
+"beaucoup de champs de la \\*(TW. Les champs comme UID, GID, NI, PR ou P ne "
+"sont pas affectés par cette option."
+
+#. type: TP
+#: ../man/top.1:1359
+#, no-wrap
+msgid "\\ \\ \\ B<A>\\ \\ :I<Alternate-Display-Mode> toggle "
+msgstr "\\ \\ \\ B<A>\\ \\ : basculer en I<mode d'affichage alternatif>"
+
+#. type: Plain text
+#: ../man/top.1:1364
+msgid ""
+"This command will switch between \\*(FM and \\*(AM. \\*(XT 5. ALTERNATE-"
+"DISPLAY Provisions and the `g' \\*(CI for insight into \\*(CWs and \\*(FGs."
+msgstr ""
+"Cette commande bascule entre le \\*(FM et le \\*(AM. \\*(XT "
+"B<5. Dispositions d'AFFICHAGE ALTERNATIF> et la \\*(CI «\\ g\\ » pour une "
+"meilleure compréhension de la \\*(CW et des groupes de champs."
+
+#. type: TP
+#: ../man/top.1:1365
+#, no-wrap
+msgid "\\ \\ \\ B<B>\\ \\ :I<Bold-Disable/Enable> toggle "
+msgstr "\\ \\ \\ B<B>\\ \\ : basculer entre I<gras désactivé et activé>"
+
+#. type: Plain text
+#: ../man/top.1:1371
+msgid ""
+"This command will influence use of the bold terminfo capability and altersB< "
+"both> the \\*(SA and \\*(TA for the \\*(CW. While it is intended primarily "
+"for use with dumb terminals, it can be applied anytime."
+msgstr ""
+"Cette commande influencera l'utilisation des capacités de mise en «\\ gras\\ "
+"» du terminal et modifie B<à la fois> la \\*(SA et la \\*(TA de la \\*(CW. "
+"Alors qu'elle était initialement conçue pour une utilisation avec des "
+"terminaux non intelligents («\\ dumb terminals\\ »), elle peut être "
+"appliquée en toute occasion."
+
+#. type: Plain text
+#: ../man/top.1:1376
+msgid ""
+"\\*(NT When this toggle is \\*O and \\*(We is operating in monochrome mode, "
+"theB< entire display> will appear as normal text. Thus, unless the `x' and/"
+"or `y' toggles are using reverse for emphasis, there will be no visual "
+"confirmation that they are even on."
+msgstr ""
+"\\*(NT lorsque cette option est \\*O et que \\*(WE fonctionne en mode "
+"monochrome, B<l'entièreté de l'affichage> apparaîtra comme du texte normal. "
+"Donc, à moins que les options «\\ x\\ » ou «\\ y\\ » ne soient inversées "
+"pour accentuer la mise en évidence, il n'y aura pas de confirmation visuelle "
+"de leur activité."
+
+#. type: TP
+#: ../man/top.1:1377
+#, no-wrap
+msgid "*\\ \\ B<d> | B<s>\\ \\ :I<Change-Delay-Time-interval >"
+msgstr "*\\ \\ B<d> | B<s>\\ \\ : I<modifier le délai>"
+
+#. type: Plain text
+#: ../man/top.1:1381
+msgid ""
+"You will be prompted to enter the delay time, in seconds, between display "
+"updates."
+msgstr ""
+"Vous invite à introduire le délai, en seconde, des mises à jour de "
+"l'affichage."
+
+#. type: Plain text
+#: ../man/top.1:1387
+msgid ""
+"Fractional seconds are honored, but a negative number is not allowed. "
+"Entering 0 causes (nearly) continuous updates, with an unsatisfactory "
+"display as the system and tty driver try to keep up with \\*(We's demands. "
+"The delay value is inversely proportional to system loading, so set it with "
+"care."
+msgstr ""
+"Les fractions de seconde sont possibles, mais pas les nombres négatifs. La "
+"valeur B<0> entraînera une mise à jour (quasi) permanente, responsable d'un "
+"affichage décevant puisque le système et le périphérique tty essayeront de "
+"tenir compte des demandes de \\*(WE. La valeur du délai est inversement "
+"proportionnelle à la charge du système, alors positionnez-la avec soin."
+
+#. type: Plain text
+#: ../man/top.1:1390
+msgid ""
+"If at any time you wish to know the current delay time, simply ask for help "
+"and view the system summary on the second line."
+msgstr ""
+"À tout moment, vous pouvez connaître le délai effectif en appelant l'aide et "
+"en consultant la deuxième ligne du résumé système."
+
+#. type: TP
+#: ../man/top.1:1391
+#, no-wrap
+msgid "\\ \\ \\ B<E>\\ \\ :I<Enforce-Summary-Memory-Scale> in Summary Area"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1396
+msgid ""
+"With this command you can cycle through the available \\*(SA memory scaling "
+"which ranges from KiB (kibibytes or 1,024 bytes) through EiB (exbibytes or "
+"1,152,921,504,606,846,976 bytes)."
+msgstr ""
+"Avec cette commande, chacune des échelles disponibles de mémoire de la "
+"\\*(SA peut être choisie, du Kio (kibioctet, soit 1 024 octets) à l’Eio "
+"(exbioctet, soit 1 152 921 504 606 846 976 octets)."
+
+#. type: Plain text
+#: ../man/top.1:1400
+msgid ""
+"If you see a `+' between a displayed number and the following label, it "
+"means that \\*(We was forced to truncate some portion of that number. By "
+"raising the scaling factor, such truncation can be avoided."
+msgstr ""
+"Si un « + » apparaît entre un nombre affiché et l'étiquette suivante, cela "
+"signifie que \\*(WE a été forcé de tronquer une portion de ce nombre. En "
+"augmentant le facteur d'échelle, ce genre de troncature peut être évité."
+
+#. type: TP
+#: ../man/top.1:1401
+#, no-wrap
+msgid "\\ \\ \\ B<e>\\ \\ :I<Enforce-Task-Memory-Scale> in Task Area"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1406
+msgid ""
+"With this command you can cycle through the available \\*(TA memory scaling "
+"which ranges from KiB (kibibytes or 1,024 bytes) through PiB (pebibytes or "
+"1,125,899,906,842,624 bytes)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1413
+msgid ""
+"While \\*(We will try to honor the selected target range, additional scaling "
+"might still be necessary in order to accommodate current values. If you "
+"wish to see a more homogeneous result in the memory columns, raising the "
+"scaling range will usually accomplish that goal. Raising it too high, "
+"however, is likely to produce an all zero result which cannot be suppressed "
+"with the `0' \\*(CI."
+msgstr ""
+"Même si \\*(WE essayera de respecter l'intervalle cible sélectionné, une "
+"mise à l'échelle supplémentaire pourrait être nécessaire afin de s'adapter "
+"aux valeurs présentes. Augmenter l'intervalle d'échelle permet généralement "
+"de voir un résultat plus homogène dans les colonnes de mémoire. Néanmoins, "
+"trop l'augmenter est susceptible de produire un résultat ne consistant qu'en "
+"des zéros qui ne peuvent être supprimés par la \\*(CI « 0 »."
+
+#. type: TP
+#: ../man/top.1:1414
+#, no-wrap
+msgid "\\ \\ \\ B<g>\\ \\ :I<Choose-Another-Window/Field-Group >"
+msgstr "\\ \\ \\ B<g>\\ \\ : I<choisir un autre groupe de fenêtres ou champs>"
+
+#. type: Plain text
+#: ../man/top.1:1420
+msgid ""
+"You will be prompted to enter a number between 1 and 4 designating the "
+"\\*(FG which should be made the \\*(CW. You will soon grow comfortable with "
+"these 4 windows, especially after experimenting with \\*(AM."
+msgstr ""
+"Vous invite à introduire un numéro entre B<1> et B<4> pour désigner le "
+"\\*(FG de la \\*(CW. Vous trouverez assez vite vos marques avec ces quatre "
+"fenêtres, spécialement en expérimentant le \\*(AM."
+
+#. type: TP
+#: ../man/top.1:1421
+#, no-wrap
+msgid "\\ \\ \\ B<H>\\ \\ :I<Threads-mode> toggle "
+msgstr "\\ \\ \\ B<H>\\ \\ : basculer en I<mode processus légers>"
+
+#. type: Plain text
+#: ../man/top.1:1426
+msgid ""
+"When this toggle is \\*O, individual threads will be displayed for all "
+"processes in all visible \\*(TWs. Otherwise, \\*(We displays a summation of "
+"all threads in each process."
+msgstr ""
+"Quand cette option est \\*O, les processus légers seront affichés pour tous "
+"les processus de toutes les fenêtres de tâches visibles. Sinon, \\*(WE "
+"affiche le récapitulatif de tous les processus légers de chaque processus."
+
+#. type: TP
+#: ../man/top.1:1427
+#, no-wrap
+msgid "\\ \\ \\ B<I>\\ \\ :I<Irix/Solaris-Mode> toggle "
+msgstr "\\ \\ \\ B<I>\\ \\ : basculer en I<mode Irix/Solaris>"
+
+#. type: Plain text
+#: ../man/top.1:1432
+msgid ""
+"When operating in Solaris mode (`I' toggled \\*F), a task's \\*(Pu usage "
+"will be divided by the total number of \\*(PUs. After issuing this command, "
+"you'll be told the new state of this toggle."
+msgstr ""
+"En fonctionnant en «\\ mode Solaris\\ » (bascule de «\\ I\\ » en \\*F), la "
+"consommation \\*(Pu d'une tâche sera divisée par le nombre total de \\*(PU. "
+"Après avoir exécuté cette commande, vous serez informé du nouvel état de "
+"cette option."
+
+#. type: TP
+#: ../man/top.1:1433
+#, no-wrap
+msgid "*\\ \\ B<k>\\ \\ :I<Kill-a-task >"
+msgstr "*\\ \\ B<k>\\ \\ : I<tuer une tâche>"
+
+#. type: Plain text
+#: ../man/top.1:1436
+msgid "You will be prompted for a PID and then the signal to send."
+msgstr "Vous invite à introduire le PID et ensuite le signal à envoyer."
+
+#. type: Plain text
+#: ../man/top.1:1440 ../man/top.1:1462
+msgid ""
+"Entering no PID or a negative number will be interpreted as the default "
+"shown in the prompt (the first task displayed). A PID value of zero means "
+"the \\*(We program itself."
+msgstr ""
+"Ne pas entrer de PID ou une valeur négative sera interprété comme utiliser "
+"la valeur par défaut montrée dans l'invite (la première tâche affichée). Une "
+"valeur de PID de zéro signifie le programme \\*(WE lui-même."
+
+#. type: Plain text
+#: ../man/top.1:1443
+msgid ""
+"The default signal, as reflected in the prompt, is SIGTERM. However, you "
+"can send any signal, via number or name."
+msgstr ""
+"Le signal par défaut, comme le propose l'invite, est SIGTERM. Cependant, "
+"vous pouvez indiquer le nom ou le numéro de tout autre signal."
+
+#. type: Plain text
+#: ../man/top.1:1446
+msgid ""
+"If you wish to abort the kill process, do one of the following depending on "
+"your progress:"
+msgstr ""
+"Si vous souhaitez annuler la terminaison d'un processus, faites une des "
+"choses suivantes selon le niveau d'avancement :"
+
+#. type: Plain text
+#: ../man/top.1:1450
+#, no-wrap
+msgid ""
+" 1) at the pid prompt, type an invalid number\n"
+" 2) at the signal prompt, type 0 (or any invalid signal)\n"
+" 3) at any prompt, type E<lt>EscE<gt>\n"
+msgstr ""
+" 1) à l'invite du PID, entrez un numéro incorrect ;\n"
+" 2) à l'invite du signal, tapez B<0> (ou n'importe quel signal incorrect) ;\n"
+" 3) à n'importe quel invite, tapez E<lt>ÉchE<gt>.\n"
+
+#. type: TP
+#: ../man/top.1:1452
+#, no-wrap
+msgid "\\ \\ \\ B<q>\\ \\ :I<Quit >"
+msgstr "\\ \\ \\ B<q>\\ \\ : I<quitter>"
+
+#. type: TP
+#: ../man/top.1:1455
+#, no-wrap
+msgid "*\\ \\ B<r>\\ \\ :I<Renice-a-Task >"
+msgstr "*\\ \\ B<r>\\ \\ : I<changer la politesse d'une tâche>"
+
+#. type: Plain text
+#: ../man/top.1:1458
+msgid "You will be prompted for a PID and then the value to nice it to."
+msgstr ""
+"Vous invite à introduire le PID puis la valeur de politesse à appliquer."
+
+#. type: Plain text
+#: ../man/top.1:1468
+msgid ""
+"A positive nice value will cause a process to lose priority. Conversely, a "
+"negative nice value will cause a process to be viewed more favorably by the "
+"kernel. As a general rule, ordinary users can only increase the nice value "
+"and are prevented from lowering it."
+msgstr ""
+"Une valeur de politesse positive provoquera une diminution de la priorité de "
+"la tâche. À l'inverse, une valeur négative de politesse la fera considérer "
+"plus favorablement par le noyau. En règle générale, les utilisateurs peuvent "
+"seulement augmenter la valeur de politesse sans pouvoir la diminuer."
+
+#. type: Plain text
+#: ../man/top.1:1471
+msgid ""
+"If you wish to abort the renice process, do one of the following depending "
+"on your progress:"
+msgstr ""
+"Si vous souhaitez annuler la modification de politesse d'un processus, "
+"faites une des choses suivantes selon le niveau de progression\\ :"
+
+#. type: Plain text
+#: ../man/top.1:1475
+#, no-wrap
+msgid ""
+" 1) at the pid prompt, type an invalid number\n"
+" 2) at the nice prompt, type E<lt>EnterE<gt> with no input\n"
+" 3) at any prompt, type E<lt>EscE<gt>\n"
+msgstr ""
+" 1) à l'invite du PID, entrez un numéro incorrect ;\n"
+" 2) à l'invite de politesse, tapez E<lt>EntréeE<gt> sans rien entrer ;\n"
+" 3) à n'importe quel invite, tapez E<lt>ÉchE<gt>.\n"
+
+#. type: TP
+#: ../man/top.1:1477
+#, no-wrap
+msgid "\\ \\ \\ B<W>\\ \\ :I<Write-the-Configuration-File >"
+msgstr "\\ \\ \\ B<W>\\ \\ : I<écrire le fichier de configuration>"
+
+#. type: Plain text
+#: ../man/top.1:1483
+msgid ""
+"This will save all of your options and toggles plus the current display mode "
+"and delay time. By issuing this command just before quitting \\*(We, you "
+"will be able restart later in exactly that same state."
+msgstr ""
+"Cette commande sauvegardera toutes vos options et bascule ainsi que le mode "
+"d'affichage actuel et le délai. En exécutant cette commande juste avant de "
+"quitter \\*(We, vous pourrez redémarrer en conservant exactement la même "
+"configuration."
+
+#. type: TP
+#: ../man/top.1:1484
+#, no-wrap
+msgid "\\ \\ \\ B<X>\\ \\ :I<Extra-Fixed-Width >"
+msgstr "\\ \\ \\ B<X>\\ \\ : I<largeur fixe supplémentaire>"
+
+#. type: Plain text
+#: ../man/top.1:1489
+msgid ""
+"Some fields are fixed width and not scalable. As such, they are subject to "
+"truncation which would be indicated by a `+' in the last position."
+msgstr ""
+"Certains champs sont à largeur fixe et non adaptable. Ainsi, ils pourraient "
+"être tronqués, ce qui serait indiqué par un « + » en fin de chaîne."
+
+#. type: Plain text
+#: ../man/top.1:1491
+msgid "This \\*(CI can be used to alter the widths of the following fields:"
+msgstr ""
+"Cette \\*(CI peut être utilisée pour modifier les largeurs des champs "
+"suivants :"
+
+#. type: Plain text
+#: ../man/top.1:1503
+#, fuzzy, no-wrap
+#| msgid ""
+#| " I< field default field default field default >\n"
+#| " GID 5 GROUP 8 WCHAN 10\n"
+#| " RUID 5 LXC 8 nsIPC 10\n"
+#| " SUID 5 RUSER 8 nsMNT 10\n"
+#| " UID 5 SUSER 8 nsNET 10\n"
+#| " TTY 8 nsPID 10\n"
+#| " USER 8 nsUSER 10\n"
+#| " nsUTS 10\n"
+msgid ""
+" I< field default field default field default >\n"
+" GID 5 GROUP 8 WCHAN 10\n"
+" LOGID 5 LXC 8 nsCGROUP 10\n"
+" RUID 5 RUSER 8 nsIPC 10\n"
+" SUID 5 SUSER 8 nsMNT 10\n"
+" UID 5 TTY 8 nsNET 10\n"
+" USER 8 nsPID 10\n"
+" nsTIME 10\n"
+" nsUSER 10\n"
+" nsUTS 10\n"
+msgstr ""
+" I< champ défaut champ défaut champ défaut>\n"
+" GID 5 GROUP 8 WCHAN 10\n"
+" RUID 5 RUSER 8 nsIPC 10\n"
+" SUID 5 SUSER 8 nsMNT 10\n"
+" UID 5 USER 8 nsNET 10\n"
+" TTY 8 nsPID 10\n"
+" USER 8 nsUSER 10\n"
+" nsUTS 10\n"
+
+#. type: Plain text
+#: ../man/top.1:1508
+msgid ""
+"You will be prompted for the amount to be added to the default widths shown "
+"above. Entering zero forces a return to those defaults."
+msgstr ""
+"La quantité à ajouter aux largeurs par défaut précédentes vous sera "
+"demandée. Saisir zéro force un retour aux valeurs par défaut."
+
+#. type: Plain text
+#: ../man/top.1:1511
+#, fuzzy
+#| msgid ""
+#| "If you enter a negative number, \\*(We will automatically increase the "
+#| "column size as needed until there is no more truncated data. You can "
+#| "accelerate this process by reducing the delay interval or holding down "
+#| "the E<lt>SpaceE<gt> bar."
+msgid ""
+"If you enter a negative number, \\*(We will automatically increase the "
+"column size as needed until there is no more truncated data."
+msgstr ""
+"Si vous saisissez un nombre négatif, \\*(WE augmentera automatiquement la "
+"taille de colonne autant que nécessaire jusqu'à ce qu'il n'y ait plus aucune "
+"donnée tronquée. Vous pouvez accélérer ce processus en réduisant le délai ou "
+"en maintenant la barre d'E<lt>espaceE<gt> enfoncée."
+
+#. type: Plain text
+#: ../man/top.1:1515
+msgid ""
+"\\*(NT Whether explicitly or automatically increased, the widths for these "
+"fields are never decreased by \\*(We. To narrow them you must specify a "
+"smaller number or restore the defaults."
+msgstr ""
+"\\*(NT qu'elles soient explicitement ou automatiquement augmentées, les "
+"largeurs pour ces champs ne sont jamais diminuées par \\*(WE. Pour les "
+"réduire, vous devez indiquer un nombre plus petit ou restaurer les valeurs "
+"par défaut."
+
+#. type: TP
+#: ../man/top.1:1516
+#, no-wrap
+msgid "\\ \\ \\ B<Y>\\ \\ :I<Inspect-Other-Output >"
+msgstr "\\ \\ \\ B<Y>\\ \\ \\ : I<inspecter une autre sortie>"
+
+#. type: Plain text
+#: ../man/top.1:1522
+msgid ""
+"After issuing the `Y' \\*(CI, you will be prompted for a target PID. Typing "
+"a value or accepting the default results in a separate screen. That screen "
+"can be used to view a variety of files or piped command output while the "
+"normal \\*(We iterative display is paused."
+msgstr ""
+"Après l'exécution de la \\*(CI « Y », un PID cible sera demandé. Taper une "
+"valeur ou accepter celle par défaut aura pour conséquence un écran séparé. "
+"Cet écran peut être utilisé pour voir plusieurs fichiers ou sorties de "
+"commande renvoyée dans un tube (« pipe ») alors que l'affichage interactif "
+"normal de \\*(WE est en pause."
+
+#. type: Plain text
+#: ../man/top.1:1526
+msgid ""
+"\\*(NT This \\*(CI is only fully realized when supporting entries have been "
+"manually added to the end of the \\*(We \\*(CF. For details on creating "
+"those entries, \\*(Xt 6b. ADDING INSPECT Entries."
+msgstr ""
+"\\*(NT cette \\*(CI n'est entièrement réalisée que quand les entrées "
+"possibles ont été ajoutées par vos soins à la fin du \\*(CF de \\*(WE. Pour "
+"plus de précision sur la création de ces entrées, \\*(Xt B<6b. AJOUT "
+"d'entrées d'INSPECTION>."
+
+#. type: Plain text
+#: ../man/top.1:1533
+msgid ""
+"Most of the keys used to navigate the Inspect feature are reflected in its "
+"header prologue. There are, however, additional keys available once you "
+"have selected a particular file or command. They are familiar to anyone who "
+"has used the pager `less' and are summarized here for future reference."
+msgstr ""
+"La plupart des touches utilisées pour naviguer dans la fonctionnalité "
+"d'inspection sont indiquées dans l'en-tête de son prologue. Des touches "
+"supplémentaires sont cependant utilisables une fois sélectionnés un fichier "
+"ou une commande spécifiques. Elles sont familières des utilisateurs du "
+"visualiseur « less » et sont résumées ici pour référence."
+
+#. type: Plain text
+#: ../man/top.1:1543
+#, no-wrap
+msgid ""
+" I< key function >\n"
+" = alternate status-line, file or pipeline\n"
+" / find, equivalent to `L' locate\n"
+" n find next, equivalent to `&' locate next\n"
+" E<lt>SpaceE<gt> scroll down, equivalent to E<lt>PgDnE<gt>\n"
+" b scroll up, equivalent to E<lt>PgUpE<gt>\n"
+" g first line, equivalent to E<lt>HomeE<gt>\n"
+" G last line, equivalent to E<lt>EndE<gt>\n"
+msgstr ""
+" I<touche fonction>\n"
+" « = » alterner entre ligne d'état, fichier ou tube\n"
+" « / » trouver, équivalent à « L » pour localiser\n"
+" « n » trouver le suivant, équivalent à « & »\n"
+" E<lt>EspaceE<gt> descendre, équivalent à E<lt>Pg.SuivE<gt>\n"
+" « b » monter, équivalent à E<lt>Pg.PrécE<gt>\n"
+" « g » première ligne, équivalent à E<lt>OrigE<gt>\n"
+" « G » dernière ligne, équivalent à E<lt>FinE<gt>\n"
+
+#. type: TP
+#: ../man/top.1:1545
+#, no-wrap
+msgid "\\ \\ \\ B<Z>\\ \\ :I<Change-Color-Mapping >"
+msgstr "\\ \\ \\ B<Z>\\ \\ : I<modifier la palette de couleurs>"
+
+#. type: Plain text
+#: ../man/top.1:1550
+msgid ""
+"This key will take you to a separate screen where you can change the colors "
+"for the \\*(CW, or for all windows. For details regarding this \\*(CI "
+"\\*(Xt 4d. COLOR Mapping."
+msgstr ""
+"Cette commande affichera un écran séparé où vous pourrez modifier les "
+"couleurs de la \\*(CW, ou de toutes les fenêtres. Pour plus de détails "
+"concernant cette \\*(CI, \\*(Xt B<4d. Palette de COULEURS>."
+
+#. type: Plain text
+#: ../man/top.1:1553
+#, fuzzy
+#| msgid "\\ B<^O>\\ \\ :I<Show-Active-Filters> (Ctrl key + `o')"
+msgid "\\ \\ B<^G>\\ \\ :I<Display-Control-Groups > (Ctrl key + `g')"
+msgstr "\\ B<^O>\\ \\ : I<montrer les filtres actifs> (touche Ctrl + « o »)"
+
+#. type: Plain text
+#: ../man/top.1:1555
+#, fuzzy
+#| msgid "\\ B<^O>\\ \\ :I<Show-Active-Filters> (Ctrl key + `o')"
+msgid "\\ \\ B<^K>\\ \\ :I<Display-Cmdline > (Ctrl key + `k')"
+msgstr "\\ B<^O>\\ \\ : I<montrer les filtres actifs> (touche Ctrl + « o »)"
+
+#. type: Plain text
+#: ../man/top.1:1557
+#, fuzzy
+#| msgid "\\ B<^O>\\ \\ :I<Show-Active-Filters> (Ctrl key + `o')"
+msgid "\\ \\ B<^N>\\ \\ :I<Display-Environment > (Ctrl key + `n')"
+msgstr "\\ B<^O>\\ \\ : I<montrer les filtres actifs> (touche Ctrl + « o »)"
+
+#. type: Plain text
+#: ../man/top.1:1559
+#, fuzzy
+#| msgid "\\ B<^O>\\ \\ :I<Show-Active-Filters> (Ctrl key + `o')"
+msgid "\\ \\ B<^P>\\ \\ :I<Display-Namesspaces > (Ctrl key + `p')"
+msgstr "\\ B<^O>\\ \\ : I<montrer les filtres actifs> (touche Ctrl + « o »)"
+
+#. type: Plain text
+#: ../man/top.1:1561
+#, fuzzy
+#| msgid "\\ B<^O>\\ \\ :I<Show-Active-Filters> (Ctrl key + `o')"
+msgid "\\ \\ B<^U>\\ \\ :I<Display-Supplementary-Groups > (Ctrl key + `u')"
+msgstr "\\ B<^O>\\ \\ : I<montrer les filtres actifs> (touche Ctrl + « o »)"
+
+#. type: Plain text
+#: ../man/top.1:1567
+msgid ""
+"Applied to the first process displayed, these commands will show that task's "
+"full (potentially wrapped) information. Such data will be displayed in a "
+"separate window at the bottom of the screen while normal \\*(We monitoring "
+"continues."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1572
+msgid ""
+"Keying theI< same> `Ctrl' command a second time removes that separate window "
+"as does the `=' command. Keying a different `Ctrl' combination, while one "
+"is already active, immediately transitions to the new information."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1577
+msgid ""
+"Notable among these provisions is the Ctrl+N (environment) command. Its "
+"output can be extensive and not easily read when line wrapped. A more "
+"readable version can be achieved with an `Inspect' entry in the rcfile like "
+"the following."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1580
+#, no-wrap
+msgid " pipe ^I Environment ^I cat /proc/%d/environ | tr '\\e0' '\\en'\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1584
+#, fuzzy
+#| msgid "\\*(XC `1' and '2' \\*(CIs for additional information."
+msgid ""
+"\\*(XC `Y' \\*(CI above and topic 6b. ADDING INSPECT Entries for additional "
+"information."
+msgstr "\\*(XC les \\*(CIs « 1 » et « 2 » pour plus de renseignements."
+
+#. type: Plain text
+#: ../man/top.1:1588
+msgid ""
+"As an alternative to `Inspect', and available to all of these `Ctrl' "
+"commands, the tab key can be used to highlight individual elements in the "
+"bottom window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1590
+#, fuzzy, no-wrap
+#| msgid "\\ B<^O>\\ \\ :I<Show-Active-Filters> (Ctrl key + `o')"
+msgid "\\ \\ B<^L>\\ \\ :I<Logged-Messages > (Ctrl key + `l')"
+msgstr "\\ B<^O>\\ \\ : I<montrer les filtres actifs> (touche Ctrl + « o »)"
+
+#. type: Plain text
+#: ../man/top.1:1596
+msgid ""
+"The 10 most recent messages are displayed in a separate window at the bottom "
+"of the screen while normal \\*(We monitoring continues. Keying `^L' a "
+"second time removes that window as does the `=' command. Use the tab key to "
+"highlight individual messages."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1597
+#, fuzzy, no-wrap
+#| msgid "\\ B<^O>\\ \\ :I<Show-Active-Filters> (Ctrl key + `o')"
+msgid "*\\ B<^R>\\ \\ :I<Renice-an-Autogroup > (Ctrl key + `r')"
+msgstr "\\ B<^O>\\ \\ : I<montrer les filtres actifs> (touche Ctrl + « o »)"
+
+#. type: Plain text
+#: ../man/top.1:1601
+#, fuzzy
+#| msgid "You will be prompted for a PID and then the value to nice it to."
+msgid ""
+"You will be prompted for a PID and then the value for its autogroup AGNI."
+msgstr ""
+"Vous invite à introduire le PID puis la valeur de politesse à appliquer."
+
+#. type: Plain text
+#: ../man/top.1:1604
+#, fuzzy
+#| msgid ""
+#| "Entering no PID or a negative number will be interpreted as the default "
+#| "shown in the prompt (the first task displayed). A PID value of zero "
+#| "means the \\*(We program itself."
+msgid ""
+"Entering no PID will be interpreted as the default shown in the prompt (the "
+"first task displayed)."
+msgstr ""
+"Ne pas entrer de PID ou une valeur négative sera interprété comme utiliser "
+"la valeur par défaut montrée dans l'invite (la première tâche affichée). Une "
+"valeur de PID de zéro signifie le programme \\*(WE lui-même."
+
+#. type: Plain text
+#: ../man/top.1:1610
+#, fuzzy
+#| msgid ""
+#| "A positive nice value will cause a process to lose priority. Conversely, "
+#| "a negative nice value will cause a process to be viewed more favorably by "
+#| "the kernel. As a general rule, ordinary users can only increase the nice "
+#| "value and are prevented from lowering it."
+msgid ""
+"A positive AGNI value will cause processes in that autogroup to lose "
+"priority. Conversely, a negative value causes them to be viewed more "
+"favorably by the kernel. Ordinary users are not allowed to set negative "
+"AGNI values."
+msgstr ""
+"Une valeur de politesse positive provoquera une diminution de la priorité de "
+"la tâche. À l'inverse, une valeur négative de politesse la fera considérer "
+"plus favorablement par le noyau. En règle générale, les utilisateurs peuvent "
+"seulement augmenter la valeur de politesse sans pouvoir la diminuer."
+
+#. type: Plain text
+#: ../man/top.1:1612
+msgid "If you wish to abort the renice process type E<lt>EscE<gt>."
+msgstr ""
+
+#. type: IP
+#: ../man/top.1:1613 ../man/top.1:2134
+#, no-wrap
+msgid "*"
+msgstr "*"
+
+#. type: Plain text
+#: ../man/top.1:1616
+msgid ""
+"The commands shown with an \\*(AK are not available in Secure mode, nor will "
+"they be shown on the level-1 help screen."
+msgstr ""
+"Les commandes précédées d'un \\*(AK ne sont pas disponibles en «\\ mode "
+"sécurisé\\ », elles ne seront pas non plus présentées au premier niveau de "
+"l'écran d'aide."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1618
+#, no-wrap
+msgid "4b. SUMMARY AREA Commands"
+msgstr "4b. Commandes de la ZONE de RÉSUMÉ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1623
+msgid ""
+"The \\*(SA \\*(CIs areB< always available> in both \\*(FM and \\*(AM. They "
+"affect the beginning lines of your display and will determine the position "
+"of messages and prompts."
+msgstr ""
+"Les commandes interactives de la \\*(SA sontB< toujours accessibles> à la "
+"fois en \\*(FM et en \\*(AM. Elles affectent les premières lignes de votre "
+"écran et détermineront la position des messages et des invites."
+
+#. type: Plain text
+#: ../man/top.1:1627
+msgid ""
+"These commands always impact just the \\*(CG. \\*(XT 5. ALTERNATE-DISPLAY "
+"Provisions and the `g' \\*(CI for insight into \\*(CWs and \\*(FGs."
+msgstr ""
+"Ces commandes ont toujours un impact seulement sur le \\*(CG. \\*(XT "
+"B<5. Dispositions d'AFFICHAGE ALTERNATIF> et la \\*(CI «\\ G\\ » pour une "
+"description plus précise de la \\*(CW et des groupes de champs."
+
+#. type: TP
+#: ../man/top.1:1628
+#, no-wrap
+msgid "\\ \\ \\ B<C>\\ \\ :I<Show-scroll-coordinates> toggle "
+msgstr "\\ \\ \\ B<C>\\ \\ : I<montrer les coordonnées d'affichage> ou non"
+
+#. type: Plain text
+#: ../man/top.1:1633
+msgid ""
+"Toggle an informational message which is displayed whenever the message line "
+"is not otherwise being used. For additional information \\*(Xt 5c. "
+"SCROLLING a Window."
+msgstr ""
+"Montrer un message d'information si la ligne de message n'est pas utilisée. "
+"\\*(XT B<5c. DÉPLACEMENT dans une fenêtre> pour de plus amples "
+"renseignements."
+
+#. type: TP
+#: ../man/top.1:1634
+#, no-wrap
+msgid "\\ \\ \\ B<l>\\ \\ :I<Load-Average/Uptime> toggle "
+msgstr "\\ \\ \\ B<l>\\ \\ : basculer entre I<charge moyenne et temps d'activité>"
+
+#. type: Plain text
+#: ../man/top.1:1638
+msgid ""
+"This is also the line containing the program name (possibly an alias) when "
+"operating in \\*(FM or the \\*(CW name when operating in \\*(AM."
+msgstr ""
+"Il s'agit aussi de la ligne contenant le nom du programme (éventuellement un "
+"alias) en \\*(FM ou du nom de la \\*(CW en \\*(AM."
+
+#. type: TP
+#: ../man/top.1:1639
+#, no-wrap
+msgid "\\ \\ \\ B<t>\\ \\ :I<Task/Cpu-States> toggle "
+msgstr "\\ \\ \\ B<t>\\ \\ \\ : basculer entre I<états de tâche et CPU>"
+
+#. type: Plain text
+#: ../man/top.1:1644
+msgid ""
+"This command affects from 2 to many \\*(SA lines, depending on the state of "
+"the `1', `2' or `3' \\*(CTs and whether or not \\*(We is running under true "
+"SMP."
+msgstr ""
+"Cette commande affecte deux ou plusieurs lignes de la \\*(SA, en fonction de "
+"l'état des commandes de basculement « 1 », « 2 » ou « 3 » ou si \\*(WE "
+"s'exécute sur un vrai SMP ou non."
+
+#. type: Plain text
+#: ../man/top.1:1647
+msgid ""
+"This portion of the \\*(SA is also influenced by the `H' \\*(CI toggle, as "
+"reflected in the total label which shows either Tasks or Threads."
+msgstr ""
+"Cette partie de la \\*(SA est aussi influencée par l'état de la \\*(CI "
+"« H », et est répercutée dans l'étiquette total qui montre soit "
+"« Tasks » (tâches), soit « Threads » (processus légers)."
+
+#. type: Plain text
+#: ../man/top.1:1649 ../man/top.1:1666
+msgid "This command serves as a 4-way toggle, cycling through these modes:"
+msgstr "Cette commande offre de façon cyclique quatre modes :"
+
+#. type: Plain text
+#: ../man/top.1:1654
+#, no-wrap
+msgid ""
+" 1. detailed percentages by category\n"
+" 2. abbreviated user/system and total % + bar graph\n"
+" 3. abbreviated user/system and total % + block graph\n"
+" 4. turn off task and cpu states display\n"
+msgstr ""
+" 1. pourcentages détaillés par catégorie\n"
+" 2. % synthétique utilisateur/système et total + graphique à barres\n"
+" 3. % synthétique utilisateur/système et total + graphe de blocs\n"
+" 4. pas d'affichage des tâches et états CPU\n"
+
+#. type: Plain text
+#: ../man/top.1:1659
+msgid ""
+"When operating in either of the graphic modes, the display becomes much more "
+"meaningful when individual CPUs or NUMA nodes are also displayed. \\*(XC "
+"the `1', `2' and `3' commands below for additional information."
+msgstr ""
+"En fonctionnant dans l'un des modes graphiques, l'affichage devient beaucoup "
+"plus pertinent si les CPU individuels ou les nœud NUMA sont aussi affichés. "
+"\\*(XC la commande «\\ 1\\ », «\\ 2\\ » et «\\ 3\\ » ci-dessous pour plus "
+"d'informations."
+
+#. type: TP
+#: ../man/top.1:1660
+#, no-wrap
+msgid "\\ \\ \\ B<m>\\ \\ :I<Memory/Swap-Usage> toggle "
+msgstr "\\ \\ \\ B<m>\\ \\ : basculer entre I<utilisation mémoire et fichier d'échange (« swap »)>"
+
+#. type: Plain text
+#: ../man/top.1:1664
+msgid ""
+"This command affects the two \\*(SA lines dealing with physical and virtual "
+"memory."
+msgstr ""
+"Cette commande affecte les deux lignes de la \\*(SA qui concernent la "
+"mémoire physique et virtuelle."
+
+#. type: Plain text
+#: ../man/top.1:1671
+#, no-wrap
+msgid ""
+" 1. detailed percentages by memory type\n"
+" 2. abbreviated % used/total available + bar graph\n"
+" 3. abbreviated % used/total available + block graph\n"
+" 4. turn off memory display\n"
+msgstr ""
+" 1. pourcentages détaillés par type de mémoire\n"
+" 2. % synthétique utilisateur/total disponible + graphique à barres\n"
+" 3. % synthétique utilisateur/total disponible + graphe de blocs\n"
+" 4. pas d'affichage de la mémoire\n"
+
+#. type: TP
+#: ../man/top.1:1673
+#, no-wrap
+msgid "\\ \\ \\ B<1>\\ \\ :I<Single/Separate-Cpu-States> toggle "
+msgstr "\\ \\ \\ B<1>\\ \\ : basculer entre I<états CPU simple et séparé>"
+
+#. type: Plain text
+#: ../man/top.1:1678
+msgid ""
+"This command affects how the `t' command's Cpu States portion is shown. "
+"Although this toggle exists primarily to serve massively-parallel SMP "
+"machines, it is not restricted to solely SMP environments."
+msgstr ""
+"Cette commande affecte la manière dont est présentée la zone des états de "
+"CPU de la commande «\\ t\\ ». Alors que cette option a été conçue "
+"initialement dans le cadre de machines SMP massivement parallèles, son "
+"utilisation n'est pas restreinte aux seuls environnements SMP."
+
+#. type: Plain text
+#: ../man/top.1:1683
+msgid ""
+"When you see `%Cpu(s):' in the \\*(SA, the `1' toggle is \\*O and all \\*(Pu "
+"information is gathered in a single line. Otherwise, each \\*(Pu is "
+"displayed separately as: `%Cpu0, %Cpu1, ...' up to available screen height."
+msgstr ""
+"Quand l'étiquette «\\ %Cpu(s):\\ » est affichée dans la \\*(SA, l'option «\\ "
+"1\\ » est \\*O et toute l'information du \\*(Pu est rassemblée sur une seule "
+"ligne. Autrement, chaque \\*(Pu est affiché séparément de cette manière\\ : "
+"«\\ %Cpu0, %Cpu1, ...\\ » tant que la hauteur de l'écran le permet."
+
+#. type: TP
+#: ../man/top.1:1684
+#, no-wrap
+msgid "\\ \\ \\ B<2>\\ \\ :I<NUMA-Nodes/Cpu-Summary> toggle "
+msgstr "\\ \\ \\ B<2>\\ \\ : basculer entre I<nœuds NUMA et résumé de processeur>"
+
+#. type: Plain text
+#: ../man/top.1:1689
+msgid ""
+"This command toggles between the `1' command cpu summary display (only) or "
+"a summary display plus the cpu usage statistics for each NUMA Node. It is "
+"only available if a system has the requisite NUMA support."
+msgstr ""
+"Cette commande bascule entre la commande « 1 » de résumé de processus (seul) "
+"ou un affichage du résumé et des statistiques d'utilisation de processus "
+"pour chaque nœud NUMA. Ce n'est disponible que si le système prend en charge "
+"NUMA."
+
+#. type: TP
+#: ../man/top.1:1690
+#, no-wrap
+msgid "\\ \\ \\ B<3>\\ \\ :I<Expand-NUMA-Node >"
+msgstr "\\ \\ \\ B<3>\\ \\ : I<nœud NUMA étendu>"
+
+#. type: Plain text
+#: ../man/top.1:1696
+msgid ""
+"You will be invited to enter a number representing a NUMA Node. Thereafter, "
+"a node summary plus the statistics for each cpu in that node will be shown "
+"until the `1', `2' or `4' \\*(CT is pressed. This \\*(CI is only available "
+"if a system has the requisite NUMA support."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1697
+#, fuzzy, no-wrap
+#| msgid "\\ \\ \\ B<S>\\ \\ :I<Cumulative-Time-Mode> toggle "
+msgid "\\ \\ \\ B<4>\\ \\ :I<Display-Multiple-Elements-Adjacent> toggle "
+msgstr "\\ \\ \\ B<S>\\ \\ : basculer en I<cumul de temps> "
+
+#. type: Plain text
+#: ../man/top.1:1703
+msgid ""
+"This \\*(CT turns the `1' toggle \\*F and shows multiple \\*(PU and Memory "
+"results on each line. Each successive `4' key adds another \\*(PU until "
+"again reverting to separate lines for \\*(PU and Memory results."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1709
+msgid ""
+"A maximum of 8 \\*(PUs per line can be displayed in this manner. However, "
+"data truncation may occur before reaching the maximum. That is definitely "
+"true when displaying detailed statistics via the `t' \\*(CT since such data "
+"cannot be scaled like the graphic representations."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1712
+msgid ""
+"If one wished to quickly exit adjacent mode without cycling all the way to "
+"8, simply use the `1' \\*(CT."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1713
+#, fuzzy, no-wrap
+#| msgid "\\ \\ \\ B<A>\\ \\ :I<Alternate-Display-Mode> toggle "
+msgid "\\ \\ \\ B<5>\\ \\ :I<Display-P-Cores-and-E-Cores> toggle "
+msgstr "\\ \\ \\ B<A>\\ \\ : basculer en I<mode d'affichage alternatif>"
+
+#. type: Plain text
+#: ../man/top.1:1719
+msgid ""
+"This \\*(CT is only active when the `t' toggle is \\*O and the `1', `2', `3' "
+"and `!' toggles are \\*F, thus showing individual \\*(PU results. It "
+"assumes a platform has multiple cores of two distinct types, either multi-"
+"threaded (P-Core) or single-threaded (E-Core)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1723
+msgid ""
+"While normally each \\*(Pu is displayed as `%Cpu0, %Cpu1, ...', this toggle "
+"can be used to identify and/or filter those \\*(Pus by their core type, "
+"either P-Core (performance) or E-Core (efficient)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1730
+msgid ""
+"The 1st time `5' is struck, each \\*(PU is displayed as `%CpB<P>' or "
+"`%CpB<E>' representing the two core types. The 2nd time, only P-Cores "
+"(%CpB<P>) will be shown. The 3rd time, only E-Cores (%CpB<E>) are "
+"displayed. When this \\*(CT is struck for the 4th time, the \\*(PU display "
+"returns to the normal `%Cpu' convention."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1733
+msgid ""
+"If separateI< performance> andI< efficient> categories are not present, this "
+"\\*(CT will have no effect."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1734
+#, fuzzy, no-wrap
+#| msgid "\\ \\ \\ B<S>\\ \\ :I<Cumulative-Time-Mode> toggle "
+msgid "\\ \\ \\ B<!>\\ \\ :I<Combine-Cpus-Mode> toggle "
+msgstr "\\ \\ \\ B<S>\\ \\ : basculer en I<cumul de temps> "
+
+#. type: Plain text
+#: ../man/top.1:1740
+msgid ""
+"This \\*(CT is intended for massively parallel SMP environments where, even "
+"with the `4' \\*(CT, not all processors can be displayed. With each press "
+"of `!' the number of \\*(Pus combined is doubled thus reducing the total "
+"number of \\*(Pu lines displayed."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1747
+msgid ""
+"For example, with the first press of `!' two \\*(Pus will be combined and "
+"displayed as `0-1, 2-3, ...' instead of the normal `%Cpu0, %Cpu1, %Cpu2, "
+"%Cpu3, ...'. With a second `!' \\*(CT four \\*(Pus are combined and shown as "
+"`0-3, 4-7, ...'. Then the third `!' press, combining eight \\*(Pus, shows "
+"as `0-7, 8-15, ...', etc."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1751
+msgid ""
+"Such progression continues until individual \\*(Pus are again displayed and "
+"impacts both the `1' and `4' toggles (one or multiple columns). Use the `=' "
+"command to exit B<Combine Cpus> mode."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1757
+msgid ""
+"\\*(NT If the entire \\*(SA has been toggled \\*F for any window, you would "
+"be left with just theB< message line>. In that way, you will have maximized "
+"available task rows but (temporarily) sacrificed the program name in \\*(FM "
+"or the \\*(CW name when in \\*(AM."
+msgstr ""
+"\\*(NT si la totalité de la \\*(SA est \\*F pour chaque fenêtre, vous "
+"n'aurez juste accès qu'àB< la ligne de message>. De cette manière vous "
+"maximiserez le nombre de lignes disponibles pour les tâches aux dépens "
+"(temporairement) du nom du programme en \\*(FM ou du nom de la \\*(CW en "
+"\\*(AM."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1759
+#, no-wrap
+msgid "4c. TASK AREA Commands"
+msgstr "4c. Commandes de la ZONE de TÂCHES"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1762
+msgid "The \\*(TA \\*(CIs areB< always> available in \\*(FM."
+msgstr ""
+"Les commandes interactives de la \\*(TA sont B<toujours> disponibles en "
+"\\*(FM."
+
+#. type: Plain text
+#: ../man/top.1:1765
+msgid ""
+"The \\*(TA \\*(CIs areB< never available> in \\*(AMI< if> the \\*(CW's "
+"\\*(TD has been toggled \\*F (\\*(Xt 5. ALTERNATE-DISPLAY Provisions)."
+msgstr ""
+"Les commandes interactives de la \\*(TA ne sont B<jamais disponibles> en "
+"\\*(AM I<quand> l'option de l'\\*(TD de la \\*(CW est positionnée sur \\*F "
+"(\\*(Xt B<5. Dispositions d'AFFICHAGE ALTERNATIF>)."
+
+#. type: Plain text
+#: ../man/top.1:1769
+msgid "B<APPEARANCE> of \\*(TW"
+msgstr "B<PRÉSENTATION> de la \\*(TW"
+
+#. type: TP
+#: ../man/top.1:1770
+#, no-wrap
+msgid "\\ \\ \\ B<J>\\ \\ :I<Justify-Numeric-Columns> toggle "
+msgstr "\\ \\ \\ B<J>\\ \\ : basculer la I<justification des colonnes numériques>"
+
+#. type: Plain text
+#: ../man/top.1:1776
+msgid ""
+"Alternates between right-justified (the default) and left-justified numeric "
+"data. If the numeric data completely fills the available column, this "
+"\\*(CT may impact the column header only."
+msgstr ""
+"Alterner entre la justification à droite (par défaut) et à gauche des "
+"données numériques. Si les données numériques remplissent complètement la "
+"colonne disponible, cette \\*(CT pourrait n'avoir de conséquence que sur "
+"l'en-tête."
+
+#. type: TP
+#: ../man/top.1:1777
+#, no-wrap
+msgid "\\ \\ \\ B<j>\\ \\ :I<Justify-Character-Columns> toggle "
+msgstr "\\ \\ \\ B<j>\\ \\ : basculer la I<justification des colonnes de lettres>"
+
+#. type: Plain text
+#: ../man/top.1:1783
+msgid ""
+"Alternates between left-justified (the default) and right-justified "
+"character data. If the character data completely fills the available "
+"column, this \\*(CT may impact the column header only."
+msgstr ""
+"Alterner entre la justification à gauche (par défaut) et à droite des "
+"données en lettres. Si les données en lettres remplissent complètement la "
+"colonne disponible, cette \\*(CT pourrait n'avoir de conséquence que sur "
+"l'en-tête."
+
+#. type: Plain text
+#: ../man/top.1:1788
+msgid ""
+"The following commands will also be influenced by the state of the global "
+"`B' (bold enable) toggle."
+msgstr ""
+"Les commandes suivantes seront aussi influencées par l'état de l'option "
+"globale «\\ B\\ » (gras activé)."
+
+#. type: TP
+#: ../man/top.1:1790
+#, no-wrap
+msgid "\\ \\ \\ B<b>\\ \\ :I<Bold/Reverse> toggle "
+msgstr "\\ \\ \\ B<b>\\ \\ : basculer I<gras ou inverse>"
+
+#. type: Plain text
+#: ../man/top.1:1795
+msgid ""
+"This command will impact how the `x' and `y' toggles are displayed. It may "
+"also impact the \\*(SA when a bar graph has been selected for \\*(Pu states "
+"or memory usage via the `t' or `m' toggles."
+msgstr ""
+"Cette commande affectera la manière dont les options «\\ x\\ » et «\\ y\\ » "
+"seront affichées. Elle peut aussi affecter la \\*(SA quand un graphique à "
+"barres a été sélectionné pour les états \\*(Pu ou l'utilisation de la "
+"mémoire au moyen des options «\\ t\\ » ou «\\ m\\ »."
+
+#. type: TP
+#: ../man/top.1:1796
+#, no-wrap
+msgid "\\ \\ \\ B<x>\\ \\ :I<Column-Highlight> toggle "
+msgstr "\\ \\ \\ B<x>\\ \\ : basculer la I<surbrillance de colonne>"
+
+#. type: Plain text
+#: ../man/top.1:1804
+#, no-wrap
+msgid ""
+"Changes highlighting for the current sort field.\n"
+"If you forget which field is being sorted this command can serve as a quick\n"
+"visual reminder, providing the sort field is being displayed.\n"
+"The sort field mightI< not> be visible because:\n"
+" 1) there is insufficientI< Screen Width >\n"
+" 2) the `f' \\*(CI turned it \\*F\n"
+msgstr ""
+"Modifie la surbrillance du champ de tri effectif.\n"
+"Si vous oubliez quel est le champ de tri, cette commande fournit\n"
+"un rapide rappel visuel, à condition que le champ de tri soit affiché.\n"
+"Les raisons pour lesquelles le champ du tri peut être masqué sont\\ :\n"
+" 1) une I<largeur d'écran> insuffisante ;\n"
+" 2) la \\*(CI «\\ f\\ » est positionnée sur \\*F.\n"
+
+#. type: TP
+#: ../man/top.1:1805
+#, no-wrap
+msgid "\\ \\ \\ B<y>\\ \\ :I<Row-Highlight> toggle "
+msgstr "\\ \\ \\ B<y>\\ \\ : basculer la I<surbrillance de ligne>"
+
+#. type: Plain text
+#: ../man/top.1:1810
+msgid ""
+"Changes highlighting for \"running\" tasks. For additional insight into "
+"this task state, \\*(Xt 3a. DESCRIPTIONS of Fields, the `S' field (Process "
+"Status)."
+msgstr ""
+"Modifie la surbrillance de tâches «\\ qui s'exécutent\\ ». Pour une "
+"meilleure compréhension de l'état de cette tâche, \\*(Xt B<3a. DESCRIPTIONS "
+"de champs>, le champ B<S> (B<État de processus>)."
+
+#. type: Plain text
+#: ../man/top.1:1813
+msgid ""
+"Use of this provision provides important insight into your system's health. "
+"The only costs will be a few additional tty escape sequences."
+msgstr ""
+"L'utilisation de cette disposition fournit une meilleure compréhension de "
+"l'état de santé de votre système. Les seuls surcoûts consisteront en "
+"quelques suites de caractères d'échappement supplémentaires sur le tty."
+
+#. type: TP
+#: ../man/top.1:1814
+#, no-wrap
+msgid "\\ \\ \\ B<z>\\ \\ :I<Color/Monochrome> toggle "
+msgstr "\\ \\ \\ B<z>\\ \\ : basculer en I<couleur ou monochrome>"
+
+#. type: Plain text
+#: ../man/top.1:1820
+msgid ""
+"Switches the \\*(CW between your last used color scheme and the older form "
+"of black-on-white or white-on-black. This command will alterB< both> the "
+"\\*(SA and \\*(TA but does not affect the state of the `x', `y' or `b' "
+"toggles."
+msgstr ""
+"Alterne sur la \\*(CW le dernier schéma de couleur utilisé et l'ancienne "
+"formule blanc-sur-noir ou noir-sur-blanc. Cette commande touche B<à la fois> "
+"la \\*(SA et la \\*(TA mais n'affectera pas l'état des options «\\ x\\ », "
+"«\\ y\\ » ou «\\ b\\ »."
+
+#. type: Plain text
+#: ../man/top.1:1824
+msgid "B<CONTENT> of \\*(TW"
+msgstr "B<CONTENU> de la \\*(TW"
+
+#. type: TP
+#: ../man/top.1:1825
+#, no-wrap
+msgid "\\ \\ \\ B<c>\\ \\ :I<Command-Line/Program-Name> toggle "
+msgstr "\\ \\ \\ B<c>\\ \\ : basculer I<ligne de commande ou nom du programme>"
+
+#. type: Plain text
+#: ../man/top.1:1830
+msgid ""
+"This command will be honored whether or not the COMMAND column is currently "
+"visible. Later, should that field come into view, the change you applied "
+"will be seen."
+msgstr ""
+"Cette commande sera appliquée, que la colonne «\\ COMMAND\\ » soit "
+"actuellement visible ou non. Par la suite, si le champ est affiché, la "
+"modification deviendra visible."
+
+#. type: TP
+#: ../man/top.1:1831
+#, fuzzy, no-wrap
+#| msgid "\\ \\ \\ B<i>\\ \\ :I<Idle-Process> toggle "
+msgid "\\ \\ \\ B<F>\\ \\ :I<Maintain-Parent-Focus> toggle "
+msgstr "\\ \\ \\ B<i>\\ \\ : basculer en I<processus en veille> "
+
+#. type: Plain text
+#: ../man/top.1:1836
+#, fuzzy
+#| msgid ""
+#| "When in forest view mode, this key serves as a toggle to collapse or "
+#| "expand the children of a parent."
+msgid ""
+"When in forest view mode, this key serves as a toggle to retain focus on a "
+"target task, presumably one with forked children. If forest view mode is "
+"\\*F this key has no effect."
+msgstr ""
+"En mode d'affichage arborescent, cette touche sert à basculer entre "
+"dissimuler et développer les enfants d'un parent."
+
+#. type: Plain text
+#: ../man/top.1:1841
+msgid ""
+"The toggle is applied to the first (topmost) process in the \\*(CW. Once "
+"established, that task is always displayed as the first (topmost) process "
+"along with its forked children. All other processes will be suppressed."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1844
+msgid ""
+"\\*(NT keys like `i' (idle tasks), `n' (max tasks), `v' (hide children) and "
+"User/Other filtering remain accessible and can impact what is displayed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1845 ../man/top.1:2000
+#, fuzzy, no-wrap
+#| msgid "\\ \\ \\ B<f> | B<F>\\ \\ :I<Fields-Management >"
+msgid "\\ \\ \\ B<f>\\ \\ :I<Fields-Management >"
+msgstr "\\ \\ \\ B<f> | B<F>\\ \\ : I<gestion des champs>"
+
+#. type: Plain text
+#: ../man/top.1:1851
+#, fuzzy
+#| msgid ""
+#| "These keys display a separate screen where you can change which fields "
+#| "are displayed, their order and also designate the sort field. For "
+#| "additional information on these \\*(CIs \\*(Xt 3b. MANAGING Fields."
+msgid ""
+"This key displays a separate screen where you can change which fields are "
+"displayed, their order and also designate the sort field. For additional "
+"information on this \\*(CI \\*(Xt 3b. MANAGING Fields."
+msgstr ""
+"Ces touches affichent un écran séparé où vous pouvez modifier la liste des "
+"champs affichés, leur ordonnancement et aussi désigner le champ de tri. Pour "
+"de plus amples renseignements sur ces commandes interactives, \\*(Xt "
+"B<3b. GESTION des champs>."
+
+#. type: TP
+#: ../man/top.1:1852
+#, fuzzy, no-wrap
+#| msgid "\\ \\ \\ B<o> | B<O>\\ \\ :I<Other-Filtering >"
+msgid "\\ \\ \\ B<O> | B<o>\\ \\ :I<Other-Filtering >"
+msgstr "\\ \\ \\ B<o> | B<O>\\ \\ : I<autre filtre>"
+
+#. type: Plain text
+#: ../man/top.1:1858
+msgid ""
+"You will be prompted for the selection criteria which then determines which "
+"tasks will be shown in the \\*(CW. Your criteria can be made case sensitive "
+"or case can be ignored. And you determine if \\*(We should include or "
+"exclude matching tasks."
+msgstr ""
+"Vous invite à introduire les critères de sélection qui déterminent alors les "
+"tâches qui seront montrées dans la \\*(CW. Les critères peuvent être rendus "
+"sensibles à la casse ou non. Les tâches correspondantes peuvent être soit "
+"incluses par \\*(WE, soit exclues."
+
+#. type: Plain text
+#: ../man/top.1:1861
+msgid ""
+"\\*(XT 5e. FILTERING in a window for details on these and additional related "
+"\\*(CIs."
+msgstr ""
+"\\*(XT B<5e. FILTRE dans une fenêtre> pour plus de précisions sur ces "
+"commandes interactives et les autres commandes interactives liées."
+
+#. type: TP
+#: ../man/top.1:1862
+#, no-wrap
+msgid "\\ \\ \\ B<S>\\ \\ :I<Cumulative-Time-Mode> toggle "
+msgstr "\\ \\ \\ B<S>\\ \\ : basculer en I<cumul de temps> "
+
+#. type: Plain text
+#: ../man/top.1:1866
+msgid ""
+"When Cumulative mode is \\*O, each process is listed with the \\*(Pu time "
+"that it and its dead children have used."
+msgstr ""
+"Lorsque l'option «\\ Mode cumulatif\\ » est \\*O, chaque processus est "
+"référencé avec le temps \\*(Pu que lui et ses enfants tués ont utilisé."
+
+#. type: Plain text
+#: ../man/top.1:1873
+msgid ""
+"When \\*F, programs that fork into many separate tasks will appear less "
+"demanding. For programs like `init' or a shell this is appropriate but for "
+"others, like compilers, perhaps not. Experiment with two \\*(TWs sharing "
+"the same sort field but with different `S' states and see which "
+"representation you prefer."
+msgstr ""
+"Avec l'option \\*F, les programmes qui ont été divisés en plusieurs tâches "
+"distinctes apparaîtront moins gourmands. Pour des programmes tels «\\ init\\ "
+"» ou un interpréteur de commandes (shell), ce comportement est approprié, "
+"mais pour d'autres, comme les compilateurs, ça ne l'est probablement pas. "
+"Expérimentez l'affichage d'une liste identique de champs triés dans deux "
+"fenêtres de tâches mais avec différents états «\\ S\\ » pour vous forger une "
+"opinion sur le comportement que vous préférez."
+
+#. type: Plain text
+#: ../man/top.1:1877
+msgid ""
+"After issuing this command, you'll be informed of the new state of this "
+"toggle. If you wish to know in advance whether or not Cumulative mode is in "
+"effect, simply ask for help and view the window summary on the second line."
+msgstr ""
+"Après l'exécution de cette commande, vous serez averti du nouvel état de "
+"cette option. Si vous souhaitez savoir à l'avance si le «\\ Mode cumulatif\\ "
+"» est activé, affichez simplement l'aide et consultez la deuxième ligne de "
+"la fenêtre récapitulative."
+
+#. type: TP
+#: ../man/top.1:1878
+#, fuzzy, no-wrap
+#| msgid "\\ \\ \\ B<u> | B<U>\\ \\ :I<Show-Specific-User-Only >"
+msgid "\\ \\ \\ B<U> | B<u>\\ \\ :I<Show-Specific-User-Only >"
+msgstr "\\ \\ \\ B<u> | B<U>\\ \\ : I<utilisateur spécifique>"
+
+#. type: Plain text
+#: ../man/top.1:1883
+msgid ""
+"You will be prompted for theB< uid> orB< name> of the user to display. The -"
+"u option matches on B< effective> user whereas the -U option matches onB< "
+"any> user (real, effective, saved, or filesystem)."
+msgstr ""
+"Vous invite à introduire l'B<UID> ou le B<nom> d'utilisateur à afficher. "
+"L'option « -u » s'applique à l'utilisateur B<effectif> tandis que l'option "
+"« -U » s'applique à B<n'importe quel> utilisateur (réel, effectif, "
+"sauvegardé ou système de fichiers)."
+
+#. type: Plain text
+#: ../man/top.1:1888
+msgid ""
+"Thereafter, in that \\*(TW only matching users will be shown, or possibly no "
+"processes will be shown. Prepending an exclamation point (`!') to the user "
+"id or name instructs \\*(We to display only processes with users not "
+"matching the one provided."
+msgstr ""
+"Par la suite, seuls les utilisateurs correspondants dans cette \\*(TW seront "
+"montrés, ou éventuellement aucun processus ne sera montré. Un point "
+"d'exclamation (« ! ») précédant l'identifiant ou le nom d'utilisateur "
+"indique à \\*(WE de n'afficher que les processus avec des utilisateurs ne "
+"correspondant pas à celui fourni."
+
+#. type: Plain text
+#: ../man/top.1:1892
+msgid ""
+"Different \\*(TWs can be used to filter different users. Later, if you wish "
+"to monitor all users again in the \\*(CW, re-issue this command but just "
+"press E<lt>EnterE<gt> at the prompt."
+msgstr ""
+"D'autres fenêtres de tâches peuvent être utilisées pour filtrer d'autres "
+"utilisateurs. Ensuite, si vous désirez surveiller à nouveau l'ensemble des "
+"utilisateurs dans la \\*(CW, réexécutez cette commande mais appuyez "
+"uniquement sur la touche E<lt>EntréeE<gt> à l'invite."
+
+#. type: TP
+#: ../man/top.1:1893
+#, no-wrap
+msgid "\\ \\ \\ B<V>\\ \\ :I<Forest-View-Mode> toggle "
+msgstr "\\ \\ \\ B<V>\\ \\ : basculer en I<mode d'affichage arborescent>"
+
+#. type: Plain text
+#: ../man/top.1:1900
+msgid ""
+"In this mode, processes are reordered according to their parents and the "
+"layout of the COMMAND column resembles that of a tree. In forest view mode "
+"it is still possible to toggle between program name and command line (\\*(Xc "
+"`c' \\*(CI) or between processes and threads (\\*(Xc `H' \\*(CI)."
+msgstr ""
+"Dans ce mode, les processus sont réordonnés en fonction de leurs parents et "
+"la disposition de la colonne «\\ COMMAND\\ » ressemble à celle d'un arbre. "
+"En mode d'affichage arborescent, il est toujours possible de basculer entre "
+"nom de programme et ligne de commande (\\*(Xc la \\*(CI « c ») ou entre "
+"processus et processus légers (\\*(Xc la \\*(CI « H »)."
+
+#. type: Plain text
+#: ../man/top.1:1904
+msgid ""
+"\\*(NT Typing any key affecting the sort order will exit forest view mode in "
+"the \\*(CW. \\*(XT 4c. TASK AREA Commands, SORTING for information on those "
+"keys."
+msgstr ""
+"\\*(NT l'utilisation d'une touche qui affecte l'ordre de tri force la sortie "
+"du mode d'affichage arborescent dans la \\*(CW. \\*(XT B<4c. Commandes de la "
+"ZONE de TÂCHES> — B<TRI> pour de plus amples renseignements sur ces touches."
+
+#. type: TP
+#: ../man/top.1:1905
+#, no-wrap
+msgid "\\ \\ \\ B<v>\\ \\ :I<Hide/Show-Children> toggle "
+msgstr "\\ \\ \\ B<v>\\ \\ : basculer I<cacher ou montrer les enfants>"
+
+#. type: Plain text
+#: ../man/top.1:1909
+msgid ""
+"When in forest view mode, this key serves as a toggle to collapse or expand "
+"the children of a parent."
+msgstr ""
+"En mode d'affichage arborescent, cette touche sert à basculer entre "
+"dissimuler et développer les enfants d'un parent."
+
+#. type: Plain text
+#: ../man/top.1:1913
+msgid ""
+"The toggle is applied against the first (topmost) process in the \\*(CW. "
+"\\*(XT 5c. SCROLLING a Window for additional information regarding vertical "
+"scrolling."
+msgstr ""
+"Cette option s'applique au premier processus (le plus haut) dans la \\*(CW. "
+"\\*(XT B<5c. DÉPLACEMENT dans une fenêtre> pour de plus amples "
+"renseignements sur les déplacements verticaux."
+
+#. type: Plain text
+#: ../man/top.1:1916
+msgid ""
+"If the target process has not forked any children, this key has no effect. "
+"It also has no effect when not in forest view mode."
+msgstr ""
+"Si le processus cible n'a pas engendré d'enfant, cette touche n'a pas "
+"d'effet. Elle n'a pas d'effet non plus quand le mode d'affichage arborescent "
+"n'est pas actif."
+
+#. type: TP
+#: ../man/top.1:1917
+#, fuzzy, no-wrap
+#| msgid "\\ B<^O>\\ \\ :I<Show-Active-Filters> (Ctrl key + `o')"
+msgid "\\ \\ B<^E>\\ \\ :I<Scale-CPU-Time-fields> (Ctrl key + `e')"
+msgstr "\\ B<^O>\\ \\ : I<montrer les filtres actifs> (touche Ctrl + « o »)"
+
+#. type: Plain text
+#: ../man/top.1:1924
+msgid ""
+"The `time' fields are normally displayed with the greatest precision their "
+"widths permit. This toggle reduces that precision until it wraps. It also "
+"illustrates the scaling those fields I<might> experience automatically, "
+"which usually depends on how long the system runs."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1927
+msgid ""
+"For example, if `MMM:SS.hh' is shown, each ^E keystroke would change it to: "
+"`MM:SS', `Hours,MM', `Days+Hours' and finally `Weeks+Days'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1929
+msgid "Not all time fields are subject to the full range of such scaling."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1933
+msgid "B<SIZE> of \\*(TW"
+msgstr "B<TAILLE> de la \\*(TW"
+
+#. type: TP
+#: ../man/top.1:1934
+#, no-wrap
+msgid "\\ \\ \\ B<i>\\ \\ :I<Idle-Process> toggle "
+msgstr "\\ \\ \\ B<i>\\ \\ : basculer en I<processus en veille> "
+
+#. type: Plain text
+#: ../man/top.1:1942
+msgid ""
+"Displays all tasks or just active tasks. When this toggle is \\*F, tasks "
+"that have not used any \\*(PU since the last update will not be displayed. "
+"However, due to the granularity of the %CPU and TIME+ fields, some processes "
+"may still be displayed thatI< appear> to have usedI< no> \\*(PU."
+msgstr ""
+"Affiche toutes les tâches ou seulement les tâches actives. Lorsque cette "
+"option est \\*F, les tâches qui n'ont pas utilisé de \\*(PU depuis la "
+"dernière mise à jour ne seront pas affichées. Cependant, à cause de la "
+"précision des champs %CPU et TIME+, quelques processus pourraient toujours "
+"être affichés même s'ils I<semblent> ne I<pas> avoir utilisé de \\*(PU."
+
+#. type: Plain text
+#: ../man/top.1:1945
+msgid ""
+"If this command is applied to the last \\*(TD when in \\*(AM, then it will "
+"not affect the window's size, as all prior \\*(TDs will have already been "
+"painted."
+msgstr ""
+"Appliquée au dernier \\*(TD, en \\*(AM, cette commande n'affecte pas la "
+"taille de la fenêtre, vu que l'ensemble des écrans de tâches précédents "
+"auront déjà été dessinés."
+
+#. type: TP
+#: ../man/top.1:1946
+#, no-wrap
+msgid "\\ \\ \\ B<n> | B<#>\\ \\ :I<Set-Maximum-Tasks >"
+msgstr "\\ \\ \\ B<n> | B<#>\\ \\ : I<configurer le maximum de tâches>"
+
+#. type: Plain text
+#: ../man/top.1:1950
+msgid ""
+"You will be prompted to enter the number of tasks to display. The lessor of "
+"your number and available screen rows will be used."
+msgstr ""
+"Vous invite à introduire le nombre de tâches à afficher. La valeur minimale "
+"entre le nombre saisi et le nombre de lignes d'écran disponibles sera "
+"utilisée."
+
+#. type: Plain text
+#: ../man/top.1:1955
+msgid ""
+"When used in \\*(AM, this is the command that gives you precise control over "
+"the size of each currently visible \\*(TD, except for the very last. It "
+"will not affect the last window's size, as all prior \\*(TDs will have "
+"already been painted."
+msgstr ""
+"Utilisée en \\*(AM, cette commande vous donnera un contrôle précis sur la "
+"taille de chacun des écrans de tâches actuels visibles, à l'exception du "
+"tout dernier. Elle ne l'affectera pas, vu que tous les écrans de tâches "
+"précédents auront déjà été dessinés."
+
+#. type: Plain text
+#: ../man/top.1:1958
+msgid ""
+"\\*(NT If you wish to increase the size of the last visible \\*(TD when in "
+"\\*(AM, simply decrease the size of the \\*(TD(s) above it."
+msgstr ""
+"\\*(NT si vous souhaitez accroître la taille du dernier \\*(TD visible, en "
+"\\*(AM, réduisez simplement la taille de l'\\*(TD au-dessus de lui."
+
+#. type: Plain text
+#: ../man/top.1:1962
+msgid "B<SORTING> of \\*(TW"
+msgstr "B<TRI> de la \\*(TW"
+
+#. type: Plain text
+#: ../man/top.1:1967
+msgid ""
+"For compatibility, this \\*(We supports most of the former \\*(We sort "
+"keys. Since this is primarily a service to former \\*(We users, these "
+"commands do not appear on any help screen."
+msgstr ""
+"Pour des raisons de compatibilité, cette version de \\*(WE gère la plupart "
+"des touches de tri des versions précédentes. Puisqu'il s'agit "
+"essentiellement d'un service pour les utilisateurs des versions précédentes "
+"de \\*(WE, ces commandes n'apparaissent sur aucun écran d'aide."
+
+#. type: Plain text
+#: ../man/top.1:1974
+#, no-wrap
+msgid ""
+" I< command sorted-field supported >\n"
+" A start time (non-display) B< No >\n"
+" M %MEM Yes\n"
+" N PID Yes\n"
+" P %CPU Yes\n"
+" T TIME+ Yes\n"
+msgstr ""
+" I<commande champ trié disponible>\n"
+" A démarrage (non affiché) B<Non>\n"
+" M %MEM Oui\n"
+" N PID Oui\n"
+" P %CPU Oui\n"
+" T TIME+ Oui\n"
+
+#. type: Plain text
+#: ../man/top.1:1979
+msgid ""
+"Before using any of the following sort provisions, \\*(We suggests that you "
+"temporarily turn on column highlighting using the `x' \\*(CI. That will "
+"help ensure that the actual sort environment matches your intent."
+msgstr ""
+"Avant l'utilisation d'une quelconque des clés de tri suivantes, \\*(WE "
+"propose que vous activiez temporairement la surbrillance de colonne en "
+"utilisant la \\*(CI «\\ x\\ », afin de vous conforter dans l'assurance que "
+"l'environnement de tri actuel correspond à vos intentions."
+
+#. type: Plain text
+#: ../man/top.1:1985
+#, no-wrap
+msgid ""
+"The following \\*(CIs willB< only> be honored when the current sort field\n"
+"isB< visible>.\n"
+"The sort field mightI< not> be visible because:\n"
+" 1) there is insufficientI< Screen Width >\n"
+" 2) the `f' \\*(CI turned it \\*F\n"
+msgstr ""
+"Les commandes interactives suivantes seront B<seulement> respectées lorsque\n"
+"le champ du tri effectif est B< visible>.\n"
+"Les raisons pour lesquelles le champ du tri peut être masqué sont\\ :\n"
+" 1) une I<largeur d'écran> insuffisante ;\n"
+" 2) la \\*(CI «\\ f\\ » est positionnée sur \\*F.\n"
+
+#. type: TP
+#: ../man/top.1:1986
+#, no-wrap
+msgid "\\ \\ \\ B<E<lt>>\\ \\ :I<Move-Sort-Field-Left >"
+msgstr "\\ \\ \\ B<E<lt>>\\ \\ : I<déplacer le champ trié à gauche>"
+
+#. type: Plain text
+#: ../man/top.1:1990
+msgid ""
+"Moves the sort column to the left unless the current sort field is the first "
+"field being displayed."
+msgstr ""
+"Déplace la colonne de tri vers la gauche à moins que le champ de tri "
+"effectif ne soit le premier de l'écran."
+
+#. type: TP
+#: ../man/top.1:1991
+#, no-wrap
+msgid "\\ \\ \\ B<E<gt>>\\ \\ :I<Move-Sort-Field-Right >"
+msgstr "\\ \\ \\ B<E<gt>>\\ \\ : I<déplacer le champ trié à droite>"
+
+#. type: Plain text
+#: ../man/top.1:1995
+msgid ""
+"Moves the sort column to the right unless the current sort field is the last "
+"field being displayed."
+msgstr ""
+"Déplace la colonne de tri vers la droite à moins que le champ de tri "
+"effectif ne soit le dernier de l'écran."
+
+#. type: Plain text
+#: ../man/top.1:1999
+msgid ""
+"The following \\*(CIs willB< always> be honored whether or not the current "
+"sort field is visible."
+msgstr ""
+"Les commandes interactives suivantes seront toujours appliquées, que les "
+"champs de tri effectifs soient visibles ou non."
+
+#. type: Plain text
+#: ../man/top.1:2006
+#, fuzzy
+#| msgid ""
+#| "These keys display a separate screen where you can change which field is "
+#| "used as the sort column, among other functions. This can be a convenient "
+#| "way to simply verify the current sort field, when running \\*(We with "
+#| "column highlighting turned \\*F."
+msgid ""
+"This key displays a separate screen where you can change which field is used "
+"as the sort column, among other functions. This can be a convenient way to "
+"simply verify the current sort field, when running \\*(We with column "
+"highlighting turned \\*F."
+msgstr ""
+"Ces touches présentent un écran séparé où vous pouvez sélectionner la "
+"colonne de tri, entre autres fonctions. Cela peut se révéler pratique pour "
+"contrôler simplement le champ de tri actuel, lorsque \\*(WE s'exécute avec "
+"une option de surbrillance de colonne positionnée en \\*F."
+
+#. type: TP
+#: ../man/top.1:2007
+#, no-wrap
+msgid "\\ \\ \\ B<R>\\ \\ :I<Reverse/Normal-Sort-Field> toggle "
+msgstr "\\ \\ \\ B<R>\\ \\ : basculer I<le champ de tri inverse ou normal>"
+
+#. type: Plain text
+#: ../man/top.1:2010
+msgid ""
+"Using this \\*(CI you can alternate between high-to-low and low-to-high "
+"sorts."
+msgstr ""
+"En utilisant cette \\*(CI, vous pouvez basculer entre des tris croissants et "
+"décroissants."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2012
+#, no-wrap
+msgid "4d. COLOR Mapping"
+msgstr "4d. Palette de COULEURS"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2017
+msgid ""
+"When you issue the `Z' \\*(CI, you will be presented with a separate "
+"screen. That screen can be used to change the colors in just the \\*(CW or "
+"in all four windows before returning to the \\*(We display."
+msgstr ""
+"L'utilisation de la \\*(CI «\\ Z\\ » vous présentera un écran séparé. Cet "
+"écran peut être utilisé pour modifier les couleurs de la seule \\*(CW ou de "
+"l'ensemble des quatre fenêtres avant de revenir à l'affichage principal."
+
+#. type: Plain text
+#: ../man/top.1:2020
+msgid "The following \\*(CIs are available."
+msgstr "Les commandes interactives suivantes sont disponibles."
+
+#. type: Plain text
+#: ../man/top.1:2031
+#, no-wrap
+msgid ""
+" B<4> upper case letters to select aB< target >\n"
+" B<8> numbers to select aB< color >\n"
+" normal toggles available \n"
+" B :bold disable/enable\n"
+" b :running tasks \"bold\"/reverse\n"
+" z :color/mono\n"
+" other commands available \n"
+" a/w :apply, then go to next/prior\n"
+" E<lt>EnterE<gt> :apply and exit\n"
+" q :abandon current changes and exit\n"
+msgstr ""
+" B<4> majuscules pour choisir une B<cible>\n"
+" B<8> chiffres pour choisir une B<couleur>\n"
+" bascules classiques disponibles\n"
+" «\\ B\\ » : gras désactivé ou activé\n"
+" «\\ b\\ » : tâches actives «\\ gras\\ » ou inverse\n"
+" «\\ z\\ » : couleur/monochrome\n"
+" autres commandes disponibles\n"
+" «\\ a\\ »/«\\ w\\ » : appliquer, ensuite aller au suivant ou précédent\n"
+" E<lt>EntréeE<gt> : appliquer puis quitter\n"
+" «\\ q\\ » : abandonner les modifications actuelles puis quitter\n"
+
+#. type: Plain text
+#: ../man/top.1:2037
+msgid ""
+"If you use `a' or `w' to cycle the targeted window, you will have applied "
+"the color scheme that was displayed when you left that window. You can, of "
+"course, easily return to any window and reapply different colors or turn "
+"colors \\*F completely with the `z' toggle."
+msgstr ""
+"En utilisant «\\ a\\ » ou «\\ w\\ » pour passer en revue les fenêtres "
+"cibles, vous appliquerez le schéma de couleurs affiché par la fenêtre que "
+"vous êtes en train de quitter aux fenêtres suivantes. Vous pouvez, bien "
+"entendu, facilement retourner sur chacune des fenêtres et appliquer de "
+"nouveau un schéma de couleurs différent ou désactiver (\\*F) totalement les "
+"couleurs avec l'option «\\ z\\ »."
+
+#. type: Plain text
+#: ../man/top.1:2042
+msgid ""
+"The Color Mapping screen can also be used to change the \\*(CG in either "
+"\\*(FM or \\*(AM. Whatever was targeted when `q' or E<lt>EnterE<gt> was "
+"pressed will be made current as you return to the \\*(We display."
+msgstr ""
+"L'écran palette de couleurs peut aussi être utilisé pour modifier le \\*(CG "
+"dans chacun des modes plein écran ou affichage alternatif. Quelle que soit "
+"la cible au moment où vous saisissez «\\ q\\ » ou E<lt>EntréeE<gt>, elle "
+"deviendra active lors du retour à l'affichage principal."
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2044
+#, no-wrap
+msgid "5. ALTERNATE-DISPLAY Provisions"
+msgstr "5. Dispositions d'AFFICHAGE ALTERNATIF"
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2047
+#, no-wrap
+msgid "5a. WINDOWS Overview"
+msgstr "5a. Vue d'ensemble du FENÊTRAGE"
+
+#. type: TP
+#: ../man/top.1:2049
+#, no-wrap
+msgid "B<Field Groups/Windows>:"
+msgstr "B<Groupes de champs/fenêtres>\\ :"
+
+#. type: Plain text
+#: ../man/top.1:2056
+msgid ""
+"In \\*(FM there is a single window represented by the entire screen. That "
+"single window can still be changed to display 1 of 4 differentB< field "
+"groups> (\\*(Xc `g' \\*(CI, repeated below). Each of the 4 \\*(FGs has a "
+"unique separately configurableB< \\*(SA > and its own configurableB< \\*(TA>."
+msgstr ""
+"En \\*(FM, une seule fenêtre occupe la totalité de l'écran. Cette fenêtre "
+"unique peut toujours être remplacée par un des quatre B<groupes de champs> "
+"différents (\\*(Xc la \\*(CI «\\ g\\ » réexpliquée ci-dessous). Chacun des "
+"quatre groupes de champs dispose d'une B<\\*(SA> configurable séparément et "
+"de sa propre B<\\*(TA> également configurable."
+
+#. type: Plain text
+#: ../man/top.1:2059
+msgid ""
+"In \\*(AM, those 4 underlying \\*(FGs can now be made visible "
+"simultaneously, or can be turned \\*F individually at your command."
+msgstr ""
+"En \\*(AM, ces quatre groupes de champs sous-jacents peuvent être visualisés "
+"simultanément ou peuvent être rendus \\*F à volonté."
+
+#. type: Plain text
+#: ../man/top.1:2064
+msgid ""
+"The \\*(SA will always exist, even if it's only the message line. At any "
+"given time onlyI< one> \\*(SA can be displayed. However, depending on your "
+"commands, there could be fromI< zero > toI< four> separate \\*(TDs currently "
+"showing on the screen."
+msgstr ""
+"La \\*(SA sera toujours présente, même s'il ne s'agit que d'une ligne de "
+"message. B<Une> seule \\*(SA peut être affichée à la fois. Cependant, selon "
+"vos directives, il peut y avoir de I<zéro> à I<quatre> écrans de tâches "
+"séparés à l'écran."
+
+#. type: TP
+#: ../man/top.1:2065
+#, no-wrap
+msgid "B<Current Window>:"
+msgstr "B<Fenêtre Active>\\ :"
+
+#. type: Plain text
+#: ../man/top.1:2071
+msgid ""
+"The \\*(CW is the window associated with the \\*(SA and the window to which "
+"task related commands are always directed. Since in \\*(AM you can toggle "
+"the \\*(TD \\*F, some commands might be restricted for the \\*(CW."
+msgstr ""
+"La \\*(CW est la fenêtre associée à la \\*(SA et la fenêtre vers laquelle "
+"les commandes liées à leur tâche sont toujours dirigées. Puisqu'en \\*(AM "
+"vous pouvez rendre \\*F l'\\*(TD, certaines commandes peuvent être "
+"restreintes dans la \\*(CW."
+
+#. type: Plain text
+#: ../man/top.1:2076
+msgid ""
+"A further complication arises when you have toggled the first \\*(SA line "
+"\\*F. With the loss of the window name (the `l' toggled line), you'll not "
+"easily know what window is the \\*(CW."
+msgstr ""
+"Une difficulté supplémentaire apparaît au moment de la désactivation de la "
+"première ligne de la \\*(SA. En perdant le nom de la fenêtre (la ligne de "
+"bascule «\\ l\\ »), il vous sera difficile de savoir quelle fenêtre est "
+"active."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2078
+#, no-wrap
+msgid "5b. COMMANDS for Windows"
+msgstr "5b. COMMANDES de Fenêtrage"
+
+#. type: TP
+#: ../man/top.1:2080
+#, no-wrap
+msgid "\\ \\ \\ B<-> | B<_>\\ \\ :I<Show/Hide-Window(s)> toggles "
+msgstr "\\ \\ \\ B<-> | B<_>\\ \\ : I<montrer ou masquer les fenêtres>"
+
+#. type: Plain text
+#: ../man/top.1:2087
+msgid ""
+"The `-' key turns the \\*(CW's \\*(TD \\*O and \\*F. When \\*O, that \\*(TA "
+"will show a minimum of the columns header you've established with the `f' "
+"\\*(CI. It will also reflect any other \\*(TA options/toggles you've "
+"applied yielding zero or more tasks."
+msgstr ""
+"La touche «\\ -\\ » active et désactive l'\\*(TD de la fenêtre active. \\*F, "
+"la \\*(TA affichera le minimum possible d'en-têtes de colonnes telles que "
+"vous les avez déterminées avec la \\*(CI «\\ f\\ ». Elle reflétera également "
+"toutes autres dispositions (options/bascules) de la \\*(TA que vous avez "
+"appliquées révélant zéro tâche ou plus."
+
+#. type: Plain text
+#: ../man/top.1:2093
+msgid ""
+"The `_' key does the same for all \\*(TDs. In other words, it switches "
+"between the currently visible \\*(TD(s) and any \\*(TD(s) you had toggled "
+"\\*F. If all 4 \\*(TDs are currently visible, this \\*(CI will leave the "
+"\\*(SA as the only display element."
+msgstr ""
+"La touche «\\ _\\ » a le même effet sur toutes les zones d'affichage des "
+"tâches. En d'autres termes, elle bascule entre l'\\*(TD visible actuellement "
+"et toute autre zone d'affichage marquée \\*F. Si les quatre zones "
+"d'affichage sont actuellement visibles, cette \\*(CI laissera la \\*(SA "
+"comme seul élément visible."
+
+#. type: TP
+#: ../man/top.1:2094
+#, no-wrap
+msgid "*\\ \\ B<=> | B<+>\\ \\ :I<Equalize/Reset-Window(s) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2103
+#, fuzzy
+#| msgid ""
+#| "The `=' key forces the \\*(CW's \\*(TD to be visible. It also reverses "
+#| "any active `i' (idle tasks), `n' (max tasks), `u/U' (user filter), `o/"
+#| "O' (other filter), `v' (hide children) and 'L' (locate) commands. Also, "
+#| "if the window had been scrolled, it will be reset with this command. "
+#| "\\*(XT 5c. SCROLLING a Window for additional information regarding "
+#| "vertical and horizontal scrolling."
+msgid ""
+"The `=' key forces the \\*(CW's \\*(TD to be visible. It also reverses any "
+"active `i' (idle tasks), `n' (max tasks), `u/U' (user filter), `o/O' (other "
+"filter), `v' (hide children), `F' focused, `L' (locate) and `!' (combine "
+"cpus) commands. Also, if the window had been scrolled, it will be reset "
+"with this command. \\*(XT 5c. SCROLLING a Window for additional information "
+"regarding vertical and horizontal scrolling."
+msgstr ""
+"La touche «\\ =\\ » force l'\\*(TD de la \\*(CW à être visible. Elle inverse "
+"aussi toutes commandes «\\ i\\ » (tâches en veille), «\\ n\\ » (nombre "
+"maximal de tâches), « u » ou « U » (filtre utilisateur), « o » ou "
+"« O » (autre filtre), « v » (masquer les enfants), « L » (localiser) qui "
+"peuvent être actives. De plus, après navigation, la fenêtre sera "
+"réinitialisée avec cette commande. \\*(XT B<5c. DÉPLACEMENT dans une "
+"fenêtre> pour de plus amples renseignements sur les déplacements verticaux "
+"et horizontaux."
+
+#. type: Plain text
+#: ../man/top.1:2108
+msgid ""
+"The `+' key does the same for all windows. The four \\*(TDs will reappear, "
+"evenly balanced, while retaining any customizations previously applied "
+"beyond those noted for the `=' \\*(CT."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2109
+#, no-wrap
+msgid "*\\ \\ B<A>\\ \\ :I<Alternate-Display-Mode> toggle "
+msgstr "*\\ \\ B<A>\\ \\ : basculer en I<mode d'affichage alternatif>"
+
+#. type: Plain text
+#: ../man/top.1:2112
+msgid "This command will switch between \\*(FM and \\*(AM."
+msgstr "Cette commande passera du \\*(FM en \\*(AM."
+
+#. type: Plain text
+#: ../man/top.1:2116
+msgid ""
+"The first time you issue this command, all four \\*(TDs will be shown. "
+"Thereafter when you switch modes, you will see only the \\*(TD(s) you've "
+"chosen to make visible."
+msgstr ""
+"Lors d'une première exécution, les quatre zones d'affichage seront "
+"présentées. Ensuite, en basculant de mode, vous ne verrez que les zones "
+"d'affichage des tâches que vous souhaitez rendre visibles."
+
+#. type: TP
+#: ../man/top.1:2117
+#, no-wrap
+msgid "*\\ \\ B<a> | B<w>\\ \\ :I<Next-Window-Forward/Backward >"
+msgstr "*\\ \\ B<a> | B<w>\\ \\ : I<fenêtre suivante ou précédente>"
+
+#. type: Plain text
+#: ../man/top.1:2123
+msgid ""
+"This will change the \\*(CW, which in turn changes the window to which "
+"commands are directed. These keys act in a circular fashion so you can "
+"reach any desired window using either key."
+msgstr ""
+"Ces commandes changeront de \\*(CW, présentant tour à tour la fenêtre vers "
+"laquelle les commandes sont dirigées. Ces touches agissent de manière "
+"cyclique vous permettant d'atteindre toute \\*(CW souhaitée quelle que soit "
+"la touche utilisée."
+
+#. type: Plain text
+#: ../man/top.1:2127
+msgid ""
+"Assuming the window name is visible (you have not toggled `l' \\*F), "
+"whenever the \\*(CW name loses its emphasis/color, that's a reminder the "
+"\\*(TD is \\*F and many commands will be restricted."
+msgstr ""
+"En supposant que le nom de la fenêtre soit visible (vous n'avez pas rendu "
+"«\\ l\\ » \\*F), à chaque fois la \\*(CW perd sa mise en évidence ou ses "
+"couleurs, rappelant que l'\\*(TD est \\*F et que de nombreuses commandes "
+"seront restreintes."
+
+#. type: TP
+#: ../man/top.1:2128
+#, no-wrap
+msgid "\\ \\ \\ B<G>\\ \\ :I<Change-Window/Field-Group-Name >"
+msgstr "\\ \\ \\ B<G>\\ \\ : I<modifier le nom de la fenêtre ou du groupe de champs>"
+
+#. type: Plain text
+#: ../man/top.1:2133
+msgid ""
+"You will be prompted for a new name to be applied to the \\*(CW. It does "
+"not require that the window name be visible (the `l' toggle to be \\*O)."
+msgstr ""
+"Vous invite à renommer la \\*(CW. Cela ne demande pas que le nom de la "
+"fenêtre soit visible (c'est-à-dire que l'option «\\ l\\ » soit \\*O)."
+
+#. type: Plain text
+#: ../man/top.1:2136
+msgid "The \\*(CIs shown with an \\*(AK have use beyond \\*(AM."
+msgstr ""
+"Les commandes interactives précédées d'un \\*(AK sont utilisables au-delà du "
+"\\*(AM."
+
+#. type: Plain text
+#: ../man/top.1:2140
+#, no-wrap
+msgid ""
+" =, A, g are always available\n"
+" a, w act the same with color mapping\n"
+" and fields management\n"
+msgstr ""
+" « = », « A », « g » sont toujours disponibles\n"
+" « a », « w » agissent de même sur la palette de\n"
+" couleurs et la gestion de champs\n"
+
+#. type: TP
+#: ../man/top.1:2142
+#, no-wrap
+msgid "*\\ \\ B<g>\\ \\ :I<Choose-Another-Window/Field-Group >"
+msgstr "*\\ \\ B<g>\\ \\ : I<choisir une autre fenêtre ou un groupe de champs>"
+
+#. type: Plain text
+#: ../man/top.1:2146
+msgid ""
+"You will be prompted to enter a number between 1 and 4 designating the "
+"\\*(FG which should be made the \\*(CW."
+msgstr ""
+"Vous invite à introduire un nombre entre 1 et 4 désignant le \\*(FG qui "
+"deviendra la \\*(CW."
+
+#. type: Plain text
+#: ../man/top.1:2150
+msgid ""
+"In \\*(FM, this command is necessary to alter the \\*(CW. In \\*(AM, it is "
+"simply a less convenient alternative to the `a' and `w' commands."
+msgstr ""
+"En \\*(FM, cette commande est indispensable pour modifier la \\*(CW. En "
+"\\*(AM, il s'agit simplement d'un moyen moins pratique que les commandes «\\ "
+"a\\ » et «\\ w\\ »."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2152
+#, no-wrap
+msgid "5c. SCROLLING a Window"
+msgstr "5c. DÉPLACEMENT dans une fenêtre"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2158
+#, fuzzy
+#| msgid ""
+#| "Typically a \\*(TW is a partial view into a systems's total tasks/threads "
+#| "which shows only some of the available fields/columns. With these "
+#| "\\*(KSs, you can move that view vertically or horizontally to reveal any "
+#| "desired task or column."
+msgid ""
+"Typically a \\*(TW is a partial view into a system's total tasks/threads "
+"which shows only some of the available fields/columns. With these \\*(KSs, "
+"you can move that view vertically or horizontally to reveal any desired task "
+"or column."
+msgstr ""
+"Une \\*(TW est typiquement une vue partielle dans l'ensemble de tâches ou de "
+"processus légers qui ne montre que certains champs ou colonnes disponibles. "
+"Avec ces \\*(KS vous pouvez déplacer cette vue verticalement ou "
+"horizontalement pour montrer n'importe quelle tâche ou colonne voulue."
+
+#. type: TP
+#: ../man/top.1:2159
+#, no-wrap
+msgid "B<Up>,B<PgUp>\\ \\ :I<Scroll-Tasks >"
+msgstr "B<Haut>, B<Pg.Préc>\\ \\ : I<déplacement dans les tâches>"
+
+#. type: Plain text
+#: ../man/top.1:2165
+msgid ""
+"Move the view up toward the first task row, until the first task is "
+"displayed at the top of the \\*(CW. The I<Up> \\*(KA moves a single line "
+"while I<PgUp> scrolls the entire window."
+msgstr ""
+"Déplacer la vue vers le haut vers la première ligne de tâche, jusqu'à ce que "
+"la première tâche soit affichée en haut de la \\*(CW. La \\*(KA B<Haut> "
+"déplace d'une ligne tandis que B<Pg.Préc> déplace d'une fenêtre entière."
+
+#. type: TP
+#: ../man/top.1:2166
+#, no-wrap
+msgid "B<Down>,B<PgDn>\\ \\ :I<Scroll-Tasks >"
+msgstr "B<Bas>, B<Pg.Suiv>\\ \\ : I<déplacement dans les tâches>"
+
+#. type: Plain text
+#: ../man/top.1:2172
+msgid ""
+"Move the view down toward the last task row, until the last task is the only "
+"task displayed at the top of the \\*(CW. The I<Down> \\*(KA moves a single "
+"line while I<PgDn> scrolls the entire window."
+msgstr ""
+"Déplacer la vue vers le bas vers la dernière ligne de tâche, jusqu'à ce que "
+"la dernière tâche soit la seule tâche affichée en haut de la \\*(CW. La "
+"\\*(KA B<Bas> déplace d'une ligne tandis que B<Pg.Suiv> déplace d'une "
+"fenêtre entière."
+
+#. type: TP
+#: ../man/top.1:2173
+#, no-wrap
+msgid "B<Left>,B<Right>\\ \\ :I<Scroll-Columns >"
+msgstr "B<Gauche>, B<Droite>\\ \\ : I<déplacement dans les colonnes>"
+
+#. type: Plain text
+#: ../man/top.1:2176
+msgid "Move the view of displayable fields horizontally one column at a time."
+msgstr ""
+"Déplacer horizontalement la vue des champs affichables, une colonne à la "
+"fois."
+
+#. type: Plain text
+#: ../man/top.1:2181
+msgid ""
+"\\*(NT As a reminder, some fields/columns are not fixed-width but allocated "
+"all remaining screen width when visible. When scrolling right or left, that "
+"feature may produce some unexpected results initially."
+msgstr ""
+"\\*(NT en rappel, certains champs ou colonnes ne sont pas de largeur fixe, "
+"mais prennent toute la largeur de l'écran s'ils sont visibles. Lors d'un "
+"déplacement vers la gauche ou la droite, cette fonctionnalité peut produire "
+"des résultats initialement imprévus."
+
+#. type: Plain text
+#: ../man/top.1:2187
+msgid ""
+"Additionally, there are special provisions for any variable width field when "
+"positioned as the last displayed field. Once that field is reached via the "
+"right arrow key, and is thus the only column shown, you can continue "
+"scrolling horizontally within such a field. \\*(XC `C' \\*(CI below for "
+"additional information."
+msgstr ""
+"De plus, certaines dispositions spéciales existent pour tous les champs de "
+"largeur variable positionnés en dernier champ affiché. Une fois ce champ "
+"atteint par la \\*(KA B<Droite>, qui est donc la seule colonne visible, vous "
+"pouvez continuer le déplacement à l'intérieur de ce champ. \\*(XC la \\*(CI "
+"« C » ci-dessous pour de plus amples renseignements."
+
+#. type: TP
+#: ../man/top.1:2188
+#, no-wrap
+msgid "B<Home>\\ \\ :I<Jump-to-Home-Position >"
+msgstr "B<Orig>\\ \\ : I<sauter à la position d'origine>"
+
+#. type: Plain text
+#: ../man/top.1:2191
+msgid "Reposition the display to the un-scrolled coordinates."
+msgstr "Repositionner l'affichage aux coordonnées initiales."
+
+#. type: TP
+#: ../man/top.1:2192
+#, no-wrap
+msgid "B<End>\\ \\ :I<Jump-to-End-Position >"
+msgstr "B<Fin>  : I<sauter à la position finale>"
+
+#. type: Plain text
+#: ../man/top.1:2196
+msgid ""
+"Reposition the display so that the rightmost column reflects the last "
+"displayable field and the bottom task row represents the last task."
+msgstr ""
+"Repositionner l'affichage de telle façon que la colonne la plus à droite "
+"soit le dernier champ visible et que la dernière ligne de tâche soit "
+"relative à la dernière tâche."
+
+#. type: Plain text
+#: ../man/top.1:2201
+msgid ""
+"\\*(NT From this position it is still possible to scrollI< down> andI< "
+"right> using the \\*(KAs. This is true until a single column and a single "
+"task is left as the only display element."
+msgstr ""
+"\\*(NT à partir de cette position il est toujours possible de se déplacer "
+"vers le B<bas> et vers la B<droite> en utilisant les \\*(KAs. C'est vrai "
+"sauf s'il n'y a qu'une seule colonne et une seule tâche affichée."
+
+#. type: TP
+#: ../man/top.1:2202
+#, no-wrap
+msgid "B<C>\\ \\ :I<Show-scroll-coordinates> toggle "
+msgstr "B<C>\\ \\ : I<montrer les coordonnées d'affichage> ou non"
+
+#. type: Plain text
+#: ../man/top.1:2208
+msgid ""
+"Toggle an informational message which is displayed whenever the message line "
+"is not otherwise being used. That message will take one of two forms "
+"depending on whether or not a variable width column has also been scrolled."
+msgstr ""
+"Montrer un message d'information si la ligne de message n'est pas utilisée. "
+"Ce message prendra une des deux formes suivantes, s'il y a eu déplacement ou "
+"non dans une colonne de largeur variable."
+
+#. type: Plain text
+#: ../man/top.1:2212
+#, no-wrap
+msgid ""
+" B<scroll coordinates: y = n/n (tasks), x = n/n (fields)>\n"
+" scroll coordinates: y = n/n (tasks), x = n/n (fields)B< + nn>\n"
+msgstr ""
+" B<scroll coordinates: y => I<a>B</>I<b> B<(tasks), x => I<c>B</>I<d> B<(fields)>\n"
+" B<scroll coordinates: y => I<a>B</>I<b> B<(tasks), x => I<c>B</>I<d> B<(fields) +> I<e>\n"
+
+#. type: Plain text
+#: ../man/top.1:2220
+msgid ""
+"The coordinates shown as B<n>/B<n> are relative to the upper left corner of "
+"the \\*(CW. The additional `B<+\\ nn>' represents the displacement into a "
+"variable width column when it has been scrolled horizontally. Such "
+"displacement occurs in normal 8 character tab stop amounts via the right and "
+"left arrow keys."
+msgstr ""
+"Les coordonnées I<a>B</>I<b> et I<c>B</>I<d> montrées sont relatives au coin "
+"haut gauche de la \\*(CW. Le « B<+\\ e> » supplémentaire représente le "
+"déplacement dans une colonne de largeur variable s'il y a eu déplacement "
+"horizontal. Ce type de déplacement se fait en tabulations classiques de huit "
+"caractères avec les \\*(KAs B<Droite> et B<Gauche>."
+
+#. type: TP
+#: ../man/top.1:2222
+#, no-wrap
+msgid "B<y = n/n (tasks) >"
+msgstr "B<y => I<a>B</>I<b> B<(tasks)>"
+
+#. type: Plain text
+#: ../man/top.1:2227
+msgid ""
+"The first B<n> represents the topmost visible task and is controlled by "
+"\\*(KSs. The second B<n> is updated automatically to reflect total tasks."
+msgstr ""
+"I<a> représente la tâche la plus haute visible et est contrôlée par les "
+"\\*(KS. I<b> est automatiquement mis à jour pour refléter le nombre total de "
+"tâches."
+
+#. type: TP
+#: ../man/top.1:2228
+#, no-wrap
+msgid "B<x = n/n (fields) >"
+msgstr "B<x => I<c>B</>I<d> B<(fields)>"
+
+#. type: Plain text
+#: ../man/top.1:2234
+msgid ""
+"The first B<n> represents the leftmost displayed column and is controlled by "
+"\\*(KSs. The second B<n> is the total number of displayable fields and is "
+"established with the `B<f>' \\*(CI."
+msgstr ""
+"I<c> représente la colonne la plus à gauche visible et est contrôlée par les "
+"\\*(KS. I<d> est le nombre total de champs affichables et est établi avec la "
+"\\*(CI « B<f> »."
+
+#. type: Plain text
+#: ../man/top.1:2239 ../man/top.1:2298
+msgid ""
+"The above \\*(CIs areB< always> available in \\*(FM butB< never> available "
+"in \\*(AM if the \\*(CW's \\*(TD has been toggled \\*F."
+msgstr ""
+"Les commandes interactives ci-dessus sont B<toujours> disponibles en \\*(FM "
+"mais B<jamais> en \\*(AM si l'option d'\\*(TD de la \\*(CW est positionnée "
+"sur \\*F."
+
+#. type: Plain text
+#: ../man/top.1:2243
+msgid ""
+"\\*(NT When any form of filtering is active, you can expect some slight "
+"aberrations when scrolling since not all tasks will be visible. This is "
+"particularly apparent when using the Up/Down \\*(KAs."
+msgstr ""
+"\\*(NT si n'importe quel type de filtre est actif, quelques légères "
+"aberrations sont possibles lors du déplacement puisque toutes les tâches ne "
+"seront pas visibles. C'est particulièrement visible lors de l'utilisation "
+"des \\*(KAs B<Haut> et B<Bas>."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2245
+#, no-wrap
+msgid "5d. SEARCHING in a Window"
+msgstr "5d. RECHERCHE dans une fenêtre"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2248
+msgid ""
+"You can use these \\*(CIs to locate a task row containing a particular value."
+msgstr ""
+"Les commandes interactives suivantes permettent de trouver une ligne de "
+"tâche contenant une certaine valeur."
+
+#. type: TP
+#: ../man/top.1:2249
+#, no-wrap
+msgid "B<L>\\ \\ :I<Locate-a-string>"
+msgstr "B<L>\\ \\ : I<trouver une chaîne>"
+
+#. type: Plain text
+#: ../man/top.1:2254
+msgid ""
+"You will be prompted for the case-sensitive string to locate starting from "
+"the current window coordinates. There are no restrictions on search string "
+"content."
+msgstr ""
+"Une invite permettra d'entrer une chaîne de caractères, sensible à la casse, "
+"à trouver à partir des coordonnées actuelles de la fenêtre. Il n'y a aucune "
+"restriction sur le contenu de la chaîne de recherche."
+
+#. type: Plain text
+#: ../man/top.1:2258
+msgid ""
+"Searches are not limited to values from a single field or column. All of "
+"the values displayed in a task row are allowed in a search string. You may "
+"include spaces, numbers, symbols and even forest view artwork."
+msgstr ""
+"Les recherches ne sont pas limitées aux valeurs d'un seul champ ou d'une "
+"seule colonne. Toutes les valeurs affichées dans une ligne de tâche sont "
+"permises dans la chaîne de recherche. Les espaces, nombres, symboles et même "
+"les caractères spéciaux de l'affichage arborescent sont autorisés."
+
+#. type: Plain text
+#: ../man/top.1:2261
+msgid ""
+"Keying E<lt>EnterE<gt> with no input will effectively disable the `&' key "
+"until a new search string is entered."
+msgstr ""
+"Appuyer sur E<lt>EntréeE<gt> sans chaîne indiquée désactivera de fait la "
+"touche « & » jusqu'à ce qu'une nouvelle chaîne de recherche soit indiquée."
+
+#. type: TP
+#: ../man/top.1:2262
+#, no-wrap
+msgid "B<&>\\ \\ :I<Locate-next>"
+msgstr "B<&>\\ \\ : I<trouver la suivante>"
+
+#. type: Plain text
+#: ../man/top.1:2266
+msgid ""
+"Assuming a search string has been established, \\*(We will attempt to locate "
+"the next occurrence."
+msgstr ""
+"Si une recherche est déjà en cours, \\*(WE essayera de trouver l'occurrence "
+"suivante."
+
+#. type: Plain text
+#: ../man/top.1:2273
+msgid ""
+"When a match is found, the current window is repositioned vertically so the "
+"task row containing that string is first. The scroll coordinates message "
+"can provide confirmation of such vertical repositioning (\\*(Xc `C' "
+"\\*(CI). Horizontal scrolling, however, is never altered via searching."
+msgstr ""
+"Lorsqu'une correspondance est trouvée, la fenêtre actuelle est repositionnée "
+"verticalement pour que la ligne de tâche contenant cette chaîne soit la "
+"première. Le message « scroll coordinates » peut offrir une confirmation de "
+"ce repositionnement vertical (\\*(Xc la \\*(CI « C »). Cependant, le "
+"positionnement horizontal, n'est pas affecté par la recherche."
+
+#. type: Plain text
+#: ../man/top.1:2276
+msgid ""
+"The availability of a matching string will be influenced by the following "
+"factors."
+msgstr ""
+"La disponibilité d'une chaîne correspondante peut être influencée par les "
+"facteurs suivants."
+
+#. type: TP
+#: ../man/top.1:2277
+#, no-wrap
+msgid "a. Which fields are displayable from the total available,"
+msgstr "a. Les champs affichables en regard de tous ceux disponibles,"
+
+#. type: Plain text
+#: ../man/top.1:2280
+msgid "\\*(Xt 3b. MANAGING Fields."
+msgstr "\\*(Xt B<3b. GESTION des champs>."
+
+#. type: TP
+#: ../man/top.1:2280
+#, no-wrap
+msgid "b. Scrolling a window vertically and/or horizontally,"
+msgstr "b. Le déplacement vertical ou horizontal de la fenêtre,"
+
+#. type: Plain text
+#: ../man/top.1:2283
+msgid "\\*(Xt 5c. SCROLLING a Window."
+msgstr "\\*(Xt B<5c. DÉPLACEMENT dans une fenêtre>."
+
+#. type: TP
+#: ../man/top.1:2283
+#, no-wrap
+msgid "c. The state of the command/command-line toggle,"
+msgstr "c. L'état de la bascule commande ou ligne de commande,"
+
+#. type: Plain text
+#: ../man/top.1:2286
+msgid "\\*(Xc `c' \\*(CI."
+msgstr "\\*(Xc la \\*(CI « c »."
+
+#. type: TP
+#: ../man/top.1:2286
+#, no-wrap
+msgid "d. The stability of the chosen sort column,"
+msgstr "d. La stabilité de la colonne de tri choisie,"
+
+#. type: Plain text
+#: ../man/top.1:2289
+msgid "for example PID is good but %CPU bad."
+msgstr "par exemple, PID est un bon choix, mais pas %CPU."
+
+#. type: Plain text
+#: ../man/top.1:2295
+msgid ""
+"If a search fails, restoring the \\*(CW home (unscrolled) position, "
+"scrolling horizontally, displaying command-lines or choosing a more stable "
+"sort field could yet produce a successful `&' search."
+msgstr ""
+"Si une recherche échoue, restaurer la \\*(CW à la position d'origine (sans "
+"déplacement), se déplacer horizontalement, afficher les lignes de commande "
+"ou choisir un champ de tri plus stable pourraient tout de même permettre de "
+"trouver quelque chose avec la commande « & »."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2300
+#, no-wrap
+msgid "5e. FILTERING in a Window"
+msgstr "5e. FILTRE dans une fenêtre"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2306
+#, fuzzy
+#| msgid ""
+#| "You can use this `Other Filter' feature to establish selection criteria "
+#| "which will then determine which tasks are shown in the \\*(CW. Such "
+#| "filters can be made presistent if preserved in the rcfile via the 'W' "
+#| "\\*(CI."
+msgid ""
+"You can use this `Other Filter' feature to establish selection criteria "
+"which will then determine which tasks are shown in the \\*(CW. Such filters "
+"can be made persistent if preserved in the rcfile via the `W' \\*(CI."
+msgstr ""
+"La fonctionnalité « autre filtre » permet d'établir des critères de "
+"sélection qui détermineront ensuite les tâches montrées dans la \\*(CW. Ces "
+"filtres peuvent devenir persistants s'ils sont sauvés dans le fichier I<rc> "
+"avec la \\*(CI « W »."
+
+#. type: Plain text
+#: ../man/top.1:2312
+msgid ""
+"Establishing a filter requires: 1) a field name; 2) an operator; and 3) a "
+"selection value, as a minimum. This is the most complex of \\*(We's user "
+"input requirements so, when you make a mistake, command recall will be your "
+"friend. Remember the Up/Down \\*(KAs or their aliases when prompted for "
+"input."
+msgstr ""
+"La mise en place d'un filtre nécessite au moins :\n"
+" 1) un nom de champ ;\n"
+" 2) un opérateur ;\n"
+" 3) une valeur de sélection.\n"
+"\n"
+"Ce sont les exigences d'entrée utilisateur de B<top> les plus compliquées "
+"donc, en cas d'erreur, le rappel de commande sera pratique. Rappelez-vous "
+"des \\*(KAs B<Haut> et B<Bas> ou de leurs alias à l'invite de commande."
+
+#. type: Plain text
+#: ../man/top.1:2314
+msgid "B<Filter Basics>"
+msgstr "B<Bases des filtres>"
+
+#. type: TP
+#: ../man/top.1:2315
+#, no-wrap
+msgid "1. field names are case sensitive and spelled as in the header"
+msgstr "1. chaque champ est sensible à la casse et conforme à l'en-tête"
+
+#. type: TP
+#: ../man/top.1:2317
+#, no-wrap
+msgid "2. selection values need not comprise the full displayed field"
+msgstr "2. les sélections peuvent n'être qu'une partie du champ affiché"
+
+#. type: TP
+#: ../man/top.1:2319
+#, no-wrap
+msgid "3. a selection is either case insensitive or sensitive to case"
+msgstr "3. une sélection peut être sensible à la casse ou ne pas l'être"
+
+#. type: TP
+#: ../man/top.1:2321
+#, no-wrap
+msgid "4. the default is inclusion, prepending `!' denotes exclusions"
+msgstr "4. l'inclusion est par défaut et l'exclusion commence par « ! »"
+
+#. type: TP
+#: ../man/top.1:2323
+#, no-wrap
+msgid "5. multiple selection criteria can be applied to a \\*(TW"
+msgstr "5. plusieurs critères sont possibles pour une \\*(TW"
+
+#. type: TP
+#: ../man/top.1:2325
+#, no-wrap
+msgid "6. inclusion and exclusion criteria can be used simultaneously"
+msgstr "6. les inclusions et exclusions peuvent être utilisées ensemble"
+
+#. type: TP
+#: ../man/top.1:2327
+#, no-wrap
+msgid "7. the 1 equality and 2 relational filters can be freely mixed"
+msgstr "7. les filtres d'égalité peuvent être mélangés aux relationnels"
+
+#. type: TP
+#: ../man/top.1:2329
+#, no-wrap
+msgid "8. separate unique filters are maintained for each \\*(TW"
+msgstr "8. chaque filtre unique est maintenu pour une \\*(TW"
+
+#. type: Plain text
+#: ../man/top.1:2337
+msgid ""
+"If a field is not turned on or is not currently in view, then your selection "
+"criteria will not affect the display. Later, should a filtered field become "
+"visible, the selection criteria will then be applied."
+msgstr ""
+"Si un champ n'est pas activé ou actuellement absent de la vue, alors les "
+"critères de sélection n'affecteront pas l'affichage. Ensuite, si un champ "
+"filtré devient visible, les critères de sélection seront appliqués."
+
+#. type: Plain text
+#: ../man/top.1:2340
+msgid "B<Keyboard Summary>"
+msgstr "B<Aide-mémoire des commandes au clavier>"
+
+#. type: TP
+#: ../man/top.1:2340
+#, no-wrap
+msgid "\\ \\ B<O>\\ \\ :I<Other-Filter> (upper case)"
+msgstr "\\ \\ B<O>\\ \\ : I<autre filtre> (majuscule)"
+
+#. type: Plain text
+#: ../man/top.1:2343
+msgid "You will be prompted to establish a B<case sensitive> filter."
+msgstr "Vous invite à mettre en place un filtre B<sensible à la casse>."
+
+#. type: TP
+#: ../man/top.1:2344
+#, no-wrap
+msgid "\\ \\ B<o>\\ \\ :I<Other-Filter> (lower case)"
+msgstr "\\ \\ B<o>\\ \\ : I<autre filtre> (minuscule)"
+
+#. type: Plain text
+#: ../man/top.1:2348
+msgid ""
+"You will be prompted to establish a filter that B<ignores case> when "
+"matching."
+msgstr ""
+"Vous invite à mettre en place un filtre B<insensible à la casse> lors de la "
+"correspondance."
+
+#. type: TP
+#: ../man/top.1:2349
+#, no-wrap
+msgid "\\ B<^O>\\ \\ :I<Show-Active-Filters> (Ctrl key + `o')"
+msgstr "\\ B<^O>\\ \\ : I<montrer les filtres actifs> (touche Ctrl + « o »)"
+
+#. type: Plain text
+#: ../man/top.1:2353
+msgid ""
+"This can serve as a reminder of which filters are active in the \\*(CW. A "
+"summary will be shown on the message line until you press the "
+"E<lt>EnterE<gt> key."
+msgstr ""
+"Cela peut servir de rappel des filtres actifs dans la \\*(CW. Un résumé sera "
+"montré sur la ligne de message jusqu'à ce que la touche E<lt>EntréeE<gt> "
+"soit tapée."
+
+#. type: TP
+#: ../man/top.1:2354
+#, no-wrap
+msgid "\\ \\ B<=>\\ \\ :I<Reset-Filtering> in current window"
+msgstr "\\ \\ B<=>\\ \\ : I<réinitialiser les filtres> dans la fenêtre actuelle"
+
+#. type: Plain text
+#: ../man/top.1:2358
+msgid ""
+"This clears all of your selection criteria in the \\*(CW. It also has "
+"additional impact so please \\*(Xt 4a. GLOBAL Commands."
+msgstr ""
+"Cela nettoie tous les critères de sélection dans la \\*(CW. Cela a aussi "
+"d'autres conséquences, veuillez donc consulter la section B<4a. Commandes "
+"GLOBALES>."
+
+#. type: TP
+#: ../man/top.1:2359
+#, no-wrap
+msgid "\\ \\ B<+>\\ \\ :I<Reset-Filtering> in all windows"
+msgstr "\\ \\ B<+>\\ \\ : I<réinitialiser les filtres> dans toutes les fenêtres"
+
+#. type: Plain text
+#: ../man/top.1:2364
+msgid ""
+"This clears the selection criteria in all windows, assuming you are in "
+"\\*(AM. As with the `=' \\*(CI, it too has additional consequences so you "
+"might wish to \\*(Xt 5b. COMMANDS for Windows."
+msgstr ""
+"Cela nettoie les critères de sélection dans toutes les fenêtres, à condition "
+"de ne pas être en \\*(AM. Comme avec la \\*(CI « = », cela a aussi d'autres "
+"conséquences, veuillez donc consulter la section B<5b. COMMANDES de "
+"Fenêtrage>."
+
+#. type: Plain text
+#: ../man/top.1:2367
+msgid "B<Input Requirements>"
+msgstr "B<Exigences d'entrée>"
+
+#. type: Plain text
+#: ../man/top.1:2373
+msgid ""
+"When prompted for selection criteria, the data you provide must take one of "
+"two forms. There are 3 required pieces of information, with a 4th as "
+"optional. These examples use spaces for clarity but your input generally "
+"would not."
+msgstr ""
+"À l'invite des critères de sélection, les données fournies doivent prendre "
+"une des deux formes suivantes. Trois informations sont nécessaires, une "
+"quatrième est facultative. Ces exemples utilisent des espaces par souci de "
+"clarté, mais l'entrée n'en nécessite pas."
+
+#. type: Plain text
+#: ../man/top.1:2378
+#, no-wrap
+msgid ""
+" #1 B<#2> #3 ( required )\n"
+" Field-Name ? include-if-value\n"
+" B<!> Field-Name ? B<exclude>-if-value\n"
+" #4 ( optional )\n"
+msgstr ""
+" nº 1 B<nº 2> nº 3 (nécessaires)\n"
+" Nom_de_champ ? inclure_en_cas_de_valeur\n"
+" B<!> Nom_de_champ ? B<exclure>_en_cas_de_valeur\n"
+" nº 4 (facultative)\n"
+
+#. type: Plain text
+#: ../man/top.1:2383
+msgid ""
+"Items #1, #3 and #4 should be self-explanatory. Item B<#2> represents both "
+"a required I<delimiter> and the I<operator> which must be one of either "
+"equality (`=') or relation (`E<lt>' or `E<gt>')."
+msgstr ""
+"Les éléments nº 1, nº 3 et nº 4 devraient être explicites. L'élément nº 2 "
+"représente à la fois un I<délimiteur> nécessaire et l'I<opérateur> qui doit "
+"être soit l'égalité (« = »), soit une relation (« E<lt> » ou « E<gt> »)."
+
+#. type: Plain text
+#: ../man/top.1:2392
+msgid ""
+"The `=' equality operator requires only a partial match and that can reduce "
+"your `if-value' input requirements. The `E<gt>' or `E<lt>' relational "
+"operators always employ string comparisons, even with numeric fields. They "
+"are designed to work with a field's default I<justification> and with "
+"homogeneous data. When some field's numeric amounts have been subjected to "
+"I<scaling> while others have not, that data is no longer homogeneous."
+msgstr ""
+"L'opérateur d'égalité « = » ne nécessite qu'une correspondance partielle, ce "
+"qui permet de réduire les exigences d'entrée « en_cas_de_valeur ». Les "
+"opérateurs relationnels « E<lt> » ou « E<gt> » utilisent toujours des "
+"comparaisons de chaînes, même avec les champs numériques. Ils sont conçus "
+"pour fonctionner avec une I<justification> par défaut du champ et avec des "
+"données homogènes. Quand certaines quantités numériques de champ ont été "
+"sujettes à une I<mise à l'échelle> alors que d'autres non, ces données ne "
+"sont plus homogènes."
+
+#. type: Plain text
+#: ../man/top.1:2399
+msgid ""
+"If you establish a relational filter and you B<have> changed the default "
+"Numeric or Character I<justification>, that filter is likely to fail. When "
+"a relational filter is applied to a memory field and you B<have not> changed "
+"the I<scaling>, it may produce misleading results. This happens, for "
+"example, because `100.0m' (MiB) would appear greater than `1.000g' (GiB) "
+"when compared as strings."
+msgstr ""
+"En cas de mise en place d'un filtre relationnel, si vous B<avez> modifié la "
+"I<justification> « numérique » ou « caractère » par défaut, ce filtre "
+"échouera probablement. Quand un filtre relationnel est appliqué à un champ "
+"de mémoire et que vous n'B<avez pas> modifié l'I<échelle>, cela peut "
+"produire des résultats déconcertants. Cela arrive, par exemple, parce que "
+"« 100,0 m » (Mio) apparaîtra plus grand que « 1,000 g » (Gio) une fois "
+"comparés en tant que chaînes."
+
+#. type: Plain text
+#: ../man/top.1:2403
+msgid ""
+"If your filtered results appear suspect, simply altering justification or "
+"scaling may yet achieve the desired objective. See the `j', `J' and `e' "
+"\\*(CIs for additional information."
+msgstr ""
+"Si les résultats filtrés semblent bizarres, simplement modifier la "
+"justification ou l'échelle pourrait permettre d'atteindre l'objectif voulu. "
+"Consultez les commandes interactives « j », « J » et « e » pour de plus "
+"amples renseignements."
+
+#. type: Plain text
+#: ../man/top.1:2406
+msgid "B<Potential Problems>"
+msgstr "B<Problèmes possibles>"
+
+#. type: Plain text
+#: ../man/top.1:2410
+msgid ""
+"These B<GROUP> filters could produce the exact same results or the second "
+"one might not display anything at all, just a blank \\*(TW."
+msgstr ""
+"Ces filtres de B<GROUP> peuvent produire exactement les mêmes résultats ou "
+"le deuxième pourrait ne rien afficher du tout, juste une \\*(TW vide."
+
+#. type: Plain text
+#: ../man/top.1:2413
+#, no-wrap
+msgid ""
+" GROUP=root ( only the same results when )\n"
+" GROUP=ROOT ( invoked via lower case `o' )\n"
+msgstr ""
+" GROUP=root (résultats identiques seulement quand)\n"
+" GROUP=ROOT (invoqués à l'aide un « o » minuscule)\n"
+
+#. type: Plain text
+#: ../man/top.1:2418
+msgid ""
+"Either of these B<RES> filters might yield inconsistent and/or misleading "
+"results, depending on the current memory scaling factor. Or both filters "
+"could produce the exact same results."
+msgstr ""
+"N'importe lequel de ces filtres B<RES> pourrait émettre des avertissements "
+"incohérents ou des résultats déconcertants, en fonction du facteur d'échelle "
+"de mémoire. Les deux filtres pourraient aussi produire exactement les mêmes "
+"résultats."
+
+#. type: Plain text
+#: ../man/top.1:2421
+#, no-wrap
+msgid ""
+" RESE<gt>9999 ( only the same results when )\n"
+" !RESE<lt>10000 ( memory scaling is at `KiB' )\n"
+msgstr ""
+" RESE<gt>9999 (résultats identiques seulement avec)\n"
+" !RESE<lt>10000 (le facteur d'échelle de mémoire Kio)\n"
+
+#. type: Plain text
+#: ../man/top.1:2427
+msgid ""
+"This B<nMin> filter illustrates a problem unique to scalable fields. This "
+"particular field can display a maximum of 4 digits, beyond which values are "
+"automatically scaled to KiB or above. So while amounts greater than 9999 "
+"exist, they will appear as 2.6m, 197k, etc."
+msgstr ""
+"Le filtre B<nMin> illustre un problème particulier de champs adaptables. Ce "
+"champ particulier peut afficher quatre chiffres au maximum, au-delà, les "
+"valeurs sont automatiquement mises à l'échelle en Kio ou plus. Ainsi, les "
+"quantités supérieures à 9999 apparaîtront sous la forme 2,6 m, 197 k, etc."
+
+#. type: Plain text
+#: ../man/top.1:2429
+#, no-wrap
+msgid " nMinE<gt>9999 ( always a blank \\*(TW )\n"
+msgstr " nMinE<gt>9999 (toujours une \\*(TW vide)\n"
+
+#. type: Plain text
+#: ../man/top.1:2433
+msgid "B<Potential Solutions>"
+msgstr "B<Solutions possibles>"
+
+#. type: Plain text
+#: ../man/top.1:2440
+msgid ""
+"These examples illustrate how Other Filtering can be creatively applied to "
+"achieve almost any desired result. Single quotes are sometimes shown to "
+"delimit the spaces which are part of a filter or to represent a request for "
+"status (^O) accurately. But if you used them with if-values in real life, "
+"no matches would be found."
+msgstr ""
+"Ces exemples illustrent comment un « autre filtre » peut être appliqué de "
+"façon créative pour obtenir la plupart des résultats voulus. Des guillemets "
+"simples sont parfois montrés pour délimiter les espaces qui font partie d'un "
+"filtre ou pour représenter une requête d'état (« ^O ») correctement. Si vous "
+"les avez vraiment utilisés avec des valeurs conditionnelles, aucune "
+"correspondance ne sera trouvée."
+
+#. type: Plain text
+#: ../man/top.1:2445
+msgid ""
+"Assuming field B<nTH> is displayed, the first filter will result in only "
+"multi-threaded processes being shown. It also reminds us that a trailing "
+"space is part of every displayed field. The second filter achieves the "
+"exact same results with less typing."
+msgstr ""
+"En supposant que le champ B<nTH> est affiché, le premier filtre aura pour "
+"conséquence de ne montrer que les processus possédant plusieurs processus "
+"légers (« multi-thread »). Cela rappelle aussi qu'une espace finale fait "
+"partie de tous les champs affichés. Le deuxième filtre réalise exactement la "
+"même chose de façon plus concise."
+
+#. type: Plain text
+#: ../man/top.1:2448
+#, fuzzy, no-wrap
+#| msgid ""
+#| " !nTH=` 1 ' ( ' for clarity only )\n"
+#| " nTHE<gt>1 ( same with less i/p )\n"
+msgid ""
+" !nTH=` 1 ' ( ` for clarity only )\n"
+" nTHE<gt>1 ( same with less i/p )\n"
+msgstr ""
+" !nTH=' 1 ' (' juste par souci de clarté)\n"
+" nTHE<gt>1 (même chose plus directement)\n"
+
+#. type: Plain text
+#: ../man/top.1:2452
+msgid ""
+"With Forest View mode active and the B<COMMAND> column in view, this filter "
+"effectively collapses child processes so that just 3 levels are shown."
+msgstr ""
+"Avec l'affichage arborescent actif et la colonne B<COMMAND> dans la vue, ce "
+"filtre cache effectivement les processus fils de telle sorte que seuls trois "
+"niveaux sont montrés."
+
+#. type: Plain text
+#: ../man/top.1:2454
+#, fuzzy, no-wrap
+#| msgid " !COMMAND=` `- ' ( ' for clarity only )\n"
+msgid " !COMMAND=` `- ' ( ` for clarity only )\n"
+msgstr " !COMMAND=' `- ' (' juste par souci de clarté)\n"
+
+#. type: Plain text
+#: ../man/top.1:2462
+msgid ""
+"The final two filters appear as in response to the status request key (^O). "
+"In reality, each filter would have required separate input. The B<PR> "
+"example shows the two concurrent filters necessary to display tasks with "
+"priorities of 20 or more, since some might be negative. Then by exploiting "
+"trailing spaces, the B<nMin> series of filters could achieve the failed "
+"`9999' objective discussed above."
+msgstr ""
+"Les deux derniers filtres apparaissent en réponse à la touche de requête "
+"d'état (« ^O »). En réalité, les deux filtres auraient nécessité des entrées "
+"séparées. L'exemple B<PR> montre les deux filtres nécessaires en même temps "
+"pour afficher les tâches avec des priorités d'au moins 20, puisque certaines "
+"pourraient être négatives. Ensuite, en utilisant les espaces finales, la "
+"suite B<nMin> de filtres pourrait permettre d'atteindre l'objectif raté "
+"« 9999 » discuté précédemment."
+
+#. type: Plain text
+#: ../man/top.1:2465
+#, no-wrap
+msgid ""
+" `PRE<gt>20' + `!PR=-' ( 2 for right result )\n"
+" `!nMin=0 ' + `!nMin=1 ' + `!nMin=2 ' + `!nMin=3 ' ...\n"
+msgstr ""
+" 'PRE<gt>20' + '!PR=-' (2 pour le bon résultat)\n"
+" '!nMin=0 ' + '!nMin=1 ' + '!nMin=2 ' + '!nMin=3 ' ...\n"
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2469
+#, no-wrap
+msgid "6. FILES"
+msgstr "6. FICHIERS"
+
+#. ----------------------------------------------------------------------
+#. type: SS
+#: ../man/top.1:2471
+#, no-wrap
+msgid "6a. PERSONAL Configuration File"
+msgstr "6a. Fichier de Configuration PERSONNEL"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2474
+#, fuzzy
+#| msgid "This file is created or updated via the 'W' \\*(CI."
+msgid "This file is created or updated via the `W' \\*(CI."
+msgstr "Ce fichier est créé ou mis à jour avec la \\*(CI « W »."
+
+#. type: Plain text
+#: ../man/top.1:2477
+msgid ""
+"The legacy version is written as `$HOME/.your-name-4-\\*(We' + `rc' with a "
+"leading period."
+msgstr ""
+"La version ancienne de ce fichier se nomme «\\ $HOME/.votre-nom-pour-"
+"\\*(We\\ » + «\\ rc\\ » avec un point initial."
+
+#. type: Plain text
+#: ../man/top.1:2482
+msgid ""
+"A newly created \\*(CF is written as procps/your-name-4-\\*(We' + `rc' "
+"without a leading period. The procps directory will be subordinate to "
+"either $XDG_CONFIG_HOME when set as an absolute path or the $HOME/.config "
+"directory."
+msgstr ""
+"Un \\*(CF nouvellement créé est écrit sous la forme de «\\ procps/votre-nom-"
+"pour-\\*(We\\ » + «\\ rc\\ » sans un point initial. Le répertoire I<procps> "
+"sera subordonné soit à « $XDG_CONFIG_HOME », quand il est configuré en "
+"chemin absolu soit au répertoire « $HOME/.config »."
+
+#. type: Plain text
+#: ../man/top.1:2484
+msgid "While not intended to be edited manually, here is the general layout:"
+msgstr ""
+"Même s'il n'est pas destiné à être modifié à la main, voici sa disposition "
+"générale :"
+
+#. type: Plain text
+#: ../man/top.1:2494
+#, fuzzy, no-wrap
+#| msgid ""
+#| " global # line 1: the program name/alias notation\n"
+#| " \" # line 2: id,altscr,irixps,delay,curwin\n"
+#| " per ea # line a: winname,fieldscur\n"
+#| " window # line b: winflags,sortindx,maxtasks,graph modes\n"
+#| " \" # line c: summclr,msgsclr,headclr,taskclr\n"
+#| " global # line 15: additional miscellaneous settings\n"
+#| " \" # any remaining lines are devoted to optional\n"
+#| " \" # active 'other filters' discussed in section 5e above\n"
+#| " \" # plus 'inspect' entries discussed in section 6b below\n"
+msgid ""
+" global # line 1: the program name/alias notation\n"
+" \" # line 2: id,altscr,irixps,delay,curwin\n"
+" per ea # line a: winname,fieldscur\n"
+" window # line b: winflags,sortindx,maxtasks,etc\n"
+" \" # line c: summclr,msgsclr,headclr,taskclr\n"
+" global # line 15: additional miscellaneous settings\n"
+" \" # any remaining lines are devoted to optional\n"
+" \" # active `other filters' discussed in section 5e above\n"
+" \" # plus `inspect' entries discussed in section 6b below\n"
+msgstr ""
+" global # ligne 1 : nom du programme ou nom d'alias\n"
+" \" # ligne 2 : id,altscr,irixps,delay,curwin\n"
+" par # ligne a : winname,fieldscur\n"
+" fenêtre # ligne b : winflags,sortindx,maxtasks\n"
+" \" # ligne c : summclr,msgsclr,headclr,taskclr\n"
+" global # ligne 15 : divers réglages supplémentaires\n"
+" \" # toutes les lignes restantes sont\n"
+" \" # consacrées aux « autres filtres » présentés\n"
+" \" # précédemment dans la section B<5e> et aux entrées\n"
+" \" # d'« inspection » présentées dans la section B<6b>\n"
+" \" # ci-dessous\n"
+
+#. type: Plain text
+#: ../man/top.1:2498
+msgid ""
+"If a valid absolute path to the rcfile cannot be established, customizations "
+"made to a running \\*(We will be impossible to preserve."
+msgstr ""
+"Si un chemin absolu valable vers le fichier I<rc> ne peut pas être établi, "
+"les personnalisations faites pour exécuter \\*(WE ne pourront pas être "
+"préservées."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2500
+#, no-wrap
+msgid "6b. ADDING INSPECT Entries"
+msgstr "6b. AJOUT d'entrées d'INSPECTION"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2507
+msgid ""
+"To exploit the `Y' \\*(CI, you must add entries at theB< end> of the \\*(We "
+"personal \\*(CF. Such entries simply reflect a file to be read or command/"
+"pipeline to be executed whose results will then be displayed in a separate "
+"scrollable, searchable window."
+msgstr ""
+"Pour utiliser la \\*(CI « Y », les entrées doivent être ajoutées à la B<fin> "
+"du \\*(CF personnel de \\*(WE. Ce type d'entrées reflète simplement un "
+"fichier à lire, ou une commande ou un tube à exécuter, dont les résultats "
+"seront affichés dans une fenêtre séparée, pouvant être parcourue et "
+"permettant une recherche."
+
+#. type: Plain text
+#: ../man/top.1:2510
+msgid ""
+"If you don't know the location or name of your \\*(We rcfile, use the `W' "
+"\\*(CI to rewrite it and note those details."
+msgstr ""
+"Si vous ignorez l'emplacement ou le nom du fichier I<rc> de \\*(WE, utilisez "
+"la \\*(CI « W » pour le réécrire et noter ces précisions."
+
+#. type: Plain text
+#: ../man/top.1:2517
+#, fuzzy
+#| msgid ""
+#| "Inspect entries can be added with a redirected echo or by editing the "
+#| "\\*(CF. Redirecting an echo risks overwriting the rcfile should it "
+#| "replace (E<gt>) rather than append (E<gt>E<gt>) to that file. "
+#| "Conversely, when using an editor care must be taken not to corrupt "
+#| "existing lines, some of which will contain unprintable data or unusual "
+#| "characters."
+msgid ""
+"Inspect entries can be added with a redirected echo or by editing the "
+"\\*(CF. Redirecting an echo risks overwriting the rcfile should it replace "
+"(E<gt>) rather than append (E<gt>E<gt>) to that file. Conversely, when "
+"using an editor care must be taken not to corrupt existing lines, some of "
+"which could contain unprintable data or unusual characters depending on the "
+"\\*(We version under which that \\*(CF was saved."
+msgstr ""
+"Les entrées d'inspection peuvent être ajoutées avec un « echo » redirigé ou "
+"en modifiant le \\*(CF. La redirection d'un « echo » risque d'écraser le "
+"fichier I<rc> s'il remplace (E<gt>) au lieu d'ajouter à ce fichier "
+"(E<gt>E<gt>). D'un autre côté, modifier le fichier avec un éditeur de texte "
+"risque de corrompre des lignes existantes en cas d'inattention, certaines "
+"contenant des données non affichables ou des caractères inhabituels."
+
+#. type: Plain text
+#: ../man/top.1:2522
+msgid ""
+"Those Inspect entries beginning with a `#' character are ignored, regardless "
+"of content. Otherwise they consist of the following 3 elements, each of "
+"whichI< must> be separated by a tab character (thus 2 `\\et' total):"
+msgstr ""
+"Les entrées d'inspection commençant par un caractère « # » sont ignorées, "
+"quelque soit leur contenu. Sinon, elles sont constituées des trois éléments "
+"suivants, chacun I<devant> être séparé par un caractère de tabulation (c'est-"
+"à-dire deux « \\et » en tout) :"
+
+#. type: Plain text
+#: ../man/top.1:2527
+#, no-wrap
+msgid ""
+" .type: literal `file' or `pipe'\n"
+" .name: selection shown on the Inspect screen\n"
+" .fmts: string representing a path or command\n"
+msgstr ""
+" .type : soit « file » (fichier), soit « pipe » (tube)\n"
+" .name : sélection montrée sur l'écran d'inspection\n"
+" .fmts : chaîne représentant un chemin ou une commande\n"
+
+#. type: Plain text
+#: ../man/top.1:2534
+msgid ""
+"The two types of Inspect entries areI< not> interchangeable. Those "
+"designated `B<file>' will be accessed using fopen and must reference a "
+"single file in the `.fmts' element. Entries specifying `B<pipe>' will "
+"employ popen, their `.fmts' element could contain many pipelined commands "
+"and, none can be interactive."
+msgstr ""
+"Les deux types d'entrées d'inspection ne sont I<pas> interchangeables. "
+"Celles désignées comme « B<file> » seront accédées à l'aide de B<fopen> et "
+"doivent référencer un seul fichier dans l'élément « .fmts ». Les entrées "
+"indiquant « B<pipe> » utiliseront B<popen>, leur élément « .fmts » pourrait "
+"contenir plusieurs commandes en tube et aucune ne peut être interactive."
+
+#. type: Plain text
+#: ../man/top.1:2538
+msgid ""
+"If the file or pipeline represented in your `.fmts' deals with the specific "
+"PID input or accepted when prompted, then the format string must also "
+"contain the `B<%d>' specifier, as these examples illustrate."
+msgstr ""
+"Si le fichier ou le tube représentés dans « .fmts » s'occupent de l'entrée "
+"de PID spécifique ou accepté à l'invite, alors la chaîne de format doit "
+"aussi contenir l'indicateur « B<%d> » comme c'est illustré par ces exemples."
+
+#. type: Plain text
+#: ../man/top.1:2542
+#, no-wrap
+msgid ""
+" .fmts= /proc/I<%d>/numa_maps\n"
+" .fmts= lsof -P -pI< %d>\n"
+msgstr ""
+" .fmts= /proc/I<%d>/numa_maps\n"
+" .fmts= lsof -P -p I<%d>\n"
+
+#. type: Plain text
+#: ../man/top.1:2547
+msgid ""
+"For `B<pipe>' type entries only, you may also wish to redirect stderr to "
+"stdout for a more comprehensive result. Thus the format string becomes:"
+msgstr ""
+"Pour les entrées de type « B<pipe> » uniquement, vous pourriez aussi vouloir "
+"rediriger la sortie d'erreur standard vers la sortie standard pour avoir un "
+"résultat plus complet. La chaîne de format devient donc :"
+
+#. type: Plain text
+#: ../man/top.1:2550
+#, no-wrap
+msgid " .fmts= pmap -x %dI< 2E<gt>&1>\n"
+msgstr " .fmts= pmap -x %dI< 2E<gt>&1>\n"
+
+#. type: Plain text
+#: ../man/top.1:2557
+msgid ""
+"Here are examples of both types of Inspect entries as they might appear in "
+"the rcfile. The first entry will be ignored due to the initial `#' "
+"character. For clarity, the pseudo tab depictions (^I) are surrounded by an "
+"extra space but the actual tabs would not be."
+msgstr ""
+"Voici des exemples des deux types d'entrées d'inspection telles qu'elles "
+"pourraient apparaître dans le fichier I<rc>. La première entrée sera ignorée "
+"à cause du caractère « # » initial. Par souci de clarté, les représentations "
+"de pseudotabulations (^I) sont entourées d'espaces supplémentaires mais les "
+"véritables tabulations ne le seront pas."
+
+#. type: Plain text
+#: ../man/top.1:2563
+#, no-wrap
+msgid ""
+" # pipe ^I Sockets ^I lsof -n -P -i 2E<gt>&1\n"
+" pipe ^I Open Files ^I lsof -P -p %d 2E<gt>&1\n"
+" file ^I NUMA Info ^I /proc/%d/numa_maps\n"
+" pipe ^I Log ^I tail -n100 /var/log/syslog | sort -Mr\n"
+msgstr ""
+" # pipe ^I Sockets ^I lsof -n -P -i 2E<gt>&1\n"
+" pipe ^I Fichiers ouverts ^I lsof -P -p %d 2E<gt>&1\n"
+" file ^I Informations NUMA ^I /proc/%d/numa_maps\n"
+" pipe ^I Jour. ^I tail -n100 /var/log/syslog | sort -Mr\n"
+
+#. type: Plain text
+#: ../man/top.1:2570
+msgid ""
+"Except for the commented entry above, these next examples show what could be "
+"echoed to achieve similar results, assuming the rcfile name was `.toprc'. "
+"However, due to the embedded tab characters, each of these lines should be "
+"preceded by `B</bin/echo -e>', not just a simple an `echo', to enable "
+"backslash interpretation regardless of which shell you use."
+msgstr ""
+"À part pour la ligne commentée précédente, ces exemples suivants montrent ce "
+"qui pourrait être affiché pour obtenir des résultats similaires, en "
+"supposant que le nom du fichier I<rc> est « .toprc ». Cependant, à cause des "
+"caractères de tabulation incorporés, chaque ligne devrait être précédée de "
+"« B</bin/echo -e> », au lieu d'un simple « echo », pour activer "
+"l'interprétation des barres obliques inversées quelque soit l'interpréteur "
+"de commandes utilisé."
+
+#. type: Plain text
+#: ../man/top.1:2575
+#, no-wrap
+msgid ""
+" \"pipe\\etOpen Files\\etlsof -P -p %d 2E<gt>&1\" E<gt>E<gt> ~/.toprc\n"
+" \"file\\etNUMA Info\\et/proc/%d/numa_maps\" E<gt>E<gt> ~/.toprc\n"
+" \"pipe\\etLog\\ettail -n200 /var/log/syslog | sort -Mr\" E<gt>E<gt> ~/.toprc\n"
+msgstr ""
+" \"pipe\\etFichiers ouverts\\etlsof -P -p %d 2E<gt>&1\" E<gt>E<gt> ~/.toprc\n"
+" \"file\\etInformations NUMA\\et/proc/%d/numa_maps\" E<gt>E<gt> ~/.toprc\n"
+" \"pipe\\etJour.\\ettail -n200 /var/log/syslog | sort -Mr\" E<gt>E<gt> ~/.toprc\n"
+
+#. type: Plain text
+#: ../man/top.1:2584
+msgid ""
+"If any inspect entry you create produces output with unprintable characters "
+"they will be displayed in either the ^C notation or hexadecimal E<lt>FFE<gt> "
+"form, depending on their value. This applies to tab characters as well, "
+"which will show as `^I'. If you want a truer representation, any embedded "
+"tabs should be expanded. The following example takes what could have been a "
+"`file' entry but employs a `pipe' instead so as to expand the embedded tabs."
+msgstr ""
+"Si une entrée d'inspection créée produit une sortie avec des caractères non "
+"affichables, ils seront affichés soit en notation ^C, soit sous forme "
+"hexadécimale E<lt>FFE<gt>, en fonction de leur valeur. Cela concerne aussi "
+"les caractères de tabulation qui seront affichés comme « ^I ». Pour une "
+"représentation plus réaliste, toutes les tabulations incorporées devraient "
+"être développées. L'exemple suivant prend ce que pourrait être une entrée de "
+"« fichier » mais emploie un « tube » à la place pour développer les "
+"tabulations incorporées."
+
+#. type: Plain text
+#: ../man/top.1:2590
+#, no-wrap
+msgid ""
+" # next would have contained `\\et' ...\n"
+" # file ^I E<lt>your_nameE<gt> ^I /proc/%d/status\n"
+" # but this will eliminate embedded `\\et' ...\n"
+" pipe ^I E<lt>your_nameE<gt> ^I cat /proc/%d/status | expand -\n"
+msgstr ""
+" # La suite aurait contenu « \\et »…\n"
+" # file ^I E<lt>prénom_nomE<gt> ^I /proc/%d/status\n"
+" # mais cela éliminera les « \\et » incorporés\n"
+" pipe ^I E<lt>prénom_nomE<gt> ^I cat /proc/%d/status | expand -\n"
+
+#. type: Plain text
+#: ../man/top.1:2596
+msgid ""
+"\\*(NT Some programs might rely on I<SIGINT> to end. Therefore, if a "
+"`B<pipe>' such as the following is established, one must use Ctrl-C to "
+"terminate it in order to review the results. This is the single occasion "
+"where a `^C' will not also terminate \\*(We."
+msgstr ""
+"\\*(NT Certains programmes pourraient dépendre de I<SIGINT> pour se "
+"terminer. Donc si un « B<pipe> » tel que le suivant est construit, il faut "
+"utiliser « Ctrl-C » pour le terminer afin d'examiner le résultat. C'est le "
+"cas unique où un « ^C » ne termine pas également \\*(WE."
+
+#. type: Plain text
+#: ../man/top.1:2599
+#, no-wrap
+msgid " pipe ^I Trace ^I /usr/bin/strace -p %d 2E<gt>&1\n"
+msgstr " pipe ^I Trace ^I /usr/bin/strace -p %d 2E<gt>&1\n"
+
+#. type: Plain text
+#: ../man/top.1:2605
+msgid ""
+"Lastly, while `B<pipe>' type entries have been discussed in terms of "
+"pipelines and commands, there is nothing to prevent you from including I< "
+"shell scripts> as well. Perhaps even newly created scripts designed "
+"specifically for the `Y' \\*(CI."
+msgstr ""
+"Enfin, même si les entrées de type « B<pipe> » ont été présentées en tant "
+"que tubes et commandes, rien n'empêche d'inclure aussi des I<scripts "
+"d'interpréteur>. Peut-être même de nouveaux scripts conçus spécifiquement "
+"pour la \\*(CI « Y »."
+
+#. type: Plain text
+#: ../man/top.1:2611
+msgid ""
+"For example, as the number of your Inspect entries grows over time, the "
+"`Options:' row will be truncated when screen width is exceeded. That does "
+"not affect operation other than to make some selections invisible. However, "
+"if some choices are lost to truncation but you want to see more options, "
+"there is an easy solution hinted at below."
+msgstr ""
+"Par exemple, comme le nombre d'entrées d'inspection augmente au fur et à "
+"mesure, la ligne « Options: » sera tronquée quand la largeur d'écran est "
+"dépassée. Cela ne concerne pas les opérations à part rendre certaines "
+"sélections invisibles. Cependant, si certains choix sont perdus du fait de "
+"la troncature mais que vous souhaitez voir plus d'options, une solution "
+"facile est suggérée ci-dessous."
+
+#. type: Plain text
+#: ../man/top.1:2616
+#, no-wrap
+msgid ""
+" Inspection Pause at pid ...\n"
+" Use: left/right then E<lt>EnterE<gt> ...\n"
+" Options: help 1 2 3 4 5 6 7 8 9 10 11 ...\n"
+msgstr ""
+" Inspection Pause at pid ...\n"
+" Use: left/right then E<lt>EnterE<gt> ...\n"
+" Options: aide 1 2 3 4 5 6 7 8 9 10 11 ...\n"
+
+#. type: Plain text
+#: ../man/top.1:2622
+msgid ""
+"The entries in the \\*(We rcfile would have a number for the `.name' element "
+"and the `help' entry would identify a shell script you've written explaining "
+"what those numbered selections actually mean. In that way, many more "
+"choices can be made visible."
+msgstr ""
+"Les entrées dans le fichier I<rc> de \\*(WE auraient un nombre pour "
+"l'élément « .name » et l'entrée « aide » identifierait un script "
+"d'interpréteur expliquant la signification réelle de ces sélections "
+"numérotées. Ainsi, plus de choix peuvent être rendus visibles."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2624
+#, no-wrap
+msgid "6c. SYSTEM Configuration File"
+msgstr "6c. Fichier de Configuration SYSTÈME"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2629
+msgid ""
+"This \\*(CF represents defaults for users who have not saved their own "
+"\\*(CF. The format mirrors exactly the personal \\*(CF and can also include "
+"`inspect' entries as explained above."
+msgstr ""
+"Ce \\*(CF représente les options par défaut pour les utilisateurs qui n'ont "
+"pas sauvegardé leur propre \\*(CF. Le format reflète exactement le \\*(CF "
+"personnel et peut aussi comprendre les entrées d'« inspection » comme "
+"expliqué précédemment."
+
+#. type: Plain text
+#: ../man/top.1:2631
+msgid "Creating it is a simple process."
+msgstr "Le créer est une processus simple."
+
+#. type: Plain text
+#: ../man/top.1:2634
+msgid ""
+"1. Configure \\*(We appropriately for your installation and preserve that "
+"configuration with the `W' \\*(CI."
+msgstr ""
+"1. Configurer \\*(WE de façon appropriée pour votre installation et sauver "
+"cette configuration avec la \\*(CI « W »."
+
+#. type: Plain text
+#: ../man/top.1:2636
+msgid "2. Add and test any desired `inspect' entries."
+msgstr "2. Ajouter et tester toutes les entrées d'« inspection » souhaitées."
+
+#. type: Plain text
+#: ../man/top.1:2638
+msgid "3. Copy that \\*(CF to the I</etc/> directory as `B<topdefaultrc>'."
+msgstr ""
+"3. Copier ce \\*(CF dans le répertoire I</etc/> sous le nom de "
+"« B<topdefaultrc> »."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2640
+#, no-wrap
+msgid "6d. SYSTEM Restrictions File"
+msgstr "6d. Fichier de restriction SYSTÈME"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2644
+msgid ""
+"The presence of this file will influence which version of the help screen is "
+"shown to an ordinary user."
+msgstr ""
+"La présence de ce fichier influencera la version de l'écran « d'aide » "
+"présentée à un simple utilisateur."
+
+#. type: Plain text
+#: ../man/top.1:2648
+msgid ""
+"More importantly, it will limit what ordinary users are allowed to do when "
+"\\*(We is running. They will not be able to issue the following commands."
+msgstr ""
+"De manière plus fondamentale, il bridera ce que les utilisateurs pourront "
+"faire lorsque \\*(WE s'exécute. Ils ne seront pas capables d'exécuter les "
+"commandes suivantes :"
+
+#. type: Plain text
+#: ../man/top.1:2652
+#, no-wrap
+msgid ""
+" k Kill a task\n"
+" r Renice a task\n"
+" d or s Change delay/sleep interval\n"
+msgstr ""
+" k Tuer une tâche\n"
+" r Redéfinir la politesse d'une tâche\n"
+" d ou s Modifier le délai ou l'intervalle de sommeil\n"
+
+#. type: Plain text
+#: ../man/top.1:2657
+msgid ""
+"This \\*(CF is not created by \\*(We. Rather, it is created manually and "
+"placed it in the I</etc/> directory as `B<toprc>'."
+msgstr ""
+"Ce \\*(CF n'est B< pas> créé par \\*(WE. Au contraire, vous devrez créer ce "
+"fichier manuellement pour le placer dans le répertoire I</etc> sous le nom "
+"de «\\ toprc\\ »."
+
+#. type: Plain text
+#: ../man/top.1:2659
+msgid "It should have exactly two lines, as shown in this example:"
+msgstr "Il ne peut comporter que 2 lignes, comme montré dans cet exemple :"
+
+#. type: Plain text
+#: ../man/top.1:2662
+#, no-wrap
+msgid ""
+" s # line 1: secure mode switch\n"
+" 5.0 # line 2: delay interval in seconds\n"
+msgstr ""
+" s # ligne 1 : passage en «\\ mode sécurisé\\ »\n"
+" 5.0 # ligne 2 : «\\ délai\\ »\\ \\ intervalle en seconde\n"
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2665
+#, fuzzy, no-wrap
+#| msgid "ENVIRONMENT VARIABLES"
+msgid "7. ENVIRONMENT VARIABLE(S)"
+msgstr "VARIABLES D'ENVIRONNEMENT"
+
+#. type: Plain text
+#: ../man/top.1:2668 ../man/procps_pids.3:201
+msgid "The value set for the following is unimportant, just its presence."
+msgstr ""
+
+#. type: IP
+#: ../man/top.1:2669 ../man/procps_pids.3:202
+#, no-wrap
+msgid "LIBPROC_HIDE_KERNEL"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2672
+msgid ""
+"This will prevent display of any kernel threads and exclude such processes "
+"from the \\*(SA Tasks/Threads counts."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2674
+#, fuzzy, no-wrap
+#| msgid "7. STUPID TRICKS Sampler"
+msgid "8. STUPID TRICKS Sampler"
+msgstr "7. Échantillons d'ASTUCES IDIOTES"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2679
+msgid ""
+"Many of these tricks work best when you give \\*(We a scheduling boost. So "
+"plan on starting him with a nice value of -10, assuming you've got the "
+"authority."
+msgstr ""
+"Nombre de ces «\\ astuces\\ » fonctionnent mieux lorsque vous planifiez un "
+"lancement de \\*(WE. Aussi, prévoyez de le lancer avec une valeur de "
+"politesse à -10, en supposant que vous ayez le droit de le faire."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2681
+#, no-wrap
+msgid "7a. Kernel Magic"
+msgstr "7a. Magie du Noyau"
+
+#. ----------------------------------------------------------------------
+#. sorry, just can't help it -- don't ya love the sound of this?
+#. ( apparently AM static was a potential concern )
+#. type: Plain text
+#: ../man/top.1:2686
+msgid "For these stupid tricks, \\*(We needs \\*(FM."
+msgstr "Pour ces astuces idiotes, \\*(WE à besoin du \\*(FM."
+
+#. type: Plain text
+#: ../man/top.1:2693
+msgid ""
+"The user interface, through prompts and help, intentionally implies that the "
+"delay interval is limited to tenths of a second. However, you're free to "
+"set any desired delay. If you want to see Linux at his scheduling best, try "
+"a delay of .09 seconds or less."
+msgstr ""
+"L'interface utilisateur, par l'intermédiaire d'invites et de l'aide, incite "
+"à dessein à fixer un délai en dixième de seconde. Cependant, vous êtes libre "
+"de déterminer un délai quelconque. Si vous souhaitez voir le meilleur de "
+"l'ordonnanceur du noyau, essayez un délai de 0,09 seconde ou moins."
+
+#. type: Plain text
+#: ../man/top.1:2696
+msgid ""
+"For this experiment, under x-windows open an xterm and maximize it. Then do "
+"the following:"
+msgstr ""
+"Pour cette expérience, sous X Window, ouvrez un terminal (xterm) et "
+"maximisez-le. Ensuite exécutez les instructions suivantes :"
+
+#. type: Plain text
+#: ../man/top.1:2705
+#, no-wrap
+msgid ""
+" . provide a scheduling boost and tiny delay via:\n"
+" nice -n -10 \\*(We -d.09\n"
+" . keep sorted column highlighting \\*F so as to\n"
+" minimize path length\n"
+" . turn \\*O reverse row highlighting for emphasis\n"
+" . try various sort columns (TIME/MEM work well),\n"
+" and normal or reverse sorts to bring the most\n"
+" active processes into view\n"
+msgstr ""
+" - programmez un démarrage et un délai court ainsi\\ :\n"
+" nice -n -10 \\*(We -d.09\n"
+" - désactivez la surbrillance de la colonne triée pour\n"
+" minimiser la longueur des chemins («\\ paths\\ »)\n"
+" - activez la surbrillance inverse des lignes pour les mettre\n"
+" en évidence\n"
+" - essayez plusieurs tris de colonne (TIME/MEM fonctionnent bien),\n"
+" et des tris croissants et décroissants pour visualiser\n"
+" les processus les plus actifs\n"
+
+#. type: Plain text
+#: ../man/top.1:2709
+msgid ""
+"What you'll see is a very busy Linux doing what he's always done for you, "
+"but there was no program available to illustrate this."
+msgstr ""
+"Ce que vous verrez est un noyau vraiment très occupé à faire ce qu'il fait "
+"toujours pour vous, mais sans aucun programme pour l'illustrer."
+
+#. type: Plain text
+#: ../man/top.1:2715
+msgid ""
+"Under an xterm using `white-on-black' colors, on \\*(We's Color Mapping "
+"screen set the task color to black and be sure that task highlighting is set "
+"to bold, not reverse. Then set the delay interval to around .3 seconds."
+msgstr ""
+"Dans un xterm utilisant des couleurs «\\ blanc-sur-noir\\ », dans l'écran "
+"palette de couleurs de \\*(WE, configurez le rafraîchissement en noir des "
+"tâches et assurez-vous que la surbrillance des tâches est positionnée sur "
+"gras et pas en inverse. Ensuite positionnez le délai aux alentours de 0,3 "
+"(.3) seconde."
+
+#. type: Plain text
+#: ../man/top.1:2718
+msgid ""
+"After bringing the most active processes into view, what you'll see are the "
+"ghostly images of just the currently running tasks."
+msgstr ""
+"Après visualisation des processus les plus actifs, vous verrez uniquement "
+"les images fantômes des tâches qui s'exécutent."
+
+#. type: Plain text
+#: ../man/top.1:2724
+msgid ""
+"Delete the existing rcfile, or create a new symlink. Start this new version "
+"then type `T' (a secret key, \\*(Xt 4c. Task Area Commands, SORTING) "
+"followed by `W' and `q'. Finally, restart the program with -d0 (zero delay)."
+msgstr ""
+"Effacez le fichier I<rc> existant, ou créez un nouveau lien symbolique. "
+"Lancez cette nouvelle version. Ensuite tapez «\\ T\\ » (une touche secrète, "
+"\\*(Xt B<4c. Commandes de la ZONE de TÂCHES>, B<Tri>) suivi de «\\ W\\ » et "
+"«\\ q\\ ». Enfin, relancez le programme avec l'option -d0 (délai zéro)."
+
+#. type: Plain text
+#: ../man/top.1:2729
+msgid ""
+"Your display will be refreshed at three times the rate of the former \\*(We, "
+"a 300% speed advantage. As \\*(We climbs the TIME ladder, be as patient as "
+"you can while speculating on whether or not \\*(We will ever reach the "
+"\\*(We."
+msgstr ""
+"Votre écran \\*(WE se rafraîchira trois fois plus rapidement qu'auparavant, "
+"un gain de vitesse de 300\\ %. Pendant que \\*(WE grimpe l'échelle de TIME, "
+"faites preuve d'autant de patience que vous le pouvez en spéculant si oui ou "
+"non \\*(We atteindra un jour le \\*(WE."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2731
+#, no-wrap
+msgid "7b. Bouncing Windows"
+msgstr "7b. Fenêtres rebondissantes"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2734
+msgid "For these stupid tricks, \\*(We needs \\*(AM."
+msgstr "Pour ces astuces idiotes, \\*(WE a besoin du \\*(AM."
+
+#. type: Plain text
+#: ../man/top.1:2740
+msgid ""
+"With 3 or 4 \\*(TDs visible, pick any window other than the last and turn "
+"idle processes \\*F using the `i' \\*(CT. Depending on where you applied "
+"`i', sometimes several \\*(TDs are bouncing and sometimes it's like an "
+"accordion, as \\*(We tries his best to allocate space."
+msgstr ""
+"Avec trois ou quatre zones d'affichage de tâches visibles, sélectionnez une "
+"fenêtre autre que la dernière et positionnez l'option processus en veille "
+"sur \\*F en utilisant la \\*(CT « i ». Selon l'endroit où vous appliquez «\\ "
+"i\\ », parfois plusieurs zones d'affichage des tâches rebondissent et "
+"parfois elles évoluent en accordéon, vu que \\*(WE fait de son mieux pour "
+"allouer l'espace."
+
+#. type: Plain text
+#: ../man/top.1:2746
+msgid ""
+"Set each window's summary lines differently: one with no memory (`m'); "
+"another with no states (`t'); maybe one with nothing at all, just the "
+"message line. Then hold down `a' or `w' and watch a variation on bouncing "
+"windows \\*(Em hopping windows."
+msgstr ""
+"Configurez différemment pour chaque fenêtre les lignes de la zone de "
+"résumé\\ : une sans la mémoire (« m ») ; une autre sans les états (« t ») ; "
+"éventuellement une sans rien du tout, en laissant juste la ligne de message. "
+"Ensuite pressez «\\ a\\ » ou «\\ w\\ » et observez une variante des fenêtres "
+"rebondissantes \\*(Em les fenêtres sautillantes."
+
+#. type: Plain text
+#: ../man/top.1:2751
+msgid ""
+"Display all 4 windows and for each, in turn, set idle processes to \\*F "
+"using the `i' \\*(CT. You've just entered the \"extreme bounce\" zone."
+msgstr ""
+"Affichez l'ensemble des quatre fenêtres et pour chacune, à tour de rôle, "
+"positionnez l'option processus en veille à \\*F en utilisant la \\*(CT "
+"« i ». Vous venez tout juste de pénétrer dans la zone des «\\ "
+"rebondissements extrêmes\\ »."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2753
+#, no-wrap
+msgid "7c. The Big Bird Window"
+msgstr "7c. La Fenêtre du grand oiseau"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2756
+msgid "This stupid trick also requires \\*(AM."
+msgstr "Cette astuce idiote a aussi besoin du \\*(AM."
+
+#. type: Plain text
+#: ../man/top.1:2761
+msgid ""
+"Display all 4 windows and make sure that 1:Def is the \\*(CW. Then, keep "
+"increasing window size with the `n' \\*(CI until all the other \\*(TDs are "
+"\"pushed out of the nest\"."
+msgstr ""
+"Affichez l'ensemble des quatre fenêtres et assurez-vous que Def soit la "
+"\\*(CW. Ensuite, augmentez progressivement la taille de la fenêtre avec la "
+"\\*(CI « n » jusqu'à ce que toutes les autres zones d'affichage des tâches "
+"soient «\\ chassées hors du nid\\ »"
+
+#. type: Plain text
+#: ../man/top.1:2765
+msgid ""
+"When they've all been displaced, toggle between all visible/invisible "
+"windows using the `_' \\*(CT. Then ponder this:"
+msgstr ""
+"Quand toutes sont déplacées, basculez l'option toute fenêtre visible ou "
+"invisible en utilisant la \\*(CT « _ ». Ensuite méditez ceci\\ :"
+
+#. type: Plain text
+#: ../man/top.1:2767
+#, no-wrap
+msgid " is \\*(We fibbing or telling honestly your imposed truth?\n"
+msgstr ""
+" Est-ce que \\*(WE vous gruge ou vous rapporte scrupuleusement\n"
+" une vérité qui s'impose\\ ?\n"
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2769
+#, no-wrap
+msgid "7d. The Ol' Switcheroo"
+msgstr "7d. Le coup de l'échange"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2773
+msgid ""
+"This stupid trick works best without \\*(AM, since justification is active "
+"on a per window basis."
+msgstr ""
+"Cette astuce idiote fonctionne mieux sans \\*(AM, puisque la justification "
+"est active par fenêtre."
+
+#. type: Plain text
+#: ../man/top.1:2778
+msgid ""
+"Start \\*(We and make COMMAND the last (rightmost) column displayed. If "
+"necessary, use the `c' \\*(CT to display command lines and ensure that "
+"forest view mode is active with the `V' \\*(CT."
+msgstr ""
+"Démarrez \\*(WE et faites de «\\ COMMAND\\ » la dernière colonne affichée "
+"(la plus à droite). Si nécessaire, utilisez la \\*(CT « c » pour afficher "
+"les lignes de commandes et assurez-vous que l'affichage arborescent est "
+"actif avec la \\*(CT « V »."
+
+#. type: Plain text
+#: ../man/top.1:2782
+msgid ""
+"Then use the up/down arrow keys to position the display so that some "
+"truncated command lines are shown (`+' in last position). You may have to "
+"resize your xterm to produce truncation."
+msgstr ""
+"Utilisez ensuite les \\*(KAs B<Haut> et B<Bas> pour positionner l'affichage "
+"de telle sorte que des lignes de commande tronquées soient montrées (avec un "
+"« + » à la fin). Redimensionnez éventuellement le terminal pour obtenir une "
+"troncature."
+
+#. type: Plain text
+#: ../man/top.1:2784
+msgid "Lastly, use the `j' \\*(CT to make the COMMAND column right justified."
+msgstr ""
+"Enfin, utilisez la \\*(CT « j » pour rendre la colonne «\\ COMMAND\\ » "
+"justifiée à droite."
+
+#. type: Plain text
+#: ../man/top.1:2788
+msgid ""
+"Now use the right arrow key to reach the COMMAND column. Continuing with "
+"the right arrow key, watch closely the direction of travel for the command "
+"lines being shown."
+msgstr ""
+"Utilisez maintenant la \\*(KA B<Droite> pour atteindre la colonne COMMAND. "
+"Continuez avec la \\*(KA B<Droite>, observez attentivement la direction de "
+"déplacement des lignes de commande montrées."
+
+#. type: Plain text
+#: ../man/top.1:2791
+#, no-wrap
+msgid " some lines travel left, while others travel right\n"
+msgstr " certaines lignes se déplacent vers la gauche, d'autres se déplacent vers la droite\n"
+
+#. type: Plain text
+#: ../man/top.1:2793
+#, no-wrap
+msgid " eventually all lines will Switcheroo, and move right\n"
+msgstr " finalement, toutes les lignes vont s'échanger, et se déplacer vers la droite\n"
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2795
+#, fuzzy, no-wrap
+#| msgid "8. BUGS"
+msgid "9. BUGS"
+msgstr "8. BOGUES"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2800
+msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE .>"
+msgstr "Signalez les bogues à E<.UR procps@freelists.org> E<.UE .>"
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2802
+#, fuzzy, no-wrap
+#| msgid "9. SEE Also"
+msgid "10. SEE Also"
+msgstr "9. VOIR AUSSI"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2810
+msgid ""
+"B<free>(1), B<ps>(1), B<uptime>(1), B<atop>(1), B<slabtop>(1), B<vmstat>(8), "
+"B<w>(1)"
+msgstr ""
+"B<free>(1), B<ps>(1), B<uptime>(1), B<atop>(1), B<slabtop>(1), B<vmstat>(8), "
+"B<w>(1)"
+
+#. type: TH
+#: ../man/procps.3:11
+#, fuzzy, no-wrap
+#| msgid "PROCPS_USERLEN"
+msgid "PROCPS"
+msgstr "PROCPS_USERLEN"
+
+#. type: TH
+#: ../man/procps.3:11 ../man/procps_misc.3:11 ../man/procps_pids.3:11
+#, no-wrap
+msgid "August 2022"
+msgstr ""
+
+#. type: TH
+#: ../man/procps.3:11 ../man/procps_misc.3:11 ../man/procps_pids.3:11
+#, no-wrap
+msgid "libproc2"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:17
+msgid "procps - API to access system level information in the /proc filesystem"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:22
+msgid ""
+"Five distinct interfaces are represented in this synopsis and named after "
+"the files they access in the /proc pseudo filesystem: B<diskstats>, "
+"B<meminfo>, B<slabinfo>, B<stat> and B<vmstat>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:26
+#, no-wrap
+msgid "#include E<lt>libproc2/B<named_interface>.hE<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:30
+#, no-wrap
+msgid ""
+"intB< procps_new > (struct info **I<info>);\n"
+"intB< procps_ref > (struct info *I<info>);\n"
+"intB< procps_unref> (struct info **I<info>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:35
+#, no-wrap
+msgid ""
+"struct result *B<procps_get> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<name>, ] B<diskstats> api only\n"
+" enum item I<item>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:41
+#, no-wrap
+msgid ""
+"struct stack *B<procps_select> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<name>, ] B<diskstats> api only\n"
+" enum item *I<items>,\n"
+" int I<numitems>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:47
+#, no-wrap
+msgid ""
+"struct reaped *B<procps_reap> (\n"
+" struct info *I<info>,\n"
+"[ enum reap_type I<what>, ] B<stat> api only\n"
+" enum item *I<items>,\n"
+" int I<numitems>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:54
+#, no-wrap
+msgid ""
+"struct stack **B<procps_sort> (\n"
+" struct info *I<info>,\n"
+" struct stack *I<stacks>[],\n"
+" int I<numstacked>,\n"
+" enum item I<sortitem>,\n"
+" enum sort_order I<order>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:61
+msgid ""
+"The above functions and structures are generic but the specific "
+"B<named_interface> would also be part of any identifiers. For example, "
+"`procps_new' would actually be `procps_B<meminfo>_new' and `info' would "
+"really be `B<diskstats>_info', etc."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:64
+msgid ""
+"The same B<named_interface> is used in each header file name with an "
+"appended `.h' suffix."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:66 ../man/procps_pids.3:60
+msgid "Link with I<-lproc2>."
+msgstr ""
+
+#. type: SS
+#: ../man/procps.3:68 ../man/procps_pids.3:62
+#, no-wrap
+msgid "Overview"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:74
+msgid ""
+"Central to these interfaces is a simple `result' structure reflecting an "
+"`item' plus its value (in a union with standard C language types as "
+"members). All `result' structures are automatically allocated and provided "
+"by the library."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:80 ../man/procps_pids.3:74
+msgid ""
+"By specifying an array of `items', these structures can be organized as a "
+"`stack', potentially yielding many results with a single function call. "
+"Thus, a `stack' can be viewed as a variable length record whose content and "
+"order is determined solely by the user."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:85
+msgid ""
+"As part of each interface there are two unique enumerators. The `noop' and "
+"`extra' items exist to hold user values. They are never set by the library, "
+"but the `extra' result will be zeroed with each library interaction."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:91
+msgid ""
+"The B<named_interface> header file will be an essential document during user "
+"program development. There you will find available items, their return type "
+"(the `result' struct member name) and the source for such values. "
+"Additional enumerators and structures are also documented there."
+msgstr ""
+
+#. type: SS
+#: ../man/procps.3:92 ../man/procps_pids.3:86
+#, no-wrap
+msgid "Usage"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:95
+msgid "The following would be a typical sequence of calls to these interfaces."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:100
+#, no-wrap
+msgid ""
+"1. B<procps_new()>\n"
+"2. B<procps_get()>, B<procps_select()> or B<procps_reap()>\n"
+"3. B<procps_unref()>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:106
+msgid ""
+"The B<get> function is used to retrieve a `result' structure for a single "
+"`item'. Alternatively, a B<GET> macro is available when only the return "
+"value is of interest."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:109
+msgid ""
+"The B<select> function can retrieve multiple `result' structures in a single "
+"`stack'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:115
+msgid ""
+"For unpredictable variable outcomes, the B<diskstats>, B<slabinfo> and "
+"B<stat> interfaces export a B<reap> function. It is used to retrieve "
+"multiple `stacks' each containing multiple `result' structures. Optionally, "
+"a user may choose to B<sort> those results."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:122 ../man/procps_pids.3:114
+msgid ""
+"To exploit any `stack', and access individual `result' structures, a "
+"I<relative_enum> is required as shown in the B<VAL> macro defined in the "
+"header file. Such values could be hard coded as: 0 through numitems-1. "
+"However, this need is typically satisfied by creating your own enumerators "
+"corresponding to the order of the `items' array."
+msgstr ""
+
+#. type: SS
+#: ../man/procps.3:123 ../man/procps_pids.3:115
+#, no-wrap
+msgid "Caveats"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:126
+msgid ""
+"The B<new>, B<ref>, B<unref>, B<get> and B<select> functions are available "
+"in all five interfaces."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:131 ../man/procps_pids.3:127
+msgid ""
+"For the B<new> and B<unref> functions, the address of an I<info> struct "
+"pointer must be supplied. With B<new> it must have been initialized to "
+"NULL. With B<unref> it will be reset to NULL if the reference count reaches "
+"zero."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:135
+msgid ""
+"In the case of the B<diskstats> interface, a I<name> parameter on the B<get> "
+"and B<select> functions identifies a disk or partition name"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:139
+msgid ""
+"For the B<stat> interface, a I<what> parameter on the B<reap> function "
+"identifies whether data for just CPUs or both CPUs and NUMA nodes is to be "
+"gathered."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:143
+msgid ""
+"When using the B<sort> function, the parameters I<stacks> and I<numstacked> "
+"would normally be those returned in the `reaped' structure."
+msgstr ""
+
+#. type: SH
+#: ../man/procps.3:144 ../man/procps_misc.3:127 ../man/procps_pids.3:148
+#, no-wrap
+msgid "RETURN VALUE"
+msgstr ""
+
+#. type: SS
+#: ../man/procps.3:145 ../man/procps_pids.3:149
+#, no-wrap
+msgid "Functions Returning an `int'"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:148 ../man/procps_misc.3:131 ../man/procps_pids.3:152
+msgid ""
+"An error will be indicated by a negative number that is always the inverse "
+"of some well known errno.h value."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:152 ../man/procps_pids.3:156
+msgid ""
+"Success is indicated by a zero return value. However, the B<ref> and "
+"B<unref> functions return the current I<info> structure reference count."
+msgstr ""
+
+#. type: SS
+#: ../man/procps.3:153 ../man/procps_misc.3:132 ../man/procps_pids.3:157
+#, no-wrap
+msgid "Functions Returning an `address'"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:156 ../man/procps_misc.3:135 ../man/procps_pids.3:160
+msgid ""
+"An error will be indicated by a NULL return pointer with the reason found in "
+"the formal errno value."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:158
+msgid "Success is indicated by a pointer to the named structure."
+msgstr ""
+
+#. type: SH
+#: ../man/procps.3:159 ../man/procps_pids.3:165
+#, no-wrap
+msgid "DEBUGGING"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:165
+msgid ""
+"To aid in program development, there is a provision that can help ensure "
+"`result' member references agree with library expectations. It assumes that "
+"a supplied macro in the header file is used to access the `result' value."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:168 ../man/procps_pids.3:185
+msgid ""
+"This feature can be activated through either of the following methods and "
+"any discrepancies will be written to B<stderr>."
+msgstr ""
+
+#. type: IP
+#: ../man/procps.3:169 ../man/procps_pids.3:186
+#, fuzzy, no-wrap
+#| msgid "1"
+msgid "1)"
+msgstr "1"
+
+#. type: Plain text
+#: ../man/procps.3:172
+msgid ""
+"Add CFLAGS='-DXTRA_PROCPS_DEBUG' to any other ./configure options employed."
+msgstr ""
+
+#. type: IP
+#: ../man/procps.3:173 ../man/procps_pids.3:190
+#, fuzzy, no-wrap
+#| msgid "2"
+msgid "2)"
+msgstr "2"
+
+#. type: Plain text
+#: ../man/procps.3:176
+msgid ""
+"Add #include E<lt>procps/xtra-procps-debug.hE<gt> to any program I<after> "
+"the named interface includes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:181 ../man/procps_pids.3:198
+msgid ""
+"This verification feature incurs substantial overhead. Therefore, it is "
+"important that it I<not> be activated for a production/release build."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:185
+#, fuzzy
+#| msgid "B<pgrep>(1), B<pstree>(1), B<top>(1), B<proc>(5)."
+msgid "B<procps_misc>(3), B<procps_pids>(3), B<proc>(5)."
+msgstr "B<pgrep>(1), B<pstree>(1), B<top>(1), B<proc>(5)"
+
+#. type: TH
+#: ../man/procps_misc.3:11
+#, fuzzy, no-wrap
+#| msgid "PROCPS_USERLEN"
+msgid "PROCPS_MISC"
+msgstr "PROCPS_USERLEN"
+
+#. type: Plain text
+#: ../man/procps_misc.3:17
+msgid "procps_misc - API for miscellaneous information in the /proc filesystem"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:20
+#, no-wrap
+msgid "B<#include E<lt>libproc2/misc.hE<gt>>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:22
+#, no-wrap
+msgid "Platform Particulars\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:28
+#, no-wrap
+msgid ""
+"long B<procps_cpu_count> (void);\n"
+"long B<procps_hertz_get> (void);\n"
+"unsigned int B<procps_pid_length> (void);\n"
+"int B<procps_linux_version> (void);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:31
+#, no-wrap
+msgid "Runtime Particulars\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:37
+#, no-wrap
+msgid ""
+"int B< procps_loadavg> (double *I<av1>, double *I<av5>, double *I<av15>);\n"
+"int B< procps_uptime> (double *I<uptime_secs>, double *I<idle_secs>);\n"
+"char *B<procps_uptime_sprint> (void);\n"
+"char *B<procps_uptime_sprint_short> (void);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:40
+#, no-wrap
+msgid "Namespace Particulars\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:45
+#, no-wrap
+msgid ""
+"int B< procps_ns_get_id> (const char *I<name>);\n"
+"const charB< *procps_ns_get_name> (int I<id>);\n"
+"int B< procps_ns_read_pid> (int I<pid>, struct procps_ns *I<nsp>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:48
+#, no-wrap
+msgid "Link with I<-lproc2>.\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:54
+msgid ""
+"B<procps_cpu_count>() returns the number of CPUs that are currently online "
+"as B<sysconf(>I<_SC_NPROCESSORS_ONLY>B<)> or an assumed I<1>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:60
+msgid ""
+"B<procps_hertz_get>() returns the number of clock ticks per second as "
+"B<sysconf(>I<_SC_CLK_TCK>B<)> or an assumed I<100>. Dividing tics by this "
+"value yields seconds."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:65
+msgid ""
+"B<procps_pid_length>() returns the maximum string length for a PID on the "
+"system. For example, if the largest possible PID value on was 123, then the "
+"length would be 3. If the file I</proc/sys/kernel/pid_max> is unreadable, "
+"the value is assumed to be I<5>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:74
+msgid ""
+"B<procps_linux_version>() returns the current Linux version as an encoded "
+"integer. On non-Linux systems that have an emulated proc filesystem this "
+"function returns the version of the Linux emulation instead. The version "
+"consists of three positive integers representing the major, minor and patch "
+"levels. The following macros are provided for encoding a given Linux "
+"version or separating out the components of the current version."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:77
+msgid "LINUX_VERSION(\\ major\\ ,\\ minor\\ ,\\ patch\\ )"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:79
+msgid "LINUX_VERSION_MAJOR(\\ ver\\ )"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:81
+msgid "LINUX_VERSION_MINOR(\\ ver\\ )"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:83
+msgid "LINUX_VERSION_PATCH(\\ ver\\ )"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:88
+msgid ""
+"B<procps_loadavg>() fetches the system load average and puts the 1, 5 and "
+"15 minute averages into location(s) specified by any pointer which is not "
+"I<NULL>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:93
+msgid ""
+"B<procps_uptime>() returns uptime and/or idle seconds into location(s) "
+"specified by any pointer which is not I<NULL>. The B<sprint> varieties "
+"return a human-readable string in one of two forms."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:96
+msgid "HH:MM:SS up HH:MM, # users, load average: 1, 5, 15 MM averages"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:98
+msgid "up HH, MM"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:102
+msgid ""
+"B<procps_ns_get_id>() returns the integer id (enum namespace_type) of the "
+"namespace for the given namespace I<name>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:105
+msgid ""
+"B<procps_ns_get_name>() returns the name of the namespace for the given "
+"I<id> (enum namespace_type)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:110
+msgid ""
+"B<procps_ns_read_pid>() returns the inodes for the namespaces of the given "
+"process in the procps_ns structure pointed to by I<nsp>. Those inodes will "
+"appear in the order proscribed by enum namespace_type."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:123
+#, no-wrap
+msgid ""
+"enum namespace_type {\n"
+" PROCPS_NS_CGROUP,\n"
+" PROCPS_NS_IPC,\n"
+" PROCPS_NS_MNT,\n"
+" PROCPS_NS_NET,\n"
+" PROCPS_NS_PID,\n"
+" PROCPS_NS_TIME,\n"
+" PROCPS_NS_USER,\n"
+" PROCPS_NS_UTS\n"
+"};\n"
+msgstr ""
+
+#. type: SS
+#: ../man/procps_misc.3:128
+#, no-wrap
+msgid "Functions Returning an `int' or `long'"
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:137
+#, fuzzy, no-wrap
+#| msgid "I</proc/slabinfo>"
+msgid "I</proc/loadavg>"
+msgstr "I</proc/slabinfo>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:140
+msgid "The raw values for load average."
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:140
+#, no-wrap
+msgid "I</proc/sys/kernel/osrelease>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:143
+msgid "Contains the release version of the Linux kernel or proc filesystem."
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:143
+#, fuzzy, no-wrap
+#| msgid "I</proc/sys>"
+msgid "I</proc/sys/kernel/pid_max>"
+msgstr "I</proc/sys>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:146
+msgid ""
+"Contains the value at which PIDs wrap around, one greater than the maximum "
+"PID value."
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:146
+#, fuzzy, no-wrap
+#| msgid "I</proc>"
+msgid "I</proc/uptime>"
+msgstr "I</proc>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:149
+msgid "The raw values for uptime and idle time."
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:149
+#, no-wrap
+msgid "I</proc/E<lt>PIDE<gt>/ns>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:152
+msgid "contains the set of namespaces for a particular B<PID>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:156
+#, fuzzy
+#| msgid "B<pgrep>(1), B<pstree>(1), B<top>(1), B<proc>(5)."
+msgid "B<procps>(3), B<procps_pids>(3), B<proc>(5)."
+msgstr "B<pgrep>(1), B<pstree>(1), B<top>(1), B<proc>(5)"
+
+#. type: TH
+#: ../man/procps_pids.3:11
+#, fuzzy, no-wrap
+#| msgid "PROCPS_USERLEN"
+msgid "PROCPS_PIDS"
+msgstr "PROCPS_USERLEN"
+
+#. type: Plain text
+#: ../man/procps_pids.3:17
+msgid "procps_pids - API to access process information in the /proc filesystem"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:21
+#, no-wrap
+msgid "#include E<lt>libproc2/pids.hE<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:25
+#, no-wrap
+msgid ""
+"intB< procps_pids_new > (struct pids_info **I<info>, enum pids_item *I<items>, int I<numitems>);\n"
+"intB< procps_pids_ref > (struct pids_info *I<info>);\n"
+"intB< procps_pids_unref> (struct pids_info **I<info>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:30
+#, no-wrap
+msgid ""
+"struct pids_stack *B<procps_pids_get> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<which>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:34
+#, no-wrap
+msgid ""
+"struct pids_fetch *B<procps_pids_reap> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<which>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:40
+#, no-wrap
+msgid ""
+"struct pids_fetch *B<procps_pids_select> (\n"
+" struct pids_info *I<info>,\n"
+" unsigned *I<these>,\n"
+" int I<numthese>,\n"
+" enum pids_select_type I<which>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:47
+#, no-wrap
+msgid ""
+"struct pids_stack **B<procps_pids_sort> (\n"
+" struct pids_info *I<info>,\n"
+" struct pids_stack *I<stacks>[],\n"
+" int I<numstacked>,\n"
+" enum pids_item I<sortitem>,\n"
+" enum pids_sort_order I<order>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:52
+#, no-wrap
+msgid ""
+"int B<procps_pids_reset> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_item *I<newitems>,\n"
+" int I<newnumitems>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:56
+#, no-wrap
+msgid ""
+"struct pids_stack *B<fatal_proc_unmounted> (\n"
+" struct pids_info *I<info>,\n"
+" int I<return_self>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:68
+msgid ""
+"Central to this interface is a simple `result' structure reflecting an "
+"`item' plus its value (in a union with standard C language types as "
+"members). All `result' structures are automatically allocated and provided "
+"by the library."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:79
+msgid ""
+"As part of this interface there are two unique enumerators. The `noop' and "
+"`extra' items exist to hold user values. They are never set by the library, "
+"but the `extra' result will be zeroed with each library interaction."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:85
+msgid ""
+"The pids.h file will be an essential document during user program "
+"development. There you will find available items, their return type (the "
+"`result' struct member name) and the source for such values. Additional "
+"enumerators and structures are also documented there."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:89
+msgid "The following would be a typical sequence of calls to this interface."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:95
+#, no-wrap
+msgid ""
+"1. B<fatal_proc_unmounted()>\n"
+"2. B<procps_pids_new()>\n"
+"3. B<procps_pids_get()>, B<procps_pids_reap()> or B<procps_pids_select()>\n"
+"4. B<procps_pids_unref()>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:100
+msgid ""
+"The B<get> function is an iterator for successive PIDs/TIDs, returning those "
+"`items' previously identified via B<new> or B<reset>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:107
+msgid ""
+"Two functions support unpredictable variable outcomes. The B<reap> function "
+"gathers data for all processes while the B<select> function deals with "
+"specific PIDs or UIDs. Both can return multiple `stacks' each containing "
+"multiple `result' structures. Optionally, a user may choose to B<sort> such "
+"results"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:122
+msgid ""
+"The E<lt>pidsE<gt> API differs from others in that those items of interest "
+"must be provided at B<new> or B<reset> time, the latter being unique to this "
+"API. If either the I<items> or I<numitems> parameter is zero at B<new> "
+"time, then B<reset> becomes mandatory before issuing any other call."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:130
+msgid ""
+"The B<get> and B<reap> functions use the I<which> parameter to specify "
+"whether just tasks or both tasks and threads are to be fetched."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:135
+msgid ""
+"The B<select> function requires an array of PIDs or UIDs as I<these> along "
+"with I<numthese> to identify which processes are to be fetched. This "
+"function then operates as a subset of B<reap>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:139
+msgid ""
+"When using the B<sort> function, the parameters I<stacks> and I<numstacked> "
+"would normally be those returned in the `pids_fetch' structure."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:147
+msgid ""
+"Lastly, a B<fatal_proc_unmounted> function may be called before any other "
+"function to ensure that the /proc/ directory is mounted. As such, the "
+"I<info> parameter would be NULL and the I<return_self> parameter zero. If, "
+"however, some items are desired for the issuing program (a I<return_self> "
+"other than zero) then the B<new> call must precede it to identify the "
+"I<items> and obtain the required I<info> pointer."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:164
+msgid ""
+"Success is indicated by a pointer to the named structure. However, if one "
+"survives the B<fatal_proc_unmounted> call, NULL is always returned when "
+"I<return_self> is zero."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:168
+msgid ""
+"To aid in program development, there are two procps-ng provisions that can "
+"be exploited."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:173
+msgid ""
+"The first is a supplied file named `libproc.supp' which may be useful when "
+"developing a I<multi-threaded> application. When used with the valgrind `--"
+"suppressions=' option, warnings associated with the procps library itself "
+"are avoided."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:177
+msgid ""
+"Such warnings arise because the library handles heap based allocations in a "
+"thread-safe manner. A I<single-threaded> application will not receive those "
+"warnings."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:182
+msgid ""
+"The second provision can help ensure `result' member references agree with "
+"library expectations. It assumes that a supplied macro in the header file "
+"is used to access the `result' value."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:189
+msgid ""
+"Add CFLAGS='-DXTRA_PROCPS_DEBUG' to any other ./configure options your "
+"project may employ."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:193
+msgid ""
+"Add #include E<lt>procps/xtra-procps-debug.hE<gt> to any program I<after> "
+"the #include E<lt>procps/pids.hE<gt>."
+msgstr ""
+
+#. type: SH
+#: ../man/procps_pids.3:199
+#, fuzzy, no-wrap
+#| msgid "ENVIRONMENT VARIABLES"
+msgid "ENVIRONMENT VARIABLE(S)"
+msgstr "VARIABLES D'ENVIRONNEMENT"
+
+#. type: Plain text
+#: ../man/procps_pids.3:206
+msgid ""
+"This will hide kernel threads which would otherwise be returned with a "
+"B<procps_pids_get>, B<procps_pids_select> or B<procps_pids_reap> call."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:210
+#, fuzzy
+#| msgid "B<pgrep>(1), B<pstree>(1), B<top>(1), B<proc>(5)."
+msgid "B<procps>(3), B<procps_misc>(3), B<proc>(5)."
+msgstr "B<pgrep>(1), B<pstree>(1), B<top>(1), B<proc>(5)"
+
+#~ msgid "Total installed memory (MemTotal and SwapTotal in /proc/meminfo)"
+#~ msgstr ""
+#~ "Total de la mémoire installée (MemTotal et SwapTotal dans I</proc/"
+#~ "meminfo>)"
+
+#~ msgid "Please send bug reports to E<.MT procps@freelists.org> E<.ME>"
+#~ msgstr "Signalez les bogues à E<.MT procps@freelists.org> E<.ME>"
+
+#~ msgid ""
+#~ "Defines the signal to send to each matched process. Either the numeric "
+#~ "or the symbolic signal name can be used. (B<pkill> only.)"
+#~ msgstr ""
+#~ "Indiquer le signal à envoyer à chaque processus sélectionné. Le signal "
+#~ "peut être indiqué par son numéro ou par son nom symbolique (seulement "
+#~ "pour B<pkill>)."
+
+#, no-wrap
+#~ msgid "-s"
+#~ msgstr "B<-s>"
+
+#, no-wrap
+#~ msgid "-c"
+#~ msgstr "B<-c>"
+
+#, no-wrap
+#~ msgid "-q"
+#~ msgstr "-q"
+
+#, no-wrap
+#~ msgid "-w"
+#~ msgstr "-w"
+
+#, no-wrap
+#~ msgid "-x"
+#~ msgstr "B<-x>"
+
+#~ msgid "Jaromir Capik E<lt>jcapik@redhat.comE<gt>"
+#~ msgstr "Jaromir Capik E<lt>I<jcapik@redhat.com>E<gt>"
+
+#, no-wrap
+#~ msgid "June 2011"
+#~ msgstr "juin 2011"
+
+#, no-wrap
+#~ msgid "2020-02-27"
+#~ msgstr "2020-02-27"
+
+#~ msgid "Use this option when all arguments prescribe a key to be set."
+#~ msgstr ""
+#~ "Utiliser cette option seulement si tous les arguments prescrivent la "
+#~ "définition d'une clef."
+
+#~ msgid "B<vmstat> does not require special permissions."
+#~ msgstr "B<vmstat> ne nécessite aucune permission particulière."
+
+#~ msgid ""
+#~ "These reports are intended to help identify system bottlenecks. Linux "
+#~ "B<vmstat> does not count itself as a running process."
+#~ msgstr ""
+#~ "Ces comptes-rendus tentent de fournir une aide à l'identification des "
+#~ "goulots d'étranglement du système. Sous Linux, l'utilitaire B<vmstat> "
+#~ "n'est pas comptabilisé lui-même comme un processus actif."
+
+#~ msgid ""
+#~ "All linux blocks are currently 1024 bytes. Old kernels may report blocks "
+#~ "as 512 bytes, 2048 bytes, or 4096 bytes."
+#~ msgstr ""
+#~ "Sous Linux, tous les blocs comptent actuellement 1024 octets. Les anciens "
+#~ "noyaux peuvent utiliser des blocs de 512, 2048 ou 4096 octets."
+
+#~ msgid ""
+#~ "Since procps 3.1.9, vmstat lets you choose units (k, K, m, M). Default "
+#~ "is K (1024 bytes) in the default mode."
+#~ msgstr ""
+#~ "Depuis la version 3.1.9 de procps, vmstat vous permet de choisir les "
+#~ "unités (k, K, m, M). La valeur par défaut est K (1024 octets) dans le "
+#~ "mode par défaut."
+
+#~ msgid "vmstat uses slabinfo 1.1"
+#~ msgstr "vmstat utilise le slabinfo\\ 1.1"
+
+#, no-wrap
+#~ msgid ""
+#~ "/proc/meminfo\n"
+#~ "/proc/stat\n"
+#~ "/proc/*/stat\n"
+#~ msgstr ""
+#~ "I</proc/meminfo>\n"
+#~ "I</proc/stat>\n"
+#~ "I</proc/*/stat>\n"
+
+#~ msgid ""
+#~ "Does not tabulate the block io per device or count the number of system "
+#~ "calls."
+#~ msgstr ""
+#~ "Le programme ne présente pas sous forme de tableau les E/S de bloc par "
+#~ "périphérique ni le décompte du nombre d'appels système."
+
+#~ msgid "Written by E<.UR al172@yfn.\\:ysu.\\:edu> Henry Ware E<.UE .>"
+#~ msgstr "Écrit par Henry Ware E<lt>I<al172@yfn.ysu.edu>E<gt>."
+
+#~ msgid ""
+#~ "E<.UR ffrederick@users.\\:sourceforge.\\:net> Fabian Fr\\('ed\\('erick E<."
+#~ "UE> (diskstat, slab, partitions...)"
+#~ msgstr ""
+#~ "Fabian Frédérick E<lt>I<ffrederick@users.sourceforge.net>E<gt> (diskstat, "
+#~ "slab, partitions…)"
+
+#~ msgid ""
+#~ "Select by PID (quick mode). This selects the processes whose process ID "
+#~ "numbers appear in I<pidlist>. With this option B<ps> reads the necessary "
+#~ "info only for the pids listed in the I<pidlist> and doesn't apply "
+#~ "additional filtering rules. The order of pids is unsorted and "
+#~ "preserved. No additional selection options, sorting and forest type "
+#~ "listings are allowed in this mode. Identical to B<q> and B<--quick-pid>."
+#~ msgstr ""
+#~ "Sélectionner par PID (mode rapide). Cela sélectionne les processus dont "
+#~ "le numéro d'identifiant figure dans I<liste_pid>. Avec cette option, "
+#~ "B<ps> ne lit les informations nécessaires que pour les PID se trouvant "
+#~ "dans I<liste_pid> et il n'applique aucune règle de filtrage "
+#~ "supplémentaire. Les PID ne sont pas triés et ils sont préservés. Dans ce "
+#~ "mode, aucune option de sélection supplémentaire, aucun tri ou listage en "
+#~ "arborescence n'est possible. Identique à B<q> et B<--quick-pid>."
+
+#, no-wrap
+#~ msgid ""
+#~ "command with all its arguments as a string.\n"
+#~ "Modifications to the arguments may be shown.\n"
+#~ "The output in this column may contain spaces.\n"
+#~ "A process marked E<lt>defunctE<gt> is partly dead,\n"
+#~ "waiting to be fully destroyed by its parent.\n"
+#~ "Sometimes the process args will be unavailable; when this happens,\n"
+#~ "B<ps>\n"
+#~ "will instead print the executable name in brackets. (alias\n"
+#~ "B<cmd>, B<command>).\n"
+#~ "See also the\n"
+#~ "B<comm>\n"
+#~ "format keyword, the\n"
+#~ "B<-f>\n"
+#~ "option, and the\n"
+#~ "B<c>\n"
+#~ "option.\n"
+#~ msgstr ""
+#~ "Commande avec tous ses arguments sous forme de chaîne.\n"
+#~ "Les modifications aux arguments peuvent être montrées.\n"
+#~ "Les éléments de cette colonne peuvent contenir des espaces.\n"
+#~ "Un processus marqué E<lt>defunctE<gt> est partiellement tué,\n"
+#~ "en attendant d'être entièrement détruit par son parent.\n"
+#~ "La valeur B<args> est parfois indisponible pour le processus, dans ce cas,\n"
+#~ "B<ps>\n"
+#~ "affichera à la place le nom de l'exécutable entre crochets (alias\n"
+#~ "B<cmd>,B<\\ command>).\n"
+#~ "Consultez aussi\n"
+#~ "le mot-clé de format B<comm>\n"
+#~ "et les options B<-f>\n"
+#~ "et\n"
+#~ "B<c>.\n"
+
+#, no-wrap
+#~ msgid ""
+#~ "time the command started. If the process was started less than 24 hours ago,\n"
+#~ "the output format is \"\\ HH:MM\", else it is \" Mmm:SS\" (where Mmm is the three\n"
+#~ "letters of the month). See also\n"
+#~ "B<lstart>, B<start>, B<start_time>, and B<stime>."
+#~ msgstr ""
+#~ "Heure de démarrage du processus. Si le processus a été démarré dans les dernières 24\\ heures,\n"
+#~ "le format de sortie est «\\ \\ HH:MM\\ »,\n"
+#~ "sinon il est «\\ Mmm\\ JJ\\ »\n"
+#~ "(où «\\ Mmm\\ » représente les trois\n"
+#~ "premières lettres du mois, en anglais). Consultez aussi\n"
+#~ "B<lstart>, B<start>, B<start_time> et B<stime>."
+
+#, no-wrap
+#~ msgid ""
+#~ "processor utilization.\n"
+#~ "Currently, this is the integer value of the percent usage over the\n"
+#~ "lifetime of the process. (see\n"
+#~ "B<%cpu>)."
+#~ msgstr ""
+#~ "Utilisation du processeur. C'est pour l'instant la partie entière\n"
+#~ "du pourcentage d'utilisation par rapport au temps de vie du processus (consultez\n"
+#~ "B<%cpu>)."
+
+#, no-wrap
+#~ msgid ""
+#~ "data resident set size, the amount of physical memory devoted to other than\n"
+#~ "executable code."
+#~ msgstr ""
+#~ "Taille des données en mémoire résidente, la quantité de mémoire physique\n"
+#~ "consacrée à autre chose que le code exécutable."
+
+#, no-wrap
+#~ msgid "instruction pointer."
+#~ msgstr "Pointeur d'instruction."
+
+#, no-wrap
+#~ msgid "stack pointer."
+#~ msgstr "Pointeur de pile."
+
+#, no-wrap
+#~ msgid ""
+#~ "time the command started. See also\n"
+#~ "B<bsdstart>, B<start>, B<start_time>, and B<stime>."
+#~ msgstr ""
+#~ "Heure de démarrage du processus.\n"
+#~ "Consultez aussi\n"
+#~ "B<bsdstart>, B<start>, B<start_time> et B<stime>."
+
+#, no-wrap
+#~ msgid ""
+#~ "light weight process (thread) ID of the dispatchable entity (alias\n"
+#~ "B<spid>, B<tid>).\n"
+#~ "See\n"
+#~ "B<tid>\n"
+#~ "for additional information."
+#~ msgstr ""
+#~ "Identifiant de processus léger (thread) de l'entité distribuable\n"
+#~ "(alias\n"
+#~ "B<spid>, B<tid>).\n"
+#~ "Consultez\n"
+#~ "B<tid>\n"
+#~ "pour plus de renseignements."
+
+#, no-wrap
+#~ msgid ""
+#~ "nice value.\n"
+#~ "This ranges from 19 (nicest) to -20 (not nice to others),\n"
+#~ "see\n"
+#~ "I<nice>(1).\n"
+#~ "(alias\n"
+#~ "B<nice>)."
+#~ msgstr ""
+#~ "Valeur de politesse, comprise entre 19 (la plus polie) à -20 (la moins polie pour les autres),\n"
+#~ "Consultez\n"
+#~ "B<nice>(1)\n"
+#~ "(alias\n"
+#~ "B<nice>)."
+
+#, no-wrap
+#~ msgid ""
+#~ "mask of the pending signals.\n"
+#~ "See\n"
+#~ "I<signal>(7).\n"
+#~ "Signals pending on the process are distinct from signals pending on\n"
+#~ "individual threads. Use the\n"
+#~ "B<m>\n"
+#~ "option or the\n"
+#~ "B<-m>\n"
+#~ "option to see both. According to the width of the field, a 32 or 64 bits\n"
+#~ "mask in hexadecimal format is displayed. (alias\n"
+#~ "B<sig>)."
+#~ msgstr ""
+#~ "Masque des signaux en attente, consultez\n"
+#~ "B<signal>(7).\n"
+#~ "Les signaux en attente du processus sont différents des signaux en \n"
+#~ "attente de processus légers individuels.\n"
+#~ "Utilisez l'option\n"
+#~ "B<m>\n"
+#~ "ou l'option\n"
+#~ "B<-m>\n"
+#~ "pour voir les deux.\n"
+#~ "Suivant la largeur du champ,\n"
+#~ "un masque de 32 ou 64\\ bits au format hexadécimal est affiché (alias\n"
+#~ "B<sig>)."
+
+#, no-wrap
+#~ msgid ""
+#~ "text resident set size,\n"
+#~ "the amount of physical memory devoted to executable code."
+#~ msgstr ""
+#~ "Taille du texte en mémoire résidente,\n"
+#~ "la quantité de mémoire physique consacrée au code exécutable."
+
+#, no-wrap
+#~ msgid ""
+#~ "name of the kernel function in which the process is sleeping, a \"-\" if the\n"
+#~ "process is running, or a \"*\" if the process is multi-threaded and\n"
+#~ "B<ps>\n"
+#~ "is not displaying threads."
+#~ msgstr ""
+#~ "Nom de la fonction du noyau où le processus est en sommeil,\n"
+#~ "affiche «\\ -\\ » si le processus s'exécute,\n"
+#~ "«\\ *\\ » si le processus possède plusieurs processus légers («\\ multi-thread\\ ») et\n"
+#~ "B<ps>\n"
+#~ "n'affiche pas les processus légers."
+
+#~ msgid ""
+#~ "Default output format override. You may set this to a format string of "
+#~ "the type used for the B<-o> option. The B<DefSysV> and B<DefBSD> values "
+#~ "are particularly useful."
+#~ msgstr ""
+#~ "Redéfinir le format de sortie par défaut, à configurer avec une chaîne de "
+#~ "format du même type que celle utilisée pour l'option B<-o>. Les valeurs "
+#~ "B<DefSysV> et B<DefBSD> sont particulièrement utiles."
+
+#, no-wrap
+#~ msgid "20"
+#~ msgstr "20"
+
+#, no-wrap
+#~ msgid "September 2020"
+#~ msgstr "septembre 2020"
+
+#~ msgid "\\*(WE \\*(CL"
+#~ msgstr "\\*(WE \\*(CL"
+
+#~ msgid "The traditional switches `-' and whitespace are optional."
+#~ msgstr ""
+#~ "Le commutateur traditionnel «\\ -\\ » et les espaces sont facultatifs."
+
+#~ msgid "The command-line syntax for \\*(We consists of:"
+#~ msgstr "Voici la syntaxe de la ligne de commande de \\*(WE\\ :"
+
+#, no-wrap
+#~ msgid " \\*(CL\n"
+#~ msgstr " \\*(CL\n"
+
+#~ msgid ""
+#~ "The typically mandatory switch (`-') and even whitespace are completely "
+#~ "optional."
+#~ msgstr ""
+#~ "Le caractère utilisé comme commutateur («\\ -\\ ») habituellement "
+#~ "obligatoire et même les espaces sont totalement optionnels."
+
+#, no-wrap
+#~ msgid "-B<h> | -B<v>\\ \\ :I<Help/Version >"
+#~ msgstr "-B<h> | -B<v>\\ \\ : I<aide et version>"
+
+#~ msgid "Show library version and the usage prompt, then quit."
+#~ msgstr "Afficher la version de bibliothèque et l'utilisation, puis quitter."
+
+#, no-wrap
+#~ msgid "-B<b>\\ \\ :I<Batch-mode> operation "
+#~ msgstr "-B<b>\\ \\ : I<traitement par lot> («\\ batch mode\\ »)"
+
+#, no-wrap
+#~ msgid "-B<c>\\ \\ :I<Command-line/Program-name> toggle "
+#~ msgstr "-B<c>\\ \\ : basculer entre I<ligne de commande ou nom du programme>"
+
+#, no-wrap
+#~ msgid "-B<d>\\ \\ :I<Delay-time> interval as:\\ \\ B<-d ss.t> (I<secs>.I<tenths>) "
+#~ msgstr "-B<d>\\ \\ : I<durée> de l'intervalle :\\ \\ B<-d> I<délai> (sous la forme I<secondes>B<.>I<dixièmes>)"
+
+#, no-wrap
+#~ msgid "-B<H>\\ \\ :I<Threads-mode> operation "
+#~ msgstr "-B<H>\\ \\ : opération en I<mode processus légers>"
+
+#, no-wrap
+#~ msgid "-B<i>\\ \\ :I<Idle-process> toggle "
+#~ msgstr "-B<i>\\ \\ : option I<processus en veille>"
+
+#, no-wrap
+#~ msgid "-B<n>\\ \\ :I<Number-of-iterations> limit as:B<\\ \\ -n number >"
+#~ msgstr "-B<n>\\ \\ : I<nombre d'itérations> maximal :\\ \\ B<-n> I<limite>"
+
+#, no-wrap
+#~ msgid "-B<o>\\ \\ :I<Override-sort-field> as:B<\\ \\ -o fieldname >"
+#~ msgstr "-B<o>\\ \\ : I<remplacer le champ de tri> :\\ \\ B<-o> I<champ>"
+
+#, no-wrap
+#~ msgid "-B<O>\\ \\ :I<Output-field-names >"
+#~ msgstr "-B<O>\\ \\ : I<afficher les noms de champ>"
+
+#, no-wrap
+#~ msgid "-B<p>\\ \\ :I<Monitor-PIDs> mode as:B<\\ \\ -pN1 -pN2 ...>\\ \\ orB<\\ \\ -pN1,N2,N3 ... >"
+#~ msgstr "-B<p>\\ \\ : mode de I<suivi des PID> :\\ B<-p>I<PID1> B<-p>I<PID2> ... ou B<-p>I<PID1>B<,>I<PID2>[B<,>I<PID3> ...]"
+
+#, no-wrap
+#~ msgid "-B<s>\\ \\ :I<Secure-mode> operation "
+#~ msgstr "-B<s>\\ \\ : opération en I<mode sécurisé>"
+
+#, no-wrap
+#~ msgid "-B<S>\\ \\ :I<Cumulative-time> toggle "
+#~ msgstr "-B<S>\\ \\ : basculer en I<cumul de temps>"
+
+#, no-wrap
+#~ msgid "-B<u> | -B<U>\\ \\ :I<User-filter-mode> as:\\ \\ B<-u> | B<-U number> orB< name >"
+#~ msgstr "-B<u> | -B<U>\\ \\ : mode I<filtre utilisateur> :\\ \\ B<-u> | B<-U> I<utilisateur>"
+
+#, no-wrap
+#~ msgid "-B<w>\\ \\ :I<Output-width-override> as:\\ \\ B<-w> [B< number> ] "
+#~ msgstr "-B<w>\\ \\ : I<largeur de l'affichage> :\\ \\ B<-w> [ I<colonnes> ] "
+
+#, no-wrap
+#~ msgid "-B<1>\\ \\ :I<Single/Separate-Cpu-States> toggle "
+#~ msgstr "-B<1>\\ \\ : basculer entre I<états CPU simple et séparé>"
+
+#~ msgid "As a default, Line 1 reflects \\*(MP, classified as:"
+#~ msgstr "Par défaut, la première ligne montre la \\*(MP, classée en :"
+
+#, no-wrap
+#~ msgid " total, free, used and buff/cache\n"
+#~ msgstr " totale (total), libre (free), utilisée (used) et tampons (buffers) ou cache.\n"
+
+#, no-wrap
+#~ msgid " total, free, used and avail (which is \\*(MP)\n"
+#~ msgstr " totale (total), libre (free) et disponible (avail, c'est-à-dire la \\*(MP).\n"
+
+#~ msgid ""
+#~ "\\*(NT Whenever Searching and/or Other Filtering is active in a window, "
+#~ "column highlighting is temporarily disabled. \\*(XC notes at the end of "
+#~ "topics 5d. SEARCHING and 5e. FILTERING for an explanation why."
+#~ msgstr ""
+#~ "\\*(NT à chaque fois que « recherche » ou « autre filtre » est actif dans "
+#~ "une fenêtre, la surbrillance de colonne est temporairement désactivée. "
+#~ "\\*(XC les notes en fin des sujets B<5d. RECHERCHE> et B<5e. FILTRE> pour "
+#~ "une explication de la raison."
+
+#~ msgid ""
+#~ "\\*(NT Field sorting uses internal values, not those in column display. "
+#~ "Thus, the TTY and WCHAN fields will violate strict ASCII collating "
+#~ "sequence."
+#~ msgstr ""
+#~ "\\*(NT le tri des champs utilise des valeurs internes, et non celles "
+#~ "affichées dans les colonnes. Donc, les champs TTY et WCHAN ne "
+#~ "respecteront pas l'ordre ASCII."
+
+#~ msgid ""
+#~ "\\*(NT Whenever a Search is active in a window, \\*(We will turn column "
+#~ "highlighting \\*F to prevent false matches on internal non-display escape "
+#~ "sequences. Such highlighting will be restored when a window's search "
+#~ "string is empty. \\*(XC `x' \\*(CI for additional information on sort "
+#~ "column highlighting."
+#~ msgstr ""
+#~ "\\*(NT à chaque fois qu'une touche de recherche est tapée, \\*(WE "
+#~ "positionnera sur \\*F la surbrillance de colonne pour éviter les fausses "
+#~ "correspondances sur les suites de caractères d'échappement non "
+#~ "affichables. Ce type de surbrillance sera réactivé lorsqu'une chaîne de "
+#~ "recherche de la fenêtre est vide. \\*(XC la \\*(CI « x » pour de plus "
+#~ "amples renseignements sur la surbrillance de colonne de tri."
+
+#~ msgid ""
+#~ "\\*(NT Whenever Other Filtering is active in a window, \\*(We will turn "
+#~ "column highlighting \\*F to prevent false matches on internal non-display "
+#~ "escape sequences. Such highlighting will be restored when a window is no "
+#~ "longer subject to filtering. \\*(XC `x' \\*(CI for additional "
+#~ "information on sort column highlighting."
+#~ msgstr ""
+#~ "\\*(NT lorsqu'« autre filtre » est actif, \\*(WE positionne sur \\*F la "
+#~ "surbrillance de colonne pour éviter les fausses correspondances sur les "
+#~ "suites de caractères d'échappement non affichables. Ce type de "
+#~ "surbrillance sera réactivé lorsqu'une fenêtre n'est plus soumise au "
+#~ "filtre. \\*(XC la \\*(CI « x » pour de plus amples renseignements sur la "
+#~ "surbrillance de colonne de tri."
+
+#~ msgid ""
+#~ "B<ps> displays information about a selection of the active processes. If "
+#~ "you want a repetitive update of the selection and the displayed "
+#~ "information, use I<top>(1) instead."
+#~ msgstr ""
+#~ "B<ps> affiche des renseignements sur une sélection de processus actifs. "
+#~ "Pour une mise à jour dynamique de la sélection et de l'affichage, "
+#~ "l'utilisation de B<top>(1) est préférable."
+
+#~ msgid ""
+#~ "Note that \"B<ps -aux>\" is distinct from \"B<ps\\ aux>\". The POSIX and "
+#~ "UNIX standards require that \"B<ps\\ -aux>\" print all processes owned by "
+#~ "a user named \"x\", as well as printing all processes that would be "
+#~ "selected by the B<-a> option. If the user named \"x\" does not exist, "
+#~ "this B<ps> may interpret the command as \"B<ps\\ aux>\" instead and print "
+#~ "a warning. This behavior is intended to aid in transitioning old scripts "
+#~ "and habits. It is fragile, subject to change, and thus should not be "
+#~ "relied upon."
+#~ msgstr ""
+#~ "Remarquez que « B<ps -aux> » est différent de « B<ps\\ aux> ». Les normes "
+#~ "POSIX et UNIX exigent que « B<ps\\ -aux> » affiche tous les processus "
+#~ "appartenant à l'utilisateur appelé « x », ainsi que tous les processus "
+#~ "qui seraient sélectionnés par l'option B<-a>. Si l'utilisateur « x » "
+#~ "n'existe pas, ce B<ps> peut interpréter plutôt la commande comme « B<ps\\ "
+#~ "aux> » et affiche un avertissement. Ce comportement a pour but d'aider à "
+#~ "la transition d'anciens scripts et habitudes. C'est précaire, sujet à "
+#~ "modification, et il est préférable de ne pas compter dessus."
+
+#~ msgid ""
+#~ "Print a help message. The section argument can be one of I<s>imple, "
+#~ "I<l>ist, I<o>utput, I<t>hreads, I<m>isc, or I<a>ll. The argument can be "
+#~ "shortened to one of the underlined letters as in: s\\^|\\^l\\^|\\^o\\^|"
+#~ "\\^t\\^|\\^m\\^|\\^a."
+#~ msgstr ""
+#~ "Afficher un message d'aide. Le paramètre I<section> peut être "
+#~ "« B<s>imple », « B<l>ist » (liste), « B<o>utput » (sortie), "
+#~ "« B<t>hreads » (processus légers), « B<m>isc » (autres) ou "
+#~ "« B<a>ll » (tout). Le paramètre peut être limité à la première lettre : "
+#~ "B<s>\\^|\\^B<l>\\^|\\^B<o>\\^|\\^B<t>\\^|\\^B<m>\\^|\\^B<a>."
+
+#~ msgid ""
+#~ "Unique inode number describing the namespace the process belongs to.\n"
+#~ "See namespaces(7)."
+#~ msgstr ""
+#~ "Numéro d’inœud unique décrivant l’espace de nommage auquel appartient le "
+#~ "processus.\n"
+#~ "Consultez B<namespaces>(7)."
+
+#~ msgid ""
+#~ "The node assocated with the most recently used processor.\n"
+#~ "A -1 means that NUMA information is unavailable."
+#~ msgstr ""
+#~ "L'inœud associé au dernier processeur utilisé.\n"
+#~ "B<-1> signifie que les informations NUMA ne sont pas disponibles."
+
+#~ msgid ""
+#~ "The use of BSD-style options will add process state (stat=STAT) to the "
+#~ "default display and show the command args (args=COMMAND) instead of the "
+#~ "executable name. You can override this with the B<PS_FORMAT> environment "
+#~ "variable. The use of BSD-style options will also change the process "
+#~ "selection to include processes on other terminals (TTYs) that are owned "
+#~ "by you; alternately, this may be described as setting the selection to be "
+#~ "the set of all processes filtered to exclude processes owned by other "
+#~ "users or not on a terminal. These effects are not considered when "
+#~ "options are described as being \"identical\" below, so B<-M> will be "
+#~ "considered identical to B<Z> and so on."
+#~ msgstr ""
+#~ "L'utilisation d'options « à la BSD » ajoutera l'état du processus "
+#~ "(stat=STAT) à l'affichage par défaut et montrera les arguments de "
+#~ "commande (args=COMMAND) au lieu du nom de l'exécutable. La variable "
+#~ "d'environnement B<PS_FORMAT> permet de modifier ce comportement. "
+#~ "L'utilisation d'options « à la BSD » modifiera également la sélection de "
+#~ "processus pour inclure les processus d'autres terminaux (TTY) vous "
+#~ "appartenant ; autrement dit, il s'agit de la sélection de tous les "
+#~ "processus, filtrés pour exclure les processus appartenant aux autres "
+#~ "utilisateurs ou en dehors d'un terminal. Ces effets ne sont pas pris en "
+#~ "compte pour les options décrites ci-dessous comme « identiques », donc B<-"
+#~ "M> sera considérée identique à B<Z> et ainsi de suite."
+
+#~ msgid ""
+#~ "Select by command name. This selects the processes whose executable name "
+#~ "is given in I<cmdlist>."
+#~ msgstr ""
+#~ "Sélectionner par nom de commande. Cela sélectionne les processus dont le "
+#~ "nom d'exécutable est donné dans I<liste_commandes>."
+
+#~ msgid ""
+#~ "Do full-format listing. This option can be combined with many other UNIX-"
+#~ "style options to add additional columns. It also causes the command "
+#~ "arguments to be printed. When used with B<-L>, the NLWP (number of "
+#~ "threads) and LWP (thread ID) columns will be added. See the B<c> option, "
+#~ "the format keyword B<args>, and the format keyword B<comm>."
+#~ msgstr ""
+#~ "Faire une liste au format complet. Cette option peut être combinée aux "
+#~ "nombreuses autres options « à la UNIX » pour ajouter des colonnes "
+#~ "supplémentaires. Cela conduit également à afficher les paramètres de la "
+#~ "commande. Lorsqu'elle est utilisée avec B<-L>, les colonnes NLWP (nombre "
+#~ "de processus légers) et LWP (identifiant de processus léger) seront "
+#~ "ajoutées. Consultez l'option B<c> et les mots-clés de format B<args> et "
+#~ "B<comm>."
+
+#~ msgid ""
+#~ "Specify sorting order. Sorting syntax is [B<+>|B<->]I<key>[,[B<+>|B<-"
+#~ ">]I<key>[,...]]. Choose a multi-letter key from the B<STANDARD FORMAT "
+#~ "SPECIFIERS> section. The \"+\" is optional since default direction is "
+#~ "increasing numerical or lexicographic order. Identical to B<--sort>."
+#~ msgstr ""
+#~ "Indiquer l'ordre de tri. La syntaxe de tri est « [B<+>|B<->]I<clé>[,[B<+>|"
+#~ "B<->]I<clé>[,...]] ». Choisir une I<clé> multicaractère de la section "
+#~ "B<INDICATEURS DE FORMAT STANDARDS>. Le « + » est facultatif puisque "
+#~ "l'ordre numérique ou lexicographique est croissant par défaut. Identique "
+#~ "à B<--sort>."
+
+#~ msgid ""
+#~ "For sorting, obsolete BSD B<O> option syntax is B<O>[B<+>|B<->]I<k1>[,"
+#~ "[B<+>|B<->]I<k2>[,...]]. It orders the processes listing according to "
+#~ "the multilevel sort specified by the sequence of one-letter short keys "
+#~ "I<k1>,I<k2>, ... described in the B<OBSOLETE SORT KEYS> section below. "
+#~ "The\\ \"+\" is currently optional, merely re-iterating the default "
+#~ "direction on a key, but may help to distinguish an B<O> sort from an B<O> "
+#~ "format. The \"-\" reverses direction only on the key it precedes."
+#~ msgstr ""
+#~ "Pour trier, la syntaxe de l'option BSD obsolète est « B<O>[B<+>|B<-"
+#~ ">]I<k1>[,[B<+>|B<->]I<k2>[,...]] ». L'ordre de la liste de processus est "
+#~ "effectué en fonction de l'ordre multiniveau indiqué par la suite de clés "
+#~ "courtes à une lettre I<k1>, I<k2>, etc., décrites ci-dessous dans la "
+#~ "section B<CLÉS DE TRI OBSOLÈTES>. Le « + » actuellement facultatif "
+#~ "réitère simplement l'ordre par défaut d'une clé, mais permet également de "
+#~ "distinguer un B<O> de tri d'un B<O> de formatage. Le « - » inverse "
+#~ "uniquement l'ordre de la clé qu'il précède."
+
+#~ msgid ""
+#~ "Specify sorting order. Sorting syntax is [B<+>|B<->]I<key>[,[B<+>|B<-"
+#~ ">]I<key>[,...]]. Choose a multi-letter key from the B<STANDARD FORMAT "
+#~ "SPECIFIERS> section. The \"+\" is optional since default direction is "
+#~ "increasing numerical or lexicographic order. Identical to B<k>. For "
+#~ "example: B<ps jax --sort=\\:uid,\\:-ppid,\\:+pid>"
+#~ msgstr ""
+#~ "Indiquer l'ordre de tri. La syntaxe de tri est « [B<+>|B<->]I<clé>[,[B<+>|"
+#~ "B<->]I<clé>[,...]] ». Choisir une I<clé> multicaractère de la section "
+#~ "B<INDICATEURS DE FORMAT STANDARDS>. Le « + » est facultatif puisque "
+#~ "l'ordre numérique ou lexicographique est croissant par défaut. Identique "
+#~ "à B<k>. Par exemple : B<ps\\ jax\\ --sort=uid,-ppid,+pid>."
+
+#~ msgid ""
+#~ "Print a help message. The section argument can be one of I<s>imple, "
+#~ "I<l>ist, I<o>utput, I<t>hreads, I<m>isc or I<a>ll. The argument can be "
+#~ "shortened to one of the underlined letters as in: s|l|o|t|m|a."
+#~ msgstr ""
+#~ "Afficher un message d'aide. Le paramètre I<section> peut être "
+#~ "« B<s>imple », « B<l>ist » (liste), « B<o>utput » (sortie), "
+#~ "« B<t>hreads » (processus légers), « B<m>isc » (autres) ou "
+#~ "« B<a>ll » (tout). Le paramètre peut être limité à la première lettre : "
+#~ "B<s>|B<l>|B<o>|B<t>|B<m>|B<a>."
+
+#~ msgid ""
+#~ "The SIZE and RSS fields don't count some parts of a process including the "
+#~ "page tables, kernel stack, struct thread_info, and struct task_struct. "
+#~ "This is usually at least 20 KiB of memory that is always resident. SIZE "
+#~ "is the virtual size of the process (code+\\:data+\\:stack)."
+#~ msgstr ""
+#~ "Les champs SIZE et RSS ne comptent pas certaines parties d'un processus "
+#~ "comme les tables de pages, la pile du noyau, la structure thread_info, et "
+#~ "la structure task_struct. Cela représente au moins 20\\ Kio de mémoire "
+#~ "toujours résidente. SIZE est la taille virtuelle du processus "
+#~ "(code + données + pile)."
+
+#~ msgid ""
+#~ "If the length of the username is greater than the length of the display "
+#~ "column, the username will be truncated. See the -o and -O formatting "
+#~ "options to customize length."
+#~ msgstr ""
+#~ "Si la longueur du nom d'utilisateur dépasse la largeur de la colonne "
+#~ "d'affichage, l'identifiant numérique de l'utilisateur est affiché à la "
+#~ "place.Consultez les options de formatage B<-o> et B<-O> pour "
+#~ "personnaliser la longueur."
+
+#~ msgid ""
+#~ "Here are the different values that the B<s>,B<\\ stat>\\ andB<\\ state> "
+#~ "output specifiers (header \"STAT\" or \"S\") will display to describe the "
+#~ "state of a process:"
+#~ msgstr ""
+#~ "Voici les différentes valeurs que les indicateurs de sortie B<s>, B<stat> "
+#~ "et B<state> (en-tête « STAT » ou « S ») afficheront pour décrire l'état "
+#~ "d'un processus :"
+
+#~ msgid ""
+#~ "Here are the different keywords that may be used to control the output "
+#~ "format (e.g. with option B<-o>) or to sort the selected processes with "
+#~ "the GNU-style B<--sort> option."
+#~ msgstr ""
+#~ "Voici les différents mots-clés pouvant être utilisés pour contrôler le "
+#~ "format de sortie (par exemple avec l'option B<-o>) ou pour trier les "
+#~ "processus sélectionnés avec l'option « à la GNU » B<--sort>."
+
+#~ msgid ""
+#~ "The following user-defined format specifiers may contain spaces: B<args>,"
+#~ "B<\\ cmd>,B<\\ comm>,B<\\ command>,B<\\ fname>,B<\\ ucmd>,B<\\ ucomm>, "
+#~ "B<lstart>,B<\\ bsdstart>,B<\\ start>."
+#~ msgstr ""
+#~ "Les indicateurs suivants de format définis par l'utilisateur peuvent "
+#~ "contenir des espaces : B<args>, B<cmd>, B<comm>, B<command>, B<fname>, "
+#~ "B<ucmd>, B<ucomm>, B<lstart>, B<bsdstart>, B<start>."
+
+#~ msgid ""
+#~ "mask of the blocked signals, see\n"
+#~ "I<signal>(7).\n"
+#~ "According to the width of the field, a 32 or 64-bit mask in hexadecimal\n"
+#~ "format is displayed. (alias\n"
+#~ "B<sig_block>,B<\\ sigmask>)."
+#~ msgstr ""
+#~ "Masque des signaux bloqués, consultez\n"
+#~ "B<signal>(7).\n"
+#~ "Suivant la largeur du champ, un masque de 32 ou 64\\ bits au format "
+#~ "hexadécimal est affiché\n"
+#~ "(alias\n"
+#~ "B<sig_block>, B<sigmask>)."
+
+#~ msgid ""
+#~ "mask of the caught signals, see\n"
+#~ "I<signal>(7).\n"
+#~ "According to the width of the field, a 32 or 64 bits mask in hexadecimal\n"
+#~ "format is displayed. (alias\n"
+#~ "B<sig_catch>,B<\\ sigcatch>)."
+#~ msgstr ""
+#~ "Masque des signaux bloqués, consultez\n"
+#~ "B<signal>(7).\n"
+#~ "Suivant la largeur du champ, un masque de 32 ou 64\\ bits au format "
+#~ "hexadécimal\n"
+#~ "(alias\n"
+#~ "B<sig_catch>, B<sigcatch>)."
+
+#~ msgid ""
+#~ "scheduling class of the process. (alias\n"
+#~ "B<policy>,B<\\ cls>).\n"
+#~ "Field's possible values are:\n"
+#~ msgstr ""
+#~ "Ordonnancement de la classe du processus (alias\n"
+#~ "B<policy>,B<\\ cls>).\n"
+#~ "Les valeurs possibles du champ sont\\ :\n"
+
+#~ msgid ".IP \"\" 2\n"
+#~ msgstr ".IP \"\" 2\n"
+
+#~ msgid "?\tunknown value"
+#~ msgstr "?\tvaleur inconnue"
+
+#~ msgid ""
+#~ "see\n"
+#~ "B<args>.\n"
+#~ "(alias\n"
+#~ "B<args>,B<\\ command>)."
+#~ msgstr ""
+#~ "Consultez\n"
+#~ "B<args>\n"
+#~ "(alias\n"
+#~ "B<args>, B<command>)."
+
+#~ msgid ""
+#~ "command name (only the executable name). Modifications to the command "
+#~ "name\n"
+#~ "will not be shown. A process marked E<lt>defunctE<gt> is partly dead, "
+#~ "waiting to be\n"
+#~ "fully destroyed by its parent. The output in this column may contain "
+#~ "spaces.\n"
+#~ "(alias\n"
+#~ "B<ucmd>,B<\\ ucomm>).\n"
+#~ "See also the\n"
+#~ "B<args format keyword,>\n"
+#~ "the\n"
+#~ "B<-f>\n"
+#~ "option, and the\n"
+#~ "B<c>\n"
+#~ "option.\n"
+#~ msgstr ""
+#~ "Nom de la commande (seulement le nom de l'exécutable).\n"
+#~ "Les modifications au nom de la commande ne seront pas montrées.\n"
+#~ "Un processus marqué E<lt>defunctE<gt> est partiellement tué, en attente "
+#~ "d'être\n"
+#~ "complètement détruit par son parent.\n"
+#~ "Les éléments de cette colonne peuvent contenir des espaces\n"
+#~ "(alias\n"
+#~ "B<ucmd>,B<\\ ucomm>).\n"
+#~ "Consultez aussi\n"
+#~ "B<paramètres de mots-clés de format>,\n"
+#~ "et les options B<-f>\n"
+#~ "et\n"
+#~ "B<c>.\n"
+
+#~ msgid ""
+#~ "See\n"
+#~ "B<args>.\n"
+#~ "(alias\n"
+#~ "B<args>,B<\\ command>)."
+#~ msgstr ""
+#~ "Consultez\n"
+#~ "B<args>\n"
+#~ "(alias\n"
+#~ "B<args>,B<\\ command>)."
+
+#~ msgid ""
+#~ "effective user name. This will be the textual user ID, if it can be "
+#~ "obtained\n"
+#~ "and the field width permits, or a decimal representation otherwise. The\n"
+#~ "B<n>\n"
+#~ "option can be used to force the decimal representation. (alias\n"
+#~ "B<uname>,B<\\ >userB<).>"
+#~ msgstr ""
+#~ "Nom d'utilisateur effectif, au format texte s'il peut être obtenu\n"
+#~ "et que la largeur du champ le permet,\n"
+#~ "sous forme d'entier décimal sinon.\n"
+#~ "L'option\n"
+#~ "B<n>\n"
+#~ "peut être utilisée\n"
+#~ "pour forcer la représentation décimale (alias\n"
+#~ "B<uname>, B<user>)."
+
+#~ msgid ""
+#~ "flags associated with the process, see the\n"
+#~ "B<PROCESS FLAGS>\n"
+#~ "section. (alias\n"
+#~ "B<flag>,B<\\ flags>)."
+#~ msgstr ""
+#~ "Indicateur associé au processus, consultez la section\n"
+#~ "B<INDICATEURS DE PROCESSUS>\n"
+#~ "(alias\n"
+#~ "B<flag>,B<\\ flags>)."
+
+#~ msgid ""
+#~ "see\n"
+#~ "B<f>.\n"
+#~ "(alias\n"
+#~ "B<f>,B<\\ flags>)."
+#~ msgstr ""
+#~ "Consultez\n"
+#~ "B<f>\n"
+#~ "(alias\n"
+#~ "B<f>,B<\\ flags>)."
+
+#~ msgid ""
+#~ "see\n"
+#~ "B<f>.\n"
+#~ "(alias\n"
+#~ "B<f>,B<\\ flag>)."
+#~ msgstr ""
+#~ "Consultez\n"
+#~ "B<f>\n"
+#~ "(alias\n"
+#~ "B<f>,B<\\ flag>)."
+
+#~ msgid ""
+#~ "mask of the ignored signals, see\n"
+#~ "I<signal>(7).\n"
+#~ "According to the width of the field, a 32 or 64 bits mask in hexadecimal\n"
+#~ "format is displayed. (alias\n"
+#~ "B<sig_ignore>,B<\\ sigignore>)."
+#~ msgstr ""
+#~ "Masque des signaux ignorés, consultez\n"
+#~ "B<signal>(7).\n"
+#~ "Suivant la largeur du champ, un masque de 32 ou 64\\ bits au format "
+#~ "hexadécimal\n"
+#~ "(alias\n"
+#~ "B<sig_ignore>,B<\\ sigignore>)."
+
+#~ msgid ""
+#~ "Unique inode number describing the namespace the process belongs to. See "
+#~ "namespaces(7)."
+#~ msgstr ""
+#~ "Numéro d’inœud unique décrivant l’espace de nommage auquel appartient le "
+#~ "processus. Consultez B<namespaces>(7)."
+
+#~ msgid ""
+#~ "time the command started. See also\n"
+#~ "B<bsdstart>,B<\\ start>,B<\\ start_time>, andB<\\ stime>."
+#~ msgstr ""
+#~ "Heure de démarrage du processus.\n"
+#~ "Consultez aussi\n"
+#~ "B<bsdstart>,B<\\ start>,B<\\ start_time> etB<\\ stime>."
+
+#~ msgid ""
+#~ "scheduling class of the process. (alias\n"
+#~ "B<class>,B<\\ cls>).\n"
+#~ "Possible values are:\n"
+#~ msgstr ""
+#~ "Ordonnancement de la classe du processus (alias\n"
+#~ "B<class>,B<\\ cls>).\n"
+#~ "Les valeurs possibles sont\\ :\n"
+
+#~ msgid ""
+#~ "resident set size, the non-swapped physical memory that a task has used "
+#~ "(in\n"
+#~ "kiloBytes). (alias\n"
+#~ "B<rssize>,B<\\ rsz>)."
+#~ msgstr ""
+#~ "Taille de mémoire résidente («\\ resident set size\\ » ou RSS),\n"
+#~ "la mémoire physique non transférée vers l'espace d'échange (swap)\n"
+#~ "qu'une tâche a utilisée (en kilooctets) (alias\n"
+#~ "B<rssize>,B<\\ rsz>)."
+
+#~ msgid ""
+#~ "see\n"
+#~ "B<rss>.\n"
+#~ "(alias\n"
+#~ "B<rss>,B<\\ rsz>)."
+#~ msgstr ""
+#~ "Consultez\n"
+#~ "B<rss>\n"
+#~ "(alias\n"
+#~ "B<rss>,B<\\ rsz>)."
+
+#~ msgid ""
+#~ "see\n"
+#~ "B<rss>.\n"
+#~ "(alias\n"
+#~ "B<rss>,B<\\ rssize>)."
+#~ msgstr ""
+#~ "Consultez\n"
+#~ "B<rss>\n"
+#~ "(alias\n"
+#~ "B<rss>,B<\\ rssize>)."
+
+#~ msgid ""
+#~ "session ID or, equivalently, the process ID of the session leader. "
+#~ "(alias\n"
+#~ "B<session>,B<\\ sid>)."
+#~ msgstr ""
+#~ "Identifiant de session ou, de manière équivalente, le PID du meneur de "
+#~ "session\n"
+#~ "(alias\n"
+#~ "B<session>,B<\\ sid>)."
+
+#~ msgid ""
+#~ "see\n"
+#~ "B<sess>.\n"
+#~ "(alias\n"
+#~ "B<sess>,B<\\ session>)."
+#~ msgstr ""
+#~ "Consultez\n"
+#~ "B<sess>\n"
+#~ "(alias\n"
+#~ "B<sess>,B<\\ session>)."
+
+#~ msgid ""
+#~ "see\n"
+#~ "B<pending>.\n"
+#~ "(alias\n"
+#~ "B<pending>,B<\\ sig_pend>)."
+#~ msgstr ""
+#~ "Consultez\n"
+#~ "B<pending>\n"
+#~ "(alias\n"
+#~ "B<pending>,B<\\ sig_pend>)."
+
+#~ msgid ""
+#~ "see\n"
+#~ "B<caught>.\n"
+#~ "(alias\n"
+#~ "B<caught>,B<\\ sig_catch>)."
+#~ msgstr ""
+#~ "Consultez\n"
+#~ "B<caught>\n"
+#~ "(alias\n"
+#~ "B<caught>,B<\\ sig_catch>)."
+
+#~ msgid ""
+#~ "see\n"
+#~ "B<ignored>.\n"
+#~ "(alias\n"
+#~ "B<ignored>,B<\\ sig_ignore>)."
+#~ msgstr ""
+#~ "Consultez\n"
+#~ "B<ignored>\n"
+#~ "(alias\n"
+#~ "B<ignored>,B<\\ sig_ignore>)."
+
+#~ msgid ""
+#~ "see\n"
+#~ "B<blocked>.\n"
+#~ "(alias\n"
+#~ "B<blocked>,B<\\ sig_block>)."
+#~ msgstr ""
+#~ "Consultez\n"
+#~ "B<blocked>\n"
+#~ "(alias\n"
+#~ "B<blocked>,B<\\ sig_block>)."
+
+#~ msgid ""
+#~ "see\n"
+#~ "B<lwp>.\n"
+#~ "(alias\n"
+#~ "B<lwp>,B<\\ tid>)."
+#~ msgstr ""
+#~ "Consultez\n"
+#~ "B<lwp>\n"
+#~ "(alias\n"
+#~ "B<lwp>,B<\\ tid>)."
+
+#~ msgid ""
+#~ "time the command started. If the process was started less than 24 hours "
+#~ "ago,\n"
+#~ "the output format is \"HH:MM:SS\", else it is \"\\ \\ Mmm\\ dd\" (where "
+#~ "Mmm is a\n"
+#~ "three-letter month name). See also\n"
+#~ "B<lstart>,B<\\ bsdstart>,B<\\ start_time>, andB<\\ stime>."
+#~ msgstr ""
+#~ "Heure de démarrage du processus. Si le processus a été démarré dans les "
+#~ "dernières 24\\ heures,\n"
+#~ "le format de sortie est «\\ HH:MM:SS\\ »,\n"
+#~ "sinon il est «\\ \\ \\ Mmm\\ JJ\\ »\n"
+#~ "(où «\\ Mmm\\ » sont les trois premières lettres du mois, en anglais).\n"
+#~ "Consultez aussi\n"
+#~ "B<lstart>,B<\\ bsdstart>,B<\\ start_time> etB<\\ stime>."
+
+#~ msgid ""
+#~ "starting time or date of the process. Only the year will be displayed if "
+#~ "the\n"
+#~ "process was not started the same year\n"
+#~ "B<ps>\n"
+#~ "was invoked, or \"MmmDD\" if it was not started the same day, or \"HH:"
+#~ "MM\"\n"
+#~ "otherwise. See also\n"
+#~ "B<bsdstart>,B<\\ start>,B<\\ lstart>, andB<\\ stime>."
+#~ msgstr ""
+#~ "Heure ou date de démarrage du processus.\n"
+#~ "Seule l'année est affichée si le processus n'a pas été\n"
+#~ "démarré la même année que\n"
+#~ "B<ps>\n"
+#~ "a été appelé,\n"
+#~ "«\\ MmmDD\\ » s'il n'a pas été démarré le même jour\n"
+#~ "ou «\\ HH:MM\\ » sinon.\n"
+#~ "Consultez aussi\n"
+#~ "B<bsdstart>,B<\\ start>,B<\\ lstart> etB<\\ stime>."
+
+#~ msgid ""
+#~ "see\n"
+#~ "B<s>. (aliasB<\\ s>)."
+#~ msgstr ""
+#~ "Consultez\n"
+#~ "B<s> (aliasB<\\ s>)."
+
+#~ msgid ""
+#~ "the unique number representing a dispatchable entity (alias\n"
+#~ "B<lwp>,B<\\ spid>).\n"
+#~ "This value may also appear as: a process ID (pid); a process group ID "
+#~ "(pgrp);\n"
+#~ "a session ID for the session leader (sid); a thread group ID for the "
+#~ "thread\n"
+#~ "group leader (tgid); and a tty process group ID for the process group "
+#~ "leader\n"
+#~ "(tpgid)."
+#~ msgstr ""
+#~ "L'unique nombre représentant l'identifiant d'une entité distribuable\n"
+#~ "(alias\n"
+#~ "B<lwp>,B<\\ spid>).\n"
+#~ "Cette valeur peut aussi apparaître en tant qu'identifiant de processus "
+#~ "(pid),\n"
+#~ "identifiant de groupe de processus (pgrp),\n"
+#~ "identifiant de session du meneur de session (sid),\n"
+#~ "identifiant de groupe de processus léger du meneur de processus léger "
+#~ "(tgid)\n"
+#~ "et identifiant du groupe de processus du meneur de groupe de processus\n"
+#~ "(tpgid)."
+
+#~ msgid ""
+#~ "controlling tty (terminal). (alias\n"
+#~ "B<tt>,B<\\ tty>)."
+#~ msgstr ""
+#~ "tty (terminal) de contrôle\n"
+#~ "(alias\n"
+#~ "B<tt>,B<\\ tty>)."
+
+#~ msgid ""
+#~ "controlling tty (terminal). (alias\n"
+#~ "B<tname>,B<\\ tty>)."
+#~ msgstr ""
+#~ "tty (terminal) de contrôle\n"
+#~ "(alias\n"
+#~ "B<tname>,B<\\ tty>)."
+
+#~ msgid ""
+#~ "controlling tty (terminal). (alias\n"
+#~ "B<tname>,B<\\ tt>)."
+#~ msgstr ""
+#~ "tty (terminal) de contrôle\n"
+#~ "(alias\n"
+#~ "B<tname>,B<\\ tt>)."
+
+#~ msgid ""
+#~ "see\n"
+#~ "B<comm>.\n"
+#~ "(alias\n"
+#~ "B<comm>,B<\\ ucomm>)."
+#~ msgstr ""
+#~ "Consultez\n"
+#~ "B<comm>\n"
+#~ "(alias\n"
+#~ "B<comm>,B<\\ ucomm>)."
+
+#~ msgid ""
+#~ "see\n"
+#~ "B<comm>.\n"
+#~ "(alias\n"
+#~ "B<comm>,B<\\ ucmd>)."
+#~ msgstr ""
+#~ "Consultez\n"
+#~ "B<comm>\n"
+#~ "(alias\n"
+#~ "B<comm>,B<\\ ucmd>)."
+
+#~ msgid ""
+#~ "see\n"
+#~ "B<euser>.\n"
+#~ "(alias\n"
+#~ "B<euser>,B<\\ user>)."
+#~ msgstr ""
+#~ "Consultez\n"
+#~ "B<euser>\n"
+#~ "(alias\n"
+#~ "B<euser>,B<\\ user>)."
+
+#~ msgid ""
+#~ "see\n"
+#~ "B<euser>.\n"
+#~ "(alias\n"
+#~ "B<euser>,B<\\ uname>)."
+#~ msgstr ""
+#~ "Consultez\n"
+#~ "B<euser>\n"
+#~ "(alias\n"
+#~ "B<euser>,B<\\ uname>)."
+
+#~ msgid ""
+#~ "Set to one of posix, old, linux, bsd, sun, digital... (see section "
+#~ "B<PERSONALITY> below)."
+#~ msgstr ""
+#~ "Configurer parmi posix, old, linux, bsd, sun, digital, etc. (consultez ci-"
+#~ "dessous la section B<PERSONNALITÉ>)."
+
+#~ msgid ""
+#~ "B<ps> was originally written by E<.UR lankeste@\\:fwi.\\:uva.\\:nl> "
+#~ "Branko Lankester E<.UE .> E<.UR johnsonm@\\:redhat.\\:com> Michael K. "
+#~ "Johnson E<.UE> re-wrote it significantly to use the proc filesystem, "
+#~ "changing a few things in the process. E<.UR mjshield@\\:nyx.\\:cs.\\:du."
+#~ "\\:edu> Michael Shields E<.UE> added the pid-list feature. E<.UR "
+#~ "cblake@\\:bbn.\\:com> Charles Blake E<.UE> added multi-level sorting, the "
+#~ "dirent-style library, the device name-to-number mmaped database, the "
+#~ "approximate binary search directly on System.map, and many code and "
+#~ "documentation cleanups. David Mossberger-Tang wrote the generic BFD "
+#~ "support for psupdate. E<.UR albert@\\:users.\\:sf.\\:net> Albert Cahalan "
+#~ "E<.UE> rewrote ps for full Unix98 and BSD support, along with some ugly "
+#~ "hacks for obsolete and foreign syntax."
+#~ msgstr ""
+#~ "B<ps> a été initialement écrit par Branko Lankester E<lt>I<lankeste@fwi."
+#~ "uva.nl>E<gt>. Michael K. Johnson E<lt>I<johnsonm@redhat.com>E<gt> l'a "
+#~ "réécrit en profondeur pour utiliser le système de fichiers I<proc>, "
+#~ "modifiant quelques détails au passage. Michael Shields "
+#~ "E<lt>I<mjshield@nyx.cs.du.edu>E<gt> a ajouté la fonctionnalité de liste "
+#~ "de PID. Charles Blake E<lt>I<cblake@bbn.com>E<gt> a ajouté le tri "
+#~ "multiniveau, la bibliothèque « à la dirent », la base de données de "
+#~ "correspondance entre numéro de périphérique et nom, la recherche "
+#~ "approximative binaire directement dans I<System.map>, et beaucoup de "
+#~ "nettoyage de code et de documentation. David Mossberger-Tang a écrit la "
+#~ "prise en charge BFD pour psupdate. Albert Cahalan E<lt>I<albert@users.sf."
+#~ "net>E<gt> a réécrit B<ps> pour prendre en charge complètement Unix98 et "
+#~ "BSD, ainsi que certains bidouillages pour les syntaxes obsolètes et "
+#~ "externes."
+
+#~ msgid ""
+#~ "Please send bug reports to E<.UR procps@\\:freelists.\\:org> E<.UE .> No "
+#~ "subscription is required or suggested."
+#~ msgstr ""
+#~ "Signalez les bogues à E<lt>I<procps@freelists.org>E<gt>. L'inscription "
+#~ "n'est ni nécessaire, ni suggérée."
+
+#~ msgid ""
+#~ "-B<hv>|-B<bcEHiOSs1> -B<d> secs -B<n> max -B<u>|B<U> user -B<p> pid -B<o> "
+#~ "fld -B<w> [cols] "
+#~ msgstr ""
+#~ "-B<hv>|-B<bcEHiOSs1> B<-d> I<délai> B<-n> I<limite> B<-u>|B<U> "
+#~ "I<utilisateur> B<-p> I<PID> B<-o> I<champ> B<-w> [I<colonnes>]"
+
+#~ msgid "October 2019"
+#~ msgstr "Octobre 2019"
+
+#~ msgid "\\ \\ \\ B<=>\\ \\ :I<Exit-Task-Limits >"
+#~ msgstr "\\ \\ \\ B<=>\\ \\ : I<annuler les limites de tâches>"
+
+#~ msgid "\\ \\ \\ B<E>\\ \\ :I<Extend-Memory-Scale> in Summary Area"
+#~ msgstr ""
+#~ "\\ \\ \\ B<E>\\ \\ : I<échelle de mémoire étendue> dans la zone de résumé"
+
+#~ msgid "\\ \\ \\ B<e>\\ \\ :I<Extend-Memory-Scale> in Task Windows"
+#~ msgstr ""
+#~ "\\ \\ \\ B<e>\\ \\ : I<échelle de mémoire étendue> dans les fenêtres de "
+#~ "tâches"
+
+#~ msgid ""
+#~ "With this command you can cycle through the available \\*(TW memory "
+#~ "scaling which ranges from KiB (kibibytes or 1,024 bytes) through PiB "
+#~ "(pebibytes or 1,125,899,906,842,624 bytes)."
+#~ msgstr ""
+#~ "Avec cette commande, chacune des échelles disponibles de mémoire de la "
+#~ "\\*(TW peut être choisie, du Kio (kibioctet, soit 1 024 octets) au Pio "
+#~ "(pébioctet, soit 1 125 899 906 842 624 octets)."
+
+#~ msgid ""
+#~ "You will be invited to enter a number representing a NUMA Node. "
+#~ "Thereafter, a node summary plus the statistics for each cpu in that node "
+#~ "will be shown until either the `1' or `2' \\*(CT is pressed. This \\*(CI "
+#~ "is only available if a system has the requisite NUMA support."
+#~ msgstr ""
+#~ "Vous invite à introduire un nombre représentant un nœud NUMA. Ensuite, un "
+#~ "résumé du nœud et les statistiques pour chaque processeur de ce nœud "
+#~ "seront montrés jusqu'à ce que la \\*(CT « 1 » ou « 2 » soit saisie. Cette "
+#~ "\\*(CI n'est disponible que si le système prend en charge NUMA."
+
+#~ msgid "*\\ \\ B<=> | B<+>\\ \\ :I<Equalize-(reinitialize)-Window(s) >"
+#~ msgstr "*\\ \\ B<=> | B<+>\\ \\ : I<égaliser (réinitialiser) les fenêtres>"
+
+#~ msgid ""
+#~ "The `+' key does the same for all windows. The four \\*(TDs will "
+#~ "reappear, evenly balanced. They will also have retained any "
+#~ "customizations you had previously applied, except for the `i' (idle "
+#~ "tasks), `n' (max tasks), `u/U' (user filter), `o/O' (other filter), "
+#~ "`v' (hide children), `L' (locate) and scrolling \\*(CIs."
+#~ msgstr ""
+#~ "La touche «\\ +\\ » a le même effet sur toutes les fenêtres. Les quatre "
+#~ "zones d'affichage des tâches réapparaîtront avec des tailles équilibrées. "
+#~ "Elles conserveront également toutes les options que vous avez "
+#~ "paramétrées, à l'exception des commandes interactives «\\ i\\ » (tâches "
+#~ "en veille), «\\ n\\ » (nombre maximal de tâches), « u » ou « U » (filtre "
+#~ "utilisateur), « o » ou « O » (autre filtre), « v » (masquer les enfants), "
+#~ "« L » (localiser) et déplacement."
+
+#~ msgid "May 2018"
+#~ msgstr "Mai 2018"
+
+#~ msgid ""
+#~ " I< key equivalent-key-combinations >\n"
+#~ " Up alt +B< \\e> or alt +B< k >\n"
+#~ " Down alt +B< /> or alt +B< j >\n"
+#~ " Left alt +B< E<lt>> or alt +B< h >\n"
+#~ " Right alt +B< E<gt>> or alt +B< l >(lower case L)\n"
+#~ " PgUp alt +B< Up> or alt + ctrl +B< k >\n"
+#~ " PgDn alt +B< Down> or alt + ctrl +B< j >\n"
+#~ " Home alt +B< Left> or alt + ctrl +B< h >\n"
+#~ " End alt +B< Right> or alt + ctrl +B< l >\n"
+#~ msgstr ""
+#~ " I<touche combinaisons équivalentes de touches>\n"
+#~ " Haut alt +B< \\e> ou Alt +B< k >\n"
+#~ " Bas alt +B< /> ou Alt +B< j >\n"
+#~ " Gauche alt +B< E<lt>> ou Alt +B< h >\n"
+#~ " Droite alt +B< E<gt>> ou Alt +B< l> (L minuscule)\n"
+#~ " Pg.Préc alt +B< Haut> ou Alt + Ctrl + B<k>\n"
+#~ " Pg.Suiv alt +B< Bas> ou Alt + Ctrl + B<j>\n"
+#~ " Orig alt +B< Gauche> ou Alt + Ctrl + B<h>\n"
+#~ " Fin alt +B< Droite> ou Alt + Ctrl + B<l>\n"
+
+#~ msgid ""
+#~ " 4a.I< Global-Commands >\n"
+#~ " E<lt>Ent/SpE<gt> ?, =, 0,\n"
+#~ " A, B, d, E, e, g, h, H, I, k, q, r, s, W, X, Y, Z\n"
+#~ " 4b.I< Summary-Area-Commands >\n"
+#~ " C, l, t, m, 1, 2, 3\n"
+#~ " 4c.I< Task-Area-Commands >\n"
+#~ " Appearance: b, J, j, x, y, z\n"
+#~ " Content: c, f, F, o, O, S, u, U, V\n"
+#~ " Size: #, i, n\n"
+#~ " Sorting: E<lt>, E<gt>, f, F, R\n"
+#~ " 4d.I< Color-Mapping >\n"
+#~ " E<lt>RetE<gt>, a, B, b, H, M, q, S, T, w, z, 0 - 7\n"
+#~ " 5b.I< Commands-for-Windows >\n"
+#~ " -, _, =, +, A, a, g, G, w\n"
+#~ " 5c.I< Scrolling-a-Window >\n"
+#~ " C, Up, Dn, Left, Right, PgUp, PgDn, Home, End\n"
+#~ " 5d.I< Searching-in-a-Window >\n"
+#~ " L, &\n"
+#~ msgstr ""
+#~ " 4a.I< Commandes GLOBALES>\n"
+#~ " E<lt>Entrée/EspaceE<gt> ?, =, 0,\n"
+#~ " A, B, d, E, e, g, h, H, I, k, q, r, s, W, X, Y, Z\n"
+#~ " 4b.I< Commandes de la ZONE de RÉSUMÉ>\n"
+#~ " C, l, t, m, 1, 2, 3\n"
+#~ " 4c.I< Commandes de la ZONE de TÂCHES>\n"
+#~ " Apparence : b, J, j, x, y, z\n"
+#~ " Contenu : c, f, F, o, O, S, u, U, V\n"
+#~ " Taille : #, i, n\n"
+#~ " Tri : E<lt>, E<gt>, f, F, R\n"
+#~ " 4d.I< Palette de COULEURS>\n"
+#~ " E<lt>EntréeE<gt>, a, B, b, H, M, q, S, T, w, z, 0 - 7\n"
+#~ " 5b.I< COMMANDES de fenêtrage>\n"
+#~ " -, _, =, +, A, a, g, G, w\n"
+#~ " 5c. I<DÉPLACEMENT dans une fenêtre>\n"
+#~ " C, Haut, Bas, Gauche, Droite, Pg.Préc, Pg.Suiv, Orig, Fin\n"
+#~ " 5d. I<RECHERCHE dans une fenêtre>\n"
+#~ " L, &\n"
+
+#~ msgid ""
+#~ "Removes restrictions on which tasks are shown. This command will reverse "
+#~ "any `i' (idle tasks) and `n' (max tasks) commands that might be active. "
+#~ "It also provides for an exit from PID monitoring, User filtering, Other "
+#~ "filtering and Locate processing. See the `-p' \\*(CO for a discussion of "
+#~ "PID monitoring, the `U' or `u' \\*(CIs for User filtering the `O' or `o' "
+#~ "\\*(CIs for Other filtering and `L' or `&' \\*(CIs for Locate processing."
+#~ msgstr ""
+#~ "Enlève les restrictions sur les tâches qui sont affichées. Cette commande "
+#~ "inverse chaque commande «\\ i\\ » (tâches en veille) et «\\ n\\ » (nombre "
+#~ "maximal de tâches) qui peuvent être actives. Elle fournit aussi un moyen "
+#~ "d'arrêter la surveillance d'un PID, le filtrage « utilisateur », "
+#~ "« autre » filtrage et le traitement de « localiser ». Consultez l'\\*(CO "
+#~ "«\\ -p\\ » décrivant la surveillance de PID, les commandes interactives "
+#~ "« U » ou « u » pour le filtrage d'utilisateur, les commandes interactives "
+#~ "« O » ou « o » pour l'« autre » filtrage et les commandes interactives "
+#~ "« L » ou « & » pour ltraitement de « localiser »."
+
+#~ msgid ""
+#~ "Additionally, any window that has been scrolled will be reset with this "
+#~ "command. \\*(XT 5c. SCROLLING a Window for additional information "
+#~ "regarding vertical and horizontal scrolling."
+#~ msgstr ""
+#~ "De plus, après navigation, toutes les fenêtres seront réinitialisées avec "
+#~ "cette commande. \\*(XT B<5c. DÉPLACEMENT dans une fenêtre> pour de plus "
+#~ "amples renseignements sur les déplacements verticaux et horizontaux."
+
+#~ msgid "When operating in \\*(AM this command has a broader meaning."
+#~ msgstr "En opérant en \\*(AM, la portée de cette commande est plus étendue."
+
+#~ msgid ""
+#~ "The `=' key forces the \\*(CW's \\*(TD to be visible. It also reverses "
+#~ "any `i' (idle tasks), `n' (max tasks), `u/U' (user filter), \\`o/"
+#~ "O' (other filter) and 'L' (locate) commands that might be active. Also, "
+#~ "if the window had been scrolled, it will be reset with this command. "
+#~ "\\*(XT 5c. SCROLLING a Window for additional information regarding "
+#~ "vertical and horizontal scrolling."
+#~ msgstr ""
+#~ "La touche «\\ =\\ » force l'\\*(TD de la \\*(CW à être visible. Elle "
+#~ "inverse aussi toutes les commandes «\\ i\\ » (tâches en veille), «\\ n\\ "
+#~ "» (nombre maximal de tâches), « u » ou « U » (filtre utilisateur) et "
+#~ "« o » ou « O » (autre filtre) et « L » (localiser) qui peuvent être "
+#~ "actives. De plus, après navigation, la fenêtre sera réinitialisée avec "
+#~ "cette commande. \\*(XT B<5c. DÉPLACEMENT dans une fenêtre> pour de plus "
+#~ "amples renseignements sur les déplacements verticaux et horizontaux."
+
+#~ msgid ""
+#~ "The `+' key does the same for all windows. The four \\*(TDs will "
+#~ "reappear, evenly balanced. They will also have retained any "
+#~ "customizations you had previously applied, except for the `i' (idle "
+#~ "tasks), `n' (max tasks), `u/U' (user filter), `o/O' (other filter), "
+#~ "`L' (locate) and scrolling \\*(CIs."
+#~ msgstr ""
+#~ "La touche «\\ +\\ » a le même effet sur toutes les fenêtres. Les quatre "
+#~ "zones d'affichage des tâches réapparaîtront avec des tailles équilibrées. "
+#~ "Elles conserveront également toutes les options que vous avez "
+#~ "paramétrées, à l'exception des commandes interactives «\\ i\\ » (tâches "
+#~ "en veille), «\\ n\\ » (nombre maximal de tâches), « u » ou « U » (filtre "
+#~ "utilisateur), « o » ou « O » (autre filtre), « L » (localiser) et "
+#~ "déplacement."
+
+#~ msgid ""
+#~ "You can use this Other Filter feature to establish selection criteria "
+#~ "which will then determine which tasks are shown in the \\*(CW."
+#~ msgstr ""
+#~ "La fonctionnalité « autre filtre » permet d'établir des critères de "
+#~ "sélection qui détermineront ensuite les tâches montrées dans la \\*(CW."
+
+#~ msgid ""
+#~ " global # line 1: the program name/alias notation\n"
+#~ " \" # line 2: id,altscr,irixps,delay,curwin\n"
+#~ " per ea # line a: winname,fieldscur\n"
+#~ " window # line b: winflags,sortindx,maxtasks,graph modes\n"
+#~ " \" # line c: summclr,msgsclr,headclr,taskclr\n"
+#~ " global # line 15: additional miscellaneous settings\n"
+#~ " \" # any remaining lines are devoted to the\n"
+#~ " \" # generalized inspect provisions\n"
+#~ " \" # discussed below\n"
+#~ msgstr ""
+#~ " global # ligne 1 : nom du programme ou nom d'alias\n"
+#~ " \" # ligne 2 : id,altscr,irixps,delay,curwin\n"
+#~ " par # ligne a : winname,fieldscur\n"
+#~ " fenêtre # ligne b : winflags,sortindx,maxtasks\n"
+#~ " \" # ligne c : summclr,msgsclr,headclr,taskclr\n"
+#~ " global # ligne 15 : divers réglages supplémentaires\n"
+#~ " \" # toutes les lignes restantes sont\n"
+#~ " \" # consacrées aux dispositions d'« inspection »\n"
+#~ " \" # généralisées présentées ci-dessous\n"
+
+#~ msgid ""
+#~ "If a valid absolute path to the rcfile cannot be established, "
+#~ "customizations made to a running \\*We will be impossible to preserve."
+#~ msgstr ""
+#~ "Si un chemin absolu valable vers le fichier I<rc> ne peut pas être "
+#~ "établi, les personnalisations faites pour exécuter \\*(WE ne pourront pas "
+#~ "être préservées."
+
+#~ msgid ""
+#~ "B<Caution>: If any inspect entry you create produces output with "
+#~ "unprintable characters they will be displayed in either the ^C notation "
+#~ "or hexadecimal E<lt>FFE<gt> form, depending on their value. This applies "
+#~ "to tab characters as well, which will show as `^I'. If you want a truer "
+#~ "representation, any embedded tabs should be expanded."
+#~ msgstr ""
+#~ "B<Attention> : si une entrée d'inspection créée produit une sortie avec "
+#~ "des caractères non affichables, ils seront affichés soit en notation ^C, "
+#~ "soit sous forme hexadécimale E<lt>FFE<gt>, en fonction de leur valeur. "
+#~ "Cela concerne aussi les caractères de tabulation qui seront affichés "
+#~ "comme « ^I ». Pour une représentation plus réaliste, toutes les "
+#~ "tabulations incorporées devraient être développées."
+
+#~ msgid ""
+#~ "The above example takes what could have been a `file' entry but employs a "
+#~ "`pipe' instead so as to expand the embedded tabs."
+#~ msgstr ""
+#~ "L'exemple précédent prend ce qui aurait dû être une entrée « fichier » "
+#~ "mais utilise un « pipe » à la place, afin de développer les tabulations "
+#~ "incorporées."
+
+#~ msgid ""
+#~ "\\*(NT While `B<pipe>' type entries have been discussed in terms of "
+#~ "pipelines and commands, there is nothing to prevent you from including I< "
+#~ "shell scripts> as well. Perhaps even newly created scripts designed "
+#~ "specifically for the `Y' \\*(CI."
+#~ msgstr ""
+#~ "\\*(NT même si les entrées de type « B<pipe> » ont été présentées en tant "
+#~ "que tubes et commandes, rien n'empêche d'inclure aussi des I<scripts "
+#~ "d'interpréteur>. Peut-être même de nouveaux scripts conçus spécifiquement "
+#~ "pour la \\*(CI « Y »."
+
+#~ msgid ""
+#~ "Lastly, as the number of your Inspect entries grows over time, the "
+#~ "`Options:' row will be truncated when screen width is exceeded. That "
+#~ "does not affect operation other than to make some selections invisible."
+#~ msgstr ""
+#~ "Enfin, comme le nombre d'entrées d'inspection augmente au fur et à "
+#~ "mesure, la ligne « Options: » sera tronquée quand la largeur d'écran est "
+#~ "dépassée. Cela ne concerne pas les opérations à part rendre certaines "
+#~ "sélections invisibles."
+
+#~ msgid ""
+#~ "However, if some choices are lost to truncation but you want to see more "
+#~ "options, there is an easy solution hinted at below."
+#~ msgstr ""
+#~ "Cependant, si certains choix sont perdus à la troncature et que vous "
+#~ "désirez voir plus d'options, une solution facile est proposée ci-dessous."
+
+#~ msgid "September 2011"
+#~ msgstr "septembre 2011"
+
+#~ msgid "May 2012"
+#~ msgstr "mai 2012"
+
+#~ msgid "2018-03-03"
+#~ msgstr "03-03-2018"
diff --git a/po-man/fr/free.1 b/po-man/fr/free.1
new file mode 100644
index 0000000..f9b2c80
--- /dev/null
+++ b/po-man/fr/free.1
@@ -0,0 +1,170 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2003 Albert Cahalan
+.\" Copyright (c) 1993 Matt Welsh <mdw@sunsite.unc.edu>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH FREE 1 2023\-05\-02 procps\-ng "Commandes de l'utilisateur"
+.SH NOM
+free \- Afficher la quantité de mémoire libre et utilisée du système
+.SH SYNOPSIS
+\fBfree\fP [\fIoptions\fP]
+.SH DESCRIPTION
+\fBfree\fP affiche la quantité totale de mémoire physique et d'espace d'échange
+libre et utilisée par le système, ainsi que les tampons et caches utilisés
+par le noyau. Les renseignements sont rassemblés en analysant
+\fI/proc/meminfo\fP. Les colonnes affichées sont les suivantes.
+.TP
+\fBtotal\fP
+Total usable memory (MemTotal and SwapTotal in /proc/meminfo). This includes
+the physical and swap memory minus a few reserved bits and kernel binary
+code.
+.TP
+\fBused\fP
+Used or unavailable memory (calculated as \fBtotal\fP \- \fBavailable\fP)
+.TP
+\fBfree\fP
+Mémoire inutilisée (MemFree et SwapFree dans \fI/proc/meminfo\fP)
+.TP
+\fBshared\fP
+Mémoire utilisée surtout par tmpfs (Shmem dans \fI/proc/meminfo\fP)
+.TP
+\fBbuffers\fP
+Mémoire utilisée par les tampons du noyau (Buffers dans \fI/proc/meminfo\fP)
+.TP
+\fBcache\fP
+Mémoire utilisée par le cache de page et les slabs (Cached et SReclaimable
+dans \fI/proc/meminfo\fP)
+.TP
+\fBbuff/cache\fP
+Somme de \fBbuffers\fP et \fBcache\fP
+.TP
+\fBavailable\fP
+Estimation de la quantité de mémoire disponible pour le démarrage de
+nouvelles applications, sans utiliser l’espace d’échange. Contrairement aux
+données fournies par les champs \fBcache\fP ou \fBfree\fP, ce champ tient compte
+du cache de page et aussi du fait que tous les slabs de mémoire récupérables
+seront récupérés à cause des éléments utilisés (MemAvailable dans
+\fI/proc/meminfo\fP, disponible à partir du noyau\ 3.14, émulé à partir du
+noyau\ 2.6.27, sinon identique à \fBfree\fP)
+.SH OPTIONS
+.TP
+\fB\-b\fP, \fB\-\-bytes\fP
+Afficher la quantité de mémoire en octets.
+.TP
+\fB\-k\fP, \fB\-\-kibi\fP
+Afficher la quantité de mémoire en kibioctets. Il s'agit du comportement par
+défaut.
+.TP
+\fB\-m\fP, \fB\-\-mebi\fP
+Afficher la quantité de mémoire en mébioctets.
+.TP
+\fB\-g\fP, \fB\-\-gibi\fP
+Afficher la quantité de mémoire en gibioctets.
+.TP
+\fB\-\-tebi\fP
+Afficher la quantité de mémoire en tébioctets.
+.TP
+\fB\-\-pebi\fP
+Afficher la quantité de mémoire en pébioctets.
+.TP
+\fB\-\-kilo\fP
+Afficher la quantité de mémoire en kilooctets. Implique \-\-si.
+.TP
+\fB\-\-mega\fP
+Afficher la quantité de mémoire en mégaoctets. Implique \-\-si.
+.TP
+\fB\-\-giga\fP
+Afficher la quantité de mémoire en gigaoctets. Implique \-\-si.
+.TP
+\fB\-\-tera\fP
+Afficher la quantité de mémoire en téraoctets. Implique \-\-si.
+.TP
+\fB\-\-peta\fP
+Afficher la quantité de mémoire en pétaoctets. Implique \-\-si.
+.TP
+\fB\-h\fP, \fB\-\-human\fP
+Montrer tous les champs automatiquement à l'échelle la plus appropriée\ : le
+plus petit nombre à trois chiffres affiché avec l'unité. Les unités
+suivantes sont utilisées.
+.sp
+.nf
+ B = octets
+ Ki = kibioctets
+ Mi = mébioctets
+ Gi = gibioctets
+ Ti = tébioctets
+ Pi = pébioctets
+.fi
+.sp
+En l'absence d'unité, pour des quantités de l'ordre du exaoctet de RAM ou
+d'espace d'échange, le nombre est en tébioctet et les colonnes risquent de
+ne pas être alignées avec l'en\-tête.
+.TP
+\fB\-w\fP, \fB\-\-wide\fP
+Basculer en mode large. Le mode large produit des lignes plus grandes que
+80\ caractères. Dans ce mode, \fBbuffers\fP et \fBcache\fP sont affichés en deux
+colonnes séparées.
+.TP
+\fB\-c\fP, \fB\-\-count\fP \fIcompte\fP
+Afficher le résultat \fIcompte\fP fois. Nécessite l'option \fB\-s\fP.
+.TP
+\fB\-l\fP, \fB\-\-lohi\fP
+Afficher les statistiques détaillées pour la mémoire basse et la mémoire
+haute.
+.TP
+\fB\-L\fP, \fB\-\-line\fP
+Show output on a single line, often used with the \fB\-s\fP option to show
+memory statistics repeatedly.
+.TP
+\fB\-s\fP, \fB\-\-seconds\fP \fIdélai\fP
+Afficher le résultat en continu toutes les \fIdélai\fP secondes. Vous pouvez
+indiquer une valeur décimale pour \fIdélai\fP avec un point ou une virgule
+décimale. \fBusleep\fP(3) est utilisé pour obtenir un délai avec une résolution
+en microseconde.
+.TP
+\fB\-\-si\fP
+Utiliser kilo, mega, giga, etc (puissances de 1000) au lieu de kibi, mebi,
+gibi (puissances de 1024).
+.TP
+\fB\-t\fP, \fB\-\-total\fP
+Afficher une ligne contenant les quantités totales des colonnes.
+.TP
+\fB\-v\fP, \fB\-\-committed\fP
+Display a line showing the memory commit limit and amount of
+committed/uncommitted memory. The \fBtotal\fP column on this line will display
+the memory commit limit. This line is relevant if memory overcommit is
+disabled.
+.TP
+\fB\-\-help\fP
+Afficher l'aide.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Afficher les informations de version.
+.PD
+.SH FICHIERS
+.TP
+\fI/proc/meminfo\fP
+Renseignements sur la mémoire
+.PD
+.SH BOGUES
+La valeur de la colonne \fBshared\fP n'est pas disponible pour les noyaux
+antérieurs à la version 2.6.32 (affiche zéro à la place).
+.TP
+Veuillez signaler les bogues à
+.UR procps@freelists.org
+.UE
+.SH "VOIR AUSSI"
+\fBps\fP(1), \fBslabtop\fP(1), \fBtop\fP(1), \fBvmstat\fP(8)
diff --git a/po-man/fr/kill.1 b/po-man/fr/kill.1
new file mode 100644
index 0000000..5ae77e4
--- /dev/null
+++ b/po-man/fr/kill.1
@@ -0,0 +1,91 @@
+.\"
+.\" Copyright (c) 2002-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1998-2003 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH KILL 1 2023\-01\-16 procps\-ng "Commandes de l'utilisateur"
+.SH NOM
+kill \- Envoyer un signal à un processus
+.SH SYNOPSIS
+\fBkill\fP [\fIoptions\fP] \fIPID\fP [...]
+.SH DESCRIPTION
+Le \fIsignal\fP par défaut de \fBkill\fP est \fBTERM\fP. Les options \fB\-l\fP et \fB\-L\fP
+affichent les signaux disponibles. Les signaux particulièrement utiles sont
+\fBHUP\fP, \fBINT\fP, \fBKILL\fP, \fBSTOP\fP, \fBCONT\fP et \fB0\fP. Les signaux peuvent être
+indiqués de 3 façons différentes\ : \fB\-9\fP \fB\-SIGKILL\fP \fB\-KILL\fP. Une valeur de
+\fIPID\fP négative peut être utilisée pour sélectionner des groupes de
+processus tout entiers\ ; regardez la colonne PGID de la sortie de la
+commande \fBps\fP. Un \fIPID\fP de valeur \fB\-1\fP est particulier\ : il indique tous
+les processus sauf le processus \fBkill\fP lui\-même et \fBinit\fP.
+.SH OPTIONS
+.TP
+\fIPID\fP [...]
+Envoyer un signal à tous les \fIPID\fP indiqués.
+.TP
+\fB\-\fP\fIsignal\fP
+.TQ
+\fB\-s\fP \fIsignal\fP
+.TQ
+\fB\-\-signal\fP \fIsignal\fP
+Indiquer le \fIsignal\fP à envoyer. Le signal peut être indiqué en utilisant un
+nom ou un nombre. Le comportement du signal est expliqué dans la page de
+manuel \fBsignal\fP(7).
+.TP
+\fB\-q\fP, \fB\-\-queue \fP\fIvaleur\fP
+Use \fBsigqueue\fP(3) rather than \fBkill\fP(2) and the value argument is used
+to specify an integer to be sent with the signal. If the receiving process
+has installed a handler for this signal using the SA_SIGINFO flag to
+\fBsigaction\fP(2), then it can obtain this data via the si_value field of the
+siginfo_t structure.
+.TP
+\fB\-l\fP, \fB\-\-list\fP [\fIsignal\fP]
+Afficher les noms de signaux. Cette option a un paramètre facultatif qui
+sera converti en nom de signal, s'il s'agit d'un numéro de signal, et vice
+versa.
+.TP
+\fB\-L\fP, \fB\-\-table\fP
+Afficher les noms de signaux en un tableau bien présenté.
+.TP
+.PD
+.SH NOTES
+Votre interpréteur de commandes possède probablement une commande kill
+interne. Vous devriez saisir /bin/kill pour exécuter la commande décrite ici
+au lieu de la commande interne.
+.SH EXEMPLES
+.TP
+\fBkill \-9 \-1\fP
+Tuer tous les processus possibles.
+.TP
+\fBkill \-l 11\fP
+Traduire le nombre 11 en nom de signal.
+.TP
+\fBkill \-L\fP
+Afficher les choix de signaux disponibles en un tableau bien présenté.
+.TP
+\fBkill 123 543 2341 3453\fP
+Envoyer le signal \fBSIGTERM\fP par défaut à tous ces processus.
+.SH "VOIR AUSSI"
+\fBkill\fP(2), \fBkillall\fP(1), \fBnice\fP(1), \fBpkill\fP(1), \fBrenice\fP(1),
+\fBsignal\fP(7), \fBsigqueue\fP(3), \fBskill\fP(1)
+.SH STANDARDS
+This command meets appropriate standards. The \fB\-L\fP flag is Linux\-specific.
+.SH AUTEUR
+.UR albert@users.sf.net
+Albert Cahalan
+.UE
+wrote kill in 1999 to
+replace a bsdutils one that was not standards compliant. The util\-linux one
+might also work correctly.
+.SH BOGUES
+Signalez les bogues à <\fIprocps@freelists.org\fP>
diff --git a/po-man/fr/pmap.1 b/po-man/fr/pmap.1
new file mode 100644
index 0000000..ad9fa7f
--- /dev/null
+++ b/po-man/fr/pmap.1
@@ -0,0 +1,96 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2013 Jaromir Capik <jcapik@redhat.com>
+.\" Copyright (c) 1998-2002 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\" (The preceding line is a note to broken versions of man to tell
+.\" them to pre-process this man page with tbl)
+.\" Man page for pmap.
+.\" Licensed under version 2 of the GNU General Public License.
+.\" Written by Albert Cahalan.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PMAP 1 2020\-06\-04 procps\-ng "Commandes de l'utilisateur"
+.SH NOM
+pmap \- Afficher l'empreinte mémoire d'un processus
+.SH SYNOPSIS
+\fBpmap\fP [\fIoptions\fP] \fIPID\fP [...]
+.SH DESCRIPTION
+La commande \fBpmap\fP affiche l'empreinte mémoire d'un ou plusieurs processus.
+.SH OPTIONS
+.TP
+\fB\-x\fP, \fB\-\-extended\fP
+Afficher la sortie au format étendu.
+.TP
+\fB\-d\fP, \fB\-\-device\fP
+Afficher la sortie au format périphérique.
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+Ne pas afficher certaines lignes d'en\-tête ou de pied de page.
+.TP
+\fB\-A\fP, \fB\-\-range\fP \fIbas\fP\fB,\fP\fIhaut\fP
+Restreindre les résultats à l'intervalle d'adresses comprises entre \fIbas\fP
+et \fIhaut\fP. Remarquez que les paramètres \fIbas\fP et \fIhaut\fP sont de simples
+chaînes séparées par une virgule.
+.TP
+\fB\-X\fP
+Afficher encore plus de précisions qu'avec l'option \fB\-x\fP. Attention, le
+format change en fonction de \fI/proc/PID/smaps\fP.
+.TP
+\fB\-XX\fP
+Afficher tout ce que le noyau fournit.
+.TP
+\fB\-p\fP, \fB\-\-show\-path\fP
+Montrer le chemin complet vers les fichiers dans la colonne de
+correspondance.
+.TP
+\fB\-c\fP, \fB\-\-read\-rc\fP
+Lire la configuration par défaut.
+.TP
+\fB\-C\fP, \fB\-\-read\-rc\-from\fP \fIfichier\fP
+Lire le fichier de configuration \fIfichier\fP.
+.TP
+\fB\-n\fP, \fB\-\-create\-rc\fP
+Créer une nouvelle configuration par défaut.
+.TP
+\fB\-N\fP, \fB\-\-create\-rc\-to\fP \fIfichier\fP
+Créer une nouvelle configuration dans \fIfichier\fP.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Afficher l'aide et quitter.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Afficher la version du logiciel et quitter.
+.SH "CODES DE RETOUR"
+.PP
+.RS
+.PD 0
+.TP
+\fB0\fP
+Réussite.
+.TP
+\fB1\fP
+Échec.
+.TP
+\fB42\fP
+Les processus demandés n'ont pas tous été trouvés.
+.PD
+.RE
+.SH "VOIR AUSSI"
+\fBps\fP(1), \fBpgrep\fP(1)
+.SH STANDARDS
+Aucune norme n'est respectée mais \fBpmap\fP ressemble fortement à une commande
+SunOS.
+.SH BOGUES
+Signalez les bogues à <\fIprocps@freelists.org\fP>
diff --git a/po-man/fr/ps.1 b/po-man/fr/ps.1
new file mode 100644
index 0000000..985730e
--- /dev/null
+++ b/po-man/fr/ps.1
@@ -0,0 +1,1938 @@
+.\"
+.\" Copyright (c) 2004-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1998-2003 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PS 1 2023\-08\-19 procps\-ng "Commandes de l'utilisateur"
+.\"
+.\" Ragged-right text.
+.na
+.\" Disable hyphenation.
+.nh
+.\"
+.\" ColSize is used for the format spec table.
+.\" It's the left margin, minus the right, minus
+.\" the space needed for the 1st two columns.
+.\" Making it messy: inches, ens, points, scaled points...
+.\"
+.nr ColSize ((\n[.l] - \n[.i]) / 1n - 29)
+.\"
+.SH NOM
+ps \- Présenter un cliché instantané des processus en cours
+.SH SYNOPSIS
+\fBps\fP [\,\fIoptions\/\fP]
+.SH DESCRIPTION
+\fBps\fP displays information about a selection of the active processes. If
+you want a repetitive update of the selection and the displayed information,
+use \fBtop\fP instead.
+.P
+Cette version de \fBps\fP accepte plusieurs types d'options\ :
+.IP
+.PD 0
+.IP 1 4
+les options UNIX qui peuvent être regroupées et qui doivent être précédées
+d'un tiret\ ;
+.IP 2 4
+les options BSD qui peuvent être regroupées et qui ne doivent pas être
+utilisées avec un tiret\ ;
+.IP 3 4
+les options GNU de forme longue qui doivent être précédées de deux tirets.
+.PD
+.PP
+Les options de différents types peuvent être mélangées, mais des conflits
+peuvent apparaître. Certaines options sont synonymes (fonctionnellement
+identiques) à cause des différentes normes et implémentations de \fBps\fP avec
+lesquelles ce \fBps\fP est compatible.
+.P
+Par défaut, \fBps\fP sélectionne tous les processus avec le même identifiant
+utilisateur effectif (euid=EUID) que l'utilisateur en cours et associés au
+même terminal que l'appelant. Il affiche l'identifiant de processus
+(pid=PID), le terminal associé au processus (tname=TTY), le temps CPU cumulé
+au format [JJ\-]HH:MM:SS (time=TIME) et le nom de l'exécutable (ucmd=CMD). La
+sortie n'est pas ordonnée par défaut.
+.P
+L'utilisation d'options «\ à la BSD\ » ajoutera l'état du processus
+(stat=STAT) à l'affichage par défaut et montrera les arguments de commande
+(args=COMMAND) au lieu du nom de l'exécutable. La variable d'environnement
+\fBPS_FORMAT\fP permet de modifier ce comportement. L'utilisation d'options «\ à
+la BSD\ » modifiera également la sélection de processus pour inclure les
+processus d'autres terminaux (TTY) vous appartenant\ ; autrement dit, il
+s'agit de la sélection de tous les processus, filtrés pour exclure les
+processus appartenant aux autres utilisateurs ou en dehors d'un
+terminal. Ces effets ne sont pas pris en compte pour les options décrites
+ci\-dessous comme «\ identiques\ », donc \fB\-M\fP sera considérée identique à \fBZ\fP
+et ainsi de suite.
+.P
+Aux exceptions près décrites ci\-dessous, les options de sélection de
+processus sont cumulatives. La sélection par défaut est supprimée, puis les
+processus sélectionnés sont ajoutés à l'ensemble des processus à
+afficher. Un processus sera donc montré s'il satisfait n'importe quel
+critère de sélection donné.
+.SH EXEMPLES
+.TP 3
+Pour voir tous les processus du système en utilisant la syntaxe traditionnelle\ :
+\fBps\ \-e\fP
+.br
+\fBps\ \-ef\fP
+.br
+\fBps\ \-eF\fP
+.br
+\fBps\ \-ely\fP
+.TP
+Pour voir tous les processus du système en utilisant la syntaxe BSD\ :
+\fBps\ ax\fP
+.br
+\fBps\ axu\fP
+.TP
+Pour afficher une arborescence des processus\ :
+\fBps\ \-ejH\fP
+.br
+\fBps\ axjf\fP
+.TP
+Pour obtenir des renseignements sur les processus légers («\ threads\ »)\ :
+\fBps\ \-eLf\fP
+.br
+\fBps\ axms\fP
+.TP
+Pour obtenir des renseignements de sécurité\ :
+\fBps\ \-eo euser,ruser,suser,fuser,f,comm,label\fP
+.br
+\fBps\ axZ\fP
+.br
+\fBps\ \-eM\fP
+.TP
+Pour voir tous les processus exécutés en tant que superutilisateur (identifiant réel et effectif) au format utilisateur\ :
+\fBps\ \-U\ root\ \-u\ root\ u\fP
+.TP
+Pour voir tous les processus avec un format défini par l'utilisateur\ :
+\fBps\ \-eo\ pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm\fP
+.br
+\fBps\ axo\ stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm\fP
+.br
+\fBps\ \-Ao\ pid,tt,user,fname,tmout,f,wchan\fP
+.TP
+N'afficher que le PID de syslogd\ :
+\fBps\ \-C\ syslogd\ \-o\ pid=\fP
+.TP
+Afficher uniquement le nom du PID\ 42\ :
+\fBps\ \-q\ 42\ \-o\ comm=\fP
+.SH "SÉLECTION SIMPLE DES PROCESSUS"
+.TP
+\fBa\fP
+Lever la restriction «\ seulement vous\ » du style BSD, qui est imposée sur
+l'ensemble des processus si des options «\ à la BSD\ » (sans «\ \-\ ») sont
+utilisées ou si la personnalité de \fBps\fP est configurée «\ à la
+BSD\ ». L'ensemble des processus sélectionnés de cette façon est ajouté à
+l'ensemble des processus sélectionnés autrement. Autrement dit, cette option
+conduit \fBps\fP à énumérer tous les processus avec un terminal (tty) ou
+énumérer tous les processus lorsqu'elle est utilisée avec l'option \fBx\fP.
+.TP
+\fB\-A\fP
+Sélectionner tous les processus. Identique à \fB\-e\fP.
+.TP
+\fB\-a\fP
+Sélectionner tous les processus sauf les meneurs de session (consultez
+\fBgetsid\fP(2)) et les processus non associés à un terminal.
+.TP
+\fB\-d\fP
+Sélectionner tous les processus sauf les meneurs de session.
+.TP
+\fB\-\-deselect\fP
+Sélectionner tous les processus sauf ceux qui remplissent les conditions
+indiquées (inverse la sélection). Identique à \fB\-N\fP.
+.TP
+\fB\-e\fP
+.\" Current "g" behavior: add in the session leaders, which would
+.\" be excluded in the sunos4 personality. Supposed "g" behavior:
+.\" add in the group leaders -- at least according to the SunOS 4
+.\" man page on the FreeBSD site. Uh oh. I think I had tested SunOS
+.\" though, so maybe the code is correct.
+Sélectionner tous les processus. Identique à \fB\-A\fP.
+.TP
+\fBg\fP
+Vraiment tout, même les meneurs de session. Cette option est obsolète et
+peut disparaître des prochaines publications. Elle est normalement implicite
+avec l'option \fBa\fP, et n'est utile qu'en fonctionnement avec la personnalité
+sunos4.
+.TP
+\fB\-N\fP
+Sélectionner tous les processus sauf ceux qui remplissent les conditions
+indiquées (inverse la sélection). Identique à \fB\-\-deselect\fP.
+.TP
+\fBT\fP
+Sélectionner tous les processus associés à ce terminal. Identique à l'option
+\fBt\fP sans autre paramètre.
+.TP
+\fBr\fP
+Restreindre la sélection aux processus en cours d'exécution.
+.TP
+\fBx\fP
+Lever la restriction «\ doit avoir un terminal\ » du style BSD, qui est
+imposée sur l'ensemble des processus si des options «\ à la BSD\ » (sans
+«\ \-\ ») sont utilisées ou si la personnalité de \fBps\fP est configurée «\ à la
+BSD\ ». L'ensemble des processus sélectionnés de cette façon est ajouté à
+l'ensemble des processus sélectionnés autrement. Autrement dit, cette option
+conduit \fBps\fP à énumérer tous les processus vous appartenant (même EUID que
+\fBps\fP) ou énumérer tous les processus lorsqu'elle est utilisée avec l'option
+\fBa\fP.
+.PD
+.SH "SÉLECTION DES PROCESSUS PAR UNE LISTE"
+Ces options acceptent un unique paramètre sous forme de liste séparée par
+des blancs ou des virgules. Elles peuvent être utilisées plusieurs fois. Par
+exemple\ : \fBps\ \-p\ "1\ 2"\ \-p\ 3,4\fP.
+.TP
+\fI123\fP
+Identique à \fB\-\-pid\ \fP\fI123\fP.
+.TP
+\+\fI123\fP
+Identical to \fB\-\-sid\ \fP\fI123\fP.
+.TP
+\fB\-\fP\fI123\fP
+Select by process group ID (PGID).
+.TP
+\fB\-C\fP\fI\ liste_commandes\fP
+Sélectionner par nom de commande. Cela sélectionne les processus dont le nom
+d'exécutable figure dans \fIliste_commandes\fP. REMARQUE\ : le nom de la
+commande n'est pas le même que le nom sur la ligne de commande. Les
+anciennes versions de \fBprocps\fP et du noyau réduisaient ce nom de commande à
+15\ caractères. Cette limite n'existe plus. Si vous faisiez une recherche sur
+15\ caractères seulement, il se peut que votre recherche ne donne plus de
+résultats.
+.TP
+\fB\-G\fP\fI\ liste_groupes\fP
+Sélectionner par nom ou identifiant de groupe réel (RGID). Cela sélectionne
+les processus dont l'identifiant ou nom de groupe réel est dans
+\fIliste_groupes\fP. Le RGID identifie le groupe de l'utilisateur qui a créé le
+processus, consultez \fBgetgid\fP(2).
+.TP
+\fB\-g\fP\fI\ liste_groupes\fP
+Sélectionner par session ou nom de groupe effectif. La sélection par session
+est précisée par plusieurs normes, mais la sélection par groupe effectif est
+le comportement logique utilisé par de nombreux autres systèmes
+d'exploitation. Ce \fBps\fP sélectionnera par session quand la liste est
+complètement numérique (comme le sont les sessions). Les GID numériques
+fonctionneront seulement quand des noms de groupes sont également
+indiqués. Consultez les options \fB\-s\fP et \fB\-\-group\fP.
+.TP
+\fB\-\-Group\fP\fI\ liste_groupes\fP
+Sélectionner par identifiant de groupe réel (RGID) ou nom. Identique à
+\fB\-G\fP.
+.TP
+\fB\-\-group\fP\fI\ liste_groupes\fP
+Sélectionner par identifiant de groupe effectif (EGID) ou nom. Cela
+sélectionne les processus dont l'identifiant ou nom de groupe effectif est
+dans \fIliste_groupes\fP. L'EGID identifie le groupe dont les droits d'accès au
+fichier sont utilisés par le processus, consultez \fBgetegid\fP(2). L'option
+\fB\-g\fP est souvent une alternative à \fB\-\-group\fP.
+.TP
+\fBp\fP\fI\ liste_pid\fP
+Sélectionner par identifiant de processus (PID). Identique à \fB\-p\fP et
+\fB\-\-pid\fP.
+.TP
+\fB\-p\fP\fI\ liste_pid\fP
+Sélectionner par PID. Cela sélectionne les processus dont l'identifiant de
+processus apparaît dans \fIliste_pid\fP. Identique à \fBp\fP et \fB\-\-pid\fP.
+.TP
+\fB\-\-pid\fP\fI\ liste_pid\fP
+Sélectionner par identifiant de processus (PID). Identique à \fB\-p\fP et \fBp\fP.
+.TP
+\fB\-\-ppid\fP\fI\ liste_pid\fP
+Sélectionner par PID parent. Cela sélectionne des processus dont le PID
+parent est dans \fIliste_pid\fP. Autrement dit, il sélectionne les processus
+enfants de ceux indiqués dans \fIliste_pid\fP.
+.TP
+\fBq\fP\fI\ liste_pid\fP
+Sélectionner par identifiant de processus (PID). Identique à \fB\-q\fP et
+\fB\-\-quick\-pid\fP.
+.TP
+\fB\-q\fP\fI\ liste_pid\fP
+Sélectionner par PID (mode rapide). Cela sélectionne les processus dont le
+numéro d'identifiant figure dans \fIliste_pid\fP. Avec cette option, \fBps\fP ne
+lit les informations nécessaires que pour les PID se trouvant dans
+\fIliste_pid\fP et il n'applique aucune règle de filtrage supplémentaire. Les
+PID ne sont pas triés et ils sont préservés. Dans ce mode, aucune option de
+sélection supplémentaire, aucun tri ou listage en arborescence n'est
+possible. Identique à \fBq\fP et \fB\-\-quick\-pid\fP.
+.TP
+\fB\-\-quick\-pid\fP\fI\ liste_pid\fP
+Sélectionner par identifiant de processus (PID). Identique à \fB\-q\fP et \fBq\fP.
+.TP
+\fB\-s\fP\fI\ liste_sessions\fP
+Sélectionner par identifiant de session. Cela sélectionne les processus dont
+l'identifiant de session est indiqué dans \fIliste_sessions\fP.
+.TP
+\fB\-\-sid\fP\fI\ liste_sessions\fP
+Sélectionner par identifiant de session. Identique à \fB\-s\fP.
+.TP
+\fBt\fP\fI\ liste_ttys\fP
+Sélectionner par terminal (tty). Quasiment identique à \fB\-t\fP et \fB\-\-tty\fP,
+mais peut également être utilisé avec une \fIliste_ttys\fP vide pour indiquer
+le terminal associé à \fBps\fP. L'utilisation de l'option \fBT\fP est considérée
+plus propre que l'utilisation de \fBt\fP avec une \fIliste_ttys\fP vide.
+.TP
+\fB\-t\fP\fI\ liste_ttys\fP
+Sélectionner par tty. Cela sélectionne les processus associés aux terminaux
+donnés dans \fIliste_ttys\fP. Les terminaux (ttys, ou écrans pour sortie texte)
+peuvent être indiqués sous différentes formes\ : /dev/ttyS1, ttyS1, S1. Un
+simple «\ \-\ » permet de sélectionner les processus qui ne sont pas attachés à
+un terminal.
+.TP
+\fB\-\-tty\fP\fI\ liste_ttys\fP
+Sélectionner par terminal. Identique à \fB\-t\fP et \fBt\fP.
+.TP
+\fBU\fP\fI\ liste_utilisateurs\fP
+Sélectionner par identifiant d'utilisateur effectif (EUID) ou nom. Cela
+sélectionne les processus dont l'identifiant ou nom d'utilisateur effectif
+est dans \fIliste_utilisateurs\fP. L'EUID identifie l'utilisateur dont les
+droits d'accès au fichier sont utilisés par le processus, consultez
+\fBgeteuid\fP(2). Identique à \fB\-u\fP et \fB\-\-user\fP.
+.TP
+\fB\-U\fP\fI\ liste_utilisateurs\fP
+Sélectionner par identifiant d'utilisateur réel (RUID) ou nom. Cela
+sélectionne les processus dont l'identifiant ou nom d'utilisateur réel est
+dans \fIliste_utilisateurs\fP. Le RUID identifie l'utilisateur qui a créé le
+processus, consultez \fBgetuid\fP(2).
+.TP
+\fB\-u\fP\fI\ liste_utilisateurs\fP
+Sélectionner par identifiant d'utilisateur effectif (EUID) ou nom. Cela
+sélectionne les processus dont le nom ou l'identifiant d'utilisateur
+effectif est dans \fIliste_utilisateurs\fP.
+
+L'EUID identifie l'utilisateur dont les droits d'accès au fichier sont
+utilisés par le processus, consultez \fBgeteuid\fP(2). Identique à \fBU\fP et
+\fB\-\-user\fP.
+.TP
+\fB\-\-User\fP\fI\ liste_utilisateurs\fP
+Sélectionner par identifiant d'utilisateur réel (RUID) ou nom. Identique à
+\fB\-U\fP.
+.TP
+\fB\-\-user\fP\fI\ liste_utilisateurs\fP
+Sélectionner par identifiant d'utilisateur effectif (EUID) ou nom. Identique
+à \fB\-u\fP et\ \fBU\fP.
+.PD
+.SH "CONTRÔLE DU FORMAT DE SORTIE"
+Ces options sont utilisées pour choisir les renseignements affichés par
+\fBps\fP. La sortie peut changer en fonction de la personnalité.
+.TP
+\fB\-c\fP
+Montrer des renseignements d'ordonnanceur différents pour l'option \fB\-l\fP.
+.TP
+\fB\-\-context\fP
+Afficher au format du contexte de sécurité (pour SELinux).
+.TP
+\fB\-f\fP
+Faire une liste au format complet. Cette option peut être combinée aux
+nombreuses autres options «\ à la UNIX\ » pour ajouter des colonnes
+supplémentaires. Cela conduit également à afficher les paramètres de la
+commande. Lorsqu'elle est utilisée avec \fB\-L\fP, les colonnes NLWP (nombre de
+processus légers) et LWP (identifiant de processus léger) seront
+ajoutées. Consultez l'option \fBc\fP et les mots\-clés de format \fBargs\fP et
+\fBcomm\fP.
+.TP
+\fB\-F\fP
+Format complet étendu. Consultez l'option \fB\-f\fP, implicite avec \fB\-F\fP.
+.TP
+\fB\-\-format\fP\fI\ format\fP
+Format défini par l'utilisateur. Identique à \fB\-o\fP et \fBo\fP.
+.TP
+\fBj\fP
+Format BSD de contrôle des tâches.
+.TP
+\fB\-j\fP
+Format des tâches.
+.TP
+\fBl\fP
+Afficher au format BSD long.
+.TP
+\fB\-l\fP
+Format long. L'option \fB\-y\fP est souvent utile en complément.
+.TP
+\fB\-M\fP
+Afficher une colonne de données de sécurité. Identique à \fBZ\fP (pour
+SELinux).
+.TP
+\fBO\fP\fI\ format\fP
+\fBo\fP préchargé (surchargé). L'option BSD \fBO\fP peut se comporter comme \fB\-O\fP
+(format de sortie défini par l'utilisateur avec quelques champs communs
+prédéfinis) ou être utilisée pour indiquer un ordre de tri. Les paramètres
+sont utilisés pour déterminer le comportement de cette option. Pour
+s'assurer que le comportement voulu soit obtenu (tri ou formatage), indiquer
+cette option d'une autre façon (par exemple avec \fB\-O\fP ou
+\fB\-\-sort\fP). Identique à \fB\-O\fP quand utilisée comme option de formatage, avec
+la personnalité BSD.
+.TP
+\fB\-O\fP\fI\ format\fP
+Comme \fB\-o\fP, mais préchargé avec quelques colonnes par défaut. Identique à
+\fB\-o\ pid,\fP\fIformat\fP\fB,state,tname,time,command\fP ou
+\fB\-o\ pid,\fP\fIformat\fP\fB,tname,time,cmd\fP, consultez \fB\-o\fP ci\-dessous.
+.TP
+\fBo\fP\fI\ format\fP
+Indiquer un format défini par l'utilisateur. Identique à \fB\-o\fP et
+\fB\-\-format\fP.
+.TP
+\fB\-o\fP\fI\ format\fP
+Format défini par l'utilisateur. \fIformat\fP est un paramètre unique sous
+forme de liste séparée par des blancs ou des virgules, qui permet d'indiquer
+des colonnes de sorties individuelles. Les mots\-clés reconnus sont décrits
+ci\-dessous dans la section \fBINDICATEURS DE FORMAT STANDARDS\fP. Les en\-têtes
+peuvent êtres renommés (\fBps\ \-o\ pid,ruser=RealUser\ \-o\ comm=Command\fP) si
+besoin. Si tous les en\-têtes de colonnes sont vides (\fBps\ \-o\ pid=\ \-o\ comm=\fP), la ligne d'en\-têtes ne sera pas affichée. La largeur de colonne
+augmentera si de larges en\-têtes l'exigent\ ; ce peut être utilisé pour
+élargir des colonnes comme WCHAN (\fBps\ \-o\ pid,wchan=WIDE\-WCHAN\-COLUMN\ \-o\ comm\fP). Un contrôle explicite de la largeur (\fBps\ opid,wchan:42,cmd\fP) est
+également possible. Le comportement de \fBps\ \-o\ pid=X,comm=Y\fP change avec
+les personnalités\ ; la sortie peut être une colonne appelée «\ X,comm=Y\ » ou
+deux colonnes appelées «\ X\ » et «\ Y\ ». Utilisez plusieurs options \fB\-o\fP pour
+dissiper les doutes. Utilisez la variable d'environnement \fBPS_FORMAT\fP pour
+indiquer une valeur par défaut\ ; DefSysV et DefBSD sont des macros qui
+peuvent être utilisées pour choisir les colonnes UNIX ou BSD par défaut.
+.TP
+\fB\-P\fP
+Add a column showing \fBpsr\fP.
+.TP
+\fBs\fP
+Afficher au format de signal.
+.TP
+\fBu\fP
+Afficher au format orienté utilisateur.
+.TP
+\fBv\fP
+Afficher au format de mémoire virtuelle.
+.TP
+\fBX\fP
+Format de registre.
+.TP
+\fB\-y\fP
+Ne pas montrer d'indicateurs\ ; montrer \fBrss\fP au lieu de \fBaddr\fP. Cette
+option ne peut être utilisée qu'avec\ \fB\-l\fP.
+.TP
+\fBZ\fP
+Afficher une colonne de données de sécurité. Identique à \fB\-M\fP (pour
+SELinux).
+.PD
+.SH "MODIFICATEURS DE SORTIE"
+.TP
+\fBc\fP
+Montrer les vrais noms de commande. Cela vient du nom de fichier exécutable,
+plutôt que de la valeur \fIargv\fP. Les paramètres de la commande et leurs
+modifications éventuelles ne sont donc pas montrés. Cette option transforme
+en fait le mot\-clé de format \fBargs\fP en \fBcomm\fP\ ; c'est pratique pour
+l'option de format \fB\-f\fP et avec toutes les options de format «\ à la BSD\ »,
+qui entraînent normalement toutes un affichage des paramètres de la
+commande. Consultez l'option \fB\-f\fP et les mots\-clés de format \fBargs\fP et
+\fBcomm\fP.
+.TP
+\fB\-\-cols\fP\fI\ n\fP
+Configurer la largeur de l'écran.
+.TP
+\fB\-\-columns\fP\fI\ n\fP
+Configurer la largeur de l'écran.
+.TP
+\fB\-\-cumulative\fP
+Inclure des données sur les processus enfants tués (comme une somme avec le
+parent).
+.TP
+.TP
+\fB\-D\fP\fI\ format\fP
+Set the date format of the \fBlstart\fP field to \fIformat\fP. This format is
+parsed by \fBstrftime\fP(3) and should be a maximum of 24 characters to not
+mis\-align columns.
+.TP
+\fB\-\-date\-format\fP\fI\ format\fP
+Identical to \fB\-D\fP.
+.TP
+\fBe\fP
+Montrer l'environnement après la commande.
+.TP
+\fBf\fP
+Hiérarchie des processus en ASCII art (arborescence).
+.TP
+\fB\-\-forest\fP
+Arborescence des processus en ASCII art.
+.TP
+\fBh\fP
+Sans en\-tête (ou avec un en\-tête par écran en personnalité BSD). L'option
+\fBh\fP est problématique. Le \fBps\fP standard de BSD utilise cette option pour
+afficher un en\-tête sur chaque page de sortie, mais l'ancien \fBps\fP de Linux
+utilise cette option pour désactiver l'en\-tête. Cette version de \fBps\fP suit
+l'habitude de Linux de ne pas afficher l'en\-tête sauf si la personnalité BSD
+a été choisie, auquel cas elle affiche un en\-tête sur chaque page de
+sortie. Quelle que soit la personnalité utilisée, les options longues
+\fB\-\-headers\fP et \fB\-\-no\-headers\fP permettent respectivement d'activer
+l'affichage des en\-têtes sur chaque page ou de désactiver complètement les
+en\-têtes.
+.TP
+\fB\-H\fP
+Montrer la hiérarchie des processus (arborescence).
+.TP
+\fB\-\-headers\fP
+Répéter les lignes d'en\-tête, une par page de sortie.
+.TP
+\fBk\fP\fI\ spec\fP
+Indiquer l'ordre de tri. La syntaxe de tri est [\fB+\fP|\fB\-\fP]\fIclé\/.RB [,[ + | \- ].clé IR [,...]].\fP. Choisissez une \fIclé\fP multicaractère de la section
+\fBINDICATEURS DE FORMAT STANDARDS\fP. Le «\ +\ » est facultatif puisque l'ordre
+numérique ou lexicographique est croissant par défaut. Identique à
+\fB\-\-sort\fP.
+.RS 8
+.IP
+Exemples\ :
+.br
+\fBps jaxkuid,\-ppid,+pid\fP
+.br
+\fBps axk comm o comm,args\fP
+.br
+\fBps kstart_time \-ef\fP
+.RE
+.TP
+\fB\-\-lines\fP\fI\ n\fP
+Configurer la hauteur de l'écran.
+.TP
+\fBn\fP
+Sortie numérique pour WCHAN et USER (incluant tous les types d'UID et GID).
+.TP
+\fB\-\-no\-headers\fP
+Ne pas afficher d'en\-tête du tout. \fB\-\-no\-heading\fP est un alias pour cette
+option.
+.TP
+\fBO\fP\fI\ order\fP
+Ordre de tri (surchargé). L'option BSD \fBO\fP peut se comporter comme \fB\-O\fP
+(format de sortie défini par l'utilisateur avec quelques champs communs
+prédéfinis) ou peut être utilisée pour indiquer un ordre de tri. Les
+paramètres sont utilisés pour déterminer le comportement de cette
+option. Pour s'assurer que le comportement voulu soit obtenu (tri ou
+formatage), indiquer cette option d'une autre façon (par exemple avec \fB\-O\fP
+ou \fB\-\-sort\fP).
+.IP
+Pour trier, la syntaxe de l'option BSD obsolète est
+«\ \fBO\fP[\fB+\fP|\fB\-\fP]\fIk1\fP[,[\fB+\fP|\fB\-\fP]\fIk2\fP[,...]]\ ». L'ordre de la liste de
+processus est effectué en fonction de l'ordre multiniveau indiqué par la
+suite de clés courtes à une lettre \fIk1\fP, \fIk2\fP, etc., décrites ci\-dessous
+dans la section \fBCLÉS DE TRI OBSOLÈTES\fP. Le «\ +\ » actuellement facultatif
+réitère simplement l'ordre par défaut d'une clé, mais permet également de
+distinguer un \fBO\fP de tri d'un \fBO\fP de formatage. Le «\ \-\ » inverse
+uniquement l'ordre de la clé qu'il précède.
+.TP
+\fB\-\-rows\fP\fI\ n\fP
+Configurer la hauteur de l'écran.
+.TP
+\fBS\fP
+Résumer quelques renseignements, comme l'utilisation CPU, à partir des
+processus enfants tués dans leur parent. C'est pratique pour observer un
+système où les processus parents engendrent des processus enfants de courte
+durée de vie pour faire leur travail.
+.TP
+\fB\-\-sort\fP\fI\ spec\fP
+Indiquer l'ordre de tri. La syntaxe de tri est
+«\ [\fB+\fP|\fB\-\fP]\fIclé\fP[,[\fB+\fP|\fB\-\fP]\fIclé\fP[,...]]\ ». Choisir une \fIclé\fP
+multicaractère de la section \fBINDICATEURS DE FORMAT STANDARDS\fP. Le «\ +\ »
+est facultatif puisque l'ordre numérique ou lexicographique est croissant
+par défaut. Identique à \fBk\fP. Par exemple\ : \fBps\ jax\ \-\-sort=uid,\-ppid,+pid\fP.
+.TP
+\fB\-\-signames\fP
+Show signal masks using abbreviated signal names and expands the collumn.
+If the column width cannot show all signals, the column will end with a plus
+"\fI+\fP". Columns with only a hyphen have no signals.
+.TP
+\fBw\fP
+Sortie large. Utilisez cette option deux fois pour une largeur illimitée.
+.TP
+\fB\-w\fP
+Sortie large. Utilisez cette option deux fois pour une largeur illimitée.
+.TP
+\fB\-\-width\fP\fI\ n\fP
+Configurer la largeur de l'écran.
+.PD
+.SH "AFFICHAGE DE PROCESSUS LÉGERS («\ THREAD\ »)"
+.TP
+\fBH\fP
+Montrer les processus légers comme s'ils étaient des processus.
+.TP
+\fB\-L\fP
+Montrer les processus légers, si possible avec les colonnes LWP et NLWP.
+.TP
+\fBm\fP
+Montrer les processus légers après les processus.
+.TP
+\fB\-m\fP
+Montrer les processus légers après les processus.
+.TP
+\fB\-T\fP
+Montrer les processus légers, si possible avec la colonne SPID.
+.SH "AUTRES RENSEIGNEMENTS"
+.TP
+\fB\-\-help\fP\fI\ section\fP
+Print a help message. The \fIsection\fP argument can be one of \fIs\fPimple,
+\fIl\fPist, \fIo\fPutput, \fIt\fPhreads, \fIm\fPisc, or \fIa\fPll. The argument can be
+shortened to one of the underlined letters as in:
+s\^|\^l\^|\^o\^|\^t\^|\^m\^|\^a.
+.TP
+\fB\-\-info\fP
+Afficher des informations de débogage.
+.TP
+\fBL\fP
+Afficher la liste de tous les indicateurs de format.
+.TP
+\fBV\fP
+Afficher la version de \fBprocps\-ng\fP.
+.TP
+\fB\-V\fP
+Afficher la version de \fBprocps\-ng\fP.
+.TP
+\fB\-\-version\fP
+Afficher la version de \fBprocps\-ng\fP.
+.SH NOTES
+Ce \fBps\fP fonctionne en lisant les fichiers virtuels de \fI/proc\fP. Ce \fBps\fP
+n'a pas besoin d'être Set\-UID kmem et ne nécessite aucun privilège pour
+fonctionner. Ne pas donner de permissions particulières à ce \fBps\fP.
+.PP
+L'utilisation CPU est actuellement exprimée en pourcentage de temps passé à
+fonctionner pendant le temps de vie complet d'un processus. Ce n'est ni
+idéal, ni conforme aux normes par ailleurs respectées par \fBps\fP. Il est peu
+probable que la somme d'utilisations CPU soit exactement égale à 100\ %.
+.PP
+Les champs SIZE et RSS ne comptent pas certaines parties d'un processus
+comme les tables de pages, la pile du noyau, la structure thread_info, et la
+structure task_struct. Cela représente au moins 20\ Kio de mémoire toujours
+résidente. SIZE est la taille virtuelle du processus
+(code\ +\ données\ +\ pile).
+.PP
+Les processus marqués <defunct> sont les processus tués (appelés
+«\ zombies\ ») qui restent parce que leur parent ne les a pas détruits
+proprement. Ces processus seront détruits par \fBinit\fP(8) si le processus
+parent se termine.
+.PP
+If the length of the username is greater than the width of the display
+column, the username will be truncated. See the \fB\-o\fP and \fB\-O\fP formatting
+options to customize length.
+.PP
+Commands options such as \fBps \-aux\fP are not recommended as it is a confusion
+of two different standards. According to the POSIX and UNIX standards, the
+above command asks to display all processes with a TTY (generally the
+commands users are running) plus all processes owned by a user named \fIx\fP.
+If that user doesn't exist, then \fBps\fP will assume you really meant "\fBps\fP
+\fIaux\fP".
+.SH "INDICATEURS DE PROCESSUS"
+La somme de ces valeurs est affichée dans la colonne «\ F\ », fournie par
+l'indicateur de sortie \fBflags\fP\ :
+.PP
+.RS 8
+.PD 0
+.TP 5
+1
+engendré mais pas exécuté\ ;
+.TP
+4
+a utilisé des privilèges de superutilisateur\ ;
+.PD
+.RE
+.SH "CODES D'ÉTAT DE PROCESSUS"
+Voici les différentes valeurs que les indicateurs de sortie \fBs\fP, \fBstat\fP et
+\fBstate\fP (en\-tête «\ STAT\ » ou «\ S\ ») afficheront pour décrire l'état d'un
+processus\ :
+.PP
+.RS 8
+.PD 0
+.TP 5
+D
+en sommeil non interruptible (normalement entrées et sorties)\ ;
+.TP
+I
+fil inactif du noyau\ ;
+.TP
+R
+s'exécutant ou pouvant s'exécuter (dans la file d'exécution)\ ;
+.TP
+S
+en sommeil interruptible (en attente d'un événement pour finir)\ ;
+.TP
+T
+arrêté par le signal de contrôle de la tâche\ ;
+.TP
+t
+arrêté par le débogueur lors du traçage\ ;
+.TP
+W
+pagination (non valable depuis le noyau\ 2.6.xx)\ ;
+.TP
+X
+tué (ne devrait jamais être vu)\ ;
+.TP
+Z
+processus zombie (<defunct>), terminé mais pas détruit par son
+parent.
+.PD
+.RE
+.PP
+Pour les formats BSD et quand le mot\-clé \fBstat\fP est utilisé, les caractères
+supplémentaires suivants peuvent être affichés\ :
+.PP
+.RS 8
+.PD 0
+.TP 5
+<
+haute priorité (non poli pour les autres utilisateurs)\ ;
+.TP
+N
+basse priorité (poli pour les autres utilisateurs)\ ;
+.TP
+L
+avec ses pages verrouillées en mémoire (pour temps réel et entrées et
+sorties personnalisées)\ ;
+.TP
+s
+meneur de session\ ;
+.TP
+l
+possède plusieurs processus légers («\ multi\-thread\ », utilisant CLONE_THREAD
+comme NPTL pthreads le fait)\ ;
+.TP
++
+dans le groupe de processus au premier plan.
+.PD
+.RE
+.SH "CLÉS DE TRI OBSOLÈTES"
+Ces clés sont utilisées par l'option BSD \fBO\fP (quand elle est utilisée pour
+trier). L'option GNU \fB\-\-sort\fP n'utilise pas ces clés, mais celles décrites
+ci\-dessous dans la section \fBINDICATEURS DE FORMAT STANDARDS\fP. Remarquez que
+les valeurs utilisées pour le tri sont les valeurs internes que \fBps\fP
+utilise et non les valeurs «\ trafiquées\ » utilisées dans certains champs de
+format de sortie (par exemple trier sur tty ordonnera par numéro de
+périphérique, pas en fonction du nom de terminal affiché). Envoyer la sortie
+de \fBps\fP dans un tube («\ pipe\ ») vers la commande \fBsort\fP(1) permet
+d'obtenir un tri selon les valeurs trafiquées.
+.TS
+l l lw(3i).
+\fBCLÉ\fP \fBLONGUE\fP \fBDESCRIPTION\fP
+c cmd juste le nom de l'exécutable
+C pcpu utilisation du CPU
+f attributs indicateurs comme le champ F du format long
+g pgrp GID du processus
+G tpgid GID du processus contrôlant le tty
+j cutime temps utilisateur cumulé
+J cstime temps système cumulé
+k utime temps utilisateur
+m min_flt nombre de défauts de page mineurs
+M maj_flt nombre de défauts de page majeurs
+n cmin_flt défauts de page mineurs cumulés
+N cmaj_flt défauts de page majeurs cumulés
+o session identifiant de session
+p pid identifiant de processus (PID)
+P ppid PID du processus parent
+r rss taille de mémoire résidente
+R resident pages résidentes
+s size taille mémoire en kilooctets
+S share nombre de pages partagées
+t tty numéro de périphérique du tty contrôlant
+T start_time heure de démarrage du processus
+U uid identifiant utilisateur (UID)
+u user nom d'utilisateur
+v vsize taille totale de mémoire virtuelle en kibioctets
+y priority priorité d'ordonnancement du noyau
+.\"K stime system time (conflict, system vs. start time)
+.TE
+.SH "DESCRIPTEURS DE FORMAT AIX"
+Ce \fBps\fP prend en charge les descripteurs de format AIX, qui fonctionnent un
+peu comme les codes de formatage de \fBprintf\fP(1) et \fBprintf\fP(3). Par
+exemple, la sortie normale par défaut peut être produite ainsi\ : \fBps\ \-eo\ "%p\ %y\ %x\ %c"\fP. Les codes \fBSTANDARD\fP sont décrits dans la section
+suivante.
+.TS
+l l l.
+\fBCODE\fP \fBSTANDARD\fP \fBEN\-TÊTE\fP
+%C pcpu %CPU
+%G group GROUP
+%P ppid PPID
+%U user USER
+%a args COMMAND
+%c comm COMMAND
+%g rgroup RGROUP
+%n nice NI
+%p pid PID
+%r pgid PGID
+%t etime ELAPSED
+%u ruser RUSER
+%x time TIME
+%y tty TTY
+%z vsz VSZ
+.TE
+.SH "INDICATEURS DE FORMAT STANDARDS"
+Voici les différents mots\-clés pouvant être utilisés pour contrôler le
+format de sortie (par exemple avec l'option \fB\-o\fP) ou pour trier les
+processus sélectionnés avec l'option «\ à la GNU\ » \fB\-\-sort\fP.
+.PP
+Par exemple\ : \fBps\ \-eo\ pid,user,args\ \-\-sort\ user\fP
+.PP
+Cette version de \fBps\fP essaye de reconnaître la plupart des mots\-clés
+utilisés avec les autres implémentations de \fBps\fP.
+.PP
+Les indicateurs suivants de format définis par l'utilisateur peuvent
+contenir des espaces\ : \fBargs\fP, \fBcmd\fP, \fBcomm\fP, \fBcommand\fP, \fBfname\fP,
+\fBucmd\fP, \fBucomm\fP, \fBlstart\fP, \fBbsdstart\fP, \fBstart\fP.
+.PP
+Certains mots\-clés peuvent être indisponibles pour le tri.
+
+.\" #######################################################################
+.\" lB1 lB1 lB1 lB1 s s s
+.\" lB1 l1 l1 l1 s s s.
+.\"
+.\" lB1 lB1 lBw(5.5i)
+.\" lB1 l1 l.
+.\"
+.TS
+expand;
+l1B l1B lBw(\n[ColSize]n)
+l1B l1 l.
+\fBCODE\fP \fBEN\-TÊTE\fP DESCRIPTION
+
+%cpu %CPU T{
+Utilisation CPU du processus exprimée avec un chiffre après la virgule.
+Actuellement, il s'agit du temps passé à fonctionner divisé par le temps de
+vie du processus (rapport cputime/realtime), exprimé en pourcentage.
+La somme ne dépassera pas 100\ % sauf si vous êtes chanceux (alias
+\fBpcpu\fP).
+T}
+
+%mem %MEM T{
+Rapport entre la taille de mémoire résidente («\ resident set size\ » ou
+RSS) et la mémoire physique de la machine, exprimé en pourcentage (alias
+\fBpmem\fP).
+T}
+
+ag_id AGID T{
+The autogroup identifier associated with a process which operates in conjunction
+with the CFS scheduler to improve interactive desktop performance.
+T}
+
+ag_nice AGNI T{
+The autogroup nice value which affects scheduling of all processes in that group.
+T}
+
+args COMMAND T{
+command with all its arguments as a string. Modifications to the arguments
+may be shown. The output in this column may contain spaces. A process
+marked <defunct> is partly dead, waiting to be fully destroyed by its parent.
+Sometimes the process args will be unavailable; when this happens,
+\fBps\fP
+will instead print the executable name in brackets. (alias
+\fBcmd\fP, \fBcommand\fP).
+See also the
+\fBcomm\fP
+format keyword, the
+\fB\-f\fP
+option, and the
+\fBc\fP
+option.
+.br
+Lorsque indiquée en dernier, cette colonne sera élargie jusqu'aux bords de l'affichage. Si
+\fBps\fP
+ne peut pas déterminer la largeur de l'affichage, comme quand la sortie est renvoyée
+(dans un tube, «\ pipe\ ») vers un fichier ou une autre commande,
+la largeur de sortie n'est pas définie
+(elle peut être de 80\ caractères,
+illimitée, déterminée par la variable
+\fBTERM\fP,\ etc.)
+La variable d'environnement
+\fBCOLUMNS\fP
+ou l'option
+\fB\-\-cols\fP
+permettent de déterminer avec exactitude la largeur dans ce cas.
+Les options
+\fBw\fP
+ou
+\fB\-w\fP
+peuvent également être utilisées pour adapter la largeur.
+T}
+
+blocked BLOCKED T{
+mask of the blocked signals, see
+\fIsignal\fP(7).
+According to the width of the field, a 32 or 64\-bit mask in hexadecimal
+format is displayed, unless the \fB\-\-signames\fP option is used. (alias
+\fBsig_block\fP, \fBsigmask\fP).
+T}
+
+bsdstart START T{
+Heure de démarrage du processus. Si le processus a été démarré dans les dernières 24\ heures,
+le format de sortie est «\ \ HH:MM\ »,
+sinon il est «\ Mmm\ JJ\ »
+(où «\ Mmm\ » représente les trois
+premières lettres du mois, en anglais). Consultez aussi
+\fBlstart\fP, \fBstart\fP, \fBstart_time\fP et \fBstime\fP.
+T}
+
+bsdtime TIME T{
+Temps CPU cumulé, utilisateur plus système. Le format d'affichage est normalement
+«\ MMM:SS\ », mais peut être déplacé vers la droite si des processus ont cumulé
+plus de 999\ minutes de temps CPU.
+T}
+
+c C T{
+Utilisation du processeur. C'est pour l'instant la partie entière
+du pourcentage d'utilisation par rapport au temps de vie du processus (consultez
+\fB%cpu\fP).
+T}
+
+caught CAUGHT T{
+mask of the caught signals, see
+\fIsignal\fP(7).
+According to the width of the field, a 32 or 64 bits mask in hexadecimal
+format is displayed, unless the \fB\-\-signames\fP option is used. (alias
+\fBsig_catch\fP, \fBsigcatch\fP).
+T}
+
+cgname CGNAME T{
+Afficher les groupes de contrôle auxquels appartient le processus.
+T}
+
+cgroup CGROUP T{
+Afficher les groupes auxquels appartient le processus.
+T}
+
+cgroupns CGROUPNS T{
+Unique inode number describing the namespace the process belongs to.
+See
+\fInamespaces\fP(7).
+T}
+
+class CLS T{
+Classe d’ordonnancement du processus (alias
+\fBpolicy\fP,\fBcls\fP).
+Les valeurs possibles du champ sont\ :
+.sp 1
+.in +9n
+\- non signalé
+.br
+TS SCHED_OTHER
+.br
+FF SCHED_FIFO
+.br
+RR SCHED_RR
+.br
+B SCHED_BATCH
+.br
+ISO SCHED_ISO
+.br
+IDL SCHED_IDLE
+.br
+DLN SCHED_DEADLINE
+.br
+? valeur inconnue
+.in
+T}
+
+cls CLS T{
+Classe d’ordonnancement du processus (alias
+\fBpolicy\fP,\fBcls\fP).
+Les valeurs possibles du champ sont\ :
+.sp 1
+.in +9n
+\- non signalé
+.br
+TS SCHED_OTHER
+.br
+FF SCHED_FIFO
+.br
+RR SCHED_RR
+.br
+B SCHED_BATCH
+.br
+ISO SCHED_ISO
+.br
+IDL SCHED_IDLE
+.br
+DLN SCHED_DEADLINE
+.br
+? valeur inconnue
+.in
+T}
+
+cmd CMD T{
+Consultez
+\fBargs\fP
+(alias
+\fBargs\fP, \fBcommand\fP).
+T}
+
+comm COMMAND T{
+command name (only the executable name). The output in this column may
+contain spaces.
+(alias
+\fBucmd\fP, \fBucomm\fP).
+See also the
+\fBargs\fP
+format keyword, the
+\fB\-f\fP
+option, and the
+\fBc\fP
+option.
+.br
+Lorsque indiquée en dernier, cette colonne sera élargie jusqu'aux bords de l'affichage. Si
+\fBps\fP
+ne peut pas déterminer la largeur de l'affichage, comme quand la sortie est renvoyée
+(dans un tube, «\ pipe\ ») vers un fichier ou une autre commande,
+la largeur de sortie n'est pas définie
+(elle peut être de 80\ caractères,
+illimitée, déterminée par la variable
+\fBTERM\fP,\ etc.)
+La variable d'environnement
+\fBCOLUMNS\fP
+ou l'option
+\fB\-\-cols\fP
+permettent de déterminer avec exactitude la largeur dans ce cas.
+Les options
+\fBw\fP ou \fB\-w\fP
+peuvent également être utilisées pour adapter la largeur.
+T}
+
+command COMMAND T{
+Consultez
+\fBargs\fP
+(alias
+\fBargs\fP, \fBcommand\fP).
+T}
+
+cp CP T{
+Utilisation CPU en pour mille (dixième de pour cent) (consultez
+\fB%cpu\fP).
+T}
+
+cputime TIME T{
+Temps CPU cumulé, au format «\ [JJ\-]HH:MM:SS\ » (alias
+\fBtime\fP).
+T}
+
+cputimes TIME T{
+Temps CPU cumulé en secondes (alias
+\fBtimes\fP).
+T}
+
+cuc %CUC T{
+The CPU utilization of a process, including dead children, in an extended "##.###" format.
+(see also
+\fB%cpu\fP,
+\fBc\fP,
+\fBcp\fP,
+\fBcuu\fP,
+\fBpcpu\fP).
+T}
+
+cuu %CUU T{
+The CPU utilization of a process in an extended "##.###" format.
+(see also
+\fB%cpu\fP,
+\fBc\fP,
+\fBcp\fP,
+\fBcuc\fP,
+\fBpcpu\fP).
+T}
+
+drs DRS T{
+data resident set size, the amount of private memory \fIreserved\fP by a process.
+It is also known as DATA. Such memory may not yet be mapped to
+\fBrss\fP
+but will always be included
+included in the
+\fBvsz\fP
+amount.
+
+T}
+
+egid EGID T{
+Identifiant de groupe effectif (EGID) du processus sous forme d'entier décimal
+(alias
+\fBgid\fP).
+T}
+
+egroup EGROUP T{
+Identifiant de groupe effectif (EGID) du processus,
+au format texte s'il peut être obtenu et que la largeur du champ le permet,
+sous forme d'entier décimal
+sinon (alias
+\fBgroup\fP).
+T}
+
+eip EIP T{
+instruction pointer. As of kernel 4.9.xx will be zeroed out unless task is
+exiting or being core dumped.
+T}
+
+esp ESP T{
+stack pointer. As of kernel 4.9.xx will be zeroed out unless task is
+exiting or being core dumped.
+T}
+
+etime ELAPSED T{
+Temps écoulé depuis que le processus a été démarré,
+au format «\ [[JJ\-]HH:]MM:SS\ ».
+T}
+
+etimes ELAPSED T{
+Temps écoulé depuis que le processus a été démarré, en seconde.
+T}
+
+euid EUID T{
+Identifiant utilisateur effectif (EUID) (alias
+\fBuid\fP).
+T}
+
+euser EUSER T{
+Nom d'utilisateur effectif, au format texte s'il peut être obtenu
+et que la largeur du champ le permet,
+sous forme d'entier décimal sinon.
+L'option
+\fBn\fP
+peut être utilisée
+pour forcer la représentation décimale (alias
+\fBuname\fP, \fBuser\fP).
+T}
+
+exe EXE T{
+path to the executable. Useful if path cannot be printed via
+\fBcmd\fP, \fBcomm\fP
+or
+\fBargs\fP
+format options.
+T}
+
+f F T{
+Indicateur associé au processus, consultez la section
+\fBINDICATEURS DE PROCESSUS\fP
+(alias
+\fBflag\fP, \fBflags\fP).
+T}
+
+fgid FGID T{
+GID d'accès au système de fichiers (alias
+\fBfsgid\fP).
+T}
+
+fgroup FGROUP T{
+GID d'accès au système de fichier, au format texte s'il peut
+être obtenu et que la largeur du champ le permet,
+ou sous forme d'entier décimal
+sinon (alias
+\fBfsgroup\fP).
+T}
+
+flag F T{
+Consultez
+\fBf\fP
+(alias
+\fBf\fP, \fBflags\fP).
+T}
+
+attributs F T{
+Consultez
+\fBf\fP
+(alias
+\fBf\fP, \fBflag\fP).
+T}
+
+fname COMMAND T{
+Huit premiers octets du nom de base du fichier exécutable du processus.
+Les éléments de cette colonne peuvent contenir des espaces.
+T}
+
+fuid FUID T{
+UID d'accès au système de fichier (alias
+\fBfsuid\fP).
+T}
+
+fuser FUSER T{
+UID d'accès au système de fichier,
+au format texte s'il peut être obtenu et que la largeur du champ le permet,
+sous forme d'entier décimal sinon.
+T}
+
+gid GID T{
+Consultez
+\fBegid\fP
+(alias
+\fBegid\fP).
+T}
+
+group GROUP T{
+Consultez
+\fBegroup\fP
+(alias
+\fBegroup\fP).
+T}
+
+ignored IGNORED T{
+mask of the ignored signals, see
+\fIsignal\fP(7).
+According to the width of the field, a 32 or 64 bits mask in hexadecimal
+format is displayed, unless the \fB\-\-signames\fP option is used. (alias
+\fBsig_ignore\fP, \fBsigignore\fP).
+T}
+
+ipcns IPCNS T{
+Unique inode number describing the namespace the process belongs to.
+See
+\fInamespaces\fP(7).
+T}
+
+label LABEL T{
+Étiquette de sécurité, surtout utilisée en contexte de données SELinux.
+À destination du
+\fIcontrôle d'accès obligatoire\fP
+(«\ \fIMandatory Access Control\fP\ » ou «\ MAC\ »)
+trouvé sur les systèmes de haute sécurité.
+T}
+
+lstart STARTED T{
+time the command started. This will be in the form "DDD mmm HH:MM:SS YYY"
+unless changed by the \fB\-D\fP option.
+T}
+
+lsession SESSION T{
+Afficher l'identifiant de session d'un processus,
+si la prise en charge de systemd a été incluse.
+T}
+
+luid LUID T{
+Afficher l’identifiant de session d'un processus.
+T}
+
+lwp LWP T{
+Identifiant de processus léger («\ light weight process\ » ou «\ thread\ » ) de l'entité distribuable
+(alias
+\fBspid\fP, \fBtid\fP).
+Consultez
+\fBtid\fP
+pour plus de renseignements.
+T}
+
+lxc LXC T{
+Le nom du conteneur lxc dans lequel une tâche est en cours.
+Si un processus n'est pas en cours dans un conteneur, un tiret («\ \-\ ») sera affiché.
+T}
+
+machine MACHINE T{
+Afficher le nom de machine pour les processus assignés à une machine virtuelle ou un conteneur
+si la prise en charge de systemd a été incluse.
+T}
+
+maj_flt MAJFLT T{
+Nombre de défauts de page majeurs survenus avec ce processus.
+T}
+
+min_flt MINFLT T{
+Nombre de défauts de page mineurs survenus avec ce processus.
+T}
+
+mntns MNTNS T{
+Unique inode number describing the namespace the process belongs to.
+See
+\fInamespaces\fP(7).
+T}
+
+netns NETNS T{
+Unique inode number describing the namespace the process belongs to.
+See
+\fInamespaces\fP(7).
+T}
+
+ni NI T{
+Valeur de politesse, comprise entre 19 (la plus polie) à \-20 (la moins polie pour les autres),
+Consultez
+\fBnice\fP(1)
+(alias
+\fBnice\fP).
+T}
+
+nice NI T{
+Consultez
+\fBni\fP (alias
+\fBni\fP).
+T}
+
+nlwp NLWP T{
+Nombre de processus légers (threads) dans le processus (alias
+\fBthcount\fP).
+T}
+
+numa NUMA T{
+The node associated with the most recently used processor.
+A \fI\-1\fP means that NUMA information is unavailable.
+T}
+
+nwchan WCHAN T{
+address of the kernel function where the process is sleeping (use
+\fBwchan\fP
+if you want the kernel function name).
+T}
+
+oom OOM T{
+Out of Memory Score. The value, ranging from 0 to +1000, used to select
+task(s) to kill when memory is exhausted.
+T}
+
+oomadj OOMADJ T{
+Out of Memory Adjustment Factor. The value is added to the current out of
+memory score which is then used to determine which task to kill when memory
+is exhausted.
+T}
+
+ouid OWNER T{
+Identifiant utilisateur UNIX du propriétaire de la session d'un processus
+si la prise en charge de systemd a été incluse.
+T}
+
+pcpu %CPU T{
+Consultez
+\fB%cpu\fP
+(alias
+\fB%cpu\fP).
+T}
+
+pending PENDING T{
+mask of the pending signals. See
+\fIsignal\fP(7).
+Signals pending on the process are distinct from signals pending on
+individual threads. Use the
+\fBm\fP
+option or the
+\fB\-m\fP
+option to see both. According to the width of the field, a 32 or 64 bits
+mask in hexadecimal
+format is displayed, unless the \fB\-\-signames\fP option is used. (alias
+\fBsig\fP).
+T}
+
+pgid PGID T{
+Identifiant du processus (PID) ou, de manière équivalente,
+le PID du meneur
+du groupe (alias
+\fBpgrp\fP).
+T}
+
+pgrp PGRP T{
+Consultez
+\fBpgid\fP
+(alias
+\fBpgid\fP).
+T}
+
+pid PID T{
+Un nombre représentant l'identifiant de processus (alias
+\fBtgid\fP).
+T}
+
+pidns PIDNS T{
+Unique inode number describing the namespace the process belongs to.
+See
+\fInamespaces\fP(7).
+T}
+
+pmem %MEM T{
+Consultez
+\fB%mem\fP
+(alias
+\fB%mem\fP).
+T}
+
+policy POL T{
+Classe d’ordonnancement du processus (alias
+\fBclass\fP,\fB\ cls\fP).
+Les valeurs possibles sont\ :
+.sp 1
+.in +9n
+\- non signalé
+.br
+TS SCHED_OTHER
+.br
+FF SCHED_FIFO
+.br
+RR SCHED_RR
+.br
+B SCHED_BATCH
+.br
+ISO SCHED_ISO
+.br
+IDL SCHED_IDLE
+.br
+DLN SCHED_DEADLINE
+.br
+? valeur inconnue
+.in
+T}
+
+ppid PPID T{
+PID du processus parent.
+T}
+
+pri PRI T{
+priority of the process. Higher number means higher priority.
+T}
+
+psr PSR T{
+processor that process last executed on.
+T}
+
+pss PSS T{
+Proportional share size, the non\-swapped physical memory, with shared memory
+proportionally accounted to all tasks mapping it.
+T}
+
+rbytes RBYTES T{
+Number of bytes which this process really did cause to be fetched from the storage layer.
+T}
+
+rchars RCHARS T{
+Number of bytes which this task has caused to be read from storage.
+T}
+
+rgid RGID T{
+Identifiant de groupe réel (RGID).
+T}
+
+rgroup RGROUP T{
+Identifiant de groupe réel, au format texte s'il peut être obtenu et
+que la largeur du champ le permet, sous forme d'entier décimal sinon.
+T}
+
+rops ROPS T{
+Number of read I/O operations—that is, system calls such as
+\fBread\fP(2) and \fBpread\fP(2).
+T}
+
+rss RSS T{
+Taille de mémoire résidente («\ resident set size\ » ou RSS),
+la mémoire physique non transférée vers l'espace d'échange (swap)
+qu'une tâche a utilisée (en kilooctets) (alias
+\fBrssize\fP, \fBrsz\fP).
+T}
+
+rssize RSS T{
+Consultez
+\fBrss\fP
+(alias
+\fBrss\fP, \fBrsz\fP).
+T}
+
+rsz RSZ T{
+Consultez
+\fBrss\fP
+(alias
+\fBrss\fP, \fBrssize\fP).
+T}
+
+rtprio RTPRIO T{
+Priorité temps réel («\ realtime\ »).
+T}
+
+ruid RUID T{
+Identifiant d'utilisateur réel (RUID).
+T}
+
+ruser RUSER T{
+Identifiant d'utilisateur réel (RUID),au format texte
+s'il peut être obtenu et que la largeur du champ le permet,
+sous forme d'entier décimal sinon.
+T}
+
+s S T{
+Affichage d'état minimal (un caractère).
+Consultez la section
+\fBCODES D'ÉTAT DE PROCESSUS\fP
+pour la signification des différentes valeurs.
+Consultez aussi
+\fBstat\fP
+pour l'affichage de renseignements supplémentaires
+(alias
+\fBstate\fP).
+T}
+
+sched SCH T{
+Ordonnancement de la politique du processus. Les politiques SCHED_OTHER (SCHED_NORMAL),
+SCHED_FIFO, SCHED_RR, SCHED_BATCH, SCHED_ISO et SCHED_IDLE sont respectivement
+affichées comme 0, 1, 2, 3, 4 et 5.
+T}
+
+seat SEAT T{
+Afficher l'identifiant associé à tous les périphériques ayant un
+emplacement de travail précis,
+si la prise en charge de systemd a été incluse.
+T}
+
+sess SESS T{
+Identifiant de session ou, de manière équivalente, le PID du meneur de session
+(alias
+\fBsession\fP, \fBsid\fP).
+T}
+
+sgi_p P T{
+Processeur sur lequel le processus est actuellement exécuté.
+Afficher «\ *\ » si le processus ne s'exécute pas ou ne peut pas s'exécuter.
+T}
+
+sgid SGID T{
+Identifiant de groupe (GID) sauvegardé
+(alias
+\fBsvgid\fP).
+T}
+
+sgroup SGROUP T{
+Nom de groupe sauvegardé,
+au format texte s'il peut être obtenu
+et que la largeur du champ le permet,
+sous forme d'entier décimal sinon.
+T}
+
+sid SID T{
+Consultez
+\fBsess\fP
+(alias
+\fBsess\fP, \fBsession\fP).
+T}
+
+sig PENDING T{
+Consultez
+\fBpending\fP
+(alias
+\fBpending\fP, \fBsig_pend\fP).
+T}
+
+sigcatch CAUGHT T{
+Consultez
+\fBcaught\fP
+(alias
+\fBcaught\fP, \fBsig_catch\fP).
+T}
+
+sigignore IGNORED T{
+Consultez
+\fBignored\fP
+(alias
+\fBignored\fP, \fBsig_ignore\fP).
+T}
+
+sigmask BLOCKED T{
+Consultez
+\fBblocked\fP
+(alias
+\fBblocked\fP, \fBsig_block\fP).
+T}
+
+size SIZE T{
+Montant approximatif d'espace d'échange qui serait nécessaire
+si le processus s'apprêtait à modifier («\ dirty\ ») toutes les
+pages accessibles en écriture puis se transférait sur l'espace
+d'échange («\ swap\ »). Ce nombre est très approximatif\ !
+T}
+
+slice SLICE T{
+Unité «\ slice\ » à laquelle appartient le processus
+si la prise en charge de systemd a été incluse.
+T}
+
+spid SPID T{
+Consultez
+\fBlwp\fP
+(alias
+\fBlwp\fP, \fBtid\fP).
+T}
+
+stackp STACKP T{
+Adresse du bas (début) de la pile pour le processus.
+T}
+
+start STARTED T{
+time the command started. If the process was started less than 24 hours ago,
+the output format is "HH:MM:SS", else it is "\ \ Mmm\ dd" (where Mmm is a
+three\-letter month name). See also
+\fBbsdstart\fP, \fBstart\fP, \fBstart_time\fP, and \fBstime\fP.
+T}
+
+start_time START T{
+Heure ou date de démarrage du processus.
+Seule l'année est affichée si le processus n'a pas été
+démarré la même année que
+\fBps\fP
+a été appelé,
+«\ MmmDD\ » s'il n'a pas été démarré le même jour
+ou «\ HH:MM\ » sinon.
+Consultez aussi
+\fBbsdstart\fP, \fBstart\fP, \fBlstart\fP et \fBstime\fP.
+T}
+
+stat STAT T{
+État multicaractère du processus.
+Consultez la section
+\fBCODES D'ÉTAT DE PROCESSUS\fP
+pour la signification des différentes valeurs.
+Consultez aussi
+\fBs\fP et \fBstate\fP
+pour l'affichage du premier caractère seulement.
+T}
+
+state S T{
+Consultez
+\fBs\fP.\& (alias\fB\ s\fP).
+T}
+
+stime STIME T{
+see \fBstart_time\fP. (alias \fBstart_time\fP).
+T}
+
+suid SUID T{
+Identifiant utilisateur (UID) sauvegardé (alias
+\fBsvuid\fP).
+T}
+
+supgid SUPGID T{
+GID des groupes additionnels, s'il y en a.
+Consultez
+\fBgetgroups\fP(2).
+T}
+
+supgrp SUPGRP T{
+Noms des groupes additionnels, s'il y en a.
+Consultez
+\fBgetgroups\fP(2).
+T}
+
+suser SUSER T{
+Nom d'utilisateur sauvegardé, au format texte s'il peut
+être obtenu et que la largeur du champ le permet,
+sous forme d'entier décimal sinon. (alias
+\fBsvuser\fP).
+T}
+
+svgid SVGID T{
+Consultez
+\fBsgid\fP
+(alias
+\fBsgid\fP).
+T}
+
+svuid SVUID T{
+Consultez
+\fBsuid\fP
+(alias
+\fBsuid\fP).
+T}
+
+sz SZ T{
+Taille en pages physiques de l'image du noyau du processus,
+incluant le texte, les données et l'espace de la pile.
+Les correspondances («\ mappings\ ») de périphériques sont
+actuellement ignorées, mais cela pourrait changer.
+Consultez
+\fBvsz\fP et\fB\ rss\fP.
+T}
+
+tgid TGID T{
+Un nombre représentant le groupe de processus légers auquel une tâche appartient,
+(alias
+\fBpid\fP).
+C'est l'identifiant de processus du meneur de groupe de processus légers.
+T}
+
+thcount THCNT T{
+Consultez
+\fBnlwp\fP
+(alias
+\fBnlwp\fP).
+Nombre de processus légers du noyau (thread) appartenant au processus.
+T}
+
+tid TID T{
+the unique number representing a dispatchable entity (alias
+\fBspid\fP, \fBtid\fP).
+This value may also appear as: a process ID (pid); a process group ID (pgrp);
+a session ID for the session leader (sid); a thread group ID for the thread
+group leader (tgid); and a tty process group ID for the process group leader
+(tpgid).
+T}
+
+time TIME T{
+Temps CPU cumulé, au format «\ [JJ\-]HH:MM:SS\ » (alias
+\fBcputime\fP).
+T}
+
+timens TIMENS T{
+Unique inode number describing the namespace the process belongs to.
+See
+\fInamespaces\fP(7).
+T}
+
+times TIME T{
+Temps CPU cumulé, en seconde (alias
+\fBcputime\fP).
+T}
+
+tname TTY T{
+tty (terminal) de contrôle
+(alias
+\fBtt\fP, \fBtty\fP).n
+T}
+
+tpgid TPGID T{
+Identifiant du groupe de processus au premier plan sur le terminal (tty)
+auquel le processus est connecté, ou \-1 si le processus n'est pas connecté
+à un tty.
+T}
+
+trs TRS T{
+Taille du texte en mémoire résidente, la quantité de mémoire physique consacrée au code exécutable.
+T}
+
+tt TT T{
+tty (terminal) de contrôle
+(alias
+\fBtname\fP, \fBtty\fP).
+T}
+
+tty TT T{
+tty (terminal) de contrôle
+(alias
+\fBtname\fP, \fBtt\fP).
+T}
+
+ucmd CMD T{
+Consultez
+\fBcomm\fP
+(alias
+\fBcomm\fP, \fBucomm\fP).
+T}
+
+ucomm COMMAND T{
+Consultez
+\fBcomm\fP
+(alias
+\fBcomm\fP, \fBucmd\fP).
+T}
+
+uid UID T{
+Consultez
+\fBeuid\fP
+(alias
+\fBeuid\fP).
+T}
+
+uname USER T{
+Consultez
+\fBeuser\fP
+(alias
+\fBeuser\fP, \fBuser\fP).
+T}
+
+unit UNIT T{
+Afficher l'unité «\ slice\ » à laquelle appartient le processus,
+si la prise en charge de systemd est incluse.
+T}
+
+user USER T{
+Consultez
+\fBeuser\fP
+(alias
+\fBeuser\fP, \fBuname\fP).
+T}
+
+userns USERNS T{
+Unique inode number describing the namespace the process belongs to.
+See
+\fInamespaces\fP(7).
+T}
+
+uss USS T{
+Unique set size, the non\-swapped physical memory, which
+is not shared with an another task.
+T}
+
+utsns UTSNS T{
+Unique inode number describing the namespace the process belongs to.
+See
+\fInamespaces\fP(7).
+T}
+
+uunit UUNIT T{
+Afficher l'unité «\ slice\ » à laquelle appartient le processus,
+si la prise en charge de systemd est incluse.
+T}
+
+vsize VSZ T{
+Consultez
+\fBvsz\fP
+(alias
+\fBvsz\fP).
+T}
+
+vsz VSZ T{
+Taille de la mémoire virtuelle du processus en Kio (unités de 1024\ octets).
+Les correspondances («\ mappings\ ») de périphériques sont actuellement
+ignorées, mais cela pourrait changer
+(alias
+\fBvsize\fP).
+T}
+
+wbytes WBYTES T{
+Number of bytes which this process caused to be sent to the storage layer.
+T}
+
+wcbytes WCBYTES T{
+Number of cancelled write bytes.
+T}
+
+wchan WCHAN T{
+name of the kernel function in which the process is sleeping.
+T}
+
+wchars WCHARS T{
+Number of bytes which this task has caused, or shall cause to be written to disk.
+T}
+
+wops WOPS T{
+Number of write I/O operations—that is, system calls such as
+\fBwrite\fP(2) and \fBpwrite\fP(2).
+T}
+
+.TE
+.SH "VARIABLES D'ENVIRONNEMENT"
+Les variables d'environnement suivantes peuvent affecter \fBps\fP\ :
+.TP 3
+\fBCOLUMNS\fP
+Remplacer la largeur par défaut de l'affichage.
+.TP
+\fBLINES\fP
+Remplacer la hauteur par défaut de l'affichage.
+.TP
+\fBPS_PERSONALITY\fP
+Configurer parmi posix, old, linux, bsd, sun, digital, etc. (consultez
+ci\-dessous la section \fBPERSONNALITÉ\fP).
+.TP
+\fBCMD_ENV\fP
+Configurer parmi posix, old, linux, bsd, sun, digital, etc. (consultez
+ci\-dessous la section \fBPERSONNALITÉ\fP).
+.TP
+\fBI_WANT_A_BROKEN_PS\fP
+Forcer l'interprétation obsolète de la ligne de commande.
+.TP
+\fBLC_TIME\fP
+Format de date.
+.TP
+\fBLIBPROC_HIDE_KERNEL\fP
+Set this to any value to hide kernel threads normally displayed with the
+\fB\-e\fP option. This is equivalent to selecting \fB\-\-ppid 2 \-p 2 \-\-deselect\fP
+instead. Also works in BSD mode.
+.TP
+\fBPS_COLORS\fP
+Non pris en charge pour le moment.
+.TP
+\fBPS_FORMAT\fP
+Redéfinir le format de sortie par défaut, à configurer avec une chaîne de
+format du même type que celle utilisée pour l'option \fB\-o\fP. Les valeurs
+\fBDefSysV\fP et \fBDefBSD\fP sont particulièrement utiles.
+.TP
+\fBPOSIXLY_CORRECT\fP
+Ne pas chercher d'excuse pour ignorer les mauvaises «\ fonctionnalités\ ».
+.TP
+\fBPOSIX2\fP
+Agir comme \fBPOSIXLY_CORRECT\fP une fois configuré à «\ on\ ».
+.TP
+\fBUNIX95\fP
+Ne pas chercher d'excuse pour ignorer les mauvaises «\ fonctionnalités\ ».
+.TP
+\fB_XPG\fP
+Annuler le comportement non standard \fBCMD_ENV\fP=\fIirix\fP.
+.PP
+Il est généralement déconseillé de configurer ces variables, à l'exception
+de \fBCMD_ENV\fP ou \fBPS_PERSONALITY\fP. Ces dernières peuvent être configurées à
+linux pour les systèmes normaux. Sans cette configuration, \fBps\fP suit les
+aspects inutiles et mauvais de la norme Unix98.
+.SH PERSONNALITÉ
+.TS
+l l.
+390 comme le \fBps\fP d'0S/390 Open Edition
+aix comme le \fBps\fP d'AIX
+bsd comme le \fBps\fP de FreeBSD (complètement non standard)
+compaq comme le \fBps\fP de Digital Unix B
+debian comme l'ancien \fBps\fP de Debian
+digital comme le \fBps\fP de Tru64 (ex. Digital Unix, ex. OSF/1)
+gnu comme l'ancien \fBps\fP de Debian
+hp comme le \fBps\fP de HP\-UX
+hpux comme le \fBps\fP de HP\-UX
+irix comme le \fBps\fP d'Irix
+linux ***** \fBrecommandé\fP *****
+old comme le \fBps\fP d'origine de Linux (entièrement non standard)
+os390 comme le \fBps\fP d'OS/390 Open Edition
+posix standard
+s390 comme le \fBps\fP d'OS/390 Open Edition
+sco comme le \fBps\fP de SCO
+sgi comme le \fBps\fP d'Irix
+solaris2 comme le \fBps\fP de Solaris 2+ (SunOS 5)
+sunos4 comme le \fBps\fP de SunOS 4 (Solaris 1) (non standard)
+svr4 standard
+sysv standard
+tru64 comme le \fBps\fP de Tru64 (ex. Digital Unix, ex. OSF/1)
+unix standard
+unix95 standard
+unix98 standard
+.TE
+.SH BOGUES
+The fields \fBbsdstart\fP and \fBstart\fP will only show the abbreviated month
+name in English. The fields \fBlstart\fP and \fBstime\fP will show the abbreviated
+month name in the configured locale but may exceed the column width due to
+the different lengths for abbreviated month and day names across languages.
+.PP
+.SH "VOIR AUSSI"
+\fBpgrep\fP(1), \fBpstree\fP(1), \fBtop\fP(1), \fBstrftime\fP(3), \fBproc\fP(5).
+.SH STANDARDS
+Ce \fBps\fP est conforme à\ :
+.PP
+.PD 0
+.IP 1 4
+la Single UNIX Specification version\ 2\ ;
+.IP 2 4
+les Open Group Technical Standard Base Specifications, version\ 6\ ;
+.IP 3 4
+l'IEEE Std 1003.1, édition\ 2004\ ;
+.IP 4 4
+la X/Open System Interfaces Extension [UP XSI]\ ;
+.IP 5 4
+l'ISO/IEC 9945:2003.
+.PD
+.SH AUTEUR
+\fBps\fP was originally written by
+.MT lankeste@\:fwi.\:uva.\:nl
+Branko
+Lankester
+.ME .
+.MT johnsonm@\:redhat.\:com
+Michael K. Johnson
+.ME
+re\-wrote it significantly to use the proc filesystem, changing a few things
+in the process.
+.MT mjshield@\:nyx.\:cs.\:du.\:edu
+Michael Shields
+.ME
+added the pid\-list feature.
+.MT cblake@\:bbn.\:com
+Charles Blake
+.ME
+added multi\-level sorting, the dirent\-style library, the device
+name\-to\-number mmaped database, the approximate binary search directly on
+System.map, and many code and documentation cleanups. David Mossberger\-Tang
+wrote the generic BFD support for psupdate.
+.MT albert@\:users.\:sf.\:net
+Albert Cahalan
+.ME
+rewrote ps for full Unix98
+and BSD support, along with some ugly hacks for obsolete and foreign syntax.
+.PP
+Signalez les bogues à
+.MT procps@\:freelists.\:org
+.ME .
+. L'inscription n'est ni nécessaire, ni suggérée.
diff --git a/po-man/fr/pwdx.1 b/po-man/fr/pwdx.1
new file mode 100644
index 0000000..3a928bc
--- /dev/null
+++ b/po-man/fr/pwdx.1
@@ -0,0 +1,37 @@
+.\"
+.\" Copyright (c) 2020-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2004 Nicholas Miel.
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PWDX 1 2020\-06\-04 procps\-ng "Commandes de l'utilisateur"
+.SH NOM
+pwdx \- Afficher le répertoire de travail d'un processus
+.SH SYNOPSIS
+\fBpwdx\fP [\fIoptions\fP] \fIPID\fP [...]
+.SH OPTIONS
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Afficher la version du logiciel et quitter.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Afficher un écran d'aide puis quitter.
+.SH "VOIR AUSSI"
+\fBps\fP(1), \fBpgrep\fP(1)
+.SH STANDARDS
+Aucune norme n'est respectée mais \fBpwdx\fP ressemble fortement à une commande
+SunOS.
+.SH AUTEUR
+Nicholas Miell <\fInmiell@gmail.com\fP> a écrit pwdx en 2004.
+.SH BOGUES
+Signalez les bogues à <\fIprocps@freelists.org\fP>
diff --git a/po-man/fr/skill.1 b/po-man/fr/skill.1
new file mode 100644
index 0000000..2f52a03
--- /dev/null
+++ b/po-man/fr/skill.1
@@ -0,0 +1,116 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2006 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SKILL 1 2023\-08\-19 procps\-ng "Commandes de l'utilisateur"
+.SH NOM
+skill, snice \- Envoyer un signal ou rendre compte de l'état d'un processus
+.SH SYNOPSIS
+\fBskill\fP [\fIsignal\fP] [\fIoptions\fP] \fIexpression\fP
+.br
+\fBsnice\fP [\fInouvelle priorité\fP] [\fIoptions\fP] \fIexpression\fP
+.SH DESCRIPTION
+These tools are obsolete and unportable. The command syntax is poorly
+defined. Consider using the \fBkillall\fP, \fBpkill\fP, and \fBpgrep\fP commands
+instead.
+.PP
+The default signal for \fBskill\fP is TERM. Use \fB\-l\fP or \fB\-L\fP to list
+available signals. Particularly useful signals include HUP, INT, KILL,
+STOP, CONT, and 0. Alternate signals may be specified in three ways: \fB\-9\fP
+\fB\-SIGKILL\fP \fB\-KILL\fP.
+.PP
+The default priority for \fBsnice\fP is +4. Priority numbers range from +20
+(slowest) to \-20 (fastest). Negative priority numbers are restricted to
+administrative users.
+.SH OPTIONS
+.TP
+\fB\-f\fP,\fB\ \-\-fast\fP
+Mode rapide. Cette option n'a pas été implémentée.
+.TP
+\fB\-i\fP,\fB\ \-\-interactive\fP
+Mode interactif. Chaque action devra être validée.
+.TP
+\fB\-l\fP,\fB\ \-\-list\fP
+Afficher tous les noms de signaux.
+.TP
+\fB\-L\fP, \fB\-\-table\fP
+Afficher tous les noms de signaux en tableau bien présenté.
+.TP
+\fB\-n\fP,\fB\ \-\-no\-action\fP
+Pas d'action. Réaliser une simulation des événements qui auraient lieu mais
+sans vraiment modifier le système.
+.TP
+\fB\-v\fP,\fB\ \-\-verbose\fP
+Bavard. Expliquer ce qui est en train de se faire.
+.TP
+\fB\-w\fP,\fB\ \-\-warnings\fP
+Alertes activées. Cette option n'a pas été implémentée.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Afficher l'aide et quitter.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Afficher les informations de version.
+.PD
+.SH "OPTIONS DE SÉLECTION DES PROCESSUS"
+Les critères de sélection peuvent être\ : terminal, nom d'utilisateur,
+identifiant de processus, commande. Les options ci\-dessous peuvent être
+utilisées pour s'assurer d'une interprétation correcte.
+.TP
+\fB\-t\fP, \fB\-\-tty\fP \fItty\fP
+\fItty\fP est un terminal (tty ou pty).
+.TP
+\fB\-u\fP, \fB\-\-user\fP \fIutilisateur\fP
+\fIutilisateur\fP est un nom d'utilisateur.
+.TP
+\fB\-p\fP, \fB\-\-pid\fP \fIPID\fP
+\fIPID\fP est un numéro d'identifiant de processus.
+.TP
+\fB\-c\fP, \fB\-\-command\fP \fIcommande\fP
+\fIcommande\fP est un nom de commande.
+.TP
+\fB\-\-ns\fP \fIPID\fP
+Sélectionner les processus qui appartiennent aux mêmes espaces de nommage
+que \fIPID\fP.
+.TP
+\fB\-\-nslist \fP\fIns\/\fP,\,\fI...\/\fP
+list which namespaces will be considered for the \fB\-\-ns\fP option. Available
+namespaces: ipc, mnt, net, pid, user, uts.
+.PD
+.SH SIGNAUX
+Le comportement du signal est expliqué dans la page de manuel \fBsignal\fP(7).
+.SH EXEMPLES
+.TP
+\fBsnice \-c seti \-c crack +7\fP
++Slow down \fBseti\fP and \fBcrack\fP commands.
+.TP
+\fBskill \-KILL \-t /dev/pts/*\fP
+Tuer les utilisateurs sur les périphériques PTY.
+.TP
+\fBskill \-STOP \-u viro \-u lm \-u davem\fP
+Suspendre les trois utilisateurs en question.
+.SH "VOIR AUSSI"
+\fBkill\fP(1), \fBkill\fP(2), \fBkillall\fP(1), \fBnice\fP(1), \fBpkill\fP(1),
+\fBrenice\fP(1), \fBsignal\fP(7)
+.SH STANDARDS
+Aucune norme ne s'applique.
+.SH AUTEUR
+Albert Cahalan
+.MT albert@users.sf.net
+.ME
+a écrit skill et snice en
+1999 en remplacement d'une version non libre.
+.SH BOGUES
+Signalez les bogues à <\fIprocps@freelists.org\fP>
diff --git a/po-man/fr/slabtop.1 b/po-man/fr/slabtop.1
new file mode 100644
index 0000000..9545623
--- /dev/null
+++ b/po-man/fr/slabtop.1
@@ -0,0 +1,108 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2004-2006 Albert Cahalan
+.\" Copyright (C) 2003 Chris Rivera
+.\"
+.\" This program is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU Lesser General Public License as
+.\" published by the Free Software Foundation; either version 2.1 of the
+.\" License, or (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SLABTOP 1 2021\-03\-11 procps\-ng "Commandes de l'utilisateur"
+.SH NOM
+slabtop \- Afficher en temps réel les informations des caches slab du noyau
+.SH SYNOPSIS
+\fBslabtop\fP [\fIoptions\fP]
+.SH DESCRIPTION
+\fBslabtop\fP affiche en temps réel les informations détaillées des caches slab
+(objets alloués au noyau) du noyau. Une liste des principaux caches, triée
+selon différents critères, est présentée. Un en\-tête présente également des
+statistiques de la couche slab.
+.SH OPTIONS
+Un appel normal de \fBslabtop\fP ne demande aucune option. Le comportement peut
+cependant être affiné en ajoutant une ou plusieurs des options suivantes\ :
+.TP
+\fB\-d\fP, \fB\-\-delay=\fP\fIN\fP
+Refresh the display every \fIn\fP in seconds. By default, \fBslabtop\fP refreshes
+the display every three seconds. To exit the program, hit \fBq\fP. This
+cannot be combined with the \fB\-o\fP option.
+.TP
+\fB\-s\fP, \fB\-\-sort=\fP\fIS\fP
+Trier selon le critère de tri \fIS\fP.
+.TP
+\fB\-o\fP, \fB\-\-once\fP
+Afficher la sortie une seule fois et quitter.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Afficher la version du logiciel et quitter.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Afficher l'aide\-mémoire et quitter.
+.SH "CRITÈRES DE TRI"
+Les critères de tri suivants sont utilisés pour classer les caches slab un
+par un et déterminer ceux qui seront affichés en tête du classement. Le
+classement par défaut est fait selon le nombre d'objets («\ o\ »).
+.PP
+Les critères de tri peuvent également être modifiés pendant l'exécution de
+\fBslabtop\fP en entrant le caractère associé.
+.TS
+l l l.
+\fBcaractère\fP \fBdescription\fP \fBheader\fP
+a nombre d'objets actifs ACTIF
+b nombre d'objets par slab OBJ/SLAB
+c taille du cache TAILLE DU CACHE
+l nombre de slabs SLABS
+v nombre de slabs actifs N/A
+n nom NOM\:
+o nombre d'objets OBJS
+p nombre de pages par slab N/A
+s taille des objets TAILLE OBJ
+u utilisation du cache USAGE
+.TE
+.SH COMMANDES
+\fBslabtop\fP accepte les commandes entrées au clavier par l'utilisateur
+pendant l'exécution. Les commandes suivantes sont gérées. Lorsqu'il s'agit
+de lettres, les minuscules et les majuscules sont acceptées.
+.PP
+Tous les caractères de tri valables sont aussi acceptés, afin de changer la
+méthode de tri. Consultez la section \fBCRITÈRES DE TRI\fP.
+.TP
+\fB<BARRE_D'ESPACE>\fP
+Rafraîchir l'écran.
+.TP
+\fBQ\fP
+Quitter le programme.
+.SH FICHIERS
+.TP
+\fI/proc/slabinfo\fP
+informations sur slab
+.SH "VOIR AUSSI"
+\fBfree\fP(1), \fBps\fP(1), \fBtop\fP(1), \fBvmstat\fP(8)
+.SH NOTES
+Actuellement, \fBslabtop\fP requiert un noyau\ 2.4 ou supérieur (en
+particulier, une version\ 1.1 ou supérieure de \fI/proc/slabinfo\fP). Les
+noyaux\ 2.2 devraient être gérés dans le futur.
+.PP
+The \fBslabtop\fP statistic header is tracking how many bytes of slabs are
+being used and is not a measure of physical memory. The 'Slab' field in the
+\fI/proc/meminfo\fP file is tracking information about used slab physical
+memory.
+.PP
+The \fBCACHE SIZE\fP column is not accurate, it's the upper limit of memory
+used by specific slab. When system using slub (most common case) is under
+high memory pressure, there are slab order fallbacks, which means "pages per
+slab" is not constant and may decrease.
+.SH AUTEURS
+Écrit par Chris Rivera et Robert Love.
+.PP
+\fBslabtop\fP a été inspiré par le script Perl \fBvmtop\fP de Martin Bligh.
+.SH BOGUES
+Signalez les bogues à <\fIprocps@freelists.org\fP>
diff --git a/po-man/fr/sysctl.8 b/po-man/fr/sysctl.8
new file mode 100644
index 0000000..b4506b1
--- /dev/null
+++ b/po-man/fr/sysctl.8
@@ -0,0 +1,171 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2004-2006 Albert Cahalan
+.\" Copyright (c) 1999 George Staikos <staikos@0wned.org>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SYSCTL 8 2023\-08\-19 procps\-ng "Administration système"
+.SH NOM
+sysctl \- Configurer les paramètres du noyau à chaud
+.SH SYNOPSIS
+\fBsysctl\fP [\fIoptions\fP] [\fIvariable\fP[\fB=\fP\fIvaleur\fP]] [...]
+.br
+\fBsysctl \-p\fP [\fIfichier\fP | \fIexpression rationnelle\fP] [...]
+.SH DESCRIPTION
+\fBsysctl\fP is used to modify kernel parameters at runtime. The parameters
+available are those listed under \fI/proc/sys/\fP. Procfs is required for
+\fBsysctl\fP support in Linux. You can use \fBsysctl\fP to both read and write
+sysctl data.
+.SH PARAMÈTRES
+.TP
+\fIvariable\fP
+Le nom d'une clé à lire. Par exemple «\ kernel.ostype\ ». Le séparateur
+«\ /\ » est aussi accepté en lieu et place de «\ .\ ».
+.TP
+\fIvariable\fP\fB=\fP\fIvaleur\fP
+Pour saisir une clé, utilisez la forme \fIvariable\fP\fB=\fP\fIvaleur\fP, où
+\fIvariable\fP est la clé et \fIvaleur\fP la valeur à lui affecter. Si valeur
+contient des apostrophes ou des caractères interprétés par l'interpréteur de
+commande, il faut placer la valeur entre guillemets doubles.
+.TP
+\fB\-n\fP, \fB\-\-values\fP
+Empêcher l'affichage des clés lors de l'affichage des valeurs.
+.TP
+\fB\-e\fP, \fB\-\-ignore\fP
+Ignorer les erreurs concernant les clés inconnues.
+.TP
+\fB\-N\fP, \fB\-\-names\fP
+Afficher les options. Cela peut être utile pour les interpréteurs de
+commandes disposant d'un complètement automatique programmable.
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+Empêcher l'affichage des valeurs dans la sortie standard.
+.TP
+\fB\-w\fP, \fB\-\-write\fP
+Force all arguments to be write arguments and print an error if they cannot
+be parsed this way.
+.TP
+\fB\-p\fP[\fIfichier\fP], \fB\-\-load\fP[\fB=\fP\fIfichier\fP]
+Load in \fBsysctl\fP settings from the file specified or \fI/etc/sysctl.conf\fP if
+none given. Specifying \- as filename means reading data from standard
+input. Using this option will mean arguments to \fBsysctl\fP are files, which
+are read in the order they are specified. The file argument may be
+specified as regular expression.
+.TP
+\fB\-a\fP, \fB\-\-all\fP
+Afficher toutes les valeurs disponibles.
+.TP
+\fB\-\-deprecated\fP
+Inclure les paramètres obsolètes à la liste de valeurs avec \fB\-\-all\fP.
+.TP
+\fB\-b\fP, \fB\-\-binary\fP
+Afficher la valeur sans retour à la ligne.
+.TP
+\fB\-\-system\fP
+Load settings from all system configuration files. See the \fBSYSTEM FILE PRECEDENCE\fP section below.
+.TP
+\fB\-r\fP, \fB\-\-pattern\fP \fImotif\fP
+N'appliquer que les réglages qui correspondent au \fImotif\fP. Le \fImotif\fP
+utilise la syntaxe d'expression rationnelle étendue.
+.TP
+\fB\-A\fP
+Alias de \fB\-a\fP.
+.TP
+\fB\-d\fP
+Alias de \fB\-h\fP.
+.TP
+\fB\-f\fP
+Alias de \fB\-p\fP.
+.TP
+\fB\-X\fP
+Alias de \fB\-a\fP.
+.TP
+\fB\-o\fP
+Ne rien faire, pour la compatibilité BSD.
+.TP
+\fB\-x\fP
+Ne rien faire, pour la compatibilité BSD.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Afficher l'aide et quitter.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Afficher la version du logiciel et quitter.
+.SH "SYSTEM FILE PRECEDENCE"
+When using the \fB\-\-system\fP option, \fBsysctl\fP will read files from
+directories in the following list in given order from top to bottom. Once a
+file of a given filename is loaded, any file of the same name in subsequent
+directories is ignored.
+
+\fI/etc/sysctl.d/*.conf\fP
+.br
+\fI/run/sysctl.d/*.conf\fP
+.br
+\fI/usr/local/lib/sysctl.d/*.conf\fP
+.br
+\fI/usr/lib/sysctl.d/*.conf\fP
+.br
+\fI/lib/sysctl.d/*.conf\fP
+.br
+\fI/etc/sysctl.conf\fP
+
+All configuration files are sorted in lexicographic order, regardless of the
+directory they reside in. Configuration files can either be completely
+replaced (by having a new configuration file with the same name in a
+directory of higher priority) or partially replaced (by having a
+configuration file that is ordered later).
+.SH EXEMPLES
+/sbin/sysctl \-a
+.br
+/sbin/sysctl \-n kernel.hostname
+.br
+/sbin/sysctl \-w kernel.domainname="example.com"
+.br
+/sbin/sysctl \-p/etc/sysctl.conf
+.br
+/sbin/sysctl \-a \-\-pattern forward
+.br
+/sbin/sysctl \-a \-\-pattern forward$
+.br
+/sbin/sysctl \-a \-\-pattern 'net.ipv4.conf.(eth|wlan)0.arp'
+.br
+/sbin/sysctl \-\-pattern '\[char94]net.ipv6' \-\-system
+.SH "PARAMÈTRES OBSOLÈTES"
+The \fBbase_reachable_time\fP and \fBretrans_time\fP are deprecated. The
+\fBsysctl\fP command does not allow changing values of these parameters. Users
+who insist to use deprecated kernel interfaces should push values to
+\fB/proc\fP file system by other means. For example:
+.PP
+echo 256 > /proc/sys/net/ipv6/neigh/eth0/base_reachable_time
+.SH FICHIERS
+\fI/proc/sys\fP
+.br
+\fI/etc/sysctl.d/*.conf\fP
+.br
+\fI/run/sysctl.d/*.conf\fP
+.br
+\fI/usr/local/lib/sysctl.d/*.conf\fP
+.br
+\fI/usr/lib/sysctl.d/*.conf\fP
+.br
+\fI/lib/sysctl.d/*.conf\fP
+.br
+\fI/etc/sysctl.conf\fP
+.SH "VOIR AUSSI"
+\fBproc\fP(5), \fBsysctl.conf\fP(5), \fBregex\fP(7)
+.SH AUTEUR
+George Staikos <\fIstaikos@wnedorg\fP>
+.SH BOGUES
+Signalez les bogues à <\fIprocps@freelists.org\fP>
diff --git a/po-man/fr/sysctl.conf.5 b/po-man/fr/sysctl.conf.5
new file mode 100644
index 0000000..8c958f7
--- /dev/null
+++ b/po-man/fr/sysctl.conf.5
@@ -0,0 +1,86 @@
+.\"
+.\" Copyright (c) 2016-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2019-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1999 George Staikos <staikos@0wned.org>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SYSCTL.CONF 5 2021\-09\-15 procps\-ng "Formats de fichier"
+.SH NOM
+sysctl.conf \- Fichier de configuration et de chargement pour sysctl
+.SH DESCRIPTION
+\fIsysctl.conf\fP est un simple fichier contenant les valeurs qui doivent être
+définies par \fBsysctl\fP. La syntaxe est la suivante\ :
+.RS
+.sp
+.nf
+.ne 7
+# commentaire
+; commentaire
+
+élément = valeur
+.fi
+.RE
+.PP
+Notez que les lignes vides et les espaces avant ou après un élément ou une
+valeur sont ignorées. Une valeur peut, cependant, contenir des espaces. Les
+lignes commençant par un \fI#\fP ou un \fI;\fP sont des commentaires et sont donc
+ignorées.
+
+Si une ligne débute par un seul \-, toute tentative échouée de définir cette
+valeur sera ignorée.
+
+.SH NOTES
+Comme le fichier \fB/etc/sysctl.conf\fP est utilisé pour redéfinir les
+paramètres par défaut du noyau, seul un petit nombre de paramètres est
+possible dans ce fichier. Utiliser \fI/sbin/sysctl\ \-a\fP ou suivre
+\fBsysctl\fP(8) pour afficher les paramètres disponibles. Chaque paramètre est
+décrit dans la documentation du noyau.
+
+Maximum supported line length of the value is 4096 characters due to a
+limitation of \fI/proc\fP entries in Linux kernel.
+.SH EXEMPLE
+.RS
+.sp
+.nf
+.ne 7
+# Exemple de fichier sysctl.conf
+#
+ kernel.domainname = example.com
+; la ligne suivante contient une espace
+; qui sera passée à la commande sysctl.
+ kernel.modprobe = /sbin/mod probe
+.fi
+.RE
+.PP
+.SH FICHIERS
+\fI/etc/sysctl.d/*.conf\fP
+.br
+\fI/run/sysctl.d/*.conf\fP
+.br
+\fI/usr/local/lib/sysctl.d/*.conf\fP
+.br
+\fI/usr/lib/sysctl.d/*.conf\fP
+.br
+\fI/lib/sysctl.d/*.conf\fP
+.br
+\fI/etc/sysctl.conf\fP
+
+Les chemins où les fichiers préchargés de \fBsysctl\fP qui existent
+d’habitude. Consultez aussi l'option \fB\-\-system\fP de \fBsysctl\fP(8).
+.SH "VOIR AUSSI"
+\fBsysctl\fP(8)
+.SH AUTEUR
+George Staikos <\fIstaikos@wnedorg\fP>
+.SH BOGUES
+Signalez les bogues à <\fIprocps@freelists.org\fP>
diff --git a/po-man/fr/tload.1 b/po-man/fr/tload.1
new file mode 100644
index 0000000..4b7781c
--- /dev/null
+++ b/po-man/fr/tload.1
@@ -0,0 +1,54 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1993 Matt Welsh <mdw@tc.cornell.edu>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH TLOAD 1 2020\-06\-04 procps\-ng "Commandes de l'utilisateur"
+.SH NOM
+tload \- Représentation graphique de la charge moyenne du système
+.SH SYNOPSIS
+\fBtload\fP [\fIoptions\fP] [\fItty\fP]
+.SH DESCRIPTION
+\fBtload\fP affiche un graphe de la charge moyenne du système dans la console
+\fItty\fP (ou la console du processus de \fBtload\fP si aucune n'est précisée).
+.SH OPTIONS
+.TP
+\fB\-s\fP, \fB\-\-scale\fP \fIéchelle\fP
+L'option \fIéchelle\fP permet d'indiquer une échelle verticale pour l'affichage
+(en caractères entre les tirets)\ ; ainsi une plus petite valeur représente
+une plus grande échelle, et vice versa.
+.TP
+\fB\-d\fP, \fB\-\-delay\fP \fIdélai\fP
+Le \fIdélai\fP définit le délai en seconde entre les mises à jour des graphes.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Afficher l'aide et quitter.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Afficher la version du logiciel et quitter.
+.PP
+.SH FICHIERS
+\fI/proc/loadavg\fP information sur la charge moyenne
+.SH "VOIR AUSSI"
+\fBps\fP(1), \fBtop\fP(1), \fBuptime\fP(1), \fBw\fP(1)
+.SH BOGUES
+L'option \fB\-d\fP\fI délai\fP définit le paramètre de temps de la commande
+\fBalarm\fP(2)\ ; si \-d 0 est indiqué, l'alarme est désactivée, elle n'enverra
+jamais de signal \fBSIGALRM\fP bloquant ainsi la mise à jour de l'affichage.
+.SH AUTEURS
+Branko Lankester <\fIlankeste@fwi.uva.nl\fP>, David Engel
+<\fIdavid@ods.com\fP> et Michael K. Johnson
+<\fIjohnsonm@redhat.com\fP>.
+.SH BOGUES
+Signalez les bogues à <\fIprocps@freelists.org\fP>
diff --git a/po-man/fr/uptime.1 b/po-man/fr/uptime.1
new file mode 100644
index 0000000..eed2615
--- /dev/null
+++ b/po-man/fr/uptime.1
@@ -0,0 +1,68 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH UPTIME 1 "décembre 2012" procps\-ng "Commandes de l'utilisateur"
+.SH NOM
+uptime \- Indiquer depuis quand le système a été mis en route
+.SH SYNOPSIS
+\fBuptime\fP [\fIoptions\fP]
+.SH DESCRIPTION
+\fBuptime\fP affiche sur une ligne les informations suivantes\ : l'heure
+actuelle, la durée depuis laquelle le système fonctionne, le nombre
+d'utilisateurs actuellement connectés, et la charge système moyenne pour les
+1, 5, et 15 dernières minutes.
+.PP
+Ce sont les mêmes informations que celles contenues dans la ligne d'en\-tête
+de \fBw\fP(1).
+.PP
+La charge système moyenne est le nombre moyen de processus qui sont dans un
+état exécutable ou non interruptible. Un processus exécutable utilise le
+processeur ou est en attente pour l'utiliser. Un processus non interruptible
+est en attente pour des entrées et sorties, par exemple, attendre un
+disque. Les moyennes sont calculées sur trois intervalles de temps. La
+charge moyenne n'est pas normalisée par rapport au nombre de processeurs du
+système. Ainsi une charge moyenne de 1 signifie qu'un système monoprocesseur
+est chargé tout le temps alors qu'un système à quatre processeurs est
+inactif 75\ % du temps.
+.SH OPTIONS
+.TP
+\fB\-p\fP, \fB\-\-pretty\fP
+Afficher en format élégant
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Afficher l'aide
+.TP
+\fB\-s\fP, \fB\-\-since\fP
+Date depuis laquelle le système est en route, au format aaaa\-mm\-jj HH:MM:SS
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Afficher la version du logiciel et quitter
+.SH FICHIERS
+.TP
+\fI/var/run/utmp\fP
+informations concernant les utilisateurs présents sur le système
+.TP
+\fI/proc\fP
+informations concernant les processus
+.SH AUTEURS
+\fBuptime\fP a été écrit par Larry Greenfield
+<\fIgreenfie@gauss.rutgers.edu\fP> et Michael K. Johnson
+<\fIjohnsonm@sunsite.unc.edu\fP>.
+.SH "VOIR AUSSI"
+\fBps\fP(1), \fBtop\fP(1), \fButmp\fP(5), \fBw\fP(1)
+.SH BOGUES
+Signalez les bogues à <\fIprocps@freelists.org\fP>
diff --git a/po-man/fr/vmstat.8 b/po-man/fr/vmstat.8
new file mode 100644
index 0000000..9bf682a
--- /dev/null
+++ b/po-man/fr/vmstat.8
@@ -0,0 +1,185 @@
+.\"
+.\" Copyright (c) 2002-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2012-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1994 Henry Ware <al172@yfn.ysu.edu>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH VMSTAT 8 2023\-01\-18 procps\-ng "Administration système"
+.SH NOM
+vmstat \- Afficher des statistiques sur la mémoire virtuelle
+.SH SYNOPSIS
+\fBvmstat\fP [\fIoptions\fP] [\fIdélai\fP [\fItotal\fP]]
+.SH DESCRIPTION
+\fBvmstat\fP affiche des informations sur les processus, la mémoire, la
+pagination, les blocs d'entrées et sorties, les interruptions et l'activité
+du processeur et des disques.
+.PP
+Le premier rapport produit présente les moyennes depuis le dernier
+démarrage. Les rapports ultérieurs présentent un compte rendu tous les
+\fIdélai\fP. Les rapports sur les processus et la mémoire sont immédiats dans
+tous les cas de figure.
+.SH OPTIONS
+.TP
+\fIdélai\fP
+Le \fIdélai\fP en seconde entre les mises à jour. Si aucun \fIdélai\fP n'est
+précisé, seul un rapport est affiché avec les valeurs moyennes depuis le
+démarrage.
+.TP
+\fItotal\fP
+Le nombre de mises à jour. Si \fItotal\fP n'est pas indiqué, quand \fIdélai\fP est
+défini, \fItotal\fP vaut l'infini par défaut.
+.TP
+\fB\-a\fP, \fB\-\-active\fP
+Afficher la mémoire active et inactive pour les noyaux\ 2.5.41 et supérieurs.
+.TP
+\fB\-f\fP, \fB\-\-forks\fP
+L'option \fB\-f\fP affiche le nombre de processus fils depuis le démarrage du
+système, à savoir les «\ fork\ », «\ vfork\ » et les clones d'appels
+système. Cela correspond au nombre total de tâches créées. Chaque processus
+est représenté par une ou plusieurs tâches dépendant de l'utilisation des
+processus légers («\ threads\ »). Il n'y a pas de rafraîchissement.
+.TP
+\fB\-m\fP, \fB\-\-slabs\fP
+Afficher le slabinfo.
+.TP
+\fB\-n\fP, \fB\-\-one\-header\fP
+N'afficher l'en\-tête qu'une fois plutôt que périodiquement.
+.TP
+\fB\-s\fP, \fB\-\-stats\fP
+Afficher un tableau de compteurs d'événements et des statistiques sur la
+mémoire. Il s'agit d'un affichage unique.
+.TP
+\fB\-d\fP, \fB\-\-disk\fP
+Afficher des statistiques sur le disque (pour les versions\ 2.5.70 ou
+supérieures).
+.TP
+\fB\-D\fP, \fB\-\-disk\-sum\fP
+Afficher des statistiques succinctes à propos de l'activité des disques.
+.TP
+\fB\-p\fP, \fB\-\-partition\fP \fIpériphérique\fP
+Afficher des statistiques sur les partitions (pour les versions\ 2.5.70 ou
+supérieures).
+.TP
+\fB\-S\fP, \fB\-\-unit\fP \fIlettre\fP
+Switches outputs between 1000 (\fIk\fP), 1024 (\fIK\fP), 1000000 (\fIm\fP), or
+1048576 (\fIM\fP) bytes. Note this does not change the swap (si/so) or block
+(bi/bo) fields.
+.TP
+\fB\-t\fP, \fB\-\-timestamp\fP
+Ajouter un horodatage à toutes les lignes.
+.TP
+\fB\-w\fP, \fB\-\-wide\fP
+Mode de sortie large (utile pour les systèmes avec une grande quantité de
+mémoire, où le mode d’affichage par défaut est victime de rupture de colonne
+involontaire). La sortie est plus grande que 80\ caractères par ligne.
+.TP
+\fB\-y\fP, \fB\-\-no\-first\fP
+Omits first report with statistics since system boot.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Afficher la version du logiciel et quitter.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Afficher l'aide et quitter.
+.PD
+.SH "DESCRIPTIONS DES CHAMPS POUR LE MODE VM"
+.SS "procs (processus)"
+.nf
+r: The number of runnable processes (running or waiting for run time).
+b: The number of processes blocked waiting for I/O to complete.
+.fi
+.SS "memory (mémoire)"
+Ceci est affecté par l'option \fB\-\-unit\fP.
+.nf
+swpd: the amount of swap memory used.
+free: the amount of idle memory.
+buff: the amount of memory used as buffers.
+cache: the amount of memory used as cache.
+inact: the amount of inactive memory. (\fB\-a\fP option)
+active: the amount of active memory. (\fB\-a\fP option)
+.fi
+.SS "swap (espace d'échange)"
+Ceci est affecté par l'option \fB\-\-unit\fP.
+.nf
+si\ : Quantité de mémoire paginée lue depuis le disque en ko/s.
+so\ : Quantité de mémoire paginée transférée sur disque en ko/s.
+.fi
+.SS "io (entrées et sorties)"
+.nf
+bi: Kibibyte received from a block device (KiB/s).
+bo: Kibibyte sent to a block device (KiB/s).
+.fi
+.SS "system (système)"
+.nf
+in\ : Nombre d'interruptions par seconde, incluant l'horloge.
+cs\ : Nombre de bascules du contexte par seconde.
+.fi
+.SS CPU
+Il s'agit de la répartition du temps processeur en pourcentage.
+.nf
+us: Time spent running non\-kernel code. (user time, including nice time)
+sy: Time spent running kernel code. (system time)
+id: Time spent idle. Prior to Linux 2.5.41, this includes IO\-wait time.
+wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle.
+st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.
+gu: Time spent running KVM guest code (guest time, including guest nice).
+.fi
+.SH "DESCRIPTIONS DES CHAMPS POUR LE MODE DISQUE"
+.SS "reads (lectures)"
+.nf
+total\ : Nombre total de lectures réussies.
+merged\ : Lectures groupées (en une seule opération d'entrée ou sortie).
+sectors\ : Secteurs lus avec succès.
+ms\ : Temps de lecture en milliseconde.
+.fi
+.SS "writes (écritures)"
+.nf
+total\ : Nombre total d'écritures terminées avec succès.
+merged\ : Écritures groupées (en une seule opération d'entrée ou sortie).
+sectors\ : Secteurs écrits avec succès.
+ms\ : Temps d'écriture en milliseconde.
+.fi
+.SS "io (entrées et sorties)"
+.nf
+cur\ : Entrées et sorties en cours.
+s\ : Temps en seconde utilisé par les entrées et sorties.
+.fi
+.SH "DESCRIPTIONS DES CHAMPS POUR LE MODE DE PARTITION DE DISQUE"
+.nf
+reads\ : Nombre total de lectures de la partition.
+read sectors\ : Nombre total de secteurs lus pour la partition.
+writes\ : Nombre total d'écritures sur la partition.
+requested writes\ : Nombre total de requêtes d'écriture sur la partition.
+.fi
+.SH "DESCRIPTIONS DES CHAMPS POUR LE MODE SLAB"
+Slab mode shows statistics per slab, for more information about this
+information see \fBslabinfo\fP(5)
+.PP
+.nf
+cache\ : Nom du cache.
+num\ : Nombre d'objets actuellement actifs.
+total\ : Nombre total d'objets disponibles.
+size\ : Taille de chaque objet.
+pages\ : Nombre de pages avec au moins un objet actif.
+.fi
+.SH NOTES
+\fBvmstat\fP requires read access to files under \fI/proc\fP. The \fB\-m\fP requires
+read access to \fI/proc/slabinfo\fP which may not be available to standard
+users. Mount options for \fI/proc\fP such as \fIsubset=pid\fP may also impact
+what is visible.
+.SH "VOIR AUSSI"
+\fBfree\fP(1), \fBiostat\fP(1), \fBmpstat\fP(1), \fBps\fP(1), \fBsar\fP(1), \fBtop\fP(1),
+\fBslabinfo\fP(5)
+.SH BOGUES
+Signalez les bogues à <\fIprocps@freelists.org\fP>
diff --git a/po-man/fr/w.1 b/po-man/fr/w.1
new file mode 100644
index 0000000..f351fe2
--- /dev/null
+++ b/po-man/fr/w.1
@@ -0,0 +1,105 @@
+.\"
+.\" Copyright (c) 2009-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2015-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2012-2013 Jaromir Capik <jcapik@redhat.com>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2004 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH W 1 2023\-01\-15 procps\-ng "Commandes de l'utilisateur"
+.SH NOM
+w \- Afficher les utilisateurs présents sur le système et leur activité
+.SH SYNOPSIS
+\fBw\fP [\fIoptions\fP] [\fIuser\fP]
+.SH DESCRIPTION
+\fBw\fP affiche des informations concernant les utilisateurs qui sont
+actuellement présents sur le système et leurs processus. L'en\-tête affiche,
+dans cet ordre, l'heure actuelle, depuis combien de temps le système est
+actif, combien d'utilisateurs sont actuellement présents sur le système et
+la charge moyenne du système pour la dernière, les 5 et les 15 dernières
+minutes.
+.PP
+Les entrées suivantes sont affichées pour chacun des utilisateurs\ : nom
+d'utilisateur, nom du terminal («\ tty\ »), hôte distant, temps écoulé depuis
+le début de la connexion, temps d'inactivité, JCPU, PCPU, ainsi que la ligne
+de commande de leur processus en cours.
+.PP
+Le temps JCPU est le temps utilisé par tous les processus attachés au
+tty. Il n'inclut pas les travaux terminés qui ont été exécutés en tâche de
+fond, mais il inclut les travaux en tâche de fond qui sont actuellement
+actifs.
+.PP
+Le temps PCPU est le temps utilisé par le processus actuel, le nom de ce
+processus se trouve dans la colonne dont l'intitulé est «\ WHAT\ ».
+.SH "OPTIONS DE LA LIGNE DE COMMANDE"
+.TP
+\fB\-h\fP, \fB\-\-no\-header\fP
+Ne pas afficher l'en\-tête
+.TP
+\fB\-u\fP, \fB\-\-no\-current\fP
+Ignorer le nom d'utilisateur lors de la détermination du nombre de processus
+et des temps CPU. Pour en voir l'effet, faire \fBsu\fP puis \fBw\fP et \fBw \-u\fP.
+.TP
+\fB\-s\fP, \fB\-\-short\fP
+Utiliser le format court. N'afficher ni le temps de présence ni les temps
+JCPU et PCPU.
+.TP
+\fB\-f\fP, \fB\-\-from\fP
+Alterner entre l'activation et la désactivation de l'affichage du champ
+«\ FROM\ » (nom de l'hôte distant). Le comportement initial par défaut est de
+ne pas afficher le champ «\ FROM\ ». Cependant, une version affichant le champ
+«\ FROM\ » par défaut peut avoir été compilée par l'administrateur système ou
+les responsables de la distribution.
+.TP
+\fB\-\-help\fP
+Afficher l'aide et quitter.
+.TP
+\fB\-i\fP, \fB\-\-ip\-addr\fP
+Afficher l'adresse IP au lieu du nom d'hôte pour le champ «\ FROM\ ».
+.TP
+\fB\-p\fP, \fB\-\-pids\fP
+Display pid of the login process/the "what" process in the "what" field.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Afficher les informations de version.
+.TP
+\fB\-o\fP, \fB\-\-old\-style\fP
+Formatage de la sortie selon l'ancien style. Laisser vierges les durées
+d'inactivité de moins d'une minute.
+.TP
+\fButilisateur \fP
+N'afficher d'informations que pour l'utilisateur indiqué.
+.SH ENVIRONNEMENT
+.TP
+PROCPS_USERLEN
+Remplace la largeur par défaut de la colonne «\ USER\ ». La valeur par défaut
+est de 8.
+.TP
+PROCPS_FROMLEN
+Remplace la largeur par défaut de la colonne «\ FROM\ ». La valeur par défaut
+est de 16.
+.SH FICHIERS
+.TP
+\fI/var/run/utmp\fP
+informations concernant les utilisateurs présents sur le système
+.TP
+\fI/proc\fP
+informations concernant les processus
+.SH "VOIR AUSSI"
+\fBfree\fP(1), \fBps\fP(1), \fBtop\fP(1), \fBuptime\fP(1), \fButmp\fP(5), \fBwho\fP(1)
+.SH AUTEURS
+\fBw\fP a presque entièrement été réécrit par Charles Blake qui s'est basé sur
+une version de Larry Greenfield <\fIgreenfie@gauss.rutgers.edu\fP> et
+Michael K. Johnson <\fIjohnsonm@redhat.com\fP>.
+.SH BOGUES
+Signalez les bogues à <\fIprocps@freelists.org\fP>
diff --git a/po-man/fr/watch.1 b/po-man/fr/watch.1
new file mode 100644
index 0000000..0c05010
--- /dev/null
+++ b/po-man/fr/watch.1
@@ -0,0 +1,198 @@
+.\"
+.\" Copyright (c) 2009-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2018-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2003 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH WATCH 1 2023\-01\-17 procps\-ng "Commandes de l'utilisateur"
+.SH NOM
+watch \- Exécuter un programme périodiquement en affichant le résultat à
+l'écran
+.SH SYNOPSIS
+\fBwatch\fP [\fIoptions\fP] \fIcommande\fP
+.SH DESCRIPTION
+\fBwatch\fP exécute la \fIcommande\fP périodiquement et affiche le résultat et les
+erreurs (en plein écran). Cela permet d'observer les changements de
+résultats du programme au fil du temps. Par défaut, \fIcommand\fP est exécuté
+toutes les deux secondes et \fBwatch\fP fonctionnera jusqu'à être interrompu.
+.SH OPTIONS
+.TP
+\fB\-b\fP, \fB\-\-beep\fP
+Émettre un bip lorsque le code de retour de la commande est non nul.
+.TP
+\fB\-c\fP, \fB\-\-color\fP
+Interpréter les suites et style de couleur ANSI.
+.TP
+\fB\-C\fP, \fB\-\-no\-color\fP
+Do not interpret ANSI color and style sequences.
+.TP
+\fB\-d\fP, \fB\-\-differences\fP[=\fIpermanent\fP]
+Highlight the differences between successive updates. If the optional
+\fIpermanent\fP argument is specified then \fBwatch\fP will show all changes since
+the first iteration.
+.TP
+\fB\-e\fP, \fB\-\-errexit\fP
+Geler les mises à jour en cas d'erreur de la commande et quitter après avoir
+appuyé sur une touche.
+.TP
+\fB\-g\fP, \fB\-\-chgexit\fP
+Terminer quand la sortie de \fIcommande\fP est modifiée.
+.TP
+\fB\-n\fP, \fB\-\-interval\fP \fIintervalle\fP
+Specify update interval. The command will not allow quicker than 0.1 second
+interval, in which the smaller values are converted. Both '.' and ',' work
+for any locales. The \fBWATCH_INTERVAL\fP environment can be used to
+persistently set a non\-default interval (following the same rules and
+formatting).
+.TP
+\fB\-p\fP, \fB\-\-precise\fP
+Make \fBwatch\fP attempt to run \fIcommand\fP every \fB\-\-interval\fP \fIseconds\fP. Try
+it with \fBntptime\fP (if present) and notice how the fractional seconds stays
+(nearly) the same, as opposed to normal mode where they continuously
+increase.
+.TP
+\fB\-q\fP, \fB\-\-equexit\fP <cycles>
+Exit when output of \fIcommand\fP does not change for the given number of
+cycles.
+.TP
+\fB\-r\fP, \fB\-\-no\-rerun\fP
+Do not run the program on terminal resize, the output of the program will
+re\-appear at the next regular run time.
+.TP
+\fB\-t\fP, \fB\-\-no\-title\fP
+Cacher l'en\-tête contenant l'intervalle, la commande et la date actuelle en
+haut de l'affichage, ainsi que la ligne blanche qui suit.
+.TP
+\fB\-w\fP, \fB\-\-no\-wrap\fP
+Turn off line wrapping. Long lines will be truncated instead of wrapped to
+the next line.
+.TP
+\fB\-x\fP, \fB\-\-exec\fP
+Passer \fIcommand\fP à \fBexec\fP(2) au lieu de \fBsh \-c\fP réduit le nombre
+d'échappements pour obtenir le même résultat.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Afficher l'aide et quitter.
+.TP
+\fB\-v\fP, \fB\-\-version\fP
+Afficher la version du logiciel et quitter.
+.SH "CODES DE RETOUR"
+.PP
+.RS
+.PD 0
+.TP
+\fB0\fP
+Réussite.
+.TP
+\fB1\fP
+Erreurs diverses.
+.TP
+\fB2\fP
+Échec lors du dédoublement («\ fork\ ») du processus à observer.
+.TP
+\fB3\fP
+Échec de remplacement de la sortie standard du processus fils par une
+écriture vers le tube.
+.TP
+\fB4\fP
+Échec d'exécution de la commande.
+.TP
+\fB5\fP
+Échec de la fermeture d'écriture vers le tube du processus fils.
+.TP
+\fB7\fP
+Échec de la création du tube IPC.
+.TP
+\fB8\fP
+Le processus fils n'a pas pu renvoyer une valeur avec \fBwaitpid\fP(2) ou la
+commande s'est terminée en erreur.
+.TP
+\fBautre\fP
+L'observation propagera l'état du code de retour en tant que code de retour
+du fils.
+.SH ENVIRONNEMENT
+The behavior of \fBwatch\fP is affected by the following environment variables.
+
+.TP
+\fBWATCH_INTERVAL\fP
+Update interval, follows the same rules as the \fB\-\-interval\fP command line
+option.
+.sp
+.SH NOTES
+Remarquez que la reconnaissance des options suit la norme POSIX (le
+traitement des options s'arrête dès le premier paramètre qui n'est pas une
+option). Cela signifie que les options se trouvant après la \fIcommande\fP ne
+seront pas interprétées par \fBwatch\fP.
+.sp
+.SH BOGUES
+Upon terminal resize, the screen will not be correctly repainted until the
+next scheduled update. All \fB\-\-differences\fP highlighting is lost on that
+update as well. When using the \fB\-\-no\-rerun\fP option, no output of will be
+visible.
+
+Les caractères non imprimables de la sortie du programme sont
+ignorés. Utilisez \fBcat \-v\fP pour les afficher.
+
+La combinaison de caractères supposés s'afficher en dernière colonne de
+l'écran risque de s'afficher dans la colonne précédente ou pas du tout.
+
+Les combinaisons de caractères ne sont jamais considérées différentes en
+mode \fB\-\-differences\fP. Seul le caractère de base est considéré.
+
+Les lignes blanches qui suivent directement une ligne s'arrêtant en dernière
+colonne ne sont pas affichées
+
+\fB\-\-precise\fP mode doesn't yet have advanced temporal distortion technology
+to compensate for a \fIcommand\fP that takes more than \fB\-\-interval\fP \fIseconds\fP
+to execute. \fBwatch\fP also can get into a state where it rapid\-fires as many
+executions of \fIcommand\fP as it can to catch up from a previous executions
+running longer than \fB\-\-interval\fP (for example, \fBnetstat\fP(8) taking ages
+on a DNS lookup).
+.sp
+.SH EXEMPLES
+.PP
+Pour vérifier les courriels\ :
+.IP
+watch \-n 60 from
+.PP
+Pour afficher les changements dans le contenu d'un répertoire\ :
+.IP
+watch \-d ls \-l
+.PP
+Pour n'afficher que les fichiers appartenant à arthur\ :
+.IP
+watch\ \-d 'ls\ \-l\ |\ fgrep arthur'
+.PP
+Pour vérifier l'effet des guillemets\ :
+.IP
+watch echo $$
+.br
+watch echo '$$'
+.br
+watch echo "'"'$$'"'"
+.PP
+Pour vérifier l'effet du temps de maintien de la précision, essayez en
+ajoutant \fB\-p\fP à
+.IP
+watch \-n 10 sleep 1
+.PP
+Pour vérifier que l'administrateur a installé le dernier noyau avec
+.IP
+watch uname \-r
+.PP
+(Note that \fB\-p\fP isn't guaranteed to work across reboots, especially in the
+face of \fBntpdate\fP (if present) or other bootup time\-changing mechanisms)
+.sp
+.SH BOGUES
+Signalez les bogues à <\fIprocps@freelists.org\fP>
diff --git a/po-man/man.stamp b/po-man/man.stamp
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/po-man/man.stamp
diff --git a/po-man/pl.po b/po-man/pl.po
new file mode 100644
index 0000000..4ba9267
--- /dev/null
+++ b/po-man/pl.po
@@ -0,0 +1,17397 @@
+# Polish translation of procps-ng man.
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This file is distributed under the same license as the procps-ng package.
+# Przemek Borys <pborys@dione.ids.pl>, 1999.
+# Andrzej Krzysztofowicz <ankry@green.mf.pg.gda.pl>, 2002.
+# Robert Luberda <robert@debian.org>, 2004, 2013, 2014, 2017.
+# Jakub Bogusz <qboosh@pld-linux.org>, 2014-2022.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: procps-ng-man 4.0.1rc3\n"
+"Report-Msgid-Bugs-To: Procps list <procps@freelists.org>\n"
+"POT-Creation-Date: 2023-08-19 17:38+1000\n"
+"PO-Revision-Date: 2022-10-26 21:05+0200\n"
+"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
+"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+
+#. type: TH
+#: ../man/free.1:14
+#, no-wrap
+msgid "FREE"
+msgstr "FREE"
+
+#. type: TH
+#: ../man/free.1:14
+#, no-wrap
+msgid "2023-05-02"
+msgstr ""
+
+#. type: TH
+#: ../man/free.1:14 ../man/kill.1:12 ../man/pgrep.1:13 ../man/pmap.1:19
+#: ../man/pwdx.1:12 ../man/skill.1:12 ../man/slabtop.1:14 ../man/sysctl.8:14
+#: ../man/sysctl.conf.5:13 ../man/tload.1:12 ../man/uptime.1:13
+#: ../man/vmstat.8:13 ../man/w.1:14 ../man/watch.1:13 ../man/ps.1:13
+#: ../man/top.1:62
+#, no-wrap
+msgid "procps-ng"
+msgstr "procps-ng"
+
+#. type: TH
+#: ../man/free.1:14 ../man/kill.1:12 ../man/pgrep.1:13 ../man/pidof.1:13
+#: ../man/pmap.1:19 ../man/pwdx.1:12 ../man/skill.1:12 ../man/slabtop.1:14
+#: ../man/tload.1:12 ../man/uptime.1:13 ../man/w.1:14 ../man/watch.1:13
+#: ../man/ps.1:13 ../man/top.1:62
+#, no-wrap
+msgid "User Commands"
+msgstr "Polecenia użytkownika"
+
+#. type: SH
+#: ../man/free.1:15 ../man/kill.1:13 ../man/pgrep.1:14 ../man/pidof.1:14
+#: ../man/pmap.1:20 ../man/pwdx.1:13 ../man/skill.1:13 ../man/slabtop.1:15
+#: ../man/sysctl.8:15 ../man/sysctl.conf.5:14 ../man/tload.1:13
+#: ../man/uptime.1:14 ../man/vmstat.8:14 ../man/w.1:15 ../man/watch.1:14
+#: ../man/ps.1:27 ../man/top.1:67 ../man/procps.3:15 ../man/procps_misc.3:15
+#: ../man/procps_pids.3:15
+#, no-wrap
+msgid "NAME"
+msgstr "NAZWA"
+
+#. type: Plain text
+#: ../man/free.1:17
+msgid "free - Display amount of free and used memory in the system"
+msgstr "free - wyświetlanie ilości wolnej i użytej pamięci w systemie"
+
+#. type: SH
+#: ../man/free.1:17 ../man/kill.1:15 ../man/pgrep.1:16 ../man/pidof.1:16
+#: ../man/pmap.1:22 ../man/pwdx.1:15 ../man/skill.1:15 ../man/slabtop.1:17
+#: ../man/sysctl.8:17 ../man/tload.1:15 ../man/uptime.1:16 ../man/vmstat.8:16
+#: ../man/w.1:17 ../man/watch.1:16 ../man/ps.1:29 ../man/top.1:72
+#: ../man/procps.3:18 ../man/procps_misc.3:17 ../man/procps_pids.3:18
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "SKÅADNIA"
+
+#. type: Plain text
+#: ../man/free.1:20
+msgid "B<free> [I<options>]"
+msgstr "B<free> [I<opcje>]"
+
+#. type: SH
+#: ../man/free.1:20 ../man/kill.1:18 ../man/pgrep.1:25 ../man/pidof.1:30
+#: ../man/pmap.1:25 ../man/skill.1:25 ../man/slabtop.1:20 ../man/sysctl.8:23
+#: ../man/sysctl.conf.5:16 ../man/tload.1:18 ../man/uptime.1:19
+#: ../man/vmstat.8:20 ../man/w.1:20 ../man/watch.1:19 ../man/ps.1:31
+#: ../man/ps.1:1002 ../man/top.1:77 ../man/procps.3:67 ../man/procps_misc.3:49
+#: ../man/procps_pids.3:61
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "OPIS"
+
+#. type: Plain text
+#: ../man/free.1:26
+msgid ""
+"B<free> displays the total amount of free and used physical and swap memory "
+"in the system, as well as the buffers and caches used by the kernel. The "
+"information is gathered by parsing /proc/meminfo. The displayed columns are:"
+msgstr ""
+"B<free> wyświetla całkowitą ilość wolnej i użytej pamięci fizycznej oraz "
+"pamięci wymiany w systemie, a także rozmiary buforów i pamięci podręcznych "
+"używanych przez jądro. Informacje są zbierane poprzez analizę /proc/meminfo. "
+"Wyświetlane kolumny to:"
+
+#. type: TP
+#: ../man/free.1:26
+#, no-wrap
+msgid "B<total>"
+msgstr "B<razem>"
+
+#. type: Plain text
+#: ../man/free.1:30
+msgid ""
+"Total usable memory (MemTotal and SwapTotal in /proc/meminfo). This includes "
+"the physical and swap memory minus a few reserved bits and kernel binary "
+"code."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:30
+#, no-wrap
+msgid "B<used>"
+msgstr "B<użyte>"
+
+#. type: Plain text
+#: ../man/free.1:33
+msgid "Used or unavailable memory (calculated as B<total> - B<available>)"
+msgstr "Pamięć użyta lub niedostępna (liczona jako B<razem> - B<wolne>)"
+
+#. type: TP
+#: ../man/free.1:33
+#, no-wrap
+msgid "B<free>"
+msgstr "B<wolne>"
+
+#. type: Plain text
+#: ../man/free.1:36
+msgid "Unused memory (MemFree and SwapFree in /proc/meminfo)"
+msgstr "Pamięć nie używana (MemFree oraz SwapFree w /proc/meminfo)"
+
+#. type: TP
+#: ../man/free.1:36
+#, no-wrap
+msgid "B<shared>"
+msgstr "B<dzielone>"
+
+#. type: Plain text
+#: ../man/free.1:39
+msgid "Memory used (mostly) by tmpfs (Shmem in /proc/meminfo)"
+msgstr "Pamięć używana (głównie) przez tmpfs (Shmem w /proc/meminfo)"
+
+#. type: TP
+#: ../man/free.1:39
+#, no-wrap
+msgid "B<buffers>"
+msgstr "B<bufory>"
+
+#. type: Plain text
+#: ../man/free.1:42
+msgid "Memory used by kernel buffers (Buffers in /proc/meminfo)"
+msgstr "Pamięć używana przez bufory jądra (Buffers w /proc/meminfo)"
+
+#. type: TP
+#: ../man/free.1:42
+#, no-wrap
+msgid "B<cache>"
+msgstr "B<w cache>"
+
+#. type: Plain text
+#: ../man/free.1:45
+msgid ""
+"Memory used by the page cache and slabs (Cached and SReclaimable in /proc/"
+"meminfo)"
+msgstr ""
+"Pamięć używana przez cache stron oraz płyty (Cached i SReclaimable w /proc/"
+"meminfo)"
+
+#. type: TP
+#: ../man/free.1:45
+#, no-wrap
+msgid "B<buff/cache>"
+msgstr "B<buf/cache>"
+
+#. type: Plain text
+#: ../man/free.1:48
+msgid "Sum of B<buffers> and B<cache>"
+msgstr "Suma B<buforów> i B<w cache>"
+
+#. type: TP
+#: ../man/free.1:48
+#, no-wrap
+msgid "B<available>"
+msgstr "B<dostępne>"
+
+#. type: Plain text
+#: ../man/free.1:57
+msgid ""
+"Estimation of how much memory is available for starting new applications, "
+"without swapping. Unlike the data provided by the B<cache> or B<free> "
+"fields, this field takes into account page cache and also that not all "
+"reclaimable memory slabs will be reclaimed due to items being in use "
+"(MemAvailable in /proc/meminfo, available on kernels 3.14, emulated on "
+"kernels 2.6.27+, otherwise the same as B<free>)"
+msgstr ""
+"Przybliżenie, jak dużo pamięci jest dostępne do uruchamiania nowych "
+"aplikacji bez swapowania. W przeciwieństwie do danych udostępnianych w "
+"polach B<w cache> czy B<wolne>, to pole bierze pod uwagÄ™ cache stron oraz "
+"to, że nie wszystkie płyty pamięci podlegające reklamacji zostaną zwrócone "
+"(MemAvailable w /proc/meminfo, dostępne w jądrach 3.14, emulowane w jądrach "
+"2.6.27+, w innych przypadkach - to samo, co B<wolne>)"
+
+#. type: SH
+#: ../man/free.1:57 ../man/kill.1:34 ../man/pgrep.1:53 ../man/pidof.1:34
+#: ../man/pmap.1:29 ../man/pwdx.1:18 ../man/skill.1:42 ../man/slabtop.1:25
+#: ../man/tload.1:25 ../man/uptime.1:36 ../man/vmstat.8:29 ../man/watch.1:26
+#, no-wrap
+msgid "OPTIONS"
+msgstr "OPCJE"
+
+#. type: TP
+#: ../man/free.1:58
+#, no-wrap
+msgid "B<-b>, B<--bytes>"
+msgstr "B<-b>, B<--bytes>"
+
+#. type: Plain text
+#: ../man/free.1:61
+msgid "Display the amount of memory in bytes."
+msgstr "Wyświetlanie ilości pamięci w bajtach."
+
+#. type: TP
+#: ../man/free.1:61
+#, no-wrap
+msgid "B<-k>, B<--kibi>"
+msgstr "B<-k>, B<--kibi>"
+
+#. type: Plain text
+#: ../man/free.1:64
+msgid "Display the amount of memory in kibibytes. This is the default."
+msgstr "Wyświetlanie ilości pamięci w kibibajtach (zachowanie domyślne)."
+
+#. type: TP
+#: ../man/free.1:64
+#, no-wrap
+msgid "B<-m>, B<--mebi>"
+msgstr "B<-m>, B<--mebi>"
+
+#. type: Plain text
+#: ../man/free.1:67
+msgid "Display the amount of memory in mebibytes."
+msgstr "Wyświetlanie ilości pamięci w mebibajtach."
+
+#. type: TP
+#: ../man/free.1:67
+#, no-wrap
+msgid "B<-g>, B<--gibi>"
+msgstr "B<-g>, B<--gibi>"
+
+#. type: Plain text
+#: ../man/free.1:70
+msgid "Display the amount of memory in gibibytes."
+msgstr "Wyświetlanie ilości pamięci w gibibajtach."
+
+#. type: TP
+#: ../man/free.1:70
+#, no-wrap
+msgid "B<--tebi>"
+msgstr "B<--tebi>"
+
+#. type: Plain text
+#: ../man/free.1:73
+msgid "Display the amount of memory in tebibytes."
+msgstr "Wyświetlanie ilości pamięci w tebibajtach."
+
+#. type: TP
+#: ../man/free.1:73
+#, no-wrap
+msgid "B<--pebi>"
+msgstr "B<--pebi>"
+
+#. type: Plain text
+#: ../man/free.1:76
+msgid "Display the amount of memory in pebibytes."
+msgstr "Wyświetlanie ilości pamięci w pebibajtach."
+
+#. type: TP
+#: ../man/free.1:76
+#, no-wrap
+msgid "B<--kilo>"
+msgstr "B<--kilo>"
+
+#. type: Plain text
+#: ../man/free.1:79
+msgid "Display the amount of memory in kilobytes. Implies --si."
+msgstr "Wyświetlanie ilości pamięci w kilobajtach. Włącza --si."
+
+#. type: TP
+#: ../man/free.1:79
+#, no-wrap
+msgid "B<--mega>"
+msgstr "B<--mega>"
+
+#. type: Plain text
+#: ../man/free.1:82
+msgid "Display the amount of memory in megabytes. Implies --si."
+msgstr "Wyświetlanie ilości pamięci w megabajtach. Włącza --si."
+
+#. type: TP
+#: ../man/free.1:82
+#, no-wrap
+msgid "B<--giga>"
+msgstr "B<--giga>"
+
+#. type: Plain text
+#: ../man/free.1:85
+msgid "Display the amount of memory in gigabytes. Implies --si."
+msgstr "Wyświetlanie ilości pamięci w gigabajtach. Włącza --si."
+
+#. type: TP
+#: ../man/free.1:85
+#, no-wrap
+msgid "B<--tera>"
+msgstr "B<--tera>"
+
+#. type: Plain text
+#: ../man/free.1:88
+msgid "Display the amount of memory in terabytes. Implies --si."
+msgstr "Wyświetlanie ilości pamięci w terabajtach. Włącza --si."
+
+#. type: TP
+#: ../man/free.1:88
+#, no-wrap
+msgid "B<--peta>"
+msgstr "B<--peta>"
+
+#. type: Plain text
+#: ../man/free.1:91
+msgid "Display the amount of memory in petabytes. Implies --si."
+msgstr "Wyświetlanie ilości pamięci w petabajtach. Włącza --si."
+
+#. type: TP
+#: ../man/free.1:91
+#, no-wrap
+msgid "B<-h>, B<--human>"
+msgstr "B<-h>, B<--human>"
+
+#. type: Plain text
+#: ../man/free.1:95
+msgid ""
+"Show all output fields automatically scaled to shortest three digit unit and "
+"display the units of print out. Following units are used."
+msgstr ""
+"Wyświetlanie wszystkich pól wyjściowych automatycznie przeskalowanych do "
+"najkrótszej trzycyfrowej jednostki wraz z użytą jednostką. Używane są "
+"następujące jednostki:"
+
+#. type: Plain text
+#: ../man/free.1:103
+#, no-wrap
+msgid ""
+" B = bytes\n"
+" Ki = kibibyte\n"
+" Mi = mebibyte\n"
+" Gi = gibibyte\n"
+" Ti = tebibyte\n"
+" Pi = pebibyte\n"
+msgstr ""
+" B = bajty\n"
+" Ki = kibibajty\n"
+" Mi = mebibajty\n"
+" Gi = gibibajty\n"
+" Ti = tebibajty\n"
+" Pi = pebibajty\n"
+
+#. type: Plain text
+#: ../man/free.1:107
+msgid ""
+"If unit is missing, and you have exbibyte of RAM or swap, the number is in "
+"tebibytes and columns might not be aligned with header."
+msgstr ""
+"Jeśli brak jednostki, a w systemie jest eksbibajt RAM-u lub obszaru wymiany, "
+"liczba będzie w tebibajtach, a kolumny mogą nie być wyrównane z nagłówkiem."
+
+#. type: TP
+#: ../man/free.1:107 ../man/vmstat.8:89
+#, no-wrap
+msgid "B<-w>, B<--wide>"
+msgstr "B<-w>, B<--wide>"
+
+#. type: Plain text
+#: ../man/free.1:112
+msgid ""
+"Switch to the wide mode. The wide mode produces lines longer than 80 "
+"characters. In this mode B<buffers> and B<cache> are reported in two "
+"separate columns."
+msgstr ""
+"Przełączenie w tryb szeroki, z liniami przekraczającymi 80 znaków. W tym "
+"trybie B<bufory> oraz B<w cache> są wypisywane w dwóch osobnych kolumnach."
+
+#. type: TP
+#: ../man/free.1:112
+#, no-wrap
+msgid "B<-c>, B<--count> I<count>"
+msgstr "B<-c>, B<--count> I<liczba>"
+
+#. type: Plain text
+#: ../man/free.1:119
+msgid "Display the result I<count> times. Requires the B<-s> option."
+msgstr "Wyświetlenie wyniku podaną I<liczbę> razy. Wymaga opcji B<-s>."
+
+#. type: TP
+#: ../man/free.1:119
+#, no-wrap
+msgid "B<-l>, B<--lohi>"
+msgstr "B<-l>, B<--lohi>"
+
+#. type: Plain text
+#: ../man/free.1:122
+msgid "Show detailed low and high memory statistics."
+msgstr "Wyświetlanie szczegółowych statystyk niskiej i wysokiej pamięci."
+
+#. type: TP
+#: ../man/free.1:122
+#, fuzzy, no-wrap
+#| msgid "B<-s>, B<--since>"
+msgid "B<-L>, B<--line>"
+msgstr "B<-s>, B<--since>"
+
+#. type: Plain text
+#: ../man/free.1:127
+msgid ""
+"Show output on a single line, often used with the B<-s> option to show "
+"memory statistics repeatedly."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:127
+#, no-wrap
+msgid "B<-s>, B<--seconds> I<delay>"
+msgstr "B<-s>, B<--seconds> I<opóźnienie>"
+
+#. type: Plain text
+#: ../man/free.1:134
+msgid ""
+"Continuously display the result I<delay> seconds apart. You may actually "
+"specify any floating point number for I<delay> using either . or , for "
+"decimal point. B<usleep>(3) is used for microsecond resolution delay times."
+msgstr ""
+"Stałe wyświetlanie wyników co podane I<opóźnienie> w sekundach. Można podać "
+"dowolną liczbę zmiennoprzecinkową, obsługiwane są opóźnienia z dokładnością "
+"do mikrosekundy dzięki użyciu funkcji B<usleep>(3)."
+
+#. type: TP
+#: ../man/free.1:134
+#, no-wrap
+msgid "B<--si>"
+msgstr "B<--si>"
+
+#. type: Plain text
+#: ../man/free.1:138
+msgid ""
+"Use kilo, mega, giga etc (power of 1000) instead of kibi, mebi, gibi (power "
+"of 1024)."
+msgstr ""
+"Użycie kilo, mega, giga itp. (potęg 1000) zamiast kibi, mebi, gibi (potęg "
+"1024)."
+
+#. type: TP
+#: ../man/free.1:138
+#, no-wrap
+msgid "B<-t>, B<--total>"
+msgstr "B<-t>, B<--total>"
+
+#. type: Plain text
+#: ../man/free.1:141
+msgid "Display a line showing the column totals."
+msgstr "Wyświetlanie linii pokazującej podsumowanie kolumn."
+
+#. type: TP
+#: ../man/free.1:141
+#, no-wrap
+msgid "B<-v>, B<--committed>"
+msgstr "B<-v>, B<--committed>"
+
+#. type: Plain text
+#: ../man/free.1:146
+msgid ""
+"Display a line showing the memory commit limit and amount of committed/"
+"uncommitted memory. The B<total> column on this line will display the memory "
+"commit limit. This line is relevant if memory overcommit is disabled."
+msgstr ""
+"Wyświelenie linii pokazującej limit i ilość fizycznie przydzielonej/"
+"nieprzydzielonej pamięci. Kolumna B<razem> w tej linii pokazuje limit "
+"pamięci fizycznie przydzielonej. Ta linia ma znaczenie tylko w przypadku "
+"wyłączenia overcommitu."
+
+#. type: TP
+#: ../man/free.1:146 ../man/w.1:63
+#, no-wrap
+msgid "B<--help>"
+msgstr "B<--help>"
+
+#. type: Plain text
+#: ../man/free.1:149
+msgid "Print help."
+msgstr "Wyświetlenie opisu."
+
+#. type: TP
+#: ../man/free.1:149 ../man/pgrep.1:228 ../man/pmap.1:72 ../man/pwdx.1:19
+#: ../man/skill.1:68 ../man/slabtop.1:45 ../man/sysctl.8:116 ../man/tload.1:38
+#: ../man/uptime.1:46 ../man/vmstat.8:97 ../man/w.1:72
+#, no-wrap
+msgid "B<-V>, B<--version>"
+msgstr "B<-V>, B<--version>"
+
+#. type: Plain text
+#: ../man/free.1:152 ../man/skill.1:71 ../man/w.1:75
+msgid "Display version information."
+msgstr "Wyświetlenie informacji o wersji."
+
+#. type: SH
+#: ../man/free.1:153 ../man/slabtop.1:87 ../man/sysctl.8:171
+#: ../man/sysctl.conf.5:64 ../man/tload.1:42 ../man/uptime.1:49 ../man/w.1:88
+#: ../man/procps_misc.3:136
+#, no-wrap
+msgid "FILES"
+msgstr "PLIKI"
+
+#. type: TP
+#: ../man/free.1:154
+#, no-wrap
+msgid "/proc/meminfo"
+msgstr "/proc/meminfo"
+
+#. type: Plain text
+#: ../man/free.1:157
+msgid "memory information"
+msgstr "informacje dotyczące pamięci"
+
+#. type: SH
+#: ../man/free.1:158 ../man/pgrep.1:301 ../man/pidof.1:69 ../man/tload.1:50
+#: ../man/watch.1:152 ../man/ps.1:2063
+#, no-wrap
+msgid "BUGS"
+msgstr "BÅĘDY"
+
+#. type: Plain text
+#: ../man/free.1:161
+msgid ""
+"The value for the B<shared> column is not available from kernels before "
+"2.6.32 and is displayed as zero."
+msgstr ""
+"Wartość kolumny B<dzielone> nie jest dostępna w jądrach starszych niż 2.6.32 "
+"- wtedy wyświetlane jest zero."
+
+#. type: TP
+#: ../man/free.1:161
+#, no-wrap
+msgid "Please send bug reports to"
+msgstr "Zgłoszenia błędów prosimy wysyłać na adres"
+
+#. type: Plain text
+#: ../man/free.1:165
+msgid "E<.UR procps@freelists.org> E<.UE>"
+msgstr "E<.UR procps@freelists.org> E<.UE>"
+
+#. type: SH
+#: ../man/free.1:165 ../man/kill.1:88 ../man/pgrep.1:317 ../man/pidof.1:76
+#: ../man/pmap.1:90 ../man/pwdx.1:25 ../man/skill.1:109 ../man/slabtop.1:91
+#: ../man/sysctl.8:185 ../man/sysctl.conf.5:83 ../man/tload.1:45
+#: ../man/uptime.1:66 ../man/vmstat.8:191 ../man/w.1:95 ../man/ps.1:2070
+#: ../man/procps.3:182 ../man/procps_misc.3:153 ../man/procps_pids.3:207
+#, no-wrap
+msgid "SEE ALSO"
+msgstr "ZOBACZ TAKŻE"
+
+#. type: Plain text
+#: ../man/free.1:169
+msgid "B<ps>(1), B<slabtop>(1), B<top>(1), B<vmstat>(8)."
+msgstr "B<ps>(1), B<slabtop>(1), B<top>(1), B<vmstat>(8)."
+
+#. type: TH
+#: ../man/kill.1:12
+#, no-wrap
+msgid "KILL"
+msgstr ""
+
+#. type: TH
+#: ../man/kill.1:12 ../man/pgrep.1:13 ../man/pidof.1:13
+#, no-wrap
+msgid "2023-01-16"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:15
+msgid "kill - send a signal to a process"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:18
+#, fuzzy
+#| msgid "B<pmap> [I<options>] I<pid> [...]"
+msgid "B<kill> [options] E<lt>pidE<gt> [...]"
+msgstr "B<pmap> [I<opcje>] I<pid> [...]"
+
+#. type: Plain text
+#: ../man/kill.1:34
+msgid ""
+"The default signal for kill is TERM. Use B<-l> or B<-L> to list available "
+"signals. Particularly useful signals include HUP, INT, KILL, STOP, CONT, "
+"and 0. Alternate signals may be specified in three ways: B<-9>, B<-SIGKILL> "
+"or B<-KILL>. Negative PID values may be used to choose whole process "
+"groups; see the PGID column in ps command output. A PID of B<-1> is "
+"special; it indicates all processes except the kill process itself and init."
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:35
+#, no-wrap
+msgid "B<E<lt>pidE<gt> [...]>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:38
+msgid "Send signal to every E<lt>pidE<gt> listed."
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:38
+#, fuzzy, no-wrap
+#| msgid "B<->I<signal>"
+msgid "B<-E<lt>signalE<gt>>"
+msgstr "B<->I<sygnał>"
+
+#. type: TQ
+#: ../man/kill.1:40
+#, fuzzy, no-wrap
+#| msgid "B<->I<signal>"
+msgid "B<-s E<lt>signalE<gt>>"
+msgstr "B<->I<sygnał>"
+
+#. type: TQ
+#: ../man/kill.1:42
+#, fuzzy, no-wrap
+#| msgid "B<--signal> I<signal>"
+msgid "B<--signal E<lt>signalE<gt>>"
+msgstr "B<--signal> I<sygnał>"
+
+#. type: Plain text
+#: ../man/kill.1:50
+msgid ""
+"Specify the B<signal> to be sent. The signal can be specified by using name "
+"or number. The behavior of signals is explained in B<signal>(7) manual "
+"page."
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:50 ../man/pgrep.1:216
+#, no-wrap
+msgid "B<-q>, B<--queue >I<value>"
+msgstr "B<-q>, B<--queue >I<wartość>"
+
+#. type: Plain text
+#: ../man/kill.1:62 ../man/pgrep.1:228
+#, fuzzy
+#| msgid ""
+#| "Use B<sigqueue(3)> rather than B<kill(2)> and the value argument is used "
+#| "to specify an integer to be sent with the signal. If the receiving "
+#| "process has installed a handler for this signal using the SA_SIGINFO flag "
+#| "to B<sigaction(2)> , then it can obtain this data via the si_value field "
+#| "of the siginfo_t structure."
+msgid ""
+"Use B<sigqueue>(3) rather than B<kill>(2) and the value argument is used "
+"to specify an integer to be sent with the signal. If the receiving process "
+"has installed a handler for this signal using the SA_SIGINFO flag to "
+"B<sigaction>(2), then it can obtain this data via the si_value field of the "
+"siginfo_t structure."
+msgstr ""
+"Użycie B<sigqueue(3)> zamiast B<kill(2)>, a argument będący wartością "
+"określa liczbę całkowitą do wysłania wraz z sygnałem. Jeśli proces "
+"odbierający ma zainstalowaną procedurę obsługi dla tego sygnału przy użyciu "
+"flagi SA_SIGINFO wywołania B<sigaction(2)>, może następnie odebrać te dane w "
+"poli si_value struktury siginfo_t."
+
+#. type: TP
+#: ../man/kill.1:62
+#, fuzzy, no-wrap
+#| msgid "B<-l>, B<--list-name>"
+msgid "B<-l>, B<--list> [I<signal>]"
+msgstr "B<-l>, B<--list-name>"
+
+#. type: Plain text
+#: ../man/kill.1:66
+msgid ""
+"List signal names. This option has optional argument, which will convert "
+"signal number to signal name, or other way round."
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:66 ../man/skill.1:52
+#, fuzzy, no-wrap
+#| msgid "B<-L>, B<--logpidfile>"
+msgid "B<-L>,B<\\ --table>"
+msgstr "B<-L>, B<--logpidfile>"
+
+#. type: Plain text
+#: ../man/kill.1:69
+msgid "List signal names in a nice table."
+msgstr ""
+
+#. type: SH
+#: ../man/kill.1:71 ../man/pgrep.1:284 ../man/slabtop.1:96
+#: ../man/sysctl.conf.5:39 ../man/vmstat.8:185 ../man/watch.1:144
+#: ../man/ps.1:768
+#, no-wrap
+msgid "NOTES"
+msgstr "UWAGI"
+
+#. type: Plain text
+#: ../man/kill.1:75
+msgid ""
+"Your shell (command line interpreter) may have a built-in kill command. You "
+"may need to run the command described here as /bin/kill to solve the "
+"conflict."
+msgstr ""
+
+#. type: SH
+#: ../man/kill.1:75 ../man/pgrep.1:240 ../man/skill.1:99 ../man/sysctl.8:143
+#: ../man/watch.1:191 ../man/ps.1:84
+#, no-wrap
+msgid "EXAMPLES"
+msgstr "PRZYKÅADY"
+
+#. type: TP
+#: ../man/kill.1:76
+#, no-wrap
+msgid "B<kill -9 -1>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:79
+msgid "Kill all processes you can kill."
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:79
+#, no-wrap
+msgid "B<kill -l 11>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:82
+msgid "Translate number 11 into a signal name."
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:82
+#, no-wrap
+msgid "B<kill -L>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:85
+msgid "List the available signal choices in a nice table."
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:85
+#, no-wrap
+msgid "B<kill 123 543 2341 3453>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:88
+msgid "Send the default signal, SIGTERM, to all those processes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:97
+#, fuzzy
+#| msgid ""
+#| "B<ps>(1), B<regex>(7), B<signal>(7), B<sigqueue>(3), B<killall>(1), "
+#| "B<skill>(1), B<kill>(1), B<kill>(2), B<cgroups>(8)"
+msgid ""
+"B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), B<renice>(1), "
+"B<signal>(7), B<sigqueue>(3), B<skill>(1)"
+msgstr ""
+"B<ps>(1), B<regex>(7), B<signal>(7), B<sigqueue>(3), B<killall>(1), "
+"B<skill>(1), B<kill>(1), B<kill>(2), B<cgroups>(8)"
+
+#. type: SH
+#: ../man/kill.1:97 ../man/pmap.1:93 ../man/pwdx.1:28 ../man/skill.1:117
+#: ../man/ps.1:2076
+#, no-wrap
+msgid "STANDARDS"
+msgstr "STANDARDY"
+
+#. type: Plain text
+#: ../man/kill.1:101
+msgid ""
+"This command meets appropriate standards. The B<-L> flag is Linux-specific."
+msgstr ""
+
+#. type: SH
+#: ../man/kill.1:101 ../man/pgrep.1:327 ../man/pidof.1:79 ../man/pwdx.1:32
+#: ../man/skill.1:119 ../man/sysctl.8:189 ../man/sysctl.conf.5:85
+#: ../man/ps.1:2093
+#, no-wrap
+msgid "AUTHOR"
+msgstr "AUTOR"
+
+#. type: Plain text
+#: ../man/kill.1:107
+msgid ""
+"E<.UR albert@users.sf.net> Albert Cahalan E<.UE> wrote kill in 1999 to "
+"replace a bsdutils one that was not standards compliant. The util-linux one "
+"might also work correctly."
+msgstr ""
+
+#. type: SH
+#: ../man/kill.1:107 ../man/pgrep.1:331 ../man/pmap.1:97 ../man/pwdx.1:37
+#: ../man/skill.1:125 ../man/slabtop.1:120 ../man/sysctl.8:193
+#: ../man/sysctl.conf.5:89 ../man/tload.1:66 ../man/uptime.1:71
+#: ../man/vmstat.8:199 ../man/w.1:112 ../man/watch.1:229
+#, no-wrap
+msgid "REPORTING BUGS"
+msgstr "ZGÅASZANIE BÅĘDÓW"
+
+#. type: Plain text
+#: ../man/kill.1:110 ../man/pgrep.1:334 ../man/pmap.1:100 ../man/pwdx.1:40
+#: ../man/skill.1:128 ../man/slabtop.1:123 ../man/sysctl.8:196
+#: ../man/sysctl.conf.5:92 ../man/tload.1:69 ../man/uptime.1:74
+#: ../man/vmstat.8:202 ../man/w.1:115 ../man/watch.1:232
+msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE>"
+msgstr ""
+"Zgłoszenia błędów prosimy wysyłać na adres E<.UR procps@freelists.org> E<.UE>"
+
+#. type: TH
+#: ../man/pgrep.1:13
+#, no-wrap
+msgid "PGREP"
+msgstr "PGREP"
+
+#. type: Plain text
+#: ../man/pgrep.1:16
+msgid ""
+"pgrep, pkill, pidwait - look up, signal, or wait for processes based on name "
+"and other attributes"
+msgstr ""
+"pgrep, pkill, pidwait - wyszukiwanie, wysyłanie sygnałów lub oczekiwanie na "
+"procesy na podstawie nazwy i innych atrybutów"
+
+#. type: Plain text
+#: ../man/pgrep.1:19
+msgid "B<pgrep> [options] pattern"
+msgstr "B<pgrep> [opcje] wzorzec"
+
+#. type: Plain text
+#: ../man/pgrep.1:22
+msgid "B<pkill> [options] pattern"
+msgstr "B<pkill> [opcje] wzorzec"
+
+#. type: Plain text
+#: ../man/pgrep.1:25
+msgid "B<pidwait> [options] pattern"
+msgstr "B<pidwait> [opcje] wzorzec"
+
+#. type: Plain text
+#: ../man/pgrep.1:30
+msgid ""
+"B<pgrep> looks through the currently running processes and lists the process "
+"IDs which match the selection criteria to stdout. All the criteria have to "
+"match. For example,"
+msgstr ""
+"B<pgrep> przeszukuje aktualnie działające procesy i wypisuje na standardowym "
+"wyjściu identyfikatory procesów, które pasują do wybranych kryteriów. "
+"Wszystkie kryteria muszą pasować. Na przykład:"
+
+#. type: Plain text
+#: ../man/pgrep.1:32
+msgid "$ pgrep -u root sshd"
+msgstr "$ pgrep -u root sshd"
+
+#. type: Plain text
+#: ../man/pgrep.1:38
+msgid ""
+"will only list the processes called B<sshd> AND owned by B<root>. On the "
+"other hand,"
+msgstr ""
+"wypisze tylko listę procesów o nazwie B<sshd> ORAZ będących własnością "
+"B<roota>. Z drugiej strony:"
+
+#. type: Plain text
+#: ../man/pgrep.1:40
+msgid "$ pgrep -u root,daemon"
+msgstr "$ pgrep -u root,daemon"
+
+#. type: Plain text
+#: ../man/pgrep.1:45
+msgid "will list the processes owned by B<root> OR B<daemon>."
+msgstr "wypisze procesy, których właścicielem jest B<root> LUB B<daemon>."
+
+#. type: Plain text
+#: ../man/pgrep.1:50
+msgid ""
+"B<pkill> will send the specified signal (by default B<SIGTERM>) to each "
+"process instead of listing them on stdout."
+msgstr ""
+"B<pkill> zamiast wypisywania procesów wyśle do każdego podany sygnał "
+"(domyślnie B<SIGTERM>)."
+
+#. type: Plain text
+#: ../man/pgrep.1:53
+msgid ""
+"B<pidwait> will wait for each process instead of listing them on stdout."
+msgstr "B<pidwait> zamiast wypisywania procesów oczekuje na nie."
+
+#. type: TP
+#: ../man/pgrep.1:54
+#, no-wrap
+msgid "B<->I<signal>"
+msgstr "B<->I<sygnał>"
+
+#. type: TQ
+#: ../man/pgrep.1:56
+#, no-wrap
+msgid "B<--signal> I<signal>"
+msgstr "B<--signal> I<sygnał>"
+
+#. type: Plain text
+#: ../man/pgrep.1:66
+msgid ""
+"Defines the signal to send to each matched process. Either the numeric or "
+"the symbolic signal name can be used. In B<pgrep> or B<pidwait> mode only "
+"the long option can be used and has no effect unless used in conjunction "
+"with B<--require-handler> to filter to processes with a userspace signal "
+"handler present for a particular signal."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:67
+#, no-wrap
+msgid "B<-c>, B<--count>"
+msgstr "B<-c>, B<--count>"
+
+#. type: Plain text
+#: ../man/pgrep.1:74
+msgid ""
+"Suppress normal output; instead print a count of matching processes. When "
+"count does not match anything, e.g. returns zero, the command will return "
+"non-zero value. Note that for pkill and pidwait, the count is the number of "
+"matching processes, not the processes that were successfully signaled or "
+"waited for."
+msgstr ""
+"Pominięcie zwykłego wyjścia; zamiast niego wypisanie liczby pasujących "
+"procesów. Jeśli nic nie zostanie policzone (np. liczba będzie zerem), "
+"polecenie zwróci wartość niezerową. Uwaga: w przypadku pkill i pidwait "
+"zwracana wartość to liczba pasujących procesów, a nie procesów, do których "
+"udało się dostarczyć sygnał lub zaczekać na zakończenie."
+
+#. type: TP
+#: ../man/pgrep.1:74
+#, no-wrap
+msgid "B<-d>, B<--delimiter> I<delimiter>"
+msgstr "B<-d>, B<--delimiter> I<separator>"
+
+#. type: Plain text
+#: ../man/pgrep.1:80
+msgid ""
+"Sets the string used to delimit each process ID in the output (by default a "
+"newline). (B<pgrep> only.)"
+msgstr ""
+"Ustawienie łańcucha oddzielającego identyfikatory procesów na wyjściu "
+"(domyślnie nowa linia). (tylko B<pgrep>)"
+
+#. type: TP
+#: ../man/pgrep.1:80
+#, no-wrap
+msgid "B<-e>, B<--echo>"
+msgstr "B<-e>, B<--echo>"
+
+#. type: Plain text
+#: ../man/pgrep.1:85
+msgid "Display name and PID of the process being killed. (B<pkill> only.)"
+msgstr ""
+"Wyświetlanie nazw oraz identyfikatorów zabijanych procesów (tylko B<pkill>)."
+
+#. type: TP
+#: ../man/pgrep.1:85
+#, no-wrap
+msgid "B<-f>, B<--full>"
+msgstr "B<-f>, B<--full>"
+
+#. type: Plain text
+#: ../man/pgrep.1:92
+msgid ""
+"The I<pattern> is normally only matched against the process name. When B<-"
+"f> is set, the full command line is used."
+msgstr ""
+"I<wzorzec> normalnie jest dopasowywany tylko do nazwy procesu. Z ustawionÄ… "
+"opcją B<-f>, wykorzystywana jest cała linia poleceń."
+
+#. type: TP
+#: ../man/pgrep.1:92
+#, no-wrap
+msgid "B<-g>, B<--pgroup> I<pgrp>,..."
+msgstr "B<-g>, B<--pgroup> I<pgrp>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:101
+msgid ""
+"Only match processes in the process group IDs listed. Process group 0 is "
+"translated into B<pgrep>'s, B<pkill>'s, or B<pidwait>'s own process group."
+msgstr ""
+"Dopasowanie tylko do procesów z grup o podanych identyfikatorach. Grupa "
+"procesów 0 jest tłumaczona na własną grupę procesów polecenia B<pgrep>, "
+"B<pkill> lub B<pidwait>."
+
+#. type: TP
+#: ../man/pgrep.1:101
+#, no-wrap
+msgid "B<-G>, B<--group> I<gid>,..."
+msgstr "B<-G>, B<--group> I<gid>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:105
+msgid ""
+"Only match processes whose real group ID is listed. Either the numerical or "
+"symbolical value may be used."
+msgstr ""
+"Dopasowanie tylko do procesów o podanych identyfikatorach grup "
+"rzeczywistych. Można użyć wartości liczbowych lub symbolicznych."
+
+#. type: TP
+#: ../man/pgrep.1:105
+#, no-wrap
+msgid "B<-i>, B<--ignore-case>"
+msgstr "B<-e>, B<--ignore-case>"
+
+#. type: Plain text
+#: ../man/pgrep.1:108
+msgid "Match processes case-insensitively."
+msgstr "Dopasowywanie procesów bez rozróżniania wielkości liter."
+
+#. type: TP
+#: ../man/pgrep.1:108
+#, no-wrap
+msgid "B<-l>, B<--list-name>"
+msgstr "B<-l>, B<--list-name>"
+
+#. type: Plain text
+#: ../man/pgrep.1:113
+msgid "List the process name as well as the process ID. (B<pgrep> only.)"
+msgstr "Wypisanie nazw oraz identyfikatorów procesów. (tylko B<pgrep>)"
+
+#. type: TP
+#: ../man/pgrep.1:113
+#, no-wrap
+msgid "B<-a>, B<--list-full>"
+msgstr "B<-a>, B<--list-full>"
+
+#. type: Plain text
+#: ../man/pgrep.1:118
+msgid "List the full command line as well as the process ID. (B<pgrep> only.)"
+msgstr ""
+"Wypisanie pełnych linii poleceń oraz identyfikatorów procesów. (tylko "
+"B<pgrep>)"
+
+#. type: TP
+#: ../man/pgrep.1:118
+#, no-wrap
+msgid "B<-n>, B<--newest>"
+msgstr "B<-n>, B<--newest>"
+
+#. type: Plain text
+#: ../man/pgrep.1:121
+msgid ""
+"Select only the newest (most recently started) of the matching processes."
+msgstr ""
+"Wybór tylko najnowszych (najpóźniej uruchomionych) spośród pasujących "
+"procesów."
+
+#. type: TP
+#: ../man/pgrep.1:121
+#, no-wrap
+msgid "B<-o>, B<--oldest>"
+msgstr "B<-o>, B<--oldest>"
+
+#. type: Plain text
+#: ../man/pgrep.1:124
+msgid ""
+"Select only the oldest (least recently started) of the matching processes."
+msgstr ""
+"Wybór tylko najstarszych (najwcześniej uruchomionych) spośród pasujących "
+"procesów."
+
+#. type: TP
+#: ../man/pgrep.1:124
+#, no-wrap
+msgid "B<-O>, B<--older> I<secs>"
+msgstr "B<-O>, B<--older> I<sekundy>"
+
+#. type: Plain text
+#: ../man/pgrep.1:127
+msgid "Select processes older than secs."
+msgstr "Wybór procesów starszych niż podana liczba sekund."
+
+#. type: TP
+#: ../man/pgrep.1:127
+#, no-wrap
+msgid "B<-P>, B<--parent> I<ppid>,..."
+msgstr "B<-P>, B<--parent> I<ppid>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:130
+msgid "Only match processes whose parent process ID is listed."
+msgstr ""
+"Dopasowanie tylko do procesów o wymienionych identyfikatorach procesów "
+"rodziców."
+
+#. type: TP
+#: ../man/pgrep.1:130
+#, no-wrap
+msgid "B<-s>, B<--session> I<sid>,..."
+msgstr "B<-s>, B<--session> I<sid>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:139
+msgid ""
+"Only match processes whose process session ID is listed. Session ID 0 is "
+"translated into B<pgrep>'s, B<pkill>'s, or B<pidwait>'s own session ID."
+msgstr ""
+"Dopasowanie tylko do procesów o wymienionych identyfikatorach sesji "
+"procesów. Identyfikator sesji 0 jest tłumaczony na własny procesu B<pgrep>, "
+"B<pkill> lub B<pidwait>."
+
+#. type: TP
+#: ../man/pgrep.1:139
+#, no-wrap
+msgid "B<-t>, B<--terminal> I<term>,..."
+msgstr "B<-t>, B<--terminal> I<term>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:143
+msgid ""
+"Only match processes whose controlling terminal is listed. The terminal "
+"name should be specified without the \"/dev/\" prefix."
+msgstr ""
+"Dopasowanie tylko do procesów o wymienionych terminalach sterujących. Nazwa "
+"terminala powinna być podana bez przedrostka \"/dev/\"."
+
+#. type: TP
+#: ../man/pgrep.1:143
+#, no-wrap
+msgid "B<-u>, B<--euid> I<euid>,..."
+msgstr "B<-u>, B<--euid> I<euid>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:147
+msgid ""
+"Only match processes whose effective user ID is listed. Either the "
+"numerical or symbolical value may be used."
+msgstr ""
+"Dopasowanie tylko do procesów o wymienionych identyfikatorach użytkowników "
+"efektywnych. Można użyć wartości liczbowych lub symbolicznych."
+
+#. type: TP
+#: ../man/pgrep.1:147
+#, no-wrap
+msgid "B<-U>, B<--uid> I<uid>,..."
+msgstr "B<-U>, B<--uid> I<uid>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:151
+msgid ""
+"Only match processes whose real user ID is listed. Either the numerical or "
+"symbolical value may be used."
+msgstr ""
+"Dopasowanie tylko do procesów o wymienionych identyfikatorach użytkowników "
+"rzeczywistych. Można użyć wartości liczbowych lub symbolicznych."
+
+#. type: TP
+#: ../man/pgrep.1:151
+#, no-wrap
+msgid "B<-v>, B<--inverse>"
+msgstr "B<-v>, B<--inverse>"
+
+#. type: Plain text
+#: ../man/pgrep.1:160
+msgid ""
+"Negates the matching. This option is usually used in B<pgrep>'s or "
+"B<pidwait>'s context. In B<pkill>'s context the short option is disabled to "
+"avoid accidental usage of the option."
+msgstr ""
+"Negacja dopasowania. Zwykle używana w kontekście programu B<pgrep> lub "
+"B<pidwait>. W kontekście B<pkill> krótka opcja jest wyłączona, aby zapobiec "
+"przypadkowemu użyciu."
+
+#. type: TP
+#: ../man/pgrep.1:160
+#, no-wrap
+msgid "B<-w>, B<--lightweight>"
+msgstr "B<-w>, B<--lightweight>"
+
+#. type: Plain text
+#: ../man/pgrep.1:169
+msgid ""
+"Shows all thread ids instead of pids in B<pgrep>'s or B<pidwait>'s context. "
+"In B<pkill>'s context this option is disabled."
+msgstr ""
+"Wyświetlenie wszystkich identyfikatorów wątków zamiast pidów w kontekście "
+"programu B<pgrep> lub B<pidwait>. W kontekście B<pkill> ta opcja jest "
+"wyłączona."
+
+#. type: TP
+#: ../man/pgrep.1:169
+#, no-wrap
+msgid "B<-x>, B<--exact>"
+msgstr "B<-x>, B<--exact>"
+
+#. type: Plain text
+#: ../man/pgrep.1:175
+msgid ""
+"Only match processes whose names (or command lines if B<-f> is specified) "
+"B<exactly> match the I<pattern>."
+msgstr ""
+"Dopasowanie tylko do procesów, których nazwy (lub linie poleceń, jeśli "
+"podano opcję B<-f>) pasują B<dokładnie> do I<wzorca>."
+
+#. type: TP
+#: ../man/pgrep.1:175
+#, no-wrap
+msgid "B<-F>, B<--pidfile> I<file>"
+msgstr "B<-F>, B<--pidfile> I<plik>"
+
+#. type: Plain text
+#: ../man/pgrep.1:183
+#, fuzzy
+#| msgid ""
+#| "Read I<PID>s from I<file>. This option is more useful for "
+#| "B<pkill>orB<pidwait> than B<pgrep>."
+msgid ""
+"Read I<PID>s from I<file>. This option is more useful for B<pkill> or "
+"B<pidwait> than B<pgrep>."
+msgstr ""
+"Odczyt I<PID>ów z I<pliku>. Ta opcja jest bardziej przydatna dla programu "
+"B<pkill> lub B<pidwait> niż B<pgrep>."
+
+#. type: TP
+#: ../man/pgrep.1:183
+#, no-wrap
+msgid "B<-L>, B<--logpidfile>"
+msgstr "B<-L>, B<--logpidfile>"
+
+#. type: Plain text
+#: ../man/pgrep.1:186
+msgid "Fail if pidfile (see B<-F>) not locked."
+msgstr "Niepowodzenie, jeśli plik PID (p. opcja B<-F>) nie jest zablokowany."
+
+#. type: TP
+#: ../man/pgrep.1:186
+#, no-wrap
+msgid "B<-r>, B<--runstates> I<D,R,S,Z,>..."
+msgstr "B<-r>, B<--runstates> I<D,R,S,Z,>..."
+
+#. type: Plain text
+#: ../man/pgrep.1:189
+msgid "Match only processes which match the process state."
+msgstr "Dopasowanie tylko do procesów o pasującym stanie."
+
+#. type: TP
+#: ../man/pgrep.1:189
+#, no-wrap
+msgid "B<-A>, B<--ignore-ancestors>"
+msgstr "B<-e>, B<--ignore-ancestors>"
+
+#. type: Plain text
+#: ../man/pgrep.1:199
+msgid ""
+"Ignore all ancestors of B<pgrep>, B<pkill>, or B<pidwait>. For example, "
+"this can be useful when elevating with B<sudo> or similar tools."
+msgstr ""
+"Ignorowanie wszystkich przodków B<pgrep>, B<pkill> i B<pidwait>. Może to być "
+"przydatne np. przy podnoszeniu uprawnień przez B<sudo> lub podobne narzędzia."
+
+#. type: TP
+#: ../man/pgrep.1:199
+#, fuzzy, no-wrap
+#| msgid "B<-n>, B<--one-header>"
+msgid "B<-H>, B<--require-handler>"
+msgstr "B<-n>, B<--one-header>"
+
+#. type: Plain text
+#: ../man/pgrep.1:203
+msgid ""
+"Only match processes with a userspace signal handler present for the signal "
+"to be sent."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:203
+#, no-wrap
+msgid "B<--cgroup >I<name>B<,...>"
+msgstr "B<--cgroup >I<nazwa>B<,...>"
+
+#. type: Plain text
+#: ../man/pgrep.1:207
+msgid "Match on provided control group (cgroup) v2 name. See B<cgroups>(8)"
+msgstr ""
+"Dopasowanie po przekazanej nazwie grupy kontrolnej (cgroup) v2. P. "
+"B<cgroups>(8)"
+
+#. type: TP
+#: ../man/pgrep.1:207 ../man/skill.1:87
+#, no-wrap
+msgid "B<--ns >I<pid>"
+msgstr "B<--ns >I<pid>"
+
+#. type: Plain text
+#: ../man/pgrep.1:212
+msgid ""
+"Match processes that belong to the same namespaces. Required to run as root "
+"to match processes from other users. See B<--nslist> for how to limit which "
+"namespaces to match."
+msgstr ""
+"Dopasowanie do procesów należących do tych samych przestrzeni nazw. Wymagane "
+"w przypadku uruchamiania przez roota, aby dopasować do procesów innych "
+"użytkowników. Więcej o ograniczaniu dopasowywanych przestrzeni nazw przy "
+"opcji B<--nslist>."
+
+#. type: TP
+#: ../man/pgrep.1:212
+#, no-wrap
+msgid "B<--nslist >I<name>B<,...>"
+msgstr "B<--nslist >I<nazwa>B<,...>"
+
+#. type: Plain text
+#: ../man/pgrep.1:216
+#, fuzzy
+#| msgid ""
+#| "Match only the provided namespaces. Available namespaces: ipc, mnt, net, "
+#| "pid, user,uts."
+msgid ""
+"Match only the provided namespaces. Available namespaces: ipc, mnt, net, "
+"pid, user, uts."
+msgstr ""
+"Dopasowanie tylko do podanych przestrzeni nazw. Dostępne przestrzenie: ipc, "
+"mnt, net, pid, user, uts."
+
+#. type: Plain text
+#: ../man/pgrep.1:231 ../man/pmap.1:75 ../man/slabtop.1:48 ../man/sysctl.8:119
+#: ../man/tload.1:41 ../man/vmstat.8:100 ../man/watch.1:100
+msgid "Display version information and exit."
+msgstr "Wyświetlenie informacji o wersji i zakończenie."
+
+#. type: TP
+#: ../man/pgrep.1:231 ../man/pmap.1:69 ../man/pwdx.1:22 ../man/skill.1:65
+#: ../man/slabtop.1:48 ../man/sysctl.8:113 ../man/tload.1:35 ../man/uptime.1:40
+#: ../man/vmstat.8:100 ../man/watch.1:94
+#, no-wrap
+msgid "B<-h>, B<--help>"
+msgstr "B<-h>, B<--help>"
+
+#. type: Plain text
+#: ../man/pgrep.1:234 ../man/vmstat.8:103
+msgid "Display help and exit."
+msgstr "Wyświetlenie opisu i zakończenie."
+
+#. type: SH
+#: ../man/pgrep.1:235
+#, no-wrap
+msgid "OPERANDS"
+msgstr "ARGUMENTY"
+
+#. type: TP
+#: ../man/pgrep.1:236
+#, no-wrap
+msgid "I<pattern>"
+msgstr "I<wzorzec>"
+
+#. type: Plain text
+#: ../man/pgrep.1:240
+msgid ""
+"Specifies an Extended Regular Expression for matching against the process "
+"names or command lines."
+msgstr ""
+"Określenie rozszerzonego wyrażenia regularnego do dopasowania nazwy procesu "
+"lub linii poleceń."
+
+#. type: Plain text
+#: ../man/pgrep.1:244
+msgid "Example 1: Find the process ID of the B<named> daemon:"
+msgstr "Przykład 1: znalezienie identyfikatora procesu demona B<named>:"
+
+#. type: Plain text
+#: ../man/pgrep.1:246
+msgid "$ pgrep -u root named"
+msgstr "$ pgrep -u root named"
+
+#. type: Plain text
+#: ../man/pgrep.1:250
+msgid "Example 2: Make B<syslog> reread its configuration file:"
+msgstr ""
+"Przykład 2: wymuszenie ponownego odczytu pliku konfiguracyjnego przez "
+"program B<syslog>:"
+
+#. type: Plain text
+#: ../man/pgrep.1:252
+msgid "$ pkill -HUP syslogd"
+msgstr "$ pkill -HUP syslogd"
+
+#. type: Plain text
+#: ../man/pgrep.1:256
+msgid "Example 3: Give detailed information on all B<xterm> processes:"
+msgstr ""
+"Przykład 3: podanie szczegółowych informacji o wszystkich procesach B<xterm>:"
+
+#. type: Plain text
+#: ../man/pgrep.1:258
+msgid "$ ps -fp $(pgrep -d, -x xterm)"
+msgstr "$ ps -fp $(pgrep -d, -x xterm)"
+
+#. type: Plain text
+#: ../man/pgrep.1:262
+msgid "Example 4: Make all B<chrome> processes run nicer:"
+msgstr "Przykład 4: zwiększenie nice wszystkich procesów B<chrome>:"
+
+#. type: Plain text
+#: ../man/pgrep.1:264
+msgid "$ renice +4 $(pgrep chrome)"
+msgstr "$ renice +4 $(pgrep chrome)"
+
+#. type: SH
+#: ../man/pgrep.1:264 ../man/pidof.1:61 ../man/pmap.1:75 ../man/watch.1:100
+#, no-wrap
+msgid "EXIT STATUS"
+msgstr "KOD WYJÅšCIA"
+
+#. type: TP
+#: ../man/pgrep.1:266
+#, no-wrap
+msgid "0"
+msgstr "0"
+
+#. type: Plain text
+#: ../man/pgrep.1:274
+#, fuzzy
+#| msgid ""
+#| "One or more processes matched the criteria. For pkill and pidwait, one or "
+#| "more processes must also have been successfully signalled or waited for."
+msgid ""
+"One or more processes matched the criteria. For B<pkill> and B<pidwait>, one "
+"or more processes must also have been successfully signalled or waited for."
+msgstr ""
+"Jeden lub więcej procesów pasowało do warunków. W przypadku pkill i pidwait, "
+"musi udać się wysłać sygnał lub zaczekać na przynajmniej jeden proces."
+
+#. type: IP
+#: ../man/pgrep.1:274 ../man/ps.1:43 ../man/ps.1:818 ../man/ps.1:2082
+#, no-wrap
+msgid "1"
+msgstr "1"
+
+#. type: Plain text
+#: ../man/pgrep.1:277
+msgid "No processes matched or none of them could be signalled."
+msgstr ""
+"Brak procesów pasujących do warunków lub do żadnego nie udało się wysłać "
+"sygnału."
+
+#. type: IP
+#: ../man/pgrep.1:277 ../man/ps.1:45 ../man/ps.1:2084
+#, no-wrap
+msgid "2"
+msgstr "2"
+
+#. type: Plain text
+#: ../man/pgrep.1:280
+msgid "Syntax error in the command line."
+msgstr "Błąd składni w linii poleceń."
+
+#. type: IP
+#: ../man/pgrep.1:280 ../man/ps.1:47 ../man/ps.1:2086
+#, no-wrap
+msgid "3"
+msgstr "3"
+
+#. type: Plain text
+#: ../man/pgrep.1:283
+msgid "Fatal error: out of memory etc."
+msgstr "Błąd krytyczny: brak pamięci itp."
+
+#. type: Plain text
+#: ../man/pgrep.1:289
+msgid ""
+"The process name used for matching is limited to the 15 characters present "
+"in the output of /proc/I<pid>/stat. Use the B<-f> option to match against "
+"the complete command line, /proc/I<pid>/cmdline. Threads may not have the "
+"same process name as the parent process but will have the same command line."
+msgstr ""
+"Nazwa procesu używana przy dopasowaniu jest ograniczona do 15 znaków "
+"obecnych w wyjściu /proc/I<pid>/stat. Aby dopasować do pełnej linii poleceń "
+"(/proc/I<pid>/cmdline), należy użyć opcji B<-f>. Wątki mogą nie mieć tej "
+"samej nazwy procesu jako rodzica, ale będą miały tę samą linię poleceń."
+
+#. type: Plain text
+#: ../man/pgrep.1:297
+msgid ""
+"The running B<pgrep>, B<pkill>, or B<pidwait> process will never report "
+"itself as a match."
+msgstr ""
+"Działający proces B<pgrep>, B<pkill> ani B<pidwait> nigdy nie zgłosi siebie "
+"jako dopasowania."
+
+#. type: Plain text
+#: ../man/pgrep.1:301
+#, fuzzy
+#| msgid ""
+#| "The B<-O --older> option will silently fail if /proc is mounted with the "
+#| "I<subset=pid> option."
+msgid ""
+"The B<-O --older> option will silently fail if I</proc> is mounted with the "
+"I<subset=pid> option."
+msgstr ""
+"Opcja B<-O --older> cicho się nie powiedzie, jeśli /proc jest zamontowany z "
+"opcjÄ… I<subset=pid>."
+
+#. type: Plain text
+#: ../man/pgrep.1:310
+msgid ""
+"The options B<-n> and B<-o> and B<-v> can not be combined. Let me know if "
+"you need to do this."
+msgstr ""
+"Opcji B<-n>, B<-o> oraz B<-v> nie można łączyć. Gdyby było to przydatne, "
+"proszę zawiadomić autora."
+
+#. type: Plain text
+#: ../man/pgrep.1:312
+msgid "Defunct processes are reported."
+msgstr "Zgłoszono procesy nie funkcjonujące."
+
+#. type: Plain text
+#: ../man/pgrep.1:317
+msgid ""
+"B<pidwait> requires the B<pidfd_open>(2) system call which first appeared "
+"in Linux 5.3."
+msgstr ""
+"B<pidwait> wymaga wywołania systemowego B<pidfd_open>(2), które pojawiło się "
+"w Linuksie 5.3."
+
+#. type: Plain text
+#: ../man/pgrep.1:327
+#, fuzzy
+#| msgid ""
+#| "B<ps>(1), B<regex>(7), B<signal>(7), B<sigqueue>(3), B<killall>(1), "
+#| "B<skill>(1), B<kill>(1), B<kill>(2), B<cgroups>(8)"
+msgid ""
+"B<ps>(1), B<regex>(7), B<signal>(7), B<sigqueue>(3), B<killall>(1), "
+"B<skill>(1), B<kill>(1), B<kill>(2), B<cgroups>(8)."
+msgstr ""
+"B<ps>(1), B<regex>(7), B<signal>(7), B<sigqueue>(3), B<killall>(1), "
+"B<skill>(1), B<kill>(1), B<kill>(2), B<cgroups>(8)"
+
+#. type: Plain text
+#: ../man/pgrep.1:331
+msgid "E<.UR kjetilho@ifi.uio.no> Kjetil Torgrim Homme E<.UE>"
+msgstr "E<.UR kjetilho@ifi.uio.no> Kjetil Torgrim Homme E<.UE>"
+
+#. type: TH
+#: ../man/pidof.1:13
+#, no-wrap
+msgid "PIDOF"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:16
+msgid "pidof - find the process ID of a running program"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:30
+msgid ""
+"B<pidof> [B<-s>] [B<-c>] [B<-q>] [B<-w>] [B<-x>] [B<-o> I<omitpid[,"
+"omitpid...]...>] [B<-t>] [B<-S> I<separator>] I<program> I<[>B<program..."
+">I<]>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:34
+msgid ""
+"B<Pidof> finds the process id's (pids) of the named programs. It prints "
+"those id's on the standard output."
+msgstr ""
+
+#. type: IP
+#: ../man/pidof.1:35
+#, no-wrap
+msgid "B<-s>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:37
+msgid "Single shot - this instructs the program to only return one I<pid>."
+msgstr ""
+
+#. type: TP
+#: ../man/pidof.1:37 ../man/ps.1:409
+#, no-wrap
+msgid "B<-c>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:41
+msgid ""
+"Only return process ids that are running with the same root directory. This "
+"option is ignored for non-root users, as they will be unable to check the "
+"current root directory of processes they do not own."
+msgstr ""
+
+#. type: IP
+#: ../man/pidof.1:41
+#, no-wrap
+msgid "B<-q>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:43
+msgid ""
+"Quiet mode, suppress any output and only sets the exit status accordingly."
+msgstr ""
+
+#. type: TP
+#: ../man/pidof.1:43 ../man/ps.1:718
+#, no-wrap
+msgid "B<-w>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:46
+msgid ""
+"Show also processes that do not have visible command line (e.g. kernel "
+"worker threads)."
+msgstr ""
+
+#. type: TP
+#: ../man/pidof.1:46 ../man/sysctl.8:110
+#, no-wrap
+msgid "B<-x>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:49
+msgid ""
+"Scripts too - this causes the program to also return process id's of shells "
+"running the named scripts."
+msgstr ""
+
+#. type: IP
+#: ../man/pidof.1:49
+#, fuzzy, no-wrap
+#| msgid "B<--ns >I<pid>"
+msgid "B<-o> I<omitpid>"
+msgstr "B<--ns >I<pid>"
+
+#. type: Plain text
+#: ../man/pidof.1:53
+msgid ""
+"Tells B<pidof> to omit processes with that process id. The special pid "
+"B<%PPID> can be used to name the parent process of the B<pidof> program, in "
+"other words the calling shell or shell script."
+msgstr ""
+
+#. type: IP
+#: ../man/pidof.1:53
+#, no-wrap
+msgid "B<-t>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:55
+msgid "Shows all thread ids instead of pids."
+msgstr ""
+
+#. type: IP
+#: ../man/pidof.1:55
+#, no-wrap
+msgid "B<-S> I<separator>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:61
+msgid ""
+"Use I<separator> as a separator put between pids. Used only when more than "
+"one pids are printed for the program. The B<-d> option is an alias for this "
+"option for sysvinit B<pidof> compatibility."
+msgstr ""
+
+#. type: TP
+#: ../man/pidof.1:62 ../man/pmap.1:79 ../man/watch.1:104
+#, no-wrap
+msgid "B<0>"
+msgstr "B<0>"
+
+#. type: Plain text
+#: ../man/pidof.1:65
+msgid "At least one program was found with the requested name."
+msgstr ""
+
+#. type: TP
+#: ../man/pidof.1:65 ../man/pmap.1:82 ../man/watch.1:107
+#, no-wrap
+msgid "B<1>"
+msgstr "B<1>"
+
+#. type: Plain text
+#: ../man/pidof.1:68
+msgid "No program was found with the requested name."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:75
+msgid ""
+"When using the B<-x> option, B<pidof> only has a simple method for detecting "
+"scripts and will miss scripts that, for example, use env. This limitation is "
+"due to how the scripts look in the proc filesystem."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:79
+#, fuzzy
+#| msgid "B<ps>(1), B<pgrep>(1)"
+msgid "B<pgrep>(1), B<pkill>(1)"
+msgstr "B<ps>(1), B<pgrep>(1)"
+
+#. type: Plain text
+#: ../man/pidof.1:82
+msgid "E<.UR jcapik@redhat.com> Jaromir Capik E<.UE>"
+msgstr ""
+
+#. type: TH
+#: ../man/pmap.1:19
+#, no-wrap
+msgid "PMAP"
+msgstr "PMAP"
+
+#. type: TH
+#: ../man/pmap.1:19 ../man/pwdx.1:12 ../man/tload.1:12
+#, no-wrap
+msgid "2020-06-04"
+msgstr "2020-06-04"
+
+#. type: Plain text
+#: ../man/pmap.1:22
+msgid "pmap - report memory map of a process"
+msgstr "pmap - informacje o odwzorowaniu pamięci procesu"
+
+#. type: Plain text
+#: ../man/pmap.1:25
+msgid "B<pmap> [I<options>] I<pid> [...]"
+msgstr "B<pmap> [I<opcje>] I<pid> [...]"
+
+#. type: Plain text
+#: ../man/pmap.1:29
+msgid "The B<pmap> command reports the memory map of a process or processes."
+msgstr "Polecenie B<pmap> wypisuje mapę pamięci procesu lub procesów."
+
+#. type: TP
+#: ../man/pmap.1:30
+#, no-wrap
+msgid "B<-x>, B<--extended>"
+msgstr "B<-x>, B<--extended>"
+
+#. type: Plain text
+#: ../man/pmap.1:33
+msgid "Show the extended format."
+msgstr "Wyświetlanie w formacie rozszerzonym."
+
+#. type: TP
+#: ../man/pmap.1:33
+#, no-wrap
+msgid "B<-d>, B<--device>"
+msgstr "B<-d>, B<--device>"
+
+#. type: Plain text
+#: ../man/pmap.1:36
+msgid "Show the device format."
+msgstr "Wyświetlanie w formacie urządzeń."
+
+#. type: TP
+#: ../man/pmap.1:36 ../man/sysctl.8:57
+#, no-wrap
+msgid "B<-q>, B<--quiet>"
+msgstr "B<-q>, B<--quiet>"
+
+#. type: Plain text
+#: ../man/pmap.1:39
+msgid "Do not display some header or footer lines."
+msgstr "Bez wyświetlania linii nagłówka i stopki."
+
+#. type: TP
+#: ../man/pmap.1:39
+#, no-wrap
+msgid "B<-A>, B<--range> I<low>,I<high>"
+msgstr "B<-A>, B<--range> I<dolny>,I<górny>"
+
+#. type: Plain text
+#: ../man/pmap.1:47
+msgid ""
+"Limit results to the given range to I<low> and I<high> address range. "
+"Notice that the low and high arguments are single string separated with "
+"comma."
+msgstr ""
+"Ograniczenie wyników do podanego przedziału adresów: I<dolny>,I<górny>. "
+"Limity dolny i górny podaje się rozdzielone przecinkiem jako pojedynczy "
+"argument."
+
+#. type: TP
+#: ../man/pmap.1:47 ../man/sysctl.8:104
+#, no-wrap
+msgid "B<-X>"
+msgstr "B<-X>"
+
+#. type: Plain text
+#: ../man/pmap.1:51
+msgid ""
+"Show even more details than the B<-x> option. WARNING: format changes "
+"according to I</proc/PID/smaps>"
+msgstr ""
+"Wypisywanie jeszcze więcej szczegółów niż z opcją B<-x>. UWAGA: format "
+"zmienia siÄ™ z I</proc/PID/smaps>"
+
+#. type: TP
+#: ../man/pmap.1:51
+#, no-wrap
+msgid "B<-XX>"
+msgstr "B<-XX>"
+
+#. type: Plain text
+#: ../man/pmap.1:54
+msgid "Show everything the kernel provides"
+msgstr "Wypisywanie wszystkiego, co udostępnia jądro"
+
+#. type: TP
+#: ../man/pmap.1:54
+#, no-wrap
+msgid "B<-p>, B<--show-path>"
+msgstr "B<-p>, B<--show-path>"
+
+#. type: Plain text
+#: ../man/pmap.1:57
+msgid "Show full path to files in the mapping column"
+msgstr "Wypisywanie pełnych ścieżek do plików w kolumnie odwzorowań"
+
+#. type: TP
+#: ../man/pmap.1:57
+#, no-wrap
+msgid "B<-c>, B<--read-rc>"
+msgstr "B<-c>, B<--read-rc>"
+
+#. type: Plain text
+#: ../man/pmap.1:60
+msgid "Read the default configuration"
+msgstr "Odczyt domyślnej konfiguracji"
+
+#. type: TP
+#: ../man/pmap.1:60
+#, no-wrap
+msgid "B<-C>, B<--read-rc-from> I<file>"
+msgstr "B<-C>, B<--read-rc-from> I<plik>"
+
+#. type: Plain text
+#: ../man/pmap.1:63
+msgid "Read the configuration from I<file>"
+msgstr "Odczyt konfiguracji z I<pliku>"
+
+#. type: TP
+#: ../man/pmap.1:63
+#, no-wrap
+msgid "B<-n>, B<--create-rc>"
+msgstr "B<-n>, B<--create-rc>"
+
+#. type: Plain text
+#: ../man/pmap.1:66
+msgid "Create new default configuration"
+msgstr "Utworzenie nowej konfiguracji domyślnej"
+
+#. type: TP
+#: ../man/pmap.1:66
+#, no-wrap
+msgid "B<-N>, B<--create-rc-to> I<file>"
+msgstr "B<-N>, B<--create-rc-to> I<plik>"
+
+#. type: Plain text
+#: ../man/pmap.1:69
+msgid "Create new configuration to I<file>"
+msgstr "Utworzenie nowej konfiguracji w I<pliku>"
+
+#. type: Plain text
+#: ../man/pmap.1:72 ../man/skill.1:68 ../man/sysctl.8:116 ../man/w.1:66
+#: ../man/watch.1:97
+msgid "Display help text and exit."
+msgstr "Wyświetlenie tekstu pomocy i zakończenie."
+
+#. type: Plain text
+#: ../man/pmap.1:82 ../man/watch.1:107
+msgid "Success."
+msgstr "Sukces."
+
+#. type: Plain text
+#: ../man/pmap.1:85
+msgid "Failure."
+msgstr "Niepowodzenie."
+
+#. type: TP
+#: ../man/pmap.1:85
+#, no-wrap
+msgid "B<42>"
+msgstr "B<42>"
+
+#. type: Plain text
+#: ../man/pmap.1:88
+msgid "Did not find all processes asked for."
+msgstr "Nie znaleziono wszystkich żądanych procesów."
+
+#. type: Plain text
+#: ../man/pmap.1:93 ../man/pwdx.1:28
+msgid "B<ps>(1), B<pgrep>(1)"
+msgstr "B<ps>(1), B<pgrep>(1)"
+
+#. type: Plain text
+#: ../man/pmap.1:97
+msgid ""
+"No standards apply, but B<pmap> looks an awful lot like a SunOS command."
+msgstr ""
+"Polecenia B<pmap> nie dotyczą żadne standardy, ale wygląda równie brzydko, "
+"co polecenie SunOS."
+
+#. type: TH
+#: ../man/pwdx.1:12
+#, no-wrap
+msgid "PWDX"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pwdx.1:15
+#, fuzzy
+#| msgid "pmap - report memory map of a process"
+msgid "pwdx - report current working directory of a process"
+msgstr "pmap - informacje o odwzorowaniu pamięci procesu"
+
+#. type: Plain text
+#: ../man/pwdx.1:18
+#, fuzzy
+#| msgid "B<pmap> [I<options>] I<pid> [...]"
+msgid "B<pwdx> [I<options>] I<pid> [...]"
+msgstr "B<pmap> [I<opcje>] I<pid> [...]"
+
+#. type: Plain text
+#: ../man/pwdx.1:22
+#, fuzzy
+#| msgid "Display version information and exit."
+msgid "Output version information and exit."
+msgstr "Wyświetlenie informacji o wersji i zakończenie."
+
+#. type: Plain text
+#: ../man/pwdx.1:25
+#, fuzzy
+#| msgid "Display help text and exit."
+msgid "Output help screen and exit."
+msgstr "Wyświetlenie tekstu pomocy i zakończenie."
+
+#. type: Plain text
+#: ../man/pwdx.1:32
+#, fuzzy
+#| msgid ""
+#| "No standards apply, but B<pmap> looks an awful lot like a SunOS command."
+msgid ""
+"No standards apply, but B<pwdx> looks an awful lot like a SunOS command."
+msgstr ""
+"Polecenia B<pmap> nie dotyczą żadne standardy, ale wygląda równie brzydko, "
+"co polecenie SunOS."
+
+#. type: Plain text
+#: ../man/pwdx.1:37
+msgid "E<.UR nmiell@gmail.com> Nicholas Miell E<.UE> wrote pwdx in 2004."
+msgstr ""
+
+#. type: TH
+#: ../man/skill.1:12
+#, no-wrap
+msgid "SKILL"
+msgstr ""
+
+#. type: TH
+#: ../man/skill.1:12 ../man/sysctl.8:14 ../man/ps.1:13
+#, fuzzy, no-wrap
+#| msgid "2022-08-31"
+msgid "2023-08-19"
+msgstr "2022-08-31"
+
+#. type: Plain text
+#: ../man/skill.1:15
+msgid "skill, snice - send a signal or report process status"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:20
+msgid "B<skill> [I<signal>] [I<options>] I<expression>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:25
+msgid "B<snice> [I<new priority>] [I<options>] I<expression>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:33
+msgid ""
+"These tools are obsolete and unportable. The command syntax is poorly "
+"defined. Consider using the B<killall>, B<pkill>, and B<pgrep> commands "
+"instead."
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:38
+msgid ""
+"The default signal for B<skill> is TERM. Use B<-l> or B<-L> to list "
+"available signals. Particularly useful signals include HUP, INT, KILL, "
+"STOP, CONT, and 0. Alternate signals may be specified in three ways: B<-9> "
+"B<-SIGKILL> B<-KILL>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:42
+msgid ""
+"The default priority for B<snice> is +4. Priority numbers range from +20 "
+"(slowest) to -20 (fastest). Negative priority numbers are restricted to "
+"administrative users."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:43
+#, fuzzy, no-wrap
+#| msgid "B<-f>, B<--forks>"
+msgid "B<-f>,B<\\ --fast>"
+msgstr "B<-f>, B<--forks>"
+
+#. type: Plain text
+#: ../man/skill.1:46
+msgid "Fast mode. This option has not been implemented."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:46
+#, fuzzy, no-wrap
+#| msgid "B<-a>, B<--active>"
+msgid "B<-i>,B<\\ --interactive>"
+msgstr "B<-a>, B<--active>"
+
+#. type: Plain text
+#: ../man/skill.1:49
+msgid "Interactive use. You will be asked to approve each action."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:49
+#, fuzzy, no-wrap
+#| msgid "B<-l>, B<--list-name>"
+msgid "B<-l>,B<\\ --list>"
+msgstr "B<-l>, B<--list-name>"
+
+#. type: Plain text
+#: ../man/skill.1:52
+msgid "List all signal names."
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:55
+msgid "List all signal names in a nice table."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:55
+#, fuzzy, no-wrap
+#| msgid "B<-a>, B<--active>"
+msgid "B<-n>,B<\\ --no-action>"
+msgstr "B<-a>, B<--active>"
+
+#. type: Plain text
+#: ../man/skill.1:59
+msgid ""
+"No action; perform a simulation of events that would occur but do not "
+"actually change the system."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:59
+#, fuzzy, no-wrap
+#| msgid "B<-v>, B<--inverse>"
+msgid "B<-v>,B<\\ --verbose>"
+msgstr "B<-v>, B<--inverse>"
+
+#. type: Plain text
+#: ../man/skill.1:62
+msgid "Verbose; explain what is being done."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:62
+#, fuzzy, no-wrap
+#| msgid "B<-w>, B<--wide>"
+msgid "B<-w>,B<\\ --warnings>"
+msgstr "B<-w>, B<--wide>"
+
+#. type: Plain text
+#: ../man/skill.1:65
+msgid "Enable warnings. This option has not been implemented."
+msgstr ""
+
+#. type: SH
+#: ../man/skill.1:72
+#, no-wrap
+msgid "PROCESS SELECTION OPTIONS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:75
+msgid ""
+"Selection criteria can be: terminal, user, pid, command. The options below "
+"may be used to ensure correct interpretation."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:75
+#, fuzzy, no-wrap
+#| msgid "B<-t>, B<--total>"
+msgid "B<-t>, B<--tty> I<tty>"
+msgstr "B<-t>, B<--total>"
+
+#. type: Plain text
+#: ../man/skill.1:78
+msgid "The next expression is a terminal (tty or pty)."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:78
+#, fuzzy, no-wrap
+#| msgid "B<-O>, B<--older> I<secs>"
+msgid "B<-u>, B<--user> I<user>"
+msgstr "B<-O>, B<--older> I<sekundy>"
+
+#. type: Plain text
+#: ../man/skill.1:81
+msgid "The next expression is a username."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:81
+#, fuzzy, no-wrap
+#| msgid "B<-U>, B<--uid> I<uid>,..."
+msgid "B<-p>, B<--pid> I<pid>"
+msgstr "B<-U>, B<--uid> I<uid>,..."
+
+#. type: Plain text
+#: ../man/skill.1:84
+msgid "The next expression is a process ID number."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:84
+#, fuzzy, no-wrap
+#| msgid "B<-c>, B<--count> I<count>"
+msgid "B<-c>, B<--command> I<command>"
+msgstr "B<-c>, B<--count> I<liczba>"
+
+#. type: Plain text
+#: ../man/skill.1:87
+msgid "The next expression is a command name."
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:90
+msgid "Match the processes that belong to the same namespace as pid."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:90
+#, fuzzy, no-wrap
+#| msgid "B<--nslist >I<name>B<,...>"
+msgid "B<--nslist >I<ns\\/>,\\,I<...\\/>"
+msgstr "B<--nslist >I<nazwa>B<,...>"
+
+#. type: Plain text
+#: ../man/skill.1:94
+#, fuzzy
+#| msgid ""
+#| "Match only the provided namespaces. Available namespaces: ipc, mnt, net, "
+#| "pid, user,uts."
+msgid ""
+"list which namespaces will be considered for the B<--ns> option. Available "
+"namespaces: ipc, mnt, net, pid, user, uts."
+msgstr ""
+"Dopasowanie tylko do podanych przestrzeni nazw. Dostępne przestrzenie: ipc, "
+"mnt, net, pid, user, uts."
+
+#. type: SH
+#: ../man/skill.1:95
+#, no-wrap
+msgid "SIGNALS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:99
+msgid "The behavior of signals is explained in B<signal>(7) manual page."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:100
+#, no-wrap
+msgid "B<snice -c seti -c crack +7>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:103
+msgid "+Slow down B<seti> and B<crack> commands."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:103
+#, no-wrap
+msgid "B<skill -KILL -t /dev/pts/*>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:106
+msgid "Kill users on PTY devices."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:106
+#, no-wrap
+msgid "B<skill -STOP -u viro -u lm -u davem>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:109
+msgid "Stop three users."
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:117
+#, fuzzy
+#| msgid ""
+#| "B<ps>(1), B<regex>(7), B<signal>(7), B<sigqueue>(3), B<killall>(1), "
+#| "B<skill>(1), B<kill>(1), B<kill>(2), B<cgroups>(8)"
+msgid ""
+"B<kill>(1), B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), "
+"B<renice>(1), B<signal>(7)"
+msgstr ""
+"B<ps>(1), B<regex>(7), B<signal>(7), B<sigqueue>(3), B<killall>(1), "
+"B<skill>(1), B<kill>(1), B<kill>(2), B<cgroups>(8)"
+
+#. type: Plain text
+#: ../man/skill.1:119
+msgid "No standards apply."
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:125
+msgid ""
+"E<.MT albert@users.sf.net> Albert Cahalan E<.ME> wrote skill and snice in "
+"1999 as a replacement for a non-free version."
+msgstr ""
+
+#. type: TH
+#: ../man/slabtop.1:14
+#, no-wrap
+msgid "SLABTOP"
+msgstr ""
+
+#. type: TH
+#: ../man/slabtop.1:14
+#, no-wrap
+msgid "2021-03-11"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:17
+msgid "slabtop - display kernel slab cache information in real time"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:20
+#, fuzzy
+#| msgid "B<uptime> [I<options>]"
+msgid "B<slabtop> [I<options>]"
+msgstr "B<uptime> [I<opcje>]"
+
+#. type: Plain text
+#: ../man/slabtop.1:25
+msgid ""
+"B<slabtop> displays detailed kernel slab cache information in real time. It "
+"displays a listing of the top caches sorted by one of the listed sort "
+"criteria. It also displays a statistics header filled with slab layer "
+"information."
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:30
+msgid ""
+"Normal invocation of B<slabtop> does not require any options. The behavior, "
+"however, can be fine-tuned by specifying one or more of the following flags:"
+msgstr ""
+
+#. type: TP
+#: ../man/slabtop.1:30
+#, fuzzy, no-wrap
+#| msgid "B<-d>, B<--device>"
+msgid "B<-d>, B<--delay>=I<N>"
+msgstr "B<-d>, B<--device>"
+
+#. type: Plain text
+#: ../man/slabtop.1:39
+msgid ""
+"Refresh the display every I<n> in seconds. By default, B<slabtop> refreshes "
+"the display every three seconds. To exit the program, hit B<q>. This "
+"cannot be combined with the B<-o> option."
+msgstr ""
+
+#. type: TP
+#: ../man/slabtop.1:39
+#, fuzzy, no-wrap
+#| msgid "B<-s>, B<--stats>"
+msgid "B<-s>, B<--sort>=I<S>"
+msgstr "B<-s>, B<--stats>"
+
+#. type: Plain text
+#: ../man/slabtop.1:42
+msgid "Sort by I<S>, where I<S> is one of the sort criteria."
+msgstr ""
+
+#. type: TP
+#: ../man/slabtop.1:42
+#, fuzzy, no-wrap
+#| msgid "B<-s>, B<--since>"
+msgid "B<-o>, B<--once>"
+msgstr "B<-s>, B<--since>"
+
+#. type: Plain text
+#: ../man/slabtop.1:45
+#, fuzzy
+#| msgid "Display help text and exit."
+msgid "Display the output once and then exit."
+msgstr "Wyświetlenie tekstu pomocy i zakończenie."
+
+#. type: Plain text
+#: ../man/slabtop.1:51
+#, fuzzy
+#| msgid "Display version information and exit."
+msgid "Display usage information and exit."
+msgstr "Wyświetlenie informacji o wersji i zakończenie."
+
+#. type: SH
+#: ../man/slabtop.1:51
+#, no-wrap
+msgid "SORT CRITERIA"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:55
+msgid ""
+"The following are valid sort criteria used to sort the individual slab "
+"caches and thereby determine what are the \"top\" slab caches to display. "
+"The default sort criteria is to sort by the number of objects (\"o\")."
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:59
+msgid ""
+"The sort criteria can also be changed while B<slabtop> is running by "
+"pressing the associated character."
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<character>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<description>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<header>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "a"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "number of active objects"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "ACTIVE"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "b"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "objects per slab"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "OBJ/SLAB"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:64 ../man/ps.1:909 ../man/ps.1:1081
+#, no-wrap
+msgid "c"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:64
+#, no-wrap
+msgid "cache size"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:64
+#, no-wrap
+msgid "CACHE SIZE"
+msgstr ""
+
+#. type: TP
+#: ../man/slabtop.1:65 ../man/ps.1:882
+#, no-wrap
+msgid "l"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:65
+#, no-wrap
+msgid "number of slabs"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:65
+#, no-wrap
+msgid "SLABS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:66 ../man/ps.1:932
+#, no-wrap
+msgid "v"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:66
+#, no-wrap
+msgid "number of active slabs"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:66 ../man/slabtop.1:69
+#, no-wrap
+msgid "N/A"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:67 ../man/ps.1:919
+#, no-wrap
+msgid "n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:67
+#, no-wrap
+msgid "name"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:67
+#, fuzzy, no-wrap
+#| msgid "NAME"
+msgid "NAME\\:"
+msgstr "NAZWA"
+
+#. type: tbl table
+#: ../man/slabtop.1:68 ../man/ps.1:921
+#, no-wrap
+msgid "o"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:68
+#, no-wrap
+msgid "number of objects"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:68
+#, no-wrap
+msgid "OBJS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:69 ../man/ps.1:922
+#, no-wrap
+msgid "p"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:69
+#, no-wrap
+msgid "pages per slab"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:70 ../man/ps.1:879 ../man/ps.1:926 ../man/ps.1:1631
+#, no-wrap
+msgid "s"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:70
+#, no-wrap
+msgid "object size"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:70
+#, no-wrap
+msgid "OBJ SIZE"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:71 ../man/ps.1:931
+#, no-wrap
+msgid "u"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:71
+#, no-wrap
+msgid "cache utilization"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:71
+#, no-wrap
+msgid "USE"
+msgstr ""
+
+#. type: SH
+#: ../man/slabtop.1:73
+#, fuzzy, no-wrap
+#| msgid "OPERANDS"
+msgid "COMMANDS"
+msgstr "ARGUMENTY"
+
+#. type: Plain text
+#: ../man/slabtop.1:77
+msgid ""
+"B<slabtop> accepts keyboard commands from the user during use. The "
+"following are supported. In the case of letters, both cases are accepted."
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:81
+msgid ""
+"Each of the valid sort characters are also accepted, to change the sort "
+"routine. See the section B<SORT CRITERIA>."
+msgstr ""
+
+#. type: TP
+#: ../man/slabtop.1:81
+#, no-wrap
+msgid "B<E<lt>SPACEBARE<gt>>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:84
+msgid "Refresh the screen."
+msgstr ""
+
+#. type: TP
+#: ../man/slabtop.1:84
+#, no-wrap
+msgid "B<Q>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:87
+msgid "Quit the program."
+msgstr ""
+
+#. type: TP
+#: ../man/slabtop.1:88
+#, fuzzy, no-wrap
+#| msgid "I</proc/loadavg>"
+msgid "I</proc/slabinfo>"
+msgstr "I</proc/loadavg>"
+
+#. type: Plain text
+#: ../man/slabtop.1:91
+#, fuzzy
+#| msgid "process information"
+msgid "slab information"
+msgstr "informacje o procesach"
+
+#. type: Plain text
+#: ../man/slabtop.1:96
+#, fuzzy
+#| msgid "B<ps>(1), B<slabtop>(1), B<top>(1), B<vmstat>(8)."
+msgid "B<free>(1), B<ps>(1), B<top>(1), B<vmstat>(8)"
+msgstr "B<ps>(1), B<slabtop>(1), B<top>(1), B<vmstat>(8)."
+
+#. type: Plain text
+#: ../man/slabtop.1:102
+msgid ""
+"Currently, B<slabtop> requires a 2.4 or later kernel (specifically, a "
+"version 1.1 or later I</proc/slabinfo>). Kernel 2.2 should be supported in "
+"the future."
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:108
+msgid ""
+"The B<slabtop> statistic header is tracking how many bytes of slabs are "
+"being used and is not a measure of physical memory. The 'Slab' field in the "
+"I</proc/meminfo> file is tracking information about used slab physical "
+"memory."
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:114
+msgid ""
+"The B<CACHE SIZE> column is not accurate, it's the upper limit of memory "
+"used by specific slab. When system using slub (most common case) is under "
+"high memory pressure, there are slab order fallbacks, which means \"pages "
+"per slab\" is not constant and may decrease."
+msgstr ""
+
+#. type: SH
+#: ../man/slabtop.1:114 ../man/tload.1:58 ../man/uptime.1:56 ../man/w.1:102
+#, no-wrap
+msgid "AUTHORS"
+msgstr "AUTORZY"
+
+#. type: Plain text
+#: ../man/slabtop.1:116
+msgid "Written by Chris Rivera and Robert Love."
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:120
+msgid "B<slabtop> was inspired by Martin Bligh's perl script, B<vmtop>."
+msgstr ""
+
+#. type: TH
+#: ../man/sysctl.8:14
+#, no-wrap
+msgid "SYSCTL"
+msgstr ""
+
+#. type: TH
+#: ../man/sysctl.8:14 ../man/vmstat.8:13
+#, no-wrap
+msgid "System Administration"
+msgstr "Administracja systemem"
+
+#. type: Plain text
+#: ../man/sysctl.8:17
+msgid "sysctl - configure kernel parameters at runtime"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:20
+#, fuzzy
+#| msgid "B<pmap> [I<options>] I<pid> [...]"
+msgid "B<sysctl> [I<options>] [I<variable>[B<=>I<value>]] [...]"
+msgstr "B<pmap> [I<opcje>] I<pid> [...]"
+
+#. type: Plain text
+#: ../man/sysctl.8:23
+msgid "B<sysctl -p> [I<file> or I<regexp>] [...]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:31
+msgid ""
+"B<sysctl> is used to modify kernel parameters at runtime. The parameters "
+"available are those listed under I</proc/sys/>. Procfs is required for "
+"B<sysctl> support in Linux. You can use B<sysctl> to both read and write "
+"sysctl data."
+msgstr ""
+
+#. type: SH
+#: ../man/sysctl.8:31
+#, no-wrap
+msgid "PARAMETERS"
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:32
+#, fuzzy, no-wrap
+#| msgid "B<available>"
+msgid "I<variable>"
+msgstr "B<dostępne>"
+
+#. type: Plain text
+#: ../man/sysctl.8:36
+msgid ""
+"The name of a key to read from. An example is kernel.ostype. The '/' "
+"separator is also accepted in place of a '.'."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:36
+#, no-wrap
+msgid "I<variable>=I<value>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:47
+msgid ""
+"To set a key, use the form I<variable>=I<value> where I<variable> is the key "
+"and I<value> is the value to set it to. If the value contains quotes or "
+"characters which are parsed by the shell, you may need to enclose the value "
+"in double quotes."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:47
+#, fuzzy, no-wrap
+#| msgid "B<-n>, B<--newest>"
+msgid "B<-n>, B<--values>"
+msgstr "B<-n>, B<--newest>"
+
+#. type: Plain text
+#: ../man/sysctl.8:50
+msgid ""
+"Use this option to disable printing of the key name when printing values."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:50
+#, fuzzy, no-wrap
+#| msgid "B<-i>, B<--ignore-case>"
+msgid "B<-e>, B<--ignore>"
+msgstr "B<-e>, B<--ignore-case>"
+
+#. type: Plain text
+#: ../man/sysctl.8:53
+msgid "Use this option to ignore errors about unknown keys."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:53
+#, fuzzy, no-wrap
+#| msgid "B<-n>, B<--newest>"
+msgid "B<-N>, B<--names>"
+msgstr "B<-n>, B<--newest>"
+
+#. type: Plain text
+#: ../man/sysctl.8:57
+msgid ""
+"Use this option to only print the names. It may be useful with shells that "
+"have programmable completion."
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:60
+msgid "Use this option to not display the values set to stdout."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:60
+#, fuzzy, no-wrap
+#| msgid "B<-w>, B<--wide>"
+msgid "B<-w>, B<--write>"
+msgstr "B<-w>, B<--wide>"
+
+#. type: Plain text
+#: ../man/sysctl.8:64
+msgid ""
+"Force all arguments to be write arguments and print an error if they cannot "
+"be parsed this way."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:64
+#, no-wrap
+msgid "B<-p>[I<FILE>], B<--load>[=I<FILE>]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:72
+msgid ""
+"Load in B<sysctl> settings from the file specified or I</etc/sysctl.conf> if "
+"none given. Specifying - as filename means reading data from standard "
+"input. Using this option will mean arguments to B<sysctl> are files, which "
+"are read in the order they are specified. The file argument may be "
+"specified as regular expression."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:72
+#, fuzzy, no-wrap
+#| msgid "B<-f>, B<--full>"
+msgid "B<-a>, B<--all>"
+msgstr "B<-f>, B<--full>"
+
+#. type: Plain text
+#: ../man/sysctl.8:75
+msgid "Display all values currently available."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:75
+#, fuzzy, no-wrap
+#| msgid "B<--tera>"
+msgid "B<--deprecated>"
+msgstr "B<--tera>"
+
+#. type: Plain text
+#: ../man/sysctl.8:80
+msgid "Include deprecated parameters to B<--all> values listing."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:80
+#, fuzzy, no-wrap
+#| msgid "B<-b>, B<--bytes>"
+msgid "B<-b>, B<--binary>"
+msgstr "B<-b>, B<--bytes>"
+
+#. type: Plain text
+#: ../man/sysctl.8:83
+msgid "Print value without new line."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:83
+#, fuzzy, no-wrap
+#| msgid "B<--tebi>"
+msgid "B<--system>"
+msgstr "B<--tebi>"
+
+#. type: Plain text
+#: ../man/sysctl.8:88
+msgid ""
+"Load settings from all system configuration files. See the B<SYSTEM FILE "
+"PRECEDENCE> section below."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:88
+#, fuzzy, no-wrap
+#| msgid "B<-t>, B<--terminal> I<term>,..."
+msgid "B<-r>, B<--pattern> I<pattern>"
+msgstr "B<-t>, B<--terminal> I<term>,..."
+
+#. type: Plain text
+#: ../man/sysctl.8:95
+msgid ""
+"Only apply settings that match I<pattern>. The I<pattern> uses extended "
+"regular expression syntax."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:95 ../man/ps.1:147
+#, no-wrap
+msgid "B<-A>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:98 ../man/sysctl.8:107
+msgid "Alias of B<-a>"
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:98 ../man/ps.1:156
+#, no-wrap
+msgid "B<-d>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:101
+msgid "Alias of B<-h>"
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:101 ../man/ps.1:417
+#, no-wrap
+msgid "B<-f>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:104
+msgid "Alias of B<-p>"
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:107
+#, no-wrap
+msgid "B<-o>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:110 ../man/sysctl.8:113
+msgid "Does nothing, exists for BSD compatibility."
+msgstr ""
+
+#. type: SH
+#: ../man/sysctl.8:119
+#, no-wrap
+msgid "SYSTEM FILE PRECEDENCE"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:125
+msgid ""
+"When using the B<--system> option, B<sysctl> will read files from "
+"directories in the following list in given order from top to bottom. Once a "
+"file of a given filename is loaded, any file of the same name in subsequent "
+"directories is ignored."
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:127
+msgid "/etc/sysctl.d/*.conf"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:129
+msgid "/run/sysctl.d/*.conf"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:131
+msgid "/usr/local/lib/sysctl.d/*.conf"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:133
+msgid "/usr/lib/sysctl.d/*.conf"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:135
+msgid "/lib/sysctl.d/*.conf"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:137
+msgid "/etc/sysctl.conf"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:143
+msgid ""
+"All configuration files are sorted in lexicographic order, regardless of the "
+"directory they reside in. Configuration files can either be completely "
+"replaced (by having a new configuration file with the same name in a "
+"directory of higher priority) or partially replaced (by having a "
+"configuration file that is ordered later)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:145
+msgid "/sbin/sysctl -a"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:147
+msgid "/sbin/sysctl -n kernel.hostname"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:149
+msgid "/sbin/sysctl -w kernel.domainname=\"example.com\""
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:151
+msgid "/sbin/sysctl -p/etc/sysctl.conf"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:153
+msgid "/sbin/sysctl -a --pattern forward"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:155
+msgid "/sbin/sysctl -a --pattern forward$"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:157
+msgid "/sbin/sysctl -a --pattern 'net.ipv4.conf.(eth|wlan)0.arp'"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:159
+msgid "/sbin/sysctl --pattern '\\[char94]net.ipv6' --system"
+msgstr ""
+
+#. type: SH
+#: ../man/sysctl.8:159
+#, no-wrap
+msgid "DEPRECATED PARAMETERS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:169
+msgid ""
+"The B<base_reachable_time> and B<retrans_time> are deprecated. The "
+"B<sysctl> command does not allow changing values of these parameters. Users "
+"who insist to use deprecated kernel interfaces should push values to B</"
+"proc> file system by other means. For example:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:171
+msgid "echo 256 E<gt> /proc/sys/net/ipv6/neigh/eth0/base_reachable_time"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:173
+#, fuzzy
+#| msgid "I</proc>"
+msgid "I</proc/sys>"
+msgstr "I</proc>"
+
+#. type: Plain text
+#: ../man/sysctl.8:175 ../man/sysctl.conf.5:66
+msgid "I</etc/sysctl.d/*.conf>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:177 ../man/sysctl.conf.5:68
+msgid "I</run/sysctl.d/*.conf>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:179 ../man/sysctl.conf.5:70
+msgid "I</usr/local/lib/sysctl.d/*.conf>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:181 ../man/sysctl.conf.5:72
+msgid "I</usr/lib/sysctl.d/*.conf>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:183 ../man/sysctl.conf.5:74
+msgid "I</lib/sysctl.d/*.conf>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:185 ../man/sysctl.conf.5:76
+msgid "I</etc/sysctl.conf>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:189
+#, fuzzy
+#| msgid "B<procps>(3), B<procps_misc>(3), B<proc>(5)."
+msgid "B<proc>(5), B<sysctl.conf>(5), B<regex>(7)"
+msgstr "B<procps>(3), B<procps_misc>(3), B<proc>(5)."
+
+#. type: Plain text
+#: ../man/sysctl.8:193 ../man/sysctl.conf.5:89
+msgid "E<.UR staikos@0wned.org> George Staikos E<.UE>"
+msgstr ""
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "SYSCTL.CONF"
+msgstr ""
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "2021-09-15"
+msgstr ""
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "File Formats"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:16
+msgid "sysctl.conf - sysctl preload/configuration file"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:21
+msgid ""
+"B<sysctl.conf> is a simple file containing sysctl values to be read in and "
+"set by B<sysctl>. The syntax is simply as follows:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:27
+#, no-wrap
+msgid ""
+"# comment\n"
+"; comment\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:29
+#, no-wrap
+msgid "token = value\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:35
+msgid ""
+"Note that blank lines are ignored, and whitespace before and after a token "
+"or value is ignored, although a value can contain whitespace within. Lines "
+"which begin with a I<#> or I<;> are considered comments and ignored."
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:38
+msgid ""
+"If a line begins with a single -, any attempts to set the value that fail "
+"will be ignored."
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:48
+msgid ""
+"As the B</etc/sysctl.conf> file is used to override default kernel parameter "
+"values, only a small number of parameters is predefined in the file. Use I</"
+"sbin/sysctl\\ -a> or follow B<sysctl>(8) to list all possible parameters. "
+"The description of individual parameters can be found in the kernel "
+"documentation."
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:51
+msgid ""
+"Maximum supported line length of the value is 4096 characters due to a "
+"limitation of I</proc> entries in Linux kernel."
+msgstr ""
+
+#. type: SH
+#: ../man/sysctl.conf.5:51
+#, fuzzy, no-wrap
+#| msgid "EXAMPLES"
+msgid "EXAMPLE"
+msgstr "PRZYKÅADY"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:61
+#, no-wrap
+msgid ""
+"# sysctl.conf sample\n"
+"#\n"
+" kernel.domainname = example.com\n"
+"; this one has a space which will be written to the sysctl!\n"
+" kernel.modprobe = /sbin/mod probe\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:83
+msgid ""
+"The paths where B<sysctl> preload files usually exist. See also B<sysctl> "
+"option I<--system>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:85
+msgid "B<sysctl>(8)"
+msgstr ""
+
+#. type: TH
+#: ../man/tload.1:12
+#, no-wrap
+msgid "TLOAD"
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:15
+msgid "tload - graphic representation of system load average"
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:18
+#, fuzzy
+#| msgid "B<pmap> [I<options>] I<pid> [...]"
+msgid "B<tload> [I<options>] [I<tty>]"
+msgstr "B<pmap> [I<opcje>] I<pid> [...]"
+
+#. type: Plain text
+#: ../man/tload.1:25
+msgid ""
+"B<tload> prints a graph of the current system load average to the specified "
+"I<tty> (or the tty of the B<tload> process if none is specified)."
+msgstr ""
+
+#. type: TP
+#: ../man/tload.1:26
+#, fuzzy, no-wrap
+#| msgid "B<-O>, B<--older> I<secs>"
+msgid "B<-s>, B<--scale> I<number>"
+msgstr "B<-O>, B<--older> I<sekundy>"
+
+#. type: Plain text
+#: ../man/tload.1:31
+msgid ""
+"The scale option allows a vertical scale to be specified for the display (in "
+"characters between graph ticks); thus, a smaller value represents a larger "
+"scale, and vice versa."
+msgstr ""
+
+#. type: TP
+#: ../man/tload.1:31
+#, fuzzy, no-wrap
+#| msgid "B<-O>, B<--older> I<secs>"
+msgid "B<-d>, B<--delay> I<seconds>"
+msgstr "B<-O>, B<--older> I<sekundy>"
+
+#. type: Plain text
+#: ../man/tload.1:35
+msgid "The delay sets the delay between graph updates in I<seconds>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:38
+#, fuzzy
+#| msgid "display this help text"
+msgid "Display this help text."
+msgstr "wyświetlenie tego opisu"
+
+#. type: Plain text
+#: ../man/tload.1:45
+msgid "I</proc/loadavg> load average information"
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:50
+#, fuzzy
+#| msgid "B<ps>(1), B<top>(1), B<utmp>(5), B<w>(1)"
+msgid "B<ps>(1), B<top>(1), B<uptime>(1), B<w>(1)"
+msgstr "B<ps>(1), B<top>(1), B<utmp>(5), B<w>(1)"
+
+#. type: Plain text
+#: ../man/tload.1:58
+msgid ""
+"The B<-d>I< delay> option sets the time argument for an B<alarm>(2); if -d 0 "
+"is specified, the alarm is set to 0, which will never send the B<SIGALRM> "
+"and update the display."
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:66
+#, fuzzy
+#| msgid ""
+#| "B<uptime> was written by E<.UR greenfie@gauss.\\:rutgers.\\:edu> Larry "
+#| "Greenfield E<.UE> and E<.UR johnsonm@sunsite.\\:unc.\\:edu> Michael K. "
+#| "Johnson E<.UE>"
+msgid ""
+"Branko Lankester, E<.UR david@\\:ods.\\:com> David Engel E<.UE , and> E<.UR "
+"johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE .>"
+msgstr ""
+"Program B<uptime> napisali E<.UR greenfie@gauss.\\:rutgers.\\:edu> Larry "
+"Greenfield E<.UE> oraz E<.UR johnsonm@sunsite.\\:unc.\\:edu> Michael K. "
+"Johnson E<.UE>"
+
+#. type: TH
+#: ../man/uptime.1:13
+#, no-wrap
+msgid "UPTIME"
+msgstr "UPTIME"
+
+#. type: TH
+#: ../man/uptime.1:13
+#, no-wrap
+msgid "December 2012"
+msgstr "grudzień 2012"
+
+#. type: Plain text
+#: ../man/uptime.1:16
+msgid "uptime - Tell how long the system has been running."
+msgstr "uptime - informacja, jak długo działa system."
+
+#. type: Plain text
+#: ../man/uptime.1:19
+msgid "B<uptime> [I<options>]"
+msgstr "B<uptime> [I<opcje>]"
+
+#. type: Plain text
+#: ../man/uptime.1:24
+msgid ""
+"B<uptime> gives a one line display of the following information. The "
+"current time, how long the system has been running, how many users are "
+"currently logged on, and the system load averages for the past 1, 5, and 15 "
+"minutes."
+msgstr ""
+"B<uptime> w pojedynczej linii podaje następujące informacje: bieżący czas; "
+"czas, jak długo działa system; liczbę aktualnie zalogowanych użytkowników; "
+"średnie obciążenie systemu dla ostatnich 1, 5 i 15 minut."
+
+#. type: Plain text
+#: ../man/uptime.1:27
+msgid ""
+"This is the same information contained in the header line displayed by "
+"B<w>(1)."
+msgstr ""
+"Są to te same informacje, które zawiera linia nagłówka wyświetlana przez "
+"polecenie B<w>(1)."
+
+#. type: Plain text
+#: ../man/uptime.1:36
+msgid ""
+"System load averages is the average number of processes that are either in a "
+"runnable or uninterruptable state. A process in a runnable state is either "
+"using the CPU or waiting to use the CPU. A process in uninterruptable state "
+"is waiting for some I/O access, eg waiting for disk. The averages are taken "
+"over the three time intervals. Load averages are not normalized for the "
+"number of CPUs in a system, so a load average of 1 means a single CPU system "
+"is loaded all the time while on a 4 CPU system it means it was idle 75% of "
+"the time."
+msgstr ""
+"Średnie obciążenie systemu to średnia liczba procesów w stanie działającym "
+"lub nieprzerywalnym. Proces jest w stanie działającym, kiedy używa procesora "
+"lub oczekuje na procesor. Proces jest w stanie nieprzerywalnym, kiedy "
+"oczekuje na jakiś dostęp we/wy, np. na dysk. Średnie są obliczane dla trzech "
+"okresów czasu. Nie są normalizowane pod kątem liczby procesorów w systemie, "
+"więc średnie obciążenie 1 oznacza, że system jednoprocesorowy jest obciążony "
+"cały czas, podczas gdy system 4-procesorowy jest bezczynny przez 75% czasu."
+
+#. type: TP
+#: ../man/uptime.1:37
+#, no-wrap
+msgid "B<-p>, B<--pretty>"
+msgstr "B<-p>, B<--pretty>"
+
+#. type: Plain text
+#: ../man/uptime.1:40
+msgid "show uptime in pretty format"
+msgstr "wyświetlenie czasu działania w ładnym formacie"
+
+#. type: Plain text
+#: ../man/uptime.1:43
+msgid "display this help text"
+msgstr "wyświetlenie tego opisu"
+
+#. type: TP
+#: ../man/uptime.1:43
+#, no-wrap
+msgid "B<-s>, B<--since>"
+msgstr "B<-s>, B<--since>"
+
+#. type: Plain text
+#: ../man/uptime.1:46
+msgid "system up since, in yyyy-mm-dd HH:MM:SS format"
+msgstr "początek czasu działania systemu w formacie rrrr-mm-dd GG:MM:SS"
+
+#. type: Plain text
+#: ../man/uptime.1:49
+msgid "display version information and exit"
+msgstr "wyświetlenie informacji o wersji i zakończenie"
+
+#. type: TP
+#: ../man/uptime.1:50 ../man/w.1:89
+#, no-wrap
+msgid "I</var/run/utmp>"
+msgstr "I</var/run/utmp>"
+
+#. type: Plain text
+#: ../man/uptime.1:53 ../man/w.1:92
+msgid "information about who is currently logged on"
+msgstr "informacja o tym, kto jest obecnie zalogowany"
+
+#. type: TP
+#: ../man/uptime.1:53 ../man/w.1:92
+#, no-wrap
+msgid "I</proc>"
+msgstr "I</proc>"
+
+#. type: Plain text
+#: ../man/uptime.1:56 ../man/w.1:95
+msgid "process information"
+msgstr "informacje o procesach"
+
+#. type: Plain text
+#: ../man/uptime.1:66
+msgid ""
+"B<uptime> was written by E<.UR greenfie@gauss.\\:rutgers.\\:edu> Larry "
+"Greenfield E<.UE> and E<.UR johnsonm@sunsite.\\:unc.\\:edu> Michael K. "
+"Johnson E<.UE>"
+msgstr ""
+"Program B<uptime> napisali E<.UR greenfie@gauss.\\:rutgers.\\:edu> Larry "
+"Greenfield E<.UE> oraz E<.UR johnsonm@sunsite.\\:unc.\\:edu> Michael K. "
+"Johnson E<.UE>"
+
+#. type: Plain text
+#: ../man/uptime.1:71
+msgid "B<ps>(1), B<top>(1), B<utmp>(5), B<w>(1)"
+msgstr "B<ps>(1), B<top>(1), B<utmp>(5), B<w>(1)"
+
+#. type: TH
+#: ../man/vmstat.8:13
+#, no-wrap
+msgid "VMSTAT"
+msgstr "VMSTAT"
+
+#. type: TH
+#: ../man/vmstat.8:13
+#, no-wrap
+msgid "2023-01-18"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:16
+msgid "vmstat - Report virtual memory statistics"
+msgstr "vmstat - statystyki pamięci wirtualnej"
+
+#. type: Plain text
+#: ../man/vmstat.8:20
+msgid "B<vmstat> [options] [I<delay> [I<count>]]"
+msgstr "B<vmstat> [opcje] [I<opóźnienie> [I<liczba>]]"
+
+#. type: Plain text
+#: ../man/vmstat.8:24
+msgid ""
+"B<vmstat> reports information about processes, memory, paging, block IO, "
+"traps, disks and cpu activity."
+msgstr ""
+"B<vmstat> raportuje informacje o aktywności procesów, pamięci, "
+"stronicowania, blokowego we/wy, pułapek, dysków i procesora."
+
+#. type: Plain text
+#: ../man/vmstat.8:29
+msgid ""
+"The first report produced gives averages since the last reboot. Additional "
+"reports give information on a sampling period of length I<delay>. The "
+"process and memory reports are instantaneous in either case."
+msgstr ""
+"Pierwszy tworzony raport podaje średnie wartości od ostatniego restartu "
+"systemu. Dodatkowe raporty podają informacje dla okresów próbkowania o "
+"długości I<opóźnienia>. Raporty dotyczące procesów i pamięci są w obu "
+"przypadkach natychmiastowe."
+
+#. type: TP
+#: ../man/vmstat.8:30
+#, no-wrap
+msgid "I<delay>"
+msgstr "I<opóźnienie>"
+
+#. type: Plain text
+#: ../man/vmstat.8:37
+msgid ""
+"The I<delay> between updates in seconds. If no I<delay> is specified, only "
+"one report is printed with the average values since boot."
+msgstr ""
+"I<Opóźnienie> pomiędzy uaktualnieniami w sekundach. Jeśli nie podano "
+"I<opóźnienia>, wypisywany jest tylko raport z wartościami średnimi od "
+"rozruchu systemu."
+
+#. type: TP
+#: ../man/vmstat.8:37
+#, no-wrap
+msgid "I<count>"
+msgstr "I<liczba>"
+
+#. type: Plain text
+#: ../man/vmstat.8:44
+msgid ""
+"Number of updates. In absence of I<count>, when I<delay> is defined, "
+"default is infinite."
+msgstr ""
+"Liczba uaktualnień. W przypadku braku I<liczby>, jeśli podano I<opóźnienie>, "
+"domyślna jest nieskończoność."
+
+#. type: TP
+#: ../man/vmstat.8:44
+#, no-wrap
+msgid "B<-a>, B<--active>"
+msgstr "B<-a>, B<--active>"
+
+#. type: Plain text
+#: ../man/vmstat.8:47
+msgid "Display active and inactive memory, given a 2.5.41 kernel or better."
+msgstr ""
+"Wyświetlenie pamięci aktywnej i nieaktywnej, jeśli używane jest jądro 2.5.41 "
+"lub nowsze."
+
+#. type: TP
+#: ../man/vmstat.8:47
+#, no-wrap
+msgid "B<-f>, B<--forks>"
+msgstr "B<-f>, B<--forks>"
+
+#. type: Plain text
+#: ../man/vmstat.8:55
+msgid ""
+"The B<-f> switch displays the number of forks since boot. This includes the "
+"fork, vfork, and clone system calls, and is equivalent to the total number "
+"of tasks created. Each process is represented by one or more tasks, "
+"depending on thread usage. This display does not repeat."
+msgstr ""
+"Opcja B<-f> wyświetla liczbę rozgałęzień procesów od rozruchu systemu. "
+"Liczba ta obejmuje wywołania systemowe fork, vfork oraz clone; jest "
+"odpowiednikiem całkowitej liczby utworzonych zadań. Każdy proces jest "
+"reprezentowany przez jedno lub więcej zadań, w zależności od wykorzystania "
+"wątków. Ten widok się nie powtarza."
+
+#. type: TP
+#: ../man/vmstat.8:55
+#, no-wrap
+msgid "B<-m>, B<--slabs>"
+msgstr "B<-m>, B<--slabs>"
+
+#. type: Plain text
+#: ../man/vmstat.8:58
+msgid "Displays slabinfo."
+msgstr "Wyświetlenie slabinfo."
+
+#. type: TP
+#: ../man/vmstat.8:58
+#, no-wrap
+msgid "B<-n>, B<--one-header>"
+msgstr "B<-n>, B<--one-header>"
+
+#. type: Plain text
+#: ../man/vmstat.8:61
+msgid "Display the header only once rather than periodically."
+msgstr "Wyświetlenie nagłówka tylko raz zamiast regularnie."
+
+#. type: TP
+#: ../man/vmstat.8:61
+#, no-wrap
+msgid "B<-s>, B<--stats>"
+msgstr "B<-s>, B<--stats>"
+
+#. type: Plain text
+#: ../man/vmstat.8:65
+msgid ""
+"Displays a table of various event counters and memory statistics. This "
+"display does not repeat."
+msgstr ""
+"Wyświetlenie tabeli różnych liczników zdarzeń i statystyk pamięci. Ten widok "
+"siÄ™ nie powtarza."
+
+#. type: TP
+#: ../man/vmstat.8:65
+#, no-wrap
+msgid "B<-d>, B<--disk>"
+msgstr "B<-d>, B<--disk>"
+
+#. type: Plain text
+#: ../man/vmstat.8:68
+msgid "Report disk statistics (2.5.70 or above required)."
+msgstr "Raport statystyk dysku (wymagane jÄ…dro 2.5.70 lub nowsze)."
+
+#. type: TP
+#: ../man/vmstat.8:68
+#, no-wrap
+msgid "B<-D>, B<--disk-sum>"
+msgstr "B<-D>, B<--disk-sum>"
+
+#. type: Plain text
+#: ../man/vmstat.8:71
+msgid "Report some summary statistics about disk activity."
+msgstr "Raport pewnych statystyk zbiorczych dotyczących aktywności dysku."
+
+#. type: TP
+#: ../man/vmstat.8:71
+#, no-wrap
+msgid "B<-p>, B<--partition> I<device>"
+msgstr "B<-p>, B<--partition> I<urzÄ…dzenie>"
+
+#. type: Plain text
+#: ../man/vmstat.8:74
+msgid "Detailed statistics about partition (2.5.70 or above required)."
+msgstr ""
+"Szczegółowe statystyki dotyczące partycji (wymagane jądro 2.5.70 lub nowsze)."
+
+#. type: TP
+#: ../man/vmstat.8:74
+#, no-wrap
+msgid "B<-S>, B<--unit> I<character>"
+msgstr "B<-S>, B<--unit> I<znak>"
+
+#. type: Plain text
+#: ../man/vmstat.8:86
+msgid ""
+"Switches outputs between 1000 (I<k>), 1024 (I<K>), 1000000 (I<m>), or "
+"1048576 (I<M>) bytes. Note this does not change the swap (si/so) or block "
+"(bi/bo) fields."
+msgstr ""
+"Przełączenie wyjścia między jednostkami 1000 (I<k>), 1024 (I<K>),1000000 "
+"(I<m>) lub 1048576 (I<M>) bajtów. Opcja nie zmienia pól operacji wymiany (si/"
+"so) ani blokowych (bi/bo)."
+
+#. type: TP
+#: ../man/vmstat.8:86
+#, no-wrap
+msgid "B<-t>, B<--timestamp>"
+msgstr "B<-t>, B<--timestamp>"
+
+#. type: Plain text
+#: ../man/vmstat.8:89
+msgid "Append timestamp to each line"
+msgstr "Dołączenie znacznika czasu do każdej linii"
+
+#. type: Plain text
+#: ../man/vmstat.8:94
+msgid ""
+"Wide output mode (useful for systems with higher amount of memory, where the "
+"default output mode suffers from unwanted column breakage). The output is "
+"wider than 80 characters per line."
+msgstr ""
+"Tryb szerokiego wyjścia (przydatny dla systemów z dużą ilością pamięci, "
+"gdzie domyślny tryb wyjścia cierpi przez niechciane łamanie kolumn). Wyjście "
+"jest szersze niż 80 znaków w linii."
+
+#. type: TP
+#: ../man/vmstat.8:94
+#, no-wrap
+msgid "B<-y>, B<--no-first>"
+msgstr "B<-y>, B<--no-first>"
+
+#. type: Plain text
+#: ../man/vmstat.8:97
+msgid "Omits first report with statistics since system boot."
+msgstr "Pominięcie pierwszego raportu ze statystykami od rozruchu systemu."
+
+#. type: SH
+#: ../man/vmstat.8:104
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR VM MODE"
+msgstr "OPIS PÓL DLA TRYBU VM"
+
+#. type: SS
+#: ../man/vmstat.8:105
+#, no-wrap
+msgid "Procs"
+msgstr "Proc."
+
+#. type: Plain text
+#: ../man/vmstat.8:109
+#, no-wrap
+msgid ""
+"r: The number of runnable processes (running or waiting for run time).\n"
+"b: The number of processes blocked waiting for I/O to complete.\n"
+msgstr ""
+"r: Liczba procesów działających (działających lub czekających na czas pracy).\n"
+"b: Liczba procesów zablokowanych na oczekiwaniu na zakończenie we/wy.\n"
+
+#. type: SS
+#: ../man/vmstat.8:110
+#, no-wrap
+msgid "Memory"
+msgstr "Pamięć"
+
+#. type: Plain text
+#: ../man/vmstat.8:112 ../man/vmstat.8:122
+msgid "These are affected by the B<--unit> option."
+msgstr "Te podlegajÄ… opcji B<--unit>."
+
+#. type: Plain text
+#: ../man/vmstat.8:119
+#, no-wrap
+msgid ""
+"swpd: the amount of swap memory used.\n"
+"free: the amount of idle memory.\n"
+"buff: the amount of memory used as buffers.\n"
+"cache: the amount of memory used as cache.\n"
+"inact: the amount of inactive memory. (B<-a> option)\n"
+"active: the amount of active memory. (B<-a> option)\n"
+msgstr ""
+"swap: ilość użytej pamięci wymiany.\n"
+"wolna: ilość pamięci bezczynnej.\n"
+"bufor: ilość pamięci używanej jako bufory.\n"
+"cache: ilość pamięci używanej jako podręczna.\n"
+"nieakt: ilość pamięci nieaktywnej (opcja B<-a>).\n"
+"akt: ilość pamięci aktywnej (opcja B<-a>).\n"
+
+#. type: SS
+#: ../man/vmstat.8:120
+#, no-wrap
+msgid "Swap"
+msgstr "Swap"
+
+#. type: Plain text
+#: ../man/vmstat.8:125
+#, no-wrap
+msgid ""
+"si: Amount of memory swapped in from disk (/s).\n"
+"so: Amount of memory swapped to disk (/s).\n"
+msgstr ""
+"si: Ilość pamięci wymiany wczytanej z dysku (/s).\n"
+"so: Ilość pamięci wymiany zapisanej na dysk (/s).\n"
+
+#. type: SS
+#: ../man/vmstat.8:126 ../man/vmstat.8:161
+#, no-wrap
+msgid "IO"
+msgstr "IO"
+
+#. type: Plain text
+#: ../man/vmstat.8:130
+#, no-wrap
+msgid ""
+"bi: Kibibyte received from a block device (KiB/s).\n"
+"bo: Kibibyte sent to a block device (KiB/s).\n"
+msgstr ""
+"bi: Kibibajty odebrane z urzÄ…dzenia blokowego (bloki/s).\n"
+"bo: Kibibajty wysłane do urządzenia blokowego (bloki/s).\n"
+
+#. type: SS
+#: ../man/vmstat.8:131
+#, no-wrap
+msgid "System"
+msgstr "System"
+
+#. type: Plain text
+#: ../man/vmstat.8:135
+#, no-wrap
+msgid ""
+"in: The number of interrupts per second, including the clock.\n"
+"cs: The number of context switches per second.\n"
+msgstr ""
+"in: Liczba przerwań na sekundę, włącznie z zegarowym.\n"
+"cs: Liczba przełączeń kontekstu na sekundę.\n"
+
+#. type: ds PU
+#: ../man/vmstat.8:136 ../man/top.1:37
+#, no-wrap
+msgid "CPU"
+msgstr "CPU"
+
+#. type: Plain text
+#: ../man/vmstat.8:138
+msgid "These are percentages of total CPU time."
+msgstr "Procenty całkowitego czasu procesora."
+
+#. type: Plain text
+#: ../man/vmstat.8:145
+#, no-wrap
+msgid ""
+"us: Time spent running non-kernel code. (user time, including nice time)\n"
+"sy: Time spent running kernel code. (system time)\n"
+"id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.\n"
+"wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle.\n"
+"st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.\n"
+"gu: Time spent running KVM guest code (guest time, including guest nice).\n"
+msgstr ""
+"us: Czas spędzony w kodzie poza jądrem (czas użytkownika, w tym nice).\n"
+"sy: Czas spędzony w kodzie jądra (czas systemu)\n"
+"id: Czas spędzony bezczynnie. Przed Linuksem 2.5.41 obejmował czas IO-wait.\n"
+"wa: Czas spędzony na oczekiwaniu na we/wy. Przed 2.5.41 zawarty w bezczynnym.\n"
+"st: Czas skradziony wirtualnej maszynie. Przed Linuksem 2.6.11 nieznany.\n"
+"gu: Czas spędzony w kodzie gościa KVM (czas gościa, w tym nice).\n"
+
+#. type: SH
+#: ../man/vmstat.8:146
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR DISK MODE"
+msgstr "OPIS PÓL DLA TRYBU DYSKOWEGO"
+
+#. type: SS
+#: ../man/vmstat.8:147
+#, no-wrap
+msgid "Reads"
+msgstr "Odczyty"
+
+#. type: Plain text
+#: ../man/vmstat.8:153
+#, no-wrap
+msgid ""
+"total: Total reads completed successfully\n"
+"merged: grouped reads (resulting in one I/O)\n"
+"sectors: Sectors read successfully\n"
+"ms: milliseconds spent reading\n"
+msgstr ""
+"total: wszystkie odczyty zakończone poprawnie\n"
+"merged: odczyty zgrupowane (zakończone w jednym we/wy)\n"
+"sectors: sektory odczytane poprawnie\n"
+"ms: milisekundy spędzone na odczycie\n"
+
+#. type: SS
+#: ../man/vmstat.8:154
+#, no-wrap
+msgid "Writes"
+msgstr "Zapisy"
+
+#. type: Plain text
+#: ../man/vmstat.8:160
+#, no-wrap
+msgid ""
+"total: Total writes completed successfully\n"
+"merged: grouped writes (resulting in one I/O)\n"
+"sectors: Sectors written successfully\n"
+"ms: milliseconds spent writing\n"
+msgstr ""
+"total: wszystkie zapisy zakończone poprawnie\n"
+"merged: zapisy zgrupowane (zakończone w jednym we/wy)\n"
+"sectors: sektory zapisane poprawnie\n"
+"ms: milisekundy spędzone na zapisie\n"
+
+#. type: Plain text
+#: ../man/vmstat.8:165
+#, no-wrap
+msgid ""
+"cur: I/O in progress\n"
+"s: seconds spent for I/O\n"
+msgstr ""
+"cur: operacje we/wy w trakcie\n"
+"s: sekundy spędzone na operacjach we/wy\n"
+
+#. type: SH
+#: ../man/vmstat.8:166
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR DISK PARTITION MODE"
+msgstr "OPIS PÓL DLA TRYBU PARTYCJI DYSKU"
+
+#. type: Plain text
+#: ../man/vmstat.8:172
+#, no-wrap
+msgid ""
+"reads: Total number of reads issued to this partition\n"
+"read sectors: Total read sectors for partition\n"
+"writes : Total number of writes issued to this partition\n"
+"requested writes: Total number of write requests made for partition\n"
+msgstr ""
+"reads: całkowita liczba odczytów zleconych dla tej partycji\n"
+"read sectors: całkowita liczba sektorów odczytanych z partycji\n"
+"writes: całkowita liczba zapisów zleconych dla tej partycji\n"
+"requested writes: całkowita liczba żądań zapisu dla partycji\n"
+
+#. type: SH
+#: ../man/vmstat.8:173
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR SLAB MODE"
+msgstr "OPIS PÓL DLA TRYBU PÅYT"
+
+#. type: Plain text
+#: ../man/vmstat.8:177
+msgid ""
+"Slab mode shows statistics per slab, for more information about this "
+"information see B<slabinfo>(5)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:184
+#, no-wrap
+msgid ""
+"cache: Cache name\n"
+"num: Number of currently active objects\n"
+"total: Total number of available objects\n"
+"size: Size of each object\n"
+"pages: Number of pages with at least one active object\n"
+msgstr ""
+"cache: nazwa pamięci podręcznej\n"
+"num: liczba obecnie aktywnych obiektów\n"
+"total: całkowita liczba dostępnych obiektów\n"
+"size: rozmiar każdego obiektu\n"
+"pages: liczba stron z przynajmniej jednym aktywnym obiektem\n"
+
+#. type: Plain text
+#: ../man/vmstat.8:191
+msgid ""
+"B<vmstat> requires read access to files under I</proc>. The B<-m> requires "
+"read access to I</proc/slabinfo> which may not be available to standard "
+"users. Mount options for I</proc> such as I<subset=pid> may also impact "
+"what is visible."
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:199
+#, fuzzy
+#| msgid ""
+#| "B<free>(1), B<iostat>(1), B<mpstat>(1), B<ps>(1), B<sar>(1), B<top>(1)"
+msgid ""
+"B<free>(1), B<iostat>(1), B<mpstat>(1), B<ps>(1), B<sar>(1), B<top>(1), "
+"B<slabinfo>(5)"
+msgstr "B<free>(1), B<iostat>(1), B<mpstat>(1), B<ps>(1), B<sar>(1), B<top>(1)"
+
+#. type: TP
+#: ../man/w.1:14 ../man/ps.1:852
+#, no-wrap
+msgid "W"
+msgstr ""
+
+#. type: TH
+#: ../man/w.1:14
+#, no-wrap
+msgid "2023-01-15"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:17
+msgid "w - Show who is logged on and what they are doing."
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:20
+#, fuzzy
+#| msgid "B<pmap> [I<options>] I<pid> [...]"
+msgid "B<w> [I<options>] [I<user>]"
+msgstr "B<pmap> [I<opcje>] I<pid> [...]"
+
+#. type: Plain text
+#: ../man/w.1:26
+#, fuzzy
+#| msgid ""
+#| "B<uptime> gives a one line display of the following information. The "
+#| "current time, how long the system has been running, how many users are "
+#| "currently logged on, and the system load averages for the past 1, 5, and "
+#| "15 minutes."
+msgid ""
+"B<w> displays information about the users currently on the machine, and "
+"their processes. The header shows, in this order, the current time, how "
+"long the system has been running, how many users are currently logged on, "
+"and the system load averages for the past 1, 5, and 15 minutes."
+msgstr ""
+"B<uptime> w pojedynczej linii podaje następujące informacje: bieżący czas; "
+"czas, jak długo działa system; liczbę aktualnie zalogowanych użytkowników; "
+"średnie obciążenie systemu dla ostatnich 1, 5 i 15 minut."
+
+#. type: Plain text
+#: ../man/w.1:30
+msgid ""
+"The following entries are displayed for each user: login name, the tty name, "
+"the remote host, login time, idle time, JCPU, PCPU, and the command line of "
+"their current process."
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:34
+msgid ""
+"The JCPU time is the time used by all processes attached to the tty. It "
+"does not include past background jobs, but does include currently running "
+"background jobs."
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:37
+msgid ""
+"The PCPU time is the time used by the current process, named in the \"what\" "
+"field."
+msgstr ""
+
+#. type: SH
+#: ../man/w.1:37
+#, no-wrap
+msgid "COMMAND-LINE OPTIONS"
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:38
+#, fuzzy, no-wrap
+#| msgid "B<-n>, B<--one-header>"
+msgid "B<-h>, B<--no-header>"
+msgstr "B<-n>, B<--one-header>"
+
+#. type: Plain text
+#: ../man/w.1:41
+msgid "Don't print the header."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:41
+#, fuzzy, no-wrap
+#| msgid "B<-c>, B<--count>"
+msgid "B<-u>, B<--no-current>"
+msgstr "B<-c>, B<--count>"
+
+#. type: Plain text
+#: ../man/w.1:50
+msgid ""
+"Ignores the username while figuring out the current process and cpu times. "
+"To demonstrate this, do a B<su> and do a B<w> and a B<w -u>."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:50
+#, fuzzy, no-wrap
+#| msgid "B<-s>, B<--stats>"
+msgid "B<-s>, B<--short>"
+msgstr "B<-s>, B<--stats>"
+
+#. type: Plain text
+#: ../man/w.1:53
+msgid "Use the short format. Don't print the login time, JCPU or PCPU times."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:53
+#, fuzzy, no-wrap
+#| msgid "B<-f>, B<--forks>"
+msgid "B<-f>, B<--from>"
+msgstr "B<-f>, B<--forks>"
+
+#. type: Plain text
+#: ../man/w.1:63
+msgid ""
+"Toggle printing the B<from> (remote hostname) field. The default as "
+"released is for the B<from> field to not be printed, although your system "
+"administrator or distribution maintainer may have compiled a version in "
+"which the B<from> field is shown by default."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:66
+#, fuzzy, no-wrap
+#| msgid "B<-w>, B<--wide>"
+msgid "B<-i>, B<--ip-addr>"
+msgstr "B<-w>, B<--wide>"
+
+#. type: Plain text
+#: ../man/w.1:69
+msgid "Display IP address instead of hostname for B<from> field."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:69
+#, fuzzy, no-wrap
+#| msgid "B<-w>, B<--wide>"
+msgid "B<-p>, B<--pids>"
+msgstr "B<-w>, B<--wide>"
+
+#. type: Plain text
+#: ../man/w.1:72
+msgid ""
+"Display pid of the login process/the \"what\" process in the \"what\" field."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:75
+#, fuzzy, no-wrap
+#| msgid "B<-o>, B<--oldest>"
+msgid "B<-o>, B<--old-style>"
+msgstr "B<-o>, B<--oldest>"
+
+#. type: Plain text
+#: ../man/w.1:78
+msgid ""
+"Old style output. Prints blank space for idle times less than one minute."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:78
+#, fuzzy, no-wrap
+#| msgid "B<used>"
+msgid "B<user >"
+msgstr "B<użyte>"
+
+#. type: Plain text
+#: ../man/w.1:81
+#, fuzzy
+#| msgid "information about who is currently logged on"
+msgid "Show information about the specified user only."
+msgstr "informacja o tym, kto jest obecnie zalogowany"
+
+#. type: SH
+#: ../man/w.1:81 ../man/watch.1:133
+#, fuzzy, no-wrap
+#| msgid "ENVIRONMENT VARIABLE(S)"
+msgid "ENVIRONMENT"
+msgstr "ZMIENNE ÅšRODOWISKOWE"
+
+#. type: TP
+#: ../man/w.1:82
+#, fuzzy, no-wrap
+#| msgid "PROCPS_PIDS"
+msgid "PROCPS_USERLEN"
+msgstr "PROCPS_PIDS"
+
+#. type: Plain text
+#: ../man/w.1:85
+msgid "Override the default width of the username column. Defaults to 8."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:85
+#, fuzzy, no-wrap
+#| msgid "PROCPS_MISC"
+msgid "PROCPS_FROMLEN"
+msgstr "PROCPS_MISC"
+
+#. type: Plain text
+#: ../man/w.1:88
+msgid "Override the default width of the from column. Defaults to 16."
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:102
+#, fuzzy
+#| msgid ""
+#| "B<free>(1), B<iostat>(1), B<mpstat>(1), B<ps>(1), B<sar>(1), B<top>(1)"
+msgid "B<free>(1), B<ps>(1), B<top>(1), B<uptime>(1), B<utmp>(5), B<who>(1)"
+msgstr "B<free>(1), B<iostat>(1), B<mpstat>(1), B<ps>(1), B<sar>(1), B<top>(1)"
+
+#. type: Plain text
+#: ../man/w.1:112
+#, fuzzy
+#| msgid ""
+#| "B<uptime> was written by E<.UR greenfie@gauss.\\:rutgers.\\:edu> Larry "
+#| "Greenfield E<.UE> and E<.UR johnsonm@sunsite.\\:unc.\\:edu> Michael K. "
+#| "Johnson E<.UE>"
+msgid ""
+"B<w> was re-written almost entirely by Charles Blake, based on the version "
+"by E<.UR greenfie@\\:gauss.\\:rutgers.\\:edu> Larry Greenfield E<.UE> and E<."
+"UR johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE>"
+msgstr ""
+"Program B<uptime> napisali E<.UR greenfie@gauss.\\:rutgers.\\:edu> Larry "
+"Greenfield E<.UE> oraz E<.UR johnsonm@sunsite.\\:unc.\\:edu> Michael K. "
+"Johnson E<.UE>"
+
+#. type: TH
+#: ../man/watch.1:13
+#, no-wrap
+msgid "WATCH"
+msgstr ""
+
+#. type: TH
+#: ../man/watch.1:13
+#, no-wrap
+msgid "2023-01-17"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:16
+msgid "watch - execute a program periodically, showing output fullscreen"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:19
+#, fuzzy
+#| msgid "B<pmap> [I<options>] I<pid> [...]"
+msgid "B<watch> [I<options>] I<command>"
+msgstr "B<pmap> [I<opcje>] I<pid> [...]"
+
+#. type: Plain text
+#: ../man/watch.1:26
+msgid ""
+"B<watch> runs I<command> repeatedly, displaying its output and errors (the "
+"first screenfull). This allows you to watch the program output change over "
+"time. By default, I<command> is run every 2 seconds and B<watch> will run "
+"until interrupted."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:27
+#, fuzzy, no-wrap
+#| msgid "B<-b>, B<--bytes>"
+msgid "B<-b>, B<--beep>"
+msgstr "B<-b>, B<--bytes>"
+
+#. type: Plain text
+#: ../man/watch.1:30
+msgid "Beep if command has a non-zero exit."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:30
+#, fuzzy, no-wrap
+#| msgid "B<-c>, B<--count>"
+msgid "B<-c>, B<--color>"
+msgstr "B<-c>, B<--count>"
+
+#. type: Plain text
+#: ../man/watch.1:33
+msgid "Interpret ANSI color and style sequences."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:33
+#, fuzzy, no-wrap
+#| msgid "B<-y>, B<--no-first>"
+msgid "B<-C>, B<--no-color>"
+msgstr "B<-y>, B<--no-first>"
+
+#. type: Plain text
+#: ../man/watch.1:36
+msgid "Do not interpret ANSI color and style sequences."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:36
+#, fuzzy, no-wrap
+#| msgid "B<-d>, B<--delimiter> I<delimiter>"
+msgid "B<-d>, B<--differences>[=I<permanent>]"
+msgstr "B<-d>, B<--delimiter> I<separator>"
+
+#. type: Plain text
+#: ../man/watch.1:42
+msgid ""
+"Highlight the differences between successive updates. If the optional "
+"I<permanent> argument is specified then B<watch> will show all changes since "
+"the first iteration."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:42
+#, fuzzy, no-wrap
+#| msgid "B<-x>, B<--exact>"
+msgid "B<-e>, B<--errexit>"
+msgstr "B<-x>, B<--exact>"
+
+#. type: Plain text
+#: ../man/watch.1:45
+msgid "Freeze updates on command error, and exit after a key press."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:45
+#, fuzzy, no-wrap
+#| msgid "B<-g>, B<--gibi>"
+msgid "B<-g>, B<--chgexit>"
+msgstr "B<-g>, B<--gibi>"
+
+#. type: Plain text
+#: ../man/watch.1:50
+msgid "Exit when the output of I<command> changes."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:50
+#, fuzzy, no-wrap
+#| msgid "B<-O>, B<--older> I<secs>"
+msgid "B<-n>, B<--interval> I<seconds>"
+msgstr "B<-O>, B<--older> I<sekundy>"
+
+#. type: Plain text
+#: ../man/watch.1:56
+msgid ""
+"Specify update interval. The command will not allow quicker than 0.1 second "
+"interval, in which the smaller values are converted. Both '.' and ',' work "
+"for any locales. The B<WATCH_INTERVAL> environment can be used to "
+"persistently set a non-default interval (following the same rules and "
+"formatting)."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:56
+#, fuzzy, no-wrap
+#| msgid "B<-p>, B<--pretty>"
+msgid "B<-p>, B<--precise>"
+msgstr "B<-p>, B<--pretty>"
+
+#. type: Plain text
+#: ../man/watch.1:69
+msgid ""
+"Make B<watch> attempt to run I<command> every B<--interval> I<seconds>. Try "
+"it with B<ntptime> (if present) and notice how the fractional seconds stays "
+"(nearly) the same, as opposed to normal mode where they continuously "
+"increase."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:69
+#, fuzzy, no-wrap
+#| msgid "B<-q>, B<--quiet>"
+msgid "B<-q>, B<--equexit> E<lt>cyclesE<gt>"
+msgstr "B<-q>, B<--quiet>"
+
+#. type: Plain text
+#: ../man/watch.1:74
+msgid ""
+"Exit when output of I<command> does not change for the given number of "
+"cycles."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:74
+#, fuzzy, no-wrap
+#| msgid "B<-c>, B<--count>"
+msgid "B<-r>, B<--no-rerun>"
+msgstr "B<-c>, B<--count>"
+
+#. type: Plain text
+#: ../man/watch.1:78
+msgid ""
+"Do not run the program on terminal resize, the output of the program will re-"
+"appear at the next regular run time."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:78
+#, fuzzy, no-wrap
+#| msgid "B<-t>, B<--total>"
+msgid "B<-t>, B<--no-title>"
+msgstr "B<-t>, B<--total>"
+
+#. type: Plain text
+#: ../man/watch.1:82
+msgid ""
+"Turn off the header showing the interval, command, and current time at the "
+"top of the display, as well as the following blank line."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:82
+#, fuzzy, no-wrap
+#| msgid "B<-y>, B<--no-first>"
+msgid "B<-w>, B<--no-wrap>"
+msgstr "B<-y>, B<--no-first>"
+
+#. type: Plain text
+#: ../man/watch.1:85
+msgid ""
+"Turn off line wrapping. Long lines will be truncated instead of wrapped to "
+"the next line."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:85
+#, fuzzy, no-wrap
+#| msgid "B<-x>, B<--exact>"
+msgid "B<-x>, B<--exec>"
+msgstr "B<-x>, B<--exact>"
+
+#. type: Plain text
+#: ../man/watch.1:94
+msgid ""
+"Pass I<command> to B<exec>(2) instead of B<sh -c> which reduces the need to "
+"use extra quoting to get the desired effect."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:97
+#, fuzzy, no-wrap
+#| msgid "B<-V>, B<--version>"
+msgid "B<-v>, B<--version>"
+msgstr "B<-V>, B<--version>"
+
+#. type: Plain text
+#: ../man/watch.1:110
+msgid "Various failures."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:110
+#, no-wrap
+msgid "B<2>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:113
+msgid "Forking the process to watch failed."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:113
+#, no-wrap
+msgid "B<3>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:116
+msgid "Replacing child process stdout with write side pipe failed."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:116
+#, no-wrap
+msgid "B<4>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:119
+msgid "Command execution failed."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:119
+#, no-wrap
+msgid "B<5>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:122
+msgid "Closing child process write pipe failed."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:122
+#, no-wrap
+msgid "B<7>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:125
+msgid "IPC pipe creation failed."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:125
+#, no-wrap
+msgid "B<8>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:130
+msgid ""
+"Getting child process return value with B<waitpid>(2) failed, or command "
+"exited up on error."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:130
+#, no-wrap
+msgid "B<other>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:133
+msgid "The watch will propagate command exit status as child exit status."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:137
+msgid ""
+"The behavior of B<watch> is affected by the following environment variables."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:138
+#, no-wrap
+msgid "B<WATCH_INTERVAL>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:143
+msgid ""
+"Update interval, follows the same rules as the B<--interval> command line "
+"option."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:151
+msgid ""
+"POSIX option processing is used (i.e., option processing stops at the first "
+"non-option argument). This means that flags after I<command> don't get "
+"interpreted by B<watch> itself."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:159
+msgid ""
+"Upon terminal resize, the screen will not be correctly repainted until the "
+"next scheduled update. All B<--differences> highlighting is lost on that "
+"update as well. When using the B<--no-rerun> option, no output of will be "
+"visible."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:162
+msgid ""
+"Non-printing characters are stripped from program output. Use B<cat -v> as "
+"part of the command pipeline if you want to see them."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:166
+msgid ""
+"Combining Characters that are supposed to display on the character at the "
+"last column on the screen may display one column early, or they may not "
+"display at all."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:170
+msgid ""
+"Combining Characters never count as different in B<--differences> mode. "
+"Only the base character counts."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:173
+msgid ""
+"Blank lines directly after a line which ends in the last column do not "
+"display."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:190
+msgid ""
+"B<--precise> mode doesn't yet have advanced temporal distortion technology "
+"to compensate for a I<command> that takes more than B<--interval> I<seconds> "
+"to execute. B<watch> also can get into a state where it rapid-fires as many "
+"executions of I<command> as it can to catch up from a previous executions "
+"running longer than B<--interval> (for example, B<netstat>(8) taking ages "
+"on a DNS lookup)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:194
+msgid "To watch for mail, you might do"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:196
+msgid "watch -n 60 from"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:198
+msgid "To watch the contents of a directory change, you could use"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:200
+msgid "watch -d ls -l"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:202
+msgid "If you're only interested in files owned by user joe, you might use"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:204
+msgid "watch -d 'ls -l | fgrep joe'"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:206
+msgid "To see the effects of quoting, try these out"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:208
+msgid "watch echo $$"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:210
+msgid "watch echo '$$'"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:212
+msgid "watch echo \"'\"'$$'\"'\""
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:216
+msgid "To see the effect of precision time keeping, try adding B<-p> to"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:218
+msgid "watch -n 10 sleep 1"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:220
+msgid "You can watch for your administrator to install the latest kernel with"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:222
+msgid "watch uname -r"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:228
+msgid ""
+"(Note that B<-p> isn't guaranteed to work across reboots, especially in the "
+"face of B<ntpdate> (if present) or other bootup time-changing mechanisms)"
+msgstr ""
+
+#. type: TH
+#: ../man/ps.1:13
+#, no-wrap
+msgid "PS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:29
+#, fuzzy
+#| msgid "pmap - report memory map of a process"
+msgid "ps - report a snapshot of the current processes."
+msgstr "pmap - informacje o odwzorowaniu pamięci procesu"
+
+#. type: Plain text
+#: ../man/ps.1:31
+#, fuzzy
+#| msgid "B<uptime> [I<options>]"
+msgid "B<ps> [\\,I<options\\/>]"
+msgstr "B<uptime> [I<opcje>]"
+
+#. type: Plain text
+#: ../man/ps.1:37
+msgid ""
+"B<ps> displays information about a selection of the active processes. If "
+"you want a repetitive update of the selection and the displayed information, "
+"use B<top> instead."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:41
+msgid "This version of B<ps> accepts several kinds of options:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:45
+msgid "UNIX options, which may be grouped and must be preceded by a dash."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:47
+msgid "BSD options, which may be grouped and must not be used with a dash."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:49
+msgid "GNU long options, which are preceded by two dashes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:58
+msgid ""
+"Options of different types may be freely mixed, but conflicts can appear. "
+"There are some synonymous options, which are functionally identical, due to "
+"the many standards and B<ps> implementations that this B<ps> is compatible "
+"with."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:66
+msgid ""
+"By default, B<ps> selects all processes with the same effective user ID "
+"(euid=EUID) as the current user and associated with the same terminal as the "
+"invoker. It displays the process ID (pid=PID), the terminal associated with "
+"the process (tname=TTY), the cumulated CPU time in [DD-]hh:mm:ss format "
+"(time=TIME), and the executable name (ucmd=CMD). Output is unsorted by "
+"default."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:79
+msgid ""
+"The use of BSD-style options will add process state (stat=STAT) to the "
+"default display and show the command args (args=COMMAND) instead of the "
+"executable name. You can override this with the B<PS_FORMAT> environment "
+"variable. The use of BSD-style options will also change the process "
+"selection to include processes on other terminals (TTYs) that are owned by "
+"you; alternately, this may be described as setting the selection to be the "
+"set of all processes filtered to exclude processes owned by other users or "
+"not on a terminal. These effects are not considered when options are "
+"described as being \"identical\" below, so B<-M> will be considered "
+"identical to B<Z> and so on."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:84
+msgid ""
+"Except as described below, process selection options are additive. The "
+"default selection is discarded, and then the selected processes are added to "
+"the set of processes to be displayed. A process will thus be shown if it "
+"meets any of the given selection criteria."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:85
+#, no-wrap
+msgid "To see every process on the system using standard syntax:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:88
+msgid "B<ps\\ -e>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:90
+msgid "B<ps\\ -ef>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:92
+msgid "B<ps\\ -eF>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:94
+msgid "B<ps\\ -ely>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:94
+#, no-wrap
+msgid "To see every process on the system using BSD syntax:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:97
+msgid "B<ps\\ ax>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:99
+msgid "B<ps\\ axu>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:99
+#, no-wrap
+msgid "To print a process tree:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:102
+msgid "B<ps\\ -ejH>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:104
+msgid "B<ps\\ axjf>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:104
+#, no-wrap
+msgid "To get info about threads:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:107
+msgid "B<ps\\ -eLf>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:109
+msgid "B<ps\\ axms>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:109
+#, no-wrap
+msgid "To get security info:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:112
+msgid "B<ps\\ -eo euser,ruser,suser,fuser,f,comm,label>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:114
+msgid "B<ps\\ axZ>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:116
+msgid "B<ps\\ -eM>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:116
+#, no-wrap
+msgid "To see every process running as root (real\\ &\\ effective\\ ID) in user format:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:119
+msgid "B<ps\\ -U\\ root\\ -u\\ root\\ u>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:119
+#, no-wrap
+msgid "To see every process with a user-defined format:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:122
+msgid "B<ps\\ -eo\\ pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:124
+msgid "B<ps\\ axo\\ stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:126
+msgid "B<ps\\ -Ao\\ pid,tt,user,fname,tmout,f,wchan>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:126
+#, no-wrap
+msgid "Print only the process IDs of syslogd:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:129
+msgid "B<ps\\ -C\\ syslogd\\ -o\\ pid=>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:129
+#, no-wrap
+msgid "Print only the name of PID 42:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:132
+msgid "B<ps\\ -q\\ 42\\ -o\\ comm=>"
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:132
+#, no-wrap
+msgid "SIMPLE PROCESS SELECTION"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:133
+#, no-wrap
+msgid "B<a>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:147
+msgid ""
+"Lift the BSD-style \"only yourself\" restriction, which is imposed upon the "
+"set of all processes when some BSD-style (without \"-\") options are used or "
+"when the B<ps> personality setting is BSD-like. The set of processes "
+"selected in this manner is in addition to the set of processes selected by "
+"other means. An alternate description is that this option causes B<ps> to "
+"list all processes with a terminal (tty), or to list all processes when used "
+"together with the B<x> option."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:151
+#, fuzzy
+#| msgid "Select processes older than secs."
+msgid "Select all processes. Identical to B<-e>."
+msgstr "Wybór procesów starszych niż podana liczba sekund."
+
+#. type: TP
+#: ../man/ps.1:151
+#, no-wrap
+msgid "B<-a>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:156
+msgid ""
+"Select all processes except both session leaders (see I<getsid>(2)) and "
+"processes not associated with a terminal."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:159
+#, fuzzy
+#| msgid "Select processes older than secs."
+msgid "Select all processes except session leaders."
+msgstr "Wybór procesów starszych niż podana liczba sekund."
+
+#. type: TP
+#: ../man/ps.1:159
+#, fuzzy, no-wrap
+#| msgid "B<--peta>"
+msgid "B<--deselect>"
+msgstr "B<--peta>"
+
+#. type: Plain text
+#: ../man/ps.1:164
+msgid ""
+"Select all processes except those that fulfill the specified conditions "
+"(negates the selection). Identical to B<-N>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:164
+#, no-wrap
+msgid "B<-e>"
+msgstr ""
+
+#. Current "g" behavior: add in the session leaders, which would
+#. be excluded in the sunos4 personality. Supposed "g" behavior:
+#. add in the group leaders -- at least according to the SunOS 4
+#. man page on the FreeBSD site. Uh oh. I think I had tested SunOS
+#. though, so maybe the code is correct.
+#. type: Plain text
+#: ../man/ps.1:173
+#, fuzzy
+#| msgid "Select processes older than secs."
+msgid "Select all processes. Identical to B<-A>."
+msgstr "Wybór procesów starszych niż podana liczba sekund."
+
+#. type: TP
+#: ../man/ps.1:173
+#, no-wrap
+msgid "B<g>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:179
+msgid ""
+"Really all, even session leaders. This flag is obsolete and may be "
+"discontinued in a future release. It is normally implied by the B<a> flag, "
+"and is only useful when operating in the sunos4 personality."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:179
+#, no-wrap
+msgid "B<-N>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:184
+msgid ""
+"Select all processes except those that fulfill the specified conditions "
+"(negates the selection). Identical to B<--deselect>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:184
+#, no-wrap
+msgid "B<T>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:189
+msgid ""
+"Select all processes associated with this terminal. Identical to the B<t> "
+"option without any argument."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:189
+#, no-wrap
+msgid "B<r>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:192
+msgid "Restrict the selection to only running processes."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:192
+#, no-wrap
+msgid "B<x>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:207
+msgid ""
+"Lift the BSD-style \"must have a tty\" restriction, which is imposed upon "
+"the set of all processes when some BSD-style (without \"-\") options are "
+"used or when the B<ps> personality setting is BSD-like. The set of "
+"processes selected in this manner is in addition to the set of processes "
+"selected by other means. An alternate description is that this option "
+"causes B<ps> to list all processes owned by you (same EUID as B<ps>), or to "
+"list all processes when used together with the B<a> option."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:208
+#, no-wrap
+msgid "PROCESS SELECTION BY LIST"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:212
+msgid ""
+"These options accept a single argument in the form of a blank-separated or "
+"comma-separated list. They can be used multiple times. For example: B<ps\\ "
+"-p\\ \"1\\ 2\"\\ -p\\ 3,4>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:212
+#, no-wrap
+msgid "I<123>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:216
+msgid "Identical to B<--pid\\ >I<123>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:216
+#, no-wrap
+msgid "\\+I<123>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:220
+msgid "Identical to B<--sid\\ >I<123>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:220
+#, no-wrap
+msgid "-I<123>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:223
+msgid "Select by process group ID (PGID)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:223
+#, no-wrap
+msgid "B<-C>I<\\ cmdlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:232
+msgid ""
+"Select by command name. This selects the processes whose executable name is "
+"given in I<cmdlist>. NOTE: The command name is not the same as the command "
+"line. Previous versions of procps and the kernel truncated this command name "
+"to 15 characters. This limitation is no longer present in both. If you "
+"depended on matching only 15 characters, you may no longer get a match."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:232
+#, no-wrap
+msgid "B<-G>I<\\ grplist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:240
+msgid ""
+"Select by real group ID (RGID) or name. This selects the processes whose "
+"real group name or ID is in the I<grplist> list. The real group ID "
+"identifies the group of the user who created the process, see I<getgid>(2)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:240
+#, no-wrap
+msgid "B<-g>I<\\ grplist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:253
+msgid ""
+"Select by session OR by effective group name. Selection by session is "
+"specified by many standards, but selection by effective group is the logical "
+"behavior that several other operating systems use. This B<ps> will select "
+"by session when the list is completely numeric (as sessions are). Group ID "
+"numbers will work only when some group names are also specified. See the B<-"
+"s> and B<--group> options."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:253
+#, no-wrap
+msgid "B<--Group>I<\\ grplist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:257
+msgid "Select by real group ID (RGID) or name. Identical to B<-G>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:257
+#, fuzzy, no-wrap
+#| msgid "B<-g>, B<--pgroup> I<pgrp>,..."
+msgid "B<--group>I<\\ grplist>"
+msgstr "B<-g>, B<--pgroup> I<pgrp>,..."
+
+#. type: Plain text
+#: ../man/ps.1:269
+msgid ""
+"Select by effective group ID (EGID) or name. This selects the processes "
+"whose effective group name or ID is in I<grplist>. The effective group ID "
+"describes the group whose file access permissions are used by the process "
+"(see I<getegid>(2)). The B<-g> option is often an alternative to B<--group>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:269
+#, no-wrap
+msgid "B<p>I<\\ pidlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:275
+msgid "Select by process ID. Identical to B<-p> and B<--pid>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:275
+#, no-wrap
+msgid "B<-p>I<\\ pidlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:283
+msgid ""
+"Select by PID. This selects the processes whose process ID numbers appear "
+"in I<pidlist>. Identical to B<p> and B<--pid>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:283
+#, fuzzy, no-wrap
+#| msgid "B<--ns >I<pid>"
+msgid "B<--pid>I<\\ pidlist>"
+msgstr "B<--ns >I<pid>"
+
+#. type: Plain text
+#: ../man/ps.1:289
+msgid "Select by process\\ ID. Identical to B<-p> and B<p>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:289
+#, fuzzy, no-wrap
+#| msgid "B<--ns >I<pid>"
+msgid "B<--ppid>I<\\ pidlist>"
+msgstr "B<--ns >I<pid>"
+
+#. type: Plain text
+#: ../man/ps.1:296
+msgid ""
+"Select by parent process ID. This selects the processes with a parent "
+"process\\ ID in I<pidlist>. That is, it selects processes that are children "
+"of those listed in I<pidlist>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:296
+#, no-wrap
+msgid "B<q>I<\\ pidlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:302
+msgid ""
+"Select by process ID (quick mode). Identical to B<-q> and B<--quick-pid>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:302
+#, no-wrap
+msgid "B<-q>I<\\ pidlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:316
+msgid ""
+"Select by PID (quick mode). This selects the processes whose process ID "
+"numbers appear in I<pidlist>. With this option B<ps> reads the necessary "
+"info only for the pids listed in the I<pidlist> and doesn't apply additional "
+"filtering rules. The order of pids is unsorted and preserved. No additional "
+"selection options, sorting and forest type listings are allowed in this "
+"mode. Identical to B<q> and B<--quick-pid>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:316
+#, no-wrap
+msgid "B<--quick-pid>I<\\ pidlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:322
+msgid "Select by process\\ ID (quick mode). Identical to B<-q> and B<q>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:322
+#, no-wrap
+msgid "B<-s>I<\\ sesslist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:327
+msgid ""
+"Select by session ID. This selects the processes with a session ID "
+"specified in I<sesslist>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:327
+#, no-wrap
+msgid "B<--sid>I<\\ sesslist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:331
+msgid "Select by session\\ ID. Identical to B<-s>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:331
+#, no-wrap
+msgid "B<t>I<\\ ttylist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:348
+msgid ""
+"Select by tty. Nearly identical to B<-t> and B<--tty>, but can also be used "
+"with an empty I<ttylist> to indicate the terminal associated with B<ps>. "
+"Using the B<T> option is considered cleaner than using B<t> with an empty "
+"I<ttylist>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:348
+#, no-wrap
+msgid "B<-t>I<\\ ttylist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:356
+msgid ""
+"Select by tty. This selects the processes associated with the terminals "
+"given in I<ttylist>. Terminals (ttys, or screens for text output) can be "
+"specified in several forms: /dev/ttyS1, ttyS1, S1. A plain \"-\" may be "
+"used to select processes not attached to any terminal."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:356
+#, no-wrap
+msgid "B<--tty>I<\\ ttylist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:362
+msgid "Select by terminal. Identical to B<-t> and B<t>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:362
+#, no-wrap
+msgid "B<U>I<\\ userlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:374
+msgid ""
+"Select by effective user ID (EUID) or name. This selects the processes "
+"whose effective user name or ID is in I<userlist>. The effective user ID "
+"describes the user whose file access permissions are used by the process "
+"(see I<geteuid>(2)). Identical to B<-u> and B<--user>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:374
+#, no-wrap
+msgid "B<-U>I<\\ userlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:381
+msgid ""
+"Select by real user ID (RUID) or name. It selects the processes whose real "
+"user name or ID is in the I<userlist> list. The real user ID identifies the "
+"user who created the process, see I<getuid>(2)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:381
+#, no-wrap
+msgid "B<-u>I<\\ userlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:386
+msgid ""
+"Select by effective user ID (EUID) or name. This selects the processes "
+"whose effective user name or ID is in I<userlist>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:394
+msgid ""
+"The effective user ID describes the user whose file access permissions are "
+"used by the process (see I<geteuid>(2)). Identical to B<U> and B<--user>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:394
+#, no-wrap
+msgid "B<--User>I<\\ userlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:398
+msgid "Select by real user ID (RUID) or name. Identical to B<-U>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:398
+#, no-wrap
+msgid "B<--user>I<\\ userlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:404
+msgid ""
+"Select by effective user ID (EUID) or name. Identical to B<-u> and B<U>."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:405
+#, no-wrap
+msgid "OUTPUT FORMAT CONTROL"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:409
+msgid ""
+"These options are used to choose the information displayed by B<ps>. The "
+"output may differ by personality."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:414
+msgid "Show different scheduler information for the B<-l> option."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:414
+#, fuzzy, no-wrap
+#| msgid "B<--tebi>"
+msgid "B<--context>"
+msgstr "B<--tebi>"
+
+#. type: Plain text
+#: ../man/ps.1:417
+#, fuzzy
+#| msgid "Display version information."
+msgid "Display security context format (for SELinux)."
+msgstr "Wyświetlenie informacji o wersji."
+
+#. type: Plain text
+#: ../man/ps.1:430
+msgid ""
+"Do full-format listing. This option can be combined with many other UNIX-"
+"style options to add additional columns. It also causes the command "
+"arguments to be printed. When used with B<-L>, the NLWP (number of threads) "
+"and LWP (thread ID) columns will be added. See the B<c> option, the format "
+"keyword B<args>, and the format keyword B<comm>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:430
+#, no-wrap
+msgid "B<-F>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:437
+msgid "Extra full format. See the B<-f> option, which B<-F> implies."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:437
+#, no-wrap
+msgid "B<--format>I<\\ format>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:443
+msgid "user-defined format. Identical to B<-o> and B<o>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:443
+#, no-wrap
+msgid "B<j>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:446
+msgid "BSD job control format."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:446
+#, no-wrap
+msgid "B<-j>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:449
+msgid "Jobs format."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:449
+#, no-wrap
+msgid "B<l>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:452
+#, fuzzy
+#| msgid "Display version information."
+msgid "Display BSD long format."
+msgstr "Wyświetlenie informacji o wersji."
+
+#. type: TP
+#: ../man/ps.1:452
+#, no-wrap
+msgid "B<-l>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:457
+msgid "Long format. The B<-y> option is often useful with this."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:457
+#, no-wrap
+msgid "B<-M>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:462
+msgid "Add a column of security data. Identical to B<Z> (for SELinux)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:462
+#, no-wrap
+msgid "B<O>I<\\ format>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:480
+msgid ""
+"is preloaded B<o> (overloaded). The BSD B<O> option can act like B<-O> "
+"(user-defined output format with some common fields predefined) or can be "
+"used to specify sort order. Heuristics are used to determine the behavior "
+"of this option. To ensure that the desired behavior is obtained (sorting or "
+"formatting), specify the option in some other way (e.g. with B<-O> or B<--"
+"sort>). When used as a formatting option, it is identical to B<-O>, with "
+"the BSD personality."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:480
+#, no-wrap
+msgid "B<-O>I<\\ format>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:491
+msgid ""
+"Like B<-o>, but preloaded with some default columns. Identical to B<-o\\ "
+"pid,\\:>I<format>B<,\\:state,\\:tname,\\:time,\\:command> or B<-o\\ pid,\\:"
+">I<format>B<,\\:tname,\\:time,\\:cmd>, see B<-o> below."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:491
+#, no-wrap
+msgid "B<o>I<\\ format>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:497
+msgid "Specify user-defined format. Identical to B<-o> and B<--format>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:497
+#, no-wrap
+msgid "B<-o>I<\\ format>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:525
+msgid ""
+"User-defined format. I<format> is a single argument in the form of a blank-"
+"separated or comma-separated list, which offers a way to specify individual "
+"output columns. The recognized keywords are described in the B<STANDARD "
+"FORMAT SPECIFIERS> section below. Headers may be renamed (B<ps -o pid,\\:"
+"ruser=RealUser -o comm=Command>) as desired. If all column headers are "
+"empty (B<ps -o pid= -o comm=>) then the header line will not be output. "
+"Column width will increase as needed for wide headers; this may be used to "
+"widen up columns such as WCHAN (B<ps -o pid,\\:wchan=\\:WIDE-\\:WCHAN-\\:"
+"COLUMN -o comm>). Explicit width control (B<ps opid,\\:wchan:42,\\:cmd>) "
+"is offered too. The behavior of B<ps -o pid=X,\\:comm=Y> varies with "
+"personality; output may be one column named \"X,\\:comm=Y\" or two columns "
+"named \"X\" and \"Y\". Use multiple B<-o> options when in doubt. Use the "
+"B<PS_FORMAT> environment variable to specify a default as desired; DefSysV "
+"and DefBSD are macros that may be used to choose the default UNIX or BSD "
+"columns."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:525
+#, no-wrap
+msgid "B<-P>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:528
+msgid "Add a column showing B<psr>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:528
+#, no-wrap
+msgid "B<s>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:531
+#, fuzzy
+#| msgid "Display version information."
+msgid "Display signal format."
+msgstr "Wyświetlenie informacji o wersji."
+
+#. type: TP
+#: ../man/ps.1:531
+#, no-wrap
+msgid "B<u>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:534
+#, fuzzy
+#| msgid "Display version information."
+msgid "Display user-oriented format."
+msgstr "Wyświetlenie informacji o wersji."
+
+#. type: TP
+#: ../man/ps.1:534
+#, no-wrap
+msgid "B<v>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:537
+#, fuzzy
+#| msgid "Display version information."
+msgid "Display virtual memory format."
+msgstr "Wyświetlenie informacji o wersji."
+
+#. type: TP
+#: ../man/ps.1:537
+#, no-wrap
+msgid "B<X>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:540
+msgid "Register format."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:540
+#, no-wrap
+msgid "B<-y>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:545
+msgid ""
+"Do not show flags; show rss in place of addr. This option can only be used "
+"with B<-l>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:545
+#, no-wrap
+msgid "B<Z>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:550
+msgid "Add a column of security data. Identical to B<-M> (for SELinux)."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:551
+#, no-wrap
+msgid "OUTPUT MODIFIERS"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:552
+#, no-wrap
+msgid "B<c>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:570
+msgid ""
+"Show the true command name. This is derived from the name of the executable "
+"file, rather than from the argv value. Command arguments and any "
+"modifications to them are thus not shown. This option effectively turns the "
+"B<args> format keyword into the B<comm> format keyword; it is useful with "
+"the B<-f> format option and with the various BSD-style format options, which "
+"all normally display the command arguments. See the B<-f> option, the "
+"format keyword B<args>, and the format keyword B<comm>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:570
+#, fuzzy, no-wrap
+#| msgid "B<--ns >I<pid>"
+msgid "B<--cols>I<\\ n>"
+msgstr "B<--ns >I<pid>"
+
+#. type: Plain text
+#: ../man/ps.1:573 ../man/ps.1:576 ../man/ps.1:724
+msgid "Set screen width."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:573
+#, fuzzy, no-wrap
+#| msgid "B<--ns >I<pid>"
+msgid "B<--columns>I<\\ n>"
+msgstr "B<--ns >I<pid>"
+
+#. type: TP
+#: ../man/ps.1:576
+#, fuzzy, no-wrap
+#| msgid "B<-a>, B<--active>"
+msgid "B<--cumulative>"
+msgstr "B<-a>, B<--active>"
+
+#. type: Plain text
+#: ../man/ps.1:579
+msgid "Include some dead child process data (as a sum with the parent)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:580
+#, no-wrap
+msgid "B<-D>I<\\ format>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:586
+msgid ""
+"Set the date format of the B<lstart> field to I<format>. This format is "
+"parsed by B<strftime>(3) and should be a maximum of 24 characters to not "
+"mis-align columns."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:586
+#, no-wrap
+msgid "B<--date-format>I<\\ format>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:589
+msgid "Identical to B<-D>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:589
+#, no-wrap
+msgid "B<e>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:592
+#, fuzzy
+#| msgid "Show the device format."
+msgid "Show the environment after the command."
+msgstr "Wyświetlanie w formacie urządzeń."
+
+#. type: TP
+#: ../man/ps.1:592
+#, no-wrap
+msgid "B<f>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:595
+msgid "ASCII art process hierarchy (forest)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:595
+#, fuzzy, no-wrap
+#| msgid "B<--peta>"
+msgid "B<--forest>"
+msgstr "B<--peta>"
+
+#. type: Plain text
+#: ../man/ps.1:598
+msgid "ASCII art process tree."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:598
+#, no-wrap
+msgid "B<h>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:616
+msgid ""
+"No header. (or, one header per screen in the BSD personality). The B<h> "
+"option is problematic. Standard BSD B<ps> uses this option to print a "
+"header on each page of output, but older Linux B<ps> uses this option to "
+"totally disable the header. This version of B<ps> follows the Linux usage "
+"of not printing the header unless the BSD personality has been selected, in "
+"which case it prints a header on each page of output. Regardless of the "
+"current personality, you can use the long options B<--headers> and B<--no-"
+"headers> to enable printing headers each page or disable headers entirely, "
+"respectively."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:616
+#, no-wrap
+msgid "B<-H>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:619
+msgid "Show process hierarchy (forest)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:619
+#, fuzzy, no-wrap
+#| msgid "B<--help>"
+msgid "B<--headers>"
+msgstr "B<--help>"
+
+#. type: Plain text
+#: ../man/ps.1:622
+msgid "Repeat header lines, one per page of output."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:622
+#, no-wrap
+msgid "B<k>I<\\ spec>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:634
+msgid ""
+"Specify sorting order. Sorting syntax is [B<+>|B<->]I<key\\/.RB [,[ + | - ]."
+"IR key [,...]].> Choose a multi-letter key from the B<STANDARD FORMAT "
+"SPECIFIERS> section. The \"+\" is optional since default direction is "
+"increasing numerical or lexicographic order. Identical to B<--sort>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:637
+msgid "Examples:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:639
+msgid "B<ps jaxkuid,-ppid,+pid>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:641
+msgid "B<ps axk comm o comm,args>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:643
+msgid "B<ps kstart_time -ef>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:644
+#, fuzzy, no-wrap
+#| msgid "B<--ns >I<pid>"
+msgid "B<--lines>I<\\ n>"
+msgstr "B<--ns >I<pid>"
+
+#. type: Plain text
+#: ../man/ps.1:647 ../man/ps.1:691
+msgid "Set screen height."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:647
+#, no-wrap
+msgid "B<n>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:650
+msgid "Numeric output for WCHAN and USER (including all types of UID and GID)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:650
+#, fuzzy, no-wrap
+#| msgid "B<-n>, B<--one-header>"
+msgid "B<--no-headers>"
+msgstr "B<-n>, B<--one-header>"
+
+#. type: Plain text
+#: ../man/ps.1:655
+msgid ""
+"Print no header line at all. B<--no-heading> is an alias for this option."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:655
+#, no-wrap
+msgid "B<O>I<\\ order>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:669
+msgid ""
+"Sorting order (overloaded). The BSD B<O> option can act like B<-O> (user-"
+"defined output format with some common fields predefined) or can be used to "
+"specify sort order. Heuristics are used to determine the behavior of this "
+"option. To ensure that the desired behavior is obtained (sorting or "
+"formatting), specify the option in some other way (e.g. with B<-O> or B<--"
+"sort>)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:688
+msgid ""
+"For sorting, obsolete BSD B<O> option syntax is B<O>[B<+>|B<->]I<k1>[,[B<+>|"
+"B<->]I<k2>[,...]]. It orders the processes listing according to the "
+"multilevel sort specified by the sequence of one-letter short keys I<k1>,"
+"I<k2>, ...\" described in the B<OBSOLETE SORT KEYS> section below. The\\ \"+"
+"\" is currently optional, merely re-iterating the default direction on a "
+"key, but may help to distinguish an B<O> sort from an B<O> format. The \"-"
+"\" reverses direction only on the key it precedes."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:688
+#, fuzzy, no-wrap
+#| msgid "B<--ns >I<pid>"
+msgid "B<--rows>I<\\ n>"
+msgstr "B<--ns >I<pid>"
+
+#. type: TP
+#: ../man/ps.1:691
+#, no-wrap
+msgid "B<S>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:696
+msgid ""
+"Sum up some information, such as CPU usage, from dead child processes into "
+"their parent. This is useful for examining a system where a parent process "
+"repeatedly forks off short-lived children to do work."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:696
+#, fuzzy, no-wrap
+#| msgid "B<--ns >I<pid>"
+msgid "B<--sort>I<\\ spec>"
+msgstr "B<--ns >I<pid>"
+
+#. type: Plain text
+#: ../man/ps.1:710
+msgid ""
+"Specify sorting order. Sorting syntax is [I<+>|I<->]I<key>[,[B<+>|B<-"
+">]I<key>[,...]]. Choose a multi-letter key from the B<STANDARD FORMAT "
+"SPECIFIERS> section. The \"+\" is optional since default direction is "
+"increasing numerical or lexicographic order. Identical to B<k>. For "
+"example: B<ps jax --sort=\\:uid,\\:-ppid,\\:+pid>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:710
+#, fuzzy, no-wrap
+#| msgid "B<--giga>"
+msgid "B<--signames>"
+msgstr "B<--giga>"
+
+#. type: Plain text
+#: ../man/ps.1:715
+msgid ""
+"Show signal masks using abbreviated signal names and expands the collumn. "
+"If the column width cannot show all signals, the column will end with a plus "
+"\"I<+>\". Columns with only a hyphen have no signals."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:715
+#, no-wrap
+msgid "B<w>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:718 ../man/ps.1:721
+msgid "Wide output. Use this option twice for unlimited width."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:721
+#, no-wrap
+msgid "B<--width>I<\\ n>"
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:725
+#, no-wrap
+msgid "THREAD DISPLAY"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:726
+#, no-wrap
+msgid "B<H>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:729
+msgid "Show threads as if they were processes."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:729
+#, no-wrap
+msgid "B<-L>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:732
+msgid "Show threads, possibly with LWP and NLWP columns."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:732
+#, no-wrap
+msgid "B<m>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:735 ../man/ps.1:738
+msgid "Show threads after processes."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:735
+#, no-wrap
+msgid "B<-m>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:738
+#, no-wrap
+msgid "B<-T>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:741
+msgid "Show threads, possibly with SPID column."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:741
+#, no-wrap
+msgid "OTHER INFORMATION"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:742
+#, fuzzy, no-wrap
+#| msgid "B<--help>"
+msgid "B<--help>I<\\ section>"
+msgstr "B<--help>"
+
+#. type: Plain text
+#: ../man/ps.1:753
+msgid ""
+"Print a help message. The I<section> argument can be one of I<s>imple, "
+"I<l>ist, I<o>utput, I<t>hreads, I<m>isc, or I<a>ll. The argument can be "
+"shortened to one of the underlined letters as in: s\\^|\\^l\\^|\\^o\\^|"
+"\\^t\\^|\\^m\\^|\\^a."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:753
+#, fuzzy, no-wrap
+#| msgid "B<--kilo>"
+msgid "B<--info>"
+msgstr "B<--kilo>"
+
+#. type: Plain text
+#: ../man/ps.1:756
+msgid "Print debugging info."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:756
+#, no-wrap
+msgid "B<L>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:759
+msgid "List all format specifiers."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:759
+#, no-wrap
+msgid "B<V>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:762 ../man/ps.1:765 ../man/ps.1:768
+msgid "Print the procps-ng version."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:762
+#, no-wrap
+msgid "B<-V>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:765
+#, fuzzy, no-wrap
+#| msgid "B<-V>, B<--version>"
+msgid "B<--version>"
+msgstr "B<-V>, B<--version>"
+
+#. type: Plain text
+#: ../man/ps.1:777
+msgid ""
+"This B<ps> works by reading the virtual files in /proc. This B<ps> does not "
+"need to be setuid kmem or have any privileges to run. Do not give this "
+"B<ps> any special permissions."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:783
+msgid ""
+"CPU usage is currently expressed as the percentage of time spent running "
+"during the entire lifetime of a process. This is not ideal, and\\ it does "
+"not conform to the standards that B<ps> otherwise conforms to. CPU usage is "
+"unlikely to add up to exactly 100%."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:788
+msgid ""
+"The SIZE and RSS fields don't count some parts of a process including the "
+"page tables, kernel stack, struct thread_info, and struct task_struct. This "
+"is usually at least 20\\ KiB of memory that is always resident. SIZE is the "
+"virtual size of the process (code+\\:data+\\:stack)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:794
+msgid ""
+"Processes marked E<lt>defunctE<gt> are dead processes (so-called "
+"\"zombies\") that remain because their parent has not destroyed them "
+"properly. These processes will be destroyed by I<init>(8) if the parent "
+"process exits."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:798
+msgid ""
+"If the length of the username is greater than the width of the display "
+"column, the username will be truncated. See the B<-o> and B<-O> formatting "
+"options to customize length."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:810
+msgid ""
+"Commands options such as B<ps -aux> are not recommended as it is a confusion "
+"of two different standards. According to the POSIX and UNIX standards, the "
+"above command asks to display all processes with a TTY (generally the "
+"commands users are running) plus all processes owned by a user named I<x>. "
+"If that user doesn't exist, then B<ps> will assume you really meant \"B<ps> "
+"I<aux>\"."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:810
+#, no-wrap
+msgid "PROCESS FLAGS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:815
+msgid ""
+"The sum of these values is displayed in the \"F\" column, which is provided "
+"by the B<flags> output specifier:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:821
+msgid "forked but didn't exec"
+msgstr ""
+
+#. type: IP
+#: ../man/ps.1:821 ../man/ps.1:2088
+#, no-wrap
+msgid "4"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:824
+msgid "used super-user privileges"
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:826
+#, no-wrap
+msgid "PROCESS STATE CODES"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:831
+msgid ""
+"Here are the different values that the B<s>, B<stat> and B<state> output "
+"specifiers (header \"STAT\" or \"S\") will display to describe the state of "
+"a process:"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:834
+#, no-wrap
+msgid "D"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:837
+msgid "uninterruptible sleep (usually IO)"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:837
+#, fuzzy, no-wrap
+#| msgid "IO"
+msgid "I"
+msgstr "IO"
+
+#. type: Plain text
+#: ../man/ps.1:840
+msgid "Idle kernel thread"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:840 ../man/ps.1:925
+#, no-wrap
+msgid "R"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:843
+msgid "running or runnable (on run queue)"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:843 ../man/ps.1:927 ../man/ps.1:1631 ../man/ps.1:1753
+#, no-wrap
+msgid "S"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:846
+msgid "interruptible sleep (waiting for an event to complete)"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:846 ../man/ps.1:929
+#, no-wrap
+msgid "T"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:849
+msgid "stopped by job control signal"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:849 ../man/ps.1:928
+#, no-wrap
+msgid "t"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:852
+msgid "stopped by debugger during the tracing"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:855
+msgid "paging (not valid since the 2.6.xx kernel)"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:855
+#, no-wrap
+msgid "X"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:858
+msgid "dead (should never be seen)"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:858
+#, no-wrap
+msgid "Z"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:861
+msgid "defunct (\"zombie\") process, terminated but not reaped by its parent"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:867
+msgid ""
+"For BSD formats and when the B<stat> keyword is used, additional characters "
+"may be displayed:"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:870
+#, no-wrap
+msgid "E<lt>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:873
+msgid "high-priority (not nice to other users)"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:873 ../man/ps.1:920
+#, no-wrap
+msgid "N"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:876
+msgid "low-priority (nice to other users)"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:876
+#, no-wrap
+msgid "L"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:879
+msgid "has pages locked into memory (for real-time and custom IO)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:882
+msgid "is a session leader"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:885
+msgid "is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:885
+#, no-wrap
+msgid "+"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:888
+msgid "is in the foreground process group"
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:890
+#, no-wrap
+msgid "OBSOLETE SORT KEYS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:906
+msgid ""
+"These keys are used by the BSD B<O> option (when it is used for sorting). "
+"The GNU B<--sort> option doesn't use these keys, but the specifiers "
+"described below in the B<STANDARD FORMAT SPECIFIERS> section. Note that the "
+"values used in sorting are the internal values B<ps> uses and not the "
+"\"cooked\" values used in some of the output format fields (e.g. sorting on "
+"tty will sort into device number, not according to the terminal name "
+"displayed). Pipe B<ps> output into the B<sort>(1) command if you want to "
+"sort the cooked values."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, no-wrap
+msgid "B<KEY>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, no-wrap
+msgid "B<LONG>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, fuzzy, no-wrap
+#| msgid "DESCRIPTION"
+msgid "B<DESCRIPTION>"
+msgstr "OPIS"
+
+#. type: tbl table
+#: ../man/ps.1:909 ../man/ps.1:1161
+#, no-wrap
+msgid "cmd"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:909
+#, no-wrap
+msgid "simple name of executable"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:910 ../man/ps.1:1081
+#, no-wrap
+msgid "C"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:910 ../man/ps.1:952 ../man/ps.1:1481
+#, no-wrap
+msgid "pcpu"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:910
+#, no-wrap
+msgid "cpu utilization"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:911 ../man/ps.1:1300
+#, no-wrap
+msgid "f"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:911 ../man/ps.1:1326
+#, no-wrap
+msgid "flags"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:911
+#, no-wrap
+msgid "flags as in long format F field"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:912
+#, no-wrap
+msgid "g"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:912 ../man/ps.1:1508
+#, no-wrap
+msgid "pgrp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:912
+#, no-wrap
+msgid "process group ID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:913
+#, no-wrap
+msgid "G"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:913 ../man/ps.1:1848
+#, no-wrap
+msgid "tpgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:913
+#, no-wrap
+msgid "controlling tty process group ID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "j"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "cutime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "cumulative user time"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "J"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "cstime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "cumulative system time"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "k"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "utime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "user time"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:917
+#, no-wrap
+msgid "m"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:917 ../man/ps.1:1419
+#, no-wrap
+msgid "min_flt"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:917
+#, no-wrap
+msgid "number of minor page faults"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:918
+#, no-wrap
+msgid "M"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:918 ../man/ps.1:1415
+#, no-wrap
+msgid "maj_flt"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:918
+#, no-wrap
+msgid "number of major page faults"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:919
+#, no-wrap
+msgid "cmin_flt"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:919
+#, no-wrap
+msgid "cumulative minor page faults"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:920
+#, no-wrap
+msgid "cmaj_flt"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:920
+#, no-wrap
+msgid "cumulative major page faults"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:921
+#, no-wrap
+msgid "session"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:921
+#, no-wrap
+msgid "session ID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:922 ../man/ps.1:960 ../man/ps.1:1515
+#, no-wrap
+msgid "pid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:922
+#, fuzzy, no-wrap
+#| msgid "procps-ng "
+msgid "process ID"
+msgstr "procps-ng "
+
+#. type: tbl table
+#: ../man/ps.1:923 ../man/ps.1:1657
+#, no-wrap
+msgid "P"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:923 ../man/ps.1:954 ../man/ps.1:1559
+#, no-wrap
+msgid "ppid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:923
+#, no-wrap
+msgid "parent process ID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:924
+#, no-wrap
+msgid "r"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:924 ../man/ps.1:1598
+#, no-wrap
+msgid "rss"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:924
+#, no-wrap
+msgid "resident set size"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:925
+#, no-wrap
+msgid "resident"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:925
+#, no-wrap
+msgid "resident pages"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:926 ../man/ps.1:1707
+#, no-wrap
+msgid "size"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:926
+#, no-wrap
+msgid "memory size in kilobytes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:927
+#, fuzzy, no-wrap
+#| msgid "B<shared>"
+msgid "share"
+msgstr "B<dzielone>"
+
+#. type: tbl table
+#: ../man/ps.1:927
+#, no-wrap
+msgid "amount of shared pages"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:928 ../man/ps.1:965 ../man/ps.1:1862
+#, no-wrap
+msgid "tty"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:928
+#, no-wrap
+msgid "the device number of the controlling tty"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:929 ../man/ps.1:1736
+#, no-wrap
+msgid "start_time"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:929
+#, no-wrap
+msgid "time process was started"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:930
+#, no-wrap
+msgid "U"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:930 ../man/ps.1:1881
+#, no-wrap
+msgid "uid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:930
+#, no-wrap
+msgid "user ID number"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:931 ../man/ps.1:955 ../man/ps.1:1900
+#, no-wrap
+msgid "user"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:931
+#, no-wrap
+msgid "user name"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:932 ../man/ps.1:1929
+#, no-wrap
+msgid "vsize"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:932
+#, no-wrap
+msgid "total VM size in KiB"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "y"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "priority"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "kernel scheduling priority"
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:936
+#, no-wrap
+msgid "AIX FORMAT DESCRIPTORS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:949
+msgid ""
+"This B<ps> supports AIX format descriptors, which work somewhat like the "
+"formatting codes of I<printf>(1) and I<printf>(3). For example, the normal "
+"default output can be produced with this: B<ps -eo \"%p %y %x %c\">. The "
+"B<NORMAL> codes are described in the next section."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<CODE>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<NORMAL>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<HEADER>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:952
+#, no-wrap
+msgid "%C"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:952 ../man/ps.1:1004 ../man/ps.1:1481
+#, no-wrap
+msgid "%CPU"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:953
+#, no-wrap
+msgid "%G"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:953 ../man/ps.1:1355
+#, no-wrap
+msgid "group"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:953 ../man/ps.1:1355
+#, no-wrap
+msgid "GROUP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:954
+#, no-wrap
+msgid "%P"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:954 ../man/ps.1:1559
+#, no-wrap
+msgid "PPID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:955
+#, no-wrap
+msgid "%U"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:955 ../man/ps.1:1888 ../man/ps.1:1900
+#, no-wrap
+msgid "USER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:956
+#, no-wrap
+msgid "%a"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:956 ../man/ps.1:1027
+#, no-wrap
+msgid "args"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:956 ../man/ps.1:957 ../man/ps.1:1027 ../man/ps.1:1168
+#: ../man/ps.1:1196 ../man/ps.1:1333 ../man/ps.1:1874
+#, no-wrap
+msgid "COMMAND"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:957
+#, no-wrap
+msgid "%c"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:957 ../man/ps.1:1168
+#, no-wrap
+msgid "comm"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:958
+#, no-wrap
+msgid "%g"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:958 ../man/ps.1:1588
+#, no-wrap
+msgid "rgroup"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:958 ../man/ps.1:1588
+#, no-wrap
+msgid "RGROUP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:959
+#, no-wrap
+msgid "%n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:959 ../man/ps.1:1443
+#, no-wrap
+msgid "nice"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:959 ../man/ps.1:1435 ../man/ps.1:1443
+#, no-wrap
+msgid "NI"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:960
+#, no-wrap
+msgid "%p"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:960 ../man/ps.1:1515
+#, no-wrap
+msgid "PID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:961
+#, no-wrap
+msgid "%r"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:961 ../man/ps.1:1502
+#, no-wrap
+msgid "pgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:961 ../man/ps.1:1502
+#, no-wrap
+msgid "PGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:962
+#, no-wrap
+msgid "%t"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:962 ../man/ps.1:1271
+#, no-wrap
+msgid "etime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:962 ../man/ps.1:1271 ../man/ps.1:1275
+#, no-wrap
+msgid "ELAPSED"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:963
+#, no-wrap
+msgid "%u"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:963 ../man/ps.1:1626
+#, no-wrap
+msgid "ruser"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:963 ../man/ps.1:1626
+#, no-wrap
+msgid "RUSER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:964
+#, no-wrap
+msgid "%x"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:964 ../man/ps.1:1827
+#, no-wrap
+msgid "time"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:964 ../man/ps.1:1075 ../man/ps.1:1208 ../man/ps.1:1213
+#: ../man/ps.1:1827 ../man/ps.1:1838
+#, fuzzy, no-wrap
+#| msgid "UPTIME"
+msgid "TIME"
+msgstr "UPTIME"
+
+#. type: tbl table
+#: ../man/ps.1:965
+#, no-wrap
+msgid "%y"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:965 ../man/ps.1:1843
+#, no-wrap
+msgid "TTY"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:966
+#, no-wrap
+msgid "%z"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:966 ../man/ps.1:1936
+#, no-wrap
+msgid "vsz"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:966 ../man/ps.1:1929 ../man/ps.1:1936
+#, no-wrap
+msgid "VSZ"
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:968
+#, no-wrap
+msgid "STANDARD FORMAT SPECIFIERS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:975
+msgid ""
+"Here are the different keywords that may be used to control the output "
+"format (e.g., with option B<-o>) or to sort the selected processes with the "
+"GNU-style B<--sort> option."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:978
+msgid "For example: B<ps -eo pid,\\:user,\\:args --sort user>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:983
+msgid ""
+"This version of B<ps> tries to recognize most of the keywords used in other "
+"implementations of B<ps>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:988
+msgid ""
+"The following user-defined format specifiers may contain spaces: B<args>, "
+"B<cmd>, B<comm>, B<command>, B<fname>, B<ucmd>, B<ucomm>, B<lstart>, "
+"B<bsdstart>, B<start>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:990
+msgid "Some keywords may not be available for sorting."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1002
+#, no-wrap
+msgid "CODE"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1002
+#, no-wrap
+msgid "HEADER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1004
+#, no-wrap
+msgid "%cpu"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1010
+#, no-wrap
+msgid ""
+"cpu utilization of the process in \"##.#\" format. Currently, it is the CPU\n"
+"time used divided by the time the process has been running (cputime/realtime\n"
+"ratio), expressed as a percentage. It will not add up to 100% unless you are\n"
+"lucky. (alias\n"
+"B<pcpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1012
+#, no-wrap
+msgid "%mem"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1012 ../man/ps.1:1526
+#, no-wrap
+msgid "%MEM"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1016
+#, no-wrap
+msgid ""
+"ratio of the process's resident set size to the physical memory on the\n"
+"machine, expressed as a percentage. (alias\n"
+"B<pmem>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1018
+#, no-wrap
+msgid "ag_id"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1018
+#, no-wrap
+msgid "AGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1021
+#, no-wrap
+msgid ""
+"The autogroup identifier associated with a process which operates in conjunction\n"
+"with the CFS scheduler to improve interactive desktop performance."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1023
+#, no-wrap
+msgid "ag_nice"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1023
+#, no-wrap
+msgid "AGNI"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1025
+#, no-wrap
+msgid "The autogroup nice value which affects scheduling of all processes in that group."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1042
+#, no-wrap
+msgid ""
+"command with all its arguments as a string. Modifications to the arguments\n"
+"may be shown. The output in this column may contain spaces. A process\n"
+"marked E<lt>defunctE<gt> is partly dead, waiting to be fully destroyed by its parent.\n"
+"Sometimes the process args will be unavailable; when this happens,\n"
+"B<ps>\n"
+"will instead print the executable name in brackets. (alias\n"
+"B<cmd>, B<command>).\n"
+"See also the\n"
+"B<comm>\n"
+"format keyword, the\n"
+"B<-f>\n"
+"option, and the\n"
+"B<c>\n"
+"option.\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1042 ../man/ps.1:1116 ../man/ps.1:1118 ../man/ps.1:1120
+#: ../man/ps.1:1122 ../man/ps.1:1124 ../man/ps.1:1126 ../man/ps.1:1128
+#: ../man/ps.1:1130 ../man/ps.1:1142 ../man/ps.1:1144 ../man/ps.1:1146
+#: ../man/ps.1:1148 ../man/ps.1:1150 ../man/ps.1:1152 ../man/ps.1:1154
+#: ../man/ps.1:1156 ../man/ps.1:1180 ../man/ps.1:1540 ../man/ps.1:1542
+#: ../man/ps.1:1544 ../man/ps.1:1546 ../man/ps.1:1548 ../man/ps.1:1550
+#: ../man/ps.1:1552 ../man/ps.1:1554
+#, no-wrap
+msgid ".br\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1058
+#, no-wrap
+msgid ""
+"When specified last, this column will extend to the edge of the display. If\n"
+"B<ps>\n"
+"can not determine display width, as when output is redirected (piped) into a\n"
+"file or another command, the output width is undefined (it may be 80,\n"
+"unlimited, determined by the\n"
+"B<TERM>\n"
+"variable, and so on). The\n"
+"B<COLUMNS>\n"
+"environment variable or\n"
+"B<--cols>\n"
+"option may be used to exactly determine the width in this case. The\n"
+"B<w>\n"
+"or\n"
+"B<-w>\n"
+"option may be also be used to adjust width."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1060
+#, no-wrap
+msgid "blocked"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1060 ../man/ps.1:1700
+#, no-wrap
+msgid "BLOCKED"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1066
+#, no-wrap
+msgid ""
+"mask of the blocked signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64-bit mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_block>, B<sigmask>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1068
+#, no-wrap
+msgid "bsdstart"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1068 ../man/ps.1:1736
+#, no-wrap
+msgid "START"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1073
+#, no-wrap
+msgid ""
+"time the command started. If the process was started less than 24 hours ago,\n"
+"the output format is \"\\ HH:MM\", else it is \" Mmm:SS\" (where Mmm is the three\n"
+"letters of the month). See also\n"
+"B<lstart>,B<\\ start>,B<\\ start_time>, andB<\\ stime>."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1075
+#, no-wrap
+msgid "bsdtime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1079
+#, no-wrap
+msgid ""
+"accumulated cpu time, user + system. The display format is usually\n"
+"\"MMM:SS\", but can be shifted to the right if the process used more than 999\n"
+"minutes of cpu time."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1085
+#, no-wrap
+msgid ""
+"processor utilization. Currently, this is the integer value of the percent\n"
+"usage over the lifetime of the process. (see\n"
+"B<%cpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1087
+#, no-wrap
+msgid "caught"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1087 ../man/ps.1:1686
+#, no-wrap
+msgid "CAUGHT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1093
+#, no-wrap
+msgid ""
+"mask of the caught signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64 bits mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_catch>, B<sigcatch>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1095
+#, no-wrap
+msgid "cgname"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1095
+#, fuzzy, no-wrap
+#| msgid "NAME"
+msgid "CGNAME"
+msgstr "NAZWA"
+
+#. type: tbl table
+#: ../man/ps.1:1097
+#, no-wrap
+msgid "display name of control groups to which the process belongs."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1099
+#, no-wrap
+msgid "cgroup"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1099
+#, no-wrap
+msgid "CGROUP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1101
+#, no-wrap
+msgid "display control groups to which the process belongs."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1103
+#, no-wrap
+msgid "cgroupns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1103
+#, no-wrap
+msgid "CGROUPNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1107 ../man/ps.1:1374 ../man/ps.1:1427 ../man/ps.1:1433
+#: ../man/ps.1:1524 ../man/ps.1:1836 ../man/ps.1:1911 ../man/ps.1:1922
+#, no-wrap
+msgid ""
+"Unique inode number describing the namespace the process belongs to.\n"
+"See\n"
+"I<namespaces>(7)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1109
+#, no-wrap
+msgid "class"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1109 ../man/ps.1:1135
+#, no-wrap
+msgid "CLS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1113 ../man/ps.1:1139
+#, no-wrap
+msgid ""
+"scheduling class of the process. (alias\n"
+"B<policy>, B<cls>).\n"
+"Field's possible values are:\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1113 ../man/ps.1:1139 ../man/ps.1:1537
+#, no-wrap
+msgid ".sp 1\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1114 ../man/ps.1:1140 ../man/ps.1:1538
+#, no-wrap
+msgid ".in +9n\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1116 ../man/ps.1:1142 ../man/ps.1:1540
+#, no-wrap
+msgid "-\tnot reported\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1118 ../man/ps.1:1144 ../man/ps.1:1542
+#, no-wrap
+msgid "TS\tSCHED_OTHER\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1120 ../man/ps.1:1146 ../man/ps.1:1544
+#, no-wrap
+msgid "FF\tSCHED_FIFO\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1122 ../man/ps.1:1148 ../man/ps.1:1546
+#, no-wrap
+msgid "RR\tSCHED_RR\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1124 ../man/ps.1:1150 ../man/ps.1:1548
+#, no-wrap
+msgid "B\tSCHED_BATCH\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1126 ../man/ps.1:1152 ../man/ps.1:1550
+#, no-wrap
+msgid "ISO\tSCHED_ISO\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1128 ../man/ps.1:1154 ../man/ps.1:1552
+#, no-wrap
+msgid "IDL\tSCHED_IDLE\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1130 ../man/ps.1:1156 ../man/ps.1:1554
+#, no-wrap
+msgid "DLN\tSCHED_DEADLINE\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1132 ../man/ps.1:1158 ../man/ps.1:1556
+#, no-wrap
+msgid "?\tunknown value\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1132 ../man/ps.1:1158 ../man/ps.1:1556
+#, no-wrap
+msgid ".in\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1135
+#, no-wrap
+msgid "cls"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1161 ../man/ps.1:1867
+#, no-wrap
+msgid "CMD"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1166
+#, no-wrap
+msgid ""
+"see\n"
+"B<args>.\n"
+"(alias\n"
+"B<args>, B<command>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1180
+#, no-wrap
+msgid ""
+"command name (only the executable name). The output in this column may\n"
+"contain spaces.\n"
+"(alias\n"
+"B<ucmd>, B<ucomm>).\n"
+"See also the\n"
+"B<args>\n"
+"format keyword, the\n"
+"B<-f>\n"
+"option, and the\n"
+"B<c>\n"
+"option.\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1194
+#, no-wrap
+msgid ""
+"When specified last, this column will extend to the edge of the display. If\n"
+"B<ps>\n"
+"can not determine display width, as when output is redirected (piped) into a\n"
+"file or another command, the output width is undefined (it may be 80,\n"
+"unlimited, determined by the\n"
+"B<TERM>\n"
+"variable, and so on). The\n"
+"B<COLUMNS>\n"
+"environment variable or\n"
+"B<--cols>\n"
+"option may be used to exactly determine the width in this case. The\n"
+"B<w>\\ orB<\\ -w>\n"
+"option may be also be used to adjust width."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1196
+#, fuzzy, no-wrap
+#| msgid "User Commands"
+msgid "command"
+msgstr "Polecenia użytkownika"
+
+#. type: tbl table
+#: ../man/ps.1:1201
+#, no-wrap
+msgid ""
+"See\n"
+"B<args>.\n"
+"(alias\n"
+"B<args>, B<command>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1203
+#, no-wrap
+msgid "cp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1203
+#, fuzzy, no-wrap
+#| msgid "CPU"
+msgid "CP"
+msgstr "CPU"
+
+#. type: tbl table
+#: ../man/ps.1:1206
+#, no-wrap
+msgid ""
+"per-mill (tenths of a percent) CPU usage. (see\n"
+"B<%cpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1208
+#, no-wrap
+msgid "cputime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1211
+#, no-wrap
+msgid ""
+"cumulative CPU time, \"[DD-]hh:mm:ss\" format. (alias\n"
+"B<time>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1213
+#, no-wrap
+msgid "cputimes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1216
+#, no-wrap
+msgid ""
+"cumulative CPU time in seconds (alias\n"
+"B<times>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1218
+#, no-wrap
+msgid "cuc"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1218
+#, no-wrap
+msgid "%CUC"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1226
+#, no-wrap
+msgid ""
+"The CPU utilization of a process, including dead children, in an extended \"##.###\" format.\n"
+"(see also\n"
+"B<%cpu>,\n"
+"B<c>,\n"
+"B<cp>,\n"
+"B<cuu>,\n"
+"B<pcpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1228
+#, no-wrap
+msgid "cuu"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1228
+#, no-wrap
+msgid "%CUU"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1236
+#, no-wrap
+msgid ""
+"The CPU utilization of a process in an extended \"##.###\" format.\n"
+"(see also\n"
+"B<%cpu>,\n"
+"B<c>,\n"
+"B<cp>,\n"
+"B<cuc>,\n"
+"B<pcpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1238
+#, no-wrap
+msgid "drs"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1238
+#, no-wrap
+msgid "DRS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1247
+#, no-wrap
+msgid ""
+"data resident set size, the amount of private memory I<reserved> by a process.\n"
+"It is also known as DATA. Such memory may not yet be mapped to\n"
+"B<rss>\n"
+"but will always be included\n"
+"included in the\n"
+"B<vsz>\n"
+"amount.\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1249
+#, no-wrap
+msgid "egid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1249
+#, no-wrap
+msgid "EGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1252
+#, no-wrap
+msgid ""
+"effective group ID number of the process as a decimal integer. (alias\n"
+"B<gid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1254
+#, no-wrap
+msgid "egroup"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1254
+#, no-wrap
+msgid "EGROUP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1259
+#, no-wrap
+msgid ""
+"effective group ID of the process. This will be the textual group ID, if it\n"
+"can be obtained and the field width permits, or a decimal representation\n"
+"otherwise. (alias\n"
+"B<group>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1261
+#, no-wrap
+msgid "eip"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1261
+#, no-wrap
+msgid "EIP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1264
+#, no-wrap
+msgid ""
+"instruction pointer. As of kernel 4.9.xx will be zeroed out unless task is\n"
+"exiting or being core dumped."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1266
+#, no-wrap
+msgid "esp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1266
+#, no-wrap
+msgid "ESP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1269
+#, no-wrap
+msgid ""
+"stack pointer. As of kernel 4.9.xx will be zeroed out unless task is\n"
+"exiting or being core dumped."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1273
+#, no-wrap
+msgid "elapsed time since the process was started, in the form [[DD-]hh:]mm:ss."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1275
+#, no-wrap
+msgid "etimes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1277
+#, no-wrap
+msgid "elapsed time since the process was started, in seconds."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1279
+#, no-wrap
+msgid "euid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1279
+#, no-wrap
+msgid "EUID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1282
+#, no-wrap
+msgid ""
+"effective user ID (alias\n"
+"B<uid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1284
+#, no-wrap
+msgid "euser"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1284
+#, no-wrap
+msgid "EUSER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1290
+#, no-wrap
+msgid ""
+"effective user name. This will be the textual user ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise. The\n"
+"B<n>\n"
+"option can be used to force the decimal representation. (alias\n"
+"B<uname>, B<user>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1292
+#, no-wrap
+msgid "exe"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1292
+#, no-wrap
+msgid "EXE"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1298
+#, no-wrap
+msgid ""
+"path to the executable. Useful if path cannot be printed via\n"
+"B<cmd>, B<comm>\n"
+"or\n"
+"B<args>\n"
+"format options."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1300 ../man/ps.1:1319 ../man/ps.1:1326
+#, no-wrap
+msgid "F"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1305
+#, no-wrap
+msgid ""
+"flags associated with the process, see the\n"
+"B<PROCESS FLAGS>\n"
+"section. (alias\n"
+"B<flag>, B<flags>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1307
+#, no-wrap
+msgid "fgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1307
+#, no-wrap
+msgid "FGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1310
+#, no-wrap
+msgid ""
+"filesystem access group\\ ID. (alias\n"
+"B<fsgid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1312
+#, no-wrap
+msgid "fgroup"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1312
+#, no-wrap
+msgid "FGROUP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1317
+#, no-wrap
+msgid ""
+"filesystem access group ID. This will be the textual group ID, if it can\n"
+"be obtained and the field width permits, or a decimal representation\n"
+"otherwise. (alias\n"
+"B<fsgroup>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1319
+#, no-wrap
+msgid "flag"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1324
+#, no-wrap
+msgid ""
+"see\n"
+"B<f>.\n"
+"(alias\n"
+"B<f>, B<flags>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1331
+#, no-wrap
+msgid ""
+"see\n"
+"B<f>.\n"
+"(alias\n"
+"B<f>, B<flag>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1333
+#, no-wrap
+msgid "fname"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1336
+#, no-wrap
+msgid ""
+"first 8 bytes of the base name of the process's executable file. The output\n"
+"in this column may contain spaces."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1338
+#, no-wrap
+msgid "fuid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1338
+#, no-wrap
+msgid "FUID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1341
+#, no-wrap
+msgid ""
+"filesystem access user ID. (alias\n"
+"B<fsuid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1343
+#, no-wrap
+msgid "fuser"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1343
+#, no-wrap
+msgid "FUSER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1346
+#, no-wrap
+msgid ""
+"filesystem access user ID. This will be the textual user ID, if it can be\n"
+"obtained and the field width permits, or a decimal representation otherwise."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1348
+#, no-wrap
+msgid "gid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1348
+#, no-wrap
+msgid "GID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1353
+#, no-wrap
+msgid ""
+"see\n"
+"B<egid>.\n"
+"(alias\n"
+"B<egid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1360
+#, no-wrap
+msgid ""
+"see\n"
+"B<egroup>.\n"
+"(alias\n"
+"B<egroup>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1362
+#, no-wrap
+msgid "ignored"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1362 ../man/ps.1:1693
+#, no-wrap
+msgid "IGNORED"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1368
+#, no-wrap
+msgid ""
+"mask of the ignored signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64 bits mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_ignore>, B<sigignore>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1370
+#, no-wrap
+msgid "ipcns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1370
+#, no-wrap
+msgid "IPCNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1376
+#, no-wrap
+msgid "label"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1376
+#, no-wrap
+msgid "LABEL"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1381
+#, no-wrap
+msgid ""
+"security label, most commonly used for SELinux context data. This is for\n"
+"the\n"
+"I<Mandatory Access Control>\n"
+"(\"MAC\") found on high-security systems."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1383
+#, no-wrap
+msgid "lstart"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1383 ../man/ps.1:1729
+#, no-wrap
+msgid "STARTED"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1386
+#, no-wrap
+msgid ""
+"time the command started. This will be in the form \"DDD mmm HH:MM:SS YYY\"\n"
+"unless changed by the B<-D> option."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1388
+#, no-wrap
+msgid "lsession"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1388
+#, no-wrap
+msgid "SESSION"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1391
+#, no-wrap
+msgid ""
+"displays the login session identifier of a process,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1393
+#, no-wrap
+msgid "luid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1393
+#, no-wrap
+msgid "LUID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1395
+#, no-wrap
+msgid "displays Login ID associated with a process."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1397
+#, no-wrap
+msgid "lwp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1397
+#, no-wrap
+msgid "LWP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1403
+#, no-wrap
+msgid ""
+"light weight process (thread) ID of the dispatchable entity (alias\n"
+"B<spid>,B<\\ tid>).\n"
+"See\n"
+"B<tid>\n"
+"for additional information."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1405
+#, no-wrap
+msgid "lxc"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1405
+#, no-wrap
+msgid "LXC"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1408
+#, no-wrap
+msgid ""
+"The name of the lxc container within which a task is running.\n"
+"If a process is not running inside a container, a dash ('-') will be shown."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1410
+#, no-wrap
+msgid "machine"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1410
+#, no-wrap
+msgid "MACHINE"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1413
+#, no-wrap
+msgid ""
+"displays the machine name for processes assigned to VM or container,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1415
+#, no-wrap
+msgid "MAJFLT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1417
+#, no-wrap
+msgid "The number of major page faults that have occurred with this process."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1419
+#, no-wrap
+msgid "MINFLT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1421
+#, no-wrap
+msgid "The number of minor page faults that have occurred with this process."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1423
+#, no-wrap
+msgid "mntns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1423
+#, no-wrap
+msgid "MNTNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1429
+#, no-wrap
+msgid "netns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1429
+#, no-wrap
+msgid "NETNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1435
+#, no-wrap
+msgid "ni"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1441
+#, no-wrap
+msgid ""
+"nice value. This ranges from 19 (nicest) to -20 (not nice to others),\n"
+"see\n"
+"I<nice>(1).\n"
+"(alias\n"
+"B<nice>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1447
+#, no-wrap
+msgid ""
+"see\n"
+"B<ni>.B<(alias>\n"
+"B<ni>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1449
+#, no-wrap
+msgid "nlwp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1449
+#, no-wrap
+msgid "NLWP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1452
+#, no-wrap
+msgid ""
+"number of lwps (threads) in the process. (alias\n"
+"B<thcount>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1454
+#, no-wrap
+msgid "numa"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1454
+#, no-wrap
+msgid "NUMA"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1457
+#, no-wrap
+msgid ""
+"The node associated with the most recently used processor.\n"
+"A I<-1> means that NUMA information is unavailable."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1459
+#, no-wrap
+msgid "nwchan"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1459 ../man/ps.1:1950
+#, no-wrap
+msgid "WCHAN"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1463
+#, no-wrap
+msgid ""
+"address of the kernel function where the process is sleeping (use\n"
+"B<wchan>\n"
+"if you want the kernel function name)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1465
+#, no-wrap
+msgid "oom"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1465
+#, no-wrap
+msgid "OOM"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1468
+#, no-wrap
+msgid ""
+"Out of Memory Score. The value, ranging from 0 to +1000, used to select\n"
+"task(s) to kill when memory is exhausted."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1470
+#, no-wrap
+msgid "oomadj"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1470
+#, no-wrap
+msgid "OOMADJ"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1474
+#, no-wrap
+msgid ""
+"Out of Memory Adjustment Factor. The value is added to the current out of\n"
+"memory score which is then used to determine which task to kill when memory\n"
+"is exhausted."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1476
+#, no-wrap
+msgid "ouid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1476
+#, no-wrap
+msgid "OWNER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1479
+#, no-wrap
+msgid ""
+"displays the Unix user identifier of the owner of the session of a process,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1486
+#, no-wrap
+msgid ""
+"see\n"
+"B<%cpu>.\n"
+"(alias\n"
+"B<%cpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1488
+#, no-wrap
+msgid "pending"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1488 ../man/ps.1:1679
+#, no-wrap
+msgid "PENDING"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1500
+#, no-wrap
+msgid ""
+"mask of the pending signals. See\n"
+"I<signal>(7).\n"
+"Signals pending on the process are distinct from signals pending on\n"
+"individual threads. Use the\n"
+"B<m>\n"
+"option or the\n"
+"B<-m>\n"
+"option to see both. According to the width of the field, a 32 or 64 bits\n"
+"mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1506
+#, no-wrap
+msgid ""
+"process group ID or, equivalently, the process ID of the process group\n"
+"leader. (alias\n"
+"B<pgrp>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1508
+#, no-wrap
+msgid "PGRP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1513
+#, no-wrap
+msgid ""
+"see\n"
+"B<pgid>.\n"
+"(alias\n"
+"B<pgid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1518
+#, no-wrap
+msgid ""
+"a number representing the process ID (alias\n"
+"B<tgid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1520
+#, no-wrap
+msgid "pidns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1520
+#, no-wrap
+msgid "PIDNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1526
+#, no-wrap
+msgid "pmem"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1531
+#, no-wrap
+msgid ""
+"see\n"
+"B<%mem>.\n"
+"(alias\n"
+"B<%mem>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1533
+#, no-wrap
+msgid "policy"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1533
+#, no-wrap
+msgid "POL"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1537
+#, no-wrap
+msgid ""
+"scheduling class of the process. (alias\n"
+"B<class>, B<cls>).\n"
+"Possible values are:\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1561
+#, no-wrap
+msgid "parent process ID."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1563
+#, no-wrap
+msgid "pri"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1563
+#, no-wrap
+msgid "PRI"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1565
+#, no-wrap
+msgid "priority of the process. Higher number means higher priority."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1567
+#, no-wrap
+msgid "psr"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1567
+#, no-wrap
+msgid "PSR"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1569
+#, no-wrap
+msgid "processor that process last executed on."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1571
+#, no-wrap
+msgid "pss"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1571
+#, no-wrap
+msgid "PSS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1574
+#, no-wrap
+msgid ""
+"Proportional share size, the non-swapped physical memory, with shared memory\n"
+"proportionally accounted to all tasks mapping it."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1576
+#, no-wrap
+msgid "rbytes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1576
+#, no-wrap
+msgid "RBYTES"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1578
+#, no-wrap
+msgid "Number of bytes which this process really did cause to be fetched from the storage layer."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1580
+#, no-wrap
+msgid "rchars"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1580
+#, no-wrap
+msgid "RCHARS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1582
+#, no-wrap
+msgid "Number of bytes which this task has caused to be read from storage."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1584
+#, no-wrap
+msgid "rgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1584
+#, no-wrap
+msgid "RGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1586
+#, no-wrap
+msgid "real group ID."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1591
+#, no-wrap
+msgid ""
+"real group name. This will be the textual group ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1593
+#, no-wrap
+msgid "rops"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1593
+#, no-wrap
+msgid "ROPS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1596
+#, no-wrap
+msgid ""
+"Number of read I/O operations—that is, system calls such as\n"
+"B<read>(2) and B<pread>(2)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1598 ../man/ps.1:1604
+#, no-wrap
+msgid "RSS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1602
+#, no-wrap
+msgid ""
+"resident set size, the non-swapped physical memory that a task has used (in\n"
+"kilobytes). (alias\n"
+"B<rssize>, B<rsz>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1604
+#, no-wrap
+msgid "rssize"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1609
+#, no-wrap
+msgid ""
+"see\n"
+"B<rss>.\n"
+"(alias\n"
+"B<rss>, B<rsz>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1611
+#, no-wrap
+msgid "rsz"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1611
+#, no-wrap
+msgid "RSZ"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1616
+#, no-wrap
+msgid ""
+"see\n"
+"B<rss>.\n"
+"(alias\n"
+"B<rss>, B<rssize>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1618
+#, no-wrap
+msgid "rtprio"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1618
+#, no-wrap
+msgid "RTPRIO"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1620
+#, no-wrap
+msgid "realtime priority."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1622
+#, no-wrap
+msgid "ruid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1622
+#, no-wrap
+msgid "RUID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1624
+#, no-wrap
+msgid "real user ID."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1629
+#, no-wrap
+msgid ""
+"real user ID. This will be the textual user ID, if it can be obtained and\n"
+"the field width permits, or a decimal representation otherwise."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1638
+#, no-wrap
+msgid ""
+"minimal state display (one character). See section\n"
+"B<PROCESS STATE CODES>\n"
+"for the different values. See also\n"
+"B<stat>\n"
+"if you want additional information displayed. (alias\n"
+"B<state>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1640
+#, no-wrap
+msgid "sched"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1640
+#, no-wrap
+msgid "SCH"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1644
+#, no-wrap
+msgid ""
+"scheduling policy of the process. The policies SCHED_OTHER (SCHED_NORMAL),\n"
+"SCHED_FIFO, SCHED_RR, SCHED_BATCH, SCHED_ISO, SCHED_IDLE and SCHED_DEADLINE are\n"
+"respectively displayed as 0, 1, 2, 3, 4, 5 and 6."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1646
+#, no-wrap
+msgid "seat"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1646
+#, no-wrap
+msgid "SEAT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1650
+#, no-wrap
+msgid ""
+"displays the identifier associated with all hardware devices assigned\n"
+"to a specific workplace,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1652
+#, no-wrap
+msgid "sess"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1652
+#, no-wrap
+msgid "SESS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1655
+#, no-wrap
+msgid ""
+"session ID or, equivalently, the process ID of the session leader. (alias\n"
+"B<session>, B<sid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1657
+#, no-wrap
+msgid "sgi_p"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1660
+#, no-wrap
+msgid ""
+"processor that the process is currently executing on. Displays \"*\" if the\n"
+"process is not currently running or runnable."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1662
+#, no-wrap
+msgid "sgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1662
+#, no-wrap
+msgid "SGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1665
+#, no-wrap
+msgid ""
+"saved group ID. (alias\n"
+"B<svgid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1667
+#, no-wrap
+msgid "sgroup"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1667
+#, no-wrap
+msgid "SGROUP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1670
+#, no-wrap
+msgid ""
+"saved group name. This will be the textual group ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1672
+#, no-wrap
+msgid "sid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1672
+#, no-wrap
+msgid "SID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1677
+#, no-wrap
+msgid ""
+"see\n"
+"B<sess>.\n"
+"(alias\n"
+"B<sess>, B<session>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1679
+#, no-wrap
+msgid "sig"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1684
+#, no-wrap
+msgid ""
+"see\n"
+"B<pending>.\n"
+"(alias\n"
+"B<pending>, B<sig_pend>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1686
+#, no-wrap
+msgid "sigcatch"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1691
+#, no-wrap
+msgid ""
+"see\n"
+"B<caught>.\n"
+"(alias\n"
+"B<caught>, B<sig_catch>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1693
+#, no-wrap
+msgid "sigignore"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1698
+#, no-wrap
+msgid ""
+"see\n"
+"B<ignored>.\n"
+"(alias\n"
+"B<ignored>, B<sig_ignore>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1700
+#, no-wrap
+msgid "sigmask"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1705
+#, no-wrap
+msgid ""
+"see\n"
+"B<blocked>.\n"
+"(alias\n"
+"B<blocked>, B<sig_block>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1707
+#, no-wrap
+msgid "SIZE"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1711
+#, no-wrap
+msgid ""
+"approximate amount of swap space that would be required if the process were\n"
+"to dirty all writable pages and then be swapped out. This number is very\n"
+"rough!"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1713
+#, no-wrap
+msgid "slice"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1713
+#, no-wrap
+msgid "SLICE"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1716
+#, no-wrap
+msgid ""
+"displays the slice unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1718
+#, no-wrap
+msgid "spid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1718
+#, no-wrap
+msgid "SPID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1723
+#, no-wrap
+msgid ""
+"see\n"
+"B<lwp>.\n"
+"(alias\n"
+"B<lwp>, B<tid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1725
+#, no-wrap
+msgid "stackp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1725
+#, no-wrap
+msgid "STACKP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1727
+#, no-wrap
+msgid "address of the bottom (start) of stack for the process."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1729
+#, no-wrap
+msgid "start"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1734
+#, no-wrap
+msgid ""
+"time the command started. If the process was started less than 24 hours ago,\n"
+"the output format is \"HH:MM:SS\", else it is \"\\ \\ Mmm\\ dd\" (where Mmm is a\n"
+"three-letter month name). See also\n"
+"B<bsdstart>, B<start>, B<start_time>, and B<stime>."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1743
+#, no-wrap
+msgid ""
+"starting time or date of the process. Only the year will be displayed if the\n"
+"process was not started the same year\n"
+"B<ps>\n"
+"was invoked, or \"MmmDD\" if it was not started the same day, or \"HH:MM\"\n"
+"otherwise. See also\n"
+"B<bsdstart>, B<start>, B<lstart>, and B<stime>."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1745
+#, no-wrap
+msgid "stat"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1745
+#, fuzzy, no-wrap
+#| msgid "VMSTAT"
+msgid "STAT"
+msgstr "VMSTAT"
+
+#. type: tbl table
+#: ../man/ps.1:1751
+#, no-wrap
+msgid ""
+"multi-character process state. See section\n"
+"B<PROCESS STATE CODES>\n"
+"for the different values meaning. See also\n"
+"B<s>\\ andB<\\ state>\n"
+"if you just want the first character displayed."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1753
+#, no-wrap
+msgid "state"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1756
+#, no-wrap
+msgid ""
+"see\n"
+"B<s>.\\& (aliasB<\\ s>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1758
+#, no-wrap
+msgid "stime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1758
+#, fuzzy, no-wrap
+#| msgid "UPTIME"
+msgid "STIME"
+msgstr "UPTIME"
+
+#. type: tbl table
+#: ../man/ps.1:1760
+#, no-wrap
+msgid "see B<start_time>. (alias B<start_time>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1762
+#, no-wrap
+msgid "suid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1762
+#, no-wrap
+msgid "SUID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1765
+#, no-wrap
+msgid ""
+"saved user ID. (alias\n"
+"B<svuid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1767
+#, no-wrap
+msgid "supgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1767
+#, no-wrap
+msgid "SUPGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1770
+#, no-wrap
+msgid ""
+"group ids of supplementary groups, if any. See\n"
+"B<getgroups>(2)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1772
+#, no-wrap
+msgid "supgrp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1772
+#, no-wrap
+msgid "SUPGRP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1775
+#, no-wrap
+msgid ""
+"group names of supplementary groups, if any. See\n"
+"B<getgroups>(2)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1777
+#, no-wrap
+msgid "suser"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1777
+#, no-wrap
+msgid "SUSER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1781
+#, no-wrap
+msgid ""
+"saved user name. This will be the textual user ID, if it can be obtained and\n"
+"the field width permits, or a decimal representation otherwise. (alias\n"
+"B<svuser>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1783
+#, no-wrap
+msgid "svgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1783
+#, no-wrap
+msgid "SVGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1788
+#, no-wrap
+msgid ""
+"see\n"
+"B<sgid>.\n"
+"(alias\n"
+"B<sgid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1790
+#, no-wrap
+msgid "svuid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1790
+#, no-wrap
+msgid "SVUID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1795
+#, no-wrap
+msgid ""
+"see\n"
+"B<suid>.\n"
+"(alias\n"
+"B<suid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1797
+#, no-wrap
+msgid "sz"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1797
+#, no-wrap
+msgid "SZ"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1802
+#, no-wrap
+msgid ""
+"size in physical pages of the core image of the process. This includes text,\n"
+"data, and stack space. Device mappings are currently excluded; this is\n"
+"subject to change. See\n"
+"B<vsz>\\ andB<\\ rss>."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1804
+#, no-wrap
+msgid "tgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1804
+#, no-wrap
+msgid "TGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1808
+#, no-wrap
+msgid ""
+"a number representing the thread group to which a task belongs (alias\n"
+"B<pid>).\n"
+"It is the process ID of the thread group leader."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1810
+#, fuzzy, no-wrap
+#| msgid "I<count>"
+msgid "thcount"
+msgstr "I<liczba>"
+
+#. type: tbl table
+#: ../man/ps.1:1810
+#, no-wrap
+msgid "THCNT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1816
+#, no-wrap
+msgid ""
+"see\n"
+"B<nlwp>.\n"
+"(alias\n"
+"B<nlwp>).\n"
+"number of kernel threads owned by the process."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1818
+#, no-wrap
+msgid "tid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1818
+#, no-wrap
+msgid "TID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1825
+#, no-wrap
+msgid ""
+"the unique number representing a dispatchable entity (alias\n"
+"B<spid>, B<tid>).\n"
+"This value may also appear as: a process ID (pid); a process group ID (pgrp);\n"
+"a session ID for the session leader (sid); a thread group ID for the thread\n"
+"group leader (tgid); and a tty process group ID for the process group leader\n"
+"(tpgid)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1830
+#, no-wrap
+msgid ""
+"cumulative CPU\\ time, \"[DD-]HH:MM:SS\" format. (alias\n"
+"B<cputime>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1832
+#, no-wrap
+msgid "timens"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1832
+#, fuzzy, no-wrap
+#| msgid "UPTIME"
+msgid "TIMENS"
+msgstr "UPTIME"
+
+#. type: tbl table
+#: ../man/ps.1:1838
+#, no-wrap
+msgid "times"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1841
+#, no-wrap
+msgid ""
+"cumulative CPU\\ time in seconds (alias\n"
+"B<cputimes>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1843
+#, no-wrap
+msgid "tname"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1846
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tt>, B<tty>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1848
+#, no-wrap
+msgid "TPGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1851
+#, no-wrap
+msgid ""
+"ID of the foreground process group on the tty (terminal) that the process is\n"
+"connected to, or -1 if the process is not connected to a tty."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1853
+#, no-wrap
+msgid "trs"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1853
+#, fuzzy, no-wrap
+#| msgid "AUTHORS"
+msgid "TRS"
+msgstr "AUTORZY"
+
+#. type: tbl table
+#: ../man/ps.1:1855
+#, no-wrap
+msgid "text resident set size, the amount of physical memory devoted to executable code."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1857
+#, no-wrap
+msgid "tt"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1857 ../man/ps.1:1862
+#, no-wrap
+msgid "TT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1860
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tname>, B<tty>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1865
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tname>, B<tt>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1867
+#, no-wrap
+msgid "ucmd"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1872
+#, no-wrap
+msgid ""
+"see\n"
+"B<comm>.\n"
+"(alias\n"
+"B<comm>, B<ucomm>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1874
+#, no-wrap
+msgid "ucomm"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1879
+#, no-wrap
+msgid ""
+"see\n"
+"B<comm>.\n"
+"(alias\n"
+"B<comm>, B<ucmd>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1881
+#, no-wrap
+msgid "UID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1886
+#, no-wrap
+msgid ""
+"see\n"
+"B<euid>.\n"
+"(alias\n"
+"B<euid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1888
+#, no-wrap
+msgid "uname"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1893
+#, no-wrap
+msgid ""
+"see\n"
+"B<euser>.\n"
+"(alias\n"
+"B<euser>, B<user>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1895
+#, no-wrap
+msgid "unit"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1895
+#, no-wrap
+msgid "UNIT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1898
+#, no-wrap
+msgid ""
+"displays unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1905
+#, no-wrap
+msgid ""
+"see\n"
+"B<euser>.\n"
+"(alias\n"
+"B<euser>, B<uname>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1907
+#, no-wrap
+msgid "userns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1907
+#, no-wrap
+msgid "USERNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1913
+#, no-wrap
+msgid "uss"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1913
+#, no-wrap
+msgid "USS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1916
+#, no-wrap
+msgid ""
+"Unique set size, the non-swapped physical memory, which\n"
+"is not shared with an another task."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1918
+#, no-wrap
+msgid "utsns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1918
+#, no-wrap
+msgid "UTSNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1924
+#, no-wrap
+msgid "uunit"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1924
+#, no-wrap
+msgid "UUNIT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1927
+#, no-wrap
+msgid ""
+"displays user unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1934
+#, no-wrap
+msgid ""
+"see\n"
+"B<vsz>.\n"
+"(alias\n"
+"B<vsz>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1940
+#, no-wrap
+msgid ""
+"virtual memory size of the process in KiB (1024-byte units). Device\n"
+"mappings are currently excluded; this is subject to change. (alias\n"
+"B<vsize>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1942
+#, no-wrap
+msgid "wbytes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1942
+#, no-wrap
+msgid "WBYTES"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1944
+#, no-wrap
+msgid "Number of bytes which this process caused to be sent to the storage layer."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1946
+#, no-wrap
+msgid "wcbytes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1946
+#, no-wrap
+msgid "WCBYTES"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1948
+#, no-wrap
+msgid "Number of cancelled write bytes."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1950
+#, no-wrap
+msgid "wchan"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1952
+#, no-wrap
+msgid "name of the kernel function in which the process is sleeping."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1954
+#, no-wrap
+msgid "wchars"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1954
+#, no-wrap
+msgid "WCHARS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1956
+#, no-wrap
+msgid "Number of bytes which this task has caused, or shall cause to be written to disk."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1958
+#, no-wrap
+msgid "wops"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1958
+#, no-wrap
+msgid "WOPS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1961
+#, no-wrap
+msgid ""
+"Number of write I/O operations—that is, system calls such as\n"
+"B<write>(2) and B<pwrite>(2)."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:1964
+#, fuzzy, no-wrap
+#| msgid "ENVIRONMENT VARIABLE(S)"
+msgid "ENVIRONMENT VARIABLES"
+msgstr "ZMIENNE ÅšRODOWISKOWE"
+
+#. type: Plain text
+#: ../man/ps.1:1967
+msgid "The following environment variables could affect B<ps>:"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1967
+#, no-wrap
+msgid "B<COLUMNS>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1970
+msgid "Override default display width."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1970
+#, no-wrap
+msgid "B<LINES>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1973
+msgid "Override default display height."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1973
+#, no-wrap
+msgid "B<PS_PERSONALITY>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1978 ../man/ps.1:1983
+msgid ""
+"Set to one of posix, old, linux, bsd, sun, digital...\\& (see section "
+"B<PERSONALITY> below)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1978
+#, no-wrap
+msgid "B<CMD_ENV>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1983
+#, no-wrap
+msgid "B<I_WANT_A_BROKEN_PS>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1986
+msgid "Force obsolete command line interpretation."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1986
+#, no-wrap
+msgid "B<LC_TIME>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1989
+msgid "Date format."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1989
+#, fuzzy, no-wrap
+#| msgid "LIBPROC_HIDE_KERNEL"
+msgid "B<LIBPROC_HIDE_KERNEL>"
+msgstr "LIBPROC_HIDE_KERNEL"
+
+#. type: Plain text
+#: ../man/ps.1:1996
+msgid ""
+"Set this to any value to hide kernel threads normally displayed with the B<-"
+"e> option. This is equivalent to selecting B<--ppid 2 -p 2 --deselect> "
+"instead. Also works in BSD mode."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1996
+#, no-wrap
+msgid "B<PS_COLORS>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1999
+msgid "Not currently supported."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1999
+#, no-wrap
+msgid "B<PS_FORMAT>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2010
+msgid ""
+"Default output format override. You may set this to a format string of the "
+"type used for the B<-o> option. The B<DefSysV> and B<DefBSD> values are "
+"particularly useful."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:2010
+#, no-wrap
+msgid "B<POSIXLY_CORRECT>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2013 ../man/ps.1:2020
+msgid "Don't find excuses to ignore bad \"features\"."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:2013
+#, no-wrap
+msgid "B<POSIX2>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2017
+msgid "When set to \"on\", acts as B<POSIXLY_CORRECT>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:2017
+#, no-wrap
+msgid "B<UNIX95>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:2020
+#, no-wrap
+msgid "B<_XPG>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2026
+msgid "Cancel B<CMD_ENV>=I<irix> non-standard behavior."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2034
+msgid ""
+"In general, it is a bad idea to set these variables. The one exception is "
+"B<CMD_ENV> or B<PS_PERSONALITY>, which could be set to Linux for normal "
+"systems. Without that setting, B<ps> follows the useless and bad parts of "
+"the Unix98 standard."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:2034
+#, no-wrap
+msgid "PERSONALITY"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2037
+#, no-wrap
+msgid "390"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2037
+#, no-wrap
+msgid "like the OS/390 OpenEdition B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2038
+#, no-wrap
+msgid "aix"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2038
+#, no-wrap
+msgid "like AIX B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2039
+#, no-wrap
+msgid "bsd"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2039
+#, no-wrap
+msgid "like FreeBSD B<ps> (totally non-standard)"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2040
+#, no-wrap
+msgid "compaq"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2040
+#, no-wrap
+msgid "like Digital Unix B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2041
+#, no-wrap
+msgid "debian"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2041 ../man/ps.1:2043
+#, no-wrap
+msgid "like the old Debian B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2042
+#, no-wrap
+msgid "digital"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2042
+#, no-wrap
+msgid "like Tru64 (was Digital\\ Unix, was OSF/1) B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2043
+#, no-wrap
+msgid "gnu"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2044
+#, no-wrap
+msgid "hp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2044 ../man/ps.1:2045
+#, no-wrap
+msgid "like HP-UX B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2045
+#, no-wrap
+msgid "hpux"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2046
+#, no-wrap
+msgid "irix"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2046 ../man/ps.1:2053
+#, no-wrap
+msgid "like Irix B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2047
+#, no-wrap
+msgid "linux"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2047
+#, no-wrap
+msgid "***** B<recommended> *****"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2048
+#, no-wrap
+msgid "old"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2048
+#, no-wrap
+msgid "like the original Linux B<ps> (totally non-standard)"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2049
+#, no-wrap
+msgid "os390"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2049 ../man/ps.1:2051
+#, no-wrap
+msgid "like OS/390 Open Edition B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2050
+#, no-wrap
+msgid "posix"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2050 ../man/ps.1:2056 ../man/ps.1:2057 ../man/ps.1:2059
+#: ../man/ps.1:2060 ../man/ps.1:2061
+#, no-wrap
+msgid "standard"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2051
+#, no-wrap
+msgid "s390"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2052
+#, no-wrap
+msgid "sco"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2052
+#, no-wrap
+msgid "like SCO B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2053
+#, no-wrap
+msgid "sgi"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2054
+#, no-wrap
+msgid "solaris2"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2054
+#, no-wrap
+msgid "like Solaris 2+ (SunOS 5) B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2055
+#, no-wrap
+msgid "sunos4"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2055
+#, no-wrap
+msgid "like SunOS 4 (Solaris 1) B<ps> (totally non-standard)"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2056
+#, no-wrap
+msgid "svr4"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2057
+#, no-wrap
+msgid "sysv"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2058
+#, no-wrap
+msgid "tru64"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2058
+#, no-wrap
+msgid "like Tru64 (was Digital Unix, was OSF/1) B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2059
+#, no-wrap
+msgid "unix"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2060
+#, no-wrap
+msgid "unix95"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2061
+#, no-wrap
+msgid "unix98"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2069
+msgid ""
+"The fields B<bsdstart> and B<start> will only show the abbreviated month "
+"name in English. The fields B<lstart> and B<stime> will show the abbreviated "
+"month name in the configured locale but may exceed the column width due to "
+"the different lengths for abbreviated month and day names across languages."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2076
+#, fuzzy
+#| msgid "B<ps>(1), B<slabtop>(1), B<top>(1), B<vmstat>(8)."
+msgid "B<pgrep>(1), B<pstree>(1), B<top>(1), B<strftime>(3), B<proc>(5)."
+msgstr "B<ps>(1), B<slabtop>(1), B<top>(1), B<vmstat>(8)."
+
+#. type: Plain text
+#: ../man/ps.1:2080
+msgid "This B<ps> conforms to:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2084
+msgid "Version 2 of the Single Unix Specification"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2086
+msgid "The Open Group Technical Standard Base Specifications, Issue\\ 6"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2088
+msgid "IEEE Std 1003.1, 2004\\ Edition"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2090
+msgid "X/Open System Interfaces Extension [UP\\ XSI]"
+msgstr ""
+
+#. type: IP
+#: ../man/ps.1:2090
+#, no-wrap
+msgid "5"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2092
+msgid "ISO/IEC 9945:2003"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2120
+msgid ""
+"B<ps> was originally written by E<.MT lankeste@\\:fwi.\\:uva.\\:nl> Branko "
+"Lankester E<.ME .> E<.MT johnsonm@\\:redhat.\\:com> Michael K. Johnson E<."
+"ME> re-wrote it significantly to use the proc filesystem, changing a few "
+"things in the process. E<.MT mjshield@\\:nyx.\\:cs.\\:du.\\:edu> Michael "
+"Shields E<.ME> added the pid-list feature. E<.MT cblake@\\:bbn.\\:com> "
+"Charles Blake E<.ME> added multi-level sorting, the dirent-style library, "
+"the device name-to-number mmaped database, the approximate binary search "
+"directly on System.map, and many code and documentation cleanups. David "
+"Mossberger-Tang wrote the generic BFD support for psupdate. E<.MT albert@\\:"
+"users.\\:sf.\\:net> Albert Cahalan E<.ME> rewrote ps for full Unix98 and BSD "
+"support, along with some ugly hacks for obsolete and foreign syntax."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2124
+#, fuzzy
+#| msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+msgid ""
+"Please send bug reports to E<.MT procps@\\:freelists.\\:org> E<.ME .> No "
+"subscription is required or suggested."
+msgstr ""
+"Zgłoszenia błędów prosimy wysyłać na adres E<.UR procps@freelists.org> E<."
+"UE> "
+
+#. Setup ////////////////////////////////////////////////////////////////
+#. Commonly used strings (for consistency) ----------
+#. - our em-dashes
+#. type: ds Em
+#: ../man/top.1:11
+#, no-wrap
+msgid "\\ --\\ "
+msgstr ""
+
+#. type: ds EM
+#: ../man/top.1:12
+#, no-wrap
+msgid "B<\\ --\\ >"
+msgstr ""
+
+#. - our program name (makes great grammar)
+#. type: ds We
+#: ../man/top.1:14
+#, no-wrap
+msgid "top"
+msgstr ""
+
+#. type: ds WE
+#: ../man/top.1:15
+#, fuzzy, no-wrap
+#| msgid "B<total>"
+msgid "B<top>"
+msgstr "B<razem>"
+
+#. - other misc strs for consistent usage
+#. type: ds F
+#: ../man/top.1:17
+#, no-wrap
+msgid "I<Off>"
+msgstr ""
+
+#. type: ds O
+#: ../man/top.1:18
+#, no-wrap
+msgid "I<On>"
+msgstr ""
+
+#. type: ds AK
+#: ../man/top.1:20
+#, no-wrap
+msgid "asterisk (`*')"
+msgstr ""
+
+#. type: ds AM
+#: ../man/top.1:21
+#, no-wrap
+msgid "alternate-display mode"
+msgstr ""
+
+#. type: ds AS
+#: ../man/top.1:22
+#, no-wrap
+msgid "auxiliary storage"
+msgstr ""
+
+#. type: ds CF
+#: ../man/top.1:23
+#, fuzzy, no-wrap
+#| msgid "Read the configuration from I<file>"
+msgid "configuration file"
+msgstr "Odczyt konfiguracji z I<pliku>"
+
+#. type: ds CG
+#: ../man/top.1:24
+#, no-wrap
+msgid "`current' window/field group"
+msgstr ""
+
+#. type: ds CI
+#: ../man/top.1:25
+#, no-wrap
+msgid "interactive command"
+msgstr ""
+
+#. type: ds CO
+#: ../man/top.1:26
+#, no-wrap
+msgid "command-line option"
+msgstr ""
+
+#. type: ds CT
+#: ../man/top.1:27
+#, no-wrap
+msgid "command toggle"
+msgstr ""
+
+#. type: ds CW
+#: ../man/top.1:28
+#, no-wrap
+msgid "`current' window"
+msgstr ""
+
+#. type: ds FG
+#: ../man/top.1:29
+#, no-wrap
+msgid "field group"
+msgstr ""
+
+#. type: ds FM
+#: ../man/top.1:30
+#, no-wrap
+msgid "full-screen mode"
+msgstr ""
+
+#. type: ds KA
+#: ../man/top.1:31
+#, no-wrap
+msgid "arrow key"
+msgstr ""
+
+#. type: ds KS
+#: ../man/top.1:32
+#, no-wrap
+msgid "scrolling key"
+msgstr ""
+
+#. type: ds MP
+#: ../man/top.1:33
+#, no-wrap
+msgid "physical memory"
+msgstr ""
+
+#. type: ds MS
+#: ../man/top.1:34
+#, no-wrap
+msgid "swap file"
+msgstr ""
+
+#. type: ds MV
+#: ../man/top.1:35
+#, no-wrap
+msgid "virtual memory"
+msgstr ""
+
+#. type: ds NT
+#: ../man/top.1:36
+#, no-wrap
+msgid "B<Note>:"
+msgstr ""
+
+#. type: ds Pu
+#: ../man/top.1:38
+#, no-wrap
+msgid "cpu"
+msgstr ""
+
+#. type: ds SA
+#: ../man/top.1:39
+#, no-wrap
+msgid "summary area"
+msgstr ""
+
+#. type: ds TA
+#: ../man/top.1:40
+#, no-wrap
+msgid "task area"
+msgstr ""
+
+#. type: ds TD
+#: ../man/top.1:41
+#, no-wrap
+msgid "task display"
+msgstr ""
+
+#. type: ds TT
+#: ../man/top.1:42
+#, no-wrap
+msgid "B<processes> or B<threads>"
+msgstr ""
+
+#. type: ds TW
+#: ../man/top.1:43
+#, no-wrap
+msgid "task window"
+msgstr ""
+
+#. Reference to the various widths/sizes ------------
+#. - the max screen width limit
+#. type: ds WX
+#: ../man/top.1:46
+#, no-wrap
+msgid "512"
+msgstr ""
+
+#. - the header width w/ all fields
+#. type: ds WF
+#: ../man/top.1:48
+#, no-wrap
+msgid "approximately 250"
+msgstr ""
+
+#. - pid monitoring limit
+#. Xref's that depend on/mention other stuff --------
+#. type: ds Xa
+#: ../man/top.1:51
+#, no-wrap
+msgid "see"
+msgstr ""
+
+#. type: ds XC
+#: ../man/top.1:52
+#, no-wrap
+msgid "See the"
+msgstr ""
+
+#. type: ds Xc
+#: ../man/top.1:53
+#, no-wrap
+msgid "see the"
+msgstr ""
+
+#. type: ds XT
+#: ../man/top.1:54
+#, no-wrap
+msgid "See topic"
+msgstr ""
+
+#. type: ds Xt
+#: ../man/top.1:55
+#, no-wrap
+msgid "see topic"
+msgstr ""
+
+#. type: ds XX
+#: ../man/top.1:56
+#, no-wrap
+msgid "See `OVERVIEW, Linux Memory Types' for additional details"
+msgstr ""
+
+#. type: ds ZX
+#: ../man/top.1:57
+#, no-wrap
+msgid "Accessing smaps values is 10x more costly than other memory statistics and data for other users requires root privileges"
+msgstr ""
+
+#. type: TH
+#: ../man/top.1:62
+#, no-wrap
+msgid "TOP"
+msgstr ""
+
+#. type: TH
+#: ../man/top.1:62
+#, fuzzy, no-wrap
+#| msgid "August 2022"
+msgid "August 2023"
+msgstr "Sierpień 2022"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:70
+msgid "top - display Linux processes"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:75
+msgid "\\*(WE [options]"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:85
+msgid ""
+"The \\*(WE program provides a dynamic real-time view of a running system. "
+"It can displayB< system> summary information as well as a list of \\*(TT "
+"currently being managed by the Linux kernel. The types of system summary "
+"information shown and the types, order and size of information displayed for "
+"processes are all user configurable and that configuration can be made "
+"persistent across restarts."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:93
+msgid ""
+"The program provides a limited interactive interface for process "
+"manipulation as well as a much more extensive interface for personal "
+"configuration \\*(Em encompassing every aspect of its operation. And while "
+"\\*(WE is referred to throughout this document, you are free to name the "
+"program anything you wish. That new name, possibly an alias, will then be "
+"reflected on \\*(We's display and used when reading and writing a \\*(CF."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:95
+#, no-wrap
+msgid "OVERVIEW"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:98
+#, no-wrap
+msgid "Documentation"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:101
+msgid "The remaining Table of Contents"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:141
+#, no-wrap
+msgid ""
+" OVERVIEW\n"
+" Operation\n"
+" Linux Memory Types\n"
+" 1. COMMAND-LINE Options\n"
+" 2. SUMMARY Display\n"
+" a. UPTIME and LOAD Averages\n"
+" b. TASK and CPU States\n"
+" c. MEMORY Usage\n"
+" 3. FIELDS / Columns Display\n"
+" a. DESCRIPTIONS of Fields\n"
+" b. MANAGING Fields\n"
+" 4. INTERACTIVE Commands\n"
+" a. GLOBAL Commands\n"
+" b. SUMMARY AREA Commands\n"
+" c. TASK AREA Commands\n"
+" 1. Appearance\n"
+" 2. Content\n"
+" 3. Size\n"
+" 4. Sorting\n"
+" d. COLOR Mapping\n"
+" 5. ALTERNATE-DISPLAY Provisions\n"
+" a. WINDOWS Overview\n"
+" b. COMMANDS for Windows\n"
+" c. SCROLLING a Window\n"
+" d. SEARCHING in a Window\n"
+" e. FILTERING in a Window\n"
+" 6. FILES\n"
+" a. PERSONAL Configuration File\n"
+" b. ADDING INSPECT Entries\n"
+" c. SYSTEM Configuration File\n"
+" d. SYSTEM Restrictions File\n"
+" 7. ENVIRONMENT VARIABLE(S)\n"
+" 8. STUPID TRICKS Sampler\n"
+" a. Kernel Magic\n"
+" b. Bouncing Windows\n"
+" c. The Big Bird Window\n"
+" d. The Ol' Switcheroo\n"
+" 9. BUGS, 10. SEE Also\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:144
+#, no-wrap
+msgid "Operation"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:150
+msgid ""
+"When operating \\*(We, the two most important keys are the help (h or ?) "
+"key and quit (`q') key. Alternatively, you could simply use the traditional "
+"interrupt key (^C) when you're done."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:157
+msgid ""
+"When started for the first time, you'll be presented with these traditional "
+"elements on the main \\*(We screen: 1) Summary Area; 2) Fields/Columns "
+"Header; 3) Task Area. Each of these will be explored in the sections that "
+"follow. There is also an Input/Message line between the Summary Area and "
+"Columns Header which needs no further explanation."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:165
+msgid ""
+"The main \\*(We screen is I<generally> quite adaptive to changes in terminal "
+"dimensions under X-Windows. Other \\*(We screens may be less so, especially "
+"those with static text. It ultimately depends, however, on your particular "
+"window manager and terminal emulator. There may be occasions when their "
+"view of terminal size and current contents differs from \\*(We's view, which "
+"is always based on operating system calls."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:170
+msgid ""
+"Following any re-size operation, if a \\*(We screen is corrupted, appears "
+"incomplete or disordered, simply typing something innocuous like a "
+"punctuation character or cursor motion key will usually restore it. In "
+"extreme cases, the following sequence almost certainly will:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:175
+#, no-wrap
+msgid ""
+" I<key/cmd objective >\n"
+" ^Z B<suspend> \\*(We\n"
+" fg B<resume> \\*(We\n"
+" E<lt>LeftE<gt> force a screen B<redraw> (if necessary)\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:179
+msgid ""
+"But if the display is still corrupted, there is one more step you could "
+"try. Insert this command after \\*(We has been suspended but before "
+"resuming it."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:182
+#, no-wrap
+msgid ""
+" I<key/cmd objective >\n"
+" reset restore your B<terminal settings>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:192
+msgid ""
+"\\*(NT the width of \\*(We's display will be limited to \\*(WX positions. "
+"Displaying all fields requires \\*(WF characters. Remaining screen width is "
+"usually allocated to any variable width columns currently visible. The "
+"variable width columns, such as COMMAND, are noted in topic 3a. DESCRIPTIONS "
+"of Fields. Actual output width may also be influenced by the -w switch, "
+"which is discussed in topic 1. COMMAND-LINE Options."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:197
+msgid ""
+"Lastly, some of \\*(We's screens or functions require the use of cursor "
+"motion keys like the standard \\*(KAs plus the Home, End, PgUp and PgDn "
+"keys. If your terminal or emulator does not provide those keys, the "
+"following combinations are accepted as alternatives:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:207
+#, no-wrap
+msgid ""
+" I< key equivalent-keys >\n"
+" Left alt +B< h >\n"
+" Down alt +B< j >\n"
+" Up alt +B< k >\n"
+" Right alt +B< l >\n"
+" Home alt + ctrl +B< h >\n"
+" PgDn alt + ctrl +B< j >\n"
+" PgUp alt + ctrl +B< k >\n"
+" End alt + ctrl +B< l >\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:214
+msgid ""
+"The B<Up> and B<Down> \\*(KAs have special significance when prompted for "
+"line input terminated with the E<lt>EnterE<gt> key. Those keys, or their "
+"aliases, can be used to retrieve previous input lines which can then be "
+"edited and re-input. And there are four additional keys available with line "
+"oriented input."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:222
+#, no-wrap
+msgid ""
+" I< key special-significance >\n"
+" Up recall B<older> strings for re-editing\n"
+" Down recall B<newer> strings or B<erase> entire line\n"
+" Insert toggle between B<insert> and B<overtype> modes\n"
+" Delete character B<removed> at cursor, moving others left\n"
+" Home jump to B<beginning> of input line\n"
+" End jump to B<end> of input line\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:225
+#, no-wrap
+msgid "Linux Memory Types"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:234
+msgid ""
+"For our purposes there are three types of memory, and one is optional. "
+"First is \\*(MP, a limited resource where code and data must reside when "
+"executed or referenced. Next is the optional \\*(MS, where modified (dirty) "
+"memory can be saved and later retrieved if too many demands are made on "
+"\\*(MP. Lastly we have \\*(MV, a nearly unlimited resource serving the "
+"following goals:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:240
+#, no-wrap
+msgid ""
+" 1. abstraction, free from physical memory addresses/limits\n"
+" 2. isolation, every process in a separate address space\n"
+" 3. sharing, a single mapping can serve multiple needs\n"
+" 4. flexibility, assign a virtual address to a file\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:249
+msgid ""
+"Regardless of which of these forms memory may take, all are managed as pages "
+"(typically 4096 bytes) but expressed by default in \\*(We as KiB "
+"(kibibyte). The memory discussed under topic `2c. MEMORY Usage' deals with "
+"\\*(MP and the \\*(MS for the system as a whole. The memory reviewed in "
+"topic `3. FIELDS / Columns Display' embraces all three memory types, but for "
+"individual processes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:255
+msgid ""
+"For each such process, every memory page is restricted to a single quadrant "
+"from the table below. Both \\*(MP and \\*(MV can include any of the four, "
+"while the \\*(MS only includes #1 through #3. The memory in quadrant #4, "
+"when modified, acts as its own dedicated \\*(MS."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:267
+#, no-wrap
+msgid ""
+" B<Private> | B<Shared>\n"
+" B<1> | B<2>\n"
+" B<Anonymous> . stack |\n"
+" . malloc() |\n"
+" . brk()/sbrk() | . POSIX shm*\n"
+" . mmap(PRIVATE, ANON) | . mmap(SHARED, ANON)\n"
+" -----------------------+----------------------\n"
+" . mmap(PRIVATE, fd) | . mmap(SHARED, fd)\n"
+" B<File-backed> . pgms/shared libs |\n"
+" B<3> | B<4>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:271
+msgid ""
+"The following may help in interpreting process level memory values displayed "
+"as scalable columns and discussed under topic `3a. DESCRIPTIONS of Fields'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:288
+#, no-wrap
+msgid ""
+" %MEM - simply RES divided by total \\*(MP\n"
+" CODE - the `pgms' portion of quadrant B<3>\n"
+" DATA - the entire quadrant B<1> portion of VIRT plus all\n"
+" explicit mmap file-backed pages of quadrant B<3>\n"
+" RES - anything occupying \\*(MP which, beginning with\n"
+" Linux-4.5, is the sum of the following three fields:\n"
+" RSan - quadrant B<1> pages, which include any\n"
+" former quadrant B<3> pages if modified\n"
+" RSfd - quadrant B<3> and quadrant B<4> pages\n"
+" RSsh - quadrant B<2> pages\n"
+" RSlk - subset of RES which cannot be swapped out (any quadrant)\n"
+" SHR - subset of RES (excludes B<1>, includes all B<2> & B<4>, some B<3>)\n"
+" SWAP - potentially any quadrant except B<4>\n"
+" USED - simply the sum of RES and SWAP\n"
+" VIRT - everything in-use and/or reserved (all quadrants)\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:293
+msgid ""
+"\\*(NT Even though program images and shared libraries are considered "
+"I<private> to a process, they will be accounted for as I<shared> (SHR) by "
+"the kernel."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:295
+#, no-wrap
+msgid "1. COMMAND-LINE Options"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:299
+msgid ""
+"MandatoryI< arguments> to long options are mandatory for short options too."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:302
+msgid ""
+"Although not required, the equals sign can be used with either option form "
+"and whitespace before and/or after the `=' is permitted."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:303
+#, fuzzy, no-wrap
+#| msgid "B<-b>, B<--bytes>"
+msgid "-B<b>, B<--batch>"
+msgstr "B<-b>, B<--bytes>"
+
+#. type: Plain text
+#: ../man/top.1:309
+msgid ""
+"Starts \\*(We in Batch mode, which could be useful for sending output from "
+"\\*(We to other programs or to a file. In this mode, \\*(We will not accept "
+"input and runs until the iterations limit you've set with the `-n' \\*(CO or "
+"until killed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:310
+#, fuzzy, no-wrap
+#| msgid "B<-c>, B<--count>"
+msgid "-B<c>, B<--cmdline-toggle>"
+msgstr "B<-c>, B<--count>"
+
+#. type: Plain text
+#: ../man/top.1:316
+msgid ""
+"Starts \\*(We with the last remembered `c' state reversed. Thus, if \\*(We "
+"was displaying command lines, now that field will show program names, and "
+"vice versa. \\*(XC `c' \\*(CI for additional information."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:317
+#, no-wrap
+msgid "-B<d>, B<--delay> = I<SECS> [I<.TENTHS>]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:322
+msgid ""
+"Specifies the delay between screen updates, and overrides the corresponding "
+"value in one's personal \\*(CF or the startup default. Later this can be "
+"changed with the `d' or `s' \\*(CIs."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:327
+msgid ""
+"Fractional seconds are honored, but a negative number is not allowed. In "
+"all cases, however, such changes are prohibited if \\*(We is running in "
+"Secure mode, except for root (unless the `s' \\*(CO was used). For "
+"additional information on Secure mode \\*(Xt 6d. SYSTEM Restrictions File."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:328
+#, no-wrap
+msgid "-B<E>, B<--scale-summary-mem> = I<k> | I<m> | I<g> | I<t> | I<p> | I<e>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:331
+msgid "Instructs \\*(We to force \\*(SA memory to be scaled as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:338
+#, fuzzy, no-wrap
+#| msgid ""
+#| " B = bytes\n"
+#| " Ki = kibibyte\n"
+#| " Mi = mebibyte\n"
+#| " Gi = gibibyte\n"
+#| " Ti = tebibyte\n"
+#| " Pi = pebibyte\n"
+msgid ""
+" k - kibibytes\n"
+" m - mebibytes\n"
+" g - gibibytes\n"
+" t - tebibytes\n"
+" p - pebibytes\n"
+" e - exbibytes\n"
+msgstr ""
+" B = bajty\n"
+" Ki = kibibajty\n"
+" Mi = mebibajty\n"
+" Gi = gibibajty\n"
+" Ti = tebibajty\n"
+" Pi = pebibajty\n"
+
+#. type: Plain text
+#: ../man/top.1:341
+msgid "Later this can be changed with the `E' \\*(CT."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:342
+#, no-wrap
+msgid "-B<e>, B<--scale-task-mem> = I<k> | I<m> | I<g> | I<t> | I<p>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:345
+msgid "Instructs \\*(We to force \\*(TA memory to be scaled as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:351
+#, fuzzy, no-wrap
+#| msgid ""
+#| " B = bytes\n"
+#| " Ki = kibibyte\n"
+#| " Mi = mebibyte\n"
+#| " Gi = gibibyte\n"
+#| " Ti = tebibyte\n"
+#| " Pi = pebibyte\n"
+msgid ""
+" k - kibibytes\n"
+" m - mebibytes\n"
+" g - gibibytes\n"
+" t - tebibytes\n"
+" p - pebibytes\n"
+msgstr ""
+" B = bajty\n"
+" Ki = kibibajty\n"
+" Mi = mebibajty\n"
+" Gi = gibibajty\n"
+" Ti = tebibajty\n"
+" Pi = pebibajty\n"
+
+#. type: Plain text
+#: ../man/top.1:354
+msgid "Later this can be changed with the `e' \\*(CT."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:355
+#, fuzzy, no-wrap
+#| msgid "B<-c>, B<--read-rc>"
+msgid "-B<H>, B<--threads-show>"
+msgstr "B<-c>, B<--read-rc>"
+
+#. type: Plain text
+#: ../man/top.1:360
+msgid ""
+"Instructs \\*(We to display individual threads. Without this \\*(CO a "
+"summation of all threads in each process is shown. Later this can be "
+"changed with the `H' \\*(CI."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:361
+#, fuzzy, no-wrap
+#| msgid "B<-h>, B<--help>"
+msgid "-B<h>, B<--help>"
+msgstr "B<-h>, B<--help>"
+
+#. type: Plain text
+#: ../man/top.1:364
+#, fuzzy
+#| msgid "Display help text and exit."
+msgid "Display usage help text, then quit."
+msgstr "Wyświetlenie tekstu pomocy i zakończenie."
+
+#. type: TP
+#: ../man/top.1:365
+#, fuzzy, no-wrap
+#| msgid "B<-w>, B<--wide>"
+msgid "-B<i>, B<--idle-toggle>"
+msgstr "B<-w>, B<--wide>"
+
+#. type: Plain text
+#: ../man/top.1:372
+msgid ""
+"Starts \\*(We with the last remembered `i' state reversed. When this toggle "
+"is \\*F, tasks that have not used any \\*(PU since the last update will not "
+"be displayed. For additional information regarding this toggle \\*(Xt 4c. "
+"TASK AREA Commands, SIZE."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:373
+#, fuzzy, no-wrap
+#| msgid "B<-V>, B<--version> "
+msgid "-B<n>, B<--iterations> = I<NUMBER>"
+msgstr "B<-V>, B<--version> "
+
+#. type: Plain text
+#: ../man/top.1:377
+msgid ""
+"Specifies the maximum number of iterations, or frames, \\*(We should produce "
+"before ending."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:378
+#, fuzzy, no-wrap
+#| msgid "B<-a>, B<--list-full>"
+msgid "-B<O>, B<--list-fields>"
+msgstr "B<-a>, B<--list-full>"
+
+#. type: Plain text
+#: ../man/top.1:384
+msgid ""
+"This option acts as a form of help for the -o option shown below. It will "
+"cause \\*(We to print each of the available field names on a separate line, "
+"then quit. Such names are subject to NLS (National Language Support) "
+"translation."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:385
+#, no-wrap
+msgid "-B<o>, B<--sort-override> = I<FIELDNAME>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:393
+msgid ""
+"Specifies the name of the field on which tasks will be sorted, independent "
+"of what is reflected in the configuration file. You can prepend a `+' or "
+"`-' to the field name to also override the sort direction. A leading `+' "
+"will force sorting high to low, whereas a `-' will ensure a low to high "
+"ordering."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:396
+msgid ""
+"This option exists primarily to support automated/scripted batch mode "
+"operation."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:397
+#, no-wrap
+msgid "-B<p>, B<--pid> = I<PIDLIST> (as: I<1>,I<2>,I<3>, ... or -pI<1> -pI<2> -pI<3> ...)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:403
+msgid ""
+"Monitor only processes with specified process IDs. However, when combined "
+"with Threads mode (`H'), all processes in the thread group (\\*(Xa TGID) of "
+"each monitored PID will also be shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:407
+msgid ""
+"This option can be given up to 20 times, or you can provide a comma "
+"delimited list with up to 20 pids. Co-mingling both approaches is permitted."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:410
+msgid ""
+"A pid value of zero will be treated as the process id of the \\*(We program "
+"itself once it is running."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:414
+msgid ""
+"This is a \\*(CO only and should you wish to return to normal operation, it "
+"is not necessary to quit and restart \\*(We \\*(Em just issue any of these "
+"\\*(CIs: `=', `u' or `U'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:416
+msgid "The `p', `u' and `U' \\*(COs are mutually exclusive."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:417
+#, fuzzy, no-wrap
+#| msgid "B<-a>, B<--active>"
+msgid "-B<S>, B<--accum-time-toggle>"
+msgstr "B<-a>, B<--active>"
+
+#. type: Plain text
+#: ../man/top.1:423
+msgid ""
+"Starts \\*(We with the last remembered `S' state reversed. When Cumulative "
+"time mode is \\*O, each process is listed with the \\*(Pu time that it and "
+"its dead children have used. \\*(XC `S' \\*(CI for additional information "
+"regarding this mode."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:424
+#, fuzzy, no-wrap
+#| msgid "B<-s>, B<--since>"
+msgid "-B<s>, B<--secure-mode>"
+msgstr "B<-s>, B<--since>"
+
+#. type: Plain text
+#: ../man/top.1:429
+msgid ""
+"Starts \\*(We with secure mode forced, even for root. This mode is far "
+"better controlled through a system \\*(CF (\\*(Xt 6. FILES)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:430
+#, no-wrap
+msgid "-B<U>, B<--filter-any-user> = I<USER> (as: I<number> or I<name>)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:435
+msgid ""
+"Display only processes with a user id or user name matching that given. "
+"This option matches onI< any> user (I<real>, I<effective>, I<saved>, or "
+"I<filesystem>)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:438 ../man/top.1:448
+msgid ""
+"Prepending an exclamation point (`!') to the user id or name instructs "
+"\\*(We to display only processes with users not matching the one provided."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:440 ../man/top.1:450
+msgid "The `p', `U' and `u' \\*(COs are mutually exclusive."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:441
+#, no-wrap
+msgid "-B<u>, B<--filter-only-euser> = I<USER> (as: I<number> or I<name>)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:445
+msgid ""
+"Display only processes with a user id or user name matching that given. "
+"This option matches on theI< effective> user id only."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:451
+#, fuzzy, no-wrap
+#| msgid "B<-V>, B<--version>"
+msgid "-B<V>, B<--version>"
+msgstr "B<-V>, B<--version>"
+
+#. type: Plain text
+#: ../man/top.1:454
+#, fuzzy
+#| msgid "Display version information and exit."
+msgid "Display version information, then quit."
+msgstr "Wyświetlenie informacji o wersji i zakończenie."
+
+#. type: TP
+#: ../man/top.1:455
+#, fuzzy, no-wrap
+#| msgid "B<-w>, B<--wide> "
+msgid "-B<w>, B<--width> [=I<COLUMNS>]"
+msgstr "B<-w>, B<--wide> "
+
+#. type: Plain text
+#: ../man/top.1:462
+msgid ""
+"In Batch mode, when used without an argument \\*(We will format output using "
+"the COLUMNS= and LINES= environment variables, if set. Otherwise, width "
+"will be fixed at the maximum \\*(WX columns. With an argument, output width "
+"can be decreased or increased (up to \\*(WX) but the number of rows is "
+"considered unlimited."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:468
+msgid ""
+"In normal display mode, when used without an argument \\*(We willI< attempt> "
+"to format output using the COLUMNS= and LINES= environment variables, if "
+"set. With an argument, output width can only be decreased, not increased. "
+"Whether using environment variables or an argument with -w, whenI< not> in "
+"Batch mode actual terminal dimensions can never be exceeded."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:471
+msgid ""
+"\\*(NT Without the use of this \\*(CO, output width is always based on the "
+"terminal at which \\*(We was invoked whether or not in Batch mode."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:472
+#, fuzzy, no-wrap
+#| msgid "B<-s>, B<--since>"
+msgid "-B<1>, B<--single-cpu-toggle>"
+msgstr "B<-s>, B<--since>"
+
+#. type: Plain text
+#: ../man/top.1:478
+msgid ""
+"Starts \\*(We with the last remembered Cpu States portion of the \\*(SA "
+"reversed. Either all \\*(Pu information will be displayed in a single line "
+"or each \\*(Pu will be displayed separately, depending on the state of the "
+"NUMA Node \\*(CT (`2')."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:480
+msgid "\\*(XC `1' and `2' \\*(CIs for additional information."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:482
+#, no-wrap
+msgid "2. SUMMARY Display"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:488
+msgid ""
+"Each of the following three areas are individually controlled through one or "
+"more \\*(CIs. \\*(XT 4b. SUMMARY AREA Commands for additional information "
+"regarding these provisions."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:490
+#, no-wrap
+msgid "2a. UPTIME and LOAD Averages"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:493
+msgid "This portion consists of a single line containing:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:498
+#, no-wrap
+msgid ""
+" B<program> orB< window> name, depending on display mode\n"
+" current time and length of time since last boot\n"
+" total number of users\n"
+" system load avg over the last 1, 5 and 15 minutes\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:501
+#, no-wrap
+msgid "2b. TASK and CPU States"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:506
+msgid ""
+"This portion consists of a minimum of two lines. In an SMP environment, "
+"additional lines can reflect individual \\*(PU state percentages."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:510
+msgid ""
+"Line 1 shows totalB< tasks> orB< threads>, depending on the state of the "
+"Threads-mode toggle. That total is further classified as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:512
+#, no-wrap
+msgid " running; sleeping; stopped; zombie\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:516
+msgid ""
+"Line 2 shows \\*(PU state percentages based on the interval since the last "
+"refresh."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:519
+msgid ""
+"As a default, percentages for these individual categories are displayed. "
+"Depending on your kernel version, the B<st> field may not be shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:528
+#, no-wrap
+msgid ""
+" B<us> : time running un-niced user processes\n"
+" B<sy> : time running kernel processes\n"
+" B<ni> : time running niced user processes\n"
+" B<id> : time spent in the kernel idle handler\n"
+" B<wa> : time waiting for I/O completion\n"
+" B<hi> : time spent servicing hardware interrupts\n"
+" B<si> : time spent servicing software interrupts\n"
+" B<st> : time stolen from this vm by the hypervisor\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:532
+msgid ""
+"The `sy' value above also reflects the time running a virtual \\*(Pu for "
+"guest operating systems, including those that have been niced."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:536
+msgid ""
+"Beyond the first tasks/threads line, there are alternate \\*(PU display "
+"modes available via the 4-way `t' \\*(CT. They show an abbreviated summary "
+"consisting of these elements:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:539
+#, no-wrap
+msgid ""
+" a b c d\n"
+" %Cpu(s): B<75.0>/25.0 B<100>[ ... ]\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:546
+msgid ""
+"Where: a) is the `user' (us + ni) percentage; b) is the `system' (sy + hi + "
+"si + guests) percentage; c) is the total percentage; and d) is one of two "
+"visual graphs of those representations. Such graphs also reflect separate "
+"`user' and `system' portions."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:551
+msgid ""
+"If the `4' \\*(CT is used to yield more than two cpus per line, results will "
+"be further abridged eliminating the a) and b) elements. However, that "
+"information is still reflected in the graph itself assuming color is active "
+"or, if not, bars vs. blocks are being shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:554
+msgid ""
+"\\*(XT 4b. SUMMARY AREA Commands for additional information on the `t' and "
+"`4' \\*(CTs."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:556
+#, no-wrap
+msgid "2c. MEMORY Usage"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:561
+msgid ""
+"This portion consists of two lines which may express values in kibibytes "
+"(KiB) through exbibytes (EiB) depending on the scaling factor enforced with "
+"the `E' \\*(CI. The /proc/meminfo source fields are shown in parenthesis."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:563
+msgid "Line 1 reflects \\*(MP, classified as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:568
+#, no-wrap
+msgid ""
+" total ( MemTotal )\n"
+" free ( MemFree )\n"
+" used ( MemTotal - MemAvailable )\n"
+" buff/cache ( Buffers + Cached + SReclaimable )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:571
+msgid "Line 2 reflects mostly \\*(MV, classified as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:576
+#, no-wrap
+msgid ""
+" total ( SwapTotal )\n"
+" free ( SwapFree )\n"
+" used ( SwapTotal - SwapFree )\n"
+" avail ( MemAvailable, which is \\*(MP )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:584
+#, fuzzy
+#| msgid ""
+#| "Estimation of how much memory is available for starting new applications, "
+#| "without swapping. Unlike the data provided by the B<cache> or B<free> "
+#| "fields, this field takes into account page cache and also that not all "
+#| "reclaimable memory slabs will be reclaimed due to items being in use "
+#| "(MemAvailable in /proc/meminfo, available on kernels 3.14, emulated on "
+#| "kernels 2.6.27+, otherwise the same as B<free>)"
+msgid ""
+"The B<avail> number on line 2 is an estimation of \\*(MP available for "
+"starting new applications, without swapping. Unlike the B<free> field, it "
+"attempts to account for readily reclaimable page cache and memory slabs. It "
+"is available on kernels 3.14, emulated on kernels 2.6.27+, otherwise the "
+"same as B<free>."
+msgstr ""
+"Przybliżenie, jak dużo pamięci jest dostępne do uruchamiania nowych "
+"aplikacji bez swapowania. W przeciwieństwie do danych udostępnianych w "
+"polach B<w cache> czy B<wolne>, to pole bierze pod uwagÄ™ cache stron oraz "
+"to, że nie wszystkie płyty pamięci podlegające reklamacji zostaną zwrócone "
+"(MemAvailable w /proc/meminfo, dostępne w jądrach 3.14, emulowane w jądrach "
+"2.6.27+, w innych przypadkach - to samo, co B<wolne>)"
+
+#. type: Plain text
+#: ../man/top.1:587
+msgid ""
+"In the alternate memory display modes, two abbreviated summary lines are "
+"shown consisting of these elements:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:591
+#, no-wrap
+msgid ""
+" a b c\n"
+" GiB Mem : B<18.7>/15.738 [ ... ]\n"
+" GiB Swap: B< 0.0>/7.999 [ ... ]\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:595
+msgid ""
+"Where: a) is the percentage used; b) is the total available; and c) is one "
+"of two visual graphs of those representations."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:602
+msgid ""
+"In the case of \\*(MP, the percentage represents the B<total> minus the "
+"estimated B<avail> noted above. The `Mem' graph itself is divided between "
+"the non-cached portion of B<used> and any remaining memory not otherwise "
+"accounted for by B<avail>. \\*(XT 4b. SUMMARY AREA Commands and the `m' "
+"command for additional information on that special 4-way toggle."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:604
+msgid "This table may help in interpreting the scaled values displayed:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:611
+#, no-wrap
+msgid ""
+" KiB = kibibyte = 1024 bytes\n"
+" MiB = mebibyte = 1024 KiB = 1,048,576 bytes\n"
+" GiB = gibibyte = 1024 MiB = 1,073,741,824 bytes\n"
+" TiB = tebibyte = 1024 GiB = 1,099,511,627,776 bytes\n"
+" PiB = pebibyte = 1024 TiB = 1,125,899,906,842,624 bytes\n"
+" EiB = exbibyte = 1024 PiB = 1,152,921,504,606,846,976 bytes\n"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:614
+#, no-wrap
+msgid "3. FIELDS / Columns"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:617
+#, fuzzy, no-wrap
+#| msgid "DESCRIPTION "
+msgid "3a. DESCRIPTIONS of Fields"
+msgstr "OPIS "
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:623
+msgid ""
+"Listed below are \\*(We's available process fields (columns). They are "
+"shown in strict ascii alphabetical order. You may customize their position "
+"and whether or not they are displayable with the `f' (Fields Management) "
+"\\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:628
+msgid ""
+"Any field is selectable as the sort field, and you control whether they are "
+"sorted high-to-low or low-to-high. For additional information on sort "
+"provisions \\*(Xt 4c. TASK AREA Commands, SORTING."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:634
+msgid ""
+"The fields related to \\*(MP or \\*(MV reference `(KiB)' which is the "
+"unsuffixed display mode. Such fields may, however, be scaled from KiB "
+"through PiB. That scaling is influenced via the `e' \\*(CI or established "
+"for startup through a build option."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:635
+#, no-wrap
+msgid "B<%CPU \\*(Em \\*(PU Usage >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:639
+msgid ""
+"The task's share of the elapsed \\*(PU time since the last screen update, "
+"expressed as a percentage of total \\*(PU time."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:644
+msgid ""
+"In a true SMP environment, if a process is multi-threaded and \\*(We is "
+"I<not> operating in Threads mode, amounts greater than 100% may be "
+"reported. You toggle Threads mode with the `H' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:649
+msgid ""
+"Also for multi-processor environments, if Irix mode is \\*F, \\*(We will "
+"operate in Solaris mode where a task's \\*(Pu usage will be divided by the "
+"total number of \\*(PUs. You toggle Irix/Solaris modes with the `I' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:655
+msgid ""
+"\\*(NT When running in forest view mode (`V') with children collapsed (`v'), "
+"this field will also include the \\*(PU time of those unseen children. "
+"\\*(XT 4c. TASK AREA Commands, CONTENT for more information regarding the "
+"`V' and `v' toggles."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:656
+#, no-wrap
+msgid "B<%CUC \\*(Em \\*(PU Utilization >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:660
+msgid ""
+"This field is identical to %CUU below, except the percentage also reflects "
+"reaped child processes."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:661
+#, no-wrap
+msgid "B<%CUU \\*(Em \\*(PU Utilization >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:665
+msgid ""
+"A task's total \\*(PU usage divided by its elapsed running time, expressed "
+"as a percentage."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:670
+msgid ""
+"If a process currently displays high \\*(PU usage, this field can help "
+"determine if such behavior is normal. Conversely, if a process has low "
+"\\*(PU usage currently, %CUU may reflect historically higher demands over "
+"its lifetime."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:671
+#, no-wrap
+msgid "B<%MEM \\*(Em Memory Usage (RES) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:674
+msgid "A task's currently resident share of available \\*(MP."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:676 ../man/top.1:737 ../man/top.1:770 ../man/top.1:943
+#: ../man/top.1:1004 ../man/top.1:1057 ../man/top.1:1102 ../man/top.1:1122
+msgid "\\*(XX."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:677
+#, no-wrap
+msgid "B<AGID \\*(Em Autogroup Identifier >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:682
+msgid ""
+"The autogroup identifier associated with a process. This feature operates "
+"in conjunction with the CFS scheduler to improve interactive desktop "
+"performance."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:691
+msgid ""
+"When /proc/sys/kernel/sched_autogroup_enabled is set, a new autogroup is "
+"created with each new session (\\*(Xa SID). All subsequently forked "
+"processes in that session inherit membership in this autogroup. The kernel "
+"then attempts to equalize distribution of CPU cycles across such groups. "
+"Thus, an autogroup with many \\*(PU intensive processes (e.g make -j) will "
+"not dominate an autogroup with only one or two processes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:693
+msgid "When -1 is displayed it means this information is not available."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:694
+#, no-wrap
+msgid "B<AGNI \\*(Em Autogroup Nice Value >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:700
+msgid ""
+"The autogroup nice value which affects scheduling of all processes in that "
+"group. A negative nice value means higher priority, whereas a positive nice "
+"value means lower priority."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:701
+#, no-wrap
+msgid "B<CGNAME \\*(Em Control Group Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:705
+msgid ""
+"The name of the control group to which a process belongs, or `-' if not "
+"applicable for that process."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:709
+msgid ""
+"This will typically be the last entry in the full list of control groups as "
+"shown under the next heading (CGROUPS). And as is true there, this field is "
+"also variable width."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:710
+#, no-wrap
+msgid "B<CGROUPS \\*(Em Control Groups >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:714
+msgid ""
+"The names of the control group(s) to which a process belongs, or `-' if not "
+"applicable for that process."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:719
+msgid ""
+"Control Groups provide for allocating resources (cpu, memory, network "
+"bandwidth, etc.) among installation-defined groups of processes. They "
+"enable fine-grained control over allocating, denying, prioritizing, managing "
+"and monitoring those resources."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:723
+msgid ""
+"Many different hierarchies of cgroups can exist simultaneously on a system "
+"and each hierarchy is attached to one or more subsystems. A subsystem "
+"represents a single resource."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:730
+msgid ""
+"\\*(NT The CGROUPS field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters). Even so, such "
+"variable width fields could still suffer truncation. \\*(XT 5c. SCROLLING a "
+"Window for additional information on accessing any truncated data."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:731
+#, no-wrap
+msgid "B<CODE \\*(Em Code Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:735
+msgid ""
+"The amount of \\*(MP currently devoted to executable code, also known as the "
+"Text Resident Set size or TRS."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:738
+#, no-wrap
+msgid "B<COMMAND \\*(Em Command Name> or CommandB< Line >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:744
+msgid ""
+"Display the command line used to start a task or the name of the associated "
+"program. You toggle between commandI< line> andI< name> with `c', which is "
+"both a \\*(CO and an \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:749
+#, no-wrap
+msgid ""
+"When you've chosen to display command lines, processes without a command\n"
+"line (like kernel threads) will be shown with only the program name in\n"
+"brackets, as in this example:\n"
+" [kthreadd]\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:752
+msgid ""
+"This field may also be impacted by the forest view display mode. \\*(XC `V' "
+"\\*(CI for additional information regarding that mode."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:761
+msgid ""
+"\\*(NT The COMMAND field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters). Even so, such "
+"variable width fields could still suffer truncation. This is especially "
+"true for this field when command lines are being displayed (the `c' "
+"\\*(CI.) \\*(XT 5c. SCROLLING a Window for additional information on "
+"accessing any truncated data."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:762
+#, no-wrap
+msgid "B<DATA \\*(Em Data + Stack Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:768
+msgid ""
+"The amount of private memory I<reserved> by a process. It is also known as "
+"the Data Resident Set or DRS. Such memory may not yet be mapped to \\*(MP "
+"(RES) but will always be included in the \\*(MV (VIRT) amount."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:771
+#, no-wrap
+msgid "B<ELAPSED \\*(Em Elapsed Running Time>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:775
+msgid ""
+"The length of time since a process was started. Thus, the most recently "
+"started task will display the smallest time interval."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:780
+msgid ""
+"The value will be expressed as `HH,MM' (hours,minutes) but is subject to "
+"additional scaling if the interval becomes too great to fit column width. "
+"At that point it will be scaled to `DD+HH' (days+hours) and possibly beyond."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:781
+#, no-wrap
+msgid "B<ENVIRON \\*(Em Environment variables >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:787
+msgid ""
+"Display all of the environment variables, if any, as seen by the respective "
+"processes. These variables will be displayed in their raw native order, not "
+"the sorted order you are accustomed to seeing with an unqualified `set'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:795
+msgid ""
+"\\*(NT The ENVIRON field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters). Even so, such "
+"variable width fields could still suffer truncation. This is especially "
+"true for this field. \\*(XT 5c. SCROLLING a Window for additional "
+"information on accessing any truncated data."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:796
+#, no-wrap
+msgid "B<EXE \\*(Em Executable Path >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:800
+msgid ""
+"Where available, this is the full path to the executable, including the "
+"program name."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:804
+msgid ""
+"\\*(NT The EXE field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:805
+#, no-wrap
+msgid "B<Flags \\*(Em Task Flags >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:810
+msgid ""
+"This column represents the task's current scheduling flags which are "
+"expressed in hexadecimal notation and with zeros suppressed. These flags "
+"are officially documented in E<lt>linux/sched.hE<gt>."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:811
+#, no-wrap
+msgid "B<GID \\*(Em Group Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:814
+msgid "TheI< effective> group ID."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:815
+#, no-wrap
+msgid "B<GROUP \\*(Em Group Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:818
+msgid "TheI< effective> group name."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:819
+#, no-wrap
+msgid "B<LOGID \\*(Em Login User Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:823
+msgid ""
+"The user ID used atI< login>. When -1 is displayed it means this "
+"information is not available."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:824
+#, no-wrap
+msgid "B<LXC \\*(Em Lxc Container Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:828
+msgid ""
+"The name of the lxc container within which a task is running. If a process "
+"is not running inside a container, a dash (`-') will be shown."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:829
+#, no-wrap
+msgid "B<NI \\*(Em Nice Value >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:836
+msgid ""
+"The nice value of the task. A negative nice value means higher priority, "
+"whereas a positive nice value means lower priority. Zero in this field "
+"simply means priority will not be adjusted in determining a task's dispatch-"
+"ability."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:840
+msgid ""
+"\\*(NT This value only affects scheduling priority relative to other "
+"processes in the same autogroup. \\*(XC `AGID' and `AGNI' fields for "
+"additional information on autogroups."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:841
+#, no-wrap
+msgid "B<NU \\*(Em Last known NUMA node >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:845
+msgid ""
+"A number representing the NUMA node associated with the last used processor "
+"(`P'). When -1 is displayed it means that NUMA information is not available."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:847
+msgid ""
+"\\*(XC `2' and `3' \\*(CIs for additional NUMA provisions affecting the "
+"\\*(SA."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:848
+#, no-wrap
+msgid "B<OOMa \\*(Em Out of Memory Adjustment Factor >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:853
+msgid ""
+"The value, ranging from -1000 to +1000, added to the current out of memory "
+"score (OOMs) which is then used to determine which task to kill when memory "
+"is exhausted."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:854
+#, no-wrap
+msgid "B<OOMs \\*(Em Out of Memory Score >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:859
+msgid ""
+"The value, ranging from 0 to +1000, used to select task(s) to kill when "
+"memory is exhausted. Zero translates to `never kill' whereas 1000 means "
+"`always kill'."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:860
+#, no-wrap
+msgid "B<P \\*(Em Last used \\*(PU (SMP) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:868
+msgid ""
+"A number representing the last used processor. In a true SMP environment "
+"this will likely change frequently since the kernel intentionally uses weak "
+"affinity. Also, the very act of running \\*(We may break this weak affinity "
+"and cause more processes to change \\*(PUs more often (because of the extra "
+"demand for \\*(Pu time)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:869
+#, no-wrap
+msgid "B<PGRP \\*(Em Process Group Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:878
+msgid ""
+"Every process is member of a unique process group which is used for "
+"distribution of signals and by terminals to arbitrate requests for their "
+"input and output. When a process is created (forked), it becomes a member "
+"of the process group of its parent. By convention, this value equals the "
+"process ID (\\*(Xa PID) of the first member of a process group, called the "
+"process group leader."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:879
+#, no-wrap
+msgid "B<PID \\*(Em Process Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:884
+msgid ""
+"The task's unique process ID, which periodically wraps, though never "
+"restarting at zero. In kernel terms, it is a dispatchable entity defined by "
+"a task_struct."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:889
+msgid ""
+"This value may also be used as: a process group ID (\\*(Xa PGRP); a session "
+"ID for the session leader (\\*(Xa SID); a thread group ID for the thread "
+"group leader (\\*(Xa TGID); and a TTY process group ID for the process group "
+"leader (\\*(Xa TPGID)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:890
+#, no-wrap
+msgid "B<PPID \\*(Em Parent Process Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:893
+msgid "The process ID (pid) of a task's parent."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:894
+#, no-wrap
+msgid "B<PR \\*(Em Priority >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:899
+msgid ""
+"The scheduling priority of the task. If you see `rt' in this field, it "
+"means the task is running under real time scheduling priority."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:903
+msgid ""
+"Under linux, real time priority is somewhat misleading since traditionally "
+"the operating itself was not preemptible. And while the 2.6 kernel can be "
+"made mostly preemptible, it is not always so."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:904
+#, no-wrap
+msgid "B<PSS \\*(Em Proportional Resident Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:909
+msgid ""
+"The proportion of this task's share of `RSS' where each page is divided by "
+"the number of processes sharing it. It is also the sum of the `PSan', "
+"`PSfd' and `PSsh' fields."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:912
+msgid ""
+"For example, if a process has 1000 resident pages alone and 1000 resident "
+"pages shared with another process, its `PSS' would be 1500 (times page size)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:914 ../man/top.1:927 ../man/top.1:951 ../man/top.1:1114
+msgid "\\*(ZX."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:917
+msgid "B<PSan \\*(Em Proportional Anonymous Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:919
+msgid "B<PSfd \\*(Em Proportional File Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:921
+msgid "B<PSsh \\*(Em Proportional Shmem Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:925
+msgid ""
+"As was true for `PSS' above (total proportional resident memory), these "
+"fields represent the proportion of this task's share of each type of memory "
+"divided by the number of processes sharing it."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:929
+#, no-wrap
+msgid "B<RES \\*(Em Resident Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:934
+msgid ""
+"A subset of the virtual address space (VIRT) representing the non-swapped "
+"\\*(MP a task is currently using. It is also the sum of the `RSan', `RSfd' "
+"and `RSsh' fields."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:938
+msgid ""
+"It can include private anonymous pages, private pages mapped to files "
+"(including program images and shared libraries) plus shared anonymous "
+"pages. All such memory is backed by the \\*(MS represented separately under "
+"SWAP."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:941
+msgid ""
+"Lastly, this field may also include shared file-backed pages which, when "
+"modified, act as a dedicated \\*(MS and thus will never impact SWAP."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:944
+#, no-wrap
+msgid "B<RSS \\*(Em Resident Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:949
+msgid ""
+"Another, more precise view of process non-swapped \\*(MP. It is obtained "
+"from the `smaps_rollup' file and is generally slightly larger than that "
+"shown for `RES'."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:952
+#, no-wrap
+msgid "B<RSan \\*(Em Resident Anonymous Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:956
+msgid ""
+"A subset of resident memory (RES) representing private pages not mapped to a "
+"file."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:957
+#, no-wrap
+msgid "B<RSfd \\*(Em Resident File-Backed Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:962
+msgid ""
+"A subset of resident memory (RES) representing the implicitly shared pages "
+"supporting program images and shared libraries. It also includes explicit "
+"file mappings, both private and shared."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:963
+#, no-wrap
+msgid "B<RSlk \\*(Em Resident Locked Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:966
+msgid "A subset of resident memory (RES) which cannot be swapped out."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:967
+#, no-wrap
+msgid "B<RSsh \\*(Em Resident Shared Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:971
+msgid ""
+"A subset of resident memory (RES) representing the explicitly shared "
+"anonymous shm*/mmap pages."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:972
+#, no-wrap
+msgid "B<RUID \\*(Em Real User Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:975
+msgid "TheI< real> user ID."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:976
+#, no-wrap
+msgid "B<RUSER \\*(Em Real User Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:979
+msgid "TheI< real> user name."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:980
+#, no-wrap
+msgid "B<S \\*(Em Process Status >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:990
+#, no-wrap
+msgid ""
+"The status of the task which can be one of:\n"
+" B<D> = uninterruptible sleep\n"
+" B<I> = idle\n"
+" B<R> = running\n"
+" B<S> = sleeping\n"
+" B<T> = stopped by job control signal\n"
+" B<t> = stopped by debugger during trace\n"
+" B<Z> = zombie\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:995
+msgid ""
+"Tasks shown as running should be more properly thought of as ready to run "
+"\\*(Em their task_struct is simply represented on the Linux run-queue. Even "
+"without a true SMP machine, you may see numerous tasks in this state "
+"depending on \\*(We's delay interval and nice value."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:996
+#, no-wrap
+msgid "B<SHR \\*(Em Shared Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1002
+msgid ""
+"A subset of resident memory (RES) that may be used by other processes. It "
+"will include shared anonymous pages and shared file-backed pages. It also "
+"includes private pages mapped to files representing program images and "
+"shared libraries."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1005
+#, no-wrap
+msgid "B<SID \\*(Em Session Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1013
+msgid ""
+"A session is a collection of process groups (\\*(Xa PGRP), usually "
+"established by the login shell. A newly forked process joins the session of "
+"its creator. By convention, this value equals the process ID (\\*(Xa PID) "
+"of the first member of the session, called the session leader, which is "
+"usually the login shell."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1014
+#, no-wrap
+msgid "B<STARTED \\*(Em Start Time Interval>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1018
+msgid ""
+"The length of time since system boot when a process started. Thus, the most "
+"recently started task will display the largest time interval."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1022
+msgid ""
+"The value will be expressed as `MM:SS' (minutes:seconds). But if the "
+"interval is too great to fit column width it will be scaled as `HH,"
+"MM' (hours,minutes) and possibly beyond."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1023
+#, no-wrap
+msgid "B<SUID \\*(Em Saved User Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1026
+msgid "TheI< saved> user ID."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1027
+#, no-wrap
+msgid "B<SUPGIDS \\*(Em Supplementary Group IDs >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1032
+msgid ""
+"The IDs of any supplementary group(s) established at login or inherited from "
+"a task's parent. They are displayed in a comma delimited list."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1036
+msgid ""
+"\\*(NT The SUPGIDS field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1037
+#, no-wrap
+msgid "B<SUPGRPS \\*(Em Supplementary Group Names >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1042
+msgid ""
+"The names of any supplementary group(s) established at login or inherited "
+"from a task's parent. They are displayed in a comma delimited list."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1046
+msgid ""
+"\\*(NT The SUPGRPS field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1047
+#, no-wrap
+msgid "B<SUSER \\*(Em Saved User Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1050
+msgid "TheI< saved> user name."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1051
+#, no-wrap
+msgid "B<SWAP \\*(Em Swapped Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1055
+msgid ""
+"The formerly resident portion of a task's address space written to the "
+"\\*(MS when \\*(MP becomes over committed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1058
+#, no-wrap
+msgid "B<TGID \\*(Em Thread Group Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1063
+msgid ""
+"The ID of the thread group to which a task belongs. It is the PID of the "
+"thread group leader. In kernel terms, it represents those tasks that share "
+"an mm_struct."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1064
+#, no-wrap
+msgid "B<TIME \\*(Em \\*(PU Time >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1071
+msgid ""
+"Total \\*(PU time the task has used since it started. When Cumulative mode "
+"is \\*O, each process is listed with the \\*(Pu time that it and its dead "
+"children have used. You toggle Cumulative mode with `S', which is both a "
+"\\*(CO and an \\*(CI. \\*(XC `S' \\*(CI for additional information "
+"regarding this mode."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1072
+#, no-wrap
+msgid "B<TIME+ \\*(Em \\*(PU Time, hundredths >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1076
+msgid ""
+"The same as TIME, but reflecting more granularity through hundredths of a "
+"second."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1077
+#, no-wrap
+msgid "B<TPGID \\*(Em Tty Process Group Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1083
+msgid ""
+"The process group ID of the foreground process for the connected tty, or -1 "
+"if a process is not connected to a terminal. By convention, this value "
+"equals the process ID (\\*(Xa PID) of the process group leader (\\*(Xa PGRP)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1084
+#, no-wrap
+msgid "B<TTY \\*(Em Controlling Tty >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1091
+msgid ""
+"The name of the controlling terminal. This is usually the device (serial "
+"port, pty, etc.) from which the process was started, and which it uses for "
+"input or output. However, a task need not be associated with a terminal, in "
+"which case you'll see `?' displayed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1092
+#, no-wrap
+msgid "B<UID \\*(Em User Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1095
+msgid "TheI< effective> user ID of the task's owner."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1096
+#, no-wrap
+msgid "B<USED \\*(Em Memory in Use (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1100
+msgid ""
+"This field represents the non-swapped \\*(MP a task is using (RES) plus the "
+"swapped out portion of its address space (SWAP)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1103
+#, no-wrap
+msgid "B<USER \\*(Em User Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1106
+msgid "TheI< effective> user name of the task's owner."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1107
+#, no-wrap
+msgid "B<USS \\*(Em Unique Set Size >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1112
+msgid ""
+"The non-swapped portion of \\*(MP (`RSS') not shared with any other "
+"process. It is derived from the `smaps_rollup' file."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1115
+#, no-wrap
+msgid "B<VIRT \\*(Em Virtual Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1120
+msgid ""
+"The total amount of \\*(MV used by the task. It includes all code, data and "
+"shared libraries plus pages that have been swapped out and pages that have "
+"been mapped but not used."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1123
+#, no-wrap
+msgid "B<WCHAN \\*(Em Sleeping in Function >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1128
+msgid ""
+"This field will show the name of the kernel function in which the task is "
+"currently sleeping. Running tasks will display a dash (`-') in this column."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1129
+#, no-wrap
+msgid "B<ioR \\*(Em I/O Bytes Read >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1132
+msgid ""
+"The number of bytes a process caused to be fetched from the storage layer."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1134
+msgid "Root privileges are required to display `io' data for other users."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1135
+#, no-wrap
+msgid "B<ioRop \\*(Em I/O Read Operations >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1139
+msgid ""
+"The number of read I/O operations (syscalls) for a process. Such calls "
+"might not result in actual physical disk I/O."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1140
+#, no-wrap
+msgid "B<ioW \\*(Em I/O Bytes Written >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1143
+msgid "The number of bytes a process caused to be sent to the storage layer."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1144
+#, no-wrap
+msgid "B<ioWop \\*(Em I/O Write Operations >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1148
+msgid ""
+"The number of write I/O operations (syscalls) for a process. Such calls "
+"might not result in actual physical disk I/O."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1149
+#, no-wrap
+msgid "B<nDRT \\*(Em Dirty Pages Count >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1155
+msgid ""
+"The number of pages that have been modified since they were last written to "
+"\\*(AS. Dirty pages must be written to \\*(AS before the corresponding "
+"physical memory location can be used for some other virtual page."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1157
+msgid "This field was deprecated with linux 2.6 and is always zero."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1158
+#, no-wrap
+msgid "B<nMaj \\*(Em Major Page Fault Count >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1165
+msgid ""
+"The number ofB< major> page faults that have occurred for a task. A page "
+"fault occurs when a process attempts to read from or write to a virtual page "
+"that is not currently present in its address space. A major page fault is "
+"when \\*(AS access is involved in making that page available."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1166
+#, no-wrap
+msgid "B<nMin \\*(Em Minor Page Fault count >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1173
+msgid ""
+"The number ofB< minor> page faults that have occurred for a task. A page "
+"fault occurs when a process attempts to read from or write to a virtual page "
+"that is not currently present in its address space. A minor page fault does "
+"not involve \\*(AS access in making that page available."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1174
+#, no-wrap
+msgid "B<nTH \\*(Em Number of Threads >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1177
+msgid "The number of threads associated with a process."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1178
+#, no-wrap
+msgid "B<nsCGROUP \\*(Em CGROUP namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1182
+msgid ""
+"The Inode of the namespace used to hide the identity of the control group of "
+"which process is a member."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1183
+#, no-wrap
+msgid "B<nsIPC \\*(Em IPC namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1187
+msgid ""
+"The Inode of the namespace used to isolate interprocess communication (IPC) "
+"resources such as System V IPC objects and POSIX message queues."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1188
+#, no-wrap
+msgid "B<nsMNT \\*(Em MNT namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1192
+msgid ""
+"The Inode of the namespace used to isolate filesystem mount points thus "
+"offering different views of the filesystem hierarchy."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1193
+#, no-wrap
+msgid "B<nsNET \\*(Em NET namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1197
+msgid ""
+"The Inode of the namespace used to isolate resources such as network "
+"devices, IP addresses, IP routing, port numbers, etc."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1198
+#, no-wrap
+msgid "B<nsPID \\*(Em PID namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1204
+msgid ""
+"The Inode of the namespace used to isolate process ID numbers meaning they "
+"need not remain unique. Thus, each such namespace could have its own `init/"
+"systemd' (PID #1) to manage various initialization tasks and reap orphaned "
+"child processes."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1205
+#, no-wrap
+msgid "B<nsTIME \\*(Em TIME namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1209
+msgid ""
+"The Inode of the namespace which allows processes to see different system "
+"times in a way similar to the UTS namespace."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1210
+#, no-wrap
+msgid "B<nsUSER \\*(Em USER namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1216
+msgid ""
+"The Inode of the namespace used to isolate the user and group ID numbers. "
+"Thus, a process could have a normal unprivileged user ID outside a user "
+"namespace while having a user ID of 0, with full root privileges, inside "
+"that namespace."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1217
+#, no-wrap
+msgid "B<nsUTS \\*(Em UTS namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1221
+msgid ""
+"The Inode of the namespace used to isolate hostname and NIS domain name. "
+"UTS simply means \"UNIX Time-sharing System\"."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1222
+#, no-wrap
+msgid "B<vMj \\*(Em Major Page Fault Count Delta>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1226
+msgid ""
+"The number ofB< major> page faults that have occurred since the last update "
+"(see nMaj)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1227
+#, no-wrap
+msgid "B<vMn \\*(Em Minor Page Fault Count Delta>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1231
+msgid ""
+"The number ofB< minor> page faults that have occurred since the last update "
+"(see nMin)."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1233
+#, no-wrap
+msgid "3b. MANAGING Fields"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1240
+msgid ""
+"After pressing the \\*(CI `f' (Fields Management) you will be presented with "
+"a screen showing: 1) the \\*(CW name; 2) the designated sort field; 3) all "
+"fields in their current order along with descriptions. Entries marked with "
+"an asterisk are the currently displayed fields, screen width permitting."
+msgstr ""
+
+#. type: IP
+#: ../man/top.1:1242 ../man/top.1:1248 ../man/top.1:1253 ../man/top.1:1257
+#: ../man/top.1:1262 ../man/top.1:2687 ../man/top.1:2710 ../man/top.1:2719
+#: ../man/top.1:2735 ../man/top.1:2741 ../man/top.1:2747 ../man/top.1:2757
+#: ../man/top.1:2774
+#, no-wrap
+msgid "\\(bu"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1247
+msgid ""
+"As the on screen instructions indicate, you navigate among the fields with "
+"theB< Up> andB< Down> \\*(KAs. The PgUp, PgDn, Home and End keys can also "
+"be used to quickly reach the first or last available field."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1252
+msgid ""
+"TheB< Right> \\*(KA selects a field for repositioning and theB< Left> \\*(KA "
+"or the E<lt>B<Enter>E<gt> key commits that field's placement."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1256
+msgid ""
+"The `B<d>' key or the E<lt>B<Space>E<gt> bar toggles a field's display "
+"status, and thus the presence or absence of the asterisk."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1261
+msgid ""
+"The `B<s>' key designates a field as the sort field. \\*(XT 4c. TASK AREA "
+"Commands, SORTING for additional information regarding your selection of a "
+"sort field."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1265
+msgid ""
+"The `B<a>' and `B<w>' keys can be used to cycle through all available "
+"windows and the `B<q>' or E<lt>B<Esc>E<gt> keys exit Fields Management."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1274
+msgid ""
+"The Fields Management screen can also be used to change the \\*(CG in either "
+"\\*(FM or \\*(AM. Whatever was targeted when `q' or E<lt>EscE<gt> was "
+"pressed will be made current as you return to the \\*(We display. \\*(XT 5. "
+"ALTERNATE-DISPLAY Provisions and the `g' \\*(CI for insight into \\*(CWs and "
+"\\*(FGs."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1281
+msgid ""
+"\\*(NT Any window that has been scrolledI< horizontally> will be reset if "
+"any field changes are made via the Fields Management screen. AnyI< "
+"vertical> scrolled position, however, will not be affected. \\*(XT 5c. "
+"SCROLLING a Window for additional information regarding vertical and "
+"horizontal scrolling."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:1283
+#, no-wrap
+msgid "4. INTERACTIVE Commands"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1288
+msgid ""
+"Listed below is a brief index of commands within categories. Some commands "
+"appear more than once \\*(Em their meaning or scope may vary depending on "
+"the context in which they are issued."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1311
+#, no-wrap
+msgid ""
+" 4a.I< Global-Commands >\n"
+" E<lt>Ent/SpE<gt> ?, =, 0,\n"
+" A, B, d, E, e, g, H, h, I, k, q, r, s, W, X, Y, Z,\n"
+" ^G, ^K, ^N, ^P, ^U, ^L, ^R\n"
+" 4b.I< Summary-Area-Commands >\n"
+" C, l, t, m, 1, 2, 3, 4, 5, !\n"
+" 4c.I< Task-Area-Commands >\n"
+" Appearance: b, J, j, x, y, z\n"
+" Content: c, F, f, O, o, S, U, u, V, v, ^E\n"
+" Size: #, i, n\n"
+" Sorting: E<lt>, E<gt>, f, R\n"
+" 4d.I< Color-Mapping >\n"
+" E<lt>RetE<gt>, a, B, b, H, M, q, S, T, w, z, 0 - 7\n"
+" 5b.I< Commands-for-Windows >\n"
+" -, _, =, +, A, a, G, g, w\n"
+" 5c.I< Scrolling-a-Window >\n"
+" C, Up, Dn, Left, Right, PgUp, PgDn, Home, End\n"
+" 5d.I< Searching-in-a-Window >\n"
+" L, &\n"
+" 5e.I< Filtering-in-a-Window\n"
+" O, o, ^O, =, +>\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1314
+#, no-wrap
+msgid "4a. GLOBAL Commands"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1319
+msgid ""
+"The global \\*(CIs areB< always> available in both \\*(FM and \\*(AM. "
+"However, some of these \\*(CIs areB< not available> when running in Secure "
+"mode."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1323
+msgid ""
+"If you wish to know in advance whether or not your \\*(We has been secured, "
+"simply ask for help and view the system summary on the second line."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1324
+#, no-wrap
+msgid "\\ \\ E<lt>B<Enter>E<gt> or E<lt>B<Space>E<gt>\\ \\ :I<Refresh-Display >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1329
+msgid ""
+"These commands awaken \\*(We and following receipt of any input the entire "
+"display will be repainted. They also force an update of any hotplugged "
+"\\*(Pu or \\*(MP changes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1332
+msgid ""
+"Use either of these keys if you have a large delay interval and wish to see "
+"current status,"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1333
+#, no-wrap
+msgid "\\ \\ \\ B<?> | B<h>\\ \\ :I<Help >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1338
+msgid ""
+"There are two help levels available. The first will provide a reminder of "
+"all the basic \\*(CIs. If \\*(We isI< secured>, that screen will be "
+"abbreviated."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1341
+msgid ""
+"Typing `h' or `?' on that help screen will take you to help for those "
+"\\*(CIs applicable to \\*(AM."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1342
+#, no-wrap
+msgid "\\ \\ \\ B<=>\\ \\ :I<Exit-Display-Limits >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1349
+msgid ""
+"Removes restrictions on what is shown. This command will reverse any "
+"`i' (idle tasks), `n' (max tasks), `v' (hide children) and `F' focus "
+"commands that might be active. It also provides for an exit from PID "
+"monitoring, User filtering, Other filtering, Locate processing and Combine "
+"Cpus mode."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1352
+msgid ""
+"Additionally, if the window has been scrolled it will be reset with this "
+"command."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1353
+#, no-wrap
+msgid "\\ \\ \\ B<0>\\ \\ :I<Zero-Suppress> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1358
+msgid ""
+"This command determines whether zeros are shown or suppressed for many of "
+"the fields in a \\*(TW. Fields like UID, GID, NI, PR or P are not affected "
+"by this toggle."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1359
+#, no-wrap
+msgid "\\ \\ \\ B<A>\\ \\ :I<Alternate-Display-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1364
+msgid ""
+"This command will switch between \\*(FM and \\*(AM. \\*(XT 5. ALTERNATE-"
+"DISPLAY Provisions and the `g' \\*(CI for insight into \\*(CWs and \\*(FGs."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1365
+#, no-wrap
+msgid "\\ \\ \\ B<B>\\ \\ :I<Bold-Disable/Enable> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1371
+msgid ""
+"This command will influence use of the bold terminfo capability and altersB< "
+"both> the \\*(SA and \\*(TA for the \\*(CW. While it is intended primarily "
+"for use with dumb terminals, it can be applied anytime."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1376
+msgid ""
+"\\*(NT When this toggle is \\*O and \\*(We is operating in monochrome mode, "
+"theB< entire display> will appear as normal text. Thus, unless the `x' and/"
+"or `y' toggles are using reverse for emphasis, there will be no visual "
+"confirmation that they are even on."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1377
+#, no-wrap
+msgid "*\\ \\ B<d> | B<s>\\ \\ :I<Change-Delay-Time-interval >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1381
+msgid ""
+"You will be prompted to enter the delay time, in seconds, between display "
+"updates."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1387
+msgid ""
+"Fractional seconds are honored, but a negative number is not allowed. "
+"Entering 0 causes (nearly) continuous updates, with an unsatisfactory "
+"display as the system and tty driver try to keep up with \\*(We's demands. "
+"The delay value is inversely proportional to system loading, so set it with "
+"care."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1390
+msgid ""
+"If at any time you wish to know the current delay time, simply ask for help "
+"and view the system summary on the second line."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1391
+#, no-wrap
+msgid "\\ \\ \\ B<E>\\ \\ :I<Enforce-Summary-Memory-Scale> in Summary Area"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1396
+msgid ""
+"With this command you can cycle through the available \\*(SA memory scaling "
+"which ranges from KiB (kibibytes or 1,024 bytes) through EiB (exbibytes or "
+"1,152,921,504,606,846,976 bytes)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1400
+msgid ""
+"If you see a `+' between a displayed number and the following label, it "
+"means that \\*(We was forced to truncate some portion of that number. By "
+"raising the scaling factor, such truncation can be avoided."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1401
+#, no-wrap
+msgid "\\ \\ \\ B<e>\\ \\ :I<Enforce-Task-Memory-Scale> in Task Area"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1406
+msgid ""
+"With this command you can cycle through the available \\*(TA memory scaling "
+"which ranges from KiB (kibibytes or 1,024 bytes) through PiB (pebibytes or "
+"1,125,899,906,842,624 bytes)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1413
+msgid ""
+"While \\*(We will try to honor the selected target range, additional scaling "
+"might still be necessary in order to accommodate current values. If you "
+"wish to see a more homogeneous result in the memory columns, raising the "
+"scaling range will usually accomplish that goal. Raising it too high, "
+"however, is likely to produce an all zero result which cannot be suppressed "
+"with the `0' \\*(CI."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1414
+#, no-wrap
+msgid "\\ \\ \\ B<g>\\ \\ :I<Choose-Another-Window/Field-Group >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1420
+msgid ""
+"You will be prompted to enter a number between 1 and 4 designating the "
+"\\*(FG which should be made the \\*(CW. You will soon grow comfortable with "
+"these 4 windows, especially after experimenting with \\*(AM."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1421
+#, no-wrap
+msgid "\\ \\ \\ B<H>\\ \\ :I<Threads-mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1426
+msgid ""
+"When this toggle is \\*O, individual threads will be displayed for all "
+"processes in all visible \\*(TWs. Otherwise, \\*(We displays a summation of "
+"all threads in each process."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1427
+#, no-wrap
+msgid "\\ \\ \\ B<I>\\ \\ :I<Irix/Solaris-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1432
+msgid ""
+"When operating in Solaris mode (`I' toggled \\*F), a task's \\*(Pu usage "
+"will be divided by the total number of \\*(PUs. After issuing this command, "
+"you'll be told the new state of this toggle."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1433
+#, no-wrap
+msgid "*\\ \\ B<k>\\ \\ :I<Kill-a-task >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1436
+msgid "You will be prompted for a PID and then the signal to send."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1440 ../man/top.1:1462
+msgid ""
+"Entering no PID or a negative number will be interpreted as the default "
+"shown in the prompt (the first task displayed). A PID value of zero means "
+"the \\*(We program itself."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1443
+msgid ""
+"The default signal, as reflected in the prompt, is SIGTERM. However, you "
+"can send any signal, via number or name."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1446
+msgid ""
+"If you wish to abort the kill process, do one of the following depending on "
+"your progress:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1450
+#, no-wrap
+msgid ""
+" 1) at the pid prompt, type an invalid number\n"
+" 2) at the signal prompt, type 0 (or any invalid signal)\n"
+" 3) at any prompt, type E<lt>EscE<gt>\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1452
+#, no-wrap
+msgid "\\ \\ \\ B<q>\\ \\ :I<Quit >"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1455
+#, no-wrap
+msgid "*\\ \\ B<r>\\ \\ :I<Renice-a-Task >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1458
+msgid "You will be prompted for a PID and then the value to nice it to."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1468
+msgid ""
+"A positive nice value will cause a process to lose priority. Conversely, a "
+"negative nice value will cause a process to be viewed more favorably by the "
+"kernel. As a general rule, ordinary users can only increase the nice value "
+"and are prevented from lowering it."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1471
+msgid ""
+"If you wish to abort the renice process, do one of the following depending "
+"on your progress:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1475
+#, no-wrap
+msgid ""
+" 1) at the pid prompt, type an invalid number\n"
+" 2) at the nice prompt, type E<lt>EnterE<gt> with no input\n"
+" 3) at any prompt, type E<lt>EscE<gt>\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1477
+#, no-wrap
+msgid "\\ \\ \\ B<W>\\ \\ :I<Write-the-Configuration-File >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1483
+msgid ""
+"This will save all of your options and toggles plus the current display mode "
+"and delay time. By issuing this command just before quitting \\*(We, you "
+"will be able restart later in exactly that same state."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1484
+#, no-wrap
+msgid "\\ \\ \\ B<X>\\ \\ :I<Extra-Fixed-Width >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1489
+msgid ""
+"Some fields are fixed width and not scalable. As such, they are subject to "
+"truncation which would be indicated by a `+' in the last position."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1491
+msgid "This \\*(CI can be used to alter the widths of the following fields:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1503
+#, no-wrap
+msgid ""
+" I< field default field default field default >\n"
+" GID 5 GROUP 8 WCHAN 10\n"
+" LOGID 5 LXC 8 nsCGROUP 10\n"
+" RUID 5 RUSER 8 nsIPC 10\n"
+" SUID 5 SUSER 8 nsMNT 10\n"
+" UID 5 TTY 8 nsNET 10\n"
+" USER 8 nsPID 10\n"
+" nsTIME 10\n"
+" nsUSER 10\n"
+" nsUTS 10\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1508
+msgid ""
+"You will be prompted for the amount to be added to the default widths shown "
+"above. Entering zero forces a return to those defaults."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1511
+msgid ""
+"If you enter a negative number, \\*(We will automatically increase the "
+"column size as needed until there is no more truncated data."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1515
+msgid ""
+"\\*(NT Whether explicitly or automatically increased, the widths for these "
+"fields are never decreased by \\*(We. To narrow them you must specify a "
+"smaller number or restore the defaults."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1516
+#, no-wrap
+msgid "\\ \\ \\ B<Y>\\ \\ :I<Inspect-Other-Output >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1522
+msgid ""
+"After issuing the `Y' \\*(CI, you will be prompted for a target PID. Typing "
+"a value or accepting the default results in a separate screen. That screen "
+"can be used to view a variety of files or piped command output while the "
+"normal \\*(We iterative display is paused."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1526
+msgid ""
+"\\*(NT This \\*(CI is only fully realized when supporting entries have been "
+"manually added to the end of the \\*(We \\*(CF. For details on creating "
+"those entries, \\*(Xt 6b. ADDING INSPECT Entries."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1533
+msgid ""
+"Most of the keys used to navigate the Inspect feature are reflected in its "
+"header prologue. There are, however, additional keys available once you "
+"have selected a particular file or command. They are familiar to anyone who "
+"has used the pager `less' and are summarized here for future reference."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1543
+#, no-wrap
+msgid ""
+" I< key function >\n"
+" = alternate status-line, file or pipeline\n"
+" / find, equivalent to `L' locate\n"
+" n find next, equivalent to `&' locate next\n"
+" E<lt>SpaceE<gt> scroll down, equivalent to E<lt>PgDnE<gt>\n"
+" b scroll up, equivalent to E<lt>PgUpE<gt>\n"
+" g first line, equivalent to E<lt>HomeE<gt>\n"
+" G last line, equivalent to E<lt>EndE<gt>\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1545
+#, no-wrap
+msgid "\\ \\ \\ B<Z>\\ \\ :I<Change-Color-Mapping >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1550
+msgid ""
+"This key will take you to a separate screen where you can change the colors "
+"for the \\*(CW, or for all windows. For details regarding this \\*(CI "
+"\\*(Xt 4d. COLOR Mapping."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1553
+msgid "\\ \\ B<^G>\\ \\ :I<Display-Control-Groups > (Ctrl key + `g')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1555
+msgid "\\ \\ B<^K>\\ \\ :I<Display-Cmdline > (Ctrl key + `k')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1557
+msgid "\\ \\ B<^N>\\ \\ :I<Display-Environment > (Ctrl key + `n')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1559
+msgid "\\ \\ B<^P>\\ \\ :I<Display-Namesspaces > (Ctrl key + `p')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1561
+msgid "\\ \\ B<^U>\\ \\ :I<Display-Supplementary-Groups > (Ctrl key + `u')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1567
+msgid ""
+"Applied to the first process displayed, these commands will show that task's "
+"full (potentially wrapped) information. Such data will be displayed in a "
+"separate window at the bottom of the screen while normal \\*(We monitoring "
+"continues."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1572
+msgid ""
+"Keying theI< same> `Ctrl' command a second time removes that separate window "
+"as does the `=' command. Keying a different `Ctrl' combination, while one "
+"is already active, immediately transitions to the new information."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1577
+msgid ""
+"Notable among these provisions is the Ctrl+N (environment) command. Its "
+"output can be extensive and not easily read when line wrapped. A more "
+"readable version can be achieved with an `Inspect' entry in the rcfile like "
+"the following."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1580
+#, no-wrap
+msgid " pipe ^I Environment ^I cat /proc/%d/environ | tr '\\e0' '\\en'\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1584
+msgid ""
+"\\*(XC `Y' \\*(CI above and topic 6b. ADDING INSPECT Entries for additional "
+"information."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1588
+msgid ""
+"As an alternative to `Inspect', and available to all of these `Ctrl' "
+"commands, the tab key can be used to highlight individual elements in the "
+"bottom window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1590
+#, no-wrap
+msgid "\\ \\ B<^L>\\ \\ :I<Logged-Messages > (Ctrl key + `l')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1596
+msgid ""
+"The 10 most recent messages are displayed in a separate window at the bottom "
+"of the screen while normal \\*(We monitoring continues. Keying `^L' a "
+"second time removes that window as does the `=' command. Use the tab key to "
+"highlight individual messages."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1597
+#, no-wrap
+msgid "*\\ B<^R>\\ \\ :I<Renice-an-Autogroup > (Ctrl key + `r')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1601
+msgid ""
+"You will be prompted for a PID and then the value for its autogroup AGNI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1604
+msgid ""
+"Entering no PID will be interpreted as the default shown in the prompt (the "
+"first task displayed)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1610
+msgid ""
+"A positive AGNI value will cause processes in that autogroup to lose "
+"priority. Conversely, a negative value causes them to be viewed more "
+"favorably by the kernel. Ordinary users are not allowed to set negative "
+"AGNI values."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1612
+msgid "If you wish to abort the renice process type E<lt>EscE<gt>."
+msgstr ""
+
+#. type: IP
+#: ../man/top.1:1613 ../man/top.1:2134
+#, no-wrap
+msgid "*"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1616
+msgid ""
+"The commands shown with an \\*(AK are not available in Secure mode, nor will "
+"they be shown on the level-1 help screen."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1618
+#, no-wrap
+msgid "4b. SUMMARY AREA Commands"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1623
+msgid ""
+"The \\*(SA \\*(CIs areB< always available> in both \\*(FM and \\*(AM. They "
+"affect the beginning lines of your display and will determine the position "
+"of messages and prompts."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1627
+msgid ""
+"These commands always impact just the \\*(CG. \\*(XT 5. ALTERNATE-DISPLAY "
+"Provisions and the `g' \\*(CI for insight into \\*(CWs and \\*(FGs."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1628
+#, no-wrap
+msgid "\\ \\ \\ B<C>\\ \\ :I<Show-scroll-coordinates> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1633
+msgid ""
+"Toggle an informational message which is displayed whenever the message line "
+"is not otherwise being used. For additional information \\*(Xt 5c. "
+"SCROLLING a Window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1634
+#, no-wrap
+msgid "\\ \\ \\ B<l>\\ \\ :I<Load-Average/Uptime> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1638
+msgid ""
+"This is also the line containing the program name (possibly an alias) when "
+"operating in \\*(FM or the \\*(CW name when operating in \\*(AM."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1639
+#, no-wrap
+msgid "\\ \\ \\ B<t>\\ \\ :I<Task/Cpu-States> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1644
+msgid ""
+"This command affects from 2 to many \\*(SA lines, depending on the state of "
+"the `1', `2' or `3' \\*(CTs and whether or not \\*(We is running under true "
+"SMP."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1647
+msgid ""
+"This portion of the \\*(SA is also influenced by the `H' \\*(CI toggle, as "
+"reflected in the total label which shows either Tasks or Threads."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1649 ../man/top.1:1666
+msgid "This command serves as a 4-way toggle, cycling through these modes:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1654
+#, no-wrap
+msgid ""
+" 1. detailed percentages by category\n"
+" 2. abbreviated user/system and total % + bar graph\n"
+" 3. abbreviated user/system and total % + block graph\n"
+" 4. turn off task and cpu states display\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1659
+msgid ""
+"When operating in either of the graphic modes, the display becomes much more "
+"meaningful when individual CPUs or NUMA nodes are also displayed. \\*(XC "
+"the `1', `2' and `3' commands below for additional information."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1660
+#, no-wrap
+msgid "\\ \\ \\ B<m>\\ \\ :I<Memory/Swap-Usage> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1664
+msgid ""
+"This command affects the two \\*(SA lines dealing with physical and virtual "
+"memory."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1671
+#, no-wrap
+msgid ""
+" 1. detailed percentages by memory type\n"
+" 2. abbreviated % used/total available + bar graph\n"
+" 3. abbreviated % used/total available + block graph\n"
+" 4. turn off memory display\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1673
+#, no-wrap
+msgid "\\ \\ \\ B<1>\\ \\ :I<Single/Separate-Cpu-States> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1678
+msgid ""
+"This command affects how the `t' command's Cpu States portion is shown. "
+"Although this toggle exists primarily to serve massively-parallel SMP "
+"machines, it is not restricted to solely SMP environments."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1683
+msgid ""
+"When you see `%Cpu(s):' in the \\*(SA, the `1' toggle is \\*O and all \\*(Pu "
+"information is gathered in a single line. Otherwise, each \\*(Pu is "
+"displayed separately as: `%Cpu0, %Cpu1, ...' up to available screen height."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1684
+#, no-wrap
+msgid "\\ \\ \\ B<2>\\ \\ :I<NUMA-Nodes/Cpu-Summary> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1689
+msgid ""
+"This command toggles between the `1' command cpu summary display (only) or "
+"a summary display plus the cpu usage statistics for each NUMA Node. It is "
+"only available if a system has the requisite NUMA support."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1690
+#, no-wrap
+msgid "\\ \\ \\ B<3>\\ \\ :I<Expand-NUMA-Node >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1696
+msgid ""
+"You will be invited to enter a number representing a NUMA Node. Thereafter, "
+"a node summary plus the statistics for each cpu in that node will be shown "
+"until the `1', `2' or `4' \\*(CT is pressed. This \\*(CI is only available "
+"if a system has the requisite NUMA support."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1697
+#, no-wrap
+msgid "\\ \\ \\ B<4>\\ \\ :I<Display-Multiple-Elements-Adjacent> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1703
+msgid ""
+"This \\*(CT turns the `1' toggle \\*F and shows multiple \\*(PU and Memory "
+"results on each line. Each successive `4' key adds another \\*(PU until "
+"again reverting to separate lines for \\*(PU and Memory results."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1709
+msgid ""
+"A maximum of 8 \\*(PUs per line can be displayed in this manner. However, "
+"data truncation may occur before reaching the maximum. That is definitely "
+"true when displaying detailed statistics via the `t' \\*(CT since such data "
+"cannot be scaled like the graphic representations."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1712
+msgid ""
+"If one wished to quickly exit adjacent mode without cycling all the way to "
+"8, simply use the `1' \\*(CT."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1713
+#, no-wrap
+msgid "\\ \\ \\ B<5>\\ \\ :I<Display-P-Cores-and-E-Cores> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1719
+msgid ""
+"This \\*(CT is only active when the `t' toggle is \\*O and the `1', `2', `3' "
+"and `!' toggles are \\*F, thus showing individual \\*(PU results. It "
+"assumes a platform has multiple cores of two distinct types, either multi-"
+"threaded (P-Core) or single-threaded (E-Core)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1723
+msgid ""
+"While normally each \\*(Pu is displayed as `%Cpu0, %Cpu1, ...', this toggle "
+"can be used to identify and/or filter those \\*(Pus by their core type, "
+"either P-Core (performance) or E-Core (efficient)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1730
+msgid ""
+"The 1st time `5' is struck, each \\*(PU is displayed as `%CpB<P>' or "
+"`%CpB<E>' representing the two core types. The 2nd time, only P-Cores "
+"(%CpB<P>) will be shown. The 3rd time, only E-Cores (%CpB<E>) are "
+"displayed. When this \\*(CT is struck for the 4th time, the \\*(PU display "
+"returns to the normal `%Cpu' convention."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1733
+msgid ""
+"If separateI< performance> andI< efficient> categories are not present, this "
+"\\*(CT will have no effect."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1734
+#, no-wrap
+msgid "\\ \\ \\ B<!>\\ \\ :I<Combine-Cpus-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1740
+msgid ""
+"This \\*(CT is intended for massively parallel SMP environments where, even "
+"with the `4' \\*(CT, not all processors can be displayed. With each press "
+"of `!' the number of \\*(Pus combined is doubled thus reducing the total "
+"number of \\*(Pu lines displayed."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1747
+msgid ""
+"For example, with the first press of `!' two \\*(Pus will be combined and "
+"displayed as `0-1, 2-3, ...' instead of the normal `%Cpu0, %Cpu1, %Cpu2, "
+"%Cpu3, ...'. With a second `!' \\*(CT four \\*(Pus are combined and shown as "
+"`0-3, 4-7, ...'. Then the third `!' press, combining eight \\*(Pus, shows "
+"as `0-7, 8-15, ...', etc."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1751
+msgid ""
+"Such progression continues until individual \\*(Pus are again displayed and "
+"impacts both the `1' and `4' toggles (one or multiple columns). Use the `=' "
+"command to exit B<Combine Cpus> mode."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1757
+msgid ""
+"\\*(NT If the entire \\*(SA has been toggled \\*F for any window, you would "
+"be left with just theB< message line>. In that way, you will have maximized "
+"available task rows but (temporarily) sacrificed the program name in \\*(FM "
+"or the \\*(CW name when in \\*(AM."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1759
+#, no-wrap
+msgid "4c. TASK AREA Commands"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1762
+msgid "The \\*(TA \\*(CIs areB< always> available in \\*(FM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1765
+msgid ""
+"The \\*(TA \\*(CIs areB< never available> in \\*(AMI< if> the \\*(CW's "
+"\\*(TD has been toggled \\*F (\\*(Xt 5. ALTERNATE-DISPLAY Provisions)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1769
+msgid "B<APPEARANCE> of \\*(TW"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1770
+#, no-wrap
+msgid "\\ \\ \\ B<J>\\ \\ :I<Justify-Numeric-Columns> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1776
+msgid ""
+"Alternates between right-justified (the default) and left-justified numeric "
+"data. If the numeric data completely fills the available column, this "
+"\\*(CT may impact the column header only."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1777
+#, no-wrap
+msgid "\\ \\ \\ B<j>\\ \\ :I<Justify-Character-Columns> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1783
+msgid ""
+"Alternates between left-justified (the default) and right-justified "
+"character data. If the character data completely fills the available "
+"column, this \\*(CT may impact the column header only."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1788
+msgid ""
+"The following commands will also be influenced by the state of the global "
+"`B' (bold enable) toggle."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1790
+#, no-wrap
+msgid "\\ \\ \\ B<b>\\ \\ :I<Bold/Reverse> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1795
+msgid ""
+"This command will impact how the `x' and `y' toggles are displayed. It may "
+"also impact the \\*(SA when a bar graph has been selected for \\*(Pu states "
+"or memory usage via the `t' or `m' toggles."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1796
+#, no-wrap
+msgid "\\ \\ \\ B<x>\\ \\ :I<Column-Highlight> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1804
+#, no-wrap
+msgid ""
+"Changes highlighting for the current sort field.\n"
+"If you forget which field is being sorted this command can serve as a quick\n"
+"visual reminder, providing the sort field is being displayed.\n"
+"The sort field mightI< not> be visible because:\n"
+" 1) there is insufficientI< Screen Width >\n"
+" 2) the `f' \\*(CI turned it \\*F\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1805
+#, no-wrap
+msgid "\\ \\ \\ B<y>\\ \\ :I<Row-Highlight> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1810
+msgid ""
+"Changes highlighting for \"running\" tasks. For additional insight into "
+"this task state, \\*(Xt 3a. DESCRIPTIONS of Fields, the `S' field (Process "
+"Status)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1813
+msgid ""
+"Use of this provision provides important insight into your system's health. "
+"The only costs will be a few additional tty escape sequences."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1814
+#, no-wrap
+msgid "\\ \\ \\ B<z>\\ \\ :I<Color/Monochrome> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1820
+msgid ""
+"Switches the \\*(CW between your last used color scheme and the older form "
+"of black-on-white or white-on-black. This command will alterB< both> the "
+"\\*(SA and \\*(TA but does not affect the state of the `x', `y' or `b' "
+"toggles."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1824
+msgid "B<CONTENT> of \\*(TW"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1825
+#, no-wrap
+msgid "\\ \\ \\ B<c>\\ \\ :I<Command-Line/Program-Name> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1830
+msgid ""
+"This command will be honored whether or not the COMMAND column is currently "
+"visible. Later, should that field come into view, the change you applied "
+"will be seen."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1831
+#, no-wrap
+msgid "\\ \\ \\ B<F>\\ \\ :I<Maintain-Parent-Focus> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1836
+msgid ""
+"When in forest view mode, this key serves as a toggle to retain focus on a "
+"target task, presumably one with forked children. If forest view mode is "
+"\\*F this key has no effect."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1841
+msgid ""
+"The toggle is applied to the first (topmost) process in the \\*(CW. Once "
+"established, that task is always displayed as the first (topmost) process "
+"along with its forked children. All other processes will be suppressed."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1844
+msgid ""
+"\\*(NT keys like `i' (idle tasks), `n' (max tasks), `v' (hide children) and "
+"User/Other filtering remain accessible and can impact what is displayed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1845 ../man/top.1:2000
+#, no-wrap
+msgid "\\ \\ \\ B<f>\\ \\ :I<Fields-Management >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1851
+msgid ""
+"This key displays a separate screen where you can change which fields are "
+"displayed, their order and also designate the sort field. For additional "
+"information on this \\*(CI \\*(Xt 3b. MANAGING Fields."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1852
+#, no-wrap
+msgid "\\ \\ \\ B<O> | B<o>\\ \\ :I<Other-Filtering >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1858
+msgid ""
+"You will be prompted for the selection criteria which then determines which "
+"tasks will be shown in the \\*(CW. Your criteria can be made case sensitive "
+"or case can be ignored. And you determine if \\*(We should include or "
+"exclude matching tasks."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1861
+msgid ""
+"\\*(XT 5e. FILTERING in a window for details on these and additional related "
+"\\*(CIs."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1862
+#, no-wrap
+msgid "\\ \\ \\ B<S>\\ \\ :I<Cumulative-Time-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1866
+msgid ""
+"When Cumulative mode is \\*O, each process is listed with the \\*(Pu time "
+"that it and its dead children have used."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1873
+msgid ""
+"When \\*F, programs that fork into many separate tasks will appear less "
+"demanding. For programs like `init' or a shell this is appropriate but for "
+"others, like compilers, perhaps not. Experiment with two \\*(TWs sharing "
+"the same sort field but with different `S' states and see which "
+"representation you prefer."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1877
+msgid ""
+"After issuing this command, you'll be informed of the new state of this "
+"toggle. If you wish to know in advance whether or not Cumulative mode is in "
+"effect, simply ask for help and view the window summary on the second line."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1878
+#, no-wrap
+msgid "\\ \\ \\ B<U> | B<u>\\ \\ :I<Show-Specific-User-Only >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1883
+msgid ""
+"You will be prompted for theB< uid> orB< name> of the user to display. The -"
+"u option matches on B< effective> user whereas the -U option matches onB< "
+"any> user (real, effective, saved, or filesystem)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1888
+msgid ""
+"Thereafter, in that \\*(TW only matching users will be shown, or possibly no "
+"processes will be shown. Prepending an exclamation point (`!') to the user "
+"id or name instructs \\*(We to display only processes with users not "
+"matching the one provided."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1892
+msgid ""
+"Different \\*(TWs can be used to filter different users. Later, if you wish "
+"to monitor all users again in the \\*(CW, re-issue this command but just "
+"press E<lt>EnterE<gt> at the prompt."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1893
+#, no-wrap
+msgid "\\ \\ \\ B<V>\\ \\ :I<Forest-View-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1900
+msgid ""
+"In this mode, processes are reordered according to their parents and the "
+"layout of the COMMAND column resembles that of a tree. In forest view mode "
+"it is still possible to toggle between program name and command line (\\*(Xc "
+"`c' \\*(CI) or between processes and threads (\\*(Xc `H' \\*(CI)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1904
+msgid ""
+"\\*(NT Typing any key affecting the sort order will exit forest view mode in "
+"the \\*(CW. \\*(XT 4c. TASK AREA Commands, SORTING for information on those "
+"keys."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1905
+#, no-wrap
+msgid "\\ \\ \\ B<v>\\ \\ :I<Hide/Show-Children> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1909
+msgid ""
+"When in forest view mode, this key serves as a toggle to collapse or expand "
+"the children of a parent."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1913
+msgid ""
+"The toggle is applied against the first (topmost) process in the \\*(CW. "
+"\\*(XT 5c. SCROLLING a Window for additional information regarding vertical "
+"scrolling."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1916
+msgid ""
+"If the target process has not forked any children, this key has no effect. "
+"It also has no effect when not in forest view mode."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1917
+#, no-wrap
+msgid "\\ \\ B<^E>\\ \\ :I<Scale-CPU-Time-fields> (Ctrl key + `e')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1924
+msgid ""
+"The `time' fields are normally displayed with the greatest precision their "
+"widths permit. This toggle reduces that precision until it wraps. It also "
+"illustrates the scaling those fields I<might> experience automatically, "
+"which usually depends on how long the system runs."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1927
+msgid ""
+"For example, if `MMM:SS.hh' is shown, each ^E keystroke would change it to: "
+"`MM:SS', `Hours,MM', `Days+Hours' and finally `Weeks+Days'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1929
+msgid "Not all time fields are subject to the full range of such scaling."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1933
+msgid "B<SIZE> of \\*(TW"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1934
+#, no-wrap
+msgid "\\ \\ \\ B<i>\\ \\ :I<Idle-Process> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1942
+msgid ""
+"Displays all tasks or just active tasks. When this toggle is \\*F, tasks "
+"that have not used any \\*(PU since the last update will not be displayed. "
+"However, due to the granularity of the %CPU and TIME+ fields, some processes "
+"may still be displayed thatI< appear> to have usedI< no> \\*(PU."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1945
+msgid ""
+"If this command is applied to the last \\*(TD when in \\*(AM, then it will "
+"not affect the window's size, as all prior \\*(TDs will have already been "
+"painted."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1946
+#, no-wrap
+msgid "\\ \\ \\ B<n> | B<#>\\ \\ :I<Set-Maximum-Tasks >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1950
+msgid ""
+"You will be prompted to enter the number of tasks to display. The lessor of "
+"your number and available screen rows will be used."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1955
+msgid ""
+"When used in \\*(AM, this is the command that gives you precise control over "
+"the size of each currently visible \\*(TD, except for the very last. It "
+"will not affect the last window's size, as all prior \\*(TDs will have "
+"already been painted."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1958
+msgid ""
+"\\*(NT If you wish to increase the size of the last visible \\*(TD when in "
+"\\*(AM, simply decrease the size of the \\*(TD(s) above it."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1962
+msgid "B<SORTING> of \\*(TW"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1967
+msgid ""
+"For compatibility, this \\*(We supports most of the former \\*(We sort "
+"keys. Since this is primarily a service to former \\*(We users, these "
+"commands do not appear on any help screen."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1974
+#, no-wrap
+msgid ""
+" I< command sorted-field supported >\n"
+" A start time (non-display) B< No >\n"
+" M %MEM Yes\n"
+" N PID Yes\n"
+" P %CPU Yes\n"
+" T TIME+ Yes\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1979
+msgid ""
+"Before using any of the following sort provisions, \\*(We suggests that you "
+"temporarily turn on column highlighting using the `x' \\*(CI. That will "
+"help ensure that the actual sort environment matches your intent."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1985
+#, no-wrap
+msgid ""
+"The following \\*(CIs willB< only> be honored when the current sort field\n"
+"isB< visible>.\n"
+"The sort field mightI< not> be visible because:\n"
+" 1) there is insufficientI< Screen Width >\n"
+" 2) the `f' \\*(CI turned it \\*F\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1986
+#, no-wrap
+msgid "\\ \\ \\ B<E<lt>>\\ \\ :I<Move-Sort-Field-Left >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1990
+msgid ""
+"Moves the sort column to the left unless the current sort field is the first "
+"field being displayed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1991
+#, no-wrap
+msgid "\\ \\ \\ B<E<gt>>\\ \\ :I<Move-Sort-Field-Right >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1995
+msgid ""
+"Moves the sort column to the right unless the current sort field is the last "
+"field being displayed."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1999
+msgid ""
+"The following \\*(CIs willB< always> be honored whether or not the current "
+"sort field is visible."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2006
+msgid ""
+"This key displays a separate screen where you can change which field is used "
+"as the sort column, among other functions. This can be a convenient way to "
+"simply verify the current sort field, when running \\*(We with column "
+"highlighting turned \\*F."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2007
+#, no-wrap
+msgid "\\ \\ \\ B<R>\\ \\ :I<Reverse/Normal-Sort-Field> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2010
+msgid ""
+"Using this \\*(CI you can alternate between high-to-low and low-to-high "
+"sorts."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2012
+#, no-wrap
+msgid "4d. COLOR Mapping"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2017
+msgid ""
+"When you issue the `Z' \\*(CI, you will be presented with a separate "
+"screen. That screen can be used to change the colors in just the \\*(CW or "
+"in all four windows before returning to the \\*(We display."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2020
+msgid "The following \\*(CIs are available."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2031
+#, no-wrap
+msgid ""
+" B<4> upper case letters to select aB< target >\n"
+" B<8> numbers to select aB< color >\n"
+" normal toggles available \n"
+" B :bold disable/enable\n"
+" b :running tasks \"bold\"/reverse\n"
+" z :color/mono\n"
+" other commands available \n"
+" a/w :apply, then go to next/prior\n"
+" E<lt>EnterE<gt> :apply and exit\n"
+" q :abandon current changes and exit\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2037
+msgid ""
+"If you use `a' or `w' to cycle the targeted window, you will have applied "
+"the color scheme that was displayed when you left that window. You can, of "
+"course, easily return to any window and reapply different colors or turn "
+"colors \\*F completely with the `z' toggle."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2042
+msgid ""
+"The Color Mapping screen can also be used to change the \\*(CG in either "
+"\\*(FM or \\*(AM. Whatever was targeted when `q' or E<lt>EnterE<gt> was "
+"pressed will be made current as you return to the \\*(We display."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2044
+#, no-wrap
+msgid "5. ALTERNATE-DISPLAY Provisions"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2047
+#, no-wrap
+msgid "5a. WINDOWS Overview"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2049
+#, no-wrap
+msgid "B<Field Groups/Windows>:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2056
+msgid ""
+"In \\*(FM there is a single window represented by the entire screen. That "
+"single window can still be changed to display 1 of 4 differentB< field "
+"groups> (\\*(Xc `g' \\*(CI, repeated below). Each of the 4 \\*(FGs has a "
+"unique separately configurableB< \\*(SA > and its own configurableB< \\*(TA>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2059
+msgid ""
+"In \\*(AM, those 4 underlying \\*(FGs can now be made visible "
+"simultaneously, or can be turned \\*F individually at your command."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2064
+msgid ""
+"The \\*(SA will always exist, even if it's only the message line. At any "
+"given time onlyI< one> \\*(SA can be displayed. However, depending on your "
+"commands, there could be fromI< zero > toI< four> separate \\*(TDs currently "
+"showing on the screen."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2065
+#, no-wrap
+msgid "B<Current Window>:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2071
+msgid ""
+"The \\*(CW is the window associated with the \\*(SA and the window to which "
+"task related commands are always directed. Since in \\*(AM you can toggle "
+"the \\*(TD \\*F, some commands might be restricted for the \\*(CW."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2076
+msgid ""
+"A further complication arises when you have toggled the first \\*(SA line "
+"\\*F. With the loss of the window name (the `l' toggled line), you'll not "
+"easily know what window is the \\*(CW."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2078
+#, no-wrap
+msgid "5b. COMMANDS for Windows"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2080
+#, no-wrap
+msgid "\\ \\ \\ B<-> | B<_>\\ \\ :I<Show/Hide-Window(s)> toggles "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2087
+msgid ""
+"The `-' key turns the \\*(CW's \\*(TD \\*O and \\*F. When \\*O, that \\*(TA "
+"will show a minimum of the columns header you've established with the `f' "
+"\\*(CI. It will also reflect any other \\*(TA options/toggles you've "
+"applied yielding zero or more tasks."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2093
+msgid ""
+"The `_' key does the same for all \\*(TDs. In other words, it switches "
+"between the currently visible \\*(TD(s) and any \\*(TD(s) you had toggled "
+"\\*F. If all 4 \\*(TDs are currently visible, this \\*(CI will leave the "
+"\\*(SA as the only display element."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2094
+#, no-wrap
+msgid "*\\ \\ B<=> | B<+>\\ \\ :I<Equalize/Reset-Window(s) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2103
+msgid ""
+"The `=' key forces the \\*(CW's \\*(TD to be visible. It also reverses any "
+"active `i' (idle tasks), `n' (max tasks), `u/U' (user filter), `o/O' (other "
+"filter), `v' (hide children), `F' focused, `L' (locate) and `!' (combine "
+"cpus) commands. Also, if the window had been scrolled, it will be reset "
+"with this command. \\*(XT 5c. SCROLLING a Window for additional information "
+"regarding vertical and horizontal scrolling."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2108
+msgid ""
+"The `+' key does the same for all windows. The four \\*(TDs will reappear, "
+"evenly balanced, while retaining any customizations previously applied "
+"beyond those noted for the `=' \\*(CT."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2109
+#, no-wrap
+msgid "*\\ \\ B<A>\\ \\ :I<Alternate-Display-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2112
+msgid "This command will switch between \\*(FM and \\*(AM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2116
+msgid ""
+"The first time you issue this command, all four \\*(TDs will be shown. "
+"Thereafter when you switch modes, you will see only the \\*(TD(s) you've "
+"chosen to make visible."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2117
+#, no-wrap
+msgid "*\\ \\ B<a> | B<w>\\ \\ :I<Next-Window-Forward/Backward >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2123
+msgid ""
+"This will change the \\*(CW, which in turn changes the window to which "
+"commands are directed. These keys act in a circular fashion so you can "
+"reach any desired window using either key."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2127
+msgid ""
+"Assuming the window name is visible (you have not toggled `l' \\*F), "
+"whenever the \\*(CW name loses its emphasis/color, that's a reminder the "
+"\\*(TD is \\*F and many commands will be restricted."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2128
+#, no-wrap
+msgid "\\ \\ \\ B<G>\\ \\ :I<Change-Window/Field-Group-Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2133
+msgid ""
+"You will be prompted for a new name to be applied to the \\*(CW. It does "
+"not require that the window name be visible (the `l' toggle to be \\*O)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2136
+msgid "The \\*(CIs shown with an \\*(AK have use beyond \\*(AM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2140
+#, no-wrap
+msgid ""
+" =, A, g are always available\n"
+" a, w act the same with color mapping\n"
+" and fields management\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2142
+#, no-wrap
+msgid "*\\ \\ B<g>\\ \\ :I<Choose-Another-Window/Field-Group >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2146
+msgid ""
+"You will be prompted to enter a number between 1 and 4 designating the "
+"\\*(FG which should be made the \\*(CW."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2150
+msgid ""
+"In \\*(FM, this command is necessary to alter the \\*(CW. In \\*(AM, it is "
+"simply a less convenient alternative to the `a' and `w' commands."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2152
+#, no-wrap
+msgid "5c. SCROLLING a Window"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2158
+msgid ""
+"Typically a \\*(TW is a partial view into a system's total tasks/threads "
+"which shows only some of the available fields/columns. With these \\*(KSs, "
+"you can move that view vertically or horizontally to reveal any desired task "
+"or column."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2159
+#, no-wrap
+msgid "B<Up>,B<PgUp>\\ \\ :I<Scroll-Tasks >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2165
+msgid ""
+"Move the view up toward the first task row, until the first task is "
+"displayed at the top of the \\*(CW. The I<Up> \\*(KA moves a single line "
+"while I<PgUp> scrolls the entire window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2166
+#, no-wrap
+msgid "B<Down>,B<PgDn>\\ \\ :I<Scroll-Tasks >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2172
+msgid ""
+"Move the view down toward the last task row, until the last task is the only "
+"task displayed at the top of the \\*(CW. The I<Down> \\*(KA moves a single "
+"line while I<PgDn> scrolls the entire window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2173
+#, no-wrap
+msgid "B<Left>,B<Right>\\ \\ :I<Scroll-Columns >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2176
+msgid "Move the view of displayable fields horizontally one column at a time."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2181
+msgid ""
+"\\*(NT As a reminder, some fields/columns are not fixed-width but allocated "
+"all remaining screen width when visible. When scrolling right or left, that "
+"feature may produce some unexpected results initially."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2187
+msgid ""
+"Additionally, there are special provisions for any variable width field when "
+"positioned as the last displayed field. Once that field is reached via the "
+"right arrow key, and is thus the only column shown, you can continue "
+"scrolling horizontally within such a field. \\*(XC `C' \\*(CI below for "
+"additional information."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2188
+#, no-wrap
+msgid "B<Home>\\ \\ :I<Jump-to-Home-Position >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2191
+msgid "Reposition the display to the un-scrolled coordinates."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2192
+#, no-wrap
+msgid "B<End>\\ \\ :I<Jump-to-End-Position >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2196
+msgid ""
+"Reposition the display so that the rightmost column reflects the last "
+"displayable field and the bottom task row represents the last task."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2201
+msgid ""
+"\\*(NT From this position it is still possible to scrollI< down> andI< "
+"right> using the \\*(KAs. This is true until a single column and a single "
+"task is left as the only display element."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2202
+#, no-wrap
+msgid "B<C>\\ \\ :I<Show-scroll-coordinates> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2208
+msgid ""
+"Toggle an informational message which is displayed whenever the message line "
+"is not otherwise being used. That message will take one of two forms "
+"depending on whether or not a variable width column has also been scrolled."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2212
+#, no-wrap
+msgid ""
+" B<scroll coordinates: y = n/n (tasks), x = n/n (fields)>\n"
+" scroll coordinates: y = n/n (tasks), x = n/n (fields)B< + nn>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2220
+msgid ""
+"The coordinates shown as B<n>/B<n> are relative to the upper left corner of "
+"the \\*(CW. The additional `B<+\\ nn>' represents the displacement into a "
+"variable width column when it has been scrolled horizontally. Such "
+"displacement occurs in normal 8 character tab stop amounts via the right and "
+"left arrow keys."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2222
+#, no-wrap
+msgid "B<y = n/n (tasks) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2227
+msgid ""
+"The first B<n> represents the topmost visible task and is controlled by "
+"\\*(KSs. The second B<n> is updated automatically to reflect total tasks."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2228
+#, no-wrap
+msgid "B<x = n/n (fields) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2234
+msgid ""
+"The first B<n> represents the leftmost displayed column and is controlled by "
+"\\*(KSs. The second B<n> is the total number of displayable fields and is "
+"established with the `B<f>' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2239 ../man/top.1:2298
+msgid ""
+"The above \\*(CIs areB< always> available in \\*(FM butB< never> available "
+"in \\*(AM if the \\*(CW's \\*(TD has been toggled \\*F."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2243
+msgid ""
+"\\*(NT When any form of filtering is active, you can expect some slight "
+"aberrations when scrolling since not all tasks will be visible. This is "
+"particularly apparent when using the Up/Down \\*(KAs."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2245
+#, no-wrap
+msgid "5d. SEARCHING in a Window"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2248
+msgid ""
+"You can use these \\*(CIs to locate a task row containing a particular value."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2249
+#, no-wrap
+msgid "B<L>\\ \\ :I<Locate-a-string>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2254
+msgid ""
+"You will be prompted for the case-sensitive string to locate starting from "
+"the current window coordinates. There are no restrictions on search string "
+"content."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2258
+msgid ""
+"Searches are not limited to values from a single field or column. All of "
+"the values displayed in a task row are allowed in a search string. You may "
+"include spaces, numbers, symbols and even forest view artwork."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2261
+msgid ""
+"Keying E<lt>EnterE<gt> with no input will effectively disable the `&' key "
+"until a new search string is entered."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2262
+#, no-wrap
+msgid "B<&>\\ \\ :I<Locate-next>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2266
+msgid ""
+"Assuming a search string has been established, \\*(We will attempt to locate "
+"the next occurrence."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2273
+msgid ""
+"When a match is found, the current window is repositioned vertically so the "
+"task row containing that string is first. The scroll coordinates message "
+"can provide confirmation of such vertical repositioning (\\*(Xc `C' "
+"\\*(CI). Horizontal scrolling, however, is never altered via searching."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2276
+msgid ""
+"The availability of a matching string will be influenced by the following "
+"factors."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2277
+#, no-wrap
+msgid "a. Which fields are displayable from the total available,"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2280
+msgid "\\*(Xt 3b. MANAGING Fields."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2280
+#, no-wrap
+msgid "b. Scrolling a window vertically and/or horizontally,"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2283
+msgid "\\*(Xt 5c. SCROLLING a Window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2283
+#, no-wrap
+msgid "c. The state of the command/command-line toggle,"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2286
+msgid "\\*(Xc `c' \\*(CI."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2286
+#, no-wrap
+msgid "d. The stability of the chosen sort column,"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2289
+msgid "for example PID is good but %CPU bad."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2295
+msgid ""
+"If a search fails, restoring the \\*(CW home (unscrolled) position, "
+"scrolling horizontally, displaying command-lines or choosing a more stable "
+"sort field could yet produce a successful `&' search."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2300
+#, no-wrap
+msgid "5e. FILTERING in a Window"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2306
+msgid ""
+"You can use this `Other Filter' feature to establish selection criteria "
+"which will then determine which tasks are shown in the \\*(CW. Such filters "
+"can be made persistent if preserved in the rcfile via the `W' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2312
+msgid ""
+"Establishing a filter requires: 1) a field name; 2) an operator; and 3) a "
+"selection value, as a minimum. This is the most complex of \\*(We's user "
+"input requirements so, when you make a mistake, command recall will be your "
+"friend. Remember the Up/Down \\*(KAs or their aliases when prompted for "
+"input."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2314
+msgid "B<Filter Basics>"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2315
+#, no-wrap
+msgid "1. field names are case sensitive and spelled as in the header"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2317
+#, no-wrap
+msgid "2. selection values need not comprise the full displayed field"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2319
+#, no-wrap
+msgid "3. a selection is either case insensitive or sensitive to case"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2321
+#, no-wrap
+msgid "4. the default is inclusion, prepending `!' denotes exclusions"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2323
+#, no-wrap
+msgid "5. multiple selection criteria can be applied to a \\*(TW"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2325
+#, no-wrap
+msgid "6. inclusion and exclusion criteria can be used simultaneously"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2327
+#, no-wrap
+msgid "7. the 1 equality and 2 relational filters can be freely mixed"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2329
+#, no-wrap
+msgid "8. separate unique filters are maintained for each \\*(TW"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2337
+msgid ""
+"If a field is not turned on or is not currently in view, then your selection "
+"criteria will not affect the display. Later, should a filtered field become "
+"visible, the selection criteria will then be applied."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2340
+msgid "B<Keyboard Summary>"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2340
+#, no-wrap
+msgid "\\ \\ B<O>\\ \\ :I<Other-Filter> (upper case)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2343
+msgid "You will be prompted to establish a B<case sensitive> filter."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2344
+#, no-wrap
+msgid "\\ \\ B<o>\\ \\ :I<Other-Filter> (lower case)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2348
+msgid ""
+"You will be prompted to establish a filter that B<ignores case> when "
+"matching."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2349
+#, no-wrap
+msgid "\\ B<^O>\\ \\ :I<Show-Active-Filters> (Ctrl key + `o')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2353
+msgid ""
+"This can serve as a reminder of which filters are active in the \\*(CW. A "
+"summary will be shown on the message line until you press the "
+"E<lt>EnterE<gt> key."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2354
+#, no-wrap
+msgid "\\ \\ B<=>\\ \\ :I<Reset-Filtering> in current window"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2358
+msgid ""
+"This clears all of your selection criteria in the \\*(CW. It also has "
+"additional impact so please \\*(Xt 4a. GLOBAL Commands."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2359
+#, no-wrap
+msgid "\\ \\ B<+>\\ \\ :I<Reset-Filtering> in all windows"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2364
+msgid ""
+"This clears the selection criteria in all windows, assuming you are in "
+"\\*(AM. As with the `=' \\*(CI, it too has additional consequences so you "
+"might wish to \\*(Xt 5b. COMMANDS for Windows."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2367
+msgid "B<Input Requirements>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2373
+msgid ""
+"When prompted for selection criteria, the data you provide must take one of "
+"two forms. There are 3 required pieces of information, with a 4th as "
+"optional. These examples use spaces for clarity but your input generally "
+"would not."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2378
+#, no-wrap
+msgid ""
+" #1 B<#2> #3 ( required )\n"
+" Field-Name ? include-if-value\n"
+" B<!> Field-Name ? B<exclude>-if-value\n"
+" #4 ( optional )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2383
+msgid ""
+"Items #1, #3 and #4 should be self-explanatory. Item B<#2> represents both "
+"a required I<delimiter> and the I<operator> which must be one of either "
+"equality (`=') or relation (`E<lt>' or `E<gt>')."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2392
+msgid ""
+"The `=' equality operator requires only a partial match and that can reduce "
+"your `if-value' input requirements. The `E<gt>' or `E<lt>' relational "
+"operators always employ string comparisons, even with numeric fields. They "
+"are designed to work with a field's default I<justification> and with "
+"homogeneous data. When some field's numeric amounts have been subjected to "
+"I<scaling> while others have not, that data is no longer homogeneous."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2399
+msgid ""
+"If you establish a relational filter and you B<have> changed the default "
+"Numeric or Character I<justification>, that filter is likely to fail. When "
+"a relational filter is applied to a memory field and you B<have not> changed "
+"the I<scaling>, it may produce misleading results. This happens, for "
+"example, because `100.0m' (MiB) would appear greater than `1.000g' (GiB) "
+"when compared as strings."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2403
+msgid ""
+"If your filtered results appear suspect, simply altering justification or "
+"scaling may yet achieve the desired objective. See the `j', `J' and `e' "
+"\\*(CIs for additional information."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2406
+msgid "B<Potential Problems>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2410
+msgid ""
+"These B<GROUP> filters could produce the exact same results or the second "
+"one might not display anything at all, just a blank \\*(TW."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2413
+#, no-wrap
+msgid ""
+" GROUP=root ( only the same results when )\n"
+" GROUP=ROOT ( invoked via lower case `o' )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2418
+msgid ""
+"Either of these B<RES> filters might yield inconsistent and/or misleading "
+"results, depending on the current memory scaling factor. Or both filters "
+"could produce the exact same results."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2421
+#, no-wrap
+msgid ""
+" RESE<gt>9999 ( only the same results when )\n"
+" !RESE<lt>10000 ( memory scaling is at `KiB' )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2427
+msgid ""
+"This B<nMin> filter illustrates a problem unique to scalable fields. This "
+"particular field can display a maximum of 4 digits, beyond which values are "
+"automatically scaled to KiB or above. So while amounts greater than 9999 "
+"exist, they will appear as 2.6m, 197k, etc."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2429
+#, no-wrap
+msgid " nMinE<gt>9999 ( always a blank \\*(TW )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2433
+msgid "B<Potential Solutions>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2440
+msgid ""
+"These examples illustrate how Other Filtering can be creatively applied to "
+"achieve almost any desired result. Single quotes are sometimes shown to "
+"delimit the spaces which are part of a filter or to represent a request for "
+"status (^O) accurately. But if you used them with if-values in real life, "
+"no matches would be found."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2445
+msgid ""
+"Assuming field B<nTH> is displayed, the first filter will result in only "
+"multi-threaded processes being shown. It also reminds us that a trailing "
+"space is part of every displayed field. The second filter achieves the "
+"exact same results with less typing."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2448
+#, no-wrap
+msgid ""
+" !nTH=` 1 ' ( ` for clarity only )\n"
+" nTHE<gt>1 ( same with less i/p )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2452
+msgid ""
+"With Forest View mode active and the B<COMMAND> column in view, this filter "
+"effectively collapses child processes so that just 3 levels are shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2454
+#, no-wrap
+msgid " !COMMAND=` `- ' ( ` for clarity only )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2462
+msgid ""
+"The final two filters appear as in response to the status request key (^O). "
+"In reality, each filter would have required separate input. The B<PR> "
+"example shows the two concurrent filters necessary to display tasks with "
+"priorities of 20 or more, since some might be negative. Then by exploiting "
+"trailing spaces, the B<nMin> series of filters could achieve the failed "
+"`9999' objective discussed above."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2465
+#, no-wrap
+msgid ""
+" `PRE<gt>20' + `!PR=-' ( 2 for right result )\n"
+" `!nMin=0 ' + `!nMin=1 ' + `!nMin=2 ' + `!nMin=3 ' ...\n"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2469
+#, fuzzy, no-wrap
+#| msgid "FILES"
+msgid "6. FILES"
+msgstr "PLIKI"
+
+#. ----------------------------------------------------------------------
+#. type: SS
+#: ../man/top.1:2471
+#, no-wrap
+msgid "6a. PERSONAL Configuration File"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2474
+msgid "This file is created or updated via the `W' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2477
+msgid ""
+"The legacy version is written as `$HOME/.your-name-4-\\*(We' + `rc' with a "
+"leading period."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2482
+msgid ""
+"A newly created \\*(CF is written as procps/your-name-4-\\*(We' + `rc' "
+"without a leading period. The procps directory will be subordinate to "
+"either $XDG_CONFIG_HOME when set as an absolute path or the $HOME/.config "
+"directory."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2484
+msgid "While not intended to be edited manually, here is the general layout:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2494
+#, no-wrap
+msgid ""
+" global # line 1: the program name/alias notation\n"
+" \" # line 2: id,altscr,irixps,delay,curwin\n"
+" per ea # line a: winname,fieldscur\n"
+" window # line b: winflags,sortindx,maxtasks,etc\n"
+" \" # line c: summclr,msgsclr,headclr,taskclr\n"
+" global # line 15: additional miscellaneous settings\n"
+" \" # any remaining lines are devoted to optional\n"
+" \" # active `other filters' discussed in section 5e above\n"
+" \" # plus `inspect' entries discussed in section 6b below\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2498
+msgid ""
+"If a valid absolute path to the rcfile cannot be established, customizations "
+"made to a running \\*(We will be impossible to preserve."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2500
+#, no-wrap
+msgid "6b. ADDING INSPECT Entries"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2507
+msgid ""
+"To exploit the `Y' \\*(CI, you must add entries at theB< end> of the \\*(We "
+"personal \\*(CF. Such entries simply reflect a file to be read or command/"
+"pipeline to be executed whose results will then be displayed in a separate "
+"scrollable, searchable window."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2510
+msgid ""
+"If you don't know the location or name of your \\*(We rcfile, use the `W' "
+"\\*(CI to rewrite it and note those details."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2517
+msgid ""
+"Inspect entries can be added with a redirected echo or by editing the "
+"\\*(CF. Redirecting an echo risks overwriting the rcfile should it replace "
+"(E<gt>) rather than append (E<gt>E<gt>) to that file. Conversely, when "
+"using an editor care must be taken not to corrupt existing lines, some of "
+"which could contain unprintable data or unusual characters depending on the "
+"\\*(We version under which that \\*(CF was saved."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2522
+msgid ""
+"Those Inspect entries beginning with a `#' character are ignored, regardless "
+"of content. Otherwise they consist of the following 3 elements, each of "
+"whichI< must> be separated by a tab character (thus 2 `\\et' total):"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2527
+#, no-wrap
+msgid ""
+" .type: literal `file' or `pipe'\n"
+" .name: selection shown on the Inspect screen\n"
+" .fmts: string representing a path or command\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2534
+msgid ""
+"The two types of Inspect entries areI< not> interchangeable. Those "
+"designated `B<file>' will be accessed using fopen and must reference a "
+"single file in the `.fmts' element. Entries specifying `B<pipe>' will "
+"employ popen, their `.fmts' element could contain many pipelined commands "
+"and, none can be interactive."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2538
+msgid ""
+"If the file or pipeline represented in your `.fmts' deals with the specific "
+"PID input or accepted when prompted, then the format string must also "
+"contain the `B<%d>' specifier, as these examples illustrate."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2542
+#, no-wrap
+msgid ""
+" .fmts= /proc/I<%d>/numa_maps\n"
+" .fmts= lsof -P -pI< %d>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2547
+msgid ""
+"For `B<pipe>' type entries only, you may also wish to redirect stderr to "
+"stdout for a more comprehensive result. Thus the format string becomes:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2550
+#, no-wrap
+msgid " .fmts= pmap -x %dI< 2E<gt>&1>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2557
+msgid ""
+"Here are examples of both types of Inspect entries as they might appear in "
+"the rcfile. The first entry will be ignored due to the initial `#' "
+"character. For clarity, the pseudo tab depictions (^I) are surrounded by an "
+"extra space but the actual tabs would not be."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2563
+#, no-wrap
+msgid ""
+" # pipe ^I Sockets ^I lsof -n -P -i 2E<gt>&1\n"
+" pipe ^I Open Files ^I lsof -P -p %d 2E<gt>&1\n"
+" file ^I NUMA Info ^I /proc/%d/numa_maps\n"
+" pipe ^I Log ^I tail -n100 /var/log/syslog | sort -Mr\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2570
+msgid ""
+"Except for the commented entry above, these next examples show what could be "
+"echoed to achieve similar results, assuming the rcfile name was `.toprc'. "
+"However, due to the embedded tab characters, each of these lines should be "
+"preceded by `B</bin/echo -e>', not just a simple an `echo', to enable "
+"backslash interpretation regardless of which shell you use."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2575
+#, no-wrap
+msgid ""
+" \"pipe\\etOpen Files\\etlsof -P -p %d 2E<gt>&1\" E<gt>E<gt> ~/.toprc\n"
+" \"file\\etNUMA Info\\et/proc/%d/numa_maps\" E<gt>E<gt> ~/.toprc\n"
+" \"pipe\\etLog\\ettail -n200 /var/log/syslog | sort -Mr\" E<gt>E<gt> ~/.toprc\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2584
+msgid ""
+"If any inspect entry you create produces output with unprintable characters "
+"they will be displayed in either the ^C notation or hexadecimal E<lt>FFE<gt> "
+"form, depending on their value. This applies to tab characters as well, "
+"which will show as `^I'. If you want a truer representation, any embedded "
+"tabs should be expanded. The following example takes what could have been a "
+"`file' entry but employs a `pipe' instead so as to expand the embedded tabs."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2590
+#, no-wrap
+msgid ""
+" # next would have contained `\\et' ...\n"
+" # file ^I E<lt>your_nameE<gt> ^I /proc/%d/status\n"
+" # but this will eliminate embedded `\\et' ...\n"
+" pipe ^I E<lt>your_nameE<gt> ^I cat /proc/%d/status | expand -\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2596
+msgid ""
+"\\*(NT Some programs might rely on I<SIGINT> to end. Therefore, if a "
+"`B<pipe>' such as the following is established, one must use Ctrl-C to "
+"terminate it in order to review the results. This is the single occasion "
+"where a `^C' will not also terminate \\*(We."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2599
+#, no-wrap
+msgid " pipe ^I Trace ^I /usr/bin/strace -p %d 2E<gt>&1\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2605
+msgid ""
+"Lastly, while `B<pipe>' type entries have been discussed in terms of "
+"pipelines and commands, there is nothing to prevent you from including I< "
+"shell scripts> as well. Perhaps even newly created scripts designed "
+"specifically for the `Y' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2611
+msgid ""
+"For example, as the number of your Inspect entries grows over time, the "
+"`Options:' row will be truncated when screen width is exceeded. That does "
+"not affect operation other than to make some selections invisible. However, "
+"if some choices are lost to truncation but you want to see more options, "
+"there is an easy solution hinted at below."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2616
+#, no-wrap
+msgid ""
+" Inspection Pause at pid ...\n"
+" Use: left/right then E<lt>EnterE<gt> ...\n"
+" Options: help 1 2 3 4 5 6 7 8 9 10 11 ...\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2622
+msgid ""
+"The entries in the \\*(We rcfile would have a number for the `.name' element "
+"and the `help' entry would identify a shell script you've written explaining "
+"what those numbered selections actually mean. In that way, many more "
+"choices can be made visible."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2624
+#, no-wrap
+msgid "6c. SYSTEM Configuration File"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2629
+msgid ""
+"This \\*(CF represents defaults for users who have not saved their own "
+"\\*(CF. The format mirrors exactly the personal \\*(CF and can also include "
+"`inspect' entries as explained above."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2631
+msgid "Creating it is a simple process."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2634
+msgid ""
+"1. Configure \\*(We appropriately for your installation and preserve that "
+"configuration with the `W' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2636
+msgid "2. Add and test any desired `inspect' entries."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2638
+msgid "3. Copy that \\*(CF to the I</etc/> directory as `B<topdefaultrc>'."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2640
+#, no-wrap
+msgid "6d. SYSTEM Restrictions File"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2644
+msgid ""
+"The presence of this file will influence which version of the help screen is "
+"shown to an ordinary user."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2648
+msgid ""
+"More importantly, it will limit what ordinary users are allowed to do when "
+"\\*(We is running. They will not be able to issue the following commands."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2652
+#, no-wrap
+msgid ""
+" k Kill a task\n"
+" r Renice a task\n"
+" d or s Change delay/sleep interval\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2657
+msgid ""
+"This \\*(CF is not created by \\*(We. Rather, it is created manually and "
+"placed it in the I</etc/> directory as `B<toprc>'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2659
+msgid "It should have exactly two lines, as shown in this example:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2662
+#, no-wrap
+msgid ""
+" s # line 1: secure mode switch\n"
+" 5.0 # line 2: delay interval in seconds\n"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2665
+#, fuzzy, no-wrap
+#| msgid "ENVIRONMENT VARIABLE(S)"
+msgid "7. ENVIRONMENT VARIABLE(S)"
+msgstr "ZMIENNE ÅšRODOWISKOWE"
+
+#. type: Plain text
+#: ../man/top.1:2668 ../man/procps_pids.3:201
+msgid "The value set for the following is unimportant, just its presence."
+msgstr ""
+"Ustawiona wartość następującej zmiennej nie jest istotna, a jedynie jej "
+"obecność."
+
+#. type: IP
+#: ../man/top.1:2669 ../man/procps_pids.3:202
+#, no-wrap
+msgid "LIBPROC_HIDE_KERNEL"
+msgstr "LIBPROC_HIDE_KERNEL"
+
+#. type: Plain text
+#: ../man/top.1:2672
+msgid ""
+"This will prevent display of any kernel threads and exclude such processes "
+"from the \\*(SA Tasks/Threads counts."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2674
+#, no-wrap
+msgid "8. STUPID TRICKS Sampler"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2679
+msgid ""
+"Many of these tricks work best when you give \\*(We a scheduling boost. So "
+"plan on starting him with a nice value of -10, assuming you've got the "
+"authority."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2681
+#, no-wrap
+msgid "7a. Kernel Magic"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. sorry, just can't help it -- don't ya love the sound of this?
+#. ( apparently AM static was a potential concern )
+#. type: Plain text
+#: ../man/top.1:2686
+msgid "For these stupid tricks, \\*(We needs \\*(FM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2693
+msgid ""
+"The user interface, through prompts and help, intentionally implies that the "
+"delay interval is limited to tenths of a second. However, you're free to "
+"set any desired delay. If you want to see Linux at his scheduling best, try "
+"a delay of .09 seconds or less."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2696
+msgid ""
+"For this experiment, under x-windows open an xterm and maximize it. Then do "
+"the following:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2705
+#, no-wrap
+msgid ""
+" . provide a scheduling boost and tiny delay via:\n"
+" nice -n -10 \\*(We -d.09\n"
+" . keep sorted column highlighting \\*F so as to\n"
+" minimize path length\n"
+" . turn \\*O reverse row highlighting for emphasis\n"
+" . try various sort columns (TIME/MEM work well),\n"
+" and normal or reverse sorts to bring the most\n"
+" active processes into view\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2709
+msgid ""
+"What you'll see is a very busy Linux doing what he's always done for you, "
+"but there was no program available to illustrate this."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2715
+msgid ""
+"Under an xterm using `white-on-black' colors, on \\*(We's Color Mapping "
+"screen set the task color to black and be sure that task highlighting is set "
+"to bold, not reverse. Then set the delay interval to around .3 seconds."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2718
+msgid ""
+"After bringing the most active processes into view, what you'll see are the "
+"ghostly images of just the currently running tasks."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2724
+msgid ""
+"Delete the existing rcfile, or create a new symlink. Start this new version "
+"then type `T' (a secret key, \\*(Xt 4c. Task Area Commands, SORTING) "
+"followed by `W' and `q'. Finally, restart the program with -d0 (zero delay)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2729
+msgid ""
+"Your display will be refreshed at three times the rate of the former \\*(We, "
+"a 300% speed advantage. As \\*(We climbs the TIME ladder, be as patient as "
+"you can while speculating on whether or not \\*(We will ever reach the "
+"\\*(We."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2731
+#, no-wrap
+msgid "7b. Bouncing Windows"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2734
+msgid "For these stupid tricks, \\*(We needs \\*(AM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2740
+msgid ""
+"With 3 or 4 \\*(TDs visible, pick any window other than the last and turn "
+"idle processes \\*F using the `i' \\*(CT. Depending on where you applied "
+"`i', sometimes several \\*(TDs are bouncing and sometimes it's like an "
+"accordion, as \\*(We tries his best to allocate space."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2746
+msgid ""
+"Set each window's summary lines differently: one with no memory (`m'); "
+"another with no states (`t'); maybe one with nothing at all, just the "
+"message line. Then hold down `a' or `w' and watch a variation on bouncing "
+"windows \\*(Em hopping windows."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2751
+msgid ""
+"Display all 4 windows and for each, in turn, set idle processes to \\*F "
+"using the `i' \\*(CT. You've just entered the \"extreme bounce\" zone."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2753
+#, no-wrap
+msgid "7c. The Big Bird Window"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2756
+msgid "This stupid trick also requires \\*(AM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2761
+msgid ""
+"Display all 4 windows and make sure that 1:Def is the \\*(CW. Then, keep "
+"increasing window size with the `n' \\*(CI until all the other \\*(TDs are "
+"\"pushed out of the nest\"."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2765
+msgid ""
+"When they've all been displaced, toggle between all visible/invisible "
+"windows using the `_' \\*(CT. Then ponder this:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2767
+#, no-wrap
+msgid " is \\*(We fibbing or telling honestly your imposed truth?\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2769
+#, no-wrap
+msgid "7d. The Ol' Switcheroo"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2773
+msgid ""
+"This stupid trick works best without \\*(AM, since justification is active "
+"on a per window basis."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2778
+msgid ""
+"Start \\*(We and make COMMAND the last (rightmost) column displayed. If "
+"necessary, use the `c' \\*(CT to display command lines and ensure that "
+"forest view mode is active with the `V' \\*(CT."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2782
+msgid ""
+"Then use the up/down arrow keys to position the display so that some "
+"truncated command lines are shown (`+' in last position). You may have to "
+"resize your xterm to produce truncation."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2784
+msgid "Lastly, use the `j' \\*(CT to make the COMMAND column right justified."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2788
+msgid ""
+"Now use the right arrow key to reach the COMMAND column. Continuing with "
+"the right arrow key, watch closely the direction of travel for the command "
+"lines being shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2791
+#, no-wrap
+msgid " some lines travel left, while others travel right\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2793
+#, no-wrap
+msgid " eventually all lines will Switcheroo, and move right\n"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2795
+#, fuzzy, no-wrap
+#| msgid "BUGS"
+msgid "9. BUGS"
+msgstr "BÅĘDY"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2800
+#, fuzzy
+#| msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE>"
+msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE .>"
+msgstr ""
+"Zgłoszenia błędów prosimy wysyłać na adres E<.UR procps@freelists.org> E<.UE>"
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2802
+#, no-wrap
+msgid "10. SEE Also"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2810
+#, fuzzy
+#| msgid ""
+#| "B<free>(1), B<iostat>(1), B<mpstat>(1), B<ps>(1), B<sar>(1), B<top>(1)"
+msgid ""
+"B<free>(1), B<ps>(1), B<uptime>(1), B<atop>(1), B<slabtop>(1), B<vmstat>(8), "
+"B<w>(1)"
+msgstr "B<free>(1), B<iostat>(1), B<mpstat>(1), B<ps>(1), B<sar>(1), B<top>(1)"
+
+#. type: TH
+#: ../man/procps.3:11
+#, no-wrap
+msgid "PROCPS"
+msgstr "PROCPS"
+
+#. type: TH
+#: ../man/procps.3:11 ../man/procps_misc.3:11 ../man/procps_pids.3:11
+#, no-wrap
+msgid "August 2022"
+msgstr "Sierpień 2022"
+
+#. type: TH
+#: ../man/procps.3:11 ../man/procps_misc.3:11 ../man/procps_pids.3:11
+#, no-wrap
+msgid "libproc2"
+msgstr "libproc2"
+
+#. type: Plain text
+#: ../man/procps.3:17
+msgid "procps - API to access system level information in the /proc filesystem"
+msgstr ""
+"procps - API do dostępu do informacji systemowych w systemie plików /proc"
+
+#. type: Plain text
+#: ../man/procps.3:22
+msgid ""
+"Five distinct interfaces are represented in this synopsis and named after "
+"the files they access in the /proc pseudo filesystem: B<diskstats>, "
+"B<meminfo>, B<slabinfo>, B<stat> and B<vmstat>."
+msgstr ""
+"W niniejszym opisie jest reprezentowanych pięć różnych interfejsów, "
+"nazwanych od plików służących do dostępu w pseudo systemie plików /proc: "
+"B<diskstats>, B<meminfo>, B<slabinfo>, B<stat> oraz B<vmstat>."
+
+#. type: Plain text
+#: ../man/procps.3:26
+#, no-wrap
+msgid "#include E<lt>libproc2/B<named_interface>.hE<gt>\n"
+msgstr "#include E<lt>libproc2/B<interfejs>.hE<gt>\n"
+
+#. type: Plain text
+#: ../man/procps.3:30
+#, no-wrap
+msgid ""
+"intB< procps_new > (struct info **I<info>);\n"
+"intB< procps_ref > (struct info *I<info>);\n"
+"intB< procps_unref> (struct info **I<info>);\n"
+msgstr ""
+"intB< procps_new > (struct info **I<info>);\n"
+"intB< procps_ref > (struct info *I<info>);\n"
+"intB< procps_unref> (struct info **I<info>);\n"
+
+#. type: Plain text
+#: ../man/procps.3:35
+#, no-wrap
+msgid ""
+"struct result *B<procps_get> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<name>, ] B<diskstats> api only\n"
+" enum item I<item>);\n"
+msgstr ""
+"struct result *B<procps_get> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<name>, ] tylko API B<diskstats>\n"
+" enum item I<item>);\n"
+
+#. type: Plain text
+#: ../man/procps.3:41
+#, no-wrap
+msgid ""
+"struct stack *B<procps_select> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<name>, ] B<diskstats> api only\n"
+" enum item *I<items>,\n"
+" int I<numitems>);\n"
+msgstr ""
+"struct stack *B<procps_select> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<name>, ] tylko API B<diskstats>\n"
+" enum item *I<items>,\n"
+" int I<numitems>);\n"
+
+#. type: Plain text
+#: ../man/procps.3:47
+#, no-wrap
+msgid ""
+"struct reaped *B<procps_reap> (\n"
+" struct info *I<info>,\n"
+"[ enum reap_type I<what>, ] B<stat> api only\n"
+" enum item *I<items>,\n"
+" int I<numitems>);\n"
+msgstr ""
+"struct reaped *B<procps_reap> (\n"
+" struct info *I<info>,\n"
+"[ enum reap_type I<what>, ] tylko API B<stat>\n"
+" enum item *I<items>,\n"
+" int I<numitems>);\n"
+
+#. type: Plain text
+#: ../man/procps.3:54
+#, no-wrap
+msgid ""
+"struct stack **B<procps_sort> (\n"
+" struct info *I<info>,\n"
+" struct stack *I<stacks>[],\n"
+" int I<numstacked>,\n"
+" enum item I<sortitem>,\n"
+" enum sort_order I<order>);\n"
+msgstr ""
+"struct stack **B<procps_sort> (\n"
+" struct info *I<info>,\n"
+" struct stack *I<stacks>[],\n"
+" int I<numstacked>,\n"
+" enum item I<sortitem>,\n"
+" enum sort_order I<order>);\n"
+
+#. type: Plain text
+#: ../man/procps.3:61
+msgid ""
+"The above functions and structures are generic but the specific "
+"B<named_interface> would also be part of any identifiers. For example, "
+"`procps_new' would actually be `procps_B<meminfo>_new' and `info' would "
+"really be `B<diskstats>_info', etc."
+msgstr ""
+"Powyższe funkcje i struktury są ogólne, ale konkretne B<interfejsy> stają "
+"się częścią identyfikatorów. Np. `procps_new' właściwie staje się "
+"`procps_B<meminfo>_new', `info' staje siÄ™ `B<diskstats>_info' itd."
+
+#. type: Plain text
+#: ../man/procps.3:64
+msgid ""
+"The same B<named_interface> is used in each header file name with an "
+"appended `.h' suffix."
+msgstr ""
+"Ten sam B<interfejs> jest używany w nazwie każdego pliku nagłówkowego z "
+"dodanym rozszerzeniem `.h'."
+
+#. type: Plain text
+#: ../man/procps.3:66 ../man/procps_pids.3:60
+msgid "Link with I<-lproc2>."
+msgstr "Konsolidować z I<-lproc2>."
+
+#. type: SS
+#: ../man/procps.3:68 ../man/procps_pids.3:62
+#, no-wrap
+msgid "Overview"
+msgstr "PrzeglÄ…d"
+
+#. type: Plain text
+#: ../man/procps.3:74
+msgid ""
+"Central to these interfaces is a simple `result' structure reflecting an "
+"`item' plus its value (in a union with standard C language types as "
+"members). All `result' structures are automatically allocated and provided "
+"by the library."
+msgstr ""
+"Interfejsy te opierajÄ… siÄ™ na prostej strukturze `result', "
+"odzwierciedlającej element `item' wraz z jego wartością (w unii ze "
+"standardowymi typami C jako składowymi). Wszystkie struktury `result' są "
+"automatycznie przydzielane i dostarczane przez bibliotekÄ™."
+
+#. type: Plain text
+#: ../man/procps.3:80 ../man/procps_pids.3:74
+msgid ""
+"By specifying an array of `items', these structures can be organized as a "
+"`stack', potentially yielding many results with a single function call. "
+"Thus, a `stack' can be viewed as a variable length record whose content and "
+"order is determined solely by the user."
+msgstr ""
+"Podając tablicę elementów `item', struktury te mogą być zorganizowane w "
+"\"stos\", potencjalnie zwracając wiele wyników w pojedynczym wywołaniu "
+"funkcji. W ten sposób na \"stos\" można patrzeć jak na rekord zmiennej "
+"długości, którego zawartość i porządek są określane wyłącznie przez "
+"użytkownika."
+
+#. type: Plain text
+#: ../man/procps.3:85
+msgid ""
+"As part of each interface there are two unique enumerators. The `noop' and "
+"`extra' items exist to hold user values. They are never set by the library, "
+"but the `extra' result will be zeroed with each library interaction."
+msgstr ""
+"Częścią każdego interfejsu jest para unikatowych enumeratorów. Elementy "
+"`noop' i `extra' istnieją w celu trzymania wartości użytkownika. Nie są "
+"nigdy ustawiane przez bibliotekÄ™, ale wynik `extra' jest zerowany przy "
+"każdej interakcji z biblioteką."
+
+#. type: Plain text
+#: ../man/procps.3:91
+msgid ""
+"The B<named_interface> header file will be an essential document during user "
+"program development. There you will find available items, their return type "
+"(the `result' struct member name) and the source for such values. "
+"Additional enumerators and structures are also documented there."
+msgstr ""
+"Plik nagłówkowy B<interfejsu> jest podstawowym dokumentem przy tworzeniu "
+"programu użytkownika. Tam można zaleźć dostępne elementy, ich typ zwracany "
+"(nazwę składowej struktury `result') oraz źródła tych wartości. Tam też są "
+"udokumentowane dodatkowe enumeratory czy struktury."
+
+#. type: SS
+#: ../man/procps.3:92 ../man/procps_pids.3:86
+#, no-wrap
+msgid "Usage"
+msgstr "Użycie"
+
+#. type: Plain text
+#: ../man/procps.3:95
+msgid "The following would be a typical sequence of calls to these interfaces."
+msgstr "Poniżej znajduje się typowa sekwencja wywołań tych intefejsów."
+
+#. type: Plain text
+#: ../man/procps.3:100
+#, no-wrap
+msgid ""
+"1. B<procps_new()>\n"
+"2. B<procps_get()>, B<procps_select()> or B<procps_reap()>\n"
+"3. B<procps_unref()>\n"
+msgstr ""
+"1. B<procps_new()>\n"
+"2. B<procps_get()>, B<procps_select()> lub B<procps_reap()>\n"
+"3. B<procps_unref()>\n"
+
+#. type: Plain text
+#: ../man/procps.3:106
+msgid ""
+"The B<get> function is used to retrieve a `result' structure for a single "
+"`item'. Alternatively, a B<GET> macro is available when only the return "
+"value is of interest."
+msgstr ""
+"Funkcja B<get> służy do odczytania struktury `result' dla pojedynczego "
+"elementu `item'. Alternatywnie dostępne jest makro B<GET>, kiedy istotna "
+"jest tylko wartość zwracana."
+
+#. type: Plain text
+#: ../man/procps.3:109
+msgid ""
+"The B<select> function can retrieve multiple `result' structures in a single "
+"`stack'."
+msgstr ""
+"Funkcja B<select> potrafi odczytać wiele struktur `result' z pojedynczego "
+"\"stosu\"."
+
+#. type: Plain text
+#: ../man/procps.3:115
+msgid ""
+"For unpredictable variable outcomes, the B<diskstats>, B<slabinfo> and "
+"B<stat> interfaces export a B<reap> function. It is used to retrieve "
+"multiple `stacks' each containing multiple `result' structures. Optionally, "
+"a user may choose to B<sort> those results."
+msgstr ""
+"Na potrzeby nieprzewidywalnych, zmiennych wyników, interfejsy B<diskstats>, "
+"B<slabinfo> oraz B<stat> eksportują funkcję B<reap>. Służy do odczytania "
+"wielu \"stosów\", zawierających wiele struktur `result'. Opcjonalnie "
+"użytkownik może zdecydować, aby wykonać B<sort> tych wyników."
+
+#. type: Plain text
+#: ../man/procps.3:122 ../man/procps_pids.3:114
+msgid ""
+"To exploit any `stack', and access individual `result' structures, a "
+"I<relative_enum> is required as shown in the B<VAL> macro defined in the "
+"header file. Such values could be hard coded as: 0 through numitems-1. "
+"However, this need is typically satisfied by creating your own enumerators "
+"corresponding to the order of the `items' array."
+msgstr ""
+"Aby wykorzystać dowolny \"stos\" i dostać się do poszczególnych struktur "
+"`result', wymagana jest wartość I<relative_enum>, jak widać w makrze B<VAL> "
+"zdefiniowanym w pliku nagłówkowym. Takie wartości mogą być sztywno "
+"zakodowane od 0 do numitems-1. Zwykle jednak tÄ™ potrzebÄ™ zaspokaja siÄ™ "
+"tworząc własne enumeratory odpowiadające kolejności tablicy `items'."
+
+#. type: SS
+#: ../man/procps.3:123 ../man/procps_pids.3:115
+#, no-wrap
+msgid "Caveats"
+msgstr "Zastrzeżenia"
+
+#. type: Plain text
+#: ../man/procps.3:126
+msgid ""
+"The B<new>, B<ref>, B<unref>, B<get> and B<select> functions are available "
+"in all five interfaces."
+msgstr ""
+"Funkcje B<new>, B<ref>, B<unref>, B<get> oraz B<select> są dostępne we "
+"wszystkich pięciu interfejsach."
+
+#. type: Plain text
+#: ../man/procps.3:131 ../man/procps_pids.3:127
+msgid ""
+"For the B<new> and B<unref> functions, the address of an I<info> struct "
+"pointer must be supplied. With B<new> it must have been initialized to "
+"NULL. With B<unref> it will be reset to NULL if the reference count reaches "
+"zero."
+msgstr ""
+"W przypadku funkcji B<new> i B<unref>, trzeba przekazać adres wskaźnika do "
+"struktury I<info>. W przypadku B<new> musi być zainicjowany na NULL. W "
+"przypadku B<unref> zostanie ustawiony na NULL, jeśli licznik odwołań "
+"osiÄ…gnie zero."
+
+#. type: Plain text
+#: ../man/procps.3:135
+msgid ""
+"In the case of the B<diskstats> interface, a I<name> parameter on the B<get> "
+"and B<select> functions identifies a disk or partition name"
+msgstr ""
+"W przypadku interfejsu B<diskstats>, parametr I<name> funkcji B<get> i "
+"B<select> określa nazwę dysku lub partycji"
+
+#. type: Plain text
+#: ../man/procps.3:139
+msgid ""
+"For the B<stat> interface, a I<what> parameter on the B<reap> function "
+"identifies whether data for just CPUs or both CPUs and NUMA nodes is to be "
+"gathered."
+msgstr ""
+"W przypadku interfejsu B<stat>, parametr I<what> funkcji B<reap> określa, "
+"czy zebrane mają być dane tylko dla CPU, czy dla CPU oraz NUMA."
+
+#. type: Plain text
+#: ../man/procps.3:143
+msgid ""
+"When using the B<sort> function, the parameters I<stacks> and I<numstacked> "
+"would normally be those returned in the `reaped' structure."
+msgstr ""
+"Przy używaniu funkcji B<sort>, parametry I<stacks> i I<numstacked> są zwykle "
+"zwracame w strukturze `reaped'."
+
+#. type: SH
+#: ../man/procps.3:144 ../man/procps_misc.3:127 ../man/procps_pids.3:148
+#, no-wrap
+msgid "RETURN VALUE"
+msgstr "WARTOŚĆ ZWRACANA"
+
+#. type: SS
+#: ../man/procps.3:145 ../man/procps_pids.3:149
+#, no-wrap
+msgid "Functions Returning an `int'"
+msgstr "Funkcje zwracajÄ…ce `int'"
+
+#. type: Plain text
+#: ../man/procps.3:148 ../man/procps_misc.3:131 ../man/procps_pids.3:152
+msgid ""
+"An error will be indicated by a negative number that is always the inverse "
+"of some well known errno.h value."
+msgstr ""
+"Błąd jest oznaczany poprzez liczbę ujemną, będącą liczbą przeciwną do znanej "
+"wartości errno.h."
+
+#. type: Plain text
+#: ../man/procps.3:152 ../man/procps_pids.3:156
+msgid ""
+"Success is indicated by a zero return value. However, the B<ref> and "
+"B<unref> functions return the current I<info> structure reference count."
+msgstr ""
+"Sukces jest oznaczany wartością zerową. Jednak funkcje B<ref> i B<unref> "
+"zwracają bieżący licznik odwołań struktury I<info>."
+
+#. type: SS
+#: ../man/procps.3:153 ../man/procps_misc.3:132 ../man/procps_pids.3:157
+#, no-wrap
+msgid "Functions Returning an `address'"
+msgstr "Funkcje zwracajÄ…ce adres"
+
+#. type: Plain text
+#: ../man/procps.3:156 ../man/procps_misc.3:135 ../man/procps_pids.3:160
+msgid ""
+"An error will be indicated by a NULL return pointer with the reason found in "
+"the formal errno value."
+msgstr ""
+"Błąd jest oznaczany zwracanym wskaźnikiem NULL, a powód można znaleźć w "
+"wartości errno."
+
+#. type: Plain text
+#: ../man/procps.3:158
+msgid "Success is indicated by a pointer to the named structure."
+msgstr "Sukces jest oznaczany wskaźnikiem na nazwaną strukturę."
+
+#. type: SH
+#: ../man/procps.3:159 ../man/procps_pids.3:165
+#, no-wrap
+msgid "DEBUGGING"
+msgstr "DIAGNOSTYKA"
+
+#. type: Plain text
+#: ../man/procps.3:165
+msgid ""
+"To aid in program development, there is a provision that can help ensure "
+"`result' member references agree with library expectations. It assumes that "
+"a supplied macro in the header file is used to access the `result' value."
+msgstr ""
+"Aby pomóc przy rozwijaniu programów, jest udogodnienie pozwalające zapewnić, "
+"że odwołania do składowej `result' zgadzają się z oczekiwaniami biblioteki. "
+"Zakłada, że do dostępu do wartości `result' jest używane makro udostępnione "
+"w pliku nagłówkowym."
+
+#. type: Plain text
+#: ../man/procps.3:168 ../man/procps_pids.3:185
+msgid ""
+"This feature can be activated through either of the following methods and "
+"any discrepancies will be written to B<stderr>."
+msgstr ""
+"Tę opcję można włączyć w jeden z poniższych sposobów, a wszystkie "
+"niezgodności będą wypisane na B<stderr>."
+
+#. type: IP
+#: ../man/procps.3:169 ../man/procps_pids.3:186
+#, no-wrap
+msgid "1)"
+msgstr "1)"
+
+#. type: Plain text
+#: ../man/procps.3:172
+msgid ""
+"Add CFLAGS='-DXTRA_PROCPS_DEBUG' to any other ./configure options employed."
+msgstr ""
+"Dodanie CFLAGS='-DXTRA_PROCPS_DEBUG' do pozostałych użytych opcji ./"
+"configure."
+
+#. type: IP
+#: ../man/procps.3:173 ../man/procps_pids.3:190
+#, no-wrap
+msgid "2)"
+msgstr "2)"
+
+#. type: Plain text
+#: ../man/procps.3:176
+msgid ""
+"Add #include E<lt>procps/xtra-procps-debug.hE<gt> to any program I<after> "
+"the named interface includes."
+msgstr ""
+"Dodanie #include E<lt>procps/xtra-procps-debug.hE<gt> do dowolnego programu "
+"I<po> nagłówkach nazwanych interfejsów."
+
+#. type: Plain text
+#: ../man/procps.3:181 ../man/procps_pids.3:198
+msgid ""
+"This verification feature incurs substantial overhead. Therefore, it is "
+"important that it I<not> be activated for a production/release build."
+msgstr ""
+"Ta opcja weryfikacji dodaje istotny narzut. W związku z tym ważne jest, żeby "
+"I<nie> była włączona w binariach produkcyjnych."
+
+#. type: Plain text
+#: ../man/procps.3:185
+msgid "B<procps_misc>(3), B<procps_pids>(3), B<proc>(5)."
+msgstr "B<procps_misc>(3), B<procps_pids>(3), B<proc>(5)."
+
+#. type: TH
+#: ../man/procps_misc.3:11
+#, no-wrap
+msgid "PROCPS_MISC"
+msgstr "PROCPS_MISC"
+
+#. type: Plain text
+#: ../man/procps_misc.3:17
+msgid "procps_misc - API for miscellaneous information in the /proc filesystem"
+msgstr "procps_misc - API do różnych informacji w systemie plików /proc"
+
+#. type: Plain text
+#: ../man/procps_misc.3:20
+#, no-wrap
+msgid "B<#include E<lt>libproc2/misc.hE<gt>>\n"
+msgstr "B<#include E<lt>libproc2/misc.hE<gt>>\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:22
+#, no-wrap
+msgid "Platform Particulars\n"
+msgstr "Szczegóły platformy\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:28
+#, no-wrap
+msgid ""
+"long B<procps_cpu_count> (void);\n"
+"long B<procps_hertz_get> (void);\n"
+"unsigned int B<procps_pid_length> (void);\n"
+"int B<procps_linux_version> (void);\n"
+msgstr ""
+"long B<procps_cpu_count> (void);\n"
+"long B<procps_hertz_get> (void);\n"
+"unsigned int B<procps_pid_length> (void);\n"
+"int B<procps_linux_version> (void);\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:31
+#, no-wrap
+msgid "Runtime Particulars\n"
+msgstr "Szczegóły czasu działania\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:37
+#, no-wrap
+msgid ""
+"int B< procps_loadavg> (double *I<av1>, double *I<av5>, double *I<av15>);\n"
+"int B< procps_uptime> (double *I<uptime_secs>, double *I<idle_secs>);\n"
+"char *B<procps_uptime_sprint> (void);\n"
+"char *B<procps_uptime_sprint_short> (void);\n"
+msgstr ""
+"int B< procps_loadavg> (double *I<av1>, double *I<av5>, double *I<av15>);\n"
+"int B< procps_uptime> (double *I<uptime_secs>, double *I<idle_secs>);\n"
+"char *B<procps_uptime_sprint> (void);\n"
+"char *B<procps_uptime_sprint_short> (void);\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:40
+#, no-wrap
+msgid "Namespace Particulars\n"
+msgstr "Szczegóły przestrzeni nazw\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:45
+#, no-wrap
+msgid ""
+"int B< procps_ns_get_id> (const char *I<name>);\n"
+"const charB< *procps_ns_get_name> (int I<id>);\n"
+"int B< procps_ns_read_pid> (int I<pid>, struct procps_ns *I<nsp>);\n"
+msgstr ""
+"int B< procps_ns_get_id> (const char *I<name>);\n"
+"const charB< *procps_ns_get_name> (int I<id>);\n"
+"int B< procps_ns_read_pid> (int I<pid>, struct procps_ns *I<nsp>);\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:48
+#, no-wrap
+msgid "Link with I<-lproc2>.\n"
+msgstr "Konsolidować z I<-lproc2>.\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:54
+msgid ""
+"B<procps_cpu_count>() returns the number of CPUs that are currently online "
+"as B<sysconf(>I<_SC_NPROCESSORS_ONLY>B<)> or an assumed I<1>."
+msgstr ""
+"B<procps_cpu_count>() zwraca liczbę CPU obecnie włączonych, jak w "
+"B<sysconf(>I<_SC_NPROCESSORS_ONLY>B<)> lub przyjęte I<1>."
+
+#. type: Plain text
+#: ../man/procps_misc.3:60
+msgid ""
+"B<procps_hertz_get>() returns the number of clock ticks per second as "
+"B<sysconf(>I<_SC_CLK_TCK>B<)> or an assumed I<100>. Dividing tics by this "
+"value yields seconds."
+msgstr ""
+"B<procps_hertz_get>() zwraca liczbę tyknięć zegara na sekundę, jak w "
+"B<sysconf(>I<_SC_CLK_TCK>B<)> lub przyjęte I<100>. Podzielenie tyknięć przez "
+"tę wartość daje sekundy."
+
+#. type: Plain text
+#: ../man/procps_misc.3:65
+msgid ""
+"B<procps_pid_length>() returns the maximum string length for a PID on the "
+"system. For example, if the largest possible PID value on was 123, then the "
+"length would be 3. If the file I</proc/sys/kernel/pid_max> is unreadable, "
+"the value is assumed to be I<5>."
+msgstr ""
+"B<procps_pid_length>() zwraca maksymalną długość łańcucha dla PIDu w "
+"systemie. Na przykład, jeśli największa możliwa wartość PID to 123, długość "
+"wynosi 3. Jeśli plik I</proc/sys/kernel/pid_max> jest nieczytelny, "
+"przyjmowana jest wartość I<5>."
+
+#. type: Plain text
+#: ../man/procps_misc.3:74
+msgid ""
+"B<procps_linux_version>() returns the current Linux version as an encoded "
+"integer. On non-Linux systems that have an emulated proc filesystem this "
+"function returns the version of the Linux emulation instead. The version "
+"consists of three positive integers representing the major, minor and patch "
+"levels. The following macros are provided for encoding a given Linux "
+"version or separating out the components of the current version."
+msgstr ""
+"B<procps_linux_version>() zwraca bieżącą wersję Linuksa zakodowaną w "
+"liczbie całkowitej. Na systemach innych niż Linux, mających emulację systemu "
+"plików proc, ta funkcja zwraca wersję emulacji Linuksa. Wersja składa się z "
+"trzech dodatnich liczb całkowitych, oznaczających poziomy główny, poboczny i "
+"poprawek. Do kodowania danej wersji Linuksa lub podziału wersji na składniki "
+"służą poniższe makra:"
+
+#. type: Plain text
+#: ../man/procps_misc.3:77
+msgid "LINUX_VERSION(\\ major\\ ,\\ minor\\ ,\\ patch\\ )"
+msgstr "LINUX_VERSION(\\ major\\ ,\\ minor\\ ,\\ patch\\ )"
+
+#. type: Plain text
+#: ../man/procps_misc.3:79
+msgid "LINUX_VERSION_MAJOR(\\ ver\\ )"
+msgstr "LINUX_VERSION_MAJOR(\\ ver\\ )"
+
+#. type: Plain text
+#: ../man/procps_misc.3:81
+msgid "LINUX_VERSION_MINOR(\\ ver\\ )"
+msgstr "LINUX_VERSION_MINOR(\\ ver\\ )"
+
+#. type: Plain text
+#: ../man/procps_misc.3:83
+msgid "LINUX_VERSION_PATCH(\\ ver\\ )"
+msgstr "LINUX_VERSION_PATCH(\\ ver\\ )"
+
+#. type: Plain text
+#: ../man/procps_misc.3:88
+msgid ""
+"B<procps_loadavg>() fetches the system load average and puts the 1, 5 and "
+"15 minute averages into location(s) specified by any pointer which is not "
+"I<NULL>."
+msgstr ""
+"B<procps_loadavg>() pobiera średnie obciążenie systemu i wpisuje średnie "
+"1-, 5- i 15-minutowe w miejsce określone wskaźnikiem różnym niż I<NULL>."
+
+#. type: Plain text
+#: ../man/procps_misc.3:93
+msgid ""
+"B<procps_uptime>() returns uptime and/or idle seconds into location(s) "
+"specified by any pointer which is not I<NULL>. The B<sprint> varieties "
+"return a human-readable string in one of two forms."
+msgstr ""
+"B<procps_uptime>() zwraca czas działania systemu i/lub liczbę sekund "
+"bezczynności w miejsce określone wskaźnikiem innym niż I<NULL>. Odmiana "
+"B<sprint> zwraca łańcuch czytelny dla użytkownika w jednej z dwóch postaci."
+
+#. type: Plain text
+#: ../man/procps_misc.3:96
+msgid "HH:MM:SS up HH:MM, # users, load average: 1, 5, 15 MM averages"
+msgstr "HH:MM:SS up HH:MM, # users, load average: średnie 1, 5, 15 minutowe"
+
+#. type: Plain text
+#: ../man/procps_misc.3:98
+msgid "up HH, MM"
+msgstr "up HH, MM"
+
+#. type: Plain text
+#: ../man/procps_misc.3:102
+msgid ""
+"B<procps_ns_get_id>() returns the integer id (enum namespace_type) of the "
+"namespace for the given namespace I<name>."
+msgstr ""
+"B<procps_ns_get_id>() zwraca całkowite id (enum namespace_type) przestrzeni "
+"nazw dla podanej przestrzeni nazw I<name>."
+
+#. type: Plain text
+#: ../man/procps_misc.3:105
+msgid ""
+"B<procps_ns_get_name>() returns the name of the namespace for the given "
+"I<id> (enum namespace_type)."
+msgstr ""
+"B<procps_ns_get_name>() zwraca nazwÄ™ przestrzeni nazw dla podanego I<id> "
+"(enum namespace_type)."
+
+#. type: Plain text
+#: ../man/procps_misc.3:110
+msgid ""
+"B<procps_ns_read_pid>() returns the inodes for the namespaces of the given "
+"process in the procps_ns structure pointed to by I<nsp>. Those inodes will "
+"appear in the order proscribed by enum namespace_type."
+msgstr ""
+"B<procps_ns_read_pid>() zwraca i-węzły przestrzeni nazw podanego procesu w "
+"strukturze procps_ns wskazanej przez I<nsp>. I-węzły będą w kolejności "
+"określonej przez enum namespace_type."
+
+#. type: Plain text
+#: ../man/procps_misc.3:123
+#, no-wrap
+msgid ""
+"enum namespace_type {\n"
+" PROCPS_NS_CGROUP,\n"
+" PROCPS_NS_IPC,\n"
+" PROCPS_NS_MNT,\n"
+" PROCPS_NS_NET,\n"
+" PROCPS_NS_PID,\n"
+" PROCPS_NS_TIME,\n"
+" PROCPS_NS_USER,\n"
+" PROCPS_NS_UTS\n"
+"};\n"
+msgstr ""
+"enum namespace_type {\n"
+" PROCPS_NS_CGROUP,\n"
+" PROCPS_NS_IPC,\n"
+" PROCPS_NS_MNT,\n"
+" PROCPS_NS_NET,\n"
+" PROCPS_NS_PID,\n"
+" PROCPS_NS_TIME,\n"
+" PROCPS_NS_USER,\n"
+" PROCPS_NS_UTS\n"
+"};\n"
+
+#. type: SS
+#: ../man/procps_misc.3:128
+#, no-wrap
+msgid "Functions Returning an `int' or `long'"
+msgstr "Funkcje zwracajÄ…ce `int' lub `long'"
+
+#. type: TP
+#: ../man/procps_misc.3:137
+#, no-wrap
+msgid "I</proc/loadavg>"
+msgstr "I</proc/loadavg>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:140
+msgid "The raw values for load average."
+msgstr "Surowe wartości średniego obciążenia."
+
+#. type: TP
+#: ../man/procps_misc.3:140
+#, no-wrap
+msgid "I</proc/sys/kernel/osrelease>"
+msgstr "I</proc/sys/kernel/osrelease>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:143
+msgid "Contains the release version of the Linux kernel or proc filesystem."
+msgstr "Wersja wydania jądra Linuksa lub systemu plików proc."
+
+#. type: TP
+#: ../man/procps_misc.3:143
+#, no-wrap
+msgid "I</proc/sys/kernel/pid_max>"
+msgstr "I</proc/sys/kernel/pid_max>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:146
+msgid ""
+"Contains the value at which PIDs wrap around, one greater than the maximum "
+"PID value."
+msgstr ""
+"Wartość, przy której licznik PIDów się przekręca - o jeden większa, niż "
+"maksymalna wartość PID."
+
+#. type: TP
+#: ../man/procps_misc.3:146
+#, no-wrap
+msgid "I</proc/uptime>"
+msgstr "I</proc/uptime>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:149
+msgid "The raw values for uptime and idle time."
+msgstr "Surowe wartości czasu włączenia systemu i bezczynności."
+
+#. type: TP
+#: ../man/procps_misc.3:149
+#, no-wrap
+msgid "I</proc/E<lt>PIDE<gt>/ns>"
+msgstr "I</proc/E<lt>PIDE<gt>/ns>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:152
+msgid "contains the set of namespaces for a particular B<PID>."
+msgstr "zbiór przestrzeni nazw dla określonegu B<PIDu>."
+
+#. type: Plain text
+#: ../man/procps_misc.3:156
+msgid "B<procps>(3), B<procps_pids>(3), B<proc>(5)."
+msgstr "B<procps>(3), B<procps_pids>(3), B<proc>(5)."
+
+#. type: TH
+#: ../man/procps_pids.3:11
+#, no-wrap
+msgid "PROCPS_PIDS"
+msgstr "PROCPS_PIDS"
+
+#. type: Plain text
+#: ../man/procps_pids.3:17
+msgid "procps_pids - API to access process information in the /proc filesystem"
+msgstr ""
+"procps_pids - API do dostępu do informacji o procesach w systemie plików /"
+"proc"
+
+#. type: Plain text
+#: ../man/procps_pids.3:21
+#, no-wrap
+msgid "#include E<lt>libproc2/pids.hE<gt>\n"
+msgstr "#include E<lt>libproc2/pids.hE<gt>\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:25
+#, no-wrap
+msgid ""
+"intB< procps_pids_new > (struct pids_info **I<info>, enum pids_item *I<items>, int I<numitems>);\n"
+"intB< procps_pids_ref > (struct pids_info *I<info>);\n"
+"intB< procps_pids_unref> (struct pids_info **I<info>);\n"
+msgstr ""
+"intB< procps_pids_new > (struct pids_info **I<info>, enum pids_item *I<items>, int I<numitems>);\n"
+"intB< procps_pids_ref > (struct pids_info *I<info>);\n"
+"intB< procps_pids_unref> (struct pids_info **I<info>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:30
+#, no-wrap
+msgid ""
+"struct pids_stack *B<procps_pids_get> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<which>);\n"
+msgstr ""
+"struct pids_stack *B<procps_pids_get> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<which>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:34
+#, no-wrap
+msgid ""
+"struct pids_fetch *B<procps_pids_reap> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<which>);\n"
+msgstr ""
+"struct pids_fetch *B<procps_pids_reap> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<which>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:40
+#, no-wrap
+msgid ""
+"struct pids_fetch *B<procps_pids_select> (\n"
+" struct pids_info *I<info>,\n"
+" unsigned *I<these>,\n"
+" int I<numthese>,\n"
+" enum pids_select_type I<which>);\n"
+msgstr ""
+"struct pids_fetch *B<procps_pids_select> (\n"
+" struct pids_info *I<info>,\n"
+" unsigned *I<these>,\n"
+" int I<numthese>,\n"
+" enum pids_select_type I<which>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:47
+#, no-wrap
+msgid ""
+"struct pids_stack **B<procps_pids_sort> (\n"
+" struct pids_info *I<info>,\n"
+" struct pids_stack *I<stacks>[],\n"
+" int I<numstacked>,\n"
+" enum pids_item I<sortitem>,\n"
+" enum pids_sort_order I<order>);\n"
+msgstr ""
+"struct pids_stack **B<procps_pids_sort> (\n"
+" struct pids_info *I<info>,\n"
+" struct pids_stack *I<stacks>[],\n"
+" int I<numstacked>,\n"
+" enum pids_item I<sortitem>,\n"
+" enum pids_sort_order I<order>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:52
+#, no-wrap
+msgid ""
+"int B<procps_pids_reset> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_item *I<newitems>,\n"
+" int I<newnumitems>);\n"
+msgstr ""
+"int B<procps_pids_reset> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_item *I<newitems>,\n"
+" int I<newnumitems>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:56
+#, no-wrap
+msgid ""
+"struct pids_stack *B<fatal_proc_unmounted> (\n"
+" struct pids_info *I<info>,\n"
+" int I<return_self>);\n"
+msgstr ""
+"struct pids_stack *B<fatal_proc_unmounted> (\n"
+" struct pids_info *I<info>,\n"
+" int I<return_self>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:68
+msgid ""
+"Central to this interface is a simple `result' structure reflecting an "
+"`item' plus its value (in a union with standard C language types as "
+"members). All `result' structures are automatically allocated and provided "
+"by the library."
+msgstr ""
+"Interfejs ten opiera siÄ™ na prostej strukturze `result', odzwierciedlajÄ…cej "
+"element `item' wraz z jego wartością (w unii ze standardowymi typami C jako "
+"składowymi). Wszystkie struktury `result' są automatycznie przydzielane i "
+"dostarczane przez bibliotekÄ™."
+
+#. type: Plain text
+#: ../man/procps_pids.3:79
+msgid ""
+"As part of this interface there are two unique enumerators. The `noop' and "
+"`extra' items exist to hold user values. They are never set by the library, "
+"but the `extra' result will be zeroed with each library interaction."
+msgstr ""
+"Częścią tego interfejsu jest para unikatowych enumeratorów. Elementy `noop' "
+"i `extra' istnieją w celu trzymania wartości użytkownika. Nie są nigdy "
+"ustawiane przez bibliotekę, ale wynik `extra' jest zerowany przy każdej "
+"interakcji z bibliotekÄ…."
+
+#. type: Plain text
+#: ../man/procps_pids.3:85
+msgid ""
+"The pids.h file will be an essential document during user program "
+"development. There you will find available items, their return type (the "
+"`result' struct member name) and the source for such values. Additional "
+"enumerators and structures are also documented there."
+msgstr ""
+"Plik pids.h jest podstawowym dokumentem przy tworzeniu programu użytkownika. "
+"Tam można zaleźć dostępne elementy, ich typ zwracany (nazwę składowej "
+"struktury `result') oraz źródła tych wartości. Tam też są udokumentowane "
+"dodatkowe enumeratory czy struktury."
+
+#. type: Plain text
+#: ../man/procps_pids.3:89
+msgid "The following would be a typical sequence of calls to this interface."
+msgstr "Poniżej znajduje się typowa sekwencja wywołań tego intefejsu."
+
+#. type: Plain text
+#: ../man/procps_pids.3:95
+#, no-wrap
+msgid ""
+"1. B<fatal_proc_unmounted()>\n"
+"2. B<procps_pids_new()>\n"
+"3. B<procps_pids_get()>, B<procps_pids_reap()> or B<procps_pids_select()>\n"
+"4. B<procps_pids_unref()>\n"
+msgstr ""
+"1. B<fatal_proc_unmounted()>\n"
+"2. B<procps_pids_new()>\n"
+"3. B<procps_pids_get()>, B<procps_pids_reap()> lub B<procps_pids_select()>\n"
+"4. B<procps_pids_unref()>\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:100
+msgid ""
+"The B<get> function is an iterator for successive PIDs/TIDs, returning those "
+"`items' previously identified via B<new> or B<reset>."
+msgstr ""
+"Funkcja B<get> to iterator dla kolejnych PIDów/TIDów, zwracający te elementy "
+"`item' wcześniej określane poprzez B<new> lub B<reset>."
+
+#. type: Plain text
+#: ../man/procps_pids.3:107
+msgid ""
+"Two functions support unpredictable variable outcomes. The B<reap> function "
+"gathers data for all processes while the B<select> function deals with "
+"specific PIDs or UIDs. Both can return multiple `stacks' each containing "
+"multiple `result' structures. Optionally, a user may choose to B<sort> such "
+"results"
+msgstr ""
+"Dwie funkcje obsługują nieprzewidywalne, zmienne wyniki. Funkcja B<reap> "
+"zbiera dane dla wszystkich procesów, a funkcja B<select> obsługuje konkretne "
+"PIDy i UIDy. Obie mogą zwrócić wiele \"stosów\", z których każdy zawiera "
+"wiele struktur `result'. Opcjonalnie użytkownik może zdecydować, aby wykonać "
+"B<sort> tych wyników."
+
+#. type: Plain text
+#: ../man/procps_pids.3:122
+msgid ""
+"The E<lt>pidsE<gt> API differs from others in that those items of interest "
+"must be provided at B<new> or B<reset> time, the latter being unique to this "
+"API. If either the I<items> or I<numitems> parameter is zero at B<new> "
+"time, then B<reset> becomes mandatory before issuing any other call."
+msgstr ""
+"API E<lt>pidsE<gt> różni się od innych tym, że interesujące elementy trzeba "
+"przekazać w czasie B<new> lub B<reset> - to drugie zachodzi tylko dla tego "
+"API. Jeśli w czasie B<new> parametr I<items> lub I<numitems> jest zerowy, "
+"wywołanie B<reset> jest obowiązkowe przed wykonaniem dowolnego innego "
+"wywołania."
+
+#. type: Plain text
+#: ../man/procps_pids.3:130
+msgid ""
+"The B<get> and B<reap> functions use the I<which> parameter to specify "
+"whether just tasks or both tasks and threads are to be fetched."
+msgstr ""
+"Funkcje B<get> i B<reap> wykorzystują parametr I<which>, określający, czy "
+"pobrane mogą być tylko zadania, czy zadania i wątki."
+
+#. type: Plain text
+#: ../man/procps_pids.3:135
+msgid ""
+"The B<select> function requires an array of PIDs or UIDs as I<these> along "
+"with I<numthese> to identify which processes are to be fetched. This "
+"function then operates as a subset of B<reap>."
+msgstr ""
+"Funkcja B<select> wymaga jako I<these> wraz z I<numthese> tablicy PIDów lub "
+"UIDów, określających procesy do pobrania. Ta funkcja operuje działa jako "
+"podzbiór B<reap>."
+
+#. type: Plain text
+#: ../man/procps_pids.3:139
+msgid ""
+"When using the B<sort> function, the parameters I<stacks> and I<numstacked> "
+"would normally be those returned in the `pids_fetch' structure."
+msgstr ""
+"W przypadku funkcji B<sort>, parametry I<stacks> oraz I<numstacked> będą "
+"zwykle zwracane w strukturze `pids_fetch'."
+
+#. type: Plain text
+#: ../man/procps_pids.3:147
+msgid ""
+"Lastly, a B<fatal_proc_unmounted> function may be called before any other "
+"function to ensure that the /proc/ directory is mounted. As such, the "
+"I<info> parameter would be NULL and the I<return_self> parameter zero. If, "
+"however, some items are desired for the issuing program (a I<return_self> "
+"other than zero) then the B<new> call must precede it to identify the "
+"I<items> and obtain the required I<info> pointer."
+msgstr ""
+"Funkcja B<fatal_proc_unmounted> może być wywołana przed dowolną inną "
+"funkcją, aby upewnić się, że katalog /proc/ jest zamontowany. W takim "
+"przypadku parametr I<info> będzie NULLem, a parametr I<return_self> zerem. "
+"Jeśli jednak jakieś elementy są pożądane przez wywołujący program "
+"(I<return_self> inny niż zero), wywołanie B<new> musi je poprzedzać, aby "
+"określić elementy I<items> i uzyskać żądany wskaźnik I<info>."
+
+#. type: Plain text
+#: ../man/procps_pids.3:164
+msgid ""
+"Success is indicated by a pointer to the named structure. However, if one "
+"survives the B<fatal_proc_unmounted> call, NULL is always returned when "
+"I<return_self> is zero."
+msgstr ""
+"Sukces jest oznaczany wskaźnikiem na nazwaną strukturę. Jednak, jeśli "
+"program przeżyje wywołanie B<fatal_proc_unmounted>, zwracany jest zawsze "
+"NULL, jeśli I<return_self> jest zerowy."
+
+#. type: Plain text
+#: ../man/procps_pids.3:168
+msgid ""
+"To aid in program development, there are two procps-ng provisions that can "
+"be exploited."
+msgstr ""
+"Aby pomóc przy rozwijaniu programów, można wykorzystać dwa udogodnienia "
+"procps-ng."
+
+#. type: Plain text
+#: ../man/procps_pids.3:173
+msgid ""
+"The first is a supplied file named `libproc.supp' which may be useful when "
+"developing a I<multi-threaded> application. When used with the valgrind `--"
+"suppressions=' option, warnings associated with the procps library itself "
+"are avoided."
+msgstr ""
+"Pierwsze do dołączony plik o nazwie `libproc.supp', który może być przydatny "
+"przy rozwijaniu aplikacji wielowątkowych. W przypadku użycia opcji valgrinda "
+"`--suppressions=', pomijane będą ostrzeżenia związane z samą biblioteką "
+"procps."
+
+#. type: Plain text
+#: ../man/procps_pids.3:177
+msgid ""
+"Such warnings arise because the library handles heap based allocations in a "
+"thread-safe manner. A I<single-threaded> application will not receive those "
+"warnings."
+msgstr ""
+"Ostrzeżenia takie mogą się pojawić, ponieważ biblioteka obsługuje "
+"przydzielanie pamięci na stercie w sposób bezpieczny dla wątków. Aplikacje "
+"jednowątkowe nie będą powodowały ostrzeżeń."
+
+#. type: Plain text
+#: ../man/procps_pids.3:182
+msgid ""
+"The second provision can help ensure `result' member references agree with "
+"library expectations. It assumes that a supplied macro in the header file "
+"is used to access the `result' value."
+msgstr ""
+"Drugie udogodnienie pozwala zapewnić, że odwołania do składowej `result' "
+"zgadzają się z oczekiwaniami biblioteki. Zakłada, że do dostępu do wartości "
+"`result' jest używane makro udostępnione w pliku nagłówkowym."
+
+#. type: Plain text
+#: ../man/procps_pids.3:189
+msgid ""
+"Add CFLAGS='-DXTRA_PROCPS_DEBUG' to any other ./configure options your "
+"project may employ."
+msgstr ""
+"Dodanie CFLAGS='-DXTRA_PROCPS_DEBUG' do pozostałych użytych opcji ./"
+"configure."
+
+#. type: Plain text
+#: ../man/procps_pids.3:193
+msgid ""
+"Add #include E<lt>procps/xtra-procps-debug.hE<gt> to any program I<after> "
+"the #include E<lt>procps/pids.hE<gt>."
+msgstr ""
+"Dodanie #include E<lt>procps/xtra-procps-debug.hE<gt> do dowolnego programu "
+"I<po> #include E<lt>procps/pids.hE<gt>."
+
+#. type: SH
+#: ../man/procps_pids.3:199
+#, no-wrap
+msgid "ENVIRONMENT VARIABLE(S)"
+msgstr "ZMIENNE ÅšRODOWISKOWE"
+
+#. type: Plain text
+#: ../man/procps_pids.3:206
+msgid ""
+"This will hide kernel threads which would otherwise be returned with a "
+"B<procps_pids_get>, B<procps_pids_select> or B<procps_pids_reap> call."
+msgstr ""
+"Zmienna ukrywa wątki jądra, które w innym wypadku byłyby zwrócone przez "
+"wywołania B<procps_pids_get>, B<procps_pids_select> i B<procps_pids_reap>."
+
+#. type: Plain text
+#: ../man/procps_pids.3:210
+msgid "B<procps>(3), B<procps_misc>(3), B<proc>(5)."
+msgstr "B<procps>(3), B<procps_misc>(3), B<proc>(5)."
+
+#, no-wrap
+#~ msgid "2022-06-25"
+#~ msgstr "2022-06-25"
+
+#~ msgid "Total installed memory (MemTotal and SwapTotal in /proc/meminfo)"
+#~ msgstr ""
+#~ "Całkowita zainstalowana pamięć (MemTotal oraz SwapTotal w /proc/meminfo)"
+
+#, no-wrap
+#~ msgid "User Commands "
+#~ msgstr "Polecenia użytkownika "
+
+#, no-wrap
+#~ msgid "NAME "
+#~ msgstr "NAZWA "
+
+#, no-wrap
+#~ msgid "SYNOPSIS "
+#~ msgstr "SKÅADNIA "
+
+#, no-wrap
+#~ msgid "DESCRIPTION "
+#~ msgstr "OPIS "
+
+#, no-wrap
+#~ msgid "OPTIONS "
+#~ msgstr "OPCJE "
+
+#~ msgid ""
+#~ "Defines the signal to send to each matched process. Either the numeric "
+#~ "or the symbolic signal name can be used. (B<pkill> only.)"
+#~ msgstr ""
+#~ "Określenie sygnału, jaki ma być wysłany do wszystkich pasujących "
+#~ "procesów. Może być numerem lub nazwą sygnału. (tylko B<pkill>)"
+
+#, no-wrap
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#, no-wrap
+#~ msgid "BUGS "
+#~ msgstr "BÅĘDY "
+
+#, no-wrap
+#~ msgid "SEE ALSO "
+#~ msgstr "ZOBACZ TAKŻE "
+
+#, no-wrap
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#, no-wrap
+#~ msgid "User Commands "
+#~ msgstr "Polecenia użytkownika "
+
+#, no-wrap
+#~ msgid "NAME "
+#~ msgstr "NAZWA "
+
+#, no-wrap
+#~ msgid "SYNOPSIS "
+#~ msgstr "SKÅADNIA "
+
+#, no-wrap
+#~ msgid "OPTIONS "
+#~ msgstr "OPCJE "
+
+#, no-wrap
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "Display version information and exit. "
+#~ msgstr "Wyświetlenie informacji o wersji i zakończenie. "
+
+#, no-wrap
+#~ msgid "EXIT STATUS "
+#~ msgstr "KOD WYJÅšCIA "
+
+#, no-wrap
+#~ msgid "SEE ALSO "
+#~ msgstr "ZOBACZ TAKŻE "
+
+#, no-wrap
+#~ msgid "REPORTING BUGS "
+#~ msgstr "ZGÅASZANIE BÅĘDÓW "
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr ""
+#~ "Zgłoszenia błędów prosimy wysyłać na adres E<.UR procps@freelists.org> E<."
+#~ "UE> "
+
+#, no-wrap
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#, no-wrap
+#~ msgid "User Commands "
+#~ msgstr "Polecenia użytkownika "
+
+#, no-wrap
+#~ msgid "NAME "
+#~ msgstr "NAZWA "
+
+#, no-wrap
+#~ msgid "SYNOPSIS "
+#~ msgstr "SKÅADNIA "
+
+#, no-wrap
+#~ msgid "DESCRIPTION "
+#~ msgstr "OPIS "
+
+#, no-wrap
+#~ msgid "OPTIONS "
+#~ msgstr "OPCJE "
+
+#, no-wrap
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#, no-wrap
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#, no-wrap
+#~ msgid "FILES "
+#~ msgstr "PLIKI "
+
+#, no-wrap
+#~ msgid "SEE ALSO "
+#~ msgstr "ZOBACZ TAKŻE "
+
+#, no-wrap
+#~ msgid "REPORTING BUGS "
+#~ msgstr "ZGÅASZANIE BÅĘDÓW "
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr ""
+#~ "Zgłoszenia błędów prosimy wysyłać na adres E<.UR procps@freelists.org> E<."
+#~ "UE> "
+
+#, no-wrap
+#~ msgid "2020-06-04 "
+#~ msgstr "2020-06-04 "
+
+#, no-wrap
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#, no-wrap
+#~ msgid "NAME "
+#~ msgstr "NAZWA "
+
+#, no-wrap
+#~ msgid "SYNOPSIS "
+#~ msgstr "SKÅADNIA "
+
+#, no-wrap
+#~ msgid "DESCRIPTION "
+#~ msgstr "OPIS "
+
+#, no-wrap
+#~ msgid "OPTIONS "
+#~ msgstr "OPCJE "
+
+#, no-wrap
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "Display version information and exit. "
+#~ msgstr "Wyświetlenie informacji o wersji i zakończenie. "
+
+#, no-wrap
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "Display help and exit. "
+#~ msgstr "Wyświetlenie opisu i zakończenie. "
+
+#~ msgid "These are affected by the B<--unit> option. "
+#~ msgstr "Te podlegajÄ… opcji B<--unit>. "
+
+#, no-wrap
+#~ msgid "IO "
+#~ msgstr "IO "
+
+#, no-wrap
+#~ msgid "NOTES "
+#~ msgstr "UWAGI "
+
+#~ msgid "B<vmstat> does not require special permissions."
+#~ msgstr "B<vmstat> nie wymaga specjalnych uprawnień."
+
+#~ msgid ""
+#~ "These reports are intended to help identify system bottlenecks. Linux "
+#~ "B<vmstat> does not count itself as a running process."
+#~ msgstr ""
+#~ "Niniejsze raporty mają na celu pomoc przy identyfikacji wąskich gardeł w "
+#~ "systemie. Linuksowy B<vmstat> nie liczy siebie jako działającego procesu."
+
+#~ msgid ""
+#~ "All linux blocks are currently 1024 bytes. Old kernels may report blocks "
+#~ "as 512 bytes, 2048 bytes, or 4096 bytes."
+#~ msgstr ""
+#~ "Wszystkie bloki dla Linuksa mają obecnie 1024 bajty. Stare jądra mogły "
+#~ "używać bloków 512-, 2048- lub 4096-bajtowych."
+
+#~ msgid ""
+#~ "Since procps 3.1.9, vmstat lets you choose units (k, K, m, M). Default "
+#~ "is K (1024 bytes) in the default mode."
+#~ msgstr ""
+#~ "Od wersji procps 3.1.9, vmstat pozwala wybrać jednostki (k, K, m, M). "
+#~ "Domyślna to K (1024 bajty) w trybie domyślnym."
+
+#~ msgid "vmstat uses slabinfo 1.1"
+#~ msgstr "vmstat wykorzystuje slabinfo 1.1"
+
+#, no-wrap
+#~ msgid "FILES "
+#~ msgstr "PLIKI "
+
+#, no-wrap
+#~ msgid ""
+#~ "/proc/meminfo\n"
+#~ "/proc/stat\n"
+#~ "/proc/*/stat\n"
+#~ msgstr ""
+#~ "/proc/meminfo\n"
+#~ "/proc/stat\n"
+#~ "/proc/*/stat\n"
+
+#, no-wrap
+#~ msgid "SEE ALSO "
+#~ msgstr "ZOBACZ TAKŻE "
+
+#, no-wrap
+#~ msgid "BUGS "
+#~ msgstr "BÅĘDY "
+
+#~ msgid ""
+#~ "Does not tabulate the block io per device or count the number of system "
+#~ "calls."
+#~ msgstr ""
+#~ "Nie raportuje blokowego we/wy per urządzenie ani nie liczy wywołań "
+#~ "systemowych."
+
+#, no-wrap
+#~ msgid "AUTHORS "
+#~ msgstr "AUTORZY "
+
+#~ msgid "Written by E<.UR al172@yfn.\\:ysu.\\:edu> Henry Ware E<.UE .>"
+#~ msgstr "Autorem jest E<.UR al172@yfn.\\:ysu.\\:edu> Henry Ware E<.UE .>"
+
+#~ msgid ""
+#~ "E<.UR ffrederick@users.\\:sourceforge.\\:net> Fabian Fr\\('ed\\('erick E<."
+#~ "UE> (diskstat, slab, partitions...)"
+#~ msgstr ""
+#~ "E<.UR ffrederick@users.\\:sourceforge.\\:net> Fabian Fr\\('ed\\('erick E<."
+#~ "UE> (dyski, płyty, partycje...)"
+
+#, no-wrap
+#~ msgid "REPORTING BUGS "
+#~ msgstr "ZGÅASZANIE BÅĘDÓW "
+
+#, no-wrap
+#~ msgid "NAME "
+#~ msgstr "NAZWA "
+
+#, no-wrap
+#~ msgid "SYNOPSIS "
+#~ msgstr "SKÅADNIA "
+
+#, no-wrap
+#~ msgid "DESCRIPTION "
+#~ msgstr "OPIS "
+
+#, no-wrap
+#~ msgid "SEE ALSO "
+#~ msgstr "ZOBACZ TAKŻE "
+
+#, no-wrap
+#~ msgid "August 2022 "
+#~ msgstr "Sierpień 2022 "
+
+#, no-wrap
+#~ msgid "libproc2 "
+#~ msgstr "libproc2 "
+
+#, no-wrap
+#~ msgid "NAME "
+#~ msgstr "NAZWA "
+
+#, no-wrap
+#~ msgid "SYNOPSIS "
+#~ msgstr "SKÅADNIA "
+
+#~ msgid "Link with I<-lproc2>. "
+#~ msgstr "Konsolidować z I<-lproc2>. "
+
+#, no-wrap
+#~ msgid "DESCRIPTION "
+#~ msgstr "OPIS "
+
+#, no-wrap
+#~ msgid "Overview "
+#~ msgstr "PrzeglÄ…d "
+
+#~ msgid ""
+#~ "By specifying an array of `items', these structures can be organized as a "
+#~ "`stack', potentially yielding many results with a single function call. "
+#~ "Thus, a `stack' can be viewed as a variable length record whose content "
+#~ "and order is determined solely by the user. "
+#~ msgstr ""
+#~ "Podając tablicę elementów `item', struktury te mogą być zorganizowane w "
+#~ "\"stos\", potencjalnie zwracając wiele wyników w pojedynczym wywołaniu "
+#~ "funkcji. W ten sposób na \"stos\" można patrzeć jak na rekord zmiennej "
+#~ "długości, którego zawartość i porządek są określane wyłącznie przez "
+#~ "użytkownika. "
+
+#, no-wrap
+#~ msgid "Usage "
+#~ msgstr "Użycie "
+
+#~ msgid ""
+#~ "To exploit any `stack', and access individual `result' structures, a "
+#~ "I<relative_enum> is required as shown in the B<VAL> macro defined in the "
+#~ "header file. Such values could be hard coded as: 0 through numitems-1. "
+#~ "However, this need is typically satisfied by creating your own "
+#~ "enumerators corresponding to the order of the `items' array. "
+#~ msgstr ""
+#~ "Aby wykorzystać dowolny \"stos\" i dostać się do poszczególnych struktur "
+#~ "`result', wymagana jest wartość I<relative_enum>, jak widać w makrze "
+#~ "B<VAL> zdefiniowanym w pliku nagłówkowym. Takie wartości mogą być sztywno "
+#~ "zakodowane od 0 do numitems-1. Zwykle jednak tÄ™ potrzebÄ™ zaspokaja siÄ™ "
+#~ "tworząc własne enumeratory odpowiadające kolejności tablicy `items'. "
+
+#, no-wrap
+#~ msgid "Caveats "
+#~ msgstr "Zastrzeżenia "
+
+#~ msgid ""
+#~ "For the B<new> and B<unref> functions, the address of an I<info> struct "
+#~ "pointer must be supplied. With B<new> it must have been initialized to "
+#~ "NULL. With B<unref> it will be reset to NULL if the reference count "
+#~ "reaches zero. "
+#~ msgstr ""
+#~ "W przypadku funkcji B<new> i B<unref>, trzeba przekazać adres wskaźnika "
+#~ "do struktury I<info>. W przypadku B<new> musi być zainicjowany na NULL. W "
+#~ "przypadku B<unref> zostanie ustawiony na NULL, jeśli licznik odwołań "
+#~ "osiÄ…gnie zero."
+
+#, no-wrap
+#~ msgid "RETURN VALUE "
+#~ msgstr "WARTOŚĆ ZWRACANA "
+
+#, no-wrap
+#~ msgid "Functions Returning an `int' "
+#~ msgstr "Funkcje zwracajÄ…ce `int' "
+
+#~ msgid ""
+#~ "An error will be indicated by a negative number that is always the "
+#~ "inverse of some well known errno.h value. "
+#~ msgstr ""
+#~ "Błąd jest oznaczany poprzez liczbę ujemną, będącą liczbą przeciwną do "
+#~ "znanej wartości errno.h. "
+
+#~ msgid ""
+#~ "Success is indicated by a zero return value. However, the B<ref> and "
+#~ "B<unref> functions return the current I<info> structure reference count. "
+#~ msgstr ""
+#~ "Sukces jest oznaczany wartością zerową. Jednak funkcje B<ref> i B<unref> "
+#~ "zwracają bieżący licznik odwołań struktury I<info>."
+
+#, no-wrap
+#~ msgid "Functions Returning an `address' "
+#~ msgstr "Funkcje zwracajÄ…ce adres "
+
+#~ msgid ""
+#~ "An error will be indicated by a NULL return pointer with the reason found "
+#~ "in the formal errno value. "
+#~ msgstr ""
+#~ "Błąd jest oznaczany zwracanym wskaźnikiem NULL, a powód można znaleźć w "
+#~ "wartości errno. "
+
+#, no-wrap
+#~ msgid "DEBUGGING "
+#~ msgstr "DIAGNOSTYKA "
+
+#~ msgid ""
+#~ "This feature can be activated through either of the following methods and "
+#~ "any discrepancies will be written to B<stderr>. "
+#~ msgstr ""
+#~ "Tę opcję można włączyć w jeden z poniższych sposobów, a wszystkie "
+#~ "niezgodności będą wypisane na B<stderr>. "
+
+#, no-wrap
+#~ msgid "1) "
+#~ msgstr "1) "
+
+#, no-wrap
+#~ msgid "2) "
+#~ msgstr "2) "
+
+#~ msgid ""
+#~ "This verification feature incurs substantial overhead. Therefore, it is "
+#~ "important that it I<not> be activated for a production/release build. "
+#~ msgstr ""
+#~ "Ta opcja weryfikacji dodaje istotny narzut. W związku z tym ważne jest, "
+#~ "żeby I<nie> była włączona w binariach produkcyjnych."
+
+#, no-wrap
+#~ msgid "SEE ALSO "
+#~ msgstr "ZOBACZ TAKŻE "
+
+#, no-wrap
+#~ msgid "August 2022 "
+#~ msgstr "Sierpień 2022 "
+
+#, no-wrap
+#~ msgid "libproc2 "
+#~ msgstr "libproc2 "
+
+#, no-wrap
+#~ msgid "NAME "
+#~ msgstr "NAZWA "
+
+#, no-wrap
+#~ msgid "SYNOPSIS "
+#~ msgstr "SKÅADNIA "
+
+#, no-wrap
+#~ msgid "DESCRIPTION "
+#~ msgstr "OPIS "
+
+#, no-wrap
+#~ msgid "RETURN VALUE "
+#~ msgstr "WARTOŚĆ ZWRACANA "
+
+#~ msgid ""
+#~ "An error will be indicated by a negative number that is always the "
+#~ "inverse of some well known errno.h value. "
+#~ msgstr ""
+#~ "Błąd jest oznaczany poprzez liczbę ujemną, będącą liczbą przeciwną do "
+#~ "znanej wartości errno.h. "
+
+#, no-wrap
+#~ msgid "Functions Returning an `address' "
+#~ msgstr "Funkcje zwracajÄ…ce adres "
+
+#~ msgid ""
+#~ "An error will be indicated by a NULL return pointer with the reason found "
+#~ "in the formal errno value. "
+#~ msgstr ""
+#~ "Błąd jest oznaczany zwracanym wskaźnikiem NULL, a powód można znaleźć w "
+#~ "wartości errno. "
+
+#, no-wrap
+#~ msgid "FILES "
+#~ msgstr "PLIKI "
+
+#, no-wrap
+#~ msgid "SEE ALSO "
+#~ msgstr "ZOBACZ TAKŻE "
diff --git a/po-man/pl/free.1 b/po-man/pl/free.1
new file mode 100644
index 0000000..a07cd79
--- /dev/null
+++ b/po-man/pl/free.1
@@ -0,0 +1,164 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2003 Albert Cahalan
+.\" Copyright (c) 1993 Matt Welsh <mdw@sunsite.unc.edu>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH FREE 1 2023\-05\-02 procps\-ng "Polecenia użytkownika"
+.SH NAZWA
+free \- wyświetlanie ilości wolnej i użytej pamięci w systemie
+.SH SKÅADNIA
+\fBfree\fP [\fIopcje\fP]
+.SH OPIS
+\fBfree\fP wyświetla całkowitą ilość wolnej i użytej pamięci fizycznej oraz
+pamięci wymiany w systemie, a także rozmiary buforów i pamięci podręcznych
+używanych przez jądro. Informacje są zbierane poprzez analizę
+/proc/meminfo. Wyświetlane kolumny to:
+.TP
+\fBrazem\fP
+Total usable memory (MemTotal and SwapTotal in /proc/meminfo). This includes
+the physical and swap memory minus a few reserved bits and kernel binary
+code.
+.TP
+\fBużyte\fP
+Pamięć użyta lub niedostępna (liczona jako \fBrazem\fP \- \fBwolne\fP)
+.TP
+\fBwolne\fP
+Pamięć nie używana (MemFree oraz SwapFree w /proc/meminfo)
+.TP
+\fBdzielone\fP
+Pamięć używana (głównie) przez tmpfs (Shmem w /proc/meminfo)
+.TP
+\fBbufory\fP
+Pamięć używana przez bufory jądra (Buffers w /proc/meminfo)
+.TP
+\fBw cache\fP
+Pamięć używana przez cache stron oraz płyty (Cached i SReclaimable w
+/proc/meminfo)
+.TP
+\fBbuf/cache\fP
+Suma \fBbuforów\fP i \fBw cache\fP
+.TP
+\fBdostępne\fP
+Przybliżenie, jak dużo pamięci jest dostępne do uruchamiania nowych
+aplikacji bez swapowania. W przeciwieństwie do danych udostępnianych w
+polach \fBw cache\fP czy \fBwolne\fP, to pole bierze pod uwagÄ™ cache stron oraz
+to, że nie wszystkie płyty pamięci podlegające reklamacji zostaną zwrócone
+(MemAvailable w /proc/meminfo, dostępne w jądrach 3.14, emulowane w jądrach
+2.6.27+, w innych przypadkach \- to samo, co \fBwolne\fP)
+.SH OPCJE
+.TP
+\fB\-b\fP, \fB\-\-bytes\fP
+Wyświetlanie ilości pamięci w bajtach.
+.TP
+\fB\-k\fP, \fB\-\-kibi\fP
+Wyświetlanie ilości pamięci w kibibajtach (zachowanie domyślne).
+.TP
+\fB\-m\fP, \fB\-\-mebi\fP
+Wyświetlanie ilości pamięci w mebibajtach.
+.TP
+\fB\-g\fP, \fB\-\-gibi\fP
+Wyświetlanie ilości pamięci w gibibajtach.
+.TP
+\fB\-\-tebi\fP
+Wyświetlanie ilości pamięci w tebibajtach.
+.TP
+\fB\-\-pebi\fP
+Wyświetlanie ilości pamięci w pebibajtach.
+.TP
+\fB\-\-kilo\fP
+Wyświetlanie ilości pamięci w kilobajtach. Włącza \-\-si.
+.TP
+\fB\-\-mega\fP
+Wyświetlanie ilości pamięci w megabajtach. Włącza \-\-si.
+.TP
+\fB\-\-giga\fP
+Wyświetlanie ilości pamięci w gigabajtach. Włącza \-\-si.
+.TP
+\fB\-\-tera\fP
+Wyświetlanie ilości pamięci w terabajtach. Włącza \-\-si.
+.TP
+\fB\-\-peta\fP
+Wyświetlanie ilości pamięci w petabajtach. Włącza \-\-si.
+.TP
+\fB\-h\fP, \fB\-\-human\fP
+Wyświetlanie wszystkich pól wyjściowych automatycznie przeskalowanych do
+najkrótszej trzycyfrowej jednostki wraz z użytą jednostką. Używane są
+następujące jednostki:
+.sp
+.nf
+ B = bajty
+ Ki = kibibajty
+ Mi = mebibajty
+ Gi = gibibajty
+ Ti = tebibajty
+ Pi = pebibajty
+.fi
+.sp
+Jeśli brak jednostki, a w systemie jest eksbibajt RAM\-u lub obszaru wymiany,
+liczba będzie w tebibajtach, a kolumny mogą nie być wyrównane z nagłówkiem.
+.TP
+\fB\-w\fP, \fB\-\-wide\fP
+Przełączenie w tryb szeroki, z liniami przekraczającymi 80 znaków. W tym
+trybie \fBbufory\fP oraz \fBw cache\fP są wypisywane w dwóch osobnych kolumnach.
+.TP
+\fB\-c\fP, \fB\-\-count\fP \fIliczba\fP
+Wyświetlenie wyniku podaną \fIliczbę\fP razy. Wymaga opcji \fB\-s\fP.
+.TP
+\fB\-l\fP, \fB\-\-lohi\fP
+Wyświetlanie szczegółowych statystyk niskiej i wysokiej pamięci.
+.TP
+\fB\-L\fP, \fB\-\-line\fP
+Show output on a single line, often used with the \fB\-s\fP option to show
+memory statistics repeatedly.
+.TP
+\fB\-s\fP, \fB\-\-seconds\fP \fIopóźnienie\fP
+Stałe wyświetlanie wyników co podane \fIopóźnienie\fP w sekundach. Można podać
+dowolną liczbę zmiennoprzecinkową, obsługiwane są opóźnienia z dokładnością
+do mikrosekundy dzięki użyciu funkcji \fBusleep\fP(3).
+.TP
+\fB\-\-si\fP
+Użycie kilo, mega, giga itp. (potęg 1000) zamiast kibi, mebi, gibi (potęg
+1024).
+.TP
+\fB\-t\fP, \fB\-\-total\fP
+Wyświetlanie linii pokazującej podsumowanie kolumn.
+.TP
+\fB\-v\fP, \fB\-\-committed\fP
+Wyświelenie linii pokazującej limit i ilość fizycznie
+przydzielonej/nieprzydzielonej pamięci. Kolumna \fBrazem\fP w tej linii
+pokazuje limit pamięci fizycznie przydzielonej. Ta linia ma znaczenie tylko
+w przypadku wyłączenia overcommitu.
+.TP
+\fB\-\-help\fP
+Wyświetlenie opisu.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Wyświetlenie informacji o wersji.
+.PD
+.SH PLIKI
+.TP
+/proc/meminfo
+informacje dotyczące pamięci
+.PD
+.SH BÅĘDY
+Wartość kolumny \fBdzielone\fP nie jest dostępna w jądrach starszych niż 2.6.32
+\- wtedy wyświetlane jest zero.
+.TP
+Zgłoszenia błędów prosimy wysyłać na adres
+.UR procps@freelists.org
+.UE
+.SH "ZOBACZ TAKŻE"
+\fBps\fP(1), \fBslabtop\fP(1), \fBtop\fP(1), \fBvmstat\fP(8).
diff --git a/po-man/pl/pgrep.1 b/po-man/pl/pgrep.1
new file mode 100644
index 0000000..3cfb8ce
--- /dev/null
+++ b/po-man/pl/pgrep.1
@@ -0,0 +1,256 @@
+.\"
+.\" Copyright (c) 2004-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2004 Albert Cahalan
+.\" Copyright (c) 2000 Kjetil Torgrim Homme
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PGREP 1 2023\-01\-16 procps\-ng "Polecenia użytkownika"
+.SH NAZWA
+pgrep, pkill, pidwait \- wyszukiwanie, wysyłanie sygnałów lub oczekiwanie na
+procesy na podstawie nazwy i innych atrybutów
+.SH SKÅADNIA
+\fBpgrep\fP [opcje] wzorzec
+.br
+\fBpkill\fP [opcje] wzorzec
+.br
+\fBpidwait\fP [opcje] wzorzec
+.SH OPIS
+\fBpgrep\fP przeszukuje aktualnie działające procesy i wypisuje na standardowym
+wyjściu identyfikatory procesów, które pasują do wybranych
+kryteriów. Wszystkie kryteria muszą pasować. Na przykład:
+.IP
+$ pgrep \-u root sshd
+.PP
+wypisze tylko listę procesów o nazwie \fBsshd\fP ORAZ będących własnością
+\fBroota\fP. Z drugiej strony:
+.IP
+$ pgrep \-u root,daemon
+.PP
+wypisze procesy, których właścicielem jest \fBroot\fP LUB \fBdaemon\fP.
+.PP
+\fBpkill\fP zamiast wypisywania procesów wyśle do każdego podany sygnał
+(domyślnie \fBSIGTERM\fP).
+.PP
+\fBpidwait\fP zamiast wypisywania procesów oczekuje na nie.
+.SH OPCJE
+.TP
+\fB\-\fP\fIsygnał\fP
+.TQ
+\fB\-\-signal\fP \fIsygnał\fP
+Defines the signal to send to each matched process. Either the numeric or
+the symbolic signal name can be used. In \fBpgrep\fP or \fBpidwait\fP mode only
+the long option can be used and has no effect unless used in conjunction
+with \fB\-\-require\-handler\fP to filter to processes with a userspace signal
+handler present for a particular signal.
+
+.TP
+\fB\-c\fP, \fB\-\-count\fP
+Pominięcie zwykłego wyjścia; zamiast niego wypisanie liczby pasujących
+procesów. Jeśli nic nie zostanie policzone (np. liczba będzie zerem),
+polecenie zwróci wartość niezerową. Uwaga: w przypadku pkill i pidwait
+zwracana wartość to liczba pasujących procesów, a nie procesów, do których
+udało się dostarczyć sygnał lub zaczekać na zakończenie.
+.TP
+\fB\-d\fP, \fB\-\-delimiter\fP \fIseparator\fP
+Ustawienie łańcucha oddzielającego identyfikatory procesów na wyjściu
+(domyślnie nowa linia). (tylko \fBpgrep\fP)
+.TP
+\fB\-e\fP, \fB\-\-echo\fP
+Wyświetlanie nazw oraz identyfikatorów zabijanych procesów (tylko \fBpkill\fP).
+.TP
+\fB\-f\fP, \fB\-\-full\fP
+\fIwzorzec\fP normalnie jest dopasowywany tylko do nazwy procesu. Z ustawionÄ…
+opcją \fB\-f\fP, wykorzystywana jest cała linia poleceń.
+.TP
+\fB\-g\fP, \fB\-\-pgroup\fP \fIpgrp\fP,...
+Dopasowanie tylko do procesów z grup o podanych identyfikatorach. Grupa
+procesów 0 jest tłumaczona na własną grupę procesów polecenia \fBpgrep\fP,
+\fBpkill\fP lub \fBpidwait\fP.
+.TP
+\fB\-G\fP, \fB\-\-group\fP \fIgid\fP,...
+Dopasowanie tylko do procesów o podanych identyfikatorach grup
+rzeczywistych. Można użyć wartości liczbowych lub symbolicznych.
+.TP
+\fB\-e\fP, \fB\-\-ignore\-case\fP
+Dopasowywanie procesów bez rozróżniania wielkości liter.
+.TP
+\fB\-l\fP, \fB\-\-list\-name\fP
+Wypisanie nazw oraz identyfikatorów procesów. (tylko \fBpgrep\fP)
+.TP
+\fB\-a\fP, \fB\-\-list\-full\fP
+Wypisanie pełnych linii poleceń oraz identyfikatorów procesów. (tylko
+\fBpgrep\fP)
+.TP
+\fB\-n\fP, \fB\-\-newest\fP
+Wybór tylko najnowszych (najpóźniej uruchomionych) spośród pasujących
+procesów.
+.TP
+\fB\-o\fP, \fB\-\-oldest\fP
+Wybór tylko najstarszych (najwcześniej uruchomionych) spośród pasujących
+procesów.
+.TP
+\fB\-O\fP, \fB\-\-older\fP \fIsekundy\fP
+Wybór procesów starszych niż podana liczba sekund.
+.TP
+\fB\-P\fP, \fB\-\-parent\fP \fIppid\fP,...
+Dopasowanie tylko do procesów o wymienionych identyfikatorach procesów
+rodziców.
+.TP
+\fB\-s\fP, \fB\-\-session\fP \fIsid\fP,...
+Dopasowanie tylko do procesów o wymienionych identyfikatorach sesji
+procesów. Identyfikator sesji 0 jest tłumaczony na własny procesu \fBpgrep\fP,
+\fBpkill\fP lub \fBpidwait\fP.
+.TP
+\fB\-t\fP, \fB\-\-terminal\fP \fIterm\fP,...
+Dopasowanie tylko do procesów o wymienionych terminalach sterujących. Nazwa
+terminala powinna być podana bez przedrostka "/dev/".
+.TP
+\fB\-u\fP, \fB\-\-euid\fP \fIeuid\fP,...
+Dopasowanie tylko do procesów o wymienionych identyfikatorach użytkowników
+efektywnych. Można użyć wartości liczbowych lub symbolicznych.
+.TP
+\fB\-U\fP, \fB\-\-uid\fP \fIuid\fP,...
+Dopasowanie tylko do procesów o wymienionych identyfikatorach użytkowników
+rzeczywistych. Można użyć wartości liczbowych lub symbolicznych.
+.TP
+\fB\-v\fP, \fB\-\-inverse\fP
+Negacja dopasowania. Zwykle używana w kontekście programu \fBpgrep\fP lub
+\fBpidwait\fP. W kontekście \fBpkill\fP krótka opcja jest wyłączona, aby zapobiec
+przypadkowemu użyciu.
+.TP
+\fB\-w\fP, \fB\-\-lightweight\fP
+Wyświetlenie wszystkich identyfikatorów wątków zamiast pidów w kontekście
+programu \fBpgrep\fP lub \fBpidwait\fP. W kontekście \fBpkill\fP ta opcja jest
+wyłączona.
+.TP
+\fB\-x\fP, \fB\-\-exact\fP
+Dopasowanie tylko do procesów, których nazwy (lub linie poleceń, jeśli
+podano opcję \fB\-f\fP) pasują \fBdokładnie\fP do \fIwzorca\fP.
+.TP
+\fB\-F\fP, \fB\-\-pidfile\fP \fIplik\fP
+Read \fIPID\fPs from \fIfile\fP. This option is more useful for \fBpkill\fP or
+\fBpidwait\fP than \fBpgrep\fP.
+.TP
+\fB\-L\fP, \fB\-\-logpidfile\fP
+Niepowodzenie, jeśli plik PID (p. opcja \fB\-F\fP) nie jest zablokowany.
+.TP
+\fB\-r\fP, \fB\-\-runstates\fP \fID,R,S,Z,\fP...
+Dopasowanie tylko do procesów o pasującym stanie.
+.TP
+\fB\-e\fP, \fB\-\-ignore\-ancestors\fP
+Ignorowanie wszystkich przodków \fBpgrep\fP, \fBpkill\fP i \fBpidwait\fP. Może to być
+przydatne np. przy podnoszeniu uprawnień przez \fBsudo\fP lub podobne
+narzędzia.
+.TP
+\fB\-H\fP, \fB\-\-require\-handler\fP
+Only match processes with a userspace signal handler present for the signal
+to be sent.
+.TP
+\fB\-\-cgroup \fP\fInazwa\fP\fB,...\fP
+Dopasowanie po przekazanej nazwie grupy kontrolnej (cgroup)
+v2. P. \fBcgroups\fP(8)
+.TP
+\fB\-\-ns \fP\fIpid\fP
+Dopasowanie do procesów należących do tych samych przestrzeni nazw. Wymagane
+w przypadku uruchamiania przez roota, aby dopasować do procesów innych
+użytkowników. Więcej o ograniczaniu dopasowywanych przestrzeni nazw przy
+opcji \fB\-\-nslist\fP.
+.TP
+\fB\-\-nslist \fP\fInazwa\fP\fB,...\fP
+Match only the provided namespaces. Available namespaces: ipc, mnt, net,
+pid, user, uts.
+.TP
+\fB\-q\fP, \fB\-\-queue \fP\fIwartość\fP
+Use \fBsigqueue\fP(3) rather than \fBkill\fP(2) and the value argument is used
+to specify an integer to be sent with the signal. If the receiving process
+has installed a handler for this signal using the SA_SIGINFO flag to
+\fBsigaction\fP(2), then it can obtain this data via the si_value field of the
+siginfo_t structure.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Wyświetlenie informacji o wersji i zakończenie.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Wyświetlenie opisu i zakończenie.
+.PD
+.SH ARGUMENTY
+.TP
+\fIwzorzec\fP
+Określenie rozszerzonego wyrażenia regularnego do dopasowania nazwy procesu
+lub linii poleceń.
+.SH PRZYKÅADY
+Przykład 1: znalezienie identyfikatora procesu demona \fBnamed\fP:
+.IP
+$ pgrep \-u root named
+.PP
+Przykład 2: wymuszenie ponownego odczytu pliku konfiguracyjnego przez
+program \fBsyslog\fP:
+.IP
+$ pkill \-HUP syslogd
+.PP
+Przykład 3: podanie szczegółowych informacji o wszystkich procesach
+\fBxterm\fP:
+.IP
+$ ps \-fp $(pgrep \-d, \-x xterm)
+.PP
+Przykład 4: zwiększenie nice wszystkich procesów \fBchrome\fP:
+.IP
+$ renice +4 $(pgrep chrome)
+.SH "KOD WYJÅšCIA"
+.PD 0
+.TP
+0
+One or more processes matched the criteria. For \fBpkill\fP and \fBpidwait\fP, one
+or more processes must also have been successfully signalled or waited for.
+.TP
+1
+Brak procesów pasujących do warunków lub do żadnego nie udało się wysłać
+sygnału.
+.TP
+2
+Błąd składni w linii poleceń.
+.TP
+3
+Błąd krytyczny: brak pamięci itp.
+.PD
+.SH UWAGI
+Nazwa procesu używana przy dopasowaniu jest ograniczona do 15 znaków
+obecnych w wyjściu /proc/\fIpid\fP/stat. Aby dopasować do pełnej linii poleceń
+(/proc/\fIpid\fP/cmdline), należy użyć opcji \fB\-f\fP. Wątki mogą nie mieć tej
+samej nazwy procesu jako rodzica, ale będą miały tę samą linię poleceń.
+.PP
+Działający proces \fBpgrep\fP, \fBpkill\fP ani \fBpidwait\fP nigdy nie zgłosi siebie
+jako dopasowania.
+.PP
+The \fB\-O \-\-older\fP option will silently fail if \fI/proc\fP is mounted with the
+\fIsubset=pid\fP option.
+.SH BÅĘDY
+Opcji \fB\-n\fP, \fB\-o\fP oraz \fB\-v\fP nie można łączyć. Gdyby było to przydatne,
+proszę zawiadomić autora.
+.PP
+Zgłoszono procesy nie funkcjonujące.
+.PP
+\fBpidwait\fP wymaga wywołania systemowego \fBpidfd_open\fP(2), które pojawiło się
+w Linuksie 5.3.
+.SH "ZOBACZ TAKŻE"
+\fBps\fP(1), \fBregex\fP(7), \fBsignal\fP(7), \fBsigqueue\fP(3), \fBkillall\fP(1),
+\fBskill\fP(1), \fBkill\fP(1), \fBkill\fP(2), \fBcgroups\fP(8).
+.SH AUTOR
+.UR kjetilho@ifi.uio.no
+Kjetil Torgrim Homme
+.UE
+.SH "ZGÅASZANIE BÅĘDÓW"
+Zgłoszenia błędów prosimy wysyłać na adres
+.UR procps@freelists.org
+.UE
diff --git a/po-man/pl/pmap.1 b/po-man/pl/pmap.1
new file mode 100644
index 0000000..c01f21f
--- /dev/null
+++ b/po-man/pl/pmap.1
@@ -0,0 +1,97 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2013 Jaromir Capik <jcapik@redhat.com>
+.\" Copyright (c) 1998-2002 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\" (The preceding line is a note to broken versions of man to tell
+.\" them to pre-process this man page with tbl)
+.\" Man page for pmap.
+.\" Licensed under version 2 of the GNU General Public License.
+.\" Written by Albert Cahalan.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PMAP 1 2020\-06\-04 procps\-ng "Polecenia użytkownika"
+.SH NAZWA
+pmap \- informacje o odwzorowaniu pamięci procesu
+.SH SKÅADNIA
+\fBpmap\fP [\fIopcje\fP] \fIpid\fP [...]
+.SH OPIS
+Polecenie \fBpmap\fP wypisuje mapę pamięci procesu lub procesów.
+.SH OPCJE
+.TP
+\fB\-x\fP, \fB\-\-extended\fP
+Wyświetlanie w formacie rozszerzonym.
+.TP
+\fB\-d\fP, \fB\-\-device\fP
+Wyświetlanie w formacie urządzeń.
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+Bez wyświetlania linii nagłówka i stopki.
+.TP
+\fB\-A\fP, \fB\-\-range\fP \fIdolny\fP,\fIgórny\fP
+Ograniczenie wyników do podanego przedziału adresów:
+\fIdolny\fP,\fIgórny\fP. Limity dolny i górny podaje się rozdzielone przecinkiem
+jako pojedynczy argument.
+.TP
+\fB\-X\fP
+Wypisywanie jeszcze więcej szczegółów niż z opcją \fB\-x\fP. UWAGA: format
+zmienia siÄ™ z \fI/proc/PID/smaps\fP
+.TP
+\fB\-XX\fP
+Wypisywanie wszystkiego, co udostępnia jądro
+.TP
+\fB\-p\fP, \fB\-\-show\-path\fP
+Wypisywanie pełnych ścieżek do plików w kolumnie odwzorowań
+.TP
+\fB\-c\fP, \fB\-\-read\-rc\fP
+Odczyt domyślnej konfiguracji
+.TP
+\fB\-C\fP, \fB\-\-read\-rc\-from\fP \fIplik\fP
+Odczyt konfiguracji z \fIpliku\fP
+.TP
+\fB\-n\fP, \fB\-\-create\-rc\fP
+Utworzenie nowej konfiguracji domyślnej
+.TP
+\fB\-N\fP, \fB\-\-create\-rc\-to\fP \fIplik\fP
+Utworzenie nowej konfiguracji w \fIpliku\fP
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Wyświetlenie tekstu pomocy i zakończenie.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Wyświetlenie informacji o wersji i zakończenie.
+.SH "KOD WYJÅšCIA"
+.PP
+.RS
+.PD 0
+.TP
+\fB0\fP
+Sukces.
+.TP
+\fB1\fP
+Niepowodzenie.
+.TP
+\fB42\fP
+Nie znaleziono wszystkich żądanych procesów.
+.PD
+.RE
+.SH "ZOBACZ TAKŻE"
+\fBps\fP(1), \fBpgrep\fP(1)
+.SH STANDARDY
+Polecenia \fBpmap\fP nie dotyczą żadne standardy, ale wygląda równie brzydko,
+co polecenie SunOS.
+.SH "ZGÅASZANIE BÅĘDÓW"
+Zgłoszenia błędów prosimy wysyłać na adres
+.UR procps@freelists.org
+.UE
diff --git a/po-man/pl/procps.3 b/po-man/pl/procps.3
new file mode 100644
index 0000000..b2702ef
--- /dev/null
+++ b/po-man/pl/procps.3
@@ -0,0 +1,175 @@
+.\"
+.\" Copyright (c) 2020-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2020-2023 Craig Small <csmall@dropbear.xyz>
+.\"
+.\" This manual is free software; you can redistribute it and/or
+.\" modify it under the terms of the GNU Lesser General Public
+.\" License as published by the Free Software Foundation; either
+.\" version 2.1 of the License, or (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PROCPS 3 "Sierpień 2022" libproc2
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.nh
+.SH NAZWA
+procps \- API do dostępu do informacji systemowych w systemie plików /proc
+
+.SH SKÅADNIA
+W niniejszym opisie jest reprezentowanych pięć różnych interfejsów,
+nazwanych od plików służących do dostępu w pseudo systemie plików /proc:
+\fBdiskstats\fP, \fBmeminfo\fP, \fBslabinfo\fP, \fBstat\fP oraz \fBvmstat\fP.
+
+.nf
+.RS +4
+#include <libproc2/\fBinterfejs\fP.h>
+
+int\fB procps_new \fP (struct info **\fIinfo\fP);
+int\fB procps_ref \fP (struct info *\fIinfo\fP);
+int\fB procps_unref\fP (struct info **\fIinfo\fP);
+
+struct result *\fBprocps_get\fP (
+ struct info *\fIinfo\fP,
+[ const char *\fIname\fP, ] tylko API \fBdiskstats\fP
+ enum item \fIitem\fP);
+
+struct stack *\fBprocps_select\fP (
+ struct info *\fIinfo\fP,
+[ const char *\fIname\fP, ] tylko API \fBdiskstats\fP
+ enum item *\fIitems\fP,
+ int \fInumitems\fP);
+
+struct reaped *\fBprocps_reap\fP (
+ struct info *\fIinfo\fP,
+[ enum reap_type \fIwhat\fP, ] tylko API \fBstat\fP
+ enum item *\fIitems\fP,
+ int \fInumitems\fP);
+
+struct stack **\fBprocps_sort\fP (
+ struct info *\fIinfo\fP,
+ struct stack *\fIstacks\fP[],
+ int \fInumstacked\fP,
+ enum item \fIsortitem\fP,
+ enum sort_order \fIorder\fP);
+
+.fi
+
+Powyższe funkcje i struktury są ogólne, ale konkretne \fBinterfejsy\fP stają
+się częścią identyfikatorów. Np. `procps_new' właściwie staje się
+`procps_\fBmeminfo\fP_new', `info' staje siÄ™ `\fBdiskstats\fP_info' itd.
+
+Ten sam \fBinterfejs\fP jest używany w nazwie każdego pliku nagłówkowego z
+dodanym rozszerzeniem `.h'.
+
+Konsolidować z \fI\-lproc2\fP.
+
+.SH OPIS
+.SS PrzeglÄ…d
+Interfejsy te opierajÄ… siÄ™ na prostej strukturze `result',
+odzwierciedlającej element `item' wraz z jego wartością (w unii ze
+standardowymi typami C jako składowymi). Wszystkie struktury `result' są
+automatycznie przydzielane i dostarczane przez bibliotekÄ™.
+
+Podając tablicę elementów `item', struktury te mogą być zorganizowane w
+"stos", potencjalnie zwracając wiele wyników w pojedynczym wywołaniu
+funkcji. W ten sposób na "stos" można patrzeć jak na rekord zmiennej
+długości, którego zawartość i porządek są określane wyłącznie przez
+użytkownika.
+
+Częścią każdego interfejsu jest para unikatowych enumeratorów. Elementy
+`noop' i `extra' istnieją w celu trzymania wartości użytkownika. Nie są
+nigdy ustawiane przez bibliotekÄ™, ale wynik `extra' jest zerowany przy
+każdej interakcji z biblioteką.
+
+Plik nagłówkowy \fBinterfejsu\fP jest podstawowym dokumentem przy tworzeniu
+programu użytkownika. Tam można zaleźć dostępne elementy, ich typ zwracany
+(nazwę składowej struktury `result') oraz źródła tych wartości. Tam też są
+udokumentowane dodatkowe enumeratory czy struktury.
+
+.SS Użycie
+Poniżej znajduje się typowa sekwencja wywołań tych intefejsów.
+
+.nf
+1. \fBprocps_new()\fP
+2. \fBprocps_get()\fP, \fBprocps_select()\fP lub \fBprocps_reap()\fP
+3. \fBprocps_unref()\fP
+.fi
+
+Funkcja \fBget\fP służy do odczytania struktury `result' dla pojedynczego
+elementu `item'. Alternatywnie dostępne jest makro \fBGET\fP, kiedy istotna
+jest tylko wartość zwracana.
+
+Funkcja \fBselect\fP potrafi odczytać wiele struktur `result' z pojedynczego
+"stosu".
+
+Na potrzeby nieprzewidywalnych, zmiennych wyników, interfejsy \fBdiskstats\fP,
+\fBslabinfo\fP oraz \fBstat\fP eksportują funkcję \fBreap\fP. Służy do odczytania
+wielu "stosów", zawierających wiele struktur `result'. Opcjonalnie
+użytkownik może zdecydować, aby wykonać \fBsort\fP tych wyników.
+
+Aby wykorzystać dowolny "stos" i dostać się do poszczególnych struktur
+`result', wymagana jest wartość \fIrelative_enum\fP, jak widać w makrze \fBVAL\fP
+zdefiniowanym w pliku nagłówkowym. Takie wartości mogą być sztywno
+zakodowane od 0 do numitems\-1. Zwykle jednak tÄ™ potrzebÄ™ zaspokaja siÄ™
+tworząc własne enumeratory odpowiadające kolejności tablicy `items'.
+
+.SS Zastrzeżenia
+Funkcje \fBnew\fP, \fBref\fP, \fBunref\fP, \fBget\fP oraz \fBselect\fP są dostępne we
+wszystkich pięciu interfejsach.
+
+W przypadku funkcji \fBnew\fP i \fBunref\fP, trzeba przekazać adres wskaźnika do
+struktury \fIinfo\fP. W przypadku \fBnew\fP musi być zainicjowany na NULL. W
+przypadku \fBunref\fP zostanie ustawiony na NULL, jeśli licznik odwołań
+osiÄ…gnie zero.
+
+W przypadku interfejsu \fBdiskstats\fP, parametr \fIname\fP funkcji \fBget\fP i
+\fBselect\fP określa nazwę dysku lub partycji
+
+W przypadku interfejsu \fBstat\fP, parametr \fIwhat\fP funkcji \fBreap\fP określa,
+czy zebrane mają być dane tylko dla CPU, czy dla CPU oraz NUMA.
+
+Przy używaniu funkcji \fBsort\fP, parametry \fIstacks\fP i \fInumstacked\fP są zwykle
+zwracame w strukturze `reaped'.
+
+.SH "WARTOŚĆ ZWRACANA"
+.SS "Funkcje zwracajÄ…ce `int'"
+Błąd jest oznaczany poprzez liczbę ujemną, będącą liczbą przeciwną do znanej
+wartości errno.h.
+
+Sukces jest oznaczany wartością zerową. Jednak funkcje \fBref\fP i \fBunref\fP
+zwracają bieżący licznik odwołań struktury \fIinfo\fP.
+
+.SS "Funkcje zwracajÄ…ce adres"
+Błąd jest oznaczany zwracanym wskaźnikiem NULL, a powód można znaleźć w
+wartości errno.
+
+Sukces jest oznaczany wskaźnikiem na nazwaną strukturę.
+
+.SH DIAGNOSTYKA
+Aby pomóc przy rozwijaniu programów, jest udogodnienie pozwalające zapewnić,
+że odwołania do składowej `result' zgadzają się z oczekiwaniami
+biblioteki. Zakłada, że do dostępu do wartości `result' jest używane makro
+udostępnione w pliku nagłówkowym.
+
+Tę opcję można włączyć w jeden z poniższych sposobów, a wszystkie
+niezgodności będą wypisane na \fBstderr\fP.
+
+.IP 1) 3
+Dodanie CFLAGS='\-DXTRA_PROCPS_DEBUG' do pozostałych użytych opcji
+\&./configure.
+
+.IP 2) 3
+Dodanie #include <procps/xtra\-procps\-debug.h> do dowolnego programu
+\fIpo\fP nagłówkach nazwanych interfejsów.
+
+.PP
+Ta opcja weryfikacji dodaje istotny narzut. W związku z tym ważne jest, żeby
+\fInie\fP była włączona w binariach produkcyjnych.
+
+.SH "ZOBACZ TAKŻE"
+\fBprocps_misc\fP(3), \fBprocps_pids\fP(3), \fBproc\fP(5).
diff --git a/po-man/pl/procps_misc.3 b/po-man/pl/procps_misc.3
new file mode 100644
index 0000000..0b8fe19
--- /dev/null
+++ b/po-man/pl/procps_misc.3
@@ -0,0 +1,151 @@
+.\"
+.\" Copyright (c) 2020-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2020-2023 Craig Small <csmall@dropbear.xyz>
+.\"
+.\" This manual is free software; you can redistribute it and/or
+.\" modify it under the terms of the GNU Lesser General Public
+.\" License as published by the Free Software Foundation; either
+.\" version 2.1 of the License, or (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PROCPS_MISC 3 "Sierpień 2022" libproc2
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.nh
+.SH NAZWA
+procps_misc \- API do różnych informacji w systemie plików /proc
+.SH SKÅADNIA
+.nf
+\fB#include <libproc2/misc.h>\fP
+.PP
+Szczegóły platformy
+.RS 4
+.PP
+long \fBprocps_cpu_count\fP (void);
+long \fBprocps_hertz_get\fP (void);
+unsigned int \fBprocps_pid_length\fP (void);
+int \fBprocps_linux_version\fP (void);
+.RE
+.PP
+Szczegóły czasu działania
+.PP
+.RS 4
+int \fB procps_loadavg\fP (double *\fIav1\fP, double *\fIav5\fP, double *\fIav15\fP);
+int \fB procps_uptime\fP (double *\fIuptime_secs\fP, double *\fIidle_secs\fP);
+char *\fBprocps_uptime_sprint\fP (void);
+char *\fBprocps_uptime_sprint_short\fP (void);
+.RE
+.PP
+Szczegóły przestrzeni nazw
+.PP
+.RS 4
+int \fB procps_ns_get_id\fP (const char *\fIname\fP);
+const char\fB *procps_ns_get_name\fP (int \fIid\fP);
+int \fB procps_ns_read_pid\fP (int \fIpid\fP, struct procps_ns *\fInsp\fP);
+.RE
+
+Konsolidować z \fI\-lproc2\fP.
+
+.SH OPIS
+\fBprocps_cpu_count\fP() zwraca liczbę CPU obecnie włączonych, jak w
+\fBsysconf(\fP\fI_SC_NPROCESSORS_ONLY\fP\fB)\fP lub przyjęte \fI1\fP.
+
+\fBprocps_hertz_get\fP() zwraca liczbę tyknięć zegara na sekundę, jak w
+\fBsysconf(\fP\fI_SC_CLK_TCK\fP\fB)\fP lub przyjęte \fI100\fP. Podzielenie tyknięć przez
+tę wartość daje sekundy.
+
+\fBprocps_pid_length\fP() zwraca maksymalną długość łańcucha dla PIDu w
+systemie. Na przykład, jeśli największa możliwa wartość PID to 123, długość
+wynosi 3. Jeśli plik \fI/proc/sys/kernel/pid_max\fP jest nieczytelny,
+przyjmowana jest wartość \fI5\fP.
+
+\fBprocps_linux_version\fP() zwraca bieżącą wersję Linuksa zakodowaną w
+liczbie całkowitej. Na systemach innych niż Linux, mających emulację systemu
+plików proc, ta funkcja zwraca wersję emulacji Linuksa. Wersja składa się z
+trzech dodatnich liczb całkowitych, oznaczających poziomy główny, poboczny i
+poprawek. Do kodowania danej wersji Linuksa lub podziału wersji na składniki
+służą poniższe makra:
+.RS 4
+.PP
+LINUX_VERSION(\ major\ ,\ minor\ ,\ patch\ )
+.PP
+LINUX_VERSION_MAJOR(\ ver\ )
+.PP
+LINUX_VERSION_MINOR(\ ver\ )
+.PP
+LINUX_VERSION_PATCH(\ ver\ )
+.RE
+
+\fBprocps_loadavg\fP() pobiera średnie obciążenie systemu i wpisuje średnie
+1\-, 5\- i 15\-minutowe w miejsce określone wskaźnikiem różnym niż \fINULL\fP.
+
+\fBprocps_uptime\fP() zwraca czas działania systemu i/lub liczbę sekund
+bezczynności w miejsce określone wskaźnikiem innym niż \fINULL\fP. Odmiana
+\fBsprint\fP zwraca łańcuch czytelny dla użytkownika w jednej z dwóch postaci.
+.RS 4
+.PP
+HH:MM:SS up HH:MM, # users, load average: średnie 1, 5, 15 minutowe
+.PP
+up HH, MM
+.RE
+
+\fBprocps_ns_get_id\fP() zwraca całkowite id (enum namespace_type) przestrzeni
+nazw dla podanej przestrzeni nazw \fIname\fP.
+
+\fBprocps_ns_get_name\fP() zwraca nazwÄ™ przestrzeni nazw dla podanego \fIid\fP
+(enum namespace_type).
+
+\fBprocps_ns_read_pid\fP() zwraca i\-węzły przestrzeni nazw podanego procesu w
+strukturze procps_ns wskazanej przez \fInsp\fP. I\-węzły będą w kolejności
+określonej przez enum namespace_type.
+.PP
+.RS 4
+.nf
+enum namespace_type {
+ PROCPS_NS_CGROUP,
+ PROCPS_NS_IPC,
+ PROCPS_NS_MNT,
+ PROCPS_NS_NET,
+ PROCPS_NS_PID,
+ PROCPS_NS_TIME,
+ PROCPS_NS_USER,
+ PROCPS_NS_UTS
+};
+.fi
+.RE
+
+
+.SH "WARTOŚĆ ZWRACANA"
+.SS "Funkcje zwracajÄ…ce `int' lub `long'"
+Błąd jest oznaczany poprzez liczbę ujemną, będącą liczbą przeciwną do znanej
+wartości errno.h.
+
+.SS "Funkcje zwracajÄ…ce adres"
+Błąd jest oznaczany zwracanym wskaźnikiem NULL, a powód można znaleźć w
+wartości errno.
+
+.SH PLIKI
+.TP
+\fI/proc/loadavg\fP
+Surowe wartości średniego obciążenia.
+.TP
+\fI/proc/sys/kernel/osrelease\fP
+Wersja wydania jądra Linuksa lub systemu plików proc.
+.TP
+\fI/proc/sys/kernel/pid_max\fP
+Wartość, przy której licznik PIDów się przekręca \- o jeden większa, niż
+maksymalna wartość PID.
+.TP
+\fI/proc/uptime\fP
+Surowe wartości czasu włączenia systemu i bezczynności.
+.TP
+\fI/proc/<PID>/ns\fP
+zbiór przestrzeni nazw dla określonegu \fBPIDu\fP.
+
+.SH "ZOBACZ TAKŻE"
+\fBprocps\fP(3), \fBprocps_pids\fP(3), \fBproc\fP(5).
diff --git a/po-man/pl/procps_pids.3 b/po-man/pl/procps_pids.3
new file mode 100644
index 0000000..21892f4
--- /dev/null
+++ b/po-man/pl/procps_pids.3
@@ -0,0 +1,201 @@
+.\"
+.\" Copyright (c) 2020-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2020-2023 Craig Small <csmall@dropbear.xyz>
+.\"
+.\" This manual is free software; you can redistribute it and/or
+.\" modify it under the terms of the GNU Lesser General Public
+.\" License as published by the Free Software Foundation; either
+.\" version 2.1 of the License, or (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PROCPS_PIDS 3 "Sierpień 2022" libproc2
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.nh
+.SH NAZWA
+procps_pids \- API do dostępu do informacji o procesach w systemie plików
+/proc
+
+.SH SKÅADNIA
+.nf
+#include <libproc2/pids.h>
+
+int\fB procps_pids_new \fP (struct pids_info **\fIinfo\fP, enum pids_item *\fIitems\fP, int \fInumitems\fP);
+int\fB procps_pids_ref \fP (struct pids_info *\fIinfo\fP);
+int\fB procps_pids_unref\fP (struct pids_info **\fIinfo\fP);
+
+
+struct pids_stack *\fBprocps_pids_get\fP (
+ struct pids_info *\fIinfo\fP,
+ enum pids_fetch_type \fIwhich\fP);
+
+struct pids_fetch *\fBprocps_pids_reap\fP (
+ struct pids_info *\fIinfo\fP,
+ enum pids_fetch_type \fIwhich\fP);
+
+struct pids_fetch *\fBprocps_pids_select\fP (
+ struct pids_info *\fIinfo\fP,
+ unsigned *\fIthese\fP,
+ int \fInumthese\fP,
+ enum pids_select_type \fIwhich\fP);
+
+struct pids_stack **\fBprocps_pids_sort\fP (
+ struct pids_info *\fIinfo\fP,
+ struct pids_stack *\fIstacks\fP[],
+ int \fInumstacked\fP,
+ enum pids_item \fIsortitem\fP,
+ enum pids_sort_order \fIorder\fP);
+
+int \fBprocps_pids_reset\fP (
+ struct pids_info *\fIinfo\fP,
+ enum pids_item *\fInewitems\fP,
+ int \fInewnumitems\fP);
+
+struct pids_stack *\fBfatal_proc_unmounted\fP (
+ struct pids_info *\fIinfo\fP,
+ int \fIreturn_self\fP);
+
+.fi
+
+Konsolidować z \fI\-lproc2\fP.
+
+.SH OPIS
+.SS PrzeglÄ…d
+Interfejs ten opiera siÄ™ na prostej strukturze `result', odzwierciedlajÄ…cej
+element `item' wraz z jego wartością (w unii ze standardowymi typami C jako
+składowymi). Wszystkie struktury `result' są automatycznie przydzielane i
+dostarczane przez bibliotekÄ™.
+
+Podając tablicę elementów `item', struktury te mogą być zorganizowane w
+"stos", potencjalnie zwracając wiele wyników w pojedynczym wywołaniu
+funkcji. W ten sposób na "stos" można patrzeć jak na rekord zmiennej
+długości, którego zawartość i porządek są określane wyłącznie przez
+użytkownika.
+
+Częścią tego interfejsu jest para unikatowych enumeratorów. Elementy `noop'
+i `extra' istnieją w celu trzymania wartości użytkownika. Nie są nigdy
+ustawiane przez bibliotekę, ale wynik `extra' jest zerowany przy każdej
+interakcji z bibliotekÄ….
+
+Plik pids.h jest podstawowym dokumentem przy tworzeniu programu
+użytkownika. Tam można zaleźć dostępne elementy, ich typ zwracany (nazwę
+składowej struktury `result') oraz źródła tych wartości. Tam też są
+udokumentowane dodatkowe enumeratory czy struktury.
+
+.SS Użycie
+Poniżej znajduje się typowa sekwencja wywołań tego intefejsu.
+
+.nf
+1. \fBfatal_proc_unmounted()\fP
+2. \fBprocps_pids_new()\fP
+3. \fBprocps_pids_get()\fP, \fBprocps_pids_reap()\fP lub \fBprocps_pids_select()\fP
+4. \fBprocps_pids_unref()\fP
+.fi
+
+Funkcja \fBget\fP to iterator dla kolejnych PIDów/TIDów, zwracający te elementy
+`item' wcześniej określane poprzez \fBnew\fP lub \fBreset\fP.
+
+Dwie funkcje obsługują nieprzewidywalne, zmienne wyniki. Funkcja \fBreap\fP
+zbiera dane dla wszystkich procesów, a funkcja \fBselect\fP obsługuje konkretne
+PIDy i UIDy. Obie mogą zwrócić wiele "stosów", z których każdy zawiera wiele
+struktur `result'. Opcjonalnie użytkownik może zdecydować, aby wykonać
+\fBsort\fP tych wyników.
+
+Aby wykorzystać dowolny "stos" i dostać się do poszczególnych struktur
+`result', wymagana jest wartość \fIrelative_enum\fP, jak widać w makrze \fBVAL\fP
+zdefiniowanym w pliku nagłówkowym. Takie wartości mogą być sztywno
+zakodowane od 0 do numitems\-1. Zwykle jednak tÄ™ potrzebÄ™ zaspokaja siÄ™
+tworząc własne enumeratory odpowiadające kolejności tablicy `items'.
+
+.SS Zastrzeżenia
+API <pids> różni się od innych tym, że interesujące elementy trzeba
+przekazać w czasie \fBnew\fP lub \fBreset\fP \- to drugie zachodzi tylko dla tego
+API. Jeśli w czasie \fBnew\fP parametr \fIitems\fP lub \fInumitems\fP jest zerowy,
+wywołanie \fBreset\fP jest obowiązkowe przed wykonaniem dowolnego innego
+wywołania.
+
+W przypadku funkcji \fBnew\fP i \fBunref\fP, trzeba przekazać adres wskaźnika do
+struktury \fIinfo\fP. W przypadku \fBnew\fP musi być zainicjowany na NULL. W
+przypadku \fBunref\fP zostanie ustawiony na NULL, jeśli licznik odwołań
+osiÄ…gnie zero.
+
+Funkcje \fBget\fP i \fBreap\fP wykorzystują parametr \fIwhich\fP, określający, czy
+pobrane mogą być tylko zadania, czy zadania i wątki.
+
+Funkcja \fBselect\fP wymaga jako \fIthese\fP wraz z \fInumthese\fP tablicy PIDów lub
+UIDów, określających procesy do pobrania. Ta funkcja operuje działa jako
+podzbiór \fBreap\fP.
+
+W przypadku funkcji \fBsort\fP, parametry \fIstacks\fP oraz \fInumstacked\fP będą
+zwykle zwracane w strukturze `pids_fetch'.
+
+Funkcja \fBfatal_proc_unmounted\fP może być wywołana przed dowolną inną
+funkcją, aby upewnić się, że katalog /proc/ jest zamontowany. W takim
+przypadku parametr \fIinfo\fP będzie NULLem, a parametr \fIreturn_self\fP
+zerem. Jeśli jednak jakieś elementy są pożądane przez wywołujący program
+(\fIreturn_self\fP inny niż zero), wywołanie \fBnew\fP musi je poprzedzać, aby
+określić elementy \fIitems\fP i uzyskać żądany wskaźnik \fIinfo\fP.
+
+.SH "WARTOŚĆ ZWRACANA"
+.SS "Funkcje zwracajÄ…ce `int'"
+Błąd jest oznaczany poprzez liczbę ujemną, będącą liczbą przeciwną do znanej
+wartości errno.h.
+
+Sukces jest oznaczany wartością zerową. Jednak funkcje \fBref\fP i \fBunref\fP
+zwracają bieżący licznik odwołań struktury \fIinfo\fP.
+
+.SS "Funkcje zwracajÄ…ce adres"
+Błąd jest oznaczany zwracanym wskaźnikiem NULL, a powód można znaleźć w
+wartości errno.
+
+Sukces jest oznaczany wskaźnikiem na nazwaną strukturę. Jednak, jeśli
+program przeżyje wywołanie \fBfatal_proc_unmounted\fP, zwracany jest zawsze
+NULL, jeśli \fIreturn_self\fP jest zerowy.
+
+.SH DIAGNOSTYKA
+Aby pomóc przy rozwijaniu programów, można wykorzystać dwa udogodnienia
+procps\-ng.
+
+Pierwsze do dołączony plik o nazwie `libproc.supp', który może być przydatny
+przy rozwijaniu aplikacji wielowątkowych. W przypadku użycia opcji valgrinda
+`\-\-suppressions=', pomijane będą ostrzeżenia związane z samą biblioteką
+procps.
+
+Ostrzeżenia takie mogą się pojawić, ponieważ biblioteka obsługuje
+przydzielanie pamięci na stercie w sposób bezpieczny dla wątków. Aplikacje
+jednowątkowe nie będą powodowały ostrzeżeń.
+
+Drugie udogodnienie pozwala zapewnić, że odwołania do składowej `result'
+zgadzają się z oczekiwaniami biblioteki. Zakłada, że do dostępu do wartości
+`result' jest używane makro udostępnione w pliku nagłówkowym.
+
+Tę opcję można włączyć w jeden z poniższych sposobów, a wszystkie
+niezgodności będą wypisane na \fBstderr\fP.
+
+.IP 1) 3
+Dodanie CFLAGS='\-DXTRA_PROCPS_DEBUG' do pozostałych użytych opcji
+\&./configure.
+
+.IP 2) 3
+Dodanie #include <procps/xtra\-procps\-debug.h> do dowolnego programu
+\fIpo\fP #include <procps/pids.h>.
+
+.PP
+Ta opcja weryfikacji dodaje istotny narzut. W związku z tym ważne jest, żeby
+\fInie\fP była włączona w binariach produkcyjnych.
+
+.SH "ZMIENNE ÅšRODOWISKOWE"
+Ustawiona wartość następującej zmiennej nie jest istotna, a jedynie jej
+obecność.
+
+.IP LIBPROC_HIDE_KERNEL
+Zmienna ukrywa wątki jądra, które w innym wypadku byłyby zwrócone przez
+wywołania \fBprocps_pids_get\fP, \fBprocps_pids_select\fP i \fBprocps_pids_reap\fP.
+
+.SH "ZOBACZ TAKŻE"
+\fBprocps\fP(3), \fBprocps_misc\fP(3), \fBproc\fP(5).
diff --git a/po-man/pl/uptime.1 b/po-man/pl/uptime.1
new file mode 100644
index 0000000..f1e97f2
--- /dev/null
+++ b/po-man/pl/uptime.1
@@ -0,0 +1,74 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH UPTIME 1 "grudzień 2012" procps\-ng "Polecenia użytkownika"
+.SH NAZWA
+uptime \- informacja, jak długo działa system.
+.SH SKÅADNIA
+\fBuptime\fP [\fIopcje\fP]
+.SH OPIS
+\fBuptime\fP w pojedynczej linii podaje następujące informacje: bieżący czas;
+czas, jak długo działa system; liczbę aktualnie zalogowanych użytkowników;
+średnie obciążenie systemu dla ostatnich 1, 5 i 15 minut.
+.PP
+Są to te same informacje, które zawiera linia nagłówka wyświetlana przez
+polecenie \fBw\fP(1).
+.PP
+Średnie obciążenie systemu to średnia liczba procesów w stanie działającym
+lub nieprzerywalnym. Proces jest w stanie działającym, kiedy używa procesora
+lub oczekuje na procesor. Proces jest w stanie nieprzerywalnym, kiedy
+oczekuje na jakiś dostęp we/wy, np. na dysk. Średnie są obliczane dla trzech
+okresów czasu. Nie są normalizowane pod kątem liczby procesorów w systemie,
+więc średnie obciążenie 1 oznacza, że system jednoprocesorowy jest obciążony
+cały czas, podczas gdy system 4\-procesorowy jest bezczynny przez 75% czasu.
+.SH OPCJE
+.TP
+\fB\-p\fP, \fB\-\-pretty\fP
+wyświetlenie czasu działania w ładnym formacie
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+wyświetlenie tego opisu
+.TP
+\fB\-s\fP, \fB\-\-since\fP
+początek czasu działania systemu w formacie rrrr\-mm\-dd GG:MM:SS
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+wyświetlenie informacji o wersji i zakończenie
+.SH PLIKI
+.TP
+\fI/var/run/utmp\fP
+informacja o tym, kto jest obecnie zalogowany
+.TP
+\fI/proc\fP
+informacje o procesach
+.SH AUTORZY
+Program \fBuptime\fP napisali
+.UR greenfie@gauss.\:rutgers.\:edu
+Larry
+Greenfield
+.UE
+oraz
+.UR johnsonm@sunsite.\:unc.\:edu
+Michael
+K. Johnson
+.UE
+.SH "ZOBACZ TAKŻE"
+\fBps\fP(1), \fBtop\fP(1), \fButmp\fP(5), \fBw\fP(1)
+.SH "ZGÅASZANIE BÅĘDÓW"
+Zgłoszenia błędów prosimy wysyłać na adres
+.UR procps@freelists.org
+.UE
diff --git a/po-man/pl/vmstat.8 b/po-man/pl/vmstat.8
new file mode 100644
index 0000000..309f1e4
--- /dev/null
+++ b/po-man/pl/vmstat.8
@@ -0,0 +1,186 @@
+.\"
+.\" Copyright (c) 2002-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2012-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1994 Henry Ware <al172@yfn.ysu.edu>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH VMSTAT 8 2023\-01\-18 procps\-ng "Administracja systemem"
+.SH NAZWA
+vmstat \- statystyki pamięci wirtualnej
+.SH SKÅADNIA
+\fBvmstat\fP [opcje] [\fIopóźnienie\fP [\fIliczba\fP]]
+.SH OPIS
+\fBvmstat\fP raportuje informacje o aktywności procesów, pamięci,
+stronicowania, blokowego we/wy, pułapek, dysków i procesora.
+.PP
+Pierwszy tworzony raport podaje średnie wartości od ostatniego restartu
+systemu. Dodatkowe raporty podają informacje dla okresów próbkowania o
+długości \fIopóźnienia\fP. Raporty dotyczące procesów i pamięci są w obu
+przypadkach natychmiastowe.
+.SH OPCJE
+.TP
+\fIopóźnienie\fP
+\fIOpóźnienie\fP pomiędzy uaktualnieniami w sekundach. Jeśli nie podano
+\fIopóźnienia\fP, wypisywany jest tylko raport z wartościami średnimi od
+rozruchu systemu.
+.TP
+\fIliczba\fP
+Liczba uaktualnień. W przypadku braku \fIliczby\fP, jeśli podano \fIopóźnienie\fP,
+domyślna jest nieskończoność.
+.TP
+\fB\-a\fP, \fB\-\-active\fP
+Wyświetlenie pamięci aktywnej i nieaktywnej, jeśli używane jest jądro 2.5.41
+lub nowsze.
+.TP
+\fB\-f\fP, \fB\-\-forks\fP
+Opcja \fB\-f\fP wyświetla liczbę rozgałęzień procesów od rozruchu
+systemu. Liczba ta obejmuje wywołania systemowe fork, vfork oraz clone; jest
+odpowiednikiem całkowitej liczby utworzonych zadań. Każdy proces jest
+reprezentowany przez jedno lub więcej zadań, w zależności od wykorzystania
+wątków. Ten widok się nie powtarza.
+.TP
+\fB\-m\fP, \fB\-\-slabs\fP
+Wyświetlenie slabinfo.
+.TP
+\fB\-n\fP, \fB\-\-one\-header\fP
+Wyświetlenie nagłówka tylko raz zamiast regularnie.
+.TP
+\fB\-s\fP, \fB\-\-stats\fP
+Wyświetlenie tabeli różnych liczników zdarzeń i statystyk pamięci. Ten widok
+siÄ™ nie powtarza.
+.TP
+\fB\-d\fP, \fB\-\-disk\fP
+Raport statystyk dysku (wymagane jÄ…dro 2.5.70 lub nowsze).
+.TP
+\fB\-D\fP, \fB\-\-disk\-sum\fP
+Raport pewnych statystyk zbiorczych dotyczących aktywności dysku.
+.TP
+\fB\-p\fP, \fB\-\-partition\fP \fIurzÄ…dzenie\fP
+Szczegółowe statystyki dotyczące partycji (wymagane jądro 2.5.70 lub
+nowsze).
+.TP
+\fB\-S\fP, \fB\-\-unit\fP \fIznak\fP
+Przełączenie wyjścia między jednostkami 1000 (\fIk\fP), 1024 (\fIK\fP),1000000
+(\fIm\fP) lub 1048576 (\fIM\fP) bajtów. Opcja nie zmienia pól operacji wymiany
+(si/so) ani blokowych (bi/bo).
+.TP
+\fB\-t\fP, \fB\-\-timestamp\fP
+Dołączenie znacznika czasu do każdej linii
+.TP
+\fB\-w\fP, \fB\-\-wide\fP
+Tryb szerokiego wyjścia (przydatny dla systemów z dużą ilością pamięci,
+gdzie domyślny tryb wyjścia cierpi przez niechciane łamanie kolumn). Wyjście
+jest szersze niż 80 znaków w linii.
+.TP
+\fB\-y\fP, \fB\-\-no\-first\fP
+Pominięcie pierwszego raportu ze statystykami od rozruchu systemu.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Wyświetlenie informacji o wersji i zakończenie.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Wyświetlenie opisu i zakończenie.
+.PD
+.SH "OPIS PÓL DLA TRYBU VM"
+.SS Proc.
+.nf
+r: Liczba procesów działających (działających lub czekających na czas pracy).
+b: Liczba procesów zablokowanych na oczekiwaniu na zakończenie we/wy.
+.fi
+.SS Pamięć
+Te podlegajÄ… opcji \fB\-\-unit\fP.
+.nf
+swap: ilość użytej pamięci wymiany.
+wolna: ilość pamięci bezczynnej.
+bufor: ilość pamięci używanej jako bufory.
+cache: ilość pamięci używanej jako podręczna.
+nieakt: ilość pamięci nieaktywnej (opcja \fB\-a\fP).
+akt: ilość pamięci aktywnej (opcja \fB\-a\fP).
+.fi
+.SS Swap
+Te podlegajÄ… opcji \fB\-\-unit\fP.
+.nf
+si: Ilość pamięci wymiany wczytanej z dysku (/s).
+so: Ilość pamięci wymiany zapisanej na dysk (/s).
+.fi
+.SS IO
+.nf
+bi: Kibibajty odebrane z urzÄ…dzenia blokowego (bloki/s).
+bo: Kibibajty wysłane do urządzenia blokowego (bloki/s).
+.fi
+.SS System
+.nf
+in: Liczba przerwań na sekundę, włącznie z zegarowym.
+cs: Liczba przełączeń kontekstu na sekundę.
+.fi
+.SS CPU
+Procenty całkowitego czasu procesora.
+.nf
+us: Czas spędzony w kodzie poza jądrem (czas użytkownika, w tym nice).
+sy: Czas spędzony w kodzie jądra (czas systemu)
+id: Czas spędzony bezczynnie. Przed Linuksem 2.5.41 obejmował czas IO\-wait.
+wa: Czas spędzony na oczekiwaniu na we/wy. Przed 2.5.41 zawarty w bezczynnym.
+st: Czas skradziony wirtualnej maszynie. Przed Linuksem 2.6.11 nieznany.
+gu: Czas spędzony w kodzie gościa KVM (czas gościa, w tym nice).
+.fi
+.SH "OPIS PÓL DLA TRYBU DYSKOWEGO"
+.SS Odczyty
+.nf
+total: wszystkie odczyty zakończone poprawnie
+merged: odczyty zgrupowane (zakończone w jednym we/wy)
+sectors: sektory odczytane poprawnie
+ms: milisekundy spędzone na odczycie
+.fi
+.SS Zapisy
+.nf
+total: wszystkie zapisy zakończone poprawnie
+merged: zapisy zgrupowane (zakończone w jednym we/wy)
+sectors: sektory zapisane poprawnie
+ms: milisekundy spędzone na zapisie
+.fi
+.SS IO
+.nf
+cur: operacje we/wy w trakcie
+s: sekundy spędzone na operacjach we/wy
+.fi
+.SH "OPIS PÓL DLA TRYBU PARTYCJI DYSKU"
+.nf
+reads: całkowita liczba odczytów zleconych dla tej partycji
+read sectors: całkowita liczba sektorów odczytanych z partycji
+writes: całkowita liczba zapisów zleconych dla tej partycji
+requested writes: całkowita liczba żądań zapisu dla partycji
+.fi
+.SH "OPIS PÓL DLA TRYBU PÅYT"
+Slab mode shows statistics per slab, for more information about this
+information see \fBslabinfo\fP(5)
+.PP
+.nf
+cache: nazwa pamięci podręcznej
+num: liczba obecnie aktywnych obiektów
+total: całkowita liczba dostępnych obiektów
+size: rozmiar każdego obiektu
+pages: liczba stron z przynajmniej jednym aktywnym obiektem
+.fi
+.SH UWAGI
+\fBvmstat\fP requires read access to files under \fI/proc\fP. The \fB\-m\fP requires
+read access to \fI/proc/slabinfo\fP which may not be available to standard
+users. Mount options for \fI/proc\fP such as \fIsubset=pid\fP may also impact
+what is visible.
+.SH "ZOBACZ TAKŻE"
+\fBfree\fP(1), \fBiostat\fP(1), \fBmpstat\fP(1), \fBps\fP(1), \fBsar\fP(1), \fBtop\fP(1),
+\fBslabinfo\fP(5)
+.SH "ZGÅASZANIE BÅĘDÓW"
+Zgłoszenia błędów prosimy wysyłać na adres
+.UR procps@freelists.org
+.UE
diff --git a/po-man/po4a.cfg b/po-man/po4a.cfg
new file mode 100644
index 0000000..6cac123
--- /dev/null
+++ b/po-man/po4a.cfg
@@ -0,0 +1,64 @@
+
+# Languages for man page
+[po4a_langs] de fr pl pt_BR ro sv uk zh_CN
+[po4a_paths] procps-man.pot $lang:$lang.po
+
+[type: man] ../man/free.1 $lang:$lang/free.1 \
+ add_$lang:?add_$lang/$lang.add opt:"-k 80"
+
+[type: man] ../man/kill.1 $lang:$lang/kill.1 \
+ add_$lang:?add_$lang/$lang.add opt:"-k 80"
+
+[type: man] ../man/pgrep.1 $lang:$lang/pgrep.1 \
+ add_$lang:?add_$lang/$lang.add opt:"-k 80"
+
+[type: man] ../man/pidof.1 $lang:$lang/pidof.1 \
+ add_$lang:?add_$lang/$lang.add opt:"-k 80"
+
+[type: man] ../man/pmap.1 $lang:$lang/pmap.1 \
+ add_$lang:?add_$lang/$lang.add opt:"-k 80"
+
+[type: man] ../man/pwdx.1 $lang:$lang/pwdx.1 \
+ add_$lang:?add_$lang/$lang.add opt:"-k 80"
+
+[type: man] ../man/skill.1 $lang:$lang/skill.1 \
+ add_$lang:?add_$lang/$lang.add opt:"-k 80"
+
+[type: man] ../man/slabtop.1 $lang:$lang/slabtop.1 \
+ add_$lang:?add_$lang/$lang.add opt:"-k 80"
+
+[type: man] ../man/sysctl.8 $lang:$lang/sysctl.8 \
+ add_$lang:?add_$lang/$lang.add opt:"-k 80"
+
+[type: man] ../man/sysctl.conf.5 $lang:$lang/sysctl.conf.5 \
+ add_$lang:?add_$lang/$lang.add opt:"-k 80"
+
+[type: man] ../man/tload.1 $lang:$lang/tload.1 \
+ add_$lang:?add_$lang/$lang.add opt:"-k 80"
+
+[type: man] ../man/uptime.1 $lang:$lang/uptime.1 \
+ add_$lang:?add_$lang/$lang.add opt:"-k 80"
+
+[type: man] ../man/vmstat.8 $lang:$lang/vmstat.8 \
+ add_$lang:?add_$lang/$lang.add opt:"-k 80"
+
+[type: man] ../man/w.1 $lang:$lang/w.1 \
+ add_$lang:?add_$lang/$lang.add opt:"-k 80"
+
+[type: man] ../man/watch.1 $lang:$lang/watch.1 \
+ add_$lang:?add_$lang/$lang.add opt:"-k 80"
+
+[type: man] ../man/ps.1 $lang:$lang/ps.1 \
+ add_$lang:?add_$lang/$lang.add opt:"-k 80"
+
+[type: man] ../man/top.1 $lang:$lang/top.1 \
+ add_$lang:?add_$lang/$lang.add opt:"-k 80"
+
+[type: man] ../man/procps.3 $lang:$lang/procps.3 \
+ add_$lang:?add_$lang/$lang.add opt:"-k 80"
+
+[type: man] ../man/procps_misc.3 $lang:$lang/procps_misc.3 \
+ add_$lang:?add_$lang/$lang.add opt:"-k 80"
+
+[type: man] ../man/procps_pids.3 $lang:$lang/procps_pids.3 \
+ add_$lang:?add_$lang/$lang.add opt:"-k 80"
diff --git a/po-man/procps-man.pot b/po-man/procps-man.pot
new file mode 100644
index 0000000..9dcae09
--- /dev/null
+++ b/po-man/procps-man.pot
@@ -0,0 +1,16211 @@
+# SOME DESCRIPTIVE TITLE
+# Copyright (C) YEAR Free Software Foundation, Inc.
+# This file is distributed under the same license as the procps-ng package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+#, fuzzy
+msgid ""
+msgstr ""
+"Project-Id-Version: procps-ng 4.0.3.67-bce6\n"
+"Report-Msgid-Bugs-To: Procps list <procps@freelists.org>\n"
+"POT-Creation-Date: 2023-08-19 17:38+1000\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
+#: ../man/free.1:14
+#, no-wrap
+msgid "FREE"
+msgstr ""
+
+#. type: TH
+#: ../man/free.1:14
+#, no-wrap
+msgid "2023-05-02"
+msgstr ""
+
+#. type: TH
+#: ../man/free.1:14 ../man/kill.1:12 ../man/pgrep.1:13 ../man/pmap.1:19
+#: ../man/pwdx.1:12 ../man/skill.1:12 ../man/slabtop.1:14 ../man/sysctl.8:14
+#: ../man/sysctl.conf.5:13 ../man/tload.1:12 ../man/uptime.1:13
+#: ../man/vmstat.8:13 ../man/w.1:14 ../man/watch.1:13 ../man/ps.1:13
+#: ../man/top.1:62
+#, no-wrap
+msgid "procps-ng"
+msgstr ""
+
+#. type: TH
+#: ../man/free.1:14 ../man/kill.1:12 ../man/pgrep.1:13 ../man/pidof.1:13
+#: ../man/pmap.1:19 ../man/pwdx.1:12 ../man/skill.1:12 ../man/slabtop.1:14
+#: ../man/tload.1:12 ../man/uptime.1:13 ../man/w.1:14 ../man/watch.1:13
+#: ../man/ps.1:13 ../man/top.1:62
+#, no-wrap
+msgid "User Commands"
+msgstr ""
+
+#. type: SH
+#: ../man/free.1:15 ../man/kill.1:13 ../man/pgrep.1:14 ../man/pidof.1:14
+#: ../man/pmap.1:20 ../man/pwdx.1:13 ../man/skill.1:13 ../man/slabtop.1:15
+#: ../man/sysctl.8:15 ../man/sysctl.conf.5:14 ../man/tload.1:13
+#: ../man/uptime.1:14 ../man/vmstat.8:14 ../man/w.1:15 ../man/watch.1:14
+#: ../man/ps.1:27 ../man/top.1:67 ../man/procps.3:15 ../man/procps_misc.3:15
+#: ../man/procps_pids.3:15
+#, no-wrap
+msgid "NAME"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:17
+msgid "free - Display amount of free and used memory in the system"
+msgstr ""
+
+#. type: SH
+#: ../man/free.1:17 ../man/kill.1:15 ../man/pgrep.1:16 ../man/pidof.1:16
+#: ../man/pmap.1:22 ../man/pwdx.1:15 ../man/skill.1:15 ../man/slabtop.1:17
+#: ../man/sysctl.8:17 ../man/tload.1:15 ../man/uptime.1:16 ../man/vmstat.8:16
+#: ../man/w.1:17 ../man/watch.1:16 ../man/ps.1:29 ../man/top.1:72
+#: ../man/procps.3:18 ../man/procps_misc.3:17 ../man/procps_pids.3:18
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:20
+msgid "B<free> [I<options>]"
+msgstr ""
+
+#. type: SH
+#: ../man/free.1:20 ../man/kill.1:18 ../man/pgrep.1:25 ../man/pidof.1:30
+#: ../man/pmap.1:25 ../man/skill.1:25 ../man/slabtop.1:20 ../man/sysctl.8:23
+#: ../man/sysctl.conf.5:16 ../man/tload.1:18 ../man/uptime.1:19
+#: ../man/vmstat.8:20 ../man/w.1:20 ../man/watch.1:19 ../man/ps.1:31
+#: ../man/ps.1:1002 ../man/top.1:77 ../man/procps.3:67 ../man/procps_misc.3:49
+#: ../man/procps_pids.3:61
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:26
+msgid ""
+"B<free> displays the total amount of free and used physical and swap memory "
+"in the system, as well as the buffers and caches used by the kernel. The "
+"information is gathered by parsing /proc/meminfo. The displayed columns are:"
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:26
+#, no-wrap
+msgid "B<total>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:30
+msgid ""
+"Total usable memory (MemTotal and SwapTotal in /proc/meminfo). This includes "
+"the physical and swap memory minus a few reserved bits and kernel binary "
+"code."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:30
+#, no-wrap
+msgid "B<used>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:33
+msgid "Used or unavailable memory (calculated as B<total> - B<available>)"
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:33
+#, no-wrap
+msgid "B<free>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:36
+msgid "Unused memory (MemFree and SwapFree in /proc/meminfo)"
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:36
+#, no-wrap
+msgid "B<shared>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:39
+msgid "Memory used (mostly) by tmpfs (Shmem in /proc/meminfo)"
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:39
+#, no-wrap
+msgid "B<buffers>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:42
+msgid "Memory used by kernel buffers (Buffers in /proc/meminfo)"
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:42
+#, no-wrap
+msgid "B<cache>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:45
+msgid ""
+"Memory used by the page cache and slabs (Cached and SReclaimable in "
+"/proc/meminfo)"
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:45
+#, no-wrap
+msgid "B<buff/cache>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:48
+msgid "Sum of B<buffers> and B<cache>"
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:48
+#, no-wrap
+msgid "B<available>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:57
+msgid ""
+"Estimation of how much memory is available for starting new applications, "
+"without swapping. Unlike the data provided by the B<cache> or B<free> "
+"fields, this field takes into account page cache and also that not all "
+"reclaimable memory slabs will be reclaimed due to items being in use "
+"(MemAvailable in /proc/meminfo, available on kernels 3.14, emulated on "
+"kernels 2.6.27+, otherwise the same as B<free>)"
+msgstr ""
+
+#. type: SH
+#: ../man/free.1:57 ../man/kill.1:34 ../man/pgrep.1:53 ../man/pidof.1:34
+#: ../man/pmap.1:29 ../man/pwdx.1:18 ../man/skill.1:42 ../man/slabtop.1:25
+#: ../man/tload.1:25 ../man/uptime.1:36 ../man/vmstat.8:29 ../man/watch.1:26
+#, no-wrap
+msgid "OPTIONS"
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:58
+#, no-wrap
+msgid "B<-b>, B<--bytes>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:61
+msgid "Display the amount of memory in bytes."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:61
+#, no-wrap
+msgid "B<-k>, B<--kibi>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:64
+msgid "Display the amount of memory in kibibytes. This is the default."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:64
+#, no-wrap
+msgid "B<-m>, B<--mebi>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:67
+msgid "Display the amount of memory in mebibytes."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:67
+#, no-wrap
+msgid "B<-g>, B<--gibi>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:70
+msgid "Display the amount of memory in gibibytes."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:70
+#, no-wrap
+msgid "B<--tebi>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:73
+msgid "Display the amount of memory in tebibytes."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:73
+#, no-wrap
+msgid "B<--pebi>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:76
+msgid "Display the amount of memory in pebibytes."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:76
+#, no-wrap
+msgid "B<--kilo>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:79
+msgid "Display the amount of memory in kilobytes. Implies --si."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:79
+#, no-wrap
+msgid "B<--mega>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:82
+msgid "Display the amount of memory in megabytes. Implies --si."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:82
+#, no-wrap
+msgid "B<--giga>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:85
+msgid "Display the amount of memory in gigabytes. Implies --si."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:85
+#, no-wrap
+msgid "B<--tera>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:88
+msgid "Display the amount of memory in terabytes. Implies --si."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:88
+#, no-wrap
+msgid "B<--peta>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:91
+msgid "Display the amount of memory in petabytes. Implies --si."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:91
+#, no-wrap
+msgid "B<-h>, B<--human>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:95
+msgid ""
+"Show all output fields automatically scaled to shortest three digit unit and "
+"display the units of print out. Following units are used."
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:103
+#, no-wrap
+msgid ""
+" B = bytes\n"
+" Ki = kibibyte\n"
+" Mi = mebibyte\n"
+" Gi = gibibyte\n"
+" Ti = tebibyte\n"
+" Pi = pebibyte\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:107
+msgid ""
+"If unit is missing, and you have exbibyte of RAM or swap, the number is in "
+"tebibytes and columns might not be aligned with header."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:107 ../man/vmstat.8:89
+#, no-wrap
+msgid "B<-w>, B<--wide>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:112
+msgid ""
+"Switch to the wide mode. The wide mode produces lines longer than 80 "
+"characters. In this mode B<buffers> and B<cache> are reported in two "
+"separate columns."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:112
+#, no-wrap
+msgid "B<-c>, B<--count> I<count>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:119
+msgid "Display the result I<count> times. Requires the B<-s> option."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:119
+#, no-wrap
+msgid "B<-l>, B<--lohi>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:122
+msgid "Show detailed low and high memory statistics."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:122
+#, no-wrap
+msgid "B<-L>, B<--line>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:127
+msgid ""
+"Show output on a single line, often used with the B<-s> option to show "
+"memory statistics repeatedly."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:127
+#, no-wrap
+msgid "B<-s>, B<--seconds> I<delay>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:134
+msgid ""
+"Continuously display the result I<delay> seconds apart. You may actually "
+"specify any floating point number for I<delay> using either . or , for "
+"decimal point. B<usleep>(3) is used for microsecond resolution delay "
+"times."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:134
+#, no-wrap
+msgid "B<--si>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:138
+msgid ""
+"Use kilo, mega, giga etc (power of 1000) instead of kibi, mebi, gibi (power "
+"of 1024)."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:138
+#, no-wrap
+msgid "B<-t>, B<--total>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:141
+msgid "Display a line showing the column totals."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:141
+#, no-wrap
+msgid "B<-v>, B<--committed>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:146
+msgid ""
+"Display a line showing the memory commit limit and amount of "
+"committed/uncommitted memory. The B<total> column on this line will display "
+"the memory commit limit. This line is relevant if memory overcommit is "
+"disabled."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:146 ../man/w.1:63
+#, no-wrap
+msgid "B<--help>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:149
+msgid "Print help."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:149 ../man/pgrep.1:228 ../man/pmap.1:72 ../man/pwdx.1:19
+#: ../man/skill.1:68 ../man/slabtop.1:45 ../man/sysctl.8:116 ../man/tload.1:38
+#: ../man/uptime.1:46 ../man/vmstat.8:97 ../man/w.1:72
+#, no-wrap
+msgid "B<-V>, B<--version>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:152 ../man/skill.1:71 ../man/w.1:75
+msgid "Display version information."
+msgstr ""
+
+#. type: SH
+#: ../man/free.1:153 ../man/slabtop.1:87 ../man/sysctl.8:171
+#: ../man/sysctl.conf.5:64 ../man/tload.1:42 ../man/uptime.1:49 ../man/w.1:88
+#: ../man/procps_misc.3:136
+#, no-wrap
+msgid "FILES"
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:154
+#, no-wrap
+msgid "/proc/meminfo"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:157
+msgid "memory information"
+msgstr ""
+
+#. type: SH
+#: ../man/free.1:158 ../man/pgrep.1:301 ../man/pidof.1:69 ../man/tload.1:50
+#: ../man/watch.1:152 ../man/ps.1:2063
+#, no-wrap
+msgid "BUGS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:161
+msgid ""
+"The value for the B<shared> column is not available from kernels before "
+"2.6.32 and is displayed as zero."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:161
+#, no-wrap
+msgid "Please send bug reports to"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:165
+msgid "E<.UR procps@freelists.org> E<.UE>"
+msgstr ""
+
+#. type: SH
+#: ../man/free.1:165 ../man/kill.1:88 ../man/pgrep.1:317 ../man/pidof.1:76
+#: ../man/pmap.1:90 ../man/pwdx.1:25 ../man/skill.1:109 ../man/slabtop.1:91
+#: ../man/sysctl.8:185 ../man/sysctl.conf.5:83 ../man/tload.1:45
+#: ../man/uptime.1:66 ../man/vmstat.8:191 ../man/w.1:95 ../man/ps.1:2070
+#: ../man/procps.3:182 ../man/procps_misc.3:153 ../man/procps_pids.3:207
+#, no-wrap
+msgid "SEE ALSO"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:169
+msgid "B<ps>(1), B<slabtop>(1), B<top>(1), B<vmstat>(8)."
+msgstr ""
+
+#. type: TH
+#: ../man/kill.1:12
+#, no-wrap
+msgid "KILL"
+msgstr ""
+
+#. type: TH
+#: ../man/kill.1:12 ../man/pgrep.1:13 ../man/pidof.1:13
+#, no-wrap
+msgid "2023-01-16"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:15
+msgid "kill - send a signal to a process"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:18
+msgid "B<kill> [options] E<lt>pidE<gt> [...]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:34
+msgid ""
+"The default signal for kill is TERM. Use B<-l> or B<-L> to list available "
+"signals. Particularly useful signals include HUP, INT, KILL, STOP, CONT, "
+"and 0. Alternate signals may be specified in three ways: B<-9>, B<-SIGKILL> "
+"or B<-KILL>. Negative PID values may be used to choose whole process "
+"groups; see the PGID column in ps command output. A PID of B<-1> is "
+"special; it indicates all processes except the kill process itself and init."
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:35
+#, no-wrap
+msgid "B<E<lt>pidE<gt> [...]>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:38
+msgid "Send signal to every E<lt>pidE<gt> listed."
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:38
+#, no-wrap
+msgid "B<-E<lt>signalE<gt>>"
+msgstr ""
+
+#. type: TQ
+#: ../man/kill.1:40
+#, no-wrap
+msgid "B<-s E<lt>signalE<gt>>"
+msgstr ""
+
+#. type: TQ
+#: ../man/kill.1:42
+#, no-wrap
+msgid "B<--signal E<lt>signalE<gt>>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:50
+msgid ""
+"Specify the B<signal> to be sent. The signal can be specified by using name "
+"or number. The behavior of signals is explained in B<signal>(7) manual "
+"page."
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:50 ../man/pgrep.1:216
+#, no-wrap
+msgid "B<-q>, B<--queue >I<value>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:62 ../man/pgrep.1:228
+msgid ""
+"Use B<sigqueue>(3) rather than B<kill>(2) and the value argument is used "
+"to specify an integer to be sent with the signal. If the receiving process "
+"has installed a handler for this signal using the SA_SIGINFO flag to "
+"B<sigaction>(2), then it can obtain this data via the si_value field of the "
+"siginfo_t structure."
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:62
+#, no-wrap
+msgid "B<-l>, B<--list> [I<signal>]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:66
+msgid ""
+"List signal names. This option has optional argument, which will convert "
+"signal number to signal name, or other way round."
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:66 ../man/skill.1:52
+#, no-wrap
+msgid "B<-L>,B<\\ --table>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:69
+msgid "List signal names in a nice table."
+msgstr ""
+
+#. type: SH
+#: ../man/kill.1:71 ../man/pgrep.1:284 ../man/slabtop.1:96
+#: ../man/sysctl.conf.5:39 ../man/vmstat.8:185 ../man/watch.1:144
+#: ../man/ps.1:768
+#, no-wrap
+msgid "NOTES"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:75
+msgid ""
+"Your shell (command line interpreter) may have a built-in kill command. You "
+"may need to run the command described here as /bin/kill to solve the "
+"conflict."
+msgstr ""
+
+#. type: SH
+#: ../man/kill.1:75 ../man/pgrep.1:240 ../man/skill.1:99 ../man/sysctl.8:143
+#: ../man/watch.1:191 ../man/ps.1:84
+#, no-wrap
+msgid "EXAMPLES"
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:76
+#, no-wrap
+msgid "B<kill -9 -1>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:79
+msgid "Kill all processes you can kill."
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:79
+#, no-wrap
+msgid "B<kill -l 11>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:82
+msgid "Translate number 11 into a signal name."
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:82
+#, no-wrap
+msgid "B<kill -L>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:85
+msgid "List the available signal choices in a nice table."
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:85
+#, no-wrap
+msgid "B<kill 123 543 2341 3453>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:88
+msgid "Send the default signal, SIGTERM, to all those processes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:97
+msgid ""
+"B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), B<renice>(1), "
+"B<signal>(7), B<sigqueue>(3), B<skill>(1)"
+msgstr ""
+
+#. type: SH
+#: ../man/kill.1:97 ../man/pmap.1:93 ../man/pwdx.1:28 ../man/skill.1:117
+#: ../man/ps.1:2076
+#, no-wrap
+msgid "STANDARDS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:101
+msgid "This command meets appropriate standards. The B<-L> flag is Linux-specific."
+msgstr ""
+
+#. type: SH
+#: ../man/kill.1:101 ../man/pgrep.1:327 ../man/pidof.1:79 ../man/pwdx.1:32
+#: ../man/skill.1:119 ../man/sysctl.8:189 ../man/sysctl.conf.5:85
+#: ../man/ps.1:2093
+#, no-wrap
+msgid "AUTHOR"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:107
+msgid ""
+"E<.UR albert@users.sf.net> Albert Cahalan E<.UE> wrote kill in 1999 to "
+"replace a bsdutils one that was not standards compliant. The util-linux one "
+"might also work correctly."
+msgstr ""
+
+#. type: SH
+#: ../man/kill.1:107 ../man/pgrep.1:331 ../man/pmap.1:97 ../man/pwdx.1:37
+#: ../man/skill.1:125 ../man/slabtop.1:120 ../man/sysctl.8:193
+#: ../man/sysctl.conf.5:89 ../man/tload.1:66 ../man/uptime.1:71
+#: ../man/vmstat.8:199 ../man/w.1:112 ../man/watch.1:229
+#, no-wrap
+msgid "REPORTING BUGS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:110 ../man/pgrep.1:334 ../man/pmap.1:100 ../man/pwdx.1:40
+#: ../man/skill.1:128 ../man/slabtop.1:123 ../man/sysctl.8:196
+#: ../man/sysctl.conf.5:92 ../man/tload.1:69 ../man/uptime.1:74
+#: ../man/vmstat.8:202 ../man/w.1:115 ../man/watch.1:232
+msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE>"
+msgstr ""
+
+#. type: TH
+#: ../man/pgrep.1:13
+#, no-wrap
+msgid "PGREP"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:16
+msgid ""
+"pgrep, pkill, pidwait - look up, signal, or wait for processes based on name "
+"and other attributes"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:19
+msgid "B<pgrep> [options] pattern"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:22
+msgid "B<pkill> [options] pattern"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:25
+msgid "B<pidwait> [options] pattern"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:30
+msgid ""
+"B<pgrep> looks through the currently running processes and lists the process "
+"IDs which match the selection criteria to stdout. All the criteria have to "
+"match. For example,"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:32
+msgid "$ pgrep -u root sshd"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:38
+msgid ""
+"will only list the processes called B<sshd> AND owned by B<root>. On the "
+"other hand,"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:40
+msgid "$ pgrep -u root,daemon"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:45
+msgid "will list the processes owned by B<root> OR B<daemon>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:50
+msgid ""
+"B<pkill> will send the specified signal (by default B<SIGTERM>) to each "
+"process instead of listing them on stdout."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:53
+msgid "B<pidwait> will wait for each process instead of listing them on stdout."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:54
+#, no-wrap
+msgid "B<->I<signal>"
+msgstr ""
+
+#. type: TQ
+#: ../man/pgrep.1:56
+#, no-wrap
+msgid "B<--signal> I<signal>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:66
+msgid ""
+"Defines the signal to send to each matched process. Either the numeric or "
+"the symbolic signal name can be used. In B<pgrep> or B<pidwait> mode only "
+"the long option can be used and has no effect unless used in conjunction "
+"with B<--require-handler> to filter to processes with a userspace signal "
+"handler present for a particular signal."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:67
+#, no-wrap
+msgid "B<-c>, B<--count>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:74
+msgid ""
+"Suppress normal output; instead print a count of matching processes. When "
+"count does not match anything, e.g. returns zero, the command will return "
+"non-zero value. Note that for pkill and pidwait, the count is the number of "
+"matching processes, not the processes that were successfully signaled or "
+"waited for."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:74
+#, no-wrap
+msgid "B<-d>, B<--delimiter> I<delimiter>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:80
+msgid ""
+"Sets the string used to delimit each process ID in the output (by default a "
+"newline). (B<pgrep> only.)"
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:80
+#, no-wrap
+msgid "B<-e>, B<--echo>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:85
+msgid "Display name and PID of the process being killed. (B<pkill> only.)"
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:85
+#, no-wrap
+msgid "B<-f>, B<--full>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:92
+msgid ""
+"The I<pattern> is normally only matched against the process name. When "
+"B<-f> is set, the full command line is used."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:92
+#, no-wrap
+msgid "B<-g>, B<--pgroup> I<pgrp>,..."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:101
+msgid ""
+"Only match processes in the process group IDs listed. Process group 0 is "
+"translated into B<pgrep>'s, B<pkill>'s, or B<pidwait>'s own process group."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:101
+#, no-wrap
+msgid "B<-G>, B<--group> I<gid>,..."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:105
+msgid ""
+"Only match processes whose real group ID is listed. Either the numerical or "
+"symbolical value may be used."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:105
+#, no-wrap
+msgid "B<-i>, B<--ignore-case>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:108
+msgid "Match processes case-insensitively."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:108
+#, no-wrap
+msgid "B<-l>, B<--list-name>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:113
+msgid "List the process name as well as the process ID. (B<pgrep> only.)"
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:113
+#, no-wrap
+msgid "B<-a>, B<--list-full>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:118
+msgid "List the full command line as well as the process ID. (B<pgrep> only.)"
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:118
+#, no-wrap
+msgid "B<-n>, B<--newest>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:121
+msgid "Select only the newest (most recently started) of the matching processes."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:121
+#, no-wrap
+msgid "B<-o>, B<--oldest>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:124
+msgid "Select only the oldest (least recently started) of the matching processes."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:124
+#, no-wrap
+msgid "B<-O>, B<--older> I<secs>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:127
+msgid "Select processes older than secs."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:127
+#, no-wrap
+msgid "B<-P>, B<--parent> I<ppid>,..."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:130
+msgid "Only match processes whose parent process ID is listed."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:130
+#, no-wrap
+msgid "B<-s>, B<--session> I<sid>,..."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:139
+msgid ""
+"Only match processes whose process session ID is listed. Session ID 0 is "
+"translated into B<pgrep>'s, B<pkill>'s, or B<pidwait>'s own session ID."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:139
+#, no-wrap
+msgid "B<-t>, B<--terminal> I<term>,..."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:143
+msgid ""
+"Only match processes whose controlling terminal is listed. The terminal "
+"name should be specified without the \"/dev/\" prefix."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:143
+#, no-wrap
+msgid "B<-u>, B<--euid> I<euid>,..."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:147
+msgid ""
+"Only match processes whose effective user ID is listed. Either the "
+"numerical or symbolical value may be used."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:147
+#, no-wrap
+msgid "B<-U>, B<--uid> I<uid>,..."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:151
+msgid ""
+"Only match processes whose real user ID is listed. Either the numerical or "
+"symbolical value may be used."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:151
+#, no-wrap
+msgid "B<-v>, B<--inverse>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:160
+msgid ""
+"Negates the matching. This option is usually used in B<pgrep>'s or "
+"B<pidwait>'s context. In B<pkill>'s context the short option is disabled to "
+"avoid accidental usage of the option."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:160
+#, no-wrap
+msgid "B<-w>, B<--lightweight>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:169
+msgid ""
+"Shows all thread ids instead of pids in B<pgrep>'s or B<pidwait>'s context. "
+"In B<pkill>'s context this option is disabled."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:169
+#, no-wrap
+msgid "B<-x>, B<--exact>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:175
+msgid ""
+"Only match processes whose names (or command lines if B<-f> is specified) "
+"B<exactly> match the I<pattern>."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:175
+#, no-wrap
+msgid "B<-F>, B<--pidfile> I<file>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:183
+msgid ""
+"Read I<PID>s from I<file>. This option is more useful for B<pkill> or "
+"B<pidwait> than B<pgrep>."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:183
+#, no-wrap
+msgid "B<-L>, B<--logpidfile>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:186
+msgid "Fail if pidfile (see B<-F>) not locked."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:186
+#, no-wrap
+msgid "B<-r>, B<--runstates> I<D,R,S,Z,>..."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:189
+msgid "Match only processes which match the process state."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:189
+#, no-wrap
+msgid "B<-A>, B<--ignore-ancestors>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:199
+msgid ""
+"Ignore all ancestors of B<pgrep>, B<pkill>, or B<pidwait>. For example, "
+"this can be useful when elevating with B<sudo> or similar tools."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:199
+#, no-wrap
+msgid "B<-H>, B<--require-handler>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:203
+msgid ""
+"Only match processes with a userspace signal handler present for the signal "
+"to be sent."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:203
+#, no-wrap
+msgid "B<--cgroup >I<name>B<,...>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:207
+msgid "Match on provided control group (cgroup) v2 name. See B<cgroups>(8)"
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:207 ../man/skill.1:87
+#, no-wrap
+msgid "B<--ns >I<pid>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:212
+msgid ""
+"Match processes that belong to the same namespaces. Required to run as root "
+"to match processes from other users. See B<--nslist> for how to limit which "
+"namespaces to match."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:212
+#, no-wrap
+msgid "B<--nslist >I<name>B<,...>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:216
+msgid ""
+"Match only the provided namespaces. Available namespaces: ipc, mnt, net, "
+"pid, user, uts."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:231 ../man/pmap.1:75 ../man/slabtop.1:48 ../man/sysctl.8:119
+#: ../man/tload.1:41 ../man/vmstat.8:100 ../man/watch.1:100
+msgid "Display version information and exit."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:231 ../man/pmap.1:69 ../man/pwdx.1:22 ../man/skill.1:65
+#: ../man/slabtop.1:48 ../man/sysctl.8:113 ../man/tload.1:35 ../man/uptime.1:40
+#: ../man/vmstat.8:100 ../man/watch.1:94
+#, no-wrap
+msgid "B<-h>, B<--help>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:234 ../man/vmstat.8:103
+msgid "Display help and exit."
+msgstr ""
+
+#. type: SH
+#: ../man/pgrep.1:235
+#, no-wrap
+msgid "OPERANDS"
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:236
+#, no-wrap
+msgid "I<pattern>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:240
+msgid ""
+"Specifies an Extended Regular Expression for matching against the process "
+"names or command lines."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:244
+msgid "Example 1: Find the process ID of the B<named> daemon:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:246
+msgid "$ pgrep -u root named"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:250
+msgid "Example 2: Make B<syslog> reread its configuration file:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:252
+msgid "$ pkill -HUP syslogd"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:256
+msgid "Example 3: Give detailed information on all B<xterm> processes:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:258
+msgid "$ ps -fp $(pgrep -d, -x xterm)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:262
+msgid "Example 4: Make all B<chrome> processes run nicer:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:264
+msgid "$ renice +4 $(pgrep chrome)"
+msgstr ""
+
+#. type: SH
+#: ../man/pgrep.1:264 ../man/pidof.1:61 ../man/pmap.1:75 ../man/watch.1:100
+#, no-wrap
+msgid "EXIT STATUS"
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:266
+#, no-wrap
+msgid "0"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:274
+msgid ""
+"One or more processes matched the criteria. For B<pkill> and B<pidwait>, one "
+"or more processes must also have been successfully signalled or waited for."
+msgstr ""
+
+#. type: IP
+#: ../man/pgrep.1:274 ../man/ps.1:43 ../man/ps.1:818 ../man/ps.1:2082
+#, no-wrap
+msgid "1"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:277
+msgid "No processes matched or none of them could be signalled."
+msgstr ""
+
+#. type: IP
+#: ../man/pgrep.1:277 ../man/ps.1:45 ../man/ps.1:2084
+#, no-wrap
+msgid "2"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:280
+msgid "Syntax error in the command line."
+msgstr ""
+
+#. type: IP
+#: ../man/pgrep.1:280 ../man/ps.1:47 ../man/ps.1:2086
+#, no-wrap
+msgid "3"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:283
+msgid "Fatal error: out of memory etc."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:289
+msgid ""
+"The process name used for matching is limited to the 15 characters present "
+"in the output of /proc/I<pid>/stat. Use the B<-f> option to match against "
+"the complete command line, /proc/I<pid>/cmdline. Threads may not have the "
+"same process name as the parent process but will have the same command line."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:297
+msgid ""
+"The running B<pgrep>, B<pkill>, or B<pidwait> process will never report "
+"itself as a match."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:301
+msgid ""
+"The B<-O --older> option will silently fail if I</proc> is mounted with the "
+"I<subset=pid> option."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:310
+msgid ""
+"The options B<-n> and B<-o> and B<-v> can not be combined. Let me know if "
+"you need to do this."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:312
+msgid "Defunct processes are reported."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:317
+msgid ""
+"B<pidwait> requires the B<pidfd_open>(2) system call which first appeared "
+"in Linux 5.3."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:327
+msgid ""
+"B<ps>(1), B<regex>(7), B<signal>(7), B<sigqueue>(3), B<killall>(1), "
+"B<skill>(1), B<kill>(1), B<kill>(2), B<cgroups>(8)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:331
+msgid "E<.UR kjetilho@ifi.uio.no> Kjetil Torgrim Homme E<.UE>"
+msgstr ""
+
+#. type: TH
+#: ../man/pidof.1:13
+#, no-wrap
+msgid "PIDOF"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:16
+msgid "pidof - find the process ID of a running program"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:30
+msgid ""
+"B<pidof> [B<-s>] [B<-c>] [B<-q>] [B<-w>] [B<-x>] [B<-o> "
+"I<omitpid[,omitpid...]...>] [B<-t>] [B<-S> I<separator>] I<program> "
+"I<[>B<program...>I<]>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:34
+msgid ""
+"B<Pidof> finds the process id's (pids) of the named programs. It prints "
+"those id's on the standard output."
+msgstr ""
+
+#. type: IP
+#: ../man/pidof.1:35
+#, no-wrap
+msgid "B<-s>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:37
+msgid "Single shot - this instructs the program to only return one I<pid>."
+msgstr ""
+
+#. type: TP
+#: ../man/pidof.1:37 ../man/ps.1:409
+#, no-wrap
+msgid "B<-c>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:41
+msgid ""
+"Only return process ids that are running with the same root directory. This "
+"option is ignored for non-root users, as they will be unable to check the "
+"current root directory of processes they do not own."
+msgstr ""
+
+#. type: IP
+#: ../man/pidof.1:41
+#, no-wrap
+msgid "B<-q>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:43
+msgid "Quiet mode, suppress any output and only sets the exit status accordingly."
+msgstr ""
+
+#. type: TP
+#: ../man/pidof.1:43 ../man/ps.1:718
+#, no-wrap
+msgid "B<-w>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:46
+msgid ""
+"Show also processes that do not have visible command line (e.g. kernel "
+"worker threads)."
+msgstr ""
+
+#. type: TP
+#: ../man/pidof.1:46 ../man/sysctl.8:110
+#, no-wrap
+msgid "B<-x>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:49
+msgid ""
+"Scripts too - this causes the program to also return process id's of shells "
+"running the named scripts."
+msgstr ""
+
+#. type: IP
+#: ../man/pidof.1:49
+#, no-wrap
+msgid "B<-o> I<omitpid>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:53
+msgid ""
+"Tells B<pidof> to omit processes with that process id. The special pid "
+"B<%PPID> can be used to name the parent process of the B<pidof> program, in "
+"other words the calling shell or shell script."
+msgstr ""
+
+#. type: IP
+#: ../man/pidof.1:53
+#, no-wrap
+msgid "B<-t>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:55
+msgid "Shows all thread ids instead of pids."
+msgstr ""
+
+#. type: IP
+#: ../man/pidof.1:55
+#, no-wrap
+msgid "B<-S> I<separator>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:61
+msgid ""
+"Use I<separator> as a separator put between pids. Used only when more than "
+"one pids are printed for the program. The B<-d> option is an alias for this "
+"option for sysvinit B<pidof> compatibility."
+msgstr ""
+
+#. type: TP
+#: ../man/pidof.1:62 ../man/pmap.1:79 ../man/watch.1:104
+#, no-wrap
+msgid "B<0>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:65
+msgid "At least one program was found with the requested name."
+msgstr ""
+
+#. type: TP
+#: ../man/pidof.1:65 ../man/pmap.1:82 ../man/watch.1:107
+#, no-wrap
+msgid "B<1>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:68
+msgid "No program was found with the requested name."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:75
+msgid ""
+"When using the B<-x> option, B<pidof> only has a simple method for detecting "
+"scripts and will miss scripts that, for example, use env. This limitation is "
+"due to how the scripts look in the proc filesystem."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:79
+msgid "B<pgrep>(1), B<pkill>(1)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:82
+msgid "E<.UR jcapik@redhat.com> Jaromir Capik E<.UE>"
+msgstr ""
+
+#. type: TH
+#: ../man/pmap.1:19
+#, no-wrap
+msgid "PMAP"
+msgstr ""
+
+#. type: TH
+#: ../man/pmap.1:19 ../man/pwdx.1:12 ../man/tload.1:12
+#, no-wrap
+msgid "2020-06-04"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:22
+msgid "pmap - report memory map of a process"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:25
+msgid "B<pmap> [I<options>] I<pid> [...]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:29
+msgid "The B<pmap> command reports the memory map of a process or processes."
+msgstr ""
+
+#. type: TP
+#: ../man/pmap.1:30
+#, no-wrap
+msgid "B<-x>, B<--extended>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:33
+msgid "Show the extended format."
+msgstr ""
+
+#. type: TP
+#: ../man/pmap.1:33
+#, no-wrap
+msgid "B<-d>, B<--device>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:36
+msgid "Show the device format."
+msgstr ""
+
+#. type: TP
+#: ../man/pmap.1:36 ../man/sysctl.8:57
+#, no-wrap
+msgid "B<-q>, B<--quiet>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:39
+msgid "Do not display some header or footer lines."
+msgstr ""
+
+#. type: TP
+#: ../man/pmap.1:39
+#, no-wrap
+msgid "B<-A>, B<--range> I<low>,I<high>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:47
+msgid ""
+"Limit results to the given range to I<low> and I<high> address range. "
+"Notice that the low and high arguments are single string separated with "
+"comma."
+msgstr ""
+
+#. type: TP
+#: ../man/pmap.1:47 ../man/sysctl.8:104
+#, no-wrap
+msgid "B<-X>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:51
+msgid ""
+"Show even more details than the B<-x> option. WARNING: format changes "
+"according to I</proc/PID/smaps>"
+msgstr ""
+
+#. type: TP
+#: ../man/pmap.1:51
+#, no-wrap
+msgid "B<-XX>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:54
+msgid "Show everything the kernel provides"
+msgstr ""
+
+#. type: TP
+#: ../man/pmap.1:54
+#, no-wrap
+msgid "B<-p>, B<--show-path>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:57
+msgid "Show full path to files in the mapping column"
+msgstr ""
+
+#. type: TP
+#: ../man/pmap.1:57
+#, no-wrap
+msgid "B<-c>, B<--read-rc>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:60
+msgid "Read the default configuration"
+msgstr ""
+
+#. type: TP
+#: ../man/pmap.1:60
+#, no-wrap
+msgid "B<-C>, B<--read-rc-from> I<file>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:63
+msgid "Read the configuration from I<file>"
+msgstr ""
+
+#. type: TP
+#: ../man/pmap.1:63
+#, no-wrap
+msgid "B<-n>, B<--create-rc>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:66
+msgid "Create new default configuration"
+msgstr ""
+
+#. type: TP
+#: ../man/pmap.1:66
+#, no-wrap
+msgid "B<-N>, B<--create-rc-to> I<file>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:69
+msgid "Create new configuration to I<file>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:72 ../man/skill.1:68 ../man/sysctl.8:116 ../man/w.1:66
+#: ../man/watch.1:97
+msgid "Display help text and exit."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:82 ../man/watch.1:107
+msgid "Success."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:85
+msgid "Failure."
+msgstr ""
+
+#. type: TP
+#: ../man/pmap.1:85
+#, no-wrap
+msgid "B<42>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:88
+msgid "Did not find all processes asked for."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:93 ../man/pwdx.1:28
+msgid "B<ps>(1), B<pgrep>(1)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:97
+msgid "No standards apply, but B<pmap> looks an awful lot like a SunOS command."
+msgstr ""
+
+#. type: TH
+#: ../man/pwdx.1:12
+#, no-wrap
+msgid "PWDX"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pwdx.1:15
+msgid "pwdx - report current working directory of a process"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pwdx.1:18
+msgid "B<pwdx> [I<options>] I<pid> [...]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pwdx.1:22
+msgid "Output version information and exit."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pwdx.1:25
+msgid "Output help screen and exit."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pwdx.1:32
+msgid "No standards apply, but B<pwdx> looks an awful lot like a SunOS command."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pwdx.1:37
+msgid "E<.UR nmiell@gmail.com> Nicholas Miell E<.UE> wrote pwdx in 2004."
+msgstr ""
+
+#. type: TH
+#: ../man/skill.1:12
+#, no-wrap
+msgid "SKILL"
+msgstr ""
+
+#. type: TH
+#: ../man/skill.1:12 ../man/sysctl.8:14 ../man/ps.1:13
+#, no-wrap
+msgid "2023-08-19"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:15
+msgid "skill, snice - send a signal or report process status"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:20
+msgid "B<skill> [I<signal>] [I<options>] I<expression>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:25
+msgid "B<snice> [I<new priority>] [I<options>] I<expression>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:33
+msgid ""
+"These tools are obsolete and unportable. The command syntax is poorly "
+"defined. Consider using the B<killall>, B<pkill>, and B<pgrep> commands "
+"instead."
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:38
+msgid ""
+"The default signal for B<skill> is TERM. Use B<-l> or B<-L> to list "
+"available signals. Particularly useful signals include HUP, INT, KILL, "
+"STOP, CONT, and 0. Alternate signals may be specified in three ways: B<-9> "
+"B<-SIGKILL> B<-KILL>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:42
+msgid ""
+"The default priority for B<snice> is +4. Priority numbers range from +20 "
+"(slowest) to -20 (fastest). Negative priority numbers are restricted to "
+"administrative users."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:43
+#, no-wrap
+msgid "B<-f>,B<\\ --fast>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:46
+msgid "Fast mode. This option has not been implemented."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:46
+#, no-wrap
+msgid "B<-i>,B<\\ --interactive>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:49
+msgid "Interactive use. You will be asked to approve each action."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:49
+#, no-wrap
+msgid "B<-l>,B<\\ --list>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:52
+msgid "List all signal names."
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:55
+msgid "List all signal names in a nice table."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:55
+#, no-wrap
+msgid "B<-n>,B<\\ --no-action>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:59
+msgid ""
+"No action; perform a simulation of events that would occur but do not "
+"actually change the system."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:59
+#, no-wrap
+msgid "B<-v>,B<\\ --verbose>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:62
+msgid "Verbose; explain what is being done."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:62
+#, no-wrap
+msgid "B<-w>,B<\\ --warnings>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:65
+msgid "Enable warnings. This option has not been implemented."
+msgstr ""
+
+#. type: SH
+#: ../man/skill.1:72
+#, no-wrap
+msgid "PROCESS SELECTION OPTIONS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:75
+msgid ""
+"Selection criteria can be: terminal, user, pid, command. The options below "
+"may be used to ensure correct interpretation."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:75
+#, no-wrap
+msgid "B<-t>, B<--tty> I<tty>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:78
+msgid "The next expression is a terminal (tty or pty)."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:78
+#, no-wrap
+msgid "B<-u>, B<--user> I<user>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:81
+msgid "The next expression is a username."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:81
+#, no-wrap
+msgid "B<-p>, B<--pid> I<pid>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:84
+msgid "The next expression is a process ID number."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:84
+#, no-wrap
+msgid "B<-c>, B<--command> I<command>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:87
+msgid "The next expression is a command name."
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:90
+msgid "Match the processes that belong to the same namespace as pid."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:90
+#, no-wrap
+msgid "B<--nslist >I<ns\\/>,\\,I<...\\/>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:94
+msgid ""
+"list which namespaces will be considered for the B<--ns> option. Available "
+"namespaces: ipc, mnt, net, pid, user, uts."
+msgstr ""
+
+#. type: SH
+#: ../man/skill.1:95
+#, no-wrap
+msgid "SIGNALS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:99
+msgid "The behavior of signals is explained in B<signal>(7) manual page."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:100
+#, no-wrap
+msgid "B<snice -c seti -c crack +7>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:103
+msgid "+Slow down B<seti> and B<crack> commands."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:103
+#, no-wrap
+msgid "B<skill -KILL -t /dev/pts/*>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:106
+msgid "Kill users on PTY devices."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:106
+#, no-wrap
+msgid "B<skill -STOP -u viro -u lm -u davem>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:109
+msgid "Stop three users."
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:117
+msgid ""
+"B<kill>(1), B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), "
+"B<renice>(1), B<signal>(7)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:119
+msgid "No standards apply."
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:125
+msgid ""
+"E<.MT albert@users.sf.net> Albert Cahalan E<.ME> wrote skill and snice in "
+"1999 as a replacement for a non-free version."
+msgstr ""
+
+#. type: TH
+#: ../man/slabtop.1:14
+#, no-wrap
+msgid "SLABTOP"
+msgstr ""
+
+#. type: TH
+#: ../man/slabtop.1:14
+#, no-wrap
+msgid "2021-03-11"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:17
+msgid "slabtop - display kernel slab cache information in real time"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:20
+msgid "B<slabtop> [I<options>]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:25
+msgid ""
+"B<slabtop> displays detailed kernel slab cache information in real time. It "
+"displays a listing of the top caches sorted by one of the listed sort "
+"criteria. It also displays a statistics header filled with slab layer "
+"information."
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:30
+msgid ""
+"Normal invocation of B<slabtop> does not require any options. The behavior, "
+"however, can be fine-tuned by specifying one or more of the following flags:"
+msgstr ""
+
+#. type: TP
+#: ../man/slabtop.1:30
+#, no-wrap
+msgid "B<-d>, B<--delay>=I<N>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:39
+msgid ""
+"Refresh the display every I<n> in seconds. By default, B<slabtop> refreshes "
+"the display every three seconds. To exit the program, hit B<q>. This "
+"cannot be combined with the B<-o> option."
+msgstr ""
+
+#. type: TP
+#: ../man/slabtop.1:39
+#, no-wrap
+msgid "B<-s>, B<--sort>=I<S>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:42
+msgid "Sort by I<S>, where I<S> is one of the sort criteria."
+msgstr ""
+
+#. type: TP
+#: ../man/slabtop.1:42
+#, no-wrap
+msgid "B<-o>, B<--once>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:45
+msgid "Display the output once and then exit."
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:51
+msgid "Display usage information and exit."
+msgstr ""
+
+#. type: SH
+#: ../man/slabtop.1:51
+#, no-wrap
+msgid "SORT CRITERIA"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:55
+msgid ""
+"The following are valid sort criteria used to sort the individual slab "
+"caches and thereby determine what are the \"top\" slab caches to display. "
+"The default sort criteria is to sort by the number of objects (\"o\")."
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:59
+msgid ""
+"The sort criteria can also be changed while B<slabtop> is running by "
+"pressing the associated character."
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<character>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<description>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<header>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "a"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "number of active objects"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "ACTIVE"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "b"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "objects per slab"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "OBJ/SLAB"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:64 ../man/ps.1:909 ../man/ps.1:1081
+#, no-wrap
+msgid "c"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:64
+#, no-wrap
+msgid "cache size"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:64
+#, no-wrap
+msgid "CACHE SIZE"
+msgstr ""
+
+#. type: TP
+#: ../man/slabtop.1:65 ../man/ps.1:882
+#, no-wrap
+msgid "l"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:65
+#, no-wrap
+msgid "number of slabs"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:65
+#, no-wrap
+msgid "SLABS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:66 ../man/ps.1:932
+#, no-wrap
+msgid "v"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:66
+#, no-wrap
+msgid "number of active slabs"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:66 ../man/slabtop.1:69
+#, no-wrap
+msgid "N/A"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:67 ../man/ps.1:919
+#, no-wrap
+msgid "n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:67
+#, no-wrap
+msgid "name"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:67
+#, no-wrap
+msgid "NAME\\:"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:68 ../man/ps.1:921
+#, no-wrap
+msgid "o"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:68
+#, no-wrap
+msgid "number of objects"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:68
+#, no-wrap
+msgid "OBJS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:69 ../man/ps.1:922
+#, no-wrap
+msgid "p"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:69
+#, no-wrap
+msgid "pages per slab"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:70 ../man/ps.1:879 ../man/ps.1:926 ../man/ps.1:1631
+#, no-wrap
+msgid "s"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:70
+#, no-wrap
+msgid "object size"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:70
+#, no-wrap
+msgid "OBJ SIZE"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:71 ../man/ps.1:931
+#, no-wrap
+msgid "u"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:71
+#, no-wrap
+msgid "cache utilization"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:71
+#, no-wrap
+msgid "USE"
+msgstr ""
+
+#. type: SH
+#: ../man/slabtop.1:73
+#, no-wrap
+msgid "COMMANDS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:77
+msgid ""
+"B<slabtop> accepts keyboard commands from the user during use. The "
+"following are supported. In the case of letters, both cases are accepted."
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:81
+msgid ""
+"Each of the valid sort characters are also accepted, to change the sort "
+"routine. See the section B<SORT CRITERIA>."
+msgstr ""
+
+#. type: TP
+#: ../man/slabtop.1:81
+#, no-wrap
+msgid "B<E<lt>SPACEBARE<gt>>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:84
+msgid "Refresh the screen."
+msgstr ""
+
+#. type: TP
+#: ../man/slabtop.1:84
+#, no-wrap
+msgid "B<Q>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:87
+msgid "Quit the program."
+msgstr ""
+
+#. type: TP
+#: ../man/slabtop.1:88
+#, no-wrap
+msgid "I</proc/slabinfo>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:91
+msgid "slab information"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:96
+msgid "B<free>(1), B<ps>(1), B<top>(1), B<vmstat>(8)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:102
+msgid ""
+"Currently, B<slabtop> requires a 2.4 or later kernel (specifically, a "
+"version 1.1 or later I</proc/slabinfo>). Kernel 2.2 should be supported in "
+"the future."
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:108
+msgid ""
+"The B<slabtop> statistic header is tracking how many bytes of slabs are "
+"being used and is not a measure of physical memory. The 'Slab' field in the "
+"I</proc/meminfo> file is tracking information about used slab physical "
+"memory."
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:114
+msgid ""
+"The B<CACHE SIZE> column is not accurate, it's the upper limit of memory "
+"used by specific slab. When system using slub (most common case) is under "
+"high memory pressure, there are slab order fallbacks, which means \"pages "
+"per slab\" is not constant and may decrease."
+msgstr ""
+
+#. type: SH
+#: ../man/slabtop.1:114 ../man/tload.1:58 ../man/uptime.1:56 ../man/w.1:102
+#, no-wrap
+msgid "AUTHORS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:116
+msgid "Written by Chris Rivera and Robert Love."
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:120
+msgid "B<slabtop> was inspired by Martin Bligh's perl script, B<vmtop>."
+msgstr ""
+
+#. type: TH
+#: ../man/sysctl.8:14
+#, no-wrap
+msgid "SYSCTL"
+msgstr ""
+
+#. type: TH
+#: ../man/sysctl.8:14 ../man/vmstat.8:13
+#, no-wrap
+msgid "System Administration"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:17
+msgid "sysctl - configure kernel parameters at runtime"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:20
+msgid "B<sysctl> [I<options>] [I<variable>[B<=>I<value>]] [...]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:23
+msgid "B<sysctl -p> [I<file> or I<regexp>] [...]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:31
+msgid ""
+"B<sysctl> is used to modify kernel parameters at runtime. The parameters "
+"available are those listed under I</proc/sys/>. Procfs is required for "
+"B<sysctl> support in Linux. You can use B<sysctl> to both read and write "
+"sysctl data."
+msgstr ""
+
+#. type: SH
+#: ../man/sysctl.8:31
+#, no-wrap
+msgid "PARAMETERS"
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:32
+#, no-wrap
+msgid "I<variable>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:36
+msgid ""
+"The name of a key to read from. An example is kernel.ostype. The '/' "
+"separator is also accepted in place of a '.'."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:36
+#, no-wrap
+msgid "I<variable>=I<value>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:47
+msgid ""
+"To set a key, use the form I<variable>=I<value> where I<variable> is the key "
+"and I<value> is the value to set it to. If the value contains quotes or "
+"characters which are parsed by the shell, you may need to enclose the value "
+"in double quotes."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:47
+#, no-wrap
+msgid "B<-n>, B<--values>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:50
+msgid "Use this option to disable printing of the key name when printing values."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:50
+#, no-wrap
+msgid "B<-e>, B<--ignore>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:53
+msgid "Use this option to ignore errors about unknown keys."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:53
+#, no-wrap
+msgid "B<-N>, B<--names>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:57
+msgid ""
+"Use this option to only print the names. It may be useful with shells that "
+"have programmable completion."
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:60
+msgid "Use this option to not display the values set to stdout."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:60
+#, no-wrap
+msgid "B<-w>, B<--write>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:64
+msgid ""
+"Force all arguments to be write arguments and print an error if they cannot "
+"be parsed this way."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:64
+#, no-wrap
+msgid "B<-p>[I<FILE>], B<--load>[=I<FILE>]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:72
+msgid ""
+"Load in B<sysctl> settings from the file specified or I</etc/sysctl.conf> if "
+"none given. Specifying - as filename means reading data from standard "
+"input. Using this option will mean arguments to B<sysctl> are files, which "
+"are read in the order they are specified. The file argument may be "
+"specified as regular expression."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:72
+#, no-wrap
+msgid "B<-a>, B<--all>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:75
+msgid "Display all values currently available."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:75
+#, no-wrap
+msgid "B<--deprecated>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:80
+msgid "Include deprecated parameters to B<--all> values listing."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:80
+#, no-wrap
+msgid "B<-b>, B<--binary>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:83
+msgid "Print value without new line."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:83
+#, no-wrap
+msgid "B<--system>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:88
+msgid ""
+"Load settings from all system configuration files. See the B<SYSTEM FILE "
+"PRECEDENCE> section below."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:88
+#, no-wrap
+msgid "B<-r>, B<--pattern> I<pattern>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:95
+msgid ""
+"Only apply settings that match I<pattern>. The I<pattern> uses extended "
+"regular expression syntax."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:95 ../man/ps.1:147
+#, no-wrap
+msgid "B<-A>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:98 ../man/sysctl.8:107
+msgid "Alias of B<-a>"
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:98 ../man/ps.1:156
+#, no-wrap
+msgid "B<-d>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:101
+msgid "Alias of B<-h>"
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:101 ../man/ps.1:417
+#, no-wrap
+msgid "B<-f>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:104
+msgid "Alias of B<-p>"
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:107
+#, no-wrap
+msgid "B<-o>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:110 ../man/sysctl.8:113
+msgid "Does nothing, exists for BSD compatibility."
+msgstr ""
+
+#. type: SH
+#: ../man/sysctl.8:119
+#, no-wrap
+msgid "SYSTEM FILE PRECEDENCE"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:125
+msgid ""
+"When using the B<--system> option, B<sysctl> will read files from "
+"directories in the following list in given order from top to bottom. Once a "
+"file of a given filename is loaded, any file of the same name in subsequent "
+"directories is ignored."
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:127
+msgid "/etc/sysctl.d/*.conf"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:129
+msgid "/run/sysctl.d/*.conf"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:131
+msgid "/usr/local/lib/sysctl.d/*.conf"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:133
+msgid "/usr/lib/sysctl.d/*.conf"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:135
+msgid "/lib/sysctl.d/*.conf"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:137
+msgid "/etc/sysctl.conf"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:143
+msgid ""
+"All configuration files are sorted in lexicographic order, regardless of the "
+"directory they reside in. Configuration files can either be completely "
+"replaced (by having a new configuration file with the same name in a "
+"directory of higher priority) or partially replaced (by having a "
+"configuration file that is ordered later)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:145
+msgid "/sbin/sysctl -a"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:147
+msgid "/sbin/sysctl -n kernel.hostname"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:149
+msgid "/sbin/sysctl -w kernel.domainname=\"example.com\""
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:151
+msgid "/sbin/sysctl -p/etc/sysctl.conf"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:153
+msgid "/sbin/sysctl -a --pattern forward"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:155
+msgid "/sbin/sysctl -a --pattern forward$"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:157
+msgid "/sbin/sysctl -a --pattern 'net.ipv4.conf.(eth|wlan)0.arp'"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:159
+msgid "/sbin/sysctl --pattern '\\[char94]net.ipv6' --system"
+msgstr ""
+
+#. type: SH
+#: ../man/sysctl.8:159
+#, no-wrap
+msgid "DEPRECATED PARAMETERS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:169
+msgid ""
+"The B<base_reachable_time> and B<retrans_time> are deprecated. The "
+"B<sysctl> command does not allow changing values of these parameters. Users "
+"who insist to use deprecated kernel interfaces should push values to "
+"B</proc> file system by other means. For example:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:171
+msgid "echo 256 E<gt> /proc/sys/net/ipv6/neigh/eth0/base_reachable_time"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:173
+msgid "I</proc/sys>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:175 ../man/sysctl.conf.5:66
+msgid "I</etc/sysctl.d/*.conf>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:177 ../man/sysctl.conf.5:68
+msgid "I</run/sysctl.d/*.conf>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:179 ../man/sysctl.conf.5:70
+msgid "I</usr/local/lib/sysctl.d/*.conf>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:181 ../man/sysctl.conf.5:72
+msgid "I</usr/lib/sysctl.d/*.conf>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:183 ../man/sysctl.conf.5:74
+msgid "I</lib/sysctl.d/*.conf>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:185 ../man/sysctl.conf.5:76
+msgid "I</etc/sysctl.conf>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:189
+msgid "B<proc>(5), B<sysctl.conf>(5), B<regex>(7)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:193 ../man/sysctl.conf.5:89
+msgid "E<.UR staikos@0wned.org> George Staikos E<.UE>"
+msgstr ""
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "SYSCTL.CONF"
+msgstr ""
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "2021-09-15"
+msgstr ""
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "File Formats"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:16
+msgid "sysctl.conf - sysctl preload/configuration file"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:21
+msgid ""
+"B<sysctl.conf> is a simple file containing sysctl values to be read in and "
+"set by B<sysctl>. The syntax is simply as follows:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:27
+#, no-wrap
+msgid ""
+"# comment\n"
+"; comment\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:29
+#, no-wrap
+msgid "token = value\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:35
+msgid ""
+"Note that blank lines are ignored, and whitespace before and after a token "
+"or value is ignored, although a value can contain whitespace within. Lines "
+"which begin with a I<#> or I<;> are considered comments and ignored."
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:38
+msgid ""
+"If a line begins with a single -, any attempts to set the value that fail "
+"will be ignored."
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:48
+msgid ""
+"As the B</etc/sysctl.conf> file is used to override default kernel parameter "
+"values, only a small number of parameters is predefined in the file. Use "
+"I</sbin/sysctl\\ -a> or follow B<sysctl>(8) to list all possible "
+"parameters. The description of individual parameters can be found in the "
+"kernel documentation."
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:51
+msgid ""
+"Maximum supported line length of the value is 4096 characters due to a "
+"limitation of I</proc> entries in Linux kernel."
+msgstr ""
+
+#. type: SH
+#: ../man/sysctl.conf.5:51
+#, no-wrap
+msgid "EXAMPLE"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:61
+#, no-wrap
+msgid ""
+"# sysctl.conf sample\n"
+"#\n"
+" kernel.domainname = example.com\n"
+"; this one has a space which will be written to the sysctl!\n"
+" kernel.modprobe = /sbin/mod probe\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:83
+msgid ""
+"The paths where B<sysctl> preload files usually exist. See also B<sysctl> "
+"option I<--system>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:85
+msgid "B<sysctl>(8)"
+msgstr ""
+
+#. type: TH
+#: ../man/tload.1:12
+#, no-wrap
+msgid "TLOAD"
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:15
+msgid "tload - graphic representation of system load average"
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:18
+msgid "B<tload> [I<options>] [I<tty>]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:25
+msgid ""
+"B<tload> prints a graph of the current system load average to the specified "
+"I<tty> (or the tty of the B<tload> process if none is specified)."
+msgstr ""
+
+#. type: TP
+#: ../man/tload.1:26
+#, no-wrap
+msgid "B<-s>, B<--scale> I<number>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:31
+msgid ""
+"The scale option allows a vertical scale to be specified for the display (in "
+"characters between graph ticks); thus, a smaller value represents a larger "
+"scale, and vice versa."
+msgstr ""
+
+#. type: TP
+#: ../man/tload.1:31
+#, no-wrap
+msgid "B<-d>, B<--delay> I<seconds>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:35
+msgid "The delay sets the delay between graph updates in I<seconds>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:38
+msgid "Display this help text."
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:45
+msgid "I</proc/loadavg> load average information"
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:50
+msgid "B<ps>(1), B<top>(1), B<uptime>(1), B<w>(1)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:58
+msgid ""
+"The B<-d>I< delay> option sets the time argument for an B<alarm>(2); if -d 0 "
+"is specified, the alarm is set to 0, which will never send the B<SIGALRM> "
+"and update the display."
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:66
+msgid ""
+"Branko Lankester, E<.UR david@\\:ods.\\:com> David Engel E<.UE , and> E<.UR "
+"johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE .>"
+msgstr ""
+
+#. type: TH
+#: ../man/uptime.1:13
+#, no-wrap
+msgid "UPTIME"
+msgstr ""
+
+#. type: TH
+#: ../man/uptime.1:13
+#, no-wrap
+msgid "December 2012"
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:16
+msgid "uptime - Tell how long the system has been running."
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:19
+msgid "B<uptime> [I<options>]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:24
+msgid ""
+"B<uptime> gives a one line display of the following information. The "
+"current time, how long the system has been running, how many users are "
+"currently logged on, and the system load averages for the past 1, 5, and 15 "
+"minutes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:27
+msgid ""
+"This is the same information contained in the header line displayed by "
+"B<w>(1)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:36
+msgid ""
+"System load averages is the average number of processes that are either in a "
+"runnable or uninterruptable state. A process in a runnable state is either "
+"using the CPU or waiting to use the CPU. A process in uninterruptable state "
+"is waiting for some I/O access, eg waiting for disk. The averages are taken "
+"over the three time intervals. Load averages are not normalized for the "
+"number of CPUs in a system, so a load average of 1 means a single CPU system "
+"is loaded all the time while on a 4 CPU system it means it was idle 75% of "
+"the time."
+msgstr ""
+
+#. type: TP
+#: ../man/uptime.1:37
+#, no-wrap
+msgid "B<-p>, B<--pretty>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:40
+msgid "show uptime in pretty format"
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:43
+msgid "display this help text"
+msgstr ""
+
+#. type: TP
+#: ../man/uptime.1:43
+#, no-wrap
+msgid "B<-s>, B<--since>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:46
+msgid "system up since, in yyyy-mm-dd HH:MM:SS format"
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:49
+msgid "display version information and exit"
+msgstr ""
+
+#. type: TP
+#: ../man/uptime.1:50 ../man/w.1:89
+#, no-wrap
+msgid "I</var/run/utmp>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:53 ../man/w.1:92
+msgid "information about who is currently logged on"
+msgstr ""
+
+#. type: TP
+#: ../man/uptime.1:53 ../man/w.1:92
+#, no-wrap
+msgid "I</proc>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:56 ../man/w.1:95
+msgid "process information"
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:66
+msgid ""
+"B<uptime> was written by E<.UR greenfie@gauss.\\:rutgers.\\:edu> Larry "
+"Greenfield E<.UE> and E<.UR johnsonm@sunsite.\\:unc.\\:edu> Michael "
+"K. Johnson E<.UE>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:71
+msgid "B<ps>(1), B<top>(1), B<utmp>(5), B<w>(1)"
+msgstr ""
+
+#. type: TH
+#: ../man/vmstat.8:13
+#, no-wrap
+msgid "VMSTAT"
+msgstr ""
+
+#. type: TH
+#: ../man/vmstat.8:13
+#, no-wrap
+msgid "2023-01-18"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:16
+msgid "vmstat - Report virtual memory statistics"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:20
+msgid "B<vmstat> [options] [I<delay> [I<count>]]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:24
+msgid ""
+"B<vmstat> reports information about processes, memory, paging, block IO, "
+"traps, disks and cpu activity."
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:29
+msgid ""
+"The first report produced gives averages since the last reboot. Additional "
+"reports give information on a sampling period of length I<delay>. The "
+"process and memory reports are instantaneous in either case."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:30
+#, no-wrap
+msgid "I<delay>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:37
+msgid ""
+"The I<delay> between updates in seconds. If no I<delay> is specified, only "
+"one report is printed with the average values since boot."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:37
+#, no-wrap
+msgid "I<count>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:44
+msgid ""
+"Number of updates. In absence of I<count>, when I<delay> is defined, "
+"default is infinite."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:44
+#, no-wrap
+msgid "B<-a>, B<--active>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:47
+msgid "Display active and inactive memory, given a 2.5.41 kernel or better."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:47
+#, no-wrap
+msgid "B<-f>, B<--forks>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:55
+msgid ""
+"The B<-f> switch displays the number of forks since boot. This includes the "
+"fork, vfork, and clone system calls, and is equivalent to the total number "
+"of tasks created. Each process is represented by one or more tasks, "
+"depending on thread usage. This display does not repeat."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:55
+#, no-wrap
+msgid "B<-m>, B<--slabs>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:58
+msgid "Displays slabinfo."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:58
+#, no-wrap
+msgid "B<-n>, B<--one-header>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:61
+msgid "Display the header only once rather than periodically."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:61
+#, no-wrap
+msgid "B<-s>, B<--stats>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:65
+msgid ""
+"Displays a table of various event counters and memory statistics. This "
+"display does not repeat."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:65
+#, no-wrap
+msgid "B<-d>, B<--disk>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:68
+msgid "Report disk statistics (2.5.70 or above required)."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:68
+#, no-wrap
+msgid "B<-D>, B<--disk-sum>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:71
+msgid "Report some summary statistics about disk activity."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:71
+#, no-wrap
+msgid "B<-p>, B<--partition> I<device>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:74
+msgid "Detailed statistics about partition (2.5.70 or above required)."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:74
+#, no-wrap
+msgid "B<-S>, B<--unit> I<character>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:86
+msgid ""
+"Switches outputs between 1000 (I<k>), 1024 (I<K>), 1000000 (I<m>), or "
+"1048576 (I<M>) bytes. Note this does not change the swap (si/so) or block "
+"(bi/bo) fields."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:86
+#, no-wrap
+msgid "B<-t>, B<--timestamp>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:89
+msgid "Append timestamp to each line"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:94
+msgid ""
+"Wide output mode (useful for systems with higher amount of memory, where the "
+"default output mode suffers from unwanted column breakage). The output is "
+"wider than 80 characters per line."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:94
+#, no-wrap
+msgid "B<-y>, B<--no-first>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:97
+msgid "Omits first report with statistics since system boot."
+msgstr ""
+
+#. type: SH
+#: ../man/vmstat.8:104
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR VM MODE"
+msgstr ""
+
+#. type: SS
+#: ../man/vmstat.8:105
+#, no-wrap
+msgid "Procs"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:109
+#, no-wrap
+msgid ""
+"r: The number of runnable processes (running or waiting for run time).\n"
+"b: The number of processes blocked waiting for I/O to complete.\n"
+msgstr ""
+
+#. type: SS
+#: ../man/vmstat.8:110
+#, no-wrap
+msgid "Memory"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:112 ../man/vmstat.8:122
+msgid "These are affected by the B<--unit> option."
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:119
+#, no-wrap
+msgid ""
+"swpd: the amount of swap memory used.\n"
+"free: the amount of idle memory.\n"
+"buff: the amount of memory used as buffers.\n"
+"cache: the amount of memory used as cache.\n"
+"inact: the amount of inactive memory. (B<-a> option)\n"
+"active: the amount of active memory. (B<-a> option)\n"
+msgstr ""
+
+#. type: SS
+#: ../man/vmstat.8:120
+#, no-wrap
+msgid "Swap"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:125
+#, no-wrap
+msgid ""
+"si: Amount of memory swapped in from disk (/s).\n"
+"so: Amount of memory swapped to disk (/s).\n"
+msgstr ""
+
+#. type: SS
+#: ../man/vmstat.8:126 ../man/vmstat.8:161
+#, no-wrap
+msgid "IO"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:130
+#, no-wrap
+msgid ""
+"bi: Kibibyte received from a block device (KiB/s).\n"
+"bo: Kibibyte sent to a block device (KiB/s).\n"
+msgstr ""
+
+#. type: SS
+#: ../man/vmstat.8:131
+#, no-wrap
+msgid "System"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:135
+#, no-wrap
+msgid ""
+"in: The number of interrupts per second, including the clock.\n"
+"cs: The number of context switches per second.\n"
+msgstr ""
+
+#. type: ds PU
+#: ../man/vmstat.8:136 ../man/top.1:37
+#, no-wrap
+msgid "CPU"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:138
+msgid "These are percentages of total CPU time."
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:145
+#, no-wrap
+msgid ""
+"us: Time spent running non-kernel code. (user time, including nice time)\n"
+"sy: Time spent running kernel code. (system time)\n"
+"id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.\n"
+"wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle.\n"
+"st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.\n"
+"gu: Time spent running KVM guest code (guest time, including guest nice).\n"
+msgstr ""
+
+#. type: SH
+#: ../man/vmstat.8:146
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR DISK MODE"
+msgstr ""
+
+#. type: SS
+#: ../man/vmstat.8:147
+#, no-wrap
+msgid "Reads"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:153
+#, no-wrap
+msgid ""
+"total: Total reads completed successfully\n"
+"merged: grouped reads (resulting in one I/O)\n"
+"sectors: Sectors read successfully\n"
+"ms: milliseconds spent reading\n"
+msgstr ""
+
+#. type: SS
+#: ../man/vmstat.8:154
+#, no-wrap
+msgid "Writes"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:160
+#, no-wrap
+msgid ""
+"total: Total writes completed successfully\n"
+"merged: grouped writes (resulting in one I/O)\n"
+"sectors: Sectors written successfully\n"
+"ms: milliseconds spent writing\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:165
+#, no-wrap
+msgid ""
+"cur: I/O in progress\n"
+"s: seconds spent for I/O\n"
+msgstr ""
+
+#. type: SH
+#: ../man/vmstat.8:166
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR DISK PARTITION MODE"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:172
+#, no-wrap
+msgid ""
+"reads: Total number of reads issued to this partition\n"
+"read sectors: Total read sectors for partition\n"
+"writes : Total number of writes issued to this partition\n"
+"requested writes: Total number of write requests made for partition\n"
+msgstr ""
+
+#. type: SH
+#: ../man/vmstat.8:173
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR SLAB MODE"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:177
+msgid ""
+"Slab mode shows statistics per slab, for more information about this "
+"information see B<slabinfo>(5)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:184
+#, no-wrap
+msgid ""
+"cache: Cache name\n"
+"num: Number of currently active objects\n"
+"total: Total number of available objects\n"
+"size: Size of each object\n"
+"pages: Number of pages with at least one active object\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:191
+msgid ""
+"B<vmstat> requires read access to files under I</proc>. The B<-m> requires "
+"read access to I</proc/slabinfo> which may not be available to standard "
+"users. Mount options for I</proc> such as I<subset=pid> may also impact "
+"what is visible."
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:199
+msgid ""
+"B<free>(1), B<iostat>(1), B<mpstat>(1), B<ps>(1), B<sar>(1), B<top>(1), "
+"B<slabinfo>(5)"
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:14 ../man/ps.1:852
+#, no-wrap
+msgid "W"
+msgstr ""
+
+#. type: TH
+#: ../man/w.1:14
+#, no-wrap
+msgid "2023-01-15"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:17
+msgid "w - Show who is logged on and what they are doing."
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:20
+msgid "B<w> [I<options>] [I<user>]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:26
+msgid ""
+"B<w> displays information about the users currently on the machine, and "
+"their processes. The header shows, in this order, the current time, how "
+"long the system has been running, how many users are currently logged on, "
+"and the system load averages for the past 1, 5, and 15 minutes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:30
+msgid ""
+"The following entries are displayed for each user: login name, the tty name, "
+"the remote host, login time, idle time, JCPU, PCPU, and the command line of "
+"their current process."
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:34
+msgid ""
+"The JCPU time is the time used by all processes attached to the tty. It "
+"does not include past background jobs, but does include currently running "
+"background jobs."
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:37
+msgid ""
+"The PCPU time is the time used by the current process, named in the \"what\" "
+"field."
+msgstr ""
+
+#. type: SH
+#: ../man/w.1:37
+#, no-wrap
+msgid "COMMAND-LINE OPTIONS"
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:38
+#, no-wrap
+msgid "B<-h>, B<--no-header>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:41
+msgid "Don't print the header."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:41
+#, no-wrap
+msgid "B<-u>, B<--no-current>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:50
+msgid ""
+"Ignores the username while figuring out the current process and cpu times. "
+"To demonstrate this, do a B<su> and do a B<w> and a B<w -u>."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:50
+#, no-wrap
+msgid "B<-s>, B<--short>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:53
+msgid "Use the short format. Don't print the login time, JCPU or PCPU times."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:53
+#, no-wrap
+msgid "B<-f>, B<--from>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:63
+msgid ""
+"Toggle printing the B<from> (remote hostname) field. The default as "
+"released is for the B<from> field to not be printed, although your system "
+"administrator or distribution maintainer may have compiled a version in "
+"which the B<from> field is shown by default."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:66
+#, no-wrap
+msgid "B<-i>, B<--ip-addr>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:69
+msgid "Display IP address instead of hostname for B<from> field."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:69
+#, no-wrap
+msgid "B<-p>, B<--pids>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:72
+msgid "Display pid of the login process/the \"what\" process in the \"what\" field."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:75
+#, no-wrap
+msgid "B<-o>, B<--old-style>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:78
+msgid "Old style output. Prints blank space for idle times less than one minute."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:78
+#, no-wrap
+msgid "B<user >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:81
+msgid "Show information about the specified user only."
+msgstr ""
+
+#. type: SH
+#: ../man/w.1:81 ../man/watch.1:133
+#, no-wrap
+msgid "ENVIRONMENT"
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:82
+#, no-wrap
+msgid "PROCPS_USERLEN"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:85
+msgid "Override the default width of the username column. Defaults to 8."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:85
+#, no-wrap
+msgid "PROCPS_FROMLEN"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:88
+msgid "Override the default width of the from column. Defaults to 16."
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:102
+msgid "B<free>(1), B<ps>(1), B<top>(1), B<uptime>(1), B<utmp>(5), B<who>(1)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:112
+msgid ""
+"B<w> was re-written almost entirely by Charles Blake, based on the version "
+"by E<.UR greenfie@\\:gauss.\\:rutgers.\\:edu> Larry Greenfield E<.UE> and "
+"E<.UR johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE>"
+msgstr ""
+
+#. type: TH
+#: ../man/watch.1:13
+#, no-wrap
+msgid "WATCH"
+msgstr ""
+
+#. type: TH
+#: ../man/watch.1:13
+#, no-wrap
+msgid "2023-01-17"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:16
+msgid "watch - execute a program periodically, showing output fullscreen"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:19
+msgid "B<watch> [I<options>] I<command>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:26
+msgid ""
+"B<watch> runs I<command> repeatedly, displaying its output and errors (the "
+"first screenfull). This allows you to watch the program output change over "
+"time. By default, I<command> is run every 2 seconds and B<watch> will run "
+"until interrupted."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:27
+#, no-wrap
+msgid "B<-b>, B<--beep>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:30
+msgid "Beep if command has a non-zero exit."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:30
+#, no-wrap
+msgid "B<-c>, B<--color>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:33
+msgid "Interpret ANSI color and style sequences."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:33
+#, no-wrap
+msgid "B<-C>, B<--no-color>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:36
+msgid "Do not interpret ANSI color and style sequences."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:36
+#, no-wrap
+msgid "B<-d>, B<--differences>[=I<permanent>]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:42
+msgid ""
+"Highlight the differences between successive updates. If the optional "
+"I<permanent> argument is specified then B<watch> will show all changes since "
+"the first iteration."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:42
+#, no-wrap
+msgid "B<-e>, B<--errexit>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:45
+msgid "Freeze updates on command error, and exit after a key press."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:45
+#, no-wrap
+msgid "B<-g>, B<--chgexit>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:50
+msgid "Exit when the output of I<command> changes."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:50
+#, no-wrap
+msgid "B<-n>, B<--interval> I<seconds>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:56
+msgid ""
+"Specify update interval. The command will not allow quicker than 0.1 second "
+"interval, in which the smaller values are converted. Both '.' and ',' work "
+"for any locales. The B<WATCH_INTERVAL> environment can be used to "
+"persistently set a non-default interval (following the same rules and "
+"formatting)."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:56
+#, no-wrap
+msgid "B<-p>, B<--precise>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:69
+msgid ""
+"Make B<watch> attempt to run I<command> every B<--interval> I<seconds>. Try "
+"it with B<ntptime> (if present) and notice how the fractional seconds stays "
+"(nearly) the same, as opposed to normal mode where they continuously "
+"increase."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:69
+#, no-wrap
+msgid "B<-q>, B<--equexit> E<lt>cyclesE<gt>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:74
+msgid ""
+"Exit when output of I<command> does not change for the given number of "
+"cycles."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:74
+#, no-wrap
+msgid "B<-r>, B<--no-rerun>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:78
+msgid ""
+"Do not run the program on terminal resize, the output of the program will "
+"re-appear at the next regular run time."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:78
+#, no-wrap
+msgid "B<-t>, B<--no-title>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:82
+msgid ""
+"Turn off the header showing the interval, command, and current time at the "
+"top of the display, as well as the following blank line."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:82
+#, no-wrap
+msgid "B<-w>, B<--no-wrap>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:85
+msgid ""
+"Turn off line wrapping. Long lines will be truncated instead of wrapped to "
+"the next line."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:85
+#, no-wrap
+msgid "B<-x>, B<--exec>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:94
+msgid ""
+"Pass I<command> to B<exec>(2) instead of B<sh -c> which reduces the need to "
+"use extra quoting to get the desired effect."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:97
+#, no-wrap
+msgid "B<-v>, B<--version>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:110
+msgid "Various failures."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:110
+#, no-wrap
+msgid "B<2>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:113
+msgid "Forking the process to watch failed."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:113
+#, no-wrap
+msgid "B<3>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:116
+msgid "Replacing child process stdout with write side pipe failed."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:116
+#, no-wrap
+msgid "B<4>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:119
+msgid "Command execution failed."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:119
+#, no-wrap
+msgid "B<5>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:122
+msgid "Closing child process write pipe failed."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:122
+#, no-wrap
+msgid "B<7>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:125
+msgid "IPC pipe creation failed."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:125
+#, no-wrap
+msgid "B<8>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:130
+msgid ""
+"Getting child process return value with B<waitpid>(2) failed, or command "
+"exited up on error."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:130
+#, no-wrap
+msgid "B<other>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:133
+msgid "The watch will propagate command exit status as child exit status."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:137
+msgid "The behavior of B<watch> is affected by the following environment variables."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:138
+#, no-wrap
+msgid "B<WATCH_INTERVAL>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:143
+msgid ""
+"Update interval, follows the same rules as the B<--interval> command line "
+"option."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:151
+msgid ""
+"POSIX option processing is used (i.e., option processing stops at the first "
+"non-option argument). This means that flags after I<command> don't get "
+"interpreted by B<watch> itself."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:159
+msgid ""
+"Upon terminal resize, the screen will not be correctly repainted until the "
+"next scheduled update. All B<--differences> highlighting is lost on that "
+"update as well. When using the B<--no-rerun> option, no output of will be "
+"visible."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:162
+msgid ""
+"Non-printing characters are stripped from program output. Use B<cat -v> as "
+"part of the command pipeline if you want to see them."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:166
+msgid ""
+"Combining Characters that are supposed to display on the character at the "
+"last column on the screen may display one column early, or they may not "
+"display at all."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:170
+msgid ""
+"Combining Characters never count as different in B<--differences> mode. "
+"Only the base character counts."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:173
+msgid ""
+"Blank lines directly after a line which ends in the last column do not "
+"display."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:190
+msgid ""
+"B<--precise> mode doesn't yet have advanced temporal distortion technology "
+"to compensate for a I<command> that takes more than B<--interval> I<seconds> "
+"to execute. B<watch> also can get into a state where it rapid-fires as many "
+"executions of I<command> as it can to catch up from a previous executions "
+"running longer than B<--interval> (for example, B<netstat>(8) taking ages "
+"on a DNS lookup)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:194
+msgid "To watch for mail, you might do"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:196
+msgid "watch -n 60 from"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:198
+msgid "To watch the contents of a directory change, you could use"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:200
+msgid "watch -d ls -l"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:202
+msgid "If you're only interested in files owned by user joe, you might use"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:204
+msgid "watch -d 'ls -l | fgrep joe'"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:206
+msgid "To see the effects of quoting, try these out"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:208
+msgid "watch echo $$"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:210
+msgid "watch echo '$$'"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:212
+msgid "watch echo \"'\"'$$'\"'\""
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:216
+msgid "To see the effect of precision time keeping, try adding B<-p> to"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:218
+msgid "watch -n 10 sleep 1"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:220
+msgid "You can watch for your administrator to install the latest kernel with"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:222
+msgid "watch uname -r"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:228
+msgid ""
+"(Note that B<-p> isn't guaranteed to work across reboots, especially in the "
+"face of B<ntpdate> (if present) or other bootup time-changing mechanisms)"
+msgstr ""
+
+#. type: TH
+#: ../man/ps.1:13
+#, no-wrap
+msgid "PS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:29
+msgid "ps - report a snapshot of the current processes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:31
+msgid "B<ps> [\\,I<options\\/>]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:37
+msgid ""
+"B<ps> displays information about a selection of the active processes. If "
+"you want a repetitive update of the selection and the displayed information, "
+"use B<top> instead."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:41
+msgid "This version of B<ps> accepts several kinds of options:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:45
+msgid "UNIX options, which may be grouped and must be preceded by a dash."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:47
+msgid "BSD options, which may be grouped and must not be used with a dash."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:49
+msgid "GNU long options, which are preceded by two dashes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:58
+msgid ""
+"Options of different types may be freely mixed, but conflicts can appear. "
+"There are some synonymous options, which are functionally identical, due to "
+"the many standards and B<ps> implementations that this B<ps> is compatible "
+"with."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:66
+msgid ""
+"By default, B<ps> selects all processes with the same effective user ID "
+"(euid=EUID) as the current user and associated with the same terminal as the "
+"invoker. It displays the process ID (pid=PID), the terminal associated with "
+"the process (tname=TTY), the cumulated CPU time in [DD-]hh:mm:ss format "
+"(time=TIME), and the executable name (ucmd=CMD). Output is unsorted by "
+"default."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:79
+msgid ""
+"The use of BSD-style options will add process state (stat=STAT) to the "
+"default display and show the command args (args=COMMAND) instead of the "
+"executable name. You can override this with the B<PS_FORMAT> environment "
+"variable. The use of BSD-style options will also change the process "
+"selection to include processes on other terminals (TTYs) that are owned by "
+"you; alternately, this may be described as setting the selection to be the "
+"set of all processes filtered to exclude processes owned by other users or "
+"not on a terminal. These effects are not considered when options are "
+"described as being \"identical\" below, so B<-M> will be considered "
+"identical to B<Z> and so on."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:84
+msgid ""
+"Except as described below, process selection options are additive. The "
+"default selection is discarded, and then the selected processes are added to "
+"the set of processes to be displayed. A process will thus be shown if it "
+"meets any of the given selection criteria."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:85
+#, no-wrap
+msgid "To see every process on the system using standard syntax:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:88
+msgid "B<ps\\ -e>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:90
+msgid "B<ps\\ -ef>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:92
+msgid "B<ps\\ -eF>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:94
+msgid "B<ps\\ -ely>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:94
+#, no-wrap
+msgid "To see every process on the system using BSD syntax:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:97
+msgid "B<ps\\ ax>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:99
+msgid "B<ps\\ axu>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:99
+#, no-wrap
+msgid "To print a process tree:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:102
+msgid "B<ps\\ -ejH>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:104
+msgid "B<ps\\ axjf>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:104
+#, no-wrap
+msgid "To get info about threads:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:107
+msgid "B<ps\\ -eLf>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:109
+msgid "B<ps\\ axms>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:109
+#, no-wrap
+msgid "To get security info:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:112
+msgid "B<ps\\ -eo euser,ruser,suser,fuser,f,comm,label>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:114
+msgid "B<ps\\ axZ>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:116
+msgid "B<ps\\ -eM>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:116
+#, no-wrap
+msgid ""
+"To see every process running as root (real\\ &\\ effective\\ ID) in user "
+"format:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:119
+msgid "B<ps\\ -U\\ root\\ -u\\ root\\ u>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:119
+#, no-wrap
+msgid "To see every process with a user-defined format:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:122
+msgid "B<ps\\ -eo\\ pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:124
+msgid "B<ps\\ axo\\ stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:126
+msgid "B<ps\\ -Ao\\ pid,tt,user,fname,tmout,f,wchan>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:126
+#, no-wrap
+msgid "Print only the process IDs of syslogd:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:129
+msgid "B<ps\\ -C\\ syslogd\\ -o\\ pid=>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:129
+#, no-wrap
+msgid "Print only the name of PID 42:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:132
+msgid "B<ps\\ -q\\ 42\\ -o\\ comm=>"
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:132
+#, no-wrap
+msgid "SIMPLE PROCESS SELECTION"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:133
+#, no-wrap
+msgid "B<a>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:147
+msgid ""
+"Lift the BSD-style \"only yourself\" restriction, which is imposed upon the "
+"set of all processes when some BSD-style (without \"-\") options are used or "
+"when the B<ps> personality setting is BSD-like. The set of processes "
+"selected in this manner is in addition to the set of processes selected by "
+"other means. An alternate description is that this option causes B<ps> to "
+"list all processes with a terminal (tty), or to list all processes when used "
+"together with the B<x> option."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:151
+msgid "Select all processes. Identical to B<-e>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:151
+#, no-wrap
+msgid "B<-a>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:156
+msgid ""
+"Select all processes except both session leaders (see I<getsid>(2)) and "
+"processes not associated with a terminal."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:159
+msgid "Select all processes except session leaders."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:159
+#, no-wrap
+msgid "B<--deselect>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:164
+msgid ""
+"Select all processes except those that fulfill the specified conditions "
+"(negates the selection). Identical to B<-N>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:164
+#, no-wrap
+msgid "B<-e>"
+msgstr ""
+
+#. Current "g" behavior: add in the session leaders, which would
+#. be excluded in the sunos4 personality. Supposed "g" behavior:
+#. add in the group leaders -- at least according to the SunOS 4
+#. man page on the FreeBSD site. Uh oh. I think I had tested SunOS
+#. though, so maybe the code is correct.
+#. type: Plain text
+#: ../man/ps.1:173
+msgid "Select all processes. Identical to B<-A>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:173
+#, no-wrap
+msgid "B<g>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:179
+msgid ""
+"Really all, even session leaders. This flag is obsolete and may be "
+"discontinued in a future release. It is normally implied by the B<a> flag, "
+"and is only useful when operating in the sunos4 personality."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:179
+#, no-wrap
+msgid "B<-N>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:184
+msgid ""
+"Select all processes except those that fulfill the specified conditions "
+"(negates the selection). Identical to B<--deselect>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:184
+#, no-wrap
+msgid "B<T>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:189
+msgid ""
+"Select all processes associated with this terminal. Identical to the B<t> "
+"option without any argument."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:189
+#, no-wrap
+msgid "B<r>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:192
+msgid "Restrict the selection to only running processes."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:192
+#, no-wrap
+msgid "B<x>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:207
+msgid ""
+"Lift the BSD-style \"must have a tty\" restriction, which is imposed upon "
+"the set of all processes when some BSD-style (without \"-\") options are "
+"used or when the B<ps> personality setting is BSD-like. The set of "
+"processes selected in this manner is in addition to the set of processes "
+"selected by other means. An alternate description is that this option "
+"causes B<ps> to list all processes owned by you (same EUID as B<ps>), or to "
+"list all processes when used together with the B<a> option."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:208
+#, no-wrap
+msgid "PROCESS SELECTION BY LIST"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:212
+msgid ""
+"These options accept a single argument in the form of a blank-separated or "
+"comma-separated list. They can be used multiple times. For example: B<ps\\ "
+"-p\\ \"1\\ 2\"\\ -p\\ 3,4>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:212
+#, no-wrap
+msgid "I<123>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:216
+msgid "Identical to B<--pid\\ >I<123>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:216
+#, no-wrap
+msgid "\\+I<123>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:220
+msgid "Identical to B<--sid\\ >I<123>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:220
+#, no-wrap
+msgid "-I<123>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:223
+msgid "Select by process group ID (PGID)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:223
+#, no-wrap
+msgid "B<-C>I<\\ cmdlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:232
+msgid ""
+"Select by command name. This selects the processes whose executable name is "
+"given in I<cmdlist>. NOTE: The command name is not the same as the command "
+"line. Previous versions of procps and the kernel truncated this command name "
+"to 15 characters. This limitation is no longer present in both. If you "
+"depended on matching only 15 characters, you may no longer get a match."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:232
+#, no-wrap
+msgid "B<-G>I<\\ grplist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:240
+msgid ""
+"Select by real group ID (RGID) or name. This selects the processes whose "
+"real group name or ID is in the I<grplist> list. The real group ID "
+"identifies the group of the user who created the process, see I<getgid>(2)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:240
+#, no-wrap
+msgid "B<-g>I<\\ grplist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:253
+msgid ""
+"Select by session OR by effective group name. Selection by session is "
+"specified by many standards, but selection by effective group is the logical "
+"behavior that several other operating systems use. This B<ps> will select "
+"by session when the list is completely numeric (as sessions are). Group ID "
+"numbers will work only when some group names are also specified. See the "
+"B<-s> and B<--group> options."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:253
+#, no-wrap
+msgid "B<--Group>I<\\ grplist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:257
+msgid "Select by real group ID (RGID) or name. Identical to B<-G>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:257
+#, no-wrap
+msgid "B<--group>I<\\ grplist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:269
+msgid ""
+"Select by effective group ID (EGID) or name. This selects the processes "
+"whose effective group name or ID is in I<grplist>. The effective group ID "
+"describes the group whose file access permissions are used by the process "
+"(see I<getegid>(2)). The B<-g> option is often an alternative to "
+"B<--group>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:269
+#, no-wrap
+msgid "B<p>I<\\ pidlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:275
+msgid "Select by process ID. Identical to B<-p> and B<--pid>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:275
+#, no-wrap
+msgid "B<-p>I<\\ pidlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:283
+msgid ""
+"Select by PID. This selects the processes whose process ID numbers appear "
+"in I<pidlist>. Identical to B<p> and B<--pid>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:283
+#, no-wrap
+msgid "B<--pid>I<\\ pidlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:289
+msgid "Select by process\\ ID. Identical to B<-p> and B<p>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:289
+#, no-wrap
+msgid "B<--ppid>I<\\ pidlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:296
+msgid ""
+"Select by parent process ID. This selects the processes with a parent "
+"process\\ ID in I<pidlist>. That is, it selects processes that are children "
+"of those listed in I<pidlist>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:296
+#, no-wrap
+msgid "B<q>I<\\ pidlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:302
+msgid "Select by process ID (quick mode). Identical to B<-q> and B<--quick-pid>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:302
+#, no-wrap
+msgid "B<-q>I<\\ pidlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:316
+msgid ""
+"Select by PID (quick mode). This selects the processes whose process ID "
+"numbers appear in I<pidlist>. With this option B<ps> reads the necessary "
+"info only for the pids listed in the I<pidlist> and doesn't apply additional "
+"filtering rules. The order of pids is unsorted and preserved. No additional "
+"selection options, sorting and forest type listings are allowed in this "
+"mode. Identical to B<q> and B<--quick-pid>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:316
+#, no-wrap
+msgid "B<--quick-pid>I<\\ pidlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:322
+msgid "Select by process\\ ID (quick mode). Identical to B<-q> and B<q>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:322
+#, no-wrap
+msgid "B<-s>I<\\ sesslist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:327
+msgid ""
+"Select by session ID. This selects the processes with a session ID "
+"specified in I<sesslist>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:327
+#, no-wrap
+msgid "B<--sid>I<\\ sesslist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:331
+msgid "Select by session\\ ID. Identical to B<-s>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:331
+#, no-wrap
+msgid "B<t>I<\\ ttylist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:348
+msgid ""
+"Select by tty. Nearly identical to B<-t> and B<--tty>, but can also be used "
+"with an empty I<ttylist> to indicate the terminal associated with B<ps>. "
+"Using the B<T> option is considered cleaner than using B<t> with an empty "
+"I<ttylist>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:348
+#, no-wrap
+msgid "B<-t>I<\\ ttylist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:356
+msgid ""
+"Select by tty. This selects the processes associated with the terminals "
+"given in I<ttylist>. Terminals (ttys, or screens for text output) can be "
+"specified in several forms: /dev/ttyS1, ttyS1, S1. A plain \"-\" may be "
+"used to select processes not attached to any terminal."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:356
+#, no-wrap
+msgid "B<--tty>I<\\ ttylist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:362
+msgid "Select by terminal. Identical to B<-t> and B<t>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:362
+#, no-wrap
+msgid "B<U>I<\\ userlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:374
+msgid ""
+"Select by effective user ID (EUID) or name. This selects the processes "
+"whose effective user name or ID is in I<userlist>. The effective user ID "
+"describes the user whose file access permissions are used by the process "
+"(see I<geteuid>(2)). Identical to B<-u> and B<--user>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:374
+#, no-wrap
+msgid "B<-U>I<\\ userlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:381
+msgid ""
+"Select by real user ID (RUID) or name. It selects the processes whose real "
+"user name or ID is in the I<userlist> list. The real user ID identifies the "
+"user who created the process, see I<getuid>(2)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:381
+#, no-wrap
+msgid "B<-u>I<\\ userlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:386
+msgid ""
+"Select by effective user ID (EUID) or name. This selects the processes "
+"whose effective user name or ID is in I<userlist>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:394
+msgid ""
+"The effective user ID describes the user whose file access permissions are "
+"used by the process (see I<geteuid>(2)). Identical to B<U> and B<--user>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:394
+#, no-wrap
+msgid "B<--User>I<\\ userlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:398
+msgid "Select by real user ID (RUID) or name. Identical to B<-U>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:398
+#, no-wrap
+msgid "B<--user>I<\\ userlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:404
+msgid "Select by effective user ID (EUID) or name. Identical to B<-u> and B<U>."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:405
+#, no-wrap
+msgid "OUTPUT FORMAT CONTROL"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:409
+msgid ""
+"These options are used to choose the information displayed by B<ps>. The "
+"output may differ by personality."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:414
+msgid "Show different scheduler information for the B<-l> option."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:414
+#, no-wrap
+msgid "B<--context>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:417
+msgid "Display security context format (for SELinux)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:430
+msgid ""
+"Do full-format listing. This option can be combined with many other "
+"UNIX-style options to add additional columns. It also causes the command "
+"arguments to be printed. When used with B<-L>, the NLWP (number of threads) "
+"and LWP (thread ID) columns will be added. See the B<c> option, the format "
+"keyword B<args>, and the format keyword B<comm>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:430
+#, no-wrap
+msgid "B<-F>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:437
+msgid "Extra full format. See the B<-f> option, which B<-F> implies."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:437
+#, no-wrap
+msgid "B<--format>I<\\ format>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:443
+msgid "user-defined format. Identical to B<-o> and B<o>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:443
+#, no-wrap
+msgid "B<j>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:446
+msgid "BSD job control format."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:446
+#, no-wrap
+msgid "B<-j>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:449
+msgid "Jobs format."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:449
+#, no-wrap
+msgid "B<l>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:452
+msgid "Display BSD long format."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:452
+#, no-wrap
+msgid "B<-l>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:457
+msgid "Long format. The B<-y> option is often useful with this."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:457
+#, no-wrap
+msgid "B<-M>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:462
+msgid "Add a column of security data. Identical to B<Z> (for SELinux)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:462
+#, no-wrap
+msgid "B<O>I<\\ format>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:480
+msgid ""
+"is preloaded B<o> (overloaded). The BSD B<O> option can act like B<-O> "
+"(user-defined output format with some common fields predefined) or can be "
+"used to specify sort order. Heuristics are used to determine the behavior "
+"of this option. To ensure that the desired behavior is obtained (sorting or "
+"formatting), specify the option in some other way (e.g. with B<-O> or "
+"B<--sort>). When used as a formatting option, it is identical to B<-O>, "
+"with the BSD personality."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:480
+#, no-wrap
+msgid "B<-O>I<\\ format>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:491
+msgid ""
+"Like B<-o>, but preloaded with some default columns. Identical to B<-o\\ "
+"pid,\\:>I<format>B<,\\:state,\\:tname,\\:time,\\:command> or B<-o\\ "
+"pid,\\:>I<format>B<,\\:tname,\\:time,\\:cmd>, see B<-o> below."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:491
+#, no-wrap
+msgid "B<o>I<\\ format>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:497
+msgid "Specify user-defined format. Identical to B<-o> and B<--format>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:497
+#, no-wrap
+msgid "B<-o>I<\\ format>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:525
+msgid ""
+"User-defined format. I<format> is a single argument in the form of a "
+"blank-separated or comma-separated list, which offers a way to specify "
+"individual output columns. The recognized keywords are described in the "
+"B<STANDARD FORMAT SPECIFIERS> section below. Headers may be renamed (B<ps "
+"-o pid,\\:ruser=RealUser -o comm=Command>) as desired. If all column "
+"headers are empty (B<ps -o pid= -o comm=>) then the header line will not be "
+"output. Column width will increase as needed for wide headers; this may be "
+"used to widen up columns such as WCHAN (B<ps -o "
+"pid,\\:wchan=\\:WIDE-\\:WCHAN-\\:COLUMN -o comm>). Explicit width control "
+"(B<ps opid,\\:wchan:42,\\:cmd>) is offered too. The behavior of B<ps -o "
+"pid=X,\\:comm=Y> varies with personality; output may be one column named "
+"\"X,\\:comm=Y\" or two columns named \"X\" and \"Y\". Use multiple B<-o> "
+"options when in doubt. Use the B<PS_FORMAT> environment variable to specify "
+"a default as desired; DefSysV and DefBSD are macros that may be used to "
+"choose the default UNIX or BSD columns."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:525
+#, no-wrap
+msgid "B<-P>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:528
+msgid "Add a column showing B<psr>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:528
+#, no-wrap
+msgid "B<s>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:531
+msgid "Display signal format."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:531
+#, no-wrap
+msgid "B<u>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:534
+msgid "Display user-oriented format."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:534
+#, no-wrap
+msgid "B<v>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:537
+msgid "Display virtual memory format."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:537
+#, no-wrap
+msgid "B<X>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:540
+msgid "Register format."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:540
+#, no-wrap
+msgid "B<-y>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:545
+msgid ""
+"Do not show flags; show rss in place of addr. This option can only be used "
+"with B<-l>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:545
+#, no-wrap
+msgid "B<Z>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:550
+msgid "Add a column of security data. Identical to B<-M> (for SELinux)."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:551
+#, no-wrap
+msgid "OUTPUT MODIFIERS"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:552
+#, no-wrap
+msgid "B<c>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:570
+msgid ""
+"Show the true command name. This is derived from the name of the executable "
+"file, rather than from the argv value. Command arguments and any "
+"modifications to them are thus not shown. This option effectively turns the "
+"B<args> format keyword into the B<comm> format keyword; it is useful with "
+"the B<-f> format option and with the various BSD-style format options, which "
+"all normally display the command arguments. See the B<-f> option, the "
+"format keyword B<args>, and the format keyword B<comm>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:570
+#, no-wrap
+msgid "B<--cols>I<\\ n>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:573 ../man/ps.1:576 ../man/ps.1:724
+msgid "Set screen width."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:573
+#, no-wrap
+msgid "B<--columns>I<\\ n>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:576
+#, no-wrap
+msgid "B<--cumulative>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:579
+msgid "Include some dead child process data (as a sum with the parent)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:580
+#, no-wrap
+msgid "B<-D>I<\\ format>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:586
+msgid ""
+"Set the date format of the B<lstart> field to I<format>. This format is "
+"parsed by B<strftime>(3) and should be a maximum of 24 characters to not "
+"mis-align columns."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:586
+#, no-wrap
+msgid "B<--date-format>I<\\ format>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:589
+msgid "Identical to B<-D>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:589
+#, no-wrap
+msgid "B<e>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:592
+msgid "Show the environment after the command."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:592
+#, no-wrap
+msgid "B<f>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:595
+msgid "ASCII art process hierarchy (forest)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:595
+#, no-wrap
+msgid "B<--forest>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:598
+msgid "ASCII art process tree."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:598
+#, no-wrap
+msgid "B<h>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:616
+msgid ""
+"No header. (or, one header per screen in the BSD personality). The B<h> "
+"option is problematic. Standard BSD B<ps> uses this option to print a "
+"header on each page of output, but older Linux B<ps> uses this option to "
+"totally disable the header. This version of B<ps> follows the Linux usage "
+"of not printing the header unless the BSD personality has been selected, in "
+"which case it prints a header on each page of output. Regardless of the "
+"current personality, you can use the long options B<--headers> and "
+"B<--no-headers> to enable printing headers each page or disable headers "
+"entirely, respectively."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:616
+#, no-wrap
+msgid "B<-H>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:619
+msgid "Show process hierarchy (forest)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:619
+#, no-wrap
+msgid "B<--headers>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:622
+msgid "Repeat header lines, one per page of output."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:622
+#, no-wrap
+msgid "B<k>I<\\ spec>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:634
+msgid ""
+"Specify sorting order. Sorting syntax is [B<+>|B<->]I<key\\/.RB [,[ + | - "
+"].IR key [,...]].> Choose a multi-letter key from the B<STANDARD FORMAT "
+"SPECIFIERS> section. The \"+\" is optional since default direction is "
+"increasing numerical or lexicographic order. Identical to B<--sort>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:637
+msgid "Examples:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:639
+msgid "B<ps jaxkuid,-ppid,+pid>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:641
+msgid "B<ps axk comm o comm,args>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:643
+msgid "B<ps kstart_time -ef>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:644
+#, no-wrap
+msgid "B<--lines>I<\\ n>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:647 ../man/ps.1:691
+msgid "Set screen height."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:647
+#, no-wrap
+msgid "B<n>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:650
+msgid "Numeric output for WCHAN and USER (including all types of UID and GID)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:650
+#, no-wrap
+msgid "B<--no-headers>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:655
+msgid "Print no header line at all. B<--no-heading> is an alias for this option."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:655
+#, no-wrap
+msgid "B<O>I<\\ order>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:669
+msgid ""
+"Sorting order (overloaded). The BSD B<O> option can act like B<-O> "
+"(user-defined output format with some common fields predefined) or can be "
+"used to specify sort order. Heuristics are used to determine the behavior "
+"of this option. To ensure that the desired behavior is obtained (sorting or "
+"formatting), specify the option in some other way (e.g. with B<-O> or "
+"B<--sort>)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:688
+msgid ""
+"For sorting, obsolete BSD B<O> option syntax is "
+"B<O>[B<+>|B<->]I<k1>[,[B<+>|B<->]I<k2>[,...]]. It orders the processes "
+"listing according to the multilevel sort specified by the sequence of "
+"one-letter short keys I<k1>,I<k2>, ...\" described in the B<OBSOLETE SORT "
+"KEYS> section below. The\\ \"+\" is currently optional, merely re-iterating "
+"the default direction on a key, but may help to distinguish an B<O> sort "
+"from an B<O> format. The \"-\" reverses direction only on the key it "
+"precedes."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:688
+#, no-wrap
+msgid "B<--rows>I<\\ n>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:691
+#, no-wrap
+msgid "B<S>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:696
+msgid ""
+"Sum up some information, such as CPU usage, from dead child processes into "
+"their parent. This is useful for examining a system where a parent process "
+"repeatedly forks off short-lived children to do work."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:696
+#, no-wrap
+msgid "B<--sort>I<\\ spec>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:710
+msgid ""
+"Specify sorting order. Sorting syntax is "
+"[I<+>|I<->]I<key>[,[B<+>|B<->]I<key>[,...]]. Choose a multi-letter key from "
+"the B<STANDARD FORMAT SPECIFIERS> section. The \"+\" is optional since "
+"default direction is increasing numerical or lexicographic order. Identical "
+"to B<k>. For example: B<ps jax --sort=\\:uid,\\:-ppid,\\:+pid>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:710
+#, no-wrap
+msgid "B<--signames>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:715
+msgid ""
+"Show signal masks using abbreviated signal names and expands the collumn. "
+"If the column width cannot show all signals, the column will end with a plus "
+"\"I<+>\". Columns with only a hyphen have no signals."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:715
+#, no-wrap
+msgid "B<w>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:718 ../man/ps.1:721
+msgid "Wide output. Use this option twice for unlimited width."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:721
+#, no-wrap
+msgid "B<--width>I<\\ n>"
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:725
+#, no-wrap
+msgid "THREAD DISPLAY"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:726
+#, no-wrap
+msgid "B<H>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:729
+msgid "Show threads as if they were processes."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:729
+#, no-wrap
+msgid "B<-L>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:732
+msgid "Show threads, possibly with LWP and NLWP columns."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:732
+#, no-wrap
+msgid "B<m>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:735 ../man/ps.1:738
+msgid "Show threads after processes."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:735
+#, no-wrap
+msgid "B<-m>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:738
+#, no-wrap
+msgid "B<-T>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:741
+msgid "Show threads, possibly with SPID column."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:741
+#, no-wrap
+msgid "OTHER INFORMATION"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:742
+#, no-wrap
+msgid "B<--help>I<\\ section>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:753
+msgid ""
+"Print a help message. The I<section> argument can be one of I<s>imple, "
+"I<l>ist, I<o>utput, I<t>hreads, I<m>isc, or I<a>ll. The argument can be "
+"shortened to one of the underlined letters as in: "
+"s\\^|\\^l\\^|\\^o\\^|\\^t\\^|\\^m\\^|\\^a."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:753
+#, no-wrap
+msgid "B<--info>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:756
+msgid "Print debugging info."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:756
+#, no-wrap
+msgid "B<L>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:759
+msgid "List all format specifiers."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:759
+#, no-wrap
+msgid "B<V>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:762 ../man/ps.1:765 ../man/ps.1:768
+msgid "Print the procps-ng version."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:762
+#, no-wrap
+msgid "B<-V>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:765
+#, no-wrap
+msgid "B<--version>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:777
+msgid ""
+"This B<ps> works by reading the virtual files in /proc. This B<ps> does not "
+"need to be setuid kmem or have any privileges to run. Do not give this "
+"B<ps> any special permissions."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:783
+msgid ""
+"CPU usage is currently expressed as the percentage of time spent running "
+"during the entire lifetime of a process. This is not ideal, and\\ it does "
+"not conform to the standards that B<ps> otherwise conforms to. CPU usage is "
+"unlikely to add up to exactly 100%."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:788
+msgid ""
+"The SIZE and RSS fields don't count some parts of a process including the "
+"page tables, kernel stack, struct thread_info, and struct task_struct. This "
+"is usually at least 20\\ KiB of memory that is always resident. SIZE is the "
+"virtual size of the process (code+\\:data+\\:stack)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:794
+msgid ""
+"Processes marked E<lt>defunctE<gt> are dead processes (so-called "
+"\"zombies\") that remain because their parent has not destroyed them "
+"properly. These processes will be destroyed by I<init>(8) if the parent "
+"process exits."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:798
+msgid ""
+"If the length of the username is greater than the width of the display "
+"column, the username will be truncated. See the B<-o> and B<-O> formatting "
+"options to customize length."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:810
+msgid ""
+"Commands options such as B<ps -aux> are not recommended as it is a confusion "
+"of two different standards. According to the POSIX and UNIX standards, the "
+"above command asks to display all processes with a TTY (generally the "
+"commands users are running) plus all processes owned by a user named I<x>. "
+"If that user doesn't exist, then B<ps> will assume you really meant \"B<ps> "
+"I<aux>\"."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:810
+#, no-wrap
+msgid "PROCESS FLAGS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:815
+msgid ""
+"The sum of these values is displayed in the \"F\" column, which is provided "
+"by the B<flags> output specifier:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:821
+msgid "forked but didn't exec"
+msgstr ""
+
+#. type: IP
+#: ../man/ps.1:821 ../man/ps.1:2088
+#, no-wrap
+msgid "4"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:824
+msgid "used super-user privileges"
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:826
+#, no-wrap
+msgid "PROCESS STATE CODES"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:831
+msgid ""
+"Here are the different values that the B<s>, B<stat> and B<state> output "
+"specifiers (header \"STAT\" or \"S\") will display to describe the state of "
+"a process:"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:834
+#, no-wrap
+msgid "D"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:837
+msgid "uninterruptible sleep (usually IO)"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:837
+#, no-wrap
+msgid "I"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:840
+msgid "Idle kernel thread"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:840 ../man/ps.1:925
+#, no-wrap
+msgid "R"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:843
+msgid "running or runnable (on run queue)"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:843 ../man/ps.1:927 ../man/ps.1:1631 ../man/ps.1:1753
+#, no-wrap
+msgid "S"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:846
+msgid "interruptible sleep (waiting for an event to complete)"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:846 ../man/ps.1:929
+#, no-wrap
+msgid "T"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:849
+msgid "stopped by job control signal"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:849 ../man/ps.1:928
+#, no-wrap
+msgid "t"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:852
+msgid "stopped by debugger during the tracing"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:855
+msgid "paging (not valid since the 2.6.xx kernel)"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:855
+#, no-wrap
+msgid "X"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:858
+msgid "dead (should never be seen)"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:858
+#, no-wrap
+msgid "Z"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:861
+msgid "defunct (\"zombie\") process, terminated but not reaped by its parent"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:867
+msgid ""
+"For BSD formats and when the B<stat> keyword is used, additional characters "
+"may be displayed:"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:870
+#, no-wrap
+msgid "E<lt>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:873
+msgid "high-priority (not nice to other users)"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:873 ../man/ps.1:920
+#, no-wrap
+msgid "N"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:876
+msgid "low-priority (nice to other users)"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:876
+#, no-wrap
+msgid "L"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:879
+msgid "has pages locked into memory (for real-time and custom IO)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:882
+msgid "is a session leader"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:885
+msgid "is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:885
+#, no-wrap
+msgid "+"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:888
+msgid "is in the foreground process group"
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:890
+#, no-wrap
+msgid "OBSOLETE SORT KEYS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:906
+msgid ""
+"These keys are used by the BSD B<O> option (when it is used for sorting). "
+"The GNU B<--sort> option doesn't use these keys, but the specifiers "
+"described below in the B<STANDARD FORMAT SPECIFIERS> section. Note that the "
+"values used in sorting are the internal values B<ps> uses and not the "
+"\"cooked\" values used in some of the output format fields (e.g. sorting on "
+"tty will sort into device number, not according to the terminal name "
+"displayed). Pipe B<ps> output into the B<sort>(1) command if you want to "
+"sort the cooked values."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, no-wrap
+msgid "B<KEY>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, no-wrap
+msgid "B<LONG>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, no-wrap
+msgid "B<DESCRIPTION>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:909 ../man/ps.1:1161
+#, no-wrap
+msgid "cmd"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:909
+#, no-wrap
+msgid "simple name of executable"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:910 ../man/ps.1:1081
+#, no-wrap
+msgid "C"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:910 ../man/ps.1:952 ../man/ps.1:1481
+#, no-wrap
+msgid "pcpu"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:910
+#, no-wrap
+msgid "cpu utilization"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:911 ../man/ps.1:1300
+#, no-wrap
+msgid "f"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:911 ../man/ps.1:1326
+#, no-wrap
+msgid "flags"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:911
+#, no-wrap
+msgid "flags as in long format F field"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:912
+#, no-wrap
+msgid "g"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:912 ../man/ps.1:1508
+#, no-wrap
+msgid "pgrp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:912
+#, no-wrap
+msgid "process group ID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:913
+#, no-wrap
+msgid "G"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:913 ../man/ps.1:1848
+#, no-wrap
+msgid "tpgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:913
+#, no-wrap
+msgid "controlling tty process group ID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "j"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "cutime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "cumulative user time"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "J"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "cstime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "cumulative system time"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "k"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "utime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "user time"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:917
+#, no-wrap
+msgid "m"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:917 ../man/ps.1:1419
+#, no-wrap
+msgid "min_flt"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:917
+#, no-wrap
+msgid "number of minor page faults"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:918
+#, no-wrap
+msgid "M"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:918 ../man/ps.1:1415
+#, no-wrap
+msgid "maj_flt"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:918
+#, no-wrap
+msgid "number of major page faults"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:919
+#, no-wrap
+msgid "cmin_flt"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:919
+#, no-wrap
+msgid "cumulative minor page faults"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:920
+#, no-wrap
+msgid "cmaj_flt"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:920
+#, no-wrap
+msgid "cumulative major page faults"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:921
+#, no-wrap
+msgid "session"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:921
+#, no-wrap
+msgid "session ID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:922 ../man/ps.1:960 ../man/ps.1:1515
+#, no-wrap
+msgid "pid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:922
+#, no-wrap
+msgid "process ID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:923 ../man/ps.1:1657
+#, no-wrap
+msgid "P"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:923 ../man/ps.1:954 ../man/ps.1:1559
+#, no-wrap
+msgid "ppid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:923
+#, no-wrap
+msgid "parent process ID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:924
+#, no-wrap
+msgid "r"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:924 ../man/ps.1:1598
+#, no-wrap
+msgid "rss"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:924
+#, no-wrap
+msgid "resident set size"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:925
+#, no-wrap
+msgid "resident"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:925
+#, no-wrap
+msgid "resident pages"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:926 ../man/ps.1:1707
+#, no-wrap
+msgid "size"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:926
+#, no-wrap
+msgid "memory size in kilobytes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:927
+#, no-wrap
+msgid "share"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:927
+#, no-wrap
+msgid "amount of shared pages"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:928 ../man/ps.1:965 ../man/ps.1:1862
+#, no-wrap
+msgid "tty"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:928
+#, no-wrap
+msgid "the device number of the controlling tty"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:929 ../man/ps.1:1736
+#, no-wrap
+msgid "start_time"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:929
+#, no-wrap
+msgid "time process was started"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:930
+#, no-wrap
+msgid "U"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:930 ../man/ps.1:1881
+#, no-wrap
+msgid "uid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:930
+#, no-wrap
+msgid "user ID number"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:931 ../man/ps.1:955 ../man/ps.1:1900
+#, no-wrap
+msgid "user"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:931
+#, no-wrap
+msgid "user name"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:932 ../man/ps.1:1929
+#, no-wrap
+msgid "vsize"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:932
+#, no-wrap
+msgid "total VM size in KiB"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "y"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "priority"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "kernel scheduling priority"
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:936
+#, no-wrap
+msgid "AIX FORMAT DESCRIPTORS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:949
+msgid ""
+"This B<ps> supports AIX format descriptors, which work somewhat like the "
+"formatting codes of I<printf>(1) and I<printf>(3). For example, the normal "
+"default output can be produced with this: B<ps -eo \"%p %y %x %c\">. The "
+"B<NORMAL> codes are described in the next section."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<CODE>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<NORMAL>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<HEADER>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:952
+#, no-wrap
+msgid "%C"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:952 ../man/ps.1:1004 ../man/ps.1:1481
+#, no-wrap
+msgid "%CPU"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:953
+#, no-wrap
+msgid "%G"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:953 ../man/ps.1:1355
+#, no-wrap
+msgid "group"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:953 ../man/ps.1:1355
+#, no-wrap
+msgid "GROUP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:954
+#, no-wrap
+msgid "%P"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:954 ../man/ps.1:1559
+#, no-wrap
+msgid "PPID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:955
+#, no-wrap
+msgid "%U"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:955 ../man/ps.1:1888 ../man/ps.1:1900
+#, no-wrap
+msgid "USER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:956
+#, no-wrap
+msgid "%a"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:956 ../man/ps.1:1027
+#, no-wrap
+msgid "args"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:956 ../man/ps.1:957 ../man/ps.1:1027 ../man/ps.1:1168
+#: ../man/ps.1:1196 ../man/ps.1:1333 ../man/ps.1:1874
+#, no-wrap
+msgid "COMMAND"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:957
+#, no-wrap
+msgid "%c"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:957 ../man/ps.1:1168
+#, no-wrap
+msgid "comm"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:958
+#, no-wrap
+msgid "%g"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:958 ../man/ps.1:1588
+#, no-wrap
+msgid "rgroup"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:958 ../man/ps.1:1588
+#, no-wrap
+msgid "RGROUP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:959
+#, no-wrap
+msgid "%n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:959 ../man/ps.1:1443
+#, no-wrap
+msgid "nice"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:959 ../man/ps.1:1435 ../man/ps.1:1443
+#, no-wrap
+msgid "NI"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:960
+#, no-wrap
+msgid "%p"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:960 ../man/ps.1:1515
+#, no-wrap
+msgid "PID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:961
+#, no-wrap
+msgid "%r"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:961 ../man/ps.1:1502
+#, no-wrap
+msgid "pgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:961 ../man/ps.1:1502
+#, no-wrap
+msgid "PGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:962
+#, no-wrap
+msgid "%t"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:962 ../man/ps.1:1271
+#, no-wrap
+msgid "etime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:962 ../man/ps.1:1271 ../man/ps.1:1275
+#, no-wrap
+msgid "ELAPSED"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:963
+#, no-wrap
+msgid "%u"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:963 ../man/ps.1:1626
+#, no-wrap
+msgid "ruser"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:963 ../man/ps.1:1626
+#, no-wrap
+msgid "RUSER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:964
+#, no-wrap
+msgid "%x"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:964 ../man/ps.1:1827
+#, no-wrap
+msgid "time"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:964 ../man/ps.1:1075 ../man/ps.1:1208 ../man/ps.1:1213
+#: ../man/ps.1:1827 ../man/ps.1:1838
+#, no-wrap
+msgid "TIME"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:965
+#, no-wrap
+msgid "%y"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:965 ../man/ps.1:1843
+#, no-wrap
+msgid "TTY"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:966
+#, no-wrap
+msgid "%z"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:966 ../man/ps.1:1936
+#, no-wrap
+msgid "vsz"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:966 ../man/ps.1:1929 ../man/ps.1:1936
+#, no-wrap
+msgid "VSZ"
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:968
+#, no-wrap
+msgid "STANDARD FORMAT SPECIFIERS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:975
+msgid ""
+"Here are the different keywords that may be used to control the output "
+"format (e.g., with option B<-o>) or to sort the selected processes with the "
+"GNU-style B<--sort> option."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:978
+msgid "For example: B<ps -eo pid,\\:user,\\:args --sort user>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:983
+msgid ""
+"This version of B<ps> tries to recognize most of the keywords used in other "
+"implementations of B<ps>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:988
+msgid ""
+"The following user-defined format specifiers may contain spaces: B<args>, "
+"B<cmd>, B<comm>, B<command>, B<fname>, B<ucmd>, B<ucomm>, B<lstart>, "
+"B<bsdstart>, B<start>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:990
+msgid "Some keywords may not be available for sorting."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1002
+#, no-wrap
+msgid "CODE"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1002
+#, no-wrap
+msgid "HEADER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1004
+#, no-wrap
+msgid "%cpu"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1010
+#, no-wrap
+msgid ""
+"cpu utilization of the process in \"##.#\" format. Currently, it is the "
+"CPU\n"
+"time used divided by the time the process has been running "
+"(cputime/realtime\n"
+"ratio), expressed as a percentage. It will not add up to 100% unless you "
+"are\n"
+"lucky. (alias\n"
+"B<pcpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1012
+#, no-wrap
+msgid "%mem"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1012 ../man/ps.1:1526
+#, no-wrap
+msgid "%MEM"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1016
+#, no-wrap
+msgid ""
+"ratio of the process's resident set size to the physical memory on the\n"
+"machine, expressed as a percentage. (alias\n"
+"B<pmem>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1018
+#, no-wrap
+msgid "ag_id"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1018
+#, no-wrap
+msgid "AGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1021
+#, no-wrap
+msgid ""
+"The autogroup identifier associated with a process which operates in "
+"conjunction\n"
+"with the CFS scheduler to improve interactive desktop performance."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1023
+#, no-wrap
+msgid "ag_nice"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1023
+#, no-wrap
+msgid "AGNI"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1025
+#, no-wrap
+msgid ""
+"The autogroup nice value which affects scheduling of all processes in that "
+"group."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1042
+#, no-wrap
+msgid ""
+"command with all its arguments as a string. Modifications to the arguments\n"
+"may be shown. The output in this column may contain spaces. A process\n"
+"marked E<lt>defunctE<gt> is partly dead, waiting to be fully destroyed by "
+"its parent.\n"
+"Sometimes the process args will be unavailable; when this happens,\n"
+"B<ps>\n"
+"will instead print the executable name in brackets. (alias\n"
+"B<cmd>, B<command>).\n"
+"See also the\n"
+"B<comm>\n"
+"format keyword, the\n"
+"B<-f>\n"
+"option, and the\n"
+"B<c>\n"
+"option.\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1042 ../man/ps.1:1116 ../man/ps.1:1118 ../man/ps.1:1120
+#: ../man/ps.1:1122 ../man/ps.1:1124 ../man/ps.1:1126 ../man/ps.1:1128
+#: ../man/ps.1:1130 ../man/ps.1:1142 ../man/ps.1:1144 ../man/ps.1:1146
+#: ../man/ps.1:1148 ../man/ps.1:1150 ../man/ps.1:1152 ../man/ps.1:1154
+#: ../man/ps.1:1156 ../man/ps.1:1180 ../man/ps.1:1540 ../man/ps.1:1542
+#: ../man/ps.1:1544 ../man/ps.1:1546 ../man/ps.1:1548 ../man/ps.1:1550
+#: ../man/ps.1:1552 ../man/ps.1:1554
+#, no-wrap
+msgid ".br\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1058
+#, no-wrap
+msgid ""
+"When specified last, this column will extend to the edge of the display. "
+"If\n"
+"B<ps>\n"
+"can not determine display width, as when output is redirected (piped) into "
+"a\n"
+"file or another command, the output width is undefined (it may be 80,\n"
+"unlimited, determined by the\n"
+"B<TERM>\n"
+"variable, and so on). The\n"
+"B<COLUMNS>\n"
+"environment variable or\n"
+"B<--cols>\n"
+"option may be used to exactly determine the width in this case. The\n"
+"B<w>\n"
+"or\n"
+"B<-w>\n"
+"option may be also be used to adjust width."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1060
+#, no-wrap
+msgid "blocked"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1060 ../man/ps.1:1700
+#, no-wrap
+msgid "BLOCKED"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1066
+#, no-wrap
+msgid ""
+"mask of the blocked signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64-bit mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_block>, B<sigmask>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1068
+#, no-wrap
+msgid "bsdstart"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1068 ../man/ps.1:1736
+#, no-wrap
+msgid "START"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1073
+#, no-wrap
+msgid ""
+"time the command started. If the process was started less than 24 hours "
+"ago,\n"
+"the output format is \"\\ HH:MM\", else it is \" Mmm:SS\" (where Mmm is the "
+"three\n"
+"letters of the month). See also\n"
+"B<lstart>,B<\\ start>,B<\\ start_time>, andB<\\ stime>."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1075
+#, no-wrap
+msgid "bsdtime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1079
+#, no-wrap
+msgid ""
+"accumulated cpu time, user + system. The display format is usually\n"
+"\"MMM:SS\", but can be shifted to the right if the process used more than "
+"999\n"
+"minutes of cpu time."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1085
+#, no-wrap
+msgid ""
+"processor utilization. Currently, this is the integer value of the percent\n"
+"usage over the lifetime of the process. (see\n"
+"B<%cpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1087
+#, no-wrap
+msgid "caught"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1087 ../man/ps.1:1686
+#, no-wrap
+msgid "CAUGHT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1093
+#, no-wrap
+msgid ""
+"mask of the caught signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64 bits mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_catch>, B<sigcatch>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1095
+#, no-wrap
+msgid "cgname"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1095
+#, no-wrap
+msgid "CGNAME"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1097
+#, no-wrap
+msgid "display name of control groups to which the process belongs."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1099
+#, no-wrap
+msgid "cgroup"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1099
+#, no-wrap
+msgid "CGROUP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1101
+#, no-wrap
+msgid "display control groups to which the process belongs."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1103
+#, no-wrap
+msgid "cgroupns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1103
+#, no-wrap
+msgid "CGROUPNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1107 ../man/ps.1:1374 ../man/ps.1:1427 ../man/ps.1:1433
+#: ../man/ps.1:1524 ../man/ps.1:1836 ../man/ps.1:1911 ../man/ps.1:1922
+#, no-wrap
+msgid ""
+"Unique inode number describing the namespace the process belongs to.\n"
+"See\n"
+"I<namespaces>(7)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1109
+#, no-wrap
+msgid "class"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1109 ../man/ps.1:1135
+#, no-wrap
+msgid "CLS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1113 ../man/ps.1:1139
+#, no-wrap
+msgid ""
+"scheduling class of the process. (alias\n"
+"B<policy>, B<cls>).\n"
+"Field's possible values are:\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1113 ../man/ps.1:1139 ../man/ps.1:1537
+#, no-wrap
+msgid ".sp 1\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1114 ../man/ps.1:1140 ../man/ps.1:1538
+#, no-wrap
+msgid ".in +9n\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1116 ../man/ps.1:1142 ../man/ps.1:1540
+#, no-wrap
+msgid "-\tnot reported\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1118 ../man/ps.1:1144 ../man/ps.1:1542
+#, no-wrap
+msgid "TS\tSCHED_OTHER\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1120 ../man/ps.1:1146 ../man/ps.1:1544
+#, no-wrap
+msgid "FF\tSCHED_FIFO\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1122 ../man/ps.1:1148 ../man/ps.1:1546
+#, no-wrap
+msgid "RR\tSCHED_RR\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1124 ../man/ps.1:1150 ../man/ps.1:1548
+#, no-wrap
+msgid "B\tSCHED_BATCH\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1126 ../man/ps.1:1152 ../man/ps.1:1550
+#, no-wrap
+msgid "ISO\tSCHED_ISO\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1128 ../man/ps.1:1154 ../man/ps.1:1552
+#, no-wrap
+msgid "IDL\tSCHED_IDLE\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1130 ../man/ps.1:1156 ../man/ps.1:1554
+#, no-wrap
+msgid "DLN\tSCHED_DEADLINE\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1132 ../man/ps.1:1158 ../man/ps.1:1556
+#, no-wrap
+msgid "?\tunknown value\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1132 ../man/ps.1:1158 ../man/ps.1:1556
+#, no-wrap
+msgid ".in\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1135
+#, no-wrap
+msgid "cls"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1161 ../man/ps.1:1867
+#, no-wrap
+msgid "CMD"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1166
+#, no-wrap
+msgid ""
+"see\n"
+"B<args>.\n"
+"(alias\n"
+"B<args>, B<command>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1180
+#, no-wrap
+msgid ""
+"command name (only the executable name). The output in this column may\n"
+"contain spaces.\n"
+"(alias\n"
+"B<ucmd>, B<ucomm>).\n"
+"See also the\n"
+"B<args>\n"
+"format keyword, the\n"
+"B<-f>\n"
+"option, and the\n"
+"B<c>\n"
+"option.\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1194
+#, no-wrap
+msgid ""
+"When specified last, this column will extend to the edge of the display. "
+"If\n"
+"B<ps>\n"
+"can not determine display width, as when output is redirected (piped) into "
+"a\n"
+"file or another command, the output width is undefined (it may be 80,\n"
+"unlimited, determined by the\n"
+"B<TERM>\n"
+"variable, and so on). The\n"
+"B<COLUMNS>\n"
+"environment variable or\n"
+"B<--cols>\n"
+"option may be used to exactly determine the width in this case. The\n"
+"B<w>\\ orB<\\ -w>\n"
+"option may be also be used to adjust width."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1196
+#, no-wrap
+msgid "command"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1201
+#, no-wrap
+msgid ""
+"See\n"
+"B<args>.\n"
+"(alias\n"
+"B<args>, B<command>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1203
+#, no-wrap
+msgid "cp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1203
+#, no-wrap
+msgid "CP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1206
+#, no-wrap
+msgid ""
+"per-mill (tenths of a percent) CPU usage. (see\n"
+"B<%cpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1208
+#, no-wrap
+msgid "cputime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1211
+#, no-wrap
+msgid ""
+"cumulative CPU time, \"[DD-]hh:mm:ss\" format. (alias\n"
+"B<time>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1213
+#, no-wrap
+msgid "cputimes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1216
+#, no-wrap
+msgid ""
+"cumulative CPU time in seconds (alias\n"
+"B<times>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1218
+#, no-wrap
+msgid "cuc"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1218
+#, no-wrap
+msgid "%CUC"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1226
+#, no-wrap
+msgid ""
+"The CPU utilization of a process, including dead children, in an extended "
+"\"##.###\" format.\n"
+"(see also\n"
+"B<%cpu>,\n"
+"B<c>,\n"
+"B<cp>,\n"
+"B<cuu>,\n"
+"B<pcpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1228
+#, no-wrap
+msgid "cuu"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1228
+#, no-wrap
+msgid "%CUU"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1236
+#, no-wrap
+msgid ""
+"The CPU utilization of a process in an extended \"##.###\" format.\n"
+"(see also\n"
+"B<%cpu>,\n"
+"B<c>,\n"
+"B<cp>,\n"
+"B<cuc>,\n"
+"B<pcpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1238
+#, no-wrap
+msgid "drs"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1238
+#, no-wrap
+msgid "DRS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1247
+#, no-wrap
+msgid ""
+"data resident set size, the amount of private memory I<reserved> by a "
+"process.\n"
+"It is also known as DATA. Such memory may not yet be mapped to\n"
+"B<rss>\n"
+"but will always be included\n"
+"included in the\n"
+"B<vsz>\n"
+"amount.\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1249
+#, no-wrap
+msgid "egid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1249
+#, no-wrap
+msgid "EGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1252
+#, no-wrap
+msgid ""
+"effective group ID number of the process as a decimal integer. (alias\n"
+"B<gid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1254
+#, no-wrap
+msgid "egroup"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1254
+#, no-wrap
+msgid "EGROUP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1259
+#, no-wrap
+msgid ""
+"effective group ID of the process. This will be the textual group ID, if "
+"it\n"
+"can be obtained and the field width permits, or a decimal representation\n"
+"otherwise. (alias\n"
+"B<group>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1261
+#, no-wrap
+msgid "eip"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1261
+#, no-wrap
+msgid "EIP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1264
+#, no-wrap
+msgid ""
+"instruction pointer. As of kernel 4.9.xx will be zeroed out unless task is\n"
+"exiting or being core dumped."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1266
+#, no-wrap
+msgid "esp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1266
+#, no-wrap
+msgid "ESP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1269
+#, no-wrap
+msgid ""
+"stack pointer. As of kernel 4.9.xx will be zeroed out unless task is\n"
+"exiting or being core dumped."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1273
+#, no-wrap
+msgid "elapsed time since the process was started, in the form [[DD-]hh:]mm:ss."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1275
+#, no-wrap
+msgid "etimes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1277
+#, no-wrap
+msgid "elapsed time since the process was started, in seconds."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1279
+#, no-wrap
+msgid "euid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1279
+#, no-wrap
+msgid "EUID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1282
+#, no-wrap
+msgid ""
+"effective user ID (alias\n"
+"B<uid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1284
+#, no-wrap
+msgid "euser"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1284
+#, no-wrap
+msgid "EUSER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1290
+#, no-wrap
+msgid ""
+"effective user name. This will be the textual user ID, if it can be "
+"obtained\n"
+"and the field width permits, or a decimal representation otherwise. The\n"
+"B<n>\n"
+"option can be used to force the decimal representation. (alias\n"
+"B<uname>, B<user>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1292
+#, no-wrap
+msgid "exe"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1292
+#, no-wrap
+msgid "EXE"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1298
+#, no-wrap
+msgid ""
+"path to the executable. Useful if path cannot be printed via\n"
+"B<cmd>, B<comm>\n"
+"or\n"
+"B<args>\n"
+"format options."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1300 ../man/ps.1:1319 ../man/ps.1:1326
+#, no-wrap
+msgid "F"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1305
+#, no-wrap
+msgid ""
+"flags associated with the process, see the\n"
+"B<PROCESS FLAGS>\n"
+"section. (alias\n"
+"B<flag>, B<flags>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1307
+#, no-wrap
+msgid "fgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1307
+#, no-wrap
+msgid "FGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1310
+#, no-wrap
+msgid ""
+"filesystem access group\\ ID. (alias\n"
+"B<fsgid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1312
+#, no-wrap
+msgid "fgroup"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1312
+#, no-wrap
+msgid "FGROUP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1317
+#, no-wrap
+msgid ""
+"filesystem access group ID. This will be the textual group ID, if it can\n"
+"be obtained and the field width permits, or a decimal representation\n"
+"otherwise. (alias\n"
+"B<fsgroup>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1319
+#, no-wrap
+msgid "flag"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1324
+#, no-wrap
+msgid ""
+"see\n"
+"B<f>.\n"
+"(alias\n"
+"B<f>, B<flags>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1331
+#, no-wrap
+msgid ""
+"see\n"
+"B<f>.\n"
+"(alias\n"
+"B<f>, B<flag>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1333
+#, no-wrap
+msgid "fname"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1336
+#, no-wrap
+msgid ""
+"first 8 bytes of the base name of the process's executable file. The "
+"output\n"
+"in this column may contain spaces."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1338
+#, no-wrap
+msgid "fuid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1338
+#, no-wrap
+msgid "FUID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1341
+#, no-wrap
+msgid ""
+"filesystem access user ID. (alias\n"
+"B<fsuid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1343
+#, no-wrap
+msgid "fuser"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1343
+#, no-wrap
+msgid "FUSER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1346
+#, no-wrap
+msgid ""
+"filesystem access user ID. This will be the textual user ID, if it can be\n"
+"obtained and the field width permits, or a decimal representation otherwise."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1348
+#, no-wrap
+msgid "gid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1348
+#, no-wrap
+msgid "GID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1353
+#, no-wrap
+msgid ""
+"see\n"
+"B<egid>.\n"
+"(alias\n"
+"B<egid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1360
+#, no-wrap
+msgid ""
+"see\n"
+"B<egroup>.\n"
+"(alias\n"
+"B<egroup>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1362
+#, no-wrap
+msgid "ignored"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1362 ../man/ps.1:1693
+#, no-wrap
+msgid "IGNORED"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1368
+#, no-wrap
+msgid ""
+"mask of the ignored signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64 bits mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_ignore>, B<sigignore>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1370
+#, no-wrap
+msgid "ipcns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1370
+#, no-wrap
+msgid "IPCNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1376
+#, no-wrap
+msgid "label"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1376
+#, no-wrap
+msgid "LABEL"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1381
+#, no-wrap
+msgid ""
+"security label, most commonly used for SELinux context data. This is for\n"
+"the\n"
+"I<Mandatory Access Control>\n"
+"(\"MAC\") found on high-security systems."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1383
+#, no-wrap
+msgid "lstart"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1383 ../man/ps.1:1729
+#, no-wrap
+msgid "STARTED"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1386
+#, no-wrap
+msgid ""
+"time the command started. This will be in the form \"DDD mmm HH:MM:SS "
+"YYY\"\n"
+"unless changed by the B<-D> option."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1388
+#, no-wrap
+msgid "lsession"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1388
+#, no-wrap
+msgid "SESSION"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1391
+#, no-wrap
+msgid ""
+"displays the login session identifier of a process,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1393
+#, no-wrap
+msgid "luid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1393
+#, no-wrap
+msgid "LUID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1395
+#, no-wrap
+msgid "displays Login ID associated with a process."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1397
+#, no-wrap
+msgid "lwp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1397
+#, no-wrap
+msgid "LWP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1403
+#, no-wrap
+msgid ""
+"light weight process (thread) ID of the dispatchable entity (alias\n"
+"B<spid>,B<\\ tid>).\n"
+"See\n"
+"B<tid>\n"
+"for additional information."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1405
+#, no-wrap
+msgid "lxc"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1405
+#, no-wrap
+msgid "LXC"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1408
+#, no-wrap
+msgid ""
+"The name of the lxc container within which a task is running.\n"
+"If a process is not running inside a container, a dash ('-') will be shown."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1410
+#, no-wrap
+msgid "machine"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1410
+#, no-wrap
+msgid "MACHINE"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1413
+#, no-wrap
+msgid ""
+"displays the machine name for processes assigned to VM or container,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1415
+#, no-wrap
+msgid "MAJFLT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1417
+#, no-wrap
+msgid "The number of major page faults that have occurred with this process."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1419
+#, no-wrap
+msgid "MINFLT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1421
+#, no-wrap
+msgid "The number of minor page faults that have occurred with this process."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1423
+#, no-wrap
+msgid "mntns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1423
+#, no-wrap
+msgid "MNTNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1429
+#, no-wrap
+msgid "netns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1429
+#, no-wrap
+msgid "NETNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1435
+#, no-wrap
+msgid "ni"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1441
+#, no-wrap
+msgid ""
+"nice value. This ranges from 19 (nicest) to -20 (not nice to others),\n"
+"see\n"
+"I<nice>(1).\n"
+"(alias\n"
+"B<nice>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1447
+#, no-wrap
+msgid ""
+"see\n"
+"B<ni>.B<(alias>\n"
+"B<ni>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1449
+#, no-wrap
+msgid "nlwp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1449
+#, no-wrap
+msgid "NLWP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1452
+#, no-wrap
+msgid ""
+"number of lwps (threads) in the process. (alias\n"
+"B<thcount>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1454
+#, no-wrap
+msgid "numa"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1454
+#, no-wrap
+msgid "NUMA"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1457
+#, no-wrap
+msgid ""
+"The node associated with the most recently used processor.\n"
+"A I<-1> means that NUMA information is unavailable."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1459
+#, no-wrap
+msgid "nwchan"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1459 ../man/ps.1:1950
+#, no-wrap
+msgid "WCHAN"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1463
+#, no-wrap
+msgid ""
+"address of the kernel function where the process is sleeping (use\n"
+"B<wchan>\n"
+"if you want the kernel function name)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1465
+#, no-wrap
+msgid "oom"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1465
+#, no-wrap
+msgid "OOM"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1468
+#, no-wrap
+msgid ""
+"Out of Memory Score. The value, ranging from 0 to +1000, used to select\n"
+"task(s) to kill when memory is exhausted."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1470
+#, no-wrap
+msgid "oomadj"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1470
+#, no-wrap
+msgid "OOMADJ"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1474
+#, no-wrap
+msgid ""
+"Out of Memory Adjustment Factor. The value is added to the current out of\n"
+"memory score which is then used to determine which task to kill when "
+"memory\n"
+"is exhausted."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1476
+#, no-wrap
+msgid "ouid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1476
+#, no-wrap
+msgid "OWNER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1479
+#, no-wrap
+msgid ""
+"displays the Unix user identifier of the owner of the session of a "
+"process,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1486
+#, no-wrap
+msgid ""
+"see\n"
+"B<%cpu>.\n"
+"(alias\n"
+"B<%cpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1488
+#, no-wrap
+msgid "pending"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1488 ../man/ps.1:1679
+#, no-wrap
+msgid "PENDING"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1500
+#, no-wrap
+msgid ""
+"mask of the pending signals. See\n"
+"I<signal>(7).\n"
+"Signals pending on the process are distinct from signals pending on\n"
+"individual threads. Use the\n"
+"B<m>\n"
+"option or the\n"
+"B<-m>\n"
+"option to see both. According to the width of the field, a 32 or 64 bits\n"
+"mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1506
+#, no-wrap
+msgid ""
+"process group ID or, equivalently, the process ID of the process group\n"
+"leader. (alias\n"
+"B<pgrp>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1508
+#, no-wrap
+msgid "PGRP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1513
+#, no-wrap
+msgid ""
+"see\n"
+"B<pgid>.\n"
+"(alias\n"
+"B<pgid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1518
+#, no-wrap
+msgid ""
+"a number representing the process ID (alias\n"
+"B<tgid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1520
+#, no-wrap
+msgid "pidns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1520
+#, no-wrap
+msgid "PIDNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1526
+#, no-wrap
+msgid "pmem"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1531
+#, no-wrap
+msgid ""
+"see\n"
+"B<%mem>.\n"
+"(alias\n"
+"B<%mem>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1533
+#, no-wrap
+msgid "policy"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1533
+#, no-wrap
+msgid "POL"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1537
+#, no-wrap
+msgid ""
+"scheduling class of the process. (alias\n"
+"B<class>, B<cls>).\n"
+"Possible values are:\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1561
+#, no-wrap
+msgid "parent process ID."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1563
+#, no-wrap
+msgid "pri"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1563
+#, no-wrap
+msgid "PRI"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1565
+#, no-wrap
+msgid "priority of the process. Higher number means higher priority."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1567
+#, no-wrap
+msgid "psr"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1567
+#, no-wrap
+msgid "PSR"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1569
+#, no-wrap
+msgid "processor that process last executed on."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1571
+#, no-wrap
+msgid "pss"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1571
+#, no-wrap
+msgid "PSS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1574
+#, no-wrap
+msgid ""
+"Proportional share size, the non-swapped physical memory, with shared "
+"memory\n"
+"proportionally accounted to all tasks mapping it."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1576
+#, no-wrap
+msgid "rbytes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1576
+#, no-wrap
+msgid "RBYTES"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1578
+#, no-wrap
+msgid ""
+"Number of bytes which this process really did cause to be fetched from the "
+"storage layer."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1580
+#, no-wrap
+msgid "rchars"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1580
+#, no-wrap
+msgid "RCHARS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1582
+#, no-wrap
+msgid "Number of bytes which this task has caused to be read from storage."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1584
+#, no-wrap
+msgid "rgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1584
+#, no-wrap
+msgid "RGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1586
+#, no-wrap
+msgid "real group ID."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1591
+#, no-wrap
+msgid ""
+"real group name. This will be the textual group ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1593
+#, no-wrap
+msgid "rops"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1593
+#, no-wrap
+msgid "ROPS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1596
+#, no-wrap
+msgid ""
+"Number of read I/O operations—that is, system calls such as\n"
+"B<read>(2) and B<pread>(2)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1598 ../man/ps.1:1604
+#, no-wrap
+msgid "RSS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1602
+#, no-wrap
+msgid ""
+"resident set size, the non-swapped physical memory that a task has used "
+"(in\n"
+"kilobytes). (alias\n"
+"B<rssize>, B<rsz>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1604
+#, no-wrap
+msgid "rssize"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1609
+#, no-wrap
+msgid ""
+"see\n"
+"B<rss>.\n"
+"(alias\n"
+"B<rss>, B<rsz>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1611
+#, no-wrap
+msgid "rsz"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1611
+#, no-wrap
+msgid "RSZ"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1616
+#, no-wrap
+msgid ""
+"see\n"
+"B<rss>.\n"
+"(alias\n"
+"B<rss>, B<rssize>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1618
+#, no-wrap
+msgid "rtprio"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1618
+#, no-wrap
+msgid "RTPRIO"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1620
+#, no-wrap
+msgid "realtime priority."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1622
+#, no-wrap
+msgid "ruid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1622
+#, no-wrap
+msgid "RUID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1624
+#, no-wrap
+msgid "real user ID."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1629
+#, no-wrap
+msgid ""
+"real user ID. This will be the textual user ID, if it can be obtained and\n"
+"the field width permits, or a decimal representation otherwise."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1638
+#, no-wrap
+msgid ""
+"minimal state display (one character). See section\n"
+"B<PROCESS STATE CODES>\n"
+"for the different values. See also\n"
+"B<stat>\n"
+"if you want additional information displayed. (alias\n"
+"B<state>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1640
+#, no-wrap
+msgid "sched"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1640
+#, no-wrap
+msgid "SCH"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1644
+#, no-wrap
+msgid ""
+"scheduling policy of the process. The policies SCHED_OTHER "
+"(SCHED_NORMAL),\n"
+"SCHED_FIFO, SCHED_RR, SCHED_BATCH, SCHED_ISO, SCHED_IDLE and SCHED_DEADLINE "
+"are\n"
+"respectively displayed as 0, 1, 2, 3, 4, 5 and 6."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1646
+#, no-wrap
+msgid "seat"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1646
+#, no-wrap
+msgid "SEAT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1650
+#, no-wrap
+msgid ""
+"displays the identifier associated with all hardware devices assigned\n"
+"to a specific workplace,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1652
+#, no-wrap
+msgid "sess"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1652
+#, no-wrap
+msgid "SESS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1655
+#, no-wrap
+msgid ""
+"session ID or, equivalently, the process ID of the session leader. (alias\n"
+"B<session>, B<sid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1657
+#, no-wrap
+msgid "sgi_p"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1660
+#, no-wrap
+msgid ""
+"processor that the process is currently executing on. Displays \"*\" if "
+"the\n"
+"process is not currently running or runnable."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1662
+#, no-wrap
+msgid "sgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1662
+#, no-wrap
+msgid "SGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1665
+#, no-wrap
+msgid ""
+"saved group ID. (alias\n"
+"B<svgid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1667
+#, no-wrap
+msgid "sgroup"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1667
+#, no-wrap
+msgid "SGROUP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1670
+#, no-wrap
+msgid ""
+"saved group name. This will be the textual group ID, if it can be "
+"obtained\n"
+"and the field width permits, or a decimal representation otherwise."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1672
+#, no-wrap
+msgid "sid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1672
+#, no-wrap
+msgid "SID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1677
+#, no-wrap
+msgid ""
+"see\n"
+"B<sess>.\n"
+"(alias\n"
+"B<sess>, B<session>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1679
+#, no-wrap
+msgid "sig"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1684
+#, no-wrap
+msgid ""
+"see\n"
+"B<pending>.\n"
+"(alias\n"
+"B<pending>, B<sig_pend>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1686
+#, no-wrap
+msgid "sigcatch"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1691
+#, no-wrap
+msgid ""
+"see\n"
+"B<caught>.\n"
+"(alias\n"
+"B<caught>, B<sig_catch>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1693
+#, no-wrap
+msgid "sigignore"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1698
+#, no-wrap
+msgid ""
+"see\n"
+"B<ignored>.\n"
+"(alias\n"
+"B<ignored>, B<sig_ignore>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1700
+#, no-wrap
+msgid "sigmask"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1705
+#, no-wrap
+msgid ""
+"see\n"
+"B<blocked>.\n"
+"(alias\n"
+"B<blocked>, B<sig_block>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1707
+#, no-wrap
+msgid "SIZE"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1711
+#, no-wrap
+msgid ""
+"approximate amount of swap space that would be required if the process "
+"were\n"
+"to dirty all writable pages and then be swapped out. This number is very\n"
+"rough!"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1713
+#, no-wrap
+msgid "slice"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1713
+#, no-wrap
+msgid "SLICE"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1716
+#, no-wrap
+msgid ""
+"displays the slice unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1718
+#, no-wrap
+msgid "spid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1718
+#, no-wrap
+msgid "SPID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1723
+#, no-wrap
+msgid ""
+"see\n"
+"B<lwp>.\n"
+"(alias\n"
+"B<lwp>, B<tid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1725
+#, no-wrap
+msgid "stackp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1725
+#, no-wrap
+msgid "STACKP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1727
+#, no-wrap
+msgid "address of the bottom (start) of stack for the process."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1729
+#, no-wrap
+msgid "start"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1734
+#, no-wrap
+msgid ""
+"time the command started. If the process was started less than 24 hours "
+"ago,\n"
+"the output format is \"HH:MM:SS\", else it is \"\\ \\ Mmm\\ dd\" (where Mmm "
+"is a\n"
+"three-letter month name). See also\n"
+"B<bsdstart>, B<start>, B<start_time>, and B<stime>."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1743
+#, no-wrap
+msgid ""
+"starting time or date of the process. Only the year will be displayed if "
+"the\n"
+"process was not started the same year\n"
+"B<ps>\n"
+"was invoked, or \"MmmDD\" if it was not started the same day, or \"HH:MM\"\n"
+"otherwise. See also\n"
+"B<bsdstart>, B<start>, B<lstart>, and B<stime>."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1745
+#, no-wrap
+msgid "stat"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1745
+#, no-wrap
+msgid "STAT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1751
+#, no-wrap
+msgid ""
+"multi-character process state. See section\n"
+"B<PROCESS STATE CODES>\n"
+"for the different values meaning. See also\n"
+"B<s>\\ andB<\\ state>\n"
+"if you just want the first character displayed."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1753
+#, no-wrap
+msgid "state"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1756
+#, no-wrap
+msgid ""
+"see\n"
+"B<s>.\\& (aliasB<\\ s>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1758
+#, no-wrap
+msgid "stime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1758
+#, no-wrap
+msgid "STIME"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1760
+#, no-wrap
+msgid "see B<start_time>. (alias B<start_time>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1762
+#, no-wrap
+msgid "suid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1762
+#, no-wrap
+msgid "SUID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1765
+#, no-wrap
+msgid ""
+"saved user ID. (alias\n"
+"B<svuid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1767
+#, no-wrap
+msgid "supgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1767
+#, no-wrap
+msgid "SUPGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1770
+#, no-wrap
+msgid ""
+"group ids of supplementary groups, if any. See\n"
+"B<getgroups>(2)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1772
+#, no-wrap
+msgid "supgrp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1772
+#, no-wrap
+msgid "SUPGRP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1775
+#, no-wrap
+msgid ""
+"group names of supplementary groups, if any. See\n"
+"B<getgroups>(2)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1777
+#, no-wrap
+msgid "suser"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1777
+#, no-wrap
+msgid "SUSER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1781
+#, no-wrap
+msgid ""
+"saved user name. This will be the textual user ID, if it can be obtained "
+"and\n"
+"the field width permits, or a decimal representation otherwise. (alias\n"
+"B<svuser>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1783
+#, no-wrap
+msgid "svgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1783
+#, no-wrap
+msgid "SVGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1788
+#, no-wrap
+msgid ""
+"see\n"
+"B<sgid>.\n"
+"(alias\n"
+"B<sgid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1790
+#, no-wrap
+msgid "svuid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1790
+#, no-wrap
+msgid "SVUID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1795
+#, no-wrap
+msgid ""
+"see\n"
+"B<suid>.\n"
+"(alias\n"
+"B<suid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1797
+#, no-wrap
+msgid "sz"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1797
+#, no-wrap
+msgid "SZ"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1802
+#, no-wrap
+msgid ""
+"size in physical pages of the core image of the process. This includes "
+"text,\n"
+"data, and stack space. Device mappings are currently excluded; this is\n"
+"subject to change. See\n"
+"B<vsz>\\ andB<\\ rss>."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1804
+#, no-wrap
+msgid "tgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1804
+#, no-wrap
+msgid "TGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1808
+#, no-wrap
+msgid ""
+"a number representing the thread group to which a task belongs (alias\n"
+"B<pid>).\n"
+"It is the process ID of the thread group leader."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1810
+#, no-wrap
+msgid "thcount"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1810
+#, no-wrap
+msgid "THCNT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1816
+#, no-wrap
+msgid ""
+"see\n"
+"B<nlwp>.\n"
+"(alias\n"
+"B<nlwp>).\n"
+"number of kernel threads owned by the process."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1818
+#, no-wrap
+msgid "tid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1818
+#, no-wrap
+msgid "TID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1825
+#, no-wrap
+msgid ""
+"the unique number representing a dispatchable entity (alias\n"
+"B<spid>, B<tid>).\n"
+"This value may also appear as: a process ID (pid); a process group ID "
+"(pgrp);\n"
+"a session ID for the session leader (sid); a thread group ID for the "
+"thread\n"
+"group leader (tgid); and a tty process group ID for the process group "
+"leader\n"
+"(tpgid)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1830
+#, no-wrap
+msgid ""
+"cumulative CPU\\ time, \"[DD-]HH:MM:SS\" format. (alias\n"
+"B<cputime>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1832
+#, no-wrap
+msgid "timens"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1832
+#, no-wrap
+msgid "TIMENS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1838
+#, no-wrap
+msgid "times"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1841
+#, no-wrap
+msgid ""
+"cumulative CPU\\ time in seconds (alias\n"
+"B<cputimes>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1843
+#, no-wrap
+msgid "tname"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1846
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tt>, B<tty>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1848
+#, no-wrap
+msgid "TPGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1851
+#, no-wrap
+msgid ""
+"ID of the foreground process group on the tty (terminal) that the process "
+"is\n"
+"connected to, or -1 if the process is not connected to a tty."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1853
+#, no-wrap
+msgid "trs"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1853
+#, no-wrap
+msgid "TRS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1855
+#, no-wrap
+msgid ""
+"text resident set size, the amount of physical memory devoted to executable "
+"code."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1857
+#, no-wrap
+msgid "tt"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1857 ../man/ps.1:1862
+#, no-wrap
+msgid "TT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1860
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tname>, B<tty>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1865
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tname>, B<tt>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1867
+#, no-wrap
+msgid "ucmd"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1872
+#, no-wrap
+msgid ""
+"see\n"
+"B<comm>.\n"
+"(alias\n"
+"B<comm>, B<ucomm>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1874
+#, no-wrap
+msgid "ucomm"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1879
+#, no-wrap
+msgid ""
+"see\n"
+"B<comm>.\n"
+"(alias\n"
+"B<comm>, B<ucmd>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1881
+#, no-wrap
+msgid "UID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1886
+#, no-wrap
+msgid ""
+"see\n"
+"B<euid>.\n"
+"(alias\n"
+"B<euid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1888
+#, no-wrap
+msgid "uname"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1893
+#, no-wrap
+msgid ""
+"see\n"
+"B<euser>.\n"
+"(alias\n"
+"B<euser>, B<user>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1895
+#, no-wrap
+msgid "unit"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1895
+#, no-wrap
+msgid "UNIT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1898
+#, no-wrap
+msgid ""
+"displays unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1905
+#, no-wrap
+msgid ""
+"see\n"
+"B<euser>.\n"
+"(alias\n"
+"B<euser>, B<uname>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1907
+#, no-wrap
+msgid "userns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1907
+#, no-wrap
+msgid "USERNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1913
+#, no-wrap
+msgid "uss"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1913
+#, no-wrap
+msgid "USS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1916
+#, no-wrap
+msgid ""
+"Unique set size, the non-swapped physical memory, which\n"
+"is not shared with an another task."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1918
+#, no-wrap
+msgid "utsns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1918
+#, no-wrap
+msgid "UTSNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1924
+#, no-wrap
+msgid "uunit"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1924
+#, no-wrap
+msgid "UUNIT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1927
+#, no-wrap
+msgid ""
+"displays user unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1934
+#, no-wrap
+msgid ""
+"see\n"
+"B<vsz>.\n"
+"(alias\n"
+"B<vsz>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1940
+#, no-wrap
+msgid ""
+"virtual memory size of the process in KiB (1024-byte units). Device\n"
+"mappings are currently excluded; this is subject to change. (alias\n"
+"B<vsize>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1942
+#, no-wrap
+msgid "wbytes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1942
+#, no-wrap
+msgid "WBYTES"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1944
+#, no-wrap
+msgid "Number of bytes which this process caused to be sent to the storage layer."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1946
+#, no-wrap
+msgid "wcbytes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1946
+#, no-wrap
+msgid "WCBYTES"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1948
+#, no-wrap
+msgid "Number of cancelled write bytes."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1950
+#, no-wrap
+msgid "wchan"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1952
+#, no-wrap
+msgid "name of the kernel function in which the process is sleeping."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1954
+#, no-wrap
+msgid "wchars"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1954
+#, no-wrap
+msgid "WCHARS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1956
+#, no-wrap
+msgid ""
+"Number of bytes which this task has caused, or shall cause to be written to "
+"disk."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1958
+#, no-wrap
+msgid "wops"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1958
+#, no-wrap
+msgid "WOPS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1961
+#, no-wrap
+msgid ""
+"Number of write I/O operations—that is, system calls such as\n"
+"B<write>(2) and B<pwrite>(2)."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:1964
+#, no-wrap
+msgid "ENVIRONMENT VARIABLES"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1967
+msgid "The following environment variables could affect B<ps>:"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1967
+#, no-wrap
+msgid "B<COLUMNS>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1970
+msgid "Override default display width."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1970
+#, no-wrap
+msgid "B<LINES>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1973
+msgid "Override default display height."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1973
+#, no-wrap
+msgid "B<PS_PERSONALITY>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1978 ../man/ps.1:1983
+msgid ""
+"Set to one of posix, old, linux, bsd, sun, digital...\\& (see section "
+"B<PERSONALITY> below)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1978
+#, no-wrap
+msgid "B<CMD_ENV>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1983
+#, no-wrap
+msgid "B<I_WANT_A_BROKEN_PS>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1986
+msgid "Force obsolete command line interpretation."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1986
+#, no-wrap
+msgid "B<LC_TIME>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1989
+msgid "Date format."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1989
+#, no-wrap
+msgid "B<LIBPROC_HIDE_KERNEL>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1996
+msgid ""
+"Set this to any value to hide kernel threads normally displayed with the "
+"B<-e> option. This is equivalent to selecting B<--ppid 2 -p 2 --deselect> "
+"instead. Also works in BSD mode."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1996
+#, no-wrap
+msgid "B<PS_COLORS>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1999
+msgid "Not currently supported."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1999
+#, no-wrap
+msgid "B<PS_FORMAT>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2010
+msgid ""
+"Default output format override. You may set this to a format string of the "
+"type used for the B<-o> option. The B<DefSysV> and B<DefBSD> values are "
+"particularly useful."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:2010
+#, no-wrap
+msgid "B<POSIXLY_CORRECT>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2013 ../man/ps.1:2020
+msgid "Don't find excuses to ignore bad \"features\"."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:2013
+#, no-wrap
+msgid "B<POSIX2>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2017
+msgid "When set to \"on\", acts as B<POSIXLY_CORRECT>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:2017
+#, no-wrap
+msgid "B<UNIX95>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:2020
+#, no-wrap
+msgid "B<_XPG>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2026
+msgid "Cancel B<CMD_ENV>=I<irix> non-standard behavior."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2034
+msgid ""
+"In general, it is a bad idea to set these variables. The one exception is "
+"B<CMD_ENV> or B<PS_PERSONALITY>, which could be set to Linux for normal "
+"systems. Without that setting, B<ps> follows the useless and bad parts of "
+"the Unix98 standard."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:2034
+#, no-wrap
+msgid "PERSONALITY"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2037
+#, no-wrap
+msgid "390"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2037
+#, no-wrap
+msgid "like the OS/390 OpenEdition B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2038
+#, no-wrap
+msgid "aix"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2038
+#, no-wrap
+msgid "like AIX B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2039
+#, no-wrap
+msgid "bsd"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2039
+#, no-wrap
+msgid "like FreeBSD B<ps> (totally non-standard)"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2040
+#, no-wrap
+msgid "compaq"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2040
+#, no-wrap
+msgid "like Digital Unix B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2041
+#, no-wrap
+msgid "debian"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2041 ../man/ps.1:2043
+#, no-wrap
+msgid "like the old Debian B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2042
+#, no-wrap
+msgid "digital"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2042
+#, no-wrap
+msgid "like Tru64 (was Digital\\ Unix, was OSF/1) B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2043
+#, no-wrap
+msgid "gnu"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2044
+#, no-wrap
+msgid "hp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2044 ../man/ps.1:2045
+#, no-wrap
+msgid "like HP-UX B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2045
+#, no-wrap
+msgid "hpux"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2046
+#, no-wrap
+msgid "irix"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2046 ../man/ps.1:2053
+#, no-wrap
+msgid "like Irix B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2047
+#, no-wrap
+msgid "linux"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2047
+#, no-wrap
+msgid "***** B<recommended> *****"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2048
+#, no-wrap
+msgid "old"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2048
+#, no-wrap
+msgid "like the original Linux B<ps> (totally non-standard)"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2049
+#, no-wrap
+msgid "os390"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2049 ../man/ps.1:2051
+#, no-wrap
+msgid "like OS/390 Open Edition B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2050
+#, no-wrap
+msgid "posix"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2050 ../man/ps.1:2056 ../man/ps.1:2057 ../man/ps.1:2059
+#: ../man/ps.1:2060 ../man/ps.1:2061
+#, no-wrap
+msgid "standard"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2051
+#, no-wrap
+msgid "s390"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2052
+#, no-wrap
+msgid "sco"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2052
+#, no-wrap
+msgid "like SCO B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2053
+#, no-wrap
+msgid "sgi"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2054
+#, no-wrap
+msgid "solaris2"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2054
+#, no-wrap
+msgid "like Solaris 2+ (SunOS 5) B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2055
+#, no-wrap
+msgid "sunos4"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2055
+#, no-wrap
+msgid "like SunOS 4 (Solaris 1) B<ps> (totally non-standard)"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2056
+#, no-wrap
+msgid "svr4"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2057
+#, no-wrap
+msgid "sysv"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2058
+#, no-wrap
+msgid "tru64"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2058
+#, no-wrap
+msgid "like Tru64 (was Digital Unix, was OSF/1) B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2059
+#, no-wrap
+msgid "unix"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2060
+#, no-wrap
+msgid "unix95"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2061
+#, no-wrap
+msgid "unix98"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2069
+msgid ""
+"The fields B<bsdstart> and B<start> will only show the abbreviated month "
+"name in English. The fields B<lstart> and B<stime> will show the abbreviated "
+"month name in the configured locale but may exceed the column width due to "
+"the different lengths for abbreviated month and day names across languages."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2076
+msgid "B<pgrep>(1), B<pstree>(1), B<top>(1), B<strftime>(3), B<proc>(5)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2080
+msgid "This B<ps> conforms to:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2084
+msgid "Version 2 of the Single Unix Specification"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2086
+msgid "The Open Group Technical Standard Base Specifications, Issue\\ 6"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2088
+msgid "IEEE Std 1003.1, 2004\\ Edition"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2090
+msgid "X/Open System Interfaces Extension [UP\\ XSI]"
+msgstr ""
+
+#. type: IP
+#: ../man/ps.1:2090
+#, no-wrap
+msgid "5"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2092
+msgid "ISO/IEC 9945:2003"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2120
+msgid ""
+"B<ps> was originally written by E<.MT lankeste@\\:fwi.\\:uva.\\:nl> Branko "
+"Lankester E<.ME .> E<.MT johnsonm@\\:redhat.\\:com> Michael K. Johnson "
+"E<.ME> re-wrote it significantly to use the proc filesystem, changing a few "
+"things in the process. E<.MT mjshield@\\:nyx.\\:cs.\\:du.\\:edu> Michael "
+"Shields E<.ME> added the pid-list feature. E<.MT cblake@\\:bbn.\\:com> "
+"Charles Blake E<.ME> added multi-level sorting, the dirent-style library, "
+"the device name-to-number mmaped database, the approximate binary search "
+"directly on System.map, and many code and documentation cleanups. David "
+"Mossberger-Tang wrote the generic BFD support for psupdate. E<.MT "
+"albert@\\:users.\\:sf.\\:net> Albert Cahalan E<.ME> rewrote ps for full "
+"Unix98 and BSD support, along with some ugly hacks for obsolete and foreign "
+"syntax."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2124
+msgid ""
+"Please send bug reports to E<.MT procps@\\:freelists.\\:org> E<.ME .> No "
+"subscription is required or suggested."
+msgstr ""
+
+#. Setup ////////////////////////////////////////////////////////////////
+#. Commonly used strings (for consistency) ----------
+#. - our em-dashes
+#. type: ds Em
+#: ../man/top.1:11
+#, no-wrap
+msgid "\\ --\\ "
+msgstr ""
+
+#. type: ds EM
+#: ../man/top.1:12
+#, no-wrap
+msgid "B<\\ --\\ >"
+msgstr ""
+
+#. - our program name (makes great grammar)
+#. type: ds We
+#: ../man/top.1:14
+#, no-wrap
+msgid "top"
+msgstr ""
+
+#. type: ds WE
+#: ../man/top.1:15
+#, no-wrap
+msgid "B<top>"
+msgstr ""
+
+#. - other misc strs for consistent usage
+#. type: ds F
+#: ../man/top.1:17
+#, no-wrap
+msgid "I<Off>"
+msgstr ""
+
+#. type: ds O
+#: ../man/top.1:18
+#, no-wrap
+msgid "I<On>"
+msgstr ""
+
+#. type: ds AK
+#: ../man/top.1:20
+#, no-wrap
+msgid "asterisk (`*')"
+msgstr ""
+
+#. type: ds AM
+#: ../man/top.1:21
+#, no-wrap
+msgid "alternate-display mode"
+msgstr ""
+
+#. type: ds AS
+#: ../man/top.1:22
+#, no-wrap
+msgid "auxiliary storage"
+msgstr ""
+
+#. type: ds CF
+#: ../man/top.1:23
+#, no-wrap
+msgid "configuration file"
+msgstr ""
+
+#. type: ds CG
+#: ../man/top.1:24
+#, no-wrap
+msgid "`current' window/field group"
+msgstr ""
+
+#. type: ds CI
+#: ../man/top.1:25
+#, no-wrap
+msgid "interactive command"
+msgstr ""
+
+#. type: ds CO
+#: ../man/top.1:26
+#, no-wrap
+msgid "command-line option"
+msgstr ""
+
+#. type: ds CT
+#: ../man/top.1:27
+#, no-wrap
+msgid "command toggle"
+msgstr ""
+
+#. type: ds CW
+#: ../man/top.1:28
+#, no-wrap
+msgid "`current' window"
+msgstr ""
+
+#. type: ds FG
+#: ../man/top.1:29
+#, no-wrap
+msgid "field group"
+msgstr ""
+
+#. type: ds FM
+#: ../man/top.1:30
+#, no-wrap
+msgid "full-screen mode"
+msgstr ""
+
+#. type: ds KA
+#: ../man/top.1:31
+#, no-wrap
+msgid "arrow key"
+msgstr ""
+
+#. type: ds KS
+#: ../man/top.1:32
+#, no-wrap
+msgid "scrolling key"
+msgstr ""
+
+#. type: ds MP
+#: ../man/top.1:33
+#, no-wrap
+msgid "physical memory"
+msgstr ""
+
+#. type: ds MS
+#: ../man/top.1:34
+#, no-wrap
+msgid "swap file"
+msgstr ""
+
+#. type: ds MV
+#: ../man/top.1:35
+#, no-wrap
+msgid "virtual memory"
+msgstr ""
+
+#. type: ds NT
+#: ../man/top.1:36
+#, no-wrap
+msgid "B<Note>:"
+msgstr ""
+
+#. type: ds Pu
+#: ../man/top.1:38
+#, no-wrap
+msgid "cpu"
+msgstr ""
+
+#. type: ds SA
+#: ../man/top.1:39
+#, no-wrap
+msgid "summary area"
+msgstr ""
+
+#. type: ds TA
+#: ../man/top.1:40
+#, no-wrap
+msgid "task area"
+msgstr ""
+
+#. type: ds TD
+#: ../man/top.1:41
+#, no-wrap
+msgid "task display"
+msgstr ""
+
+#. type: ds TT
+#: ../man/top.1:42
+#, no-wrap
+msgid "B<processes> or B<threads>"
+msgstr ""
+
+#. type: ds TW
+#: ../man/top.1:43
+#, no-wrap
+msgid "task window"
+msgstr ""
+
+#. Reference to the various widths/sizes ------------
+#. - the max screen width limit
+#. type: ds WX
+#: ../man/top.1:46
+#, no-wrap
+msgid "512"
+msgstr ""
+
+#. - the header width w/ all fields
+#. type: ds WF
+#: ../man/top.1:48
+#, no-wrap
+msgid "approximately 250"
+msgstr ""
+
+#. - pid monitoring limit
+#. Xref's that depend on/mention other stuff --------
+#. type: ds Xa
+#: ../man/top.1:51
+#, no-wrap
+msgid "see"
+msgstr ""
+
+#. type: ds XC
+#: ../man/top.1:52
+#, no-wrap
+msgid "See the"
+msgstr ""
+
+#. type: ds Xc
+#: ../man/top.1:53
+#, no-wrap
+msgid "see the"
+msgstr ""
+
+#. type: ds XT
+#: ../man/top.1:54
+#, no-wrap
+msgid "See topic"
+msgstr ""
+
+#. type: ds Xt
+#: ../man/top.1:55
+#, no-wrap
+msgid "see topic"
+msgstr ""
+
+#. type: ds XX
+#: ../man/top.1:56
+#, no-wrap
+msgid "See `OVERVIEW, Linux Memory Types' for additional details"
+msgstr ""
+
+#. type: ds ZX
+#: ../man/top.1:57
+#, no-wrap
+msgid ""
+"Accessing smaps values is 10x more costly than other memory statistics and "
+"data for other users requires root privileges"
+msgstr ""
+
+#. type: TH
+#: ../man/top.1:62
+#, no-wrap
+msgid "TOP"
+msgstr ""
+
+#. type: TH
+#: ../man/top.1:62
+#, no-wrap
+msgid "August 2023"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:70
+msgid "top - display Linux processes"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:75
+msgid "\\*(WE [options]"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:85
+msgid ""
+"The \\*(WE program provides a dynamic real-time view of a running system. "
+"It can displayB< system> summary information as well as a list of \\*(TT "
+"currently being managed by the Linux kernel. The types of system summary "
+"information shown and the types, order and size of information displayed for "
+"processes are all user configurable and that configuration can be made "
+"persistent across restarts."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:93
+msgid ""
+"The program provides a limited interactive interface for process "
+"manipulation as well as a much more extensive interface for personal "
+"configuration \\*(Em encompassing every aspect of its operation. And while "
+"\\*(WE is referred to throughout this document, you are free to name the "
+"program anything you wish. That new name, possibly an alias, will then be "
+"reflected on \\*(We's display and used when reading and writing a \\*(CF."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:95
+#, no-wrap
+msgid "OVERVIEW"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:98
+#, no-wrap
+msgid "Documentation"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:101
+msgid "The remaining Table of Contents"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:141
+#, no-wrap
+msgid ""
+" OVERVIEW\n"
+" Operation\n"
+" Linux Memory Types\n"
+" 1. COMMAND-LINE Options\n"
+" 2. SUMMARY Display\n"
+" a. UPTIME and LOAD Averages\n"
+" b. TASK and CPU States\n"
+" c. MEMORY Usage\n"
+" 3. FIELDS / Columns Display\n"
+" a. DESCRIPTIONS of Fields\n"
+" b. MANAGING Fields\n"
+" 4. INTERACTIVE Commands\n"
+" a. GLOBAL Commands\n"
+" b. SUMMARY AREA Commands\n"
+" c. TASK AREA Commands\n"
+" 1. Appearance\n"
+" 2. Content\n"
+" 3. Size\n"
+" 4. Sorting\n"
+" d. COLOR Mapping\n"
+" 5. ALTERNATE-DISPLAY Provisions\n"
+" a. WINDOWS Overview\n"
+" b. COMMANDS for Windows\n"
+" c. SCROLLING a Window\n"
+" d. SEARCHING in a Window\n"
+" e. FILTERING in a Window\n"
+" 6. FILES\n"
+" a. PERSONAL Configuration File\n"
+" b. ADDING INSPECT Entries\n"
+" c. SYSTEM Configuration File\n"
+" d. SYSTEM Restrictions File\n"
+" 7. ENVIRONMENT VARIABLE(S)\n"
+" 8. STUPID TRICKS Sampler\n"
+" a. Kernel Magic\n"
+" b. Bouncing Windows\n"
+" c. The Big Bird Window\n"
+" d. The Ol' Switcheroo\n"
+" 9. BUGS, 10. SEE Also\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:144
+#, no-wrap
+msgid "Operation"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:150
+msgid ""
+"When operating \\*(We, the two most important keys are the help (h or ?) "
+"key and quit (`q') key. Alternatively, you could simply use the traditional "
+"interrupt key (^C) when you're done."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:157
+msgid ""
+"When started for the first time, you'll be presented with these traditional "
+"elements on the main \\*(We screen: 1) Summary Area; 2) Fields/Columns "
+"Header; 3) Task Area. Each of these will be explored in the sections that "
+"follow. There is also an Input/Message line between the Summary Area and "
+"Columns Header which needs no further explanation."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:165
+msgid ""
+"The main \\*(We screen is I<generally> quite adaptive to changes in terminal "
+"dimensions under X-Windows. Other \\*(We screens may be less so, especially "
+"those with static text. It ultimately depends, however, on your particular "
+"window manager and terminal emulator. There may be occasions when their "
+"view of terminal size and current contents differs from \\*(We's view, which "
+"is always based on operating system calls."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:170
+msgid ""
+"Following any re-size operation, if a \\*(We screen is corrupted, appears "
+"incomplete or disordered, simply typing something innocuous like a "
+"punctuation character or cursor motion key will usually restore it. In "
+"extreme cases, the following sequence almost certainly will:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:175
+#, no-wrap
+msgid ""
+" I<key/cmd objective >\n"
+" ^Z B<suspend> \\*(We\n"
+" fg B<resume> \\*(We\n"
+" E<lt>LeftE<gt> force a screen B<redraw> (if necessary)\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:179
+msgid ""
+"But if the display is still corrupted, there is one more step you could "
+"try. Insert this command after \\*(We has been suspended but before "
+"resuming it."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:182
+#, no-wrap
+msgid ""
+" I<key/cmd objective >\n"
+" reset restore your B<terminal settings>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:192
+msgid ""
+"\\*(NT the width of \\*(We's display will be limited to \\*(WX positions. "
+"Displaying all fields requires \\*(WF characters. Remaining screen width is "
+"usually allocated to any variable width columns currently visible. The "
+"variable width columns, such as COMMAND, are noted in topic 3a. DESCRIPTIONS "
+"of Fields. Actual output width may also be influenced by the -w switch, "
+"which is discussed in topic 1. COMMAND-LINE Options."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:197
+msgid ""
+"Lastly, some of \\*(We's screens or functions require the use of cursor "
+"motion keys like the standard \\*(KAs plus the Home, End, PgUp and PgDn "
+"keys. If your terminal or emulator does not provide those keys, the "
+"following combinations are accepted as alternatives:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:207
+#, no-wrap
+msgid ""
+" I< key equivalent-keys >\n"
+" Left alt +B< h >\n"
+" Down alt +B< j >\n"
+" Up alt +B< k >\n"
+" Right alt +B< l >\n"
+" Home alt + ctrl +B< h >\n"
+" PgDn alt + ctrl +B< j >\n"
+" PgUp alt + ctrl +B< k >\n"
+" End alt + ctrl +B< l >\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:214
+msgid ""
+"The B<Up> and B<Down> \\*(KAs have special significance when prompted for "
+"line input terminated with the E<lt>EnterE<gt> key. Those keys, or their "
+"aliases, can be used to retrieve previous input lines which can then be "
+"edited and re-input. And there are four additional keys available with line "
+"oriented input."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:222
+#, no-wrap
+msgid ""
+" I< key special-significance >\n"
+" Up recall B<older> strings for re-editing\n"
+" Down recall B<newer> strings or B<erase> entire line\n"
+" Insert toggle between B<insert> and B<overtype> modes\n"
+" Delete character B<removed> at cursor, moving others left\n"
+" Home jump to B<beginning> of input line\n"
+" End jump to B<end> of input line\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:225
+#, no-wrap
+msgid "Linux Memory Types"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:234
+msgid ""
+"For our purposes there are three types of memory, and one is optional. "
+"First is \\*(MP, a limited resource where code and data must reside when "
+"executed or referenced. Next is the optional \\*(MS, where modified (dirty) "
+"memory can be saved and later retrieved if too many demands are made on "
+"\\*(MP. Lastly we have \\*(MV, a nearly unlimited resource serving the "
+"following goals:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:240
+#, no-wrap
+msgid ""
+" 1. abstraction, free from physical memory addresses/limits\n"
+" 2. isolation, every process in a separate address space\n"
+" 3. sharing, a single mapping can serve multiple needs\n"
+" 4. flexibility, assign a virtual address to a file\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:249
+msgid ""
+"Regardless of which of these forms memory may take, all are managed as pages "
+"(typically 4096 bytes) but expressed by default in \\*(We as KiB "
+"(kibibyte). The memory discussed under topic `2c. MEMORY Usage' deals with "
+"\\*(MP and the \\*(MS for the system as a whole. The memory reviewed in "
+"topic `3. FIELDS / Columns Display' embraces all three memory types, but for "
+"individual processes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:255
+msgid ""
+"For each such process, every memory page is restricted to a single quadrant "
+"from the table below. Both \\*(MP and \\*(MV can include any of the four, "
+"while the \\*(MS only includes #1 through #3. The memory in quadrant #4, "
+"when modified, acts as its own dedicated \\*(MS."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:267
+#, no-wrap
+msgid ""
+" B<Private> | B<Shared>\n"
+" B<1> | B<2>\n"
+" B<Anonymous> . stack |\n"
+" . malloc() |\n"
+" . brk()/sbrk() | . POSIX shm*\n"
+" . mmap(PRIVATE, ANON) | . mmap(SHARED, ANON)\n"
+" -----------------------+----------------------\n"
+" . mmap(PRIVATE, fd) | . mmap(SHARED, fd)\n"
+" B<File-backed> . pgms/shared libs |\n"
+" B<3> | B<4>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:271
+msgid ""
+"The following may help in interpreting process level memory values displayed "
+"as scalable columns and discussed under topic `3a. DESCRIPTIONS of Fields'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:288
+#, no-wrap
+msgid ""
+" %MEM - simply RES divided by total \\*(MP\n"
+" CODE - the `pgms' portion of quadrant B<3>\n"
+" DATA - the entire quadrant B<1> portion of VIRT plus all\n"
+" explicit mmap file-backed pages of quadrant B<3>\n"
+" RES - anything occupying \\*(MP which, beginning with\n"
+" Linux-4.5, is the sum of the following three fields:\n"
+" RSan - quadrant B<1> pages, which include any\n"
+" former quadrant B<3> pages if modified\n"
+" RSfd - quadrant B<3> and quadrant B<4> pages\n"
+" RSsh - quadrant B<2> pages\n"
+" RSlk - subset of RES which cannot be swapped out (any quadrant)\n"
+" SHR - subset of RES (excludes B<1>, includes all B<2> & B<4>, some "
+"B<3>)\n"
+" SWAP - potentially any quadrant except B<4>\n"
+" USED - simply the sum of RES and SWAP\n"
+" VIRT - everything in-use and/or reserved (all quadrants)\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:293
+msgid ""
+"\\*(NT Even though program images and shared libraries are considered "
+"I<private> to a process, they will be accounted for as I<shared> (SHR) by "
+"the kernel."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:295
+#, no-wrap
+msgid "1. COMMAND-LINE Options"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:299
+msgid "MandatoryI< arguments> to long options are mandatory for short options too."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:302
+msgid ""
+"Although not required, the equals sign can be used with either option form "
+"and whitespace before and/or after the `=' is permitted."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:303
+#, no-wrap
+msgid "-B<b>, B<--batch>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:309
+msgid ""
+"Starts \\*(We in Batch mode, which could be useful for sending output from "
+"\\*(We to other programs or to a file. In this mode, \\*(We will not accept "
+"input and runs until the iterations limit you've set with the `-n' \\*(CO or "
+"until killed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:310
+#, no-wrap
+msgid "-B<c>, B<--cmdline-toggle>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:316
+msgid ""
+"Starts \\*(We with the last remembered `c' state reversed. Thus, if \\*(We "
+"was displaying command lines, now that field will show program names, and "
+"vice versa. \\*(XC `c' \\*(CI for additional information."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:317
+#, no-wrap
+msgid "-B<d>, B<--delay> = I<SECS> [I<.TENTHS>]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:322
+msgid ""
+"Specifies the delay between screen updates, and overrides the corresponding "
+"value in one's personal \\*(CF or the startup default. Later this can be "
+"changed with the `d' or `s' \\*(CIs."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:327
+msgid ""
+"Fractional seconds are honored, but a negative number is not allowed. In "
+"all cases, however, such changes are prohibited if \\*(We is running in "
+"Secure mode, except for root (unless the `s' \\*(CO was used). For "
+"additional information on Secure mode \\*(Xt 6d. SYSTEM Restrictions File."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:328
+#, no-wrap
+msgid "-B<E>, B<--scale-summary-mem> = I<k> | I<m> | I<g> | I<t> | I<p> | I<e>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:331
+msgid "Instructs \\*(We to force \\*(SA memory to be scaled as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:338
+#, no-wrap
+msgid ""
+" k - kibibytes\n"
+" m - mebibytes\n"
+" g - gibibytes\n"
+" t - tebibytes\n"
+" p - pebibytes\n"
+" e - exbibytes\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:341
+msgid "Later this can be changed with the `E' \\*(CT."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:342
+#, no-wrap
+msgid "-B<e>, B<--scale-task-mem> = I<k> | I<m> | I<g> | I<t> | I<p>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:345
+msgid "Instructs \\*(We to force \\*(TA memory to be scaled as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:351
+#, no-wrap
+msgid ""
+" k - kibibytes\n"
+" m - mebibytes\n"
+" g - gibibytes\n"
+" t - tebibytes\n"
+" p - pebibytes\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:354
+msgid "Later this can be changed with the `e' \\*(CT."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:355
+#, no-wrap
+msgid "-B<H>, B<--threads-show>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:360
+msgid ""
+"Instructs \\*(We to display individual threads. Without this \\*(CO a "
+"summation of all threads in each process is shown. Later this can be "
+"changed with the `H' \\*(CI."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:361
+#, no-wrap
+msgid "-B<h>, B<--help>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:364
+msgid "Display usage help text, then quit."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:365
+#, no-wrap
+msgid "-B<i>, B<--idle-toggle>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:372
+msgid ""
+"Starts \\*(We with the last remembered `i' state reversed. When this toggle "
+"is \\*F, tasks that have not used any \\*(PU since the last update will not "
+"be displayed. For additional information regarding this toggle \\*(Xt "
+"4c. TASK AREA Commands, SIZE."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:373
+#, no-wrap
+msgid "-B<n>, B<--iterations> = I<NUMBER>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:377
+msgid ""
+"Specifies the maximum number of iterations, or frames, \\*(We should produce "
+"before ending."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:378
+#, no-wrap
+msgid "-B<O>, B<--list-fields>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:384
+msgid ""
+"This option acts as a form of help for the -o option shown below. It will "
+"cause \\*(We to print each of the available field names on a separate line, "
+"then quit. Such names are subject to NLS (National Language Support) "
+"translation."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:385
+#, no-wrap
+msgid "-B<o>, B<--sort-override> = I<FIELDNAME>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:393
+msgid ""
+"Specifies the name of the field on which tasks will be sorted, independent "
+"of what is reflected in the configuration file. You can prepend a `+' or "
+"`-' to the field name to also override the sort direction. A leading `+' "
+"will force sorting high to low, whereas a `-' will ensure a low to high "
+"ordering."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:396
+msgid ""
+"This option exists primarily to support automated/scripted batch mode "
+"operation."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:397
+#, no-wrap
+msgid ""
+"-B<p>, B<--pid> = I<PIDLIST> (as: I<1>,I<2>,I<3>, ... or -pI<1> -pI<2> "
+"-pI<3> ...)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:403
+msgid ""
+"Monitor only processes with specified process IDs. However, when combined "
+"with Threads mode (`H'), all processes in the thread group (\\*(Xa TGID) of "
+"each monitored PID will also be shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:407
+msgid ""
+"This option can be given up to 20 times, or you can provide a comma "
+"delimited list with up to 20 pids. Co-mingling both approaches is "
+"permitted."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:410
+msgid ""
+"A pid value of zero will be treated as the process id of the \\*(We program "
+"itself once it is running."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:414
+msgid ""
+"This is a \\*(CO only and should you wish to return to normal operation, it "
+"is not necessary to quit and restart \\*(We \\*(Em just issue any of these "
+"\\*(CIs: `=', `u' or `U'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:416
+msgid "The `p', `u' and `U' \\*(COs are mutually exclusive."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:417
+#, no-wrap
+msgid "-B<S>, B<--accum-time-toggle>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:423
+msgid ""
+"Starts \\*(We with the last remembered `S' state reversed. When Cumulative "
+"time mode is \\*O, each process is listed with the \\*(Pu time that it and "
+"its dead children have used. \\*(XC `S' \\*(CI for additional information "
+"regarding this mode."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:424
+#, no-wrap
+msgid "-B<s>, B<--secure-mode>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:429
+msgid ""
+"Starts \\*(We with secure mode forced, even for root. This mode is far "
+"better controlled through a system \\*(CF (\\*(Xt 6. FILES)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:430
+#, no-wrap
+msgid "-B<U>, B<--filter-any-user> = I<USER> (as: I<number> or I<name>)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:435
+msgid ""
+"Display only processes with a user id or user name matching that given. "
+"This option matches onI< any> user (I<real>, I<effective>, I<saved>, or "
+"I<filesystem>)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:438 ../man/top.1:448
+msgid ""
+"Prepending an exclamation point (`!') to the user id or name instructs "
+"\\*(We to display only processes with users not matching the one provided."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:440 ../man/top.1:450
+msgid "The `p', `U' and `u' \\*(COs are mutually exclusive."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:441
+#, no-wrap
+msgid "-B<u>, B<--filter-only-euser> = I<USER> (as: I<number> or I<name>)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:445
+msgid ""
+"Display only processes with a user id or user name matching that given. "
+"This option matches on theI< effective> user id only."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:451
+#, no-wrap
+msgid "-B<V>, B<--version>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:454
+msgid "Display version information, then quit."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:455
+#, no-wrap
+msgid "-B<w>, B<--width> [=I<COLUMNS>]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:462
+msgid ""
+"In Batch mode, when used without an argument \\*(We will format output using "
+"the COLUMNS= and LINES= environment variables, if set. Otherwise, width "
+"will be fixed at the maximum \\*(WX columns. With an argument, output width "
+"can be decreased or increased (up to \\*(WX) but the number of rows is "
+"considered unlimited."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:468
+msgid ""
+"In normal display mode, when used without an argument \\*(We willI< attempt> "
+"to format output using the COLUMNS= and LINES= environment variables, if "
+"set. With an argument, output width can only be decreased, not increased. "
+"Whether using environment variables or an argument with -w, whenI< not> in "
+"Batch mode actual terminal dimensions can never be exceeded."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:471
+msgid ""
+"\\*(NT Without the use of this \\*(CO, output width is always based on the "
+"terminal at which \\*(We was invoked whether or not in Batch mode."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:472
+#, no-wrap
+msgid "-B<1>, B<--single-cpu-toggle>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:478
+msgid ""
+"Starts \\*(We with the last remembered Cpu States portion of the \\*(SA "
+"reversed. Either all \\*(Pu information will be displayed in a single line "
+"or each \\*(Pu will be displayed separately, depending on the state of the "
+"NUMA Node \\*(CT (`2')."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:480
+msgid "\\*(XC `1' and `2' \\*(CIs for additional information."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:482
+#, no-wrap
+msgid "2. SUMMARY Display"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:488
+msgid ""
+"Each of the following three areas are individually controlled through one or "
+"more \\*(CIs. \\*(XT 4b. SUMMARY AREA Commands for additional information "
+"regarding these provisions."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:490
+#, no-wrap
+msgid "2a. UPTIME and LOAD Averages"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:493
+msgid "This portion consists of a single line containing:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:498
+#, no-wrap
+msgid ""
+" B<program> orB< window> name, depending on display mode\n"
+" current time and length of time since last boot\n"
+" total number of users\n"
+" system load avg over the last 1, 5 and 15 minutes\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:501
+#, no-wrap
+msgid "2b. TASK and CPU States"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:506
+msgid ""
+"This portion consists of a minimum of two lines. In an SMP environment, "
+"additional lines can reflect individual \\*(PU state percentages."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:510
+msgid ""
+"Line 1 shows totalB< tasks> orB< threads>, depending on the state of the "
+"Threads-mode toggle. That total is further classified as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:512
+#, no-wrap
+msgid " running; sleeping; stopped; zombie\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:516
+msgid ""
+"Line 2 shows \\*(PU state percentages based on the interval since the last "
+"refresh."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:519
+msgid ""
+"As a default, percentages for these individual categories are displayed. "
+"Depending on your kernel version, the B<st> field may not be shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:528
+#, no-wrap
+msgid ""
+" B<us> : time running un-niced user processes\n"
+" B<sy> : time running kernel processes\n"
+" B<ni> : time running niced user processes\n"
+" B<id> : time spent in the kernel idle handler\n"
+" B<wa> : time waiting for I/O completion\n"
+" B<hi> : time spent servicing hardware interrupts\n"
+" B<si> : time spent servicing software interrupts\n"
+" B<st> : time stolen from this vm by the hypervisor\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:532
+msgid ""
+"The `sy' value above also reflects the time running a virtual \\*(Pu for "
+"guest operating systems, including those that have been niced."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:536
+msgid ""
+"Beyond the first tasks/threads line, there are alternate \\*(PU display "
+"modes available via the 4-way `t' \\*(CT. They show an abbreviated summary "
+"consisting of these elements:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:539
+#, no-wrap
+msgid ""
+" a b c d\n"
+" %Cpu(s): B<75.0>/25.0 B<100>[ ... ]\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:546
+msgid ""
+"Where: a) is the `user' (us + ni) percentage; b) is the `system' (sy + hi + "
+"si + guests) percentage; c) is the total percentage; and d) is one of two "
+"visual graphs of those representations. Such graphs also reflect separate "
+"`user' and `system' portions."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:551
+msgid ""
+"If the `4' \\*(CT is used to yield more than two cpus per line, results will "
+"be further abridged eliminating the a) and b) elements. However, that "
+"information is still reflected in the graph itself assuming color is active "
+"or, if not, bars vs. blocks are being shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:554
+msgid ""
+"\\*(XT 4b. SUMMARY AREA Commands for additional information on the `t' and "
+"`4' \\*(CTs."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:556
+#, no-wrap
+msgid "2c. MEMORY Usage"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:561
+msgid ""
+"This portion consists of two lines which may express values in kibibytes "
+"(KiB) through exbibytes (EiB) depending on the scaling factor enforced with "
+"the `E' \\*(CI. The /proc/meminfo source fields are shown in parenthesis."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:563
+msgid "Line 1 reflects \\*(MP, classified as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:568
+#, no-wrap
+msgid ""
+" total ( MemTotal )\n"
+" free ( MemFree )\n"
+" used ( MemTotal - MemAvailable )\n"
+" buff/cache ( Buffers + Cached + SReclaimable )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:571
+msgid "Line 2 reflects mostly \\*(MV, classified as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:576
+#, no-wrap
+msgid ""
+" total ( SwapTotal )\n"
+" free ( SwapFree )\n"
+" used ( SwapTotal - SwapFree )\n"
+" avail ( MemAvailable, which is \\*(MP )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:584
+msgid ""
+"The B<avail> number on line 2 is an estimation of \\*(MP available for "
+"starting new applications, without swapping. Unlike the B<free> field, it "
+"attempts to account for readily reclaimable page cache and memory slabs. It "
+"is available on kernels 3.14, emulated on kernels 2.6.27+, otherwise the "
+"same as B<free>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:587
+msgid ""
+"In the alternate memory display modes, two abbreviated summary lines are "
+"shown consisting of these elements:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:591
+#, no-wrap
+msgid ""
+" a b c\n"
+" GiB Mem : B<18.7>/15.738 [ ... ]\n"
+" GiB Swap: B< 0.0>/7.999 [ ... ]\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:595
+msgid ""
+"Where: a) is the percentage used; b) is the total available; and c) is one "
+"of two visual graphs of those representations."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:602
+msgid ""
+"In the case of \\*(MP, the percentage represents the B<total> minus the "
+"estimated B<avail> noted above. The `Mem' graph itself is divided between "
+"the non-cached portion of B<used> and any remaining memory not otherwise "
+"accounted for by B<avail>. \\*(XT 4b. SUMMARY AREA Commands and the `m' "
+"command for additional information on that special 4-way toggle."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:604
+msgid "This table may help in interpreting the scaled values displayed:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:611
+#, no-wrap
+msgid ""
+" KiB = kibibyte = 1024 bytes\n"
+" MiB = mebibyte = 1024 KiB = 1,048,576 bytes\n"
+" GiB = gibibyte = 1024 MiB = 1,073,741,824 bytes\n"
+" TiB = tebibyte = 1024 GiB = 1,099,511,627,776 bytes\n"
+" PiB = pebibyte = 1024 TiB = 1,125,899,906,842,624 bytes\n"
+" EiB = exbibyte = 1024 PiB = 1,152,921,504,606,846,976 bytes\n"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:614
+#, no-wrap
+msgid "3. FIELDS / Columns"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:617
+#, no-wrap
+msgid "3a. DESCRIPTIONS of Fields"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:623
+msgid ""
+"Listed below are \\*(We's available process fields (columns). They are "
+"shown in strict ascii alphabetical order. You may customize their position "
+"and whether or not they are displayable with the `f' (Fields Management) "
+"\\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:628
+msgid ""
+"Any field is selectable as the sort field, and you control whether they are "
+"sorted high-to-low or low-to-high. For additional information on sort "
+"provisions \\*(Xt 4c. TASK AREA Commands, SORTING."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:634
+msgid ""
+"The fields related to \\*(MP or \\*(MV reference `(KiB)' which is the "
+"unsuffixed display mode. Such fields may, however, be scaled from KiB "
+"through PiB. That scaling is influenced via the `e' \\*(CI or established "
+"for startup through a build option."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:635
+#, no-wrap
+msgid "B<%CPU \\*(Em \\*(PU Usage >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:639
+msgid ""
+"The task's share of the elapsed \\*(PU time since the last screen update, "
+"expressed as a percentage of total \\*(PU time."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:644
+msgid ""
+"In a true SMP environment, if a process is multi-threaded and \\*(We is "
+"I<not> operating in Threads mode, amounts greater than 100% may be "
+"reported. You toggle Threads mode with the `H' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:649
+msgid ""
+"Also for multi-processor environments, if Irix mode is \\*F, \\*(We will "
+"operate in Solaris mode where a task's \\*(Pu usage will be divided by the "
+"total number of \\*(PUs. You toggle Irix/Solaris modes with the `I' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:655
+msgid ""
+"\\*(NT When running in forest view mode (`V') with children collapsed (`v'), "
+"this field will also include the \\*(PU time of those unseen children. "
+"\\*(XT 4c. TASK AREA Commands, CONTENT for more information regarding the "
+"`V' and `v' toggles."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:656
+#, no-wrap
+msgid "B<%CUC \\*(Em \\*(PU Utilization >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:660
+msgid ""
+"This field is identical to %CUU below, except the percentage also reflects "
+"reaped child processes."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:661
+#, no-wrap
+msgid "B<%CUU \\*(Em \\*(PU Utilization >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:665
+msgid ""
+"A task's total \\*(PU usage divided by its elapsed running time, expressed "
+"as a percentage."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:670
+msgid ""
+"If a process currently displays high \\*(PU usage, this field can help "
+"determine if such behavior is normal. Conversely, if a process has low "
+"\\*(PU usage currently, %CUU may reflect historically higher demands over "
+"its lifetime."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:671
+#, no-wrap
+msgid "B<%MEM \\*(Em Memory Usage (RES) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:674
+msgid "A task's currently resident share of available \\*(MP."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:676 ../man/top.1:737 ../man/top.1:770 ../man/top.1:943
+#: ../man/top.1:1004 ../man/top.1:1057 ../man/top.1:1102 ../man/top.1:1122
+msgid "\\*(XX."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:677
+#, no-wrap
+msgid "B<AGID \\*(Em Autogroup Identifier >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:682
+msgid ""
+"The autogroup identifier associated with a process. This feature operates "
+"in conjunction with the CFS scheduler to improve interactive desktop "
+"performance."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:691
+msgid ""
+"When /proc/sys/kernel/sched_autogroup_enabled is set, a new autogroup is "
+"created with each new session (\\*(Xa SID). All subsequently forked "
+"processes in that session inherit membership in this autogroup. The kernel "
+"then attempts to equalize distribution of CPU cycles across such groups. "
+"Thus, an autogroup with many \\*(PU intensive processes (e.g make -j) will "
+"not dominate an autogroup with only one or two processes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:693
+msgid "When -1 is displayed it means this information is not available."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:694
+#, no-wrap
+msgid "B<AGNI \\*(Em Autogroup Nice Value >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:700
+msgid ""
+"The autogroup nice value which affects scheduling of all processes in that "
+"group. A negative nice value means higher priority, whereas a positive nice "
+"value means lower priority."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:701
+#, no-wrap
+msgid "B<CGNAME \\*(Em Control Group Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:705
+msgid ""
+"The name of the control group to which a process belongs, or `-' if not "
+"applicable for that process."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:709
+msgid ""
+"This will typically be the last entry in the full list of control groups as "
+"shown under the next heading (CGROUPS). And as is true there, this field is "
+"also variable width."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:710
+#, no-wrap
+msgid "B<CGROUPS \\*(Em Control Groups >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:714
+msgid ""
+"The names of the control group(s) to which a process belongs, or `-' if not "
+"applicable for that process."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:719
+msgid ""
+"Control Groups provide for allocating resources (cpu, memory, network "
+"bandwidth, etc.) among installation-defined groups of processes. They "
+"enable fine-grained control over allocating, denying, prioritizing, managing "
+"and monitoring those resources."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:723
+msgid ""
+"Many different hierarchies of cgroups can exist simultaneously on a system "
+"and each hierarchy is attached to one or more subsystems. A subsystem "
+"represents a single resource."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:730
+msgid ""
+"\\*(NT The CGROUPS field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters). Even so, such "
+"variable width fields could still suffer truncation. \\*(XT 5c. SCROLLING a "
+"Window for additional information on accessing any truncated data."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:731
+#, no-wrap
+msgid "B<CODE \\*(Em Code Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:735
+msgid ""
+"The amount of \\*(MP currently devoted to executable code, also known as the "
+"Text Resident Set size or TRS."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:738
+#, no-wrap
+msgid "B<COMMAND \\*(Em Command Name> or CommandB< Line >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:744
+msgid ""
+"Display the command line used to start a task or the name of the associated "
+"program. You toggle between commandI< line> andI< name> with `c', which is "
+"both a \\*(CO and an \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:749
+#, no-wrap
+msgid ""
+"When you've chosen to display command lines, processes without a command\n"
+"line (like kernel threads) will be shown with only the program name in\n"
+"brackets, as in this example:\n"
+" [kthreadd]\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:752
+msgid ""
+"This field may also be impacted by the forest view display mode. \\*(XC `V' "
+"\\*(CI for additional information regarding that mode."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:761
+msgid ""
+"\\*(NT The COMMAND field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters). Even so, such "
+"variable width fields could still suffer truncation. This is especially "
+"true for this field when command lines are being displayed (the `c' \\*(CI.) "
+"\\*(XT 5c. SCROLLING a Window for additional information on accessing any "
+"truncated data."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:762
+#, no-wrap
+msgid "B<DATA \\*(Em Data + Stack Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:768
+msgid ""
+"The amount of private memory I<reserved> by a process. It is also known as "
+"the Data Resident Set or DRS. Such memory may not yet be mapped to \\*(MP "
+"(RES) but will always be included in the \\*(MV (VIRT) amount."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:771
+#, no-wrap
+msgid "B<ELAPSED \\*(Em Elapsed Running Time>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:775
+msgid ""
+"The length of time since a process was started. Thus, the most recently "
+"started task will display the smallest time interval."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:780
+msgid ""
+"The value will be expressed as `HH,MM' (hours,minutes) but is subject to "
+"additional scaling if the interval becomes too great to fit column width. "
+"At that point it will be scaled to `DD+HH' (days+hours) and possibly beyond."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:781
+#, no-wrap
+msgid "B<ENVIRON \\*(Em Environment variables >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:787
+msgid ""
+"Display all of the environment variables, if any, as seen by the respective "
+"processes. These variables will be displayed in their raw native order, not "
+"the sorted order you are accustomed to seeing with an unqualified `set'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:795
+msgid ""
+"\\*(NT The ENVIRON field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters). Even so, such "
+"variable width fields could still suffer truncation. This is especially "
+"true for this field. \\*(XT 5c. SCROLLING a Window for additional "
+"information on accessing any truncated data."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:796
+#, no-wrap
+msgid "B<EXE \\*(Em Executable Path >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:800
+msgid ""
+"Where available, this is the full path to the executable, including the "
+"program name."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:804
+msgid ""
+"\\*(NT The EXE field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:805
+#, no-wrap
+msgid "B<Flags \\*(Em Task Flags >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:810
+msgid ""
+"This column represents the task's current scheduling flags which are "
+"expressed in hexadecimal notation and with zeros suppressed. These flags "
+"are officially documented in E<lt>linux/sched.hE<gt>."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:811
+#, no-wrap
+msgid "B<GID \\*(Em Group Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:814
+msgid "TheI< effective> group ID."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:815
+#, no-wrap
+msgid "B<GROUP \\*(Em Group Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:818
+msgid "TheI< effective> group name."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:819
+#, no-wrap
+msgid "B<LOGID \\*(Em Login User Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:823
+msgid ""
+"The user ID used atI< login>. When -1 is displayed it means this "
+"information is not available."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:824
+#, no-wrap
+msgid "B<LXC \\*(Em Lxc Container Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:828
+msgid ""
+"The name of the lxc container within which a task is running. If a process "
+"is not running inside a container, a dash (`-') will be shown."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:829
+#, no-wrap
+msgid "B<NI \\*(Em Nice Value >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:836
+msgid ""
+"The nice value of the task. A negative nice value means higher priority, "
+"whereas a positive nice value means lower priority. Zero in this field "
+"simply means priority will not be adjusted in determining a task's "
+"dispatch-ability."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:840
+msgid ""
+"\\*(NT This value only affects scheduling priority relative to other "
+"processes in the same autogroup. \\*(XC `AGID' and `AGNI' fields for "
+"additional information on autogroups."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:841
+#, no-wrap
+msgid "B<NU \\*(Em Last known NUMA node >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:845
+msgid ""
+"A number representing the NUMA node associated with the last used processor "
+"(`P'). When -1 is displayed it means that NUMA information is not "
+"available."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:847
+msgid ""
+"\\*(XC `2' and `3' \\*(CIs for additional NUMA provisions affecting the "
+"\\*(SA."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:848
+#, no-wrap
+msgid "B<OOMa \\*(Em Out of Memory Adjustment Factor >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:853
+msgid ""
+"The value, ranging from -1000 to +1000, added to the current out of memory "
+"score (OOMs) which is then used to determine which task to kill when memory "
+"is exhausted."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:854
+#, no-wrap
+msgid "B<OOMs \\*(Em Out of Memory Score >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:859
+msgid ""
+"The value, ranging from 0 to +1000, used to select task(s) to kill when "
+"memory is exhausted. Zero translates to `never kill' whereas 1000 means "
+"`always kill'."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:860
+#, no-wrap
+msgid "B<P \\*(Em Last used \\*(PU (SMP) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:868
+msgid ""
+"A number representing the last used processor. In a true SMP environment "
+"this will likely change frequently since the kernel intentionally uses weak "
+"affinity. Also, the very act of running \\*(We may break this weak affinity "
+"and cause more processes to change \\*(PUs more often (because of the extra "
+"demand for \\*(Pu time)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:869
+#, no-wrap
+msgid "B<PGRP \\*(Em Process Group Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:878
+msgid ""
+"Every process is member of a unique process group which is used for "
+"distribution of signals and by terminals to arbitrate requests for their "
+"input and output. When a process is created (forked), it becomes a member "
+"of the process group of its parent. By convention, this value equals the "
+"process ID (\\*(Xa PID) of the first member of a process group, called the "
+"process group leader."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:879
+#, no-wrap
+msgid "B<PID \\*(Em Process Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:884
+msgid ""
+"The task's unique process ID, which periodically wraps, though never "
+"restarting at zero. In kernel terms, it is a dispatchable entity defined by "
+"a task_struct."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:889
+msgid ""
+"This value may also be used as: a process group ID (\\*(Xa PGRP); a session "
+"ID for the session leader (\\*(Xa SID); a thread group ID for the thread "
+"group leader (\\*(Xa TGID); and a TTY process group ID for the process group "
+"leader (\\*(Xa TPGID)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:890
+#, no-wrap
+msgid "B<PPID \\*(Em Parent Process Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:893
+msgid "The process ID (pid) of a task's parent."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:894
+#, no-wrap
+msgid "B<PR \\*(Em Priority >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:899
+msgid ""
+"The scheduling priority of the task. If you see `rt' in this field, it "
+"means the task is running under real time scheduling priority."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:903
+msgid ""
+"Under linux, real time priority is somewhat misleading since traditionally "
+"the operating itself was not preemptible. And while the 2.6 kernel can be "
+"made mostly preemptible, it is not always so."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:904
+#, no-wrap
+msgid "B<PSS \\*(Em Proportional Resident Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:909
+msgid ""
+"The proportion of this task's share of `RSS' where each page is divided by "
+"the number of processes sharing it. It is also the sum of the `PSan', "
+"`PSfd' and `PSsh' fields."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:912
+msgid ""
+"For example, if a process has 1000 resident pages alone and 1000 resident "
+"pages shared with another process, its `PSS' would be 1500 (times page "
+"size)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:914 ../man/top.1:927 ../man/top.1:951 ../man/top.1:1114
+msgid "\\*(ZX."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:917
+msgid "B<PSan \\*(Em Proportional Anonymous Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:919
+msgid "B<PSfd \\*(Em Proportional File Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:921
+msgid "B<PSsh \\*(Em Proportional Shmem Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:925
+msgid ""
+"As was true for `PSS' above (total proportional resident memory), these "
+"fields represent the proportion of this task's share of each type of memory "
+"divided by the number of processes sharing it."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:929
+#, no-wrap
+msgid "B<RES \\*(Em Resident Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:934
+msgid ""
+"A subset of the virtual address space (VIRT) representing the non-swapped "
+"\\*(MP a task is currently using. It is also the sum of the `RSan', `RSfd' "
+"and `RSsh' fields."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:938
+msgid ""
+"It can include private anonymous pages, private pages mapped to files "
+"(including program images and shared libraries) plus shared anonymous "
+"pages. All such memory is backed by the \\*(MS represented separately under "
+"SWAP."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:941
+msgid ""
+"Lastly, this field may also include shared file-backed pages which, when "
+"modified, act as a dedicated \\*(MS and thus will never impact SWAP."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:944
+#, no-wrap
+msgid "B<RSS \\*(Em Resident Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:949
+msgid ""
+"Another, more precise view of process non-swapped \\*(MP. It is obtained "
+"from the `smaps_rollup' file and is generally slightly larger than that "
+"shown for `RES'."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:952
+#, no-wrap
+msgid "B<RSan \\*(Em Resident Anonymous Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:956
+msgid ""
+"A subset of resident memory (RES) representing private pages not mapped to a "
+"file."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:957
+#, no-wrap
+msgid "B<RSfd \\*(Em Resident File-Backed Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:962
+msgid ""
+"A subset of resident memory (RES) representing the implicitly shared pages "
+"supporting program images and shared libraries. It also includes explicit "
+"file mappings, both private and shared."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:963
+#, no-wrap
+msgid "B<RSlk \\*(Em Resident Locked Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:966
+msgid "A subset of resident memory (RES) which cannot be swapped out."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:967
+#, no-wrap
+msgid "B<RSsh \\*(Em Resident Shared Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:971
+msgid ""
+"A subset of resident memory (RES) representing the explicitly shared "
+"anonymous shm*/mmap pages."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:972
+#, no-wrap
+msgid "B<RUID \\*(Em Real User Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:975
+msgid "TheI< real> user ID."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:976
+#, no-wrap
+msgid "B<RUSER \\*(Em Real User Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:979
+msgid "TheI< real> user name."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:980
+#, no-wrap
+msgid "B<S \\*(Em Process Status >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:990
+#, no-wrap
+msgid ""
+"The status of the task which can be one of:\n"
+" B<D> = uninterruptible sleep\n"
+" B<I> = idle\n"
+" B<R> = running\n"
+" B<S> = sleeping\n"
+" B<T> = stopped by job control signal\n"
+" B<t> = stopped by debugger during trace\n"
+" B<Z> = zombie\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:995
+msgid ""
+"Tasks shown as running should be more properly thought of as ready to run "
+"\\*(Em their task_struct is simply represented on the Linux run-queue. Even "
+"without a true SMP machine, you may see numerous tasks in this state "
+"depending on \\*(We's delay interval and nice value."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:996
+#, no-wrap
+msgid "B<SHR \\*(Em Shared Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1002
+msgid ""
+"A subset of resident memory (RES) that may be used by other processes. It "
+"will include shared anonymous pages and shared file-backed pages. It also "
+"includes private pages mapped to files representing program images and "
+"shared libraries."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1005
+#, no-wrap
+msgid "B<SID \\*(Em Session Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1013
+msgid ""
+"A session is a collection of process groups (\\*(Xa PGRP), usually "
+"established by the login shell. A newly forked process joins the session of "
+"its creator. By convention, this value equals the process ID (\\*(Xa PID) "
+"of the first member of the session, called the session leader, which is "
+"usually the login shell."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1014
+#, no-wrap
+msgid "B<STARTED \\*(Em Start Time Interval>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1018
+msgid ""
+"The length of time since system boot when a process started. Thus, the most "
+"recently started task will display the largest time interval."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1022
+msgid ""
+"The value will be expressed as `MM:SS' (minutes:seconds). But if the "
+"interval is too great to fit column width it will be scaled as `HH,MM' "
+"(hours,minutes) and possibly beyond."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1023
+#, no-wrap
+msgid "B<SUID \\*(Em Saved User Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1026
+msgid "TheI< saved> user ID."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1027
+#, no-wrap
+msgid "B<SUPGIDS \\*(Em Supplementary Group IDs >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1032
+msgid ""
+"The IDs of any supplementary group(s) established at login or inherited from "
+"a task's parent. They are displayed in a comma delimited list."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1036
+msgid ""
+"\\*(NT The SUPGIDS field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1037
+#, no-wrap
+msgid "B<SUPGRPS \\*(Em Supplementary Group Names >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1042
+msgid ""
+"The names of any supplementary group(s) established at login or inherited "
+"from a task's parent. They are displayed in a comma delimited list."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1046
+msgid ""
+"\\*(NT The SUPGRPS field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1047
+#, no-wrap
+msgid "B<SUSER \\*(Em Saved User Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1050
+msgid "TheI< saved> user name."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1051
+#, no-wrap
+msgid "B<SWAP \\*(Em Swapped Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1055
+msgid ""
+"The formerly resident portion of a task's address space written to the "
+"\\*(MS when \\*(MP becomes over committed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1058
+#, no-wrap
+msgid "B<TGID \\*(Em Thread Group Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1063
+msgid ""
+"The ID of the thread group to which a task belongs. It is the PID of the "
+"thread group leader. In kernel terms, it represents those tasks that share "
+"an mm_struct."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1064
+#, no-wrap
+msgid "B<TIME \\*(Em \\*(PU Time >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1071
+msgid ""
+"Total \\*(PU time the task has used since it started. When Cumulative mode "
+"is \\*O, each process is listed with the \\*(Pu time that it and its dead "
+"children have used. You toggle Cumulative mode with `S', which is both a "
+"\\*(CO and an \\*(CI. \\*(XC `S' \\*(CI for additional information "
+"regarding this mode."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1072
+#, no-wrap
+msgid "B<TIME+ \\*(Em \\*(PU Time, hundredths >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1076
+msgid ""
+"The same as TIME, but reflecting more granularity through hundredths of a "
+"second."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1077
+#, no-wrap
+msgid "B<TPGID \\*(Em Tty Process Group Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1083
+msgid ""
+"The process group ID of the foreground process for the connected tty, or -1 "
+"if a process is not connected to a terminal. By convention, this value "
+"equals the process ID (\\*(Xa PID) of the process group leader (\\*(Xa "
+"PGRP)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1084
+#, no-wrap
+msgid "B<TTY \\*(Em Controlling Tty >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1091
+msgid ""
+"The name of the controlling terminal. This is usually the device (serial "
+"port, pty, etc.) from which the process was started, and which it uses for "
+"input or output. However, a task need not be associated with a terminal, in "
+"which case you'll see `?' displayed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1092
+#, no-wrap
+msgid "B<UID \\*(Em User Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1095
+msgid "TheI< effective> user ID of the task's owner."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1096
+#, no-wrap
+msgid "B<USED \\*(Em Memory in Use (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1100
+msgid ""
+"This field represents the non-swapped \\*(MP a task is using (RES) plus the "
+"swapped out portion of its address space (SWAP)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1103
+#, no-wrap
+msgid "B<USER \\*(Em User Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1106
+msgid "TheI< effective> user name of the task's owner."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1107
+#, no-wrap
+msgid "B<USS \\*(Em Unique Set Size >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1112
+msgid ""
+"The non-swapped portion of \\*(MP (`RSS') not shared with any other "
+"process. It is derived from the `smaps_rollup' file."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1115
+#, no-wrap
+msgid "B<VIRT \\*(Em Virtual Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1120
+msgid ""
+"The total amount of \\*(MV used by the task. It includes all code, data and "
+"shared libraries plus pages that have been swapped out and pages that have "
+"been mapped but not used."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1123
+#, no-wrap
+msgid "B<WCHAN \\*(Em Sleeping in Function >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1128
+msgid ""
+"This field will show the name of the kernel function in which the task is "
+"currently sleeping. Running tasks will display a dash (`-') in this column."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1129
+#, no-wrap
+msgid "B<ioR \\*(Em I/O Bytes Read >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1132
+msgid "The number of bytes a process caused to be fetched from the storage layer."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1134
+msgid "Root privileges are required to display `io' data for other users."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1135
+#, no-wrap
+msgid "B<ioRop \\*(Em I/O Read Operations >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1139
+msgid ""
+"The number of read I/O operations (syscalls) for a process. Such calls "
+"might not result in actual physical disk I/O."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1140
+#, no-wrap
+msgid "B<ioW \\*(Em I/O Bytes Written >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1143
+msgid "The number of bytes a process caused to be sent to the storage layer."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1144
+#, no-wrap
+msgid "B<ioWop \\*(Em I/O Write Operations >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1148
+msgid ""
+"The number of write I/O operations (syscalls) for a process. Such calls "
+"might not result in actual physical disk I/O."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1149
+#, no-wrap
+msgid "B<nDRT \\*(Em Dirty Pages Count >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1155
+msgid ""
+"The number of pages that have been modified since they were last written to "
+"\\*(AS. Dirty pages must be written to \\*(AS before the corresponding "
+"physical memory location can be used for some other virtual page."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1157
+msgid "This field was deprecated with linux 2.6 and is always zero."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1158
+#, no-wrap
+msgid "B<nMaj \\*(Em Major Page Fault Count >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1165
+msgid ""
+"The number ofB< major> page faults that have occurred for a task. A page "
+"fault occurs when a process attempts to read from or write to a virtual page "
+"that is not currently present in its address space. A major page fault is "
+"when \\*(AS access is involved in making that page available."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1166
+#, no-wrap
+msgid "B<nMin \\*(Em Minor Page Fault count >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1173
+msgid ""
+"The number ofB< minor> page faults that have occurred for a task. A page "
+"fault occurs when a process attempts to read from or write to a virtual page "
+"that is not currently present in its address space. A minor page fault does "
+"not involve \\*(AS access in making that page available."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1174
+#, no-wrap
+msgid "B<nTH \\*(Em Number of Threads >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1177
+msgid "The number of threads associated with a process."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1178
+#, no-wrap
+msgid "B<nsCGROUP \\*(Em CGROUP namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1182
+msgid ""
+"The Inode of the namespace used to hide the identity of the control group of "
+"which process is a member."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1183
+#, no-wrap
+msgid "B<nsIPC \\*(Em IPC namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1187
+msgid ""
+"The Inode of the namespace used to isolate interprocess communication (IPC) "
+"resources such as System V IPC objects and POSIX message queues."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1188
+#, no-wrap
+msgid "B<nsMNT \\*(Em MNT namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1192
+msgid ""
+"The Inode of the namespace used to isolate filesystem mount points thus "
+"offering different views of the filesystem hierarchy."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1193
+#, no-wrap
+msgid "B<nsNET \\*(Em NET namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1197
+msgid ""
+"The Inode of the namespace used to isolate resources such as network "
+"devices, IP addresses, IP routing, port numbers, etc."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1198
+#, no-wrap
+msgid "B<nsPID \\*(Em PID namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1204
+msgid ""
+"The Inode of the namespace used to isolate process ID numbers meaning they "
+"need not remain unique. Thus, each such namespace could have its own "
+"`init/systemd' (PID #1) to manage various initialization tasks and reap "
+"orphaned child processes."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1205
+#, no-wrap
+msgid "B<nsTIME \\*(Em TIME namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1209
+msgid ""
+"The Inode of the namespace which allows processes to see different system "
+"times in a way similar to the UTS namespace."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1210
+#, no-wrap
+msgid "B<nsUSER \\*(Em USER namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1216
+msgid ""
+"The Inode of the namespace used to isolate the user and group ID numbers. "
+"Thus, a process could have a normal unprivileged user ID outside a user "
+"namespace while having a user ID of 0, with full root privileges, inside "
+"that namespace."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1217
+#, no-wrap
+msgid "B<nsUTS \\*(Em UTS namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1221
+msgid ""
+"The Inode of the namespace used to isolate hostname and NIS domain name. "
+"UTS simply means \"UNIX Time-sharing System\"."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1222
+#, no-wrap
+msgid "B<vMj \\*(Em Major Page Fault Count Delta>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1226
+msgid ""
+"The number ofB< major> page faults that have occurred since the last update "
+"(see nMaj)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1227
+#, no-wrap
+msgid "B<vMn \\*(Em Minor Page Fault Count Delta>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1231
+msgid ""
+"The number ofB< minor> page faults that have occurred since the last update "
+"(see nMin)."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1233
+#, no-wrap
+msgid "3b. MANAGING Fields"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1240
+msgid ""
+"After pressing the \\*(CI `f' (Fields Management) you will be presented with "
+"a screen showing: 1) the \\*(CW name; 2) the designated sort field; 3) all "
+"fields in their current order along with descriptions. Entries marked with "
+"an asterisk are the currently displayed fields, screen width permitting."
+msgstr ""
+
+#. type: IP
+#: ../man/top.1:1242 ../man/top.1:1248 ../man/top.1:1253 ../man/top.1:1257
+#: ../man/top.1:1262 ../man/top.1:2687 ../man/top.1:2710 ../man/top.1:2719
+#: ../man/top.1:2735 ../man/top.1:2741 ../man/top.1:2747 ../man/top.1:2757
+#: ../man/top.1:2774
+#, no-wrap
+msgid "\\(bu"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1247
+msgid ""
+"As the on screen instructions indicate, you navigate among the fields with "
+"theB< Up> andB< Down> \\*(KAs. The PgUp, PgDn, Home and End keys can also "
+"be used to quickly reach the first or last available field."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1252
+msgid ""
+"TheB< Right> \\*(KA selects a field for repositioning and theB< Left> \\*(KA "
+"or the E<lt>B<Enter>E<gt> key commits that field's placement."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1256
+msgid ""
+"The `B<d>' key or the E<lt>B<Space>E<gt> bar toggles a field's display "
+"status, and thus the presence or absence of the asterisk."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1261
+msgid ""
+"The `B<s>' key designates a field as the sort field. \\*(XT 4c. TASK AREA "
+"Commands, SORTING for additional information regarding your selection of a "
+"sort field."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1265
+msgid ""
+"The `B<a>' and `B<w>' keys can be used to cycle through all available "
+"windows and the `B<q>' or E<lt>B<Esc>E<gt> keys exit Fields Management."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1274
+msgid ""
+"The Fields Management screen can also be used to change the \\*(CG in either "
+"\\*(FM or \\*(AM. Whatever was targeted when `q' or E<lt>EscE<gt> was "
+"pressed will be made current as you return to the \\*(We display. \\*(XT "
+"5. ALTERNATE-DISPLAY Provisions and the `g' \\*(CI for insight into \\*(CWs "
+"and \\*(FGs."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1281
+msgid ""
+"\\*(NT Any window that has been scrolledI< horizontally> will be reset if "
+"any field changes are made via the Fields Management screen. AnyI< "
+"vertical> scrolled position, however, will not be affected. \\*(XT "
+"5c. SCROLLING a Window for additional information regarding vertical and "
+"horizontal scrolling."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:1283
+#, no-wrap
+msgid "4. INTERACTIVE Commands"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1288
+msgid ""
+"Listed below is a brief index of commands within categories. Some commands "
+"appear more than once \\*(Em their meaning or scope may vary depending on "
+"the context in which they are issued."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1311
+#, no-wrap
+msgid ""
+" 4a.I< Global-Commands >\n"
+" E<lt>Ent/SpE<gt> ?, =, 0,\n"
+" A, B, d, E, e, g, H, h, I, k, q, r, s, W, X, Y, Z,\n"
+" ^G, ^K, ^N, ^P, ^U, ^L, ^R\n"
+" 4b.I< Summary-Area-Commands >\n"
+" C, l, t, m, 1, 2, 3, 4, 5, !\n"
+" 4c.I< Task-Area-Commands >\n"
+" Appearance: b, J, j, x, y, z\n"
+" Content: c, F, f, O, o, S, U, u, V, v, ^E\n"
+" Size: #, i, n\n"
+" Sorting: E<lt>, E<gt>, f, R\n"
+" 4d.I< Color-Mapping >\n"
+" E<lt>RetE<gt>, a, B, b, H, M, q, S, T, w, z, 0 - 7\n"
+" 5b.I< Commands-for-Windows >\n"
+" -, _, =, +, A, a, G, g, w\n"
+" 5c.I< Scrolling-a-Window >\n"
+" C, Up, Dn, Left, Right, PgUp, PgDn, Home, End\n"
+" 5d.I< Searching-in-a-Window >\n"
+" L, &\n"
+" 5e.I< Filtering-in-a-Window\n"
+" O, o, ^O, =, +>\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1314
+#, no-wrap
+msgid "4a. GLOBAL Commands"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1319
+msgid ""
+"The global \\*(CIs areB< always> available in both \\*(FM and \\*(AM. "
+"However, some of these \\*(CIs areB< not available> when running in Secure "
+"mode."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1323
+msgid ""
+"If you wish to know in advance whether or not your \\*(We has been secured, "
+"simply ask for help and view the system summary on the second line."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1324
+#, no-wrap
+msgid "\\ \\ E<lt>B<Enter>E<gt> or E<lt>B<Space>E<gt>\\ \\ :I<Refresh-Display >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1329
+msgid ""
+"These commands awaken \\*(We and following receipt of any input the entire "
+"display will be repainted. They also force an update of any hotplugged "
+"\\*(Pu or \\*(MP changes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1332
+msgid ""
+"Use either of these keys if you have a large delay interval and wish to see "
+"current status,"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1333
+#, no-wrap
+msgid "\\ \\ \\ B<?> | B<h>\\ \\ :I<Help >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1338
+msgid ""
+"There are two help levels available. The first will provide a reminder of "
+"all the basic \\*(CIs. If \\*(We isI< secured>, that screen will be "
+"abbreviated."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1341
+msgid ""
+"Typing `h' or `?' on that help screen will take you to help for those "
+"\\*(CIs applicable to \\*(AM."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1342
+#, no-wrap
+msgid "\\ \\ \\ B<=>\\ \\ :I<Exit-Display-Limits >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1349
+msgid ""
+"Removes restrictions on what is shown. This command will reverse any `i' "
+"(idle tasks), `n' (max tasks), `v' (hide children) and `F' focus commands "
+"that might be active. It also provides for an exit from PID monitoring, "
+"User filtering, Other filtering, Locate processing and Combine Cpus mode."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1352
+msgid ""
+"Additionally, if the window has been scrolled it will be reset with this "
+"command."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1353
+#, no-wrap
+msgid "\\ \\ \\ B<0>\\ \\ :I<Zero-Suppress> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1358
+msgid ""
+"This command determines whether zeros are shown or suppressed for many of "
+"the fields in a \\*(TW. Fields like UID, GID, NI, PR or P are not affected "
+"by this toggle."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1359
+#, no-wrap
+msgid "\\ \\ \\ B<A>\\ \\ :I<Alternate-Display-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1364
+msgid ""
+"This command will switch between \\*(FM and \\*(AM. \\*(XT "
+"5. ALTERNATE-DISPLAY Provisions and the `g' \\*(CI for insight into \\*(CWs "
+"and \\*(FGs."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1365
+#, no-wrap
+msgid "\\ \\ \\ B<B>\\ \\ :I<Bold-Disable/Enable> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1371
+msgid ""
+"This command will influence use of the bold terminfo capability and altersB< "
+"both> the \\*(SA and \\*(TA for the \\*(CW. While it is intended primarily "
+"for use with dumb terminals, it can be applied anytime."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1376
+msgid ""
+"\\*(NT When this toggle is \\*O and \\*(We is operating in monochrome mode, "
+"theB< entire display> will appear as normal text. Thus, unless the `x' "
+"and/or `y' toggles are using reverse for emphasis, there will be no visual "
+"confirmation that they are even on."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1377
+#, no-wrap
+msgid "*\\ \\ B<d> | B<s>\\ \\ :I<Change-Delay-Time-interval >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1381
+msgid ""
+"You will be prompted to enter the delay time, in seconds, between display "
+"updates."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1387
+msgid ""
+"Fractional seconds are honored, but a negative number is not allowed. "
+"Entering 0 causes (nearly) continuous updates, with an unsatisfactory "
+"display as the system and tty driver try to keep up with \\*(We's demands. "
+"The delay value is inversely proportional to system loading, so set it with "
+"care."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1390
+msgid ""
+"If at any time you wish to know the current delay time, simply ask for help "
+"and view the system summary on the second line."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1391
+#, no-wrap
+msgid "\\ \\ \\ B<E>\\ \\ :I<Enforce-Summary-Memory-Scale> in Summary Area"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1396
+msgid ""
+"With this command you can cycle through the available \\*(SA memory scaling "
+"which ranges from KiB (kibibytes or 1,024 bytes) through EiB (exbibytes or "
+"1,152,921,504,606,846,976 bytes)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1400
+msgid ""
+"If you see a `+' between a displayed number and the following label, it "
+"means that \\*(We was forced to truncate some portion of that number. By "
+"raising the scaling factor, such truncation can be avoided."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1401
+#, no-wrap
+msgid "\\ \\ \\ B<e>\\ \\ :I<Enforce-Task-Memory-Scale> in Task Area"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1406
+msgid ""
+"With this command you can cycle through the available \\*(TA memory scaling "
+"which ranges from KiB (kibibytes or 1,024 bytes) through PiB (pebibytes or "
+"1,125,899,906,842,624 bytes)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1413
+msgid ""
+"While \\*(We will try to honor the selected target range, additional scaling "
+"might still be necessary in order to accommodate current values. If you "
+"wish to see a more homogeneous result in the memory columns, raising the "
+"scaling range will usually accomplish that goal. Raising it too high, "
+"however, is likely to produce an all zero result which cannot be suppressed "
+"with the `0' \\*(CI."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1414
+#, no-wrap
+msgid "\\ \\ \\ B<g>\\ \\ :I<Choose-Another-Window/Field-Group >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1420
+msgid ""
+"You will be prompted to enter a number between 1 and 4 designating the "
+"\\*(FG which should be made the \\*(CW. You will soon grow comfortable with "
+"these 4 windows, especially after experimenting with \\*(AM."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1421
+#, no-wrap
+msgid "\\ \\ \\ B<H>\\ \\ :I<Threads-mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1426
+msgid ""
+"When this toggle is \\*O, individual threads will be displayed for all "
+"processes in all visible \\*(TWs. Otherwise, \\*(We displays a summation of "
+"all threads in each process."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1427
+#, no-wrap
+msgid "\\ \\ \\ B<I>\\ \\ :I<Irix/Solaris-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1432
+msgid ""
+"When operating in Solaris mode (`I' toggled \\*F), a task's \\*(Pu usage "
+"will be divided by the total number of \\*(PUs. After issuing this command, "
+"you'll be told the new state of this toggle."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1433
+#, no-wrap
+msgid "*\\ \\ B<k>\\ \\ :I<Kill-a-task >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1436
+msgid "You will be prompted for a PID and then the signal to send."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1440 ../man/top.1:1462
+msgid ""
+"Entering no PID or a negative number will be interpreted as the default "
+"shown in the prompt (the first task displayed). A PID value of zero means "
+"the \\*(We program itself."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1443
+msgid ""
+"The default signal, as reflected in the prompt, is SIGTERM. However, you "
+"can send any signal, via number or name."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1446
+msgid ""
+"If you wish to abort the kill process, do one of the following depending on "
+"your progress:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1450
+#, no-wrap
+msgid ""
+" 1) at the pid prompt, type an invalid number\n"
+" 2) at the signal prompt, type 0 (or any invalid signal)\n"
+" 3) at any prompt, type E<lt>EscE<gt>\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1452
+#, no-wrap
+msgid "\\ \\ \\ B<q>\\ \\ :I<Quit >"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1455
+#, no-wrap
+msgid "*\\ \\ B<r>\\ \\ :I<Renice-a-Task >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1458
+msgid "You will be prompted for a PID and then the value to nice it to."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1468
+msgid ""
+"A positive nice value will cause a process to lose priority. Conversely, a "
+"negative nice value will cause a process to be viewed more favorably by the "
+"kernel. As a general rule, ordinary users can only increase the nice value "
+"and are prevented from lowering it."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1471
+msgid ""
+"If you wish to abort the renice process, do one of the following depending "
+"on your progress:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1475
+#, no-wrap
+msgid ""
+" 1) at the pid prompt, type an invalid number\n"
+" 2) at the nice prompt, type E<lt>EnterE<gt> with no input\n"
+" 3) at any prompt, type E<lt>EscE<gt>\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1477
+#, no-wrap
+msgid "\\ \\ \\ B<W>\\ \\ :I<Write-the-Configuration-File >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1483
+msgid ""
+"This will save all of your options and toggles plus the current display mode "
+"and delay time. By issuing this command just before quitting \\*(We, you "
+"will be able restart later in exactly that same state."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1484
+#, no-wrap
+msgid "\\ \\ \\ B<X>\\ \\ :I<Extra-Fixed-Width >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1489
+msgid ""
+"Some fields are fixed width and not scalable. As such, they are subject to "
+"truncation which would be indicated by a `+' in the last position."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1491
+msgid "This \\*(CI can be used to alter the widths of the following fields:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1503
+#, no-wrap
+msgid ""
+" I< field default field default field default >\n"
+" GID 5 GROUP 8 WCHAN 10\n"
+" LOGID 5 LXC 8 nsCGROUP 10\n"
+" RUID 5 RUSER 8 nsIPC 10\n"
+" SUID 5 SUSER 8 nsMNT 10\n"
+" UID 5 TTY 8 nsNET 10\n"
+" USER 8 nsPID 10\n"
+" nsTIME 10\n"
+" nsUSER 10\n"
+" nsUTS 10\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1508
+msgid ""
+"You will be prompted for the amount to be added to the default widths shown "
+"above. Entering zero forces a return to those defaults."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1511
+msgid ""
+"If you enter a negative number, \\*(We will automatically increase the "
+"column size as needed until there is no more truncated data."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1515
+msgid ""
+"\\*(NT Whether explicitly or automatically increased, the widths for these "
+"fields are never decreased by \\*(We. To narrow them you must specify a "
+"smaller number or restore the defaults."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1516
+#, no-wrap
+msgid "\\ \\ \\ B<Y>\\ \\ :I<Inspect-Other-Output >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1522
+msgid ""
+"After issuing the `Y' \\*(CI, you will be prompted for a target PID. Typing "
+"a value or accepting the default results in a separate screen. That screen "
+"can be used to view a variety of files or piped command output while the "
+"normal \\*(We iterative display is paused."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1526
+msgid ""
+"\\*(NT This \\*(CI is only fully realized when supporting entries have been "
+"manually added to the end of the \\*(We \\*(CF. For details on creating "
+"those entries, \\*(Xt 6b. ADDING INSPECT Entries."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1533
+msgid ""
+"Most of the keys used to navigate the Inspect feature are reflected in its "
+"header prologue. There are, however, additional keys available once you "
+"have selected a particular file or command. They are familiar to anyone who "
+"has used the pager `less' and are summarized here for future reference."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1543
+#, no-wrap
+msgid ""
+" I< key function >\n"
+" = alternate status-line, file or pipeline\n"
+" / find, equivalent to `L' locate\n"
+" n find next, equivalent to `&' locate next\n"
+" E<lt>SpaceE<gt> scroll down, equivalent to E<lt>PgDnE<gt>\n"
+" b scroll up, equivalent to E<lt>PgUpE<gt>\n"
+" g first line, equivalent to E<lt>HomeE<gt>\n"
+" G last line, equivalent to E<lt>EndE<gt>\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1545
+#, no-wrap
+msgid "\\ \\ \\ B<Z>\\ \\ :I<Change-Color-Mapping >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1550
+msgid ""
+"This key will take you to a separate screen where you can change the colors "
+"for the \\*(CW, or for all windows. For details regarding this \\*(CI "
+"\\*(Xt 4d. COLOR Mapping."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1553
+msgid "\\ \\ B<^G>\\ \\ :I<Display-Control-Groups > (Ctrl key + `g')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1555
+msgid "\\ \\ B<^K>\\ \\ :I<Display-Cmdline > (Ctrl key + `k')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1557
+msgid "\\ \\ B<^N>\\ \\ :I<Display-Environment > (Ctrl key + `n')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1559
+msgid "\\ \\ B<^P>\\ \\ :I<Display-Namesspaces > (Ctrl key + `p')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1561
+msgid "\\ \\ B<^U>\\ \\ :I<Display-Supplementary-Groups > (Ctrl key + `u')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1567
+msgid ""
+"Applied to the first process displayed, these commands will show that task's "
+"full (potentially wrapped) information. Such data will be displayed in a "
+"separate window at the bottom of the screen while normal \\*(We monitoring "
+"continues."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1572
+msgid ""
+"Keying theI< same> `Ctrl' command a second time removes that separate window "
+"as does the `=' command. Keying a different `Ctrl' combination, while one "
+"is already active, immediately transitions to the new information."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1577
+msgid ""
+"Notable among these provisions is the Ctrl+N (environment) command. Its "
+"output can be extensive and not easily read when line wrapped. A more "
+"readable version can be achieved with an `Inspect' entry in the rcfile like "
+"the following."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1580
+#, no-wrap
+msgid " pipe ^I Environment ^I cat /proc/%d/environ | tr '\\e0' '\\en'\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1584
+msgid ""
+"\\*(XC `Y' \\*(CI above and topic 6b. ADDING INSPECT Entries for additional "
+"information."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1588
+msgid ""
+"As an alternative to `Inspect', and available to all of these `Ctrl' "
+"commands, the tab key can be used to highlight individual elements in the "
+"bottom window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1590
+#, no-wrap
+msgid "\\ \\ B<^L>\\ \\ :I<Logged-Messages > (Ctrl key + `l')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1596
+msgid ""
+"The 10 most recent messages are displayed in a separate window at the bottom "
+"of the screen while normal \\*(We monitoring continues. Keying `^L' a "
+"second time removes that window as does the `=' command. Use the tab key to "
+"highlight individual messages."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1597
+#, no-wrap
+msgid "*\\ B<^R>\\ \\ :I<Renice-an-Autogroup > (Ctrl key + `r')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1601
+msgid "You will be prompted for a PID and then the value for its autogroup AGNI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1604
+msgid ""
+"Entering no PID will be interpreted as the default shown in the prompt (the "
+"first task displayed)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1610
+msgid ""
+"A positive AGNI value will cause processes in that autogroup to lose "
+"priority. Conversely, a negative value causes them to be viewed more "
+"favorably by the kernel. Ordinary users are not allowed to set negative "
+"AGNI values."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1612
+msgid "If you wish to abort the renice process type E<lt>EscE<gt>."
+msgstr ""
+
+#. type: IP
+#: ../man/top.1:1613 ../man/top.1:2134
+#, no-wrap
+msgid "*"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1616
+msgid ""
+"The commands shown with an \\*(AK are not available in Secure mode, nor will "
+"they be shown on the level-1 help screen."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1618
+#, no-wrap
+msgid "4b. SUMMARY AREA Commands"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1623
+msgid ""
+"The \\*(SA \\*(CIs areB< always available> in both \\*(FM and \\*(AM. They "
+"affect the beginning lines of your display and will determine the position "
+"of messages and prompts."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1627
+msgid ""
+"These commands always impact just the \\*(CG. \\*(XT 5. ALTERNATE-DISPLAY "
+"Provisions and the `g' \\*(CI for insight into \\*(CWs and \\*(FGs."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1628
+#, no-wrap
+msgid "\\ \\ \\ B<C>\\ \\ :I<Show-scroll-coordinates> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1633
+msgid ""
+"Toggle an informational message which is displayed whenever the message line "
+"is not otherwise being used. For additional information \\*(Xt "
+"5c. SCROLLING a Window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1634
+#, no-wrap
+msgid "\\ \\ \\ B<l>\\ \\ :I<Load-Average/Uptime> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1638
+msgid ""
+"This is also the line containing the program name (possibly an alias) when "
+"operating in \\*(FM or the \\*(CW name when operating in \\*(AM."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1639
+#, no-wrap
+msgid "\\ \\ \\ B<t>\\ \\ :I<Task/Cpu-States> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1644
+msgid ""
+"This command affects from 2 to many \\*(SA lines, depending on the state of "
+"the `1', `2' or `3' \\*(CTs and whether or not \\*(We is running under true "
+"SMP."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1647
+msgid ""
+"This portion of the \\*(SA is also influenced by the `H' \\*(CI toggle, as "
+"reflected in the total label which shows either Tasks or Threads."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1649 ../man/top.1:1666
+msgid "This command serves as a 4-way toggle, cycling through these modes:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1654
+#, no-wrap
+msgid ""
+" 1. detailed percentages by category\n"
+" 2. abbreviated user/system and total % + bar graph\n"
+" 3. abbreviated user/system and total % + block graph\n"
+" 4. turn off task and cpu states display\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1659
+msgid ""
+"When operating in either of the graphic modes, the display becomes much more "
+"meaningful when individual CPUs or NUMA nodes are also displayed. \\*(XC "
+"the `1', `2' and `3' commands below for additional information."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1660
+#, no-wrap
+msgid "\\ \\ \\ B<m>\\ \\ :I<Memory/Swap-Usage> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1664
+msgid ""
+"This command affects the two \\*(SA lines dealing with physical and virtual "
+"memory."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1671
+#, no-wrap
+msgid ""
+" 1. detailed percentages by memory type\n"
+" 2. abbreviated % used/total available + bar graph\n"
+" 3. abbreviated % used/total available + block graph\n"
+" 4. turn off memory display\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1673
+#, no-wrap
+msgid "\\ \\ \\ B<1>\\ \\ :I<Single/Separate-Cpu-States> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1678
+msgid ""
+"This command affects how the `t' command's Cpu States portion is shown. "
+"Although this toggle exists primarily to serve massively-parallel SMP "
+"machines, it is not restricted to solely SMP environments."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1683
+msgid ""
+"When you see `%Cpu(s):' in the \\*(SA, the `1' toggle is \\*O and all \\*(Pu "
+"information is gathered in a single line. Otherwise, each \\*(Pu is "
+"displayed separately as: `%Cpu0, %Cpu1, ...' up to available screen height."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1684
+#, no-wrap
+msgid "\\ \\ \\ B<2>\\ \\ :I<NUMA-Nodes/Cpu-Summary> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1689
+msgid ""
+"This command toggles between the `1' command cpu summary display (only) or "
+"a summary display plus the cpu usage statistics for each NUMA Node. It is "
+"only available if a system has the requisite NUMA support."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1690
+#, no-wrap
+msgid "\\ \\ \\ B<3>\\ \\ :I<Expand-NUMA-Node >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1696
+msgid ""
+"You will be invited to enter a number representing a NUMA Node. Thereafter, "
+"a node summary plus the statistics for each cpu in that node will be shown "
+"until the `1', `2' or `4' \\*(CT is pressed. This \\*(CI is only available "
+"if a system has the requisite NUMA support."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1697
+#, no-wrap
+msgid "\\ \\ \\ B<4>\\ \\ :I<Display-Multiple-Elements-Adjacent> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1703
+msgid ""
+"This \\*(CT turns the `1' toggle \\*F and shows multiple \\*(PU and Memory "
+"results on each line. Each successive `4' key adds another \\*(PU until "
+"again reverting to separate lines for \\*(PU and Memory results."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1709
+msgid ""
+"A maximum of 8 \\*(PUs per line can be displayed in this manner. However, "
+"data truncation may occur before reaching the maximum. That is definitely "
+"true when displaying detailed statistics via the `t' \\*(CT since such data "
+"cannot be scaled like the graphic representations."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1712
+msgid ""
+"If one wished to quickly exit adjacent mode without cycling all the way to "
+"8, simply use the `1' \\*(CT."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1713
+#, no-wrap
+msgid "\\ \\ \\ B<5>\\ \\ :I<Display-P-Cores-and-E-Cores> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1719
+msgid ""
+"This \\*(CT is only active when the `t' toggle is \\*O and the `1', `2', `3' "
+"and `!' toggles are \\*F, thus showing individual \\*(PU results. It "
+"assumes a platform has multiple cores of two distinct types, either "
+"multi-threaded (P-Core) or single-threaded (E-Core)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1723
+msgid ""
+"While normally each \\*(Pu is displayed as `%Cpu0, %Cpu1, ...', this toggle "
+"can be used to identify and/or filter those \\*(Pus by their core type, "
+"either P-Core (performance) or E-Core (efficient)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1730
+msgid ""
+"The 1st time `5' is struck, each \\*(PU is displayed as `%CpB<P>' or "
+"`%CpB<E>' representing the two core types. The 2nd time, only P-Cores "
+"(%CpB<P>) will be shown. The 3rd time, only E-Cores (%CpB<E>) are "
+"displayed. When this \\*(CT is struck for the 4th time, the \\*(PU display "
+"returns to the normal `%Cpu' convention."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1733
+msgid ""
+"If separateI< performance> andI< efficient> categories are not present, this "
+"\\*(CT will have no effect."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1734
+#, no-wrap
+msgid "\\ \\ \\ B<!>\\ \\ :I<Combine-Cpus-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1740
+msgid ""
+"This \\*(CT is intended for massively parallel SMP environments where, even "
+"with the `4' \\*(CT, not all processors can be displayed. With each press "
+"of `!' the number of \\*(Pus combined is doubled thus reducing the total "
+"number of \\*(Pu lines displayed."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1747
+msgid ""
+"For example, with the first press of `!' two \\*(Pus will be combined and "
+"displayed as `0-1, 2-3, ...' instead of the normal `%Cpu0, %Cpu1, %Cpu2, "
+"%Cpu3, ...'. With a second `!' \\*(CT four \\*(Pus are combined and shown as "
+"`0-3, 4-7, ...'. Then the third `!' press, combining eight \\*(Pus, shows "
+"as `0-7, 8-15, ...', etc."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1751
+msgid ""
+"Such progression continues until individual \\*(Pus are again displayed and "
+"impacts both the `1' and `4' toggles (one or multiple columns). Use the `=' "
+"command to exit B<Combine Cpus> mode."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1757
+msgid ""
+"\\*(NT If the entire \\*(SA has been toggled \\*F for any window, you would "
+"be left with just theB< message line>. In that way, you will have maximized "
+"available task rows but (temporarily) sacrificed the program name in \\*(FM "
+"or the \\*(CW name when in \\*(AM."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1759
+#, no-wrap
+msgid "4c. TASK AREA Commands"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1762
+msgid "The \\*(TA \\*(CIs areB< always> available in \\*(FM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1765
+msgid ""
+"The \\*(TA \\*(CIs areB< never available> in \\*(AMI< if> the \\*(CW's "
+"\\*(TD has been toggled \\*F (\\*(Xt 5. ALTERNATE-DISPLAY Provisions)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1769
+msgid "B<APPEARANCE> of \\*(TW"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1770
+#, no-wrap
+msgid "\\ \\ \\ B<J>\\ \\ :I<Justify-Numeric-Columns> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1776
+msgid ""
+"Alternates between right-justified (the default) and left-justified numeric "
+"data. If the numeric data completely fills the available column, this "
+"\\*(CT may impact the column header only."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1777
+#, no-wrap
+msgid "\\ \\ \\ B<j>\\ \\ :I<Justify-Character-Columns> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1783
+msgid ""
+"Alternates between left-justified (the default) and right-justified "
+"character data. If the character data completely fills the available "
+"column, this \\*(CT may impact the column header only."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1788
+msgid ""
+"The following commands will also be influenced by the state of the global "
+"`B' (bold enable) toggle."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1790
+#, no-wrap
+msgid "\\ \\ \\ B<b>\\ \\ :I<Bold/Reverse> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1795
+msgid ""
+"This command will impact how the `x' and `y' toggles are displayed. It may "
+"also impact the \\*(SA when a bar graph has been selected for \\*(Pu states "
+"or memory usage via the `t' or `m' toggles."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1796
+#, no-wrap
+msgid "\\ \\ \\ B<x>\\ \\ :I<Column-Highlight> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1804
+#, no-wrap
+msgid ""
+"Changes highlighting for the current sort field.\n"
+"If you forget which field is being sorted this command can serve as a "
+"quick\n"
+"visual reminder, providing the sort field is being displayed.\n"
+"The sort field mightI< not> be visible because:\n"
+" 1) there is insufficientI< Screen Width >\n"
+" 2) the `f' \\*(CI turned it \\*F\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1805
+#, no-wrap
+msgid "\\ \\ \\ B<y>\\ \\ :I<Row-Highlight> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1810
+msgid ""
+"Changes highlighting for \"running\" tasks. For additional insight into "
+"this task state, \\*(Xt 3a. DESCRIPTIONS of Fields, the `S' field (Process "
+"Status)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1813
+msgid ""
+"Use of this provision provides important insight into your system's health. "
+"The only costs will be a few additional tty escape sequences."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1814
+#, no-wrap
+msgid "\\ \\ \\ B<z>\\ \\ :I<Color/Monochrome> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1820
+msgid ""
+"Switches the \\*(CW between your last used color scheme and the older form "
+"of black-on-white or white-on-black. This command will alterB< both> the "
+"\\*(SA and \\*(TA but does not affect the state of the `x', `y' or `b' "
+"toggles."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1824
+msgid "B<CONTENT> of \\*(TW"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1825
+#, no-wrap
+msgid "\\ \\ \\ B<c>\\ \\ :I<Command-Line/Program-Name> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1830
+msgid ""
+"This command will be honored whether or not the COMMAND column is currently "
+"visible. Later, should that field come into view, the change you applied "
+"will be seen."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1831
+#, no-wrap
+msgid "\\ \\ \\ B<F>\\ \\ :I<Maintain-Parent-Focus> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1836
+msgid ""
+"When in forest view mode, this key serves as a toggle to retain focus on a "
+"target task, presumably one with forked children. If forest view mode is "
+"\\*F this key has no effect."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1841
+msgid ""
+"The toggle is applied to the first (topmost) process in the \\*(CW. Once "
+"established, that task is always displayed as the first (topmost) process "
+"along with its forked children. All other processes will be suppressed."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1844
+msgid ""
+"\\*(NT keys like `i' (idle tasks), `n' (max tasks), `v' (hide children) and "
+"User/Other filtering remain accessible and can impact what is displayed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1845 ../man/top.1:2000
+#, no-wrap
+msgid "\\ \\ \\ B<f>\\ \\ :I<Fields-Management >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1851
+msgid ""
+"This key displays a separate screen where you can change which fields are "
+"displayed, their order and also designate the sort field. For additional "
+"information on this \\*(CI \\*(Xt 3b. MANAGING Fields."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1852
+#, no-wrap
+msgid "\\ \\ \\ B<O> | B<o>\\ \\ :I<Other-Filtering >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1858
+msgid ""
+"You will be prompted for the selection criteria which then determines which "
+"tasks will be shown in the \\*(CW. Your criteria can be made case sensitive "
+"or case can be ignored. And you determine if \\*(We should include or "
+"exclude matching tasks."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1861
+msgid ""
+"\\*(XT 5e. FILTERING in a window for details on these and additional related "
+"\\*(CIs."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1862
+#, no-wrap
+msgid "\\ \\ \\ B<S>\\ \\ :I<Cumulative-Time-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1866
+msgid ""
+"When Cumulative mode is \\*O, each process is listed with the \\*(Pu time "
+"that it and its dead children have used."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1873
+msgid ""
+"When \\*F, programs that fork into many separate tasks will appear less "
+"demanding. For programs like `init' or a shell this is appropriate but for "
+"others, like compilers, perhaps not. Experiment with two \\*(TWs sharing "
+"the same sort field but with different `S' states and see which "
+"representation you prefer."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1877
+msgid ""
+"After issuing this command, you'll be informed of the new state of this "
+"toggle. If you wish to know in advance whether or not Cumulative mode is in "
+"effect, simply ask for help and view the window summary on the second line."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1878
+#, no-wrap
+msgid "\\ \\ \\ B<U> | B<u>\\ \\ :I<Show-Specific-User-Only >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1883
+msgid ""
+"You will be prompted for theB< uid> orB< name> of the user to display. The "
+"-u option matches on B< effective> user whereas the -U option matches onB< "
+"any> user (real, effective, saved, or filesystem)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1888
+msgid ""
+"Thereafter, in that \\*(TW only matching users will be shown, or possibly no "
+"processes will be shown. Prepending an exclamation point (`!') to the user "
+"id or name instructs \\*(We to display only processes with users not "
+"matching the one provided."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1892
+msgid ""
+"Different \\*(TWs can be used to filter different users. Later, if you wish "
+"to monitor all users again in the \\*(CW, re-issue this command but just "
+"press E<lt>EnterE<gt> at the prompt."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1893
+#, no-wrap
+msgid "\\ \\ \\ B<V>\\ \\ :I<Forest-View-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1900
+msgid ""
+"In this mode, processes are reordered according to their parents and the "
+"layout of the COMMAND column resembles that of a tree. In forest view mode "
+"it is still possible to toggle between program name and command line (\\*(Xc "
+"`c' \\*(CI) or between processes and threads (\\*(Xc `H' \\*(CI)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1904
+msgid ""
+"\\*(NT Typing any key affecting the sort order will exit forest view mode in "
+"the \\*(CW. \\*(XT 4c. TASK AREA Commands, SORTING for information on those "
+"keys."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1905
+#, no-wrap
+msgid "\\ \\ \\ B<v>\\ \\ :I<Hide/Show-Children> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1909
+msgid ""
+"When in forest view mode, this key serves as a toggle to collapse or expand "
+"the children of a parent."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1913
+msgid ""
+"The toggle is applied against the first (topmost) process in the \\*(CW. "
+"\\*(XT 5c. SCROLLING a Window for additional information regarding vertical "
+"scrolling."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1916
+msgid ""
+"If the target process has not forked any children, this key has no effect. "
+"It also has no effect when not in forest view mode."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1917
+#, no-wrap
+msgid "\\ \\ B<^E>\\ \\ :I<Scale-CPU-Time-fields> (Ctrl key + `e')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1924
+msgid ""
+"The `time' fields are normally displayed with the greatest precision their "
+"widths permit. This toggle reduces that precision until it wraps. It also "
+"illustrates the scaling those fields I<might> experience automatically, "
+"which usually depends on how long the system runs."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1927
+msgid ""
+"For example, if `MMM:SS.hh' is shown, each ^E keystroke would change it to: "
+"`MM:SS', `Hours,MM', `Days+Hours' and finally `Weeks+Days'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1929
+msgid "Not all time fields are subject to the full range of such scaling."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1933
+msgid "B<SIZE> of \\*(TW"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1934
+#, no-wrap
+msgid "\\ \\ \\ B<i>\\ \\ :I<Idle-Process> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1942
+msgid ""
+"Displays all tasks or just active tasks. When this toggle is \\*F, tasks "
+"that have not used any \\*(PU since the last update will not be displayed. "
+"However, due to the granularity of the %CPU and TIME+ fields, some processes "
+"may still be displayed thatI< appear> to have usedI< no> \\*(PU."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1945
+msgid ""
+"If this command is applied to the last \\*(TD when in \\*(AM, then it will "
+"not affect the window's size, as all prior \\*(TDs will have already been "
+"painted."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1946
+#, no-wrap
+msgid "\\ \\ \\ B<n> | B<#>\\ \\ :I<Set-Maximum-Tasks >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1950
+msgid ""
+"You will be prompted to enter the number of tasks to display. The lessor of "
+"your number and available screen rows will be used."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1955
+msgid ""
+"When used in \\*(AM, this is the command that gives you precise control over "
+"the size of each currently visible \\*(TD, except for the very last. It "
+"will not affect the last window's size, as all prior \\*(TDs will have "
+"already been painted."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1958
+msgid ""
+"\\*(NT If you wish to increase the size of the last visible \\*(TD when in "
+"\\*(AM, simply decrease the size of the \\*(TD(s) above it."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1962
+msgid "B<SORTING> of \\*(TW"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1967
+msgid ""
+"For compatibility, this \\*(We supports most of the former \\*(We sort "
+"keys. Since this is primarily a service to former \\*(We users, these "
+"commands do not appear on any help screen."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1974
+#, no-wrap
+msgid ""
+" I< command sorted-field supported >\n"
+" A start time (non-display) B< No >\n"
+" M %MEM Yes\n"
+" N PID Yes\n"
+" P %CPU Yes\n"
+" T TIME+ Yes\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1979
+msgid ""
+"Before using any of the following sort provisions, \\*(We suggests that you "
+"temporarily turn on column highlighting using the `x' \\*(CI. That will "
+"help ensure that the actual sort environment matches your intent."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1985
+#, no-wrap
+msgid ""
+"The following \\*(CIs willB< only> be honored when the current sort field\n"
+"isB< visible>.\n"
+"The sort field mightI< not> be visible because:\n"
+" 1) there is insufficientI< Screen Width >\n"
+" 2) the `f' \\*(CI turned it \\*F\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1986
+#, no-wrap
+msgid "\\ \\ \\ B<E<lt>>\\ \\ :I<Move-Sort-Field-Left >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1990
+msgid ""
+"Moves the sort column to the left unless the current sort field is the first "
+"field being displayed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1991
+#, no-wrap
+msgid "\\ \\ \\ B<E<gt>>\\ \\ :I<Move-Sort-Field-Right >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1995
+msgid ""
+"Moves the sort column to the right unless the current sort field is the last "
+"field being displayed."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1999
+msgid ""
+"The following \\*(CIs willB< always> be honored whether or not the current "
+"sort field is visible."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2006
+msgid ""
+"This key displays a separate screen where you can change which field is used "
+"as the sort column, among other functions. This can be a convenient way to "
+"simply verify the current sort field, when running \\*(We with column "
+"highlighting turned \\*F."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2007
+#, no-wrap
+msgid "\\ \\ \\ B<R>\\ \\ :I<Reverse/Normal-Sort-Field> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2010
+msgid ""
+"Using this \\*(CI you can alternate between high-to-low and low-to-high "
+"sorts."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2012
+#, no-wrap
+msgid "4d. COLOR Mapping"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2017
+msgid ""
+"When you issue the `Z' \\*(CI, you will be presented with a separate "
+"screen. That screen can be used to change the colors in just the \\*(CW or "
+"in all four windows before returning to the \\*(We display."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2020
+msgid "The following \\*(CIs are available."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2031
+#, no-wrap
+msgid ""
+" B<4> upper case letters to select aB< target >\n"
+" B<8> numbers to select aB< color >\n"
+" normal toggles available \n"
+" B :bold disable/enable\n"
+" b :running tasks \"bold\"/reverse\n"
+" z :color/mono\n"
+" other commands available \n"
+" a/w :apply, then go to next/prior\n"
+" E<lt>EnterE<gt> :apply and exit\n"
+" q :abandon current changes and exit\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2037
+msgid ""
+"If you use `a' or `w' to cycle the targeted window, you will have applied "
+"the color scheme that was displayed when you left that window. You can, of "
+"course, easily return to any window and reapply different colors or turn "
+"colors \\*F completely with the `z' toggle."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2042
+msgid ""
+"The Color Mapping screen can also be used to change the \\*(CG in either "
+"\\*(FM or \\*(AM. Whatever was targeted when `q' or E<lt>EnterE<gt> was "
+"pressed will be made current as you return to the \\*(We display."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2044
+#, no-wrap
+msgid "5. ALTERNATE-DISPLAY Provisions"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2047
+#, no-wrap
+msgid "5a. WINDOWS Overview"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2049
+#, no-wrap
+msgid "B<Field Groups/Windows>:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2056
+msgid ""
+"In \\*(FM there is a single window represented by the entire screen. That "
+"single window can still be changed to display 1 of 4 differentB< field "
+"groups> (\\*(Xc `g' \\*(CI, repeated below). Each of the 4 \\*(FGs has a "
+"unique separately configurableB< \\*(SA > and its own configurableB< "
+"\\*(TA>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2059
+msgid ""
+"In \\*(AM, those 4 underlying \\*(FGs can now be made visible "
+"simultaneously, or can be turned \\*F individually at your command."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2064
+msgid ""
+"The \\*(SA will always exist, even if it's only the message line. At any "
+"given time onlyI< one> \\*(SA can be displayed. However, depending on your "
+"commands, there could be fromI< zero > toI< four> separate \\*(TDs currently "
+"showing on the screen."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2065
+#, no-wrap
+msgid "B<Current Window>:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2071
+msgid ""
+"The \\*(CW is the window associated with the \\*(SA and the window to which "
+"task related commands are always directed. Since in \\*(AM you can toggle "
+"the \\*(TD \\*F, some commands might be restricted for the \\*(CW."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2076
+msgid ""
+"A further complication arises when you have toggled the first \\*(SA line "
+"\\*F. With the loss of the window name (the `l' toggled line), you'll not "
+"easily know what window is the \\*(CW."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2078
+#, no-wrap
+msgid "5b. COMMANDS for Windows"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2080
+#, no-wrap
+msgid "\\ \\ \\ B<-> | B<_>\\ \\ :I<Show/Hide-Window(s)> toggles "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2087
+msgid ""
+"The `-' key turns the \\*(CW's \\*(TD \\*O and \\*F. When \\*O, that \\*(TA "
+"will show a minimum of the columns header you've established with the `f' "
+"\\*(CI. It will also reflect any other \\*(TA options/toggles you've "
+"applied yielding zero or more tasks."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2093
+msgid ""
+"The `_' key does the same for all \\*(TDs. In other words, it switches "
+"between the currently visible \\*(TD(s) and any \\*(TD(s) you had toggled "
+"\\*F. If all 4 \\*(TDs are currently visible, this \\*(CI will leave the "
+"\\*(SA as the only display element."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2094
+#, no-wrap
+msgid "*\\ \\ B<=> | B<+>\\ \\ :I<Equalize/Reset-Window(s) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2103
+msgid ""
+"The `=' key forces the \\*(CW's \\*(TD to be visible. It also reverses any "
+"active `i' (idle tasks), `n' (max tasks), `u/U' (user filter), `o/O' (other "
+"filter), `v' (hide children), `F' focused, `L' (locate) and `!' (combine "
+"cpus) commands. Also, if the window had been scrolled, it will be reset "
+"with this command. \\*(XT 5c. SCROLLING a Window for additional information "
+"regarding vertical and horizontal scrolling."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2108
+msgid ""
+"The `+' key does the same for all windows. The four \\*(TDs will reappear, "
+"evenly balanced, while retaining any customizations previously applied "
+"beyond those noted for the `=' \\*(CT."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2109
+#, no-wrap
+msgid "*\\ \\ B<A>\\ \\ :I<Alternate-Display-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2112
+msgid "This command will switch between \\*(FM and \\*(AM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2116
+msgid ""
+"The first time you issue this command, all four \\*(TDs will be shown. "
+"Thereafter when you switch modes, you will see only the \\*(TD(s) you've "
+"chosen to make visible."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2117
+#, no-wrap
+msgid "*\\ \\ B<a> | B<w>\\ \\ :I<Next-Window-Forward/Backward >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2123
+msgid ""
+"This will change the \\*(CW, which in turn changes the window to which "
+"commands are directed. These keys act in a circular fashion so you can "
+"reach any desired window using either key."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2127
+msgid ""
+"Assuming the window name is visible (you have not toggled `l' \\*F), "
+"whenever the \\*(CW name loses its emphasis/color, that's a reminder the "
+"\\*(TD is \\*F and many commands will be restricted."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2128
+#, no-wrap
+msgid "\\ \\ \\ B<G>\\ \\ :I<Change-Window/Field-Group-Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2133
+msgid ""
+"You will be prompted for a new name to be applied to the \\*(CW. It does "
+"not require that the window name be visible (the `l' toggle to be \\*O)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2136
+msgid "The \\*(CIs shown with an \\*(AK have use beyond \\*(AM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2140
+#, no-wrap
+msgid ""
+" =, A, g are always available\n"
+" a, w act the same with color mapping\n"
+" and fields management\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2142
+#, no-wrap
+msgid "*\\ \\ B<g>\\ \\ :I<Choose-Another-Window/Field-Group >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2146
+msgid ""
+"You will be prompted to enter a number between 1 and 4 designating the "
+"\\*(FG which should be made the \\*(CW."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2150
+msgid ""
+"In \\*(FM, this command is necessary to alter the \\*(CW. In \\*(AM, it is "
+"simply a less convenient alternative to the `a' and `w' commands."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2152
+#, no-wrap
+msgid "5c. SCROLLING a Window"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2158
+msgid ""
+"Typically a \\*(TW is a partial view into a system's total tasks/threads "
+"which shows only some of the available fields/columns. With these \\*(KSs, "
+"you can move that view vertically or horizontally to reveal any desired task "
+"or column."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2159
+#, no-wrap
+msgid "B<Up>,B<PgUp>\\ \\ :I<Scroll-Tasks >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2165
+msgid ""
+"Move the view up toward the first task row, until the first task is "
+"displayed at the top of the \\*(CW. The I<Up> \\*(KA moves a single line "
+"while I<PgUp> scrolls the entire window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2166
+#, no-wrap
+msgid "B<Down>,B<PgDn>\\ \\ :I<Scroll-Tasks >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2172
+msgid ""
+"Move the view down toward the last task row, until the last task is the only "
+"task displayed at the top of the \\*(CW. The I<Down> \\*(KA moves a single "
+"line while I<PgDn> scrolls the entire window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2173
+#, no-wrap
+msgid "B<Left>,B<Right>\\ \\ :I<Scroll-Columns >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2176
+msgid "Move the view of displayable fields horizontally one column at a time."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2181
+msgid ""
+"\\*(NT As a reminder, some fields/columns are not fixed-width but allocated "
+"all remaining screen width when visible. When scrolling right or left, that "
+"feature may produce some unexpected results initially."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2187
+msgid ""
+"Additionally, there are special provisions for any variable width field when "
+"positioned as the last displayed field. Once that field is reached via the "
+"right arrow key, and is thus the only column shown, you can continue "
+"scrolling horizontally within such a field. \\*(XC `C' \\*(CI below for "
+"additional information."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2188
+#, no-wrap
+msgid "B<Home>\\ \\ :I<Jump-to-Home-Position >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2191
+msgid "Reposition the display to the un-scrolled coordinates."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2192
+#, no-wrap
+msgid "B<End>\\ \\ :I<Jump-to-End-Position >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2196
+msgid ""
+"Reposition the display so that the rightmost column reflects the last "
+"displayable field and the bottom task row represents the last task."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2201
+msgid ""
+"\\*(NT From this position it is still possible to scrollI< down> andI< "
+"right> using the \\*(KAs. This is true until a single column and a single "
+"task is left as the only display element."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2202
+#, no-wrap
+msgid "B<C>\\ \\ :I<Show-scroll-coordinates> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2208
+msgid ""
+"Toggle an informational message which is displayed whenever the message line "
+"is not otherwise being used. That message will take one of two forms "
+"depending on whether or not a variable width column has also been scrolled."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2212
+#, no-wrap
+msgid ""
+" B<scroll coordinates: y = n/n (tasks), x = n/n (fields)>\n"
+" scroll coordinates: y = n/n (tasks), x = n/n (fields)B< + nn>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2220
+msgid ""
+"The coordinates shown as B<n>/B<n> are relative to the upper left corner of "
+"the \\*(CW. The additional `B<+\\ nn>' represents the displacement into a "
+"variable width column when it has been scrolled horizontally. Such "
+"displacement occurs in normal 8 character tab stop amounts via the right and "
+"left arrow keys."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2222
+#, no-wrap
+msgid "B<y = n/n (tasks) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2227
+msgid ""
+"The first B<n> represents the topmost visible task and is controlled by "
+"\\*(KSs. The second B<n> is updated automatically to reflect total tasks."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2228
+#, no-wrap
+msgid "B<x = n/n (fields) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2234
+msgid ""
+"The first B<n> represents the leftmost displayed column and is controlled by "
+"\\*(KSs. The second B<n> is the total number of displayable fields and is "
+"established with the `B<f>' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2239 ../man/top.1:2298
+msgid ""
+"The above \\*(CIs areB< always> available in \\*(FM butB< never> available "
+"in \\*(AM if the \\*(CW's \\*(TD has been toggled \\*F."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2243
+msgid ""
+"\\*(NT When any form of filtering is active, you can expect some slight "
+"aberrations when scrolling since not all tasks will be visible. This is "
+"particularly apparent when using the Up/Down \\*(KAs."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2245
+#, no-wrap
+msgid "5d. SEARCHING in a Window"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2248
+msgid ""
+"You can use these \\*(CIs to locate a task row containing a particular "
+"value."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2249
+#, no-wrap
+msgid "B<L>\\ \\ :I<Locate-a-string>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2254
+msgid ""
+"You will be prompted for the case-sensitive string to locate starting from "
+"the current window coordinates. There are no restrictions on search string "
+"content."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2258
+msgid ""
+"Searches are not limited to values from a single field or column. All of "
+"the values displayed in a task row are allowed in a search string. You may "
+"include spaces, numbers, symbols and even forest view artwork."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2261
+msgid ""
+"Keying E<lt>EnterE<gt> with no input will effectively disable the `&' key "
+"until a new search string is entered."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2262
+#, no-wrap
+msgid "B<&>\\ \\ :I<Locate-next>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2266
+msgid ""
+"Assuming a search string has been established, \\*(We will attempt to locate "
+"the next occurrence."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2273
+msgid ""
+"When a match is found, the current window is repositioned vertically so the "
+"task row containing that string is first. The scroll coordinates message "
+"can provide confirmation of such vertical repositioning (\\*(Xc `C' "
+"\\*(CI). Horizontal scrolling, however, is never altered via searching."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2276
+msgid ""
+"The availability of a matching string will be influenced by the following "
+"factors."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2277
+#, no-wrap
+msgid "a. Which fields are displayable from the total available,"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2280
+msgid "\\*(Xt 3b. MANAGING Fields."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2280
+#, no-wrap
+msgid "b. Scrolling a window vertically and/or horizontally,"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2283
+msgid "\\*(Xt 5c. SCROLLING a Window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2283
+#, no-wrap
+msgid "c. The state of the command/command-line toggle,"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2286
+msgid "\\*(Xc `c' \\*(CI."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2286
+#, no-wrap
+msgid "d. The stability of the chosen sort column,"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2289
+msgid "for example PID is good but %CPU bad."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2295
+msgid ""
+"If a search fails, restoring the \\*(CW home (unscrolled) position, "
+"scrolling horizontally, displaying command-lines or choosing a more stable "
+"sort field could yet produce a successful `&' search."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2300
+#, no-wrap
+msgid "5e. FILTERING in a Window"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2306
+msgid ""
+"You can use this `Other Filter' feature to establish selection criteria "
+"which will then determine which tasks are shown in the \\*(CW. Such filters "
+"can be made persistent if preserved in the rcfile via the `W' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2312
+msgid ""
+"Establishing a filter requires: 1) a field name; 2) an operator; and 3) a "
+"selection value, as a minimum. This is the most complex of \\*(We's user "
+"input requirements so, when you make a mistake, command recall will be your "
+"friend. Remember the Up/Down \\*(KAs or their aliases when prompted for "
+"input."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2314
+msgid "B<Filter Basics>"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2315
+#, no-wrap
+msgid "1. field names are case sensitive and spelled as in the header"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2317
+#, no-wrap
+msgid "2. selection values need not comprise the full displayed field"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2319
+#, no-wrap
+msgid "3. a selection is either case insensitive or sensitive to case"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2321
+#, no-wrap
+msgid "4. the default is inclusion, prepending `!' denotes exclusions"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2323
+#, no-wrap
+msgid "5. multiple selection criteria can be applied to a \\*(TW"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2325
+#, no-wrap
+msgid "6. inclusion and exclusion criteria can be used simultaneously"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2327
+#, no-wrap
+msgid "7. the 1 equality and 2 relational filters can be freely mixed"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2329
+#, no-wrap
+msgid "8. separate unique filters are maintained for each \\*(TW"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2337
+msgid ""
+"If a field is not turned on or is not currently in view, then your selection "
+"criteria will not affect the display. Later, should a filtered field become "
+"visible, the selection criteria will then be applied."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2340
+msgid "B<Keyboard Summary>"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2340
+#, no-wrap
+msgid "\\ \\ B<O>\\ \\ :I<Other-Filter> (upper case)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2343
+msgid "You will be prompted to establish a B<case sensitive> filter."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2344
+#, no-wrap
+msgid "\\ \\ B<o>\\ \\ :I<Other-Filter> (lower case)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2348
+msgid ""
+"You will be prompted to establish a filter that B<ignores case> when "
+"matching."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2349
+#, no-wrap
+msgid "\\ B<^O>\\ \\ :I<Show-Active-Filters> (Ctrl key + `o')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2353
+msgid ""
+"This can serve as a reminder of which filters are active in the \\*(CW. A "
+"summary will be shown on the message line until you press the "
+"E<lt>EnterE<gt> key."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2354
+#, no-wrap
+msgid "\\ \\ B<=>\\ \\ :I<Reset-Filtering> in current window"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2358
+msgid ""
+"This clears all of your selection criteria in the \\*(CW. It also has "
+"additional impact so please \\*(Xt 4a. GLOBAL Commands."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2359
+#, no-wrap
+msgid "\\ \\ B<+>\\ \\ :I<Reset-Filtering> in all windows"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2364
+msgid ""
+"This clears the selection criteria in all windows, assuming you are in "
+"\\*(AM. As with the `=' \\*(CI, it too has additional consequences so you "
+"might wish to \\*(Xt 5b. COMMANDS for Windows."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2367
+msgid "B<Input Requirements>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2373
+msgid ""
+"When prompted for selection criteria, the data you provide must take one of "
+"two forms. There are 3 required pieces of information, with a 4th as "
+"optional. These examples use spaces for clarity but your input generally "
+"would not."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2378
+#, no-wrap
+msgid ""
+" #1 B<#2> #3 ( required )\n"
+" Field-Name ? include-if-value\n"
+" B<!> Field-Name ? B<exclude>-if-value\n"
+" #4 ( optional )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2383
+msgid ""
+"Items #1, #3 and #4 should be self-explanatory. Item B<#2> represents both "
+"a required I<delimiter> and the I<operator> which must be one of either "
+"equality (`=') or relation (`E<lt>' or `E<gt>')."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2392
+msgid ""
+"The `=' equality operator requires only a partial match and that can reduce "
+"your `if-value' input requirements. The `E<gt>' or `E<lt>' relational "
+"operators always employ string comparisons, even with numeric fields. They "
+"are designed to work with a field's default I<justification> and with "
+"homogeneous data. When some field's numeric amounts have been subjected to "
+"I<scaling> while others have not, that data is no longer homogeneous."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2399
+msgid ""
+"If you establish a relational filter and you B<have> changed the default "
+"Numeric or Character I<justification>, that filter is likely to fail. When "
+"a relational filter is applied to a memory field and you B<have not> changed "
+"the I<scaling>, it may produce misleading results. This happens, for "
+"example, because `100.0m' (MiB) would appear greater than `1.000g' (GiB) "
+"when compared as strings."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2403
+msgid ""
+"If your filtered results appear suspect, simply altering justification or "
+"scaling may yet achieve the desired objective. See the `j', `J' and `e' "
+"\\*(CIs for additional information."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2406
+msgid "B<Potential Problems>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2410
+msgid ""
+"These B<GROUP> filters could produce the exact same results or the second "
+"one might not display anything at all, just a blank \\*(TW."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2413
+#, no-wrap
+msgid ""
+" GROUP=root ( only the same results when )\n"
+" GROUP=ROOT ( invoked via lower case `o' )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2418
+msgid ""
+"Either of these B<RES> filters might yield inconsistent and/or misleading "
+"results, depending on the current memory scaling factor. Or both filters "
+"could produce the exact same results."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2421
+#, no-wrap
+msgid ""
+" RESE<gt>9999 ( only the same results when )\n"
+" !RESE<lt>10000 ( memory scaling is at `KiB' )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2427
+msgid ""
+"This B<nMin> filter illustrates a problem unique to scalable fields. This "
+"particular field can display a maximum of 4 digits, beyond which values are "
+"automatically scaled to KiB or above. So while amounts greater than 9999 "
+"exist, they will appear as 2.6m, 197k, etc."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2429
+#, no-wrap
+msgid " nMinE<gt>9999 ( always a blank \\*(TW )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2433
+msgid "B<Potential Solutions>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2440
+msgid ""
+"These examples illustrate how Other Filtering can be creatively applied to "
+"achieve almost any desired result. Single quotes are sometimes shown to "
+"delimit the spaces which are part of a filter or to represent a request for "
+"status (^O) accurately. But if you used them with if-values in real life, "
+"no matches would be found."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2445
+msgid ""
+"Assuming field B<nTH> is displayed, the first filter will result in only "
+"multi-threaded processes being shown. It also reminds us that a trailing "
+"space is part of every displayed field. The second filter achieves the "
+"exact same results with less typing."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2448
+#, no-wrap
+msgid ""
+" !nTH=` 1 ' ( ` for clarity only )\n"
+" nTHE<gt>1 ( same with less i/p )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2452
+msgid ""
+"With Forest View mode active and the B<COMMAND> column in view, this filter "
+"effectively collapses child processes so that just 3 levels are shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2454
+#, no-wrap
+msgid " !COMMAND=` `- ' ( ` for clarity only )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2462
+msgid ""
+"The final two filters appear as in response to the status request key (^O). "
+"In reality, each filter would have required separate input. The B<PR> "
+"example shows the two concurrent filters necessary to display tasks with "
+"priorities of 20 or more, since some might be negative. Then by exploiting "
+"trailing spaces, the B<nMin> series of filters could achieve the failed "
+"`9999' objective discussed above."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2465
+#, no-wrap
+msgid ""
+" `PRE<gt>20' + `!PR=-' ( 2 for right result )\n"
+" `!nMin=0 ' + `!nMin=1 ' + `!nMin=2 ' + `!nMin=3 ' ...\n"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2469
+#, no-wrap
+msgid "6. FILES"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SS
+#: ../man/top.1:2471
+#, no-wrap
+msgid "6a. PERSONAL Configuration File"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2474
+msgid "This file is created or updated via the `W' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2477
+msgid ""
+"The legacy version is written as `$HOME/.your-name-4-\\*(We' + `rc' with a "
+"leading period."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2482
+msgid ""
+"A newly created \\*(CF is written as procps/your-name-4-\\*(We' + `rc' "
+"without a leading period. The procps directory will be subordinate to "
+"either $XDG_CONFIG_HOME when set as an absolute path or the $HOME/.config "
+"directory."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2484
+msgid "While not intended to be edited manually, here is the general layout:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2494
+#, no-wrap
+msgid ""
+" global # line 1: the program name/alias notation\n"
+" \" # line 2: id,altscr,irixps,delay,curwin\n"
+" per ea # line a: winname,fieldscur\n"
+" window # line b: winflags,sortindx,maxtasks,etc\n"
+" \" # line c: summclr,msgsclr,headclr,taskclr\n"
+" global # line 15: additional miscellaneous settings\n"
+" \" # any remaining lines are devoted to optional\n"
+" \" # active `other filters' discussed in section 5e above\n"
+" \" # plus `inspect' entries discussed in section 6b below\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2498
+msgid ""
+"If a valid absolute path to the rcfile cannot be established, customizations "
+"made to a running \\*(We will be impossible to preserve."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2500
+#, no-wrap
+msgid "6b. ADDING INSPECT Entries"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2507
+msgid ""
+"To exploit the `Y' \\*(CI, you must add entries at theB< end> of the \\*(We "
+"personal \\*(CF. Such entries simply reflect a file to be read or "
+"command/pipeline to be executed whose results will then be displayed in a "
+"separate scrollable, searchable window."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2510
+msgid ""
+"If you don't know the location or name of your \\*(We rcfile, use the `W' "
+"\\*(CI to rewrite it and note those details."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2517
+msgid ""
+"Inspect entries can be added with a redirected echo or by editing the "
+"\\*(CF. Redirecting an echo risks overwriting the rcfile should it replace "
+"(E<gt>) rather than append (E<gt>E<gt>) to that file. Conversely, when "
+"using an editor care must be taken not to corrupt existing lines, some of "
+"which could contain unprintable data or unusual characters depending on the "
+"\\*(We version under which that \\*(CF was saved."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2522
+msgid ""
+"Those Inspect entries beginning with a `#' character are ignored, regardless "
+"of content. Otherwise they consist of the following 3 elements, each of "
+"whichI< must> be separated by a tab character (thus 2 `\\et' total):"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2527
+#, no-wrap
+msgid ""
+" .type: literal `file' or `pipe'\n"
+" .name: selection shown on the Inspect screen\n"
+" .fmts: string representing a path or command\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2534
+msgid ""
+"The two types of Inspect entries areI< not> interchangeable. Those "
+"designated `B<file>' will be accessed using fopen and must reference a "
+"single file in the `.fmts' element. Entries specifying `B<pipe>' will "
+"employ popen, their `.fmts' element could contain many pipelined commands "
+"and, none can be interactive."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2538
+msgid ""
+"If the file or pipeline represented in your `.fmts' deals with the specific "
+"PID input or accepted when prompted, then the format string must also "
+"contain the `B<%d>' specifier, as these examples illustrate."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2542
+#, no-wrap
+msgid ""
+" .fmts= /proc/I<%d>/numa_maps\n"
+" .fmts= lsof -P -pI< %d>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2547
+msgid ""
+"For `B<pipe>' type entries only, you may also wish to redirect stderr to "
+"stdout for a more comprehensive result. Thus the format string becomes:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2550
+#, no-wrap
+msgid " .fmts= pmap -x %dI< 2E<gt>&1>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2557
+msgid ""
+"Here are examples of both types of Inspect entries as they might appear in "
+"the rcfile. The first entry will be ignored due to the initial `#' "
+"character. For clarity, the pseudo tab depictions (^I) are surrounded by an "
+"extra space but the actual tabs would not be."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2563
+#, no-wrap
+msgid ""
+" # pipe ^I Sockets ^I lsof -n -P -i 2E<gt>&1\n"
+" pipe ^I Open Files ^I lsof -P -p %d 2E<gt>&1\n"
+" file ^I NUMA Info ^I /proc/%d/numa_maps\n"
+" pipe ^I Log ^I tail -n100 /var/log/syslog | sort -Mr\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2570
+msgid ""
+"Except for the commented entry above, these next examples show what could be "
+"echoed to achieve similar results, assuming the rcfile name was `.toprc'. "
+"However, due to the embedded tab characters, each of these lines should be "
+"preceded by `B</bin/echo -e>', not just a simple an `echo', to enable "
+"backslash interpretation regardless of which shell you use."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2575
+#, no-wrap
+msgid ""
+" \"pipe\\etOpen Files\\etlsof -P -p %d 2E<gt>&1\" E<gt>E<gt> ~/.toprc\n"
+" \"file\\etNUMA Info\\et/proc/%d/numa_maps\" E<gt>E<gt> ~/.toprc\n"
+" \"pipe\\etLog\\ettail -n200 /var/log/syslog | sort -Mr\" E<gt>E<gt> "
+"~/.toprc\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2584
+msgid ""
+"If any inspect entry you create produces output with unprintable characters "
+"they will be displayed in either the ^C notation or hexadecimal E<lt>FFE<gt> "
+"form, depending on their value. This applies to tab characters as well, "
+"which will show as `^I'. If you want a truer representation, any embedded "
+"tabs should be expanded. The following example takes what could have been a "
+"`file' entry but employs a `pipe' instead so as to expand the embedded tabs."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2590
+#, no-wrap
+msgid ""
+" # next would have contained `\\et' ...\n"
+" # file ^I E<lt>your_nameE<gt> ^I /proc/%d/status\n"
+" # but this will eliminate embedded `\\et' ...\n"
+" pipe ^I E<lt>your_nameE<gt> ^I cat /proc/%d/status | expand -\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2596
+msgid ""
+"\\*(NT Some programs might rely on I<SIGINT> to end. Therefore, if a "
+"`B<pipe>' such as the following is established, one must use Ctrl-C to "
+"terminate it in order to review the results. This is the single occasion "
+"where a `^C' will not also terminate \\*(We."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2599
+#, no-wrap
+msgid " pipe ^I Trace ^I /usr/bin/strace -p %d 2E<gt>&1\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2605
+msgid ""
+"Lastly, while `B<pipe>' type entries have been discussed in terms of "
+"pipelines and commands, there is nothing to prevent you from including I< "
+"shell scripts> as well. Perhaps even newly created scripts designed "
+"specifically for the `Y' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2611
+msgid ""
+"For example, as the number of your Inspect entries grows over time, the "
+"`Options:' row will be truncated when screen width is exceeded. That does "
+"not affect operation other than to make some selections invisible. However, "
+"if some choices are lost to truncation but you want to see more options, "
+"there is an easy solution hinted at below."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2616
+#, no-wrap
+msgid ""
+" Inspection Pause at pid ...\n"
+" Use: left/right then E<lt>EnterE<gt> ...\n"
+" Options: help 1 2 3 4 5 6 7 8 9 10 11 ...\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2622
+msgid ""
+"The entries in the \\*(We rcfile would have a number for the `.name' element "
+"and the `help' entry would identify a shell script you've written explaining "
+"what those numbered selections actually mean. In that way, many more "
+"choices can be made visible."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2624
+#, no-wrap
+msgid "6c. SYSTEM Configuration File"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2629
+msgid ""
+"This \\*(CF represents defaults for users who have not saved their own "
+"\\*(CF. The format mirrors exactly the personal \\*(CF and can also include "
+"`inspect' entries as explained above."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2631
+msgid "Creating it is a simple process."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2634
+msgid ""
+"1. Configure \\*(We appropriately for your installation and preserve that "
+"configuration with the `W' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2636
+msgid "2. Add and test any desired `inspect' entries."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2638
+msgid "3. Copy that \\*(CF to the I</etc/> directory as `B<topdefaultrc>'."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2640
+#, no-wrap
+msgid "6d. SYSTEM Restrictions File"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2644
+msgid ""
+"The presence of this file will influence which version of the help screen is "
+"shown to an ordinary user."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2648
+msgid ""
+"More importantly, it will limit what ordinary users are allowed to do when "
+"\\*(We is running. They will not be able to issue the following commands."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2652
+#, no-wrap
+msgid ""
+" k Kill a task\n"
+" r Renice a task\n"
+" d or s Change delay/sleep interval\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2657
+msgid ""
+"This \\*(CF is not created by \\*(We. Rather, it is created manually and "
+"placed it in the I</etc/> directory as `B<toprc>'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2659
+msgid "It should have exactly two lines, as shown in this example:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2662
+#, no-wrap
+msgid ""
+" s # line 1: secure mode switch\n"
+" 5.0 # line 2: delay interval in seconds\n"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2665
+#, no-wrap
+msgid "7. ENVIRONMENT VARIABLE(S)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2668 ../man/procps_pids.3:201
+msgid "The value set for the following is unimportant, just its presence."
+msgstr ""
+
+#. type: IP
+#: ../man/top.1:2669 ../man/procps_pids.3:202
+#, no-wrap
+msgid "LIBPROC_HIDE_KERNEL"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2672
+msgid ""
+"This will prevent display of any kernel threads and exclude such processes "
+"from the \\*(SA Tasks/Threads counts."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2674
+#, no-wrap
+msgid "8. STUPID TRICKS Sampler"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2679
+msgid ""
+"Many of these tricks work best when you give \\*(We a scheduling boost. So "
+"plan on starting him with a nice value of -10, assuming you've got the "
+"authority."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2681
+#, no-wrap
+msgid "7a. Kernel Magic"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. sorry, just can't help it -- don't ya love the sound of this?
+#. ( apparently AM static was a potential concern )
+#. type: Plain text
+#: ../man/top.1:2686
+msgid "For these stupid tricks, \\*(We needs \\*(FM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2693
+msgid ""
+"The user interface, through prompts and help, intentionally implies that the "
+"delay interval is limited to tenths of a second. However, you're free to "
+"set any desired delay. If you want to see Linux at his scheduling best, try "
+"a delay of .09 seconds or less."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2696
+msgid ""
+"For this experiment, under x-windows open an xterm and maximize it. Then do "
+"the following:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2705
+#, no-wrap
+msgid ""
+" . provide a scheduling boost and tiny delay via:\n"
+" nice -n -10 \\*(We -d.09\n"
+" . keep sorted column highlighting \\*F so as to\n"
+" minimize path length\n"
+" . turn \\*O reverse row highlighting for emphasis\n"
+" . try various sort columns (TIME/MEM work well),\n"
+" and normal or reverse sorts to bring the most\n"
+" active processes into view\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2709
+msgid ""
+"What you'll see is a very busy Linux doing what he's always done for you, "
+"but there was no program available to illustrate this."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2715
+msgid ""
+"Under an xterm using `white-on-black' colors, on \\*(We's Color Mapping "
+"screen set the task color to black and be sure that task highlighting is set "
+"to bold, not reverse. Then set the delay interval to around .3 seconds."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2718
+msgid ""
+"After bringing the most active processes into view, what you'll see are the "
+"ghostly images of just the currently running tasks."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2724
+msgid ""
+"Delete the existing rcfile, or create a new symlink. Start this new version "
+"then type `T' (a secret key, \\*(Xt 4c. Task Area Commands, SORTING) "
+"followed by `W' and `q'. Finally, restart the program with -d0 (zero "
+"delay)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2729
+msgid ""
+"Your display will be refreshed at three times the rate of the former \\*(We, "
+"a 300% speed advantage. As \\*(We climbs the TIME ladder, be as patient as "
+"you can while speculating on whether or not \\*(We will ever reach the "
+"\\*(We."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2731
+#, no-wrap
+msgid "7b. Bouncing Windows"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2734
+msgid "For these stupid tricks, \\*(We needs \\*(AM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2740
+msgid ""
+"With 3 or 4 \\*(TDs visible, pick any window other than the last and turn "
+"idle processes \\*F using the `i' \\*(CT. Depending on where you applied "
+"`i', sometimes several \\*(TDs are bouncing and sometimes it's like an "
+"accordion, as \\*(We tries his best to allocate space."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2746
+msgid ""
+"Set each window's summary lines differently: one with no memory (`m'); "
+"another with no states (`t'); maybe one with nothing at all, just the "
+"message line. Then hold down `a' or `w' and watch a variation on bouncing "
+"windows \\*(Em hopping windows."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2751
+msgid ""
+"Display all 4 windows and for each, in turn, set idle processes to \\*F "
+"using the `i' \\*(CT. You've just entered the \"extreme bounce\" zone."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2753
+#, no-wrap
+msgid "7c. The Big Bird Window"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2756
+msgid "This stupid trick also requires \\*(AM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2761
+msgid ""
+"Display all 4 windows and make sure that 1:Def is the \\*(CW. Then, keep "
+"increasing window size with the `n' \\*(CI until all the other \\*(TDs are "
+"\"pushed out of the nest\"."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2765
+msgid ""
+"When they've all been displaced, toggle between all visible/invisible "
+"windows using the `_' \\*(CT. Then ponder this:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2767
+#, no-wrap
+msgid " is \\*(We fibbing or telling honestly your imposed truth?\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2769
+#, no-wrap
+msgid "7d. The Ol' Switcheroo"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2773
+msgid ""
+"This stupid trick works best without \\*(AM, since justification is active "
+"on a per window basis."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2778
+msgid ""
+"Start \\*(We and make COMMAND the last (rightmost) column displayed. If "
+"necessary, use the `c' \\*(CT to display command lines and ensure that "
+"forest view mode is active with the `V' \\*(CT."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2782
+msgid ""
+"Then use the up/down arrow keys to position the display so that some "
+"truncated command lines are shown (`+' in last position). You may have to "
+"resize your xterm to produce truncation."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2784
+msgid "Lastly, use the `j' \\*(CT to make the COMMAND column right justified."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2788
+msgid ""
+"Now use the right arrow key to reach the COMMAND column. Continuing with "
+"the right arrow key, watch closely the direction of travel for the command "
+"lines being shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2791
+#, no-wrap
+msgid " some lines travel left, while others travel right\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2793
+#, no-wrap
+msgid " eventually all lines will Switcheroo, and move right\n"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2795
+#, no-wrap
+msgid "9. BUGS"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2800
+msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE .>"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2802
+#, no-wrap
+msgid "10. SEE Also"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2810
+msgid ""
+"B<free>(1), B<ps>(1), B<uptime>(1), B<atop>(1), B<slabtop>(1), B<vmstat>(8), "
+"B<w>(1)"
+msgstr ""
+
+#. type: TH
+#: ../man/procps.3:11
+#, no-wrap
+msgid "PROCPS"
+msgstr ""
+
+#. type: TH
+#: ../man/procps.3:11 ../man/procps_misc.3:11 ../man/procps_pids.3:11
+#, no-wrap
+msgid "August 2022"
+msgstr ""
+
+#. type: TH
+#: ../man/procps.3:11 ../man/procps_misc.3:11 ../man/procps_pids.3:11
+#, no-wrap
+msgid "libproc2"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:17
+msgid "procps - API to access system level information in the /proc filesystem"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:22
+msgid ""
+"Five distinct interfaces are represented in this synopsis and named after "
+"the files they access in the /proc pseudo filesystem: B<diskstats>, "
+"B<meminfo>, B<slabinfo>, B<stat> and B<vmstat>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:26
+#, no-wrap
+msgid "#include E<lt>libproc2/B<named_interface>.hE<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:30
+#, no-wrap
+msgid ""
+"intB< procps_new > (struct info **I<info>);\n"
+"intB< procps_ref > (struct info *I<info>);\n"
+"intB< procps_unref> (struct info **I<info>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:35
+#, no-wrap
+msgid ""
+"struct result *B<procps_get> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<name>, ] B<diskstats> api only\n"
+" enum item I<item>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:41
+#, no-wrap
+msgid ""
+"struct stack *B<procps_select> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<name>, ] B<diskstats> api only\n"
+" enum item *I<items>,\n"
+" int I<numitems>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:47
+#, no-wrap
+msgid ""
+"struct reaped *B<procps_reap> (\n"
+" struct info *I<info>,\n"
+"[ enum reap_type I<what>, ] B<stat> api only\n"
+" enum item *I<items>,\n"
+" int I<numitems>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:54
+#, no-wrap
+msgid ""
+"struct stack **B<procps_sort> (\n"
+" struct info *I<info>,\n"
+" struct stack *I<stacks>[],\n"
+" int I<numstacked>,\n"
+" enum item I<sortitem>,\n"
+" enum sort_order I<order>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:61
+msgid ""
+"The above functions and structures are generic but the specific "
+"B<named_interface> would also be part of any identifiers. For example, "
+"`procps_new' would actually be `procps_B<meminfo>_new' and `info' would "
+"really be `B<diskstats>_info', etc."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:64
+msgid ""
+"The same B<named_interface> is used in each header file name with an "
+"appended `.h' suffix."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:66 ../man/procps_pids.3:60
+msgid "Link with I<-lproc2>."
+msgstr ""
+
+#. type: SS
+#: ../man/procps.3:68 ../man/procps_pids.3:62
+#, no-wrap
+msgid "Overview"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:74
+msgid ""
+"Central to these interfaces is a simple `result' structure reflecting an "
+"`item' plus its value (in a union with standard C language types as "
+"members). All `result' structures are automatically allocated and provided "
+"by the library."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:80 ../man/procps_pids.3:74
+msgid ""
+"By specifying an array of `items', these structures can be organized as a "
+"`stack', potentially yielding many results with a single function call. "
+"Thus, a `stack' can be viewed as a variable length record whose content and "
+"order is determined solely by the user."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:85
+msgid ""
+"As part of each interface there are two unique enumerators. The `noop' and "
+"`extra' items exist to hold user values. They are never set by the library, "
+"but the `extra' result will be zeroed with each library interaction."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:91
+msgid ""
+"The B<named_interface> header file will be an essential document during user "
+"program development. There you will find available items, their return type "
+"(the `result' struct member name) and the source for such values. "
+"Additional enumerators and structures are also documented there."
+msgstr ""
+
+#. type: SS
+#: ../man/procps.3:92 ../man/procps_pids.3:86
+#, no-wrap
+msgid "Usage"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:95
+msgid "The following would be a typical sequence of calls to these interfaces."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:100
+#, no-wrap
+msgid ""
+"1. B<procps_new()>\n"
+"2. B<procps_get()>, B<procps_select()> or B<procps_reap()>\n"
+"3. B<procps_unref()>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:106
+msgid ""
+"The B<get> function is used to retrieve a `result' structure for a single "
+"`item'. Alternatively, a B<GET> macro is available when only the return "
+"value is of interest."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:109
+msgid ""
+"The B<select> function can retrieve multiple `result' structures in a single "
+"`stack'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:115
+msgid ""
+"For unpredictable variable outcomes, the B<diskstats>, B<slabinfo> and "
+"B<stat> interfaces export a B<reap> function. It is used to retrieve "
+"multiple `stacks' each containing multiple `result' structures. Optionally, "
+"a user may choose to B<sort> those results."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:122 ../man/procps_pids.3:114
+msgid ""
+"To exploit any `stack', and access individual `result' structures, a "
+"I<relative_enum> is required as shown in the B<VAL> macro defined in the "
+"header file. Such values could be hard coded as: 0 through numitems-1. "
+"However, this need is typically satisfied by creating your own enumerators "
+"corresponding to the order of the `items' array."
+msgstr ""
+
+#. type: SS
+#: ../man/procps.3:123 ../man/procps_pids.3:115
+#, no-wrap
+msgid "Caveats"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:126
+msgid ""
+"The B<new>, B<ref>, B<unref>, B<get> and B<select> functions are available "
+"in all five interfaces."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:131 ../man/procps_pids.3:127
+msgid ""
+"For the B<new> and B<unref> functions, the address of an I<info> struct "
+"pointer must be supplied. With B<new> it must have been initialized to "
+"NULL. With B<unref> it will be reset to NULL if the reference count reaches "
+"zero."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:135
+msgid ""
+"In the case of the B<diskstats> interface, a I<name> parameter on the B<get> "
+"and B<select> functions identifies a disk or partition name"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:139
+msgid ""
+"For the B<stat> interface, a I<what> parameter on the B<reap> function "
+"identifies whether data for just CPUs or both CPUs and NUMA nodes is to be "
+"gathered."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:143
+msgid ""
+"When using the B<sort> function, the parameters I<stacks> and I<numstacked> "
+"would normally be those returned in the `reaped' structure."
+msgstr ""
+
+#. type: SH
+#: ../man/procps.3:144 ../man/procps_misc.3:127 ../man/procps_pids.3:148
+#, no-wrap
+msgid "RETURN VALUE"
+msgstr ""
+
+#. type: SS
+#: ../man/procps.3:145 ../man/procps_pids.3:149
+#, no-wrap
+msgid "Functions Returning an `int'"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:148 ../man/procps_misc.3:131 ../man/procps_pids.3:152
+msgid ""
+"An error will be indicated by a negative number that is always the inverse "
+"of some well known errno.h value."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:152 ../man/procps_pids.3:156
+msgid ""
+"Success is indicated by a zero return value. However, the B<ref> and "
+"B<unref> functions return the current I<info> structure reference count."
+msgstr ""
+
+#. type: SS
+#: ../man/procps.3:153 ../man/procps_misc.3:132 ../man/procps_pids.3:157
+#, no-wrap
+msgid "Functions Returning an `address'"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:156 ../man/procps_misc.3:135 ../man/procps_pids.3:160
+msgid ""
+"An error will be indicated by a NULL return pointer with the reason found in "
+"the formal errno value."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:158
+msgid "Success is indicated by a pointer to the named structure."
+msgstr ""
+
+#. type: SH
+#: ../man/procps.3:159 ../man/procps_pids.3:165
+#, no-wrap
+msgid "DEBUGGING"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:165
+msgid ""
+"To aid in program development, there is a provision that can help ensure "
+"`result' member references agree with library expectations. It assumes that "
+"a supplied macro in the header file is used to access the `result' value."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:168 ../man/procps_pids.3:185
+msgid ""
+"This feature can be activated through either of the following methods and "
+"any discrepancies will be written to B<stderr>."
+msgstr ""
+
+#. type: IP
+#: ../man/procps.3:169 ../man/procps_pids.3:186
+#, no-wrap
+msgid "1)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:172
+msgid "Add CFLAGS='-DXTRA_PROCPS_DEBUG' to any other ./configure options employed."
+msgstr ""
+
+#. type: IP
+#: ../man/procps.3:173 ../man/procps_pids.3:190
+#, no-wrap
+msgid "2)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:176
+msgid ""
+"Add #include E<lt>procps/xtra-procps-debug.hE<gt> to any program I<after> "
+"the named interface includes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:181 ../man/procps_pids.3:198
+msgid ""
+"This verification feature incurs substantial overhead. Therefore, it is "
+"important that it I<not> be activated for a production/release build."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:185
+msgid "B<procps_misc>(3), B<procps_pids>(3), B<proc>(5)."
+msgstr ""
+
+#. type: TH
+#: ../man/procps_misc.3:11
+#, no-wrap
+msgid "PROCPS_MISC"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:17
+msgid "procps_misc - API for miscellaneous information in the /proc filesystem"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:20
+#, no-wrap
+msgid "B<#include E<lt>libproc2/misc.hE<gt>>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:22
+#, no-wrap
+msgid "Platform Particulars\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:28
+#, no-wrap
+msgid ""
+"long B<procps_cpu_count> (void);\n"
+"long B<procps_hertz_get> (void);\n"
+"unsigned int B<procps_pid_length> (void);\n"
+"int B<procps_linux_version> (void);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:31
+#, no-wrap
+msgid "Runtime Particulars\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:37
+#, no-wrap
+msgid ""
+"int B< procps_loadavg> (double *I<av1>, double *I<av5>, double *I<av15>);\n"
+"int B< procps_uptime> (double *I<uptime_secs>, double *I<idle_secs>);\n"
+"char *B<procps_uptime_sprint> (void);\n"
+"char *B<procps_uptime_sprint_short> (void);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:40
+#, no-wrap
+msgid "Namespace Particulars\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:45
+#, no-wrap
+msgid ""
+"int B< procps_ns_get_id> (const char *I<name>);\n"
+"const charB< *procps_ns_get_name> (int I<id>);\n"
+"int B< procps_ns_read_pid> (int I<pid>, struct procps_ns *I<nsp>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:48
+#, no-wrap
+msgid "Link with I<-lproc2>.\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:54
+msgid ""
+"B<procps_cpu_count>() returns the number of CPUs that are currently online "
+"as B<sysconf(>I<_SC_NPROCESSORS_ONLY>B<)> or an assumed I<1>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:60
+msgid ""
+"B<procps_hertz_get>() returns the number of clock ticks per second as "
+"B<sysconf(>I<_SC_CLK_TCK>B<)> or an assumed I<100>. Dividing tics by this "
+"value yields seconds."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:65
+msgid ""
+"B<procps_pid_length>() returns the maximum string length for a PID on the "
+"system. For example, if the largest possible PID value on was 123, then the "
+"length would be 3. If the file I</proc/sys/kernel/pid_max> is unreadable, "
+"the value is assumed to be I<5>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:74
+msgid ""
+"B<procps_linux_version>() returns the current Linux version as an encoded "
+"integer. On non-Linux systems that have an emulated proc filesystem this "
+"function returns the version of the Linux emulation instead. The version "
+"consists of three positive integers representing the major, minor and patch "
+"levels. The following macros are provided for encoding a given Linux "
+"version or separating out the components of the current version."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:77
+msgid "LINUX_VERSION(\\ major\\ ,\\ minor\\ ,\\ patch\\ )"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:79
+msgid "LINUX_VERSION_MAJOR(\\ ver\\ )"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:81
+msgid "LINUX_VERSION_MINOR(\\ ver\\ )"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:83
+msgid "LINUX_VERSION_PATCH(\\ ver\\ )"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:88
+msgid ""
+"B<procps_loadavg>() fetches the system load average and puts the 1, 5 and "
+"15 minute averages into location(s) specified by any pointer which is not "
+"I<NULL>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:93
+msgid ""
+"B<procps_uptime>() returns uptime and/or idle seconds into location(s) "
+"specified by any pointer which is not I<NULL>. The B<sprint> varieties "
+"return a human-readable string in one of two forms."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:96
+msgid "HH:MM:SS up HH:MM, # users, load average: 1, 5, 15 MM averages"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:98
+msgid "up HH, MM"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:102
+msgid ""
+"B<procps_ns_get_id>() returns the integer id (enum namespace_type) of the "
+"namespace for the given namespace I<name>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:105
+msgid ""
+"B<procps_ns_get_name>() returns the name of the namespace for the given "
+"I<id> (enum namespace_type)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:110
+msgid ""
+"B<procps_ns_read_pid>() returns the inodes for the namespaces of the given "
+"process in the procps_ns structure pointed to by I<nsp>. Those inodes will "
+"appear in the order proscribed by enum namespace_type."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:123
+#, no-wrap
+msgid ""
+"enum namespace_type {\n"
+" PROCPS_NS_CGROUP,\n"
+" PROCPS_NS_IPC,\n"
+" PROCPS_NS_MNT,\n"
+" PROCPS_NS_NET,\n"
+" PROCPS_NS_PID,\n"
+" PROCPS_NS_TIME,\n"
+" PROCPS_NS_USER,\n"
+" PROCPS_NS_UTS\n"
+"};\n"
+msgstr ""
+
+#. type: SS
+#: ../man/procps_misc.3:128
+#, no-wrap
+msgid "Functions Returning an `int' or `long'"
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:137
+#, no-wrap
+msgid "I</proc/loadavg>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:140
+msgid "The raw values for load average."
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:140
+#, no-wrap
+msgid "I</proc/sys/kernel/osrelease>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:143
+msgid "Contains the release version of the Linux kernel or proc filesystem."
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:143
+#, no-wrap
+msgid "I</proc/sys/kernel/pid_max>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:146
+msgid ""
+"Contains the value at which PIDs wrap around, one greater than the maximum "
+"PID value."
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:146
+#, no-wrap
+msgid "I</proc/uptime>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:149
+msgid "The raw values for uptime and idle time."
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:149
+#, no-wrap
+msgid "I</proc/E<lt>PIDE<gt>/ns>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:152
+msgid "contains the set of namespaces for a particular B<PID>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:156
+msgid "B<procps>(3), B<procps_pids>(3), B<proc>(5)."
+msgstr ""
+
+#. type: TH
+#: ../man/procps_pids.3:11
+#, no-wrap
+msgid "PROCPS_PIDS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:17
+msgid "procps_pids - API to access process information in the /proc filesystem"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:21
+#, no-wrap
+msgid "#include E<lt>libproc2/pids.hE<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:25
+#, no-wrap
+msgid ""
+"intB< procps_pids_new > (struct pids_info **I<info>, enum pids_item "
+"*I<items>, int I<numitems>);\n"
+"intB< procps_pids_ref > (struct pids_info *I<info>);\n"
+"intB< procps_pids_unref> (struct pids_info **I<info>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:30
+#, no-wrap
+msgid ""
+"struct pids_stack *B<procps_pids_get> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<which>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:34
+#, no-wrap
+msgid ""
+"struct pids_fetch *B<procps_pids_reap> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<which>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:40
+#, no-wrap
+msgid ""
+"struct pids_fetch *B<procps_pids_select> (\n"
+" struct pids_info *I<info>,\n"
+" unsigned *I<these>,\n"
+" int I<numthese>,\n"
+" enum pids_select_type I<which>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:47
+#, no-wrap
+msgid ""
+"struct pids_stack **B<procps_pids_sort> (\n"
+" struct pids_info *I<info>,\n"
+" struct pids_stack *I<stacks>[],\n"
+" int I<numstacked>,\n"
+" enum pids_item I<sortitem>,\n"
+" enum pids_sort_order I<order>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:52
+#, no-wrap
+msgid ""
+"int B<procps_pids_reset> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_item *I<newitems>,\n"
+" int I<newnumitems>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:56
+#, no-wrap
+msgid ""
+"struct pids_stack *B<fatal_proc_unmounted> (\n"
+" struct pids_info *I<info>,\n"
+" int I<return_self>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:68
+msgid ""
+"Central to this interface is a simple `result' structure reflecting an "
+"`item' plus its value (in a union with standard C language types as "
+"members). All `result' structures are automatically allocated and provided "
+"by the library."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:79
+msgid ""
+"As part of this interface there are two unique enumerators. The `noop' and "
+"`extra' items exist to hold user values. They are never set by the library, "
+"but the `extra' result will be zeroed with each library interaction."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:85
+msgid ""
+"The pids.h file will be an essential document during user program "
+"development. There you will find available items, their return type (the "
+"`result' struct member name) and the source for such values. Additional "
+"enumerators and structures are also documented there."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:89
+msgid "The following would be a typical sequence of calls to this interface."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:95
+#, no-wrap
+msgid ""
+"1. B<fatal_proc_unmounted()>\n"
+"2. B<procps_pids_new()>\n"
+"3. B<procps_pids_get()>, B<procps_pids_reap()> or B<procps_pids_select()>\n"
+"4. B<procps_pids_unref()>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:100
+msgid ""
+"The B<get> function is an iterator for successive PIDs/TIDs, returning those "
+"`items' previously identified via B<new> or B<reset>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:107
+msgid ""
+"Two functions support unpredictable variable outcomes. The B<reap> function "
+"gathers data for all processes while the B<select> function deals with "
+"specific PIDs or UIDs. Both can return multiple `stacks' each containing "
+"multiple `result' structures. Optionally, a user may choose to B<sort> such "
+"results"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:122
+msgid ""
+"The E<lt>pidsE<gt> API differs from others in that those items of interest "
+"must be provided at B<new> or B<reset> time, the latter being unique to this "
+"API. If either the I<items> or I<numitems> parameter is zero at B<new> "
+"time, then B<reset> becomes mandatory before issuing any other call."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:130
+msgid ""
+"The B<get> and B<reap> functions use the I<which> parameter to specify "
+"whether just tasks or both tasks and threads are to be fetched."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:135
+msgid ""
+"The B<select> function requires an array of PIDs or UIDs as I<these> along "
+"with I<numthese> to identify which processes are to be fetched. This "
+"function then operates as a subset of B<reap>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:139
+msgid ""
+"When using the B<sort> function, the parameters I<stacks> and I<numstacked> "
+"would normally be those returned in the `pids_fetch' structure."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:147
+msgid ""
+"Lastly, a B<fatal_proc_unmounted> function may be called before any other "
+"function to ensure that the /proc/ directory is mounted. As such, the "
+"I<info> parameter would be NULL and the I<return_self> parameter zero. If, "
+"however, some items are desired for the issuing program (a I<return_self> "
+"other than zero) then the B<new> call must precede it to identify the "
+"I<items> and obtain the required I<info> pointer."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:164
+msgid ""
+"Success is indicated by a pointer to the named structure. However, if one "
+"survives the B<fatal_proc_unmounted> call, NULL is always returned when "
+"I<return_self> is zero."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:168
+msgid ""
+"To aid in program development, there are two procps-ng provisions that can "
+"be exploited."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:173
+msgid ""
+"The first is a supplied file named `libproc.supp' which may be useful when "
+"developing a I<multi-threaded> application. When used with the valgrind "
+"`--suppressions=' option, warnings associated with the procps library itself "
+"are avoided."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:177
+msgid ""
+"Such warnings arise because the library handles heap based allocations in a "
+"thread-safe manner. A I<single-threaded> application will not receive those "
+"warnings."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:182
+msgid ""
+"The second provision can help ensure `result' member references agree with "
+"library expectations. It assumes that a supplied macro in the header file "
+"is used to access the `result' value."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:189
+msgid ""
+"Add CFLAGS='-DXTRA_PROCPS_DEBUG' to any other ./configure options your "
+"project may employ."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:193
+msgid ""
+"Add #include E<lt>procps/xtra-procps-debug.hE<gt> to any program I<after> "
+"the #include E<lt>procps/pids.hE<gt>."
+msgstr ""
+
+#. type: SH
+#: ../man/procps_pids.3:199
+#, no-wrap
+msgid "ENVIRONMENT VARIABLE(S)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:206
+msgid ""
+"This will hide kernel threads which would otherwise be returned with a "
+"B<procps_pids_get>, B<procps_pids_select> or B<procps_pids_reap> call."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:210
+msgid "B<procps>(3), B<procps_misc>(3), B<proc>(5)."
+msgstr ""
diff --git a/po-man/pt_BR.po b/po-man/pt_BR.po
new file mode 100644
index 0000000..7ba0e5f
--- /dev/null
+++ b/po-man/pt_BR.po
@@ -0,0 +1,17397 @@
+# Brazilian Portuguese translation for procps-ng-man.
+# Copyright (C) 2021 Free Software Foundation, Inc.
+# This file is distributed under the same license as the procps-ng package.
+# Rafael Fontenelle <rafaelff@gnome.org>, 2018-2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: procps-ng-man 3.3.17rc1\n"
+"Report-Msgid-Bugs-To: Procps list <procps@freelists.org>\n"
+"POT-Creation-Date: 2023-08-19 17:38+1000\n"
+"PO-Revision-Date: 2021-02-03 07:20-0300\n"
+"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
+"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
+"net>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+"X-Generator: Gtranslator 3.38.0\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+
+#. type: TH
+#: ../man/free.1:14
+#, no-wrap
+msgid "FREE"
+msgstr "FREE"
+
+#. type: TH
+#: ../man/free.1:14
+#, fuzzy, no-wrap
+#| msgid "2018-05-31"
+msgid "2023-05-02"
+msgstr "2018-05-31"
+
+#. type: TH
+#: ../man/free.1:14 ../man/kill.1:12 ../man/pgrep.1:13 ../man/pmap.1:19
+#: ../man/pwdx.1:12 ../man/skill.1:12 ../man/slabtop.1:14 ../man/sysctl.8:14
+#: ../man/sysctl.conf.5:13 ../man/tload.1:12 ../man/uptime.1:13
+#: ../man/vmstat.8:13 ../man/w.1:14 ../man/watch.1:13 ../man/ps.1:13
+#: ../man/top.1:62
+#, no-wrap
+msgid "procps-ng"
+msgstr "procps-ng"
+
+#. type: TH
+#: ../man/free.1:14 ../man/kill.1:12 ../man/pgrep.1:13 ../man/pidof.1:13
+#: ../man/pmap.1:19 ../man/pwdx.1:12 ../man/skill.1:12 ../man/slabtop.1:14
+#: ../man/tload.1:12 ../man/uptime.1:13 ../man/w.1:14 ../man/watch.1:13
+#: ../man/ps.1:13 ../man/top.1:62
+#, no-wrap
+msgid "User Commands"
+msgstr "Comandos de usuário"
+
+#. type: SH
+#: ../man/free.1:15 ../man/kill.1:13 ../man/pgrep.1:14 ../man/pidof.1:14
+#: ../man/pmap.1:20 ../man/pwdx.1:13 ../man/skill.1:13 ../man/slabtop.1:15
+#: ../man/sysctl.8:15 ../man/sysctl.conf.5:14 ../man/tload.1:13
+#: ../man/uptime.1:14 ../man/vmstat.8:14 ../man/w.1:15 ../man/watch.1:14
+#: ../man/ps.1:27 ../man/top.1:67 ../man/procps.3:15 ../man/procps_misc.3:15
+#: ../man/procps_pids.3:15
+#, no-wrap
+msgid "NAME"
+msgstr "NOME"
+
+#. type: Plain text
+#: ../man/free.1:17
+msgid "free - Display amount of free and used memory in the system"
+msgstr "free - Exibe quantidade de memória livre e usada no sistema"
+
+#. type: SH
+#: ../man/free.1:17 ../man/kill.1:15 ../man/pgrep.1:16 ../man/pidof.1:16
+#: ../man/pmap.1:22 ../man/pwdx.1:15 ../man/skill.1:15 ../man/slabtop.1:17
+#: ../man/sysctl.8:17 ../man/tload.1:15 ../man/uptime.1:16 ../man/vmstat.8:16
+#: ../man/w.1:17 ../man/watch.1:16 ../man/ps.1:29 ../man/top.1:72
+#: ../man/procps.3:18 ../man/procps_misc.3:17 ../man/procps_pids.3:18
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "SINOPSE"
+
+#. type: Plain text
+#: ../man/free.1:20
+msgid "B<free> [I<options>]"
+msgstr "B<free> [I<opções>]"
+
+#. type: SH
+#: ../man/free.1:20 ../man/kill.1:18 ../man/pgrep.1:25 ../man/pidof.1:30
+#: ../man/pmap.1:25 ../man/skill.1:25 ../man/slabtop.1:20 ../man/sysctl.8:23
+#: ../man/sysctl.conf.5:16 ../man/tload.1:18 ../man/uptime.1:19
+#: ../man/vmstat.8:20 ../man/w.1:20 ../man/watch.1:19 ../man/ps.1:31
+#: ../man/ps.1:1002 ../man/top.1:77 ../man/procps.3:67 ../man/procps_misc.3:49
+#: ../man/procps_pids.3:61
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "DESCRIÇÃO"
+
+#. type: Plain text
+#: ../man/free.1:26
+msgid ""
+"B<free> displays the total amount of free and used physical and swap memory "
+"in the system, as well as the buffers and caches used by the kernel. The "
+"information is gathered by parsing /proc/meminfo. The displayed columns are:"
+msgstr ""
+"B<free> exibe a quantidade total de memória física e de swap livre e usada "
+"no sistema, bem como os buffers e caches usados pelo kernel. A informação é "
+"coletada através da análise de /proc/meminfo. As colunas exibidas são:"
+
+#. type: TP
+#: ../man/free.1:26
+#, no-wrap
+msgid "B<total>"
+msgstr "B<total>"
+
+#. type: Plain text
+#: ../man/free.1:30
+msgid ""
+"Total usable memory (MemTotal and SwapTotal in /proc/meminfo). This includes "
+"the physical and swap memory minus a few reserved bits and kernel binary "
+"code."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:30
+#, no-wrap
+msgid "B<used>"
+msgstr "B<usada>"
+
+#. type: Plain text
+#: ../man/free.1:33
+#, fuzzy
+#| msgid ""
+#| "Used memory (calculated as B<total> - B<free> - B<buffers> - B<cache>)"
+msgid "Used or unavailable memory (calculated as B<total> - B<available>)"
+msgstr ""
+"Memória usada (calculada como B<total> - B<livre> - B<buffers> - B<cache>)"
+
+#. type: TP
+#: ../man/free.1:33
+#, no-wrap
+msgid "B<free>"
+msgstr "B<livre>"
+
+#. type: Plain text
+#: ../man/free.1:36
+msgid "Unused memory (MemFree and SwapFree in /proc/meminfo)"
+msgstr "Memória não usada (MemFree e SwapFree em /proc/meminfo)"
+
+#. type: TP
+#: ../man/free.1:36
+#, no-wrap
+msgid "B<shared>"
+msgstr "B<compart.>"
+
+#. type: Plain text
+#: ../man/free.1:39
+msgid "Memory used (mostly) by tmpfs (Shmem in /proc/meminfo)"
+msgstr "Memória usada (geralmente) por tmpfs (Shmem em /proc/meminfo)"
+
+#. type: TP
+#: ../man/free.1:39
+#, no-wrap
+msgid "B<buffers>"
+msgstr "B<buffers>"
+
+#. type: Plain text
+#: ../man/free.1:42
+msgid "Memory used by kernel buffers (Buffers in /proc/meminfo)"
+msgstr "Memória usada por buffers do kernel (Buffers em /proc/meminfo)"
+
+#. type: TP
+#: ../man/free.1:42
+#, no-wrap
+msgid "B<cache>"
+msgstr "B<cache>"
+
+#. type: Plain text
+#: ../man/free.1:45
+msgid ""
+"Memory used by the page cache and slabs (Cached and SReclaimable in /proc/"
+"meminfo)"
+msgstr ""
+"Memória usada por slabs e cache de páginas (Cached e SReclaimable em /proc/"
+"meminfo)"
+
+#. type: TP
+#: ../man/free.1:45
+#, no-wrap
+msgid "B<buff/cache>"
+msgstr "B<buff/cache>"
+
+#. type: Plain text
+#: ../man/free.1:48
+msgid "Sum of B<buffers> and B<cache>"
+msgstr "Soma de B<buffers> e B<cache>"
+
+#. type: TP
+#: ../man/free.1:48
+#, no-wrap
+msgid "B<available>"
+msgstr "B<disponível>"
+
+#. type: Plain text
+#: ../man/free.1:57
+msgid ""
+"Estimation of how much memory is available for starting new applications, "
+"without swapping. Unlike the data provided by the B<cache> or B<free> "
+"fields, this field takes into account page cache and also that not all "
+"reclaimable memory slabs will be reclaimed due to items being in use "
+"(MemAvailable in /proc/meminfo, available on kernels 3.14, emulated on "
+"kernels 2.6.27+, otherwise the same as B<free>)"
+msgstr ""
+"Estimativa da quantidade de memória disponível para iniciar novos "
+"aplicativos, sem fazer uso da swap. Ao contrário dos dados fornecidos pelos "
+"campos B<cache> ou B<livre>, este campo leva em consideração o cache da "
+"página e também que nem todos os slabs recuperáveis de memória serão "
+"recuperados devido a itens em uso (MemAvailable em /proc/meminfo, disponível "
+"em kernels 3.14, emulado em kernels 2.6.27+; caso contrário, o mesmo que "
+"B<livre>)"
+
+#. type: SH
+#: ../man/free.1:57 ../man/kill.1:34 ../man/pgrep.1:53 ../man/pidof.1:34
+#: ../man/pmap.1:29 ../man/pwdx.1:18 ../man/skill.1:42 ../man/slabtop.1:25
+#: ../man/tload.1:25 ../man/uptime.1:36 ../man/vmstat.8:29 ../man/watch.1:26
+#, no-wrap
+msgid "OPTIONS"
+msgstr "OPÇÕES"
+
+#. type: TP
+#: ../man/free.1:58
+#, no-wrap
+msgid "B<-b>, B<--bytes>"
+msgstr "B<-b>, B<--bytes>"
+
+#. type: Plain text
+#: ../man/free.1:61
+msgid "Display the amount of memory in bytes."
+msgstr "Exibe a quantidade de memória em bytes."
+
+#. type: TP
+#: ../man/free.1:61
+#, no-wrap
+msgid "B<-k>, B<--kibi>"
+msgstr "B<-k>, B<--kibi>"
+
+#. type: Plain text
+#: ../man/free.1:64
+msgid "Display the amount of memory in kibibytes. This is the default."
+msgstr "Exibe a quantidade de memória em kibibytes. Esse é o padrão."
+
+#. type: TP
+#: ../man/free.1:64
+#, no-wrap
+msgid "B<-m>, B<--mebi>"
+msgstr "B<-m>, B<--mebi>"
+
+#. type: Plain text
+#: ../man/free.1:67
+msgid "Display the amount of memory in mebibytes."
+msgstr "Exibe a quantidade de memória em mebibytes."
+
+#. type: TP
+#: ../man/free.1:67
+#, no-wrap
+msgid "B<-g>, B<--gibi>"
+msgstr "B<-g>, B<--gibi>"
+
+#. type: Plain text
+#: ../man/free.1:70
+msgid "Display the amount of memory in gibibytes."
+msgstr "Exibe a quantidade de memória em gibibytes."
+
+#. type: TP
+#: ../man/free.1:70
+#, no-wrap
+msgid "B<--tebi>"
+msgstr "B<--tebi>"
+
+#. type: Plain text
+#: ../man/free.1:73
+msgid "Display the amount of memory in tebibytes."
+msgstr "Exibe a quantidade de memória em tebibytes."
+
+#. type: TP
+#: ../man/free.1:73
+#, no-wrap
+msgid "B<--pebi>"
+msgstr "B<--pebi>"
+
+#. type: Plain text
+#: ../man/free.1:76
+msgid "Display the amount of memory in pebibytes."
+msgstr "Exibe a quantidade de memória em pebibytes."
+
+#. type: TP
+#: ../man/free.1:76
+#, no-wrap
+msgid "B<--kilo>"
+msgstr "B<--kilo>"
+
+#. type: Plain text
+#: ../man/free.1:79
+msgid "Display the amount of memory in kilobytes. Implies --si."
+msgstr "Exibe a quantidade de memória em kilobytes. Implica em --si."
+
+#. type: TP
+#: ../man/free.1:79
+#, no-wrap
+msgid "B<--mega>"
+msgstr "B<--mega>"
+
+#. type: Plain text
+#: ../man/free.1:82
+msgid "Display the amount of memory in megabytes. Implies --si."
+msgstr "Exibe a quantidade de memória em megabytes. Implica em --si."
+
+#. type: TP
+#: ../man/free.1:82
+#, no-wrap
+msgid "B<--giga>"
+msgstr "B<--giga>"
+
+#. type: Plain text
+#: ../man/free.1:85
+msgid "Display the amount of memory in gigabytes. Implies --si."
+msgstr "Exibe a quantidade de memória em gigabytes. Implica em --si."
+
+#. type: TP
+#: ../man/free.1:85
+#, no-wrap
+msgid "B<--tera>"
+msgstr "B<--tera>"
+
+#. type: Plain text
+#: ../man/free.1:88
+msgid "Display the amount of memory in terabytes. Implies --si."
+msgstr "Exibe a quantidade de memória em terabytes. Implica em --si."
+
+#. type: TP
+#: ../man/free.1:88
+#, no-wrap
+msgid "B<--peta>"
+msgstr "B<--peta>"
+
+#. type: Plain text
+#: ../man/free.1:91
+msgid "Display the amount of memory in petabytes. Implies --si."
+msgstr "Exibe a quantidade de memória em megabytes. Implica em --si."
+
+#. type: TP
+#: ../man/free.1:91
+#, no-wrap
+msgid "B<-h>, B<--human>"
+msgstr "B<-h>, B<--human>"
+
+#. type: Plain text
+#: ../man/free.1:95
+msgid ""
+"Show all output fields automatically scaled to shortest three digit unit and "
+"display the units of print out. Following units are used."
+msgstr ""
+"Mostra todos os campos de saída automaticamente dimensionados para a unidade "
+"de três dígitos mais curta e exibe as unidades do resultado. As unidades a "
+"seguir são usadas."
+
+#. type: Plain text
+#: ../man/free.1:103
+#, no-wrap
+msgid ""
+" B = bytes\n"
+" Ki = kibibyte\n"
+" Mi = mebibyte\n"
+" Gi = gibibyte\n"
+" Ti = tebibyte\n"
+" Pi = pebibyte\n"
+msgstr ""
+" B = bytes\n"
+" Ki = kibibyte\n"
+" Mi = mebibyte\n"
+" Gi = gibibyte\n"
+" Ti = tebibyte\n"
+" Pi = pebibyte\n"
+
+#. type: Plain text
+#: ../man/free.1:107
+msgid ""
+"If unit is missing, and you have exbibyte of RAM or swap, the number is in "
+"tebibytes and columns might not be aligned with header."
+msgstr ""
+"Se a unidade for omitida, e você tiver exbibyte de RAM ou swap, o número "
+"está em tebibytes e as colunas podem não estar alinhadas com o cabeçalho."
+
+#. type: TP
+#: ../man/free.1:107 ../man/vmstat.8:89
+#, no-wrap
+msgid "B<-w>, B<--wide>"
+msgstr "B<-w>, B<--wide>"
+
+#. type: Plain text
+#: ../man/free.1:112
+msgid ""
+"Switch to the wide mode. The wide mode produces lines longer than 80 "
+"characters. In this mode B<buffers> and B<cache> are reported in two "
+"separate columns."
+msgstr ""
+"Muda para o modo amplo. O modo amplo produz linhas com mais de 80 "
+"caracteres. Neste modo, B<buffers> e B<cache> são relatados em duas colunas "
+"separadas."
+
+# A tradução da UI usa "N", portanto usei "núm" como algo aproximado
+#. type: TP
+#: ../man/free.1:112
+#, no-wrap
+msgid "B<-c>, B<--count> I<count>"
+msgstr "B<-c>, B<--count> I<núm>"
+
+# A tradução da UI usa "N", portanto usei "núm" como algo aproximado
+#. type: Plain text
+#: ../man/free.1:119
+msgid "Display the result I<count> times. Requires the B<-s> option."
+msgstr "Exibe o resultado I<núm> vezes. Requer a opção B<-s>."
+
+#. type: TP
+#: ../man/free.1:119
+#, no-wrap
+msgid "B<-l>, B<--lohi>"
+msgstr "B<-l>, B<--lohi>"
+
+#. type: Plain text
+#: ../man/free.1:122
+msgid "Show detailed low and high memory statistics."
+msgstr "Mostra estatísticas detalhadas de memória baixa e alta."
+
+#. type: TP
+#: ../man/free.1:122
+#, fuzzy, no-wrap
+#| msgid "B<-s>, B<--since>"
+msgid "B<-L>, B<--line>"
+msgstr "B<-s>, B<--since>"
+
+#. type: Plain text
+#: ../man/free.1:127
+msgid ""
+"Show output on a single line, often used with the B<-s> option to show "
+"memory statistics repeatedly."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:127
+#, no-wrap
+msgid "B<-s>, B<--seconds> I<delay>"
+msgstr "B<-s>, B<--seconds> I<atraso>"
+
+#. type: Plain text
+#: ../man/free.1:134
+msgid ""
+"Continuously display the result I<delay> seconds apart. You may actually "
+"specify any floating point number for I<delay> using either . or , for "
+"decimal point. B<usleep>(3) is used for microsecond resolution delay times."
+msgstr ""
+"Mostra continuamente o resultado a cada I<atraso> segundos. Você pode "
+"especificar qualquer número de ponto flutuante para I<atraso> usando . ou , "
+"para ponto decimal. B<usleep>(3) é usado para tempos de atraso com resolução "
+"em microssegundos."
+
+#. type: TP
+#: ../man/free.1:134
+#, no-wrap
+msgid "B<--si>"
+msgstr "B<--si>"
+
+#. type: Plain text
+#: ../man/free.1:138
+msgid ""
+"Use kilo, mega, giga etc (power of 1000) instead of kibi, mebi, gibi (power "
+"of 1024)."
+msgstr ""
+"Usa kilo, mega, giga etc (potência de 1000) em vez de kibi, mebi, gibi "
+"(potência de 1024)."
+
+#. type: TP
+#: ../man/free.1:138
+#, no-wrap
+msgid "B<-t>, B<--total>"
+msgstr "B<-t>, B<--total>"
+
+#. type: Plain text
+#: ../man/free.1:141
+msgid "Display a line showing the column totals."
+msgstr "Exibe uma linha mostrando os totais das colunas."
+
+#. type: TP
+#: ../man/free.1:141
+#, fuzzy, no-wrap
+#| msgid "B<-c>, B<--count>"
+msgid "B<-v>, B<--committed>"
+msgstr "B<-c>, B<--count>"
+
+#. type: Plain text
+#: ../man/free.1:146
+msgid ""
+"Display a line showing the memory commit limit and amount of committed/"
+"uncommitted memory. The B<total> column on this line will display the memory "
+"commit limit. This line is relevant if memory overcommit is disabled."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:146 ../man/w.1:63
+#, no-wrap
+msgid "B<--help>"
+msgstr "B<--help>"
+
+#. type: Plain text
+#: ../man/free.1:149
+msgid "Print help."
+msgstr "Exibe a ajuda."
+
+#. type: TP
+#: ../man/free.1:149 ../man/pgrep.1:228 ../man/pmap.1:72 ../man/pwdx.1:19
+#: ../man/skill.1:68 ../man/slabtop.1:45 ../man/sysctl.8:116 ../man/tload.1:38
+#: ../man/uptime.1:46 ../man/vmstat.8:97 ../man/w.1:72
+#, no-wrap
+msgid "B<-V>, B<--version>"
+msgstr "B<-V>, B<--version>"
+
+#. type: Plain text
+#: ../man/free.1:152 ../man/skill.1:71 ../man/w.1:75
+msgid "Display version information."
+msgstr "Exibe informação da versão."
+
+#. type: SH
+#: ../man/free.1:153 ../man/slabtop.1:87 ../man/sysctl.8:171
+#: ../man/sysctl.conf.5:64 ../man/tload.1:42 ../man/uptime.1:49 ../man/w.1:88
+#: ../man/procps_misc.3:136
+#, no-wrap
+msgid "FILES"
+msgstr "ARQUIVOS"
+
+#. type: TP
+#: ../man/free.1:154
+#, no-wrap
+msgid "/proc/meminfo"
+msgstr "/proc/meminfo"
+
+#. type: Plain text
+#: ../man/free.1:157
+msgid "memory information"
+msgstr "informações da memória"
+
+#. type: SH
+#: ../man/free.1:158 ../man/pgrep.1:301 ../man/pidof.1:69 ../man/tload.1:50
+#: ../man/watch.1:152 ../man/ps.1:2063
+#, no-wrap
+msgid "BUGS"
+msgstr "ERROS"
+
+#. type: Plain text
+#: ../man/free.1:161
+msgid ""
+"The value for the B<shared> column is not available from kernels before "
+"2.6.32 and is displayed as zero."
+msgstr ""
+"O valor para a coluna B<compart.> não está disponível para kernels "
+"anteriores a 2.6.32 e é exibido como zero."
+
+#. type: TP
+#: ../man/free.1:161
+#, no-wrap
+msgid "Please send bug reports to"
+msgstr "Por favor, envie relatórios de erro para"
+
+#. type: Plain text
+#: ../man/free.1:165
+msgid "E<.UR procps@freelists.org> E<.UE>"
+msgstr "E<.UR procps@freelists.org> E<.UE>"
+
+#. type: SH
+#: ../man/free.1:165 ../man/kill.1:88 ../man/pgrep.1:317 ../man/pidof.1:76
+#: ../man/pmap.1:90 ../man/pwdx.1:25 ../man/skill.1:109 ../man/slabtop.1:91
+#: ../man/sysctl.8:185 ../man/sysctl.conf.5:83 ../man/tload.1:45
+#: ../man/uptime.1:66 ../man/vmstat.8:191 ../man/w.1:95 ../man/ps.1:2070
+#: ../man/procps.3:182 ../man/procps_misc.3:153 ../man/procps_pids.3:207
+#, no-wrap
+msgid "SEE ALSO"
+msgstr "VEJA TAMBÉM"
+
+#. type: Plain text
+#: ../man/free.1:169
+msgid "B<ps>(1), B<slabtop>(1), B<top>(1), B<vmstat>(8)."
+msgstr "B<ps>(1), B<slabtop>(1), B<top>(1), B<vmstat>(8)."
+
+#. type: TH
+#: ../man/kill.1:12
+#, no-wrap
+msgid "KILL"
+msgstr "KILL"
+
+#. type: TH
+#: ../man/kill.1:12 ../man/pgrep.1:13 ../man/pidof.1:13
+#, no-wrap
+msgid "2023-01-16"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:15
+msgid "kill - send a signal to a process"
+msgstr "kill - envia um sinal para um processo"
+
+#. type: Plain text
+#: ../man/kill.1:18
+msgid "B<kill> [options] E<lt>pidE<gt> [...]"
+msgstr "B<kill> [opções] E<lt>pidE<gt> [...]"
+
+#. type: Plain text
+#: ../man/kill.1:34
+msgid ""
+"The default signal for kill is TERM. Use B<-l> or B<-L> to list available "
+"signals. Particularly useful signals include HUP, INT, KILL, STOP, CONT, "
+"and 0. Alternate signals may be specified in three ways: B<-9>, B<-SIGKILL> "
+"or B<-KILL>. Negative PID values may be used to choose whole process "
+"groups; see the PGID column in ps command output. A PID of B<-1> is "
+"special; it indicates all processes except the kill process itself and init."
+msgstr ""
+"O sinal padrão do kill é TERM. Use B<-l> ou B<-L> para listar os sinais "
+"disponíveis. Os sinais particularmente úteis incluem HUP, INT, KILL, STOP, "
+"CONT e 0. Os sinais alternativos podem ser especificados de três maneiras: "
+"B<-9>, B<-SIGKILL> ou B<-KILL>. Valores de PID negativos podem ser usados "
+"para escolher todos os grupos de processo; veja a coluna PGID na saída do "
+"comando ps. Um PID de B<-1> é especial; indica todos os processos, exceto o "
+"próprio processo do kill e o init."
+
+#. type: TP
+#: ../man/kill.1:35
+#, no-wrap
+msgid "B<E<lt>pidE<gt> [...]>"
+msgstr "B<E<lt>pidE<gt> [...]>"
+
+#. type: Plain text
+#: ../man/kill.1:38
+msgid "Send signal to every E<lt>pidE<gt> listed."
+msgstr "Envia sinal para todo E<lt>pidE<gt> listado."
+
+#. type: TP
+#: ../man/kill.1:38
+#, no-wrap
+msgid "B<-E<lt>signalE<gt>>"
+msgstr "B<-E<lt>sinalE<gt>>"
+
+#. type: TQ
+#: ../man/kill.1:40
+#, no-wrap
+msgid "B<-s E<lt>signalE<gt>>"
+msgstr "B<-s E<lt>sinalE<gt>>"
+
+#. type: TQ
+#: ../man/kill.1:42
+#, no-wrap
+msgid "B<--signal E<lt>signalE<gt>>"
+msgstr "B<--signal E<lt>sinalE<gt>>"
+
+#. type: Plain text
+#: ../man/kill.1:50
+msgid ""
+"Specify the B<signal> to be sent. The signal can be specified by using name "
+"or number. The behavior of signals is explained in B<signal>(7) manual "
+"page."
+msgstr ""
+"Especifica o B<sinal> a ser enviado. O sinal pode ser especificado usando um "
+"nome ou número. O comportamento dos sinais é explicado na página de manual "
+"B<signal>(7)."
+
+#. type: TP
+#: ../man/kill.1:50 ../man/pgrep.1:216
+#, no-wrap
+msgid "B<-q>, B<--queue >I<value>"
+msgstr "B<-q>, B<--queue >I<valor>"
+
+#. type: Plain text
+#: ../man/kill.1:62 ../man/pgrep.1:228
+#, fuzzy
+#| msgid ""
+#| "Use B<sigqueue(3)> rather than B<kill(2)> and the value argument is used "
+#| "to specify an integer to be sent with the signal. If the receiving "
+#| "process has installed a handler for this signal using the SA_SIGINFO flag "
+#| "to B<sigaction(2)> , then it can obtain this data via the si_value field "
+#| "of the siginfo_t structure."
+msgid ""
+"Use B<sigqueue>(3) rather than B<kill>(2) and the value argument is used "
+"to specify an integer to be sent with the signal. If the receiving process "
+"has installed a handler for this signal using the SA_SIGINFO flag to "
+"B<sigaction>(2), then it can obtain this data via the si_value field of the "
+"siginfo_t structure."
+msgstr ""
+"Use B<sigqueue(3)> em vez de B<kill(2)> e o argumento de valor é usado para "
+"especificar um inteiro a ser enviado com o sinal. Se o processo de "
+"recebimento instalou um manipulador para este sinal usando o sinalizador "
+"SA_SIGINFO para B<sigaction(2)>, então ele pode obter esses dados através do "
+"campo si_value da estrutura siginfo_t."
+
+#. type: TP
+#: ../man/kill.1:62
+#, no-wrap
+msgid "B<-l>, B<--list> [I<signal>]"
+msgstr "B<-l>, B<--list> [I<sinal>]"
+
+#. type: Plain text
+#: ../man/kill.1:66
+msgid ""
+"List signal names. This option has optional argument, which will convert "
+"signal number to signal name, or other way round."
+msgstr ""
+"Lista nomes de sinais. Essa opção possui um argumento opcional, que vai "
+"converter o número do sinal para um nome de sinal, e vice-versa."
+
+#. type: TP
+#: ../man/kill.1:66 ../man/skill.1:52
+#, no-wrap
+msgid "B<-L>,B<\\ --table>"
+msgstr "B<-L>,B<\\ --table>"
+
+#. type: Plain text
+#: ../man/kill.1:69
+msgid "List signal names in a nice table."
+msgstr "Lista nomes de sinais em uma tabela legal."
+
+#. type: SH
+#: ../man/kill.1:71 ../man/pgrep.1:284 ../man/slabtop.1:96
+#: ../man/sysctl.conf.5:39 ../man/vmstat.8:185 ../man/watch.1:144
+#: ../man/ps.1:768
+#, no-wrap
+msgid "NOTES"
+msgstr "NOTAS"
+
+#. type: Plain text
+#: ../man/kill.1:75
+msgid ""
+"Your shell (command line interpreter) may have a built-in kill command. You "
+"may need to run the command described here as /bin/kill to solve the "
+"conflict."
+msgstr ""
+"Seu shell (interpretador de linha de comando) pode ter um comando kill "
+"embutido. Você pode precisar executar o comando descrito aqui como /bin/kill "
+"para resolver o conflito."
+
+#. type: SH
+#: ../man/kill.1:75 ../man/pgrep.1:240 ../man/skill.1:99 ../man/sysctl.8:143
+#: ../man/watch.1:191 ../man/ps.1:84
+#, no-wrap
+msgid "EXAMPLES"
+msgstr "EXEMPLOS"
+
+#. type: TP
+#: ../man/kill.1:76
+#, no-wrap
+msgid "B<kill -9 -1>"
+msgstr "B<kill -9 -1>"
+
+#. type: Plain text
+#: ../man/kill.1:79
+msgid "Kill all processes you can kill."
+msgstr "Termina todos os processos que você pode terminar."
+
+#. type: TP
+#: ../man/kill.1:79
+#, no-wrap
+msgid "B<kill -l 11>"
+msgstr "B<kill -l 11>"
+
+#. type: Plain text
+#: ../man/kill.1:82
+msgid "Translate number 11 into a signal name."
+msgstr "Traduz o número 11 para um nome de sinal."
+
+#. type: TP
+#: ../man/kill.1:82
+#, no-wrap
+msgid "B<kill -L>"
+msgstr "B<kill -L>"
+
+#. type: Plain text
+#: ../man/kill.1:85
+msgid "List the available signal choices in a nice table."
+msgstr "Lista as escolhas de sinais disponíveis em uma tabela legal."
+
+#. type: TP
+#: ../man/kill.1:85
+#, no-wrap
+msgid "B<kill 123 543 2341 3453>"
+msgstr "B<kill 123 543 2341 3453>"
+
+#. type: Plain text
+#: ../man/kill.1:88
+msgid "Send the default signal, SIGTERM, to all those processes."
+msgstr "Envia um sinal padrão, SIGTERM, para todos esses processos."
+
+#. type: Plain text
+#: ../man/kill.1:97
+msgid ""
+"B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), B<renice>(1), "
+"B<signal>(7), B<sigqueue>(3), B<skill>(1)"
+msgstr ""
+"B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), B<renice>(1), "
+"B<signal>(7), B<sigqueue>(3), B<skill>(1)"
+
+#. type: SH
+#: ../man/kill.1:97 ../man/pmap.1:93 ../man/pwdx.1:28 ../man/skill.1:117
+#: ../man/ps.1:2076
+#, no-wrap
+msgid "STANDARDS"
+msgstr "PADRÕES"
+
+#. type: Plain text
+#: ../man/kill.1:101
+#, fuzzy
+#| msgid ""
+#| "This command meets appropriate standards. The B<-L> flag is Linux-"
+#| "specific."
+msgid ""
+"This command meets appropriate standards. The B<-L> flag is Linux-specific."
+msgstr ""
+"Este comando atende as padrões apropriados. A opção B<-L> é específica do "
+"Linux."
+
+#. type: SH
+#: ../man/kill.1:101 ../man/pgrep.1:327 ../man/pidof.1:79 ../man/pwdx.1:32
+#: ../man/skill.1:119 ../man/sysctl.8:189 ../man/sysctl.conf.5:85
+#: ../man/ps.1:2093
+#, no-wrap
+msgid "AUTHOR"
+msgstr "AUTOR"
+
+#. type: Plain text
+#: ../man/kill.1:107
+#, fuzzy
+#| msgid ""
+#| "E<.MT albert@users.sf.net> Albert Cahalan E<.ME> wrote kill in 1999 to "
+#| "replace a bsdutils one that was not standards compliant. The util-linux "
+#| "one might also work correctly."
+msgid ""
+"E<.UR albert@users.sf.net> Albert Cahalan E<.UE> wrote kill in 1999 to "
+"replace a bsdutils one that was not standards compliant. The util-linux one "
+"might also work correctly."
+msgstr ""
+"E<.MT albert@users.sf.net> Albert Cahalan E<.ME> escreveu kill em 1999 para "
+"substituir um do bsdutils que não estava em conformidade com os padrões. O "
+"do The util-linux também pode funcionar corretamente."
+
+#. type: SH
+#: ../man/kill.1:107 ../man/pgrep.1:331 ../man/pmap.1:97 ../man/pwdx.1:37
+#: ../man/skill.1:125 ../man/slabtop.1:120 ../man/sysctl.8:193
+#: ../man/sysctl.conf.5:89 ../man/tload.1:66 ../man/uptime.1:71
+#: ../man/vmstat.8:199 ../man/w.1:112 ../man/watch.1:229
+#, no-wrap
+msgid "REPORTING BUGS"
+msgstr "RELATANDO ERROS"
+
+#. type: Plain text
+#: ../man/kill.1:110 ../man/pgrep.1:334 ../man/pmap.1:100 ../man/pwdx.1:40
+#: ../man/skill.1:128 ../man/slabtop.1:123 ../man/sysctl.8:196
+#: ../man/sysctl.conf.5:92 ../man/tload.1:69 ../man/uptime.1:74
+#: ../man/vmstat.8:202 ../man/w.1:115 ../man/watch.1:232
+msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE>"
+msgstr ""
+"Por favor, envie relatórios de erros para E<.UR procps@freelists.org> E<.UE>"
+
+#. type: TH
+#: ../man/pgrep.1:13
+#, no-wrap
+msgid "PGREP"
+msgstr "PGREP"
+
+#. type: Plain text
+#: ../man/pgrep.1:16
+#, fuzzy
+#| msgid ""
+#| "pgrep, pkill, pwait - look up, signal, or wait for processes based on "
+#| "name and other attributes"
+msgid ""
+"pgrep, pkill, pidwait - look up, signal, or wait for processes based on name "
+"and other attributes"
+msgstr ""
+"pgrep, pkill, pwait - procura, sinaliza ou aguarda processos com base em "
+"nomes e outros atributos"
+
+#. type: Plain text
+#: ../man/pgrep.1:19
+msgid "B<pgrep> [options] pattern"
+msgstr "B<pgrep> [opções] padrão"
+
+#. type: Plain text
+#: ../man/pgrep.1:22
+msgid "B<pkill> [options] pattern"
+msgstr "B<pkill> [opções] padrão"
+
+#. type: Plain text
+#: ../man/pgrep.1:25
+#, fuzzy
+#| msgid "B<pwait> [options] pattern"
+msgid "B<pidwait> [options] pattern"
+msgstr "B<pwait> [opções] padrão"
+
+#. type: Plain text
+#: ../man/pgrep.1:30
+msgid ""
+"B<pgrep> looks through the currently running processes and lists the process "
+"IDs which match the selection criteria to stdout. All the criteria have to "
+"match. For example,"
+msgstr ""
+"B<pgrep> examina os processos atualmente em execução e lista os IDs de "
+"processo que combinam os critérios de seleção para stdout (saída padrão). "
+"Todos os critérios devem corresponder. Por exemplo,"
+
+#. type: Plain text
+#: ../man/pgrep.1:32
+msgid "$ pgrep -u root sshd"
+msgstr "$ pgrep -u root sshd"
+
+#. type: Plain text
+#: ../man/pgrep.1:38
+msgid ""
+"will only list the processes called B<sshd> AND owned by B<root>. On the "
+"other hand,"
+msgstr ""
+"vai listar apenas os processos chamados B<sshd> E pertencentes ao B<root>. "
+"Por outro lado,"
+
+#. type: Plain text
+#: ../man/pgrep.1:40
+msgid "$ pgrep -u root,daemon"
+msgstr "$ pgrep -u root,daemon"
+
+#. type: Plain text
+#: ../man/pgrep.1:45
+msgid "will list the processes owned by B<root> OR B<daemon>."
+msgstr "vai listar os processos pertencentes ao B<root> OU B<daemon>."
+
+#. type: Plain text
+#: ../man/pgrep.1:50
+msgid ""
+"B<pkill> will send the specified signal (by default B<SIGTERM>) to each "
+"process instead of listing them on stdout."
+msgstr ""
+"B<pkill> vai enviar um sinal especificado (por padrão, B<SIGTERM>) para cada "
+"processo em vez de listá-los na stdout (saída padrão)."
+
+#. type: Plain text
+#: ../man/pgrep.1:53
+#, fuzzy
+#| msgid ""
+#| "B<pwait> will wait for each process instead of listing them on stdout."
+msgid ""
+"B<pidwait> will wait for each process instead of listing them on stdout."
+msgstr ""
+"B<pwait> vai aguardar cada processo em vez de listá-los na stdout (saída "
+"padrão)."
+
+#. type: TP
+#: ../man/pgrep.1:54
+#, no-wrap
+msgid "B<->I<signal>"
+msgstr "B<->I<sinal>"
+
+#. type: TQ
+#: ../man/pgrep.1:56
+#, no-wrap
+msgid "B<--signal> I<signal>"
+msgstr "B<--signal> I<sinal>"
+
+#. type: Plain text
+#: ../man/pgrep.1:66
+msgid ""
+"Defines the signal to send to each matched process. Either the numeric or "
+"the symbolic signal name can be used. In B<pgrep> or B<pidwait> mode only "
+"the long option can be used and has no effect unless used in conjunction "
+"with B<--require-handler> to filter to processes with a userspace signal "
+"handler present for a particular signal."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:67
+#, no-wrap
+msgid "B<-c>, B<--count>"
+msgstr "B<-c>, B<--count>"
+
+#. type: Plain text
+#: ../man/pgrep.1:74
+#, fuzzy
+#| msgid ""
+#| "Suppress normal output; instead print a count of matching processes. "
+#| "When count does not match anything, e.g. returns zero, the command will "
+#| "return non-zero value. Note that for pkill and pwait, the count is the "
+#| "number of matching processes, not the processes that were successfully "
+#| "signaled or waited for."
+msgid ""
+"Suppress normal output; instead print a count of matching processes. When "
+"count does not match anything, e.g. returns zero, the command will return "
+"non-zero value. Note that for pkill and pidwait, the count is the number of "
+"matching processes, not the processes that were successfully signaled or "
+"waited for."
+msgstr ""
+"Suprime a saída normal; em vez disso, imprime uma contagem de processos "
+"correspondentes. Quando a contagem não corresponde a nada, por exemplo, "
+"retorna zero, o comando retornará valor diferente de zero. Observe que para "
+"pkill e pwait, a contagem é o número de processos correspondentes, não os "
+"processos que foram sinalizados ou aguardados com êxito."
+
+#. type: TP
+#: ../man/pgrep.1:74
+#, no-wrap
+msgid "B<-d>, B<--delimiter> I<delimiter>"
+msgstr "B<-d>, B<--delimiter> I<delimitador>"
+
+#. type: Plain text
+#: ../man/pgrep.1:80
+msgid ""
+"Sets the string used to delimit each process ID in the output (by default a "
+"newline). (B<pgrep> only.)"
+msgstr ""
+"Define a sequência usada para delimitar cada ID de processo na saída (por "
+"padrão, uma nova linha). (B<pgrep> apenas.)"
+
+#. type: TP
+#: ../man/pgrep.1:80
+#, no-wrap
+msgid "B<-e>, B<--echo>"
+msgstr "B<-e>, B<--echo>"
+
+#. type: Plain text
+#: ../man/pgrep.1:85
+msgid "Display name and PID of the process being killed. (B<pkill> only.)"
+msgstr "Exibe o nome e o PID do processo sendo terminado. (B<pkill> apenas.)"
+
+#. type: TP
+#: ../man/pgrep.1:85
+#, no-wrap
+msgid "B<-f>, B<--full>"
+msgstr "B<-f>, B<--full>"
+
+#. type: Plain text
+#: ../man/pgrep.1:92
+msgid ""
+"The I<pattern> is normally only matched against the process name. When B<-"
+"f> is set, the full command line is used."
+msgstr ""
+"O I<padrão> normalmente é analisado pelo nome do processo. Quando B<-f> é "
+"definido, a linha de comando completa é usada."
+
+#. type: TP
+#: ../man/pgrep.1:92
+#, no-wrap
+msgid "B<-g>, B<--pgroup> I<pgrp>,..."
+msgstr "B<-g>, B<--pgroup> I<pgrp>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:101
+#, fuzzy
+#| msgid ""
+#| "Only match processes in the process group IDs listed. Process group 0 is "
+#| "translated into B<pgrep>'s, B<pkill>'s, or B<pwait>'s own process group."
+msgid ""
+"Only match processes in the process group IDs listed. Process group 0 is "
+"translated into B<pgrep>'s, B<pkill>'s, or B<pidwait>'s own process group."
+msgstr ""
+"Corresponde apenas aos processos nos IDs de grupo de processos listados. O "
+"grupo de processos 0 é traduzido para o grupo de processos do próprio "
+"B<pgrep>, B<pkill> ou B<pwait>."
+
+#. type: TP
+#: ../man/pgrep.1:101
+#, no-wrap
+msgid "B<-G>, B<--group> I<gid>,..."
+msgstr "B<-G>, B<--group> I<gid>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:105
+msgid ""
+"Only match processes whose real group ID is listed. Either the numerical or "
+"symbolical value may be used."
+msgstr ""
+"Corresponde apenas aos processos cujo ID de grupo real está listado. Ou o "
+"valor numérico ou simbólico pode ser usado."
+
+#. type: TP
+#: ../man/pgrep.1:105
+#, no-wrap
+msgid "B<-i>, B<--ignore-case>"
+msgstr "B<-i>, B<--ignore-case>"
+
+#. type: Plain text
+#: ../man/pgrep.1:108
+msgid "Match processes case-insensitively."
+msgstr "Corresponde aos processos sem diferenciar maiúsculo/minúsculo."
+
+#. type: TP
+#: ../man/pgrep.1:108
+#, no-wrap
+msgid "B<-l>, B<--list-name>"
+msgstr "B<-l>, B<--list-name>"
+
+#. type: Plain text
+#: ../man/pgrep.1:113
+msgid "List the process name as well as the process ID. (B<pgrep> only.)"
+msgstr ""
+"Lista o nome do processo, bem como o ID do processo. (B<pgrep> apenas.)"
+
+#. type: TP
+#: ../man/pgrep.1:113
+#, no-wrap
+msgid "B<-a>, B<--list-full>"
+msgstr "B<-a>, B<--list-full>"
+
+#. type: Plain text
+#: ../man/pgrep.1:118
+msgid "List the full command line as well as the process ID. (B<pgrep> only.)"
+msgstr ""
+"Lista o linha de comando completa, bem como o ID do processo. (B<pgrep> "
+"apenas.)"
+
+#. type: TP
+#: ../man/pgrep.1:118
+#, no-wrap
+msgid "B<-n>, B<--newest>"
+msgstr "B<-n>, B<--newest>"
+
+#. type: Plain text
+#: ../man/pgrep.1:121
+msgid ""
+"Select only the newest (most recently started) of the matching processes."
+msgstr ""
+"Seleciona apenas o mais novo (iniciado mais recentemente) dos processos "
+"correspondentes."
+
+#. type: TP
+#: ../man/pgrep.1:121
+#, no-wrap
+msgid "B<-o>, B<--oldest>"
+msgstr "B<-o>, B<--oldest>"
+
+#. type: Plain text
+#: ../man/pgrep.1:124
+msgid ""
+"Select only the oldest (least recently started) of the matching processes."
+msgstr ""
+"Seleciona apenas o mais antigo (iniciado menos recentemente) dos processos "
+"correspondentes."
+
+#. type: TP
+#: ../man/pgrep.1:124
+#, no-wrap
+msgid "B<-O>, B<--older> I<secs>"
+msgstr "B<-O>, B<--older> I<segundos>"
+
+#. type: Plain text
+#: ../man/pgrep.1:127
+msgid "Select processes older than secs."
+msgstr "seleciona onde mais antigo que segundos"
+
+#. type: TP
+#: ../man/pgrep.1:127
+#, no-wrap
+msgid "B<-P>, B<--parent> I<ppid>,..."
+msgstr "B<-P>, B<--parent> I<ppid>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:130
+msgid "Only match processes whose parent process ID is listed."
+msgstr "Corresponde apenas processos cujo ID de processo pai está listado."
+
+#. type: TP
+#: ../man/pgrep.1:130
+#, no-wrap
+msgid "B<-s>, B<--session> I<sid>,..."
+msgstr "B<-s>, B<--session> I<sid>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:139
+#, fuzzy
+#| msgid ""
+#| "Only match processes whose process session ID is listed. Session ID 0 is "
+#| "translated into B<pgrep>'s, B<pkill>'s, or B<pwait>'s own session ID."
+msgid ""
+"Only match processes whose process session ID is listed. Session ID 0 is "
+"translated into B<pgrep>'s, B<pkill>'s, or B<pidwait>'s own session ID."
+msgstr ""
+"Corresponde apenas os processos cujo ID de sessão de processo está listado. "
+"ID de Sessão 0 é traduzido para o ID de sessão do próprio B<pgrep>, B<pkill> "
+"ou B<pwait>."
+
+#. type: TP
+#: ../man/pgrep.1:139
+#, no-wrap
+msgid "B<-t>, B<--terminal> I<term>,..."
+msgstr "B<-t>, B<--terminal> I<tty>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:143
+msgid ""
+"Only match processes whose controlling terminal is listed. The terminal "
+"name should be specified without the \"/dev/\" prefix."
+msgstr ""
+"Corresponde apenas os processos cujo terminal controlador está listado. O "
+"nome do terminal deve ser especificado sem o prefixo \"/dev/\"."
+
+#. type: TP
+#: ../man/pgrep.1:143
+#, no-wrap
+msgid "B<-u>, B<--euid> I<euid>,..."
+msgstr "B<-u>, B<--euid> I<euid>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:147
+msgid ""
+"Only match processes whose effective user ID is listed. Either the "
+"numerical or symbolical value may be used."
+msgstr ""
+"Corresponde apenas os processos cujo ID de usuário efetivo está listado. Ou "
+"o valor numérico ou simbólico pode ser usado."
+
+#. type: TP
+#: ../man/pgrep.1:147
+#, no-wrap
+msgid "B<-U>, B<--uid> I<uid>,..."
+msgstr "B<-U>, B<--uid> I<uid>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:151
+msgid ""
+"Only match processes whose real user ID is listed. Either the numerical or "
+"symbolical value may be used."
+msgstr ""
+"Corresponde apenas os processos cujo ID de usuário real está listado. Ou o "
+"valor numérico ou simbólico pode ser usado."
+
+#. type: TP
+#: ../man/pgrep.1:151
+#, no-wrap
+msgid "B<-v>, B<--inverse>"
+msgstr "B<-v>, B<--inverse>"
+
+#. type: Plain text
+#: ../man/pgrep.1:160
+#, fuzzy
+#| msgid ""
+#| "Negates the matching. This option is usually used in B<pgrep>'s or "
+#| "B<pwait>'s context. In B<pkill>'s context the short option is disabled "
+#| "to avoid accidental usage of the option."
+msgid ""
+"Negates the matching. This option is usually used in B<pgrep>'s or "
+"B<pidwait>'s context. In B<pkill>'s context the short option is disabled to "
+"avoid accidental usage of the option."
+msgstr ""
+"Nega a correspondência. Essa opção geralmente é usada no contexto do "
+"B<pgrep> ou B<pwait>. No contexto do B<pkill>, a opção curta está "
+"desabilitada para evitar uso acidental da opção."
+
+#. type: TP
+#: ../man/pgrep.1:160
+#, no-wrap
+msgid "B<-w>, B<--lightweight>"
+msgstr "B<-w>, B<--lightweight>"
+
+#. type: Plain text
+#: ../man/pgrep.1:169
+#, fuzzy
+#| msgid ""
+#| "Shows all thread ids instead of pids in B<pgrep>'s or B<pwait>'s "
+#| "context. In B<pkill>'s context this option is disabled."
+msgid ""
+"Shows all thread ids instead of pids in B<pgrep>'s or B<pidwait>'s context. "
+"In B<pkill>'s context this option is disabled."
+msgstr ""
+"Mostra todos os IDs de thread em vez dos pids no contexto do B<pgrep> ou "
+"B<pwait>. No contexto do B<pkill>, esta opção está desabilitada."
+
+#. type: TP
+#: ../man/pgrep.1:169
+#, no-wrap
+msgid "B<-x>, B<--exact>"
+msgstr "B<-x>, B<--exact>"
+
+#. type: Plain text
+#: ../man/pgrep.1:175
+msgid ""
+"Only match processes whose names (or command lines if B<-f> is specified) "
+"B<exactly> match the I<pattern>."
+msgstr ""
+"Corresponde apenas a processos cujos nomes (ou linhas de comando, se B<-f> "
+"for especificado) corresponderem B<exatamente> ao I<padrão>."
+
+#. type: TP
+#: ../man/pgrep.1:175
+#, no-wrap
+msgid "B<-F>, B<--pidfile> I<file>"
+msgstr "B<-F>, B<--pidfile> I<arquivo>"
+
+#. type: Plain text
+#: ../man/pgrep.1:183
+#, fuzzy
+#| msgid ""
+#| "Read I<PID>s from I<file>. This option is more useful for "
+#| "B<pkill>orB<pwait> than B<pgrep>."
+msgid ""
+"Read I<PID>s from I<file>. This option is more useful for B<pkill> or "
+"B<pidwait> than B<pgrep>."
+msgstr ""
+"Lê os I<PID>s do I<arquivo>. Essa opção é talvez seja mais útil para "
+"B<pkill> ou B<pwait> do que B<pgrep>."
+
+#. type: TP
+#: ../man/pgrep.1:183
+#, no-wrap
+msgid "B<-L>, B<--logpidfile>"
+msgstr "B<-L>, B<--logpidfile>"
+
+#. type: Plain text
+#: ../man/pgrep.1:186
+msgid "Fail if pidfile (see B<-F>) not locked."
+msgstr "Falha se o arquivo de pid (veja B<-F>) não estiver travado."
+
+#. type: TP
+#: ../man/pgrep.1:186
+#, no-wrap
+msgid "B<-r>, B<--runstates> I<D,R,S,Z,>..."
+msgstr "B<-r>, B<--runstates> I<D,R,S,Z,>..."
+
+#. type: Plain text
+#: ../man/pgrep.1:189
+msgid "Match only processes which match the process state."
+msgstr "Corresponde apenas processos que correspondem ao estado de processo."
+
+#. type: TP
+#: ../man/pgrep.1:189
+#, fuzzy, no-wrap
+#| msgid "B<-i>, B<--ignore-case>"
+msgid "B<-A>, B<--ignore-ancestors>"
+msgstr "B<-i>, B<--ignore-case>"
+
+#. type: Plain text
+#: ../man/pgrep.1:199
+msgid ""
+"Ignore all ancestors of B<pgrep>, B<pkill>, or B<pidwait>. For example, "
+"this can be useful when elevating with B<sudo> or similar tools."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:199
+#, fuzzy, no-wrap
+#| msgid "B<-n>, B<--one-header>"
+msgid "B<-H>, B<--require-handler>"
+msgstr "B<-n>, B<--one-header>"
+
+#. type: Plain text
+#: ../man/pgrep.1:203
+msgid ""
+"Only match processes with a userspace signal handler present for the signal "
+"to be sent."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:203
+#, fuzzy, no-wrap
+#| msgid "B<--nslist >I<name>B<,...>"
+msgid "B<--cgroup >I<name>B<,...>"
+msgstr "B<--nslist >I<nome>B<,...>"
+
+#. type: Plain text
+#: ../man/pgrep.1:207
+msgid "Match on provided control group (cgroup) v2 name. See B<cgroups>(8)"
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:207 ../man/skill.1:87
+#, no-wrap
+msgid "B<--ns >I<pid>"
+msgstr "B<--ns >I<pid>"
+
+#. type: Plain text
+#: ../man/pgrep.1:212
+msgid ""
+"Match processes that belong to the same namespaces. Required to run as root "
+"to match processes from other users. See B<--nslist> for how to limit which "
+"namespaces to match."
+msgstr ""
+"Corresponde processos que pertencem aos mesmos espaços de nomes. É "
+"necessário executar como root para corresponder processos de outros "
+"usuários. Veja B<--nslist> para como limitar quais espaços de nomes para "
+"corresponder."
+
+#. type: TP
+#: ../man/pgrep.1:212
+#, no-wrap
+msgid "B<--nslist >I<name>B<,...>"
+msgstr "B<--nslist >I<nome>B<,...>"
+
+#. type: Plain text
+#: ../man/pgrep.1:216
+#, fuzzy
+#| msgid ""
+#| "Match only the provided namespaces. Available namespaces: ipc, mnt, net, "
+#| "pid, user,uts."
+msgid ""
+"Match only the provided namespaces. Available namespaces: ipc, mnt, net, "
+"pid, user, uts."
+msgstr ""
+"Corresponde apenas aos espaços de nomes fornecidos. Espaços de nomes "
+"disponíveis: ipc, mnt, net, pid, user, uts."
+
+#. type: Plain text
+#: ../man/pgrep.1:231 ../man/pmap.1:75 ../man/slabtop.1:48 ../man/sysctl.8:119
+#: ../man/tload.1:41 ../man/vmstat.8:100 ../man/watch.1:100
+msgid "Display version information and exit."
+msgstr "Exibe informação da versão e sai."
+
+#. type: TP
+#: ../man/pgrep.1:231 ../man/pmap.1:69 ../man/pwdx.1:22 ../man/skill.1:65
+#: ../man/slabtop.1:48 ../man/sysctl.8:113 ../man/tload.1:35 ../man/uptime.1:40
+#: ../man/vmstat.8:100 ../man/watch.1:94
+#, no-wrap
+msgid "B<-h>, B<--help>"
+msgstr "B<-h>, B<--help>"
+
+#. type: Plain text
+#: ../man/pgrep.1:234 ../man/vmstat.8:103
+msgid "Display help and exit."
+msgstr "Exibe a ajuda e sai."
+
+#. type: SH
+#: ../man/pgrep.1:235
+#, no-wrap
+msgid "OPERANDS"
+msgstr "OPERANDOS"
+
+#. type: TP
+#: ../man/pgrep.1:236
+#, no-wrap
+msgid "I<pattern>"
+msgstr "I<padrão>"
+
+#. type: Plain text
+#: ../man/pgrep.1:240
+msgid ""
+"Specifies an Extended Regular Expression for matching against the process "
+"names or command lines."
+msgstr ""
+"Especifica uma expressão regular estendida para corresponder nomes de "
+"processos ou linhas de comandos."
+
+#. type: Plain text
+#: ../man/pgrep.1:244
+msgid "Example 1: Find the process ID of the B<named> daemon:"
+msgstr "Exemplo 1: Localizar o ID de processo do daemon B<named>:"
+
+#. type: Plain text
+#: ../man/pgrep.1:246
+msgid "$ pgrep -u root named"
+msgstr "$ pgrep -u root named"
+
+#. type: Plain text
+#: ../man/pgrep.1:250
+msgid "Example 2: Make B<syslog> reread its configuration file:"
+msgstr "Exemplo 2: Fazer o B<syslog> reler seu arquivo de configuração:"
+
+#. type: Plain text
+#: ../man/pgrep.1:252
+msgid "$ pkill -HUP syslogd"
+msgstr "$ pkill -HUP syslogd"
+
+#. type: Plain text
+#: ../man/pgrep.1:256
+msgid "Example 3: Give detailed information on all B<xterm> processes:"
+msgstr "Exemplo 3: Fornecer informação detalhada todos processos de B<xterm>:"
+
+#. type: Plain text
+#: ../man/pgrep.1:258
+msgid "$ ps -fp $(pgrep -d, -x xterm)"
+msgstr "$ ps -fp $(pgrep -d, -x xterm)"
+
+#. type: Plain text
+#: ../man/pgrep.1:262
+msgid "Example 4: Make all B<chrome> processes run nicer:"
+msgstr ""
+"Exemplo 4: Fazer todos os processos do B<chrome> serem executados com nice "
+"maior:"
+
+#. type: Plain text
+#: ../man/pgrep.1:264
+msgid "$ renice +4 $(pgrep chrome)"
+msgstr "$ renice +4 $(pgrep chrome)"
+
+#. type: SH
+#: ../man/pgrep.1:264 ../man/pidof.1:61 ../man/pmap.1:75 ../man/watch.1:100
+#, no-wrap
+msgid "EXIT STATUS"
+msgstr "STATUS DE SAÃDA"
+
+#. type: TP
+#: ../man/pgrep.1:266
+#, no-wrap
+msgid "0"
+msgstr "0"
+
+#. type: Plain text
+#: ../man/pgrep.1:274
+#, fuzzy
+#| msgid ""
+#| "One or more processes matched the criteria. For pkill and pwait, one or "
+#| "more processes must also have been successfully signalled or waited for."
+msgid ""
+"One or more processes matched the criteria. For B<pkill> and B<pidwait>, one "
+"or more processes must also have been successfully signalled or waited for."
+msgstr ""
+"Um ou mais processos corresponderam aos critérios. Para pkill ou pwait, um "
+"ou mais processos também devem ter sidos sinalizados ou aguardados com "
+"sucesso."
+
+#. type: IP
+#: ../man/pgrep.1:274 ../man/ps.1:43 ../man/ps.1:818 ../man/ps.1:2082
+#, no-wrap
+msgid "1"
+msgstr "1"
+
+#. type: Plain text
+#: ../man/pgrep.1:277
+msgid "No processes matched or none of them could be signalled."
+msgstr "Nenhum processo correspondido ou nenhum deles pode ser sinalizado."
+
+#. type: IP
+#: ../man/pgrep.1:277 ../man/ps.1:45 ../man/ps.1:2084
+#, no-wrap
+msgid "2"
+msgstr "2"
+
+#. type: Plain text
+#: ../man/pgrep.1:280
+msgid "Syntax error in the command line."
+msgstr "Erro de sintaxe na linha de comando."
+
+#. type: IP
+#: ../man/pgrep.1:280 ../man/ps.1:47 ../man/ps.1:2086
+#, no-wrap
+msgid "3"
+msgstr "3"
+
+#. type: Plain text
+#: ../man/pgrep.1:283
+msgid "Fatal error: out of memory etc."
+msgstr "Erro fatal: memória insuficiente etc."
+
+#. type: Plain text
+#: ../man/pgrep.1:289
+#, fuzzy
+#| msgid ""
+#| "The process name used for matching is limited to the 15 characters "
+#| "present in the output of /proc/I<pid>/stat. Use the B<-f> option to "
+#| "match against the complete command line, /proc/I<pid>/cmdline."
+msgid ""
+"The process name used for matching is limited to the 15 characters present "
+"in the output of /proc/I<pid>/stat. Use the B<-f> option to match against "
+"the complete command line, /proc/I<pid>/cmdline. Threads may not have the "
+"same process name as the parent process but will have the same command line."
+msgstr ""
+"O nome do processo usado para corresponder está limitado a 15 caracteres "
+"presentes na saída de /proc/I<pid>/stat. Use a opção B<-f> para corresponder "
+"à linha de comando completa, /proc/I<pid>/cmdline."
+
+#. type: Plain text
+#: ../man/pgrep.1:297
+#, fuzzy
+#| msgid ""
+#| "The running B<pgrep>, B<pkill>, or B<pwait> process will never report "
+#| "itself as a match."
+msgid ""
+"The running B<pgrep>, B<pkill>, or B<pidwait> process will never report "
+"itself as a match."
+msgstr ""
+"O processo em execução do B<pgrep>, B<pkill> e B<pwait> nunca vai relatar a "
+"si próprio como correspondência."
+
+#. type: Plain text
+#: ../man/pgrep.1:301
+msgid ""
+"The B<-O --older> option will silently fail if I</proc> is mounted with the "
+"I<subset=pid> option."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:310
+msgid ""
+"The options B<-n> and B<-o> and B<-v> can not be combined. Let me know if "
+"you need to do this."
+msgstr ""
+"As opções B<-n>, B<-o> e B<-v> não podem ser combinadas. Me avise se você "
+"precisar fazer isso."
+
+#. type: Plain text
+#: ../man/pgrep.1:312
+msgid "Defunct processes are reported."
+msgstr "Os processos defeituosos são relatados."
+
+#. type: Plain text
+#: ../man/pgrep.1:317
+msgid ""
+"B<pidwait> requires the B<pidfd_open>(2) system call which first appeared "
+"in Linux 5.3."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:327
+#, fuzzy
+#| msgid ""
+#| "B<ps>(1), B<regex>(7), B<signal>(7), B<sigqueue>(3), B<killall>(1), "
+#| "B<skill>(1), B<kill>(1), B<kill>(2)"
+msgid ""
+"B<ps>(1), B<regex>(7), B<signal>(7), B<sigqueue>(3), B<killall>(1), "
+"B<skill>(1), B<kill>(1), B<kill>(2), B<cgroups>(8)."
+msgstr ""
+"B<ps>(1), B<regex>(7), B<signal>(7), B<sigqueue>(3), B<killall>(1), "
+"B<skill>(1), B<kill>(1), B<kill>(2)"
+
+#. type: Plain text
+#: ../man/pgrep.1:331
+msgid "E<.UR kjetilho@ifi.uio.no> Kjetil Torgrim Homme E<.UE>"
+msgstr "E<.UR kjetilho@ifi.uio.no> Kjetil Torgrim Homme E<.UE>"
+
+#. type: TH
+#: ../man/pidof.1:13
+#, no-wrap
+msgid "PIDOF"
+msgstr "PIDOF"
+
+#. type: Plain text
+#: ../man/pidof.1:16
+#, fuzzy
+#| msgid "pidof -- find the process ID of a running program"
+msgid "pidof - find the process ID of a running program"
+msgstr "pidof -- localiza o ID do processo de um programa em execução"
+
+#. type: Plain text
+#: ../man/pidof.1:30
+#, fuzzy
+#| msgid ""
+#| "B<pidof> [B<-s>] [B<-c>] [B<-q>] [B<-w>] [B<-x>] [B<-o> I<omitpid[,"
+#| "omitpid...]...>] [B<-S> I<separator>] B<program> [B<program...>]"
+msgid ""
+"B<pidof> [B<-s>] [B<-c>] [B<-q>] [B<-w>] [B<-x>] [B<-o> I<omitpid[,"
+"omitpid...]...>] [B<-t>] [B<-S> I<separator>] I<program> I<[>B<program..."
+">I<]>"
+msgstr ""
+"B<pidof> [B<-s>] [B<-c>] [B<-q>] [B<-w>] [B<-x>] [B<-o> I<pid[,pid...]...>] "
+"[B<-S> I<separador>] B<programa> [B<programa...>]"
+
+#. type: Plain text
+#: ../man/pidof.1:34
+msgid ""
+"B<Pidof> finds the process id's (pids) of the named programs. It prints "
+"those id's on the standard output."
+msgstr ""
+"B<Pidof> localiza os IDs de processo (pids) dos programas definidos. Ele "
+"emite aqueles IDs na saída padrão (stdout)."
+
+#. type: IP
+#: ../man/pidof.1:35
+#, no-wrap
+msgid "B<-s>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:37
+msgid "Single shot - this instructs the program to only return one I<pid>."
+msgstr "Single shot - isso instrui o programa a só retornar um I<pid>."
+
+#. type: TP
+#: ../man/pidof.1:37 ../man/ps.1:409
+#, no-wrap
+msgid "B<-c>"
+msgstr "B<-c>"
+
+#. type: Plain text
+#: ../man/pidof.1:41
+msgid ""
+"Only return process ids that are running with the same root directory. This "
+"option is ignored for non-root users, as they will be unable to check the "
+"current root directory of processes they do not own."
+msgstr ""
+"Retorna apenas IDs de processo que estão em execução com o mesmo diretório "
+"raiz. Essa opção é ignorada para usuários não-root, pois eles não poderão "
+"verificar o diretório raiz atual dos processos que não pertencerem a eles."
+
+#. type: IP
+#: ../man/pidof.1:41
+#, no-wrap
+msgid "B<-q>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:43
+msgid ""
+"Quiet mode, suppress any output and only sets the exit status accordingly."
+msgstr ""
+"Modo silencioso, suprime qualquer saída e apenas define o status de saída de "
+"acordo."
+
+#. type: TP
+#: ../man/pidof.1:43 ../man/ps.1:718
+#, no-wrap
+msgid "B<-w>"
+msgstr "B<-w>"
+
+#. type: Plain text
+#: ../man/pidof.1:46
+msgid ""
+"Show also processes that do not have visible command line (e.g. kernel "
+"worker threads)."
+msgstr ""
+"Mostra também processos que não têm linha de comando visível (por exemplo, "
+"threads de workers do kernel)."
+
+#. type: TP
+#: ../man/pidof.1:46 ../man/sysctl.8:110
+#, no-wrap
+msgid "B<-x>"
+msgstr "B<-x>"
+
+#. type: Plain text
+#: ../man/pidof.1:49
+msgid ""
+"Scripts too - this causes the program to also return process id's of shells "
+"running the named scripts."
+msgstr ""
+"Scripts também -- isso faz com que o programa também retorne IDs de processo "
+"de shells executando os referidos scripts."
+
+#. type: IP
+#: ../man/pidof.1:49
+#, fuzzy, no-wrap
+#| msgid "-o I<omitpid>"
+msgid "B<-o> I<omitpid>"
+msgstr "-o I<pid>"
+
+#. type: Plain text
+#: ../man/pidof.1:53
+#, fuzzy
+#| msgid ""
+#| "Tells I<pidof> to omit processes with that process id. The special pid "
+#| "B<%PPID> can be used to name the parent process of the I<pidof> program, "
+#| "in other words the calling shell or shell script."
+msgid ""
+"Tells B<pidof> to omit processes with that process id. The special pid "
+"B<%PPID> can be used to name the parent process of the B<pidof> program, in "
+"other words the calling shell or shell script."
+msgstr ""
+"Fala para o I<pidof> para omitir processos com aquele ID de processo. O pid "
+"especial B<%PPID> pode ser usado para nomear o processo pai do programa "
+"I<pidof>, isto é, o shell que chamou ou script do shell."
+
+#. type: IP
+#: ../man/pidof.1:53
+#, no-wrap
+msgid "B<-t>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:55
+msgid "Shows all thread ids instead of pids."
+msgstr ""
+
+#. type: IP
+#: ../man/pidof.1:55
+#, fuzzy, no-wrap
+#| msgid "-S I<separator>"
+msgid "B<-S> I<separator>"
+msgstr "-S I<separador>"
+
+#. type: Plain text
+#: ../man/pidof.1:61
+msgid ""
+"Use I<separator> as a separator put between pids. Used only when more than "
+"one pids are printed for the program. The B<-d> option is an alias for this "
+"option for sysvinit B<pidof> compatibility."
+msgstr ""
+"Use I<separador> como um separador colocado entre pids. Usado apenas quando "
+"mais de um pids são impressos para o programa. A opção I<-d> é um alias para "
+"esta opção para compatibilidade com B<pidof> do sysvinit."
+
+#. type: TP
+#: ../man/pidof.1:62 ../man/pmap.1:79 ../man/watch.1:104
+#, no-wrap
+msgid "B<0>"
+msgstr "B<0>"
+
+#. type: Plain text
+#: ../man/pidof.1:65
+msgid "At least one program was found with the requested name."
+msgstr "Ao menos um programa foi localizado com o nome requisitado."
+
+#. type: TP
+#: ../man/pidof.1:65 ../man/pmap.1:82 ../man/watch.1:107
+#, no-wrap
+msgid "B<1>"
+msgstr "B<1>"
+
+#. type: Plain text
+#: ../man/pidof.1:68
+msgid "No program was found with the requested name."
+msgstr "Nenhum programa foi localizado com o nome requisitado."
+
+#. type: Plain text
+#: ../man/pidof.1:75
+#, fuzzy
+#| msgid ""
+#| "When using the I<-x> option, B<pidof> only has a simple method for "
+#| "detecting scripts and will miss scripts that, for example, use env. This "
+#| "limitation is due to how the scripts look in the proc filesystem."
+msgid ""
+"When using the B<-x> option, B<pidof> only has a simple method for detecting "
+"scripts and will miss scripts that, for example, use env. This limitation is "
+"due to how the scripts look in the proc filesystem."
+msgstr ""
+"Ao usar a opção I<-x>, B<pidof> possui apenas um método simples para "
+"detectar scripts e perderá scripts que, por exemplo, usem env. Essa "
+"limitação se deve à aparência dos scripts no sistema de arquivos proc."
+
+#. type: Plain text
+#: ../man/pidof.1:79
+msgid "B<pgrep>(1), B<pkill>(1)"
+msgstr "B<pgrep>(1), B<pkill>(1)"
+
+#. type: Plain text
+#: ../man/pidof.1:82
+#, fuzzy
+#| msgid "E<.UR staikos@0wned.org> George Staikos E<.UE>"
+msgid "E<.UR jcapik@redhat.com> Jaromir Capik E<.UE>"
+msgstr "E<.UR staikos@0wned.org> George Staikos E<.UE>"
+
+#. type: TH
+#: ../man/pmap.1:19
+#, no-wrap
+msgid "PMAP"
+msgstr "PMAP"
+
+#. type: TH
+#: ../man/pmap.1:19 ../man/pwdx.1:12 ../man/tload.1:12
+#, no-wrap
+msgid "2020-06-04"
+msgstr "2020-06-04"
+
+#. type: Plain text
+#: ../man/pmap.1:22
+msgid "pmap - report memory map of a process"
+msgstr "pmap - relata mapa de memória de um processo"
+
+#. type: Plain text
+#: ../man/pmap.1:25
+msgid "B<pmap> [I<options>] I<pid> [...]"
+msgstr "B<pmap> [I<opções>] I<pid> [...]"
+
+#. type: Plain text
+#: ../man/pmap.1:29
+msgid "The B<pmap> command reports the memory map of a process or processes."
+msgstr ""
+"O comando B<pmap> relata o mapa de memória de um processo ou processos."
+
+#. type: TP
+#: ../man/pmap.1:30
+#, no-wrap
+msgid "B<-x>, B<--extended>"
+msgstr "B<-x>, B<--extended>"
+
+#. type: Plain text
+#: ../man/pmap.1:33
+msgid "Show the extended format."
+msgstr "Mostra o formato estendido."
+
+#. type: TP
+#: ../man/pmap.1:33
+#, no-wrap
+msgid "B<-d>, B<--device>"
+msgstr "B<-d>, B<--device>"
+
+#. type: Plain text
+#: ../man/pmap.1:36
+msgid "Show the device format."
+msgstr "Mostra o formato do dispositivo."
+
+#. type: TP
+#: ../man/pmap.1:36 ../man/sysctl.8:57
+#, no-wrap
+msgid "B<-q>, B<--quiet>"
+msgstr "B<-q>, B<--quiet>"
+
+#. type: Plain text
+#: ../man/pmap.1:39
+msgid "Do not display some header or footer lines."
+msgstr "Não exibe algumas linhas de cabeçalho ou rodapé."
+
+#. type: TP
+#: ../man/pmap.1:39
+#, no-wrap
+msgid "B<-A>, B<--range> I<low>,I<high>"
+msgstr "B<-A>, B<--range> I<baixo>,I<alto>"
+
+#. type: Plain text
+#: ../man/pmap.1:47
+msgid ""
+"Limit results to the given range to I<low> and I<high> address range. "
+"Notice that the low and high arguments are single string separated with "
+"comma."
+msgstr ""
+"Limita os resultados ao intervalo dado de endereços I<baixo> e I<alto>. Note "
+"que os argumentos baixo e alto são strings separadas por vírgula."
+
+#. type: TP
+#: ../man/pmap.1:47 ../man/sysctl.8:104
+#, no-wrap
+msgid "B<-X>"
+msgstr "B<-X>"
+
+#. type: Plain text
+#: ../man/pmap.1:51
+msgid ""
+"Show even more details than the B<-x> option. WARNING: format changes "
+"according to I</proc/PID/smaps>"
+msgstr ""
+"Mostra ainda mais detalhes que a opção B<-x>. AVISO: alterações de formato "
+"conforme I</proc/PID/smaps>"
+
+#. type: TP
+#: ../man/pmap.1:51
+#, no-wrap
+msgid "B<-XX>"
+msgstr "B<-XX>"
+
+#. type: Plain text
+#: ../man/pmap.1:54
+msgid "Show everything the kernel provides"
+msgstr "Mostra tudo que o kernel fornece"
+
+#. type: TP
+#: ../man/pmap.1:54
+#, no-wrap
+msgid "B<-p>, B<--show-path>"
+msgstr "B<-p>, B<--show-path>"
+
+#. type: Plain text
+#: ../man/pmap.1:57
+msgid "Show full path to files in the mapping column"
+msgstr "Mostra caminho completo aos arquivos na coluna de mapeamento"
+
+#. type: TP
+#: ../man/pmap.1:57
+#, no-wrap
+msgid "B<-c>, B<--read-rc>"
+msgstr "B<-c>, B<--read-rc>"
+
+#. type: Plain text
+#: ../man/pmap.1:60
+msgid "Read the default configuration"
+msgstr "Lê a configuração padrão"
+
+#. type: TP
+#: ../man/pmap.1:60
+#, no-wrap
+msgid "B<-C>, B<--read-rc-from> I<file>"
+msgstr "B<-C>, B<--read-rc-from> I<arquivo>"
+
+#. type: Plain text
+#: ../man/pmap.1:63
+msgid "Read the configuration from I<file>"
+msgstr "Lê a configuração a partir do I<arquivo>"
+
+#. type: TP
+#: ../man/pmap.1:63
+#, no-wrap
+msgid "B<-n>, B<--create-rc>"
+msgstr "B<-n>, B<--create-rc>"
+
+#. type: Plain text
+#: ../man/pmap.1:66
+msgid "Create new default configuration"
+msgstr "Cria um novo configuração padrão"
+
+#. type: TP
+#: ../man/pmap.1:66
+#, no-wrap
+msgid "B<-N>, B<--create-rc-to> I<file>"
+msgstr "B<-N>, B<--create-rc-to> I<arquivo>"
+
+#. type: Plain text
+#: ../man/pmap.1:69
+msgid "Create new configuration to I<file>"
+msgstr "Cria uma nova configuração para I<arquivo>"
+
+#. type: Plain text
+#: ../man/pmap.1:72 ../man/skill.1:68 ../man/sysctl.8:116 ../man/w.1:66
+#: ../man/watch.1:97
+msgid "Display help text and exit."
+msgstr "Exibe um texto de ajuda e sai."
+
+#. type: Plain text
+#: ../man/pmap.1:82 ../man/watch.1:107
+msgid "Success."
+msgstr "Sucesso."
+
+#. type: Plain text
+#: ../man/pmap.1:85
+msgid "Failure."
+msgstr "Falha."
+
+#. type: TP
+#: ../man/pmap.1:85
+#, no-wrap
+msgid "B<42>"
+msgstr "B<42>"
+
+#. type: Plain text
+#: ../man/pmap.1:88
+msgid "Did not find all processes asked for."
+msgstr "Não encontrou todos os processos solicitados."
+
+#. type: Plain text
+#: ../man/pmap.1:93 ../man/pwdx.1:28
+msgid "B<ps>(1), B<pgrep>(1)"
+msgstr "B<ps>(1), B<pgrep>(1)"
+
+#. type: Plain text
+#: ../man/pmap.1:97
+msgid ""
+"No standards apply, but B<pmap> looks an awful lot like a SunOS command."
+msgstr ""
+"Nenhum padrão aplicável, mas B<pmap> se parece muito com um comando do SunOS."
+
+#. type: TH
+#: ../man/pwdx.1:12
+#, no-wrap
+msgid "PWDX"
+msgstr "PWDX"
+
+#. type: Plain text
+#: ../man/pwdx.1:15
+msgid "pwdx - report current working directory of a process"
+msgstr "pwdx - relata o diretório de trabalho atual de um processo"
+
+#. type: Plain text
+#: ../man/pwdx.1:18
+msgid "B<pwdx> [I<options>] I<pid> [...]"
+msgstr "B<pwdx> [I<opções>] I<pid> [...]"
+
+#. type: Plain text
+#: ../man/pwdx.1:22
+msgid "Output version information and exit."
+msgstr "Exibe informação da versão e sai."
+
+#. type: Plain text
+#: ../man/pwdx.1:25
+msgid "Output help screen and exit."
+msgstr "Exibe a tela de ajuda e sai."
+
+#. type: Plain text
+#: ../man/pwdx.1:32
+msgid ""
+"No standards apply, but B<pwdx> looks an awful lot like a SunOS command."
+msgstr ""
+"Nenhum padrão aplicável, mas B<pwdx> se parece muito com um comando do SunOS."
+
+#. type: Plain text
+#: ../man/pwdx.1:37
+msgid "E<.UR nmiell@gmail.com> Nicholas Miell E<.UE> wrote pwdx in 2004."
+msgstr "E<.UR nmiell@gmail.com> Nicholas Miell E<.UE> escreveu pwdx em 2004."
+
+#. type: TH
+#: ../man/skill.1:12
+#, no-wrap
+msgid "SKILL"
+msgstr "SKILL"
+
+#. type: TH
+#: ../man/skill.1:12 ../man/sysctl.8:14 ../man/ps.1:13
+#, no-wrap
+msgid "2023-08-19"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:15
+msgid "skill, snice - send a signal or report process status"
+msgstr "skill, snice - envia um sinal ou relata status de processo"
+
+#. type: Plain text
+#: ../man/skill.1:20
+msgid "B<skill> [I<signal>] [I<options>] I<expression>"
+msgstr "B<skill> [I<sinal>] [I<opções>] I<expressão>"
+
+#. type: Plain text
+#: ../man/skill.1:25
+msgid "B<snice> [I<new priority>] [I<options>] I<expression>"
+msgstr "B<snice> [I<nova prioridade>] [I<opções>] I<expressão>"
+
+#. type: Plain text
+#: ../man/skill.1:33
+#, fuzzy
+#| msgid ""
+#| "These tools are obsolete and unportable. The command syntax is poorly "
+#| "defined. Consider using the killall, pkill, and pgrep commands instead."
+msgid ""
+"These tools are obsolete and unportable. The command syntax is poorly "
+"defined. Consider using the B<killall>, B<pkill>, and B<pgrep> commands "
+"instead."
+msgstr ""
+"Essas ferramentas são obsoletas e não portáveis. A sintaxe de comando está "
+"mal definida. Considere usar os comandos killall, pkill e pgrep."
+
+#. type: Plain text
+#: ../man/skill.1:38
+#, fuzzy
+#| msgid ""
+#| "The default signal for skill is TERM. Use -l or -L to list available "
+#| "signals. Particularly useful signals include HUP, INT, KILL, STOP, CONT, "
+#| "and 0. Alternate signals may be specified in three ways: -9 -SIGKILL -"
+#| "KILL."
+msgid ""
+"The default signal for B<skill> is TERM. Use B<-l> or B<-L> to list "
+"available signals. Particularly useful signals include HUP, INT, KILL, "
+"STOP, CONT, and 0. Alternate signals may be specified in three ways: B<-9> "
+"B<-SIGKILL> B<-KILL>."
+msgstr ""
+"O sinal padrão para skill é TERM. Use -l ou -L para listar sinais "
+"disponíveis. Sinais particularmente úteis incluem HUP, INT, KILL, STOP, CONT "
+"e 0. Sinais alternativos podem ser passados nas três formas: -9 -SIGKILL -"
+"KILL."
+
+#. type: Plain text
+#: ../man/skill.1:42
+#, fuzzy
+#| msgid ""
+#| "The default priority for snice is +4. Priority numbers range from +20 "
+#| "(slowest) to -20 (fastest). Negative priority numbers are restricted to "
+#| "administrative users."
+msgid ""
+"The default priority for B<snice> is +4. Priority numbers range from +20 "
+"(slowest) to -20 (fastest). Negative priority numbers are restricted to "
+"administrative users."
+msgstr ""
+"A prioridade padrão para snice é +4. Intervalo de números de prioridade de "
+"+20 (mais lento) a -20 (mais rápido). Números de prioridade negativos são "
+"restritos a usuários administrativos."
+
+#. type: TP
+#: ../man/skill.1:43
+#, no-wrap
+msgid "B<-f>,B<\\ --fast>"
+msgstr "B<-f>,B<\\ --fast>"
+
+#. type: Plain text
+#: ../man/skill.1:46
+msgid "Fast mode. This option has not been implemented."
+msgstr "Modo rápido. Essa opção não foi implementada."
+
+#. type: TP
+#: ../man/skill.1:46
+#, no-wrap
+msgid "B<-i>,B<\\ --interactive>"
+msgstr "B<-i>,B<\\ --interactive>"
+
+#. type: Plain text
+#: ../man/skill.1:49
+msgid "Interactive use. You will be asked to approve each action."
+msgstr "Uso interativo. Você será solicitado aprovação para cada ação."
+
+#. type: TP
+#: ../man/skill.1:49
+#, no-wrap
+msgid "B<-l>,B<\\ --list>"
+msgstr "B<-l>,B<\\ --list>"
+
+#. type: Plain text
+#: ../man/skill.1:52
+msgid "List all signal names."
+msgstr "Lista todos os nomes de sinais."
+
+#. type: Plain text
+#: ../man/skill.1:55
+msgid "List all signal names in a nice table."
+msgstr "Lista todos os nomes de sinais em uma tabela legal."
+
+#. type: TP
+#: ../man/skill.1:55
+#, no-wrap
+msgid "B<-n>,B<\\ --no-action>"
+msgstr "B<-n>,B<\\ --no-action>"
+
+#. type: Plain text
+#: ../man/skill.1:59
+msgid ""
+"No action; perform a simulation of events that would occur but do not "
+"actually change the system."
+msgstr ""
+"Nenhuma ação; realiza uma simulação dos eventos que ocorreriam, mas não "
+"chega a alterar o sistema."
+
+#. type: TP
+#: ../man/skill.1:59
+#, no-wrap
+msgid "B<-v>,B<\\ --verbose>"
+msgstr "B<-v>,B<\\ --verbose>"
+
+#. type: Plain text
+#: ../man/skill.1:62
+msgid "Verbose; explain what is being done."
+msgstr "Verboso; explica o que está sendo feito."
+
+#. type: TP
+#: ../man/skill.1:62
+#, no-wrap
+msgid "B<-w>,B<\\ --warnings>"
+msgstr "B<-w>,B<\\ --warnings>"
+
+#. type: Plain text
+#: ../man/skill.1:65
+msgid "Enable warnings. This option has not been implemented."
+msgstr "Habilita avisos. Essa opção não foi implementada."
+
+#. type: SH
+#: ../man/skill.1:72
+#, no-wrap
+msgid "PROCESS SELECTION OPTIONS"
+msgstr "OPÇÕES DE SELEÇÃO DE PROCESSO"
+
+#. type: Plain text
+#: ../man/skill.1:75
+msgid ""
+"Selection criteria can be: terminal, user, pid, command. The options below "
+"may be used to ensure correct interpretation."
+msgstr ""
+"Critérios de seleção podem ser: terminal, user, pid, command. As opções "
+"abaixo podem ser usadas para garantir interpretação correta."
+
+#. type: TP
+#: ../man/skill.1:75
+#, no-wrap
+msgid "B<-t>, B<--tty> I<tty>"
+msgstr "B<-t>, B<--tty> I<tty>"
+
+#. type: Plain text
+#: ../man/skill.1:78
+msgid "The next expression is a terminal (tty or pty)."
+msgstr "A próxima expressão é um terminal (tty ou pty)."
+
+#. type: TP
+#: ../man/skill.1:78
+#, no-wrap
+msgid "B<-u>, B<--user> I<user>"
+msgstr "B<-u>, B<--user> I<usuário>"
+
+#. type: Plain text
+#: ../man/skill.1:81
+msgid "The next expression is a username."
+msgstr "A próxima expressão é um nome de usuário."
+
+#. type: TP
+#: ../man/skill.1:81
+#, no-wrap
+msgid "B<-p>, B<--pid> I<pid>"
+msgstr "B<-p>, B<--pid> I<pid>"
+
+#. type: Plain text
+#: ../man/skill.1:84
+msgid "The next expression is a process ID number."
+msgstr "A próxima expressão é um número de ID de processo."
+
+#. type: TP
+#: ../man/skill.1:84
+#, no-wrap
+msgid "B<-c>, B<--command> I<command>"
+msgstr "B<-c>, B<--command> I<comando>"
+
+#. type: Plain text
+#: ../man/skill.1:87
+msgid "The next expression is a command name."
+msgstr "A próxima expressão é um nome de comando."
+
+#. type: Plain text
+#: ../man/skill.1:90
+msgid "Match the processes that belong to the same namespace as pid."
+msgstr "Corresponde os processos que pertencem ao mesmo espaço de nomes e pid."
+
+#. type: TP
+#: ../man/skill.1:90
+#, no-wrap
+msgid "B<--nslist >I<ns\\/>,\\,I<...\\/>"
+msgstr "B<--nslist >I<ns\\/>,\\,I<...\\/>"
+
+#. type: Plain text
+#: ../man/skill.1:94
+#, fuzzy
+#| msgid ""
+#| "list which namespaces will be considered for the --ns option. Available "
+#| "namespaces: ipc, mnt, net, pid, user, uts."
+msgid ""
+"list which namespaces will be considered for the B<--ns> option. Available "
+"namespaces: ipc, mnt, net, pid, user, uts."
+msgstr ""
+"lista quais espaços de nomes serão considerados para a opção --ns. Espaços "
+"de nomes disponíveis: ipc, mnt, net, pid, user, uts."
+
+#. type: SH
+#: ../man/skill.1:95
+#, no-wrap
+msgid "SIGNALS"
+msgstr "SINAIS"
+
+#. type: Plain text
+#: ../man/skill.1:99
+msgid "The behavior of signals is explained in B<signal>(7) manual page."
+msgstr ""
+"O comportamento de sinais é explicado na página de manual B<signal>(7)."
+
+#. type: TP
+#: ../man/skill.1:100
+#, no-wrap
+msgid "B<snice -c seti -c crack +7>"
+msgstr "B<snice -c seti -c crack +7>"
+
+#. type: Plain text
+#: ../man/skill.1:103
+#, fuzzy
+#| msgid "Slow down seti and crack commands."
+msgid "+Slow down B<seti> and B<crack> commands."
+msgstr "Reduz a velocidade dos comandos seti e crack."
+
+#. type: TP
+#: ../man/skill.1:103
+#, no-wrap
+msgid "B<skill -KILL -t /dev/pts/*>"
+msgstr "B<skill -KILL -t /dev/pts/*>"
+
+#. type: Plain text
+#: ../man/skill.1:106
+msgid "Kill users on PTY devices."
+msgstr "Termina usuários nos dispositivos PTY."
+
+#. type: TP
+#: ../man/skill.1:106
+#, no-wrap
+msgid "B<skill -STOP -u viro -u lm -u davem>"
+msgstr "B<skill -STOP -u viro -u lm -u davem>"
+
+#. type: Plain text
+#: ../man/skill.1:109
+msgid "Stop three users."
+msgstr "Para três usuários."
+
+#. type: Plain text
+#: ../man/skill.1:117
+msgid ""
+"B<kill>(1), B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), "
+"B<renice>(1), B<signal>(7)"
+msgstr ""
+"B<kill>(1), B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), "
+"B<renice>(1), B<signal>(7)"
+
+#. type: Plain text
+#: ../man/skill.1:119
+msgid "No standards apply."
+msgstr "Nenhum padrão aplicável."
+
+#. type: Plain text
+#: ../man/skill.1:125
+msgid ""
+"E<.MT albert@users.sf.net> Albert Cahalan E<.ME> wrote skill and snice in "
+"1999 as a replacement for a non-free version."
+msgstr ""
+"E<.MT albert@users.sf.net> Albert Cahalan E<.ME> escreveu skill e snice em "
+"1999 como uma substituição para uma versão não livre."
+
+#. type: TH
+#: ../man/slabtop.1:14
+#, no-wrap
+msgid "SLABTOP"
+msgstr "SLABTOP"
+
+#. type: TH
+#: ../man/slabtop.1:14
+#, fuzzy, no-wrap
+#| msgid "2019-03-05"
+msgid "2021-03-11"
+msgstr "2019-03-05"
+
+#. type: Plain text
+#: ../man/slabtop.1:17
+msgid "slabtop - display kernel slab cache information in real time"
+msgstr "slabtop - exibe informações de cache de slabs do kernel em tempo real"
+
+#. type: Plain text
+#: ../man/slabtop.1:20
+msgid "B<slabtop> [I<options>]"
+msgstr "B<slabtop> [I<opções>]"
+
+#. type: Plain text
+#: ../man/slabtop.1:25
+msgid ""
+"B<slabtop> displays detailed kernel slab cache information in real time. It "
+"displays a listing of the top caches sorted by one of the listed sort "
+"criteria. It also displays a statistics header filled with slab layer "
+"information."
+msgstr ""
+"B<slabtop> exibe informações detalhadas do cache de slabs do kernel em tempo "
+"real. Ele exibe uma listagem dos caches superiores ordenados por um dos "
+"critérios de classificação listados. Ele também exibe um cabeçalho de "
+"estatísticas preenchido com informações da camada de slab."
+
+#. type: Plain text
+#: ../man/slabtop.1:30
+msgid ""
+"Normal invocation of B<slabtop> does not require any options. The behavior, "
+"however, can be fine-tuned by specifying one or more of the following flags:"
+msgstr ""
+"Invocação normal do B<slabtop> não exibe quaisquer opções. O comportamento, "
+"porém, pode ser ajustado especificando uma ou mais das seguintes opções:"
+
+#. type: TP
+#: ../man/slabtop.1:30
+#, no-wrap
+msgid "B<-d>, B<--delay>=I<N>"
+msgstr "B<-d>, B<--delay>=I<N>"
+
+#. type: Plain text
+#: ../man/slabtop.1:39
+#, fuzzy
+#| msgid ""
+#| "Refresh the display every I<n> in seconds. By default, B<slabtop> "
+#| "refreshes the display every three seconds. To exit the program, hit B<q.>"
+msgid ""
+"Refresh the display every I<n> in seconds. By default, B<slabtop> refreshes "
+"the display every three seconds. To exit the program, hit B<q>. This "
+"cannot be combined with the B<-o> option."
+msgstr ""
+"Atualiza a tela a cada I<n> em segundos. Por padrão, B<slabtop> atualiza a "
+"tela a cada três segundos. Para sair do programa, pressione B<q>."
+
+#. type: TP
+#: ../man/slabtop.1:39
+#, no-wrap
+msgid "B<-s>, B<--sort>=I<S>"
+msgstr "B<-s>, B<--sort>=I<S>"
+
+#. type: Plain text
+#: ../man/slabtop.1:42
+msgid "Sort by I<S>, where I<S> is one of the sort criteria."
+msgstr "Ordena por I<S>, sendo I<S> um dos critérios de ordem."
+
+#. type: TP
+#: ../man/slabtop.1:42
+#, no-wrap
+msgid "B<-o>, B<--once>"
+msgstr "B<-o>, B<--once>"
+
+#. type: Plain text
+#: ../man/slabtop.1:45
+msgid "Display the output once and then exit."
+msgstr "Exige a saída uma vez e, então, sai."
+
+#. type: Plain text
+#: ../man/slabtop.1:51
+msgid "Display usage information and exit."
+msgstr "Exibe informação de uso e sai."
+
+#. type: SH
+#: ../man/slabtop.1:51
+#, no-wrap
+msgid "SORT CRITERIA"
+msgstr "CRITÉRIOS DE ORDENAÇÃO"
+
+#. type: Plain text
+#: ../man/slabtop.1:55
+msgid ""
+"The following are valid sort criteria used to sort the individual slab "
+"caches and thereby determine what are the \"top\" slab caches to display. "
+"The default sort criteria is to sort by the number of objects (\"o\")."
+msgstr ""
+"Os seguintes são critérios de ordenação válidos utilizados para classificar "
+"os caches de slabs individuais e, assim, determinar quais são os primeiros "
+"caches de slabs para exibir. O critério de classificação padrão é "
+"classificar pelo número de objetos (\"o\")."
+
+#. type: Plain text
+#: ../man/slabtop.1:59
+msgid ""
+"The sort criteria can also be changed while B<slabtop> is running by "
+"pressing the associated character."
+msgstr ""
+"Os critérios de ordenação também pode ser alterado enquanto o B<slabtop> "
+"está sendo executado pressionando o caractere associado."
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<character>"
+msgstr "B<caractere>"
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<description>"
+msgstr "B<descrição>"
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<header>"
+msgstr "B<cabeçalho>"
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "a"
+msgstr "a"
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "number of active objects"
+msgstr "número de objetos ativos"
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "ACTIVE"
+msgstr "ATIVOS"
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "b"
+msgstr "b"
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "objects per slab"
+msgstr "objetos por slab"
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "OBJ/SLAB"
+msgstr "OBJ/SLAB"
+
+#. type: tbl table
+#: ../man/slabtop.1:64 ../man/ps.1:909 ../man/ps.1:1081
+#, no-wrap
+msgid "c"
+msgstr "c"
+
+#. type: tbl table
+#: ../man/slabtop.1:64
+#, no-wrap
+msgid "cache size"
+msgstr "tamanho de cache"
+
+#. type: tbl table
+#: ../man/slabtop.1:64
+#, no-wrap
+msgid "CACHE SIZE"
+msgstr "TAMANHO DE CACHE"
+
+#. type: TP
+#: ../man/slabtop.1:65 ../man/ps.1:882
+#, no-wrap
+msgid "l"
+msgstr "l"
+
+#. type: tbl table
+#: ../man/slabtop.1:65
+#, no-wrap
+msgid "number of slabs"
+msgstr "número de slabs"
+
+#. type: tbl table
+#: ../man/slabtop.1:65
+#, no-wrap
+msgid "SLABS"
+msgstr "SLABS"
+
+#. type: tbl table
+#: ../man/slabtop.1:66 ../man/ps.1:932
+#, no-wrap
+msgid "v"
+msgstr "v"
+
+#. type: tbl table
+#: ../man/slabtop.1:66
+#, no-wrap
+msgid "number of active slabs"
+msgstr "número de slabs ativos"
+
+#. type: tbl table
+#: ../man/slabtop.1:66 ../man/slabtop.1:69
+#, no-wrap
+msgid "N/A"
+msgstr "N/D"
+
+#. type: tbl table
+#: ../man/slabtop.1:67 ../man/ps.1:919
+#, no-wrap
+msgid "n"
+msgstr "n"
+
+#. type: tbl table
+#: ../man/slabtop.1:67
+#, no-wrap
+msgid "name"
+msgstr "nome"
+
+#. type: tbl table
+#: ../man/slabtop.1:67
+#, no-wrap
+msgid "NAME\\:"
+msgstr "NOME\\:"
+
+#. type: tbl table
+#: ../man/slabtop.1:68 ../man/ps.1:921
+#, no-wrap
+msgid "o"
+msgstr "o"
+
+#. type: tbl table
+#: ../man/slabtop.1:68
+#, no-wrap
+msgid "number of objects"
+msgstr "número de objetos"
+
+#. type: tbl table
+#: ../man/slabtop.1:68
+#, no-wrap
+msgid "OBJS"
+msgstr "OBJS"
+
+#. type: tbl table
+#: ../man/slabtop.1:69 ../man/ps.1:922
+#, no-wrap
+msgid "p"
+msgstr "p"
+
+#. type: tbl table
+#: ../man/slabtop.1:69
+#, no-wrap
+msgid "pages per slab"
+msgstr "páginas por slab"
+
+#. type: tbl table
+#: ../man/slabtop.1:70 ../man/ps.1:879 ../man/ps.1:926 ../man/ps.1:1631
+#, no-wrap
+msgid "s"
+msgstr "s"
+
+#. type: tbl table
+#: ../man/slabtop.1:70
+#, no-wrap
+msgid "object size"
+msgstr "tamanho do objeto"
+
+#. type: tbl table
+#: ../man/slabtop.1:70
+#, no-wrap
+msgid "OBJ SIZE"
+msgstr "TAM OBJ"
+
+#. type: tbl table
+#: ../man/slabtop.1:71 ../man/ps.1:931
+#, no-wrap
+msgid "u"
+msgstr "u"
+
+#. type: tbl table
+#: ../man/slabtop.1:71
+#, no-wrap
+msgid "cache utilization"
+msgstr "utilização de cache"
+
+#. type: tbl table
+#: ../man/slabtop.1:71
+#, no-wrap
+msgid "USE"
+msgstr "USO"
+
+#. type: SH
+#: ../man/slabtop.1:73
+#, no-wrap
+msgid "COMMANDS"
+msgstr "COMANDOS"
+
+#. type: Plain text
+#: ../man/slabtop.1:77
+msgid ""
+"B<slabtop> accepts keyboard commands from the user during use. The "
+"following are supported. In the case of letters, both cases are accepted."
+msgstr ""
+"B<slabtop> aceita comandos de teclado do usuário durante o uso. Os seguintes "
+"são suportados. No caso de letras, ambos os casos são aceitos."
+
+#. type: Plain text
+#: ../man/slabtop.1:81
+msgid ""
+"Each of the valid sort characters are also accepted, to change the sort "
+"routine. See the section B<SORT CRITERIA>."
+msgstr ""
+"Cada um dos caracteres de ordenação válidos também são aceitos, para alterar "
+"a rotina de ordenação. Veja a seção B<CRITÉRIOS DE ORDENAÇÃO>."
+
+# Atenção à sintaxe: E<lt> SPACEBAR E<gt> dentro de B<>
+#. type: TP
+#: ../man/slabtop.1:81
+#, no-wrap
+msgid "B<E<lt>SPACEBARE<gt>>"
+msgstr "B<E<lt>BARRA DE ESPAÇOE<gt>>"
+
+#. type: Plain text
+#: ../man/slabtop.1:84
+msgid "Refresh the screen."
+msgstr "Atualiza a tela."
+
+#. type: TP
+#: ../man/slabtop.1:84
+#, no-wrap
+msgid "B<Q>"
+msgstr "B<Q>"
+
+#. type: Plain text
+#: ../man/slabtop.1:87
+msgid "Quit the program."
+msgstr "Sai do programa."
+
+#. type: TP
+#: ../man/slabtop.1:88
+#, no-wrap
+msgid "I</proc/slabinfo>"
+msgstr "I</proc/slabinfo>"
+
+#. type: Plain text
+#: ../man/slabtop.1:91
+msgid "slab information"
+msgstr "Informações de slabs"
+
+#. type: Plain text
+#: ../man/slabtop.1:96
+msgid "B<free>(1), B<ps>(1), B<top>(1), B<vmstat>(8)"
+msgstr "B<free>(1), B<ps>(1), B<top>(1), B<vmstat>(8)"
+
+#. type: Plain text
+#: ../man/slabtop.1:102
+msgid ""
+"Currently, B<slabtop> requires a 2.4 or later kernel (specifically, a "
+"version 1.1 or later I</proc/slabinfo>). Kernel 2.2 should be supported in "
+"the future."
+msgstr ""
+"Atualmente, B<slabtop> requer um kernel 2.4 ou posterior (especificamente, "
+"uma I</proc/slabinfo> com versão 1.1 ou posterior). Deve haver suporte ao "
+"kernel 2.2 no futuro."
+
+#. type: Plain text
+#: ../man/slabtop.1:108
+#, fuzzy
+#| msgid ""
+#| "The B<slabtop> statistic header is tracking how many bytes of slabs are "
+#| "being used and is not a measure of physical memory. The 'Slab' field in "
+#| "the /proc/meminfo file is tracking information about used slab physical "
+#| "memory."
+msgid ""
+"The B<slabtop> statistic header is tracking how many bytes of slabs are "
+"being used and is not a measure of physical memory. The 'Slab' field in the "
+"I</proc/meminfo> file is tracking information about used slab physical "
+"memory."
+msgstr ""
+"O cabeçalho de estatísticas do B<slabtop> está rastreando quantos bytes de "
+"slabs estão sendo usados e não são uma medida de memória física. O campo "
+"\"Slab\" no arquivo /proc/meminfo é uma informação de rastreamento sobre "
+"memória física de slab usada."
+
+#. type: Plain text
+#: ../man/slabtop.1:114
+msgid ""
+"The B<CACHE SIZE> column is not accurate, it's the upper limit of memory "
+"used by specific slab. When system using slub (most common case) is under "
+"high memory pressure, there are slab order fallbacks, which means \"pages "
+"per slab\" is not constant and may decrease."
+msgstr ""
+
+#. type: SH
+#: ../man/slabtop.1:114 ../man/tload.1:58 ../man/uptime.1:56 ../man/w.1:102
+#, no-wrap
+msgid "AUTHORS"
+msgstr "AUTORES"
+
+#. type: Plain text
+#: ../man/slabtop.1:116
+msgid "Written by Chris Rivera and Robert Love."
+msgstr "Escrito porChris Rivera e Robert Love."
+
+#. type: Plain text
+#: ../man/slabtop.1:120
+msgid "B<slabtop> was inspired by Martin Bligh's perl script, B<vmtop>."
+msgstr "B<slabtop> foi inspirado no script perl de Martin Bligh, B<vmtop>."
+
+#. type: TH
+#: ../man/sysctl.8:14
+#, no-wrap
+msgid "SYSCTL"
+msgstr "SYSCTL"
+
+#. type: TH
+#: ../man/sysctl.8:14 ../man/vmstat.8:13
+#, no-wrap
+msgid "System Administration"
+msgstr "Administração do sistema"
+
+#. type: Plain text
+#: ../man/sysctl.8:17
+msgid "sysctl - configure kernel parameters at runtime"
+msgstr "sysctl - configura parâmetros do kernel em tempo de execução"
+
+#. type: Plain text
+#: ../man/sysctl.8:20
+msgid "B<sysctl> [I<options>] [I<variable>[B<=>I<value>]] [...]"
+msgstr "B<sysctl> [I<opções>] [I<variável>[B<=>I<valor>]] [...]"
+
+#. type: Plain text
+#: ../man/sysctl.8:23
+msgid "B<sysctl -p> [I<file> or I<regexp>] [...]"
+msgstr "B<sysctl -p> [I<arquivo> ou I<regexp>] [...]"
+
+#. type: Plain text
+#: ../man/sysctl.8:31
+#, fuzzy
+#| msgid ""
+#| "B<sysctl> is used to modify kernel parameters at runtime. The parameters "
+#| "available are those listed under /proc/sys/. Procfs is required for "
+#| "B<sysctl> support in Linux. You can use B<sysctl> to both read and write "
+#| "sysctl data."
+msgid ""
+"B<sysctl> is used to modify kernel parameters at runtime. The parameters "
+"available are those listed under I</proc/sys/>. Procfs is required for "
+"B<sysctl> support in Linux. You can use B<sysctl> to both read and write "
+"sysctl data."
+msgstr ""
+"B<sysctl> é usado para modificar parâmetros do kernel em tempo de execução. "
+"Os parâmetros disponíveis são aqueles listados sob /proc/sys/. Procfs é "
+"exigido para o suporte a B<sysctl> no Linux. Você pode usar B<sysctl> para "
+"ler e escrever dados de sysctl."
+
+#. type: SH
+#: ../man/sysctl.8:31
+#, no-wrap
+msgid "PARAMETERS"
+msgstr "PARÂMETROS"
+
+#. type: TP
+#: ../man/sysctl.8:32
+#, no-wrap
+msgid "I<variable>"
+msgstr "I<variável>"
+
+#. type: Plain text
+#: ../man/sysctl.8:36
+msgid ""
+"The name of a key to read from. An example is kernel.ostype. The '/' "
+"separator is also accepted in place of a '.'."
+msgstr ""
+"O nome da chave a ser lida (p. ex., kernel.ostype). O separador \"/\" também "
+"é aceito no lugar de um \".\"."
+
+#. type: TP
+#: ../man/sysctl.8:36
+#, no-wrap
+msgid "I<variable>=I<value>"
+msgstr "I<variável>=I<valor>"
+
+#. type: Plain text
+#: ../man/sysctl.8:47
+msgid ""
+"To set a key, use the form I<variable>=I<value> where I<variable> is the key "
+"and I<value> is the value to set it to. If the value contains quotes or "
+"characters which are parsed by the shell, you may need to enclose the value "
+"in double quotes."
+msgstr ""
+"Para definir uma chave, use a forma I<variável>=I<valor>, sendo I<variável> "
+"a chave e I<valor> o valor para configurá-la. Se o valor contiver aspas ou "
+"os caracteres que são analisados pelo shell, talvez seja necessário incluir "
+"o valor entre aspas duplas."
+
+#. type: TP
+#: ../man/sysctl.8:47
+#, no-wrap
+msgid "B<-n>, B<--values>"
+msgstr "B<-n>, B<--values>"
+
+#. type: Plain text
+#: ../man/sysctl.8:50
+msgid ""
+"Use this option to disable printing of the key name when printing values."
+msgstr ""
+"Use essa opção para desabilitar impressão do nome da chave ao imprimir "
+"valores."
+
+#. type: TP
+#: ../man/sysctl.8:50
+#, no-wrap
+msgid "B<-e>, B<--ignore>"
+msgstr "B<-e>, B<--ignore>"
+
+#. type: Plain text
+#: ../man/sysctl.8:53
+msgid "Use this option to ignore errors about unknown keys."
+msgstr "Use essa opção para ignorar erros sobre as chaves desconhecidas."
+
+#. type: TP
+#: ../man/sysctl.8:53
+#, no-wrap
+msgid "B<-N>, B<--names>"
+msgstr "B<-N>, B<--names>"
+
+#. type: Plain text
+#: ../man/sysctl.8:57
+msgid ""
+"Use this option to only print the names. It may be useful with shells that "
+"have programmable completion."
+msgstr ""
+"Use esta opção para exibir apenas os nomes. Pode ser útil com shells que "
+"tenham um completamento programável."
+
+#. type: Plain text
+#: ../man/sysctl.8:60
+msgid "Use this option to not display the values set to stdout."
+msgstr ""
+"Use essa opção para não exibir os valores definidos para stdout (saída "
+"padrão)."
+
+#. type: TP
+#: ../man/sysctl.8:60
+#, no-wrap
+msgid "B<-w>, B<--write>"
+msgstr "B<-w>, B<--write>"
+
+#. type: Plain text
+#: ../man/sysctl.8:64
+msgid ""
+"Force all arguments to be write arguments and print an error if they cannot "
+"be parsed this way."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:64
+#, no-wrap
+msgid "B<-p>[I<FILE>], B<--load>[=I<FILE>]"
+msgstr "B<-p>[I<ARQUIVO>], B<--load>[=I<ARQUIVO>]"
+
+#. type: Plain text
+#: ../man/sysctl.8:72
+#, fuzzy
+#| msgid ""
+#| "Load in sysctl settings from the file specified or /etc/sysctl.conf if "
+#| "none given. Specifying - as filename means reading data from standard "
+#| "input. Using this option will mean arguments to B<sysctl> are files, "
+#| "which are read in the order they are specified. The file argument may be "
+#| "specified as regular expression."
+msgid ""
+"Load in B<sysctl> settings from the file specified or I</etc/sysctl.conf> if "
+"none given. Specifying - as filename means reading data from standard "
+"input. Using this option will mean arguments to B<sysctl> are files, which "
+"are read in the order they are specified. The file argument may be "
+"specified as regular expression."
+msgstr ""
+"Carrega configurações do sysctl a partir do arquivo especificado ou /etc/"
+"sysctl.conf, se nenhum for fornecido. Especificar - como nome de arquivo "
+"significa ler dados de entrada padrão. Usar esta opção significará que os "
+"argumentos para B<sysctl> são arquivos, os quais são lidos na ordem em que "
+"são especificados. O argumento do arquivo pode ser especificado como "
+"expressão regular."
+
+#. type: TP
+#: ../man/sysctl.8:72
+#, no-wrap
+msgid "B<-a>, B<--all>"
+msgstr "B<-a>, B<--all>"
+
+#. type: Plain text
+#: ../man/sysctl.8:75
+msgid "Display all values currently available."
+msgstr "Exibe todos os valores disponíveis atualmente."
+
+#. type: TP
+#: ../man/sysctl.8:75
+#, no-wrap
+msgid "B<--deprecated>"
+msgstr "B<--deprecated>"
+
+#. type: Plain text
+#: ../man/sysctl.8:80
+msgid "Include deprecated parameters to B<--all> values listing."
+msgstr "Inclui parâmetros obsoletos para listagem de valores de B<--all>."
+
+#. type: TP
+#: ../man/sysctl.8:80
+#, no-wrap
+msgid "B<-b>, B<--binary>"
+msgstr "B<-b>, B<--binary>"
+
+#. type: Plain text
+#: ../man/sysctl.8:83
+msgid "Print value without new line."
+msgstr "Exibe valor sem nova linha."
+
+#. type: TP
+#: ../man/sysctl.8:83
+#, no-wrap
+msgid "B<--system>"
+msgstr "B<--system>"
+
+#. type: Plain text
+#: ../man/sysctl.8:88
+#, fuzzy
+#| msgid "Load settings from all system configuration files."
+msgid ""
+"Load settings from all system configuration files. See the B<SYSTEM FILE "
+"PRECEDENCE> section below."
+msgstr "Carrega configurações de todos os arquivos de configuração do sistema."
+
+#. type: TP
+#: ../man/sysctl.8:88
+#, no-wrap
+msgid "B<-r>, B<--pattern> I<pattern>"
+msgstr "B<-r>, B<--pattern> I<padrão>"
+
+#. type: Plain text
+#: ../man/sysctl.8:95
+msgid ""
+"Only apply settings that match I<pattern>. The I<pattern> uses extended "
+"regular expression syntax."
+msgstr ""
+"Só aplica configurações que corresponderem ao I<padrão>. O I<padrão> usa a "
+"sintaxe de expressão regular estendidas."
+
+#. type: TP
+#: ../man/sysctl.8:95 ../man/ps.1:147
+#, no-wrap
+msgid "B<-A>"
+msgstr "B<-A>"
+
+#. type: Plain text
+#: ../man/sysctl.8:98 ../man/sysctl.8:107
+msgid "Alias of B<-a>"
+msgstr "Apelido de B<-a>"
+
+#. type: TP
+#: ../man/sysctl.8:98 ../man/ps.1:156
+#, no-wrap
+msgid "B<-d>"
+msgstr "B<-d>"
+
+#. type: Plain text
+#: ../man/sysctl.8:101
+msgid "Alias of B<-h>"
+msgstr "Apelido de B<-h>"
+
+#. type: TP
+#: ../man/sysctl.8:101 ../man/ps.1:417
+#, no-wrap
+msgid "B<-f>"
+msgstr "B<-f>"
+
+#. type: Plain text
+#: ../man/sysctl.8:104
+msgid "Alias of B<-p>"
+msgstr "Apelido de B<-p>"
+
+#. type: TP
+#: ../man/sysctl.8:107
+#, no-wrap
+msgid "B<-o>"
+msgstr "B<-o>"
+
+#. type: Plain text
+#: ../man/sysctl.8:110 ../man/sysctl.8:113
+msgid "Does nothing, exists for BSD compatibility."
+msgstr "Faz nada, existe para compatibilidade com BSD."
+
+#. type: SH
+#: ../man/sysctl.8:119
+#, no-wrap
+msgid "SYSTEM FILE PRECEDENCE"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:125
+#, fuzzy
+#| msgid ""
+#| "Load settings from all system configuration files. Files are read from "
+#| "directories in the following list in given order from top to bottom. "
+#| "Once a file of a given filename is loaded, any file of the same name in "
+#| "subsequent directories is ignored."
+msgid ""
+"When using the B<--system> option, B<sysctl> will read files from "
+"directories in the following list in given order from top to bottom. Once a "
+"file of a given filename is loaded, any file of the same name in subsequent "
+"directories is ignored."
+msgstr ""
+"Carrega as configurações de todos os arquivos de configuração do sistema. Os "
+"arquivos são lidos dos diretórios da lista a seguir, em uma determinada "
+"ordem, de cima para baixo. Depois que um arquivo de um determinado nome de "
+"arquivo é carregado, qualquer arquivo com o mesmo nome nos diretórios "
+"subsequentes é ignorado."
+
+#. type: Plain text
+#: ../man/sysctl.8:127
+msgid "/etc/sysctl.d/*.conf"
+msgstr "/etc/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:129
+msgid "/run/sysctl.d/*.conf"
+msgstr "/run/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:131
+msgid "/usr/local/lib/sysctl.d/*.conf"
+msgstr "/usr/local/lib/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:133
+msgid "/usr/lib/sysctl.d/*.conf"
+msgstr "/usr/lib/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:135
+msgid "/lib/sysctl.d/*.conf"
+msgstr "/lib/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:137
+msgid "/etc/sysctl.conf"
+msgstr "/etc/sysctl.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:143
+msgid ""
+"All configuration files are sorted in lexicographic order, regardless of the "
+"directory they reside in. Configuration files can either be completely "
+"replaced (by having a new configuration file with the same name in a "
+"directory of higher priority) or partially replaced (by having a "
+"configuration file that is ordered later)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:145
+msgid "/sbin/sysctl -a"
+msgstr "/sbin/sysctl -a"
+
+#. type: Plain text
+#: ../man/sysctl.8:147
+msgid "/sbin/sysctl -n kernel.hostname"
+msgstr "/sbin/sysctl -n kernel.hostname"
+
+#. type: Plain text
+#: ../man/sysctl.8:149
+msgid "/sbin/sysctl -w kernel.domainname=\"example.com\""
+msgstr "/sbin/sysctl -w kernel.domainname=\"example.com\""
+
+#. type: Plain text
+#: ../man/sysctl.8:151
+msgid "/sbin/sysctl -p/etc/sysctl.conf"
+msgstr "/sbin/sysctl -p/etc/sysctl.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:153
+msgid "/sbin/sysctl -a --pattern forward"
+msgstr "/sbin/sysctl -a --pattern forward"
+
+#. type: Plain text
+#: ../man/sysctl.8:155
+msgid "/sbin/sysctl -a --pattern forward$"
+msgstr "/sbin/sysctl -a --pattern forward$"
+
+#. type: Plain text
+#: ../man/sysctl.8:157
+msgid "/sbin/sysctl -a --pattern 'net.ipv4.conf.(eth|wlan)0.arp'"
+msgstr "/sbin/sysctl -a --pattern 'net.ipv4.conf.(eth|wlan)0.arp'"
+
+#. type: Plain text
+#: ../man/sysctl.8:159
+#, fuzzy
+#| msgid "/sbin/sysctl --system --pattern '^net.ipv6'"
+msgid "/sbin/sysctl --pattern '\\[char94]net.ipv6' --system"
+msgstr "/sbin/sysctl --system --pattern '^net.ipv6'"
+
+#. type: SH
+#: ../man/sysctl.8:159
+#, no-wrap
+msgid "DEPRECATED PARAMETERS"
+msgstr "PARÂMETROS OBSOLETOS"
+
+#. type: Plain text
+#: ../man/sysctl.8:169
+#, fuzzy
+#| msgid ""
+#| "The B<base_reachable_time> and B<retrans_time> are deprecated. The "
+#| "B<sysctl> command does not allow changing values of these parameters. "
+#| "Users who insist to use deprecated kernel interfaces should push values "
+#| "to /proc file system by other means. For example:"
+msgid ""
+"The B<base_reachable_time> and B<retrans_time> are deprecated. The "
+"B<sysctl> command does not allow changing values of these parameters. Users "
+"who insist to use deprecated kernel interfaces should push values to B</"
+"proc> file system by other means. For example:"
+msgstr ""
+"O B<base_reachable_time> e B<retrans_time> foram descontinuados. O comando "
+"B<sysctl> não permite alterar os valores desses parâmetros. Os usuários que "
+"insistem em usar interfaces de kernel descontinuadas devem inserir valores "
+"no sistema de arquivos /proc por outros meios. Por exemplo:"
+
+#. type: Plain text
+#: ../man/sysctl.8:171
+msgid "echo 256 E<gt> /proc/sys/net/ipv6/neigh/eth0/base_reachable_time"
+msgstr "echo 256 E<gt> /proc/sys/net/ipv6/neigh/eth0/base_reachable_time"
+
+#. type: Plain text
+#: ../man/sysctl.8:173
+msgid "I</proc/sys>"
+msgstr "I</proc/sys>"
+
+#. type: Plain text
+#: ../man/sysctl.8:175 ../man/sysctl.conf.5:66
+msgid "I</etc/sysctl.d/*.conf>"
+msgstr "I</etc/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:177 ../man/sysctl.conf.5:68
+msgid "I</run/sysctl.d/*.conf>"
+msgstr "I</run/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:179 ../man/sysctl.conf.5:70
+msgid "I</usr/local/lib/sysctl.d/*.conf>"
+msgstr "I</usr/local/lib/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:181 ../man/sysctl.conf.5:72
+msgid "I</usr/lib/sysctl.d/*.conf>"
+msgstr "I</usr/lib/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:183 ../man/sysctl.conf.5:74
+msgid "I</lib/sysctl.d/*.conf>"
+msgstr "I</lib/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:185 ../man/sysctl.conf.5:76
+msgid "I</etc/sysctl.conf>"
+msgstr "I</etc/sysctl.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:189
+#, fuzzy
+#| msgid "B<sysctl.conf>(5) B<regex>(7)"
+msgid "B<proc>(5), B<sysctl.conf>(5), B<regex>(7)"
+msgstr "B<sysctl.conf>(5) B<regex>(7)"
+
+#. type: Plain text
+#: ../man/sysctl.8:193 ../man/sysctl.conf.5:89
+msgid "E<.UR staikos@0wned.org> George Staikos E<.UE>"
+msgstr "E<.UR staikos@0wned.org> George Staikos E<.UE>"
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "SYSCTL.CONF"
+msgstr "SYSCTL.CONF"
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, fuzzy, no-wrap
+#| msgid "2019-09-21"
+msgid "2021-09-15"
+msgstr "2019-09-21"
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "File Formats"
+msgstr "Formatos de arquivo"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:16
+msgid "sysctl.conf - sysctl preload/configuration file"
+msgstr "sysctl.conf - arquivo de configuração/pré-carregamento do sysctl"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:21
+msgid ""
+"B<sysctl.conf> is a simple file containing sysctl values to be read in and "
+"set by B<sysctl>. The syntax is simply as follows:"
+msgstr ""
+"B<sysctl.conf> um arquivo simples contendo valores do sysctl a serem lidos e "
+"definidos por B<sysctl>. A sintaxe é simples assim:"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:27
+#, no-wrap
+msgid ""
+"# comment\n"
+"; comment\n"
+msgstr ""
+"# comentário\n"
+"; comentário\n"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:29
+#, no-wrap
+msgid "token = value\n"
+msgstr "token = valor\n"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:35
+msgid ""
+"Note that blank lines are ignored, and whitespace before and after a token "
+"or value is ignored, although a value can contain whitespace within. Lines "
+"which begin with a I<#> or I<;> are considered comments and ignored."
+msgstr ""
+"Observe que as linhas em branco são ignoradas e o espaço em branco antes e "
+"depois de um token ou valor é ignorado, embora um valor possa conter espaços "
+"em branco dentro. Linhas que começam com um I<#> ou I<;> são consideradas "
+"comentários e ignoradas."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:38
+msgid ""
+"If a line begins with a single -, any attempts to set the value that fail "
+"will be ignored."
+msgstr ""
+"Se uma linha começar com um único -, qualquer tentativa de definir o valor "
+"que falhará será ignorada."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:48
+msgid ""
+"As the B</etc/sysctl.conf> file is used to override default kernel parameter "
+"values, only a small number of parameters is predefined in the file. Use I</"
+"sbin/sysctl\\ -a> or follow B<sysctl>(8) to list all possible parameters. "
+"The description of individual parameters can be found in the kernel "
+"documentation."
+msgstr ""
+"Como o arquivo B</etc/sysctl.conf> é usado para substituir os valores padrão "
+"dos parâmetros do kernel, apenas um pequeno número de parâmetros é "
+"predefinido no arquivo. Use I</sbin/sysctl\\ -a> ou siga B<sysctl>(8) para "
+"listar todos os parâmetros possíveis. A descrição de parâmetros individuais "
+"pode ser encontrada na documentação do kernel."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:51
+msgid ""
+"Maximum supported line length of the value is 4096 characters due to a "
+"limitation of I</proc> entries in Linux kernel."
+msgstr ""
+
+#. type: SH
+#: ../man/sysctl.conf.5:51
+#, no-wrap
+msgid "EXAMPLE"
+msgstr "EXEMPLO"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:61
+#, no-wrap
+msgid ""
+"# sysctl.conf sample\n"
+"#\n"
+" kernel.domainname = example.com\n"
+"; this one has a space which will be written to the sysctl!\n"
+" kernel.modprobe = /sbin/mod probe\n"
+msgstr ""
+"# exemplo de sysctl.conf\n"
+"#\n"
+" kernel.domainname = example.com\n"
+"; esse tem um espaço que será escrito para o sysctl!\n"
+" kernel.modprobe = /sbin/mod probe\n"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:83
+msgid ""
+"The paths where B<sysctl> preload files usually exist. See also B<sysctl> "
+"option I<--system>."
+msgstr ""
+"Os caminhos onde os arquivos de pré-carregamento do B<sysctl> geralmente "
+"existem. Veja também a opção I<--system> do B<sysctl>."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:85
+msgid "B<sysctl>(8)"
+msgstr "B<sysctl>(8)"
+
+#. type: TH
+#: ../man/tload.1:12
+#, no-wrap
+msgid "TLOAD"
+msgstr "TLOAD"
+
+#. type: Plain text
+#: ../man/tload.1:15
+msgid "tload - graphic representation of system load average"
+msgstr "tload - representação gráfica da média de carga do sistema"
+
+#. type: Plain text
+#: ../man/tload.1:18
+msgid "B<tload> [I<options>] [I<tty>]"
+msgstr "B<tload> [I<opções>] [I<tty>]"
+
+#. type: Plain text
+#: ../man/tload.1:25
+msgid ""
+"B<tload> prints a graph of the current system load average to the specified "
+"I<tty> (or the tty of the B<tload> process if none is specified)."
+msgstr ""
+"B<tload> emite um gráfico da média da carga atual do sistema para o I<tty> "
+"especificado (ou o tty do processo do B<tload> se nenhum for especificado)."
+
+#. type: TP
+#: ../man/tload.1:26
+#, no-wrap
+msgid "B<-s>, B<--scale> I<number>"
+msgstr "B<-s>, B<--scale> I<número>"
+
+#. type: Plain text
+#: ../man/tload.1:31
+msgid ""
+"The scale option allows a vertical scale to be specified for the display (in "
+"characters between graph ticks); thus, a smaller value represents a larger "
+"scale, and vice versa."
+msgstr ""
+"A opção de escala permite que uma escala vertical seja especificada na tela "
+"(em caracteres entre tiques de gráfico); portanto, um valor menor representa "
+"uma escala maior e vice-versa."
+
+#. type: TP
+#: ../man/tload.1:31
+#, no-wrap
+msgid "B<-d>, B<--delay> I<seconds>"
+msgstr "B<-d>, B<--delay> I<segundos>"
+
+#. type: Plain text
+#: ../man/tload.1:35
+msgid "The delay sets the delay between graph updates in I<seconds>."
+msgstr "O atraso define o atraso entre atualizações de gráfico em I<segundos>."
+
+#. type: Plain text
+#: ../man/tload.1:38
+msgid "Display this help text."
+msgstr "Exibe esse texto de ajuda."
+
+#. type: Plain text
+#: ../man/tload.1:45
+msgid "I</proc/loadavg> load average information"
+msgstr "I</proc/loadavg> informações de média da carga"
+
+#. type: Plain text
+#: ../man/tload.1:50
+msgid "B<ps>(1), B<top>(1), B<uptime>(1), B<w>(1)"
+msgstr "B<ps>(1), B<top>(1), B<uptime>(1), B<w>(1)"
+
+#. type: Plain text
+#: ../man/tload.1:58
+msgid ""
+"The B<-d>I< delay> option sets the time argument for an B<alarm>(2); if -d 0 "
+"is specified, the alarm is set to 0, which will never send the B<SIGALRM> "
+"and update the display."
+msgstr ""
+"A opção B<-d>I< segundos> define o argumento de tempo para um B<alarm>(2); "
+"se -d 0 for especificado, o alarme é definido para 0, o que nunca envia o "
+"B<SIGALRM> e atualiza a tela."
+
+#. type: Plain text
+#: ../man/tload.1:66
+msgid ""
+"Branko Lankester, E<.UR david@\\:ods.\\:com> David Engel E<.UE , and> E<.UR "
+"johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE .>"
+msgstr ""
+"Branko Lankester, E<.UR david@\\:ods.\\:com> David Engel E<.UE e> E<.UR "
+"johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE .>"
+
+#. type: TH
+#: ../man/uptime.1:13
+#, no-wrap
+msgid "UPTIME"
+msgstr "UPTIME"
+
+#. type: TH
+#: ../man/uptime.1:13
+#, no-wrap
+msgid "December 2012"
+msgstr "Dezembro de 2012"
+
+#. type: Plain text
+#: ../man/uptime.1:16
+msgid "uptime - Tell how long the system has been running."
+msgstr "uptime - Fala a quanto tempo o sistema está em execução."
+
+#. type: Plain text
+#: ../man/uptime.1:19
+msgid "B<uptime> [I<options>]"
+msgstr "B<uptime> [I<opções>]"
+
+#. type: Plain text
+#: ../man/uptime.1:24
+msgid ""
+"B<uptime> gives a one line display of the following information. The "
+"current time, how long the system has been running, how many users are "
+"currently logged on, and the system load averages for the past 1, 5, and 15 "
+"minutes."
+msgstr ""
+"B<uptime> fornece uma exibição de uma linha das seguintes informações. O "
+"tempo atual, a quanto tempo o sistema está funcionando, quantos usuários "
+"estão conectados no momento e as médias de carga do sistema nos últimos 1, 5 "
+"e 15 minutos."
+
+#. type: Plain text
+#: ../man/uptime.1:27
+msgid ""
+"This is the same information contained in the header line displayed by "
+"B<w>(1)."
+msgstr ""
+"Essa é a mesma informação que aparece na linha de cabeçalho do B<w>(1)."
+
+#. type: Plain text
+#: ../man/uptime.1:36
+msgid ""
+"System load averages is the average number of processes that are either in a "
+"runnable or uninterruptable state. A process in a runnable state is either "
+"using the CPU or waiting to use the CPU. A process in uninterruptable state "
+"is waiting for some I/O access, eg waiting for disk. The averages are taken "
+"over the three time intervals. Load averages are not normalized for the "
+"number of CPUs in a system, so a load average of 1 means a single CPU system "
+"is loaded all the time while on a 4 CPU system it means it was idle 75% of "
+"the time."
+msgstr ""
+"As médias de carga do sistema são o número médio de processos que estão em "
+"um estado executável ou ininterrupto. Um processo em um estado executável "
+"está usando a CPU ou aguardando o uso da CPU. Um processo em estado "
+"ininterrupto está aguardando algum acesso de E/S (p.ex., aguardando o "
+"disco). As médias são tomadas ao longo dos três intervalos de tempo. As "
+"médias de carga não são normalizadas para o número de CPUs em um sistema e, "
+"portanto, uma média de carga de 1 significa que um único sistema de CPU está "
+"carregado o tempo todo, enquanto que em um sistema de 4 CPUs significa que "
+"estava ocioso 75% do tempo."
+
+#. type: TP
+#: ../man/uptime.1:37
+#, no-wrap
+msgid "B<-p>, B<--pretty>"
+msgstr "B<-p>, B<--pretty>"
+
+#. type: Plain text
+#: ../man/uptime.1:40
+msgid "show uptime in pretty format"
+msgstr "mostra o tempo de atividade em um formato bonito"
+
+#. type: Plain text
+#: ../man/uptime.1:43
+msgid "display this help text"
+msgstr "exibe esse texto de ajuda"
+
+#. type: TP
+#: ../man/uptime.1:43
+#, no-wrap
+msgid "B<-s>, B<--since>"
+msgstr "B<-s>, B<--since>"
+
+#. type: Plain text
+#: ../man/uptime.1:46
+msgid "system up since, in yyyy-mm-dd HH:MM:SS format"
+msgstr "sistema ativo desde, no formato aaaa-mm-dd HH:MM:SS"
+
+#. type: Plain text
+#: ../man/uptime.1:49
+msgid "display version information and exit"
+msgstr "exibe informação da versão e sai"
+
+#. type: TP
+#: ../man/uptime.1:50 ../man/w.1:89
+#, no-wrap
+msgid "I</var/run/utmp>"
+msgstr "I</var/run/utmp>"
+
+#. type: Plain text
+#: ../man/uptime.1:53 ../man/w.1:92
+msgid "information about who is currently logged on"
+msgstr "informações sobre quem está atualmente conectado"
+
+#. type: TP
+#: ../man/uptime.1:53 ../man/w.1:92
+#, no-wrap
+msgid "I</proc>"
+msgstr "I</proc>"
+
+#. type: Plain text
+#: ../man/uptime.1:56 ../man/w.1:95
+msgid "process information"
+msgstr "informações de processos"
+
+#. type: Plain text
+#: ../man/uptime.1:66
+msgid ""
+"B<uptime> was written by E<.UR greenfie@gauss.\\:rutgers.\\:edu> Larry "
+"Greenfield E<.UE> and E<.UR johnsonm@sunsite.\\:unc.\\:edu> Michael K. "
+"Johnson E<.UE>"
+msgstr ""
+"B<uptime> foi escrito por E<.UR greenfie@gauss.\\:rutgers.\\:edu> Larry "
+"Greenfield E<.UE> e E<.UR johnsonm@sunsite.\\:unc.\\:edu> Michael K. Johnson "
+"E<.UE>"
+
+#. type: Plain text
+#: ../man/uptime.1:71
+msgid "B<ps>(1), B<top>(1), B<utmp>(5), B<w>(1)"
+msgstr "B<ps>(1), B<top>(1), B<utmp>(5), B<w>(1)"
+
+#. type: TH
+#: ../man/vmstat.8:13
+#, no-wrap
+msgid "VMSTAT"
+msgstr "VMSTAT"
+
+#. type: TH
+#: ../man/vmstat.8:13
+#, no-wrap
+msgid "2023-01-18"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:16
+msgid "vmstat - Report virtual memory statistics"
+msgstr "vmstat - Relata estatísticas de memória virtual"
+
+#. type: Plain text
+#: ../man/vmstat.8:20
+msgid "B<vmstat> [options] [I<delay> [I<count>]]"
+msgstr "B<vmstat> [opções] [I<atraso> [I<contagem>]]"
+
+#. type: Plain text
+#: ../man/vmstat.8:24
+msgid ""
+"B<vmstat> reports information about processes, memory, paging, block IO, "
+"traps, disks and cpu activity."
+msgstr ""
+"B<vmstat> relata informações sobre processos, memória, paginação, E/S de "
+"bloco, traps, discos e atividade de cpu."
+
+#. type: Plain text
+#: ../man/vmstat.8:29
+msgid ""
+"The first report produced gives averages since the last reboot. Additional "
+"reports give information on a sampling period of length I<delay>. The "
+"process and memory reports are instantaneous in either case."
+msgstr ""
+"O primeiro relatório produzido fornece as médias desde a última "
+"reinicialização. Relatórios adicionais fornecem informações sobre um período "
+"de amostragem de I<atraso> de comprimento. Os relatórios de processos e de "
+"memória são instantâneos em ambos os casos."
+
+#. type: TP
+#: ../man/vmstat.8:30
+#, no-wrap
+msgid "I<delay>"
+msgstr "I<atraso>"
+
+#. type: Plain text
+#: ../man/vmstat.8:37
+msgid ""
+"The I<delay> between updates in seconds. If no I<delay> is specified, only "
+"one report is printed with the average values since boot."
+msgstr ""
+"O I<atraso> entre atualizações em segundos. Se nenhum I<atraso> for "
+"especificado, apenas um relatório é impresso com os valores médios desde a "
+"inicialização."
+
+#. type: TP
+#: ../man/vmstat.8:37
+#, no-wrap
+msgid "I<count>"
+msgstr "I<contagem>"
+
+#. type: Plain text
+#: ../man/vmstat.8:44
+msgid ""
+"Number of updates. In absence of I<count>, when I<delay> is defined, "
+"default is infinite."
+msgstr ""
+"Número de atualizações. Na ausência de I<contagem>, quando I<atraso> é "
+"definido, o padrão é infinito."
+
+#. type: TP
+#: ../man/vmstat.8:44
+#, no-wrap
+msgid "B<-a>, B<--active>"
+msgstr "B<-a>, B<--active>"
+
+#. type: Plain text
+#: ../man/vmstat.8:47
+msgid "Display active and inactive memory, given a 2.5.41 kernel or better."
+msgstr "Exibe memória ativa e inativa, com um kernel 2.5.41 ou superior."
+
+#. type: TP
+#: ../man/vmstat.8:47
+#, no-wrap
+msgid "B<-f>, B<--forks>"
+msgstr "B<-f>, B<--forks>"
+
+#. type: Plain text
+#: ../man/vmstat.8:55
+msgid ""
+"The B<-f> switch displays the number of forks since boot. This includes the "
+"fork, vfork, and clone system calls, and is equivalent to the total number "
+"of tasks created. Each process is represented by one or more tasks, "
+"depending on thread usage. This display does not repeat."
+msgstr ""
+"A opção B<-f> exibe o número de bifurcações (forks) desde a inicialização. "
+"Isso inclui as chamadas do sistema de fork, vfork e clone, e é equivalente "
+"ao número total de tarefas criadas. Cada processo é representado por uma ou "
+"mais tarefas, dependendo do uso do segmento. Esta exibição não se repete."
+
+#. type: TP
+#: ../man/vmstat.8:55
+#, no-wrap
+msgid "B<-m>, B<--slabs>"
+msgstr "B<-m>, B<--slabs>"
+
+#. type: Plain text
+#: ../man/vmstat.8:58
+msgid "Displays slabinfo."
+msgstr "Exibe slabinfo."
+
+#. type: TP
+#: ../man/vmstat.8:58
+#, no-wrap
+msgid "B<-n>, B<--one-header>"
+msgstr "B<-n>, B<--one-header>"
+
+#. type: Plain text
+#: ../man/vmstat.8:61
+msgid "Display the header only once rather than periodically."
+msgstr "Exibe o cabeçalho apenas uma vez em vez de periodicamente."
+
+#. type: TP
+#: ../man/vmstat.8:61
+#, no-wrap
+msgid "B<-s>, B<--stats>"
+msgstr "B<-s>, B<--stats>"
+
+#. type: Plain text
+#: ../man/vmstat.8:65
+msgid ""
+"Displays a table of various event counters and memory statistics. This "
+"display does not repeat."
+msgstr ""
+"Exibe uma tabela de vários contadores de eventos e estatísticas de memória. "
+"Esta exibição não se repete."
+
+#. type: TP
+#: ../man/vmstat.8:65
+#, no-wrap
+msgid "B<-d>, B<--disk>"
+msgstr "B<-d>, B<--disk>"
+
+#. type: Plain text
+#: ../man/vmstat.8:68
+msgid "Report disk statistics (2.5.70 or above required)."
+msgstr "Relata estatísticas de disco (requer 2.5.70 ou superior)."
+
+#. type: TP
+#: ../man/vmstat.8:68
+#, no-wrap
+msgid "B<-D>, B<--disk-sum>"
+msgstr "B<-D>, B<--disk-sum>"
+
+#. type: Plain text
+#: ../man/vmstat.8:71
+msgid "Report some summary statistics about disk activity."
+msgstr "Relata algumas estatísticas de resumo sobre a atividade do disco."
+
+#. type: TP
+#: ../man/vmstat.8:71
+#, no-wrap
+msgid "B<-p>, B<--partition> I<device>"
+msgstr "B<-p>, B<--partition> I<dispositivo>"
+
+#. type: Plain text
+#: ../man/vmstat.8:74
+msgid "Detailed statistics about partition (2.5.70 or above required)."
+msgstr "Estatísticas detalhadas sobre partição (requer 2.5.70 ou superior)."
+
+#. type: TP
+#: ../man/vmstat.8:74
+#, no-wrap
+msgid "B<-S>, B<--unit> I<character>"
+msgstr "B<-S>, B<--unit> I<caractere>"
+
+#. type: Plain text
+#: ../man/vmstat.8:86
+#, fuzzy
+#| msgid ""
+#| "Switches outputs between 1000 (I<k>), 1024 (I<K>), 1000000 (I<m>), or "
+#| "1048576 (I<M>) bytes. Note this does not change the block (bi/bo) "
+#| "fields, which are always measured in blocks."
+msgid ""
+"Switches outputs between 1000 (I<k>), 1024 (I<K>), 1000000 (I<m>), or "
+"1048576 (I<M>) bytes. Note this does not change the swap (si/so) or block "
+"(bi/bo) fields."
+msgstr ""
+"Muda as saídas entre 1000 (I<k>), 1024 (I<K>), 1000000 (I<m>) ou 1048576 "
+"(I<M>) bytes. Note que isso não altera os campos de blocos (bi/bo), que são "
+"sempre medidos em blocos."
+
+#. type: TP
+#: ../man/vmstat.8:86
+#, no-wrap
+msgid "B<-t>, B<--timestamp>"
+msgstr "B<-t>, B<--timestamp>"
+
+# Ponto adicionado para padronizar descrição de opções.
+#. type: Plain text
+#: ../man/vmstat.8:89
+msgid "Append timestamp to each line"
+msgstr "Anexa o carimbo de tempo para cada linha."
+
+#. type: Plain text
+#: ../man/vmstat.8:94
+msgid ""
+"Wide output mode (useful for systems with higher amount of memory, where the "
+"default output mode suffers from unwanted column breakage). The output is "
+"wider than 80 characters per line."
+msgstr ""
+"Modo de saída ampla (útil para sistemas com maior quantidade de memória, "
+"onde o modo de saída padrão sofre de quebras de coluna indesejadas). A saída "
+"é maior do que 80 caracteres por linha."
+
+#. type: TP
+#: ../man/vmstat.8:94
+#, fuzzy, no-wrap
+#| msgid "B<-t>, B<--no-title>"
+msgid "B<-y>, B<--no-first>"
+msgstr "B<-t>, B<--no-title>"
+
+#. type: Plain text
+#: ../man/vmstat.8:97
+msgid "Omits first report with statistics since system boot."
+msgstr ""
+
+#. type: SH
+#: ../man/vmstat.8:104
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR VM MODE"
+msgstr "DESCRIÇÃO DE CAMPOS PARA MODO DE VM"
+
+#. type: SS
+#: ../man/vmstat.8:105
+#, no-wrap
+msgid "Procs"
+msgstr "Procs"
+
+#. type: Plain text
+#: ../man/vmstat.8:109
+#, no-wrap
+msgid ""
+"r: The number of runnable processes (running or waiting for run time).\n"
+"b: The number of processes blocked waiting for I/O to complete.\n"
+msgstr ""
+"r: O número de processos executáveis (executando ou aguardando o tempo de execução).\n"
+"b: O número de processos bloqueados aguardando E/S para concluir.\n"
+
+#. type: SS
+#: ../man/vmstat.8:110
+#, no-wrap
+msgid "Memory"
+msgstr "Memória"
+
+#. type: Plain text
+#: ../man/vmstat.8:112 ../man/vmstat.8:122
+msgid "These are affected by the B<--unit> option."
+msgstr "Estes não são afetados pela opção B<--unit>."
+
+#. type: Plain text
+#: ../man/vmstat.8:119
+#, no-wrap
+msgid ""
+"swpd: the amount of swap memory used.\n"
+"free: the amount of idle memory.\n"
+"buff: the amount of memory used as buffers.\n"
+"cache: the amount of memory used as cache.\n"
+"inact: the amount of inactive memory. (B<-a> option)\n"
+"active: the amount of active memory. (B<-a> option)\n"
+msgstr ""
+"swpd: a quantidade de memória virtual usada.\n"
+"livre: a quantidade de memória ociosa.\n"
+"buff: a quantidade de memória usada como buffers.\n"
+"cache: a quantidade de memória utilizada como cache.\n"
+"inativ: a quantidade de memória inativa. (opção B<-a>)\n"
+"ativo: a quantidade de memória ativa. (opção B<-a>)\n"
+
+#. type: SS
+#: ../man/vmstat.8:120
+#, no-wrap
+msgid "Swap"
+msgstr "Swap"
+
+#. type: Plain text
+#: ../man/vmstat.8:125
+#, no-wrap
+msgid ""
+"si: Amount of memory swapped in from disk (/s).\n"
+"so: Amount of memory swapped to disk (/s).\n"
+msgstr ""
+"si: Quantidade de memória trocada do disco (/s).\n"
+"so: Quantidade de memória trocada para o disco (/s).\n"
+
+#. type: SS
+#: ../man/vmstat.8:126 ../man/vmstat.8:161
+#, no-wrap
+msgid "IO"
+msgstr "E/S"
+
+#. type: Plain text
+#: ../man/vmstat.8:130
+#, fuzzy, no-wrap
+#| msgid ""
+#| "bi: Blocks received from a block device (blocks/s).\n"
+#| "bo: Blocks sent to a block device (blocks/s).\n"
+msgid ""
+"bi: Kibibyte received from a block device (KiB/s).\n"
+"bo: Kibibyte sent to a block device (KiB/s).\n"
+msgstr ""
+"bi: Blocos recebidos de um dispositivo de bloco (blocos/s).\n"
+"bo: Blocos enviados para um dispositivo de bloco (blocos/s).\n"
+
+#. type: SS
+#: ../man/vmstat.8:131
+#, no-wrap
+msgid "System"
+msgstr "Sistema"
+
+#. type: Plain text
+#: ../man/vmstat.8:135
+#, no-wrap
+msgid ""
+"in: The number of interrupts per second, including the clock.\n"
+"cs: The number of context switches per second.\n"
+msgstr ""
+"in: O número de interrupções por segundo, incluindo o relógio.\n"
+"cs: o número de trocas de contexto por segundo.\n"
+
+#. type: ds PU
+#: ../man/vmstat.8:136 ../man/top.1:37
+#, no-wrap
+msgid "CPU"
+msgstr "CPU"
+
+#. type: Plain text
+#: ../man/vmstat.8:138
+msgid "These are percentages of total CPU time."
+msgstr "Esses são percentuais de tempo total de CPU."
+
+#. type: Plain text
+#: ../man/vmstat.8:145
+#, fuzzy, no-wrap
+#| msgid ""
+#| "us: Time spent running non-kernel code. (user time, including nice time)\n"
+#| "sy: Time spent running kernel code. (system time)\n"
+#| "id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.\n"
+#| "wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle.\n"
+#| "st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.\n"
+msgid ""
+"us: Time spent running non-kernel code. (user time, including nice time)\n"
+"sy: Time spent running kernel code. (system time)\n"
+"id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.\n"
+"wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle.\n"
+"st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.\n"
+"gu: Time spent running KVM guest code (guest time, including guest nice).\n"
+msgstr ""
+"us: tempo gasto executando código não kernel. (tempo do usuário, incluindo tempo de nice)\n"
+"sy: Tempo gasto executando código de kernel. (tempo do sistema)\n"
+"id: tempo gasto ocioso. Antes do Linux 2.5.41, isso inclui o tempo de espera E/S.\n"
+"wa: Tempo gasto à espera de E/S. Antes do Linux 2.5.41, incluído no modo ocioso.\n"
+"st: Tempo roubado de uma máquina virtual. Antes do Linux 2.6.11, desconhecido.\n"
+
+#. type: SH
+#: ../man/vmstat.8:146
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR DISK MODE"
+msgstr "DESCRIÇÃO DE CAMPOS PARA MODO DE DISCO"
+
+#. type: SS
+#: ../man/vmstat.8:147
+#, no-wrap
+msgid "Reads"
+msgstr "Leituras"
+
+#. type: Plain text
+#: ../man/vmstat.8:153
+#, no-wrap
+msgid ""
+"total: Total reads completed successfully\n"
+"merged: grouped reads (resulting in one I/O)\n"
+"sectors: Sectors read successfully\n"
+"ms: milliseconds spent reading\n"
+msgstr ""
+"total: Total de leituras concluídas com sucesso\n"
+"mescl.: Leituras agrupadas (resultando em uma E/S)\n"
+"setores: Setores lidos com sucesso\n"
+"ms: Milissegundos gastos lendo\n"
+
+#. type: SS
+#: ../man/vmstat.8:154
+#, no-wrap
+msgid "Writes"
+msgstr "Escritas"
+
+#. type: Plain text
+#: ../man/vmstat.8:160
+#, no-wrap
+msgid ""
+"total: Total writes completed successfully\n"
+"merged: grouped writes (resulting in one I/O)\n"
+"sectors: Sectors written successfully\n"
+"ms: milliseconds spent writing\n"
+msgstr ""
+"total: Total de escritas concluídas com sucesso\n"
+"mescl.: Escritas agrupadas (resultando em uma E/S)\n"
+"setores: Setores escritos com sucesso\n"
+"ms: Milissegundos gastos escrevendo\n"
+
+#. type: Plain text
+#: ../man/vmstat.8:165
+#, no-wrap
+msgid ""
+"cur: I/O in progress\n"
+"s: seconds spent for I/O\n"
+msgstr ""
+"atu: E/S em progresso\n"
+"s: segundos gastos para E/S\n"
+
+#. type: SH
+#: ../man/vmstat.8:166
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR DISK PARTITION MODE"
+msgstr "DESCRIÇÃO DE CAMPOS PARA MODO DE PARTIÇÃO"
+
+#. type: Plain text
+#: ../man/vmstat.8:172
+#, no-wrap
+msgid ""
+"reads: Total number of reads issued to this partition\n"
+"read sectors: Total read sectors for partition\n"
+"writes : Total number of writes issued to this partition\n"
+"requested writes: Total number of write requests made for partition\n"
+msgstr ""
+"leituras: Número total de leituras emitidas para esta partição\n"
+"set. lidos: Total de setores lidos para a partição\n"
+"escritas: Número total de escritas emitidas para esta partição\n"
+"escrit. solic: Número total de solicitações de escrita feitas para partição\n"
+
+#. type: SH
+#: ../man/vmstat.8:173
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR SLAB MODE"
+msgstr "DESCRIÇÃO DE CAMPOS PARA MODO DE SLAB"
+
+#. type: Plain text
+#: ../man/vmstat.8:177
+msgid ""
+"Slab mode shows statistics per slab, for more information about this "
+"information see B<slabinfo>(5)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:184
+#, no-wrap
+msgid ""
+"cache: Cache name\n"
+"num: Number of currently active objects\n"
+"total: Total number of available objects\n"
+"size: Size of each object\n"
+"pages: Number of pages with at least one active object\n"
+msgstr ""
+"cache: Nome do cache\n"
+"núm: Número de objetos atualmente ativos\n"
+"total: Número total de objetos disponíveis\n"
+"tam.: Tamanho de cada objeto\n"
+"págs.: Número de páginas com pelo menos um objeto ativo\n"
+
+#. type: Plain text
+#: ../man/vmstat.8:191
+msgid ""
+"B<vmstat> requires read access to files under I</proc>. The B<-m> requires "
+"read access to I</proc/slabinfo> which may not be available to standard "
+"users. Mount options for I</proc> such as I<subset=pid> may also impact "
+"what is visible."
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:199
+#, fuzzy
+#| msgid ""
+#| "B<free>(1), B<iostat>(1), B<mpstat>(1), B<ps>(1), B<sar>(1), B<top>(1)"
+msgid ""
+"B<free>(1), B<iostat>(1), B<mpstat>(1), B<ps>(1), B<sar>(1), B<top>(1), "
+"B<slabinfo>(5)"
+msgstr "B<free>(1), B<iostat>(1), B<mpstat>(1), B<ps>(1), B<sar>(1), B<top>(1)"
+
+#. type: TP
+#: ../man/w.1:14 ../man/ps.1:852
+#, no-wrap
+msgid "W"
+msgstr "W"
+
+#. type: TH
+#: ../man/w.1:14
+#, no-wrap
+msgid "2023-01-15"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:17
+msgid "w - Show who is logged on and what they are doing."
+msgstr "w - Mostra quem está conectado e o que está fazendo."
+
+#. type: Plain text
+#: ../man/w.1:20
+#, fuzzy
+#| msgid "B<w> [I<options>] I<user> [...]"
+msgid "B<w> [I<options>] [I<user>]"
+msgstr "B<w> [I<opções>] I<usuário> [...]"
+
+#. type: Plain text
+#: ../man/w.1:26
+msgid ""
+"B<w> displays information about the users currently on the machine, and "
+"their processes. The header shows, in this order, the current time, how "
+"long the system has been running, how many users are currently logged on, "
+"and the system load averages for the past 1, 5, and 15 minutes."
+msgstr ""
+"B<w> exibe informações sobre os usuários atualmente conectados à máquina e "
+"seus processos. O cabeçalho mostra, nesta ordem, o tempo atual, quanto tempo "
+"o sistema está ativo, quantos usuários estão conectados no momento e as "
+"médias de carga do sistema nos últimos 1, 5 e 15 minutos."
+
+#. type: Plain text
+#: ../man/w.1:30
+msgid ""
+"The following entries are displayed for each user: login name, the tty name, "
+"the remote host, login time, idle time, JCPU, PCPU, and the command line of "
+"their current process."
+msgstr ""
+"As seguintes entradas são exibidas para cada usuário: nome de login, nome do "
+"tty, host remoto, tempo de login, tempo ocioso, JCPU, PCPU e a linha de "
+"comando de seu processo atual."
+
+#. type: Plain text
+#: ../man/w.1:34
+msgid ""
+"The JCPU time is the time used by all processes attached to the tty. It "
+"does not include past background jobs, but does include currently running "
+"background jobs."
+msgstr ""
+"O tempo de JCPU é o tempo usado por todos os processos anexados ao tty. Não "
+"inclui trabalhos em segundo plano anteriores, mas inclui trabalhos em "
+"segundo plano atualmente em execução."
+
+#. type: Plain text
+#: ../man/w.1:37
+msgid ""
+"The PCPU time is the time used by the current process, named in the \"what\" "
+"field."
+msgstr ""
+"O tempo de PCPU é o tempo usado pelo processo atual, dado no campo \"o que\"."
+
+#. type: SH
+#: ../man/w.1:37
+#, no-wrap
+msgid "COMMAND-LINE OPTIONS"
+msgstr "OPÇÕES DE LINHA DE COMANDO"
+
+#. type: TP
+#: ../man/w.1:38
+#, no-wrap
+msgid "B<-h>, B<--no-header>"
+msgstr "B<-h>, B<--no-header>"
+
+#. type: Plain text
+#: ../man/w.1:41
+msgid "Don't print the header."
+msgstr "Não exibe o cabeçalho."
+
+#. type: TP
+#: ../man/w.1:41
+#, no-wrap
+msgid "B<-u>, B<--no-current>"
+msgstr "B<-u>, B<--no-current>"
+
+#. type: Plain text
+#: ../man/w.1:50
+msgid ""
+"Ignores the username while figuring out the current process and cpu times. "
+"To demonstrate this, do a B<su> and do a B<w> and a B<w -u>."
+msgstr ""
+"Ignora o nome de usuário enquanto calcula os tempos do processo atual e da "
+"CPU. Para demonstrar isso, faça um B<su> e faça um B<w> e um B<w -u>."
+
+#. type: TP
+#: ../man/w.1:50
+#, no-wrap
+msgid "B<-s>, B<--short>"
+msgstr "B<-s>, B<--short>"
+
+#. type: Plain text
+#: ../man/w.1:53
+msgid "Use the short format. Don't print the login time, JCPU or PCPU times."
+msgstr ""
+"Usa o formato curto. Não exibe o tempo de login e os tempos de JCPU ou PCPU."
+
+#. type: TP
+#: ../man/w.1:53
+#, no-wrap
+msgid "B<-f>, B<--from>"
+msgstr "B<-f>, B<--from>"
+
+#. type: Plain text
+#: ../man/w.1:63
+msgid ""
+"Toggle printing the B<from> (remote hostname) field. The default as "
+"released is for the B<from> field to not be printed, although your system "
+"administrator or distribution maintainer may have compiled a version in "
+"which the B<from> field is shown by default."
+msgstr ""
+"Ativa a exibição do campo B<de> (nome do host remoto). O padrão por design é "
+"para o campo B<de> não ser exibido, embora o administrador do sistema ou o "
+"mantenedor de distribuição possa ter compilado uma versão na qual o campo "
+"B<de> é mostrado por padrão."
+
+#. type: TP
+#: ../man/w.1:66
+#, no-wrap
+msgid "B<-i>, B<--ip-addr>"
+msgstr "B<-i>, B<--ip-addr>"
+
+#. type: Plain text
+#: ../man/w.1:69
+msgid "Display IP address instead of hostname for B<from> field."
+msgstr "Exibe o endereço IP em vez do nome de host para o campo B<de>."
+
+#. type: TP
+#: ../man/w.1:69
+#, fuzzy, no-wrap
+#| msgid "B<-p>, B<--precise>"
+msgid "B<-p>, B<--pids>"
+msgstr "B<-p>, B<--precise>"
+
+#. type: Plain text
+#: ../man/w.1:72
+msgid ""
+"Display pid of the login process/the \"what\" process in the \"what\" field."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:75
+#, no-wrap
+msgid "B<-o>, B<--old-style>"
+msgstr "B<-o>, B<--old-style>"
+
+#. type: Plain text
+#: ../man/w.1:78
+msgid ""
+"Old style output. Prints blank space for idle times less than one minute."
+msgstr ""
+"Saída no estilo antigo. Emite espaço em branco para tempos de ociosidade "
+"menores que um minuto."
+
+#. type: TP
+#: ../man/w.1:78
+#, no-wrap
+msgid "B<user >"
+msgstr "B<usuário >"
+
+#. type: Plain text
+#: ../man/w.1:81
+msgid "Show information about the specified user only."
+msgstr "Mostra informações sobre somente o usuários especificado."
+
+#. type: SH
+#: ../man/w.1:81 ../man/watch.1:133
+#, no-wrap
+msgid "ENVIRONMENT"
+msgstr "AMBIENTE"
+
+#. type: TP
+#: ../man/w.1:82
+#, no-wrap
+msgid "PROCPS_USERLEN"
+msgstr "PROCPS_USERLEN"
+
+#. type: Plain text
+#: ../man/w.1:85
+msgid "Override the default width of the username column. Defaults to 8."
+msgstr ""
+"Sobrescreve a largura padrão da coluna de nome de usuário. O padrão é 8."
+
+#. type: TP
+#: ../man/w.1:85
+#, no-wrap
+msgid "PROCPS_FROMLEN"
+msgstr "PROCPS_FROMLEN"
+
+#. type: Plain text
+#: ../man/w.1:88
+msgid "Override the default width of the from column. Defaults to 16."
+msgstr "Sobrescreve a largura padrão da coluna de \"de\". O padrão é 16."
+
+#. type: Plain text
+#: ../man/w.1:102
+msgid "B<free>(1), B<ps>(1), B<top>(1), B<uptime>(1), B<utmp>(5), B<who>(1)"
+msgstr "B<free>(1), B<ps>(1), B<top>(1), B<uptime>(1), B<utmp>(5), B<who>(1)"
+
+#. type: Plain text
+#: ../man/w.1:112
+msgid ""
+"B<w> was re-written almost entirely by Charles Blake, based on the version "
+"by E<.UR greenfie@\\:gauss.\\:rutgers.\\:edu> Larry Greenfield E<.UE> and E<."
+"UR johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE>"
+msgstr ""
+"B<w> foi reescrito quase que em sua totalidade por Charles Blake, baseado na "
+"versão por E<.UR greenfie@\\:gauss.\\:rutgers.\\:edu> Larry Greenfield E<."
+"UE> e E<.UR johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE>"
+
+#. type: TH
+#: ../man/watch.1:13
+#, no-wrap
+msgid "WATCH"
+msgstr "WATCH"
+
+#. type: TH
+#: ../man/watch.1:13
+#, no-wrap
+msgid "2023-01-17"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:16
+msgid "watch - execute a program periodically, showing output fullscreen"
+msgstr ""
+"watch - executa um programa periodicamente, mostrando saída em tela cheia"
+
+#. type: Plain text
+#: ../man/watch.1:19
+msgid "B<watch> [I<options>] I<command>"
+msgstr "B<watch> [I<opções>] I<comando>"
+
+#. type: Plain text
+#: ../man/watch.1:26
+msgid ""
+"B<watch> runs I<command> repeatedly, displaying its output and errors (the "
+"first screenfull). This allows you to watch the program output change over "
+"time. By default, I<command> is run every 2 seconds and B<watch> will run "
+"until interrupted."
+msgstr ""
+"B<watch> executa I<comando> repetidamente, exibindo a saída e os erros (o "
+"primeiro de tela inteira). Isso permite que você acompanhe a mudança da "
+"saída do programa ao longo do tempo. Por padrão, I<comando> é executado a "
+"cada 2 segundos e B<watch> será executado até ser interrompido."
+
+#. type: TP
+#: ../man/watch.1:27
+#, no-wrap
+msgid "B<-b>, B<--beep>"
+msgstr "B<-b>, B<--beep>"
+
+#. type: Plain text
+#: ../man/watch.1:30
+msgid "Beep if command has a non-zero exit."
+msgstr "Apita se o comando tem uma saída anormal, com código não zero."
+
+#. type: TP
+#: ../man/watch.1:30
+#, no-wrap
+msgid "B<-c>, B<--color>"
+msgstr "B<-c>, B<--color>"
+
+#. type: Plain text
+#: ../man/watch.1:33
+msgid "Interpret ANSI color and style sequences."
+msgstr "Interpreta cores ANSI e sequências de estilo."
+
+#. type: TP
+#: ../man/watch.1:33
+#, fuzzy, no-wrap
+#| msgid "B<-c>, B<--color>"
+msgid "B<-C>, B<--no-color>"
+msgstr "B<-c>, B<--color>"
+
+#. type: Plain text
+#: ../man/watch.1:36
+#, fuzzy
+#| msgid "Interpret ANSI color and style sequences."
+msgid "Do not interpret ANSI color and style sequences."
+msgstr "Interpreta cores ANSI e sequências de estilo."
+
+#. type: TP
+#: ../man/watch.1:36
+#, no-wrap
+msgid "B<-d>, B<--differences>[=I<permanent>]"
+msgstr "B<-d>, B<--differences>[=I<permanente>]"
+
+#. type: Plain text
+#: ../man/watch.1:42
+msgid ""
+"Highlight the differences between successive updates. If the optional "
+"I<permanent> argument is specified then B<watch> will show all changes since "
+"the first iteration."
+msgstr ""
+"Realça as diferenças entre as atualizações sucessivas. Se o argumento "
+"I<permanente> opcional for especificado, B<watch> vai mostrar todas as "
+"alterações desde a primeira iteração."
+
+#. type: TP
+#: ../man/watch.1:42
+#, no-wrap
+msgid "B<-e>, B<--errexit>"
+msgstr "B<-e>, B<--errexit>"
+
+#. type: Plain text
+#: ../man/watch.1:45
+msgid "Freeze updates on command error, and exit after a key press."
+msgstr ""
+"Congela atualizações quando houver um erro no comando, e sai após um tecla "
+"ser pressionada."
+
+#. type: TP
+#: ../man/watch.1:45
+#, no-wrap
+msgid "B<-g>, B<--chgexit>"
+msgstr "B<-g>, B<--chgexit>"
+
+#. type: Plain text
+#: ../man/watch.1:50
+msgid "Exit when the output of I<command> changes."
+msgstr "Sai quando a saída de I<comando> alterar."
+
+#. type: TP
+#: ../man/watch.1:50
+#, no-wrap
+msgid "B<-n>, B<--interval> I<seconds>"
+msgstr "B<-n>, B<--interval> I<segundos>"
+
+#. type: Plain text
+#: ../man/watch.1:56
+#, fuzzy
+#| msgid ""
+#| "Specify update interval. The command will not allow quicker than 0.1 "
+#| "second interval, in which the smaller values are converted. Both '.' and "
+#| "',' work for any locales. The WATCH_INTERVAL environment can be used to "
+#| "persistently set a non-default interval (following the same rules and "
+#| "formatting)."
+msgid ""
+"Specify update interval. The command will not allow quicker than 0.1 second "
+"interval, in which the smaller values are converted. Both '.' and ',' work "
+"for any locales. The B<WATCH_INTERVAL> environment can be used to "
+"persistently set a non-default interval (following the same rules and "
+"formatting)."
+msgstr ""
+"Especifica o intervalo de atualização. O comando não permitirá um intervalo "
+"mais rápido do que 0,1 segundo, no qual os valores menores são convertidos. "
+"Ambos \".\" e \",\" funcionam para qualquer localidades. O ambiente "
+"WATCH_INTERVAL pode ser usado para definir persistentemente um intervalo não "
+"padrão (seguindo as mesmas regras e formatação)."
+
+#. type: TP
+#: ../man/watch.1:56
+#, no-wrap
+msgid "B<-p>, B<--precise>"
+msgstr "B<-p>, B<--precise>"
+
+#. type: Plain text
+#: ../man/watch.1:69
+msgid ""
+"Make B<watch> attempt to run I<command> every B<--interval> I<seconds>. Try "
+"it with B<ntptime> (if present) and notice how the fractional seconds stays "
+"(nearly) the same, as opposed to normal mode where they continuously "
+"increase."
+msgstr ""
+"Faz o B<watch> tentar executar o I<comando> a cada B<--interval> "
+"I<segundos>. Experimente com B<ntptime> (se disponível) e perceba como os "
+"segundos fracionários permanecem (quase) os mesmos, em oposição ao modo "
+"normal onde aumentam continuamente."
+
+#. type: TP
+#: ../man/watch.1:69
+#, fuzzy, no-wrap
+#| msgid "B<-q>, B<--quiet>"
+msgid "B<-q>, B<--equexit> E<lt>cyclesE<gt>"
+msgstr "B<-q>, B<--quiet>"
+
+#. type: Plain text
+#: ../man/watch.1:74
+#, fuzzy
+#| msgid "Exit when the output of I<command> changes."
+msgid ""
+"Exit when output of I<command> does not change for the given number of "
+"cycles."
+msgstr "Sai quando a saída de I<comando> alterar."
+
+#. type: TP
+#: ../man/watch.1:74
+#, fuzzy, no-wrap
+#| msgid "B<-u>, B<--no-current>"
+msgid "B<-r>, B<--no-rerun>"
+msgstr "B<-u>, B<--no-current>"
+
+#. type: Plain text
+#: ../man/watch.1:78
+msgid ""
+"Do not run the program on terminal resize, the output of the program will re-"
+"appear at the next regular run time."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:78
+#, no-wrap
+msgid "B<-t>, B<--no-title>"
+msgstr "B<-t>, B<--no-title>"
+
+#. type: Plain text
+#: ../man/watch.1:82
+msgid ""
+"Turn off the header showing the interval, command, and current time at the "
+"top of the display, as well as the following blank line."
+msgstr ""
+"Desligue o cabeçalho mostrando o intervalo, comando e tempo atual na parte "
+"superior da tela, bem como a seguinte linha em branco."
+
+#. type: TP
+#: ../man/watch.1:82
+#, fuzzy, no-wrap
+#| msgid "B<-w>, B<--no-linewrap>"
+msgid "B<-w>, B<--no-wrap>"
+msgstr "B<-w>, B<--no-linewrap>"
+
+#. type: Plain text
+#: ../man/watch.1:85
+msgid ""
+"Turn off line wrapping. Long lines will be truncated instead of wrapped to "
+"the next line."
+msgstr ""
+"Desativa quebra de linha. Linhas longas serão truncadas em vez de quebradas "
+"para a próxima linha."
+
+#. type: TP
+#: ../man/watch.1:85
+#, no-wrap
+msgid "B<-x>, B<--exec>"
+msgstr "B<-x>, B<--exec>"
+
+#. type: Plain text
+#: ../man/watch.1:94
+msgid ""
+"Pass I<command> to B<exec>(2) instead of B<sh -c> which reduces the need to "
+"use extra quoting to get the desired effect."
+msgstr ""
+"Passa I<comando> para B<exec>(2) em vez de B<sh -c>, o que reduz a "
+"necessidade de usar aspas extras para obter o efeito desejado."
+
+#. type: TP
+#: ../man/watch.1:97
+#, no-wrap
+msgid "B<-v>, B<--version>"
+msgstr "B<-v>, B<--version>"
+
+#. type: Plain text
+#: ../man/watch.1:110
+msgid "Various failures."
+msgstr "Várias falhas."
+
+#. type: TP
+#: ../man/watch.1:110
+#, no-wrap
+msgid "B<2>"
+msgstr "B<2>"
+
+#. type: Plain text
+#: ../man/watch.1:113
+msgid "Forking the process to watch failed."
+msgstr "O fork do processo a ser assistido falhou."
+
+#. type: TP
+#: ../man/watch.1:113
+#, no-wrap
+msgid "B<3>"
+msgstr "B<3>"
+
+#. type: Plain text
+#: ../man/watch.1:116
+msgid "Replacing child process stdout with write side pipe failed."
+msgstr ""
+"Substituição da stdout (saída padrão) do processo filho com pipe lateral de "
+"escrita falhou."
+
+#. type: TP
+#: ../man/watch.1:116
+#, no-wrap
+msgid "B<4>"
+msgstr "B<4>"
+
+#. type: Plain text
+#: ../man/watch.1:119
+msgid "Command execution failed."
+msgstr "Execução do comando falhou."
+
+#. type: TP
+#: ../man/watch.1:119
+#, no-wrap
+msgid "B<5>"
+msgstr "B<5>"
+
+#. type: Plain text
+#: ../man/watch.1:122
+msgid "Closing child process write pipe failed."
+msgstr "Encerramento do pipe de escrita do processo filho falhou."
+
+#. type: TP
+#: ../man/watch.1:122
+#, no-wrap
+msgid "B<7>"
+msgstr "B<7>"
+
+#. type: Plain text
+#: ../man/watch.1:125
+msgid "IPC pipe creation failed."
+msgstr "Criação de pipe IPC falhou."
+
+#. type: TP
+#: ../man/watch.1:125
+#, no-wrap
+msgid "B<8>"
+msgstr "B<8>"
+
+#. type: Plain text
+#: ../man/watch.1:130
+msgid ""
+"Getting child process return value with B<waitpid>(2) failed, or command "
+"exited up on error."
+msgstr ""
+"Obtenção de valor de retorno de processo filho com B<waitpid>(2) falhou, ou "
+"o comando saiu com um erro."
+
+#. type: TP
+#: ../man/watch.1:130
+#, no-wrap
+msgid "B<other>"
+msgstr "B<outro>"
+
+#. type: Plain text
+#: ../man/watch.1:133
+msgid "The watch will propagate command exit status as child exit status."
+msgstr ""
+"O watch vai propagar o status de saída do comando como status de saída de "
+"filho."
+
+#. type: Plain text
+#: ../man/watch.1:137
+#, fuzzy
+#| msgid ""
+#| "The behaviour of B<watch> is affected by the following environment "
+#| "variables."
+msgid ""
+"The behavior of B<watch> is affected by the following environment variables."
+msgstr ""
+"O comportamento de B<watch> é afetado pelas seguintes variáveis de ambiente."
+
+#. type: TP
+#: ../man/watch.1:138
+#, no-wrap
+msgid "B<WATCH_INTERVAL>"
+msgstr "B<WATCH_INTERVAL>"
+
+#. type: Plain text
+#: ../man/watch.1:143
+msgid ""
+"Update interval, follows the same rules as the B<--interval> command line "
+"option."
+msgstr ""
+"Intervalo de atualização, segue as mesmas regras da opção de linha de "
+"comando B<--interval>."
+
+#. type: Plain text
+#: ../man/watch.1:151
+msgid ""
+"POSIX option processing is used (i.e., option processing stops at the first "
+"non-option argument). This means that flags after I<command> don't get "
+"interpreted by B<watch> itself."
+msgstr ""
+"O processamento de opções POSIX é usado, ou seja, o processamento de opções "
+"interrompe no primeiro argumento sem opção. Isso significa que as opções "
+"após I<comando> não são interpretadas pelo próprio B<watch>."
+
+#. type: Plain text
+#: ../man/watch.1:159
+#, fuzzy
+#| msgid ""
+#| "Upon terminal resize, the screen will not be correctly repainted until "
+#| "the next scheduled update. All B<--differences> highlighting is lost on "
+#| "that update as well."
+msgid ""
+"Upon terminal resize, the screen will not be correctly repainted until the "
+"next scheduled update. All B<--differences> highlighting is lost on that "
+"update as well. When using the B<--no-rerun> option, no output of will be "
+"visible."
+msgstr ""
+"Após o redimensionamento do terminal, a tela não será redesenhada "
+"corretamente até a próxima atualização agendada. Todos os realces de B<--"
+"differences> são perdidas nessa atualização também."
+
+#. type: Plain text
+#: ../man/watch.1:162
+msgid ""
+"Non-printing characters are stripped from program output. Use B<cat -v> as "
+"part of the command pipeline if you want to see them."
+msgstr ""
+"Caracteres não imprimíveis são removidos da saída do programa. Use B<cat -v> "
+"como parte do pipeline de comando se você quiser vê-los."
+
+#. type: Plain text
+#: ../man/watch.1:166
+msgid ""
+"Combining Characters that are supposed to display on the character at the "
+"last column on the screen may display one column early, or they may not "
+"display at all."
+msgstr ""
+"Caracteres de Combinação que devem ser exibidos no caractere na última "
+"coluna na tela podem ser exibidos uma coluna antes ou podem não ser exibidos."
+
+#. type: Plain text
+#: ../man/watch.1:170
+msgid ""
+"Combining Characters never count as different in B<--differences> mode. "
+"Only the base character counts."
+msgstr ""
+"Caracteres de Combinação nunca contam como diferente no modo I<--"
+"differences>. Apenas só caracteres base contam."
+
+#. type: Plain text
+#: ../man/watch.1:173
+msgid ""
+"Blank lines directly after a line which ends in the last column do not "
+"display."
+msgstr ""
+"As linhas em branco diretamente após uma linha que termina na última coluna "
+"não são exibidas."
+
+#. type: Plain text
+#: ../man/watch.1:190
+#, fuzzy
+#| msgid ""
+#| "B<--precise> mode doesn't yet have advanced temporal distortion "
+#| "technology to compensate for a I<command> that takes more than B<--"
+#| "interval> I<seconds> to execute. B<watch> also can get into a state "
+#| "where it rapid-fires as many executions of I<command> as it can to catch "
+#| "up from a previous executions running longer than B<--interval> (for "
+#| "example, B<netstat> taking ages on a DNS lookup)."
+msgid ""
+"B<--precise> mode doesn't yet have advanced temporal distortion technology "
+"to compensate for a I<command> that takes more than B<--interval> I<seconds> "
+"to execute. B<watch> also can get into a state where it rapid-fires as many "
+"executions of I<command> as it can to catch up from a previous executions "
+"running longer than B<--interval> (for example, B<netstat>(8) taking ages "
+"on a DNS lookup)."
+msgstr ""
+"O modo I<--precise> ainda não possui tecnologia de distorção temporal "
+"avançada para compensar um I<comando> que leva mais de B<--interval> "
+"I<segundos> para executar. B<watch> também pode entrar em um estado no qual "
+"ele dispara rapidamente tantas execuções do I<comando> quanto possível para "
+"recuperar as execuções anteriores que funcionam por mais tempo que B<--"
+"interval> (por exemplo, B<netstat> levando muito tempo em uma pesquisa de "
+"DNS)."
+
+#. type: Plain text
+#: ../man/watch.1:194
+msgid "To watch for mail, you might do"
+msgstr "Para monitorar por correio, você pode fazer"
+
+#. type: Plain text
+#: ../man/watch.1:196
+msgid "watch -n 60 from"
+msgstr "watch -n 60 from"
+
+#. type: Plain text
+#: ../man/watch.1:198
+msgid "To watch the contents of a directory change, you could use"
+msgstr "Para assistir o conteúdo de um diretório mudar, você pode usar"
+
+#. type: Plain text
+#: ../man/watch.1:200
+msgid "watch -d ls -l"
+msgstr "watch -d ls -l"
+
+#. type: Plain text
+#: ../man/watch.1:202
+msgid "If you're only interested in files owned by user joe, you might use"
+msgstr ""
+"Se você está interessado apenas em arquivos pertencentes ao usuário fulano, "
+"você pode usar"
+
+#. type: Plain text
+#: ../man/watch.1:204
+msgid "watch -d 'ls -l | fgrep joe'"
+msgstr "watch -d 'ls -l | fgrep fulano'"
+
+#. type: Plain text
+#: ../man/watch.1:206
+msgid "To see the effects of quoting, try these out"
+msgstr "Para ver os efeitos das aspas, tente esses aqui"
+
+#. type: Plain text
+#: ../man/watch.1:208
+msgid "watch echo $$"
+msgstr "watch echo $$"
+
+#. type: Plain text
+#: ../man/watch.1:210
+msgid "watch echo '$$'"
+msgstr "watch echo '$$'"
+
+#. type: Plain text
+#: ../man/watch.1:212
+msgid "watch echo \"'\"'$$'\"'\""
+msgstr "watch echo \"'\"'$$'\"'\""
+
+#. type: Plain text
+#: ../man/watch.1:216
+msgid "To see the effect of precision time keeping, try adding B<-p> to"
+msgstr ""
+"Para ver o efeito da manutenção da precisão do tempo, tente adicionar B<-p> a"
+
+#. type: Plain text
+#: ../man/watch.1:218
+msgid "watch -n 10 sleep 1"
+msgstr "watch -n 10 sleep 1"
+
+#. type: Plain text
+#: ../man/watch.1:220
+msgid "You can watch for your administrator to install the latest kernel with"
+msgstr ""
+"Você pode assistir seu administrador para instalar o kernel mais recente com"
+
+#. type: Plain text
+#: ../man/watch.1:222
+msgid "watch uname -r"
+msgstr "watch uname -r"
+
+#. type: Plain text
+#: ../man/watch.1:228
+msgid ""
+"(Note that B<-p> isn't guaranteed to work across reboots, especially in the "
+"face of B<ntpdate> (if present) or other bootup time-changing mechanisms)"
+msgstr ""
+"(Note que não há garantia de que B<-p> funcione entre reinicializações, "
+"especialmente em face de B<ntpdate> (se disponível) ou outros mecanismos de "
+"mudança de tempo quando da inicialização)"
+
+#. type: TH
+#: ../man/ps.1:13
+#, no-wrap
+msgid "PS"
+msgstr "PS"
+
+#. type: Plain text
+#: ../man/ps.1:29
+msgid "ps - report a snapshot of the current processes."
+msgstr "ps - relatar uma imagem dos processos atuais."
+
+#. type: Plain text
+#: ../man/ps.1:31
+msgid "B<ps> [\\,I<options\\/>]"
+msgstr "B<ps> [\\,I<opções\\/>]"
+
+#. type: Plain text
+#: ../man/ps.1:37
+msgid ""
+"B<ps> displays information about a selection of the active processes. If "
+"you want a repetitive update of the selection and the displayed information, "
+"use B<top> instead."
+msgstr ""
+"B<ps> exibe informações sobre uma seleção dos processos ativos. Se você "
+"quiser uma atualização repetitiva da seleção e das informações exibidas, use "
+"B<top>."
+
+#. type: Plain text
+#: ../man/ps.1:41
+msgid "This version of B<ps> accepts several kinds of options:"
+msgstr "Esta versão do B<ps> aceita vários tipos de opções:"
+
+#. type: Plain text
+#: ../man/ps.1:45
+msgid "UNIX options, which may be grouped and must be preceded by a dash."
+msgstr ""
+"Opções do UNIX, que podem ser agrupadas e devem ser precedidas por um "
+"travessão."
+
+#. type: Plain text
+#: ../man/ps.1:47
+msgid "BSD options, which may be grouped and must not be used with a dash."
+msgstr ""
+"Opções BSD, que podem ser agrupadas e não devem ser usadas com um traço."
+
+#. type: Plain text
+#: ../man/ps.1:49
+msgid "GNU long options, which are preceded by two dashes."
+msgstr "Opções longas do GNU, que são precedidas por dois traços."
+
+#. type: Plain text
+#: ../man/ps.1:58
+msgid ""
+"Options of different types may be freely mixed, but conflicts can appear. "
+"There are some synonymous options, which are functionally identical, due to "
+"the many standards and B<ps> implementations that this B<ps> is compatible "
+"with."
+msgstr ""
+"Opções de diferentes tipos podem ser misturadas livremente, mas podem surgir "
+"conflitos. Existem algumas opções sinônimas, que são funcionalmente "
+"idênticas, devido aos vários padrões e implementações B<ps> com as quais "
+"este B<ps> é compatível."
+
+#. type: Plain text
+#: ../man/ps.1:66
+msgid ""
+"By default, B<ps> selects all processes with the same effective user ID "
+"(euid=EUID) as the current user and associated with the same terminal as the "
+"invoker. It displays the process ID (pid=PID), the terminal associated with "
+"the process (tname=TTY), the cumulated CPU time in [DD-]hh:mm:ss format "
+"(time=TIME), and the executable name (ucmd=CMD). Output is unsorted by "
+"default."
+msgstr ""
+"Por padrão, B<ps> seleciona todos os processos com o mesmo ID de usuário "
+"efetivo (euid=EUID) como o usuário atual e associado ao mesmo terminal que o "
+"invocador. Ele exibe o ID do processo (pid=PID), o terminal associado ao "
+"processo (tname=TTY), o tempo de CPU acumulado no formato [DD-]hh:mm:ss "
+"(time=TIME) e o nome do executável (ucmd=CMD). A saída não está classificada "
+"por padrão."
+
+#. type: Plain text
+#: ../man/ps.1:79
+msgid ""
+"The use of BSD-style options will add process state (stat=STAT) to the "
+"default display and show the command args (args=COMMAND) instead of the "
+"executable name. You can override this with the B<PS_FORMAT> environment "
+"variable. The use of BSD-style options will also change the process "
+"selection to include processes on other terminals (TTYs) that are owned by "
+"you; alternately, this may be described as setting the selection to be the "
+"set of all processes filtered to exclude processes owned by other users or "
+"not on a terminal. These effects are not considered when options are "
+"described as being \"identical\" below, so B<-M> will be considered "
+"identical to B<Z> and so on."
+msgstr ""
+"O uso de opções no estilo BSD adicionará o estado do processo (stat=STAT) à "
+"exibição padrão e mostrará o comando args (args=COMMAND) em vez do nome do "
+"executável. Você pode substituir isso pela variável de ambiente "
+"B<PS_FORMAT>. O uso de opções de estilo BSD também mudará a seleção de "
+"processo para incluir processos em outros terminais (TTYs) que são de sua "
+"propriedade; alternativamente, isso pode ser descrito como definir a seleção "
+"para ser o conjunto de todos os processos filtrados para excluir processos "
+"pertencentes a outros usuários ou não em um terminal. Esses efeitos não são "
+"considerados quando as opções são descritas como \"idênticas\" abaixo, então "
+"B<-M> será considerado idêntico a B<Z> e assim por diante."
+
+#. type: Plain text
+#: ../man/ps.1:84
+msgid ""
+"Except as described below, process selection options are additive. The "
+"default selection is discarded, and then the selected processes are added to "
+"the set of processes to be displayed. A process will thus be shown if it "
+"meets any of the given selection criteria."
+msgstr ""
+"Exceto conforme descrito abaixo, as opções de seleção de processo são "
+"aditivas. A seleção padrão é descartada e, em seguida, os processos "
+"selecionados são adicionados ao conjunto de processos a serem exibidos. "
+"Assim, será mostrado um processo se atender a qualquer um dos critérios de "
+"seleção fornecidos."
+
+#. type: TP
+#: ../man/ps.1:85
+#, no-wrap
+msgid "To see every process on the system using standard syntax:"
+msgstr "Para ver cada processo no sistema usando a sintaxe padrão:"
+
+#. type: Plain text
+#: ../man/ps.1:88
+msgid "B<ps\\ -e>"
+msgstr "B<ps\\ -e>"
+
+#. type: Plain text
+#: ../man/ps.1:90
+msgid "B<ps\\ -ef>"
+msgstr "B<ps\\ -ef>"
+
+#. type: Plain text
+#: ../man/ps.1:92
+msgid "B<ps\\ -eF>"
+msgstr "B<ps\\ -eF>"
+
+#. type: Plain text
+#: ../man/ps.1:94
+msgid "B<ps\\ -ely>"
+msgstr "B<ps\\ -ely>"
+
+#. type: TP
+#: ../man/ps.1:94
+#, no-wrap
+msgid "To see every process on the system using BSD syntax:"
+msgstr "Para ver cada processo no sistema usando a sintaxe BSD:"
+
+#. type: Plain text
+#: ../man/ps.1:97
+msgid "B<ps\\ ax>"
+msgstr "B<ps\\ ax>"
+
+#. type: Plain text
+#: ../man/ps.1:99
+msgid "B<ps\\ axu>"
+msgstr "B<ps\\ axu>"
+
+#. type: TP
+#: ../man/ps.1:99
+#, no-wrap
+msgid "To print a process tree:"
+msgstr "Para imprimir uma árvore de processos:"
+
+#. type: Plain text
+#: ../man/ps.1:102
+msgid "B<ps\\ -ejH>"
+msgstr "B<ps\\ -ejH>"
+
+#. type: Plain text
+#: ../man/ps.1:104
+msgid "B<ps\\ axjf>"
+msgstr "B<ps\\ axjf>"
+
+#. type: TP
+#: ../man/ps.1:104
+#, no-wrap
+msgid "To get info about threads:"
+msgstr "Para obter informações sobre threads:"
+
+#. type: Plain text
+#: ../man/ps.1:107
+msgid "B<ps\\ -eLf>"
+msgstr "B<ps\\ -eLf>"
+
+#. type: Plain text
+#: ../man/ps.1:109
+msgid "B<ps\\ axms>"
+msgstr "B<ps\\ axms>"
+
+#. type: TP
+#: ../man/ps.1:109
+#, no-wrap
+msgid "To get security info:"
+msgstr "Para obter informações de segurança:"
+
+#. type: Plain text
+#: ../man/ps.1:112
+msgid "B<ps\\ -eo euser,ruser,suser,fuser,f,comm,label>"
+msgstr "B<ps\\ -eo euser,ruser,suser,fuser,f,comm,label>"
+
+#. type: Plain text
+#: ../man/ps.1:114
+msgid "B<ps\\ axZ>"
+msgstr "B<ps\\ axZ>"
+
+#. type: Plain text
+#: ../man/ps.1:116
+msgid "B<ps\\ -eM>"
+msgstr "B<ps\\ -eM>"
+
+#. type: TP
+#: ../man/ps.1:116
+#, no-wrap
+msgid "To see every process running as root (real\\ &\\ effective\\ ID) in user format:"
+msgstr "Para ver todos os processos em execução como root (ID\\ efetivo\\ &\\ real) no formato de usuário:"
+
+#. type: Plain text
+#: ../man/ps.1:119
+msgid "B<ps\\ -U\\ root\\ -u\\ root\\ u>"
+msgstr "B<ps\\ -U\\ root\\ -u\\ root\\ u>"
+
+#. type: TP
+#: ../man/ps.1:119
+#, no-wrap
+msgid "To see every process with a user-defined format:"
+msgstr "Para ver todos os processos com um formato definido pelo usuário:"
+
+#. type: Plain text
+#: ../man/ps.1:122
+msgid "B<ps\\ -eo\\ pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm>"
+msgstr "B<ps\\ -eo\\ pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm>"
+
+#. type: Plain text
+#: ../man/ps.1:124
+msgid "B<ps\\ axo\\ stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm>"
+msgstr "B<ps\\ axo\\ stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm>"
+
+#. type: Plain text
+#: ../man/ps.1:126
+msgid "B<ps\\ -Ao\\ pid,tt,user,fname,tmout,f,wchan>"
+msgstr "B<ps\\ -Ao\\ pid,tt,user,fname,tmout,f,wchan>"
+
+#. type: TP
+#: ../man/ps.1:126
+#, no-wrap
+msgid "Print only the process IDs of syslogd:"
+msgstr "Imprimir apenas os IDs de processo do syslogd:"
+
+#. type: Plain text
+#: ../man/ps.1:129
+msgid "B<ps\\ -C\\ syslogd\\ -o\\ pid=>"
+msgstr "B<ps\\ -C\\ syslogd\\ -o\\ pid=>"
+
+#. type: TP
+#: ../man/ps.1:129
+#, no-wrap
+msgid "Print only the name of PID 42:"
+msgstr "Imprimir apenas o nome do PID 42:"
+
+#. type: Plain text
+#: ../man/ps.1:132
+msgid "B<ps\\ -q\\ 42\\ -o\\ comm=>"
+msgstr "B<ps\\ -q\\ 42\\ -o\\ comm=>"
+
+#. type: SH
+#: ../man/ps.1:132
+#, no-wrap
+msgid "SIMPLE PROCESS SELECTION"
+msgstr "SELEÇÃO DE PROCESSO SIMPLES"
+
+#. type: TP
+#: ../man/ps.1:133
+#, no-wrap
+msgid "B<a>"
+msgstr "B<a>"
+
+#. type: Plain text
+#: ../man/ps.1:147
+msgid ""
+"Lift the BSD-style \"only yourself\" restriction, which is imposed upon the "
+"set of all processes when some BSD-style (without \"-\") options are used or "
+"when the B<ps> personality setting is BSD-like. The set of processes "
+"selected in this manner is in addition to the set of processes selected by "
+"other means. An alternate description is that this option causes B<ps> to "
+"list all processes with a terminal (tty), or to list all processes when used "
+"together with the B<x> option."
+msgstr ""
+"Elimina a restrição do estilo BSD \"somente você\", que é imposta ao "
+"conjunto de todos os processos quando algumas opções do estilo BSD (sem \"-"
+"\") são usadas ou quando a configuração de personalidade B<ps> é semelhante "
+"ao BSD. O conjunto de processos selecionados desta forma é adicionado ao "
+"conjunto de processos selecionados por outros meios. Uma descrição "
+"alternativa é que esta opção faz com que B<ps> liste todos os processos com "
+"um terminal (tty) ou liste todos os processos quando usado junto com a opção "
+"B<x>."
+
+#. type: Plain text
+#: ../man/ps.1:151
+msgid "Select all processes. Identical to B<-e>."
+msgstr "Seleciona todos os processos. Idêntico a B<-e>."
+
+#. type: TP
+#: ../man/ps.1:151
+#, no-wrap
+msgid "B<-a>"
+msgstr "B<-a>"
+
+#. type: Plain text
+#: ../man/ps.1:156
+msgid ""
+"Select all processes except both session leaders (see I<getsid>(2)) and "
+"processes not associated with a terminal."
+msgstr ""
+"Seleciona todos os processos, exceto os inícios de sessão (veja "
+"I<getsid>(2)) e os processos não associados a um terminal."
+
+#. type: Plain text
+#: ../man/ps.1:159
+msgid "Select all processes except session leaders."
+msgstr "Seleciona todos os processos, exceto os inícios de sessão."
+
+#. type: TP
+#: ../man/ps.1:159
+#, no-wrap
+msgid "B<--deselect>"
+msgstr "B<--deselect>"
+
+#. type: Plain text
+#: ../man/ps.1:164
+msgid ""
+"Select all processes except those that fulfill the specified conditions "
+"(negates the selection). Identical to B<-N>."
+msgstr ""
+"Seleciona todos os processos, exceto aqueles que atendem às condições "
+"especificadas (nega a seleção). Idêntico a B<-N>."
+
+#. type: TP
+#: ../man/ps.1:164
+#, no-wrap
+msgid "B<-e>"
+msgstr "B<-e>"
+
+#. Current "g" behavior: add in the session leaders, which would
+#. be excluded in the sunos4 personality. Supposed "g" behavior:
+#. add in the group leaders -- at least according to the SunOS 4
+#. man page on the FreeBSD site. Uh oh. I think I had tested SunOS
+#. though, so maybe the code is correct.
+#. type: Plain text
+#: ../man/ps.1:173
+msgid "Select all processes. Identical to B<-A>."
+msgstr "Seleciona todos os processos. Idêntico a B<-A>."
+
+#. type: TP
+#: ../man/ps.1:173
+#, no-wrap
+msgid "B<g>"
+msgstr "B<g>"
+
+#. type: Plain text
+#: ../man/ps.1:179
+msgid ""
+"Really all, even session leaders. This flag is obsolete and may be "
+"discontinued in a future release. It is normally implied by the B<a> flag, "
+"and is only useful when operating in the sunos4 personality."
+msgstr ""
+"Realmente todos, até mesmo inícios de sessão. Este sinalizador está obsoleto "
+"e pode ser descontinuado em uma versão futura. Normalmente está implícito no "
+"sinalizador B<a> e só é útil ao operar na personalidade sunos4."
+
+#. type: TP
+#: ../man/ps.1:179
+#, no-wrap
+msgid "B<-N>"
+msgstr "B<-N>"
+
+#. type: Plain text
+#: ../man/ps.1:184
+msgid ""
+"Select all processes except those that fulfill the specified conditions "
+"(negates the selection). Identical to B<--deselect>."
+msgstr ""
+"Seleciona todos os processos, exceto aqueles que atendem às condições "
+"especificadas (nega a seleção). Idêntico a B<--deselect>."
+
+#. type: TP
+#: ../man/ps.1:184
+#, no-wrap
+msgid "B<T>"
+msgstr "B<T>"
+
+#. type: Plain text
+#: ../man/ps.1:189
+msgid ""
+"Select all processes associated with this terminal. Identical to the B<t> "
+"option without any argument."
+msgstr ""
+"Seleciona todos os processos associados a este terminal. Idêntico à opção "
+"B<t> sem nenhum argumento."
+
+#. type: TP
+#: ../man/ps.1:189
+#, no-wrap
+msgid "B<r>"
+msgstr "B<r>"
+
+#. type: Plain text
+#: ../man/ps.1:192
+msgid "Restrict the selection to only running processes."
+msgstr "Restringe a seleção apenas a processos em execução."
+
+#. type: TP
+#: ../man/ps.1:192
+#, no-wrap
+msgid "B<x>"
+msgstr "B<x>"
+
+#. type: Plain text
+#: ../man/ps.1:207
+msgid ""
+"Lift the BSD-style \"must have a tty\" restriction, which is imposed upon "
+"the set of all processes when some BSD-style (without \"-\") options are "
+"used or when the B<ps> personality setting is BSD-like. The set of "
+"processes selected in this manner is in addition to the set of processes "
+"selected by other means. An alternate description is that this option "
+"causes B<ps> to list all processes owned by you (same EUID as B<ps>), or to "
+"list all processes when used together with the B<a> option."
+msgstr ""
+"Elimina a restrição \"deve ter um tty\" no estilo BSD, que é imposta ao "
+"conjunto de todos os processos quando algumas opções do estilo BSD (sem \"-"
+"\") são usadas ou quando a configuração de personalidade do B<ps> é "
+"semelhante a BSD. O conjunto de processos selecionados desta forma é "
+"adicionado ao conjunto de processos selecionados por outros meios. Uma "
+"descrição alternativa é que esta opção faz com que B<ps> liste todos os "
+"processos pertencentes a você (mesmo EUID que B<ps>) ou liste todos os "
+"processos quando usados junto com a opção B<a>."
+
+#. type: SH
+#: ../man/ps.1:208
+#, no-wrap
+msgid "PROCESS SELECTION BY LIST"
+msgstr "SELEÇÃO DE PROCESSO POR LISTA"
+
+#. type: Plain text
+#: ../man/ps.1:212
+msgid ""
+"These options accept a single argument in the form of a blank-separated or "
+"comma-separated list. They can be used multiple times. For example: B<ps\\ "
+"-p\\ \"1\\ 2\"\\ -p\\ 3,4>"
+msgstr ""
+"Essas opções aceitam um único argumento na forma de uma lista separada por "
+"espaços em branco ou por vírgulas. Eles podem ser usados várias vezes. Por "
+"exemplo: B<ps\\ -p\\ \"1\\ 2\"\\ -p\\ 3,4>"
+
+#. type: TP
+#: ../man/ps.1:212
+#, no-wrap
+msgid "I<123>"
+msgstr "I<123>"
+
+#. type: Plain text
+#: ../man/ps.1:216
+msgid "Identical to B<--pid\\ >I<123>."
+msgstr "Idêntico a B<--pid\\ >I<123>."
+
+#. type: TP
+#: ../man/ps.1:216
+#, fuzzy, no-wrap
+#| msgid "I<123>"
+msgid "\\+I<123>"
+msgstr "I<123>"
+
+#. type: Plain text
+#: ../man/ps.1:220
+#, fuzzy
+#| msgid "Identical to B<--pid\\ >I<123>."
+msgid "Identical to B<--sid\\ >I<123>."
+msgstr "Idêntico a B<--pid\\ >I<123>."
+
+#. type: TP
+#: ../man/ps.1:220
+#, no-wrap
+msgid "-I<123>"
+msgstr "-I<123>"
+
+#. type: Plain text
+#: ../man/ps.1:223
+msgid "Select by process group ID (PGID)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:223
+#, no-wrap
+msgid "B<-C>I<\\ cmdlist>"
+msgstr "B<-C>I<\\ cmdlist>"
+
+#. type: Plain text
+#: ../man/ps.1:232
+msgid ""
+"Select by command name. This selects the processes whose executable name is "
+"given in I<cmdlist>. NOTE: The command name is not the same as the command "
+"line. Previous versions of procps and the kernel truncated this command name "
+"to 15 characters. This limitation is no longer present in both. If you "
+"depended on matching only 15 characters, you may no longer get a match."
+msgstr ""
+"Seleciona pelo nome do comando. Isso seleciona os processos cujo nome "
+"executável é fornecido em I<grplist>. NOTA: O nome do comando não é igual à "
+"linha de comando. As versões anteriores do procps e do kernel truncaram este "
+"nome de comando para 15 caracteres. Essa limitação não está mais presente em "
+"ambos. Se você dependia da correspondência de apenas 15 caracteres, não será "
+"mais possível obter uma correspondência."
+
+#. type: TP
+#: ../man/ps.1:232
+#, no-wrap
+msgid "B<-G>I<\\ grplist>"
+msgstr "B<-G>I<\\ grplist>"
+
+#. type: Plain text
+#: ../man/ps.1:240
+msgid ""
+"Select by real group ID (RGID) or name. This selects the processes whose "
+"real group name or ID is in the I<grplist> list. The real group ID "
+"identifies the group of the user who created the process, see I<getgid>(2)."
+msgstr ""
+"Seleciona por ID de grupo real (RGID) ou nome. Isso seleciona os processos "
+"cujo ID ou nome de grupo real está na lista I<grplist>. O ID do grupo real "
+"identifica o grupo do usuário que criou o processo; veja I<getgid>(2)."
+
+#. type: TP
+#: ../man/ps.1:240
+#, no-wrap
+msgid "B<-g>I<\\ grplist>"
+msgstr "B<-g>I<\\ grplist>"
+
+#. type: Plain text
+#: ../man/ps.1:253
+msgid ""
+"Select by session OR by effective group name. Selection by session is "
+"specified by many standards, but selection by effective group is the logical "
+"behavior that several other operating systems use. This B<ps> will select "
+"by session when the list is completely numeric (as sessions are). Group ID "
+"numbers will work only when some group names are also specified. See the B<-"
+"s> and B<--group> options."
+msgstr ""
+"Seleciona por sessão OU por nome de grupo efetivo. A seleção por sessão é "
+"especificada por muitos padrões, mas a seleção por grupo efetivo é o "
+"comportamento lógico que vários outros sistemas operacionais usam. Este "
+"B<ps> selecionará por sessão quando a lista for completamente numérica (como "
+"as sessões são). Os números de ID de grupo funcionarão apenas quando alguns "
+"nomes de grupo também forem especificados. Veja as opções B<-s> e B<--group>."
+
+#. type: TP
+#: ../man/ps.1:253
+#, no-wrap
+msgid "B<--Group>I<\\ grplist>"
+msgstr "B<--Group>I<\\ grplist>"
+
+#. type: Plain text
+#: ../man/ps.1:257
+msgid "Select by real group ID (RGID) or name. Identical to B<-G>."
+msgstr "Seleciona por ID de grupo real (RGID) ou nome. Idêntico a B<-G>."
+
+#. type: TP
+#: ../man/ps.1:257
+#, no-wrap
+msgid "B<--group>I<\\ grplist>"
+msgstr "B<--group>I<\\ grplist>"
+
+#. type: Plain text
+#: ../man/ps.1:269
+msgid ""
+"Select by effective group ID (EGID) or name. This selects the processes "
+"whose effective group name or ID is in I<grplist>. The effective group ID "
+"describes the group whose file access permissions are used by the process "
+"(see I<getegid>(2)). The B<-g> option is often an alternative to B<--group>."
+msgstr ""
+"Seleciona por nome ou ID de grupo efetivo (EGID). Isso seleciona os "
+"processos cujo nome de grupo ou ID efetivo está em I<grplist>. O ID de grupo "
+"efetivo descreve o grupo cujas permissões de acesso a arquivo são usadas "
+"pelo processo (veja I<getegid>(2)). A opção B<-g> é muitas vezes uma "
+"alternativa para B<--group>."
+
+#. type: TP
+#: ../man/ps.1:269
+#, no-wrap
+msgid "B<p>I<\\ pidlist>"
+msgstr "B<p>I<\\ pidlist>"
+
+#. type: Plain text
+#: ../man/ps.1:275
+msgid "Select by process ID. Identical to B<-p> and B<--pid>."
+msgstr "Seleciona por ID de processo. Idêntico a B<-p> e a B<--pid>."
+
+#. type: TP
+#: ../man/ps.1:275
+#, no-wrap
+msgid "B<-p>I<\\ pidlist>"
+msgstr "B<-p>I<\\ pidlist>"
+
+#. type: Plain text
+#: ../man/ps.1:283
+msgid ""
+"Select by PID. This selects the processes whose process ID numbers appear "
+"in I<pidlist>. Identical to B<p> and B<--pid>."
+msgstr ""
+"Seleciona por PID. Isso seleciona os processos cujos números de "
+"identificação de processo aparecem em I<pidlist>. Idêntico a B<p> e a B<--"
+"pid>."
+
+#. type: TP
+#: ../man/ps.1:283
+#, no-wrap
+msgid "B<--pid>I<\\ pidlist>"
+msgstr "B<--pid>I<\\ pidlist>"
+
+#. type: Plain text
+#: ../man/ps.1:289
+msgid "Select by process\\ ID. Identical to B<-p> and B<p>."
+msgstr "Seleciona por ID de processo. Idêntico a B<-p> e a B<p>."
+
+#. type: TP
+#: ../man/ps.1:289
+#, no-wrap
+msgid "B<--ppid>I<\\ pidlist>"
+msgstr "B<--ppid>I<\\ pidlist>"
+
+#. type: Plain text
+#: ../man/ps.1:296
+msgid ""
+"Select by parent process ID. This selects the processes with a parent "
+"process\\ ID in I<pidlist>. That is, it selects processes that are children "
+"of those listed in I<pidlist>."
+msgstr ""
+"Seleciona pelo ID do processo pai. Isso seleciona os processos com um ID de "
+"processo pai em I<pidlist>. Ou seja, ele seleciona processos que são filhos "
+"daqueles listados em I<pidlist>."
+
+#. type: TP
+#: ../man/ps.1:296
+#, no-wrap
+msgid "B<q>I<\\ pidlist>"
+msgstr "B<q>I<\\ pidlist>"
+
+#. type: Plain text
+#: ../man/ps.1:302
+msgid ""
+"Select by process ID (quick mode). Identical to B<-q> and B<--quick-pid>."
+msgstr ""
+"Seleciona por ID de processo (modo rápido). Idêntico a B<-q> e a B<--quick-"
+"pid>."
+
+#. type: TP
+#: ../man/ps.1:302
+#, no-wrap
+msgid "B<-q>I<\\ pidlist>"
+msgstr "B<-q>I<\\ pidlist>"
+
+#. type: Plain text
+#: ../man/ps.1:316
+#, fuzzy
+#| msgid ""
+#| "Select by PID (quick mode). This selects the processes whose process ID "
+#| "numbers appear in I<pidlist>. With this option B<ps> reads the necessary "
+#| "info only for the pids listed in the I<pidlist> and doesn't apply "
+#| "additional filtering rules. The order of pids is unsorted and "
+#| "preserved. No additional selection options, sorting and forest type "
+#| "listings are allowed in this mode. Identical to B<q> and B<--quick-pid>."
+msgid ""
+"Select by PID (quick mode). This selects the processes whose process ID "
+"numbers appear in I<pidlist>. With this option B<ps> reads the necessary "
+"info only for the pids listed in the I<pidlist> and doesn't apply additional "
+"filtering rules. The order of pids is unsorted and preserved. No additional "
+"selection options, sorting and forest type listings are allowed in this "
+"mode. Identical to B<q> and B<--quick-pid>."
+msgstr ""
+"Seleciona por PID (modo rápido). Isso seleciona os processos cujos números "
+"de identificação de processo aparecem em I<pidlist>. Com esta opção, B<ps> "
+"lê as informações necessárias apenas para os pids listados na I<pidlist> e "
+"não aplica regras de filtragem adicionais. A ordem dos pids não é "
+"classificada e preservada. Nenhuma opção de seleção adicional, classificação "
+"e listagens de tipo de floresta são permitidas neste modo. Idêntico a B<q> e "
+"a B<--quick-pid>."
+
+#. type: TP
+#: ../man/ps.1:316
+#, no-wrap
+msgid "B<--quick-pid>I<\\ pidlist>"
+msgstr "B<--quick-pid>I<\\ pidlist>"
+
+#. type: Plain text
+#: ../man/ps.1:322
+msgid "Select by process\\ ID (quick mode). Identical to B<-q> and B<q>."
+msgstr "Seleciona por ID de processo (modo rápido). Idêntico a B<-q> e a B<q>."
+
+#. type: TP
+#: ../man/ps.1:322
+#, no-wrap
+msgid "B<-s>I<\\ sesslist>"
+msgstr "B<-s>I<\\ sesslist>"
+
+#. type: Plain text
+#: ../man/ps.1:327
+msgid ""
+"Select by session ID. This selects the processes with a session ID "
+"specified in I<sesslist>."
+msgstr ""
+"Seleciona por ID de sessão. Isso seleciona os processos com um ID de sessão "
+"especificado em I<sesslist>."
+
+#. type: TP
+#: ../man/ps.1:327
+#, no-wrap
+msgid "B<--sid>I<\\ sesslist>"
+msgstr "B<--sid>I<\\ sesslist>"
+
+#. type: Plain text
+#: ../man/ps.1:331
+msgid "Select by session\\ ID. Identical to B<-s>."
+msgstr "Seleciona por ID de sessão. Idêntico a B<-s>."
+
+#. type: TP
+#: ../man/ps.1:331
+#, no-wrap
+msgid "B<t>I<\\ ttylist>"
+msgstr "B<t>I<\\ ttylist>"
+
+#. type: Plain text
+#: ../man/ps.1:348
+msgid ""
+"Select by tty. Nearly identical to B<-t> and B<--tty>, but can also be used "
+"with an empty I<ttylist> to indicate the terminal associated with B<ps>. "
+"Using the B<T> option is considered cleaner than using B<t> with an empty "
+"I<ttylist>."
+msgstr ""
+"Seleciona por tty. Quase idêntico a B<-t> e a B<--tty>, mas também pode ser "
+"usado com um I<ttylist> vazio para indicar o terminal associado a B<ps>. "
+"Usar a opção B<T> é considerado mais limpo do que usar B<t> com um "
+"I<ttylist> vazia."
+
+#. type: TP
+#: ../man/ps.1:348
+#, no-wrap
+msgid "B<-t>I<\\ ttylist>"
+msgstr "B<-t>I<\\ ttylist>"
+
+#. type: Plain text
+#: ../man/ps.1:356
+msgid ""
+"Select by tty. This selects the processes associated with the terminals "
+"given in I<ttylist>. Terminals (ttys, or screens for text output) can be "
+"specified in several forms: /dev/ttyS1, ttyS1, S1. A plain \"-\" may be "
+"used to select processes not attached to any terminal."
+msgstr ""
+"Seleciona por tty. Isso seleciona os processos associados aos terminais "
+"fornecidos em I<ttylist>. Os terminais (ttys ou telas para saída de texto) "
+"podem ser especificados de várias formas: /dev/ttyS1, ttyS1, S1. Um simples "
+"\"-\" pode ser usado para selecionar processos não anexados a nenhum "
+"terminal."
+
+#. type: TP
+#: ../man/ps.1:356
+#, no-wrap
+msgid "B<--tty>I<\\ ttylist>"
+msgstr "B<--tty>I<\\ ttylist>"
+
+#. type: Plain text
+#: ../man/ps.1:362
+msgid "Select by terminal. Identical to B<-t> and B<t>."
+msgstr "Seleciona por terminal. Idêntico a B<-t> e a B<t>."
+
+#. type: TP
+#: ../man/ps.1:362
+#, no-wrap
+msgid "B<U>I<\\ userlist>"
+msgstr "B<U>I<\\ userlist>"
+
+#. type: Plain text
+#: ../man/ps.1:374
+msgid ""
+"Select by effective user ID (EUID) or name. This selects the processes "
+"whose effective user name or ID is in I<userlist>. The effective user ID "
+"describes the user whose file access permissions are used by the process "
+"(see I<geteuid>(2)). Identical to B<-u> and B<--user>."
+msgstr ""
+"Seleciona por nome ou ID de usuário efetivo (EUID). Isso seleciona os "
+"processos cujo nome de usuário ou ID efetivo está em I<userlist>. O ID de "
+"usuário efetivo descreve o usuário cujas permissões de acesso ao arquivo são "
+"usadas pelo processo (veja I<geteuid>(2)). Idêntico a B<-u> e B<--user>."
+
+#. type: TP
+#: ../man/ps.1:374
+#, no-wrap
+msgid "B<-U>I<\\ userlist>"
+msgstr "B<-U>I<\\ userlist>"
+
+#. type: Plain text
+#: ../man/ps.1:381
+msgid ""
+"Select by real user ID (RUID) or name. It selects the processes whose real "
+"user name or ID is in the I<userlist> list. The real user ID identifies the "
+"user who created the process, see I<getuid>(2)."
+msgstr ""
+"Seleciona por nome ou ID de usuário real (RUID). Ele seleciona os processos "
+"cujo nome de usuário ou ID real está na lista I<userlist>. O ID do usuário "
+"real identifica o usuário que criou o processo, consulte I<getuid>(2)."
+
+#. type: TP
+#: ../man/ps.1:381
+#, no-wrap
+msgid "B<-u>I<\\ userlist>"
+msgstr "B<-u>I<\\ userlist>"
+
+#. type: Plain text
+#: ../man/ps.1:386
+msgid ""
+"Select by effective user ID (EUID) or name. This selects the processes "
+"whose effective user name or ID is in I<userlist>."
+msgstr ""
+"Seleciona por nome ou ID de usuário efetivo (EUID). Isso seleciona os "
+"processos cujo nome de usuário ou ID efetivo está em I<userlist>."
+
+#. type: Plain text
+#: ../man/ps.1:394
+msgid ""
+"The effective user ID describes the user whose file access permissions are "
+"used by the process (see I<geteuid>(2)). Identical to B<U> and B<--user>."
+msgstr ""
+"O ID de usuário efetivo descreve o usuário cujas permissões de acesso ao "
+"arquivo são usadas pelo processo (consulte I<geteuid>(2)). Idêntico a B<U> e "
+"a B<--user>."
+
+#. type: TP
+#: ../man/ps.1:394
+#, no-wrap
+msgid "B<--User>I<\\ userlist>"
+msgstr "B<--User>I<\\ userlist>"
+
+#. type: Plain text
+#: ../man/ps.1:398
+msgid "Select by real user ID (RUID) or name. Identical to B<-U>."
+msgstr "Seleciona por ID de usuário real (RUID) ou nome. Idêntico a B<-U>."
+
+#. type: TP
+#: ../man/ps.1:398
+#, no-wrap
+msgid "B<--user>I<\\ userlist>"
+msgstr "B<--user>I<\\ userlist>"
+
+#. type: Plain text
+#: ../man/ps.1:404
+msgid ""
+"Select by effective user ID (EUID) or name. Identical to B<-u> and B<U>."
+msgstr ""
+"Selecione por nome ou ID de usuário efetivo (EUID). Idêntico a B<-u> e a "
+"B<U>."
+
+#. type: SH
+#: ../man/ps.1:405
+#, no-wrap
+msgid "OUTPUT FORMAT CONTROL"
+msgstr "CONTROLE DO FORMATO DE SAÃDA"
+
+#. type: Plain text
+#: ../man/ps.1:409
+msgid ""
+"These options are used to choose the information displayed by B<ps>. The "
+"output may differ by personality."
+msgstr ""
+"Essas opções são usadas para escolher as informações exibidas por B<ps>. A "
+"saída pode variar de acordo com a personalidade."
+
+#. type: Plain text
+#: ../man/ps.1:414
+msgid "Show different scheduler information for the B<-l> option."
+msgstr "Mostra diferentes informações do planejador para a opção B<-l>."
+
+#. type: TP
+#: ../man/ps.1:414
+#, no-wrap
+msgid "B<--context>"
+msgstr "B<--context>"
+
+#. type: Plain text
+#: ../man/ps.1:417
+msgid "Display security context format (for SELinux)."
+msgstr "Exibe formato de contexto de segurança (para SELinux)."
+
+#. type: Plain text
+#: ../man/ps.1:430
+msgid ""
+"Do full-format listing. This option can be combined with many other UNIX-"
+"style options to add additional columns. It also causes the command "
+"arguments to be printed. When used with B<-L>, the NLWP (number of threads) "
+"and LWP (thread ID) columns will be added. See the B<c> option, the format "
+"keyword B<args>, and the format keyword B<comm>."
+msgstr ""
+"Faça uma listagem de formato completo. Esta opção pode ser combinada com "
+"muitas outras opções de estilo UNIX para adicionar colunas adicionais. "
+"Também faz com que os argumentos do comando sejam impressos. Quando usado "
+"com B<-L>, as colunas NLWP (número de threads) e LWP (ID do thread) serão "
+"adicionadas. Consulte a opção B<c>, a palavra-chave de formato B<args> e a "
+"palavra-chave de formato B<comm>."
+
+#. type: TP
+#: ../man/ps.1:430
+#, no-wrap
+msgid "B<-F>"
+msgstr "B<-F>"
+
+#. type: Plain text
+#: ../man/ps.1:437
+msgid "Extra full format. See the B<-f> option, which B<-F> implies."
+msgstr "Formato completo extra. Veja a opção B<-f>, que B<-F> implica."
+
+#. type: TP
+#: ../man/ps.1:437
+#, no-wrap
+msgid "B<--format>I<\\ format>"
+msgstr "B<--format>I<\\ formato>"
+
+#. type: Plain text
+#: ../man/ps.1:443
+msgid "user-defined format. Identical to B<-o> and B<o>."
+msgstr "Formato definido pelo usuário. Idêntico a B<-o> e a B<o>."
+
+#. type: TP
+#: ../man/ps.1:443
+#, no-wrap
+msgid "B<j>"
+msgstr "B<j>"
+
+#. type: Plain text
+#: ../man/ps.1:446
+msgid "BSD job control format."
+msgstr "Formato de controle de trabalho BSD."
+
+#. type: TP
+#: ../man/ps.1:446
+#, no-wrap
+msgid "B<-j>"
+msgstr "B<-j>"
+
+#. type: Plain text
+#: ../man/ps.1:449
+msgid "Jobs format."
+msgstr "Formato de trabalhos."
+
+#. type: TP
+#: ../man/ps.1:449
+#, no-wrap
+msgid "B<l>"
+msgstr "B<l>"
+
+#. type: Plain text
+#: ../man/ps.1:452
+msgid "Display BSD long format."
+msgstr "Exibe formato longo BSD."
+
+#. type: TP
+#: ../man/ps.1:452
+#, no-wrap
+msgid "B<-l>"
+msgstr "B<-l>"
+
+#. type: Plain text
+#: ../man/ps.1:457
+msgid "Long format. The B<-y> option is often useful with this."
+msgstr "Formato longo. A opção B<-y> geralmente é útil com isso."
+
+#. type: TP
+#: ../man/ps.1:457
+#, no-wrap
+msgid "B<-M>"
+msgstr "B<-M>"
+
+#. type: Plain text
+#: ../man/ps.1:462
+msgid "Add a column of security data. Identical to B<Z> (for SELinux)."
+msgstr ""
+"Adiciona uma coluna de dados de segurança. Idêntico a B<Z> (para SELinux)."
+
+#. type: TP
+#: ../man/ps.1:462
+#, no-wrap
+msgid "B<O>I<\\ format>"
+msgstr "B<O>I<\\ formato>"
+
+#. type: Plain text
+#: ../man/ps.1:480
+msgid ""
+"is preloaded B<o> (overloaded). The BSD B<O> option can act like B<-O> "
+"(user-defined output format with some common fields predefined) or can be "
+"used to specify sort order. Heuristics are used to determine the behavior "
+"of this option. To ensure that the desired behavior is obtained (sorting or "
+"formatting), specify the option in some other way (e.g. with B<-O> or B<--"
+"sort>). When used as a formatting option, it is identical to B<-O>, with "
+"the BSD personality."
+msgstr ""
+"É um B<o> pré-carregado (sobrecarregado). A opção BSD B<O> pode agir como B<-"
+"O> (formato de saída definido pelo usuário com alguns campos comuns "
+"predefinidos) ou pode ser usada para especificar a ordem de classificação. "
+"As heurísticas são usadas para determinar o comportamento desta opção. Para "
+"garantir que o comportamento desejado seja obtido (classificação ou "
+"formatação), especifique a opção de alguma outra forma (por exemplo, com B<-"
+"O> ou B<--sort>). Quando usado como uma opção de formatação, é idêntico a B<-"
+"O>, com a personalidade BSD."
+
+#. type: TP
+#: ../man/ps.1:480
+#, no-wrap
+msgid "B<-O>I<\\ format>"
+msgstr "B<-O>I<\\ formato>"
+
+#. type: Plain text
+#: ../man/ps.1:491
+msgid ""
+"Like B<-o>, but preloaded with some default columns. Identical to B<-o\\ "
+"pid,\\:>I<format>B<,\\:state,\\:tname,\\:time,\\:command> or B<-o\\ pid,\\:"
+">I<format>B<,\\:tname,\\:time,\\:cmd>, see B<-o> below."
+msgstr ""
+"Como B<-o>, mas pré-carregado com algumas colunas padrão. Idêntico a B<-o\\ "
+"pid,\\:>I<formato>B<,\\:state,\\:tname,\\:time,\\:command> ou B<-o\\ pid,\\:"
+">I<formato>B<,\\:tname,\\:time,\\:cmd>, veja B<-o> abaixo."
+
+#. type: TP
+#: ../man/ps.1:491
+#, no-wrap
+msgid "B<o>I<\\ format>"
+msgstr "B<o>I<\\ formato>"
+
+#. type: Plain text
+#: ../man/ps.1:497
+msgid "Specify user-defined format. Identical to B<-o> and B<--format>."
+msgstr ""
+"Especifica o formato definido pelo usuário. Idêntico a B<-o> e a B<--format>."
+
+#. type: TP
+#: ../man/ps.1:497
+#, no-wrap
+msgid "B<-o>I<\\ format>"
+msgstr "B<-o>I<\\ formato>"
+
+#. type: Plain text
+#: ../man/ps.1:525
+msgid ""
+"User-defined format. I<format> is a single argument in the form of a blank-"
+"separated or comma-separated list, which offers a way to specify individual "
+"output columns. The recognized keywords are described in the B<STANDARD "
+"FORMAT SPECIFIERS> section below. Headers may be renamed (B<ps -o pid,\\:"
+"ruser=RealUser -o comm=Command>) as desired. If all column headers are "
+"empty (B<ps -o pid= -o comm=>) then the header line will not be output. "
+"Column width will increase as needed for wide headers; this may be used to "
+"widen up columns such as WCHAN (B<ps -o pid,\\:wchan=\\:WIDE-\\:WCHAN-\\:"
+"COLUMN -o comm>). Explicit width control (B<ps opid,\\:wchan:42,\\:cmd>) "
+"is offered too. The behavior of B<ps -o pid=X,\\:comm=Y> varies with "
+"personality; output may be one column named \"X,\\:comm=Y\" or two columns "
+"named \"X\" and \"Y\". Use multiple B<-o> options when in doubt. Use the "
+"B<PS_FORMAT> environment variable to specify a default as desired; DefSysV "
+"and DefBSD are macros that may be used to choose the default UNIX or BSD "
+"columns."
+msgstr ""
+"Formato definido pelo usuário. I<formato> é um único argumento na forma de "
+"uma lista separada por espaços em branco ou por vírgulas, que oferece uma "
+"maneira de especificar colunas de saída individuais. As palavras-chave "
+"reconhecidas são descritas na seção B<ESPECIFICADORES DE FORMATO PADRÃO> "
+"abaixo. Os cabeçalhos podem ser renomeados (B<ps -o pid,\\:ruser=RealUser -o "
+"comm=Command>) conforme desejado. Se todos os cabeçalhos de coluna estiverem "
+"vazios (B<ps -o pid= -o comm=>), a linha do cabeçalho não será exibida. A "
+"largura da coluna aumentará conforme necessário para cabeçalhos largos; isso "
+"pode ser usado para ampliar colunas como WCHAN (B<ps -o pid,\\:wchan=\\:WIDE-"
+"\\:WCHAN-\\:COLUMN -o comm>). O controle de largura explícito (B<ps opid,\\:"
+"wchan:42,\\:cmd>) também é oferecido. O comportamento de B<ps -o pid=X,\\:"
+"comm=Y> varia com a personalidade; a saída pode ser uma coluna denominada "
+"\"X,\\:comm=Y\" ou duas colunas denominadas \"X\" e \"Y\". Use várias opções "
+"B<-o> em caso de dúvida. Use a variável de ambiente B<PS_FORMAT> para "
+"especificar um padrão conforme desejado; DefSysV e DefBSD são macros que "
+"podem ser usadas para escolher as colunas UNIX ou BSD padrão."
+
+#. type: TP
+#: ../man/ps.1:525
+#, no-wrap
+msgid "B<-P>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:528
+msgid "Add a column showing B<psr>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:528
+#, no-wrap
+msgid "B<s>"
+msgstr "B<s>"
+
+#. type: Plain text
+#: ../man/ps.1:531
+msgid "Display signal format."
+msgstr "Exibe o formato do sinal."
+
+#. type: TP
+#: ../man/ps.1:531
+#, no-wrap
+msgid "B<u>"
+msgstr "B<u>"
+
+#. type: Plain text
+#: ../man/ps.1:534
+msgid "Display user-oriented format."
+msgstr "Exibe o formato orientado a usuário."
+
+#. type: TP
+#: ../man/ps.1:534
+#, no-wrap
+msgid "B<v>"
+msgstr "B<v>"
+
+#. type: Plain text
+#: ../man/ps.1:537
+msgid "Display virtual memory format."
+msgstr "Exibe o formato de memória virtual"
+
+#. type: TP
+#: ../man/ps.1:537
+#, no-wrap
+msgid "B<X>"
+msgstr "B<X>"
+
+#. type: Plain text
+#: ../man/ps.1:540
+msgid "Register format."
+msgstr "Formato do registrador"
+
+#. type: TP
+#: ../man/ps.1:540
+#, no-wrap
+msgid "B<-y>"
+msgstr "B<-y>"
+
+#. type: Plain text
+#: ../man/ps.1:545
+msgid ""
+"Do not show flags; show rss in place of addr. This option can only be used "
+"with B<-l>."
+msgstr ""
+"Não mostra sinalizadores; mostra rss no lugar de addr. Esta opção só pode "
+"ser usada com B<-l>."
+
+#. type: TP
+#: ../man/ps.1:545
+#, no-wrap
+msgid "B<Z>"
+msgstr "B<Z>"
+
+#. type: Plain text
+#: ../man/ps.1:550
+msgid "Add a column of security data. Identical to B<-M> (for SELinux)."
+msgstr ""
+"Adiciona uma coluna de dados de segurança. Idêntico a B<-M> (para SELinux)."
+
+#. type: SH
+#: ../man/ps.1:551
+#, no-wrap
+msgid "OUTPUT MODIFIERS"
+msgstr "MODIFICADORES DE SAÃDA"
+
+#. type: TP
+#: ../man/ps.1:552
+#, no-wrap
+msgid "B<c>"
+msgstr "B<c>"
+
+#. type: Plain text
+#: ../man/ps.1:570
+msgid ""
+"Show the true command name. This is derived from the name of the executable "
+"file, rather than from the argv value. Command arguments and any "
+"modifications to them are thus not shown. This option effectively turns the "
+"B<args> format keyword into the B<comm> format keyword; it is useful with "
+"the B<-f> format option and with the various BSD-style format options, which "
+"all normally display the command arguments. See the B<-f> option, the "
+"format keyword B<args>, and the format keyword B<comm>."
+msgstr ""
+"Mostra o verdadeiro nome do comando. Isso é derivado do nome do arquivo "
+"executável, em vez do valor argv. Os argumentos do comando e quaisquer "
+"modificações neles não são mostrados. Esta opção efetivamente transforma a "
+"palavra-chave do formato B<args> na palavra-chave do formato B<comm>; é útil "
+"com a opção de formato B<-f> e com as várias opções de formato de estilo "
+"BSD, que normalmente exibem os argumentos do comando. Consulte a opção B<-"
+"f>, a palavra-chave de formato B<args> e a palavra-chave de formato B<comm>."
+
+#. type: TP
+#: ../man/ps.1:570
+#, no-wrap
+msgid "B<--cols>I<\\ n>"
+msgstr "B<--cols>I<\\ n>"
+
+#. type: Plain text
+#: ../man/ps.1:573 ../man/ps.1:576 ../man/ps.1:724
+msgid "Set screen width."
+msgstr "Define a largura da tela."
+
+#. type: TP
+#: ../man/ps.1:573
+#, no-wrap
+msgid "B<--columns>I<\\ n>"
+msgstr "B<--columns>I<\\ n>"
+
+#. type: TP
+#: ../man/ps.1:576
+#, no-wrap
+msgid "B<--cumulative>"
+msgstr "B<--cumulative>"
+
+#. type: Plain text
+#: ../man/ps.1:579
+msgid "Include some dead child process data (as a sum with the parent)."
+msgstr "Inclui alguns dados do processo filho morto (como uma soma com o pai)."
+
+#. type: TP
+#: ../man/ps.1:580
+#, fuzzy, no-wrap
+#| msgid "B<-O>I<\\ format>"
+msgid "B<-D>I<\\ format>"
+msgstr "B<-O>I<\\ formato>"
+
+#. type: Plain text
+#: ../man/ps.1:586
+msgid ""
+"Set the date format of the B<lstart> field to I<format>. This format is "
+"parsed by B<strftime>(3) and should be a maximum of 24 characters to not "
+"mis-align columns."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:586
+#, fuzzy, no-wrap
+#| msgid "B<--format>I<\\ format>"
+msgid "B<--date-format>I<\\ format>"
+msgstr "B<--format>I<\\ formato>"
+
+#. type: Plain text
+#: ../man/ps.1:589
+#, fuzzy
+#| msgid "Identical to B<--pid\\ >I<123>."
+msgid "Identical to B<-D>."
+msgstr "Idêntico a B<--pid\\ >I<123>."
+
+#. type: TP
+#: ../man/ps.1:589
+#, no-wrap
+msgid "B<e>"
+msgstr "B<e>"
+
+#. type: Plain text
+#: ../man/ps.1:592
+msgid "Show the environment after the command."
+msgstr "Mostra o ambiente após o comando"
+
+#. type: TP
+#: ../man/ps.1:592
+#, no-wrap
+msgid "B<f>"
+msgstr "B<f>"
+
+#. type: Plain text
+#: ../man/ps.1:595
+msgid "ASCII art process hierarchy (forest)."
+msgstr "Hierarquia do processo em arte ASCII (floresta)."
+
+#. type: TP
+#: ../man/ps.1:595
+#, no-wrap
+msgid "B<--forest>"
+msgstr "B<--forest>"
+
+#. type: Plain text
+#: ../man/ps.1:598
+msgid "ASCII art process tree."
+msgstr "Ãrvore de processos em arte ASCII."
+
+#. type: TP
+#: ../man/ps.1:598
+#, no-wrap
+msgid "B<h>"
+msgstr "B<h>"
+
+#. type: Plain text
+#: ../man/ps.1:616
+msgid ""
+"No header. (or, one header per screen in the BSD personality). The B<h> "
+"option is problematic. Standard BSD B<ps> uses this option to print a "
+"header on each page of output, but older Linux B<ps> uses this option to "
+"totally disable the header. This version of B<ps> follows the Linux usage "
+"of not printing the header unless the BSD personality has been selected, in "
+"which case it prints a header on each page of output. Regardless of the "
+"current personality, you can use the long options B<--headers> and B<--no-"
+"headers> to enable printing headers each page or disable headers entirely, "
+"respectively."
+msgstr ""
+"Nenhum cabeçalho. (ou, um cabeçalho por tela na personalidade BSD). A opção "
+"B<h> é problemática. O BSD B<ps> padrão usa esta opção para imprimir um "
+"cabeçalho em cada página de saída, mas o Linux B<ps> mais antigo usa esta "
+"opção para desabilitar totalmente o cabeçalho. Esta versão do B<ps> segue o "
+"uso do Linux de não imprimir o cabeçalho, a menos que a personalidade BSD "
+"tenha sido selecionada, caso em que imprime um cabeçalho em cada página de "
+"saída. Independentemente da personalidade atual, você pode usar as opções "
+"longas B<--headers> e B<--no-headers> para ativar a impressão dos cabeçalhos "
+"de cada página ou desativar os cabeçalhos inteiramente, respectivamente."
+
+#. type: TP
+#: ../man/ps.1:616
+#, no-wrap
+msgid "B<-H>"
+msgstr "B<-H>"
+
+#. type: Plain text
+#: ../man/ps.1:619
+msgid "Show process hierarchy (forest)."
+msgstr "Mostra a hierarquia de processos (floresta)."
+
+#. type: TP
+#: ../man/ps.1:619
+#, no-wrap
+msgid "B<--headers>"
+msgstr "B<--headers>"
+
+#. type: Plain text
+#: ../man/ps.1:622
+msgid "Repeat header lines, one per page of output."
+msgstr "Repete as linhas de cabeçalho, uma por página de saída."
+
+#. type: TP
+#: ../man/ps.1:622
+#, no-wrap
+msgid "B<k>I<\\ spec>"
+msgstr "B<k>I<\\ especificação>"
+
+#. type: Plain text
+#: ../man/ps.1:634
+msgid ""
+"Specify sorting order. Sorting syntax is [B<+>|B<->]I<key\\/.RB [,[ + | - ]."
+"IR key [,...]].> Choose a multi-letter key from the B<STANDARD FORMAT "
+"SPECIFIERS> section. The \"+\" is optional since default direction is "
+"increasing numerical or lexicographic order. Identical to B<--sort>."
+msgstr ""
+"Especifica a ordem de classificação. A sintaxe da ordem [B<+>|B<-"
+">]I<chave\\/.RB [,[ + | - ].IR chave [,...]].> Escolha uma chave com várias "
+"letras na seção B<ESPECIFICADORES DE FORMATO PADRÃO>. O \"+\" é opcional, "
+"pois a direção padrão é aumentar a ordem numérica ou lexicográfica. Idêntico "
+"a B<--sort>."
+
+#. type: Plain text
+#: ../man/ps.1:637
+msgid "Examples:"
+msgstr "Exemplos:"
+
+#. type: Plain text
+#: ../man/ps.1:639
+msgid "B<ps jaxkuid,-ppid,+pid>"
+msgstr "B<ps jaxkuid,-ppid,+pid>"
+
+#. type: Plain text
+#: ../man/ps.1:641
+msgid "B<ps axk comm o comm,args>"
+msgstr "B<ps axk comm o comm,args>"
+
+#. type: Plain text
+#: ../man/ps.1:643
+msgid "B<ps kstart_time -ef>"
+msgstr "B<ps kstart_time -ef>"
+
+#. type: TP
+#: ../man/ps.1:644
+#, no-wrap
+msgid "B<--lines>I<\\ n>"
+msgstr "B<--lines>I<\\ n>"
+
+#. type: Plain text
+#: ../man/ps.1:647 ../man/ps.1:691
+msgid "Set screen height."
+msgstr "Define a altura da tela"
+
+#. type: TP
+#: ../man/ps.1:647
+#, no-wrap
+msgid "B<n>"
+msgstr "B<n>"
+
+#. type: Plain text
+#: ../man/ps.1:650
+msgid "Numeric output for WCHAN and USER (including all types of UID and GID)."
+msgstr ""
+"Saída numérica para WCHAN e USER (incluindo todos os tipos de UID e GID)."
+
+#. type: TP
+#: ../man/ps.1:650
+#, no-wrap
+msgid "B<--no-headers>"
+msgstr "B<--no-headers>"
+
+#. type: Plain text
+#: ../man/ps.1:655
+msgid ""
+"Print no header line at all. B<--no-heading> is an alias for this option."
+msgstr ""
+"Não imprime nenhuma linha de cabeçalho. B<--no-heading> é um alias para esta "
+"opção."
+
+#. type: TP
+#: ../man/ps.1:655
+#, no-wrap
+msgid "B<O>I<\\ order>"
+msgstr "B<O>I<\\ ordem>"
+
+#. type: Plain text
+#: ../man/ps.1:669
+msgid ""
+"Sorting order (overloaded). The BSD B<O> option can act like B<-O> (user-"
+"defined output format with some common fields predefined) or can be used to "
+"specify sort order. Heuristics are used to determine the behavior of this "
+"option. To ensure that the desired behavior is obtained (sorting or "
+"formatting), specify the option in some other way (e.g. with B<-O> or B<--"
+"sort>)."
+msgstr ""
+"Ordem de classificação (sobrecarregado). A opção BSD B<O> pode agir como B<-"
+"O> (formato de saída definido pelo usuário com alguns campos comuns "
+"predefinidos) ou pode ser usada para especificar a ordem de classificação. "
+"As heurísticas são usadas para determinar o comportamento desta opção. Para "
+"garantir que o comportamento desejado seja obtido (classificação ou "
+"formatação), especifique a opção de alguma outra forma (por exemplo, com B<-"
+"O> ou B<--sort>)."
+
+#. type: Plain text
+#: ../man/ps.1:688
+msgid ""
+"For sorting, obsolete BSD B<O> option syntax is B<O>[B<+>|B<->]I<k1>[,[B<+>|"
+"B<->]I<k2>[,...]]. It orders the processes listing according to the "
+"multilevel sort specified by the sequence of one-letter short keys I<k1>,"
+"I<k2>, ...\" described in the B<OBSOLETE SORT KEYS> section below. The\\ \"+"
+"\" is currently optional, merely re-iterating the default direction on a "
+"key, but may help to distinguish an B<O> sort from an B<O> format. The \"-"
+"\" reverses direction only on the key it precedes."
+msgstr ""
+"Para classificação, a sintaxe da opção obsoletada BSD B<O> é B<O>[B<+>|B<-"
+">]I<k1>[,[B<+>|B<->]I<k2>[,...]]. Isso ordena a listagem de processos de "
+"acordo com a classificação multinível especificada pela sequência de chaves "
+"curtas de uma letra I<k1>, I<k2>, ...\" descrita na seção B<CHAVES DE "
+"CLASSIFICAÇÃO OBSOLETAS> abaixo. O\\ \"+\" atualmente é opcional, meramente "
+"reiterando a direção padrão em uma tecla, mas pode ajudar a distinguir uma "
+"classificação B<O> de um formato B<O>. O \"-\" inverte a direção apenas na "
+"tecla que a precede."
+
+#. type: TP
+#: ../man/ps.1:688
+#, no-wrap
+msgid "B<--rows>I<\\ n>"
+msgstr "B<--rows>I<\\ n>"
+
+#. type: TP
+#: ../man/ps.1:691
+#, no-wrap
+msgid "B<S>"
+msgstr "B<S>"
+
+#. type: Plain text
+#: ../man/ps.1:696
+msgid ""
+"Sum up some information, such as CPU usage, from dead child processes into "
+"their parent. This is useful for examining a system where a parent process "
+"repeatedly forks off short-lived children to do work."
+msgstr ""
+"Resume algumas informações, como o uso da CPU, de processos filho mortos em "
+"seus pais. Isso é útil para examinar um sistema em que um processo dos pais "
+"separa repetidamente os filhos de vida curta para trabalhar."
+
+#. type: TP
+#: ../man/ps.1:696
+#, no-wrap
+msgid "B<--sort>I<\\ spec>"
+msgstr "B<--sort>I<\\ especificação>"
+
+#. type: Plain text
+#: ../man/ps.1:710
+msgid ""
+"Specify sorting order. Sorting syntax is [I<+>|I<->]I<key>[,[B<+>|B<-"
+">]I<key>[,...]]. Choose a multi-letter key from the B<STANDARD FORMAT "
+"SPECIFIERS> section. The \"+\" is optional since default direction is "
+"increasing numerical or lexicographic order. Identical to B<k>. For "
+"example: B<ps jax --sort=\\:uid,\\:-ppid,\\:+pid>"
+msgstr ""
+"Especifica a ordem de classificação. A sintaxe de classificação é [I<+>|I<-"
+">]I<chave>[,[B<+>|B<->]I<chave>[,...]]. Escolha uma chave com várias letras "
+"na seção B<ESPECIFICADORES DE FORMATO PADRÃO>. O \"+\" é opcional, pois a "
+"direção padrão é aumentar a ordem numérica ou lexicográfica. Idêntico a "
+"B<k>. Por exemplo: B<ps jax --sort=\\:uid,\\:-ppid,\\:+pid>"
+
+#. type: TP
+#: ../man/ps.1:710
+#, fuzzy, no-wrap
+#| msgid "B<--giga>"
+msgid "B<--signames>"
+msgstr "B<--giga>"
+
+#. type: Plain text
+#: ../man/ps.1:715
+msgid ""
+"Show signal masks using abbreviated signal names and expands the collumn. "
+"If the column width cannot show all signals, the column will end with a plus "
+"\"I<+>\". Columns with only a hyphen have no signals."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:715
+#, no-wrap
+msgid "B<w>"
+msgstr "B<w>"
+
+#. type: Plain text
+#: ../man/ps.1:718 ../man/ps.1:721
+msgid "Wide output. Use this option twice for unlimited width."
+msgstr "Ampla produção. Use esta opção duas vezes para largura ilimitada."
+
+#. type: TP
+#: ../man/ps.1:721
+#, no-wrap
+msgid "B<--width>I<\\ n>"
+msgstr "B<--width>I<\\ n>"
+
+#. type: SH
+#: ../man/ps.1:725
+#, no-wrap
+msgid "THREAD DISPLAY"
+msgstr "EXIBIÇÃO DE THREAD"
+
+#. type: TP
+#: ../man/ps.1:726
+#, no-wrap
+msgid "B<H>"
+msgstr "B<H>"
+
+#. type: Plain text
+#: ../man/ps.1:729
+msgid "Show threads as if they were processes."
+msgstr "Mostra threads como se fossem processos."
+
+#. type: TP
+#: ../man/ps.1:729
+#, no-wrap
+msgid "B<-L>"
+msgstr "B<-L>"
+
+#. type: Plain text
+#: ../man/ps.1:732
+msgid "Show threads, possibly with LWP and NLWP columns."
+msgstr "Mostra threads, possivelmente com colunas LWP e NLWP."
+
+#. type: TP
+#: ../man/ps.1:732
+#, no-wrap
+msgid "B<m>"
+msgstr "B<m>"
+
+#. type: Plain text
+#: ../man/ps.1:735 ../man/ps.1:738
+msgid "Show threads after processes."
+msgstr "Mostra threads após processos."
+
+#. type: TP
+#: ../man/ps.1:735
+#, no-wrap
+msgid "B<-m>"
+msgstr "B<-m>"
+
+#. type: TP
+#: ../man/ps.1:738
+#, no-wrap
+msgid "B<-T>"
+msgstr "B<-T>"
+
+#. type: Plain text
+#: ../man/ps.1:741
+msgid "Show threads, possibly with SPID column."
+msgstr "Mostra threads, possivelmente com coluna SPID."
+
+#. type: SH
+#: ../man/ps.1:741
+#, no-wrap
+msgid "OTHER INFORMATION"
+msgstr "OUTRAS INFORMAÇÕES"
+
+#. type: TP
+#: ../man/ps.1:742
+#, no-wrap
+msgid "B<--help>I<\\ section>"
+msgstr "B<--help>I<\\ seção>"
+
+#. type: Plain text
+#: ../man/ps.1:753
+msgid ""
+"Print a help message. The I<section> argument can be one of I<s>imple, "
+"I<l>ist, I<o>utput, I<t>hreads, I<m>isc, or I<a>ll. The argument can be "
+"shortened to one of the underlined letters as in: s\\^|\\^l\\^|\\^o\\^|"
+"\\^t\\^|\\^m\\^|\\^a."
+msgstr ""
+"Imprime uma mensagem de ajuda. O argumento I<seção> pode ser um de "
+"I<s>imples, I<l>ista, I<o>utput (saída), I<t>hreads, I<m>isc (diverso) ou "
+"I<a>ll (todas). O argumento pode ser encurtado para uma das letras "
+"sublinhadas como em: s\\^|\\^l\\^|\\^o\\^|\\^t\\^|\\^m\\^|\\^a."
+
+#. type: TP
+#: ../man/ps.1:753
+#, no-wrap
+msgid "B<--info>"
+msgstr "B<--info>"
+
+#. type: Plain text
+#: ../man/ps.1:756
+msgid "Print debugging info."
+msgstr "Imprime informações de depuração."
+
+#. type: TP
+#: ../man/ps.1:756
+#, no-wrap
+msgid "B<L>"
+msgstr "B<L>"
+
+#. type: Plain text
+#: ../man/ps.1:759
+msgid "List all format specifiers."
+msgstr "Lista todos os especificadores de formato."
+
+#. type: TP
+#: ../man/ps.1:759
+#, no-wrap
+msgid "B<V>"
+msgstr "B<V>"
+
+#. type: Plain text
+#: ../man/ps.1:762 ../man/ps.1:765 ../man/ps.1:768
+msgid "Print the procps-ng version."
+msgstr "Imprime a versão do procps-ng."
+
+#. type: TP
+#: ../man/ps.1:762
+#, no-wrap
+msgid "B<-V>"
+msgstr "B<-V>"
+
+#. type: TP
+#: ../man/ps.1:765
+#, no-wrap
+msgid "B<--version>"
+msgstr "B<--version>"
+
+#. type: Plain text
+#: ../man/ps.1:777
+msgid ""
+"This B<ps> works by reading the virtual files in /proc. This B<ps> does not "
+"need to be setuid kmem or have any privileges to run. Do not give this "
+"B<ps> any special permissions."
+msgstr ""
+"Este B<ps> funciona lendo os arquivos virtuais em /proc. Este B<ps> não "
+"precisa ser setuid kmem ou ter quaisquer privilégios para ser executado. Não "
+"conceda a este B<ps> quaisquer permissões especiais."
+
+#. type: Plain text
+#: ../man/ps.1:783
+msgid ""
+"CPU usage is currently expressed as the percentage of time spent running "
+"during the entire lifetime of a process. This is not ideal, and\\ it does "
+"not conform to the standards that B<ps> otherwise conforms to. CPU usage is "
+"unlikely to add up to exactly 100%."
+msgstr ""
+"O uso da CPU é atualmente expresso como a porcentagem de tempo gasto em "
+"execução durante toda a vida útil de um processo. Isso não é o ideal e\\ não "
+"está de acordo com os padrões que B<ps> de outra forma segue. O uso da CPU "
+"não deve somar exatamente 100%."
+
+#. type: Plain text
+#: ../man/ps.1:788
+msgid ""
+"The SIZE and RSS fields don't count some parts of a process including the "
+"page tables, kernel stack, struct thread_info, and struct task_struct. This "
+"is usually at least 20\\ KiB of memory that is always resident. SIZE is the "
+"virtual size of the process (code+\\:data+\\:stack)."
+msgstr ""
+"Os campos SIZE e RSS não contam algumas partes de um processo, incluindo as "
+"tabelas de página, pilha do kernel, struct thread_info e struct task_struct. "
+"Geralmente é pelo menos 20\\ KiB de memória que é sempre residente. SIZE é o "
+"tamanho virtual do processo (código+\\:dados+\\:pilha)."
+
+#. type: Plain text
+#: ../man/ps.1:794
+msgid ""
+"Processes marked E<lt>defunctE<gt> are dead processes (so-called "
+"\"zombies\") that remain because their parent has not destroyed them "
+"properly. These processes will be destroyed by I<init>(8) if the parent "
+"process exits."
+msgstr ""
+"Os processos marcados com E<lt>defunctE<gt> são processos mortos (os "
+"chamados \"zumbis\") que permanecem porque seus pais não os destruíram "
+"adequadamente. Esses processos serão destruídos por I<init>(8) se o processo "
+"pai sair."
+
+#. type: Plain text
+#: ../man/ps.1:798
+#, fuzzy
+#| msgid ""
+#| "If the length of the username is greater than the length of the display "
+#| "column, the username will be truncated. See the B<-o> and B<-O> "
+#| "formatting options to customize length."
+msgid ""
+"If the length of the username is greater than the width of the display "
+"column, the username will be truncated. See the B<-o> and B<-O> formatting "
+"options to customize length."
+msgstr ""
+"Se o comprimento do nome de usuário for maior que o comprimento da coluna de "
+"exibição, o nome de usuário ficará truncado. Consulte as opções de "
+"formatação B<-o> e B<-O> para personalizar o comprimento."
+
+#. type: Plain text
+#: ../man/ps.1:810
+#, fuzzy
+#| msgid ""
+#| "Commands options such as B<ps -aux> are not recommended as it is a "
+#| "confusion of two different standards. According to the POSIX and UNIX "
+#| "standards, the above command asks to display all processes with a TTY "
+#| "(generally the commands users are running) plus all processes owned by a "
+#| "user named I<x>. If that user doesn't exist, then B<ps> will assume you "
+#| "really meant B<ps aux>."
+msgid ""
+"Commands options such as B<ps -aux> are not recommended as it is a confusion "
+"of two different standards. According to the POSIX and UNIX standards, the "
+"above command asks to display all processes with a TTY (generally the "
+"commands users are running) plus all processes owned by a user named I<x>. "
+"If that user doesn't exist, then B<ps> will assume you really meant \"B<ps> "
+"I<aux>\"."
+msgstr ""
+"Opções de comandos como B<ps -aux> não são recomendadas, pois é uma confusão "
+"de dois padrões diferentes. De acordo com os padrões POSIX e UNIX, o comando "
+"acima pede para exibir todos os processos com um TTY (geralmente os comandos "
+"que os usuários estão executando) mais todos os processos pertencentes a um "
+"usuário chamado I<x>. Se esse usuário não existir, então B<ps> assumirá que "
+"você realmente quis dizer B<ps aux>."
+
+#. type: SH
+#: ../man/ps.1:810
+#, no-wrap
+msgid "PROCESS FLAGS"
+msgstr "SINALIZADORES DE PROCESSO"
+
+#. type: Plain text
+#: ../man/ps.1:815
+msgid ""
+"The sum of these values is displayed in the \"F\" column, which is provided "
+"by the B<flags> output specifier:"
+msgstr ""
+"A soma desses valores é exibida na coluna \"F\", que é fornecida pelo "
+"especificador de saída dos B<sinalizadores>:"
+
+#. type: Plain text
+#: ../man/ps.1:821
+msgid "forked but didn't exec"
+msgstr "foi bifurcado mas não executado"
+
+#. type: IP
+#: ../man/ps.1:821 ../man/ps.1:2088
+#, no-wrap
+msgid "4"
+msgstr "4"
+
+#. type: Plain text
+#: ../man/ps.1:824
+msgid "used super-user privileges"
+msgstr "usou privilégios de superusuário"
+
+#. type: SH
+#: ../man/ps.1:826
+#, no-wrap
+msgid "PROCESS STATE CODES"
+msgstr "CÓDIGOS DE ESTADO DE PROCESSO"
+
+#. type: Plain text
+#: ../man/ps.1:831
+msgid ""
+"Here are the different values that the B<s>, B<stat> and B<state> output "
+"specifiers (header \"STAT\" or \"S\") will display to describe the state of "
+"a process:"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:834
+#, no-wrap
+msgid "D"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:837
+msgid "uninterruptible sleep (usually IO)"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:837
+#, no-wrap
+msgid "I"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:840
+msgid "Idle kernel thread"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:840 ../man/ps.1:925
+#, no-wrap
+msgid "R"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:843
+msgid "running or runnable (on run queue)"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:843 ../man/ps.1:927 ../man/ps.1:1631 ../man/ps.1:1753
+#, no-wrap
+msgid "S"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:846
+msgid "interruptible sleep (waiting for an event to complete)"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:846 ../man/ps.1:929
+#, no-wrap
+msgid "T"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:849
+msgid "stopped by job control signal"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:849 ../man/ps.1:928
+#, no-wrap
+msgid "t"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:852
+msgid "stopped by debugger during the tracing"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:855
+msgid "paging (not valid since the 2.6.xx kernel)"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:855
+#, no-wrap
+msgid "X"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:858
+msgid "dead (should never be seen)"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:858
+#, no-wrap
+msgid "Z"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:861
+msgid "defunct (\"zombie\") process, terminated but not reaped by its parent"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:867
+msgid ""
+"For BSD formats and when the B<stat> keyword is used, additional characters "
+"may be displayed:"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:870
+#, no-wrap
+msgid "E<lt>"
+msgstr "E<lt>"
+
+#. type: Plain text
+#: ../man/ps.1:873
+msgid "high-priority (not nice to other users)"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:873 ../man/ps.1:920
+#, no-wrap
+msgid "N"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:876
+msgid "low-priority (nice to other users)"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:876
+#, no-wrap
+msgid "L"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:879
+msgid "has pages locked into memory (for real-time and custom IO)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:882
+msgid "is a session leader"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:885
+msgid "is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:885
+#, no-wrap
+msgid "+"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:888
+msgid "is in the foreground process group"
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:890
+#, no-wrap
+msgid "OBSOLETE SORT KEYS"
+msgstr "CHAVES DE CLASSIFICAÇÃO OBSOLETAS"
+
+#. type: Plain text
+#: ../man/ps.1:906
+msgid ""
+"These keys are used by the BSD B<O> option (when it is used for sorting). "
+"The GNU B<--sort> option doesn't use these keys, but the specifiers "
+"described below in the B<STANDARD FORMAT SPECIFIERS> section. Note that the "
+"values used in sorting are the internal values B<ps> uses and not the "
+"\"cooked\" values used in some of the output format fields (e.g. sorting on "
+"tty will sort into device number, not according to the terminal name "
+"displayed). Pipe B<ps> output into the B<sort>(1) command if you want to "
+"sort the cooked values."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, no-wrap
+msgid "B<KEY>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, no-wrap
+msgid "B<LONG>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, fuzzy, no-wrap
+msgid "B<DESCRIPTION>"
+msgstr "DESCRIÇÃO"
+
+#. type: tbl table
+#: ../man/ps.1:909 ../man/ps.1:1161
+#, no-wrap
+msgid "cmd"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:909
+#, no-wrap
+msgid "simple name of executable"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:910 ../man/ps.1:1081
+#, no-wrap
+msgid "C"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:910 ../man/ps.1:952 ../man/ps.1:1481
+#, no-wrap
+msgid "pcpu"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:910
+#, fuzzy, no-wrap
+msgid "cpu utilization"
+msgstr "utilização de cache"
+
+#. type: tbl table
+#: ../man/ps.1:911 ../man/ps.1:1300
+#, no-wrap
+msgid "f"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:911 ../man/ps.1:1326
+#, no-wrap
+msgid "flags"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:911
+#, no-wrap
+msgid "flags as in long format F field"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:912
+#, no-wrap
+msgid "g"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:912 ../man/ps.1:1508
+#, no-wrap
+msgid "pgrp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:912
+#, no-wrap
+msgid "process group ID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:913
+#, no-wrap
+msgid "G"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:913 ../man/ps.1:1848
+#, no-wrap
+msgid "tpgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:913
+#, no-wrap
+msgid "controlling tty process group ID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "j"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "cutime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "cumulative user time"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "J"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "cstime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "cumulative system time"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "k"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "utime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "user time"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:917
+#, no-wrap
+msgid "m"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:917 ../man/ps.1:1419
+#, no-wrap
+msgid "min_flt"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:917
+#, fuzzy, no-wrap
+msgid "number of minor page faults"
+msgstr "número de objetos"
+
+#. type: tbl table
+#: ../man/ps.1:918
+#, no-wrap
+msgid "M"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:918 ../man/ps.1:1415
+#, no-wrap
+msgid "maj_flt"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:918
+#, fuzzy, no-wrap
+msgid "number of major page faults"
+msgstr "número de objetos"
+
+#. type: tbl table
+#: ../man/ps.1:919
+#, no-wrap
+msgid "cmin_flt"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:919
+#, no-wrap
+msgid "cumulative minor page faults"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:920
+#, no-wrap
+msgid "cmaj_flt"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:920
+#, no-wrap
+msgid "cumulative major page faults"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:921
+#, no-wrap
+msgid "session"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:921
+#, no-wrap
+msgid "session ID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:922 ../man/ps.1:960 ../man/ps.1:1515
+#, no-wrap
+msgid "pid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:922
+#, no-wrap
+msgid "process ID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:923 ../man/ps.1:1657
+#, no-wrap
+msgid "P"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:923 ../man/ps.1:954 ../man/ps.1:1559
+#, no-wrap
+msgid "ppid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:923
+#, no-wrap
+msgid "parent process ID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:924
+#, no-wrap
+msgid "r"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:924 ../man/ps.1:1598
+#, no-wrap
+msgid "rss"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:924
+#, no-wrap
+msgid "resident set size"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:925
+#, no-wrap
+msgid "resident"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:925
+#, no-wrap
+msgid "resident pages"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:926 ../man/ps.1:1707
+#, no-wrap
+msgid "size"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:926
+#, no-wrap
+msgid "memory size in kilobytes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:927
+#, fuzzy, no-wrap
+msgid "share"
+msgstr "B<compart.>"
+
+#. type: tbl table
+#: ../man/ps.1:927
+#, no-wrap
+msgid "amount of shared pages"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:928 ../man/ps.1:965 ../man/ps.1:1862
+#, no-wrap
+msgid "tty"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:928
+#, no-wrap
+msgid "the device number of the controlling tty"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:929 ../man/ps.1:1736
+#, no-wrap
+msgid "start_time"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:929
+#, fuzzy, no-wrap
+msgid "time process was started"
+msgstr "Nenhum processo correspondeu."
+
+#. type: tbl table
+#: ../man/ps.1:930
+#, no-wrap
+msgid "U"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:930 ../man/ps.1:1881
+#, no-wrap
+msgid "uid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:930
+#, no-wrap
+msgid "user ID number"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:931 ../man/ps.1:955 ../man/ps.1:1900
+#, fuzzy, no-wrap
+msgid "user"
+msgstr "B<usuário >"
+
+#. type: tbl table
+#: ../man/ps.1:931
+#, fuzzy, no-wrap
+msgid "user name"
+msgstr "nome"
+
+#. type: tbl table
+#: ../man/ps.1:932 ../man/ps.1:1929
+#, no-wrap
+msgid "vsize"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:932
+#, no-wrap
+msgid "total VM size in KiB"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "y"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "priority"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "kernel scheduling priority"
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:936
+#, no-wrap
+msgid "AIX FORMAT DESCRIPTORS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:949
+msgid ""
+"This B<ps> supports AIX format descriptors, which work somewhat like the "
+"formatting codes of I<printf>(1) and I<printf>(3). For example, the normal "
+"default output can be produced with this: B<ps -eo \"%p %y %x %c\">. The "
+"B<NORMAL> codes are described in the next section."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<CODE>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<NORMAL>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<HEADER>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:952
+#, no-wrap
+msgid "%C"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:952 ../man/ps.1:1004 ../man/ps.1:1481
+#, no-wrap
+msgid "%CPU"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:953
+#, no-wrap
+msgid "%G"
+msgstr "%G"
+
+#. type: tbl table
+#: ../man/ps.1:953 ../man/ps.1:1355
+#, no-wrap
+msgid "group"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:953 ../man/ps.1:1355
+#, no-wrap
+msgid "GROUP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:954
+#, no-wrap
+msgid "%P"
+msgstr "%P"
+
+#. type: tbl table
+#: ../man/ps.1:954 ../man/ps.1:1559
+#, no-wrap
+msgid "PPID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:955
+#, no-wrap
+msgid "%U"
+msgstr "%U"
+
+#. type: tbl table
+#: ../man/ps.1:955 ../man/ps.1:1888 ../man/ps.1:1900
+#, no-wrap
+msgid "USER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:956
+#, no-wrap
+msgid "%a"
+msgstr "%a"
+
+#. type: tbl table
+#: ../man/ps.1:956 ../man/ps.1:1027
+#, no-wrap
+msgid "args"
+msgstr "args"
+
+#. type: tbl table
+#: ../man/ps.1:956 ../man/ps.1:957 ../man/ps.1:1027 ../man/ps.1:1168
+#: ../man/ps.1:1196 ../man/ps.1:1333 ../man/ps.1:1874
+#, fuzzy, no-wrap
+msgid "COMMAND"
+msgstr "COMANDOS"
+
+#. type: tbl table
+#: ../man/ps.1:957
+#, no-wrap
+msgid "%c"
+msgstr "%c"
+
+#. type: tbl table
+#: ../man/ps.1:957 ../man/ps.1:1168
+#, no-wrap
+msgid "comm"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:958
+#, no-wrap
+msgid "%g"
+msgstr "%g"
+
+#. type: tbl table
+#: ../man/ps.1:958 ../man/ps.1:1588
+#, no-wrap
+msgid "rgroup"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:958 ../man/ps.1:1588
+#, no-wrap
+msgid "RGROUP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:959
+#, no-wrap
+msgid "%n"
+msgstr "%n"
+
+#. type: tbl table
+#: ../man/ps.1:959 ../man/ps.1:1443
+#, no-wrap
+msgid "nice"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:959 ../man/ps.1:1435 ../man/ps.1:1443
+#, no-wrap
+msgid "NI"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:960
+#, no-wrap
+msgid "%p"
+msgstr "%p"
+
+#. type: tbl table
+#: ../man/ps.1:960 ../man/ps.1:1515
+#, fuzzy, no-wrap
+msgid "PID"
+msgstr "PIDOF"
+
+#. type: tbl table
+#: ../man/ps.1:961
+#, no-wrap
+msgid "%r"
+msgstr "%r"
+
+#. type: tbl table
+#: ../man/ps.1:961 ../man/ps.1:1502
+#, no-wrap
+msgid "pgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:961 ../man/ps.1:1502
+#, no-wrap
+msgid "PGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:962
+#, no-wrap
+msgid "%t"
+msgstr "%t"
+
+#. type: tbl table
+#: ../man/ps.1:962 ../man/ps.1:1271
+#, no-wrap
+msgid "etime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:962 ../man/ps.1:1271 ../man/ps.1:1275
+#, no-wrap
+msgid "ELAPSED"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:963
+#, no-wrap
+msgid "%u"
+msgstr "%u"
+
+#. type: tbl table
+#: ../man/ps.1:963 ../man/ps.1:1626
+#, fuzzy, no-wrap
+msgid "ruser"
+msgstr "B<usuário >"
+
+#. type: tbl table
+#: ../man/ps.1:963 ../man/ps.1:1626
+#, no-wrap
+msgid "RUSER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:964
+#, no-wrap
+msgid "%x"
+msgstr "%x"
+
+#. type: tbl table
+#: ../man/ps.1:964 ../man/ps.1:1827
+#, no-wrap
+msgid "time"
+msgstr "time"
+
+#. type: tbl table
+#: ../man/ps.1:964 ../man/ps.1:1075 ../man/ps.1:1208 ../man/ps.1:1213
+#: ../man/ps.1:1827 ../man/ps.1:1838
+#, fuzzy, no-wrap
+msgid "TIME"
+msgstr "UPTIME"
+
+#. type: tbl table
+#: ../man/ps.1:965
+#, no-wrap
+msgid "%y"
+msgstr "%y"
+
+#. type: tbl table
+#: ../man/ps.1:965 ../man/ps.1:1843
+#, no-wrap
+msgid "TTY"
+msgstr "TTY"
+
+#. type: tbl table
+#: ../man/ps.1:966
+#, no-wrap
+msgid "%z"
+msgstr "%z"
+
+#. type: tbl table
+#: ../man/ps.1:966 ../man/ps.1:1936
+#, no-wrap
+msgid "vsz"
+msgstr "vsz"
+
+#. type: tbl table
+#: ../man/ps.1:966 ../man/ps.1:1929 ../man/ps.1:1936
+#, no-wrap
+msgid "VSZ"
+msgstr "VSZ"
+
+#. type: SH
+#: ../man/ps.1:968
+#, no-wrap
+msgid "STANDARD FORMAT SPECIFIERS"
+msgstr "ESPECIFICADORES DE FORMATO PADRÃO"
+
+#. type: Plain text
+#: ../man/ps.1:975
+msgid ""
+"Here are the different keywords that may be used to control the output "
+"format (e.g., with option B<-o>) or to sort the selected processes with the "
+"GNU-style B<--sort> option."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:978
+msgid "For example: B<ps -eo pid,\\:user,\\:args --sort user>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:983
+msgid ""
+"This version of B<ps> tries to recognize most of the keywords used in other "
+"implementations of B<ps>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:988
+msgid ""
+"The following user-defined format specifiers may contain spaces: B<args>, "
+"B<cmd>, B<comm>, B<command>, B<fname>, B<ucmd>, B<ucomm>, B<lstart>, "
+"B<bsdstart>, B<start>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:990
+msgid "Some keywords may not be available for sorting."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1002
+#, no-wrap
+msgid "CODE"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1002
+#, no-wrap
+msgid "HEADER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1004
+#, no-wrap
+msgid "%cpu"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1010
+#, no-wrap
+msgid ""
+"cpu utilization of the process in \"##.#\" format. Currently, it is the CPU\n"
+"time used divided by the time the process has been running (cputime/realtime\n"
+"ratio), expressed as a percentage. It will not add up to 100% unless you are\n"
+"lucky. (alias\n"
+"B<pcpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1012
+#, no-wrap
+msgid "%mem"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1012 ../man/ps.1:1526
+#, no-wrap
+msgid "%MEM"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1016
+#, no-wrap
+msgid ""
+"ratio of the process's resident set size to the physical memory on the\n"
+"machine, expressed as a percentage. (alias\n"
+"B<pmem>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1018
+#, no-wrap
+msgid "ag_id"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1018
+#, no-wrap
+msgid "AGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1021
+#, no-wrap
+msgid ""
+"The autogroup identifier associated with a process which operates in conjunction\n"
+"with the CFS scheduler to improve interactive desktop performance."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1023
+#, no-wrap
+msgid "ag_nice"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1023
+#, no-wrap
+msgid "AGNI"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1025
+#, no-wrap
+msgid "The autogroup nice value which affects scheduling of all processes in that group."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1042
+#, no-wrap
+msgid ""
+"command with all its arguments as a string. Modifications to the arguments\n"
+"may be shown. The output in this column may contain spaces. A process\n"
+"marked E<lt>defunctE<gt> is partly dead, waiting to be fully destroyed by its parent.\n"
+"Sometimes the process args will be unavailable; when this happens,\n"
+"B<ps>\n"
+"will instead print the executable name in brackets. (alias\n"
+"B<cmd>, B<command>).\n"
+"See also the\n"
+"B<comm>\n"
+"format keyword, the\n"
+"B<-f>\n"
+"option, and the\n"
+"B<c>\n"
+"option.\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1042 ../man/ps.1:1116 ../man/ps.1:1118 ../man/ps.1:1120
+#: ../man/ps.1:1122 ../man/ps.1:1124 ../man/ps.1:1126 ../man/ps.1:1128
+#: ../man/ps.1:1130 ../man/ps.1:1142 ../man/ps.1:1144 ../man/ps.1:1146
+#: ../man/ps.1:1148 ../man/ps.1:1150 ../man/ps.1:1152 ../man/ps.1:1154
+#: ../man/ps.1:1156 ../man/ps.1:1180 ../man/ps.1:1540 ../man/ps.1:1542
+#: ../man/ps.1:1544 ../man/ps.1:1546 ../man/ps.1:1548 ../man/ps.1:1550
+#: ../man/ps.1:1552 ../man/ps.1:1554
+#, no-wrap
+msgid ".br\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1058
+#, no-wrap
+msgid ""
+"When specified last, this column will extend to the edge of the display. If\n"
+"B<ps>\n"
+"can not determine display width, as when output is redirected (piped) into a\n"
+"file or another command, the output width is undefined (it may be 80,\n"
+"unlimited, determined by the\n"
+"B<TERM>\n"
+"variable, and so on). The\n"
+"B<COLUMNS>\n"
+"environment variable or\n"
+"B<--cols>\n"
+"option may be used to exactly determine the width in this case. The\n"
+"B<w>\n"
+"or\n"
+"B<-w>\n"
+"option may be also be used to adjust width."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1060
+#, no-wrap
+msgid "blocked"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1060 ../man/ps.1:1700
+#, no-wrap
+msgid "BLOCKED"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1066
+#, no-wrap
+msgid ""
+"mask of the blocked signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64-bit mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_block>, B<sigmask>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1068
+#, no-wrap
+msgid "bsdstart"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1068 ../man/ps.1:1736
+#, no-wrap
+msgid "START"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1073
+#, no-wrap
+msgid ""
+"time the command started. If the process was started less than 24 hours ago,\n"
+"the output format is \"\\ HH:MM\", else it is \" Mmm:SS\" (where Mmm is the three\n"
+"letters of the month). See also\n"
+"B<lstart>,B<\\ start>,B<\\ start_time>, andB<\\ stime>."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1075
+#, no-wrap
+msgid "bsdtime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1079
+#, no-wrap
+msgid ""
+"accumulated cpu time, user + system. The display format is usually\n"
+"\"MMM:SS\", but can be shifted to the right if the process used more than 999\n"
+"minutes of cpu time."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1085
+#, no-wrap
+msgid ""
+"processor utilization. Currently, this is the integer value of the percent\n"
+"usage over the lifetime of the process. (see\n"
+"B<%cpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1087
+#, no-wrap
+msgid "caught"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1087 ../man/ps.1:1686
+#, no-wrap
+msgid "CAUGHT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1093
+#, no-wrap
+msgid ""
+"mask of the caught signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64 bits mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_catch>, B<sigcatch>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1095
+#, fuzzy, no-wrap
+msgid "cgname"
+msgstr "nome"
+
+#. type: tbl table
+#: ../man/ps.1:1095
+#, fuzzy, no-wrap
+msgid "CGNAME"
+msgstr "NOME"
+
+#. type: tbl table
+#: ../man/ps.1:1097
+#, no-wrap
+msgid "display name of control groups to which the process belongs."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1099
+#, no-wrap
+msgid "cgroup"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1099
+#, no-wrap
+msgid "CGROUP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1101
+#, no-wrap
+msgid "display control groups to which the process belongs."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1103
+#, no-wrap
+msgid "cgroupns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1103
+#, no-wrap
+msgid "CGROUPNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1107 ../man/ps.1:1374 ../man/ps.1:1427 ../man/ps.1:1433
+#: ../man/ps.1:1524 ../man/ps.1:1836 ../man/ps.1:1911 ../man/ps.1:1922
+#, no-wrap
+msgid ""
+"Unique inode number describing the namespace the process belongs to.\n"
+"See\n"
+"I<namespaces>(7)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1109
+#, no-wrap
+msgid "class"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1109 ../man/ps.1:1135
+#, no-wrap
+msgid "CLS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1113 ../man/ps.1:1139
+#, no-wrap
+msgid ""
+"scheduling class of the process. (alias\n"
+"B<policy>, B<cls>).\n"
+"Field's possible values are:\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1113 ../man/ps.1:1139 ../man/ps.1:1537
+#, no-wrap
+msgid ".sp 1\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1114 ../man/ps.1:1140 ../man/ps.1:1538
+#, no-wrap
+msgid ".in +9n\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1116 ../man/ps.1:1142 ../man/ps.1:1540
+#, no-wrap
+msgid "-\tnot reported\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1118 ../man/ps.1:1144 ../man/ps.1:1542
+#, no-wrap
+msgid "TS\tSCHED_OTHER\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1120 ../man/ps.1:1146 ../man/ps.1:1544
+#, no-wrap
+msgid "FF\tSCHED_FIFO\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1122 ../man/ps.1:1148 ../man/ps.1:1546
+#, no-wrap
+msgid "RR\tSCHED_RR\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1124 ../man/ps.1:1150 ../man/ps.1:1548
+#, no-wrap
+msgid "B\tSCHED_BATCH\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1126 ../man/ps.1:1152 ../man/ps.1:1550
+#, no-wrap
+msgid "ISO\tSCHED_ISO\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1128 ../man/ps.1:1154 ../man/ps.1:1552
+#, no-wrap
+msgid "IDL\tSCHED_IDLE\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1130 ../man/ps.1:1156 ../man/ps.1:1554
+#, no-wrap
+msgid "DLN\tSCHED_DEADLINE\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1132 ../man/ps.1:1158 ../man/ps.1:1556
+#, fuzzy, no-wrap
+msgid "?\tunknown value\n"
+msgstr "token = valor\n"
+
+#. type: tbl table
+#: ../man/ps.1:1132 ../man/ps.1:1158 ../man/ps.1:1556
+#, no-wrap
+msgid ".in\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1135
+#, no-wrap
+msgid "cls"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1161 ../man/ps.1:1867
+#, no-wrap
+msgid "CMD"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1166
+#, no-wrap
+msgid ""
+"see\n"
+"B<args>.\n"
+"(alias\n"
+"B<args>, B<command>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1180
+#, no-wrap
+msgid ""
+"command name (only the executable name). The output in this column may\n"
+"contain spaces.\n"
+"(alias\n"
+"B<ucmd>, B<ucomm>).\n"
+"See also the\n"
+"B<args>\n"
+"format keyword, the\n"
+"B<-f>\n"
+"option, and the\n"
+"B<c>\n"
+"option.\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1194
+#, no-wrap
+msgid ""
+"When specified last, this column will extend to the edge of the display. If\n"
+"B<ps>\n"
+"can not determine display width, as when output is redirected (piped) into a\n"
+"file or another command, the output width is undefined (it may be 80,\n"
+"unlimited, determined by the\n"
+"B<TERM>\n"
+"variable, and so on). The\n"
+"B<COLUMNS>\n"
+"environment variable or\n"
+"B<--cols>\n"
+"option may be used to exactly determine the width in this case. The\n"
+"B<w>\\ orB<\\ -w>\n"
+"option may be also be used to adjust width."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1196
+#, fuzzy, no-wrap
+msgid "command"
+msgstr "Comandos de usuário"
+
+#. type: tbl table
+#: ../man/ps.1:1201
+#, no-wrap
+msgid ""
+"See\n"
+"B<args>.\n"
+"(alias\n"
+"B<args>, B<command>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1203
+#, fuzzy, no-wrap
+msgid "cp"
+msgstr "c"
+
+#. type: tbl table
+#: ../man/ps.1:1203
+#, fuzzy, no-wrap
+msgid "CP"
+msgstr "CPU"
+
+#. type: tbl table
+#: ../man/ps.1:1206
+#, no-wrap
+msgid ""
+"per-mill (tenths of a percent) CPU usage. (see\n"
+"B<%cpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1208
+#, no-wrap
+msgid "cputime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1211
+#, no-wrap
+msgid ""
+"cumulative CPU time, \"[DD-]hh:mm:ss\" format. (alias\n"
+"B<time>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1213
+#, no-wrap
+msgid "cputimes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1216
+#, no-wrap
+msgid ""
+"cumulative CPU time in seconds (alias\n"
+"B<times>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1218
+#, no-wrap
+msgid "cuc"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1218
+#, no-wrap
+msgid "%CUC"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1226
+#, no-wrap
+msgid ""
+"The CPU utilization of a process, including dead children, in an extended \"##.###\" format.\n"
+"(see also\n"
+"B<%cpu>,\n"
+"B<c>,\n"
+"B<cp>,\n"
+"B<cuu>,\n"
+"B<pcpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1228
+#, no-wrap
+msgid "cuu"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1228
+#, no-wrap
+msgid "%CUU"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1236
+#, no-wrap
+msgid ""
+"The CPU utilization of a process in an extended \"##.###\" format.\n"
+"(see also\n"
+"B<%cpu>,\n"
+"B<c>,\n"
+"B<cp>,\n"
+"B<cuc>,\n"
+"B<pcpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1238
+#, no-wrap
+msgid "drs"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1238
+#, no-wrap
+msgid "DRS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1247
+#, no-wrap
+msgid ""
+"data resident set size, the amount of private memory I<reserved> by a process.\n"
+"It is also known as DATA. Such memory may not yet be mapped to\n"
+"B<rss>\n"
+"but will always be included\n"
+"included in the\n"
+"B<vsz>\n"
+"amount.\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1249
+#, no-wrap
+msgid "egid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1249
+#, no-wrap
+msgid "EGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1252
+#, no-wrap
+msgid ""
+"effective group ID number of the process as a decimal integer. (alias\n"
+"B<gid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1254
+#, no-wrap
+msgid "egroup"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1254
+#, no-wrap
+msgid "EGROUP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1259
+#, no-wrap
+msgid ""
+"effective group ID of the process. This will be the textual group ID, if it\n"
+"can be obtained and the field width permits, or a decimal representation\n"
+"otherwise. (alias\n"
+"B<group>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1261
+#, no-wrap
+msgid "eip"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1261
+#, no-wrap
+msgid "EIP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1264
+#, no-wrap
+msgid ""
+"instruction pointer. As of kernel 4.9.xx will be zeroed out unless task is\n"
+"exiting or being core dumped."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1266
+#, no-wrap
+msgid "esp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1266
+#, no-wrap
+msgid "ESP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1269
+#, no-wrap
+msgid ""
+"stack pointer. As of kernel 4.9.xx will be zeroed out unless task is\n"
+"exiting or being core dumped."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1273
+#, no-wrap
+msgid "elapsed time since the process was started, in the form [[DD-]hh:]mm:ss."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1275
+#, no-wrap
+msgid "etimes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1277
+#, no-wrap
+msgid "elapsed time since the process was started, in seconds."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1279
+#, no-wrap
+msgid "euid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1279
+#, no-wrap
+msgid "EUID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1282
+#, no-wrap
+msgid ""
+"effective user ID (alias\n"
+"B<uid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1284
+#, fuzzy, no-wrap
+msgid "euser"
+msgstr "B<usuário >"
+
+#. type: tbl table
+#: ../man/ps.1:1284
+#, no-wrap
+msgid "EUSER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1290
+#, no-wrap
+msgid ""
+"effective user name. This will be the textual user ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise. The\n"
+"B<n>\n"
+"option can be used to force the decimal representation. (alias\n"
+"B<uname>, B<user>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1292
+#, no-wrap
+msgid "exe"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1292
+#, fuzzy, no-wrap
+msgid "EXE"
+msgstr "EXEMPLO"
+
+#. type: tbl table
+#: ../man/ps.1:1298
+#, no-wrap
+msgid ""
+"path to the executable. Useful if path cannot be printed via\n"
+"B<cmd>, B<comm>\n"
+"or\n"
+"B<args>\n"
+"format options."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1300 ../man/ps.1:1319 ../man/ps.1:1326
+#, no-wrap
+msgid "F"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1305
+#, no-wrap
+msgid ""
+"flags associated with the process, see the\n"
+"B<PROCESS FLAGS>\n"
+"section. (alias\n"
+"B<flag>, B<flags>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1307
+#, no-wrap
+msgid "fgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1307
+#, no-wrap
+msgid "FGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1310
+#, no-wrap
+msgid ""
+"filesystem access group\\ ID. (alias\n"
+"B<fsgid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1312
+#, no-wrap
+msgid "fgroup"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1312
+#, no-wrap
+msgid "FGROUP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1317
+#, no-wrap
+msgid ""
+"filesystem access group ID. This will be the textual group ID, if it can\n"
+"be obtained and the field width permits, or a decimal representation\n"
+"otherwise. (alias\n"
+"B<fsgroup>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1319
+#, no-wrap
+msgid "flag"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1324
+#, no-wrap
+msgid ""
+"see\n"
+"B<f>.\n"
+"(alias\n"
+"B<f>, B<flags>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1331
+#, no-wrap
+msgid ""
+"see\n"
+"B<f>.\n"
+"(alias\n"
+"B<f>, B<flag>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1333
+#, fuzzy, no-wrap
+msgid "fname"
+msgstr "nome"
+
+#. type: tbl table
+#: ../man/ps.1:1336
+#, no-wrap
+msgid ""
+"first 8 bytes of the base name of the process's executable file. The output\n"
+"in this column may contain spaces."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1338
+#, no-wrap
+msgid "fuid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1338
+#, no-wrap
+msgid "FUID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1341
+#, no-wrap
+msgid ""
+"filesystem access user ID. (alias\n"
+"B<fsuid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1343
+#, fuzzy, no-wrap
+msgid "fuser"
+msgstr "B<usuário >"
+
+#. type: tbl table
+#: ../man/ps.1:1343
+#, no-wrap
+msgid "FUSER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1346
+#, no-wrap
+msgid ""
+"filesystem access user ID. This will be the textual user ID, if it can be\n"
+"obtained and the field width permits, or a decimal representation otherwise."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1348
+#, no-wrap
+msgid "gid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1348
+#, no-wrap
+msgid "GID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1353
+#, no-wrap
+msgid ""
+"see\n"
+"B<egid>.\n"
+"(alias\n"
+"B<egid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1360
+#, no-wrap
+msgid ""
+"see\n"
+"B<egroup>.\n"
+"(alias\n"
+"B<egroup>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1362
+#, no-wrap
+msgid "ignored"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1362 ../man/ps.1:1693
+#, no-wrap
+msgid "IGNORED"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1368
+#, no-wrap
+msgid ""
+"mask of the ignored signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64 bits mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_ignore>, B<sigignore>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1370
+#, no-wrap
+msgid "ipcns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1370
+#, no-wrap
+msgid "IPCNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1376
+#, no-wrap
+msgid "label"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1376
+#, no-wrap
+msgid "LABEL"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1381
+#, no-wrap
+msgid ""
+"security label, most commonly used for SELinux context data. This is for\n"
+"the\n"
+"I<Mandatory Access Control>\n"
+"(\"MAC\") found on high-security systems."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1383
+#, no-wrap
+msgid "lstart"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1383 ../man/ps.1:1729
+#, no-wrap
+msgid "STARTED"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1386
+#, no-wrap
+msgid ""
+"time the command started. This will be in the form \"DDD mmm HH:MM:SS YYY\"\n"
+"unless changed by the B<-D> option."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1388
+#, no-wrap
+msgid "lsession"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1388
+#, no-wrap
+msgid "SESSION"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1391
+#, no-wrap
+msgid ""
+"displays the login session identifier of a process,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1393
+#, no-wrap
+msgid "luid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1393
+#, no-wrap
+msgid "LUID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1395
+#, no-wrap
+msgid "displays Login ID associated with a process."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1397
+#, no-wrap
+msgid "lwp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1397
+#, no-wrap
+msgid "LWP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1403
+#, no-wrap
+msgid ""
+"light weight process (thread) ID of the dispatchable entity (alias\n"
+"B<spid>,B<\\ tid>).\n"
+"See\n"
+"B<tid>\n"
+"for additional information."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1405
+#, no-wrap
+msgid "lxc"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1405
+#, no-wrap
+msgid "LXC"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1408
+#, no-wrap
+msgid ""
+"The name of the lxc container within which a task is running.\n"
+"If a process is not running inside a container, a dash ('-') will be shown."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1410
+#, no-wrap
+msgid "machine"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1410
+#, no-wrap
+msgid "MACHINE"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1413
+#, no-wrap
+msgid ""
+"displays the machine name for processes assigned to VM or container,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1415
+#, no-wrap
+msgid "MAJFLT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1417
+#, no-wrap
+msgid "The number of major page faults that have occurred with this process."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1419
+#, no-wrap
+msgid "MINFLT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1421
+#, no-wrap
+msgid "The number of minor page faults that have occurred with this process."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1423
+#, no-wrap
+msgid "mntns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1423
+#, no-wrap
+msgid "MNTNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1429
+#, no-wrap
+msgid "netns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1429
+#, no-wrap
+msgid "NETNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1435
+#, fuzzy, no-wrap
+msgid "ni"
+msgstr "n"
+
+#. type: tbl table
+#: ../man/ps.1:1441
+#, no-wrap
+msgid ""
+"nice value. This ranges from 19 (nicest) to -20 (not nice to others),\n"
+"see\n"
+"I<nice>(1).\n"
+"(alias\n"
+"B<nice>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1447
+#, no-wrap
+msgid ""
+"see\n"
+"B<ni>.B<(alias>\n"
+"B<ni>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1449
+#, no-wrap
+msgid "nlwp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1449
+#, no-wrap
+msgid "NLWP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1452
+#, no-wrap
+msgid ""
+"number of lwps (threads) in the process. (alias\n"
+"B<thcount>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1454
+#, no-wrap
+msgid "numa"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1454
+#, no-wrap
+msgid "NUMA"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1457
+#, no-wrap
+msgid ""
+"The node associated with the most recently used processor.\n"
+"A I<-1> means that NUMA information is unavailable."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1459
+#, no-wrap
+msgid "nwchan"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1459 ../man/ps.1:1950
+#, no-wrap
+msgid "WCHAN"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1463
+#, no-wrap
+msgid ""
+"address of the kernel function where the process is sleeping (use\n"
+"B<wchan>\n"
+"if you want the kernel function name)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1465
+#, no-wrap
+msgid "oom"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1465
+#, no-wrap
+msgid "OOM"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1468
+#, no-wrap
+msgid ""
+"Out of Memory Score. The value, ranging from 0 to +1000, used to select\n"
+"task(s) to kill when memory is exhausted."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1470
+#, no-wrap
+msgid "oomadj"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1470
+#, no-wrap
+msgid "OOMADJ"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1474
+#, no-wrap
+msgid ""
+"Out of Memory Adjustment Factor. The value is added to the current out of\n"
+"memory score which is then used to determine which task to kill when memory\n"
+"is exhausted."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1476
+#, no-wrap
+msgid "ouid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1476
+#, no-wrap
+msgid "OWNER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1479
+#, no-wrap
+msgid ""
+"displays the Unix user identifier of the owner of the session of a process,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1486
+#, no-wrap
+msgid ""
+"see\n"
+"B<%cpu>.\n"
+"(alias\n"
+"B<%cpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1488
+#, no-wrap
+msgid "pending"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1488 ../man/ps.1:1679
+#, no-wrap
+msgid "PENDING"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1500
+#, no-wrap
+msgid ""
+"mask of the pending signals. See\n"
+"I<signal>(7).\n"
+"Signals pending on the process are distinct from signals pending on\n"
+"individual threads. Use the\n"
+"B<m>\n"
+"option or the\n"
+"B<-m>\n"
+"option to see both. According to the width of the field, a 32 or 64 bits\n"
+"mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1506
+#, no-wrap
+msgid ""
+"process group ID or, equivalently, the process ID of the process group\n"
+"leader. (alias\n"
+"B<pgrp>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1508
+#, no-wrap
+msgid "PGRP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1513
+#, no-wrap
+msgid ""
+"see\n"
+"B<pgid>.\n"
+"(alias\n"
+"B<pgid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1518
+#, no-wrap
+msgid ""
+"a number representing the process ID (alias\n"
+"B<tgid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1520
+#, no-wrap
+msgid "pidns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1520
+#, no-wrap
+msgid "PIDNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1526
+#, no-wrap
+msgid "pmem"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1531
+#, no-wrap
+msgid ""
+"see\n"
+"B<%mem>.\n"
+"(alias\n"
+"B<%mem>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1533
+#, no-wrap
+msgid "policy"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1533
+#, no-wrap
+msgid "POL"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1537
+#, no-wrap
+msgid ""
+"scheduling class of the process. (alias\n"
+"B<class>, B<cls>).\n"
+"Possible values are:\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1561
+#, no-wrap
+msgid "parent process ID."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1563
+#, no-wrap
+msgid "pri"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1563
+#, no-wrap
+msgid "PRI"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1565
+#, no-wrap
+msgid "priority of the process. Higher number means higher priority."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1567
+#, no-wrap
+msgid "psr"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1567
+#, no-wrap
+msgid "PSR"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1569
+#, no-wrap
+msgid "processor that process last executed on."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1571
+#, no-wrap
+msgid "pss"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1571
+#, fuzzy, no-wrap
+#| msgid "PS"
+msgid "PSS"
+msgstr "PS"
+
+#. type: tbl table
+#: ../man/ps.1:1574
+#, no-wrap
+msgid ""
+"Proportional share size, the non-swapped physical memory, with shared memory\n"
+"proportionally accounted to all tasks mapping it."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1576
+#, no-wrap
+msgid "rbytes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1576
+#, no-wrap
+msgid "RBYTES"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1578
+#, no-wrap
+msgid "Number of bytes which this process really did cause to be fetched from the storage layer."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1580
+#, no-wrap
+msgid "rchars"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1580
+#, no-wrap
+msgid "RCHARS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1582
+#, no-wrap
+msgid "Number of bytes which this task has caused to be read from storage."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1584
+#, no-wrap
+msgid "rgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1584
+#, no-wrap
+msgid "RGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1586
+#, no-wrap
+msgid "real group ID."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1591
+#, no-wrap
+msgid ""
+"real group name. This will be the textual group ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1593
+#, no-wrap
+msgid "rops"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1593
+#, no-wrap
+msgid "ROPS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1596
+#, no-wrap
+msgid ""
+"Number of read I/O operations—that is, system calls such as\n"
+"B<read>(2) and B<pread>(2)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1598 ../man/ps.1:1604
+#, no-wrap
+msgid "RSS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1602
+#, no-wrap
+msgid ""
+"resident set size, the non-swapped physical memory that a task has used (in\n"
+"kilobytes). (alias\n"
+"B<rssize>, B<rsz>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1604
+#, no-wrap
+msgid "rssize"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1609
+#, no-wrap
+msgid ""
+"see\n"
+"B<rss>.\n"
+"(alias\n"
+"B<rss>, B<rsz>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1611
+#, no-wrap
+msgid "rsz"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1611
+#, no-wrap
+msgid "RSZ"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1616
+#, no-wrap
+msgid ""
+"see\n"
+"B<rss>.\n"
+"(alias\n"
+"B<rss>, B<rssize>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1618
+#, no-wrap
+msgid "rtprio"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1618
+#, no-wrap
+msgid "RTPRIO"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1620
+#, no-wrap
+msgid "realtime priority."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1622
+#, no-wrap
+msgid "ruid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1622
+#, no-wrap
+msgid "RUID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1624
+#, no-wrap
+msgid "real user ID."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1629
+#, no-wrap
+msgid ""
+"real user ID. This will be the textual user ID, if it can be obtained and\n"
+"the field width permits, or a decimal representation otherwise."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1638
+#, no-wrap
+msgid ""
+"minimal state display (one character). See section\n"
+"B<PROCESS STATE CODES>\n"
+"for the different values. See also\n"
+"B<stat>\n"
+"if you want additional information displayed. (alias\n"
+"B<state>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1640
+#, no-wrap
+msgid "sched"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1640
+#, no-wrap
+msgid "SCH"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1644
+#, no-wrap
+msgid ""
+"scheduling policy of the process. The policies SCHED_OTHER (SCHED_NORMAL),\n"
+"SCHED_FIFO, SCHED_RR, SCHED_BATCH, SCHED_ISO, SCHED_IDLE and SCHED_DEADLINE are\n"
+"respectively displayed as 0, 1, 2, 3, 4, 5 and 6."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1646
+#, no-wrap
+msgid "seat"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1646
+#, no-wrap
+msgid "SEAT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1650
+#, no-wrap
+msgid ""
+"displays the identifier associated with all hardware devices assigned\n"
+"to a specific workplace,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1652
+#, no-wrap
+msgid "sess"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1652
+#, no-wrap
+msgid "SESS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1655
+#, no-wrap
+msgid ""
+"session ID or, equivalently, the process ID of the session leader. (alias\n"
+"B<session>, B<sid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1657
+#, no-wrap
+msgid "sgi_p"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1660
+#, no-wrap
+msgid ""
+"processor that the process is currently executing on. Displays \"*\" if the\n"
+"process is not currently running or runnable."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1662
+#, no-wrap
+msgid "sgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1662
+#, no-wrap
+msgid "SGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1665
+#, no-wrap
+msgid ""
+"saved group ID. (alias\n"
+"B<svgid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1667
+#, no-wrap
+msgid "sgroup"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1667
+#, no-wrap
+msgid "SGROUP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1670
+#, no-wrap
+msgid ""
+"saved group name. This will be the textual group ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1672
+#, no-wrap
+msgid "sid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1672
+#, no-wrap
+msgid "SID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1677
+#, no-wrap
+msgid ""
+"see\n"
+"B<sess>.\n"
+"(alias\n"
+"B<sess>, B<session>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1679
+#, no-wrap
+msgid "sig"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1684
+#, no-wrap
+msgid ""
+"see\n"
+"B<pending>.\n"
+"(alias\n"
+"B<pending>, B<sig_pend>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1686
+#, no-wrap
+msgid "sigcatch"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1691
+#, no-wrap
+msgid ""
+"see\n"
+"B<caught>.\n"
+"(alias\n"
+"B<caught>, B<sig_catch>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1693
+#, no-wrap
+msgid "sigignore"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1698
+#, no-wrap
+msgid ""
+"see\n"
+"B<ignored>.\n"
+"(alias\n"
+"B<ignored>, B<sig_ignore>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1700
+#, no-wrap
+msgid "sigmask"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1705
+#, no-wrap
+msgid ""
+"see\n"
+"B<blocked>.\n"
+"(alias\n"
+"B<blocked>, B<sig_block>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1707
+#, fuzzy, no-wrap
+msgid "SIZE"
+msgstr "TAM OBJ"
+
+#. type: tbl table
+#: ../man/ps.1:1711
+#, no-wrap
+msgid ""
+"approximate amount of swap space that would be required if the process were\n"
+"to dirty all writable pages and then be swapped out. This number is very\n"
+"rough!"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1713
+#, no-wrap
+msgid "slice"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1713
+#, no-wrap
+msgid "SLICE"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1716
+#, no-wrap
+msgid ""
+"displays the slice unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1718
+#, no-wrap
+msgid "spid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1718
+#, no-wrap
+msgid "SPID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1723
+#, no-wrap
+msgid ""
+"see\n"
+"B<lwp>.\n"
+"(alias\n"
+"B<lwp>, B<tid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1725
+#, no-wrap
+msgid "stackp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1725
+#, no-wrap
+msgid "STACKP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1727
+#, no-wrap
+msgid "address of the bottom (start) of stack for the process."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1729
+#, no-wrap
+msgid "start"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1734
+#, no-wrap
+msgid ""
+"time the command started. If the process was started less than 24 hours ago,\n"
+"the output format is \"HH:MM:SS\", else it is \"\\ \\ Mmm\\ dd\" (where Mmm is a\n"
+"three-letter month name). See also\n"
+"B<bsdstart>, B<start>, B<start_time>, and B<stime>."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1743
+#, no-wrap
+msgid ""
+"starting time or date of the process. Only the year will be displayed if the\n"
+"process was not started the same year\n"
+"B<ps>\n"
+"was invoked, or \"MmmDD\" if it was not started the same day, or \"HH:MM\"\n"
+"otherwise. See also\n"
+"B<bsdstart>, B<start>, B<lstart>, and B<stime>."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1745
+#, no-wrap
+msgid "stat"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1745
+#, fuzzy, no-wrap
+msgid "STAT"
+msgstr "VMSTAT"
+
+#. type: tbl table
+#: ../man/ps.1:1751
+#, no-wrap
+msgid ""
+"multi-character process state. See section\n"
+"B<PROCESS STATE CODES>\n"
+"for the different values meaning. See also\n"
+"B<s>\\ andB<\\ state>\n"
+"if you just want the first character displayed."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1753
+#, no-wrap
+msgid "state"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1756
+#, no-wrap
+msgid ""
+"see\n"
+"B<s>.\\& (aliasB<\\ s>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1758
+#, no-wrap
+msgid "stime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1758
+#, fuzzy, no-wrap
+msgid "STIME"
+msgstr "UPTIME"
+
+#. type: tbl table
+#: ../man/ps.1:1760
+#, no-wrap
+msgid "see B<start_time>. (alias B<start_time>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1762
+#, no-wrap
+msgid "suid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1762
+#, no-wrap
+msgid "SUID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1765
+#, no-wrap
+msgid ""
+"saved user ID. (alias\n"
+"B<svuid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1767
+#, no-wrap
+msgid "supgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1767
+#, no-wrap
+msgid "SUPGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1770
+#, no-wrap
+msgid ""
+"group ids of supplementary groups, if any. See\n"
+"B<getgroups>(2)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1772
+#, no-wrap
+msgid "supgrp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1772
+#, no-wrap
+msgid "SUPGRP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1775
+#, no-wrap
+msgid ""
+"group names of supplementary groups, if any. See\n"
+"B<getgroups>(2)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1777
+#, fuzzy, no-wrap
+msgid "suser"
+msgstr "B<usuário >"
+
+#. type: tbl table
+#: ../man/ps.1:1777
+#, no-wrap
+msgid "SUSER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1781
+#, no-wrap
+msgid ""
+"saved user name. This will be the textual user ID, if it can be obtained and\n"
+"the field width permits, or a decimal representation otherwise. (alias\n"
+"B<svuser>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1783
+#, no-wrap
+msgid "svgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1783
+#, no-wrap
+msgid "SVGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1788
+#, no-wrap
+msgid ""
+"see\n"
+"B<sgid>.\n"
+"(alias\n"
+"B<sgid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1790
+#, no-wrap
+msgid "svuid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1790
+#, no-wrap
+msgid "SVUID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1795
+#, no-wrap
+msgid ""
+"see\n"
+"B<suid>.\n"
+"(alias\n"
+"B<suid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1797
+#, fuzzy, no-wrap
+msgid "sz"
+msgstr "s"
+
+#. type: tbl table
+#: ../man/ps.1:1797
+#, no-wrap
+msgid "SZ"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1802
+#, no-wrap
+msgid ""
+"size in physical pages of the core image of the process. This includes text,\n"
+"data, and stack space. Device mappings are currently excluded; this is\n"
+"subject to change. See\n"
+"B<vsz>\\ andB<\\ rss>."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1804
+#, no-wrap
+msgid "tgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1804
+#, no-wrap
+msgid "TGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1808
+#, no-wrap
+msgid ""
+"a number representing the thread group to which a task belongs (alias\n"
+"B<pid>).\n"
+"It is the process ID of the thread group leader."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1810
+#, fuzzy, no-wrap
+msgid "thcount"
+msgstr "I<contagem>"
+
+#. type: tbl table
+#: ../man/ps.1:1810
+#, no-wrap
+msgid "THCNT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1816
+#, no-wrap
+msgid ""
+"see\n"
+"B<nlwp>.\n"
+"(alias\n"
+"B<nlwp>).\n"
+"number of kernel threads owned by the process."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1818
+#, no-wrap
+msgid "tid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1818
+#, no-wrap
+msgid "TID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1825
+#, no-wrap
+msgid ""
+"the unique number representing a dispatchable entity (alias\n"
+"B<spid>, B<tid>).\n"
+"This value may also appear as: a process ID (pid); a process group ID (pgrp);\n"
+"a session ID for the session leader (sid); a thread group ID for the thread\n"
+"group leader (tgid); and a tty process group ID for the process group leader\n"
+"(tpgid)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1830
+#, no-wrap
+msgid ""
+"cumulative CPU\\ time, \"[DD-]HH:MM:SS\" format. (alias\n"
+"B<cputime>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1832
+#, fuzzy, no-wrap
+#| msgid "time"
+msgid "timens"
+msgstr "time"
+
+#. type: tbl table
+#: ../man/ps.1:1832
+#, fuzzy, no-wrap
+msgid "TIMENS"
+msgstr "UPTIME"
+
+#. type: tbl table
+#: ../man/ps.1:1838
+#, no-wrap
+msgid "times"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1841
+#, no-wrap
+msgid ""
+"cumulative CPU\\ time in seconds (alias\n"
+"B<cputimes>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1843
+#, fuzzy, no-wrap
+msgid "tname"
+msgstr "nome"
+
+#. type: tbl table
+#: ../man/ps.1:1846
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tt>, B<tty>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1848
+#, no-wrap
+msgid "TPGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1851
+#, no-wrap
+msgid ""
+"ID of the foreground process group on the tty (terminal) that the process is\n"
+"connected to, or -1 if the process is not connected to a tty."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1853
+#, no-wrap
+msgid "trs"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1853
+#, fuzzy, no-wrap
+msgid "TRS"
+msgstr "AUTORES"
+
+#. type: tbl table
+#: ../man/ps.1:1855
+#, no-wrap
+msgid "text resident set size, the amount of physical memory devoted to executable code."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1857
+#, no-wrap
+msgid "tt"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1857 ../man/ps.1:1862
+#, no-wrap
+msgid "TT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1860
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tname>, B<tty>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1865
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tname>, B<tt>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1867
+#, no-wrap
+msgid "ucmd"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1872
+#, no-wrap
+msgid ""
+"see\n"
+"B<comm>.\n"
+"(alias\n"
+"B<comm>, B<ucomm>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1874
+#, no-wrap
+msgid "ucomm"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1879
+#, no-wrap
+msgid ""
+"see\n"
+"B<comm>.\n"
+"(alias\n"
+"B<comm>, B<ucmd>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1881
+#, no-wrap
+msgid "UID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1886
+#, no-wrap
+msgid ""
+"see\n"
+"B<euid>.\n"
+"(alias\n"
+"B<euid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1888
+#, fuzzy, no-wrap
+msgid "uname"
+msgstr "nome"
+
+#. type: tbl table
+#: ../man/ps.1:1893
+#, no-wrap
+msgid ""
+"see\n"
+"B<euser>.\n"
+"(alias\n"
+"B<euser>, B<user>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1895
+#, no-wrap
+msgid "unit"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1895
+#, no-wrap
+msgid "UNIT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1898
+#, no-wrap
+msgid ""
+"displays unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1905
+#, no-wrap
+msgid ""
+"see\n"
+"B<euser>.\n"
+"(alias\n"
+"B<euser>, B<uname>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1907
+#, no-wrap
+msgid "userns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1907
+#, no-wrap
+msgid "USERNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1913
+#, no-wrap
+msgid "uss"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1913
+#, fuzzy, no-wrap
+#| msgid "USE"
+msgid "USS"
+msgstr "USO"
+
+#. type: tbl table
+#: ../man/ps.1:1916
+#, no-wrap
+msgid ""
+"Unique set size, the non-swapped physical memory, which\n"
+"is not shared with an another task."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1918
+#, no-wrap
+msgid "utsns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1918
+#, no-wrap
+msgid "UTSNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1924
+#, no-wrap
+msgid "uunit"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1924
+#, no-wrap
+msgid "UUNIT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1927
+#, no-wrap
+msgid ""
+"displays user unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1934
+#, no-wrap
+msgid ""
+"see\n"
+"B<vsz>.\n"
+"(alias\n"
+"B<vsz>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1940
+#, no-wrap
+msgid ""
+"virtual memory size of the process in KiB (1024-byte units). Device\n"
+"mappings are currently excluded; this is subject to change. (alias\n"
+"B<vsize>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1942
+#, no-wrap
+msgid "wbytes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1942
+#, no-wrap
+msgid "WBYTES"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1944
+#, no-wrap
+msgid "Number of bytes which this process caused to be sent to the storage layer."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1946
+#, no-wrap
+msgid "wcbytes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1946
+#, no-wrap
+msgid "WCBYTES"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1948
+#, fuzzy, no-wrap
+#| msgid "number of active objects"
+msgid "Number of cancelled write bytes."
+msgstr "número de objetos ativos"
+
+#. type: tbl table
+#: ../man/ps.1:1950
+#, no-wrap
+msgid "wchan"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1952
+#, no-wrap
+msgid "name of the kernel function in which the process is sleeping."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1954
+#, no-wrap
+msgid "wchars"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1954
+#, no-wrap
+msgid "WCHARS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1956
+#, no-wrap
+msgid "Number of bytes which this task has caused, or shall cause to be written to disk."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1958
+#, no-wrap
+msgid "wops"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1958
+#, no-wrap
+msgid "WOPS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1961
+#, no-wrap
+msgid ""
+"Number of write I/O operations—that is, system calls such as\n"
+"B<write>(2) and B<pwrite>(2)."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:1964
+#, fuzzy, no-wrap
+msgid "ENVIRONMENT VARIABLES"
+msgstr "AMBIENTE"
+
+#. type: Plain text
+#: ../man/ps.1:1967
+msgid "The following environment variables could affect B<ps>:"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1967
+#, no-wrap
+msgid "B<COLUMNS>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1970
+msgid "Override default display width."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1970
+#, no-wrap
+msgid "B<LINES>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1973
+msgid "Override default display height."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1973
+#, no-wrap
+msgid "B<PS_PERSONALITY>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1978 ../man/ps.1:1983
+msgid ""
+"Set to one of posix, old, linux, bsd, sun, digital...\\& (see section "
+"B<PERSONALITY> below)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1978
+#, no-wrap
+msgid "B<CMD_ENV>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1983
+#, no-wrap
+msgid "B<I_WANT_A_BROKEN_PS>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1986
+msgid "Force obsolete command line interpretation."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1986
+#, no-wrap
+msgid "B<LC_TIME>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1989
+msgid "Date format."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1989
+#, no-wrap
+msgid "B<LIBPROC_HIDE_KERNEL>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1996
+msgid ""
+"Set this to any value to hide kernel threads normally displayed with the B<-"
+"e> option. This is equivalent to selecting B<--ppid 2 -p 2 --deselect> "
+"instead. Also works in BSD mode."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1996
+#, no-wrap
+msgid "B<PS_COLORS>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1999
+msgid "Not currently supported."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1999
+#, no-wrap
+msgid "B<PS_FORMAT>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2010
+msgid ""
+"Default output format override. You may set this to a format string of the "
+"type used for the B<-o> option. The B<DefSysV> and B<DefBSD> values are "
+"particularly useful."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:2010
+#, no-wrap
+msgid "B<POSIXLY_CORRECT>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2013 ../man/ps.1:2020
+msgid "Don't find excuses to ignore bad \"features\"."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:2013
+#, no-wrap
+msgid "B<POSIX2>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2017
+msgid "When set to \"on\", acts as B<POSIXLY_CORRECT>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:2017
+#, no-wrap
+msgid "B<UNIX95>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:2020
+#, no-wrap
+msgid "B<_XPG>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2026
+msgid "Cancel B<CMD_ENV>=I<irix> non-standard behavior."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2034
+msgid ""
+"In general, it is a bad idea to set these variables. The one exception is "
+"B<CMD_ENV> or B<PS_PERSONALITY>, which could be set to Linux for normal "
+"systems. Without that setting, B<ps> follows the useless and bad parts of "
+"the Unix98 standard."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:2034
+#, no-wrap
+msgid "PERSONALITY"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2037
+#, no-wrap
+msgid "390"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2037
+#, no-wrap
+msgid "like the OS/390 OpenEdition B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2038
+#, no-wrap
+msgid "aix"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2038
+#, no-wrap
+msgid "like AIX B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2039
+#, no-wrap
+msgid "bsd"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2039
+#, no-wrap
+msgid "like FreeBSD B<ps> (totally non-standard)"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2040
+#, no-wrap
+msgid "compaq"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2040
+#, no-wrap
+msgid "like Digital Unix B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2041
+#, no-wrap
+msgid "debian"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2041 ../man/ps.1:2043
+#, no-wrap
+msgid "like the old Debian B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2042
+#, no-wrap
+msgid "digital"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2042
+#, no-wrap
+msgid "like Tru64 (was Digital\\ Unix, was OSF/1) B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2043
+#, no-wrap
+msgid "gnu"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2044
+#, fuzzy, no-wrap
+msgid "hp"
+msgstr "p"
+
+#. type: tbl table
+#: ../man/ps.1:2044 ../man/ps.1:2045
+#, no-wrap
+msgid "like HP-UX B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2045
+#, no-wrap
+msgid "hpux"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2046
+#, no-wrap
+msgid "irix"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2046 ../man/ps.1:2053
+#, no-wrap
+msgid "like Irix B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2047
+#, no-wrap
+msgid "linux"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2047
+#, no-wrap
+msgid "***** B<recommended> *****"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2048
+#, no-wrap
+msgid "old"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2048
+#, no-wrap
+msgid "like the original Linux B<ps> (totally non-standard)"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2049
+#, no-wrap
+msgid "os390"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2049 ../man/ps.1:2051
+#, no-wrap
+msgid "like OS/390 Open Edition B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2050
+#, no-wrap
+msgid "posix"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2050 ../man/ps.1:2056 ../man/ps.1:2057 ../man/ps.1:2059
+#: ../man/ps.1:2060 ../man/ps.1:2061
+#, no-wrap
+msgid "standard"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2051
+#, no-wrap
+msgid "s390"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2052
+#, no-wrap
+msgid "sco"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2052
+#, no-wrap
+msgid "like SCO B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2053
+#, no-wrap
+msgid "sgi"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2054
+#, no-wrap
+msgid "solaris2"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2054
+#, no-wrap
+msgid "like Solaris 2+ (SunOS 5) B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2055
+#, no-wrap
+msgid "sunos4"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2055
+#, no-wrap
+msgid "like SunOS 4 (Solaris 1) B<ps> (totally non-standard)"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2056
+#, no-wrap
+msgid "svr4"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2057
+#, no-wrap
+msgid "sysv"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2058
+#, no-wrap
+msgid "tru64"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2058
+#, no-wrap
+msgid "like Tru64 (was Digital Unix, was OSF/1) B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2059
+#, no-wrap
+msgid "unix"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2060
+#, no-wrap
+msgid "unix95"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2061
+#, no-wrap
+msgid "unix98"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2069
+msgid ""
+"The fields B<bsdstart> and B<start> will only show the abbreviated month "
+"name in English. The fields B<lstart> and B<stime> will show the abbreviated "
+"month name in the configured locale but may exceed the column width due to "
+"the different lengths for abbreviated month and day names across languages."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2076
+#, fuzzy
+msgid "B<pgrep>(1), B<pstree>(1), B<top>(1), B<strftime>(3), B<proc>(5)."
+msgstr "B<free>(1), B<ps>(1), B<top>(1), B<vmstat>(8)"
+
+#. type: Plain text
+#: ../man/ps.1:2080
+msgid "This B<ps> conforms to:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2084
+msgid "Version 2 of the Single Unix Specification"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2086
+msgid "The Open Group Technical Standard Base Specifications, Issue\\ 6"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2088
+msgid "IEEE Std 1003.1, 2004\\ Edition"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2090
+msgid "X/Open System Interfaces Extension [UP\\ XSI]"
+msgstr ""
+
+#. type: IP
+#: ../man/ps.1:2090
+#, no-wrap
+msgid "5"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2092
+msgid "ISO/IEC 9945:2003"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2120
+msgid ""
+"B<ps> was originally written by E<.MT lankeste@\\:fwi.\\:uva.\\:nl> Branko "
+"Lankester E<.ME .> E<.MT johnsonm@\\:redhat.\\:com> Michael K. Johnson E<."
+"ME> re-wrote it significantly to use the proc filesystem, changing a few "
+"things in the process. E<.MT mjshield@\\:nyx.\\:cs.\\:du.\\:edu> Michael "
+"Shields E<.ME> added the pid-list feature. E<.MT cblake@\\:bbn.\\:com> "
+"Charles Blake E<.ME> added multi-level sorting, the dirent-style library, "
+"the device name-to-number mmaped database, the approximate binary search "
+"directly on System.map, and many code and documentation cleanups. David "
+"Mossberger-Tang wrote the generic BFD support for psupdate. E<.MT albert@\\:"
+"users.\\:sf.\\:net> Albert Cahalan E<.ME> rewrote ps for full Unix98 and BSD "
+"support, along with some ugly hacks for obsolete and foreign syntax."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2124
+#, fuzzy
+msgid ""
+"Please send bug reports to E<.MT procps@\\:freelists.\\:org> E<.ME .> No "
+"subscription is required or suggested."
+msgstr ""
+"Por favor, envie relatórios de erros para E<.MT procps@freelists.org> E<.ME>"
+
+#. Setup ////////////////////////////////////////////////////////////////
+#. Commonly used strings (for consistency) ----------
+#. - our em-dashes
+#. type: ds Em
+#: ../man/top.1:11
+#, no-wrap
+msgid "\\ --\\ "
+msgstr ""
+
+#. type: ds EM
+#: ../man/top.1:12
+#, no-wrap
+msgid "B<\\ --\\ >"
+msgstr ""
+
+#. - our program name (makes great grammar)
+#. type: ds We
+#: ../man/top.1:14
+#, no-wrap
+msgid "top"
+msgstr ""
+
+#. type: ds WE
+#: ../man/top.1:15
+#, fuzzy, no-wrap
+msgid "B<top>"
+msgstr "B<total>"
+
+#. - other misc strs for consistent usage
+#. type: ds F
+#: ../man/top.1:17
+#, no-wrap
+msgid "I<Off>"
+msgstr ""
+
+#. type: ds O
+#: ../man/top.1:18
+#, no-wrap
+msgid "I<On>"
+msgstr ""
+
+#. type: ds AK
+#: ../man/top.1:20
+#, no-wrap
+msgid "asterisk (`*')"
+msgstr ""
+
+#. type: ds AM
+#: ../man/top.1:21
+#, no-wrap
+msgid "alternate-display mode"
+msgstr ""
+
+#. type: ds AS
+#: ../man/top.1:22
+#, no-wrap
+msgid "auxiliary storage"
+msgstr ""
+
+#. type: ds CF
+#: ../man/top.1:23
+#, fuzzy, no-wrap
+msgid "configuration file"
+msgstr "Lê a configuração a partir do I<arquivo>"
+
+#. type: ds CG
+#: ../man/top.1:24
+#, no-wrap
+msgid "`current' window/field group"
+msgstr ""
+
+#. type: ds CI
+#: ../man/top.1:25
+#, no-wrap
+msgid "interactive command"
+msgstr ""
+
+#. type: ds CO
+#: ../man/top.1:26
+#, no-wrap
+msgid "command-line option"
+msgstr ""
+
+#. type: ds CT
+#: ../man/top.1:27
+#, no-wrap
+msgid "command toggle"
+msgstr ""
+
+#. type: ds CW
+#: ../man/top.1:28
+#, no-wrap
+msgid "`current' window"
+msgstr ""
+
+#. type: ds FG
+#: ../man/top.1:29
+#, no-wrap
+msgid "field group"
+msgstr ""
+
+#. type: ds FM
+#: ../man/top.1:30
+#, no-wrap
+msgid "full-screen mode"
+msgstr ""
+
+#. type: ds KA
+#: ../man/top.1:31
+#, no-wrap
+msgid "arrow key"
+msgstr ""
+
+#. type: ds KS
+#: ../man/top.1:32
+#, no-wrap
+msgid "scrolling key"
+msgstr ""
+
+#. type: ds MP
+#: ../man/top.1:33
+#, no-wrap
+msgid "physical memory"
+msgstr ""
+
+#. type: ds MS
+#: ../man/top.1:34
+#, no-wrap
+msgid "swap file"
+msgstr ""
+
+#. type: ds MV
+#: ../man/top.1:35
+#, no-wrap
+msgid "virtual memory"
+msgstr ""
+
+#. type: ds NT
+#: ../man/top.1:36
+#, no-wrap
+msgid "B<Note>:"
+msgstr ""
+
+#. type: ds Pu
+#: ../man/top.1:38
+#, no-wrap
+msgid "cpu"
+msgstr ""
+
+#. type: ds SA
+#: ../man/top.1:39
+#, no-wrap
+msgid "summary area"
+msgstr ""
+
+#. type: ds TA
+#: ../man/top.1:40
+#, no-wrap
+msgid "task area"
+msgstr ""
+
+#. type: ds TD
+#: ../man/top.1:41
+#, no-wrap
+msgid "task display"
+msgstr ""
+
+#. type: ds TT
+#: ../man/top.1:42
+#, no-wrap
+msgid "B<processes> or B<threads>"
+msgstr ""
+
+#. type: ds TW
+#: ../man/top.1:43
+#, no-wrap
+msgid "task window"
+msgstr ""
+
+#. Reference to the various widths/sizes ------------
+#. - the max screen width limit
+#. type: ds WX
+#: ../man/top.1:46
+#, no-wrap
+msgid "512"
+msgstr ""
+
+#. - the header width w/ all fields
+#. type: ds WF
+#: ../man/top.1:48
+#, no-wrap
+msgid "approximately 250"
+msgstr ""
+
+#. - pid monitoring limit
+#. Xref's that depend on/mention other stuff --------
+#. type: ds Xa
+#: ../man/top.1:51
+#, no-wrap
+msgid "see"
+msgstr ""
+
+#. type: ds XC
+#: ../man/top.1:52
+#, no-wrap
+msgid "See the"
+msgstr ""
+
+#. type: ds Xc
+#: ../man/top.1:53
+#, no-wrap
+msgid "see the"
+msgstr ""
+
+#. type: ds XT
+#: ../man/top.1:54
+#, no-wrap
+msgid "See topic"
+msgstr ""
+
+#. type: ds Xt
+#: ../man/top.1:55
+#, no-wrap
+msgid "see topic"
+msgstr ""
+
+#. type: ds XX
+#: ../man/top.1:56
+#, no-wrap
+msgid "See `OVERVIEW, Linux Memory Types' for additional details"
+msgstr ""
+
+#. type: ds ZX
+#: ../man/top.1:57
+#, no-wrap
+msgid "Accessing smaps values is 10x more costly than other memory statistics and data for other users requires root privileges"
+msgstr ""
+
+#. type: TH
+#: ../man/top.1:62
+#, fuzzy, no-wrap
+msgid "TOP"
+msgstr "SLABTOP"
+
+#. type: TH
+#: ../man/top.1:62
+#, no-wrap
+msgid "August 2023"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:70
+msgid "top - display Linux processes"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:75
+msgid "\\*(WE [options]"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:85
+msgid ""
+"The \\*(WE program provides a dynamic real-time view of a running system. "
+"It can displayB< system> summary information as well as a list of \\*(TT "
+"currently being managed by the Linux kernel. The types of system summary "
+"information shown and the types, order and size of information displayed for "
+"processes are all user configurable and that configuration can be made "
+"persistent across restarts."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:93
+msgid ""
+"The program provides a limited interactive interface for process "
+"manipulation as well as a much more extensive interface for personal "
+"configuration \\*(Em encompassing every aspect of its operation. And while "
+"\\*(WE is referred to throughout this document, you are free to name the "
+"program anything you wish. That new name, possibly an alias, will then be "
+"reflected on \\*(We's display and used when reading and writing a \\*(CF."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:95
+#, no-wrap
+msgid "OVERVIEW"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:98
+#, no-wrap
+msgid "Documentation"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:101
+msgid "The remaining Table of Contents"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:141
+#, no-wrap
+msgid ""
+" OVERVIEW\n"
+" Operation\n"
+" Linux Memory Types\n"
+" 1. COMMAND-LINE Options\n"
+" 2. SUMMARY Display\n"
+" a. UPTIME and LOAD Averages\n"
+" b. TASK and CPU States\n"
+" c. MEMORY Usage\n"
+" 3. FIELDS / Columns Display\n"
+" a. DESCRIPTIONS of Fields\n"
+" b. MANAGING Fields\n"
+" 4. INTERACTIVE Commands\n"
+" a. GLOBAL Commands\n"
+" b. SUMMARY AREA Commands\n"
+" c. TASK AREA Commands\n"
+" 1. Appearance\n"
+" 2. Content\n"
+" 3. Size\n"
+" 4. Sorting\n"
+" d. COLOR Mapping\n"
+" 5. ALTERNATE-DISPLAY Provisions\n"
+" a. WINDOWS Overview\n"
+" b. COMMANDS for Windows\n"
+" c. SCROLLING a Window\n"
+" d. SEARCHING in a Window\n"
+" e. FILTERING in a Window\n"
+" 6. FILES\n"
+" a. PERSONAL Configuration File\n"
+" b. ADDING INSPECT Entries\n"
+" c. SYSTEM Configuration File\n"
+" d. SYSTEM Restrictions File\n"
+" 7. ENVIRONMENT VARIABLE(S)\n"
+" 8. STUPID TRICKS Sampler\n"
+" a. Kernel Magic\n"
+" b. Bouncing Windows\n"
+" c. The Big Bird Window\n"
+" d. The Ol' Switcheroo\n"
+" 9. BUGS, 10. SEE Also\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:144
+#, no-wrap
+msgid "Operation"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:150
+msgid ""
+"When operating \\*(We, the two most important keys are the help (h or ?) "
+"key and quit (`q') key. Alternatively, you could simply use the traditional "
+"interrupt key (^C) when you're done."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:157
+msgid ""
+"When started for the first time, you'll be presented with these traditional "
+"elements on the main \\*(We screen: 1) Summary Area; 2) Fields/Columns "
+"Header; 3) Task Area. Each of these will be explored in the sections that "
+"follow. There is also an Input/Message line between the Summary Area and "
+"Columns Header which needs no further explanation."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:165
+msgid ""
+"The main \\*(We screen is I<generally> quite adaptive to changes in terminal "
+"dimensions under X-Windows. Other \\*(We screens may be less so, especially "
+"those with static text. It ultimately depends, however, on your particular "
+"window manager and terminal emulator. There may be occasions when their "
+"view of terminal size and current contents differs from \\*(We's view, which "
+"is always based on operating system calls."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:170
+msgid ""
+"Following any re-size operation, if a \\*(We screen is corrupted, appears "
+"incomplete or disordered, simply typing something innocuous like a "
+"punctuation character or cursor motion key will usually restore it. In "
+"extreme cases, the following sequence almost certainly will:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:175
+#, no-wrap
+msgid ""
+" I<key/cmd objective >\n"
+" ^Z B<suspend> \\*(We\n"
+" fg B<resume> \\*(We\n"
+" E<lt>LeftE<gt> force a screen B<redraw> (if necessary)\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:179
+msgid ""
+"But if the display is still corrupted, there is one more step you could "
+"try. Insert this command after \\*(We has been suspended but before "
+"resuming it."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:182
+#, no-wrap
+msgid ""
+" I<key/cmd objective >\n"
+" reset restore your B<terminal settings>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:192
+msgid ""
+"\\*(NT the width of \\*(We's display will be limited to \\*(WX positions. "
+"Displaying all fields requires \\*(WF characters. Remaining screen width is "
+"usually allocated to any variable width columns currently visible. The "
+"variable width columns, such as COMMAND, are noted in topic 3a. DESCRIPTIONS "
+"of Fields. Actual output width may also be influenced by the -w switch, "
+"which is discussed in topic 1. COMMAND-LINE Options."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:197
+msgid ""
+"Lastly, some of \\*(We's screens or functions require the use of cursor "
+"motion keys like the standard \\*(KAs plus the Home, End, PgUp and PgDn "
+"keys. If your terminal or emulator does not provide those keys, the "
+"following combinations are accepted as alternatives:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:207
+#, no-wrap
+msgid ""
+" I< key equivalent-keys >\n"
+" Left alt +B< h >\n"
+" Down alt +B< j >\n"
+" Up alt +B< k >\n"
+" Right alt +B< l >\n"
+" Home alt + ctrl +B< h >\n"
+" PgDn alt + ctrl +B< j >\n"
+" PgUp alt + ctrl +B< k >\n"
+" End alt + ctrl +B< l >\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:214
+msgid ""
+"The B<Up> and B<Down> \\*(KAs have special significance when prompted for "
+"line input terminated with the E<lt>EnterE<gt> key. Those keys, or their "
+"aliases, can be used to retrieve previous input lines which can then be "
+"edited and re-input. And there are four additional keys available with line "
+"oriented input."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:222
+#, no-wrap
+msgid ""
+" I< key special-significance >\n"
+" Up recall B<older> strings for re-editing\n"
+" Down recall B<newer> strings or B<erase> entire line\n"
+" Insert toggle between B<insert> and B<overtype> modes\n"
+" Delete character B<removed> at cursor, moving others left\n"
+" Home jump to B<beginning> of input line\n"
+" End jump to B<end> of input line\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:225
+#, no-wrap
+msgid "Linux Memory Types"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:234
+msgid ""
+"For our purposes there are three types of memory, and one is optional. "
+"First is \\*(MP, a limited resource where code and data must reside when "
+"executed or referenced. Next is the optional \\*(MS, where modified (dirty) "
+"memory can be saved and later retrieved if too many demands are made on "
+"\\*(MP. Lastly we have \\*(MV, a nearly unlimited resource serving the "
+"following goals:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:240
+#, no-wrap
+msgid ""
+" 1. abstraction, free from physical memory addresses/limits\n"
+" 2. isolation, every process in a separate address space\n"
+" 3. sharing, a single mapping can serve multiple needs\n"
+" 4. flexibility, assign a virtual address to a file\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:249
+msgid ""
+"Regardless of which of these forms memory may take, all are managed as pages "
+"(typically 4096 bytes) but expressed by default in \\*(We as KiB "
+"(kibibyte). The memory discussed under topic `2c. MEMORY Usage' deals with "
+"\\*(MP and the \\*(MS for the system as a whole. The memory reviewed in "
+"topic `3. FIELDS / Columns Display' embraces all three memory types, but for "
+"individual processes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:255
+msgid ""
+"For each such process, every memory page is restricted to a single quadrant "
+"from the table below. Both \\*(MP and \\*(MV can include any of the four, "
+"while the \\*(MS only includes #1 through #3. The memory in quadrant #4, "
+"when modified, acts as its own dedicated \\*(MS."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:267
+#, no-wrap
+msgid ""
+" B<Private> | B<Shared>\n"
+" B<1> | B<2>\n"
+" B<Anonymous> . stack |\n"
+" . malloc() |\n"
+" . brk()/sbrk() | . POSIX shm*\n"
+" . mmap(PRIVATE, ANON) | . mmap(SHARED, ANON)\n"
+" -----------------------+----------------------\n"
+" . mmap(PRIVATE, fd) | . mmap(SHARED, fd)\n"
+" B<File-backed> . pgms/shared libs |\n"
+" B<3> | B<4>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:271
+msgid ""
+"The following may help in interpreting process level memory values displayed "
+"as scalable columns and discussed under topic `3a. DESCRIPTIONS of Fields'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:288
+#, no-wrap
+msgid ""
+" %MEM - simply RES divided by total \\*(MP\n"
+" CODE - the `pgms' portion of quadrant B<3>\n"
+" DATA - the entire quadrant B<1> portion of VIRT plus all\n"
+" explicit mmap file-backed pages of quadrant B<3>\n"
+" RES - anything occupying \\*(MP which, beginning with\n"
+" Linux-4.5, is the sum of the following three fields:\n"
+" RSan - quadrant B<1> pages, which include any\n"
+" former quadrant B<3> pages if modified\n"
+" RSfd - quadrant B<3> and quadrant B<4> pages\n"
+" RSsh - quadrant B<2> pages\n"
+" RSlk - subset of RES which cannot be swapped out (any quadrant)\n"
+" SHR - subset of RES (excludes B<1>, includes all B<2> & B<4>, some B<3>)\n"
+" SWAP - potentially any quadrant except B<4>\n"
+" USED - simply the sum of RES and SWAP\n"
+" VIRT - everything in-use and/or reserved (all quadrants)\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:293
+msgid ""
+"\\*(NT Even though program images and shared libraries are considered "
+"I<private> to a process, they will be accounted for as I<shared> (SHR) by "
+"the kernel."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:295
+#, fuzzy, no-wrap
+msgid "1. COMMAND-LINE Options"
+msgstr "OPÇÕES DE LINHA DE COMANDO"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:299
+msgid ""
+"MandatoryI< arguments> to long options are mandatory for short options too."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:302
+msgid ""
+"Although not required, the equals sign can be used with either option form "
+"and whitespace before and/or after the `=' is permitted."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:303
+#, fuzzy, no-wrap
+#| msgid "B<-b>, B<--bytes>"
+msgid "-B<b>, B<--batch>"
+msgstr "B<-b>, B<--bytes>"
+
+#. type: Plain text
+#: ../man/top.1:309
+msgid ""
+"Starts \\*(We in Batch mode, which could be useful for sending output from "
+"\\*(We to other programs or to a file. In this mode, \\*(We will not accept "
+"input and runs until the iterations limit you've set with the `-n' \\*(CO or "
+"until killed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:310
+#, fuzzy, no-wrap
+#| msgid "B<-t>, B<--no-title>"
+msgid "-B<c>, B<--cmdline-toggle>"
+msgstr "B<-t>, B<--no-title>"
+
+#. type: Plain text
+#: ../man/top.1:316
+msgid ""
+"Starts \\*(We with the last remembered `c' state reversed. Thus, if \\*(We "
+"was displaying command lines, now that field will show program names, and "
+"vice versa. \\*(XC `c' \\*(CI for additional information."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:317
+#, fuzzy, no-wrap
+#| msgid "B<-d>, B<--delay>=I<N>"
+msgid "-B<d>, B<--delay> = I<SECS> [I<.TENTHS>]"
+msgstr "B<-d>, B<--delay>=I<N>"
+
+#. type: Plain text
+#: ../man/top.1:322
+msgid ""
+"Specifies the delay between screen updates, and overrides the corresponding "
+"value in one's personal \\*(CF or the startup default. Later this can be "
+"changed with the `d' or `s' \\*(CIs."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:327
+msgid ""
+"Fractional seconds are honored, but a negative number is not allowed. In "
+"all cases, however, such changes are prohibited if \\*(We is running in "
+"Secure mode, except for root (unless the `s' \\*(CO was used). For "
+"additional information on Secure mode \\*(Xt 6d. SYSTEM Restrictions File."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:328
+#, no-wrap
+msgid "-B<E>, B<--scale-summary-mem> = I<k> | I<m> | I<g> | I<t> | I<p> | I<e>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:331
+msgid "Instructs \\*(We to force \\*(SA memory to be scaled as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:338
+#, fuzzy, no-wrap
+msgid ""
+" k - kibibytes\n"
+" m - mebibytes\n"
+" g - gibibytes\n"
+" t - tebibytes\n"
+" p - pebibytes\n"
+" e - exbibytes\n"
+msgstr ""
+" B = bytes\n"
+" Ki = kibibyte\n"
+" Mi = mebibyte\n"
+" Gi = gibibyte\n"
+" Ti = tebibyte\n"
+" Pi = pebibyte\n"
+
+#. type: Plain text
+#: ../man/top.1:341
+msgid "Later this can be changed with the `E' \\*(CT."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:342
+#, no-wrap
+msgid "-B<e>, B<--scale-task-mem> = I<k> | I<m> | I<g> | I<t> | I<p>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:345
+msgid "Instructs \\*(We to force \\*(TA memory to be scaled as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:351
+#, fuzzy, no-wrap
+msgid ""
+" k - kibibytes\n"
+" m - mebibytes\n"
+" g - gibibytes\n"
+" t - tebibytes\n"
+" p - pebibytes\n"
+msgstr ""
+" B = bytes\n"
+" Ki = kibibyte\n"
+" Mi = mebibyte\n"
+" Gi = gibibyte\n"
+" Ti = tebibyte\n"
+" Pi = pebibyte\n"
+
+#. type: Plain text
+#: ../man/top.1:354
+msgid "Later this can be changed with the `e' \\*(CT."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:355
+#, fuzzy, no-wrap
+#| msgid "B<-c>, B<--read-rc>"
+msgid "-B<H>, B<--threads-show>"
+msgstr "B<-c>, B<--read-rc>"
+
+#. type: Plain text
+#: ../man/top.1:360
+msgid ""
+"Instructs \\*(We to display individual threads. Without this \\*(CO a "
+"summation of all threads in each process is shown. Later this can be "
+"changed with the `H' \\*(CI."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:361
+#, fuzzy, no-wrap
+#| msgid "B<-h>, B<--help>"
+msgid "-B<h>, B<--help>"
+msgstr "B<-h>, B<--help>"
+
+#. type: Plain text
+#: ../man/top.1:364
+#, fuzzy
+#| msgid "Display help text and exit."
+msgid "Display usage help text, then quit."
+msgstr "Exibe um texto de ajuda e sai."
+
+#. type: TP
+#: ../man/top.1:365
+#, fuzzy, no-wrap
+#| msgid "B<-o>, B<--old-style>"
+msgid "-B<i>, B<--idle-toggle>"
+msgstr "B<-o>, B<--old-style>"
+
+#. type: Plain text
+#: ../man/top.1:372
+msgid ""
+"Starts \\*(We with the last remembered `i' state reversed. When this toggle "
+"is \\*F, tasks that have not used any \\*(PU since the last update will not "
+"be displayed. For additional information regarding this toggle \\*(Xt 4c. "
+"TASK AREA Commands, SIZE."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:373
+#, fuzzy, no-wrap
+#| msgid "B<-n>, B<--interval> I<seconds>"
+msgid "-B<n>, B<--iterations> = I<NUMBER>"
+msgstr "B<-n>, B<--interval> I<segundos>"
+
+#. type: Plain text
+#: ../man/top.1:377
+msgid ""
+"Specifies the maximum number of iterations, or frames, \\*(We should produce "
+"before ending."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:378
+#, fuzzy, no-wrap
+#| msgid "B<-a>, B<--list-full>"
+msgid "-B<O>, B<--list-fields>"
+msgstr "B<-a>, B<--list-full>"
+
+#. type: Plain text
+#: ../man/top.1:384
+msgid ""
+"This option acts as a form of help for the -o option shown below. It will "
+"cause \\*(We to print each of the available field names on a separate line, "
+"then quit. Such names are subject to NLS (National Language Support) "
+"translation."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:385
+#, no-wrap
+msgid "-B<o>, B<--sort-override> = I<FIELDNAME>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:393
+msgid ""
+"Specifies the name of the field on which tasks will be sorted, independent "
+"of what is reflected in the configuration file. You can prepend a `+' or "
+"`-' to the field name to also override the sort direction. A leading `+' "
+"will force sorting high to low, whereas a `-' will ensure a low to high "
+"ordering."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:396
+msgid ""
+"This option exists primarily to support automated/scripted batch mode "
+"operation."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:397
+#, no-wrap
+msgid "-B<p>, B<--pid> = I<PIDLIST> (as: I<1>,I<2>,I<3>, ... or -pI<1> -pI<2> -pI<3> ...)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:403
+msgid ""
+"Monitor only processes with specified process IDs. However, when combined "
+"with Threads mode (`H'), all processes in the thread group (\\*(Xa TGID) of "
+"each monitored PID will also be shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:407
+msgid ""
+"This option can be given up to 20 times, or you can provide a comma "
+"delimited list with up to 20 pids. Co-mingling both approaches is permitted."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:410
+msgid ""
+"A pid value of zero will be treated as the process id of the \\*(We program "
+"itself once it is running."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:414
+msgid ""
+"This is a \\*(CO only and should you wish to return to normal operation, it "
+"is not necessary to quit and restart \\*(We \\*(Em just issue any of these "
+"\\*(CIs: `=', `u' or `U'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:416
+msgid "The `p', `u' and `U' \\*(COs are mutually exclusive."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:417
+#, fuzzy, no-wrap
+#| msgid "B<-t>, B<--no-title>"
+msgid "-B<S>, B<--accum-time-toggle>"
+msgstr "B<-t>, B<--no-title>"
+
+#. type: Plain text
+#: ../man/top.1:423
+msgid ""
+"Starts \\*(We with the last remembered `S' state reversed. When Cumulative "
+"time mode is \\*O, each process is listed with the \\*(Pu time that it and "
+"its dead children have used. \\*(XC `S' \\*(CI for additional information "
+"regarding this mode."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:424
+#, fuzzy, no-wrap
+#| msgid "B<-s>, B<--since>"
+msgid "-B<s>, B<--secure-mode>"
+msgstr "B<-s>, B<--since>"
+
+#. type: Plain text
+#: ../man/top.1:429
+msgid ""
+"Starts \\*(We with secure mode forced, even for root. This mode is far "
+"better controlled through a system \\*(CF (\\*(Xt 6. FILES)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:430
+#, no-wrap
+msgid "-B<U>, B<--filter-any-user> = I<USER> (as: I<number> or I<name>)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:435
+msgid ""
+"Display only processes with a user id or user name matching that given. "
+"This option matches onI< any> user (I<real>, I<effective>, I<saved>, or "
+"I<filesystem>)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:438 ../man/top.1:448
+msgid ""
+"Prepending an exclamation point (`!') to the user id or name instructs "
+"\\*(We to display only processes with users not matching the one provided."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:440 ../man/top.1:450
+msgid "The `p', `U' and `u' \\*(COs are mutually exclusive."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:441
+#, no-wrap
+msgid "-B<u>, B<--filter-only-euser> = I<USER> (as: I<number> or I<name>)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:445
+msgid ""
+"Display only processes with a user id or user name matching that given. "
+"This option matches on theI< effective> user id only."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:451
+#, fuzzy, no-wrap
+#| msgid "B<-V>, B<--version>"
+msgid "-B<V>, B<--version>"
+msgstr "B<-V>, B<--version>"
+
+#. type: Plain text
+#: ../man/top.1:454
+#, fuzzy
+#| msgid "Display version information and exit."
+msgid "Display version information, then quit."
+msgstr "Exibe informação da versão e sai."
+
+#. type: TP
+#: ../man/top.1:455
+#, fuzzy, no-wrap
+#| msgid "B<-s>, B<--sort>=I<S>"
+msgid "-B<w>, B<--width> [=I<COLUMNS>]"
+msgstr "B<-s>, B<--sort>=I<S>"
+
+#. type: Plain text
+#: ../man/top.1:462
+msgid ""
+"In Batch mode, when used without an argument \\*(We will format output using "
+"the COLUMNS= and LINES= environment variables, if set. Otherwise, width "
+"will be fixed at the maximum \\*(WX columns. With an argument, output width "
+"can be decreased or increased (up to \\*(WX) but the number of rows is "
+"considered unlimited."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:468
+msgid ""
+"In normal display mode, when used without an argument \\*(We willI< attempt> "
+"to format output using the COLUMNS= and LINES= environment variables, if "
+"set. With an argument, output width can only be decreased, not increased. "
+"Whether using environment variables or an argument with -w, whenI< not> in "
+"Batch mode actual terminal dimensions can never be exceeded."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:471
+msgid ""
+"\\*(NT Without the use of this \\*(CO, output width is always based on the "
+"terminal at which \\*(We was invoked whether or not in Batch mode."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:472
+#, fuzzy, no-wrap
+#| msgid "B<-s>, B<--since>"
+msgid "-B<1>, B<--single-cpu-toggle>"
+msgstr "B<-s>, B<--since>"
+
+#. type: Plain text
+#: ../man/top.1:478
+msgid ""
+"Starts \\*(We with the last remembered Cpu States portion of the \\*(SA "
+"reversed. Either all \\*(Pu information will be displayed in a single line "
+"or each \\*(Pu will be displayed separately, depending on the state of the "
+"NUMA Node \\*(CT (`2')."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:480
+msgid "\\*(XC `1' and `2' \\*(CIs for additional information."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:482
+#, no-wrap
+msgid "2. SUMMARY Display"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:488
+msgid ""
+"Each of the following three areas are individually controlled through one or "
+"more \\*(CIs. \\*(XT 4b. SUMMARY AREA Commands for additional information "
+"regarding these provisions."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:490
+#, no-wrap
+msgid "2a. UPTIME and LOAD Averages"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:493
+msgid "This portion consists of a single line containing:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:498
+#, no-wrap
+msgid ""
+" B<program> orB< window> name, depending on display mode\n"
+" current time and length of time since last boot\n"
+" total number of users\n"
+" system load avg over the last 1, 5 and 15 minutes\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:501
+#, no-wrap
+msgid "2b. TASK and CPU States"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:506
+msgid ""
+"This portion consists of a minimum of two lines. In an SMP environment, "
+"additional lines can reflect individual \\*(PU state percentages."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:510
+msgid ""
+"Line 1 shows totalB< tasks> orB< threads>, depending on the state of the "
+"Threads-mode toggle. That total is further classified as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:512
+#, no-wrap
+msgid " running; sleeping; stopped; zombie\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:516
+msgid ""
+"Line 2 shows \\*(PU state percentages based on the interval since the last "
+"refresh."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:519
+msgid ""
+"As a default, percentages for these individual categories are displayed. "
+"Depending on your kernel version, the B<st> field may not be shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:528
+#, no-wrap
+msgid ""
+" B<us> : time running un-niced user processes\n"
+" B<sy> : time running kernel processes\n"
+" B<ni> : time running niced user processes\n"
+" B<id> : time spent in the kernel idle handler\n"
+" B<wa> : time waiting for I/O completion\n"
+" B<hi> : time spent servicing hardware interrupts\n"
+" B<si> : time spent servicing software interrupts\n"
+" B<st> : time stolen from this vm by the hypervisor\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:532
+msgid ""
+"The `sy' value above also reflects the time running a virtual \\*(Pu for "
+"guest operating systems, including those that have been niced."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:536
+msgid ""
+"Beyond the first tasks/threads line, there are alternate \\*(PU display "
+"modes available via the 4-way `t' \\*(CT. They show an abbreviated summary "
+"consisting of these elements:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:539
+#, no-wrap
+msgid ""
+" a b c d\n"
+" %Cpu(s): B<75.0>/25.0 B<100>[ ... ]\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:546
+msgid ""
+"Where: a) is the `user' (us + ni) percentage; b) is the `system' (sy + hi + "
+"si + guests) percentage; c) is the total percentage; and d) is one of two "
+"visual graphs of those representations. Such graphs also reflect separate "
+"`user' and `system' portions."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:551
+msgid ""
+"If the `4' \\*(CT is used to yield more than two cpus per line, results will "
+"be further abridged eliminating the a) and b) elements. However, that "
+"information is still reflected in the graph itself assuming color is active "
+"or, if not, bars vs. blocks are being shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:554
+msgid ""
+"\\*(XT 4b. SUMMARY AREA Commands for additional information on the `t' and "
+"`4' \\*(CTs."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:556
+#, no-wrap
+msgid "2c. MEMORY Usage"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:561
+msgid ""
+"This portion consists of two lines which may express values in kibibytes "
+"(KiB) through exbibytes (EiB) depending on the scaling factor enforced with "
+"the `E' \\*(CI. The /proc/meminfo source fields are shown in parenthesis."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:563
+msgid "Line 1 reflects \\*(MP, classified as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:568
+#, no-wrap
+msgid ""
+" total ( MemTotal )\n"
+" free ( MemFree )\n"
+" used ( MemTotal - MemAvailable )\n"
+" buff/cache ( Buffers + Cached + SReclaimable )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:571
+msgid "Line 2 reflects mostly \\*(MV, classified as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:576
+#, no-wrap
+msgid ""
+" total ( SwapTotal )\n"
+" free ( SwapFree )\n"
+" used ( SwapTotal - SwapFree )\n"
+" avail ( MemAvailable, which is \\*(MP )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:584
+#, fuzzy
+msgid ""
+"The B<avail> number on line 2 is an estimation of \\*(MP available for "
+"starting new applications, without swapping. Unlike the B<free> field, it "
+"attempts to account for readily reclaimable page cache and memory slabs. It "
+"is available on kernels 3.14, emulated on kernels 2.6.27+, otherwise the "
+"same as B<free>."
+msgstr ""
+"Estimativa da quantidade de memória disponível para iniciar novos "
+"aplicativos, sem fazer uso da swap. Ao contrário dos dados fornecidos pelos "
+"campos B<cache> ou B<livre>, este campo leva em consideração o cache da "
+"página e também que nem todos os slabs recuperáveis de memória serão "
+"recuperados devido a itens em uso (MemAvailable em /proc/meminfo, disponível "
+"em kernels 3.14, emulado em kernels 2.6.27+; caso contrário, o mesmo que "
+"B<livre>)"
+
+#. type: Plain text
+#: ../man/top.1:587
+msgid ""
+"In the alternate memory display modes, two abbreviated summary lines are "
+"shown consisting of these elements:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:591
+#, no-wrap
+msgid ""
+" a b c\n"
+" GiB Mem : B<18.7>/15.738 [ ... ]\n"
+" GiB Swap: B< 0.0>/7.999 [ ... ]\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:595
+msgid ""
+"Where: a) is the percentage used; b) is the total available; and c) is one "
+"of two visual graphs of those representations."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:602
+msgid ""
+"In the case of \\*(MP, the percentage represents the B<total> minus the "
+"estimated B<avail> noted above. The `Mem' graph itself is divided between "
+"the non-cached portion of B<used> and any remaining memory not otherwise "
+"accounted for by B<avail>. \\*(XT 4b. SUMMARY AREA Commands and the `m' "
+"command for additional information on that special 4-way toggle."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:604
+msgid "This table may help in interpreting the scaled values displayed:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:611
+#, no-wrap
+msgid ""
+" KiB = kibibyte = 1024 bytes\n"
+" MiB = mebibyte = 1024 KiB = 1,048,576 bytes\n"
+" GiB = gibibyte = 1024 MiB = 1,073,741,824 bytes\n"
+" TiB = tebibyte = 1024 GiB = 1,099,511,627,776 bytes\n"
+" PiB = pebibyte = 1024 TiB = 1,125,899,906,842,624 bytes\n"
+" EiB = exbibyte = 1024 PiB = 1,152,921,504,606,846,976 bytes\n"
+msgstr ""
+" KiB = kibibyte = 1024 bytes\n"
+" MiB = mebibyte = 1024 KiB = 1,048,576 bytes\n"
+" GiB = gibibyte = 1024 MiB = 1,073,741,824 bytes\n"
+" TiB = tebibyte = 1024 GiB = 1,099,511,627,776 bytes\n"
+" PiB = pebibyte = 1024 TiB = 1,125,899,906,842,624 bytes\n"
+" EiB = exbibyte = 1024 PiB = 1,152,921,504,606,846,976 bytes\n"
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:614
+#, no-wrap
+msgid "3. FIELDS / Columns"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:617
+#, no-wrap
+msgid "3a. DESCRIPTIONS of Fields"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:623
+msgid ""
+"Listed below are \\*(We's available process fields (columns). They are "
+"shown in strict ascii alphabetical order. You may customize their position "
+"and whether or not they are displayable with the `f' (Fields Management) "
+"\\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:628
+msgid ""
+"Any field is selectable as the sort field, and you control whether they are "
+"sorted high-to-low or low-to-high. For additional information on sort "
+"provisions \\*(Xt 4c. TASK AREA Commands, SORTING."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:634
+msgid ""
+"The fields related to \\*(MP or \\*(MV reference `(KiB)' which is the "
+"unsuffixed display mode. Such fields may, however, be scaled from KiB "
+"through PiB. That scaling is influenced via the `e' \\*(CI or established "
+"for startup through a build option."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:635
+#, no-wrap
+msgid "B<%CPU \\*(Em \\*(PU Usage >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:639
+msgid ""
+"The task's share of the elapsed \\*(PU time since the last screen update, "
+"expressed as a percentage of total \\*(PU time."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:644
+msgid ""
+"In a true SMP environment, if a process is multi-threaded and \\*(We is "
+"I<not> operating in Threads mode, amounts greater than 100% may be "
+"reported. You toggle Threads mode with the `H' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:649
+msgid ""
+"Also for multi-processor environments, if Irix mode is \\*F, \\*(We will "
+"operate in Solaris mode where a task's \\*(Pu usage will be divided by the "
+"total number of \\*(PUs. You toggle Irix/Solaris modes with the `I' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:655
+msgid ""
+"\\*(NT When running in forest view mode (`V') with children collapsed (`v'), "
+"this field will also include the \\*(PU time of those unseen children. "
+"\\*(XT 4c. TASK AREA Commands, CONTENT for more information regarding the "
+"`V' and `v' toggles."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:656
+#, no-wrap
+msgid "B<%CUC \\*(Em \\*(PU Utilization >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:660
+msgid ""
+"This field is identical to %CUU below, except the percentage also reflects "
+"reaped child processes."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:661
+#, no-wrap
+msgid "B<%CUU \\*(Em \\*(PU Utilization >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:665
+msgid ""
+"A task's total \\*(PU usage divided by its elapsed running time, expressed "
+"as a percentage."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:670
+msgid ""
+"If a process currently displays high \\*(PU usage, this field can help "
+"determine if such behavior is normal. Conversely, if a process has low "
+"\\*(PU usage currently, %CUU may reflect historically higher demands over "
+"its lifetime."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:671
+#, no-wrap
+msgid "B<%MEM \\*(Em Memory Usage (RES) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:674
+msgid "A task's currently resident share of available \\*(MP."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:676 ../man/top.1:737 ../man/top.1:770 ../man/top.1:943
+#: ../man/top.1:1004 ../man/top.1:1057 ../man/top.1:1102 ../man/top.1:1122
+msgid "\\*(XX."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:677
+#, no-wrap
+msgid "B<AGID \\*(Em Autogroup Identifier >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:682
+msgid ""
+"The autogroup identifier associated with a process. This feature operates "
+"in conjunction with the CFS scheduler to improve interactive desktop "
+"performance."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:691
+msgid ""
+"When /proc/sys/kernel/sched_autogroup_enabled is set, a new autogroup is "
+"created with each new session (\\*(Xa SID). All subsequently forked "
+"processes in that session inherit membership in this autogroup. The kernel "
+"then attempts to equalize distribution of CPU cycles across such groups. "
+"Thus, an autogroup with many \\*(PU intensive processes (e.g make -j) will "
+"not dominate an autogroup with only one or two processes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:693
+msgid "When -1 is displayed it means this information is not available."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:694
+#, no-wrap
+msgid "B<AGNI \\*(Em Autogroup Nice Value >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:700
+msgid ""
+"The autogroup nice value which affects scheduling of all processes in that "
+"group. A negative nice value means higher priority, whereas a positive nice "
+"value means lower priority."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:701
+#, no-wrap
+msgid "B<CGNAME \\*(Em Control Group Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:705
+msgid ""
+"The name of the control group to which a process belongs, or `-' if not "
+"applicable for that process."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:709
+msgid ""
+"This will typically be the last entry in the full list of control groups as "
+"shown under the next heading (CGROUPS). And as is true there, this field is "
+"also variable width."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:710
+#, no-wrap
+msgid "B<CGROUPS \\*(Em Control Groups >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:714
+msgid ""
+"The names of the control group(s) to which a process belongs, or `-' if not "
+"applicable for that process."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:719
+msgid ""
+"Control Groups provide for allocating resources (cpu, memory, network "
+"bandwidth, etc.) among installation-defined groups of processes. They "
+"enable fine-grained control over allocating, denying, prioritizing, managing "
+"and monitoring those resources."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:723
+msgid ""
+"Many different hierarchies of cgroups can exist simultaneously on a system "
+"and each hierarchy is attached to one or more subsystems. A subsystem "
+"represents a single resource."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:730
+msgid ""
+"\\*(NT The CGROUPS field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters). Even so, such "
+"variable width fields could still suffer truncation. \\*(XT 5c. SCROLLING a "
+"Window for additional information on accessing any truncated data."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:731
+#, no-wrap
+msgid "B<CODE \\*(Em Code Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:735
+msgid ""
+"The amount of \\*(MP currently devoted to executable code, also known as the "
+"Text Resident Set size or TRS."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:738
+#, no-wrap
+msgid "B<COMMAND \\*(Em Command Name> or CommandB< Line >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:744
+msgid ""
+"Display the command line used to start a task or the name of the associated "
+"program. You toggle between commandI< line> andI< name> with `c', which is "
+"both a \\*(CO and an \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:749
+#, no-wrap
+msgid ""
+"When you've chosen to display command lines, processes without a command\n"
+"line (like kernel threads) will be shown with only the program name in\n"
+"brackets, as in this example:\n"
+" [kthreadd]\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:752
+msgid ""
+"This field may also be impacted by the forest view display mode. \\*(XC `V' "
+"\\*(CI for additional information regarding that mode."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:761
+msgid ""
+"\\*(NT The COMMAND field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters). Even so, such "
+"variable width fields could still suffer truncation. This is especially "
+"true for this field when command lines are being displayed (the `c' "
+"\\*(CI.) \\*(XT 5c. SCROLLING a Window for additional information on "
+"accessing any truncated data."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:762
+#, no-wrap
+msgid "B<DATA \\*(Em Data + Stack Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:768
+msgid ""
+"The amount of private memory I<reserved> by a process. It is also known as "
+"the Data Resident Set or DRS. Such memory may not yet be mapped to \\*(MP "
+"(RES) but will always be included in the \\*(MV (VIRT) amount."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:771
+#, no-wrap
+msgid "B<ELAPSED \\*(Em Elapsed Running Time>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:775
+msgid ""
+"The length of time since a process was started. Thus, the most recently "
+"started task will display the smallest time interval."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:780
+msgid ""
+"The value will be expressed as `HH,MM' (hours,minutes) but is subject to "
+"additional scaling if the interval becomes too great to fit column width. "
+"At that point it will be scaled to `DD+HH' (days+hours) and possibly beyond."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:781
+#, no-wrap
+msgid "B<ENVIRON \\*(Em Environment variables >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:787
+msgid ""
+"Display all of the environment variables, if any, as seen by the respective "
+"processes. These variables will be displayed in their raw native order, not "
+"the sorted order you are accustomed to seeing with an unqualified `set'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:795
+msgid ""
+"\\*(NT The ENVIRON field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters). Even so, such "
+"variable width fields could still suffer truncation. This is especially "
+"true for this field. \\*(XT 5c. SCROLLING a Window for additional "
+"information on accessing any truncated data."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:796
+#, no-wrap
+msgid "B<EXE \\*(Em Executable Path >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:800
+msgid ""
+"Where available, this is the full path to the executable, including the "
+"program name."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:804
+msgid ""
+"\\*(NT The EXE field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:805
+#, no-wrap
+msgid "B<Flags \\*(Em Task Flags >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:810
+msgid ""
+"This column represents the task's current scheduling flags which are "
+"expressed in hexadecimal notation and with zeros suppressed. These flags "
+"are officially documented in E<lt>linux/sched.hE<gt>."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:811
+#, no-wrap
+msgid "B<GID \\*(Em Group Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:814
+msgid "TheI< effective> group ID."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:815
+#, no-wrap
+msgid "B<GROUP \\*(Em Group Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:818
+msgid "TheI< effective> group name."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:819
+#, no-wrap
+msgid "B<LOGID \\*(Em Login User Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:823
+msgid ""
+"The user ID used atI< login>. When -1 is displayed it means this "
+"information is not available."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:824
+#, no-wrap
+msgid "B<LXC \\*(Em Lxc Container Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:828
+msgid ""
+"The name of the lxc container within which a task is running. If a process "
+"is not running inside a container, a dash (`-') will be shown."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:829
+#, no-wrap
+msgid "B<NI \\*(Em Nice Value >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:836
+msgid ""
+"The nice value of the task. A negative nice value means higher priority, "
+"whereas a positive nice value means lower priority. Zero in this field "
+"simply means priority will not be adjusted in determining a task's dispatch-"
+"ability."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:840
+msgid ""
+"\\*(NT This value only affects scheduling priority relative to other "
+"processes in the same autogroup. \\*(XC `AGID' and `AGNI' fields for "
+"additional information on autogroups."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:841
+#, no-wrap
+msgid "B<NU \\*(Em Last known NUMA node >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:845
+msgid ""
+"A number representing the NUMA node associated with the last used processor "
+"(`P'). When -1 is displayed it means that NUMA information is not available."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:847
+msgid ""
+"\\*(XC `2' and `3' \\*(CIs for additional NUMA provisions affecting the "
+"\\*(SA."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:848
+#, no-wrap
+msgid "B<OOMa \\*(Em Out of Memory Adjustment Factor >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:853
+msgid ""
+"The value, ranging from -1000 to +1000, added to the current out of memory "
+"score (OOMs) which is then used to determine which task to kill when memory "
+"is exhausted."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:854
+#, no-wrap
+msgid "B<OOMs \\*(Em Out of Memory Score >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:859
+msgid ""
+"The value, ranging from 0 to +1000, used to select task(s) to kill when "
+"memory is exhausted. Zero translates to `never kill' whereas 1000 means "
+"`always kill'."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:860
+#, no-wrap
+msgid "B<P \\*(Em Last used \\*(PU (SMP) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:868
+msgid ""
+"A number representing the last used processor. In a true SMP environment "
+"this will likely change frequently since the kernel intentionally uses weak "
+"affinity. Also, the very act of running \\*(We may break this weak affinity "
+"and cause more processes to change \\*(PUs more often (because of the extra "
+"demand for \\*(Pu time)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:869
+#, no-wrap
+msgid "B<PGRP \\*(Em Process Group Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:878
+msgid ""
+"Every process is member of a unique process group which is used for "
+"distribution of signals and by terminals to arbitrate requests for their "
+"input and output. When a process is created (forked), it becomes a member "
+"of the process group of its parent. By convention, this value equals the "
+"process ID (\\*(Xa PID) of the first member of a process group, called the "
+"process group leader."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:879
+#, no-wrap
+msgid "B<PID \\*(Em Process Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:884
+msgid ""
+"The task's unique process ID, which periodically wraps, though never "
+"restarting at zero. In kernel terms, it is a dispatchable entity defined by "
+"a task_struct."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:889
+msgid ""
+"This value may also be used as: a process group ID (\\*(Xa PGRP); a session "
+"ID for the session leader (\\*(Xa SID); a thread group ID for the thread "
+"group leader (\\*(Xa TGID); and a TTY process group ID for the process group "
+"leader (\\*(Xa TPGID)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:890
+#, no-wrap
+msgid "B<PPID \\*(Em Parent Process Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:893
+msgid "The process ID (pid) of a task's parent."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:894
+#, no-wrap
+msgid "B<PR \\*(Em Priority >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:899
+msgid ""
+"The scheduling priority of the task. If you see `rt' in this field, it "
+"means the task is running under real time scheduling priority."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:903
+msgid ""
+"Under linux, real time priority is somewhat misleading since traditionally "
+"the operating itself was not preemptible. And while the 2.6 kernel can be "
+"made mostly preemptible, it is not always so."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:904
+#, no-wrap
+msgid "B<PSS \\*(Em Proportional Resident Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:909
+msgid ""
+"The proportion of this task's share of `RSS' where each page is divided by "
+"the number of processes sharing it. It is also the sum of the `PSan', "
+"`PSfd' and `PSsh' fields."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:912
+msgid ""
+"For example, if a process has 1000 resident pages alone and 1000 resident "
+"pages shared with another process, its `PSS' would be 1500 (times page size)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:914 ../man/top.1:927 ../man/top.1:951 ../man/top.1:1114
+msgid "\\*(ZX."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:917
+msgid "B<PSan \\*(Em Proportional Anonymous Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:919
+msgid "B<PSfd \\*(Em Proportional File Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:921
+msgid "B<PSsh \\*(Em Proportional Shmem Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:925
+msgid ""
+"As was true for `PSS' above (total proportional resident memory), these "
+"fields represent the proportion of this task's share of each type of memory "
+"divided by the number of processes sharing it."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:929
+#, no-wrap
+msgid "B<RES \\*(Em Resident Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:934
+msgid ""
+"A subset of the virtual address space (VIRT) representing the non-swapped "
+"\\*(MP a task is currently using. It is also the sum of the `RSan', `RSfd' "
+"and `RSsh' fields."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:938
+msgid ""
+"It can include private anonymous pages, private pages mapped to files "
+"(including program images and shared libraries) plus shared anonymous "
+"pages. All such memory is backed by the \\*(MS represented separately under "
+"SWAP."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:941
+msgid ""
+"Lastly, this field may also include shared file-backed pages which, when "
+"modified, act as a dedicated \\*(MS and thus will never impact SWAP."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:944
+#, no-wrap
+msgid "B<RSS \\*(Em Resident Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:949
+msgid ""
+"Another, more precise view of process non-swapped \\*(MP. It is obtained "
+"from the `smaps_rollup' file and is generally slightly larger than that "
+"shown for `RES'."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:952
+#, no-wrap
+msgid "B<RSan \\*(Em Resident Anonymous Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:956
+msgid ""
+"A subset of resident memory (RES) representing private pages not mapped to a "
+"file."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:957
+#, no-wrap
+msgid "B<RSfd \\*(Em Resident File-Backed Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:962
+msgid ""
+"A subset of resident memory (RES) representing the implicitly shared pages "
+"supporting program images and shared libraries. It also includes explicit "
+"file mappings, both private and shared."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:963
+#, no-wrap
+msgid "B<RSlk \\*(Em Resident Locked Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:966
+msgid "A subset of resident memory (RES) which cannot be swapped out."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:967
+#, no-wrap
+msgid "B<RSsh \\*(Em Resident Shared Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:971
+msgid ""
+"A subset of resident memory (RES) representing the explicitly shared "
+"anonymous shm*/mmap pages."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:972
+#, no-wrap
+msgid "B<RUID \\*(Em Real User Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:975
+msgid "TheI< real> user ID."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:976
+#, no-wrap
+msgid "B<RUSER \\*(Em Real User Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:979
+#, fuzzy
+msgid "TheI< real> user name."
+msgstr "A próxima expressão é um nome de usuário."
+
+#. type: TP
+#: ../man/top.1:980
+#, no-wrap
+msgid "B<S \\*(Em Process Status >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:990
+#, no-wrap
+msgid ""
+"The status of the task which can be one of:\n"
+" B<D> = uninterruptible sleep\n"
+" B<I> = idle\n"
+" B<R> = running\n"
+" B<S> = sleeping\n"
+" B<T> = stopped by job control signal\n"
+" B<t> = stopped by debugger during trace\n"
+" B<Z> = zombie\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:995
+msgid ""
+"Tasks shown as running should be more properly thought of as ready to run "
+"\\*(Em their task_struct is simply represented on the Linux run-queue. Even "
+"without a true SMP machine, you may see numerous tasks in this state "
+"depending on \\*(We's delay interval and nice value."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:996
+#, no-wrap
+msgid "B<SHR \\*(Em Shared Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1002
+msgid ""
+"A subset of resident memory (RES) that may be used by other processes. It "
+"will include shared anonymous pages and shared file-backed pages. It also "
+"includes private pages mapped to files representing program images and "
+"shared libraries."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1005
+#, no-wrap
+msgid "B<SID \\*(Em Session Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1013
+msgid ""
+"A session is a collection of process groups (\\*(Xa PGRP), usually "
+"established by the login shell. A newly forked process joins the session of "
+"its creator. By convention, this value equals the process ID (\\*(Xa PID) "
+"of the first member of the session, called the session leader, which is "
+"usually the login shell."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1014
+#, no-wrap
+msgid "B<STARTED \\*(Em Start Time Interval>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1018
+msgid ""
+"The length of time since system boot when a process started. Thus, the most "
+"recently started task will display the largest time interval."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1022
+msgid ""
+"The value will be expressed as `MM:SS' (minutes:seconds). But if the "
+"interval is too great to fit column width it will be scaled as `HH,"
+"MM' (hours,minutes) and possibly beyond."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1023
+#, no-wrap
+msgid "B<SUID \\*(Em Saved User Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1026
+msgid "TheI< saved> user ID."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1027
+#, no-wrap
+msgid "B<SUPGIDS \\*(Em Supplementary Group IDs >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1032
+msgid ""
+"The IDs of any supplementary group(s) established at login or inherited from "
+"a task's parent. They are displayed in a comma delimited list."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1036
+msgid ""
+"\\*(NT The SUPGIDS field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1037
+#, no-wrap
+msgid "B<SUPGRPS \\*(Em Supplementary Group Names >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1042
+msgid ""
+"The names of any supplementary group(s) established at login or inherited "
+"from a task's parent. They are displayed in a comma delimited list."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1046
+msgid ""
+"\\*(NT The SUPGRPS field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1047
+#, no-wrap
+msgid "B<SUSER \\*(Em Saved User Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1050
+msgid "TheI< saved> user name."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1051
+#, no-wrap
+msgid "B<SWAP \\*(Em Swapped Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1055
+msgid ""
+"The formerly resident portion of a task's address space written to the "
+"\\*(MS when \\*(MP becomes over committed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1058
+#, no-wrap
+msgid "B<TGID \\*(Em Thread Group Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1063
+msgid ""
+"The ID of the thread group to which a task belongs. It is the PID of the "
+"thread group leader. In kernel terms, it represents those tasks that share "
+"an mm_struct."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1064
+#, no-wrap
+msgid "B<TIME \\*(Em \\*(PU Time >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1071
+msgid ""
+"Total \\*(PU time the task has used since it started. When Cumulative mode "
+"is \\*O, each process is listed with the \\*(Pu time that it and its dead "
+"children have used. You toggle Cumulative mode with `S', which is both a "
+"\\*(CO and an \\*(CI. \\*(XC `S' \\*(CI for additional information "
+"regarding this mode."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1072
+#, no-wrap
+msgid "B<TIME+ \\*(Em \\*(PU Time, hundredths >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1076
+msgid ""
+"The same as TIME, but reflecting more granularity through hundredths of a "
+"second."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1077
+#, no-wrap
+msgid "B<TPGID \\*(Em Tty Process Group Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1083
+msgid ""
+"The process group ID of the foreground process for the connected tty, or -1 "
+"if a process is not connected to a terminal. By convention, this value "
+"equals the process ID (\\*(Xa PID) of the process group leader (\\*(Xa PGRP)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1084
+#, no-wrap
+msgid "B<TTY \\*(Em Controlling Tty >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1091
+msgid ""
+"The name of the controlling terminal. This is usually the device (serial "
+"port, pty, etc.) from which the process was started, and which it uses for "
+"input or output. However, a task need not be associated with a terminal, in "
+"which case you'll see `?' displayed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1092
+#, no-wrap
+msgid "B<UID \\*(Em User Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1095
+msgid "TheI< effective> user ID of the task's owner."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1096
+#, no-wrap
+msgid "B<USED \\*(Em Memory in Use (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1100
+msgid ""
+"This field represents the non-swapped \\*(MP a task is using (RES) plus the "
+"swapped out portion of its address space (SWAP)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1103
+#, no-wrap
+msgid "B<USER \\*(Em User Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1106
+msgid "TheI< effective> user name of the task's owner."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1107
+#, no-wrap
+msgid "B<USS \\*(Em Unique Set Size >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1112
+msgid ""
+"The non-swapped portion of \\*(MP (`RSS') not shared with any other "
+"process. It is derived from the `smaps_rollup' file."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1115
+#, no-wrap
+msgid "B<VIRT \\*(Em Virtual Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1120
+msgid ""
+"The total amount of \\*(MV used by the task. It includes all code, data and "
+"shared libraries plus pages that have been swapped out and pages that have "
+"been mapped but not used."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1123
+#, no-wrap
+msgid "B<WCHAN \\*(Em Sleeping in Function >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1128
+msgid ""
+"This field will show the name of the kernel function in which the task is "
+"currently sleeping. Running tasks will display a dash (`-') in this column."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1129
+#, no-wrap
+msgid "B<ioR \\*(Em I/O Bytes Read >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1132
+msgid ""
+"The number of bytes a process caused to be fetched from the storage layer."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1134
+msgid "Root privileges are required to display `io' data for other users."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1135
+#, no-wrap
+msgid "B<ioRop \\*(Em I/O Read Operations >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1139
+msgid ""
+"The number of read I/O operations (syscalls) for a process. Such calls "
+"might not result in actual physical disk I/O."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1140
+#, no-wrap
+msgid "B<ioW \\*(Em I/O Bytes Written >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1143
+msgid "The number of bytes a process caused to be sent to the storage layer."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1144
+#, no-wrap
+msgid "B<ioWop \\*(Em I/O Write Operations >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1148
+msgid ""
+"The number of write I/O operations (syscalls) for a process. Such calls "
+"might not result in actual physical disk I/O."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1149
+#, no-wrap
+msgid "B<nDRT \\*(Em Dirty Pages Count >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1155
+msgid ""
+"The number of pages that have been modified since they were last written to "
+"\\*(AS. Dirty pages must be written to \\*(AS before the corresponding "
+"physical memory location can be used for some other virtual page."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1157
+msgid "This field was deprecated with linux 2.6 and is always zero."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1158
+#, no-wrap
+msgid "B<nMaj \\*(Em Major Page Fault Count >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1165
+msgid ""
+"The number ofB< major> page faults that have occurred for a task. A page "
+"fault occurs when a process attempts to read from or write to a virtual page "
+"that is not currently present in its address space. A major page fault is "
+"when \\*(AS access is involved in making that page available."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1166
+#, no-wrap
+msgid "B<nMin \\*(Em Minor Page Fault count >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1173
+msgid ""
+"The number ofB< minor> page faults that have occurred for a task. A page "
+"fault occurs when a process attempts to read from or write to a virtual page "
+"that is not currently present in its address space. A minor page fault does "
+"not involve \\*(AS access in making that page available."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1174
+#, no-wrap
+msgid "B<nTH \\*(Em Number of Threads >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1177
+msgid "The number of threads associated with a process."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1178
+#, no-wrap
+msgid "B<nsCGROUP \\*(Em CGROUP namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1182
+msgid ""
+"The Inode of the namespace used to hide the identity of the control group of "
+"which process is a member."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1183
+#, no-wrap
+msgid "B<nsIPC \\*(Em IPC namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1187
+msgid ""
+"The Inode of the namespace used to isolate interprocess communication (IPC) "
+"resources such as System V IPC objects and POSIX message queues."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1188
+#, no-wrap
+msgid "B<nsMNT \\*(Em MNT namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1192
+msgid ""
+"The Inode of the namespace used to isolate filesystem mount points thus "
+"offering different views of the filesystem hierarchy."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1193
+#, no-wrap
+msgid "B<nsNET \\*(Em NET namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1197
+msgid ""
+"The Inode of the namespace used to isolate resources such as network "
+"devices, IP addresses, IP routing, port numbers, etc."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1198
+#, no-wrap
+msgid "B<nsPID \\*(Em PID namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1204
+msgid ""
+"The Inode of the namespace used to isolate process ID numbers meaning they "
+"need not remain unique. Thus, each such namespace could have its own `init/"
+"systemd' (PID #1) to manage various initialization tasks and reap orphaned "
+"child processes."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1205
+#, no-wrap
+msgid "B<nsTIME \\*(Em TIME namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1209
+msgid ""
+"The Inode of the namespace which allows processes to see different system "
+"times in a way similar to the UTS namespace."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1210
+#, no-wrap
+msgid "B<nsUSER \\*(Em USER namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1216
+msgid ""
+"The Inode of the namespace used to isolate the user and group ID numbers. "
+"Thus, a process could have a normal unprivileged user ID outside a user "
+"namespace while having a user ID of 0, with full root privileges, inside "
+"that namespace."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1217
+#, no-wrap
+msgid "B<nsUTS \\*(Em UTS namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1221
+msgid ""
+"The Inode of the namespace used to isolate hostname and NIS domain name. "
+"UTS simply means \"UNIX Time-sharing System\"."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1222
+#, no-wrap
+msgid "B<vMj \\*(Em Major Page Fault Count Delta>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1226
+msgid ""
+"The number ofB< major> page faults that have occurred since the last update "
+"(see nMaj)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1227
+#, no-wrap
+msgid "B<vMn \\*(Em Minor Page Fault Count Delta>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1231
+msgid ""
+"The number ofB< minor> page faults that have occurred since the last update "
+"(see nMin)."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1233
+#, no-wrap
+msgid "3b. MANAGING Fields"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1240
+msgid ""
+"After pressing the \\*(CI `f' (Fields Management) you will be presented with "
+"a screen showing: 1) the \\*(CW name; 2) the designated sort field; 3) all "
+"fields in their current order along with descriptions. Entries marked with "
+"an asterisk are the currently displayed fields, screen width permitting."
+msgstr ""
+
+#. type: IP
+#: ../man/top.1:1242 ../man/top.1:1248 ../man/top.1:1253 ../man/top.1:1257
+#: ../man/top.1:1262 ../man/top.1:2687 ../man/top.1:2710 ../man/top.1:2719
+#: ../man/top.1:2735 ../man/top.1:2741 ../man/top.1:2747 ../man/top.1:2757
+#: ../man/top.1:2774
+#, no-wrap
+msgid "\\(bu"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1247
+msgid ""
+"As the on screen instructions indicate, you navigate among the fields with "
+"theB< Up> andB< Down> \\*(KAs. The PgUp, PgDn, Home and End keys can also "
+"be used to quickly reach the first or last available field."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1252
+msgid ""
+"TheB< Right> \\*(KA selects a field for repositioning and theB< Left> \\*(KA "
+"or the E<lt>B<Enter>E<gt> key commits that field's placement."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1256
+msgid ""
+"The `B<d>' key or the E<lt>B<Space>E<gt> bar toggles a field's display "
+"status, and thus the presence or absence of the asterisk."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1261
+msgid ""
+"The `B<s>' key designates a field as the sort field. \\*(XT 4c. TASK AREA "
+"Commands, SORTING for additional information regarding your selection of a "
+"sort field."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1265
+msgid ""
+"The `B<a>' and `B<w>' keys can be used to cycle through all available "
+"windows and the `B<q>' or E<lt>B<Esc>E<gt> keys exit Fields Management."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1274
+msgid ""
+"The Fields Management screen can also be used to change the \\*(CG in either "
+"\\*(FM or \\*(AM. Whatever was targeted when `q' or E<lt>EscE<gt> was "
+"pressed will be made current as you return to the \\*(We display. \\*(XT 5. "
+"ALTERNATE-DISPLAY Provisions and the `g' \\*(CI for insight into \\*(CWs and "
+"\\*(FGs."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1281
+msgid ""
+"\\*(NT Any window that has been scrolledI< horizontally> will be reset if "
+"any field changes are made via the Fields Management screen. AnyI< "
+"vertical> scrolled position, however, will not be affected. \\*(XT 5c. "
+"SCROLLING a Window for additional information regarding vertical and "
+"horizontal scrolling."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:1283
+#, no-wrap
+msgid "4. INTERACTIVE Commands"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1288
+msgid ""
+"Listed below is a brief index of commands within categories. Some commands "
+"appear more than once \\*(Em their meaning or scope may vary depending on "
+"the context in which they are issued."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1311
+#, no-wrap
+msgid ""
+" 4a.I< Global-Commands >\n"
+" E<lt>Ent/SpE<gt> ?, =, 0,\n"
+" A, B, d, E, e, g, H, h, I, k, q, r, s, W, X, Y, Z,\n"
+" ^G, ^K, ^N, ^P, ^U, ^L, ^R\n"
+" 4b.I< Summary-Area-Commands >\n"
+" C, l, t, m, 1, 2, 3, 4, 5, !\n"
+" 4c.I< Task-Area-Commands >\n"
+" Appearance: b, J, j, x, y, z\n"
+" Content: c, F, f, O, o, S, U, u, V, v, ^E\n"
+" Size: #, i, n\n"
+" Sorting: E<lt>, E<gt>, f, R\n"
+" 4d.I< Color-Mapping >\n"
+" E<lt>RetE<gt>, a, B, b, H, M, q, S, T, w, z, 0 - 7\n"
+" 5b.I< Commands-for-Windows >\n"
+" -, _, =, +, A, a, G, g, w\n"
+" 5c.I< Scrolling-a-Window >\n"
+" C, Up, Dn, Left, Right, PgUp, PgDn, Home, End\n"
+" 5d.I< Searching-in-a-Window >\n"
+" L, &\n"
+" 5e.I< Filtering-in-a-Window\n"
+" O, o, ^O, =, +>\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1314
+#, no-wrap
+msgid "4a. GLOBAL Commands"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1319
+msgid ""
+"The global \\*(CIs areB< always> available in both \\*(FM and \\*(AM. "
+"However, some of these \\*(CIs areB< not available> when running in Secure "
+"mode."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1323
+msgid ""
+"If you wish to know in advance whether or not your \\*(We has been secured, "
+"simply ask for help and view the system summary on the second line."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1324
+#, no-wrap
+msgid "\\ \\ E<lt>B<Enter>E<gt> or E<lt>B<Space>E<gt>\\ \\ :I<Refresh-Display >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1329
+msgid ""
+"These commands awaken \\*(We and following receipt of any input the entire "
+"display will be repainted. They also force an update of any hotplugged "
+"\\*(Pu or \\*(MP changes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1332
+msgid ""
+"Use either of these keys if you have a large delay interval and wish to see "
+"current status,"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1333
+#, no-wrap
+msgid "\\ \\ \\ B<?> | B<h>\\ \\ :I<Help >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1338
+msgid ""
+"There are two help levels available. The first will provide a reminder of "
+"all the basic \\*(CIs. If \\*(We isI< secured>, that screen will be "
+"abbreviated."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1341
+msgid ""
+"Typing `h' or `?' on that help screen will take you to help for those "
+"\\*(CIs applicable to \\*(AM."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1342
+#, no-wrap
+msgid "\\ \\ \\ B<=>\\ \\ :I<Exit-Display-Limits >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1349
+msgid ""
+"Removes restrictions on what is shown. This command will reverse any "
+"`i' (idle tasks), `n' (max tasks), `v' (hide children) and `F' focus "
+"commands that might be active. It also provides for an exit from PID "
+"monitoring, User filtering, Other filtering, Locate processing and Combine "
+"Cpus mode."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1352
+msgid ""
+"Additionally, if the window has been scrolled it will be reset with this "
+"command."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1353
+#, no-wrap
+msgid "\\ \\ \\ B<0>\\ \\ :I<Zero-Suppress> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1358
+msgid ""
+"This command determines whether zeros are shown or suppressed for many of "
+"the fields in a \\*(TW. Fields like UID, GID, NI, PR or P are not affected "
+"by this toggle."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1359
+#, no-wrap
+msgid "\\ \\ \\ B<A>\\ \\ :I<Alternate-Display-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1364
+msgid ""
+"This command will switch between \\*(FM and \\*(AM. \\*(XT 5. ALTERNATE-"
+"DISPLAY Provisions and the `g' \\*(CI for insight into \\*(CWs and \\*(FGs."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1365
+#, no-wrap
+msgid "\\ \\ \\ B<B>\\ \\ :I<Bold-Disable/Enable> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1371
+msgid ""
+"This command will influence use of the bold terminfo capability and altersB< "
+"both> the \\*(SA and \\*(TA for the \\*(CW. While it is intended primarily "
+"for use with dumb terminals, it can be applied anytime."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1376
+msgid ""
+"\\*(NT When this toggle is \\*O and \\*(We is operating in monochrome mode, "
+"theB< entire display> will appear as normal text. Thus, unless the `x' and/"
+"or `y' toggles are using reverse for emphasis, there will be no visual "
+"confirmation that they are even on."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1377
+#, no-wrap
+msgid "*\\ \\ B<d> | B<s>\\ \\ :I<Change-Delay-Time-interval >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1381
+msgid ""
+"You will be prompted to enter the delay time, in seconds, between display "
+"updates."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1387
+msgid ""
+"Fractional seconds are honored, but a negative number is not allowed. "
+"Entering 0 causes (nearly) continuous updates, with an unsatisfactory "
+"display as the system and tty driver try to keep up with \\*(We's demands. "
+"The delay value is inversely proportional to system loading, so set it with "
+"care."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1390
+msgid ""
+"If at any time you wish to know the current delay time, simply ask for help "
+"and view the system summary on the second line."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1391
+#, no-wrap
+msgid "\\ \\ \\ B<E>\\ \\ :I<Enforce-Summary-Memory-Scale> in Summary Area"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1396
+msgid ""
+"With this command you can cycle through the available \\*(SA memory scaling "
+"which ranges from KiB (kibibytes or 1,024 bytes) through EiB (exbibytes or "
+"1,152,921,504,606,846,976 bytes)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1400
+msgid ""
+"If you see a `+' between a displayed number and the following label, it "
+"means that \\*(We was forced to truncate some portion of that number. By "
+"raising the scaling factor, such truncation can be avoided."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1401
+#, no-wrap
+msgid "\\ \\ \\ B<e>\\ \\ :I<Enforce-Task-Memory-Scale> in Task Area"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1406
+msgid ""
+"With this command you can cycle through the available \\*(TA memory scaling "
+"which ranges from KiB (kibibytes or 1,024 bytes) through PiB (pebibytes or "
+"1,125,899,906,842,624 bytes)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1413
+msgid ""
+"While \\*(We will try to honor the selected target range, additional scaling "
+"might still be necessary in order to accommodate current values. If you "
+"wish to see a more homogeneous result in the memory columns, raising the "
+"scaling range will usually accomplish that goal. Raising it too high, "
+"however, is likely to produce an all zero result which cannot be suppressed "
+"with the `0' \\*(CI."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1414
+#, no-wrap
+msgid "\\ \\ \\ B<g>\\ \\ :I<Choose-Another-Window/Field-Group >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1420
+msgid ""
+"You will be prompted to enter a number between 1 and 4 designating the "
+"\\*(FG which should be made the \\*(CW. You will soon grow comfortable with "
+"these 4 windows, especially after experimenting with \\*(AM."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1421
+#, no-wrap
+msgid "\\ \\ \\ B<H>\\ \\ :I<Threads-mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1426
+msgid ""
+"When this toggle is \\*O, individual threads will be displayed for all "
+"processes in all visible \\*(TWs. Otherwise, \\*(We displays a summation of "
+"all threads in each process."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1427
+#, no-wrap
+msgid "\\ \\ \\ B<I>\\ \\ :I<Irix/Solaris-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1432
+msgid ""
+"When operating in Solaris mode (`I' toggled \\*F), a task's \\*(Pu usage "
+"will be divided by the total number of \\*(PUs. After issuing this command, "
+"you'll be told the new state of this toggle."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1433
+#, no-wrap
+msgid "*\\ \\ B<k>\\ \\ :I<Kill-a-task >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1436
+msgid "You will be prompted for a PID and then the signal to send."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1440 ../man/top.1:1462
+msgid ""
+"Entering no PID or a negative number will be interpreted as the default "
+"shown in the prompt (the first task displayed). A PID value of zero means "
+"the \\*(We program itself."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1443
+msgid ""
+"The default signal, as reflected in the prompt, is SIGTERM. However, you "
+"can send any signal, via number or name."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1446
+msgid ""
+"If you wish to abort the kill process, do one of the following depending on "
+"your progress:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1450
+#, no-wrap
+msgid ""
+" 1) at the pid prompt, type an invalid number\n"
+" 2) at the signal prompt, type 0 (or any invalid signal)\n"
+" 3) at any prompt, type E<lt>EscE<gt>\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1452
+#, no-wrap
+msgid "\\ \\ \\ B<q>\\ \\ :I<Quit >"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1455
+#, no-wrap
+msgid "*\\ \\ B<r>\\ \\ :I<Renice-a-Task >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1458
+msgid "You will be prompted for a PID and then the value to nice it to."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1468
+msgid ""
+"A positive nice value will cause a process to lose priority. Conversely, a "
+"negative nice value will cause a process to be viewed more favorably by the "
+"kernel. As a general rule, ordinary users can only increase the nice value "
+"and are prevented from lowering it."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1471
+msgid ""
+"If you wish to abort the renice process, do one of the following depending "
+"on your progress:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1475
+#, no-wrap
+msgid ""
+" 1) at the pid prompt, type an invalid number\n"
+" 2) at the nice prompt, type E<lt>EnterE<gt> with no input\n"
+" 3) at any prompt, type E<lt>EscE<gt>\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1477
+#, no-wrap
+msgid "\\ \\ \\ B<W>\\ \\ :I<Write-the-Configuration-File >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1483
+msgid ""
+"This will save all of your options and toggles plus the current display mode "
+"and delay time. By issuing this command just before quitting \\*(We, you "
+"will be able restart later in exactly that same state."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1484
+#, no-wrap
+msgid "\\ \\ \\ B<X>\\ \\ :I<Extra-Fixed-Width >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1489
+msgid ""
+"Some fields are fixed width and not scalable. As such, they are subject to "
+"truncation which would be indicated by a `+' in the last position."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1491
+msgid "This \\*(CI can be used to alter the widths of the following fields:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1503
+#, no-wrap
+msgid ""
+" I< field default field default field default >\n"
+" GID 5 GROUP 8 WCHAN 10\n"
+" LOGID 5 LXC 8 nsCGROUP 10\n"
+" RUID 5 RUSER 8 nsIPC 10\n"
+" SUID 5 SUSER 8 nsMNT 10\n"
+" UID 5 TTY 8 nsNET 10\n"
+" USER 8 nsPID 10\n"
+" nsTIME 10\n"
+" nsUSER 10\n"
+" nsUTS 10\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1508
+msgid ""
+"You will be prompted for the amount to be added to the default widths shown "
+"above. Entering zero forces a return to those defaults."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1511
+msgid ""
+"If you enter a negative number, \\*(We will automatically increase the "
+"column size as needed until there is no more truncated data."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1515
+msgid ""
+"\\*(NT Whether explicitly or automatically increased, the widths for these "
+"fields are never decreased by \\*(We. To narrow them you must specify a "
+"smaller number or restore the defaults."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1516
+#, no-wrap
+msgid "\\ \\ \\ B<Y>\\ \\ :I<Inspect-Other-Output >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1522
+msgid ""
+"After issuing the `Y' \\*(CI, you will be prompted for a target PID. Typing "
+"a value or accepting the default results in a separate screen. That screen "
+"can be used to view a variety of files or piped command output while the "
+"normal \\*(We iterative display is paused."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1526
+msgid ""
+"\\*(NT This \\*(CI is only fully realized when supporting entries have been "
+"manually added to the end of the \\*(We \\*(CF. For details on creating "
+"those entries, \\*(Xt 6b. ADDING INSPECT Entries."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1533
+msgid ""
+"Most of the keys used to navigate the Inspect feature are reflected in its "
+"header prologue. There are, however, additional keys available once you "
+"have selected a particular file or command. They are familiar to anyone who "
+"has used the pager `less' and are summarized here for future reference."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1543
+#, no-wrap
+msgid ""
+" I< key function >\n"
+" = alternate status-line, file or pipeline\n"
+" / find, equivalent to `L' locate\n"
+" n find next, equivalent to `&' locate next\n"
+" E<lt>SpaceE<gt> scroll down, equivalent to E<lt>PgDnE<gt>\n"
+" b scroll up, equivalent to E<lt>PgUpE<gt>\n"
+" g first line, equivalent to E<lt>HomeE<gt>\n"
+" G last line, equivalent to E<lt>EndE<gt>\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1545
+#, no-wrap
+msgid "\\ \\ \\ B<Z>\\ \\ :I<Change-Color-Mapping >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1550
+msgid ""
+"This key will take you to a separate screen where you can change the colors "
+"for the \\*(CW, or for all windows. For details regarding this \\*(CI "
+"\\*(Xt 4d. COLOR Mapping."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1553
+msgid "\\ \\ B<^G>\\ \\ :I<Display-Control-Groups > (Ctrl key + `g')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1555
+msgid "\\ \\ B<^K>\\ \\ :I<Display-Cmdline > (Ctrl key + `k')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1557
+msgid "\\ \\ B<^N>\\ \\ :I<Display-Environment > (Ctrl key + `n')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1559
+msgid "\\ \\ B<^P>\\ \\ :I<Display-Namesspaces > (Ctrl key + `p')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1561
+msgid "\\ \\ B<^U>\\ \\ :I<Display-Supplementary-Groups > (Ctrl key + `u')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1567
+msgid ""
+"Applied to the first process displayed, these commands will show that task's "
+"full (potentially wrapped) information. Such data will be displayed in a "
+"separate window at the bottom of the screen while normal \\*(We monitoring "
+"continues."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1572
+msgid ""
+"Keying theI< same> `Ctrl' command a second time removes that separate window "
+"as does the `=' command. Keying a different `Ctrl' combination, while one "
+"is already active, immediately transitions to the new information."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1577
+msgid ""
+"Notable among these provisions is the Ctrl+N (environment) command. Its "
+"output can be extensive and not easily read when line wrapped. A more "
+"readable version can be achieved with an `Inspect' entry in the rcfile like "
+"the following."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1580
+#, no-wrap
+msgid " pipe ^I Environment ^I cat /proc/%d/environ | tr '\\e0' '\\en'\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1584
+msgid ""
+"\\*(XC `Y' \\*(CI above and topic 6b. ADDING INSPECT Entries for additional "
+"information."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1588
+msgid ""
+"As an alternative to `Inspect', and available to all of these `Ctrl' "
+"commands, the tab key can be used to highlight individual elements in the "
+"bottom window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1590
+#, no-wrap
+msgid "\\ \\ B<^L>\\ \\ :I<Logged-Messages > (Ctrl key + `l')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1596
+msgid ""
+"The 10 most recent messages are displayed in a separate window at the bottom "
+"of the screen while normal \\*(We monitoring continues. Keying `^L' a "
+"second time removes that window as does the `=' command. Use the tab key to "
+"highlight individual messages."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1597
+#, no-wrap
+msgid "*\\ B<^R>\\ \\ :I<Renice-an-Autogroup > (Ctrl key + `r')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1601
+msgid ""
+"You will be prompted for a PID and then the value for its autogroup AGNI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1604
+msgid ""
+"Entering no PID will be interpreted as the default shown in the prompt (the "
+"first task displayed)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1610
+msgid ""
+"A positive AGNI value will cause processes in that autogroup to lose "
+"priority. Conversely, a negative value causes them to be viewed more "
+"favorably by the kernel. Ordinary users are not allowed to set negative "
+"AGNI values."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1612
+msgid "If you wish to abort the renice process type E<lt>EscE<gt>."
+msgstr ""
+
+#. type: IP
+#: ../man/top.1:1613 ../man/top.1:2134
+#, no-wrap
+msgid "*"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1616
+msgid ""
+"The commands shown with an \\*(AK are not available in Secure mode, nor will "
+"they be shown on the level-1 help screen."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1618
+#, no-wrap
+msgid "4b. SUMMARY AREA Commands"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1623
+msgid ""
+"The \\*(SA \\*(CIs areB< always available> in both \\*(FM and \\*(AM. They "
+"affect the beginning lines of your display and will determine the position "
+"of messages and prompts."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1627
+msgid ""
+"These commands always impact just the \\*(CG. \\*(XT 5. ALTERNATE-DISPLAY "
+"Provisions and the `g' \\*(CI for insight into \\*(CWs and \\*(FGs."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1628
+#, no-wrap
+msgid "\\ \\ \\ B<C>\\ \\ :I<Show-scroll-coordinates> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1633
+msgid ""
+"Toggle an informational message which is displayed whenever the message line "
+"is not otherwise being used. For additional information \\*(Xt 5c. "
+"SCROLLING a Window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1634
+#, no-wrap
+msgid "\\ \\ \\ B<l>\\ \\ :I<Load-Average/Uptime> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1638
+msgid ""
+"This is also the line containing the program name (possibly an alias) when "
+"operating in \\*(FM or the \\*(CW name when operating in \\*(AM."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1639
+#, no-wrap
+msgid "\\ \\ \\ B<t>\\ \\ :I<Task/Cpu-States> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1644
+msgid ""
+"This command affects from 2 to many \\*(SA lines, depending on the state of "
+"the `1', `2' or `3' \\*(CTs and whether or not \\*(We is running under true "
+"SMP."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1647
+msgid ""
+"This portion of the \\*(SA is also influenced by the `H' \\*(CI toggle, as "
+"reflected in the total label which shows either Tasks or Threads."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1649 ../man/top.1:1666
+msgid "This command serves as a 4-way toggle, cycling through these modes:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1654
+#, no-wrap
+msgid ""
+" 1. detailed percentages by category\n"
+" 2. abbreviated user/system and total % + bar graph\n"
+" 3. abbreviated user/system and total % + block graph\n"
+" 4. turn off task and cpu states display\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1659
+msgid ""
+"When operating in either of the graphic modes, the display becomes much more "
+"meaningful when individual CPUs or NUMA nodes are also displayed. \\*(XC "
+"the `1', `2' and `3' commands below for additional information."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1660
+#, no-wrap
+msgid "\\ \\ \\ B<m>\\ \\ :I<Memory/Swap-Usage> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1664
+msgid ""
+"This command affects the two \\*(SA lines dealing with physical and virtual "
+"memory."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1671
+#, no-wrap
+msgid ""
+" 1. detailed percentages by memory type\n"
+" 2. abbreviated % used/total available + bar graph\n"
+" 3. abbreviated % used/total available + block graph\n"
+" 4. turn off memory display\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1673
+#, no-wrap
+msgid "\\ \\ \\ B<1>\\ \\ :I<Single/Separate-Cpu-States> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1678
+msgid ""
+"This command affects how the `t' command's Cpu States portion is shown. "
+"Although this toggle exists primarily to serve massively-parallel SMP "
+"machines, it is not restricted to solely SMP environments."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1683
+msgid ""
+"When you see `%Cpu(s):' in the \\*(SA, the `1' toggle is \\*O and all \\*(Pu "
+"information is gathered in a single line. Otherwise, each \\*(Pu is "
+"displayed separately as: `%Cpu0, %Cpu1, ...' up to available screen height."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1684
+#, no-wrap
+msgid "\\ \\ \\ B<2>\\ \\ :I<NUMA-Nodes/Cpu-Summary> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1689
+msgid ""
+"This command toggles between the `1' command cpu summary display (only) or "
+"a summary display plus the cpu usage statistics for each NUMA Node. It is "
+"only available if a system has the requisite NUMA support."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1690
+#, no-wrap
+msgid "\\ \\ \\ B<3>\\ \\ :I<Expand-NUMA-Node >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1696
+msgid ""
+"You will be invited to enter a number representing a NUMA Node. Thereafter, "
+"a node summary plus the statistics for each cpu in that node will be shown "
+"until the `1', `2' or `4' \\*(CT is pressed. This \\*(CI is only available "
+"if a system has the requisite NUMA support."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1697
+#, no-wrap
+msgid "\\ \\ \\ B<4>\\ \\ :I<Display-Multiple-Elements-Adjacent> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1703
+msgid ""
+"This \\*(CT turns the `1' toggle \\*F and shows multiple \\*(PU and Memory "
+"results on each line. Each successive `4' key adds another \\*(PU until "
+"again reverting to separate lines for \\*(PU and Memory results."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1709
+msgid ""
+"A maximum of 8 \\*(PUs per line can be displayed in this manner. However, "
+"data truncation may occur before reaching the maximum. That is definitely "
+"true when displaying detailed statistics via the `t' \\*(CT since such data "
+"cannot be scaled like the graphic representations."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1712
+msgid ""
+"If one wished to quickly exit adjacent mode without cycling all the way to "
+"8, simply use the `1' \\*(CT."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1713
+#, no-wrap
+msgid "\\ \\ \\ B<5>\\ \\ :I<Display-P-Cores-and-E-Cores> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1719
+msgid ""
+"This \\*(CT is only active when the `t' toggle is \\*O and the `1', `2', `3' "
+"and `!' toggles are \\*F, thus showing individual \\*(PU results. It "
+"assumes a platform has multiple cores of two distinct types, either multi-"
+"threaded (P-Core) or single-threaded (E-Core)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1723
+msgid ""
+"While normally each \\*(Pu is displayed as `%Cpu0, %Cpu1, ...', this toggle "
+"can be used to identify and/or filter those \\*(Pus by their core type, "
+"either P-Core (performance) or E-Core (efficient)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1730
+msgid ""
+"The 1st time `5' is struck, each \\*(PU is displayed as `%CpB<P>' or "
+"`%CpB<E>' representing the two core types. The 2nd time, only P-Cores "
+"(%CpB<P>) will be shown. The 3rd time, only E-Cores (%CpB<E>) are "
+"displayed. When this \\*(CT is struck for the 4th time, the \\*(PU display "
+"returns to the normal `%Cpu' convention."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1733
+msgid ""
+"If separateI< performance> andI< efficient> categories are not present, this "
+"\\*(CT will have no effect."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1734
+#, no-wrap
+msgid "\\ \\ \\ B<!>\\ \\ :I<Combine-Cpus-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1740
+msgid ""
+"This \\*(CT is intended for massively parallel SMP environments where, even "
+"with the `4' \\*(CT, not all processors can be displayed. With each press "
+"of `!' the number of \\*(Pus combined is doubled thus reducing the total "
+"number of \\*(Pu lines displayed."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1747
+msgid ""
+"For example, with the first press of `!' two \\*(Pus will be combined and "
+"displayed as `0-1, 2-3, ...' instead of the normal `%Cpu0, %Cpu1, %Cpu2, "
+"%Cpu3, ...'. With a second `!' \\*(CT four \\*(Pus are combined and shown as "
+"`0-3, 4-7, ...'. Then the third `!' press, combining eight \\*(Pus, shows "
+"as `0-7, 8-15, ...', etc."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1751
+msgid ""
+"Such progression continues until individual \\*(Pus are again displayed and "
+"impacts both the `1' and `4' toggles (one or multiple columns). Use the `=' "
+"command to exit B<Combine Cpus> mode."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1757
+msgid ""
+"\\*(NT If the entire \\*(SA has been toggled \\*F for any window, you would "
+"be left with just theB< message line>. In that way, you will have maximized "
+"available task rows but (temporarily) sacrificed the program name in \\*(FM "
+"or the \\*(CW name when in \\*(AM."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1759
+#, no-wrap
+msgid "4c. TASK AREA Commands"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1762
+msgid "The \\*(TA \\*(CIs areB< always> available in \\*(FM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1765
+msgid ""
+"The \\*(TA \\*(CIs areB< never available> in \\*(AMI< if> the \\*(CW's "
+"\\*(TD has been toggled \\*F (\\*(Xt 5. ALTERNATE-DISPLAY Provisions)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1769
+msgid "B<APPEARANCE> of \\*(TW"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1770
+#, no-wrap
+msgid "\\ \\ \\ B<J>\\ \\ :I<Justify-Numeric-Columns> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1776
+msgid ""
+"Alternates between right-justified (the default) and left-justified numeric "
+"data. If the numeric data completely fills the available column, this "
+"\\*(CT may impact the column header only."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1777
+#, no-wrap
+msgid "\\ \\ \\ B<j>\\ \\ :I<Justify-Character-Columns> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1783
+msgid ""
+"Alternates between left-justified (the default) and right-justified "
+"character data. If the character data completely fills the available "
+"column, this \\*(CT may impact the column header only."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1788
+msgid ""
+"The following commands will also be influenced by the state of the global "
+"`B' (bold enable) toggle."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1790
+#, no-wrap
+msgid "\\ \\ \\ B<b>\\ \\ :I<Bold/Reverse> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1795
+msgid ""
+"This command will impact how the `x' and `y' toggles are displayed. It may "
+"also impact the \\*(SA when a bar graph has been selected for \\*(Pu states "
+"or memory usage via the `t' or `m' toggles."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1796
+#, no-wrap
+msgid "\\ \\ \\ B<x>\\ \\ :I<Column-Highlight> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1804
+#, no-wrap
+msgid ""
+"Changes highlighting for the current sort field.\n"
+"If you forget which field is being sorted this command can serve as a quick\n"
+"visual reminder, providing the sort field is being displayed.\n"
+"The sort field mightI< not> be visible because:\n"
+" 1) there is insufficientI< Screen Width >\n"
+" 2) the `f' \\*(CI turned it \\*F\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1805
+#, no-wrap
+msgid "\\ \\ \\ B<y>\\ \\ :I<Row-Highlight> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1810
+msgid ""
+"Changes highlighting for \"running\" tasks. For additional insight into "
+"this task state, \\*(Xt 3a. DESCRIPTIONS of Fields, the `S' field (Process "
+"Status)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1813
+msgid ""
+"Use of this provision provides important insight into your system's health. "
+"The only costs will be a few additional tty escape sequences."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1814
+#, no-wrap
+msgid "\\ \\ \\ B<z>\\ \\ :I<Color/Monochrome> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1820
+msgid ""
+"Switches the \\*(CW between your last used color scheme and the older form "
+"of black-on-white or white-on-black. This command will alterB< both> the "
+"\\*(SA and \\*(TA but does not affect the state of the `x', `y' or `b' "
+"toggles."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1824
+msgid "B<CONTENT> of \\*(TW"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1825
+#, no-wrap
+msgid "\\ \\ \\ B<c>\\ \\ :I<Command-Line/Program-Name> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1830
+msgid ""
+"This command will be honored whether or not the COMMAND column is currently "
+"visible. Later, should that field come into view, the change you applied "
+"will be seen."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1831
+#, no-wrap
+msgid "\\ \\ \\ B<F>\\ \\ :I<Maintain-Parent-Focus> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1836
+msgid ""
+"When in forest view mode, this key serves as a toggle to retain focus on a "
+"target task, presumably one with forked children. If forest view mode is "
+"\\*F this key has no effect."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1841
+msgid ""
+"The toggle is applied to the first (topmost) process in the \\*(CW. Once "
+"established, that task is always displayed as the first (topmost) process "
+"along with its forked children. All other processes will be suppressed."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1844
+msgid ""
+"\\*(NT keys like `i' (idle tasks), `n' (max tasks), `v' (hide children) and "
+"User/Other filtering remain accessible and can impact what is displayed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1845 ../man/top.1:2000
+#, no-wrap
+msgid "\\ \\ \\ B<f>\\ \\ :I<Fields-Management >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1851
+msgid ""
+"This key displays a separate screen where you can change which fields are "
+"displayed, their order and also designate the sort field. For additional "
+"information on this \\*(CI \\*(Xt 3b. MANAGING Fields."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1852
+#, no-wrap
+msgid "\\ \\ \\ B<O> | B<o>\\ \\ :I<Other-Filtering >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1858
+msgid ""
+"You will be prompted for the selection criteria which then determines which "
+"tasks will be shown in the \\*(CW. Your criteria can be made case sensitive "
+"or case can be ignored. And you determine if \\*(We should include or "
+"exclude matching tasks."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1861
+msgid ""
+"\\*(XT 5e. FILTERING in a window for details on these and additional related "
+"\\*(CIs."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1862
+#, no-wrap
+msgid "\\ \\ \\ B<S>\\ \\ :I<Cumulative-Time-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1866
+msgid ""
+"When Cumulative mode is \\*O, each process is listed with the \\*(Pu time "
+"that it and its dead children have used."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1873
+msgid ""
+"When \\*F, programs that fork into many separate tasks will appear less "
+"demanding. For programs like `init' or a shell this is appropriate but for "
+"others, like compilers, perhaps not. Experiment with two \\*(TWs sharing "
+"the same sort field but with different `S' states and see which "
+"representation you prefer."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1877
+msgid ""
+"After issuing this command, you'll be informed of the new state of this "
+"toggle. If you wish to know in advance whether or not Cumulative mode is in "
+"effect, simply ask for help and view the window summary on the second line."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1878
+#, no-wrap
+msgid "\\ \\ \\ B<U> | B<u>\\ \\ :I<Show-Specific-User-Only >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1883
+msgid ""
+"You will be prompted for theB< uid> orB< name> of the user to display. The -"
+"u option matches on B< effective> user whereas the -U option matches onB< "
+"any> user (real, effective, saved, or filesystem)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1888
+msgid ""
+"Thereafter, in that \\*(TW only matching users will be shown, or possibly no "
+"processes will be shown. Prepending an exclamation point (`!') to the user "
+"id or name instructs \\*(We to display only processes with users not "
+"matching the one provided."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1892
+msgid ""
+"Different \\*(TWs can be used to filter different users. Later, if you wish "
+"to monitor all users again in the \\*(CW, re-issue this command but just "
+"press E<lt>EnterE<gt> at the prompt."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1893
+#, no-wrap
+msgid "\\ \\ \\ B<V>\\ \\ :I<Forest-View-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1900
+msgid ""
+"In this mode, processes are reordered according to their parents and the "
+"layout of the COMMAND column resembles that of a tree. In forest view mode "
+"it is still possible to toggle between program name and command line (\\*(Xc "
+"`c' \\*(CI) or between processes and threads (\\*(Xc `H' \\*(CI)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1904
+msgid ""
+"\\*(NT Typing any key affecting the sort order will exit forest view mode in "
+"the \\*(CW. \\*(XT 4c. TASK AREA Commands, SORTING for information on those "
+"keys."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1905
+#, no-wrap
+msgid "\\ \\ \\ B<v>\\ \\ :I<Hide/Show-Children> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1909
+msgid ""
+"When in forest view mode, this key serves as a toggle to collapse or expand "
+"the children of a parent."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1913
+msgid ""
+"The toggle is applied against the first (topmost) process in the \\*(CW. "
+"\\*(XT 5c. SCROLLING a Window for additional information regarding vertical "
+"scrolling."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1916
+msgid ""
+"If the target process has not forked any children, this key has no effect. "
+"It also has no effect when not in forest view mode."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1917
+#, no-wrap
+msgid "\\ \\ B<^E>\\ \\ :I<Scale-CPU-Time-fields> (Ctrl key + `e')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1924
+msgid ""
+"The `time' fields are normally displayed with the greatest precision their "
+"widths permit. This toggle reduces that precision until it wraps. It also "
+"illustrates the scaling those fields I<might> experience automatically, "
+"which usually depends on how long the system runs."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1927
+msgid ""
+"For example, if `MMM:SS.hh' is shown, each ^E keystroke would change it to: "
+"`MM:SS', `Hours,MM', `Days+Hours' and finally `Weeks+Days'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1929
+msgid "Not all time fields are subject to the full range of such scaling."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1933
+msgid "B<SIZE> of \\*(TW"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1934
+#, no-wrap
+msgid "\\ \\ \\ B<i>\\ \\ :I<Idle-Process> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1942
+msgid ""
+"Displays all tasks or just active tasks. When this toggle is \\*F, tasks "
+"that have not used any \\*(PU since the last update will not be displayed. "
+"However, due to the granularity of the %CPU and TIME+ fields, some processes "
+"may still be displayed thatI< appear> to have usedI< no> \\*(PU."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1945
+msgid ""
+"If this command is applied to the last \\*(TD when in \\*(AM, then it will "
+"not affect the window's size, as all prior \\*(TDs will have already been "
+"painted."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1946
+#, no-wrap
+msgid "\\ \\ \\ B<n> | B<#>\\ \\ :I<Set-Maximum-Tasks >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1950
+msgid ""
+"You will be prompted to enter the number of tasks to display. The lessor of "
+"your number and available screen rows will be used."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1955
+msgid ""
+"When used in \\*(AM, this is the command that gives you precise control over "
+"the size of each currently visible \\*(TD, except for the very last. It "
+"will not affect the last window's size, as all prior \\*(TDs will have "
+"already been painted."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1958
+msgid ""
+"\\*(NT If you wish to increase the size of the last visible \\*(TD when in "
+"\\*(AM, simply decrease the size of the \\*(TD(s) above it."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1962
+msgid "B<SORTING> of \\*(TW"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1967
+msgid ""
+"For compatibility, this \\*(We supports most of the former \\*(We sort "
+"keys. Since this is primarily a service to former \\*(We users, these "
+"commands do not appear on any help screen."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1974
+#, no-wrap
+msgid ""
+" I< command sorted-field supported >\n"
+" A start time (non-display) B< No >\n"
+" M %MEM Yes\n"
+" N PID Yes\n"
+" P %CPU Yes\n"
+" T TIME+ Yes\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1979
+msgid ""
+"Before using any of the following sort provisions, \\*(We suggests that you "
+"temporarily turn on column highlighting using the `x' \\*(CI. That will "
+"help ensure that the actual sort environment matches your intent."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1985
+#, no-wrap
+msgid ""
+"The following \\*(CIs willB< only> be honored when the current sort field\n"
+"isB< visible>.\n"
+"The sort field mightI< not> be visible because:\n"
+" 1) there is insufficientI< Screen Width >\n"
+" 2) the `f' \\*(CI turned it \\*F\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1986
+#, no-wrap
+msgid "\\ \\ \\ B<E<lt>>\\ \\ :I<Move-Sort-Field-Left >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1990
+msgid ""
+"Moves the sort column to the left unless the current sort field is the first "
+"field being displayed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1991
+#, no-wrap
+msgid "\\ \\ \\ B<E<gt>>\\ \\ :I<Move-Sort-Field-Right >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1995
+msgid ""
+"Moves the sort column to the right unless the current sort field is the last "
+"field being displayed."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1999
+msgid ""
+"The following \\*(CIs willB< always> be honored whether or not the current "
+"sort field is visible."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2006
+msgid ""
+"This key displays a separate screen where you can change which field is used "
+"as the sort column, among other functions. This can be a convenient way to "
+"simply verify the current sort field, when running \\*(We with column "
+"highlighting turned \\*F."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2007
+#, no-wrap
+msgid "\\ \\ \\ B<R>\\ \\ :I<Reverse/Normal-Sort-Field> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2010
+msgid ""
+"Using this \\*(CI you can alternate between high-to-low and low-to-high "
+"sorts."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2012
+#, no-wrap
+msgid "4d. COLOR Mapping"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2017
+msgid ""
+"When you issue the `Z' \\*(CI, you will be presented with a separate "
+"screen. That screen can be used to change the colors in just the \\*(CW or "
+"in all four windows before returning to the \\*(We display."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2020
+msgid "The following \\*(CIs are available."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2031
+#, no-wrap
+msgid ""
+" B<4> upper case letters to select aB< target >\n"
+" B<8> numbers to select aB< color >\n"
+" normal toggles available \n"
+" B :bold disable/enable\n"
+" b :running tasks \"bold\"/reverse\n"
+" z :color/mono\n"
+" other commands available \n"
+" a/w :apply, then go to next/prior\n"
+" E<lt>EnterE<gt> :apply and exit\n"
+" q :abandon current changes and exit\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2037
+msgid ""
+"If you use `a' or `w' to cycle the targeted window, you will have applied "
+"the color scheme that was displayed when you left that window. You can, of "
+"course, easily return to any window and reapply different colors or turn "
+"colors \\*F completely with the `z' toggle."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2042
+msgid ""
+"The Color Mapping screen can also be used to change the \\*(CG in either "
+"\\*(FM or \\*(AM. Whatever was targeted when `q' or E<lt>EnterE<gt> was "
+"pressed will be made current as you return to the \\*(We display."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2044
+#, no-wrap
+msgid "5. ALTERNATE-DISPLAY Provisions"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2047
+#, no-wrap
+msgid "5a. WINDOWS Overview"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2049
+#, no-wrap
+msgid "B<Field Groups/Windows>:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2056
+msgid ""
+"In \\*(FM there is a single window represented by the entire screen. That "
+"single window can still be changed to display 1 of 4 differentB< field "
+"groups> (\\*(Xc `g' \\*(CI, repeated below). Each of the 4 \\*(FGs has a "
+"unique separately configurableB< \\*(SA > and its own configurableB< \\*(TA>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2059
+msgid ""
+"In \\*(AM, those 4 underlying \\*(FGs can now be made visible "
+"simultaneously, or can be turned \\*F individually at your command."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2064
+msgid ""
+"The \\*(SA will always exist, even if it's only the message line. At any "
+"given time onlyI< one> \\*(SA can be displayed. However, depending on your "
+"commands, there could be fromI< zero > toI< four> separate \\*(TDs currently "
+"showing on the screen."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2065
+#, no-wrap
+msgid "B<Current Window>:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2071
+msgid ""
+"The \\*(CW is the window associated with the \\*(SA and the window to which "
+"task related commands are always directed. Since in \\*(AM you can toggle "
+"the \\*(TD \\*F, some commands might be restricted for the \\*(CW."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2076
+msgid ""
+"A further complication arises when you have toggled the first \\*(SA line "
+"\\*F. With the loss of the window name (the `l' toggled line), you'll not "
+"easily know what window is the \\*(CW."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2078
+#, no-wrap
+msgid "5b. COMMANDS for Windows"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2080
+#, no-wrap
+msgid "\\ \\ \\ B<-> | B<_>\\ \\ :I<Show/Hide-Window(s)> toggles "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2087
+msgid ""
+"The `-' key turns the \\*(CW's \\*(TD \\*O and \\*F. When \\*O, that \\*(TA "
+"will show a minimum of the columns header you've established with the `f' "
+"\\*(CI. It will also reflect any other \\*(TA options/toggles you've "
+"applied yielding zero or more tasks."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2093
+msgid ""
+"The `_' key does the same for all \\*(TDs. In other words, it switches "
+"between the currently visible \\*(TD(s) and any \\*(TD(s) you had toggled "
+"\\*F. If all 4 \\*(TDs are currently visible, this \\*(CI will leave the "
+"\\*(SA as the only display element."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2094
+#, no-wrap
+msgid "*\\ \\ B<=> | B<+>\\ \\ :I<Equalize/Reset-Window(s) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2103
+msgid ""
+"The `=' key forces the \\*(CW's \\*(TD to be visible. It also reverses any "
+"active `i' (idle tasks), `n' (max tasks), `u/U' (user filter), `o/O' (other "
+"filter), `v' (hide children), `F' focused, `L' (locate) and `!' (combine "
+"cpus) commands. Also, if the window had been scrolled, it will be reset "
+"with this command. \\*(XT 5c. SCROLLING a Window for additional information "
+"regarding vertical and horizontal scrolling."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2108
+msgid ""
+"The `+' key does the same for all windows. The four \\*(TDs will reappear, "
+"evenly balanced, while retaining any customizations previously applied "
+"beyond those noted for the `=' \\*(CT."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2109
+#, no-wrap
+msgid "*\\ \\ B<A>\\ \\ :I<Alternate-Display-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2112
+msgid "This command will switch between \\*(FM and \\*(AM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2116
+msgid ""
+"The first time you issue this command, all four \\*(TDs will be shown. "
+"Thereafter when you switch modes, you will see only the \\*(TD(s) you've "
+"chosen to make visible."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2117
+#, no-wrap
+msgid "*\\ \\ B<a> | B<w>\\ \\ :I<Next-Window-Forward/Backward >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2123
+msgid ""
+"This will change the \\*(CW, which in turn changes the window to which "
+"commands are directed. These keys act in a circular fashion so you can "
+"reach any desired window using either key."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2127
+msgid ""
+"Assuming the window name is visible (you have not toggled `l' \\*F), "
+"whenever the \\*(CW name loses its emphasis/color, that's a reminder the "
+"\\*(TD is \\*F and many commands will be restricted."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2128
+#, no-wrap
+msgid "\\ \\ \\ B<G>\\ \\ :I<Change-Window/Field-Group-Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2133
+msgid ""
+"You will be prompted for a new name to be applied to the \\*(CW. It does "
+"not require that the window name be visible (the `l' toggle to be \\*O)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2136
+msgid "The \\*(CIs shown with an \\*(AK have use beyond \\*(AM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2140
+#, no-wrap
+msgid ""
+" =, A, g are always available\n"
+" a, w act the same with color mapping\n"
+" and fields management\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2142
+#, no-wrap
+msgid "*\\ \\ B<g>\\ \\ :I<Choose-Another-Window/Field-Group >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2146
+msgid ""
+"You will be prompted to enter a number between 1 and 4 designating the "
+"\\*(FG which should be made the \\*(CW."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2150
+msgid ""
+"In \\*(FM, this command is necessary to alter the \\*(CW. In \\*(AM, it is "
+"simply a less convenient alternative to the `a' and `w' commands."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2152
+#, no-wrap
+msgid "5c. SCROLLING a Window"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2158
+msgid ""
+"Typically a \\*(TW is a partial view into a system's total tasks/threads "
+"which shows only some of the available fields/columns. With these \\*(KSs, "
+"you can move that view vertically or horizontally to reveal any desired task "
+"or column."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2159
+#, no-wrap
+msgid "B<Up>,B<PgUp>\\ \\ :I<Scroll-Tasks >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2165
+msgid ""
+"Move the view up toward the first task row, until the first task is "
+"displayed at the top of the \\*(CW. The I<Up> \\*(KA moves a single line "
+"while I<PgUp> scrolls the entire window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2166
+#, no-wrap
+msgid "B<Down>,B<PgDn>\\ \\ :I<Scroll-Tasks >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2172
+msgid ""
+"Move the view down toward the last task row, until the last task is the only "
+"task displayed at the top of the \\*(CW. The I<Down> \\*(KA moves a single "
+"line while I<PgDn> scrolls the entire window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2173
+#, no-wrap
+msgid "B<Left>,B<Right>\\ \\ :I<Scroll-Columns >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2176
+msgid "Move the view of displayable fields horizontally one column at a time."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2181
+msgid ""
+"\\*(NT As a reminder, some fields/columns are not fixed-width but allocated "
+"all remaining screen width when visible. When scrolling right or left, that "
+"feature may produce some unexpected results initially."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2187
+msgid ""
+"Additionally, there are special provisions for any variable width field when "
+"positioned as the last displayed field. Once that field is reached via the "
+"right arrow key, and is thus the only column shown, you can continue "
+"scrolling horizontally within such a field. \\*(XC `C' \\*(CI below for "
+"additional information."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2188
+#, no-wrap
+msgid "B<Home>\\ \\ :I<Jump-to-Home-Position >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2191
+msgid "Reposition the display to the un-scrolled coordinates."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2192
+#, no-wrap
+msgid "B<End>\\ \\ :I<Jump-to-End-Position >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2196
+msgid ""
+"Reposition the display so that the rightmost column reflects the last "
+"displayable field and the bottom task row represents the last task."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2201
+msgid ""
+"\\*(NT From this position it is still possible to scrollI< down> andI< "
+"right> using the \\*(KAs. This is true until a single column and a single "
+"task is left as the only display element."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2202
+#, no-wrap
+msgid "B<C>\\ \\ :I<Show-scroll-coordinates> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2208
+msgid ""
+"Toggle an informational message which is displayed whenever the message line "
+"is not otherwise being used. That message will take one of two forms "
+"depending on whether or not a variable width column has also been scrolled."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2212
+#, no-wrap
+msgid ""
+" B<scroll coordinates: y = n/n (tasks), x = n/n (fields)>\n"
+" scroll coordinates: y = n/n (tasks), x = n/n (fields)B< + nn>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2220
+msgid ""
+"The coordinates shown as B<n>/B<n> are relative to the upper left corner of "
+"the \\*(CW. The additional `B<+\\ nn>' represents the displacement into a "
+"variable width column when it has been scrolled horizontally. Such "
+"displacement occurs in normal 8 character tab stop amounts via the right and "
+"left arrow keys."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2222
+#, no-wrap
+msgid "B<y = n/n (tasks) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2227
+msgid ""
+"The first B<n> represents the topmost visible task and is controlled by "
+"\\*(KSs. The second B<n> is updated automatically to reflect total tasks."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2228
+#, no-wrap
+msgid "B<x = n/n (fields) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2234
+msgid ""
+"The first B<n> represents the leftmost displayed column and is controlled by "
+"\\*(KSs. The second B<n> is the total number of displayable fields and is "
+"established with the `B<f>' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2239 ../man/top.1:2298
+msgid ""
+"The above \\*(CIs areB< always> available in \\*(FM butB< never> available "
+"in \\*(AM if the \\*(CW's \\*(TD has been toggled \\*F."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2243
+msgid ""
+"\\*(NT When any form of filtering is active, you can expect some slight "
+"aberrations when scrolling since not all tasks will be visible. This is "
+"particularly apparent when using the Up/Down \\*(KAs."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2245
+#, no-wrap
+msgid "5d. SEARCHING in a Window"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2248
+msgid ""
+"You can use these \\*(CIs to locate a task row containing a particular value."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2249
+#, no-wrap
+msgid "B<L>\\ \\ :I<Locate-a-string>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2254
+msgid ""
+"You will be prompted for the case-sensitive string to locate starting from "
+"the current window coordinates. There are no restrictions on search string "
+"content."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2258
+msgid ""
+"Searches are not limited to values from a single field or column. All of "
+"the values displayed in a task row are allowed in a search string. You may "
+"include spaces, numbers, symbols and even forest view artwork."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2261
+msgid ""
+"Keying E<lt>EnterE<gt> with no input will effectively disable the `&' key "
+"until a new search string is entered."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2262
+#, no-wrap
+msgid "B<&>\\ \\ :I<Locate-next>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2266
+msgid ""
+"Assuming a search string has been established, \\*(We will attempt to locate "
+"the next occurrence."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2273
+msgid ""
+"When a match is found, the current window is repositioned vertically so the "
+"task row containing that string is first. The scroll coordinates message "
+"can provide confirmation of such vertical repositioning (\\*(Xc `C' "
+"\\*(CI). Horizontal scrolling, however, is never altered via searching."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2276
+msgid ""
+"The availability of a matching string will be influenced by the following "
+"factors."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2277
+#, no-wrap
+msgid "a. Which fields are displayable from the total available,"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2280
+msgid "\\*(Xt 3b. MANAGING Fields."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2280
+#, no-wrap
+msgid "b. Scrolling a window vertically and/or horizontally,"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2283
+msgid "\\*(Xt 5c. SCROLLING a Window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2283
+#, no-wrap
+msgid "c. The state of the command/command-line toggle,"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2286
+msgid "\\*(Xc `c' \\*(CI."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2286
+#, no-wrap
+msgid "d. The stability of the chosen sort column,"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2289
+msgid "for example PID is good but %CPU bad."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2295
+msgid ""
+"If a search fails, restoring the \\*(CW home (unscrolled) position, "
+"scrolling horizontally, displaying command-lines or choosing a more stable "
+"sort field could yet produce a successful `&' search."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2300
+#, no-wrap
+msgid "5e. FILTERING in a Window"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2306
+msgid ""
+"You can use this `Other Filter' feature to establish selection criteria "
+"which will then determine which tasks are shown in the \\*(CW. Such filters "
+"can be made persistent if preserved in the rcfile via the `W' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2312
+msgid ""
+"Establishing a filter requires: 1) a field name; 2) an operator; and 3) a "
+"selection value, as a minimum. This is the most complex of \\*(We's user "
+"input requirements so, when you make a mistake, command recall will be your "
+"friend. Remember the Up/Down \\*(KAs or their aliases when prompted for "
+"input."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2314
+msgid "B<Filter Basics>"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2315
+#, no-wrap
+msgid "1. field names are case sensitive and spelled as in the header"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2317
+#, no-wrap
+msgid "2. selection values need not comprise the full displayed field"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2319
+#, no-wrap
+msgid "3. a selection is either case insensitive or sensitive to case"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2321
+#, no-wrap
+msgid "4. the default is inclusion, prepending `!' denotes exclusions"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2323
+#, no-wrap
+msgid "5. multiple selection criteria can be applied to a \\*(TW"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2325
+#, no-wrap
+msgid "6. inclusion and exclusion criteria can be used simultaneously"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2327
+#, no-wrap
+msgid "7. the 1 equality and 2 relational filters can be freely mixed"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2329
+#, no-wrap
+msgid "8. separate unique filters are maintained for each \\*(TW"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2337
+msgid ""
+"If a field is not turned on or is not currently in view, then your selection "
+"criteria will not affect the display. Later, should a filtered field become "
+"visible, the selection criteria will then be applied."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2340
+msgid "B<Keyboard Summary>"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2340
+#, no-wrap
+msgid "\\ \\ B<O>\\ \\ :I<Other-Filter> (upper case)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2343
+msgid "You will be prompted to establish a B<case sensitive> filter."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2344
+#, no-wrap
+msgid "\\ \\ B<o>\\ \\ :I<Other-Filter> (lower case)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2348
+msgid ""
+"You will be prompted to establish a filter that B<ignores case> when "
+"matching."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2349
+#, no-wrap
+msgid "\\ B<^O>\\ \\ :I<Show-Active-Filters> (Ctrl key + `o')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2353
+msgid ""
+"This can serve as a reminder of which filters are active in the \\*(CW. A "
+"summary will be shown on the message line until you press the "
+"E<lt>EnterE<gt> key."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2354
+#, no-wrap
+msgid "\\ \\ B<=>\\ \\ :I<Reset-Filtering> in current window"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2358
+msgid ""
+"This clears all of your selection criteria in the \\*(CW. It also has "
+"additional impact so please \\*(Xt 4a. GLOBAL Commands."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2359
+#, no-wrap
+msgid "\\ \\ B<+>\\ \\ :I<Reset-Filtering> in all windows"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2364
+msgid ""
+"This clears the selection criteria in all windows, assuming you are in "
+"\\*(AM. As with the `=' \\*(CI, it too has additional consequences so you "
+"might wish to \\*(Xt 5b. COMMANDS for Windows."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2367
+msgid "B<Input Requirements>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2373
+msgid ""
+"When prompted for selection criteria, the data you provide must take one of "
+"two forms. There are 3 required pieces of information, with a 4th as "
+"optional. These examples use spaces for clarity but your input generally "
+"would not."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2378
+#, no-wrap
+msgid ""
+" #1 B<#2> #3 ( required )\n"
+" Field-Name ? include-if-value\n"
+" B<!> Field-Name ? B<exclude>-if-value\n"
+" #4 ( optional )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2383
+msgid ""
+"Items #1, #3 and #4 should be self-explanatory. Item B<#2> represents both "
+"a required I<delimiter> and the I<operator> which must be one of either "
+"equality (`=') or relation (`E<lt>' or `E<gt>')."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2392
+msgid ""
+"The `=' equality operator requires only a partial match and that can reduce "
+"your `if-value' input requirements. The `E<gt>' or `E<lt>' relational "
+"operators always employ string comparisons, even with numeric fields. They "
+"are designed to work with a field's default I<justification> and with "
+"homogeneous data. When some field's numeric amounts have been subjected to "
+"I<scaling> while others have not, that data is no longer homogeneous."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2399
+msgid ""
+"If you establish a relational filter and you B<have> changed the default "
+"Numeric or Character I<justification>, that filter is likely to fail. When "
+"a relational filter is applied to a memory field and you B<have not> changed "
+"the I<scaling>, it may produce misleading results. This happens, for "
+"example, because `100.0m' (MiB) would appear greater than `1.000g' (GiB) "
+"when compared as strings."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2403
+msgid ""
+"If your filtered results appear suspect, simply altering justification or "
+"scaling may yet achieve the desired objective. See the `j', `J' and `e' "
+"\\*(CIs for additional information."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2406
+msgid "B<Potential Problems>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2410
+msgid ""
+"These B<GROUP> filters could produce the exact same results or the second "
+"one might not display anything at all, just a blank \\*(TW."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2413
+#, no-wrap
+msgid ""
+" GROUP=root ( only the same results when )\n"
+" GROUP=ROOT ( invoked via lower case `o' )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2418
+msgid ""
+"Either of these B<RES> filters might yield inconsistent and/or misleading "
+"results, depending on the current memory scaling factor. Or both filters "
+"could produce the exact same results."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2421
+#, no-wrap
+msgid ""
+" RESE<gt>9999 ( only the same results when )\n"
+" !RESE<lt>10000 ( memory scaling is at `KiB' )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2427
+msgid ""
+"This B<nMin> filter illustrates a problem unique to scalable fields. This "
+"particular field can display a maximum of 4 digits, beyond which values are "
+"automatically scaled to KiB or above. So while amounts greater than 9999 "
+"exist, they will appear as 2.6m, 197k, etc."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2429
+#, no-wrap
+msgid " nMinE<gt>9999 ( always a blank \\*(TW )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2433
+msgid "B<Potential Solutions>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2440
+msgid ""
+"These examples illustrate how Other Filtering can be creatively applied to "
+"achieve almost any desired result. Single quotes are sometimes shown to "
+"delimit the spaces which are part of a filter or to represent a request for "
+"status (^O) accurately. But if you used them with if-values in real life, "
+"no matches would be found."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2445
+msgid ""
+"Assuming field B<nTH> is displayed, the first filter will result in only "
+"multi-threaded processes being shown. It also reminds us that a trailing "
+"space is part of every displayed field. The second filter achieves the "
+"exact same results with less typing."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2448
+#, no-wrap
+msgid ""
+" !nTH=` 1 ' ( ` for clarity only )\n"
+" nTHE<gt>1 ( same with less i/p )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2452
+msgid ""
+"With Forest View mode active and the B<COMMAND> column in view, this filter "
+"effectively collapses child processes so that just 3 levels are shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2454
+#, no-wrap
+msgid " !COMMAND=` `- ' ( ` for clarity only )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2462
+msgid ""
+"The final two filters appear as in response to the status request key (^O). "
+"In reality, each filter would have required separate input. The B<PR> "
+"example shows the two concurrent filters necessary to display tasks with "
+"priorities of 20 or more, since some might be negative. Then by exploiting "
+"trailing spaces, the B<nMin> series of filters could achieve the failed "
+"`9999' objective discussed above."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2465
+#, no-wrap
+msgid ""
+" `PRE<gt>20' + `!PR=-' ( 2 for right result )\n"
+" `!nMin=0 ' + `!nMin=1 ' + `!nMin=2 ' + `!nMin=3 ' ...\n"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2469
+#, fuzzy, no-wrap
+msgid "6. FILES"
+msgstr "ARQUIVOS"
+
+#. ----------------------------------------------------------------------
+#. type: SS
+#: ../man/top.1:2471
+#, no-wrap
+msgid "6a. PERSONAL Configuration File"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2474
+msgid "This file is created or updated via the `W' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2477
+msgid ""
+"The legacy version is written as `$HOME/.your-name-4-\\*(We' + `rc' with a "
+"leading period."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2482
+msgid ""
+"A newly created \\*(CF is written as procps/your-name-4-\\*(We' + `rc' "
+"without a leading period. The procps directory will be subordinate to "
+"either $XDG_CONFIG_HOME when set as an absolute path or the $HOME/.config "
+"directory."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2484
+msgid "While not intended to be edited manually, here is the general layout:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2494
+#, no-wrap
+msgid ""
+" global # line 1: the program name/alias notation\n"
+" \" # line 2: id,altscr,irixps,delay,curwin\n"
+" per ea # line a: winname,fieldscur\n"
+" window # line b: winflags,sortindx,maxtasks,etc\n"
+" \" # line c: summclr,msgsclr,headclr,taskclr\n"
+" global # line 15: additional miscellaneous settings\n"
+" \" # any remaining lines are devoted to optional\n"
+" \" # active `other filters' discussed in section 5e above\n"
+" \" # plus `inspect' entries discussed in section 6b below\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2498
+msgid ""
+"If a valid absolute path to the rcfile cannot be established, customizations "
+"made to a running \\*(We will be impossible to preserve."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2500
+#, no-wrap
+msgid "6b. ADDING INSPECT Entries"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2507
+msgid ""
+"To exploit the `Y' \\*(CI, you must add entries at theB< end> of the \\*(We "
+"personal \\*(CF. Such entries simply reflect a file to be read or command/"
+"pipeline to be executed whose results will then be displayed in a separate "
+"scrollable, searchable window."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2510
+msgid ""
+"If you don't know the location or name of your \\*(We rcfile, use the `W' "
+"\\*(CI to rewrite it and note those details."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2517
+msgid ""
+"Inspect entries can be added with a redirected echo or by editing the "
+"\\*(CF. Redirecting an echo risks overwriting the rcfile should it replace "
+"(E<gt>) rather than append (E<gt>E<gt>) to that file. Conversely, when "
+"using an editor care must be taken not to corrupt existing lines, some of "
+"which could contain unprintable data or unusual characters depending on the "
+"\\*(We version under which that \\*(CF was saved."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2522
+msgid ""
+"Those Inspect entries beginning with a `#' character are ignored, regardless "
+"of content. Otherwise they consist of the following 3 elements, each of "
+"whichI< must> be separated by a tab character (thus 2 `\\et' total):"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2527
+#, no-wrap
+msgid ""
+" .type: literal `file' or `pipe'\n"
+" .name: selection shown on the Inspect screen\n"
+" .fmts: string representing a path or command\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2534
+msgid ""
+"The two types of Inspect entries areI< not> interchangeable. Those "
+"designated `B<file>' will be accessed using fopen and must reference a "
+"single file in the `.fmts' element. Entries specifying `B<pipe>' will "
+"employ popen, their `.fmts' element could contain many pipelined commands "
+"and, none can be interactive."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2538
+msgid ""
+"If the file or pipeline represented in your `.fmts' deals with the specific "
+"PID input or accepted when prompted, then the format string must also "
+"contain the `B<%d>' specifier, as these examples illustrate."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2542
+#, no-wrap
+msgid ""
+" .fmts= /proc/I<%d>/numa_maps\n"
+" .fmts= lsof -P -pI< %d>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2547
+msgid ""
+"For `B<pipe>' type entries only, you may also wish to redirect stderr to "
+"stdout for a more comprehensive result. Thus the format string becomes:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2550
+#, no-wrap
+msgid " .fmts= pmap -x %dI< 2E<gt>&1>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2557
+msgid ""
+"Here are examples of both types of Inspect entries as they might appear in "
+"the rcfile. The first entry will be ignored due to the initial `#' "
+"character. For clarity, the pseudo tab depictions (^I) are surrounded by an "
+"extra space but the actual tabs would not be."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2563
+#, no-wrap
+msgid ""
+" # pipe ^I Sockets ^I lsof -n -P -i 2E<gt>&1\n"
+" pipe ^I Open Files ^I lsof -P -p %d 2E<gt>&1\n"
+" file ^I NUMA Info ^I /proc/%d/numa_maps\n"
+" pipe ^I Log ^I tail -n100 /var/log/syslog | sort -Mr\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2570
+msgid ""
+"Except for the commented entry above, these next examples show what could be "
+"echoed to achieve similar results, assuming the rcfile name was `.toprc'. "
+"However, due to the embedded tab characters, each of these lines should be "
+"preceded by `B</bin/echo -e>', not just a simple an `echo', to enable "
+"backslash interpretation regardless of which shell you use."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2575
+#, no-wrap
+msgid ""
+" \"pipe\\etOpen Files\\etlsof -P -p %d 2E<gt>&1\" E<gt>E<gt> ~/.toprc\n"
+" \"file\\etNUMA Info\\et/proc/%d/numa_maps\" E<gt>E<gt> ~/.toprc\n"
+" \"pipe\\etLog\\ettail -n200 /var/log/syslog | sort -Mr\" E<gt>E<gt> ~/.toprc\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2584
+msgid ""
+"If any inspect entry you create produces output with unprintable characters "
+"they will be displayed in either the ^C notation or hexadecimal E<lt>FFE<gt> "
+"form, depending on their value. This applies to tab characters as well, "
+"which will show as `^I'. If you want a truer representation, any embedded "
+"tabs should be expanded. The following example takes what could have been a "
+"`file' entry but employs a `pipe' instead so as to expand the embedded tabs."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2590
+#, no-wrap
+msgid ""
+" # next would have contained `\\et' ...\n"
+" # file ^I E<lt>your_nameE<gt> ^I /proc/%d/status\n"
+" # but this will eliminate embedded `\\et' ...\n"
+" pipe ^I E<lt>your_nameE<gt> ^I cat /proc/%d/status | expand -\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2596
+msgid ""
+"\\*(NT Some programs might rely on I<SIGINT> to end. Therefore, if a "
+"`B<pipe>' such as the following is established, one must use Ctrl-C to "
+"terminate it in order to review the results. This is the single occasion "
+"where a `^C' will not also terminate \\*(We."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2599
+#, no-wrap
+msgid " pipe ^I Trace ^I /usr/bin/strace -p %d 2E<gt>&1\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2605
+msgid ""
+"Lastly, while `B<pipe>' type entries have been discussed in terms of "
+"pipelines and commands, there is nothing to prevent you from including I< "
+"shell scripts> as well. Perhaps even newly created scripts designed "
+"specifically for the `Y' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2611
+msgid ""
+"For example, as the number of your Inspect entries grows over time, the "
+"`Options:' row will be truncated when screen width is exceeded. That does "
+"not affect operation other than to make some selections invisible. However, "
+"if some choices are lost to truncation but you want to see more options, "
+"there is an easy solution hinted at below."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2616
+#, no-wrap
+msgid ""
+" Inspection Pause at pid ...\n"
+" Use: left/right then E<lt>EnterE<gt> ...\n"
+" Options: help 1 2 3 4 5 6 7 8 9 10 11 ...\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2622
+msgid ""
+"The entries in the \\*(We rcfile would have a number for the `.name' element "
+"and the `help' entry would identify a shell script you've written explaining "
+"what those numbered selections actually mean. In that way, many more "
+"choices can be made visible."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2624
+#, no-wrap
+msgid "6c. SYSTEM Configuration File"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2629
+msgid ""
+"This \\*(CF represents defaults for users who have not saved their own "
+"\\*(CF. The format mirrors exactly the personal \\*(CF and can also include "
+"`inspect' entries as explained above."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2631
+msgid "Creating it is a simple process."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2634
+msgid ""
+"1. Configure \\*(We appropriately for your installation and preserve that "
+"configuration with the `W' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2636
+msgid "2. Add and test any desired `inspect' entries."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2638
+msgid "3. Copy that \\*(CF to the I</etc/> directory as `B<topdefaultrc>'."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2640
+#, no-wrap
+msgid "6d. SYSTEM Restrictions File"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2644
+msgid ""
+"The presence of this file will influence which version of the help screen is "
+"shown to an ordinary user."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2648
+msgid ""
+"More importantly, it will limit what ordinary users are allowed to do when "
+"\\*(We is running. They will not be able to issue the following commands."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2652
+#, no-wrap
+msgid ""
+" k Kill a task\n"
+" r Renice a task\n"
+" d or s Change delay/sleep interval\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2657
+msgid ""
+"This \\*(CF is not created by \\*(We. Rather, it is created manually and "
+"placed it in the I</etc/> directory as `B<toprc>'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2659
+msgid "It should have exactly two lines, as shown in this example:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2662
+#, no-wrap
+msgid ""
+" s # line 1: secure mode switch\n"
+" 5.0 # line 2: delay interval in seconds\n"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2665
+#, fuzzy, no-wrap
+msgid "7. ENVIRONMENT VARIABLE(S)"
+msgstr "AMBIENTE"
+
+#. type: Plain text
+#: ../man/top.1:2668 ../man/procps_pids.3:201
+msgid "The value set for the following is unimportant, just its presence."
+msgstr ""
+
+#. type: IP
+#: ../man/top.1:2669 ../man/procps_pids.3:202
+#, no-wrap
+msgid "LIBPROC_HIDE_KERNEL"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2672
+msgid ""
+"This will prevent display of any kernel threads and exclude such processes "
+"from the \\*(SA Tasks/Threads counts."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2674
+#, no-wrap
+msgid "8. STUPID TRICKS Sampler"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2679
+msgid ""
+"Many of these tricks work best when you give \\*(We a scheduling boost. So "
+"plan on starting him with a nice value of -10, assuming you've got the "
+"authority."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2681
+#, no-wrap
+msgid "7a. Kernel Magic"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. sorry, just can't help it -- don't ya love the sound of this?
+#. ( apparently AM static was a potential concern )
+#. type: Plain text
+#: ../man/top.1:2686
+msgid "For these stupid tricks, \\*(We needs \\*(FM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2693
+msgid ""
+"The user interface, through prompts and help, intentionally implies that the "
+"delay interval is limited to tenths of a second. However, you're free to "
+"set any desired delay. If you want to see Linux at his scheduling best, try "
+"a delay of .09 seconds or less."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2696
+msgid ""
+"For this experiment, under x-windows open an xterm and maximize it. Then do "
+"the following:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2705
+#, no-wrap
+msgid ""
+" . provide a scheduling boost and tiny delay via:\n"
+" nice -n -10 \\*(We -d.09\n"
+" . keep sorted column highlighting \\*F so as to\n"
+" minimize path length\n"
+" . turn \\*O reverse row highlighting for emphasis\n"
+" . try various sort columns (TIME/MEM work well),\n"
+" and normal or reverse sorts to bring the most\n"
+" active processes into view\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2709
+msgid ""
+"What you'll see is a very busy Linux doing what he's always done for you, "
+"but there was no program available to illustrate this."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2715
+msgid ""
+"Under an xterm using `white-on-black' colors, on \\*(We's Color Mapping "
+"screen set the task color to black and be sure that task highlighting is set "
+"to bold, not reverse. Then set the delay interval to around .3 seconds."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2718
+msgid ""
+"After bringing the most active processes into view, what you'll see are the "
+"ghostly images of just the currently running tasks."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2724
+msgid ""
+"Delete the existing rcfile, or create a new symlink. Start this new version "
+"then type `T' (a secret key, \\*(Xt 4c. Task Area Commands, SORTING) "
+"followed by `W' and `q'. Finally, restart the program with -d0 (zero delay)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2729
+msgid ""
+"Your display will be refreshed at three times the rate of the former \\*(We, "
+"a 300% speed advantage. As \\*(We climbs the TIME ladder, be as patient as "
+"you can while speculating on whether or not \\*(We will ever reach the "
+"\\*(We."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2731
+#, no-wrap
+msgid "7b. Bouncing Windows"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2734
+msgid "For these stupid tricks, \\*(We needs \\*(AM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2740
+msgid ""
+"With 3 or 4 \\*(TDs visible, pick any window other than the last and turn "
+"idle processes \\*F using the `i' \\*(CT. Depending on where you applied "
+"`i', sometimes several \\*(TDs are bouncing and sometimes it's like an "
+"accordion, as \\*(We tries his best to allocate space."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2746
+msgid ""
+"Set each window's summary lines differently: one with no memory (`m'); "
+"another with no states (`t'); maybe one with nothing at all, just the "
+"message line. Then hold down `a' or `w' and watch a variation on bouncing "
+"windows \\*(Em hopping windows."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2751
+msgid ""
+"Display all 4 windows and for each, in turn, set idle processes to \\*F "
+"using the `i' \\*(CT. You've just entered the \"extreme bounce\" zone."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2753
+#, no-wrap
+msgid "7c. The Big Bird Window"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2756
+msgid "This stupid trick also requires \\*(AM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2761
+msgid ""
+"Display all 4 windows and make sure that 1:Def is the \\*(CW. Then, keep "
+"increasing window size with the `n' \\*(CI until all the other \\*(TDs are "
+"\"pushed out of the nest\"."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2765
+msgid ""
+"When they've all been displaced, toggle between all visible/invisible "
+"windows using the `_' \\*(CT. Then ponder this:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2767
+#, no-wrap
+msgid " is \\*(We fibbing or telling honestly your imposed truth?\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2769
+#, no-wrap
+msgid "7d. The Ol' Switcheroo"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2773
+msgid ""
+"This stupid trick works best without \\*(AM, since justification is active "
+"on a per window basis."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2778
+msgid ""
+"Start \\*(We and make COMMAND the last (rightmost) column displayed. If "
+"necessary, use the `c' \\*(CT to display command lines and ensure that "
+"forest view mode is active with the `V' \\*(CT."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2782
+msgid ""
+"Then use the up/down arrow keys to position the display so that some "
+"truncated command lines are shown (`+' in last position). You may have to "
+"resize your xterm to produce truncation."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2784
+msgid "Lastly, use the `j' \\*(CT to make the COMMAND column right justified."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2788
+msgid ""
+"Now use the right arrow key to reach the COMMAND column. Continuing with "
+"the right arrow key, watch closely the direction of travel for the command "
+"lines being shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2791
+#, no-wrap
+msgid " some lines travel left, while others travel right\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2793
+#, no-wrap
+msgid " eventually all lines will Switcheroo, and move right\n"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2795
+#, fuzzy, no-wrap
+msgid "9. BUGS"
+msgstr "ERROS"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2800
+#, fuzzy
+msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE .>"
+msgstr ""
+"Por favor, envie relatórios de erros para E<.UR procps@freelists.org> E<.UE>"
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2802
+#, fuzzy, no-wrap
+#| msgid "9. SEE Also"
+msgid "10. SEE Also"
+msgstr "9. VEJA TAMBÉM"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2810
+msgid ""
+"B<free>(1), B<ps>(1), B<uptime>(1), B<atop>(1), B<slabtop>(1), B<vmstat>(8), "
+"B<w>(1)"
+msgstr ""
+"B<free>(1), B<ps>(1), B<uptime>(1), B<atop>(1), B<slabtop>(1), B<vmstat>(8), "
+"B<w>(1)"
+
+#. type: TH
+#: ../man/procps.3:11
+#, fuzzy, no-wrap
+#| msgid "PROCPS_USERLEN"
+msgid "PROCPS"
+msgstr "PROCPS_USERLEN"
+
+#. type: TH
+#: ../man/procps.3:11 ../man/procps_misc.3:11 ../man/procps_pids.3:11
+#, no-wrap
+msgid "August 2022"
+msgstr ""
+
+#. type: TH
+#: ../man/procps.3:11 ../man/procps_misc.3:11 ../man/procps_pids.3:11
+#, no-wrap
+msgid "libproc2"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:17
+msgid "procps - API to access system level information in the /proc filesystem"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:22
+msgid ""
+"Five distinct interfaces are represented in this synopsis and named after "
+"the files they access in the /proc pseudo filesystem: B<diskstats>, "
+"B<meminfo>, B<slabinfo>, B<stat> and B<vmstat>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:26
+#, no-wrap
+msgid "#include E<lt>libproc2/B<named_interface>.hE<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:30
+#, no-wrap
+msgid ""
+"intB< procps_new > (struct info **I<info>);\n"
+"intB< procps_ref > (struct info *I<info>);\n"
+"intB< procps_unref> (struct info **I<info>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:35
+#, no-wrap
+msgid ""
+"struct result *B<procps_get> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<name>, ] B<diskstats> api only\n"
+" enum item I<item>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:41
+#, no-wrap
+msgid ""
+"struct stack *B<procps_select> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<name>, ] B<diskstats> api only\n"
+" enum item *I<items>,\n"
+" int I<numitems>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:47
+#, no-wrap
+msgid ""
+"struct reaped *B<procps_reap> (\n"
+" struct info *I<info>,\n"
+"[ enum reap_type I<what>, ] B<stat> api only\n"
+" enum item *I<items>,\n"
+" int I<numitems>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:54
+#, no-wrap
+msgid ""
+"struct stack **B<procps_sort> (\n"
+" struct info *I<info>,\n"
+" struct stack *I<stacks>[],\n"
+" int I<numstacked>,\n"
+" enum item I<sortitem>,\n"
+" enum sort_order I<order>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:61
+msgid ""
+"The above functions and structures are generic but the specific "
+"B<named_interface> would also be part of any identifiers. For example, "
+"`procps_new' would actually be `procps_B<meminfo>_new' and `info' would "
+"really be `B<diskstats>_info', etc."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:64
+msgid ""
+"The same B<named_interface> is used in each header file name with an "
+"appended `.h' suffix."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:66 ../man/procps_pids.3:60
+msgid "Link with I<-lproc2>."
+msgstr ""
+
+#. type: SS
+#: ../man/procps.3:68 ../man/procps_pids.3:62
+#, no-wrap
+msgid "Overview"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:74
+msgid ""
+"Central to these interfaces is a simple `result' structure reflecting an "
+"`item' plus its value (in a union with standard C language types as "
+"members). All `result' structures are automatically allocated and provided "
+"by the library."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:80 ../man/procps_pids.3:74
+msgid ""
+"By specifying an array of `items', these structures can be organized as a "
+"`stack', potentially yielding many results with a single function call. "
+"Thus, a `stack' can be viewed as a variable length record whose content and "
+"order is determined solely by the user."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:85
+msgid ""
+"As part of each interface there are two unique enumerators. The `noop' and "
+"`extra' items exist to hold user values. They are never set by the library, "
+"but the `extra' result will be zeroed with each library interaction."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:91
+msgid ""
+"The B<named_interface> header file will be an essential document during user "
+"program development. There you will find available items, their return type "
+"(the `result' struct member name) and the source for such values. "
+"Additional enumerators and structures are also documented there."
+msgstr ""
+
+#. type: SS
+#: ../man/procps.3:92 ../man/procps_pids.3:86
+#, no-wrap
+msgid "Usage"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:95
+msgid "The following would be a typical sequence of calls to these interfaces."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:100
+#, no-wrap
+msgid ""
+"1. B<procps_new()>\n"
+"2. B<procps_get()>, B<procps_select()> or B<procps_reap()>\n"
+"3. B<procps_unref()>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:106
+msgid ""
+"The B<get> function is used to retrieve a `result' structure for a single "
+"`item'. Alternatively, a B<GET> macro is available when only the return "
+"value is of interest."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:109
+msgid ""
+"The B<select> function can retrieve multiple `result' structures in a single "
+"`stack'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:115
+msgid ""
+"For unpredictable variable outcomes, the B<diskstats>, B<slabinfo> and "
+"B<stat> interfaces export a B<reap> function. It is used to retrieve "
+"multiple `stacks' each containing multiple `result' structures. Optionally, "
+"a user may choose to B<sort> those results."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:122 ../man/procps_pids.3:114
+msgid ""
+"To exploit any `stack', and access individual `result' structures, a "
+"I<relative_enum> is required as shown in the B<VAL> macro defined in the "
+"header file. Such values could be hard coded as: 0 through numitems-1. "
+"However, this need is typically satisfied by creating your own enumerators "
+"corresponding to the order of the `items' array."
+msgstr ""
+
+#. type: SS
+#: ../man/procps.3:123 ../man/procps_pids.3:115
+#, no-wrap
+msgid "Caveats"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:126
+msgid ""
+"The B<new>, B<ref>, B<unref>, B<get> and B<select> functions are available "
+"in all five interfaces."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:131 ../man/procps_pids.3:127
+msgid ""
+"For the B<new> and B<unref> functions, the address of an I<info> struct "
+"pointer must be supplied. With B<new> it must have been initialized to "
+"NULL. With B<unref> it will be reset to NULL if the reference count reaches "
+"zero."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:135
+msgid ""
+"In the case of the B<diskstats> interface, a I<name> parameter on the B<get> "
+"and B<select> functions identifies a disk or partition name"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:139
+msgid ""
+"For the B<stat> interface, a I<what> parameter on the B<reap> function "
+"identifies whether data for just CPUs or both CPUs and NUMA nodes is to be "
+"gathered."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:143
+msgid ""
+"When using the B<sort> function, the parameters I<stacks> and I<numstacked> "
+"would normally be those returned in the `reaped' structure."
+msgstr ""
+
+#. type: SH
+#: ../man/procps.3:144 ../man/procps_misc.3:127 ../man/procps_pids.3:148
+#, no-wrap
+msgid "RETURN VALUE"
+msgstr ""
+
+#. type: SS
+#: ../man/procps.3:145 ../man/procps_pids.3:149
+#, no-wrap
+msgid "Functions Returning an `int'"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:148 ../man/procps_misc.3:131 ../man/procps_pids.3:152
+msgid ""
+"An error will be indicated by a negative number that is always the inverse "
+"of some well known errno.h value."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:152 ../man/procps_pids.3:156
+msgid ""
+"Success is indicated by a zero return value. However, the B<ref> and "
+"B<unref> functions return the current I<info> structure reference count."
+msgstr ""
+
+#. type: SS
+#: ../man/procps.3:153 ../man/procps_misc.3:132 ../man/procps_pids.3:157
+#, no-wrap
+msgid "Functions Returning an `address'"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:156 ../man/procps_misc.3:135 ../man/procps_pids.3:160
+msgid ""
+"An error will be indicated by a NULL return pointer with the reason found in "
+"the formal errno value."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:158
+msgid "Success is indicated by a pointer to the named structure."
+msgstr ""
+
+#. type: SH
+#: ../man/procps.3:159 ../man/procps_pids.3:165
+#, no-wrap
+msgid "DEBUGGING"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:165
+msgid ""
+"To aid in program development, there is a provision that can help ensure "
+"`result' member references agree with library expectations. It assumes that "
+"a supplied macro in the header file is used to access the `result' value."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:168 ../man/procps_pids.3:185
+msgid ""
+"This feature can be activated through either of the following methods and "
+"any discrepancies will be written to B<stderr>."
+msgstr ""
+
+#. type: IP
+#: ../man/procps.3:169 ../man/procps_pids.3:186
+#, fuzzy, no-wrap
+#| msgid "1"
+msgid "1)"
+msgstr "1"
+
+#. type: Plain text
+#: ../man/procps.3:172
+msgid ""
+"Add CFLAGS='-DXTRA_PROCPS_DEBUG' to any other ./configure options employed."
+msgstr ""
+
+#. type: IP
+#: ../man/procps.3:173 ../man/procps_pids.3:190
+#, fuzzy, no-wrap
+#| msgid "2"
+msgid "2)"
+msgstr "2"
+
+#. type: Plain text
+#: ../man/procps.3:176
+msgid ""
+"Add #include E<lt>procps/xtra-procps-debug.hE<gt> to any program I<after> "
+"the named interface includes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:181 ../man/procps_pids.3:198
+msgid ""
+"This verification feature incurs substantial overhead. Therefore, it is "
+"important that it I<not> be activated for a production/release build."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:185
+#, fuzzy
+msgid "B<procps_misc>(3), B<procps_pids>(3), B<proc>(5)."
+msgstr "B<free>(1), B<ps>(1), B<top>(1), B<vmstat>(8)"
+
+#. type: TH
+#: ../man/procps_misc.3:11
+#, fuzzy, no-wrap
+#| msgid "PROCPS_USERLEN"
+msgid "PROCPS_MISC"
+msgstr "PROCPS_USERLEN"
+
+#. type: Plain text
+#: ../man/procps_misc.3:17
+msgid "procps_misc - API for miscellaneous information in the /proc filesystem"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:20
+#, no-wrap
+msgid "B<#include E<lt>libproc2/misc.hE<gt>>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:22
+#, no-wrap
+msgid "Platform Particulars\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:28
+#, no-wrap
+msgid ""
+"long B<procps_cpu_count> (void);\n"
+"long B<procps_hertz_get> (void);\n"
+"unsigned int B<procps_pid_length> (void);\n"
+"int B<procps_linux_version> (void);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:31
+#, no-wrap
+msgid "Runtime Particulars\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:37
+#, no-wrap
+msgid ""
+"int B< procps_loadavg> (double *I<av1>, double *I<av5>, double *I<av15>);\n"
+"int B< procps_uptime> (double *I<uptime_secs>, double *I<idle_secs>);\n"
+"char *B<procps_uptime_sprint> (void);\n"
+"char *B<procps_uptime_sprint_short> (void);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:40
+#, no-wrap
+msgid "Namespace Particulars\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:45
+#, no-wrap
+msgid ""
+"int B< procps_ns_get_id> (const char *I<name>);\n"
+"const charB< *procps_ns_get_name> (int I<id>);\n"
+"int B< procps_ns_read_pid> (int I<pid>, struct procps_ns *I<nsp>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:48
+#, no-wrap
+msgid "Link with I<-lproc2>.\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:54
+msgid ""
+"B<procps_cpu_count>() returns the number of CPUs that are currently online "
+"as B<sysconf(>I<_SC_NPROCESSORS_ONLY>B<)> or an assumed I<1>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:60
+msgid ""
+"B<procps_hertz_get>() returns the number of clock ticks per second as "
+"B<sysconf(>I<_SC_CLK_TCK>B<)> or an assumed I<100>. Dividing tics by this "
+"value yields seconds."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:65
+msgid ""
+"B<procps_pid_length>() returns the maximum string length for a PID on the "
+"system. For example, if the largest possible PID value on was 123, then the "
+"length would be 3. If the file I</proc/sys/kernel/pid_max> is unreadable, "
+"the value is assumed to be I<5>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:74
+msgid ""
+"B<procps_linux_version>() returns the current Linux version as an encoded "
+"integer. On non-Linux systems that have an emulated proc filesystem this "
+"function returns the version of the Linux emulation instead. The version "
+"consists of three positive integers representing the major, minor and patch "
+"levels. The following macros are provided for encoding a given Linux "
+"version or separating out the components of the current version."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:77
+msgid "LINUX_VERSION(\\ major\\ ,\\ minor\\ ,\\ patch\\ )"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:79
+msgid "LINUX_VERSION_MAJOR(\\ ver\\ )"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:81
+msgid "LINUX_VERSION_MINOR(\\ ver\\ )"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:83
+msgid "LINUX_VERSION_PATCH(\\ ver\\ )"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:88
+msgid ""
+"B<procps_loadavg>() fetches the system load average and puts the 1, 5 and "
+"15 minute averages into location(s) specified by any pointer which is not "
+"I<NULL>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:93
+msgid ""
+"B<procps_uptime>() returns uptime and/or idle seconds into location(s) "
+"specified by any pointer which is not I<NULL>. The B<sprint> varieties "
+"return a human-readable string in one of two forms."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:96
+msgid "HH:MM:SS up HH:MM, # users, load average: 1, 5, 15 MM averages"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:98
+msgid "up HH, MM"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:102
+msgid ""
+"B<procps_ns_get_id>() returns the integer id (enum namespace_type) of the "
+"namespace for the given namespace I<name>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:105
+msgid ""
+"B<procps_ns_get_name>() returns the name of the namespace for the given "
+"I<id> (enum namespace_type)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:110
+msgid ""
+"B<procps_ns_read_pid>() returns the inodes for the namespaces of the given "
+"process in the procps_ns structure pointed to by I<nsp>. Those inodes will "
+"appear in the order proscribed by enum namespace_type."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:123
+#, no-wrap
+msgid ""
+"enum namespace_type {\n"
+" PROCPS_NS_CGROUP,\n"
+" PROCPS_NS_IPC,\n"
+" PROCPS_NS_MNT,\n"
+" PROCPS_NS_NET,\n"
+" PROCPS_NS_PID,\n"
+" PROCPS_NS_TIME,\n"
+" PROCPS_NS_USER,\n"
+" PROCPS_NS_UTS\n"
+"};\n"
+msgstr ""
+
+#. type: SS
+#: ../man/procps_misc.3:128
+#, no-wrap
+msgid "Functions Returning an `int' or `long'"
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:137
+#, fuzzy, no-wrap
+#| msgid "I</proc/slabinfo>"
+msgid "I</proc/loadavg>"
+msgstr "I</proc/slabinfo>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:140
+msgid "The raw values for load average."
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:140
+#, no-wrap
+msgid "I</proc/sys/kernel/osrelease>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:143
+msgid "Contains the release version of the Linux kernel or proc filesystem."
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:143
+#, fuzzy, no-wrap
+#| msgid "I</proc/sys>"
+msgid "I</proc/sys/kernel/pid_max>"
+msgstr "I</proc/sys>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:146
+msgid ""
+"Contains the value at which PIDs wrap around, one greater than the maximum "
+"PID value."
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:146
+#, fuzzy, no-wrap
+#| msgid "I</proc>"
+msgid "I</proc/uptime>"
+msgstr "I</proc>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:149
+msgid "The raw values for uptime and idle time."
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:149
+#, no-wrap
+msgid "I</proc/E<lt>PIDE<gt>/ns>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:152
+msgid "contains the set of namespaces for a particular B<PID>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:156
+#, fuzzy
+msgid "B<procps>(3), B<procps_pids>(3), B<proc>(5)."
+msgstr "B<free>(1), B<ps>(1), B<top>(1), B<vmstat>(8)"
+
+#. type: TH
+#: ../man/procps_pids.3:11
+#, fuzzy, no-wrap
+#| msgid "PROCPS_USERLEN"
+msgid "PROCPS_PIDS"
+msgstr "PROCPS_USERLEN"
+
+#. type: Plain text
+#: ../man/procps_pids.3:17
+msgid "procps_pids - API to access process information in the /proc filesystem"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:21
+#, no-wrap
+msgid "#include E<lt>libproc2/pids.hE<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:25
+#, no-wrap
+msgid ""
+"intB< procps_pids_new > (struct pids_info **I<info>, enum pids_item *I<items>, int I<numitems>);\n"
+"intB< procps_pids_ref > (struct pids_info *I<info>);\n"
+"intB< procps_pids_unref> (struct pids_info **I<info>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:30
+#, no-wrap
+msgid ""
+"struct pids_stack *B<procps_pids_get> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<which>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:34
+#, no-wrap
+msgid ""
+"struct pids_fetch *B<procps_pids_reap> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<which>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:40
+#, no-wrap
+msgid ""
+"struct pids_fetch *B<procps_pids_select> (\n"
+" struct pids_info *I<info>,\n"
+" unsigned *I<these>,\n"
+" int I<numthese>,\n"
+" enum pids_select_type I<which>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:47
+#, no-wrap
+msgid ""
+"struct pids_stack **B<procps_pids_sort> (\n"
+" struct pids_info *I<info>,\n"
+" struct pids_stack *I<stacks>[],\n"
+" int I<numstacked>,\n"
+" enum pids_item I<sortitem>,\n"
+" enum pids_sort_order I<order>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:52
+#, no-wrap
+msgid ""
+"int B<procps_pids_reset> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_item *I<newitems>,\n"
+" int I<newnumitems>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:56
+#, no-wrap
+msgid ""
+"struct pids_stack *B<fatal_proc_unmounted> (\n"
+" struct pids_info *I<info>,\n"
+" int I<return_self>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:68
+msgid ""
+"Central to this interface is a simple `result' structure reflecting an "
+"`item' plus its value (in a union with standard C language types as "
+"members). All `result' structures are automatically allocated and provided "
+"by the library."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:79
+msgid ""
+"As part of this interface there are two unique enumerators. The `noop' and "
+"`extra' items exist to hold user values. They are never set by the library, "
+"but the `extra' result will be zeroed with each library interaction."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:85
+msgid ""
+"The pids.h file will be an essential document during user program "
+"development. There you will find available items, their return type (the "
+"`result' struct member name) and the source for such values. Additional "
+"enumerators and structures are also documented there."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:89
+msgid "The following would be a typical sequence of calls to this interface."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:95
+#, no-wrap
+msgid ""
+"1. B<fatal_proc_unmounted()>\n"
+"2. B<procps_pids_new()>\n"
+"3. B<procps_pids_get()>, B<procps_pids_reap()> or B<procps_pids_select()>\n"
+"4. B<procps_pids_unref()>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:100
+msgid ""
+"The B<get> function is an iterator for successive PIDs/TIDs, returning those "
+"`items' previously identified via B<new> or B<reset>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:107
+msgid ""
+"Two functions support unpredictable variable outcomes. The B<reap> function "
+"gathers data for all processes while the B<select> function deals with "
+"specific PIDs or UIDs. Both can return multiple `stacks' each containing "
+"multiple `result' structures. Optionally, a user may choose to B<sort> such "
+"results"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:122
+msgid ""
+"The E<lt>pidsE<gt> API differs from others in that those items of interest "
+"must be provided at B<new> or B<reset> time, the latter being unique to this "
+"API. If either the I<items> or I<numitems> parameter is zero at B<new> "
+"time, then B<reset> becomes mandatory before issuing any other call."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:130
+msgid ""
+"The B<get> and B<reap> functions use the I<which> parameter to specify "
+"whether just tasks or both tasks and threads are to be fetched."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:135
+msgid ""
+"The B<select> function requires an array of PIDs or UIDs as I<these> along "
+"with I<numthese> to identify which processes are to be fetched. This "
+"function then operates as a subset of B<reap>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:139
+msgid ""
+"When using the B<sort> function, the parameters I<stacks> and I<numstacked> "
+"would normally be those returned in the `pids_fetch' structure."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:147
+msgid ""
+"Lastly, a B<fatal_proc_unmounted> function may be called before any other "
+"function to ensure that the /proc/ directory is mounted. As such, the "
+"I<info> parameter would be NULL and the I<return_self> parameter zero. If, "
+"however, some items are desired for the issuing program (a I<return_self> "
+"other than zero) then the B<new> call must precede it to identify the "
+"I<items> and obtain the required I<info> pointer."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:164
+msgid ""
+"Success is indicated by a pointer to the named structure. However, if one "
+"survives the B<fatal_proc_unmounted> call, NULL is always returned when "
+"I<return_self> is zero."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:168
+msgid ""
+"To aid in program development, there are two procps-ng provisions that can "
+"be exploited."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:173
+msgid ""
+"The first is a supplied file named `libproc.supp' which may be useful when "
+"developing a I<multi-threaded> application. When used with the valgrind `--"
+"suppressions=' option, warnings associated with the procps library itself "
+"are avoided."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:177
+msgid ""
+"Such warnings arise because the library handles heap based allocations in a "
+"thread-safe manner. A I<single-threaded> application will not receive those "
+"warnings."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:182
+msgid ""
+"The second provision can help ensure `result' member references agree with "
+"library expectations. It assumes that a supplied macro in the header file "
+"is used to access the `result' value."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:189
+msgid ""
+"Add CFLAGS='-DXTRA_PROCPS_DEBUG' to any other ./configure options your "
+"project may employ."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:193
+msgid ""
+"Add #include E<lt>procps/xtra-procps-debug.hE<gt> to any program I<after> "
+"the #include E<lt>procps/pids.hE<gt>."
+msgstr ""
+
+#. type: SH
+#: ../man/procps_pids.3:199
+#, fuzzy, no-wrap
+msgid "ENVIRONMENT VARIABLE(S)"
+msgstr "AMBIENTE"
+
+#. type: Plain text
+#: ../man/procps_pids.3:206
+msgid ""
+"This will hide kernel threads which would otherwise be returned with a "
+"B<procps_pids_get>, B<procps_pids_select> or B<procps_pids_reap> call."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:210
+#, fuzzy
+msgid "B<procps>(3), B<procps_misc>(3), B<proc>(5)."
+msgstr "B<free>(1), B<ps>(1), B<top>(1), B<vmstat>(8)"
+
+#~ msgid "Total installed memory (MemTotal and SwapTotal in /proc/meminfo)"
+#~ msgstr "Memória total instalada (MemTotal e SwapTotal em /proc/meminfo)"
+
+#, no-wrap
+#~ msgid "2020-04-24"
+#~ msgstr "2020-04-24"
+
+#~ msgid "Please send bug reports to E<.MT procps@freelists.org> E<.ME>"
+#~ msgstr ""
+#~ "Por favor, envie relatórios de erros para E<.MT procps@freelists.org> E<."
+#~ "ME>"
+
+#~ msgid ""
+#~ "Defines the signal to send to each matched process. Either the numeric "
+#~ "or the symbolic signal name can be used. (B<pkill> only.)"
+#~ msgstr ""
+#~ "Define o sinal para enviar para cada processo correspondente. Tanto nome "
+#~ "numérico quanto o simbólico do sinal podem ser usado. (B<pkill> apenas)"
+
+#, no-wrap
+#~ msgid "2020-12-22"
+#~ msgstr "2020-12-22"
+
+#, no-wrap
+#~ msgid "-s"
+#~ msgstr "-s"
+
+#, no-wrap
+#~ msgid "-c"
+#~ msgstr "-c"
+
+#, no-wrap
+#~ msgid "-q"
+#~ msgstr "-q"
+
+#, no-wrap
+#~ msgid "-w"
+#~ msgstr "-w"
+
+#, no-wrap
+#~ msgid "-x"
+#~ msgstr "-x"
+
+#~ msgid "Jaromir Capik E<lt>jcapik@redhat.comE<gt>"
+#~ msgstr "Jaromir Capik E<lt>jcapik@redhat.comE<gt>"
+
+#, no-wrap
+#~ msgid "June 2011"
+#~ msgstr "Junho de 2011"
+
+#, no-wrap
+#~ msgid "2020-02-27"
+#~ msgstr "2020-02-27"
+
+#~ msgid "Use this option when all arguments prescribe a key to be set."
+#~ msgstr ""
+#~ "Use essa opção quando todos os argumentos prescrevem um chave a ser "
+#~ "definida."
+
+#~ msgid "B<vmstat> does not require special permissions."
+#~ msgstr "B<vmstat> não exige permissões especiais."
+
+#~ msgid ""
+#~ "These reports are intended to help identify system bottlenecks. Linux "
+#~ "B<vmstat> does not count itself as a running process."
+#~ msgstr ""
+#~ "Esses relatórios destinam-se a ajudar a identificar os gargalos do "
+#~ "sistema. O B<vmstat> do Linux não conta como um processo em execução."
+
+#~ msgid ""
+#~ "All linux blocks are currently 1024 bytes. Old kernels may report blocks "
+#~ "as 512 bytes, 2048 bytes, or 4096 bytes."
+#~ msgstr ""
+#~ "Todos os blocos do Linux são atualmente 1024 bytes. Os kernels antigos "
+#~ "podem relatar blocos como 512 bytes, 2048 bytes ou 4096 bytes."
+
+#~ msgid ""
+#~ "Since procps 3.1.9, vmstat lets you choose units (k, K, m, M). Default "
+#~ "is K (1024 bytes) in the default mode."
+#~ msgstr ""
+#~ "Desde procps 3.1.9, vmstat permite que você escolha unidades (k, K, m, "
+#~ "M). O padrão é K (1024 bytes) no modo padrão."
+
+#~ msgid "vmstat uses slabinfo 1.1"
+#~ msgstr "vmstat usa slabinfo 1.1"
+
+#, no-wrap
+#~ msgid ""
+#~ "/proc/meminfo\n"
+#~ "/proc/stat\n"
+#~ "/proc/*/stat\n"
+#~ msgstr ""
+#~ "/proc/meminfo\n"
+#~ "/proc/stat\n"
+#~ "/proc/*/stat\n"
+
+#~ msgid ""
+#~ "Does not tabulate the block io per device or count the number of system "
+#~ "calls."
+#~ msgstr ""
+#~ "Não tabula a e/s de bloco por dispositivo ou conta o número de chamadas "
+#~ "de sistema."
+
+#~ msgid "Written by E<.UR al172@yfn.\\:ysu.\\:edu> Henry Ware E<.UE .>"
+#~ msgstr "Escrito por E<.UR al172@yfn.\\:ysu.\\:edu> Henry Ware E<.UE .>"
+
+#~ msgid ""
+#~ "E<.UR ffrederick@users.\\:sourceforge.\\:net> Fabian Fr\\('ed\\('erick E<."
+#~ "UE> (diskstat, slab, partitions...)"
+#~ msgstr ""
+#~ "E<.UR ffrederick@users.\\:sourceforge.\\:net> Fabian Fr\\('ed\\('erick E<."
+#~ "UE> (diskstat, slab, partições...)"
+
+#, no-wrap
+#~ msgid "2020-12-06"
+#~ msgstr "2020-12-06"
+
+#~ msgid ""
+#~ "Note that B<ps -aux> is distinct from B<ps\\ aux>. The POSIX and UNIX "
+#~ "standards require that B<ps\\ -aux> print all processes owned by a user "
+#~ "named I<x>, as well as printing all processes that would be selected by "
+#~ "the B<-a> option. If the user named I<x> does not exist, this B<ps> may "
+#~ "interpret the command as B<ps\\ aux> instead and print a warning. This "
+#~ "behavior is intended to aid in transitioning old scripts and habits. It "
+#~ "is fragile, subject to change, and thus should not be relied upon."
+#~ msgstr ""
+#~ "Observe que B<ps -aux> é diferente de B<ps\\ aux>. Os padrões POSIX e "
+#~ "UNIX exigem que B<ps\\ -aux> imprima todos os processos pertencentes a um "
+#~ "usuário chamado I<x>, bem como imprima todos os processos que seriam "
+#~ "selecionados pela opção B<-a>. Se o usuário denominado I<x> não existir, "
+#~ "este B<ps> pode interpretar o comando como B<ps\\ aux> e imprimir um "
+#~ "aviso. Esse comportamento tem como objetivo ajudar na transição de "
+#~ "scripts e hábitos antigos. É frágil, sujeito a mudanças e, portanto, não "
+#~ "deve ser invocado."
+
+#, fuzzy, no-wrap
+#~ msgid "20"
+#~ msgstr "0"
+
+#, fuzzy, no-wrap
+#~ msgid "September 2020"
+#~ msgstr "Setembro de 2012"
+
+#~ msgid "September 2011"
+#~ msgstr "Setembro de 2011"
+
+#~ msgid "May 2012"
+#~ msgstr "Maio do 2012"
+
+#~ msgid "2018-03-03"
+#~ msgstr "2018-03-03"
+
+#~ msgid "July 2014"
+#~ msgstr "Julho de 2014"
+
+#~ msgid ""
+#~ "Memory used (mostly) by tmpfs (Shmem in /proc/meminfo, available on "
+#~ "kernels 2.6.32, displayed as zero if not available)"
+#~ msgstr ""
+#~ "Memória usada (em sua maioria) por tmpfs (Shmem em /proc/meminfo, "
+#~ "disponível em kernels 2.6.32, exibida como zero se não disponível)"
+
+#~ msgid "Use power of 1000 not 1024."
+#~ msgstr "Usa potência de 1000, não e de 1024."
+
+#~ msgid "Written by Brian Edmonds."
+#~ msgstr "Escrito por Brian Edmonds."
+
+#~ msgid "October 2011"
+#~ msgstr "Outubro de 2011"
+
+#~ msgid "October 2012"
+#~ msgstr "Outubro de 2012"
+
+#~ msgid "One or more processes matched the criteria."
+#~ msgstr "Um ou mais processos corresponderam aos critérios."
+
+#~ msgid ""
+#~ "B<pkill> and B<pgrep> were introduced in Sun's Solaris 7. This "
+#~ "implementation is fully compatible."
+#~ msgstr ""
+#~ "B<pkill> e B<pgrep> foram introduzidos no Solaris 7 da Sun. Essa "
+#~ "implementação é totalmente compatível."
+
+#~ msgid "24 Jul 2013"
+#~ msgstr "24 de Julho de 2013"
+
+#~ msgid "c\tcache size\tCACHE SIZE\n"
+#~ msgstr "c\ttamanho do cache\tTAM CACHE\n"
+
+#~ msgid "n\tname\tNAME\n"
+#~ msgstr "n\tnome\tNOME\n"
+
+#~ msgid "Jan 2012"
+#~ msgstr "Janeiro de 2012"
+
+#~ msgid "January 2012"
+#~ msgstr "Janeiro de 2012"
+
+#~ msgid ""
+#~ "I<command> is given to B<sh -c> which means that you may need to use "
+#~ "extra quoting to get the desired effect. This with the --exec option, "
+#~ "which passes the command to B<exec>(2) instead."
+#~ msgstr ""
+#~ "I<comando> é fornecido para B<sh -c>, o que significa que você pode "
+#~ "precisar usar aspas extras para obter o efeito desejado. Isso com a opção "
+#~ "--exec, o qual passa o comando para B<exec>(2)."
+
+#~ msgid "NOTE"
+#~ msgstr "NOTA"
+
+#~ msgid ""
+#~ "The original B<watch> was written by E<.UR rembo@\\:unisoft.\\:com> Tony "
+#~ "Rems E<.UE> in 1991, with mods and corrections by Francois Pinard. It "
+#~ "was reworked and new features added by E<.UR mkc@\\:acm.\\:org> Mike "
+#~ "Coleman E<.UE> in 1999. The beep, exec, and error handling features were "
+#~ "added by E<.UR morty@\\:frakir.\\:org> Morty Abzug E<.UE> in 2008. On a "
+#~ "not so dark and stormy morning in March of 2003, E<.UR asd@\\:suespammers."
+#~ "\\:org> Anthony DeRobertis E<.UE> got sick of his watches that should "
+#~ "update every minute eventually updating many seconds after the minute "
+#~ "started, and added microsecond precision. Unicode support was added in "
+#~ "2009 by E<.UR procps@\\:rrod.\\:net> Jarrod Lowe E<.UE>"
+#~ msgstr ""
+#~ "O B<watch> original foi escrito por E<.UR rembo@\\:unisoft.\\:com> Tony "
+#~ "Rems E<.UE> em 1991, com modificações e correções por Francois Pinard. "
+#~ "Ele foi retrabalhado e novos recursos foram adicionados por E<.UR mkc@\\:"
+#~ "acm.\\:org> Mike Coleman E<.UE> em 1999. Os recursos de tratamento de "
+#~ "apito (beep), exec e erro foram adicionados por E<.UR morty@\\:frakir.\\:"
+#~ "org> Morty Abzug E<.UE> em 2008. Em uma manhã não tão escura e "
+#~ "tempestuosa em março de 2003, E<.UR asd@\\:suespammers.\\:org> Anthony "
+#~ "DeRobertis E<.UE> cansou de seus monitoramentos que deviam atualizar cada "
+#~ "minuto eventualmente atualizarem muitos segundos após o início do minuto, "
+#~ "e adicionou precisão de microssegundo. Suporte a Unicode foi adicionado "
+#~ "em 2009 por E<.UR procps@\\:rrod.\\:net> Jarrod Lowe E<.UE>"
diff --git a/po-man/pt_BR/free.1 b/po-man/pt_BR/free.1
new file mode 100644
index 0000000..a90ab8e
--- /dev/null
+++ b/po-man/pt_BR/free.1
@@ -0,0 +1,166 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2003 Albert Cahalan
+.\" Copyright (c) 1993 Matt Welsh <mdw@sunsite.unc.edu>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH FREE 1 2023\-05\-02 procps\-ng "Comandos de usuário"
+.SH NOME
+free \- Exibe quantidade de memória livre e usada no sistema
+.SH SINOPSE
+\fBfree\fP [\fIopções\fP]
+.SH DESCRIÇÃO
+\fBfree\fP exibe a quantidade total de memória física e de swap livre e usada
+no sistema, bem como os buffers e caches usados pelo kernel. A informação é
+coletada através da análise de /proc/meminfo. As colunas exibidas são:
+.TP
+\fBtotal\fP
+Total usable memory (MemTotal and SwapTotal in /proc/meminfo). This includes
+the physical and swap memory minus a few reserved bits and kernel binary
+code.
+.TP
+\fBusada\fP
+Used or unavailable memory (calculated as \fBtotal\fP \- \fBavailable\fP)
+.TP
+\fBlivre\fP
+Memória não usada (MemFree e SwapFree em /proc/meminfo)
+.TP
+\fBcompart.\fP
+Memória usada (geralmente) por tmpfs (Shmem em /proc/meminfo)
+.TP
+\fBbuffers\fP
+Memória usada por buffers do kernel (Buffers em /proc/meminfo)
+.TP
+\fBcache\fP
+Memória usada por slabs e cache de páginas (Cached e SReclaimable em
+/proc/meminfo)
+.TP
+\fBbuff/cache\fP
+Soma de \fBbuffers\fP e \fBcache\fP
+.TP
+\fBdisponível\fP
+Estimativa da quantidade de memória disponível para iniciar novos
+aplicativos, sem fazer uso da swap. Ao contrário dos dados fornecidos pelos
+campos \fBcache\fP ou \fBlivre\fP, este campo leva em consideração o cache da
+página e também que nem todos os slabs recuperáveis de memória serão
+recuperados devido a itens em uso (MemAvailable em /proc/meminfo, disponível
+em kernels 3.14, emulado em kernels 2.6.27+; caso contrário, o mesmo que
+\fBlivre\fP)
+.SH OPÇÕES
+.TP
+\fB\-b\fP, \fB\-\-bytes\fP
+Exibe a quantidade de memória em bytes.
+.TP
+\fB\-k\fP, \fB\-\-kibi\fP
+Exibe a quantidade de memória em kibibytes. Esse é o padrão.
+.TP
+\fB\-m\fP, \fB\-\-mebi\fP
+Exibe a quantidade de memória em mebibytes.
+.TP
+\fB\-g\fP, \fB\-\-gibi\fP
+Exibe a quantidade de memória em gibibytes.
+.TP
+\fB\-\-tebi\fP
+Exibe a quantidade de memória em tebibytes.
+.TP
+\fB\-\-pebi\fP
+Exibe a quantidade de memória em pebibytes.
+.TP
+\fB\-\-kilo\fP
+Exibe a quantidade de memória em kilobytes. Implica em \-\-si.
+.TP
+\fB\-\-mega\fP
+Exibe a quantidade de memória em megabytes. Implica em \-\-si.
+.TP
+\fB\-\-giga\fP
+Exibe a quantidade de memória em gigabytes. Implica em \-\-si.
+.TP
+\fB\-\-tera\fP
+Exibe a quantidade de memória em terabytes. Implica em \-\-si.
+.TP
+\fB\-\-peta\fP
+Exibe a quantidade de memória em megabytes. Implica em \-\-si.
+.TP
+\fB\-h\fP, \fB\-\-human\fP
+Mostra todos os campos de saída automaticamente dimensionados para a unidade
+de três dígitos mais curta e exibe as unidades do resultado. As unidades a
+seguir são usadas.
+.sp
+.nf
+ B = bytes
+ Ki = kibibyte
+ Mi = mebibyte
+ Gi = gibibyte
+ Ti = tebibyte
+ Pi = pebibyte
+.fi
+.sp
+Se a unidade for omitida, e você tiver exbibyte de RAM ou swap, o número
+está em tebibytes e as colunas podem não estar alinhadas com o cabeçalho.
+.TP
+\fB\-w\fP, \fB\-\-wide\fP
+Muda para o modo amplo. O modo amplo produz linhas com mais de 80
+caracteres. Neste modo, \fBbuffers\fP e \fBcache\fP são relatados em duas colunas
+separadas.
+.TP
+\fB\-c\fP, \fB\-\-count\fP \fInúm\fP
+Exibe o resultado \fInúm\fP vezes. Requer a opção \fB\-s\fP.
+.TP
+\fB\-l\fP, \fB\-\-lohi\fP
+Mostra estatísticas detalhadas de memória baixa e alta.
+.TP
+\fB\-L\fP, \fB\-\-line\fP
+Show output on a single line, often used with the \fB\-s\fP option to show
+memory statistics repeatedly.
+.TP
+\fB\-s\fP, \fB\-\-seconds\fP \fIatraso\fP
+Mostra continuamente o resultado a cada \fIatraso\fP segundos. Você pode
+especificar qualquer número de ponto flutuante para \fIatraso\fP usando . ou ,
+para ponto decimal. \fBusleep\fP(3) é usado para tempos de atraso com resolução
+em microssegundos.
+.TP
+\fB\-\-si\fP
+Usa kilo, mega, giga etc (potência de 1000) em vez de kibi, mebi, gibi
+(potência de 1024).
+.TP
+\fB\-t\fP, \fB\-\-total\fP
+Exibe uma linha mostrando os totais das colunas.
+.TP
+\fB\-v\fP, \fB\-\-committed\fP
+Display a line showing the memory commit limit and amount of
+committed/uncommitted memory. The \fBtotal\fP column on this line will display
+the memory commit limit. This line is relevant if memory overcommit is
+disabled.
+.TP
+\fB\-\-help\fP
+Exibe a ajuda.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Exibe informação da versão.
+.PD
+.SH ARQUIVOS
+.TP
+/proc/meminfo
+informações da memória
+.PD
+.SH ERROS
+O valor para a coluna \fBcompart.\fP não está disponível para kernels
+anteriores a 2.6.32 e é exibido como zero.
+.TP
+Por favor, envie relatórios de erro para
+.UR procps@freelists.org
+.UE
+.SH "VEJA TAMBÉM"
+\fBps\fP(1), \fBslabtop\fP(1), \fBtop\fP(1), \fBvmstat\fP(8).
diff --git a/po-man/pt_BR/kill.1 b/po-man/pt_BR/kill.1
new file mode 100644
index 0000000..9bd49f4
--- /dev/null
+++ b/po-man/pt_BR/kill.1
@@ -0,0 +1,91 @@
+.\"
+.\" Copyright (c) 2002-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1998-2003 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH KILL 1 2023\-01\-16 procps\-ng "Comandos de usuário"
+.SH NOME
+kill \- envia um sinal para um processo
+.SH SINOPSE
+\fBkill\fP [opções] <pid> [...]
+.SH DESCRIÇÃO
+O sinal padrão do kill é TERM. Use \fB\-l\fP ou \fB\-L\fP para listar os sinais
+disponíveis. Os sinais particularmente úteis incluem HUP, INT, KILL, STOP,
+CONT e 0. Os sinais alternativos podem ser especificados de três maneiras:
+\fB\-9\fP, \fB\-SIGKILL\fP ou \fB\-KILL\fP. Valores de PID negativos podem ser usados
+para escolher todos os grupos de processo; veja a coluna PGID na saída do
+comando ps. Um PID de \fB\-1\fP é especial; indica todos os processos, exceto o
+próprio processo do kill e o init.
+.SH OPÇÕES
+.TP
+\fB<pid> [...]\fP
+Envia sinal para todo <pid> listado.
+.TP
+\fB\-<sinal>\fP
+.TQ
+\fB\-s <sinal>\fP
+.TQ
+\fB\-\-signal <sinal>\fP
+Especifica o \fBsinal\fP a ser enviado. O sinal pode ser especificado usando um
+nome ou número. O comportamento dos sinais é explicado na página de manual
+\fBsignal\fP(7).
+.TP
+\fB\-q\fP, \fB\-\-queue \fP\fIvalor\fP
+Use \fBsigqueue\fP(3) rather than \fBkill\fP(2) and the value argument is used
+to specify an integer to be sent with the signal. If the receiving process
+has installed a handler for this signal using the SA_SIGINFO flag to
+\fBsigaction\fP(2), then it can obtain this data via the si_value field of the
+siginfo_t structure.
+.TP
+\fB\-l\fP, \fB\-\-list\fP [\fIsinal\fP]
+Lista nomes de sinais. Essa opção possui um argumento opcional, que vai
+converter o número do sinal para um nome de sinal, e vice\-versa.
+.TP
+\fB\-L\fP,\fB\ \-\-table\fP
+Lista nomes de sinais em uma tabela legal.
+.TP
+.PD
+.SH NOTAS
+Seu shell (interpretador de linha de comando) pode ter um comando kill
+embutido. Você pode precisar executar o comando descrito aqui como /bin/kill
+para resolver o conflito.
+.SH EXEMPLOS
+.TP
+\fBkill \-9 \-1\fP
+Termina todos os processos que você pode terminar.
+.TP
+\fBkill \-l 11\fP
+Traduz o número 11 para um nome de sinal.
+.TP
+\fBkill \-L\fP
+Lista as escolhas de sinais disponíveis em uma tabela legal.
+.TP
+\fBkill 123 543 2341 3453\fP
+Envia um sinal padrão, SIGTERM, para todos esses processos.
+.SH "VEJA TAMBÉM"
+\fBkill\fP(2), \fBkillall\fP(1), \fBnice\fP(1), \fBpkill\fP(1), \fBrenice\fP(1),
+\fBsignal\fP(7), \fBsigqueue\fP(3), \fBskill\fP(1)
+.SH PADRÕES
+This command meets appropriate standards. The \fB\-L\fP flag is Linux\-specific.
+.SH AUTOR
+.UR albert@users.sf.net
+Albert Cahalan
+.UE
+wrote kill in 1999 to
+replace a bsdutils one that was not standards compliant. The util\-linux one
+might also work correctly.
+.SH "RELATANDO ERROS"
+Por favor, envie relatórios de erros para
+.UR procps@freelists.org
+.UE
diff --git a/po-man/pt_BR/pmap.1 b/po-man/pt_BR/pmap.1
new file mode 100644
index 0000000..f7f00aa
--- /dev/null
+++ b/po-man/pt_BR/pmap.1
@@ -0,0 +1,96 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2013 Jaromir Capik <jcapik@redhat.com>
+.\" Copyright (c) 1998-2002 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\" (The preceding line is a note to broken versions of man to tell
+.\" them to pre-process this man page with tbl)
+.\" Man page for pmap.
+.\" Licensed under version 2 of the GNU General Public License.
+.\" Written by Albert Cahalan.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PMAP 1 2020\-06\-04 procps\-ng "Comandos de usuário"
+.SH NOME
+pmap \- relata mapa de memória de um processo
+.SH SINOPSE
+\fBpmap\fP [\fIopções\fP] \fIpid\fP [...]
+.SH DESCRIÇÃO
+O comando \fBpmap\fP relata o mapa de memória de um processo ou processos.
+.SH OPÇÕES
+.TP
+\fB\-x\fP, \fB\-\-extended\fP
+Mostra o formato estendido.
+.TP
+\fB\-d\fP, \fB\-\-device\fP
+Mostra o formato do dispositivo.
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+Não exibe algumas linhas de cabeçalho ou rodapé.
+.TP
+\fB\-A\fP, \fB\-\-range\fP \fIbaixo\fP,\fIalto\fP
+Limita os resultados ao intervalo dado de endereços \fIbaixo\fP e \fIalto\fP. Note
+que os argumentos baixo e alto são strings separadas por vírgula.
+.TP
+\fB\-X\fP
+Mostra ainda mais detalhes que a opção \fB\-x\fP. AVISO: alterações de formato
+conforme \fI/proc/PID/smaps\fP
+.TP
+\fB\-XX\fP
+Mostra tudo que o kernel fornece
+.TP
+\fB\-p\fP, \fB\-\-show\-path\fP
+Mostra caminho completo aos arquivos na coluna de mapeamento
+.TP
+\fB\-c\fP, \fB\-\-read\-rc\fP
+Lê a configuração padrão
+.TP
+\fB\-C\fP, \fB\-\-read\-rc\-from\fP \fIarquivo\fP
+Lê a configuração a partir do \fIarquivo\fP
+.TP
+\fB\-n\fP, \fB\-\-create\-rc\fP
+Cria um novo configuração padrão
+.TP
+\fB\-N\fP, \fB\-\-create\-rc\-to\fP \fIarquivo\fP
+Cria uma nova configuração para \fIarquivo\fP
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Exibe um texto de ajuda e sai.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Exibe informação da versão e sai.
+.SH "STATUS DE SAÃDA"
+.PP
+.RS
+.PD 0
+.TP
+\fB0\fP
+Sucesso.
+.TP
+\fB1\fP
+Falha.
+.TP
+\fB42\fP
+Não encontrou todos os processos solicitados.
+.PD
+.RE
+.SH "VEJA TAMBÉM"
+\fBps\fP(1), \fBpgrep\fP(1)
+.SH PADRÕES
+Nenhum padrão aplicável, mas \fBpmap\fP se parece muito com um comando do
+SunOS.
+.SH "RELATANDO ERROS"
+Por favor, envie relatórios de erros para
+.UR procps@freelists.org
+.UE
diff --git a/po-man/pt_BR/pwdx.1 b/po-man/pt_BR/pwdx.1
new file mode 100644
index 0000000..5a09dc0
--- /dev/null
+++ b/po-man/pt_BR/pwdx.1
@@ -0,0 +1,42 @@
+.\"
+.\" Copyright (c) 2020-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2004 Nicholas Miel.
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PWDX 1 2020\-06\-04 procps\-ng "Comandos de usuário"
+.SH NOME
+pwdx \- relata o diretório de trabalho atual de um processo
+.SH SINOPSE
+\fBpwdx\fP [\fIopções\fP] \fIpid\fP [...]
+.SH OPÇÕES
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Exibe informação da versão e sai.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Exibe a tela de ajuda e sai.
+.SH "VEJA TAMBÉM"
+\fBps\fP(1), \fBpgrep\fP(1)
+.SH PADRÕES
+Nenhum padrão aplicável, mas \fBpwdx\fP se parece muito com um comando do
+SunOS.
+.SH AUTOR
+.UR nmiell@gmail.com
+Nicholas Miell
+.UE
+escreveu pwdx em 2004.
+.SH "RELATANDO ERROS"
+Por favor, envie relatórios de erros para
+.UR procps@freelists.org
+.UE
diff --git a/po-man/pt_BR/skill.1 b/po-man/pt_BR/skill.1
new file mode 100644
index 0000000..08d39b3
--- /dev/null
+++ b/po-man/pt_BR/skill.1
@@ -0,0 +1,116 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2006 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SKILL 1 2023\-08\-19 procps\-ng "Comandos de usuário"
+.SH NOME
+skill, snice \- envia um sinal ou relata status de processo
+.SH SINOPSE
+\fBskill\fP [\fIsinal\fP] [\fIopções\fP] \fIexpressão\fP
+.br
+\fBsnice\fP [\fInova prioridade\fP] [\fIopções\fP] \fIexpressão\fP
+.SH DESCRIÇÃO
+These tools are obsolete and unportable. The command syntax is poorly
+defined. Consider using the \fBkillall\fP, \fBpkill\fP, and \fBpgrep\fP commands
+instead.
+.PP
+The default signal for \fBskill\fP is TERM. Use \fB\-l\fP or \fB\-L\fP to list
+available signals. Particularly useful signals include HUP, INT, KILL,
+STOP, CONT, and 0. Alternate signals may be specified in three ways: \fB\-9\fP
+\fB\-SIGKILL\fP \fB\-KILL\fP.
+.PP
+The default priority for \fBsnice\fP is +4. Priority numbers range from +20
+(slowest) to \-20 (fastest). Negative priority numbers are restricted to
+administrative users.
+.SH OPÇÕES
+.TP
+\fB\-f\fP,\fB\ \-\-fast\fP
+Modo rápido. Essa opção não foi implementada.
+.TP
+\fB\-i\fP,\fB\ \-\-interactive\fP
+Uso interativo. Você será solicitado aprovação para cada ação.
+.TP
+\fB\-l\fP,\fB\ \-\-list\fP
+Lista todos os nomes de sinais.
+.TP
+\fB\-L\fP,\fB\ \-\-table\fP
+Lista todos os nomes de sinais em uma tabela legal.
+.TP
+\fB\-n\fP,\fB\ \-\-no\-action\fP
+Nenhuma ação; realiza uma simulação dos eventos que ocorreriam, mas não
+chega a alterar o sistema.
+.TP
+\fB\-v\fP,\fB\ \-\-verbose\fP
+Verboso; explica o que está sendo feito.
+.TP
+\fB\-w\fP,\fB\ \-\-warnings\fP
+Habilita avisos. Essa opção não foi implementada.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Exibe um texto de ajuda e sai.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Exibe informação da versão.
+.PD
+.SH "OPÇÕES DE SELEÇÃO DE PROCESSO"
+Critérios de seleção podem ser: terminal, user, pid, command. As opções
+abaixo podem ser usadas para garantir interpretação correta.
+.TP
+\fB\-t\fP, \fB\-\-tty\fP \fItty\fP
+A próxima expressão é um terminal (tty ou pty).
+.TP
+\fB\-u\fP, \fB\-\-user\fP \fIusuário\fP
+A próxima expressão é um nome de usuário.
+.TP
+\fB\-p\fP, \fB\-\-pid\fP \fIpid\fP
+A próxima expressão é um número de ID de processo.
+.TP
+\fB\-c\fP, \fB\-\-command\fP \fIcomando\fP
+A próxima expressão é um nome de comando.
+.TP
+\fB\-\-ns \fP\fIpid\fP
+Corresponde os processos que pertencem ao mesmo espaço de nomes e pid.
+.TP
+\fB\-\-nslist \fP\fIns\/\fP,\,\fI...\/\fP
+list which namespaces will be considered for the \fB\-\-ns\fP option. Available
+namespaces: ipc, mnt, net, pid, user, uts.
+.PD
+.SH SINAIS
+O comportamento de sinais é explicado na página de manual \fBsignal\fP(7).
+.SH EXEMPLOS
+.TP
+\fBsnice \-c seti \-c crack +7\fP
++Slow down \fBseti\fP and \fBcrack\fP commands.
+.TP
+\fBskill \-KILL \-t /dev/pts/*\fP
+Termina usuários nos dispositivos PTY.
+.TP
+\fBskill \-STOP \-u viro \-u lm \-u davem\fP
+Para três usuários.
+.SH "VEJA TAMBÉM"
+\fBkill\fP(1), \fBkill\fP(2), \fBkillall\fP(1), \fBnice\fP(1), \fBpkill\fP(1),
+\fBrenice\fP(1), \fBsignal\fP(7)
+.SH PADRÕES
+Nenhum padrão aplicável.
+.SH AUTOR
+.MT albert@users.sf.net
+Albert Cahalan
+.ME
+escreveu skill e snice em
+1999 como uma substituição para uma versão não livre.
+.SH "RELATANDO ERROS"
+Por favor, envie relatórios de erros para
+.UR procps@freelists.org
+.UE
diff --git a/po-man/pt_BR/slabtop.1 b/po-man/pt_BR/slabtop.1
new file mode 100644
index 0000000..7f6666d
--- /dev/null
+++ b/po-man/pt_BR/slabtop.1
@@ -0,0 +1,110 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2004-2006 Albert Cahalan
+.\" Copyright (C) 2003 Chris Rivera
+.\"
+.\" This program is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU Lesser General Public License as
+.\" published by the Free Software Foundation; either version 2.1 of the
+.\" License, or (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SLABTOP 1 2021\-03\-11 procps\-ng "Comandos de usuário"
+.SH NOME
+slabtop \- exibe informações de cache de slabs do kernel em tempo real
+.SH SINOPSE
+\fBslabtop\fP [\fIopções\fP]
+.SH DESCRIÇÃO
+\fBslabtop\fP exibe informações detalhadas do cache de slabs do kernel em tempo
+real. Ele exibe uma listagem dos caches superiores ordenados por um dos
+critérios de classificação listados. Ele também exibe um cabeçalho de
+estatísticas preenchido com informações da camada de slab.
+.SH OPÇÕES
+Invocação normal do \fBslabtop\fP não exibe quaisquer opções. O comportamento,
+porém, pode ser ajustado especificando uma ou mais das seguintes opções:
+.TP
+\fB\-d\fP, \fB\-\-delay\fP=\fIN\fP
+Refresh the display every \fIn\fP in seconds. By default, \fBslabtop\fP refreshes
+the display every three seconds. To exit the program, hit \fBq\fP. This
+cannot be combined with the \fB\-o\fP option.
+.TP
+\fB\-s\fP, \fB\-\-sort\fP=\fIS\fP
+Ordena por \fIS\fP, sendo \fIS\fP um dos critérios de ordem.
+.TP
+\fB\-o\fP, \fB\-\-once\fP
+Exige a saída uma vez e, então, sai.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Exibe informação da versão e sai.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Exibe informação de uso e sai.
+.SH "CRITÉRIOS DE ORDENAÇÃO"
+Os seguintes são critérios de ordenação válidos utilizados para classificar
+os caches de slabs individuais e, assim, determinar quais são os primeiros
+caches de slabs para exibir. O critério de classificação padrão é
+classificar pelo número de objetos ("o").
+.PP
+Os critérios de ordenação também pode ser alterado enquanto o \fBslabtop\fP
+está sendo executado pressionando o caractere associado.
+.TS
+l l l.
+\fBcaractere\fP \fBdescrição\fP \fBcabeçalho\fP
+a número de objetos ativos ATIVOS
+b objetos por slab OBJ/SLAB
+c tamanho de cache TAMANHO DE CACHE
+l número de slabs SLABS
+v número de slabs ativos N/D
+n nome NOME\:
+o número de objetos OBJS
+p páginas por slab N/D
+s tamanho do objeto TAM OBJ
+u utilização de cache USO
+.TE
+.SH COMANDOS
+\fBslabtop\fP aceita comandos de teclado do usuário durante o uso. Os seguintes
+são suportados. No caso de letras, ambos os casos são aceitos.
+.PP
+Cada um dos caracteres de ordenação válidos também são aceitos, para alterar
+a rotina de ordenação. Veja a seção \fBCRITÉRIOS DE ORDENAÇÃO\fP.
+.TP
+\fB<BARRA DE ESPAÇO>\fP
+Atualiza a tela.
+.TP
+\fBQ\fP
+Sai do programa.
+.SH ARQUIVOS
+.TP
+\fI/proc/slabinfo\fP
+Informações de slabs
+.SH "VEJA TAMBÉM"
+\fBfree\fP(1), \fBps\fP(1), \fBtop\fP(1), \fBvmstat\fP(8)
+.SH NOTAS
+Atualmente, \fBslabtop\fP requer um kernel 2.4 ou posterior (especificamente,
+uma \fI/proc/slabinfo\fP com versão 1.1 ou posterior). Deve haver suporte ao
+kernel 2.2 no futuro.
+.PP
+The \fBslabtop\fP statistic header is tracking how many bytes of slabs are
+being used and is not a measure of physical memory. The 'Slab' field in the
+\fI/proc/meminfo\fP file is tracking information about used slab physical
+memory.
+.PP
+The \fBCACHE SIZE\fP column is not accurate, it's the upper limit of memory
+used by specific slab. When system using slub (most common case) is under
+high memory pressure, there are slab order fallbacks, which means "pages per
+slab" is not constant and may decrease.
+.SH AUTORES
+Escrito porChris Rivera e Robert Love.
+.PP
+\fBslabtop\fP foi inspirado no script perl de Martin Bligh, \fBvmtop\fP.
+.SH "RELATANDO ERROS"
+Por favor, envie relatórios de erros para
+.UR procps@freelists.org
+.UE
diff --git a/po-man/pt_BR/sysctl.8 b/po-man/pt_BR/sysctl.8
new file mode 100644
index 0000000..8cd0e50
--- /dev/null
+++ b/po-man/pt_BR/sysctl.8
@@ -0,0 +1,177 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2004-2006 Albert Cahalan
+.\" Copyright (c) 1999 George Staikos <staikos@0wned.org>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SYSCTL 8 2023\-08\-19 procps\-ng "Administração do sistema"
+.SH NOME
+sysctl \- configura parâmetros do kernel em tempo de execução
+.SH SINOPSE
+\fBsysctl\fP [\fIopções\fP] [\fIvariável\fP[\fB=\fP\fIvalor\fP]] [...]
+.br
+\fBsysctl \-p\fP [\fIarquivo\fP ou \fIregexp\fP] [...]
+.SH DESCRIÇÃO
+\fBsysctl\fP is used to modify kernel parameters at runtime. The parameters
+available are those listed under \fI/proc/sys/\fP. Procfs is required for
+\fBsysctl\fP support in Linux. You can use \fBsysctl\fP to both read and write
+sysctl data.
+.SH PARÂMETROS
+.TP
+\fIvariável\fP
+O nome da chave a ser lida (p. ex., kernel.ostype). O separador "/" também é
+aceito no lugar de um ".".
+.TP
+\fIvariável\fP=\fIvalor\fP
+Para definir uma chave, use a forma \fIvariável\fP=\fIvalor\fP, sendo \fIvariável\fP
+a chave e \fIvalor\fP o valor para configurá\-la. Se o valor contiver aspas ou
+os caracteres que são analisados pelo shell, talvez seja necessário incluir
+o valor entre aspas duplas.
+.TP
+\fB\-n\fP, \fB\-\-values\fP
+Use essa opção para desabilitar impressão do nome da chave ao imprimir
+valores.
+.TP
+\fB\-e\fP, \fB\-\-ignore\fP
+Use essa opção para ignorar erros sobre as chaves desconhecidas.
+.TP
+\fB\-N\fP, \fB\-\-names\fP
+Use esta opção para exibir apenas os nomes. Pode ser útil com shells que
+tenham um completamento programável.
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+Use essa opção para não exibir os valores definidos para stdout (saída
+padrão).
+.TP
+\fB\-w\fP, \fB\-\-write\fP
+Force all arguments to be write arguments and print an error if they cannot
+be parsed this way.
+.TP
+\fB\-p\fP[\fIARQUIVO\fP], \fB\-\-load\fP[=\fIARQUIVO\fP]
+Load in \fBsysctl\fP settings from the file specified or \fI/etc/sysctl.conf\fP if
+none given. Specifying \- as filename means reading data from standard
+input. Using this option will mean arguments to \fBsysctl\fP are files, which
+are read in the order they are specified. The file argument may be
+specified as regular expression.
+.TP
+\fB\-a\fP, \fB\-\-all\fP
+Exibe todos os valores disponíveis atualmente.
+.TP
+\fB\-\-deprecated\fP
+Inclui parâmetros obsoletos para listagem de valores de \fB\-\-all\fP.
+.TP
+\fB\-b\fP, \fB\-\-binary\fP
+Exibe valor sem nova linha.
+.TP
+\fB\-\-system\fP
+Load settings from all system configuration files. See the \fBSYSTEM FILE PRECEDENCE\fP section below.
+.TP
+\fB\-r\fP, \fB\-\-pattern\fP \fIpadrão\fP
+Só aplica configurações que corresponderem ao \fIpadrão\fP. O \fIpadrão\fP usa a
+sintaxe de expressão regular estendidas.
+.TP
+\fB\-A\fP
+Apelido de \fB\-a\fP
+.TP
+\fB\-d\fP
+Apelido de \fB\-h\fP
+.TP
+\fB\-f\fP
+Apelido de \fB\-p\fP
+.TP
+\fB\-X\fP
+Apelido de \fB\-a\fP
+.TP
+\fB\-o\fP
+Faz nada, existe para compatibilidade com BSD.
+.TP
+\fB\-x\fP
+Faz nada, existe para compatibilidade com BSD.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Exibe um texto de ajuda e sai.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Exibe informação da versão e sai.
+.SH "SYSTEM FILE PRECEDENCE"
+When using the \fB\-\-system\fP option, \fBsysctl\fP will read files from
+directories in the following list in given order from top to bottom. Once a
+file of a given filename is loaded, any file of the same name in subsequent
+directories is ignored.
+
+/etc/sysctl.d/*.conf
+.br
+/run/sysctl.d/*.conf
+.br
+/usr/local/lib/sysctl.d/*.conf
+.br
+/usr/lib/sysctl.d/*.conf
+.br
+/lib/sysctl.d/*.conf
+.br
+/etc/sysctl.conf
+
+All configuration files are sorted in lexicographic order, regardless of the
+directory they reside in. Configuration files can either be completely
+replaced (by having a new configuration file with the same name in a
+directory of higher priority) or partially replaced (by having a
+configuration file that is ordered later).
+.SH EXEMPLOS
+/sbin/sysctl \-a
+.br
+/sbin/sysctl \-n kernel.hostname
+.br
+/sbin/sysctl \-w kernel.domainname="example.com"
+.br
+/sbin/sysctl \-p/etc/sysctl.conf
+.br
+/sbin/sysctl \-a \-\-pattern forward
+.br
+/sbin/sysctl \-a \-\-pattern forward$
+.br
+/sbin/sysctl \-a \-\-pattern 'net.ipv4.conf.(eth|wlan)0.arp'
+.br
+/sbin/sysctl \-\-pattern '\[char94]net.ipv6' \-\-system
+.SH "PARÂMETROS OBSOLETOS"
+The \fBbase_reachable_time\fP and \fBretrans_time\fP are deprecated. The
+\fBsysctl\fP command does not allow changing values of these parameters. Users
+who insist to use deprecated kernel interfaces should push values to
+\fB/proc\fP file system by other means. For example:
+.PP
+echo 256 > /proc/sys/net/ipv6/neigh/eth0/base_reachable_time
+.SH ARQUIVOS
+\fI/proc/sys\fP
+.br
+\fI/etc/sysctl.d/*.conf\fP
+.br
+\fI/run/sysctl.d/*.conf\fP
+.br
+\fI/usr/local/lib/sysctl.d/*.conf\fP
+.br
+\fI/usr/lib/sysctl.d/*.conf\fP
+.br
+\fI/lib/sysctl.d/*.conf\fP
+.br
+\fI/etc/sysctl.conf\fP
+.SH "VEJA TAMBÉM"
+\fBproc\fP(5), \fBsysctl.conf\fP(5), \fBregex\fP(7)
+.SH AUTOR
+.UR staikos@0wned.org
+George Staikos
+.UE
+.SH "RELATANDO ERROS"
+Por favor, envie relatórios de erros para
+.UR procps@freelists.org
+.UE
diff --git a/po-man/pt_BR/sysctl.conf.5 b/po-man/pt_BR/sysctl.conf.5
new file mode 100644
index 0000000..997c7cb
--- /dev/null
+++ b/po-man/pt_BR/sysctl.conf.5
@@ -0,0 +1,89 @@
+.\"
+.\" Copyright (c) 2016-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2019-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1999 George Staikos <staikos@0wned.org>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SYSCTL.CONF 5 2021\-09\-15 procps\-ng "Formatos de arquivo"
+.SH NOME
+sysctl.conf \- arquivo de configuração/pré\-carregamento do sysctl
+.SH DESCRIÇÃO
+\fBsysctl.conf\fP um arquivo simples contendo valores do sysctl a serem lidos e
+definidos por \fBsysctl\fP. A sintaxe é simples assim:
+.RS
+.sp
+.nf
+.ne 7
+# comentário
+; comentário
+
+token = valor
+.fi
+.RE
+.PP
+Observe que as linhas em branco são ignoradas e o espaço em branco antes e
+depois de um token ou valor é ignorado, embora um valor possa conter espaços
+em branco dentro. Linhas que começam com um \fI#\fP ou \fI;\fP são consideradas
+comentários e ignoradas.
+
+Se uma linha começar com um único \-, qualquer tentativa de definir o valor
+que falhará será ignorada.
+
+.SH NOTAS
+Como o arquivo \fB/etc/sysctl.conf\fP é usado para substituir os valores padrão
+dos parâmetros do kernel, apenas um pequeno número de parâmetros é
+predefinido no arquivo. Use \fI/sbin/sysctl\ \-a\fP ou siga \fBsysctl\fP(8) para
+listar todos os parâmetros possíveis. A descrição de parâmetros individuais
+pode ser encontrada na documentação do kernel.
+
+Maximum supported line length of the value is 4096 characters due to a
+limitation of \fI/proc\fP entries in Linux kernel.
+.SH EXEMPLO
+.RS
+.sp
+.nf
+.ne 7
+# exemplo de sysctl.conf
+#
+ kernel.domainname = example.com
+; esse tem um espaço que será escrito para o sysctl!
+ kernel.modprobe = /sbin/mod probe
+.fi
+.RE
+.PP
+.SH ARQUIVOS
+\fI/etc/sysctl.d/*.conf\fP
+.br
+\fI/run/sysctl.d/*.conf\fP
+.br
+\fI/usr/local/lib/sysctl.d/*.conf\fP
+.br
+\fI/usr/lib/sysctl.d/*.conf\fP
+.br
+\fI/lib/sysctl.d/*.conf\fP
+.br
+\fI/etc/sysctl.conf\fP
+
+Os caminhos onde os arquivos de pré\-carregamento do \fBsysctl\fP geralmente
+existem. Veja também a opção \fI\-\-system\fP do \fBsysctl\fP.
+.SH "VEJA TAMBÉM"
+\fBsysctl\fP(8)
+.SH AUTOR
+.UR staikos@0wned.org
+George Staikos
+.UE
+.SH "RELATANDO ERROS"
+Por favor, envie relatórios de erros para
+.UR procps@freelists.org
+.UE
diff --git a/po-man/pt_BR/tload.1 b/po-man/pt_BR/tload.1
new file mode 100644
index 0000000..9c2956c
--- /dev/null
+++ b/po-man/pt_BR/tload.1
@@ -0,0 +1,60 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1993 Matt Welsh <mdw@tc.cornell.edu>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH TLOAD 1 2020\-06\-04 procps\-ng "Comandos de usuário"
+.SH NOME
+tload \- representação gráfica da média de carga do sistema
+.SH SINOPSE
+\fBtload\fP [\fIopções\fP] [\fItty\fP]
+.SH DESCRIÇÃO
+\fBtload\fP emite um gráfico da média da carga atual do sistema para o \fItty\fP
+especificado (ou o tty do processo do \fBtload\fP se nenhum for especificado).
+.SH OPÇÕES
+.TP
+\fB\-s\fP, \fB\-\-scale\fP \fInúmero\fP
+A opção de escala permite que uma escala vertical seja especificada na tela
+(em caracteres entre tiques de gráfico); portanto, um valor menor representa
+uma escala maior e vice\-versa.
+.TP
+\fB\-d\fP, \fB\-\-delay\fP \fIsegundos\fP
+O atraso define o atraso entre atualizações de gráfico em \fIsegundos\fP.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Exibe esse texto de ajuda.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Exibe informação da versão e sai.
+.PP
+.SH ARQUIVOS
+\fI/proc/loadavg\fP informações de média da carga
+.SH "VEJA TAMBÉM"
+\fBps\fP(1), \fBtop\fP(1), \fBuptime\fP(1), \fBw\fP(1)
+.SH ERROS
+A opção \fB\-d\fP\fI segundos\fP define o argumento de tempo para um \fBalarm\fP(2);
+se \-d 0 for especificado, o alarme é definido para 0, o que nunca envia o
+\fBSIGALRM\fP e atualiza a tela.
+.SH AUTORES
+Branko Lankester,
+.UR david@\:ods.\:com
+David Engel
+.UE e
+.UR johnsonm@\:redhat.\:com
+Michael K. Johnson
+.UE .
+.SH "RELATANDO ERROS"
+Por favor, envie relatórios de erros para
+.UR procps@freelists.org
+.UE
diff --git a/po-man/pt_BR/uptime.1 b/po-man/pt_BR/uptime.1
new file mode 100644
index 0000000..2053bfa
--- /dev/null
+++ b/po-man/pt_BR/uptime.1
@@ -0,0 +1,75 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH UPTIME 1 "Dezembro de 2012" procps\-ng "Comandos de usuário"
+.SH NOME
+uptime \- Fala a quanto tempo o sistema está em execução.
+.SH SINOPSE
+\fBuptime\fP [\fIopções\fP]
+.SH DESCRIÇÃO
+\fBuptime\fP fornece uma exibição de uma linha das seguintes informações. O
+tempo atual, a quanto tempo o sistema está funcionando, quantos usuários
+estão conectados no momento e as médias de carga do sistema nos últimos 1, 5
+e 15 minutos.
+.PP
+Essa é a mesma informação que aparece na linha de cabeçalho do \fBw\fP(1).
+.PP
+As médias de carga do sistema são o número médio de processos que estão em
+um estado executável ou ininterrupto. Um processo em um estado executável
+está usando a CPU ou aguardando o uso da CPU. Um processo em estado
+ininterrupto está aguardando algum acesso de E/S (p.ex., aguardando o
+disco). As médias são tomadas ao longo dos três intervalos de tempo. As
+médias de carga não são normalizadas para o número de CPUs em um sistema e,
+portanto, uma média de carga de 1 significa que um único sistema de CPU está
+carregado o tempo todo, enquanto que em um sistema de 4 CPUs significa que
+estava ocioso 75% do tempo.
+.SH OPÇÕES
+.TP
+\fB\-p\fP, \fB\-\-pretty\fP
+mostra o tempo de atividade em um formato bonito
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+exibe esse texto de ajuda
+.TP
+\fB\-s\fP, \fB\-\-since\fP
+sistema ativo desde, no formato aaaa\-mm\-dd HH:MM:SS
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+exibe informação da versão e sai
+.SH ARQUIVOS
+.TP
+\fI/var/run/utmp\fP
+informações sobre quem está atualmente conectado
+.TP
+\fI/proc\fP
+informações de processos
+.SH AUTORES
+\fBuptime\fP foi escrito por
+.UR greenfie@gauss.\:rutgers.\:edu
+Larry
+Greenfield
+.UE
+e
+.UR johnsonm@sunsite.\:unc.\:edu
+Michael K. Johnson
+.UE
+.SH "VEJA TAMBÉM"
+\fBps\fP(1), \fBtop\fP(1), \fButmp\fP(5), \fBw\fP(1)
+.SH "RELATANDO ERROS"
+Por favor, envie relatórios de erros para
+.UR procps@freelists.org
+.UE
diff --git a/po-man/pt_BR/vmstat.8 b/po-man/pt_BR/vmstat.8
new file mode 100644
index 0000000..2b3612f
--- /dev/null
+++ b/po-man/pt_BR/vmstat.8
@@ -0,0 +1,184 @@
+.\"
+.\" Copyright (c) 2002-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2012-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1994 Henry Ware <al172@yfn.ysu.edu>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH VMSTAT 8 2023\-01\-18 procps\-ng "Administração do sistema"
+.SH NOME
+vmstat \- Relata estatísticas de memória virtual
+.SH SINOPSE
+\fBvmstat\fP [opções] [\fIatraso\fP [\fIcontagem\fP]]
+.SH DESCRIÇÃO
+\fBvmstat\fP relata informações sobre processos, memória, paginação, E/S de
+bloco, traps, discos e atividade de cpu.
+.PP
+O primeiro relatório produzido fornece as médias desde a última
+reinicialização. Relatórios adicionais fornecem informações sobre um período
+de amostragem de \fIatraso\fP de comprimento. Os relatórios de processos e de
+memória são instantâneos em ambos os casos.
+.SH OPÇÕES
+.TP
+\fIatraso\fP
+O \fIatraso\fP entre atualizações em segundos. Se nenhum \fIatraso\fP for
+especificado, apenas um relatório é impresso com os valores médios desde a
+inicialização.
+.TP
+\fIcontagem\fP
+Número de atualizações. Na ausência de \fIcontagem\fP, quando \fIatraso\fP é
+definido, o padrão é infinito.
+.TP
+\fB\-a\fP, \fB\-\-active\fP
+Exibe memória ativa e inativa, com um kernel 2.5.41 ou superior.
+.TP
+\fB\-f\fP, \fB\-\-forks\fP
+A opção \fB\-f\fP exibe o número de bifurcações (forks) desde a
+inicialização. Isso inclui as chamadas do sistema de fork, vfork e clone, e
+é equivalente ao número total de tarefas criadas. Cada processo é
+representado por uma ou mais tarefas, dependendo do uso do segmento. Esta
+exibição não se repete.
+.TP
+\fB\-m\fP, \fB\-\-slabs\fP
+Exibe slabinfo.
+.TP
+\fB\-n\fP, \fB\-\-one\-header\fP
+Exibe o cabeçalho apenas uma vez em vez de periodicamente.
+.TP
+\fB\-s\fP, \fB\-\-stats\fP
+Exibe uma tabela de vários contadores de eventos e estatísticas de
+memória. Esta exibição não se repete.
+.TP
+\fB\-d\fP, \fB\-\-disk\fP
+Relata estatísticas de disco (requer 2.5.70 ou superior).
+.TP
+\fB\-D\fP, \fB\-\-disk\-sum\fP
+Relata algumas estatísticas de resumo sobre a atividade do disco.
+.TP
+\fB\-p\fP, \fB\-\-partition\fP \fIdispositivo\fP
+Estatísticas detalhadas sobre partição (requer 2.5.70 ou superior).
+.TP
+\fB\-S\fP, \fB\-\-unit\fP \fIcaractere\fP
+Switches outputs between 1000 (\fIk\fP), 1024 (\fIK\fP), 1000000 (\fIm\fP), or
+1048576 (\fIM\fP) bytes. Note this does not change the swap (si/so) or block
+(bi/bo) fields.
+.TP
+\fB\-t\fP, \fB\-\-timestamp\fP
+Anexa o carimbo de tempo para cada linha.
+.TP
+\fB\-w\fP, \fB\-\-wide\fP
+Modo de saída ampla (útil para sistemas com maior quantidade de memória,
+onde o modo de saída padrão sofre de quebras de coluna indesejadas). A saída
+é maior do que 80 caracteres por linha.
+.TP
+\fB\-y\fP, \fB\-\-no\-first\fP
+Omits first report with statistics since system boot.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Exibe informação da versão e sai.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Exibe a ajuda e sai.
+.PD
+.SH "DESCRIÇÃO DE CAMPOS PARA MODO DE VM"
+.SS Procs
+.nf
+r: O número de processos executáveis (executando ou aguardando o tempo de execução).
+b: O número de processos bloqueados aguardando E/S para concluir.
+.fi
+.SS Memória
+Estes não são afetados pela opção \fB\-\-unit\fP.
+.nf
+swpd: a quantidade de memória virtual usada.
+livre: a quantidade de memória ociosa.
+buff: a quantidade de memória usada como buffers.
+cache: a quantidade de memória utilizada como cache.
+inativ: a quantidade de memória inativa. (opção \fB\-a\fP)
+ativo: a quantidade de memória ativa. (opção \fB\-a\fP)
+.fi
+.SS Swap
+Estes não são afetados pela opção \fB\-\-unit\fP.
+.nf
+si: Quantidade de memória trocada do disco (/s).
+so: Quantidade de memória trocada para o disco (/s).
+.fi
+.SS E/S
+.nf
+bi: Kibibyte received from a block device (KiB/s).
+bo: Kibibyte sent to a block device (KiB/s).
+.fi
+.SS Sistema
+.nf
+in: O número de interrupções por segundo, incluindo o relógio.
+cs: o número de trocas de contexto por segundo.
+.fi
+.SS CPU
+Esses são percentuais de tempo total de CPU.
+.nf
+us: Time spent running non\-kernel code. (user time, including nice time)
+sy: Time spent running kernel code. (system time)
+id: Time spent idle. Prior to Linux 2.5.41, this includes IO\-wait time.
+wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle.
+st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.
+gu: Time spent running KVM guest code (guest time, including guest nice).
+.fi
+.SH "DESCRIÇÃO DE CAMPOS PARA MODO DE DISCO"
+.SS Leituras
+.nf
+total: Total de leituras concluídas com sucesso
+mescl.: Leituras agrupadas (resultando em uma E/S)
+setores: Setores lidos com sucesso
+ms: Milissegundos gastos lendo
+.fi
+.SS Escritas
+.nf
+total: Total de escritas concluídas com sucesso
+mescl.: Escritas agrupadas (resultando em uma E/S)
+setores: Setores escritos com sucesso
+ms: Milissegundos gastos escrevendo
+.fi
+.SS E/S
+.nf
+atu: E/S em progresso
+s: segundos gastos para E/S
+.fi
+.SH "DESCRIÇÃO DE CAMPOS PARA MODO DE PARTIÇÃO"
+.nf
+leituras: Número total de leituras emitidas para esta partição
+set. lidos: Total de setores lidos para a partição
+escritas: Número total de escritas emitidas para esta partição
+escrit. solic: Número total de solicitações de escrita feitas para partição
+.fi
+.SH "DESCRIÇÃO DE CAMPOS PARA MODO DE SLAB"
+Slab mode shows statistics per slab, for more information about this
+information see \fBslabinfo\fP(5)
+.PP
+.nf
+cache: Nome do cache
+núm: Número de objetos atualmente ativos
+total: Número total de objetos disponíveis
+tam.: Tamanho de cada objeto
+págs.: Número de páginas com pelo menos um objeto ativo
+.fi
+.SH NOTAS
+\fBvmstat\fP requires read access to files under \fI/proc\fP. The \fB\-m\fP requires
+read access to \fI/proc/slabinfo\fP which may not be available to standard
+users. Mount options for \fI/proc\fP such as \fIsubset=pid\fP may also impact
+what is visible.
+.SH "VEJA TAMBÉM"
+\fBfree\fP(1), \fBiostat\fP(1), \fBmpstat\fP(1), \fBps\fP(1), \fBsar\fP(1), \fBtop\fP(1),
+\fBslabinfo\fP(5)
+.SH "RELATANDO ERROS"
+Por favor, envie relatórios de erros para
+.UR procps@freelists.org
+.UE
diff --git a/po-man/pt_BR/w.1 b/po-man/pt_BR/w.1
new file mode 100644
index 0000000..0c2f2ab
--- /dev/null
+++ b/po-man/pt_BR/w.1
@@ -0,0 +1,104 @@
+.\"
+.\" Copyright (c) 2009-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2015-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2012-2013 Jaromir Capik <jcapik@redhat.com>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2004 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH W 1 2023\-01\-15 procps\-ng "Comandos de usuário"
+.SH NOME
+w \- Mostra quem está conectado e o que está fazendo.
+.SH SINOPSE
+\fBw\fP [\fIoptions\fP] [\fIuser\fP]
+.SH DESCRIÇÃO
+\fBw\fP exibe informações sobre os usuários atualmente conectados à máquina e
+seus processos. O cabeçalho mostra, nesta ordem, o tempo atual, quanto tempo
+o sistema está ativo, quantos usuários estão conectados no momento e as
+médias de carga do sistema nos últimos 1, 5 e 15 minutos.
+.PP
+As seguintes entradas são exibidas para cada usuário: nome de login, nome do
+tty, host remoto, tempo de login, tempo ocioso, JCPU, PCPU e a linha de
+comando de seu processo atual.
+.PP
+O tempo de JCPU é o tempo usado por todos os processos anexados ao tty. Não
+inclui trabalhos em segundo plano anteriores, mas inclui trabalhos em
+segundo plano atualmente em execução.
+.PP
+O tempo de PCPU é o tempo usado pelo processo atual, dado no campo "o que".
+.SH "OPÇÕES DE LINHA DE COMANDO"
+.TP
+\fB\-h\fP, \fB\-\-no\-header\fP
+Não exibe o cabeçalho.
+.TP
+\fB\-u\fP, \fB\-\-no\-current\fP
+Ignora o nome de usuário enquanto calcula os tempos do processo atual e da
+CPU. Para demonstrar isso, faça um \fBsu\fP e faça um \fBw\fP e um \fBw \-u\fP.
+.TP
+\fB\-s\fP, \fB\-\-short\fP
+Usa o formato curto. Não exibe o tempo de login e os tempos de JCPU ou PCPU.
+.TP
+\fB\-f\fP, \fB\-\-from\fP
+Ativa a exibição do campo \fBde\fP (nome do host remoto). O padrão por design é
+para o campo \fBde\fP não ser exibido, embora o administrador do sistema ou o
+mantenedor de distribuição possa ter compilado uma versão na qual o campo
+\fBde\fP é mostrado por padrão.
+.TP
+\fB\-\-help\fP
+Exibe um texto de ajuda e sai.
+.TP
+\fB\-i\fP, \fB\-\-ip\-addr\fP
+Exibe o endereço IP em vez do nome de host para o campo \fBde\fP.
+.TP
+\fB\-p\fP, \fB\-\-pids\fP
+Display pid of the login process/the "what" process in the "what" field.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Exibe informação da versão.
+.TP
+\fB\-o\fP, \fB\-\-old\-style\fP
+Saída no estilo antigo. Emite espaço em branco para tempos de ociosidade
+menores que um minuto.
+.TP
+\fBusuário \fP
+Mostra informações sobre somente o usuários especificado.
+.SH AMBIENTE
+.TP
+PROCPS_USERLEN
+Sobrescreve a largura padrão da coluna de nome de usuário. O padrão é 8.
+.TP
+PROCPS_FROMLEN
+Sobrescreve a largura padrão da coluna de "de". O padrão é 16.
+.SH ARQUIVOS
+.TP
+\fI/var/run/utmp\fP
+informações sobre quem está atualmente conectado
+.TP
+\fI/proc\fP
+informações de processos
+.SH "VEJA TAMBÉM"
+\fBfree\fP(1), \fBps\fP(1), \fBtop\fP(1), \fBuptime\fP(1), \fButmp\fP(5), \fBwho\fP(1)
+.SH AUTORES
+\fBw\fP foi reescrito quase que em sua totalidade por Charles Blake, baseado na
+versão por
+.UR greenfie@\:gauss.\:rutgers.\:edu
+Larry Greenfield
+.UE
+e
+.UR johnsonm@\:redhat.\:com
+Michael K. Johnson
+.UE
+.SH "RELATANDO ERROS"
+Por favor, envie relatórios de erros para
+.UR procps@freelists.org
+.UE
diff --git a/po-man/pt_BR/watch.1 b/po-man/pt_BR/watch.1
new file mode 100644
index 0000000..9ac3889
--- /dev/null
+++ b/po-man/pt_BR/watch.1
@@ -0,0 +1,201 @@
+.\"
+.\" Copyright (c) 2009-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2018-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2003 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH WATCH 1 2023\-01\-17 procps\-ng "Comandos de usuário"
+.SH NOME
+watch \- executa um programa periodicamente, mostrando saída em tela cheia
+.SH SINOPSE
+\fBwatch\fP [\fIopções\fP] \fIcomando\fP
+.SH DESCRIÇÃO
+\fBwatch\fP executa \fIcomando\fP repetidamente, exibindo a saída e os erros (o
+primeiro de tela inteira). Isso permite que você acompanhe a mudança da
+saída do programa ao longo do tempo. Por padrão, \fIcomando\fP é executado a
+cada 2 segundos e \fBwatch\fP será executado até ser interrompido.
+.SH OPÇÕES
+.TP
+\fB\-b\fP, \fB\-\-beep\fP
+Apita se o comando tem uma saída anormal, com código não zero.
+.TP
+\fB\-c\fP, \fB\-\-color\fP
+Interpreta cores ANSI e sequências de estilo.
+.TP
+\fB\-C\fP, \fB\-\-no\-color\fP
+Do not interpret ANSI color and style sequences.
+.TP
+\fB\-d\fP, \fB\-\-differences\fP[=\fIpermanente\fP]
+Realça as diferenças entre as atualizações sucessivas. Se o argumento
+\fIpermanente\fP opcional for especificado, \fBwatch\fP vai mostrar todas as
+alterações desde a primeira iteração.
+.TP
+\fB\-e\fP, \fB\-\-errexit\fP
+Congela atualizações quando houver um erro no comando, e sai após um tecla
+ser pressionada.
+.TP
+\fB\-g\fP, \fB\-\-chgexit\fP
+Sai quando a saída de \fIcomando\fP alterar.
+.TP
+\fB\-n\fP, \fB\-\-interval\fP \fIsegundos\fP
+Specify update interval. The command will not allow quicker than 0.1 second
+interval, in which the smaller values are converted. Both '.' and ',' work
+for any locales. The \fBWATCH_INTERVAL\fP environment can be used to
+persistently set a non\-default interval (following the same rules and
+formatting).
+.TP
+\fB\-p\fP, \fB\-\-precise\fP
+Faz o \fBwatch\fP tentar executar o \fIcomando\fP a cada \fB\-\-interval\fP
+\fIsegundos\fP. Experimente com \fBntptime\fP (se disponível) e perceba como os
+segundos fracionários permanecem (quase) os mesmos, em oposição ao modo
+normal onde aumentam continuamente.
+.TP
+\fB\-q\fP, \fB\-\-equexit\fP <cycles>
+Exit when output of \fIcommand\fP does not change for the given number of
+cycles.
+.TP
+\fB\-r\fP, \fB\-\-no\-rerun\fP
+Do not run the program on terminal resize, the output of the program will
+re\-appear at the next regular run time.
+.TP
+\fB\-t\fP, \fB\-\-no\-title\fP
+Desligue o cabeçalho mostrando o intervalo, comando e tempo atual na parte
+superior da tela, bem como a seguinte linha em branco.
+.TP
+\fB\-w\fP, \fB\-\-no\-wrap\fP
+Desativa quebra de linha. Linhas longas serão truncadas em vez de quebradas
+para a próxima linha.
+.TP
+\fB\-x\fP, \fB\-\-exec\fP
+Passa \fIcomando\fP para \fBexec\fP(2) em vez de \fBsh \-c\fP, o que reduz a
+necessidade de usar aspas extras para obter o efeito desejado.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Exibe um texto de ajuda e sai.
+.TP
+\fB\-v\fP, \fB\-\-version\fP
+Exibe informação da versão e sai.
+.SH "STATUS DE SAÃDA"
+.PP
+.RS
+.PD 0
+.TP
+\fB0\fP
+Sucesso.
+.TP
+\fB1\fP
+Várias falhas.
+.TP
+\fB2\fP
+O fork do processo a ser assistido falhou.
+.TP
+\fB3\fP
+Substituição da stdout (saída padrão) do processo filho com pipe lateral de
+escrita falhou.
+.TP
+\fB4\fP
+Execução do comando falhou.
+.TP
+\fB5\fP
+Encerramento do pipe de escrita do processo filho falhou.
+.TP
+\fB7\fP
+Criação de pipe IPC falhou.
+.TP
+\fB8\fP
+Obtenção de valor de retorno de processo filho com \fBwaitpid\fP(2) falhou, ou
+o comando saiu com um erro.
+.TP
+\fBoutro\fP
+O watch vai propagar o status de saída do comando como status de saída de
+filho.
+.SH AMBIENTE
+The behavior of \fBwatch\fP is affected by the following environment variables.
+
+.TP
+\fBWATCH_INTERVAL\fP
+Intervalo de atualização, segue as mesmas regras da opção de linha de
+comando \fB\-\-interval\fP.
+.sp
+.SH NOTAS
+O processamento de opções POSIX é usado, ou seja, o processamento de opções
+interrompe no primeiro argumento sem opção. Isso significa que as opções
+após \fIcomando\fP não são interpretadas pelo próprio \fBwatch\fP.
+.sp
+.SH ERROS
+Upon terminal resize, the screen will not be correctly repainted until the
+next scheduled update. All \fB\-\-differences\fP highlighting is lost on that
+update as well. When using the \fB\-\-no\-rerun\fP option, no output of will be
+visible.
+
+Caracteres não imprimíveis são removidos da saída do programa. Use \fBcat \-v\fP
+como parte do pipeline de comando se você quiser vê\-los.
+
+Caracteres de Combinação que devem ser exibidos no caractere na última
+coluna na tela podem ser exibidos uma coluna antes ou podem não ser
+exibidos.
+
+Caracteres de Combinação nunca contam como diferente no modo
+\fI\-\-differences\fP. Apenas só caracteres base contam.
+
+As linhas em branco diretamente após uma linha que termina na última coluna
+não são exibidas.
+
+\fB\-\-precise\fP mode doesn't yet have advanced temporal distortion technology
+to compensate for a \fIcommand\fP that takes more than \fB\-\-interval\fP \fIseconds\fP
+to execute. \fBwatch\fP also can get into a state where it rapid\-fires as many
+executions of \fIcommand\fP as it can to catch up from a previous executions
+running longer than \fB\-\-interval\fP (for example, \fBnetstat\fP(8) taking ages
+on a DNS lookup).
+.sp
+.SH EXEMPLOS
+.PP
+Para monitorar por correio, você pode fazer
+.IP
+watch \-n 60 from
+.PP
+Para assistir o conteúdo de um diretório mudar, você pode usar
+.IP
+watch \-d ls \-l
+.PP
+Se você está interessado apenas em arquivos pertencentes ao usuário fulano,
+você pode usar
+.IP
+watch \-d 'ls \-l | fgrep fulano'
+.PP
+Para ver os efeitos das aspas, tente esses aqui
+.IP
+watch echo $$
+.br
+watch echo '$$'
+.br
+watch echo "'"'$$'"'"
+.PP
+Para ver o efeito da manutenção da precisão do tempo, tente adicionar \fB\-p\fP
+a
+.IP
+watch \-n 10 sleep 1
+.PP
+Você pode assistir seu administrador para instalar o kernel mais recente com
+.IP
+watch uname \-r
+.PP
+(Note que não há garantia de que \fB\-p\fP funcione entre reinicializações,
+especialmente em face de \fBntpdate\fP (se disponível) ou outros mecanismos de
+mudança de tempo quando da inicialização)
+.sp
+.SH "RELATANDO ERROS"
+Por favor, envie relatórios de erros para
+.UR procps@freelists.org
+.UE
diff --git a/po-man/ro.po b/po-man/ro.po
new file mode 100644
index 0000000..e61a3fb
--- /dev/null
+++ b/po-man/ro.po
@@ -0,0 +1,16914 @@
+# Mesajele în limba română pentru pachetul procps-ng-man.
+# Copyright © 2022, 2023 Free Software Foundation, Inc.
+# This file is distributed under the same license as the procps-ng package.
+#
+# Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>, 2022 - 2023.
+#
+# Cronologia traducerii fiÈ™ierului „procps-ng-manâ€:
+# Traducerea inițială, făcută de R-GC, pentru versiunea procps-ng_man 4.0.1rc3, dec-2022.
+# Actualizare a traducerii pentru versiunea 4.0.2-rc1, făcută de R-GC, apr-2023.
+# Actualizare a traducerii pentru versiunea 4.0.3-rc1, făcută de R-GC, apr-2023.
+# Actualizare a traducerii pentru versiunea 4.0.4-rc1, făcută de R-GC, aug-2023.
+# Actualizare a traducerii pentru versiunea Y, făcută de X, Z(luna-anul).
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: procps-ng-man 4.0.4-rc1\n"
+"Report-Msgid-Bugs-To: Procps list <procps@freelists.org>\n"
+"POT-Creation-Date: 2023-08-19 17:38+1000\n"
+"PO-Revision-Date: 2023-08-20 19:43+0200\n"
+"Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>\n"
+"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < 20)) ? 1 : 2);\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"X-Generator: Poedit 3.2.2\n"
+
+#. type: TH
+#: ../man/free.1:14
+#, no-wrap
+msgid "FREE"
+msgstr "FREE"
+
+#. type: TH
+#: ../man/free.1:14
+#, no-wrap
+msgid "2023-05-02"
+msgstr "02.05.2023"
+
+#. type: TH
+#: ../man/free.1:14 ../man/kill.1:12 ../man/pgrep.1:13 ../man/pmap.1:19
+#: ../man/pwdx.1:12 ../man/skill.1:12 ../man/slabtop.1:14 ../man/sysctl.8:14
+#: ../man/sysctl.conf.5:13 ../man/tload.1:12 ../man/uptime.1:13
+#: ../man/vmstat.8:13 ../man/w.1:14 ../man/watch.1:13 ../man/ps.1:13
+#: ../man/top.1:62
+#, no-wrap
+msgid "procps-ng"
+msgstr "procps-ng"
+
+#. type: TH
+#: ../man/free.1:14 ../man/kill.1:12 ../man/pgrep.1:13 ../man/pidof.1:13
+#: ../man/pmap.1:19 ../man/pwdx.1:12 ../man/skill.1:12 ../man/slabtop.1:14
+#: ../man/tload.1:12 ../man/uptime.1:13 ../man/w.1:14 ../man/watch.1:13
+#: ../man/ps.1:13 ../man/top.1:62
+#, no-wrap
+msgid "User Commands"
+msgstr "Comenzi utilizator"
+
+#. type: SH
+#: ../man/free.1:15 ../man/kill.1:13 ../man/pgrep.1:14 ../man/pidof.1:14
+#: ../man/pmap.1:20 ../man/pwdx.1:13 ../man/skill.1:13 ../man/slabtop.1:15
+#: ../man/sysctl.8:15 ../man/sysctl.conf.5:14 ../man/tload.1:13
+#: ../man/uptime.1:14 ../man/vmstat.8:14 ../man/w.1:15 ../man/watch.1:14
+#: ../man/ps.1:27 ../man/top.1:67 ../man/procps.3:15 ../man/procps_misc.3:15
+#: ../man/procps_pids.3:15
+#, no-wrap
+msgid "NAME"
+msgstr "NUME"
+
+#. type: Plain text
+#: ../man/free.1:17
+msgid "free - Display amount of free and used memory in the system"
+msgstr "free - Afișează cantitatea de memorie liberă și utilizată din sistem"
+
+#. type: SH
+#: ../man/free.1:17 ../man/kill.1:15 ../man/pgrep.1:16 ../man/pidof.1:16
+#: ../man/pmap.1:22 ../man/pwdx.1:15 ../man/skill.1:15 ../man/slabtop.1:17
+#: ../man/sysctl.8:17 ../man/tload.1:15 ../man/uptime.1:16 ../man/vmstat.8:16
+#: ../man/w.1:17 ../man/watch.1:16 ../man/ps.1:29 ../man/top.1:72
+#: ../man/procps.3:18 ../man/procps_misc.3:17 ../man/procps_pids.3:18
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "REZUMAT"
+
+#. type: Plain text
+#: ../man/free.1:20
+msgid "B<free> [I<options>]"
+msgstr "B<free> [I<opțiuni>]"
+
+#. type: SH
+#: ../man/free.1:20 ../man/kill.1:18 ../man/pgrep.1:25 ../man/pidof.1:30
+#: ../man/pmap.1:25 ../man/skill.1:25 ../man/slabtop.1:20 ../man/sysctl.8:23
+#: ../man/sysctl.conf.5:16 ../man/tload.1:18 ../man/uptime.1:19
+#: ../man/vmstat.8:20 ../man/w.1:20 ../man/watch.1:19 ../man/ps.1:31
+#: ../man/ps.1:1002 ../man/top.1:77 ../man/procps.3:67 ../man/procps_misc.3:49
+#: ../man/procps_pids.3:61
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "DESCRIERE"
+
+#. type: Plain text
+#: ../man/free.1:26
+msgid "B<free> displays the total amount of free and used physical and swap memory in the system, as well as the buffers and caches used by the kernel. The information is gathered by parsing /proc/meminfo. The displayed columns are:"
+msgstr "B<free> afișează cantitatea totală de memorie fizică și swap liberă și utilizată din sistem, precum și dimensiunile memoriilor tampon(buffer) și a zonelor de prestocare(cache) utilizate de nucleu. Informațiile sunt colectate prin analizarea fișierului I</proc/meminfo>. Coloanele afișate sunt:"
+
+#. type: TP
+#: ../man/free.1:26
+#, no-wrap
+msgid "B<total>"
+msgstr "B<totală>"
+
+#. type: Plain text
+#: ../man/free.1:30
+msgid "Total usable memory (MemTotal and SwapTotal in /proc/meminfo). This includes the physical and swap memory minus a few reserved bits and kernel binary code."
+msgstr "Memoria totală utilizabilă (MemTotal È™i SwapTotal în „/proc/meminfoâ€. Aceasta include memoria fizică È™i memoria spaÈ›iului de interschimb (swap) minus câțiva biÈ›i rezervaÈ›i È™i codul binar al nucleului."
+
+#. type: TP
+#: ../man/free.1:30
+#, no-wrap
+msgid "B<used>"
+msgstr "B<utilizată>"
+
+#. type: Plain text
+#: ../man/free.1:33
+msgid "Used or unavailable memory (calculated as B<total> - B<available>)"
+msgstr "Memoria utilizată sau indisponibilă (calculată ca B<totală> - B<disponibilă>)"
+
+#. type: TP
+#: ../man/free.1:33
+#, no-wrap
+msgid "B<free>"
+msgstr "B<liberă>"
+
+#. type: Plain text
+#: ../man/free.1:36
+msgid "Unused memory (MemFree and SwapFree in /proc/meminfo)"
+msgstr "Memoria neutilizată (MemFree È™i SwapFree din „/proc/meminfoâ€)"
+
+#. type: TP
+#: ../man/free.1:36
+#, no-wrap
+msgid "B<shared>"
+msgstr "B<partajată>"
+
+#. type: Plain text
+#: ../man/free.1:39
+msgid "Memory used (mostly) by tmpfs (Shmem in /proc/meminfo)"
+msgstr "Memoria utilizată (în mare parte) de tmpfs (Shmem din „/proc/meminfoâ€)"
+
+#. type: TP
+#: ../man/free.1:39
+#, no-wrap
+msgid "B<buffers>"
+msgstr "B<memoriile tampon(buffers)>"
+
+#. type: Plain text
+#: ../man/free.1:42
+msgid "Memory used by kernel buffers (Buffers in /proc/meminfo)"
+msgstr "Memoria utilizată de memoriile tampon ale nucleului (Buffers din „/proc/meminfoâ€)"
+
+#. type: TP
+#: ../man/free.1:42
+#, no-wrap
+msgid "B<cache>"
+msgstr "B<zonele de prestocare(cache)>"
+
+#. type: Plain text
+#: ../man/free.1:45
+msgid "Memory used by the page cache and slabs (Cached and SReclaimable in /proc/meminfo)"
+msgstr "Memoria utilizată de zonele de prestocare ale paginării și de „slabs†(Cached și SReclaimable din „/proc/meminfo„)"
+
+#. type: TP
+#: ../man/free.1:45
+#, no-wrap
+msgid "B<buff/cache>"
+msgstr "B<buff/cache>"
+
+#. type: Plain text
+#: ../man/free.1:48
+msgid "Sum of B<buffers> and B<cache>"
+msgstr "Suma dintre B<memoriile tampon(buffers)> și B<zonele de prestocare(cache)>"
+
+#. type: TP
+#: ../man/free.1:48
+#, no-wrap
+msgid "B<available>"
+msgstr "B<disponibilă>"
+
+#. type: Plain text
+#: ../man/free.1:57
+msgid "Estimation of how much memory is available for starting new applications, without swapping. Unlike the data provided by the B<cache> or B<free> fields, this field takes into account page cache and also that not all reclaimable memory slabs will be reclaimed due to items being in use (MemAvailable in /proc/meminfo, available on kernels 3.14, emulated on kernels 2.6.27+, otherwise the same as B<free>)"
+msgstr "Estimarea cantității de memorie disponibilă pentru pornirea unor aplicaÈ›ii noi, fără schimbare. Spre deosebire de datele furnizate de câmpurile B<zonele de prestocare(cache)> sau B<liberă>, acest câmp ia în considerare zona de prestocare(cache) a paginii È™i, de asemenea, că nu toate blocurile de memorie „slabs†recuperabile vor fi recuperate din cauza elementelor care sunt în uz (MemAvailable în „/proc/meminfoâ€, disponibilă pe nucleele 3.14, emulat pe nucleele 2.6.27+, altfel la fel ca B<liberă>)"
+
+#. type: SH
+#: ../man/free.1:57 ../man/kill.1:34 ../man/pgrep.1:53 ../man/pidof.1:34
+#: ../man/pmap.1:29 ../man/pwdx.1:18 ../man/skill.1:42 ../man/slabtop.1:25
+#: ../man/tload.1:25 ../man/uptime.1:36 ../man/vmstat.8:29 ../man/watch.1:26
+#, no-wrap
+msgid "OPTIONS"
+msgstr "OPÈšIUNI"
+
+#. type: TP
+#: ../man/free.1:58
+#, no-wrap
+msgid "B<-b>, B<--bytes>"
+msgstr "B<-b>, B<--bytes>"
+
+#. type: Plain text
+#: ../man/free.1:61
+msgid "Display the amount of memory in bytes."
+msgstr "Afișează cantitatea de memorie în octeți."
+
+#. type: TP
+#: ../man/free.1:61
+#, no-wrap
+msgid "B<-k>, B<--kibi>"
+msgstr "B<-k>, B<--kibi>"
+
+#. type: Plain text
+#: ../man/free.1:64
+msgid "Display the amount of memory in kibibytes. This is the default."
+msgstr "Afișează cantitatea de memorie în kibiocteți. Aceasta este valoarea implicită."
+
+#. type: TP
+#: ../man/free.1:64
+#, no-wrap
+msgid "B<-m>, B<--mebi>"
+msgstr "B<-m>, B<--mebi>"
+
+#. type: Plain text
+#: ../man/free.1:67
+msgid "Display the amount of memory in mebibytes."
+msgstr "Afișează cantitatea de memorie în mebiocteți."
+
+#. type: TP
+#: ../man/free.1:67
+#, no-wrap
+msgid "B<-g>, B<--gibi>"
+msgstr "B<-g>, B<--gibi>"
+
+#. type: Plain text
+#: ../man/free.1:70
+msgid "Display the amount of memory in gibibytes."
+msgstr "Afișează cantitatea de memorie în gibiocteți."
+
+#. type: TP
+#: ../man/free.1:70
+#, no-wrap
+msgid "B<--tebi>"
+msgstr "B<--tebi>"
+
+#. type: Plain text
+#: ../man/free.1:73
+msgid "Display the amount of memory in tebibytes."
+msgstr "Afișează cantitatea de memorie în tebiocteți."
+
+#. type: TP
+#: ../man/free.1:73
+#, no-wrap
+msgid "B<--pebi>"
+msgstr "B<--pebi>"
+
+#. type: Plain text
+#: ../man/free.1:76
+msgid "Display the amount of memory in pebibytes."
+msgstr "Afișează cantitatea de memorie în pebiocteți."
+
+#. type: TP
+#: ../man/free.1:76
+#, no-wrap
+msgid "B<--kilo>"
+msgstr "B<--kilo>"
+
+#. type: Plain text
+#: ../man/free.1:79
+msgid "Display the amount of memory in kilobytes. Implies --si."
+msgstr "AfiÈ™ează cantitatea de memorie în kiloocteÈ›i. Implică utilizarea opÈ›iunii „--siâ€."
+
+#. type: TP
+#: ../man/free.1:79
+#, no-wrap
+msgid "B<--mega>"
+msgstr "B<--mega>"
+
+#. type: Plain text
+#: ../man/free.1:82
+msgid "Display the amount of memory in megabytes. Implies --si."
+msgstr "AfiÈ™ează cantitatea de memorie în megaocteÈ›i. Implică utilizarea opÈ›iunii „--siâ€."
+
+#. type: TP
+#: ../man/free.1:82
+#, no-wrap
+msgid "B<--giga>"
+msgstr "B<--giga>"
+
+#. type: Plain text
+#: ../man/free.1:85
+msgid "Display the amount of memory in gigabytes. Implies --si."
+msgstr "AfiÈ™ează cantitatea de memorie în gigaocteÈ›i. Implică utilizarea opÈ›iunii „--siâ€."
+
+#. type: TP
+#: ../man/free.1:85
+#, no-wrap
+msgid "B<--tera>"
+msgstr "B<--tera>"
+
+#. type: Plain text
+#: ../man/free.1:88
+msgid "Display the amount of memory in terabytes. Implies --si."
+msgstr "AfiÈ™ează cantitatea de memorie în teraocteÈ›i. Implică utilizarea opÈ›iunii „--siâ€."
+
+#. type: TP
+#: ../man/free.1:88
+#, no-wrap
+msgid "B<--peta>"
+msgstr "B<--peta>"
+
+#. type: Plain text
+#: ../man/free.1:91
+msgid "Display the amount of memory in petabytes. Implies --si."
+msgstr "AfiÈ™ează cantitatea de memorie în petaocteÈ›i. Implică utilizarea opÈ›iunii „--siâ€."
+
+#. type: TP
+#: ../man/free.1:91
+#, no-wrap
+msgid "B<-h>, B<--human>"
+msgstr "B<-h>, B<--human>"
+
+#. type: Plain text
+#: ../man/free.1:95
+msgid "Show all output fields automatically scaled to shortest three digit unit and display the units of print out. Following units are used."
+msgstr "Afișează toate câmpurile de ieșire scalate automat la cea mai scurtă unitate de trei cifre și afișează unitățile de măsură. Sunt utilizate următoarele unități."
+
+#. type: Plain text
+#: ../man/free.1:103
+#, no-wrap
+msgid ""
+" B = bytes\n"
+" Ki = kibibyte\n"
+" Mi = mebibyte\n"
+" Gi = gibibyte\n"
+" Ti = tebibyte\n"
+" Pi = pebibyte\n"
+msgstr ""
+" B = octeți\n"
+" Ki = kibiocteți\n"
+" Mi = mebiocteți\n"
+" Gi = gibiocteți\n"
+" Ti = tebiocteți\n"
+" Pi = pebiocteți\n"
+
+#. type: Plain text
+#: ../man/free.1:107
+msgid "If unit is missing, and you have exbibyte of RAM or swap, the number is in tebibytes and columns might not be aligned with header."
+msgstr "Dacă unitatea lipsește și aveți extra-biocteți de RAM sau swap, numărul este în tebiocteți, iar coloanele ar putea să nu fie aliniate cu antetul(titlul)."
+
+#. type: TP
+#: ../man/free.1:107 ../man/vmstat.8:89
+#, no-wrap
+msgid "B<-w>, B<--wide>"
+msgstr "B<-w>, B<--wide>"
+
+#. type: Plain text
+#: ../man/free.1:112
+msgid "Switch to the wide mode. The wide mode produces lines longer than 80 characters. In this mode B<buffers> and B<cache> are reported in two separate columns."
+msgstr "Comută la modul larg. Modul larg produce linii mai lungi de 80 de caractere. În acest mod, B<memoriile tampon(buffers)> și B<zonele de prestocare(cache)> sunt raportate în două coloane separate."
+
+#. type: TP
+#: ../man/free.1:112
+#, no-wrap
+msgid "B<-c>, B<--count> I<count>"
+msgstr "B<-c>, B<--count> I<N-ori>"
+
+#. type: Plain text
+#: ../man/free.1:119
+msgid "Display the result I<count> times. Requires the B<-s> option."
+msgstr "Afișează rezultatul de I<număr> ori. Necesită opțiunea B<-s>."
+
+#. type: TP
+#: ../man/free.1:119
+#, no-wrap
+msgid "B<-l>, B<--lohi>"
+msgstr "B<-l>, B<--lohi>"
+
+#. type: Plain text
+#: ../man/free.1:122
+msgid "Show detailed low and high memory statistics."
+msgstr "Afișează statistici detaliate despre memorie scăzută(lowmem) și ridicată(highmem)."
+
+#. type: TP
+#: ../man/free.1:122
+#, no-wrap
+msgid "B<-L>, B<--line>"
+msgstr "B<-L>, B<--line>"
+
+#. type: Plain text
+#: ../man/free.1:127
+msgid "Show output on a single line, often used with the B<-s> option to show memory statistics repeatedly."
+msgstr "Afișează ieșirea pe o singură linie, adesea utilizată împreună cu opțiunea B<-s> pentru a afișa statisticile de memorie în mod repetat."
+
+#. type: TP
+#: ../man/free.1:127
+#, no-wrap
+msgid "B<-s>, B<--seconds> I<delay>"
+msgstr "B<-s>, B<--seconds> I<întârzierea>"
+
+#. type: Plain text
+#: ../man/free.1:134
+msgid "Continuously display the result I<delay> seconds apart. You may actually specify any floating point number for I<delay> using either . or , for decimal point. B<usleep>(3) is used for microsecond resolution delay times."
+msgstr "Afișează în mod continuu rezultatul la un interval de I<întârziere> secunde. Puteți specifica, de fapt, orice număr zecimal pentru I<întârziere> folosind fie «.», fie «,» pentru a marca virgula zecimală. B<usleep>(3) este utilizată pentru timpii de întârziere ai rezoluției în microsecunde."
+
+#. type: TP
+#: ../man/free.1:134
+#, no-wrap
+msgid "B<--si>"
+msgstr "B<--si>"
+
+#. type: Plain text
+#: ../man/free.1:138
+msgid "Use kilo, mega, giga etc (power of 1000) instead of kibi, mebi, gibi (power of 1024)."
+msgstr "Utilizează kilo, mega, giga, etc (putere de 1000) în loc de kibi, mebi, gibi (putere de 1024)."
+
+#. type: TP
+#: ../man/free.1:138
+#, no-wrap
+msgid "B<-t>, B<--total>"
+msgstr "B<-t>, B<--total>"
+
+#. type: Plain text
+#: ../man/free.1:141
+msgid "Display a line showing the column totals."
+msgstr "Afișează o linie care arată totalurile coloanelor."
+
+#. type: TP
+#: ../man/free.1:141
+#, no-wrap
+msgid "B<-v>, B<--committed>"
+msgstr "B<-v>, B<--committed>"
+
+# R-GC, scrie:
+# ÃŽntrebare: care dintre termenii:
+# alocare / atribuire este mai
+# sugestiv, în acest context,
+# pentru utilizator?
+# ( ca traducere a „commit†)
+# ========
+# după revizarea fișierului, DȘ spune:
+# .
+# → arată bine așa cum l-ai folosit (alocare)
+# ***
+# Ok, rămîne așa cum este acum
+#. type: Plain text
+#: ../man/free.1:146
+msgid "Display a line showing the memory commit limit and amount of committed/uncommitted memory. The B<total> column on this line will display the memory commit limit. This line is relevant if memory overcommit is disabled."
+msgstr "Afișează o linie care arată limita de alocare a memoriei și cantitatea de memorie alocată/nealocată. Coloana B<total> de pe această linie va afișa limita de alocare a memoriei. Această linie este relevantă dacă supralocarea memoriei este dezactivată."
+
+#. type: TP
+#: ../man/free.1:146 ../man/w.1:63
+#, no-wrap
+msgid "B<--help>"
+msgstr "B<--help>"
+
+#. type: Plain text
+#: ../man/free.1:149
+msgid "Print help."
+msgstr "Afișează mesajul de ajutor."
+
+#. type: TP
+#: ../man/free.1:149 ../man/pgrep.1:228 ../man/pmap.1:72 ../man/pwdx.1:19
+#: ../man/skill.1:68 ../man/slabtop.1:45 ../man/sysctl.8:116 ../man/tload.1:38
+#: ../man/uptime.1:46 ../man/vmstat.8:97 ../man/w.1:72
+#, no-wrap
+msgid "B<-V>, B<--version>"
+msgstr "B<-V>, B<--version>"
+
+#. type: Plain text
+#: ../man/free.1:152 ../man/skill.1:71 ../man/w.1:75
+msgid "Display version information."
+msgstr "Afișați informațiile despre versiune."
+
+#. type: SH
+#: ../man/free.1:153 ../man/slabtop.1:87 ../man/sysctl.8:171
+#: ../man/sysctl.conf.5:64 ../man/tload.1:42 ../man/uptime.1:49 ../man/w.1:88
+#: ../man/procps_misc.3:136
+#, no-wrap
+msgid "FILES"
+msgstr "FIȘIERE"
+
+#. type: TP
+#: ../man/free.1:154
+#, no-wrap
+msgid "/proc/meminfo"
+msgstr "/proc/meminfo"
+
+#. type: Plain text
+#: ../man/free.1:157
+msgid "memory information"
+msgstr "informații despre memorie"
+
+#. type: SH
+#: ../man/free.1:158 ../man/pgrep.1:301 ../man/pidof.1:69 ../man/tload.1:50
+#: ../man/watch.1:152 ../man/ps.1:2063
+#, no-wrap
+msgid "BUGS"
+msgstr "ERORI"
+
+#. type: Plain text
+#: ../man/free.1:161
+msgid "The value for the B<shared> column is not available from kernels before 2.6.32 and is displayed as zero."
+msgstr "Valoarea pentru coloana B<partajată> nu este disponibilă în nucleele dinainte de versiunea 2.6.32, și este afișată ca zero."
+
+#. type: TP
+#: ../man/free.1:161
+#, no-wrap
+msgid "Please send bug reports to"
+msgstr "Trimiteți rapoartele de erori la"
+
+#. type: Plain text
+#: ../man/free.1:165
+msgid "E<.UR procps@freelists.org> E<.UE>"
+msgstr "E<.UR procps@freelists.org> E<.UE>"
+
+#. type: SH
+#: ../man/free.1:165 ../man/kill.1:88 ../man/pgrep.1:317 ../man/pidof.1:76
+#: ../man/pmap.1:90 ../man/pwdx.1:25 ../man/skill.1:109 ../man/slabtop.1:91
+#: ../man/sysctl.8:185 ../man/sysctl.conf.5:83 ../man/tload.1:45
+#: ../man/uptime.1:66 ../man/vmstat.8:191 ../man/w.1:95 ../man/ps.1:2070
+#: ../man/procps.3:182 ../man/procps_misc.3:153 ../man/procps_pids.3:207
+#, no-wrap
+msgid "SEE ALSO"
+msgstr "CONSULTAȚI ȘI"
+
+#
+#
+#. type: Plain text
+#: ../man/free.1:169
+msgid "B<ps>(1), B<slabtop>(1), B<top>(1), B<vmstat>(8)."
+msgstr "B<ps>(1), B<slabtop>(1), B<top>(1), B<vmstat>(8)."
+
+#. type: TH
+#: ../man/kill.1:12
+#, no-wrap
+msgid "KILL"
+msgstr "KILL"
+
+#. type: TH
+#: ../man/kill.1:12 ../man/pgrep.1:13 ../man/pidof.1:13
+#, no-wrap
+msgid "2023-01-16"
+msgstr "16.01.2023"
+
+#. type: Plain text
+#: ../man/kill.1:15
+msgid "kill - send a signal to a process"
+msgstr "kill - trimite un semnal către un proces"
+
+#. type: Plain text
+#: ../man/kill.1:18
+msgid "B<kill> [options] E<lt>pidE<gt> [...]"
+msgstr "B<kill> [I<opțiuni>] E<lt>pidE<gt> [...]"
+
+#. type: Plain text
+#: ../man/kill.1:34
+msgid "The default signal for kill is TERM. Use B<-l> or B<-L> to list available signals. Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0. Alternate signals may be specified in three ways: B<-9>, B<-SIGKILL> or B<-KILL>. Negative PID values may be used to choose whole process groups; see the PGID column in ps command output. A PID of B<-1> is special; it indicates all processes except the kill process itself and init."
+msgstr "Semnalul implicit pentru «kill» este TERM. Utilizați opțiunea B<-l> sau B<-L> pentru a lista semnalele disponibile. Semnalele care sunt în mod special utile sunt: HUP, INT, KILL, STOP, CONT și 0. Semnalele pot fi indicate în trei moduri diferite: B<-9>, B<-SIGKILL> sau B<-KILL>. Valorile PID negative pot fi utilizate pentru a alege grupuri întregi de procese; vedeți coloana PGID din ieșirea comenzii «ps». Un PID de B<-1> este special; indică toate procesele, cu excepția procesului «kill» însuși și a procesului «init»."
+
+#. type: TP
+#: ../man/kill.1:35
+#, no-wrap
+msgid "B<E<lt>pidE<gt> [...]>"
+msgstr "B<E<lt>pidE<gt> [...]>"
+
+#. type: Plain text
+#: ../man/kill.1:38
+msgid "Send signal to every E<lt>pidE<gt> listed."
+msgstr "Trimite un semnal către fiecare E<lt>pidE<gt> listat."
+
+#. type: TP
+#: ../man/kill.1:38
+#, no-wrap
+msgid "B<-E<lt>signalE<gt>>"
+msgstr "B<-E<lt>semnalE<gt>>"
+
+#. type: TQ
+#: ../man/kill.1:40
+#, no-wrap
+msgid "B<-s E<lt>signalE<gt>>"
+msgstr "B<-s E<lt>semnalE<gt>>"
+
+#. type: TQ
+#: ../man/kill.1:42
+#, no-wrap
+msgid "B<--signal E<lt>signalE<gt>>"
+msgstr "B<--signal E<lt>semnalE<gt>>"
+
+#. type: Plain text
+#: ../man/kill.1:50
+msgid "Specify the B<signal> to be sent. The signal can be specified by using name or number. The behavior of signals is explained in B<signal>(7) manual page."
+msgstr "Specifică B<semnalul> care trebuie trimis. Semnalul poate fi specificat folosind numele sau numărul. Comportamentul semnalelor este explicat în pagina de manual B<signal>(7)."
+
+#. type: TP
+#: ../man/kill.1:50 ../man/pgrep.1:216
+#, no-wrap
+msgid "B<-q>, B<--queue >I<value>"
+msgstr "B<-q>, B<--queue >I<valoare>"
+
+#. type: Plain text
+#: ../man/kill.1:62 ../man/pgrep.1:228
+msgid "Use B<sigqueue>(3) rather than B<kill>(2) and the value argument is used to specify an integer to be sent with the signal. If the receiving process has installed a handler for this signal using the SA_SIGINFO flag to B<sigaction>(2), then it can obtain this data via the si_value field of the siginfo_t structure."
+msgstr "Utilizează B<sigqueue>(3) mai degrabă decât B<kill>(2) și valoarea argumentului este folosită pentru a specifica un număr întreg care trebuie trimis împreună cu semnalul. Dacă procesul de recepție a instalat un operator pentru a gestiona acest semnal utilizând indicatorul SA_SIGINFO la B<sigaction>(2), atunci poate obține aceste date prin câmpul si_value al structurii siginfo_t."
+
+#. type: TP
+#: ../man/kill.1:62
+#, no-wrap
+msgid "B<-l>, B<--list> [I<signal>]"
+msgstr "B<-l>, B<--list> [I<semnal>]"
+
+#. type: Plain text
+#: ../man/kill.1:66
+msgid "List signal names. This option has optional argument, which will convert signal number to signal name, or other way round."
+msgstr "Listează numele semnalelor. Această opțiune are un argument opțional, care va converti numărul semnalului în nume de semnal sau invers."
+
+#. type: TP
+#: ../man/kill.1:66 ../man/skill.1:52
+#, no-wrap
+msgid "B<-L>,B<\\ --table>"
+msgstr "B<-L>, B<-table>"
+
+#. type: Plain text
+#: ../man/kill.1:69
+msgid "List signal names in a nice table."
+msgstr "Listează numele semnalelor într-un tabel amiabil."
+
+#. type: SH
+#: ../man/kill.1:71 ../man/pgrep.1:284 ../man/slabtop.1:96
+#: ../man/sysctl.conf.5:39 ../man/vmstat.8:185 ../man/watch.1:144
+#: ../man/ps.1:768
+#, no-wrap
+msgid "NOTES"
+msgstr "NOTE"
+
+#. type: Plain text
+#: ../man/kill.1:75
+msgid "Your shell (command line interpreter) may have a built-in kill command. You may need to run the command described here as /bin/kill to solve the conflict."
+msgstr "Shell-ul dumneavoastră (interpretul de linie de comandă) poate avea o comandă «kill» încorporată. Poate fi necesar să rulați comanda descrisă aici ca «/bin/kill» pentru a rezolva conflictul."
+
+#. type: SH
+#: ../man/kill.1:75 ../man/pgrep.1:240 ../man/skill.1:99 ../man/sysctl.8:143
+#: ../man/watch.1:191 ../man/ps.1:84
+#, no-wrap
+msgid "EXAMPLES"
+msgstr "EXEMPLE"
+
+#. type: TP
+#: ../man/kill.1:76
+#, no-wrap
+msgid "B<kill -9 -1>"
+msgstr "B<kill -9 -1>"
+
+#. type: Plain text
+#: ../man/kill.1:79
+msgid "Kill all processes you can kill."
+msgstr "Omoară toate procesele pe care le puteți omorî."
+
+#. type: TP
+#: ../man/kill.1:79
+#, no-wrap
+msgid "B<kill -l 11>"
+msgstr "B<kill -l 11>"
+
+#. type: Plain text
+#: ../man/kill.1:82
+msgid "Translate number 11 into a signal name."
+msgstr "Transformă numărul 11 într-un nume de semnal."
+
+#. type: TP
+#: ../man/kill.1:82
+#, no-wrap
+msgid "B<kill -L>"
+msgstr "B<kill -L>"
+
+#. type: Plain text
+#: ../man/kill.1:85
+msgid "List the available signal choices in a nice table."
+msgstr "Listează opțiunile de semnal disponibile într-un tabel amiabil."
+
+#. type: TP
+#: ../man/kill.1:85
+#, no-wrap
+msgid "B<kill 123 543 2341 3453>"
+msgstr "B<kill 123 543 2341 3453>"
+
+#. type: Plain text
+#: ../man/kill.1:88
+msgid "Send the default signal, SIGTERM, to all those processes."
+msgstr "Trimite semnalul implicit, SIGTERM, tuturor acestor procese."
+
+#. type: Plain text
+#: ../man/kill.1:97
+msgid "B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), B<renice>(1), B<signal>(7), B<sigqueue>(3), B<skill>(1)"
+msgstr "B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), B<renice>(1), B<signal>(7), B<sigqueue>(3), B<skill>(1)"
+
+#. type: SH
+#: ../man/kill.1:97 ../man/pmap.1:93 ../man/pwdx.1:28 ../man/skill.1:117
+#: ../man/ps.1:2076
+#, no-wrap
+msgid "STANDARDS"
+msgstr "STANDARDE"
+
+#. type: Plain text
+#: ../man/kill.1:101
+msgid "This command meets appropriate standards. The B<-L> flag is Linux-specific."
+msgstr "Această comandă îndeplinește standardele adecvate. Indicatorul B<-L> este specific pentru Linux."
+
+#. type: SH
+#: ../man/kill.1:101 ../man/pgrep.1:327 ../man/pidof.1:79 ../man/pwdx.1:32
+#: ../man/skill.1:119 ../man/sysctl.8:189 ../man/sysctl.conf.5:85
+#: ../man/ps.1:2093
+#, no-wrap
+msgid "AUTHOR"
+msgstr "AUTOR"
+
+#. type: Plain text
+#: ../man/kill.1:107
+msgid "E<.UR albert@users.sf.net> Albert Cahalan E<.UE> wrote kill in 1999 to replace a bsdutils one that was not standards compliant. The util-linux one might also work correctly."
+msgstr "E<.UR albert@users.sf.net> Albert Cahalan E<.UE> a scris «kill» în 1999 pentru a înlocui pe cel din „bsdutils†care nu era conform cu standardele. Cel din „util-linux†ar putea, de asemenea, să funcționeze corect."
+
+#. type: SH
+#: ../man/kill.1:107 ../man/pgrep.1:331 ../man/pmap.1:97 ../man/pwdx.1:37
+#: ../man/skill.1:125 ../man/slabtop.1:120 ../man/sysctl.8:193
+#: ../man/sysctl.conf.5:89 ../man/tload.1:66 ../man/uptime.1:71
+#: ../man/vmstat.8:199 ../man/w.1:112 ../man/watch.1:229
+#, no-wrap
+msgid "REPORTING BUGS"
+msgstr "RAPORTAREA ERORILOR"
+
+#. type: Plain text
+#: ../man/kill.1:110 ../man/pgrep.1:334 ../man/pmap.1:100 ../man/pwdx.1:40
+#: ../man/skill.1:128 ../man/slabtop.1:123 ../man/sysctl.8:196
+#: ../man/sysctl.conf.5:92 ../man/tload.1:69 ../man/uptime.1:74
+#: ../man/vmstat.8:202 ../man/w.1:115 ../man/watch.1:232
+msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE>"
+msgstr "Trimiteți rapoartele de eroare la E<.UR procps@freelists.org> E<.UE>"
+
+#. type: TH
+#: ../man/pgrep.1:13
+#, no-wrap
+msgid "PGREP"
+msgstr "PGREP"
+
+#. type: Plain text
+#: ../man/pgrep.1:16
+msgid "pgrep, pkill, pidwait - look up, signal, or wait for processes based on name and other attributes"
+msgstr "pgrep, pkill, pidwait - caută, semnalează sau așteaptă procesele pe baza numelui și a altor atribute"
+
+#. type: Plain text
+#: ../man/pgrep.1:19
+msgid "B<pgrep> [options] pattern"
+msgstr "B<pgrep> [opțiuni] model"
+
+#. type: Plain text
+#: ../man/pgrep.1:22
+msgid "B<pkill> [options] pattern"
+msgstr "B<pkill> [opțiuni] model"
+
+#. type: Plain text
+#: ../man/pgrep.1:25
+msgid "B<pidwait> [options] pattern"
+msgstr "B<pidwait> [opțiuni] model"
+
+#. type: Plain text
+#: ../man/pgrep.1:30
+msgid "B<pgrep> looks through the currently running processes and lists the process IDs which match the selection criteria to stdout. All the criteria have to match. For example,"
+msgstr "B<pgrep> examinează procesele care rulează în prezent și listează ID-urile proceselor care corespund criteriilor de selecție la ieșirea standard. Toate criteriile trebuie să se potrivească. De exemplu,"
+
+#. type: Plain text
+#: ../man/pgrep.1:32
+msgid "$ pgrep -u root sshd"
+msgstr "$ pgrep -u root sshd"
+
+#. type: Plain text
+#: ../man/pgrep.1:38
+msgid "will only list the processes called B<sshd> AND owned by B<root>. On the other hand,"
+msgstr "va lista numai procesele numite B<sshd> ȘI deținute de B<root>. Pe de altă parte,"
+
+#. type: Plain text
+#: ../man/pgrep.1:40
+msgid "$ pgrep -u root,daemon"
+msgstr "$ pgrep -u root,daemon"
+
+#. type: Plain text
+#: ../man/pgrep.1:45
+msgid "will list the processes owned by B<root> OR B<daemon>."
+msgstr "va lista procesele deținute de B<root> SAU B<daemon>."
+
+#. type: Plain text
+#: ../man/pgrep.1:50
+msgid "B<pkill> will send the specified signal (by default B<SIGTERM>) to each process instead of listing them on stdout."
+msgstr "B<pkill> va trimite semnalul specificat (în mod implicit B<SIGTERM>) către fiecare proces în loc să le listeze la ieșirea standard."
+
+#. type: Plain text
+#: ../man/pgrep.1:53
+msgid "B<pidwait> will wait for each process instead of listing them on stdout."
+msgstr "B<pidwait> va aștepta pentru fiecare proces în loc să le listeze la ieșirea standard."
+
+#. type: TP
+#: ../man/pgrep.1:54
+#, no-wrap
+msgid "B<->I<signal>"
+msgstr "B<->I<semnal>"
+
+#. type: TQ
+#: ../man/pgrep.1:56
+#, no-wrap
+msgid "B<--signal> I<signal>"
+msgstr "B<--signal> I<semnal>"
+
+#. type: Plain text
+#: ../man/pgrep.1:66
+msgid "Defines the signal to send to each matched process. Either the numeric or the symbolic signal name can be used. In B<pgrep> or B<pidwait> mode only the long option can be used and has no effect unless used in conjunction with B<--require-handler> to filter to processes with a userspace signal handler present for a particular signal."
+msgstr "Definește semnalul care urmează să fie trimis fiecărui proces asociat. Se poate utiliza fie numele numeric, fie numele simbolic al semnalului. În modul B<pgrep> sau B<pidwait>, se poate utiliza numai opțiunea lungă, care nu are niciun efect, cu excepția cazului în care este utilizată împreună cu B<--require-handler> pentru a filtra procesele care au un gestionar de semnal în spațiul utilizatorului pentru un anumit semnal."
+
+#. type: TP
+#: ../man/pgrep.1:67
+#, no-wrap
+msgid "B<-c>, B<--count>"
+msgstr "B<-c>, B<--count>"
+
+# R-GC, scrie:
+# ========
+# după revizarea fișierului, DȘ spune:
+# "Când numărul nu corespunde cu nimic, de exp. returnează zero, comanda
+# va "
+# → prescurtarea „de exp.†este puțin ambiguuă,
+# ar trebui folosită „de ex.†pentru a duce gândul
+# la „exempluâ€
+# ***
+# Ok
+# PS: în final, am decis „să adopt†forma întreagă,
+# È™i nu cea prescurtată, a lui „exempluâ€
+#. type: Plain text
+#: ../man/pgrep.1:74
+msgid "Suppress normal output; instead print a count of matching processes. When count does not match anything, e.g. returns zero, the command will return non-zero value. Note that for pkill and pidwait, the count is the number of matching processes, not the processes that were successfully signaled or waited for."
+msgstr "Suprimă ieșirea normală; în schimb, afișează un număr de procese de potrivire. Când numărul nu corespunde cu nimic, de exemplu returnează zero, comanda va returna o valoare diferită de zero. Rețineți că pentru pkill și pidwait, numărul este numărul de procese de potrivire, nu procesele care au fost semnalate cu succes sau așteptate."
+
+#. type: TP
+#: ../man/pgrep.1:74
+#, no-wrap
+msgid "B<-d>, B<--delimiter> I<delimiter>"
+msgstr "B<-d>, B<--delimiter> I<delimitator>"
+
+#. type: Plain text
+#: ../man/pgrep.1:80
+msgid "Sets the string used to delimit each process ID in the output (by default a newline). (B<pgrep> only.)"
+msgstr "Stabilește șirul utilizat pentru a delimita fiecare ID de proces din ieșire (în mod implicit, o linie nouă). (Numai B<pgrep>.)"
+
+#. type: TP
+#: ../man/pgrep.1:80
+#, no-wrap
+msgid "B<-e>, B<--echo>"
+msgstr "B<-e>, B<--echo>"
+
+#. type: Plain text
+#: ../man/pgrep.1:85
+msgid "Display name and PID of the process being killed. (B<pkill> only.)"
+msgstr "Afișează numele și PID-ul procesului în curs de omorâre. (Numai B<pkill>.)"
+
+#. type: TP
+#: ../man/pgrep.1:85
+#, no-wrap
+msgid "B<-f>, B<--full>"
+msgstr "B<-f>, B<--full>"
+
+#. type: Plain text
+#: ../man/pgrep.1:92
+msgid "The I<pattern> is normally only matched against the process name. When B<-f> is set, the full command line is used."
+msgstr "I<modelul> se potrivește în mod normal doar cu numele procesului. Când este dată opțiunea B<-f>, se utilizează linia de comandă completă."
+
+# R-GC, scrie:
+# la acest mesaj, și la unele din mesajele
+# următoare, am folosit nomenclatura
+# utilizată în fișierul procps-ng pentru
+# mesajele de ajutor ale utilizatorului;
+# pentru a fi coerent între cele două
+# fișiere, și pentru că
+# mi s-a/se părut/pare mai potrivită/sugestivă.
+#. type: TP
+#: ../man/pgrep.1:92
+#, no-wrap
+msgid "B<-g>, B<--pgroup> I<pgrp>,..."
+msgstr "B<-g>, B<--pgroup> I<PGID>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:101
+msgid "Only match processes in the process group IDs listed. Process group 0 is translated into B<pgrep>'s, B<pkill>'s, or B<pidwait>'s own process group."
+msgstr "Potrivește numai procesele din ID-urile grupului de procese enumerate. Grupul de procese 0 este convertit în grupul de procese propriu al lui B<pgrep>, B<pkill> sau B<pidwait>."
+
+#. type: TP
+#: ../man/pgrep.1:101
+#, no-wrap
+msgid "B<-G>, B<--group> I<gid>,..."
+msgstr "B<-G>, B<--group> I<GID>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:105
+msgid "Only match processes whose real group ID is listed. Either the numerical or symbolical value may be used."
+msgstr "Potrivește numai procesele al căror ID de grup real este listat. Se poate folosi fie valoarea numerică, fie valoarea simbolică."
+
+#. type: TP
+#: ../man/pgrep.1:105
+#, no-wrap
+msgid "B<-i>, B<--ignore-case>"
+msgstr "B<-i>, B<--ignore-case>"
+
+#. type: Plain text
+#: ../man/pgrep.1:108
+msgid "Match processes case-insensitively."
+msgstr "Potrivește procesele fără a ține seama de diferența dintre majuscule și minuscule."
+
+#. type: TP
+#: ../man/pgrep.1:108
+#, no-wrap
+msgid "B<-l>, B<--list-name>"
+msgstr "B<-l>, B<--list-name>"
+
+#. type: Plain text
+#: ../man/pgrep.1:113
+msgid "List the process name as well as the process ID. (B<pgrep> only.)"
+msgstr "Listează numele procesului, precum și ID-ul procesului. (Numai B<pgrep>.)"
+
+#. type: TP
+#: ../man/pgrep.1:113
+#, no-wrap
+msgid "B<-a>, B<--list-full>"
+msgstr "B<-a>, B<--list-full>"
+
+#. type: Plain text
+#: ../man/pgrep.1:118
+msgid "List the full command line as well as the process ID. (B<pgrep> only.)"
+msgstr "Listează linia de comandă completă, precum și ID-ul procesului. (Numai B<pgrep>.)"
+
+#. type: TP
+#: ../man/pgrep.1:118
+#, no-wrap
+msgid "B<-n>, B<--newest>"
+msgstr "B<-n>, B<--newest>"
+
+#. type: Plain text
+#: ../man/pgrep.1:121
+msgid "Select only the newest (most recently started) of the matching processes."
+msgstr "Selectează doar cel mai nou (cel mai recent început) dintre procesele care s-au potrivit modelului dat."
+
+#. type: TP
+#: ../man/pgrep.1:121
+#, no-wrap
+msgid "B<-o>, B<--oldest>"
+msgstr "B<-o>, B<--oldest>"
+
+#. type: Plain text
+#: ../man/pgrep.1:124
+msgid "Select only the oldest (least recently started) of the matching processes."
+msgstr "Selectați doar cel mai vechi (cel mai puțin recent) început dintre procesele care s-au potrivit modelului dat."
+
+#. type: TP
+#: ../man/pgrep.1:124
+#, no-wrap
+msgid "B<-O>, B<--older> I<secs>"
+msgstr "B<-O>, B<--older> I<secunde>"
+
+#. type: Plain text
+#: ../man/pgrep.1:127
+msgid "Select processes older than secs."
+msgstr "Selectează procesele mai vechi de I<secunde> secunde."
+
+#. type: TP
+#: ../man/pgrep.1:127
+#, no-wrap
+msgid "B<-P>, B<--parent> I<ppid>,..."
+msgstr "B<-P>, B<--parent> I<ppid>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:130
+msgid "Only match processes whose parent process ID is listed."
+msgstr "Potrivește doar procesele al căror ID de proces părinte este listat."
+
+#. type: TP
+#: ../man/pgrep.1:130
+#, no-wrap
+msgid "B<-s>, B<--session> I<sid>,..."
+msgstr "B<-s>, B<--session> I<SID>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:139
+msgid "Only match processes whose process session ID is listed. Session ID 0 is translated into B<pgrep>'s, B<pkill>'s, or B<pidwait>'s own session ID."
+msgstr "Potrivește doar procesele al căror ID de sesiune de proces este listat. ID-ul de sesiune 0 este convertit în ID-ul de sesiune al lui B<pgrep>, B<pkill> sau B<pidwait>."
+
+#. type: TP
+#: ../man/pgrep.1:139
+#, no-wrap
+msgid "B<-t>, B<--terminal> I<term>,..."
+msgstr "B<-t>, B<--terminal> I<terminal>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:143
+msgid "Only match processes whose controlling terminal is listed. The terminal name should be specified without the \"/dev/\" prefix."
+msgstr "PotriveÈ™te numai procesele al căror terminal de control este listat. Numele terminalului trebuie specificat fără prefixul „/dev/â€."
+
+#. type: TP
+#: ../man/pgrep.1:143
+#, no-wrap
+msgid "B<-u>, B<--euid> I<euid>,..."
+msgstr "B<-u>, B<--euid> I<uid_efectiv>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:147
+msgid "Only match processes whose effective user ID is listed. Either the numerical or symbolical value may be used."
+msgstr "Potrivește numai procesele al căror ID de utilizator efectiv este listat. Se poate folosi fie valoarea numerică, fie valoarea simbolică."
+
+#. type: TP
+#: ../man/pgrep.1:147
+#, no-wrap
+msgid "B<-U>, B<--uid> I<uid>,..."
+msgstr "B<-U>, B<--uid> I<uid>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:151
+msgid "Only match processes whose real user ID is listed. Either the numerical or symbolical value may be used."
+msgstr "Potrivește numai procesele al căror ID de utilizator real este listat. Se poate folosi fie valoarea numerică, fie valoarea simbolică."
+
+#. type: TP
+#: ../man/pgrep.1:151
+#, no-wrap
+msgid "B<-v>, B<--inverse>"
+msgstr "B<-v>, B<--inverse>"
+
+#. type: Plain text
+#: ../man/pgrep.1:160
+msgid "Negates the matching. This option is usually used in B<pgrep>'s or B<pidwait>'s context. In B<pkill>'s context the short option is disabled to avoid accidental usage of the option."
+msgstr "Inversează rezultatul potrivirii(va afișa toate procesele ce NU se potrivesc cu modelul). Această opțiune este de obicei folosită în contextul lui B<pgrep> sau B<pidwait>. În contextul lui B<pkill>, opțiunea scurtă este dezactivată pentru a evita utilizarea accidentală a opțiunii."
+
+#. type: TP
+#: ../man/pgrep.1:160
+#, no-wrap
+msgid "B<-w>, B<--lightweight>"
+msgstr "B<-w>, B<--lightweight>"
+
+#. type: Plain text
+#: ../man/pgrep.1:169
+msgid "Shows all thread ids instead of pids in B<pgrep>'s or B<pidwait>'s context. In B<pkill>'s context this option is disabled."
+msgstr "Afișează toate ID-urile firelor de execuție în loc de id-urile proceselor în contextul lui B<pgrep> sau B<pidwait>. În contextul lui B<pkill>, această opțiune este dezactivată."
+
+#. type: TP
+#: ../man/pgrep.1:169
+#, no-wrap
+msgid "B<-x>, B<--exact>"
+msgstr "B<-x>, B<--exact>"
+
+#. type: Plain text
+#: ../man/pgrep.1:175
+msgid "Only match processes whose names (or command lines if B<-f> is specified) B<exactly> match the I<pattern>."
+msgstr "Potrivește numai procesele ale căror nume (sau linii de comandă dacă este specificată opțiunea B<-f>) se potrivesc B<exact> cu I<modelul>."
+
+#. type: TP
+#: ../man/pgrep.1:175
+#, no-wrap
+msgid "B<-F>, B<--pidfile> I<file>"
+msgstr "B<-F>, B<--pidfile> I<fișier>"
+
+#. type: Plain text
+#: ../man/pgrep.1:183
+msgid "Read I<PID>s from I<file>. This option is more useful for B<pkill> or B<pidwait> than B<pgrep>."
+msgstr "Citește I<PID>-urile din I<fișier>. Această opțiune este mai utilă pentru B<pkill> sau B<pidwait> decât pentru B<pgrep>."
+
+#. type: TP
+#: ../man/pgrep.1:183
+#, no-wrap
+msgid "B<-L>, B<--logpidfile>"
+msgstr "B<-L>, B<--logpidfile>"
+
+#. type: Plain text
+#: ../man/pgrep.1:186
+msgid "Fail if pidfile (see B<-F>) not locked."
+msgstr "Eșuează dacă fișierul pid (a se vedea B<-F>) nu este blocat."
+
+#. type: TP
+#: ../man/pgrep.1:186
+#, no-wrap
+msgid "B<-r>, B<--runstates> I<D,R,S,Z,>..."
+msgstr "B<-r>, B<--runstates> I<D,R,S,Z,>..."
+
+#. type: Plain text
+#: ../man/pgrep.1:189
+msgid "Match only processes which match the process state."
+msgstr "Potrivește numai procesele care se potrivesc cu starea procesului."
+
+#. type: TP
+#: ../man/pgrep.1:189
+#, no-wrap
+msgid "B<-A>, B<--ignore-ancestors>"
+msgstr "B<-A>, B<--ignore-ancestors>"
+
+#. type: Plain text
+#: ../man/pgrep.1:199
+msgid "Ignore all ancestors of B<pgrep>, B<pkill>, or B<pidwait>. For example, this can be useful when elevating with B<sudo> or similar tools."
+msgstr "Ignoră toți antecesorii lui B<pgrep>, B<pkill> și B<pidwait>. De exemplu, acest lucru poate fi util atunci când escaladați drepturile de acces folosind B<sudo> sau instrumente similare."
+
+#. type: TP
+#: ../man/pgrep.1:199
+#, no-wrap
+msgid "B<-H>, B<--require-handler>"
+msgstr "B<-H>, B<--require-handler>"
+
+#. type: Plain text
+#: ../man/pgrep.1:203
+msgid "Only match processes with a userspace signal handler present for the signal to be sent."
+msgstr "Se potrivește numai cu procesele care au un gestionar de semnal din spațiul utilizatorului prezent pentru semnalul care urmează să fie trimis."
+
+#. type: TP
+#: ../man/pgrep.1:203
+#, no-wrap
+msgid "B<--cgroup >I<name>B<,...>"
+msgstr "B<--cgroup >I<nume>B<,...>"
+
+#. type: Plain text
+#: ../man/pgrep.1:207
+msgid "Match on provided control group (cgroup) v2 name. See B<cgroups>(8)"
+msgstr "Potriviți pe numele grupului de control (cgroup) v2 furnizat. A se vedea B<cgroups>(8)"
+
+#. type: TP
+#: ../man/pgrep.1:207 ../man/skill.1:87
+#, no-wrap
+msgid "B<--ns >I<pid>"
+msgstr "B<--ns> I<pid>"
+
+#. type: Plain text
+#: ../man/pgrep.1:212
+msgid "Match processes that belong to the same namespaces. Required to run as root to match processes from other users. See B<--nslist> for how to limit which namespaces to match."
+msgstr "Potrivește procesele care aparțin acelorași spații de nume. Este necesar să ruleze ca root pentru a potrivi procesele de la alți utilizatori. Consultați B<--nslist> pentru cum să limitați spațiile de nume care să corespundă."
+
+#. type: TP
+#: ../man/pgrep.1:212
+#, no-wrap
+msgid "B<--nslist >I<name>B<,...>"
+msgstr "B<--nslist >I<nume>B<,...>"
+
+#. type: Plain text
+#: ../man/pgrep.1:216
+msgid "Match only the provided namespaces. Available namespaces: ipc, mnt, net, pid, user, uts."
+msgstr "Potrivește numai spațiile de nume furnizate. Spațiile de nume disponibile, sunt: ipc, mnt, net, pid, user, uts."
+
+#. type: Plain text
+#: ../man/pgrep.1:231 ../man/pmap.1:75 ../man/slabtop.1:48 ../man/sysctl.8:119
+#: ../man/tload.1:41 ../man/vmstat.8:100 ../man/watch.1:100
+msgid "Display version information and exit."
+msgstr "Afișează informațiile despre versiune și iese."
+
+#. type: TP
+#: ../man/pgrep.1:231 ../man/pmap.1:69 ../man/pwdx.1:22 ../man/skill.1:65
+#: ../man/slabtop.1:48 ../man/sysctl.8:113 ../man/tload.1:35
+#: ../man/uptime.1:40 ../man/vmstat.8:100 ../man/watch.1:94
+#, no-wrap
+msgid "B<-h>, B<--help>"
+msgstr "B<-h>, B<--help>"
+
+#. type: Plain text
+#: ../man/pgrep.1:234 ../man/vmstat.8:103
+msgid "Display help and exit."
+msgstr "Afișează mesajul de ajutor și iese."
+
+#. type: SH
+#: ../man/pgrep.1:235
+#, no-wrap
+msgid "OPERANDS"
+msgstr "OPERANZI"
+
+#. type: TP
+#: ../man/pgrep.1:236
+#, no-wrap
+msgid "I<pattern>"
+msgstr "I<model>"
+
+#. type: Plain text
+#: ../man/pgrep.1:240
+msgid "Specifies an Extended Regular Expression for matching against the process names or command lines."
+msgstr "Specifică o expresie regulată extinsă pentru potrivirea cu numele proceselor sau liniile de comandă."
+
+#. type: Plain text
+#: ../man/pgrep.1:244
+msgid "Example 1: Find the process ID of the B<named> daemon:"
+msgstr "Exemplul 1: Găsiți ID-ul de proces al demonului B<named>:"
+
+#. type: Plain text
+#: ../man/pgrep.1:246
+msgid "$ pgrep -u root named"
+msgstr "$ pgrep -u root named"
+
+#. type: Plain text
+#: ../man/pgrep.1:250
+msgid "Example 2: Make B<syslog> reread its configuration file:"
+msgstr "Exemplul 2: Face ca B<syslog> să recitească fișierul său de configurare:"
+
+#. type: Plain text
+#: ../man/pgrep.1:252
+msgid "$ pkill -HUP syslogd"
+msgstr "$ pkill -HUP syslogd"
+
+#. type: Plain text
+#: ../man/pgrep.1:256
+msgid "Example 3: Give detailed information on all B<xterm> processes:"
+msgstr "Exemplul 3: Oferă informații detaliate despre toate procesele B<xterm>:"
+
+#. type: Plain text
+#: ../man/pgrep.1:258
+msgid "$ ps -fp $(pgrep -d, -x xterm)"
+msgstr "$ ps -fp $(pgrep -d, -x xterm)"
+
+#. type: Plain text
+#: ../man/pgrep.1:262
+msgid "Example 4: Make all B<chrome> processes run nicer:"
+msgstr "Exemplul 4: Face ca toate procesele B<chrome> să ruleze cu o valoare „niceâ€, incrementată (să ruleze cu o prioritate mai mică):"
+
+#. type: Plain text
+#: ../man/pgrep.1:264
+msgid "$ renice +4 $(pgrep chrome)"
+msgstr "$ renice +4 $(pgrep chrome)"
+
+#. type: SH
+#: ../man/pgrep.1:264 ../man/pidof.1:61 ../man/pmap.1:75 ../man/watch.1:100
+#, no-wrap
+msgid "EXIT STATUS"
+msgstr "STARE DE IEȘIRE"
+
+#. type: TP
+#: ../man/pgrep.1:266
+#, no-wrap
+msgid "0"
+msgstr "0"
+
+#. type: Plain text
+#: ../man/pgrep.1:274
+msgid "One or more processes matched the criteria. For B<pkill> and B<pidwait>, one or more processes must also have been successfully signalled or waited for."
+msgstr "Unul sau mai multe procese s-au potrivit cu criteriile. Pentru B<pkill> și B<pidwait>, unul sau mai multe procese trebuie, de asemenea, să fi fost semnalate sau așteptate cu succes."
+
+#. type: IP
+#: ../man/pgrep.1:274 ../man/ps.1:43 ../man/ps.1:818 ../man/ps.1:2082
+#, no-wrap
+msgid "1"
+msgstr "1"
+
+#. type: Plain text
+#: ../man/pgrep.1:277
+msgid "No processes matched or none of them could be signalled."
+msgstr "Niciun proces nu s-a potrivit sau niciunul dintre ele nu a putut fi semnalat."
+
+#. type: IP
+#: ../man/pgrep.1:277 ../man/ps.1:45 ../man/ps.1:2084
+#, no-wrap
+msgid "2"
+msgstr "2"
+
+#. type: Plain text
+#: ../man/pgrep.1:280
+msgid "Syntax error in the command line."
+msgstr "Eroare de sintaxă în linia de comandă."
+
+#. type: IP
+#: ../man/pgrep.1:280 ../man/ps.1:47 ../man/ps.1:2086
+#, no-wrap
+msgid "3"
+msgstr "3"
+
+#. type: Plain text
+#: ../man/pgrep.1:283
+msgid "Fatal error: out of memory etc."
+msgstr "Eroare fatală: memorie insuficientă, etc."
+
+#. type: Plain text
+#: ../man/pgrep.1:289
+msgid "The process name used for matching is limited to the 15 characters present in the output of /proc/I<pid>/stat. Use the B<-f> option to match against the complete command line, /proc/I<pid>/cmdline. Threads may not have the same process name as the parent process but will have the same command line."
+msgstr "Numele procesului folosit pentru potrivire este limitat la cele 15 caractere prezente în ieșirea /proc/I<pid>/stat. Utilizați opțiunea B<-f> pentru a se potrivi cu linia de comandă completă, /proc/I<pid>/cmdline. Este posibil ca firele de execuție să nu aibă același nume de proces ca și procesul părinte, dar vor avea aceeași linie de comandă."
+
+#. type: Plain text
+#: ../man/pgrep.1:297
+msgid "The running B<pgrep>, B<pkill>, or B<pidwait> process will never report itself as a match."
+msgstr "Procesul care rulează B<pgrep>, B<pkill> sau B<pidwait> nu se va raporta niciodată ca o potrivire."
+
+#. type: Plain text
+#: ../man/pgrep.1:301
+msgid "The B<-O --older> option will silently fail if I</proc> is mounted with the I<subset=pid> option."
+msgstr "Opțiunea B<-O --older> va eșua în tăcere dacă I</proc> este montat cu opțiunea I<subset=pid>."
+
+#. type: Plain text
+#: ../man/pgrep.1:310
+msgid "The options B<-n> and B<-o> and B<-v> can not be combined. Let me know if you need to do this."
+msgstr "Opțiunile B<-n> și B<-o> și B<-v> nu pot fi combinate. Anunțați autorii, dacă credeți că este necesar să puteți face asta."
+
+#. type: Plain text
+#: ../man/pgrep.1:312
+msgid "Defunct processes are reported."
+msgstr "Sunt raportate procesele defuncte."
+
+#. type: Plain text
+#: ../man/pgrep.1:317
+msgid "B<pidwait> requires the B<pidfd_open>(2) system call which first appeared in Linux 5.3."
+msgstr "B<pidwait> necesită apelul de sistem B<pidfd_open>(2) care a apărut pentru prima dată în nucleul Linux versiunea 5.3."
+
+#. type: Plain text
+#: ../man/pgrep.1:327
+msgid "B<ps>(1), B<regex>(7), B<signal>(7), B<sigqueue>(3), B<killall>(1), B<skill>(1), B<kill>(1), B<kill>(2), B<cgroups>(8)."
+msgstr "B<ps>(1), B<regex>(7), B<signal>(7), B<sigqueue>(3), B<killall>(1), B<skill>(1), B<kill>(1), B<kill>(2), B<cgroups>(8)."
+
+#. type: Plain text
+#: ../man/pgrep.1:331
+msgid "E<.UR kjetilho@ifi.uio.no> Kjetil Torgrim Homme E<.UE>"
+msgstr "E<.UR kjetilho@ifi.uio.no> Kjetil Torgrim Homme E<.UE>"
+
+#. type: TH
+#: ../man/pidof.1:13
+#, no-wrap
+msgid "PIDOF"
+msgstr "PIDOF"
+
+#. type: Plain text
+#: ../man/pidof.1:16
+msgid "pidof - find the process ID of a running program"
+msgstr "pidof - găsește ID-ul de proces al unui program care rulează"
+
+#. type: Plain text
+#: ../man/pidof.1:30
+msgid "B<pidof> [B<-s>] [B<-c>] [B<-q>] [B<-w>] [B<-x>] [B<-o> I<omitpid[,omitpid...]...>] [B<-t>] [B<-S> I<separator>] I<program> I<[>B<program...>I<]>"
+msgstr "B<pidof> [B<-s>] [B<-c>] [B<-q>] [B<-w>] [B<-x>] [B<-o> I<omitpid[,omitpid...]...>] [B<-t>] [B<-S> I<separator>] I<program> I<[>B<program...>I<]>"
+
+#. type: Plain text
+#: ../man/pidof.1:34
+msgid "B<Pidof> finds the process id's (pids) of the named programs. It prints those id's on the standard output."
+msgstr "B<Pidof> găsește ID-urile de proces (pid-urile) ale programelor numite. Afișează acele id-uri la ieșirea standard."
+
+#. type: IP
+#: ../man/pidof.1:35
+#, no-wrap
+msgid "B<-s>"
+msgstr "B<-s>"
+
+#. type: Plain text
+#: ../man/pidof.1:37
+msgid "Single shot - this instructs the program to only return one I<pid>."
+msgstr "O singură „împușcătură†- această opțiune indică programului să returneze doar un I<pid>."
+
+#. type: TP
+#: ../man/pidof.1:37 ../man/ps.1:409
+#, no-wrap
+msgid "B<-c>"
+msgstr "B<-c>"
+
+#. type: Plain text
+#: ../man/pidof.1:41
+msgid "Only return process ids that are running with the same root directory. This option is ignored for non-root users, as they will be unable to check the current root directory of processes they do not own."
+msgstr "Returnează numai ID-urile de proces care rulează cu același director rădăcină. Această opțiune este ignorată pentru utilizatorii non-root, deoarece aceștia nu vor putea verifica directorul rădăcină curent al proceselor pe care nu le dețin."
+
+#. type: IP
+#: ../man/pidof.1:41
+#, no-wrap
+msgid "B<-q>"
+msgstr "B<-q>"
+
+#. type: Plain text
+#: ../man/pidof.1:43
+msgid "Quiet mode, suppress any output and only sets the exit status accordingly."
+msgstr "Modul silențios, suprimă orice ieșire și afișează numai starea de ieșire(codul de ieșire) corespunzătoare."
+
+#. type: TP
+#: ../man/pidof.1:43 ../man/ps.1:718
+#, no-wrap
+msgid "B<-w>"
+msgstr "B<-w>"
+
+#. type: Plain text
+#: ../man/pidof.1:46
+msgid "Show also processes that do not have visible command line (e.g. kernel worker threads)."
+msgstr "Afișează, de asemenea, procesele care nu au linie de comandă vizibilă (de exemplu firele de execuție ale kernelului)."
+
+#. type: TP
+#: ../man/pidof.1:46 ../man/sysctl.8:110
+#, no-wrap
+msgid "B<-x>"
+msgstr "B<-x>"
+
+#. type: Plain text
+#: ../man/pidof.1:49
+msgid "Scripts too - this causes the program to also return process id's of shells running the named scripts."
+msgstr "Scripturi de asemenea - acest lucru face ca programul să returneze și ID-urile de proces ale shell-urilor care rulează scripturile numite."
+
+#. type: IP
+#: ../man/pidof.1:49
+#, no-wrap
+msgid "B<-o> I<omitpid>"
+msgstr "B<-o> I<omitpid>"
+
+#. type: Plain text
+#: ../man/pidof.1:53
+msgid "Tells B<pidof> to omit processes with that process id. The special pid B<%PPID> can be used to name the parent process of the B<pidof> program, in other words the calling shell or shell script."
+msgstr "Îi indică lui B<pidof> să omită procesele cu acel ID de proces. Pid-ul special B<%PPID> poate fi folosit pentru a numii procesul părinte al programului B<pidof>, cu alte cuvinte shell-ul de apelare sau scriptul shell."
+
+#. type: IP
+#: ../man/pidof.1:53
+#, no-wrap
+msgid "B<-t>"
+msgstr "B<-t>"
+
+#. type: Plain text
+#: ../man/pidof.1:55
+msgid "Shows all thread ids instead of pids."
+msgstr "Afișează toți identificatorii firelor de execuție în loc de identificatorii proceselor."
+
+#. type: IP
+#: ../man/pidof.1:55
+#, no-wrap
+msgid "B<-S> I<separator>"
+msgstr "B<-S> I<separator>"
+
+#. type: Plain text
+#: ../man/pidof.1:61
+msgid "Use I<separator> as a separator put between pids. Used only when more than one pids are printed for the program. The B<-d> option is an alias for this option for sysvinit B<pidof> compatibility."
+msgstr "Utilizează I<separator> ca separator pus între pid-uri. Folosit numai atunci când sunt afișate mai multe pid-uri pentru program. Opțiunea B<-d> este un alias pentru această opțiune pentru compatibilitate cu sysvinit B<pidof>."
+
+#. type: TP
+#: ../man/pidof.1:62 ../man/pmap.1:79 ../man/watch.1:104
+#, no-wrap
+msgid "B<0>"
+msgstr "B<0>"
+
+#. type: Plain text
+#: ../man/pidof.1:65
+msgid "At least one program was found with the requested name."
+msgstr "A fost găsit cel puțin un program cu numele solicitat."
+
+#. type: TP
+#: ../man/pidof.1:65 ../man/pmap.1:82 ../man/watch.1:107
+#, no-wrap
+msgid "B<1>"
+msgstr "B<1>"
+
+#. type: Plain text
+#: ../man/pidof.1:68
+msgid "No program was found with the requested name."
+msgstr "Nu a fost găsit niciun program cu numele solicitat."
+
+#. type: Plain text
+#: ../man/pidof.1:75
+msgid "When using the B<-x> option, B<pidof> only has a simple method for detecting scripts and will miss scripts that, for example, use env. This limitation is due to how the scripts look in the proc filesystem."
+msgstr "Când se utilizează opÈ›iunea B<-x>, B<pidof> are doar o metodă simplă de detectare a scripturilor È™i va pierde scripturile care, de exemplu, folosesc „envâ€. Această limitare se datorează modului în care arată scripturile în sistemul de fiÈ™iere I<proc>."
+
+#. type: Plain text
+#: ../man/pidof.1:79
+msgid "B<pgrep>(1), B<pkill>(1)"
+msgstr "B<pgrep>(1), B<pkill>(1)"
+
+#. type: Plain text
+#: ../man/pidof.1:82
+msgid "E<.UR jcapik@redhat.com> Jaromir Capik E<.UE>"
+msgstr "E<.UR jcapik@redhat.com> Jaromir Capik E<.UE>"
+
+#. type: TH
+#: ../man/pmap.1:19
+#, no-wrap
+msgid "PMAP"
+msgstr "PMAP"
+
+#. type: TH
+#: ../man/pmap.1:19 ../man/pwdx.1:12 ../man/tload.1:12
+#, no-wrap
+msgid "2020-06-04"
+msgstr "04.06.2020"
+
+#. type: Plain text
+#: ../man/pmap.1:22
+msgid "pmap - report memory map of a process"
+msgstr "pmap - raportează harta de memorie a unui proces"
+
+#. type: Plain text
+#: ../man/pmap.1:25
+msgid "B<pmap> [I<options>] I<pid> [...]"
+msgstr "B<pmap> [I<opțiuni>] I<pid> [...]"
+
+#. type: Plain text
+#: ../man/pmap.1:29
+msgid "The B<pmap> command reports the memory map of a process or processes."
+msgstr "Comanda B<pmap> raportează harta de memorie a unui proces sau procese."
+
+#. type: TP
+#: ../man/pmap.1:30
+#, no-wrap
+msgid "B<-x>, B<--extended>"
+msgstr "B<-x>, B<--extended>"
+
+#. type: Plain text
+#: ../man/pmap.1:33
+msgid "Show the extended format."
+msgstr "Afișează formatul extins."
+
+#. type: TP
+#: ../man/pmap.1:33
+#, no-wrap
+msgid "B<-d>, B<--device>"
+msgstr "B<-d>, B<--device>"
+
+#. type: Plain text
+#: ../man/pmap.1:36
+msgid "Show the device format."
+msgstr "Afișează formatul dispozitivului."
+
+#. type: TP
+#: ../man/pmap.1:36 ../man/sysctl.8:57
+#, no-wrap
+msgid "B<-q>, B<--quiet>"
+msgstr "B<-q>, B<--quiet>"
+
+#. type: Plain text
+#: ../man/pmap.1:39
+msgid "Do not display some header or footer lines."
+msgstr "Nu afișează unele linii de antet sau de subsol."
+
+#. type: TP
+#: ../man/pmap.1:39
+#, no-wrap
+msgid "B<-A>, B<--range> I<low>,I<high>"
+msgstr "B<-A>, B<--range> I<limită_inferioară>,I<limită_superioară>"
+
+#. type: Plain text
+#: ../man/pmap.1:47
+msgid "Limit results to the given range to I<low> and I<high> address range. Notice that the low and high arguments are single string separated with comma."
+msgstr "Limitează rezultatele la intervalul dat de intervalul de adrese I<limită_inferioară> și I<limită_superioară>. Observați că argumentele I<limită_inferioară> și I<limită_superioară> sunt un singur șir separate prin virgulă."
+
+#. type: TP
+#: ../man/pmap.1:47 ../man/sysctl.8:104
+#, no-wrap
+msgid "B<-X>"
+msgstr "B<-X>"
+
+#. type: Plain text
+#: ../man/pmap.1:51
+msgid "Show even more details than the B<-x> option. WARNING: format changes according to I</proc/PID/smaps>"
+msgstr "Afișează și mai multe detalii decât opțiunea B<-x>. AVERTISMENT: formatul se modifică conform I</proc/PID/smaps>"
+
+#. type: TP
+#: ../man/pmap.1:51
+#, no-wrap
+msgid "B<-XX>"
+msgstr "B<-XX>"
+
+#. type: Plain text
+#: ../man/pmap.1:54
+msgid "Show everything the kernel provides"
+msgstr "Afișează toate datele ce le furnizează nucleul"
+
+#. type: TP
+#: ../man/pmap.1:54
+#, no-wrap
+msgid "B<-p>, B<--show-path>"
+msgstr "B<-p>, B<--show-path>"
+
+#. type: Plain text
+#: ../man/pmap.1:57
+msgid "Show full path to files in the mapping column"
+msgstr "Afișează calea completă către fișiere în coloana de asociere"
+
+#. type: TP
+#: ../man/pmap.1:57
+#, no-wrap
+msgid "B<-c>, B<--read-rc>"
+msgstr "B<-c>, B<--read-rc>"
+
+#. type: Plain text
+#: ../man/pmap.1:60
+msgid "Read the default configuration"
+msgstr "Citește configurația implicită"
+
+#. type: TP
+#: ../man/pmap.1:60
+#, no-wrap
+msgid "B<-C>, B<--read-rc-from> I<file>"
+msgstr "B<-C>, B<--read-rc-from> I<fișier>"
+
+#. type: Plain text
+#: ../man/pmap.1:63
+msgid "Read the configuration from I<file>"
+msgstr "Citește configurația din I<fișier>"
+
+#. type: TP
+#: ../man/pmap.1:63
+#, no-wrap
+msgid "B<-n>, B<--create-rc>"
+msgstr "B<-n>, B<--create-rc>"
+
+#. type: Plain text
+#: ../man/pmap.1:66
+msgid "Create new default configuration"
+msgstr "Creează o nouă configurație implicită"
+
+#. type: TP
+#: ../man/pmap.1:66
+#, no-wrap
+msgid "B<-N>, B<--create-rc-to> I<file>"
+msgstr "B<-N>, B<--create-rc-to> I<fișier>"
+
+#. type: Plain text
+#: ../man/pmap.1:69
+msgid "Create new configuration to I<file>"
+msgstr "Creează o nouă configurație în I<fișier>"
+
+#. type: Plain text
+#: ../man/pmap.1:72 ../man/skill.1:68 ../man/sysctl.8:116 ../man/w.1:66
+#: ../man/watch.1:97
+msgid "Display help text and exit."
+msgstr "Afișează acest mesaj de ajutor."
+
+#. type: Plain text
+#: ../man/pmap.1:82 ../man/watch.1:107
+msgid "Success."
+msgstr "Succes."
+
+#. type: Plain text
+#: ../man/pmap.1:85
+msgid "Failure."
+msgstr "Eșec."
+
+#. type: TP
+#: ../man/pmap.1:85
+#, no-wrap
+msgid "B<42>"
+msgstr "B<42>"
+
+#. type: Plain text
+#: ../man/pmap.1:88
+msgid "Did not find all processes asked for."
+msgstr "Nu s-au găsit toate procesele solicitate."
+
+#. type: Plain text
+#: ../man/pmap.1:93 ../man/pwdx.1:28
+msgid "B<ps>(1), B<pgrep>(1)"
+msgstr "B<ps>(1), B<pgrep>(1)"
+
+#. type: Plain text
+#: ../man/pmap.1:97
+msgid "No standards apply, but B<pmap> looks an awful lot like a SunOS command."
+msgstr "Nu este respectat niciun standard, dar B<pmap> seamănă foarte mult cu o comandă SunOS."
+
+#. type: TH
+#: ../man/pwdx.1:12
+#, no-wrap
+msgid "PWDX"
+msgstr "PWDX"
+
+#. type: Plain text
+#: ../man/pwdx.1:15
+msgid "pwdx - report current working directory of a process"
+msgstr "pwdx - raportează directorul de lucru curent al unui proces"
+
+#. type: Plain text
+#: ../man/pwdx.1:18
+msgid "B<pwdx> [I<options>] I<pid> [...]"
+msgstr "B<pwdx> [I<opțiuni>] I<pid> [...]"
+
+#. type: Plain text
+#: ../man/pwdx.1:22
+msgid "Output version information and exit."
+msgstr "Afișează informațiile despre versiune și iese."
+
+#. type: Plain text
+#: ../man/pwdx.1:25
+msgid "Output help screen and exit."
+msgstr "Afișează acest mesaj de ajutor și iese."
+
+#. type: Plain text
+#: ../man/pwdx.1:32
+msgid "No standards apply, but B<pwdx> looks an awful lot like a SunOS command."
+msgstr "Nu este respectat niciun standard, dar B<pwdx> seamănă foarte mult cu o comandă SunOS."
+
+#. type: Plain text
+#: ../man/pwdx.1:37
+msgid "E<.UR nmiell@gmail.com> Nicholas Miell E<.UE> wrote pwdx in 2004."
+msgstr "E<.UR nmiell@gmail.com> Nicholas Miell E<.UE> a scris «pwdx» în 2004."
+
+#. type: TH
+#: ../man/skill.1:12
+#, no-wrap
+msgid "SKILL"
+msgstr "SKILL"
+
+#. type: TH
+#: ../man/skill.1:12 ../man/sysctl.8:14 ../man/ps.1:13
+#, no-wrap
+msgid "2023-08-19"
+msgstr "19.08.2023"
+
+#. type: Plain text
+#: ../man/skill.1:15
+msgid "skill, snice - send a signal or report process status"
+msgstr "skill, snice – trimite un semnal sau raportează starea procesului"
+
+#. type: Plain text
+#: ../man/skill.1:20
+msgid "B<skill> [I<signal>] [I<options>] I<expression>"
+msgstr "B<skill> [I<semnal>] [I<opțiuni>] I<expresie>"
+
+#. type: Plain text
+#: ../man/skill.1:25
+msgid "B<snice> [I<new priority>] [I<options>] I<expression>"
+msgstr "B<snice> [I<nouă_prioritate>] [I<opțiuni>] I<expresie>"
+
+#. type: Plain text
+#: ../man/skill.1:33
+msgid "These tools are obsolete and unportable. The command syntax is poorly defined. Consider using the B<killall>, B<pkill>, and B<pgrep> commands instead."
+msgstr "Aceste instrumente sunt învechite și neportabile. Sintaxa comenzii este prost definită. Luați în considerare utilizarea comenzilor B<killall>, B<pkill> și B<pgrep>."
+
+#. type: Plain text
+#: ../man/skill.1:38
+msgid "The default signal for B<skill> is TERM. Use B<-l> or B<-L> to list available signals. Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0. Alternate signals may be specified in three ways: B<-9> B<-SIGKILL> B<-KILL>."
+msgstr "Semnalul implicit pentru B<skill> este I<TERM>. Folosiți opțiunile „B<-l> sau B<-L> pentru a lista semnalele disponibile. Printre cele mai utile semnale, sunt: HUP, INT, KILL, STOP, CONT și 0. Semnalele pot fi specificate în trei moduri: B<-9>, B<-SIGKILL> și B<-KILL>."
+
+#. type: Plain text
+#: ../man/skill.1:42
+msgid "The default priority for B<snice> is +4. Priority numbers range from +20 (slowest) to -20 (fastest). Negative priority numbers are restricted to administrative users."
+msgstr "Prioritatea implicită pentru B<snice> este +4. Numerele de prioritate variază de la +20 (cel mai lent) la -20 (cel mai rapid). Numerele cu prioritate negativă sunt limitate la utilizatorii administrativi."
+
+#. type: TP
+#: ../man/skill.1:43
+#, no-wrap
+msgid "B<-f>,B<\\ --fast>"
+msgstr "B<-f>, B<--fast>"
+
+#. type: Plain text
+#: ../man/skill.1:46
+msgid "Fast mode. This option has not been implemented."
+msgstr "Modul rapid. Această opțiune nu a fost implementată."
+
+#. type: TP
+#: ../man/skill.1:46
+#, no-wrap
+msgid "B<-i>,B<\\ --interactive>"
+msgstr "B<-i>, B<--interactive>"
+
+#. type: Plain text
+#: ../man/skill.1:49
+msgid "Interactive use. You will be asked to approve each action."
+msgstr "Utilizare interactivă. Vi se va solicita să aprobați fiecare acțiune."
+
+#. type: TP
+#: ../man/skill.1:49
+#, no-wrap
+msgid "B<-l>,B<\\ --list>"
+msgstr "B<-l>, B<--list>"
+
+#. type: Plain text
+#: ../man/skill.1:52
+msgid "List all signal names."
+msgstr "Listează toate numele semnalelor."
+
+#. type: Plain text
+#: ../man/skill.1:55
+msgid "List all signal names in a nice table."
+msgstr "Listează toate numele semnalelor într-un tabel ordonat."
+
+#. type: TP
+#: ../man/skill.1:55
+#, no-wrap
+msgid "B<-n>,B<\\ --no-action>"
+msgstr "B<-n>, B<--no-action>"
+
+#. type: Plain text
+#: ../man/skill.1:59
+msgid "No action; perform a simulation of events that would occur but do not actually change the system."
+msgstr "Nicio acțiune; efectuează o simulare a evenimentelor care ar avea loc, dar nu schimbă de fapt sistemul."
+
+#. type: TP
+#: ../man/skill.1:59
+#, no-wrap
+msgid "B<-v>,B<\\ --verbose>"
+msgstr "B<-v>, B<--verbose>"
+
+#. type: Plain text
+#: ../man/skill.1:62
+msgid "Verbose; explain what is being done."
+msgstr "Informații detaliate; explică ce se face."
+
+#. type: TP
+#: ../man/skill.1:62
+#, no-wrap
+msgid "B<-w>,B<\\ --warnings>"
+msgstr "B<-w>, B<--warnings>"
+
+#. type: Plain text
+#: ../man/skill.1:65
+msgid "Enable warnings. This option has not been implemented."
+msgstr "Activează avertismentele. Această opțiune nu a fost implementată."
+
+#. type: SH
+#: ../man/skill.1:72
+#, no-wrap
+msgid "PROCESS SELECTION OPTIONS"
+msgstr "OPÈšIUNI DE SELECTARE A PROCESULUI"
+
+#. type: Plain text
+#: ../man/skill.1:75
+msgid "Selection criteria can be: terminal, user, pid, command. The options below may be used to ensure correct interpretation."
+msgstr "Criteriile de selecție pot fi: terminal, user, pid, command. Opțiunile de mai jos pot fi utilizate pentru a asigura o interpretare corectă."
+
+#. type: TP
+#: ../man/skill.1:75
+#, no-wrap
+msgid "B<-t>, B<--tty> I<tty>"
+msgstr "B<-t>, B<--tty> I<tty>"
+
+#. type: Plain text
+#: ../man/skill.1:78
+msgid "The next expression is a terminal (tty or pty)."
+msgstr "Următoarea expresie este un terminal (tty sau pty)."
+
+#. type: TP
+#: ../man/skill.1:78
+#, no-wrap
+msgid "B<-u>, B<--user> I<user>"
+msgstr "B<-u>, B<--user> I<utilizator>"
+
+#. type: Plain text
+#: ../man/skill.1:81
+msgid "The next expression is a username."
+msgstr "Următoarea expresie este un nume de utilizator."
+
+#. type: TP
+#: ../man/skill.1:81
+#, no-wrap
+msgid "B<-p>, B<--pid> I<pid>"
+msgstr "B<-p>, B<--pid> I<pid>"
+
+#. type: Plain text
+#: ../man/skill.1:84
+msgid "The next expression is a process ID number."
+msgstr "Următoarea expresie este un număr de identificare a procesului."
+
+#. type: TP
+#: ../man/skill.1:84
+#, no-wrap
+msgid "B<-c>, B<--command> I<command>"
+msgstr "B<-c>, B<--command> I<comanda>"
+
+#. type: Plain text
+#: ../man/skill.1:87
+msgid "The next expression is a command name."
+msgstr "Următoarea expresie este un nume de comandă."
+
+#. type: Plain text
+#: ../man/skill.1:90
+msgid "Match the processes that belong to the same namespace as pid."
+msgstr "Potrivește procesele care aparțin aceluiași spațiu de nume ca pid."
+
+#. type: TP
+#: ../man/skill.1:90
+#, no-wrap
+msgid "B<--nslist >I<ns\\/>,\\,I<...\\/>"
+msgstr "B<--nslist >I<ns\\/>,\\,I<...\\/>"
+
+#. type: Plain text
+#: ../man/skill.1:94
+msgid "list which namespaces will be considered for the B<--ns> option. Available namespaces: ipc, mnt, net, pid, user, uts."
+msgstr "listează spațiile de nume care vor fi luate în considerare pentru opțiunea B<--ns>. Spațiile de nume disponibile, sunt: ipc, mnt, net, pid, user, uts."
+
+#. type: SH
+#: ../man/skill.1:95
+#, no-wrap
+msgid "SIGNALS"
+msgstr "SEMNALE"
+
+#. type: Plain text
+#: ../man/skill.1:99
+msgid "The behavior of signals is explained in B<signal>(7) manual page."
+msgstr "Comportamentul semnalelor este explicat în pagina de manual B<signal>(7)."
+
+#. type: TP
+#: ../man/skill.1:100
+#, no-wrap
+msgid "B<snice -c seti -c crack +7>"
+msgstr "B<snice -c seti -c crack +7>"
+
+#. type: Plain text
+#: ../man/skill.1:103
+msgid "+Slow down B<seti> and B<crack> commands."
+msgstr "+Încetinește comenzile B<seti> și B<crack>."
+
+#. type: TP
+#: ../man/skill.1:103
+#, no-wrap
+msgid "B<skill -KILL -t /dev/pts/*>"
+msgstr "B<skill -KILL -t /dev/pts/*>"
+
+#. type: Plain text
+#: ../man/skill.1:106
+msgid "Kill users on PTY devices."
+msgstr "Omoară sesiunile de utilizator pe dispozitivele PTY."
+
+#. type: TP
+#: ../man/skill.1:106
+#, no-wrap
+msgid "B<skill -STOP -u viro -u lm -u davem>"
+msgstr "B<skill -STOP -u viro -u lm -u davem>"
+
+#. type: Plain text
+#: ../man/skill.1:109
+msgid "Stop three users."
+msgstr "Oprește trei utilizatori."
+
+#. type: Plain text
+#: ../man/skill.1:117
+msgid "B<kill>(1), B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), B<renice>(1), B<signal>(7)"
+msgstr "B<kill>(1), B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), B<renice>(1), B<signal>(7)"
+
+#. type: Plain text
+#: ../man/skill.1:119
+msgid "No standards apply."
+msgstr "Nu este respectat niciun standard."
+
+#. type: Plain text
+#: ../man/skill.1:125
+msgid "E<.MT albert@users.sf.net> Albert Cahalan E<.ME> wrote skill and snice in 1999 as a replacement for a non-free version."
+msgstr "E<.MT albert@users.sf.net> Albert Cahalan E<.ME> a scris «skill» și «snice» în 1999 pentru a înlocui versiunile care nu erau libere."
+
+#. type: TH
+#: ../man/slabtop.1:14
+#, no-wrap
+msgid "SLABTOP"
+msgstr "SLABTOP"
+
+#. type: TH
+#: ../man/slabtop.1:14
+#, no-wrap
+msgid "2021-03-11"
+msgstr "11.03.2021"
+
+#. type: Plain text
+#: ../man/slabtop.1:17
+msgid "slabtop - display kernel slab cache information in real time"
+msgstr "slabtop - afișează în timp real informațiile din zona de prestocare a memoriei „slab†din nucleu"
+
+#. type: Plain text
+#: ../man/slabtop.1:20
+msgid "B<slabtop> [I<options>]"
+msgstr "B<slabtop> [I<opțiuni>]"
+
+#. type: Plain text
+#: ../man/slabtop.1:25
+msgid "B<slabtop> displays detailed kernel slab cache information in real time. It displays a listing of the top caches sorted by one of the listed sort criteria. It also displays a statistics header filled with slab layer information."
+msgstr "B<slabtop> afișează în timp real informații detaliate din zona de prestocare a memoriei „slab†din nucleu. Afișează o listă cu principale zone de prestocare a memoriei, sortate după unul dintre criteriile de sortare enumerate. De asemenea, afișează un antet de statistici plin cu informații despre stratul „slab†(obiecte alocate nucleului)."
+
+#. type: Plain text
+#: ../man/slabtop.1:30
+msgid "Normal invocation of B<slabtop> does not require any options. The behavior, however, can be fine-tuned by specifying one or more of the following flags:"
+msgstr "Invocarea normală a lui B<slabtop> nu necesită nicio opțiune. Comportamentul, totuși, poate fi ajustat prin specificarea uneia sau a mai multora dintre următoarele opțiuni:"
+
+#. type: TP
+#: ../man/slabtop.1:30
+#, no-wrap
+msgid "B<-d>, B<--delay>=I<N>"
+msgstr "B<-d>, B<--delay>=I<N>"
+
+#. type: Plain text
+#: ../man/slabtop.1:39
+msgid "Refresh the display every I<n> in seconds. By default, B<slabtop> refreshes the display every three seconds. To exit the program, hit B<q>. This cannot be combined with the B<-o> option."
+msgstr "Reîmprospătează afișajul la fiecare I<n> secunde. În mod implicit, B<slabtop> reîmprospătează afișajul la fiecare trei secunde. Pentru a ieși din program, apăsați B<q>. Această opțiune nu poate fi combinată cu opțiunea B<-o>."
+
+#. type: TP
+#: ../man/slabtop.1:39
+#, no-wrap
+msgid "B<-s>, B<--sort>=I<S>"
+msgstr "B<-s>, B<--sort>=I<S>"
+
+#. type: Plain text
+#: ../man/slabtop.1:42
+msgid "Sort by I<S>, where I<S> is one of the sort criteria."
+msgstr "Sortați după I<S>, unde I<S> este unul dintre criteriile de sortare."
+
+#. type: TP
+#: ../man/slabtop.1:42
+#, no-wrap
+msgid "B<-o>, B<--once>"
+msgstr "B<-o>, B<--once>"
+
+#. type: Plain text
+#: ../man/slabtop.1:45
+msgid "Display the output once and then exit."
+msgstr "Afișează ieșirea o dată și apoi iese."
+
+#. type: Plain text
+#: ../man/slabtop.1:51
+msgid "Display usage information and exit."
+msgstr "Afișează informațiile de utilizare și iese."
+
+#. type: SH
+#: ../man/slabtop.1:51
+#, no-wrap
+msgid "SORT CRITERIA"
+msgstr "CRITERIILE DE SORTARE"
+
+#. type: Plain text
+#: ../man/slabtop.1:55
+msgid "The following are valid sort criteria used to sort the individual slab caches and thereby determine what are the \"top\" slab caches to display. The default sort criteria is to sort by the number of objects (\"o\")."
+msgstr "Următoarele sunt criterii de sortare valide utilizate pentru a sorta zonele de prestocare «slab» individuale și, prin urmare, pentru a determina care sunt zonele de prestocare «slab» „principale†de afișat. Criteriul implicit de sortare este sortarea după numărul de obiecte (\"o\")."
+
+#. type: Plain text
+#: ../man/slabtop.1:59
+msgid "The sort criteria can also be changed while B<slabtop> is running by pressing the associated character."
+msgstr "Criteriile de sortare pot fi modificate și în timp ce B<slabtop> rulează apăsând caracterul asociat."
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<character>"
+msgstr "B<caracter>"
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<description>"
+msgstr "B<descriere>"
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<header>"
+msgstr "B<antet>"
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "a"
+msgstr "a"
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "number of active objects"
+msgstr "numărul de obiecte active"
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "ACTIVE"
+msgstr "ACTIVE"
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "b"
+msgstr "b"
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "objects per slab"
+msgstr "obiecte per „slabâ€"
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "OBJ/SLAB"
+msgstr "OBJ/SLAB"
+
+#. type: tbl table
+#: ../man/slabtop.1:64 ../man/ps.1:909 ../man/ps.1:1081
+#, no-wrap
+msgid "c"
+msgstr "c"
+
+#. type: tbl table
+#: ../man/slabtop.1:64
+#, no-wrap
+msgid "cache size"
+msgstr "dimensiunea zonei de prestocare"
+
+#. type: tbl table
+#: ../man/slabtop.1:64
+#, no-wrap
+msgid "CACHE SIZE"
+msgstr "DIM. CACHE"
+
+#. type: TP
+#: ../man/slabtop.1:65 ../man/ps.1:882
+#, no-wrap
+msgid "l"
+msgstr "l"
+
+#. type: tbl table
+#: ../man/slabtop.1:65
+#, no-wrap
+msgid "number of slabs"
+msgstr "numărul de „slabsâ€"
+
+#. type: tbl table
+#: ../man/slabtop.1:65
+#, no-wrap
+msgid "SLABS"
+msgstr "SLABS"
+
+#. type: tbl table
+#: ../man/slabtop.1:66 ../man/ps.1:932
+#, no-wrap
+msgid "v"
+msgstr "v"
+
+#. type: tbl table
+#: ../man/slabtop.1:66
+#, no-wrap
+msgid "number of active slabs"
+msgstr "numărul de „slabs†active"
+
+#. type: tbl table
+#: ../man/slabtop.1:66 ../man/slabtop.1:69
+#, no-wrap
+msgid "N/A"
+msgstr "N/D"
+
+#. type: tbl table
+#: ../man/slabtop.1:67 ../man/ps.1:919
+#, no-wrap
+msgid "n"
+msgstr "n"
+
+#. type: tbl table
+#: ../man/slabtop.1:67
+#, no-wrap
+msgid "name"
+msgstr "nume"
+
+#. type: tbl table
+#: ../man/slabtop.1:67
+#, no-wrap
+msgid "NAME\\:"
+msgstr "NUME\\:"
+
+#. type: tbl table
+#: ../man/slabtop.1:68 ../man/ps.1:921
+#, no-wrap
+msgid "o"
+msgstr "o"
+
+#. type: tbl table
+#: ../man/slabtop.1:68
+#, no-wrap
+msgid "number of objects"
+msgstr "numărul de obiecte"
+
+#. type: tbl table
+#: ../man/slabtop.1:68
+#, no-wrap
+msgid "OBJS"
+msgstr "OBJS"
+
+#. type: tbl table
+#: ../man/slabtop.1:69 ../man/ps.1:922
+#, no-wrap
+msgid "p"
+msgstr "p"
+
+#. type: tbl table
+#: ../man/slabtop.1:69
+#, no-wrap
+msgid "pages per slab"
+msgstr "pagini per „slabâ€"
+
+#. type: tbl table
+#: ../man/slabtop.1:70 ../man/ps.1:879 ../man/ps.1:926 ../man/ps.1:1631
+#, no-wrap
+msgid "s"
+msgstr "s"
+
+#. type: tbl table
+#: ../man/slabtop.1:70
+#, no-wrap
+msgid "object size"
+msgstr "dimensiunea obiectului"
+
+#. type: tbl table
+#: ../man/slabtop.1:70
+#, no-wrap
+msgid "OBJ SIZE"
+msgstr "DIM. OBJ"
+
+#. type: tbl table
+#: ../man/slabtop.1:71 ../man/ps.1:931
+#, no-wrap
+msgid "u"
+msgstr "u"
+
+#. type: tbl table
+#: ../man/slabtop.1:71
+#, no-wrap
+msgid "cache utilization"
+msgstr "utilizarea zonei de prestocare"
+
+#. type: tbl table
+#: ../man/slabtop.1:71
+#, no-wrap
+msgid "USE"
+msgstr "USE"
+
+#. type: SH
+#: ../man/slabtop.1:73
+#, no-wrap
+msgid "COMMANDS"
+msgstr "COMENZI"
+
+#. type: Plain text
+#: ../man/slabtop.1:77
+msgid "B<slabtop> accepts keyboard commands from the user during use. The following are supported. In the case of letters, both cases are accepted."
+msgstr "B<slabtop> acceptă comenzi de la tastatură de la utilizator în timpul utilizării. Sunt acceptate următoarele. În cazul literelor, ambele tipuri (majuscule + minuscule) sunt acceptate."
+
+#. type: Plain text
+#: ../man/slabtop.1:81
+msgid "Each of the valid sort characters are also accepted, to change the sort routine. See the section B<SORT CRITERIA>."
+msgstr "Fiecare dintre caracterele de sortare valide sunt de asemenea acceptate, pentru a schimba rutina de sortare. Consultați secțiunea B<CRITERIILE DE SORTARE>."
+
+#. type: TP
+#: ../man/slabtop.1:81
+#, no-wrap
+msgid "B<E<lt>SPACEBARE<gt>>"
+msgstr "B<E<lt>BARA_DE_SPAÈšIUE<gt>>"
+
+#. type: Plain text
+#: ../man/slabtop.1:84
+msgid "Refresh the screen."
+msgstr "Reîmprospătează ecranul."
+
+#. type: TP
+#: ../man/slabtop.1:84
+#, no-wrap
+msgid "B<Q>"
+msgstr "B<Q>"
+
+#. type: Plain text
+#: ../man/slabtop.1:87
+msgid "Quit the program."
+msgstr "Ieșire din program."
+
+#. type: TP
+#: ../man/slabtop.1:88
+#, no-wrap
+msgid "I</proc/slabinfo>"
+msgstr "I</proc/slabinfo>"
+
+#. type: Plain text
+#: ../man/slabtop.1:91
+msgid "slab information"
+msgstr "informaÈ›ii despre „slabâ€"
+
+#. type: Plain text
+#: ../man/slabtop.1:96
+msgid "B<free>(1), B<ps>(1), B<top>(1), B<vmstat>(8)"
+msgstr "B<free>(1), B<ps>(1), B<top>(1), B<vmstat>(8)"
+
+#. type: Plain text
+#: ../man/slabtop.1:102
+msgid "Currently, B<slabtop> requires a 2.4 or later kernel (specifically, a version 1.1 or later I</proc/slabinfo>). Kernel 2.2 should be supported in the future."
+msgstr "În prezent, B<slabtop> necesită un nucleu 2.4 sau mai recent (în special, o versiune 1.1 sau mai recentă a I</proc/slabinfo>). Nucleul 2.2 ar trebui să fie acceptat în viitor."
+
+#. type: Plain text
+#: ../man/slabtop.1:108
+msgid "The B<slabtop> statistic header is tracking how many bytes of slabs are being used and is not a measure of physical memory. The 'Slab' field in the I</proc/meminfo> file is tracking information about used slab physical memory."
+msgstr "Antetul statistic B<slabtop> urmărește câți octeți de „slabs†sunt utilizați și nu este o măsură a memoriei fizice. Câmpul „Slab†din fișierul I</proc/meminfo> urmărește informații despre memoria fizică „slab†utilizate."
+
+#. type: Plain text
+#: ../man/slabtop.1:114
+msgid "The B<CACHE SIZE> column is not accurate, it's the upper limit of memory used by specific slab. When system using slub (most common case) is under high memory pressure, there are slab order fallbacks, which means \"pages per slab\" is not constant and may decrease."
+msgstr "Coloana B<DIM. CACHE> nu este precisă, ci reprezintă limita superioară a memoriei utilizate de un anumit „slabâ€. Atunci când sistemul care utilizează „slub†(cel mai frecvent caz) este supus unei presiuni mari asupra memoriei, există scăpări de ordine a „slabsâ€, ceea ce înseamnă că «paginile per „slabâ€Â» nu sunt constante È™i pot scădea."
+
+#. type: SH
+#: ../man/slabtop.1:114 ../man/tload.1:58 ../man/uptime.1:56 ../man/w.1:102
+#, no-wrap
+msgid "AUTHORS"
+msgstr "AUTORI"
+
+#. type: Plain text
+#: ../man/slabtop.1:116
+msgid "Written by Chris Rivera and Robert Love."
+msgstr "Scris de Chris Rivera și Robert Love."
+
+#. type: Plain text
+#: ../man/slabtop.1:120
+msgid "B<slabtop> was inspired by Martin Bligh's perl script, B<vmtop>."
+msgstr "B<slabtop> a fost inspirat de scriptul perl al lui Martin Bligh, B<vmtop>."
+
+#. type: TH
+#: ../man/sysctl.8:14
+#, no-wrap
+msgid "SYSCTL"
+msgstr "SYSCTL"
+
+#. type: TH
+#: ../man/sysctl.8:14 ../man/vmstat.8:13
+#, no-wrap
+msgid "System Administration"
+msgstr "Administrare sistem"
+
+#. type: Plain text
+#: ../man/sysctl.8:17
+msgid "sysctl - configure kernel parameters at runtime"
+msgstr "sysctl - configurează parametrii nucleului în timpul rulării"
+
+#. type: Plain text
+#: ../man/sysctl.8:20
+msgid "B<sysctl> [I<options>] [I<variable>[B<=>I<value>]] [...]"
+msgstr "B<sysctl> [I<opțiuni>] [I<variabilă>[B<=>I<valoare>]] [...]"
+
+#. type: Plain text
+#: ../man/sysctl.8:23
+msgid "B<sysctl -p> [I<file> or I<regexp>] [...]"
+msgstr "B<sysctl -p> [I<fișier> sau I<exp_reg>] [...]"
+
+#. type: Plain text
+#: ../man/sysctl.8:31
+msgid "B<sysctl> is used to modify kernel parameters at runtime. The parameters available are those listed under I</proc/sys/>. Procfs is required for B<sysctl> support in Linux. You can use B<sysctl> to both read and write sysctl data."
+msgstr "B<sysctl> este folosit pentru a modifica parametrii nucleului în timpul rulării. Parametrii disponibili sunt cei enumerați în I</proc/sys/>. Procfs este necesar pentru suportul B<sysctl> în Linux. Puteți folosi B<sysctl> atât pentru a citi, cât și pentru a scrie date I<sysctl>."
+
+#. type: SH
+#: ../man/sysctl.8:31
+#, no-wrap
+msgid "PARAMETERS"
+msgstr "PARAMETRI"
+
+#. type: TP
+#: ../man/sysctl.8:32
+#, no-wrap
+msgid "I<variable>"
+msgstr "I<variabilă>"
+
+#. type: Plain text
+#: ../man/sysctl.8:36
+msgid "The name of a key to read from. An example is kernel.ostype. The '/' separator is also accepted in place of a '.'."
+msgstr "Numele unei chei din care să citiÈ›i. Un exemplu este „kernel.ostypeâ€. Separatorul „/†este de asemenea acceptat în locul unui „.â€."
+
+#. type: TP
+#: ../man/sysctl.8:36
+#, no-wrap
+msgid "I<variable>=I<value>"
+msgstr "I<variabilă>=I<valoare>"
+
+#. type: Plain text
+#: ../man/sysctl.8:47
+msgid "To set a key, use the form I<variable>=I<value> where I<variable> is the key and I<value> is the value to set it to. If the value contains quotes or characters which are parsed by the shell, you may need to enclose the value in double quotes."
+msgstr "Pentru a configura o cheie, utilizați forma I<variabilă>=I<valoare> unde I<variabilă> este cheia și I<valoare> este valoarea la care să o configurați. Dacă valoarea conține ghilimele sau caracterele care sunt analizate de shell, poate fi necesar să includeți valoarea între ghilimele duble."
+
+#. type: TP
+#: ../man/sysctl.8:47
+#, no-wrap
+msgid "B<-n>, B<--values>"
+msgstr "B<-n>, B<--values>"
+
+#. type: Plain text
+#: ../man/sysctl.8:50
+msgid "Use this option to disable printing of the key name when printing values."
+msgstr "Utilizați această opțiune pentru a dezactiva afișarea numelui cheii atunci când se afișează valori."
+
+#. type: TP
+#: ../man/sysctl.8:50
+#, no-wrap
+msgid "B<-e>, B<--ignore>"
+msgstr "B<-e>, B<--ignore>"
+
+#. type: Plain text
+#: ../man/sysctl.8:53
+msgid "Use this option to ignore errors about unknown keys."
+msgstr "Utilizați această opțiune pentru a ignora erorile legate de cheile necunoscute."
+
+#. type: TP
+#: ../man/sysctl.8:53
+#, no-wrap
+msgid "B<-N>, B<--names>"
+msgstr "B<-N>, B<--names>"
+
+#. type: Plain text
+#: ../man/sysctl.8:57
+msgid "Use this option to only print the names. It may be useful with shells that have programmable completion."
+msgstr "Utilizați această opțiune pentru a afișa numai numele. Poate fi util cu shell-uri care au o completare programabilă."
+
+#. type: Plain text
+#: ../man/sysctl.8:60
+msgid "Use this option to not display the values set to stdout."
+msgstr "Utilizați această opțiune pentru a nu afișa valorile configurate la ieșirea standard."
+
+#. type: TP
+#: ../man/sysctl.8:60
+#, no-wrap
+msgid "B<-w>, B<--write>"
+msgstr "B<-w>, B<--write>"
+
+#. type: Plain text
+#: ../man/sysctl.8:64
+msgid "Force all arguments to be write arguments and print an error if they cannot be parsed this way."
+msgstr "Forțează toate argumentele să fie argumente de scriere și afișează o eroare dacă acestea nu pot fi analizate în acest mod."
+
+#. type: TP
+#: ../man/sysctl.8:64
+#, no-wrap
+msgid "B<-p>[I<FILE>], B<--load>[=I<FILE>]"
+msgstr "B<-p>[I<FIȘIER>], B<--load>[=I<FIȘIER>]"
+
+#. type: Plain text
+#: ../man/sysctl.8:72
+msgid "Load in B<sysctl> settings from the file specified or I</etc/sysctl.conf> if none given. Specifying - as filename means reading data from standard input. Using this option will mean arguments to B<sysctl> are files, which are read in the order they are specified. The file argument may be specified as regular expression."
+msgstr "Încărcați configurările I<sysctl> din fișierul specificat sau I</etc/sysctl.conf> dacă nu este specificat niciunul. Specificarea „-†ca nume de fișier înseamnă citirea datelor de la intrarea standard. Utilizarea acestei opțiuni va însemna că argumentele pentru B<sysctl> sunt fișiere, care sunt citite în ordinea în care sunt specificate. Argumentul fișier poate fi specificat ca expresie regulată."
+
+#. type: TP
+#: ../man/sysctl.8:72
+#, no-wrap
+msgid "B<-a>, B<--all>"
+msgstr "B<-a>, B<--all>"
+
+#. type: Plain text
+#: ../man/sysctl.8:75
+msgid "Display all values currently available."
+msgstr "Afișează toate valorile disponibile în prezent."
+
+#. type: TP
+#: ../man/sysctl.8:75
+#, no-wrap
+msgid "B<--deprecated>"
+msgstr "B<--deprecated>"
+
+#. type: Plain text
+#: ../man/sysctl.8:80
+msgid "Include deprecated parameters to B<--all> values listing."
+msgstr "Include parametrii învechiți în lista cu valori B<--all>."
+
+#. type: TP
+#: ../man/sysctl.8:80
+#, no-wrap
+msgid "B<-b>, B<--binary>"
+msgstr "B<-b>, B<--binary>"
+
+#. type: Plain text
+#: ../man/sysctl.8:83
+msgid "Print value without new line."
+msgstr "Afișează valoarea fără linie nouă."
+
+#. type: TP
+#: ../man/sysctl.8:83
+#, no-wrap
+msgid "B<--system>"
+msgstr "B<--system>"
+
+#. type: Plain text
+#: ../man/sysctl.8:88
+msgid "Load settings from all system configuration files. See the B<SYSTEM FILE PRECEDENCE> section below."
+msgstr "Încarcă configurările din toate fișierele de configurare a sistemului. Consultați secțiunea B<PRECEDENȚA FIȘIERELOR DE SISTEM> de mai jos."
+
+#. type: TP
+#: ../man/sysctl.8:88
+#, no-wrap
+msgid "B<-r>, B<--pattern> I<pattern>"
+msgstr "B<-r>, B<--pattern> I<model>"
+
+#. type: Plain text
+#: ../man/sysctl.8:95
+msgid "Only apply settings that match I<pattern>. The I<pattern> uses extended regular expression syntax."
+msgstr "Aplică doar configurările care se potrivesc cu I<model>. Opțiunea I<--pattern> folosește sintaxa extinsă a expresiei regulate."
+
+#. type: TP
+#: ../man/sysctl.8:95 ../man/ps.1:147
+#, no-wrap
+msgid "B<-A>"
+msgstr "B<-A>"
+
+#. type: Plain text
+#: ../man/sysctl.8:98 ../man/sysctl.8:107
+msgid "Alias of B<-a>"
+msgstr "Alias de B<-a>"
+
+#. type: TP
+#: ../man/sysctl.8:98 ../man/ps.1:156
+#, no-wrap
+msgid "B<-d>"
+msgstr "B<-d>"
+
+#. type: Plain text
+#: ../man/sysctl.8:101
+msgid "Alias of B<-h>"
+msgstr "Alias al B<-h>"
+
+#. type: TP
+#: ../man/sysctl.8:101 ../man/ps.1:417
+#, no-wrap
+msgid "B<-f>"
+msgstr "B<-f>"
+
+#. type: Plain text
+#: ../man/sysctl.8:104
+msgid "Alias of B<-p>"
+msgstr "Alias de B<-p>"
+
+#. type: TP
+#: ../man/sysctl.8:107
+#, no-wrap
+msgid "B<-o>"
+msgstr "B<-o>"
+
+#. type: Plain text
+#: ../man/sysctl.8:110 ../man/sysctl.8:113
+msgid "Does nothing, exists for BSD compatibility."
+msgstr "Nu face nimic, există pentru compatibilitatea cu BSD."
+
+#. type: SH
+#: ../man/sysctl.8:119
+#, no-wrap
+msgid "SYSTEM FILE PRECEDENCE"
+msgstr "PRECEDENȚA FIȘIERELOR DE SISTEM"
+
+#. type: Plain text
+#: ../man/sysctl.8:125
+msgid "When using the B<--system> option, B<sysctl> will read files from directories in the following list in given order from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored."
+msgstr "Când se utilizează opțiunea B<--system>, B<sysctl> va citi fișierele din directoarele din următoarea listă, în ordinea dată de sus în jos. Odată ce un fișier cu un anumit nume de fișier este încărcat, orice fișier cu același nume din directoarele ulterioare este ignorat."
+
+#. type: Plain text
+#: ../man/sysctl.8:127
+msgid "/etc/sysctl.d/*.conf"
+msgstr "/etc/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:129
+msgid "/run/sysctl.d/*.conf"
+msgstr "/run/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:131
+msgid "/usr/local/lib/sysctl.d/*.conf"
+msgstr "/usr/local/lib/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:133
+msgid "/usr/lib/sysctl.d/*.conf"
+msgstr "/usr/lib/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:135
+msgid "/lib/sysctl.d/*.conf"
+msgstr "/lib/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:137
+msgid "/etc/sysctl.conf"
+msgstr "/etc/sysctl.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:143
+msgid "All configuration files are sorted in lexicographic order, regardless of the directory they reside in. Configuration files can either be completely replaced (by having a new configuration file with the same name in a directory of higher priority) or partially replaced (by having a configuration file that is ordered later)."
+msgstr "Toate fișierele de configurare sunt sortate în ordine lexicografică, indiferent de directorul în care se află . Fișierele de configurare pot fi fie complet înlocuite (prin a avea un nou fișier de configurare cu același nume într-un director cu prioritate mai mare), fie parțial înlocuite (prin a avea un fișier de configurare care este ordonat ulterior)."
+
+#. type: Plain text
+#: ../man/sysctl.8:145
+msgid "/sbin/sysctl -a"
+msgstr "/sbin/sysctl -a"
+
+#. type: Plain text
+#: ../man/sysctl.8:147
+msgid "/sbin/sysctl -n kernel.hostname"
+msgstr "/sbin/sysctl -n kernel.hostname"
+
+#. type: Plain text
+#: ../man/sysctl.8:149
+msgid "/sbin/sysctl -w kernel.domainname=\"example.com\""
+msgstr "/sbin/sysctl -w kernel.domainname=\"example.com\""
+
+#. type: Plain text
+#: ../man/sysctl.8:151
+msgid "/sbin/sysctl -p/etc/sysctl.conf"
+msgstr "/sbin/sysctl -p/etc/sysctl.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:153
+msgid "/sbin/sysctl -a --pattern forward"
+msgstr "/sbin/sysctl -a --pattern forward"
+
+#. type: Plain text
+#: ../man/sysctl.8:155
+msgid "/sbin/sysctl -a --pattern forward$"
+msgstr "/sbin/sysctl -a --pattern forward$"
+
+#. type: Plain text
+#: ../man/sysctl.8:157
+msgid "/sbin/sysctl -a --pattern 'net.ipv4.conf.(eth|wlan)0.arp'"
+msgstr "/sbin/sysctl -a --pattern 'net.ipv4.conf.(eth|wlan)0.arp'"
+
+#. type: Plain text
+#: ../man/sysctl.8:159
+msgid "/sbin/sysctl --pattern '\\[char94]net.ipv6' --system"
+msgstr "/sbin/sysctl --pattern '\\[char94]net.ipv6' --system"
+
+#. type: SH
+#: ../man/sysctl.8:159
+#, no-wrap
+msgid "DEPRECATED PARAMETERS"
+msgstr "PARAMETRI ÃŽNVECIÈšI"
+
+#. type: Plain text
+#: ../man/sysctl.8:169
+msgid "The B<base_reachable_time> and B<retrans_time> are deprecated. The B<sysctl> command does not allow changing values of these parameters. Users who insist to use deprecated kernel interfaces should push values to B</proc> file system by other means. For example:"
+msgstr "Parametrii B<base_reachable_time> și B<retrans_time> sunt învechiți. Comanda B<sysctl> nu permite modificarea valorilor acestor parametri. Utilizatorii care insistă să folosească interfețe de nucleu depreciate ar trebui să introducă valori în sistemul de fișiere B</proc> prin alte mijloace. De exemplu:"
+
+#. type: Plain text
+#: ../man/sysctl.8:171
+msgid "echo 256 E<gt> /proc/sys/net/ipv6/neigh/eth0/base_reachable_time"
+msgstr "echo 256 E<gt> /proc/sys/net/ipv6/neigh/eth0/base_reachable_time"
+
+#. type: Plain text
+#: ../man/sysctl.8:173
+msgid "I</proc/sys>"
+msgstr "I</proc/sys>"
+
+#. type: Plain text
+#: ../man/sysctl.8:175 ../man/sysctl.conf.5:66
+msgid "I</etc/sysctl.d/*.conf>"
+msgstr "I</etc/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:177 ../man/sysctl.conf.5:68
+msgid "I</run/sysctl.d/*.conf>"
+msgstr "I</run/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:179 ../man/sysctl.conf.5:70
+msgid "I</usr/local/lib/sysctl.d/*.conf>"
+msgstr "I</usr/local/lib/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:181 ../man/sysctl.conf.5:72
+msgid "I</usr/lib/sysctl.d/*.conf>"
+msgstr "I</usr/lib/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:183 ../man/sysctl.conf.5:74
+msgid "I</lib/sysctl.d/*.conf>"
+msgstr "I</lib/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:185 ../man/sysctl.conf.5:76
+msgid "I</etc/sysctl.conf>"
+msgstr "I</etc/sysctl.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:189
+msgid "B<proc>(5), B<sysctl.conf>(5), B<regex>(7)"
+msgstr "B<proc>(5), B<sysctl.conf>(5), B<regex>(7)"
+
+#. type: Plain text
+#: ../man/sysctl.8:193 ../man/sysctl.conf.5:89
+msgid "E<.UR staikos@0wned.org> George Staikos E<.UE>"
+msgstr "E<.UR staikos@0wned.org> George Staikos E<.UE>"
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "SYSCTL.CONF"
+msgstr "SYSCTL.CONF"
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "2021-09-15"
+msgstr "15.09.2021"
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "File Formats"
+msgstr "Formate de fișiere"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:16
+msgid "sysctl.conf - sysctl preload/configuration file"
+msgstr "sysctl.conf - fișierul de preîncărcare/configurare al «sysctl»"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:21
+msgid "B<sysctl.conf> is a simple file containing sysctl values to be read in and set by B<sysctl>. The syntax is simply as follows:"
+msgstr "B<sysctl.conf> este un fișier simplu care conține valori „sysctl†care trebuie citite și stabilite de B<sysctl>. Sintaxa este pur și simplu după cum urmează:"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:27
+#, no-wrap
+msgid ""
+"# comment\n"
+"; comment\n"
+msgstr ""
+"# comentariu\n"
+"; comentariu\n"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:29
+#, no-wrap
+msgid "token = value\n"
+msgstr "element = valoare\n"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:35
+msgid "Note that blank lines are ignored, and whitespace before and after a token or value is ignored, although a value can contain whitespace within. Lines which begin with a I<#> or I<;> are considered comments and ignored."
+msgstr "Rețineți că liniile goale și spațiile înainte sau după un element sau valoare sunt ignorate. O valoare poate conține totuși spații. Rândurile care încep cu un I<#> sau un I<;> sunt comentarii și, prin urmare, sunt ignorate."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:38
+msgid "If a line begins with a single -, any attempts to set the value that fail will be ignored."
+msgstr "Dacă o linie începe cu un singur -, orice încercare de a definii valoarea care eșuează va fi ignorată."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:48
+msgid "As the B</etc/sysctl.conf> file is used to override default kernel parameter values, only a small number of parameters is predefined in the file. Use I</sbin/sysctl\\ -a> or follow B<sysctl>(8) to list all possible parameters. The description of individual parameters can be found in the kernel documentation."
+msgstr "Deoarece fișierul B</etc/sysctl.conf> este folosit pentru a suprascrie valorile implicite ale parametrilor nucleului, doar un număr mic de parametri este predefinit în fișier. Folosiți I</sbin/sysctl\\ -a> sau urmați B<sysctl>(8) pentru o listă cu toți parametrii posibili. Descrierea parametrilor individuali poate fi găsită în documentația nucleului."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:51
+msgid "Maximum supported line length of the value is 4096 characters due to a limitation of I</proc> entries in Linux kernel."
+msgstr "Lungimea maximă de linie acceptată a valorii este de 4096 de caractere din cauza unei limitări a intrărilor I</proc> în nucleul Linux."
+
+#. type: SH
+#: ../man/sysctl.conf.5:51
+#, no-wrap
+msgid "EXAMPLE"
+msgstr "EXEMPLU"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:61
+#, no-wrap
+msgid ""
+"# sysctl.conf sample\n"
+"#\n"
+" kernel.domainname = example.com\n"
+"; this one has a space which will be written to the sysctl!\n"
+" kernel.modprobe = /sbin/mod probe\n"
+msgstr ""
+"# model de sysctl.conf\n"
+"#\n"
+" kernel.domainname = exemplu.com\n"
+"; acesta are un spațiu care va fi scris în sysctl!\n"
+" kernel.modprobe = /sbin/mod probe\n"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:83
+msgid "The paths where B<sysctl> preload files usually exist. See also B<sysctl> option I<--system>."
+msgstr "Căile în care fișierele de preîncărcare B<sysctl> se găsesc de obicei. A se vedea, de asemenea, opțiunea B<sysctl> I<--system>."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:85
+msgid "B<sysctl>(8)"
+msgstr "B<sysctl>(8)"
+
+#. type: TH
+#: ../man/tload.1:12
+#, no-wrap
+msgid "TLOAD"
+msgstr "TLOAD"
+
+#. type: Plain text
+#: ../man/tload.1:15
+msgid "tload - graphic representation of system load average"
+msgstr "tload - reprezentare grafică a mediei de încărcare a sistemului"
+
+#. type: Plain text
+#: ../man/tload.1:18
+msgid "B<tload> [I<options>] [I<tty>]"
+msgstr "B<tload> [I<opțiuni>] [I<tty>]"
+
+#. type: Plain text
+#: ../man/tload.1:25
+msgid "B<tload> prints a graph of the current system load average to the specified I<tty> (or the tty of the B<tload> process if none is specified)."
+msgstr "B<tload> afișează un grafic al mediei curente de încărcare a sistemului la I<tty> specificat (sau tty-ul procesului B<tload> dacă nu este specificat niciunul)."
+
+#. type: TP
+#: ../man/tload.1:26
+#, no-wrap
+msgid "B<-s>, B<--scale> I<number>"
+msgstr "B<-s>, B<--scale> I<number>"
+
+#. type: Plain text
+#: ../man/tload.1:31
+msgid "The scale option allows a vertical scale to be specified for the display (in characters between graph ticks); thus, a smaller value represents a larger scale, and vice versa."
+msgstr "Opțiunea I<--scale> este folosită pentru a indica o scară verticală pentru afișaj (în caractere între liniuțe); astfel o valoare mai mică reprezintă o scară mai mare și viceversa."
+
+#. type: TP
+#: ../man/tload.1:31
+#, no-wrap
+msgid "B<-d>, B<--delay> I<seconds>"
+msgstr "B<-d>, B<--delay> I<secunde>"
+
+#. type: Plain text
+#: ../man/tload.1:35
+msgid "The delay sets the delay between graph updates in I<seconds>."
+msgstr "Opțiunea I<--delay> stabilește întârzierea dintre actualizările graficului în I<secunde>."
+
+#. type: Plain text
+#: ../man/tload.1:38
+msgid "Display this help text."
+msgstr "Afișează acest mesaj de ajutor."
+
+#. type: Plain text
+#: ../man/tload.1:45
+msgid "I</proc/loadavg> load average information"
+msgstr "I</proc/loadavg> informații despre încărcarea medie"
+
+#. type: Plain text
+#: ../man/tload.1:50
+msgid "B<ps>(1), B<top>(1), B<uptime>(1), B<w>(1)"
+msgstr "B<ps>(1), B<top>(1), B<uptime>(1), B<w>(1)"
+
+#. type: Plain text
+#: ../man/tload.1:58
+msgid "The B<-d>I< delay> option sets the time argument for an B<alarm>(2); if -d 0 is specified, the alarm is set to 0, which will never send the B<SIGALRM> and update the display."
+msgstr "OpÈ›iunea B<-d>I<întârzierea> stabileÈ™te argumentul de timp pentru comanda B<alarm>(2); dacă se specifică „-d 0â€, alarma este stabilită la 0, ceea ce nu va trimite niciodată B<SIGALRM> È™i nu va actualiza afiÈ™area."
+
+#. type: Plain text
+#: ../man/tload.1:66
+msgid "Branko Lankester, E<.UR david@\\:ods.\\:com> David Engel E<.UE , and> E<.UR johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE .>"
+msgstr "Branko Lankester, E<.UR david@\\:ods.\\:com> David Engel E<.UE , and> E<.UR johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE .>"
+
+#. type: TH
+#: ../man/uptime.1:13
+#, no-wrap
+msgid "UPTIME"
+msgstr "UPTIME"
+
+#. type: TH
+#: ../man/uptime.1:13
+#, no-wrap
+msgid "December 2012"
+msgstr "decembrie 2012"
+
+#. type: Plain text
+#: ../man/uptime.1:16
+msgid "uptime - Tell how long the system has been running."
+msgstr "uptime - Indică timpul de când sistemul se află în funcționare."
+
+#. type: Plain text
+#: ../man/uptime.1:19
+msgid "B<uptime> [I<options>]"
+msgstr "B<uptime> [I<opțiuni>]"
+
+#. type: Plain text
+#: ../man/uptime.1:24
+msgid "B<uptime> gives a one line display of the following information. The current time, how long the system has been running, how many users are currently logged on, and the system load averages for the past 1, 5, and 15 minutes."
+msgstr "B<uptime> oferă o afișare pe o singură linie a următoarelor informații. Ora curentă, de cât timp funcționează sistemul, câți utilizatori sunt conectați în prezent și mediile de încărcare a sistemului pentru ultimele 1, 5 și 15 minute."
+
+#. type: Plain text
+#: ../man/uptime.1:27
+msgid "This is the same information contained in the header line displayed by B<w>(1)."
+msgstr "Acestea sunt aceleași informații conținute în linia antetului afișată de comanda B<w>(1)."
+
+#. type: Plain text
+#: ../man/uptime.1:36
+msgid "System load averages is the average number of processes that are either in a runnable or uninterruptable state. A process in a runnable state is either using the CPU or waiting to use the CPU. A process in uninterruptable state is waiting for some I/O access, eg waiting for disk. The averages are taken over the three time intervals. Load averages are not normalized for the number of CPUs in a system, so a load average of 1 means a single CPU system is loaded all the time while on a 4 CPU system it means it was idle 75% of the time."
+msgstr "Mediile de încărcare a sistemului reprezintă numărul mediu de procese care se află fie într-o stare rulabilă, fie într-una neîntreruptibilă. Un proces într-o stare rulabilă fie folosește procesorul, fie așteaptă să folosească procesorul. Un proces în stare neîntreruptibilă așteaptă vreun acces de In/Ieș, de exemplu, așteaptă accesul la disc. Mediile sunt luate pe cele trei intervale de timp. Mediile de încărcare nu sunt normalizate pentru numărul de CPU-uri dintr-un sistem, așa că o medie de încărcare de 1 înseamnă că un singur CPU al sistemului este încărcat tot timpul, în timp ce pe un sistem cu 4 CPU înseamnă că a fost inactiv 75% din timp."
+
+#. type: TP
+#: ../man/uptime.1:37
+#, no-wrap
+msgid "B<-p>, B<--pretty>"
+msgstr "B<-p>, B<--pretty>"
+
+#. type: Plain text
+#: ../man/uptime.1:40
+msgid "show uptime in pretty format"
+msgstr "afișează timpul de funcționare într-un format amiabil"
+
+#. type: Plain text
+#: ../man/uptime.1:43
+msgid "display this help text"
+msgstr "afișează acest mesaj de ajutor"
+
+#. type: TP
+#: ../man/uptime.1:43
+#, no-wrap
+msgid "B<-s>, B<--since>"
+msgstr "B<-s>, B<--since>"
+
+#. type: Plain text
+#: ../man/uptime.1:46
+msgid "system up since, in yyyy-mm-dd HH:MM:SS format"
+msgstr "sistemul este activat de când; în format aaaa-mm-zz HH:MM:SS"
+
+#. type: Plain text
+#: ../man/uptime.1:49
+msgid "display version information and exit"
+msgstr "afișează informațiile despre versiune și iese"
+
+#. type: TP
+#: ../man/uptime.1:50 ../man/w.1:89
+#, no-wrap
+msgid "I</var/run/utmp>"
+msgstr "I</var/run/utmp>"
+
+#. type: Plain text
+#: ../man/uptime.1:53 ../man/w.1:92
+msgid "information about who is currently logged on"
+msgstr "informații despre cine este conectat în prezent"
+
+#. type: TP
+#: ../man/uptime.1:53 ../man/w.1:92
+#, no-wrap
+msgid "I</proc>"
+msgstr "I</proc>"
+
+#. type: Plain text
+#: ../man/uptime.1:56 ../man/w.1:95
+msgid "process information"
+msgstr "informații despre procese"
+
+#. type: Plain text
+#: ../man/uptime.1:66
+msgid "B<uptime> was written by E<.UR greenfie@gauss.\\:rutgers.\\:edu> Larry Greenfield E<.UE> and E<.UR johnsonm@sunsite.\\:unc.\\:edu> Michael K. Johnson E<.UE>"
+msgstr "B<uptime> a fost scris de E<.UR greenfie@gauss.\\:rutgers.\\:edu> Larry Greenfield E<.UE> și E<.UR johnsonm@sunsite.\\:unc.\\:edu> Michael K. Johnson E<.UE>"
+
+#. type: Plain text
+#: ../man/uptime.1:71
+msgid "B<ps>(1), B<top>(1), B<utmp>(5), B<w>(1)"
+msgstr "B<ps>(1), B<top>(1), B<utmp>(5), B<w>(1)"
+
+#. type: TH
+#: ../man/vmstat.8:13
+#, no-wrap
+msgid "VMSTAT"
+msgstr "VMSTAT"
+
+#. type: TH
+#: ../man/vmstat.8:13
+#, no-wrap
+msgid "2023-01-18"
+msgstr "18.01.2023"
+
+#. type: Plain text
+#: ../man/vmstat.8:16
+msgid "vmstat - Report virtual memory statistics"
+msgstr "vmstat - Raportează statisticile memoriei virtuale"
+
+#. type: Plain text
+#: ../man/vmstat.8:20
+msgid "B<vmstat> [options] [I<delay> [I<count>]]"
+msgstr "B<vmstat> [opțiuni] [I<întârziere> [I<număr>]]"
+
+#. type: Plain text
+#: ../man/vmstat.8:24
+msgid "B<vmstat> reports information about processes, memory, paging, block IO, traps, disks and cpu activity."
+msgstr "B<vmstat> raportează informații despre procese, memorie, paginare, bloc IO, întreruperi, discuri și activitatea CPU."
+
+#. type: Plain text
+#: ../man/vmstat.8:29
+msgid "The first report produced gives averages since the last reboot. Additional reports give information on a sampling period of length I<delay>. The process and memory reports are instantaneous in either case."
+msgstr "Primul raport realizat oferă valorile medii de la ultima repornire. Rapoartele suplimentare oferă informații cu privire la o perioadă de eșantionare cu lungimea I<întârziere>. Rapoartele de proces și de memorie sunt instantanee în ambele cazuri."
+
+#. type: TP
+#: ../man/vmstat.8:30
+#, no-wrap
+msgid "I<delay>"
+msgstr "I<întârziere>"
+
+#. type: Plain text
+#: ../man/vmstat.8:37
+msgid "The I<delay> between updates in seconds. If no I<delay> is specified, only one report is printed with the average values since boot."
+msgstr "I<întârzierea> dintre actualizări în secunde. Dacă nu este specificată I<întârzierea>, este afișat un singur raport cu valorile medii de la pornire."
+
+#. type: TP
+#: ../man/vmstat.8:37
+#, no-wrap
+msgid "I<count>"
+msgstr "I<număr>"
+
+#. type: Plain text
+#: ../man/vmstat.8:44
+msgid "Number of updates. In absence of I<count>, when I<delay> is defined, default is infinite."
+msgstr "Numărul de actualizări. În absența I<numărului>, când I<întârzierea> este definită, implicit este infinit."
+
+#. type: TP
+#: ../man/vmstat.8:44
+#, no-wrap
+msgid "B<-a>, B<--active>"
+msgstr "B<-a>, B<--active>"
+
+#. type: Plain text
+#: ../man/vmstat.8:47
+msgid "Display active and inactive memory, given a 2.5.41 kernel or better."
+msgstr "Afișează memoria activă și inactivă pentru nucleele cu versiunea 2.5.41 sau ulterioară."
+
+#. type: TP
+#: ../man/vmstat.8:47
+#, no-wrap
+msgid "B<-f>, B<--forks>"
+msgstr "B<-f>, B<--forks>"
+
+#. type: Plain text
+#: ../man/vmstat.8:55
+msgid "The B<-f> switch displays the number of forks since boot. This includes the fork, vfork, and clone system calls, and is equivalent to the total number of tasks created. Each process is represented by one or more tasks, depending on thread usage. This display does not repeat."
+msgstr "Opțiunea B<-f> afișează numărul de bifurcări de la pornire. Aceasta include apelurile de sistem fork(), vfork() și clone(), și este echivalent cu numărul total de sarcini create. Fiecare proces este reprezentat de una sau mai multe sarcini, în funcție de utilizarea firului. Această afișare nu se repetă."
+
+#. type: TP
+#: ../man/vmstat.8:55
+#, no-wrap
+msgid "B<-m>, B<--slabs>"
+msgstr "B<-m>, B<--slabs>"
+
+#. type: Plain text
+#: ../man/vmstat.8:58
+msgid "Displays slabinfo."
+msgstr "AfiÈ™ează informaÈ›iile „ slabâ€."
+
+#. type: TP
+#: ../man/vmstat.8:58
+#, no-wrap
+msgid "B<-n>, B<--one-header>"
+msgstr "B<-n>, B<--one-header>"
+
+#. type: Plain text
+#: ../man/vmstat.8:61
+msgid "Display the header only once rather than periodically."
+msgstr "Afișează antetul doar o singură dată, nu periodic."
+
+#. type: TP
+#: ../man/vmstat.8:61
+#, no-wrap
+msgid "B<-s>, B<--stats>"
+msgstr "B<-s>, B<--stats>"
+
+#. type: Plain text
+#: ../man/vmstat.8:65
+msgid "Displays a table of various event counters and memory statistics. This display does not repeat."
+msgstr "Afișează un tabel cu diverse contoare de evenimente și statistici de memorie. Acest tabel nu se repetă."
+
+#. type: TP
+#: ../man/vmstat.8:65
+#, no-wrap
+msgid "B<-d>, B<--disk>"
+msgstr "B<-d>, B<--disk>"
+
+#. type: Plain text
+#: ../man/vmstat.8:68
+msgid "Report disk statistics (2.5.70 or above required)."
+msgstr "Afișează statisticile discului (pentru nucleele cu versiunea 2.5.70 sau mai recentă)."
+
+#. type: TP
+#: ../man/vmstat.8:68
+#, no-wrap
+msgid "B<-D>, B<--disk-sum>"
+msgstr "B<-D>, B<--disk-sum>"
+
+#. type: Plain text
+#: ../man/vmstat.8:71
+msgid "Report some summary statistics about disk activity."
+msgstr "Afișează câteva statistici rezumate despre activitatea discului."
+
+#. type: TP
+#: ../man/vmstat.8:71
+#, no-wrap
+msgid "B<-p>, B<--partition> I<device>"
+msgstr "B<-p>, B<--partition> I<partiția>"
+
+#. type: Plain text
+#: ../man/vmstat.8:74
+msgid "Detailed statistics about partition (2.5.70 or above required)."
+msgstr "Afișează statistici detaliate despre partiții (pentru nucleele cu versiunea 2.5.70 sau mai recentă)."
+
+#. type: TP
+#: ../man/vmstat.8:74
+#, no-wrap
+msgid "B<-S>, B<--unit> I<character>"
+msgstr "B<-S>, B<--unit> I<unitatea_de_măsură>"
+
+#. type: Plain text
+#: ../man/vmstat.8:86
+msgid "Switches outputs between 1000 (I<k>), 1024 (I<K>), 1000000 (I<m>), or 1048576 (I<M>) bytes. Note this does not change the swap (si/so) or block (bi/bo) fields."
+msgstr "Comută unitățile de măsură de la ieșire, între 1000 (I<k>), 1024 (I<K>), 1000000 (I<m>) sau 1048576 (I<M>) octeți. Rețineți că acest lucru nu modifică câmpurile swap (sin/sieș) sau bloc (bin/bieș)."
+
+#. type: TP
+#: ../man/vmstat.8:86
+#, no-wrap
+msgid "B<-t>, B<--timestamp>"
+msgstr "B<-t>, B<--timestamp>"
+
+#. type: Plain text
+#: ../man/vmstat.8:89
+msgid "Append timestamp to each line"
+msgstr "Adaugă marcaj de timp la fiecare linie"
+
+#. type: Plain text
+#: ../man/vmstat.8:94
+msgid "Wide output mode (useful for systems with higher amount of memory, where the default output mode suffers from unwanted column breakage). The output is wider than 80 characters per line."
+msgstr "Mod de ieșire larg (util pentru sistemele cu o cantitate mai mare de memorie, unde modul de ieșire implicit suferă de întreruperi nedorite ale coloanelor). Ieșirea este mai mare de 80 de caractere pe linie."
+
+#. type: TP
+#: ../man/vmstat.8:94
+#, no-wrap
+msgid "B<-y>, B<--no-first>"
+msgstr "B<-y>, B<--no-first>"
+
+#. type: Plain text
+#: ../man/vmstat.8:97
+msgid "Omits first report with statistics since system boot."
+msgstr "Omite primul raport cu statistici de la pornirea sistemului."
+
+#. type: SH
+#: ../man/vmstat.8:104
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR VM MODE"
+msgstr "DESCRIEREA CÂMPULUI PENTRU MODUL VM"
+
+#. type: SS
+#: ../man/vmstat.8:105
+#, no-wrap
+msgid "Procs"
+msgstr "Procese"
+
+#. type: Plain text
+#: ../man/vmstat.8:109
+#, no-wrap
+msgid ""
+"r: The number of runnable processes (running or waiting for run time).\n"
+"b: The number of processes blocked waiting for I/O to complete.\n"
+msgstr ""
+"r: Numărul de procese care pot fi executate (în rulare sau în așteptare pentru timpul de rulare).\n"
+"b: Numărul de procese blocate care așteaptă accesul de In/Ieș pentru a finaliza.\n"
+
+#. type: SS
+#: ../man/vmstat.8:110
+#, no-wrap
+msgid "Memory"
+msgstr "Memorie"
+
+#. type: Plain text
+#: ../man/vmstat.8:112 ../man/vmstat.8:122
+msgid "These are affected by the B<--unit> option."
+msgstr "Acestea sunt afectate de opțiunea B<--unit>."
+
+#. type: Plain text
+#: ../man/vmstat.8:119
+#, no-wrap
+msgid ""
+"swpd: the amount of swap memory used.\n"
+"free: the amount of idle memory.\n"
+"buff: the amount of memory used as buffers.\n"
+"cache: the amount of memory used as cache.\n"
+"inact: the amount of inactive memory. (B<-a> option)\n"
+"active: the amount of active memory. (B<-a> option)\n"
+msgstr ""
+"swpd: cantitatea de memorie swap utilizată.\n"
+"liberă: cantitatea de memorie neutilizată.\n"
+"buff: cantitatea de memorie utilizată ca memorie tampon.\n"
+"cache: cantitatea de memorie utilizată ca zonă de prestocare.\n"
+"inact: cantitatea de memorie inactivă. (opțiunea B<-a>)\n"
+"activă: cantitatea de memorie activă. (opțiunea B<-a>)\n"
+
+#. type: SS
+#: ../man/vmstat.8:120
+#, no-wrap
+msgid "Swap"
+msgstr "Swap"
+
+#. type: Plain text
+#: ../man/vmstat.8:125
+#, no-wrap
+msgid ""
+"si: Amount of memory swapped in from disk (/s).\n"
+"so: Amount of memory swapped to disk (/s).\n"
+msgstr ""
+"sin: Cantitatea de memorie de interschimb citită de pe disc (/s).\n"
+"sieș: Cantitatea de memorie de interschimb scrisă pe disc (/s).\n"
+
+#. type: SS
+#: ../man/vmstat.8:126 ../man/vmstat.8:161
+#, no-wrap
+msgid "IO"
+msgstr "In/IeÈ™"
+
+#. type: Plain text
+#: ../man/vmstat.8:130
+#, no-wrap
+msgid ""
+"bi: Kibibyte received from a block device (KiB/s).\n"
+"bo: Kibibyte sent to a block device (KiB/s).\n"
+msgstr ""
+"bin: Kibiocteți preluați de la un dispozitiv bloc (Kio/s).\n"
+"bieș: Kibiocteți transferați la un dispozitiv bloc (Kio/s).\n"
+
+#. type: SS
+#: ../man/vmstat.8:131
+#, no-wrap
+msgid "System"
+msgstr "Sistem"
+
+#. type: Plain text
+#: ../man/vmstat.8:135
+#, no-wrap
+msgid ""
+"in: The number of interrupts per second, including the clock.\n"
+"cs: The number of context switches per second.\n"
+msgstr ""
+"in: Numărul de întreruperi pe secundă, inclusiv ceasul.\n"
+"cs: Numărul de schimbări de context pe secundă.\n"
+
+#. type: ds PU
+#: ../man/vmstat.8:136 ../man/top.1:37
+#, no-wrap
+msgid "CPU"
+msgstr "CPU"
+
+#. type: Plain text
+#: ../man/vmstat.8:138
+msgid "These are percentages of total CPU time."
+msgstr "Acestea sunt procente din timpul total al procesorului."
+
+#. type: Plain text
+#: ../man/vmstat.8:145
+#, no-wrap
+msgid ""
+"us: Time spent running non-kernel code. (user time, including nice time)\n"
+"sy: Time spent running kernel code. (system time)\n"
+"id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.\n"
+"wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle.\n"
+"st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.\n"
+"gu: Time spent running KVM guest code (guest time, including guest nice).\n"
+msgstr ""
+"us: Timpul petrecut rulând cod non-nucleu. (timpul utilizatorului, inclusiv timpul „niceâ€)\n"
+"sy: Timpul petrecut rulând codul nucleului (timpul sistemului)\n"
+"id: Timpul petrecut inactiv. Înainte de versiunea 2.5.41 a nucleului Linux, acesta includea timpul de așteptare IO.\n"
+"wa: Timpul petrecut în așteptarea In/Ieș Înainte de versiunea 2.5.41 a nucleului Linux, era inclus în timpul petrecut inactiv (idle).\n"
+"st: Timpul furat de la o mașină virtuală. Înainte de versiunea 2.6.11 a nucleului Linux, necunoscut.\n"
+"gu: Timpul petrecut rulând codul de invitat KVM (timpul pentru invitat, inclusiv timpul „nice†al invitatului).\n"
+
+#. type: SH
+#: ../man/vmstat.8:146
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR DISK MODE"
+msgstr "DESCRIEREA CÂMPULUI PENTRU MODUL DISC"
+
+#. type: SS
+#: ../man/vmstat.8:147
+#, no-wrap
+msgid "Reads"
+msgstr "Citiri"
+
+#. type: Plain text
+#: ../man/vmstat.8:153
+#, no-wrap
+msgid ""
+"total: Total reads completed successfully\n"
+"merged: grouped reads (resulting in one I/O)\n"
+"sectors: Sectors read successfully\n"
+"ms: milliseconds spent reading\n"
+msgstr ""
+"total: Numărul total de citiri finalizate cu succes\n"
+"merged: citiri grupate (rezultând o singură In/Ieș)\n"
+"sectors: Numărul de sectoare citite cu succes\n"
+"ms: numărul de milisecunde petrecute citind\n"
+
+#. type: SS
+#: ../man/vmstat.8:154
+#, no-wrap
+msgid "Writes"
+msgstr "Scrieri"
+
+#. type: Plain text
+#: ../man/vmstat.8:160
+#, no-wrap
+msgid ""
+"total: Total writes completed successfully\n"
+"merged: grouped writes (resulting in one I/O)\n"
+"sectors: Sectors written successfully\n"
+"ms: milliseconds spent writing\n"
+msgstr ""
+"total: Numărul total de scrieri finalizate cu succes\n"
+"merged: scrieri grupate (rezultând o singură In/Ieș)\n"
+"sectors: Numărul de sectoare scrise cu succes\n"
+"ms: numărul de milisecunde petrecute scriind\n"
+
+#. type: Plain text
+#: ../man/vmstat.8:165
+#, no-wrap
+msgid ""
+"cur: I/O in progress\n"
+"s: seconds spent for I/O\n"
+msgstr ""
+"cur: In/Ieș în curs de desfășurare\n"
+"s: secunde petrecute pentru In/IeÈ™\n"
+
+#. type: SH
+#: ../man/vmstat.8:166
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR DISK PARTITION MODE"
+msgstr "DESCRIEREA CÂMPULUI PENTRU MODUL DE PARTIȚIE DISC"
+
+#. type: Plain text
+#: ../man/vmstat.8:172
+#, no-wrap
+msgid ""
+"reads: Total number of reads issued to this partition\n"
+"read sectors: Total read sectors for partition\n"
+"writes : Total number of writes issued to this partition\n"
+"requested writes: Total number of write requests made for partition\n"
+msgstr ""
+"reads: Numărul total de citiri efectuate pentru această partiție\n"
+"read sectors: Numărul total de sectoare citite pentru această partiție\n"
+"writes : Numărul total de scrieri efectuate pentru această partiție\n"
+"requested writes: Numărul total de sectoare scrise pentru această partiție\n"
+
+#. type: SH
+#: ../man/vmstat.8:173
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR SLAB MODE"
+msgstr "DESCRIEREA CÂMPULUI PENTRU MODUL SLAB"
+
+#. type: Plain text
+#: ../man/vmstat.8:177
+msgid "Slab mode shows statistics per slab, for more information about this information see B<slabinfo>(5)"
+msgstr "Modul Slab arată statisticile pentru fiecare „slabâ€, pentru mai multe informaÈ›ii despre aceste informaÈ›ii consultaÈ›i B<slabinfo>(5)"
+
+#. type: Plain text
+#: ../man/vmstat.8:184
+#, no-wrap
+msgid ""
+"cache: Cache name\n"
+"num: Number of currently active objects\n"
+"total: Total number of available objects\n"
+"size: Size of each object\n"
+"pages: Number of pages with at least one active object\n"
+msgstr ""
+"cache: Nume cache\n"
+"num: Numărul de obiecte active în prezent\n"
+"total: Numărul total de obiecte disponibile\n"
+"dim.: Dimensiunea fiecărui obiect\n"
+"pagini: Numărul de pagini cu cel puțin un obiect activ\n"
+
+#. type: Plain text
+#: ../man/vmstat.8:191
+msgid "B<vmstat> requires read access to files under I</proc>. The B<-m> requires read access to I</proc/slabinfo> which may not be available to standard users. Mount options for I</proc> such as I<subset=pid> may also impact what is visible."
+msgstr "B<vmstat> necesită acces de citire la fișierele de sub I</proc>. B<-m> necesită acces de citire la I</proc/slabinfo>, care poate să nu fie disponibil pentru utilizatorii standard. Opțiunile de montare pentru I</proc>, cum ar fi I<subset=pid>, pot avea, de asemenea, un impact asupra a ceea ce este vizibil."
+
+#. type: Plain text
+#: ../man/vmstat.8:199
+msgid "B<free>(1), B<iostat>(1), B<mpstat>(1), B<ps>(1), B<sar>(1), B<top>(1), B<slabinfo>(5)"
+msgstr "B<free>(1), B<iostat>(1), B<mpstat>(1), B<ps>(1), B<sar>(1), B<top>(1), B<slabinfo>(5)"
+
+#. type: TP
+#: ../man/w.1:14 ../man/ps.1:852
+#, no-wrap
+msgid "W"
+msgstr "W"
+
+#. type: TH
+#: ../man/w.1:14
+#, no-wrap
+msgid "2023-01-15"
+msgstr "15.01.2023"
+
+#. type: Plain text
+#: ../man/w.1:17
+msgid "w - Show who is logged on and what they are doing."
+msgstr "w - Afișează cine este conectat și ce face fiecare."
+
+#. type: Plain text
+#: ../man/w.1:20
+msgid "B<w> [I<options>] [I<user>]"
+msgstr "B<w> [I<opțiuni>] [I<utilizator>]"
+
+#. type: Plain text
+#: ../man/w.1:26
+msgid "B<w> displays information about the users currently on the machine, and their processes. The header shows, in this order, the current time, how long the system has been running, how many users are currently logged on, and the system load averages for the past 1, 5, and 15 minutes."
+msgstr "B<w> afișează informații despre utilizatorii aflați în prezent conectați la mașină și despre procesele acestora. Antetul arată, în această ordine, ora curentă, de cât timp funcționează sistemul, câți utilizatori sunt conectați în prezent și mediile de încărcare a sistemului pentru ultimele 1, 5 și 15 minute."
+
+#. type: Plain text
+#: ../man/w.1:30
+msgid "The following entries are displayed for each user: login name, the tty name, the remote host, login time, idle time, JCPU, PCPU, and the command line of their current process."
+msgstr "Următoarele intrări sunt afișate pentru fiecare utilizator: numele de conectare, numele tty, gazda la distanță, timpul de conectare, timpul de inactivitate, JCPU, PCPU și linia de comandă a procesului curent."
+
+#. type: Plain text
+#: ../man/w.1:34
+msgid "The JCPU time is the time used by all processes attached to the tty. It does not include past background jobs, but does include currently running background jobs."
+msgstr "Timpul JCPU este timpul folosit de toate procesele atașate la tty. Nu include lucrările din fundal anterioare, dar include lucrările din fundal care rulează în prezent."
+
+#. type: Plain text
+#: ../man/w.1:37
+msgid "The PCPU time is the time used by the current process, named in the \"what\" field."
+msgstr "Timpul PCPU este timpul utilizat de procesul curent, numit în câmpul „ceâ€."
+
+#. type: SH
+#: ../man/w.1:37
+#, no-wrap
+msgid "COMMAND-LINE OPTIONS"
+msgstr "OPÈšIUNI DE LINIE DE COMANDÄ‚"
+
+#. type: TP
+#: ../man/w.1:38
+#, no-wrap
+msgid "B<-h>, B<--no-header>"
+msgstr "B<-h>, B<--no-header>"
+
+#. type: Plain text
+#: ../man/w.1:41
+msgid "Don't print the header."
+msgstr "Nu afișează antetul."
+
+#. type: TP
+#: ../man/w.1:41
+#, no-wrap
+msgid "B<-u>, B<--no-current>"
+msgstr "B<-u>, B<--no-current>"
+
+#. type: Plain text
+#: ../man/w.1:50
+msgid "Ignores the username while figuring out the current process and cpu times. To demonstrate this, do a B<su> and do a B<w> and a B<w -u>."
+msgstr "Ignoră numele de utilizator în timp ce determină procesul curent și timpii CPU. Pentru a demonstra acest lucru, executați comanda B<su> și apoi comanda B<w> și comanda B<w -u>."
+
+#. type: TP
+#: ../man/w.1:50
+#, no-wrap
+msgid "B<-s>, B<--short>"
+msgstr "B<-s>, B<--short>"
+
+#. type: Plain text
+#: ../man/w.1:53
+msgid "Use the short format. Don't print the login time, JCPU or PCPU times."
+msgstr "Utilizează formatul scurt. Nu afișează ora de conectare, timpii JCPU sau PCPU."
+
+#. type: TP
+#: ../man/w.1:53
+#, no-wrap
+msgid "B<-f>, B<--from>"
+msgstr "B<-f>, B<--from>"
+
+#. type: Plain text
+#: ../man/w.1:63
+msgid "Toggle printing the B<from> (remote hostname) field. The default as released is for the B<from> field to not be printed, although your system administrator or distribution maintainer may have compiled a version in which the B<from> field is shown by default."
+msgstr "Comută afișarea/neafișarea câmpului B<din> (numele gazdei de la distanță). Valoarea implicită, așa cum a fost lansată, este ca câmpul B<din> să nu fie afișat, deși administratorul de sistem sau întreținătorul distribuției poate să fi compilat o versiune în care câmpul B<din> este afișat implicit."
+
+#. type: TP
+#: ../man/w.1:66
+#, no-wrap
+msgid "B<-i>, B<--ip-addr>"
+msgstr "B<-i>, B<--ip-addr>"
+
+#. type: Plain text
+#: ../man/w.1:69
+msgid "Display IP address instead of hostname for B<from> field."
+msgstr "Afișează adresa IP în loc de numele gazdei pentru câmpul B<DIN>."
+
+#. type: TP
+#: ../man/w.1:69
+#, no-wrap
+msgid "B<-p>, B<--pids>"
+msgstr "B<-p>, B<--pids>"
+
+#. type: Plain text
+#: ../man/w.1:72
+msgid "Display pid of the login process/the \"what\" process in the \"what\" field."
+msgstr "AfiÈ™ează pid-ul procesului de autentificare sau al procesului „what†în câmpul „whatâ€."
+
+#. type: TP
+#: ../man/w.1:75
+#, no-wrap
+msgid "B<-o>, B<--old-style>"
+msgstr "B<-o>, B<--old-style>"
+
+#. type: Plain text
+#: ../man/w.1:78
+msgid "Old style output. Prints blank space for idle times less than one minute."
+msgstr "Afișare în stil vechi. Imprimă spațiu liber pentru timpi de inactivitate mai mici de un minut."
+
+#. type: TP
+#: ../man/w.1:78
+#, no-wrap
+msgid "B<user >"
+msgstr "B<utilizator>"
+
+#. type: Plain text
+#: ../man/w.1:81
+msgid "Show information about the specified user only."
+msgstr "Afișează informații numai despre utilizatorul specificat."
+
+#. type: SH
+#: ../man/w.1:81 ../man/watch.1:133
+#, no-wrap
+msgid "ENVIRONMENT"
+msgstr "VARIABILE DE MEDIU"
+
+#. type: TP
+#: ../man/w.1:82
+#, no-wrap
+msgid "PROCPS_USERLEN"
+msgstr "PROCPS_USERLEN"
+
+#. type: Plain text
+#: ../man/w.1:85
+msgid "Override the default width of the username column. Defaults to 8."
+msgstr "Suprascrie lățimea implicită a coloanei numelui de „utilizatorâ€. Valoarea implicită este 8."
+
+#. type: TP
+#: ../man/w.1:85
+#, no-wrap
+msgid "PROCPS_FROMLEN"
+msgstr "PROCPS_FROMLEN"
+
+#. type: Plain text
+#: ../man/w.1:88
+msgid "Override the default width of the from column. Defaults to 16."
+msgstr "Suprascrie lățimea implicită a coloanei „dinâ€. Valoarea implicită este 16."
+
+#. type: Plain text
+#: ../man/w.1:102
+msgid "B<free>(1), B<ps>(1), B<top>(1), B<uptime>(1), B<utmp>(5), B<who>(1)"
+msgstr "B<free>(1), B<ps>(1), B<top>(1), B<uptime>(1), B<utmp>(5), B<who>(1)"
+
+#. type: Plain text
+#: ../man/w.1:112
+msgid "B<w> was re-written almost entirely by Charles Blake, based on the version by E<.UR greenfie@\\:gauss.\\:rutgers.\\:edu> Larry Greenfield E<.UE> and E<.UR johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE>"
+msgstr "B<w> a fost aproape în întregime rescris de Charles Blake pe baza unei versiuni a lui Larry Greenfield E<lt>I<greenfie@gauss.rutgers.edu>E<gt> și Michael K. Johnson E<lt> I<johnsonm@redhat .com>E<gt>."
+
+#. type: TH
+#: ../man/watch.1:13
+#, no-wrap
+msgid "WATCH"
+msgstr "WATCH"
+
+#. type: TH
+#: ../man/watch.1:13
+#, no-wrap
+msgid "2023-01-17"
+msgstr "17.01.2023"
+
+#. type: Plain text
+#: ../man/watch.1:16
+msgid "watch - execute a program periodically, showing output fullscreen"
+msgstr "watch - execut- un program periodic, afișând ieșirea pe întreg ecranul"
+
+#. type: Plain text
+#: ../man/watch.1:19
+msgid "B<watch> [I<options>] I<command>"
+msgstr "B<watch> [I<opțiuni>] I<comanda>"
+
+#. type: Plain text
+#: ../man/watch.1:26
+msgid "B<watch> runs I<command> repeatedly, displaying its output and errors (the first screenfull). This allows you to watch the program output change over time. By default, I<command> is run every 2 seconds and B<watch> will run until interrupted."
+msgstr "B<watch> rulează I<comanda> în mod repetat, afișând rezultatul și erorile (primul conținut al ecranului). Acest lucru vă permite să urmăriți modificarea ieșirii programului în timp. În mod implicit, I<comanda> este rulată la fiecare 2 secunde și B<watch> va rula până când este întrerupt."
+
+#. type: TP
+#: ../man/watch.1:27
+#, no-wrap
+msgid "B<-b>, B<--beep>"
+msgstr "B<-b>, B<--beep>"
+
+#. type: Plain text
+#: ../man/watch.1:30
+msgid "Beep if command has a non-zero exit."
+msgstr "Emite un bip dacă comanda are o ieșire diferită de zero."
+
+#. type: TP
+#: ../man/watch.1:30
+#, no-wrap
+msgid "B<-c>, B<--color>"
+msgstr "B<-c>, B<--color>"
+
+#. type: Plain text
+#: ../man/watch.1:33
+msgid "Interpret ANSI color and style sequences."
+msgstr "Interpretează secvențele de culori și stil ANSI."
+
+#. type: TP
+#: ../man/watch.1:33
+#, no-wrap
+msgid "B<-C>, B<--no-color>"
+msgstr "B<-C>, B<--no-color>"
+
+#. type: Plain text
+#: ../man/watch.1:36
+msgid "Do not interpret ANSI color and style sequences."
+msgstr "Nu interpretează secvențele de culori și stil ANSI."
+
+#. type: TP
+#: ../man/watch.1:36
+#, no-wrap
+msgid "B<-d>, B<--differences>[=I<permanent>]"
+msgstr "B<-d>, B<--differences>[=I<permanent>]"
+
+#. type: Plain text
+#: ../man/watch.1:42
+msgid "Highlight the differences between successive updates. If the optional I<permanent> argument is specified then B<watch> will show all changes since the first iteration."
+msgstr "Evidențiază diferențele dintre actualizările succesive. Dacă este specificat argumentul opțional I<permanent>, atunci B<watch> va afișa toate modificările de la prima iterație."
+
+#. type: TP
+#: ../man/watch.1:42
+#, no-wrap
+msgid "B<-e>, B<--errexit>"
+msgstr "B<-e>, B<--errexit>"
+
+#. type: Plain text
+#: ../man/watch.1:45
+msgid "Freeze updates on command error, and exit after a key press."
+msgstr "Îngheață actualizările la producerea unei erori la ieșirea comenzii și iese după apăsarea unei taste."
+
+#. type: TP
+#: ../man/watch.1:45
+#, no-wrap
+msgid "B<-g>, B<--chgexit>"
+msgstr "B<-g>, B<--chgexit>"
+
+#. type: Plain text
+#: ../man/watch.1:50
+msgid "Exit when the output of I<command> changes."
+msgstr "Iese, când ieșirea I<comenzii> se modifică."
+
+#. type: TP
+#: ../man/watch.1:50
+#, no-wrap
+msgid "B<-n>, B<--interval> I<seconds>"
+msgstr "B<-n>, B<--interval> I<secunde>"
+
+#. type: Plain text
+#: ../man/watch.1:56
+msgid "Specify update interval. The command will not allow quicker than 0.1 second interval, in which the smaller values are converted. Both '.' and ',' work for any locales. The B<WATCH_INTERVAL> environment can be used to persistently set a non-default interval (following the same rules and formatting)."
+msgstr "Specifică intervalul de actualizare. Comanda nu va permite un interval mai rapid de 0,1 secunde, în care valorile mai mici sunt convertite. Ambele semne de separare a zecimalelor „.’ È™i „,â€, funcÈ›ionează pentru orice configurare regională. Variabila de mediu B<WATCH_INTERVAL>, poate fi utilizată pentru a configura în mod persistent un interval care nu este implicit (urmând aceleaÈ™i reguli È™i formatare)."
+
+#. type: TP
+#: ../man/watch.1:56
+#, no-wrap
+msgid "B<-p>, B<--precise>"
+msgstr "B<-p>, B<--precise>"
+
+#. type: Plain text
+#: ../man/watch.1:69
+msgid "Make B<watch> attempt to run I<command> every B<--interval> I<seconds>. Try it with B<ntptime> (if present) and notice how the fractional seconds stays (nearly) the same, as opposed to normal mode where they continuously increase."
+msgstr "Face ca B<watch> să încerce să ruleze I<comanda> la fiecare B<--interval> I<secunde>. Încercați-o cu B<ntptime> (dacă este prezent) și observați cum fracțiile de secunde rămân (aproape) aceleași, spre deosebire de modul normal în care acestea cresc continuu."
+
+#. type: TP
+#: ../man/watch.1:69
+#, no-wrap
+msgid "B<-q>, B<--equexit> E<lt>cyclesE<gt>"
+msgstr "B<-q>, B<--equexit> E<lt>cyclesE<gt>"
+
+#. type: Plain text
+#: ../man/watch.1:74
+msgid "Exit when output of I<command> does not change for the given number of cycles."
+msgstr "Iese, când ieșirea I<comenzii> nu se modifică pentru numărul de cicluri dat."
+
+#. type: TP
+#: ../man/watch.1:74
+#, no-wrap
+msgid "B<-r>, B<--no-rerun>"
+msgstr "B<-r>, B<--no-rerun>"
+
+#. type: Plain text
+#: ../man/watch.1:78
+msgid "Do not run the program on terminal resize, the output of the program will re-appear at the next regular run time."
+msgstr "Nu rulează programul la redimensionarea terminalului, ieșirea programului va apărea din nou la următoarea rulare obișnuită."
+
+#. type: TP
+#: ../man/watch.1:78
+#, no-wrap
+msgid "B<-t>, B<--no-title>"
+msgstr "B<-t>, B<--no-title>"
+
+#. type: Plain text
+#: ../man/watch.1:82
+msgid "Turn off the header showing the interval, command, and current time at the top of the display, as well as the following blank line."
+msgstr "Dezactivează antetul care afișează intervalul, comanda și ora curentă în partea de sus a afișajului, precum și următoarea linie goală."
+
+#. type: TP
+#: ../man/watch.1:82
+#, no-wrap
+msgid "B<-w>, B<--no-wrap>"
+msgstr "B<-w>, B<--no-wrap>"
+
+#. type: Plain text
+#: ../man/watch.1:85
+msgid "Turn off line wrapping. Long lines will be truncated instead of wrapped to the next line."
+msgstr "Dezactivează încadrarea liniilor (prin împărțirea lor la lățimea ferestrei). Liniile lungi vor fi trunchiate în loc să fie transferate pe linia următoare."
+
+#. type: TP
+#: ../man/watch.1:85
+#, no-wrap
+msgid "B<-x>, B<--exec>"
+msgstr "B<-x>, B<--exec>"
+
+#. type: Plain text
+#: ../man/watch.1:94
+msgid "Pass I<command> to B<exec>(2) instead of B<sh -c> which reduces the need to use extra quoting to get the desired effect."
+msgstr "Pasează I<comanda> la B<exec>(2) în loc de la B<sh -c>, ceea ce reduce nevoia de a folosi ghilimele suplimentare pentru a obține efectul dorit."
+
+#. type: TP
+#: ../man/watch.1:97
+#, no-wrap
+msgid "B<-v>, B<--version>"
+msgstr "B<-v>, B<--version>"
+
+#. type: Plain text
+#: ../man/watch.1:110
+msgid "Various failures."
+msgstr "Diverse eșecuri."
+
+#. type: TP
+#: ../man/watch.1:110
+#, no-wrap
+msgid "B<2>"
+msgstr "B<2>"
+
+#. type: Plain text
+#: ../man/watch.1:113
+msgid "Forking the process to watch failed."
+msgstr "Bifurcarea procesului de monitorizare a eșuat."
+
+#. type: TP
+#: ../man/watch.1:113
+#, no-wrap
+msgid "B<3>"
+msgstr "B<3>"
+
+#. type: Plain text
+#: ../man/watch.1:116
+msgid "Replacing child process stdout with write side pipe failed."
+msgstr "Înlocuirea ieșirii standard a procesului-copil din partea de scriere a conductei a eșuat."
+
+#. type: TP
+#: ../man/watch.1:116
+#, no-wrap
+msgid "B<4>"
+msgstr "B<4>"
+
+#. type: Plain text
+#: ../man/watch.1:119
+msgid "Command execution failed."
+msgstr "Execuția comenzii a eșuat."
+
+#. type: TP
+#: ../man/watch.1:119
+#, no-wrap
+msgid "B<5>"
+msgstr "B<5>"
+
+#. type: Plain text
+#: ../man/watch.1:122
+msgid "Closing child process write pipe failed."
+msgstr "Închiderea conductei de scriere a procesului-copil a eșuat."
+
+#. type: TP
+#: ../man/watch.1:122
+#, no-wrap
+msgid "B<7>"
+msgstr "B<7>"
+
+#. type: Plain text
+#: ../man/watch.1:125
+msgid "IPC pipe creation failed."
+msgstr "O încercare de a crea o conductă IPC a eșuat."
+
+#. type: TP
+#: ../man/watch.1:125
+#, no-wrap
+msgid "B<8>"
+msgstr "B<8>"
+
+#. type: Plain text
+#: ../man/watch.1:130
+msgid "Getting child process return value with B<waitpid>(2) failed, or command exited up on error."
+msgstr "Obținerea valorii de returnare a procesului-copil cu B<waitpid>(2) a eșuat sau comanda a ieșit din eroare."
+
+#. type: TP
+#: ../man/watch.1:130
+#, no-wrap
+msgid "B<other>"
+msgstr "B<altul>"
+
+#. type: Plain text
+#: ../man/watch.1:133
+msgid "The watch will propagate command exit status as child exit status."
+msgstr "«watch» va transmite starea de ieșire a comenzii ca stare de ieșire a procesului-copil."
+
+#. type: Plain text
+#: ../man/watch.1:137
+msgid "The behavior of B<watch> is affected by the following environment variables."
+msgstr "Comportamentul lui B<watch> este afectat de următoarele variabile de mediu."
+
+#. type: TP
+#: ../man/watch.1:138
+#, no-wrap
+msgid "B<WATCH_INTERVAL>"
+msgstr "B<WATCH_INTERVAL>"
+
+#. type: Plain text
+#: ../man/watch.1:143
+msgid "Update interval, follows the same rules as the B<--interval> command line option."
+msgstr "Intervalul de actualizare, urmează aceleași reguli ca și opțiunea B<--interval> din linia de comandă."
+
+#. type: Plain text
+#: ../man/watch.1:151
+msgid "POSIX option processing is used (i.e., option processing stops at the first non-option argument). This means that flags after I<command> don't get interpreted by B<watch> itself."
+msgstr "Se utilizează procesarea opțiunii POSIX (adică procesarea opțiunii se oprește la primul argument care nu este opțiunea). Aceasta înseamnă că opțiunile de după I<comandă> nu vor fi interpretate de B<watch>."
+
+#. type: Plain text
+#: ../man/watch.1:159
+msgid "Upon terminal resize, the screen will not be correctly repainted until the next scheduled update. All B<--differences> highlighting is lost on that update as well. When using the B<--no-rerun> option, no output of will be visible."
+msgstr "După redimensionarea ferestrei terminalului, datele nu vor fi reformatate corespunzător până la următoarea actualizare programată. Orice evidențiere obținută cu opțiunea B<--differences> va fi de asemenea pierdută. Atunci când se utilizează opțiunea B<--no-rerun>, nu va fi vizibilă nicio ieșire."
+
+#. type: Plain text
+#: ../man/watch.1:162
+msgid "Non-printing characters are stripped from program output. Use B<cat -v> as part of the command pipeline if you want to see them."
+msgstr "Caracterele care nu se imprimă sunt eliminate din ieșirea programului. Utilizați B<cat -v> ca parte a unei secvențe de comandă creată cu caracterul conductă (|) dacă doriți să le vedeți."
+
+#. type: Plain text
+#: ../man/watch.1:166
+msgid "Combining Characters that are supposed to display on the character at the last column on the screen may display one column early, or they may not display at all."
+msgstr "Combinația de caractere care ar fi trebuit să fie afișată în ultima coloană de pe ecran poate să fie afișată cu o coloană mai devreme sau să nu fie afișată deloc."
+
+#. type: Plain text
+#: ../man/watch.1:170
+msgid "Combining Characters never count as different in B<--differences> mode. Only the base character counts."
+msgstr "Combinațiile de caractere nu sunt niciodată considerate diferite în modul B<--differences>. Sunt luate în considerare doar caracterele de bază."
+
+#. type: Plain text
+#: ../man/watch.1:173
+msgid "Blank lines directly after a line which ends in the last column do not display."
+msgstr "Liniile goale care urmează imediat după o linie care se termină în ultima coloană nu sunt afișate."
+
+#. type: Plain text
+#: ../man/watch.1:190
+msgid "B<--precise> mode doesn't yet have advanced temporal distortion technology to compensate for a I<command> that takes more than B<--interval> I<seconds> to execute. B<watch> also can get into a state where it rapid-fires as many executions of I<command> as it can to catch up from a previous executions running longer than B<--interval> (for example, B<netstat>(8) taking ages on a DNS lookup)."
+msgstr "Modul B<--precise> nu are încă funcții de sincronizare pentru a compensa o I<comandă> al cărei timp de execuție este mai mare de B<--interval> I<secunde>. B<watch> poate ajunge, de asemenea, într-o stare în care să declanșeze în rafală cât mai multe execuții ale I<comenzii> pentru a „prinde din urmă†execuțiile anterioare care rulează mai mult decât B<--interval> (de exemplu, B<netstat>(8) luând ani de zile într-o căutare DNS)."
+
+#. type: Plain text
+#: ../man/watch.1:194
+msgid "To watch for mail, you might do"
+msgstr "Pentru a urmări corespondența, ați putea rula comanda:"
+
+#. type: Plain text
+#: ../man/watch.1:196
+msgid "watch -n 60 from"
+msgstr "watch -n 60 from"
+
+#. type: Plain text
+#: ../man/watch.1:198
+msgid "To watch the contents of a directory change, you could use"
+msgstr "Pentru a urmări conținutul modificării unui director, puteți utiliza următoarea comandă:"
+
+#. type: Plain text
+#: ../man/watch.1:200
+msgid "watch -d ls -l"
+msgstr "watch -d ls -l"
+
+#. type: Plain text
+#: ../man/watch.1:202
+msgid "If you're only interested in files owned by user joe, you might use"
+msgstr "Dacă sunteÈ›i interesat doar de fiÈ™ierele deÈ›inute de utilizatorul „nicuâ€, aÈ›i putea folosi:"
+
+#. type: Plain text
+#: ../man/watch.1:204
+msgid "watch -d 'ls -l | fgrep joe'"
+msgstr "watch -d 'ls -l | fgrep nicu'"
+
+#. type: Plain text
+#: ../man/watch.1:206
+msgid "To see the effects of quoting, try these out"
+msgstr "Pentru a vedea rezultatul folosirii ghilimelelor, încercați următoarea comandă:"
+
+#. type: Plain text
+#: ../man/watch.1:208
+msgid "watch echo $$"
+msgstr "watch echo $$"
+
+#. type: Plain text
+#: ../man/watch.1:210
+msgid "watch echo '$$'"
+msgstr "watch echo '$$'"
+
+#. type: Plain text
+#: ../man/watch.1:212
+msgid "watch echo \"'\"'$$'\"'\""
+msgstr "watch echo \"'\"'$$'\"'\""
+
+#. type: Plain text
+#: ../man/watch.1:216
+msgid "To see the effect of precision time keeping, try adding B<-p> to"
+msgstr "Pentru a vedea rezultatul sincronizării precise, încercați să adăugați opțiunea B<-p> la următoarea comandă:"
+
+#. type: Plain text
+#: ../man/watch.1:218
+msgid "watch -n 10 sleep 1"
+msgstr "watch -n 10 sleep 1"
+
+#. type: Plain text
+#: ../man/watch.1:220
+msgid "You can watch for your administrator to install the latest kernel with"
+msgstr "Puteți urmări ca administratorul dumneavoastră să instaleze cel mai recent nucleu cu ajutorul comenzii:"
+
+#. type: Plain text
+#: ../man/watch.1:222
+msgid "watch uname -r"
+msgstr "watch uname -r"
+
+#. type: Plain text
+#: ../man/watch.1:228
+msgid "(Note that B<-p> isn't guaranteed to work across reboots, especially in the face of B<ntpdate> (if present) or other bootup time-changing mechanisms)"
+msgstr "(Rețineți că B<-p> nu este garantat să funcționeze la reporniri, mai ales din cauza a B<ntpdate> (dacă este prezent) sau a altor mecanisme de schimbare a timpului de pornire)"
+
+#. type: TH
+#: ../man/ps.1:13
+#, no-wrap
+msgid "PS"
+msgstr "PS"
+
+#. type: Plain text
+#: ../man/ps.1:29
+msgid "ps - report a snapshot of the current processes."
+msgstr "ps - raportează un instantaneu al proceselor curente."
+
+#. type: Plain text
+#: ../man/ps.1:31
+msgid "B<ps> [\\,I<options\\/>]"
+msgstr "B<ps> [\\,I<opțiuni\\/>]"
+
+#. type: Plain text
+#: ../man/ps.1:37
+msgid "B<ps> displays information about a selection of the active processes. If you want a repetitive update of the selection and the displayed information, use B<top> instead."
+msgstr "B<ps> afișează informații despre o selecție a proceselor active. Dacă doriți o actualizare repetitivă a selecției și a informațiilor afișate, utilizați în schimb B<top>."
+
+#. type: Plain text
+#: ../man/ps.1:41
+msgid "This version of B<ps> accepts several kinds of options:"
+msgstr "Această versiune de B<ps> acceptă mai multe tipuri de opțiuni:"
+
+#. type: Plain text
+#: ../man/ps.1:45
+msgid "UNIX options, which may be grouped and must be preceded by a dash."
+msgstr "Opțiuni UNIX, care pot fi grupate și trebuie să fie precedate de o liniuță."
+
+#. type: Plain text
+#: ../man/ps.1:47
+msgid "BSD options, which may be grouped and must not be used with a dash."
+msgstr "Opțiuni BSD, care pot fi grupate și nu trebuie să fie precedate de o liniuță."
+
+#. type: Plain text
+#: ../man/ps.1:49
+msgid "GNU long options, which are preceded by two dashes."
+msgstr "Opțiuni lungi GNU, care sunt precedate de două liniuțe."
+
+#. type: Plain text
+#: ../man/ps.1:58
+msgid "Options of different types may be freely mixed, but conflicts can appear. There are some synonymous options, which are functionally identical, due to the many standards and B<ps> implementations that this B<ps> is compatible with."
+msgstr "Opțiunile de diferite tipuri pot fi amestecate liber, dar pot apărea conflicte. Există câteva opțiuni sinonime, care sunt identice din punct de vedere funcțional, datorită numeroaselor standarde și implementări B<ps> cu care este compatibil acest B<ps>."
+
+#. type: Plain text
+#: ../man/ps.1:66
+msgid "By default, B<ps> selects all processes with the same effective user ID (euid=EUID) as the current user and associated with the same terminal as the invoker. It displays the process ID (pid=PID), the terminal associated with the process (tname=TTY), the cumulated CPU time in [DD-]hh:mm:ss format (time=TIME), and the executable name (ucmd=CMD). Output is unsorted by default."
+msgstr "În mod implicit, B<ps> selectează toate procesele cu același ID de utilizator efectiv (euid=EUID) ca utilizatorul curent și asociate cu același terminal ca și apelantul. Afișează ID-ul procesului (pid=PID), terminalul asociat procesului (tname=TTY), timpul cumulat al procesorului în format [DD-]hh:mm:ss (time=TIME) și numele executabilului (ucmd). =CMD). Ieșirea nu este sortată în mod implicit."
+
+#. type: Plain text
+#: ../man/ps.1:79
+msgid "The use of BSD-style options will add process state (stat=STAT) to the default display and show the command args (args=COMMAND) instead of the executable name. You can override this with the B<PS_FORMAT> environment variable. The use of BSD-style options will also change the process selection to include processes on other terminals (TTYs) that are owned by you; alternately, this may be described as setting the selection to be the set of all processes filtered to exclude processes owned by other users or not on a terminal. These effects are not considered when options are described as being \"identical\" below, so B<-M> will be considered identical to B<Z> and so on."
+msgstr "Utilizarea opÈ›iunilor în stil BSD va adăuga starea procesului (stat=STAT) la afiÈ™area implicită È™i va afiÈ™a argumentele comenzii (args=COMMAND) în loc de numele executabilului. PuteÈ›i suprascrie acest lucru cu variabila de mediu B<PS_FORMAT>. Utilizarea opÈ›iunilor în stil BSD va modifica, de asemenea, selecÈ›ia procesului pentru a include procese de pe alte terminale (TTY) care sunt deÈ›inute de dvs.; cu alte cuvinte, este selecÈ›ia tuturor proceselor, filtrate pentru a exclude procesele aparÈ›inând altor utilizatori sau din afara unui terminal. Aceste efecte nu sunt luate în considerare pentru opÈ›iunile descrise mai jos ca fiind „identiceâ€, deci B<-M> va fi considerată identică cu B<Z> È™i aÈ™a mai departe."
+
+#. type: Plain text
+#: ../man/ps.1:84
+msgid "Except as described below, process selection options are additive. The default selection is discarded, and then the selected processes are added to the set of processes to be displayed. A process will thus be shown if it meets any of the given selection criteria."
+msgstr "Cu excepția celor descrise mai jos, opțiunile de selecție a procesului sunt aditive. Selecția implicită este înlăturată, iar apoi procesele selectate sunt adăugate la setul de procese care urmează să fie afișate. Astfel, un proces va fi afișat dacă îndeplinește oricare dintre criteriile de selecție date."
+
+#. type: TP
+#: ../man/ps.1:85
+#, no-wrap
+msgid "To see every process on the system using standard syntax:"
+msgstr "Pentru a vedea fiecare proces din sistem folosind sintaxa standard:"
+
+#. type: Plain text
+#: ../man/ps.1:88
+msgid "B<ps\\ -e>"
+msgstr "B<ps\\ -e>"
+
+#. type: Plain text
+#: ../man/ps.1:90
+msgid "B<ps\\ -ef>"
+msgstr "B<ps\\ -ef>"
+
+#. type: Plain text
+#: ../man/ps.1:92
+msgid "B<ps\\ -eF>"
+msgstr "B<ps\\ -eF>"
+
+#. type: Plain text
+#: ../man/ps.1:94
+msgid "B<ps\\ -ely>"
+msgstr "B<ps\\ -ely>"
+
+#. type: TP
+#: ../man/ps.1:94
+#, no-wrap
+msgid "To see every process on the system using BSD syntax:"
+msgstr "Pentru a vedea fiecare proces din sistem folosind sintaxa BSD:"
+
+#. type: Plain text
+#: ../man/ps.1:97
+msgid "B<ps\\ ax>"
+msgstr "B<ps\\ ax>"
+
+#. type: Plain text
+#: ../man/ps.1:99
+msgid "B<ps\\ axu>"
+msgstr "B<ps\\ axu>"
+
+#. type: TP
+#: ../man/ps.1:99
+#, no-wrap
+msgid "To print a process tree:"
+msgstr "Pentru a afișa un arbore de procese:"
+
+#. type: Plain text
+#: ../man/ps.1:102
+msgid "B<ps\\ -ejH>"
+msgstr "B<ps\\ -ejH>"
+
+#. type: Plain text
+#: ../man/ps.1:104
+msgid "B<ps\\ axjf>"
+msgstr "B<ps\\ axjf>"
+
+#. type: TP
+#: ../man/ps.1:104
+#, no-wrap
+msgid "To get info about threads:"
+msgstr "Pentru a obține informații despre firele de execuție:"
+
+#. type: Plain text
+#: ../man/ps.1:107
+msgid "B<ps\\ -eLf>"
+msgstr "B<ps\\ -eLf>"
+
+#. type: Plain text
+#: ../man/ps.1:109
+msgid "B<ps\\ axms>"
+msgstr "B<ps\\ axms>"
+
+#. type: TP
+#: ../man/ps.1:109
+#, no-wrap
+msgid "To get security info:"
+msgstr "Pentru a obține informații de securitate:"
+
+#. type: Plain text
+#: ../man/ps.1:112
+msgid "B<ps\\ -eo euser,ruser,suser,fuser,f,comm,label>"
+msgstr "B<ps\\ -eo euser,ruser,suser,fuser,f,comm,label>"
+
+#. type: Plain text
+#: ../man/ps.1:114
+msgid "B<ps\\ axZ>"
+msgstr "B<ps\\ axZ>"
+
+#. type: Plain text
+#: ../man/ps.1:116
+msgid "B<ps\\ -eM>"
+msgstr "B<ps\\ -eM>"
+
+#. type: TP
+#: ../man/ps.1:116
+#, no-wrap
+msgid "To see every process running as root (real\\ &\\ effective\\ ID) in user format:"
+msgstr "Pentru a vedea fiecare proces care rulează ca root (ID real și efectiv) în format utilizator:"
+
+#. type: Plain text
+#: ../man/ps.1:119
+msgid "B<ps\\ -U\\ root\\ -u\\ root\\ u>"
+msgstr "B<ps\\ -U\\ root\\ -u\\ root\\ u>"
+
+#. type: TP
+#: ../man/ps.1:119
+#, no-wrap
+msgid "To see every process with a user-defined format:"
+msgstr "Pentru a vedea fiecare proces cu un format definit de utilizator:"
+
+#. type: Plain text
+#: ../man/ps.1:122
+msgid "B<ps\\ -eo\\ pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm>"
+msgstr "B<ps\\ -eo\\ pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm>"
+
+#. type: Plain text
+#: ../man/ps.1:124
+msgid "B<ps\\ axo\\ stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm>"
+msgstr "B<ps\\ axo\\ stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm>"
+
+#. type: Plain text
+#: ../man/ps.1:126
+msgid "B<ps\\ -Ao\\ pid,tt,user,fname,tmout,f,wchan>"
+msgstr "B<ps\\ -Ao\\ pid,tt,user,fname,tmout,f,wchan>"
+
+#. type: TP
+#: ../man/ps.1:126
+#, no-wrap
+msgid "Print only the process IDs of syslogd:"
+msgstr "Afișează doar ID-urile de proces ale syslogd:"
+
+#. type: Plain text
+#: ../man/ps.1:129
+msgid "B<ps\\ -C\\ syslogd\\ -o\\ pid=>"
+msgstr "B<ps\\ -C\\ syslogd\\ -o\\ pid=>"
+
+#. type: TP
+#: ../man/ps.1:129
+#, no-wrap
+msgid "Print only the name of PID 42:"
+msgstr "Afișează doar numele PID-ului 42:"
+
+#. type: Plain text
+#: ../man/ps.1:132
+msgid "B<ps\\ -q\\ 42\\ -o\\ comm=>"
+msgstr "B<ps\\ -q\\ 42\\ -o\\ comm=>"
+
+#. type: SH
+#: ../man/ps.1:132
+#, no-wrap
+msgid "SIMPLE PROCESS SELECTION"
+msgstr "SELECTARE SIMPLÄ‚ A PROCESULUI"
+
+#. type: TP
+#: ../man/ps.1:133
+#, no-wrap
+msgid "B<a>"
+msgstr "B<a>"
+
+#. type: Plain text
+#: ../man/ps.1:147
+msgid "Lift the BSD-style \"only yourself\" restriction, which is imposed upon the set of all processes when some BSD-style (without \"-\") options are used or when the B<ps> personality setting is BSD-like. The set of processes selected in this manner is in addition to the set of processes selected by other means. An alternate description is that this option causes B<ps> to list all processes with a terminal (tty), or to list all processes when used together with the B<x> option."
+msgstr "Ridică restricÈ›ia „doar eu însumi†în stil BSD, care este impusă setului tuturor proceselor atunci când sunt utilizate unele opÈ›iuni în stil BSD (fără „-â€) sau când configurarea de personalitate a B<ps> este asemănătoare cu cea din BSD. Setul de procese selectate în acest mod se adaugă setului de procese selectate prin alte mijloace. Cu alte cuvinte, această opÈ›iune determină B<ps> să listeze toate procesele cu un terminal (tty) sau să listeze toate procesele atunci când este utilizată împreună cu opÈ›iunea B<x>."
+
+#. type: Plain text
+#: ../man/ps.1:151
+msgid "Select all processes. Identical to B<-e>."
+msgstr "Selectează toate procesele. Identică cu B<-e>."
+
+#. type: TP
+#: ../man/ps.1:151
+#, no-wrap
+msgid "B<-a>"
+msgstr "B<-a>"
+
+#. type: Plain text
+#: ../man/ps.1:156
+msgid "Select all processes except both session leaders (see I<getsid>(2)) and processes not associated with a terminal."
+msgstr "Selectează toate procesele cu excepția atât a liderilor de sesiune (vezi I<getsid>(2)) cât și a proceselor care nu sunt asociate cu un terminal."
+
+#. type: Plain text
+#: ../man/ps.1:159
+msgid "Select all processes except session leaders."
+msgstr "Selectați toate procesele, cu excepția liderilor de sesiune."
+
+#. type: TP
+#: ../man/ps.1:159
+#, no-wrap
+msgid "B<--deselect>"
+msgstr "B<--deselect>"
+
+#. type: Plain text
+#: ../man/ps.1:164
+msgid "Select all processes except those that fulfill the specified conditions (negates the selection). Identical to B<-N>."
+msgstr "Selectează toate procesele, cu excepția celor care îndeplinesc condițiile specificate (inversează selecția). La fel ca opțiunea B<-N>."
+
+#. type: TP
+#: ../man/ps.1:164
+#, no-wrap
+msgid "B<-e>"
+msgstr "B<-e>"
+
+#. Current "g" behavior: add in the session leaders, which would
+#. be excluded in the sunos4 personality. Supposed "g" behavior:
+#. add in the group leaders -- at least according to the SunOS 4
+#. man page on the FreeBSD site. Uh oh. I think I had tested SunOS
+#. though, so maybe the code is correct.
+#. type: Plain text
+#: ../man/ps.1:173
+msgid "Select all processes. Identical to B<-A>."
+msgstr "Selectează toate procesele. Identică cu B<-A>."
+
+#. type: TP
+#: ../man/ps.1:173
+#, no-wrap
+msgid "B<g>"
+msgstr "B<g>"
+
+#. type: Plain text
+#: ../man/ps.1:179
+msgid "Really all, even session leaders. This flag is obsolete and may be discontinued in a future release. It is normally implied by the B<a> flag, and is only useful when operating in the sunos4 personality."
+msgstr "Într-adevăr totul, chiar și liderii de sesiune. Această opțiune este învechită și poate dispărea într-o versiune viitoare. În mod normal, este implicită cu opțiunea B<a> și este utilă doar când rulați cu personalitatea sunos4."
+
+#. type: TP
+#: ../man/ps.1:179
+#, no-wrap
+msgid "B<-N>"
+msgstr "B<-N>"
+
+#. type: Plain text
+#: ../man/ps.1:184
+msgid "Select all processes except those that fulfill the specified conditions (negates the selection). Identical to B<--deselect>."
+msgstr "Selectează toate procesele, cu excepția celor care îndeplinesc condițiile specificate (inversează selecția). La fel ca opțiunea B<--deselect>."
+
+#. type: TP
+#: ../man/ps.1:184
+#, no-wrap
+msgid "B<T>"
+msgstr "B<T>"
+
+#. type: Plain text
+#: ../man/ps.1:189
+msgid "Select all processes associated with this terminal. Identical to the B<t> option without any argument."
+msgstr "Selectează toate procesele asociate cu acest terminal. Identică cu opțiunea B<t> fără niciun argument."
+
+#. type: TP
+#: ../man/ps.1:189
+#, no-wrap
+msgid "B<r>"
+msgstr "B<r>"
+
+#. type: Plain text
+#: ../man/ps.1:192
+msgid "Restrict the selection to only running processes."
+msgstr "Restricționează selecția doar la procesele care rulează."
+
+#. type: TP
+#: ../man/ps.1:192
+#, no-wrap
+msgid "B<x>"
+msgstr "B<x>"
+
+#. type: Plain text
+#: ../man/ps.1:207
+msgid "Lift the BSD-style \"must have a tty\" restriction, which is imposed upon the set of all processes when some BSD-style (without \"-\") options are used or when the B<ps> personality setting is BSD-like. The set of processes selected in this manner is in addition to the set of processes selected by other means. An alternate description is that this option causes B<ps> to list all processes owned by you (same EUID as B<ps>), or to list all processes when used together with the B<a> option."
+msgstr "Ridică restricÈ›ia „trebuie să aibă un tty†în stil BSD, care este impusă setului tuturor proceselor atunci când sunt utilizate unele opÈ›iuni în stil BSD (fără „-â€) sau când configurarea de personalitate a B<ps> este asemănătoare cu cea din BSD. Setul de procese selectate în acest mod se adaugă setului de procese selectate prin alte mijloace. Cu alte cuvinte, această opÈ›iune determină B<ps> să listeze toate procesele deÈ›inute de dumneavoastră (acelaÈ™i EUID ca B<ps>) sau să listeze toate procesele atunci când este utilizat cu opÈ›iunea B<a>."
+
+#. type: SH
+#: ../man/ps.1:208
+#, no-wrap
+msgid "PROCESS SELECTION BY LIST"
+msgstr "SELECTARE PROCES DIN LISTÄ‚"
+
+#. type: Plain text
+#: ../man/ps.1:212
+msgid "These options accept a single argument in the form of a blank-separated or comma-separated list. They can be used multiple times. For example: B<ps\\ -p\\ \"1\\ 2\"\\ -p\\ 3,4>"
+msgstr "Aceste opțiuni acceptă un singur argument sub forma unei liste separate prin virgule sau spații. Acestea pot fi folosite de mai multe ori. De exemplu: B<ps\\ -p\\ \"1\\ 2\"\\ -p\\ 3,4>"
+
+#. type: TP
+#: ../man/ps.1:212
+#, no-wrap
+msgid "I<123>"
+msgstr "I<123>"
+
+#. type: Plain text
+#: ../man/ps.1:216
+msgid "Identical to B<--pid\\ >I<123>."
+msgstr "Identic cu B<--pid\\ >I<123>."
+
+#. type: TP
+#: ../man/ps.1:216
+#, no-wrap
+msgid "\\+I<123>"
+msgstr "\\+I<123>"
+
+#. type: Plain text
+#: ../man/ps.1:220
+msgid "Identical to B<--sid\\ >I<123>."
+msgstr "Identic cu B<--sid\\ >I<123>."
+
+#. type: TP
+#: ../man/ps.1:220
+#, no-wrap
+msgid "-I<123>"
+msgstr "-I<123>"
+
+#. type: Plain text
+#: ../man/ps.1:223
+msgid "Select by process group ID (PGID)."
+msgstr "Selectează după identificatorul grupului de procese (PGID)."
+
+#. type: TP
+#: ../man/ps.1:223
+#, no-wrap
+msgid "B<-C>I<\\ cmdlist>"
+msgstr "B<-C>I<\\ listă_comenzi>"
+
+#. type: Plain text
+#: ../man/ps.1:232
+msgid "Select by command name. This selects the processes whose executable name is given in I<cmdlist>. NOTE: The command name is not the same as the command line. Previous versions of procps and the kernel truncated this command name to 15 characters. This limitation is no longer present in both. If you depended on matching only 15 characters, you may no longer get a match."
+msgstr "Selectează după numele comenzii. Aceasta selectează procesele al căror nume de executabil este dat în I<listă_comenzi>. NOTĂ: Numele comenzii nu este același cu numele din linia de comandă. Versiunile anterioare ale I<procps> și ale nucleului au trunchiat acest nume de comandă la 15 caractere. Această limitare nu mai este prezentă în ambele. Dacă veți efectua căutarea doar cu 15 caractere, este posibil să nu mai obțineți o potrivire."
+
+#. type: TP
+#: ../man/ps.1:232
+#, no-wrap
+msgid "B<-G>I<\\ grplist>"
+msgstr "B<-G>I<\\ listă_grupuri>"
+
+#. type: Plain text
+#: ../man/ps.1:240
+msgid "Select by real group ID (RGID) or name. This selects the processes whose real group name or ID is in the I<grplist> list. The real group ID identifies the group of the user who created the process, see I<getgid>(2)."
+msgstr "Selectează după ID-ul real al grupului (RGID) sau nume. Aceasta selectează procesele al căror nume sau ID real de grup se află în lista I<listă_grupuri>. ID-ul real al grupului identifică grupul utilizatorului care a creat procesul, vezi I<getgid>(2)."
+
+#. type: TP
+#: ../man/ps.1:240
+#, no-wrap
+msgid "B<-g>I<\\ grplist>"
+msgstr "B<-g>I<\\ listă_grupuri>"
+
+#. type: Plain text
+#: ../man/ps.1:253
+msgid "Select by session OR by effective group name. Selection by session is specified by many standards, but selection by effective group is the logical behavior that several other operating systems use. This B<ps> will select by session when the list is completely numeric (as sessions are). Group ID numbers will work only when some group names are also specified. See the B<-s> and B<--group> options."
+msgstr "Selectează după sesiune SAU după numele efectiv al grupului. Selectarea după sesiune este specificată de mai multe standarde, dar selecția după grup efectiv este comportamentul logic pe care îl folosesc mai multe alte sisteme de operare. Acest B<ps> va selecta după sesiune când lista este complet numerică (așa cum sunt sesiunile). Numerele ID de grup vor funcționa numai atunci când sunt specificate și unele nume de grup. Consultați opțiunile B<-s> și B<--group>."
+
+#. type: TP
+#: ../man/ps.1:253
+#, no-wrap
+msgid "B<--Group>I<\\ grplist>"
+msgstr "B<--Group>I<\\ listă_grupuri>"
+
+#. type: Plain text
+#: ../man/ps.1:257
+msgid "Select by real group ID (RGID) or name. Identical to B<-G>."
+msgstr "Selectează după ID-ul real al grupului (RGID) sau nume. Identică cu B<-G>."
+
+# R-GC, scrie:
+# la acest mesaj, și la unele din mesajele
+# următoare, am folosit nomenclatura
+# utilizată în fișierul procps-ng pentru
+# mesajele de ajutor ale utilizatorului;
+# pentru a fi coerent între cele două
+# fișiere, și pentru că
+# mi s-a/se părut/pare mai potrivită/sugestivă.
+#. type: TP
+#: ../man/ps.1:257
+#, no-wrap
+msgid "B<--group>I<\\ grplist>"
+msgstr "B<--group>I<\\ listă_grupuri>"
+
+#. type: Plain text
+#: ../man/ps.1:269
+msgid "Select by effective group ID (EGID) or name. This selects the processes whose effective group name or ID is in I<grplist>. The effective group ID describes the group whose file access permissions are used by the process (see I<getegid>(2)). The B<-g> option is often an alternative to B<--group>."
+msgstr "Selectează după ID-ul efectiv al grupului (EGID) sau nume. Aceasta selectează procesele al căror nume de grup efectiv sau ID este în I<listă_grupuri>. ID-ul efectiv al grupului descrie grupul ale cărui permisiuni de acces la fișiere sunt utilizate de proces (consultați I<getegid>(2)). Opțiunea B<-g> este adesea o alternativă la B<--group>."
+
+#. type: TP
+#: ../man/ps.1:269
+#, no-wrap
+msgid "B<p>I<\\ pidlist>"
+msgstr "B<p>I<\\ listă_pid-uri>"
+
+#. type: Plain text
+#: ../man/ps.1:275
+msgid "Select by process ID. Identical to B<-p> and B<--pid>."
+msgstr "Selectează după ID-ul procesului. Identică cu B<-p> și B<--pid>."
+
+#. type: TP
+#: ../man/ps.1:275
+#, no-wrap
+msgid "B<-p>I<\\ pidlist>"
+msgstr "B<-p>I<\\ listă_pid-uri>"
+
+#. type: Plain text
+#: ../man/ps.1:283
+msgid "Select by PID. This selects the processes whose process ID numbers appear in I<pidlist>. Identical to B<p> and B<--pid>."
+msgstr "Selectează după PID. Aceasta selectează procesele ale căror numere ID de proces apar în I<listă_pid-uri>. Identică cu B<p> și B<--pid>."
+
+#. type: TP
+#: ../man/ps.1:283
+#, no-wrap
+msgid "B<--pid>I<\\ pidlist>"
+msgstr "B<--pid>I<\\ listă_pid-uri>"
+
+#. type: Plain text
+#: ../man/ps.1:289
+msgid "Select by process\\ ID. Identical to B<-p> and B<p>."
+msgstr "Selectează după identificatorul procesului (PID). La fel ca B<-p> și B<p>."
+
+#. type: TP
+#: ../man/ps.1:289
+#, no-wrap
+msgid "B<--ppid>I<\\ pidlist>"
+msgstr "B<--ppid>I<\\ listă_pid-uri>"
+
+#. type: Plain text
+#: ../man/ps.1:296
+msgid "Select by parent process ID. This selects the processes with a parent process\\ ID in I<pidlist>. That is, it selects processes that are children of those listed in I<pidlist>."
+msgstr "Selectează după ID-ul procesului părinte. Aceasta selectează procesele cu un identificator de proces părinte în I<listă_pid-uri>. Adică selectează procesele care sunt copii ale celor enumerate în I<listă_pid-uri>."
+
+#. type: TP
+#: ../man/ps.1:296
+#, no-wrap
+msgid "B<q>I<\\ pidlist>"
+msgstr "B<q>I<\\ listă_pid-uri>"
+
+#. type: Plain text
+#: ../man/ps.1:302
+msgid "Select by process ID (quick mode). Identical to B<-q> and B<--quick-pid>."
+msgstr "Selectează după ID-ul procesului (modul rapid). Identică cu B<-q> și B<--quick-pid>."
+
+#. type: TP
+#: ../man/ps.1:302
+#, no-wrap
+msgid "B<-q>I<\\ pidlist>"
+msgstr "B<-q>I<\\ listă_pid-uri>"
+
+#. type: Plain text
+#: ../man/ps.1:316
+msgid "Select by PID (quick mode). This selects the processes whose process ID numbers appear in I<pidlist>. With this option B<ps> reads the necessary info only for the pids listed in the I<pidlist> and doesn't apply additional filtering rules. The order of pids is unsorted and preserved. No additional selection options, sorting and forest type listings are allowed in this mode. Identical to B<q> and B<--quick-pid>."
+msgstr "Selectează după PID (modul rapid). Aceasta selectează procesele ale căror numere ID de proces apar în I<listă_pid-uri>. Cu această opțiune, B<ps> citește informațiile necesare numai pentru pid-urile enumerate în I<listă_pid-uri> și nu aplică reguli suplimentare de filtrare. Ordinea numerelor pid este nesortată și păstrată. Nu sunt permise opțiuni suplimentare de selecție, sortare și listare de tip arborescent în acest mod. Identică cu B<q> și B<--quick-pid>."
+
+#. type: TP
+#: ../man/ps.1:316
+#, no-wrap
+msgid "B<--quick-pid>I<\\ pidlist>"
+msgstr "B<--quick-pid>I<\\ listă_pid-uri>"
+
+#. type: Plain text
+#: ../man/ps.1:322
+msgid "Select by process\\ ID (quick mode). Identical to B<-q> and B<q>."
+msgstr "Selectează după ID-ul procesului (modul rapid). Identică cu B<-q> și B<q>."
+
+#. type: TP
+#: ../man/ps.1:322
+#, no-wrap
+msgid "B<-s>I<\\ sesslist>"
+msgstr "B<-s>I<\\ listă_sesiuni>"
+
+#. type: Plain text
+#: ../man/ps.1:327
+msgid "Select by session ID. This selects the processes with a session ID specified in I<sesslist>."
+msgstr "Selectează după ID-ul sesiunii. Aceasta selectează procesele cu un ID de sesiune specificat în I<listă_sesiuni>."
+
+#. type: TP
+#: ../man/ps.1:327
+#, no-wrap
+msgid "B<--sid>I<\\ sesslist>"
+msgstr "B<--sid>I<\\ listă_sesiuni>"
+
+#. type: Plain text
+#: ../man/ps.1:331
+msgid "Select by session\\ ID. Identical to B<-s>."
+msgstr "Selectează după ID-ul sesiunii. Identică cu B<-s>."
+
+#. type: TP
+#: ../man/ps.1:331
+#, no-wrap
+msgid "B<t>I<\\ ttylist>"
+msgstr "B<t>I<\\ listă_tty-uri>"
+
+#. type: Plain text
+#: ../man/ps.1:348
+msgid "Select by tty. Nearly identical to B<-t> and B<--tty>, but can also be used with an empty I<ttylist> to indicate the terminal associated with B<ps>. Using the B<T> option is considered cleaner than using B<t> with an empty I<ttylist>."
+msgstr "Selectează după tty. Aproape identică cu B<-t> și B<--tty>, dar poate fi folosită și cu o I<listă_tty-uri> goală pentru a indica terminalul asociat cu B<ps>. Utilizarea opțiunii B<T> este considerată mai curată decât utilizarea B<t> cu o I<listă_tty-uri> goală."
+
+#. type: TP
+#: ../man/ps.1:348
+#, no-wrap
+msgid "B<-t>I<\\ ttylist>"
+msgstr "B<-t>I<\\ listă_tty-uri>"
+
+#. type: Plain text
+#: ../man/ps.1:356
+msgid "Select by tty. This selects the processes associated with the terminals given in I<ttylist>. Terminals (ttys, or screens for text output) can be specified in several forms: /dev/ttyS1, ttyS1, S1. A plain \"-\" may be used to select processes not attached to any terminal."
+msgstr "Selectează după tty. Aceasta selectează procesele asociate cu terminalele date în I<listă_tty-uri>. Terminalele (ttys, sau ecrane pentru ieșire de text) pot fi specificate în mai multe forme: /dev/ttyS1, ttyS1, S1. Un simplu „-†poate fi folosit pentru a selecta procese care nu sunt atașate la niciun terminal."
+
+#. type: TP
+#: ../man/ps.1:356
+#, no-wrap
+msgid "B<--tty>I<\\ ttylist>"
+msgstr "B<--tty>I<\\ listă_tty-uri>"
+
+#. type: Plain text
+#: ../man/ps.1:362
+msgid "Select by terminal. Identical to B<-t> and B<t>."
+msgstr "Selectează după terminal. Identică cu B<-t> și B<t>."
+
+#. type: TP
+#: ../man/ps.1:362
+#, no-wrap
+msgid "B<U>I<\\ userlist>"
+msgstr "B<U>I<\\ listă_utilizatori>"
+
+#. type: Plain text
+#: ../man/ps.1:374
+msgid "Select by effective user ID (EUID) or name. This selects the processes whose effective user name or ID is in I<userlist>. The effective user ID describes the user whose file access permissions are used by the process (see I<geteuid>(2)). Identical to B<-u> and B<--user>."
+msgstr "Selectează după ID-ul de utilizator efectiv (EUID) sau nume. Aceasta selectează procesele al căror nume de utilizator efectiv sau ID este în I<listă_utilizatori>. ID-ul de utilizator efectiv descrie utilizatorul ale cărui permisiuni de acces la fișiere sunt utilizate de proces (vezi I<geteuid>(2)). Identică cu B<-u> și B<--user>."
+
+#. type: TP
+#: ../man/ps.1:374
+#, no-wrap
+msgid "B<-U>I<\\ userlist>"
+msgstr "B<-U>I<\\ listă_utilizatori>"
+
+#. type: Plain text
+#: ../man/ps.1:381
+msgid "Select by real user ID (RUID) or name. It selects the processes whose real user name or ID is in the I<userlist> list. The real user ID identifies the user who created the process, see I<getuid>(2)."
+msgstr "Selectează după ID-ul utilizatorului real (RUID) sau nume. Selectează procesele al căror nume sau ID real de utilizator se află în lista I<listă_utilizatori>. ID-ul de utilizator real identifică utilizatorul care a creat procesul, vezi I<getuid>(2)."
+
+#. type: TP
+#: ../man/ps.1:381
+#, no-wrap
+msgid "B<-u>I<\\ userlist>"
+msgstr "B<-u>I<\\ listă_utilizatori>"
+
+#. type: Plain text
+#: ../man/ps.1:386
+msgid "Select by effective user ID (EUID) or name. This selects the processes whose effective user name or ID is in I<userlist>."
+msgstr "Selectează după ID-ul de utilizator efectiv (EUID) sau nume. Aceasta selectează procesele al căror nume de utilizator efectiv sau ID este în I<listă_utilizatori>."
+
+#. type: Plain text
+#: ../man/ps.1:394
+msgid "The effective user ID describes the user whose file access permissions are used by the process (see I<geteuid>(2)). Identical to B<U> and B<--user>."
+msgstr "ID-ul de utilizator efectiv descrie utilizatorul ale cărui permisiuni de acces la fișiere sunt utilizate de proces (vezi I<geteuid>(2)). Identică cu B<U> și B<--user>."
+
+#. type: TP
+#: ../man/ps.1:394
+#, no-wrap
+msgid "B<--User>I<\\ userlist>"
+msgstr "B<--User>I<\\ listă_utilizatori>"
+
+#. type: Plain text
+#: ../man/ps.1:398
+msgid "Select by real user ID (RUID) or name. Identical to B<-U>."
+msgstr "Selectează după ID-ul utilizatorului real (RUID) sau nume. Identică cu B<-U>."
+
+#. type: TP
+#: ../man/ps.1:398
+#, no-wrap
+msgid "B<--user>I<\\ userlist>"
+msgstr "B<--user>I<\\ listă_utilizatori>"
+
+#. type: Plain text
+#: ../man/ps.1:404
+msgid "Select by effective user ID (EUID) or name. Identical to B<-u> and B<U>."
+msgstr "Selectează după ID-ul utilizatorului efectiv (EUID) sau nume. Identică cu B<-u> și B<U>."
+
+#. type: SH
+#: ../man/ps.1:405
+#, no-wrap
+msgid "OUTPUT FORMAT CONTROL"
+msgstr "CONTROLUL FORMATULUI DE IEȘIRE"
+
+#. type: Plain text
+#: ../man/ps.1:409
+msgid "These options are used to choose the information displayed by B<ps>. The output may differ by personality."
+msgstr "Aceste opțiuni sunt folosite pentru a alege informațiile afișate de B<ps>. Ieșirea poate diferi în funcție de personalizare."
+
+#. type: Plain text
+#: ../man/ps.1:414
+msgid "Show different scheduler information for the B<-l> option."
+msgstr "Afișează diferite informații de planificare pentru opțiunea B<-l>."
+
+#. type: TP
+#: ../man/ps.1:414
+#, no-wrap
+msgid "B<--context>"
+msgstr "B<--context>"
+
+#. type: Plain text
+#: ../man/ps.1:417
+msgid "Display security context format (for SELinux)."
+msgstr "Afișează formatul contextului de securitate (pentru SELinux)."
+
+#. type: Plain text
+#: ../man/ps.1:430
+msgid "Do full-format listing. This option can be combined with many other UNIX-style options to add additional columns. It also causes the command arguments to be printed. When used with B<-L>, the NLWP (number of threads) and LWP (thread ID) columns will be added. See the B<c> option, the format keyword B<args>, and the format keyword B<comm>."
+msgstr "Afișează listarea în format complet. Această opțiune poate fi combinată cu multe alte opțiuni în stil UNIX pentru a adăuga coloane suplimentare. De asemenea, determină afișarea argumentelor comenzii. Când este utilizată cu B<-L>, se vor adăuga coloanele NLWP (număr de fire) și LWP (ID fir). Consultați opțiunea B<c>, cuvântul cheie pentru format B<args> și cuvântul cheie pentru format B<comm>."
+
+#. type: TP
+#: ../man/ps.1:430
+#, no-wrap
+msgid "B<-F>"
+msgstr "B<-F>"
+
+#. type: Plain text
+#: ../man/ps.1:437
+msgid "Extra full format. See the B<-f> option, which B<-F> implies."
+msgstr "Format extra complet. Vedeți opțiunea B<-f>, ceea ce implică B<-F>."
+
+#. type: TP
+#: ../man/ps.1:437
+#, no-wrap
+msgid "B<--format>I<\\ format>"
+msgstr "B<--format>I<\\ format>"
+
+#. type: Plain text
+#: ../man/ps.1:443
+msgid "user-defined format. Identical to B<-o> and B<o>."
+msgstr "Format definit de utilizator. Identică cu B<-o> și B<o>."
+
+#. type: TP
+#: ../man/ps.1:443
+#, no-wrap
+msgid "B<j>"
+msgstr "B<j>"
+
+#. type: Plain text
+#: ../man/ps.1:446
+msgid "BSD job control format."
+msgstr "Format de control al sarcinilor BSD."
+
+#. type: TP
+#: ../man/ps.1:446
+#, no-wrap
+msgid "B<-j>"
+msgstr "B<-j>"
+
+#. type: Plain text
+#: ../man/ps.1:449
+msgid "Jobs format."
+msgstr "Format sarcini."
+
+#. type: TP
+#: ../man/ps.1:449
+#, no-wrap
+msgid "B<l>"
+msgstr "B<l>"
+
+#. type: Plain text
+#: ../man/ps.1:452
+msgid "Display BSD long format."
+msgstr "Afișează formatul BSD lung."
+
+#. type: TP
+#: ../man/ps.1:452
+#, no-wrap
+msgid "B<-l>"
+msgstr "B<-l>"
+
+#. type: Plain text
+#: ../man/ps.1:457
+msgid "Long format. The B<-y> option is often useful with this."
+msgstr "Format lung. Opțiunea B<-y> este adesea utilă cu aceasta."
+
+#. type: TP
+#: ../man/ps.1:457
+#, no-wrap
+msgid "B<-M>"
+msgstr "B<-M>"
+
+#. type: Plain text
+#: ../man/ps.1:462
+msgid "Add a column of security data. Identical to B<Z> (for SELinux)."
+msgstr "Adaugă o coloană cu date de securitate. Identică cu B<Z> (pentru SELinux)."
+
+#. type: TP
+#: ../man/ps.1:462
+#, no-wrap
+msgid "B<O>I<\\ format>"
+msgstr "B<O>I<\\ format>"
+
+#. type: Plain text
+#: ../man/ps.1:480
+msgid "is preloaded B<o> (overloaded). The BSD B<O> option can act like B<-O> (user-defined output format with some common fields predefined) or can be used to specify sort order. Heuristics are used to determine the behavior of this option. To ensure that the desired behavior is obtained (sorting or formatting), specify the option in some other way (e.g. with B<-O> or B<--sort>). When used as a formatting option, it is identical to B<-O>, with the BSD personality."
+msgstr "Este preîncărcat B<o> (supraîncărcat). Opțiunea BSD B<O> poate acționa ca opțiunea B<-O> (format de ieșire definit de utilizator cu unele câmpuri comune predefinite) sau poate fi folosită pentru a specifica ordinea de sortare. Euristicele sunt folosite pentru a determina comportamentul acestei opțiuni. Pentru a vă asigura că se obține comportamentul dorit (sortare sau formatare), specificați opțiunea într-un alt mod (de exemplu, cu B<-O> sau B<--sort>). Când este folosită ca opțiune de formatare, este identică cu B<-O>, cu personalitatea BSD."
+
+#. type: TP
+#: ../man/ps.1:480
+#, no-wrap
+msgid "B<-O>I<\\ format>"
+msgstr "B<-O>I<\\ format>"
+
+#. type: Plain text
+#: ../man/ps.1:491
+msgid "Like B<-o>, but preloaded with some default columns. Identical to B<-o\\ pid,\\:>I<format>B<,\\:state,\\:tname,\\:time,\\:command> or B<-o\\ pid,\\:>I<format>B<,\\:tname,\\:time,\\:cmd>, see B<-o> below."
+msgstr "La fel ca B<-o>, dar preîncărcată cu unele coloane implicite. Identică cu B<-o\\ pid,\\:>I<format>B<,\\:state,\\:tname,\\:time,\\:command> sau B<-o\\ pid,\\:>I<format> B<,\\:tname,\\:time,\\:cmd>, vedeți opțiunea B<-o> mai jos."
+
+#. type: TP
+#: ../man/ps.1:491
+#, no-wrap
+msgid "B<o>I<\\ format>"
+msgstr "B<o>I<\\ format>"
+
+#. type: Plain text
+#: ../man/ps.1:497
+msgid "Specify user-defined format. Identical to B<-o> and B<--format>."
+msgstr "Specifică un format definit de utilizator. Identică cu B<-o> și B<--format>."
+
+#. type: TP
+#: ../man/ps.1:497
+#, no-wrap
+msgid "B<-o>I<\\ format>"
+msgstr "B<-o>I<\\ format>"
+
+#. type: Plain text
+#: ../man/ps.1:525
+msgid "User-defined format. I<format> is a single argument in the form of a blank-separated or comma-separated list, which offers a way to specify individual output columns. The recognized keywords are described in the B<STANDARD FORMAT SPECIFIERS> section below. Headers may be renamed (B<ps -o pid,\\:ruser=RealUser -o comm=Command>) as desired. If all column headers are empty (B<ps -o pid= -o comm=>) then the header line will not be output. Column width will increase as needed for wide headers; this may be used to widen up columns such as WCHAN (B<ps -o pid,\\:wchan=\\:WIDE-\\:WCHAN-\\:COLUMN -o comm>). Explicit width control (B<ps opid,\\:wchan:42,\\:cmd>) is offered too. The behavior of B<ps -o pid=X,\\:comm=Y> varies with personality; output may be one column named \"X,\\:comm=Y\" or two columns named \"X\" and \"Y\". Use multiple B<-o> options when in doubt. Use the B<PS_FORMAT> environment variable to specify a default as desired; DefSysV and DefBSD are macros that may be used to choose the default UNIX or BSD columns."
+msgstr "Format definit de utilizator. I<format> este un singur argument sub forma unei liste separate prin spaÈ›ii în alb sau prin virgule, care oferă o modalitate de a specifica individual coloanele de ieÈ™ire. Cuvintele cheie recunoscute sunt descrise în secÈ›iunea B<SPECIFICATORI DE FORMAT STANDARD> de mai jos. Titlurile coloanelor pot fi redenumite (B<ps -o pid,\\:ruser=RealUser -o comm=Command>) după cum doriÈ›i. Dacă toate titlurile de coloană sunt goale (B<ps -o pid= -o comm=>), atunci linia de titluri nu va fi afiÈ™ată . Lățimea coloanei va creÈ™te după cum este necesar pentru titlurile largi; aceasta poate fi folosită pentru a lărgi coloane precum WCHAN (B<ps -o pid,\\:wchan=\\:WIDE-\\:WCHAN-\\:COLUMN -o comm>). Controlul explicit al lățimii (B<ps opid,\\:wchan:42,\\:cmd>) este de asemenea posibil. Comportamentul lui B<ps -o pid=X,\\:comm=Y> variază în funcÈ›ie de personalitate; ieÈ™irea poate fi o coloană numită „X,\\:comm=Y†sau două coloane numite „X†și „Yâ€. UtilizaÈ›i mai multe opÈ›iuni B<-o> atunci când aveÈ›i îndoieli. UtilizaÈ›i variabila de mediu B<PS_FORMAT> pentru a specifica o valoare implicită după cum doriÈ›i; DefSysV È™i DefBSD sunt macrocomenzi care pot fi utilizate pentru a alege coloanele UNIX sau BSD implicite."
+
+#. type: TP
+#: ../man/ps.1:525
+#, no-wrap
+msgid "B<-P>"
+msgstr "B<-P>"
+
+#. type: Plain text
+#: ../man/ps.1:528
+msgid "Add a column showing B<psr>."
+msgstr "Adaugă o coloană care afișează B<psr>."
+
+#. type: TP
+#: ../man/ps.1:528
+#, no-wrap
+msgid "B<s>"
+msgstr "B<s>"
+
+#. type: Plain text
+#: ../man/ps.1:531
+msgid "Display signal format."
+msgstr "Afișează formatul semnalului."
+
+#. type: TP
+#: ../man/ps.1:531
+#, no-wrap
+msgid "B<u>"
+msgstr "B<u>"
+
+#. type: Plain text
+#: ../man/ps.1:534
+msgid "Display user-oriented format."
+msgstr "Afișează formatul orientat către utilizator."
+
+#. type: TP
+#: ../man/ps.1:534
+#, no-wrap
+msgid "B<v>"
+msgstr "B<v>"
+
+#. type: Plain text
+#: ../man/ps.1:537
+msgid "Display virtual memory format."
+msgstr "Afișează formatul memoriei virtuale."
+
+#. type: TP
+#: ../man/ps.1:537
+#, no-wrap
+msgid "B<X>"
+msgstr "B<X>"
+
+#. type: Plain text
+#: ../man/ps.1:540
+msgid "Register format."
+msgstr "Format de registru."
+
+#. type: TP
+#: ../man/ps.1:540
+#, no-wrap
+msgid "B<-y>"
+msgstr "B<-y>"
+
+#. type: Plain text
+#: ../man/ps.1:545
+msgid "Do not show flags; show rss in place of addr. This option can only be used with B<-l>."
+msgstr "Nu afișează fanioane; afișează rss în locul de adresă. Această opțiune poate fi utilizată numai cu B<-l>."
+
+#. type: TP
+#: ../man/ps.1:545
+#, no-wrap
+msgid "B<Z>"
+msgstr "B<Z>"
+
+#. type: Plain text
+#: ../man/ps.1:550
+msgid "Add a column of security data. Identical to B<-M> (for SELinux)."
+msgstr "Adaugă o coloană cu date de securitate. Identică cu B<-M> (pentru SELinux)."
+
+#. type: SH
+#: ../man/ps.1:551
+#, no-wrap
+msgid "OUTPUT MODIFIERS"
+msgstr "MODIFICATORI DE IEȘIRE"
+
+#. type: TP
+#: ../man/ps.1:552
+#, no-wrap
+msgid "B<c>"
+msgstr "B<c>"
+
+#. type: Plain text
+#: ../man/ps.1:570
+msgid "Show the true command name. This is derived from the name of the executable file, rather than from the argv value. Command arguments and any modifications to them are thus not shown. This option effectively turns the B<args> format keyword into the B<comm> format keyword; it is useful with the B<-f> format option and with the various BSD-style format options, which all normally display the command arguments. See the B<-f> option, the format keyword B<args>, and the format keyword B<comm>."
+msgstr "Afișați numele adevărat al comenzii. Acesta este derivat din numele fișierului executabil, mai degrabă decât din valoarea I<argv>. Prin urmare, argumentele comenzii și orice modificări aduse acestora nu sunt afișate. Această opțiune transformă efectiv cuvântul cheie de format B<args> în cuvântul cheie de format B<comm>; este utilă cu opțiunea de format B<-f> și cu diferitele opțiuni de format în stil BSD, care toate afișează în mod normal argumentele comenzii. Consultați opțiunea B<-f>, cuvântul cheie de format B<args> și cuvântul cheie de format B<comm>."
+
+#. type: TP
+#: ../man/ps.1:570
+#, no-wrap
+msgid "B<--cols>I<\\ n>"
+msgstr "B<--cols>I<\\ n>"
+
+#. type: Plain text
+#: ../man/ps.1:573 ../man/ps.1:576 ../man/ps.1:724
+msgid "Set screen width."
+msgstr "Stabilește lățimea ecranului."
+
+#. type: TP
+#: ../man/ps.1:573
+#, no-wrap
+msgid "B<--columns>I<\\ n>"
+msgstr "B<--columns>I<\\ n>"
+
+#. type: TP
+#: ../man/ps.1:576
+#, no-wrap
+msgid "B<--cumulative>"
+msgstr "B<--cumulative>"
+
+#. type: Plain text
+#: ../man/ps.1:579
+msgid "Include some dead child process data (as a sum with the parent)."
+msgstr "Include unele date despre proces-copil mort (ca o sumă cu părintele)."
+
+#. type: TP
+#: ../man/ps.1:580
+#, no-wrap
+msgid "B<-D>I<\\ format>"
+msgstr "B<-D>I<\\ format>"
+
+#. type: Plain text
+#: ../man/ps.1:586
+msgid "Set the date format of the B<lstart> field to I<format>. This format is parsed by B<strftime>(3) and should be a maximum of 24 characters to not mis-align columns."
+msgstr "Stabilește formatul de dată al câmpului B<lstart> la I<format>. Acest format este analizat de B<strftime>(3) și ar trebui să aibă maximum 24 de caractere pentru a nu alinia greșit coloanele."
+
+#. type: TP
+#: ../man/ps.1:586
+#, no-wrap
+msgid "B<--date-format>I<\\ format>"
+msgstr "B<--date-format>I<\\ format>"
+
+#. type: Plain text
+#: ../man/ps.1:589
+msgid "Identical to B<-D>."
+msgstr "Identic cu B<-D>."
+
+#. type: TP
+#: ../man/ps.1:589
+#, no-wrap
+msgid "B<e>"
+msgstr "B<e>"
+
+#. type: Plain text
+#: ../man/ps.1:592
+msgid "Show the environment after the command."
+msgstr "Afișează mediul după comandă."
+
+#. type: TP
+#: ../man/ps.1:592
+#, no-wrap
+msgid "B<f>"
+msgstr "B<f>"
+
+#. type: Plain text
+#: ../man/ps.1:595
+msgid "ASCII art process hierarchy (forest)."
+msgstr "Afișează ierarhia (arborescența) proceselor sub formatul unui desen ASCII."
+
+#. type: TP
+#: ../man/ps.1:595
+#, no-wrap
+msgid "B<--forest>"
+msgstr "B<--forest>"
+
+#. type: Plain text
+#: ../man/ps.1:598
+msgid "ASCII art process tree."
+msgstr "Afișează arborele de procese în format de desen ASCII."
+
+#. type: TP
+#: ../man/ps.1:598
+#, no-wrap
+msgid "B<h>"
+msgstr "B<h>"
+
+#. type: Plain text
+#: ../man/ps.1:616
+msgid "No header. (or, one header per screen in the BSD personality). The B<h> option is problematic. Standard BSD B<ps> uses this option to print a header on each page of output, but older Linux B<ps> uses this option to totally disable the header. This version of B<ps> follows the Linux usage of not printing the header unless the BSD personality has been selected, in which case it prints a header on each page of output. Regardless of the current personality, you can use the long options B<--headers> and B<--no-headers> to enable printing headers each page or disable headers entirely, respectively."
+msgstr "Fără antet (sau, un antet pe ecran în personalitatea BSD). Opțiunea B<h> este problematică. B<ps> standard de BSD utilizează această opțiune pentru a afișa un antet pe fiecare pagină de ieșire, dar B<ps> în standardul mai vechi Linux folosește această opțiune pentru a dezactiva total antetul. Această versiune de B<ps> urmează utilizarea Linux de a nu afișa antetul decât dacă personalitatea BSD a fost selectată, caz în care afișează un antet pe fiecare pagină de ieșire. Indiferent de personalitatea actuală, puteți folosi opțiunile lungi B<--headers> și B<--no-headers> pentru a activa afișarea antetelor pe fiecare pagină sau, respectiv, pentru a dezactiva integral anteturile."
+
+#. type: TP
+#: ../man/ps.1:616
+#, no-wrap
+msgid "B<-H>"
+msgstr "B<-H>"
+
+#. type: Plain text
+#: ../man/ps.1:619
+msgid "Show process hierarchy (forest)."
+msgstr "Afișează ierarhia (arborescența) proceselor."
+
+#. type: TP
+#: ../man/ps.1:619
+#, no-wrap
+msgid "B<--headers>"
+msgstr "B<--headers>"
+
+#. type: Plain text
+#: ../man/ps.1:622
+msgid "Repeat header lines, one per page of output."
+msgstr "Repetă liniile de antet, câte una pe pagină la ieșire."
+
+#. type: TP
+#: ../man/ps.1:622
+#, no-wrap
+msgid "B<k>I<\\ spec>"
+msgstr "B<k>I<\\ spec>"
+
+#. type: Plain text
+#: ../man/ps.1:634
+msgid "Specify sorting order. Sorting syntax is [B<+>|B<->]I<key\\/.RB [,[ + | - ].IR key [,...]].> Choose a multi-letter key from the B<STANDARD FORMAT SPECIFIERS> section. The \"+\" is optional since default direction is increasing numerical or lexicographic order. Identical to B<--sort>."
+msgstr "Specifică ordinea de sortare. Sintaxa de sortare este [B<+>|B<->]I<cheie\\/.RB [,[ + | - ].IR cheie [,...]].> Alegeți o cheie cu mai multe litere din secțiunea B<SPECIFICATORI DE FORMAT STANDARD>. „+†este opțional, deoarece direcția implicită este în creștere în ordine numerică sau lexicografică. Identică cu B<--sort>."
+
+#. type: Plain text
+#: ../man/ps.1:637
+msgid "Examples:"
+msgstr "Exemple:"
+
+#. type: Plain text
+#: ../man/ps.1:639
+msgid "B<ps jaxkuid,-ppid,+pid>"
+msgstr "B<ps jaxkuid,-ppid,+pid>"
+
+#. type: Plain text
+#: ../man/ps.1:641
+msgid "B<ps axk comm o comm,args>"
+msgstr "B<ps axk comm o comm,args>"
+
+#. type: Plain text
+#: ../man/ps.1:643
+msgid "B<ps kstart_time -ef>"
+msgstr "B<ps kstart_time -ef>"
+
+#. type: TP
+#: ../man/ps.1:644
+#, no-wrap
+msgid "B<--lines>I<\\ n>"
+msgstr "B<--lines>I<\\ n>"
+
+#. type: Plain text
+#: ../man/ps.1:647 ../man/ps.1:691
+msgid "Set screen height."
+msgstr "Stabilește înălțimea ecranului."
+
+#. type: TP
+#: ../man/ps.1:647
+#, no-wrap
+msgid "B<n>"
+msgstr "B<n>"
+
+#. type: Plain text
+#: ../man/ps.1:650
+msgid "Numeric output for WCHAN and USER (including all types of UID and GID)."
+msgstr "Ieșire numerică pentru WCHAN și USER (inclusiv toate tipurile de UID și GID)."
+
+#. type: TP
+#: ../man/ps.1:650
+#, no-wrap
+msgid "B<--no-headers>"
+msgstr "B<--no-headers>"
+
+#. type: Plain text
+#: ../man/ps.1:655
+msgid "Print no header line at all. B<--no-heading> is an alias for this option."
+msgstr "Nu afișează nicio linie de antet. B<--no-heading> este un alias pentru această opțiune."
+
+#. type: TP
+#: ../man/ps.1:655
+#, no-wrap
+msgid "B<O>I<\\ order>"
+msgstr "B<O>I<\\ order>"
+
+#. type: Plain text
+#: ../man/ps.1:669
+msgid "Sorting order (overloaded). The BSD B<O> option can act like B<-O> (user-defined output format with some common fields predefined) or can be used to specify sort order. Heuristics are used to determine the behavior of this option. To ensure that the desired behavior is obtained (sorting or formatting), specify the option in some other way (e.g. with B<-O> or B<--sort>)."
+msgstr "Ordinea de sortare (supraîncărcată). Opțiunea BSD B<O> poate acționa ca B<-O> (format de ieșire definit de utilizator cu unele câmpuri comune predefinite) sau poate fi folosită pentru a specifica ordinea de sortare. Euristicele sunt folosite pentru a determina comportamentul acestei opțiuni. Pentru a vă asigura că se obține comportamentul dorit (sortare sau formatare), specificați opțiunea într-un alt mod (de exemplu, cu B<-O> sau B<--sort>)."
+
+#. type: Plain text
+#: ../man/ps.1:688
+msgid "For sorting, obsolete BSD B<O> option syntax is B<O>[B<+>|B<->]I<k1>[,[B<+>|B<->]I<k2>[,...]]. It orders the processes listing according to the multilevel sort specified by the sequence of one-letter short keys I<k1>,I<k2>, ...\" described in the B<OBSOLETE SORT KEYS> section below. The\\ \"+\" is currently optional, merely re-iterating the default direction on a key, but may help to distinguish an B<O> sort from an B<O> format. The \"-\" reverses direction only on the key it precedes."
+msgstr "Pentru sortare, sintaxa învechită a opțiunii BSD B<O> este B<O>[B<+>|B<->]I<k1>[,[B<+>|B<->]I<k2>[, ...]]. Acesta ordonează listarea proceselor în funcție de sortarea pe mai multe niveluri specificată de secvența cheilor scurte cu o literă I<k1>,I<k2>, ... descrisă în secțiunea B<CHEI DE SORTARE OBSOLETE> de mai jos. În prezent, „+†este opțional, doar reiterând direcția implicită pe o cheie, dar poate ajuta la distingerea unui format B<O> de un format B<O>. „-†inversează direcția doar pentru cheia pe care o precede."
+
+#. type: TP
+#: ../man/ps.1:688
+#, no-wrap
+msgid "B<--rows>I<\\ n>"
+msgstr "B<--rows>I<\\ n>"
+
+#. type: TP
+#: ../man/ps.1:691
+#, no-wrap
+msgid "B<S>"
+msgstr "B<S>"
+
+#. type: Plain text
+#: ../man/ps.1:696
+msgid "Sum up some information, such as CPU usage, from dead child processes into their parent. This is useful for examining a system where a parent process repeatedly forks off short-lived children to do work."
+msgstr "Rezumă unele informații, cum ar fi utilizarea procesorului, de la procesele-copil moarte în părintele lor. Acest lucru este util pentru examinarea unui sistem în care un proces parental generează în mod repetat procese-copil de scurtă durată pentru a-și îndeplini treaba."
+
+#. type: TP
+#: ../man/ps.1:696
+#, no-wrap
+msgid "B<--sort>I<\\ spec>"
+msgstr "B<--sort>I<\\ spec>"
+
+#. type: Plain text
+#: ../man/ps.1:710
+msgid "Specify sorting order. Sorting syntax is [I<+>|I<->]I<key>[,[B<+>|B<->]I<key>[,...]]. Choose a multi-letter key from the B<STANDARD FORMAT SPECIFIERS> section. The \"+\" is optional since default direction is increasing numerical or lexicographic order. Identical to B<k>. For example: B<ps jax --sort=\\:uid,\\:-ppid,\\:+pid>"
+msgstr "Specifică ordinea de sortare. Sintaxa de sortare este [I<+>|I<->]I<cheie>[,[B<+>|B<->]I<cheie>[,...]]. Alegeți o cheie cu mai multe litere din secțiunea B<SPECIFICATORI DE FORMAT STANDARD>. „+†este opțional, deoarece direcția implicită este în creștere în ordinea numerică sau lexicografică. Identic cu B<k>. De exemplu: B<ps jax --sort=\\:uid,\\:-ppid,\\:+pid>"
+
+#. type: TP
+#: ../man/ps.1:710
+#, no-wrap
+msgid "B<--signames>"
+msgstr "B<--signames>"
+
+#. type: Plain text
+#: ../man/ps.1:715
+msgid "Show signal masks using abbreviated signal names and expands the collumn. If the column width cannot show all signals, the column will end with a plus \"I<+>\". Columns with only a hyphen have no signals."
+msgstr "AfiÈ™ează măștile de semnal folosind nume de semnal prescurtate È™i extinde coloana. ÃŽn cazul în care lățimea coloanei nu poate afiÈ™a toate semnalele, coloana se va termina cu un plus „I<+>â€. Coloanele care au doar o liniuță, nu au semnale."
+
+#. type: TP
+#: ../man/ps.1:715
+#, no-wrap
+msgid "B<w>"
+msgstr "B<w>"
+
+#. type: Plain text
+#: ../man/ps.1:718 ../man/ps.1:721
+msgid "Wide output. Use this option twice for unlimited width."
+msgstr "Ieșire lungă. Utilizați această opțiune de două ori pentru o lățime nelimitată."
+
+#. type: TP
+#: ../man/ps.1:721
+#, no-wrap
+msgid "B<--width>I<\\ n>"
+msgstr "B<--width>I<\\ n>"
+
+#. type: SH
+#: ../man/ps.1:725
+#, no-wrap
+msgid "THREAD DISPLAY"
+msgstr "AFIȘAREA PROCESELOR FIRELOR DE EXECUȚIE"
+
+#. type: TP
+#: ../man/ps.1:726
+#, no-wrap
+msgid "B<H>"
+msgstr "B<H>"
+
+#. type: Plain text
+#: ../man/ps.1:729
+msgid "Show threads as if they were processes."
+msgstr "Afișează firele de execuție ca și cum ar fi procese."
+
+#. type: TP
+#: ../man/ps.1:729
+#, no-wrap
+msgid "B<-L>"
+msgstr "B<-L>"
+
+#. type: Plain text
+#: ../man/ps.1:732
+msgid "Show threads, possibly with LWP and NLWP columns."
+msgstr "Afișează firele de execuție, eventual cu coloane LWP și NLWP."
+
+#. type: TP
+#: ../man/ps.1:732
+#, no-wrap
+msgid "B<m>"
+msgstr "B<m>"
+
+#. type: Plain text
+#: ../man/ps.1:735 ../man/ps.1:738
+msgid "Show threads after processes."
+msgstr "Afișează firele de execuție după procese."
+
+#. type: TP
+#: ../man/ps.1:735
+#, no-wrap
+msgid "B<-m>"
+msgstr "B<-m>"
+
+#. type: TP
+#: ../man/ps.1:738
+#, no-wrap
+msgid "B<-T>"
+msgstr "B<-T>"
+
+#. type: Plain text
+#: ../man/ps.1:741
+msgid "Show threads, possibly with SPID column."
+msgstr "Afișează firele de execuție, eventual cu coloana SPID."
+
+#. type: SH
+#: ../man/ps.1:741
+#, no-wrap
+msgid "OTHER INFORMATION"
+msgstr "ALTE INFORMAÈšII"
+
+#. type: TP
+#: ../man/ps.1:742
+#, no-wrap
+msgid "B<--help>I<\\ section>"
+msgstr "B<--help>I<\\ secțiunea>"
+
+#. type: Plain text
+#: ../man/ps.1:753
+msgid "Print a help message. The I<section> argument can be one of I<s>imple, I<l>ist, I<o>utput, I<t>hreads, I<m>isc, or I<a>ll. The argument can be shortened to one of the underlined letters as in: s\\^|\\^l\\^|\\^o\\^|\\^t\\^|\\^m\\^|\\^a."
+msgstr "Afișează un mesaj de ajutor. Argumentul I<secțiune> poate fi unul dintre I<s>imple (simplu), I<l>ist (listă), I<o>utput (ieșire), I<t>hreads (fire de execuție), I<m>isc (diverse) sau I<a>ll (toate). Argumentul poate fi scurtat la una dintre literele subliniate ca în: s\\^|\\^l\\^|\\^o\\^|\\^t\\^|\\^m\\^|\\^a."
+
+#. type: TP
+#: ../man/ps.1:753
+#, no-wrap
+msgid "B<--info>"
+msgstr "B<--info>"
+
+#. type: Plain text
+#: ../man/ps.1:756
+msgid "Print debugging info."
+msgstr "Afișează informațiile de depanare."
+
+#. type: TP
+#: ../man/ps.1:756
+#, no-wrap
+msgid "B<L>"
+msgstr "B<L>"
+
+#. type: Plain text
+#: ../man/ps.1:759
+msgid "List all format specifiers."
+msgstr "Listează toți specificatorii de format."
+
+#. type: TP
+#: ../man/ps.1:759
+#, no-wrap
+msgid "B<V>"
+msgstr "B<V>"
+
+#. type: Plain text
+#: ../man/ps.1:762 ../man/ps.1:765 ../man/ps.1:768
+msgid "Print the procps-ng version."
+msgstr "Afișează versiunea procps-ng."
+
+#. type: TP
+#: ../man/ps.1:762
+#, no-wrap
+msgid "B<-V>"
+msgstr "B<-V>"
+
+#. type: TP
+#: ../man/ps.1:765
+#, no-wrap
+msgid "B<--version>"
+msgstr "B<--version>"
+
+#. type: Plain text
+#: ../man/ps.1:777
+msgid "This B<ps> works by reading the virtual files in /proc. This B<ps> does not need to be setuid kmem or have any privileges to run. Do not give this B<ps> any special permissions."
+msgstr "Acest B<ps> funcționează prin citirea fișierelor virtuale din I</proc>. Acest B<ps> nu trebuie să aibă bitul setuid kmem activat, sau să aibă privilegii pentru a rula. Nu acordați acestui B<ps> nicio permisiune specială."
+
+#. type: Plain text
+#: ../man/ps.1:783
+msgid "CPU usage is currently expressed as the percentage of time spent running during the entire lifetime of a process. This is not ideal, and\\ it does not conform to the standards that B<ps> otherwise conforms to. CPU usage is unlikely to add up to exactly 100%."
+msgstr "Utilizarea procesorului este exprimată în prezent ca procentul de timp petrecut rulând pe întreaga durată de viață a unui proces. Acest lucru nu este ideal și nici nu este conform standardelor pe care B<ps> le respectă dealtfel. Este puțin probabil ca utilizarea procesorului să ajungă la exact 100%."
+
+#. type: Plain text
+#: ../man/ps.1:788
+msgid "The SIZE and RSS fields don't count some parts of a process including the page tables, kernel stack, struct thread_info, and struct task_struct. This is usually at least 20\\ KiB of memory that is always resident. SIZE is the virtual size of the process (code+\\:data+\\:stack)."
+msgstr "Câmpurile SIZE și RSS nu contorizează unele părți ale unui proces, inclusiv tabelele de pagini, stiva de nucleu, structura thread_info și structura task_struct. Aceasta este de obicei cel puțin 20 Kio de memorie care este întotdeauna rezidentă. SIZE este dimensiunea virtuală a procesului (cod+\\:date+\\:stivă)."
+
+#. type: Plain text
+#: ../man/ps.1:794
+msgid "Processes marked E<lt>defunctE<gt> are dead processes (so-called \"zombies\") that remain because their parent has not destroyed them properly. These processes will be destroyed by I<init>(8) if the parent process exits."
+msgstr "Procesele marcate E<lt>defunctE<gt> sunt procese moarte (aÈ™a-numitele „zombiâ€) care rămân deoarece părintele lor nu le-a distrus corespunzător. Aceste procese vor fi distruse de procesul I<init>(8) dacă procesul părinte iese."
+
+#. type: Plain text
+#: ../man/ps.1:798
+msgid "If the length of the username is greater than the width of the display column, the username will be truncated. See the B<-o> and B<-O> formatting options to customize length."
+msgstr "Dacă lungimea numelui de utilizator este mai mare decât lungimea coloanei de afișare, numele de utilizator va fi trunchiat. Consultați opțiunile de formatare B<-o> și B<-O> pentru a personaliza lungimea."
+
+#. type: Plain text
+#: ../man/ps.1:810
+msgid "Commands options such as B<ps -aux> are not recommended as it is a confusion of two different standards. According to the POSIX and UNIX standards, the above command asks to display all processes with a TTY (generally the commands users are running) plus all processes owned by a user named I<x>. If that user doesn't exist, then B<ps> will assume you really meant \"B<ps> I<aux>\"."
+msgstr "Opțiunile de comenzi precum B<ps -aux> nu sunt recomandate deoarece este o confuzie a două standarde diferite. Conform standardelor POSIX și UNIX, comanda de mai sus solicită afișarea tuturor proceselor cu un TTY (în general, comenzile pe care utilizatorii le execută) plus toate procesele deținute de un utilizator numit I<x>. Dacă acel utilizator nu există, atunci B<ps> va presupune că de fapt ați vrut să spuneți «B<ps> I<aux>»."
+
+#. type: SH
+#: ../man/ps.1:810
+#, no-wrap
+msgid "PROCESS FLAGS"
+msgstr "FANIOANE DE PROCESE"
+
+#. type: Plain text
+#: ../man/ps.1:815
+msgid "The sum of these values is displayed in the \"F\" column, which is provided by the B<flags> output specifier:"
+msgstr "Suma acestor valori este afiÈ™ată în coloana „Fâ€, care este furnizată de specificatorul de ieÈ™ire B<fanioane>:"
+
+#. type: Plain text
+#: ../man/ps.1:821
+msgid "forked but didn't exec"
+msgstr "bifurcat, dar nu s-a executat"
+
+#. type: IP
+#: ../man/ps.1:821 ../man/ps.1:2088
+#, no-wrap
+msgid "4"
+msgstr "4"
+
+#. type: Plain text
+#: ../man/ps.1:824
+msgid "used super-user privileges"
+msgstr "utilizat cu privilegii de superutilizator"
+
+#. type: SH
+#: ../man/ps.1:826
+#, no-wrap
+msgid "PROCESS STATE CODES"
+msgstr "CODURI DE STARE A PROCESULUI"
+
+#. type: Plain text
+#: ../man/ps.1:831
+msgid "Here are the different values that the B<s>, B<stat> and B<state> output specifiers (header \"STAT\" or \"S\") will display to describe the state of a process:"
+msgstr "Iată diferitele valori pe care specificatorii de ieÈ™ire B<s>, B<stat> È™i B<state> (antetul „STAT†sau „Sâ€) le vor afiÈ™a pentru a descrie starea unui proces:"
+
+#. type: TP
+#: ../man/ps.1:834
+#, no-wrap
+msgid "D"
+msgstr "D"
+
+#. type: Plain text
+#: ../man/ps.1:837
+msgid "uninterruptible sleep (usually IO)"
+msgstr "somn neîntrerupt (de regulă In/Ieș)"
+
+#. type: TP
+#: ../man/ps.1:837
+#, no-wrap
+msgid "I"
+msgstr "I"
+
+#. type: Plain text
+#: ../man/ps.1:840
+msgid "Idle kernel thread"
+msgstr "Fir de execuție al nucleului inactiv"
+
+#. type: tbl table
+#: ../man/ps.1:840 ../man/ps.1:925
+#, no-wrap
+msgid "R"
+msgstr "R"
+
+#. type: Plain text
+#: ../man/ps.1:843
+msgid "running or runnable (on run queue)"
+msgstr "rulează sau se poate rula (în coada de rulare)"
+
+#. type: tbl table
+#: ../man/ps.1:843 ../man/ps.1:927 ../man/ps.1:1631 ../man/ps.1:1753
+#, no-wrap
+msgid "S"
+msgstr "S"
+
+#. type: Plain text
+#: ../man/ps.1:846
+msgid "interruptible sleep (waiting for an event to complete)"
+msgstr "somn întreruptibil (așteaptă finalizarea unui eveniment)"
+
+#. type: tbl table
+#: ../man/ps.1:846 ../man/ps.1:929
+#, no-wrap
+msgid "T"
+msgstr "T"
+
+#. type: Plain text
+#: ../man/ps.1:849
+msgid "stopped by job control signal"
+msgstr "oprit de semnalul de control al lucrării"
+
+#. type: tbl table
+#: ../man/ps.1:849 ../man/ps.1:928
+#, no-wrap
+msgid "t"
+msgstr "t"
+
+#. type: Plain text
+#: ../man/ps.1:852
+msgid "stopped by debugger during the tracing"
+msgstr "oprit de depanator în timpul urmăririi"
+
+#. type: Plain text
+#: ../man/ps.1:855
+msgid "paging (not valid since the 2.6.xx kernel)"
+msgstr "paginare (nu este valabilă de la nucleul 2.6.xx)"
+
+#. type: TP
+#: ../man/ps.1:855
+#, no-wrap
+msgid "X"
+msgstr "X"
+
+#. type: Plain text
+#: ../man/ps.1:858
+msgid "dead (should never be seen)"
+msgstr "mort (nu ar trebui să fie văzut niciodată)"
+
+#. type: TP
+#: ../man/ps.1:858
+#, no-wrap
+msgid "Z"
+msgstr "Z"
+
+#. type: Plain text
+#: ../man/ps.1:861
+msgid "defunct (\"zombie\") process, terminated but not reaped by its parent"
+msgstr "proces defunct (\"zombie\"), încheiat, dar nerecules de părintele său"
+
+#. type: Plain text
+#: ../man/ps.1:867
+msgid "For BSD formats and when the B<stat> keyword is used, additional characters may be displayed:"
+msgstr "Pentru formatele BSD și când este utilizat cuvântul cheie B<stat>, pot fi afișate caractere suplimentare:"
+
+#. type: TP
+#: ../man/ps.1:870
+#, no-wrap
+msgid "E<lt>"
+msgstr "E<lt>"
+
+#. type: Plain text
+#: ../man/ps.1:873
+msgid "high-priority (not nice to other users)"
+msgstr "cu prioritate ridicată (nu este „nice†pentru alți utilizatori)"
+
+#. type: tbl table
+#: ../man/ps.1:873 ../man/ps.1:920
+#, no-wrap
+msgid "N"
+msgstr "N"
+
+#. type: Plain text
+#: ../man/ps.1:876
+msgid "low-priority (nice to other users)"
+msgstr "cu prioritate scăzută (este „nice†pentru alți utilizatori)"
+
+#. type: TP
+#: ../man/ps.1:876
+#, no-wrap
+msgid "L"
+msgstr "L"
+
+#. type: Plain text
+#: ../man/ps.1:879
+msgid "has pages locked into memory (for real-time and custom IO)"
+msgstr "are pagini blocate în memorie (pentru Intrări/Ieșiri în timp real și personalizate)"
+
+#. type: Plain text
+#: ../man/ps.1:882
+msgid "is a session leader"
+msgstr "este un lider de sesiune"
+
+#. type: Plain text
+#: ../man/ps.1:885
+msgid "is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)"
+msgstr "are mai multe fire de execuție (folosind CLONE_THREAD, așa cum fac pthreads(firele de execuție posix) NPTL)"
+
+#. type: TP
+#: ../man/ps.1:885
+#, no-wrap
+msgid "+"
+msgstr "+"
+
+#. type: Plain text
+#: ../man/ps.1:888
+msgid "is in the foreground process group"
+msgstr "se află în grupul de procese din primplan"
+
+#. type: SH
+#: ../man/ps.1:890
+#, no-wrap
+msgid "OBSOLETE SORT KEYS"
+msgstr "CHEI DE SORTARE OBSOLETE"
+
+#. type: Plain text
+#: ../man/ps.1:906
+msgid "These keys are used by the BSD B<O> option (when it is used for sorting). The GNU B<--sort> option doesn't use these keys, but the specifiers described below in the B<STANDARD FORMAT SPECIFIERS> section. Note that the values used in sorting are the internal values B<ps> uses and not the \"cooked\" values used in some of the output format fields (e.g. sorting on tty will sort into device number, not according to the terminal name displayed). Pipe B<ps> output into the B<sort>(1) command if you want to sort the cooked values."
+msgstr "Aceste chei sunt folosite de opÈ›iunea BSD B<O> (când este folosită pentru sortare). OpÈ›iunea GNU B<--sort> nu foloseÈ™te aceste chei, ci specificatorii descriÈ™i mai jos în secÈ›iunea B<SPECIFICATORI DE FORMAT STANDARD>. ReÈ›ineÈ›i că valorile utilizate în sortare sunt valorile interne pe care le utilizează B<ps> È™i nu valorile „gătite†utilizate în unele dintre câmpurile formatului de ieÈ™ire (de exemplu, sortarea pe tty va sorta după numărul dispozitivului, nu în funcÈ›ie de numele terminalului afiÈ™at) . TransmiteÈ›i ieÈ™irea B<ps> la comanda B<sort>(1) utilizând o conductă dacă doriÈ›i să sortaÈ›i valorile „gătiteâ€."
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, no-wrap
+msgid "B<KEY>"
+msgstr "B<CHEIE>"
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, no-wrap
+msgid "B<LONG>"
+msgstr "B<LUNG>"
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, no-wrap
+msgid "B<DESCRIPTION>"
+msgstr "B<DESCRIERE>"
+
+#. type: tbl table
+#: ../man/ps.1:909 ../man/ps.1:1161
+#, no-wrap
+msgid "cmd"
+msgstr "cmd"
+
+#. type: tbl table
+#: ../man/ps.1:909
+#, no-wrap
+msgid "simple name of executable"
+msgstr "numele fișierului executabil"
+
+#. type: tbl table
+#: ../man/ps.1:910 ../man/ps.1:1081
+#, no-wrap
+msgid "C"
+msgstr "C"
+
+#. type: tbl table
+#: ../man/ps.1:910 ../man/ps.1:952 ../man/ps.1:1481
+#, no-wrap
+msgid "pcpu"
+msgstr "pcpu"
+
+#. type: tbl table
+#: ../man/ps.1:910
+#, no-wrap
+msgid "cpu utilization"
+msgstr "utilizarea procesorului"
+
+#. type: tbl table
+#: ../man/ps.1:911 ../man/ps.1:1300
+#, no-wrap
+msgid "f"
+msgstr "f"
+
+#. type: tbl table
+#: ../man/ps.1:911 ../man/ps.1:1326
+#, no-wrap
+msgid "flags"
+msgstr "fanioane"
+
+#. type: tbl table
+#: ../man/ps.1:911
+#, no-wrap
+msgid "flags as in long format F field"
+msgstr "fanioane ca în câmpul F de format lung"
+
+#. type: tbl table
+#: ../man/ps.1:912
+#, no-wrap
+msgid "g"
+msgstr "g"
+
+#. type: tbl table
+#: ../man/ps.1:912 ../man/ps.1:1508
+#, no-wrap
+msgid "pgrp"
+msgstr "pgrp"
+
+#. type: tbl table
+#: ../man/ps.1:912
+#, no-wrap
+msgid "process group ID"
+msgstr "identificatorul grupului de procese"
+
+#. type: tbl table
+#: ../man/ps.1:913
+#, no-wrap
+msgid "G"
+msgstr "G"
+
+#. type: tbl table
+#: ../man/ps.1:913 ../man/ps.1:1848
+#, no-wrap
+msgid "tpgid"
+msgstr "tpgid"
+
+#. type: tbl table
+#: ../man/ps.1:913
+#, no-wrap
+msgid "controlling tty process group ID"
+msgstr "identificatorul grupului de procese ce controlează tty"
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "j"
+msgstr "j"
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "cutime"
+msgstr "cutime"
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "cumulative user time"
+msgstr "timpul cumulat al utilizatorului"
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "J"
+msgstr "J"
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "cstime"
+msgstr "cstime"
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "cumulative system time"
+msgstr "timpul cumulat al sistemului"
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "k"
+msgstr "k"
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "utime"
+msgstr "utime"
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "user time"
+msgstr "timpul utilizatorului"
+
+#. type: tbl table
+#: ../man/ps.1:917
+#, no-wrap
+msgid "m"
+msgstr "m"
+
+#. type: tbl table
+#: ../man/ps.1:917 ../man/ps.1:1419
+#, no-wrap
+msgid "min_flt"
+msgstr "min_flt"
+
+#. type: tbl table
+#: ../man/ps.1:917
+#, no-wrap
+msgid "number of minor page faults"
+msgstr "numărul de erori de pagină minore"
+
+#. type: tbl table
+#: ../man/ps.1:918
+#, no-wrap
+msgid "M"
+msgstr "M"
+
+#. type: tbl table
+#: ../man/ps.1:918 ../man/ps.1:1415
+#, no-wrap
+msgid "maj_flt"
+msgstr "maj_flt"
+
+#. type: tbl table
+#: ../man/ps.1:918
+#, no-wrap
+msgid "number of major page faults"
+msgstr "numărul de erori de pagină majore"
+
+#. type: tbl table
+#: ../man/ps.1:919
+#, no-wrap
+msgid "cmin_flt"
+msgstr "cmin_flt"
+
+#. type: tbl table
+#: ../man/ps.1:919
+#, no-wrap
+msgid "cumulative minor page faults"
+msgstr "erori de pagină minore cumulate"
+
+#. type: tbl table
+#: ../man/ps.1:920
+#, no-wrap
+msgid "cmaj_flt"
+msgstr "cmaj_flt"
+
+#. type: tbl table
+#: ../man/ps.1:920
+#, no-wrap
+msgid "cumulative major page faults"
+msgstr "erori de pagină majore cumulate"
+
+#. type: tbl table
+#: ../man/ps.1:921
+#, no-wrap
+msgid "session"
+msgstr "sesiune"
+
+#. type: tbl table
+#: ../man/ps.1:921
+#, no-wrap
+msgid "session ID"
+msgstr "identificatorul sesiunii (sid)"
+
+#. type: tbl table
+#: ../man/ps.1:922 ../man/ps.1:960 ../man/ps.1:1515
+#, no-wrap
+msgid "pid"
+msgstr "pid"
+
+#. type: tbl table
+#: ../man/ps.1:922
+#, no-wrap
+msgid "process ID"
+msgstr "identificatorul procesului (pid)"
+
+#. type: tbl table
+#: ../man/ps.1:923 ../man/ps.1:1657
+#, no-wrap
+msgid "P"
+msgstr "P"
+
+#. type: tbl table
+#: ../man/ps.1:923 ../man/ps.1:954 ../man/ps.1:1559
+#, no-wrap
+msgid "ppid"
+msgstr "ppid"
+
+#. type: tbl table
+#: ../man/ps.1:923
+#, no-wrap
+msgid "parent process ID"
+msgstr "identificatorul procesului părinte (ppid)"
+
+#. type: tbl table
+#: ../man/ps.1:924
+#, no-wrap
+msgid "r"
+msgstr "r"
+
+#. type: tbl table
+#: ../man/ps.1:924 ../man/ps.1:1598
+#, no-wrap
+msgid "rss"
+msgstr "rss"
+
+#. type: tbl table
+#: ../man/ps.1:924
+#, no-wrap
+msgid "resident set size"
+msgstr "dimensiunea memoriei rezidente"
+
+#. type: tbl table
+#: ../man/ps.1:925
+#, no-wrap
+msgid "resident"
+msgstr "resident"
+
+#. type: tbl table
+#: ../man/ps.1:925
+#, no-wrap
+msgid "resident pages"
+msgstr "pagini din memoria rezidentă"
+
+#. type: tbl table
+#: ../man/ps.1:926 ../man/ps.1:1707
+#, no-wrap
+msgid "size"
+msgstr "size"
+
+#. type: tbl table
+#: ../man/ps.1:926
+#, no-wrap
+msgid "memory size in kilobytes"
+msgstr "dimensiunea memoriei în kiloocteți"
+
+#. type: tbl table
+#: ../man/ps.1:927
+#, no-wrap
+msgid "share"
+msgstr "share"
+
+#. type: tbl table
+#: ../man/ps.1:927
+#, no-wrap
+msgid "amount of shared pages"
+msgstr "numărul de pagini partajate"
+
+#. type: tbl table
+#: ../man/ps.1:928 ../man/ps.1:965 ../man/ps.1:1862
+#, no-wrap
+msgid "tty"
+msgstr "tty"
+
+#. type: tbl table
+#: ../man/ps.1:928
+#, no-wrap
+msgid "the device number of the controlling tty"
+msgstr "numărul dispozitivului de control al terminalului"
+
+#. type: tbl table
+#: ../man/ps.1:929 ../man/ps.1:1736
+#, no-wrap
+msgid "start_time"
+msgstr "start_time"
+
+#. type: tbl table
+#: ../man/ps.1:929
+#, no-wrap
+msgid "time process was started"
+msgstr "momentul în care a început procesul"
+
+#. type: tbl table
+#: ../man/ps.1:930
+#, no-wrap
+msgid "U"
+msgstr "U"
+
+#. type: tbl table
+#: ../man/ps.1:930 ../man/ps.1:1881
+#, no-wrap
+msgid "uid"
+msgstr "uid"
+
+#. type: tbl table
+#: ../man/ps.1:930
+#, no-wrap
+msgid "user ID number"
+msgstr "numărul ID al utilizatorului"
+
+#. type: tbl table
+#: ../man/ps.1:931 ../man/ps.1:955 ../man/ps.1:1900
+#, no-wrap
+msgid "user"
+msgstr "utilizator"
+
+#. type: tbl table
+#: ../man/ps.1:931
+#, no-wrap
+msgid "user name"
+msgstr "numele utilizatorului"
+
+#. type: tbl table
+#: ../man/ps.1:932 ../man/ps.1:1929
+#, no-wrap
+msgid "vsize"
+msgstr "vsize"
+
+#. type: tbl table
+#: ../man/ps.1:932
+#, no-wrap
+msgid "total VM size in KiB"
+msgstr "dimensiunea totală a memoriei virtuale în Kio"
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "y"
+msgstr "y"
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "priority"
+msgstr "priority"
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "kernel scheduling priority"
+msgstr "prioritatea de planificare a nucleului"
+
+#. type: SH
+#: ../man/ps.1:936
+#, no-wrap
+msgid "AIX FORMAT DESCRIPTORS"
+msgstr "DESCRIPTORI DE FORMAT AIX"
+
+#. type: Plain text
+#: ../man/ps.1:949
+msgid "This B<ps> supports AIX format descriptors, which work somewhat like the formatting codes of I<printf>(1) and I<printf>(3). For example, the normal default output can be produced with this: B<ps -eo \"%p %y %x %c\">. The B<NORMAL> codes are described in the next section."
+msgstr "Acest B<ps> acceptă descriptori de format AIX, care funcționează oarecum precum codurile de formatare ale I<printf>(1) și I<printf>(3). De exemplu, ieșirea implicită normală poate fi produsă cu: B<ps -eo \"%p %y %x %c\">.. Codurile B<NORMAL> sunt descrise în secțiunea următoare."
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<CODE>"
+msgstr "B<COD>"
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<NORMAL>"
+msgstr "B<NORMAL>"
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<HEADER>"
+msgstr "B<TITLU>"
+
+#. type: tbl table
+#: ../man/ps.1:952
+#, no-wrap
+msgid "%C"
+msgstr "%C"
+
+#. type: tbl table
+#: ../man/ps.1:952 ../man/ps.1:1004 ../man/ps.1:1481
+#, no-wrap
+msgid "%CPU"
+msgstr "%CPU"
+
+#. type: tbl table
+#: ../man/ps.1:953
+#, no-wrap
+msgid "%G"
+msgstr "%G"
+
+#. type: tbl table
+#: ../man/ps.1:953 ../man/ps.1:1355
+#, no-wrap
+msgid "group"
+msgstr "group"
+
+#. type: tbl table
+#: ../man/ps.1:953 ../man/ps.1:1355
+#, no-wrap
+msgid "GROUP"
+msgstr "GROUP"
+
+#. type: tbl table
+#: ../man/ps.1:954
+#, no-wrap
+msgid "%P"
+msgstr "%P"
+
+#. type: tbl table
+#: ../man/ps.1:954 ../man/ps.1:1559
+#, no-wrap
+msgid "PPID"
+msgstr "PPID"
+
+#. type: tbl table
+#: ../man/ps.1:955
+#, no-wrap
+msgid "%U"
+msgstr "%U"
+
+#. type: tbl table
+#: ../man/ps.1:955 ../man/ps.1:1888 ../man/ps.1:1900
+#, no-wrap
+msgid "USER"
+msgstr "USER"
+
+#. type: tbl table
+#: ../man/ps.1:956
+#, no-wrap
+msgid "%a"
+msgstr "%a"
+
+#. type: tbl table
+#: ../man/ps.1:956 ../man/ps.1:1027
+#, no-wrap
+msgid "args"
+msgstr "args"
+
+#. type: tbl table
+#: ../man/ps.1:956 ../man/ps.1:957 ../man/ps.1:1027 ../man/ps.1:1168
+#: ../man/ps.1:1196 ../man/ps.1:1333 ../man/ps.1:1874
+#, no-wrap
+msgid "COMMAND"
+msgstr "COMANDA"
+
+#. type: tbl table
+#: ../man/ps.1:957
+#, no-wrap
+msgid "%c"
+msgstr "%c"
+
+#. type: tbl table
+#: ../man/ps.1:957 ../man/ps.1:1168
+#, no-wrap
+msgid "comm"
+msgstr "comm"
+
+#. type: tbl table
+#: ../man/ps.1:958
+#, no-wrap
+msgid "%g"
+msgstr "%g"
+
+#. type: tbl table
+#: ../man/ps.1:958 ../man/ps.1:1588
+#, no-wrap
+msgid "rgroup"
+msgstr "rgroup"
+
+#. type: tbl table
+#: ../man/ps.1:958 ../man/ps.1:1588
+#, no-wrap
+msgid "RGROUP"
+msgstr "RGROUP"
+
+#. type: tbl table
+#: ../man/ps.1:959
+#, no-wrap
+msgid "%n"
+msgstr "%n"
+
+#. type: tbl table
+#: ../man/ps.1:959 ../man/ps.1:1443
+#, no-wrap
+msgid "nice"
+msgstr "nice"
+
+#. type: tbl table
+#: ../man/ps.1:959 ../man/ps.1:1435 ../man/ps.1:1443
+#, no-wrap
+msgid "NI"
+msgstr "NI"
+
+#. type: tbl table
+#: ../man/ps.1:960
+#, no-wrap
+msgid "%p"
+msgstr "%p"
+
+#. type: tbl table
+#: ../man/ps.1:960 ../man/ps.1:1515
+#, no-wrap
+msgid "PID"
+msgstr "PID"
+
+#. type: tbl table
+#: ../man/ps.1:961
+#, no-wrap
+msgid "%r"
+msgstr "%r"
+
+#. type: tbl table
+#: ../man/ps.1:961 ../man/ps.1:1502
+#, no-wrap
+msgid "pgid"
+msgstr "pgid"
+
+#. type: tbl table
+#: ../man/ps.1:961 ../man/ps.1:1502
+#, no-wrap
+msgid "PGID"
+msgstr "PGID"
+
+#. type: tbl table
+#: ../man/ps.1:962
+#, no-wrap
+msgid "%t"
+msgstr "%t"
+
+#. type: tbl table
+#: ../man/ps.1:962 ../man/ps.1:1271
+#, no-wrap
+msgid "etime"
+msgstr "etime"
+
+#. type: tbl table
+#: ../man/ps.1:962 ../man/ps.1:1271 ../man/ps.1:1275
+#, no-wrap
+msgid "ELAPSED"
+msgstr "ELAPSED"
+
+#. type: tbl table
+#: ../man/ps.1:963
+#, no-wrap
+msgid "%u"
+msgstr "%u"
+
+#. type: tbl table
+#: ../man/ps.1:963 ../man/ps.1:1626
+#, no-wrap
+msgid "ruser"
+msgstr "ruser"
+
+#. type: tbl table
+#: ../man/ps.1:963 ../man/ps.1:1626
+#, no-wrap
+msgid "RUSER"
+msgstr "RUSER"
+
+#. type: tbl table
+#: ../man/ps.1:964
+#, no-wrap
+msgid "%x"
+msgstr "%x"
+
+#. type: tbl table
+#: ../man/ps.1:964 ../man/ps.1:1827
+#, no-wrap
+msgid "time"
+msgstr "time"
+
+#. type: tbl table
+#: ../man/ps.1:964 ../man/ps.1:1075 ../man/ps.1:1208 ../man/ps.1:1213
+#: ../man/ps.1:1827 ../man/ps.1:1838
+#, no-wrap
+msgid "TIME"
+msgstr "TIME"
+
+#. type: tbl table
+#: ../man/ps.1:965
+#, no-wrap
+msgid "%y"
+msgstr "%y"
+
+#. type: tbl table
+#: ../man/ps.1:965 ../man/ps.1:1843
+#, no-wrap
+msgid "TTY"
+msgstr "TTY"
+
+#. type: tbl table
+#: ../man/ps.1:966
+#, no-wrap
+msgid "%z"
+msgstr "%z"
+
+#. type: tbl table
+#: ../man/ps.1:966 ../man/ps.1:1936
+#, no-wrap
+msgid "vsz"
+msgstr "vsz"
+
+#. type: tbl table
+#: ../man/ps.1:966 ../man/ps.1:1929 ../man/ps.1:1936
+#, no-wrap
+msgid "VSZ"
+msgstr "VSZ"
+
+#. type: SH
+#: ../man/ps.1:968
+#, no-wrap
+msgid "STANDARD FORMAT SPECIFIERS"
+msgstr "SPECIFICATORI DE FORMAT STANDARD"
+
+#. type: Plain text
+#: ../man/ps.1:975
+msgid "Here are the different keywords that may be used to control the output format (e.g., with option B<-o>) or to sort the selected processes with the GNU-style B<--sort> option."
+msgstr "Iată diferitele cuvinte cheie care pot fi folosite pentru a controla formatul de ieșire (de exemplu, cu opțiunea B<-o>) sau pentru a sorta procesele selectate cu opțiunea B<--sort> în stil GNU."
+
+#. type: Plain text
+#: ../man/ps.1:978
+msgid "For example: B<ps -eo pid,\\:user,\\:args --sort user>"
+msgstr "De exemplu: B<ps -eo pid,\\:user,\\:args --sort user>"
+
+#. type: Plain text
+#: ../man/ps.1:983
+msgid "This version of B<ps> tries to recognize most of the keywords used in other implementations of B<ps>."
+msgstr "Această versiune a B<ps> încearcă să recunoască majoritatea cuvintelor cheie utilizate în alte implementări ale B<ps>."
+
+#. type: Plain text
+#: ../man/ps.1:988
+msgid "The following user-defined format specifiers may contain spaces: B<args>, B<cmd>, B<comm>, B<command>, B<fname>, B<ucmd>, B<ucomm>, B<lstart>, B<bsdstart>, B<start>."
+msgstr "Următorii specificatori de format definiți de utilizator pot conține spații: B<args>, B<cmd>, B<comm>, B<command>, B<fname>, B<ucmd>, B<ucomm>, B<lstart>, B<bsdstart>, B<start>."
+
+#. type: Plain text
+#: ../man/ps.1:990
+msgid "Some keywords may not be available for sorting."
+msgstr "Este posibil ca unele cuvinte cheie să nu fie disponibile pentru sortare."
+
+#. type: tbl table
+#: ../man/ps.1:1002
+#, no-wrap
+msgid "CODE"
+msgstr "COD"
+
+#. type: tbl table
+#: ../man/ps.1:1002
+#, no-wrap
+msgid "HEADER"
+msgstr "TITLU"
+
+#. type: tbl table
+#: ../man/ps.1:1004
+#, no-wrap
+msgid "%cpu"
+msgstr "%cpu"
+
+#. type: tbl table
+#: ../man/ps.1:1010
+#, no-wrap
+msgid ""
+"cpu utilization of the process in \"##.#\" format. Currently, it is the CPU\n"
+"time used divided by the time the process has been running (cputime/realtime\n"
+"ratio), expressed as a percentage. It will not add up to 100% unless you are\n"
+"lucky. (alias\n"
+"B<pcpu>)."
+msgstr ""
+"utilizarea CPU-ului de către proces în format „##.#â€. ÃŽn prezent, este\n"
+"timpul folosit de procesor împărțit la timpul în care procesul a rulat\n"
+"(raportul timp de procesare/timp real), exprimat ca procent. Cu excepția\n"
+"cazului în care sunteți norocos, această valoare nu va ajunge la 100% (alias\n"
+"B<pcpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1012
+#, no-wrap
+msgid "%mem"
+msgstr "%mem"
+
+#. type: tbl table
+#: ../man/ps.1:1012 ../man/ps.1:1526
+#, no-wrap
+msgid "%MEM"
+msgstr "%MEM"
+
+#. type: tbl table
+#: ../man/ps.1:1016
+#, no-wrap
+msgid ""
+"ratio of the process's resident set size to the physical memory on the\n"
+"machine, expressed as a percentage. (alias\n"
+"B<pmem>)."
+msgstr ""
+"raportul dintre dimensiunea memoriei rezidente („resident set size†sau RSS)\n"
+"a procesului și memoria fizică a mașinii, exprimat ca procent (alias\n"
+"B<pmem>)."
+
+#. type: tbl table
+#: ../man/ps.1:1018
+#, no-wrap
+msgid "ag_id"
+msgstr "ag_id"
+
+#. type: tbl table
+#: ../man/ps.1:1018
+#, no-wrap
+msgid "AGID"
+msgstr "AGID"
+
+#. type: tbl table
+#: ../man/ps.1:1021
+#, no-wrap
+msgid ""
+"The autogroup identifier associated with a process which operates in conjunction\n"
+"with the CFS scheduler to improve interactive desktop performance."
+msgstr ""
+"identificatorul autogrupului asociat cu un proces care funcționează împreună\n"
+"cu planificatorul CFS pentru a îmbunătăți performanța biroului interactiv."
+
+#. type: tbl table
+#: ../man/ps.1:1023
+#, no-wrap
+msgid "ag_nice"
+msgstr "ag_nice"
+
+#. type: tbl table
+#: ../man/ps.1:1023
+#, no-wrap
+msgid "AGNI"
+msgstr "AGNI"
+
+#. type: tbl table
+#: ../man/ps.1:1025
+#, no-wrap
+msgid "The autogroup nice value which affects scheduling of all processes in that group."
+msgstr "valoarea priorității „nice†a autogrupului care se aplică planificării tuturor proceselor din acest grup."
+
+#. type: tbl table
+#: ../man/ps.1:1042
+#, no-wrap
+msgid ""
+"command with all its arguments as a string. Modifications to the arguments\n"
+"may be shown. The output in this column may contain spaces. A process\n"
+"marked E<lt>defunctE<gt> is partly dead, waiting to be fully destroyed by its parent.\n"
+"Sometimes the process args will be unavailable; when this happens,\n"
+"B<ps>\n"
+"will instead print the executable name in brackets. (alias\n"
+"B<cmd>, B<command>).\n"
+"See also the\n"
+"B<comm>\n"
+"format keyword, the\n"
+"B<-f>\n"
+"option, and the\n"
+"B<c>\n"
+"option.\n"
+msgstr ""
+"comanda cu toate argumentele sale ca șir. Pot fi afișate modificări ale\n"
+"argumentelor.\n"
+"Rezultatul din această coloană poate conține spații.\n"
+"Un proces marcat E<lt>defunctE<gt> este parțial mort, așteaptă să fie\n"
+"complet distrus de părintele său.\n"
+"Uneori, argumentele procesului vor fi indisponibile; când se întâmplă\n"
+"acest lucru,\n"
+"B<ps>\n"
+"va afișa în schimb numele executabilului între paranteze (alias\n"
+"B<cmd>, B<comanda>).\n"
+"Consultați, de asemenea, cuvântul cheie de formatare B<comm>,\n"
+"opțiunea B<-f> și opțiunea B<c>.\n"
+
+#. type: tbl table
+#: ../man/ps.1:1042 ../man/ps.1:1116 ../man/ps.1:1118 ../man/ps.1:1120
+#: ../man/ps.1:1122 ../man/ps.1:1124 ../man/ps.1:1126 ../man/ps.1:1128
+#: ../man/ps.1:1130 ../man/ps.1:1142 ../man/ps.1:1144 ../man/ps.1:1146
+#: ../man/ps.1:1148 ../man/ps.1:1150 ../man/ps.1:1152 ../man/ps.1:1154
+#: ../man/ps.1:1156 ../man/ps.1:1180 ../man/ps.1:1540 ../man/ps.1:1542
+#: ../man/ps.1:1544 ../man/ps.1:1546 ../man/ps.1:1548 ../man/ps.1:1550
+#: ../man/ps.1:1552 ../man/ps.1:1554
+#, no-wrap
+msgid ".br\n"
+msgstr ".br\n"
+
+#. type: tbl table
+#: ../man/ps.1:1058
+#, no-wrap
+msgid ""
+"When specified last, this column will extend to the edge of the display. If\n"
+"B<ps>\n"
+"can not determine display width, as when output is redirected (piped) into a\n"
+"file or another command, the output width is undefined (it may be 80,\n"
+"unlimited, determined by the\n"
+"B<TERM>\n"
+"variable, and so on). The\n"
+"B<COLUMNS>\n"
+"environment variable or\n"
+"B<--cols>\n"
+"option may be used to exactly determine the width in this case. The\n"
+"B<w>\n"
+"or\n"
+"B<-w>\n"
+"option may be also be used to adjust width."
+msgstr "când este specificată ultima, această coloană se va extinde până la marginea afișajului. Dacă B<ps> nu poate determina lățimea de afișare, ca atunci când ieșirea este redirecționată (prin conductă) într-un fișier sau altă comandă, lățimea de ieșire este nedefinită (poate fi 80, nelimitată, determinată de variabila B<TERM> ș.a.m.d.). Variabila de mediu B<COLUMNS> sau opțiunea B<--cols> poate fi folosită pentru a determina exact lățimea în acest caz. Opțiunea B<w> sau B< -w> poate fi, de asemenea, utilizată pentru a ajusta lățimea.."
+
+#. type: tbl table
+#: ../man/ps.1:1060
+#, no-wrap
+msgid "blocked"
+msgstr "blocked"
+
+#. type: tbl table
+#: ../man/ps.1:1060 ../man/ps.1:1700
+#, no-wrap
+msgid "BLOCKED"
+msgstr "BLOCKED"
+
+#. type: tbl table
+#: ../man/ps.1:1066
+#, no-wrap
+msgid ""
+"mask of the blocked signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64-bit mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_block>, B<sigmask>)."
+msgstr ""
+"masca semnalelor blocate, a se vedea I<signal>(7).\n"
+"În funcție de lățimea câmpului, este afișată o mască de 32 sau 64 de biți\n"
+"în format hexazecimal. (alias B<sig_block>, B<sigmask>)."
+
+#. type: tbl table
+#: ../man/ps.1:1068
+#, no-wrap
+msgid "bsdstart"
+msgstr "bsdstart"
+
+#. type: tbl table
+#: ../man/ps.1:1068 ../man/ps.1:1736
+#, no-wrap
+msgid "START"
+msgstr "START"
+
+#. type: tbl table
+#: ../man/ps.1:1073
+#, no-wrap
+msgid ""
+"time the command started. If the process was started less than 24 hours ago,\n"
+"the output format is \"\\ HH:MM\", else it is \" Mmm:SS\" (where Mmm is the three\n"
+"letters of the month). See also\n"
+"B<lstart>,B<\\ start>,B<\\ start_time>, andB<\\ stime>."
+msgstr ""
+"momentul în care comanda a început. Dacă procesul a fost pornit\n"
+"cu mai puÈ›in de 24 de ore în urmă, formatul de ieÈ™ire este „HH:MMâ€,\n"
+"altfel este „Mmm:SS†(unde Mmm reprezintă cele trei litere ale lunii).\n"
+"A se vedea, de asemenea, B<lstart>, B<start>, B<start_time> și B<stime>."
+
+#. type: tbl table
+#: ../man/ps.1:1075
+#, no-wrap
+msgid "bsdtime"
+msgstr "bsdtime"
+
+#. type: tbl table
+#: ../man/ps.1:1079
+#, no-wrap
+msgid ""
+"accumulated cpu time, user + system. The display format is usually\n"
+"\"MMM:SS\", but can be shifted to the right if the process used more than 999\n"
+"minutes of cpu time."
+msgstr ""
+"timpul CPU acumulat, utilizator + sistem. Formatul de afișare este de obicei\n"
+"„MMM:SSâ€, dar poate fi mutat la dreapta dacă procesul a folosit mai mult de\n"
+"999 de minute de timp CPU."
+
+#. type: tbl table
+#: ../man/ps.1:1085
+#, no-wrap
+msgid ""
+"processor utilization. Currently, this is the integer value of the percent\n"
+"usage over the lifetime of the process. (see\n"
+"B<%cpu>)."
+msgstr ""
+"utilizarea procesorului. În prezent, aceasta este valoarea întreagă a \n"
+"procentului de utilizare pe durata de viață a procesului. (a se vedea\n"
+"B<%cpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1087
+#, no-wrap
+msgid "caught"
+msgstr "caught"
+
+#. type: tbl table
+#: ../man/ps.1:1087 ../man/ps.1:1686
+#, no-wrap
+msgid "CAUGHT"
+msgstr "CAUGHT"
+
+#. type: tbl table
+#: ../man/ps.1:1093
+#, no-wrap
+msgid ""
+"mask of the caught signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64 bits mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_catch>, B<sigcatch>)."
+msgstr ""
+"masca semnalelor captate, a se vedea\n"
+"I<semnal>(7).\n"
+"În funcție de lățimea câmpului, este afișată o mască de 32 sau 64 de biți\n"
+"în format hexazecimal (alias\n"
+"B<sig_catch>, B<sigcatch>)"
+
+#. type: tbl table
+#: ../man/ps.1:1095
+#, no-wrap
+msgid "cgname"
+msgstr "cgname"
+
+#. type: tbl table
+#: ../man/ps.1:1095
+#, no-wrap
+msgid "CGNAME"
+msgstr "CGNAME"
+
+#. type: tbl table
+#: ../man/ps.1:1097
+#, no-wrap
+msgid "display name of control groups to which the process belongs."
+msgstr "afișează numele grupurilor de control cărora le aparține procesul."
+
+#. type: tbl table
+#: ../man/ps.1:1099
+#, no-wrap
+msgid "cgroup"
+msgstr "cgroup"
+
+#. type: tbl table
+#: ../man/ps.1:1099
+#, no-wrap
+msgid "CGROUP"
+msgstr "CGROUP"
+
+#. type: tbl table
+#: ../man/ps.1:1101
+#, no-wrap
+msgid "display control groups to which the process belongs."
+msgstr "afișează grupurile de control cărora le aparține procesul."
+
+#. type: tbl table
+#: ../man/ps.1:1103
+#, no-wrap
+msgid "cgroupns"
+msgstr "cgroupns"
+
+#. type: tbl table
+#: ../man/ps.1:1103
+#, no-wrap
+msgid "CGROUPNS"
+msgstr "CGROUPNS"
+
+#. type: tbl table
+#: ../man/ps.1:1107 ../man/ps.1:1374 ../man/ps.1:1427 ../man/ps.1:1433
+#: ../man/ps.1:1524 ../man/ps.1:1836 ../man/ps.1:1911 ../man/ps.1:1922
+#, no-wrap
+msgid ""
+"Unique inode number describing the namespace the process belongs to.\n"
+"See\n"
+"I<namespaces>(7)."
+msgstr ""
+"numărul unic de nod-i care descrie spațiul de nume căruia îi aparține procesul.\n"
+"A se vedea\n"
+"I<namespaces>(7)."
+
+#. type: tbl table
+#: ../man/ps.1:1109
+#, no-wrap
+msgid "class"
+msgstr "class"
+
+#. type: tbl table
+#: ../man/ps.1:1109 ../man/ps.1:1135
+#, no-wrap
+msgid "CLS"
+msgstr "CLS"
+
+#. type: tbl table
+#: ../man/ps.1:1113 ../man/ps.1:1139
+#, no-wrap
+msgid ""
+"scheduling class of the process. (alias\n"
+"B<policy>, B<cls>).\n"
+"Field's possible values are:\n"
+msgstr ""
+"clasa de planificare a procesului. (alias\n"
+"B<policy>, B<cls>).\n"
+"Valorile posibile ale câmpului sunt:\n"
+
+#. type: tbl table
+#: ../man/ps.1:1113 ../man/ps.1:1139 ../man/ps.1:1537
+#, no-wrap
+msgid ".sp 1\n"
+msgstr ".sp 1\n"
+
+#. type: tbl table
+#: ../man/ps.1:1114 ../man/ps.1:1140 ../man/ps.1:1538
+#, no-wrap
+msgid ".in +9n\n"
+msgstr ".in +9n\n"
+
+#. type: tbl table
+#: ../man/ps.1:1116 ../man/ps.1:1142 ../man/ps.1:1540
+#, no-wrap
+msgid "-\tnot reported\n"
+msgstr "-\tnu este raportată\n"
+
+#. type: tbl table
+#: ../man/ps.1:1118 ../man/ps.1:1144 ../man/ps.1:1542
+#, no-wrap
+msgid "TS\tSCHED_OTHER\n"
+msgstr "TS\tSCHED_OTHER\n"
+
+#. type: tbl table
+#: ../man/ps.1:1120 ../man/ps.1:1146 ../man/ps.1:1544
+#, no-wrap
+msgid "FF\tSCHED_FIFO\n"
+msgstr "FF\tSCHED_FIFO\n"
+
+#. type: tbl table
+#: ../man/ps.1:1122 ../man/ps.1:1148 ../man/ps.1:1546
+#, no-wrap
+msgid "RR\tSCHED_RR\n"
+msgstr "RR\tSCHED_RR\n"
+
+#. type: tbl table
+#: ../man/ps.1:1124 ../man/ps.1:1150 ../man/ps.1:1548
+#, no-wrap
+msgid "B\tSCHED_BATCH\n"
+msgstr "B\tSCHED_BATCH\n"
+
+#. type: tbl table
+#: ../man/ps.1:1126 ../man/ps.1:1152 ../man/ps.1:1550
+#, no-wrap
+msgid "ISO\tSCHED_ISO\n"
+msgstr "ISO\tSCHED_ISO\n"
+
+#. type: tbl table
+#: ../man/ps.1:1128 ../man/ps.1:1154 ../man/ps.1:1552
+#, no-wrap
+msgid "IDL\tSCHED_IDLE\n"
+msgstr "IDL\tSCHED_IDLE\n"
+
+#. type: tbl table
+#: ../man/ps.1:1130 ../man/ps.1:1156 ../man/ps.1:1554
+#, no-wrap
+msgid "DLN\tSCHED_DEADLINE\n"
+msgstr "DLN\tSCHED_DEADLINE\n"
+
+#. type: tbl table
+#: ../man/ps.1:1132 ../man/ps.1:1158 ../man/ps.1:1556
+#, no-wrap
+msgid "?\tunknown value\n"
+msgstr "?\tvaloare necunoscută\n"
+
+#. type: tbl table
+#: ../man/ps.1:1132 ../man/ps.1:1158 ../man/ps.1:1556
+#, no-wrap
+msgid ".in\n"
+msgstr ".in\n"
+
+#. type: tbl table
+#: ../man/ps.1:1135
+#, no-wrap
+msgid "cls"
+msgstr "cls"
+
+#. type: tbl table
+#: ../man/ps.1:1161 ../man/ps.1:1867
+#, no-wrap
+msgid "CMD"
+msgstr "CMD"
+
+#. type: tbl table
+#: ../man/ps.1:1166
+#, no-wrap
+msgid ""
+"see\n"
+"B<args>.\n"
+"(alias\n"
+"B<args>, B<command>)."
+msgstr ""
+"a se vedea\n"
+"B<args>.\n"
+"(alias\n"
+"B<args>, B<command>)."
+
+#. type: tbl table
+#: ../man/ps.1:1180
+#, no-wrap
+msgid ""
+"command name (only the executable name). The output in this column may\n"
+"contain spaces.\n"
+"(alias\n"
+"B<ucmd>, B<ucomm>).\n"
+"See also the\n"
+"B<args>\n"
+"format keyword, the\n"
+"B<-f>\n"
+"option, and the\n"
+"B<c>\n"
+"option.\n"
+msgstr ""
+"numele comenzii (numai numele executabilului). Rezultatul din această\n"
+"coloană poate conține spații (alias\n"
+"B<ucmd>,B<ucomm>).\n"
+"Consultați, de asemenea, cuvântul cheie format\n"
+"B<args>,\n"
+"opțiunea\n"
+"B<-f>\n"
+"și opțiunea\n"
+"B<c>.\n"
+
+#. type: tbl table
+#: ../man/ps.1:1194
+#, no-wrap
+msgid ""
+"When specified last, this column will extend to the edge of the display. If\n"
+"B<ps>\n"
+"can not determine display width, as when output is redirected (piped) into a\n"
+"file or another command, the output width is undefined (it may be 80,\n"
+"unlimited, determined by the\n"
+"B<TERM>\n"
+"variable, and so on). The\n"
+"B<COLUMNS>\n"
+"environment variable or\n"
+"B<--cols>\n"
+"option may be used to exactly determine the width in this case. The\n"
+"B<w>\\ orB<\\ -w>\n"
+"option may be also be used to adjust width."
+msgstr "Când este specificată ultima, această coloană se va extinde până la marginea afișajului. Dacă B<ps> nu poate determina lățimea de afișare, ca atunci când ieșirea este redirecționată (prin conductă) într-un fișier sau altă comandă, lățimea de ieșire este nedefinită (poate fi 80, nelimitată, determinată de variabila B<TERM> ș.a.m.d.). Variabila de mediu B<COLUMNS> sau opțiunea B<--cols> poate fi folosită pentru a determina exact lățimea în acest caz. Opțiunea B<w> sau B< -w> poate fi, de asemenea, utilizată pentru a ajusta lățimea."
+
+#. type: tbl table
+#: ../man/ps.1:1196
+#, no-wrap
+msgid "command"
+msgstr "command"
+
+#. type: tbl table
+#: ../man/ps.1:1201
+#, no-wrap
+msgid ""
+"See\n"
+"B<args>.\n"
+"(alias\n"
+"B<args>, B<command>)."
+msgstr ""
+"a se vedea\n"
+"B<args>.\n"
+"(alias\n"
+"B<args>, B<command>)."
+
+#. type: tbl table
+#: ../man/ps.1:1203
+#, no-wrap
+msgid "cp"
+msgstr "cp"
+
+#. type: tbl table
+#: ../man/ps.1:1203
+#, no-wrap
+msgid "CP"
+msgstr "CP"
+
+#. type: tbl table
+#: ../man/ps.1:1206
+#, no-wrap
+msgid ""
+"per-mill (tenths of a percent) CPU usage. (see\n"
+"B<%cpu>)."
+msgstr ""
+"utilizarea CPU-ului în miimi (zecimi de procent) (a se vedea\n"
+"B<%cpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1208
+#, no-wrap
+msgid "cputime"
+msgstr "cputime"
+
+#. type: tbl table
+#: ../man/ps.1:1211
+#, no-wrap
+msgid ""
+"cumulative CPU time, \"[DD-]hh:mm:ss\" format. (alias\n"
+"B<time>)."
+msgstr ""
+"timpul cumulat al CPU-ului, în formatul „[ZZ-]hh:mm:ss†(alias\n"
+"B<time>)."
+
+#. type: tbl table
+#: ../man/ps.1:1213
+#, no-wrap
+msgid "cputimes"
+msgstr "cputimes"
+
+#. type: tbl table
+#: ../man/ps.1:1216
+#, no-wrap
+msgid ""
+"cumulative CPU time in seconds (alias\n"
+"B<times>)."
+msgstr ""
+"timpul cumulat al CPU-ului în secunde (alias\n"
+"B<time>)."
+
+#. type: tbl table
+#: ../man/ps.1:1218
+#, no-wrap
+msgid "cuc"
+msgstr "cuc"
+
+#. type: tbl table
+#: ../man/ps.1:1218
+#, no-wrap
+msgid "%CUC"
+msgstr "%CUC"
+
+#. type: tbl table
+#: ../man/ps.1:1226
+#, no-wrap
+msgid ""
+"The CPU utilization of a process, including dead children, in an extended \"##.###\" format.\n"
+"(see also\n"
+"B<%cpu>,\n"
+"B<c>,\n"
+"B<cp>,\n"
+"B<cuu>,\n"
+"B<pcpu>)."
+msgstr ""
+"Utilizarea CPU-ului de către un proces, inclusiv procesele-copii moarte,\n"
+"într-un format extins „##.###†(consultați, de asemenea,\n"
+"B<%cpu>,\n"
+"B<c>,\n"
+"B<cp>,\n"
+"B<cuu>,\n"
+"B<pcpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1228
+#, no-wrap
+msgid "cuu"
+msgstr "cuu"
+
+#. type: tbl table
+#: ../man/ps.1:1228
+#, no-wrap
+msgid "%CUU"
+msgstr "%CUU"
+
+#. type: tbl table
+#: ../man/ps.1:1236
+#, no-wrap
+msgid ""
+"The CPU utilization of a process in an extended \"##.###\" format.\n"
+"(see also\n"
+"B<%cpu>,\n"
+"B<c>,\n"
+"B<cp>,\n"
+"B<cuc>,\n"
+"B<pcpu>)."
+msgstr ""
+"Utilizarea CPU-ului de către un proces într-un format extins „##.###â€\n"
+"(consultați, de asemenea,\n"
+"B<%cpu>,\n"
+"B<c>,\n"
+"B<cp>,\n"
+"B<cuc>,\n"
+"B<pcpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1238
+#, no-wrap
+msgid "drs"
+msgstr "drs"
+
+#. type: tbl table
+#: ../man/ps.1:1238
+#, no-wrap
+msgid "DRS"
+msgstr "DRS"
+
+#. type: tbl table
+#: ../man/ps.1:1247
+#, no-wrap
+msgid ""
+"data resident set size, the amount of private memory I<reserved> by a process.\n"
+"It is also known as DATA. Such memory may not yet be mapped to\n"
+"B<rss>\n"
+"but will always be included\n"
+"included in the\n"
+"B<vsz>\n"
+"amount.\n"
+msgstr ""
+"dimensiunea setului rezident de date, cantitatea de memorie privată I<rezervată> de către un proces.\n"
+"Este cunoscută și sub numele de DATA. Este posibil ca această memorie să nu fie încă repartizată în B<rss>, dar va fi întotdeauna inclusă în cantitatea B<vsz>.\n"
+
+#. type: tbl table
+#: ../man/ps.1:1249
+#, no-wrap
+msgid "egid"
+msgstr "egid"
+
+#. type: tbl table
+#: ../man/ps.1:1249
+#, no-wrap
+msgid "EGID"
+msgstr "EGID"
+
+#. type: tbl table
+#: ../man/ps.1:1252
+#, no-wrap
+msgid ""
+"effective group ID number of the process as a decimal integer. (alias\n"
+"B<gid>)."
+msgstr ""
+"numărul ID-ului grupului efectiv al procesului ca număr întreg zecimal (alias\n"
+"B<gid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1254
+#, no-wrap
+msgid "egroup"
+msgstr "egroup"
+
+#. type: tbl table
+#: ../man/ps.1:1254
+#, no-wrap
+msgid "EGROUP"
+msgstr "EGROUP"
+
+#. type: tbl table
+#: ../man/ps.1:1259
+#, no-wrap
+msgid ""
+"effective group ID of the process. This will be the textual group ID, if it\n"
+"can be obtained and the field width permits, or a decimal representation\n"
+"otherwise. (alias\n"
+"B<group>)."
+msgstr ""
+"ID-ul grupului efectiv al procesului. Acesta va fi ID-ul grupului textual,\n"
+"dacă poate fi obținut și lățimea câmpului o permite, sau o reprezentare\n"
+"zecimală în caz contrar (alias\n"
+"B<group>)."
+
+#. type: tbl table
+#: ../man/ps.1:1261
+#, no-wrap
+msgid "eip"
+msgstr "eip"
+
+#. type: tbl table
+#: ../man/ps.1:1261
+#, no-wrap
+msgid "EIP"
+msgstr "EIP"
+
+#. type: tbl table
+#: ../man/ps.1:1264
+#, no-wrap
+msgid ""
+"instruction pointer. As of kernel 4.9.xx will be zeroed out unless task is\n"
+"exiting or being core dumped."
+msgstr ""
+"indicatorul de instrucțiune. Începând cu nucleul 4.9.xx, va fi reinițiat\n"
+"la zero, cu excepția cazului în care sarcina iese sau sistemul creează\n"
+"un fișier cu descărcarea conținutului acesteia din memorie."
+
+#. type: tbl table
+#: ../man/ps.1:1266
+#, no-wrap
+msgid "esp"
+msgstr "esp"
+
+#. type: tbl table
+#: ../man/ps.1:1266
+#, no-wrap
+msgid "ESP"
+msgstr "ESP"
+
+#. type: tbl table
+#: ../man/ps.1:1269
+#, no-wrap
+msgid ""
+"stack pointer. As of kernel 4.9.xx will be zeroed out unless task is\n"
+"exiting or being core dumped."
+msgstr ""
+"indicatorul de stivă. Începând cu nucleul 4.9.xx, va fi reinițiat la zero,\n"
+"cu excepția cazului în care sarcina iese sau sistemul creează un fișier cu\n"
+"descărcarea conținutului acesteia din memorie."
+
+#. type: tbl table
+#: ../man/ps.1:1273
+#, no-wrap
+msgid "elapsed time since the process was started, in the form [[DD-]hh:]mm:ss."
+msgstr "timpul scurs de la pornirea procesului, în formatul [[ZZ-]hh:]mm:ss."
+
+#. type: tbl table
+#: ../man/ps.1:1275
+#, no-wrap
+msgid "etimes"
+msgstr "etimes"
+
+#. type: tbl table
+#: ../man/ps.1:1277
+#, no-wrap
+msgid "elapsed time since the process was started, in seconds."
+msgstr "timpul scurs de la pornirea procesului, în secunde."
+
+#. type: tbl table
+#: ../man/ps.1:1279
+#, no-wrap
+msgid "euid"
+msgstr "euid"
+
+#. type: tbl table
+#: ../man/ps.1:1279
+#, no-wrap
+msgid "EUID"
+msgstr "EUID"
+
+#. type: tbl table
+#: ../man/ps.1:1282
+#, no-wrap
+msgid ""
+"effective user ID (alias\n"
+"B<uid>)."
+msgstr ""
+"ID-ul utilizatorului efectiv (alias\n"
+"B<uid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1284
+#, no-wrap
+msgid "euser"
+msgstr "euser"
+
+#. type: tbl table
+#: ../man/ps.1:1284
+#, no-wrap
+msgid "EUSER"
+msgstr "EUSER"
+
+#. type: tbl table
+#: ../man/ps.1:1290
+#, no-wrap
+msgid ""
+"effective user name. This will be the textual user ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise. The\n"
+"B<n>\n"
+"option can be used to force the decimal representation. (alias\n"
+"B<uname>, B<user>)."
+msgstr ""
+"numele utilizatorului efectiv. Acesta va fi ID-ul textual al utilizatorului,\n"
+"dacă poate fi obținut și lățimea câmpului o permite, sau o reprezentare zecimală\n"
+"în caz contrar. Opțiunea\n"
+"B<n>\n"
+"poate fi folosită pentru a forța reprezentarea zecimală (alias\n"
+"B<uname>, B<user>)."
+
+#. type: tbl table
+#: ../man/ps.1:1292
+#, no-wrap
+msgid "exe"
+msgstr "exe"
+
+#. type: tbl table
+#: ../man/ps.1:1292
+#, no-wrap
+msgid "EXE"
+msgstr "EXE"
+
+#. type: tbl table
+#: ../man/ps.1:1298
+#, no-wrap
+msgid ""
+"path to the executable. Useful if path cannot be printed via\n"
+"B<cmd>, B<comm>\n"
+"or\n"
+"B<args>\n"
+"format options."
+msgstr ""
+"calea către executabil. Util dacă calea nu poate fi afișată prin opțiunile\n"
+"de format\n"
+"B<cmd>, B<comm>\n"
+"sau\n"
+"B<args>."
+
+#. type: tbl table
+#: ../man/ps.1:1300 ../man/ps.1:1319 ../man/ps.1:1326
+#, no-wrap
+msgid "F"
+msgstr "F"
+
+#. type: tbl table
+#: ../man/ps.1:1305
+#, no-wrap
+msgid ""
+"flags associated with the process, see the\n"
+"B<PROCESS FLAGS>\n"
+"section. (alias\n"
+"B<flag>, B<flags>)."
+msgstr ""
+"fanioanele asociate procesului, consultați secțiunea\n"
+"B<PROCESS FLAGS>\n"
+"(alias\n"
+"B<flag>, B<flags>)."
+
+#. type: tbl table
+#: ../man/ps.1:1307
+#, no-wrap
+msgid "fgid"
+msgstr "fgid"
+
+#. type: tbl table
+#: ../man/ps.1:1307
+#, no-wrap
+msgid "FGID"
+msgstr "FGID"
+
+#. type: tbl table
+#: ../man/ps.1:1310
+#, no-wrap
+msgid ""
+"filesystem access group\\ ID. (alias\n"
+"B<fsgid>)."
+msgstr ""
+"ID-ul grupului de acces la sistemul de fișiere (alias\n"
+"B<fsgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1312
+#, no-wrap
+msgid "fgroup"
+msgstr "fgroup"
+
+#. type: tbl table
+#: ../man/ps.1:1312
+#, no-wrap
+msgid "FGROUP"
+msgstr "FGROUP"
+
+#. type: tbl table
+#: ../man/ps.1:1317
+#, no-wrap
+msgid ""
+"filesystem access group ID. This will be the textual group ID, if it can\n"
+"be obtained and the field width permits, or a decimal representation\n"
+"otherwise. (alias\n"
+"B<fsgroup>)."
+msgstr ""
+"ID-ul grupului de acces la sistemul de fișiere. Acesta va fi ID-ul textual al\n"
+"grupului, dacă poate fi obținut și lățimea câmpului o permite,\n"
+"sau o reprezentare zecimală în caz contrar (alias\n"
+"B<fsgroup>)."
+
+#. type: tbl table
+#: ../man/ps.1:1319
+#, no-wrap
+msgid "flag"
+msgstr "fanion"
+
+#. type: tbl table
+#: ../man/ps.1:1324
+#, no-wrap
+msgid ""
+"see\n"
+"B<f>.\n"
+"(alias\n"
+"B<f>, B<flags>)."
+msgstr ""
+"consultați\n"
+"B<f>.\n"
+"(alias\n"
+"B<f>, B<flags>)."
+
+#. type: tbl table
+#: ../man/ps.1:1331
+#, no-wrap
+msgid ""
+"see\n"
+"B<f>.\n"
+"(alias\n"
+"B<f>, B<flag>)."
+msgstr ""
+"consultați\n"
+"B<f>.\n"
+"(alias\n"
+"B<f>, B<flag>)."
+
+#. type: tbl table
+#: ../man/ps.1:1333
+#, no-wrap
+msgid "fname"
+msgstr "fname"
+
+#. type: tbl table
+#: ../man/ps.1:1336
+#, no-wrap
+msgid ""
+"first 8 bytes of the base name of the process's executable file. The output\n"
+"in this column may contain spaces."
+msgstr ""
+"primii 8 octeți ai numelui de bază al fișierului executabil al procesului.\n"
+"Rezultatul din această coloană poate conține spații."
+
+#. type: tbl table
+#: ../man/ps.1:1338
+#, no-wrap
+msgid "fuid"
+msgstr "fuid"
+
+#. type: tbl table
+#: ../man/ps.1:1338
+#, no-wrap
+msgid "FUID"
+msgstr "FUID"
+
+#. type: tbl table
+#: ../man/ps.1:1341
+#, no-wrap
+msgid ""
+"filesystem access user ID. (alias\n"
+"B<fsuid>)."
+msgstr ""
+"ID-ul utilizatorului de acces la sistemul de fișiere (alias\n"
+"B<fsuid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1343
+#, no-wrap
+msgid "fuser"
+msgstr "fuser"
+
+#. type: tbl table
+#: ../man/ps.1:1343
+#, no-wrap
+msgid "FUSER"
+msgstr "FUSER"
+
+#. type: tbl table
+#: ../man/ps.1:1346
+#, no-wrap
+msgid ""
+"filesystem access user ID. This will be the textual user ID, if it can be\n"
+"obtained and the field width permits, or a decimal representation otherwise."
+msgstr ""
+"ID-ul utilizatorului de acces la sistemul de fișiere. Acesta va fi ID-ul\n"
+"textual al utilizatorului, dacă poate fi obținut și lățimea câmpului o permite,\n"
+"sau o reprezentare zecimală în caz contrar."
+
+#. type: tbl table
+#: ../man/ps.1:1348
+#, no-wrap
+msgid "gid"
+msgstr "gid"
+
+#. type: tbl table
+#: ../man/ps.1:1348
+#, no-wrap
+msgid "GID"
+msgstr "GID"
+
+#. type: tbl table
+#: ../man/ps.1:1353
+#, no-wrap
+msgid ""
+"see\n"
+"B<egid>.\n"
+"(alias\n"
+"B<egid>)."
+msgstr ""
+"consultați\n"
+"B<egid>.\n"
+"(alias\n"
+"B<egid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1360
+#, no-wrap
+msgid ""
+"see\n"
+"B<egroup>.\n"
+"(alias\n"
+"B<egroup>)."
+msgstr ""
+"consultați\n"
+"B<egroup>.\n"
+"(alias\n"
+"B<egroup>)."
+
+#. type: tbl table
+#: ../man/ps.1:1362
+#, no-wrap
+msgid "ignored"
+msgstr "ignored"
+
+#. type: tbl table
+#: ../man/ps.1:1362 ../man/ps.1:1693
+#, no-wrap
+msgid "IGNORED"
+msgstr "IGNORED"
+
+#. type: tbl table
+#: ../man/ps.1:1368
+#, no-wrap
+msgid ""
+"mask of the ignored signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64 bits mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_ignore>, B<sigignore>)."
+msgstr ""
+"masca semnalelor ignorate, a se vedea\n"
+"I<signal>(7).\n"
+"În funcție de lățimea câmpului, este afișată o mască de 32 sau 64 de biți în\n"
+"format hexazecimal (alias\n"
+"B<sig_ignore>, B<sigignore>)."
+
+#. type: tbl table
+#: ../man/ps.1:1370
+#, no-wrap
+msgid "ipcns"
+msgstr "ipcns"
+
+#. type: tbl table
+#: ../man/ps.1:1370
+#, no-wrap
+msgid "IPCNS"
+msgstr "IPCNS"
+
+#. type: tbl table
+#: ../man/ps.1:1376
+#, no-wrap
+msgid "label"
+msgstr "label"
+
+#. type: tbl table
+#: ../man/ps.1:1376
+#, no-wrap
+msgid "LABEL"
+msgstr "LABEL"
+
+#. type: tbl table
+#: ../man/ps.1:1381
+#, no-wrap
+msgid ""
+"security label, most commonly used for SELinux context data. This is for\n"
+"the\n"
+"I<Mandatory Access Control>\n"
+"(\"MAC\") found on high-security systems."
+msgstr ""
+"etichetă de securitate, folosită cel mai frecvent pentru datele de context SELinux.\n"
+"Aceasta este pentru\n"
+"(I<control de acces obligatoriu>)\n"
+"I<Mandatory Access Control> sau „MACâ€\n"
+"care se găsește pe sistemele de înaltă securitate."
+
+#. type: tbl table
+#: ../man/ps.1:1383
+#, no-wrap
+msgid "lstart"
+msgstr "lstart"
+
+#. type: tbl table
+#: ../man/ps.1:1383 ../man/ps.1:1729
+#, no-wrap
+msgid "STARTED"
+msgstr "STARTED"
+
+#. type: tbl table
+#: ../man/ps.1:1386
+#, no-wrap
+msgid ""
+"time the command started. This will be in the form \"DDD mmm HH:MM:SS YYY\"\n"
+"unless changed by the B<-D> option."
+msgstr ""
+"ora la care a început comanda. Aceasta va fi sub forma „DDD mmm HH:MM:SS YYYâ€,\n"
+"cu excepția cazului în care este modificată prin opțiunea B<-D>."
+
+#. type: tbl table
+#: ../man/ps.1:1388
+#, no-wrap
+msgid "lsession"
+msgstr "lsession"
+
+#. type: tbl table
+#: ../man/ps.1:1388
+#, no-wrap
+msgid "SESSION"
+msgstr "SESSION"
+
+#. type: tbl table
+#: ../man/ps.1:1391
+#, no-wrap
+msgid ""
+"displays the login session identifier of a process,\n"
+"if systemd support has been included."
+msgstr ""
+"afișează identificatorul de sesiune de conectare al unui proces,\n"
+"dacă a fost inclus suportul pentru «systemd»."
+
+#. type: tbl table
+#: ../man/ps.1:1393
+#, no-wrap
+msgid "luid"
+msgstr "luid"
+
+#. type: tbl table
+#: ../man/ps.1:1393
+#, no-wrap
+msgid "LUID"
+msgstr "LUID"
+
+#. type: tbl table
+#: ../man/ps.1:1395
+#, no-wrap
+msgid "displays Login ID associated with a process."
+msgstr "afișează ID-ul de autentificare asociat unui proces."
+
+#. type: tbl table
+#: ../man/ps.1:1397
+#, no-wrap
+msgid "lwp"
+msgstr "lwp"
+
+#. type: tbl table
+#: ../man/ps.1:1397
+#, no-wrap
+msgid "LWP"
+msgstr "LWP"
+
+#. type: tbl table
+#: ../man/ps.1:1403
+#, no-wrap
+msgid ""
+"light weight process (thread) ID of the dispatchable entity (alias\n"
+"B<spid>,B<\\ tid>).\n"
+"See\n"
+"B<tid>\n"
+"for additional information."
+msgstr ""
+"ID-ul procesului uÈ™or („light weight process†sau „threadâ€) al entității distribuibile (alias\n"
+"B<spid>, B<tid>).\n"
+"Consultați\n"
+"B<tid>\n"
+"pentru informații suplimentare"
+
+#. type: tbl table
+#: ../man/ps.1:1405
+#, no-wrap
+msgid "lxc"
+msgstr "lxc"
+
+#. type: tbl table
+#: ../man/ps.1:1405
+#, no-wrap
+msgid "LXC"
+msgstr "LXC"
+
+#. type: tbl table
+#: ../man/ps.1:1408
+#, no-wrap
+msgid ""
+"The name of the lxc container within which a task is running.\n"
+"If a process is not running inside a container, a dash ('-') will be shown."
+msgstr ""
+"numele containerului lxc în care rulează o sarcină.\n"
+"Dacă un proces nu rulează în interiorul unui container, va fi afiÈ™ată o liniuță („-â€)."
+
+#. type: tbl table
+#: ../man/ps.1:1410
+#, no-wrap
+msgid "machine"
+msgstr "machine"
+
+#. type: tbl table
+#: ../man/ps.1:1410
+#, no-wrap
+msgid "MACHINE"
+msgstr "MACHINE"
+
+#. type: tbl table
+#: ../man/ps.1:1413
+#, no-wrap
+msgid ""
+"displays the machine name for processes assigned to VM or container,\n"
+"if systemd support has been included."
+msgstr ""
+"afișează numele mașinii pentru procesele atribuite mașinii virtuale (VM)\n"
+"sau containerului, dacă a fost inclus suportul pentru «systemd»."
+
+#. type: tbl table
+#: ../man/ps.1:1415
+#, no-wrap
+msgid "MAJFLT"
+msgstr "MAJFLT"
+
+#. type: tbl table
+#: ../man/ps.1:1417
+#, no-wrap
+msgid "The number of major page faults that have occurred with this process."
+msgstr "numărul de erori majore de pagină care au apărut cu acest proces."
+
+#. type: tbl table
+#: ../man/ps.1:1419
+#, no-wrap
+msgid "MINFLT"
+msgstr "MINFLT"
+
+#. type: tbl table
+#: ../man/ps.1:1421
+#, no-wrap
+msgid "The number of minor page faults that have occurred with this process."
+msgstr "numărul de erori minore de pagină care au apărut cu acest proces."
+
+#. type: tbl table
+#: ../man/ps.1:1423
+#, no-wrap
+msgid "mntns"
+msgstr "mntns"
+
+#. type: tbl table
+#: ../man/ps.1:1423
+#, no-wrap
+msgid "MNTNS"
+msgstr "MNTNS"
+
+#. type: tbl table
+#: ../man/ps.1:1429
+#, no-wrap
+msgid "netns"
+msgstr "netns"
+
+#. type: tbl table
+#: ../man/ps.1:1429
+#, no-wrap
+msgid "NETNS"
+msgstr "NETNS"
+
+#. type: tbl table
+#: ../man/ps.1:1435
+#, no-wrap
+msgid "ni"
+msgstr "ni"
+
+#. type: tbl table
+#: ../man/ps.1:1441
+#, no-wrap
+msgid ""
+"nice value. This ranges from 19 (nicest) to -20 (not nice to others),\n"
+"see\n"
+"I<nice>(1).\n"
+"(alias\n"
+"B<nice>)."
+msgstr ""
+"valoarea priorității „niceâ€. Acesta variază de la 19 (cea mai „drăguță†nicest) la -20 (nu este „drăguță†cu alte procese),\n"
+"consultați\n"
+"I<nice>(1).\n"
+"(alias\n"
+"B<nice>)."
+
+#. type: tbl table
+#: ../man/ps.1:1447
+#, no-wrap
+msgid ""
+"see\n"
+"B<ni>.B<(alias>\n"
+"B<ni>)."
+msgstr ""
+"consultați\n"
+"B<ni>.B<(alias>\n"
+"B<ni>)."
+
+#. type: tbl table
+#: ../man/ps.1:1449
+#, no-wrap
+msgid "nlwp"
+msgstr "nlwp"
+
+#. type: tbl table
+#: ../man/ps.1:1449
+#, no-wrap
+msgid "NLWP"
+msgstr "NLWP"
+
+#. type: tbl table
+#: ../man/ps.1:1452
+#, no-wrap
+msgid ""
+"number of lwps (threads) in the process. (alias\n"
+"B<thcount>)."
+msgstr ""
+"numărul de lwps (fire de execuție) „threads†în proces (alias\n"
+"B<thcount>)."
+
+#. type: tbl table
+#: ../man/ps.1:1454
+#, no-wrap
+msgid "numa"
+msgstr "numa"
+
+#. type: tbl table
+#: ../man/ps.1:1454
+#, no-wrap
+msgid "NUMA"
+msgstr "NUMA"
+
+#. type: tbl table
+#: ../man/ps.1:1457
+#, no-wrap
+msgid ""
+"The node associated with the most recently used processor.\n"
+"A I<-1> means that NUMA information is unavailable."
+msgstr ""
+"Nodul asociat cu cel mai recent procesor utilizat.\n"
+"Un I<-1> înseamnă că informațiile NUMA sunt indisponibile."
+
+#. type: tbl table
+#: ../man/ps.1:1459
+#, no-wrap
+msgid "nwchan"
+msgstr "nwchan"
+
+#. type: tbl table
+#: ../man/ps.1:1459 ../man/ps.1:1950
+#, no-wrap
+msgid "WCHAN"
+msgstr "WCHAN"
+
+#. type: tbl table
+#: ../man/ps.1:1463
+#, no-wrap
+msgid ""
+"address of the kernel function where the process is sleeping (use\n"
+"B<wchan>\n"
+"if you want the kernel function name)."
+msgstr ""
+"adresa funcției de nucleu în care se află procesul (utilizați\n"
+"B<wchan>\n"
+"dacă doriți numele funcției nucleului)."
+
+#. type: tbl table
+#: ../man/ps.1:1465
+#, no-wrap
+msgid "oom"
+msgstr "oom"
+
+#. type: tbl table
+#: ../man/ps.1:1465
+#, no-wrap
+msgid "OOM"
+msgstr "OOM"
+
+#. type: tbl table
+#: ../man/ps.1:1468
+#, no-wrap
+msgid ""
+"Out of Memory Score. The value, ranging from 0 to +1000, used to select\n"
+"task(s) to kill when memory is exhausted."
+msgstr ""
+"estimarea depășirii limitelor memoriei disponibile. Valoarea, care variază\n"
+"de la 0 la +1000, utilizată pentru a selecta sarcinile de omorât atunci când\n"
+"memoria este epuizată. Zero se traduce prin „nu ucide niciodatăâ€, în timp ce\n"
+"1000 înseamnă „ucide întotdeaunaâ€."
+
+#. type: tbl table
+#: ../man/ps.1:1470
+#, no-wrap
+msgid "oomadj"
+msgstr "oomadj"
+
+#. type: tbl table
+#: ../man/ps.1:1470
+#, no-wrap
+msgid "OOMADJ"
+msgstr "OOMADJ"
+
+#. type: tbl table
+#: ../man/ps.1:1474
+#, no-wrap
+msgid ""
+"Out of Memory Adjustment Factor. The value is added to the current out of\n"
+"memory score which is then used to determine which task to kill when memory\n"
+"is exhausted."
+msgstr "factorul de ajustare a depășirii limitelor memoriei disponibile. Valoarea se adaugă la estimarea actuală de depășire a memoriei, care este apoi utilizată pentru a determina ce sarcină să fie omorâtă atunci când memoria este epuizată."
+
+#. type: tbl table
+#: ../man/ps.1:1476
+#, no-wrap
+msgid "ouid"
+msgstr "ouid"
+
+#. type: tbl table
+#: ../man/ps.1:1476
+#, no-wrap
+msgid "OWNER"
+msgstr "OWNER"
+
+#. type: tbl table
+#: ../man/ps.1:1479
+#, no-wrap
+msgid ""
+"displays the Unix user identifier of the owner of the session of a process,\n"
+"if systemd support has been included."
+msgstr "afișează identificatorul de utilizator Unix al proprietarului sesiunii unui proces, dacă a fost inclus suportul pentru «systemd»."
+
+#. type: tbl table
+#: ../man/ps.1:1486
+#, no-wrap
+msgid ""
+"see\n"
+"B<%cpu>.\n"
+"(alias\n"
+"B<%cpu>)."
+msgstr ""
+"consultați\n"
+"B<%cpu>.\n"
+"(alias\n"
+"B<%cpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1488
+#, no-wrap
+msgid "pending"
+msgstr "pending"
+
+#. type: tbl table
+#: ../man/ps.1:1488 ../man/ps.1:1679
+#, no-wrap
+msgid "PENDING"
+msgstr "PENDING"
+
+#. type: tbl table
+#: ../man/ps.1:1500
+#, no-wrap
+msgid ""
+"mask of the pending signals. See\n"
+"I<signal>(7).\n"
+"Signals pending on the process are distinct from signals pending on\n"
+"individual threads. Use the\n"
+"B<m>\n"
+"option or the\n"
+"B<-m>\n"
+"option to see both. According to the width of the field, a 32 or 64 bits\n"
+"mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig>)."
+msgstr "masca semnalelor în așteptare. A se vedea I<signal>(7). Semnalele aflate în așteptarea procesului sunt distincte de semnalele în așteptare ale firelor individuale. Utilizați opțiunea B<m> sau opțiunea B<-m> pentru a le vedea pe ambele. În funcție de lățimea câmpului, este afișată o mască de 32 sau 64 de biți în format hexazecimal, cu excepția cazului în care se utilizează opțiunea B<--signames> (alias B<sig>)."
+
+#. type: tbl table
+#: ../man/ps.1:1506
+#, no-wrap
+msgid ""
+"process group ID or, equivalently, the process ID of the process group\n"
+"leader. (alias\n"
+"B<pgrp>)."
+msgstr ""
+"ID-ul grupului de procese sau, echivalent, ID-ul procesului al liderului grupului de procese (alias\n"
+"B<pgrp>)."
+
+#. type: tbl table
+#: ../man/ps.1:1508
+#, no-wrap
+msgid "PGRP"
+msgstr "PGRP"
+
+#. type: tbl table
+#: ../man/ps.1:1513
+#, no-wrap
+msgid ""
+"see\n"
+"B<pgid>.\n"
+"(alias\n"
+"B<pgid>)."
+msgstr ""
+"consultați\n"
+"B<pgid>.\n"
+"(alias\n"
+"B<pgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1518
+#, no-wrap
+msgid ""
+"a number representing the process ID (alias\n"
+"B<tgid>)."
+msgstr ""
+"un număr reprezentând identificatorul procesului (alias\n"
+"B<tgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1520
+#, no-wrap
+msgid "pidns"
+msgstr "pidns"
+
+#. type: tbl table
+#: ../man/ps.1:1520
+#, no-wrap
+msgid "PIDNS"
+msgstr "PIDNS"
+
+#. type: tbl table
+#: ../man/ps.1:1526
+#, no-wrap
+msgid "pmem"
+msgstr "pmem"
+
+#. type: tbl table
+#: ../man/ps.1:1531
+#, no-wrap
+msgid ""
+"see\n"
+"B<%mem>.\n"
+"(alias\n"
+"B<%mem>)."
+msgstr ""
+"consultați\n"
+"B<%mem>.\n"
+"(alias\n"
+"B<%mem>)."
+
+#. type: tbl table
+#: ../man/ps.1:1533
+#, no-wrap
+msgid "policy"
+msgstr "policy"
+
+#. type: tbl table
+#: ../man/ps.1:1533
+#, no-wrap
+msgid "POL"
+msgstr "POL"
+
+#. type: tbl table
+#: ../man/ps.1:1537
+#, no-wrap
+msgid ""
+"scheduling class of the process. (alias\n"
+"B<class>, B<cls>).\n"
+"Possible values are:\n"
+msgstr ""
+"clasa de planificare a procesului. (alias\n"
+"B<class>, B<cls>).\n"
+"Valorile posibile sunt:\n"
+
+#. type: tbl table
+#: ../man/ps.1:1561
+#, no-wrap
+msgid "parent process ID."
+msgstr "identificatorul procesului părinte."
+
+#. type: tbl table
+#: ../man/ps.1:1563
+#, no-wrap
+msgid "pri"
+msgstr "pri"
+
+#. type: tbl table
+#: ../man/ps.1:1563
+#, no-wrap
+msgid "PRI"
+msgstr "PRI"
+
+#. type: tbl table
+#: ../man/ps.1:1565
+#, no-wrap
+msgid "priority of the process. Higher number means higher priority."
+msgstr "prioritatea procesului. Un număr mai mare înseamnă o prioritate mai mare."
+
+#. type: tbl table
+#: ../man/ps.1:1567
+#, no-wrap
+msgid "psr"
+msgstr "psr"
+
+#. type: tbl table
+#: ../man/ps.1:1567
+#, no-wrap
+msgid "PSR"
+msgstr "PSR"
+
+#. type: tbl table
+#: ../man/ps.1:1569
+#, no-wrap
+msgid "processor that process last executed on."
+msgstr "procesorul pe care a fost executat ultima dată procesul."
+
+#. type: tbl table
+#: ../man/ps.1:1571
+#, no-wrap
+msgid "pss"
+msgstr "pss"
+
+#. type: tbl table
+#: ../man/ps.1:1571
+#, no-wrap
+msgid "PSS"
+msgstr "PSS"
+
+#. type: tbl table
+#: ../man/ps.1:1574
+#, no-wrap
+msgid ""
+"Proportional share size, the non-swapped physical memory, with shared memory\n"
+"proportionally accounted to all tasks mapping it."
+msgstr ""
+"dimensiunea cotei proporționale, memoria fizică neinterschimbabilă(non-swapped), \n"
+"cu memoria partajată raportată proporțional cu toate sarcinile care îi sunt asociate."
+
+#. type: tbl table
+#: ../man/ps.1:1576
+#, no-wrap
+msgid "rbytes"
+msgstr "rbytes"
+
+#. type: tbl table
+#: ../man/ps.1:1576
+#, no-wrap
+msgid "RBYTES"
+msgstr "RBYTES"
+
+#. type: tbl table
+#: ../man/ps.1:1578
+#, no-wrap
+msgid "Number of bytes which this process really did cause to be fetched from the storage layer."
+msgstr "numărul de octeți care au fost preluați efectiv din stratul de stocare de date prin acest proces."
+
+#. type: tbl table
+#: ../man/ps.1:1580
+#, no-wrap
+msgid "rchars"
+msgstr "rchars"
+
+#. type: tbl table
+#: ../man/ps.1:1580
+#, no-wrap
+msgid "RCHARS"
+msgstr "RCHARS"
+
+#. type: tbl table
+#: ../man/ps.1:1582
+#, no-wrap
+msgid "Number of bytes which this task has caused to be read from storage."
+msgstr "Numărul de octeți citiți din spațiul de stocare datorită acestei sarcini."
+
+#. type: tbl table
+#: ../man/ps.1:1584
+#, no-wrap
+msgid "rgid"
+msgstr "rgid"
+
+#. type: tbl table
+#: ../man/ps.1:1584
+#, no-wrap
+msgid "RGID"
+msgstr "RGID"
+
+#. type: tbl table
+#: ../man/ps.1:1586
+#, no-wrap
+msgid "real group ID."
+msgstr "identificatorul grupului real."
+
+#. type: tbl table
+#: ../man/ps.1:1591
+#, no-wrap
+msgid ""
+"real group name. This will be the textual group ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise."
+msgstr ""
+"numele real al grupului. Acesta va fi ID-ul textual al grupului, dacă poate fi\n"
+"obținut și lățimea câmpului o permite, sau o reprezentare zecimală în caz contrar."
+
+#. type: tbl table
+#: ../man/ps.1:1593
+#, no-wrap
+msgid "rops"
+msgstr "rops"
+
+#. type: tbl table
+#: ../man/ps.1:1593
+#, no-wrap
+msgid "ROPS"
+msgstr "ROPS"
+
+#. type: tbl table
+#: ../man/ps.1:1596
+#, no-wrap
+msgid ""
+"Number of read I/O operations—that is, system calls such as\n"
+"B<read>(2) and B<pread>(2)."
+msgstr ""
+"Numărul de operații de citire In/Ieș — adică apeluri de sistem, cum ar fi\n"
+"B<read>(2) și B<pread>(2)."
+
+#. type: tbl table
+#: ../man/ps.1:1598 ../man/ps.1:1604
+#, no-wrap
+msgid "RSS"
+msgstr "RSS"
+
+#. type: tbl table
+#: ../man/ps.1:1602
+#, no-wrap
+msgid ""
+"resident set size, the non-swapped physical memory that a task has used (in\n"
+"kilobytes). (alias\n"
+"B<rssize>, B<rsz>)."
+msgstr ""
+"dimensiunea memoriei rezidente („resident set size†sau RSS), memoria fizică\n"
+"netransferată în spațiul de interschimb pe care o sarcină l-a folosit (în\n"
+"kiloocteți) (alias\n"
+"B<rssize>, B<rsz>)."
+
+#. type: tbl table
+#: ../man/ps.1:1604
+#, no-wrap
+msgid "rssize"
+msgstr "rssize"
+
+#. type: tbl table
+#: ../man/ps.1:1609
+#, no-wrap
+msgid ""
+"see\n"
+"B<rss>.\n"
+"(alias\n"
+"B<rss>, B<rsz>)."
+msgstr ""
+"consultați\n"
+"B<rss>.\n"
+"(alias\n"
+"B<rss>, B<rsz>)."
+
+#. type: tbl table
+#: ../man/ps.1:1611
+#, no-wrap
+msgid "rsz"
+msgstr "rsz"
+
+#. type: tbl table
+#: ../man/ps.1:1611
+#, no-wrap
+msgid "RSZ"
+msgstr "RSZ"
+
+#. type: tbl table
+#: ../man/ps.1:1616
+#, no-wrap
+msgid ""
+"see\n"
+"B<rss>.\n"
+"(alias\n"
+"B<rss>, B<rssize>)."
+msgstr ""
+"consultați\n"
+"B<rss>.\n"
+"(alias\n"
+"B<rss>, B<rssize>)."
+
+#. type: tbl table
+#: ../man/ps.1:1618
+#, no-wrap
+msgid "rtprio"
+msgstr "rtprio"
+
+#. type: tbl table
+#: ../man/ps.1:1618
+#, no-wrap
+msgid "RTPRIO"
+msgstr "RTPRIO"
+
+#. type: tbl table
+#: ../man/ps.1:1620
+#, no-wrap
+msgid "realtime priority."
+msgstr "prioritate în timp real."
+
+#. type: tbl table
+#: ../man/ps.1:1622
+#, no-wrap
+msgid "ruid"
+msgstr "ruid"
+
+#. type: tbl table
+#: ../man/ps.1:1622
+#, no-wrap
+msgid "RUID"
+msgstr "RUID"
+
+#. type: tbl table
+#: ../man/ps.1:1624
+#, no-wrap
+msgid "real user ID."
+msgstr "identificatorul utilizatorului real."
+
+#. type: tbl table
+#: ../man/ps.1:1629
+#, no-wrap
+msgid ""
+"real user ID. This will be the textual user ID, if it can be obtained and\n"
+"the field width permits, or a decimal representation otherwise."
+msgstr ""
+"identificatorul utilizatorului real. Acesta va fi ID-ul textual al utilizatorului,\n"
+"dacă poate fi obținut și lățimea câmpului o permite, sau o reprezentare zecimală\n"
+"în caz contrar."
+
+#. type: tbl table
+#: ../man/ps.1:1638
+#, no-wrap
+msgid ""
+"minimal state display (one character). See section\n"
+"B<PROCESS STATE CODES>\n"
+"for the different values. See also\n"
+"B<stat>\n"
+"if you want additional information displayed. (alias\n"
+"B<state>)."
+msgstr ""
+"afișare minimă a stării (un caracter). Consultați secțiunea\n"
+"B<CODURI DE STARE A PROCESULUI>\n"
+"sau diferitele valori. Consultați de asemenea\n"
+"B<stat>\n"
+"dacă doriți să fie afișate informații suplimentare (alias\n"
+"B<state>)."
+
+#. type: tbl table
+#: ../man/ps.1:1640
+#, no-wrap
+msgid "sched"
+msgstr "sched"
+
+#. type: tbl table
+#: ../man/ps.1:1640
+#, no-wrap
+msgid "SCH"
+msgstr "SCH"
+
+#. type: tbl table
+#: ../man/ps.1:1644
+#, no-wrap
+msgid ""
+"scheduling policy of the process. The policies SCHED_OTHER (SCHED_NORMAL),\n"
+"SCHED_FIFO, SCHED_RR, SCHED_BATCH, SCHED_ISO, SCHED_IDLE and SCHED_DEADLINE are\n"
+"respectively displayed as 0, 1, 2, 3, 4, 5 and 6."
+msgstr ""
+"politica de planificare a procesului. Politicile SCHED_OTHER (SCHED_NORMAL),\n"
+"SCHED_FIFO, SCHED_RR, SCHED_BATCH, SCHED_ISO, SCHED_IDLE și SCHED_DEADLINE sunt\n"
+"afișate respectiv ca 0, 1, 2, 3, 4, 5 și 6."
+
+#. type: tbl table
+#: ../man/ps.1:1646
+#, no-wrap
+msgid "seat"
+msgstr "seat"
+
+#. type: tbl table
+#: ../man/ps.1:1646
+#, no-wrap
+msgid "SEAT"
+msgstr "SEAT"
+
+#. type: tbl table
+#: ../man/ps.1:1650
+#, no-wrap
+msgid ""
+"displays the identifier associated with all hardware devices assigned\n"
+"to a specific workplace,\n"
+"if systemd support has been included."
+msgstr "afișează identificatorul asociat cu toate dispozitivele hardware alocate unei anumite stații de lucru, dacă a fost inclus suportul pentru «systemd»."
+
+#. type: tbl table
+#: ../man/ps.1:1652
+#, no-wrap
+msgid "sess"
+msgstr "sess"
+
+#. type: tbl table
+#: ../man/ps.1:1652
+#, no-wrap
+msgid "SESS"
+msgstr "SESS"
+
+#. type: tbl table
+#: ../man/ps.1:1655
+#, no-wrap
+msgid ""
+"session ID or, equivalently, the process ID of the session leader. (alias\n"
+"B<session>, B<sid>)."
+msgstr ""
+"identificatorul de sesiune sau, în mod echivalent, identificatorul de proces al liderului de sesiune (alias\n"
+"B<session>, B<sid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1657
+#, no-wrap
+msgid "sgi_p"
+msgstr "sgi_p"
+
+#. type: tbl table
+#: ../man/ps.1:1660
+#, no-wrap
+msgid ""
+"processor that the process is currently executing on. Displays \"*\" if the\n"
+"process is not currently running or runnable."
+msgstr "procesorul pe care se execută în prezent procesul. Afișează „*†dacă procesul nu rulează în prezent sau nu poate fi executat."
+
+#. type: tbl table
+#: ../man/ps.1:1662
+#, no-wrap
+msgid "sgid"
+msgstr "sgid"
+
+#. type: tbl table
+#: ../man/ps.1:1662
+#, no-wrap
+msgid "SGID"
+msgstr "SGID"
+
+#. type: tbl table
+#: ../man/ps.1:1665
+#, no-wrap
+msgid ""
+"saved group ID. (alias\n"
+"B<svgid>)."
+msgstr "ID-ul de grup salvat (alias B<svgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1667
+#, no-wrap
+msgid "sgroup"
+msgstr "sgroup"
+
+#. type: tbl table
+#: ../man/ps.1:1667
+#, no-wrap
+msgid "SGROUP"
+msgstr "SGROUP"
+
+#. type: tbl table
+#: ../man/ps.1:1670
+#, no-wrap
+msgid ""
+"saved group name. This will be the textual group ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise."
+msgstr "numele de grup salvat. Acesta va fi ID-ul textual al grupului, dacă poate fi obținut și lățimea câmpului o permite, sau o reprezentare zecimală în caz contrar."
+
+#. type: tbl table
+#: ../man/ps.1:1672
+#, no-wrap
+msgid "sid"
+msgstr "sid"
+
+#. type: tbl table
+#: ../man/ps.1:1672
+#, no-wrap
+msgid "SID"
+msgstr "SID"
+
+#. type: tbl table
+#: ../man/ps.1:1677
+#, no-wrap
+msgid ""
+"see\n"
+"B<sess>.\n"
+"(alias\n"
+"B<sess>, B<session>)."
+msgstr ""
+"consultați\n"
+"B<sess>.\n"
+"(alias\n"
+"B<sess>, B<session>)."
+
+#. type: tbl table
+#: ../man/ps.1:1679
+#, no-wrap
+msgid "sig"
+msgstr "sig"
+
+#. type: tbl table
+#: ../man/ps.1:1684
+#, no-wrap
+msgid ""
+"see\n"
+"B<pending>.\n"
+"(alias\n"
+"B<pending>, B<sig_pend>)."
+msgstr ""
+"consultați\n"
+"B<pending>.\n"
+"(alias\n"
+"B<pending>, B<sig_pend>)."
+
+#. type: tbl table
+#: ../man/ps.1:1686
+#, no-wrap
+msgid "sigcatch"
+msgstr "sigcatch"
+
+#. type: tbl table
+#: ../man/ps.1:1691
+#, no-wrap
+msgid ""
+"see\n"
+"B<caught>.\n"
+"(alias\n"
+"B<caught>, B<sig_catch>)."
+msgstr ""
+"consultați\n"
+"B<caught>.\n"
+"(alias\n"
+"B<caught>, B<sig_catch>)."
+
+#. type: tbl table
+#: ../man/ps.1:1693
+#, no-wrap
+msgid "sigignore"
+msgstr "sigignore"
+
+#. type: tbl table
+#: ../man/ps.1:1698
+#, no-wrap
+msgid ""
+"see\n"
+"B<ignored>.\n"
+"(alias\n"
+"B<ignored>, B<sig_ignore>)."
+msgstr ""
+"consultați\n"
+"B<ignored>.\n"
+"(alias\n"
+"B<ignored>, B<sig_ignore>)."
+
+#. type: tbl table
+#: ../man/ps.1:1700
+#, no-wrap
+msgid "sigmask"
+msgstr "sigmask"
+
+#. type: tbl table
+#: ../man/ps.1:1705
+#, no-wrap
+msgid ""
+"see\n"
+"B<blocked>.\n"
+"(alias\n"
+"B<blocked>, B<sig_block>)."
+msgstr ""
+"consultați\n"
+"B<blocked>.\n"
+"(alias\n"
+"B<blocked>, B<sig_block>)."
+
+#. type: tbl table
+#: ../man/ps.1:1707
+#, no-wrap
+msgid "SIZE"
+msgstr "DIMENSIUNE"
+
+#. type: tbl table
+#: ../man/ps.1:1711
+#, no-wrap
+msgid ""
+"approximate amount of swap space that would be required if the process were\n"
+"to dirty all writable pages and then be swapped out. This number is very\n"
+"rough!"
+msgstr "cantitatea aproximativă de spaÈ›iu de interschimb care ar fi necesară dacă procesul ar fi pe cale să modifice (mâzgălească „dirtyâ€) toate paginile inscriptibile È™i apoi să se transfere în spaÈ›iul de schimb (swap). Acest număr este foarte aproximativ!"
+
+#. type: tbl table
+#: ../man/ps.1:1713
+#, no-wrap
+msgid "slice"
+msgstr "slice"
+
+#. type: tbl table
+#: ../man/ps.1:1713
+#, no-wrap
+msgid "SLICE"
+msgstr "SLICE"
+
+#. type: tbl table
+#: ../man/ps.1:1716
+#, no-wrap
+msgid ""
+"displays the slice unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr "afișează unitatea de felie (slice) căreia îi aparține un proces, dacă a fost inclus suportul pentru «systemd»."
+
+#. type: tbl table
+#: ../man/ps.1:1718
+#, no-wrap
+msgid "spid"
+msgstr "spid"
+
+#. type: tbl table
+#: ../man/ps.1:1718
+#, no-wrap
+msgid "SPID"
+msgstr "SPID"
+
+#. type: tbl table
+#: ../man/ps.1:1723
+#, no-wrap
+msgid ""
+"see\n"
+"B<lwp>.\n"
+"(alias\n"
+"B<lwp>, B<tid>)."
+msgstr ""
+"consultați\n"
+"B<lwp>.\n"
+"(alias\n"
+"B<lwp>, B<tid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1725
+#, no-wrap
+msgid "stackp"
+msgstr "stackp"
+
+#. type: tbl table
+#: ../man/ps.1:1725
+#, no-wrap
+msgid "STACKP"
+msgstr "STACKP"
+
+#. type: tbl table
+#: ../man/ps.1:1727
+#, no-wrap
+msgid "address of the bottom (start) of stack for the process."
+msgstr "adresa de la partea de jos (început) a stivei pentru proces."
+
+#. type: tbl table
+#: ../man/ps.1:1729
+#, no-wrap
+msgid "start"
+msgstr "start"
+
+#. type: tbl table
+#: ../man/ps.1:1734
+#, no-wrap
+msgid ""
+"time the command started. If the process was started less than 24 hours ago,\n"
+"the output format is \"HH:MM:SS\", else it is \"\\ \\ Mmm\\ dd\" (where Mmm is a\n"
+"three-letter month name). See also\n"
+"B<bsdstart>, B<start>, B<start_time>, and B<stime>."
+msgstr "momentul în care comanda a început. Dacă procesul a fost pornit cu mai puÈ›in de 24 de ore în urmă, formatul de ieÈ™ire este „HH:MM:SSâ€, altfel este „\\ \\ Mmm\\ dd†(unde Mmm este un nume de lună format din trei litere). ConsultaÈ›i, de asemenea, B<lstart>, B<bsdstart>, B<start_time> È™i B<stime>."
+
+#. type: tbl table
+#: ../man/ps.1:1743
+#, no-wrap
+msgid ""
+"starting time or date of the process. Only the year will be displayed if the\n"
+"process was not started the same year\n"
+"B<ps>\n"
+"was invoked, or \"MmmDD\" if it was not started the same day, or \"HH:MM\"\n"
+"otherwise. See also\n"
+"B<bsdstart>, B<start>, B<lstart>, and B<stime>."
+msgstr "ora sau data de începere a procesului. Doar anul va fi afișat dacă procesul nu a fost început în același an în care a fost invocat B<ps>, sau „MmmDD†dacă nu a fost început în aceeași zi, sau „HH:MM†în caz contrar. Consultați, de asemenea, B<bsdstart>, B<start>, B<lstart> și B<stime>."
+
+#. type: tbl table
+#: ../man/ps.1:1745
+#, no-wrap
+msgid "stat"
+msgstr "stat"
+
+#. type: tbl table
+#: ../man/ps.1:1745
+#, no-wrap
+msgid "STAT"
+msgstr "STAT"
+
+#. type: tbl table
+#: ../man/ps.1:1751
+#, no-wrap
+msgid ""
+"multi-character process state. See section\n"
+"B<PROCESS STATE CODES>\n"
+"for the different values meaning. See also\n"
+"B<s>\\ andB<\\ state>\n"
+"if you just want the first character displayed."
+msgstr ""
+"starea procesului cu mai multe caractere. Consultați secțiunea\n"
+"B<CODURI DE STARE A PROCESULUI>\n"
+"pentru diferitele semnificații ale valorilor.Consultați și\n"
+"B<s> și B<state>\n"
+"dacă doriți doar să fie afișat primul caracter."
+
+#. type: tbl table
+#: ../man/ps.1:1753
+#, no-wrap
+msgid "state"
+msgstr "state"
+
+#. type: tbl table
+#: ../man/ps.1:1756
+#, no-wrap
+msgid ""
+"see\n"
+"B<s>.\\& (aliasB<\\ s>)."
+msgstr ""
+"consultați\n"
+"B<s>. (alias B<s>)."
+
+#. type: tbl table
+#: ../man/ps.1:1758
+#, no-wrap
+msgid "stime"
+msgstr "stime"
+
+#. type: tbl table
+#: ../man/ps.1:1758
+#, no-wrap
+msgid "STIME"
+msgstr "STIME"
+
+#. type: tbl table
+#: ../man/ps.1:1760
+#, no-wrap
+msgid "see B<start_time>. (alias B<start_time>)."
+msgstr "consultați B<start_time>. (alias B<start_time>)."
+
+#. type: tbl table
+#: ../man/ps.1:1762
+#, no-wrap
+msgid "suid"
+msgstr "suid"
+
+#. type: tbl table
+#: ../man/ps.1:1762
+#, no-wrap
+msgid "SUID"
+msgstr "SUID"
+
+#. type: tbl table
+#: ../man/ps.1:1765
+#, no-wrap
+msgid ""
+"saved user ID. (alias\n"
+"B<svuid>)."
+msgstr ""
+"identificatorul utilizatorului salvat. (alias\n"
+"B<svuid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1767
+#, no-wrap
+msgid "supgid"
+msgstr "supgid"
+
+#. type: tbl table
+#: ../man/ps.1:1767
+#, no-wrap
+msgid "SUPGID"
+msgstr "SUPGID"
+
+#. type: tbl table
+#: ../man/ps.1:1770
+#, no-wrap
+msgid ""
+"group ids of supplementary groups, if any. See\n"
+"B<getgroups>(2)."
+msgstr ""
+"identificatoare de grup ale grupurilor suplimentare, dacă există. Consultați\n"
+"B<getgroups>(2)."
+
+#. type: tbl table
+#: ../man/ps.1:1772
+#, no-wrap
+msgid "supgrp"
+msgstr "supgrp"
+
+#. type: tbl table
+#: ../man/ps.1:1772
+#, no-wrap
+msgid "SUPGRP"
+msgstr "SUPGRP"
+
+#. type: tbl table
+#: ../man/ps.1:1775
+#, no-wrap
+msgid ""
+"group names of supplementary groups, if any. See\n"
+"B<getgroups>(2)."
+msgstr ""
+"numele de grup ale grupurilor suplimentare, dacă există. Consultați\n"
+"B<getgroups>(2)."
+
+#. type: tbl table
+#: ../man/ps.1:1777
+#, no-wrap
+msgid "suser"
+msgstr "suser"
+
+#. type: tbl table
+#: ../man/ps.1:1777
+#, no-wrap
+msgid "SUSER"
+msgstr "SUSER"
+
+#. type: tbl table
+#: ../man/ps.1:1781
+#, no-wrap
+msgid ""
+"saved user name. This will be the textual user ID, if it can be obtained and\n"
+"the field width permits, or a decimal representation otherwise. (alias\n"
+"B<svuser>)."
+msgstr ""
+"numele de utilizator salvat. Acesta va fi ID-ul textual al utilizatorului,\n"
+"dacă poate fi obținut și lățimea câmpului o permite, sau o reprezentare\n"
+"zecimală în caz contrar. (alias\n"
+"B<svuser>)."
+
+#. type: tbl table
+#: ../man/ps.1:1783
+#, no-wrap
+msgid "svgid"
+msgstr "svgid"
+
+#. type: tbl table
+#: ../man/ps.1:1783
+#, no-wrap
+msgid "SVGID"
+msgstr "SVGID"
+
+#. type: tbl table
+#: ../man/ps.1:1788
+#, no-wrap
+msgid ""
+"see\n"
+"B<sgid>.\n"
+"(alias\n"
+"B<sgid>)."
+msgstr ""
+"consultați\n"
+"B<sgid>.\n"
+"(alias\n"
+"B<sgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1790
+#, no-wrap
+msgid "svuid"
+msgstr "svuid"
+
+#. type: tbl table
+#: ../man/ps.1:1790
+#, no-wrap
+msgid "SVUID"
+msgstr "SVUID"
+
+#. type: tbl table
+#: ../man/ps.1:1795
+#, no-wrap
+msgid ""
+"see\n"
+"B<suid>.\n"
+"(alias\n"
+"B<suid>)."
+msgstr ""
+"consultați\n"
+"B<suid>.\n"
+"(alias\n"
+"B<suid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1797
+#, no-wrap
+msgid "sz"
+msgstr "sz"
+
+#. type: tbl table
+#: ../man/ps.1:1797
+#, no-wrap
+msgid "SZ"
+msgstr "SZ"
+
+# R-GC, scrie:
+# cu toate că «core», înseamnă nucleu sau
+# bază/principal; din cînd în cînd are înțelesul
+# de memorie; a se vedea pagina de:
+# <core dump> din Wikipedia.
+#. type: tbl table
+#: ../man/ps.1:1802
+#, no-wrap
+msgid ""
+"size in physical pages of the core image of the process. This includes text,\n"
+"data, and stack space. Device mappings are currently excluded; this is\n"
+"subject to change. See\n"
+"B<vsz>\\ andB<\\ rss>."
+msgstr ""
+"dimensiunea în paginile fizice a imaginii din memorie a procesului. Aceasta include text, date și spațiu de stivă. Cartografierile în memorie ale dispozitivelor sunt în prezent excluse; acest lucru este supus modificării. Consultați\n"
+"B<vsz> și B<rss>."
+
+#. type: tbl table
+#: ../man/ps.1:1804
+#, no-wrap
+msgid "tgid"
+msgstr "tgid"
+
+#. type: tbl table
+#: ../man/ps.1:1804
+#, no-wrap
+msgid "TGID"
+msgstr "TGID"
+
+#. type: tbl table
+#: ../man/ps.1:1808
+#, no-wrap
+msgid ""
+"a number representing the thread group to which a task belongs (alias\n"
+"B<pid>).\n"
+"It is the process ID of the thread group leader."
+msgstr ""
+"un număr care reprezintă grupul de fire căruia îi aparține o sarcină (alias\n"
+"B<pid>).\n"
+"Este identificatorul de proces al liderului grupului de fire."
+
+#. type: tbl table
+#: ../man/ps.1:1810
+#, no-wrap
+msgid "thcount"
+msgstr "thcount"
+
+#. type: tbl table
+#: ../man/ps.1:1810
+#, no-wrap
+msgid "THCNT"
+msgstr "THCNT"
+
+#. type: tbl table
+#: ../man/ps.1:1816
+#, no-wrap
+msgid ""
+"see\n"
+"B<nlwp>.\n"
+"(alias\n"
+"B<nlwp>).\n"
+"number of kernel threads owned by the process."
+msgstr ""
+"consultați\n"
+"B<nlwp>.\n"
+"(alias\n"
+"B<nlwp>).\n"
+"numărul de fire de execuție a nucleului deținute de proces."
+
+#. type: tbl table
+#: ../man/ps.1:1818
+#, no-wrap
+msgid "tid"
+msgstr "tid"
+
+#. type: tbl table
+#: ../man/ps.1:1818
+#, no-wrap
+msgid "TID"
+msgstr "TID"
+
+#. type: tbl table
+#: ../man/ps.1:1825
+#, no-wrap
+msgid ""
+"the unique number representing a dispatchable entity (alias\n"
+"B<spid>, B<tid>).\n"
+"This value may also appear as: a process ID (pid); a process group ID (pgrp);\n"
+"a session ID for the session leader (sid); a thread group ID for the thread\n"
+"group leader (tgid); and a tty process group ID for the process group leader\n"
+"(tpgid)."
+msgstr ""
+"numărul unic reprezentând identificatorul unei entități distribuibile (alias\n"
+"B<lwp>, B<spid>).\n"
+"Această valoare poate apărea și ca: un ID de proces (pid); un ID de grup\n"
+"de procese (pgrp); un ID de sesiune pentru liderul de sesiune (sid); un\n"
+"ID de grup de fire pentru liderul grupului de fire (tgid); și un ID de grup\n"
+"de procese tty pentru liderul grupului de procese\n"
+"(tpgid)."
+
+#. type: tbl table
+#: ../man/ps.1:1830
+#, no-wrap
+msgid ""
+"cumulative CPU\\ time, \"[DD-]HH:MM:SS\" format. (alias\n"
+"B<cputime>)."
+msgstr ""
+"timpul cumulat al procesorului, în formatul „[DD-]HH:MM:SS†(alias\n"
+"B<cputime>)."
+
+#. type: tbl table
+#: ../man/ps.1:1832
+#, no-wrap
+msgid "timens"
+msgstr "timens"
+
+#. type: tbl table
+#: ../man/ps.1:1832
+#, no-wrap
+msgid "TIMENS"
+msgstr "TIMENS"
+
+#. type: tbl table
+#: ../man/ps.1:1838
+#, no-wrap
+msgid "times"
+msgstr "times"
+
+#. type: tbl table
+#: ../man/ps.1:1841
+#, no-wrap
+msgid ""
+"cumulative CPU\\ time in seconds (alias\n"
+"B<cputimes>)."
+msgstr ""
+"timpul cumulat al procesorului în secunde (alias\n"
+"B<cputimes>)."
+
+#. type: tbl table
+#: ../man/ps.1:1843
+#, no-wrap
+msgid "tname"
+msgstr "tname"
+
+#. type: tbl table
+#: ../man/ps.1:1846
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tt>, B<tty>)."
+msgstr ""
+"tty (terminal) de control (alias\n"
+"B<tt>, B<tty>)."
+
+#. type: tbl table
+#: ../man/ps.1:1848
+#, no-wrap
+msgid "TPGID"
+msgstr "TPGID"
+
+#. type: tbl table
+#: ../man/ps.1:1851
+#, no-wrap
+msgid ""
+"ID of the foreground process group on the tty (terminal) that the process is\n"
+"connected to, or -1 if the process is not connected to a tty."
+msgstr "identificatorul grupului de procese din primplan pe tty (terminalul) la care este conectat procesul sau -1 dacă procesul nu este conectat la un tty."
+
+#. type: tbl table
+#: ../man/ps.1:1853
+#, no-wrap
+msgid "trs"
+msgstr "trs"
+
+#. type: tbl table
+#: ../man/ps.1:1853
+#, no-wrap
+msgid "TRS"
+msgstr "TRS"
+
+#. type: tbl table
+#: ../man/ps.1:1855
+#, no-wrap
+msgid "text resident set size, the amount of physical memory devoted to executable code."
+msgstr "dimensiunea textului în memoria rezidentă, cantitatea de memorie fizică dedicată codului executabil."
+
+#. type: tbl table
+#: ../man/ps.1:1857
+#, no-wrap
+msgid "tt"
+msgstr "tt"
+
+#. type: tbl table
+#: ../man/ps.1:1857 ../man/ps.1:1862
+#, no-wrap
+msgid "TT"
+msgstr "TT"
+
+#. type: tbl table
+#: ../man/ps.1:1860
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tname>, B<tty>)."
+msgstr ""
+"tty (terminal) de control (alias\n"
+"B<tname>, B<tty>)."
+
+#. type: tbl table
+#: ../man/ps.1:1865
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tname>, B<tt>)."
+msgstr ""
+"tty (terminal) de control (alias\n"
+"B<tname>, B<tt>)."
+
+#. type: tbl table
+#: ../man/ps.1:1867
+#, no-wrap
+msgid "ucmd"
+msgstr "ucmd"
+
+#. type: tbl table
+#: ../man/ps.1:1872
+#, no-wrap
+msgid ""
+"see\n"
+"B<comm>.\n"
+"(alias\n"
+"B<comm>, B<ucomm>)."
+msgstr ""
+"consultați\n"
+"B<comm>.\n"
+"(alias\n"
+"B<comm>, B<ucomm>)."
+
+#. type: tbl table
+#: ../man/ps.1:1874
+#, no-wrap
+msgid "ucomm"
+msgstr "ucomm"
+
+#. type: tbl table
+#: ../man/ps.1:1879
+#, no-wrap
+msgid ""
+"see\n"
+"B<comm>.\n"
+"(alias\n"
+"B<comm>, B<ucmd>)."
+msgstr ""
+"consultați\n"
+"B<comm>.\n"
+"(alias\n"
+"B<comm>, B<ucmd>)."
+
+#. type: tbl table
+#: ../man/ps.1:1881
+#, no-wrap
+msgid "UID"
+msgstr "UID"
+
+#. type: tbl table
+#: ../man/ps.1:1886
+#, no-wrap
+msgid ""
+"see\n"
+"B<euid>.\n"
+"(alias\n"
+"B<euid>)."
+msgstr ""
+"consultați\n"
+"B<euid>.\n"
+"(alias\n"
+"B<euid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1888
+#, no-wrap
+msgid "uname"
+msgstr "uname"
+
+#. type: tbl table
+#: ../man/ps.1:1893
+#, no-wrap
+msgid ""
+"see\n"
+"B<euser>.\n"
+"(alias\n"
+"B<euser>, B<user>)."
+msgstr ""
+"consultați\n"
+"B<euser>.\n"
+"(alias\n"
+"B<euser>, B<user>)."
+
+#. type: tbl table
+#: ../man/ps.1:1895
+#, no-wrap
+msgid "unit"
+msgstr "unit"
+
+#. type: tbl table
+#: ../man/ps.1:1895
+#, no-wrap
+msgid "UNIT"
+msgstr "UNIT"
+
+#. type: tbl table
+#: ../man/ps.1:1898
+#, no-wrap
+msgid ""
+"displays unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr "afișează unitatea căreia îi aparține un proces, dacă a fost inclus suportul pentru «systemd»."
+
+#. type: tbl table
+#: ../man/ps.1:1905
+#, no-wrap
+msgid ""
+"see\n"
+"B<euser>.\n"
+"(alias\n"
+"B<euser>, B<uname>)."
+msgstr ""
+"consultați\n"
+"B<euser>.\n"
+"(alias\n"
+"B<euser>, B<uname>)."
+
+#. type: tbl table
+#: ../man/ps.1:1907
+#, no-wrap
+msgid "userns"
+msgstr "userns"
+
+#. type: tbl table
+#: ../man/ps.1:1907
+#, no-wrap
+msgid "USERNS"
+msgstr "USERNS"
+
+#. type: tbl table
+#: ../man/ps.1:1913
+#, no-wrap
+msgid "uss"
+msgstr "uss"
+
+#. type: tbl table
+#: ../man/ps.1:1913
+#, no-wrap
+msgid "USS"
+msgstr "USS"
+
+#. type: tbl table
+#: ../man/ps.1:1916
+#, no-wrap
+msgid ""
+"Unique set size, the non-swapped physical memory, which\n"
+"is not shared with an another task."
+msgstr "dimensiunea memoriei unice, memoria fizică neinterschimbată (non-swapped), care nu este partajată cu o altă sarcină."
+
+#. type: tbl table
+#: ../man/ps.1:1918
+#, no-wrap
+msgid "utsns"
+msgstr "utsns"
+
+#. type: tbl table
+#: ../man/ps.1:1918
+#, no-wrap
+msgid "UTSNS"
+msgstr "UTSNS"
+
+#. type: tbl table
+#: ../man/ps.1:1924
+#, no-wrap
+msgid "uunit"
+msgstr "uunit"
+
+#. type: tbl table
+#: ../man/ps.1:1924
+#, no-wrap
+msgid "UUNIT"
+msgstr "UUNIT"
+
+#. type: tbl table
+#: ../man/ps.1:1927
+#, no-wrap
+msgid ""
+"displays user unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr "afișează unitatea utilizator căreia îi aparține un proces, dacă a fost inclus suportul pentru «systemd»."
+
+#. type: tbl table
+#: ../man/ps.1:1934
+#, no-wrap
+msgid ""
+"see\n"
+"B<vsz>.\n"
+"(alias\n"
+"B<vsz>)."
+msgstr ""
+"consultați\n"
+"B<vsz>.\n"
+"(alias\n"
+"B<vsz>)."
+
+#. type: tbl table
+#: ../man/ps.1:1940
+#, no-wrap
+msgid ""
+"virtual memory size of the process in KiB (1024-byte units). Device\n"
+"mappings are currently excluded; this is subject to change. (alias\n"
+"B<vsize>)."
+msgstr "dimensiunea memoriei virtuale a procesului în Kio (unități de 1024 de octeți). Cartografierile în memorie ale dispozitivelor sunt în prezent excluse; acest lucru este supus modificării (alias B<vsize>)."
+
+#. type: tbl table
+#: ../man/ps.1:1942
+#, no-wrap
+msgid "wbytes"
+msgstr "wbytes"
+
+#. type: tbl table
+#: ../man/ps.1:1942
+#, no-wrap
+msgid "WBYTES"
+msgstr "WBYTES"
+
+#. type: tbl table
+#: ../man/ps.1:1944
+#, no-wrap
+msgid "Number of bytes which this process caused to be sent to the storage layer."
+msgstr "numărul de octeți care au fost trimiși la stratul de stocare prin acest proces."
+
+#. type: tbl table
+#: ../man/ps.1:1946
+#, no-wrap
+msgid "wcbytes"
+msgstr "wcbytes"
+
+#. type: tbl table
+#: ../man/ps.1:1946
+#, no-wrap
+msgid "WCBYTES"
+msgstr "WCBYTES"
+
+#. type: tbl table
+#: ../man/ps.1:1948
+#, no-wrap
+msgid "Number of cancelled write bytes."
+msgstr "numărul de octeți de scriere anulați."
+
+#. type: tbl table
+#: ../man/ps.1:1950
+#, no-wrap
+msgid "wchan"
+msgstr "wchan"
+
+#. type: tbl table
+#: ../man/ps.1:1952
+#, no-wrap
+msgid "name of the kernel function in which the process is sleeping."
+msgstr "numele funcției de nucleu în care procesul se află dormind."
+
+#. type: tbl table
+#: ../man/ps.1:1954
+#, no-wrap
+msgid "wchars"
+msgstr "wchars"
+
+#. type: tbl table
+#: ../man/ps.1:1954
+#, no-wrap
+msgid "WCHARS"
+msgstr "WCHARS"
+
+#. type: tbl table
+#: ../man/ps.1:1956
+#, no-wrap
+msgid "Number of bytes which this task has caused, or shall cause to be written to disk."
+msgstr "numărul de octeți pe care această sarcină l-a cauzat, sau îl va face să fie scris pe disc."
+
+#. type: tbl table
+#: ../man/ps.1:1958
+#, no-wrap
+msgid "wops"
+msgstr "wops"
+
+#. type: tbl table
+#: ../man/ps.1:1958
+#, no-wrap
+msgid "WOPS"
+msgstr "WOPS"
+
+#. type: tbl table
+#: ../man/ps.1:1961
+#, no-wrap
+msgid ""
+"Number of write I/O operations—that is, system calls such as\n"
+"B<write>(2) and B<pwrite>(2)."
+msgstr ""
+"Numărul de operații de scriere In/Ieș — adică apeluri de sistem, cum ar fi\n"
+"B<write>(2) și B<pwrite>(2)."
+
+#. type: SH
+#: ../man/ps.1:1964
+#, no-wrap
+msgid "ENVIRONMENT VARIABLES"
+msgstr "VARIABILE DE MEDIU"
+
+#. type: Plain text
+#: ../man/ps.1:1967
+msgid "The following environment variables could affect B<ps>:"
+msgstr "Următoarele variabile de mediu ar putea afecta B<ps>:"
+
+#. type: TP
+#: ../man/ps.1:1967
+#, no-wrap
+msgid "B<COLUMNS>"
+msgstr "B<COLOANE>"
+
+#. type: Plain text
+#: ../man/ps.1:1970
+msgid "Override default display width."
+msgstr "Reamplasează lățimea de afișare implicită."
+
+#. type: TP
+#: ../man/ps.1:1970
+#, no-wrap
+msgid "B<LINES>"
+msgstr "B<LINII>"
+
+#. type: Plain text
+#: ../man/ps.1:1973
+msgid "Override default display height."
+msgstr "Reamplasează înălțimea de afișare implicită."
+
+#. type: TP
+#: ../man/ps.1:1973
+#, no-wrap
+msgid "B<PS_PERSONALITY>"
+msgstr "B<PS_PERSONALITY>"
+
+#. type: Plain text
+#: ../man/ps.1:1978 ../man/ps.1:1983
+msgid "Set to one of posix, old, linux, bsd, sun, digital...\\& (see section B<PERSONALITY> below)."
+msgstr "Stabilește una dintre valorile: posix, old, linux, bsd, sun, digital...\\& (consultați secțiunea B<PERSONALITATE> de mai jos)."
+
+#. type: TP
+#: ../man/ps.1:1978
+#, no-wrap
+msgid "B<CMD_ENV>"
+msgstr "B<CMD_ENV>"
+
+#. type: TP
+#: ../man/ps.1:1983
+#, no-wrap
+msgid "B<I_WANT_A_BROKEN_PS>"
+msgstr "B<I_WANT_A_BROKEN_PS>"
+
+#. type: Plain text
+#: ../man/ps.1:1986
+msgid "Force obsolete command line interpretation."
+msgstr "Forțează interpretarea liniei de comandă învechite."
+
+#. type: TP
+#: ../man/ps.1:1986
+#, no-wrap
+msgid "B<LC_TIME>"
+msgstr "B<LC_TIME>"
+
+#. type: Plain text
+#: ../man/ps.1:1989
+msgid "Date format."
+msgstr "Formatul de dată."
+
+#. type: TP
+#: ../man/ps.1:1989
+#, no-wrap
+msgid "B<LIBPROC_HIDE_KERNEL>"
+msgstr "B<LIBPROC_HIDE_KERNEL>"
+
+#. type: Plain text
+#: ../man/ps.1:1996
+msgid "Set this to any value to hide kernel threads normally displayed with the B<-e> option. This is equivalent to selecting B<--ppid 2 -p 2 --deselect> instead. Also works in BSD mode."
+msgstr "Stabiliți această variabilă la orice valoare pentru a ascunde firele de nucleu afișate în mod normal cu opțiunea B<-e>. Acest lucru este echivalent cu selectarea B<--ppid 2 -p 2 --deselect>. Funcționează și în modul BSD."
+
+#. type: TP
+#: ../man/ps.1:1996
+#, no-wrap
+msgid "B<PS_COLORS>"
+msgstr "B<PS_COLORS>"
+
+#. type: Plain text
+#: ../man/ps.1:1999
+msgid "Not currently supported."
+msgstr "Nu este acceptată momentan."
+
+#. type: TP
+#: ../man/ps.1:1999
+#, no-wrap
+msgid "B<PS_FORMAT>"
+msgstr "B<PS_FORMAT>"
+
+#. type: Plain text
+#: ../man/ps.1:2010
+msgid "Default output format override. You may set this to a format string of the type used for the B<-o> option. The B<DefSysV> and B<DefBSD> values are particularly useful."
+msgstr "Suprascrierea formatului de ieșire implicit. Puteți configura această variabilă la un șir de format de tipul utilizat pentru opțiunea B<-o>. Valorile B<DefSysV> și B<DefBSD> sunt deosebit de utile."
+
+#. type: TP
+#: ../man/ps.1:2010
+#, no-wrap
+msgid "B<POSIXLY_CORRECT>"
+msgstr "B<POSIXLY_CORRECT>"
+
+#. type: Plain text
+#: ../man/ps.1:2013 ../man/ps.1:2020
+msgid "Don't find excuses to ignore bad \"features\"."
+msgstr "Nu căutați scuze pentru a ignora „caracteristicile†incorecte."
+
+#. type: TP
+#: ../man/ps.1:2013
+#, no-wrap
+msgid "B<POSIX2>"
+msgstr "B<POSIX2>"
+
+#. type: Plain text
+#: ../man/ps.1:2017
+msgid "When set to \"on\", acts as B<POSIXLY_CORRECT>."
+msgstr "Când este fixată la „onâ€, acÈ›ionează ca B<POSIXLY_CORRECT>."
+
+#. type: TP
+#: ../man/ps.1:2017
+#, no-wrap
+msgid "B<UNIX95>"
+msgstr "B<UNIX95>"
+
+#. type: TP
+#: ../man/ps.1:2020
+#, no-wrap
+msgid "B<_XPG>"
+msgstr "B<_XPG>"
+
+#. type: Plain text
+#: ../man/ps.1:2026
+msgid "Cancel B<CMD_ENV>=I<irix> non-standard behavior."
+msgstr "Anulează comportamentul non-standard B<CMD_ENV>=I<irix>."
+
+#. type: Plain text
+#: ../man/ps.1:2034
+msgid "In general, it is a bad idea to set these variables. The one exception is B<CMD_ENV> or B<PS_PERSONALITY>, which could be set to Linux for normal systems. Without that setting, B<ps> follows the useless and bad parts of the Unix98 standard."
+msgstr "În general, este o idee proastă să configurați aceste variabile. Singura excepție este B<CMD_ENV> sau B<PS_PERSONALITY>, care ar putea fi configurată la „Linux†pentru sisteme normale. Fără această configurare, B<ps> urmează părțile inutile și proaste ale standardului Unix98."
+
+#. type: SH
+#: ../man/ps.1:2034
+#, no-wrap
+msgid "PERSONALITY"
+msgstr "PERSONALITATE"
+
+#. type: tbl table
+#: ../man/ps.1:2037
+#, no-wrap
+msgid "390"
+msgstr "390"
+
+#. type: tbl table
+#: ../man/ps.1:2037
+#, no-wrap
+msgid "like the OS/390 OpenEdition B<ps>"
+msgstr "similar cu B<ps> pentru OS/390 OpenEdition"
+
+#. type: tbl table
+#: ../man/ps.1:2038
+#, no-wrap
+msgid "aix"
+msgstr "aix"
+
+#. type: tbl table
+#: ../man/ps.1:2038
+#, no-wrap
+msgid "like AIX B<ps>"
+msgstr "similar cu B<ps> pentru AIX"
+
+#. type: tbl table
+#: ../man/ps.1:2039
+#, no-wrap
+msgid "bsd"
+msgstr "bsd"
+
+#. type: tbl table
+#: ../man/ps.1:2039
+#, no-wrap
+msgid "like FreeBSD B<ps> (totally non-standard)"
+msgstr "similar cu B<ps> pentru FreeBSD (cu desăvârșire nestandard)"
+
+#. type: tbl table
+#: ../man/ps.1:2040
+#, no-wrap
+msgid "compaq"
+msgstr "compaq"
+
+#. type: tbl table
+#: ../man/ps.1:2040
+#, no-wrap
+msgid "like Digital Unix B<ps>"
+msgstr "similar cu B<ps> pentru Digital Unix"
+
+#. type: tbl table
+#: ../man/ps.1:2041
+#, no-wrap
+msgid "debian"
+msgstr "debian"
+
+#. type: tbl table
+#: ../man/ps.1:2041 ../man/ps.1:2043
+#, no-wrap
+msgid "like the old Debian B<ps>"
+msgstr "similar cu B<ps> pentru vechiul Debian"
+
+#. type: tbl table
+#: ../man/ps.1:2042
+#, no-wrap
+msgid "digital"
+msgstr "digital"
+
+#. type: tbl table
+#: ../man/ps.1:2042
+#, no-wrap
+msgid "like Tru64 (was Digital\\ Unix, was OSF/1) B<ps>"
+msgstr "similar cu B<ps> pentru Tru64 (fost Digital Unix, fost OSF/1)"
+
+#. type: tbl table
+#: ../man/ps.1:2043
+#, no-wrap
+msgid "gnu"
+msgstr "gnu"
+
+#. type: tbl table
+#: ../man/ps.1:2044
+#, no-wrap
+msgid "hp"
+msgstr "hp"
+
+#. type: tbl table
+#: ../man/ps.1:2044 ../man/ps.1:2045
+#, no-wrap
+msgid "like HP-UX B<ps>"
+msgstr "similar cu B<ps> pentru HP-UX"
+
+#. type: tbl table
+#: ../man/ps.1:2045
+#, no-wrap
+msgid "hpux"
+msgstr "hpux"
+
+#. type: tbl table
+#: ../man/ps.1:2046
+#, no-wrap
+msgid "irix"
+msgstr "irix"
+
+#. type: tbl table
+#: ../man/ps.1:2046 ../man/ps.1:2053
+#, no-wrap
+msgid "like Irix B<ps>"
+msgstr "similar cu B<ps> pentru Irix"
+
+#. type: tbl table
+#: ../man/ps.1:2047
+#, no-wrap
+msgid "linux"
+msgstr "linux"
+
+#. type: tbl table
+#: ../man/ps.1:2047
+#, no-wrap
+msgid "***** B<recommended> *****"
+msgstr "***** B<recomandat> *****"
+
+#. type: tbl table
+#: ../man/ps.1:2048
+#, no-wrap
+msgid "old"
+msgstr "old"
+
+#. type: tbl table
+#: ../man/ps.1:2048
+#, no-wrap
+msgid "like the original Linux B<ps> (totally non-standard)"
+msgstr "similar cu originalul B<ps> pentru Linux (cu desăvârșire nestandard)"
+
+#. type: tbl table
+#: ../man/ps.1:2049
+#, no-wrap
+msgid "os390"
+msgstr "os390"
+
+#. type: tbl table
+#: ../man/ps.1:2049 ../man/ps.1:2051
+#, no-wrap
+msgid "like OS/390 Open Edition B<ps>"
+msgstr "similar cu B<ps> pentru OS/390 OpenEdition"
+
+#. type: tbl table
+#: ../man/ps.1:2050
+#, no-wrap
+msgid "posix"
+msgstr "posix"
+
+#. type: tbl table
+#: ../man/ps.1:2050 ../man/ps.1:2056 ../man/ps.1:2057 ../man/ps.1:2059
+#: ../man/ps.1:2060 ../man/ps.1:2061
+#, no-wrap
+msgid "standard"
+msgstr "standard"
+
+#. type: tbl table
+#: ../man/ps.1:2051
+#, no-wrap
+msgid "s390"
+msgstr "s390"
+
+#. type: tbl table
+#: ../man/ps.1:2052
+#, no-wrap
+msgid "sco"
+msgstr "sco"
+
+#. type: tbl table
+#: ../man/ps.1:2052
+#, no-wrap
+msgid "like SCO B<ps>"
+msgstr "similar cu B<ps> pentru SCO"
+
+#. type: tbl table
+#: ../man/ps.1:2053
+#, no-wrap
+msgid "sgi"
+msgstr "sgi"
+
+#. type: tbl table
+#: ../man/ps.1:2054
+#, no-wrap
+msgid "solaris2"
+msgstr "solaris2"
+
+#. type: tbl table
+#: ../man/ps.1:2054
+#, no-wrap
+msgid "like Solaris 2+ (SunOS 5) B<ps>"
+msgstr "similar cu B<ps> pentru Solaris 2+ (SunOS 5)"
+
+#. type: tbl table
+#: ../man/ps.1:2055
+#, no-wrap
+msgid "sunos4"
+msgstr "sunos4"
+
+#. type: tbl table
+#: ../man/ps.1:2055
+#, no-wrap
+msgid "like SunOS 4 (Solaris 1) B<ps> (totally non-standard)"
+msgstr "similar cu B<ps> pentru SunOS 4 (Solaris 1) (cu desăvârșire nestandard)"
+
+#. type: tbl table
+#: ../man/ps.1:2056
+#, no-wrap
+msgid "svr4"
+msgstr "svr4"
+
+#. type: tbl table
+#: ../man/ps.1:2057
+#, no-wrap
+msgid "sysv"
+msgstr "sysv"
+
+#. type: tbl table
+#: ../man/ps.1:2058
+#, no-wrap
+msgid "tru64"
+msgstr "tru64"
+
+#. type: tbl table
+#: ../man/ps.1:2058
+#, no-wrap
+msgid "like Tru64 (was Digital Unix, was OSF/1) B<ps>"
+msgstr "similar cu B<ps> pentru Tru64 (fost Digital Unix, fost OSF/1)"
+
+#. type: tbl table
+#: ../man/ps.1:2059
+#, no-wrap
+msgid "unix"
+msgstr "unix"
+
+#. type: tbl table
+#: ../man/ps.1:2060
+#, no-wrap
+msgid "unix95"
+msgstr "unix95"
+
+#. type: tbl table
+#: ../man/ps.1:2061
+#, no-wrap
+msgid "unix98"
+msgstr "unix98"
+
+#. type: Plain text
+#: ../man/ps.1:2069
+msgid "The fields B<bsdstart> and B<start> will only show the abbreviated month name in English. The fields B<lstart> and B<stime> will show the abbreviated month name in the configured locale but may exceed the column width due to the different lengths for abbreviated month and day names across languages."
+msgstr "Câmpurile B<bsdstart> și B<start> vor afișa doar numele prescurtat al lunii în limba engleză. Câmpurile B<lstart> și B<stime> vor afișa numele prescurtat al lunii în limba locală configurată, dar pot depăși lățimea coloanei din cauza lungimilor diferite ale numelor prescurtate ale lunii și zilei în funcție de limbă."
+
+#. type: Plain text
+#: ../man/ps.1:2076
+msgid "B<pgrep>(1), B<pstree>(1), B<top>(1), B<strftime>(3), B<proc>(5)."
+msgstr "B<pgrep>(1), B<pstree>(1), B<top>(1), B<strftime>(3), B<proc>(5)."
+
+#. type: Plain text
+#: ../man/ps.1:2080
+msgid "This B<ps> conforms to:"
+msgstr "Acest B<ps> este conform cu:"
+
+#. type: Plain text
+#: ../man/ps.1:2084
+msgid "Version 2 of the Single Unix Specification"
+msgstr "Versiunea 2 a Single Unix Specification"
+
+#. type: Plain text
+#: ../man/ps.1:2086
+msgid "The Open Group Technical Standard Base Specifications, Issue\\ 6"
+msgstr "The Open Group Technical Standard Base Specifications, versiunea 6"
+
+#. type: Plain text
+#: ../man/ps.1:2088
+msgid "IEEE Std 1003.1, 2004\\ Edition"
+msgstr "IEEE Std 1003.1, ediția 2004"
+
+#. type: Plain text
+#: ../man/ps.1:2090
+msgid "X/Open System Interfaces Extension [UP\\ XSI]"
+msgstr "X/Open System Interfaces Extension [UP XSI]"
+
+#. type: IP
+#: ../man/ps.1:2090
+#, no-wrap
+msgid "5"
+msgstr "5"
+
+#. type: Plain text
+#: ../man/ps.1:2092
+msgid "ISO/IEC 9945:2003"
+msgstr "ISO/IEC 9945:2003"
+
+#. type: Plain text
+#: ../man/ps.1:2120
+msgid "B<ps> was originally written by E<.MT lankeste@\\:fwi.\\:uva.\\:nl> Branko Lankester E<.ME .> E<.MT johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.ME> re-wrote it significantly to use the proc filesystem, changing a few things in the process. E<.MT mjshield@\\:nyx.\\:cs.\\:du.\\:edu> Michael Shields E<.ME> added the pid-list feature. E<.MT cblake@\\:bbn.\\:com> Charles Blake E<.ME> added multi-level sorting, the dirent-style library, the device name-to-number mmaped database, the approximate binary search directly on System.map, and many code and documentation cleanups. David Mossberger-Tang wrote the generic BFD support for psupdate. E<.MT albert@\\:users.\\:sf.\\:net> Albert Cahalan E<.ME> rewrote ps for full Unix98 and BSD support, along with some ugly hacks for obsolete and foreign syntax."
+msgstr "B<ps> a fost scris iniÈ›ial de E<.MT lankeste@\\:fwi.\\:uva.\\:nl> Branko Lankester E<.ME .> E<.MT johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.ME> l-a rescris extensiv pentru a folosi sistemul de fiÈ™iere I<proc>, schimbând câteva detalii pe parcurs. E<.MT mjshield@\\:nyx.\\:cs.\\:du.\\:edu> Michael Shields E<.ME> a adăugat funcÈ›ionalitatea listei PID. E<.MT cblake@\\:bbn.\\:com> Charles Blake E<.ME> a adăugat sortarea pe mai multe niveluri, biblioteca în stilul „direntâ€, baza de date „mmaped†de la nume la număr al dispozitivului, căutarea binară aproximativă direct pe System.map, È™i multe curățări de cod È™i documentaÈ›ie. David Mossberger-Tang a scris suportul BFD generic pentru „psupdateâ€. E<.MT albert@\\:users.\\:sf.\\:net> Albert Cahalan E<.ME> a rescris B<ps> pentru a suporta pe deplin Unix98 È™i BSD, plus câteva soluÈ›ii pentru sintaxe învechite È™i externe."
+
+#. type: Plain text
+#: ../man/ps.1:2124
+msgid "Please send bug reports to E<.MT procps@\\:freelists.\\:org> E<.ME .> No subscription is required or suggested."
+msgstr "Trimiteți rapoartele de eroare la E<.MT procps@\\:freelists.\\:org> E<.ME .> Nu este necesară sau sugerată nicio înscriere."
+
+#. Setup ////////////////////////////////////////////////////////////////
+#. Commonly used strings (for consistency) ----------
+#. - our em-dashes
+#. type: ds Em
+#: ../man/top.1:11
+#, no-wrap
+msgid "\\ --\\ "
+msgstr " — "
+
+#. type: ds EM
+#: ../man/top.1:12
+#, no-wrap
+msgid "B<\\ --\\ >"
+msgstr "B< — >"
+
+#. - our program name (makes great grammar)
+#. type: ds We
+#: ../man/top.1:14
+#, no-wrap
+msgid "top"
+msgstr "top"
+
+#. type: ds WE
+#: ../man/top.1:15
+#, no-wrap
+msgid "B<top>"
+msgstr "B<top>"
+
+#. - other misc strs for consistent usage
+#. type: ds F
+#: ../man/top.1:17
+#, no-wrap
+msgid "I<Off>"
+msgstr "I<Dezact.>"
+
+#. type: ds O
+#: ../man/top.1:18
+#, no-wrap
+msgid "I<On>"
+msgstr "I<Activat>"
+
+#. type: ds AK
+#: ../man/top.1:20
+#, no-wrap
+msgid "asterisk (`*')"
+msgstr "asterisc („*â€)"
+
+#. type: ds AM
+#: ../man/top.1:21
+#, no-wrap
+msgid "alternate-display mode"
+msgstr "modul de afișare alternativ"
+
+#. type: ds AS
+#: ../man/top.1:22
+#, no-wrap
+msgid "auxiliary storage"
+msgstr "stocare auxiliară"
+
+#. type: ds CF
+#: ../man/top.1:23
+#, no-wrap
+msgid "configuration file"
+msgstr "fișier de configurare"
+
+# R-GC, scrie:
+# NOTĂ: este posibil ca traducerea corectă
+# a acestui mesaj, să fie:
+# «fereastra „curentăâ€/grup de câmpuri»
+# ==========
+# Acest lucru este posibil, datorită faptului
+# că autorii au identificat fragmentele de
+# text din manual care se repetă, și le-au
+# transformat în valori de variabile....
+# E greu uneori de tradus corect un anumit
+# fragment dintr-o frază, dacă scoți acel
+# fragment din context, se poate imagina
+# problemele ce le va crea la traducere.
+#. type: ds CG
+#: ../man/top.1:24
+#, no-wrap
+msgid "`current' window/field group"
+msgstr "grup de ferestre/câmpuri „curenteâ€"
+
+#. type: ds CI
+#: ../man/top.1:25
+#, no-wrap
+msgid "interactive command"
+msgstr "comandă interactivă"
+
+#. type: ds CO
+#: ../man/top.1:26
+#, no-wrap
+msgid "command-line option"
+msgstr "opțiune de linie de comandă"
+
+#. type: ds CT
+#: ../man/top.1:27
+#, no-wrap
+msgid "command toggle"
+msgstr "comandă de comutare"
+
+#. type: ds CW
+#: ../man/top.1:28
+#, no-wrap
+msgid "`current' window"
+msgstr "fereastra „activăâ€"
+
+#. type: ds FG
+#: ../man/top.1:29
+#, no-wrap
+msgid "field group"
+msgstr "grup de câmpuri"
+
+#. type: ds FM
+#: ../man/top.1:30
+#, no-wrap
+msgid "full-screen mode"
+msgstr "modul ecran complet"
+
+#. type: ds KA
+#: ../man/top.1:31
+#, no-wrap
+msgid "arrow key"
+msgstr "tasta săgeată"
+
+#. type: ds KS
+#: ../man/top.1:32
+#, no-wrap
+msgid "scrolling key"
+msgstr "tasta de deplasare"
+
+#. type: ds MP
+#: ../man/top.1:33
+#, no-wrap
+msgid "physical memory"
+msgstr "memoria fizică"
+
+#. type: ds MS
+#: ../man/top.1:34
+#, no-wrap
+msgid "swap file"
+msgstr "fișier de interschimb"
+
+#. type: ds MV
+#: ../man/top.1:35
+#, no-wrap
+msgid "virtual memory"
+msgstr "memorie virtuală"
+
+#. type: ds NT
+#: ../man/top.1:36
+#, no-wrap
+msgid "B<Note>:"
+msgstr "B<Notă>:"
+
+#. type: ds Pu
+#: ../man/top.1:38
+#, no-wrap
+msgid "cpu"
+msgstr "cpu"
+
+#. type: ds SA
+#: ../man/top.1:39
+#, no-wrap
+msgid "summary area"
+msgstr "zona de rezumat"
+
+#. type: ds TA
+#: ../man/top.1:40
+#, no-wrap
+msgid "task area"
+msgstr "zona de sarcini"
+
+#. type: ds TD
+#: ../man/top.1:41
+#, no-wrap
+msgid "task display"
+msgstr "afișarea sarcinilor"
+
+#. type: ds TT
+#: ../man/top.1:42
+#, no-wrap
+msgid "B<processes> or B<threads>"
+msgstr "B<procese> sau B<fire de execuție>"
+
+#. type: ds TW
+#: ../man/top.1:43
+#, no-wrap
+msgid "task window"
+msgstr "fereastra de sarcină"
+
+#. Reference to the various widths/sizes ------------
+#. - the max screen width limit
+#. type: ds WX
+#: ../man/top.1:46
+#, no-wrap
+msgid "512"
+msgstr "512"
+
+#. - the header width w/ all fields
+#. type: ds WF
+#: ../man/top.1:48
+#, no-wrap
+msgid "approximately 250"
+msgstr "aproximativ 250"
+
+#. - pid monitoring limit
+#. Xref's that depend on/mention other stuff --------
+#. type: ds Xa
+#: ../man/top.1:51
+#, no-wrap
+msgid "see"
+msgstr "a se vedea"
+
+#. type: ds XC
+#: ../man/top.1:52
+#, no-wrap
+msgid "See the"
+msgstr "A se vedea"
+
+#. type: ds Xc
+#: ../man/top.1:53
+#, no-wrap
+msgid "see the"
+msgstr "a se vedea"
+
+#. type: ds XT
+#: ../man/top.1:54
+#, no-wrap
+msgid "See topic"
+msgstr "A se vedea subiectul"
+
+#. type: ds Xt
+#: ../man/top.1:55
+#, no-wrap
+msgid "see topic"
+msgstr "a se vedea subiectul"
+
+#. type: ds XX
+#: ../man/top.1:56
+#, no-wrap
+msgid "See `OVERVIEW, Linux Memory Types' for additional details"
+msgstr "Consultați „PREZENTARE GENERALĂ, Tipuri de memorie Linux†pentru detalii suplimentare"
+
+#. type: ds ZX
+#: ../man/top.1:57
+#, no-wrap
+msgid "Accessing smaps values is 10x more costly than other memory statistics and data for other users requires root privileges"
+msgstr "Accesarea valorilor smaps este de 10 ori mai costisitoare din punct de vedere computaÈ›ional decât accesarea altor statistici de memorie, iar datele pentru alÈ›i utilizatori necesită privilegii „rootâ€"
+
+#. type: TH
+#: ../man/top.1:62
+#, no-wrap
+msgid "TOP"
+msgstr "TOP"
+
+#. type: TH
+#: ../man/top.1:62
+#, no-wrap
+msgid "August 2023"
+msgstr "august 2023"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:70
+msgid "top - display Linux processes"
+msgstr "top - Afișează procesele Linux"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:75
+msgid "\\*(WE [options]"
+msgstr "\\*(WE [opțiuni]"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:85
+msgid "The \\*(WE program provides a dynamic real-time view of a running system. It can displayB< system> summary information as well as a list of \\*(TT currently being managed by the Linux kernel. The types of system summary information shown and the types, order and size of information displayed for processes are all user configurable and that configuration can be made persistent across restarts."
+msgstr "Programul \\\\*(WE oferă o vizualizare dinamică în timp real a sistemului care rulează. Poate afișa un rezumat al informațiilor B<sistem>, precum și o listă a \\\\*(TT) gestionate în prezent de către nucleu. Tipurile de informații rezumate ale sistemului afișate și tipurile, ordinea și dimensiunea informațiilor afișate pentru procese sunt toate configurabile de utilizator și acea configurație poate fi persistentă în timpul repornirilor."
+
+#. type: Plain text
+#: ../man/top.1:93
+msgid "The program provides a limited interactive interface for process manipulation as well as a much more extensive interface for personal configuration \\*(Em encompassing every aspect of its operation. And while \\*(WE is referred to throughout this document, you are free to name the program anything you wish. That new name, possibly an alias, will then be reflected on \\*(We's display and used when reading and writing a \\*(CF."
+msgstr "Programul oferă o interfață interactivă limitată pentru manipularea procesului, precum și o interfață mult mai extinsă pentru configurarea personală -- cuprinzând fiecare aspect al funcționării sale. Și în timp ce \\*(WE este menționat în acest document, sunteți liber să denumiți programul oricum doriți. Noul nume, eventual un alias, va fi apoi reflectat pe afișajul lui \\*(WE și va fi folosit la citirea și scrierea unui fișier de configurare."
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:95
+#, no-wrap
+msgid "OVERVIEW"
+msgstr "PREZENTARE GENERALÄ‚"
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:98
+#, no-wrap
+msgid "Documentation"
+msgstr "Documentație"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:101
+msgid "The remaining Table of Contents"
+msgstr "Cuprins"
+
+#. type: Plain text
+#: ../man/top.1:141
+#, no-wrap
+msgid ""
+" OVERVIEW\n"
+" Operation\n"
+" Linux Memory Types\n"
+" 1. COMMAND-LINE Options\n"
+" 2. SUMMARY Display\n"
+" a. UPTIME and LOAD Averages\n"
+" b. TASK and CPU States\n"
+" c. MEMORY Usage\n"
+" 3. FIELDS / Columns Display\n"
+" a. DESCRIPTIONS of Fields\n"
+" b. MANAGING Fields\n"
+" 4. INTERACTIVE Commands\n"
+" a. GLOBAL Commands\n"
+" b. SUMMARY AREA Commands\n"
+" c. TASK AREA Commands\n"
+" 1. Appearance\n"
+" 2. Content\n"
+" 3. Size\n"
+" 4. Sorting\n"
+" d. COLOR Mapping\n"
+" 5. ALTERNATE-DISPLAY Provisions\n"
+" a. WINDOWS Overview\n"
+" b. COMMANDS for Windows\n"
+" c. SCROLLING a Window\n"
+" d. SEARCHING in a Window\n"
+" e. FILTERING in a Window\n"
+" 6. FILES\n"
+" a. PERSONAL Configuration File\n"
+" b. ADDING INSPECT Entries\n"
+" c. SYSTEM Configuration File\n"
+" d. SYSTEM Restrictions File\n"
+" 7. ENVIRONMENT VARIABLE(S)\n"
+" 8. STUPID TRICKS Sampler\n"
+" a. Kernel Magic\n"
+" b. Bouncing Windows\n"
+" c. The Big Bird Window\n"
+" d. The Ol' Switcheroo\n"
+" 9. BUGS, 10. SEE Also\n"
+msgstr ""
+" PREZENTARE GENERALÄ‚\n"
+" Funcționarea programului\n"
+" Tipuri de memorie Linux\n"
+" 1. Opțiuni pentru LINIA DE COMANDĂ\n"
+" 2. Afișarea REZUMATULUI\n"
+" a. Mediile de ÎNCĂRCARE și TIMPUL de FUNCȚIONARE\n"
+" b. SARCINI și Stări CPU\n"
+" c. Utilizarea MEMORIEI\n"
+" 3. CÂMPURI / Afișarea coloanelor\n"
+" a. DESCRIEREA Câmpurilor\n"
+" b. GESTIONAREA Câmpurilor\n"
+" 4. Comenzi INTERACTIVE\n"
+" a. Comenzi GLOBALE\n"
+" b. Comenzi din ZONA de REZUMAT\n"
+" c. Comenzi din ZONA de SARCINI\n"
+" 1. Aspect\n"
+" 2. Conținut\n"
+" 3. Dimensiune\n"
+" 4. Sortare\n"
+" d. Paleta de CULORI\n"
+" 5. Dispoziții privind AFIȘAREA ALTERNATIVĂ\n"
+" a. Prezentare generală pentru ferestre\n"
+" b. Comenzi pentru ferestre\n"
+" c. Derularea unei ferestre\n"
+" d. Căutarea într-o fereastră\n"
+" e. Filtrarea într-o fereastră\n"
+" 6. FIȘIERE\n"
+" a. Fișier de configurare PERSONAL\n"
+" b. Adăugarea de intrări de INSPECTARE\n"
+" c. Fișier de configurare a SISTEMULUI\n"
+" d. Fișier de restricții ale SISTEMULUI\n"
+" 7. VARIABILE DE MEDIU\n"
+" 8. Exemplu de TRUCURI STUPIDE\n"
+" a. Magia nucleului\n"
+" b. Ferestre care apar\n"
+" c. Fereastra Pasărea Mare\n"
+" d. Vechiul comutator\n"
+" 9. ERORI, 10. CONSULTAȚI ȘI\n"
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:144
+#, no-wrap
+msgid "Operation"
+msgstr "Funcționarea programului"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:150
+msgid "When operating \\*(We, the two most important keys are the help (h or ?) key and quit (`q') key. Alternatively, you could simply use the traditional interrupt key (^C) when you're done."
+msgstr "Când lucraÈ›i cu \\*(We, cele mai importante taste sunt tasta de ajutor (h sau ?) È™i tasta de ieÈ™ire („qâ€). Alternativ, puteÈ›i utiliza pur È™i simplu tasta tradiÈ›ională de întrerupere (^C) când aÈ›i terminat."
+
+#. type: Plain text
+#: ../man/top.1:157
+msgid "When started for the first time, you'll be presented with these traditional elements on the main \\*(We screen: 1) Summary Area; 2) Fields/Columns Header; 3) Task Area. Each of these will be explored in the sections that follow. There is also an Input/Message line between the Summary Area and Columns Header which needs no further explanation."
+msgstr "Când porniți pentru prima dată, vi se vor prezenta aceste elemente tradiționale în ecranul principal al \\*(We: 1) Zona de rezumat; 2) Antet Câmpuri/Coloane; 3) Zona de sarcini. Fiecare dintre acestea va fi explorată în secțiunile care urmează. Există, de asemenea, o linie de intrare/mesaj între zona de rezumat și antetul coloanelor care nu are nevoie de explicații suplimentare."
+
+#. type: Plain text
+#: ../man/top.1:165
+msgid "The main \\*(We screen is I<generally> quite adaptive to changes in terminal dimensions under X-Windows. Other \\*(We screens may be less so, especially those with static text. It ultimately depends, however, on your particular window manager and terminal emulator. There may be occasions when their view of terminal size and current contents differs from \\*(We's view, which is always based on operating system calls."
+msgstr "Ecranul principal al \\*(We este, I<în general>, destul de adaptabil la modificările dimensiunilor terminalului sub X-Windows. Alte ecrane \\*(We pot fi mai puțin adaptabile, mai ales cele cu text static. Totuși, aceasta depinde în cele din urmă de managerul de ferestre și de emulatorul de terminal, în particular. Pot exista ocazii în care viziunea lor asupra dimensiunii terminalului și a conținutului curent diferă de viziunea lui \\*(We, care se bazează întotdeauna pe apelurile sistemului de operare."
+
+#. type: Plain text
+#: ../man/top.1:170
+msgid "Following any re-size operation, if a \\*(We screen is corrupted, appears incomplete or disordered, simply typing something innocuous like a punctuation character or cursor motion key will usually restore it. In extreme cases, the following sequence almost certainly will:"
+msgstr "În urma oricărei operațiuni de redimensionare, dacă un ecran \\*(We este corupt, apare incomplet sau dezordonat, simpla tastare a ceva inofensiv, cum ar fi un caracter de punctuație sau o tastă de mișcare a cursorului, îl va restabili de obicei. În cazuri extreme, următoarea secvență va avea aproape sigur, acest efect:"
+
+#. type: Plain text
+#: ../man/top.1:175
+#, no-wrap
+msgid ""
+" I<key/cmd objective >\n"
+" ^Z B<suspend> \\*(We\n"
+" fg B<resume> \\*(We\n"
+" E<lt>LeftE<gt> force a screen B<redraw> (if necessary)\n"
+msgstr ""
+" I<tasta/cmd obiectiv >\n"
+" ^Z B<suspendare> \\*(We\n"
+" fg B<reluare> \\*(We\n"
+" E<lt>StângaE<gt> forțează redesenarea ecranului (dacă este necesar)\n"
+
+#. type: Plain text
+#: ../man/top.1:179
+msgid "But if the display is still corrupted, there is one more step you could try. Insert this command after \\*(We has been suspended but before resuming it."
+msgstr "Dar dacă afișajul este încă corupt, mai există un pas pe care îl puteți încerca. Introduceți această comandă după ce \\*(We a fost suspendat, dar înainte de al relua."
+
+#. type: Plain text
+#: ../man/top.1:182
+#, no-wrap
+msgid ""
+" I<key/cmd objective >\n"
+" reset restore your B<terminal settings>\n"
+msgstr ""
+" I<tasta/cmd obiectiv >\n"
+" reset restabilește B<configurările terminalului>\n"
+
+#. type: Plain text
+#: ../man/top.1:192
+msgid "\\*(NT the width of \\*(We's display will be limited to \\*(WX positions. Displaying all fields requires \\*(WF characters. Remaining screen width is usually allocated to any variable width columns currently visible. The variable width columns, such as COMMAND, are noted in topic 3a. DESCRIPTIONS of Fields. Actual output width may also be influenced by the -w switch, which is discussed in topic 1. COMMAND-LINE Options."
+msgstr "\\*(NT lățimea afiÈ™ajului lui \\*(We va fi limitată la \\*(WX poziÈ›ii. AfiÈ™area tuturor câmpurilor necesită aproximativ \\*(WF de caractere. Lățimea rămasă a ecranului este de obicei alocată oricăror coloane cu lățime variabilă vizibile în prezent. Coloanele cu lățime variabilă, cum ar fi COMANDÄ‚, sunt notate în subiectul 3a. DESCRIEREA Câmpurilor. Lățimea reală de ieÈ™ire poate fi, de asemenea, influenÈ›ată de opÈ›iunea „-wâ€, care este discutată în subiectul 1. OpÈ›iuni pentru LINIA DE COMANDÄ‚."
+
+#. type: Plain text
+#: ../man/top.1:197
+msgid "Lastly, some of \\*(We's screens or functions require the use of cursor motion keys like the standard \\*(KAs plus the Home, End, PgUp and PgDn keys. If your terminal or emulator does not provide those keys, the following combinations are accepted as alternatives:"
+msgstr "În cele din urmă, unele dintre ecranele sau funcțiile lui \\*(We necesită utilizarea tastelor de mișcare a cursorului, cum ar fi tastele săgeți standard plus tastele «Home», «Fin», «PgUp» și «PgDn». Dacă terminalul sau emulatorul dumneavoastră nu furnizează acele chei, următoarele combinații sunt acceptate ca alternative:"
+
+#. type: Plain text
+#: ../man/top.1:207
+#, no-wrap
+msgid ""
+" I< key equivalent-keys >\n"
+" Left alt +B< h >\n"
+" Down alt +B< j >\n"
+" Up alt +B< k >\n"
+" Right alt +B< l >\n"
+" Home alt + ctrl +B< h >\n"
+" PgDn alt + ctrl +B< j >\n"
+" PgUp alt + ctrl +B< k >\n"
+" End alt + ctrl +B< l >\n"
+msgstr ""
+" I< tasta taste echivalente >\n"
+" Stânga alt +B< h >\n"
+" Jos alt +B< j >\n"
+" Sus alt +B< k >\n"
+" Dreapta alt +B< l >\n"
+" Home alt + ctrl +B< h >\n"
+" PgDn alt + ctrl +B< j >\n"
+" PgUp alt + ctrl +B< k >\n"
+" End alt + ctrl +B< l >\n"
+
+#. type: Plain text
+#: ../man/top.1:214
+msgid "The B<Up> and B<Down> \\*(KAs have special significance when prompted for line input terminated with the E<lt>EnterE<gt> key. Those keys, or their aliases, can be used to retrieve previous input lines which can then be edited and re-input. And there are four additional keys available with line oriented input."
+msgstr "Tastele săgeată B<Sus> și B<Jos> au o semnificație specială atunci când solicitarea liniei de intrare este terminată cu tasta E<lt>EnterE<gt>. Aceste taste, sau aliasurile lor, pot fi folosite pentru a prelua liniile de intrare anterioare care pot fi apoi editate și reintroduse. Și există patru taste suplimentare disponibile orientate pe linia de intrare."
+
+#. type: Plain text
+#: ../man/top.1:222
+#, no-wrap
+msgid ""
+" I< key special-significance >\n"
+" Up recall B<older> strings for re-editing\n"
+" Down recall B<newer> strings or B<erase> entire line\n"
+" Insert toggle between B<insert> and B<overtype> modes\n"
+" Delete character B<removed> at cursor, moving others left\n"
+" Home jump to B<beginning> of input line\n"
+" End jump to B<end> of input line\n"
+msgstr ""
+" I< tasta semnificația specială >\n"
+" Sus reapelează șirurile B<mai vechi> pentru re-editare\n"
+" Jos reapelează șirurile B<mai noi> sau B<șterge> întreaga linie\n"
+" Insert comută între modurile de B<inserare> și B<suprascriere>\n"
+" Delete B<elimină> caracterul de la cursor, deplasându-le pe celelalte spre stânga\n"
+" Home saltă la B<începutul> liniei de intrare\n"
+" End saltă la B<sfârșitul> liniei de intrare\n"
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:225
+#, no-wrap
+msgid "Linux Memory Types"
+msgstr "Tipuri de memorie Linux"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:234
+msgid "For our purposes there are three types of memory, and one is optional. First is \\*(MP, a limited resource where code and data must reside when executed or referenced. Next is the optional \\*(MS, where modified (dirty) memory can be saved and later retrieved if too many demands are made on \\*(MP. Lastly we have \\*(MV, a nearly unlimited resource serving the following goals:"
+msgstr "Pentru scopurile noastre, există trei tipuri de memorie, din care unul este opțional. Primul este memoria fizică, o resursă limitată în care codul și datele trebuie să se găsească atunci când sunt executate sau referențiate. Următorul este fișierul de interschimb(swap) opțional, unde memoria modificată (murdară) poate fi salvată și ulterior preluată dacă se solicită prea multe memorie fizică. În cele din urmă, avem memoria virtuală, o resursă aproape nelimitată care servește următoarele obiective:"
+
+#. type: Plain text
+#: ../man/top.1:240
+#, no-wrap
+msgid ""
+" 1. abstraction, free from physical memory addresses/limits\n"
+" 2. isolation, every process in a separate address space\n"
+" 3. sharing, a single mapping can serve multiple needs\n"
+" 4. flexibility, assign a virtual address to a file\n"
+msgstr ""
+" 1. abstractizare, liberă de adresele sau limitele memoriei fizice\n"
+" 2. izolare, fiecare proces într-un spațiu de adrese separat\n"
+" 3. partajare, o singură memorizare(mapping) poate satisface nevoi multiple\n"
+" 4. flexibilitate, atribuirea unei adrese virtuale unui fișier\n"
+
+#. type: Plain text
+#: ../man/top.1:249
+msgid "Regardless of which of these forms memory may take, all are managed as pages (typically 4096 bytes) but expressed by default in \\*(We as KiB (kibibyte). The memory discussed under topic `2c. MEMORY Usage' deals with \\*(MP and the \\*(MS for the system as a whole. The memory reviewed in topic `3. FIELDS / Columns Display' embraces all three memory types, but for individual processes."
+msgstr "Indiferent de care dintre aceste forme o poate lua memoria, toate sunt gestionate ca pagini (de obicei 4096 de octeți), dar sunt exprimate implicit în \\*(We ca Kio (kibiocteți). Memoria discutată la punctul „2c. Utilizarea MEMORIEI†se ocupă de memoria fizică și fișierul de interschimb(swap) pentru sistemul în ansamblul său. Memoria examinată la punctul „3. CÂMPURI / Afișarea coloanelor†cuprinde toate cele trei tipuri de memorie, dar pentru procese individuale."
+
+#. type: Plain text
+#: ../man/top.1:255
+msgid "For each such process, every memory page is restricted to a single quadrant from the table below. Both \\*(MP and \\*(MV can include any of the four, while the \\*(MS only includes #1 through #3. The memory in quadrant #4, when modified, acts as its own dedicated \\*(MS."
+msgstr "Pentru fiecare astfel de proces, fiecare pagină de memorie este restricționată la un singur cadran din tabelul de mai jos. Atât memoria fizică, cât și memoria virtuală pot include oricare dintre cele patru, în timp ce fișierul de interschimb (swap) include doar de la #1 la #3. Memoria din cadranul #4, când este modificată, acționează ca propriul fișier de interschimb dedicat."
+
+#. type: Plain text
+#: ../man/top.1:267
+#, no-wrap
+msgid ""
+" B<Private> | B<Shared>\n"
+" B<1> | B<2>\n"
+" B<Anonymous> . stack |\n"
+" . malloc() |\n"
+" . brk()/sbrk() | . POSIX shm*\n"
+" . mmap(PRIVATE, ANON) | . mmap(SHARED, ANON)\n"
+" -----------------------+----------------------\n"
+" . mmap(PRIVATE, fd) | . mmap(SHARED, fd)\n"
+" B<File-backed> . pgms/shared libs |\n"
+" B<3> | B<4>\n"
+msgstr ""
+" B<Privată> | B<Partajată>\n"
+" B<1> | B<2>\n"
+" B<Anonimă> . stack |\n"
+" . malloc() |\n"
+" . brk()/sbrk() | . POSIX shm*\n"
+" . mmap(PRIVATE, ANON) | . mmap(SHARED, ANON)\n"
+" -----------------------+----------------------\n"
+" . mmap(PRIVATE, fd) | . mmap(SHARED, fd)\n"
+" B<Pe baza fișierului> . pgms/shared libs |\n"
+" B<3> | B<4>\n"
+
+#. type: Plain text
+#: ../man/top.1:271
+msgid "The following may help in interpreting process level memory values displayed as scalable columns and discussed under topic `3a. DESCRIPTIONS of Fields'."
+msgstr "Următoarele pot ajuta la interpretarea valorilor de memorie la nivel de proces afiÈ™ate sub formă de coloane scalabile È™i discutate în subiectul „3a. DESCRIEREA Câmpurilorâ€."
+
+#. type: Plain text
+#: ../man/top.1:288
+#, no-wrap
+msgid ""
+" %MEM - simply RES divided by total \\*(MP\n"
+" CODE - the `pgms' portion of quadrant B<3>\n"
+" DATA - the entire quadrant B<1> portion of VIRT plus all\n"
+" explicit mmap file-backed pages of quadrant B<3>\n"
+" RES - anything occupying \\*(MP which, beginning with\n"
+" Linux-4.5, is the sum of the following three fields:\n"
+" RSan - quadrant B<1> pages, which include any\n"
+" former quadrant B<3> pages if modified\n"
+" RSfd - quadrant B<3> and quadrant B<4> pages\n"
+" RSsh - quadrant B<2> pages\n"
+" RSlk - subset of RES which cannot be swapped out (any quadrant)\n"
+" SHR - subset of RES (excludes B<1>, includes all B<2> & B<4>, some B<3>)\n"
+" SWAP - potentially any quadrant except B<4>\n"
+" USED - simply the sum of RES and SWAP\n"
+" VIRT - everything in-use and/or reserved (all quadrants)\n"
+msgstr ""
+" %MEM - pur și simplu RES împărțită la memoria fizică totală\n"
+" CODE - porțiunea „pgms†din cadranul B<3>\n"
+" DATA - întreaga porțiune din cadranul B<1> a VIRT plus toate\n"
+" paginile salvate în fișiere mmap explicite din cadranul B<3>\n"
+" RES - orice ocupă memorie fizică care, începând cu Linux-4.5,\n"
+" este suma următoarelor trei câmpuri:\n"
+" RSan - paginile cadranului B<1>, care includ orice pagini\n"
+" din cadranul B<3> anterior, dacă sunt modificate\n"
+" RSfd - paginile cadranului B<3> și cadranului B<4>\n"
+" RSsh - paginile cadranului B<2>\n"
+" RSlk - subset de RES care nu poate fi transferat (orice cadran)\n"
+" SHR - subset de RES (exclude B<1>, include toate B<2> și B<4>, unele B<3>)\n"
+" SWAP - potențial orice cadran, cu excepția cadranului B<4>\n"
+" USED - pur și simplu suma dintre RES și SWAP\n"
+" VIRT - tot ce este în uz și/sau rezervat (toate cadranele)\n"
+
+#. type: Plain text
+#: ../man/top.1:293
+msgid "\\*(NT Even though program images and shared libraries are considered I<private> to a process, they will be accounted for as I<shared> (SHR) by the kernel."
+msgstr "\\*(NT Chiar dacă imaginile de program și bibliotecile partajate sunt considerate I<private> pentru un proces, ele vor fi considerate ca fiind I<partajate> (SHR) de către nucleu."
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:295
+#, no-wrap
+msgid "1. COMMAND-LINE Options"
+msgstr "1. Opțiuni pentru LINIA DE COMANDĂ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:299
+msgid "MandatoryI< arguments> to long options are mandatory for short options too."
+msgstr "I<Argumentele> obligatorii pentru opțiunile lungi sunt deasemenea obligatorii pentru opțiunile scurte."
+
+#. type: Plain text
+#: ../man/top.1:302
+msgid "Although not required, the equals sign can be used with either option form and whitespace before and/or after the `=' is permitted."
+msgstr "Deși nu este necesar, semnul egal poate fi folosit cu fiecare formă de opțiune, iar spațiile în alb înainte și/sau după „=†sunt permise."
+
+#. type: TP
+#: ../man/top.1:303
+#, no-wrap
+msgid "-B<b>, B<--batch>"
+msgstr "-B<b>, B<--batch>"
+
+#. type: Plain text
+#: ../man/top.1:309
+msgid "Starts \\*(We in Batch mode, which could be useful for sending output from \\*(We to other programs or to a file. In this mode, \\*(We will not accept input and runs until the iterations limit you've set with the `-n' \\*(CO or until killed."
+msgstr "Pornește \\*(We în modul Loturi de comenzi (Batch), care poate fi util pentru a trimite ieșirea din \\*(We către alte programe sau către un fișier. În acest mod, \\*(We nu acceptă intrări și rulează până la limita de iterații pe care ați stabilit-o cu opțiunea de linie de comandă „-n†sau până când este omorât."
+
+#. type: TP
+#: ../man/top.1:310
+#, no-wrap
+msgid "-B<c>, B<--cmdline-toggle>"
+msgstr "-B<c>, B<--cmdline-toggle>"
+
+#. type: Plain text
+#: ../man/top.1:316
+msgid "Starts \\*(We with the last remembered `c' state reversed. Thus, if \\*(We was displaying command lines, now that field will show program names, and vice versa. \\*(XC `c' \\*(CI for additional information."
+msgstr "Lansează \\*(We cu ultima stare „c†memorată inversată. Astfel, dacă \\*(We afișa linii de comandă, acum acel câmp va afișa numele programelor și invers. Consultați comanda interactivă „c†pentru informații suplimentare."
+
+#. type: TP
+#: ../man/top.1:317
+#, no-wrap
+msgid "-B<d>, B<--delay> = I<SECS> [I<.TENTHS>]"
+msgstr "-B<d>, B<--delay> = I<SECUNDE> [I<.ZECIMI>]"
+
+#. type: Plain text
+#: ../man/top.1:322
+msgid "Specifies the delay between screen updates, and overrides the corresponding value in one's personal \\*(CF or the startup default. Later this can be changed with the `d' or `s' \\*(CIs."
+msgstr "Specifică întârzierea dintre actualizările ecranului È™i înlocuieÈ™te valoarea corespunzătoare din fiÈ™ierul de configurare personal sau valoarea implicită de pornire. Ulterior, această valoare poate fi modificată cu ajutorul comenzilor interactive „d†sau „sâ€."
+
+#. type: Plain text
+#: ../man/top.1:327
+msgid "Fractional seconds are honored, but a negative number is not allowed. In all cases, however, such changes are prohibited if \\*(We is running in Secure mode, except for root (unless the `s' \\*(CO was used). For additional information on Secure mode \\*(Xt 6d. SYSTEM Restrictions File."
+msgstr "FracÈ›iunile de secunde sunt luate în calcul, dar nu este permis un număr negativ. Cu toate acestea, în toate cazurile, astfel de modificări sunt interzise dacă \\*(We rulează în modul Securizat, cu excepÈ›ia root (cu excepÈ›ia cazului în care a fost utilizată opÈ›iunea de linie de comandă „sâ€). Pentru informaÈ›ii suplimentare despre modul Securizat, consultaÈ›i subiectul 6d. FiÈ™ier de restricÈ›ii ale SISTEMULUI."
+
+#. type: TP
+#: ../man/top.1:328
+#, no-wrap
+msgid "-B<E>, B<--scale-summary-mem> = I<k> | I<m> | I<g> | I<t> | I<p> | I<e>"
+msgstr "-B<E>, B<--scale-summary-mem> = I<k> | I<m> | I<g> | I<t> | I<p> | I<e>"
+
+#. type: Plain text
+#: ../man/top.1:331
+msgid "Instructs \\*(We to force \\*(SA memory to be scaled as:"
+msgstr "Solicită lui \\*(We să forțeze ca memoria zonei de rezumat să fie afișată după cum urmează:"
+
+#. type: Plain text
+#: ../man/top.1:338
+#, no-wrap
+msgid ""
+" k - kibibytes\n"
+" m - mebibytes\n"
+" g - gibibytes\n"
+" t - tebibytes\n"
+" p - pebibytes\n"
+" e - exbibytes\n"
+msgstr ""
+" k = kibiocteți\n"
+" m = mebiocteți\n"
+" g = gibiocteți\n"
+" t = tebiocteți\n"
+" p = pebiocteți\n"
+" e = exbiocteți\n"
+"\n"
+
+#. type: Plain text
+#: ../man/top.1:341
+msgid "Later this can be changed with the `E' \\*(CT."
+msgstr "Ulterior, acest lucru poate fi schimbat cu ajutorul comenzii „Eâ€."
+
+#. type: TP
+#: ../man/top.1:342
+#, no-wrap
+msgid "-B<e>, B<--scale-task-mem> = I<k> | I<m> | I<g> | I<t> | I<p>"
+msgstr "-B<e>, B<--scale-task-mem> = I<k> | I<m> | I<g> | I<t> | I<p>"
+
+#. type: Plain text
+#: ../man/top.1:345
+msgid "Instructs \\*(We to force \\*(TA memory to be scaled as:"
+msgstr "Solicită lui \\*(We să forțeze ca memoria zonei de sarcini să fie afișată după cum urmează:"
+
+#. type: Plain text
+#: ../man/top.1:351
+#, no-wrap
+msgid ""
+" k - kibibytes\n"
+" m - mebibytes\n"
+" g - gibibytes\n"
+" t - tebibytes\n"
+" p - pebibytes\n"
+msgstr ""
+" k = kibiocteți\n"
+" m = mebiocteți\n"
+" g = gibiocteți\n"
+" t = tebiocteți\n"
+" p = pebiocteți\n"
+
+#. type: Plain text
+#: ../man/top.1:354
+msgid "Later this can be changed with the `e' \\*(CT."
+msgstr "Ulterior, acest lucru poate fi schimbat cu ajutorul comenzii „eâ€."
+
+#. type: TP
+#: ../man/top.1:355
+#, no-wrap
+msgid "-B<H>, B<--threads-show>"
+msgstr "-B<H>, B<--threads-show>"
+
+#. type: Plain text
+#: ../man/top.1:360
+msgid "Instructs \\*(We to display individual threads. Without this \\*(CO a summation of all threads in each process is shown. Later this can be changed with the `H' \\*(CI."
+msgstr "Solicită lui top să afiÈ™eze firele de execuÈ›ie individuale. Fără această opÈ›iune de linie de comandă, este afiÈ™ată o însumare a tuturor firelor de execuÈ›ie din fiecare proces. Ulterior, acest lucru poate fi modificat cu ajutorul comenzii interactive „Hâ€."
+
+#. type: TP
+#: ../man/top.1:361
+#, no-wrap
+msgid "-B<h>, B<--help>"
+msgstr "B<h>, B<--help>"
+
+#. type: Plain text
+#: ../man/top.1:364
+msgid "Display usage help text, then quit."
+msgstr "Afișează acest mesaj de ajutor, apoi iese."
+
+#. type: TP
+#: ../man/top.1:365
+#, no-wrap
+msgid "-B<i>, B<--idle-toggle>"
+msgstr "-B<i>, B<--idle-toggle>"
+
+#. type: Plain text
+#: ../man/top.1:372
+msgid "Starts \\*(We with the last remembered `i' state reversed. When this toggle is \\*F, tasks that have not used any \\*(PU since the last update will not be displayed. For additional information regarding this toggle \\*(Xt 4c. TASK AREA Commands, SIZE."
+msgstr "Lansează \\*(We cu ultima stare „i†memorată inversată. Când această comutare este I<Dezactivată> (Off), sarcinile care nu au folosit niciun procesor de la ultima actualizare nu vor fi afișate. Pentru informații suplimentare cu privire la acest comutator, consultați subiectul 4c. Comenzi din ZONA de SARCINI, Dimensiune."
+
+#. type: TP
+#: ../man/top.1:373
+#, no-wrap
+msgid "-B<n>, B<--iterations> = I<NUMBER>"
+msgstr "-B<n>, B<--iterations> = I<NUMÄ‚R>"
+
+#. type: Plain text
+#: ../man/top.1:377
+msgid "Specifies the maximum number of iterations, or frames, \\*(We should produce before ending."
+msgstr "Specifică numărul maxim de iterații, sau de cadre, pe care \\*(We trebuie să le producă înainte de a se încheia."
+
+#. type: TP
+#: ../man/top.1:378
+#, no-wrap
+msgid "-B<O>, B<--list-fields>"
+msgstr "-B<O>, B<--list-fields>"
+
+#. type: Plain text
+#: ../man/top.1:384
+msgid "This option acts as a form of help for the -o option shown below. It will cause \\*(We to print each of the available field names on a separate line, then quit. Such names are subject to NLS (National Language Support) translation."
+msgstr "Această opÈ›iune acÈ›ionează ca o formă de ajutor pentru opÈ›iunea „-o†prezentată mai jos. Aceasta va face ca \\*(We să afiÈ™eze fiecare dintre numele câmpurilor disponibile pe o linie separată, apoi va ieÈ™i. Aceste nume sunt obiectul traducerii NLS (National Language Support „Suport pentru limba naÈ›ionalăâ€)."
+
+#. type: TP
+#: ../man/top.1:385
+#, no-wrap
+msgid "-B<o>, B<--sort-override> = I<FIELDNAME>"
+msgstr "-B<o>, B<--sort-override> = I<NUME_CÂMP>"
+
+#. type: Plain text
+#: ../man/top.1:393
+msgid "Specifies the name of the field on which tasks will be sorted, independent of what is reflected in the configuration file. You can prepend a `+' or `-' to the field name to also override the sort direction. A leading `+' will force sorting high to low, whereas a `-' will ensure a low to high ordering."
+msgstr "Specifică numele câmpului pe care vor fi sortate sarcinile, independent de ceea ce se reflectă în fișierul de configurare. Puteți adăuga un „+†sau „-†la numele câmpului pentru a schimba, de asemenea, direcția de sortare. Un „+†înainte va forța sortarea de la mare la mic, în timp ce un „-†va asigura o ordonare de la mic la mare."
+
+#. type: Plain text
+#: ../man/top.1:396
+msgid "This option exists primarily to support automated/scripted batch mode operation."
+msgstr "Această opțiune există în primul rând pentru a sprijini operarea în modul automat/loturi de comenzii."
+
+#. type: TP
+#: ../man/top.1:397
+#, no-wrap
+msgid "-B<p>, B<--pid> = I<PIDLIST> (as: I<1>,I<2>,I<3>, ... or -pI<1> -pI<2> -pI<3> ...)"
+msgstr "-B<p>, B<--pid> = I<LISTÄ‚_PID> (ca: I<1>,I<2>,I<3>, ... sau -pI<1> -pI<2> -pI<3> ...)"
+
+#. type: Plain text
+#: ../man/top.1:403
+msgid "Monitor only processes with specified process IDs. However, when combined with Threads mode (`H'), all processes in the thread group (\\*(Xa TGID) of each monitored PID will also be shown."
+msgstr "Monitorizează numai procesele cu ID-urile de proces specificate. Cu toate acestea, atunci când este combinat cu modul Fire de execuÈ›ie („Hâ€), toate procesele din grupul de fire (a se vedea TGID) al fiecărui PID monitorizat vor fi de asemenea afiÈ™ate."
+
+#. type: Plain text
+#: ../man/top.1:407
+msgid "This option can be given up to 20 times, or you can provide a comma delimited list with up to 20 pids. Co-mingling both approaches is permitted."
+msgstr "Această opțiune poate fi dată de până la 20 de ori sau puteți furniza o listă delimitată prin virgule cu până la 20 de pid-uri. Este permisă combinarea ambelor abordări."
+
+#. type: Plain text
+#: ../man/top.1:410
+msgid "A pid value of zero will be treated as the process id of the \\*(We program itself once it is running."
+msgstr "O valoare pid de zero va fi tratată ca fiind id-ul de proces al programului \\*(We însuși, odată ce acesta rulează."
+
+#. type: Plain text
+#: ../man/top.1:414
+msgid "This is a \\*(CO only and should you wish to return to normal operation, it is not necessary to quit and restart \\*(We \\*(Em just issue any of these \\*(CIs: `=', `u' or `U'."
+msgstr "Aceasta este doar o opÈ›iune de linie de comandă È™i dacă doriÈ›i să reveniÈ›i la funcÈ›ionarea normală, nu este necesar să părăsiÈ›i È™i să reporniÈ›i \\*(We -- pur È™i simplu lansaÈ›i oricare dintre aceste comenzi interactive: „=â€, „u†sau „Uâ€."
+
+#. type: Plain text
+#: ../man/top.1:416
+msgid "The `p', `u' and `U' \\*(COs are mutually exclusive."
+msgstr "OpÈ›iunile de linie de comandă „pâ€, „u†și „U†se exclud reciproc."
+
+#. type: TP
+#: ../man/top.1:417
+#, no-wrap
+msgid "-B<S>, B<--accum-time-toggle>"
+msgstr "-B<S>, B<--accum-time-toggle>"
+
+#. type: Plain text
+#: ../man/top.1:423
+msgid "Starts \\*(We with the last remembered `S' state reversed. When Cumulative time mode is \\*O, each process is listed with the \\*(Pu time that it and its dead children have used. \\*(XC `S' \\*(CI for additional information regarding this mode."
+msgstr "Lansează \\*(We cu ultima stare „S†memorată inversată. Atunci când modul de Timp cumulat este \\*O (On), fiecare proces este listat cu timpul de procesare pe care el și copiii săi morți l-au folosit. Consultați comanda interactivă „S†pentru informații suplimentare privind acest mod."
+
+#. type: TP
+#: ../man/top.1:424
+#, no-wrap
+msgid "-B<s>, B<--secure-mode>"
+msgstr "-B<s>, B<--secure-mode>"
+
+#. type: Plain text
+#: ../man/top.1:429
+msgid "Starts \\*(We with secure mode forced, even for root. This mode is far better controlled through a system \\*(CF (\\*(Xt 6. FILES)."
+msgstr "Lansează \\*(Wes cu modul securizat forțat, chiar și pentru root. Acest mod este mult mai bine controlat prin intermediul unui fișier de configurare a sistemului (a se vedea subiectul 6. FIȘIERE)."
+
+#. type: TP
+#: ../man/top.1:430
+#, no-wrap
+msgid "-B<U>, B<--filter-any-user> = I<USER> (as: I<number> or I<name>)"
+msgstr "-B<U>, B<--filter-any-user> = I<UTILIZATOR> (ca: I<număr> sau I<nume>)"
+
+#. type: Plain text
+#: ../man/top.1:435
+msgid "Display only processes with a user id or user name matching that given. This option matches onI< any> user (I<real>, I<effective>, I<saved>, or I<filesystem>)."
+msgstr "Afișează numai procesele cu un id de utilizator sau un nume de utilizator care se potrivește cu cel dat. Această opțiune se potrivește cu orice utilizator (I<real>, I<efectiv>, I<salvat> sau I<sistemul de fișiere>)."
+
+#. type: Plain text
+#: ../man/top.1:438 ../man/top.1:448
+msgid "Prepending an exclamation point (`!') to the user id or name instructs \\*(We to display only processes with users not matching the one provided."
+msgstr "Adăugarea unui semn de exclamare („!â€) la ID-ul sau numele utilizatorului îi indică lui \\*(We să afiÈ™eze numai procesele cu utilizatori care nu se potrivesc cu cel furnizat."
+
+#. type: Plain text
+#: ../man/top.1:440 ../man/top.1:450
+msgid "The `p', `U' and `u' \\*(COs are mutually exclusive."
+msgstr "OpÈ›iunile de linie de comandă „pâ€, „U†și „u†se exclud reciproc."
+
+#. type: TP
+#: ../man/top.1:441
+#, no-wrap
+msgid "-B<u>, B<--filter-only-euser> = I<USER> (as: I<number> or I<name>)"
+msgstr "-B<u>, B<--filter-only-user> = I<UTILIZATOR> (ca: I<număr> sau I<nume>)"
+
+#. type: Plain text
+#: ../man/top.1:445
+msgid "Display only processes with a user id or user name matching that given. This option matches on theI< effective> user id only."
+msgstr "Afișează numai procesele cu un id de utilizator sau un nume de utilizator care se potrivește cu cel dat. Această opțiune se potrivește numai cu ID-ul de utilizator I<efectiv>."
+
+#. type: TP
+#: ../man/top.1:451
+#, no-wrap
+msgid "-B<V>, B<--version>"
+msgstr "B<V>, B<--version>"
+
+#. type: Plain text
+#: ../man/top.1:454
+msgid "Display version information, then quit."
+msgstr "Afișează informațiile despre versiune, apoi iese."
+
+#. type: TP
+#: ../man/top.1:455
+#, no-wrap
+msgid "-B<w>, B<--width> [=I<COLUMNS>]"
+msgstr "-B<w>, B<--width> [=I<COLOANE>]"
+
+#. type: Plain text
+#: ../man/top.1:462
+msgid "In Batch mode, when used without an argument \\*(We will format output using the COLUMNS= and LINES= environment variables, if set. Otherwise, width will be fixed at the maximum \\*(WX columns. With an argument, output width can be decreased or increased (up to \\*(WX) but the number of rows is considered unlimited."
+msgstr "În modul Loturi de comenzi (Batch), atunci când este utilizată fără un argument, \\*(We va formata ieșirea folosind variabilele de mediu COLUMNS= și LINES=, dacă sunt definite. În caz contrar, lățimea va fi fixată la maximum de \\*(WX coloane. Cu un argument, lățimea de ieșire poate fi micșorată sau mărită (până la \\*(WX), dar numărul de rânduri este considerat nelimitat."
+
+#. type: Plain text
+#: ../man/top.1:468
+msgid "In normal display mode, when used without an argument \\*(We willI< attempt> to format output using the COLUMNS= and LINES= environment variables, if set. With an argument, output width can only be decreased, not increased. Whether using environment variables or an argument with -w, whenI< not> in Batch mode actual terminal dimensions can never be exceeded."
+msgstr "ÃŽn modul de afiÈ™are normal, atunci când este utilizată fără un argument, \\*(We va I<încerca> să formateze ieÈ™irea folosind variabilele de mediu COLUMNS= È™i LINES=, dacă sunt definite. Cu un argument, lățimea de ieÈ™ire poate fi doar micÈ™orată, nu È™i mărită. Indiferent dacă se utilizează variabilele de mediu sau un argument cu opÈ›iunea „-wâ€, atunci când I<nu se află> în modul Loturi de comenzi (Batch), dimensiunile reale ale terminalului nu pot fi niciodată depășite."
+
+#. type: Plain text
+#: ../man/top.1:471
+msgid "\\*(NT Without the use of this \\*(CO, output width is always based on the terminal at which \\*(We was invoked whether or not in Batch mode."
+msgstr "Notă: Fără utilizarea acestei opțiuni de linie de comandă, lățimea de ieșire se bazează întotdeauna pe terminalul la care a fost invocat top, indiferent dacă este sau nu în modul Loturi de comenzi (Batch)."
+
+#. type: TP
+#: ../man/top.1:472
+#, no-wrap
+msgid "-B<1>, B<--single-cpu-toggle>"
+msgstr "-B<1>, B<--single-cpu-toggle>"
+
+#. type: Plain text
+#: ../man/top.1:478
+msgid "Starts \\*(We with the last remembered Cpu States portion of the \\*(SA reversed. Either all \\*(Pu information will be displayed in a single line or each \\*(Pu will be displayed separately, depending on the state of the NUMA Node \\*(CT (`2')."
+msgstr "Lansează \\*(We cu ultima porÈ›iune memorată a stărilor Cpu din zona de rezumat inversată. Fie toate informaÈ›iile despre \\*(Pu vor fi afiÈ™ate pe un singur rând, fie fiecare \\*(Pu va fi afiÈ™at separat, în funcÈ›ie de starea comenzii de comutare a nodului NUMA („2â€)."
+
+#. type: Plain text
+#: ../man/top.1:480
+msgid "\\*(XC `1' and `2' \\*(CIs for additional information."
+msgstr "Pentru informaÈ›ii suplimentare, consultaÈ›i comenzile interactive „1†și „2â€."
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:482
+#, no-wrap
+msgid "2. SUMMARY Display"
+msgstr "2. Afișarea REZUMATULUI"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:488
+msgid "Each of the following three areas are individually controlled through one or more \\*(CIs. \\*(XT 4b. SUMMARY AREA Commands for additional information regarding these provisions."
+msgstr "Fiecare dintre următoarele trei zone este controlată individual prin intermediul uneia sau mai multor comenzi interactive. A se vedea subiectul 4b. Comenzi din ZONA de REZUMAT pentru informații suplimentare referitoare la aceste dispoziții."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:490
+#, no-wrap
+msgid "2a. UPTIME and LOAD Averages"
+msgstr "2a. Mediile de ÎNCĂRCARE și TIMPUL de FUNCȚIONARE"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:493
+msgid "This portion consists of a single line containing:"
+msgstr "Această porțiune constă dintr-o singură linie care conține:"
+
+#. type: Plain text
+#: ../man/top.1:498
+#, no-wrap
+msgid ""
+" B<program> orB< window> name, depending on display mode\n"
+" current time and length of time since last boot\n"
+" total number of users\n"
+" system load avg over the last 1, 5 and 15 minutes\n"
+msgstr ""
+" numele B<programului> sau al B<ferestrei>, în funcție de modul de afișare\n"
+" ora curentă și durata de timp de la ultima pornire (timpul de funcționare)\n"
+" numărul total de utilizatori\n"
+" încărcarea medie a sistemului în ultimele 1, 5 și 15 minute\n"
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:501
+#, no-wrap
+msgid "2b. TASK and CPU States"
+msgstr "2b. SARCINI și Stări CPU"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:506
+msgid "This portion consists of a minimum of two lines. In an SMP environment, additional lines can reflect individual \\*(PU state percentages."
+msgstr "Această porțiune constă din minim două linii. Într-un mediu SMP, liniile suplimentare pot reflecta procentele individuale ale stării CPU."
+
+#. type: Plain text
+#: ../man/top.1:510
+msgid "Line 1 shows totalB< tasks> orB< threads>, depending on the state of the Threads-mode toggle. That total is further classified as:"
+msgstr "Prima linie arată numărul total de B<sarcini> sau de B<fire de execuție>, în funcție de starea comutatorului de mod al Firelor de execuție. Acest total este clasificat în continuare astfel:"
+
+#. type: Plain text
+#: ../man/top.1:512
+#, no-wrap
+msgid " running; sleeping; stopped; zombie\n"
+msgstr " rulând (running); adormit (sleeping); oprit (stopped); zombi\n"
+
+#. type: Plain text
+#: ../man/top.1:516
+msgid "Line 2 shows \\*(PU state percentages based on the interval since the last refresh."
+msgstr "A doua linie arată procentajele de stare a CPU în funcție de intervalul de la ultima reîmprospătare."
+
+#. type: Plain text
+#: ../man/top.1:519
+msgid "As a default, percentages for these individual categories are displayed. Depending on your kernel version, the B<st> field may not be shown."
+msgstr "În mod implicit, sunt afișate procentele pentru aceste categorii individuale. În funcție de versiunea nucleului dumneavoastră, este posibil ca ultimul câmp, B<st>, să nu fie afișat."
+
+#. type: Plain text
+#: ../man/top.1:528
+#, no-wrap
+msgid ""
+" B<us> : time running un-niced user processes\n"
+" B<sy> : time running kernel processes\n"
+" B<ni> : time running niced user processes\n"
+" B<id> : time spent in the kernel idle handler\n"
+" B<wa> : time waiting for I/O completion\n"
+" B<hi> : time spent servicing hardware interrupts\n"
+" B<si> : time spent servicing software interrupts\n"
+" B<st> : time stolen from this vm by the hypervisor\n"
+msgstr ""
+" B<us> : timpul de execuție al proceselor de utilizator fără curtoazie (cu prioritate de execuție ridicată)\n"
+" B<sy> : timpul de rulare al proceselor nucleului\n"
+" B<ni> : timpul de execuție al proceselor de utilizator cu curtoazie (cu prioritate de execuție scăzută)\n"
+" B<id> : timpul petrecut în gestionarea inactivității nucleului\n"
+" B<wa> : timpul de așteptare pentru finalizarea intrărilor/ieșirilor\n"
+" B<hi> : timpul petrecut la deservirea întreruperilor hardware\n"
+" B<si> : timpul petrecut la deservirea întreruperilor software\n"
+" B<st> : timpul furat de la această mașină virtuală de către hipervizor\n"
+
+#. type: Plain text
+#: ../man/top.1:532
+msgid "The `sy' value above also reflects the time running a virtual \\*(Pu for guest operating systems, including those that have been niced."
+msgstr "Valoarea „sy†de mai sus reflectă, de asemenea, timpul de rulare a unui \\*(Pu virtual pentru sistemele de operare invitate, inclusiv pentru cele care au fost modificate."
+
+#. type: Plain text
+#: ../man/top.1:536
+msgid "Beyond the first tasks/threads line, there are alternate \\*(PU display modes available via the 4-way `t' \\*(CT. They show an abbreviated summary consisting of these elements:"
+msgstr "Dincolo de prima linie de sarcini/fire de execuție, există moduri alternative de afișare a procesorului, disponibile prin intermediul comenzii „t†cu 4 direcții de comutare. Aceste moduri afișează un rezumat simplificat format din aceste elemente:"
+
+#. type: Plain text
+#: ../man/top.1:539
+#, no-wrap
+msgid ""
+" a b c d\n"
+" %Cpu(s): B<75.0>/25.0 B<100>[ ... ]\n"
+msgstr ""
+" a b c d\n"
+" %Cpu(s): B<75.0>/25.0 B<100>[ ... ]\n"
+
+#. type: Plain text
+#: ../man/top.1:546
+msgid "Where: a) is the `user' (us + ni) percentage; b) is the `system' (sy + hi + si + guests) percentage; c) is the total percentage; and d) is one of two visual graphs of those representations. Such graphs also reflect separate `user' and `system' portions."
+msgstr "Unde: a) este procentul „utilizator†(us + ni); b) este procentul „sistem†(sy + hi + si + guests); c) este procentul total; È™i d) este unul dintre cele două grafice vizuale ale acelor reprezentări. Astfel de grafice reflectă, de asemenea, porÈ›iuni separate „utilizator†și „sistemâ€."
+
+#. type: Plain text
+#: ../man/top.1:551
+msgid "If the `4' \\*(CT is used to yield more than two cpus per line, results will be further abridged eliminating the a) and b) elements. However, that information is still reflected in the graph itself assuming color is active or, if not, bars vs. blocks are being shown."
+msgstr "Dacă comanda de comutare „â€' este utilizată pentru a obÈ›ine mai mult de două procesoare (CPU) pe linie, rezultatele vor fi reduse È™i mai mult, eliminându-se elementele a) È™i b). Cu toate acestea, aceste informaÈ›ii sunt încă reflectate în graficul propriu-zis, presupunând că culoarea este activă sau, în caz contrar, că sunt afiÈ™ate bare È™i blocuri."
+
+#. type: Plain text
+#: ../man/top.1:554
+msgid "\\*(XT 4b. SUMMARY AREA Commands for additional information on the `t' and `4' \\*(CTs."
+msgstr "A se vedea subiectul 4b. Comenzi din ZONA de REZUMAT pentru informaÈ›ii suplimentare privind comenzile de comutare „t†și „4â€."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:556
+#, no-wrap
+msgid "2c. MEMORY Usage"
+msgstr "2c. Utilizarea MEMORIEI"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:561
+msgid "This portion consists of two lines which may express values in kibibytes (KiB) through exbibytes (EiB) depending on the scaling factor enforced with the `E' \\*(CI. The /proc/meminfo source fields are shown in parenthesis."
+msgstr "Această porÈ›iune este formată din două linii care pot exprima valori de la kibiocteÈ›i (Kio) la exbiocteÈ›i (Eio), în funcÈ›ie de factorul de scalare aplicat prin intermediul comenzii interactive „Eâ€. Câmpurile sursă /proc/meminfo sunt afiÈ™ate între paranteze."
+
+#. type: Plain text
+#: ../man/top.1:563
+msgid "Line 1 reflects \\*(MP, classified as:"
+msgstr "Prima linie reflectă memoria fizică, clasificată ca:"
+
+#. type: Plain text
+#: ../man/top.1:568
+#, no-wrap
+msgid ""
+" total ( MemTotal )\n"
+" free ( MemFree )\n"
+" used ( MemTotal - MemAvailable )\n"
+" buff/cache ( Buffers + Cached + SReclaimable )\n"
+msgstr ""
+" total ( MemTotal )\n"
+" free ( MemFree )\n"
+" used ( MemTotal - MemAvailable )\n"
+" buff/cache ( Buffers + Cached + SReclaimable )\n"
+
+#. type: Plain text
+#: ../man/top.1:571
+msgid "Line 2 reflects mostly \\*(MV, classified as:"
+msgstr "A doua linie reflectă în principal memoria virtuală, clasificată ca:"
+
+#. type: Plain text
+#: ../man/top.1:576
+#, no-wrap
+msgid ""
+" total ( SwapTotal )\n"
+" free ( SwapFree )\n"
+" used ( SwapTotal - SwapFree )\n"
+" avail ( MemAvailable, which is \\*(MP )\n"
+msgstr ""
+" total ( SwapTotal )\n"
+" free ( SwapFree )\n"
+" used ( SwapTotal - SwapFree )\n"
+" avail ( MemAvailable, care este Memoria fizică)\n"
+
+#. type: Plain text
+#: ../man/top.1:584
+msgid "The B<avail> number on line 2 is an estimation of \\*(MP available for starting new applications, without swapping. Unlike the B<free> field, it attempts to account for readily reclaimable page cache and memory slabs. It is available on kernels 3.14, emulated on kernels 2.6.27+, otherwise the same as B<free>."
+msgstr "Cantitatea B<disponibilă (avail)> de pe a doua linie este o estimare a memoriei fizice disponibile pentru lansarea de noi aplicaÈ›ii, fără utilizarea spaÈ›iului de interschimb (swapping). Spre deosebire de câmpul „liberăâ€, aceasta încearcă să È›ină cont de zonele de prestocare (cache) ale paginilor uÈ™or de recuperat È™i blocurile de memorie „slabsâ€. Este disponibilă pe nucleele 3.14, emulată pe nucleele 2.6.27+, altfel la fel ca „liberăâ€."
+
+#. type: Plain text
+#: ../man/top.1:587
+msgid "In the alternate memory display modes, two abbreviated summary lines are shown consisting of these elements:"
+msgstr "În modurile de afișare a memoriei alternative, sunt afișate două linii de rezumat abreviate, formate din aceste elemente:"
+
+#. type: Plain text
+#: ../man/top.1:591
+#, no-wrap
+msgid ""
+" a b c\n"
+" GiB Mem : B<18.7>/15.738 [ ... ]\n"
+" GiB Swap: B< 0.0>/7.999 [ ... ]\n"
+msgstr ""
+" a b c\n"
+" Gio Mem : B<18.7>/15.738 [ ... ]\n"
+" Gio Swap: B< 0.0>/7.999 [ ... ]\n"
+
+#. type: Plain text
+#: ../man/top.1:595
+msgid "Where: a) is the percentage used; b) is the total available; and c) is one of two visual graphs of those representations."
+msgstr "Unde: a) este procentul utilizat; b) este totalul disponibil; și c) este unul dintre cele două grafice vizuale ale acestor reprezentări."
+
+#. type: Plain text
+#: ../man/top.1:602
+msgid "In the case of \\*(MP, the percentage represents the B<total> minus the estimated B<avail> noted above. The `Mem' graph itself is divided between the non-cached portion of B<used> and any remaining memory not otherwise accounted for by B<avail>. \\*(XT 4b. SUMMARY AREA Commands and the `m' command for additional information on that special 4-way toggle."
+msgstr "În cazul memoriei fizice, procentul reprezintă B<totalul> minus cantitatea B<disponibilă> estimată menționată mai sus. Graficul „Mem†în sine este împărțit între porțiunea de memorie B<utilizată> care nu se află în memoria cache și orice memorie rămasă care nu este altfel luată în considerare de cantitatea de memorie B<disponibilă>. A se vedea subiectul 4b. Comenzi din ZONA de REZUMAT și comanda „m†pentru informații suplimentare despre acea comutare specială în 4 căi."
+
+#. type: Plain text
+#: ../man/top.1:604
+msgid "This table may help in interpreting the scaled values displayed:"
+msgstr "Acest tabel poate ajuta la interpretarea valorilor scalate afișate:"
+
+#. type: Plain text
+#: ../man/top.1:611
+#, no-wrap
+msgid ""
+" KiB = kibibyte = 1024 bytes\n"
+" MiB = mebibyte = 1024 KiB = 1,048,576 bytes\n"
+" GiB = gibibyte = 1024 MiB = 1,073,741,824 bytes\n"
+" TiB = tebibyte = 1024 GiB = 1,099,511,627,776 bytes\n"
+" PiB = pebibyte = 1024 TiB = 1,125,899,906,842,624 bytes\n"
+" EiB = exbibyte = 1024 PiB = 1,152,921,504,606,846,976 bytes\n"
+msgstr ""
+" Kio = kibiocteți = 1024 octeți\n"
+" Mio = mebiocteți = 1024 Kio = 1.048.576 octeți\n"
+" Gio = gibiocteți = 1024 Mio = 1.073.741.824 octeți\n"
+" Tio = tebiocteți = 1024 Gio = 1.099.511.627.776 octeți\n"
+" Pio = pebiocteți = 1024 Tio = 1.125.899.906.842.624 octeți\n"
+" Eio = exbiocteți = 1024 Pio = 1.152.921.504.606.846.976 octeți\n"
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:614
+#, no-wrap
+msgid "3. FIELDS / Columns"
+msgstr "3. CÂMPURI / Coloane"
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:617
+#, no-wrap
+msgid "3a. DESCRIPTIONS of Fields"
+msgstr "3a. DESCRIEREA Câmpurilor"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:623
+msgid "Listed below are \\*(We's available process fields (columns). They are shown in strict ascii alphabetical order. You may customize their position and whether or not they are displayable with the `f' (Fields Management) \\*(CI."
+msgstr "Mai jos sunt enumerate câmpurile de procesare (coloanele) disponibile în \\*(We. Acestea sunt afișate în ordine alfabetică ascii strictă. Puteți personaliza poziția lor și dacă sunt sau nu afișabile cu ajutorul comenzii interactive „f†(Gestionarea câmpurilor)."
+
+#. type: Plain text
+#: ../man/top.1:628
+msgid "Any field is selectable as the sort field, and you control whether they are sorted high-to-low or low-to-high. For additional information on sort provisions \\*(Xt 4c. TASK AREA Commands, SORTING."
+msgstr "Orice câmp poate fi selectat drept câmp de sortare, iar dvs. puteți controla dacă acestea sunt sortate de la mare la mic sau de la mic la mare. Pentru informații suplimentare privind dispozițiile de sortare, consultați subiectul 4c. Comenzi din ZONA de SARCINI, Sortare."
+
+#. type: Plain text
+#: ../man/top.1:634
+msgid "The fields related to \\*(MP or \\*(MV reference `(KiB)' which is the unsuffixed display mode. Such fields may, however, be scaled from KiB through PiB. That scaling is influenced via the `e' \\*(CI or established for startup through a build option."
+msgstr "Câmpurile legate de memoria fizică sau de memoria virtuală se referă la „(Kio)â€, care reprezintă modul de afiÈ™are fără sufix. Cu toate acestea, aceste câmpuri pot fi scalate de la Kio la Pio. Această scalare este influenÈ›ată prin intermediul comenzii interactive „e†sau stabilită la pornire printr-o opÈ›iune de compilare."
+
+#. type: TP
+#: ../man/top.1:635
+#, no-wrap
+msgid "B<%CPU \\*(Em \\*(PU Usage >"
+msgstr "B<%CPU \\*(Em Utilizarea \\*(PU-ului>"
+
+#. type: Plain text
+#: ../man/top.1:639
+msgid "The task's share of the elapsed \\*(PU time since the last screen update, expressed as a percentage of total \\*(PU time."
+msgstr "Procentul sarcinii din timpul de CPU scurs de la ultima actualizare a ecranului, exprimată ca procent din timpul total al CPU."
+
+#. type: Plain text
+#: ../man/top.1:644
+msgid "In a true SMP environment, if a process is multi-threaded and \\*(We is I<not> operating in Threads mode, amounts greater than 100% may be reported. You toggle Threads mode with the `H' \\*(CI."
+msgstr "ÃŽntr-un mediu SMP adevărat, dacă un proces are mai multe fire de execuÈ›ie È™i \\*(We I<nu> funcÈ›ionează în modul „Fire de execuÈ›ieâ€, pot fi raportate cantități mai mari de 100%. PuteÈ›i să activaÈ›i modul „Fire de execuÈ›ie†cu ajutorul comenzii interactive „Hâ€."
+
+#. type: Plain text
+#: ../man/top.1:649
+msgid "Also for multi-processor environments, if Irix mode is \\*F, \\*(We will operate in Solaris mode where a task's \\*(Pu usage will be divided by the total number of \\*(PUs. You toggle Irix/Solaris modes with the `I' \\*(CI."
+msgstr "De asemenea, pentru mediile cu mai multe procesoare, dacă modul Irix este dezactivat (\\*F), \\*(We va funcÈ›iona în modul Solaris, în care utilizarea cpu a unei sarcini va fi împărÈ›ită la numărul total de procesoare. PuteÈ›i comuta modurile Irix/Solaris cu ajutorul comenzii interactive „Iâ€."
+
+#. type: Plain text
+#: ../man/top.1:655
+msgid "\\*(NT When running in forest view mode (`V') with children collapsed (`v'), this field will also include the \\*(PU time of those unseen children. \\*(XT 4c. TASK AREA Commands, CONTENT for more information regarding the `V' and `v' toggles."
+msgstr "Notă: Atunci când se execută în modul de vizualizare arborescentă („Vâ€) cu copii colapsaÈ›i („vâ€), acest câmp va include È™i timpul CPU al acelor copii nevăzuÈ›i. A se vedea subiectul 4c. Comenzi din ZONA de SARCINI, ConÈ›inut pentru mai multe informaÈ›ii privind comutatoarele „V†și „vâ€."
+
+#. type: TP
+#: ../man/top.1:656
+#, no-wrap
+msgid "B<%CUC \\*(Em \\*(PU Utilization >"
+msgstr "B<%CUC \\*(Em Utilizarea \\*(PU-ului>"
+
+#. type: Plain text
+#: ../man/top.1:660
+msgid "This field is identical to %CUU below, except the percentage also reflects reaped child processes."
+msgstr "Acest câmp este identic cu %CUU de mai jos, cu excepția faptului că procentul reflectă și procesele copil recoltate."
+
+#. type: TP
+#: ../man/top.1:661
+#, no-wrap
+msgid "B<%CUU \\*(Em \\*(PU Utilization >"
+msgstr "B<%CUU \\*(Em Utilizarea \\*(PU-ului>"
+
+#. type: Plain text
+#: ../man/top.1:665
+msgid "A task's total \\*(PU usage divided by its elapsed running time, expressed as a percentage."
+msgstr "Utilizarea totală a CPU a unei sarcini împărțită la timpul de execuție scurs, exprimată ca procent."
+
+#. type: Plain text
+#: ../man/top.1:670
+msgid "If a process currently displays high \\*(PU usage, this field can help determine if such behavior is normal. Conversely, if a process has low \\*(PU usage currently, %CUU may reflect historically higher demands over its lifetime."
+msgstr "În cazul în care un proces afișează în prezent o utilizare ridicată a CPU, acest câmp poate ajuta la determinarea dacă acest comportament este normal. În schimb, dacă un proces are o utilizare scăzută a CPU în prezent, %CUU poate reflecta solicitări istorice mai mari de-a lungul vieții sale."
+
+#. type: TP
+#: ../man/top.1:671
+#, no-wrap
+msgid "B<%MEM \\*(Em Memory Usage (RES) >"
+msgstr "B<%MEM \\*(Em Utilizarea memoriei (RES) >"
+
+#. type: Plain text
+#: ../man/top.1:674
+msgid "A task's currently resident share of available \\*(MP."
+msgstr "Procentul de memorie fizică disponibilă a unei sarcini care este în prezent rezidentă."
+
+#. type: Plain text
+#: ../man/top.1:676 ../man/top.1:737 ../man/top.1:770 ../man/top.1:943
+#: ../man/top.1:1004 ../man/top.1:1057 ../man/top.1:1102 ../man/top.1:1122
+msgid "\\*(XX."
+msgstr "\\*(XX."
+
+#. type: TP
+#: ../man/top.1:677
+#, no-wrap
+msgid "B<AGID \\*(Em Autogroup Identifier >"
+msgstr "B<AGID \\*(Em Identificator de autogrup>"
+
+#. type: Plain text
+#: ../man/top.1:682
+msgid "The autogroup identifier associated with a process. This feature operates in conjunction with the CFS scheduler to improve interactive desktop performance."
+msgstr "Identificatorul auto-grupului asociat unui proces. Această caracteristică funcționează împreună cu planificatorul CFS pentru a îmbunătăți performanța biroului interactiv."
+
+#. type: Plain text
+#: ../man/top.1:691
+msgid "When /proc/sys/kernel/sched_autogroup_enabled is set, a new autogroup is created with each new session (\\*(Xa SID). All subsequently forked processes in that session inherit membership in this autogroup. The kernel then attempts to equalize distribution of CPU cycles across such groups. Thus, an autogroup with many \\*(PU intensive processes (e.g make -j) will not dominate an autogroup with only one or two processes."
+msgstr "Când „/proc/sys/kernel/sched_autogroup_enabled†este activat, un nou grup automat este creat cu fiecare sesiune nouă (a se vedea SID). Toate procesele bifurcate ulterior din acea sesiune moștenesc apartenența la acest grup automat. Nucleul încearcă apoi să egalizeze distribuția ciclurilor CPU între astfel de grupuri. Astfel, un auto-grup cu multe procese intensive de CPU (de exemplu «make -j») nu va domina un auto-grup cu doar unul sau două procese."
+
+#. type: Plain text
+#: ../man/top.1:693
+msgid "When -1 is displayed it means this information is not available."
+msgstr "Când se afișează B<-1> înseamnă că această informație nu este disponibilă."
+
+#. type: TP
+#: ../man/top.1:694
+#, no-wrap
+msgid "B<AGNI \\*(Em Autogroup Nice Value >"
+msgstr "B<AGNI \\*(Em Valoarea priorității auto-grupului>"
+
+#. type: Plain text
+#: ../man/top.1:700
+msgid "The autogroup nice value which affects scheduling of all processes in that group. A negative nice value means higher priority, whereas a positive nice value means lower priority."
+msgstr "Valoarea priorității (nice) a auto-grupului care afectează planificarea tuturor proceselor din grupul respectiv. O valoare „nice†negativă înseamnă o prioritate mai mare, în timp ce o valoare „nice†pozitivă înseamnă o prioritate mai mică."
+
+#. type: TP
+#: ../man/top.1:701
+#, no-wrap
+msgid "B<CGNAME \\*(Em Control Group Name >"
+msgstr "B<CGNAME \\*(Em Numele grupului de control>"
+
+#. type: Plain text
+#: ../man/top.1:705
+msgid "The name of the control group to which a process belongs, or `-' if not applicable for that process."
+msgstr "Numele grupului de control căruia îi aparține un proces, sau „-†dacă nu se aplică procesului respectiv."
+
+#. type: Plain text
+#: ../man/top.1:709
+msgid "This will typically be the last entry in the full list of control groups as shown under the next heading (CGROUPS). And as is true there, this field is also variable width."
+msgstr "Aceasta va fi de obicei ultima intrare din lista completă a grupurilor de control, așa cum se arată în următorul titlu (CGROUPS). La fel ca și acolo, acest câmp este de o lățime variabilă."
+
+#. type: TP
+#: ../man/top.1:710
+#, no-wrap
+msgid "B<CGROUPS \\*(Em Control Groups >"
+msgstr "B<CGROUPS \\*(Em Grupuri de control>"
+
+#. type: Plain text
+#: ../man/top.1:714
+msgid "The names of the control group(s) to which a process belongs, or `-' if not applicable for that process."
+msgstr "Numele grupului/grupurilor de control căruia îi aparține un proces, sau „-†dacă nu se aplică procesului respectiv."
+
+#. type: Plain text
+#: ../man/top.1:719
+msgid "Control Groups provide for allocating resources (cpu, memory, network bandwidth, etc.) among installation-defined groups of processes. They enable fine-grained control over allocating, denying, prioritizing, managing and monitoring those resources."
+msgstr "Grupurile de control asigură alocarea resurselor (procesor, memorie, lățime de bandă de rețea etc.) între grupurile de procese definite de instalare. Acestea permit un control fin asupra alocării, refuzării, prioritizării, gestionării și monitorizării acestor resurse."
+
+#. type: Plain text
+#: ../man/top.1:723
+msgid "Many different hierarchies of cgroups can exist simultaneously on a system and each hierarchy is attached to one or more subsystems. A subsystem represents a single resource."
+msgstr "Pe un sistem pot exista simultan mai multe ierarhii diferite de grupuri de control „cgroupsâ€, fiecare ierarhie fiind ataÈ™ată la unul sau mai multe subsisteme. Un subsistem reprezintă o singură resursă."
+
+#. type: Plain text
+#: ../man/top.1:730
+msgid "\\*(NT The CGROUPS field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum \\*(WX characters). Even so, such variable width fields could still suffer truncation. \\*(XT 5c. SCROLLING a Window for additional information on accessing any truncated data."
+msgstr "Notă: Câmpul „CGROUPSâ€, spre deosebire de majoritatea coloanelor, nu are o lățime fixă. Atunci când este afiÈ™at, acestuia È™i oricăror alte coloane cu lățime variabilă li se alocă toată lățimea rămasă pe ecran (până la maximum \\*(WX caractere). Chiar È™i aÈ™a, astfel de câmpuri cu lățime variabilă pot suferi trunchieri. A se vedea subiectul 5c. Derularea unei ferestre pentru informaÈ›ii suplimentare privind accesarea oricăror date trunchiate."
+
+#. type: TP
+#: ../man/top.1:731
+#, no-wrap
+msgid "B<CODE \\*(Em Code Size (KiB) >"
+msgstr "B<CODE \\*(Em Dimensiunea codului (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:735
+msgid "The amount of \\*(MP currently devoted to executable code, also known as the Text Resident Set size or TRS."
+msgstr "Cantitatea de memorie fizică dedicată în prezent codului executabil, cunoscută È™i sub numele de dimensiunea setului rezident de text „Text Resident Set size†sau „TRSâ€."
+
+#. type: TP
+#: ../man/top.1:738
+#, no-wrap
+msgid "B<COMMAND \\*(Em Command Name> or CommandB< Line >"
+msgstr "B<COMMAND \\*(Em Numele comenzii> sau B<Linia> de comandă"
+
+#. type: Plain text
+#: ../man/top.1:744
+msgid "Display the command line used to start a task or the name of the associated program. You toggle between commandI< line> andI< name> with `c', which is both a \\*(CO and an \\*(CI."
+msgstr "AfiÈ™ează linia de comandă utilizată pentru a porni o sarcină sau numele programului asociat. ComutaÈ›i între I<linia> de comandă È™i I<nume> cu „câ€, care este atât o opÈ›iune de linie de comandă, cât È™i o comandă interactivă."
+
+#. type: Plain text
+#: ../man/top.1:749
+#, no-wrap
+msgid ""
+"When you've chosen to display command lines, processes without a command\n"
+"line (like kernel threads) will be shown with only the program name in\n"
+"brackets, as in this example:\n"
+" [kthreadd]\n"
+msgstr ""
+"Dacă ați ales să afișați liniile de comandă, procesele fără o linie de comandă (cum ar fi firele de execuție ale nucleului) vor fi afișate doar cu numele programului între paranteze, ca în acest exemplu:\n"
+" [kthreadd]\n"
+
+#. type: Plain text
+#: ../man/top.1:752
+msgid "This field may also be impacted by the forest view display mode. \\*(XC `V' \\*(CI for additional information regarding that mode."
+msgstr "Acest câmp poate fi influențat, de asemenea, de modul de afișare a vizualizării arborescente. Consultați comanda interactivă „V†pentru informații suplimentare privind acest mod."
+
+#. type: Plain text
+#: ../man/top.1:761
+msgid "\\*(NT The COMMAND field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum \\*(WX characters). Even so, such variable width fields could still suffer truncation. This is especially true for this field when command lines are being displayed (the `c' \\*(CI.) \\*(XT 5c. SCROLLING a Window for additional information on accessing any truncated data."
+msgstr "Notă: Câmpul COMANDA, spre deosebire de majoritatea coloanelor, nu are o lățime fixă. Atunci când este afiÈ™at, acesta, precum È™i orice alte coloane cu lățime variabilă, vor fi alocate toate coloanele lățimea rămasă a ecranului (până la maximum \\*(WX caractere). Chiar È™i aÈ™a, astfel de câmpuri cu lățime variabilă ar putea suferi trunchiere. Acest lucru se întâmplă în special adevărat pentru acest câmp atunci când sunt afiÈ™ate linii de comandă (comanda interactivă „câ€.) A se vedea subiectul 5c. Derularea unei ferestre pentru informaÈ›ii suplimentare informaÈ›ii suplimentare privind accesarea oricăror date trunchiate."
+
+#. type: TP
+#: ../man/top.1:762
+#, no-wrap
+msgid "B<DATA \\*(Em Data + Stack Size (KiB) >"
+msgstr "B<DATA \\*(Em Dimensiunea date + stivă (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:768
+msgid "The amount of private memory I<reserved> by a process. It is also known as the Data Resident Set or DRS. Such memory may not yet be mapped to \\*(MP (RES) but will always be included in the \\*(MV (VIRT) amount."
+msgstr "Cantitatea de memorie privată I<rezervată> de un proces. Este cunoscută È™i sub numele de setul de date rezident „Data Resident Set†sau „DRSâ€. Este posibil ca această memorie să nu fie încă repartizată în memoria fizică (RES), dar va fi întotdeauna inclusă în cantitatea de memorie virtuală (VIRT)."
+
+#. type: TP
+#: ../man/top.1:771
+#, no-wrap
+msgid "B<ELAPSED \\*(Em Elapsed Running Time>"
+msgstr "B<ELAPSED \\*(Em Timpul de rulare scurs>"
+
+#. type: Plain text
+#: ../man/top.1:775
+msgid "The length of time since a process was started. Thus, the most recently started task will display the smallest time interval."
+msgstr "Perioada de timp de la începutul unui proces. Astfel, sarcina cea mai recent începută va afișa cel mai mic interval de timp."
+
+#. type: Plain text
+#: ../man/top.1:780
+msgid "The value will be expressed as `HH,MM' (hours,minutes) but is subject to additional scaling if the interval becomes too great to fit column width. At that point it will be scaled to `DD+HH' (days+hours) and possibly beyond."
+msgstr "Valoarea va fi exprimată ca „HH,MM†(ore, minute), dar este supusă unei scalări suplimentare dacă intervalul devine prea mare pentru a se potrivi cu lățimea coloanei. În acel moment, va fi scalată la „DD+HH†(zile+ore) și, dacă este cazul, și mai departe."
+
+#. type: TP
+#: ../man/top.1:781
+#, no-wrap
+msgid "B<ENVIRON \\*(Em Environment variables >"
+msgstr "B<ENVIRON \\*(Em Variabile de mediu>"
+
+#. type: Plain text
+#: ../man/top.1:787
+msgid "Display all of the environment variables, if any, as seen by the respective processes. These variables will be displayed in their raw native order, not the sorted order you are accustomed to seeing with an unqualified `set'."
+msgstr "Afișează toate variabilele de mediu, dacă există, așa cum sunt văzute de procesele respective. Aceste variabile vor fi afișate în ordinea lor nativă brută, nu în ordinea în care sunteți obișnuit să le vedeți cu un „set†necalificat."
+
+#. type: Plain text
+#: ../man/top.1:795
+msgid "\\*(NT The ENVIRON field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum \\*(WX characters). Even so, such variable width fields could still suffer truncation. This is especially true for this field. \\*(XT 5c. SCROLLING a Window for additional information on accessing any truncated data."
+msgstr "Notă: Câmpul „ENVIRONâ€, spre deosebire de majoritatea coloanelor, nu are o lățime fixă. Atunci când este afiÈ™at, acestuia È™i oricăror alte coloane cu lățime variabilă li se va aloca toată lățimea rămasă pe ecran (până la maximum \\*(WX caractere). Chiar È™i aÈ™a, astfel de câmpuri cu lățime variabilă ar putea suferi trunchiere. Acest lucru este valabil în special pentru acest câmp. A se vedea subiectul 5c. Derularea unei ferestre pentru informaÈ›ii suplimentare privind accesarea oricăror date trunchiate."
+
+#. type: TP
+#: ../man/top.1:796
+#, no-wrap
+msgid "B<EXE \\*(Em Executable Path >"
+msgstr "B<EXE \\*(Em Calea la executabil>"
+
+#. type: Plain text
+#: ../man/top.1:800
+msgid "Where available, this is the full path to the executable, including the program name."
+msgstr "În cazul în care este disponibilă, aceasta este calea completă către executabil, inclusiv numele programului."
+
+#. type: Plain text
+#: ../man/top.1:804
+msgid "\\*(NT The EXE field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum \\*(WX characters)."
+msgstr "Notă: Câmpul EXE, spre deosebire de majoritatea coloanelor, nu are o lățime fixă. Atunci când este afișat, acestuia și oricăror alte coloane cu lățime variabilă li se va aloca toată lățimea rămasă pe ecran (până la maximum \\*(WX caractere)."
+
+#. type: TP
+#: ../man/top.1:805
+#, no-wrap
+msgid "B<Flags \\*(Em Task Flags >"
+msgstr "B<Flags \\*(Em Indicatori sarcină>"
+
+#. type: Plain text
+#: ../man/top.1:810
+msgid "This column represents the task's current scheduling flags which are expressed in hexadecimal notation and with zeros suppressed. These flags are officially documented in E<lt>linux/sched.hE<gt>."
+msgstr "Această coloană reprezintă indicatorii de planificare curenți ai sarcinii, care sunt exprimați în notație hexazecimală și fără zerouri. Acești indicatori sunt documentați oficial în E<lt>linux/sched.hE<gt>."
+
+#. type: TP
+#: ../man/top.1:811
+#, no-wrap
+msgid "B<GID \\*(Em Group Id >"
+msgstr "B<GID \\*(Em Identificatorul de grup>"
+
+#. type: Plain text
+#: ../man/top.1:814
+msgid "TheI< effective> group ID."
+msgstr "Identificatorul grupului I<efectiv>."
+
+#. type: TP
+#: ../man/top.1:815
+#, no-wrap
+msgid "B<GROUP \\*(Em Group Name >"
+msgstr "B<GROUP \\*(Em Numele grupului>"
+
+#. type: Plain text
+#: ../man/top.1:818
+msgid "TheI< effective> group name."
+msgstr "Numele grupului I<efectiv>."
+
+#. type: TP
+#: ../man/top.1:819
+#, no-wrap
+msgid "B<LOGID \\*(Em Login User Id >"
+msgstr "B<LOGID \\*(Em Identificatorul utilizatorului autentificat>"
+
+#. type: Plain text
+#: ../man/top.1:823
+msgid "The user ID used atI< login>. When -1 is displayed it means this information is not available."
+msgstr "Identificatorul utilizatorului folosit la I<autentificare>. Când este afiÈ™at „-1â€, înseamnă că această informaÈ›ie nu este disponibilă."
+
+#. type: TP
+#: ../man/top.1:824
+#, no-wrap
+msgid "B<LXC \\*(Em Lxc Container Name >"
+msgstr "B<LXC \\*(Em Numele containerului Lxc>"
+
+#. type: Plain text
+#: ../man/top.1:828
+msgid "The name of the lxc container within which a task is running. If a process is not running inside a container, a dash (`-') will be shown."
+msgstr "Numele containerului lxc în care rulează o sarcină. Dacă un proces nu rulează în interiorul unui container, va fi afișată o liniuță (`-')."
+
+#. type: TP
+#: ../man/top.1:829
+#, no-wrap
+msgid "B<NI \\*(Em Nice Value >"
+msgstr "B<NI \\*(Em Valoarea curtoaziei „niceâ€>"
+
+#. type: Plain text
+#: ../man/top.1:836
+msgid "The nice value of the task. A negative nice value means higher priority, whereas a positive nice value means lower priority. Zero in this field simply means priority will not be adjusted in determining a task's dispatch-ability."
+msgstr "Valoarea curtoaziei sarcinii. O valoare de curtoazie negativă înseamnă o prioritate mai mare, în timp ce o valoare de curtoazie pozitivă înseamnă o prioritate mai mică. Zero în acest câmp înseamnă pur și simplu că prioritatea nu va fi ajustată la determinarea capacității de desfășurare a unei sarcini."
+
+#. type: Plain text
+#: ../man/top.1:840
+msgid "\\*(NT This value only affects scheduling priority relative to other processes in the same autogroup. \\*(XC `AGID' and `AGNI' fields for additional information on autogroups."
+msgstr "Notă: Această valoare afectează numai prioritatea de planificare în raport cu alte procese din același auto-grup. A se vedea câmpurile „AGID†și „AGNI†pentru informații suplimentare despre auto-grupuri."
+
+#. type: TP
+#: ../man/top.1:841
+#, no-wrap
+msgid "B<NU \\*(Em Last known NUMA node >"
+msgstr "B<NU \\*(Em Ultimul nod NUMA cunoscut>"
+
+#. type: Plain text
+#: ../man/top.1:845
+msgid "A number representing the NUMA node associated with the last used processor (`P'). When -1 is displayed it means that NUMA information is not available."
+msgstr "Un număr reprezentând nodul NUMA asociat cu ultimul procesor utilizat („Pâ€). Când este afiÈ™at „-1†înseamnă că informaÈ›iile NUMA nu sunt disponibile."
+
+#. type: Plain text
+#: ../man/top.1:847
+msgid "\\*(XC `2' and `3' \\*(CIs for additional NUMA provisions affecting the \\*(SA."
+msgstr "Consultați comenzile interactive „2†și „3†pentru prevederi suplimentare NUMA care afectează Zona de Rezumat."
+
+#. type: TP
+#: ../man/top.1:848
+#, no-wrap
+msgid "B<OOMa \\*(Em Out of Memory Adjustment Factor >"
+msgstr "B<OOMa \\*(Em Factorul de ajustare a depășirii limitelor memoriei disponibile>"
+
+#. type: Plain text
+#: ../man/top.1:853
+msgid "The value, ranging from -1000 to +1000, added to the current out of memory score (OOMs) which is then used to determine which task to kill when memory is exhausted."
+msgstr "Valoarea, care variază de la -1000 la +1000, se adaugă la estimarea actuală de depășire a memoriei (OOMs), care este apoi utilizat pentru a determina ce sarcină trebuie eliminată atunci când memoria este epuizată."
+
+#. type: TP
+#: ../man/top.1:854
+#, no-wrap
+msgid "B<OOMs \\*(Em Out of Memory Score >"
+msgstr "B<OOMs \\*(Em Estimarea de depășire a memoriei>"
+
+#. type: Plain text
+#: ../man/top.1:859
+msgid "The value, ranging from 0 to +1000, used to select task(s) to kill when memory is exhausted. Zero translates to `never kill' whereas 1000 means `always kill'."
+msgstr "Valoarea, cuprinsă între 0 È™i +1000, utilizată pentru a selecta sarcina (sarcinile) care urmează să fie omorâte atunci când memoria este epuizată. Zero se traduce prin „nu omorî niciodatăâ€, în timp ce 1000 înseamnă „omoară întotdeaunaâ€."
+
+#. type: TP
+#: ../man/top.1:860
+#, no-wrap
+msgid "B<P \\*(Em Last used \\*(PU (SMP) >"
+msgstr "B<P \\*(Em Ultimul \\*(PU utilizat (SMP)>"
+
+#. type: Plain text
+#: ../man/top.1:868
+msgid "A number representing the last used processor. In a true SMP environment this will likely change frequently since the kernel intentionally uses weak affinity. Also, the very act of running \\*(We may break this weak affinity and cause more processes to change \\*(PUs more often (because of the extra demand for \\*(Pu time)."
+msgstr "Un număr care reprezintă ultimul procesor utilizat. Într-un mediu SMP adevărat, acest număr se va schimba probabil frecvent, deoarece nucleul utilizează în mod intenționat o afinitate slabă. De asemenea, simplul fapt de a rula \\*(We poate rupe această afinitate slabă și poate face ca mai multe procese să schimbe procesoarele mai des (din cauza necesității suplimentare de timp \\*(Pu).."
+
+#. type: TP
+#: ../man/top.1:869
+#, no-wrap
+msgid "B<PGRP \\*(Em Process Group Id >"
+msgstr "B<PGRP \\*(Em Identificatorul grupului de procese>"
+
+#. type: Plain text
+#: ../man/top.1:878
+msgid "Every process is member of a unique process group which is used for distribution of signals and by terminals to arbitrate requests for their input and output. When a process is created (forked), it becomes a member of the process group of its parent. By convention, this value equals the process ID (\\*(Xa PID) of the first member of a process group, called the process group leader."
+msgstr "Fiecare proces este membru al unui grup de procese unic, care este utilizat pentru distribuirea semnalelor și de către terminale pentru a arbitra cererile de intrare și ieșire. Atunci când un proces este creat (bifurcat), acesta devine membru al grupului de procese al părintelui său. Prin convenție, această valoare este egală cu identificatorul procesului (a se vedea PID) al primului membru al unui grup de procese, numit liderul grupului de procese."
+
+#. type: TP
+#: ../man/top.1:879
+#, no-wrap
+msgid "B<PID \\*(Em Process Id >"
+msgstr "B<PID \\*(Em Identificatorul procesului>"
+
+#. type: Plain text
+#: ../man/top.1:884
+msgid "The task's unique process ID, which periodically wraps, though never restarting at zero. In kernel terms, it is a dispatchable entity defined by a task_struct."
+msgstr "Identificatorul unic de proces al sarcinii, care se reînnoieÈ™te periodic, dar nu reporneÈ™te niciodată de la zero. ÃŽn termeni de nucleu, este o entitate care poate fi gestionată definită de o „task_structâ€."
+
+#. type: Plain text
+#: ../man/top.1:889
+msgid "This value may also be used as: a process group ID (\\*(Xa PGRP); a session ID for the session leader (\\*(Xa SID); a thread group ID for the thread group leader (\\*(Xa TGID); and a TTY process group ID for the process group leader (\\*(Xa TPGID)."
+msgstr "Această valoare poate fi, de asemenea, utilizată ca: un ID de grup de procese (a se vedea PGRP); un ID de sesiune pentru liderul sesiunii (a se vedea SID); un ID de grup de fire de execuție pentru liderul grupului de fire de execuție (a se vedea TGID); și un ID de grup de procese TTY pentru liderul grupului de procese (a se vedea TPGID)."
+
+#. type: TP
+#: ../man/top.1:890
+#, no-wrap
+msgid "B<PPID \\*(Em Parent Process Id >"
+msgstr "B<PPID \\*(Em Identificatorul procesului părinte>"
+
+#. type: Plain text
+#: ../man/top.1:893
+msgid "The process ID (pid) of a task's parent."
+msgstr "Identificatorul de proces (pid) al părintelui unei sarcini."
+
+#. type: TP
+#: ../man/top.1:894
+#, no-wrap
+msgid "B<PR \\*(Em Priority >"
+msgstr "B<PR \\*(Em Prioritatea>"
+
+#. type: Plain text
+#: ../man/top.1:899
+msgid "The scheduling priority of the task. If you see `rt' in this field, it means the task is running under real time scheduling priority."
+msgstr "Prioritatea de planificare a sarcinii. Dacă vedeți „rt†în acest câmp, înseamnă că sarcina se execută cu prioritate de planificare în timp real."
+
+#. type: Plain text
+#: ../man/top.1:903
+msgid "Under linux, real time priority is somewhat misleading since traditionally the operating itself was not preemptible. And while the 2.6 kernel can be made mostly preemptible, it is not always so."
+msgstr "În Linux, prioritatea în timp real este oarecum înșelătoare, deoarece, în mod tradițional, sistemul de operare în sine nu era predictibil. Și, deși nucleul 2.6 poate fi făcut în mare parte predictibil, nu este întotdeauna așa."
+
+#. type: TP
+#: ../man/top.1:904
+#, no-wrap
+msgid "B<PSS \\*(Em Proportional Resident Memory, smaps (KiB) >"
+msgstr "B<PSS \\*(Em Proporția de memorie rezidentă, smaps (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:909
+msgid "The proportion of this task's share of `RSS' where each page is divided by the number of processes sharing it. It is also the sum of the `PSan', `PSfd' and `PSsh' fields."
+msgstr "ProporÈ›ia din porÈ›iunea de „RSS†a acestei sarcini în care fiecare pagină este împărÈ›ită la numărul de procese care o partajează. Este, de asemenea, suma câmpurilor „PSanâ€, „PSfd†și „PSshâ€."
+
+#. type: Plain text
+#: ../man/top.1:912
+msgid "For example, if a process has 1000 resident pages alone and 1000 resident pages shared with another process, its `PSS' would be 1500 (times page size)."
+msgstr "De exemplu, dacă un proces are 1000 de pagini rezidente singur È™i 1000 de pagini rezidente partajate cu un alt proces, „PSSâ€-ul acestuia va fi de 1500 (multiplicat cu dimensiunea paginii (1000 x 1,5))."
+
+#. type: Plain text
+#: ../man/top.1:914 ../man/top.1:927 ../man/top.1:951 ../man/top.1:1114
+msgid "\\*(ZX."
+msgstr "\\*(ZX."
+
+#. type: Plain text
+#: ../man/top.1:917
+msgid "B<PSan \\*(Em Proportional Anonymous Memory, smaps (KiB) >"
+msgstr "B<PSan \\*(Em Proporția de memorie anonimă, smaps (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:919
+msgid "B<PSfd \\*(Em Proportional File Memory, smaps (KiB) >"
+msgstr "B<PSfd \\*(Em Proporția de memorie pe fișier, smaps (KiB)>"
+
+#. type: Plain text
+#: ../man/top.1:921
+msgid "B<PSsh \\*(Em Proportional Shmem Memory, smaps (KiB) >"
+msgstr "B<PSsh \\*(Em Proporția de memorie shmem, smaps (KiB) >"
+
+#. type: Plain text
+#: ../man/top.1:925
+msgid "As was true for `PSS' above (total proportional resident memory), these fields represent the proportion of this task's share of each type of memory divided by the number of processes sharing it."
+msgstr "La fel ca și în cazul lui „PSS†de mai sus (memorie rezidentă proporțională totală), aceste câmpuri reprezintă proporția părții din fiecare tip de memorie care revine acestei sarcini, împărțită la numărul de procese care o partajează."
+
+#. type: TP
+#: ../man/top.1:929
+#, no-wrap
+msgid "B<RES \\*(Em Resident Memory Size (KiB) >"
+msgstr "B<RES \\*(Em Dimensiunea memoriei rezidente (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:934
+msgid "A subset of the virtual address space (VIRT) representing the non-swapped \\*(MP a task is currently using. It is also the sum of the `RSan', `RSfd' and `RSsh' fields."
+msgstr "Un subset al spaÈ›iului de adrese virtuale (VIRT) reprezentând memoria fizică (fără memoria spaÈ›iului de interschimb „swapâ€) pe care o sarcină o foloseÈ™te în prezent. Este, de asemenea, suma câmpurilor „RSanâ€, „RSfd†și „RSshâ€."
+
+#. type: Plain text
+#: ../man/top.1:938
+msgid "It can include private anonymous pages, private pages mapped to files (including program images and shared libraries) plus shared anonymous pages. All such memory is backed by the \\*(MS represented separately under SWAP."
+msgstr "Aceasta poate include pagini anonime private, pagini private alocate fișierelor (inclusiv imagini de program și biblioteci partajate) și pagini anonime partajate. Toată această memorie este susținută de fișierul „swap†reprezentat separat la secțiunea I<SWAP>."
+
+#. type: Plain text
+#: ../man/top.1:941
+msgid "Lastly, this field may also include shared file-backed pages which, when modified, act as a dedicated \\*(MS and thus will never impact SWAP."
+msgstr "În cele din urmă, acest câmp poate include, de asemenea, pagini partajate susținute de fișiere care, atunci când sunt modificate, acționează ca un fișier „swap†dedicat și, prin urmare, nu vor afecta niciodată I<SWAP>."
+
+#. type: TP
+#: ../man/top.1:944
+#, no-wrap
+msgid "B<RSS \\*(Em Resident Memory, smaps (KiB) >"
+msgstr "B<RSS \\*(Em Memoria rezidentă, smaps (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:949
+msgid "Another, more precise view of process non-swapped \\*(MP. It is obtained from the `smaps_rollup' file and is generally slightly larger than that shown for `RES'."
+msgstr "O altă vizualizare, mai precisă, a memoriei fizice (fără memoria spaÈ›iului de interschimb „swapâ€) a procesului. Este obÈ›inută din fiÈ™ierul „smaps_rollup†și este, în general, puÈ›in mai mare decât cea prezentată pentru I<RES>."
+
+#. type: TP
+#: ../man/top.1:952
+#, no-wrap
+msgid "B<RSan \\*(Em Resident Anonymous Memory Size (KiB) >"
+msgstr "B<RSan \\*(Em Dimensiunea memoriei rezidente anonime (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:956
+msgid "A subset of resident memory (RES) representing private pages not mapped to a file."
+msgstr "Un subset de memorie rezidentă (RES) care reprezintă pagini private care nu sunt alocate unui fișier."
+
+#. type: TP
+#: ../man/top.1:957
+#, no-wrap
+msgid "B<RSfd \\*(Em Resident File-Backed Memory Size (KiB) >"
+msgstr "B<RSfd \\*(Em Dimensiunea memoriei rezidente cu suport de fișiere (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:962
+msgid "A subset of resident memory (RES) representing the implicitly shared pages supporting program images and shared libraries. It also includes explicit file mappings, both private and shared."
+msgstr "Un subset de memorie rezidentă (RES) reprezentând paginile implicit partajate care suportă imagini de program și biblioteci partajate. Include, de asemenea, alocări explicite ale fișierelor, atât private, cât și partajate."
+
+#. type: TP
+#: ../man/top.1:963
+#, no-wrap
+msgid "B<RSlk \\*(Em Resident Locked Memory Size (KiB) >"
+msgstr "B<RSlk \\*(Em Dimensiunea memoriei rezidente blocate (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:966
+msgid "A subset of resident memory (RES) which cannot be swapped out."
+msgstr "Un subset de memorie rezidentă (RES) care nu poate fi interschimbată."
+
+#. type: TP
+#: ../man/top.1:967
+#, no-wrap
+msgid "B<RSsh \\*(Em Resident Shared Memory Size (KiB) >"
+msgstr "B<RSsh \\*(Em Dimensiunea memoriei partajate rezidente (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:971
+msgid "A subset of resident memory (RES) representing the explicitly shared anonymous shm*/mmap pages."
+msgstr "Un subset de memorie rezidentă (RES) reprezentând paginile „shm*/mmap†anonime partajate în mod explicit."
+
+#. type: TP
+#: ../man/top.1:972
+#, no-wrap
+msgid "B<RUID \\*(Em Real User Id >"
+msgstr "B<RUID \\*(Em Identificatorul utilizatorului real>"
+
+#. type: Plain text
+#: ../man/top.1:975
+msgid "TheI< real> user ID."
+msgstr "Identificatorul utilizatorului I<real>."
+
+#. type: TP
+#: ../man/top.1:976
+#, no-wrap
+msgid "B<RUSER \\*(Em Real User Name >"
+msgstr "B<RUSER \\*(Em Numele utilizatorului real>"
+
+#. type: Plain text
+#: ../man/top.1:979
+msgid "TheI< real> user name."
+msgstr "Numele utilizatorului I<real>."
+
+#. type: TP
+#: ../man/top.1:980
+#, no-wrap
+msgid "B<S \\*(Em Process Status >"
+msgstr "B<S \\*(Em Starea procesului>"
+
+#. type: Plain text
+#: ../man/top.1:990
+#, no-wrap
+msgid ""
+"The status of the task which can be one of:\n"
+" B<D> = uninterruptible sleep\n"
+" B<I> = idle\n"
+" B<R> = running\n"
+" B<S> = sleeping\n"
+" B<T> = stopped by job control signal\n"
+" B<t> = stopped by debugger during trace\n"
+" B<Z> = zombie\n"
+msgstr ""
+"Starea sarcinii, care poate fi una dintre următoarele:\n"
+" B<D> = în somn neîntrerupt\n"
+" B<I> = inactivă\n"
+" B<R> = rulează\n"
+" B<S> = dormind\n"
+" B<T> = oprită de semnalul de control al lucrării\n"
+" B<t> = oprită de depanator în timpul urmăririi\n"
+" B<Z> = zombi\n"
+
+#. type: Plain text
+#: ../man/top.1:995
+msgid "Tasks shown as running should be more properly thought of as ready to run \\*(Em their task_struct is simply represented on the Linux run-queue. Even without a true SMP machine, you may see numerous tasks in this state depending on \\*(We's delay interval and nice value."
+msgstr "Sarcinile afișate ca rulând ar trebui să fie considerate mai degrabă ca fiind pregătite să ruleze \\*(Em task_struct lor este reprezentat pur și simplu în coada de execuție Linux. Chiar și în lipsa unei mașini SMP adevărate, este posibil să vedeți numeroase sarcini în această stare, în funcție de intervalul de întârziere și de valoarea „nice†a lui \\*(We."
+
+#. type: TP
+#: ../man/top.1:996
+#, no-wrap
+msgid "B<SHR \\*(Em Shared Memory Size (KiB) >"
+msgstr "B<SHR \\*(Em Dimensiunea memoriei partajate (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:1002
+msgid "A subset of resident memory (RES) that may be used by other processes. It will include shared anonymous pages and shared file-backed pages. It also includes private pages mapped to files representing program images and shared libraries."
+msgstr "Un subset de memorie rezidentă (RES) care poate fi utilizat de alte procese. Acesta va include pagini anonime partajate și pagini partajate susținute de fișiere. De asemenea, include pagini private asociate la fișiere reprezentând imagini de program și biblioteci partajate."
+
+#. type: TP
+#: ../man/top.1:1005
+#, no-wrap
+msgid "B<SID \\*(Em Session Id >"
+msgstr "B<SID \\*(Em Identificatorul sesiunii>"
+
+#. type: Plain text
+#: ../man/top.1:1013
+msgid "A session is a collection of process groups (\\*(Xa PGRP), usually established by the login shell. A newly forked process joins the session of its creator. By convention, this value equals the process ID (\\*(Xa PID) of the first member of the session, called the session leader, which is usually the login shell."
+msgstr "O sesiune este o colecție de grupuri de procese (a se vedea PGRP), stabilite de obicei de shell-ul de conectare. Un proces nou bifurcat se alătură sesiunii creatorului său. Prin convenție, această valoare este egală cu ID-ul procesului (a se vedea PID) al primului membru al sesiunii, numit lider de sesiune, care este de obicei shell-ul de conectare."
+
+#. type: TP
+#: ../man/top.1:1014
+#, no-wrap
+msgid "B<STARTED \\*(Em Start Time Interval>"
+msgstr "B<STARTED \\*(Em Intervalul de timp de pornire>"
+
+#. type: Plain text
+#: ../man/top.1:1018
+msgid "The length of time since system boot when a process started. Thus, the most recently started task will display the largest time interval."
+msgstr "Durata de timp scursă de la pornirea sistemului când a fost inițiat un proces. Astfel, cea mai recentă sarcină pornită va afișa cel mai mare interval de timp."
+
+#. type: Plain text
+#: ../man/top.1:1022
+msgid "The value will be expressed as `MM:SS' (minutes:seconds). But if the interval is too great to fit column width it will be scaled as `HH,MM' (hours,minutes) and possibly beyond."
+msgstr "Valoarea va fi exprimată ca „MM:SS†(minute:secunde). Dar dacă intervalul este prea mare pentru a se potrivi cu lățimea coloanei, acesta va fi scalat ca „HH,MM†(ore, minute) și, eventual, mai departe."
+
+#. type: TP
+#: ../man/top.1:1023
+#, no-wrap
+msgid "B<SUID \\*(Em Saved User Id >"
+msgstr "B<SUID \\*(Em Identificatorul utilizatorului salvat>"
+
+#. type: Plain text
+#: ../man/top.1:1026
+msgid "TheI< saved> user ID."
+msgstr "Identificatorul utilizatorului I<salvat>."
+
+#. type: TP
+#: ../man/top.1:1027
+#, no-wrap
+msgid "B<SUPGIDS \\*(Em Supplementary Group IDs >"
+msgstr "B<SUPGIDS \\*(Em Identificatori de grup suplimentari>"
+
+#. type: Plain text
+#: ../man/top.1:1032
+msgid "The IDs of any supplementary group(s) established at login or inherited from a task's parent. They are displayed in a comma delimited list."
+msgstr "Identificatorii oricăror grupuri suplimentare stabilite la conectare sau moștenite de la părintele unei sarcini. Acestea sunt afișate într-o listă delimitată prin virgule."
+
+#. type: Plain text
+#: ../man/top.1:1036
+msgid "\\*(NT The SUPGIDS field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum \\*(WX characters)."
+msgstr "Notă: Câmpul SUPGIDS, spre deosebire de majoritatea coloanelor, nu are o lățime fixă. Atunci când este afișat, acestuia și oricăror alte coloane cu lățime variabilă li se va aloca toată lățimea rămasă pe ecran (până la maximum \\*(WX caractere)."
+
+#. type: TP
+#: ../man/top.1:1037
+#, no-wrap
+msgid "B<SUPGRPS \\*(Em Supplementary Group Names >"
+msgstr "B<SUPGRPS \\*(Em Nume de grupuri suplimentare>"
+
+#. type: Plain text
+#: ../man/top.1:1042
+msgid "The names of any supplementary group(s) established at login or inherited from a task's parent. They are displayed in a comma delimited list."
+msgstr "Numele oricăror grupuri suplimentare stabilite la conectare sau moștenite de la părintele unei sarcini. Acestea sunt afișate într-o listă delimitată prin virgule."
+
+#. type: Plain text
+#: ../man/top.1:1046
+msgid "\\*(NT The SUPGRPS field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum \\*(WX characters)."
+msgstr "Notă: Câmpul SUPGRPS, spre deosebire de majoritatea coloanelor, nu are o lățime fixă. Atunci când este afișat, acestuia și oricăror alte coloane cu lățime variabilă li se va aloca toată lățimea rămasă pe ecran (până la maximum \\*(WX caractere)."
+
+#. type: TP
+#: ../man/top.1:1047
+#, no-wrap
+msgid "B<SUSER \\*(Em Saved User Name >"
+msgstr "B<SUID \\*(Em Numele utilizatorului salvat>"
+
+#. type: Plain text
+#: ../man/top.1:1050
+msgid "TheI< saved> user name."
+msgstr "Numele utilizatorului I<salvat>."
+
+#. type: TP
+#: ../man/top.1:1051
+#, no-wrap
+msgid "B<SWAP \\*(Em Swapped Size (KiB) >"
+msgstr "B<SWAP \\*(Em Dimensiunea spațiului de interschimb (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:1055
+msgid "The formerly resident portion of a task's address space written to the \\*(MS when \\*(MP becomes over committed."
+msgstr "Porțiunea rezidentă anterior a spațiului de adrese al unei sarcini care se scrie în fișierul „swap†atunci când memoria fizică este suprasolicitată."
+
+#. type: TP
+#: ../man/top.1:1058
+#, no-wrap
+msgid "B<TGID \\*(Em Thread Group Id >"
+msgstr "B<TGID \\*(Em Identificatorul grupului de fire de execuție>"
+
+#. type: Plain text
+#: ../man/top.1:1063
+msgid "The ID of the thread group to which a task belongs. It is the PID of the thread group leader. In kernel terms, it represents those tasks that share an mm_struct."
+msgstr "Identificatorul grupului de fire de execuție din care face parte o sarcină. Este PID-ul liderului grupului de fire. În termeni de nucleu, reprezintă acele sarcini care partajează o structură mm_struct."
+
+#. type: TP
+#: ../man/top.1:1064
+#, no-wrap
+msgid "B<TIME \\*(Em \\*(PU Time >"
+msgstr "B<TIME \\*(Em Timpul \\*(PU>"
+
+#. type: Plain text
+#: ../man/top.1:1071
+msgid "Total \\*(PU time the task has used since it started. When Cumulative mode is \\*O, each process is listed with the \\*(Pu time that it and its dead children have used. You toggle Cumulative mode with `S', which is both a \\*(CO and an \\*(CI. \\*(XC `S' \\*(CI for additional information regarding this mode."
+msgstr "Timpul total \\*(PU pe care sarcina a folosit-o de când a început. Când modul cumulativ este \\*O (On), fiecare proces este listat cu timpul \\*(Pu pe care l-au folosit el È™i copiii săi morÈ›i. ComutaÈ›i modul Cumulativ cu „Sâ€, care este atât o opÈ›iune de linie de comandă, cât È™i o comandă interactivă. ConsultaÈ›i comanda interactivă „S†pentru informaÈ›ii suplimentare despre acest mod."
+
+#. type: TP
+#: ../man/top.1:1072
+#, no-wrap
+msgid "B<TIME+ \\*(Em \\*(PU Time, hundredths >"
+msgstr "B<TIME+ \\*(Em Timpul \\*(PU, în sutimi de secundă>"
+
+#. type: Plain text
+#: ../man/top.1:1076
+msgid "The same as TIME, but reflecting more granularity through hundredths of a second."
+msgstr "La fel ca TIMPUL, dar reflectând mai multă finețe prin sutimi de secundă."
+
+#. type: TP
+#: ../man/top.1:1077
+#, no-wrap
+msgid "B<TPGID \\*(Em Tty Process Group Id >"
+msgstr "B<TPGID \\*(Em Identificatorul grupului de procese care controlează terminalul (tty)>"
+
+#. type: Plain text
+#: ../man/top.1:1083
+msgid "The process group ID of the foreground process for the connected tty, or -1 if a process is not connected to a terminal. By convention, this value equals the process ID (\\*(Xa PID) of the process group leader (\\*(Xa PGRP)."
+msgstr "Identificatorul grupului de procese al procesului din prim-plan pentru terminalul (tty) conectat sau „-1†dacă un proces nu este conectat la un terminal. Prin convenție, această valoare este egală cu identificatorul de proces (a se vedea PID) al liderului grupului de procese (a se vedea PGRP)."
+
+#. type: TP
+#: ../man/top.1:1084
+#, no-wrap
+msgid "B<TTY \\*(Em Controlling Tty >"
+msgstr "B<TTY \\*(Em Terminalul de control>"
+
+#. type: Plain text
+#: ../man/top.1:1091
+msgid "The name of the controlling terminal. This is usually the device (serial port, pty, etc.) from which the process was started, and which it uses for input or output. However, a task need not be associated with a terminal, in which case you'll see `?' displayed."
+msgstr "Numele terminalului de control. Acesta este, de obicei, dispozitivul (port serial, pty etc.) de la care a fost pornit procesul È™i pe care îl foloseÈ™te pentru intrare sau ieÈ™ire. Cu toate acestea, nu este necesar ca o sarcină să fie asociată cu un terminal, caz în care veÈ›i vedea afiÈ™at „?â€."
+
+#. type: TP
+#: ../man/top.1:1092
+#, no-wrap
+msgid "B<UID \\*(Em User Id >"
+msgstr "B<UID \\*(Em Identificatorul utilizatorului>"
+
+#. type: Plain text
+#: ../man/top.1:1095
+msgid "TheI< effective> user ID of the task's owner."
+msgstr "Identificatorul de utilizator I<efectiv> al proprietarului sarcinii."
+
+#. type: TP
+#: ../man/top.1:1096
+#, no-wrap
+msgid "B<USED \\*(Em Memory in Use (KiB) >"
+msgstr "B<USED \\*(Em Memoria utilizată (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:1100
+msgid "This field represents the non-swapped \\*(MP a task is using (RES) plus the swapped out portion of its address space (SWAP)."
+msgstr "Acest câmp reprezintă memoria fizică fără memoria din spațiul de interschimb pe care o sarcină o folosește (RES) plus porțiunea spațiului de interschimb din spațiul său de adrese (SWAP)."
+
+#. type: TP
+#: ../man/top.1:1103
+#, no-wrap
+msgid "B<USER \\*(Em User Name >"
+msgstr "B<USER \\*(Em Numele utilizatorului>"
+
+#. type: Plain text
+#: ../man/top.1:1106
+msgid "TheI< effective> user name of the task's owner."
+msgstr "Numele de utilizator I<efectiv> al proprietarului sarcinii."
+
+#. type: TP
+#: ../man/top.1:1107
+#, no-wrap
+msgid "B<USS \\*(Em Unique Set Size >"
+msgstr "B<USS \\*(Em Dimensiune unică a setului>"
+
+#. type: Plain text
+#: ../man/top.1:1112
+msgid "The non-swapped portion of \\*(MP (`RSS') not shared with any other process. It is derived from the `smaps_rollup' file."
+msgstr "PorÈ›iunea de memorie fizică fără memoria din spaÈ›iul de interschimb („RSSâ€) care nu este partajată cu nici un alt proces. Este derivată din fiÈ™ierul „smaps_rollupâ€."
+
+#. type: TP
+#: ../man/top.1:1115
+#, no-wrap
+msgid "B<VIRT \\*(Em Virtual Memory Size (KiB) >"
+msgstr "B<VIRT \\*(Em Dimensiunea memoriei virtuale (Kio)>"
+
+#. type: Plain text
+#: ../man/top.1:1120
+msgid "The total amount of \\*(MV used by the task. It includes all code, data and shared libraries plus pages that have been swapped out and pages that have been mapped but not used."
+msgstr "Cantitatea totală de memorie virtuală utilizată de sarcină. Include tot codul, datele și bibliotecile partajate plus paginile care au fost schimbate și paginile care au fost alocate, dar nu utilizate."
+
+#. type: TP
+#: ../man/top.1:1123
+#, no-wrap
+msgid "B<WCHAN \\*(Em Sleeping in Function >"
+msgstr "B<WCHAN \\*(Em Dormirea în funcție>"
+
+#. type: Plain text
+#: ../man/top.1:1128
+msgid "This field will show the name of the kernel function in which the task is currently sleeping. Running tasks will display a dash (`-') in this column."
+msgstr "Acest câmp va afiÈ™a numele funcÈ›iei din nucleu în care doarme în prezent sarcina. Sarcinile care rulează vor afiÈ™a o liniuță („-â€) în câmpul din această coloană."
+
+#. type: TP
+#: ../man/top.1:1129
+#, no-wrap
+msgid "B<ioR \\*(Em I/O Bytes Read >"
+msgstr "B<ioR \\*(Em Numărul de octeți de In/Ieș citiți>"
+
+#. type: Plain text
+#: ../man/top.1:1132
+msgid "The number of bytes a process caused to be fetched from the storage layer."
+msgstr "Numărul de octeți pe care un proces i-a determinat să fie preluați din stratul de stocare."
+
+#. type: Plain text
+#: ../man/top.1:1134
+msgid "Root privileges are required to display `io' data for other users."
+msgstr "Sunt necesare privilegii de root pentru a afișa datele de„in/ieș†pentru alți utilizatori."
+
+#. type: TP
+#: ../man/top.1:1135
+#, no-wrap
+msgid "B<ioRop \\*(Em I/O Read Operations >"
+msgstr "B<ioRop \\*(Em Numărul de operații de citire de la In/Ieș>"
+
+#. type: Plain text
+#: ../man/top.1:1139
+msgid "The number of read I/O operations (syscalls) for a process. Such calls might not result in actual physical disk I/O."
+msgstr "Numărul de operaÈ›ii de citire a In/IeÈ™ (apeluri de sistem „syscallsâ€) pentru un proces. Este posibil ca astfel de apeluri să nu aibă ca rezultat o In/IeÈ™ efectivă a discului fizic."
+
+#. type: TP
+#: ../man/top.1:1140
+#, no-wrap
+msgid "B<ioW \\*(Em I/O Bytes Written >"
+msgstr "B<ioW \\*(Em Numărul de octeți de In/Ieș scriși>"
+
+#. type: Plain text
+#: ../man/top.1:1143
+msgid "The number of bytes a process caused to be sent to the storage layer."
+msgstr "Numărul de octeți pe care un proces i-a determinat să fie trimiși la stratul de stocare."
+
+#. type: TP
+#: ../man/top.1:1144
+#, no-wrap
+msgid "B<ioWop \\*(Em I/O Write Operations >"
+msgstr "B<ioWop \\*(Em Numărul de operații de scriere la In/Ieș>"
+
+#. type: Plain text
+#: ../man/top.1:1148
+msgid "The number of write I/O operations (syscalls) for a process. Such calls might not result in actual physical disk I/O."
+msgstr "Numărul de operaÈ›ii de scriere la In/IeÈ™ (apeluri de sistem „syscallsâ€) pentru un proces. Este posibil ca astfel de apeluri să nu aibă ca rezultat o In/IeÈ™ efectivă a discului fizic."
+
+#. type: TP
+#: ../man/top.1:1149
+#, no-wrap
+msgid "B<nDRT \\*(Em Dirty Pages Count >"
+msgstr "B<nDRT \\*(Em Numărul de pagini corupte>"
+
+#. type: Plain text
+#: ../man/top.1:1155
+msgid "The number of pages that have been modified since they were last written to \\*(AS. Dirty pages must be written to \\*(AS before the corresponding physical memory location can be used for some other virtual page."
+msgstr "Numărul de pagini care au fost modificate de când au fost scrise ultima dată în memoria auxiliară. Paginile corupte trebuie să fie scrise în memoria auxiliară. înainte ca locația de memorie fizică corespunzătoare să poată fi utilizată pentru o altă pagină virtuală."
+
+#. type: Plain text
+#: ../man/top.1:1157
+msgid "This field was deprecated with linux 2.6 and is always zero."
+msgstr "Acest câmp a fost desființat odată cu linux 2.6 și este întotdeauna zero."
+
+#. type: TP
+#: ../man/top.1:1158
+#, no-wrap
+msgid "B<nMaj \\*(Em Major Page Fault Count >"
+msgstr "B<nMaj \\*(Em Numărul de erori de pagină majore>"
+
+#. type: Plain text
+#: ../man/top.1:1165
+msgid "The number ofB< major> page faults that have occurred for a task. A page fault occurs when a process attempts to read from or write to a virtual page that is not currently present in its address space. A major page fault is when \\*(AS access is involved in making that page available."
+msgstr "Numărul de erori de pagină B<majore> care au avut loc pentru o sarcină. O eroare de pagină apare atunci când un proces încearcă să citească sau să scrie pe o pagină virtuală care nu este prezentă în acel moment în spațiul său de adrese. O eroare majoră de pagină este atunci când este implicat un acces la o stocare auxiliară pentru a face pagina respectivă disponibilă."
+
+#. type: TP
+#: ../man/top.1:1166
+#, no-wrap
+msgid "B<nMin \\*(Em Minor Page Fault count >"
+msgstr "B<nMaj \\*(Em Numărul de erori de pagină minore>"
+
+#. type: Plain text
+#: ../man/top.1:1173
+msgid "The number ofB< minor> page faults that have occurred for a task. A page fault occurs when a process attempts to read from or write to a virtual page that is not currently present in its address space. A minor page fault does not involve \\*(AS access in making that page available."
+msgstr "Numărul de erori de pagină B<minore> care au avut loc pentru o sarcină. O eroare de pagină apare atunci când un proces încearcă să citească sau să scrie pe o pagină virtuală care nu este prezentă în acel moment în spațiul său de adrese. O eroare de pagină minoră nu implică accesul la stocarea auxiliară pentru a face pagina respectivă disponibilă."
+
+#. type: TP
+#: ../man/top.1:1174
+#, no-wrap
+msgid "B<nTH \\*(Em Number of Threads >"
+msgstr "B<nTH \\*(Em Numărul de fire de execuție>"
+
+#. type: Plain text
+#: ../man/top.1:1177
+msgid "The number of threads associated with a process."
+msgstr "Numărul de fire de execuție asociate unui proces."
+
+#. type: TP
+#: ../man/top.1:1178
+#, no-wrap
+msgid "B<nsCGROUP \\*(Em CGROUP namespace >"
+msgstr "B<nsCGROUP \\*(Em SpaÈ›iul de nume al grupului de control „CGROUPâ€>"
+
+#. type: Plain text
+#: ../man/top.1:1182
+msgid "The Inode of the namespace used to hide the identity of the control group of which process is a member."
+msgstr "Nodul-i al spațiului de nume utilizat pentru a ascunde identitatea grupului de control al cărui membru este procesul."
+
+#. type: TP
+#: ../man/top.1:1183
+#, no-wrap
+msgid "B<nsIPC \\*(Em IPC namespace >"
+msgstr "B<nsIPC \\*(Em Spațiul de nume IPC>"
+
+#. type: Plain text
+#: ../man/top.1:1187
+msgid "The Inode of the namespace used to isolate interprocess communication (IPC) resources such as System V IPC objects and POSIX message queues."
+msgstr "Nodul-i al spațiului de nume utilizat pentru a izola resursele de comunicare interproces (IPC), cum ar fi obiectele IPC System V și cozile de mesaje POSIX."
+
+#. type: TP
+#: ../man/top.1:1188
+#, no-wrap
+msgid "B<nsMNT \\*(Em MNT namespace >"
+msgstr "B<nsMNT \\*(Em Spațiul de nume MNT>"
+
+#. type: Plain text
+#: ../man/top.1:1192
+msgid "The Inode of the namespace used to isolate filesystem mount points thus offering different views of the filesystem hierarchy."
+msgstr "Nodul-i al spațiului de nume utilizat pentru a izola punctele de montare a sistemului de fișiere, oferind astfel diferite vizualizări ale ierarhiei sistemului de fișiere."
+
+#. type: TP
+#: ../man/top.1:1193
+#, no-wrap
+msgid "B<nsNET \\*(Em NET namespace >"
+msgstr "B<nsNET \\*(Em Spațiul de nume NET>"
+
+#. type: Plain text
+#: ../man/top.1:1197
+msgid "The Inode of the namespace used to isolate resources such as network devices, IP addresses, IP routing, port numbers, etc."
+msgstr "Nodul-i al spațiului de nume utilizat pentru a izola resurse precum dispozitive de rețea, adrese IP, rutare IP, numere de port, etc."
+
+#. type: TP
+#: ../man/top.1:1198
+#, no-wrap
+msgid "B<nsPID \\*(Em PID namespace >"
+msgstr "B<nsPID \\*(Em Spațiul de nume PID>"
+
+#. type: Plain text
+#: ../man/top.1:1204
+msgid "The Inode of the namespace used to isolate process ID numbers meaning they need not remain unique. Thus, each such namespace could have its own `init/systemd' (PID #1) to manage various initialization tasks and reap orphaned child processes."
+msgstr "Nodul-i al spațiului de nume utilizat pentru a izola numerele de identificare a proceselor, ceea ce înseamnă că acestea nu trebuie să rămână unice. Astfel, fiecare astfel de spațiu de nume ar putea avea propriul „init/systemd†(PID #1) pentru a gestiona diverse sarcini de inițializare și pentru a culege procesele copil orfane."
+
+#. type: TP
+#: ../man/top.1:1205
+#, no-wrap
+msgid "B<nsTIME \\*(Em TIME namespace >"
+msgstr "B<nsTIME \\*(Em Spațiul de nume TIME>"
+
+#. type: Plain text
+#: ../man/top.1:1209
+msgid "The Inode of the namespace which allows processes to see different system times in a way similar to the UTS namespace."
+msgstr "Nodul-i al spațiului de nume care permite proceselor să vadă diferite ore de sistem într-un mod similar cu spațiul de nume UTS."
+
+#. type: TP
+#: ../man/top.1:1210
+#, no-wrap
+msgid "B<nsUSER \\*(Em USER namespace >"
+msgstr "B<nsUSER \\*(Em Spațiul de nume USER>"
+
+#. type: Plain text
+#: ../man/top.1:1216
+msgid "The Inode of the namespace used to isolate the user and group ID numbers. Thus, a process could have a normal unprivileged user ID outside a user namespace while having a user ID of 0, with full root privileges, inside that namespace."
+msgstr "Nodul-i al spațiului de nume utilizat pentru a izola numerele de identificare ale utilizatorilor și grupurilor. Astfel, un proces ar putea avea un ID de utilizator normal, fără privilegii, în afara unui spațiu de nume de utilizator, în timp ce în interiorul acelui spațiu de nume ar putea avea un ID de utilizator 0, cu privilegii complete de root."
+
+#. type: TP
+#: ../man/top.1:1217
+#, no-wrap
+msgid "B<nsUTS \\*(Em UTS namespace >"
+msgstr "B<nsUTS \\*(Em Spațiul de nume UTS>"
+
+#. type: Plain text
+#: ../man/top.1:1221
+msgid "The Inode of the namespace used to isolate hostname and NIS domain name. UTS simply means \"UNIX Time-sharing System\"."
+msgstr "Nodul-i al spațiului de nume utilizat pentru a izola numele de gazdă și numele de domeniu NIS. UTS înseamnă pur și simplu \"UNIX Time-sharing System\" (Sistemul UNIX de partajare a timpului)."
+
+#. type: TP
+#: ../man/top.1:1222
+#, no-wrap
+msgid "B<vMj \\*(Em Major Page Fault Count Delta>"
+msgstr "B<vMj \\*(Em Numărul delta de erori de pagină majore>"
+
+#. type: Plain text
+#: ../man/top.1:1226
+msgid "The number ofB< major> page faults that have occurred since the last update (see nMaj)."
+msgstr "Numărul de erori de pagină B<majore> care au avut loc de la ultima actualizare (a se vedea nMaj)."
+
+#. type: TP
+#: ../man/top.1:1227
+#, no-wrap
+msgid "B<vMn \\*(Em Minor Page Fault Count Delta>"
+msgstr "B<vMn \\*(Em Numărul delta de erori de pagină minore>"
+
+#. type: Plain text
+#: ../man/top.1:1231
+msgid "The number ofB< minor> page faults that have occurred since the last update (see nMin)."
+msgstr "Numărul de erori de pagină B<minore> care au avut loc de la ultima actualizare (a se vedea nMin)."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1233
+#, no-wrap
+msgid "3b. MANAGING Fields"
+msgstr "3b. GESTIONAREA câmpurilor"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1240
+msgid "After pressing the \\*(CI `f' (Fields Management) you will be presented with a screen showing: 1) the \\*(CW name; 2) the designated sort field; 3) all fields in their current order along with descriptions. Entries marked with an asterisk are the currently displayed fields, screen width permitting."
+msgstr "După apăsarea comenzii interactive „f†(Gestionarea câmpurilor) vi se va afiÈ™a un ecran care arată: 1) numele ferestrei „actualeâ€; 2) câmpul de sortare desemnat; 3) toate câmpurile în ordinea lor curentă împreună cu descrierile. Intrările marcate cu un asterisc sunt câmpurile afiÈ™ate în prezent, dacă lățimea ecranului o permite."
+
+#. type: IP
+#: ../man/top.1:1242 ../man/top.1:1248 ../man/top.1:1253 ../man/top.1:1257
+#: ../man/top.1:1262 ../man/top.1:2687 ../man/top.1:2710 ../man/top.1:2719
+#: ../man/top.1:2735 ../man/top.1:2741 ../man/top.1:2747 ../man/top.1:2757
+#: ../man/top.1:2774
+#, no-wrap
+msgid "\\(bu"
+msgstr "\\(bu"
+
+#. type: Plain text
+#: ../man/top.1:1247
+msgid "As the on screen instructions indicate, you navigate among the fields with theB< Up> andB< Down> \\*(KAs. The PgUp, PgDn, Home and End keys can also be used to quickly reach the first or last available field."
+msgstr "După cum indică instrucÈ›iunile de pe ecran, navigaÈ›i printre câmpuri cu tastele săgeÈ›i B<Sus> È™i B<Jos>. Tastele „PgUpâ€, „PgDnâ€, „Home†și „End†pot fi, de asemenea, folosite pentru a ajunge rapid la primul sau ultimul câmp disponibil."
+
+#. type: Plain text
+#: ../man/top.1:1252
+msgid "TheB< Right> \\*(KA selects a field for repositioning and theB< Left> \\*(KA or the E<lt>B<Enter>E<gt> key commits that field's placement."
+msgstr "Tasta săgeată B<Dreapta> selectează un câmp pentru repoziționare, iar tasta săgeată B<Stânga> sau tasta E<lt>B<Enter>E<gt> validează plasarea câmpului respectiv."
+
+#. type: Plain text
+#: ../man/top.1:1256
+msgid "The `B<d>' key or the E<lt>B<Space>E<gt> bar toggles a field's display status, and thus the presence or absence of the asterisk."
+msgstr "Tasta „B<d>†sau bara B<Spațiu> comută starea de afișare a unui câmp și, prin urmare, prezența sau absența asteriscului."
+
+#. type: Plain text
+#: ../man/top.1:1261
+msgid "The `B<s>' key designates a field as the sort field. \\*(XT 4c. TASK AREA Commands, SORTING for additional information regarding your selection of a sort field."
+msgstr "Tasta „B<s>†desemnează un câmp ca fiind câmpul de sortare. A se vedea subiectul 4c. „Comenzi din zona de sarcini, Sortare†pentru informații suplimentare privind selectarea unui câmp de sortare."
+
+#. type: Plain text
+#: ../man/top.1:1265
+msgid "The `B<a>' and `B<w>' keys can be used to cycle through all available windows and the `B<q>' or E<lt>B<Esc>E<gt> keys exit Fields Management."
+msgstr "Tastele „B<a>†și „B<w>†pot fi folosite pentru a parcurge toate ferestrele disponibile, iar tastele „B<q>†sau E<lt>B<Esc>E<gt> fac ieÈ™irea din „Gestionarea câmpurilorâ€."
+
+#. type: Plain text
+#: ../man/top.1:1274
+msgid "The Fields Management screen can also be used to change the \\*(CG in either \\*(FM or \\*(AM. Whatever was targeted when `q' or E<lt>EscE<gt> was pressed will be made current as you return to the \\*(We display. \\*(XT 5. ALTERNATE-DISPLAY Provisions and the `g' \\*(CI for insight into \\*(CWs and \\*(FGs."
+msgstr "Ecranul de „Gestionarea câmpurilor†poate fi utilizat, de asemenea, pentru a schimba fereastra/grupul de câmpuri „curentâ€, fie în modul ecran complet, fie în modul de afiÈ™are alternativă. Ceea ce a fost vizat atunci când a fost apăsată tasta „q†sau E<lt>EscE<gt> va fi făcut curent atunci când reveniÈ›i la afiÈ™area \\*(We. A se vedea subiectul 5. DispoziÈ›ii privind AFIȘAREA ALTERNATIVÄ‚ È™i comanda interactivă „g†pentru o perspectivă asupra ferestrelor È™i grupurilor de câmpuri „curenteâ€."
+
+#. type: Plain text
+#: ../man/top.1:1281
+msgid "\\*(NT Any window that has been scrolledI< horizontally> will be reset if any field changes are made via the Fields Management screen. AnyI< vertical> scrolled position, however, will not be affected. \\*(XT 5c. SCROLLING a Window for additional information regarding vertical and horizontal scrolling."
+msgstr "Notă: Orice fereastră care a fost derulată pe I<orizontală> va fi restabilită în cazul în care se efectuează modificări ale câmpurilor prin intermediul ecranului „Gestionarea câmpurilorâ€. Cu toate acestea, orice poziÈ›ie derulată pe I<verticală> nu va fi afectată. ConsultaÈ›i subiectul 5c. Derularea unei ferestre pentru informaÈ›ii suplimentare privind derularea pe verticală È™i orizontală."
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:1283
+#, no-wrap
+msgid "4. INTERACTIVE Commands"
+msgstr "4. Comenzi INTERACTIVE"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1288
+msgid "Listed below is a brief index of commands within categories. Some commands appear more than once \\*(Em their meaning or scope may vary depending on the context in which they are issued."
+msgstr "Mai jos este listat un scurt index al comenzilor din categorii. Unele comenzi apar de mai multe ori \\*(Em semnificația sau domeniul lor pot varia în funcție de contextul în care sunt emise."
+
+#. type: Plain text
+#: ../man/top.1:1311
+#, no-wrap
+msgid ""
+" 4a.I< Global-Commands >\n"
+" E<lt>Ent/SpE<gt> ?, =, 0,\n"
+" A, B, d, E, e, g, H, h, I, k, q, r, s, W, X, Y, Z,\n"
+" ^G, ^K, ^N, ^P, ^U, ^L, ^R\n"
+" 4b.I< Summary-Area-Commands >\n"
+" C, l, t, m, 1, 2, 3, 4, 5, !\n"
+" 4c.I< Task-Area-Commands >\n"
+" Appearance: b, J, j, x, y, z\n"
+" Content: c, F, f, O, o, S, U, u, V, v, ^E\n"
+" Size: #, i, n\n"
+" Sorting: E<lt>, E<gt>, f, R\n"
+" 4d.I< Color-Mapping >\n"
+" E<lt>RetE<gt>, a, B, b, H, M, q, S, T, w, z, 0 - 7\n"
+" 5b.I< Commands-for-Windows >\n"
+" -, _, =, +, A, a, G, g, w\n"
+" 5c.I< Scrolling-a-Window >\n"
+" C, Up, Dn, Left, Right, PgUp, PgDn, Home, End\n"
+" 5d.I< Searching-in-a-Window >\n"
+" L, &\n"
+" 5e.I< Filtering-in-a-Window\n"
+" O, o, ^O, =, +>\n"
+msgstr ""
+" 4a.I< Comenzi GLOBALE >\n"
+" E<lt>Enter/SpațiuE<gt> ?, =, 0,\n"
+" A, B, d, E, e, g, H, h, I, k, q, r, s, W, X, Y, Z,\n"
+" ^G, ^K, ^N, ^P, ^U, ^L, ^R\n"
+" 4b.I< Comenzi din ZONA de REZUMAT >\n"
+" C, l, t, m, 1, 2, 3, 4, 5, !\n"
+" 4c.I< Comenzi din ZONA de SARCINI >\n"
+" Aspect: b, J, j, x, y, z\n"
+" Conținut: c, F, f, O, o, S, U, u, V, v, ^E\n"
+" Dimensiune: #, i, n\n"
+" Sortare: E<lt>, E<gt>, f, R\n"
+" 4d.I< Paleta de CULORI >\n"
+" E<lt>RetE<gt>, a, B, b, H, M, q, S, T, w, z, 0 - 7\n"
+" 5b.I< Comenzi pentru ferestre >\n"
+" -, _, =, +, A, a, G, g, w\n"
+" 5c.I< Derularea unei ferestre >\n"
+" C, Sus, Jos, Stânga, Dreapta, PgUp, PgDn, Home, End\n"
+" 5d.I< Căutarea într-o fereastră >\n"
+" L, &\n"
+" 5e.I< Filtrarea într-o fereastră\n"
+" O, o, ^O, =, +>\n"
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1314
+#, no-wrap
+msgid "4a. GLOBAL Commands"
+msgstr "4a. Comenzi GLOBALE"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1319
+msgid "The global \\*(CIs areB< always> available in both \\*(FM and \\*(AM. However, some of these \\*(CIs areB< not available> when running in Secure mode."
+msgstr "Comenzile interactive globale sunt B<întotdeauna> disponibile atât în modul ecran complet, cât È™i în modul de afiÈ™are alternativă. Cu toate acestea, unele dintre aceste comenzi interactive B<nu sunt disponibile> atunci când se execută în modul „Securizatâ€."
+
+#. type: Plain text
+#: ../man/top.1:1323
+msgid "If you wish to know in advance whether or not your \\*(We has been secured, simply ask for help and view the system summary on the second line."
+msgstr "Dacă doriți să știți dinainte dacă \\*(We) a fost sau nu securizat, nu aveți decât să cereți Ajutor și să vedeți rezumatul sistemului pe a doua linie."
+
+#. type: TP
+#: ../man/top.1:1324
+#, no-wrap
+msgid "\\ \\ E<lt>B<Enter>E<gt> or E<lt>B<Space>E<gt>\\ \\ :I<Refresh-Display >"
+msgstr "\\ \\ E<lt>B<Enter>E<gt> sau E<lt>B<Bara de spațiu>E<gt>\\ \\ :I<Reîmprospătare afișare>"
+
+#. type: Plain text
+#: ../man/top.1:1329
+msgid "These commands awaken \\*(We and following receipt of any input the entire display will be repainted. They also force an update of any hotplugged \\*(Pu or \\*(MP changes."
+msgstr "Aceste comenzi reactivează \\*(We și, după primirea oricărei intrări, întregul afișaj va fi redesenat. De asemenea, ele forțează o actualizare a oricăror modificări aduse de comenzile interactive \\*(Pu-ului sau memoriei fizice."
+
+#. type: Plain text
+#: ../man/top.1:1332
+msgid "Use either of these keys if you have a large delay interval and wish to see current status,"
+msgstr "Utilizați oricare dintre aceste taste dacă aveți un interval de întârziere mare și doriți să vedeți starea curentă,"
+
+#. type: TP
+#: ../man/top.1:1333
+#, no-wrap
+msgid "\\ \\ \\ B<?> | B<h>\\ \\ :I<Help >"
+msgstr "\\ \\ \\ B<?> | B<h>\\ \\ :I<Ajutor>"
+
+#. type: Plain text
+#: ../man/top.1:1338
+msgid "There are two help levels available. The first will provide a reminder of all the basic \\*(CIs. If \\*(We isI< secured>, that screen will be abbreviated."
+msgstr "Sunt disponibile două niveluri de ajutor. Primul vă va reaminti toate comenzile interactive de bază. Dacă \\*(We este I<securizat>, acest ecran va fi abreviat."
+
+#. type: Plain text
+#: ../man/top.1:1341
+msgid "Typing `h' or `?' on that help screen will take you to help for those \\*(CIs applicable to \\*(AM."
+msgstr "Tastând „h†sau „?†pe acest ecran de ajutor, veți accesa ajutorul pentru acele comenzi interactive aplicabile în modul de afișare alternativă."
+
+#. type: TP
+#: ../man/top.1:1342
+#, no-wrap
+msgid "\\ \\ \\ B<=>\\ \\ :I<Exit-Display-Limits >"
+msgstr "\\ \\ \\ B<=>\\ \\ :I<Elimină limitele de afișare>"
+
+#. type: Plain text
+#: ../man/top.1:1349
+msgid "Removes restrictions on what is shown. This command will reverse any `i' (idle tasks), `n' (max tasks), `v' (hide children) and `F' focus commands that might be active. It also provides for an exit from PID monitoring, User filtering, Other filtering, Locate processing and Combine Cpus mode."
+msgstr "Elimină restricțiile privind ceea ce se afișează. Această comandă va anula orice comenzi „i†(sarcini inactive), „n†(sarcini maxime), „v†(ascunde copii) și „F†(focalizare). care ar putea fi active. De asemenea, permite ieșirea de la monitorizarea PID, filtrarea utilizatorului, alte filtre, procesarea Căutării și modul de Combinare a CPU-urilor."
+
+#. type: Plain text
+#: ../man/top.1:1352
+msgid "Additionally, if the window has been scrolled it will be reset with this command."
+msgstr "În plus, dacă fereastra a fost derulată, aceasta va fi restabilită cu această comandă."
+
+#. type: TP
+#: ../man/top.1:1353
+#, no-wrap
+msgid "\\ \\ \\ B<0>\\ \\ :I<Zero-Suppress> toggle "
+msgstr "\\ \\ \\ B<0>\\ \\ :comutare I<afișare/suprimare Zerouri> "
+
+#. type: Plain text
+#: ../man/top.1:1358
+msgid "This command determines whether zeros are shown or suppressed for many of the fields in a \\*(TW. Fields like UID, GID, NI, PR or P are not affected by this toggle."
+msgstr "Această comandă determină dacă zerourile sunt afișate sau suprimate pentru multe dintre câmpurile din fereastra unei sarcini. Câmpuri precum UID, GID, NI, PR sau P nu sunt afectate de această comutare."
+
+#. type: TP
+#: ../man/top.1:1359
+#, no-wrap
+msgid "\\ \\ \\ B<A>\\ \\ :I<Alternate-Display-Mode> toggle "
+msgstr "\\ \\ \\ B<A>\\ \\ :comutare I<Mod de afișare alternativă> "
+
+#. type: Plain text
+#: ../man/top.1:1364
+msgid "This command will switch between \\*(FM and \\*(AM. \\*(XT 5. ALTERNATE-DISPLAY Provisions and the `g' \\*(CI for insight into \\*(CWs and \\*(FGs."
+msgstr "Această comandă va comuta între modul de afiÈ™are pe ecran complet È™i modul de afiÈ™are alternativă. A se vedea subiectul 5. DispoziÈ›ii privind AFIȘAREA ALTERNATIVÄ‚ È™i comanda interactivă „g†pentru a obÈ›ine informaÈ›ii despre ferestrele È™i grupurile de câmpuri „actualeâ€."
+
+#. type: TP
+#: ../man/top.1:1365
+#, no-wrap
+msgid "\\ \\ \\ B<B>\\ \\ :I<Bold-Disable/Enable> toggle "
+msgstr "\\ \\ \\ B<B>\\ \\ :comutare I<Activează/dezactivează afișarea în Aldin> "
+
+#. type: Plain text
+#: ../man/top.1:1371
+msgid "This command will influence use of the bold terminfo capability and altersB< both> the \\*(SA and \\*(TA for the \\*(CW. While it is intended primarily for use with dumb terminals, it can be applied anytime."
+msgstr "Această comandă va influenÈ›a utilizarea capacității de afiÈ™are în «Aldin» a „termifo†(terminfo bold) È™i modifică atât zona de rezumat, cât È™i zona de sarcini pentru fereastra „curentăâ€. ÃŽn timp ce este destinată în primul rând utilizării cu terminale simple, neevoluate, ea poate fi aplicată oricând."
+
+#. type: Plain text
+#: ../man/top.1:1376
+msgid "\\*(NT When this toggle is \\*O and \\*(We is operating in monochrome mode, theB< entire display> will appear as normal text. Thus, unless the `x' and/or `y' toggles are using reverse for emphasis, there will be no visual confirmation that they are even on."
+msgstr "Notă: Când această comutare este I<Activată> (On) È™i \\*(We funcÈ›ionează în modul monocrom, B<întregul afiÈ™aj> va apărea ca text normal. Astfel, cu excepÈ›ia cazului în care comenzile „x'â€È™i/sau „y'â€folosesc inversarea pentru accentuare, nu va exista nicio confirmare vizuală că acestea sunt activate."
+
+#. type: TP
+#: ../man/top.1:1377
+#, no-wrap
+msgid "*\\ \\ B<d> | B<s>\\ \\ :I<Change-Delay-Time-interval >"
+msgstr "*\\ \\ B<d> | B<s>\\ \\ :I<Modifică intervalul de întârziere>"
+
+#. type: Plain text
+#: ../man/top.1:1381
+msgid "You will be prompted to enter the delay time, in seconds, between display updates."
+msgstr "Vi se va solicita să introduceți timpul de întârziere, în secunde, între actualizările afișării"
+
+#. type: Plain text
+#: ../man/top.1:1387
+msgid "Fractional seconds are honored, but a negative number is not allowed. Entering 0 causes (nearly) continuous updates, with an unsatisfactory display as the system and tty driver try to keep up with \\*(We's demands. The delay value is inversely proportional to system loading, so set it with care."
+msgstr "Fracțiunile de secundă sunt recunoscute, dar nu se acceptă un număr negativ. Introducerea valorii 0 determină actualizări (aproape) continue, cu un rezultat nesatisfăcător. deoarece sistemul și controlorul terminalului (tty) încearcă să țină pasul cu cerințele emise de \\*(We. Valoarea întârzierii este invers proporțională cu încărcarea sistemului, așa că stabiliți-o cu atenție."
+
+#. type: Plain text
+#: ../man/top.1:1390
+msgid "If at any time you wish to know the current delay time, simply ask for help and view the system summary on the second line."
+msgstr "Dacă, în orice moment, doriți să știți care este timpul de întârziere actual, cereți pur și simplu să primiți Ajutor și vizualizați rezumatul sistemului pe a doua linie."
+
+#. type: TP
+#: ../man/top.1:1391
+#, no-wrap
+msgid "\\ \\ \\ B<E>\\ \\ :I<Enforce-Summary-Memory-Scale> in Summary Area"
+msgstr "\\ \\ \\ B<E>\\ \\ :Forțează I<scalarea rezumatului de memorie> în Zona de Rezumat"
+
+#. type: Plain text
+#: ../man/top.1:1396
+msgid "With this command you can cycle through the available \\*(SA memory scaling which ranges from KiB (kibibytes or 1,024 bytes) through EiB (exbibytes or 1,152,921,504,606,846,976 bytes)."
+msgstr "Cu această comandă puteți parcurge scara de memorie disponibilă în Zona de Rezumat, care variază de la Kio (kibiocteți sau 1.024 de octeți) la Eio (exbibiocteți sau 1.152.921.504.606.846.976 de octeți)."
+
+#. type: Plain text
+#: ../man/top.1:1400
+msgid "If you see a `+' between a displayed number and the following label, it means that \\*(We was forced to truncate some portion of that number. By raising the scaling factor, such truncation can be avoided."
+msgstr "Dacă vedeți un „+†între un număr afișat și următoarea etichetă, înseamnă că \\*(We a fost forțat să trunchieze o parte din acel număr. Prin creșterea factorului de scalare, o astfel de trunchiere poate fi evitată."
+
+#. type: TP
+#: ../man/top.1:1401
+#, no-wrap
+msgid "\\ \\ \\ B<e>\\ \\ :I<Enforce-Task-Memory-Scale> in Task Area"
+msgstr "\\ \\ \\ B<E>\\ \\ :Forțează I<scalarea memoriei sarcinilor> în Zona de Sarcini"
+
+#. type: Plain text
+#: ../man/top.1:1406
+msgid "With this command you can cycle through the available \\*(TA memory scaling which ranges from KiB (kibibytes or 1,024 bytes) through PiB (pebibytes or 1,125,899,906,842,624 bytes)."
+msgstr "Cu această comandă puteți parcurge scara de memorie disponibilă pentru Zona de Sarcini, care variază de la Kio (kibiocteți sau 1.024 de octeți) la Pio (pebiocteți sau 1.125.899.906.842.624 de octeți)."
+
+#. type: Plain text
+#: ../man/top.1:1413
+msgid "While \\*(We will try to honor the selected target range, additional scaling might still be necessary in order to accommodate current values. If you wish to see a more homogeneous result in the memory columns, raising the scaling range will usually accomplish that goal. Raising it too high, however, is likely to produce an all zero result which cannot be suppressed with the `0' \\*(CI."
+msgstr "DeÈ™i \\*(We va încerca să respecte intervalul È›intă selectat, este posibil să fie necesară o scalare suplimentară pentru a se adapta la valorile actuale. ÃŽn cazul în care doriÈ›i să vedeÈ›i un rezultat mai omogen în coloanele de memorie, mărirea plajei de scalare va îndeplini de obicei acest obiectiv. CreÈ™terea prea mare a acesteia, cu toate acestea, este posibil să producă un rezultat complet zero, care nu poate fi suprimat cu comanda interactivă „0â€."
+
+#. type: TP
+#: ../man/top.1:1414
+#, no-wrap
+msgid "\\ \\ \\ B<g>\\ \\ :I<Choose-Another-Window/Field-Group >"
+msgstr "\\ \\ \\ B<g>\\ \\ :I<Alege o altă fereastră/grup de câmpuri>"
+
+#. type: Plain text
+#: ../man/top.1:1420
+msgid "You will be prompted to enter a number between 1 and 4 designating the \\*(FG which should be made the \\*(CW. You will soon grow comfortable with these 4 windows, especially after experimenting with \\*(AM."
+msgstr "Vi se va cere să introduceÈ›i un număr între 1 È™i 4 pentru a desemna grupul de câmpuri care trebuie să devină fereastra „curentăâ€. ÃŽn scurt timp, vă veÈ›i simÈ›i confortabil cu aceste 4 ferestre, mai ales după ce veÈ›i experimenta cu modul de afiÈ™are alternativă."
+
+#. type: TP
+#: ../man/top.1:1421
+#, no-wrap
+msgid "\\ \\ \\ B<H>\\ \\ :I<Threads-mode> toggle "
+msgstr "\\ \\ \\ B<H>\\ \\ :comutare I<Mod fire de execuție> "
+
+#. type: Plain text
+#: ../man/top.1:1426
+msgid "When this toggle is \\*O, individual threads will be displayed for all processes in all visible \\*(TWs. Otherwise, \\*(We displays a summation of all threads in each process."
+msgstr "Atunci când acest comutator este \\*O (On), vor fi afișate firele individuale pentru toate procesele în toate ferestrele de sarcini vizibile. În caz contrar, \\*(We afișează o însumare a tuturor firelor din fiecare proces."
+
+#. type: TP
+#: ../man/top.1:1427
+#, no-wrap
+msgid "\\ \\ \\ B<I>\\ \\ :I<Irix/Solaris-Mode> toggle "
+msgstr "\\ \\ \\ B<I>\\ \\ :comutare I<Mod Irix/Solaris> "
+
+#. type: Plain text
+#: ../man/top.1:1432
+msgid "When operating in Solaris mode (`I' toggled \\*F), a task's \\*(Pu usage will be divided by the total number of \\*(PUs. After issuing this command, you'll be told the new state of this toggle."
+msgstr "Atunci când funcționează în modul Solaris („I†I<Dezactivată> (Off)), utilizarea cpu a unei sarcini va fi împărțită la numărul total de unități centrale de procesare. După lansarea acestei comenzi, vi se va comunica noua stare a acestei comutări."
+
+#. type: TP
+#: ../man/top.1:1433
+#, no-wrap
+msgid "*\\ \\ B<k>\\ \\ :I<Kill-a-task >"
+msgstr "*\\ \\ B<k>\\ \\ :I<Omoară o sarcină>"
+
+#. type: Plain text
+#: ../man/top.1:1436
+msgid "You will be prompted for a PID and then the signal to send."
+msgstr "Vi se va solicita un PID și apoi semnalul de trimis."
+
+#. type: Plain text
+#: ../man/top.1:1440 ../man/top.1:1462
+msgid "Entering no PID or a negative number will be interpreted as the default shown in the prompt (the first task displayed). A PID value of zero means the \\*(We program itself."
+msgstr "Dacă nu se introduce niciun PID sau dacă se introduce un număr negativ, acesta va fi interpretat ca fiind valoarea implicită afișată în prompt (prima sarcină afișată). O valoare PID de zero înseamnă programul propriu-zis \\*(We."
+
+#. type: Plain text
+#: ../man/top.1:1443
+msgid "The default signal, as reflected in the prompt, is SIGTERM. However, you can send any signal, via number or name."
+msgstr "Semnalul implicit, așa cum se reflectă în prompt, este SIGTERM. Cu toate acestea, puteți trimite orice semnal, prin introducerea numărului sau numelui acestuia."
+
+#. type: Plain text
+#: ../man/top.1:1446
+msgid "If you wish to abort the kill process, do one of the following depending on your progress:"
+msgstr "Dacă doriți să întrerupeți procesul de omorâre, efectuați una dintre următoarele acțiuni, în funcție de progresul înregistrat:"
+
+#. type: Plain text
+#: ../man/top.1:1450
+#, no-wrap
+msgid ""
+" 1) at the pid prompt, type an invalid number\n"
+" 2) at the signal prompt, type 0 (or any invalid signal)\n"
+" 3) at any prompt, type E<lt>EscE<gt>\n"
+msgstr ""
+" 1) la promptul pid, introduceți un număr invalid\n"
+" 2) la promptul de semnal, introduceți 0 (sau orice semnal nevalid)\n"
+" 3) la orice prompt, tastați E<lt>EscE<gt>\n"
+
+#. type: TP
+#: ../man/top.1:1452
+#, no-wrap
+msgid "\\ \\ \\ B<q>\\ \\ :I<Quit >"
+msgstr "\\ \\ \\ B<q>\\ \\ :I<Ieșire>"
+
+#. type: TP
+#: ../man/top.1:1455
+#, no-wrap
+msgid "*\\ \\ B<r>\\ \\ :I<Renice-a-Task >"
+msgstr "*\\ \\ B<r>\\ \\ :I<Modifică valoarea de curtoazie „nice†a unei sarcini>"
+
+#. type: Plain text
+#: ../man/top.1:1458
+msgid "You will be prompted for a PID and then the value to nice it to."
+msgstr "Vi se va solicita un PID și apoi o valoare de curtoazie „nice†pentru acesta."
+
+#. type: Plain text
+#: ../man/top.1:1468
+msgid "A positive nice value will cause a process to lose priority. Conversely, a negative nice value will cause a process to be viewed more favorably by the kernel. As a general rule, ordinary users can only increase the nice value and are prevented from lowering it."
+msgstr "O valoare pozitivă de curtoazie „nice†va face ca un proces să piardă prioritatea de execuÈ›ie. ÃŽn schimb, o valoare negativă de curtoazie „nice†va face ca un proces să fie privit mai favorabil de către nucleu. Ca regulă generală, utilizatorii obiÈ™nuiÈ›i nu pot decât să mărească valoarea de curtoazie „niceâ€, È™i nu au voie să o reducă."
+
+#. type: Plain text
+#: ../man/top.1:1471
+msgid "If you wish to abort the renice process, do one of the following depending on your progress:"
+msgstr "Dacă doriÈ›i să întrerupeÈ›i procesul de schimbare a valorii de curtoazie „niceâ€, efectuaÈ›i una dintre următoarele acÈ›iuni, în funcÈ›ie de progresul înregistrat:"
+
+#. type: Plain text
+#: ../man/top.1:1475
+#, no-wrap
+msgid ""
+" 1) at the pid prompt, type an invalid number\n"
+" 2) at the nice prompt, type E<lt>EnterE<gt> with no input\n"
+" 3) at any prompt, type E<lt>EscE<gt>\n"
+msgstr ""
+" 1) la promptul pid, introduceți un număr nevalid\n"
+" 2) la promptul de curtoazie „niceâ€, tastaÈ›i E<lt>EnterE<gt> fără nici o intrare\n"
+" 3) la orice prompt, tastați E<lt>EscE<gt>\n"
+
+#. type: TP
+#: ../man/top.1:1477
+#, no-wrap
+msgid "\\ \\ \\ B<W>\\ \\ :I<Write-the-Configuration-File >"
+msgstr "\\ \\ \\ B<W>\\ \\ :I<Scrie fișierul de configurare>"
+
+#. type: Plain text
+#: ../man/top.1:1483
+msgid "This will save all of your options and toggles plus the current display mode and delay time. By issuing this command just before quitting \\*(We, you will be able restart later in exactly that same state."
+msgstr "Aceasta va salva toate opțiunile și comutatoarele, precum și modul de afișare și timpul de întârziere curente. Prin emiterea acestei comenzi chiar înainte de a ieși din \\*(We, veți putea reporni mai târziu exact în aceeași stare."
+
+#. type: TP
+#: ../man/top.1:1484
+#, no-wrap
+msgid "\\ \\ \\ B<X>\\ \\ :I<Extra-Fixed-Width >"
+msgstr "\\ \\ \\ B<X>\\ \\ :I<Lățime extra-fixată>"
+
+#. type: Plain text
+#: ../man/top.1:1489
+msgid "Some fields are fixed width and not scalable. As such, they are subject to truncation which would be indicated by a `+' in the last position."
+msgstr "Unele câmpuri au lățime fixă și nu sunt scalabile. Ca atare, acestea pot fi trunchiate, ceea ce va fi indicat printr-un „+†în ultima poziție."
+
+#. type: Plain text
+#: ../man/top.1:1491
+msgid "This \\*(CI can be used to alter the widths of the following fields:"
+msgstr "Această comandă interactivă poate fi utilizată pentru a modifica lățimile următoarelor câmpuri:"
+
+#. type: Plain text
+#: ../man/top.1:1503
+#, no-wrap
+msgid ""
+" I< field default field default field default >\n"
+" GID 5 GROUP 8 WCHAN 10\n"
+" LOGID 5 LXC 8 nsCGROUP 10\n"
+" RUID 5 RUSER 8 nsIPC 10\n"
+" SUID 5 SUSER 8 nsMNT 10\n"
+" UID 5 TTY 8 nsNET 10\n"
+" USER 8 nsPID 10\n"
+" nsTIME 10\n"
+" nsUSER 10\n"
+" nsUTS 10\n"
+msgstr ""
+" I< câmpul implicit câmpul implicit câmpul implicit >\n"
+" GID 5 GROUP 8 WCHAN 10\n"
+" LOGID 5 LXC 8 nsCGROUP 10\n"
+" RUID 5 RUSER 8 nsIPC 10\n"
+" SUID 5 SUSER 8 nsMNT 10\n"
+" UID 5 TTY 8 nsNET 10\n"
+" USER 8 nsPID 10\n"
+" nsTIME 10\n"
+" nsUSER 10\n"
+" nsUTS 10\n"
+
+#. type: Plain text
+#: ../man/top.1:1508
+msgid "You will be prompted for the amount to be added to the default widths shown above. Entering zero forces a return to those defaults."
+msgstr "Vi se va solicita valoarea care urmează să fie adăugată la lățimile implicite prezentate mai sus. Dacă introduceți zero, se revine la valorile implicite."
+
+#. type: Plain text
+#: ../man/top.1:1511
+msgid "If you enter a negative number, \\*(We will automatically increase the column size as needed until there is no more truncated data."
+msgstr "Dacă introduceți un număr negativ, \\*(We va crește automat dimensiunea coloanei, după cum este necesar, până când nu mai există date trunchiate."
+
+#. type: Plain text
+#: ../man/top.1:1515
+msgid "\\*(NT Whether explicitly or automatically increased, the widths for these fields are never decreased by \\*(We. To narrow them you must specify a smaller number or restore the defaults."
+msgstr "Notă: Fie că sunt mărite în mod explicit sau automat, lățimile acestor câmpuri nu sunt niciodată reduse de \\*(We. Pentru a le restrânge, trebuie să specificați un număr mai mic sau să restabiliți valorile implicite."
+
+#. type: TP
+#: ../man/top.1:1516
+#, no-wrap
+msgid "\\ \\ \\ B<Y>\\ \\ :I<Inspect-Other-Output >"
+msgstr "\\ \\ \\ B<Y>\\ \\ :I<Inspectează o altă ieșire>"
+
+#. type: Plain text
+#: ../man/top.1:1522
+msgid "After issuing the `Y' \\*(CI, you will be prompted for a target PID. Typing a value or accepting the default results in a separate screen. That screen can be used to view a variety of files or piped command output while the normal \\*(We iterative display is paused."
+msgstr "După lansarea comenzii interactive `Y', vi se va cere un PID țintă. Introducerea unei valori sau acceptarea valorii implicite are ca rezultat obținerea unui ecran separat. Acest ecran poate fi utilizat pentru a vizualiza o varietate de fișiere sau de ieșire a comenzilor canalizate în timp ce afișajul iterativ normal al \\*(We este în pauză."
+
+#. type: Plain text
+#: ../man/top.1:1526
+msgid "\\*(NT This \\*(CI is only fully realized when supporting entries have been manually added to the end of the \\*(We \\*(CF. For details on creating those entries, \\*(Xt 6b. ADDING INSPECT Entries."
+msgstr "Notă: Această comandă interactivă este realizată pe deplin numai atunci când intrările de sprijin au fost adăugate manual la sfârșitul fișierului de configurare al \\*(We. Pentru detalii privind crearea acestor intrări, consultați subiectul 6b. Adăugarea de intrări de INSPECTARE."
+
+#. type: Plain text
+#: ../man/top.1:1533
+msgid "Most of the keys used to navigate the Inspect feature are reflected in its header prologue. There are, however, additional keys available once you have selected a particular file or command. They are familiar to anyone who has used the pager `less' and are summarized here for future reference."
+msgstr "Majoritatea tastelor utilizate pentru a naviga cu funcția Inspectare sunt reflectate în prologul antetului acesteia. Cu toate acestea, există taste suplimentare disponibile după ce ați selectat un anumit fișier sau o anumită comandă. Acestea sunt familiare oricui a folosit pagerul «less» o dată și sunt rezumate aici pentru referințe viitoare:"
+
+#. type: Plain text
+#: ../man/top.1:1543
+#, no-wrap
+msgid ""
+" I< key function >\n"
+" = alternate status-line, file or pipeline\n"
+" / find, equivalent to `L' locate\n"
+" n find next, equivalent to `&' locate next\n"
+" E<lt>SpaceE<gt> scroll down, equivalent to E<lt>PgDnE<gt>\n"
+" b scroll up, equivalent to E<lt>PgUpE<gt>\n"
+" g first line, equivalent to E<lt>HomeE<gt>\n"
+" G last line, equivalent to E<lt>EndE<gt>\n"
+msgstr ""
+" I< tasta funcția >\n"
+" = linie de stare alternativă, fișier sau conductă\n"
+" / găsește, echivalent cu „L†pentru localizează\n"
+" n găsește următorul, echivalent cu „&†pentru localizează următorul\n"
+" E<lt>SpațiuE<gt> derulează în jos, echivalent cu E<lt>PgDnE<gt>\n"
+" b derulează în sus, echivalent cu E<lt>PgUpE<gt>\n"
+" g prima linie, echivalent cu E<lt>HomeE<gt>\n"
+" G ultima linie, echivalent cu E<lt>EndE<gt>\n"
+
+#. type: TP
+#: ../man/top.1:1545
+#, no-wrap
+msgid "\\ \\ \\ B<Z>\\ \\ :I<Change-Color-Mapping >"
+msgstr "\\ \\ \\ B<Z>\\ \\ :I<Schimbă paleta de culori>"
+
+#. type: Plain text
+#: ../man/top.1:1550
+msgid "This key will take you to a separate screen where you can change the colors for the \\*(CW, or for all windows. For details regarding this \\*(CI \\*(Xt 4d. COLOR Mapping."
+msgstr "Această tastă vă va duce la un ecran separat unde puteți schimba culorile pentru fereastra „curentă†sau pentru toate ferestrele. Pentru detalii privind această comandă interactivă, consultați subiectul 4d. Paleta de CULORI."
+
+#. type: Plain text
+#: ../man/top.1:1553
+msgid "\\ \\ B<^G>\\ \\ :I<Display-Control-Groups > (Ctrl key + `g')"
+msgstr "\\ \\ B<^G>\\ \\ :I<AfiÈ™ează grupurile de control > (tasta Ctrl + „gâ€)"
+
+#. type: Plain text
+#: ../man/top.1:1555
+msgid "\\ \\ B<^K>\\ \\ :I<Display-Cmdline > (Ctrl key + `k')"
+msgstr "\\ \\ B<^K>\\ \\ :I<AfiÈ™ează Linia de comandă > (tasta Ctrl + „kâ€)"
+
+#. type: Plain text
+#: ../man/top.1:1557
+msgid "\\ \\ B<^N>\\ \\ :I<Display-Environment > (Ctrl key + `n')"
+msgstr "\\ \\ B<^N>\\ \\ :I<AfiÈ™ează mediul > (tasta Ctrl + „nâ€)"
+
+#. type: Plain text
+#: ../man/top.1:1559
+msgid "\\ \\ B<^P>\\ \\ :I<Display-Namesspaces > (Ctrl key + `p')"
+msgstr "\\ \\ B<^P>\\ \\ :I<AfiÈ™ează spaÈ›iile de nume > (tasta Ctrl + „pâ€)"
+
+#. type: Plain text
+#: ../man/top.1:1561
+msgid "\\ \\ B<^U>\\ \\ :I<Display-Supplementary-Groups > (Ctrl key + `u')"
+msgstr "\\ \\ B<^U>\\ \\ :I<AfiÈ™ează grupurile suplimentare > (tasta Ctrl + „uâ€)"
+
+#. type: Plain text
+#: ../man/top.1:1567
+msgid "Applied to the first process displayed, these commands will show that task's full (potentially wrapped) information. Such data will be displayed in a separate window at the bottom of the screen while normal \\*(We monitoring continues."
+msgstr "Aplicate la primul proces afișat, aceste comenzi vor afișa toate informațiile complete (potențial înfășurate) ale sarcinii respective. Aceste date vor fi afișate într-o fereastră separată în partea de jos a ecranului, în timp ce monitorizarea normală \\*(We continuă."
+
+#. type: Plain text
+#: ../man/top.1:1572
+msgid "Keying theI< same> `Ctrl' command a second time removes that separate window as does the `=' command. Keying a different `Ctrl' combination, while one is already active, immediately transitions to the new information."
+msgstr "Apăsarea I<aceleiaÈ™i> comenzi „Ctrl†a doua oară elimină fereastra separată, la fel ca È™i comanda „=â€. Apăsarea unei alte combinaÈ›ii „Ctrlâ€, în timp ce una este deja activă, face imediat tranziÈ›ia la noile informaÈ›ii."
+
+#. type: Plain text
+#: ../man/top.1:1577
+msgid "Notable among these provisions is the Ctrl+N (environment) command. Its output can be extensive and not easily read when line wrapped. A more readable version can be achieved with an `Inspect' entry in the rcfile like the following."
+msgstr "Printre aceste dispoziții se numără și comanda Ctrl+N (mediu). Ieșirea acesteia poate fi extinsă și nu este ușor de citit atunci când este desfășurată pe mai multe linii. O versiune mai ușor de citit poate fi obținută cu o intrare de „Inspectare†în fișierul rc (de configurare), cum ar fi următoarea:"
+
+#. type: Plain text
+#: ../man/top.1:1580
+#, no-wrap
+msgid " pipe ^I Environment ^I cat /proc/%d/environ | tr '\\e0' '\\en'\n"
+msgstr " pipe ^I Environment ^I cat /proc/%d/environ | tr '\\e0' '\\en'\n"
+
+#. type: Plain text
+#: ../man/top.1:1584
+msgid "\\*(XC `Y' \\*(CI above and topic 6b. ADDING INSPECT Entries for additional information."
+msgstr "A se vedea comanda interactivă `Y' de mai sus și subiectul 6b. Adăugarea de intrări de INSPECTARE pentru informații suplimentare."
+
+#. type: Plain text
+#: ../man/top.1:1588
+msgid "As an alternative to `Inspect', and available to all of these `Ctrl' commands, the tab key can be used to highlight individual elements in the bottom window."
+msgstr "Ca o alternativă la „Inspectareâ€, È™i disponibilă pentru toate aceste comenzi „Ctrlâ€, tasta B<Tab> poate fi utilizată pentru a evidenÈ›ia elemente individuale din fereastra de jos."
+
+#. type: TP
+#: ../man/top.1:1590
+#, no-wrap
+msgid "\\ \\ B<^L>\\ \\ :I<Logged-Messages > (Ctrl key + `l')"
+msgstr "\\ \\ B<^L>\\ \\ :I<AfiÈ™ează mesajele jurnalizate > (tasta Ctrl + „lâ€)"
+
+#. type: Plain text
+#: ../man/top.1:1596
+msgid "The 10 most recent messages are displayed in a separate window at the bottom of the screen while normal \\*(We monitoring continues. Keying `^L' a second time removes that window as does the `=' command. Use the tab key to highlight individual messages."
+msgstr "Cele mai recente 10 mesaje sunt afiÈ™ate într-o fereastră separată în partea de jos a ecranului, în timp ce monitorizarea normală a \\*(We continuă. Apăsarea combinaÈ›iei de taste „^L†a a doua oară elimină această fereastră, la fel ca È™i comanda „=â€. FolosiÈ›i tasta B<Tab> pentru a evidenÈ›ia mesajele individuale."
+
+#. type: TP
+#: ../man/top.1:1597
+#, no-wrap
+msgid "*\\ B<^R>\\ \\ :I<Renice-an-Autogroup > (Ctrl key + `r')"
+msgstr "*\\ B<^R>\\ \\ :I<Modifică valoarea de curtoazie „nice†a unui auto-grup > (tasta Ctrl + „râ€)"
+
+#. type: Plain text
+#: ../man/top.1:1601
+msgid "You will be prompted for a PID and then the value for its autogroup AGNI."
+msgstr "Vi se va solicita un PID și apoi valoarea de curtoazie „nice†pentru acest auto-grup AGNI."
+
+#. type: Plain text
+#: ../man/top.1:1604
+msgid "Entering no PID will be interpreted as the default shown in the prompt (the first task displayed)."
+msgstr "Dacă nu se introduce niciun PID, se va interpreta ca fiind valoarea implicită afișată în prompt (prima sarcină afișată)."
+
+#. type: Plain text
+#: ../man/top.1:1610
+msgid "A positive AGNI value will cause processes in that autogroup to lose priority. Conversely, a negative value causes them to be viewed more favorably by the kernel. Ordinary users are not allowed to set negative AGNI values."
+msgstr "O valoare AGNI pozitivă va face ca procesele din acel auto-grup să piardă prioritate. Dimpotrivă, o valoare negativă face ca acestea să fie privite mai favorabil de către nucleu. Utilizatorii obișnuiți nu au voie să stabilească valori AGNI negative."
+
+#. type: Plain text
+#: ../man/top.1:1612
+msgid "If you wish to abort the renice process type E<lt>EscE<gt>."
+msgstr "Dacă doriÈ›i să întrerupeÈ›i procesul de modificare a valoarii de curtoazie „niceâ€, tastaÈ›i E<lt>EscE<gt>."
+
+#. type: IP
+#: ../man/top.1:1613 ../man/top.1:2134
+#, no-wrap
+msgid "*"
+msgstr "*"
+
+#. type: Plain text
+#: ../man/top.1:1616
+msgid "The commands shown with an \\*(AK are not available in Secure mode, nor will they be shown on the level-1 help screen."
+msgstr "Comenzile marcate cu un asterisc (`*') nu sunt disponibile în modul Securizat și nici nu vor fi afișate pe primul nivel al ecranului de ajutor."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1618
+#, no-wrap
+msgid "4b. SUMMARY AREA Commands"
+msgstr "4b. Comenzi din ZONA de REZUMAT"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1623
+msgid "The \\*(SA \\*(CIs areB< always available> in both \\*(FM and \\*(AM. They affect the beginning lines of your display and will determine the position of messages and prompts."
+msgstr "Comenzile interactive din zona de rezumat B<sunt întotdeauna disponibile> atât în modul ecran complet, cât și în modul de afișare alternativă. Acestea afectează liniile de început ale fișierului afișajului și vor determina poziția mesajelor și a solicitărilor."
+
+#. type: Plain text
+#: ../man/top.1:1627
+msgid "These commands always impact just the \\*(CG. \\*(XT 5. ALTERNATE-DISPLAY Provisions and the `g' \\*(CI for insight into \\*(CWs and \\*(FGs."
+msgstr "Aceste comenzi au întotdeauna un impact doar asupra ferestrei/grupului de câmpuri „curentâ€. A se vedea subiectul 5. DispoziÈ›ii privind AFIȘAREA ALTERNATIVÄ‚ È™i comanda interactivă „g†pentru o perspectivă asupra ferestrelor È™i grupurilor de câmpuri „curenteâ€."
+
+#. type: TP
+#: ../man/top.1:1628
+#, no-wrap
+msgid "\\ \\ \\ B<C>\\ \\ :I<Show-scroll-coordinates> toggle "
+msgstr "\\ \\ \\ B<C>\\ \\ :comutare I<Afișează coordonatele de derulare> "
+
+#. type: Plain text
+#: ../man/top.1:1633
+msgid "Toggle an informational message which is displayed whenever the message line is not otherwise being used. For additional information \\*(Xt 5c. SCROLLING a Window."
+msgstr "Activează un mesaj informativ care este afișat ori de câte ori linia de mesaje nu este utilizată în alt mod. Pentru informații suplimentare, consultați subiectul 5c. Derularea unei ferestre."
+
+#. type: TP
+#: ../man/top.1:1634
+#, no-wrap
+msgid "\\ \\ \\ B<l>\\ \\ :I<Load-Average/Uptime> toggle "
+msgstr "\\ \\ \\ B<l>\\ \\ :comutare I<Media de încărcare / Timp de funcționare> "
+
+#. type: Plain text
+#: ../man/top.1:1638
+msgid "This is also the line containing the program name (possibly an alias) when operating in \\*(FM or the \\*(CW name when operating in \\*(AM."
+msgstr "Aceasta este, de asemenea, linia care conține numele programului (eventual un alias) atunci când se operează în modul ecran complet sau numele ferestrei „curente†atunci când se operează în modul de afișare alternativă."
+
+#. type: TP
+#: ../man/top.1:1639
+#, no-wrap
+msgid "\\ \\ \\ B<t>\\ \\ :I<Task/Cpu-States> toggle "
+msgstr "\\ \\ \\ B<t>\\ \\ :comutare I<Sarcină / Stări CPU> "
+
+#. type: Plain text
+#: ../man/top.1:1644
+msgid "This command affects from 2 to many \\*(SA lines, depending on the state of the `1', `2' or `3' \\*(CTs and whether or not \\*(We is running under true SMP."
+msgstr "Această comandă afectează de la 2 la mai multe linii ale Zonei de Rezumat, în funcÈ›ie de starea comutatoarelor de comandă „1â€, „2†sau „3†și dacă \\*(We rulează sau nu în SMP real."
+
+#. type: Plain text
+#: ../man/top.1:1647
+msgid "This portion of the \\*(SA is also influenced by the `H' \\*(CI toggle, as reflected in the total label which shows either Tasks or Threads."
+msgstr "Această parte a zonei de rezumat este, de asemenea, influenÈ›ată de comanda de comutare interactivă „Hâ€, aÈ™a cum se reflectă în eticheta totală care arată fie Tasks (Sarcini) sau Threads (Fire de execuÈ›ie)."
+
+#. type: Plain text
+#: ../man/top.1:1649 ../man/top.1:1666
+msgid "This command serves as a 4-way toggle, cycling through these modes:"
+msgstr "Această comandă servește ca un comutator cu patru poziții, trecând prin aceste moduri:"
+
+#. type: Plain text
+#: ../man/top.1:1654
+#, no-wrap
+msgid ""
+" 1. detailed percentages by category\n"
+" 2. abbreviated user/system and total % + bar graph\n"
+" 3. abbreviated user/system and total % + block graph\n"
+" 4. turn off task and cpu states display\n"
+msgstr ""
+" 1. procentaje detaliate pe categorii\n"
+" 2. procentaj abreviat utilizator/sistem și total + grafic cu bare\n"
+" 3. procentaj abreviat utilizator/sistem și total + grafic cu blocuri\n"
+" 4. dezactivează afișarea sarcinilor și a stărilor CPU\n"
+
+#. type: Plain text
+#: ../man/top.1:1659
+msgid "When operating in either of the graphic modes, the display becomes much more meaningful when individual CPUs or NUMA nodes are also displayed. \\*(XC the `1', `2' and `3' commands below for additional information."
+msgstr "Când operează în oricare dintre modurile grafice, afiÈ™ajul devine mult mai semnificativ atunci când sunt afiÈ™ate È™i procesoarele individuale sau nodurile NUMA. ConsultaÈ›i comenzile „1â€, „2†și „3†de mai jos pentru informaÈ›ii suplimentare."
+
+#. type: TP
+#: ../man/top.1:1660
+#, no-wrap
+msgid "\\ \\ \\ B<m>\\ \\ :I<Memory/Swap-Usage> toggle "
+msgstr "\\ \\ \\ B<m>\\ \\ :comutare I<Utilizare Memorie/Swap> "
+
+#. type: Plain text
+#: ../man/top.1:1664
+msgid "This command affects the two \\*(SA lines dealing with physical and virtual memory."
+msgstr "Această comandă afectează cele două linii din Zona de Rezumat care se ocupă de memoria fizică și virtuală."
+
+#. type: Plain text
+#: ../man/top.1:1671
+#, no-wrap
+msgid ""
+" 1. detailed percentages by memory type\n"
+" 2. abbreviated % used/total available + bar graph\n"
+" 3. abbreviated % used/total available + block graph\n"
+" 4. turn off memory display\n"
+msgstr ""
+" 1. procentaje detaliate după tipul de memorie\n"
+" 2. procentaj utilizată/total disponibilă abreviat + grafic cu bare\n"
+" 3. procentaj utilizată/total disponibilă abreviat + grafic cu blocuri\n"
+" 4. dezactivează afișarea memoriei\n"
+
+#. type: TP
+#: ../man/top.1:1673
+#, no-wrap
+msgid "\\ \\ \\ B<1>\\ \\ :I<Single/Separate-Cpu-States> toggle "
+msgstr "\\ \\ \\ B<1>\\ \\ :comutare I<Stări CPU pe o linie unică / pe linii separate> "
+
+#. type: Plain text
+#: ../man/top.1:1678
+msgid "This command affects how the `t' command's Cpu States portion is shown. Although this toggle exists primarily to serve massively-parallel SMP machines, it is not restricted to solely SMP environments."
+msgstr "Această comandă afectează modul în care este afiÈ™ată porÈ›iunea Stări Cpu a comenzii „tâ€. DeÈ™i această comutare există în primul rând pentru a servi maÈ™inilor SMP masiv-paralele, nu este limitată doar la mediile SMP."
+
+#. type: Plain text
+#: ../man/top.1:1683
+msgid "When you see `%Cpu(s):' in the \\*(SA, the `1' toggle is \\*O and all \\*(Pu information is gathered in a single line. Otherwise, each \\*(Pu is displayed separately as: `%Cpu0, %Cpu1, ...' up to available screen height."
+msgstr "Când vedeți „%Cpu(s):†în zona de rezumat, comanda de comutare „1†este activată și toate informațiile despre CPU sunt adunate pe o singură linie. În caz contrar, fiecare CPU este afișat separat ca: „%Cpu0, %Cpu1, ...†până la înălțimea disponibilă a ecranului."
+
+#. type: TP
+#: ../man/top.1:1684
+#, no-wrap
+msgid "\\ \\ \\ B<2>\\ \\ :I<NUMA-Nodes/Cpu-Summary> toggle "
+msgstr "\\ \\ \\ B<2>\\ \\ :comutare I<Rezumat Noduri NUMA/CPU> "
+
+#. type: Plain text
+#: ../man/top.1:1689
+msgid "This command toggles between the `1' command cpu summary display (only) or a summary display plus the cpu usage statistics for each NUMA Node. It is only available if a system has the requisite NUMA support."
+msgstr "Această comandă comută între afișarea (doar) a rezumatului de CPU al comenzii „1†sau afișarea rezumatului și a statisticilor de utilizare a CPU pentru fiecare nod NUMA. Este disponibilă numai dacă un sistem are suportul NUMA necesar."
+
+#. type: TP
+#: ../man/top.1:1690
+#, no-wrap
+msgid "\\ \\ \\ B<3>\\ \\ :I<Expand-NUMA-Node >"
+msgstr "\\ \\ \\ B<3>\\ \\ :I<Extinde Nodul NUMA.>"
+
+#. type: Plain text
+#: ../man/top.1:1696
+msgid "You will be invited to enter a number representing a NUMA Node. Thereafter, a node summary plus the statistics for each cpu in that node will be shown until the `1', `2' or `4' \\*(CT is pressed. This \\*(CI is only available if a system has the requisite NUMA support."
+msgstr "VeÈ›i fi invitat să introduceÈ›i un număr care reprezintă un nod NUMA. Ulterior, va fi afiÈ™at un rezumat al nodului plus statisticile pentru fiecare CPU din acel nod până când se apasă comanda de comutare „1â€, „2†sau „4â€. Această comandă interactivă este disponibilă numai dacă un sistem are suportul NUMA necesar."
+
+#. type: TP
+#: ../man/top.1:1697
+#, no-wrap
+msgid "\\ \\ \\ B<4>\\ \\ :I<Display-Multiple-Elements-Adjacent> toggle "
+msgstr "\\ \\ \\ B<4>\\ \\ :comutare I<Afișează mai multe elemente adiacente> "
+
+#. type: Plain text
+#: ../man/top.1:1703
+msgid "This \\*(CT turns the `1' toggle \\*F and shows multiple \\*(PU and Memory results on each line. Each successive `4' key adds another \\*(PU until again reverting to separate lines for \\*(PU and Memory results."
+msgstr "Această comandă dezactivează comanda „1†și afișează mai multe rezultate CPU și de memorie pe fiecare linie. Fiecare tastă „4†succesivă adaugă un alt CPU până când se revine din nou la linii separate pentru rezultatele provenite de la CPU și memorie."
+
+#. type: Plain text
+#: ../man/top.1:1709
+msgid "A maximum of 8 \\*(PUs per line can be displayed in this manner. However, data truncation may occur before reaching the maximum. That is definitely true when displaying detailed statistics via the `t' \\*(CT since such data cannot be scaled like the graphic representations."
+msgstr "ÃŽn acest mod pot fi afiÈ™ate maximum 8 CPU-uri pe linie. Cu toate acestea, este posibil ca datele să fie trunchiate înainte de a se ajunge la maxim. Acest lucru este cu siguranță valabil atunci când se afiÈ™ează statistici detaliate prin intermediul comenzii de comutare „tâ€, deoarece astfel de date nu pot fi scalate la fel ca reprezentările grafice."
+
+#. type: Plain text
+#: ../man/top.1:1712
+msgid "If one wished to quickly exit adjacent mode without cycling all the way to 8, simply use the `1' \\*(CT."
+msgstr "Dacă se doreÈ™te să se iasă rapid din modul adiacent fără a se ajunge până la 8, este suficient să se folosească comanda „1â€."
+
+#. type: TP
+#: ../man/top.1:1713
+#, no-wrap
+msgid "\\ \\ \\ B<5>\\ \\ :I<Display-P-Cores-and-E-Cores> toggle "
+msgstr "\\ \\ \\ B<5>\\ \\ :comutare I<Afișează P-Core și E-Core> "
+
+#. type: Plain text
+#: ../man/top.1:1719
+msgid "This \\*(CT is only active when the `t' toggle is \\*O and the `1', `2', `3' and `!' toggles are \\*F, thus showing individual \\*(PU results. It assumes a platform has multiple cores of two distinct types, either multi-threaded (P-Core) or single-threaded (E-Core)."
+msgstr "Această comandă este activă numai atunci când comanda de comutare „t†este activată, iar comenzile de comutare „1â€, „2â€, „3†și „!†sunt dezactivate, afișând astfel rezultatele individuale ale procesorului. Aceasta presupune că o platformă are mai multe nuclee de două tipuri distincte, fie „multi-threaded†(P-Core), fie „single-threaded†(E-Core)."
+
+#. type: Plain text
+#: ../man/top.1:1723
+msgid "While normally each \\*(Pu is displayed as `%Cpu0, %Cpu1, ...', this toggle can be used to identify and/or filter those \\*(Pus by their core type, either P-Core (performance) or E-Core (efficient)."
+msgstr "ÃŽn timp ce, în mod normal, fiecare CPU este afiÈ™at ca „%Cpu0, %Cpu1, ...â€, această comutare poate fi utilizată pentru a identifica È™i/sau filtra aceste CPU-uri în funcÈ›ie de tipul de nucleu, fie P-Core (performanță), fie E-Core (eficiență)."
+
+#. type: Plain text
+#: ../man/top.1:1730
+msgid "The 1st time `5' is struck, each \\*(PU is displayed as `%CpB<P>' or `%CpB<E>' representing the two core types. The 2nd time, only P-Cores (%CpB<P>) will be shown. The 3rd time, only E-Cores (%CpB<E>) are displayed. When this \\*(CT is struck for the 4th time, the \\*(PU display returns to the normal `%Cpu' convention."
+msgstr "Prima dată când se apasă „5â€, fiecare unitate centrală este afiÈ™ată ca „%CpP†sau „%CpEâ€, reprezentând cele două tipuri de nuclee. A 2-a oară, vor fi afiÈ™ate doar nucleele P-Core (%CpP). A 3-a oară, doar nucleele E-Core (%CpE) sunt afiÈ™ate. Când această comandă de comutare este apăsată pentru a 4-a oară, afiÈ™ajul CPU revine la convenÈ›ia normală „%Cpu'."
+
+#. type: Plain text
+#: ../man/top.1:1733
+msgid "If separateI< performance> andI< efficient> categories are not present, this \\*(CT will have no effect."
+msgstr "În cazul în care nu există categorii separate de I<performanță> și I<eficiență>, această comandă nu va avea niciun efect."
+
+#. type: TP
+#: ../man/top.1:1734
+#, no-wrap
+msgid "\\ \\ \\ B<!>\\ \\ :I<Combine-Cpus-Mode> toggle "
+msgstr "\\ \\ \\ B<!>\\ \\ :comutare I<Modul Combinare CPU-uri> "
+
+#. type: Plain text
+#: ../man/top.1:1740
+msgid "This \\*(CT is intended for massively parallel SMP environments where, even with the `4' \\*(CT, not all processors can be displayed. With each press of `!' the number of \\*(Pus combined is doubled thus reducing the total number of \\*(Pu lines displayed."
+msgstr "Această comandă de comutare este destinată mediilor SMP masiv paralele în care, chiar È™i cu comanda de comutare „4â€, nu pot fi afiÈ™ate toate procesoarele. La fiecare apăsare a tastei „!†numărul de CPU-uri combinate se dublează, reducând astfel numărul total de linii de CPU-uri afiÈ™ate."
+
+#. type: Plain text
+#: ../man/top.1:1747
+msgid "For example, with the first press of `!' two \\*(Pus will be combined and displayed as `0-1, 2-3, ...' instead of the normal `%Cpu0, %Cpu1, %Cpu2, %Cpu3, ...'. With a second `!' \\*(CT four \\*(Pus are combined and shown as `0-3, 4-7, ...'. Then the third `!' press, combining eight \\*(Pus, shows as `0-7, 8-15, ...', etc."
+msgstr "De exemplu, la prima apăsare a tastei „!†se va combina o unitate de procesare suplimentară È™i va fi afiÈ™ată ca „0-1, 2-3, ...†în loc de „%Cpu0, %Cpu1, %Cpu2, %Cpu3, ...â€. Cu o a doua apăsare a comenzii de comutare „!â€, patru CPU-uri sunt combinate È™i afiÈ™ate ca „0-3, 4-7, ...â€. Apoi, a treia apăsare a comenzii „!â€, combină opt CPU-uri, ce se afiÈ™ează ca „0-7, 8-15, ...â€, etc."
+
+#. type: Plain text
+#: ../man/top.1:1751
+msgid "Such progression continues until individual \\*(Pus are again displayed and impacts both the `1' and `4' toggles (one or multiple columns). Use the `=' command to exit B<Combine Cpus> mode."
+msgstr "Această progresie continuă până când se afiÈ™ează din nou fiecare CPU È™i are un impact atât asupra comenzii de comutare „1â€, cât È™i asupra comenzii de comutare „4†(una sau mai multe coloane). UtilizaÈ›i comanda „=†pentru a ieÈ™i din modul de Combinare a CPU-urilor."
+
+#. type: Plain text
+#: ../man/top.1:1757
+msgid "\\*(NT If the entire \\*(SA has been toggled \\*F for any window, you would be left with just theB< message line>. In that way, you will have maximized available task rows but (temporarily) sacrificed the program name in \\*(FM or the \\*(CW name when in \\*(AM."
+msgstr "Notă: Dacă întreaga zonă de rezumat a fost dezactivată pentru orice fereastră, veți rămâne doar cu B<linia de mesaj>. În acest fel, veți avea maximizate rândurile de sarcini disponibile, dar sacrificat (temporar) numele programului în modul ecran complet sau numele ferestrei „curente†atunci când se află în modul de afișare alternativă."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1759
+#, no-wrap
+msgid "4c. TASK AREA Commands"
+msgstr "4c. Comenzi din ZONA de SARCINI"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1762
+msgid "The \\*(TA \\*(CIs areB< always> available in \\*(FM."
+msgstr "Comenzile interactive din Zona de Sarcini sunt B<întotdeauna> disponibile în modul ecran complet."
+
+#. type: Plain text
+#: ../man/top.1:1765
+msgid "The \\*(TA \\*(CIs areB< never available> in \\*(AMI< if> the \\*(CW's \\*(TD has been toggled \\*F (\\*(Xt 5. ALTERNATE-DISPLAY Provisions)."
+msgstr "Comenzile interactive din zona de sarcini nu sunt niciodată disponibile în modul de afișare alternativă dacă afișarea sarcinilor din fereastra „curentă†a fost dezactivată (a se vedea tema 5. Dispoziții privind AFIȘAREA ALTERNATIVĂ)."
+
+#. type: Plain text
+#: ../man/top.1:1769
+msgid "B<APPEARANCE> of \\*(TW"
+msgstr "B<ASPECTUL> ferestrei de sarcini"
+
+#. type: TP
+#: ../man/top.1:1770
+#, no-wrap
+msgid "\\ \\ \\ B<J>\\ \\ :I<Justify-Numeric-Columns> toggle "
+msgstr "\\ \\ \\ B<J>\\ \\ :comutare I<Justificarea(alinierea) coloanelor numerice> "
+
+#. type: Plain text
+#: ../man/top.1:1776
+msgid "Alternates between right-justified (the default) and left-justified numeric data. If the numeric data completely fills the available column, this \\*(CT may impact the column header only."
+msgstr "Alternează între datele numerice justificate la dreapta (valoarea implicită) și cele justificate la stânga. În cazul în care datele numerice umplu complet coloana disponibilă, această comandă de comutare poate avea un impact doar asupra antetului coloanei."
+
+#. type: TP
+#: ../man/top.1:1777
+#, no-wrap
+msgid "\\ \\ \\ B<j>\\ \\ :I<Justify-Character-Columns> toggle "
+msgstr "\\ \\ \\ B<j>\\ \\ :comutare I<Justificarea(alinierea) coloanelor de caractere> "
+
+#. type: Plain text
+#: ../man/top.1:1783
+msgid "Alternates between left-justified (the default) and right-justified character data. If the character data completely fills the available column, this \\*(CT may impact the column header only."
+msgstr "Alternează între datele de caractere justificate la stânga (valoarea implicită) și cele justificate la dreapta. În cazul în care datele de caractere umplu complet coloana disponibilă, această comandă de comutare poate avea un impact doar asupra antetului coloanei."
+
+#. type: Plain text
+#: ../man/top.1:1788
+msgid "The following commands will also be influenced by the state of the global `B' (bold enable) toggle."
+msgstr "Următoarele comenzi vor fi, de asemenea, influențate de starea comutatorului global „B†(activează Aldin)."
+
+#. type: TP
+#: ../man/top.1:1790
+#, no-wrap
+msgid "\\ \\ \\ B<b>\\ \\ :I<Bold/Reverse> toggle "
+msgstr "\\ \\ \\ B<b>\\ \\ :comutare I<Aldin / Invers> "
+
+#. type: Plain text
+#: ../man/top.1:1795
+msgid "This command will impact how the `x' and `y' toggles are displayed. It may also impact the \\*(SA when a bar graph has been selected for \\*(Pu states or memory usage via the `t' or `m' toggles."
+msgstr "Această comandă va avea un impact asupra modului în care sunt afiÈ™ate comutatoarele „x†și „yâ€. De asemenea, poate avea un impact asupra Zonei de Rezumat atunci când a fost selectat un grafic cu bare pentru stările CPU sau utilizarea memoriei prin intermediul comenzilor de comutare „t†sau „mâ€."
+
+#. type: TP
+#: ../man/top.1:1796
+#, no-wrap
+msgid "\\ \\ \\ B<x>\\ \\ :I<Column-Highlight> toggle "
+msgstr "\\ \\ \\ B<x>\\ \\ :comutare I<Evidențiere coloană> "
+
+#. type: Plain text
+#: ../man/top.1:1804
+#, no-wrap
+msgid ""
+"Changes highlighting for the current sort field.\n"
+"If you forget which field is being sorted this command can serve as a quick\n"
+"visual reminder, providing the sort field is being displayed.\n"
+"The sort field mightI< not> be visible because:\n"
+" 1) there is insufficientI< Screen Width >\n"
+" 2) the `f' \\*(CI turned it \\*F\n"
+msgstr ""
+"Modifică evidențierea pentru câmpul de sortare curent. Dacă uitați ce câmp este sortat, această comandă poate servi ca o reamintire vizuală rapidă, cu condiția ca câmpul de sortare să fie afișat. Câmpul de sortare ar putea să nu fie vizibil deoarece:\n"
+" 1) lățimea ecranului este insuficientă\n"
+" 2) comanda interactivă „f†l-a dezactivat\n"
+
+#. type: TP
+#: ../man/top.1:1805
+#, no-wrap
+msgid "\\ \\ \\ B<y>\\ \\ :I<Row-Highlight> toggle "
+msgstr "\\ \\ \\ B<y>\\ \\ :comutare I<Evidențiere rând> "
+
+#. type: Plain text
+#: ../man/top.1:1810
+msgid "Changes highlighting for \"running\" tasks. For additional insight into this task state, \\*(Xt 3a. DESCRIPTIONS of Fields, the `S' field (Process Status)."
+msgstr "Modifică evidenÈ›ierea sarcinilor „care ruleazăâ€. Pentru informaÈ›ii suplimentare despre această stare a sarcinilor, consultaÈ›i subiectul 3a. DESCRIEREA câmpurilor, câmpul „S†(Starea procesului)."
+
+#. type: Plain text
+#: ../man/top.1:1813
+msgid "Use of this provision provides important insight into your system's health. The only costs will be a few additional tty escape sequences."
+msgstr "Utilizarea acestei prevederi oferă informații importante despre starea de sănătate a sistemului dumneavoastră. Singurele costuri vor fi câteva secvențe suplimentare de eludare tty."
+
+#. type: TP
+#: ../man/top.1:1814
+#, no-wrap
+msgid "\\ \\ \\ B<z>\\ \\ :I<Color/Monochrome> toggle "
+msgstr "\\ \\ \\ B<z>\\ \\ :comutare I<Culori/Monocromie> "
+
+#. type: Plain text
+#: ../man/top.1:1820
+msgid "Switches the \\*(CW between your last used color scheme and the older form of black-on-white or white-on-black. This command will alterB< both> the \\*(SA and \\*(TA but does not affect the state of the `x', `y' or `b' toggles."
+msgstr "Comută fereastra „curentă†între ultima schemă de culori utilizată È™i forma mai veche de negru pe alb sau alb pe negru. Această comandă va modifica atât Zona de Rezumat, cât È™i Zona de Sarcini, dar nu afectează starea comutatoarelor „xâ€, „y†sau „bâ€."
+
+#. type: Plain text
+#: ../man/top.1:1824
+msgid "B<CONTENT> of \\*(TW"
+msgstr "B<CONÈšINUTUL> ferestrei de sarcini"
+
+#. type: TP
+#: ../man/top.1:1825
+#, no-wrap
+msgid "\\ \\ \\ B<c>\\ \\ :I<Command-Line/Program-Name> toggle "
+msgstr "\\ \\ \\ B<c>\\ \\ :comutare I<Linia de comandă / Nume program> "
+
+#. type: Plain text
+#: ../man/top.1:1830
+msgid "This command will be honored whether or not the COMMAND column is currently visible. Later, should that field come into view, the change you applied will be seen."
+msgstr "Această comandă va fi onorată indiferent dacă coloana COMANDĂ este sau nu vizibilă în prezent. Mai târziu, dacă acest câmp va fi afișat, modificarea pe care ați aplicat-o va fi vizibilă."
+
+#. type: TP
+#: ../man/top.1:1831
+#, no-wrap
+msgid "\\ \\ \\ B<F>\\ \\ :I<Maintain-Parent-Focus> toggle "
+msgstr "\\ \\ \\ B<F>\\ \\ :comutare I<Menține atenția asupra părintelui> "
+
+#. type: Plain text
+#: ../man/top.1:1836
+msgid "When in forest view mode, this key serves as a toggle to retain focus on a target task, presumably one with forked children. If forest view mode is \\*F this key has no effect."
+msgstr "Când vă aflați în modul de vizualizare arborescentă, această tastă are rolul de a comuta pentru a menține concentrarea pe o sarcină țintă, probabil una cu copii bifurcați. În cazul în care modul de vizualizare a pădurii este I<Dezactivat> (Off), această tastă nu are niciun efect."
+
+#. type: Plain text
+#: ../man/top.1:1841
+msgid "The toggle is applied to the first (topmost) process in the \\*(CW. Once established, that task is always displayed as the first (topmost) process along with its forked children. All other processes will be suppressed."
+msgstr "Comutarea se aplică primului proces (cel mai de sus) din fereastra „curentăâ€. Odată stabilită, sarcina respectivă este întotdeauna afiÈ™ată ca fiind primul proces (cel mai de sus) împreună cu copiii săi bifurcaÈ›i. Toate celelalte procese vor fi suprimate."
+
+#. type: Plain text
+#: ../man/top.1:1844
+msgid "\\*(NT keys like `i' (idle tasks), `n' (max tasks), `v' (hide children) and User/Other filtering remain accessible and can impact what is displayed."
+msgstr "Notă: taste precum „i†(sarcini inactive), „n†(numărul maxim de sarcini), „v†(ascunde copii) și filtrarea Utilizator/Altul rămân accesibile și pot avea un impact asupra elementelor afișate."
+
+#. type: TP
+#: ../man/top.1:1845 ../man/top.1:2000
+#, no-wrap
+msgid "\\ \\ \\ B<f>\\ \\ :I<Fields-Management >"
+msgstr "\\ \\ \\ B<f>\\ \\ :I<Gestionarea câmpurilor>"
+
+#. type: Plain text
+#: ../man/top.1:1851
+msgid "This key displays a separate screen where you can change which fields are displayed, their order and also designate the sort field. For additional information on this \\*(CI \\*(Xt 3b. MANAGING Fields."
+msgstr "Această tastă afișează un ecran separat în care puteți modifica câmpurile care sunt afișate, ordinea lor și, de asemenea, puteți desemna câmpul de sortare. Pentru informații suplimentare cu privire la această comandă interactivă, consultați subiectul 3b. Gestionarea câmpurilor."
+
+#. type: TP
+#: ../man/top.1:1852
+#, no-wrap
+msgid "\\ \\ \\ B<O> | B<o>\\ \\ :I<Other-Filtering >"
+msgstr "\\ \\ \\ B<O> | B<o>\\ \\ :I<Altă filtrare>"
+
+#. type: Plain text
+#: ../man/top.1:1858
+msgid "You will be prompted for the selection criteria which then determines which tasks will be shown in the \\*(CW. Your criteria can be made case sensitive or case can be ignored. And you determine if \\*(We should include or exclude matching tasks."
+msgstr "Vi se va cere să introduceÈ›i criteriile de selecÈ›ie care vor determina apoi ce sarcini vor fi afiÈ™ate în fereastra „curentăâ€. Criteriile dumneavoastră pot fi făcute sensibile la majuscule sau minuscule sau pot fi ignorate. Și dumneavoastră stabiliÈ›i dacă \\*(We trebuie să includă sau să excludă sarcinile care coincid."
+
+#. type: Plain text
+#: ../man/top.1:1861
+msgid "\\*(XT 5e. FILTERING in a window for details on these and additional related \\*(CIs."
+msgstr "Consultați subiectul 5e. „Filtrarea într-o fereastră†pentru detalii despre aceste comenzi interactive și alte comenzi interactive conexe."
+
+#. type: TP
+#: ../man/top.1:1862
+#, no-wrap
+msgid "\\ \\ \\ B<S>\\ \\ :I<Cumulative-Time-Mode> toggle "
+msgstr "\\ \\ \\ B<S>\\ \\ :comutare I<Modul de timp cumulat> "
+
+#. type: Plain text
+#: ../man/top.1:1866
+msgid "When Cumulative mode is \\*O, each process is listed with the \\*(Pu time that it and its dead children have used."
+msgstr "Când modul cumulativ este \\*O (On), fiecare proces este listat cu timpul de procesare pe care acesta și copiii săi morți l-au folosit."
+
+#. type: Plain text
+#: ../man/top.1:1873
+msgid "When \\*F, programs that fork into many separate tasks will appear less demanding. For programs like `init' or a shell this is appropriate but for others, like compilers, perhaps not. Experiment with two \\*(TWs sharing the same sort field but with different `S' states and see which representation you prefer."
+msgstr "Când este I<Dezactivat> (Off), programele care se bifurcă în mai multe sarcini separate vor părea mai puțin solicitante. Pentru programe precum «init» sau un shell acest lucru este adecvat, dar pentru altele, precum compilatoarele, poate că nu. Experimentați cu două ferestre de sarcini care împart același câmp de sortare, dar cu stări „S†diferite și vedeți ce reprezentare preferați."
+
+#. type: Plain text
+#: ../man/top.1:1877
+msgid "After issuing this command, you'll be informed of the new state of this toggle. If you wish to know in advance whether or not Cumulative mode is in effect, simply ask for help and view the window summary on the second line."
+msgstr "După lansarea acestei comenzi, veți fi informat cu privire la noua stare a acestei comutări. Dacă doriți să știți în avans dacă modul cumulativ este sau nu activ, pur și simplu cereți Ajutor și vizualizați rezumatul ferestrei pe a doua linie."
+
+#. type: TP
+#: ../man/top.1:1878
+#, no-wrap
+msgid "\\ \\ \\ B<U> | B<u>\\ \\ :I<Show-Specific-User-Only >"
+msgstr "\\ \\ \\ B<U> | B<u>\\ \\ :I<Afișează numai un anumit utilizator>"
+
+#. type: Plain text
+#: ../man/top.1:1883
+msgid "You will be prompted for theB< uid> orB< name> of the user to display. The -u option matches on B< effective> user whereas the -U option matches onB< any> user (real, effective, saved, or filesystem)."
+msgstr "Vi se va solicita B<uid>-ul sau B<numele> utilizatorului care urmează să fie afișat. Opțiunea „-u†se potrivește cu utilizatorul B<efectiv>, în timp ce opțiunea „-U†se potrivește cu B<orice> utilizator (real, efectiv, salvat sau din sistemul de fișiere)."
+
+#. type: Plain text
+#: ../man/top.1:1888
+msgid "Thereafter, in that \\*(TW only matching users will be shown, or possibly no processes will be shown. Prepending an exclamation point (`!') to the user id or name instructs \\*(We to display only processes with users not matching the one provided."
+msgstr "Ulterior, în fereastra de sarcini se vor afiÈ™a numai utilizatorii corespunzători sau, eventual, nu se va afiÈ™a niciun proces. Precedarea cu un semn de exclamare („!â€) a ID-ului sau a numelui utilizatorului îi indică lui \\*(We să afiÈ™eze numai procesele cu utilizatori care nu se potrivesc cu cel furnizat."
+
+#. type: Plain text
+#: ../man/top.1:1892
+msgid "Different \\*(TWs can be used to filter different users. Later, if you wish to monitor all users again in the \\*(CW, re-issue this command but just press E<lt>EnterE<gt> at the prompt."
+msgstr "Diferite ferestre de sarcini pot fi utilizate pentru a filtra diferiÈ›i utilizatori. Ulterior, dacă doriÈ›i să monitorizaÈ›i din nou toÈ›i utilizatorii în fereastra „curentăâ€, reluaÈ›i această comandă, dar apăsaÈ›i doar tasta E<lt>EnterE<gt> la prompt."
+
+#. type: TP
+#: ../man/top.1:1893
+#, no-wrap
+msgid "\\ \\ \\ B<V>\\ \\ :I<Forest-View-Mode> toggle "
+msgstr "\\ \\ \\ B<V>\\ \\ :comutare I<Modul de vizualizare arborescent> "
+
+#. type: Plain text
+#: ../man/top.1:1900
+msgid "In this mode, processes are reordered according to their parents and the layout of the COMMAND column resembles that of a tree. In forest view mode it is still possible to toggle between program name and command line (\\*(Xc `c' \\*(CI) or between processes and threads (\\*(Xc `H' \\*(CI)."
+msgstr "ÃŽn acest mod, procesele sunt reordonate în funcÈ›ie de părinÈ›ii lor, iar structura coloanei COMANDÄ‚ seamănă cu cea a unui arbore. ÃŽn modul de vizualizare arborescentăi este încă posibil de a comuta între numele programului È™i linia de comandă (a se vedea comanda interactivă „câ€) sau între procese È™i fire de execuÈ›ie (a se vedea comanda interactivă „Hâ€)."
+
+#. type: Plain text
+#: ../man/top.1:1904
+msgid "\\*(NT Typing any key affecting the sort order will exit forest view mode in the \\*(CW. \\*(XT 4c. TASK AREA Commands, SORTING for information on those keys."
+msgstr "Notă: Apăsarea oricărei taste care afectează ordinea de sortare vă va scoate din modul de vizualizare arborescentă în fereastra „curentăâ€. A se vedea subiectul 4c. Comenzi din ZONA de SARCINI, Sortare pentru informaÈ›ii despre aceste taste."
+
+#. type: TP
+#: ../man/top.1:1905
+#, no-wrap
+msgid "\\ \\ \\ B<v>\\ \\ :I<Hide/Show-Children> toggle "
+msgstr "\\ \\ \\ B<v>\\ \\ :comutare I<Ascunde/ Afișează copiii> "
+
+#. type: Plain text
+#: ../man/top.1:1909
+msgid "When in forest view mode, this key serves as a toggle to collapse or expand the children of a parent."
+msgstr "În modul de vizualizare arborescentă, această tastă servește drept comutator pentru a restrânge sau extinde copiii unui părinte."
+
+#. type: Plain text
+#: ../man/top.1:1913
+msgid "The toggle is applied against the first (topmost) process in the \\*(CW. \\*(XT 5c. SCROLLING a Window for additional information regarding vertical scrolling."
+msgstr "Comutarea se aplică primului proces (cel mai de sus) din fereastra „curentăâ€. A se vedea subiectul 5c. Derularea unei ferestre pentru informaÈ›ii suplimentare referitoare la derularea verticală."
+
+#. type: Plain text
+#: ../man/top.1:1916
+msgid "If the target process has not forked any children, this key has no effect. It also has no effect when not in forest view mode."
+msgstr "În cazul în care procesul țintă nu a bifurcat niciun copil, această cheie nu are niciun efect. De asemenea, nu are niciun efect atunci când nu se află în modul de vizualizare arborescentă."
+
+#. type: TP
+#: ../man/top.1:1917
+#, no-wrap
+msgid "\\ \\ B<^E>\\ \\ :I<Scale-CPU-Time-fields> (Ctrl key + `e')"
+msgstr "\\ \\ B<^E>\\ \\ :I<Scalează câmpurile de timp CPU> (tasta Ctrl + „eâ€)"
+
+#. type: Plain text
+#: ../man/top.1:1924
+msgid "The `time' fields are normally displayed with the greatest precision their widths permit. This toggle reduces that precision until it wraps. It also illustrates the scaling those fields I<might> experience automatically, which usually depends on how long the system runs."
+msgstr "În mod normal, câmpurile „timp†sunt afișate cu cea mai mare precizie pe care o permite lățimea lor. Acest comutator reduce această precizie până când aceasta se încadrează. Ea ilustrează, de asemenea, scalarea pe care aceste câmpuri o I<pot> experimenta automat, care depinde de obicei de durata de funcționare a sistemului."
+
+#. type: Plain text
+#: ../man/top.1:1927
+msgid "For example, if `MMM:SS.hh' is shown, each ^E keystroke would change it to: `MM:SS', `Hours,MM', `Days+Hours' and finally `Weeks+Days'."
+msgstr "De exemplu, dacă este afiÈ™at „MMM:SS.hhâ€, fiecare apăsare de tastă ^E îl va schimba în: „MM:SSâ€, „Ore,MMâ€, „Zile+ore†și, în final, „Săptămâni+zileâ€."
+
+#. type: Plain text
+#: ../man/top.1:1929
+msgid "Not all time fields are subject to the full range of such scaling."
+msgstr "Nu toate câmpurile de timp sunt supuse la o gamă completă de astfel de scalări."
+
+#. type: Plain text
+#: ../man/top.1:1933
+msgid "B<SIZE> of \\*(TW"
+msgstr "B<DIMENSIUNEA> ferestrei de sarcini"
+
+#. type: TP
+#: ../man/top.1:1934
+#, no-wrap
+msgid "\\ \\ \\ B<i>\\ \\ :I<Idle-Process> toggle "
+msgstr "\\ \\ \\ B<i>\\ \\ :comutare I<Proces inactiv> "
+
+#. type: Plain text
+#: ../man/top.1:1942
+msgid "Displays all tasks or just active tasks. When this toggle is \\*F, tasks that have not used any \\*(PU since the last update will not be displayed. However, due to the granularity of the %CPU and TIME+ fields, some processes may still be displayed thatI< appear> to have usedI< no> \\*(PU."
+msgstr "Afișează toate sarcinile sau doar sarcinile active. Atunci când acest comutator este \\*F (Off), sarcinile care nu au utilizat niciun \\*(PU de la ultima actualizare nu vor fi afișate. Cu toate acestea, datorită precizieii câmpurilor %CPU și TIME+, este posibil să fie afișate în continuare unele procese care I<par> să I<nu> fi utilizat niciun \\*(PU."
+
+#. type: Plain text
+#: ../man/top.1:1945
+msgid "If this command is applied to the last \\*(TD when in \\*(AM, then it will not affect the window's size, as all prior \\*(TDs will have already been painted."
+msgstr "Dacă această comandă este aplicată la ultima afișare a sarcinii atunci când se află în modul de afișare alternativă, atunci nu va afecta dimensiunea ferestrei, deoarece toate afișările anterioare ale sarcinii vor fi fost deja desenate."
+
+#. type: TP
+#: ../man/top.1:1946
+#, no-wrap
+msgid "\\ \\ \\ B<n> | B<#>\\ \\ :I<Set-Maximum-Tasks >"
+msgstr "\\ \\ \\ B<n> | B<#>\\ \\ :I<Stabilește numărul maxim de sarcini>"
+
+#. type: Plain text
+#: ../man/top.1:1950
+msgid "You will be prompted to enter the number of tasks to display. The lessor of your number and available screen rows will be used."
+msgstr "Vi se va solicita să introduceți numărul de sarcini care trebuie afișate. Se va utiliza valoarea cea mai mică dintre numărul dumneavoastră și numărul rândurilor disponibile pe ecran."
+
+#. type: Plain text
+#: ../man/top.1:1955
+msgid "When used in \\*(AM, this is the command that gives you precise control over the size of each currently visible \\*(TD, except for the very last. It will not affect the last window's size, as all prior \\*(TDs will have already been painted."
+msgstr "Atunci când este utilizată în modul de afișare alternativă, aceasta este comanda care vă oferă un control precis asupra mărimii fiecărei afișări de sarcini vizibile în prezent, cu excepția ultimei. Aceasta nu va afecta dimensiunea ultimei ferestre, deoarece toate afișajele anterioare au fost deja desenate."
+
+#. type: Plain text
+#: ../man/top.1:1958
+msgid "\\*(NT If you wish to increase the size of the last visible \\*(TD when in \\*(AM, simply decrease the size of the \\*(TD(s) above it."
+msgstr "Notă: Dacă doriți să măriți dimensiunea ultimului afișaj de sarcini vizibil atunci când vă aflați în modul de afișare alternativă, reduceți pur și simplu dimensiunea afișajului (afișajelor) de sarcini de deasupra acestuia."
+
+#. type: Plain text
+#: ../man/top.1:1962
+msgid "B<SORTING> of \\*(TW"
+msgstr "B<Sortarea> ferestrei de sarcini"
+
+#. type: Plain text
+#: ../man/top.1:1967
+msgid "For compatibility, this \\*(We supports most of the former \\*(We sort keys. Since this is primarily a service to former \\*(We users, these commands do not appear on any help screen."
+msgstr "Din motive de compatibilitate, acest \\*(We suportă majoritatea tastelor de sortare din fostul \\*(We. Deoarece acesta este în primul rând un serviciu pentru foștii utilizatori de \\*(We, aceste comenzi nu apar în niciun ecran de ajutor."
+
+#. type: Plain text
+#: ../man/top.1:1974
+#, no-wrap
+msgid ""
+" I< command sorted-field supported >\n"
+" A start time (non-display) B< No >\n"
+" M %MEM Yes\n"
+" N PID Yes\n"
+" P %CPU Yes\n"
+" T TIME+ Yes\n"
+msgstr ""
+" I< comanda câmpul sortat acceptată >\n"
+" A ora-pornirii (neafișată) B< Nu >\n"
+" M %MEM Da\n"
+" N PID Da\n"
+" P %CPU Da\n"
+" T TIME+ Da\n"
+
+#. type: Plain text
+#: ../man/top.1:1979
+msgid "Before using any of the following sort provisions, \\*(We suggests that you temporarily turn on column highlighting using the `x' \\*(CI. That will help ensure that the actual sort environment matches your intent."
+msgstr "ÃŽnainte de a utiliza oricare dintre următoarele metode de sortare, \\*(We vă sugerează să activaÈ›i temporar evidenÈ›ierea coloanelor cu ajutorul comenzii interactive „xâ€. Acest lucru va ajuta la asigurarea că mediul real de sortare corespunde intenÈ›iei dumneavoastră."
+
+#. type: Plain text
+#: ../man/top.1:1985
+#, no-wrap
+msgid ""
+"The following \\*(CIs willB< only> be honored when the current sort field\n"
+"isB< visible>.\n"
+"The sort field mightI< not> be visible because:\n"
+" 1) there is insufficientI< Screen Width >\n"
+" 2) the `f' \\*(CI turned it \\*F\n"
+msgstr ""
+"Următoarele comenzi interactive vor fi executate B<numai atunci> când câmpul de sortare curent este B<vizibil>. Este posibil ca acest câmp de sortare să I<nu> fie vizibil deoarece:\n"
+" 1) I<lățimea ecranului> este insuficientă\n"
+" 2) comanda interactivă „f†l-a \\*F (Off)\n"
+
+#. type: TP
+#: ../man/top.1:1986
+#, no-wrap
+msgid "\\ \\ \\ B<E<lt>>\\ \\ :I<Move-Sort-Field-Left >"
+msgstr "\\ \\ \\ B<E<lt>>\\ \\ :I<Mută câmpul de sortare la stânga>"
+
+#. type: Plain text
+#: ../man/top.1:1990
+msgid "Moves the sort column to the left unless the current sort field is the first field being displayed."
+msgstr "Mută coloana de sortare la stânga, cu excepția cazului în care câmpul de sortare curent este primul câmp afișat."
+
+#. type: TP
+#: ../man/top.1:1991
+#, no-wrap
+msgid "\\ \\ \\ B<E<gt>>\\ \\ :I<Move-Sort-Field-Right >"
+msgstr "\\ \\ \\ B<E<lt>>\\ \\ :I<Mută câmpul de sortare la dreapta>"
+
+#. type: Plain text
+#: ../man/top.1:1995
+msgid "Moves the sort column to the right unless the current sort field is the last field being displayed."
+msgstr "Mută coloana de sortare la dreapta, cu excepția cazului în care câmpul de sortare curent este ultimul câmp afișat."
+
+#. type: Plain text
+#: ../man/top.1:1999
+msgid "The following \\*(CIs willB< always> be honored whether or not the current sort field is visible."
+msgstr "Următoarele comenzi interactive vor fi B<întotdeauna> executate indiferent dacă este sau nu vizibil câmpul de sortare curent."
+
+#. type: Plain text
+#: ../man/top.1:2006
+msgid "This key displays a separate screen where you can change which field is used as the sort column, among other functions. This can be a convenient way to simply verify the current sort field, when running \\*(We with column highlighting turned \\*F."
+msgstr "Această tastă afișează un ecran separat în care, printre alte funcții, puteți schimba câmpul utilizat ca coloană de sortare. Aceasta poate fi o modalitate convenabilă de a verifica pur și simplu câmpul de sortare curent, atunci când se execută \\*(We cu evidențierea coloanelor I<Dezactivată> (Off)."
+
+#. type: TP
+#: ../man/top.1:2007
+#, no-wrap
+msgid "\\ \\ \\ B<R>\\ \\ :I<Reverse/Normal-Sort-Field> toggle "
+msgstr "\\ \\ \\ B<R>\\ \\ :comutare I<Sortare inversă/normală câmpului> "
+
+#. type: Plain text
+#: ../man/top.1:2010
+msgid "Using this \\*(CI you can alternate between high-to-low and low-to-high sorts."
+msgstr "Folosind această comandă interactivă, puteți alterna între sortarea de la mare la mic și de la mic la mare."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2012
+#, no-wrap
+msgid "4d. COLOR Mapping"
+msgstr "4d. Paleta de CULORI"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2017
+msgid "When you issue the `Z' \\*(CI, you will be presented with a separate screen. That screen can be used to change the colors in just the \\*(CW or in all four windows before returning to the \\*(We display."
+msgstr "Când lansaÈ›i comanda interactivă „Zâ€, vi se va afiÈ™a un ecran separat. Acest ecran poate fi folosit pentru a schimba culorile doar în fereastra „actuală†sau în toate cele patru ferestre înainte de a reveni la afiÈ™ajul de \\*(We."
+
+#. type: Plain text
+#: ../man/top.1:2020
+msgid "The following \\*(CIs are available."
+msgstr "Sunt disponibile următoarele comenzi interactive:"
+
+#. type: Plain text
+#: ../man/top.1:2031
+#, no-wrap
+msgid ""
+" B<4> upper case letters to select aB< target >\n"
+" B<8> numbers to select aB< color >\n"
+" normal toggles available \n"
+" B :bold disable/enable\n"
+" b :running tasks \"bold\"/reverse\n"
+" z :color/mono\n"
+" other commands available \n"
+" a/w :apply, then go to next/prior\n"
+" E<lt>EnterE<gt> :apply and exit\n"
+" q :abandon current changes and exit\n"
+msgstr ""
+" B<4> majuscule pentru a selecta o B<țintă>\n"
+" B<8> numere pentru a selecta o B<culoare>\n"
+" comenzi de comutare disponibile: \n"
+" B :activează/dezactivează afiÈ™area în „aldinâ€\n"
+" b :afiÈ™ează în „aldinâ€/invers sarcinile ce rulează\n"
+" z :afișare în culori/monocromatică\n"
+" alte comenzi disponibile: \n"
+" a/w :aplică, apoi va trece la următorul/precedentul\n"
+" E<lt>EnterE<gt> :aplică și iese\n"
+" q :abandonează schimbările făcute și iese\n"
+
+#. type: Plain text
+#: ../man/top.1:2037
+msgid "If you use `a' or `w' to cycle the targeted window, you will have applied the color scheme that was displayed when you left that window. You can, of course, easily return to any window and reapply different colors or turn colors \\*F completely with the `z' toggle."
+msgstr "Dacă utilizaÈ›i „a†sau „w†pentru a parcurge fereastra vizată, veÈ›i găsii aplicată schema de culori care a fost afiÈ™ată când aÈ›i părăsit fereastra respectivă. Desigur, puteÈ›i reveni cu uÈ™urință la orice fereastră È™i să aplicaÈ›i din nou culori diferite sau să dezactivaÈ›i complet culorile cu ajutorul comenzii „zâ€."
+
+#. type: Plain text
+#: ../man/top.1:2042
+msgid "The Color Mapping screen can also be used to change the \\*(CG in either \\*(FM or \\*(AM. Whatever was targeted when `q' or E<lt>EnterE<gt> was pressed will be made current as you return to the \\*(We display."
+msgstr "Ecranul „Paleta de culori†poate fi utilizat, de asemenea, pentru a schimba grupul de ferestre/câmpuri „curenteâ€, fie în modul ecran complet, fie în modul de afiÈ™are alternativă. Ceea ce a fost vizat atunci când s-a apăsat tasta „q†sau E<lt>EnterE<gt>, va deveni curent atunci când reveniÈ›i la afiÈ™ajul \\*(We."
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2044
+#, no-wrap
+msgid "5. ALTERNATE-DISPLAY Provisions"
+msgstr "5. Dispoziții privind AFIȘAREA ALTERNATIVĂ"
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2047
+#, no-wrap
+msgid "5a. WINDOWS Overview"
+msgstr "5a. Prezentare generală pentru ferestre"
+
+#. type: TP
+#: ../man/top.1:2049
+#, no-wrap
+msgid "B<Field Groups/Windows>:"
+msgstr "B<Grupuri de câmpuri/Ferestre>:"
+
+#. type: Plain text
+#: ../man/top.1:2056
+msgid "In \\*(FM there is a single window represented by the entire screen. That single window can still be changed to display 1 of 4 differentB< field groups> (\\*(Xc `g' \\*(CI, repeated below). Each of the 4 \\*(FGs has a unique separately configurableB< \\*(SA > and its own configurableB< \\*(TA>."
+msgstr "ÃŽn modul ecran complet, există o singură fereastră reprezentată de întregul ecran. Această fereastră unică poate fi modificată pentru a afiÈ™a 1 din 4 B<grupuri de câmpuri> diferite (a se vedea comanda interactivă „gâ€, repetată mai jos). Fiecare dintre cele 4 grupuri de câmpuri are o B<Zonă de Rezumat> unică, configurabilă separat, È™i propria sa B<Zonă de Sarcini> configurabilă."
+
+#. type: Plain text
+#: ../man/top.1:2059
+msgid "In \\*(AM, those 4 underlying \\*(FGs can now be made visible simultaneously, or can be turned \\*F individually at your command."
+msgstr "În modul de afișare alternativă, cele 4 grupuri de câmpuri subiacente pot fi acum vizibile simultan sau pot fi I<Dezactivate> (Off) individual, la alegerea dumneavoastră."
+
+#. type: Plain text
+#: ../man/top.1:2064
+msgid "The \\*(SA will always exist, even if it's only the message line. At any given time onlyI< one> \\*(SA can be displayed. However, depending on your commands, there could be fromI< zero > toI< four> separate \\*(TDs currently showing on the screen."
+msgstr "Zona de rezumat va exista întotdeauna, chiar dacă este vorba doar de linia de mesaje. La un moment dat, poate fi afișată I<o singură> zonă de rezumat. Cu toate acestea, în funcție de comenzile dumneavoastră, pe ecran pot exista de la I<zero> până la I<patru> afișaje separate ale sarcinilor afișate în prezent."
+
+#. type: TP
+#: ../man/top.1:2065
+#, no-wrap
+msgid "B<Current Window>:"
+msgstr "B<Fereastra curentă>:"
+
+#. type: Plain text
+#: ../man/top.1:2071
+msgid "The \\*(CW is the window associated with the \\*(SA and the window to which task related commands are always directed. Since in \\*(AM you can toggle the \\*(TD \\*F, some commands might be restricted for the \\*(CW."
+msgstr "Fereastra „curentă†este fereastra asociată cu Zona de Rezumat È™i fereastra către care sunt direcÈ›ionate întotdeauna comenzile legate de sarcini. Deoarece în modul de afiÈ™are alternativă puteÈ›i I<Dezactiva> (Off) afiÈ™area sarcinilor, unele comenzi pot fi restricÈ›ionate pentru fereastra „curentăâ€."
+
+#. type: Plain text
+#: ../man/top.1:2076
+msgid "A further complication arises when you have toggled the first \\*(SA line \\*F. With the loss of the window name (the `l' toggled line), you'll not easily know what window is the \\*(CW."
+msgstr "O altă complicaÈ›ie apare atunci când aÈ›i \\*F (Off) prima linie din Zona de Rezumat. Odată cu pierderea numelui ferestrei (linia comutată de comanda „lâ€), nu veÈ›i È™ti cu uÈ™urință ce fereastră este fereastra „curentăâ€."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2078
+#, no-wrap
+msgid "5b. COMMANDS for Windows"
+msgstr "5b. Comenzi pentru ferestre"
+
+#. type: TP
+#: ../man/top.1:2080
+#, no-wrap
+msgid "\\ \\ \\ B<-> | B<_>\\ \\ :I<Show/Hide-Window(s)> toggles "
+msgstr "\\ \\ \\ B<-> | B<_>\\ \\ :comutare I<Afișează/Ascunde ferestre> "
+
+#. type: Plain text
+#: ../man/top.1:2087
+msgid "The `-' key turns the \\*(CW's \\*(TD \\*O and \\*F. When \\*O, that \\*(TA will show a minimum of the columns header you've established with the `f' \\*(CI. It will also reflect any other \\*(TA options/toggles you've applied yielding zero or more tasks."
+msgstr "Tasta „-†I<Activează> (On) È™i I<Dezactivează> (Off) afiÈ™area sarcinilor din fereastra „curentăâ€. Atunci când este I<Activată> (On), această Zonă de Sarcini va afiÈ™a un minim de antet de coloane pe care l-aÈ›i stabilit cu comanda interactivă „fâ€. Aceasta va reflecta, de asemenea, orice alte opÈ›iuni/comutări ale zonei de sarcini pe care le-aÈ›i aplicat È™i care produc zero sau mai multe sarcini."
+
+#. type: Plain text
+#: ../man/top.1:2093
+msgid "The `_' key does the same for all \\*(TDs. In other words, it switches between the currently visible \\*(TD(s) and any \\*(TD(s) you had toggled \\*F. If all 4 \\*(TDs are currently visible, this \\*(CI will leave the \\*(SA as the only display element."
+msgstr "Tasta „_†face același lucru pentru toate afișările de sarcini. Cu alte cuvinte, aceasta comută între afișajul (afișajele) de sarcini vizibil(e) în acel moment și orice afișaje de sarcini pe care le-ați \\*F (Off). În cazul în care toate cele 4 afișaje de sarcini sunt vizibile în prezent, această comandă interactivă va lăsa Zona de Rezumat ca unic element de afișare."
+
+#. type: TP
+#: ../man/top.1:2094
+#, no-wrap
+msgid "*\\ \\ B<=> | B<+>\\ \\ :I<Equalize/Reset-Window(s) >"
+msgstr "*\\ \\ B<=> | B<+>\\ \\ :I<Egalizare/Restaurare ferestre>"
+
+#. type: Plain text
+#: ../man/top.1:2103
+msgid "The `=' key forces the \\*(CW's \\*(TD to be visible. It also reverses any active `i' (idle tasks), `n' (max tasks), `u/U' (user filter), `o/O' (other filter), `v' (hide children), `F' focused, `L' (locate) and `!' (combine cpus) commands. Also, if the window had been scrolled, it will be reset with this command. \\*(XT 5c. SCROLLING a Window for additional information regarding vertical and horizontal scrolling."
+msgstr "Tasta „=†forțează afișarea sarcinii ferestrei „curente†să fie vizibilă. De asemenea, anulează orice sarcină activă „i†(sarcini inactive), „n†(numărul maxim de sarcini), „u/U†(filtru utilizator), „o/O†(alte filtre), „v†(ascunde procesul-copil), „F†(focalizarea), „L†(localizarea) și „!†(combinare CPU-uri). De asemenea, în cazul în care fereastra a fost derulată, aceasta va fi restaurată cu această comandă. A se vedea subiectul 5c. Derularea unei ferestre, pentru informații suplimentare referitoare la derularea verticală și orizontală."
+
+#. type: Plain text
+#: ../man/top.1:2108
+msgid "The `+' key does the same for all windows. The four \\*(TDs will reappear, evenly balanced, while retaining any customizations previously applied beyond those noted for the `=' \\*(CT."
+msgstr "Tasta „+†face acelaÈ™i lucru pentru toate ferestrele. Cele patru afiÈ™aje de sarcini vor reapărea, echilibrate în mod egal, păstrând în acelaÈ™i timp toate personalizările aplicate anterior, în afară de cele menÈ›ioate pentru comanda de comutare „=â€."
+
+#. type: TP
+#: ../man/top.1:2109
+#, no-wrap
+msgid "*\\ \\ B<A>\\ \\ :I<Alternate-Display-Mode> toggle "
+msgstr "*\\ \\ B<A>\\ \\ :comutare I<Modul de afișare alternativă> "
+
+#. type: Plain text
+#: ../man/top.1:2112
+msgid "This command will switch between \\*(FM and \\*(AM."
+msgstr "Această comandă va comuta între modul ecran complet și modul de afișare alternativă."
+
+#. type: Plain text
+#: ../man/top.1:2116
+msgid "The first time you issue this command, all four \\*(TDs will be shown. Thereafter when you switch modes, you will see only the \\*(TD(s) you've chosen to make visible."
+msgstr "Prima dată când lansați această comandă, vor fi afișate toate cele patru afișaje de sarcini. Ulterior, atunci când schimbați modurile, veți vedea numai afișajul (afișajele) de sarcini pe care ați ales să le faceți vizibile."
+
+#. type: TP
+#: ../man/top.1:2117
+#, no-wrap
+msgid "*\\ \\ B<a> | B<w>\\ \\ :I<Next-Window-Forward/Backward >"
+msgstr "*\\ \\ B<a> | B<w>\\ \\ :I<Fereastra următoare „înainte/înapoiâ€>"
+
+#. type: Plain text
+#: ../man/top.1:2123
+msgid "This will change the \\*(CW, which in turn changes the window to which commands are directed. These keys act in a circular fashion so you can reach any desired window using either key."
+msgstr "Acest lucru va schimba fereastra „curentăâ€, care la rândul ei va schimba fereastra către care sunt direcÈ›ionate comenzile. Aceste taste acÈ›ionează în mod circular, astfel încât să puteÈ›i ajunge la orice fereastra dorită folosind oricare dintre aceste taste."
+
+#. type: Plain text
+#: ../man/top.1:2127
+msgid "Assuming the window name is visible (you have not toggled `l' \\*F), whenever the \\*(CW name loses its emphasis/color, that's a reminder the \\*(TD is \\*F and many commands will be restricted."
+msgstr "Presupunând că numele ferestrei este vizibil (nu ați comutat `l' în modul \\*F (Off)), ori de câte ori numele ferestrei „curente†își pierde tonalitatea/culoarea, acesta este un memento că afișajul sarcinii este \\*F (Off) și multe comenzi vor fi restricționate."
+
+#. type: TP
+#: ../man/top.1:2128
+#, no-wrap
+msgid "\\ \\ \\ B<G>\\ \\ :I<Change-Window/Field-Group-Name >"
+msgstr "\\ \\ \\ B<G>\\ \\ :I<Schimbă numele ferestrei/grupului de câmpuri>"
+
+#. type: Plain text
+#: ../man/top.1:2133
+msgid "You will be prompted for a new name to be applied to the \\*(CW. It does not require that the window name be visible (the `l' toggle to be \\*O)."
+msgstr "Vi se va solicita un nou nume care să fie aplicat ferestrei \"curente\". Nu este necesar ca numele ferestrei să fie vizibil (comutatorul `l' în modul \\*O (On))."
+
+#. type: Plain text
+#: ../man/top.1:2136
+msgid "The \\*(CIs shown with an \\*(AK have use beyond \\*(AM."
+msgstr "Comenzile interactive marcate cu un asterisc („*â€) sunt utilizate în afara modului de afiÈ™are alternativă."
+
+#. type: Plain text
+#: ../man/top.1:2140
+#, no-wrap
+msgid ""
+" =, A, g are always available\n"
+" a, w act the same with color mapping\n"
+" and fields management\n"
+msgstr ""
+" =, A, g sunt întotdeauna disponibile\n"
+" a, w acționează la fel cu Paleta de culoril\n"
+" și Gestionarea câmpurilor\n"
+
+#. type: TP
+#: ../man/top.1:2142
+#, no-wrap
+msgid "*\\ \\ B<g>\\ \\ :I<Choose-Another-Window/Field-Group >"
+msgstr "*\\ \\ B<g>\\ \\ :I<Alege o altă fereastră / un alt grup de câmpuri>"
+
+#. type: Plain text
+#: ../man/top.1:2146
+msgid "You will be prompted to enter a number between 1 and 4 designating the \\*(FG which should be made the \\*(CW."
+msgstr "Vi se va cere să introduceÈ›i un număr între 1 È™i 4 pentru a desemna grupul de câmpuri care trebuie să devină fereastra „curentăâ€."
+
+#. type: Plain text
+#: ../man/top.1:2150
+msgid "In \\*(FM, this command is necessary to alter the \\*(CW. In \\*(AM, it is simply a less convenient alternative to the `a' and `w' commands."
+msgstr "ÃŽn modul ecran complet, această comandă este necesară pentru a modifica fereastra „curentăâ€. ÃŽn modul de afiÈ™are alternativă, este pur È™i simplu o alternativă mai puÈ›in convenabilă la comenzile „a†și „wâ€."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2152
+#, no-wrap
+msgid "5c. SCROLLING a Window"
+msgstr "5c. Derularea unei ferestre"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2158
+msgid "Typically a \\*(TW is a partial view into a system's total tasks/threads which shows only some of the available fields/columns. With these \\*(KSs, you can move that view vertically or horizontally to reveal any desired task or column."
+msgstr "În mod obișnuit, o fereastră de sarcini este o vizualizare parțială a tuturor sarcinilor/filelor unui sistem, care afișează doar o parte din câmpurile/coloanele disponibile. Cu ajutorul acestor taste de defilare, puteți deplasa această vizualizare pe verticală sau pe orizontală pentru a dezvălui orice sarcină sau coloană dorită."
+
+#. type: TP
+#: ../man/top.1:2159
+#, no-wrap
+msgid "B<Up>,B<PgUp>\\ \\ :I<Scroll-Tasks >"
+msgstr "B<Up>,B<PgUp>\\ \\ :I<Derulare sarcini >"
+
+#. type: Plain text
+#: ../man/top.1:2165
+msgid "Move the view up toward the first task row, until the first task is displayed at the top of the \\*(CW. The I<Up> \\*(KA moves a single line while I<PgUp> scrolls the entire window."
+msgstr "Deplasează vizualizarea în sus spre primul rând de sarcini, până când prima sarcină este afiÈ™ată în partea de sus a ferestrei „curenteâ€. Tasta săgeată I<Sus> deplasează o singură linie, în timp ce I<PgUp> derulează întreaga fereastră."
+
+#. type: TP
+#: ../man/top.1:2166
+#, no-wrap
+msgid "B<Down>,B<PgDn>\\ \\ :I<Scroll-Tasks >"
+msgstr "B<Down>,B<PgDn>\\ \\ :I<Derulare sarcini >"
+
+#. type: Plain text
+#: ../man/top.1:2172
+msgid "Move the view down toward the last task row, until the last task is the only task displayed at the top of the \\*(CW. The I<Down> \\*(KA moves a single line while I<PgDn> scrolls the entire window."
+msgstr "Deplasează vizualizarea în jos spre ultimul rând de sarcini, până când ultima sarcină este singura afiÈ™ată în partea de sus a ferestrei „curenteâ€. Tasta săgeată I<Jos> deplasează o singură linie în timp ce I<PgDn> deplasează întreaga fereastră."
+
+#. type: TP
+#: ../man/top.1:2173
+#, no-wrap
+msgid "B<Left>,B<Right>\\ \\ :I<Scroll-Columns >"
+msgstr "B<Left>,B<Right>\\ \\ :I<Derulare coloane >"
+
+#. type: Plain text
+#: ../man/top.1:2176
+msgid "Move the view of displayable fields horizontally one column at a time."
+msgstr "Deplasează vizualizarea câmpurilor afișabile pe orizontală, coloană cu coloană."
+
+#. type: Plain text
+#: ../man/top.1:2181
+msgid "\\*(NT As a reminder, some fields/columns are not fixed-width but allocated all remaining screen width when visible. When scrolling right or left, that feature may produce some unexpected results initially."
+msgstr "Notă: Ca reamintire, unele câmpuri/coloane nu au lățime fixă, ci au alocată toată lățimea rămasă a ecranului atunci când sunt vizibile. Când derulați la dreapta sau la stânga, această funcție poate produce inițial rezultate neașteptate."
+
+#. type: Plain text
+#: ../man/top.1:2187
+msgid "Additionally, there are special provisions for any variable width field when positioned as the last displayed field. Once that field is reached via the right arrow key, and is thus the only column shown, you can continue scrolling horizontally within such a field. \\*(XC `C' \\*(CI below for additional information."
+msgstr "În plus, există dispoziții speciale pentru orice câmp cu lățime variabilă atunci când este poziționat ca ultimul câmp afișat. Odată ce câmpul respectiv este atins prin intermediul tastei săgeată dreapta, și este astfel singura coloană afișată, puteți continua să derulați pe orizontală în cadrul unui astfel de câmp. Pentru informații suplimentare, consultați comanda interactivă „C†de mai jos."
+
+#. type: TP
+#: ../man/top.1:2188
+#, no-wrap
+msgid "B<Home>\\ \\ :I<Jump-to-Home-Position >"
+msgstr "B<Home>\\ \\ :I<Salt la poziția inițală >"
+
+#. type: Plain text
+#: ../man/top.1:2191
+msgid "Reposition the display to the un-scrolled coordinates."
+msgstr "Repoziționează afișajul la coordonatele de dinainte de derulare."
+
+#. type: TP
+#: ../man/top.1:2192
+#, no-wrap
+msgid "B<End>\\ \\ :I<Jump-to-End-Position >"
+msgstr "B<End>\\ \\ :I<Salt la poziția finală >"
+
+#. type: Plain text
+#: ../man/top.1:2196
+msgid "Reposition the display so that the rightmost column reflects the last displayable field and the bottom task row represents the last task."
+msgstr "Repoziționează afișajul astfel încât cea mai din dreapta coloană să reflecte ultimul câmp afișabil, iar rândul de jos al sarcinii să reprezinte ultima sarcină."
+
+#. type: Plain text
+#: ../man/top.1:2201
+msgid "\\*(NT From this position it is still possible to scrollI< down> andI< right> using the \\*(KAs. This is true until a single column and a single task is left as the only display element."
+msgstr "Notă: Din această poziție este încă posibilă derularea în I<jos> și la I<dreapta> cu ajutorul tastelor săgeată. Acest lucru este valabil până când o singură coloană și o singură sarcină rămân ca singurele element de afișare."
+
+#. type: TP
+#: ../man/top.1:2202
+#, no-wrap
+msgid "B<C>\\ \\ :I<Show-scroll-coordinates> toggle "
+msgstr "B<C>\\ \\ :comutare I<Afișează coordonatele de derulare> "
+
+#. type: Plain text
+#: ../man/top.1:2208
+msgid "Toggle an informational message which is displayed whenever the message line is not otherwise being used. That message will take one of two forms depending on whether or not a variable width column has also been scrolled."
+msgstr "Comută un mesaj informativ care este afișat ori de câte ori linia de mesaje nu este utilizată în alt mod. Acest mesaj va lua una dintre cele două forme, în funcție de faptul dacă o coloană cu lățime variabilă a fost sau nu derulată."
+
+#. type: Plain text
+#: ../man/top.1:2212
+#, no-wrap
+msgid ""
+" B<scroll coordinates: y = n/n (tasks), x = n/n (fields)>\n"
+" scroll coordinates: y = n/n (tasks), x = n/n (fields)B< + nn>\n"
+msgstr ""
+" B<coordonate derulare: y = n/n (sarcini), x = n/n (câmpuri)>\n"
+" coordonate derulare: y = n/n (sarcini), x = n/n (câmpuri)B< + nn>\n"
+
+#. type: Plain text
+#: ../man/top.1:2220
+msgid "The coordinates shown as B<n>/B<n> are relative to the upper left corner of the \\*(CW. The additional `B<+\\ nn>' represents the displacement into a variable width column when it has been scrolled horizontally. Such displacement occurs in normal 8 character tab stop amounts via the right and left arrow keys."
+msgstr "Coordonatele afiÈ™ate ca B<n>/B<n> sunt relative la colÈ›ul din stânga sus al ferestrei „curenteâ€. Cifra suplimentară „B<+\\ nn>†reprezintă deplasarea într-o coloană cu lățime variabilă atunci când aceasta a fost derulată pe orizontală. O astfel de deplasare are loc în cantități normale de 8 caractere de tabulare prin intermediul tastelor săgeată dreapta È™i stânga."
+
+#. type: TP
+#: ../man/top.1:2222
+#, no-wrap
+msgid "B<y = n/n (tasks) >"
+msgstr "B<y = n/n (sarcini) >"
+
+#. type: Plain text
+#: ../man/top.1:2227
+msgid "The first B<n> represents the topmost visible task and is controlled by \\*(KSs. The second B<n> is updated automatically to reflect total tasks."
+msgstr "Primul B<n> reprezintă sarcina cea mai vizibilă din partea de sus și este controlată prin intermediul tastelor de derulare. Al doilea B<n> este actualizat automat pentru a reflecta totalul sarcinilor."
+
+#. type: TP
+#: ../man/top.1:2228
+#, no-wrap
+msgid "B<x = n/n (fields) >"
+msgstr "B<x = n/n (câmpuri) >"
+
+#. type: Plain text
+#: ../man/top.1:2234
+msgid "The first B<n> represents the leftmost displayed column and is controlled by \\*(KSs. The second B<n> is the total number of displayable fields and is established with the `B<f>' \\*(CI."
+msgstr "Primul B<n> reprezintă cea mai din stânga coloană afiÈ™ată È™i este controlat prin intermediul tastelor de derulare. Al doilea B<n> reprezintă numărul total de câmpuri afiÈ™abile È™i se stabileÈ™te cu ajutorul comenzii interactive „B<f>â€."
+
+#. type: Plain text
+#: ../man/top.1:2239 ../man/top.1:2298
+msgid "The above \\*(CIs areB< always> available in \\*(FM butB< never> available in \\*(AM if the \\*(CW's \\*(TD has been toggled \\*F."
+msgstr "Comenzile interactive de mai sus sunt B<întotdeauna> disponibile în modul ecran complet, dar nu sunt B<niciodată> disponibile în modul de afișare alternativă dacă afișarea sarcinilor din fereastra „curentă†a fost I<Dezactivată> (Off)."
+
+#. type: Plain text
+#: ../man/top.1:2243
+msgid "\\*(NT When any form of filtering is active, you can expect some slight aberrations when scrolling since not all tasks will be visible. This is particularly apparent when using the Up/Down \\*(KAs."
+msgstr "Notă: Când orice formă de filtrare este activă, vă puteți aștepta la unele ușoare aberații la defilare, deoarece nu toate sarcinile vor fi vizibile. Acest lucru este evident mai ales atunci când utilizați tastele săgeți B<Sus/Jos>."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2245
+#, no-wrap
+msgid "5d. SEARCHING in a Window"
+msgstr "5d. Căutarea într-o fereasră"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2248
+msgid "You can use these \\*(CIs to locate a task row containing a particular value."
+msgstr "Puteți utiliza aceste comenzi interactive pentru a localiza un rând de sarcini care conține o anumită valoare."
+
+#. type: TP
+#: ../man/top.1:2249
+#, no-wrap
+msgid "B<L>\\ \\ :I<Locate-a-string>"
+msgstr "B<L>\\ \\ :I<Localizează un șir>"
+
+#. type: Plain text
+#: ../man/top.1:2254
+msgid "You will be prompted for the case-sensitive string to locate starting from the current window coordinates. There are no restrictions on search string content."
+msgstr "Vi se va solicita șirul de caractere care trebuie localizat pornind de la coordonatele ferestrei curente. Nu există restricții privind conținutul șirului de căutare."
+
+#. type: Plain text
+#: ../man/top.1:2258
+msgid "Searches are not limited to values from a single field or column. All of the values displayed in a task row are allowed in a search string. You may include spaces, numbers, symbols and even forest view artwork."
+msgstr "Căutările nu se limitează la valorile dintr-un singur câmp sau dintr-o singură coloană. Toate valorile afișate într-un rând de sarcini sunt permise într-un șir de căutare. Puteți include spații, numere, simboluri și chiar grafice de vizualizare arborescentă."
+
+#. type: Plain text
+#: ../man/top.1:2261
+msgid "Keying E<lt>EnterE<gt> with no input will effectively disable the `&' key until a new search string is entered."
+msgstr "Apăsarea tastei E<lt>EnterE<gt> fără a introduce date va dezactiva efectiv tasta „&†până când se introduce un nou șir de căutare."
+
+#. type: TP
+#: ../man/top.1:2262
+#, no-wrap
+msgid "B<&>\\ \\ :I<Locate-next>"
+msgstr "B<&>\\ \\ :I<Localizează următorul șir>"
+
+#. type: Plain text
+#: ../man/top.1:2266
+msgid "Assuming a search string has been established, \\*(We will attempt to locate the next occurrence."
+msgstr "Presupunând că a fost stabilit un șir de căutare, \\*(We va încerca să localizeze următoarea apariție."
+
+#. type: Plain text
+#: ../man/top.1:2273
+msgid "When a match is found, the current window is repositioned vertically so the task row containing that string is first. The scroll coordinates message can provide confirmation of such vertical repositioning (\\*(Xc `C' \\*(CI). Horizontal scrolling, however, is never altered via searching."
+msgstr "Atunci când se găseÈ™te o potrivire, fereastra curentă este repoziÈ›ionată pe verticală astfel încât rândul de sarcini care conÈ›ine È™irul respectiv să fie primul. Mesajul coordonatelor de derulare poate oferi o confirmare a acestei repoziÈ›ionări verticale (a se vedea comanda interactivă „Câ€). Cu toate acestea, derularea orizontală nu este niciodată modificată prin intermediul căutării."
+
+#. type: Plain text
+#: ../man/top.1:2276
+msgid "The availability of a matching string will be influenced by the following factors."
+msgstr "Disponibilitatea unui șir care să corespundă va fi influențată de următorii factori."
+
+#. type: TP
+#: ../man/top.1:2277
+#, no-wrap
+msgid "a. Which fields are displayable from the total available,"
+msgstr "a. Ce câmpuri pot fi afișate din totalul disponibil,"
+
+#. type: Plain text
+#: ../man/top.1:2280
+msgid "\\*(Xt 3b. MANAGING Fields."
+msgstr "a se vedea 3b. GESTIONAREA Câmpurilor."
+
+#. type: TP
+#: ../man/top.1:2280
+#, no-wrap
+msgid "b. Scrolling a window vertically and/or horizontally,"
+msgstr "b. Derularea unei ferestre pe verticală și/sau pe orizontală,"
+
+#. type: Plain text
+#: ../man/top.1:2283
+msgid "\\*(Xt 5c. SCROLLING a Window."
+msgstr "a se vedea 5c. Derularea unei ferestre."
+
+#. type: TP
+#: ../man/top.1:2283
+#, no-wrap
+msgid "c. The state of the command/command-line toggle,"
+msgstr "c. Starea comutatorului „comandă/linia de comandăâ€,"
+
+#. type: Plain text
+#: ../man/top.1:2286
+msgid "\\*(Xc `c' \\*(CI."
+msgstr "a se vedea comanda interactivă „câ€."
+
+#. type: TP
+#: ../man/top.1:2286
+#, no-wrap
+msgid "d. The stability of the chosen sort column,"
+msgstr "d. Stabilitatea coloanei de sortare aleasă,"
+
+#. type: Plain text
+#: ../man/top.1:2289
+msgid "for example PID is good but %CPU bad."
+msgstr "de exemplu, PID este bun, dar %CPU este inadecvat."
+
+#. type: Plain text
+#: ../man/top.1:2295
+msgid "If a search fails, restoring the \\*(CW home (unscrolled) position, scrolling horizontally, displaying command-lines or choosing a more stable sort field could yet produce a successful `&' search."
+msgstr "În cazul în care o căutare eșuează, restabilirea poziției inițiale a ferestrei „curente†(nederulată), derularea pe orizontală, afișarea liniilor de comandă sau alegerea unui câmp de sortare mai stabil ar putea duce totuși la o căutare „&†reușită."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2300
+#, no-wrap
+msgid "5e. FILTERING in a Window"
+msgstr "5e. Filtrarea într-o fereastră"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2306
+msgid "You can use this `Other Filter' feature to establish selection criteria which will then determine which tasks are shown in the \\*(CW. Such filters can be made persistent if preserved in the rcfile via the `W' \\*(CI."
+msgstr "PuteÈ›i utiliza această caracteristică „Alt filtru†pentru a stabili criterii de selecÈ›ie care vor determina apoi ce sarcini sunt afiÈ™ate în fereastra „curentăâ€. Astfel de filtre pot fi făcute persistente dacă sunt păstrate în fiÈ™ierul de configurare prin intermediul comenzii interactive „Wâ€."
+
+#. type: Plain text
+#: ../man/top.1:2312
+msgid "Establishing a filter requires: 1) a field name; 2) an operator; and 3) a selection value, as a minimum. This is the most complex of \\*(We's user input requirements so, when you make a mistake, command recall will be your friend. Remember the Up/Down \\*(KAs or their aliases when prompted for input."
+msgstr "Stabilirea unui filtru necesită: 1) un nume de câmp; 2) un operator; și 3) o valoare de selecție, cel puțin. Aceasta este cea mai complexă dintre cerințele de introducere a datelor de către utilizator din \\*(We, astfel încât, atunci când faceți o greșeală, reapelarea comenzilor vă va fi prietenă. Amintiți-vă tastele săgeată I<Sus/Jos> sau aliasurile lor atunci când vi se cere să introduceți date."
+
+#. type: Plain text
+#: ../man/top.1:2314
+msgid "B<Filter Basics>"
+msgstr "B<Noțiuni de bază despre filtre>"
+
+#. type: TP
+#: ../man/top.1:2315
+#, no-wrap
+msgid "1. field names are case sensitive and spelled as in the header"
+msgstr "1. numele câmpurilor sunt sensibile la majuscule și se scriu ca în antet"
+
+#. type: TP
+#: ../man/top.1:2317
+#, no-wrap
+msgid "2. selection values need not comprise the full displayed field"
+msgstr "2. nu este necesar ca valorile de selecție să cuprindă întregul câmp afișat"
+
+#. type: TP
+#: ../man/top.1:2319
+#, no-wrap
+msgid "3. a selection is either case insensitive or sensitive to case"
+msgstr "3. o selecție este fie insensibilă la majuscule, fie sensibilă la majuscule"
+
+#. type: TP
+#: ../man/top.1:2321
+#, no-wrap
+msgid "4. the default is inclusion, prepending `!' denotes exclusions"
+msgstr "4. implicit este includerea, punerea lui „!†înainte, indică excluderea"
+
+#. type: TP
+#: ../man/top.1:2323
+#, no-wrap
+msgid "5. multiple selection criteria can be applied to a \\*(TW"
+msgstr "5. se pot aplica mai multe criterii de selecție la o fereastră de sarcini"
+
+#. type: TP
+#: ../man/top.1:2325
+#, no-wrap
+msgid "6. inclusion and exclusion criteria can be used simultaneously"
+msgstr "6. criteriile de includere și de excludere pot fi utilizate simultan"
+
+#. type: TP
+#: ../man/top.1:2327
+#, no-wrap
+msgid "7. the 1 equality and 2 relational filters can be freely mixed"
+msgstr "7. Filtrele 1 de egalitate și 2 relațional pot fi amestecate în mod liber"
+
+#. type: TP
+#: ../man/top.1:2329
+#, no-wrap
+msgid "8. separate unique filters are maintained for each \\*(TW"
+msgstr "8. se mențin filtre unice separate pentru fiecare fereastră de sarcină"
+
+#. type: Plain text
+#: ../man/top.1:2337
+msgid "If a field is not turned on or is not currently in view, then your selection criteria will not affect the display. Later, should a filtered field become visible, the selection criteria will then be applied."
+msgstr "Dacă un câmp nu este activat sau nu este vizualizat în prezent, atunci criteriile de selecție nu vor afecta afișarea. Ulterior, dacă un câmp filtrat devine vizibil, criteriile de selecție vor fi aplicate."
+
+#. type: Plain text
+#: ../man/top.1:2340
+msgid "B<Keyboard Summary>"
+msgstr "B<Rezumat al comenzilor de la tastatură>"
+
+#. type: TP
+#: ../man/top.1:2340
+#, no-wrap
+msgid "\\ \\ B<O>\\ \\ :I<Other-Filter> (upper case)"
+msgstr "\\ \\ B<O>\\ \\ :I<Alt filtru> (cu majuscule)"
+
+#. type: Plain text
+#: ../man/top.1:2343
+msgid "You will be prompted to establish a B<case sensitive> filter."
+msgstr "Vi se va solicita să stabiliți un filtru B<sensibil la majuscule>."
+
+#. type: TP
+#: ../man/top.1:2344
+#, no-wrap
+msgid "\\ \\ B<o>\\ \\ :I<Other-Filter> (lower case)"
+msgstr "\\ \\ B<o>\\ \\ :I<Alt filtru> (cu minjuscule)"
+
+#. type: Plain text
+#: ../man/top.1:2348
+msgid "You will be prompted to establish a filter that B<ignores case> when matching."
+msgstr "Vi se va solicita să stabiliți un filtru care B<ignoră majusculele> atunci când se potrivește."
+
+#. type: TP
+#: ../man/top.1:2349
+#, no-wrap
+msgid "\\ B<^O>\\ \\ :I<Show-Active-Filters> (Ctrl key + `o')"
+msgstr "\\ B<^O>\\ \\ :I<AfiÈ™ează filtrele active> (tasta Ctrl + „oâ€)"
+
+#. type: Plain text
+#: ../man/top.1:2353
+msgid "This can serve as a reminder of which filters are active in the \\*(CW. A summary will be shown on the message line until you press the E<lt>EnterE<gt> key."
+msgstr "Acest lucru poate servi ca o reamintire a filtrelor care sunt active în fereastra „curentăâ€. Un rezumat va fi afiÈ™at pe linia de mesaje până când apăsaÈ›i tasta E<lt>EnterE<gt>."
+
+#. type: TP
+#: ../man/top.1:2354
+#, no-wrap
+msgid "\\ \\ B<=>\\ \\ :I<Reset-Filtering> in current window"
+msgstr "\\ \\ B<=>\\ \\ :I<Reinițializează filtrele> în fereastra curentă"
+
+#. type: Plain text
+#: ../man/top.1:2358
+msgid "This clears all of your selection criteria in the \\*(CW. It also has additional impact so please \\*(Xt 4a. GLOBAL Commands."
+msgstr "Această acțiune șterge toate criteriile de selecție din fereastra \"curentă\". Are, de asemenea, un impact suplimentar, așa că n-ar fi rău să consultați subiectul 4a. Comenzi GLOBALE."
+
+#. type: TP
+#: ../man/top.1:2359
+#, no-wrap
+msgid "\\ \\ B<+>\\ \\ :I<Reset-Filtering> in all windows"
+msgstr "\\ \\ B<+>\\ \\ :I<Reinițializează filtrele> în toate ferestrele"
+
+#. type: Plain text
+#: ../man/top.1:2364
+msgid "This clears the selection criteria in all windows, assuming you are in \\*(AM. As with the `=' \\*(CI, it too has additional consequences so you might wish to \\*(Xt 5b. COMMANDS for Windows."
+msgstr "Această operaÈ›ie È™terge criteriile de selecÈ›ie din toate ferestrele, presupunând că vă aflaÈ›i în modul de afiÈ™are alternativă. Ca È™i comanda interactivă „=â€, È™i aceasta are consecinÈ›e suplimentare aÈ™a că ar fi bine să consultaÈ›i subiectul 5b. COMENZI pentru ferestre."
+
+#. type: Plain text
+#: ../man/top.1:2367
+msgid "B<Input Requirements>"
+msgstr "B<Cerințe de introducere>"
+
+#. type: Plain text
+#: ../man/top.1:2373
+msgid "When prompted for selection criteria, the data you provide must take one of two forms. There are 3 required pieces of information, with a 4th as optional. These examples use spaces for clarity but your input generally would not."
+msgstr "Atunci când vi se solicită criteriile de selecție, datele pe care le furnizați trebuie să ia una dintre cele două forme. Există trei informații obligatorii, iar a patra este opțională. Aceste exemple folosesc spații pentru claritate, dar, în general, datele pe care le introduceți dumneavoastră nu ar trebui să le folosească."
+
+#. type: Plain text
+#: ../man/top.1:2378
+#, no-wrap
+msgid ""
+" #1 B<#2> #3 ( required )\n"
+" Field-Name ? include-if-value\n"
+" B<!> Field-Name ? B<exclude>-if-value\n"
+" #4 ( optional )\n"
+msgstr ""
+" nr.1 B<nr.2> nr.3 ( necesare )\n"
+" Nume câmp ? include-dacă-valoare\n"
+" B<!> Nume câmp ? B<exclude>-dacă-valoare\n"
+" nr.4 ( opționale )\n"
+
+#. type: Plain text
+#: ../man/top.1:2383
+msgid "Items #1, #3 and #4 should be self-explanatory. Item B<#2> represents both a required I<delimiter> and the I<operator> which must be one of either equality (`=') or relation (`E<lt>' or `E<gt>')."
+msgstr "Elementele nr.1, nr.3 È™i nr.4 ar trebui să fie auto-explicative Elementul B<nr2> reprezintă atât un I<delimitator> necesar, cât È™i I<operator>, care trebuie să fie unul dintre egalitatea („=â€) sau relaÈ›ia („E<lt>†sau „E<gt>â€)."
+
+#. type: Plain text
+#: ../man/top.1:2392
+msgid "The `=' equality operator requires only a partial match and that can reduce your `if-value' input requirements. The `E<gt>' or `E<lt>' relational operators always employ string comparisons, even with numeric fields. They are designed to work with a field's default I<justification> and with homogeneous data. When some field's numeric amounts have been subjected to I<scaling> while others have not, that data is no longer homogeneous."
+msgstr "Operatorul de egalitate „=†necesită doar o potrivire parÈ›ială, ceea ce poate reduce cerinÈ›ele de introducere a datelor „dacă-valoareâ€. Operatorii relaÈ›ionali „E<gt>†sau „E<lt>†utilizează întotdeauna comparaÈ›ii de È™iruri de caractere, chiar È™i în cazul câmpurilor numerice. AceÈ™tia sunt concepuÈ›i pentru a funcÈ›iona cu I<justificarea> implicită a unui câmp È™i cu date omogene. Atunci când unele valori numerice ale unor câmpuri au fost supuse I<scalării> în timp ce altele nu, datele respective nu mai sunt omogene."
+
+#. type: Plain text
+#: ../man/top.1:2399
+msgid "If you establish a relational filter and you B<have> changed the default Numeric or Character I<justification>, that filter is likely to fail. When a relational filter is applied to a memory field and you B<have not> changed the I<scaling>, it may produce misleading results. This happens, for example, because `100.0m' (MiB) would appear greater than `1.000g' (GiB) when compared as strings."
+msgstr "Dacă stabiliți un filtru relațional și B<ați> modificat I<justificarea> implicită numerică sau de caractere, este posibil ca acel filtru să eșueze. Atunci când un filtru relațional este aplicat unui câmp de memorie și B<nu ați> modificat I<scalarea>, acesta poate produce rezultate înșelătoare. Acest lucru se întâmplă, de exemplu, pentru că „100.0m†(Mio) ar părea mai mare decât „1.000g†(Gio) atunci când sunt comparate ca șiruri de caractere."
+
+#. type: Plain text
+#: ../man/top.1:2403
+msgid "If your filtered results appear suspect, simply altering justification or scaling may yet achieve the desired objective. See the `j', `J' and `e' \\*(CIs for additional information."
+msgstr "ÃŽn cazul în care rezultatele filtrate par suspecte, simpla modificare a justificării sau a scalării poate atinge obiectivul dorit. Pentru informaÈ›ii suplimentare, consultaÈ›i comenzile interactive „jâ€, „J†și „eâ€."
+
+#. type: Plain text
+#: ../man/top.1:2406
+msgid "B<Potential Problems>"
+msgstr "B<Probleme potențiale>"
+
+#. type: Plain text
+#: ../man/top.1:2410
+msgid "These B<GROUP> filters could produce the exact same results or the second one might not display anything at all, just a blank \\*(TW."
+msgstr "Aceste filtre B<GROUP> ar putea produce exact aceleași rezultate sau cel de-al doilea ar putea să nu afișeze nimic, ci doar o fereastră de sarcini goală."
+
+#. type: Plain text
+#: ../man/top.1:2413
+#, no-wrap
+msgid ""
+" GROUP=root ( only the same results when )\n"
+" GROUP=ROOT ( invoked via lower case `o' )\n"
+msgstr ""
+" GROUP=root ( aceleași rezultate doar atunci când )\n"
+" GROUP=ROOT ( este invocat prin intermediul minusculelor „o†)\n"
+
+#. type: Plain text
+#: ../man/top.1:2418
+msgid "Either of these B<RES> filters might yield inconsistent and/or misleading results, depending on the current memory scaling factor. Or both filters could produce the exact same results."
+msgstr "Oricare dintre aceste filtre B<RES> ar putea produce rezultate incoerente și/sau înșelătoare, în funcție de factorul de scalare a memoriei curente. Sau ambele filtre ar putea produce exact aceleași rezultate."
+
+#. type: Plain text
+#: ../man/top.1:2421
+#, no-wrap
+msgid ""
+" RESE<gt>9999 ( only the same results when )\n"
+" !RESE<lt>10000 ( memory scaling is at `KiB' )\n"
+msgstr ""
+" RESE<gt>9999 ( aceleași rezultate doar atunci când )\n"
+" !RESE<lt>10000 ( scalarea memoriei este fixată la „KiB†)\n"
+
+#. type: Plain text
+#: ../man/top.1:2427
+msgid "This B<nMin> filter illustrates a problem unique to scalable fields. This particular field can display a maximum of 4 digits, beyond which values are automatically scaled to KiB or above. So while amounts greater than 9999 exist, they will appear as 2.6m, 197k, etc."
+msgstr "Acest filtru B<nMin> ilustrează o problemă unică pentru câmpurile scalabile. Acest câmp special poate afișa maximum 4 cifre, dincolo de care valorile sunt scalate automat la KiB sau mai mult. Astfel, deși există cantități mai mari de 9999, acestea vor apărea ca 2,6m, 197k, etc."
+
+#. type: Plain text
+#: ../man/top.1:2429
+#, no-wrap
+msgid " nMinE<gt>9999 ( always a blank \\*(TW )\n"
+msgstr " nMinE<gt>9999 ( întotdeauna o fereastră de sarcini goală )\n"
+
+#. type: Plain text
+#: ../man/top.1:2433
+msgid "B<Potential Solutions>"
+msgstr "B<Soluții potențiale>"
+
+#. type: Plain text
+#: ../man/top.1:2440
+msgid "These examples illustrate how Other Filtering can be creatively applied to achieve almost any desired result. Single quotes are sometimes shown to delimit the spaces which are part of a filter or to represent a request for status (^O) accurately. But if you used them with if-values in real life, no matches would be found."
+msgstr "Aceste exemple ilustrează modul în care Alte filtre pot fi aplicate în mod creativ pentru a obține aproape orice rezultat dorit. Ghilimelele simple sunt uneori afișate pentru a delimita spațiile care fac parte dintr-un filtru sau pentru a reprezenta cu exactitate o cerere de stare (^O). Dar dacă le-ați folosi cu „dacă-valori†(valori condiționale), nu s-ar găsi nicio potrivire."
+
+#. type: Plain text
+#: ../man/top.1:2445
+msgid "Assuming field B<nTH> is displayed, the first filter will result in only multi-threaded processes being shown. It also reminds us that a trailing space is part of every displayed field. The second filter achieves the exact same results with less typing."
+msgstr "Presupunând că este afișat câmpul B<nTH> (câmpul antet, de titlu), primul filtru va avea ca rezultat afișarea numai a proceselor cu mai multe fire de execuție. De asemenea, ne reamintește că un spațiu de sfârșit face parte din fiecare fișier câmp afișat. Cel de-al doilea filtru obține exact aceleași rezultate cu mai puțină tastare."
+
+#. type: Plain text
+#: ../man/top.1:2448
+#, no-wrap
+msgid ""
+" !nTH=` 1 ' ( ` for clarity only )\n"
+" nTHE<gt>1 ( same with less i/p )\n"
+msgstr ""
+" !nTH=„ 1 †( „†doar pentru claritate )\n"
+" nTHE<gt>1 ( același lucru mai direct (mai pe scurt) )\n"
+
+#. type: Plain text
+#: ../man/top.1:2452
+msgid "With Forest View mode active and the B<COMMAND> column in view, this filter effectively collapses child processes so that just 3 levels are shown."
+msgstr "Cu modul Vizualizare arborescentă activ și cu coloana B<COMANDA> la vedere, acest filtru reduce efectiv procesele copil astfel încât sunt afișate doar 3 niveluri."
+
+#. type: Plain text
+#: ../man/top.1:2454
+#, no-wrap
+msgid " !COMMAND=` `- ' ( ` for clarity only )\n"
+msgstr " !COMMAND=„ „- †( „†doar pentru claritate )\n"
+
+#. type: Plain text
+#: ../man/top.1:2462
+msgid "The final two filters appear as in response to the status request key (^O). In reality, each filter would have required separate input. The B<PR> example shows the two concurrent filters necessary to display tasks with priorities of 20 or more, since some might be negative. Then by exploiting trailing spaces, the B<nMin> series of filters could achieve the failed `9999' objective discussed above."
+msgstr "Ultimele două filtre apar ca răspuns la tasta de solicitare a stării (^O). În realitate, fiecare filtru ar fi necesitat o intrare separată. Exemplul B<PR> prezintă cele două filtre simultane necesare pentru a afișa sarcinile cu priorități de 20 sau mai mult, deoarece unele ar putea fi negative. Apoi, prin exploatarea spațiilor de urmărire, seria de filtre B<nMin> ar putea atinge obiectivul eșuat „9999†discutat mai sus."
+
+#. type: Plain text
+#: ../man/top.1:2465
+#, no-wrap
+msgid ""
+" `PRE<gt>20' + `!PR=-' ( 2 for right result )\n"
+" `!nMin=0 ' + `!nMin=1 ' + `!nMin=2 ' + `!nMin=3 ' ...\n"
+msgstr ""
+" `PRE<gt>20' + `!PR=-' ( 2 pentru un rezultat corect )\n"
+" `!nMin=0 ' + `!nMin=1 ' + `!nMin=2 ' + `!nMin=3 ' ...\n"
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2469
+#, no-wrap
+msgid "6. FILES"
+msgstr "6. FIȘIERE"
+
+#. ----------------------------------------------------------------------
+#. type: SS
+#: ../man/top.1:2471
+#, no-wrap
+msgid "6a. PERSONAL Configuration File"
+msgstr "6a. Fișier de configurare PERSONAL"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2474
+msgid "This file is created or updated via the `W' \\*(CI."
+msgstr "Acest fiÈ™ier este creat sau actualizat prin intermediul comenzii interactive „Wâ€."
+
+#. type: Plain text
+#: ../man/top.1:2477
+msgid "The legacy version is written as `$HOME/.your-name-4-\\*(We' + `rc' with a leading period."
+msgstr "Versiunea veche este scrisă ca „$HOME/.numele-dvs.-pentru-\\*(We†+ „rc†cu un punct înainte."
+
+#. type: Plain text
+#: ../man/top.1:2482
+msgid "A newly created \\*(CF is written as procps/your-name-4-\\*(We' + `rc' without a leading period. The procps directory will be subordinate to either $XDG_CONFIG_HOME when set as an absolute path or the $HOME/.config directory."
+msgstr "Un fișier de configurare nou creat este scris ca procps/numele-dvs.-pentru-top†+ „rc†fără un punct înainte. Directorul procps va fi subordonat fie lui $XDG_CONFIG_HOME atunci când este stabilită ca o cale absolută, fie directorului $HOME/.config."
+
+#. type: Plain text
+#: ../man/top.1:2484
+msgid "While not intended to be edited manually, here is the general layout:"
+msgstr "Deși nu a fost conceput pentru a fi editat manual, iată prezentarea generală a fișierului de configurare:"
+
+#. type: Plain text
+#: ../man/top.1:2494
+#, no-wrap
+msgid ""
+" global # line 1: the program name/alias notation\n"
+" \" # line 2: id,altscr,irixps,delay,curwin\n"
+" per ea # line a: winname,fieldscur\n"
+" window # line b: winflags,sortindx,maxtasks,etc\n"
+" \" # line c: summclr,msgsclr,headclr,taskclr\n"
+" global # line 15: additional miscellaneous settings\n"
+" \" # any remaining lines are devoted to optional\n"
+" \" # active `other filters' discussed in section 5e above\n"
+" \" # plus `inspect' entries discussed in section 6b below\n"
+msgstr ""
+" global # linia 1: numele programului/notația „alias†a numelui\n"
+" -\"- # linia 2: id,altscr,irixps,delay,curwin\n"
+" per ea # linia a: winname,fieldscur\n"
+" fereastra # linia b: winflags,sortindx,maxtasks,etc\n"
+" -\"- # linia c: summclr,msgsclr,headclr,taskclr\n"
+" global # linia 15: configurări diverse suplimentare\n"
+" -\"- # toate liniile rămase sunt dedicate „altor filtreâ€\n"
+" -\"- # active opționale, discutate în secțiunea 5e de mai sus,\n"
+" -\"- # plus intrările „inspect†discutate în secțiunea 6b de mai jos.\n"
+
+#. type: Plain text
+#: ../man/top.1:2498
+msgid "If a valid absolute path to the rcfile cannot be established, customizations made to a running \\*(We will be impossible to preserve."
+msgstr "ÃŽn cazul în care nu se poate stabili o cale absolută validă către fiÈ™ierul fiÈ™ierul de configurare „rcâ€, personalizările făcute la un \\*(We în execuÈ›ie vor fi imposibil de păstrat."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2500
+#, no-wrap
+msgid "6b. ADDING INSPECT Entries"
+msgstr "6b. Adăugarea de intrări de INSPECTARE"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2507
+msgid "To exploit the `Y' \\*(CI, you must add entries at theB< end> of the \\*(We personal \\*(CF. Such entries simply reflect a file to be read or command/pipeline to be executed whose results will then be displayed in a separate scrollable, searchable window."
+msgstr "Pentru a exploata comanda interactivă „Yâ€, trebuie să adăugaÈ›i intrări la B<sfârÈ™itul> fiÈ™ierului de configurare personal al \\*(We. Aceste intrări reflectă pur È™i simplu un fiÈ™ier care trebuie citit sau o „comandăâ€/„linie de comenzi în cascadă†care urmează să fie executată, ale cărei rezultate vor fi apoi afiÈ™ate într-o fereastră separată care poate fi derulată È™i căutată."
+
+#. type: Plain text
+#: ../man/top.1:2510
+msgid "If you don't know the location or name of your \\*(We rcfile, use the `W' \\*(CI to rewrite it and note those details."
+msgstr "Dacă nu cunoașteți locația sau numele fișierului dvs. configurare al \\*(We, utilizați comanda interactivă „W†pentru a-l rescrie și notați aceste detalii."
+
+#. type: Plain text
+#: ../man/top.1:2517
+msgid "Inspect entries can be added with a redirected echo or by editing the \\*(CF. Redirecting an echo risks overwriting the rcfile should it replace (E<gt>) rather than append (E<gt>E<gt>) to that file. Conversely, when using an editor care must be taken not to corrupt existing lines, some of which could contain unprintable data or unusual characters depending on the \\*(We version under which that \\*(CF was saved."
+msgstr "Intrările de inspectare pot fi adăugate cu ajutorul unui ecou redirecționat sau prin editarea fișierului de configurare. Redirecționarea unui ecou riscă să suprascrie fișierul configurare în cazul în care înlocuiește (E<gt>) în loc să adauge (E<gt>E<gt>) la fișierul respectiv. În schimb, atunci când se utilizează un editor, trebuie să se aibă grijă să nu se corupă liniile existente, unele dintre acestea putând conține date neimprimabile sau caractere neobișnuite, în funcție de versiunea de \\*(We sub care a fost salvat fișierul de configurare respectiv."
+
+#. type: Plain text
+#: ../man/top.1:2522
+msgid "Those Inspect entries beginning with a `#' character are ignored, regardless of content. Otherwise they consist of the following 3 elements, each of whichI< must> be separated by a tab character (thus 2 `\\et' total):"
+msgstr "Acele intrări Inspect (de inspectare) care încep cu caracterul „#†sunt ignorate, indiferent de conținut. În caz contrar, acestea sunt formate din următoarele 3 elemente, fiecare dintre ele trebuind să fie separat de un caracter de tabulare (deci 2 „\\et†în total):"
+
+#. type: Plain text
+#: ../man/top.1:2527
+#, no-wrap
+msgid ""
+" .type: literal `file' or `pipe'\n"
+" .name: selection shown on the Inspect screen\n"
+" .fmts: string representing a path or command\n"
+msgstr ""
+" .type: fie „file†(fișier), fie „pipe†(conductă)\n"
+" .name: selecția afișată pe ecranul de Inspectare\n"
+" .fmts: șir reprezentând o rută sau o comandă\n"
+
+#. type: Plain text
+#: ../man/top.1:2534
+msgid "The two types of Inspect entries areI< not> interchangeable. Those designated `B<file>' will be accessed using fopen and must reference a single file in the `.fmts' element. Entries specifying `B<pipe>' will employ popen, their `.fmts' element could contain many pipelined commands and, none can be interactive."
+msgstr "Cele două tipuri de intrări de Inspectare nu sunt interschimbabile. Cele desemnate „file†vor fi accesate utilizând fopen() È™i trebuie să facă referire la un singur fiÈ™ier în elementul „.fmtsâ€. Intrările care specifică „pipe†vor folosi popen(), elementul lor „.fmts†poate conÈ›ine mai multe comenzi în linie È™i niciuna nu poate fi interactivă."
+
+#. type: Plain text
+#: ../man/top.1:2538
+msgid "If the file or pipeline represented in your `.fmts' deals with the specific PID input or accepted when prompted, then the format string must also contain the `B<%d>' specifier, as these examples illustrate."
+msgstr "ÃŽn cazul în care fiÈ™ierul sau linia de comenzi în cascadă (pipeline) reprezentată în elementul „.fmts†se referă la un PID specific introdus sau acceptat atunci când vi se solicită, atunci È™irul de format trebuie să conÈ›ină, de asemenea, specificatorul „B<%d>â€, după cum ilustrează aceste exemple."
+
+#. type: Plain text
+#: ../man/top.1:2542
+#, no-wrap
+msgid ""
+" .fmts= /proc/I<%d>/numa_maps\n"
+" .fmts= lsof -P -pI< %d>\n"
+msgstr ""
+" .fmts= /proc/I<%d>/numa_maps\n"
+" .fmts= lsof -P -pI< %d>\n"
+
+#. type: Plain text
+#: ../man/top.1:2547
+msgid "For `B<pipe>' type entries only, you may also wish to redirect stderr to stdout for a more comprehensive result. Thus the format string becomes:"
+msgstr "Doar pentru intrările de tip „B<pipe>â€, aÈ›i putea dori, de asemenea, să redirecÈ›ionaÈ›i ieÈ™irea de eroare standard către ieÈ™irea standard pentru un rezultat mai cuprinzător. Astfel È™irul de format devine:"
+
+#. type: Plain text
+#: ../man/top.1:2550
+#, no-wrap
+msgid " .fmts= pmap -x %dI< 2E<gt>&1>\n"
+msgstr " .fmts= pmap -x %dI< 2E<gt>&1>\n"
+
+#. type: Plain text
+#: ../man/top.1:2557
+msgid "Here are examples of both types of Inspect entries as they might appear in the rcfile. The first entry will be ignored due to the initial `#' character. For clarity, the pseudo tab depictions (^I) are surrounded by an extra space but the actual tabs would not be."
+msgstr "Iată exemple de ambele tipuri de intrări Inspect aÈ™a cum ar putea apărea în fiÈ™ierul de configurare. Prima intrare va fi ignorată din cauza caracterului iniÈ›ial „#â€. Pentru mai multă claritate, pseudo-tabulatoarele (^I) sunt înconjurate de un spaÈ›iu suplimentar, dar tabulatoarele reale nu ar trebui să fie."
+
+#. type: Plain text
+#: ../man/top.1:2563
+#, no-wrap
+msgid ""
+" # pipe ^I Sockets ^I lsof -n -P -i 2E<gt>&1\n"
+" pipe ^I Open Files ^I lsof -P -p %d 2E<gt>&1\n"
+" file ^I NUMA Info ^I /proc/%d/numa_maps\n"
+" pipe ^I Log ^I tail -n100 /var/log/syslog | sort -Mr\n"
+msgstr ""
+" # pipe ^I Socluri ^I lsof -n -P -i 2E<gt>&1\n"
+" pipe ^I Fișiere deschise ^I lsof -P -p %d 2E<gt>&1\n"
+" file ^I Informații NUMA ^I /proc/%d/numa_maps\n"
+" pipe ^I Jurnal ^I tail -n100 /var/log/syslog | sort -Mr\n"
+
+#. type: Plain text
+#: ../man/top.1:2570
+msgid "Except for the commented entry above, these next examples show what could be echoed to achieve similar results, assuming the rcfile name was `.toprc'. However, due to the embedded tab characters, each of these lines should be preceded by `B</bin/echo -e>', not just a simple an `echo', to enable backslash interpretation regardless of which shell you use."
+msgstr "Cu excepÈ›ia intrării comentate de mai sus, următoarele exemple arată ce ar putea fi transmis pentru a obÈ›ine rezultate similare, presupunând că numele fiÈ™ierului de configurare este „.toprcâ€. Cu toate acestea, din cauza caracterelor de tabulare încorporate, fiecare dintre aceste linii ar trebui să fie precedată de „B</bin/echo -e>â€, nu doar de un simplu „echoâ€, pentru a permite interpretarea barelor oblice inverse indiferent de shell-ul utilizat."
+
+#. type: Plain text
+#: ../man/top.1:2575
+#, no-wrap
+msgid ""
+" \"pipe\\etOpen Files\\etlsof -P -p %d 2E<gt>&1\" E<gt>E<gt> ~/.toprc\n"
+" \"file\\etNUMA Info\\et/proc/%d/numa_maps\" E<gt>E<gt> ~/.toprc\n"
+" \"pipe\\etLog\\ettail -n200 /var/log/syslog | sort -Mr\" E<gt>E<gt> ~/.toprc\n"
+msgstr ""
+" \"pipe\\etFișiere deschise\\etlsof -P -p %d 2E<gt>&1\" E<gt>E<gt> ~/.toprc\n"
+" \"file\\etInformații NUMA\\et/proc/%d/numa_maps\" E<gt>E<gt> ~/.toprc\n"
+" \"pipe\\etJurnal\\ettail -n200 /var/log/syslog | sort -Mr\" E<gt>E<gt> ~/.toprc\n"
+
+#. type: Plain text
+#: ../man/top.1:2584
+msgid "If any inspect entry you create produces output with unprintable characters they will be displayed in either the ^C notation or hexadecimal E<lt>FFE<gt> form, depending on their value. This applies to tab characters as well, which will show as `^I'. If you want a truer representation, any embedded tabs should be expanded. The following example takes what could have been a `file' entry but employs a `pipe' instead so as to expand the embedded tabs."
+msgstr "ÃŽn cazul în care orice intrare de inspectare pe care o creaÈ›i produce o ieÈ™ire cu caractere neimprimabile, acestea vor fi afiÈ™ate fie în notaÈ›ia ^C, fie în formatul hexazecimal E<lt>FFE<gt>, în funcÈ›ie de valoarea lor. Acest lucru este valabil È™i pentru caracterele de tabulare, care vor fi afiÈ™ate sub forma „^Iâ€. Dacă doriÈ›i o reprezentare mai veridică, orice tabulaÈ›ie încorporată trebuie dezvoltată. Exemplul următor ia ceea ce ar fi putut fi o intrare „fileâ€, dar foloseÈ™te în schimb o „pipe†pentru a extinde tabulatoarele încorporate."
+
+#. type: Plain text
+#: ../man/top.1:2590
+#, no-wrap
+msgid ""
+" # next would have contained `\\et' ...\n"
+" # file ^I E<lt>your_nameE<gt> ^I /proc/%d/status\n"
+" # but this will eliminate embedded `\\et' ...\n"
+" pipe ^I E<lt>your_nameE<gt> ^I cat /proc/%d/status | expand -\n"
+msgstr ""
+" # următorul ar fi conținut „\\et†...\n"
+" # file ^I E<lt>numele_dvs.E<gt> ^I /proc/%d/status\n"
+" # dar acest lucru ar elimina „\\et†încorporat ...\n"
+" pipe ^I E<lt>numele_dvs.E<gt> ^I cat /proc/%d/status | expand -\n"
+
+#. type: Plain text
+#: ../man/top.1:2596
+msgid "\\*(NT Some programs might rely on I<SIGINT> to end. Therefore, if a `B<pipe>' such as the following is established, one must use Ctrl-C to terminate it in order to review the results. This is the single occasion where a `^C' will not also terminate \\*(We."
+msgstr "Notă: Unele programe se pot baza pe I<SIGINT> pentru a se încheia. Prin urmare, dacă se stabilește o „pipe†precum cea de mai jos, trebuie să se utilizeze Ctrl-C pentru a-o încheia pentru a se putea revizui rezultatele. Aceasta este singura ocazie în care un „^C†nu va încheia de asemenea și \\*(We."
+
+#. type: Plain text
+#: ../man/top.1:2599
+#, no-wrap
+msgid " pipe ^I Trace ^I /usr/bin/strace -p %d 2E<gt>&1\n"
+msgstr " pipe ^I Trace ^I /usr/bin/strace -p %d 2E<gt>&1\n"
+
+#. type: Plain text
+#: ../man/top.1:2605
+msgid "Lastly, while `B<pipe>' type entries have been discussed in terms of pipelines and commands, there is nothing to prevent you from including I< shell scripts> as well. Perhaps even newly created scripts designed specifically for the `Y' \\*(CI."
+msgstr "ÃŽn sfârÈ™it, în timp ce intrările de tip „pipe†au fost discutate în termeni de conducte È™i comenzi, nimic nu vă împiedică să includeÈ›i È™i scripturi shell. Poate chiar scripturi nou create, concepute special pentru comanda interactivă „Yâ€."
+
+#. type: Plain text
+#: ../man/top.1:2611
+msgid "For example, as the number of your Inspect entries grows over time, the `Options:' row will be truncated when screen width is exceeded. That does not affect operation other than to make some selections invisible. However, if some choices are lost to truncation but you want to see more options, there is an easy solution hinted at below."
+msgstr "De exemplu, pe măsură ce numărul de intrări Inspect crește în timp, rândul „Opțiuni:†va fi trunchiat atunci când lățimea ecranului este depășită. Acest lucru nu afectează funcționarea decât pentru a face unele selecții invizibile. Cu toate acestea, dacă unele alegeri sunt pierdute din cauza trunchierii, dar doriți să vedeți mai multe opțiuni, există o soluție simplă sugerată mai jos."
+
+#. type: Plain text
+#: ../man/top.1:2616
+#, no-wrap
+msgid ""
+" Inspection Pause at pid ...\n"
+" Use: left/right then E<lt>EnterE<gt> ...\n"
+" Options: help 1 2 3 4 5 6 7 8 9 10 11 ...\n"
+msgstr ""
+" Pauză de inspectare la pid ...\n"
+" Utilizați: tastele săgeți stânga/dreapta apoi E<lt>EnterE<gt> ...\n"
+" Opțiuni: help 1 2 3 4 5 6 7 8 9 10 11 ...\n"
+
+#. type: Plain text
+#: ../man/top.1:2622
+msgid "The entries in the \\*(We rcfile would have a number for the `.name' element and the `help' entry would identify a shell script you've written explaining what those numbered selections actually mean. In that way, many more choices can be made visible."
+msgstr "Intrările din fiÈ™ierul de configurare al \\*(We vor avea un număr pentru elementul „.nameâ€, iar intrarea „help†va identifica un script shell pe care l-aÈ›i scris pentru a explica ce înseamnă de fapt aceste selecÈ›ii numerotate. ÃŽn acest fel, pot fi făcute vizibile mult mai multe alegeri."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2624
+#, no-wrap
+msgid "6c. SYSTEM Configuration File"
+msgstr "6c. Fișier de configurare a SISTEMULUI"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2629
+msgid "This \\*(CF represents defaults for users who have not saved their own \\*(CF. The format mirrors exactly the personal \\*(CF and can also include `inspect' entries as explained above."
+msgstr "Acest fiÈ™ier de configurare reprezintă valorile implicite pentru utilizatorii care nu È™i-au salvat propriul fiÈ™ier de configurare. Formatul oglindeÈ™te exact fiÈ™ierul de configurare personal È™i poate, de asemenea, să includă intrări „de inspectareâ€, aÈ™a cum s-a explicat mai sus."
+
+#. type: Plain text
+#: ../man/top.1:2631
+msgid "Creating it is a simple process."
+msgstr "Crearea acestuia este un proces simplu."
+
+#. type: Plain text
+#: ../man/top.1:2634
+msgid "1. Configure \\*(We appropriately for your installation and preserve that configuration with the `W' \\*(CI."
+msgstr "1. ConfiguraÈ›i \\*(We în mod corespunzător pentru instalarea dvs. È™i salvaÈ›i acea configuraÈ›ie cu comanda interactivă „Wâ€."
+
+#. type: Plain text
+#: ../man/top.1:2636
+msgid "2. Add and test any desired `inspect' entries."
+msgstr "2. Adăugați și testați toate intrările de „inspectare†dorite."
+
+#. type: Plain text
+#: ../man/top.1:2638
+msgid "3. Copy that \\*(CF to the I</etc/> directory as `B<topdefaultrc>'."
+msgstr "3. CopiaÈ›i acest fiÈ™ier de configurare în directorul /etc/ ca „topdefaultrcâ€."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2640
+#, no-wrap
+msgid "6d. SYSTEM Restrictions File"
+msgstr "6d. Fișier de restricții ale SISTEMULUI"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2644
+msgid "The presence of this file will influence which version of the help screen is shown to an ordinary user."
+msgstr "Prezența acestui fișier va influența ce versiune a ecranului de ajutor este afișată unui utilizator obișnuit."
+
+#. type: Plain text
+#: ../man/top.1:2648
+msgid "More importantly, it will limit what ordinary users are allowed to do when \\*(We is running. They will not be able to issue the following commands."
+msgstr "Cel mai important, va limita ceea ce utilizatorii obișnuiți au voie să facă atunci când \\*(We este în funcțiune. Aceștia nu vor putea emite următoarele comenzi:"
+
+#. type: Plain text
+#: ../man/top.1:2652
+#, no-wrap
+msgid ""
+" k Kill a task\n"
+" r Renice a task\n"
+" d or s Change delay/sleep interval\n"
+msgstr ""
+" k Omorârea unei sarcini\n"
+" r Redefinirea valorii de curtoazie (nice) a unei sarcini\n"
+" d sau s Modificarea intervalului de întârziere/dormire\n"
+
+#. type: Plain text
+#: ../man/top.1:2657
+msgid "This \\*(CF is not created by \\*(We. Rather, it is created manually and placed it in the I</etc/> directory as `B<toprc>'."
+msgstr "Acest fiÈ™ier de configurare nu este creat de \\*(We. Mai degrabă, este creat manual È™i plasat în directorul „/etc/†sub numele de „toprcâ€."
+
+#. type: Plain text
+#: ../man/top.1:2659
+msgid "It should have exactly two lines, as shown in this example:"
+msgstr "Acesta trebuie să aibă exact două linii, așa cum se arată în acest exemplu:"
+
+#. type: Plain text
+#: ../man/top.1:2662
+#, no-wrap
+msgid ""
+" s # line 1: secure mode switch\n"
+" 5.0 # line 2: delay interval in seconds\n"
+msgstr ""
+" s # linia 1: comutator de mod securizat\n"
+" 5.0 # linia 2: intervalul de întârziere în secunde\n"
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2665
+#, no-wrap
+msgid "7. ENVIRONMENT VARIABLE(S)"
+msgstr "7. VARIABILE DE MEDIU"
+
+#. type: Plain text
+#: ../man/top.1:2668 ../man/procps_pids.3:201
+msgid "The value set for the following is unimportant, just its presence."
+msgstr "Valoarea stabilită pentru următoarea variabilă este neimportantă, doar prezența acesteia."
+
+#. type: IP
+#: ../man/top.1:2669 ../man/procps_pids.3:202
+#, no-wrap
+msgid "LIBPROC_HIDE_KERNEL"
+msgstr "LIBPROC_HIDE_KERNEL"
+
+#. type: Plain text
+#: ../man/top.1:2672
+msgid "This will prevent display of any kernel threads and exclude such processes from the \\*(SA Tasks/Threads counts."
+msgstr "Acest lucru va împiedica afișarea oricăror fire de execuție ale nucleului și va exclude astfel de procese din numărul de sarcini/fire de execuție din Zona de Rezumat."
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2674
+#, no-wrap
+msgid "8. STUPID TRICKS Sampler"
+msgstr "8. Exemplu de TRUCURI STUPIDE"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2679
+msgid "Many of these tricks work best when you give \\*(We a scheduling boost. So plan on starting him with a nice value of -10, assuming you've got the authority."
+msgstr "Multe dintre aceste trucuri funcÈ›ionează cel mai bine atunci când îi daÈ›i lui \\*(We) un impuls de planificare. AÈ™a că plănuieÈ™te să-l lansezi cu o valoare de curtoazie (nice) de „-10â€, presupunând că ai autoritatea necesară."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2681
+#, no-wrap
+msgid "7a. Kernel Magic"
+msgstr "7a. Magia nucleului"
+
+#. ----------------------------------------------------------------------
+#. sorry, just can't help it -- don't ya love the sound of this?
+#. ( apparently AM static was a potential concern )
+#. type: Plain text
+#: ../man/top.1:2686
+msgid "For these stupid tricks, \\*(We needs \\*(FM."
+msgstr "Pentru aceste trucuri stupide, \\*(We are nevoie de modul ecran complet."
+
+#. type: Plain text
+#: ../man/top.1:2693
+msgid "The user interface, through prompts and help, intentionally implies that the delay interval is limited to tenths of a second. However, you're free to set any desired delay. If you want to see Linux at his scheduling best, try a delay of .09 seconds or less."
+msgstr "Interfața cu utilizatorul, prin solicitări și ajutor, implică în mod intenționat că intervalul de întârziere este limitat la zecimi de secundă. Cu toate acestea, sunteți liber să stabiliți orice întârziere dorită. Dacă doriți să vedeți Linux (nucleul) la cea mai bună planificare, încercați o întârziere de 0,09 secunde sau mai puțin."
+
+#. type: Plain text
+#: ../man/top.1:2696
+msgid "For this experiment, under x-windows open an xterm and maximize it. Then do the following:"
+msgstr "Pentru acest experiment, sub x-windows deschideți un terminal «xterm» și maximizați-l. Apoi faceți următoarele:"
+
+#. type: Plain text
+#: ../man/top.1:2705
+#, no-wrap
+msgid ""
+" . provide a scheduling boost and tiny delay via:\n"
+" nice -n -10 \\*(We -d.09\n"
+" . keep sorted column highlighting \\*F so as to\n"
+" minimize path length\n"
+" . turn \\*O reverse row highlighting for emphasis\n"
+" . try various sort columns (TIME/MEM work well),\n"
+" and normal or reverse sorts to bring the most\n"
+" active processes into view\n"
+msgstr ""
+" . stabiliți o creștere a priorității și o mică întârziere prin:\n"
+" nice -n -10 \\*(We -d.09\n"
+" . păstrați evidențierea coloanelor sortate Dezactivat\n"
+" pentru a minimiza lungimea căii\n"
+" . activați evidențierea rândului invers pentru accentuare\n"
+" . încercați diferite coloane de sortare (TIME/MEM\n"
+" funcționează bine) și sortarea normală sau inversă\n"
+" pentru a aduce cele mai active procese la vedere\n"
+
+#. type: Plain text
+#: ../man/top.1:2709
+msgid "What you'll see is a very busy Linux doing what he's always done for you, but there was no program available to illustrate this."
+msgstr "Ceea ce veți vedea este un Linux foarte ocupat făcând ceea ce a făcut întotdeauna pentru dvs., dar nu a existat niciun program disponibil pentru a ilustra acest lucru."
+
+#. type: Plain text
+#: ../man/top.1:2715
+msgid "Under an xterm using `white-on-black' colors, on \\*(We's Color Mapping screen set the task color to black and be sure that task highlighting is set to bold, not reverse. Then set the delay interval to around .3 seconds."
+msgstr "Sub un xterm care foloseÈ™te culori „alb-pe-negruâ€, în ecranul de asociere a culorilor din \\*(We stabiliÈ›i culoarea sarcinii la negru È™i asiguraÈ›i-vă că evidenÈ›ierea sarcinii este setată la aldin, nu invers. Apoi stabiliÈ›i intervalul de întârziere la aproximativ 0,3 secunde."
+
+#. type: Plain text
+#: ../man/top.1:2718
+msgid "After bringing the most active processes into view, what you'll see are the ghostly images of just the currently running tasks."
+msgstr "După ce ați adus la vedere cele mai active procese, ceea ce veți vedea sunt imaginile fantomatice ale sarcinilor în curs de desfășurare."
+
+#. type: Plain text
+#: ../man/top.1:2724
+msgid "Delete the existing rcfile, or create a new symlink. Start this new version then type `T' (a secret key, \\*(Xt 4c. Task Area Commands, SORTING) followed by `W' and `q'. Finally, restart the program with -d0 (zero delay)."
+msgstr "ȘtergeÈ›i fiÈ™ierul rc existent sau creaÈ›i o legătură simbolică nouă. PorniÈ›i această nouă versiune, apoi tastaÈ›i „T†(o cheie secretă, \\*(Xt „4c. Comenzi în zona de sarcini, SORTAREâ€) urmat de „W†și „qâ€. ÃŽn cele din urmă, reporniÈ›i programul cu -d0 (întârziere zero)."
+
+#. type: Plain text
+#: ../man/top.1:2729
+msgid "Your display will be refreshed at three times the rate of the former \\*(We, a 300% speed advantage. As \\*(We climbs the TIME ladder, be as patient as you can while speculating on whether or not \\*(We will ever reach the \\*(We."
+msgstr "Afișajul dvs. va fi reîmprospătat cu o rată de trei ori mai mare decât cea din fostul \\*(We, un avantaj de viteză de 300%. Pe măsură ce \\*(We urcă pe scara TIMPULUI, fiți cât de răbdător puteți în timp ce speculați dacă \\*(We va ajunge vreodată în \\*(We."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2731
+#, no-wrap
+msgid "7b. Bouncing Windows"
+msgstr "7b. Ferestre care apar"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2734
+msgid "For these stupid tricks, \\*(We needs \\*(AM."
+msgstr "Pentru aceste trucuri stupide, \\*(We are nevoie de un mod de afișare alternativ."
+
+#. type: Plain text
+#: ../man/top.1:2740
+msgid "With 3 or 4 \\*(TDs visible, pick any window other than the last and turn idle processes \\*F using the `i' \\*(CT. Depending on where you applied `i', sometimes several \\*(TDs are bouncing and sometimes it's like an accordion, as \\*(We tries his best to allocate space."
+msgstr "Cu 3 sau 4 afișări de sarcini vizibile, alegeÈ›i orice altă fereastră decât ultima È™i dezactivaÈ›i procesele inactive folosind comutatorul de comandă „iâ€. ÃŽn funcÈ›ie de locul în care aÈ›i aplicat „iâ€, uneori mai multe afișări de sarcini trec È™i uneori este ca un acordeon, deoarece top încearcă din răsputeri să aloce spaÈ›iu."
+
+#. type: Plain text
+#: ../man/top.1:2746
+msgid "Set each window's summary lines differently: one with no memory (`m'); another with no states (`t'); maybe one with nothing at all, just the message line. Then hold down `a' or `w' and watch a variation on bouncing windows \\*(Em hopping windows."
+msgstr "Configurați liniile de sumar ale fiecărei ferestre în mod diferit: una fără memorie (`m'); alta fără stări (`t'); poate una fără nimic, doar linia de mesaj. Apoi țineți apăsat „a†sau „w†și urmăriți o variație a ferestrelor care apar -- ferestrele săltărețe."
+
+#. type: Plain text
+#: ../man/top.1:2751
+msgid "Display all 4 windows and for each, in turn, set idle processes to \\*F using the `i' \\*(CT. You've just entered the \"extreme bounce\" zone."
+msgstr "AfiÈ™aÈ›i toate cele 4 ferestre È™i pentru fiecare, la rândul său, stabiliÈ›i procesele inactive la Dezactivate folosind comutatorul de comandă „iâ€. Tocmai aÈ›i intrat în zona de „sărire extremăâ€."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2753
+#, no-wrap
+msgid "7c. The Big Bird Window"
+msgstr "7c. Fereastra Pasărea Mare"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2756
+msgid "This stupid trick also requires \\*(AM."
+msgstr "Acest truc stupid necesită, de asemenea, modul de afișare alternativ."
+
+#. type: Plain text
+#: ../man/top.1:2761
+msgid "Display all 4 windows and make sure that 1:Def is the \\*(CW. Then, keep increasing window size with the `n' \\*(CI until all the other \\*(TDs are \"pushed out of the nest\"."
+msgstr "AfiÈ™aÈ›i toate cele 4 ferestre È™i asiguraÈ›i-vă că 1:Def este fereastra „actualăâ€. Apoi, continuaÈ›i să creÈ™teÈ›i dimensiunea ferestrei cu comanda interactivă `n' până când toate celelalte afișări de sarcini sunt „împinse în afara cuibuluiâ€."
+
+#. type: Plain text
+#: ../man/top.1:2765
+msgid "When they've all been displaced, toggle between all visible/invisible windows using the `_' \\*(CT. Then ponder this:"
+msgstr "Când toate au fost deplasate, comutaÈ›i între toate ferestrele vizibile/invizibile folosind comutatorul de comandă „_â€. Atunci gândiÈ›i-vă la asta:"
+
+#. type: Plain text
+#: ../man/top.1:2767
+#, no-wrap
+msgid " is \\*(We fibbing or telling honestly your imposed truth?\n"
+msgstr " \\*(We inventează rezultate sau spune cu sinceritate adevărul impus?\n"
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2769
+#, no-wrap
+msgid "7d. The Ol' Switcheroo"
+msgstr "7d. Vechiul comutator"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2773
+msgid "This stupid trick works best without \\*(AM, since justification is active on a per window basis."
+msgstr "Acest truc stupid funcționează cel mai bine fără modul de afișare alternativă, deoarece justificarea este activă pentru fiecare fereastră."
+
+#. type: Plain text
+#: ../man/top.1:2778
+msgid "Start \\*(We and make COMMAND the last (rightmost) column displayed. If necessary, use the `c' \\*(CT to display command lines and ensure that forest view mode is active with the `V' \\*(CT."
+msgstr "PorniÈ›i \\*(WE È™i faceÈ›i „COMANDA†ultima coloană afiÈ™ată (cea mai din dreapta). Dacă este necesar, utilizaÈ›i comanda de comutare „c†pentru a afiÈ™a liniile de comandă È™i asiguraÈ›i-vă că vizualizarea arborescentă este activă cu comanda de comutare „Vâ€."
+
+#. type: Plain text
+#: ../man/top.1:2782
+msgid "Then use the up/down arrow keys to position the display so that some truncated command lines are shown (`+' in last position). You may have to resize your xterm to produce truncation."
+msgstr "Apoi utilizați tastele săgeți sus/jos pentru a poziționa afișarea astfel încât să fie afișate niște linii de comandă trunchiate („+†în ultima poziție). Poate fi necesar să redimensionați „xterm†pentru a produce trunchierea."
+
+#. type: Plain text
+#: ../man/top.1:2784
+msgid "Lastly, use the `j' \\*(CT to make the COMMAND column right justified."
+msgstr "În cele din urmă, utilizați comanda de comutare „j†pentru a face coloana COMANDA justificată la dreapta."
+
+#. type: Plain text
+#: ../man/top.1:2788
+msgid "Now use the right arrow key to reach the COMMAND column. Continuing with the right arrow key, watch closely the direction of travel for the command lines being shown."
+msgstr "Acum folosiți tasta săgeată dreapta pentru a ajunge la coloana COMANDA. Continuând cu tasta săgeată dreapta, urmăriți cu atenție direcția de mers pentru liniile de comandă afișate."
+
+#. type: Plain text
+#: ../man/top.1:2791
+#, no-wrap
+msgid " some lines travel left, while others travel right\n"
+msgstr " unele linii se deplasează spre stânga, în timp ce altele se deplasează spre dreapta\n"
+
+#. type: Plain text
+#: ../man/top.1:2793
+#, no-wrap
+msgid " eventually all lines will Switcheroo, and move right\n"
+msgstr " în cele din urmă, toate liniile se vor schimba și se vor muta la dreapta\n"
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2795
+#, no-wrap
+msgid "9. BUGS"
+msgstr "9. ERORI"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2800
+msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE .>"
+msgstr "Trimiteți rapoartele de eroare la E<.UR procps@freelists.org> E<.UE .>"
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2802
+#, no-wrap
+msgid "10. SEE Also"
+msgstr "10. CONSULTAȚI ȘI"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2810
+msgid "B<free>(1), B<ps>(1), B<uptime>(1), B<atop>(1), B<slabtop>(1), B<vmstat>(8), B<w>(1)"
+msgstr "B<free>(1), B<ps>(1), B<uptime>(1), B<atop>(1), B<slabtop>(1), B<vmstat>(8), B<w>(1)"
+
+#. type: TH
+#: ../man/procps.3:11
+#, no-wrap
+msgid "PROCPS"
+msgstr "PROCPS"
+
+#. type: TH
+#: ../man/procps.3:11 ../man/procps_misc.3:11 ../man/procps_pids.3:11
+#, no-wrap
+msgid "August 2022"
+msgstr "august 2022"
+
+#. type: TH
+#: ../man/procps.3:11 ../man/procps_misc.3:11 ../man/procps_pids.3:11
+#, no-wrap
+msgid "libproc2"
+msgstr "libproc2"
+
+#. type: Plain text
+#: ../man/procps.3:17
+msgid "procps - API to access system level information in the /proc filesystem"
+msgstr "procps - API (interfață de program) pentru a accesa informaÈ›ii la nivel de sistem din sistemul de fiÈ™iere „/procâ€"
+
+#. type: Plain text
+#: ../man/procps.3:22
+msgid "Five distinct interfaces are represented in this synopsis and named after the files they access in the /proc pseudo filesystem: B<diskstats>, B<meminfo>, B<slabinfo>, B<stat> and B<vmstat>."
+msgstr "Cinci interfeÈ›e distincte sunt reprezentate în acest rezumat È™i numite după fiÈ™ierele pe care le accesează în pseudosistemul de fiÈ™iere „/procâ€: B<diskstats>, B<meminfo>, B<slabinfo>, B<stat> È™i B<vmstat>."
+
+#. type: Plain text
+#: ../man/procps.3:26
+#, no-wrap
+msgid "#include E<lt>libproc2/B<named_interface>.hE<gt>\n"
+msgstr "#include E<lt>libproc2/B<interfața_numită>.hE<gt>\n"
+
+#. type: Plain text
+#: ../man/procps.3:30
+#, no-wrap
+msgid ""
+"intB< procps_new > (struct info **I<info>);\n"
+"intB< procps_ref > (struct info *I<info>);\n"
+"intB< procps_unref> (struct info **I<info>);\n"
+msgstr ""
+"intB< procps_new > (struct info **I<info>);\n"
+"intB< procps_ref > (struct info *I<info>);\n"
+"intB< procps_unref> (struct info **I<info>);\n"
+
+#. type: Plain text
+#: ../man/procps.3:35
+#, no-wrap
+msgid ""
+"struct result *B<procps_get> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<name>, ] B<diskstats> api only\n"
+" enum item I<item>);\n"
+msgstr ""
+"struct result *B<procps_get> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<name>, ] doar interfața programului B<diskstats>\n"
+" enum item I<item>);\n"
+
+#. type: Plain text
+#: ../man/procps.3:41
+#, no-wrap
+msgid ""
+"struct stack *B<procps_select> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<name>, ] B<diskstats> api only\n"
+" enum item *I<items>,\n"
+" int I<numitems>);\n"
+msgstr ""
+"struct stack *B<procps_select> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<name>, ] doar interfața programului B<diskstats>\n"
+" enum item *I<items>,\n"
+" int I<numitems>);\n"
+
+#. type: Plain text
+#: ../man/procps.3:47
+#, no-wrap
+msgid ""
+"struct reaped *B<procps_reap> (\n"
+" struct info *I<info>,\n"
+"[ enum reap_type I<what>, ] B<stat> api only\n"
+" enum item *I<items>,\n"
+" int I<numitems>);\n"
+msgstr ""
+"struct reaped *B<procps_reap> (\n"
+" struct info *I<info>,\n"
+"[ enum reap_type I<what>, ] doar interfața programului B<stat>\n"
+" enum item *I<items>,\n"
+" int I<numitems>);\n"
+
+#. type: Plain text
+#: ../man/procps.3:54
+#, no-wrap
+msgid ""
+"struct stack **B<procps_sort> (\n"
+" struct info *I<info>,\n"
+" struct stack *I<stacks>[],\n"
+" int I<numstacked>,\n"
+" enum item I<sortitem>,\n"
+" enum sort_order I<order>);\n"
+msgstr ""
+"struct stack **B<procps_sort> (\n"
+" struct info *I<info>,\n"
+" struct stack *I<stacks>[],\n"
+" int I<numstacked>,\n"
+" enum item I<sortitem>,\n"
+" enum sort_order I<order>);\n"
+
+#. type: Plain text
+#: ../man/procps.3:61
+msgid "The above functions and structures are generic but the specific B<named_interface> would also be part of any identifiers. For example, `procps_new' would actually be `procps_B<meminfo>_new' and `info' would really be `B<diskstats>_info', etc."
+msgstr "FuncÈ›iile È™i structurile de mai sus sunt generice, dar specificaÈ›ia B<interfaÈ›a_numită> ar fi, de asemenea, parte a oricăror identificatori. De exemplu, „procps_new†ar fi de fapt „procps_B<meminfo>_new†și „info†ar fi cu adevărat „B<diskstats>_infoâ€, etc."
+
+#. type: Plain text
+#: ../man/procps.3:64
+msgid "The same B<named_interface> is used in each header file name with an appended `.h' suffix."
+msgstr "Același nume de B<interfața_numită> este folosit în fiecare nume de fișier antet cu un sufix `.h'."
+
+#. type: Plain text
+#: ../man/procps.3:66 ../man/procps_pids.3:60
+msgid "Link with I<-lproc2>."
+msgstr "Legătură cu I<-lproc2>."
+
+#. type: SS
+#: ../man/procps.3:68 ../man/procps_pids.3:62
+#, no-wrap
+msgid "Overview"
+msgstr "Prezentare generală"
+
+#. type: Plain text
+#: ../man/procps.3:74
+msgid "Central to these interfaces is a simple `result' structure reflecting an `item' plus its value (in a union with standard C language types as members). All `result' structures are automatically allocated and provided by the library."
+msgstr "Esențial pentru aceste interfețe este o structură simplă de „rezultat†care reflectă un „element†plus valoarea acestuia (într-o uniune cu tipuri de limbaj C standard ca membri). Toate structurile „rezultat†sunt alocate și furnizate automat de bibliotecă."
+
+#. type: Plain text
+#: ../man/procps.3:80 ../man/procps_pids.3:74
+msgid "By specifying an array of `items', these structures can be organized as a `stack', potentially yielding many results with a single function call. Thus, a `stack' can be viewed as a variable length record whose content and order is determined solely by the user."
+msgstr "Prin specificarea unei matrice de „elementeâ€, aceste structuri pot fi organizate ca o „stivăâ€, cu potenÈ›ialul de-a produce multe rezultate cu un singur apel către funcÈ›ie. Astfel, o „stivă†poate fi văzută ca o înregistrare cu lungime variabilă al cărei conÈ›inut È™i ordine sunt determinate exclusiv de utilizator."
+
+#. type: Plain text
+#: ../man/procps.3:85
+msgid "As part of each interface there are two unique enumerators. The `noop' and `extra' items exist to hold user values. They are never set by the library, but the `extra' result will be zeroed with each library interaction."
+msgstr "Ca parte a fiecărei interfețe există doi enumeratori unici. Elementele „noop†și „extra†există pentru a păstra valorile utilizatorului. Ele nu sunt niciodată definite de bibliotecă, dar rezultatul „extra†va fi redus la zero cu fiecare interacțiune cu bibliotecă."
+
+#. type: Plain text
+#: ../man/procps.3:91
+msgid "The B<named_interface> header file will be an essential document during user program development. There you will find available items, their return type (the `result' struct member name) and the source for such values. Additional enumerators and structures are also documented there."
+msgstr "Documentul de bază în dezvoltarea unui program de utilizator va fi fișierul antet B<interfața_numită>. Acolo veți găsi elementele disponibile, tipul pe care acestea îl returnează (numele membrului structurii „rezultat)†și sursa acestor valori. Acolo sunt de asemenea documentați enumeratori și structuri suplimentare."
+
+#. type: SS
+#: ../man/procps.3:92 ../man/procps_pids.3:86
+#, no-wrap
+msgid "Usage"
+msgstr "Utilizare"
+
+#. type: Plain text
+#: ../man/procps.3:95
+msgid "The following would be a typical sequence of calls to these interfaces."
+msgstr "Următoarele linii, ar fi o secvență tipică de apeluri la aceste interfețe."
+
+#. type: Plain text
+#: ../man/procps.3:100
+#, no-wrap
+msgid ""
+"1. B<procps_new()>\n"
+"2. B<procps_get()>, B<procps_select()> or B<procps_reap()>\n"
+"3. B<procps_unref()>\n"
+msgstr ""
+"1. B<procps_new()>\n"
+"2. B<procps_get()>, B<procps_select()> sau B<procps_reap()>\n"
+"3. B<procps_unref()>\n"
+
+#. type: Plain text
+#: ../man/procps.3:106
+msgid "The B<get> function is used to retrieve a `result' structure for a single `item'. Alternatively, a B<GET> macro is available when only the return value is of interest."
+msgstr "FuncÈ›ia B<get> este folosită pentru a prelua o structură „rezultat†pentru un singur „elementâ€. Alternativ, o macrocomandă B<GET> este disponibilă atunci când doar valoarea returnată este de interes."
+
+#. type: Plain text
+#: ../man/procps.3:109
+msgid "The B<select> function can retrieve multiple `result' structures in a single `stack'."
+msgstr "FuncÈ›ia B<select> poate prelua mai multe structuri „rezultat†într-o singură „stivăâ€."
+
+#. type: Plain text
+#: ../man/procps.3:115
+msgid "For unpredictable variable outcomes, the B<diskstats>, B<slabinfo> and B<stat> interfaces export a B<reap> function. It is used to retrieve multiple `stacks' each containing multiple `result' structures. Optionally, a user may choose to B<sort> those results."
+msgstr "Pentru rezultate variabile imprevizibile, interfeÈ›ele B<diskstats>, B<slabinfo> È™i B<stat> exportă o funcÈ›ie B<reap>. Este folosită pentru a prelua mai multe „stive†fiecare conÈ›inând mai multe structuri „rezultatâ€. OpÈ›ional, un utilizator poate alege să B<sorteze> acele rezultate."
+
+#. type: Plain text
+#: ../man/procps.3:122 ../man/procps_pids.3:114
+msgid "To exploit any `stack', and access individual `result' structures, a I<relative_enum> is required as shown in the B<VAL> macro defined in the header file. Such values could be hard coded as: 0 through numitems-1. However, this need is typically satisfied by creating your own enumerators corresponding to the order of the `items' array."
+msgstr "Pentru a exploata orice „stivă†și pentru a accesa structuri „rezultat†individuale, este necesar un I<relative_enum>, aÈ™a cum se arată în macrocomanda B<VAL> definită în fiÈ™ierul antet. Astfel de valori ar putea fi codificate ca: de la 0 la numitems-1. Cu toate acestea, această nevoie este de obicei satisfăcută prin crearea propriilor enumeratori corespunzători ordinii matricei „elementeâ€."
+
+#. type: SS
+#: ../man/procps.3:123 ../man/procps_pids.3:115
+#, no-wrap
+msgid "Caveats"
+msgstr "Avertismente"
+
+#. type: Plain text
+#: ../man/procps.3:126
+msgid "The B<new>, B<ref>, B<unref>, B<get> and B<select> functions are available in all five interfaces."
+msgstr "Funcțiile B<new>, B<ref>, B<unref>, B<get> și B<select> sunt disponibile în toate cele cinci interfețe."
+
+#. type: Plain text
+#: ../man/procps.3:131 ../man/procps_pids.3:127
+msgid "For the B<new> and B<unref> functions, the address of an I<info> struct pointer must be supplied. With B<new> it must have been initialized to NULL. With B<unref> it will be reset to NULL if the reference count reaches zero."
+msgstr "Pentru funcțiile B<new> și B<unref>, trebuie furnizată adresa unui indicator de structură I<info>. Cu B<new>, acesta trebuie să fi fost inițializat la NULL. Cu B<unref> va fi reinițializat la NULL dacă numărul de referințe ajunge la zero."
+
+#. type: Plain text
+#: ../man/procps.3:135
+msgid "In the case of the B<diskstats> interface, a I<name> parameter on the B<get> and B<select> functions identifies a disk or partition name"
+msgstr "În cazul interfeței B<diskstats>, un parametru I<name> în funcțiile B<get> și B<select> identifică un nume de disc sau partiție"
+
+#. type: Plain text
+#: ../man/procps.3:139
+msgid "For the B<stat> interface, a I<what> parameter on the B<reap> function identifies whether data for just CPUs or both CPUs and NUMA nodes is to be gathered."
+msgstr "Pentru interfața B<stat>, un parametru I<what> în funcția B<reap> identifică dacă trebuie adunate date doar pentru CPU-uri sau atât pentru CPU-uri cât și pentru nodurile NUMA."
+
+#. type: Plain text
+#: ../man/procps.3:143
+msgid "When using the B<sort> function, the parameters I<stacks> and I<numstacked> would normally be those returned in the `reaped' structure."
+msgstr "Când se utilizează funcÈ›ia B<sort>, parametrii I<staks> È™i I<numstacked> ar fi în mod normal cei returnaÈ›i în structura „reapedâ€."
+
+#. type: SH
+#: ../man/procps.3:144 ../man/procps_misc.3:127 ../man/procps_pids.3:148
+#, no-wrap
+msgid "RETURN VALUE"
+msgstr "VALOARE RETURNATÄ‚"
+
+#. type: SS
+#: ../man/procps.3:145 ../man/procps_pids.3:149
+#, no-wrap
+msgid "Functions Returning an `int'"
+msgstr "Funcții care returnează un „int†(număr întreg)"
+
+#. type: Plain text
+#: ../man/procps.3:148 ../man/procps_misc.3:131 ../man/procps_pids.3:152
+msgid "An error will be indicated by a negative number that is always the inverse of some well known errno.h value."
+msgstr "O eroare va fi indicată printr-un număr negativ care este întotdeauna inversul unei valori binecunoscute a errno.h."
+
+#. type: Plain text
+#: ../man/procps.3:152 ../man/procps_pids.3:156
+msgid "Success is indicated by a zero return value. However, the B<ref> and B<unref> functions return the current I<info> structure reference count."
+msgstr "Succesul este indicat de o valoare de returnare zero. Cu toate acestea, funcțiile B<ref> și B<unref> returnează numărul de referințe curent al structurii I<info>."
+
+#. type: SS
+#: ../man/procps.3:153 ../man/procps_misc.3:132 ../man/procps_pids.3:157
+#, no-wrap
+msgid "Functions Returning an `address'"
+msgstr "FuncÈ›ii care returnează o „adresăâ€"
+
+#. type: Plain text
+#: ../man/procps.3:156 ../man/procps_misc.3:135 ../man/procps_pids.3:160
+msgid "An error will be indicated by a NULL return pointer with the reason found in the formal errno value."
+msgstr "O eroare va fi indicată printr-un indicator de returnare NULL cu motivul găsit în valoarea formală errno (număr eroare)."
+
+#. type: Plain text
+#: ../man/procps.3:158
+msgid "Success is indicated by a pointer to the named structure."
+msgstr "Succesul este indicat de un indicator către structura numită."
+
+#. type: SH
+#: ../man/procps.3:159 ../man/procps_pids.3:165
+#, no-wrap
+msgid "DEBUGGING"
+msgstr "DEPANAREA"
+
+#. type: Plain text
+#: ../man/procps.3:165
+msgid "To aid in program development, there is a provision that can help ensure `result' member references agree with library expectations. It assumes that a supplied macro in the header file is used to access the `result' value."
+msgstr "Pentru a ajuta la dezvoltarea programului, este prevăzută o facilitate care poate ajuta la asigurarea faptului că referinÈ›ele la membrii „rezultate†sunt în concordanță cu aÈ™teptările bibliotecii. Această facilitate presupune că macrocomanda furnizată în fiÈ™ierul antet va fi utilizată pentru a accesa valoarea „rezultatâ€."
+
+#. type: Plain text
+#: ../man/procps.3:168 ../man/procps_pids.3:185
+msgid "This feature can be activated through either of the following methods and any discrepancies will be written to B<stderr>."
+msgstr "Această caracteristică poate fi activată prin oricare dintre următoarele metode și orice discrepanțe vor fi scrise la B<ieșirea standard de eroare>."
+
+#. type: IP
+#: ../man/procps.3:169 ../man/procps_pids.3:186
+#, no-wrap
+msgid "1)"
+msgstr "1)"
+
+#. type: Plain text
+#: ../man/procps.3:172
+msgid "Add CFLAGS='-DXTRA_PROCPS_DEBUG' to any other ./configure options employed."
+msgstr "Adaugă CFLAGS='-DXTRA_PROCPS_DEBUG' la orice alte opțiuni ./configure utilizate."
+
+#. type: IP
+#: ../man/procps.3:173 ../man/procps_pids.3:190
+#, no-wrap
+msgid "2)"
+msgstr "2)"
+
+#. type: Plain text
+#: ../man/procps.3:176
+msgid "Add #include E<lt>procps/xtra-procps-debug.hE<gt> to any program I<after> the named interface includes."
+msgstr "Adaugă #include E<lt>procps/xtra-procps-debug.hE<gt> la orice program I<după> comenzile include ale interfețelor numite."
+
+#. type: Plain text
+#: ../man/procps.3:181 ../man/procps_pids.3:198
+msgid "This verification feature incurs substantial overhead. Therefore, it is important that it I<not> be activated for a production/release build."
+msgstr "Această caracteristică de verificare implică o suprasarcină substanțială. Prin urmare, este important ca aceasta să I<nu> fie activată pentru o versiune de producție/lansare."
+
+#
+#
+#
+#. type: Plain text
+#: ../man/procps.3:185
+msgid "B<procps_misc>(3), B<procps_pids>(3), B<proc>(5)."
+msgstr "B<procps_misc>(3), B<procps_pids>(3), B<proc>(5)."
+
+#. type: TH
+#: ../man/procps_misc.3:11
+#, no-wrap
+msgid "PROCPS_MISC"
+msgstr "PROCPS_MISC"
+
+#. type: Plain text
+#: ../man/procps_misc.3:17
+msgid "procps_misc - API for miscellaneous information in the /proc filesystem"
+msgstr "procps_misc - API (interfață de program) pentru a accesa diverse informaÈ›ii din sistemul de fiÈ™iere „/procâ€"
+
+#. type: Plain text
+#: ../man/procps_misc.3:20
+#, no-wrap
+msgid "B<#include E<lt>libproc2/misc.hE<gt>>\n"
+msgstr "B<#include E<lt>libproc2/misc.hE<gt>>\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:22
+#, no-wrap
+msgid "Platform Particulars\n"
+msgstr "Detalii platformă\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:28
+#, no-wrap
+msgid ""
+"long B<procps_cpu_count> (void);\n"
+"long B<procps_hertz_get> (void);\n"
+"unsigned int B<procps_pid_length> (void);\n"
+"int B<procps_linux_version> (void);\n"
+msgstr ""
+"long B<procps_cpu_count> (void);\n"
+"long B<procps_hertz_get> (void);\n"
+"unsigned int B<procps_pid_length> (void);\n"
+"int B<procps_linux_version> (void);\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:31
+#, no-wrap
+msgid "Runtime Particulars\n"
+msgstr "Detalii privind timpul de execuție\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:37
+#, no-wrap
+msgid ""
+"int B< procps_loadavg> (double *I<av1>, double *I<av5>, double *I<av15>);\n"
+"int B< procps_uptime> (double *I<uptime_secs>, double *I<idle_secs>);\n"
+"char *B<procps_uptime_sprint> (void);\n"
+"char *B<procps_uptime_sprint_short> (void);\n"
+msgstr ""
+"int B< procps_loadavg> (double *I<av1>, double *I<av5>, double *I<av15>);\n"
+"int B< procps_uptime> (double *I<uptime_secs>, double *I<idle_secs>);\n"
+"char *B<procps_uptime_sprint> (void);\n"
+"char *B<procps_uptime_sprint_short> (void);\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:40
+#, no-wrap
+msgid "Namespace Particulars\n"
+msgstr "Detalii despre spațiul de nume\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:45
+#, no-wrap
+msgid ""
+"int B< procps_ns_get_id> (const char *I<name>);\n"
+"const charB< *procps_ns_get_name> (int I<id>);\n"
+"int B< procps_ns_read_pid> (int I<pid>, struct procps_ns *I<nsp>);\n"
+msgstr ""
+"int B< procps_ns_get_id> (const char *I<name>);\n"
+"const charB< *procps_ns_get_name> (int I<id>);\n"
+"int B< procps_ns_read_pid> (int I<pid>, struct procps_ns *I<nsp>);\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:48
+#, no-wrap
+msgid "Link with I<-lproc2>.\n"
+msgstr "Legătură cu I<-lproc2>.\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:54
+msgid "B<procps_cpu_count>() returns the number of CPUs that are currently online as B<sysconf(>I<_SC_NPROCESSORS_ONLY>B<)> or an assumed I<1>."
+msgstr "B<procps_cpu_count>() returnează numărul de procesoare care sunt în prezent active ca B<sysconf(>I<_SC_NPROCESSORS_ONLY>B<)> sau un presupus I<1>."
+
+#. type: Plain text
+#: ../man/procps_misc.3:60
+msgid "B<procps_hertz_get>() returns the number of clock ticks per second as B<sysconf(>I<_SC_CLK_TCK>B<)> or an assumed I<100>. Dividing tics by this value yields seconds."
+msgstr "B<procps_hertz_get>() returnează numărul de cicluri de ceas pe secundă ca B<sysconf(>I<_SC_CLK_TCK>B<)> sau se presupunu o valoare de I<100>. Împărțirea ciclurilor la această valoare generează secunde."
+
+#. type: Plain text
+#: ../man/procps_misc.3:65
+msgid "B<procps_pid_length>() returns the maximum string length for a PID on the system. For example, if the largest possible PID value on was 123, then the length would be 3. If the file I</proc/sys/kernel/pid_max> is unreadable, the value is assumed to be I<5>."
+msgstr "B<procps_pid_length>() returnează lungimea maximă a șirului pentru un PID activ al sistemului. De exemplu, dacă cea mai mare valoare posibilă de PID activ a fost 123, atunci lungimea ar fi 3. Dacă fișierul I</proc/sys/kernel/pid_max> nu poate fi citit, se presupune că valoarea este I<5>."
+
+#. type: Plain text
+#: ../man/procps_misc.3:74
+msgid "B<procps_linux_version>() returns the current Linux version as an encoded integer. On non-Linux systems that have an emulated proc filesystem this function returns the version of the Linux emulation instead. The version consists of three positive integers representing the major, minor and patch levels. The following macros are provided for encoding a given Linux version or separating out the components of the current version."
+msgstr "B<procps_linux_version>() returnează versiunea curentă a nucleului Linux ca un întreg codificat. Pe sistemele non-Linux care au un sistem de fișiere proc emulat, această funcție returnează versiunea emulării Linux. Versiunea constă din trei numere întregi pozitive reprezentând nivelurile major, minor și plasture(patch). Următoarele macrocomenzi sunt furnizate pentru a codifica o anumită versiune Linux sau pentru a separa componentele versiunii curente."
+
+#. type: Plain text
+#: ../man/procps_misc.3:77
+msgid "LINUX_VERSION(\\ major\\ ,\\ minor\\ ,\\ patch\\ )"
+msgstr "LINUX_VERSION(\\ major\\ ,\\ minor\\ ,\\ patch\\ )"
+
+#. type: Plain text
+#: ../man/procps_misc.3:79
+msgid "LINUX_VERSION_MAJOR(\\ ver\\ )"
+msgstr "LINUX_VERSION_MAJOR(\\ ver\\ )"
+
+#. type: Plain text
+#: ../man/procps_misc.3:81
+msgid "LINUX_VERSION_MINOR(\\ ver\\ )"
+msgstr "LINUX_VERSION_MINOR(\\ ver\\ )"
+
+#. type: Plain text
+#: ../man/procps_misc.3:83
+msgid "LINUX_VERSION_PATCH(\\ ver\\ )"
+msgstr "LINUX_VERSION_PATCH(\\ ver\\ )"
+
+#. type: Plain text
+#: ../man/procps_misc.3:88
+msgid "B<procps_loadavg>() fetches the system load average and puts the 1, 5 and 15 minute averages into location(s) specified by any pointer which is not I<NULL>."
+msgstr "B<procps_loadavg>() preia media de încărcare a sistemului și plasează mediile de 1, 5 și 15 minute în locațiile specificate de orice indicator care nu este I<NULL>."
+
+#. type: Plain text
+#: ../man/procps_misc.3:93
+msgid "B<procps_uptime>() returns uptime and/or idle seconds into location(s) specified by any pointer which is not I<NULL>. The B<sprint> varieties return a human-readable string in one of two forms."
+msgstr "B<procps_uptime>() returnează timpul de funcționare și/sau secundele de inactivitate în locațiile specificate de orice indicator care nu este I<NULL>. Utilizarea formatului B<sprint> returnează un șir care poate fi citit de om în una dintre cele două forme."
+
+#. type: Plain text
+#: ../man/procps_misc.3:96
+msgid "HH:MM:SS up HH:MM, # users, load average: 1, 5, 15 MM averages"
+msgstr "HH:MM:SS up HH:MM, # users, load average: 1, 5, 15 MM averages"
+
+#. type: Plain text
+#: ../man/procps_misc.3:98
+msgid "up HH, MM"
+msgstr "up HH, MM"
+
+#. type: Plain text
+#: ../man/procps_misc.3:102
+msgid "B<procps_ns_get_id>() returns the integer id (enum namespace_type) of the namespace for the given namespace I<name>."
+msgstr "B<procps_ns_get_id>() returnează id-ul întreg (enum namespace_type) al spațiului de nume pentru spațiul de nume dat I<nume>."
+
+#. type: Plain text
+#: ../man/procps_misc.3:105
+msgid "B<procps_ns_get_name>() returns the name of the namespace for the given I<id> (enum namespace_type)."
+msgstr "B<procps_ns_get_name>() returnează numele spațiului de nume pentru I<id>-ul dat (enum namespace_type)."
+
+#. type: Plain text
+#: ../man/procps_misc.3:110
+msgid "B<procps_ns_read_pid>() returns the inodes for the namespaces of the given process in the procps_ns structure pointed to by I<nsp>. Those inodes will appear in the order proscribed by enum namespace_type."
+msgstr "B<procps_ns_read_pid>() returnează nodul-i pentru spațiile de nume ale procesului dat în structura procps_ns indicată de I<nsp>. Acele noduri-i vor apărea în ordinea prescrisă de enumerarea namespace_type."
+
+#. type: Plain text
+#: ../man/procps_misc.3:123
+#, no-wrap
+msgid ""
+"enum namespace_type {\n"
+" PROCPS_NS_CGROUP,\n"
+" PROCPS_NS_IPC,\n"
+" PROCPS_NS_MNT,\n"
+" PROCPS_NS_NET,\n"
+" PROCPS_NS_PID,\n"
+" PROCPS_NS_TIME,\n"
+" PROCPS_NS_USER,\n"
+" PROCPS_NS_UTS\n"
+"};\n"
+msgstr ""
+"enum namespace_type {\n"
+" PROCPS_NS_CGROUP,\n"
+" PROCPS_NS_IPC,\n"
+" PROCPS_NS_MNT,\n"
+" PROCPS_NS_NET,\n"
+" PROCPS_NS_PID,\n"
+" PROCPS_NS_TIME,\n"
+" PROCPS_NS_USER,\n"
+" PROCPS_NS_UTS\n"
+"};\n"
+
+#. type: SS
+#: ../man/procps_misc.3:128
+#, no-wrap
+msgid "Functions Returning an `int' or `long'"
+msgstr "Funcții care returnează un „int†(număr întreg) sau un „long†(număr întreg lung)"
+
+#. type: TP
+#: ../man/procps_misc.3:137
+#, no-wrap
+msgid "I</proc/loadavg>"
+msgstr "I</proc/loadavg>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:140
+msgid "The raw values for load average."
+msgstr "Valorile brute pentru media de încărcare."
+
+#. type: TP
+#: ../man/procps_misc.3:140
+#, no-wrap
+msgid "I</proc/sys/kernel/osrelease>"
+msgstr "I</proc/sys/kernel/osrelease>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:143
+msgid "Contains the release version of the Linux kernel or proc filesystem."
+msgstr "Conține versiunea de lansare a nucleului Linux sau a sistemului de fișiere proc."
+
+#. type: TP
+#: ../man/procps_misc.3:143
+#, no-wrap
+msgid "I</proc/sys/kernel/pid_max>"
+msgstr "I</proc/sys/kernel/pid_max>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:146
+msgid "Contains the value at which PIDs wrap around, one greater than the maximum PID value."
+msgstr "Conține valoarea la care se încadrează PID-urile, cu una mai mare decât valoarea PID maximă."
+
+#. type: TP
+#: ../man/procps_misc.3:146
+#, no-wrap
+msgid "I</proc/uptime>"
+msgstr "I</proc/uptime>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:149
+msgid "The raw values for uptime and idle time."
+msgstr "Valorile brute pentru timpul de funcționare și timpul de inactivitate."
+
+#. type: TP
+#: ../man/procps_misc.3:149
+#, no-wrap
+msgid "I</proc/E<lt>PIDE<gt>/ns>"
+msgstr "I</proc/E<lt>PIDE<gt>/ns>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:152
+msgid "contains the set of namespaces for a particular B<PID>."
+msgstr "conține setul de spații de nume pentru un anumit B<PID>."
+
+#. type: Plain text
+#: ../man/procps_misc.3:156
+msgid "B<procps>(3), B<procps_pids>(3), B<proc>(5)."
+msgstr "B<procps>(3), B<procps_pids>(3), B<proc>(5)."
+
+#. type: TH
+#: ../man/procps_pids.3:11
+#, no-wrap
+msgid "PROCPS_PIDS"
+msgstr "PROCPS_PIDS"
+
+#. type: Plain text
+#: ../man/procps_pids.3:17
+msgid "procps_pids - API to access process information in the /proc filesystem"
+msgstr "procps_pids - API (interfață de program) pentru a accesa informaÈ›ii la nivel de sistem din sistemul de fiÈ™iere „/procâ€"
+
+#. type: Plain text
+#: ../man/procps_pids.3:21
+#, no-wrap
+msgid "#include E<lt>libproc2/pids.hE<gt>\n"
+msgstr "#include E<lt>libproc2/pids.hE<gt>\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:25
+#, no-wrap
+msgid ""
+"intB< procps_pids_new > (struct pids_info **I<info>, enum pids_item *I<items>, int I<numitems>);\n"
+"intB< procps_pids_ref > (struct pids_info *I<info>);\n"
+"intB< procps_pids_unref> (struct pids_info **I<info>);\n"
+msgstr ""
+"intB< procps_pids_new > (struct pids_info **I<info>, enum pids_item *I<items>, int I<numitems>);\n"
+"intB< procps_pids_ref > (struct pids_info *I<info>);\n"
+"intB< procps_pids_unref> (struct pids_info **I<info>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:30
+#, no-wrap
+msgid ""
+"struct pids_stack *B<procps_pids_get> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<which>);\n"
+msgstr ""
+"struct pids_stack *B<procps_pids_get> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<which>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:34
+#, no-wrap
+msgid ""
+"struct pids_fetch *B<procps_pids_reap> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<which>);\n"
+msgstr ""
+"struct pids_fetch *B<procps_pids_reap> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<which>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:40
+#, no-wrap
+msgid ""
+"struct pids_fetch *B<procps_pids_select> (\n"
+" struct pids_info *I<info>,\n"
+" unsigned *I<these>,\n"
+" int I<numthese>,\n"
+" enum pids_select_type I<which>);\n"
+msgstr ""
+"struct pids_fetch *B<procps_pids_select> (\n"
+" struct pids_info *I<info>,\n"
+" unsigned *I<these>,\n"
+" int I<numthese>,\n"
+" enum pids_select_type I<which>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:47
+#, no-wrap
+msgid ""
+"struct pids_stack **B<procps_pids_sort> (\n"
+" struct pids_info *I<info>,\n"
+" struct pids_stack *I<stacks>[],\n"
+" int I<numstacked>,\n"
+" enum pids_item I<sortitem>,\n"
+" enum pids_sort_order I<order>);\n"
+msgstr ""
+"struct pids_stack **B<procps_pids_sort> (\n"
+" struct pids_info *I<info>,\n"
+" struct pids_stack *I<stacks>[],\n"
+" int I<numstacked>,\n"
+" enum pids_item I<sortitem>,\n"
+" enum pids_sort_order I<order>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:52
+#, no-wrap
+msgid ""
+"int B<procps_pids_reset> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_item *I<newitems>,\n"
+" int I<newnumitems>);\n"
+msgstr ""
+"int B<procps_pids_reset> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_item *I<newitems>,\n"
+" int I<newnumitems>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:56
+#, no-wrap
+msgid ""
+"struct pids_stack *B<fatal_proc_unmounted> (\n"
+" struct pids_info *I<info>,\n"
+" int I<return_self>);\n"
+msgstr ""
+"struct pids_stack *B<fatal_proc_unmounted> (\n"
+" struct pids_info *I<info>,\n"
+" int I<return_self>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:68
+msgid "Central to this interface is a simple `result' structure reflecting an `item' plus its value (in a union with standard C language types as members). All `result' structures are automatically allocated and provided by the library."
+msgstr "Esențial pentru această interfață este o structură simplă de „rezultat†care reflectă un „element†plus valoarea acestuia (într-o uniune cu tipuri de limbaj C standard ca membri). Toate structurile „rezultat†sunt alocate și furnizate automat de bibliotecă."
+
+#. type: Plain text
+#: ../man/procps_pids.3:79
+msgid "As part of this interface there are two unique enumerators. The `noop' and `extra' items exist to hold user values. They are never set by the library, but the `extra' result will be zeroed with each library interaction."
+msgstr "Ca parte a acestei interfețe există doi enumeratori unici. Elementele „noop†și „extra†există pentru a păstra valorile utilizatorului. Ele nu sunt niciodată definite de bibliotecă, dar rezultatul „extra†va fi redus la zero cu fiecare interacțiune cu bibliotecă."
+
+#. type: Plain text
+#: ../man/procps_pids.3:85
+msgid "The pids.h file will be an essential document during user program development. There you will find available items, their return type (the `result' struct member name) and the source for such values. Additional enumerators and structures are also documented there."
+msgstr "Fișierul pids.h va fi un document esențial în timpul dezvoltării programului utilizatorului. Acolo veți găsi elementele disponibile, tipul lor de returnare (numele membrului structurii „rezultat)†și sursa acestor valori. Acolo sunt de asemenea documentate enumeratori și structuri suplimentare."
+
+#. type: Plain text
+#: ../man/procps_pids.3:89
+msgid "The following would be a typical sequence of calls to this interface."
+msgstr "Următoarele linii, ar fi o secvență tipică de apeluri la aceste interfețe."
+
+#. type: Plain text
+#: ../man/procps_pids.3:95
+#, no-wrap
+msgid ""
+"1. B<fatal_proc_unmounted()>\n"
+"2. B<procps_pids_new()>\n"
+"3. B<procps_pids_get()>, B<procps_pids_reap()> or B<procps_pids_select()>\n"
+"4. B<procps_pids_unref()>\n"
+msgstr ""
+"1. B<fatal_proc_unmounted()>\n"
+"2. B<procps_pids_new()>\n"
+"3. B<procps_pids_get()>, B<procps_pids_reap()> sau B<procps_pids_select()>\n"
+"4. B<procps_pids_unref()>\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:100
+msgid "The B<get> function is an iterator for successive PIDs/TIDs, returning those `items' previously identified via B<new> or B<reset>."
+msgstr "Funcția B<get> este un iterator pentru PID-uri/TID-uri succesive, returnând acele „articole†identificate anterior prin B<new> sau B<reset>."
+
+#. type: Plain text
+#: ../man/procps_pids.3:107
+msgid "Two functions support unpredictable variable outcomes. The B<reap> function gathers data for all processes while the B<select> function deals with specific PIDs or UIDs. Both can return multiple `stacks' each containing multiple `result' structures. Optionally, a user may choose to B<sort> such results"
+msgstr "Două funcÈ›ii asigură suport pentru rezultate variabile imprevizibile. FuncÈ›ia B<reap> adună date pentru toate procesele, în timp ce funcÈ›ia B<select> se ocupă de PID-uri sau UID-uri specifice. Ambele pot returna mai multe „stive†fiecare conÈ›inând mai multe structuri „rezultatâ€. OpÈ›ional, un utilizator poate alege să folosească B<sort> pentru a sorta astfel de rezultate"
+
+#. type: Plain text
+#: ../man/procps_pids.3:122
+msgid "The E<lt>pidsE<gt> API differs from others in that those items of interest must be provided at B<new> or B<reset> time, the latter being unique to this API. If either the I<items> or I<numitems> parameter is zero at B<new> time, then B<reset> becomes mandatory before issuing any other call."
+msgstr "Interfața de program E<lt>pidsE<gt> diferă de celelalte prin faptul că acele elemente de interes trebuie furnizate în timpul execuției B<new> sau B<reset>, acesta din urmă fiind unic pentru acest API. Dacă fie parametrul I<items>, fie I<numitems> este zero în timpul execuției B<new>, atunci B<reset> devine obligatoriu înainte de a lansa orice alt apel."
+
+#. type: Plain text
+#: ../man/procps_pids.3:130
+msgid "The B<get> and B<reap> functions use the I<which> parameter to specify whether just tasks or both tasks and threads are to be fetched."
+msgstr "Funcțiile B<get> și B<reap> folosesc parametrul I<which> pentru a specifica dacă trebuie preluate doar sarcinile sau atât sarcinile cât și firele de execuție."
+
+#. type: Plain text
+#: ../man/procps_pids.3:135
+msgid "The B<select> function requires an array of PIDs or UIDs as I<these> along with I<numthese> to identify which processes are to be fetched. This function then operates as a subset of B<reap>."
+msgstr "Funcția B<select> necesită o matrice de PID-uri sau UID-uri ca I<these> împreună cu I<numthese> pentru a identifica procesele care urmează să fie preluate. Această funcție funcționează apoi ca un subset al lui B<reap>."
+
+#. type: Plain text
+#: ../man/procps_pids.3:139
+msgid "When using the B<sort> function, the parameters I<stacks> and I<numstacked> would normally be those returned in the `pids_fetch' structure."
+msgstr "Când se utilizează funcÈ›ia B<sort>, parametrii I<stacks> È™i I<numstacked> ar fi în mod normal cei returnaÈ›i în structura „pids_fetchâ€."
+
+#. type: Plain text
+#: ../man/procps_pids.3:147
+msgid "Lastly, a B<fatal_proc_unmounted> function may be called before any other function to ensure that the /proc/ directory is mounted. As such, the I<info> parameter would be NULL and the I<return_self> parameter zero. If, however, some items are desired for the issuing program (a I<return_self> other than zero) then the B<new> call must precede it to identify the I<items> and obtain the required I<info> pointer."
+msgstr "În cele din urmă, o funcție B<fatal_proc_unmounted> poate fi apelată înaintea oricărei alte funcții pentru a se asigura că directorul „/proc/†este montat. Ca atare, parametrul I<info> va fi NULL și parametrul I<return_self> zero. Dacă, totuși, unele elemente sunt dorite pentru programul emitent (un I<return_self> altul decât zero), atunci apelul B<new> trebuie să îl precedă pentru a identifica I<items> și pentru a obține indicatorul I<info> necesar."
+
+#. type: Plain text
+#: ../man/procps_pids.3:164
+msgid "Success is indicated by a pointer to the named structure. However, if one survives the B<fatal_proc_unmounted> call, NULL is always returned when I<return_self> is zero."
+msgstr "Succesul este indicat de un indicator către structura numită. Cu toate acestea, dacă ceva supraviețuiește apelului B<fatal_proc_unmounted>, NULL este întotdeauna returnat atunci când I<return_self> este zero."
+
+#. type: Plain text
+#: ../man/procps_pids.3:168
+msgid "To aid in program development, there are two procps-ng provisions that can be exploited."
+msgstr "Pentru a ajuta la dezvoltarea programului, există două facilități procps-ng care pot fi exploatate."
+
+#. type: Plain text
+#: ../man/procps_pids.3:173
+msgid "The first is a supplied file named `libproc.supp' which may be useful when developing a I<multi-threaded> application. When used with the valgrind `--suppressions=' option, warnings associated with the procps library itself are avoided."
+msgstr "Prima este un fiÈ™ier furnizat numit „libproc.supp†care poate fi util atunci când se dezvoltă o aplicaÈ›ie I<cu multiple-fire de execuÈ›ie>. Când este utilizat cu opÈ›iunea valgrind „--suppressions=â€, avertismentele asociate cu biblioteca procps în sine sunt evitate."
+
+#. type: Plain text
+#: ../man/procps_pids.3:177
+msgid "Such warnings arise because the library handles heap based allocations in a thread-safe manner. A I<single-threaded> application will not receive those warnings."
+msgstr "Astfel de avertismente apar deoarece biblioteca gestionează alocările bazate pe „heap†într-o manieră sigură pentru fire. O aplicație I<cu un singur-fir de execuție> nu va primi aceste avertismente."
+
+#. type: Plain text
+#: ../man/procps_pids.3:182
+msgid "The second provision can help ensure `result' member references agree with library expectations. It assumes that a supplied macro in the header file is used to access the `result' value."
+msgstr "A doua facilitate poate ajuta să ne asigurăm că referinÈ›ele membrului „rezultat†sunt în acord cu aÈ™teptările bibliotecii. Se presupune că o macrocomandă furnizată în fiÈ™ierul antet este utilizată pentru a accesa valoarea „rezultatâ€."
+
+#. type: Plain text
+#: ../man/procps_pids.3:189
+msgid "Add CFLAGS='-DXTRA_PROCPS_DEBUG' to any other ./configure options your project may employ."
+msgstr "Adaugă CFLAGS='-DXTRA_PROCPS_DEBUG' la orice alte opțiuni ./configure pe care le poate folosi proiectul dvs."
+
+#. type: Plain text
+#: ../man/procps_pids.3:193
+msgid "Add #include E<lt>procps/xtra-procps-debug.hE<gt> to any program I<after> the #include E<lt>procps/pids.hE<gt>."
+msgstr "Adaugă #include E<lt>procps/xtra-procps-debug.hE<gt> la orice program I<după> linia #include E<lt>procps/pids.hE<gt>."
+
+#. type: SH
+#: ../man/procps_pids.3:199
+#, no-wrap
+msgid "ENVIRONMENT VARIABLE(S)"
+msgstr "VARIABILE DE MEDIU"
+
+#. type: Plain text
+#: ../man/procps_pids.3:206
+msgid "This will hide kernel threads which would otherwise be returned with a B<procps_pids_get>, B<procps_pids_select> or B<procps_pids_reap> call."
+msgstr "Acest lucru va ascunde firele de execuție ale nucleului care altfel ar fi returnate cu un apel B<procps_pids_get>, B<procps_pids_select> sau B<procps_pids_reap>."
+
+#
+#
+#
+#. type: Plain text
+#: ../man/procps_pids.3:210
+msgid "B<procps>(3), B<procps_misc>(3), B<proc>(5)."
+msgstr "B<procps>(3), B<procps_misc>(3), B<proc>(5)."
+
+#~ msgid "October 2011"
+#~ msgstr "octombrie 2011"
+
+#~ msgid "Use this option when all arguments prescribe a key to be set."
+#~ msgstr "Utilizați această opțiune atunci când toate argumentele prescriu o cheie care trebuie configurată."
+
+#~ msgid "Note that B<ps -aux> is distinct from B<ps\\ aux>. The POSIX and UNIX standards require that B<ps\\ -aux> print all processes owned by a user named I<x>, as well as printing all processes that would be selected by the B<-a> option. If the user named I<x> does not exist, this B<ps> may interpret the command as B<ps\\ aux> instead and print a warning. This behavior is intended to aid in transitioning old scripts and habits. It is fragile, subject to change, and thus should not be relied upon."
+#~ msgstr "Rețineți că B<«ps -aux»> este diferit de B<«ps\\ aux»>. Standardele POSIX și UNIX cer ca B<«ps\\ -aux»> să afișeze toate procesele deținute de un utilizator numit I<x>, precum și să afișeze toate procesele care ar fi selectate de opțiunea B<-a>. Dacă utilizatorul numit I<x> nu există, acest B<ps> poate interpreta comanda ca B<«ps\\ aux»> în schimb și afișează un avertisment. Acest comportament este destinat să ajute la tranziția de la vechile scripturi și obiceiuri de utilizare a B<ps>. Acest comportament este fragil, supus modificării și, prin urmare, nu ar trebui să vă bazați pe el."
+
+#~ msgid ".IP \"\" 2\n"
+#~ msgstr ".IP \"\" 2\n"
+
+#~ msgid "January 2023"
+#~ msgstr "ianuarie 2023"
+
+#~ msgid "As a default, Line 1 reflects \\*(MP, classified as:"
+#~ msgstr "În mod implicit, prima linie reflectă memoria fizică, clasificată ca:"
+
+#~ msgid " total, free, used and buff/cache\n"
+#~ msgstr " totală (total), liberă (free), utilizată (used) și tampon (buffer)/zonă de prestocare (cache)\n"
+
+#~ msgid " total, free, used and avail (which is \\*(MP)\n"
+#~ msgstr " totală (total), liberă (free), utilizată (used) și disponibilă (avail, ce reprezintă memoria fizică)\n"
+
+#~ msgid "2022-06-25"
+#~ msgstr "25.06.2022"
+
+#~ msgid "Total installed memory (MemTotal and SwapTotal in /proc/meminfo)"
+#~ msgstr "Memoria totală instalată (MemTotal și SwapTotal din /proc/meminfo)"
+
+#~ msgid "2021-05-18"
+#~ msgstr "18.05.2021"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Comenzi utilizator "
+
+#~ msgid "NAME "
+#~ msgstr "NUME "
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "REZUMAT "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "DESCRIERE "
+
+#~ msgid "OPTIONS "
+#~ msgstr "OPÈšIUNI "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "CONSULTAȚI ȘI "
+
+#~ msgid "2022-08-31"
+#~ msgstr "31.08.2022"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Comenzi utilizator "
+
+#~ msgid "NAME "
+#~ msgstr "NUME "
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "REZUMAT "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "DESCRIERE "
+
+#~ msgid "OPTIONS "
+#~ msgstr "OPÈšIUNI "
+
+#~ msgid "Defines the signal to send to each matched process. Either the numeric or the symbolic signal name can be used. (B<pkill> only.)"
+#~ msgstr "Definește semnalul care trebuie trimis fiecărui proces care s-a potrivit modelului dat. Se poate folosi fie numele de semnal numeric, fie cel simbolic. (Numai B<pkill>.)"
+
+#~ msgid "B<-q>, B<--queue >I<value> "
+#~ msgstr "B<-q>, B<--queue >I<valoare> "
+
+#~ msgid "Use B<sigqueue(3)> rather than B<kill(2)> and the value argument is used to specify an integer to be sent with the signal. If the receiving process has installed a handler for this signal using the SA_SIGINFO flag to B<sigaction(2)> , then it can obtain this data via the si_value field of the siginfo_t structure."
+#~ msgstr "Utilizează B<sigqueue(3)> mai degrabă decât B<kill(2)> și argumentul valoare este folosit pentru a specifica un număr întreg care trebuie trimis împreună cu semnalul. Dacă procesul de recepție a instalat un operator pentru a gestiona acest semnal utilizând indicatorul SA_SIGINFO la B<sigaction(2)> , atunci poate obține aceste date prin câmpul si_value al structurii siginfo_t."
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "EXAMPLES "
+#~ msgstr "EXEMPLE "
+
+#~ msgid "NOTES "
+#~ msgstr "NOTE "
+
+#~ msgid "BUGS "
+#~ msgstr "ERORI "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "CONSULTAȚI ȘI "
+
+#~ msgid "AUTHOR "
+#~ msgstr "AUTOR "
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "RAPORTAREA ERORILOR "
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Trimiteți rapoartele de eroare la E<.UR procps@freelists.org> E<.UE> "
+
+#~ msgid "2020-12-22"
+#~ msgstr "22.12.2020"
+
+#~ msgid "User Commands "
+#~ msgstr "Comenzi utilizator "
+
+#~ msgid "NAME "
+#~ msgstr "NUME "
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "REZUMAT "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "DESCRIERE "
+
+#~ msgid "OPTIONS "
+#~ msgstr "OPÈšIUNI "
+
+#~ msgid "-s"
+#~ msgstr "-s"
+
+#~ msgid "-c"
+#~ msgstr "-c"
+
+#~ msgid "-q"
+#~ msgstr "-q"
+
+#~ msgid "-w"
+#~ msgstr "-w"
+
+#~ msgid "-x"
+#~ msgstr "-x"
+
+#~ msgid "EXIT STATUS "
+#~ msgstr "STARE DE IEȘIRE "
+
+#~ msgid "BUGS "
+#~ msgstr "ERORI "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "CONSULTAȚI ȘI "
+
+#~ msgid "AUTHOR "
+#~ msgstr "AUTOR "
+
+#~ msgid "Jaromir Capik E<lt>jcapik@redhat.comE<gt>"
+#~ msgstr "Jaromir Capik E<lt>jcapik@redhat.comE<gt>"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Comenzi utilizator "
+
+#~ msgid "NAME "
+#~ msgstr "NUME "
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "REZUMAT "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "DESCRIERE "
+
+#~ msgid "OPTIONS "
+#~ msgstr "OPÈšIUNI "
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "Display version information and exit. "
+#~ msgstr "Afișează informațiile despre versiune și iese. "
+
+#~ msgid "EXIT STATUS "
+#~ msgstr "STARE DE IEȘIRE "
+
+#~ msgid "B<0> "
+#~ msgstr "B<0> "
+
+#~ msgid "B<1> "
+#~ msgstr "B<1> "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "CONSULTAȚI ȘI "
+
+#~ msgid "STANDARDS "
+#~ msgstr "STANDARDE "
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "RAPORTAREA ERORILOR "
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Trimiteți rapoartele de eroare la E<.UR procps@freelists.org> E<.UE> "
+
+#~ msgid "PROCIO"
+#~ msgstr "PROCIO"
+
+#~ msgid "Linux Manpage"
+#~ msgstr "Pagina de manual Linux"
+
+#~ msgid "Linux Programmer's Manual"
+#~ msgstr "Manualul programatorului Linux"
+
+#~ msgid "NAME "
+#~ msgstr "NUME "
+
+#~ msgid "fprocopen - stream open functions on files below /proc/##"
+#~ msgstr "fprocopen - transmite în flux funcțiile deschise pe fișierele de mai jos /proc/##"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "REZUMAT "
+
+#~ msgid "B<#define _GNU_SOURCE>"
+#~ msgstr "B<#define _GNU_SOURCE>"
+
+#~ msgid "B<#include E<lt>stdio.hE<gt>>"
+#~ msgstr "B<#include E<lt>stdio.hE<gt>>"
+
+#~ msgid "B<#include E<lt>proc/procio.hE<gt>>"
+#~ msgstr "B<#include E<lt>proc/procio.hE<gt>>"
+
+#~ msgid "B<FILE *fprocopen(const char *path, const char *mode);>"
+#~ msgstr "B<FILE *fprocopen(const char *path, const char *mode);>"
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "DESCRIERE "
+
+#~ msgid "The B<fprocopen> function opens files below I</proc/##> whose name is the string to by path and associates a stream with it. The argument I<mode> points to a string containing one of the following sequences"
+#~ msgstr "Funcția B<fprocopen> deschide fișierele de sub I</proc/##> al căror nume este șirul indicat de cale și asociază un flux cu acesta. Argumentul I<mode> indică un șir care conține una dintre următoarele secvențe:"
+
+#~ msgid "Open a file below I</proc/##> for reading even large buffers. The stream is positioned at the beginning of the file."
+#~ msgstr "Deschide un fișier sub I</proc/##> pentru a citi chiar și fișierele de memorie-tampon mari. Fluxul este poziționat la începutul fișierului."
+
+#~ msgid "B<w>[B<E<lt>delE<gt>>]"
+#~ msgstr "B<w>[B<E<lt>delE<gt>>]"
+
+#~ msgid "Open a file below I</proc/##> for writing even large buffers. The optional delimiter character can be one of the follwoing B<'\\ '>,\\ B<','>,\\ B<'.'>,\\ and\\ B<':'> where the default is the comma B<','>. This allows to split very large input lines into pieces at this delimiter and write each of them to the opened file below I</proc/##>."
+#~ msgstr "Deschide un fiÈ™ier sub I</proc/##> pentru a citi chiar È™i fiÈ™ierele de memorie-tampon mari. Caracterul delimitator opÈ›ional poate fi unul dintre următoarele B<„\\ â€>,\\ B<„,â€>,\\B<„.â€>,\\ È™i\\B<„:â€> unde implicit este virgula B< „,â€>. Acest lucru vă permite să împărÈ›iÈ›i linii de intrare foarte mari în bucăți la acest delimitator È™i să scrieÈ›i fiecare dintre ele în fiÈ™ierul deschis sub I</proc/##>."
+
+#~ msgid "The underlying file descriptor will be closed if you use any of the `exec...' functions within your code."
+#~ msgstr "Descriptorul de fișier subiacent va fi închis dacă utilizați oricare dintre funcțiile „exec...†din codul dumneavoastră."
+
+#~ msgid "The internal API allows the use of stdio functions to read and write large buffers below I</proc/##>."
+#~ msgstr "API-ul intern permite utilizarea funcțiilor stdio pentru a citi și scrie fișiere de memorie-tampon mari sub I</proc/##>."
+
+#~ msgid "SEE ALSO "
+#~ msgstr "CONSULTAȚI ȘI "
+
+#~ msgid "B<fopen>(3),"
+#~ msgstr "B<fopen>(3),"
+
+#~ msgid "B<fopencookie>(3)"
+#~ msgstr "B<fopencookie>(3)"
+
+#~ msgid "B<setvbuf>(3)"
+#~ msgstr "B<setvbuf>(3)"
+
+#~ msgid "B<lseek>(3)"
+#~ msgstr "B<lseek>(3)"
+
+#~ msgid "COPYRIGHT"
+#~ msgstr "DREPTURI DE AUTOR"
+
+#~ msgid "2018 Werner Fink,"
+#~ msgstr "Werner Fink 2018,"
+
+#~ msgid "AUTHOR "
+#~ msgstr "AUTOR "
+
+#
+#
+#
+#~ msgid "Werner Fink E<lt>werner@suse.deE<gt>"
+#~ msgstr "Werner Fink E<lt>werner@suse.deE<gt>"
+
+#~ msgid "NAME "
+#~ msgstr "NUME "
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "REZUMAT "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "DESCRIERE "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "CONSULTAȚI ȘI "
+
+#~ msgid "August 2022 "
+#~ msgstr "august 2022 "
+
+#~ msgid "libproc2 "
+#~ msgstr "libproc2 "
+
+#~ msgid "NAME "
+#~ msgstr "NUME "
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "REZUMAT "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "DESCRIERE "
+
+#~ msgid "RETURN VALUE "
+#~ msgstr "VALOARE RETURNATÄ‚ "
+
+#~ msgid "An error will be indicated by a negative number that is always the inverse of some well known errno.h value. "
+#~ msgstr "O eroare va fi indicată printr-un număr negativ care este întotdeauna inversul unei valori binecunoscute a errno.h. "
+
+#~ msgid "Functions Returning an `address' "
+#~ msgstr "Funcții care returnează o „adresă†"
+
+#~ msgid "An error will be indicated by a NULL return pointer with the reason found in the formal errno value. "
+#~ msgstr "O eroare va fi indicată printr-un indicator de returnare NULL cu motivul găsit în valoarea formală errno (număr eroare). "
+
+#~ msgid "FILES "
+#~ msgstr "FIȘIERE "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "CONSULTAȚI ȘI "
+
+#~ msgid "August 2022 "
+#~ msgstr "august 2022 "
+
+#~ msgid "libproc2 "
+#~ msgstr "libproc2 "
+
+#~ msgid "NAME "
+#~ msgstr "NUME "
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "REZUMAT "
+
+#~ msgid "Link with I<-lproc2>. "
+#~ msgstr "Legătură cu I<-lproc2>. "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "DESCRIERE "
+
+#~ msgid "Overview "
+#~ msgstr "Prezentare generală "
+
+#~ msgid "By specifying an array of `items', these structures can be organized as a `stack', potentially yielding many results with a single function call. Thus, a `stack' can be viewed as a variable length record whose content and order is determined solely by the user. "
+#~ msgstr "Prin specificarea unei matrice de „elementeâ€, aceste structuri pot fi organizate ca o „stivăâ€, cu potenÈ›ialul de-a produce multe rezultate cu un singur apel către funcÈ›ie. Astfel, o „stivă†poate fi văzută ca o înregistrare cu lungime variabilă al cărei conÈ›inut È™i ordine sunt determinate exclusiv de utilizator. "
+
+#~ msgid "Usage "
+#~ msgstr "Utilizare "
+
+#~ msgid "To exploit any `stack', and access individual `result' structures, a I<relative_enum> is required as shown in the B<VAL> macro defined in the header file. Such values could be hard coded as: 0 through numitems-1. However, this need is typically satisfied by creating your own enumerators corresponding to the order of the `items' array. "
+#~ msgstr "Pentru a exploata orice „stivă†și pentru a accesa structuri „rezultat†individuale, este necesar un I<relative_enum>, aÈ™a cum se arată în macrocomanda B<VAL> definită în fiÈ™ierul antet. Astfel de valori ar putea fi codificate ca: de la 0 la numitems-1. Cu toate acestea, această nevoie este de obicei satisfăcută prin crearea propriilor enumeratori corespunzători ordinii matricei „elementeâ€. "
+
+#~ msgid "Caveats "
+#~ msgstr "Avertismente "
+
+#~ msgid "For the B<new> and B<unref> functions, the address of an I<info> struct pointer must be supplied. With B<new> it must have been initialized to NULL. With B<unref> it will be reset to NULL if the reference count reaches zero. "
+#~ msgstr "Pentru funcțiile B<new> și B<unref>, trebuie furnizată adresa unui indicator de structură I<info>. Cu B<new>, acesta trebuie să fi fost inițializat la NULL. Cu B<unref> va fi reinițializat la NULL dacă numărul de referințe ajunge la zero. "
+
+#~ msgid "RETURN VALUE "
+#~ msgstr "VALOARE RETURNATÄ‚ "
+
+#~ msgid "Functions Returning an `int' "
+#~ msgstr "Funcții care returnează un „int†(număr întreg) "
+
+#~ msgid "An error will be indicated by a negative number that is always the inverse of some well known errno.h value. "
+#~ msgstr "O eroare va fi indicată printr-un număr negativ care este întotdeauna inversul unei valori binecunoscute a errno.h. "
+
+#~ msgid "Success is indicated by a zero return value. However, the B<ref> and B<unref> functions return the current I<info> structure reference count. "
+#~ msgstr "Succesul este indicat de o valoare de returnare zero. Cu toate acestea, funcțiile B<ref> și B<unref> returnează numărul de referințe curent al structurii I<info>. "
+
+#~ msgid "Functions Returning an `address' "
+#~ msgstr "Funcții care returnează o „adresă†"
+
+#~ msgid "An error will be indicated by a NULL return pointer with the reason found in the formal errno value. "
+#~ msgstr "O eroare va fi indicată printr-un indicator de returnare NULL cu motivul găsit în valoarea formală errno (număr eroare). "
+
+#~ msgid "DEBUGGING "
+#~ msgstr "DEPANAREA "
+
+#~ msgid "This feature can be activated through either of the following methods and any discrepancies will be written to B<stderr>. "
+#~ msgstr "Această caracteristică poate fi activată prin oricare dintre următoarele metode și orice discrepanțe vor fi scrise la B<ieșirea standard de eroare>. "
+
+#~ msgid "1) "
+#~ msgstr "1) "
+
+#~ msgid "2) "
+#~ msgstr "2) "
+
+#~ msgid "This verification feature incurs substantial overhead. Therefore, it is important that it I<not> be activated for a production/release build. "
+#~ msgstr "Această caracteristică de verificare implică o suprasarcină substanțială. Prin urmare, este important ca aceasta să I<nu> fie activată pentru o versiune de producție/lansare. "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "CONSULTAȚI ȘI "
+
+#~ msgid "2022-05-11"
+#~ msgstr "11.05.2022"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Comenzi utilizator "
+
+#~ msgid "NAME "
+#~ msgstr "NUME "
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "REZUMAT "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "DESCRIERE "
+
+#~ msgid "1 "
+#~ msgstr "1 "
+
+#~ msgid "2 "
+#~ msgstr "2 "
+
+#~ msgid "3 "
+#~ msgstr "3 "
+
+#~ msgid "EXAMPLES "
+#~ msgstr "EXEMPLE "
+
+#~ msgid "B<r> "
+#~ msgstr "B<r> "
+
+#~ msgid "Identical to B<--pid\\ >I<123>. "
+#~ msgstr "Identic cu B<--pid\\ >I<123>. "
+
+#~ msgid "Set screen width. "
+#~ msgstr "Stabilește lățimea ecranului. "
+
+#~ msgid "B<e> "
+#~ msgstr "B<e> "
+
+#~ msgid "Set screen height. "
+#~ msgstr "Stabilește înălțimea ecranului. "
+
+#~ msgid "Wide output. Use this option twice for unlimited width. "
+#~ msgstr "Ieșire lungă. Utilizați această opțiune de două ori pentru o lățime nelimitată. "
+
+#~ msgid "Set screen width. "
+#~ msgstr "Stabilește lățimea ecranului. "
+
+#~ msgid "Show threads after processes. "
+#~ msgstr "Afișează firele de execuție după procese. "
+
+#~ msgid "Print the procps-ng version. "
+#~ msgstr "Afișează versiunea procps-ng. "
+
+#~ msgid "Print the procps-ng version. "
+#~ msgstr "Afișează versiunea procps-ng. "
+
+#~ msgid "NOTES "
+#~ msgstr "NOTE "
+
+#~ msgid "1 "
+#~ msgstr "1 "
+
+#~ msgid "N "
+#~ msgstr "N "
+
+#~ msgid "R "
+#~ msgstr "R "
+
+#~ msgid "s "
+#~ msgstr "s "
+
+#~ msgid "S "
+#~ msgstr "S "
+
+#~ msgid "t "
+#~ msgstr "t "
+
+#~ msgid "T "
+#~ msgstr "T "
+
+#~ msgid "pcpu "
+#~ msgstr "pcpu "
+
+#~ msgid "ppid "
+#~ msgstr "ppid "
+
+#~ msgid "user "
+#~ msgstr "user "
+
+#~ msgid "COMMAND "
+#~ msgstr "COMANDA "
+
+#~ msgid "pid "
+#~ msgstr "pid "
+
+#~ msgid "tty "
+#~ msgstr "tty "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "DESCRIERE "
+
+#~ msgid "%CPU "
+#~ msgstr "%CPU "
+
+#~ msgid "args "
+#~ msgstr "args "
+
+#~ msgid "COMMAND "
+#~ msgstr "COMANDA "
+
+#~ msgid "TIME "
+#~ msgstr "TIMP "
+
+#~ msgid "c "
+#~ msgstr "c "
+
+#~ msgid "C "
+#~ msgstr "C "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid "CLS "
+#~ msgstr "CLS "
+
+#~ msgid ""
+#~ "scheduling class of the process. (alias\n"
+#~ "B<policy>,B<\\ cls>).\n"
+#~ "Field's possible values are:\n"
+#~ " "
+#~ msgstr ""
+#~ "clasa de planificare a procesului. (alias\n"
+#~ "B<policy>, B<cls>).\n"
+#~ "Valorile posibile ale câmpului sunt:\n"
+#~ " "
+
+#~ msgid ""
+#~ ".IP \"\" 2\n"
+#~ " "
+#~ msgstr ""
+#~ ".IP \"\" 2\n"
+#~ " "
+
+#~ msgid ""
+#~ "-\tnot reported\n"
+#~ " "
+#~ msgstr ""
+#~ "-\tnu este raportată\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "TS\tSCHED_OTHER\n"
+#~ " "
+#~ msgstr ""
+#~ "TS\tSCHED_OTHER\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "FF\tSCHED_FIFO\n"
+#~ " "
+#~ msgstr ""
+#~ "FF\tSCHED_FIFO\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "RR\tSCHED_RR\n"
+#~ " "
+#~ msgstr ""
+#~ "RR\tSCHED_RR\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "B\tSCHED_BATCH\n"
+#~ " "
+#~ msgstr ""
+#~ "B\tSCHED_BATCH\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "ISO\tSCHED_ISO\n"
+#~ " "
+#~ msgstr ""
+#~ "ISO\tSCHED_ISO\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "IDL\tSCHED_IDLE\n"
+#~ " "
+#~ msgstr ""
+#~ "IDL\tSCHED_IDLE\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "DLN\tSCHED_DEADLINE\n"
+#~ " "
+#~ msgstr ""
+#~ "DLN\tSCHED_DEADLINE\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid "?\tunknown value "
+#~ msgstr "?\tvaloare necunoscută "
+
+#~ msgid "cmd "
+#~ msgstr "cmd "
+
+#~ msgid "comm "
+#~ msgstr "comm "
+
+#~ msgid "COMMAND "
+#~ msgstr "COMANDA "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid "COMMAND "
+#~ msgstr "COMANDA "
+
+#~ msgid "TIME "
+#~ msgstr "TIME "
+
+#~ msgid "TIME "
+#~ msgstr "TIME "
+
+#~ msgid ""
+#~ "data resident set size, the amount of physical memory devoted to other than\n"
+#~ "executable code."
+#~ msgstr ""
+#~ "dimensiunea datelor rezidente în memorie, cantitatea de memorie fizică dedicată\n"
+#~ "la altceva decât codului executabil."
+
+#~ msgid "etime "
+#~ msgstr "etime "
+
+#~ msgid "ELAPSED "
+#~ msgstr "ELAPSED "
+
+#~ msgid "ELAPSED "
+#~ msgstr "ELAPSED "
+
+#~ msgid "f "
+#~ msgstr "f "
+
+#~ msgid "F "
+#~ msgstr "F "
+
+#~ msgid "flags "
+#~ msgstr "fanioane "
+
+#~ msgid "F "
+#~ msgstr "F "
+
+#~ msgid "COMMAND "
+#~ msgstr "COMANDA "
+
+#~ msgid "group "
+#~ msgstr "group "
+
+#~ msgid "GROUP "
+#~ msgstr "GRUP "
+
+#~ msgid ""
+#~ "Unique inode number describing the namespace the process belongs to.\n"
+#~ "See\n"
+#~ "I<namespaces>(7). "
+#~ msgstr ""
+#~ "Numărul unic de nod-i care descrie spațiul de nume căruia îi aparține procesul.\n"
+#~ "A se vedea\n"
+#~ "I<namespaces>(7). "
+
+#~ msgid ""
+#~ "time the command started. See also\n"
+#~ "B<bsdstart>,B<\\ start>,B<\\ start_time>, andB<\\ stime>."
+#~ msgstr ""
+#~ "momentul în care comanda a început. Consultații de asemenea\n"
+#~ "B<bsdstart>, B<start>, B<start_time> și B<stime>."
+
+#~ msgid "maj_flt "
+#~ msgstr "maj_flt "
+
+#~ msgid "min_flt "
+#~ msgstr "min_flt "
+
+#~ msgid ""
+#~ "Unique inode number describing the namespace the process belongs to.\n"
+#~ "See\n"
+#~ "I<namespaces>(7). "
+#~ msgstr ""
+#~ "numărul unic de nod-i care descrie spațiul de nume căruia îi aparține procesul.\n"
+#~ "Consultați\n"
+#~ "I<namespaces>(7). "
+
+#~ msgid ""
+#~ "Unique inode number describing the namespace the process belongs to.\n"
+#~ "See\n"
+#~ "I<namespaces>(7). "
+#~ msgstr ""
+#~ "numărul unic de nod-i care descrie spațiul de nume căruia îi aparține procesul.\n"
+#~ "Consultați\n"
+#~ "I<namespaces>(7). "
+
+#~ msgid "NI "
+#~ msgstr "NI "
+
+#~ msgid "nice "
+#~ msgstr "nice "
+
+#~ msgid "NI "
+#~ msgstr "NI "
+
+#~ msgid "pcpu "
+#~ msgstr "pcpu "
+
+#~ msgid "%CPU "
+#~ msgstr "%CPU "
+
+#~ msgid "pgid "
+#~ msgstr "pgid "
+
+#~ msgid "PGID "
+#~ msgstr "PGID "
+
+#~ msgid "pgrp "
+#~ msgstr "pgrp "
+
+#~ msgid "pid "
+#~ msgstr "pid "
+
+#~ msgid "PID "
+#~ msgstr "PID "
+
+#~ msgid ""
+#~ "Unique inode number describing the namespace the process belongs to.\n"
+#~ "See\n"
+#~ "I<namespaces>(7). "
+#~ msgstr ""
+#~ "numărul unic de nod-i care descrie spațiul de nume căruia îi aparține procesul.\n"
+#~ "Consultați\n"
+#~ "I<namespaces>(7). "
+
+#~ msgid "%MEM "
+#~ msgstr "%MEM "
+
+#~ msgid ""
+#~ ".IP \"\" 2\n"
+#~ " "
+#~ msgstr ""
+#~ ".IP \"\" 2\n"
+#~ " "
+
+#~ msgid ""
+#~ "-\tnot reported\n"
+#~ " "
+#~ msgstr ""
+#~ "-\tnu este raportată\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "TS\tSCHED_OTHER\n"
+#~ " "
+#~ msgstr ""
+#~ "TS\tSCHED_OTHER\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "FF\tSCHED_FIFO\n"
+#~ " "
+#~ msgstr ""
+#~ "FF\tSCHED_FIFO\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "RR\tSCHED_RR\n"
+#~ " "
+#~ msgstr ""
+#~ "RR\tSCHED_RR\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "B\tSCHED_BATCH\n"
+#~ " "
+#~ msgstr ""
+#~ "B\tSCHED_BATCH\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "ISO\tSCHED_ISO\n"
+#~ " "
+#~ msgstr ""
+#~ "ISO\tSCHED_ISO\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "IDL\tSCHED_IDLE\n"
+#~ " "
+#~ msgstr ""
+#~ "IDL\tSCHED_IDLE\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "DLN\tSCHED_DEADLINE\n"
+#~ " "
+#~ msgstr ""
+#~ "DLN\tSCHED_DEADLINE\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid "?\tunknown value "
+#~ msgstr "?\tvaloare necunoscută "
+
+#~ msgid "ppid "
+#~ msgstr "ppid "
+
+#~ msgid "PPID "
+#~ msgstr "PPID "
+
+#~ msgid "rgroup "
+#~ msgstr "rgroup "
+
+#~ msgid "RGROUP "
+#~ msgstr "RGROUP "
+
+#~ msgid "rss "
+#~ msgstr "rss "
+
+#~ msgid "RSS "
+#~ msgstr "RSS "
+
+#~ msgid "ruser "
+#~ msgstr "ruser "
+
+#~ msgid "RUSER "
+#~ msgstr "RUSER "
+
+#~ msgid "s "
+#~ msgstr "s "
+
+#~ msgid "S "
+#~ msgstr "S "
+
+#~ msgid "P "
+#~ msgstr "P "
+
+#~ msgid "PENDING "
+#~ msgstr "PENDING "
+
+#~ msgid "CAUGHT "
+#~ msgstr "CAUGHT "
+
+#~ msgid "IGNORED "
+#~ msgstr "IGNORED "
+
+#~ msgid "BLOCKED "
+#~ msgstr "BLOCKED "
+
+#~ msgid "size "
+#~ msgstr "size "
+
+#~ msgid "STARTED "
+#~ msgstr "STARTED "
+
+#~ msgid "start_time "
+#~ msgstr "start_time "
+
+#~ msgid "START "
+#~ msgstr "START "
+
+#~ msgid "S "
+#~ msgstr "S "
+
+#~ msgid "time "
+#~ msgstr "time "
+
+#~ msgid "TIME "
+#~ msgstr "TIME "
+
+#~ msgid ""
+#~ "Unique inode number describing the namespace the process belongs to.\n"
+#~ "See\n"
+#~ "I<namespaces>(7). "
+#~ msgstr ""
+#~ "numărul unic de nod-i care descrie spațiul de nume căruia îi aparține procesul.\n"
+#~ "Consultați\n"
+#~ "I<namespaces>(7). "
+
+#~ msgid "TIME "
+#~ msgstr "TIME "
+
+#~ msgid "TTY "
+#~ msgstr "TTY "
+
+#~ msgid "tpgid "
+#~ msgstr "tpgid "
+
+#~ msgid "tty "
+#~ msgstr "tty "
+
+#~ msgid "TT "
+#~ msgstr "TT "
+
+#~ msgid "CMD "
+#~ msgstr "CMD "
+
+#~ msgid "COMMAND "
+#~ msgstr "COMANDA "
+
+#~ msgid "uid "
+#~ msgstr "uid "
+
+#~ msgid "USER "
+#~ msgstr "USER "
+
+#~ msgid "user "
+#~ msgstr "user "
+
+#~ msgid "USER "
+#~ msgstr "USER "
+
+#~ msgid ""
+#~ "Unique inode number describing the namespace the process belongs to.\n"
+#~ "See\n"
+#~ "I<namespaces>(7). "
+#~ msgstr ""
+#~ "numărul unic de nod-i care descrie spațiul de nume căruia îi aparține procesul.\n"
+#~ "Consultați\n"
+#~ "I<namespaces>(7). "
+
+#~ msgid ""
+#~ "Unique inode number describing the namespace the process belongs to.\n"
+#~ "See\n"
+#~ "I<namespaces>(7). "
+#~ msgstr ""
+#~ "numărul unic de nod-i care descrie spațiul de nume căruia îi aparține procesul.\n"
+#~ "Consultați\n"
+#~ "I<namespaces>(7). "
+
+#~ msgid "vsize "
+#~ msgstr "vsize "
+
+#~ msgid "VSZ "
+#~ msgstr "VSZ "
+
+#~ msgid "vsz "
+#~ msgstr "vsz "
+
+#~ msgid "VSZ "
+#~ msgstr "VSZ "
+
+#~ msgid "WCHAN "
+#~ msgstr "WCHAN "
+
+#~ msgid "Set to one of posix, old, linux, bsd, sun, digital... (see section B<PERSONALITY> below). "
+#~ msgstr "Stabilește una dintre valorile: old, linux, bsd, sun, digital... (consultați secțiunea B<PERSONALITATE> de mai jos). "
+
+#~ msgid "Don't find excuses to ignore bad \"features\". "
+#~ msgstr "Nu căutați scuze pentru a ignora „caracteristicile†incorecte. "
+
+#~ msgid "like the old Debian B<ps> "
+#~ msgstr "similar cu B<ps> pentru vechiul Debian "
+
+#~ msgid "like HP-UX B<ps> "
+#~ msgstr "similar cu B<ps> pentru HP-UX "
+
+#~ msgid "like OS/390 Open Edition B<ps> "
+#~ msgstr "similar cu B<ps> pentru OS/390 OpenEdition "
+
+#~ msgid "like Irix B<ps> "
+#~ msgstr "similar cu B<ps> pentru Irix "
+
+#~ msgid "standard "
+#~ msgstr "standard "
+
+#~ msgid "standard "
+#~ msgstr "standard "
+
+#~ msgid "standard "
+#~ msgstr "standard "
+
+#~ msgid "standard "
+#~ msgstr "standard "
+
+#~ msgid "standard "
+#~ msgstr "standard "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "CONSULTAȚI ȘI "
+
+#~ msgid "STANDARDS "
+#~ msgstr "STANDARDE "
+
+#~ msgid "1 "
+#~ msgstr "1 "
+
+#~| msgid "2) "
+#~ msgid "2 "
+#~ msgstr "2 "
+
+#~ msgid "3 "
+#~ msgstr "3 "
+
+#~ msgid "4 "
+#~ msgstr "4 "
+
+#~ msgid "AUTHOR "
+#~ msgstr "AUTOR "
+
+#~ msgid "2020-06-04 "
+#~ msgstr "04.06.2020 "
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Comenzi utilizator "
+
+#~ msgid "NAME "
+#~ msgstr "NUME "
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "REZUMAT "
+
+#~ msgid "OPTIONS "
+#~ msgstr "OPÈšIUNI "
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "CONSULTAȚI ȘI "
+
+#~ msgid "B<ps>(1), B<pgrep>(1) "
+#~ msgstr "B<ps>(1), B<pgrep>(1) "
+
+#~ msgid "STANDARDS "
+#~ msgstr "STANDARDE "
+
+#~ msgid "AUTHOR "
+#~ msgstr "AUTOR "
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "RAPORTAREA ERORILOR "
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Trimiteți rapoartele de eroare la E<.UR procps@freelists.org> E<.UE> "
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Comenzi utilizator "
+
+#~ msgid "NAME "
+#~ msgstr "NUME "
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "REZUMAT "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "DESCRIERE "
+
+#~ msgid "OPTIONS "
+#~ msgstr "OPÈšIUNI "
+
+#~ msgid "B<-L>,B<\\ --table> "
+#~ msgstr "B<-L>, B<--table> "
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "Display help text and exit. "
+#~ msgstr "Afișează acest mesaj de ajutor și iese. "
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "Display version information. "
+#~ msgstr "Afișează informații despre versiune. "
+
+#~ msgid "B<--ns >I<pid> "
+#~ msgstr "B<--ns> I<pid> "
+
+#~ msgid "EXAMPLES "
+#~ msgstr "EXEMPLE "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "CONSULTAȚI ȘI "
+
+#~ msgid "STANDARDS "
+#~ msgstr "STANDARDE "
+
+#~ msgid "AUTHOR "
+#~ msgstr "AUTOR "
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "RAPORTAREA ERORILOR "
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Trimiteți rapoartele de eroare la E<.UR procps@freelists.org> E<.UE> "
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Comenzi utilizator "
+
+#~ msgid "NAME "
+#~ msgstr "NUME "
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "REZUMAT "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "DESCRIERE "
+
+#~ msgid "OPTIONS "
+#~ msgstr "OPÈšIUNI "
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "Display version information and exit. "
+#~ msgstr "Afișează informațiile despre versiune și iese. "
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "c "
+#~ msgstr "c "
+
+#~ msgid "l "
+#~ msgstr "l "
+
+#~ msgid "v "
+#~ msgstr "v "
+
+#~ msgid "n "
+#~ msgstr "n "
+
+#~ msgid "o "
+#~ msgstr "o "
+
+#~ msgid "p "
+#~ msgstr "p "
+
+#~ msgid "N/A "
+#~ msgstr "N/D "
+
+#~ msgid "s "
+#~ msgstr "s "
+
+#~ msgid "u "
+#~ msgstr "u "
+
+#~ msgid "FILES "
+#~ msgstr "FIȘIERE "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "CONSULTAȚI ȘI "
+
+#~ msgid "NOTES "
+#~ msgstr "NOTE "
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "RAPORTAREA ERORILOR "
+
+#
+#
+#
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Trimiteți rapoartele de eroare la E<.UR procps@freelists.org> E<.UE> "
+
+#~ msgid "2021-03-29"
+#~ msgstr "29.03.2021"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "NAME "
+#~ msgstr "NUME "
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "REZUMAT "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "DESCRIERE "
+
+#~| msgid "B<-q>, B<--quiet>"
+#~ msgid "B<-q>, B<--quiet> "
+#~ msgstr "B<-q>, B<--quiet> "
+
+#~ msgid "B<-A> "
+#~ msgstr "B<-A> "
+
+#~ msgid "B<-d> "
+#~ msgstr "B<-d> "
+
+#~ msgid "B<-f> "
+#~ msgstr "B<-f> "
+
+#~| msgid "B<-X>"
+#~ msgid "B<-X> "
+#~ msgstr "B<-X> "
+
+#~ msgid "Alias of B<-a> "
+#~ msgstr "Alias de B<-a> "
+
+#~ msgid "Does nothing, exists for BSD compatibility. "
+#~ msgstr "Nu face nimic, există pentru compatibilitatea cu BSD. "
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "Display help text and exit. "
+#~ msgstr "Afișează acest mesaj de ajutor și iese. "
+
+#~| msgid "B<-V>, B<--version> "
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "Display version information and exit. "
+#~ msgstr "Afișează informațiile despre versiune și iese. "
+
+#~ msgid "EXAMPLES "
+#~ msgstr "EXEMPLE "
+
+#~ msgid "FILES "
+#~ msgstr "FIȘIERE "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "CONSULTAȚI ȘI "
+
+#~ msgid "AUTHOR "
+#~ msgstr "AUTOR "
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "RAPORTAREA ERORILOR "
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Trimiteți rapoartele de eroare la E<.UR procps@freelists.org> E<.UE> "
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "NAME "
+#~ msgstr "NUME "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "DESCRIERE "
+
+#~ msgid "NOTES "
+#~ msgstr "NOTE "
+
+#~ msgid "FILES "
+#~ msgstr "FIȘIERE "
+
+#~ msgid "I</etc/sysctl.d/*.conf> "
+#~ msgstr "I</etc/sysctl.d/*.conf> "
+
+#~ msgid "I</run/sysctl.d/*.conf> "
+#~ msgstr "I</run/sysctl.d/*.conf> "
+
+#~ msgid "I</usr/local/lib/sysctl.d/*.conf> "
+#~ msgstr "I</usr/local/lib/sysctl.d/*.conf> "
+
+#~ msgid "I</usr/lib/sysctl.d/*.conf> "
+#~ msgstr "I</usr/lib/sysctl.d/*.conf> "
+
+#~ msgid "I</lib/sysctl.d/*.conf> "
+#~ msgstr "I</lib/sysctl.d/*.conf> "
+
+#~ msgid "I</etc/sysctl.conf> "
+#~ msgstr "I</etc/sysctl.conf> "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "CONSULTAȚI ȘI "
+
+#~ msgid "AUTHOR "
+#~ msgstr "AUTOR "
+
+#~ msgid "E<.UR staikos@0wned.org> George Staikos E<.UE> "
+#~ msgstr "E<.UR staikos@0wned.org> George Staikos E<.UE> "
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "RAPORTAREA ERORILOR "
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Trimiteți rapoartele de eroare la E<.UR procps@freelists.org> E<.UE> "
+
+#~ msgid "2020-06-04 "
+#~ msgstr "04.06.2020 "
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Comenzi utilizator "
+
+#~ msgid "NAME "
+#~ msgstr "NUME "
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "REZUMAT "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "DESCRIERE "
+
+#~ msgid "OPTIONS "
+#~ msgstr "OPÈšIUNI "
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "Display version information and exit. "
+#~ msgstr "Afișează informațiile despre versiune și iese. "
+
+#~ msgid "FILES "
+#~ msgstr "FIȘIERE "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "CONSULTAȚI ȘI "
+
+#~ msgid "BUGS "
+#~ msgstr "ERORI "
+
+#~ msgid "AUTHORS "
+#~ msgstr "AUTORI "
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "RAPORTAREA ERORILOR "
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Trimiteți rapoartele de eroare la E<.UR procps@freelists.org> E<.UE> "
+
+#~ msgid "September 2022"
+#~ msgstr "septembrie 2022"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Comenzi utilizator "
+
+#~ msgid "NAME "
+#~ msgstr "NUME "
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "REZUMAT "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "DESCRIERE "
+
+#~ msgid "Prepending an exclamation point (`!') to the user id or name instructs \\*(We to display only processes with users not matching the one provided. "
+#~ msgstr "Adăugarea unui semn de exclamare („!â€) la ID-ul sau numele utilizatorului îi indică lui \\*(We să afiÈ™eze numai procesele cu utilizatori care nu se potrivesc cu cel furnizat. "
+
+#~ msgid "The `p', `U' and `u' \\*(COs are mutually exclusive. "
+#~ msgstr "OpÈ›iunile de linie de comandă „pâ€, „U†și „u†se exclud reciproc."
+
+#~ msgid "\\*(XX. "
+#~ msgstr "\\*(XX. "
+
+#~ msgid "\\*(XX. "
+#~ msgstr "\\*(XX. "
+
+#~ msgid "\\*(ZX. "
+#~ msgstr "\\*(ZX. "
+
+#~ msgid "\\*(XX. "
+#~ msgstr "\\*(XX. "
+
+#~ msgid "\\*(ZX. "
+#~ msgstr "\\*(ZX. "
+
+#~ msgid "\\*(XX. "
+#~ msgstr "\\*(XX. "
+
+#~ msgid "\\*(XX. "
+#~ msgstr "\\*(XX. "
+
+#~ msgid "\\*(XX. "
+#~ msgstr "\\*(XX. "
+
+#~ msgid "\\*(ZX. "
+#~ msgstr "\\*(ZX. "
+
+#~ msgid "\\*(XX. "
+#~ msgstr "\\*(XX. "
+
+#~ msgid "\\(bu "
+#~ msgstr "\\(bu "
+
+#~ msgid "\\(bu "
+#~ msgstr "\\(bu "
+
+#~ msgid "\\(bu "
+#~ msgstr "\\(bu "
+
+#~ msgid "\\(bu "
+#~ msgstr "\\(bu "
+
+#~ msgid "Entering no PID or a negative number will be interpreted as the default shown in the prompt (the first task displayed). A PID value of zero means the \\*(We program itself. "
+#~ msgstr "Dacă nu se introduce niciun PID sau dacă se introduce un număr negativ, acesta va fi interpretat ca fiind valoarea implicită afișată în prompt (prima sarcină afișată). O valoare PID egală cu zero înseamnă programul \\*(We însuși. "
+
+#~ msgid "This command serves as a 4-way toggle, cycling through these modes: "
+#~ msgstr "Această comandă servește ca un comutator cu patru poziții, trecând prin aceste moduri: "
+
+#~ msgid "\\ \\ \\ B<f>\\ \\ :I<Fields-Management > "
+#~ msgstr "\\ \\ \\ B<f>\\ \\ :I<Gestionarea câmpurilor> "
+
+#~ msgid "* "
+#~ msgstr "* "
+
+#~ msgid "The above \\*(CIs areB< always> available in \\*(FM butB< never> available in \\*(AM if the \\*(CW's \\*(TD has been toggled \\*F. "
+#~ msgstr "Comenzile interactive de mai sus sunt întotdeauna disponibile în modul ecran complet, dar nu sunt niciodată disponibile în modul de afișare alternativă dacă afișarea sarcinilor din fereastra „curentă†a fost I<Dezactivată> (Off)."
+
+#~ msgid "The value set for the following is unimportant, just its presence. "
+#~ msgstr "Valoarea stabilită pentru următoarea variabilă este neimportantă, doar prezența acesteia. "
+
+#~ msgid "LIBPROC_HIDE_KERNEL "
+#~ msgstr "LIBPROC_HIDE_KERNEL "
+
+#~ msgid "\\(bu "
+#~ msgstr "\\(bu "
+
+#~| msgid "NAME "
+#~ msgid "\\(bu "
+#~ msgstr "\\(bu "
+
+#~| msgid "NAME "
+#~ msgid "\\(bu "
+#~ msgstr "\\(bu "
+
+#~| msgid "NAME "
+#~ msgid "\\(bu "
+#~ msgstr "\\(bu "
+
+#~ msgid "\\(bu "
+#~ msgstr "\\(bu "
+
+#~ msgid "\\(bu "
+#~ msgstr "\\(bu "
+
+#~ msgid "\\(bu "
+#~ msgstr "\\(bu "
+
+#~ msgid "\\(bu "
+#~ msgstr "\\(bu "
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Comenzi utilizator "
+
+#~ msgid "NAME "
+#~ msgstr "NUME "
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "REZUMAT "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "DESCRIERE "
+
+#~ msgid "OPTIONS "
+#~ msgstr "OPÈšIUNI "
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<h>, B<--help> "
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "FILES "
+#~ msgstr "FIȘIERE "
+
+#~ msgid "AUTHORS "
+#~ msgstr "AUTORI "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "CONSULTAȚI ȘI "
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "RAPORTAREA ERORILOR "
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Trimiteți rapoartele de eroare la E<.UR procps@freelists.org> E<.UE> "
+
+#~ msgid "2020-06-04 "
+#~ msgstr "04.06.2020 "
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "System Administration "
+#~ msgstr "Administrare sistem "
+
+#~ msgid "NAME "
+#~ msgstr "NUME "
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "REZUMAT "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "DESCRIERE "
+
+#~ msgid "OPTIONS "
+#~ msgstr "OPÈšIUNI "
+
+#~ msgid "B<-w>, B<--wide> "
+#~ msgstr "B<-w>, B<--wide> "
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "Display version information and exit. "
+#~ msgstr "Afișează informațiile despre versiune și iese. "
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "Display help and exit. "
+#~ msgstr "Afișează mesajul de ajutor și iese. "
+
+#~ msgid "These are affected by the B<--unit> option. "
+#~ msgstr "Acestea sunt afectate de opțiunea B<--unit>. "
+
+#~ msgid "CPU "
+#~ msgstr "CPU "
+
+#~ msgid "IO "
+#~ msgstr "In/IeÈ™ "
+
+#~ msgid "NOTES "
+#~ msgstr "NOTE "
+
+#~ msgid "B<vmstat> does not require special permissions."
+#~ msgstr "B<vmstat> nu necesită permisiuni speciale."
+
+#~ msgid "These reports are intended to help identify system bottlenecks. Linux B<vmstat> does not count itself as a running process."
+#~ msgstr "Aceste rapoarte sunt menite să ajute la identificarea blocajelor sistemului. Linux B<vmstat> nu se consideră un proces care rulează."
+
+#~ msgid "All linux blocks are currently 1024 bytes. Old kernels may report blocks as 512 bytes, 2048 bytes, or 4096 bytes."
+#~ msgstr "Toate blocurile Linux au în prezent 1024 de octeți. Nucleele vechi pot raporta blocuri ca 512 octeți, 2048 octeți sau 4096 octeți."
+
+#~ msgid "Since procps 3.1.9, vmstat lets you choose units (k, K, m, M). Default is K (1024 bytes) in the default mode."
+#~ msgstr "Începând cu versiunea 3.1.9 de procps, vmstat vă permite să alegeți unitățile de măsură (k, K, m, M). Valoarea implicită este K (1024 de octeți) în modul implicit."
+
+#~ msgid "vmstat uses slabinfo 1.1"
+#~ msgstr "vmstat utilizează slabinfo versiunea 1.1"
+
+#~ msgid "FILES "
+#~ msgstr "FIȘIERE "
+
+#~ msgid ""
+#~ "/proc/meminfo\n"
+#~ "/proc/stat\n"
+#~ "/proc/*/stat\n"
+#~ msgstr ""
+#~ "/proc/meminfo\n"
+#~ "/proc/stat\n"
+#~ "/proc/*/stat\n"
+
+#~ msgid "SEE ALSO "
+#~ msgstr "CONSULTAȚI ȘI "
+
+#~ msgid "BUGS "
+#~ msgstr "ERORI "
+
+#~ msgid "Does not tabulate the block io per device or count the number of system calls."
+#~ msgstr "Nu raportează blocarea In/Ieș pe dispozitiv și nici nu contorizează apelurile de sistem."
+
+#~ msgid "AUTHORS "
+#~ msgstr "AUTORI "
+
+#~ msgid "Written by E<.UR al172@yfn.\\:ysu.\\:edu> Henry Ware E<.UE .>"
+#~ msgstr "Scris de E<.UR al172@yfn.\\:ysu.\\:edu> Henry Ware E<.UE .>"
+
+#~ msgid "E<.UR ffrederick@users.\\:sourceforge.\\:net> Fabian Fr\\('ed\\('erick E<.UE> (diskstat, slab, partitions...)"
+#~ msgstr "Fabian Frédérick E<lt>I<ffrederick@users.sourceforge.net>E<gt> (diskstat, slab, partitions...)"
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "RAPORTAREA ERORILOR "
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Trimiteți rapoartele de eroare la E<.UR procps@freelists.org> E<.UE> "
+
+#~ msgid "W "
+#~ msgstr "W "
+
+#~ msgid "2020-06-04 "
+#~ msgstr "04.06.2020 "
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Comenzi utilizator "
+
+#~ msgid "NAME "
+#~ msgstr "NUME "
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "REZUMAT "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "DESCRIERE "
+
+#~ msgid "B<--help> "
+#~ msgstr "B<--help> "
+
+#~ msgid "Display help text and exit. "
+#~ msgstr "Afișează acest mesaj de ajutor și iese. "
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "Display version information. "
+#~ msgstr "Afișează informații despre versiune. "
+
+#~ msgid "FILES "
+#~ msgstr "FIȘIERE "
+
+#~ msgid "I</var/run/utmp> "
+#~ msgstr "I</var/run/utmp> "
+
+#~ msgid "information about who is currently logged on "
+#~ msgstr "informații despre cine este conectat în prezent "
+
+#~ msgid "I</proc> "
+#~ msgstr "I</proc> "
+
+#~ msgid "process information "
+#~ msgstr "informații despre procese "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "CONSULTAȚI ȘI "
+
+#~ msgid "AUTHORS "
+#~ msgstr "AUTORI "
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "RAPORTAREA ERORILOR "
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Trimiteți rapoartele de eroare la E<.UR procps@freelists.org> E<.UE> "
+
+#~ msgid "2021-04-24"
+#~ msgstr "24.04.2021"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Comenzi utilizator "
+
+#~ msgid "NAME "
+#~ msgstr "NUME "
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "REZUMAT "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "DESCRIERE "
+
+#~ msgid "OPTIONS "
+#~ msgstr "OPÈšIUNI "
+
+#~| msgid "B<-h>, B<--help> "
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "Display help text and exit. "
+#~ msgstr "Afișează acest mesaj de ajutor și iese. "
+
+#~ msgid "Display version information and exit. "
+#~ msgstr "Afișează informațiile despre versiune și iese. "
+
+#~ msgid "EXIT STATUS "
+#~ msgstr "STARE DE IEȘIRE "
+
+#~ msgid "B<0> "
+#~ msgstr "B<0> "
+
+#~ msgid "Success. "
+#~ msgstr "Succes. "
+
+#~ msgid "B<1> "
+#~ msgstr "B<1> "
+
+#~ msgid "ENVIRONMENT "
+#~ msgstr "VARIABILE DE MEDIU "
+
+#~ msgid "NOTES "
+#~ msgstr "NOTE "
+
+#~ msgid "BUGS "
+#~ msgstr "ERORI "
+
+#~ msgid "EXAMPLES "
+#~ msgstr "EXEMPLE "
diff --git a/po-man/ro/free.1 b/po-man/ro/free.1
new file mode 100644
index 0000000..cd1a5dc
--- /dev/null
+++ b/po-man/ro/free.1
@@ -0,0 +1,177 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2003 Albert Cahalan
+.\" Copyright (c) 1993 Matt Welsh <mdw@sunsite.unc.edu>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH FREE 1 02.05.2023 procps\-ng "Comenzi utilizator"
+.SH NUME
+free \- Afișează cantitatea de memorie liberă și utilizată din sistem
+.SH REZUMAT
+\fBfree\fP [\fIopțiuni\fP]
+.SH DESCRIERE
+\fBfree\fP afișează cantitatea totală de memorie fizică și swap liberă și
+utilizată din sistem, precum și dimensiunile memoriilor tampon(buffer) și a
+zonelor de prestocare(cache) utilizate de nucleu. Informațiile sunt
+colectate prin analizarea fișierului \fI/proc/meminfo\fP. Coloanele afișate
+sunt:
+.TP
+\fBtotală\fP
+Memoria totală utilizabilă (MemTotal și SwapTotal în
+„/proc/meminfoâ€. Aceasta include memoria fizică È™i memoria spaÈ›iului de
+interschimb (swap) minus câțiva biți rezervați și codul binar al nucleului.
+.TP
+\fButilizată\fP
+Memoria utilizată sau indisponibilă (calculată ca \fBtotală\fP \-
+\fBdisponibilă\fP)
+.TP
+\fBliberă\fP
+Memoria neutilizată (MemFree È™i SwapFree din „/proc/meminfoâ€)
+.TP
+\fBpartajată\fP
+Memoria utilizată (în mare parte) de tmpfs (Shmem din „/proc/meminfoâ€)
+.TP
+\fBmemoriile tampon(buffers)\fP
+Memoria utilizată de memoriile tampon ale nucleului (Buffers din
+„/proc/meminfoâ€)
+.TP
+\fBzonele de prestocare(cache)\fP
+Memoria utilizată de zonele de prestocare ale paginării È™i de „slabsâ€
+(Cached și SReclaimable din „/proc/meminfo„)
+.TP
+\fBbuff/cache\fP
+Suma dintre \fBmemoriile tampon(buffers)\fP și \fBzonele de prestocare(cache)\fP
+.TP
+\fBdisponibilă\fP
+Estimarea cantității de memorie disponibilă pentru pornirea unor aplicații
+noi, fără schimbare. Spre deosebire de datele furnizate de câmpurile
+\fBzonele de prestocare(cache)\fP sau \fBliberă\fP, acest câmp ia în considerare
+zona de prestocare(cache) a paginii și, de asemenea, că nu toate blocurile
+de memorie „slabs†recuperabile vor fi recuperate din cauza elementelor care
+sunt în uz (MemAvailable în „/proc/meminfoâ€, disponibilă pe nucleele 3.14,
+emulat pe nucleele 2.6.27+, altfel la fel ca \fBliberă\fP)
+.SH OPÈšIUNI
+.TP
+\fB\-b\fP, \fB\-\-bytes\fP
+Afișează cantitatea de memorie în octeți.
+.TP
+\fB\-k\fP, \fB\-\-kibi\fP
+Afișează cantitatea de memorie în kibiocteți. Aceasta este valoarea
+implicită.
+.TP
+\fB\-m\fP, \fB\-\-mebi\fP
+Afișează cantitatea de memorie în mebiocteți.
+.TP
+\fB\-g\fP, \fB\-\-gibi\fP
+Afișează cantitatea de memorie în gibiocteți.
+.TP
+\fB\-\-tebi\fP
+Afișează cantitatea de memorie în tebiocteți.
+.TP
+\fB\-\-pebi\fP
+Afișează cantitatea de memorie în pebiocteți.
+.TP
+\fB\-\-kilo\fP
+Afișează cantitatea de memorie în kiloocteți. Implică utilizarea opțiunii
+„\-\-siâ€.
+.TP
+\fB\-\-mega\fP
+Afișează cantitatea de memorie în megaocteți. Implică utilizarea opțiunii
+„\-\-siâ€.
+.TP
+\fB\-\-giga\fP
+Afișează cantitatea de memorie în gigaocteți. Implică utilizarea opțiunii
+„\-\-siâ€.
+.TP
+\fB\-\-tera\fP
+Afișează cantitatea de memorie în teraocteți. Implică utilizarea opțiunii
+„\-\-siâ€.
+.TP
+\fB\-\-peta\fP
+Afișează cantitatea de memorie în petaocteți. Implică utilizarea opțiunii
+„\-\-siâ€.
+.TP
+\fB\-h\fP, \fB\-\-human\fP
+Afișează toate câmpurile de ieșire scalate automat la cea mai scurtă unitate
+de trei cifre și afișează unitățile de măsură. Sunt utilizate următoarele
+unități.
+.sp
+.nf
+ B = octeți
+ Ki = kibiocteți
+ Mi = mebiocteți
+ Gi = gibiocteți
+ Ti = tebiocteți
+ Pi = pebiocteți
+.fi
+.sp
+Dacă unitatea lipsește și aveți extra\-biocteți de RAM sau swap, numărul este
+în tebiocteți, iar coloanele ar putea să nu fie aliniate cu antetul(titlul).
+.TP
+\fB\-w\fP, \fB\-\-wide\fP
+Comută la modul larg. Modul larg produce linii mai lungi de 80 de
+caractere. În acest mod, \fBmemoriile tampon(buffers)\fP și \fBzonele de prestocare(cache)\fP sunt raportate în două coloane separate.
+.TP
+\fB\-c\fP, \fB\-\-count\fP \fIN\-ori\fP
+Afișează rezultatul de \fInumăr\fP ori. Necesită opțiunea \fB\-s\fP.
+.TP
+\fB\-l\fP, \fB\-\-lohi\fP
+Afișează statistici detaliate despre memorie scăzută(lowmem) și
+ridicată(highmem).
+.TP
+\fB\-L\fP, \fB\-\-line\fP
+Afișează ieșirea pe o singură linie, adesea utilizată împreună cu opțiunea
+\fB\-s\fP pentru a afișa statisticile de memorie în mod repetat.
+.TP
+\fB\-s\fP, \fB\-\-seconds\fP \fIîntârzierea\fP
+Afișează în mod continuu rezultatul la un interval de \fIîntârziere\fP
+secunde. Puteți specifica, de fapt, orice număr zecimal pentru
+\fIîntârziere\fP folosind fie «.», fie «,» pentru a marca virgula zecimală.
+\fBusleep\fP(3) este utilizată pentru timpii de întârziere ai rezoluției în
+microsecunde.
+.TP
+\fB\-\-si\fP
+Utilizează kilo, mega, giga, etc (putere de 1000) în loc de kibi, mebi, gibi
+(putere de 1024).
+.TP
+\fB\-t\fP, \fB\-\-total\fP
+Afișează o linie care arată totalurile coloanelor.
+.TP
+\fB\-v\fP, \fB\-\-committed\fP
+Afișează o linie care arată limita de alocare a memoriei și cantitatea de
+memorie alocată/nealocată. Coloana \fBtotal\fP de pe această linie va afișa
+limita de alocare a memoriei. Această linie este relevantă dacă
+supralocarea memoriei este dezactivată.
+.TP
+\fB\-\-help\fP
+Afișează mesajul de ajutor.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Afișați informațiile despre versiune.
+.PD
+.SH FIȘIERE
+.TP
+/proc/meminfo
+informații despre memorie
+.PD
+.SH ERORI
+Valoarea pentru coloana \fBpartajată\fP nu este disponibilă în nucleele
+dinainte de versiunea 2.6.32, și este afișată ca zero.
+.TP
+Trimiteți rapoartele de erori la
+.UR procps@freelists.org
+.UE
+.SH "CONSULTAȚI ȘI"
+\fBps\fP(1), \fBslabtop\fP(1), \fBtop\fP(1), \fBvmstat\fP(8).
diff --git a/po-man/ro/kill.1 b/po-man/ro/kill.1
new file mode 100644
index 0000000..e124a82
--- /dev/null
+++ b/po-man/ro/kill.1
@@ -0,0 +1,94 @@
+.\"
+.\" Copyright (c) 2002-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1998-2003 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH KILL 1 16.01.2023 procps\-ng "Comenzi utilizator"
+.SH NUME
+kill \- trimite un semnal către un proces
+.SH REZUMAT
+\fBkill\fP [\fIopțiuni\fP] <pid> [...]
+.SH DESCRIERE
+Semnalul implicit pentru «kill» este TERM. Utilizați opțiunea \fB\-l\fP sau
+\fB\-L\fP pentru a lista semnalele disponibile. Semnalele care sunt în mod
+special utile sunt: HUP, INT, KILL, STOP, CONT și 0. Semnalele pot fi
+indicate în trei moduri diferite: \fB\-9\fP, \fB\-SIGKILL\fP sau \fB\-KILL\fP. Valorile
+PID negative pot fi utilizate pentru a alege grupuri întregi de procese;
+vedeți coloana PGID din ieșirea comenzii «ps». Un PID de \fB\-1\fP este
+special; indică toate procesele, cu excepția procesului «kill» însuși și a
+procesului «init».
+.SH OPÈšIUNI
+.TP
+\fB<pid> [...]\fP
+Trimite un semnal către fiecare <pid> listat.
+.TP
+\fB\-<semnal>\fP
+.TQ
+\fB\-s <semnal>\fP
+.TQ
+\fB\-\-signal <semnal>\fP
+Specifică \fBsemnalul\fP care trebuie trimis. Semnalul poate fi specificat
+folosind numele sau numărul. Comportamentul semnalelor este explicat în
+pagina de manual \fBsignal\fP(7).
+.TP
+\fB\-q\fP, \fB\-\-queue \fP\fIvaloare\fP
+Utilizează \fBsigqueue\fP(3) mai degrabă decât \fBkill\fP(2) și valoarea
+argumentului este folosită pentru a specifica un număr întreg care trebuie
+trimis împreună cu semnalul. Dacă procesul de recepție a instalat un
+operator pentru a gestiona acest semnal utilizând indicatorul SA_SIGINFO la
+\fBsigaction\fP(2), atunci poate obține aceste date prin câmpul si_value al
+structurii siginfo_t.
+.TP
+\fB\-l\fP, \fB\-\-list\fP [\fIsemnal\fP]
+Listează numele semnalelor. Această opțiune are un argument opțional, care
+va converti numărul semnalului în nume de semnal sau invers.
+.TP
+\fB\-L\fP, \fB\-table\fP
+Listează numele semnalelor într\-un tabel amiabil.
+.TP
+.PD
+.SH NOTE
+Shell\-ul dumneavoastră (interpretul de linie de comandă) poate avea o
+comandă «kill» încorporată. Poate fi necesar să rulați comanda descrisă
+aici ca «/bin/kill» pentru a rezolva conflictul.
+.SH EXEMPLE
+.TP
+\fBkill \-9 \-1\fP
+Omoară toate procesele pe care le puteți omorî.
+.TP
+\fBkill \-l 11\fP
+Transformă numărul 11 într\-un nume de semnal.
+.TP
+\fBkill \-L\fP
+Listează opțiunile de semnal disponibile într\-un tabel amiabil.
+.TP
+\fBkill 123 543 2341 3453\fP
+Trimite semnalul implicit, SIGTERM, tuturor acestor procese.
+.SH "CONSULTAȚI ȘI"
+\fBkill\fP(2), \fBkillall\fP(1), \fBnice\fP(1), \fBpkill\fP(1), \fBrenice\fP(1),
+\fBsignal\fP(7), \fBsigqueue\fP(3), \fBskill\fP(1)
+.SH STANDARDE
+Această comandă îndeplinește standardele adecvate. Indicatorul \fB\-L\fP este
+specific pentru Linux.
+.SH AUTOR
+.UR albert@users.sf.net
+Albert Cahalan
+.UE
+a scris «kill» în 1999
+pentru a înlocui pe cel din „bsdutils†care nu era conform cu standardele.
+Cel din „util\-linux†ar putea, de asemenea, să funcționeze corect.
+.SH "RAPORTAREA ERORILOR"
+Trimiteți rapoartele de eroare la
+.UR procps@freelists.org
+.UE
diff --git a/po-man/ro/pgrep.1 b/po-man/ro/pgrep.1
new file mode 100644
index 0000000..fa9b8f6
--- /dev/null
+++ b/po-man/ro/pgrep.1
@@ -0,0 +1,260 @@
+.\"
+.\" Copyright (c) 2004-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2004 Albert Cahalan
+.\" Copyright (c) 2000 Kjetil Torgrim Homme
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PGREP 1 16.01.2023 procps\-ng "Comenzi utilizator"
+.SH NUME
+pgrep, pkill, pidwait \- caută, semnalează sau așteaptă procesele pe baza
+numelui și a altor atribute
+.SH REZUMAT
+\fBpgrep\fP [opțiuni] model
+.br
+\fBpkill\fP [opțiuni] model
+.br
+\fBpidwait\fP [opțiuni] model
+.SH DESCRIERE
+\fBpgrep\fP examinează procesele care rulează în prezent și listează ID\-urile
+proceselor care corespund criteriilor de selecție la ieșirea standard.
+Toate criteriile trebuie să se potrivească. De exemplu,
+.IP
+$ pgrep \-u root sshd
+.PP
+va lista numai procesele numite \fBsshd\fP ȘI deținute de \fBroot\fP. Pe de altă
+parte,
+.IP
+$ pgrep \-u root,daemon
+.PP
+va lista procesele deținute de \fBroot\fP SAU \fBdaemon\fP.
+.PP
+\fBpkill\fP va trimite semnalul specificat (în mod implicit \fBSIGTERM\fP) către
+fiecare proces în loc să le listeze la ieșirea standard.
+.PP
+\fBpidwait\fP va aștepta pentru fiecare proces în loc să le listeze la ieșirea
+standard.
+.SH OPÈšIUNI
+.TP
+\fB\-\fP\fIsemnal\fP
+.TQ
+\fB\-\-signal\fP \fIsemnal\fP
+Definește semnalul care urmează să fie trimis fiecărui proces asociat. Se
+poate utiliza fie numele numeric, fie numele simbolic al semnalului. ÃŽn
+modul \fBpgrep\fP sau \fBpidwait\fP, se poate utiliza numai opțiunea lungă, care
+nu are niciun efect, cu excepția cazului în care este utilizată împreună cu
+\fB\-\-require\-handler\fP pentru a filtra procesele care au un gestionar de
+semnal în spațiul utilizatorului pentru un anumit semnal.
+
+.TP
+\fB\-c\fP, \fB\-\-count\fP
+Suprimă ieșirea normală; în schimb, afișează un număr de procese de
+potrivire. Când numărul nu corespunde cu nimic, de exemplu returnează zero,
+comanda va returna o valoare diferită de zero. Rețineți că pentru pkill și
+pidwait, numărul este numărul de procese de potrivire, nu procesele care au
+fost semnalate cu succes sau așteptate.
+.TP
+\fB\-d\fP, \fB\-\-delimiter\fP \fIdelimitator\fP
+Stabilește șirul utilizat pentru a delimita fiecare ID de proces din ieșire
+(în mod implicit, o linie nouă). (Numai \fBpgrep\fP.)
+.TP
+\fB\-e\fP, \fB\-\-echo\fP
+Afișează numele și PID\-ul procesului în curs de omorâre. (Numai \fBpkill\fP.)
+.TP
+\fB\-f\fP, \fB\-\-full\fP
+\fImodelul\fP se potrivește în mod normal doar cu numele procesului. Când este
+dată opțiunea \fB\-f\fP, se utilizează linia de comandă completă.
+.TP
+\fB\-g\fP, \fB\-\-pgroup\fP \fIPGID\fP,...
+Potrivește numai procesele din ID\-urile grupului de procese enumerate.
+Grupul de procese 0 este convertit în grupul de procese propriu al lui
+\fBpgrep\fP, \fBpkill\fP sau \fBpidwait\fP.
+.TP
+\fB\-G\fP, \fB\-\-group\fP \fIGID\fP,...
+Potrivește numai procesele al căror ID de grup real este listat. Se poate
+folosi fie valoarea numerică, fie valoarea simbolică.
+.TP
+\fB\-i\fP, \fB\-\-ignore\-case\fP
+Potrivește procesele fără a ține seama de diferența dintre majuscule și
+minuscule.
+.TP
+\fB\-l\fP, \fB\-\-list\-name\fP
+Listează numele procesului, precum și ID\-ul procesului. (Numai \fBpgrep\fP.)
+.TP
+\fB\-a\fP, \fB\-\-list\-full\fP
+Listează linia de comandă completă, precum și ID\-ul procesului. (Numai
+\fBpgrep\fP.)
+.TP
+\fB\-n\fP, \fB\-\-newest\fP
+Selectează doar cel mai nou (cel mai recent început) dintre procesele care
+s\-au potrivit modelului dat.
+.TP
+\fB\-o\fP, \fB\-\-oldest\fP
+Selectați doar cel mai vechi (cel mai puțin recent) început dintre procesele
+care s\-au potrivit modelului dat.
+.TP
+\fB\-O\fP, \fB\-\-older\fP \fIsecunde\fP
+Selectează procesele mai vechi de \fIsecunde\fP secunde.
+.TP
+\fB\-P\fP, \fB\-\-parent\fP \fIppid\fP,...
+Potrivește doar procesele al căror ID de proces părinte este listat.
+.TP
+\fB\-s\fP, \fB\-\-session\fP \fISID\fP,...
+Potrivește doar procesele al căror ID de sesiune de proces este listat.
+ID\-ul de sesiune 0 este convertit în ID\-ul de sesiune al lui \fBpgrep\fP,
+\fBpkill\fP sau \fBpidwait\fP.
+.TP
+\fB\-t\fP, \fB\-\-terminal\fP \fIterminal\fP,...
+Potrivește numai procesele al căror terminal de control este listat. Numele
+terminalului trebuie specificat fără prefixul „/dev/â€.
+.TP
+\fB\-u\fP, \fB\-\-euid\fP \fIuid_efectiv\fP,...
+Potrivește numai procesele al căror ID de utilizator efectiv este listat.
+Se poate folosi fie valoarea numerică, fie valoarea simbolică.
+.TP
+\fB\-U\fP, \fB\-\-uid\fP \fIuid\fP,...
+Potrivește numai procesele al căror ID de utilizator real este listat. Se
+poate folosi fie valoarea numerică, fie valoarea simbolică.
+.TP
+\fB\-v\fP, \fB\-\-inverse\fP
+Inversează rezultatul potrivirii(va afișa toate procesele ce NU se potrivesc
+cu modelul). Această opțiune este de obicei folosită în contextul lui
+\fBpgrep\fP sau \fBpidwait\fP. În contextul lui \fBpkill\fP, opțiunea scurtă este
+dezactivată pentru a evita utilizarea accidentală a opțiunii.
+.TP
+\fB\-w\fP, \fB\-\-lightweight\fP
+Afișează toate ID\-urile firelor de execuție în loc de id\-urile proceselor în
+contextul lui \fBpgrep\fP sau \fBpidwait\fP. În contextul lui \fBpkill\fP, această
+opțiune este dezactivată.
+.TP
+\fB\-x\fP, \fB\-\-exact\fP
+Potrivește numai procesele ale căror nume (sau linii de comandă dacă este
+specificată opțiunea \fB\-f\fP) se potrivesc \fBexact\fP cu \fImodelul\fP.
+.TP
+\fB\-F\fP, \fB\-\-pidfile\fP \fIfișier\fP
+Citește \fIPID\fP\-urile din \fIfișier\fP. Această opțiune este mai utilă pentru
+\fBpkill\fP sau \fBpidwait\fP decât pentru \fBpgrep\fP.
+.TP
+\fB\-L\fP, \fB\-\-logpidfile\fP
+Eșuează dacă fișierul pid (a se vedea \fB\-F\fP) nu este blocat.
+.TP
+\fB\-r\fP, \fB\-\-runstates\fP \fID,R,S,Z,\fP...
+Potrivește numai procesele care se potrivesc cu starea procesului.
+.TP
+\fB\-A\fP, \fB\-\-ignore\-ancestors\fP
+Ignoră toți antecesorii lui \fBpgrep\fP, \fBpkill\fP și \fBpidwait\fP. De exemplu,
+acest lucru poate fi util atunci când escaladați drepturile de acces
+folosind \fBsudo\fP sau instrumente similare.
+.TP
+\fB\-H\fP, \fB\-\-require\-handler\fP
+Se potrivește numai cu procesele care au un gestionar de semnal din spațiul
+utilizatorului prezent pentru semnalul care urmează să fie trimis.
+.TP
+\fB\-\-cgroup \fP\fInume\fP\fB,...\fP
+Potriviți pe numele grupului de control (cgroup) v2 furnizat. A se vedea
+\fBcgroups\fP(8)
+.TP
+\fB\-\-ns\fP \fIpid\fP
+Potrivește procesele care aparțin acelorași spații de nume. Este necesar să
+ruleze ca root pentru a potrivi procesele de la alți utilizatori. Consultați
+\fB\-\-nslist\fP pentru cum să limitați spațiile de nume care să corespundă.
+.TP
+\fB\-\-nslist \fP\fInume\fP\fB,...\fP
+Potrivește numai spațiile de nume furnizate. Spațiile de nume disponibile,
+sunt: ipc, mnt, net, pid, user, uts.
+.TP
+\fB\-q\fP, \fB\-\-queue \fP\fIvaloare\fP
+Utilizează \fBsigqueue\fP(3) mai degrabă decât \fBkill\fP(2) și valoarea
+argumentului este folosită pentru a specifica un număr întreg care trebuie
+trimis împreună cu semnalul. Dacă procesul de recepție a instalat un
+operator pentru a gestiona acest semnal utilizând indicatorul SA_SIGINFO la
+\fBsigaction\fP(2), atunci poate obține aceste date prin câmpul si_value al
+structurii siginfo_t.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Afișează informațiile despre versiune și iese.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Afișează mesajul de ajutor și iese.
+.PD
+.SH OPERANZI
+.TP
+\fImodel\fP
+Specifică o expresie regulată extinsă pentru potrivirea cu numele proceselor
+sau liniile de comandă.
+.SH EXEMPLE
+Exemplul 1: Găsiți ID\-ul de proces al demonului \fBnamed\fP:
+.IP
+$ pgrep \-u root named
+.PP
+Exemplul 2: Face ca \fBsyslog\fP să recitească fișierul său de configurare:
+.IP
+$ pkill \-HUP syslogd
+.PP
+Exemplul 3: Oferă informații detaliate despre toate procesele \fBxterm\fP:
+.IP
+$ ps \-fp $(pgrep \-d, \-x xterm)
+.PP
+Exemplul 4: Face ca toate procesele \fBchrome\fP să ruleze cu o valoare „niceâ€,
+incrementată (să ruleze cu o prioritate mai mică):
+.IP
+$ renice +4 $(pgrep chrome)
+.SH "STARE DE IEȘIRE"
+.PD 0
+.TP
+0
+Unul sau mai multe procese s\-au potrivit cu criteriile. Pentru \fBpkill\fP și
+\fBpidwait\fP, unul sau mai multe procese trebuie, de asemenea, să fi fost
+semnalate sau așteptate cu succes.
+.TP
+1
+Niciun proces nu s\-a potrivit sau niciunul dintre ele nu a putut fi
+semnalat.
+.TP
+2
+Eroare de sintaxă în linia de comandă.
+.TP
+3
+Eroare fatală: memorie insuficientă, etc.
+.PD
+.SH NOTE
+Numele procesului folosit pentru potrivire este limitat la cele 15 caractere
+prezente în ieșirea /proc/\fIpid\fP/stat. Utilizați opțiunea \fB\-f\fP pentru a se
+potrivi cu linia de comandă completă, /proc/\fIpid\fP/cmdline. Este posibil ca
+firele de execuție să nu aibă același nume de proces ca și procesul părinte,
+dar vor avea aceeași linie de comandă.
+.PP
+Procesul care rulează \fBpgrep\fP, \fBpkill\fP sau \fBpidwait\fP nu se va raporta
+niciodată ca o potrivire.
+.PP
+Opțiunea \fB\-O \-\-older\fP va eșua în tăcere dacă \fI/proc\fP este montat cu
+opțiunea \fIsubset=pid\fP.
+.SH ERORI
+Opțiunile \fB\-n\fP și \fB\-o\fP și \fB\-v\fP nu pot fi combinate. Anunțați autorii,
+dacă credeți că este necesar să puteți face asta.
+.PP
+Sunt raportate procesele defuncte.
+.PP
+\fBpidwait\fP necesită apelul de sistem \fBpidfd_open\fP(2) care a apărut pentru
+prima dată în nucleul Linux versiunea 5.3.
+.SH "CONSULTAȚI ȘI"
+\fBps\fP(1), \fBregex\fP(7), \fBsignal\fP(7), \fBsigqueue\fP(3), \fBkillall\fP(1),
+\fBskill\fP(1), \fBkill\fP(1), \fBkill\fP(2), \fBcgroups\fP(8).
+.SH AUTOR
+.UR kjetilho@ifi.uio.no
+Kjetil Torgrim Homme
+.UE
+.SH "RAPORTAREA ERORILOR"
+Trimiteți rapoartele de eroare la
+.UR procps@freelists.org
+.UE
diff --git a/po-man/ro/pidof.1 b/po-man/ro/pidof.1
new file mode 100644
index 0000000..13456b6
--- /dev/null
+++ b/po-man/ro/pidof.1
@@ -0,0 +1,77 @@
+.\"
+.\" Copyright (c) 2018-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2019-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013 Jaromir Capik <jcapik@redhat.com>
+.\" Copyright (c) 1998 Miquel van Smoorenburg
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PIDOF 1 16.01.2023 "" "Comenzi utilizator"
+.SH NUME
+pidof \- găsește ID\-ul de proces al unui program care rulează
+.SH REZUMAT
+\fBpidof\fP [\fB\-s\fP] [\fB\-c\fP] [\fB\-q\fP] [\fB\-w\fP] [\fB\-x\fP] [\fB\-o\fP
+\fIomitpid[,omitpid...]...\fP] [\fB\-t\fP] [\fB\-S\fP \fIseparator\fP] \fIprogram\fP
+\fI[\fP\fBprogram...\fP\fI]\fP
+.SH DESCRIERE
+\fBPidof\fP găsește ID\-urile de proces (pid\-urile) ale programelor numite.
+Afișează acele id\-uri la ieșirea standard.
+.SH OPÈšIUNI
+.IP \fB\-s\fP
+O singură „împușcătură†\- această opțiune indică programului să returneze
+doar un \fIpid\fP.
+.IP \fB\-c\fP
+Returnează numai ID\-urile de proces care rulează cu același director
+rădăcină. Această opțiune este ignorată pentru utilizatorii non\-root,
+deoarece aceștia nu vor putea verifica directorul rădăcină curent al
+proceselor pe care nu le dețin.
+.IP \fB\-q\fP
+Modul silențios, suprimă orice ieșire și afișează numai starea de
+ieșire(codul de ieșire) corespunzătoare.
+.IP \fB\-w\fP
+Afișează, de asemenea, procesele care nu au linie de comandă vizibilă (de
+exemplu firele de execuție ale kernelului).
+.IP \fB\-x\fP
+Scripturi de asemenea \- acest lucru face ca programul să returneze și
+ID\-urile de proces ale shell\-urilor care rulează scripturile numite.
+.IP "\fB\-o\fP \fIomitpid\fP"
+Îi indică lui \fBpidof\fP să omită procesele cu acel ID de proces. Pid\-ul
+special \fB%PPID\fP poate fi folosit pentru a numii procesul părinte al
+programului \fBpidof\fP, cu alte cuvinte shell\-ul de apelare sau scriptul
+shell.
+.IP \fB\-t\fP
+Afișează toți identificatorii firelor de execuție în loc de identificatorii
+proceselor.
+.IP "\fB\-S\fP \fIseparator\fP"
+Utilizează \fIseparator\fP ca separator pus între pid\-uri. Folosit numai atunci
+când sunt afișate mai multe pid\-uri pentru program. Opțiunea \fB\-d\fP este un
+alias pentru această opțiune pentru compatibilitate cu sysvinit \fBpidof\fP.
+.SH "STARE DE IEȘIRE"
+.TP
+\fB0\fP
+A fost găsit cel puțin un program cu numele solicitat.
+.TP
+\fB1\fP
+Nu a fost găsit niciun program cu numele solicitat.
+
+.SH ERORI
+Când se utilizează opțiunea \fB\-x\fP, \fBpidof\fP are doar o metodă simplă de
+detectare a scripturilor și va pierde scripturile care, de exemplu, folosesc
+„envâ€. Această limitare se datorează modului în care arată scripturile în
+sistemul de fișiere \fIproc\fP.
+
+.SH "CONSULTAȚI ȘI"
+\fBpgrep\fP(1), \fBpkill\fP(1)
+.SH AUTOR
+.UR jcapik@redhat.com
+Jaromir Capik
+.UE
diff --git a/po-man/ro/pmap.1 b/po-man/ro/pmap.1
new file mode 100644
index 0000000..82f7ff4
--- /dev/null
+++ b/po-man/ro/pmap.1
@@ -0,0 +1,98 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2013 Jaromir Capik <jcapik@redhat.com>
+.\" Copyright (c) 1998-2002 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\" (The preceding line is a note to broken versions of man to tell
+.\" them to pre-process this man page with tbl)
+.\" Man page for pmap.
+.\" Licensed under version 2 of the GNU General Public License.
+.\" Written by Albert Cahalan.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PMAP 1 04.06.2020 procps\-ng "Comenzi utilizator"
+.SH NUME
+pmap \- raportează harta de memorie a unui proces
+.SH REZUMAT
+\fBpmap\fP [\fIopțiuni\fP] \fIpid\fP [...]
+.SH DESCRIERE
+Comanda \fBpmap\fP raportează harta de memorie a unui proces sau procese.
+.SH OPÈšIUNI
+.TP
+\fB\-x\fP, \fB\-\-extended\fP
+Afișează formatul extins.
+.TP
+\fB\-d\fP, \fB\-\-device\fP
+Afișează formatul dispozitivului.
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+Nu afișează unele linii de antet sau de subsol.
+.TP
+\fB\-A\fP, \fB\-\-range\fP \fIlimită_inferioară\fP,\fIlimită_superioară\fP
+Limitează rezultatele la intervalul dat de intervalul de adrese
+\fIlimită_inferioară\fP și \fIlimită_superioară\fP. Observați că argumentele
+\fIlimită_inferioară\fP și \fIlimită_superioară\fP sunt un singur șir separate
+prin virgulă.
+.TP
+\fB\-X\fP
+Afișează și mai multe detalii decât opțiunea \fB\-x\fP. AVERTISMENT: formatul se
+modifică conform \fI/proc/PID/smaps\fP
+.TP
+\fB\-XX\fP
+Afișează toate datele ce le furnizează nucleul
+.TP
+\fB\-p\fP, \fB\-\-show\-path\fP
+Afișează calea completă către fișiere în coloana de asociere
+.TP
+\fB\-c\fP, \fB\-\-read\-rc\fP
+Citește configurația implicită
+.TP
+\fB\-C\fP, \fB\-\-read\-rc\-from\fP \fIfișier\fP
+Citește configurația din \fIfișier\fP
+.TP
+\fB\-n\fP, \fB\-\-create\-rc\fP
+Creează o nouă configurație implicită
+.TP
+\fB\-N\fP, \fB\-\-create\-rc\-to\fP \fIfișier\fP
+Creează o nouă configurație în \fIfișier\fP
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Afișează acest mesaj de ajutor.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Afișează informațiile despre versiune și iese.
+.SH "STARE DE IEȘIRE"
+.PP
+.RS
+.PD 0
+.TP
+\fB0\fP
+Succes.
+.TP
+\fB1\fP
+Eșec.
+.TP
+\fB42\fP
+Nu s\-au găsit toate procesele solicitate.
+.PD
+.RE
+.SH "CONSULTAȚI ȘI"
+\fBps\fP(1), \fBpgrep\fP(1)
+.SH STANDARDE
+Nu este respectat niciun standard, dar \fBpmap\fP seamănă foarte mult cu o
+comandă SunOS.
+.SH "RAPORTAREA ERORILOR"
+Trimiteți rapoartele de eroare la
+.UR procps@freelists.org
+.UE
diff --git a/po-man/ro/procps.3 b/po-man/ro/procps.3
new file mode 100644
index 0000000..c4073bb
--- /dev/null
+++ b/po-man/ro/procps.3
@@ -0,0 +1,183 @@
+.\"
+.\" Copyright (c) 2020-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2020-2023 Craig Small <csmall@dropbear.xyz>
+.\"
+.\" This manual is free software; you can redistribute it and/or
+.\" modify it under the terms of the GNU Lesser General Public
+.\" License as published by the Free Software Foundation; either
+.\" version 2.1 of the License, or (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PROCPS 3 "august 2022" libproc2
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.nh
+.SH NUME
+procps \- API (interfață de program) pentru a accesa informații la nivel de
+sistem din sistemul de fiÈ™iere „/procâ€
+
+.SH REZUMAT
+Cinci interfețe distincte sunt reprezentate în acest rezumat și numite după
+fiÈ™ierele pe care le accesează în pseudosistemul de fiÈ™iere „/procâ€:
+\fBdiskstats\fP, \fBmeminfo\fP, \fBslabinfo\fP, \fBstat\fP și \fBvmstat\fP.
+
+.nf
+.RS +4
+#include <libproc2/\fBinterfața_numită\fP.h>
+
+int\fB procps_new \fP (struct info **\fIinfo\fP);
+int\fB procps_ref \fP (struct info *\fIinfo\fP);
+int\fB procps_unref\fP (struct info **\fIinfo\fP);
+
+struct result *\fBprocps_get\fP (
+ struct info *\fIinfo\fP,
+[ const char *\fIname\fP, ] doar interfața programului \fBdiskstats\fP
+ enum item \fIitem\fP);
+
+struct stack *\fBprocps_select\fP (
+ struct info *\fIinfo\fP,
+[ const char *\fIname\fP, ] doar interfața programului \fBdiskstats\fP
+ enum item *\fIitems\fP,
+ int \fInumitems\fP);
+
+struct reaped *\fBprocps_reap\fP (
+ struct info *\fIinfo\fP,
+[ enum reap_type \fIwhat\fP, ] doar interfața programului \fBstat\fP
+ enum item *\fIitems\fP,
+ int \fInumitems\fP);
+
+struct stack **\fBprocps_sort\fP (
+ struct info *\fIinfo\fP,
+ struct stack *\fIstacks\fP[],
+ int \fInumstacked\fP,
+ enum item \fIsortitem\fP,
+ enum sort_order \fIorder\fP);
+
+.fi
+
+Funcțiile și structurile de mai sus sunt generice, dar specificația
+\fBinterfața_numită\fP ar fi, de asemenea, parte a oricăror identificatori. De
+exemplu, „procps_new†ar fi de fapt „procps_\fBmeminfo\fP_new†și „info†ar fi
+cu adevărat „\fBdiskstats\fP_infoâ€, etc.
+
+Același nume de \fBinterfața_numită\fP este folosit în fiecare nume de fișier
+antet cu un sufix `.h'.
+
+Legătură cu \fI\-lproc2\fP.
+
+.SH DESCRIERE
+.SS "Prezentare generală"
+Esențial pentru aceste interfețe este o structură simplă de „rezultat†care
+reflectă un „element†plus valoarea acestuia (într\-o uniune cu tipuri de
+limbaj C standard ca membri). Toate structurile „rezultat†sunt alocate și
+furnizate automat de bibliotecă.
+
+Prin specificarea unei matrice de „elementeâ€, aceste structuri pot fi
+organizate ca o „stivăâ€, cu potenÈ›ialul de\-a produce multe rezultate cu un
+singur apel către funcție. Astfel, o „stivă†poate fi văzută ca o
+înregistrare cu lungime variabilă al cărei conținut și ordine sunt
+determinate exclusiv de utilizator.
+
+Ca parte a fiecărei interfețe există doi enumeratori unici. Elementele
+„noop†și „extra†există pentru a păstra valorile utilizatorului. Ele nu
+sunt niciodată definite de bibliotecă, dar rezultatul „extra†va fi redus la
+zero cu fiecare interacțiune cu bibliotecă.
+
+Documentul de bază în dezvoltarea unui program de utilizator va fi fișierul
+antet \fBinterfața_numită\fP. Acolo veți găsi elementele disponibile, tipul pe
+care acestea îl returnează (numele membrului structurii „rezultat)†și sursa
+acestor valori. Acolo sunt de asemenea documentați enumeratori și structuri
+suplimentare.
+
+.SS Utilizare
+Următoarele linii, ar fi o secvență tipică de apeluri la aceste interfețe.
+
+.nf
+1. \fBprocps_new()\fP
+2. \fBprocps_get()\fP, \fBprocps_select()\fP sau \fBprocps_reap()\fP
+3. \fBprocps_unref()\fP
+.fi
+
+Funcția \fBget\fP este folosită pentru a prelua o structură „rezultat†pentru
+un singur „elementâ€. Alternativ, o macrocomandă \fBGET\fP este disponibilă
+atunci când doar valoarea returnată este de interes.
+
+Funcția \fBselect\fP poate prelua mai multe structuri „rezultat†într\-o singură
+„stivăâ€.
+
+Pentru rezultate variabile imprevizibile, interfețele \fBdiskstats\fP,
+\fBslabinfo\fP și \fBstat\fP exportă o funcție \fBreap\fP. Este folosită pentru a
+prelua mai multe „stive†fiecare conÈ›inând mai multe structuri „rezultatâ€.
+Opțional, un utilizator poate alege să \fBsorteze\fP acele rezultate.
+
+Pentru a exploata orice „stivă†și pentru a accesa structuri „rezultatâ€
+individuale, este necesar un \fIrelative_enum\fP, așa cum se arată în
+macrocomanda \fBVAL\fP definită în fișierul antet. Astfel de valori ar putea
+fi codificate ca: de la 0 la numitems\-1. Cu toate acestea, această nevoie
+este de obicei satisfăcută prin crearea propriilor enumeratori
+corespunzători ordinii matricei „elementeâ€.
+
+.SS Avertismente
+Funcțiile \fBnew\fP, \fBref\fP, \fBunref\fP, \fBget\fP și \fBselect\fP sunt disponibile în
+toate cele cinci interfețe.
+
+Pentru funcțiile \fBnew\fP și \fBunref\fP, trebuie furnizată adresa unui indicator
+de structură \fIinfo\fP. Cu \fBnew\fP, acesta trebuie să fi fost inițializat la
+NULL. Cu \fBunref\fP va fi reinițializat la NULL dacă numărul de referințe
+ajunge la zero.
+
+În cazul interfeței \fBdiskstats\fP, un parametru \fIname\fP în funcțiile \fBget\fP
+și \fBselect\fP identifică un nume de disc sau partiție
+
+Pentru interfața \fBstat\fP, un parametru \fIwhat\fP în funcția \fBreap\fP identifică
+dacă trebuie adunate date doar pentru CPU\-uri sau atât pentru CPU\-uri cât și
+pentru nodurile NUMA.
+
+Când se utilizează funcția \fBsort\fP, parametrii \fIstaks\fP și \fInumstacked\fP ar
+fi în mod normal cei returnaÈ›i în structura „reapedâ€.
+
+.SH "VALOARE RETURNATÄ‚"
+.SS "Funcții care returnează un „int†(număr întreg)"
+O eroare va fi indicată printr\-un număr negativ care este întotdeauna
+inversul unei valori binecunoscute a errno.h.
+
+Succesul este indicat de o valoare de returnare zero. Cu toate acestea,
+funcțiile \fBref\fP și \fBunref\fP returnează numărul de referințe curent al
+structurii \fIinfo\fP.
+
+.SS "FuncÈ›ii care returnează o „adresăâ€"
+O eroare va fi indicată printr\-un indicator de returnare NULL cu motivul
+găsit în valoarea formală errno (număr eroare).
+
+Succesul este indicat de un indicator către structura numită.
+
+.SH DEPANAREA
+Pentru a ajuta la dezvoltarea programului, este prevăzută o facilitate care
+poate ajuta la asigurarea faptului că referinÈ›ele la membrii „rezultateâ€
+sunt în concordanță cu așteptările bibliotecii. Această facilitate
+presupune că macrocomanda furnizată în fișierul antet va fi utilizată pentru
+a accesa valoarea „rezultatâ€.
+
+Această caracteristică poate fi activată prin oricare dintre următoarele
+metode și orice discrepanțe vor fi scrise la \fBieșirea standard de eroare\fP.
+
+.IP 1) 3
+Adaugă CFLAGS='\-DXTRA_PROCPS_DEBUG' la orice alte opțiuni ./configure
+utilizate.
+
+.IP 2) 3
+Adaugă #include <procps/xtra\-procps\-debug.h> la orice program
+\fIdupă\fP comenzile include ale interfețelor numite.
+
+.PP
+Această caracteristică de verificare implică o suprasarcină substanțială.
+Prin urmare, este important ca aceasta să \fInu\fP fie activată pentru o
+versiune de producție/lansare.
+
+.SH "CONSULTAȚI ȘI"
+\fBprocps_misc\fP(3), \fBprocps_pids\fP(3), \fBproc\fP(5).
diff --git a/po-man/ro/procps_misc.3 b/po-man/ro/procps_misc.3
new file mode 100644
index 0000000..c58a2da
--- /dev/null
+++ b/po-man/ro/procps_misc.3
@@ -0,0 +1,157 @@
+.\"
+.\" Copyright (c) 2020-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2020-2023 Craig Small <csmall@dropbear.xyz>
+.\"
+.\" This manual is free software; you can redistribute it and/or
+.\" modify it under the terms of the GNU Lesser General Public
+.\" License as published by the Free Software Foundation; either
+.\" version 2.1 of the License, or (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PROCPS_MISC 3 "august 2022" libproc2
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.nh
+.SH NUME
+procps_misc \- API (interfață de program) pentru a accesa diverse informații
+din sistemul de fiÈ™iere „/procâ€
+.SH REZUMAT
+.nf
+\fB#include <libproc2/misc.h>\fP
+.PP
+Detalii platformă
+.RS 4
+.PP
+long \fBprocps_cpu_count\fP (void);
+long \fBprocps_hertz_get\fP (void);
+unsigned int \fBprocps_pid_length\fP (void);
+int \fBprocps_linux_version\fP (void);
+.RE
+.PP
+Detalii privind timpul de execuție
+.PP
+.RS 4
+int \fB procps_loadavg\fP (double *\fIav1\fP, double *\fIav5\fP, double *\fIav15\fP);
+int \fB procps_uptime\fP (double *\fIuptime_secs\fP, double *\fIidle_secs\fP);
+char *\fBprocps_uptime_sprint\fP (void);
+char *\fBprocps_uptime_sprint_short\fP (void);
+.RE
+.PP
+Detalii despre spațiul de nume
+.PP
+.RS 4
+int \fB procps_ns_get_id\fP (const char *\fIname\fP);
+const char\fB *procps_ns_get_name\fP (int \fIid\fP);
+int \fB procps_ns_read_pid\fP (int \fIpid\fP, struct procps_ns *\fInsp\fP);
+.RE
+
+Legătură cu \fI\-lproc2\fP.
+
+.SH DESCRIERE
+\fBprocps_cpu_count\fP() returnează numărul de procesoare care sunt în prezent
+active ca \fBsysconf(\fP\fI_SC_NPROCESSORS_ONLY\fP\fB)\fP sau un presupus \fI1\fP.
+
+\fBprocps_hertz_get\fP() returnează numărul de cicluri de ceas pe secundă ca
+\fBsysconf(\fP\fI_SC_CLK_TCK\fP\fB)\fP sau se presupunu o valoare de \fI100\fP.
+Împărțirea ciclurilor la această valoare generează secunde.
+
+\fBprocps_pid_length\fP() returnează lungimea maximă a șirului pentru un PID
+activ al sistemului. De exemplu, dacă cea mai mare valoare posibilă de PID
+activ a fost 123, atunci lungimea ar fi 3. Dacă fișierul
+\fI/proc/sys/kernel/pid_max\fP nu poate fi citit, se presupune că valoarea este
+\fI5\fP.
+
+\fBprocps_linux_version\fP() returnează versiunea curentă a nucleului Linux ca
+un întreg codificat. Pe sistemele non\-Linux care au un sistem de fișiere
+proc emulat, această funcție returnează versiunea emulării Linux. Versiunea
+constă din trei numere întregi pozitive reprezentând nivelurile major, minor
+și plasture(patch). Următoarele macrocomenzi sunt furnizate pentru a
+codifica o anumită versiune Linux sau pentru a separa componentele versiunii
+curente.
+.RS 4
+.PP
+LINUX_VERSION(\ major\ ,\ minor\ ,\ patch\ )
+.PP
+LINUX_VERSION_MAJOR(\ ver\ )
+.PP
+LINUX_VERSION_MINOR(\ ver\ )
+.PP
+LINUX_VERSION_PATCH(\ ver\ )
+.RE
+
+\fBprocps_loadavg\fP() preia media de încărcare a sistemului și plasează
+mediile de 1, 5 și 15 minute în locațiile specificate de orice indicator
+care nu este \fINULL\fP.
+
+\fBprocps_uptime\fP() returnează timpul de funcționare și/sau secundele de
+inactivitate în locațiile specificate de orice indicator care nu este
+\fINULL\fP. Utilizarea formatului \fBsprint\fP returnează un șir care poate fi
+citit de om în una dintre cele două forme.
+.RS 4
+.PP
+HH:MM:SS up HH:MM, # users, load average: 1, 5, 15 MM averages
+.PP
+up HH, MM
+.RE
+
+\fBprocps_ns_get_id\fP() returnează id\-ul întreg (enum namespace_type) al
+spațiului de nume pentru spațiul de nume dat \fInume\fP.
+
+\fBprocps_ns_get_name\fP() returnează numele spațiului de nume pentru \fIid\fP\-ul
+dat (enum namespace_type).
+
+\fBprocps_ns_read_pid\fP() returnează nodul\-i pentru spațiile de nume ale
+procesului dat în structura procps_ns indicată de \fInsp\fP. Acele noduri\-i
+vor apărea în ordinea prescrisă de enumerarea namespace_type.
+.PP
+.RS 4
+.nf
+enum namespace_type {
+ PROCPS_NS_CGROUP,
+ PROCPS_NS_IPC,
+ PROCPS_NS_MNT,
+ PROCPS_NS_NET,
+ PROCPS_NS_PID,
+ PROCPS_NS_TIME,
+ PROCPS_NS_USER,
+ PROCPS_NS_UTS
+};
+.fi
+.RE
+
+
+.SH "VALOARE RETURNATÄ‚"
+.SS "Funcții care returnează un „int†(număr întreg) sau un „long†(număr întreg lung)"
+O eroare va fi indicată printr\-un număr negativ care este întotdeauna
+inversul unei valori binecunoscute a errno.h.
+
+.SS "FuncÈ›ii care returnează o „adresăâ€"
+O eroare va fi indicată printr\-un indicator de returnare NULL cu motivul
+găsit în valoarea formală errno (număr eroare).
+
+.SH FIȘIERE
+.TP
+\fI/proc/loadavg\fP
+Valorile brute pentru media de încărcare.
+.TP
+\fI/proc/sys/kernel/osrelease\fP
+Conține versiunea de lansare a nucleului Linux sau a sistemului de fișiere
+proc.
+.TP
+\fI/proc/sys/kernel/pid_max\fP
+Conține valoarea la care se încadrează PID\-urile, cu una mai mare decât
+valoarea PID maximă.
+.TP
+\fI/proc/uptime\fP
+Valorile brute pentru timpul de funcționare și timpul de inactivitate.
+.TP
+\fI/proc/<PID>/ns\fP
+conține setul de spații de nume pentru un anumit \fBPID\fP.
+
+.SH "CONSULTAȚI ȘI"
+\fBprocps\fP(3), \fBprocps_pids\fP(3), \fBproc\fP(5).
diff --git a/po-man/ro/procps_pids.3 b/po-man/ro/procps_pids.3
new file mode 100644
index 0000000..46ec091
--- /dev/null
+++ b/po-man/ro/procps_pids.3
@@ -0,0 +1,208 @@
+.\"
+.\" Copyright (c) 2020-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2020-2023 Craig Small <csmall@dropbear.xyz>
+.\"
+.\" This manual is free software; you can redistribute it and/or
+.\" modify it under the terms of the GNU Lesser General Public
+.\" License as published by the Free Software Foundation; either
+.\" version 2.1 of the License, or (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PROCPS_PIDS 3 "august 2022" libproc2
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.nh
+.SH NUME
+procps_pids \- API (interfață de program) pentru a accesa informații la nivel
+de sistem din sistemul de fiÈ™iere „/procâ€
+
+.SH REZUMAT
+.nf
+#include <libproc2/pids.h>
+
+int\fB procps_pids_new \fP (struct pids_info **\fIinfo\fP, enum pids_item *\fIitems\fP, int \fInumitems\fP);
+int\fB procps_pids_ref \fP (struct pids_info *\fIinfo\fP);
+int\fB procps_pids_unref\fP (struct pids_info **\fIinfo\fP);
+
+
+struct pids_stack *\fBprocps_pids_get\fP (
+ struct pids_info *\fIinfo\fP,
+ enum pids_fetch_type \fIwhich\fP);
+
+struct pids_fetch *\fBprocps_pids_reap\fP (
+ struct pids_info *\fIinfo\fP,
+ enum pids_fetch_type \fIwhich\fP);
+
+struct pids_fetch *\fBprocps_pids_select\fP (
+ struct pids_info *\fIinfo\fP,
+ unsigned *\fIthese\fP,
+ int \fInumthese\fP,
+ enum pids_select_type \fIwhich\fP);
+
+struct pids_stack **\fBprocps_pids_sort\fP (
+ struct pids_info *\fIinfo\fP,
+ struct pids_stack *\fIstacks\fP[],
+ int \fInumstacked\fP,
+ enum pids_item \fIsortitem\fP,
+ enum pids_sort_order \fIorder\fP);
+
+int \fBprocps_pids_reset\fP (
+ struct pids_info *\fIinfo\fP,
+ enum pids_item *\fInewitems\fP,
+ int \fInewnumitems\fP);
+
+struct pids_stack *\fBfatal_proc_unmounted\fP (
+ struct pids_info *\fIinfo\fP,
+ int \fIreturn_self\fP);
+
+.fi
+
+Legătură cu \fI\-lproc2\fP.
+
+.SH DESCRIERE
+.SS "Prezentare generală"
+Esențial pentru această interfață este o structură simplă de „rezultat†care
+reflectă un „element†plus valoarea acestuia (într\-o uniune cu tipuri de
+limbaj C standard ca membri). Toate structurile „rezultat†sunt alocate și
+furnizate automat de bibliotecă.
+
+Prin specificarea unei matrice de „elementeâ€, aceste structuri pot fi
+organizate ca o „stivăâ€, cu potenÈ›ialul de\-a produce multe rezultate cu un
+singur apel către funcție. Astfel, o „stivă†poate fi văzută ca o
+înregistrare cu lungime variabilă al cărei conținut și ordine sunt
+determinate exclusiv de utilizator.
+
+Ca parte a acestei interfețe există doi enumeratori unici. Elementele
+„noop†și „extra†există pentru a păstra valorile utilizatorului. Ele nu
+sunt niciodată definite de bibliotecă, dar rezultatul „extra†va fi redus la
+zero cu fiecare interacțiune cu bibliotecă.
+
+Fișierul pids.h va fi un document esențial în timpul dezvoltării programului
+utilizatorului. Acolo veți găsi elementele disponibile, tipul lor de
+returnare (numele membrului structurii „rezultat)†și sursa acestor valori.
+Acolo sunt de asemenea documentate enumeratori și structuri suplimentare.
+
+.SS Utilizare
+Următoarele linii, ar fi o secvență tipică de apeluri la aceste interfețe.
+
+.nf
+1. \fBfatal_proc_unmounted()\fP
+2. \fBprocps_pids_new()\fP
+3. \fBprocps_pids_get()\fP, \fBprocps_pids_reap()\fP sau \fBprocps_pids_select()\fP
+4. \fBprocps_pids_unref()\fP
+.fi
+
+Funcția \fBget\fP este un iterator pentru PID\-uri/TID\-uri succesive, returnând
+acele „articole†identificate anterior prin \fBnew\fP sau \fBreset\fP.
+
+Două funcții asigură suport pentru rezultate variabile imprevizibile.
+Funcția \fBreap\fP adună date pentru toate procesele, în timp ce funcția
+\fBselect\fP se ocupă de PID\-uri sau UID\-uri specifice. Ambele pot returna mai
+multe „stive†fiecare conÈ›inând mai multe structuri „rezultatâ€. OpÈ›ional,
+un utilizator poate alege să folosească \fBsort\fP pentru a sorta astfel de
+rezultate
+
+Pentru a exploata orice „stivă†și pentru a accesa structuri „rezultatâ€
+individuale, este necesar un \fIrelative_enum\fP, așa cum se arată în
+macrocomanda \fBVAL\fP definită în fișierul antet. Astfel de valori ar putea
+fi codificate ca: de la 0 la numitems\-1. Cu toate acestea, această nevoie
+este de obicei satisfăcută prin crearea propriilor enumeratori
+corespunzători ordinii matricei „elementeâ€.
+
+.SS Avertismente
+Interfața de program <pids> diferă de celelalte prin faptul că acele
+elemente de interes trebuie furnizate în timpul execuției \fBnew\fP sau
+\fBreset\fP, acesta din urmă fiind unic pentru acest API. Dacă fie parametrul
+\fIitems\fP, fie \fInumitems\fP este zero în timpul execuției \fBnew\fP, atunci
+\fBreset\fP devine obligatoriu înainte de a lansa orice alt apel.
+
+Pentru funcțiile \fBnew\fP și \fBunref\fP, trebuie furnizată adresa unui indicator
+de structură \fIinfo\fP. Cu \fBnew\fP, acesta trebuie să fi fost inițializat la
+NULL. Cu \fBunref\fP va fi reinițializat la NULL dacă numărul de referințe
+ajunge la zero.
+
+Funcțiile \fBget\fP și \fBreap\fP folosesc parametrul \fIwhich\fP pentru a specifica
+dacă trebuie preluate doar sarcinile sau atât sarcinile cât și firele de
+execuție.
+
+Funcția \fBselect\fP necesită o matrice de PID\-uri sau UID\-uri ca \fIthese\fP
+împreună cu \fInumthese\fP pentru a identifica procesele care urmează să fie
+preluate. Această funcție funcționează apoi ca un subset al lui \fBreap\fP.
+
+Când se utilizează funcția \fBsort\fP, parametrii \fIstacks\fP și \fInumstacked\fP ar
+fi în mod normal cei returnaÈ›i în structura „pids_fetchâ€.
+
+În cele din urmă, o funcție \fBfatal_proc_unmounted\fP poate fi apelată
+înaintea oricărei alte funcÈ›ii pentru a se asigura că directorul „/proc/â€
+este montat. Ca atare, parametrul \fIinfo\fP va fi NULL și parametrul
+\fIreturn_self\fP zero. Dacă, totuși, unele elemente sunt dorite pentru
+programul emitent (un \fIreturn_self\fP altul decât zero), atunci apelul \fBnew\fP
+trebuie să îl precedă pentru a identifica \fIitems\fP și pentru a obține
+indicatorul \fIinfo\fP necesar.
+
+.SH "VALOARE RETURNATÄ‚"
+.SS "Funcții care returnează un „int†(număr întreg)"
+O eroare va fi indicată printr\-un număr negativ care este întotdeauna
+inversul unei valori binecunoscute a errno.h.
+
+Succesul este indicat de o valoare de returnare zero. Cu toate acestea,
+funcțiile \fBref\fP și \fBunref\fP returnează numărul de referințe curent al
+structurii \fIinfo\fP.
+
+.SS "FuncÈ›ii care returnează o „adresăâ€"
+O eroare va fi indicată printr\-un indicator de returnare NULL cu motivul
+găsit în valoarea formală errno (număr eroare).
+
+Succesul este indicat de un indicator către structura numită. Cu toate
+acestea, dacă ceva supraviețuiește apelului \fBfatal_proc_unmounted\fP, NULL
+este întotdeauna returnat atunci când \fIreturn_self\fP este zero.
+
+.SH DEPANAREA
+Pentru a ajuta la dezvoltarea programului, există două facilități procps\-ng
+care pot fi exploatate.
+
+Prima este un fișier furnizat numit „libproc.supp†care poate fi util atunci
+când se dezvoltă o aplicație \fIcu multiple\-fire de execuție\fP. Când este
+utilizat cu opÈ›iunea valgrind „\-\-suppressions=â€, avertismentele asociate cu
+biblioteca procps în sine sunt evitate.
+
+Astfel de avertismente apar deoarece biblioteca gestionează alocările bazate
+pe „heap†într\-o manieră sigură pentru fire. O aplicație \fIcu un singur\-fir de execuție\fP nu va primi aceste avertismente.
+
+A doua facilitate poate ajuta să ne asigurăm că referințele membrului
+„rezultat†sunt în acord cu așteptările bibliotecii. Se presupune că o
+macrocomandă furnizată în fișierul antet este utilizată pentru a accesa
+valoarea „rezultatâ€.
+
+Această caracteristică poate fi activată prin oricare dintre următoarele
+metode și orice discrepanțe vor fi scrise la \fBieșirea standard de eroare\fP.
+
+.IP 1) 3
+Adaugă CFLAGS='\-DXTRA_PROCPS_DEBUG' la orice alte opțiuni ./configure pe
+care le poate folosi proiectul dvs.
+
+.IP 2) 3
+Adaugă #include <procps/xtra\-procps\-debug.h> la orice program
+\fIdupă\fP linia #include <procps/pids.h>.
+
+.PP
+Această caracteristică de verificare implică o suprasarcină substanțială.
+Prin urmare, este important ca aceasta să \fInu\fP fie activată pentru o
+versiune de producție/lansare.
+
+.SH "VARIABILE DE MEDIU"
+Valoarea stabilită pentru următoarea variabilă este neimportantă, doar
+prezența acesteia.
+
+.IP LIBPROC_HIDE_KERNEL
+Acest lucru va ascunde firele de execuție ale nucleului care altfel ar fi
+returnate cu un apel \fBprocps_pids_get\fP, \fBprocps_pids_select\fP sau
+\fBprocps_pids_reap\fP.
+
+.SH "CONSULTAȚI ȘI"
+\fBprocps\fP(3), \fBprocps_misc\fP(3), \fBproc\fP(5).
diff --git a/po-man/ro/ps.1 b/po-man/ro/ps.1
new file mode 100644
index 0000000..5e6dc8c
--- /dev/null
+++ b/po-man/ro/ps.1
@@ -0,0 +1,1831 @@
+.\"
+.\" Copyright (c) 2004-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1998-2003 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PS 1 19.08.2023 procps\-ng "Comenzi utilizator"
+.\"
+.\" Ragged-right text.
+.na
+.\" Disable hyphenation.
+.nh
+.\"
+.\" ColSize is used for the format spec table.
+.\" It's the left margin, minus the right, minus
+.\" the space needed for the 1st two columns.
+.\" Making it messy: inches, ens, points, scaled points...
+.\"
+.nr ColSize ((\n[.l] - \n[.i]) / 1n - 29)
+.\"
+.SH NUME
+ps \- raportează un instantaneu al proceselor curente.
+.SH REZUMAT
+\fBps\fP [\,\fIopțiuni\/\fP]
+.SH DESCRIERE
+\fBps\fP afișează informații despre o selecție a proceselor active. Dacă
+doriți o actualizare repetitivă a selecției și a informațiilor afișate,
+utilizați în schimb \fBtop\fP.
+.P
+Această versiune de \fBps\fP acceptă mai multe tipuri de opțiuni:
+.IP
+.PD 0
+.IP 1 4
+Opțiuni UNIX, care pot fi grupate și trebuie să fie precedate de o liniuță.
+.IP 2 4
+Opțiuni BSD, care pot fi grupate și nu trebuie să fie precedate de o
+liniuță.
+.IP 3 4
+Opțiuni lungi GNU, care sunt precedate de două liniuțe.
+.PD
+.PP
+Opțiunile de diferite tipuri pot fi amestecate liber, dar pot apărea
+conflicte. Există câteva opțiuni sinonime, care sunt identice din punct de
+vedere funcțional, datorită numeroaselor standarde și implementări \fBps\fP cu
+care este compatibil acest \fBps\fP.
+.P
+În mod implicit, \fBps\fP selectează toate procesele cu același ID de
+utilizator efectiv (euid=EUID) ca utilizatorul curent și asociate cu același
+terminal ca și apelantul. Afișează ID\-ul procesului (pid=PID), terminalul
+asociat procesului (tname=TTY), timpul cumulat al procesorului în format
+[DD\-]hh:mm:ss (time=TIME) și numele executabilului (ucmd). =CMD). Ieșirea
+nu este sortată în mod implicit.
+.P
+Utilizarea opțiunilor în stil BSD va adăuga starea procesului (stat=STAT) la
+afișarea implicită și va afișa argumentele comenzii (args=COMMAND) în loc de
+numele executabilului. Puteți suprascrie acest lucru cu variabila de mediu
+\fBPS_FORMAT\fP. Utilizarea opțiunilor în stil BSD va modifica, de asemenea,
+selecția procesului pentru a include procese de pe alte terminale (TTY) care
+sunt deținute de dvs.; cu alte cuvinte, este selecția tuturor proceselor,
+filtrate pentru a exclude procesele aparținând altor utilizatori sau din
+afara unui terminal. Aceste efecte nu sunt luate în considerare pentru
+opÈ›iunile descrise mai jos ca fiind „identiceâ€, deci \fB\-M\fP va fi considerată
+identică cu \fBZ\fP și așa mai departe.
+.P
+Cu excepția celor descrise mai jos, opțiunile de selecție a procesului sunt
+aditive. Selecția implicită este înlăturată, iar apoi procesele selectate
+sunt adăugate la setul de procese care urmează să fie afișate. Astfel, un
+proces va fi afișat dacă îndeplinește oricare dintre criteriile de selecție
+date.
+.SH EXEMPLE
+.TP 3
+Pentru a vedea fiecare proces din sistem folosind sintaxa standard:
+\fBps\ \-e\fP
+.br
+\fBps\ \-ef\fP
+.br
+\fBps\ \-eF\fP
+.br
+\fBps\ \-ely\fP
+.TP
+Pentru a vedea fiecare proces din sistem folosind sintaxa BSD:
+\fBps\ ax\fP
+.br
+\fBps\ axu\fP
+.TP
+Pentru a afișa un arbore de procese:
+\fBps\ \-ejH\fP
+.br
+\fBps\ axjf\fP
+.TP
+Pentru a obține informații despre firele de execuție:
+\fBps\ \-eLf\fP
+.br
+\fBps\ axms\fP
+.TP
+Pentru a obține informații de securitate:
+\fBps\ \-eo euser,ruser,suser,fuser,f,comm,label\fP
+.br
+\fBps\ axZ\fP
+.br
+\fBps\ \-eM\fP
+.TP
+Pentru a vedea fiecare proces care rulează ca root (ID real și efectiv) în format utilizator:
+\fBps\ \-U\ root\ \-u\ root\ u\fP
+.TP
+Pentru a vedea fiecare proces cu un format definit de utilizator:
+\fBps\ \-eo\ pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm\fP
+.br
+\fBps\ axo\ stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm\fP
+.br
+\fBps\ \-Ao\ pid,tt,user,fname,tmout,f,wchan\fP
+.TP
+Afișează doar ID\-urile de proces ale syslogd:
+\fBps\ \-C\ syslogd\ \-o\ pid=\fP
+.TP
+Afișează doar numele PID\-ului 42:
+\fBps\ \-q\ 42\ \-o\ comm=\fP
+.SH "SELECTARE SIMPLÄ‚ A PROCESULUI"
+.TP
+\fBa\fP
+Ridică restricția „doar eu însumi†în stil BSD, care este impusă setului
+tuturor proceselor atunci când sunt utilizate unele opțiuni în stil BSD
+(fără „\-â€) sau când configurarea de personalitate a \fBps\fP este asemănătoare
+cu cea din BSD. Setul de procese selectate în acest mod se adaugă setului
+de procese selectate prin alte mijloace. Cu alte cuvinte, această opțiune
+determină \fBps\fP să listeze toate procesele cu un terminal (tty) sau să
+listeze toate procesele atunci când este utilizată împreună cu opțiunea
+\fBx\fP.
+.TP
+\fB\-A\fP
+Selectează toate procesele. Identică cu \fB\-e\fP.
+.TP
+\fB\-a\fP
+Selectează toate procesele cu excepția atât a liderilor de sesiune (vezi
+\fIgetsid\fP(2)) cât și a proceselor care nu sunt asociate cu un terminal.
+.TP
+\fB\-d\fP
+Selectați toate procesele, cu excepția liderilor de sesiune.
+.TP
+\fB\-\-deselect\fP
+Selectează toate procesele, cu excepția celor care îndeplinesc condițiile
+specificate (inversează selecția). La fel ca opțiunea \fB\-N\fP.
+.TP
+\fB\-e\fP
+.\" Current "g" behavior: add in the session leaders, which would
+.\" be excluded in the sunos4 personality. Supposed "g" behavior:
+.\" add in the group leaders -- at least according to the SunOS 4
+.\" man page on the FreeBSD site. Uh oh. I think I had tested SunOS
+.\" though, so maybe the code is correct.
+Selectează toate procesele. Identică cu \fB\-A\fP.
+.TP
+\fBg\fP
+Într\-adevăr totul, chiar și liderii de sesiune. Această opțiune este
+învechită și poate dispărea într\-o versiune viitoare. În mod normal, este
+implicită cu opțiunea \fBa\fP și este utilă doar când rulați cu personalitatea
+sunos4.
+.TP
+\fB\-N\fP
+Selectează toate procesele, cu excepția celor care îndeplinesc condițiile
+specificate (inversează selecția). La fel ca opțiunea \fB\-\-deselect\fP.
+.TP
+\fBT\fP
+Selectează toate procesele asociate cu acest terminal. Identică cu opțiunea
+\fBt\fP fără niciun argument.
+.TP
+\fBr\fP
+Restricționează selecția doar la procesele care rulează.
+.TP
+\fBx\fP
+Ridică restricția „trebuie să aibă un tty†în stil BSD, care este impusă
+setului tuturor proceselor atunci când sunt utilizate unele opțiuni în stil
+BSD (fără „\-â€) sau când configurarea de personalitate a \fBps\fP este
+asemănătoare cu cea din BSD. Setul de procese selectate în acest mod se
+adaugă setului de procese selectate prin alte mijloace. Cu alte cuvinte,
+această opțiune determină \fBps\fP să listeze toate procesele deținute de
+dumneavoastră (același EUID ca \fBps\fP) sau să listeze toate procesele atunci
+când este utilizat cu opțiunea \fBa\fP.
+.PD
+.SH "SELECTARE PROCES DIN LISTÄ‚"
+Aceste opțiuni acceptă un singur argument sub forma unei liste separate prin
+virgule sau spații. Acestea pot fi folosite de mai multe ori. De exemplu:
+\fBps\ \-p\ "1\ 2"\ \-p\ 3,4\fP
+.TP
+\fI123\fP
+Identic cu \fB\-\-pid\ \fP\fI123\fP.
+.TP
+\+\fI123\fP
+Identic cu \fB\-\-sid\ \fP\fI123\fP.
+.TP
+\-\fI123\fP
+Selectează după identificatorul grupului de procese (PGID).
+.TP
+\fB\-C\fP\fI\ listă_comenzi\fP
+Selectează după numele comenzii. Aceasta selectează procesele al căror nume
+de executabil este dat în \fIlistă_comenzi\fP. NOTĂ: Numele comenzii nu este
+același cu numele din linia de comandă. Versiunile anterioare ale \fIprocps\fP
+și ale nucleului au trunchiat acest nume de comandă la 15 caractere.
+Această limitare nu mai este prezentă în ambele. Dacă veți efectua căutarea
+doar cu 15 caractere, este posibil să nu mai obțineți o potrivire.
+.TP
+\fB\-G\fP\fI\ listă_grupuri\fP
+Selectează după ID\-ul real al grupului (RGID) sau nume. Aceasta selectează
+procesele al căror nume sau ID real de grup se află în lista
+\fIlistă_grupuri\fP. ID\-ul real al grupului identifică grupul utilizatorului
+care a creat procesul, vezi \fIgetgid\fP(2).
+.TP
+\fB\-g\fP\fI\ listă_grupuri\fP
+Selectează după sesiune SAU după numele efectiv al grupului. Selectarea
+după sesiune este specificată de mai multe standarde, dar selecția după grup
+efectiv este comportamentul logic pe care îl folosesc mai multe alte sisteme
+de operare. Acest \fBps\fP va selecta după sesiune când lista este complet
+numerică (așa cum sunt sesiunile). Numerele ID de grup vor funcționa numai
+atunci când sunt specificate și unele nume de grup. Consultați opțiunile
+\fB\-s\fP și \fB\-\-group\fP.
+.TP
+\fB\-\-Group\fP\fI\ listă_grupuri\fP
+Selectează după ID\-ul real al grupului (RGID) sau nume. Identică cu \fB\-G\fP.
+.TP
+\fB\-\-group\fP\fI\ listă_grupuri\fP
+Selectează după ID\-ul efectiv al grupului (EGID) sau nume. Aceasta
+selectează procesele al căror nume de grup efectiv sau ID este în
+\fIlistă_grupuri\fP. ID\-ul efectiv al grupului descrie grupul ale cărui
+permisiuni de acces la fișiere sunt utilizate de proces (consultați
+\fIgetegid\fP(2)). Opțiunea \fB\-g\fP este adesea o alternativă la \fB\-\-group\fP.
+.TP
+\fBp\fP\fI\ listă_pid\-uri\fP
+Selectează după ID\-ul procesului. Identică cu \fB\-p\fP și \fB\-\-pid\fP.
+.TP
+\fB\-p\fP\fI\ listă_pid\-uri\fP
+Selectează după PID. Aceasta selectează procesele ale căror numere ID de
+proces apar în \fIlistă_pid\-uri\fP. Identică cu \fBp\fP și \fB\-\-pid\fP.
+.TP
+\fB\-\-pid\fP\fI\ listă_pid\-uri\fP
+Selectează după identificatorul procesului (PID). La fel ca \fB\-p\fP și \fBp\fP.
+.TP
+\fB\-\-ppid\fP\fI\ listă_pid\-uri\fP
+Selectează după ID\-ul procesului părinte. Aceasta selectează procesele cu
+un identificator de proces părinte în \fIlistă_pid\-uri\fP. Adică selectează
+procesele care sunt copii ale celor enumerate în \fIlistă_pid\-uri\fP.
+.TP
+\fBq\fP\fI\ listă_pid\-uri\fP
+Selectează după ID\-ul procesului (modul rapid). Identică cu \fB\-q\fP și
+\fB\-\-quick\-pid\fP.
+.TP
+\fB\-q\fP\fI\ listă_pid\-uri\fP
+Selectează după PID (modul rapid). Aceasta selectează procesele ale căror
+numere ID de proces apar în \fIlistă_pid\-uri\fP. Cu această opțiune, \fBps\fP
+citește informațiile necesare numai pentru pid\-urile enumerate în
+\fIlistă_pid\-uri\fP și nu aplică reguli suplimentare de filtrare. Ordinea
+numerelor pid este nesortată și păstrată. Nu sunt permise opțiuni
+suplimentare de selecție, sortare și listare de tip arborescent în acest
+mod. Identică cu \fBq\fP și \fB\-\-quick\-pid\fP.
+.TP
+\fB\-\-quick\-pid\fP\fI\ listă_pid\-uri\fP
+Selectează după ID\-ul procesului (modul rapid). Identică cu \fB\-q\fP și \fBq\fP.
+.TP
+\fB\-s\fP\fI\ listă_sesiuni\fP
+Selectează după ID\-ul sesiunii. Aceasta selectează procesele cu un ID de
+sesiune specificat în \fIlistă_sesiuni\fP.
+.TP
+\fB\-\-sid\fP\fI\ listă_sesiuni\fP
+Selectează după ID\-ul sesiunii. Identică cu \fB\-s\fP.
+.TP
+\fBt\fP\fI\ listă_tty\-uri\fP
+Selectează după tty. Aproape identică cu \fB\-t\fP și \fB\-\-tty\fP, dar poate fi
+folosită și cu o \fIlistă_tty\-uri\fP goală pentru a indica terminalul asociat
+cu \fBps\fP. Utilizarea opțiunii \fBT\fP este considerată mai curată decât
+utilizarea \fBt\fP cu o \fIlistă_tty\-uri\fP goală.
+.TP
+\fB\-t\fP\fI\ listă_tty\-uri\fP
+Selectează după tty. Aceasta selectează procesele asociate cu terminalele
+date în \fIlistă_tty\-uri\fP. Terminalele (ttys, sau ecrane pentru ieșire de
+text) pot fi specificate în mai multe forme: /dev/ttyS1, ttyS1, S1. Un
+simplu „\-†poate fi folosit pentru a selecta procese care nu sunt atașate la
+niciun terminal.
+.TP
+\fB\-\-tty\fP\fI\ listă_tty\-uri\fP
+Selectează după terminal. Identică cu \fB\-t\fP și \fBt\fP.
+.TP
+\fBU\fP\fI\ listă_utilizatori\fP
+Selectează după ID\-ul de utilizator efectiv (EUID) sau nume. Aceasta
+selectează procesele al căror nume de utilizator efectiv sau ID este în
+\fIlistă_utilizatori\fP. ID\-ul de utilizator efectiv descrie utilizatorul ale
+cărui permisiuni de acces la fișiere sunt utilizate de proces (vezi
+\fIgeteuid\fP(2)). Identică cu \fB\-u\fP și \fB\-\-user\fP.
+.TP
+\fB\-U\fP\fI\ listă_utilizatori\fP
+Selectează după ID\-ul utilizatorului real (RUID) sau nume. Selectează
+procesele al căror nume sau ID real de utilizator se află în lista
+\fIlistă_utilizatori\fP. ID\-ul de utilizator real identifică utilizatorul care
+a creat procesul, vezi \fIgetuid\fP(2).
+.TP
+\fB\-u\fP\fI\ listă_utilizatori\fP
+Selectează după ID\-ul de utilizator efectiv (EUID) sau nume. Aceasta
+selectează procesele al căror nume de utilizator efectiv sau ID este în
+\fIlistă_utilizatori\fP.
+
+ID\-ul de utilizator efectiv descrie utilizatorul ale cărui permisiuni de
+acces la fișiere sunt utilizate de proces (vezi \fIgeteuid\fP(2)). Identică cu
+\fBU\fP și \fB\-\-user\fP.
+.TP
+\fB\-\-User\fP\fI\ listă_utilizatori\fP
+Selectează după ID\-ul utilizatorului real (RUID) sau nume. Identică cu
+\fB\-U\fP.
+.TP
+\fB\-\-user\fP\fI\ listă_utilizatori\fP
+Selectează după ID\-ul utilizatorului efectiv (EUID) sau nume. Identică cu
+\fB\-u\fP și \fBU\fP.
+.PD
+.SH "CONTROLUL FORMATULUI DE IEȘIRE"
+Aceste opțiuni sunt folosite pentru a alege informațiile afișate de \fBps\fP.
+Ieșirea poate diferi în funcție de personalizare.
+.TP
+\fB\-c\fP
+Afișează diferite informații de planificare pentru opțiunea \fB\-l\fP.
+.TP
+\fB\-\-context\fP
+Afișează formatul contextului de securitate (pentru SELinux).
+.TP
+\fB\-f\fP
+Afișează listarea în format complet. Această opțiune poate fi combinată cu
+multe alte opțiuni în stil UNIX pentru a adăuga coloane suplimentare. De
+asemenea, determină afișarea argumentelor comenzii. Când este utilizată cu
+\fB\-L\fP, se vor adăuga coloanele NLWP (număr de fire) și LWP (ID fir).
+Consultați opțiunea \fBc\fP, cuvântul cheie pentru format \fBargs\fP și cuvântul
+cheie pentru format \fBcomm\fP.
+.TP
+\fB\-F\fP
+Format extra complet. Vedeți opțiunea \fB\-f\fP, ceea ce implică \fB\-F\fP.
+.TP
+\fB\-\-format\fP\fI\ format\fP
+Format definit de utilizator. Identică cu \fB\-o\fP și \fBo\fP.
+.TP
+\fBj\fP
+Format de control al sarcinilor BSD.
+.TP
+\fB\-j\fP
+Format sarcini.
+.TP
+\fBl\fP
+Afișează formatul BSD lung.
+.TP
+\fB\-l\fP
+Format lung. Opțiunea \fB\-y\fP este adesea utilă cu aceasta.
+.TP
+\fB\-M\fP
+Adaugă o coloană cu date de securitate. Identică cu \fBZ\fP (pentru SELinux).
+.TP
+\fBO\fP\fI\ format\fP
+Este preîncărcat \fBo\fP (supraîncărcat). Opțiunea BSD \fBO\fP poate acționa ca
+opțiunea \fB\-O\fP (format de ieșire definit de utilizator cu unele câmpuri
+comune predefinite) sau poate fi folosită pentru a specifica ordinea de
+sortare. Euristicele sunt folosite pentru a determina comportamentul
+acestei opțiuni. Pentru a vă asigura că se obține comportamentul dorit
+(sortare sau formatare), specificați opțiunea într\-un alt mod (de exemplu,
+cu \fB\-O\fP sau \fB\-\-sort\fP). Când este folosită ca opțiune de formatare, este
+identică cu \fB\-O\fP, cu personalitatea BSD.
+.TP
+\fB\-O\fP\fI\ format\fP
+La fel ca \fB\-o\fP, dar preîncărcată cu unele coloane implicite. Identică cu
+\fB\-o\ pid,\:\fP\fIformat\fP\fB,\:state,\:tname,\:time,\:command\fP sau \fB\-o\ pid,\:\fP\fIformat\fP \fB,\:tname,\:time,\:cmd\fP, vedeți opțiunea \fB\-o\fP mai jos.
+.TP
+\fBo\fP\fI\ format\fP
+Specifică un format definit de utilizator. Identică cu \fB\-o\fP și
+\fB\-\-format\fP.
+.TP
+\fB\-o\fP\fI\ format\fP
+Format definit de utilizator. \fIformat\fP este un singur argument sub forma
+unei liste separate prin spații în alb sau prin virgule, care oferă o
+modalitate de a specifica individual coloanele de ieșire. Cuvintele cheie
+recunoscute sunt descrise în secțiunea \fBSPECIFICATORI DE FORMAT STANDARD\fP
+de mai jos. Titlurile coloanelor pot fi redenumite (\fBps \-o pid,\:ruser=RealUser \-o comm=Command\fP) după cum doriți. Dacă toate
+titlurile de coloană sunt goale (\fBps \-o pid= \-o comm=\fP), atunci linia de
+titluri nu va fi afișată . Lățimea coloanei va crește după cum este necesar
+pentru titlurile largi; aceasta poate fi folosită pentru a lărgi coloane
+precum WCHAN (\fBps \-o pid,\:wchan=\:WIDE\-\:WCHAN\-\:COLUMN \-o comm\fP).
+Controlul explicit al lățimii (\fBps opid,\:wchan:42,\:cmd\fP) este de asemenea
+posibil. Comportamentul lui \fBps \-o pid=X,\:comm=Y\fP variază în funcție de
+personalitate; ieșirea poate fi o coloană numită „X,\:comm=Y†sau două
+coloane numite „X†și „Yâ€. UtilizaÈ›i mai multe opÈ›iuni \fB\-o\fP atunci când
+aveți îndoieli. Utilizați variabila de mediu \fBPS_FORMAT\fP pentru a
+specifica o valoare implicită după cum doriți; DefSysV și DefBSD sunt
+macrocomenzi care pot fi utilizate pentru a alege coloanele UNIX sau BSD
+implicite.
+.TP
+\fB\-P\fP
+Adaugă o coloană care afișează \fBpsr\fP.
+.TP
+\fBs\fP
+Afișează formatul semnalului.
+.TP
+\fBu\fP
+Afișează formatul orientat către utilizator.
+.TP
+\fBv\fP
+Afișează formatul memoriei virtuale.
+.TP
+\fBX\fP
+Format de registru.
+.TP
+\fB\-y\fP
+Nu afișează fanioane; afișează rss în locul de adresă. Această opțiune
+poate fi utilizată numai cu \fB\-l\fP.
+.TP
+\fBZ\fP
+Adaugă o coloană cu date de securitate. Identică cu \fB\-M\fP (pentru SELinux).
+.PD
+.SH "MODIFICATORI DE IEȘIRE"
+.TP
+\fBc\fP
+Afișați numele adevărat al comenzii. Acesta este derivat din numele
+fișierului executabil, mai degrabă decât din valoarea \fIargv\fP. Prin urmare,
+argumentele comenzii și orice modificări aduse acestora nu sunt afișate.
+Această opțiune transformă efectiv cuvântul cheie de format \fBargs\fP în
+cuvântul cheie de format \fBcomm\fP; este utilă cu opțiunea de format \fB\-f\fP și
+cu diferitele opțiuni de format în stil BSD, care toate afișează în mod
+normal argumentele comenzii. Consultați opțiunea \fB\-f\fP, cuvântul cheie de
+format \fBargs\fP și cuvântul cheie de format \fBcomm\fP.
+.TP
+\fB\-\-cols\fP\fI\ n\fP
+Stabilește lățimea ecranului.
+.TP
+\fB\-\-columns\fP\fI\ n\fP
+Stabilește lățimea ecranului.
+.TP
+\fB\-\-cumulative\fP
+Include unele date despre proces\-copil mort (ca o sumă cu părintele).
+.TP
+.TP
+\fB\-D\fP\fI\ format\fP
+Stabilește formatul de dată al câmpului \fBlstart\fP la \fIformat\fP. Acest format
+este analizat de \fBstrftime\fP(3) și ar trebui să aibă maximum 24 de caractere
+pentru a nu alinia greșit coloanele.
+.TP
+\fB\-\-date\-format\fP\fI\ format\fP
+Identic cu \fB\-D\fP.
+.TP
+\fBe\fP
+Afișează mediul după comandă.
+.TP
+\fBf\fP
+Afișează ierarhia (arborescența) proceselor sub formatul unui desen ASCII.
+.TP
+\fB\-\-forest\fP
+Afișează arborele de procese în format de desen ASCII.
+.TP
+\fBh\fP
+Fără antet (sau, un antet pe ecran în personalitatea BSD). Opțiunea \fBh\fP
+este problematică. \fBps\fP standard de BSD utilizează această opțiune pentru
+a afișa un antet pe fiecare pagină de ieșire, dar \fBps\fP în standardul mai
+vechi Linux folosește această opțiune pentru a dezactiva total antetul.
+Această versiune de \fBps\fP urmează utilizarea Linux de a nu afișa antetul
+decât dacă personalitatea BSD a fost selectată, caz în care afișează un
+antet pe fiecare pagină de ieșire. Indiferent de personalitatea actuală,
+puteți folosi opțiunile lungi \fB\-\-headers\fP și \fB\-\-no\-headers\fP pentru a
+activa afișarea antetelor pe fiecare pagină sau, respectiv, pentru a
+dezactiva integral anteturile.
+.TP
+\fB\-H\fP
+Afișează ierarhia (arborescența) proceselor.
+.TP
+\fB\-\-headers\fP
+Repetă liniile de antet, câte una pe pagină la ieșire.
+.TP
+\fBk\fP\fI\ spec\fP
+Specifică ordinea de sortare. Sintaxa de sortare este
+[\fB+\fP|\fB\-\fP]\fIcheie\/.RB [,[ + | \- ].IR cheie [,...]].\fP Alegeți o cheie cu
+mai multe litere din secțiunea \fBSPECIFICATORI DE FORMAT STANDARD\fP. „+†este
+opțional, deoarece direcția implicită este în creștere în ordine numerică
+sau lexicografică. Identică cu \fB\-\-sort\fP.
+.RS 8
+.IP
+Exemple:
+.br
+\fBps jaxkuid,\-ppid,+pid\fP
+.br
+\fBps axk comm o comm,args\fP
+.br
+\fBps kstart_time \-ef\fP
+.RE
+.TP
+\fB\-\-lines\fP\fI\ n\fP
+Stabilește înălțimea ecranului.
+.TP
+\fBn\fP
+Ieșire numerică pentru WCHAN și USER (inclusiv toate tipurile de UID și
+GID).
+.TP
+\fB\-\-no\-headers\fP
+Nu afișează nicio linie de antet. \fB\-\-no\-heading\fP este un alias pentru
+această opțiune.
+.TP
+\fBO\fP\fI\ order\fP
+Ordinea de sortare (supraîncărcată). Opțiunea BSD \fBO\fP poate acționa ca
+\fB\-O\fP (format de ieșire definit de utilizator cu unele câmpuri comune
+predefinite) sau poate fi folosită pentru a specifica ordinea de sortare.
+Euristicele sunt folosite pentru a determina comportamentul acestei
+opțiuni. Pentru a vă asigura că se obține comportamentul dorit (sortare sau
+formatare), specificați opțiunea într\-un alt mod (de exemplu, cu \fB\-O\fP sau
+\fB\-\-sort\fP).
+.IP
+Pentru sortare, sintaxa învechită a opțiunii BSD \fBO\fP este
+\fBO\fP[\fB+\fP|\fB\-\fP]\fIk1\fP[,[\fB+\fP|\fB\-\fP]\fIk2\fP[, ...]]. Acesta ordonează listarea
+proceselor în funcție de sortarea pe mai multe niveluri specificată de
+secvența cheilor scurte cu o literă \fIk1\fP,\fIk2\fP, ... descrisă în secțiunea
+\fBCHEI DE SORTARE OBSOLETE\fP de mai jos. În prezent, „+†este opțional, doar
+reiterând direcția implicită pe o cheie, dar poate ajuta la distingerea unui
+format \fBO\fP de un format \fBO\fP. „\-†inversează direcția doar pentru cheia pe
+care o precede.
+.TP
+\fB\-\-rows\fP\fI\ n\fP
+Stabilește înălțimea ecranului.
+.TP
+\fBS\fP
+Rezumă unele informații, cum ar fi utilizarea procesorului, de la
+procesele\-copil moarte în părintele lor. Acest lucru este util pentru
+examinarea unui sistem în care un proces parental generează în mod repetat
+procese\-copil de scurtă durată pentru a\-și îndeplini treaba.
+.TP
+\fB\-\-sort\fP\fI\ spec\fP
+Specifică ordinea de sortare. Sintaxa de sortare este
+[\fI+\fP|\fI\-\fP]\fIcheie\fP[,[\fB+\fP|\fB\-\fP]\fIcheie\fP[,...]]. Alegeți o cheie cu mai
+multe litere din secțiunea \fBSPECIFICATORI DE FORMAT STANDARD\fP. „+†este
+opțional, deoarece direcția implicită este în creștere în ordinea numerică
+sau lexicografică. Identic cu \fBk\fP. De exemplu: \fBps jax \-\-sort=\:uid,\:\-ppid,\:+pid\fP
+.TP
+\fB\-\-signames\fP
+Afișează măștile de semnal folosind nume de semnal prescurtate și extinde
+coloana. În cazul în care lățimea coloanei nu poate afișa toate semnalele,
+coloana se va termina cu un plus „\fI+\fPâ€. Coloanele care au doar o liniuță,
+nu au semnale.
+.TP
+\fBw\fP
+Ieșire lungă. Utilizați această opțiune de două ori pentru o lățime
+nelimitată.
+.TP
+\fB\-w\fP
+Ieșire lungă. Utilizați această opțiune de două ori pentru o lățime
+nelimitată.
+.TP
+\fB\-\-width\fP\fI\ n\fP
+Stabilește lățimea ecranului.
+.PD
+.SH "AFIȘAREA PROCESELOR FIRELOR DE EXECUȚIE"
+.TP
+\fBH\fP
+Afișează firele de execuție ca și cum ar fi procese.
+.TP
+\fB\-L\fP
+Afișează firele de execuție, eventual cu coloane LWP și NLWP.
+.TP
+\fBm\fP
+Afișează firele de execuție după procese.
+.TP
+\fB\-m\fP
+Afișează firele de execuție după procese.
+.TP
+\fB\-T\fP
+Afișează firele de execuție, eventual cu coloana SPID.
+.SH "ALTE INFORMAÈšII"
+.TP
+\fB\-\-help\fP\fI\ secțiunea\fP
+Afișează un mesaj de ajutor. Argumentul \fIsecțiune\fP poate fi unul dintre
+\fIs\fPimple (simplu), \fIl\fPist (listă), \fIo\fPutput (ieșire), \fIt\fPhreads (fire de
+execuție), \fIm\fPisc (diverse) sau \fIa\fPll (toate). Argumentul poate fi
+scurtat la una dintre literele subliniate ca în:
+s\^|\^l\^|\^o\^|\^t\^|\^m\^|\^a.
+.TP
+\fB\-\-info\fP
+Afișează informațiile de depanare.
+.TP
+\fBL\fP
+Listează toți specificatorii de format.
+.TP
+\fBV\fP
+Afișează versiunea procps\-ng.
+.TP
+\fB\-V\fP
+Afișează versiunea procps\-ng.
+.TP
+\fB\-\-version\fP
+Afișează versiunea procps\-ng.
+.SH NOTE
+Acest \fBps\fP funcționează prin citirea fișierelor virtuale din \fI/proc\fP.
+Acest \fBps\fP nu trebuie să aibă bitul setuid kmem activat, sau să aibă
+privilegii pentru a rula. Nu acordați acestui \fBps\fP nicio permisiune
+specială.
+.PP
+Utilizarea procesorului este exprimată în prezent ca procentul de timp
+petrecut rulând pe întreaga durată de viață a unui proces. Acest lucru nu
+este ideal și nici nu este conform standardelor pe care \fBps\fP le respectă
+dealtfel. Este puțin probabil ca utilizarea procesorului să ajungă la exact
+100%.
+.PP
+Câmpurile SIZE și RSS nu contorizează unele părți ale unui proces, inclusiv
+tabelele de pagini, stiva de nucleu, structura thread_info și structura
+task_struct. Aceasta este de obicei cel puțin 20 Kio de memorie care este
+întotdeauna rezidentă. SIZE este dimensiunea virtuală a procesului
+(cod+\:date+\:stivă).
+.PP
+Procesele marcate <defunct> sunt procese moarte (așa\-numitele
+„zombiâ€) care rămân deoarece părintele lor nu le\-a distrus corespunzător.
+Aceste procese vor fi distruse de procesul \fIinit\fP(8) dacă procesul părinte
+iese.
+.PP
+Dacă lungimea numelui de utilizator este mai mare decât lungimea coloanei de
+afișare, numele de utilizator va fi trunchiat. Consultați opțiunile de
+formatare \fB\-o\fP și \fB\-O\fP pentru a personaliza lungimea.
+.PP
+Opțiunile de comenzi precum \fBps \-aux\fP nu sunt recomandate deoarece este o
+confuzie a două standarde diferite. Conform standardelor POSIX și UNIX,
+comanda de mai sus solicită afișarea tuturor proceselor cu un TTY (în
+general, comenzile pe care utilizatorii le execută) plus toate procesele
+deținute de un utilizator numit \fIx\fP. Dacă acel utilizator nu există,
+atunci \fBps\fP va presupune că de fapt ați vrut să spuneți «\fBps\fP \fIaux\fP».
+.SH "FANIOANE DE PROCESE"
+Suma acestor valori este afiÈ™ată în coloana „Fâ€, care este furnizată de
+specificatorul de ieșire \fBfanioane\fP:
+.PP
+.RS 8
+.PD 0
+.TP 5
+1
+bifurcat, dar nu s\-a executat
+.TP
+4
+utilizat cu privilegii de superutilizator
+.PD
+.RE
+.SH "CODURI DE STARE A PROCESULUI"
+Iată diferitele valori pe care specificatorii de ieșire \fBs\fP, \fBstat\fP și
+\fBstate\fP (antetul „STAT†sau „Sâ€) le vor afiÈ™a pentru a descrie starea unui
+proces:
+.PP
+.RS 8
+.PD 0
+.TP 5
+D
+somn neîntrerupt (de regulă In/Ieș)
+.TP
+I
+Fir de execuție al nucleului inactiv
+.TP
+R
+rulează sau se poate rula (în coada de rulare)
+.TP
+S
+somn întreruptibil (așteaptă finalizarea unui eveniment)
+.TP
+T
+oprit de semnalul de control al lucrării
+.TP
+t
+oprit de depanator în timpul urmăririi
+.TP
+W
+paginare (nu este valabilă de la nucleul 2.6.xx)
+.TP
+X
+mort (nu ar trebui să fie văzut niciodată)
+.TP
+Z
+proces defunct ("zombie"), încheiat, dar nerecules de părintele său
+.PD
+.RE
+.PP
+Pentru formatele BSD și când este utilizat cuvântul cheie \fBstat\fP, pot fi
+afișate caractere suplimentare:
+.PP
+.RS 8
+.PD 0
+.TP 5
+<
+cu prioritate ridicată (nu este „nice†pentru alți utilizatori)
+.TP
+N
+cu prioritate scăzută (este „nice†pentru alți utilizatori)
+.TP
+L
+are pagini blocate în memorie (pentru Intrări/Ieșiri în timp real și
+personalizate)
+.TP
+s
+este un lider de sesiune
+.TP
+l
+are mai multe fire de execuție (folosind CLONE_THREAD, așa cum fac
+pthreads(firele de execuție posix) NPTL)
+.TP
++
+se află în grupul de procese din primplan
+.PD
+.RE
+.SH "CHEI DE SORTARE OBSOLETE"
+Aceste chei sunt folosite de opțiunea BSD \fBO\fP (când este folosită pentru
+sortare). Opțiunea GNU \fB\-\-sort\fP nu folosește aceste chei, ci
+specificatorii descriși mai jos în secțiunea \fBSPECIFICATORI DE FORMAT STANDARD\fP. Rețineți că valorile utilizate în sortare sunt valorile interne
+pe care le utilizează \fBps\fP și nu valorile „gătite†utilizate în unele
+dintre câmpurile formatului de ieșire (de exemplu, sortarea pe tty va sorta
+după numărul dispozitivului, nu în funcție de numele terminalului afișat) .
+Transmiteți ieșirea \fBps\fP la comanda \fBsort\fP(1) utilizând o conductă dacă
+doriÈ›i să sortaÈ›i valorile „gătiteâ€.
+.TS
+l l lw(3i).
+\fBCHEIE\fP \fBLUNG\fP \fBDESCRIERE\fP
+c cmd numele fișierului executabil
+C pcpu utilizarea procesorului
+f fanioane fanioane ca în câmpul F de format lung
+g pgrp identificatorul grupului de procese
+G tpgid identificatorul grupului de procese ce controlează tty
+j cutime timpul cumulat al utilizatorului
+J cstime timpul cumulat al sistemului
+k utime timpul utilizatorului
+m min_flt numărul de erori de pagină minore
+M maj_flt numărul de erori de pagină majore
+n cmin_flt erori de pagină minore cumulate
+N cmaj_flt erori de pagină majore cumulate
+o sesiune identificatorul sesiunii (sid)
+p pid identificatorul procesului (pid)
+P ppid identificatorul procesului părinte (ppid)
+r rss dimensiunea memoriei rezidente
+R resident pagini din memoria rezidentă
+s size dimensiunea memoriei în kiloocteți
+S share numărul de pagini partajate
+t tty numărul dispozitivului de control al terminalului
+T start_time momentul în care a început procesul
+U uid numărul ID al utilizatorului
+u utilizator numele utilizatorului
+v vsize dimensiunea totală a memoriei virtuale în Kio
+y priority prioritatea de planificare a nucleului
+.\"K stime system time (conflict, system vs. start time)
+.TE
+.SH "DESCRIPTORI DE FORMAT AIX"
+Acest \fBps\fP acceptă descriptori de format AIX, care funcționează oarecum
+precum codurile de formatare ale \fIprintf\fP(1) și \fIprintf\fP(3). De exemplu,
+ieșirea implicită normală poate fi produsă cu: \fBps \-eo "%p %y %x %c"\fP..
+Codurile \fBNORMAL\fP sunt descrise în secțiunea următoare.
+.TS
+l l l.
+\fBCOD\fP \fBNORMAL\fP \fBTITLU\fP
+%C pcpu %CPU
+%G group GROUP
+%P ppid PPID
+%U utilizator USER
+%a args COMANDA
+%c comm COMANDA
+%g rgroup RGROUP
+%n nice NI
+%p pid PID
+%r pgid PGID
+%t etime ELAPSED
+%u ruser RUSER
+%x time TIME
+%y tty TTY
+%z vsz VSZ
+.TE
+.SH "SPECIFICATORI DE FORMAT STANDARD"
+Iată diferitele cuvinte cheie care pot fi folosite pentru a controla
+formatul de ieșire (de exemplu, cu opțiunea \fB\-o\fP) sau pentru a sorta
+procesele selectate cu opțiunea \fB\-\-sort\fP în stil GNU.
+.PP
+De exemplu: \fBps \-eo pid,\:user,\:args \-\-sort user\fP
+.PP
+Această versiune a \fBps\fP încearcă să recunoască majoritatea cuvintelor cheie
+utilizate în alte implementări ale \fBps\fP.
+.PP
+Următorii specificatori de format definiți de utilizator pot conține spații:
+\fBargs\fP, \fBcmd\fP, \fBcomm\fP, \fBcommand\fP, \fBfname\fP, \fBucmd\fP, \fBucomm\fP,
+\fBlstart\fP, \fBbsdstart\fP, \fBstart\fP.
+.PP
+Este posibil ca unele cuvinte cheie să nu fie disponibile pentru sortare.
+
+.\" #######################################################################
+.\" lB1 lB1 lB1 lB1 s s s
+.\" lB1 l1 l1 l1 s s s.
+.\"
+.\" lB1 lB1 lBw(5.5i)
+.\" lB1 l1 l.
+.\"
+.TS
+expand;
+l1B l1B lBw(\n[ColSize]n)
+l1B l1 l.
+COD TITLU DESCRIERE
+
+%cpu %CPU T{
+utilizarea CPU\-ului de către proces în format „##.#â€. ÃŽn prezent, este
+timpul folosit de procesor împărțit la timpul în care procesul a rulat
+(raportul timp de procesare/timp real), exprimat ca procent. Cu excepția
+cazului în care sunteți norocos, această valoare nu va ajunge la 100% (alias
+\fBpcpu\fP).
+T}
+
+%mem %MEM T{
+raportul dintre dimensiunea memoriei rezidente („resident set size†sau RSS)
+a procesului și memoria fizică a mașinii, exprimat ca procent (alias
+\fBpmem\fP).
+T}
+
+ag_id AGID T{
+identificatorul autogrupului asociat cu un proces care funcționează împreună
+cu planificatorul CFS pentru a îmbunătăți performanța biroului interactiv.
+T}
+
+ag_nice AGNI T{
+valoarea priorității „nice†a autogrupului care se aplică planificării tuturor proceselor din acest grup.
+T}
+
+args COMANDA T{
+comanda cu toate argumentele sale ca șir. Pot fi afișate modificări ale
+argumentelor.
+Rezultatul din această coloană poate conține spații.
+Un proces marcat <defunct> este parțial mort, așteaptă să fie
+complet distrus de părintele său.
+Uneori, argumentele procesului vor fi indisponibile; când se întâmplă
+acest lucru,
+\fBps\fP
+va afișa în schimb numele executabilului între paranteze (alias
+\fBcmd\fP, \fBcomanda\fP).
+Consultați, de asemenea, cuvântul cheie de formatare \fBcomm\fP,
+opțiunea \fB\-f\fP și opțiunea \fBc\fP.
+.br
+când este specificată ultima, această coloană se va extinde până la marginea afișajului. Dacă \fBps\fP nu poate determina lățimea de afișare, ca atunci când ieșirea este redirecționată (prin conductă) într\-un fișier sau altă comandă, lățimea de ieșire este nedefinită (poate fi 80, nelimitată, determinată de variabila \fBTERM\fP ș.a.m.d.). Variabila de mediu \fBCOLUMNS\fP sau opțiunea \fB\-\-cols\fP poate fi folosită pentru a determina exact lățimea în acest caz. Opțiunea \fBw\fP sau \fB \-w\fP poate fi, de asemenea, utilizată pentru a ajusta lățimea..
+T}
+
+blocked BLOCKED T{
+masca semnalelor blocate, a se vedea \fIsignal\fP(7).
+În funcție de lățimea câmpului, este afișată o mască de 32 sau 64 de biți
+în format hexazecimal. (alias \fBsig_block\fP, \fBsigmask\fP).
+T}
+
+bsdstart START T{
+momentul în care comanda a început. Dacă procesul a fost pornit
+cu mai puÈ›in de 24 de ore în urmă, formatul de ieÈ™ire este „HH:MMâ€,
+altfel este „Mmm:SS†(unde Mmm reprezintă cele trei litere ale lunii).
+A se vedea, de asemenea, \fBlstart\fP, \fBstart\fP, \fBstart_time\fP și \fBstime\fP.
+T}
+
+bsdtime TIME T{
+timpul CPU acumulat, utilizator + sistem. Formatul de afișare este de obicei
+„MMM:SSâ€, dar poate fi mutat la dreapta dacă procesul a folosit mai mult de
+999 de minute de timp CPU.
+T}
+
+c C T{
+utilizarea procesorului. În prezent, aceasta este valoarea întreagă a
+procentului de utilizare pe durata de viață a procesului. (a se vedea
+\fB%cpu\fP).
+T}
+
+caught CAUGHT T{
+masca semnalelor captate, a se vedea
+\fIsemnal\fP(7).
+În funcție de lățimea câmpului, este afișată o mască de 32 sau 64 de biți
+în format hexazecimal (alias
+\fBsig_catch\fP, \fBsigcatch\fP)
+T}
+
+cgname CGNAME T{
+afișează numele grupurilor de control cărora le aparține procesul.
+T}
+
+cgroup CGROUP T{
+afișează grupurile de control cărora le aparține procesul.
+T}
+
+cgroupns CGROUPNS T{
+numărul unic de nod\-i care descrie spațiul de nume căruia îi aparține procesul.
+A se vedea
+\fInamespaces\fP(7).
+T}
+
+class CLS T{
+clasa de planificare a procesului. (alias
+\fBpolicy\fP, \fBcls\fP).
+Valorile posibile ale câmpului sunt:
+.sp 1
+.in +9n
+\- nu este raportată
+.br
+TS SCHED_OTHER
+.br
+FF SCHED_FIFO
+.br
+RR SCHED_RR
+.br
+B SCHED_BATCH
+.br
+ISO SCHED_ISO
+.br
+IDL SCHED_IDLE
+.br
+DLN SCHED_DEADLINE
+.br
+? valoare necunoscută
+.in
+T}
+
+cls CLS T{
+clasa de planificare a procesului. (alias
+\fBpolicy\fP, \fBcls\fP).
+Valorile posibile ale câmpului sunt:
+.sp 1
+.in +9n
+\- nu este raportată
+.br
+TS SCHED_OTHER
+.br
+FF SCHED_FIFO
+.br
+RR SCHED_RR
+.br
+B SCHED_BATCH
+.br
+ISO SCHED_ISO
+.br
+IDL SCHED_IDLE
+.br
+DLN SCHED_DEADLINE
+.br
+? valoare necunoscută
+.in
+T}
+
+cmd CMD T{
+a se vedea
+\fBargs\fP.
+(alias
+\fBargs\fP, \fBcommand\fP).
+T}
+
+comm COMANDA T{
+numele comenzii (numai numele executabilului). Rezultatul din această
+coloană poate conține spații (alias
+\fBucmd\fP,\fBucomm\fP).
+Consultați, de asemenea, cuvântul cheie format
+\fBargs\fP,
+opțiunea
+\fB\-f\fP
+și opțiunea
+\fBc\fP.
+.br
+Când este specificată ultima, această coloană se va extinde până la marginea afișajului. Dacă \fBps\fP nu poate determina lățimea de afișare, ca atunci când ieșirea este redirecționată (prin conductă) într\-un fișier sau altă comandă, lățimea de ieșire este nedefinită (poate fi 80, nelimitată, determinată de variabila \fBTERM\fP ș.a.m.d.). Variabila de mediu \fBCOLUMNS\fP sau opțiunea \fB\-\-cols\fP poate fi folosită pentru a determina exact lățimea în acest caz. Opțiunea \fBw\fP sau \fB \-w\fP poate fi, de asemenea, utilizată pentru a ajusta lățimea.
+T}
+
+command COMANDA T{
+a se vedea
+\fBargs\fP.
+(alias
+\fBargs\fP, \fBcommand\fP).
+T}
+
+cp CP T{
+utilizarea CPU\-ului în miimi (zecimi de procent) (a se vedea
+\fB%cpu\fP).
+T}
+
+cputime TIME T{
+timpul cumulat al CPU\-ului, în formatul „[ZZ\-]hh:mm:ss†(alias
+\fBtime\fP).
+T}
+
+cputimes TIME T{
+timpul cumulat al CPU\-ului în secunde (alias
+\fBtime\fP).
+T}
+
+cuc %CUC T{
+Utilizarea CPU\-ului de către un proces, inclusiv procesele\-copii moarte,
+într\-un format extins „##.###†(consultați, de asemenea,
+\fB%cpu\fP,
+\fBc\fP,
+\fBcp\fP,
+\fBcuu\fP,
+\fBpcpu\fP).
+T}
+
+cuu %CUU T{
+Utilizarea CPU\-ului de către un proces într\-un format extins „##.###â€
+(consultați, de asemenea,
+\fB%cpu\fP,
+\fBc\fP,
+\fBcp\fP,
+\fBcuc\fP,
+\fBpcpu\fP).
+T}
+
+drs DRS T{
+dimensiunea setului rezident de date, cantitatea de memorie privată \fIrezervată\fP de către un proces.
+Este cunoscută și sub numele de DATA. Este posibil ca această memorie să nu fie încă repartizată în \fBrss\fP, dar va fi întotdeauna inclusă în cantitatea \fBvsz\fP.
+
+T}
+
+egid EGID T{
+numărul ID\-ului grupului efectiv al procesului ca număr întreg zecimal (alias
+\fBgid\fP).
+T}
+
+egroup EGROUP T{
+ID\-ul grupului efectiv al procesului. Acesta va fi ID\-ul grupului textual,
+dacă poate fi obținut și lățimea câmpului o permite, sau o reprezentare
+zecimală în caz contrar (alias
+\fBgroup\fP).
+T}
+
+eip EIP T{
+indicatorul de instrucțiune. Începând cu nucleul 4.9.xx, va fi reinițiat
+la zero, cu excepția cazului în care sarcina iese sau sistemul creează
+un fișier cu descărcarea conținutului acesteia din memorie.
+T}
+
+esp ESP T{
+indicatorul de stivă. Începând cu nucleul 4.9.xx, va fi reinițiat la zero,
+cu excepția cazului în care sarcina iese sau sistemul creează un fișier cu
+descărcarea conținutului acesteia din memorie.
+T}
+
+etime ELAPSED T{
+timpul scurs de la pornirea procesului, în formatul [[ZZ\-]hh:]mm:ss.
+T}
+
+etimes ELAPSED T{
+timpul scurs de la pornirea procesului, în secunde.
+T}
+
+euid EUID T{
+ID\-ul utilizatorului efectiv (alias
+\fBuid\fP).
+T}
+
+euser EUSER T{
+numele utilizatorului efectiv. Acesta va fi ID\-ul textual al utilizatorului,
+dacă poate fi obținut și lățimea câmpului o permite, sau o reprezentare zecimală
+în caz contrar. Opțiunea
+\fBn\fP
+poate fi folosită pentru a forța reprezentarea zecimală (alias
+\fBuname\fP, \fBuser\fP).
+T}
+
+exe EXE T{
+calea către executabil. Util dacă calea nu poate fi afișată prin opțiunile
+de format
+\fBcmd\fP, \fBcomm\fP
+sau
+\fBargs\fP.
+T}
+
+f F T{
+fanioanele asociate procesului, consultați secțiunea
+\fBPROCESS FLAGS\fP
+(alias
+\fBflag\fP, \fBflags\fP).
+T}
+
+fgid FGID T{
+ID\-ul grupului de acces la sistemul de fișiere (alias
+\fBfsgid\fP).
+T}
+
+fgroup FGROUP T{
+ID\-ul grupului de acces la sistemul de fișiere. Acesta va fi ID\-ul textual al
+grupului, dacă poate fi obținut și lățimea câmpului o permite,
+sau o reprezentare zecimală în caz contrar (alias
+\fBfsgroup\fP).
+T}
+
+fanion F T{
+consultați
+\fBf\fP.
+(alias
+\fBf\fP, \fBflags\fP).
+T}
+
+fanioane F T{
+consultați
+\fBf\fP.
+(alias
+\fBf\fP, \fBflag\fP).
+T}
+
+fname COMANDA T{
+primii 8 octeți ai numelui de bază al fișierului executabil al procesului.
+Rezultatul din această coloană poate conține spații.
+T}
+
+fuid FUID T{
+ID\-ul utilizatorului de acces la sistemul de fișiere (alias
+\fBfsuid\fP).
+T}
+
+fuser FUSER T{
+ID\-ul utilizatorului de acces la sistemul de fișiere. Acesta va fi ID\-ul
+textual al utilizatorului, dacă poate fi obținut și lățimea câmpului o permite,
+sau o reprezentare zecimală în caz contrar.
+T}
+
+gid GID T{
+consultați
+\fBegid\fP.
+(alias
+\fBegid\fP).
+T}
+
+group GROUP T{
+consultați
+\fBegroup\fP.
+(alias
+\fBegroup\fP).
+T}
+
+ignored IGNORED T{
+masca semnalelor ignorate, a se vedea
+\fIsignal\fP(7).
+În funcție de lățimea câmpului, este afișată o mască de 32 sau 64 de biți în
+format hexazecimal (alias
+\fBsig_ignore\fP, \fBsigignore\fP).
+T}
+
+ipcns IPCNS T{
+numărul unic de nod\-i care descrie spațiul de nume căruia îi aparține procesul.
+A se vedea
+\fInamespaces\fP(7).
+T}
+
+label LABEL T{
+etichetă de securitate, folosită cel mai frecvent pentru datele de context SELinux.
+Aceasta este pentru
+(\fIcontrol de acces obligatoriu\fP)
+\fIMandatory Access Control\fP sau „MACâ€
+care se găsește pe sistemele de înaltă securitate.
+T}
+
+lstart STARTED T{
+ora la care a început comanda. Aceasta va fi sub forma „DDD mmm HH:MM:SS YYYâ€,
+cu excepția cazului în care este modificată prin opțiunea \fB\-D\fP.
+T}
+
+lsession SESSION T{
+afișează identificatorul de sesiune de conectare al unui proces,
+dacă a fost inclus suportul pentru «systemd».
+T}
+
+luid LUID T{
+afișează ID\-ul de autentificare asociat unui proces.
+T}
+
+lwp LWP T{
+ID\-ul procesului uÈ™or („light weight process†sau „threadâ€) al entității distribuibile (alias
+\fBspid\fP, \fBtid\fP).
+Consultați
+\fBtid\fP
+pentru informații suplimentare
+T}
+
+lxc LXC T{
+numele containerului lxc în care rulează o sarcină.
+Dacă un proces nu rulează în interiorul unui container, va fi afiÈ™ată o liniuță („\-â€).
+T}
+
+machine MACHINE T{
+afișează numele mașinii pentru procesele atribuite mașinii virtuale (VM)
+sau containerului, dacă a fost inclus suportul pentru «systemd».
+T}
+
+maj_flt MAJFLT T{
+numărul de erori majore de pagină care au apărut cu acest proces.
+T}
+
+min_flt MINFLT T{
+numărul de erori minore de pagină care au apărut cu acest proces.
+T}
+
+mntns MNTNS T{
+numărul unic de nod\-i care descrie spațiul de nume căruia îi aparține procesul.
+A se vedea
+\fInamespaces\fP(7).
+T}
+
+netns NETNS T{
+numărul unic de nod\-i care descrie spațiul de nume căruia îi aparține procesul.
+A se vedea
+\fInamespaces\fP(7).
+T}
+
+ni NI T{
+valoarea priorității „niceâ€. Acesta variază de la 19 (cea mai „drăguță†nicest) la \-20 (nu este „drăguță†cu alte procese),
+consultați
+\fInice\fP(1).
+(alias
+\fBnice\fP).
+T}
+
+nice NI T{
+consultați
+\fBni\fP.\fB(alias\fP
+\fBni\fP).
+T}
+
+nlwp NLWP T{
+numărul de lwps (fire de execuție) „threads†în proces (alias
+\fBthcount\fP).
+T}
+
+numa NUMA T{
+Nodul asociat cu cel mai recent procesor utilizat.
+Un \fI\-1\fP înseamnă că informațiile NUMA sunt indisponibile.
+T}
+
+nwchan WCHAN T{
+adresa funcției de nucleu în care se află procesul (utilizați
+\fBwchan\fP
+dacă doriți numele funcției nucleului).
+T}
+
+oom OOM T{
+estimarea depășirii limitelor memoriei disponibile. Valoarea, care variază
+de la 0 la +1000, utilizată pentru a selecta sarcinile de omorât atunci când
+memoria este epuizată. Zero se traduce prin „nu ucide niciodatăâ€, în timp ce
+1000 înseamnă „ucide întotdeaunaâ€.
+T}
+
+oomadj OOMADJ T{
+factorul de ajustare a depășirii limitelor memoriei disponibile. Valoarea se adaugă la estimarea actuală de depășire a memoriei, care este apoi utilizată pentru a determina ce sarcină să fie omorâtă atunci când memoria este epuizată.
+T}
+
+ouid OWNER T{
+afișează identificatorul de utilizator Unix al proprietarului sesiunii unui proces, dacă a fost inclus suportul pentru «systemd».
+T}
+
+pcpu %CPU T{
+consultați
+\fB%cpu\fP.
+(alias
+\fB%cpu\fP).
+T}
+
+pending PENDING T{
+masca semnalelor în așteptare. A se vedea \fIsignal\fP(7). Semnalele aflate în așteptarea procesului sunt distincte de semnalele în așteptare ale firelor individuale. Utilizați opțiunea \fBm\fP sau opțiunea \fB\-m\fP pentru a le vedea pe ambele. În funcție de lățimea câmpului, este afișată o mască de 32 sau 64 de biți în format hexazecimal, cu excepția cazului în care se utilizează opțiunea \fB\-\-signames\fP (alias \fBsig\fP).
+T}
+
+pgid PGID T{
+ID\-ul grupului de procese sau, echivalent, ID\-ul procesului al liderului grupului de procese (alias
+\fBpgrp\fP).
+T}
+
+pgrp PGRP T{
+consultați
+\fBpgid\fP.
+(alias
+\fBpgid\fP).
+T}
+
+pid PID T{
+un număr reprezentând identificatorul procesului (alias
+\fBtgid\fP).
+T}
+
+pidns PIDNS T{
+numărul unic de nod\-i care descrie spațiul de nume căruia îi aparține procesul.
+A se vedea
+\fInamespaces\fP(7).
+T}
+
+pmem %MEM T{
+consultați
+\fB%mem\fP.
+(alias
+\fB%mem\fP).
+T}
+
+policy POL T{
+clasa de planificare a procesului. (alias
+\fBclass\fP, \fBcls\fP).
+Valorile posibile sunt:
+.sp 1
+.in +9n
+\- nu este raportată
+.br
+TS SCHED_OTHER
+.br
+FF SCHED_FIFO
+.br
+RR SCHED_RR
+.br
+B SCHED_BATCH
+.br
+ISO SCHED_ISO
+.br
+IDL SCHED_IDLE
+.br
+DLN SCHED_DEADLINE
+.br
+? valoare necunoscută
+.in
+T}
+
+ppid PPID T{
+identificatorul procesului părinte.
+T}
+
+pri PRI T{
+prioritatea procesului. Un număr mai mare înseamnă o prioritate mai mare.
+T}
+
+psr PSR T{
+procesorul pe care a fost executat ultima dată procesul.
+T}
+
+pss PSS T{
+dimensiunea cotei proporționale, memoria fizică neinterschimbabilă(non\-swapped),
+cu memoria partajată raportată proporțional cu toate sarcinile care îi sunt asociate.
+T}
+
+rbytes RBYTES T{
+numărul de octeți care au fost preluați efectiv din stratul de stocare de date prin acest proces.
+T}
+
+rchars RCHARS T{
+Numărul de octeți citiți din spațiul de stocare datorită acestei sarcini.
+T}
+
+rgid RGID T{
+identificatorul grupului real.
+T}
+
+rgroup RGROUP T{
+numele real al grupului. Acesta va fi ID\-ul textual al grupului, dacă poate fi
+obținut și lățimea câmpului o permite, sau o reprezentare zecimală în caz contrar.
+T}
+
+rops ROPS T{
+Numărul de operații de citire In/Ieș — adică apeluri de sistem, cum ar fi
+\fBread\fP(2) și \fBpread\fP(2).
+T}
+
+rss RSS T{
+dimensiunea memoriei rezidente („resident set size†sau RSS), memoria fizică
+netransferată în spațiul de interschimb pe care o sarcină l\-a folosit (în
+kiloocteți) (alias
+\fBrssize\fP, \fBrsz\fP).
+T}
+
+rssize RSS T{
+consultați
+\fBrss\fP.
+(alias
+\fBrss\fP, \fBrsz\fP).
+T}
+
+rsz RSZ T{
+consultați
+\fBrss\fP.
+(alias
+\fBrss\fP, \fBrssize\fP).
+T}
+
+rtprio RTPRIO T{
+prioritate în timp real.
+T}
+
+ruid RUID T{
+identificatorul utilizatorului real.
+T}
+
+ruser RUSER T{
+identificatorul utilizatorului real. Acesta va fi ID\-ul textual al utilizatorului,
+dacă poate fi obținut și lățimea câmpului o permite, sau o reprezentare zecimală
+în caz contrar.
+T}
+
+s S T{
+afișare minimă a stării (un caracter). Consultați secțiunea
+\fBCODURI DE STARE A PROCESULUI\fP
+sau diferitele valori. Consultați de asemenea
+\fBstat\fP
+dacă doriți să fie afișate informații suplimentare (alias
+\fBstate\fP).
+T}
+
+sched SCH T{
+politica de planificare a procesului. Politicile SCHED_OTHER (SCHED_NORMAL),
+SCHED_FIFO, SCHED_RR, SCHED_BATCH, SCHED_ISO, SCHED_IDLE și SCHED_DEADLINE sunt
+afișate respectiv ca 0, 1, 2, 3, 4, 5 și 6.
+T}
+
+seat SEAT T{
+afișează identificatorul asociat cu toate dispozitivele hardware alocate unei anumite stații de lucru, dacă a fost inclus suportul pentru «systemd».
+T}
+
+sess SESS T{
+identificatorul de sesiune sau, în mod echivalent, identificatorul de proces al liderului de sesiune (alias
+\fBsession\fP, \fBsid\fP).
+T}
+
+sgi_p P T{
+procesorul pe care se execută în prezent procesul. Afișează „*†dacă procesul nu rulează în prezent sau nu poate fi executat.
+T}
+
+sgid SGID T{
+ID\-ul de grup salvat (alias \fBsvgid\fP).
+T}
+
+sgroup SGROUP T{
+numele de grup salvat. Acesta va fi ID\-ul textual al grupului, dacă poate fi obținut și lățimea câmpului o permite, sau o reprezentare zecimală în caz contrar.
+T}
+
+sid SID T{
+consultați
+\fBsess\fP.
+(alias
+\fBsess\fP, \fBsession\fP).
+T}
+
+sig PENDING T{
+consultați
+\fBpending\fP.
+(alias
+\fBpending\fP, \fBsig_pend\fP).
+T}
+
+sigcatch CAUGHT T{
+consultați
+\fBcaught\fP.
+(alias
+\fBcaught\fP, \fBsig_catch\fP).
+T}
+
+sigignore IGNORED T{
+consultați
+\fBignored\fP.
+(alias
+\fBignored\fP, \fBsig_ignore\fP).
+T}
+
+sigmask BLOCKED T{
+consultați
+\fBblocked\fP.
+(alias
+\fBblocked\fP, \fBsig_block\fP).
+T}
+
+size DIMENSIUNE T{
+cantitatea aproximativă de spaÈ›iu de interschimb care ar fi necesară dacă procesul ar fi pe cale să modifice (mâzgălească „dirtyâ€) toate paginile inscriptibile È™i apoi să se transfere în spaÈ›iul de schimb (swap). Acest număr este foarte aproximativ!
+T}
+
+slice SLICE T{
+afișează unitatea de felie (slice) căreia îi aparține un proces, dacă a fost inclus suportul pentru «systemd».
+T}
+
+spid SPID T{
+consultați
+\fBlwp\fP.
+(alias
+\fBlwp\fP, \fBtid\fP).
+T}
+
+stackp STACKP T{
+adresa de la partea de jos (început) a stivei pentru proces.
+T}
+
+start STARTED T{
+momentul în care comanda a început. Dacă procesul a fost pornit cu mai puÈ›in de 24 de ore în urmă, formatul de ieÈ™ire este „HH:MM:SSâ€, altfel este „\ \ Mmm\ dd†(unde Mmm este un nume de lună format din trei litere). ConsultaÈ›i, de asemenea, \fBlstart\fP, \fBbsdstart\fP, \fBstart_time\fP È™i \fBstime\fP.
+T}
+
+start_time START T{
+ora sau data de începere a procesului. Doar anul va fi afișat dacă procesul nu a fost început în același an în care a fost invocat \fBps\fP, sau „MmmDD†dacă nu a fost început în aceeași zi, sau „HH:MM†în caz contrar. Consultați, de asemenea, \fBbsdstart\fP, \fBstart\fP, \fBlstart\fP și \fBstime\fP.
+T}
+
+stat STAT T{
+starea procesului cu mai multe caractere. Consultați secțiunea
+\fBCODURI DE STARE A PROCESULUI\fP
+pentru diferitele semnificații ale valorilor.Consultați și
+\fBs\fP și \fBstate\fP
+dacă doriți doar să fie afișat primul caracter.
+T}
+
+state S T{
+consultați
+\fBs\fP. (alias \fBs\fP).
+T}
+
+stime STIME T{
+consultați \fBstart_time\fP. (alias \fBstart_time\fP).
+T}
+
+suid SUID T{
+identificatorul utilizatorului salvat. (alias
+\fBsvuid\fP).
+T}
+
+supgid SUPGID T{
+identificatoare de grup ale grupurilor suplimentare, dacă există. Consultați
+\fBgetgroups\fP(2).
+T}
+
+supgrp SUPGRP T{
+numele de grup ale grupurilor suplimentare, dacă există. Consultați
+\fBgetgroups\fP(2).
+T}
+
+suser SUSER T{
+numele de utilizator salvat. Acesta va fi ID\-ul textual al utilizatorului,
+dacă poate fi obținut și lățimea câmpului o permite, sau o reprezentare
+zecimală în caz contrar. (alias
+\fBsvuser\fP).
+T}
+
+svgid SVGID T{
+consultați
+\fBsgid\fP.
+(alias
+\fBsgid\fP).
+T}
+
+svuid SVUID T{
+consultați
+\fBsuid\fP.
+(alias
+\fBsuid\fP).
+T}
+
+sz SZ T{
+dimensiunea în paginile fizice a imaginii din memorie a procesului. Aceasta include text, date și spațiu de stivă. Cartografierile în memorie ale dispozitivelor sunt în prezent excluse; acest lucru este supus modificării. Consultați
+\fBvsz\fP și \fBrss\fP.
+T}
+
+tgid TGID T{
+un număr care reprezintă grupul de fire căruia îi aparține o sarcină (alias
+\fBpid\fP).
+Este identificatorul de proces al liderului grupului de fire.
+T}
+
+thcount THCNT T{
+consultați
+\fBnlwp\fP.
+(alias
+\fBnlwp\fP).
+numărul de fire de execuție a nucleului deținute de proces.
+T}
+
+tid TID T{
+numărul unic reprezentând identificatorul unei entități distribuibile (alias
+\fBlwp\fP, \fBspid\fP).
+Această valoare poate apărea și ca: un ID de proces (pid); un ID de grup
+de procese (pgrp); un ID de sesiune pentru liderul de sesiune (sid); un
+ID de grup de fire pentru liderul grupului de fire (tgid); și un ID de grup
+de procese tty pentru liderul grupului de procese
+(tpgid).
+T}
+
+time TIME T{
+timpul cumulat al procesorului, în formatul „[DD\-]HH:MM:SS†(alias
+\fBcputime\fP).
+T}
+
+timens TIMENS T{
+numărul unic de nod\-i care descrie spațiul de nume căruia îi aparține procesul.
+A se vedea
+\fInamespaces\fP(7).
+T}
+
+times TIME T{
+timpul cumulat al procesorului în secunde (alias
+\fBcputimes\fP).
+T}
+
+tname TTY T{
+tty (terminal) de control (alias
+\fBtt\fP, \fBtty\fP).
+T}
+
+tpgid TPGID T{
+identificatorul grupului de procese din primplan pe tty (terminalul) la care este conectat procesul sau \-1 dacă procesul nu este conectat la un tty.
+T}
+
+trs TRS T{
+dimensiunea textului în memoria rezidentă, cantitatea de memorie fizică dedicată codului executabil.
+T}
+
+tt TT T{
+tty (terminal) de control (alias
+\fBtname\fP, \fBtty\fP).
+T}
+
+tty TT T{
+tty (terminal) de control (alias
+\fBtname\fP, \fBtt\fP).
+T}
+
+ucmd CMD T{
+consultați
+\fBcomm\fP.
+(alias
+\fBcomm\fP, \fBucomm\fP).
+T}
+
+ucomm COMANDA T{
+consultați
+\fBcomm\fP.
+(alias
+\fBcomm\fP, \fBucmd\fP).
+T}
+
+uid UID T{
+consultați
+\fBeuid\fP.
+(alias
+\fBeuid\fP).
+T}
+
+uname USER T{
+consultați
+\fBeuser\fP.
+(alias
+\fBeuser\fP, \fBuser\fP).
+T}
+
+unit UNIT T{
+afișează unitatea căreia îi aparține un proces, dacă a fost inclus suportul pentru «systemd».
+T}
+
+utilizator USER T{
+consultați
+\fBeuser\fP.
+(alias
+\fBeuser\fP, \fBuname\fP).
+T}
+
+userns USERNS T{
+numărul unic de nod\-i care descrie spațiul de nume căruia îi aparține procesul.
+A se vedea
+\fInamespaces\fP(7).
+T}
+
+uss USS T{
+dimensiunea memoriei unice, memoria fizică neinterschimbată (non\-swapped), care nu este partajată cu o altă sarcină.
+T}
+
+utsns UTSNS T{
+numărul unic de nod\-i care descrie spațiul de nume căruia îi aparține procesul.
+A se vedea
+\fInamespaces\fP(7).
+T}
+
+uunit UUNIT T{
+afișează unitatea utilizator căreia îi aparține un proces, dacă a fost inclus suportul pentru «systemd».
+T}
+
+vsize VSZ T{
+consultați
+\fBvsz\fP.
+(alias
+\fBvsz\fP).
+T}
+
+vsz VSZ T{
+dimensiunea memoriei virtuale a procesului în Kio (unități de 1024 de octeți). Cartografierile în memorie ale dispozitivelor sunt în prezent excluse; acest lucru este supus modificării (alias \fBvsize\fP).
+T}
+
+wbytes WBYTES T{
+numărul de octeți care au fost trimiși la stratul de stocare prin acest proces.
+T}
+
+wcbytes WCBYTES T{
+numărul de octeți de scriere anulați.
+T}
+
+wchan WCHAN T{
+numele funcției de nucleu în care procesul se află dormind.
+T}
+
+wchars WCHARS T{
+numărul de octeți pe care această sarcină l\-a cauzat, sau îl va face să fie scris pe disc.
+T}
+
+wops WOPS T{
+Numărul de operații de scriere In/Ieș — adică apeluri de sistem, cum ar fi
+\fBwrite\fP(2) și \fBpwrite\fP(2).
+T}
+
+.TE
+.SH "VARIABILE DE MEDIU"
+Următoarele variabile de mediu ar putea afecta \fBps\fP:
+.TP 3
+\fBCOLOANE\fP
+Reamplasează lățimea de afișare implicită.
+.TP
+\fBLINII\fP
+Reamplasează înălțimea de afișare implicită.
+.TP
+\fBPS_PERSONALITY\fP
+Stabilește una dintre valorile: posix, old, linux, bsd, sun, digital...\&
+(consultați secțiunea \fBPERSONALITATE\fP de mai jos).
+.TP
+\fBCMD_ENV\fP
+Stabilește una dintre valorile: posix, old, linux, bsd, sun, digital...\&
+(consultați secțiunea \fBPERSONALITATE\fP de mai jos).
+.TP
+\fBI_WANT_A_BROKEN_PS\fP
+Forțează interpretarea liniei de comandă învechite.
+.TP
+\fBLC_TIME\fP
+Formatul de dată.
+.TP
+\fBLIBPROC_HIDE_KERNEL\fP
+Stabiliți această variabilă la orice valoare pentru a ascunde firele de
+nucleu afișate în mod normal cu opțiunea \fB\-e\fP. Acest lucru este echivalent
+cu selectarea \fB\-\-ppid 2 \-p 2 \-\-deselect\fP. Funcționează și în modul BSD.
+.TP
+\fBPS_COLORS\fP
+Nu este acceptată momentan.
+.TP
+\fBPS_FORMAT\fP
+Suprascrierea formatului de ieșire implicit. Puteți configura această
+variabilă la un șir de format de tipul utilizat pentru opțiunea \fB\-o\fP.
+Valorile \fBDefSysV\fP și \fBDefBSD\fP sunt deosebit de utile.
+.TP
+\fBPOSIXLY_CORRECT\fP
+Nu căutați scuze pentru a ignora „caracteristicile†incorecte.
+.TP
+\fBPOSIX2\fP
+Când este fixată la „onâ€, acÈ›ionează ca \fBPOSIXLY_CORRECT\fP.
+.TP
+\fBUNIX95\fP
+Nu căutați scuze pentru a ignora „caracteristicile†incorecte.
+.TP
+\fB_XPG\fP
+Anulează comportamentul non\-standard \fBCMD_ENV\fP=\fIirix\fP.
+.PP
+În general, este o idee proastă să configurați aceste variabile. Singura
+excepție este \fBCMD_ENV\fP sau \fBPS_PERSONALITY\fP, care ar putea fi configurată
+la „Linux†pentru sisteme normale. Fără această configurare, \fBps\fP urmează
+părțile inutile și proaste ale standardului Unix98.
+.SH PERSONALITATE
+.TS
+l l.
+390 similar cu \fBps\fP pentru OS/390 OpenEdition
+aix similar cu \fBps\fP pentru AIX
+bsd similar cu \fBps\fP pentru FreeBSD (cu desăvârșire nestandard)
+compaq similar cu \fBps\fP pentru Digital Unix
+debian similar cu \fBps\fP pentru vechiul Debian
+digital similar cu \fBps\fP pentru Tru64 (fost Digital Unix, fost OSF/1)
+gnu similar cu \fBps\fP pentru vechiul Debian
+hp similar cu \fBps\fP pentru HP\-UX
+hpux similar cu \fBps\fP pentru HP\-UX
+irix similar cu \fBps\fP pentru Irix
+linux ***** \fBrecomandat\fP *****
+old similar cu originalul \fBps\fP pentru Linux (cu desăvârșire nestandard)
+os390 similar cu \fBps\fP pentru OS/390 OpenEdition
+posix standard
+s390 similar cu \fBps\fP pentru OS/390 OpenEdition
+sco similar cu \fBps\fP pentru SCO
+sgi similar cu \fBps\fP pentru Irix
+solaris2 similar cu \fBps\fP pentru Solaris 2+ (SunOS 5)
+sunos4 similar cu \fBps\fP pentru SunOS 4 (Solaris 1) (cu desăvârșire nestandard)
+svr4 standard
+sysv standard
+tru64 similar cu \fBps\fP pentru Tru64 (fost Digital Unix, fost OSF/1)
+unix standard
+unix95 standard
+unix98 standard
+.TE
+.SH ERORI
+Câmpurile \fBbsdstart\fP și \fBstart\fP vor afișa doar numele prescurtat al lunii
+în limba engleză. Câmpurile \fBlstart\fP și \fBstime\fP vor afișa numele
+prescurtat al lunii în limba locală configurată, dar pot depăși lățimea
+coloanei din cauza lungimilor diferite ale numelor prescurtate ale lunii și
+zilei în funcție de limbă.
+.PP
+.SH "CONSULTAȚI ȘI"
+\fBpgrep\fP(1), \fBpstree\fP(1), \fBtop\fP(1), \fBstrftime\fP(3), \fBproc\fP(5).
+.SH STANDARDE
+Acest \fBps\fP este conform cu:
+.PP
+.PD 0
+.IP 1 4
+Versiunea 2 a Single Unix Specification
+.IP 2 4
+The Open Group Technical Standard Base Specifications, versiunea 6
+.IP 3 4
+IEEE Std 1003.1, ediția 2004
+.IP 4 4
+X/Open System Interfaces Extension [UP XSI]
+.IP 5 4
+ISO/IEC 9945:2003
+.PD
+.SH AUTOR
+\fBps\fP a fost scris inițial de
+.MT lankeste@\:fwi.\:uva.\:nl
+Branko
+Lankester
+.ME .
+.MT johnsonm@\:redhat.\:com
+Michael K. Johnson
+.ME
+l\-a rescris extensiv pentru a folosi sistemul de fișiere \fIproc\fP, schimbând
+câteva detalii pe parcurs.
+.MT mjshield@\:nyx.\:cs.\:du.\:edu
+Michael
+Shields
+.ME
+a adăugat funcționalitatea listei PID.
+.MT cblake@\:bbn.\:com
+Charles Blake
+.ME
+a adăugat sortarea pe mai multe
+niveluri, biblioteca în stilul „direntâ€, baza de date „mmaped†de la nume la
+număr al dispozitivului, căutarea binară aproximativă direct pe System.map,
+și multe curățări de cod și documentație. David Mossberger\-Tang a scris
+suportul BFD generic pentru „psupdateâ€.
+.MT albert@\:users.\:sf.\:net
+Albert Cahalan
+.ME
+a rescris \fBps\fP pentru a suporta pe deplin Unix98 și
+BSD, plus câteva soluții pentru sintaxe învechite și externe.
+.PP
+Trimiteți rapoartele de eroare la
+.MT procps@\:freelists.\:org
+.ME .
+Nu este necesară sau sugerată nicio înscriere.
diff --git a/po-man/ro/pwdx.1 b/po-man/ro/pwdx.1
new file mode 100644
index 0000000..ce6e781
--- /dev/null
+++ b/po-man/ro/pwdx.1
@@ -0,0 +1,42 @@
+.\"
+.\" Copyright (c) 2020-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2004 Nicholas Miel.
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PWDX 1 04.06.2020 procps\-ng "Comenzi utilizator"
+.SH NUME
+pwdx \- raportează directorul de lucru curent al unui proces
+.SH REZUMAT
+\fBpwdx\fP [\fIopțiuni\fP] \fIpid\fP [...]
+.SH OPÈšIUNI
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Afișează informațiile despre versiune și iese.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Afișează acest mesaj de ajutor și iese.
+.SH "CONSULTAȚI ȘI"
+\fBps\fP(1), \fBpgrep\fP(1)
+.SH STANDARDE
+Nu este respectat niciun standard, dar \fBpwdx\fP seamănă foarte mult cu o
+comandă SunOS.
+.SH AUTOR
+.UR nmiell@gmail.com
+Nicholas Miell
+.UE
+a scris «pwdx» în 2004.
+.SH "RAPORTAREA ERORILOR"
+Trimiteți rapoartele de eroare la
+.UR procps@freelists.org
+.UE
diff --git a/po-man/ro/skill.1 b/po-man/ro/skill.1
new file mode 100644
index 0000000..b6fa8c1
--- /dev/null
+++ b/po-man/ro/skill.1
@@ -0,0 +1,116 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2006 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SKILL 1 19.08.2023 procps\-ng "Comenzi utilizator"
+.SH NUME
+skill, snice – trimite un semnal sau raportează starea procesului
+.SH REZUMAT
+\fBskill\fP [\fIsemnal\fP] [\fIopțiuni\fP] \fIexpresie\fP
+.br
+\fBsnice\fP [\fInouă_prioritate\fP] [\fIopțiuni\fP] \fIexpresie\fP
+.SH DESCRIERE
+Aceste instrumente sunt învechite și neportabile. Sintaxa comenzii este
+prost definită. Luați în considerare utilizarea comenzilor \fBkillall\fP,
+\fBpkill\fP și \fBpgrep\fP.
+.PP
+Semnalul implicit pentru \fBskill\fP este \fITERM\fP. Folosiți opțiunile „\fB\-l\fP
+sau \fB\-L\fP pentru a lista semnalele disponibile. Printre cele mai utile
+semnale, sunt: HUP, INT, KILL, STOP, CONT și 0. Semnalele pot fi
+specificate în trei moduri: \fB\-9\fP, \fB\-SIGKILL\fP și \fB\-KILL\fP.
+.PP
+Prioritatea implicită pentru \fBsnice\fP este +4. Numerele de prioritate
+variază de la +20 (cel mai lent) la \-20 (cel mai rapid). Numerele cu
+prioritate negativă sunt limitate la utilizatorii administrativi.
+.SH OPÈšIUNI
+.TP
+\fB\-f\fP, \fB\-\-fast\fP
+Modul rapid. Această opțiune nu a fost implementată.
+.TP
+\fB\-i\fP, \fB\-\-interactive\fP
+Utilizare interactivă. Vi se va solicita să aprobați fiecare acțiune.
+.TP
+\fB\-l\fP, \fB\-\-list\fP
+Listează toate numele semnalelor.
+.TP
+\fB\-L\fP, \fB\-table\fP
+Listează toate numele semnalelor într\-un tabel ordonat.
+.TP
+\fB\-n\fP, \fB\-\-no\-action\fP
+Nicio acțiune; efectuează o simulare a evenimentelor care ar avea loc, dar
+nu schimbă de fapt sistemul.
+.TP
+\fB\-v\fP, \fB\-\-verbose\fP
+Informații detaliate; explică ce se face.
+.TP
+\fB\-w\fP, \fB\-\-warnings\fP
+Activează avertismentele. Această opțiune nu a fost implementată.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Afișează acest mesaj de ajutor.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Afișați informațiile despre versiune.
+.PD
+.SH "OPÈšIUNI DE SELECTARE A PROCESULUI"
+Criteriile de selecție pot fi: terminal, user, pid, command. Opțiunile de
+mai jos pot fi utilizate pentru a asigura o interpretare corectă.
+.TP
+\fB\-t\fP, \fB\-\-tty\fP \fItty\fP
+Următoarea expresie este un terminal (tty sau pty).
+.TP
+\fB\-u\fP, \fB\-\-user\fP \fIutilizator\fP
+Următoarea expresie este un nume de utilizator.
+.TP
+\fB\-p\fP, \fB\-\-pid\fP \fIpid\fP
+Următoarea expresie este un număr de identificare a procesului.
+.TP
+\fB\-c\fP, \fB\-\-command\fP \fIcomanda\fP
+Următoarea expresie este un nume de comandă.
+.TP
+\fB\-\-ns\fP \fIpid\fP
+Potrivește procesele care aparțin aceluiași spațiu de nume ca pid.
+.TP
+\fB\-\-nslist \fP\fIns\/\fP,\,\fI...\/\fP
+listează spațiile de nume care vor fi luate în considerare pentru opțiunea
+\fB\-\-ns\fP. Spațiile de nume disponibile, sunt: ipc, mnt, net, pid, user, uts.
+.PD
+.SH SEMNALE
+Comportamentul semnalelor este explicat în pagina de manual \fBsignal\fP(7).
+.SH EXEMPLE
+.TP
+\fBsnice \-c seti \-c crack +7\fP
++Încetinește comenzile \fBseti\fP și \fBcrack\fP.
+.TP
+\fBskill \-KILL \-t /dev/pts/*\fP
+Omoară sesiunile de utilizator pe dispozitivele PTY.
+.TP
+\fBskill \-STOP \-u viro \-u lm \-u davem\fP
+Oprește trei utilizatori.
+.SH "CONSULTAȚI ȘI"
+\fBkill\fP(1), \fBkill\fP(2), \fBkillall\fP(1), \fBnice\fP(1), \fBpkill\fP(1),
+\fBrenice\fP(1), \fBsignal\fP(7)
+.SH STANDARDE
+Nu este respectat niciun standard.
+.SH AUTOR
+.MT albert@users.sf.net
+Albert Cahalan
+.ME
+a scris «skill» și «snice»
+în 1999 pentru a înlocui versiunile care nu erau libere.
+.SH "RAPORTAREA ERORILOR"
+Trimiteți rapoartele de eroare la
+.UR procps@freelists.org
+.UE
diff --git a/po-man/ro/slabtop.1 b/po-man/ro/slabtop.1
new file mode 100644
index 0000000..3f97f47
--- /dev/null
+++ b/po-man/ro/slabtop.1
@@ -0,0 +1,116 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2004-2006 Albert Cahalan
+.\" Copyright (C) 2003 Chris Rivera
+.\"
+.\" This program is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU Lesser General Public License as
+.\" published by the Free Software Foundation; either version 2.1 of the
+.\" License, or (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SLABTOP 1 11.03.2021 procps\-ng "Comenzi utilizator"
+.SH NUME
+slabtop \- afișează în timp real informațiile din zona de prestocare a
+memoriei „slab†din nucleu
+.SH REZUMAT
+\fBslabtop\fP [\fIopțiuni\fP]
+.SH DESCRIERE
+\fBslabtop\fP afișează în timp real informații detaliate din zona de prestocare
+a memoriei „slab†din nucleu. Afișează o listă cu principale zone de
+prestocare a memoriei, sortate după unul dintre criteriile de sortare
+enumerate. De asemenea, afișează un antet de statistici plin cu informații
+despre stratul „slab†(obiecte alocate nucleului).
+.SH OPÈšIUNI
+Invocarea normală a lui \fBslabtop\fP nu necesită nicio opțiune.
+Comportamentul, totuși, poate fi ajustat prin specificarea uneia sau a mai
+multora dintre următoarele opțiuni:
+.TP
+\fB\-d\fP, \fB\-\-delay\fP=\fIN\fP
+Reîmprospătează afișajul la fiecare \fIn\fP secunde. În mod implicit,
+\fBslabtop\fP reîmprospătează afișajul la fiecare trei secunde. Pentru a ieși
+din program, apăsați \fBq\fP. Această opțiune nu poate fi combinată cu
+opțiunea \fB\-o\fP.
+.TP
+\fB\-s\fP, \fB\-\-sort\fP=\fIS\fP
+Sortați după \fIS\fP, unde \fIS\fP este unul dintre criteriile de sortare.
+.TP
+\fB\-o\fP, \fB\-\-once\fP
+Afișează ieșirea o dată și apoi iese.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Afișează informațiile despre versiune și iese.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Afișează informațiile de utilizare și iese.
+.SH "CRITERIILE DE SORTARE"
+Următoarele sunt criterii de sortare valide utilizate pentru a sorta zonele
+de prestocare «slab» individuale și, prin urmare, pentru a determina care
+sunt zonele de prestocare «slab» „principale†de afișat. Criteriul implicit
+de sortare este sortarea după numărul de obiecte ("o").
+.PP
+Criteriile de sortare pot fi modificate și în timp ce \fBslabtop\fP rulează
+apăsând caracterul asociat.
+.TS
+l l l.
+\fBcaracter\fP \fBdescriere\fP \fBantet\fP
+a numărul de obiecte active ACTIVE
+b obiecte per „slab†OBJ/SLAB
+c dimensiunea zonei de prestocare DIM. CACHE
+l numărul de „slabs†SLABS
+v numărul de „slabs†active N/D
+n nume NUME\:
+o numărul de obiecte OBJS
+p pagini per „slab†N/D
+s dimensiunea obiectului DIM. OBJ
+u utilizarea zonei de prestocare USE
+.TE
+.SH COMENZI
+\fBslabtop\fP acceptă comenzi de la tastatură de la utilizator în timpul
+utilizării. Sunt acceptate următoarele. În cazul literelor, ambele tipuri
+(majuscule + minuscule) sunt acceptate.
+.PP
+Fiecare dintre caracterele de sortare valide sunt de asemenea acceptate,
+pentru a schimba rutina de sortare. Consultați secțiunea \fBCRITERIILE DE SORTARE\fP.
+.TP
+\fB<BARA_DE_SPAÈšIU>\fP
+Reîmprospătează ecranul.
+.TP
+\fBQ\fP
+Ieșire din program.
+.SH FIȘIERE
+.TP
+\fI/proc/slabinfo\fP
+informaÈ›ii despre „slabâ€
+.SH "CONSULTAȚI ȘI"
+\fBfree\fP(1), \fBps\fP(1), \fBtop\fP(1), \fBvmstat\fP(8)
+.SH NOTE
+În prezent, \fBslabtop\fP necesită un nucleu 2.4 sau mai recent (în special, o
+versiune 1.1 sau mai recentă a \fI/proc/slabinfo\fP). Nucleul 2.2 ar trebui să
+fie acceptat în viitor.
+.PP
+Antetul statistic \fBslabtop\fP urmărește câți octeți de „slabs†sunt utilizați
+și nu este o măsură a memoriei fizice. Câmpul „Slab†din fișierul
+\fI/proc/meminfo\fP urmăreÈ™te informaÈ›ii despre memoria fizică „slabâ€
+utilizate.
+.PP
+Coloana \fBDIM. CACHE\fP nu este precisă, ci reprezintă limita superioară a
+memoriei utilizate de un anumit „slabâ€. Atunci când sistemul care utilizează
+„slub†(cel mai frecvent caz) este supus unei presiuni mari asupra memoriei,
+există scăpări de ordine a „slabsâ€, ceea ce înseamnă că «paginile per
+„slabâ€Â» nu sunt constante È™i pot scădea.
+.SH AUTORI
+Scris de Chris Rivera și Robert Love.
+.PP
+\fBslabtop\fP a fost inspirat de scriptul perl al lui Martin Bligh, \fBvmtop\fP.
+.SH "RAPORTAREA ERORILOR"
+Trimiteți rapoartele de eroare la
+.UR procps@freelists.org
+.UE
diff --git a/po-man/ro/sysctl.8 b/po-man/ro/sysctl.8
new file mode 100644
index 0000000..cca04aa
--- /dev/null
+++ b/po-man/ro/sysctl.8
@@ -0,0 +1,182 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2004-2006 Albert Cahalan
+.\" Copyright (c) 1999 George Staikos <staikos@0wned.org>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SYSCTL 8 19.08.2023 procps\-ng "Administrare sistem"
+.SH NUME
+sysctl \- configurează parametrii nucleului în timpul rulării
+.SH REZUMAT
+\fBsysctl\fP [\fIopțiuni\fP] [\fIvariabilă\fP[\fB=\fP\fIvaloare\fP]] [...]
+.br
+\fBsysctl \-p\fP [\fIfișier\fP sau \fIexp_reg\fP] [...]
+.SH DESCRIERE
+\fBsysctl\fP este folosit pentru a modifica parametrii nucleului în timpul
+rulării. Parametrii disponibili sunt cei enumerați în \fI/proc/sys/\fP.
+Procfs este necesar pentru suportul \fBsysctl\fP în Linux. Puteți folosi
+\fBsysctl\fP atât pentru a citi, cât și pentru a scrie date \fIsysctl\fP.
+.SH PARAMETRI
+.TP
+\fIvariabilă\fP
+Numele unei chei din care să citiÈ›i. Un exemplu este „kernel.ostypeâ€.
+Separatorul „/†este de asemenea acceptat în locul unui „.â€.
+.TP
+\fIvariabilă\fP=\fIvaloare\fP
+Pentru a configura o cheie, utilizați forma \fIvariabilă\fP=\fIvaloare\fP unde
+\fIvariabilă\fP este cheia și \fIvaloare\fP este valoarea la care să o
+configurați. Dacă valoarea conține ghilimele sau caracterele care sunt
+analizate de shell, poate fi necesar să includeți valoarea între ghilimele
+duble.
+.TP
+\fB\-n\fP, \fB\-\-values\fP
+Utilizați această opțiune pentru a dezactiva afișarea numelui cheii atunci
+când se afișează valori.
+.TP
+\fB\-e\fP, \fB\-\-ignore\fP
+Utilizați această opțiune pentru a ignora erorile legate de cheile
+necunoscute.
+.TP
+\fB\-N\fP, \fB\-\-names\fP
+Utilizați această opțiune pentru a afișa numai numele. Poate fi util cu
+shell\-uri care au o completare programabilă.
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+Utilizați această opțiune pentru a nu afișa valorile configurate la ieșirea
+standard.
+.TP
+\fB\-w\fP, \fB\-\-write\fP
+Forțează toate argumentele să fie argumente de scriere și afișează o eroare
+dacă acestea nu pot fi analizate în acest mod.
+.TP
+\fB\-p\fP[\fIFIȘIER\fP], \fB\-\-load\fP[=\fIFIȘIER\fP]
+Încărcați configurările \fIsysctl\fP din fișierul specificat sau
+\fI/etc/sysctl.conf\fP dacă nu este specificat niciunul. Specificarea „\-†ca
+nume de fișier înseamnă citirea datelor de la intrarea standard. Utilizarea
+acestei opțiuni va însemna că argumentele pentru \fBsysctl\fP sunt fișiere,
+care sunt citite în ordinea în care sunt specificate. Argumentul fișier
+poate fi specificat ca expresie regulată.
+.TP
+\fB\-a\fP, \fB\-\-all\fP
+Afișează toate valorile disponibile în prezent.
+.TP
+\fB\-\-deprecated\fP
+Include parametrii învechiți în lista cu valori \fB\-\-all\fP.
+.TP
+\fB\-b\fP, \fB\-\-binary\fP
+Afișează valoarea fără linie nouă.
+.TP
+\fB\-\-system\fP
+Încarcă configurările din toate fișierele de configurare a sistemului.
+Consultați secțiunea \fBPRECEDENȚA FIȘIERELOR DE SISTEM\fP de mai jos.
+.TP
+\fB\-r\fP, \fB\-\-pattern\fP \fImodel\fP
+Aplică doar configurările care se potrivesc cu \fImodel\fP. Opțiunea
+\fI\-\-pattern\fP folosește sintaxa extinsă a expresiei regulate.
+.TP
+\fB\-A\fP
+Alias de \fB\-a\fP
+.TP
+\fB\-d\fP
+Alias al \fB\-h\fP
+.TP
+\fB\-f\fP
+Alias de \fB\-p\fP
+.TP
+\fB\-X\fP
+Alias de \fB\-a\fP
+.TP
+\fB\-o\fP
+Nu face nimic, există pentru compatibilitatea cu BSD.
+.TP
+\fB\-x\fP
+Nu face nimic, există pentru compatibilitatea cu BSD.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Afișează acest mesaj de ajutor.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Afișează informațiile despre versiune și iese.
+.SH "PRECEDENȚA FIȘIERELOR DE SISTEM"
+Când se utilizează opțiunea \fB\-\-system\fP, \fBsysctl\fP va citi fișierele din
+directoarele din următoarea listă, în ordinea dată de sus în jos. Odată ce
+un fișier cu un anumit nume de fișier este încărcat, orice fișier cu același
+nume din directoarele ulterioare este ignorat.
+
+/etc/sysctl.d/*.conf
+.br
+/run/sysctl.d/*.conf
+.br
+/usr/local/lib/sysctl.d/*.conf
+.br
+/usr/lib/sysctl.d/*.conf
+.br
+/lib/sysctl.d/*.conf
+.br
+/etc/sysctl.conf
+
+Toate fișierele de configurare sunt sortate în ordine lexicografică,
+indiferent de directorul în care se află . Fișierele de configurare pot fi
+fie complet înlocuite (prin a avea un nou fișier de configurare cu același
+nume într\-un director cu prioritate mai mare), fie parțial înlocuite (prin a
+avea un fișier de configurare care este ordonat ulterior).
+.SH EXEMPLE
+/sbin/sysctl \-a
+.br
+/sbin/sysctl \-n kernel.hostname
+.br
+/sbin/sysctl \-w kernel.domainname="example.com"
+.br
+/sbin/sysctl \-p/etc/sysctl.conf
+.br
+/sbin/sysctl \-a \-\-pattern forward
+.br
+/sbin/sysctl \-a \-\-pattern forward$
+.br
+/sbin/sysctl \-a \-\-pattern 'net.ipv4.conf.(eth|wlan)0.arp'
+.br
+/sbin/sysctl \-\-pattern '\[char94]net.ipv6' \-\-system
+.SH "PARAMETRI ÃŽNVECIÈšI"
+Parametrii \fBbase_reachable_time\fP și \fBretrans_time\fP sunt învechiți.
+Comanda \fBsysctl\fP nu permite modificarea valorilor acestor parametri.
+Utilizatorii care insistă să folosească interfețe de nucleu depreciate ar
+trebui să introducă valori în sistemul de fișiere \fB/proc\fP prin alte
+mijloace. De exemplu:
+.PP
+echo 256 > /proc/sys/net/ipv6/neigh/eth0/base_reachable_time
+.SH FIȘIERE
+\fI/proc/sys\fP
+.br
+\fI/etc/sysctl.d/*.conf\fP
+.br
+\fI/run/sysctl.d/*.conf\fP
+.br
+\fI/usr/local/lib/sysctl.d/*.conf\fP
+.br
+\fI/usr/lib/sysctl.d/*.conf\fP
+.br
+\fI/lib/sysctl.d/*.conf\fP
+.br
+\fI/etc/sysctl.conf\fP
+.SH "CONSULTAȚI ȘI"
+\fBproc\fP(5), \fBsysctl.conf\fP(5), \fBregex\fP(7)
+.SH AUTOR
+.UR staikos@0wned.org
+George Staikos
+.UE
+.SH "RAPORTAREA ERORILOR"
+Trimiteți rapoartele de eroare la
+.UR procps@freelists.org
+.UE
diff --git a/po-man/ro/sysctl.conf.5 b/po-man/ro/sysctl.conf.5
new file mode 100644
index 0000000..7b668bb
--- /dev/null
+++ b/po-man/ro/sysctl.conf.5
@@ -0,0 +1,90 @@
+.\"
+.\" Copyright (c) 2016-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2019-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1999 George Staikos <staikos@0wned.org>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SYSCTL.CONF 5 15.09.2021 procps\-ng "Formate de fișiere"
+.SH NUME
+sysctl.conf \- fișierul de preîncărcare/configurare al «sysctl»
+.SH DESCRIERE
+\fBsysctl.conf\fP este un fișier simplu care conține valori „sysctl†care
+trebuie citite și stabilite de \fBsysctl\fP. Sintaxa este pur și simplu după
+cum urmează:
+.RS
+.sp
+.nf
+.ne 7
+# comentariu
+; comentariu
+
+element = valoare
+.fi
+.RE
+.PP
+Rețineți că liniile goale și spațiile înainte sau după un element sau
+valoare sunt ignorate. O valoare poate conține totuși spații. Rândurile
+care încep cu un \fI#\fP sau un \fI;\fP sunt comentarii și, prin urmare, sunt
+ignorate.
+
+Dacă o linie începe cu un singur \-, orice încercare de a definii valoarea
+care eșuează va fi ignorată.
+
+.SH NOTE
+Deoarece fișierul \fB/etc/sysctl.conf\fP este folosit pentru a suprascrie
+valorile implicite ale parametrilor nucleului, doar un număr mic de
+parametri este predefinit în fișier. Folosiți \fI/sbin/sysctl\ \-a\fP sau
+urmați \fBsysctl\fP(8) pentru o listă cu toți parametrii posibili. Descrierea
+parametrilor individuali poate fi găsită în documentația nucleului.
+
+Lungimea maximă de linie acceptată a valorii este de 4096 de caractere din
+cauza unei limitări a intrărilor \fI/proc\fP în nucleul Linux.
+.SH EXEMPLU
+.RS
+.sp
+.nf
+.ne 7
+# model de sysctl.conf
+#
+ kernel.domainname = exemplu.com
+; acesta are un spațiu care va fi scris în sysctl!
+ kernel.modprobe = /sbin/mod probe
+.fi
+.RE
+.PP
+.SH FIȘIERE
+\fI/etc/sysctl.d/*.conf\fP
+.br
+\fI/run/sysctl.d/*.conf\fP
+.br
+\fI/usr/local/lib/sysctl.d/*.conf\fP
+.br
+\fI/usr/lib/sysctl.d/*.conf\fP
+.br
+\fI/lib/sysctl.d/*.conf\fP
+.br
+\fI/etc/sysctl.conf\fP
+
+Căile în care fișierele de preîncărcare \fBsysctl\fP se găsesc de obicei. A se
+vedea, de asemenea, opțiunea \fBsysctl\fP \fI\-\-system\fP.
+.SH "CONSULTAȚI ȘI"
+\fBsysctl\fP(8)
+.SH AUTOR
+.UR staikos@0wned.org
+George Staikos
+.UE
+.SH "RAPORTAREA ERORILOR"
+Trimiteți rapoartele de eroare la
+.UR procps@freelists.org
+.UE
diff --git a/po-man/ro/tload.1 b/po-man/ro/tload.1
new file mode 100644
index 0000000..f8adfec
--- /dev/null
+++ b/po-man/ro/tload.1
@@ -0,0 +1,62 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1993 Matt Welsh <mdw@tc.cornell.edu>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH TLOAD 1 04.06.2020 procps\-ng "Comenzi utilizator"
+.SH NUME
+tload \- reprezentare grafică a mediei de încărcare a sistemului
+.SH REZUMAT
+\fBtload\fP [\fIopțiuni\fP] [\fItty\fP]
+.SH DESCRIERE
+\fBtload\fP afișează un grafic al mediei curente de încărcare a sistemului la
+\fItty\fP specificat (sau tty\-ul procesului \fBtload\fP dacă nu este specificat
+niciunul).
+.SH OPÈšIUNI
+.TP
+\fB\-s\fP, \fB\-\-scale\fP \fInumber\fP
+Opțiunea \fI\-\-scale\fP este folosită pentru a indica o scară verticală pentru
+afișaj (în caractere între liniuțe); astfel o valoare mai mică reprezintă o
+scară mai mare și viceversa.
+.TP
+\fB\-d\fP, \fB\-\-delay\fP \fIsecunde\fP
+Opțiunea \fI\-\-delay\fP stabilește întârzierea dintre actualizările graficului
+în \fIsecunde\fP.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Afișează acest mesaj de ajutor.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Afișează informațiile despre versiune și iese.
+.PP
+.SH FIȘIERE
+\fI/proc/loadavg\fP informații despre încărcarea medie
+.SH "CONSULTAȚI ȘI"
+\fBps\fP(1), \fBtop\fP(1), \fBuptime\fP(1), \fBw\fP(1)
+.SH ERORI
+Opțiunea \fB\-d\fP\fIîntârzierea\fP stabilește argumentul de timp pentru comanda
+\fBalarm\fP(2); dacă se specifică „\-d 0â€, alarma este stabilită la 0, ceea ce
+nu va trimite niciodată \fBSIGALRM\fP și nu va actualiza afișarea.
+.SH AUTORI
+Branko Lankester,
+.UR david@\:ods.\:com
+David Engel
+.UE , and
+.UR johnsonm@\:redhat.\:com
+Michael K. Johnson
+.UE .
+.SH "RAPORTAREA ERORILOR"
+Trimiteți rapoartele de eroare la
+.UR procps@freelists.org
+.UE
diff --git a/po-man/ro/top.1 b/po-man/ro/top.1
new file mode 100644
index 0000000..ac718f9
--- /dev/null
+++ b/po-man/ro/top.1
@@ -0,0 +1,2957 @@
+.ig
+. manual page for NEW and IMPROVED linux top
+.
+. Copyright (c) 2002-2023 Jim Warner <james.warner@comcast.net
+.
+. This file may be copied under the terms of the GNU Public License.
+..
+.\" Setup ////////////////////////////////////////////////////////////////
+.\" Commonly used strings (for consistency) ----------
+.\" - our em-dashes
+.ds Em —
+.ds EM \fB — \fP
+.\" - our program name (makes great grammar)
+.ds We top
+.ds WE \fBtop\fP
+.\" - other misc strs for consistent usage
+.ds F \fIDezact.\fP
+.ds O \fIActivat\fP
+.
+.ds AK asterisc („*â€)
+.ds AM modul de afișare alternativ
+.ds AS stocare auxiliară
+.ds CF fișier de configurare
+.ds CG grup de ferestre/câmpuri „curenteâ€
+.ds CI comandă interactivă
+.ds CO opțiune de linie de comandă
+.ds CT comandă de comutare
+.ds CW fereastra „activăâ€
+.ds FG grup de câmpuri
+.ds FM modul ecran complet
+.ds KA tasta săgeată
+.ds KS tasta de deplasare
+.ds MP memoria fizică
+.ds MS fișier de interschimb
+.ds MV memorie virtuală
+.ds NT \fBNotă\fP:
+.ds PU CPU
+.ds Pu cpu
+.ds SA zona de rezumat
+.ds TA zona de sarcini
+.ds TD afișarea sarcinilor
+.ds TT \fBprocese\fP sau \fBfire de execuție\fP
+.ds TW fereastra de sarcină
+.\" Reference to the various widths/sizes ------------
+.\" - the max screen width limit
+.ds WX 512
+.\" - the header width w/ all fields
+.ds WF aproximativ 250
+.\" - pid monitoring limit
+.\" Xref's that depend on/mention other stuff --------
+.ds Xa a se vedea
+.ds XC A se vedea
+.ds Xc a se vedea
+.ds XT A se vedea subiectul
+.ds Xt a se vedea subiectul
+.ds XX Consultați „PREZENTARE GENERALĂ, Tipuri de memorie Linux†pentru detalii suplimentare
+.ds ZX Accesarea valorilor smaps este de 10 ori mai costisitoare din punct de vedere computaÈ›ional decât accesarea altor statistici de memorie, iar datele pentru alÈ›i utilizatori necesită privilegii „rootâ€
+.
+.\" Document /////////////////////////////////////////////////////////////
+.\" ----------------------------------------------------------------------
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH TOP 1 "august 2023" procps\-ng "Comenzi utilizator"
+.\" ----------------------------------------------------------------------
+.nh
+
+.\" ----------------------------------------------------------------------
+.SH NUME
+.\" ----------------------------------------------------------------------
+top \- Afișează procesele Linux
+
+.\" ----------------------------------------------------------------------
+.SH REZUMAT
+.\" ----------------------------------------------------------------------
+\*(WE [opțiuni]
+
+.\" ----------------------------------------------------------------------
+.SH DESCRIERE
+.\" ----------------------------------------------------------------------
+Programul \\*(WE oferă o vizualizare dinamică în timp real a sistemului care
+rulează. Poate afișa un rezumat al informațiilor \fBsistem\fP, precum și o
+listă a \\*(TT) gestionate în prezent de către nucleu. Tipurile de
+informații rezumate ale sistemului afișate și tipurile, ordinea și
+dimensiunea informațiilor afișate pentru procese sunt toate configurabile de
+utilizator și acea configurație poate fi persistentă în timpul repornirilor.
+
+Programul oferă o interfață interactivă limitată pentru manipularea
+procesului, precum și o interfață mult mai extinsă pentru configurarea
+personală \-\- cuprinzând fiecare aspect al funcționării sale. Și în timp ce
+\*(WE este menționat în acest document, sunteți liber să denumiți programul
+oricum doriți. Noul nume, eventual un alias, va fi apoi reflectat pe
+afișajul lui \*(WE și va fi folosit la citirea și scrierea unui fișier de
+configurare.
+
+.\" ----------------------------------------------------------------------
+.SH "PREZENTARE GENERALÄ‚"
+.\" ----------------------------------------------------------------------
+.\" ......................................................................
+.SS Documentație
+.\" ----------------------------------------------------------------------
+Cuprins
+
+.nf
+ PREZENTARE GENERALÄ‚
+ Funcționarea programului
+ Tipuri de memorie Linux
+ 1. Opțiuni pentru LINIA DE COMANDĂ
+ 2. Afișarea REZUMATULUI
+ a. Mediile de ÎNCĂRCARE și TIMPUL de FUNCȚIONARE
+ b. SARCINI și Stări CPU
+ c. Utilizarea MEMORIEI
+ 3. CÂMPURI / Afișarea coloanelor
+ a. DESCRIEREA Câmpurilor
+ b. GESTIONAREA Câmpurilor
+ 4. Comenzi INTERACTIVE
+ a. Comenzi GLOBALE
+ b. Comenzi din ZONA de REZUMAT
+ c. Comenzi din ZONA de SARCINI
+ 1. Aspect
+ 2. Conținut
+ 3. Dimensiune
+ 4. Sortare
+ d. Paleta de CULORI
+ 5. Dispoziții privind AFIȘAREA ALTERNATIVĂ
+ a. Prezentare generală pentru ferestre
+ b. Comenzi pentru ferestre
+ c. Derularea unei ferestre
+ d. Căutarea într\-o fereastră
+ e. Filtrarea într\-o fereastră
+ 6. FIȘIERE
+ a. Fișier de configurare PERSONAL
+ b. Adăugarea de intrări de INSPECTARE
+ c. Fișier de configurare a SISTEMULUI
+ d. Fișier de restricții ale SISTEMULUI
+ 7. VARIABILE DE MEDIU
+ 8. Exemplu de TRUCURI STUPIDE
+ a. Magia nucleului
+ b. Ferestre care apar
+ c. Fereastra Pasărea Mare
+ d. Vechiul comutator
+ 9. ERORI, 10. CONSULTAȚI ȘI
+.fi
+
+.\" ......................................................................
+.SS "Funcționarea programului"
+.\" ----------------------------------------------------------------------
+Când lucrați cu \*(We, cele mai importante taste sunt tasta de ajutor (h sau
+?) È™i tasta de ieÈ™ire („qâ€). Alternativ, puteÈ›i utiliza pur È™i simplu tasta
+tradițională de întrerupere (^C) când ați terminat.
+
+Când porniți pentru prima dată, vi se vor prezenta aceste elemente
+tradiționale în ecranul principal al \*(We: 1) Zona de rezumat; 2) Antet
+Câmpuri/Coloane; 3) Zona de sarcini. Fiecare dintre acestea va fi explorată
+în secțiunile care urmează. Există, de asemenea, o linie de intrare/mesaj
+între zona de rezumat și antetul coloanelor care nu are nevoie de explicații
+suplimentare.
+
+Ecranul principal al \*(We este, \fIîn general\fP, destul de adaptabil la
+modificările dimensiunilor terminalului sub X\-Windows. Alte ecrane \*(We
+pot fi mai puțin adaptabile, mai ales cele cu text static. Totuși, aceasta
+depinde în cele din urmă de managerul de ferestre și de emulatorul de
+terminal, în particular. Pot exista ocazii în care viziunea lor asupra
+dimensiunii terminalului și a conținutului curent diferă de viziunea lui
+\*(We, care se bazează întotdeauna pe apelurile sistemului de operare.
+
+În urma oricărei operațiuni de redimensionare, dacă un ecran \*(We este
+corupt, apare incomplet sau dezordonat, simpla tastare a ceva inofensiv, cum
+ar fi un caracter de punctuație sau o tastă de mișcare a cursorului, îl va
+restabili de obicei. În cazuri extreme, următoarea secvență va avea aproape
+sigur, acest efect:
+.nf
+ \fItasta/cmd obiectiv \fP
+ ^Z \fBsuspendare\fP \*(We
+ fg \fBreluare\fP \*(We
+ <Stânga> forțează redesenarea ecranului (dacă este necesar)
+.fi
+
+Dar dacă afișajul este încă corupt, mai există un pas pe care îl puteți
+încerca. Introduceți această comandă după ce \*(We a fost suspendat, dar
+înainte de al relua.
+.nf
+ \fItasta/cmd obiectiv \fP
+ reset restabilește \fBconfigurările terminalului\fP
+.fi
+
+\*(NT lățimea afișajului lui \*(We va fi limitată la \*(WX poziții.
+Afișarea tuturor câmpurilor necesită aproximativ \*(WF de caractere.
+Lățimea rămasă a ecranului este de obicei alocată oricăror coloane cu lățime
+variabilă vizibile în prezent. Coloanele cu lățime variabilă, cum ar fi
+COMANDĂ, sunt notate în subiectul 3a. DESCRIEREA Câmpurilor. Lățimea reală
+de ieÈ™ire poate fi, de asemenea, influenÈ›ată de opÈ›iunea „\-wâ€, care este
+discutată în subiectul 1. Opțiuni pentru LINIA DE COMANDĂ.
+
+În cele din urmă, unele dintre ecranele sau funcțiile lui \*(We necesită
+utilizarea tastelor de mișcare a cursorului, cum ar fi tastele săgeți
+standard plus tastele «Home», «Fin», «PgUp» și «PgDn». Dacă terminalul sau
+emulatorul dumneavoastră nu furnizează acele chei, următoarele combinații
+sunt acceptate ca alternative:
+.nf
+ \fI tasta taste echivalente \fP
+ Stânga alt +\fB h \fP
+ Jos alt +\fB j \fP
+ Sus alt +\fB k \fP
+ Dreapta alt +\fB l \fP
+ Home alt + ctrl +\fB h \fP
+ PgDn alt + ctrl +\fB j \fP
+ PgUp alt + ctrl +\fB k \fP
+ End alt + ctrl +\fB l \fP
+.fi
+
+Tastele săgeată \fBSus\fP și \fBJos\fP au o semnificație specială atunci când
+solicitarea liniei de intrare este terminată cu tasta <Enter>.
+Aceste taste, sau aliasurile lor, pot fi folosite pentru a prelua liniile de
+intrare anterioare care pot fi apoi editate și reintroduse. Și există patru
+taste suplimentare disponibile orientate pe linia de intrare.
+.nf
+ \fI tasta semnificația specială \fP
+ Sus reapelează șirurile \fBmai vechi\fP pentru re\-editare
+ Jos reapelează șirurile \fBmai noi\fP sau \fBșterge\fP întreaga linie
+ Insert comută între modurile de \fBinserare\fP și \fBsuprascriere\fP
+ Delete \fBelimină\fP caracterul de la cursor, deplasându\-le pe celelalte spre stânga
+ Home saltă la \fBînceputul\fP liniei de intrare
+ End saltă la \fBsfârșitul\fP liniei de intrare
+.fi
+
+.\" ......................................................................
+.SS "Tipuri de memorie Linux"
+.\" ----------------------------------------------------------------------
+Pentru scopurile noastre, există trei tipuri de memorie, din care unul este
+opțional. Primul este memoria fizică, o resursă limitată în care codul și
+datele trebuie să se găsească atunci când sunt executate sau referențiate.
+Următorul este fișierul de interschimb(swap) opțional, unde memoria
+modificată (murdară) poate fi salvată și ulterior preluată dacă se solicită
+prea multe memorie fizică. În cele din urmă, avem memoria virtuală, o
+resursă aproape nelimitată care servește următoarele obiective:
+
+.nf
+ 1. abstractizare, liberă de adresele sau limitele memoriei fizice
+ 2. izolare, fiecare proces într\-un spațiu de adrese separat
+ 3. partajare, o singură memorizare(mapping) poate satisface nevoi multiple
+ 4. flexibilitate, atribuirea unei adrese virtuale unui fișier
+.fi
+
+Indiferent de care dintre aceste forme o poate lua memoria, toate sunt
+gestionate ca pagini (de obicei 4096 de octeți), dar sunt exprimate implicit
+în \*(We ca Kio (kibiocteți). Memoria discutată la punctul „2c. Utilizarea
+MEMORIEI†se ocupă de memoria fizică și fișierul de interschimb(swap) pentru
+sistemul în ansamblul său. Memoria examinată la punctul „3. CÂMPURI /
+Afișarea coloanelor†cuprinde toate cele trei tipuri de memorie, dar pentru
+procese individuale.
+
+Pentru fiecare astfel de proces, fiecare pagină de memorie este
+restricționată la un singur cadran din tabelul de mai jos. Atât memoria
+fizică, cât și memoria virtuală pot include oricare dintre cele patru, în
+timp ce fișierul de interschimb (swap) include doar de la #1 la #3. Memoria
+din cadranul #4, când este modificată, acționează ca propriul fișier de
+interschimb dedicat.
+
+.nf
+ \fBPrivată\fP | \fBPartajată\fP
+ \fB1\fP | \fB2\fP
+ \fBAnonimă\fP . stack |
+ . malloc() |
+ . brk()/sbrk() | . POSIX shm*
+ . mmap(PRIVATE, ANON) | . mmap(SHARED, ANON)
+ \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
+ . mmap(PRIVATE, fd) | . mmap(SHARED, fd)
+ \fBPe baza fișierului\fP . pgms/shared libs |
+ \fB3\fP | \fB4\fP
+.fi
+
+Următoarele pot ajuta la interpretarea valorilor de memorie la nivel de
+proces afișate sub formă de coloane scalabile și discutate în subiectul
+„3a. DESCRIEREA Câmpurilorâ€.
+
+.nf
+ %MEM \- pur și simplu RES împărțită la memoria fizică totală
+ CODE \- porțiunea „pgms†din cadranul \fB3\fP
+ DATA \- întreaga porțiune din cadranul \fB1\fP a VIRT plus toate
+ paginile salvate în fișiere mmap explicite din cadranul \fB3\fP
+ RES \- orice ocupă memorie fizică care, începând cu Linux\-4.5,
+ este suma următoarelor trei câmpuri:
+ RSan \- paginile cadranului \fB1\fP, care includ orice pagini
+ din cadranul \fB3\fP anterior, dacă sunt modificate
+ RSfd \- paginile cadranului \fB3\fP și cadranului \fB4\fP
+ RSsh \- paginile cadranului \fB2\fP
+ RSlk \- subset de RES care nu poate fi transferat (orice cadran)
+ SHR \- subset de RES (exclude \fB1\fP, include toate \fB2\fP și \fB4\fP, unele \fB3\fP)
+ SWAP \- potențial orice cadran, cu excepția cadranului \fB4\fP
+ USED \- pur și simplu suma dintre RES și SWAP
+ VIRT \- tot ce este în uz și/sau rezervat (toate cadranele)
+.fi
+
+\*(NT Chiar dacă imaginile de program și bibliotecile partajate sunt
+considerate \fIprivate\fP pentru un proces, ele vor fi considerate ca fiind
+\fIpartajate\fP (SHR) de către nucleu.
+
+.\" ----------------------------------------------------------------------
+.SH "1. Opțiuni pentru LINIA DE COMANDĂ"
+.\" ----------------------------------------------------------------------
+\fIArgumentele\fP obligatorii pentru opțiunile lungi sunt deasemenea
+obligatorii pentru opțiunile scurte.
+
+Deși nu este necesar, semnul egal poate fi folosit cu fiecare formă de
+opțiune, iar spațiile în alb înainte și/sau după „=†sunt permise.
+
+.TP 3
+\-\fBb\fP, \fB\-\-batch\fP
+Pornește \*(We în modul Loturi de comenzi (Batch), care poate fi util pentru
+a trimite ieșirea din \*(We către alte programe sau către un fișier. În
+acest mod, \*(We nu acceptă intrări și rulează până la limita de iterații pe
+care ați stabilit\-o cu opțiunea de linie de comandă „\-n†sau până când este
+omorât.
+
+.TP 3
+\-\fBc\fP, \fB\-\-cmdline\-toggle\fP
+Lansează \*(We cu ultima stare „c†memorată inversată. Astfel, dacă \*(We
+afișa linii de comandă, acum acel câmp va afișa numele programelor și
+invers. Consultați comanda interactivă „c†pentru informații suplimentare.
+
+.TP 3
+\-\fBd\fP, \fB\-\-delay\fP = \fISECUNDE\fP [\fI.ZECIMI\fP]
+Specifică întârzierea dintre actualizările ecranului și înlocuiește valoarea
+corespunzătoare din fișierul de configurare personal sau valoarea implicită
+de pornire. Ulterior, această valoare poate fi modificată cu ajutorul
+comenzilor interactive „d†sau „sâ€.
+
+Fracțiunile de secunde sunt luate în calcul, dar nu este permis un număr
+negativ. Cu toate acestea, în toate cazurile, astfel de modificări sunt
+interzise dacă \*(We rulează în modul Securizat, cu excepția root (cu
+excepția cazului în care a fost utilizată opțiunea de linie de comandă
+„sâ€). Pentru informaÈ›ii suplimentare despre modul Securizat, consultaÈ›i
+subiectul 6d. Fișier de restricții ale SISTEMULUI.
+
+.TP 3
+\-\fBE\fP, \fB\-\-scale\-summary\-mem\fP = \fIk\fP | \fIm\fP | \fIg\fP | \fIt\fP | \fIp\fP | \fIe\fP
+Solicită lui \*(We să forțeze ca memoria zonei de rezumat să fie afișată
+după cum urmează:
+.nf
+ k = kibiocteți
+ m = mebiocteți
+ g = gibiocteți
+ t = tebiocteți
+ p = pebiocteți
+ e = exbiocteți
+
+.fi
+
+Ulterior, acest lucru poate fi schimbat cu ajutorul comenzii „Eâ€.
+
+.TP 3
+\-\fBe\fP, \fB\-\-scale\-task\-mem\fP = \fIk\fP | \fIm\fP | \fIg\fP | \fIt\fP | \fIp\fP
+Solicită lui \*(We să forțeze ca memoria zonei de sarcini să fie afișată
+după cum urmează:
+.nf
+ k = kibiocteți
+ m = mebiocteți
+ g = gibiocteți
+ t = tebiocteți
+ p = pebiocteți
+.fi
+
+Ulterior, acest lucru poate fi schimbat cu ajutorul comenzii „eâ€.
+
+.TP 3
+\-\fBH\fP, \fB\-\-threads\-show\fP
+Solicită lui top să afișeze firele de execuție individuale. Fără această
+opțiune de linie de comandă, este afișată o însumare a tuturor firelor de
+execuție din fiecare proces. Ulterior, acest lucru poate fi modificat cu
+ajutorul comenzii interactive „Hâ€.
+
+.TP 3
+\fBh\fP, \fB\-\-help\fP
+Afișează acest mesaj de ajutor, apoi iese.
+
+.TP 3
+\-\fBi\fP, \fB\-\-idle\-toggle\fP
+Lansează \*(We cu ultima stare „i†memorată inversată. Când această comutare
+este \fIDezactivată\fP (Off), sarcinile care nu au folosit niciun procesor de
+la ultima actualizare nu vor fi afișate. Pentru informații suplimentare cu
+privire la acest comutator, consultați subiectul 4c. Comenzi din ZONA de
+SARCINI, Dimensiune.
+
+.TP 3
+\-\fBn\fP, \fB\-\-iterations\fP = \fINUMÄ‚R\fP
+Specifică numărul maxim de iterații, sau de cadre, pe care \*(We trebuie să
+le producă înainte de a se încheia.
+
+.TP 3
+\-\fBO\fP, \fB\-\-list\-fields\fP
+Această opÈ›iune acÈ›ionează ca o formă de ajutor pentru opÈ›iunea „\-oâ€
+prezentată mai jos. Aceasta va face ca \*(We să afișeze fiecare dintre
+numele câmpurilor disponibile pe o linie separată, apoi va ieși. Aceste
+nume sunt obiectul traducerii NLS (National Language Support „Suport pentru
+limba naÈ›ionalăâ€).
+
+.TP 3
+\-\fBo\fP, \fB\-\-sort\-override\fP = \fINUME_CÂMP\fP
+Specifică numele câmpului pe care vor fi sortate sarcinile, independent de
+ceea ce se reflectă în fișierul de configurare. Puteți adăuga un „+†sau
+„\-†la numele câmpului pentru a schimba, de asemenea, direcția de sortare.
+Un „+†înainte va forța sortarea de la mare la mic, în timp ce un „\-†va
+asigura o ordonare de la mic la mare.
+
+Această opțiune există în primul rând pentru a sprijini operarea în modul
+automat/loturi de comenzii.
+
+.TP 3
+\-\fBp\fP, \fB\-\-pid\fP = \fILISTÄ‚_PID\fP (ca: \fI1\fP,\fI2\fP,\fI3\fP, ... sau \-p\fI1\fP \-p\fI2\fP \-p\fI3\fP ...)
+Monitorizează numai procesele cu ID\-urile de proces specificate. Cu toate
+acestea, atunci când este combinat cu modul Fire de execuÈ›ie („Hâ€), toate
+procesele din grupul de fire (a se vedea TGID) al fiecărui PID monitorizat
+vor fi de asemenea afișate.
+
+Această opțiune poate fi dată de până la 20 de ori sau puteți furniza o
+listă delimitată prin virgule cu până la 20 de pid\-uri. Este permisă
+combinarea ambelor abordări.
+
+O valoare pid de zero va fi tratată ca fiind id\-ul de proces al programului
+\*(We însuși, odată ce acesta rulează.
+
+Aceasta este doar o opțiune de linie de comandă și dacă doriți să reveniți
+la funcționarea normală, nu este necesar să părăsiți și să reporniți \*(We
+\-\- pur È™i simplu lansaÈ›i oricare dintre aceste comenzi interactive: „=â€, „uâ€
+sau „Uâ€.
+
+OpÈ›iunile de linie de comandă „pâ€, „u†și „U†se exclud reciproc.
+
+.TP 3
+\-\fBS\fP, \fB\-\-accum\-time\-toggle\fP
+Lansează \*(We cu ultima stare „S†memorată inversată. Atunci când modul de
+Timp cumulat este \*O (On), fiecare proces este listat cu timpul de
+procesare pe care el și copiii săi morți l\-au folosit. Consultați comanda
+interactivă „S†pentru informații suplimentare privind acest mod.
+
+.TP 3
+\-\fBs\fP, \fB\-\-secure\-mode\fP
+Lansează \*(Wes cu modul securizat forțat, chiar și pentru root. Acest mod
+este mult mai bine controlat prin intermediul unui fișier de configurare a
+sistemului (a se vedea subiectul 6. FIȘIERE).
+
+.TP 3
+\-\fBU\fP, \fB\-\-filter\-any\-user\fP = \fIUTILIZATOR\fP (ca: \fInumăr\fP sau \fInume\fP)
+Afișează numai procesele cu un id de utilizator sau un nume de utilizator
+care se potrivește cu cel dat. Această opțiune se potrivește cu orice
+utilizator (\fIreal\fP, \fIefectiv\fP, \fIsalvat\fP sau \fIsistemul de fișiere\fP).
+
+Adăugarea unui semn de exclamare („!â€) la ID\-ul sau numele utilizatorului îi
+indică lui \*(We să afișeze numai procesele cu utilizatori care nu se
+potrivesc cu cel furnizat.
+
+OpÈ›iunile de linie de comandă „pâ€, „U†și „u†se exclud reciproc.
+
+.TP 3
+\-\fBu\fP, \fB\-\-filter\-only\-user\fP = \fIUTILIZATOR\fP (ca: \fInumăr\fP sau \fInume\fP)
+Afișează numai procesele cu un id de utilizator sau un nume de utilizator
+care se potrivește cu cel dat. Această opțiune se potrivește numai cu ID\-ul
+de utilizator \fIefectiv\fP.
+
+Adăugarea unui semn de exclamare („!â€) la ID\-ul sau numele utilizatorului îi
+indică lui \*(We să afișeze numai procesele cu utilizatori care nu se
+potrivesc cu cel furnizat.
+
+OpÈ›iunile de linie de comandă „pâ€, „U†și „u†se exclud reciproc.
+
+.TP 3
+\fBV\fP, \fB\-\-version\fP
+Afișează informațiile despre versiune, apoi iese.
+
+.TP 3
+\-\fBw\fP, \fB\-\-width\fP [=\fICOLOANE\fP]
+În modul Loturi de comenzi (Batch), atunci când este utilizată fără un
+argument, \*(We va formata ieșirea folosind variabilele de mediu COLUMNS= și
+LINES=, dacă sunt definite. În caz contrar, lățimea va fi fixată la maximum
+de \*(WX coloane. Cu un argument, lățimea de ieșire poate fi micșorată sau
+mărită (până la \*(WX), dar numărul de rânduri este considerat nelimitat.
+
+În modul de afișare normal, atunci când este utilizată fără un argument,
+\*(We va \fIîncerca\fP să formateze ieșirea folosind variabilele de mediu
+COLUMNS= și LINES=, dacă sunt definite. Cu un argument, lățimea de ieșire
+poate fi doar micșorată, nu și mărită. Indiferent dacă se utilizează
+variabilele de mediu sau un argument cu opÈ›iunea „\-wâ€, atunci când \fInu se află\fP în modul Loturi de comenzi (Batch), dimensiunile reale ale
+terminalului nu pot fi niciodată depășite.
+
+Notă: Fără utilizarea acestei opțiuni de linie de comandă, lățimea de ieșire
+se bazează întotdeauna pe terminalul la care a fost invocat top, indiferent
+dacă este sau nu în modul Loturi de comenzi (Batch).
+
+.TP 3
+\-\fB1\fP, \fB\-\-single\-cpu\-toggle\fP
+Lansează \*(We cu ultima porțiune memorată a stărilor Cpu din zona de
+rezumat inversată. Fie toate informațiile despre \*(Pu vor fi afișate pe un
+singur rând, fie fiecare \*(Pu va fi afișat separat, în funcție de starea
+comenzii de comutare a nodului NUMA („2â€).
+
+Pentru informaÈ›ii suplimentare, consultaÈ›i comenzile interactive „1†și „2â€.
+
+.\" ----------------------------------------------------------------------
+.SH "2. Afișarea REZUMATULUI"
+.\" ----------------------------------------------------------------------
+Fiecare dintre următoarele trei zone este controlată individual prin
+intermediul uneia sau mai multor comenzi interactive. A se vedea subiectul
+4b. Comenzi din ZONA de REZUMAT pentru informații suplimentare referitoare
+la aceste dispoziții.
+
+.\" ......................................................................
+.SS "2a. Mediile de ÎNCĂRCARE și TIMPUL de FUNCȚIONARE"
+.\" ----------------------------------------------------------------------
+Această porțiune constă dintr\-o singură linie care conține:
+.nf
+ numele \fBprogramului\fP sau al \fBferestrei\fP, în funcție de modul de afișare
+ ora curentă și durata de timp de la ultima pornire (timpul de funcționare)
+ numărul total de utilizatori
+ încărcarea medie a sistemului în ultimele 1, 5 și 15 minute
+.fi
+
+.\" ......................................................................
+.SS "2b. SARCINI și Stări CPU"
+.\" ----------------------------------------------------------------------
+Această porțiune constă din minim două linii. Într\-un mediu SMP, liniile
+suplimentare pot reflecta procentele individuale ale stării CPU.
+
+Prima linie arată numărul total de \fBsarcini\fP sau de \fBfire de execuție\fP, în
+funcție de starea comutatorului de mod al Firelor de execuție. Acest total
+este clasificat în continuare astfel:
+.nf
+ rulând (running); adormit (sleeping); oprit (stopped); zombi
+.fi
+
+A doua linie arată procentajele de stare a CPU în funcție de intervalul de
+la ultima reîmprospătare.
+
+În mod implicit, sunt afișate procentele pentru aceste categorii
+individuale. În funcție de versiunea nucleului dumneavoastră, este posibil
+ca ultimul câmp, \fBst\fP, să nu fie afișat.
+.nf
+ \fBus\fP : timpul de execuție al proceselor de utilizator fără curtoazie (cu prioritate de execuție ridicată)
+ \fBsy\fP : timpul de rulare al proceselor nucleului
+ \fBni\fP : timpul de execuție al proceselor de utilizator cu curtoazie (cu prioritate de execuție scăzută)
+ \fBid\fP : timpul petrecut în gestionarea inactivității nucleului
+ \fBwa\fP : timpul de așteptare pentru finalizarea intrărilor/ieșirilor
+ \fBhi\fP : timpul petrecut la deservirea întreruperilor hardware
+ \fBsi\fP : timpul petrecut la deservirea întreruperilor software
+ \fBst\fP : timpul furat de la această mașină virtuală de către hipervizor
+.fi
+
+Valoarea „sy†de mai sus reflectă, de asemenea, timpul de rulare a unui
+\*(Pu virtual pentru sistemele de operare invitate, inclusiv pentru cele
+care au fost modificate.
+
+Dincolo de prima linie de sarcini/fire de execuție, există moduri
+alternative de afișare a procesorului, disponibile prin intermediul comenzii
+„t†cu 4 direcții de comutare. Aceste moduri afișează un rezumat
+simplificat format din aceste elemente:
+.nf
+ a b c d
+ %Cpu(s): \fB75.0\fP/25.0 \fB100\fP[ ... ]
+
+.fi
+
+Unde: a) este procentul „utilizator†(us + ni); b) este procentul „sistemâ€
+(sy + hi + si + guests); c) este procentul total; și d) este unul dintre
+cele două grafice vizuale ale acelor reprezentări. Astfel de grafice
+reflectă, de asemenea, porÈ›iuni separate „utilizator†și „sistemâ€.
+
+Dacă comanda de comutare „â€' este utilizată pentru a obÈ›ine mai mult de două
+procesoare (CPU) pe linie, rezultatele vor fi reduse și mai mult,
+eliminându\-se elementele a) și b). Cu toate acestea, aceste informații sunt
+încă reflectate în graficul propriu\-zis, presupunând că culoarea este activă
+sau, în caz contrar, că sunt afișate bare și blocuri.
+
+A se vedea subiectul 4b. Comenzi din ZONA de REZUMAT pentru informații
+suplimentare privind comenzile de comutare „t†și „4â€.
+
+.\" ......................................................................
+.SS "2c. Utilizarea MEMORIEI"
+.\" ----------------------------------------------------------------------
+Această porțiune este formată din două linii care pot exprima valori de la
+kibiocteți (Kio) la exbiocteți (Eio), în funcție de factorul de scalare
+aplicat prin intermediul comenzii interactive „Eâ€. Câmpurile sursă
+/proc/meminfo sunt afișate între paranteze.
+
+Prima linie reflectă memoria fizică, clasificată ca:
+.nf
+ total ( MemTotal )
+ free ( MemFree )
+ used ( MemTotal \- MemAvailable )
+ buff/cache ( Buffers + Cached + SReclaimable )
+.fi
+
+A doua linie reflectă în principal memoria virtuală, clasificată ca:
+.nf
+ total ( SwapTotal )
+ free ( SwapFree )
+ used ( SwapTotal \- SwapFree )
+ avail ( MemAvailable, care este Memoria fizică)
+.fi
+
+Cantitatea \fBdisponibilă (avail)\fP de pe a doua linie este o estimare a
+memoriei fizice disponibile pentru lansarea de noi aplicații, fără
+utilizarea spațiului de interschimb (swapping). Spre deosebire de câmpul
+„liberăâ€, aceasta încearcă să È›ină cont de zonele de prestocare (cache) ale
+paginilor uÈ™or de recuperat È™i blocurile de memorie „slabsâ€. Este
+disponibilă pe nucleele 3.14, emulată pe nucleele 2.6.27+, altfel la fel ca
+„liberăâ€.
+
+În modurile de afișare a memoriei alternative, sunt afișate două linii de
+rezumat abreviate, formate din aceste elemente:
+.nf
+ a b c
+ Gio Mem : \fB18.7\fP/15.738 [ ... ]
+ Gio Swap: \fB 0.0\fP/7.999 [ ... ]
+.fi
+
+Unde: a) este procentul utilizat; b) este totalul disponibil; și c) este
+unul dintre cele două grafice vizuale ale acestor reprezentări.
+
+În cazul memoriei fizice, procentul reprezintă \fBtotalul\fP minus cantitatea
+\fBdisponibilă\fP estimată menționată mai sus. Graficul „Mem†în sine este
+împărțit între porțiunea de memorie \fButilizată\fP care nu se află în memoria
+cache și orice memorie rămasă care nu este altfel luată în considerare de
+cantitatea de memorie \fBdisponibilă\fP. A se vedea subiectul 4b. Comenzi din
+ZONA de REZUMAT și comanda „m†pentru informații suplimentare despre acea
+comutare specială în 4 căi.
+
+Acest tabel poate ajuta la interpretarea valorilor scalate afișate:
+.nf
+ Kio = kibiocteți = 1024 octeți
+ Mio = mebiocteți = 1024 Kio = 1.048.576 octeți
+ Gio = gibiocteți = 1024 Mio = 1.073.741.824 octeți
+ Tio = tebiocteți = 1024 Gio = 1.099.511.627.776 octeți
+ Pio = pebiocteți = 1024 Tio = 1.125.899.906.842.624 octeți
+ Eio = exbiocteți = 1024 Pio = 1.152.921.504.606.846.976 octeți
+.fi
+
+.\" ----------------------------------------------------------------------
+.SH "3. CÂMPURI / Coloane"
+.\" ----------------------------------------------------------------------
+.\" ......................................................................
+.SS "3a. DESCRIEREA Câmpurilor"
+.\" ----------------------------------------------------------------------
+Mai jos sunt enumerate câmpurile de procesare (coloanele) disponibile în
+\*(We. Acestea sunt afișate în ordine alfabetică ascii strictă. Puteți
+personaliza poziția lor și dacă sunt sau nu afișabile cu ajutorul comenzii
+interactive „f†(Gestionarea câmpurilor).
+
+Orice câmp poate fi selectat drept câmp de sortare, iar dvs. puteți controla
+dacă acestea sunt sortate de la mare la mic sau de la mic la mare. Pentru
+informații suplimentare privind dispozițiile de sortare, consultați
+subiectul 4c. Comenzi din ZONA de SARCINI, Sortare.
+
+Câmpurile legate de memoria fizică sau de memoria virtuală se referă la
+„(Kio)â€, care reprezintă modul de afiÈ™are fără sufix. Cu toate acestea,
+aceste câmpuri pot fi scalate de la Kio la Pio. Această scalare este
+influențată prin intermediul comenzii interactive „e†sau stabilită la
+pornire printr\-o opțiune de compilare.
+
+.TP 4
+\fB%CPU \*(Em Utilizarea \*(PU\-ului\fP
+Procentul sarcinii din timpul de CPU scurs de la ultima actualizare a
+ecranului, exprimată ca procent din timpul total al CPU.
+
+Într\-un mediu SMP adevărat, dacă un proces are mai multe fire de execuție și
+\*(We \fInu\fP funcÈ›ionează în modul „Fire de execuÈ›ieâ€, pot fi raportate
+cantități mai mari de 100%. Puteți să activați modul „Fire de execuție†cu
+ajutorul comenzii interactive „Hâ€.
+
+De asemenea, pentru mediile cu mai multe procesoare, dacă modul Irix este
+dezactivat (\*F), \*(We va funcționa în modul Solaris, în care utilizarea
+cpu a unei sarcini va fi împărțită la numărul total de procesoare. Puteți
+comuta modurile Irix/Solaris cu ajutorul comenzii interactive „Iâ€.
+
+Notă: Atunci când se execută în modul de vizualizare arborescentă („Vâ€) cu
+copii colapsaÈ›i („vâ€), acest câmp va include È™i timpul CPU al acelor copii
+nevăzuți. A se vedea subiectul 4c. Comenzi din ZONA de SARCINI, Conținut
+pentru mai multe informaÈ›ii privind comutatoarele „V†și „vâ€.
+
+.TP 4
+\fB%CUC \*(Em Utilizarea \*(PU\-ului\fP
+Acest câmp este identic cu %CUU de mai jos, cu excepția faptului că
+procentul reflectă și procesele copil recoltate.
+
+.TP 4
+\fB%CUU \*(Em Utilizarea \*(PU\-ului\fP
+Utilizarea totală a CPU a unei sarcini împărțită la timpul de execuție
+scurs, exprimată ca procent.
+
+În cazul în care un proces afișează în prezent o utilizare ridicată a CPU,
+acest câmp poate ajuta la determinarea dacă acest comportament este normal.
+În schimb, dacă un proces are o utilizare scăzută a CPU în prezent, %CUU
+poate reflecta solicitări istorice mai mari de\-a lungul vieții sale.
+
+.TP 4
+\fB%MEM \*(Em Utilizarea memoriei (RES) \fP
+Procentul de memorie fizică disponibilă a unei sarcini care este în prezent
+rezidentă.
+
+\*(XX.
+
+.TP 4
+\fBAGID \*(Em Identificator de autogrup\fP
+Identificatorul auto\-grupului asociat unui proces. Această caracteristică
+funcționează împreună cu planificatorul CFS pentru a îmbunătăți performanța
+biroului interactiv.
+
+Când „/proc/sys/kernel/sched_autogroup_enabled†este activat, un nou grup
+automat este creat cu fiecare sesiune nouă (a se vedea SID). Toate procesele
+bifurcate ulterior din acea sesiune moștenesc apartenența la acest grup
+automat. Nucleul încearcă apoi să egalizeze distribuția ciclurilor CPU între
+astfel de grupuri. Astfel, un auto\-grup cu multe procese intensive de CPU
+(de exemplu «make \-j») nu va domina un auto\-grup cu doar unul sau două
+procese.
+
+Când se afișează \fB\-1\fP înseamnă că această informație nu este disponibilă.
+
+.TP 4
+\fBAGNI \*(Em Valoarea priorității auto\-grupului\fP
+Valoarea priorității (nice) a auto\-grupului care afectează planificarea
+tuturor proceselor din grupul respectiv. O valoare „nice†negativă înseamnă
+o prioritate mai mare, în timp ce o valoare „nice†pozitivă înseamnă o
+prioritate mai mică.
+
+.TP 4
+\fBCGNAME \*(Em Numele grupului de control\fP
+Numele grupului de control căruia îi aparține un proces, sau „\-†dacă nu se
+aplică procesului respectiv.
+
+Aceasta va fi de obicei ultima intrare din lista completă a grupurilor de
+control, așa cum se arată în următorul titlu (CGROUPS). La fel ca și acolo,
+acest câmp este de o lățime variabilă.
+
+.TP 4
+\fBCGROUPS \*(Em Grupuri de control\fP
+Numele grupului/grupurilor de control căruia îi aparÈ›ine un proces, sau „\-â€
+dacă nu se aplică procesului respectiv.
+
+Grupurile de control asigură alocarea resurselor (procesor, memorie, lățime
+de bandă de rețea etc.) între grupurile de procese definite de instalare.
+Acestea permit un control fin asupra alocării, refuzării, prioritizării,
+gestionării și monitorizării acestor resurse.
+
+Pe un sistem pot exista simultan mai multe ierarhii diferite de grupuri de
+control „cgroupsâ€, fiecare ierarhie fiind ataÈ™ată la unul sau mai multe
+subsisteme. Un subsistem reprezintă o singură resursă.
+
+Notă: Câmpul „CGROUPSâ€, spre deosebire de majoritatea coloanelor, nu are o
+lățime fixă. Atunci când este afișat, acestuia și oricăror alte coloane cu
+lățime variabilă li se alocă toată lățimea rămasă pe ecran (până la maximum
+\*(WX caractere). Chiar și așa, astfel de câmpuri cu lățime variabilă pot
+suferi trunchieri. A se vedea subiectul 5c. Derularea unei ferestre pentru
+informații suplimentare privind accesarea oricăror date trunchiate.
+
+.TP 4
+\fBCODE \*(Em Dimensiunea codului (Kio)\fP
+Cantitatea de memorie fizică dedicată în prezent codului executabil,
+cunoscută și sub numele de dimensiunea setului rezident de text „Text
+Resident Set size†sau „TRSâ€.
+
+\*(XX.
+
+.TP 4
+\fBCOMMAND \*(Em Numele comenzii\fP sau \fBLinia\fP de comandă
+Afișează linia de comandă utilizată pentru a porni o sarcină sau numele
+programului asociat. ComutaÈ›i între \fIlinia\fP de comandă È™i \fInume\fP cu „câ€,
+care este atât o opțiune de linie de comandă, cât și o comandă interactivă.
+
+Dacă ați ales să afișați liniile de comandă, procesele fără o linie de comandă (cum ar fi firele de execuție ale nucleului) vor fi afișate doar cu numele programului între paranteze, ca în acest exemplu:
+ [kthreadd]
+
+Acest câmp poate fi influențat, de asemenea, de modul de afișare a
+vizualizării arborescente. Consultați comanda interactivă „V†pentru
+informații suplimentare privind acest mod.
+
+Notă: Câmpul COMANDA, spre deosebire de majoritatea coloanelor, nu are o
+lățime fixă. Atunci când este afișat, acesta, precum și orice alte coloane
+cu lățime variabilă, vor fi alocate toate coloanele lățimea rămasă a
+ecranului (până la maximum \*(WX caractere). Chiar și așa, astfel de
+câmpuri cu lățime variabilă ar putea suferi trunchiere. Acest lucru se
+întâmplă în special adevărat pentru acest câmp atunci când sunt afișate
+linii de comandă (comanda interactivă „câ€.) A se vedea subiectul
+5c. Derularea unei ferestre pentru informații suplimentare informații
+suplimentare privind accesarea oricăror date trunchiate.
+
+.TP 4
+\fBDATA \*(Em Dimensiunea date + stivă (Kio)\fP
+Cantitatea de memorie privată \fIrezervată\fP de un proces. Este cunoscută și
+sub numele de setul de date rezident „Data Resident Set†sau „DRSâ€. Este
+posibil ca această memorie să nu fie încă repartizată în memoria fizică
+(RES), dar va fi întotdeauna inclusă în cantitatea de memorie virtuală
+(VIRT).
+
+\*(XX.
+
+.TP 4
+\fBELAPSED \*(Em Timpul de rulare scurs\fP
+Perioada de timp de la începutul unui proces. Astfel, sarcina cea mai recent
+începută va afișa cel mai mic interval de timp.
+
+Valoarea va fi exprimată ca „HH,MM†(ore, minute), dar este supusă unei
+scalări suplimentare dacă intervalul devine prea mare pentru a se potrivi cu
+lățimea coloanei. În acel moment, va fi scalată la „DD+HH†(zile+ore) și,
+dacă este cazul, și mai departe.
+
+.TP 4
+\fBENVIRON \*(Em Variabile de mediu\fP
+Afișează toate variabilele de mediu, dacă există, așa cum sunt văzute de
+procesele respective. Aceste variabile vor fi afișate în ordinea lor nativă
+brută, nu în ordinea în care sunteÈ›i obiÈ™nuit să le vedeÈ›i cu un „setâ€
+necalificat.
+
+Notă: Câmpul „ENVIRONâ€, spre deosebire de majoritatea coloanelor, nu are o
+lățime fixă. Atunci când este afișat, acestuia și oricăror alte coloane cu
+lățime variabilă li se va aloca toată lățimea rămasă pe ecran (până la
+maximum \*(WX caractere). Chiar și așa, astfel de câmpuri cu lățime
+variabilă ar putea suferi trunchiere. Acest lucru este valabil în special
+pentru acest câmp. A se vedea subiectul 5c. Derularea unei ferestre pentru
+informații suplimentare privind accesarea oricăror date trunchiate.
+
+.TP 4
+\fBEXE \*(Em Calea la executabil\fP
+În cazul în care este disponibilă, aceasta este calea completă către
+executabil, inclusiv numele programului.
+
+Notă: Câmpul EXE, spre deosebire de majoritatea coloanelor, nu are o lățime
+fixă. Atunci când este afișat, acestuia și oricăror alte coloane cu lățime
+variabilă li se va aloca toată lățimea rămasă pe ecran (până la maximum
+\*(WX caractere).
+
+.TP 4
+\fBFlags \*(Em Indicatori sarcină\fP
+Această coloană reprezintă indicatorii de planificare curenți ai sarcinii,
+care sunt exprimați în notație hexazecimală și fără zerouri. Acești
+indicatori sunt documentați oficial în <linux/sched.h>.
+
+.TP 4
+\fBGID \*(Em Identificatorul de grup\fP
+Identificatorul grupului \fIefectiv\fP.
+
+.TP 4
+\fBGROUP \*(Em Numele grupului\fP
+Numele grupului \fIefectiv\fP.
+
+.TP 4
+\fBLOGID \*(Em Identificatorul utilizatorului autentificat\fP
+Identificatorul utilizatorului folosit la \fIautentificare\fP. Când este afișat
+„\-1â€, înseamnă că această informaÈ›ie nu este disponibilă.
+
+.TP 4
+\fBLXC \*(Em Numele containerului Lxc\fP
+Numele containerului lxc în care rulează o sarcină. Dacă un proces nu
+rulează în interiorul unui container, va fi afișată o liniuță (`\-').
+
+.TP 4
+\fBNI \*(Em Valoarea curtoaziei „niceâ€\fP
+Valoarea curtoaziei sarcinii. O valoare de curtoazie negativă înseamnă o
+prioritate mai mare, în timp ce o valoare de curtoazie pozitivă înseamnă o
+prioritate mai mică. Zero în acest câmp înseamnă pur și simplu că
+prioritatea nu va fi ajustată la determinarea capacității de desfășurare a
+unei sarcini.
+
+Notă: Această valoare afectează numai prioritatea de planificare în raport
+cu alte procese din același auto\-grup. A se vedea câmpurile „AGID†și
+„AGNI†pentru informații suplimentare despre auto\-grupuri.
+
+.TP 4
+\fBNU \*(Em Ultimul nod NUMA cunoscut\fP
+Un număr reprezentând nodul NUMA asociat cu ultimul procesor utilizat
+(„Pâ€). Când este afiÈ™at „\-1†înseamnă că informaÈ›iile NUMA nu sunt
+disponibile.
+
+Consultați comenzile interactive „2†și „3†pentru prevederi suplimentare
+NUMA care afectează Zona de Rezumat.
+
+.TP 4
+\fBOOMa \*(Em Factorul de ajustare a depășirii limitelor memoriei disponibile\fP
+Valoarea, care variază de la \-1000 la +1000, se adaugă la estimarea actuală
+de depășire a memoriei (OOMs), care este apoi utilizat pentru a determina ce
+sarcină trebuie eliminată atunci când memoria este epuizată.
+
+.TP 4
+\fBOOMs \*(Em Estimarea de depășire a memoriei\fP
+Valoarea, cuprinsă între 0 și +1000, utilizată pentru a selecta sarcina
+(sarcinile) care urmează să fie omorâte atunci când memoria este epuizată.
+Zero se traduce prin „nu omorî niciodatăâ€, în timp ce 1000 înseamnă „omoară
+întotdeaunaâ€.
+
+.TP 4
+\fBP \*(Em Ultimul \*(PU utilizat (SMP)\fP
+Un număr care reprezintă ultimul procesor utilizat. Într\-un mediu SMP
+adevărat, acest număr se va schimba probabil frecvent, deoarece nucleul
+utilizează în mod intenționat o afinitate slabă. De asemenea, simplul fapt
+de a rula \*(We poate rupe această afinitate slabă și poate face ca mai
+multe procese să schimbe procesoarele mai des (din cauza necesității
+suplimentare de timp \*(Pu)..
+
+.TP 4
+\fBPGRP \*(Em Identificatorul grupului de procese\fP
+Fiecare proces este membru al unui grup de procese unic, care este utilizat
+pentru distribuirea semnalelor și de către terminale pentru a arbitra
+cererile de intrare și ieșire. Atunci când un proces este creat (bifurcat),
+acesta devine membru al grupului de procese al părintelui său. Prin
+convenție, această valoare este egală cu identificatorul procesului (a se
+vedea PID) al primului membru al unui grup de procese, numit liderul
+grupului de procese.
+
+.TP 4
+\fBPID \*(Em Identificatorul procesului\fP
+Identificatorul unic de proces al sarcinii, care se reînnoiește periodic,
+dar nu repornește niciodată de la zero. În termeni de nucleu, este o
+entitate care poate fi gestionată definită de o „task_structâ€.
+
+Această valoare poate fi, de asemenea, utilizată ca: un ID de grup de
+procese (a se vedea PGRP); un ID de sesiune pentru liderul sesiunii (a se
+vedea SID); un ID de grup de fire de execuție pentru liderul grupului de
+fire de execuție (a se vedea TGID); și un ID de grup de procese TTY pentru
+liderul grupului de procese (a se vedea TPGID).
+
+.TP 4
+\fBPPID \*(Em Identificatorul procesului părinte\fP
+Identificatorul de proces (pid) al părintelui unei sarcini.
+
+.TP 4
+\fBPR \*(Em Prioritatea\fP
+Prioritatea de planificare a sarcinii. Dacă vedeți „rt†în acest câmp,
+înseamnă că sarcina se execută cu prioritate de planificare în timp real.
+
+În Linux, prioritatea în timp real este oarecum înșelătoare, deoarece, în
+mod tradițional, sistemul de operare în sine nu era predictibil. Și, deși
+nucleul 2.6 poate fi făcut în mare parte predictibil, nu este întotdeauna
+așa.
+
+.TP 4
+\fBPSS \*(Em Proporția de memorie rezidentă, smaps (Kio)\fP
+Proporția din porțiunea de „RSS†a acestei sarcini în care fiecare pagină
+este împărțită la numărul de procese care o partajează. Este, de asemenea,
+suma câmpurilor „PSanâ€, „PSfd†și „PSshâ€.
+
+De exemplu, dacă un proces are 1000 de pagini rezidente singur și 1000 de
+pagini rezidente partajate cu un alt proces, „PSSâ€\-ul acestuia va fi de 1500
+(multiplicat cu dimensiunea paginii (1000 x 1,5)).
+
+\*(ZX.
+
+.PP
+\fBPSan \*(Em Proporția de memorie anonimă, smaps (Kio)\fP
+.br
+\fBPSfd \*(Em Proporția de memorie pe fișier, smaps (KiB)\fP
+.br
+\fBPSsh \*(Em Proporția de memorie shmem, smaps (KiB) \fP
+.RS 4
+La fel ca și în cazul lui „PSS†de mai sus (memorie rezidentă proporțională
+totală), aceste câmpuri reprezintă proporția părții din fiecare tip de
+memorie care revine acestei sarcini, împărțită la numărul de procese care o
+partajează.
+
+\*(ZX.
+.RE
+
+.TP 4
+\fBRES \*(Em Dimensiunea memoriei rezidente (Kio)\fP
+Un subset al spațiului de adrese virtuale (VIRT) reprezentând memoria fizică
+(fără memoria spaÈ›iului de interschimb „swapâ€) pe care o sarcină o foloseÈ™te
+în prezent. Este, de asemenea, suma câmpurilor „RSanâ€, „RSfd†și „RSshâ€.
+
+Aceasta poate include pagini anonime private, pagini private alocate
+fișierelor (inclusiv imagini de program și biblioteci partajate) și pagini
+anonime partajate. Toată această memorie este susÈ›inută de fiÈ™ierul „swapâ€
+reprezentat separat la secțiunea \fISWAP\fP.
+
+În cele din urmă, acest câmp poate include, de asemenea, pagini partajate
+susținute de fișiere care, atunci când sunt modificate, acționează ca un
+fișier „swap†dedicat și, prin urmare, nu vor afecta niciodată \fISWAP\fP.
+
+\*(XX.
+
+.TP 4
+\fBRSS \*(Em Memoria rezidentă, smaps (Kio)\fP
+O altă vizualizare, mai precisă, a memoriei fizice (fără memoria spațiului
+de interschimb „swapâ€) a procesului. Este obÈ›inută din fiÈ™ierul
+„smaps_rollup†și este, în general, puțin mai mare decât cea prezentată
+pentru \fIRES\fP.
+
+\*(ZX.
+
+.TP 4
+\fBRSan \*(Em Dimensiunea memoriei rezidente anonime (Kio)\fP
+Un subset de memorie rezidentă (RES) care reprezintă pagini private care nu
+sunt alocate unui fișier.
+
+.TP 4
+\fBRSfd \*(Em Dimensiunea memoriei rezidente cu suport de fișiere (Kio)\fP
+Un subset de memorie rezidentă (RES) reprezentând paginile implicit
+partajate care suportă imagini de program și biblioteci partajate. Include,
+de asemenea, alocări explicite ale fișierelor, atât private, cât și
+partajate.
+
+.TP 4
+\fBRSlk \*(Em Dimensiunea memoriei rezidente blocate (Kio)\fP
+Un subset de memorie rezidentă (RES) care nu poate fi interschimbată.
+
+.TP 4
+\fBRSsh \*(Em Dimensiunea memoriei partajate rezidente (Kio)\fP
+Un subset de memorie rezidentă (RES) reprezentând paginile „shm*/mmapâ€
+anonime partajate în mod explicit.
+
+.TP 4
+\fBRUID \*(Em Identificatorul utilizatorului real\fP
+Identificatorul utilizatorului \fIreal\fP.
+
+.TP 4
+\fBRUSER \*(Em Numele utilizatorului real\fP
+Numele utilizatorului \fIreal\fP.
+
+.TP 4
+\fBS \*(Em Starea procesului\fP
+Starea sarcinii, care poate fi una dintre următoarele:
+ \fBD\fP = în somn neîntrerupt
+ \fBI\fP = inactivă
+ \fBR\fP = rulează
+ \fBS\fP = dormind
+ \fBT\fP = oprită de semnalul de control al lucrării
+ \fBt\fP = oprită de depanator în timpul urmăririi
+ \fBZ\fP = zombi
+
+Sarcinile afișate ca rulând ar trebui să fie considerate mai degrabă ca
+fiind pregătite să ruleze \*(Em task_struct lor este reprezentat pur și
+simplu în coada de execuție Linux. Chiar și în lipsa unei mașini SMP
+adevărate, este posibil să vedeți numeroase sarcini în această stare, în
+funcție de intervalul de întârziere și de valoarea „nice†a lui \*(We.
+
+.TP 4
+\fBSHR \*(Em Dimensiunea memoriei partajate (Kio)\fP
+Un subset de memorie rezidentă (RES) care poate fi utilizat de alte
+procese. Acesta va include pagini anonime partajate și pagini partajate
+susținute de fișiere. De asemenea, include pagini private asociate la
+fișiere reprezentând imagini de program și biblioteci partajate.
+
+\*(XX.
+
+.TP 4
+\fBSID \*(Em Identificatorul sesiunii\fP
+O sesiune este o colecție de grupuri de procese (a se vedea PGRP), stabilite
+de obicei de shell\-ul de conectare. Un proces nou bifurcat se alătură
+sesiunii creatorului său. Prin convenție, această valoare este egală cu
+ID\-ul procesului (a se vedea PID) al primului membru al sesiunii, numit
+lider de sesiune, care este de obicei shell\-ul de conectare.
+
+.TP 4
+\fBSTARTED \*(Em Intervalul de timp de pornire\fP
+Durata de timp scursă de la pornirea sistemului când a fost inițiat un
+proces. Astfel, cea mai recentă sarcină pornită va afișa cel mai mare
+interval de timp.
+
+Valoarea va fi exprimată ca „MM:SS†(minute:secunde). Dar dacă intervalul
+este prea mare pentru a se potrivi cu lățimea coloanei, acesta va fi scalat
+ca „HH,MM†(ore, minute) și, eventual, mai departe.
+
+.TP 4
+\fBSUID \*(Em Identificatorul utilizatorului salvat\fP
+Identificatorul utilizatorului \fIsalvat\fP.
+
+.TP 4
+\fBSUPGIDS \*(Em Identificatori de grup suplimentari\fP
+Identificatorii oricăror grupuri suplimentare stabilite la conectare sau
+moștenite de la părintele unei sarcini. Acestea sunt afișate într\-o listă
+delimitată prin virgule.
+
+Notă: Câmpul SUPGIDS, spre deosebire de majoritatea coloanelor, nu are o
+lățime fixă. Atunci când este afișat, acestuia și oricăror alte coloane cu
+lățime variabilă li se va aloca toată lățimea rămasă pe ecran (până la
+maximum \*(WX caractere).
+
+.TP 4
+\fBSUPGRPS \*(Em Nume de grupuri suplimentare\fP
+Numele oricăror grupuri suplimentare stabilite la conectare sau moștenite de
+la părintele unei sarcini. Acestea sunt afișate într\-o listă delimitată
+prin virgule.
+
+Notă: Câmpul SUPGRPS, spre deosebire de majoritatea coloanelor, nu are o
+lățime fixă. Atunci când este afișat, acestuia și oricăror alte coloane cu
+lățime variabilă li se va aloca toată lățimea rămasă pe ecran (până la
+maximum \*(WX caractere).
+
+.TP 4
+\fBSUID \*(Em Numele utilizatorului salvat\fP
+Numele utilizatorului \fIsalvat\fP.
+
+.TP 4
+\fBSWAP \*(Em Dimensiunea spațiului de interschimb (Kio)\fP
+Porțiunea rezidentă anterior a spațiului de adrese al unei sarcini care se
+scrie în fișierul „swap†atunci când memoria fizică este suprasolicitată.
+
+\*(XX.
+
+.TP 4
+\fBTGID \*(Em Identificatorul grupului de fire de execuție\fP
+Identificatorul grupului de fire de execuție din care face parte o sarcină.
+Este PID\-ul liderului grupului de fire. În termeni de nucleu, reprezintă
+acele sarcini care partajează o structură mm_struct.
+
+.TP 4
+\fBTIME \*(Em Timpul \*(PU\fP
+Timpul total \*(PU pe care sarcina a folosit\-o de când a început. Când
+modul cumulativ este \*O (On), fiecare proces este listat cu timpul \*(Pu pe
+care l\-au folosit el È™i copiii săi morÈ›i. ComutaÈ›i modul Cumulativ cu „Sâ€,
+care este atât o opțiune de linie de comandă, cât și o comandă interactivă.
+Consultați comanda interactivă „S†pentru informații suplimentare despre
+acest mod.
+
+.TP 4
+\fBTIME+ \*(Em Timpul \*(PU, în sutimi de secundă\fP
+La fel ca TIMPUL, dar reflectând mai multă finețe prin sutimi de secundă.
+
+.TP 4
+\fBTPGID \*(Em Identificatorul grupului de procese care controlează terminalul (tty)\fP
+Identificatorul grupului de procese al procesului din prim\-plan pentru
+terminalul (tty) conectat sau „\-1†dacă un proces nu este conectat la un
+terminal. Prin convenție, această valoare este egală cu identificatorul de
+proces (a se vedea PID) al liderului grupului de procese (a se vedea PGRP).
+
+.TP 4
+\fBTTY \*(Em Terminalul de control\fP
+Numele terminalului de control. Acesta este, de obicei, dispozitivul (port
+serial, pty etc.) de la care a fost pornit procesul și pe care îl folosește
+pentru intrare sau ieșire. Cu toate acestea, nu este necesar ca o sarcină
+să fie asociată cu un terminal, caz în care veÈ›i vedea afiÈ™at „?â€.
+
+.TP 4
+\fBUID \*(Em Identificatorul utilizatorului\fP
+Identificatorul de utilizator \fIefectiv\fP al proprietarului sarcinii.
+
+.TP 4
+\fBUSED \*(Em Memoria utilizată (Kio)\fP
+Acest câmp reprezintă memoria fizică fără memoria din spațiul de interschimb
+pe care o sarcină o folosește (RES) plus porțiunea spațiului de interschimb
+din spațiul său de adrese (SWAP).
+
+\*(XX.
+
+.TP 4
+\fBUSER \*(Em Numele utilizatorului\fP
+Numele de utilizator \fIefectiv\fP al proprietarului sarcinii.
+
+.TP 4
+\fBUSS \*(Em Dimensiune unică a setului\fP
+PorÈ›iunea de memorie fizică fără memoria din spaÈ›iul de interschimb („RSSâ€)
+care nu este partajată cu nici un alt proces. Este derivată din fișierul
+„smaps_rollupâ€.
+
+\*(ZX.
+
+.TP 4
+\fBVIRT \*(Em Dimensiunea memoriei virtuale (Kio)\fP
+Cantitatea totală de memorie virtuală utilizată de sarcină. Include tot
+codul, datele și bibliotecile partajate plus paginile care au fost schimbate
+și paginile care au fost alocate, dar nu utilizate.
+
+\*(XX.
+
+.TP 4
+\fBWCHAN \*(Em Dormirea în funcție\fP
+Acest câmp va afișa numele funcției din nucleu în care doarme în prezent
+sarcina. Sarcinile care rulează vor afiÈ™a o liniuță („\-â€) în câmpul din
+această coloană.
+
+.TP 4
+\fBioR \*(Em Numărul de octeți de In/Ieș citiți\fP
+Numărul de octeți pe care un proces i\-a determinat să fie preluați din
+stratul de stocare.
+
+Sunt necesare privilegii de root pentru a afișa datele de„in/ieș†pentru
+alți utilizatori.
+
+.TP 4
+\fBioRop \*(Em Numărul de operații de citire de la In/Ieș\fP
+Numărul de operaÈ›ii de citire a In/IeÈ™ (apeluri de sistem „syscallsâ€) pentru
+un proces. Este posibil ca astfel de apeluri să nu aibă ca rezultat o
+In/Ieș efectivă a discului fizic.
+
+.TP 4
+\fBioW \*(Em Numărul de octeți de In/Ieș scriși\fP
+Numărul de octeți pe care un proces i\-a determinat să fie trimiși la stratul
+de stocare.
+
+.TP 4
+\fBioWop \*(Em Numărul de operații de scriere la In/Ieș\fP
+Numărul de operaÈ›ii de scriere la In/IeÈ™ (apeluri de sistem „syscallsâ€)
+pentru un proces. Este posibil ca astfel de apeluri să nu aibă ca rezultat
+o In/Ieș efectivă a discului fizic.
+
+.TP 4
+\fBnDRT \*(Em Numărul de pagini corupte\fP
+Numărul de pagini care au fost modificate de când au fost scrise ultima dată
+în memoria auxiliară. Paginile corupte trebuie să fie scrise în memoria
+auxiliară. înainte ca locația de memorie fizică corespunzătoare să poată fi
+utilizată pentru o altă pagină virtuală.
+
+Acest câmp a fost desființat odată cu linux 2.6 și este întotdeauna zero.
+
+.TP 4
+\fBnMaj \*(Em Numărul de erori de pagină majore\fP
+Numărul de erori de pagină \fBmajore\fP care au avut loc pentru o sarcină. O
+eroare de pagină apare atunci când un proces încearcă să citească sau să
+scrie pe o pagină virtuală care nu este prezentă în acel moment în spațiul
+său de adrese. O eroare majoră de pagină este atunci când este implicat un
+acces la o stocare auxiliară pentru a face pagina respectivă disponibilă.
+
+.TP 4
+\fBnMaj \*(Em Numărul de erori de pagină minore\fP
+Numărul de erori de pagină \fBminore\fP care au avut loc pentru o sarcină. O
+eroare de pagină apare atunci când un proces încearcă să citească sau să
+scrie pe o pagină virtuală care nu este prezentă în acel moment în spațiul
+său de adrese. O eroare de pagină minoră nu implică accesul la stocarea
+auxiliară pentru a face pagina respectivă disponibilă.
+
+.TP 4
+\fBnTH \*(Em Numărul de fire de execuție\fP
+Numărul de fire de execuție asociate unui proces.
+
+.TP 4
+\fBnsCGROUP \*(Em SpaÈ›iul de nume al grupului de control „CGROUPâ€\fP
+Nodul\-i al spațiului de nume utilizat pentru a ascunde identitatea grupului
+de control al cărui membru este procesul.
+
+.TP 4
+\fBnsIPC \*(Em Spațiul de nume IPC\fP
+Nodul\-i al spațiului de nume utilizat pentru a izola resursele de comunicare
+interproces (IPC), cum ar fi obiectele IPC System V și cozile de mesaje
+POSIX.
+
+.TP 4
+\fBnsMNT \*(Em Spațiul de nume MNT\fP
+Nodul\-i al spațiului de nume utilizat pentru a izola punctele de montare a
+sistemului de fișiere, oferind astfel diferite vizualizări ale ierarhiei
+sistemului de fișiere.
+
+.TP 4
+\fBnsNET \*(Em Spațiul de nume NET\fP
+Nodul\-i al spațiului de nume utilizat pentru a izola resurse precum
+dispozitive de rețea, adrese IP, rutare IP, numere de port, etc.
+
+.TP 4
+\fBnsPID \*(Em Spațiul de nume PID\fP
+Nodul\-i al spațiului de nume utilizat pentru a izola numerele de
+identificare a proceselor, ceea ce înseamnă că acestea nu trebuie să rămână
+unice. Astfel, fiecare astfel de spațiu de nume ar putea avea propriul
+„init/systemd†(PID #1) pentru a gestiona diverse sarcini de inițializare și
+pentru a culege procesele copil orfane.
+
+.TP 4
+\fBnsTIME \*(Em Spațiul de nume TIME\fP
+Nodul\-i al spațiului de nume care permite proceselor să vadă diferite ore de
+sistem într\-un mod similar cu spațiul de nume UTS.
+
+.TP 4
+\fBnsUSER \*(Em Spațiul de nume USER\fP
+Nodul\-i al spațiului de nume utilizat pentru a izola numerele de
+identificare ale utilizatorilor și grupurilor. Astfel, un proces ar putea
+avea un ID de utilizator normal, fără privilegii, în afara unui spațiu de
+nume de utilizator, în timp ce în interiorul acelui spațiu de nume ar putea
+avea un ID de utilizator 0, cu privilegii complete de root.
+
+.TP 4
+\fBnsUTS \*(Em Spațiul de nume UTS\fP
+Nodul\-i al spațiului de nume utilizat pentru a izola numele de gazdă și
+numele de domeniu NIS. UTS înseamnă pur și simplu "UNIX Time\-sharing
+System" (Sistemul UNIX de partajare a timpului).
+
+.TP 4
+\fBvMj \*(Em Numărul delta de erori de pagină majore\fP
+Numărul de erori de pagină \fBmajore\fP care au avut loc de la ultima
+actualizare (a se vedea nMaj).
+
+.TP 4
+\fBvMn \*(Em Numărul delta de erori de pagină minore\fP
+Numărul de erori de pagină \fBminore\fP care au avut loc de la ultima
+actualizare (a se vedea nMin).
+
+.\" ......................................................................
+.SS "3b. GESTIONAREA câmpurilor"
+.\" ----------------------------------------------------------------------
+După apăsarea comenzii interactive „f†(Gestionarea câmpurilor) vi se va
+afiÈ™a un ecran care arată: 1) numele ferestrei „actualeâ€; 2) câmpul de
+sortare desemnat; 3) toate câmpurile în ordinea lor curentă împreună cu
+descrierile. Intrările marcate cu un asterisc sunt câmpurile afișate în
+prezent, dacă lățimea ecranului o permite.
+
+.RS +4
+.IP \(bu 3
+După cum indică instrucțiunile de pe ecran, navigați printre câmpuri cu
+tastele săgeÈ›i \fBSus\fP È™i \fBJos\fP. Tastele „PgUpâ€, „PgDnâ€, „Home†și „Endâ€
+pot fi, de asemenea, folosite pentru a ajunge rapid la primul sau ultimul
+câmp disponibil.
+
+.IP \(bu 3
+Tasta săgeată \fBDreapta\fP selectează un câmp pentru repoziționare, iar tasta
+săgeată \fBStânga\fP sau tasta <\fBEnter\fP> validează plasarea câmpului
+respectiv.
+
+.IP \(bu 3
+Tasta „\fBd\fP†sau bara \fBSpațiu\fP comută starea de afișare a unui câmp și,
+prin urmare, prezența sau absența asteriscului.
+
+.IP \(bu 3
+Tasta „\fBs\fP†desemnează un câmp ca fiind câmpul de sortare. A se vedea
+subiectul 4c. „Comenzi din zona de sarcini, Sortare†pentru informații
+suplimentare privind selectarea unui câmp de sortare.
+
+.IP \(bu 3
+Tastele „\fBa\fP†și „\fBw\fP†pot fi folosite pentru a parcurge toate ferestrele
+disponibile, iar tastele „\fBq\fP†sau <\fBEsc\fP> fac ieșirea din
+„Gestionarea câmpurilorâ€.
+.RS -4
+
+.PP
+Ecranul de „Gestionarea câmpurilor†poate fi utilizat, de asemenea, pentru a
+schimba fereastra/grupul de câmpuri „curentâ€, fie în modul ecran complet,
+fie în modul de afișare alternativă. Ceea ce a fost vizat atunci când a
+fost apăsată tasta „q†sau <Esc> va fi făcut curent atunci când
+reveniți la afișarea \*(We. A se vedea subiectul 5. Dispoziții privind
+AFIȘAREA ALTERNATIVĂ și comanda interactivă „g†pentru o perspectivă asupra
+ferestrelor È™i grupurilor de câmpuri „curenteâ€.
+
+.PP
+Notă: Orice fereastră care a fost derulată pe \fIorizontală\fP va fi
+restabilită în cazul în care se efectuează modificări ale câmpurilor prin
+intermediul ecranului „Gestionarea câmpurilorâ€. Cu toate acestea, orice
+poziție derulată pe \fIverticală\fP nu va fi afectată. Consultați subiectul
+5c. Derularea unei ferestre pentru informații suplimentare privind derularea
+pe verticală și orizontală.
+
+.\" ----------------------------------------------------------------------
+.SH "4. Comenzi INTERACTIVE"
+.\" ----------------------------------------------------------------------
+Mai jos este listat un scurt index al comenzilor din categorii. Unele
+comenzi apar de mai multe ori \*(Em semnificația sau domeniul lor pot varia
+în funcție de contextul în care sunt emise.
+
+.nf
+ 4a.\fI Comenzi GLOBALE \fP
+ <Enter/Spațiu> ?, =, 0,
+ A, B, d, E, e, g, H, h, I, k, q, r, s, W, X, Y, Z,
+ ^G, ^K, ^N, ^P, ^U, ^L, ^R
+ 4b.\fI Comenzi din ZONA de REZUMAT \fP
+ C, l, t, m, 1, 2, 3, 4, 5, !
+ 4c.\fI Comenzi din ZONA de SARCINI \fP
+ Aspect: b, J, j, x, y, z
+ Conținut: c, F, f, O, o, S, U, u, V, v, ^E
+ Dimensiune: #, i, n
+ Sortare: <, >, f, R
+ 4d.\fI Paleta de CULORI \fP
+ <Ret>, a, B, b, H, M, q, S, T, w, z, 0 \- 7
+ 5b.\fI Comenzi pentru ferestre \fP
+ \-, _, =, +, A, a, G, g, w
+ 5c.\fI Derularea unei ferestre \fP
+ C, Sus, Jos, Stânga, Dreapta, PgUp, PgDn, Home, End
+ 5d.\fI Căutarea într\-o fereastră \fP
+ L, &
+ 5e.\fI Filtrarea într\-o fereastră O, o, ^O, =, +\fP
+.fi
+
+.\" ......................................................................
+.SS "4a. Comenzi GLOBALE"
+.\" ----------------------------------------------------------------------
+Comenzile interactive globale sunt \fBîntotdeauna\fP disponibile atât în modul
+ecran complet, cât și în modul de afișare alternativă. Cu toate acestea,
+unele dintre aceste comenzi interactive \fBnu sunt disponibile\fP atunci când
+se execută în modul „Securizatâ€.
+
+Dacă doriți să știți dinainte dacă \*(We) a fost sau nu securizat, nu aveți
+decât să cereți Ajutor și să vedeți rezumatul sistemului pe a doua linie.
+
+.TP 7
+\ \ <\fBEnter\fP> sau <\fBBara de spațiu\fP>\ \ :\fIReîmprospătare afișare\fP
+Aceste comenzi reactivează \*(We și, după primirea oricărei intrări,
+întregul afișaj va fi redesenat. De asemenea, ele forțează o actualizare a
+oricăror modificări aduse de comenzile interactive \*(Pu\-ului sau memoriei
+fizice.
+
+Utilizați oricare dintre aceste taste dacă aveți un interval de întârziere
+mare și doriți să vedeți starea curentă,
+
+.TP 7
+\ \ \ \fB?\fP | \fBh\fP\ \ :\fIAjutor\fP
+Sunt disponibile două niveluri de ajutor. Primul vă va reaminti toate
+comenzile interactive de bază. Dacă \*(We este \fIsecurizat\fP, acest ecran va
+fi abreviat.
+
+Tastând „h†sau „?†pe acest ecran de ajutor, veți accesa ajutorul pentru
+acele comenzi interactive aplicabile în modul de afișare alternativă.
+
+.TP 7
+\ \ \ \fB=\fP\ \ :\fIElimină limitele de afișare\fP
+Elimină restricțiile privind ceea ce se afișează. Această comandă va anula
+orice comenzi „i†(sarcini inactive), „n†(sarcini maxime), „v†(ascunde
+copii) și „F†(focalizare). care ar putea fi active. De asemenea, permite
+ieșirea de la monitorizarea PID, filtrarea utilizatorului, alte filtre,
+procesarea Căutării și modul de Combinare a CPU\-urilor.
+
+În plus, dacă fereastra a fost derulată, aceasta va fi restabilită cu
+această comandă.
+
+.TP 7
+\ \ \ \fB0\fP\ \ :comutare \fIafișare/suprimare Zerouri\fP
+Această comandă determină dacă zerourile sunt afișate sau suprimate pentru
+multe dintre câmpurile din fereastra unei sarcini. Câmpuri precum UID, GID,
+NI, PR sau P nu sunt afectate de această comutare.
+
+.TP 7
+\ \ \ \fBA\fP\ \ :comutare \fIMod de afișare alternativă\fP
+Această comandă va comuta între modul de afișare pe ecran complet și modul
+de afișare alternativă. A se vedea subiectul 5. Dispoziții privind AFIȘAREA
+ALTERNATIVĂ și comanda interactivă „g†pentru a obține informații despre
+ferestrele È™i grupurile de câmpuri „actualeâ€.
+
+.TP 7
+\ \ \ \fBB\fP\ \ :comutare \fIActivează/dezactivează afișarea în Aldin\fP
+Această comandă va influența utilizarea capacității de afișare în «Aldin» a
+„termifo†(terminfo bold) și modifică atât zona de rezumat, cât și zona de
+sarcini pentru fereastra „curentăâ€. ÃŽn timp ce este destinată în primul
+rând utilizării cu terminale simple, neevoluate, ea poate fi aplicată
+oricând.
+
+Notă: Când această comutare este \fIActivată\fP (On) și \*(We funcționează în
+modul monocrom, \fBîntregul afișaj\fP va apărea ca text normal. Astfel, cu
+excepÈ›ia cazului în care comenzile „x'â€È™i/sau „y'â€folosesc inversarea pentru
+accentuare, nu va exista nicio confirmare vizuală că acestea sunt activate.
+
+.TP 7
+*\ \ \fBd\fP | \fBs\fP\ \ :\fIModifică intervalul de întârziere\fP
+Vi se va solicita să introduceți timpul de întârziere, în secunde, între
+actualizările afișării
+
+Fracțiunile de secundă sunt recunoscute, dar nu se acceptă un număr
+negativ. Introducerea valorii 0 determină actualizări (aproape) continue,
+cu un rezultat nesatisfăcător. deoarece sistemul și controlorul terminalului
+(tty) încearcă să țină pasul cu cerințele emise de \*(We. Valoarea
+întârzierii este invers proporțională cu încărcarea sistemului, așa că
+stabiliți\-o cu atenție.
+
+Dacă, în orice moment, doriți să știți care este timpul de întârziere
+actual, cereți pur și simplu să primiți Ajutor și vizualizați rezumatul
+sistemului pe a doua linie.
+
+.TP 7
+\ \ \ \fBE\fP\ \ :Forțează \fIscalarea rezumatului de memorie\fP în Zona de Rezumat
+Cu această comandă puteți parcurge scara de memorie disponibilă în Zona de
+Rezumat, care variază de la Kio (kibiocteți sau 1.024 de octeți) la Eio
+(exbibiocteți sau 1.152.921.504.606.846.976 de octeți).
+
+Dacă vedeți un „+†între un număr afișat și următoarea etichetă, înseamnă că
+\*(We a fost forțat să trunchieze o parte din acel număr. Prin creșterea
+factorului de scalare, o astfel de trunchiere poate fi evitată.
+
+.TP 7
+\ \ \ \fBE\fP\ \ :Forțează \fIscalarea memoriei sarcinilor\fP în Zona de Sarcini
+Cu această comandă puteți parcurge scara de memorie disponibilă pentru Zona
+de Sarcini, care variază de la Kio (kibiocteți sau 1.024 de octeți) la Pio
+(pebiocteți sau 1.125.899.906.842.624 de octeți).
+
+Deși \*(We va încerca să respecte intervalul țintă selectat, este posibil să
+fie necesară o scalare suplimentară pentru a se adapta la valorile actuale.
+În cazul în care doriți să vedeți un rezultat mai omogen în coloanele de
+memorie, mărirea plajei de scalare va îndeplini de obicei acest obiectiv.
+Creșterea prea mare a acesteia, cu toate acestea, este posibil să producă un
+rezultat complet zero, care nu poate fi suprimat cu comanda interactivă „0â€.
+
+.TP 7
+\ \ \ \fBg\fP\ \ :\fIAlege o altă fereastră/grup de câmpuri\fP
+Vi se va cere să introduceți un număr între 1 și 4 pentru a desemna grupul
+de câmpuri care trebuie să devină fereastra „curentăâ€. ÃŽn scurt timp, vă
+veți simți confortabil cu aceste 4 ferestre, mai ales după ce veți
+experimenta cu modul de afișare alternativă.
+
+.TP 7
+\ \ \ \fBH\fP\ \ :comutare \fIMod fire de execuție\fP
+Atunci când acest comutator este \*O (On), vor fi afișate firele individuale
+pentru toate procesele în toate ferestrele de sarcini vizibile. În caz
+contrar, \*(We afișează o însumare a tuturor firelor din fiecare proces.
+
+.TP 7
+\ \ \ \fBI\fP\ \ :comutare \fIMod Irix/Solaris\fP
+Atunci când funcționează în modul Solaris („I†\fIDezactivată\fP (Off)),
+utilizarea cpu a unei sarcini va fi împărțită la numărul total de unități
+centrale de procesare. După lansarea acestei comenzi, vi se va comunica
+noua stare a acestei comutări.
+
+.TP 7
+*\ \ \fBk\fP\ \ :\fIOmoară o sarcină\fP
+Vi se va solicita un PID și apoi semnalul de trimis.
+
+Dacă nu se introduce niciun PID sau dacă se introduce un număr negativ,
+acesta va fi interpretat ca fiind valoarea implicită afișată în prompt
+(prima sarcină afișată). O valoare PID de zero înseamnă programul
+propriu\-zis \*(We.
+
+Semnalul implicit, așa cum se reflectă în prompt, este SIGTERM. Cu toate
+acestea, puteți trimite orice semnal, prin introducerea numărului sau
+numelui acestuia.
+
+Dacă doriți să întrerupeți procesul de omorâre, efectuați una dintre
+următoarele acțiuni, în funcție de progresul înregistrat:
+.nf
+ 1) la promptul pid, introduceți un număr invalid
+ 2) la promptul de semnal, introduceți 0 (sau orice semnal nevalid)
+ 3) la orice prompt, tastați <Esc>
+.fi
+
+.TP 7
+\ \ \ \fBq\fP\ \ :\fIIeșire\fP
+
+.TP 7
+*\ \ \fBr\fP\ \ :\fIModifică valoarea de curtoazie „nice†a unei sarcini\fP
+Vi se va solicita un PID și apoi o valoare de curtoazie „nice†pentru
+acesta.
+
+Dacă nu se introduce niciun PID sau dacă se introduce un număr negativ,
+acesta va fi interpretat ca fiind valoarea implicită afișată în prompt
+(prima sarcină afișată). O valoare PID de zero înseamnă programul
+propriu\-zis \*(We.
+
+O valoare pozitivă de curtoazie „nice†va face ca un proces să piardă
+prioritatea de execuÈ›ie. ÃŽn schimb, o valoare negativă de curtoazie „niceâ€
+va face ca un proces să fie privit mai favorabil de către nucleu. Ca regulă
+generală, utilizatorii obișnuiți nu pot decât să mărească valoarea de
+curtoazie „niceâ€, È™i nu au voie să o reducă.
+
+Dacă doriți să întrerupeți procesul de schimbare a valorii de curtoazie
+„niceâ€, efectuaÈ›i una dintre următoarele acÈ›iuni, în funcÈ›ie de progresul
+înregistrat:
+.nf
+ 1) la promptul pid, introduceți un număr nevalid
+ 2) la promptul de curtoazie „niceâ€, tastaÈ›i <Enter> fără nici o intrare
+ 3) la orice prompt, tastați <Esc>
+.fi
+
+.TP 7
+\ \ \ \fBW\fP\ \ :\fIScrie fișierul de configurare\fP
+Aceasta va salva toate opțiunile și comutatoarele, precum și modul de
+afișare și timpul de întârziere curente. Prin emiterea acestei comenzi
+chiar înainte de a ieși din \*(We, veți putea reporni mai târziu exact în
+aceeași stare.
+
+.TP 7
+\ \ \ \fBX\fP\ \ :\fILățime extra\-fixată\fP
+Unele câmpuri au lățime fixă și nu sunt scalabile. Ca atare, acestea pot fi
+trunchiate, ceea ce va fi indicat printr\-un „+†în ultima poziție.
+
+Această comandă interactivă poate fi utilizată pentru a modifica lățimile
+următoarelor câmpuri:
+
+.nf
+ \fI câmpul implicit câmpul implicit câmpul implicit \fP
+ GID 5 GROUP 8 WCHAN 10
+ LOGID 5 LXC 8 nsCGROUP 10
+ RUID 5 RUSER 8 nsIPC 10
+ SUID 5 SUSER 8 nsMNT 10
+ UID 5 TTY 8 nsNET 10
+ USER 8 nsPID 10
+ nsTIME 10
+ nsUSER 10
+ nsUTS 10
+.fi
+
+Vi se va solicita valoarea care urmează să fie adăugată la lățimile
+implicite prezentate mai sus. Dacă introduceți zero, se revine la valorile
+implicite.
+
+Dacă introduceți un număr negativ, \*(We va crește automat dimensiunea
+coloanei, după cum este necesar, până când nu mai există date trunchiate.
+
+Notă: Fie că sunt mărite în mod explicit sau automat, lățimile acestor
+câmpuri nu sunt niciodată reduse de \*(We. Pentru a le restrânge, trebuie
+să specificați un număr mai mic sau să restabiliți valorile implicite.
+
+.TP 7
+\ \ \ \fBY\fP\ \ :\fIInspectează o altă ieșire\fP
+După lansarea comenzii interactive `Y', vi se va cere un PID țintă.
+Introducerea unei valori sau acceptarea valorii implicite are ca rezultat
+obținerea unui ecran separat. Acest ecran poate fi utilizat pentru a
+vizualiza o varietate de fișiere sau de ieșire a comenzilor canalizate în
+timp ce afișajul iterativ normal al \*(We este în pauză.
+
+Notă: Această comandă interactivă este realizată pe deplin numai atunci când
+intrările de sprijin au fost adăugate manual la sfârșitul fișierului de
+configurare al \*(We. Pentru detalii privind crearea acestor intrări,
+consultați subiectul 6b. Adăugarea de intrări de INSPECTARE.
+
+Majoritatea tastelor utilizate pentru a naviga cu funcția Inspectare sunt
+reflectate în prologul antetului acesteia. Cu toate acestea, există taste
+suplimentare disponibile după ce ați selectat un anumit fișier sau o anumită
+comandă. Acestea sunt familiare oricui a folosit pagerul «less» o dată și
+sunt rezumate aici pentru referințe viitoare:
+
+.nf
+ \fI tasta funcția \fP
+ = linie de stare alternativă, fișier sau conductă
+ / găsește, echivalent cu „L†pentru localizează
+ n găsește următorul, echivalent cu „&†pentru localizează următorul
+ <Spațiu> derulează în jos, echivalent cu <PgDn>
+ b derulează în sus, echivalent cu <PgUp>
+ g prima linie, echivalent cu <Home>
+ G ultima linie, echivalent cu <End>
+.fi
+
+.TP 7
+\ \ \ \fBZ\fP\ \ :\fISchimbă paleta de culori\fP
+Această tastă vă va duce la un ecran separat unde puteți schimba culorile
+pentru fereastra „curentă†sau pentru toate ferestrele. Pentru detalii
+privind această comandă interactivă, consultați subiectul 4d. Paleta de
+CULORI.
+
+.P
+\ \ \fB^G\fP\ \ :\fIAfiÈ™ează grupurile de control \fP (tasta Ctrl + „gâ€)
+.br
+\ \ \fB^K\fP\ \ :\fIAfiÈ™ează Linia de comandă \fP (tasta Ctrl + „kâ€)
+.br
+\ \ \fB^N\fP\ \ :\fIAfiÈ™ează mediul \fP (tasta Ctrl + „nâ€)
+.br
+\ \ \fB^P\fP\ \ :\fIAfiÈ™ează spaÈ›iile de nume \fP (tasta Ctrl + „pâ€)
+.br
+\ \ \fB^U\fP\ \ :\fIAfiÈ™ează grupurile suplimentare \fP (tasta Ctrl + „uâ€)
+.br
+.RS +7
+Aplicate la primul proces afișat, aceste comenzi vor afișa toate
+informațiile complete (potențial înfășurate) ale sarcinii respective.
+Aceste date vor fi afișate într\-o fereastră separată în partea de jos a
+ecranului, în timp ce monitorizarea normală \*(We continuă.
+
+Apăsarea \fIaceleiași\fP comenzi „Ctrl†a doua oară elimină fereastra separată,
+la fel ca È™i comanda „=â€. Apăsarea unei alte combinaÈ›ii „Ctrlâ€, în timp ce
+una este deja activă, face imediat tranziția la noile informații.
+
+Printre aceste dispoziții se numără și comanda Ctrl+N (mediu). Ieșirea
+acesteia poate fi extinsă și nu este ușor de citit atunci când este
+desfășurată pe mai multe linii. O versiune mai ușor de citit poate fi
+obținută cu o intrare de „Inspectare†în fișierul rc (de configurare), cum
+ar fi următoarea:
+
+.nf
+ pipe ^I Environment ^I cat /proc/%d/environ | tr '\e0' '\en'
+.fi
+
+A se vedea comanda interactivă `Y' de mai sus și subiectul 6b. Adăugarea de
+intrări de INSPECTARE pentru informații suplimentare.
+
+Ca o alternativă la „Inspectareâ€, È™i disponibilă pentru toate aceste comenzi
+„Ctrlâ€, tasta \fBTab\fP poate fi utilizată pentru a evidenÈ›ia elemente
+individuale din fereastra de jos.
+.RS -7
+
+.TP 7
+\ \ \fB^L\fP\ \ :\fIAfiÈ™ează mesajele jurnalizate \fP (tasta Ctrl + „lâ€)
+Cele mai recente 10 mesaje sunt afișate într\-o fereastră separată în partea
+de jos a ecranului, în timp ce monitorizarea normală a \*(We continuă.
+Apăsarea combinației de taste „^L†a a doua oară elimină această fereastră,
+la fel ca È™i comanda „=â€. FolosiÈ›i tasta \fBTab\fP pentru a evidenÈ›ia mesajele
+individuale.
+
+.TP 7
+*\ \fB^R\fP\ \ :\fIModifică valoarea de curtoazie „nice†a unui auto\-grup \fP (tasta Ctrl + „râ€)
+Vi se va solicita un PID și apoi valoarea de curtoazie „nice†pentru acest
+auto\-grup AGNI.
+
+Dacă nu se introduce niciun PID, se va interpreta ca fiind valoarea
+implicită afișată în prompt (prima sarcină afișată).
+
+O valoare AGNI pozitivă va face ca procesele din acel auto\-grup să piardă
+prioritate. Dimpotrivă, o valoare negativă face ca acestea să fie privite
+mai favorabil de către nucleu. Utilizatorii obișnuiți nu au voie să
+stabilească valori AGNI negative.
+
+Dacă doriți să întrerupeți procesul de modificare a valoarii de curtoazie
+„niceâ€, tastaÈ›i <Esc>.
+
+.IP * 3
+Comenzile marcate cu un asterisc (`*') nu sunt disponibile în modul
+Securizat și nici nu vor fi afișate pe primul nivel al ecranului de ajutor.
+
+.\" ......................................................................
+.SS "4b. Comenzi din ZONA de REZUMAT"
+.\" ----------------------------------------------------------------------
+Comenzile interactive din zona de rezumat \fBsunt întotdeauna disponibile\fP
+atât în modul ecran complet, cât și în modul de afișare alternativă.
+Acestea afectează liniile de început ale fișierului afișajului și vor
+determina poziția mesajelor și a solicitărilor.
+
+Aceste comenzi au întotdeauna un impact doar asupra ferestrei/grupului de
+câmpuri „curentâ€. A se vedea subiectul 5. DispoziÈ›ii privind AFIȘAREA
+ALTERNATIVĂ și comanda interactivă „g†pentru o perspectivă asupra
+ferestrelor È™i grupurilor de câmpuri „curenteâ€.
+
+.TP 7
+\ \ \ \fBC\fP\ \ :comutare \fIAfișează coordonatele de derulare\fP
+Activează un mesaj informativ care este afișat ori de câte ori linia de
+mesaje nu este utilizată în alt mod. Pentru informații suplimentare,
+consultați subiectul 5c. Derularea unei ferestre.
+
+.TP 7
+\ \ \ \fBl\fP\ \ :comutare \fIMedia de încărcare / Timp de funcționare\fP
+Aceasta este, de asemenea, linia care conține numele programului (eventual
+un alias) atunci când se operează în modul ecran complet sau numele
+ferestrei „curente†atunci când se operează în modul de afișare alternativă.
+
+.TP 7
+\ \ \ \fBt\fP\ \ :comutare \fISarcină / Stări CPU\fP
+Această comandă afectează de la 2 la mai multe linii ale Zonei de Rezumat,
+în funcÈ›ie de starea comutatoarelor de comandă „1â€, „2†sau „3†și dacă
+\*(We rulează sau nu în SMP real.
+
+Această parte a zonei de rezumat este, de asemenea, influențată de comanda
+de comutare interactivă „Hâ€, aÈ™a cum se reflectă în eticheta totală care
+arată fie Tasks (Sarcini) sau Threads (Fire de execuție).
+
+Această comandă servește ca un comutator cu patru poziții, trecând prin
+aceste moduri:
+.nf
+ 1. procentaje detaliate pe categorii
+ 2. procentaj abreviat utilizator/sistem și total + grafic cu bare
+ 3. procentaj abreviat utilizator/sistem și total + grafic cu blocuri
+ 4. dezactivează afișarea sarcinilor și a stărilor CPU
+.fi
+
+Când operează în oricare dintre modurile grafice, afișajul devine mult mai
+semnificativ atunci când sunt afișate și procesoarele individuale sau
+nodurile NUMA. ConsultaÈ›i comenzile „1â€, „2†și „3†de mai jos pentru
+informații suplimentare.
+
+.TP 7
+\ \ \ \fBm\fP\ \ :comutare \fIUtilizare Memorie/Swap\fP
+Această comandă afectează cele două linii din Zona de Rezumat care se ocupă
+de memoria fizică și virtuală.
+
+Această comandă servește ca un comutator cu patru poziții, trecând prin
+aceste moduri:
+.nf
+ 1. procentaje detaliate după tipul de memorie
+ 2. procentaj utilizată/total disponibilă abreviat + grafic cu bare
+ 3. procentaj utilizată/total disponibilă abreviat + grafic cu blocuri
+ 4. dezactivează afișarea memoriei
+.fi
+
+.TP 7
+\ \ \ \fB1\fP\ \ :comutare \fIStări CPU pe o linie unică / pe linii separate\fP
+Această comandă afectează modul în care este afișată porțiunea Stări Cpu a
+comenzii „tâ€. DeÈ™i această comutare există în primul rând pentru a servi
+mașinilor SMP masiv\-paralele, nu este limitată doar la mediile SMP.
+
+Când vedeți „%Cpu(s):†în zona de rezumat, comanda de comutare „1†este
+activată și toate informațiile despre CPU sunt adunate pe o singură linie.
+În caz contrar, fiecare CPU este afișat separat ca: „%Cpu0, %Cpu1, ...†până
+la înălțimea disponibilă a ecranului.
+
+.TP 7
+\ \ \ \fB2\fP\ \ :comutare \fIRezumat Noduri NUMA/CPU\fP
+Această comandă comută între afișarea (doar) a rezumatului de CPU al
+comenzii „1†sau afișarea rezumatului și a statisticilor de utilizare a CPU
+pentru fiecare nod NUMA. Este disponibilă numai dacă un sistem are suportul
+NUMA necesar.
+
+.TP 7
+\ \ \ \fB3\fP\ \ :\fIExtinde Nodul NUMA.\fP
+Veți fi invitat să introduceți un număr care reprezintă un nod NUMA.
+Ulterior, va fi afișat un rezumat al nodului plus statisticile pentru
+fiecare CPU din acel nod până când se apasă comanda de comutare „1â€, „2†sau
+„4â€. Această comandă interactivă este disponibilă numai dacă un sistem are
+suportul NUMA necesar.
+
+.TP 7
+\ \ \ \fB4\fP\ \ :comutare \fIAfișează mai multe elemente adiacente\fP
+Această comandă dezactivează comanda „1†și afișează mai multe rezultate CPU
+și de memorie pe fiecare linie. Fiecare tastă „4†succesivă adaugă un alt
+CPU până când se revine din nou la linii separate pentru rezultatele
+provenite de la CPU și memorie.
+
+În acest mod pot fi afișate maximum 8 CPU\-uri pe linie. Cu toate acestea,
+este posibil ca datele să fie trunchiate înainte de a se ajunge la maxim.
+Acest lucru este cu siguranță valabil atunci când se afișează statistici
+detaliate prin intermediul comenzii de comutare „tâ€, deoarece astfel de date
+nu pot fi scalate la fel ca reprezentările grafice.
+
+Dacă se dorește să se iasă rapid din modul adiacent fără a se ajunge până la
+8, este suficient să se folosească comanda „1â€.
+
+.TP 7
+\ \ \ \fB5\fP\ \ :comutare \fIAfișează P\-Core și E\-Core\fP
+Această comandă este activă numai atunci când comanda de comutare „t†este
+activată, iar comenzile de comutare „1â€, „2â€, „3†și „!†sunt dezactivate,
+afișând astfel rezultatele individuale ale procesorului. Aceasta presupune
+că o platformă are mai multe nuclee de două tipuri distincte, fie
+„multi\-threaded†(P\-Core), fie „single\-threaded†(E\-Core).
+
+ÃŽn timp ce, în mod normal, fiecare CPU este afiÈ™at ca „%Cpu0, %Cpu1, ...â€,
+această comutare poate fi utilizată pentru a identifica și/sau filtra aceste
+CPU\-uri în funcție de tipul de nucleu, fie P\-Core (performanță), fie E\-Core
+(eficiență).
+
+Prima dată când se apasă „5â€, fiecare unitate centrală este afiÈ™ată ca
+„%CpP†sau „%CpEâ€, reprezentând cele două tipuri de nuclee. A 2\-a oară, vor
+fi afișate doar nucleele P\-Core (%CpP). A 3\-a oară, doar nucleele E\-Core
+(%CpE) sunt afișate. Când această comandă de comutare este apăsată pentru a
+4\-a oară, afișajul CPU revine la convenția normală „%Cpu'.
+
+În cazul în care nu există categorii separate de \fIperformanță\fP și
+\fIeficiență\fP, această comandă nu va avea niciun efect.
+
+.TP 7
+\ \ \ \fB!\fP\ \ :comutare \fIModul Combinare CPU\-uri\fP
+Această comandă de comutare este destinată mediilor SMP masiv paralele în
+care, chiar È™i cu comanda de comutare „4â€, nu pot fi afiÈ™ate toate
+procesoarele. La fiecare apăsare a tastei „!†numărul de CPU\-uri combinate
+se dublează, reducând astfel numărul total de linii de CPU\-uri afișate.
+
+De exemplu, la prima apăsare a tastei „!†se va combina o unitate de
+procesare suplimentară și va fi afișată ca „0\-1, 2\-3, ...†în loc de „%Cpu0,
+%Cpu1, %Cpu2, %Cpu3, ...â€. Cu o a doua apăsare a comenzii de comutare „!â€,
+patru CPU\-uri sunt combinate È™i afiÈ™ate ca „0\-3, 4\-7, ...â€. Apoi, a treia
+apăsare a comenzii „!â€, combină opt CPU\-uri, ce se afiÈ™ează ca „0\-7, 8\-15,
+\&...â€, etc.
+
+Această progresie continuă până când se afișează din nou fiecare CPU și are
+un impact atât asupra comenzii de comutare „1â€, cât È™i asupra comenzii de
+comutare „4†(una sau mai multe coloane). Utilizați comanda „=†pentru a
+ieși din modul de Combinare a CPU\-urilor.
+
+.PP
+Notă: Dacă întreaga zonă de rezumat a fost dezactivată pentru orice
+fereastră, veți rămâne doar cu \fBlinia de mesaj\fP. În acest fel, veți avea
+maximizate rândurile de sarcini disponibile, dar sacrificat (temporar)
+numele programului în modul ecran complet sau numele ferestrei „curenteâ€
+atunci când se află în modul de afișare alternativă.
+
+.\" ......................................................................
+.SS "4c. Comenzi din ZONA de SARCINI"
+.\" ----------------------------------------------------------------------
+Comenzile interactive din Zona de Sarcini sunt \fBîntotdeauna\fP disponibile în
+modul ecran complet.
+
+Comenzile interactive din zona de sarcini nu sunt niciodată disponibile în
+modul de afișare alternativă dacă afișarea sarcinilor din fereastra
+„curentă†a fost dezactivată (a se vedea tema 5. Dispoziții privind AFIȘAREA
+ALTERNATIVÄ‚).
+
+.\" ..................................................
+.PP
+\fBASPECTUL\fP ferestrei de sarcini
+
+.TP 7
+\ \ \ \fBJ\fP\ \ :comutare \fIJustificarea(alinierea) coloanelor numerice\fP
+Alternează între datele numerice justificate la dreapta (valoarea implicită)
+și cele justificate la stânga. În cazul în care datele numerice umplu
+complet coloana disponibilă, această comandă de comutare poate avea un
+impact doar asupra antetului coloanei.
+
+.TP 7
+\ \ \ \fBj\fP\ \ :comutare \fIJustificarea(alinierea) coloanelor de caractere\fP
+Alternează între datele de caractere justificate la stânga (valoarea
+implicită) și cele justificate la dreapta. În cazul în care datele de
+caractere umplu complet coloana disponibilă, această comandă de comutare
+poate avea un impact doar asupra antetului coloanei.
+
+.PP
+.RS +2
+Următoarele comenzi vor fi, de asemenea, influențate de starea comutatorului
+global „B†(activează Aldin).
+.RS -2
+
+.TP 7
+\ \ \ \fBb\fP\ \ :comutare \fIAldin / Invers\fP
+Această comandă va avea un impact asupra modului în care sunt afișate
+comutatoarele „x†și „yâ€. De asemenea, poate avea un impact asupra Zonei de
+Rezumat atunci când a fost selectat un grafic cu bare pentru stările CPU sau
+utilizarea memoriei prin intermediul comenzilor de comutare „t†sau „mâ€.
+
+.TP 7
+\ \ \ \fBx\fP\ \ :comutare \fIEvidențiere coloană\fP
+Modifică evidențierea pentru câmpul de sortare curent. Dacă uitați ce câmp este sortat, această comandă poate servi ca o reamintire vizuală rapidă, cu condiția ca câmpul de sortare să fie afișat. Câmpul de sortare ar putea să nu fie vizibil deoarece:
+ 1) lățimea ecranului este insuficientă
+ 2) comanda interactivă „f†l\-a dezactivat
+
+.TP 7
+\ \ \ \fBy\fP\ \ :comutare \fIEvidențiere rând\fP
+Modifică evidenÈ›ierea sarcinilor „care ruleazăâ€. Pentru informaÈ›ii
+suplimentare despre această stare a sarcinilor, consultați subiectul
+3a. DESCRIEREA câmpurilor, câmpul „S†(Starea procesului).
+
+Utilizarea acestei prevederi oferă informații importante despre starea de
+sănătate a sistemului dumneavoastră. Singurele costuri vor fi câteva
+secvențe suplimentare de eludare tty.
+
+.TP 7
+\ \ \ \fBz\fP\ \ :comutare \fICulori/Monocromie\fP
+Comută fereastra „curentă†între ultima schemă de culori utilizată și forma
+mai veche de negru pe alb sau alb pe negru. Această comandă va modifica
+atât Zona de Rezumat, cât și Zona de Sarcini, dar nu afectează starea
+comutatoarelor „xâ€, „y†sau „bâ€.
+
+.\" ..................................................
+.PP
+\fBCONÈšINUTUL\fP ferestrei de sarcini
+
+.TP 7
+\ \ \ \fBc\fP\ \ :comutare \fILinia de comandă / Nume program\fP
+Această comandă va fi onorată indiferent dacă coloana COMANDĂ este sau nu
+vizibilă în prezent. Mai târziu, dacă acest câmp va fi afișat, modificarea
+pe care ați aplicat\-o va fi vizibilă.
+
+.TP 7
+\ \ \ \fBF\fP\ \ :comutare \fIMenține atenția asupra părintelui\fP
+Când vă aflați în modul de vizualizare arborescentă, această tastă are rolul
+de a comuta pentru a menține concentrarea pe o sarcină țintă, probabil una
+cu copii bifurcați. În cazul în care modul de vizualizare a pădurii este
+\fIDezactivat\fP (Off), această tastă nu are niciun efect.
+
+Comutarea se aplică primului proces (cel mai de sus) din fereastra
+„curentăâ€. Odată stabilită, sarcina respectivă este întotdeauna afiÈ™ată ca
+fiind primul proces (cel mai de sus) împreună cu copiii săi bifurcați.
+Toate celelalte procese vor fi suprimate.
+
+Notă: taste precum „i†(sarcini inactive), „n†(numărul maxim de sarcini),
+„v†(ascunde copii) și filtrarea Utilizator/Altul rămân accesibile și pot
+avea un impact asupra elementelor afișate.
+
+.TP 7
+\ \ \ \fBf\fP\ \ :\fIGestionarea câmpurilor\fP
+Această tastă afișează un ecran separat în care puteți modifica câmpurile
+care sunt afișate, ordinea lor și, de asemenea, puteți desemna câmpul de
+sortare. Pentru informații suplimentare cu privire la această comandă
+interactivă, consultați subiectul 3b. Gestionarea câmpurilor.
+
+.TP 7
+\ \ \ \fBO\fP | \fBo\fP\ \ :\fIAltă filtrare\fP
+Vi se va cere să introduceți criteriile de selecție care vor determina apoi
+ce sarcini vor fi afiÈ™ate în fereastra „curentăâ€. Criteriile dumneavoastră
+pot fi făcute sensibile la majuscule sau minuscule sau pot fi ignorate. Și
+dumneavoastră stabiliți dacă \*(We trebuie să includă sau să excludă
+sarcinile care coincid.
+
+Consultați subiectul 5e. „Filtrarea într\-o fereastră†pentru detalii despre
+aceste comenzi interactive și alte comenzi interactive conexe.
+
+.TP 7
+\ \ \ \fBS\fP\ \ :comutare \fIModul de timp cumulat\fP
+Când modul cumulativ este \*O (On), fiecare proces este listat cu timpul de
+procesare pe care acesta și copiii săi morți l\-au folosit.
+
+Când este \fIDezactivat\fP (Off), programele care se bifurcă în mai multe
+sarcini separate vor părea mai puțin solicitante. Pentru programe precum
+«init» sau un shell acest lucru este adecvat, dar pentru altele, precum
+compilatoarele, poate că nu. Experimentați cu două ferestre de sarcini care
+împart același câmp de sortare, dar cu stări „S†diferite și vedeți ce
+reprezentare preferați.
+
+După lansarea acestei comenzi, veți fi informat cu privire la noua stare a
+acestei comutări. Dacă doriți să știți în avans dacă modul cumulativ este
+sau nu activ, pur și simplu cereți Ajutor și vizualizați rezumatul ferestrei
+pe a doua linie.
+
+.TP 7
+\ \ \ \fBU\fP | \fBu\fP\ \ :\fIAfișează numai un anumit utilizator\fP
+Vi se va solicita \fBuid\fP\-ul sau \fBnumele\fP utilizatorului care urmează să fie
+afișat. Opțiunea „\-u†se potrivește cu utilizatorul \fBefectiv\fP, în timp ce
+opțiunea „\-U†se potrivește cu \fBorice\fP utilizator (real, efectiv, salvat
+sau din sistemul de fișiere).
+
+Ulterior, în fereastra de sarcini se vor afișa numai utilizatorii
+corespunzători sau, eventual, nu se va afișa niciun proces. Precedarea cu
+un semn de exclamare („!â€) a ID\-ului sau a numelui utilizatorului îi indică
+lui \*(We să afișeze numai procesele cu utilizatori care nu se potrivesc cu
+cel furnizat.
+
+Diferite ferestre de sarcini pot fi utilizate pentru a filtra diferiți
+utilizatori. Ulterior, dacă doriți să monitorizați din nou toți
+utilizatorii în fereastra „curentăâ€, reluaÈ›i această comandă, dar apăsaÈ›i
+doar tasta <Enter> la prompt.
+
+.TP 7
+\ \ \ \fBV\fP\ \ :comutare \fIModul de vizualizare arborescent\fP
+În acest mod, procesele sunt reordonate în funcție de părinții lor, iar
+structura coloanei COMANDĂ seamănă cu cea a unui arbore. În modul de
+vizualizare arborescentăi este încă posibil de a comuta între numele
+programului È™i linia de comandă (a se vedea comanda interactivă „câ€) sau
+între procese È™i fire de execuÈ›ie (a se vedea comanda interactivă „Hâ€).
+
+Notă: Apăsarea oricărei taste care afectează ordinea de sortare vă va scoate
+din modul de vizualizare arborescentă în fereastra „curentăâ€. A se vedea
+subiectul 4c. Comenzi din ZONA de SARCINI, Sortare pentru informații despre
+aceste taste.
+
+.TP 7
+\ \ \ \fBv\fP\ \ :comutare \fIAscunde/ Afișează copiii\fP
+În modul de vizualizare arborescentă, această tastă servește drept comutator
+pentru a restrânge sau extinde copiii unui părinte.
+
+Comutarea se aplică primului proces (cel mai de sus) din fereastra
+„curentăâ€. A se vedea subiectul 5c. Derularea unei ferestre pentru
+informații suplimentare referitoare la derularea verticală.
+
+În cazul în care procesul țintă nu a bifurcat niciun copil, această cheie nu
+are niciun efect. De asemenea, nu are niciun efect atunci când nu se află
+în modul de vizualizare arborescentă.
+
+.TP 7
+\ \ \fB^E\fP\ \ :\fIScalează câmpurile de timp CPU\fP (tasta Ctrl + „eâ€)
+În mod normal, câmpurile „timp†sunt afișate cu cea mai mare precizie pe
+care o permite lățimea lor. Acest comutator reduce această precizie până
+când aceasta se încadrează. Ea ilustrează, de asemenea, scalarea pe care
+aceste câmpuri o \fIpot\fP experimenta automat, care depinde de obicei de
+durata de funcționare a sistemului.
+
+De exemplu, dacă este afiÈ™at „MMM:SS.hhâ€, fiecare apăsare de tastă ^E îl va
+schimba în: „MM:SSâ€, „Ore,MMâ€, „Zile+ore†și, în final, „Săptămâni+zileâ€.
+
+Nu toate câmpurile de timp sunt supuse la o gamă completă de astfel de
+scalări.
+
+.\" ..................................................
+.PP
+\fBDIMENSIUNEA\fP ferestrei de sarcini
+
+.TP 7
+\ \ \ \fBi\fP\ \ :comutare \fIProces inactiv\fP
+Afișează toate sarcinile sau doar sarcinile active. Atunci când acest
+comutator este \*F (Off), sarcinile care nu au utilizat niciun \*(PU de la
+ultima actualizare nu vor fi afișate. Cu toate acestea, datorită precizieii
+câmpurilor %CPU și TIME+, este posibil să fie afișate în continuare unele
+procese care \fIpar\fP să \fInu\fP fi utilizat niciun \*(PU.
+
+Dacă această comandă este aplicată la ultima afișare a sarcinii atunci când
+se află în modul de afișare alternativă, atunci nu va afecta dimensiunea
+ferestrei, deoarece toate afișările anterioare ale sarcinii vor fi fost deja
+desenate.
+
+.TP 7
+\ \ \ \fBn\fP | \fB#\fP\ \ :\fIStabilește numărul maxim de sarcini\fP
+Vi se va solicita să introduceți numărul de sarcini care trebuie afișate.
+Se va utiliza valoarea cea mai mică dintre numărul dumneavoastră și numărul
+rândurilor disponibile pe ecran.
+
+Atunci când este utilizată în modul de afișare alternativă, aceasta este
+comanda care vă oferă un control precis asupra mărimii fiecărei afișări de
+sarcini vizibile în prezent, cu excepția ultimei. Aceasta nu va afecta
+dimensiunea ultimei ferestre, deoarece toate afișajele anterioare au fost
+deja desenate.
+
+Notă: Dacă doriți să măriți dimensiunea ultimului afișaj de sarcini vizibil
+atunci când vă aflați în modul de afișare alternativă, reduceți pur și
+simplu dimensiunea afișajului (afișajelor) de sarcini de deasupra acestuia.
+
+.\" ..................................................
+.PP
+\fBSortarea\fP ferestrei de sarcini
+.PP
+.RS +3
+Din motive de compatibilitate, acest \*(We suportă majoritatea tastelor de
+sortare din fostul \*(We. Deoarece acesta este în primul rând un serviciu
+pentru foștii utilizatori de \*(We, aceste comenzi nu apar în niciun ecran
+de ajutor.
+.nf
+ \fI comanda câmpul sortat acceptată \fP
+ A ora\-pornirii (neafișată) \fB Nu \fP
+ M %MEM Da
+ N PID Da
+ P %CPU Da
+ T TIME+ Da
+.fi
+
+Înainte de a utiliza oricare dintre următoarele metode de sortare, \*(We vă
+sugerează să activați temporar evidențierea coloanelor cu ajutorul comenzii
+interactive „xâ€. Acest lucru va ajuta la asigurarea că mediul real de
+sortare corespunde intenției dumneavoastră.
+
+Următoarele comenzi interactive vor fi executate \fBnumai atunci\fP când câmpul de sortare curent este \fBvizibil\fP. Este posibil ca acest câmp de sortare să \fInu\fP fie vizibil deoarece:
+ 1) \fIlățimea ecranului\fP este insuficientă
+ 2) comanda interactivă „f†l\-a \*F (Off)
+
+.TP 7
+\ \ \ \fB<\fP\ \ :\fIMută câmpul de sortare la stânga\fP
+Mută coloana de sortare la stânga, cu excepția cazului în care câmpul de
+sortare curent este primul câmp afișat.
+
+.TP 7
+\ \ \ \fB<\fP\ \ :\fIMută câmpul de sortare la dreapta\fP
+Mută coloana de sortare la dreapta, cu excepția cazului în care câmpul de
+sortare curent este ultimul câmp afișat.
+
+.PP
+Următoarele comenzi interactive vor fi \fBîntotdeauna\fP executate indiferent
+dacă este sau nu vizibil câmpul de sortare curent.
+
+.TP 7
+\ \ \ \fBf\fP\ \ :\fIGestionarea câmpurilor\fP
+Această tastă afișează un ecran separat în care, printre alte funcții,
+puteți schimba câmpul utilizat ca coloană de sortare. Aceasta poate fi o
+modalitate convenabilă de a verifica pur și simplu câmpul de sortare curent,
+atunci când se execută \*(We cu evidențierea coloanelor \fIDezactivată\fP
+(Off).
+
+.TP 7
+\ \ \ \fBR\fP\ \ :comutare \fISortare inversă/normală câmpului\fP
+Folosind această comandă interactivă, puteți alterna între sortarea de la
+mare la mic și de la mic la mare.
+
+.\" ......................................................................
+.SS "4d. Paleta de CULORI"
+.\" ----------------------------------------------------------------------
+Când lansaÈ›i comanda interactivă „Zâ€, vi se va afiÈ™a un ecran separat.
+Acest ecran poate fi folosit pentru a schimba culorile doar în fereastra
+„actuală†sau în toate cele patru ferestre înainte de a reveni la afișajul
+de \*(We.
+
+.P
+Sunt disponibile următoarele comenzi interactive:
+.nf
+ \fB4\fP majuscule pentru a selecta o \fBțintă\fP
+ \fB8\fP numere pentru a selecta o \fBculoare\fP
+ comenzi de comutare disponibile:
+ B :activează/dezactivează afiÈ™area în „aldinâ€
+ b :afiÈ™ează în „aldinâ€/invers sarcinile ce rulează
+ z :afișare în culori/monocromatică
+ alte comenzi disponibile:
+ a/w :aplică, apoi va trece la următorul/precedentul
+ <Enter> :aplică și iese
+ q :abandonează schimbările făcute și iese
+.fi
+
+Dacă utilizați „a†sau „w†pentru a parcurge fereastra vizată, veți găsii
+aplicată schema de culori care a fost afișată când ați părăsit fereastra
+respectivă. Desigur, puteți reveni cu ușurință la orice fereastră și să
+aplicați din nou culori diferite sau să dezactivați complet culorile cu
+ajutorul comenzii „zâ€.
+
+Ecranul „Paleta de culori†poate fi utilizat, de asemenea, pentru a schimba
+grupul de ferestre/câmpuri „curenteâ€, fie în modul ecran complet, fie în
+modul de afișare alternativă. Ceea ce a fost vizat atunci când s\-a apăsat
+tasta „q†sau <Enter>, va deveni curent atunci când reveniți la
+afișajul \*(We.
+
+.\" ----------------------------------------------------------------------
+.SH "5. Dispoziții privind AFIȘAREA ALTERNATIVĂ"
+.\" ----------------------------------------------------------------------
+.\" ......................................................................
+.SS "5a. Prezentare generală pentru ferestre"
+.\" ----------------------------------------------------------------------
+.TP 3
+\fBGrupuri de câmpuri/Ferestre\fP:
+În modul ecran complet, există o singură fereastră reprezentată de întregul
+ecran. Această fereastră unică poate fi modificată pentru a afișa 1 din 4
+\fBgrupuri de câmpuri\fP diferite (a se vedea comanda interactivă „gâ€, repetată
+mai jos). Fiecare dintre cele 4 grupuri de câmpuri are o \fBZonă de Rezumat\fP
+unică, configurabilă separat, și propria sa \fBZonă de Sarcini\fP
+configurabilă.
+
+În modul de afișare alternativă, cele 4 grupuri de câmpuri subiacente pot fi
+acum vizibile simultan sau pot fi \fIDezactivate\fP (Off) individual, la
+alegerea dumneavoastră.
+
+Zona de rezumat va exista întotdeauna, chiar dacă este vorba doar de linia
+de mesaje. La un moment dat, poate fi afișată \fIo singură\fP zonă de
+rezumat. Cu toate acestea, în funcție de comenzile dumneavoastră, pe ecran
+pot exista de la \fIzero\fP până la \fIpatru\fP afișaje separate ale sarcinilor
+afișate în prezent.
+
+.TP 3
+\fBFereastra curentă\fP:
+Fereastra „curentă†este fereastra asociată cu Zona de Rezumat și fereastra
+către care sunt direcționate întotdeauna comenzile legate de sarcini.
+Deoarece în modul de afișare alternativă puteți \fIDezactiva\fP (Off) afișarea
+sarcinilor, unele comenzi pot fi restricÈ›ionate pentru fereastra „curentăâ€.
+
+O altă complicație apare atunci când ați \*F (Off) prima linie din Zona de
+Rezumat. Odată cu pierderea numelui ferestrei (linia comutată de comanda
+„lâ€), nu veÈ›i È™ti cu uÈ™urință ce fereastră este fereastra „curentăâ€.
+
+.\" ......................................................................
+.SS "5b. Comenzi pentru ferestre"
+.\" ----------------------------------------------------------------------
+.TP 7
+\ \ \ \fB\-\fP | \fB_\fP\ \ :comutare \fIAfișează/Ascunde ferestre\fP
+Tasta „\-†\fIActivează\fP (On) și \fIDezactivează\fP (Off) afișarea sarcinilor din
+fereastra „curentăâ€. Atunci când este \fIActivată\fP (On), această Zonă de
+Sarcini va afișa un minim de antet de coloane pe care l\-ați stabilit cu
+comanda interactivă „fâ€. Aceasta va reflecta, de asemenea, orice alte
+opțiuni/comutări ale zonei de sarcini pe care le\-ați aplicat și care produc
+zero sau mai multe sarcini.
+
+Tasta „_†face același lucru pentru toate afișările de sarcini. Cu alte
+cuvinte, aceasta comută între afișajul (afișajele) de sarcini vizibil(e) în
+acel moment și orice afișaje de sarcini pe care le\-ați \*F (Off). În cazul
+în care toate cele 4 afișaje de sarcini sunt vizibile în prezent, această
+comandă interactivă va lăsa Zona de Rezumat ca unic element de afișare.
+
+.TP 7
+*\ \ \fB=\fP | \fB+\fP\ \ :\fIEgalizare/Restaurare ferestre\fP
+Tasta „=†forțează afișarea sarcinii ferestrei „curente†să fie vizibilă.
+De asemenea, anulează orice sarcină activă „i†(sarcini inactive), „nâ€
+(numărul maxim de sarcini), „u/U†(filtru utilizator), „o/O†(alte filtre),
+„v†(ascunde procesul\-copil), „F†(focalizarea), „L†(localizarea) È™i „!â€
+(combinare CPU\-uri). De asemenea, în cazul în care fereastra a fost
+derulată, aceasta va fi restaurată cu această comandă. A se vedea subiectul
+5c. Derularea unei ferestre, pentru informații suplimentare referitoare la
+derularea verticală și orizontală.
+
+Tasta „+†face același lucru pentru toate ferestrele. Cele patru afișaje de
+sarcini vor reapărea, echilibrate în mod egal, păstrând în același timp
+toate personalizările aplicate anterior, în afară de cele mențioate pentru
+comanda de comutare „=â€.
+
+.TP 7
+*\ \ \fBA\fP\ \ :comutare \fIModul de afișare alternativă\fP
+Această comandă va comuta între modul ecran complet și modul de afișare
+alternativă.
+
+Prima dată când lansați această comandă, vor fi afișate toate cele patru
+afișaje de sarcini. Ulterior, atunci când schimbați modurile, veți vedea
+numai afișajul (afișajele) de sarcini pe care ați ales să le faceți
+vizibile.
+
+.TP 7
+*\ \ \fBa\fP | \fBw\fP\ \ :\fIFereastra următoare „înainte/înapoiâ€\fP
+Acest lucru va schimba fereastra „curentăâ€, care la rândul ei va schimba
+fereastra către care sunt direcționate comenzile. Aceste taste acționează
+în mod circular, astfel încât să puteți ajunge la orice fereastra dorită
+folosind oricare dintre aceste taste.
+
+Presupunând că numele ferestrei este vizibil (nu ați comutat `l' în modul
+\*F (Off)), ori de câte ori numele ferestrei „curente†își pierde
+tonalitatea/culoarea, acesta este un memento că afișajul sarcinii este \*F
+(Off) și multe comenzi vor fi restricționate.
+
+.TP 7
+\ \ \ \fBG\fP\ \ :\fISchimbă numele ferestrei/grupului de câmpuri\fP
+Vi se va solicita un nou nume care să fie aplicat ferestrei "curente". Nu
+este necesar ca numele ferestrei să fie vizibil (comutatorul `l' în modul
+\*O (On)).
+
+.IP * 3
+Comenzile interactive marcate cu un asterisc („*â€) sunt utilizate în afara
+modului de afișare alternativă.
+.nf
+ =, A, g sunt întotdeauna disponibile
+ a, w acționează la fel cu Paleta de culoril
+ și Gestionarea câmpurilor
+.fi
+
+.TP 7
+*\ \ \fBg\fP\ \ :\fIAlege o altă fereastră / un alt grup de câmpuri\fP
+Vi se va cere să introduceți un număr între 1 și 4 pentru a desemna grupul
+de câmpuri care trebuie să devină fereastra „curentăâ€.
+
+În modul ecran complet, această comandă este necesară pentru a modifica
+fereastra „curentăâ€. ÃŽn modul de afiÈ™are alternativă, este pur È™i simplu o
+alternativă mai puÈ›in convenabilă la comenzile „a†și „wâ€.
+
+.\" ......................................................................
+.SS "5c. Derularea unei ferestre"
+.\" ----------------------------------------------------------------------
+În mod obișnuit, o fereastră de sarcini este o vizualizare parțială a
+tuturor sarcinilor/filelor unui sistem, care afișează doar o parte din
+câmpurile/coloanele disponibile. Cu ajutorul acestor taste de defilare,
+puteți deplasa această vizualizare pe verticală sau pe orizontală pentru a
+dezvălui orice sarcină sau coloană dorită.
+
+.TP 4
+\fBUp\fP,\fBPgUp\fP\ \ :\fIDerulare sarcini \fP
+Deplasează vizualizarea în sus spre primul rând de sarcini, până când prima
+sarcină este afiÈ™ată în partea de sus a ferestrei „curenteâ€. Tasta săgeată
+\fISus\fP deplasează o singură linie, în timp ce \fIPgUp\fP derulează întreaga
+fereastră.
+
+.TP 4
+\fBDown\fP,\fBPgDn\fP\ \ :\fIDerulare sarcini \fP
+Deplasează vizualizarea în jos spre ultimul rând de sarcini, până când
+ultima sarcină este singura afiÈ™ată în partea de sus a ferestrei „curenteâ€.
+Tasta săgeată \fIJos\fP deplasează o singură linie în timp ce \fIPgDn\fP
+deplasează întreaga fereastră.
+
+.TP 4
+\fBLeft\fP,\fBRight\fP\ \ :\fIDerulare coloane \fP
+Deplasează vizualizarea câmpurilor afișabile pe orizontală, coloană cu
+coloană.
+
+Notă: Ca reamintire, unele câmpuri/coloane nu au lățime fixă, ci au alocată
+toată lățimea rămasă a ecranului atunci când sunt vizibile. Când derulați
+la dreapta sau la stânga, această funcție poate produce inițial rezultate
+neașteptate.
+
+În plus, există dispoziții speciale pentru orice câmp cu lățime variabilă
+atunci când este poziționat ca ultimul câmp afișat. Odată ce câmpul
+respectiv este atins prin intermediul tastei săgeată dreapta, și este
+astfel singura coloană afișată, puteți continua să derulați pe orizontală în
+cadrul unui astfel de câmp. Pentru informații suplimentare, consultați
+comanda interactivă „C†de mai jos.
+
+.TP 4
+\fBHome\fP\ \ :\fISalt la poziția inițală \fP
+Repoziționează afișajul la coordonatele de dinainte de derulare.
+
+.TP 4
+\fBEnd\fP\ \ :\fISalt la poziția finală \fP
+Repoziționează afișajul astfel încât cea mai din dreapta coloană să reflecte
+ultimul câmp afișabil, iar rândul de jos al sarcinii să reprezinte ultima
+sarcină.
+
+Notă: Din această poziție este încă posibilă derularea în \fIjos\fP și la
+\fIdreapta\fP cu ajutorul tastelor săgeată. Acest lucru este valabil până când
+o singură coloană și o singură sarcină rămân ca singurele element de
+afișare.
+
+.TP 4
+\fBC\fP\ \ :comutare \fIAfișează coordonatele de derulare\fP
+Comută un mesaj informativ care este afișat ori de câte ori linia de mesaje
+nu este utilizată în alt mod. Acest mesaj va lua una dintre cele două
+forme, în funcție de faptul dacă o coloană cu lățime variabilă a fost sau nu
+derulată.
+
+.nf
+ \fBcoordonate derulare: y = n/n (sarcini), x = n/n (câmpuri)\fP
+ coordonate derulare: y = n/n (sarcini), x = n/n (câmpuri)\fB + nn\fP
+.fi
+
+Coordonatele afișate ca \fBn\fP/\fBn\fP sunt relative la colțul din stânga sus al
+ferestrei „curenteâ€. Cifra suplimentară „\fB+\ nn\fP†reprezintă deplasarea
+într\-o coloană cu lățime variabilă atunci când aceasta a fost derulată pe
+orizontală. O astfel de deplasare are loc în cantități normale de 8
+caractere de tabulare prin intermediul tastelor săgeată dreapta și stânga.
+
+.RS +4
+.TP 4
+\fBy = n/n (sarcini) \fP
+Primul \fBn\fP reprezintă sarcina cea mai vizibilă din partea de sus și este
+controlată prin intermediul tastelor de derulare. Al doilea \fBn\fP este
+actualizat automat pentru a reflecta totalul sarcinilor.
+
+.TP 4
+\fBx = n/n (câmpuri) \fP
+Primul \fBn\fP reprezintă cea mai din stânga coloană afișată și este controlat
+prin intermediul tastelor de derulare. Al doilea \fBn\fP reprezintă numărul
+total de câmpuri afișabile și se stabilește cu ajutorul comenzii interactive
+„\fBf\fPâ€.
+.RS -4
+
+.PP
+Comenzile interactive de mai sus sunt \fBîntotdeauna\fP disponibile în modul
+ecran complet, dar nu sunt \fBniciodată\fP disponibile în modul de afișare
+alternativă dacă afișarea sarcinilor din fereastra „curentă†a fost
+\fIDezactivată\fP (Off).
+
+Notă: Când orice formă de filtrare este activă, vă puteți aștepta la unele
+ușoare aberații la defilare, deoarece nu toate sarcinile vor fi vizibile.
+Acest lucru este evident mai ales atunci când utilizați tastele săgeți
+\fBSus/Jos\fP.
+
+.\" ......................................................................
+.SS "5d. Căutarea într\-o fereasră"
+.\" ----------------------------------------------------------------------
+Puteți utiliza aceste comenzi interactive pentru a localiza un rând de
+sarcini care conține o anumită valoare.
+
+.TP 4
+\fBL\fP\ \ :\fILocalizează un șir\fP
+Vi se va solicita șirul de caractere care trebuie localizat pornind de la
+coordonatele ferestrei curente. Nu există restricții privind conținutul
+șirului de căutare.
+
+Căutările nu se limitează la valorile dintr\-un singur câmp sau dintr\-o
+singură coloană. Toate valorile afișate într\-un rând de sarcini sunt
+permise într\-un șir de căutare. Puteți include spații, numere, simboluri și
+chiar grafice de vizualizare arborescentă.
+
+Apăsarea tastei <Enter> fără a introduce date va dezactiva efectiv
+tasta „&†până când se introduce un nou șir de căutare.
+
+.TP 4
+\fB&\fP\ \ :\fILocalizează următorul șir\fP
+Presupunând că a fost stabilit un șir de căutare, \*(We va încerca să
+localizeze următoarea apariție.
+
+.PP
+Atunci când se găsește o potrivire, fereastra curentă este repoziționată pe
+verticală astfel încât rândul de sarcini care conține șirul respectiv să fie
+primul. Mesajul coordonatelor de derulare poate oferi o confirmare a
+acestei repoziÈ›ionări verticale (a se vedea comanda interactivă „Câ€). Cu
+toate acestea, derularea orizontală nu este niciodată modificată prin
+intermediul căutării.
+
+Disponibilitatea unui șir care să corespundă va fi influențată de următorii
+factori.
+.RS +3
+.TP 3
+a. Ce câmpuri pot fi afișate din totalul disponibil,
+a se vedea 3b. GESTIONAREA Câmpurilor.
+.TP 3
+b. Derularea unei ferestre pe verticală și/sau pe orizontală,
+a se vedea 5c. Derularea unei ferestre.
+.TP 3
+c. Starea comutatorului „comandă/linia de comandăâ€,
+a se vedea comanda interactivă „câ€.
+.TP 3
+d. Stabilitatea coloanei de sortare aleasă,
+de exemplu, PID este bun, dar %CPU este inadecvat.
+.RS -3
+
+.PP
+În cazul în care o căutare eșuează, restabilirea poziției inițiale a
+ferestrei „curente†(nederulată), derularea pe orizontală, afișarea liniilor
+de comandă sau alegerea unui câmp de sortare mai stabil ar putea duce totuși
+la o căutare „&†reușită.
+
+Comenzile interactive de mai sus sunt \fBîntotdeauna\fP disponibile în modul
+ecran complet, dar nu sunt \fBniciodată\fP disponibile în modul de afișare
+alternativă dacă afișarea sarcinilor din fereastra „curentă†a fost
+\fIDezactivată\fP (Off).
+
+.\" ......................................................................
+.SS "5e. Filtrarea într\-o fereastră"
+.\" ----------------------------------------------------------------------
+Puteți utiliza această caracteristică „Alt filtru†pentru a stabili criterii
+de selecție care vor determina apoi ce sarcini sunt afișate în fereastra
+„curentăâ€. Astfel de filtre pot fi făcute persistente dacă sunt păstrate în
+fiÈ™ierul de configurare prin intermediul comenzii interactive „Wâ€.
+
+Stabilirea unui filtru necesită: 1) un nume de câmp; 2) un operator; și 3) o
+valoare de selecție, cel puțin. Aceasta este cea mai complexă dintre
+cerințele de introducere a datelor de către utilizator din \*(We, astfel
+încât, atunci când faceți o greșeală, reapelarea comenzilor vă va fi
+prietenă. Amintiți\-vă tastele săgeată \fISus/Jos\fP sau aliasurile lor atunci
+când vi se cere să introduceți date.
+
+\fBNoțiuni de bază despre filtre\fP
+.RS +3
+.TP 3
+1. numele câmpurilor sunt sensibile la majuscule și se scriu ca în antet
+.TP 3
+2. nu este necesar ca valorile de selecție să cuprindă întregul câmp afișat
+.TP 3
+3. o selecție este fie insensibilă la majuscule, fie sensibilă la majuscule
+.TP 3
+4. implicit este includerea, punerea lui „!†înainte, indică excluderea
+.TP 3
+5. se pot aplica mai multe criterii de selecție la o fereastră de sarcini
+.TP 3
+6. criteriile de includere și de excludere pot fi utilizate simultan
+.TP 3
+7. Filtrele 1 de egalitate și 2 relațional pot fi amestecate în mod liber
+.TP 3
+8. se mențin filtre unice separate pentru fiecare fereastră de sarcină
+
+.PP
+Dacă un câmp nu este activat sau nu este vizualizat în prezent, atunci
+criteriile de selecție nu vor afecta afișarea. Ulterior, dacă un câmp
+filtrat devine vizibil, criteriile de selecție vor fi aplicate.
+.RE
+
+\fBRezumat al comenzilor de la tastatură\fP
+.TP 6
+\ \ \fBO\fP\ \ :\fIAlt filtru\fP (cu majuscule)
+Vi se va solicita să stabiliți un filtru \fBsensibil la majuscule\fP.
+
+.TP 6
+\ \ \fBo\fP\ \ :\fIAlt filtru\fP (cu minjuscule)
+Vi se va solicita să stabiliți un filtru care \fBignoră majusculele\fP atunci
+când se potrivește.
+
+.TP 6
+\ \fB^O\fP\ \ :\fIAfiÈ™ează filtrele active\fP (tasta Ctrl + „oâ€)
+Acest lucru poate servi ca o reamintire a filtrelor care sunt active în
+fereastra „curentăâ€. Un rezumat va fi afiÈ™at pe linia de mesaje până când
+apăsați tasta <Enter>.
+
+.TP 6
+\ \ \fB=\fP\ \ :\fIReinițializează filtrele\fP în fereastra curentă
+Această acțiune șterge toate criteriile de selecție din fereastra
+"curentă". Are, de asemenea, un impact suplimentar, așa că n\-ar fi rău să
+consultați subiectul 4a. Comenzi GLOBALE.
+
+.TP 6
+\ \ \fB+\fP\ \ :\fIReinițializează filtrele\fP în toate ferestrele
+Această operație șterge criteriile de selecție din toate ferestrele,
+presupunând că vă aflați în modul de afișare alternativă. Ca și comanda
+interactivă „=â€, È™i aceasta are consecinÈ›e suplimentare aÈ™a că ar fi bine să
+consultați subiectul 5b. COMENZI pentru ferestre.
+
+.PP
+\fBCerințe de introducere\fP
+.RS +3
+.P
+Atunci când vi se solicită criteriile de selecție, datele pe care le
+furnizați trebuie să ia una dintre cele două forme. Există trei informații
+obligatorii, iar a patra este opțională. Aceste exemple folosesc spații
+pentru claritate, dar, în general, datele pe care le introduceți
+dumneavoastră nu ar trebui să le folosească.
+.nf
+ nr.1 \fBnr.2\fP nr.3 ( necesare )
+ Nume câmp ? include\-dacă\-valoare
+ \fB!\fP Nume câmp ? \fBexclude\fP\-dacă\-valoare
+ nr.4 ( opționale )
+.fi
+
+Elementele nr.1, nr.3 și nr.4 ar trebui să fie auto\-explicative Elementul
+\fBnr2\fP reprezintă atât un \fIdelimitator\fP necesar, cât și \fIoperator\fP, care
+trebuie să fie unul dintre egalitatea („=â€) sau relaÈ›ia („<†sau
+„>â€).
+
+Operatorul de egalitate „=†necesită doar o potrivire parțială, ceea ce
+poate reduce cerinÈ›ele de introducere a datelor „dacă\-valoareâ€. Operatorii
+relaționali „>†sau „<†utilizează întotdeauna comparații de șiruri
+de caractere, chiar și în cazul câmpurilor numerice. Aceștia sunt concepuți
+pentru a funcționa cu \fIjustificarea\fP implicită a unui câmp și cu date
+omogene. Atunci când unele valori numerice ale unor câmpuri au fost supuse
+\fIscalării\fP în timp ce altele nu, datele respective nu mai sunt omogene.
+
+Dacă stabiliți un filtru relațional și \fBați\fP modificat \fIjustificarea\fP
+implicită numerică sau de caractere, este posibil ca acel filtru să eșueze.
+Atunci când un filtru relațional este aplicat unui câmp de memorie și \fBnu ați\fP modificat \fIscalarea\fP, acesta poate produce rezultate înșelătoare.
+Acest lucru se întâmplă, de exemplu, pentru că „100.0m†(Mio) ar părea mai
+mare decât „1.000g†(Gio) atunci când sunt comparate ca șiruri de caractere.
+
+În cazul în care rezultatele filtrate par suspecte, simpla modificare a
+justificării sau a scalării poate atinge obiectivul dorit. Pentru
+informaÈ›ii suplimentare, consultaÈ›i comenzile interactive „jâ€, „J†și „eâ€.
+.RE
+
+\fBProbleme potențiale\fP
+.RS +3
+.P
+Aceste filtre \fBGROUP\fP ar putea produce exact aceleași rezultate sau cel
+de\-al doilea ar putea să nu afișeze nimic, ci doar o fereastră de sarcini
+goală.
+.nf
+ GROUP=root ( aceleași rezultate doar atunci când )
+ GROUP=ROOT ( este invocat prin intermediul minusculelor „o†)
+.fi
+
+Oricare dintre aceste filtre \fBRES\fP ar putea produce rezultate incoerente
+și/sau înșelătoare, în funcție de factorul de scalare a memoriei curente.
+Sau ambele filtre ar putea produce exact aceleași rezultate.
+.nf
+ RES>9999 ( aceleași rezultate doar atunci când )
+ !RES<10000 ( scalarea memoriei este fixată la „KiB†)
+.fi
+
+Acest filtru \fBnMin\fP ilustrează o problemă unică pentru câmpurile
+scalabile. Acest câmp special poate afișa maximum 4 cifre, dincolo de care
+valorile sunt scalate automat la KiB sau mai mult. Astfel, deși există
+cantități mai mari de 9999, acestea vor apărea ca 2,6m, 197k, etc.
+.nf
+ nMin>9999 ( întotdeauna o fereastră de sarcini goală )
+.fi
+.RE
+
+\fBSoluții potențiale\fP
+.RS +3
+.P
+Aceste exemple ilustrează modul în care Alte filtre pot fi aplicate în mod
+creativ pentru a obține aproape orice rezultat dorit. Ghilimelele simple
+sunt uneori afișate pentru a delimita spațiile care fac parte dintr\-un
+filtru sau pentru a reprezenta cu exactitate o cerere de stare (^O). Dar
+dacă le\-ați folosi cu „dacă\-valori†(valori condiționale), nu s\-ar găsi
+nicio potrivire.
+
+Presupunând că este afișat câmpul \fBnTH\fP (câmpul antet, de titlu), primul
+filtru va avea ca rezultat afișarea numai a proceselor cu mai multe fire de
+execuție. De asemenea, ne reamintește că un spațiu de sfârșit face parte
+din fiecare fișier câmp afișat. Cel de\-al doilea filtru obține exact
+aceleași rezultate cu mai puțină tastare.
+.nf
+ !nTH=„ 1 †( „†doar pentru claritate )
+ nTH>1 ( același lucru mai direct (mai pe scurt) )
+.fi
+
+Cu modul Vizualizare arborescentă activ și cu coloana \fBCOMANDA\fP la vedere,
+acest filtru reduce efectiv procesele copil astfel încât sunt afișate doar 3
+niveluri.
+.nf
+ !COMMAND=„ „\- †( „†doar pentru claritate )
+.fi
+
+Ultimele două filtre apar ca răspuns la tasta de solicitare a stării (^O).
+În realitate, fiecare filtru ar fi necesitat o intrare separată. Exemplul
+\fBPR\fP prezintă cele două filtre simultane necesare pentru a afișa sarcinile
+cu priorități de 20 sau mai mult, deoarece unele ar putea fi negative.
+Apoi, prin exploatarea spațiilor de urmărire, seria de filtre \fBnMin\fP ar
+putea atinge obiectivul eșuat „9999†discutat mai sus.
+.nf
+ `PR>20' + `!PR=\-' ( 2 pentru un rezultat corect )
+ `!nMin=0 ' + `!nMin=1 ' + `!nMin=2 ' + `!nMin=3 ' ...
+.fi
+.RS -3
+
+.\" ----------------------------------------------------------------------
+.SH "6. FIȘIERE"
+.\" ----------------------------------------------------------------------
+.SS "6a. Fișier de configurare PERSONAL"
+.\" ----------------------------------------------------------------------
+Acest fișier este creat sau actualizat prin intermediul comenzii interactive
+„Wâ€.
+
+Versiunea veche este scrisă ca „$HOME/.numele\-dvs.\-pentru\-\*(We†+ „rc†cu
+un punct înainte.
+
+Un fișier de configurare nou creat este scris ca
+procps/numele\-dvs.\-pentru\-top†+ „rc†fără un punct înainte. Directorul
+procps va fi subordonat fie lui $XDG_CONFIG_HOME atunci când este stabilită
+ca o cale absolută, fie directorului $HOME/.config.
+
+Deși nu a fost conceput pentru a fi editat manual, iată prezentarea generală
+a fișierului de configurare:
+.nf
+ global # linia 1: numele programului/notația „alias†a numelui
+ \-"\- # linia 2: id,altscr,irixps,delay,curwin
+ per ea # linia a: winname,fieldscur
+ fereastra # linia b: winflags,sortindx,maxtasks,etc
+ \-"\- # linia c: summclr,msgsclr,headclr,taskclr
+ global # linia 15: configurări diverse suplimentare
+ \-"\- # toate liniile rămase sunt dedicate „altor filtreâ€
+ \-"\- # active opționale, discutate în secțiunea 5e de mai sus,
+ \-"\- # plus intrările „inspect†discutate în secțiunea 6b de mai jos.
+.fi
+
+În cazul în care nu se poate stabili o cale absolută validă către fișierul
+fiÈ™ierul de configurare „rcâ€, personalizările făcute la un \*(We în execuÈ›ie
+vor fi imposibil de păstrat.
+
+.\" ......................................................................
+.SS "6b. Adăugarea de intrări de INSPECTARE"
+.\" ----------------------------------------------------------------------
+Pentru a exploata comanda interactivă „Yâ€, trebuie să adăugaÈ›i intrări la
+\fBsfârșitul\fP fișierului de configurare personal al \*(We. Aceste intrări
+reflectă pur È™i simplu un fiÈ™ier care trebuie citit sau o „comandăâ€/„linie
+de comenzi în cascadă†care urmează să fie executată, ale cărei rezultate
+vor fi apoi afișate într\-o fereastră separată care poate fi derulată și
+căutată.
+
+Dacă nu cunoașteți locația sau numele fișierului dvs. configurare al \*(We,
+utilizați comanda interactivă „W†pentru a\-l rescrie și notați aceste
+detalii.
+
+Intrările de inspectare pot fi adăugate cu ajutorul unui ecou redirecționat
+sau prin editarea fișierului de configurare. Redirecționarea unui ecou
+riscă să suprascrie fișierul configurare în cazul în care înlocuiește
+(>) în loc să adauge (>>) la fișierul respectiv. În schimb,
+atunci când se utilizează un editor, trebuie să se aibă grijă să nu se
+corupă liniile existente, unele dintre acestea putând conține date
+neimprimabile sau caractere neobișnuite, în funcție de versiunea de \*(We
+sub care a fost salvat fișierul de configurare respectiv.
+
+Acele intrări Inspect (de inspectare) care încep cu caracterul „#†sunt
+ignorate, indiferent de conținut. În caz contrar, acestea sunt formate din
+următoarele 3 elemente, fiecare dintre ele trebuind să fie separat de un
+caracter de tabulare (deci 2 „\et†în total):
+
+.nf
+ .type: fie „file†(fișier), fie „pipe†(conductă)
+ .name: selecția afișată pe ecranul de Inspectare
+ .fmts: șir reprezentând o rută sau o comandă
+.fi
+
+Cele două tipuri de intrări de Inspectare nu sunt interschimbabile. Cele
+desemnate „file†vor fi accesate utilizând fopen() și trebuie să facă
+referire la un singur fiÈ™ier în elementul „.fmtsâ€. Intrările care specifică
+„pipe†vor folosi popen(), elementul lor „.fmts†poate conține mai multe
+comenzi în linie și niciuna nu poate fi interactivă.
+
+În cazul în care fișierul sau linia de comenzi în cascadă (pipeline)
+reprezentată în elementul „.fmts†se referă la un PID specific introdus sau
+acceptat atunci când vi se solicită, atunci șirul de format trebuie să
+conÈ›ină, de asemenea, specificatorul „\fB%d\fPâ€, după cum ilustrează aceste
+exemple.
+
+.nf
+ .fmts= /proc/\fI%d\fP/numa_maps
+ .fmts= lsof \-P \-p\fI %d\fP
+.fi
+
+Doar pentru intrările de tip „\fBpipe\fPâ€, aÈ›i putea dori, de asemenea, să
+redirecționați ieșirea de eroare standard către ieșirea standard pentru un
+rezultat mai cuprinzător. Astfel șirul de format devine:
+
+.nf
+ .fmts= pmap \-x %d\fI 2>&1\fP
+.fi
+
+Iată exemple de ambele tipuri de intrări Inspect așa cum ar putea apărea în
+fișierul de configurare. Prima intrare va fi ignorată din cauza
+caracterului iniÈ›ial „#â€. Pentru mai multă claritate, pseudo\-tabulatoarele
+(^I) sunt înconjurate de un spațiu suplimentar, dar tabulatoarele reale nu
+ar trebui să fie.
+.nf
+
+ # pipe ^I Socluri ^I lsof \-n \-P \-i 2>&1
+ pipe ^I Fișiere deschise ^I lsof \-P \-p %d 2>&1
+ file ^I Informații NUMA ^I /proc/%d/numa_maps
+ pipe ^I Jurnal ^I tail \-n100 /var/log/syslog | sort \-Mr
+.fi
+
+Cu excepția intrării comentate de mai sus, următoarele exemple arată ce ar
+putea fi transmis pentru a obține rezultate similare, presupunând că numele
+fiÈ™ierului de configurare este „.toprcâ€. Cu toate acestea, din cauza
+caracterelor de tabulare încorporate, fiecare dintre aceste linii ar trebui
+să fie precedată de „\fB/bin/echo \-e\fPâ€, nu doar de un simplu „echoâ€, pentru a
+permite interpretarea barelor oblice inverse indiferent de shell\-ul
+utilizat.
+
+.nf
+ "pipe\etFișiere deschise\etlsof \-P \-p %d 2>&1" >> ~/.toprc
+ "file\etInformații NUMA\et/proc/%d/numa_maps" >> ~/.toprc
+ "pipe\etJurnal\ettail \-n200 /var/log/syslog | sort \-Mr" >> ~/.toprc
+.fi
+
+În cazul în care orice intrare de inspectare pe care o creați produce o
+ieșire cu caractere neimprimabile, acestea vor fi afișate fie în notația ^C,
+fie în formatul hexazecimal <FF>, în funcție de valoarea lor. Acest
+lucru este valabil și pentru caracterele de tabulare, care vor fi afișate
+sub forma „^Iâ€. Dacă doriÈ›i o reprezentare mai veridică, orice tabulaÈ›ie
+încorporată trebuie dezvoltată. Exemplul următor ia ceea ce ar fi putut fi
+o intrare „fileâ€, dar foloseÈ™te în schimb o „pipe†pentru a extinde
+tabulatoarele încorporate.
+
+.nf
+ # următorul ar fi conținut „\et†...
+ # file ^I <numele_dvs.> ^I /proc/%d/status
+ # dar acest lucru ar elimina „\et†încorporat ...
+ pipe ^I <numele_dvs.> ^I cat /proc/%d/status | expand \-
+.fi
+
+Notă: Unele programe se pot baza pe \fISIGINT\fP pentru a se încheia. Prin
+urmare, dacă se stabilește o „pipe†precum cea de mai jos, trebuie să se
+utilizeze Ctrl\-C pentru a\-o încheia pentru a se putea revizui rezultatele.
+Aceasta este singura ocazie în care un „^C†nu va încheia de asemenea și
+\*(We.
+
+.nf
+ pipe ^I Trace ^I /usr/bin/strace \-p %d 2>&1
+.fi
+
+În sfârșit, în timp ce intrările de tip „pipe†au fost discutate în termeni
+de conducte și comenzi, nimic nu vă împiedică să includeți și scripturi
+shell. Poate chiar scripturi nou create, concepute special pentru comanda
+interactivă „Yâ€.
+
+De exemplu, pe măsură ce numărul de intrări Inspect crește în timp, rândul
+„Opțiuni:†va fi trunchiat atunci când lățimea ecranului este depășită.
+Acest lucru nu afectează funcționarea decât pentru a face unele selecții
+invizibile. Cu toate acestea, dacă unele alegeri sunt pierdute din cauza
+trunchierii, dar doriți să vedeți mai multe opțiuni, există o soluție simplă
+sugerată mai jos.
+
+.nf
+ Pauză de inspectare la pid ...
+ Utilizați: tastele săgeți stânga/dreapta apoi <Enter> ...
+ Opțiuni: help 1 2 3 4 5 6 7 8 9 10 11 ...
+.fi
+
+Intrările din fișierul de configurare al \*(We vor avea un număr pentru
+elementul „.nameâ€, iar intrarea „help†va identifica un script shell pe care
+l\-ați scris pentru a explica ce înseamnă de fapt aceste selecții
+numerotate. În acest fel, pot fi făcute vizibile mult mai multe alegeri.
+
+.\" ......................................................................
+.SS "6c. Fișier de configurare a SISTEMULUI"
+.\" ----------------------------------------------------------------------
+Acest fișier de configurare reprezintă valorile implicite pentru
+utilizatorii care nu și\-au salvat propriul fișier de configurare. Formatul
+oglindește exact fișierul de configurare personal și poate, de asemenea, să
+includă intrări „de inspectareâ€, aÈ™a cum s\-a explicat mai sus.
+
+Crearea acestuia este un proces simplu.
+
+1. Configurați \*(We în mod corespunzător pentru instalarea dvs. și salvați
+acea configuraÈ›ie cu comanda interactivă „Wâ€.
+
+2. Adăugați și testați toate intrările de „inspectare†dorite.
+
+3. Copiați acest fișier de configurare în directorul /etc/ ca
+„topdefaultrcâ€.
+
+.\" ......................................................................
+.SS "6d. Fișier de restricții ale SISTEMULUI"
+.\" ----------------------------------------------------------------------
+Prezența acestui fișier va influența ce versiune a ecranului de ajutor este
+afișată unui utilizator obișnuit.
+
+Cel mai important, va limita ceea ce utilizatorii obișnuiți au voie să facă
+atunci când \*(We este în funcțiune. Aceștia nu vor putea emite următoarele
+comenzi:
+.nf
+ k Omorârea unei sarcini
+ r Redefinirea valorii de curtoazie (nice) a unei sarcini
+ d sau s Modificarea intervalului de întârziere/dormire
+.fi
+
+Acest fișier de configurare nu este creat de \*(We. Mai degrabă, este creat
+manual È™i plasat în directorul „/etc/†sub numele de „toprcâ€.
+
+Acesta trebuie să aibă exact două linii, așa cum se arată în acest exemplu:
+.nf
+ s # linia 1: comutator de mod securizat
+ 5.0 # linia 2: intervalul de întârziere în secunde
+.fi
+
+.\" ----------------------------------------------------------------------
+.SH "7. VARIABILE DE MEDIU"
+.\" ----------------------------------------------------------------------
+Valoarea stabilită pentru următoarea variabilă este neimportantă, doar
+prezența acesteia.
+
+.IP LIBPROC_HIDE_KERNEL
+Acest lucru va împiedica afișarea oricăror fire de execuție ale nucleului și
+va exclude astfel de procese din numărul de sarcini/fire de execuție din
+Zona de Rezumat.
+
+.\" ----------------------------------------------------------------------
+.SH "8. Exemplu de TRUCURI STUPIDE"
+.\" ----------------------------------------------------------------------
+Multe dintre aceste trucuri funcționează cel mai bine atunci când îi dați
+lui \*(We) un impuls de planificare. Așa că plănuiește să\-l lansezi cu o
+valoare de curtoazie (nice) de „\-10â€, presupunând că ai autoritatea
+necesară.
+
+.\" ......................................................................
+.SS "7a. Magia nucleului"
+.\" ----------------------------------------------------------------------
+.\" sorry, just can't help it -- don't ya love the sound of this?
+.\" ( apparently AM static was a potential concern )
+Pentru aceste trucuri stupide, \*(We are nevoie de modul ecran complet.
+
+.IP \(bu 3
+Interfața cu utilizatorul, prin solicitări și ajutor, implică în mod
+intenționat că intervalul de întârziere este limitat la zecimi de secundă.
+Cu toate acestea, sunteți liber să stabiliți orice întârziere dorită. Dacă
+doriți să vedeți Linux (nucleul) la cea mai bună planificare, încercați o
+întârziere de 0,09 secunde sau mai puțin.
+
+Pentru acest experiment, sub x\-windows deschideți un terminal «xterm» și
+maximizați\-l. Apoi faceți următoarele:
+.nf
+ . stabiliți o creștere a priorității și o mică întârziere prin:
+ nice \-n \-10 \*(We \-d.09
+ . păstrați evidențierea coloanelor sortate Dezactivat
+ pentru a minimiza lungimea căii
+ . activați evidențierea rândului invers pentru accentuare
+ . încercați diferite coloane de sortare (TIME/MEM
+ funcționează bine) și sortarea normală sau inversă
+ pentru a aduce cele mai active procese la vedere
+.fi
+
+Ceea ce veți vedea este un Linux foarte ocupat făcând ceea ce a făcut
+întotdeauna pentru dvs., dar nu a existat niciun program disponibil pentru a
+ilustra acest lucru.
+
+.IP \(bu 3
+Sub un xterm care foloseÈ™te culori „alb\-pe\-negruâ€, în ecranul de asociere a
+culorilor din \*(We stabiliți culoarea sarcinii la negru și asigurați\-vă că
+evidențierea sarcinii este setată la aldin, nu invers. Apoi stabiliți
+intervalul de întârziere la aproximativ 0,3 secunde.
+
+După ce ați adus la vedere cele mai active procese, ceea ce veți vedea sunt
+imaginile fantomatice ale sarcinilor în curs de desfășurare.
+
+.IP \(bu 3
+Ștergeți fișierul rc existent sau creați o legătură simbolică nouă. Porniți
+această nouă versiune, apoi tastați „T†(o cheie secretă, \*(Xt „4c. Comenzi
+în zona de sarcini, SORTAREâ€) urmat de „W†și „qâ€. ÃŽn cele din urmă,
+reporniți programul cu \-d0 (întârziere zero).
+
+Afișajul dvs. va fi reîmprospătat cu o rată de trei ori mai mare decât cea
+din fostul \*(We, un avantaj de viteză de 300%. Pe măsură ce \*(We urcă pe
+scara TIMPULUI, fiți cât de răbdător puteți în timp ce speculați dacă \*(We
+va ajunge vreodată în \*(We.
+
+.\" ......................................................................
+.SS "7b. Ferestre care apar"
+.\" ----------------------------------------------------------------------
+Pentru aceste trucuri stupide, \*(We are nevoie de un mod de afișare
+alternativ.
+
+.IP \(bu 3
+Cu 3 sau 4 afișări de sarcini vizibile, alegeți orice altă fereastră decât
+ultima și dezactivați procesele inactive folosind comutatorul de comandă
+„iâ€. ÃŽn funcÈ›ie de locul în care aÈ›i aplicat „iâ€, uneori mai multe afișări
+de sarcini trec și uneori este ca un acordeon, deoarece top încearcă din
+răsputeri să aloce spațiu.
+
+.IP \(bu 3
+Configurați liniile de sumar ale fiecărei ferestre în mod diferit: una fără
+memorie (`m'); alta fără stări (`t'); poate una fără nimic, doar linia de
+mesaj. Apoi țineți apăsat „a†sau „w†și urmăriți o variație a ferestrelor
+care apar \-\- ferestrele săltărețe.
+
+.IP \(bu 3
+Afișați toate cele 4 ferestre și pentru fiecare, la rândul său, stabiliți
+procesele inactive la Dezactivate folosind comutatorul de comandă „iâ€.
+Tocmai aÈ›i intrat în zona de „sărire extremăâ€.
+
+.\" ......................................................................
+.SS "7c. Fereastra Pasărea Mare"
+.\" ----------------------------------------------------------------------
+Acest truc stupid necesită, de asemenea, modul de afișare alternativ.
+
+.IP \(bu 3
+Afișați toate cele 4 ferestre și asigurați\-vă că 1:Def este fereastra
+„actualăâ€. Apoi, continuaÈ›i să creÈ™teÈ›i dimensiunea ferestrei cu comanda
+interactivă `n' până când toate celelalte afișări de sarcini sunt „împinse
+în afara cuibuluiâ€.
+
+Când toate au fost deplasate, comutați între toate ferestrele
+vizibile/invizibile folosind comutatorul de comandă „_â€. Atunci gândiÈ›i\-vă
+la asta:
+.br
+ \*(We inventează rezultate sau spune cu sinceritate adevărul impus?
+
+.\" ......................................................................
+.SS "7d. Vechiul comutator"
+.\" ----------------------------------------------------------------------
+Acest truc stupid funcționează cel mai bine fără modul de afișare
+alternativă, deoarece justificarea este activă pentru fiecare fereastră.
+
+.IP \(bu 3
+Porniți \*(WE și faceți „COMANDA†ultima coloană afișată (cea mai din
+dreapta). Dacă este necesar, utilizați comanda de comutare „c†pentru a
+afișa liniile de comandă și asigurați\-vă că vizualizarea arborescentă este
+activă cu comanda de comutare „Vâ€.
+
+Apoi utilizați tastele săgeți sus/jos pentru a poziționa afișarea astfel
+încât să fie afișate niște linii de comandă trunchiate („+†în ultima
+poziție). Poate fi necesar să redimensionați „xterm†pentru a produce
+trunchierea.
+
+În cele din urmă, utilizați comanda de comutare „j†pentru a face coloana
+COMANDA justificată la dreapta.
+
+Acum folosiți tasta săgeată dreapta pentru a ajunge la coloana COMANDA.
+Continuând cu tasta săgeată dreapta, urmăriți cu atenție direcția de mers
+pentru liniile de comandă afișate.
+
+.br
+ unele linii se deplasează spre stânga, în timp ce altele se deplasează spre dreapta
+
+ în cele din urmă, toate liniile se vor schimba și se vor muta la dreapta
+
+.\" ----------------------------------------------------------------------
+.SH "9. ERORI"
+.\" ----------------------------------------------------------------------
+Trimiteți rapoartele de eroare la
+.UR procps@freelists.org
+.UE .
+
+
+.\" ----------------------------------------------------------------------
+.SH "10. CONSULTAȚI ȘI"
+.\" ----------------------------------------------------------------------
+\fBfree\fP(1), \fBps\fP(1), \fBuptime\fP(1), \fBatop\fP(1), \fBslabtop\fP(1), \fBvmstat\fP(8),
+\fBw\fP(1)
diff --git a/po-man/ro/uptime.1 b/po-man/ro/uptime.1
new file mode 100644
index 0000000..04d83ac
--- /dev/null
+++ b/po-man/ro/uptime.1
@@ -0,0 +1,76 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH UPTIME 1 "decembrie 2012" procps\-ng "Comenzi utilizator"
+.SH NUME
+uptime \- Indică timpul de când sistemul se află în funcționare.
+.SH REZUMAT
+\fBuptime\fP [\fIopțiuni\fP]
+.SH DESCRIERE
+\fBuptime\fP oferă o afișare pe o singură linie a următoarelor informații. Ora
+curentă, de cât timp funcționează sistemul, câți utilizatori sunt conectați
+în prezent și mediile de încărcare a sistemului pentru ultimele 1, 5 și 15
+minute.
+.PP
+Acestea sunt aceleași informații conținute în linia antetului afișată de
+comanda \fBw\fP(1).
+.PP
+Mediile de încărcare a sistemului reprezintă numărul mediu de procese care
+se află fie într\-o stare rulabilă, fie într\-una neîntreruptibilă. Un proces
+într\-o stare rulabilă fie folosește procesorul, fie așteaptă să folosească
+procesorul. Un proces în stare neîntreruptibilă așteaptă vreun acces de
+In/Ieș, de exemplu, așteaptă accesul la disc. Mediile sunt luate pe cele
+trei intervale de timp. Mediile de încărcare nu sunt normalizate pentru
+numărul de CPU\-uri dintr\-un sistem, așa că o medie de încărcare de 1
+înseamnă că un singur CPU al sistemului este încărcat tot timpul, în timp ce
+pe un sistem cu 4 CPU înseamnă că a fost inactiv 75% din timp.
+.SH OPÈšIUNI
+.TP
+\fB\-p\fP, \fB\-\-pretty\fP
+afișează timpul de funcționare într\-un format amiabil
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+afișează acest mesaj de ajutor
+.TP
+\fB\-s\fP, \fB\-\-since\fP
+sistemul este activat de când; în format aaaa\-mm\-zz HH:MM:SS
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+afișează informațiile despre versiune și iese
+.SH FIȘIERE
+.TP
+\fI/var/run/utmp\fP
+informații despre cine este conectat în prezent
+.TP
+\fI/proc\fP
+informații despre procese
+.SH AUTORI
+\fBuptime\fP a fost scris de
+.UR greenfie@gauss.\:rutgers.\:edu
+Larry
+Greenfield
+.UE
+și
+.UR johnsonm@sunsite.\:unc.\:edu
+Michael K. Johnson
+.UE
+.SH "CONSULTAȚI ȘI"
+\fBps\fP(1), \fBtop\fP(1), \fButmp\fP(5), \fBw\fP(1)
+.SH "RAPORTAREA ERORILOR"
+Trimiteți rapoartele de eroare la
+.UR procps@freelists.org
+.UE
diff --git a/po-man/ro/vmstat.8 b/po-man/ro/vmstat.8
new file mode 100644
index 0000000..dbf5c97
--- /dev/null
+++ b/po-man/ro/vmstat.8
@@ -0,0 +1,188 @@
+.\"
+.\" Copyright (c) 2002-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2012-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1994 Henry Ware <al172@yfn.ysu.edu>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH VMSTAT 8 18.01.2023 procps\-ng "Administrare sistem"
+.SH NUME
+vmstat \- Raportează statisticile memoriei virtuale
+.SH REZUMAT
+\fBvmstat\fP [opțiuni] [\fIîntârziere\fP [\fInumăr\fP]]
+.SH DESCRIERE
+\fBvmstat\fP raportează informații despre procese, memorie, paginare, bloc IO,
+întreruperi, discuri și activitatea CPU.
+.PP
+Primul raport realizat oferă valorile medii de la ultima repornire.
+Rapoartele suplimentare oferă informații cu privire la o perioadă de
+eșantionare cu lungimea \fIîntârziere\fP. Rapoartele de proces și de memorie
+sunt instantanee în ambele cazuri.
+.SH OPÈšIUNI
+.TP
+\fIîntârziere\fP
+\fIîntârzierea\fP dintre actualizări în secunde. Dacă nu este specificată
+\fIîntârzierea\fP, este afișat un singur raport cu valorile medii de la
+pornire.
+.TP
+\fInumăr\fP
+Numărul de actualizări. În absența \fInumărului\fP, când \fIîntârzierea\fP este
+definită, implicit este infinit.
+.TP
+\fB\-a\fP, \fB\-\-active\fP
+Afișează memoria activă și inactivă pentru nucleele cu versiunea 2.5.41 sau
+ulterioară.
+.TP
+\fB\-f\fP, \fB\-\-forks\fP
+Opțiunea \fB\-f\fP afișează numărul de bifurcări de la pornire. Aceasta include
+apelurile de sistem fork(), vfork() și clone(), și este echivalent cu
+numărul total de sarcini create. Fiecare proces este reprezentat de una sau
+mai multe sarcini, în funcție de utilizarea firului. Această afișare nu se
+repetă.
+.TP
+\fB\-m\fP, \fB\-\-slabs\fP
+AfiÈ™ează informaÈ›iile „ slabâ€.
+.TP
+\fB\-n\fP, \fB\-\-one\-header\fP
+Afișează antetul doar o singură dată, nu periodic.
+.TP
+\fB\-s\fP, \fB\-\-stats\fP
+Afișează un tabel cu diverse contoare de evenimente și statistici de
+memorie. Acest tabel nu se repetă.
+.TP
+\fB\-d\fP, \fB\-\-disk\fP
+Afișează statisticile discului (pentru nucleele cu versiunea 2.5.70 sau mai
+recentă).
+.TP
+\fB\-D\fP, \fB\-\-disk\-sum\fP
+Afișează câteva statistici rezumate despre activitatea discului.
+.TP
+\fB\-p\fP, \fB\-\-partition\fP \fIpartiția\fP
+Afișează statistici detaliate despre partiții (pentru nucleele cu versiunea
+2.5.70 sau mai recentă).
+.TP
+\fB\-S\fP, \fB\-\-unit\fP \fIunitatea_de_măsură\fP
+Comută unitățile de măsură de la ieșire, între 1000 (\fIk\fP), 1024 (\fIK\fP),
+1000000 (\fIm\fP) sau 1048576 (\fIM\fP) octeți. Rețineți că acest lucru nu
+modifică câmpurile swap (sin/sieș) sau bloc (bin/bieș).
+.TP
+\fB\-t\fP, \fB\-\-timestamp\fP
+Adaugă marcaj de timp la fiecare linie
+.TP
+\fB\-w\fP, \fB\-\-wide\fP
+Mod de ieșire larg (util pentru sistemele cu o cantitate mai mare de
+memorie, unde modul de ieșire implicit suferă de întreruperi nedorite ale
+coloanelor). Ieșirea este mai mare de 80 de caractere pe linie.
+.TP
+\fB\-y\fP, \fB\-\-no\-first\fP
+Omite primul raport cu statistici de la pornirea sistemului.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Afișează informațiile despre versiune și iese.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Afișează mesajul de ajutor și iese.
+.PD
+.SH "DESCRIEREA CÂMPULUI PENTRU MODUL VM"
+.SS Procese
+.nf
+r: Numărul de procese care pot fi executate (în rulare sau în așteptare pentru timpul de rulare).
+b: Numărul de procese blocate care așteaptă accesul de In/Ieș pentru a finaliza.
+.fi
+.SS Memorie
+Acestea sunt afectate de opțiunea \fB\-\-unit\fP.
+.nf
+swpd: cantitatea de memorie swap utilizată.
+liberă: cantitatea de memorie neutilizată.
+buff: cantitatea de memorie utilizată ca memorie tampon.
+cache: cantitatea de memorie utilizată ca zonă de prestocare.
+inact: cantitatea de memorie inactivă. (opțiunea \fB\-a\fP)
+activă: cantitatea de memorie activă. (opțiunea \fB\-a\fP)
+.fi
+.SS Swap
+Acestea sunt afectate de opțiunea \fB\-\-unit\fP.
+.nf
+sin: Cantitatea de memorie de interschimb citită de pe disc (/s).
+sieș: Cantitatea de memorie de interschimb scrisă pe disc (/s).
+.fi
+.SS In/IeÈ™
+.nf
+bin: Kibiocteți preluați de la un dispozitiv bloc (Kio/s).
+bieș: Kibiocteți transferați la un dispozitiv bloc (Kio/s).
+.fi
+.SS Sistem
+.nf
+in: Numărul de întreruperi pe secundă, inclusiv ceasul.
+cs: Numărul de schimbări de context pe secundă.
+.fi
+.SS CPU
+Acestea sunt procente din timpul total al procesorului.
+.nf
+us: Timpul petrecut rulând cod non\-nucleu. (timpul utilizatorului, inclusiv timpul „niceâ€)
+sy: Timpul petrecut rulând codul nucleului (timpul sistemului)
+id: Timpul petrecut inactiv. Înainte de versiunea 2.5.41 a nucleului Linux, acesta includea timpul de așteptare IO.
+wa: Timpul petrecut în așteptarea In/Ieș Înainte de versiunea 2.5.41 a nucleului Linux, era inclus în timpul petrecut inactiv (idle).
+st: Timpul furat de la o mașină virtuală. Înainte de versiunea 2.6.11 a nucleului Linux, necunoscut.
+gu: Timpul petrecut rulând codul de invitat KVM (timpul pentru invitat, inclusiv timpul „nice†al invitatului).
+.fi
+.SH "DESCRIEREA CÂMPULUI PENTRU MODUL DISC"
+.SS Citiri
+.nf
+total: Numărul total de citiri finalizate cu succes
+merged: citiri grupate (rezultând o singură In/Ieș)
+sectors: Numărul de sectoare citite cu succes
+ms: numărul de milisecunde petrecute citind
+.fi
+.SS Scrieri
+.nf
+total: Numărul total de scrieri finalizate cu succes
+merged: scrieri grupate (rezultând o singură In/Ieș)
+sectors: Numărul de sectoare scrise cu succes
+ms: numărul de milisecunde petrecute scriind
+.fi
+.SS In/IeÈ™
+.nf
+cur: In/Ieș în curs de desfășurare
+s: secunde petrecute pentru In/IeÈ™
+.fi
+.SH "DESCRIEREA CÂMPULUI PENTRU MODUL DE PARTIȚIE DISC"
+.nf
+reads: Numărul total de citiri efectuate pentru această partiție
+read sectors: Numărul total de sectoare citite pentru această partiție
+writes : Numărul total de scrieri efectuate pentru această partiție
+requested writes: Numărul total de sectoare scrise pentru această partiție
+.fi
+.SH "DESCRIEREA CÂMPULUI PENTRU MODUL SLAB"
+Modul Slab arată statisticile pentru fiecare „slabâ€, pentru mai multe
+informații despre aceste informații consultați \fBslabinfo\fP(5)
+.PP
+.nf
+cache: Nume cache
+num: Numărul de obiecte active în prezent
+total: Numărul total de obiecte disponibile
+dim.: Dimensiunea fiecărui obiect
+pagini: Numărul de pagini cu cel puțin un obiect activ
+.fi
+.SH NOTE
+\fBvmstat\fP necesită acces de citire la fișierele de sub \fI/proc\fP. \fB\-m\fP
+necesită acces de citire la \fI/proc/slabinfo\fP, care poate să nu fie
+disponibil pentru utilizatorii standard. Opțiunile de montare pentru
+\fI/proc\fP, cum ar fi \fIsubset=pid\fP, pot avea, de asemenea, un impact asupra a
+ceea ce este vizibil.
+.SH "CONSULTAȚI ȘI"
+\fBfree\fP(1), \fBiostat\fP(1), \fBmpstat\fP(1), \fBps\fP(1), \fBsar\fP(1), \fBtop\fP(1),
+\fBslabinfo\fP(5)
+.SH "RAPORTAREA ERORILOR"
+Trimiteți rapoartele de eroare la
+.UR procps@freelists.org
+.UE
diff --git a/po-man/ro/w.1 b/po-man/ro/w.1
new file mode 100644
index 0000000..31a8150
--- /dev/null
+++ b/po-man/ro/w.1
@@ -0,0 +1,103 @@
+.\"
+.\" Copyright (c) 2009-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2015-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2012-2013 Jaromir Capik <jcapik@redhat.com>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2004 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH W 1 15.01.2023 procps\-ng "Comenzi utilizator"
+.SH NUME
+w \- Afișează cine este conectat și ce face fiecare.
+.SH REZUMAT
+\fBw\fP [\fIopțiuni\fP] [\fIutilizator\fP]
+.SH DESCRIERE
+\fBw\fP afișează informații despre utilizatorii aflați în prezent conectați la
+mașină și despre procesele acestora. Antetul arată, în această ordine, ora
+curentă, de cât timp funcționează sistemul, câți utilizatori sunt conectați
+în prezent și mediile de încărcare a sistemului pentru ultimele 1, 5 și 15
+minute.
+.PP
+Următoarele intrări sunt afișate pentru fiecare utilizator: numele de
+conectare, numele tty, gazda la distanță, timpul de conectare, timpul de
+inactivitate, JCPU, PCPU și linia de comandă a procesului curent.
+.PP
+Timpul JCPU este timpul folosit de toate procesele atașate la tty. Nu
+include lucrările din fundal anterioare, dar include lucrările din fundal
+care rulează în prezent.
+.PP
+Timpul PCPU este timpul utilizat de procesul curent, numit în câmpul „ceâ€.
+.SH "OPÈšIUNI DE LINIE DE COMANDÄ‚"
+.TP
+\fB\-h\fP, \fB\-\-no\-header\fP
+Nu afișează antetul.
+.TP
+\fB\-u\fP, \fB\-\-no\-current\fP
+Ignoră numele de utilizator în timp ce determină procesul curent și timpii
+CPU. Pentru a demonstra acest lucru, executați comanda \fBsu\fP și apoi
+comanda \fBw\fP și comanda \fBw \-u\fP.
+.TP
+\fB\-s\fP, \fB\-\-short\fP
+Utilizează formatul scurt. Nu afișează ora de conectare, timpii JCPU sau
+PCPU.
+.TP
+\fB\-f\fP, \fB\-\-from\fP
+Comută afișarea/neafișarea câmpului \fBdin\fP (numele gazdei de la distanță).
+Valoarea implicită, așa cum a fost lansată, este ca câmpul \fBdin\fP să nu fie
+afișat, deși administratorul de sistem sau întreținătorul distribuției poate
+să fi compilat o versiune în care câmpul \fBdin\fP este afișat implicit.
+.TP
+\fB\-\-help\fP
+Afișează acest mesaj de ajutor.
+.TP
+\fB\-i\fP, \fB\-\-ip\-addr\fP
+Afișează adresa IP în loc de numele gazdei pentru câmpul \fBDIN\fP.
+.TP
+\fB\-p\fP, \fB\-\-pids\fP
+Afișează pid\-ul procesului de autentificare sau al procesului „what†în
+câmpul „whatâ€.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Afișați informațiile despre versiune.
+.TP
+\fB\-o\fP, \fB\-\-old\-style\fP
+Afișare în stil vechi. Imprimă spațiu liber pentru timpi de inactivitate
+mai mici de un minut.
+.TP
+\fButilizator\fP
+Afișează informații numai despre utilizatorul specificat.
+.SH "VARIABILE DE MEDIU"
+.TP
+PROCPS_USERLEN
+Suprascrie lățimea implicită a coloanei numelui de „utilizatorâ€. Valoarea
+implicită este 8.
+.TP
+PROCPS_FROMLEN
+Suprascrie lățimea implicită a coloanei „dinâ€. Valoarea implicită este 16.
+.SH FIȘIERE
+.TP
+\fI/var/run/utmp\fP
+informații despre cine este conectat în prezent
+.TP
+\fI/proc\fP
+informații despre procese
+.SH "CONSULTAȚI ȘI"
+\fBfree\fP(1), \fBps\fP(1), \fBtop\fP(1), \fBuptime\fP(1), \fButmp\fP(5), \fBwho\fP(1)
+.SH AUTORI
+\fBw\fP a fost aproape în întregime rescris de Charles Blake pe baza unei
+versiuni a lui Larry Greenfield <\fIgreenfie@gauss.rutgers.edu\fP> și
+Michael K. Johnson < \fIjohnsonm@redhat .com\fP>.
+.SH "RAPORTAREA ERORILOR"
+Trimiteți rapoartele de eroare la
+.UR procps@freelists.org
+.UE
diff --git a/po-man/ro/watch.1 b/po-man/ro/watch.1
new file mode 100644
index 0000000..7f5fa33
--- /dev/null
+++ b/po-man/ro/watch.1
@@ -0,0 +1,206 @@
+.\"
+.\" Copyright (c) 2009-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2018-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2003 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH WATCH 1 17.01.2023 procps\-ng "Comenzi utilizator"
+.SH NUME
+watch \- execut\- un program periodic, afișând ieșirea pe întreg ecranul
+.SH REZUMAT
+\fBwatch\fP [\fIopțiuni\fP] \fIcomanda\fP
+.SH DESCRIERE
+\fBwatch\fP rulează \fIcomanda\fP în mod repetat, afișând rezultatul și erorile
+(primul conținut al ecranului). Acest lucru vă permite să urmăriți
+modificarea ieșirii programului în timp. În mod implicit, \fIcomanda\fP este
+rulată la fiecare 2 secunde și \fBwatch\fP va rula până când este întrerupt.
+.SH OPÈšIUNI
+.TP
+\fB\-b\fP, \fB\-\-beep\fP
+Emite un bip dacă comanda are o ieșire diferită de zero.
+.TP
+\fB\-c\fP, \fB\-\-color\fP
+Interpretează secvențele de culori și stil ANSI.
+.TP
+\fB\-C\fP, \fB\-\-no\-color\fP
+Nu interpretează secvențele de culori și stil ANSI.
+.TP
+\fB\-d\fP, \fB\-\-differences\fP[=\fIpermanent\fP]
+Evidențiază diferențele dintre actualizările succesive. Dacă este specificat
+argumentul opțional \fIpermanent\fP, atunci \fBwatch\fP va afișa toate
+modificările de la prima iterație.
+.TP
+\fB\-e\fP, \fB\-\-errexit\fP
+Îngheață actualizările la producerea unei erori la ieșirea comenzii și iese
+după apăsarea unei taste.
+.TP
+\fB\-g\fP, \fB\-\-chgexit\fP
+Iese, când ieșirea \fIcomenzii\fP se modifică.
+.TP
+\fB\-n\fP, \fB\-\-interval\fP \fIsecunde\fP
+Specifică intervalul de actualizare. Comanda nu va permite un interval mai
+rapid de 0,1 secunde, în care valorile mai mici sunt convertite. Ambele
+semne de separare a zecimalelor „.’ È™i „,â€, funcÈ›ionează pentru orice
+configurare regională. Variabila de mediu \fBWATCH_INTERVAL\fP, poate fi
+utilizată pentru a configura în mod persistent un interval care nu este
+implicit (urmând aceleași reguli și formatare).
+.TP
+\fB\-p\fP, \fB\-\-precise\fP
+Face ca \fBwatch\fP să încerce să ruleze \fIcomanda\fP la fiecare \fB\-\-interval\fP
+\fIsecunde\fP. Încercați\-o cu \fBntptime\fP (dacă este prezent) și observați cum
+fracțiile de secunde rămân (aproape) aceleași, spre deosebire de modul
+normal în care acestea cresc continuu.
+.TP
+\fB\-q\fP, \fB\-\-equexit\fP <cycles>
+Iese, când ieșirea \fIcomenzii\fP nu se modifică pentru numărul de cicluri dat.
+.TP
+\fB\-r\fP, \fB\-\-no\-rerun\fP
+Nu rulează programul la redimensionarea terminalului, ieșirea programului va
+apărea din nou la următoarea rulare obișnuită.
+.TP
+\fB\-t\fP, \fB\-\-no\-title\fP
+Dezactivează antetul care afișează intervalul, comanda și ora curentă în
+partea de sus a afișajului, precum și următoarea linie goală.
+.TP
+\fB\-w\fP, \fB\-\-no\-wrap\fP
+Dezactivează încadrarea liniilor (prin împărțirea lor la lățimea
+ferestrei). Liniile lungi vor fi trunchiate în loc să fie transferate pe
+linia următoare.
+.TP
+\fB\-x\fP, \fB\-\-exec\fP
+Pasează \fIcomanda\fP la \fBexec\fP(2) în loc de la \fBsh \-c\fP, ceea ce reduce
+nevoia de a folosi ghilimele suplimentare pentru a obține efectul dorit.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Afișează acest mesaj de ajutor.
+.TP
+\fB\-v\fP, \fB\-\-version\fP
+Afișează informațiile despre versiune și iese.
+.SH "STARE DE IEȘIRE"
+.PP
+.RS
+.PD 0
+.TP
+\fB0\fP
+Succes.
+.TP
+\fB1\fP
+Diverse eșecuri.
+.TP
+\fB2\fP
+Bifurcarea procesului de monitorizare a eșuat.
+.TP
+\fB3\fP
+Înlocuirea ieșirii standard a procesului\-copil din partea de scriere a
+conductei a eșuat.
+.TP
+\fB4\fP
+Execuția comenzii a eșuat.
+.TP
+\fB5\fP
+Închiderea conductei de scriere a procesului\-copil a eșuat.
+.TP
+\fB7\fP
+O încercare de a crea o conductă IPC a eșuat.
+.TP
+\fB8\fP
+Obținerea valorii de returnare a procesului\-copil cu \fBwaitpid\fP(2) a eșuat
+sau comanda a ieșit din eroare.
+.TP
+\fBaltul\fP
+«watch» va transmite starea de ieșire a comenzii ca stare de ieșire a
+procesului\-copil.
+.SH "VARIABILE DE MEDIU"
+Comportamentul lui \fBwatch\fP este afectat de următoarele variabile de mediu.
+
+.TP
+\fBWATCH_INTERVAL\fP
+Intervalul de actualizare, urmează aceleași reguli ca și opțiunea
+\fB\-\-interval\fP din linia de comandă.
+.sp
+.SH NOTE
+Se utilizează procesarea opțiunii POSIX (adică procesarea opțiunii se
+oprește la primul argument care nu este opțiunea). Aceasta înseamnă că
+opțiunile de după \fIcomandă\fP nu vor fi interpretate de \fBwatch\fP.
+.sp
+.SH ERORI
+După redimensionarea ferestrei terminalului, datele nu vor fi reformatate
+corespunzător până la următoarea actualizare programată. Orice evidențiere
+obținută cu opțiunea \fB\-\-differences\fP va fi de asemenea pierdută. Atunci
+când se utilizează opțiunea \fB\-\-no\-rerun\fP, nu va fi vizibilă nicio ieșire.
+
+Caracterele care nu se imprimă sunt eliminate din ieșirea
+programului. Utilizați \fBcat \-v\fP ca parte a unei secvențe de comandă creată
+cu caracterul conductă (|) dacă doriți să le vedeți.
+
+Combinația de caractere care ar fi trebuit să fie afișată în ultima coloană
+de pe ecran poate să fie afișată cu o coloană mai devreme sau să nu fie
+afișată deloc.
+
+Combinațiile de caractere nu sunt niciodată considerate diferite în modul
+\fB\-\-differences\fP. Sunt luate în considerare doar caracterele de bază.
+
+Liniile goale care urmează imediat după o linie care se termină în ultima
+coloană nu sunt afișate.
+
+Modul \fB\-\-precise\fP nu are încă funcții de sincronizare pentru a compensa o
+\fIcomandă\fP al cărei timp de execuție este mai mare de \fB\-\-interval\fP
+\fIsecunde\fP. \fBwatch\fP poate ajunge, de asemenea, într\-o stare în care să
+declanșeze în rafală cât mai multe execuții ale \fIcomenzii\fP pentru a „prinde
+din urmă†execuțiile anterioare care rulează mai mult decât \fB\-\-interval\fP
+(de exemplu, \fBnetstat\fP(8) luând ani de zile într\-o căutare DNS).
+.sp
+.SH EXEMPLE
+.PP
+Pentru a urmări corespondența, ați putea rula comanda:
+.IP
+watch \-n 60 from
+.PP
+Pentru a urmări conținutul modificării unui director, puteți utiliza
+următoarea comandă:
+.IP
+watch \-d ls \-l
+.PP
+Dacă sunteÈ›i interesat doar de fiÈ™ierele deÈ›inute de utilizatorul „nicuâ€,
+ați putea folosi:
+.IP
+watch \-d 'ls \-l | fgrep nicu'
+.PP
+Pentru a vedea rezultatul folosirii ghilimelelor, încercați următoarea
+comandă:
+.IP
+watch echo $$
+.br
+watch echo '$$'
+.br
+watch echo "'"'$$'"'"
+.PP
+Pentru a vedea rezultatul sincronizării precise, încercați să adăugați
+opțiunea \fB\-p\fP la următoarea comandă:
+.IP
+watch \-n 10 sleep 1
+.PP
+Puteți urmări ca administratorul dumneavoastră să instaleze cel mai recent
+nucleu cu ajutorul comenzii:
+.IP
+watch uname \-r
+.PP
+(Rețineți că \fB\-p\fP nu este garantat să funcționeze la reporniri, mai ales
+din cauza a \fBntpdate\fP (dacă este prezent) sau a altor mecanisme de
+schimbare a timpului de pornire)
+.sp
+.SH "RAPORTAREA ERORILOR"
+Trimiteți rapoartele de eroare la
+.UR procps@freelists.org
+.UE
diff --git a/po-man/sv.po b/po-man/sv.po
new file mode 100644
index 0000000..d85528b
--- /dev/null
+++ b/po-man/sv.po
@@ -0,0 +1,15049 @@
+# Swedish translation of procps-ng-man.
+# Copyright © 2017, 2018, 2021, 2022, 2023 Free Software Foundation, Inc.
+# This file is distributed under the same license as the procps-ng package.
+#
+# Göran Uddeborg <goeran@uddeborg.se>, 2017, 2018, 2019, 2020, 2021, 2022, 2023.
+#
+# $Id: procps-ng-man.po,v 1.25 2023-08-23 21:38:33+02 göran Exp $
+msgid ""
+msgstr ""
+"Project-Id-Version: procps-ng-man 4.0.4-rc1\n"
+"Report-Msgid-Bugs-To: Procps list <procps@freelists.org>\n"
+"POT-Creation-Date: 2023-08-19 17:38+1000\n"
+"PO-Revision-Date: 2023-08-23 21:38+0200\n"
+"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
+"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+
+#. type: TH
+#: ../man/free.1:14
+#, no-wrap
+msgid "FREE"
+msgstr "FREE"
+
+#. type: TH
+#: ../man/free.1:14
+#, no-wrap
+msgid "2023-05-02"
+msgstr "2023-05-02"
+
+#. type: TH
+#: ../man/free.1:14 ../man/kill.1:12 ../man/pgrep.1:13 ../man/pmap.1:19
+#: ../man/pwdx.1:12 ../man/skill.1:12 ../man/slabtop.1:14 ../man/sysctl.8:14
+#: ../man/sysctl.conf.5:13 ../man/tload.1:12 ../man/uptime.1:13
+#: ../man/vmstat.8:13 ../man/w.1:14 ../man/watch.1:13 ../man/ps.1:13
+#: ../man/top.1:62
+#, no-wrap
+msgid "procps-ng"
+msgstr "procps-ng"
+
+#. type: TH
+#: ../man/free.1:14 ../man/kill.1:12 ../man/pgrep.1:13 ../man/pidof.1:13
+#: ../man/pmap.1:19 ../man/pwdx.1:12 ../man/skill.1:12 ../man/slabtop.1:14
+#: ../man/tload.1:12 ../man/uptime.1:13 ../man/w.1:14 ../man/watch.1:13
+#: ../man/ps.1:13 ../man/top.1:62
+#, no-wrap
+msgid "User Commands"
+msgstr "Användarkommandon"
+
+#. type: SH
+#: ../man/free.1:15 ../man/kill.1:13 ../man/pgrep.1:14 ../man/pidof.1:14
+#: ../man/pmap.1:20 ../man/pwdx.1:13 ../man/skill.1:13 ../man/slabtop.1:15
+#: ../man/sysctl.8:15 ../man/sysctl.conf.5:14 ../man/tload.1:13
+#: ../man/uptime.1:14 ../man/vmstat.8:14 ../man/w.1:15 ../man/watch.1:14
+#: ../man/ps.1:27 ../man/top.1:67 ../man/procps.3:15 ../man/procps_misc.3:15
+#: ../man/procps_pids.3:15
+#, no-wrap
+msgid "NAME"
+msgstr "NAMN"
+
+#. type: Plain text
+#: ../man/free.1:17
+msgid "free - Display amount of free and used memory in the system"
+msgstr "free — Visa mängden fritt och använt minne i systemet"
+
+#. type: SH
+#: ../man/free.1:17 ../man/kill.1:15 ../man/pgrep.1:16 ../man/pidof.1:16
+#: ../man/pmap.1:22 ../man/pwdx.1:15 ../man/skill.1:15 ../man/slabtop.1:17
+#: ../man/sysctl.8:17 ../man/tload.1:15 ../man/uptime.1:16 ../man/vmstat.8:16
+#: ../man/w.1:17 ../man/watch.1:16 ../man/ps.1:29 ../man/top.1:72
+#: ../man/procps.3:18 ../man/procps_misc.3:17 ../man/procps_pids.3:18
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "SYNOPSIS"
+
+#. type: Plain text
+#: ../man/free.1:20
+msgid "B<free> [I<options>]"
+msgstr "B<free> [I<flaggor>]"
+
+#. type: SH
+#: ../man/free.1:20 ../man/kill.1:18 ../man/pgrep.1:25 ../man/pidof.1:30
+#: ../man/pmap.1:25 ../man/skill.1:25 ../man/slabtop.1:20 ../man/sysctl.8:23
+#: ../man/sysctl.conf.5:16 ../man/tload.1:18 ../man/uptime.1:19
+#: ../man/vmstat.8:20 ../man/w.1:20 ../man/watch.1:19 ../man/ps.1:31
+#: ../man/ps.1:1002 ../man/top.1:77 ../man/procps.3:67 ../man/procps_misc.3:49
+#: ../man/procps_pids.3:61
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "BESKRIVNING"
+
+#. type: Plain text
+#: ../man/free.1:26
+msgid "B<free> displays the total amount of free and used physical and swap memory in the system, as well as the buffers and caches used by the kernel. The information is gathered by parsing /proc/meminfo. The displayed columns are:"
+msgstr "B<free> visar den totala mängden fritt och använt fysiskt minne och växlingsminne i systemet, liksom buffertarna och cacharna som används av kärnan. Informationen samlas in genom att tolka /proc/meminfo. De visade kolumnerna är:"
+
+#. type: TP
+#: ../man/free.1:26
+#, no-wrap
+msgid "B<total>"
+msgstr "B<totalt>"
+
+#. type: Plain text
+#: ../man/free.1:30
+msgid "Total usable memory (MemTotal and SwapTotal in /proc/meminfo). This includes the physical and swap memory minus a few reserved bits and kernel binary code."
+msgstr "Totalt användbart minne (MemTotal och SwapTotal i /proc/meminfo). Detta inkluderar det fysiska minnet och växlingsminnet mines några få reserverade bitar och kärnans binärkod."
+
+#. type: TP
+#: ../man/free.1:30
+#, no-wrap
+msgid "B<used>"
+msgstr "B<använt>"
+
+#. type: Plain text
+#: ../man/free.1:33
+msgid "Used or unavailable memory (calculated as B<total> - B<available>)"
+msgstr "Använt eller otillgängligt minne (beräknat som B<totalt> - B<tillgängligt>)"
+
+#. type: TP
+#: ../man/free.1:33
+#, no-wrap
+msgid "B<free>"
+msgstr "B<fritt>"
+
+#. type: Plain text
+#: ../man/free.1:36
+msgid "Unused memory (MemFree and SwapFree in /proc/meminfo)"
+msgstr "Oanvänt minne (MemFree och SwapFree i /proc/meminfo)"
+
+#. type: TP
+#: ../man/free.1:36
+#, no-wrap
+msgid "B<shared>"
+msgstr "B<delat>"
+
+#. type: Plain text
+#: ../man/free.1:39
+msgid "Memory used (mostly) by tmpfs (Shmem in /proc/meminfo)"
+msgstr "Minne använt (huvudsakligen) av tmpfs (Shmem i /proc/meminfo)"
+
+#. type: TP
+#: ../man/free.1:39
+#, no-wrap
+msgid "B<buffers>"
+msgstr "B<buffertar>"
+
+#. type: Plain text
+#: ../man/free.1:42
+msgid "Memory used by kernel buffers (Buffers in /proc/meminfo)"
+msgstr "Minne använt av kärnans buffertar (Buffers i /proc/meminfo)"
+
+#. type: TP
+#: ../man/free.1:42
+#, no-wrap
+msgid "B<cache>"
+msgstr "B<cache>"
+
+#. type: Plain text
+#: ../man/free.1:45
+msgid "Memory used by the page cache and slabs (Cached and SReclaimable in /proc/meminfo)"
+msgstr "Minne använt av sidcachen och skivor (Cached och SReclaimable i /proc/meminfo)"
+
+#. type: TP
+#: ../man/free.1:45
+#, no-wrap
+msgid "B<buff/cache>"
+msgstr "B<buff/cache>"
+
+#. type: Plain text
+#: ../man/free.1:48
+msgid "Sum of B<buffers> and B<cache>"
+msgstr "Summan av B<buffertar> och B<cache>"
+
+#. type: TP
+#: ../man/free.1:48
+#, no-wrap
+msgid "B<available>"
+msgstr "B<tillgängligt>"
+
+#. type: Plain text
+#: ../man/free.1:57
+msgid "Estimation of how much memory is available for starting new applications, without swapping. Unlike the data provided by the B<cache> or B<free> fields, this field takes into account page cache and also that not all reclaimable memory slabs will be reclaimed due to items being in use (MemAvailable in /proc/meminfo, available on kernels 3.14, emulated on kernels 2.6.27+, otherwise the same as B<free>)"
+msgstr "Uppskattning av hur mycket minne som är tillgängligt för att starta nya program, utan att börja växla. Till skillnad mot data som tillhandahålls av fälten B<cache> eller B<fritt> tar detta fält hänsyn till sidcachen och även att inte alla återvinningsbara minnesskivor kommer återvinnas på grund av saker som används (MemAvailable i /proc/meminfo, tillgängligt i kärnan 3.14, emulerat i kärnor 2.6.27+, annars samma som B<fritt>)"
+
+#. type: SH
+#: ../man/free.1:57 ../man/kill.1:34 ../man/pgrep.1:53 ../man/pidof.1:34
+#: ../man/pmap.1:29 ../man/pwdx.1:18 ../man/skill.1:42 ../man/slabtop.1:25
+#: ../man/tload.1:25 ../man/uptime.1:36 ../man/vmstat.8:29 ../man/watch.1:26
+#, no-wrap
+msgid "OPTIONS"
+msgstr "FLAGGOR"
+
+#. type: TP
+#: ../man/free.1:58
+#, no-wrap
+msgid "B<-b>, B<--bytes>"
+msgstr "B<-b>, B<--bytes>"
+
+#. type: Plain text
+#: ../man/free.1:61
+msgid "Display the amount of memory in bytes."
+msgstr "Visa mängden minne i byte."
+
+#. type: TP
+#: ../man/free.1:61
+#, no-wrap
+msgid "B<-k>, B<--kibi>"
+msgstr "B<-k>, B<--kibi>"
+
+#. type: Plain text
+#: ../man/free.1:64
+msgid "Display the amount of memory in kibibytes. This is the default."
+msgstr "Visa mängden minne i kibibyte. Detta är standardvärdet."
+
+#. type: TP
+#: ../man/free.1:64
+#, no-wrap
+msgid "B<-m>, B<--mebi>"
+msgstr "B<-m>, B<--mebi>"
+
+#. type: Plain text
+#: ../man/free.1:67
+msgid "Display the amount of memory in mebibytes."
+msgstr "Visa mängden minne i mebibyte."
+
+#. type: TP
+#: ../man/free.1:67
+#, no-wrap
+msgid "B<-g>, B<--gibi>"
+msgstr "B<-g>, B<--gibi>"
+
+#. type: Plain text
+#: ../man/free.1:70
+msgid "Display the amount of memory in gibibytes."
+msgstr "Visa mängden minne i gibibyte."
+
+#. type: TP
+#: ../man/free.1:70
+#, no-wrap
+msgid "B<--tebi>"
+msgstr "B<--tebi>"
+
+#. type: Plain text
+#: ../man/free.1:73
+msgid "Display the amount of memory in tebibytes."
+msgstr "Visa mängden minne i tebibyte."
+
+#. type: TP
+#: ../man/free.1:73
+#, no-wrap
+msgid "B<--pebi>"
+msgstr "B<--pebi>"
+
+#. type: Plain text
+#: ../man/free.1:76
+msgid "Display the amount of memory in pebibytes."
+msgstr "Visa mängden minne i pebibyte."
+
+#. type: TP
+#: ../man/free.1:76
+#, no-wrap
+msgid "B<--kilo>"
+msgstr "B<--kilo>"
+
+#. type: Plain text
+#: ../man/free.1:79
+msgid "Display the amount of memory in kilobytes. Implies --si."
+msgstr "Visa mängden minne i kilobyte. Implicerar --si."
+
+#. type: TP
+#: ../man/free.1:79
+#, no-wrap
+msgid "B<--mega>"
+msgstr "B<--mega>"
+
+#. type: Plain text
+#: ../man/free.1:82
+msgid "Display the amount of memory in megabytes. Implies --si."
+msgstr "Visa mängden minne i megabyte. Implicerar --si."
+
+#. type: TP
+#: ../man/free.1:82
+#, no-wrap
+msgid "B<--giga>"
+msgstr "B<--giga>"
+
+#. type: Plain text
+#: ../man/free.1:85
+msgid "Display the amount of memory in gigabytes. Implies --si."
+msgstr "Visa mängden minne i gigabyte. Implicerar --si."
+
+#. type: TP
+#: ../man/free.1:85
+#, no-wrap
+msgid "B<--tera>"
+msgstr "B<--tera>"
+
+#. type: Plain text
+#: ../man/free.1:88
+msgid "Display the amount of memory in terabytes. Implies --si."
+msgstr "Visa mängden minne i terabyte. Implicerar --si."
+
+#. type: TP
+#: ../man/free.1:88
+#, no-wrap
+msgid "B<--peta>"
+msgstr "B<--peta>"
+
+#. type: Plain text
+#: ../man/free.1:91
+msgid "Display the amount of memory in petabytes. Implies --si."
+msgstr "Visa mängden minne i petabyte. Implicerar --si."
+
+#. type: TP
+#: ../man/free.1:91
+#, no-wrap
+msgid "B<-h>, B<--human>"
+msgstr "B<-h>, B<--human>"
+
+#. type: Plain text
+#: ../man/free.1:95
+msgid "Show all output fields automatically scaled to shortest three digit unit and display the units of print out. Following units are used."
+msgstr "Visa alla utmatningsfält automatiskt skalade till den kortaste enheten med tre siffror och visa enheterna i utskriften. Följande enheter används."
+
+#. type: Plain text
+#: ../man/free.1:103
+#, no-wrap
+msgid ""
+" B = bytes\n"
+" Ki = kibibyte\n"
+" Mi = mebibyte\n"
+" Gi = gibibyte\n"
+" Ti = tebibyte\n"
+" Pi = pebibyte\n"
+msgstr ""
+" B = byte\n"
+" Ki = kibibyte\n"
+" Mi = mebibyte\n"
+" Gi = gibibyte\n"
+" Ti = tebibyte\n"
+" Pi = pebibyte\n"
+
+#. type: Plain text
+#: ../man/free.1:107
+msgid "If unit is missing, and you have exbibyte of RAM or swap, the number is in tebibytes and columns might not be aligned with header."
+msgstr "Om en enhet saknas, och du har exbibyte med RAM eller växlingsutrymme är talet i tebibyte och kolumnerna är inte nödvändigtvis justerade med rubriken."
+
+#. type: TP
+#: ../man/free.1:107 ../man/vmstat.8:89
+#, no-wrap
+msgid "B<-w>, B<--wide>"
+msgstr "B<-w>, B<--wide>"
+
+#. type: Plain text
+#: ../man/free.1:112
+msgid "Switch to the wide mode. The wide mode produces lines longer than 80 characters. In this mode B<buffers> and B<cache> are reported in two separate columns."
+msgstr "Byt till brett läge. Det breda läget skapar rader som är längre än 80 tecken. I detta läge rapporteras B<buffertar> och B<cache> i två separata kolumner."
+
+#. type: TP
+#: ../man/free.1:112
+#, no-wrap
+msgid "B<-c>, B<--count> I<count>"
+msgstr "B<-c>, B<--count> I<antal>"
+
+#. type: Plain text
+#: ../man/free.1:119
+msgid "Display the result I<count> times. Requires the B<-s> option."
+msgstr "Visa resultatet I<antal> gånger. Kräver flaggan B<-s>."
+
+#. type: TP
+#: ../man/free.1:119
+#, no-wrap
+msgid "B<-l>, B<--lohi>"
+msgstr "B<-l>, B<--lohi>"
+
+#. type: Plain text
+#: ../man/free.1:122
+msgid "Show detailed low and high memory statistics."
+msgstr "Visa detaljerad statistik över lägsta och högsta minne."
+
+#. type: TP
+#: ../man/free.1:122
+#, no-wrap
+msgid "B<-L>, B<--line>"
+msgstr "B<-L>, B<--line>"
+
+#. type: Plain text
+#: ../man/free.1:127
+msgid "Show output on a single line, often used with the B<-s> option to show memory statistics repeatedly."
+msgstr "Visa utdata på en enda rad, används ofta med flagga B<-s> för att upprepat visa minnesstatistik."
+
+#. type: TP
+#: ../man/free.1:127
+#, no-wrap
+msgid "B<-s>, B<--seconds> I<delay>"
+msgstr "B<-s>, B<--seconds> I<fördröjning>"
+
+#. type: Plain text
+#: ../man/free.1:134
+msgid "Continuously display the result I<delay> seconds apart. You may actually specify any floating point number for I<delay> using either . or , for decimal point. B<usleep>(3) is used for microsecond resolution delay times."
+msgstr "Visa kontinuerligt resultatet fördröjt I<fördröjning> isär. Du kan faktiskt ange godtyckligt flyttal som I<fördröjning> med antingen . eller , som decimaltecken. B<usleep>(3) används för fördröjningstider med upplösning i mikrosekunder."
+
+#. type: TP
+#: ../man/free.1:134
+#, no-wrap
+msgid "B<--si>"
+msgstr "B<--si>"
+
+#. type: Plain text
+#: ../man/free.1:138
+msgid "Use kilo, mega, giga etc (power of 1000) instead of kibi, mebi, gibi (power of 1024)."
+msgstr "Använd kilo, mega, giga etc. (potenser av 1000) istället för kibi, mebi, gibi (potenser av 1024)."
+
+#. type: TP
+#: ../man/free.1:138
+#, no-wrap
+msgid "B<-t>, B<--total>"
+msgstr "B<-t>, B<--total>"
+
+#. type: Plain text
+#: ../man/free.1:141
+msgid "Display a line showing the column totals."
+msgstr "Visa en rad som visar kolumnernas summor."
+
+#. type: TP
+#: ../man/free.1:141
+#, no-wrap
+msgid "B<-v>, B<--committed>"
+msgstr "B<-v>, B<--committed>"
+
+#. type: Plain text
+#: ../man/free.1:146
+msgid "Display a line showing the memory commit limit and amount of committed/uncommitted memory. The B<total> column on this line will display the memory commit limit. This line is relevant if memory overcommit is disabled."
+msgstr "Visa en rad som visar minnestilldelningsgränsen och mängden tilldelat/otilldelat minne. Kolumnen B<totalt> på denna rad kommer visa minnestilldelningsgränsen. Raden är relevan om övertilldelning av minne är avaktiverat."
+
+#. type: TP
+#: ../man/free.1:146 ../man/w.1:63
+#, no-wrap
+msgid "B<--help>"
+msgstr "B<--help>"
+
+#. type: Plain text
+#: ../man/free.1:149
+msgid "Print help."
+msgstr "Skriv ut hjälp."
+
+#. type: TP
+#: ../man/free.1:149 ../man/pgrep.1:228 ../man/pmap.1:72 ../man/pwdx.1:19
+#: ../man/skill.1:68 ../man/slabtop.1:45 ../man/sysctl.8:116 ../man/tload.1:38
+#: ../man/uptime.1:46 ../man/vmstat.8:97 ../man/w.1:72
+#, no-wrap
+msgid "B<-V>, B<--version>"
+msgstr "B<-V>, B<--version>"
+
+#. type: Plain text
+#: ../man/free.1:152 ../man/skill.1:71 ../man/w.1:75
+msgid "Display version information."
+msgstr "Visa versionsinformation."
+
+#. type: SH
+#: ../man/free.1:153 ../man/slabtop.1:87 ../man/sysctl.8:171
+#: ../man/sysctl.conf.5:64 ../man/tload.1:42 ../man/uptime.1:49 ../man/w.1:88
+#: ../man/procps_misc.3:136
+#, no-wrap
+msgid "FILES"
+msgstr "FILER"
+
+#. type: TP
+#: ../man/free.1:154
+#, no-wrap
+msgid "/proc/meminfo"
+msgstr "/proc/meminfo"
+
+#. type: Plain text
+#: ../man/free.1:157
+msgid "memory information"
+msgstr "minnesinformation"
+
+#. type: SH
+#: ../man/free.1:158 ../man/pgrep.1:301 ../man/pidof.1:69 ../man/tload.1:50
+#: ../man/watch.1:152 ../man/ps.1:2063
+#, no-wrap
+msgid "BUGS"
+msgstr "FEL"
+
+#. type: Plain text
+#: ../man/free.1:161
+msgid "The value for the B<shared> column is not available from kernels before 2.6.32 and is displayed as zero."
+msgstr "Värdet på kolumnen B<delat> är inte tillgängligt från kärnan före 2.6.32 och visas som noll."
+
+#. type: TP
+#: ../man/free.1:161
+#, no-wrap
+msgid "Please send bug reports to"
+msgstr ""
+"Skicka synpunkter på översättningen till\n"
+"E<.UR tp-sv@listor.tp-sv.se> E<.UE>\n"
+"E<.TP>\n"
+"Skicka felrapporter till"
+
+#. type: Plain text
+#: ../man/free.1:165
+msgid "E<.UR procps@freelists.org> E<.UE>"
+msgstr "E<.UR procps@freelists.org> E<.UE>"
+
+#. type: SH
+#: ../man/free.1:165 ../man/kill.1:88 ../man/pgrep.1:317 ../man/pidof.1:76
+#: ../man/pmap.1:90 ../man/pwdx.1:25 ../man/skill.1:109 ../man/slabtop.1:91
+#: ../man/sysctl.8:185 ../man/sysctl.conf.5:83 ../man/tload.1:45
+#: ../man/uptime.1:66 ../man/vmstat.8:191 ../man/w.1:95 ../man/ps.1:2070
+#: ../man/procps.3:182 ../man/procps_misc.3:153 ../man/procps_pids.3:207
+#, no-wrap
+msgid "SEE ALSO"
+msgstr "SE ÄVEN"
+
+#. type: Plain text
+#: ../man/free.1:169
+msgid "B<ps>(1), B<slabtop>(1), B<top>(1), B<vmstat>(8)."
+msgstr "B<ps>(1), B<slabtop>(1), B<top>(1), B<vmstat>(8)."
+
+#. type: TH
+#: ../man/kill.1:12
+#, no-wrap
+msgid "KILL"
+msgstr "KILL"
+
+#. type: TH
+#: ../man/kill.1:12 ../man/pgrep.1:13 ../man/pidof.1:13
+#, no-wrap
+msgid "2023-01-16"
+msgstr "2023-01-16"
+
+#. type: Plain text
+#: ../man/kill.1:15
+msgid "kill - send a signal to a process"
+msgstr "kill — skicka en signal till en process"
+
+#. type: Plain text
+#: ../man/kill.1:18
+msgid "B<kill> [options] E<lt>pidE<gt> [...]"
+msgstr "B<kill> [flaggor] E<lt>pidE<gt> […]"
+
+#. type: Plain text
+#: ../man/kill.1:34
+msgid "The default signal for kill is TERM. Use B<-l> or B<-L> to list available signals. Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0. Alternate signals may be specified in three ways: B<-9>, B<-SIGKILL> or B<-KILL>. Negative PID values may be used to choose whole process groups; see the PGID column in ps command output. A PID of B<-1> is special; it indicates all processes except the kill process itself and init."
+msgstr "Standardsignalen för kill är TERM. Använd B<-l> eller B<-L> för att lista tillgängliga signaler. Särskilt användbara signaler inkluderar HUP, INT, KILL, STOP, CONT och 0. Alternativa signaler kan anges på tre sätt: B<-9>, B<-SIGKILL> eller B<-KILL>. Negativa PID-värden kan användas för att välja hela processgrupper; se kolumnen PGID i utdata från kommandot ps. En PID på B<-1> är speciell; den indikerar alla processer utom kill-processen själv och init."
+
+#. type: TP
+#: ../man/kill.1:35
+#, no-wrap
+msgid "B<E<lt>pidE<gt> [...]>"
+msgstr "B<E<lt>pidE<gt> […]>"
+
+#. type: Plain text
+#: ../man/kill.1:38
+msgid "Send signal to every E<lt>pidE<gt> listed."
+msgstr "Skicka signal till varje listad E<lt>pidE<gt>."
+
+#. type: TP
+#: ../man/kill.1:38
+#, no-wrap
+msgid "B<-E<lt>signalE<gt>>"
+msgstr "B<-E<lt>signalE<gt>>"
+
+#. type: TQ
+#: ../man/kill.1:40
+#, no-wrap
+msgid "B<-s E<lt>signalE<gt>>"
+msgstr "B<-s E<lt>signalE<gt>>"
+
+#. type: TQ
+#: ../man/kill.1:42
+#, no-wrap
+msgid "B<--signal E<lt>signalE<gt>>"
+msgstr "B<--signal E<lt>signalE<gt>>"
+
+#. type: Plain text
+#: ../man/kill.1:50
+msgid "Specify the B<signal> to be sent. The signal can be specified by using name or number. The behavior of signals is explained in B<signal>(7) manual page."
+msgstr "Ange den B<signal> som skall skickas. Signalen kan anges genom att använda namn eller nummer. Beteendet hos signaler beskrivs i manualsidan B<signal>(7)."
+
+#. type: TP
+#: ../man/kill.1:50 ../man/pgrep.1:216
+#, no-wrap
+msgid "B<-q>, B<--queue >I<value>"
+msgstr "B<-q>, B<--queue >I<värde>"
+
+#. type: Plain text
+#: ../man/kill.1:62 ../man/pgrep.1:228
+msgid "Use B<sigqueue>(3) rather than B<kill>(2) and the value argument is used to specify an integer to be sent with the signal. If the receiving process has installed a handler for this signal using the SA_SIGINFO flag to B<sigaction>(2), then it can obtain this data via the si_value field of the siginfo_t structure."
+msgstr "Använd B<sigqueue>(3) istället för B<kill>(2) och värdeargumentet används för att ange ett heltal att skickas med signalen. Om den mottagande processen har installerat en hanterare för denna signal med flaggan SA_SIGINFO till B<sigaction>(2) så kan den hämta denna data via fältet si_value i posten siginfo_t."
+
+#. type: TP
+#: ../man/kill.1:62
+#, no-wrap
+msgid "B<-l>, B<--list> [I<signal>]"
+msgstr "B<-l>, B<--list> [I<signal>]"
+
+#. type: Plain text
+#: ../man/kill.1:66
+msgid "List signal names. This option has optional argument, which will convert signal number to signal name, or other way round."
+msgstr "Lista signalnamn. Denna flagga kan ta ett argument, vilket kommer konvertera signalnummer till signalnamn, eller vice versa."
+
+#. type: TP
+#: ../man/kill.1:66 ../man/skill.1:52
+#, no-wrap
+msgid "B<-L>,B<\\ --table>"
+msgstr "B<-L>,B<\\ --table>"
+
+#. type: Plain text
+#: ../man/kill.1:69
+msgid "List signal names in a nice table."
+msgstr "Lista signalnamn i en trevlig tabell."
+
+#. type: SH
+#: ../man/kill.1:71 ../man/pgrep.1:284 ../man/slabtop.1:96
+#: ../man/sysctl.conf.5:39 ../man/vmstat.8:185 ../man/watch.1:144
+#: ../man/ps.1:768
+#, no-wrap
+msgid "NOTES"
+msgstr "OBSERVERA"
+
+#. type: Plain text
+#: ../man/kill.1:75
+msgid "Your shell (command line interpreter) may have a built-in kill command. You may need to run the command described here as /bin/kill to solve the conflict."
+msgstr "Ditt skal (kommandoradstolk) kan ha ett inbyggt kill-kommando. Du kan behöva köra kommandot som beskrivs här som /bin/kill för att lösa upp konflikten."
+
+#. type: SH
+#: ../man/kill.1:75 ../man/pgrep.1:240 ../man/skill.1:99 ../man/sysctl.8:143
+#: ../man/watch.1:191 ../man/ps.1:84
+#, no-wrap
+msgid "EXAMPLES"
+msgstr "EXEMPEL"
+
+#. type: TP
+#: ../man/kill.1:76
+#, no-wrap
+msgid "B<kill -9 -1>"
+msgstr "B<kill -9 -1>"
+
+#. type: Plain text
+#: ../man/kill.1:79
+msgid "Kill all processes you can kill."
+msgstr "Döda alla processer du kan döda."
+
+#. type: TP
+#: ../man/kill.1:79
+#, no-wrap
+msgid "B<kill -l 11>"
+msgstr "B<kill -l 11>"
+
+#. type: Plain text
+#: ../man/kill.1:82
+msgid "Translate number 11 into a signal name."
+msgstr "Översätt nummer 11 till ett signalnamn."
+
+#. type: TP
+#: ../man/kill.1:82
+#, no-wrap
+msgid "B<kill -L>"
+msgstr "B<kill -L>"
+
+#. type: Plain text
+#: ../man/kill.1:85
+msgid "List the available signal choices in a nice table."
+msgstr "Lista de tillgängliga signalvalen i en trevlig tabell."
+
+#. type: TP
+#: ../man/kill.1:85
+#, no-wrap
+msgid "B<kill 123 543 2341 3453>"
+msgstr "B<kill 123 543 2341 3453>"
+
+#. type: Plain text
+#: ../man/kill.1:88
+msgid "Send the default signal, SIGTERM, to all those processes."
+msgstr "Skicka standardsignalen, SIGTERM, till alla dessa processer."
+
+#. type: Plain text
+#: ../man/kill.1:97
+msgid "B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), B<renice>(1), B<signal>(7), B<sigqueue>(3), B<skill>(1)"
+msgstr "B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), B<renice>(1), B<signal>(7), B<sigqueue>(3), B<skill>(1)"
+
+#. type: SH
+#: ../man/kill.1:97 ../man/pmap.1:93 ../man/pwdx.1:28 ../man/skill.1:117
+#: ../man/ps.1:2076
+#, no-wrap
+msgid "STANDARDS"
+msgstr "STANDARDER"
+
+#. type: Plain text
+#: ../man/kill.1:101
+msgid "This command meets appropriate standards. The B<-L> flag is Linux-specific."
+msgstr "Detta kommand uppfyller tillämpliga standarder. Flaggan B<-L> är Linux-specifik."
+
+#. type: SH
+#: ../man/kill.1:101 ../man/pgrep.1:327 ../man/pidof.1:79 ../man/pwdx.1:32
+#: ../man/skill.1:119 ../man/sysctl.8:189 ../man/sysctl.conf.5:85
+#: ../man/ps.1:2093
+#, no-wrap
+msgid "AUTHOR"
+msgstr "UPPHOVSMAN"
+
+#. type: Plain text
+#: ../man/kill.1:107
+msgid "E<.UR albert@users.sf.net> Albert Cahalan E<.UE> wrote kill in 1999 to replace a bsdutils one that was not standards compliant. The util-linux one might also work correctly."
+msgstr "E<.UR albert@users.sf.net> Albert Cahalan E<.UE> skrev kill 1999 för att ersätta en version i bsdutils som inte följde standarder. Den i util-linux kan dessuotom fungera korrekt."
+
+#. type: SH
+#: ../man/kill.1:107 ../man/pgrep.1:331 ../man/pmap.1:97 ../man/pwdx.1:37
+#: ../man/skill.1:125 ../man/slabtop.1:120 ../man/sysctl.8:193
+#: ../man/sysctl.conf.5:89 ../man/tload.1:66 ../man/uptime.1:71
+#: ../man/vmstat.8:199 ../man/w.1:112 ../man/watch.1:229
+#, no-wrap
+msgid "REPORTING BUGS"
+msgstr "RAPPORTERA FEL"
+
+#. type: Plain text
+#: ../man/kill.1:110 ../man/pgrep.1:334 ../man/pmap.1:100 ../man/pwdx.1:40
+#: ../man/skill.1:128 ../man/slabtop.1:123 ../man/sysctl.8:196
+#: ../man/sysctl.conf.5:92 ../man/tload.1:69 ../man/uptime.1:74
+#: ../man/vmstat.8:202 ../man/w.1:115 ../man/watch.1:232
+msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE>"
+msgstr ""
+"Skicka felrapporter till E<.UR procps@freelists.org> E<.UE>\n"
+"Skicka synpunkter på översättningen till E<.UR tp-sv@listor.tp-sv.se> E<.UE>"
+
+#. type: TH
+#: ../man/pgrep.1:13
+#, no-wrap
+msgid "PGREP"
+msgstr "PGREP"
+
+#. type: Plain text
+#: ../man/pgrep.1:16
+msgid "pgrep, pkill, pidwait - look up, signal, or wait for processes based on name and other attributes"
+msgstr "pgrep, pkill, pidwait — slå upp, signalera eller vänta på processer baserat på namn och andra attribut"
+
+#. type: Plain text
+#: ../man/pgrep.1:19
+msgid "B<pgrep> [options] pattern"
+msgstr "B<pgrep> [flaggor] mönster"
+
+#. type: Plain text
+#: ../man/pgrep.1:22
+msgid "B<pkill> [options] pattern"
+msgstr "B<pkill> [flaggor] mönster"
+
+#. type: Plain text
+#: ../man/pgrep.1:25
+msgid "B<pidwait> [options] pattern"
+msgstr "B<pidwait> [flaggor] mönster"
+
+#. type: Plain text
+#: ../man/pgrep.1:30
+msgid "B<pgrep> looks through the currently running processes and lists the process IDs which match the selection criteria to stdout. All the criteria have to match. For example,"
+msgstr "B<pgrep> letar igenom de just nu körande processerna och listar de process-ID:n som matchar urvalskriterierna till standard ut. Alla kriterierna måste matcha. Till exempel,"
+
+#. type: Plain text
+#: ../man/pgrep.1:32
+msgid "$ pgrep -u root sshd"
+msgstr "$ pgrep -u root sshd"
+
+#. type: Plain text
+#: ../man/pgrep.1:38
+msgid "will only list the processes called B<sshd> AND owned by B<root>. On the other hand,"
+msgstr "kommer endast lista processerna som heter B<sshd> OCH ägs av B<root>. Å andra sidan,"
+
+#. type: Plain text
+#: ../man/pgrep.1:40
+msgid "$ pgrep -u root,daemon"
+msgstr "$ pgrep -u root,daemon"
+
+#. type: Plain text
+#: ../man/pgrep.1:45
+msgid "will list the processes owned by B<root> OR B<daemon>."
+msgstr "kommer lista processerna som ägs av B<root> ELLER B<daemon>."
+
+#. type: Plain text
+#: ../man/pgrep.1:50
+msgid "B<pkill> will send the specified signal (by default B<SIGTERM>) to each process instead of listing them on stdout."
+msgstr "B<pkill> kommer skicka den angivna signalen (B<SIGTERM> som standard) till varje process istället för att lista dem på standard ut."
+
+#. type: Plain text
+#: ../man/pgrep.1:53
+msgid "B<pidwait> will wait for each process instead of listing them on stdout."
+msgstr "B<pidwait> kommer vänta på varje process istället för att räkna upp dem på standard ut."
+
+#. type: TP
+#: ../man/pgrep.1:54
+#, no-wrap
+msgid "B<->I<signal>"
+msgstr "B<->I<signal>"
+
+#. type: TQ
+#: ../man/pgrep.1:56
+#, no-wrap
+msgid "B<--signal> I<signal>"
+msgstr "B<--signal> I<signal>"
+
+#. type: Plain text
+#: ../man/pgrep.1:66
+msgid "Defines the signal to send to each matched process. Either the numeric or the symbolic signal name can be used. In B<pgrep> or B<pidwait> mode only the long option can be used and has no effect unless used in conjunction with B<--require-handler> to filter to processes with a userspace signal handler present for a particular signal."
+msgstr "Definierar signalen att skicka till varje matchad process. Antingen det numeriska eller det symboliska signalnamnet kan användas. I B<pgrep>- eller B<pidwait>-läge endast kan flaggan long användas och har ingen effekt om det inte används tilsammans med filtret B<--require-handler> för att filtrera ut processer där det finns en signalhanterare i användarrymden för en viss signal."
+
+#. type: TP
+#: ../man/pgrep.1:67
+#, no-wrap
+msgid "B<-c>, B<--count>"
+msgstr "B<-c>, B<--count>"
+
+#. type: Plain text
+#: ../man/pgrep.1:74
+msgid "Suppress normal output; instead print a count of matching processes. When count does not match anything, e.g. returns zero, the command will return non-zero value. Note that for pkill and pidwait, the count is the number of matching processes, not the processes that were successfully signaled or waited for."
+msgstr "Utelämna normal utmatning; skriv istället antalet processer som matchar. När antalet inte matchar något, d.v.s. returnerar noll, kommer kommandot returnera ett värde skilt från noll. Observera att för pkill och pidwait är numret antalet matchande processer, inte processerna som man lyckades skicka en signal till eller vänta på."
+
+#. type: TP
+#: ../man/pgrep.1:74
+#, no-wrap
+msgid "B<-d>, B<--delimiter> I<delimiter>"
+msgstr "B<-d>, B<--delimiter> I<avgränsare>"
+
+#. type: Plain text
+#: ../man/pgrep.1:80
+msgid "Sets the string used to delimit each process ID in the output (by default a newline). (B<pgrep> only.)"
+msgstr "Sätter strängen som används för att avgränsa varje process-ID i utdata (nyrad som standard). (Endast B<pgrep>.)"
+
+#. type: TP
+#: ../man/pgrep.1:80
+#, no-wrap
+msgid "B<-e>, B<--echo>"
+msgstr "B<-e>, B<--echo>"
+
+#. type: Plain text
+#: ../man/pgrep.1:85
+msgid "Display name and PID of the process being killed. (B<pkill> only.)"
+msgstr "Visa namnet och PID processen som dödas. (Endast B<pkill>.)"
+
+#. type: TP
+#: ../man/pgrep.1:85
+#, no-wrap
+msgid "B<-f>, B<--full>"
+msgstr "B<-f>, B<--full>"
+
+#. type: Plain text
+#: ../man/pgrep.1:92
+msgid "The I<pattern> is normally only matched against the process name. When B<-f> is set, the full command line is used."
+msgstr "I<Mönstret> matchas normalt endast mot processnamnet. När B<-f> anges används hela kommandoraden."
+
+#. type: TP
+#: ../man/pgrep.1:92
+#, no-wrap
+msgid "B<-g>, B<--pgroup> I<pgrp>,..."
+msgstr "B<-g>, B<--pgroup> I<pgrp>,…"
+
+#. type: Plain text
+#: ../man/pgrep.1:101
+msgid "Only match processes in the process group IDs listed. Process group 0 is translated into B<pgrep>'s, B<pkill>'s, or B<pidwait>'s own process group."
+msgstr "Matcha endast processer i de processgrupper vars ID listas. Processgrupp 0 översätts till B<pgrep>s, B<pkill>s eller B<pidwait>s egen processgrupp."
+
+#. type: TP
+#: ../man/pgrep.1:101
+#, no-wrap
+msgid "B<-G>, B<--group> I<gid>,..."
+msgstr "B<-G>, B<--group> I<gid>,…"
+
+#. type: Plain text
+#: ../man/pgrep.1:105
+msgid "Only match processes whose real group ID is listed. Either the numerical or symbolical value may be used."
+msgstr "Matcha endast processer vars verkliga grupp-ID listas. Både det numeriska och det symboliska värdet kan användas."
+
+#. type: TP
+#: ../man/pgrep.1:105
+#, no-wrap
+msgid "B<-i>, B<--ignore-case>"
+msgstr "B<-i>, B<--ignore-case>"
+
+#. type: Plain text
+#: ../man/pgrep.1:108
+msgid "Match processes case-insensitively."
+msgstr "Matcha processer skiftlägesokänsligt."
+
+#. type: TP
+#: ../man/pgrep.1:108
+#, no-wrap
+msgid "B<-l>, B<--list-name>"
+msgstr "B<-l>, B<--list-name>"
+
+#. type: Plain text
+#: ../man/pgrep.1:113
+msgid "List the process name as well as the process ID. (B<pgrep> only.)"
+msgstr "Lista processnamnet såväl som process-ID:t. (Endast B<pgrep>.)"
+
+#. type: TP
+#: ../man/pgrep.1:113
+#, no-wrap
+msgid "B<-a>, B<--list-full>"
+msgstr "B<-a>, B<--list-full>"
+
+#. type: Plain text
+#: ../man/pgrep.1:118
+msgid "List the full command line as well as the process ID. (B<pgrep> only.)"
+msgstr "Lista den fullständiga kommandoraden såväl som process-ID:t. (Endast B<pgrep>.)"
+
+#. type: TP
+#: ../man/pgrep.1:118
+#, no-wrap
+msgid "B<-n>, B<--newest>"
+msgstr "B<-n>, B<--newest>"
+
+#. type: Plain text
+#: ../man/pgrep.1:121
+msgid "Select only the newest (most recently started) of the matching processes."
+msgstr "Välj endast den nyaste (senast startade) av de matchande processerna."
+
+#. type: TP
+#: ../man/pgrep.1:121
+#, no-wrap
+msgid "B<-o>, B<--oldest>"
+msgstr "B<-o>, B<--oldest>"
+
+#. type: Plain text
+#: ../man/pgrep.1:124
+msgid "Select only the oldest (least recently started) of the matching processes."
+msgstr "Välj endast den äldsta (minst nyligen startade) av de matchande processerna."
+
+#. type: TP
+#: ../man/pgrep.1:124
+#, no-wrap
+msgid "B<-O>, B<--older> I<secs>"
+msgstr "B<-O>, B<--older> I<sekunder>"
+
+#. type: Plain text
+#: ../man/pgrep.1:127
+msgid "Select processes older than secs."
+msgstr "Välj processer som är äldre än sek."
+
+#. type: TP
+#: ../man/pgrep.1:127
+#, no-wrap
+msgid "B<-P>, B<--parent> I<ppid>,..."
+msgstr "B<-P>, B<--parent> I<fpid>,…"
+
+#. type: Plain text
+#: ../man/pgrep.1:130
+msgid "Only match processes whose parent process ID is listed."
+msgstr "Matcha endast processer vars föräldraprocess-ID listas."
+
+#. type: TP
+#: ../man/pgrep.1:130
+#, no-wrap
+msgid "B<-s>, B<--session> I<sid>,..."
+msgstr "B<-s>, B<--session> I<sid>,…"
+
+#. type: Plain text
+#: ../man/pgrep.1:139
+msgid "Only match processes whose process session ID is listed. Session ID 0 is translated into B<pgrep>'s, B<pkill>'s, or B<pidwait>'s own session ID."
+msgstr "Matcha endast processer vars processessions-ID listas. Sessions-ID 0 översätts till B<pgrep>s, B<pkill>s eller B<pidwait>s eget sessions-ID."
+
+#. type: TP
+#: ../man/pgrep.1:139
+#, no-wrap
+msgid "B<-t>, B<--terminal> I<term>,..."
+msgstr "B<-t>, B<--terminal> I<term>,…"
+
+#. type: Plain text
+#: ../man/pgrep.1:143
+msgid "Only match processes whose controlling terminal is listed. The terminal name should be specified without the \"/dev/\" prefix."
+msgstr "Matcha endast processer vars styrande terminal listas. Terminalnamnet skall anges utan prefixet â€/dev/â€."
+
+#. type: TP
+#: ../man/pgrep.1:143
+#, no-wrap
+msgid "B<-u>, B<--euid> I<euid>,..."
+msgstr "B<-u>, B<--euid> I<eaid>,…"
+
+#. type: Plain text
+#: ../man/pgrep.1:147
+msgid "Only match processes whose effective user ID is listed. Either the numerical or symbolical value may be used."
+msgstr "Matcha endast processer vars effektiva användar-ID listas. Både det numeriska och symboliska värdet kan användas."
+
+#. type: TP
+#: ../man/pgrep.1:147
+#, no-wrap
+msgid "B<-U>, B<--uid> I<uid>,..."
+msgstr "B<-U>, B<--uid> I<aid>,…"
+
+#. type: Plain text
+#: ../man/pgrep.1:151
+msgid "Only match processes whose real user ID is listed. Either the numerical or symbolical value may be used."
+msgstr "Matcha endast processer vars verkliga användar-ID listas. Både det numeriska och symboliska värdet kan användas."
+
+#. type: TP
+#: ../man/pgrep.1:151
+#, no-wrap
+msgid "B<-v>, B<--inverse>"
+msgstr "B<-v>, B<--inverse>"
+
+#. type: Plain text
+#: ../man/pgrep.1:160
+msgid "Negates the matching. This option is usually used in B<pgrep>'s or B<pidwait>'s context. In B<pkill>'s context the short option is disabled to avoid accidental usage of the option."
+msgstr "Negerar matchningen. Denna flagga används oftast i B<pgrep>s eller B<pidwait>s sammanhang. I B<pkill>s sammanhang är den korta flaggan avaktiverad för att undvika att flaggan används av misstag."
+
+#. type: TP
+#: ../man/pgrep.1:160
+#, no-wrap
+msgid "B<-w>, B<--lightweight>"
+msgstr "B<-w>, B<--lightweight>"
+
+#. type: Plain text
+#: ../man/pgrep.1:169
+msgid "Shows all thread ids instead of pids in B<pgrep>'s or B<pidwait>'s context. In B<pkill>'s context this option is disabled."
+msgstr "Visar alla tråd-id:n istället för pid:n i B<pgrep>s eller B<pidwait>s sammanhang. I B<pkill>s sammanhang är denna flagga avaktiverad."
+
+#. type: TP
+#: ../man/pgrep.1:169
+#, no-wrap
+msgid "B<-x>, B<--exact>"
+msgstr "B<-x>, B<--exact>"
+
+#. type: Plain text
+#: ../man/pgrep.1:175
+msgid "Only match processes whose names (or command lines if B<-f> is specified) B<exactly> match the I<pattern>."
+msgstr "Matcha endast processer vars namn (eller kommandorader om B<-f> anges) B<exakt> matchar I<mönstret>."
+
+#. type: TP
+#: ../man/pgrep.1:175
+#, no-wrap
+msgid "B<-F>, B<--pidfile> I<file>"
+msgstr "B<-F>, B<--pidfile> I<fil>"
+
+#. type: Plain text
+#: ../man/pgrep.1:183
+msgid "Read I<PID>s from I<file>. This option is more useful for B<pkill> or B<pidwait> than B<pgrep>."
+msgstr "Läs I<PID>:n från en I<fil>. Denna flagga är mer användbar för B<pkill> eller B<pidwait> än B<pgrep>."
+
+#. type: TP
+#: ../man/pgrep.1:183
+#, no-wrap
+msgid "B<-L>, B<--logpidfile>"
+msgstr "B<-L>, B<--logpidfile>"
+
+#. type: Plain text
+#: ../man/pgrep.1:186
+msgid "Fail if pidfile (see B<-F>) not locked."
+msgstr "Misslyckas om pid-filen (se B<-F>) inte är låst."
+
+#. type: TP
+#: ../man/pgrep.1:186
+#, no-wrap
+msgid "B<-r>, B<--runstates> I<D,R,S,Z,>..."
+msgstr "B<-r>, B<--runstates> I<D,R,S,Z>,…"
+
+#. type: Plain text
+#: ../man/pgrep.1:189
+msgid "Match only processes which match the process state."
+msgstr "Matcha endast processer som matchar processtillståndet."
+
+#. type: TP
+#: ../man/pgrep.1:189
+#, no-wrap
+msgid "B<-A>, B<--ignore-ancestors>"
+msgstr "B<-A>, B<--ignore-ancestors>"
+
+#. type: Plain text
+#: ../man/pgrep.1:199
+msgid "Ignore all ancestors of B<pgrep>, B<pkill>, or B<pidwait>. For example, this can be useful when elevating with B<sudo> or similar tools."
+msgstr "Ignorera alla förfäder till B<pgrep>, B<pkill> eller B<pidwait>. Till exempel kan detta vara användbart när man höjer med B<sudo> eller liknande verktyg."
+
+#. type: TP
+#: ../man/pgrep.1:199
+#, no-wrap
+msgid "B<-H>, B<--require-handler>"
+msgstr "B<-H>, B<--require-handler>"
+
+#. type: Plain text
+#: ../man/pgrep.1:203
+msgid "Only match processes with a userspace signal handler present for the signal to be sent."
+msgstr "Matcha endast processer där det finns en signalhanterare i användarrymden för signalen som skall skickas."
+
+#. type: TP
+#: ../man/pgrep.1:203
+#, no-wrap
+msgid "B<--cgroup >I<name>B<,...>"
+msgstr "B<--cgroup >I<namn>B<,…>"
+
+#. type: Plain text
+#: ../man/pgrep.1:207
+msgid "Match on provided control group (cgroup) v2 name. See B<cgroups>(8)"
+msgstr "Matcha det givna styrgruppsnamnet (cgroup) v2. Se B<cgroups>(8)"
+
+#. type: TP
+#: ../man/pgrep.1:207 ../man/skill.1:87
+#, no-wrap
+msgid "B<--ns >I<pid>"
+msgstr "B<--ns >I<pid>"
+
+#. type: Plain text
+#: ../man/pgrep.1:212
+msgid "Match processes that belong to the same namespaces. Required to run as root to match processes from other users. See B<--nslist> for how to limit which namespaces to match."
+msgstr "Matcha processer som hör till samma namnrymder. Måste köras som root för att matcha andra användares processer. Se B<--nslist> för hur man begränsar vilka namnrymder som skall matchas."
+
+#. type: TP
+#: ../man/pgrep.1:212
+#, no-wrap
+msgid "B<--nslist >I<name>B<,...>"
+msgstr "B<--nslist >I<namn>B<,…>"
+
+#. type: Plain text
+#: ../man/pgrep.1:216
+msgid "Match only the provided namespaces. Available namespaces: ipc, mnt, net, pid, user, uts."
+msgstr "Matcha endast de angivna namnrymderna. Tillgängliga namnrymder: ipc, mnt, net, pid, user, uts."
+
+#. type: Plain text
+#: ../man/pgrep.1:231 ../man/pmap.1:75 ../man/slabtop.1:48 ../man/sysctl.8:119
+#: ../man/tload.1:41 ../man/vmstat.8:100 ../man/watch.1:100
+msgid "Display version information and exit."
+msgstr "Visa versionsinformation och avsluta."
+
+#. type: TP
+#: ../man/pgrep.1:231 ../man/pmap.1:69 ../man/pwdx.1:22 ../man/skill.1:65
+#: ../man/slabtop.1:48 ../man/sysctl.8:113 ../man/tload.1:35
+#: ../man/uptime.1:40 ../man/vmstat.8:100 ../man/watch.1:94
+#, no-wrap
+msgid "B<-h>, B<--help>"
+msgstr "B<-h>, B<--help>"
+
+#. type: Plain text
+#: ../man/pgrep.1:234 ../man/vmstat.8:103
+msgid "Display help and exit."
+msgstr "Visa hjälp och avsluta."
+
+#. type: SH
+#: ../man/pgrep.1:235
+#, no-wrap
+msgid "OPERANDS"
+msgstr "OPERANDER"
+
+#. type: TP
+#: ../man/pgrep.1:236
+#, no-wrap
+msgid "I<pattern>"
+msgstr "I<mönster>"
+
+#. type: Plain text
+#: ../man/pgrep.1:240
+msgid "Specifies an Extended Regular Expression for matching against the process names or command lines."
+msgstr "Specificerar ett utökat reguljärt uttryck att matcha mot processnamnen eller kommandoraderna."
+
+#. type: Plain text
+#: ../man/pgrep.1:244
+msgid "Example 1: Find the process ID of the B<named> daemon:"
+msgstr "Exempel 1: Hitta process-ID:t för demonen B<named>:"
+
+#. type: Plain text
+#: ../man/pgrep.1:246
+msgid "$ pgrep -u root named"
+msgstr "$ pgrep -u root named"
+
+#. type: Plain text
+#: ../man/pgrep.1:250
+msgid "Example 2: Make B<syslog> reread its configuration file:"
+msgstr "Exempel 2: Få B<syslog> att läsa om sin konfigurationsfil:"
+
+#. type: Plain text
+#: ../man/pgrep.1:252
+msgid "$ pkill -HUP syslogd"
+msgstr "$ pkill -HUP syslogd"
+
+#. type: Plain text
+#: ../man/pgrep.1:256
+msgid "Example 3: Give detailed information on all B<xterm> processes:"
+msgstr "Exempel 3: Ge detaljerad information om alla B<xterm>-processer:"
+
+#. type: Plain text
+#: ../man/pgrep.1:258
+msgid "$ ps -fp $(pgrep -d, -x xterm)"
+msgstr "$ ps -fp $(pgrep -d, -x xterm)"
+
+#. type: Plain text
+#: ../man/pgrep.1:262
+msgid "Example 4: Make all B<chrome> processes run nicer:"
+msgstr "Exempel 4: Få alla B<chrome>-processer köra med nice:"
+
+#. type: Plain text
+#: ../man/pgrep.1:264
+msgid "$ renice +4 $(pgrep chrome)"
+msgstr "$ renice +4 $(pgrep chrome)"
+
+#. type: SH
+#: ../man/pgrep.1:264 ../man/pidof.1:61 ../man/pmap.1:75 ../man/watch.1:100
+#, no-wrap
+msgid "EXIT STATUS"
+msgstr "SLUTSTATUS"
+
+#. type: TP
+#: ../man/pgrep.1:266
+#, no-wrap
+msgid "0"
+msgstr "0"
+
+#. type: Plain text
+#: ../man/pgrep.1:274
+msgid "One or more processes matched the criteria. For B<pkill> and B<pidwait>, one or more processes must also have been successfully signalled or waited for."
+msgstr "En eller flera processer matchar kriterierna. För B<pkill> och B<pidwait> måste även en eller flera processer framgångsrikt ha signalerats."
+
+#. type: IP
+#: ../man/pgrep.1:274 ../man/ps.1:43 ../man/ps.1:818 ../man/ps.1:2082
+#, no-wrap
+msgid "1"
+msgstr "1"
+
+#. type: Plain text
+#: ../man/pgrep.1:277
+msgid "No processes matched or none of them could be signalled."
+msgstr "Inga processer matchade eller inga av dem kunde signaleras."
+
+#. type: IP
+#: ../man/pgrep.1:277 ../man/ps.1:45 ../man/ps.1:2084
+#, no-wrap
+msgid "2"
+msgstr "2"
+
+#. type: Plain text
+#: ../man/pgrep.1:280
+msgid "Syntax error in the command line."
+msgstr "Syntaxfel på kommandoraden."
+
+#. type: IP
+#: ../man/pgrep.1:280 ../man/ps.1:47 ../man/ps.1:2086
+#, no-wrap
+msgid "3"
+msgstr "3"
+
+#. type: Plain text
+#: ../man/pgrep.1:283
+msgid "Fatal error: out of memory etc."
+msgstr "Ödesdigert fel: slut på minne etc."
+
+#. type: Plain text
+#: ../man/pgrep.1:289
+msgid "The process name used for matching is limited to the 15 characters present in the output of /proc/I<pid>/stat. Use the B<-f> option to match against the complete command line, /proc/I<pid>/cmdline. Threads may not have the same process name as the parent process but will have the same command line."
+msgstr "Processnamnet som används för att matcha är begränsat till de 15 tecknen som är med i utdata från /proc/I<pid>/stat. Använd flaggan B<-f> för att matcha mot den fullständiga kommandoraden, /proc/I<pid>/cmdline. Trådar behöver inte ha samma processnamn som föräldraprocessen men kommer ha samma kommandorad."
+
+#. type: Plain text
+#: ../man/pgrep.1:297
+msgid "The running B<pgrep>, B<pkill>, or B<pidwait> process will never report itself as a match."
+msgstr "Den körande B<pgrep>-, B<pkill>- eller B<pidwait>-processen kommer aldrig rapportera sig själv som en matchning."
+
+#. type: Plain text
+#: ../man/pgrep.1:301
+msgid "The B<-O --older> option will silently fail if I</proc> is mounted with the I<subset=pid> option."
+msgstr "Flagga B<-O --older> kommer tyst misslyckas om I</proc> är monterat med flaggan I<subset=pid>."
+
+#. type: Plain text
+#: ../man/pgrep.1:310
+msgid "The options B<-n> and B<-o> and B<-v> can not be combined. Let me know if you need to do this."
+msgstr "Flaggorna B<-n> och B<-o> och B<-v> kan inte kombineras. Berätta för mig om du behöver kunna göra detta."
+
+#. type: Plain text
+#: ../man/pgrep.1:312
+msgid "Defunct processes are reported."
+msgstr "Döda (defunct) processer rapporteras."
+
+#. type: Plain text
+#: ../man/pgrep.1:317
+msgid "B<pidwait> requires the B<pidfd_open>(2) system call which first appeared in Linux 5.3."
+msgstr "B<pidwait> behöver systemanropet B<pidfd_open>(2) som först dök up i Linux 5.3."
+
+#. type: Plain text
+#: ../man/pgrep.1:327
+msgid "B<ps>(1), B<regex>(7), B<signal>(7), B<sigqueue>(3), B<killall>(1), B<skill>(1), B<kill>(1), B<kill>(2), B<cgroups>(8)."
+msgstr "B<ps>(1), B<regex>(7), B<signal>(7), B<sigqueue>(3), B<killall>(1), B<skill>(1), B<kill>(1), B<kill>(2), B<cgroups>(8)."
+
+#. type: Plain text
+#: ../man/pgrep.1:331
+msgid "E<.UR kjetilho@ifi.uio.no> Kjetil Torgrim Homme E<.UE>"
+msgstr "E<.UR kjetilho@ifi.uio.no> Kjetil Torgrim Homme E<.UE>"
+
+#. type: TH
+#: ../man/pidof.1:13
+#, no-wrap
+msgid "PIDOF"
+msgstr "PIDOF"
+
+#. type: Plain text
+#: ../man/pidof.1:16
+msgid "pidof - find the process ID of a running program"
+msgstr "pidof — hitta process-ID för ett körande program"
+
+#. type: Plain text
+#: ../man/pidof.1:30
+msgid "B<pidof> [B<-s>] [B<-c>] [B<-q>] [B<-w>] [B<-x>] [B<-o> I<omitpid[,omitpid...]...>] [B<-t>] [B<-S> I<separator>] I<program> I<[>B<program...>I<]>"
+msgstr "B<pidof> [B<-s>] [B<-c>] [B<-q>] [B<-w>] [B<-x>] [B<-o> I<skippapid[,skippapid…]…>] B<-t> [B<-S> I<separator>] I<program> I<[>B<program…>I<]>"
+
+#. type: Plain text
+#: ../man/pidof.1:34
+msgid "B<Pidof> finds the process id's (pids) of the named programs. It prints those id's on the standard output."
+msgstr "B<Pidof> hittar process-id:t (pid:ar) för de namngivna programmen. Det skriver ut dessa id:n till standard ut."
+
+#. type: IP
+#: ../man/pidof.1:35
+#, no-wrap
+msgid "B<-s>"
+msgstr "B<-s>"
+
+#. type: Plain text
+#: ../man/pidof.1:37
+msgid "Single shot - this instructs the program to only return one I<pid>."
+msgstr "Enkelskott — detta instruerar programmet att endast returnera en I<pid>."
+
+#. type: TP
+#: ../man/pidof.1:37 ../man/ps.1:409
+#, no-wrap
+msgid "B<-c>"
+msgstr "B<-c>"
+
+#. type: Plain text
+#: ../man/pidof.1:41
+msgid "Only return process ids that are running with the same root directory. This option is ignored for non-root users, as they will be unable to check the current root directory of processes they do not own."
+msgstr "Returnera endast process-id:n som kör med samma rotkatalog. Denna flagga ignoreras för andra användare än root, eftersom de inte kommer kunna kontrollera den aktuella rotkatalogen för processer de inte äger."
+
+#. type: IP
+#: ../man/pidof.1:41
+#, no-wrap
+msgid "B<-q>"
+msgstr "B<-q>"
+
+#. type: Plain text
+#: ../man/pidof.1:43
+msgid "Quiet mode, suppress any output and only sets the exit status accordingly."
+msgstr "Tyst läge, undertryck all utdata och sätt bara slutstatus."
+
+#. type: TP
+#: ../man/pidof.1:43 ../man/ps.1:718
+#, no-wrap
+msgid "B<-w>"
+msgstr "B<-w>"
+
+#. type: Plain text
+#: ../man/pidof.1:46
+msgid "Show also processes that do not have visible command line (e.g. kernel worker threads)."
+msgstr "Visa även processer som inte har en synlig kommandorad (t.ex. kärnarbetstrådar)."
+
+#. type: TP
+#: ../man/pidof.1:46 ../man/sysctl.8:110
+#, no-wrap
+msgid "B<-x>"
+msgstr "B<-x>"
+
+#. type: Plain text
+#: ../man/pidof.1:49
+msgid "Scripts too - this causes the program to also return process id's of shells running the named scripts."
+msgstr "Även skript — detta får programmet att även returnera process-id:n för skal som kör de namngivna skripten."
+
+#. type: IP
+#: ../man/pidof.1:49
+#, no-wrap
+msgid "B<-o> I<omitpid>"
+msgstr "B<-o> I<skippapid>"
+
+#. type: Plain text
+#: ../man/pidof.1:53
+msgid "Tells B<pidof> to omit processes with that process id. The special pid B<%PPID> can be used to name the parent process of the B<pidof> program, in other words the calling shell or shell script."
+msgstr "Säger till B<pidof> att utesluta processer med det process-id:t. Den speciella processen B<%PPID> kan användas för att namnge föräldraprocessen till B<pidof>-programmet, med andra ord det anropande skalet eller skalskriptet."
+
+#. type: IP
+#: ../man/pidof.1:53
+#, no-wrap
+msgid "B<-t>"
+msgstr "B<-t>"
+
+#. type: Plain text
+#: ../man/pidof.1:55
+msgid "Shows all thread ids instead of pids."
+msgstr "Visa alla tråd-id:n istället för pid:n."
+
+#. type: IP
+#: ../man/pidof.1:55
+#, no-wrap
+msgid "B<-S> I<separator>"
+msgstr "B<-S> I<separator>"
+
+#. type: Plain text
+#: ../man/pidof.1:61
+msgid "Use I<separator> as a separator put between pids. Used only when more than one pids are printed for the program. The B<-d> option is an alias for this option for sysvinit B<pidof> compatibility."
+msgstr "Använd I<separator> som separator placerad mellan pid:er. Använd endast när mer än en pid skrivs för programmet. Flaggan B<-d> är ett alias för denna flagga för kompatibilitet med sysvinit:s B<pidof>."
+
+#. type: TP
+#: ../man/pidof.1:62 ../man/pmap.1:79 ../man/watch.1:104
+#, no-wrap
+msgid "B<0>"
+msgstr "B<0>"
+
+#. type: Plain text
+#: ../man/pidof.1:65
+msgid "At least one program was found with the requested name."
+msgstr "Åtminstone ett program hittades med det begärda namnet."
+
+#. type: TP
+#: ../man/pidof.1:65 ../man/pmap.1:82 ../man/watch.1:107
+#, no-wrap
+msgid "B<1>"
+msgstr "B<1>"
+
+#. type: Plain text
+#: ../man/pidof.1:68
+msgid "No program was found with the requested name."
+msgstr "Inget program hittades med det begärda namnet."
+
+#. type: Plain text
+#: ../man/pidof.1:75
+msgid "When using the B<-x> option, B<pidof> only has a simple method for detecting scripts and will miss scripts that, for example, use env. This limitation is due to how the scripts look in the proc filesystem."
+msgstr "När flaggan B<-x> används har B<pidof> endast en enkel metod för att upptäcka skript och kommer missa skript som, till exempel, använder env. Denna begränsning beror på hur skripten ser ut i proc-filsystemet."
+
+#. type: Plain text
+#: ../man/pidof.1:79
+msgid "B<pgrep>(1), B<pkill>(1)"
+msgstr "B<pgrep>(1), B<pkill>(1)"
+
+#. type: Plain text
+#: ../man/pidof.1:82
+msgid "E<.UR jcapik@redhat.com> Jaromir Capik E<.UE>"
+msgstr "E<.UR jcapik@redhat.com> Jaromir Capik E<.UE>"
+
+#. type: TH
+#: ../man/pmap.1:19
+#, no-wrap
+msgid "PMAP"
+msgstr "PMAP"
+
+#. type: TH
+#: ../man/pmap.1:19 ../man/pwdx.1:12 ../man/tload.1:12
+#, no-wrap
+msgid "2020-06-04"
+msgstr "2020-06-04"
+
+#. type: Plain text
+#: ../man/pmap.1:22
+msgid "pmap - report memory map of a process"
+msgstr "pmap — rapportera minneskartan över en process"
+
+#. type: Plain text
+#: ../man/pmap.1:25
+msgid "B<pmap> [I<options>] I<pid> [...]"
+msgstr "B<pmap> [I<flaggor>] I<pid> […]"
+
+#. type: Plain text
+#: ../man/pmap.1:29
+msgid "The B<pmap> command reports the memory map of a process or processes."
+msgstr "Kommandot B<pmap> rapporterar minneskartan över en process eller processer."
+
+#. type: TP
+#: ../man/pmap.1:30
+#, no-wrap
+msgid "B<-x>, B<--extended>"
+msgstr "B<-x>, B<--extended>"
+
+#. type: Plain text
+#: ../man/pmap.1:33
+msgid "Show the extended format."
+msgstr "Visa det utökade formatet."
+
+#. type: TP
+#: ../man/pmap.1:33
+#, no-wrap
+msgid "B<-d>, B<--device>"
+msgstr "B<-d>, B<--device>"
+
+#. type: Plain text
+#: ../man/pmap.1:36
+msgid "Show the device format."
+msgstr "Visa enhetsformatet."
+
+#. type: TP
+#: ../man/pmap.1:36 ../man/sysctl.8:57
+#, no-wrap
+msgid "B<-q>, B<--quiet>"
+msgstr "B<-q>, B<--quiet>"
+
+#. type: Plain text
+#: ../man/pmap.1:39
+msgid "Do not display some header or footer lines."
+msgstr "Visa inte några huvud- och fotrader."
+
+#. type: TP
+#: ../man/pmap.1:39
+#, no-wrap
+msgid "B<-A>, B<--range> I<low>,I<high>"
+msgstr "B<-A>, B<--range> I<låg>,I<hög>"
+
+#. type: Plain text
+#: ../man/pmap.1:47
+msgid "Limit results to the given range to I<low> and I<high> address range. Notice that the low and high arguments are single string separated with comma."
+msgstr "Begränsa resultaten till adressintervallet från I<låg> till I<hög>. Observera att argumenten låg och hög är en enda sträng separerad med komma."
+
+#. type: TP
+#: ../man/pmap.1:47 ../man/sysctl.8:104
+#, no-wrap
+msgid "B<-X>"
+msgstr "B<-X>"
+
+#. type: Plain text
+#: ../man/pmap.1:51
+msgid "Show even more details than the B<-x> option. WARNING: format changes according to I</proc/PID/smaps>"
+msgstr "Visa ännu fler detaljer än flaggan B<-x>. VARNING: formatet ändras i enlighet med I</proc/PID/smaps>"
+
+#. type: TP
+#: ../man/pmap.1:51
+#, no-wrap
+msgid "B<-XX>"
+msgstr "B<-XX>"
+
+#. type: Plain text
+#: ../man/pmap.1:54
+msgid "Show everything the kernel provides"
+msgstr "Visa allt kärnan tillhandahåller"
+
+#. type: TP
+#: ../man/pmap.1:54
+#, no-wrap
+msgid "B<-p>, B<--show-path>"
+msgstr "B<-p>, B<--show-path>"
+
+#. type: Plain text
+#: ../man/pmap.1:57
+msgid "Show full path to files in the mapping column"
+msgstr "Visa den fullständiga sökvägen till filer i mappningskolumnen"
+
+#. type: TP
+#: ../man/pmap.1:57
+#, no-wrap
+msgid "B<-c>, B<--read-rc>"
+msgstr "B<-c>, B<--read-rc>"
+
+#. type: Plain text
+#: ../man/pmap.1:60
+msgid "Read the default configuration"
+msgstr "Läs standardkonfigurationen"
+
+#. type: TP
+#: ../man/pmap.1:60
+#, no-wrap
+msgid "B<-C>, B<--read-rc-from> I<file>"
+msgstr "B<-C>, B<--read-rc-from> I<fil>"
+
+#. type: Plain text
+#: ../man/pmap.1:63
+msgid "Read the configuration from I<file>"
+msgstr "Läs konfigurationen från I<fil>"
+
+#. type: TP
+#: ../man/pmap.1:63
+#, no-wrap
+msgid "B<-n>, B<--create-rc>"
+msgstr "B<-n>, B<--create-rc>"
+
+#. type: Plain text
+#: ../man/pmap.1:66
+msgid "Create new default configuration"
+msgstr "Skapa en ny standardkonfiguration"
+
+#. type: TP
+#: ../man/pmap.1:66
+#, no-wrap
+msgid "B<-N>, B<--create-rc-to> I<file>"
+msgstr "B<-N>, B<--create-rc-to> I<fil>"
+
+#. type: Plain text
+#: ../man/pmap.1:69
+msgid "Create new configuration to I<file>"
+msgstr "Skapa en ny konfiguration i I<fil>"
+
+#. type: Plain text
+#: ../man/pmap.1:72 ../man/skill.1:68 ../man/sysctl.8:116 ../man/w.1:66
+#: ../man/watch.1:97
+msgid "Display help text and exit."
+msgstr "Visa hjälptext och avsluta."
+
+#. type: Plain text
+#: ../man/pmap.1:82 ../man/watch.1:107
+msgid "Success."
+msgstr "Gick bra."
+
+#. type: Plain text
+#: ../man/pmap.1:85
+msgid "Failure."
+msgstr "Misslyckades."
+
+#. type: TP
+#: ../man/pmap.1:85
+#, no-wrap
+msgid "B<42>"
+msgstr "B<42>"
+
+#. type: Plain text
+#: ../man/pmap.1:88
+msgid "Did not find all processes asked for."
+msgstr "Hittade inte alla efterfrågade processer."
+
+#. type: Plain text
+#: ../man/pmap.1:93 ../man/pwdx.1:28
+msgid "B<ps>(1), B<pgrep>(1)"
+msgstr "B<ps>(1), B<pgrep>(1)"
+
+#. type: Plain text
+#: ../man/pmap.1:97
+msgid "No standards apply, but B<pmap> looks an awful lot like a SunOS command."
+msgstr "Inga standarder är tillämpliga, men B<pmap> liknar väldigt mycket ett SunOS-kommando."
+
+#. type: TH
+#: ../man/pwdx.1:12
+#, no-wrap
+msgid "PWDX"
+msgstr "PWDX"
+
+#. type: Plain text
+#: ../man/pwdx.1:15
+msgid "pwdx - report current working directory of a process"
+msgstr "pwdx — rapportera nuvarande arbetskatalog för en process"
+
+#. type: Plain text
+#: ../man/pwdx.1:18
+msgid "B<pwdx> [I<options>] I<pid> [...]"
+msgstr "B<pwdx> [I<flaggor>] I<pid> […]"
+
+#. type: Plain text
+#: ../man/pwdx.1:22
+msgid "Output version information and exit."
+msgstr "Skriv ut versionsinformation och avsluta."
+
+#. type: Plain text
+#: ../man/pwdx.1:25
+msgid "Output help screen and exit."
+msgstr "Skriv ut en hjälpskärm och avsluta."
+
+#. type: Plain text
+#: ../man/pwdx.1:32
+msgid "No standards apply, but B<pwdx> looks an awful lot like a SunOS command."
+msgstr "Inga standarder är tillämpliga, men B<pwdx> liknar väldigt mycket ett SunOS-kommando."
+
+#. type: Plain text
+#: ../man/pwdx.1:37
+msgid "E<.UR nmiell@gmail.com> Nicholas Miell E<.UE> wrote pwdx in 2004."
+msgstr "E<.UR nmiell@gmail.com> Nicholas Miell E<.UE> skrev pwdx 2004."
+
+#. type: TH
+#: ../man/skill.1:12
+#, no-wrap
+msgid "SKILL"
+msgstr "SKILL"
+
+#. type: TH
+#: ../man/skill.1:12 ../man/sysctl.8:14 ../man/ps.1:13
+#, no-wrap
+msgid "2023-08-19"
+msgstr "2023-08-19"
+
+#. type: Plain text
+#: ../man/skill.1:15
+msgid "skill, snice - send a signal or report process status"
+msgstr "skill, snice — skicka en signal eller rapportera processtatus"
+
+#. type: Plain text
+#: ../man/skill.1:20
+msgid "B<skill> [I<signal>] [I<options>] I<expression>"
+msgstr "B<skill> [I<signal>] [I<flaggor>] I<uttryck>"
+
+#. type: Plain text
+#: ../man/skill.1:25
+msgid "B<snice> [I<new priority>] [I<options>] I<expression>"
+msgstr "B<snice> [I<ny prioritet>] [I<flaggor>] I<uttryck>"
+
+#. type: Plain text
+#: ../man/skill.1:33
+msgid "These tools are obsolete and unportable. The command syntax is poorly defined. Consider using the B<killall>, B<pkill>, and B<pgrep> commands instead."
+msgstr "Dessa verktyg är föråldrade och oportabla. Kommandosyntaxen är dåligt definierad. Överväg att använda kommandona B<killall>, B<pkill> och B<pgrep> istället."
+
+#. type: Plain text
+#: ../man/skill.1:38
+msgid "The default signal for B<skill> is TERM. Use B<-l> or B<-L> to list available signals. Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0. Alternate signals may be specified in three ways: B<-9> B<-SIGKILL> B<-KILL>."
+msgstr "Standardsignalen för B<skill> är TERM. Använd B<-l> eller B<-L> för att lista tillgängliga signaler. Särskilt användbara signaler inkluderar HUP, INT, KILL, STOP, CONT och 0. Alternativa signaler kan anges på tre sätt: B<-9> B<-SIGKILL> B<-KILL>."
+
+#. type: Plain text
+#: ../man/skill.1:42
+msgid "The default priority for B<snice> is +4. Priority numbers range from +20 (slowest) to -20 (fastest). Negative priority numbers are restricted to administrative users."
+msgstr "Standardprioriteten för B<snice> är +4. Prioritetstal går från +20 (långsammast) till -20 (snabbast). Negativa prioritetsvärden är begränsade till administrativa användare."
+
+#. type: TP
+#: ../man/skill.1:43
+#, no-wrap
+msgid "B<-f>,B<\\ --fast>"
+msgstr "B<-f>,B<\\ --fast>"
+
+#. type: Plain text
+#: ../man/skill.1:46
+msgid "Fast mode. This option has not been implemented."
+msgstr "Snabbt läge. Denna flagga har inte implementerats."
+
+#. type: TP
+#: ../man/skill.1:46
+#, no-wrap
+msgid "B<-i>,B<\\ --interactive>"
+msgstr "B<-i>,B<\\ --interactive>"
+
+#. type: Plain text
+#: ../man/skill.1:49
+msgid "Interactive use. You will be asked to approve each action."
+msgstr "Interaktiv användning. Du kommer få en fråga om att godkänna varje åtgärd."
+
+#. type: TP
+#: ../man/skill.1:49
+#, no-wrap
+msgid "B<-l>,B<\\ --list>"
+msgstr "B<-l>,B<\\ --list>"
+
+#. type: Plain text
+#: ../man/skill.1:52
+msgid "List all signal names."
+msgstr "Lista alla signalnamn."
+
+#. type: Plain text
+#: ../man/skill.1:55
+msgid "List all signal names in a nice table."
+msgstr "Lista alla signalnamn i en trevlig tabell."
+
+#. type: TP
+#: ../man/skill.1:55
+#, no-wrap
+msgid "B<-n>,B<\\ --no-action>"
+msgstr "B<-n>,B<\\ --no-action>"
+
+#. type: Plain text
+#: ../man/skill.1:59
+msgid "No action; perform a simulation of events that would occur but do not actually change the system."
+msgstr "Ingen åtgärd; utför en simulering av de händelser som skulle ske men gör ingen faktisk ändring av systemet."
+
+#. type: TP
+#: ../man/skill.1:59
+#, no-wrap
+msgid "B<-v>,B<\\ --verbose>"
+msgstr "B<-v>,B<\\ --verbose>"
+
+#. type: Plain text
+#: ../man/skill.1:62
+msgid "Verbose; explain what is being done."
+msgstr "Utförlig; förklara vad som görs."
+
+#. type: TP
+#: ../man/skill.1:62
+#, no-wrap
+msgid "B<-w>,B<\\ --warnings>"
+msgstr "B<-w>,B<\\ --warnings>"
+
+#. type: Plain text
+#: ../man/skill.1:65
+msgid "Enable warnings. This option has not been implemented."
+msgstr "Aktivera varningar. Denna flagga har inte implementerats."
+
+#. type: SH
+#: ../man/skill.1:72
+#, no-wrap
+msgid "PROCESS SELECTION OPTIONS"
+msgstr "FLAGGOR FÖR VAL AV PROCESS"
+
+#. type: Plain text
+#: ../man/skill.1:75
+msgid "Selection criteria can be: terminal, user, pid, command. The options below may be used to ensure correct interpretation."
+msgstr "Urvalskriterier kan vara: terminal, användare, pid, kommando. Flaggorna nedan kan användas för att säkerställa rätt tolkning."
+
+#. type: TP
+#: ../man/skill.1:75
+#, no-wrap
+msgid "B<-t>, B<--tty> I<tty>"
+msgstr "B<-t>, B<--tty> I<tty>"
+
+#. type: Plain text
+#: ../man/skill.1:78
+msgid "The next expression is a terminal (tty or pty)."
+msgstr "Nästa uttryck är en terminal (tty eller pty)."
+
+#. type: TP
+#: ../man/skill.1:78
+#, no-wrap
+msgid "B<-u>, B<--user> I<user>"
+msgstr "B<-u>, B<--user> I<användare>"
+
+#. type: Plain text
+#: ../man/skill.1:81
+msgid "The next expression is a username."
+msgstr "Nästa uttryck är ett användarnamn."
+
+#. type: TP
+#: ../man/skill.1:81
+#, no-wrap
+msgid "B<-p>, B<--pid> I<pid>"
+msgstr "B<-p>, B<--pid> I<pid>"
+
+#. type: Plain text
+#: ../man/skill.1:84
+msgid "The next expression is a process ID number."
+msgstr "Nästa uttryck är ett process-ID-nummer."
+
+#. type: TP
+#: ../man/skill.1:84
+#, no-wrap
+msgid "B<-c>, B<--command> I<command>"
+msgstr "B<-c>, B<--command> I<kommando>"
+
+#. type: Plain text
+#: ../man/skill.1:87
+msgid "The next expression is a command name."
+msgstr "Nästa uttryck är ett kommandonamn."
+
+#. type: Plain text
+#: ../man/skill.1:90
+msgid "Match the processes that belong to the same namespace as pid."
+msgstr "Matcha processerna som tillhör samma namnrymd som pid."
+
+#. type: TP
+#: ../man/skill.1:90
+#, no-wrap
+msgid "B<--nslist >I<ns\\/>,\\,I<...\\/>"
+msgstr "B<--nslist >I<nr\\/>,\\,I<…\\/>"
+
+#. type: Plain text
+#: ../man/skill.1:94
+msgid "list which namespaces will be considered for the B<--ns> option. Available namespaces: ipc, mnt, net, pid, user, uts."
+msgstr "lista vilka namnrymder som skall beaktas av flaggan B<--ns>. Tillgängliga namnrymder: ipc, mnt, net, pid, user, uts."
+
+#. type: SH
+#: ../man/skill.1:95
+#, no-wrap
+msgid "SIGNALS"
+msgstr "SIGNALER"
+
+#. type: Plain text
+#: ../man/skill.1:99
+msgid "The behavior of signals is explained in B<signal>(7) manual page."
+msgstr "Beteendet hos signaler förklaras i manualsidan B<signal>(7)."
+
+#. type: TP
+#: ../man/skill.1:100
+#, no-wrap
+msgid "B<snice -c seti -c crack +7>"
+msgstr "B<snice -c seti -c crack +7>"
+
+#. type: Plain text
+#: ../man/skill.1:103
+msgid "+Slow down B<seti> and B<crack> commands."
+msgstr "+Sakta ner kommandona B<seti> och B<crack>."
+
+#. type: TP
+#: ../man/skill.1:103
+#, no-wrap
+msgid "B<skill -KILL -t /dev/pts/*>"
+msgstr "B<skill -KILL -t /dev/pts/*>"
+
+#. type: Plain text
+#: ../man/skill.1:106
+msgid "Kill users on PTY devices."
+msgstr "Döda användare på PTY-enheter."
+
+#. type: TP
+#: ../man/skill.1:106
+#, no-wrap
+msgid "B<skill -STOP -u viro -u lm -u davem>"
+msgstr "B<skill -STOP -u viro -u lm -u davem>"
+
+#. type: Plain text
+#: ../man/skill.1:109
+msgid "Stop three users."
+msgstr "Stoppa tre användare."
+
+#. type: Plain text
+#: ../man/skill.1:117
+msgid "B<kill>(1), B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), B<renice>(1), B<signal>(7)"
+msgstr "B<kill>(1), B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), B<renice>(1), B<signal>(7)"
+
+#. type: Plain text
+#: ../man/skill.1:119
+msgid "No standards apply."
+msgstr "Inga standarder är tillämpliga."
+
+#. type: Plain text
+#: ../man/skill.1:125
+msgid "E<.MT albert@users.sf.net> Albert Cahalan E<.ME> wrote skill and snice in 1999 as a replacement for a non-free version."
+msgstr "E<.MT albert@users.sf.net> Albert Cahalan E<.ME> skrev skill och snice 1999 som en ersättning för en ofri version."
+
+#. type: TH
+#: ../man/slabtop.1:14
+#, no-wrap
+msgid "SLABTOP"
+msgstr "SLABTOP"
+
+#. type: TH
+#: ../man/slabtop.1:14
+#, no-wrap
+msgid "2021-03-11"
+msgstr "2021-03-11"
+
+#. type: Plain text
+#: ../man/slabtop.1:17
+msgid "slabtop - display kernel slab cache information in real time"
+msgstr "slabtop — visa information om kärnans skivcache i realtid"
+
+#. type: Plain text
+#: ../man/slabtop.1:20
+msgid "B<slabtop> [I<options>]"
+msgstr "B<slabtop> [I<flaggor>]"
+
+#. type: Plain text
+#: ../man/slabtop.1:25
+msgid "B<slabtop> displays detailed kernel slab cache information in real time. It displays a listing of the top caches sorted by one of the listed sort criteria. It also displays a statistics header filled with slab layer information."
+msgstr "B<slabtop> visar detaljerad information om kärnans skiv-cache i realtid. Det visar en lista över toppskivorna sorterade efter en av de listade sorteringskriterierna. Det visar också ett huvud med statistisk information om skivnivåer."
+
+#. type: Plain text
+#: ../man/slabtop.1:30
+msgid "Normal invocation of B<slabtop> does not require any options. The behavior, however, can be fine-tuned by specifying one or more of the following flags:"
+msgstr "Normalt anrop av B<slabtop> kräver inte några flaggor. Beteendet kan dock finjusteras genom att ange en eller flera av följande flaggor:"
+
+#. type: TP
+#: ../man/slabtop.1:30
+#, no-wrap
+msgid "B<-d>, B<--delay>=I<N>"
+msgstr "B<-d>, B<--delay>=I<N>"
+
+#. type: Plain text
+#: ../man/slabtop.1:39
+msgid "Refresh the display every I<n> in seconds. By default, B<slabtop> refreshes the display every three seconds. To exit the program, hit B<q>. This cannot be combined with the B<-o> option."
+msgstr "Uppdatera presentationen var I<n>:e sekund. Som standard uppdaterar B<slabtop> presentationen var tredje sekund. För att avsluta programmet, skriv B<q>. Detta kan inte kombineras med flaggan B<-o>."
+
+#. type: TP
+#: ../man/slabtop.1:39
+#, no-wrap
+msgid "B<-s>, B<--sort>=I<S>"
+msgstr "B<-s>, B<--sort>=I<S>"
+
+#. type: Plain text
+#: ../man/slabtop.1:42
+msgid "Sort by I<S>, where I<S> is one of the sort criteria."
+msgstr "Sortera efter I<S>, där I<S> är ett av sorteringskriterierna."
+
+#. type: TP
+#: ../man/slabtop.1:42
+#, no-wrap
+msgid "B<-o>, B<--once>"
+msgstr "B<-o>, B<--once>"
+
+#. type: Plain text
+#: ../man/slabtop.1:45
+msgid "Display the output once and then exit."
+msgstr "Visa utdata en gång och avsluta sedan."
+
+#. type: Plain text
+#: ../man/slabtop.1:51
+msgid "Display usage information and exit."
+msgstr "Visa användningsinformation och avsluta."
+
+#. type: SH
+#: ../man/slabtop.1:51
+#, no-wrap
+msgid "SORT CRITERIA"
+msgstr "SORTERINGSKRITERIER"
+
+#. type: Plain text
+#: ../man/slabtop.1:55
+msgid "The following are valid sort criteria used to sort the individual slab caches and thereby determine what are the \"top\" slab caches to display. The default sort criteria is to sort by the number of objects (\"o\")."
+msgstr "Följande är giltiga sorteringskriterier som används för att sortera de enskilda skiv-cacharna och därigenom avgöra vilka â€toppâ€-skiv-cacharna som visas skall vara. Standardsorteringskriteriet är att sortera efter antal objekt (â€oâ€)."
+
+#. type: Plain text
+#: ../man/slabtop.1:59
+msgid "The sort criteria can also be changed while B<slabtop> is running by pressing the associated character."
+msgstr "Sorteringskriteriet kan även ändras medan B<slabtop> kör genom att trycka den tillhörande bokstaven."
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<character>"
+msgstr "B<tecken>"
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<description>"
+msgstr "B<beskrivning>"
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<header>"
+msgstr "B<huvud>"
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "a"
+msgstr "a"
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "number of active objects"
+msgstr "antal aktiva objekt"
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "ACTIVE"
+msgstr "AKTIVT"
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "b"
+msgstr "b"
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "objects per slab"
+msgstr "objekt per skiva"
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "OBJ/SLAB"
+msgstr "OBJ/SKIVA"
+
+#. type: tbl table
+#: ../man/slabtop.1:64 ../man/ps.1:909 ../man/ps.1:1081
+#, no-wrap
+msgid "c"
+msgstr "c"
+
+#. type: tbl table
+#: ../man/slabtop.1:64
+#, no-wrap
+msgid "cache size"
+msgstr "cachestorlek"
+
+#. type: tbl table
+#: ../man/slabtop.1:64
+#, no-wrap
+msgid "CACHE SIZE"
+msgstr "CACHESTORLEK"
+
+#. type: TP
+#: ../man/slabtop.1:65 ../man/ps.1:882
+#, no-wrap
+msgid "l"
+msgstr "l"
+
+#. type: tbl table
+#: ../man/slabtop.1:65
+#, no-wrap
+msgid "number of slabs"
+msgstr "antal skivor"
+
+#. type: tbl table
+#: ../man/slabtop.1:65
+#, no-wrap
+msgid "SLABS"
+msgstr "SKIVOR"
+
+#. type: tbl table
+#: ../man/slabtop.1:66 ../man/ps.1:932
+#, no-wrap
+msgid "v"
+msgstr "v"
+
+#. type: tbl table
+#: ../man/slabtop.1:66
+#, no-wrap
+msgid "number of active slabs"
+msgstr "antal aktiva skivor"
+
+#. type: tbl table
+#: ../man/slabtop.1:66 ../man/slabtop.1:69
+#, no-wrap
+msgid "N/A"
+msgstr "saknas"
+
+#. type: tbl table
+#: ../man/slabtop.1:67 ../man/ps.1:919
+#, no-wrap
+msgid "n"
+msgstr "n"
+
+#. type: tbl table
+#: ../man/slabtop.1:67
+#, no-wrap
+msgid "name"
+msgstr "namn"
+
+#. type: tbl table
+#: ../man/slabtop.1:67
+#, no-wrap
+msgid "NAME\\:"
+msgstr "NAMN\\:"
+
+#. type: tbl table
+#: ../man/slabtop.1:68 ../man/ps.1:921
+#, no-wrap
+msgid "o"
+msgstr "o"
+
+#. type: tbl table
+#: ../man/slabtop.1:68
+#, no-wrap
+msgid "number of objects"
+msgstr "antal objekt"
+
+#. type: tbl table
+#: ../man/slabtop.1:68
+#, no-wrap
+msgid "OBJS"
+msgstr "OBJ"
+
+#. type: tbl table
+#: ../man/slabtop.1:69 ../man/ps.1:922
+#, no-wrap
+msgid "p"
+msgstr "p"
+
+#. type: tbl table
+#: ../man/slabtop.1:69
+#, no-wrap
+msgid "pages per slab"
+msgstr "sidor per skiva"
+
+#. type: tbl table
+#: ../man/slabtop.1:70 ../man/ps.1:879 ../man/ps.1:926 ../man/ps.1:1631
+#, no-wrap
+msgid "s"
+msgstr "s"
+
+#. type: tbl table
+#: ../man/slabtop.1:70
+#, no-wrap
+msgid "object size"
+msgstr "objektstorlek"
+
+#. type: tbl table
+#: ../man/slabtop.1:70
+#, no-wrap
+msgid "OBJ SIZE"
+msgstr "OBJ-STRL"
+
+#. type: tbl table
+#: ../man/slabtop.1:71 ../man/ps.1:931
+#, no-wrap
+msgid "u"
+msgstr "u"
+
+#. type: tbl table
+#: ../man/slabtop.1:71
+#, no-wrap
+msgid "cache utilization"
+msgstr "cacheanvändning"
+
+#. type: tbl table
+#: ../man/slabtop.1:71
+#, no-wrap
+msgid "USE"
+msgstr "ANV"
+
+#. type: SH
+#: ../man/slabtop.1:73
+#, no-wrap
+msgid "COMMANDS"
+msgstr "KOMMANDON"
+
+#. type: Plain text
+#: ../man/slabtop.1:77
+msgid "B<slabtop> accepts keyboard commands from the user during use. The following are supported. In the case of letters, both cases are accepted."
+msgstr "B<slabtop> tar emot tangentbordskommandon från användaren under körning. Följande stödjs. Vad gäller bokstäver tas både versaler och gemener emot."
+
+#. type: Plain text
+#: ../man/slabtop.1:81
+msgid "Each of the valid sort characters are also accepted, to change the sort routine. See the section B<SORT CRITERIA>."
+msgstr "Var och en av de giltiga sorteringskriterierna tas också emot, för att ändra sorteringsrutinen. Se avsnittet B<SORTERINGSKRITERIER>."
+
+#. type: TP
+#: ../man/slabtop.1:81
+#, no-wrap
+msgid "B<E<lt>SPACEBARE<gt>>"
+msgstr "B<E<lt>MELLANSLAGE<gt>>"
+
+#. type: Plain text
+#: ../man/slabtop.1:84
+msgid "Refresh the screen."
+msgstr "Uppdatera skärmen."
+
+#. type: TP
+#: ../man/slabtop.1:84
+#, no-wrap
+msgid "B<Q>"
+msgstr "B<Q>"
+
+#. type: Plain text
+#: ../man/slabtop.1:87
+msgid "Quit the program."
+msgstr "Avsluta programmet."
+
+#. type: TP
+#: ../man/slabtop.1:88
+#, no-wrap
+msgid "I</proc/slabinfo>"
+msgstr "I</proc/slabinfo>"
+
+#. type: Plain text
+#: ../man/slabtop.1:91
+msgid "slab information"
+msgstr "skivinformation"
+
+#. type: Plain text
+#: ../man/slabtop.1:96
+msgid "B<free>(1), B<ps>(1), B<top>(1), B<vmstat>(8)"
+msgstr "B<free>(1), B<ps>(1), B<top>(1), B<vmstat>(8)"
+
+#. type: Plain text
+#: ../man/slabtop.1:102
+msgid "Currently, B<slabtop> requires a 2.4 or later kernel (specifically, a version 1.1 or later I</proc/slabinfo>). Kernel 2.2 should be supported in the future."
+msgstr "För närvarande kräver B<slabtop> en kärna 2.4 eller senare (specifikt, version 1.1 eller senare av I</proc/slabinfo>). Kärna 2.2 bör stödjas i framtiden."
+
+#. type: Plain text
+#: ../man/slabtop.1:108
+msgid "The B<slabtop> statistic header is tracking how many bytes of slabs are being used and is not a measure of physical memory. The 'Slab' field in the I</proc/meminfo> file is tracking information about used slab physical memory."
+msgstr "Statistikhuvudet i B<slabtop> följer hur mÃ¥nga byte av skivor som används och är inte ett mÃ¥tt pÃ¥ fysiskt minne. Fältet â€Slab†i filen I</proc/meminfo> följer information om skivors använda fysiska minne."
+
+#. type: Plain text
+#: ../man/slabtop.1:114
+msgid "The B<CACHE SIZE> column is not accurate, it's the upper limit of memory used by specific slab. When system using slub (most common case) is under high memory pressure, there are slab order fallbacks, which means \"pages per slab\" is not constant and may decrease."
+msgstr "Kolumnen B<CACHE-STRL> är inte precis, det är den övre gränsen pÃ¥ minne som används av en specifik slab. När ett system som använder slub (det vanligaste fallet) är under högt minnestryck finns det reserver för slab-ordrar, vilket betyder att â€sidor per slab†inte är konstant och kan minska."
+
+#. type: SH
+#: ../man/slabtop.1:114 ../man/tload.1:58 ../man/uptime.1:56 ../man/w.1:102
+#, no-wrap
+msgid "AUTHORS"
+msgstr "UPPHOVSMÄN"
+
+#. type: Plain text
+#: ../man/slabtop.1:116
+msgid "Written by Chris Rivera and Robert Love."
+msgstr "Skrivet av Chris Rivera och Robert Love."
+
+#. type: Plain text
+#: ../man/slabtop.1:120
+msgid "B<slabtop> was inspired by Martin Bligh's perl script, B<vmtop>."
+msgstr "B<slabtop> inspirerades av Martin Blighs perl-skript B<vmtop>."
+
+#. type: TH
+#: ../man/sysctl.8:14
+#, no-wrap
+msgid "SYSCTL"
+msgstr "SYSCTL"
+
+#. type: TH
+#: ../man/sysctl.8:14 ../man/vmstat.8:13
+#, no-wrap
+msgid "System Administration"
+msgstr "Systemadministration"
+
+#. type: Plain text
+#: ../man/sysctl.8:17
+msgid "sysctl - configure kernel parameters at runtime"
+msgstr "sysctl — konfigurera kärnparametrar under gång"
+
+#. type: Plain text
+#: ../man/sysctl.8:20
+msgid "B<sysctl> [I<options>] [I<variable>[B<=>I<value>]] [...]"
+msgstr "B<sysctl> [I<flaggor>] [I<variabel>[B<=>I<värde>]] […]"
+
+#. type: Plain text
+#: ../man/sysctl.8:23
+msgid "B<sysctl -p> [I<file> or I<regexp>] [...]"
+msgstr "B<sysctl -p> [I<fil> eller I<reguttr>] […]"
+
+#. type: Plain text
+#: ../man/sysctl.8:31
+msgid "B<sysctl> is used to modify kernel parameters at runtime. The parameters available are those listed under I</proc/sys/>. Procfs is required for B<sysctl> support in Linux. You can use B<sysctl> to both read and write sysctl data."
+msgstr "B<sysctl> används för att ändra kärnparametrar under gång. De tillgängliga parametrarna är de som listas under B</proc/sys/>. Procfs krävs för att stödja B<sysctl> i Linux. Du kan använda B<sysctl> både för att läsa och skriva sysctl-data."
+
+#. type: SH
+#: ../man/sysctl.8:31
+#, no-wrap
+msgid "PARAMETERS"
+msgstr "PARAMETRAR"
+
+#. type: TP
+#: ../man/sysctl.8:32
+#, no-wrap
+msgid "I<variable>"
+msgstr "B<variabel>"
+
+#. type: Plain text
+#: ../man/sysctl.8:36
+msgid "The name of a key to read from. An example is kernel.ostype. The '/' separator is also accepted in place of a '.'."
+msgstr "Namnet pÃ¥ en nyckel att läsa ifrÃ¥n. Ett exempel är kernel.ostype. Separatorn â€/†godkänns ocksÃ¥ istället för en â€.â€."
+
+#. type: TP
+#: ../man/sysctl.8:36
+#, no-wrap
+msgid "I<variable>=I<value>"
+msgstr "I<variabel>=I<värde>"
+
+#. type: Plain text
+#: ../man/sysctl.8:47
+msgid "To set a key, use the form I<variable>=I<value> where I<variable> is the key and I<value> is the value to set it to. If the value contains quotes or characters which are parsed by the shell, you may need to enclose the value in double quotes."
+msgstr "För att sätta en nyckel, använd formen I<variabel>=I<värde> där I<variabel> är nyckeln och I<värde> är värdet att sätta den till. Om värdet innehåller citationstecken eller tecken som tolkas av skalet kan du behöva omge värdet med citationstecken."
+
+#. type: TP
+#: ../man/sysctl.8:47
+#, no-wrap
+msgid "B<-n>, B<--values>"
+msgstr "B<-n>, B<--values>"
+
+#. type: Plain text
+#: ../man/sysctl.8:50
+msgid "Use this option to disable printing of the key name when printing values."
+msgstr "Använd denna flagga för att slå av utskrift av nyckelnamnet när värden skrivs."
+
+#. type: TP
+#: ../man/sysctl.8:50
+#, no-wrap
+msgid "B<-e>, B<--ignore>"
+msgstr "B<-e>, B<--ignore>"
+
+#. type: Plain text
+#: ../man/sysctl.8:53
+msgid "Use this option to ignore errors about unknown keys."
+msgstr "Använd denna flagga för att ignorera fel för okända nycklar."
+
+#. type: TP
+#: ../man/sysctl.8:53
+#, no-wrap
+msgid "B<-N>, B<--names>"
+msgstr "B<-N>, B<--names>"
+
+#. type: Plain text
+#: ../man/sysctl.8:57
+msgid "Use this option to only print the names. It may be useful with shells that have programmable completion."
+msgstr "Använd denna flagga för att bara skriva namnen. Det kan vara användbart med skal som har programmerbar komplettering."
+
+#. type: Plain text
+#: ../man/sysctl.8:60
+msgid "Use this option to not display the values set to stdout."
+msgstr "Använd denna flagga för att inte visa värdena som sätts på standard ut."
+
+#. type: TP
+#: ../man/sysctl.8:60
+#, no-wrap
+msgid "B<-w>, B<--write>"
+msgstr "B<-w>, B<--write>"
+
+#. type: Plain text
+#: ../man/sysctl.8:64
+msgid "Force all arguments to be write arguments and print an error if they cannot be parsed this way."
+msgstr "Tvinga alla argument att vara skrivargument och skriv ett fel om de inte kan tolkas på det sättet."
+
+#. type: TP
+#: ../man/sysctl.8:64
+#, no-wrap
+msgid "B<-p>[I<FILE>], B<--load>[=I<FILE>]"
+msgstr "B<-p>[I<FIL>], B<--load>[=I<FIL>]"
+
+#. type: Plain text
+#: ../man/sysctl.8:72
+msgid "Load in B<sysctl> settings from the file specified or I</etc/sysctl.conf> if none given. Specifying - as filename means reading data from standard input. Using this option will mean arguments to B<sysctl> are files, which are read in the order they are specified. The file argument may be specified as regular expression."
+msgstr "Läs in B<sysctl>-inställningar från filen som anges eller I</etc/sysctl.conf> om ingen anges. Att ange - som ett filnamn betyder att läsa data från standard in. Användning av denna flagga kommer betyda att argument till B<sysctl> är filer, vilka läses i den ordning de anges. Filargumentet kan anges som ett reguljärt uttryck."
+
+#. type: TP
+#: ../man/sysctl.8:72
+#, no-wrap
+msgid "B<-a>, B<--all>"
+msgstr "B<-a>, B<--all>"
+
+#. type: Plain text
+#: ../man/sysctl.8:75
+msgid "Display all values currently available."
+msgstr "Visa alla värden som för närvarande är tillgängliga."
+
+#. type: TP
+#: ../man/sysctl.8:75
+#, no-wrap
+msgid "B<--deprecated>"
+msgstr "B<--deprecated>"
+
+#. type: Plain text
+#: ../man/sysctl.8:80
+msgid "Include deprecated parameters to B<--all> values listing."
+msgstr "Inkludera utgående parametrar i värdelistningen med B<--all>."
+
+#. type: TP
+#: ../man/sysctl.8:80
+#, no-wrap
+msgid "B<-b>, B<--binary>"
+msgstr "B<-b>, B<--binary>"
+
+#. type: Plain text
+#: ../man/sysctl.8:83
+msgid "Print value without new line."
+msgstr "Skriv värdet utan nyrad."
+
+#. type: TP
+#: ../man/sysctl.8:83
+#, no-wrap
+msgid "B<--system>"
+msgstr "B<--system>"
+
+#. type: Plain text
+#: ../man/sysctl.8:88
+msgid "Load settings from all system configuration files. See the B<SYSTEM FILE PRECEDENCE> section below."
+msgstr "Läs in inställningar från alla systemkonfigurationsfiler. Se avsnittet B<SYSTEMFILSPRECEDENS> nedan."
+
+#. type: TP
+#: ../man/sysctl.8:88
+#, no-wrap
+msgid "B<-r>, B<--pattern> I<pattern>"
+msgstr "B<-r>, B<--pattern> I<mönster>"
+
+#. type: Plain text
+#: ../man/sysctl.8:95
+msgid "Only apply settings that match I<pattern>. The I<pattern> uses extended regular expression syntax."
+msgstr "Verkställ endast inställningar som matchar I<mönster>. I<Mönstret> använder syntaxen för utökade reguljära uttryck."
+
+#. type: TP
+#: ../man/sysctl.8:95 ../man/ps.1:147
+#, no-wrap
+msgid "B<-A>"
+msgstr "B<-A>"
+
+#. type: Plain text
+#: ../man/sysctl.8:98 ../man/sysctl.8:107
+msgid "Alias of B<-a>"
+msgstr "Alias för B<-a>"
+
+#. type: TP
+#: ../man/sysctl.8:98 ../man/ps.1:156
+#, no-wrap
+msgid "B<-d>"
+msgstr "B<-d>"
+
+#. type: Plain text
+#: ../man/sysctl.8:101
+msgid "Alias of B<-h>"
+msgstr "Alias för B<-h>"
+
+#. type: TP
+#: ../man/sysctl.8:101 ../man/ps.1:417
+#, no-wrap
+msgid "B<-f>"
+msgstr "B<-f>"
+
+#. type: Plain text
+#: ../man/sysctl.8:104
+msgid "Alias of B<-p>"
+msgstr "Alias för B<-p>"
+
+#. type: TP
+#: ../man/sysctl.8:107
+#, no-wrap
+msgid "B<-o>"
+msgstr "B<-o>"
+
+#. type: Plain text
+#: ../man/sysctl.8:110 ../man/sysctl.8:113
+msgid "Does nothing, exists for BSD compatibility."
+msgstr "Gör ingenting, finns för kompatibilitet med BSD."
+
+#. type: SH
+#: ../man/sysctl.8:119
+#, no-wrap
+msgid "SYSTEM FILE PRECEDENCE"
+msgstr "SYSTEMFILSPRECEDENS"
+
+#. type: Plain text
+#: ../man/sysctl.8:125
+msgid "When using the B<--system> option, B<sysctl> will read files from directories in the following list in given order from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored."
+msgstr "När man använder flaggan B<--system> kommer B<sysctl> läsa filer från kataloger i följande lista i angiven ordning från början till slut. När en fil med ett angivet filnamn lästs in kommer eventuella filer med samma namn i senare kataloger ingoreras."
+
+#. type: Plain text
+#: ../man/sysctl.8:127
+msgid "/etc/sysctl.d/*.conf"
+msgstr "/etc/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:129
+msgid "/run/sysctl.d/*.conf"
+msgstr "/run/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:131
+msgid "/usr/local/lib/sysctl.d/*.conf"
+msgstr "/usr/local/lib/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:133
+msgid "/usr/lib/sysctl.d/*.conf"
+msgstr "/usr/lib/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:135
+msgid "/lib/sysctl.d/*.conf"
+msgstr "/lib/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:137
+msgid "/etc/sysctl.conf"
+msgstr "/etc/sysctl.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:143
+msgid "All configuration files are sorted in lexicographic order, regardless of the directory they reside in. Configuration files can either be completely replaced (by having a new configuration file with the same name in a directory of higher priority) or partially replaced (by having a configuration file that is ordered later)."
+msgstr "Alla konfigurationsfiler sorteras i lexikografisk ordning, oavsett vilken katalog de finns i. Konfigurationsfiler kan antingen ersättas helt (genom att ha en ny konfigurationsfil med samma namn i en katalog med högre prioritet) eller ersättas delvis (genom att ha en konfigurationsfil som ordnas senare)."
+
+#. type: Plain text
+#: ../man/sysctl.8:145
+msgid "/sbin/sysctl -a"
+msgstr "/sbin/sysctl -a"
+
+#. type: Plain text
+#: ../man/sysctl.8:147
+msgid "/sbin/sysctl -n kernel.hostname"
+msgstr "/sbin/sysctl -n kernel.hostname"
+
+#. type: Plain text
+#: ../man/sysctl.8:149
+msgid "/sbin/sysctl -w kernel.domainname=\"example.com\""
+msgstr "/sbin/sysctl -w kernel.domainname=\"example.com\""
+
+#. type: Plain text
+#: ../man/sysctl.8:151
+msgid "/sbin/sysctl -p/etc/sysctl.conf"
+msgstr "/sbin/sysctl -p/etc/sysctl.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:153
+msgid "/sbin/sysctl -a --pattern forward"
+msgstr "/sbin/sysctl -a --pattern forward"
+
+#. type: Plain text
+#: ../man/sysctl.8:155
+msgid "/sbin/sysctl -a --pattern forward$"
+msgstr "/sbin/sysctl -a --pattern forward$"
+
+#. type: Plain text
+#: ../man/sysctl.8:157
+msgid "/sbin/sysctl -a --pattern 'net.ipv4.conf.(eth|wlan)0.arp'"
+msgstr "/sbin/sysctl -a --pattern 'net.ipv4.conf.(eth|wlan)0.arp'"
+
+#. type: Plain text
+#: ../man/sysctl.8:159
+msgid "/sbin/sysctl --pattern '\\[char94]net.ipv6' --system"
+msgstr "/sbin/sysctl --pattern '\\[char94]net.ipv6' --system"
+
+#. type: SH
+#: ../man/sysctl.8:159
+#, no-wrap
+msgid "DEPRECATED PARAMETERS"
+msgstr "FÖRÅLDRADE PARAMETRAR"
+
+#. type: Plain text
+#: ../man/sysctl.8:169
+msgid "The B<base_reachable_time> and B<retrans_time> are deprecated. The B<sysctl> command does not allow changing values of these parameters. Users who insist to use deprecated kernel interfaces should push values to B</proc> file system by other means. For example:"
+msgstr "B<base_reachable_time> och B<retrans_time> är föråldrade. Kommandot B<sysctl> tillåter inte ändring av dessa parametrar. Användare som insisterar på att använda föråldrade kärngränssnitt får trycka värdet till filsystemet B</proc> på annat sätt. Till exempel:"
+
+#. type: Plain text
+#: ../man/sysctl.8:171
+msgid "echo 256 E<gt> /proc/sys/net/ipv6/neigh/eth0/base_reachable_time"
+msgstr "echo 256 E<gt> /proc/sys/net/ipv6/neigh/eth0/base_reachable_time"
+
+#. type: Plain text
+#: ../man/sysctl.8:173
+msgid "I</proc/sys>"
+msgstr "I</proc/sys>"
+
+#. type: Plain text
+#: ../man/sysctl.8:175 ../man/sysctl.conf.5:66
+msgid "I</etc/sysctl.d/*.conf>"
+msgstr "I</etc/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:177 ../man/sysctl.conf.5:68
+msgid "I</run/sysctl.d/*.conf>"
+msgstr "I</run/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:179 ../man/sysctl.conf.5:70
+msgid "I</usr/local/lib/sysctl.d/*.conf>"
+msgstr "I</usr/local/lib/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:181 ../man/sysctl.conf.5:72
+msgid "I</usr/lib/sysctl.d/*.conf>"
+msgstr "I</usr/lib/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:183 ../man/sysctl.conf.5:74
+msgid "I</lib/sysctl.d/*.conf>"
+msgstr "I</lib/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:185 ../man/sysctl.conf.5:76
+msgid "I</etc/sysctl.conf>"
+msgstr "I</etc/sysctl.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:189
+msgid "B<proc>(5), B<sysctl.conf>(5), B<regex>(7)"
+msgstr "B<proc>(5), B<sysctl.conf>(5), B<regex>(7)"
+
+#. type: Plain text
+#: ../man/sysctl.8:193 ../man/sysctl.conf.5:89
+msgid "E<.UR staikos@0wned.org> George Staikos E<.UE>"
+msgstr "E<.UR staikos@0wned.org> George Staikos E<.UE>"
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "SYSCTL.CONF"
+msgstr "SYSCTL.CONF"
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "2021-09-15"
+msgstr "2021-09-15"
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "File Formats"
+msgstr "Filformat"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:16
+msgid "sysctl.conf - sysctl preload/configuration file"
+msgstr "sysctl.conf — förinställnings-/konfigurationsfil till sysctl"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:21
+msgid "B<sysctl.conf> is a simple file containing sysctl values to be read in and set by B<sysctl>. The syntax is simply as follows:"
+msgstr "B<sysctl.conf> är en enkel fil som innehåller sysctl-värden att läsas in och sättas av B<sysctl>. Syntaxen är som följer:"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:27
+#, no-wrap
+msgid ""
+"# comment\n"
+"; comment\n"
+msgstr ""
+"# kommentar\n"
+"; kommentar\n"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:29
+#, no-wrap
+msgid "token = value\n"
+msgstr "symbol = värde\n"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:35
+msgid "Note that blank lines are ignored, and whitespace before and after a token or value is ignored, although a value can contain whitespace within. Lines which begin with a I<#> or I<;> are considered comments and ignored."
+msgstr "Observera att tomma rader ignoreras, och blanktecken före och efter en symbol eller ett värde ignoreras, även om ett värde kan innehålla blanktecken inuti. Rader som börjar med en B<#> eller ett B<;> betraktas som kommentarer och ignoreras."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:38
+msgid "If a line begins with a single -, any attempts to set the value that fail will be ignored."
+msgstr "Om en rad börjar med ett ensamt - kommer alla misslyckade försök att sätta värdet ignoreras."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:48
+msgid "As the B</etc/sysctl.conf> file is used to override default kernel parameter values, only a small number of parameters is predefined in the file. Use I</sbin/sysctl\\ -a> or follow B<sysctl>(8) to list all possible parameters. The description of individual parameters can be found in the kernel documentation."
+msgstr "Eftersom filen B</etc/sysctl.conf> används för att åsidosätta standardvärden på kärnparametrar är endast ett litet antal parametrar fördefinierade i filen. Använd I</sbin/sysctl\\ -a> eller följ B<sysctl>(8) för att lista alla möjliga parametrar. Beskrivningen av enskilda parametrar finns i kärnans dokumentation."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:51
+msgid "Maximum supported line length of the value is 4096 characters due to a limitation of I</proc> entries in Linux kernel."
+msgstr "Maximal radlängt som stöds för värdet är 4096 tecken på grund av en begränsning hos I</proc>-poster i Linuxkärnan."
+
+#. type: SH
+#: ../man/sysctl.conf.5:51
+#, no-wrap
+msgid "EXAMPLE"
+msgstr "EXEMPEL"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:61
+#, no-wrap
+msgid ""
+"# sysctl.conf sample\n"
+"#\n"
+" kernel.domainname = example.com\n"
+"; this one has a space which will be written to the sysctl!\n"
+" kernel.modprobe = /sbin/mod probe\n"
+msgstr ""
+"# sysctl.conf-exempel\n"
+"#\n"
+" kernel.domainname = example.com\n"
+"; detta värde har ett mellanslag som kommer att skrivas av sysctl!\n"
+" kernel.modprobe = /sbin/mod probe\n"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:83
+msgid "The paths where B<sysctl> preload files usually exist. See also B<sysctl> option I<--system>."
+msgstr "Sökvägarna där förinställningsfiler till B<sysctl> normalt finns. Se även flaggan I<--system> till B<sysctl>."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:85
+msgid "B<sysctl>(8)"
+msgstr "B<sysctl>(8)"
+
+#. type: TH
+#: ../man/tload.1:12
+#, no-wrap
+msgid "TLOAD"
+msgstr "TLOAD"
+
+#. type: Plain text
+#: ../man/tload.1:15
+msgid "tload - graphic representation of system load average"
+msgstr "tload — grafisk representation av systemets genomsnittslast"
+
+#. type: Plain text
+#: ../man/tload.1:18
+msgid "B<tload> [I<options>] [I<tty>]"
+msgstr "B<tload> [I<flaggor>] [I<tty>]"
+
+#. type: Plain text
+#: ../man/tload.1:25
+msgid "B<tload> prints a graph of the current system load average to the specified I<tty> (or the tty of the B<tload> process if none is specified)."
+msgstr "B<tload> skriver ut en graf över systemets aktuella genomsnittslast på den angivna I<tty>n (eller B<tload>-processens tty om ingen anges)."
+
+#. type: TP
+#: ../man/tload.1:26
+#, no-wrap
+msgid "B<-s>, B<--scale> I<number>"
+msgstr "B<-s>, B<--scale> I<tal>"
+
+#. type: Plain text
+#: ../man/tload.1:31
+msgid "The scale option allows a vertical scale to be specified for the display (in characters between graph ticks); thus, a smaller value represents a larger scale, and vice versa."
+msgstr "Flaggan scale gör att en vertikal skala kan anges för visning (i antal tecken mellan steg i grafen); alltså representerar ett mindre värde en större skala och vice versa."
+
+#. type: TP
+#: ../man/tload.1:31
+#, no-wrap
+msgid "B<-d>, B<--delay> I<seconds>"
+msgstr "B<-d>, B<--delay> I<sekunder>"
+
+#. type: Plain text
+#: ../man/tload.1:35
+msgid "The delay sets the delay between graph updates in I<seconds>."
+msgstr "Fördröjningen anger väntetiden mellan uppdateringar av grafen i I<sekunder>."
+
+#. type: Plain text
+#: ../man/tload.1:38
+msgid "Display this help text."
+msgstr "Visa denna hjälptext."
+
+#. type: Plain text
+#: ../man/tload.1:45
+msgid "I</proc/loadavg> load average information"
+msgstr "I</proc/loadavg> information om genomsnittslast"
+
+#. type: Plain text
+#: ../man/tload.1:50
+msgid "B<ps>(1), B<top>(1), B<uptime>(1), B<w>(1)"
+msgstr "B<ps>(1), B<top>(1), B<uptime>(1), B<w>(1)"
+
+#. type: Plain text
+#: ../man/tload.1:58
+msgid "The B<-d>I< delay> option sets the time argument for an B<alarm>(2); if -d 0 is specified, the alarm is set to 0, which will never send the B<SIGALRM> and update the display."
+msgstr "Flaggan B<-d>I< fördröjning> anger tidsargumentet för ett anrop av B<alarm>(2); om -d 0 anges är larmet satt till 0, vilket aldrig kommer skicka någon B<SIGALRM> och uppdatera visningen."
+
+#. type: Plain text
+#: ../man/tload.1:66
+msgid "Branko Lankester, E<.UR david@\\:ods.\\:com> David Engel E<.UE , and> E<.UR johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE .>"
+msgstr "Branko Lankester, E<.UR david@\\:ods.\\:com> David Engel E<.UE , och> E<.UR johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE .>"
+
+#. type: TH
+#: ../man/uptime.1:13
+#, no-wrap
+msgid "UPTIME"
+msgstr "UPTIME"
+
+#. type: TH
+#: ../man/uptime.1:13
+#, no-wrap
+msgid "December 2012"
+msgstr "December 2012"
+
+#. type: Plain text
+#: ../man/uptime.1:16
+msgid "uptime - Tell how long the system has been running."
+msgstr "uptime — Berätta hur länge systemet har kört."
+
+#. type: Plain text
+#: ../man/uptime.1:19
+msgid "B<uptime> [I<options>]"
+msgstr "B<uptime> [I<flaggor>]"
+
+#. type: Plain text
+#: ../man/uptime.1:24
+msgid "B<uptime> gives a one line display of the following information. The current time, how long the system has been running, how many users are currently logged on, and the system load averages for the past 1, 5, and 15 minutes."
+msgstr "B<uptime> visar en rad med följande information. Den aktuella tiden, hur länge systemet har kört, hur många användare som för tillfället är inloggade och systemets genomsnittslast under de senaste 1, 5 och 15 minuterna."
+
+#. type: Plain text
+#: ../man/uptime.1:27
+msgid "This is the same information contained in the header line displayed by B<w>(1)."
+msgstr "Detta är samma information som finns i huvudraden som visas av B<w>(1)."
+
+#. type: Plain text
+#: ../man/uptime.1:36
+msgid "System load averages is the average number of processes that are either in a runnable or uninterruptable state. A process in a runnable state is either using the CPU or waiting to use the CPU. A process in uninterruptable state is waiting for some I/O access, eg waiting for disk. The averages are taken over the three time intervals. Load averages are not normalized for the number of CPUs in a system, so a load average of 1 means a single CPU system is loaded all the time while on a 4 CPU system it means it was idle 75% of the time."
+msgstr "Systemets genomsnittslast är det genomsnittliga antalet processer som antingen är i körbart eller ej avbrytbart tillstånd. En process i körbart tillstånd använder antingen CPU:n eller väntar på att använda CPU:n. En process i ej avbrytbart tillstånd väntar på någon I/O-åtkomst, t.ex. väntar på disk. Genomsnitten tas över de tre tidsintervallen. Lastgenomsnitt är inte normaliserade för antalet CPU:er i ett system, så en genomsnittslast på 1 betyder att ett system med en ensam CPU är belastat hela tiden medan på ett system med 4 CPU:er betyder det att det var inaktivt 75 % av tiden."
+
+#. type: TP
+#: ../man/uptime.1:37
+#, no-wrap
+msgid "B<-p>, B<--pretty>"
+msgstr "B<-p>, B<--pretty>"
+
+#. type: Plain text
+#: ../man/uptime.1:40
+msgid "show uptime in pretty format"
+msgstr "visa uppetiden i ett snyggt format"
+
+#. type: Plain text
+#: ../man/uptime.1:43
+msgid "display this help text"
+msgstr "visa denna hjälptext"
+
+#. type: TP
+#: ../man/uptime.1:43
+#, no-wrap
+msgid "B<-s>, B<--since>"
+msgstr "B<-s>, B<--since>"
+
+#. type: Plain text
+#: ../man/uptime.1:46
+msgid "system up since, in yyyy-mm-dd HH:MM:SS format"
+msgstr "systemet är uppe sedan, på formatet åååå-mm-dd HH:MM:SS"
+
+#. type: Plain text
+#: ../man/uptime.1:49
+msgid "display version information and exit"
+msgstr "visa versionsinformation och avsluta"
+
+#. type: TP
+#: ../man/uptime.1:50 ../man/w.1:89
+#, no-wrap
+msgid "I</var/run/utmp>"
+msgstr "I</var/run/utmp>"
+
+#. type: Plain text
+#: ../man/uptime.1:53 ../man/w.1:92
+msgid "information about who is currently logged on"
+msgstr "information om vem som är inloggad för närvarande"
+
+#. type: TP
+#: ../man/uptime.1:53 ../man/w.1:92
+#, no-wrap
+msgid "I</proc>"
+msgstr "I</proc>"
+
+#. type: Plain text
+#: ../man/uptime.1:56 ../man/w.1:95
+msgid "process information"
+msgstr "processinformation"
+
+#. type: Plain text
+#: ../man/uptime.1:66
+msgid "B<uptime> was written by E<.UR greenfie@gauss.\\:rutgers.\\:edu> Larry Greenfield E<.UE> and E<.UR johnsonm@sunsite.\\:unc.\\:edu> Michael K. Johnson E<.UE>"
+msgstr "B<uptime> skrevs av E<.UR greenfie@gauss.\\:rutgers.\\:edu> Larry Greenfield E<.UE> och E<.UR johnsonm@sunsite.\\:unc.\\:edu> Michael K. Johnson E<.UE>"
+
+#. type: Plain text
+#: ../man/uptime.1:71
+msgid "B<ps>(1), B<top>(1), B<utmp>(5), B<w>(1)"
+msgstr "B<ps>(1), B<top>(1), B<utmp>(5), B<w>(1)"
+
+#. type: TH
+#: ../man/vmstat.8:13
+#, no-wrap
+msgid "VMSTAT"
+msgstr "VMSTAT"
+
+#. type: TH
+#: ../man/vmstat.8:13
+#, no-wrap
+msgid "2023-01-18"
+msgstr "2023-01-18"
+
+#. type: Plain text
+#: ../man/vmstat.8:16
+msgid "vmstat - Report virtual memory statistics"
+msgstr "vmstat — Rapportera statistik över virtuellt minne"
+
+#. type: Plain text
+#: ../man/vmstat.8:20
+msgid "B<vmstat> [options] [I<delay> [I<count>]]"
+msgstr "B<vmstat> [flaggor] [I<fördröjning> [I<antal>]]"
+
+#. type: Plain text
+#: ../man/vmstat.8:24
+msgid "B<vmstat> reports information about processes, memory, paging, block IO, traps, disks and cpu activity."
+msgstr "B<vmstat> rapporterar information om processer, minne, sidväxling, block-I/O, fällor, disk- och cpu-aktivitet."
+
+#. type: Plain text
+#: ../man/vmstat.8:29
+msgid "The first report produced gives averages since the last reboot. Additional reports give information on a sampling period of length I<delay>. The process and memory reports are instantaneous in either case."
+msgstr "Den första producerade rapporten ger genomsnitt sedan senaste omstarten. Följande rapporter ger information om en samplingsperiod med längden I<fördröjning>. Process- och minnesrapporterna är ögonblickliga i båda fallen."
+
+#. type: TP
+#: ../man/vmstat.8:30
+#, no-wrap
+msgid "I<delay>"
+msgstr "I<fördröjning>"
+
+#. type: Plain text
+#: ../man/vmstat.8:37
+msgid "The I<delay> between updates in seconds. If no I<delay> is specified, only one report is printed with the average values since boot."
+msgstr "I<Fördröjningen> mellan uppdateringar i sekunder. Om ingen I<fördröjning> anges skrivs endast en rapport med genomsnittsvärdena sedan start."
+
+#. type: TP
+#: ../man/vmstat.8:37
+#, no-wrap
+msgid "I<count>"
+msgstr "I<antal>"
+
+#. type: Plain text
+#: ../man/vmstat.8:44
+msgid "Number of updates. In absence of I<count>, when I<delay> is defined, default is infinite."
+msgstr "Antal uppdateringar. I avsaknad av I<antal>, när I<fördröjning> är definierad, är standardvärdet oändligt."
+
+#. type: TP
+#: ../man/vmstat.8:44
+#, no-wrap
+msgid "B<-a>, B<--active>"
+msgstr "B<-a>, B<--active>"
+
+#. type: Plain text
+#: ../man/vmstat.8:47
+msgid "Display active and inactive memory, given a 2.5.41 kernel or better."
+msgstr "Visa aktivt och inaktivt minne, förutsatt en kärna 2.5.41 eller bättre."
+
+#. type: TP
+#: ../man/vmstat.8:47
+#, no-wrap
+msgid "B<-f>, B<--forks>"
+msgstr "B<-f>, B<--forks>"
+
+#. type: Plain text
+#: ../man/vmstat.8:55
+msgid "The B<-f> switch displays the number of forks since boot. This includes the fork, vfork, and clone system calls, and is equivalent to the total number of tasks created. Each process is represented by one or more tasks, depending on thread usage. This display does not repeat."
+msgstr "Flaggan B<-f> visar antalet avgreningar sedan start. Detta inkluderar systemanropen fork, vfork och clone, och är likvärdigt med antalet skapade uppgifter. Varje process representeras av en eller flera uppgifter, beroende på trådanvändning. Denna visning uppdateras inte."
+
+#. type: TP
+#: ../man/vmstat.8:55
+#, no-wrap
+msgid "B<-m>, B<--slabs>"
+msgstr "B<-m>, B<--slabs>"
+
+#. type: Plain text
+#: ../man/vmstat.8:58
+msgid "Displays slabinfo."
+msgstr "Visa skivinformation."
+
+#. type: TP
+#: ../man/vmstat.8:58
+#, no-wrap
+msgid "B<-n>, B<--one-header>"
+msgstr "B<-n>, B<--one-header>"
+
+#. type: Plain text
+#: ../man/vmstat.8:61
+msgid "Display the header only once rather than periodically."
+msgstr "Visa endast huvudet en gång istället för periodiskt."
+
+#. type: TP
+#: ../man/vmstat.8:61
+#, no-wrap
+msgid "B<-s>, B<--stats>"
+msgstr "B<-s>, B<--stats>"
+
+#. type: Plain text
+#: ../man/vmstat.8:65
+msgid "Displays a table of various event counters and memory statistics. This display does not repeat."
+msgstr "Visar en tabell över olika händelseräknare och minnesstatistik. Denna visning upprepas inte."
+
+#. type: TP
+#: ../man/vmstat.8:65
+#, no-wrap
+msgid "B<-d>, B<--disk>"
+msgstr "B<-d>, B<--disk>"
+
+#. type: Plain text
+#: ../man/vmstat.8:68
+msgid "Report disk statistics (2.5.70 or above required)."
+msgstr "Rapportera diskstatistik (2.5.70 eller senare krävs)."
+
+#. type: TP
+#: ../man/vmstat.8:68
+#, no-wrap
+msgid "B<-D>, B<--disk-sum>"
+msgstr "B<-D>, B<--disk-sum>"
+
+#. type: Plain text
+#: ../man/vmstat.8:71
+msgid "Report some summary statistics about disk activity."
+msgstr "Rapportera en del sammanfattande statistik om diskaktivitet."
+
+#. type: TP
+#: ../man/vmstat.8:71
+#, no-wrap
+msgid "B<-p>, B<--partition> I<device>"
+msgstr "B<-p>, B<--partition> I<enhet>"
+
+#. type: Plain text
+#: ../man/vmstat.8:74
+msgid "Detailed statistics about partition (2.5.70 or above required)."
+msgstr "Detaljerad statistik om partitioner (2.5.70 eller senare krävs)."
+
+#. type: TP
+#: ../man/vmstat.8:74
+#, no-wrap
+msgid "B<-S>, B<--unit> I<character>"
+msgstr "B<-S>, B<--unit> I<tecken>"
+
+#. type: Plain text
+#: ../man/vmstat.8:86
+msgid "Switches outputs between 1000 (I<k>), 1024 (I<K>), 1000000 (I<m>), or 1048576 (I<M>) bytes. Note this does not change the swap (si/so) or block (bi/bo) fields."
+msgstr "Byter utmatning mellan 1000 (I<k>), 1024 (I<K>), 1000000 (I<m>) eller 1048576 (I<M>) byte. Observera att detta inte ändrar fälten för växling (vi/vo) eller block (bi/bu)."
+
+#. type: TP
+#: ../man/vmstat.8:86
+#, no-wrap
+msgid "B<-t>, B<--timestamp>"
+msgstr "B<-t>, B<--timestamp>"
+
+#. type: Plain text
+#: ../man/vmstat.8:89
+msgid "Append timestamp to each line"
+msgstr "Lägg till en tidsstämpel till varje rad"
+
+#. type: Plain text
+#: ../man/vmstat.8:94
+msgid "Wide output mode (useful for systems with higher amount of memory, where the default output mode suffers from unwanted column breakage). The output is wider than 80 characters per line."
+msgstr "Brett utmatningsläge (användbart för system med större mängder minne, där standardläget för utmatning drabbas av oönskade trasiga kolumner). Utmatningen är bredare än 80 tecken per rad."
+
+#. type: TP
+#: ../man/vmstat.8:94
+#, no-wrap
+msgid "B<-y>, B<--no-first>"
+msgstr "B<-y>, B<--no-first>"
+
+#. type: Plain text
+#: ../man/vmstat.8:97
+msgid "Omits first report with statistics since system boot."
+msgstr "Uteslut den första rapporten med statistik sedan systemstart."
+
+#. type: SH
+#: ../man/vmstat.8:104
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR VM MODE"
+msgstr "FÄLTBESKRIVNING FÖR VM-LÄGET"
+
+#. type: SS
+#: ../man/vmstat.8:105
+#, no-wrap
+msgid "Procs"
+msgstr "Procs"
+
+#. type: Plain text
+#: ../man/vmstat.8:109
+#, no-wrap
+msgid ""
+"r: The number of runnable processes (running or waiting for run time).\n"
+"b: The number of processes blocked waiting for I/O to complete.\n"
+msgstr ""
+"k: Antalet körbara processer (körande eller väntande på körtid).\n"
+"b: Antalet processer blockerade väntande på I/O för att fortsätta.\n"
+
+#. type: SS
+#: ../man/vmstat.8:110
+#, no-wrap
+msgid "Memory"
+msgstr "Minne"
+
+#. type: Plain text
+#: ../man/vmstat.8:112 ../man/vmstat.8:122
+msgid "These are affected by the B<--unit> option."
+msgstr "Dessa påverkas av flaggan B<--unit>."
+
+#. type: Plain text
+#: ../man/vmstat.8:119
+#, no-wrap
+msgid ""
+"swpd: the amount of swap memory used.\n"
+"free: the amount of idle memory.\n"
+"buff: the amount of memory used as buffers.\n"
+"cache: the amount of memory used as cache.\n"
+"inact: the amount of inactive memory. (B<-a> option)\n"
+"active: the amount of active memory. (B<-a> option)\n"
+msgstr ""
+"växl: mängden använt växlingsminne.\n"
+"fritt: mängden oanvänt minne.\n"
+"buff: mängden minne använt som buffertar.\n"
+"cache: mängden minne använt som cache.\n"
+"inakt: mängden inaktivt minne. (flaggan B<-a>)\n"
+"aktivt: mängden aktivt minne. (flaggan B<-a>)\n"
+
+#. type: SS
+#: ../man/vmstat.8:120
+#, no-wrap
+msgid "Swap"
+msgstr "Växling"
+
+#. type: Plain text
+#: ../man/vmstat.8:125
+#, no-wrap
+msgid ""
+"si: Amount of memory swapped in from disk (/s).\n"
+"so: Amount of memory swapped to disk (/s).\n"
+msgstr ""
+"vi: Mängden minne växlat in från disk (/s).\n"
+"vu: Mängden minne växlat ut till disk (/s).\n"
+
+#. type: SS
+#: ../man/vmstat.8:126 ../man/vmstat.8:161
+#, no-wrap
+msgid "IO"
+msgstr "IO"
+
+#. type: Plain text
+#: ../man/vmstat.8:130
+#, no-wrap
+msgid ""
+"bi: Kibibyte received from a block device (KiB/s).\n"
+"bo: Kibibyte sent to a block device (KiB/s).\n"
+msgstr ""
+"bi: Kibibyte mottagna från en blockenhet (KiB/s).\n"
+"bu: Kibibyte skickade till en blockenhet (KiB/s).\n"
+
+#. type: SS
+#: ../man/vmstat.8:131
+#, no-wrap
+msgid "System"
+msgstr "System"
+
+#. type: Plain text
+#: ../man/vmstat.8:135
+#, no-wrap
+msgid ""
+"in: The number of interrupts per second, including the clock.\n"
+"cs: The number of context switches per second.\n"
+msgstr ""
+"avb: Antalet avbrott per sekund, inklusive klockan.\n"
+"ktxb: Antalet kontextbyten per sekund.\n"
+
+#. type: ds PU
+#: ../man/vmstat.8:136 ../man/top.1:37
+#, no-wrap
+msgid "CPU"
+msgstr "CPU"
+
+#. type: Plain text
+#: ../man/vmstat.8:138
+msgid "These are percentages of total CPU time."
+msgstr "Detta är procentandelar av total CPU-tid."
+
+#. type: Plain text
+#: ../man/vmstat.8:145
+#, no-wrap
+msgid ""
+"us: Time spent running non-kernel code. (user time, including nice time)\n"
+"sy: Time spent running kernel code. (system time)\n"
+"id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.\n"
+"wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle.\n"
+"st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.\n"
+"gu: Time spent running KVM guest code (guest time, including guest nice).\n"
+msgstr ""
+"an: Tid tillbringad att köra icke-kärnkod. (användartid, inklusive nice-tid)\n"
+"sy: Tid tillbringad att köra kärnkod. (systemtid)\n"
+"in: Tid tillbringad inaktiv. Före Linux 2.5.41 inkluderar detta IO-väntetid.\n"
+"vä: Tid tillbringad väntande på IO. Före Linux 2.5.41 inkluderat i inaktiv.\n"
+"st: Tid stulen från en virtuell maskin. Före Linux 2.6.11, okänd.\n"
+"gä: Tid tillbringar med att köra KVM-gästkod (gästtid, inklusive gäst-nice).\n"
+
+#. type: SH
+#: ../man/vmstat.8:146
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR DISK MODE"
+msgstr "FÄLTBESKRIVNING FÖR DISK-LÄGET"
+
+#. type: SS
+#: ../man/vmstat.8:147
+#, no-wrap
+msgid "Reads"
+msgstr "Läsningar"
+
+#. type: Plain text
+#: ../man/vmstat.8:153
+#, no-wrap
+msgid ""
+"total: Total reads completed successfully\n"
+"merged: grouped reads (resulting in one I/O)\n"
+"sectors: Sectors read successfully\n"
+"ms: milliseconds spent reading\n"
+msgstr ""
+"totalt: Totalt avslutade lyckade läsningar\n"
+"grupp: grupperade läsningar (resulterar i en I/O)\n"
+"sektor: Sektorer lyckat lästa\n"
+"ms: millisekunder tillbringat med läsningar\n"
+
+#. type: SS
+#: ../man/vmstat.8:154
+#, no-wrap
+msgid "Writes"
+msgstr "Skrivningar"
+
+#. type: Plain text
+#: ../man/vmstat.8:160
+#, no-wrap
+msgid ""
+"total: Total writes completed successfully\n"
+"merged: grouped writes (resulting in one I/O)\n"
+"sectors: Sectors written successfully\n"
+"ms: milliseconds spent writing\n"
+msgstr ""
+"totalt: Totalt avslutade lyckade skrivningar\n"
+"grupp: grupperade skrivningar (resulterar i en I/O)\n"
+"sektor: Sektorer lyckat skrivna\n"
+"ms: millisekunder tillbringat med skrivningar\n"
+
+#. type: Plain text
+#: ../man/vmstat.8:165
+#, no-wrap
+msgid ""
+"cur: I/O in progress\n"
+"s: seconds spent for I/O\n"
+msgstr ""
+"akt: pågående I/O\n"
+"s: sekunder tillbringat i I/O\n"
+
+#. type: SH
+#: ../man/vmstat.8:166
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR DISK PARTITION MODE"
+msgstr "FÄLTBESKRIVNING FÖR DISKPARTITIONSLÄGET"
+
+#. type: Plain text
+#: ../man/vmstat.8:172
+#, no-wrap
+msgid ""
+"reads: Total number of reads issued to this partition\n"
+"read sectors: Total read sectors for partition\n"
+"writes : Total number of writes issued to this partition\n"
+"requested writes: Total number of write requests made for partition\n"
+msgstr ""
+"läsningar: Totalt antal läsningar skickade till denna partition\n"
+"lästa sektorer: Totalt lästa sektorer från partitionen\n"
+"skrivningr: Totalt antal skrivningar skickade till denna partition\n"
+"beg skrivn: Totalt antal skrivbegäranden gjorda för partitionen\n"
+
+#. type: SH
+#: ../man/vmstat.8:173
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR SLAB MODE"
+msgstr "FÄLTBESKRIVNING FÖR SKIVLÄGET"
+
+#. type: Plain text
+#: ../man/vmstat.8:177
+msgid "Slab mode shows statistics per slab, for more information about this information see B<slabinfo>(5)"
+msgstr "Slab-läge visar statistik per slab, för mer information om denna information se B<slabinfo>(5)"
+
+#. type: Plain text
+#: ../man/vmstat.8:184
+#, no-wrap
+msgid ""
+"cache: Cache name\n"
+"num: Number of currently active objects\n"
+"total: Total number of available objects\n"
+"size: Size of each object\n"
+"pages: Number of pages with at least one active object\n"
+msgstr ""
+"cache: Cachenamn\n"
+"antal: Antal för närvarande aktiva objekt\n"
+"totalt: Totalt antal tillgängliga objekt\n"
+"strlk: Storlek på varje objekt\n"
+"sidor: Antal sidor med åtminstone ett aktivt objekt\n"
+
+#. type: Plain text
+#: ../man/vmstat.8:191
+msgid "B<vmstat> requires read access to files under I</proc>. The B<-m> requires read access to I</proc/slabinfo> which may not be available to standard users. Mount options for I</proc> such as I<subset=pid> may also impact what is visible."
+msgstr "B<vmstat> kräver läsåtkomst av filer under I</proc>. Flaggan B<-m> kräver läsåtkomst av I</proc/slabinfo> vilket kanske inte är tillgängligt för vanliga användare. Monteringsflaggor för I</proc> såsom I<subset=pid> kan också påverka vad som är synligt."
+
+#. type: Plain text
+#: ../man/vmstat.8:199
+msgid "B<free>(1), B<iostat>(1), B<mpstat>(1), B<ps>(1), B<sar>(1), B<top>(1), B<slabinfo>(5)"
+msgstr "B<free>(1), B<iostat>(1), B<mpstat>(1), B<ps>(1), B<sar>(1), B<top>(1), B<slabinfo>(5)"
+
+#. type: TP
+#: ../man/w.1:14 ../man/ps.1:852
+#, no-wrap
+msgid "W"
+msgstr "W"
+
+#. type: TH
+#: ../man/w.1:14
+#, no-wrap
+msgid "2023-01-15"
+msgstr "2023-01-15"
+
+#. type: Plain text
+#: ../man/w.1:17
+msgid "w - Show who is logged on and what they are doing."
+msgstr "w — Visa vem som är inloggad och vad de gör."
+
+#. type: Plain text
+#: ../man/w.1:20
+msgid "B<w> [I<options>] [I<user>]"
+msgstr "B<w> [I<flaggor>] [I<användare>]"
+
+#. type: Plain text
+#: ../man/w.1:26
+msgid "B<w> displays information about the users currently on the machine, and their processes. The header shows, in this order, the current time, how long the system has been running, how many users are currently logged on, and the system load averages for the past 1, 5, and 15 minutes."
+msgstr "B<w> visar information om de användare som just nu är inloggade på maskinen och deras processer. Rubrikraden visar, i denna ordning, den aktuella tiden, hur länge systemet har kört, hur många användare som för tillfället är inloggade och systemets genomsnittslast under de senaste 1, 5 och 15 minuterna."
+
+#. type: Plain text
+#: ../man/w.1:30
+msgid "The following entries are displayed for each user: login name, the tty name, the remote host, login time, idle time, JCPU, PCPU, and the command line of their current process."
+msgstr "Följande poster visas för varje användare: inloggningsnamn, tty-namnet, fjärrvärden, inloggningstid, inaktiv tid, JCPU, PCPU och kommandoraden för deras aktuella process."
+
+#. type: Plain text
+#: ../man/w.1:34
+msgid "The JCPU time is the time used by all processes attached to the tty. It does not include past background jobs, but does include currently running background jobs."
+msgstr "JCPU-tiden är tiden som använts av alla processer kopplade till tty:n. Det inkluderar inte tidigare bakgrundsjobb, men det inkluderar de för närvarande körande bakgrundsjobben."
+
+#. type: Plain text
+#: ../man/w.1:37
+msgid "The PCPU time is the time used by the current process, named in the \"what\" field."
+msgstr "PCPU-tiden är tiden som används av den aktuella processen, med namnet i â€vadâ€-fältet."
+
+#. type: SH
+#: ../man/w.1:37
+#, no-wrap
+msgid "COMMAND-LINE OPTIONS"
+msgstr "KOMMANDORADSFLAGGOR"
+
+#. type: TP
+#: ../man/w.1:38
+#, no-wrap
+msgid "B<-h>, B<--no-header>"
+msgstr "B<-h>, B<--no-header>"
+
+#. type: Plain text
+#: ../man/w.1:41
+msgid "Don't print the header."
+msgstr "Skriv inte ut huvudet."
+
+#. type: TP
+#: ../man/w.1:41
+#, no-wrap
+msgid "B<-u>, B<--no-current>"
+msgstr "B<-u>, B<--no-current>"
+
+#. type: Plain text
+#: ../man/w.1:50
+msgid "Ignores the username while figuring out the current process and cpu times. To demonstrate this, do a B<su> and do a B<w> and a B<w -u>."
+msgstr "Ignorerar användarnamnet när programmet listar ut den aktuella processen och cpu-tider. För att demonstrera detta, gör B<su> och gör B<w> och B<w -u>."
+
+#. type: TP
+#: ../man/w.1:50
+#, no-wrap
+msgid "B<-s>, B<--short>"
+msgstr "B<-s>, B<--short>"
+
+#. type: Plain text
+#: ../man/w.1:53
+msgid "Use the short format. Don't print the login time, JCPU or PCPU times."
+msgstr "Använd kort format. Skriv inte ut inloggningstid, JCPU- eller PCPU-tider."
+
+#. type: TP
+#: ../man/w.1:53
+#, no-wrap
+msgid "B<-f>, B<--from>"
+msgstr "B<-f>, B<--from>"
+
+#. type: Plain text
+#: ../man/w.1:63
+msgid "Toggle printing the B<from> (remote hostname) field. The default as released is for the B<from> field to not be printed, although your system administrator or distribution maintainer may have compiled a version in which the B<from> field is shown by default."
+msgstr "Växla utskriften av fältet B<från> (fjärrvärdsnamn). Standard i utgåvan är att fältet B<från> inte visas, men din systemadministratör eller distributionsansvarige kan ha kompilerat en version i vilken fältet B<från> visas som standard."
+
+#. type: TP
+#: ../man/w.1:66
+#, no-wrap
+msgid "B<-i>, B<--ip-addr>"
+msgstr "B<-i>, B<--ip-addr>"
+
+#. type: Plain text
+#: ../man/w.1:69
+msgid "Display IP address instead of hostname for B<from> field."
+msgstr "Visa IP-adress istället för värdnamn i fältet B<från>."
+
+#. type: TP
+#: ../man/w.1:69
+#, no-wrap
+msgid "B<-p>, B<--pids>"
+msgstr "B<-p>, B<--pids>"
+
+#. type: Plain text
+#: ../man/w.1:72
+msgid "Display pid of the login process/the \"what\" process in the \"what\" field."
+msgstr "Visa pid för inloggningsprocessen/â€vadâ€-processen i fältet â€vadâ€."
+
+#. type: TP
+#: ../man/w.1:75
+#, no-wrap
+msgid "B<-o>, B<--old-style>"
+msgstr "B<-o>, B<--old-style>"
+
+#. type: Plain text
+#: ../man/w.1:78
+msgid "Old style output. Prints blank space for idle times less than one minute."
+msgstr "Gammaldags utmatning. Skriver mellanslag för inaktiva tider mindre än en minut."
+
+#. type: TP
+#: ../man/w.1:78
+#, no-wrap
+msgid "B<user >"
+msgstr "B<användare >"
+
+#. type: Plain text
+#: ../man/w.1:81
+msgid "Show information about the specified user only."
+msgstr "Visa information endast om den angivna användaren."
+
+#. type: SH
+#: ../man/w.1:81 ../man/watch.1:133
+#, no-wrap
+msgid "ENVIRONMENT"
+msgstr "MILJÖ"
+
+#. type: TP
+#: ../man/w.1:82
+#, no-wrap
+msgid "PROCPS_USERLEN"
+msgstr "PROCPS_USERLEN"
+
+#. type: Plain text
+#: ../man/w.1:85
+msgid "Override the default width of the username column. Defaults to 8."
+msgstr "Åsidosätt standardbredden på kolumnen för användarnamn. Standard är 8."
+
+#. type: TP
+#: ../man/w.1:85
+#, no-wrap
+msgid "PROCPS_FROMLEN"
+msgstr "PROCPS_FROMLEN"
+
+#. type: Plain text
+#: ../man/w.1:88
+msgid "Override the default width of the from column. Defaults to 16."
+msgstr "Åsidosätt standardbredden på kolumnen från. Standard är 16."
+
+#. type: Plain text
+#: ../man/w.1:102
+msgid "B<free>(1), B<ps>(1), B<top>(1), B<uptime>(1), B<utmp>(5), B<who>(1)"
+msgstr "B<free>(1), B<ps>(1), B<top>(1), B<uptime>(1), B<utmp>(5), B<who>(1)"
+
+#. type: Plain text
+#: ../man/w.1:112
+msgid "B<w> was re-written almost entirely by Charles Blake, based on the version by E<.UR greenfie@\\:gauss.\\:rutgers.\\:edu> Larry Greenfield E<.UE> and E<.UR johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE>"
+msgstr "B<w> skrevs om nestan fullständigt av Charles Blake, baserat på versionen av E<.UR greenfie@gauss.\\:rutgers.\\:edu> Larry Greenfield E<.UE> och E<.UR johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE>"
+
+#. type: TH
+#: ../man/watch.1:13
+#, no-wrap
+msgid "WATCH"
+msgstr "WATCH"
+
+#. type: TH
+#: ../man/watch.1:13
+#, no-wrap
+msgid "2023-01-17"
+msgstr "2023-01-17"
+
+#. type: Plain text
+#: ../man/watch.1:16
+msgid "watch - execute a program periodically, showing output fullscreen"
+msgstr "watch — kör ett program periodiskt och visa utdata i helskärm"
+
+#. type: Plain text
+#: ../man/watch.1:19
+msgid "B<watch> [I<options>] I<command>"
+msgstr "B<watch> [I<flaggor>] I<kommando>"
+
+#. type: Plain text
+#: ../man/watch.1:26
+msgid "B<watch> runs I<command> repeatedly, displaying its output and errors (the first screenfull). This allows you to watch the program output change over time. By default, I<command> is run every 2 seconds and B<watch> will run until interrupted."
+msgstr "B<watch> kör I<kommando> upprepade gånger, och visar dess utmatning och fel (den första skärmen). Detta gör att du kan se programmets utdata ändras över tiden. Som standard körs I<kommando> varannan sekund och B<watch> körs tills det avbryts."
+
+#. type: TP
+#: ../man/watch.1:27
+#, no-wrap
+msgid "B<-b>, B<--beep>"
+msgstr "B<-b>, B<--beep>"
+
+#. type: Plain text
+#: ../man/watch.1:30
+msgid "Beep if command has a non-zero exit."
+msgstr "Pip om kommandot har en slutstatus skild från noll."
+
+#. type: TP
+#: ../man/watch.1:30
+#, no-wrap
+msgid "B<-c>, B<--color>"
+msgstr "B<-c>, B<--color>"
+
+#. type: Plain text
+#: ../man/watch.1:33
+msgid "Interpret ANSI color and style sequences."
+msgstr "Tolka ANSI:s färg- och stilsekvenser."
+
+#. type: TP
+#: ../man/watch.1:33
+#, no-wrap
+msgid "B<-C>, B<--no-color>"
+msgstr "B<-C>, B<--no-color>"
+
+#. type: Plain text
+#: ../man/watch.1:36
+msgid "Do not interpret ANSI color and style sequences."
+msgstr "Tolka inte ANSI:s färg- och stilsekvenser."
+
+#. type: TP
+#: ../man/watch.1:36
+#, no-wrap
+msgid "B<-d>, B<--differences>[=I<permanent>]"
+msgstr "B<-d>, B<--differences>[=I<permanent>]"
+
+#. type: Plain text
+#: ../man/watch.1:42
+msgid "Highlight the differences between successive updates. If the optional I<permanent> argument is specified then B<watch> will show all changes since the first iteration."
+msgstr "Markera skillnaderna mellan påföljande uppdateringar. Om det valfria argumentet I<permanent> anges kommer B<watch> visa alla ändringar sedan den första iterationen."
+
+#. type: TP
+#: ../man/watch.1:42
+#, no-wrap
+msgid "B<-e>, B<--errexit>"
+msgstr "B<-e>, B<--errexit>"
+
+#. type: Plain text
+#: ../man/watch.1:45
+msgid "Freeze updates on command error, and exit after a key press."
+msgstr "Frys uppdateringar vid kommandofel, och avsluta efter en tangenttryckning."
+
+#. type: TP
+#: ../man/watch.1:45
+#, no-wrap
+msgid "B<-g>, B<--chgexit>"
+msgstr "B<-g>, B<--chgexit>"
+
+#. type: Plain text
+#: ../man/watch.1:50
+msgid "Exit when the output of I<command> changes."
+msgstr "Avsluta när utdata från I<kommando> ändras."
+
+#. type: TP
+#: ../man/watch.1:50
+#, no-wrap
+msgid "B<-n>, B<--interval> I<seconds>"
+msgstr "B<-n>, B<--interval> I<sekunder>"
+
+#. type: Plain text
+#: ../man/watch.1:56
+msgid "Specify update interval. The command will not allow quicker than 0.1 second interval, in which the smaller values are converted. Both '.' and ',' work for any locales. The B<WATCH_INTERVAL> environment can be used to persistently set a non-default interval (following the same rules and formatting)."
+msgstr "Ange uppdateringsintervall. Kommandot kommer inte tillÃ¥ta snabbare uppdateringar än 0,1 sekunders intervall, dÃ¥ mindre värden kommer konverteras. BÃ¥de â€.†och â€,†fungerar för alla lokaler. Miljövariabeln B<WATCH_INTERVAL> kan användas för att sätta ett bestÃ¥ende annat intervall än standard (och följer samma regler och formatering)."
+
+#. type: TP
+#: ../man/watch.1:56
+#, no-wrap
+msgid "B<-p>, B<--precise>"
+msgstr "B<-p>, B<--precise>"
+
+#. type: Plain text
+#: ../man/watch.1:69
+msgid "Make B<watch> attempt to run I<command> every B<--interval> I<seconds>. Try it with B<ntptime> (if present) and notice how the fractional seconds stays (nearly) the same, as opposed to normal mode where they continuously increase."
+msgstr "Gör att B<watch> försöker köra I<kommando> var B<--interval> I<sekund>. Prova det med B<ntptime> (om tillgängligt) och notera hur delarna av sekunden är (nästan) desamma, till skillnad mot det normala läget då de ökar kontinuerligt."
+
+#. type: TP
+#: ../man/watch.1:69
+#, no-wrap
+msgid "B<-q>, B<--equexit> E<lt>cyclesE<gt>"
+msgstr "B<-q>, B<--equexit> E<lt>cyklerE<gt>"
+
+#. type: Plain text
+#: ../man/watch.1:74
+msgid "Exit when output of I<command> does not change for the given number of cycles."
+msgstr "Avsluta när utmatningen från I<kommando> inte ändras under det angivna antalet cykler."
+
+#. type: TP
+#: ../man/watch.1:74
+#, no-wrap
+msgid "B<-r>, B<--no-rerun>"
+msgstr "B<-r>, B<--no-rerun>"
+
+#. type: Plain text
+#: ../man/watch.1:78
+msgid "Do not run the program on terminal resize, the output of the program will re-appear at the next regular run time."
+msgstr "Kör inte programmet när terminalens storlek ändras, utdata från programmet kommer återkomma vid nästa ordinarie körtillfälle."
+
+#. type: TP
+#: ../man/watch.1:78
+#, no-wrap
+msgid "B<-t>, B<--no-title>"
+msgstr "B<-t>, B<--no-title>"
+
+#. type: Plain text
+#: ../man/watch.1:82
+msgid "Turn off the header showing the interval, command, and current time at the top of the display, as well as the following blank line."
+msgstr "Slå av huvudet som visar intervallet, kommandot och aktuell tid längst upp på skärmen, liksom den följande tomma raden."
+
+#. type: TP
+#: ../man/watch.1:82
+#, no-wrap
+msgid "B<-w>, B<--no-wrap>"
+msgstr "B<-w>, B<--no-wrap>"
+
+#. type: Plain text
+#: ../man/watch.1:85
+msgid "Turn off line wrapping. Long lines will be truncated instead of wrapped to the next line."
+msgstr "Slå av radbrytning. Långa rader kommer huggas av istället för att brytas till nästa rad."
+
+#. type: TP
+#: ../man/watch.1:85
+#, no-wrap
+msgid "B<-x>, B<--exec>"
+msgstr "B<-x>, B<--exec>"
+
+#. type: Plain text
+#: ../man/watch.1:94
+msgid "Pass I<command> to B<exec>(2) instead of B<sh -c> which reduces the need to use extra quoting to get the desired effect."
+msgstr "Skicka I<kommando> till B<exec>(2) istället för B<sh -c> vilket reducerar behovet av extra citationstecken för att få den önskade effekten."
+
+#. type: TP
+#: ../man/watch.1:97
+#, no-wrap
+msgid "B<-v>, B<--version>"
+msgstr "B<-v>, B<--version>"
+
+#. type: Plain text
+#: ../man/watch.1:110
+msgid "Various failures."
+msgstr "Diverse fel."
+
+#. type: TP
+#: ../man/watch.1:110
+#, no-wrap
+msgid "B<2>"
+msgstr "B<2>"
+
+#. type: Plain text
+#: ../man/watch.1:113
+msgid "Forking the process to watch failed."
+msgstr "Att grena av processen att övervaka misslyckades."
+
+#. type: TP
+#: ../man/watch.1:113
+#, no-wrap
+msgid "B<3>"
+msgstr "B<3>"
+
+#. type: Plain text
+#: ../man/watch.1:116
+msgid "Replacing child process stdout with write side pipe failed."
+msgstr "Att ersätta en barnprocess standard ut med skrivsidan av ett rör misslyckades."
+
+#. type: TP
+#: ../man/watch.1:116
+#, no-wrap
+msgid "B<4>"
+msgstr "B<4>"
+
+#. type: Plain text
+#: ../man/watch.1:119
+msgid "Command execution failed."
+msgstr "Kommandokörningen misslyckades."
+
+#. type: TP
+#: ../man/watch.1:119
+#, no-wrap
+msgid "B<5>"
+msgstr "B<5>"
+
+#. type: Plain text
+#: ../man/watch.1:122
+msgid "Closing child process write pipe failed."
+msgstr "Att stänga barnprocessens skrivrör misslyckades."
+
+#. type: TP
+#: ../man/watch.1:122
+#, no-wrap
+msgid "B<7>"
+msgstr "B<7>"
+
+#. type: Plain text
+#: ../man/watch.1:125
+msgid "IPC pipe creation failed."
+msgstr "Att skapa ett IPC-rör misslyckades."
+
+#. type: TP
+#: ../man/watch.1:125
+#, no-wrap
+msgid "B<8>"
+msgstr "B<8>"
+
+#. type: Plain text
+#: ../man/watch.1:130
+msgid "Getting child process return value with B<waitpid>(2) failed, or command exited up on error."
+msgstr "Att få reda på barnprocessens returvärde med B<waitpid>(2) misslyckades, eller kommandot gav upp vid ett fel."
+
+#. type: TP
+#: ../man/watch.1:130
+#, no-wrap
+msgid "B<other>"
+msgstr "B<övriga>"
+
+#. type: Plain text
+#: ../man/watch.1:133
+msgid "The watch will propagate command exit status as child exit status."
+msgstr "Watch kommer skicka vidare kommandots slutstatus som barnets slutstatus."
+
+#. type: Plain text
+#: ../man/watch.1:137
+msgid "The behavior of B<watch> is affected by the following environment variables."
+msgstr "Beteendet hos B<watch> påverkas av följande miljövariabler."
+
+#. type: TP
+#: ../man/watch.1:138
+#, no-wrap
+msgid "B<WATCH_INTERVAL>"
+msgstr "B<WATCH_INTERVAL>"
+
+#. type: Plain text
+#: ../man/watch.1:143
+msgid "Update interval, follows the same rules as the B<--interval> command line option."
+msgstr "Uppdateringsintervall, följer samma regler som kommandoradsflaggan B<--interval>."
+
+#. type: Plain text
+#: ../man/watch.1:151
+msgid "POSIX option processing is used (i.e., option processing stops at the first non-option argument). This means that flags after I<command> don't get interpreted by B<watch> itself."
+msgstr "POSIX flagghantering används (d.v.s., flaggbearbetning slutar vid det första argumentet som inte är en flagga). Detta betyder att flaggor efter I<kommando> inte tolkas av B<watch> självt."
+
+#. type: Plain text
+#: ../man/watch.1:159
+msgid "Upon terminal resize, the screen will not be correctly repainted until the next scheduled update. All B<--differences> highlighting is lost on that update as well. When using the B<--no-rerun> option, no output of will be visible."
+msgstr "När storleken på terminalen ändras kommer inte skärmen ritas om korrekt förrän nästa schemalagda uppdatering. All markering med B<--differences> går också förlorade vid den uppdateringen. När flaggan B<--no-rerun> används kommer ingen utdata vara synlig."
+
+#. type: Plain text
+#: ../man/watch.1:162
+msgid "Non-printing characters are stripped from program output. Use B<cat -v> as part of the command pipeline if you want to see them."
+msgstr "Icke skrivbara tecken tas bort från programs utdata. Använd B<cat -v> som en del av kommandoröret om du vill se dem."
+
+#. type: Plain text
+#: ../man/watch.1:166
+msgid "Combining Characters that are supposed to display on the character at the last column on the screen may display one column early, or they may not display at all."
+msgstr "Kombinerande tecken som är tänkta att visas som tecknet i sista kolumnen på skärmen kan komma att visas en kolumn för tidigt, eller kan komma att inte visas alls."
+
+#. type: Plain text
+#: ../man/watch.1:170
+msgid "Combining Characters never count as different in B<--differences> mode. Only the base character counts."
+msgstr "Kombinerande tecken räknas aldrig som olika i läget B<--differences>. Endast grundtecknet räknas."
+
+#. type: Plain text
+#: ../man/watch.1:173
+msgid "Blank lines directly after a line which ends in the last column do not display."
+msgstr "Tomma rader direkt efter en rad som slutar i sista kolumnen visas inte."
+
+#. type: Plain text
+#: ../man/watch.1:190
+msgid "B<--precise> mode doesn't yet have advanced temporal distortion technology to compensate for a I<command> that takes more than B<--interval> I<seconds> to execute. B<watch> also can get into a state where it rapid-fires as many executions of I<command> as it can to catch up from a previous executions running longer than B<--interval> (for example, B<netstat>(8) taking ages on a DNS lookup)."
+msgstr "Läget B<--precise> har inte ännu avancerad temporal distorsionsteknik för att kompensera för ett I<kommando> som tar mer än B<--intervall> I<sekunder> att köra. B<watch> kan också hamna i ett läge där det i snabb följd kör så många exekveringar det kan av I<kommando> för att komma ifatt efter en tidigare körning som varit längre än B<--interval> (till exempel om B<netstat>(8) tar evigheter för att göra en DNS-uppslagning)."
+
+#. type: Plain text
+#: ../man/watch.1:194
+msgid "To watch for mail, you might do"
+msgstr "För att titta efter post skulle du kunna göra"
+
+#. type: Plain text
+#: ../man/watch.1:196
+msgid "watch -n 60 from"
+msgstr "watch -n 60 from"
+
+#. type: Plain text
+#: ../man/watch.1:198
+msgid "To watch the contents of a directory change, you could use"
+msgstr "För att se innehållet i en katalog ändras kan du använda"
+
+#. type: Plain text
+#: ../man/watch.1:200
+msgid "watch -d ls -l"
+msgstr "watch -d ls -l"
+
+#. type: Plain text
+#: ../man/watch.1:202
+msgid "If you're only interested in files owned by user joe, you might use"
+msgstr "Om du bara är intresserad av filer som ägs av användaren kalle skulle du kunna använda"
+
+#. type: Plain text
+#: ../man/watch.1:204
+msgid "watch -d 'ls -l | fgrep joe'"
+msgstr "watch -d 'ls -l | fgrep kalle'"
+
+#. type: Plain text
+#: ../man/watch.1:206
+msgid "To see the effects of quoting, try these out"
+msgstr "För att se effekterna av att citera, prova dessa"
+
+#. type: Plain text
+#: ../man/watch.1:208
+msgid "watch echo $$"
+msgstr "watch echo $$"
+
+#. type: Plain text
+#: ../man/watch.1:210
+msgid "watch echo '$$'"
+msgstr "watch echo '$$'"
+
+#. type: Plain text
+#: ../man/watch.1:212
+msgid "watch echo \"'\"'$$'\"'\""
+msgstr "watch echo \"'\"'$$'\"'\""
+
+#. type: Plain text
+#: ../man/watch.1:216
+msgid "To see the effect of precision time keeping, try adding B<-p> to"
+msgstr "För att se effekten av att hålla tiden med precision, prova att lägga till B<-p> till"
+
+#. type: Plain text
+#: ../man/watch.1:218
+msgid "watch -n 10 sleep 1"
+msgstr "watch -n 10 sleep 1"
+
+#. type: Plain text
+#: ../man/watch.1:220
+msgid "You can watch for your administrator to install the latest kernel with"
+msgstr "Du kan se om din administratör installerar den senaste kärnan med"
+
+#. type: Plain text
+#: ../man/watch.1:222
+msgid "watch uname -r"
+msgstr "watch uname -r"
+
+#. type: Plain text
+#: ../man/watch.1:228
+msgid "(Note that B<-p> isn't guaranteed to work across reboots, especially in the face of B<ntpdate> (if present) or other bootup time-changing mechanisms)"
+msgstr "(Observera att B<-p> inte är garanterat att fungera över en omstart, särskilt med hänsyn till B<ntpdate> eller andra mekanismer som ändrar tiden under uppstart)"
+
+#. type: TH
+#: ../man/ps.1:13
+#, no-wrap
+msgid "PS"
+msgstr "PS"
+
+#. type: Plain text
+#: ../man/ps.1:29
+msgid "ps - report a snapshot of the current processes."
+msgstr "ps — rapportera en ögonblicksbild av de nuvarande processerna."
+
+#. type: Plain text
+#: ../man/ps.1:31
+msgid "B<ps> [\\,I<options\\/>]"
+msgstr "B<ps> [\\,I<flaggor\\/>]"
+
+#. type: Plain text
+#: ../man/ps.1:37
+msgid "B<ps> displays information about a selection of the active processes. If you want a repetitive update of the selection and the displayed information, use B<top> instead."
+msgstr "B<ps> visar information om ett urval av de aktiva processerna. Om du vill ha en upprepad uppdatering av urvalet och den visade informationen, använd B<top> istället."
+
+#. type: Plain text
+#: ../man/ps.1:41
+msgid "This version of B<ps> accepts several kinds of options:"
+msgstr "Denna version av B<ps> accepterar flera olika sorters flaggor:"
+
+#. type: Plain text
+#: ../man/ps.1:45
+msgid "UNIX options, which may be grouped and must be preceded by a dash."
+msgstr "UNIX-flaggor, som kan grupperas och måste föregås av ett bindestreck."
+
+#. type: Plain text
+#: ../man/ps.1:47
+msgid "BSD options, which may be grouped and must not be used with a dash."
+msgstr "BSD-flaggor, som kan grupperas och inte får föregås av ett bindestreck."
+
+#. type: Plain text
+#: ../man/ps.1:49
+msgid "GNU long options, which are preceded by two dashes."
+msgstr "GNU långa flaggor, vilka föregås av två bindestreck."
+
+#. type: Plain text
+#: ../man/ps.1:58
+msgid "Options of different types may be freely mixed, but conflicts can appear. There are some synonymous options, which are functionally identical, due to the many standards and B<ps> implementations that this B<ps> is compatible with."
+msgstr "Flaggor av olika typer får blandas fritt, men konflikter kan förekomma. Det finns några synonyma flaggor, vars funktionalitet är identisk, på grund av de många standarder och B<ps>-implementationer som denna B<ps> är kompatibel med."
+
+#. type: Plain text
+#: ../man/ps.1:66
+msgid "By default, B<ps> selects all processes with the same effective user ID (euid=EUID) as the current user and associated with the same terminal as the invoker. It displays the process ID (pid=PID), the terminal associated with the process (tname=TTY), the cumulated CPU time in [DD-]hh:mm:ss format (time=TIME), and the executable name (ucmd=CMD). Output is unsorted by default."
+msgstr "Som standard väljer B<ps> alla processer med samma effektiva användar-ID (euid=EUID) som den aktiva användaren och associerade med samma terminal som anroparen. Den visar process-ID (pid=PID), terminalen som är associerad med processen (tname=TTY), den ackumulerade CPU-tiden i formatet [DD-]hh:mm:ss (time=TIME) och det körbara namnet (ucmd=CMD). Utdata är osorterat som standard."
+
+#. type: Plain text
+#: ../man/ps.1:79
+msgid "The use of BSD-style options will add process state (stat=STAT) to the default display and show the command args (args=COMMAND) instead of the executable name. You can override this with the B<PS_FORMAT> environment variable. The use of BSD-style options will also change the process selection to include processes on other terminals (TTYs) that are owned by you; alternately, this may be described as setting the selection to be the set of all processes filtered to exclude processes owned by other users or not on a terminal. These effects are not considered when options are described as being \"identical\" below, so B<-M> will be considered identical to B<Z> and so on."
+msgstr "Användningen av flaggor i BSD-stil kommer lägga till porcesstatus (stat=STAT) till standardutmatningen och visa kommandoargumenten (args=KOMMANDO) istället för den körbaras namn. Man kan Ã¥sidsätta detta med miljövariabeln B<PS_FORMAT>. Användningen av flaggor i BSD-stil kommer även ändra processvalet till att inkludera processer pÃ¥ andra terminaler (TTY:er) som ägs av dig; alternativt kan detta beskrivas som att ställa in valet till att vara mängden av alla processer filtrerad till att utesluta processer som ägs av andr användare eller inte av en termina. Dessa effekter betraktas inte när flaggor beskrivs som att vara â€identiska†nedan, sÃ¥ B<-M> kommer anses identiskt med B<Z> och sÃ¥ vidare."
+
+#. type: Plain text
+#: ../man/ps.1:84
+msgid "Except as described below, process selection options are additive. The default selection is discarded, and then the selected processes are added to the set of processes to be displayed. A process will thus be shown if it meets any of the given selection criteria."
+msgstr "Förutom som det beskrivs nedan är processvalsflaggor additativa. Standardurvalet kastas och sedan lägs de valda processerna till till mängden processer som skall visas. En process kommer alltså visas om den uppfyller något av de angivna urvalskriterierna."
+
+#. type: TP
+#: ../man/ps.1:85
+#, no-wrap
+msgid "To see every process on the system using standard syntax:"
+msgstr "För att se alla processer på systemet använd standardsyntaxen:"
+
+#. type: Plain text
+#: ../man/ps.1:88
+msgid "B<ps\\ -e>"
+msgstr "B<ps\\ -e>"
+
+#. type: Plain text
+#: ../man/ps.1:90
+msgid "B<ps\\ -ef>"
+msgstr "B<ps\\ -ef>"
+
+#. type: Plain text
+#: ../man/ps.1:92
+msgid "B<ps\\ -eF>"
+msgstr "B<ps\\ -eF>"
+
+#. type: Plain text
+#: ../man/ps.1:94
+msgid "B<ps\\ -ely>"
+msgstr "B<ps\\ -ely>"
+
+#. type: TP
+#: ../man/ps.1:94
+#, no-wrap
+msgid "To see every process on the system using BSD syntax:"
+msgstr "För att se alla processer på systemed med BSD-syntax:"
+
+#. type: Plain text
+#: ../man/ps.1:97
+msgid "B<ps\\ ax>"
+msgstr "B<ps\\ ax>"
+
+#. type: Plain text
+#: ../man/ps.1:99
+msgid "B<ps\\ axu>"
+msgstr "B<ps\\ axu>"
+
+#. type: TP
+#: ../man/ps.1:99
+#, no-wrap
+msgid "To print a process tree:"
+msgstr "För att skriva ut ett processträd:"
+
+#. type: Plain text
+#: ../man/ps.1:102
+msgid "B<ps\\ -ejH>"
+msgstr "B<ps\\ -ejH>"
+
+#. type: Plain text
+#: ../man/ps.1:104
+msgid "B<ps\\ axjf>"
+msgstr "B<ps\\ axjf>"
+
+#. type: TP
+#: ../man/ps.1:104
+#, no-wrap
+msgid "To get info about threads:"
+msgstr "För att fi information om trådar:"
+
+#. type: Plain text
+#: ../man/ps.1:107
+msgid "B<ps\\ -eLf>"
+msgstr "B<ps\\ -eLf>"
+
+#. type: Plain text
+#: ../man/ps.1:109
+msgid "B<ps\\ axms>"
+msgstr "B<ps\\ axms>"
+
+#. type: TP
+#: ../man/ps.1:109
+#, no-wrap
+msgid "To get security info:"
+msgstr "För att få säkerhetsinformation:"
+
+#. type: Plain text
+#: ../man/ps.1:112
+msgid "B<ps\\ -eo euser,ruser,suser,fuser,f,comm,label>"
+msgstr "B<ps\\ -eo euser,ruser,suser,fuser,f,comm,label>"
+
+#. type: Plain text
+#: ../man/ps.1:114
+msgid "B<ps\\ axZ>"
+msgstr "B<ps\\ axZ>"
+
+#. type: Plain text
+#: ../man/ps.1:116
+msgid "B<ps\\ -eM>"
+msgstr "B<ps\\ -eM>"
+
+#. type: TP
+#: ../man/ps.1:116
+#, no-wrap
+msgid "To see every process running as root (real\\ &\\ effective\\ ID) in user format:"
+msgstr "För att se alla processer som kör som root (verkligt & effektivt ID) i användarformat:"
+
+#. type: Plain text
+#: ../man/ps.1:119
+msgid "B<ps\\ -U\\ root\\ -u\\ root\\ u>"
+msgstr "B<ps\\ -U\\ root\\ -u\\ root\\ u>"
+
+#. type: TP
+#: ../man/ps.1:119
+#, no-wrap
+msgid "To see every process with a user-defined format:"
+msgstr "För att se alla processer med ett användardefinierat format:"
+
+#. type: Plain text
+#: ../man/ps.1:122
+msgid "B<ps\\ -eo\\ pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm>"
+msgstr "B<ps\\ -eo\\ pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm>"
+
+#. type: Plain text
+#: ../man/ps.1:124
+msgid "B<ps\\ axo\\ stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm>"
+msgstr "B<ps\\ axo\\ stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm>"
+
+#. type: Plain text
+#: ../man/ps.1:126
+msgid "B<ps\\ -Ao\\ pid,tt,user,fname,tmout,f,wchan>"
+msgstr "B<ps\\ -Ao\\ pid,tt,user,fname,tmout,f,wchan>"
+
+#. type: TP
+#: ../man/ps.1:126
+#, no-wrap
+msgid "Print only the process IDs of syslogd:"
+msgstr "Skriv endast ut process-ID:n för syslogd:"
+
+#. type: Plain text
+#: ../man/ps.1:129
+msgid "B<ps\\ -C\\ syslogd\\ -o\\ pid=>"
+msgstr "B<ps\\ -C\\ syslogd\\ -o\\ pid=>"
+
+#. type: TP
+#: ../man/ps.1:129
+#, no-wrap
+msgid "Print only the name of PID 42:"
+msgstr "Skriv endast namnet på PID 42:"
+
+#. type: Plain text
+#: ../man/ps.1:132
+msgid "B<ps\\ -q\\ 42\\ -o\\ comm=>"
+msgstr "B<ps\\ -q\\ 42\\ -o\\ comm=>"
+
+#. type: SH
+#: ../man/ps.1:132
+#, no-wrap
+msgid "SIMPLE PROCESS SELECTION"
+msgstr "ENKLA VAL AV PROCESS"
+
+#. type: TP
+#: ../man/ps.1:133
+#, no-wrap
+msgid "B<a>"
+msgstr "B<a>"
+
+#. type: Plain text
+#: ../man/ps.1:147
+msgid "Lift the BSD-style \"only yourself\" restriction, which is imposed upon the set of all processes when some BSD-style (without \"-\") options are used or when the B<ps> personality setting is BSD-like. The set of processes selected in this manner is in addition to the set of processes selected by other means. An alternate description is that this option causes B<ps> to list all processes with a terminal (tty), or to list all processes when used together with the B<x> option."
+msgstr "Lyft begränsningen â€endast dig själv†med BSD-stil, vilken läggs pÃ¥ mängden av alla processer när nÃ¥gra flaggor i BSD-stil (utan â€-â€) används eller när personlighetsinställningen för B<ps> är BSD-lik. Mängden processer som väljs pÃ¥ detta sätt är utöver mängden processer som väljs pÃ¥ andra sätt. Ett annat sätt att beskriva detta är att denna flagga fÃ¥r B<ps> att lista alla processer med en terminal (tty) eller att lista alla processer när de används tillsammans med flaggan B<x>."
+
+#. type: Plain text
+#: ../man/ps.1:151
+msgid "Select all processes. Identical to B<-e>."
+msgstr "Välj alla processer. Identiskt med B<-e>."
+
+#. type: TP
+#: ../man/ps.1:151
+#, no-wrap
+msgid "B<-a>"
+msgstr "B<-a>"
+
+#. type: Plain text
+#: ../man/ps.1:156
+msgid "Select all processes except both session leaders (see I<getsid>(2)) and processes not associated with a terminal."
+msgstr "Välj alla processer utom både sessionsledare (se I<getsid>(2)) och processer som inte är associerade med någon terminal."
+
+#. type: Plain text
+#: ../man/ps.1:159
+msgid "Select all processes except session leaders."
+msgstr "Välj alla processer utom sessionsledare."
+
+#. type: TP
+#: ../man/ps.1:159
+#, no-wrap
+msgid "B<--deselect>"
+msgstr "B<--deselect>"
+
+#. type: Plain text
+#: ../man/ps.1:164
+msgid "Select all processes except those that fulfill the specified conditions (negates the selection). Identical to B<-N>."
+msgstr "Välj alla processer utom de som möter de angivna villkoren (negerar valet). Identiskt med B<-N>."
+
+#. type: TP
+#: ../man/ps.1:164
+#, no-wrap
+msgid "B<-e>"
+msgstr "B<-e>"
+
+#. Current "g" behavior: add in the session leaders, which would
+#. be excluded in the sunos4 personality. Supposed "g" behavior:
+#. add in the group leaders -- at least according to the SunOS 4
+#. man page on the FreeBSD site. Uh oh. I think I had tested SunOS
+#. though, so maybe the code is correct.
+#. type: Plain text
+#: ../man/ps.1:173
+msgid "Select all processes. Identical to B<-A>."
+msgstr "Välj alla processer. Identiskt med B<-A>."
+
+#. type: TP
+#: ../man/ps.1:173
+#, no-wrap
+msgid "B<g>"
+msgstr "B<g>"
+
+#. type: Plain text
+#: ../man/ps.1:179
+msgid "Really all, even session leaders. This flag is obsolete and may be discontinued in a future release. It is normally implied by the B<a> flag, and is only useful when operating in the sunos4 personality."
+msgstr "Verkligen alla, även sessionsledare. Denna flagga är föråldrar och kan försvinna i en framtida utgåva. Den impliceras normalt av flaggan B<a> och är endast användbar på operativsystem i personligheten sunos4."
+
+#. type: TP
+#: ../man/ps.1:179
+#, no-wrap
+msgid "B<-N>"
+msgstr "B<-N>"
+
+#. type: Plain text
+#: ../man/ps.1:184
+msgid "Select all processes except those that fulfill the specified conditions (negates the selection). Identical to B<--deselect>."
+msgstr "Välj alla processer utom de som möter de angivna villkoren (negerar valet). Identiskt med B<--deselect>."
+
+#. type: TP
+#: ../man/ps.1:184
+#, no-wrap
+msgid "B<T>"
+msgstr "B<T>"
+
+#. type: Plain text
+#: ../man/ps.1:189
+msgid "Select all processes associated with this terminal. Identical to the B<t> option without any argument."
+msgstr "Välj alla processer associerade med denna terminal. Identiskt med flaggan B<t> utan något argument."
+
+#. type: TP
+#: ../man/ps.1:189
+#, no-wrap
+msgid "B<r>"
+msgstr "B<r>"
+
+#. type: Plain text
+#: ../man/ps.1:192
+msgid "Restrict the selection to only running processes."
+msgstr "Begränsa urvalet till endast körande processer."
+
+#. type: TP
+#: ../man/ps.1:192
+#, no-wrap
+msgid "B<x>"
+msgstr "B<x>"
+
+#. type: Plain text
+#: ../man/ps.1:207
+msgid "Lift the BSD-style \"must have a tty\" restriction, which is imposed upon the set of all processes when some BSD-style (without \"-\") options are used or when the B<ps> personality setting is BSD-like. The set of processes selected in this manner is in addition to the set of processes selected by other means. An alternate description is that this option causes B<ps> to list all processes owned by you (same EUID as B<ps>), or to list all processes when used together with the B<a> option."
+msgstr "Lyft begränsningen â€mÃ¥ste ha en ttty†med BSD-stil, vilken läggs pÃ¥ mängden av alla processer när nÃ¥gra flaggor i BSD-stil (utan â€-â€) används eller när personlighetsinställningen för B<ps> är BSD-lik. Mängden processer som väljs pÃ¥ detta sätt är utöver mängden processer som väljs pÃ¥ andra sätt. Ett annat sätt att beskriva detta är att denna flagga fÃ¥r B<ps> att lista alla processer som ägs av dig (samma EAID som B<ps>) eller att lista alla processer när de används tillsammans med flaggan B<a>."
+
+#. type: SH
+#: ../man/ps.1:208
+#, no-wrap
+msgid "PROCESS SELECTION BY LIST"
+msgstr "VAL AV PROCESS MED LISTA"
+
+#. type: Plain text
+#: ../man/ps.1:212
+msgid "These options accept a single argument in the form of a blank-separated or comma-separated list. They can be used multiple times. For example: B<ps\\ -p\\ \"1\\ 2\"\\ -p\\ 3,4>"
+msgstr "Dessa flaggor tar ett ensamt argument på formen av en mellanslagsseparerad eller kommaseparerad lista. De kan användas flera gånger. Till exempel: B<ps\\ -p\\ \"1\\ 2\"\\ -p\\ 3,4>"
+
+#. type: TP
+#: ../man/ps.1:212
+#, no-wrap
+msgid "I<123>"
+msgstr "I<123>"
+
+#. type: Plain text
+#: ../man/ps.1:216
+msgid "Identical to B<--pid\\ >I<123>."
+msgstr "Identiskt med B<--pid\\ >I<123>."
+
+#. type: TP
+#: ../man/ps.1:216
+#, no-wrap
+msgid "\\+I<123>"
+msgstr "\\+I<123>"
+
+#. type: Plain text
+#: ../man/ps.1:220
+msgid "Identical to B<--sid\\ >I<123>."
+msgstr "Identiskt med B<--sid\\ >I<123>."
+
+#. type: TP
+#: ../man/ps.1:220
+#, no-wrap
+msgid "-I<123>"
+msgstr "-I<123>"
+
+#. type: Plain text
+#: ../man/ps.1:223
+msgid "Select by process group ID (PGID)."
+msgstr "Välj via processgrupps-ID (PGID)."
+
+#. type: TP
+#: ../man/ps.1:223
+#, no-wrap
+msgid "B<-C>I<\\ cmdlist>"
+msgstr "B<-C>I<\\ kmdlista>"
+
+#. type: Plain text
+#: ../man/ps.1:232
+msgid "Select by command name. This selects the processes whose executable name is given in I<cmdlist>. NOTE: The command name is not the same as the command line. Previous versions of procps and the kernel truncated this command name to 15 characters. This limitation is no longer present in both. If you depended on matching only 15 characters, you may no longer get a match."
+msgstr "Välj via kommandonamn. Detta väljer processerna vars körbara namn är givet i I<kmdlista>. OBS: kommandonamnet är inte samma som kommandoraden. Tidigare verisoner av procps och kärnan högg av detta kommandonamn till 15 tecken. Denna begränsning är inte längre kvar i båda. Om du var beroende av att matcha endast 15 tecken kanske du inte längre får en matchning."
+
+#. type: TP
+#: ../man/ps.1:232
+#, no-wrap
+msgid "B<-G>I<\\ grplist>"
+msgstr "B<-G>I<\\ grplista>"
+
+#. type: Plain text
+#: ../man/ps.1:240
+msgid "Select by real group ID (RGID) or name. This selects the processes whose real group name or ID is in the I<grplist> list. The real group ID identifies the group of the user who created the process, see I<getgid>(2)."
+msgstr "Välj via verkligt grupp-ID (VGID) eller -namn. Detta väljer processer vars verkliga gruppnamn eller -ID finns i listan I<grplista>. Det verkliga grupp-ID:t identifierar gruppen för användare som skapade processen, se I<getgid>(2)."
+
+#. type: TP
+#: ../man/ps.1:240
+#, no-wrap
+msgid "B<-g>I<\\ grplist>"
+msgstr "B<-g>I<\\ grplista>"
+
+#. type: Plain text
+#: ../man/ps.1:253
+msgid "Select by session OR by effective group name. Selection by session is specified by many standards, but selection by effective group is the logical behavior that several other operating systems use. This B<ps> will select by session when the list is completely numeric (as sessions are). Group ID numbers will work only when some group names are also specified. See the B<-s> and B<--group> options."
+msgstr "Välj via sessions- ELLER effektivt gruppnamn. Val via session anges av många standarder, men val enligt effektiv grupp är det logiska beteendet som flera andra operativsystem använder. Denna B<ps> kommer välja via session när listan är helt numerisk (som sessioner är). Grupp-ID-nummer kommer fungera endast när några gruppnamn också anges. Se flaggorna B<-s> och B<--group>."
+
+#. type: TP
+#: ../man/ps.1:253
+#, no-wrap
+msgid "B<--Group>I<\\ grplist>"
+msgstr "B<--Group>I<\\ grplista>"
+
+#. type: Plain text
+#: ../man/ps.1:257
+msgid "Select by real group ID (RGID) or name. Identical to B<-G>."
+msgstr "Välj via verkligt grupp-ID (VGID) eller namn. Identistk med B<-G>."
+
+#. type: TP
+#: ../man/ps.1:257
+#, no-wrap
+msgid "B<--group>I<\\ grplist>"
+msgstr "B<--group>I<\\ grplista>"
+
+#. type: Plain text
+#: ../man/ps.1:269
+msgid "Select by effective group ID (EGID) or name. This selects the processes whose effective group name or ID is in I<grplist>. The effective group ID describes the group whose file access permissions are used by the process (see I<getegid>(2)). The B<-g> option is often an alternative to B<--group>."
+msgstr "Välj via effektivt grupp-ID (EGID) eller namn. Detta väljer processer vars effektiva gruppnamn eller -ID fins i I<grplista>. Det effektiva grupp-ID:t beskriver gruppen var vars filåtkomsträttigheter används av processen (se I<getegid>(2)). Flaggan B<-g> är ofta ett alternativ till B<--group>."
+
+#. type: TP
+#: ../man/ps.1:269
+#, no-wrap
+msgid "B<p>I<\\ pidlist>"
+msgstr "B<p>I<\\ pidlista>"
+
+#. type: Plain text
+#: ../man/ps.1:275
+msgid "Select by process ID. Identical to B<-p> and B<--pid>."
+msgstr "Väljer via process-ID. Identiskt med B<-p> och B<--pid>."
+
+#. type: TP
+#: ../man/ps.1:275
+#, no-wrap
+msgid "B<-p>I<\\ pidlist>"
+msgstr "B<-p>I<\\ pidlista>"
+
+#. type: Plain text
+#: ../man/ps.1:283
+msgid "Select by PID. This selects the processes whose process ID numbers appear in I<pidlist>. Identical to B<p> and B<--pid>."
+msgstr "Välj via PID. Detta väljer processer vars process-ID-nummer förekommer i I<pidlista>. Identiskt med B<p> och B<--pid>."
+
+#. type: TP
+#: ../man/ps.1:283
+#, no-wrap
+msgid "B<--pid>I<\\ pidlist>"
+msgstr "B<--pid>I<\\ pidlista>"
+
+#. type: Plain text
+#: ../man/ps.1:289
+msgid "Select by process\\ ID. Identical to B<-p> and B<p>."
+msgstr "Välj via process-ID. Identiskt med B<-p> och B<p>."
+
+#. type: TP
+#: ../man/ps.1:289
+#, no-wrap
+msgid "B<--ppid>I<\\ pidlist>"
+msgstr "B<--ppid>I<\\ pidlista>"
+
+#. type: Plain text
+#: ../man/ps.1:296
+msgid "Select by parent process ID. This selects the processes with a parent process\\ ID in I<pidlist>. That is, it selects processes that are children of those listed in I<pidlist>."
+msgstr "Välj via föräldraprocess-ID. Detta väljer processerna med en förälderprocess-ID i I<pidlista>. Det vill säga, den väljer processer som är barn av dessa uppräknade i I<pidlista>."
+
+#. type: TP
+#: ../man/ps.1:296
+#, no-wrap
+msgid "B<q>I<\\ pidlist>"
+msgstr "B<q>I<\\ pidlista>"
+
+#. type: Plain text
+#: ../man/ps.1:302
+msgid "Select by process ID (quick mode). Identical to B<-q> and B<--quick-pid>."
+msgstr "Välj via process-ID (snabbläge). Identiskt med B<-q> och B<--quick-pid>."
+
+#. type: TP
+#: ../man/ps.1:302
+#, no-wrap
+msgid "B<-q>I<\\ pidlist>"
+msgstr "B<-q>I<\\ pidlista>"
+
+#. type: Plain text
+#: ../man/ps.1:316
+msgid "Select by PID (quick mode). This selects the processes whose process ID numbers appear in I<pidlist>. With this option B<ps> reads the necessary info only for the pids listed in the I<pidlist> and doesn't apply additional filtering rules. The order of pids is unsorted and preserved. No additional selection options, sorting and forest type listings are allowed in this mode. Identical to B<q> and B<--quick-pid>."
+msgstr "Välj via PID (snabbläge). Detta väljer processerna vars process-ID-tal förekommer i I<pidlista>. Med denna flagga läser B<ps> den nödvändiga informationen endast pid:erna som listas i I<pidlist> och tillämpar inte ytterligare filtreringsregler. Ordningen av pid:ar är osorterad och bevarad. Inga ytterligare urvalsflaggor, sorterings- eller skogstypslistningar tillåts i detta läge. Identiskt med B<q> och B<--quick-pid>."
+
+#. type: TP
+#: ../man/ps.1:316
+#, no-wrap
+msgid "B<--quick-pid>I<\\ pidlist>"
+msgstr "B<--quick-pid>I<\\ pidlista>"
+
+#. type: Plain text
+#: ../man/ps.1:322
+msgid "Select by process\\ ID (quick mode). Identical to B<-q> and B<q>."
+msgstr "Välj via process-ID (snabbläge). Identiskt med B<-q> och B<q>."
+
+#. type: TP
+#: ../man/ps.1:322
+#, no-wrap
+msgid "B<-s>I<\\ sesslist>"
+msgstr "B<-s>I<\\ sesslista>"
+
+#. type: Plain text
+#: ../man/ps.1:327
+msgid "Select by session ID. This selects the processes with a session ID specified in I<sesslist>."
+msgstr "Välj via sessions-ID. Detta väljer processerna med en sessions-ID angiven i I<sesslista>."
+
+#. type: TP
+#: ../man/ps.1:327
+#, no-wrap
+msgid "B<--sid>I<\\ sesslist>"
+msgstr "B<--sid>I<\\ sesslista>"
+
+#. type: Plain text
+#: ../man/ps.1:331
+msgid "Select by session\\ ID. Identical to B<-s>."
+msgstr "Välj via sessions-ID. Identiskt med B<-s>."
+
+#. type: TP
+#: ../man/ps.1:331
+#, no-wrap
+msgid "B<t>I<\\ ttylist>"
+msgstr "B<t>I<\\ ttylista>"
+
+#. type: Plain text
+#: ../man/ps.1:348
+msgid "Select by tty. Nearly identical to B<-t> and B<--tty>, but can also be used with an empty I<ttylist> to indicate the terminal associated with B<ps>. Using the B<T> option is considered cleaner than using B<t> with an empty I<ttylist>."
+msgstr "Välj via tty. Nästan identiskt med B<-t> och B<--tty>, men kan även användas med en tom I<ttylista> för att indikera att terminalen associerad med B<ps>. Att använda flagga B<T> anses renare än att använda B<t> med en tom I<ttylista>."
+
+#. type: TP
+#: ../man/ps.1:348
+#, no-wrap
+msgid "B<-t>I<\\ ttylist>"
+msgstr "B<-t>I<\\ ttylista>"
+
+#. type: Plain text
+#: ../man/ps.1:356
+msgid "Select by tty. This selects the processes associated with the terminals given in I<ttylist>. Terminals (ttys, or screens for text output) can be specified in several forms: /dev/ttyS1, ttyS1, S1. A plain \"-\" may be used to select processes not attached to any terminal."
+msgstr "Välj via tty. Detta väljer processerna associerade med terminalerna angivna i I<ttylista>. Terminaler (tty:er, eller skärmar för textutmatning) kan ages pÃ¥ i flera format: /dev/ttyS1, ttyS1, S1. Ett enkelt â€-†kan användas för att välja processer som ine är kopplade till nÃ¥gon terminal."
+
+#. type: TP
+#: ../man/ps.1:356
+#, no-wrap
+msgid "B<--tty>I<\\ ttylist>"
+msgstr "B<--tty>I<\\ ttylista>"
+
+#. type: Plain text
+#: ../man/ps.1:362
+msgid "Select by terminal. Identical to B<-t> and B<t>."
+msgstr "Välj via terminal. Identiskt med B<-t> och B<t>."
+
+#. type: TP
+#: ../man/ps.1:362
+#, no-wrap
+msgid "B<U>I<\\ userlist>"
+msgstr "B<U>I<\\ användarlista>"
+
+#. type: Plain text
+#: ../man/ps.1:374
+msgid "Select by effective user ID (EUID) or name. This selects the processes whose effective user name or ID is in I<userlist>. The effective user ID describes the user whose file access permissions are used by the process (see I<geteuid>(2)). Identical to B<-u> and B<--user>."
+msgstr "Välj via effektiv användar-ID (EAID) eller -namn. Detta väljer processerna vars effektiva användarnamn eller -ID finns i I<användarlista>. Det effektiva användar-ID:t beskriver användaren var vars filåtkomsträttigheter används av processen (se I<geteuid>(2)). Identiskt med B<-u> och B<--user>."
+
+#. type: TP
+#: ../man/ps.1:374
+#, no-wrap
+msgid "B<-U>I<\\ userlist>"
+msgstr "B<-U>I<\\ användarlista>"
+
+#. type: Plain text
+#: ../man/ps.1:381
+msgid "Select by real user ID (RUID) or name. It selects the processes whose real user name or ID is in the I<userlist> list. The real user ID identifies the user who created the process, see I<getuid>(2)."
+msgstr "Välj via verkligt användar-ID (VAID) eller -namn. Detta väljer processerna vars verkliga användarnamn eller -ID finns i listan I<användarlista>. Det verkliga användar-ID:t identifierar användaren som skapade processen, se I<getuid>(2)."
+
+#. type: TP
+#: ../man/ps.1:381
+#, no-wrap
+msgid "B<-u>I<\\ userlist>"
+msgstr "B<-u>I<\\ användarlista>"
+
+#. type: Plain text
+#: ../man/ps.1:386
+msgid "Select by effective user ID (EUID) or name. This selects the processes whose effective user name or ID is in I<userlist>."
+msgstr "Välj via effektivt användar-ID (EAID) eller -namn. Detta väljer processerna vars effektiva användramn eller -ID finns i I<användarlista>."
+
+#. type: Plain text
+#: ../man/ps.1:394
+msgid "The effective user ID describes the user whose file access permissions are used by the process (see I<geteuid>(2)). Identical to B<U> and B<--user>."
+msgstr " Det effektiva användar-ID:t beskriver användaren var vars filåtkomsträttigheter används av processen (se I<geteuid>(2)). Identiskt med B<U> och B<--user>."
+
+#. type: TP
+#: ../man/ps.1:394
+#, no-wrap
+msgid "B<--User>I<\\ userlist>"
+msgstr "B<--User>I<\\ användarlista>"
+
+#. type: Plain text
+#: ../man/ps.1:398
+msgid "Select by real user ID (RUID) or name. Identical to B<-U>."
+msgstr "Välj via verkligt användar-ID (VAID) eller -namn. Identiskt med B<-U>."
+
+#. type: TP
+#: ../man/ps.1:398
+#, no-wrap
+msgid "B<--user>I<\\ userlist>"
+msgstr "B<--user>I<\\ användarlista>"
+
+#. type: Plain text
+#: ../man/ps.1:404
+msgid "Select by effective user ID (EUID) or name. Identical to B<-u> and B<U>."
+msgstr "Välj via effektivt användar-ID (EAID) eller -namn. Identiskt med B<-u> och B<U>."
+
+#. type: SH
+#: ../man/ps.1:405
+#, no-wrap
+msgid "OUTPUT FORMAT CONTROL"
+msgstr "STYRNING AV UTMATNINGSFORMAT"
+
+#. type: Plain text
+#: ../man/ps.1:409
+msgid "These options are used to choose the information displayed by B<ps>. The output may differ by personality."
+msgstr "Dessa flaggor används för att välja informationen som visas av B<ps>. Utmatningen kan skilja beroende på personlighet."
+
+#. type: Plain text
+#: ../man/ps.1:414
+msgid "Show different scheduler information for the B<-l> option."
+msgstr "Visa annan schemaläggarinformation för flaggan B<-l>."
+
+#. type: TP
+#: ../man/ps.1:414
+#, no-wrap
+msgid "B<--context>"
+msgstr "B<--context>"
+
+#. type: Plain text
+#: ../man/ps.1:417
+msgid "Display security context format (for SELinux)."
+msgstr "Visa säkerhetskontextsformat (för SELinux)."
+
+#. type: Plain text
+#: ../man/ps.1:430
+msgid "Do full-format listing. This option can be combined with many other UNIX-style options to add additional columns. It also causes the command arguments to be printed. When used with B<-L>, the NLWP (number of threads) and LWP (thread ID) columns will be added. See the B<c> option, the format keyword B<args>, and the format keyword B<comm>."
+msgstr "Gör en helformatslistning. Denna flagga kan kombineras med många andra flaggor i UNIX-stil för att lägga till ytterligare kolumner. Det gör också att kommandoargumenten skrivs ut. När det används med B<-L> kommer kolumnerna NLWP (antal trådar) och LWP (tråd-ID) läggas till. Se flaggan B<c>, formatnyckelordet B<args> och formatnyckelordet B<comm>."
+
+#. type: TP
+#: ../man/ps.1:430
+#, no-wrap
+msgid "B<-F>"
+msgstr "B<-F>"
+
+#. type: Plain text
+#: ../man/ps.1:437
+msgid "Extra full format. See the B<-f> option, which B<-F> implies."
+msgstr "Extra fullt format. Se flaggan B<-f> som B<-F> implicerar."
+
+#. type: TP
+#: ../man/ps.1:437
+#, no-wrap
+msgid "B<--format>I<\\ format>"
+msgstr "B<--format>I<\\ format>"
+
+#. type: Plain text
+#: ../man/ps.1:443
+msgid "user-defined format. Identical to B<-o> and B<o>."
+msgstr "användardefinierat format. Identiskt med B<-o> och B<o>."
+
+#. type: TP
+#: ../man/ps.1:443
+#, no-wrap
+msgid "B<j>"
+msgstr "B<j>"
+
+#. type: Plain text
+#: ../man/ps.1:446
+msgid "BSD job control format."
+msgstr "BSD jobbstyrningsformat."
+
+#. type: TP
+#: ../man/ps.1:446
+#, no-wrap
+msgid "B<-j>"
+msgstr "B<-j>"
+
+#. type: Plain text
+#: ../man/ps.1:449
+msgid "Jobs format."
+msgstr "Jobbformat."
+
+#. type: TP
+#: ../man/ps.1:449
+#, no-wrap
+msgid "B<l>"
+msgstr "B<l>"
+
+#. type: Plain text
+#: ../man/ps.1:452
+msgid "Display BSD long format."
+msgstr "Visa BSD:s långa format."
+
+#. type: TP
+#: ../man/ps.1:452
+#, no-wrap
+msgid "B<-l>"
+msgstr "B<-l>"
+
+#. type: Plain text
+#: ../man/ps.1:457
+msgid "Long format. The B<-y> option is often useful with this."
+msgstr "Långt format. Flaggan B<-y> är ofta användbar med denna."
+
+#. type: TP
+#: ../man/ps.1:457
+#, no-wrap
+msgid "B<-M>"
+msgstr "B<-M>"
+
+#. type: Plain text
+#: ../man/ps.1:462
+msgid "Add a column of security data. Identical to B<Z> (for SELinux)."
+msgstr "Lägg till en kolumn med säkerhetsdata. Identiskt med B<Z> (för SELinux)."
+
+#. type: TP
+#: ../man/ps.1:462
+#, no-wrap
+msgid "B<O>I<\\ format>"
+msgstr "B<O>I<\\ format>"
+
+#. type: Plain text
+#: ../man/ps.1:480
+msgid "is preloaded B<o> (overloaded). The BSD B<O> option can act like B<-O> (user-defined output format with some common fields predefined) or can be used to specify sort order. Heuristics are used to determine the behavior of this option. To ensure that the desired behavior is obtained (sorting or formatting), specify the option in some other way (e.g. with B<-O> or B<--sort>). When used as a formatting option, it is identical to B<-O>, with the BSD personality."
+msgstr "är förladdad B<o> (överlagrad). BSD-flaggan B<O> kan fungera som B<-O> (användardefinierat utdataformat med några vanliga fält fördefinierade) eller kan användas för att ange sorteringsordning. Heuristiker används för att avgöra beteendet för denna flagga. För att säkerställa att det önskade beteendet erhålls (sortering eller formatering), ange flaggan på något annat sätt (t.ex. med B<-O> eller B<--sort>). När använd som en formateringsflagga är den identisk med B<-O> med BSD-personligheten."
+
+#. type: TP
+#: ../man/ps.1:480
+#, no-wrap
+msgid "B<-O>I<\\ format>"
+msgstr "B<-O>I<\\ format>"
+
+#. type: Plain text
+#: ../man/ps.1:491
+msgid "Like B<-o>, but preloaded with some default columns. Identical to B<-o\\ pid,\\:>I<format>B<,\\:state,\\:tname,\\:time,\\:command> or B<-o\\ pid,\\:>I<format>B<,\\:tname,\\:time,\\:cmd>, see B<-o> below."
+msgstr "Som B<-o> men förladdad med några standardkolumner. Identiskt med B<-o\\ pid,\\:>I<format>B<,\\:state,\\:tname,\\:time,\\:command> eller B<-o\\ pid,\\:>I<format>B<,\\:tname,\\:time,\\:cmd>, se B<-o> nedan."
+
+#. type: TP
+#: ../man/ps.1:491
+#, no-wrap
+msgid "B<o>I<\\ format>"
+msgstr "B<o>I<\\ format>"
+
+#. type: Plain text
+#: ../man/ps.1:497
+msgid "Specify user-defined format. Identical to B<-o> and B<--format>."
+msgstr "Ange användardefinierat format. Identiskt med B<-o> och B<--format>."
+
+#. type: TP
+#: ../man/ps.1:497
+#, no-wrap
+msgid "B<-o>I<\\ format>"
+msgstr "B<-o>I<\\ format>"
+
+#. type: Plain text
+#: ../man/ps.1:525
+msgid "User-defined format. I<format> is a single argument in the form of a blank-separated or comma-separated list, which offers a way to specify individual output columns. The recognized keywords are described in the B<STANDARD FORMAT SPECIFIERS> section below. Headers may be renamed (B<ps -o pid,\\:ruser=RealUser -o comm=Command>) as desired. If all column headers are empty (B<ps -o pid= -o comm=>) then the header line will not be output. Column width will increase as needed for wide headers; this may be used to widen up columns such as WCHAN (B<ps -o pid,\\:wchan=\\:WIDE-\\:WCHAN-\\:COLUMN -o comm>). Explicit width control (B<ps opid,\\:wchan:42,\\:cmd>) is offered too. The behavior of B<ps -o pid=X,\\:comm=Y> varies with personality; output may be one column named \"X,\\:comm=Y\" or two columns named \"X\" and \"Y\". Use multiple B<-o> options when in doubt. Use the B<PS_FORMAT> environment variable to specify a default as desired; DefSysV and DefBSD are macros that may be used to choose the default UNIX or BSD columns."
+msgstr "Användardefinierat format. I<format> är ett enda argument i form av en blankseparerad eller kommaseparerad lista, vilket ger ett sett att ange individuella utdatakolumner. De kända nyckelorden beskrivs i avsnittet B<STANDARDFORMATSPECIFICERARE> nedan. Namn pÃ¥ huvuden kan ändras (B<ps -o pid,\\:ruser=VerkligAnvändare -o comm=Kommando>) som önskas. Om alla kolumnhuvuden är tomma (B<ps -o pid= -o comm=>) kommer huvudraden inte att skrivas ut. Kolumnbredder kommer öka efter behov för breda huvuden; detta kan användas för att bredda kolumner sÃ¥som WCHAN (B<ps -o pid,\\:wchan=\\:BRED-\\:WCHAN-\\:KOLUMN -o comm>). Explicit breddstyrning (B<ps opid,\\:wchan:42,\\:cmd>) finns ocksÃ¥.. Beteendet hos B<ps -o pid=X,\\:comm=Y> varierar med personligheten; utmatningen kan vara en kolumn med namnen â€X,\\:comm=Y†eller tvÃ¥ kolumner med namen â€X†och â€Yâ€. Använd flera B<-o>-flaggor vid tveksamhet. Använd miljövariabeln B<PS_FORMAT> för att ange en standard som önskas; DefSysV och DefBSD är makron som kan användas för att som välja UNIX- eller BSD-standardkolumner."
+
+#. type: TP
+#: ../man/ps.1:525
+#, no-wrap
+msgid "B<-P>"
+msgstr "B<-P>"
+
+#. type: Plain text
+#: ../man/ps.1:528
+msgid "Add a column showing B<psr>."
+msgstr "Lägg till en kolumn som visar B<psr>."
+
+#. type: TP
+#: ../man/ps.1:528
+#, no-wrap
+msgid "B<s>"
+msgstr "B<s>"
+
+#. type: Plain text
+#: ../man/ps.1:531
+msgid "Display signal format."
+msgstr "Visa signalformat."
+
+#. type: TP
+#: ../man/ps.1:531
+#, no-wrap
+msgid "B<u>"
+msgstr "B<u>"
+
+#. type: Plain text
+#: ../man/ps.1:534
+msgid "Display user-oriented format."
+msgstr "Visa användarorienterat format."
+
+#. type: TP
+#: ../man/ps.1:534
+#, no-wrap
+msgid "B<v>"
+msgstr "B<v>"
+
+#. type: Plain text
+#: ../man/ps.1:537
+msgid "Display virtual memory format."
+msgstr "Visa format för virtuellt minne."
+
+#. type: TP
+#: ../man/ps.1:537
+#, no-wrap
+msgid "B<X>"
+msgstr "B<X>"
+
+#. type: Plain text
+#: ../man/ps.1:540
+msgid "Register format."
+msgstr "Registerformat."
+
+#. type: TP
+#: ../man/ps.1:540
+#, no-wrap
+msgid "B<-y>"
+msgstr "B<-y>"
+
+#. type: Plain text
+#: ../man/ps.1:545
+msgid "Do not show flags; show rss in place of addr. This option can only be used with B<-l>."
+msgstr "Visa inte flaggor; visa rss istället för addr. Denna flagga kan endast användas med B<-l>."
+
+#. type: TP
+#: ../man/ps.1:545
+#, no-wrap
+msgid "B<Z>"
+msgstr "B<Z>"
+
+#. type: Plain text
+#: ../man/ps.1:550
+msgid "Add a column of security data. Identical to B<-M> (for SELinux)."
+msgstr "Lägg till en kolumn med säkerhetsdata. Identiskt med B<-M> (för SELinux)."
+
+#. type: SH
+#: ../man/ps.1:551
+#, no-wrap
+msgid "OUTPUT MODIFIERS"
+msgstr "UTMATNINGSMODIFIERARE"
+
+#. type: TP
+#: ../man/ps.1:552
+#, no-wrap
+msgid "B<c>"
+msgstr "B<c>"
+
+#. type: Plain text
+#: ../man/ps.1:570
+msgid "Show the true command name. This is derived from the name of the executable file, rather than from the argv value. Command arguments and any modifications to them are thus not shown. This option effectively turns the B<args> format keyword into the B<comm> format keyword; it is useful with the B<-f> format option and with the various BSD-style format options, which all normally display the command arguments. See the B<-f> option, the format keyword B<args>, and the format keyword B<comm>."
+msgstr "Visa det sanna kommandonamnet. Detta härleds från namnet på den körbara filen, istället från argv-värdet. Kommandoargument och eventuella ändringar av dem visas alltså inte. Denna flagga gör i praktiken om formatnyckelordet B<args> till formatnyckelordet B<comm>; den är användbar med formatflagga B<-f> och med de olika formatflaggorna i BSD-stil, vilka alla normalt visar kommandoargumenten. Se flagga B<-f>, formatnyckelordet B<args> och formatnyckelordet B<comm>."
+
+#. type: TP
+#: ../man/ps.1:570
+#, no-wrap
+msgid "B<--cols>I<\\ n>"
+msgstr "B<--cols>I<\\ n>"
+
+#. type: Plain text
+#: ../man/ps.1:573 ../man/ps.1:576 ../man/ps.1:724
+msgid "Set screen width."
+msgstr "Ange skärmbredd."
+
+#. type: TP
+#: ../man/ps.1:573
+#, no-wrap
+msgid "B<--columns>I<\\ n>"
+msgstr "B<--columns>I<\\ n>"
+
+#. type: TP
+#: ../man/ps.1:576
+#, no-wrap
+msgid "B<--cumulative>"
+msgstr "B<--cumulative>"
+
+#. type: Plain text
+#: ../man/ps.1:579
+msgid "Include some dead child process data (as a sum with the parent)."
+msgstr "Inkludera några data om döda processer (som en summa med föräldern)."
+
+#. type: TP
+#: ../man/ps.1:580
+#, no-wrap
+msgid "B<-D>I<\\ format>"
+msgstr "B<-D>I<\\ format>"
+
+#. type: Plain text
+#: ../man/ps.1:586
+msgid "Set the date format of the B<lstart> field to I<format>. This format is parsed by B<strftime>(3) and should be a maximum of 24 characters to not mis-align columns."
+msgstr "Ange datumformatet för fältet B<lstart> till I<format>. Detta format tolkas av B<strftime>(3) och skall vara maximalt 24 tecken för att feljustera kolumner."
+
+#. type: TP
+#: ../man/ps.1:586
+#, no-wrap
+msgid "B<--date-format>I<\\ format>"
+msgstr "B<--date-format>I<\\ format>"
+
+#. type: Plain text
+#: ../man/ps.1:589
+msgid "Identical to B<-D>."
+msgstr "Identiskt med B<-D>."
+
+#. type: TP
+#: ../man/ps.1:589
+#, no-wrap
+msgid "B<e>"
+msgstr "B<e>"
+
+#. type: Plain text
+#: ../man/ps.1:592
+msgid "Show the environment after the command."
+msgstr "Visa miljön efter kommandot."
+
+#. type: TP
+#: ../man/ps.1:592
+#, no-wrap
+msgid "B<f>"
+msgstr "B<f>"
+
+#. type: Plain text
+#: ../man/ps.1:595
+msgid "ASCII art process hierarchy (forest)."
+msgstr "Processhierarki med ASCII-konst (skog)."
+
+#. type: TP
+#: ../man/ps.1:595
+#, no-wrap
+msgid "B<--forest>"
+msgstr "B<--forest>"
+
+#. type: Plain text
+#: ../man/ps.1:598
+msgid "ASCII art process tree."
+msgstr "Processträd i ASCII-konst."
+
+#. type: TP
+#: ../man/ps.1:598
+#, no-wrap
+msgid "B<h>"
+msgstr "B<h>"
+
+#. type: Plain text
+#: ../man/ps.1:616
+msgid "No header. (or, one header per screen in the BSD personality). The B<h> option is problematic. Standard BSD B<ps> uses this option to print a header on each page of output, but older Linux B<ps> uses this option to totally disable the header. This version of B<ps> follows the Linux usage of not printing the header unless the BSD personality has been selected, in which case it prints a header on each page of output. Regardless of the current personality, you can use the long options B<--headers> and B<--no-headers> to enable printing headers each page or disable headers entirely, respectively."
+msgstr "Inget huvud. (eller, ett huvud per skärm i BSD-personligheten). Flaggan B<h> är problematisk. Standard BSD-B<ps> använder denna flagga för att skriva ett huvud på varje seida av utmatning, men äldre Linux-B<ps> använder denna flagga för att fullständigt avaktivera huvuden. Denna version av B<ps> följer Linux användning att inte skriva huvudet såvida inte BSD-personligheten har valts, i vilket fall den skriver ett huvud på varje sida av utmatning. Oavsett av den aktuella personlighete kan du använda de långa flaggorna B<--headers> och B<--no-headers> för att aktivera utskrift av huvuden på varje sida respektive att avaktivera huvuden fullständigt."
+
+#. type: TP
+#: ../man/ps.1:616
+#, no-wrap
+msgid "B<-H>"
+msgstr "B<-H>"
+
+#. type: Plain text
+#: ../man/ps.1:619
+msgid "Show process hierarchy (forest)."
+msgstr "Vissa processhierarki (skog)."
+
+#. type: TP
+#: ../man/ps.1:619
+#, no-wrap
+msgid "B<--headers>"
+msgstr "B<--headers>"
+
+#. type: Plain text
+#: ../man/ps.1:622
+msgid "Repeat header lines, one per page of output."
+msgstr "Repetera huvudrader, en gång per sida med utmatning."
+
+#. type: TP
+#: ../man/ps.1:622
+#, no-wrap
+msgid "B<k>I<\\ spec>"
+msgstr "B<k>I<\\ spec>"
+
+#. type: Plain text
+#: ../man/ps.1:634
+msgid "Specify sorting order. Sorting syntax is [B<+>|B<->]I<key\\/.RB [,[ + | - ].IR key [,...]].> Choose a multi-letter key from the B<STANDARD FORMAT SPECIFIERS> section. The \"+\" is optional since default direction is increasing numerical or lexicographic order. Identical to B<--sort>."
+msgstr "Ange sorteringsordning. Sorteringssyntaxen är [B<+>|B<->]I<nyckel\\/.RB [,[ + | - ].IR nyckel [,…]].> Välj en flerbokstavsnyckel frÃ¥n avsnittet B<STANDARDFORMATSPECIFICERARE>. â€+â€:et är frivilligt eftersom standardriktningen är ökande numerisk eller lexikografisk ordning. Identiskt med B<--sort>."
+
+#. type: Plain text
+#: ../man/ps.1:637
+msgid "Examples:"
+msgstr "Exempel:"
+
+#. type: Plain text
+#: ../man/ps.1:639
+msgid "B<ps jaxkuid,-ppid,+pid>"
+msgstr "B<ps jaxkuid,-ppid,+pid>"
+
+#. type: Plain text
+#: ../man/ps.1:641
+msgid "B<ps axk comm o comm,args>"
+msgstr "B<ps axk comm o comm,args>"
+
+#. type: Plain text
+#: ../man/ps.1:643
+msgid "B<ps kstart_time -ef>"
+msgstr "B<ps kstart_time -ef>"
+
+#. type: TP
+#: ../man/ps.1:644
+#, no-wrap
+msgid "B<--lines>I<\\ n>"
+msgstr "B<--lines>I<\\ n>"
+
+#. type: Plain text
+#: ../man/ps.1:647 ../man/ps.1:691
+msgid "Set screen height."
+msgstr "Ange skärmhöjd."
+
+#. type: TP
+#: ../man/ps.1:647
+#, no-wrap
+msgid "B<n>"
+msgstr "B<n>"
+
+#. type: Plain text
+#: ../man/ps.1:650
+msgid "Numeric output for WCHAN and USER (including all types of UID and GID)."
+msgstr "Numerisk utmatning för WCHAN och USER (inklusive alla typer av UID och GID)."
+
+#. type: TP
+#: ../man/ps.1:650
+#, no-wrap
+msgid "B<--no-headers>"
+msgstr "B<--no-headers>"
+
+#. type: Plain text
+#: ../man/ps.1:655
+msgid "Print no header line at all. B<--no-heading> is an alias for this option."
+msgstr "Skriv inte ut något huvud alls. B<--no-heading> är ett alias för denna flagga."
+
+#. type: TP
+#: ../man/ps.1:655
+#, no-wrap
+msgid "B<O>I<\\ order>"
+msgstr "B<O>I<\\ ordning>"
+
+#. type: Plain text
+#: ../man/ps.1:669
+msgid "Sorting order (overloaded). The BSD B<O> option can act like B<-O> (user-defined output format with some common fields predefined) or can be used to specify sort order. Heuristics are used to determine the behavior of this option. To ensure that the desired behavior is obtained (sorting or formatting), specify the option in some other way (e.g. with B<-O> or B<--sort>)."
+msgstr "Sorteringsordning (överlagrad). BSD-flaggan B<O> kan fungera som B<-O> (användardefinierat utmatningsformat med några vanliga fält fördefinierade) eller kan användas för att ange sorteringsordningen. Heuristiker används för att bestämma beteenendet hos denna flagga. För att vara säker på att det önskade beteendet erhålls (sortering eller formatering), ange flaggan på något annat sätt (t.ex. med B<-O> eller B<--sort>)."
+
+#. type: Plain text
+#: ../man/ps.1:688
+msgid "For sorting, obsolete BSD B<O> option syntax is B<O>[B<+>|B<->]I<k1>[,[B<+>|B<->]I<k2>[,...]]. It orders the processes listing according to the multilevel sort specified by the sequence of one-letter short keys I<k1>,I<k2>, ...\" described in the B<OBSOLETE SORT KEYS> section below. The\\ \"+\" is currently optional, merely re-iterating the default direction on a key, but may help to distinguish an B<O> sort from an B<O> format. The \"-\" reverses direction only on the key it precedes."
+msgstr "För sortering är syntaxen för det förÃ¥ldrade syntaxen B<O> frÃ¥n BSD B<O>[B<+>|B<->]I<n1>[,[B<+>|B<->]I<n2>[,…]], Det ordnar processlistan enligt den sortering i flera nivÃ¥er som specifiseras av sekvensen av enbokstavs korta nycklar I<n1>, I<n2>, … som beskrivs i avsnittet B<FÖRÃ…LDRADE SORTERINGSNYCKLAR> nedan. â€+â€:et är för närvarande frivilligt, det upprepar bara standarrikningen för en nyckel, men kan hjälpa till att särskilja en B<O>-sortering frÃ¥n ett B<O>-format. â€-â€:et vänder riktingen endast för den nyckel det föregÃ¥r."
+
+#. type: TP
+#: ../man/ps.1:688
+#, no-wrap
+msgid "B<--rows>I<\\ n>"
+msgstr "B<--rows>I<\\ n>"
+
+#. type: TP
+#: ../man/ps.1:691
+#, no-wrap
+msgid "B<S>"
+msgstr "B<S>"
+
+#. type: Plain text
+#: ../man/ps.1:696
+msgid "Sum up some information, such as CPU usage, from dead child processes into their parent. This is useful for examining a system where a parent process repeatedly forks off short-lived children to do work."
+msgstr "Summera en del information, såsom CPU-användning, från döda barnprocesser till deras förälder. Detta är användbart för att undersöka ett system där en föräldraprocess upprepat grenar av kortlivade barn för att göra arbetet."
+
+#. type: TP
+#: ../man/ps.1:696
+#, no-wrap
+msgid "B<--sort>I<\\ spec>"
+msgstr "B<--sort>I<\\ spec>"
+
+#. type: Plain text
+#: ../man/ps.1:710
+msgid "Specify sorting order. Sorting syntax is [I<+>|I<->]I<key>[,[B<+>|B<->]I<key>[,...]]. Choose a multi-letter key from the B<STANDARD FORMAT SPECIFIERS> section. The \"+\" is optional since default direction is increasing numerical or lexicographic order. Identical to B<k>. For example: B<ps jax --sort=\\:uid,\\:-ppid,\\:+pid>"
+msgstr "Ange sorteringsordning. Sorteringssyntaxen är [B<+>|B<->]I<nyckel>[,[B<+>|B<->]I<nyckel>[,…]]. Välj en flerbokstavsnyckel frÃ¥n avsnittet B<STANDARDFORMATSPECIFICERARE>. â€+â€:et är frivilligt eftersom standardordningen är ökande numeriks eller lexikografisk ordning. Identiskt med B<k>. Till exempel: B<ps jax --sort=\\:uid,\\:-ppid,\\:+pid>"
+
+#. type: TP
+#: ../man/ps.1:710
+#, no-wrap
+msgid "B<--signames>"
+msgstr "B<--signames>"
+
+#. type: Plain text
+#: ../man/ps.1:715
+msgid "Show signal masks using abbreviated signal names and expands the collumn. If the column width cannot show all signals, the column will end with a plus \"I<+>\". Columns with only a hyphen have no signals."
+msgstr "Visa signalmasker som använder förkortade signalnamn och expanderar kolumnen. Om kolumnbredden inte kan visa alla signaler kommer kolumnen avslutas med ett plus â€I<+>â€. Kolumner med bara ett bindestreck har inga signaler."
+
+#. type: TP
+#: ../man/ps.1:715
+#, no-wrap
+msgid "B<w>"
+msgstr "B<w>"
+
+#. type: Plain text
+#: ../man/ps.1:718 ../man/ps.1:721
+msgid "Wide output. Use this option twice for unlimited width."
+msgstr "Bred utmatning. Använd denna flagga två gånger för obegränsad bredd."
+
+#. type: TP
+#: ../man/ps.1:721
+#, no-wrap
+msgid "B<--width>I<\\ n>"
+msgstr "B<--width>I<\\ n>"
+
+#. type: SH
+#: ../man/ps.1:725
+#, no-wrap
+msgid "THREAD DISPLAY"
+msgstr "TRÃ…DVISNING"
+
+#. type: TP
+#: ../man/ps.1:726
+#, no-wrap
+msgid "B<H>"
+msgstr "B<H>"
+
+#. type: Plain text
+#: ../man/ps.1:729
+msgid "Show threads as if they were processes."
+msgstr "Visa trådar som om de vore processer."
+
+#. type: TP
+#: ../man/ps.1:729
+#, no-wrap
+msgid "B<-L>"
+msgstr "B<-L>"
+
+#. type: Plain text
+#: ../man/ps.1:732
+msgid "Show threads, possibly with LWP and NLWP columns."
+msgstr "Visa trådar, möjligen med LWP- och NLWP-kolumner."
+
+#. type: TP
+#: ../man/ps.1:732
+#, no-wrap
+msgid "B<m>"
+msgstr "B<m>"
+
+#. type: Plain text
+#: ../man/ps.1:735 ../man/ps.1:738
+msgid "Show threads after processes."
+msgstr "Visa trådar efter processer."
+
+#. type: TP
+#: ../man/ps.1:735
+#, no-wrap
+msgid "B<-m>"
+msgstr "B<-m>"
+
+#. type: TP
+#: ../man/ps.1:738
+#, no-wrap
+msgid "B<-T>"
+msgstr "B<-T>"
+
+#. type: Plain text
+#: ../man/ps.1:741
+msgid "Show threads, possibly with SPID column."
+msgstr "Visa trådar, möjligen med en SPID-kolumn."
+
+#. type: SH
+#: ../man/ps.1:741
+#, no-wrap
+msgid "OTHER INFORMATION"
+msgstr "ANNAN INFORMATION"
+
+#. type: TP
+#: ../man/ps.1:742
+#, no-wrap
+msgid "B<--help>I<\\ section>"
+msgstr "B<--help>I<\\ avsnitt>"
+
+#. type: Plain text
+#: ../man/ps.1:753
+msgid "Print a help message. The I<section> argument can be one of I<s>imple, I<l>ist, I<o>utput, I<t>hreads, I<m>isc, or I<a>ll. The argument can be shortened to one of the underlined letters as in: s\\^|\\^l\\^|\\^o\\^|\\^t\\^|\\^m\\^|\\^a."
+msgstr "Skriv ut ett hjälpmeddelande. Argumentet I<avsnitt> kan var ett av I<e>nkel, I<l>ista, I<u>tdata, I<t>rådar, I<d>iverse eller I<a>llt. Argumentet kan förkortas till en av de understrukna tecknen som i: e\\^|\\^l\\^|\\^u\\^|\\^t\\^|\\^d\\^|\\^a."
+
+#. type: TP
+#: ../man/ps.1:753
+#, no-wrap
+msgid "B<--info>"
+msgstr "B<--info>"
+
+#. type: Plain text
+#: ../man/ps.1:756
+msgid "Print debugging info."
+msgstr "Skriv ut felsökningsinformation."
+
+#. type: TP
+#: ../man/ps.1:756
+#, no-wrap
+msgid "B<L>"
+msgstr "B<L>"
+
+#. type: Plain text
+#: ../man/ps.1:759
+msgid "List all format specifiers."
+msgstr "Lista alla formatspeicicerare."
+
+#. type: TP
+#: ../man/ps.1:759
+#, no-wrap
+msgid "B<V>"
+msgstr "B<V>"
+
+#. type: Plain text
+#: ../man/ps.1:762 ../man/ps.1:765 ../man/ps.1:768
+msgid "Print the procps-ng version."
+msgstr "Skriv ut procps-ng-versionen."
+
+#. type: TP
+#: ../man/ps.1:762
+#, no-wrap
+msgid "B<-V>"
+msgstr "B<-V>"
+
+#. type: TP
+#: ../man/ps.1:765
+#, no-wrap
+msgid "B<--version>"
+msgstr "B<--version>"
+
+#. type: Plain text
+#: ../man/ps.1:777
+msgid "This B<ps> works by reading the virtual files in /proc. This B<ps> does not need to be setuid kmem or have any privileges to run. Do not give this B<ps> any special permissions."
+msgstr "Denna B<ps> fungerar genom att läsa de virtuella filerna i /proc. Denna B<ps> beöver inte vara setuid kmem eller ha några privilegier för att köra. Ge inte denna B<ps> några särskilda rättigheter."
+
+#. type: Plain text
+#: ../man/ps.1:783
+msgid "CPU usage is currently expressed as the percentage of time spent running during the entire lifetime of a process. This is not ideal, and\\ it does not conform to the standards that B<ps> otherwise conforms to. CPU usage is unlikely to add up to exactly 100%."
+msgstr "CPU-användning uttrycks för närvarande som en procentandel av tiden som tillbringats körande under hela livstiden för en process. Detta är inte idealiskt och det följer inte standarderna som B<ps> i övrigt följer. Det är osannolikt att summan av CPU-användningen blir precis 100\\ %."
+
+#. type: Plain text
+#: ../man/ps.1:788
+msgid "The SIZE and RSS fields don't count some parts of a process including the page tables, kernel stack, struct thread_info, and struct task_struct. This is usually at least 20\\ KiB of memory that is always resident. SIZE is the virtual size of the process (code+\\:data+\\:stack)."
+msgstr "Fälten SIZE och RSS räknar inte med några delar av en process inklusive sidtabeller, kärnstack, posten thread_info och posten task_struct. Detta är vanligen åtminstone 20\\ KiB minne som alltid är resident. SIZE är den virtuella storleken på processen (kod+\\:data+\\:stack)."
+
+#. type: Plain text
+#: ../man/ps.1:794
+msgid "Processes marked E<lt>defunctE<gt> are dead processes (so-called \"zombies\") that remain because their parent has not destroyed them properly. These processes will be destroyed by I<init>(8) if the parent process exits."
+msgstr "Processer makerade E<lt>defunktE<gt> är döda processer (sÃ¥ kallade â€zombierâ€) som finns kvar för att deras förälder inte har förstört dem ordentligt. Dessa processer kommer att förstöras av I<init>(8) om föräldraprocessen avslutar."
+
+#. type: Plain text
+#: ../man/ps.1:798
+msgid "If the length of the username is greater than the width of the display column, the username will be truncated. See the B<-o> and B<-O> formatting options to customize length."
+msgstr "Om längden på användarnamnet är större än bredden på visningskolumnen huggs användarnamnet av. Se formateringsflaggorna B<-o> och B<-O> för att anpassa längden."
+
+#. type: Plain text
+#: ../man/ps.1:810
+msgid "Commands options such as B<ps -aux> are not recommended as it is a confusion of two different standards. According to the POSIX and UNIX standards, the above command asks to display all processes with a TTY (generally the commands users are running) plus all processes owned by a user named I<x>. If that user doesn't exist, then B<ps> will assume you really meant \"B<ps> I<aux>\"."
+msgstr "Kommandoflaggor sÃ¥som B<ps -aux> rekommenderas inte eftersom det är en sammanblandning av tvÃ¥ olika standarder. Enligt standarderna POSIX och UNIX begär ovanstÃ¥end kommando att visa alla processer med en TTY (i allmänhet kommandona användare kör) plus alla processer som ägs av en användare med namnet I<x>. Om den användaren inte finns kommer B<ps> anta att du egentligen menade â€B<ps aux>â€."
+
+#. type: SH
+#: ../man/ps.1:810
+#, no-wrap
+msgid "PROCESS FLAGS"
+msgstr "PROCESSFLAGGOR"
+
+#. type: Plain text
+#: ../man/ps.1:815
+msgid "The sum of these values is displayed in the \"F\" column, which is provided by the B<flags> output specifier:"
+msgstr "Summan av dessa flaggor visas i kolumnen â€Fâ€, som ges av utmatningsspecificeraren B<flags>:"
+
+#. type: Plain text
+#: ../man/ps.1:821
+msgid "forked but didn't exec"
+msgstr "grenad men gjorde inte exec"
+
+#. type: IP
+#: ../man/ps.1:821 ../man/ps.1:2088
+#, no-wrap
+msgid "4"
+msgstr "4"
+
+#. type: Plain text
+#: ../man/ps.1:824
+msgid "used super-user privileges"
+msgstr "använde superanvändarprivileger"
+
+#. type: SH
+#: ../man/ps.1:826
+#, no-wrap
+msgid "PROCESS STATE CODES"
+msgstr "PROCESSTATUSKODER"
+
+#. type: Plain text
+#: ../man/ps.1:831
+msgid "Here are the different values that the B<s>, B<stat> and B<state> output specifiers (header \"STAT\" or \"S\") will display to describe the state of a process:"
+msgstr "Här är de olika värdena som utmatningsspecificerarna B<s>, B<stat> och B<state> (rubrikerna â€STAT†eller â€Sâ€) kommer visa för att beskriva tillstÃ¥ndet hos en process:"
+
+#. type: TP
+#: ../man/ps.1:834
+#, no-wrap
+msgid "D"
+msgstr "D"
+
+#. type: Plain text
+#: ../man/ps.1:837
+msgid "uninterruptible sleep (usually IO)"
+msgstr "oavbrytbar sömn (vanligen IO)"
+
+#. type: TP
+#: ../man/ps.1:837
+#, no-wrap
+msgid "I"
+msgstr "I"
+
+#. type: Plain text
+#: ../man/ps.1:840
+msgid "Idle kernel thread"
+msgstr "Inaktiv kärntråd"
+
+#. type: tbl table
+#: ../man/ps.1:840 ../man/ps.1:925
+#, no-wrap
+msgid "R"
+msgstr "R"
+
+#. type: Plain text
+#: ../man/ps.1:843
+msgid "running or runnable (on run queue)"
+msgstr "körande eller körbar (på körkön)"
+
+#. type: tbl table
+#: ../man/ps.1:843 ../man/ps.1:927 ../man/ps.1:1631 ../man/ps.1:1753
+#, no-wrap
+msgid "S"
+msgstr "S"
+
+#. type: Plain text
+#: ../man/ps.1:846
+msgid "interruptible sleep (waiting for an event to complete)"
+msgstr "avbrytbar sömn (väntar på att en händelse skall avsluta)"
+
+#. type: tbl table
+#: ../man/ps.1:846 ../man/ps.1:929
+#, no-wrap
+msgid "T"
+msgstr "T"
+
+#. type: Plain text
+#: ../man/ps.1:849
+msgid "stopped by job control signal"
+msgstr "stoppad av jobbstyrningssignal"
+
+#. type: tbl table
+#: ../man/ps.1:849 ../man/ps.1:928
+#, no-wrap
+msgid "t"
+msgstr "t"
+
+#. type: Plain text
+#: ../man/ps.1:852
+msgid "stopped by debugger during the tracing"
+msgstr "stoppad av en felsökare under spårning"
+
+#. type: Plain text
+#: ../man/ps.1:855
+msgid "paging (not valid since the 2.6.xx kernel)"
+msgstr "sidväxling (inte giltig sedan kärnan 2.6.xx)"
+
+#. type: TP
+#: ../man/ps.1:855
+#, no-wrap
+msgid "X"
+msgstr "X"
+
+#. type: Plain text
+#: ../man/ps.1:858
+msgid "dead (should never be seen)"
+msgstr "död (skall aldrig synas)"
+
+#. type: TP
+#: ../man/ps.1:858
+#, no-wrap
+msgid "Z"
+msgstr "Z"
+
+#. type: Plain text
+#: ../man/ps.1:861
+msgid "defunct (\"zombie\") process, terminated but not reaped by its parent"
+msgstr "upphörd process (â€zombieâ€), avslutad men inte skördad av sin förälder"
+
+#. type: Plain text
+#: ../man/ps.1:867
+msgid "For BSD formats and when the B<stat> keyword is used, additional characters may be displayed:"
+msgstr "För BSD-format och när nyckelordet B<stat> används kan ytterligare bokstäver visas:"
+
+#. type: TP
+#: ../man/ps.1:870
+#, no-wrap
+msgid "E<lt>"
+msgstr "E<lt>"
+
+#. type: Plain text
+#: ../man/ps.1:873
+msgid "high-priority (not nice to other users)"
+msgstr "hög prioritet (inte trevlig mot andra användare)"
+
+#. type: tbl table
+#: ../man/ps.1:873 ../man/ps.1:920
+#, no-wrap
+msgid "N"
+msgstr "N"
+
+#. type: Plain text
+#: ../man/ps.1:876
+msgid "low-priority (nice to other users)"
+msgstr "låg prioritet (trevlig mot andra användare)"
+
+#. type: TP
+#: ../man/ps.1:876
+#, no-wrap
+msgid "L"
+msgstr "L"
+
+#. type: Plain text
+#: ../man/ps.1:879
+msgid "has pages locked into memory (for real-time and custom IO)"
+msgstr "har sidor låsta i minnet (för realtid och anpassat IO)"
+
+#. type: Plain text
+#: ../man/ps.1:882
+msgid "is a session leader"
+msgstr "är en sessionsledare"
+
+#. type: Plain text
+#: ../man/ps.1:885
+msgid "is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)"
+msgstr "är multitrådad (använder CLONE_THREAD, som NPTL pthreads gör)"
+
+#. type: TP
+#: ../man/ps.1:885
+#, no-wrap
+msgid "+"
+msgstr "+"
+
+#. type: Plain text
+#: ../man/ps.1:888
+msgid "is in the foreground process group"
+msgstr "är i förgrundsprocessgruppen"
+
+#. type: SH
+#: ../man/ps.1:890
+#, no-wrap
+msgid "OBSOLETE SORT KEYS"
+msgstr "FÖRÅLDRADE SORTERINGSNYCKLAR"
+
+#. type: Plain text
+#: ../man/ps.1:906
+msgid "These keys are used by the BSD B<O> option (when it is used for sorting). The GNU B<--sort> option doesn't use these keys, but the specifiers described below in the B<STANDARD FORMAT SPECIFIERS> section. Note that the values used in sorting are the internal values B<ps> uses and not the \"cooked\" values used in some of the output format fields (e.g. sorting on tty will sort into device number, not according to the terminal name displayed). Pipe B<ps> output into the B<sort>(1) command if you want to sort the cooked values."
+msgstr "Dessa nycklar används av BSD-flaggan B<O> (när den används för sortering). GNU-flaggan B<--sort> använder inte dessa nycklar, utan specificerarna som beskrivs i avsnittet B<STANDARDFORMATSPECIFICERARE>. Observera att värdena som används i sorteringen är de interna värden som B<ps> använder och inte de â€kokta†värden som används i nÃ¥gra av utmatningsformatsfälten (t.ex. kommer sortering pÃ¥ tty sortera efter enhetsnummer, inte enligt terminalnamnet som visas). Skicka utdata frÃ¥n B<ps> i rör till kommandot B<sort>(1) om du vill sortera de kokta värdena."
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, no-wrap
+msgid "B<KEY>"
+msgstr "B<NYCKEL>"
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, no-wrap
+msgid "B<LONG>"
+msgstr "B<LÃ…NG>"
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, no-wrap
+msgid "B<DESCRIPTION>"
+msgstr "B<BESKRIVNING>"
+
+#. type: tbl table
+#: ../man/ps.1:909 ../man/ps.1:1161
+#, no-wrap
+msgid "cmd"
+msgstr "cmd"
+
+#. type: tbl table
+#: ../man/ps.1:909
+#, no-wrap
+msgid "simple name of executable"
+msgstr "enkelt namn på den körbara"
+
+#. type: tbl table
+#: ../man/ps.1:910 ../man/ps.1:1081
+#, no-wrap
+msgid "C"
+msgstr "C"
+
+#. type: tbl table
+#: ../man/ps.1:910 ../man/ps.1:952 ../man/ps.1:1481
+#, no-wrap
+msgid "pcpu"
+msgstr "pcpu"
+
+#. type: tbl table
+#: ../man/ps.1:910
+#, no-wrap
+msgid "cpu utilization"
+msgstr "cpu-användning"
+
+#. type: tbl table
+#: ../man/ps.1:911 ../man/ps.1:1300
+#, no-wrap
+msgid "f"
+msgstr "f"
+
+#. type: tbl table
+#: ../man/ps.1:911 ../man/ps.1:1326
+#, no-wrap
+msgid "flags"
+msgstr "flags"
+
+#. type: tbl table
+#: ../man/ps.1:911
+#, no-wrap
+msgid "flags as in long format F field"
+msgstr "flaggor som i det långa formatets F-fält"
+
+#. type: tbl table
+#: ../man/ps.1:912
+#, no-wrap
+msgid "g"
+msgstr "g"
+
+#. type: tbl table
+#: ../man/ps.1:912 ../man/ps.1:1508
+#, no-wrap
+msgid "pgrp"
+msgstr "pgrp"
+
+#. type: tbl table
+#: ../man/ps.1:912
+#, no-wrap
+msgid "process group ID"
+msgstr "processgrupp-ID"
+
+#. type: tbl table
+#: ../man/ps.1:913
+#, no-wrap
+msgid "G"
+msgstr "G"
+
+#. type: tbl table
+#: ../man/ps.1:913 ../man/ps.1:1848
+#, no-wrap
+msgid "tpgid"
+msgstr "tpgid"
+
+#. type: tbl table
+#: ../man/ps.1:913
+#, no-wrap
+msgid "controlling tty process group ID"
+msgstr "styrande tty-processgrupps-ID"
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "j"
+msgstr "j"
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "cutime"
+msgstr "cutime"
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "cumulative user time"
+msgstr "kumulativ användartid"
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "J"
+msgstr "J"
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "cstime"
+msgstr "cstime"
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "cumulative system time"
+msgstr "kumulativ systemtid"
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "k"
+msgstr "k"
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "utime"
+msgstr "utime"
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "user time"
+msgstr "användartid"
+
+#. type: tbl table
+#: ../man/ps.1:917
+#, no-wrap
+msgid "m"
+msgstr "m"
+
+#. type: tbl table
+#: ../man/ps.1:917 ../man/ps.1:1419
+#, no-wrap
+msgid "min_flt"
+msgstr "min_flt"
+
+#. type: tbl table
+#: ../man/ps.1:917
+#, no-wrap
+msgid "number of minor page faults"
+msgstr "antal mindre sidfel"
+
+#. type: tbl table
+#: ../man/ps.1:918
+#, no-wrap
+msgid "M"
+msgstr "M"
+
+#. type: tbl table
+#: ../man/ps.1:918 ../man/ps.1:1415
+#, no-wrap
+msgid "maj_flt"
+msgstr "maj_flt"
+
+#. type: tbl table
+#: ../man/ps.1:918
+#, no-wrap
+msgid "number of major page faults"
+msgstr "antal större sidfel"
+
+#. type: tbl table
+#: ../man/ps.1:919
+#, no-wrap
+msgid "cmin_flt"
+msgstr "cmin_flt"
+
+#. type: tbl table
+#: ../man/ps.1:919
+#, no-wrap
+msgid "cumulative minor page faults"
+msgstr "kumulativt mindre sidfel"
+
+#. type: tbl table
+#: ../man/ps.1:920
+#, no-wrap
+msgid "cmaj_flt"
+msgstr "cmaj_flt"
+
+#. type: tbl table
+#: ../man/ps.1:920
+#, no-wrap
+msgid "cumulative major page faults"
+msgstr "kumulativt större sidfel"
+
+#. type: tbl table
+#: ../man/ps.1:921
+#, no-wrap
+msgid "session"
+msgstr "session"
+
+#. type: tbl table
+#: ../man/ps.1:921
+#, no-wrap
+msgid "session ID"
+msgstr "sessions-ID"
+
+#. type: tbl table
+#: ../man/ps.1:922 ../man/ps.1:960 ../man/ps.1:1515
+#, no-wrap
+msgid "pid"
+msgstr "pid"
+
+#. type: tbl table
+#: ../man/ps.1:922
+#, no-wrap
+msgid "process ID"
+msgstr "process-ID"
+
+#. type: tbl table
+#: ../man/ps.1:923 ../man/ps.1:1657
+#, no-wrap
+msgid "P"
+msgstr "P"
+
+#. type: tbl table
+#: ../man/ps.1:923 ../man/ps.1:954 ../man/ps.1:1559
+#, no-wrap
+msgid "ppid"
+msgstr "ppid"
+
+#. type: tbl table
+#: ../man/ps.1:923
+#, no-wrap
+msgid "parent process ID"
+msgstr "föräldraprocess-ID"
+
+#. type: tbl table
+#: ../man/ps.1:924
+#, no-wrap
+msgid "r"
+msgstr "r"
+
+#. type: tbl table
+#: ../man/ps.1:924 ../man/ps.1:1598
+#, no-wrap
+msgid "rss"
+msgstr "rss"
+
+#. type: tbl table
+#: ../man/ps.1:924
+#, no-wrap
+msgid "resident set size"
+msgstr "residenta mängdens storlek"
+
+#. type: tbl table
+#: ../man/ps.1:925
+#, no-wrap
+msgid "resident"
+msgstr "resident"
+
+#. type: tbl table
+#: ../man/ps.1:925
+#, no-wrap
+msgid "resident pages"
+msgstr "residenta sidor"
+
+#. type: tbl table
+#: ../man/ps.1:926 ../man/ps.1:1707
+#, no-wrap
+msgid "size"
+msgstr "size"
+
+#. type: tbl table
+#: ../man/ps.1:926
+#, no-wrap
+msgid "memory size in kilobytes"
+msgstr "minnesstorlek i kilobyte"
+
+#. type: tbl table
+#: ../man/ps.1:927
+#, no-wrap
+msgid "share"
+msgstr "share"
+
+#. type: tbl table
+#: ../man/ps.1:927
+#, no-wrap
+msgid "amount of shared pages"
+msgstr "mängden delade sidor"
+
+#. type: tbl table
+#: ../man/ps.1:928 ../man/ps.1:965 ../man/ps.1:1862
+#, no-wrap
+msgid "tty"
+msgstr "tty"
+
+#. type: tbl table
+#: ../man/ps.1:928
+#, no-wrap
+msgid "the device number of the controlling tty"
+msgstr "enhetsnumret på den styrande tty:n"
+
+#. type: tbl table
+#: ../man/ps.1:929 ../man/ps.1:1736
+#, no-wrap
+msgid "start_time"
+msgstr "start_time"
+
+#. type: tbl table
+#: ../man/ps.1:929
+#, no-wrap
+msgid "time process was started"
+msgstr "tidpunkten processen startades"
+
+#. type: tbl table
+#: ../man/ps.1:930
+#, no-wrap
+msgid "U"
+msgstr "U"
+
+#. type: tbl table
+#: ../man/ps.1:930 ../man/ps.1:1881
+#, no-wrap
+msgid "uid"
+msgstr "uid"
+
+#. type: tbl table
+#: ../man/ps.1:930
+#, no-wrap
+msgid "user ID number"
+msgstr "användarens ID-nummer"
+
+#. type: tbl table
+#: ../man/ps.1:931 ../man/ps.1:955 ../man/ps.1:1900
+#, no-wrap
+msgid "user"
+msgstr "user"
+
+#. type: tbl table
+#: ../man/ps.1:931
+#, no-wrap
+msgid "user name"
+msgstr "användarnamn"
+
+#. type: tbl table
+#: ../man/ps.1:932 ../man/ps.1:1929
+#, no-wrap
+msgid "vsize"
+msgstr "vsize"
+
+#. type: tbl table
+#: ../man/ps.1:932
+#, no-wrap
+msgid "total VM size in KiB"
+msgstr "total VM-storlek i KiB"
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "y"
+msgstr "y"
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "priority"
+msgstr "priority"
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "kernel scheduling priority"
+msgstr "kärnskemaläggningsprioritet"
+
+#. type: SH
+#: ../man/ps.1:936
+#, no-wrap
+msgid "AIX FORMAT DESCRIPTORS"
+msgstr "AIX-FORMATBESKRIVARE"
+
+#. type: Plain text
+#: ../man/ps.1:949
+msgid "This B<ps> supports AIX format descriptors, which work somewhat like the formatting codes of I<printf>(1) and I<printf>(3). For example, the normal default output can be produced with this: B<ps -eo \"%p %y %x %c\">. The B<NORMAL> codes are described in the next section."
+msgstr "Denna B<ps> stödjer AIX formatbeskrivare, vilka fungerar ungefär som formateringskoderna till I<printf>(1) och I<printf>(3). Till exempel kan den normala standardutmatningen skapas med detta: B<ps -eo \"%p %y %x %c\">. De B<VANLIGA> koderna beskrivs i nästa stycke."
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<CODE>"
+msgstr "B<KOD>"
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<NORMAL>"
+msgstr "B<VANLIG>"
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<HEADER>"
+msgstr "B<RUBRIK>"
+
+#. type: tbl table
+#: ../man/ps.1:952
+#, no-wrap
+msgid "%C"
+msgstr "%C"
+
+#. type: tbl table
+#: ../man/ps.1:952 ../man/ps.1:1004 ../man/ps.1:1481
+#, no-wrap
+msgid "%CPU"
+msgstr "%CPU"
+
+#. type: tbl table
+#: ../man/ps.1:953
+#, no-wrap
+msgid "%G"
+msgstr "%G"
+
+#. type: tbl table
+#: ../man/ps.1:953 ../man/ps.1:1355
+#, no-wrap
+msgid "group"
+msgstr "group"
+
+#. type: tbl table
+#: ../man/ps.1:953 ../man/ps.1:1355
+#, no-wrap
+msgid "GROUP"
+msgstr "GRUPP"
+
+#. type: tbl table
+#: ../man/ps.1:954
+#, no-wrap
+msgid "%P"
+msgstr "%P"
+
+#. type: tbl table
+#: ../man/ps.1:954 ../man/ps.1:1559
+#, no-wrap
+msgid "PPID"
+msgstr "FPID"
+
+#. type: tbl table
+#: ../man/ps.1:955
+#, no-wrap
+msgid "%U"
+msgstr "%U"
+
+#. type: tbl table
+#: ../man/ps.1:955 ../man/ps.1:1888 ../man/ps.1:1900
+#, no-wrap
+msgid "USER"
+msgstr "ANVÄNDARE"
+
+#. type: tbl table
+#: ../man/ps.1:956
+#, no-wrap
+msgid "%a"
+msgstr "%a"
+
+#. type: tbl table
+#: ../man/ps.1:956 ../man/ps.1:1027
+#, no-wrap
+msgid "args"
+msgstr "args"
+
+#. type: tbl table
+#: ../man/ps.1:956 ../man/ps.1:957 ../man/ps.1:1027 ../man/ps.1:1168
+#: ../man/ps.1:1196 ../man/ps.1:1333 ../man/ps.1:1874
+#, no-wrap
+msgid "COMMAND"
+msgstr "KOMMANDO"
+
+#. type: tbl table
+#: ../man/ps.1:957
+#, no-wrap
+msgid "%c"
+msgstr "%c"
+
+#. type: tbl table
+#: ../man/ps.1:957 ../man/ps.1:1168
+#, no-wrap
+msgid "comm"
+msgstr "comm"
+
+#. type: tbl table
+#: ../man/ps.1:958
+#, no-wrap
+msgid "%g"
+msgstr "%g"
+
+#. type: tbl table
+#: ../man/ps.1:958 ../man/ps.1:1588
+#, no-wrap
+msgid "rgroup"
+msgstr "rgroup"
+
+#. type: tbl table
+#: ../man/ps.1:958 ../man/ps.1:1588
+#, no-wrap
+msgid "RGROUP"
+msgstr "VGRUPP"
+
+#. type: tbl table
+#: ../man/ps.1:959
+#, no-wrap
+msgid "%n"
+msgstr "%n"
+
+#. type: tbl table
+#: ../man/ps.1:959 ../man/ps.1:1443
+#, no-wrap
+msgid "nice"
+msgstr "nice"
+
+#. type: tbl table
+#: ../man/ps.1:959 ../man/ps.1:1435 ../man/ps.1:1443
+#, no-wrap
+msgid "NI"
+msgstr "NI"
+
+#. type: tbl table
+#: ../man/ps.1:960
+#, no-wrap
+msgid "%p"
+msgstr "%p"
+
+#. type: tbl table
+#: ../man/ps.1:960 ../man/ps.1:1515
+#, no-wrap
+msgid "PID"
+msgstr "PID"
+
+#. type: tbl table
+#: ../man/ps.1:961
+#, no-wrap
+msgid "%r"
+msgstr "%r"
+
+#. type: tbl table
+#: ../man/ps.1:961 ../man/ps.1:1502
+#, no-wrap
+msgid "pgid"
+msgstr "pgid"
+
+#. type: tbl table
+#: ../man/ps.1:961 ../man/ps.1:1502
+#, no-wrap
+msgid "PGID"
+msgstr "PGID"
+
+#. type: tbl table
+#: ../man/ps.1:962
+#, no-wrap
+msgid "%t"
+msgstr "%t"
+
+#. type: tbl table
+#: ../man/ps.1:962 ../man/ps.1:1271
+#, no-wrap
+msgid "etime"
+msgstr "etime"
+
+#. type: tbl table
+#: ../man/ps.1:962 ../man/ps.1:1271 ../man/ps.1:1275
+#, no-wrap
+msgid "ELAPSED"
+msgstr "FÖRFLUTEN"
+
+#. type: tbl table
+#: ../man/ps.1:963
+#, no-wrap
+msgid "%u"
+msgstr "%u"
+
+#. type: tbl table
+#: ../man/ps.1:963 ../man/ps.1:1626
+#, no-wrap
+msgid "ruser"
+msgstr "ruser"
+
+#. type: tbl table
+#: ../man/ps.1:963 ../man/ps.1:1626
+#, no-wrap
+msgid "RUSER"
+msgstr "VANV"
+
+#. type: tbl table
+#: ../man/ps.1:964
+#, no-wrap
+msgid "%x"
+msgstr "%x"
+
+#. type: tbl table
+#: ../man/ps.1:964 ../man/ps.1:1827
+#, no-wrap
+msgid "time"
+msgstr "time"
+
+#. type: tbl table
+#: ../man/ps.1:964 ../man/ps.1:1075 ../man/ps.1:1208 ../man/ps.1:1213
+#: ../man/ps.1:1827 ../man/ps.1:1838
+#, no-wrap
+msgid "TIME"
+msgstr "TID"
+
+#. type: tbl table
+#: ../man/ps.1:965
+#, no-wrap
+msgid "%y"
+msgstr "%y"
+
+#. type: tbl table
+#: ../man/ps.1:965 ../man/ps.1:1843
+#, no-wrap
+msgid "TTY"
+msgstr "TTY"
+
+#. type: tbl table
+#: ../man/ps.1:966
+#, no-wrap
+msgid "%z"
+msgstr "%z"
+
+#. type: tbl table
+#: ../man/ps.1:966 ../man/ps.1:1936
+#, no-wrap
+msgid "vsz"
+msgstr "vsz"
+
+#. type: tbl table
+#: ../man/ps.1:966 ../man/ps.1:1929 ../man/ps.1:1936
+#, no-wrap
+msgid "VSZ"
+msgstr "VST"
+
+#. type: SH
+#: ../man/ps.1:968
+#, no-wrap
+msgid "STANDARD FORMAT SPECIFIERS"
+msgstr "STANDARDFORMATSPECIFICERARE"
+
+#. type: Plain text
+#: ../man/ps.1:975
+msgid "Here are the different keywords that may be used to control the output format (e.g., with option B<-o>) or to sort the selected processes with the GNU-style B<--sort> option."
+msgstr "Här är de olika nyckelorden som kan användas för att styra utmatningsformatet (t.ex., med flaggan B<-o>) eller för att sortera de valda processerna med GNU-stilsflaggan B<--sort>."
+
+#. type: Plain text
+#: ../man/ps.1:978
+msgid "For example: B<ps -eo pid,\\:user,\\:args --sort user>"
+msgstr "Till exempel: B<ps -eo pid,\\:user,\\:args --sort user>"
+
+#. type: Plain text
+#: ../man/ps.1:983
+msgid "This version of B<ps> tries to recognize most of the keywords used in other implementations of B<ps>."
+msgstr "Denna version av B<ps> försöker känna igen de flesta nyckelord som används in andra implementationer av B<ps>."
+
+#. type: Plain text
+#: ../man/ps.1:988
+msgid "The following user-defined format specifiers may contain spaces: B<args>, B<cmd>, B<comm>, B<command>, B<fname>, B<ucmd>, B<ucomm>, B<lstart>, B<bsdstart>, B<start>."
+msgstr "Följande användardefinierade formatspecificerare kan innehålla blanktecken: B<args>, B<cmd>, B<comm>, B<command>, B<fname>, B<ucmd>, B<ucomm>, B<lstart>, B<bsdstart>, B<start>."
+
+#. type: Plain text
+#: ../man/ps.1:990
+msgid "Some keywords may not be available for sorting."
+msgstr "Några nyckelord är kanske inte tillgängliga för sortering."
+
+#. type: tbl table
+#: ../man/ps.1:1002
+#, no-wrap
+msgid "CODE"
+msgstr "KOD"
+
+#. type: tbl table
+#: ../man/ps.1:1002
+#, no-wrap
+msgid "HEADER"
+msgstr "RUBRIK"
+
+#. type: tbl table
+#: ../man/ps.1:1004
+#, no-wrap
+msgid "%cpu"
+msgstr "%cpu"
+
+#. type: tbl table
+#: ../man/ps.1:1010
+#, no-wrap
+msgid ""
+"cpu utilization of the process in \"##.#\" format. Currently, it is the CPU\n"
+"time used divided by the time the process has been running (cputime/realtime\n"
+"ratio), expressed as a percentage. It will not add up to 100% unless you are\n"
+"lucky. (alias\n"
+"B<pcpu>)."
+msgstr "cpu-användning av processerna i formatet â€##.#â€. För närvarande är det CPU-tiden som används dividerad med tiden som processen har kört (förhÃ¥llandet cputid/verklig tid), uttryckt som en procentsats. Det kommer inte summeras till 100 % utom om du har tur. (alias B<pcpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1012
+#, no-wrap
+msgid "%mem"
+msgstr "%mem"
+
+#. type: tbl table
+#: ../man/ps.1:1012 ../man/ps.1:1526
+#, no-wrap
+msgid "%MEM"
+msgstr "%MIN"
+
+#. type: tbl table
+#: ../man/ps.1:1016
+#, no-wrap
+msgid ""
+"ratio of the process's resident set size to the physical memory on the\n"
+"machine, expressed as a percentage. (alias\n"
+"B<pmem>)."
+msgstr ""
+"förhållandet mellan storleken på processens residenta mängd och det fysiska\n"
+"minnet på maskinen, uttryckt som en procentsats. (alias\n"
+"B<pmem>)."
+
+#. type: tbl table
+#: ../man/ps.1:1018
+#, no-wrap
+msgid "ag_id"
+msgstr "ag_id"
+
+#. type: tbl table
+#: ../man/ps.1:1018
+#, no-wrap
+msgid "AGID"
+msgstr "AGID"
+
+#. type: tbl table
+#: ../man/ps.1:1021
+#, no-wrap
+msgid ""
+"The autogroup identifier associated with a process which operates in conjunction\n"
+"with the CFS scheduler to improve interactive desktop performance."
+msgstr "Autogruppidentifieraren som är associerad med en process som arbetar tillsammans med CFS-schemaläggaren för att förbättra interaktiv skrivbordsprestanda."
+
+#. type: tbl table
+#: ../man/ps.1:1023
+#, no-wrap
+msgid "ag_nice"
+msgstr "ag_nice"
+
+#. type: tbl table
+#: ../man/ps.1:1023
+#, no-wrap
+msgid "AGNI"
+msgstr "AGNI"
+
+#. type: tbl table
+#: ../man/ps.1:1025
+#, no-wrap
+msgid "The autogroup nice value which affects scheduling of all processes in that group."
+msgstr "Autogruppens nice-värde vilket påverkar schemaläggningen för alla processer e den gruppen."
+
+#. type: tbl table
+#: ../man/ps.1:1042
+#, no-wrap
+msgid ""
+"command with all its arguments as a string. Modifications to the arguments\n"
+"may be shown. The output in this column may contain spaces. A process\n"
+"marked E<lt>defunctE<gt> is partly dead, waiting to be fully destroyed by its parent.\n"
+"Sometimes the process args will be unavailable; when this happens,\n"
+"B<ps>\n"
+"will instead print the executable name in brackets. (alias\n"
+"B<cmd>, B<command>).\n"
+"See also the\n"
+"B<comm>\n"
+"format keyword, the\n"
+"B<-f>\n"
+"option, and the\n"
+"B<c>\n"
+"option.\n"
+msgstr ""
+"kommandot med alla dess flaggor som en sträng. Ändringar av argumenten kan\n"
+"visas. Utdatan i denna kolumn kan innehålla blanktecken. En process markerad\n"
+"E<lt>defunctE<gt> är delvis död, och väntar på att helt destrueras av sin\n"
+"förälder. Ibland är processargumenten inte tillgängliga; när detta händer\n"
+"kommer\n"
+"B<ps>\n"
+"istället skriva det körbara namnet i hakparenteser. (alias\n"
+"B<cmd>, B<command>).\n"
+"Se även formatnyckelordet\n"
+"B<comm>\n"
+"flaggan\n"
+"B<-f>\n"
+"och flaggan\n"
+"B<c>.\n"
+
+#. type: tbl table
+#: ../man/ps.1:1042 ../man/ps.1:1116 ../man/ps.1:1118 ../man/ps.1:1120
+#: ../man/ps.1:1122 ../man/ps.1:1124 ../man/ps.1:1126 ../man/ps.1:1128
+#: ../man/ps.1:1130 ../man/ps.1:1142 ../man/ps.1:1144 ../man/ps.1:1146
+#: ../man/ps.1:1148 ../man/ps.1:1150 ../man/ps.1:1152 ../man/ps.1:1154
+#: ../man/ps.1:1156 ../man/ps.1:1180 ../man/ps.1:1540 ../man/ps.1:1542
+#: ../man/ps.1:1544 ../man/ps.1:1546 ../man/ps.1:1548 ../man/ps.1:1550
+#: ../man/ps.1:1552 ../man/ps.1:1554
+#, no-wrap
+msgid ".br\n"
+msgstr ".br\n"
+
+#. type: tbl table
+#: ../man/ps.1:1058
+#, no-wrap
+msgid ""
+"When specified last, this column will extend to the edge of the display. If\n"
+"B<ps>\n"
+"can not determine display width, as when output is redirected (piped) into a\n"
+"file or another command, the output width is undefined (it may be 80,\n"
+"unlimited, determined by the\n"
+"B<TERM>\n"
+"variable, and so on). The\n"
+"B<COLUMNS>\n"
+"environment variable or\n"
+"B<--cols>\n"
+"option may be used to exactly determine the width in this case. The\n"
+"B<w>\n"
+"or\n"
+"B<-w>\n"
+"option may be also be used to adjust width."
+msgstr ""
+"När den anges sist kommer denna kolumn sträcka sig till kanten av displayen. Om\n"
+"B<ps>\n"
+"inte kan avgöra displaybredden, som när utdata är omdirigerad (pipe) till en\n"
+"fil eller ett annat kommando, är utdatabredden odefinierad (den kan vara 80,\n"
+"obegränsad, bestämd av variabeln\n"
+"B<TERM>,\n"
+"och så vidare). Miljövariabeln\n"
+"B<COLUMNS>\n"
+"eller flaggan\n"
+"B<--cols>\n"
+"kan användas för att exakt bestämma bredden i detta fall. Flaggan\n"
+"B<w>\n"
+"eller\n"
+"B<-w>\n"
+"kan också användas för att justera bredden."
+
+#. type: tbl table
+#: ../man/ps.1:1060
+#, no-wrap
+msgid "blocked"
+msgstr "blocked"
+
+#. type: tbl table
+#: ../man/ps.1:1060 ../man/ps.1:1700
+#, no-wrap
+msgid "BLOCKED"
+msgstr "BLOCKED"
+
+#. type: tbl table
+#: ../man/ps.1:1066
+#, no-wrap
+msgid ""
+"mask of the blocked signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64-bit mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_block>, B<sigmask>)."
+msgstr ""
+"mask av blockerade signaler, se\n"
+"I<signal>(7).\n"
+"Enligt bredden på fältet visas en 32- eller 64-bitars mask i hexadecimalt\n"
+"format. (alias\n"
+"B<sig_block>,B<\\ sigmask>)."
+
+#. type: tbl table
+#: ../man/ps.1:1068
+#, no-wrap
+msgid "bsdstart"
+msgstr "bsdstart"
+
+#. type: tbl table
+#: ../man/ps.1:1068 ../man/ps.1:1736
+#, no-wrap
+msgid "START"
+msgstr "START"
+
+#. type: tbl table
+#: ../man/ps.1:1073
+#, no-wrap
+msgid ""
+"time the command started. If the process was started less than 24 hours ago,\n"
+"the output format is \"\\ HH:MM\", else it is \" Mmm:SS\" (where Mmm is the three\n"
+"letters of the month). See also\n"
+"B<lstart>,B<\\ start>,B<\\ start_time>, andB<\\ stime>."
+msgstr ""
+"tiden kommandot startade. Om processen startades för mindre än 24 timmar sedan,\n"
+"är utmatningsformatet â€\\ HH:MMâ€, annars är den †Mmm:SS†(där Mmm är de tre\n"
+"bokstäverna i månaden). Se även\n"
+"B<lstart>,B<\\ start>,B<\\ start_time> ochB<\\ stime>."
+
+#. type: tbl table
+#: ../man/ps.1:1075
+#, no-wrap
+msgid "bsdtime"
+msgstr "bsdtime"
+
+#. type: tbl table
+#: ../man/ps.1:1079
+#, no-wrap
+msgid ""
+"accumulated cpu time, user + system. The display format is usually\n"
+"\"MMM:SS\", but can be shifted to the right if the process used more than 999\n"
+"minutes of cpu time."
+msgstr ""
+"accumulerad cpu-tid, användare + system. Visningsformatet är vanligen\n"
+"â€MMM:SSâ€, men kan justeras Ã¥t höger om processen har använt mer än 999\n"
+"minuter cpu-tid."
+
+#. type: tbl table
+#: ../man/ps.1:1085
+#, no-wrap
+msgid ""
+"processor utilization. Currently, this is the integer value of the percent\n"
+"usage over the lifetime of the process. (see\n"
+"B<%cpu>)."
+msgstr ""
+"processoranvändning. För närvarande är detta heltalsvärdet av procent\n"
+"användning över processens livslängd. (se\n"
+"B<%cpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1087
+#, no-wrap
+msgid "caught"
+msgstr "caught"
+
+#. type: tbl table
+#: ../man/ps.1:1087 ../man/ps.1:1686
+#, no-wrap
+msgid "CAUGHT"
+msgstr "CAUGHT"
+
+#. type: tbl table
+#: ../man/ps.1:1093
+#, no-wrap
+msgid ""
+"mask of the caught signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64 bits mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_catch>, B<sigcatch>)."
+msgstr ""
+"mask av fångade signaler, se\n"
+"I<signal>(7).\n"
+"Enligt bredden på fältet visas en 32- eller 64-bitars mask i hexadecimalt\n"
+"format, om inte flaggan B<--signames> används. (alias\n"
+"B<sig_catch>, B<sigcatch>)."
+
+#. type: tbl table
+#: ../man/ps.1:1095
+#, no-wrap
+msgid "cgname"
+msgstr "cgnamn"
+
+#. type: tbl table
+#: ../man/ps.1:1095
+#, no-wrap
+msgid "CGNAME"
+msgstr "KGNAMN"
+
+#. type: tbl table
+#: ../man/ps.1:1097
+#, no-wrap
+msgid "display name of control groups to which the process belongs."
+msgstr "visar namnet på kontrollgrupper vilka denna process hör till."
+
+#. type: tbl table
+#: ../man/ps.1:1099
+#, no-wrap
+msgid "cgroup"
+msgstr "cgroup"
+
+#. type: tbl table
+#: ../man/ps.1:1099
+#, no-wrap
+msgid "CGROUP"
+msgstr "KGRUPPR"
+
+#. type: tbl table
+#: ../man/ps.1:1101
+#, no-wrap
+msgid "display control groups to which the process belongs."
+msgstr "visar kontrollgruppe vilka denna process hör till."
+
+#. type: tbl table
+#: ../man/ps.1:1103
+#, no-wrap
+msgid "cgroupns"
+msgstr "cgroupns"
+
+#. type: tbl table
+#: ../man/ps.1:1103
+#, no-wrap
+msgid "CGROUPNS"
+msgstr "CGROUPNS"
+
+#. type: tbl table
+#: ../man/ps.1:1107 ../man/ps.1:1374 ../man/ps.1:1427 ../man/ps.1:1433
+#: ../man/ps.1:1524 ../man/ps.1:1836 ../man/ps.1:1911 ../man/ps.1:1922
+#, no-wrap
+msgid ""
+"Unique inode number describing the namespace the process belongs to.\n"
+"See\n"
+"I<namespaces>(7)."
+msgstr ""
+"Unikt inodsnummer som beskriver namnrymden processen hör till.\n"
+"Se\n"
+"I<namespaces>(7)."
+
+#. type: tbl table
+#: ../man/ps.1:1109
+#, no-wrap
+msgid "class"
+msgstr "class"
+
+#. type: tbl table
+#: ../man/ps.1:1109 ../man/ps.1:1135
+#, no-wrap
+msgid "CLS"
+msgstr "CLS"
+
+#. type: tbl table
+#: ../man/ps.1:1113 ../man/ps.1:1139
+#, no-wrap
+msgid ""
+"scheduling class of the process. (alias\n"
+"B<policy>, B<cls>).\n"
+"Field's possible values are:\n"
+msgstr ""
+"processens schemaläggningsklass. (alias\n"
+"B<policy>, B<cls>).\n"
+"Fältets möjliga värden är:\n"
+
+#. type: tbl table
+#: ../man/ps.1:1113 ../man/ps.1:1139 ../man/ps.1:1537
+#, no-wrap
+msgid ".sp 1\n"
+msgstr ".sp 1\n"
+
+#. type: tbl table
+#: ../man/ps.1:1114 ../man/ps.1:1140 ../man/ps.1:1538
+#, no-wrap
+msgid ".in +9n\n"
+msgstr ".in +9n\n"
+
+#. type: tbl table
+#: ../man/ps.1:1116 ../man/ps.1:1142 ../man/ps.1:1540
+#, no-wrap
+msgid "-\tnot reported\n"
+msgstr "-\tinte rapporterad\n"
+
+#. type: tbl table
+#: ../man/ps.1:1118 ../man/ps.1:1144 ../man/ps.1:1542
+#, no-wrap
+msgid "TS\tSCHED_OTHER\n"
+msgstr "TS\tSCHED_OTHER\n"
+
+#. type: tbl table
+#: ../man/ps.1:1120 ../man/ps.1:1146 ../man/ps.1:1544
+#, no-wrap
+msgid "FF\tSCHED_FIFO\n"
+msgstr "FF\tSCHED_FIFO\n"
+
+#. type: tbl table
+#: ../man/ps.1:1122 ../man/ps.1:1148 ../man/ps.1:1546
+#, no-wrap
+msgid "RR\tSCHED_RR\n"
+msgstr "RR\tSCHED_RR\n"
+
+#. type: tbl table
+#: ../man/ps.1:1124 ../man/ps.1:1150 ../man/ps.1:1548
+#, no-wrap
+msgid "B\tSCHED_BATCH\n"
+msgstr "B\tSCHED_BATCH\n"
+
+#. type: tbl table
+#: ../man/ps.1:1126 ../man/ps.1:1152 ../man/ps.1:1550
+#, no-wrap
+msgid "ISO\tSCHED_ISO\n"
+msgstr "ISO\tSCHED_ISO\n"
+
+#. type: tbl table
+#: ../man/ps.1:1128 ../man/ps.1:1154 ../man/ps.1:1552
+#, no-wrap
+msgid "IDL\tSCHED_IDLE\n"
+msgstr "IDL\tSCHED_IDLE\n"
+
+#. type: tbl table
+#: ../man/ps.1:1130 ../man/ps.1:1156 ../man/ps.1:1554
+#, no-wrap
+msgid "DLN\tSCHED_DEADLINE\n"
+msgstr "DLN\tSCHED_DEADLINE\n"
+
+#. type: tbl table
+#: ../man/ps.1:1132 ../man/ps.1:1158 ../man/ps.1:1556
+#, no-wrap
+msgid "?\tunknown value\n"
+msgstr "?\tokänt värde\n"
+
+#. type: tbl table
+#: ../man/ps.1:1132 ../man/ps.1:1158 ../man/ps.1:1556
+#, no-wrap
+msgid ".in\n"
+msgstr ".in\n"
+
+#. type: tbl table
+#: ../man/ps.1:1135
+#, no-wrap
+msgid "cls"
+msgstr "cls"
+
+#. type: tbl table
+#: ../man/ps.1:1161 ../man/ps.1:1867
+#, no-wrap
+msgid "CMD"
+msgstr "CMD"
+
+#. type: tbl table
+#: ../man/ps.1:1166
+#, no-wrap
+msgid ""
+"see\n"
+"B<args>.\n"
+"(alias\n"
+"B<args>, B<command>)."
+msgstr ""
+"se\n"
+"B<args>.\n"
+"(alias\n"
+"B<args>, B<command>)."
+
+#. type: tbl table
+#: ../man/ps.1:1180
+#, no-wrap
+msgid ""
+"command name (only the executable name). The output in this column may\n"
+"contain spaces.\n"
+"(alias\n"
+"B<ucmd>, B<ucomm>).\n"
+"See also the\n"
+"B<args>\n"
+"format keyword, the\n"
+"B<-f>\n"
+"option, and the\n"
+"B<c>\n"
+"option.\n"
+msgstr ""
+"kommandonamn (endast det körbara namnet). Utdata i denna kolumn kan\n"
+"innehålla blanktecken.\n"
+"(alias\n"
+"B<ucmd>, B<ucomm>).\n"
+"Se även formatnyckelordet\n"
+"B<args>, flaggan\n"
+"B<-f>\n"
+"och flaggan\n"
+"B<c>.\n"
+
+#. type: tbl table
+#: ../man/ps.1:1194
+#, no-wrap
+msgid ""
+"When specified last, this column will extend to the edge of the display. If\n"
+"B<ps>\n"
+"can not determine display width, as when output is redirected (piped) into a\n"
+"file or another command, the output width is undefined (it may be 80,\n"
+"unlimited, determined by the\n"
+"B<TERM>\n"
+"variable, and so on). The\n"
+"B<COLUMNS>\n"
+"environment variable or\n"
+"B<--cols>\n"
+"option may be used to exactly determine the width in this case. The\n"
+"B<w>\\ orB<\\ -w>\n"
+"option may be also be used to adjust width."
+msgstr ""
+"När den anges sist kommer denna kolumn sträcka sig till kanten av displayen. Om\n"
+"B<ps>\n"
+"inte kan avgöra displaybredden, som när utdata är omdirigerad (pipe) till en\n"
+"fil eller ett annat kommando, är utdatabredden odefinierad (den kan vara 80,\n"
+"obegränsad, bestämd av variabeln\n"
+"B<TERM>,\n"
+"och så vidare). Miljövariabeln\n"
+"B<COLUMNS>\n"
+"eller flaggan\n"
+"B<--cols>\n"
+"kan användas för att exakt bestämma bredden i detta fall. Flaggan\n"
+"B<w>\\ eller B<\\ -w>\n"
+"kan också användas för att justera bredden."
+
+#. type: tbl table
+#: ../man/ps.1:1196
+#, no-wrap
+msgid "command"
+msgstr "command"
+
+#. type: tbl table
+#: ../man/ps.1:1201
+#, no-wrap
+msgid ""
+"See\n"
+"B<args>.\n"
+"(alias\n"
+"B<args>, B<command>)."
+msgstr ""
+"Se\n"
+"B<args>.\n"
+"(alias\n"
+"B<args>, B<command>)."
+
+#. type: tbl table
+#: ../man/ps.1:1203
+#, no-wrap
+msgid "cp"
+msgstr "cp"
+
+#. type: tbl table
+#: ../man/ps.1:1203
+#, no-wrap
+msgid "CP"
+msgstr "CP"
+
+#. type: tbl table
+#: ../man/ps.1:1206
+#, no-wrap
+msgid ""
+"per-mill (tenths of a percent) CPU usage. (see\n"
+"B<%cpu>)."
+msgstr ""
+"promille (tiondels procent) CPU-användning. (se\n"
+"B<%cpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1208
+#, no-wrap
+msgid "cputime"
+msgstr "cputime"
+
+#. type: tbl table
+#: ../man/ps.1:1211
+#, no-wrap
+msgid ""
+"cumulative CPU time, \"[DD-]hh:mm:ss\" format. (alias\n"
+"B<time>)."
+msgstr ""
+"ackumulerad CPU-tid, formatet â€[DD-]hh:mm:ssâ€. (alias\n"
+"B<time>)."
+
+#. type: tbl table
+#: ../man/ps.1:1213
+#, no-wrap
+msgid "cputimes"
+msgstr "cputimes"
+
+#. type: tbl table
+#: ../man/ps.1:1216
+#, no-wrap
+msgid ""
+"cumulative CPU time in seconds (alias\n"
+"B<times>)."
+msgstr ""
+"ackumulerad CPU-tid i sekunder (alias\n"
+"B<times>)."
+
+#. type: tbl table
+#: ../man/ps.1:1218
+#, no-wrap
+msgid "cuc"
+msgstr "cuc"
+
+#. type: tbl table
+#: ../man/ps.1:1218
+#, no-wrap
+msgid "%CUC"
+msgstr "%CUB"
+
+#. type: tbl table
+#: ../man/ps.1:1226
+#, no-wrap
+msgid ""
+"The CPU utilization of a process, including dead children, in an extended \"##.###\" format.\n"
+"(see also\n"
+"B<%cpu>,\n"
+"B<c>,\n"
+"B<cp>,\n"
+"B<cuu>,\n"
+"B<pcpu>)."
+msgstr ""
+"En process CPU-användning, inklusive döda barn, i ett utökat format â€##.###â€.\n"
+"(se även\n"
+"B<%cpu>,\n"
+"B<c>,\n"
+"B<cp>,\n"
+"B<cuu>,\n"
+"B<pcpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1228
+#, no-wrap
+msgid "cuu"
+msgstr "cuu"
+
+#. type: tbl table
+#: ../man/ps.1:1228
+#, no-wrap
+msgid "%CUU"
+msgstr "%CUA"
+
+#. type: tbl table
+#: ../man/ps.1:1236
+#, no-wrap
+msgid ""
+"The CPU utilization of a process in an extended \"##.###\" format.\n"
+"(see also\n"
+"B<%cpu>,\n"
+"B<c>,\n"
+"B<cp>,\n"
+"B<cuc>,\n"
+"B<pcpu>)."
+msgstr ""
+"En process CPU-användning i ett utökat format â€##.###â€.\n"
+"(se även\n"
+"B<%cpu>,\n"
+"B<c>,\n"
+"B<cp>,\n"
+"B<cuc>,\n"
+"B<pcpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1238
+#, no-wrap
+msgid "drs"
+msgstr "drs"
+
+#. type: tbl table
+#: ../man/ps.1:1238
+#, no-wrap
+msgid "DRS"
+msgstr "DRS"
+
+#. type: tbl table
+#: ../man/ps.1:1247
+#, no-wrap
+msgid ""
+"data resident set size, the amount of private memory I<reserved> by a process.\n"
+"It is also known as DATA. Such memory may not yet be mapped to\n"
+"B<rss>\n"
+"but will always be included\n"
+"included in the\n"
+"B<vsz>\n"
+"amount.\n"
+msgstr ""
+"storleken på den residenta mängden data, mängden fysiskt minne I<reserverat>\n"
+"av en process. Det är även känt som DATA. Sådant minne behöver ännu inte\n"
+"vara mappat till\n"
+"B<rss>\n"
+"men kommer alltid att inkluderas i mängden\n"
+"B<vsz>.\n"
+
+#. type: tbl table
+#: ../man/ps.1:1249
+#, no-wrap
+msgid "egid"
+msgstr "egid"
+
+#. type: tbl table
+#: ../man/ps.1:1249
+#, no-wrap
+msgid "EGID"
+msgstr "EGID"
+
+#. type: tbl table
+#: ../man/ps.1:1252
+#, no-wrap
+msgid ""
+"effective group ID number of the process as a decimal integer. (alias\n"
+"B<gid>)."
+msgstr ""
+"effektivt grupp-ID-nummer på processen som ett decimalt heltal. (alias\n"
+"B<gid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1254
+#, no-wrap
+msgid "egroup"
+msgstr "egroup"
+
+#. type: tbl table
+#: ../man/ps.1:1254
+#, no-wrap
+msgid "EGROUP"
+msgstr "EGROUP"
+
+#. type: tbl table
+#: ../man/ps.1:1259
+#, no-wrap
+msgid ""
+"effective group ID of the process. This will be the textual group ID, if it\n"
+"can be obtained and the field width permits, or a decimal representation\n"
+"otherwise. (alias\n"
+"B<group>)."
+msgstr ""
+"effektivt grupp-ID på processen. Detta kommer vara det textuella grupp-ID:t\n"
+"om det kan hämtas och fältbredden tillåter, eller en decimal representation\n"
+"i annat fall. (alias\n"
+"B<group>)."
+
+#. type: tbl table
+#: ../man/ps.1:1261
+#, no-wrap
+msgid "eip"
+msgstr "eip"
+
+#. type: tbl table
+#: ../man/ps.1:1261
+#, no-wrap
+msgid "EIP"
+msgstr "EIP"
+
+#. type: tbl table
+#: ../man/ps.1:1264
+#, no-wrap
+msgid ""
+"instruction pointer. As of kernel 4.9.xx will be zeroed out unless task is\n"
+"exiting or being core dumped."
+msgstr ""
+"instruktionspekaren. Från kärna 4.9.xx kommer det att vara nollställt utom\n"
+"om en uppgift avslutar eller dumpar minnet."
+
+#. type: tbl table
+#: ../man/ps.1:1266
+#, no-wrap
+msgid "esp"
+msgstr "esp"
+
+#. type: tbl table
+#: ../man/ps.1:1266
+#, no-wrap
+msgid "ESP"
+msgstr "ESP"
+
+#. type: tbl table
+#: ../man/ps.1:1269
+#, no-wrap
+msgid ""
+"stack pointer. As of kernel 4.9.xx will be zeroed out unless task is\n"
+"exiting or being core dumped."
+msgstr ""
+"stackpekaren. Från kärna 4.9.xx kommer det att vara nollställt utom\n"
+"om en uppgift avslutar eller dumpar minnet."
+
+#. type: tbl table
+#: ../man/ps.1:1273
+#, no-wrap
+msgid "elapsed time since the process was started, in the form [[DD-]hh:]mm:ss."
+msgstr "förlupen tid sedan processen startades, i formatet [[DD-]hh:]mm:ss."
+
+#. type: tbl table
+#: ../man/ps.1:1275
+#, no-wrap
+msgid "etimes"
+msgstr "etimes"
+
+#. type: tbl table
+#: ../man/ps.1:1277
+#, no-wrap
+msgid "elapsed time since the process was started, in seconds."
+msgstr "förlupen tid sedan processen startades, i sekunder."
+
+#. type: tbl table
+#: ../man/ps.1:1279
+#, no-wrap
+msgid "euid"
+msgstr "euid"
+
+#. type: tbl table
+#: ../man/ps.1:1279
+#, no-wrap
+msgid "EUID"
+msgstr "EUID"
+
+#. type: tbl table
+#: ../man/ps.1:1282
+#, no-wrap
+msgid ""
+"effective user ID (alias\n"
+"B<uid>)."
+msgstr ""
+"effektivt användar-ID (alias\n"
+"B<uid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1284
+#, no-wrap
+msgid "euser"
+msgstr "euser"
+
+#. type: tbl table
+#: ../man/ps.1:1284
+#, no-wrap
+msgid "EUSER"
+msgstr "EUSER"
+
+#. type: tbl table
+#: ../man/ps.1:1290
+#, no-wrap
+msgid ""
+"effective user name. This will be the textual user ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise. The\n"
+"B<n>\n"
+"option can be used to force the decimal representation. (alias\n"
+"B<uname>, B<user>)."
+msgstr ""
+"effektivt användarnamn. Detta kommer vara det textuella användar-ID:t, om det\n"
+"kan avgöras och fältbredden så tillåter, eller en decimal representation i\n"
+"annat fall. Flaggan\n"
+"B<n>\n"
+"kan användas för att framtvinga den decimala representationen. (alias\n"
+"B<uname>, B<user>)."
+
+#. type: tbl table
+#: ../man/ps.1:1292
+#, no-wrap
+msgid "exe"
+msgstr "exe"
+
+#. type: tbl table
+#: ../man/ps.1:1292
+#, no-wrap
+msgid "EXE"
+msgstr "EXE"
+
+#. type: tbl table
+#: ../man/ps.1:1298
+#, no-wrap
+msgid ""
+"path to the executable. Useful if path cannot be printed via\n"
+"B<cmd>, B<comm>\n"
+"or\n"
+"B<args>\n"
+"format options."
+msgstr ""
+"sökvägen till den körbara. Användbart om sökvägen inte kan skrivas ut via\n"
+"formatflaggorna\n"
+"B<cmd>, B<comm>\n"
+"eller\n"
+"B<args>."
+
+#. type: tbl table
+#: ../man/ps.1:1300 ../man/ps.1:1319 ../man/ps.1:1326
+#, no-wrap
+msgid "F"
+msgstr "F"
+
+#. type: tbl table
+#: ../man/ps.1:1305
+#, no-wrap
+msgid ""
+"flags associated with the process, see the\n"
+"B<PROCESS FLAGS>\n"
+"section. (alias\n"
+"B<flag>, B<flags>)."
+msgstr ""
+"flaggor associerade med processen, se avsnittet\n"
+"B<PROCESSFLAGGOR>.\n"
+"(alias\n"
+"B<flag>, B<flags>)."
+
+#. type: tbl table
+#: ../man/ps.1:1307
+#, no-wrap
+msgid "fgid"
+msgstr "fgid"
+
+#. type: tbl table
+#: ../man/ps.1:1307
+#, no-wrap
+msgid "FGID"
+msgstr "FGID"
+
+#. type: tbl table
+#: ../man/ps.1:1310
+#, no-wrap
+msgid ""
+"filesystem access group\\ ID. (alias\n"
+"B<fsgid>)."
+msgstr ""
+"filsystemsåtkomstgrupp-ID. (alias\n"
+"B<fsgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1312
+#, no-wrap
+msgid "fgroup"
+msgstr "fgroup"
+
+#. type: tbl table
+#: ../man/ps.1:1312
+#, no-wrap
+msgid "FGROUP"
+msgstr "FGROUP"
+
+#. type: tbl table
+#: ../man/ps.1:1317
+#, no-wrap
+msgid ""
+"filesystem access group ID. This will be the textual group ID, if it can\n"
+"be obtained and the field width permits, or a decimal representation\n"
+"otherwise. (alias\n"
+"B<fsgroup>)."
+msgstr ""
+"filsystemets åtkomstgrupp-ID. Detta kommer vara det textuella grupp-ID:t\n"
+"om det kan hämtas och fältbredden tillåter, eller en decimal representation\n"
+"i annat fall. (alias\n"
+"B<fsgroup>)."
+
+#. type: tbl table
+#: ../man/ps.1:1319
+#, no-wrap
+msgid "flag"
+msgstr "flag"
+
+#. type: tbl table
+#: ../man/ps.1:1324
+#, no-wrap
+msgid ""
+"see\n"
+"B<f>.\n"
+"(alias\n"
+"B<f>, B<flags>)."
+msgstr ""
+"se\n"
+"B<f>.\n"
+"(alias\n"
+"B<f>, B<flags>)."
+
+#. type: tbl table
+#: ../man/ps.1:1331
+#, no-wrap
+msgid ""
+"see\n"
+"B<f>.\n"
+"(alias\n"
+"B<f>, B<flag>)."
+msgstr ""
+"se\n"
+"B<f>.\n"
+"(alias\n"
+"B<f>, B<flag>)."
+
+#. type: tbl table
+#: ../man/ps.1:1333
+#, no-wrap
+msgid "fname"
+msgstr "fname"
+
+#. type: tbl table
+#: ../man/ps.1:1336
+#, no-wrap
+msgid ""
+"first 8 bytes of the base name of the process's executable file. The output\n"
+"in this column may contain spaces."
+msgstr ""
+"de första 8 byten av basnamnet på processens körbara fil. Utmatningen i\n"
+"denna kolumn kan innehålla blanktecken."
+
+#. type: tbl table
+#: ../man/ps.1:1338
+#, no-wrap
+msgid "fuid"
+msgstr "fuid"
+
+#. type: tbl table
+#: ../man/ps.1:1338
+#, no-wrap
+msgid "FUID"
+msgstr "FUID"
+
+#. type: tbl table
+#: ../man/ps.1:1341
+#, no-wrap
+msgid ""
+"filesystem access user ID. (alias\n"
+"B<fsuid>)."
+msgstr ""
+"filsystemsåtkomstanvändar-ID. (alias\n"
+"B<fsuid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1343
+#, no-wrap
+msgid "fuser"
+msgstr "fuser"
+
+#. type: tbl table
+#: ../man/ps.1:1343
+#, no-wrap
+msgid "FUSER"
+msgstr "FUSER"
+
+#. type: tbl table
+#: ../man/ps.1:1346
+#, no-wrap
+msgid ""
+"filesystem access user ID. This will be the textual user ID, if it can be\n"
+"obtained and the field width permits, or a decimal representation otherwise."
+msgstr ""
+"filsystemsåtkomstanvändar-ID. Detta kommer vara det textuella användar-ID:t,\n"
+"om det kan hämtas och fältbredden tillåter, eller en decimal representation\n"
+"i annat fall."
+
+#. type: tbl table
+#: ../man/ps.1:1348
+#, no-wrap
+msgid "gid"
+msgstr "gid"
+
+#. type: tbl table
+#: ../man/ps.1:1348
+#, no-wrap
+msgid "GID"
+msgstr "GID"
+
+#. type: tbl table
+#: ../man/ps.1:1353
+#, no-wrap
+msgid ""
+"see\n"
+"B<egid>.\n"
+"(alias\n"
+"B<egid>)."
+msgstr ""
+"se\n"
+"B<egid>.\n"
+"(alias\n"
+"B<egid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1360
+#, no-wrap
+msgid ""
+"see\n"
+"B<egroup>.\n"
+"(alias\n"
+"B<egroup>)."
+msgstr ""
+"se\n"
+"B<egroup>.\n"
+"(alias\n"
+"B<egroup>)."
+
+#. type: tbl table
+#: ../man/ps.1:1362
+#, no-wrap
+msgid "ignored"
+msgstr "ignored"
+
+#. type: tbl table
+#: ../man/ps.1:1362 ../man/ps.1:1693
+#, no-wrap
+msgid "IGNORED"
+msgstr "IGNORED"
+
+#. type: tbl table
+#: ../man/ps.1:1368
+#, no-wrap
+msgid ""
+"mask of the ignored signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64 bits mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_ignore>, B<sigignore>)."
+msgstr ""
+"mask över de ignorerade signalerna, se\n"
+"I<signal>(7).\n"
+"Enligt fältets bredd visas en 32-bitars eller 64-bitars mask i hexadecimal\n"
+"form, on inte fagga B<--signames> används. (alias\n"
+"B<sig_ignore>, B<sigignore>)."
+
+#. type: tbl table
+#: ../man/ps.1:1370
+#, no-wrap
+msgid "ipcns"
+msgstr "ipcns"
+
+#. type: tbl table
+#: ../man/ps.1:1370
+#, no-wrap
+msgid "IPCNS"
+msgstr "IPCNS"
+
+#. type: tbl table
+#: ../man/ps.1:1376
+#, no-wrap
+msgid "label"
+msgstr "label"
+
+#. type: tbl table
+#: ../man/ps.1:1376
+#, no-wrap
+msgid "LABEL"
+msgstr "LABEL"
+
+#. type: tbl table
+#: ../man/ps.1:1381
+#, no-wrap
+msgid ""
+"security label, most commonly used for SELinux context data. This is for\n"
+"the\n"
+"I<Mandatory Access Control>\n"
+"(\"MAC\") found on high-security systems."
+msgstr ""
+"säkerhetsetikett, vanligen använt för SELinux-kontextdata. Detta är till för\n"
+"I<tvingande åtkomstkontroll>\n"
+"(â€MACâ€) som finns i högsäkerhetssystem."
+
+#. type: tbl table
+#: ../man/ps.1:1383
+#, no-wrap
+msgid "lstart"
+msgstr "lstart"
+
+#. type: tbl table
+#: ../man/ps.1:1383 ../man/ps.1:1729
+#, no-wrap
+msgid "STARTED"
+msgstr "STARTED"
+
+#. type: tbl table
+#: ../man/ps.1:1386
+#, no-wrap
+msgid ""
+"time the command started. This will be in the form \"DDD mmm HH:MM:SS YYY\"\n"
+"unless changed by the B<-D> option."
+msgstr ""
+"Tiden kommandot startade. Detta kommer vara i formatet â€DDD mmm HH:MM:SS Ã…Ã…Ã…Ã…â€\n"
+"om det inte ändras av flaggan B<-D>."
+
+#. type: tbl table
+#: ../man/ps.1:1388
+#, no-wrap
+msgid "lsession"
+msgstr "lsession"
+
+#. type: tbl table
+#: ../man/ps.1:1388
+#, no-wrap
+msgid "SESSION"
+msgstr "SESSION"
+
+#. type: tbl table
+#: ../man/ps.1:1391
+#, no-wrap
+msgid ""
+"displays the login session identifier of a process,\n"
+"if systemd support has been included."
+msgstr ""
+"visar identiferaren av inloggningssessionen för en process,\n"
+"om stöd för systemd har inkluderats."
+
+#. type: tbl table
+#: ../man/ps.1:1393
+#, no-wrap
+msgid "luid"
+msgstr "luid"
+
+#. type: tbl table
+#: ../man/ps.1:1393
+#, no-wrap
+msgid "LUID"
+msgstr "LUID"
+
+#. type: tbl table
+#: ../man/ps.1:1395
+#, no-wrap
+msgid "displays Login ID associated with a process."
+msgstr "visar login-ID associerat med en process."
+
+#. type: tbl table
+#: ../man/ps.1:1397
+#, no-wrap
+msgid "lwp"
+msgstr "lwp"
+
+#. type: tbl table
+#: ../man/ps.1:1397
+#, no-wrap
+msgid "LWP"
+msgstr "LWP"
+
+#. type: tbl table
+#: ../man/ps.1:1403
+#, no-wrap
+msgid ""
+"light weight process (thread) ID of the dispatchable entity (alias\n"
+"B<spid>,B<\\ tid>).\n"
+"See\n"
+"B<tid>\n"
+"for additional information."
+msgstr ""
+"den körbara lättviktsprocessens (trådens) ID (alias\n"
+"B<spid>,B<\\ tid>).\n"
+"Se\n"
+"B<tid>\n"
+"för ytterligare information."
+
+#. type: tbl table
+#: ../man/ps.1:1405
+#, no-wrap
+msgid "lxc"
+msgstr "lxc"
+
+#. type: tbl table
+#: ../man/ps.1:1405
+#, no-wrap
+msgid "LXC"
+msgstr "LXC"
+
+#. type: tbl table
+#: ../man/ps.1:1408
+#, no-wrap
+msgid ""
+"The name of the lxc container within which a task is running.\n"
+"If a process is not running inside a container, a dash ('-') will be shown."
+msgstr ""
+"Namnet på lxc-behållaren i vilken en process kör.\n"
+"Om en process inte kör i en behÃ¥llare kommer ett streck (â€-â€) visas."
+
+#. type: tbl table
+#: ../man/ps.1:1410
+#, no-wrap
+msgid "machine"
+msgstr "machine"
+
+#. type: tbl table
+#: ../man/ps.1:1410
+#, no-wrap
+msgid "MACHINE"
+msgstr "MACHINE"
+
+#. type: tbl table
+#: ../man/ps.1:1413
+#, no-wrap
+msgid ""
+"displays the machine name for processes assigned to VM or container,\n"
+"if systemd support has been included."
+msgstr ""
+"visar maskinnamnet för processer som tillhör en VM eller behållare,\n"
+"om stöd för systemd har inkluderats."
+
+#. type: tbl table
+#: ../man/ps.1:1415
+#, no-wrap
+msgid "MAJFLT"
+msgstr "MAJFLT"
+
+#. type: tbl table
+#: ../man/ps.1:1417
+#, no-wrap
+msgid "The number of major page faults that have occurred with this process."
+msgstr "Antalet större sidfel som har inträffat för denna process."
+
+#. type: tbl table
+#: ../man/ps.1:1419
+#, no-wrap
+msgid "MINFLT"
+msgstr "MINFLT"
+
+#. type: tbl table
+#: ../man/ps.1:1421
+#, no-wrap
+msgid "The number of minor page faults that have occurred with this process."
+msgstr "Antalet mindre sidfel som har inträffat för denna process."
+
+#. type: tbl table
+#: ../man/ps.1:1423
+#, no-wrap
+msgid "mntns"
+msgstr "mntns"
+
+#. type: tbl table
+#: ../man/ps.1:1423
+#, no-wrap
+msgid "MNTNS"
+msgstr "MNTNS"
+
+#. type: tbl table
+#: ../man/ps.1:1429
+#, no-wrap
+msgid "netns"
+msgstr "netns"
+
+#. type: tbl table
+#: ../man/ps.1:1429
+#, no-wrap
+msgid "NETNS"
+msgstr "NETNS"
+
+#. type: tbl table
+#: ../man/ps.1:1435
+#, no-wrap
+msgid "ni"
+msgstr "ni"
+
+#. type: tbl table
+#: ../man/ps.1:1441
+#, no-wrap
+msgid ""
+"nice value. This ranges from 19 (nicest) to -20 (not nice to others),\n"
+"see\n"
+"I<nice>(1).\n"
+"(alias\n"
+"B<nice>)."
+msgstr ""
+"nice-värde. Detta går från 19 (trevligast) till -20 (inte trevligt mot andra),\n"
+"se\n"
+"I<nice>(1).\n"
+"(alias\n"
+"B<nice>)."
+
+#. type: tbl table
+#: ../man/ps.1:1447
+#, no-wrap
+msgid ""
+"see\n"
+"B<ni>.B<(alias>\n"
+"B<ni>)."
+msgstr ""
+"se\n"
+"B<ni>.\n"
+"(alias\n"
+"B<ni>)."
+
+#. type: tbl table
+#: ../man/ps.1:1449
+#, no-wrap
+msgid "nlwp"
+msgstr "nlwp"
+
+#. type: tbl table
+#: ../man/ps.1:1449
+#, no-wrap
+msgid "NLWP"
+msgstr "NLWP"
+
+#. type: tbl table
+#: ../man/ps.1:1452
+#, no-wrap
+msgid ""
+"number of lwps (threads) in the process. (alias\n"
+"B<thcount>)."
+msgstr ""
+"antal lwps (trådar) i processen. (alias\n"
+"B<thcount>)."
+
+#. type: tbl table
+#: ../man/ps.1:1454
+#, no-wrap
+msgid "numa"
+msgstr "numa"
+
+#. type: tbl table
+#: ../man/ps.1:1454
+#, no-wrap
+msgid "NUMA"
+msgstr "NUMA"
+
+#. type: tbl table
+#: ../man/ps.1:1457
+#, no-wrap
+msgid ""
+"The node associated with the most recently used processor.\n"
+"A I<-1> means that NUMA information is unavailable."
+msgstr ""
+"Noden associerad med den senast använda processorn.\n"
+"Ett I<-1> betyder att NUMA-information inte är tillgänglig."
+
+#. type: tbl table
+#: ../man/ps.1:1459
+#, no-wrap
+msgid "nwchan"
+msgstr "nwchan"
+
+#. type: tbl table
+#: ../man/ps.1:1459 ../man/ps.1:1950
+#, no-wrap
+msgid "WCHAN"
+msgstr "VKAN"
+
+#. type: tbl table
+#: ../man/ps.1:1463
+#, no-wrap
+msgid ""
+"address of the kernel function where the process is sleeping (use\n"
+"B<wchan>\n"
+"if you want the kernel function name)."
+msgstr ""
+"adress till kärnfunktionen där processen sover (använd\n"
+"B<wchan>\n"
+"om du vill veta kärnfunktionens namn)."
+
+#. type: tbl table
+#: ../man/ps.1:1465
+#, no-wrap
+msgid "oom"
+msgstr "oom"
+
+#. type: tbl table
+#: ../man/ps.1:1465
+#, no-wrap
+msgid "OOM"
+msgstr "OOM"
+
+#. type: tbl table
+#: ../man/ps.1:1468
+#, no-wrap
+msgid ""
+"Out of Memory Score. The value, ranging from 0 to +1000, used to select\n"
+"task(s) to kill when memory is exhausted."
+msgstr ""
+"Slut-på-minne-värde. Värdet, från 0 till +1000, som används för att välja\n"
+"uppgift(er) att döda när minnet tar slut."
+
+#. type: tbl table
+#: ../man/ps.1:1470
+#, no-wrap
+msgid "oomadj"
+msgstr "oomadj"
+
+#. type: tbl table
+#: ../man/ps.1:1470
+#, no-wrap
+msgid "OOMADJ"
+msgstr "OOMADJ"
+
+#. type: tbl table
+#: ../man/ps.1:1474
+#, no-wrap
+msgid ""
+"Out of Memory Adjustment Factor. The value is added to the current out of\n"
+"memory score which is then used to determine which task to kill when memory\n"
+"is exhausted."
+msgstr ""
+"Slut-på-minne-justeringsfaktor. Värdet läggs till till det aktuella slut-på\n"
+"minnet-värdet som sedan används för att avgöra vilken uppgift som skall dödas\n"
+"när minnet tar slut."
+
+#. type: tbl table
+#: ../man/ps.1:1476
+#, no-wrap
+msgid "ouid"
+msgstr "ouid"
+
+#. type: tbl table
+#: ../man/ps.1:1476
+#, no-wrap
+msgid "OWNER"
+msgstr "OWNER"
+
+#. type: tbl table
+#: ../man/ps.1:1479
+#, no-wrap
+msgid ""
+"displays the Unix user identifier of the owner of the session of a process,\n"
+"if systemd support has been included."
+msgstr ""
+"visar Unix-användaridentifieraren för ägaren av processens sessionen,\n"
+"om stöd för systemd har inkluderats."
+
+#. type: tbl table
+#: ../man/ps.1:1486
+#, no-wrap
+msgid ""
+"see\n"
+"B<%cpu>.\n"
+"(alias\n"
+"B<%cpu>)."
+msgstr ""
+"se\n"
+"B<%cpu>.\n"
+"(alias\n"
+"B<%cpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1488
+#, no-wrap
+msgid "pending"
+msgstr "pending"
+
+#. type: tbl table
+#: ../man/ps.1:1488 ../man/ps.1:1679
+#, no-wrap
+msgid "PENDING"
+msgstr "PENDING"
+
+#. type: tbl table
+#: ../man/ps.1:1500
+#, no-wrap
+msgid ""
+"mask of the pending signals. See\n"
+"I<signal>(7).\n"
+"Signals pending on the process are distinct from signals pending on\n"
+"individual threads. Use the\n"
+"B<m>\n"
+"option or the\n"
+"B<-m>\n"
+"option to see both. According to the width of the field, a 32 or 64 bits\n"
+"mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig>)."
+msgstr ""
+"mask av väntande signaler. Se\n"
+"I<signal>(7).\n"
+"Signaler som väntar på processen skiljer sig från signaler som väntar på\n"
+"enskilda trådar. Använd flaggan\n"
+"B<m>\n"
+"eller flaggan\n"
+"B<-m>\n"
+"för att se båda. Enligt fältets bredd visas en 32- eller 64-bitars mask\n"
+"i hexadecimal form, om inte flagga B<--signames> används. (alias\n"
+"B<sig>)."
+
+#. type: tbl table
+#: ../man/ps.1:1506
+#, no-wrap
+msgid ""
+"process group ID or, equivalently, the process ID of the process group\n"
+"leader. (alias\n"
+"B<pgrp>)."
+msgstr ""
+"processgrupps-ID eller, likvärdigt, process-ID:t på processgruppledaren.\n"
+"(alias\n"
+"B<pgrp>)."
+
+#. type: tbl table
+#: ../man/ps.1:1508
+#, no-wrap
+msgid "PGRP"
+msgstr "PGRP"
+
+#. type: tbl table
+#: ../man/ps.1:1513
+#, no-wrap
+msgid ""
+"see\n"
+"B<pgid>.\n"
+"(alias\n"
+"B<pgid>)."
+msgstr ""
+"se\n"
+"B<pgid>.\n"
+"(alias\n"
+"B<pgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1518
+#, no-wrap
+msgid ""
+"a number representing the process ID (alias\n"
+"B<tgid>)."
+msgstr ""
+"ett nummer representerade process-ID:t (alias\n"
+"B<tgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1520
+#, no-wrap
+msgid "pidns"
+msgstr "pidns"
+
+#. type: tbl table
+#: ../man/ps.1:1520
+#, no-wrap
+msgid "PIDNS"
+msgstr "PIDNS"
+
+#. type: tbl table
+#: ../man/ps.1:1526
+#, no-wrap
+msgid "pmem"
+msgstr "pmem"
+
+#. type: tbl table
+#: ../man/ps.1:1531
+#, no-wrap
+msgid ""
+"see\n"
+"B<%mem>.\n"
+"(alias\n"
+"B<%mem>)."
+msgstr ""
+"se\n"
+"B<%mem>.\n"
+"(alias\n"
+"B<%mem>)."
+
+#. type: tbl table
+#: ../man/ps.1:1533
+#, no-wrap
+msgid "policy"
+msgstr "policy"
+
+#. type: tbl table
+#: ../man/ps.1:1533
+#, no-wrap
+msgid "POL"
+msgstr "POL"
+
+#. type: tbl table
+#: ../man/ps.1:1537
+#, no-wrap
+msgid ""
+"scheduling class of the process. (alias\n"
+"B<class>, B<cls>).\n"
+"Possible values are:\n"
+msgstr ""
+"processens schemaläggningsklass. (alias\n"
+"B<class>, B<cls>).\n"
+"Möjliga värden är:\n"
+
+#. type: tbl table
+#: ../man/ps.1:1561
+#, no-wrap
+msgid "parent process ID."
+msgstr "föräldraprocess-ID."
+
+#. type: tbl table
+#: ../man/ps.1:1563
+#, no-wrap
+msgid "pri"
+msgstr "pri"
+
+#. type: tbl table
+#: ../man/ps.1:1563
+#, no-wrap
+msgid "PRI"
+msgstr "PRI"
+
+#. type: tbl table
+#: ../man/ps.1:1565
+#, no-wrap
+msgid "priority of the process. Higher number means higher priority."
+msgstr "processens prioritet. Högre tal betyder högre prioritet."
+
+#. type: tbl table
+#: ../man/ps.1:1567
+#, no-wrap
+msgid "psr"
+msgstr "psr"
+
+#. type: tbl table
+#: ../man/ps.1:1567
+#, no-wrap
+msgid "PSR"
+msgstr "PSR"
+
+#. type: tbl table
+#: ../man/ps.1:1569
+#, no-wrap
+msgid "processor that process last executed on."
+msgstr "processor som processen senast körde på."
+
+#. type: tbl table
+#: ../man/ps.1:1571
+#, no-wrap
+msgid "pss"
+msgstr "pss"
+
+#. type: tbl table
+#: ../man/ps.1:1571
+#, no-wrap
+msgid "PSS"
+msgstr "ARSS"
+
+#. type: tbl table
+#: ../man/ps.1:1574
+#, no-wrap
+msgid ""
+"Proportional share size, the non-swapped physical memory, with shared memory\n"
+"proportionally accounted to all tasks mapping it."
+msgstr ""
+"Proportinell andels storlek, det inte utväxlade fysiska minnet, med delat minne\n"
+"proportionellt fördelat över alla uppgifter som avbildar in det."
+
+#. type: tbl table
+#: ../man/ps.1:1576
+#, no-wrap
+msgid "rbytes"
+msgstr "rbytes"
+
+#. type: tbl table
+#: ../man/ps.1:1576
+#, no-wrap
+msgid "RBYTES"
+msgstr "RBYTES"
+
+#. type: tbl table
+#: ../man/ps.1:1578
+#, no-wrap
+msgid "Number of bytes which this process really did cause to be fetched from the storage layer."
+msgstr "Antal byte som denna process verkligen fick att hämtas från lagringslagret."
+
+#. type: tbl table
+#: ../man/ps.1:1580
+#, no-wrap
+msgid "rchars"
+msgstr "rchars"
+
+#. type: tbl table
+#: ../man/ps.1:1580
+#, no-wrap
+msgid "RCHARS"
+msgstr "RCHARS"
+
+#. type: tbl table
+#: ../man/ps.1:1582
+#, no-wrap
+msgid "Number of bytes which this task has caused to be read from storage."
+msgstr "Antal byte som denna uppgift har orsakat att de lästs in från lagringen."
+
+#. type: tbl table
+#: ../man/ps.1:1584
+#, no-wrap
+msgid "rgid"
+msgstr "rgid"
+
+#. type: tbl table
+#: ../man/ps.1:1584
+#, no-wrap
+msgid "RGID"
+msgstr "VGID"
+
+#. type: tbl table
+#: ../man/ps.1:1586
+#, no-wrap
+msgid "real group ID."
+msgstr "verkligt grupp-ID."
+
+#. type: tbl table
+#: ../man/ps.1:1591
+#, no-wrap
+msgid ""
+"real group name. This will be the textual group ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise."
+msgstr ""
+"verkligt gruppnamn. Detta kommer vara det textuella grupp-ID:t, om det kan\n"
+"hämtas och fältbredden tillåter, eller en decimal representation i annat fall."
+
+#. type: tbl table
+#: ../man/ps.1:1593
+#, no-wrap
+msgid "rops"
+msgstr "rops"
+
+#. type: tbl table
+#: ../man/ps.1:1593
+#, no-wrap
+msgid "ROPS"
+msgstr "ROPS"
+
+#. type: tbl table
+#: ../man/ps.1:1596
+#, no-wrap
+msgid ""
+"Number of read I/O operations—that is, system calls such as\n"
+"B<read>(2) and B<pread>(2)."
+msgstr ""
+"Antal läsnings-I/O-åtgärder — det vill säga, systemanrop såsom\n"
+"B<read>(2) och B<pread>(2)."
+
+#. type: tbl table
+#: ../man/ps.1:1598 ../man/ps.1:1604
+#, no-wrap
+msgid "RSS"
+msgstr "RSS"
+
+#. type: tbl table
+#: ../man/ps.1:1602
+#, no-wrap
+msgid ""
+"resident set size, the non-swapped physical memory that a task has used (in\n"
+"kilobytes). (alias\n"
+"B<rssize>, B<rsz>)."
+msgstr ""
+"residenta mängdens storlek, det ej utväxlade fysiska minnet som en uppgift\n"
+"har använt (i kiloyte). (alias\n"
+"B<rssize>, B<rsz>)."
+
+#. type: tbl table
+#: ../man/ps.1:1604
+#, no-wrap
+msgid "rssize"
+msgstr "rssize"
+
+#. type: tbl table
+#: ../man/ps.1:1609
+#, no-wrap
+msgid ""
+"see\n"
+"B<rss>.\n"
+"(alias\n"
+"B<rss>, B<rsz>)."
+msgstr ""
+"se\n"
+"B<rss>.\n"
+"(alias\n"
+"B<rss>, B<rsz>)."
+
+#. type: tbl table
+#: ../man/ps.1:1611
+#, no-wrap
+msgid "rsz"
+msgstr "rsz"
+
+#. type: tbl table
+#: ../man/ps.1:1611
+#, no-wrap
+msgid "RSZ"
+msgstr "RSZ"
+
+#. type: tbl table
+#: ../man/ps.1:1616
+#, no-wrap
+msgid ""
+"see\n"
+"B<rss>.\n"
+"(alias\n"
+"B<rss>, B<rssize>)."
+msgstr ""
+"se\n"
+"B<rss>.\n"
+"(alias\n"
+"B<rss>, B<rssize>)."
+
+#. type: tbl table
+#: ../man/ps.1:1618
+#, no-wrap
+msgid "rtprio"
+msgstr "rtprio"
+
+#. type: tbl table
+#: ../man/ps.1:1618
+#, no-wrap
+msgid "RTPRIO"
+msgstr "RTPRIO"
+
+#. type: tbl table
+#: ../man/ps.1:1620
+#, no-wrap
+msgid "realtime priority."
+msgstr "realtidsprioritet."
+
+#. type: tbl table
+#: ../man/ps.1:1622
+#, no-wrap
+msgid "ruid"
+msgstr "ruid"
+
+#. type: tbl table
+#: ../man/ps.1:1622
+#, no-wrap
+msgid "RUID"
+msgstr "VAID"
+
+#. type: tbl table
+#: ../man/ps.1:1624
+#, no-wrap
+msgid "real user ID."
+msgstr "verkligt användar-ID."
+
+#. type: tbl table
+#: ../man/ps.1:1629
+#, no-wrap
+msgid ""
+"real user ID. This will be the textual user ID, if it can be obtained and\n"
+"the field width permits, or a decimal representation otherwise."
+msgstr ""
+"verkligt användar-ID. Detta kommer vara det textuella användar-ID:t, om det kan\n"
+"hämtas och fältbredden tillåter, eller en decimal representation i annat fall."
+
+#. type: tbl table
+#: ../man/ps.1:1638
+#, no-wrap
+msgid ""
+"minimal state display (one character). See section\n"
+"B<PROCESS STATE CODES>\n"
+"for the different values. See also\n"
+"B<stat>\n"
+"if you want additional information displayed. (alias\n"
+"B<state>)."
+msgstr ""
+"minimal tillståndsvisning (en bokstav). Se avsnittet\n"
+"B<PROCESSTATUSKODER>\n"
+"för de olika värdena. Se även\n"
+"B<stat>\n"
+"om du vill ha ytterligare information visad. (alias\n"
+"B<state>)."
+
+#. type: tbl table
+#: ../man/ps.1:1640
+#, no-wrap
+msgid "sched"
+msgstr "sched"
+
+#. type: tbl table
+#: ../man/ps.1:1640
+#, no-wrap
+msgid "SCH"
+msgstr "SCH"
+
+#. type: tbl table
+#: ../man/ps.1:1644
+#, no-wrap
+msgid ""
+"scheduling policy of the process. The policies SCHED_OTHER (SCHED_NORMAL),\n"
+"SCHED_FIFO, SCHED_RR, SCHED_BATCH, SCHED_ISO, SCHED_IDLE and SCHED_DEADLINE are\n"
+"respectively displayed as 0, 1, 2, 3, 4, 5 and 6."
+msgstr ""
+"schemaläggninspolicy för processen. Policyerna SCHED_OTHER (SCHED_NORMAL),\n"
+"SCHED_FIFO, SCHED_RR, SCHED_BATCH, SCHED_ISO, SCHED_IDLE och SCHED_DEADLINE\n"
+"visas som 0, 1, 2, 3, 4, 5 respektive 6."
+
+#. type: tbl table
+#: ../man/ps.1:1646
+#, no-wrap
+msgid "seat"
+msgstr "seat"
+
+#. type: tbl table
+#: ../man/ps.1:1646
+#, no-wrap
+msgid "SEAT"
+msgstr "SEAT"
+
+#. type: tbl table
+#: ../man/ps.1:1650
+#, no-wrap
+msgid ""
+"displays the identifier associated with all hardware devices assigned\n"
+"to a specific workplace,\n"
+"if systemd support has been included."
+msgstr ""
+"visar identifieraren associerad med alla hårdvaruenheter tilldelade till\n"
+"en specifik arebetsplats,\n"
+"om stöd för systemd har inkluderats."
+
+#. type: tbl table
+#: ../man/ps.1:1652
+#, no-wrap
+msgid "sess"
+msgstr "sess"
+
+#. type: tbl table
+#: ../man/ps.1:1652
+#, no-wrap
+msgid "SESS"
+msgstr "SESS"
+
+#. type: tbl table
+#: ../man/ps.1:1655
+#, no-wrap
+msgid ""
+"session ID or, equivalently, the process ID of the session leader. (alias\n"
+"B<session>, B<sid>)."
+msgstr ""
+"sessions-ID eller, likvärdigt, process-ID för sessionsledaren. (alias\n"
+"B<session>, B<sid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1657
+#, no-wrap
+msgid "sgi_p"
+msgstr "sgi_p"
+
+#. type: tbl table
+#: ../man/ps.1:1660
+#, no-wrap
+msgid ""
+"processor that the process is currently executing on. Displays \"*\" if the\n"
+"process is not currently running or runnable."
+msgstr ""
+"processor som processen för närvarande kör pÃ¥. Visar â€*†om\n"
+"processen inte kör eller är körbar just nu."
+
+#. type: tbl table
+#: ../man/ps.1:1662
+#, no-wrap
+msgid "sgid"
+msgstr "sgid"
+
+#. type: tbl table
+#: ../man/ps.1:1662
+#, no-wrap
+msgid "SGID"
+msgstr "SGID"
+
+#. type: tbl table
+#: ../man/ps.1:1665
+#, no-wrap
+msgid ""
+"saved group ID. (alias\n"
+"B<svgid>)."
+msgstr ""
+"sparat grupp-ID. (alias\n"
+"B<svgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1667
+#, no-wrap
+msgid "sgroup"
+msgstr "sgroup"
+
+#. type: tbl table
+#: ../man/ps.1:1667
+#, no-wrap
+msgid "SGROUP"
+msgstr "SGROUP"
+
+#. type: tbl table
+#: ../man/ps.1:1670
+#, no-wrap
+msgid ""
+"saved group name. This will be the textual group ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise."
+msgstr ""
+"sparat gruppnamn. Detta kommer vara det textuella grupp-ID:t, om det kan\n"
+"hämtas och fältbredden tillåter, eller en decimal representation i annat fall."
+
+#. type: tbl table
+#: ../man/ps.1:1672
+#, no-wrap
+msgid "sid"
+msgstr "sid"
+
+#. type: tbl table
+#: ../man/ps.1:1672
+#, no-wrap
+msgid "SID"
+msgstr "SID"
+
+#. type: tbl table
+#: ../man/ps.1:1677
+#, no-wrap
+msgid ""
+"see\n"
+"B<sess>.\n"
+"(alias\n"
+"B<sess>, B<session>)."
+msgstr ""
+"se\n"
+"B<sess>.\n"
+"(alias\n"
+"B<sess>, B<session>)."
+
+#. type: tbl table
+#: ../man/ps.1:1679
+#, no-wrap
+msgid "sig"
+msgstr "sig"
+
+#. type: tbl table
+#: ../man/ps.1:1684
+#, no-wrap
+msgid ""
+"see\n"
+"B<pending>.\n"
+"(alias\n"
+"B<pending>, B<sig_pend>)."
+msgstr ""
+"se\n"
+"B<pending>.\n"
+"(alias\n"
+"B<pending>, B<sig_pend>)."
+
+#. type: tbl table
+#: ../man/ps.1:1686
+#, no-wrap
+msgid "sigcatch"
+msgstr "sigcatch"
+
+#. type: tbl table
+#: ../man/ps.1:1691
+#, no-wrap
+msgid ""
+"see\n"
+"B<caught>.\n"
+"(alias\n"
+"B<caught>, B<sig_catch>)."
+msgstr ""
+"se\n"
+"B<caught>.\n"
+"(alias\n"
+"B<caught>, B<sig_catch>)."
+
+#. type: tbl table
+#: ../man/ps.1:1693
+#, no-wrap
+msgid "sigignore"
+msgstr "sigignore"
+
+#. type: tbl table
+#: ../man/ps.1:1698
+#, no-wrap
+msgid ""
+"see\n"
+"B<ignored>.\n"
+"(alias\n"
+"B<ignored>, B<sig_ignore>)."
+msgstr ""
+"se\n"
+"B<ignored>.\n"
+"(alias\n"
+"B<ignored>, B<sig_ignore>)."
+
+#. type: tbl table
+#: ../man/ps.1:1700
+#, no-wrap
+msgid "sigmask"
+msgstr "sigmask"
+
+#. type: tbl table
+#: ../man/ps.1:1705
+#, no-wrap
+msgid ""
+"see\n"
+"B<blocked>.\n"
+"(alias\n"
+"B<blocked>, B<sig_block>)."
+msgstr ""
+"se\n"
+"B<blocked>.\n"
+"(alias\n"
+"B<blocked>, B<sig_block>)."
+
+#. type: tbl table
+#: ../man/ps.1:1707
+#, no-wrap
+msgid "SIZE"
+msgstr "SIZE"
+
+#. type: tbl table
+#: ../man/ps.1:1711
+#, no-wrap
+msgid ""
+"approximate amount of swap space that would be required if the process were\n"
+"to dirty all writable pages and then be swapped out. This number is very\n"
+"rough!"
+msgstr ""
+"ungefärlig mängd växlingsutrymme som skulle krävas om processen skulle smutsa\n"
+"ner alla skrivbara sidor och sedan växlas ut. Denna beräkning är väldigt grov!"
+
+#. type: tbl table
+#: ../man/ps.1:1713
+#, no-wrap
+msgid "slice"
+msgstr "slice"
+
+#. type: tbl table
+#: ../man/ps.1:1713
+#, no-wrap
+msgid "SLICE"
+msgstr "SLICE"
+
+#. type: tbl table
+#: ../man/ps.1:1716
+#, no-wrap
+msgid ""
+"displays the slice unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr ""
+"visar skivenheten vilken en process hör till,\n"
+"om stöd för systemd har inkluderats."
+
+#. type: tbl table
+#: ../man/ps.1:1718
+#, no-wrap
+msgid "spid"
+msgstr "spid"
+
+#. type: tbl table
+#: ../man/ps.1:1718
+#, no-wrap
+msgid "SPID"
+msgstr "SPID"
+
+#. type: tbl table
+#: ../man/ps.1:1723
+#, no-wrap
+msgid ""
+"see\n"
+"B<lwp>.\n"
+"(alias\n"
+"B<lwp>, B<tid>)."
+msgstr ""
+"se\n"
+"B<lwp>.\n"
+"(alias\n"
+"B<lwp>, B<tid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1725
+#, no-wrap
+msgid "stackp"
+msgstr "stackp"
+
+#. type: tbl table
+#: ../man/ps.1:1725
+#, no-wrap
+msgid "STACKP"
+msgstr "STACKP"
+
+#. type: tbl table
+#: ../man/ps.1:1727
+#, no-wrap
+msgid "address of the bottom (start) of stack for the process."
+msgstr "adressen till botten (början) av processens stack."
+
+#. type: tbl table
+#: ../man/ps.1:1729
+#, no-wrap
+msgid "start"
+msgstr "start"
+
+#. type: tbl table
+#: ../man/ps.1:1734
+#, no-wrap
+msgid ""
+"time the command started. If the process was started less than 24 hours ago,\n"
+"the output format is \"HH:MM:SS\", else it is \"\\ \\ Mmm\\ dd\" (where Mmm is a\n"
+"three-letter month name). See also\n"
+"B<bsdstart>, B<start>, B<start_time>, and B<stime>."
+msgstr ""
+"tiden kommandot startade. Om processen startades för mindre än 24 timmar sedan\n"
+"är utdataformatet â€HH:MM:SSâ€, annars är det â€\\ \\ Mmm\\ dd†(där Mmm är ett\n"
+"trebokstavs månadsnamn). Se även\n"
+"B<bsdstart>, B<start>, B<start_time> och B<stime>."
+
+#. type: tbl table
+#: ../man/ps.1:1743
+#, no-wrap
+msgid ""
+"starting time or date of the process. Only the year will be displayed if the\n"
+"process was not started the same year\n"
+"B<ps>\n"
+"was invoked, or \"MmmDD\" if it was not started the same day, or \"HH:MM\"\n"
+"otherwise. See also\n"
+"B<bsdstart>, B<start>, B<lstart>, and B<stime>."
+msgstr ""
+"processens starttid eller -datum. Endast året kommer visas om processen\n"
+"inte startades samma år\n"
+"B<ps>\n"
+"kördes, eller â€MmmDD†om den inte startades samma dag, eller â€HH:MMâ€\n"
+"annars. Se även\n"
+"B<bsdstart>, B<start>, B<lstart> och B<stime>."
+
+#. type: tbl table
+#: ../man/ps.1:1745
+#, no-wrap
+msgid "stat"
+msgstr "stat"
+
+#. type: tbl table
+#: ../man/ps.1:1745
+#, no-wrap
+msgid "STAT"
+msgstr "STAT"
+
+#. type: tbl table
+#: ../man/ps.1:1751
+#, no-wrap
+msgid ""
+"multi-character process state. See section\n"
+"B<PROCESS STATE CODES>\n"
+"for the different values meaning. See also\n"
+"B<s>\\ andB<\\ state>\n"
+"if you just want the first character displayed."
+msgstr ""
+"flerteckens processtillstånd. Se avsnittet\n"
+"B<PROCESSTATUSKODER>\n"
+"för de olika värdenas betydelse. Se även\n"
+"B<s>\\ och B<\\ state>\n"
+"om du bara vill visa den första bokstaven."
+
+#. type: tbl table
+#: ../man/ps.1:1753
+#, no-wrap
+msgid "state"
+msgstr "state"
+
+#. type: tbl table
+#: ../man/ps.1:1756
+#, no-wrap
+msgid ""
+"see\n"
+"B<s>.\\& (aliasB<\\ s>)."
+msgstr ""
+"se\n"
+"B<s>.\\& (aliasB<\\ s>)."
+
+#. type: tbl table
+#: ../man/ps.1:1758
+#, no-wrap
+msgid "stime"
+msgstr "stime"
+
+#. type: tbl table
+#: ../man/ps.1:1758
+#, no-wrap
+msgid "STIME"
+msgstr "STID"
+
+#. type: tbl table
+#: ../man/ps.1:1760
+#, no-wrap
+msgid "see B<start_time>. (alias B<start_time>)."
+msgstr "se B<start_time>. (alias B<start_time>)."
+
+#. type: tbl table
+#: ../man/ps.1:1762
+#, no-wrap
+msgid "suid"
+msgstr "suid"
+
+#. type: tbl table
+#: ../man/ps.1:1762
+#, no-wrap
+msgid "SUID"
+msgstr "SAID"
+
+#. type: tbl table
+#: ../man/ps.1:1765
+#, no-wrap
+msgid ""
+"saved user ID. (alias\n"
+"B<svuid>)."
+msgstr ""
+"sparat användar-ID. (alias\n"
+"B<svuid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1767
+#, no-wrap
+msgid "supgid"
+msgstr "supgid"
+
+#. type: tbl table
+#: ../man/ps.1:1767
+#, no-wrap
+msgid "SUPGID"
+msgstr "SUPGID"
+
+#. type: tbl table
+#: ../man/ps.1:1770
+#, no-wrap
+msgid ""
+"group ids of supplementary groups, if any. See\n"
+"B<getgroups>(2)."
+msgstr ""
+"grupp-id:n av kompletterande grupper, om det finns några. Se\n"
+"B<getgroups>(2)."
+
+#. type: tbl table
+#: ../man/ps.1:1772
+#, no-wrap
+msgid "supgrp"
+msgstr "supgrp"
+
+#. type: tbl table
+#: ../man/ps.1:1772
+#, no-wrap
+msgid "SUPGRP"
+msgstr "SUPGRP"
+
+#. type: tbl table
+#: ../man/ps.1:1775
+#, no-wrap
+msgid ""
+"group names of supplementary groups, if any. See\n"
+"B<getgroups>(2)."
+msgstr ""
+"gruppnamn på kompletterande grupper, om det finns några. Se\n"
+"B<getgroups>(2)."
+
+#. type: tbl table
+#: ../man/ps.1:1777
+#, no-wrap
+msgid "suser"
+msgstr "suser"
+
+#. type: tbl table
+#: ../man/ps.1:1777
+#, no-wrap
+msgid "SUSER"
+msgstr "SANV"
+
+#. type: tbl table
+#: ../man/ps.1:1781
+#, no-wrap
+msgid ""
+"saved user name. This will be the textual user ID, if it can be obtained and\n"
+"the field width permits, or a decimal representation otherwise. (alias\n"
+"B<svuser>)."
+msgstr ""
+"sparat användarnamn. Detta kommer vara det textuella användar-ID:t, om det kan\n"
+"hämtas och fältbredden tillåter, eller en decimal representation i annat fall."
+
+#. type: tbl table
+#: ../man/ps.1:1783
+#, no-wrap
+msgid "svgid"
+msgstr "svgid"
+
+#. type: tbl table
+#: ../man/ps.1:1783
+#, no-wrap
+msgid "SVGID"
+msgstr "SVGID"
+
+#. type: tbl table
+#: ../man/ps.1:1788
+#, no-wrap
+msgid ""
+"see\n"
+"B<sgid>.\n"
+"(alias\n"
+"B<sgid>)."
+msgstr ""
+"se\n"
+"B<sgid>.\n"
+"(alias\n"
+"B<sgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1790
+#, no-wrap
+msgid "svuid"
+msgstr "svuid"
+
+#. type: tbl table
+#: ../man/ps.1:1790
+#, no-wrap
+msgid "SVUID"
+msgstr "SVUID"
+
+#. type: tbl table
+#: ../man/ps.1:1795
+#, no-wrap
+msgid ""
+"see\n"
+"B<suid>.\n"
+"(alias\n"
+"B<suid>)."
+msgstr ""
+"se\n"
+"B<suid>.\n"
+"(alias\n"
+"B<suid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1797
+#, no-wrap
+msgid "sz"
+msgstr "sz"
+
+#. type: tbl table
+#: ../man/ps.1:1797
+#, no-wrap
+msgid "SZ"
+msgstr "SZ"
+
+#. type: tbl table
+#: ../man/ps.1:1802
+#, no-wrap
+msgid ""
+"size in physical pages of the core image of the process. This includes text,\n"
+"data, and stack space. Device mappings are currently excluded; this is\n"
+"subject to change. See\n"
+"B<vsz>\\ andB<\\ rss>."
+msgstr ""
+"storlek i fysiska sidor på processens kärnavbild. Detta inkluderar text-,\n"
+"data- och stackutrymme. Enhetsinmappningar exkluderas för närvarande, detta\n"
+"kan komma att ändras. Se\n"
+"B<vsz>\\ ochB<\\ rss>."
+
+#. type: tbl table
+#: ../man/ps.1:1804
+#, no-wrap
+msgid "tgid"
+msgstr "tgid"
+
+#. type: tbl table
+#: ../man/ps.1:1804
+#, no-wrap
+msgid "TGID"
+msgstr "TGID"
+
+#. type: tbl table
+#: ../man/ps.1:1808
+#, no-wrap
+msgid ""
+"a number representing the thread group to which a task belongs (alias\n"
+"B<pid>).\n"
+"It is the process ID of the thread group leader."
+msgstr ""
+"ett tal som representerar trådgruppen som uppgiften tillhör (alias\n"
+"B<pid>).\n"
+"Det är process-ID:t på trådgruppledaren."
+
+#. type: tbl table
+#: ../man/ps.1:1810
+#, no-wrap
+msgid "thcount"
+msgstr "thcount"
+
+#. type: tbl table
+#: ../man/ps.1:1810
+#, no-wrap
+msgid "THCNT"
+msgstr "THCNT"
+
+#. type: tbl table
+#: ../man/ps.1:1816
+#, no-wrap
+msgid ""
+"see\n"
+"B<nlwp>.\n"
+"(alias\n"
+"B<nlwp>).\n"
+"number of kernel threads owned by the process."
+msgstr ""
+"se\n"
+"B<nlwp>.\n"
+"(alias\n"
+"B<nlwp>).\n"
+"antal kärntrådar som processen äger."
+
+#. type: tbl table
+#: ../man/ps.1:1818
+#, no-wrap
+msgid "tid"
+msgstr "tid"
+
+#. type: tbl table
+#: ../man/ps.1:1818
+#, no-wrap
+msgid "TID"
+msgstr "TID"
+
+#. type: tbl table
+#: ../man/ps.1:1825
+#, no-wrap
+msgid ""
+"the unique number representing a dispatchable entity (alias\n"
+"B<spid>, B<tid>).\n"
+"This value may also appear as: a process ID (pid); a process group ID (pgrp);\n"
+"a session ID for the session leader (sid); a thread group ID for the thread\n"
+"group leader (tgid); and a tty process group ID for the process group leader\n"
+"(tpgid)."
+msgstr ""
+"Det unika numret som representerar en körbar enhet (alias\n"
+"B<lwp>, B<spid>).\n"
+"Detta värde kan även förekomma som: ett process-ID (pid); ett processgrupp-ID (pgrp);\n"
+"ett sessions-ID för en sessionsledare (sid); ett trådgrupps-ID för\n"
+"trådgrubbsledaren (tgid); och ett tty-processgrupps-ID för processgruppsledaren\n"
+"(tpgid)."
+
+#. type: tbl table
+#: ../man/ps.1:1830
+#, no-wrap
+msgid ""
+"cumulative CPU\\ time, \"[DD-]HH:MM:SS\" format. (alias\n"
+"B<cputime>)."
+msgstr ""
+"ackumulerad CPU-tid, formatet â€[DD-]HH:MM:SSâ€. (alias\n"
+"B<cputime>)."
+
+#. type: tbl table
+#: ../man/ps.1:1832
+#, no-wrap
+msgid "timens"
+msgstr "timens"
+
+#. type: tbl table
+#: ../man/ps.1:1832
+#, no-wrap
+msgid "TIMENS"
+msgstr "TIDNR"
+
+#. type: tbl table
+#: ../man/ps.1:1838
+#, no-wrap
+msgid "times"
+msgstr "times"
+
+#. type: tbl table
+#: ../man/ps.1:1841
+#, no-wrap
+msgid ""
+"cumulative CPU\\ time in seconds (alias\n"
+"B<cputimes>)."
+msgstr ""
+"ackumulerad CPU-tid i sekunder (alias\n"
+"B<cputimes>)."
+
+#. type: tbl table
+#: ../man/ps.1:1843
+#, no-wrap
+msgid "tname"
+msgstr "tname"
+
+#. type: tbl table
+#: ../man/ps.1:1846
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tt>, B<tty>)."
+msgstr ""
+"styr-tty (terminal). (alias\n"
+"B<tt>, B<tty>)."
+
+#. type: tbl table
+#: ../man/ps.1:1848
+#, no-wrap
+msgid "TPGID"
+msgstr "TPGID"
+
+#. type: tbl table
+#: ../man/ps.1:1851
+#, no-wrap
+msgid ""
+"ID of the foreground process group on the tty (terminal) that the process is\n"
+"connected to, or -1 if the process is not connected to a tty."
+msgstr ""
+"Förgrundsprocessgruppens ID på tty:n (terminalen) som processen är kopplad\n"
+"till, eller -1 om processen inte är kopplad till någon tty."
+
+#. type: tbl table
+#: ../man/ps.1:1853
+#, no-wrap
+msgid "trs"
+msgstr "trs"
+
+#. type: tbl table
+#: ../man/ps.1:1853
+#, no-wrap
+msgid "TRS"
+msgstr "TRS"
+
+#. type: tbl table
+#: ../man/ps.1:1855
+#, no-wrap
+msgid "text resident set size, the amount of physical memory devoted to executable code."
+msgstr "den residenta text-mängdens storlek, mängden fysiskt minne tilldelat till körbar kod."
+
+#. type: tbl table
+#: ../man/ps.1:1857
+#, no-wrap
+msgid "tt"
+msgstr "tt"
+
+#. type: tbl table
+#: ../man/ps.1:1857 ../man/ps.1:1862
+#, no-wrap
+msgid "TT"
+msgstr "TT"
+
+#. type: tbl table
+#: ../man/ps.1:1860
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tname>, B<tty>)."
+msgstr ""
+"styr-tty (terminal). (alias\n"
+"B<tname>, B<tty>)."
+
+#. type: tbl table
+#: ../man/ps.1:1865
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tname>, B<tt>)."
+msgstr ""
+"styr-tty (terminal). (alias\n"
+"B<tname>, B<tt>)."
+
+#. type: tbl table
+#: ../man/ps.1:1867
+#, no-wrap
+msgid "ucmd"
+msgstr "ucmd"
+
+#. type: tbl table
+#: ../man/ps.1:1872
+#, no-wrap
+msgid ""
+"see\n"
+"B<comm>.\n"
+"(alias\n"
+"B<comm>, B<ucomm>)."
+msgstr ""
+"se\n"
+"B<comm>.\n"
+"(alias\n"
+"B<comm>, B<ucomm>)."
+
+#. type: tbl table
+#: ../man/ps.1:1874
+#, no-wrap
+msgid "ucomm"
+msgstr "ucomm"
+
+#. type: tbl table
+#: ../man/ps.1:1879
+#, no-wrap
+msgid ""
+"see\n"
+"B<comm>.\n"
+"(alias\n"
+"B<comm>, B<ucmd>)."
+msgstr ""
+"se\n"
+"B<comm>.\n"
+"(alias\n"
+"B<comm>, B<ucmd>)."
+
+#. type: tbl table
+#: ../man/ps.1:1881
+#, no-wrap
+msgid "UID"
+msgstr "AID"
+
+#. type: tbl table
+#: ../man/ps.1:1886
+#, no-wrap
+msgid ""
+"see\n"
+"B<euid>.\n"
+"(alias\n"
+"B<euid>)."
+msgstr ""
+"se\n"
+"B<euid>.\n"
+"(alias\n"
+"B<euid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1888
+#, no-wrap
+msgid "uname"
+msgstr "uname"
+
+#. type: tbl table
+#: ../man/ps.1:1893
+#, no-wrap
+msgid ""
+"see\n"
+"B<euser>.\n"
+"(alias\n"
+"B<euser>, B<user>)."
+msgstr ""
+"se\n"
+"B<euser>.\n"
+"(alias\n"
+"B<euser>, B<user>)."
+
+#. type: tbl table
+#: ../man/ps.1:1895
+#, no-wrap
+msgid "unit"
+msgstr "unit"
+
+#. type: tbl table
+#: ../man/ps.1:1895
+#, no-wrap
+msgid "UNIT"
+msgstr "UNIT"
+
+#. type: tbl table
+#: ../man/ps.1:1898
+#, no-wrap
+msgid ""
+"displays unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr ""
+"visar enheten vilken en process hör till,\n"
+"om stöd för systemd har inkluderats."
+
+#. type: tbl table
+#: ../man/ps.1:1905
+#, no-wrap
+msgid ""
+"see\n"
+"B<euser>.\n"
+"(alias\n"
+"B<euser>, B<uname>)."
+msgstr ""
+"se\n"
+"B<euser>.\n"
+"(alias\n"
+"B<euser>, B<uname>)."
+
+#. type: tbl table
+#: ../man/ps.1:1907
+#, no-wrap
+msgid "userns"
+msgstr "userns"
+
+#. type: tbl table
+#: ../man/ps.1:1907
+#, no-wrap
+msgid "USERNS"
+msgstr "USERNS"
+
+#. type: tbl table
+#: ../man/ps.1:1913
+#, no-wrap
+msgid "uss"
+msgstr "uss"
+
+#. type: tbl table
+#: ../man/ps.1:1913
+#, no-wrap
+msgid "USS"
+msgstr "URSS"
+
+#. type: tbl table
+#: ../man/ps.1:1916
+#, no-wrap
+msgid ""
+"Unique set size, the non-swapped physical memory, which\n"
+"is not shared with an another task."
+msgstr ""
+"Unika mängdens storlek, det inte utväxlade fysiska minnet, vilket\n"
+"inte delas med en annan uppgift."
+
+#. type: tbl table
+#: ../man/ps.1:1918
+#, no-wrap
+msgid "utsns"
+msgstr "utsns"
+
+#. type: tbl table
+#: ../man/ps.1:1918
+#, no-wrap
+msgid "UTSNS"
+msgstr "UTSNS"
+
+#. type: tbl table
+#: ../man/ps.1:1924
+#, no-wrap
+msgid "uunit"
+msgstr "uunit"
+
+#. type: tbl table
+#: ../man/ps.1:1924
+#, no-wrap
+msgid "UUNIT"
+msgstr "UUNIT"
+
+#. type: tbl table
+#: ../man/ps.1:1927
+#, no-wrap
+msgid ""
+"displays user unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr ""
+"visar användarenheten vilken en process hör till,\n"
+"om stöd för systemd har inkluderats."
+
+#. type: tbl table
+#: ../man/ps.1:1934
+#, no-wrap
+msgid ""
+"see\n"
+"B<vsz>.\n"
+"(alias\n"
+"B<vsz>)."
+msgstr ""
+"se\n"
+"B<vsz>.\n"
+"(alias\n"
+"B<vsz>)."
+
+#. type: tbl table
+#: ../man/ps.1:1940
+#, no-wrap
+msgid ""
+"virtual memory size of the process in KiB (1024-byte units). Device\n"
+"mappings are currently excluded; this is subject to change. (alias\n"
+"B<vsize>)."
+msgstr ""
+"storleken på processens virtuella minne i KiB (1024-bytenheter).\n"
+"Enhetsinmappningar exkluderas för närvarande, detta kan komma att\n"
+"ändras. (alias\n"
+"B<vsize>)."
+
+#. type: tbl table
+#: ../man/ps.1:1942
+#, no-wrap
+msgid "wbytes"
+msgstr "wbytes"
+
+#. type: tbl table
+#: ../man/ps.1:1942
+#, no-wrap
+msgid "WBYTES"
+msgstr "WBYTES"
+
+#. type: tbl table
+#: ../man/ps.1:1944
+#, no-wrap
+msgid "Number of bytes which this process caused to be sent to the storage layer."
+msgstr "Antal byte vilka denna process fick att skickas till lagringslagret."
+
+#. type: tbl table
+#: ../man/ps.1:1946
+#, no-wrap
+msgid "wcbytes"
+msgstr "wcbytes"
+
+#. type: tbl table
+#: ../man/ps.1:1946
+#, no-wrap
+msgid "WCBYTES"
+msgstr "WCBYTES"
+
+#. type: tbl table
+#: ../man/ps.1:1948
+#, no-wrap
+msgid "Number of cancelled write bytes."
+msgstr "Antal inställda skrivbyte."
+
+#. type: tbl table
+#: ../man/ps.1:1950
+#, no-wrap
+msgid "wchan"
+msgstr "wchan"
+
+#. type: tbl table
+#: ../man/ps.1:1952
+#, no-wrap
+msgid "name of the kernel function in which the process is sleeping."
+msgstr "namnet på kärnfunktionen i vilken processen sover."
+
+#. type: tbl table
+#: ../man/ps.1:1954
+#, no-wrap
+msgid "wchars"
+msgstr "wchars"
+
+#. type: tbl table
+#: ../man/ps.1:1954
+#, no-wrap
+msgid "WCHARS"
+msgstr "WCHARS"
+
+#. type: tbl table
+#: ../man/ps.1:1956
+#, no-wrap
+msgid "Number of bytes which this task has caused, or shall cause to be written to disk."
+msgstr "Antal byt vilka denna uppgift har fått, eller kommer att få skrivas till disk."
+
+#. type: tbl table
+#: ../man/ps.1:1958
+#, no-wrap
+msgid "wops"
+msgstr "wops"
+
+#. type: tbl table
+#: ../man/ps.1:1958
+#, no-wrap
+msgid "WOPS"
+msgstr "WOPS"
+
+#. type: tbl table
+#: ../man/ps.1:1961
+#, no-wrap
+msgid ""
+"Number of write I/O operations—that is, system calls such as\n"
+"B<write>(2) and B<pwrite>(2)."
+msgstr ""
+"Antal skrivnings-I/O-åtgärder — det vill säga, systemanrop såsom\n"
+"B<write>(2) och B<pwrite>(2)."
+
+#. type: SH
+#: ../man/ps.1:1964
+#, no-wrap
+msgid "ENVIRONMENT VARIABLES"
+msgstr "MILJÖVARIABLER"
+
+#. type: Plain text
+#: ../man/ps.1:1967
+msgid "The following environment variables could affect B<ps>:"
+msgstr "Följande miljövariabler kan påverka B<ps>:"
+
+#. type: TP
+#: ../man/ps.1:1967
+#, no-wrap
+msgid "B<COLUMNS>"
+msgstr "B<COLUMNS>"
+
+#. type: Plain text
+#: ../man/ps.1:1970
+msgid "Override default display width."
+msgstr "Åsidosätt standardvisningsbredden."
+
+#. type: TP
+#: ../man/ps.1:1970
+#, no-wrap
+msgid "B<LINES>"
+msgstr "B<LINES>"
+
+#. type: Plain text
+#: ../man/ps.1:1973
+msgid "Override default display height."
+msgstr "Åsidosätt standardvisningshöjden."
+
+#. type: TP
+#: ../man/ps.1:1973
+#, no-wrap
+msgid "B<PS_PERSONALITY>"
+msgstr "B<PS_PERSONALITY>"
+
+#. type: Plain text
+#: ../man/ps.1:1978 ../man/ps.1:1983
+msgid "Set to one of posix, old, linux, bsd, sun, digital...\\& (see section B<PERSONALITY> below)."
+msgstr "Sätt till en av posix, old, linux, bsd, sun, digital …\\& (se avsnittet B<PERSONLIGHET> nedan)."
+
+#. type: TP
+#: ../man/ps.1:1978
+#, no-wrap
+msgid "B<CMD_ENV>"
+msgstr "B<CMD_ENV>"
+
+#. type: TP
+#: ../man/ps.1:1983
+#, no-wrap
+msgid "B<I_WANT_A_BROKEN_PS>"
+msgstr "B<I_WANT_A_BROKEN_PS>"
+
+#. type: Plain text
+#: ../man/ps.1:1986
+msgid "Force obsolete command line interpretation."
+msgstr "Framtvinga fåråldrad tolkning av kommandoraden."
+
+#. type: TP
+#: ../man/ps.1:1986
+#, no-wrap
+msgid "B<LC_TIME>"
+msgstr "B<LC_TIME>"
+
+#. type: Plain text
+#: ../man/ps.1:1989
+msgid "Date format."
+msgstr "Datumformat."
+
+#. type: TP
+#: ../man/ps.1:1989
+#, no-wrap
+msgid "B<LIBPROC_HIDE_KERNEL>"
+msgstr "B<LIBPROC_HIDE_KERNEL>"
+
+#. type: Plain text
+#: ../man/ps.1:1996
+msgid "Set this to any value to hide kernel threads normally displayed with the B<-e> option. This is equivalent to selecting B<--ppid 2 -p 2 --deselect> instead. Also works in BSD mode."
+msgstr "Sätt detta till vilket värde so helst för att dölja kärntrådar som normalt visas med flaggan B<-e>. Detta är likvärdigt med att välja B<--ppid 2 -p 2 --deselect> istället. Fungerar även i BSD-läge."
+
+#. type: TP
+#: ../man/ps.1:1996
+#, no-wrap
+msgid "B<PS_COLORS>"
+msgstr "B<PS_COLORS>"
+
+#. type: Plain text
+#: ../man/ps.1:1999
+msgid "Not currently supported."
+msgstr "Stödjs inte för närvarande."
+
+#. type: TP
+#: ../man/ps.1:1999
+#, no-wrap
+msgid "B<PS_FORMAT>"
+msgstr "B<PS_FORMAT>"
+
+#. type: Plain text
+#: ../man/ps.1:2010
+msgid "Default output format override. You may set this to a format string of the type used for the B<-o> option. The B<DefSysV> and B<DefBSD> values are particularly useful."
+msgstr "Åsidosättande av standardutmatningsformat. Man kan sätta detta till en formatsträng av typen som används till flaggan B<-o>. Värdena B<DevSysV> och B<DefBSD> är särskilt användbara."
+
+#. type: TP
+#: ../man/ps.1:2010
+#, no-wrap
+msgid "B<POSIXLY_CORRECT>"
+msgstr "B<POSIXLY_CORRECT>"
+
+#. type: Plain text
+#: ../man/ps.1:2013 ../man/ps.1:2020
+msgid "Don't find excuses to ignore bad \"features\"."
+msgstr "Sök inte ursäkter för att ignorera dÃ¥liga â€funktionerâ€."
+
+#. type: TP
+#: ../man/ps.1:2013
+#, no-wrap
+msgid "B<POSIX2>"
+msgstr "B<POSIX2>"
+
+#. type: Plain text
+#: ../man/ps.1:2017
+msgid "When set to \"on\", acts as B<POSIXLY_CORRECT>."
+msgstr "När satt till â€onâ€, fungerar som B<POSIXLY_CORRECT>."
+
+#. type: TP
+#: ../man/ps.1:2017
+#, no-wrap
+msgid "B<UNIX95>"
+msgstr "B<UNIX95>"
+
+#. type: TP
+#: ../man/ps.1:2020
+#, no-wrap
+msgid "B<_XPG>"
+msgstr "B<_XPG>"
+
+#. type: Plain text
+#: ../man/ps.1:2026
+msgid "Cancel B<CMD_ENV>=I<irix> non-standard behavior."
+msgstr "Annulera icke-standardbettendet hos B<CMD_ENV>=I<irix>."
+
+#. type: Plain text
+#: ../man/ps.1:2034
+msgid "In general, it is a bad idea to set these variables. The one exception is B<CMD_ENV> or B<PS_PERSONALITY>, which could be set to Linux for normal systems. Without that setting, B<ps> follows the useless and bad parts of the Unix98 standard."
+msgstr "I allmänhet är det en dålig idé att sätta dessa variabler. Enda undantaget är B<CMD_ENV> eller B<PS_PERSONALITY>, vilket kan sättas till Linux för normala system. Utan den inställningen följer B<ps> de oanvändbara och dåliga delarna av standarden Unix98."
+
+#. type: SH
+#: ../man/ps.1:2034
+#, no-wrap
+msgid "PERSONALITY"
+msgstr "PERSONLIGHET"
+
+#. type: tbl table
+#: ../man/ps.1:2037
+#, no-wrap
+msgid "390"
+msgstr "390"
+
+#. type: tbl table
+#: ../man/ps.1:2037
+#, no-wrap
+msgid "like the OS/390 OpenEdition B<ps>"
+msgstr "som B<ps> på OS/390 Open Edition"
+
+#. type: tbl table
+#: ../man/ps.1:2038
+#, no-wrap
+msgid "aix"
+msgstr "aix"
+
+#. type: tbl table
+#: ../man/ps.1:2038
+#, no-wrap
+msgid "like AIX B<ps>"
+msgstr "som B<ps> på AIX"
+
+#. type: tbl table
+#: ../man/ps.1:2039
+#, no-wrap
+msgid "bsd"
+msgstr "bsd"
+
+#. type: tbl table
+#: ../man/ps.1:2039
+#, no-wrap
+msgid "like FreeBSD B<ps> (totally non-standard)"
+msgstr "som B<ps> på FreeBSD (helt ostandardiserat)"
+
+#. type: tbl table
+#: ../man/ps.1:2040
+#, no-wrap
+msgid "compaq"
+msgstr "compaq"
+
+#. type: tbl table
+#: ../man/ps.1:2040
+#, no-wrap
+msgid "like Digital Unix B<ps>"
+msgstr "som B<ps> på Digital Unix"
+
+#. type: tbl table
+#: ../man/ps.1:2041
+#, no-wrap
+msgid "debian"
+msgstr "debian"
+
+#. type: tbl table
+#: ../man/ps.1:2041 ../man/ps.1:2043
+#, no-wrap
+msgid "like the old Debian B<ps>"
+msgstr "som den gamla B<ps> på Debian"
+
+#. type: tbl table
+#: ../man/ps.1:2042
+#, no-wrap
+msgid "digital"
+msgstr "digital"
+
+#. type: tbl table
+#: ../man/ps.1:2042
+#, no-wrap
+msgid "like Tru64 (was Digital\\ Unix, was OSF/1) B<ps>"
+msgstr "som B<ps> på Tru64 (före detta Digital Unix, före detta OSF/1)"
+
+#. type: tbl table
+#: ../man/ps.1:2043
+#, no-wrap
+msgid "gnu"
+msgstr "gnu"
+
+#. type: tbl table
+#: ../man/ps.1:2044
+#, no-wrap
+msgid "hp"
+msgstr "hp"
+
+#. type: tbl table
+#: ../man/ps.1:2044 ../man/ps.1:2045
+#, no-wrap
+msgid "like HP-UX B<ps>"
+msgstr "som B<ps> på HP-UX"
+
+#. type: tbl table
+#: ../man/ps.1:2045
+#, no-wrap
+msgid "hpux"
+msgstr "hpux"
+
+#. type: tbl table
+#: ../man/ps.1:2046
+#, no-wrap
+msgid "irix"
+msgstr "irix"
+
+#. type: tbl table
+#: ../man/ps.1:2046 ../man/ps.1:2053
+#, no-wrap
+msgid "like Irix B<ps>"
+msgstr "som B<ps> på Irix"
+
+#. type: tbl table
+#: ../man/ps.1:2047
+#, no-wrap
+msgid "linux"
+msgstr "linux"
+
+#. type: tbl table
+#: ../man/ps.1:2047
+#, no-wrap
+msgid "***** B<recommended> *****"
+msgstr "***** B<rekommenderas> *****"
+
+#. type: tbl table
+#: ../man/ps.1:2048
+#, no-wrap
+msgid "old"
+msgstr "old"
+
+#. type: tbl table
+#: ../man/ps.1:2048
+#, no-wrap
+msgid "like the original Linux B<ps> (totally non-standard)"
+msgstr "som den ursprungliga B<ps> på Linux (helt ostandardiserat)"
+
+#. type: tbl table
+#: ../man/ps.1:2049
+#, no-wrap
+msgid "os390"
+msgstr "os390"
+
+#. type: tbl table
+#: ../man/ps.1:2049 ../man/ps.1:2051
+#, no-wrap
+msgid "like OS/390 Open Edition B<ps>"
+msgstr "som B<ps> på OS/390 Open Edition"
+
+#. type: tbl table
+#: ../man/ps.1:2050
+#, no-wrap
+msgid "posix"
+msgstr "posix"
+
+#. type: tbl table
+#: ../man/ps.1:2050 ../man/ps.1:2056 ../man/ps.1:2057 ../man/ps.1:2059
+#: ../man/ps.1:2060 ../man/ps.1:2061
+#, no-wrap
+msgid "standard"
+msgstr "standard"
+
+#. type: tbl table
+#: ../man/ps.1:2051
+#, no-wrap
+msgid "s390"
+msgstr "s390"
+
+#. type: tbl table
+#: ../man/ps.1:2052
+#, no-wrap
+msgid "sco"
+msgstr "sco"
+
+#. type: tbl table
+#: ../man/ps.1:2052
+#, no-wrap
+msgid "like SCO B<ps>"
+msgstr "som B<ps> på SCO"
+
+#. type: tbl table
+#: ../man/ps.1:2053
+#, no-wrap
+msgid "sgi"
+msgstr "sgi"
+
+#. type: tbl table
+#: ../man/ps.1:2054
+#, no-wrap
+msgid "solaris2"
+msgstr "solaris2"
+
+#. type: tbl table
+#: ../man/ps.1:2054
+#, no-wrap
+msgid "like Solaris 2+ (SunOS 5) B<ps>"
+msgstr "som B<ps> på Solaris 2+ (SunOS 5)"
+
+#. type: tbl table
+#: ../man/ps.1:2055
+#, no-wrap
+msgid "sunos4"
+msgstr "sunos4"
+
+#. type: tbl table
+#: ../man/ps.1:2055
+#, no-wrap
+msgid "like SunOS 4 (Solaris 1) B<ps> (totally non-standard)"
+msgstr "som B<ps> på SunOS 4 (Solaris 1) (helt ostandardiserat)"
+
+#. type: tbl table
+#: ../man/ps.1:2056
+#, no-wrap
+msgid "svr4"
+msgstr "svr4"
+
+#. type: tbl table
+#: ../man/ps.1:2057
+#, no-wrap
+msgid "sysv"
+msgstr "sysv"
+
+#. type: tbl table
+#: ../man/ps.1:2058
+#, no-wrap
+msgid "tru64"
+msgstr "tru64"
+
+#. type: tbl table
+#: ../man/ps.1:2058
+#, no-wrap
+msgid "like Tru64 (was Digital Unix, was OSF/1) B<ps>"
+msgstr "som B<ps> på Tru64 (före detta Digital Unix, före detta OSF/1)"
+
+#. type: tbl table
+#: ../man/ps.1:2059
+#, no-wrap
+msgid "unix"
+msgstr "unix"
+
+#. type: tbl table
+#: ../man/ps.1:2060
+#, no-wrap
+msgid "unix95"
+msgstr "unix95"
+
+#. type: tbl table
+#: ../man/ps.1:2061
+#, no-wrap
+msgid "unix98"
+msgstr "unix98"
+
+#. type: Plain text
+#: ../man/ps.1:2069
+msgid "The fields B<bsdstart> and B<start> will only show the abbreviated month name in English. The fields B<lstart> and B<stime> will show the abbreviated month name in the configured locale but may exceed the column width due to the different lengths for abbreviated month and day names across languages."
+msgstr "Fälten B<bsdstart> och B<start> kommer endast visa det förkortade månadsnamnet på engelska. Fältet B<lstart> och B<stime> kommer visa det förkortade månadsnamnet i den konfigurerade lokalen men kan överskrida kolumnbredden på grund av olika längder för förkortade månads- och dagnamn mellan språk."
+
+#. type: Plain text
+#: ../man/ps.1:2076
+msgid "B<pgrep>(1), B<pstree>(1), B<top>(1), B<strftime>(3), B<proc>(5)."
+msgstr "B<pgrep>(1), B<pstree>(1), B<top>(1), B<strftime>(3), B<proc>(5)."
+
+#. type: Plain text
+#: ../man/ps.1:2080
+msgid "This B<ps> conforms to:"
+msgstr "Denna B<ps> följer:"
+
+#. type: Plain text
+#: ../man/ps.1:2084
+msgid "Version 2 of the Single Unix Specification"
+msgstr "Version 2 av Single Unix Specification"
+
+#. type: Plain text
+#: ../man/ps.1:2086
+msgid "The Open Group Technical Standard Base Specifications, Issue\\ 6"
+msgstr "Technical Standard Base Specifications, utgåva 6 från Open Group"
+
+#. type: Plain text
+#: ../man/ps.1:2088
+msgid "IEEE Std 1003.1, 2004\\ Edition"
+msgstr "IEEE Std 1003.1, utgåva 2004"
+
+#. type: Plain text
+#: ../man/ps.1:2090
+msgid "X/Open System Interfaces Extension [UP\\ XSI]"
+msgstr "X/Open System Interfaces Extension [UP\\ XSI]"
+
+#. type: IP
+#: ../man/ps.1:2090
+#, no-wrap
+msgid "5"
+msgstr "5"
+
+#. type: Plain text
+#: ../man/ps.1:2092
+msgid "ISO/IEC 9945:2003"
+msgstr "ISO/IEC 9945:2003"
+
+#. type: Plain text
+#: ../man/ps.1:2120
+msgid "B<ps> was originally written by E<.MT lankeste@\\:fwi.\\:uva.\\:nl> Branko Lankester E<.ME .> E<.MT johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.ME> re-wrote it significantly to use the proc filesystem, changing a few things in the process. E<.MT mjshield@\\:nyx.\\:cs.\\:du.\\:edu> Michael Shields E<.ME> added the pid-list feature. E<.MT cblake@\\:bbn.\\:com> Charles Blake E<.ME> added multi-level sorting, the dirent-style library, the device name-to-number mmaped database, the approximate binary search directly on System.map, and many code and documentation cleanups. David Mossberger-Tang wrote the generic BFD support for psupdate. E<.MT albert@\\:users.\\:sf.\\:net> Albert Cahalan E<.ME> rewrote ps for full Unix98 and BSD support, along with some ugly hacks for obsolete and foreign syntax."
+msgstr "B<ps> skrevs ursprungligen av E<.MT lankeste@\\:fwi.\\:uva.\\:nl> Branko Lankester E<.ME>. E<.MT johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.ME> skrev om det signifikant till att använda proc-filsystemet och ändrade en del saker på vägen. E<.MT mjshield@\\:nyx.\\:cs.\\:du.\\:edu> Michael Shields E<.ME> lade till funktionen pid-lista. E<.MT cblake@\\:bbn.\\:com> Charles Blake E<.ME> lade till flernivåsortering, bibliotek i dirent-stil, databasen med avbildningar från namn till nummer, den ungefärliga binära sökningen direkt i System.map och gjorde många kod- och dokumentationsstädningar. David Mossberger-Tang skrev det generiska stödet av BFD för psupdate. E<.MT albert@\\:users.\\:sf.\\:net> Albert Cahalan E<.ME> skrev om ps med fullständigt stöd för Unix98 och BSD, tillsammans med några fula hack för föråldrad och främmande syntax."
+
+#. type: Plain text
+#: ../man/ps.1:2124
+msgid "Please send bug reports to E<.MT procps@\\:freelists.\\:org> E<.ME .> No subscription is required or suggested."
+msgstr ""
+"Skicka felrapporter till E<.MT procps@freelists.org> E<.ME .> Ingen prenumeration krävs eller föreslås. \n"
+"Skicka synpunkter på översättningen till E<.MT tp-sv@listor.tp-sv.se> E<.ME>"
+
+#. Setup ////////////////////////////////////////////////////////////////
+#. Commonly used strings (for consistency) ----------
+#. - our em-dashes
+#. type: ds Em
+#: ../man/top.1:11
+#, no-wrap
+msgid "\\ --\\ "
+msgstr "\\ —\\ "
+
+#. type: ds EM
+#: ../man/top.1:12
+#, no-wrap
+msgid "B<\\ --\\ >"
+msgstr "B<\\ —\\ >"
+
+#. - our program name (makes great grammar)
+#. type: ds We
+#: ../man/top.1:14
+#, no-wrap
+msgid "top"
+msgstr "top"
+
+#. type: ds WE
+#: ../man/top.1:15
+#, no-wrap
+msgid "B<top>"
+msgstr "B<top>"
+
+#. - other misc strs for consistent usage
+#. type: ds F
+#: ../man/top.1:17
+#, no-wrap
+msgid "I<Off>"
+msgstr "I<Av>"
+
+#. type: ds O
+#: ../man/top.1:18
+#, no-wrap
+msgid "I<On>"
+msgstr "I<PÃ¥>"
+
+#. type: ds AK
+#: ../man/top.1:20
+#, no-wrap
+msgid "asterisk (`*')"
+msgstr "asterisk (â€*â€)"
+
+#. type: ds AM
+#: ../man/top.1:21
+#, no-wrap
+msgid "alternate-display mode"
+msgstr "alternativt visningsläge"
+
+#. type: ds AS
+#: ../man/top.1:22
+#, no-wrap
+msgid "auxiliary storage"
+msgstr "extra lagring"
+
+#. type: ds CF
+#: ../man/top.1:23
+#, no-wrap
+msgid "configuration file"
+msgstr "konfigurationsfil"
+
+#. type: ds CG
+#: ../man/top.1:24
+#, no-wrap
+msgid "`current' window/field group"
+msgstr "â€aktuell†fönster-/fältgrupp"
+
+#. type: ds CI
+#: ../man/top.1:25
+#, no-wrap
+msgid "interactive command"
+msgstr "interaktivt kommando"
+
+#. type: ds CO
+#: ../man/top.1:26
+#, no-wrap
+msgid "command-line option"
+msgstr "kommandoradsflagga"
+
+#. type: ds CT
+#: ../man/top.1:27
+#, no-wrap
+msgid "command toggle"
+msgstr "kommandoflagga"
+
+#. type: ds CW
+#: ../man/top.1:28
+#, no-wrap
+msgid "`current' window"
+msgstr "â€aktuellt†fönster"
+
+#. type: ds FG
+#: ../man/top.1:29
+#, no-wrap
+msgid "field group"
+msgstr "fältgrupp"
+
+#. type: ds FM
+#: ../man/top.1:30
+#, no-wrap
+msgid "full-screen mode"
+msgstr "helskärmsläge"
+
+#. type: ds KA
+#: ../man/top.1:31
+#, no-wrap
+msgid "arrow key"
+msgstr "piltangent"
+
+#. type: ds KS
+#: ../man/top.1:32
+#, no-wrap
+msgid "scrolling key"
+msgstr "rullningstangent"
+
+#. type: ds MP
+#: ../man/top.1:33
+#, no-wrap
+msgid "physical memory"
+msgstr "fysiskt minne"
+
+#. type: ds MS
+#: ../man/top.1:34
+#, no-wrap
+msgid "swap file"
+msgstr "växlingsfil"
+
+#. type: ds MV
+#: ../man/top.1:35
+#, no-wrap
+msgid "virtual memory"
+msgstr "virtuellt minne"
+
+#. type: ds NT
+#: ../man/top.1:36
+#, no-wrap
+msgid "B<Note>:"
+msgstr "B<Obs>:"
+
+#. type: ds Pu
+#: ../man/top.1:38
+#, no-wrap
+msgid "cpu"
+msgstr "cpu"
+
+#. type: ds SA
+#: ../man/top.1:39
+#, no-wrap
+msgid "summary area"
+msgstr "sammanfattningsområde"
+
+#. type: ds TA
+#: ../man/top.1:40
+#, no-wrap
+msgid "task area"
+msgstr "uppgiftsområde"
+
+#. type: ds TD
+#: ../man/top.1:41
+#, no-wrap
+msgid "task display"
+msgstr "uppgiftsvisning"
+
+#. type: ds TT
+#: ../man/top.1:42
+#, no-wrap
+msgid "B<processes> or B<threads>"
+msgstr "B<processer> eller B<trådar>"
+
+#. type: ds TW
+#: ../man/top.1:43
+#, no-wrap
+msgid "task window"
+msgstr "uppgiftsfönster"
+
+#. Reference to the various widths/sizes ------------
+#. - the max screen width limit
+#. type: ds WX
+#: ../man/top.1:46
+#, no-wrap
+msgid "512"
+msgstr "512"
+
+#. - the header width w/ all fields
+#. type: ds WF
+#: ../man/top.1:48
+#, no-wrap
+msgid "approximately 250"
+msgstr "ungefär 250"
+
+#. - pid monitoring limit
+#. Xref's that depend on/mention other stuff --------
+#. type: ds Xa
+#: ../man/top.1:51
+#, no-wrap
+msgid "see"
+msgstr "se"
+
+#. type: ds XC
+#: ../man/top.1:52
+#, no-wrap
+msgid "See the"
+msgstr "Se"
+
+#. type: ds Xc
+#: ../man/top.1:53
+#, no-wrap
+msgid "see the"
+msgstr "se"
+
+#. type: ds XT
+#: ../man/top.1:54
+#, no-wrap
+msgid "See topic"
+msgstr "Se avsnittet"
+
+#. type: ds Xt
+#: ../man/top.1:55
+#, no-wrap
+msgid "see topic"
+msgstr "se avsnittet"
+
+#. type: ds XX
+#: ../man/top.1:56
+#, no-wrap
+msgid "See `OVERVIEW, Linux Memory Types' for additional details"
+msgstr "Se â€Ã–VERSIKT, Linux minnestyper†för ytterligare detaljer"
+
+#. type: ds ZX
+#: ../man/top.1:57
+#, no-wrap
+msgid "Accessing smaps values is 10x more costly than other memory statistics and data for other users requires root privileges"
+msgstr "Att komma åt smaps-värden är 10× dyrare än annan minnesstatistik och data för andra användare kräver root-privilegier"
+
+#. type: TH
+#: ../man/top.1:62
+#, no-wrap
+msgid "TOP"
+msgstr "TOP"
+
+#. type: TH
+#: ../man/top.1:62
+#, no-wrap
+msgid "August 2023"
+msgstr "Augusti 2023"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:70
+msgid "top - display Linux processes"
+msgstr "top — visa Linuxprocesser"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:75
+msgid "\\*(WE [options]"
+msgstr "\\*(WE [flaggor]"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:85
+msgid "The \\*(WE program provides a dynamic real-time view of a running system. It can displayB< system> summary information as well as a list of \\*(TT currently being managed by the Linux kernel. The types of system summary information shown and the types, order and size of information displayed for processes are all user configurable and that configuration can be made persistent across restarts."
+msgstr "Programmet \\*(WE visar en dynamisk vy av det körande systemet i realtid. Det kan visa sammanfattande information om B<systemet> liksom en lista över \\*(TT som för närvarande hanteras av Linuxkärnan. Typerna av sammanfattande systeminformation som visas och typerna, ordningen och storleken på informationen som visas för processer är användarkonfigurerbart och den konfigurationen kan bevaras mellan omstarter."
+
+#. type: Plain text
+#: ../man/top.1:93
+msgid "The program provides a limited interactive interface for process manipulation as well as a much more extensive interface for personal configuration \\*(Em encompassing every aspect of its operation. And while \\*(WE is referred to throughout this document, you are free to name the program anything you wish. That new name, possibly an alias, will then be reflected on \\*(We's display and used when reading and writing a \\*(CF."
+msgstr "Programmet ger ett begränsat interaktivt gränssnitt för processhantering såväl som ett mycket mer omfattande gränssnitt för personlig konfiguration \\*(Em omfattande dess funktion i alla avseenden. Och medan \\*(WE rereras genomgående i detta dokument står det dig fritt att kalla programmet vad du vill. Det nya namnet, möjligen ett alias, kan sedan avspeglas i \\*(Wes fönster och anvädas när man läser och skriver en \\*(CF."
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:95
+#, no-wrap
+msgid "OVERVIEW"
+msgstr "ÖVERSIKT"
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:98
+#, no-wrap
+msgid "Documentation"
+msgstr "Dokumentation"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:101
+msgid "The remaining Table of Contents"
+msgstr "Återstående innehållsförteckning"
+
+#. type: Plain text
+#: ../man/top.1:141
+#, no-wrap
+msgid ""
+" OVERVIEW\n"
+" Operation\n"
+" Linux Memory Types\n"
+" 1. COMMAND-LINE Options\n"
+" 2. SUMMARY Display\n"
+" a. UPTIME and LOAD Averages\n"
+" b. TASK and CPU States\n"
+" c. MEMORY Usage\n"
+" 3. FIELDS / Columns Display\n"
+" a. DESCRIPTIONS of Fields\n"
+" b. MANAGING Fields\n"
+" 4. INTERACTIVE Commands\n"
+" a. GLOBAL Commands\n"
+" b. SUMMARY AREA Commands\n"
+" c. TASK AREA Commands\n"
+" 1. Appearance\n"
+" 2. Content\n"
+" 3. Size\n"
+" 4. Sorting\n"
+" d. COLOR Mapping\n"
+" 5. ALTERNATE-DISPLAY Provisions\n"
+" a. WINDOWS Overview\n"
+" b. COMMANDS for Windows\n"
+" c. SCROLLING a Window\n"
+" d. SEARCHING in a Window\n"
+" e. FILTERING in a Window\n"
+" 6. FILES\n"
+" a. PERSONAL Configuration File\n"
+" b. ADDING INSPECT Entries\n"
+" c. SYSTEM Configuration File\n"
+" d. SYSTEM Restrictions File\n"
+" 7. ENVIRONMENT VARIABLE(S)\n"
+" 8. STUPID TRICKS Sampler\n"
+" a. Kernel Magic\n"
+" b. Bouncing Windows\n"
+" c. The Big Bird Window\n"
+" d. The Ol' Switcheroo\n"
+" 9. BUGS, 10. SEE Also\n"
+msgstr ""
+" ÖVERSIKT\n"
+" Funktion\n"
+" Linux minnestyper\n"
+" 1. KOMMANDORADSflaggor\n"
+" 2. SAMMANFATTNINGSvisning\n"
+" a. UPPETID och LASTgenomsnitt\n"
+" b. UPPGIFTER och CPU-tillstånd\n"
+" c. MINNESanvändning\n"
+" 3. FÄLT-/Kolumnvisning\n"
+" a. BESKRIVNINGAR av fält\n"
+" b. HANTERING av fält\n"
+" 4. INTERAKTIVA kommandon\n"
+" a. GLOBALA kommandon\n"
+" b. SAMMANFATTNINGSOMRÃ…DETS kommandon\n"
+" c. UPPGIFTSOMRÃ…DETS kommandon\n"
+" 1. Utseende\n"
+" 2. Innehåll\n"
+" 3. Storlek\n"
+" 4. Sortering\n"
+" d. FÄRGavbildning\n"
+" 5. ALTERNATIVA SKÄRMARS utseende\n"
+" a. FÖNSTERöversikt\n"
+" b. KOMMANDON för fönster\n"
+" c. RULLA ett fönster\n"
+" d. SÖKA i ett fönster\n"
+" e. FILTRERA i ett fönster\n"
+" 6. FILER\n"
+" a. PERSONLIG konfigurationfil\n"
+" b. LÄGGA TILL INSPEKTIONSposter\n"
+" c. SYSTEMkonfigurtionsfil\n"
+" d. SYSTEMbegränsningsfil\n"
+" 7. MILJÖVARIABLER\n"
+" 8. DUMMA TRICK-exempel\n"
+" a. Kärnmagi\n"
+" b. Studsande fönster\n"
+" c. Den stora fågelns fönster\n"
+" d. Den gamla förväxlingen\n"
+" 9. FEL, 10. SE även\n"
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:144
+#, no-wrap
+msgid "Operation"
+msgstr "Funktion"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:150
+msgid "When operating \\*(We, the two most important keys are the help (h or ?) key and quit (`q') key. Alternatively, you could simply use the traditional interrupt key (^C) when you're done."
+msgstr "När \\*(We kör är de tvÃ¥ viktigaste tangenterna hjälptagenten (h eller ?) och avslutningstangenten (â€qâ€). Alternativt kan du helt enkelt använda den traditionella avbrottstangenten (^C) när du är klar."
+
+#. type: Plain text
+#: ../man/top.1:157
+msgid "When started for the first time, you'll be presented with these traditional elements on the main \\*(We screen: 1) Summary Area; 2) Fields/Columns Header; 3) Task Area. Each of these will be explored in the sections that follow. There is also an Input/Message line between the Summary Area and Columns Header which needs no further explanation."
+msgstr "När det startas för första gången kommer du få se dessa traditionella elementen på hvudskärmen i \\*(We: 1) sammanfattningsområde; 2) fält-/kolumnhuvud; 3) uppgiftsområde. Var och en av dessa kommer utforskas i avsnitten som följer nedan. Det finns även en inmatnings-/meddelanderad mellan sammanfattnigsområdet och kolumhuvudet som inte behöver någon ytterligare förklaring."
+
+#. type: Plain text
+#: ../man/top.1:165
+msgid "The main \\*(We screen is I<generally> quite adaptive to changes in terminal dimensions under X-Windows. Other \\*(We screens may be less so, especially those with static text. It ultimately depends, however, on your particular window manager and terminal emulator. There may be occasions when their view of terminal size and current contents differs from \\*(We's view, which is always based on operating system calls."
+msgstr "Huvudskärmen för \\*(We är I<i allmänhet> väl anpassningsbar till ändringar av terminalens dimensioner under X-Windows. Andra skärmar hos \\*(We kan vara det i mindre utsträckning, särskilt de med statisk text. Det beror dock i slutänden på just din fönsterhanterare och terminalemulator. Det kan finnas tillfällen när deras vy av terminalstorleken och det aktuella innehållet skiljer från \\*(Wes vy, vilket alltid baseras på operativsystemanrop."
+
+#. type: Plain text
+#: ../man/top.1:170
+msgid "Following any re-size operation, if a \\*(We screen is corrupted, appears incomplete or disordered, simply typing something innocuous like a punctuation character or cursor motion key will usually restore it. In extreme cases, the following sequence almost certainly will:"
+msgstr "Efter en storleksändringsåtgärd, om en \\*(We-skärm blir trasig, förefaller ofullständig eller i oordning kommer att helt enkelt skriva något harmlöst som ett interpunktionstecken eller markörrörelsetangent vanligen att återställa den. I extrema fall kommer följande sekvens nästan säkert göra det:"
+
+#. type: Plain text
+#: ../man/top.1:175
+#, no-wrap
+msgid ""
+" I<key/cmd objective >\n"
+" ^Z B<suspend> \\*(We\n"
+" fg B<resume> \\*(We\n"
+" E<lt>LeftE<gt> force a screen B<redraw> (if necessary)\n"
+msgstr ""
+" I<tgt/kmd syfte >\n"
+" ^Z B<gör uppehåll för> \\*(We\n"
+" fg B<Ã¥teruppta> \\*(We\n"
+" E<lt>VänsterE<gt> framtvinga om skärmB<omritning> (om nödvändigt)\n"
+
+#. type: Plain text
+#: ../man/top.1:179
+msgid "But if the display is still corrupted, there is one more step you could try. Insert this command after \\*(We has been suspended but before resuming it."
+msgstr "Men om skärmen fortfarande är trasig är det ett steg till du kan prova. Infoga detta kommando efter att ha gjort uppehåll i \\*(We men innan den återupptas."
+
+#. type: Plain text
+#: ../man/top.1:182
+#, no-wrap
+msgid ""
+" I<key/cmd objective >\n"
+" reset restore your B<terminal settings>\n"
+msgstr ""
+" I<tgt/kmd syfte>\n"
+" reset återställ dina B<terminalinställningar>\n"
+
+#. type: Plain text
+#: ../man/top.1:192
+msgid "\\*(NT the width of \\*(We's display will be limited to \\*(WX positions. Displaying all fields requires \\*(WF characters. Remaining screen width is usually allocated to any variable width columns currently visible. The variable width columns, such as COMMAND, are noted in topic 3a. DESCRIPTIONS of Fields. Actual output width may also be influenced by the -w switch, which is discussed in topic 1. COMMAND-LINE Options."
+msgstr "\\*(NT bredden på \\*(Wes skärm kommer begränsas till \\*(WX positioner. Att visa alla fälten kräver \\*(WF tecken. Återstående skärmbredd allokeras vanligen till de variabla kolumnbredder som för närvarande är synliga. Kolumner med variabel bredd, såsom KOMMANDO finns noterade i avsnitt 3a. BESKRIVNING av fält. Faktiskt utskriftsbredd kan även påverkas av flaggan -w vilken diskuteras i avsnitt 1. KOMMANDORADSflaggor."
+
+#. type: Plain text
+#: ../man/top.1:197
+msgid "Lastly, some of \\*(We's screens or functions require the use of cursor motion keys like the standard \\*(KAs plus the Home, End, PgUp and PgDn keys. If your terminal or emulator does not provide those keys, the following combinations are accepted as alternatives:"
+msgstr "Slutligen kräver vissa av \\*(Wes skärmar eller funktioner användningen av markörförflyttningstangeter som standard\\*(KAerna plus tangenterna Home, End, PgUp och PgDn. Om din terminal eller emulator inte tillhandahåller dessa tangenter är följande kombinationer godkända som alternativ:"
+
+#. type: Plain text
+#: ../man/top.1:207
+#, no-wrap
+msgid ""
+" I< key equivalent-keys >\n"
+" Left alt +B< h >\n"
+" Down alt +B< j >\n"
+" Up alt +B< k >\n"
+" Right alt +B< l >\n"
+" Home alt + ctrl +B< h >\n"
+" PgDn alt + ctrl +B< j >\n"
+" PgUp alt + ctrl +B< k >\n"
+" End alt + ctrl +B< l >\n"
+msgstr ""
+" I<tgt likvärdig tangent>\n"
+" Vänster alt +B< h >\n"
+" Ned alt +B< j >\n"
+" Upp alt +B< k >\n"
+" Höger alt +B< l >\n"
+" Home alt + ctrl +B< h >\n"
+" PgDn alt + ctrl +B< j >\n"
+" PgUp alt + ctrl +B< k >\n"
+" End alt + ctrl +B< l >\n"
+
+#. type: Plain text
+#: ../man/top.1:214
+msgid "The B<Up> and B<Down> \\*(KAs have special significance when prompted for line input terminated with the E<lt>EnterE<gt> key. Those keys, or their aliases, can be used to retrieve previous input lines which can then be edited and re-input. And there are four additional keys available with line oriented input."
+msgstr "Piltangenterna B<upp> och B<ned> har speciell betydelse när en radinatning avslutad med tangenten E<lt>EnterE<gt> efterfrågas. Dessa tangenter, eller deras alias, kan användas för att tidigare inmatningsrader vilka sedan kan redigeras och matas in igen. Det finns fyra ytterligare tangenter tillgängliga med radorienterad inmatning."
+
+#. type: Plain text
+#: ../man/top.1:222
+#, no-wrap
+msgid ""
+" I< key special-significance >\n"
+" Up recall B<older> strings for re-editing\n"
+" Down recall B<newer> strings or B<erase> entire line\n"
+" Insert toggle between B<insert> and B<overtype> modes\n"
+" Delete character B<removed> at cursor, moving others left\n"
+" Home jump to B<beginning> of input line\n"
+" End jump to B<end> of input line\n"
+msgstr ""
+" I<tgt speciell betydelse>\n"
+" Upp hämta B<tidigare> strängar för omredigering\n"
+" Ned hämta B<nyare> strängar eller B<radera> hela raden\n"
+" Insert växla mellan lägena B<infoga> och B<skriv över>\n"
+" Delete tecknet B<tas bort> vid markören, övriga flyttas till vänster\n"
+" Home hoppa till B<början> av inmatningsraden\n"
+" End hoppa till B<slutet> av inmatningsraden\n"
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:225
+#, no-wrap
+msgid "Linux Memory Types"
+msgstr "Linux minnestyper"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:234
+msgid "For our purposes there are three types of memory, and one is optional. First is \\*(MP, a limited resource where code and data must reside when executed or referenced. Next is the optional \\*(MS, where modified (dirty) memory can be saved and later retrieved if too many demands are made on \\*(MP. Lastly we have \\*(MV, a nearly unlimited resource serving the following goals:"
+msgstr "För våra syften finns det tre sorters minne, och en är valfri. Den första är \\*(MP, en begränsad resurs där kod och data måste finnas när det körs eller refereras. Nästa är den valfria \\*(MSen där ändrat (smutsigt) minne kan sparas och senare hämtas tillbaka ifall för mycket efterfrågan finns på \\*(MP. Slutligen har vi \\*(MV, en nästan obegränsad resurs som uppfyller följande mål:"
+
+#. type: Plain text
+#: ../man/top.1:240
+#, no-wrap
+msgid ""
+" 1. abstraction, free from physical memory addresses/limits\n"
+" 2. isolation, every process in a separate address space\n"
+" 3. sharing, a single mapping can serve multiple needs\n"
+" 4. flexibility, assign a virtual address to a file\n"
+msgstr ""
+" 1. abstraktion, från från det fysiska minnets adresser/begränsningar\n"
+" 2. isolering, varje process i en separat minnesrymd\n"
+" 3. delning, en viss mappning kan uppfylla flera behov\n"
+" 4. flexibilitet, tilldela en virtuell minnesadress till en fil\n"
+
+#. type: Plain text
+#: ../man/top.1:249
+msgid "Regardless of which of these forms memory may take, all are managed as pages (typically 4096 bytes) but expressed by default in \\*(We as KiB (kibibyte). The memory discussed under topic `2c. MEMORY Usage' deals with \\*(MP and the \\*(MS for the system as a whole. The memory reviewed in topic `3. FIELDS / Columns Display' embraces all three memory types, but for individual processes."
+msgstr "Oavsett vilken av dessa former minnet kan ta hanteras alla som sidor (typiskt 4096 byte) men uttrycks som standard i \\*(We som KiB (kibibyte). Minnet som diskuteras under avsnittet â€2c. MINNESanvändning†handlar om \\*(MP och \\*(MS för systemet som en helhet. Minnet som gÃ¥s igenom i avsnittet â€3. FÄLT-/Kolumnvisning†omfattar alla tre minnestyperna, men för enskilda processer."
+
+#. type: Plain text
+#: ../man/top.1:255
+msgid "For each such process, every memory page is restricted to a single quadrant from the table below. Both \\*(MP and \\*(MV can include any of the four, while the \\*(MS only includes #1 through #3. The memory in quadrant #4, when modified, acts as its own dedicated \\*(MS."
+msgstr "För varje sådan process är varje minnessida begränsat till en vis kvadrant från tabellen nedan. Både \\*(MP och \\*(MV kan inkludera vilken som helst av de fyra, medan \\*(MSen endast inkluderar nr. 1 till 3. Minnet i kvadrant nr. 4 fungerar när det ändras som sin egen dedikerade \\*(MS."
+
+#. type: Plain text
+#: ../man/top.1:267
+#, no-wrap
+msgid ""
+" B<Private> | B<Shared>\n"
+" B<1> | B<2>\n"
+" B<Anonymous> . stack |\n"
+" . malloc() |\n"
+" . brk()/sbrk() | . POSIX shm*\n"
+" . mmap(PRIVATE, ANON) | . mmap(SHARED, ANON)\n"
+" -----------------------+----------------------\n"
+" . mmap(PRIVATE, fd) | . mmap(SHARED, fd)\n"
+" B<File-backed> . pgms/shared libs |\n"
+" B<3> | B<4>\n"
+msgstr ""
+" B<Privat> | B<Delat>\n"
+" B<1> | B<2>\n"
+" B<Anonymt> . stack |\n"
+" . malloc() |\n"
+" . brk()/sbrk() | . POSIX shm*\n"
+" . mmap(PRIVATE, ANON) | . mmap(SHARED, ANON)\n"
+" -----------------------+----------------------\n"
+" . mmap(PRIVATE, fd) | . mmap(SHARED, fd)\n"
+" B<Filstött> . pgm/delade bibl |\n"
+" B<3> | B<4>\n"
+
+#. type: Plain text
+#: ../man/top.1:271
+msgid "The following may help in interpreting process level memory values displayed as scalable columns and discussed under topic `3a. DESCRIPTIONS of Fields'."
+msgstr "Följande kan hjälpa till med att tolka minnesvärden som visas pÃ¥ processnivÃ¥ som skalbara kolumner och diskuteras under avsnitt â€3a. BESKRIVNING av fältâ€."
+
+#. type: Plain text
+#: ../man/top.1:288
+#, no-wrap
+msgid ""
+" %MEM - simply RES divided by total \\*(MP\n"
+" CODE - the `pgms' portion of quadrant B<3>\n"
+" DATA - the entire quadrant B<1> portion of VIRT plus all\n"
+" explicit mmap file-backed pages of quadrant B<3>\n"
+" RES - anything occupying \\*(MP which, beginning with\n"
+" Linux-4.5, is the sum of the following three fields:\n"
+" RSan - quadrant B<1> pages, which include any\n"
+" former quadrant B<3> pages if modified\n"
+" RSfd - quadrant B<3> and quadrant B<4> pages\n"
+" RSsh - quadrant B<2> pages\n"
+" RSlk - subset of RES which cannot be swapped out (any quadrant)\n"
+" SHR - subset of RES (excludes B<1>, includes all B<2> & B<4>, some B<3>)\n"
+" SWAP - potentially any quadrant except B<4>\n"
+" USED - simply the sum of RES and SWAP\n"
+" VIRT - everything in-use and/or reserved (all quadrants)\n"
+msgstr ""
+" %MIN - helt enkelt RES divederat med totalt \\*(MP\n"
+" KOD - â€pgmâ€-delen av kvadrant B<3>\n"
+" DATA - hela kvadrant B<1> del av VIRT plus alla\n"
+" explicit mmap:ade filstödda sidor i kvadrant B<3>\n"
+" RES - vad som helst som tar upp \\*(MP vilket, med början med\n"
+" Linux-4.5, är summan ad de följande tre fälten:\n"
+" RSan - kvadrant B<1>-sidor, vilket inkluderar alla\n"
+" tidigare B<3>-sidor om de ändras\n"
+" RSfb - kvadrant B<3>- och kvadrant B<4>-sidor\n"
+" RSdl - kvadrant B<2>-sidor\n"
+" RSlå - delmängden av RES som inte kan växlas ut (oavsett kvadrant)\n"
+" DELT - delmängd av RES (exkluderar B<1>, inkluderar hela B<2> & B<4>, delvis B<3>)\n"
+" VÄXL - potentiellt vilken kvadrant som helst utom B<4>\n"
+" ANV - helt enkelt summan av RES och SWAP\n"
+" VIRT - allt använd och/eller reserverat (oavsett kvadrant)\n"
+
+#. type: Plain text
+#: ../man/top.1:293
+msgid "\\*(NT Even though program images and shared libraries are considered I<private> to a process, they will be accounted for as I<shared> (SHR) by the kernel."
+msgstr "\\*(NT även om programavbilder och delade bibliotek betraktas som I<privata> hos en process kommer de räknas som I<delade> (DELT) av kärnan."
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:295
+#, no-wrap
+msgid "1. COMMAND-LINE Options"
+msgstr "1. KOMMANDORADSflaggor"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:299
+msgid "MandatoryI< arguments> to long options are mandatory for short options too."
+msgstr "ObligatoriskaI< argument> till långa flaggor är obligatoriska även för korta flaggor."
+
+#. type: Plain text
+#: ../man/top.1:302
+msgid "Although not required, the equals sign can be used with either option form and whitespace before and/or after the `=' is permitted."
+msgstr "Även om det inte krävs kan likhetstecknet med endera formen av flaggan och blanktecken före och/eller efter â€=†är tillÃ¥tet."
+
+#. type: TP
+#: ../man/top.1:303
+#, no-wrap
+msgid "-B<b>, B<--batch>"
+msgstr "-B<b>, B<--batch>"
+
+#. type: Plain text
+#: ../man/top.1:309
+msgid "Starts \\*(We in Batch mode, which could be useful for sending output from \\*(We to other programs or to a file. In this mode, \\*(We will not accept input and runs until the iterations limit you've set with the `-n' \\*(CO or until killed."
+msgstr "Startat \\*(We i satsvis läge, vilket kan vara användbart för att skicka utdata frÃ¥n \\*(We till andra program eller till en fil. I detta läge kommer \\*(We inte acceptera indata och kör tills iterationsgränsen du satt med \\*(COn â€-n†eller tills den dödas."
+
+#. type: TP
+#: ../man/top.1:310
+#, no-wrap
+msgid "-B<c>, B<--cmdline-toggle>"
+msgstr "-B<c>, B<--cmdline-toggle>"
+
+#. type: Plain text
+#: ../man/top.1:316
+msgid "Starts \\*(We with the last remembered `c' state reversed. Thus, if \\*(We was displaying command lines, now that field will show program names, and vice versa. \\*(XC `c' \\*(CI for additional information."
+msgstr "Startar \\*(We med det senast sparade â€câ€-tillstÃ¥ndet omvänt. AlltsÃ¥, om \\*(We visade kommandorader kommer nu det fältet visa programnamn, och vice versa. \\*(XC det interaktiva kommandot â€c†för ytterligare information."
+
+#. type: TP
+#: ../man/top.1:317
+#, no-wrap
+msgid "-B<d>, B<--delay> = I<SECS> [I<.TENTHS>]"
+msgstr "-B<d>, B<--delay> = I<SEK> [I<.TIONDELAR>]"
+
+#. type: Plain text
+#: ../man/top.1:322
+msgid "Specifies the delay between screen updates, and overrides the corresponding value in one's personal \\*(CF or the startup default. Later this can be changed with the `d' or `s' \\*(CIs."
+msgstr "Anger fördröjningen mellan skärmuppdateringar, och Ã¥sidosätter motsvarande värde i den personliga \\*(CFen eller uppstartsstandardvärdet. Senare kan detta ändras med de interaktiva kommandona â€d†eller â€sâ€."
+
+#. type: Plain text
+#: ../man/top.1:327
+msgid "Fractional seconds are honored, but a negative number is not allowed. In all cases, however, such changes are prohibited if \\*(We is running in Secure mode, except for root (unless the `s' \\*(CO was used). For additional information on Secure mode \\*(Xt 6d. SYSTEM Restrictions File."
+msgstr "Delar av sekunder respekteras, men ett negativt tal är inte tillÃ¥tet. I vilket fall som helst är dock sÃ¥dana ändringar otillÃ¥tna om \\*(We kör i Säkert läge, utom för root (om inte \\*(COn â€s†användes). För ytterligare information om Säkert läge, \\*(Xt 6d. SYSTEMbegränsningsfil."
+
+#. type: TP
+#: ../man/top.1:328
+#, no-wrap
+msgid "-B<E>, B<--scale-summary-mem> = I<k> | I<m> | I<g> | I<t> | I<p> | I<e>"
+msgstr "-B<E>, B<--scale-summary-mem> = I<k> | I<m> | I<g> | I<t> | I<p> | I<e>"
+
+#. type: Plain text
+#: ../man/top.1:331
+msgid "Instructs \\*(We to force \\*(SA memory to be scaled as:"
+msgstr "Instruerar \\*(WE att framtvinga \\*(SAminne att skalas som:"
+
+#. type: Plain text
+#: ../man/top.1:338
+#, no-wrap
+msgid ""
+" k - kibibytes\n"
+" m - mebibytes\n"
+" g - gibibytes\n"
+" t - tebibytes\n"
+" p - pebibytes\n"
+" e - exbibytes\n"
+msgstr ""
+" k — kibibyte\n"
+" m — mebibyte\n"
+" g — gibibyte\n"
+" t — tebibyte\n"
+" p — pebibyte\n"
+" e — exbibyte\n"
+
+#. type: Plain text
+#: ../man/top.1:341
+msgid "Later this can be changed with the `E' \\*(CT."
+msgstr "Detta kan senare ändras med \\*(CTn â€Eâ€."
+
+#. type: TP
+#: ../man/top.1:342
+#, no-wrap
+msgid "-B<e>, B<--scale-task-mem> = I<k> | I<m> | I<g> | I<t> | I<p>"
+msgstr "-B<e>, B<--scale-task-mem> = I<k> | I<m> | I<g> | I<t> | I<p>"
+
+#. type: Plain text
+#: ../man/top.1:345
+msgid "Instructs \\*(We to force \\*(TA memory to be scaled as:"
+msgstr "Instruerar \\*(We att framtvinga \\*(TAsminne att skalas som:"
+
+#. type: Plain text
+#: ../man/top.1:351
+#, no-wrap
+msgid ""
+" k - kibibytes\n"
+" m - mebibytes\n"
+" g - gibibytes\n"
+" t - tebibytes\n"
+" p - pebibytes\n"
+msgstr ""
+" k — kibibyte\n"
+" m — mebibyte\n"
+" g — gibibyte\n"
+" t — tebibyte\n"
+" p — pebibyte\n"
+
+#. type: Plain text
+#: ../man/top.1:354
+msgid "Later this can be changed with the `e' \\*(CT."
+msgstr "Detta kan senare ändras med \\*(CTn â€eâ€."
+
+#. type: TP
+#: ../man/top.1:355
+#, no-wrap
+msgid "-B<H>, B<--threads-show>"
+msgstr "-B<H>, B<--threads-show>"
+
+#. type: Plain text
+#: ../man/top.1:360
+msgid "Instructs \\*(We to display individual threads. Without this \\*(CO a summation of all threads in each process is shown. Later this can be changed with the `H' \\*(CI."
+msgstr "Instruerar \\*(We att visa enskilda trÃ¥dar. Utan denna \\*(CO visas en sammanfattning av alla trÃ¥dar i varje process. Detta kan senare ändras med det interaktiva kommandot â€Hâ€."
+
+#. type: TP
+#: ../man/top.1:361
+#, no-wrap
+msgid "-B<h>, B<--help>"
+msgstr "-B<h>, B<--help>"
+
+#. type: Plain text
+#: ../man/top.1:364
+msgid "Display usage help text, then quit."
+msgstr "Visa användningshjälptext, avsluta sedan."
+
+#. type: TP
+#: ../man/top.1:365
+#, no-wrap
+msgid "-B<i>, B<--idle-toggle>"
+msgstr "-B<i>, B<--idle-toggle>"
+
+#. type: Plain text
+#: ../man/top.1:372
+msgid "Starts \\*(We with the last remembered `i' state reversed. When this toggle is \\*F, tasks that have not used any \\*(PU since the last update will not be displayed. For additional information regarding this toggle \\*(Xt 4c. TASK AREA Commands, SIZE."
+msgstr "Startar \\*(We med det senast sparade â€iâ€-tillstÃ¥ndet omvänt. När denna växel är \\*F kommer uppgifter som inte har använt nÃ¥gon \\*(PU sedan den senaste uppdateringen inte visas. För ytterligare information om denna växel \\*(Xt 4c. UPPGIFTOMRÃ…DETS kommandon, STORLEK."
+
+#. type: TP
+#: ../man/top.1:373
+#, no-wrap
+msgid "-B<n>, B<--iterations> = I<NUMBER>"
+msgstr "-B<n>, B<--iterations> = I<ANTAL>"
+
+#. type: Plain text
+#: ../man/top.1:377
+msgid "Specifies the maximum number of iterations, or frames, \\*(We should produce before ending."
+msgstr "Anger det maximala antalet iterationer, eller ramar, \\*(We skall producera före det avslutar."
+
+#. type: TP
+#: ../man/top.1:378
+#, no-wrap
+msgid "-B<O>, B<--list-fields>"
+msgstr "-B<O>, B<--list-fields>"
+
+#. type: Plain text
+#: ../man/top.1:384
+msgid "This option acts as a form of help for the -o option shown below. It will cause \\*(We to print each of the available field names on a separate line, then quit. Such names are subject to NLS (National Language Support) translation."
+msgstr "Denna flagga fungerar som en slags hjälp för flaggan -o som visas nedan. Den gör att \\*(We skriver ut vart och ett av de tillgängliga fältnamnen på var sin rad, sedan avsluta. Sådana namn är föremål för översättningar enligt NLS (National Language Support, stöd för nationella språk)."
+
+#. type: TP
+#: ../man/top.1:385
+#, no-wrap
+msgid "-B<o>, B<--sort-override> = I<FIELDNAME>"
+msgstr "-B<o>, B<--sort-override> = I<FÄLTNAMN>"
+
+#. type: Plain text
+#: ../man/top.1:393
+msgid "Specifies the name of the field on which tasks will be sorted, independent of what is reflected in the configuration file. You can prepend a `+' or `-' to the field name to also override the sort direction. A leading `+' will force sorting high to low, whereas a `-' will ensure a low to high ordering."
+msgstr "Anger namnet pÃ¥ fältet enligt vilket uppgifter skall sorteras, oavsett vad somavspeglas i konfigurationsfilen. Man kan lägga till ett â€+†eller â€-†till filnamnet för att även Ã¥sidosätta sorteringsordningen. Ett inledande â€+†kommer tvinga sortering högt till lÃ¥gt, medan ett â€-†ser till att ordningen blir lÃ¥gt till högt."
+
+#. type: Plain text
+#: ../man/top.1:396
+msgid "This option exists primarily to support automated/scripted batch mode operation."
+msgstr "Denna flagga finns primärt för att stödja automatisk/skriptad satsvis drift."
+
+#. type: TP
+#: ../man/top.1:397
+#, no-wrap
+msgid "-B<p>, B<--pid> = I<PIDLIST> (as: I<1>,I<2>,I<3>, ... or -pI<1> -pI<2> -pI<3> ...)"
+msgstr "-B<p>, B<--pid> = I<PID-LISTA> (som: I<1>,I<2>,I<3>, … eller -pI<1> -pI<2> -pI<3> …)"
+
+#. type: Plain text
+#: ../man/top.1:403
+msgid "Monitor only processes with specified process IDs. However, when combined with Threads mode (`H'), all processes in the thread group (\\*(Xa TGID) of each monitored PID will also be shown."
+msgstr "Övervaka endast processer med angivna process-ID:n. Dock, när det kombineras med trÃ¥dläge (â€Hâ€) kommer även alla processer i trÃ¥dgruppen (\\*(Xa TGID) för varje övervakad PID att visas."
+
+#. type: Plain text
+#: ../man/top.1:407
+msgid "This option can be given up to 20 times, or you can provide a comma delimited list with up to 20 pids. Co-mingling both approaches is permitted."
+msgstr "Denna flagga gan ges upp till 20 gånger, eller så kan man ge en kommaavgränsad lista med upp till 20 pid:ar. Att kombinera ihop båda metoderna är tillåtet."
+
+#. type: Plain text
+#: ../man/top.1:410
+msgid "A pid value of zero will be treated as the process id of the \\*(We program itself once it is running."
+msgstr "Ett pid-värde på noll kommer tolkas som process-id:t på programmet \\*(We självt när det har startat."
+
+#. type: Plain text
+#: ../man/top.1:414
+msgid "This is a \\*(CO only and should you wish to return to normal operation, it is not necessary to quit and restart \\*(We \\*(Em just issue any of these \\*(CIs: `=', `u' or `U'."
+msgstr "Detta är endast en \\*(CO och skulle du vilja Ã¥tergÃ¥ till normal drift är det nödvändigt att avsluta och starta om \\*(We \\*(Em ge endast nÃ¥got av dessa interaktiva kommandon: â€=â€, â€u†eller â€Uâ€."
+
+#. type: Plain text
+#: ../man/top.1:416
+msgid "The `p', `u' and `U' \\*(COs are mutually exclusive."
+msgstr "Kommandoradsflaggorna â€pâ€, â€u†och â€U†är ömsesidigt uteslutande."
+
+#. type: TP
+#: ../man/top.1:417
+#, no-wrap
+msgid "-B<S>, B<--accum-time-toggle>"
+msgstr "-B<S>, B<--accum-time-toggle>"
+
+#. type: Plain text
+#: ../man/top.1:423
+msgid "Starts \\*(We with the last remembered `S' state reversed. When Cumulative time mode is \\*O, each process is listed with the \\*(Pu time that it and its dead children have used. \\*(XC `S' \\*(CI for additional information regarding this mode."
+msgstr "Startar \\*(We med det senast sparade â€Sâ€-tillstÃ¥ndet omvänt. När ackumulerad tid-läge är \\*O listas varje process med \\*(Pu-tiden som den och dess döda barn har använt. \\*(XC det interaktiva kommandot â€S†för ytterligare information om detta läge."
+
+#. type: TP
+#: ../man/top.1:424
+#, no-wrap
+msgid "-B<s>, B<--secure-mode>"
+msgstr "-B<s>, B<--secure-mode>"
+
+#. type: Plain text
+#: ../man/top.1:429
+msgid "Starts \\*(We with secure mode forced, even for root. This mode is far better controlled through a system \\*(CF (\\*(Xt 6. FILES)."
+msgstr "Startar \\*(We med säkert läge påtvingat, även för root. Detta läge är mycket bättre styrt genom en system\\*(CF (\\*(Xt 6. FILER)."
+
+#. type: TP
+#: ../man/top.1:430
+#, no-wrap
+msgid "-B<U>, B<--filter-any-user> = I<USER> (as: I<number> or I<name>)"
+msgstr "-B<U>, B<--filter-any-user> = I<ANVÄNDARE> (som: I<nummer> eller I<namn>)"
+
+#. type: Plain text
+#: ../man/top.1:435
+msgid "Display only processes with a user id or user name matching that given. This option matches onI< any> user (I<real>, I<effective>, I<saved>, or I<filesystem>)."
+msgstr "Visa endast processer med ett användar-id eller användarnamn som matchar det givna. Denna flagga mot I<alla> användare (I<verklig>, I<verksam>, I<sparad> eller I<filsystem>)."
+
+#. type: Plain text
+#: ../man/top.1:438 ../man/top.1:448
+msgid "Prepending an exclamation point (`!') to the user id or name instructs \\*(We to display only processes with users not matching the one provided."
+msgstr "Att lägga till ett utropstecken (â€!â€) till användar-id:t eller -namnet instruerar \\*(We att visa endast processer med användare som inte stämmer med den angivna."
+
+#. type: Plain text
+#: ../man/top.1:440 ../man/top.1:450
+msgid "The `p', `U' and `u' \\*(COs are mutually exclusive."
+msgstr "Kommandoradsflaggorna â€pâ€, â€U†och â€u†är ömsesidigt uteslutande."
+
+#. type: TP
+#: ../man/top.1:441
+#, no-wrap
+msgid "-B<u>, B<--filter-only-euser> = I<USER> (as: I<number> or I<name>)"
+msgstr "-B<u>, B<--filter-only-euser> = I<ANVÄNDARE> (som: I<nummer> eller I<namn>)"
+
+#. type: Plain text
+#: ../man/top.1:445
+msgid "Display only processes with a user id or user name matching that given. This option matches on theI< effective> user id only."
+msgstr "Visa endast processer med ett användar-id eller användarnamn som som matchar den givna. Denna flagga matchar endast mot det I<verksamma> användar-id:t."
+
+#. type: TP
+#: ../man/top.1:451
+#, no-wrap
+msgid "-B<V>, B<--version>"
+msgstr "-B<V>, B<--version>"
+
+#. type: Plain text
+#: ../man/top.1:454
+msgid "Display version information, then quit."
+msgstr "Visa versionsinformation, avsluta sedan."
+
+#. type: TP
+#: ../man/top.1:455
+#, no-wrap
+msgid "-B<w>, B<--width> [=I<COLUMNS>]"
+msgstr "-B<w>, B<--width> [=I<KOLUMNER>]"
+
+#. type: Plain text
+#: ../man/top.1:462
+msgid "In Batch mode, when used without an argument \\*(We will format output using the COLUMNS= and LINES= environment variables, if set. Otherwise, width will be fixed at the maximum \\*(WX columns. With an argument, output width can be decreased or increased (up to \\*(WX) but the number of rows is considered unlimited."
+msgstr "I satsvis läge, när det används utan argument kommer \\*(We formatera med användning av miljövariablerna COLUMNS= och LINES=, om de är satta. Annars kommer bredden vara fixerad till de maximala \\*(WX kolumnerna. Med ett argument kan utmatningsbredden minskas eller ökas (upp till \\*(WX) men antalet rader betraktas som obegränsat."
+
+#. type: Plain text
+#: ../man/top.1:468
+msgid "In normal display mode, when used without an argument \\*(We willI< attempt> to format output using the COLUMNS= and LINES= environment variables, if set. With an argument, output width can only be decreased, not increased. Whether using environment variables or an argument with -w, whenI< not> in Batch mode actual terminal dimensions can never be exceeded."
+msgstr "I normalt visningsläge, när det används utan argument kommer \\*(We I<försöka> att formatera utmatningen med miljövariablerna COLUMNS= och LINES=, om de är satta. Med ett argument kan utmatningsbredden bara minskas, inte ökas. Oavsett om miljövariabler används eller ett argument till -w, när man I<inte> är i satsvis läge, kan de faktiska terminaldimensionerna aldrig överskridas."
+
+#. type: Plain text
+#: ../man/top.1:471
+msgid "\\*(NT Without the use of this \\*(CO, output width is always based on the terminal at which \\*(We was invoked whether or not in Batch mode."
+msgstr "\\*(NT utan användning av denna \\*(CO baseras utmatningsbredden alltid på terminalen i vilken \\*(We anropades oavsett om man kör i satsvis läge eller inte."
+
+#. type: TP
+#: ../man/top.1:472
+#, no-wrap
+msgid "-B<1>, B<--single-cpu-toggle>"
+msgstr "-B<1>, B<--single-cpu-toggle>"
+
+#. type: Plain text
+#: ../man/top.1:478
+msgid "Starts \\*(We with the last remembered Cpu States portion of the \\*(SA reversed. Either all \\*(Pu information will be displayed in a single line or each \\*(Pu will be displayed separately, depending on the state of the NUMA Node \\*(CT (`2')."
+msgstr "Startar \\*(We med den senast sparade Cpu-tillstÃ¥ndsdelen av \\*(SAt omvänt. Antingen kommer all \\*(Pu-information visas pÃ¥ en ensam rad eller sÃ¥ kommer varje \\*(Pu visas separat, beroende pÃ¥ tillstÃ¥ndet hos \\*(CTn för NUMA-nod (â€2â€)."
+
+#. type: Plain text
+#: ../man/top.1:480
+msgid "\\*(XC `1' and `2' \\*(CIs for additional information."
+msgstr "\\*(XC de interaktiva kommandona â€1†och â€2†för ytterligare information."
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:482
+#, no-wrap
+msgid "2. SUMMARY Display"
+msgstr "2. SAMMANFATTNINGSvisning"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:488
+msgid "Each of the following three areas are individually controlled through one or more \\*(CIs. \\*(XT 4b. SUMMARY AREA Commands for additional information regarding these provisions."
+msgstr "Var och en av de följande tre områdena styrs individellt genom en eller flera interaktiva kommandon. \\*(XT 4b. SAMMANFATTNINGSOMRÅDETS kommandon för ytterligare information avseende dessa möjligheter."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:490
+#, no-wrap
+msgid "2a. UPTIME and LOAD Averages"
+msgstr "2a. UPPETID och LASTgenomsnitts"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:493
+msgid "This portion consists of a single line containing:"
+msgstr "Detta avsnitt består av en enda rad som innehåller:"
+
+#. type: Plain text
+#: ../man/top.1:498
+#, no-wrap
+msgid ""
+" B<program> orB< window> name, depending on display mode\n"
+" current time and length of time since last boot\n"
+" total number of users\n"
+" system load avg over the last 1, 5 and 15 minutes\n"
+msgstr ""
+" B<program>- eller B<fönster>namn, beroende på visningsläge\n"
+" aktuell tid och tiden som gått sedan senaste start\n"
+" totalt antal användare\n"
+" systemlastsnitt över de senaste 1, 5 och 15 minuterna\n"
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:501
+#, no-wrap
+msgid "2b. TASK and CPU States"
+msgstr "2b. UPPGIFTER och CPU-tillstånd"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:506
+msgid "This portion consists of a minimum of two lines. In an SMP environment, additional lines can reflect individual \\*(PU state percentages."
+msgstr "Detta avsnitt består av minst två rader. I en SMP-miljö kan ytterligare rader avspegla enskilda \\*(PU-tillståndsprocentsatser."
+
+#. type: Plain text
+#: ../man/top.1:510
+msgid "Line 1 shows totalB< tasks> orB< threads>, depending on the state of the Threads-mode toggle. That total is further classified as:"
+msgstr "Rad 1 visar totalt antal B<uppgifter> eller B<trådar>, beroende på tillståndet hos Trådlägesväxeln. Den totalen är vidare klassificerad som:"
+
+#. type: Plain text
+#: ../man/top.1:512
+#, no-wrap
+msgid " running; sleeping; stopped; zombie\n"
+msgstr " körande; sovande; stoppade; zombier\n"
+
+#. type: Plain text
+#: ../man/top.1:516
+msgid "Line 2 shows \\*(PU state percentages based on the interval since the last refresh."
+msgstr "Rad 2 visar \\*(PU-tillståndsprocentsatser baserat på intervallet sedan den senaste uppdateringen."
+
+#. type: Plain text
+#: ../man/top.1:519
+msgid "As a default, percentages for these individual categories are displayed. Depending on your kernel version, the B<st> field may not be shown."
+msgstr "Som standard visas procentsatser för dessa individuella kategorier. Beroende på kärnversionen visas kanske inte fältet B<st>."
+
+#. type: Plain text
+#: ../man/top.1:528
+#, no-wrap
+msgid ""
+" B<us> : time running un-niced user processes\n"
+" B<sy> : time running kernel processes\n"
+" B<ni> : time running niced user processes\n"
+" B<id> : time spent in the kernel idle handler\n"
+" B<wa> : time waiting for I/O completion\n"
+" B<hi> : time spent servicing hardware interrupts\n"
+" B<si> : time spent servicing software interrupts\n"
+" B<st> : time stolen from this vm by the hypervisor\n"
+msgstr ""
+" B<an> : tid då icke nice:ade användarprocesser körts\n"
+" B<sy> : tid då kärnprocesser körts\n"
+" B<ni> : tid då nice:ade användarprocesser körts\n"
+" B<ia> : tid tillbringad i kärnans inaktivetetshanterare\n"
+" B<vä> : tid väntande på fullgord I/O\n"
+" B<ha> : tid tillbringad med att betjäna hårdvaruavbrott\n"
+" B<ma> : tid tillbringat med att betjäna mjukvaruavbrott\n"
+" B<st> : tid stulen från denna vm av hypervisorn\n"
+
+#. type: Plain text
+#: ../man/top.1:532
+msgid "The `sy' value above also reflects the time running a virtual \\*(Pu for guest operating systems, including those that have been niced."
+msgstr "Värdet â€sy†ovan avspeglar även tiden som används till att köra en virtuell \\*(Pu för gästoperativsystem, inklusive dem med ett nice-värde."
+
+#. type: Plain text
+#: ../man/top.1:536
+msgid "Beyond the first tasks/threads line, there are alternate \\*(PU display modes available via the 4-way `t' \\*(CT. They show an abbreviated summary consisting of these elements:"
+msgstr "Utöver den första uppgifts-/trÃ¥draden finns det alternativa \\*(PU-visningslägen tillgängliga via 4-vägs\\*(CTn â€tâ€. De visar en förkortad sammanfattning som bestÃ¥r av dessa element:"
+
+#. type: Plain text
+#: ../man/top.1:539
+#, no-wrap
+msgid ""
+" a b c d\n"
+" %Cpu(s): B<75.0>/25.0 B<100>[ ... ]\n"
+msgstr ""
+" a b c d\n"
+" %Cpu/er: B<75.0>/25.0 B<100>[ … ]\n"
+
+#. type: Plain text
+#: ../man/top.1:546
+msgid "Where: a) is the `user' (us + ni) percentage; b) is the `system' (sy + hi + si + guests) percentage; c) is the total percentage; and d) is one of two visual graphs of those representations. Such graphs also reflect separate `user' and `system' portions."
+msgstr "Där: a) är â€användarens†(an + ni) procent; b) är â€systemets†(wy + ha + ma + gäster) procent; c) är den totala procenten; och d) är en av tvÃ¥ visuella grafer av dessa representationer. SÃ¥dana grafer avspeglar även separata â€användarâ€- och â€systemâ€-delar."
+
+#. type: Plain text
+#: ../man/top.1:551
+msgid "If the `4' \\*(CT is used to yield more than two cpus per line, results will be further abridged eliminating the a) and b) elements. However, that information is still reflected in the graph itself assuming color is active or, if not, bars vs. blocks are being shown."
+msgstr "Om \\*(CTn â€4†används för att ge mer än tvÃ¥ cpu:er per rad kommer resultaten ytterligare förkortas och eliminera element a) och b). Dock avspeglas den informationen fortfarande i själva grafen under antagandet att färg är aktivt eller, om inte, visas streck eller block."
+
+#. type: Plain text
+#: ../man/top.1:554
+msgid "\\*(XT 4b. SUMMARY AREA Commands for additional information on the `t' and `4' \\*(CTs."
+msgstr "\\*(XT 4b. SAMMANFATTNINGSOMRÃ…DETS kommandon för ytterligare information om kommandoradsflaggorna â€t†och â€4â€."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:556
+#, no-wrap
+msgid "2c. MEMORY Usage"
+msgstr "2c. MINNESanvändning"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:561
+msgid "This portion consists of two lines which may express values in kibibytes (KiB) through exbibytes (EiB) depending on the scaling factor enforced with the `E' \\*(CI. The /proc/meminfo source fields are shown in parenthesis."
+msgstr "Detta avsnitt bestÃ¥r av tvÃ¥ rader som kan uttrycka värden i kibibyte (KiB) till exbibyte (EiB) beroende pÃ¥ skalfaktorn med det interaktiva kommandot â€Eâ€. Källfälten frÃ¥n filen /proc/meminfo visas i parenteser."
+
+#. type: Plain text
+#: ../man/top.1:563
+msgid "Line 1 reflects \\*(MP, classified as:"
+msgstr "Rad 1 avspeglar \\*(MP, klassificerat som:"
+
+#. type: Plain text
+#: ../man/top.1:568
+#, no-wrap
+msgid ""
+" total ( MemTotal )\n"
+" free ( MemFree )\n"
+" used ( MemTotal - MemAvailable )\n"
+" buff/cache ( Buffers + Cached + SReclaimable )\n"
+msgstr ""
+" totalt ( MemTotal )\n"
+" fritt ( MemFree )\n"
+" anv. ( MemTotal - MemAvailable )\n"
+" buff/cache ( Buffers + Cached + SReclaimable )\n"
+
+#. type: Plain text
+#: ../man/top.1:571
+msgid "Line 2 reflects mostly \\*(MV, classified as:"
+msgstr "Rad 2 avspeglar huvudsakligen \\*(MV, klassificerat som:"
+
+#. type: Plain text
+#: ../man/top.1:576
+#, no-wrap
+msgid ""
+" total ( SwapTotal )\n"
+" free ( SwapFree )\n"
+" used ( SwapTotal - SwapFree )\n"
+" avail ( MemAvailable, which is \\*(MP )\n"
+msgstr ""
+" totalt ( SwapTotal )\n"
+" fritt ( SwapFree )\n"
+" anv. ( SwapTotal - SwapFree )\n"
+" tillg ( MemAvailable, vilket är \\*(MP )\n"
+
+#. type: Plain text
+#: ../man/top.1:584
+msgid "The B<avail> number on line 2 is an estimation of \\*(MP available for starting new applications, without swapping. Unlike the B<free> field, it attempts to account for readily reclaimable page cache and memory slabs. It is available on kernels 3.14, emulated on kernels 2.6.27+, otherwise the same as B<free>."
+msgstr "Värdet B<tillg> på rad 2 är en uppskattning av \\*(MP tillgängligt för att starta nya program, utan växling. Till skillnad mot fältet B<fritt> försöker det att ta hänsyn till sid-cache och minnesskivor som kan begäras tillbaka direkt. Det är tillgängligt i kärna 3.14, emulerad med kärnor 2.6.27+, och annars detsamma som B<fritt>."
+
+#. type: Plain text
+#: ../man/top.1:587
+msgid "In the alternate memory display modes, two abbreviated summary lines are shown consisting of these elements:"
+msgstr "I de alternativa minnesvisningslägena visas två förkortade sammanfattningsrader som innehåler dessa elment:"
+
+#. type: Plain text
+#: ../man/top.1:591
+#, no-wrap
+msgid ""
+" a b c\n"
+" GiB Mem : B<18.7>/15.738 [ ... ]\n"
+" GiB Swap: B< 0.0>/7.999 [ ... ]\n"
+msgstr ""
+" a b c\n"
+" GiB Minn: B<18.7>/15.738 [ … ]\n"
+" GiB Växl: B< 0.0>/7.999 [ … ]\n"
+
+#. type: Plain text
+#: ../man/top.1:595
+msgid "Where: a) is the percentage used; b) is the total available; and c) is one of two visual graphs of those representations."
+msgstr "Där: a) är procentsatsen använt; b) är det totalt tillgängliga; och c) är en av två visuella grafer över dessa representationer."
+
+#. type: Plain text
+#: ../man/top.1:602
+msgid "In the case of \\*(MP, the percentage represents the B<total> minus the estimated B<avail> noted above. The `Mem' graph itself is divided between the non-cached portion of B<used> and any remaining memory not otherwise accounted for by B<avail>. \\*(XT 4b. SUMMARY AREA Commands and the `m' command for additional information on that special 4-way toggle."
+msgstr "I fallet \\*(MP representerar procentsatsen det B<totala> minus det uppskattade B<tillgängliga> noterat ovan. Grafen â€Minn†själv är delad mellan den icke-cachade delen av B<använt> och det Ã¥terstÃ¥ende minnet som inte i övrigt räknas in av B<tillgängligt>. \\*(XT 4b. SAMMANFATTNINGSOMRÃ…DETS kommandon och kommandot â€m†för ytterligare information om denna speciella 4-vägsväxel."
+
+#. type: Plain text
+#: ../man/top.1:604
+msgid "This table may help in interpreting the scaled values displayed:"
+msgstr "Denna tabell kan vara till hjälp i att tolka de skalade värdena som visas:"
+
+#. type: Plain text
+#: ../man/top.1:611
+#, no-wrap
+msgid ""
+" KiB = kibibyte = 1024 bytes\n"
+" MiB = mebibyte = 1024 KiB = 1,048,576 bytes\n"
+" GiB = gibibyte = 1024 MiB = 1,073,741,824 bytes\n"
+" TiB = tebibyte = 1024 GiB = 1,099,511,627,776 bytes\n"
+" PiB = pebibyte = 1024 TiB = 1,125,899,906,842,624 bytes\n"
+" EiB = exbibyte = 1024 PiB = 1,152,921,504,606,846,976 bytes\n"
+msgstr ""
+" KiB = kibibyte = 1024 byte\n"
+" MiB = mebibyte = 1024 KiB = 1 048 576 byte\n"
+" GiB = gibibyte = 1024 MiB = 1 073 741 824 byte\n"
+" TiB = tebibyte = 1024 GiB = 1 099 511 627 776 byte\n"
+" PiB = pebibyte = 1024 TiB = 1 125 899 906 842 624 byte\n"
+" EiB = exbibyte = 1024 PiB = 1 152 921 504 606 846 976 byte\n"
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:614
+#, no-wrap
+msgid "3. FIELDS / Columns"
+msgstr "3. FÄLT / kolumner"
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:617
+#, no-wrap
+msgid "3a. DESCRIPTIONS of Fields"
+msgstr "3a. BESKRIVNING av fält"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:623
+msgid "Listed below are \\*(We's available process fields (columns). They are shown in strict ascii alphabetical order. You may customize their position and whether or not they are displayable with the `f' (Fields Management) \\*(CI."
+msgstr "Listat nedan är \\*(Wes tillgängliga processfält (kolumner). De visas i strikt ascii-alfabetisk ordning efter deras engelska namn. Man kan anpassa deras position och huruvida de visas eller inte med det interaktiva kommandot â€f†(Fälthantering)."
+
+#. type: Plain text
+#: ../man/top.1:628
+msgid "Any field is selectable as the sort field, and you control whether they are sorted high-to-low or low-to-high. For additional information on sort provisions \\*(Xt 4c. TASK AREA Commands, SORTING."
+msgstr "Alla fält kan väljas som sorteringsfält, och man kan styra huruvida de soteras högt-till-lågt eller lågt-till-högt. För ytterligare information om sorteringsmöjligheter \\*(Xt 4c. UPPGIFTSOMRÅDETS kommandon, SORTERING."
+
+#. type: Plain text
+#: ../man/top.1:634
+msgid "The fields related to \\*(MP or \\*(MV reference `(KiB)' which is the unsuffixed display mode. Such fields may, however, be scaled from KiB through PiB. That scaling is influenced via the `e' \\*(CI or established for startup through a build option."
+msgstr "Fälten relaterade till \\*(MP eller \\*(MV refererar â€(KiB)†vilket är visningsläget utan suffix. SÃ¥dana fält kan dock skalas frÃ¥n KiB till PiB. Skalningen styrs via det interaktiva kommandot â€e†eller etableras vid uppstart via en byggflagga."
+
+#. type: TP
+#: ../man/top.1:635
+#, no-wrap
+msgid "B<%CPU \\*(Em \\*(PU Usage >"
+msgstr "B<%CPU \\*(Em \\*(PU-användning >"
+
+#. type: Plain text
+#: ../man/top.1:639
+msgid "The task's share of the elapsed \\*(PU time since the last screen update, expressed as a percentage of total \\*(PU time."
+msgstr "Uppgiftens andel av den förlupna \\*(PU-tiden sedan den senaste uppdateringen, uttryckt som en procentsats av den totala \\*(PU-tiden."
+
+#. type: Plain text
+#: ../man/top.1:644
+msgid "In a true SMP environment, if a process is multi-threaded and \\*(We is I<not> operating in Threads mode, amounts greater than 100% may be reported. You toggle Threads mode with the `H' \\*(CI."
+msgstr "I en miljö med sann SMP, om en process är multitrÃ¥dad och \\*(We I<inte> arbetar i trÃ¥dläge, kan andelar större än 100 % rapporteras. Man kan växla trÃ¥dläge med det interaktiva kommandog â€Hâ€."
+
+#. type: Plain text
+#: ../man/top.1:649
+msgid "Also for multi-processor environments, if Irix mode is \\*F, \\*(We will operate in Solaris mode where a task's \\*(Pu usage will be divided by the total number of \\*(PUs. You toggle Irix/Solaris modes with the `I' \\*(CI."
+msgstr "För multiprocessormiljöer gäller även att, om Irix-läget är \\*F, kommer \\*(We köra i Solaris-läge där en uppgifts \\*(Pu-användning delas med det totala antalet \\*(PU:er. Man växlar Irix-/Solaris-lägen med det interaktiva kommandot â€Iâ€."
+
+#. type: Plain text
+#: ../man/top.1:655
+msgid "\\*(NT When running in forest view mode (`V') with children collapsed (`v'), this field will also include the \\*(PU time of those unseen children. \\*(XT 4c. TASK AREA Commands, CONTENT for more information regarding the `V' and `v' toggles."
+msgstr "\\*(NT när man kör i skogsvyläge (â€Vâ€) med barn infällda (â€vâ€) kommer detta fält även inkludera \\*(PU-tiden för dessa osynliga barn. \\*(XT 4c. UPPGIFTSOMRÃ…DETS kommandon, INNEHÃ…LL för mer information om växlarna â€V†och â€vâ€."
+
+#. type: TP
+#: ../man/top.1:656
+#, no-wrap
+msgid "B<%CUC \\*(Em \\*(PU Utilization >"
+msgstr "B<%CUB \\*(Em \\*(PU-utnyttjande >"
+
+#. type: Plain text
+#: ../man/top.1:660
+msgid "This field is identical to %CUU below, except the percentage also reflects reaped child processes."
+msgstr "Detta fält är identiskt med %CUA nedan, förutom att procentsatsen även avspeglar skördade barnprocesser."
+
+#. type: TP
+#: ../man/top.1:661
+#, no-wrap
+msgid "B<%CUU \\*(Em \\*(PU Utilization >"
+msgstr "B<%CUA \\*(Em \\*(PU-utnyttjande >"
+
+#. type: Plain text
+#: ../man/top.1:665
+msgid "A task's total \\*(PU usage divided by its elapsed running time, expressed as a percentage."
+msgstr "En uppgifts totala \\*(PU-användning dividerat med den gångna körtiden, uttryckt som en procentsats."
+
+#. type: Plain text
+#: ../man/top.1:670
+msgid "If a process currently displays high \\*(PU usage, this field can help determine if such behavior is normal. Conversely, if a process has low \\*(PU usage currently, %CUU may reflect historically higher demands over its lifetime."
+msgstr "Om en process för närvarande visar högt \\*(PU-användande kan detta fält hjälpa till att avgöra om sådant beteende är normalt. Omvänt, om en proces har lågt \\*(PU-användande för närvarande kan %CUA avspegla högre historiska behov över dess livstid."
+
+#. type: TP
+#: ../man/top.1:671
+#, no-wrap
+msgid "B<%MEM \\*(Em Memory Usage (RES) >"
+msgstr "B<%MIN \\*(Em Minnesanvändning (RES) >"
+
+#. type: Plain text
+#: ../man/top.1:674
+msgid "A task's currently resident share of available \\*(MP."
+msgstr "En uppgifts aktuella residenta andel av tillgängligt \\*(MP."
+
+#. type: Plain text
+#: ../man/top.1:676 ../man/top.1:737 ../man/top.1:770 ../man/top.1:943
+#: ../man/top.1:1004 ../man/top.1:1057 ../man/top.1:1102 ../man/top.1:1122
+msgid "\\*(XX."
+msgstr "\\*(XX."
+
+#. type: TP
+#: ../man/top.1:677
+#, no-wrap
+msgid "B<AGID \\*(Em Autogroup Identifier >"
+msgstr "B<AGID \\*(Em Autogruppidentifierare >"
+
+#. type: Plain text
+#: ../man/top.1:682
+msgid "The autogroup identifier associated with a process. This feature operates in conjunction with the CFS scheduler to improve interactive desktop performance."
+msgstr "Autogruppidentifieraren som hör ihop med en process. Denna funktion fungerar tillsammans med CFS-schemaläggaren för att förbättra interaktiv skrivbordsprestanda."
+
+#. type: Plain text
+#: ../man/top.1:691
+msgid "When /proc/sys/kernel/sched_autogroup_enabled is set, a new autogroup is created with each new session (\\*(Xa SID). All subsequently forked processes in that session inherit membership in this autogroup. The kernel then attempts to equalize distribution of CPU cycles across such groups. Thus, an autogroup with many \\*(PU intensive processes (e.g make -j) will not dominate an autogroup with only one or two processes."
+msgstr "När /proc/sys/kernel/sched_autogroup_enabled är satt skapas en ny autogrupp för varje ny session (\\*(Xa SID). Alla processer som avgrenats därefter i den sessionen ärver medlemskapet i denna autogrupp. Kärnan försöker likafördela CPU-sykler över sådana grupper. Alltså, en autogrupp med många \\*(PU-intensiva processer (t.ex. make -j) kommer inte att dominera en autogrupp med endast en eller två processer."
+
+#. type: Plain text
+#: ../man/top.1:693
+msgid "When -1 is displayed it means this information is not available."
+msgstr "När -1 visas betyder det att denna information inte är tillgänglig."
+
+#. type: TP
+#: ../man/top.1:694
+#, no-wrap
+msgid "B<AGNI \\*(Em Autogroup Nice Value >"
+msgstr "B<AGNI \\*(Em Autogruppens nice-värde >"
+
+#. type: Plain text
+#: ../man/top.1:700
+msgid "The autogroup nice value which affects scheduling of all processes in that group. A negative nice value means higher priority, whereas a positive nice value means lower priority."
+msgstr "Autogruppens nice-värde vilket påverkar schemaläggningen för alla processer e den gruppen. Ett negativt nice-värde betyder högre prioritet, medan ett positivt nice-värde betyder lägre prioritet."
+
+#. type: TP
+#: ../man/top.1:701
+#, no-wrap
+msgid "B<CGNAME \\*(Em Control Group Name >"
+msgstr "B<KGNAMN \\*(Em Styrgruppsnamn >"
+
+#. type: Plain text
+#: ../man/top.1:705
+msgid "The name of the control group to which a process belongs, or `-' if not applicable for that process."
+msgstr "Namnet pÃ¥ kontrollgruppen vilken en process hör, eller â€-†om inte tillämpligt för den processen."
+
+#. type: Plain text
+#: ../man/top.1:709
+msgid "This will typically be the last entry in the full list of control groups as shown under the next heading (CGROUPS). And as is true there, this field is also variable width."
+msgstr "Detta kommer typiskt vara den sista posten i den fullständiga listan av kontrollgrupper som visas under nästa rubrik (KGRUPPR). Och liksom gäller där, har detta fält variabel bredd."
+
+#. type: TP
+#: ../man/top.1:710
+#, no-wrap
+msgid "B<CGROUPS \\*(Em Control Groups >"
+msgstr "B<KGRUPPR \\*(Em Styrgrupper >"
+
+#. type: Plain text
+#: ../man/top.1:714
+msgid "The names of the control group(s) to which a process belongs, or `-' if not applicable for that process."
+msgstr "Namnen pÃ¥ kontrollgrupperna till vilken en process hör, eller â€-†om inte tillämpligt för den processen."
+
+#. type: Plain text
+#: ../man/top.1:719
+msgid "Control Groups provide for allocating resources (cpu, memory, network bandwidth, etc.) among installation-defined groups of processes. They enable fine-grained control over allocating, denying, prioritizing, managing and monitoring those resources."
+msgstr "Kontrollgrupper gör att man kan allokera resurser (cpu, minne, nätverksbandbredd, etc.) bland installationsdefinierade grupper av processer. De möjliggör finkorning styrning av allokeringen, nekandet, prioriteringen, hanteringen och övervakningen av dessa resurser."
+
+#. type: Plain text
+#: ../man/top.1:723
+msgid "Many different hierarchies of cgroups can exist simultaneously on a system and each hierarchy is attached to one or more subsystems. A subsystem represents a single resource."
+msgstr "Många olika hierarkier av kgrupper kan finnas samtidigt på ett system och varje hierarki är kopplat till ett eller flera subsystem. Ett subsystem representerar en ensam resurs."
+
+#. type: Plain text
+#: ../man/top.1:730
+msgid "\\*(NT The CGROUPS field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum \\*(WX characters). Even so, such variable width fields could still suffer truncation. \\*(XT 5c. SCROLLING a Window for additional information on accessing any truncated data."
+msgstr "\\*(NT Fältet KGRUPPR, till skillnad mot de flesta kolumner, har inte fast bredd. När det visas kommer det och alla andra kolumner med variabel bredd allokeras all återstående skärmbredd (upp till ett maximum \\*(WX tecken). Trots det kan sådana fält med variabel bredd huggas av. \\*(XT 5c. RULLA ett fönster för ytterligare information om hur man kommer åt avhuggen data."
+
+#. type: TP
+#: ../man/top.1:731
+#, no-wrap
+msgid "B<CODE \\*(Em Code Size (KiB) >"
+msgstr "B<KOD \\*(Em Kodstorlek (KiB) >"
+
+#. type: Plain text
+#: ../man/top.1:735
+msgid "The amount of \\*(MP currently devoted to executable code, also known as the Text Resident Set size or TRS."
+msgstr "Mängden \\*(MP som just nu ägnat åt körbar kod, även känt som den residenta textmängdens storlek eller TRS."
+
+#. type: TP
+#: ../man/top.1:738
+#, no-wrap
+msgid "B<COMMAND \\*(Em Command Name> or CommandB< Line >"
+msgstr "B<KOMMANDO \\*(Em Kommandonamn> eller kommandoB<rad >"
+
+#. type: Plain text
+#: ../man/top.1:744
+msgid "Display the command line used to start a task or the name of the associated program. You toggle between commandI< line> andI< name> with `c', which is both a \\*(CO and an \\*(CI."
+msgstr "Visa kommandoraden som användes för att starta en uppgift eller namnet pÃ¥ det tillhörade programmet. Man växlar mellan kommandoI<rad> och I<namn> med â€câ€, vilket är bÃ¥de en \\*(CO och ett \\*(CI."
+
+#. type: Plain text
+#: ../man/top.1:749
+#, no-wrap
+msgid ""
+"When you've chosen to display command lines, processes without a command\n"
+"line (like kernel threads) will be shown with only the program name in\n"
+"brackets, as in this example:\n"
+" [kthreadd]\n"
+msgstr ""
+"När man har valt att visa kommandorader kommer processer utan en kommandorad\n"
+"som kärntrådar) visas med endast programnamnet i hakparentesr, som i detta\n"
+"exempel:\n"
+" [kthreadd]\n"
+
+#. type: Plain text
+#: ../man/top.1:752
+msgid "This field may also be impacted by the forest view display mode. \\*(XC `V' \\*(CI for additional information regarding that mode."
+msgstr "Detta fält kan även pÃ¥verkas av visningsläget skogsvy. \\*(XC det interaktiva kommandot â€V†för ytterligare information om det läget."
+
+#. type: Plain text
+#: ../man/top.1:761
+msgid "\\*(NT The COMMAND field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum \\*(WX characters). Even so, such variable width fields could still suffer truncation. This is especially true for this field when command lines are being displayed (the `c' \\*(CI.) \\*(XT 5c. SCROLLING a Window for additional information on accessing any truncated data."
+msgstr "\\*(NT Fältet KOMMANDO, till skillnad mot de flesta kolumner, har inte fast bredd. När det visas kommer det och alla andra kolumner med variabel bredd allokeras all återstående skärmbredd (upp till ett maximum \\*(WX tecken). Trots det kan sådana fält med variabel bredd huggas av. Detta gäller särskilt för detta fält när kommandorader visas (det interaktiva kommandot \\*(CI). \\*(XT 5c. RULLA ett fönster för ytterligare information om hur man kommer åt avhuggen data."
+
+#. type: TP
+#: ../man/top.1:762
+#, no-wrap
+msgid "B<DATA \\*(Em Data + Stack Size (KiB) >"
+msgstr "B<DATA \\*(Em Data- + stackstorlek (KiB) >"
+
+#. type: Plain text
+#: ../man/top.1:768
+msgid "The amount of private memory I<reserved> by a process. It is also known as the Data Resident Set or DRS. Such memory may not yet be mapped to \\*(MP (RES) but will always be included in the \\*(MV (VIRT) amount."
+msgstr "Mängden privat minne I<reserverat> av en process. Detta är även känt även känt som den residenta datamängdens storlek eller DRS. Sådant minne behöver ännu inte vara mappat till \\*(MP (RES) men kommer alltid att inkluderas i mängden \\*(MV (VIRT)."
+
+#. type: TP
+#: ../man/top.1:771
+#, no-wrap
+msgid "B<ELAPSED \\*(Em Elapsed Running Time>"
+msgstr "B<FÖRLUP. \\*(Em Förlupen körtid>"
+
+#. type: Plain text
+#: ../man/top.1:775
+msgid "The length of time since a process was started. Thus, the most recently started task will display the smallest time interval."
+msgstr "Tidsåtgången sedan en process startades. Alltså, den senast startade uppgiften kommer visa det minsta tidsintervallet."
+
+#. type: Plain text
+#: ../man/top.1:780
+msgid "The value will be expressed as `HH,MM' (hours,minutes) but is subject to additional scaling if the interval becomes too great to fit column width. At that point it will be scaled to `DD+HH' (days+hours) and possibly beyond."
+msgstr "Värdet kommer uttryckas som â€HH,MM†(timmar,minuter) men är föremÃ¥l för ytterligare skalning om intervallet blir för stort för att passa kolumnbredden. Vid den tidpunkten kommer det att skalas till 'DD+HH' (dagar+timmar) och möjligen därutöver."
+
+#. type: TP
+#: ../man/top.1:781
+#, no-wrap
+msgid "B<ENVIRON \\*(Em Environment variables >"
+msgstr "B<MILJÖ \\*(Em Milöjövariabler >"
+
+#. type: Plain text
+#: ../man/top.1:787
+msgid "Display all of the environment variables, if any, as seen by the respective processes. These variables will be displayed in their raw native order, not the sorted order you are accustomed to seeing with an unqualified `set'."
+msgstr "Visa alla miljövariablerna, om nÃ¥gra, som ses av respektive processer. Dessa variabler kommer visas sin rÃ¥a ordning, inte den sorterade ordning man är van vid att se med ett â€set†utan argument."
+
+#. type: Plain text
+#: ../man/top.1:795
+msgid "\\*(NT The ENVIRON field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum \\*(WX characters). Even so, such variable width fields could still suffer truncation. This is especially true for this field. \\*(XT 5c. SCROLLING a Window for additional information on accessing any truncated data."
+msgstr "\\*(NT Fältet MILJÖ, till skillnad mot de flesta kolumner, har inte fast bredd. När det visas kommer det och alla andra kolumner med variabel bredd allokeras all återstående skärmbredd (upp till ett maximum \\*(WX tecken). Trots det kan sådana fält med variabel bredd huggas av. Detta gäller särskilt för detta fält. \\*(XT 5c. RULLA ett fönster för ytterligare information om hur man kommer åt avhuggen data."
+
+#. type: TP
+#: ../man/top.1:796
+#, no-wrap
+msgid "B<EXE \\*(Em Executable Path >"
+msgstr "B<KÖRBAR \\*(Em Körbars sökväg >"
+
+#. type: Plain text
+#: ../man/top.1:800
+msgid "Where available, this is the full path to the executable, including the program name."
+msgstr "Där det är tillgängligt är detta den fullständiga sökvägen till den körbara, inklusive programnamnet."
+
+#. type: Plain text
+#: ../man/top.1:804
+msgid "\\*(NT The EXE field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum \\*(WX characters)."
+msgstr "\\*(NT Fältet KÖRBAR har, till skillnad mot de flesta kolumner, inte fast bredd. När det visas kommer det plus eventuella andra kolumner med variabel bredd allokeras all återstående skärmbredd (upp till de maximala \\*(WX tecknen)."
+
+#. type: TP
+#: ../man/top.1:805
+#, no-wrap
+msgid "B<Flags \\*(Em Task Flags >"
+msgstr "B<Flaggor \\*(Em Uppgiftens flaggor >"
+
+#. type: Plain text
+#: ../man/top.1:810
+msgid "This column represents the task's current scheduling flags which are expressed in hexadecimal notation and with zeros suppressed. These flags are officially documented in E<lt>linux/sched.hE<gt>."
+msgstr "Denna kolumn representerar uppgiftens aktuella schemaläggningsflaggor vilka uttrycks i hexadecimal notation och med nollor utelämnade. Dessa flaggor är officiellt dokumenterade i E<lt>linux/sched.hE<gt>."
+
+#. type: TP
+#: ../man/top.1:811
+#, no-wrap
+msgid "B<GID \\*(Em Group Id >"
+msgstr "B<GID \\*(Em Grupp-Id >"
+
+#. type: Plain text
+#: ../man/top.1:814
+msgid "TheI< effective> group ID."
+msgstr "Den I<effektiva> gruppens ID."
+
+#. type: TP
+#: ../man/top.1:815
+#, no-wrap
+msgid "B<GROUP \\*(Em Group Name >"
+msgstr "B<GRUPP \\*(Em Gruppnamn >"
+
+#. type: Plain text
+#: ../man/top.1:818
+msgid "TheI< effective> group name."
+msgstr "Den I<effektiva> gruppens namn."
+
+#. type: TP
+#: ../man/top.1:819
+#, no-wrap
+msgid "B<LOGID \\*(Em Login User Id >"
+msgstr "B<LOGID \\*(Em Inloggningsanvändar-Id >"
+
+#. type: Plain text
+#: ../man/top.1:823
+msgid "The user ID used atI< login>. When -1 is displayed it means this information is not available."
+msgstr "Användar-ID:t som användes vid I<inloggning>. När -1 visas betyder det att denna informaion inte är tillgänglig."
+
+#. type: TP
+#: ../man/top.1:824
+#, no-wrap
+msgid "B<LXC \\*(Em Lxc Container Name >"
+msgstr "B<LXC \\*(Em Lxc-behållarnamn >"
+
+#. type: Plain text
+#: ../man/top.1:828
+msgid "The name of the lxc container within which a task is running. If a process is not running inside a container, a dash (`-') will be shown."
+msgstr "Namnet pÃ¥ den lxc-behÃ¥llare i vilken uppgiften kör. Om en process inte kör inuti en behÃ¥llare kommer ett streck (â€-â€) visas."
+
+#. type: TP
+#: ../man/top.1:829
+#, no-wrap
+msgid "B<NI \\*(Em Nice Value >"
+msgstr "B<NI \\*(Em Nice-värde >"
+
+#. type: Plain text
+#: ../man/top.1:836
+msgid "The nice value of the task. A negative nice value means higher priority, whereas a positive nice value means lower priority. Zero in this field simply means priority will not be adjusted in determining a task's dispatch-ability."
+msgstr "Nice-värdet på uppgiften. Ett negativt nice-värde betyder högre prioritet, medan ett positivt nice-värde betyder lägre prioritet. Noll i detta fält betyder helt enkelt att prioriteten inte kommer justeras när en uppgifts körbarhet bestäms."
+
+#. type: Plain text
+#: ../man/top.1:840
+msgid "\\*(NT This value only affects scheduling priority relative to other processes in the same autogroup. \\*(XC `AGID' and `AGNI' fields for additional information on autogroups."
+msgstr "\\*(NT Detta värde pÃ¥verkar bara schemaläggningsprioritet relativt mot andra processer i samma autogrupp. \\*(XC fälten â€AGID†och â€AGNI†för ytterligare information om autogrupper."
+
+#. type: TP
+#: ../man/top.1:841
+#, no-wrap
+msgid "B<NU \\*(Em Last known NUMA node >"
+msgstr "B<NU \\*(Em Senast kända NUMA-nod >"
+
+#. type: Plain text
+#: ../man/top.1:845
+msgid "A number representing the NUMA node associated with the last used processor (`P'). When -1 is displayed it means that NUMA information is not available."
+msgstr "Ett tal representerar NUMA-noden associerad med den senast använda processorn (â€Pâ€). När -1 visas betyder det att NUMA-information inte är tillgänglig."
+
+#. type: Plain text
+#: ../man/top.1:847
+msgid "\\*(XC `2' and `3' \\*(CIs for additional NUMA provisions affecting the \\*(SA."
+msgstr "\\*(XC de interaktiva kommandona â€2†och â€3†för ytterligare NUMA-möjligheter som pÃ¥verkar \\*(SAt."
+
+#. type: TP
+#: ../man/top.1:848
+#, no-wrap
+msgid "B<OOMa \\*(Em Out of Memory Adjustment Factor >"
+msgstr "B<OOMj \\*(Em Justeringsfaktor för slut på minnet >"
+
+#. type: Plain text
+#: ../man/top.1:853
+msgid "The value, ranging from -1000 to +1000, added to the current out of memory score (OOMs) which is then used to determine which task to kill when memory is exhausted."
+msgstr "Värdet, som går från -1000 till +1000, läggs till det aktuella slut-på-minnet-värdet (OOMv) vilket sedan används för att avgöra vilken uppgift som skall dödas när minnet är uttömt."
+
+#. type: TP
+#: ../man/top.1:854
+#, no-wrap
+msgid "B<OOMs \\*(Em Out of Memory Score >"
+msgstr "B<OOMv \\*(Em Slut på minnet-värde >"
+
+#. type: Plain text
+#: ../man/top.1:859
+msgid "The value, ranging from 0 to +1000, used to select task(s) to kill when memory is exhausted. Zero translates to `never kill' whereas 1000 means `always kill'."
+msgstr "Detta värde, som gÃ¥r frÃ¥n 0 till +1000, används för att välja uppgift(er) att döda när minnet är uttömt. Noll översätts till â€döda aldrig†medan 1000 betyder â€döda alltidâ€."
+
+#. type: TP
+#: ../man/top.1:860
+#, no-wrap
+msgid "B<P \\*(Em Last used \\*(PU (SMP) >"
+msgstr "B<P \\*(Em Senast använd \\*(PU (SMP) >"
+
+#. type: Plain text
+#: ../man/top.1:868
+msgid "A number representing the last used processor. In a true SMP environment this will likely change frequently since the kernel intentionally uses weak affinity. Also, the very act of running \\*(We may break this weak affinity and cause more processes to change \\*(PUs more often (because of the extra demand for \\*(Pu time)."
+msgstr "Ett nummer som representerar den senast använda processorn. I en sann SMP-miljö kommer detta sannolikt ändras ofta eftersom kärnan avsiktligt använder svag affinitet. Dessutom kan själva körandet av \\*(We bryta denna svaga affinitet få fler processer att byta \\*(PU oftare (på grund av den ökade efterfrågan på \\*(PU-tid)."
+
+#. type: TP
+#: ../man/top.1:869
+#, no-wrap
+msgid "B<PGRP \\*(Em Process Group Id >"
+msgstr "B<PGRP \\*(Em Processgrupps-Id >"
+
+#. type: Plain text
+#: ../man/top.1:878
+msgid "Every process is member of a unique process group which is used for distribution of signals and by terminals to arbitrate requests for their input and output. When a process is created (forked), it becomes a member of the process group of its parent. By convention, this value equals the process ID (\\*(Xa PID) of the first member of a process group, called the process group leader."
+msgstr "Varje process är medlem av en unik processgrupp vilken används för att distribuera signaler och av terminaler för att skilja begäranden som sin indata och utdata. När en process skapas (grenas) blir den en medlem i sin förälders processgrupp. Enligt konvention är detta värde lika med process-ID (\\*(Xa PID) för den första medlemmen i processgruppen, kallad processgruppens ledare."
+
+#. type: TP
+#: ../man/top.1:879
+#, no-wrap
+msgid "B<PID \\*(Em Process Id >"
+msgstr "B<PID \\*(Em Process-Id >"
+
+#. type: Plain text
+#: ../man/top.1:884
+msgid "The task's unique process ID, which periodically wraps, though never restarting at zero. In kernel terms, it is a dispatchable entity defined by a task_struct."
+msgstr "En uppgifts unika process-ID, vilket periodiskt slår runt, men aldrig startar om på noll. I kärnans termer är det en körbar enhet definerad av en task_struct."
+
+#. type: Plain text
+#: ../man/top.1:889
+msgid "This value may also be used as: a process group ID (\\*(Xa PGRP); a session ID for the session leader (\\*(Xa SID); a thread group ID for the thread group leader (\\*(Xa TGID); and a TTY process group ID for the process group leader (\\*(Xa TPGID)."
+msgstr "Detta värde kan även användas som: en processgrupps-ID (\\*(Xa PGRP); en sessions-ID för sessionsledaren (\\*(Xa SID); en trådgrupps-ID för trådgruppsledaren ((\\*(Xa TGID); och en TTY-processgrupps-iID för processgruppsledaren (\\*(Xa TPGID)."
+
+#. type: TP
+#: ../man/top.1:890
+#, no-wrap
+msgid "B<PPID \\*(Em Parent Process Id >"
+msgstr "B<FPID \\*(Em Föräldraprocess-Id >"
+
+#. type: Plain text
+#: ../man/top.1:893
+msgid "The process ID (pid) of a task's parent."
+msgstr "Uppgiftens förälders process-ID (pid)."
+
+#. type: TP
+#: ../man/top.1:894
+#, no-wrap
+msgid "B<PR \\*(Em Priority >"
+msgstr "B<PR \\*(Em Prioritet >"
+
+#. type: Plain text
+#: ../man/top.1:899
+msgid "The scheduling priority of the task. If you see `rt' in this field, it means the task is running under real time scheduling priority."
+msgstr "Uppgiftens schemaläggningsprioritet. Om man ser â€rt†i detta fält betyder det att uppgiften kör under schemaläggningprioritet för realtid."
+
+#. type: Plain text
+#: ../man/top.1:903
+msgid "Under linux, real time priority is somewhat misleading since traditionally the operating itself was not preemptible. And while the 2.6 kernel can be made mostly preemptible, it is not always so."
+msgstr "Under linux är realtidsprioritet något missledande eftersom traditionellt operativsystemet självt inte gick att avbryta (preempt). Och medan kärna 2.6 kan göras avbrytbar (preemptible) är den inte alltid det."
+
+#. type: TP
+#: ../man/top.1:904
+#, no-wrap
+msgid "B<PSS \\*(Em Proportional Resident Memory, smaps (KiB) >"
+msgstr "B<ARSS \\*(Em Andel resident minne, smaps (KiB) >"
+
+#. type: Plain text
+#: ../man/top.1:909
+msgid "The proportion of this task's share of `RSS' where each page is divided by the number of processes sharing it. It is also the sum of the `PSan', `PSfd' and `PSsh' fields."
+msgstr "Proportionen av denna uppgifts andel av â€RSS†där varje sida delas av antalet processer som delar den. Det är även summan av fälten â€ASanâ€, â€ASfb†och â€ASdeltâ€."
+
+#. type: Plain text
+#: ../man/top.1:912
+msgid "For example, if a process has 1000 resident pages alone and 1000 resident pages shared with another process, its `PSS' would be 1500 (times page size)."
+msgstr "Till exempel, om en process ar 1000 residenta sidor själv och 1000 residenta sidor som delas med en annan process skulle dess â€ARSS†vara 1500 (gÃ¥nger sidstorleken)."
+
+#. type: Plain text
+#: ../man/top.1:914 ../man/top.1:927 ../man/top.1:951 ../man/top.1:1114
+msgid "\\*(ZX."
+msgstr "\\*(ZX."
+
+#. type: Plain text
+#: ../man/top.1:917
+msgid "B<PSan \\*(Em Proportional Anonymous Memory, smaps (KiB) >"
+msgstr "B<ASan \\*(Em Andel anonymt minne, smaps (KiB) >"
+
+#. type: Plain text
+#: ../man/top.1:919
+msgid "B<PSfd \\*(Em Proportional File Memory, smaps (KiB) >"
+msgstr "B<ASfb \\*(Em Andel filminne, smaps (KiB) >"
+
+#. type: Plain text
+#: ../man/top.1:921
+msgid "B<PSsh \\*(Em Proportional Shmem Memory, smaps (KiB) >"
+msgstr "B<ASdelt \\*(Em Andel shmem-minne, smaps (KiB) >"
+
+#. type: Plain text
+#: ../man/top.1:925
+msgid "As was true for `PSS' above (total proportional resident memory), these fields represent the proportion of this task's share of each type of memory divided by the number of processes sharing it."
+msgstr "I liket med vad som gällde för â€ARSS†ovan (total proportionell andel resident minne) representerar dessa fält andelen av denna uppgifts del av varje typ av minne dividerat med antalet processer som delar det."
+
+#. type: TP
+#: ../man/top.1:929
+#, no-wrap
+msgid "B<RES \\*(Em Resident Memory Size (KiB) >"
+msgstr "B<RES \\*(Em Storlek på resident minne (KiB) >"
+
+#. type: Plain text
+#: ../man/top.1:934
+msgid "A subset of the virtual address space (VIRT) representing the non-swapped \\*(MP a task is currently using. It is also the sum of the `RSan', `RSfd' and `RSsh' fields."
+msgstr "En delmängd av den virtuella adressrymden (VIRT) som representerar det inte utväxlade fysiska minnet en uppgift just nu använder. Det är ocksÃ¥ summan av fälten â€RSanâ€, â€RSfb†och â€RSdlâ€."
+
+#. type: Plain text
+#: ../man/top.1:938
+msgid "It can include private anonymous pages, private pages mapped to files (including program images and shared libraries) plus shared anonymous pages. All such memory is backed by the \\*(MS represented separately under SWAP."
+msgstr "Det kan inkludera privata anonyma sidor, privata sidor avbildade mot filer (inklusive programavbilder och delade bibliotek) plus delade anonyma sidor. Allt sådant minne stödjs av den \\*(MS som representeras separat under VÄXL."
+
+#. type: Plain text
+#: ../man/top.1:941
+msgid "Lastly, this field may also include shared file-backed pages which, when modified, act as a dedicated \\*(MS and thus will never impact SWAP."
+msgstr "Slutligen kan detta fält även inkludera delade filstödda sidor som, när de modifieras, beter sig som en dedikerad \\*(MS och alltså aldrig kommer påverka VÄXL."
+
+#. type: TP
+#: ../man/top.1:944
+#, no-wrap
+msgid "B<RSS \\*(Em Resident Memory, smaps (KiB) >"
+msgstr "B<RSS \\*(Em Resident minne, smaps (KiB) >"
+
+#. type: Plain text
+#: ../man/top.1:949
+msgid "Another, more precise view of process non-swapped \\*(MP. It is obtained from the `smaps_rollup' file and is generally slightly larger than that shown for `RES'."
+msgstr "En annan, mer exakt vy av processens ej utväxlade fysiska minne. Det hämtas frÃ¥n filen â€smaps_rollup†och är i allmänhet nÃ¥got större än det som visas för â€RESâ€."
+
+#. type: TP
+#: ../man/top.1:952
+#, no-wrap
+msgid "B<RSan \\*(Em Resident Anonymous Memory Size (KiB) >"
+msgstr "B<RSan \\*(Em Storlek på resident anonymt minne (KiB) >"
+
+#. type: Plain text
+#: ../man/top.1:956
+msgid "A subset of resident memory (RES) representing private pages not mapped to a file."
+msgstr "En delmängd av resident minne (RES) som representerar privata sidor inte avbildade mot en fil."
+
+#. type: TP
+#: ../man/top.1:957
+#, no-wrap
+msgid "B<RSfd \\*(Em Resident File-Backed Memory Size (KiB) >"
+msgstr "B<RSfb \\*(Em Storlek på resident minne med bakomliggande fil (KiB) >"
+
+#. type: Plain text
+#: ../man/top.1:962
+msgid "A subset of resident memory (RES) representing the implicitly shared pages supporting program images and shared libraries. It also includes explicit file mappings, both private and shared."
+msgstr "En delmängd av resident minne (RES) som representerar de implicit delade sidor som stöds av programavbilder och delade bibliotek. Det inkluderar även explicita filavbildningar, både privata och delade."
+
+#. type: TP
+#: ../man/top.1:963
+#, no-wrap
+msgid "B<RSlk \\*(Em Resident Locked Memory Size (KiB) >"
+msgstr "B<RSlå \\*(Em Storlek på resident låst minne (KiB) >"
+
+#. type: Plain text
+#: ../man/top.1:966
+msgid "A subset of resident memory (RES) which cannot be swapped out."
+msgstr "En delmängd av resident minne (RES) som inte kan växlas ut."
+
+#. type: TP
+#: ../man/top.1:967
+#, no-wrap
+msgid "B<RSsh \\*(Em Resident Shared Memory Size (KiB) >"
+msgstr "B<RSdl \\*(Em Storlek på resident delat minne (KiB) >"
+
+#. type: Plain text
+#: ../man/top.1:971
+msgid "A subset of resident memory (RES) representing the explicitly shared anonymous shm*/mmap pages."
+msgstr "En delmängd av resident minne (RES) som reprecenterar de explicit delade anonyma shm*/mmap-sidorna."
+
+#. type: TP
+#: ../man/top.1:972
+#, no-wrap
+msgid "B<RUID \\*(Em Real User Id >"
+msgstr "B<VAID \\*(Em Verkligt användar-id >"
+
+#. type: Plain text
+#: ../man/top.1:975
+msgid "TheI< real> user ID."
+msgstr "Det I<verkliga> användar-ID:t."
+
+#. type: TP
+#: ../man/top.1:976
+#, no-wrap
+msgid "B<RUSER \\*(Em Real User Name >"
+msgstr "B<VANV \\*(Em Verkligt användarnamn >"
+
+#. type: Plain text
+#: ../man/top.1:979
+msgid "TheI< real> user name."
+msgstr "Det I<verkliga> användarnamnet."
+
+#. type: TP
+#: ../man/top.1:980
+#, no-wrap
+msgid "B<S \\*(Em Process Status >"
+msgstr "B<S \\*(Em Processtatus >"
+
+#. type: Plain text
+#: ../man/top.1:990
+#, no-wrap
+msgid ""
+"The status of the task which can be one of:\n"
+" B<D> = uninterruptible sleep\n"
+" B<I> = idle\n"
+" B<R> = running\n"
+" B<S> = sleeping\n"
+" B<T> = stopped by job control signal\n"
+" B<t> = stopped by debugger during trace\n"
+" B<Z> = zombie\n"
+msgstr ""
+"Status för uppgiften kan vara en av:\n"
+" B<D> = oavbrytbar sömn\n"
+" B<I> = inaktiv\n"
+" B<R> = körande\n"
+" B<S> = sovande\n"
+" B<T> = stoppad av jobbstyrsignal\n"
+" B<t> = stoppad av felsökare under spårning\n"
+" B<Z> = zombie\n"
+
+#. type: Plain text
+#: ../man/top.1:995
+msgid "Tasks shown as running should be more properly thought of as ready to run \\*(Em their task_struct is simply represented on the Linux run-queue. Even without a true SMP machine, you may see numerous tasks in this state depending on \\*(We's delay interval and nice value."
+msgstr "Uppgifter som visas som körande bör man egentligen tänka på som redo att köra \\*(Em deras task_struct är helt enkelt representerad i Linux körkö. Även utan en sann SMP-maskin kan man se flera uppgifter i detta tillstånd beroende på \\*(Wes fördröjningsintervall och nice-värde."
+
+#. type: TP
+#: ../man/top.1:996
+#, no-wrap
+msgid "B<SHR \\*(Em Shared Memory Size (KiB) >"
+msgstr "B<DELT \\*(Em Storlek på delat minne (KiB) >"
+
+#. type: Plain text
+#: ../man/top.1:1002
+msgid "A subset of resident memory (RES) that may be used by other processes. It will include shared anonymous pages and shared file-backed pages. It also includes private pages mapped to files representing program images and shared libraries."
+msgstr "En delmängd av resident minne (RES) som kan användas av andra processer. Det kommer inkludera delade anonyma sidor och delade filstödda sidor. Det inkluderar även privata sidor som är avbildade på filer som representerar programavbilder och delade bibliotek."
+
+#. type: TP
+#: ../man/top.1:1005
+#, no-wrap
+msgid "B<SID \\*(Em Session Id >"
+msgstr "B<SID \\*(Em Sessions-id >"
+
+#. type: Plain text
+#: ../man/top.1:1013
+msgid "A session is a collection of process groups (\\*(Xa PGRP), usually established by the login shell. A newly forked process joins the session of its creator. By convention, this value equals the process ID (\\*(Xa PID) of the first member of the session, called the session leader, which is usually the login shell."
+msgstr "En session är en samling processgrupper (\\*(Xa PGRP), vanligen etablerad av inloggningsskalet. En nyavgrenad process går med i sin skapares session. Som konvention är detta värde lika med sessionens första medlems process-ID (\\*(Xa PID), kallad sessionsledaren, vilket vanligen är inloggningsskalet."
+
+#. type: TP
+#: ../man/top.1:1014
+#, no-wrap
+msgid "B<STARTED \\*(Em Start Time Interval>"
+msgstr "B<STARTAD \\*(Em Starttidsintervall>"
+
+#. type: Plain text
+#: ../man/top.1:1018
+msgid "The length of time since system boot when a process started. Thus, the most recently started task will display the largest time interval."
+msgstr "Tidslängden sedan systemstarten när en process startades. Alltså kommer den senast startade uppgiften visa det största tidsintervallet."
+
+#. type: Plain text
+#: ../man/top.1:1022
+msgid "The value will be expressed as `MM:SS' (minutes:seconds). But if the interval is too great to fit column width it will be scaled as `HH,MM' (hours,minutes) and possibly beyond."
+msgstr "Värdet kommer uttryckas som â€MM:SS†(minuter:sekunder). Men om intervallet är för stort för att fÃ¥ plats i kolumnbredden kommer det att skalas som â€HH,MM†(timmar,minuter) och möjligen därutöver."
+
+#. type: TP
+#: ../man/top.1:1023
+#, no-wrap
+msgid "B<SUID \\*(Em Saved User Id >"
+msgstr "B<SAID \\*(Em Sparat användar-id >"
+
+#. type: Plain text
+#: ../man/top.1:1026
+msgid "TheI< saved> user ID."
+msgstr "Det I<sparade> användar-ID:t."
+
+#. type: TP
+#: ../man/top.1:1027
+#, no-wrap
+msgid "B<SUPGIDS \\*(Em Supplementary Group IDs >"
+msgstr "B<KOMPPGID \\*(Em Komplementära grupp-id:n >"
+
+#. type: Plain text
+#: ../man/top.1:1032
+msgid "The IDs of any supplementary group(s) established at login or inherited from a task's parent. They are displayed in a comma delimited list."
+msgstr "Eventuella kompletterande gruppers ID:n etablerade vid inloggning eller ärvda från en uppgifts förälder. De visas i en kommaseparerad lista."
+
+#. type: Plain text
+#: ../man/top.1:1036
+msgid "\\*(NT The SUPGIDS field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum \\*(WX characters)."
+msgstr "\\*(NT Fältet KOMPGID har, till skillnad mot de flesta kolumner, inte fast bredd. När det visas kommer det plus eventuella andra kolumner med variabel bredd allokeras all återstående skärmbredd (upp till de maximala \\*(WX tecknen)."
+
+#. type: TP
+#: ../man/top.1:1037
+#, no-wrap
+msgid "B<SUPGRPS \\*(Em Supplementary Group Names >"
+msgstr "B<KOMPGRP \\*(Em Komplementära gruppnamn >"
+
+#. type: Plain text
+#: ../man/top.1:1042
+msgid "The names of any supplementary group(s) established at login or inherited from a task's parent. They are displayed in a comma delimited list."
+msgstr "Eventuella kompletterande gruppers namn etablerade vid inloggning eller ärvda från en uppgifts förälder. De visas i en kommaseparerad lista."
+
+#. type: Plain text
+#: ../man/top.1:1046
+msgid "\\*(NT The SUPGRPS field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum \\*(WX characters)."
+msgstr "\\*(NT Fältet KOMPGRP har, till skillnad mot de flesta kolumner, inte fast bredd. När det visas kommer det plus eventuella andra kolumner med variabel bredd allokeras all återstående skärmbredd (upp till de maximala \\*(WX tecknen)"
+
+#. type: TP
+#: ../man/top.1:1047
+#, no-wrap
+msgid "B<SUSER \\*(Em Saved User Name >"
+msgstr "B<SANV \\*(Em Sparat användarnamn >"
+
+#. type: Plain text
+#: ../man/top.1:1050
+msgid "TheI< saved> user name."
+msgstr "Det I<sparade> användarnamnet."
+
+#. type: TP
+#: ../man/top.1:1051
+#, no-wrap
+msgid "B<SWAP \\*(Em Swapped Size (KiB) >"
+msgstr "B<VÄXL \\*(Em Växlad storlek (KiB) >"
+
+#. type: Plain text
+#: ../man/top.1:1055
+msgid "The formerly resident portion of a task's address space written to the \\*(MS when \\*(MP becomes over committed."
+msgstr "Den tidigare residenta delen av en uppgifts adressutrymme skrivet till \\*(MSen när \\*(MP blir överanvänt."
+
+#. type: TP
+#: ../man/top.1:1058
+#, no-wrap
+msgid "B<TGID \\*(Em Thread Group Id >"
+msgstr "B<TGID \\*(Em Trådgrupps-id >"
+
+#. type: Plain text
+#: ../man/top.1:1063
+msgid "The ID of the thread group to which a task belongs. It is the PID of the thread group leader. In kernel terms, it represents those tasks that share an mm_struct."
+msgstr "Trådgruppens ID som en uppgift hör till. Det är trådgruppledarens PID. I kärnans termer representerar det de uppgifter som delar en mm_struct."
+
+#. type: TP
+#: ../man/top.1:1064
+#, no-wrap
+msgid "B<TIME \\*(Em \\*(PU Time >"
+msgstr "B<TID \\*(Em \\*(PU-tid >"
+
+#. type: Plain text
+#: ../man/top.1:1071
+msgid "Total \\*(PU time the task has used since it started. When Cumulative mode is \\*O, each process is listed with the \\*(Pu time that it and its dead children have used. You toggle Cumulative mode with `S', which is both a \\*(CO and an \\*(CI. \\*(XC `S' \\*(CI for additional information regarding this mode."
+msgstr "Total \\*(PU-tid uppgiften har använt sedan den startades. När kumulativt läge är \\*O listas varje process med \\*(Pu-tiden som den och dess döda barn har använt. Man växlar kumulativt läge med â€Sâ€, vilket är bÃ¥de en \\*(CO och ett \\*(CI. \\*(XC Det interaktiva kommandot â€S†för ytterligare information om detta läge."
+
+#. type: TP
+#: ../man/top.1:1072
+#, no-wrap
+msgid "B<TIME+ \\*(Em \\*(PU Time, hundredths >"
+msgstr "B<TID+ \\*(Em \\*(PU-tid, hundradelar >"
+
+#. type: Plain text
+#: ../man/top.1:1076
+msgid "The same as TIME, but reflecting more granularity through hundredths of a second."
+msgstr "Samma som TID, men avspeglar mer noggrannhet genom hundradelar av sekunder."
+
+#. type: TP
+#: ../man/top.1:1077
+#, no-wrap
+msgid "B<TPGID \\*(Em Tty Process Group Id >"
+msgstr "B<TPGID \\*(Em Tty-processgrupps-id >"
+
+#. type: Plain text
+#: ../man/top.1:1083
+msgid "The process group ID of the foreground process for the connected tty, or -1 if a process is not connected to a terminal. By convention, this value equals the process ID (\\*(Xa PID) of the process group leader (\\*(Xa PGRP)."
+msgstr "Förgrundsprocessens processgrupps-ID för den anslutna tty:n, eller -1 om en process inte är ansluten till en terminal. Enligt konvention är detta värde lika med processgruppsledarens (\\*(Xa PGRP) process-ID (\\*(Xa PID)."
+
+#. type: TP
+#: ../man/top.1:1084
+#, no-wrap
+msgid "B<TTY \\*(Em Controlling Tty >"
+msgstr "B<TTY \\*(Em Styrande tty >"
+
+#. type: Plain text
+#: ../man/top.1:1091
+msgid "The name of the controlling terminal. This is usually the device (serial port, pty, etc.) from which the process was started, and which it uses for input or output. However, a task need not be associated with a terminal, in which case you'll see `?' displayed."
+msgstr "Styrterminalens namn. Detta är vanligen enheten (serieporten, pty, etc.) processen startades ifrån, och vilken den använder för inmatning och utmatning. Dock behöver inte en terminal vara kopplad till en terminal, i vilket fall man ser en �†visad."
+
+#. type: TP
+#: ../man/top.1:1092
+#, no-wrap
+msgid "B<UID \\*(Em User Id >"
+msgstr "B<AID \\*(Em Användar-id >"
+
+#. type: Plain text
+#: ../man/top.1:1095
+msgid "TheI< effective> user ID of the task's owner."
+msgstr "Uppgiftens I<effektiva> ägares användar-ID."
+
+#. type: TP
+#: ../man/top.1:1096
+#, no-wrap
+msgid "B<USED \\*(Em Memory in Use (KiB) >"
+msgstr "B<ANV \\*(Em Använt minne (KiB) >"
+
+#. type: Plain text
+#: ../man/top.1:1100
+msgid "This field represents the non-swapped \\*(MP a task is using (RES) plus the swapped out portion of its address space (SWAP)."
+msgstr "Detta fält representerar ej växlat \\*(MP en uppgift använder (RES) plus den utväxlade delen av dess adressutrymme (VÄXL)."
+
+#. type: TP
+#: ../man/top.1:1103
+#, no-wrap
+msgid "B<USER \\*(Em User Name >"
+msgstr "B<ANVÄNDARE \\*(Em Användarnamn >"
+
+#. type: Plain text
+#: ../man/top.1:1106
+msgid "TheI< effective> user name of the task's owner."
+msgstr "Uppgiftens I<effektiva> ägares användarnamn."
+
+#. type: TP
+#: ../man/top.1:1107
+#, no-wrap
+msgid "B<USS \\*(Em Unique Set Size >"
+msgstr "B<URSS \\*(Em Unika mängdens storlek >"
+
+#. type: Plain text
+#: ../man/top.1:1112
+msgid "The non-swapped portion of \\*(MP (`RSS') not shared with any other process. It is derived from the `smaps_rollup' file."
+msgstr "Den inte utväxlade andelen av \\*(MP (â€RSSâ€) som inte delas med nÃ¥gon annan process. Det härleds fron filen â€smaps_rollupâ€."
+
+#. type: TP
+#: ../man/top.1:1115
+#, no-wrap
+msgid "B<VIRT \\*(Em Virtual Memory Size (KiB) >"
+msgstr "B<VIRT \\*(Em Storleken på virtuellt minne (KiB) >"
+
+#. type: Plain text
+#: ../man/top.1:1120
+msgid "The total amount of \\*(MV used by the task. It includes all code, data and shared libraries plus pages that have been swapped out and pages that have been mapped but not used."
+msgstr "Den totala mängden \\*(MV som används av uppgiften. Den inkluderar all kod, data och delade bibliotek plus sidor som har växlats ut och sidor som har avbildats men inte använts."
+
+#. type: TP
+#: ../man/top.1:1123
+#, no-wrap
+msgid "B<WCHAN \\*(Em Sleeping in Function >"
+msgstr "B<WKAN \\*(Em Sover i en funktion >"
+
+#. type: Plain text
+#: ../man/top.1:1128
+msgid "This field will show the name of the kernel function in which the task is currently sleeping. Running tasks will display a dash (`-') in this column."
+msgstr "Detta fält kommer visa namnet pÃ¥ kärnfunktionen i vilken uppgiften just nu sover. Körande uppgifter kommer visa ett streck (â€-â€) i denna kolumn."
+
+#. type: TP
+#: ../man/top.1:1129
+#, no-wrap
+msgid "B<ioR \\*(Em I/O Bytes Read >"
+msgstr "B<ioL \\*(Em I/O-byte lästa >"
+
+#. type: Plain text
+#: ../man/top.1:1132
+msgid "The number of bytes a process caused to be fetched from the storage layer."
+msgstr "Antalet byte en process orsakade att de lästes från lagringsnivån."
+
+#. type: Plain text
+#: ../man/top.1:1134
+msgid "Root privileges are required to display `io' data for other users."
+msgstr "Root-privilegier krävs för att visa â€ioâ€-data för andra användare."
+
+#. type: TP
+#: ../man/top.1:1135
+#, no-wrap
+msgid "B<ioRop \\*(Em I/O Read Operations >"
+msgstr "B<ioLåt \\*(Em I/O-läsåtgärder >"
+
+#. type: Plain text
+#: ../man/top.1:1139
+msgid "The number of read I/O operations (syscalls) for a process. Such calls might not result in actual physical disk I/O."
+msgstr "Antalet läs-I/O-åtgärder (systemanrop) för en process. Sådana anrop resulterar inte nödvändigtvis i faktisk fysisk disk-I/O."
+
+#. type: TP
+#: ../man/top.1:1140
+#, no-wrap
+msgid "B<ioW \\*(Em I/O Bytes Written >"
+msgstr "B<ioS \\*(Em I/O-byte skrivna >"
+
+#. type: Plain text
+#: ../man/top.1:1143
+msgid "The number of bytes a process caused to be sent to the storage layer."
+msgstr "Antalet byte en process orsakade att de skickades till lagringsnivån."
+
+#. type: TP
+#: ../man/top.1:1144
+#, no-wrap
+msgid "B<ioWop \\*(Em I/O Write Operations >"
+msgstr "B<ioSåt \\*(Em I/O-skrivåtgärder >"
+
+#. type: Plain text
+#: ../man/top.1:1148
+msgid "The number of write I/O operations (syscalls) for a process. Such calls might not result in actual physical disk I/O."
+msgstr "Antalet skriv-I/O-åtgärder (systemanrop) för en process. Sådana anrop resulterar inte nödvändigtvis i faktisk fysisk disk-I/O."
+
+#. type: TP
+#: ../man/top.1:1149
+#, no-wrap
+msgid "B<nDRT \\*(Em Dirty Pages Count >"
+msgstr "B<aSmu \\*(Em Antal smutsiga sidor >"
+
+#. type: Plain text
+#: ../man/top.1:1155
+msgid "The number of pages that have been modified since they were last written to \\*(AS. Dirty pages must be written to \\*(AS before the corresponding physical memory location can be used for some other virtual page."
+msgstr "Antalet sidor som har ändrats sedan de senast skrevs till \\*(AS. Smutsiga sidor måste skrivas till \\*(AS före den motsvarande fysiska minnesplatsen kan användas för någon annan virtuell sida."
+
+#. type: Plain text
+#: ../man/top.1:1157
+msgid "This field was deprecated with linux 2.6 and is always zero."
+msgstr "Detta fält är föråldrat sedan linux 2.6 och är alltid noll."
+
+#. type: TP
+#: ../man/top.1:1158
+#, no-wrap
+msgid "B<nMaj \\*(Em Major Page Fault Count >"
+msgstr "B<aSmå \\*(Em Antal större sidfel >"
+
+#. type: Plain text
+#: ../man/top.1:1165
+msgid "The number ofB< major> page faults that have occurred for a task. A page fault occurs when a process attempts to read from or write to a virtual page that is not currently present in its address space. A major page fault is when \\*(AS access is involved in making that page available."
+msgstr "Antalet B<stora> sidfel som inträffat för en uppgift. Ett sidfel inträffar när en process försöker läsa från eller skriva till en virtuell sida som inte för närvarande finns i dess adressrymd. Ett stort sidfel är när \\*(AS är inblandat i att göra sidan tillgänglig."
+
+#. type: TP
+#: ../man/top.1:1166
+#, no-wrap
+msgid "B<nMin \\*(Em Minor Page Fault count >"
+msgstr "B<aSmå \\*(Em Antal mindre sidfel >"
+
+#. type: Plain text
+#: ../man/top.1:1173
+msgid "The number ofB< minor> page faults that have occurred for a task. A page fault occurs when a process attempts to read from or write to a virtual page that is not currently present in its address space. A minor page fault does not involve \\*(AS access in making that page available."
+msgstr "Antalet B<små> sidfel som inträffat för en uppgift. Ett sidfel inträffar när en process försöker läsa från eller skriva till en virtuell sida som inte för närvarande finns i dess adressrymd. Ett litet sidfel blandar inte in åtkomst av \\*(AS för att göra sidan tillgänglig."
+
+#. type: TP
+#: ../man/top.1:1174
+#, no-wrap
+msgid "B<nTH \\*(Em Number of Threads >"
+msgstr "B<nTR \\*(Em Antal trådar >"
+
+#. type: Plain text
+#: ../man/top.1:1177
+msgid "The number of threads associated with a process."
+msgstr "Antalet trådar kopplade till en process."
+
+#. type: TP
+#: ../man/top.1:1178
+#, no-wrap
+msgid "B<nsCGROUP \\*(Em CGROUP namespace >"
+msgstr "B<nrGRUPPER \\*(Em CGROUP-namnrymd >"
+
+#. type: Plain text
+#: ../man/top.1:1182
+msgid "The Inode of the namespace used to hide the identity of the control group of which process is a member."
+msgstr "Inoden för namnrymden som används för att dölja identiteten på styrgruppen i vilken processen är en medlem."
+
+#. type: TP
+#: ../man/top.1:1183
+#, no-wrap
+msgid "B<nsIPC \\*(Em IPC namespace >"
+msgstr "B<nrIPK \\*(Em IPK-namnrymd >"
+
+#. type: Plain text
+#: ../man/top.1:1187
+msgid "The Inode of the namespace used to isolate interprocess communication (IPC) resources such as System V IPC objects and POSIX message queues."
+msgstr "Inoden för namnrymden som används för att isolera resurser för interprocesskommunikation (IPK) såsom System V IPC-objekt och POSIX-meddelandeköer."
+
+#. type: TP
+#: ../man/top.1:1188
+#, no-wrap
+msgid "B<nsMNT \\*(Em MNT namespace >"
+msgstr "B<nrMNT \\*(Em MNT-namnrymd >"
+
+#. type: Plain text
+#: ../man/top.1:1192
+msgid "The Inode of the namespace used to isolate filesystem mount points thus offering different views of the filesystem hierarchy."
+msgstr "Inoden för namnrymden som används för att isolera monteringspunkter för filsystem och därmed erbjuder olika vyer av filsystemshierarkin."
+
+#. type: TP
+#: ../man/top.1:1193
+#, no-wrap
+msgid "B<nsNET \\*(Em NET namespace >"
+msgstr "B<nrNÄT \\*(Em NÄT-namnrymd >"
+
+#. type: Plain text
+#: ../man/top.1:1197
+msgid "The Inode of the namespace used to isolate resources such as network devices, IP addresses, IP routing, port numbers, etc."
+msgstr "Inoden för namnrymden som används för att isolera resurser såsom nätverksenheter, IP-adresser, IP-ruttläggning, portnummer etc."
+
+#. type: TP
+#: ../man/top.1:1198
+#, no-wrap
+msgid "B<nsPID \\*(Em PID namespace >"
+msgstr "B<nrPID \\*(Em PID-namnrymd >"
+
+#. type: Plain text
+#: ../man/top.1:1204
+msgid "The Inode of the namespace used to isolate process ID numbers meaning they need not remain unique. Thus, each such namespace could have its own `init/systemd' (PID #1) to manage various initialization tasks and reap orphaned child processes."
+msgstr "Inoden för namnrymden som används för att isolera process-ID-nummer vilket betyder att de inte behöver vara unika. AlltsÃ¥ kan varje sÃ¥dan namnrymd ha sin egen â€init/systemd†(PID nr. 1) för att hantera diverse initieringsuppgifter och skörda föräldralösa barnprocesser."
+
+#. type: TP
+#: ../man/top.1:1205
+#, no-wrap
+msgid "B<nsTIME \\*(Em TIME namespace >"
+msgstr "B<nrTID \\*(Em TIDS-namnrymd >"
+
+#. type: Plain text
+#: ../man/top.1:1209
+msgid "The Inode of the namespace which allows processes to see different system times in a way similar to the UTS namespace."
+msgstr "Inoden för namnrymden som låter processer se olika systemtider på ett sätt liknande det för UTS-namnrymden."
+
+#. type: TP
+#: ../man/top.1:1210
+#, no-wrap
+msgid "B<nsUSER \\*(Em USER namespace >"
+msgstr "B<nrANV \\*(Em ANVÄNDAR-namnrymd >"
+
+#. type: Plain text
+#: ../man/top.1:1216
+msgid "The Inode of the namespace used to isolate the user and group ID numbers. Thus, a process could have a normal unprivileged user ID outside a user namespace while having a user ID of 0, with full root privileges, inside that namespace."
+msgstr "Inoden för namnrymden som används för att isolera användar- och grupp-ID-nummer. Alltså kan en process ha ett normalt opriviligierat anändar-ID utanför en användarnamnrymd medan den har användar-ID 0, men fullständiga root-privilegier, inuti den namnrymden."
+
+#. type: TP
+#: ../man/top.1:1217
+#, no-wrap
+msgid "B<nsUTS \\*(Em UTS namespace >"
+msgstr "B<nrUTS \\*(Em UTS-namnrymd >"
+
+#. type: Plain text
+#: ../man/top.1:1221
+msgid "The Inode of the namespace used to isolate hostname and NIS domain name. UTS simply means \"UNIX Time-sharing System\"."
+msgstr "Inoden för namnrymden som används för att isolera värdnamn och NIS-domännamn. UTS betyder helt enkelt â€UNIX Time-sharing Systemâ€."
+
+#. type: TP
+#: ../man/top.1:1222
+#, no-wrap
+msgid "B<vMj \\*(Em Major Page Fault Count Delta>"
+msgstr "B<vSt \\*(Em Delta av antal stora sidfel>"
+
+#. type: Plain text
+#: ../man/top.1:1226
+msgid "The number ofB< major> page faults that have occurred since the last update (see nMaj)."
+msgstr "Antalet B<stora> sidfel som har inträffat sedan den senaste uppdateringen (se aSto)."
+
+#. type: TP
+#: ../man/top.1:1227
+#, no-wrap
+msgid "B<vMn \\*(Em Minor Page Fault Count Delta>"
+msgstr "B<vSm \\*(Em Delta av antal mindre sidfel>"
+
+#. type: Plain text
+#: ../man/top.1:1231
+msgid "The number ofB< minor> page faults that have occurred since the last update (see nMin)."
+msgstr "Antalet B<små> sidfel som har inträffat sedan den senaste uppdateringen (se aSmå)."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1233
+#, no-wrap
+msgid "3b. MANAGING Fields"
+msgstr "3b. HANTERING av fält"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1240
+msgid "After pressing the \\*(CI `f' (Fields Management) you will be presented with a screen showing: 1) the \\*(CW name; 2) the designated sort field; 3) all fields in their current order along with descriptions. Entries marked with an asterisk are the currently displayed fields, screen width permitting."
+msgstr "Efter att trycka det interaktiva kommandot â€f†(fälthantering) kommer man presenteras med en skärm som visar: 1) namnet pÃ¥ \\*(CW; 2) det utsedda sorteringsfältet; 3) alla fält i deras aktuella ordning tillsammans med beskrivningar. Poster markerade med en asterisk är fält som visas just nu, i den mÃ¥n skärmbredden tillÃ¥ter."
+
+#. type: IP
+#: ../man/top.1:1242 ../man/top.1:1248 ../man/top.1:1253 ../man/top.1:1257
+#: ../man/top.1:1262 ../man/top.1:2687 ../man/top.1:2710 ../man/top.1:2719
+#: ../man/top.1:2735 ../man/top.1:2741 ../man/top.1:2747 ../man/top.1:2757
+#: ../man/top.1:2774
+#, no-wrap
+msgid "\\(bu"
+msgstr "\\(bu"
+
+#. type: Plain text
+#: ../man/top.1:1247
+msgid "As the on screen instructions indicate, you navigate among the fields with theB< Up> andB< Down> \\*(KAs. The PgUp, PgDn, Home and End keys can also be used to quickly reach the first or last available field."
+msgstr "Som intruktionerna på skärmen indikerar navigerar man mellan fälten med \\*(KAerna B<upp> och B<ner>. Tangenterna PgUp, PgDn, Home och End kan också användas för att snabbt nå det första eller sista tillgängliga fältet."
+
+#. type: Plain text
+#: ../man/top.1:1252
+msgid "TheB< Right> \\*(KA selects a field for repositioning and theB< Left> \\*(KA or the E<lt>B<Enter>E<gt> key commits that field's placement."
+msgstr "Piltangenten B<höger> väljer ett fält för att flyttas och \\*(KAen B<vänster> eller tangenten E<lt>B<Enter>E<gt> fastställer det fältets placering."
+
+#. type: Plain text
+#: ../man/top.1:1256
+msgid "The `B<d>' key or the E<lt>B<Space>E<gt> bar toggles a field's display status, and thus the presence or absence of the asterisk."
+msgstr "Tangenten â€B<d>†eller E<lt>B<mellanslag>E<gt> växlar ett fälts visningsstatus, och därmed förekomsten eller frÃ¥nvaron av asterisken."
+
+#. type: Plain text
+#: ../man/top.1:1261
+msgid "The `B<s>' key designates a field as the sort field. \\*(XT 4c. TASK AREA Commands, SORTING for additional information regarding your selection of a sort field."
+msgstr "Tangenten â€B<s>†markerar ett fält som sorteringsfältet. \\*(XT 4c. UPPGIFTSOMRÃ…DETS kommandon, SORTERING för ytterligare information om valet av sorteringsfält."
+
+#. type: Plain text
+#: ../man/top.1:1265
+msgid "The `B<a>' and `B<w>' keys can be used to cycle through all available windows and the `B<q>' or E<lt>B<Esc>E<gt> keys exit Fields Management."
+msgstr "Tangenterna â€B<a>†och â€B<w>†kan användas för att bläddra igenom alla tillgängliga fönster och tangenterna â€B<q>†eller E<lt>B<Esc>E<gt> gÃ¥r ur fälthanteringen."
+
+#. type: Plain text
+#: ../man/top.1:1274
+msgid "The Fields Management screen can also be used to change the \\*(CG in either \\*(FM or \\*(AM. Whatever was targeted when `q' or E<lt>EscE<gt> was pressed will be made current as you return to the \\*(We display. \\*(XT 5. ALTERNATE-DISPLAY Provisions and the `g' \\*(CI for insight into \\*(CWs and \\*(FGs."
+msgstr "Fälthanteringsskärmen kan även användas för att ändra \\*(CG i antingen \\*(FM eller \\*(AM. Det som var mÃ¥let när â€q†eller E<lt>EscE<gt> trycktes kommer att göras aktuellt när man Ã¥tergÃ¥r till \\*(We-visningen. \\*(XT 5. ALTERNATIVA SKÄRMARS utseende och det interaktiva kommandot â€g†för kunskap om aktuella fönster och \\*(FGer."
+
+#. type: Plain text
+#: ../man/top.1:1281
+msgid "\\*(NT Any window that has been scrolledI< horizontally> will be reset if any field changes are made via the Fields Management screen. AnyI< vertical> scrolled position, however, will not be affected. \\*(XT 5c. SCROLLING a Window for additional information regarding vertical and horizontal scrolling."
+msgstr "\\*(NT ett fönster som har rullats I<horisontellt> kommer att återställas om några fältändringar görs via fälthanteringsskärmen. Eventuell I<vertikal> rullningsposition, däremot, kommer inte påverkas. \\*(XT 5c. RULLA ett fönster för ytterligare information om att rulla vertikalt och horisontellt."
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:1283
+#, no-wrap
+msgid "4. INTERACTIVE Commands"
+msgstr "4. INTERAKTIVA kommandon"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1288
+msgid "Listed below is a brief index of commands within categories. Some commands appear more than once \\*(Em their meaning or scope may vary depending on the context in which they are issued."
+msgstr "Listade nedan är ett kort register över kommandon i kategorier. Några kommandon förekommer mer än en gång \\*(Em deras betydelse eller omfattning kan variera beroende på sammahanget i vilket de ges."
+
+#. type: Plain text
+#: ../man/top.1:1311
+#, no-wrap
+msgid ""
+" 4a.I< Global-Commands >\n"
+" E<lt>Ent/SpE<gt> ?, =, 0,\n"
+" A, B, d, E, e, g, H, h, I, k, q, r, s, W, X, Y, Z,\n"
+" ^G, ^K, ^N, ^P, ^U, ^L, ^R\n"
+" 4b.I< Summary-Area-Commands >\n"
+" C, l, t, m, 1, 2, 3, 4, 5, !\n"
+" 4c.I< Task-Area-Commands >\n"
+" Appearance: b, J, j, x, y, z\n"
+" Content: c, F, f, O, o, S, U, u, V, v, ^E\n"
+" Size: #, i, n\n"
+" Sorting: E<lt>, E<gt>, f, R\n"
+" 4d.I< Color-Mapping >\n"
+" E<lt>RetE<gt>, a, B, b, H, M, q, S, T, w, z, 0 - 7\n"
+" 5b.I< Commands-for-Windows >\n"
+" -, _, =, +, A, a, G, g, w\n"
+" 5c.I< Scrolling-a-Window >\n"
+" C, Up, Dn, Left, Right, PgUp, PgDn, Home, End\n"
+" 5d.I< Searching-in-a-Window >\n"
+" L, &\n"
+" 5e.I< Filtering-in-a-Window\n"
+" O, o, ^O, =, +>\n"
+msgstr ""
+" 4a.I< Globala-kommandon >\n"
+" E<lt>Ent/SpE<gt> ?, =, 0,\n"
+" A, B, d, E, e, g, H, h, I, k, q, r, s, W, X, Y, Z,\n"
+" ^G, ^K, ^N, ^P, ^U, ^L, ^R\n"
+" 4b.I< Sammanfattningsområdets.kommandon >\n"
+" C, l, t, m, 1, 2, 3, 4, 5, !\n"
+" 4c.I< Uppgiftområdets-kommandon >\n"
+" Utseende: b, J, j, x, y, z\n"
+" Innehåll: c, F, f, O, o, S, U, u, V, v, ^E\n"
+" Storlek: #, i, n\n"
+" Sortering: E<lt>, E<gt>, f, R\n"
+" 4d.I< FÄRGavbildning >\n"
+" E<lt>RetE<gt>, a, B, b, H, M, q, S, T, w, z, 0 - 7\n"
+" 5b.I< Kommandon-för-fönster >\n"
+" -, _, =, +, A, a, G, g, w\n"
+" 5c.I< Rulla-ett-fönster >\n"
+" C, Upp, Ned, Vänster, Höger, PgUp, PgDn, Home, End\n"
+" 5d.I< Söka-i-ett-fönster >\n"
+" L, &\n"
+" 5e.I< Filtrera-i-ett-fönster >\n"
+" O, o, ^O, =, +\n"
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1314
+#, no-wrap
+msgid "4a. GLOBAL Commands"
+msgstr "4a. GLOBALA kommandon"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1319
+msgid "The global \\*(CIs areB< always> available in both \\*(FM and \\*(AM. However, some of these \\*(CIs areB< not available> when running in Secure mode."
+msgstr "De globala interaktiva kommandona är B<alltid> tillgängliga påde i \\*(FM och \\*(AM. Dock är några av dessa interaktiva kommandon B<inte tillgängliga> när man kör i säkert läge."
+
+#. type: Plain text
+#: ../man/top.1:1323
+msgid "If you wish to know in advance whether or not your \\*(We has been secured, simply ask for help and view the system summary on the second line."
+msgstr "Om man vill veta i förväg huruvida eller inte ens \\*(We har säkrats, fråga helt enkelt efter hjälp och titta på systemsammanfattningen på den andra raden."
+
+#. type: TP
+#: ../man/top.1:1324
+#, no-wrap
+msgid "\\ \\ E<lt>B<Enter>E<gt> or E<lt>B<Space>E<gt>\\ \\ :I<Refresh-Display >"
+msgstr "\\ \\ E<lt>B<Enter>E<gt> eller E<lt>B<Mellanslag>E<gt>\\ \\ :I<Uppdatera visningen>"
+
+#. type: Plain text
+#: ../man/top.1:1329
+msgid "These commands awaken \\*(We and following receipt of any input the entire display will be repainted. They also force an update of any hotplugged \\*(Pu or \\*(MP changes."
+msgstr "Dessa kommandon väcker upp \\*(We och som följd av mottagande av någon indata kommer hela skärmen ritas om. De framtvingar även en uppdatering av eventuella ändringar i drift av \\*(Pu eller \\*(MP."
+
+#. type: Plain text
+#: ../man/top.1:1332
+msgid "Use either of these keys if you have a large delay interval and wish to see current status,"
+msgstr "Man kan använda vilken som helst av dessa tangenter om man har ett långt fördröjningsintervall och vill se den aktuella statusen."
+
+#. type: TP
+#: ../man/top.1:1333
+#, no-wrap
+msgid "\\ \\ \\ B<?> | B<h>\\ \\ :I<Help >"
+msgstr "\\ \\ \\ B<?> | B<h>\\ \\ :I<Hjälp>"
+
+#. type: Plain text
+#: ../man/top.1:1338
+msgid "There are two help levels available. The first will provide a reminder of all the basic \\*(CIs. If \\*(We isI< secured>, that screen will be abbreviated."
+msgstr "Det finns två hjälpnivåer tillgängliga. Den första kommer ge en påminnelse om alla gruldäggande interaktiva kommandon. Om \\*(We är I<säkrad> kommer den skärmen vara förkortad."
+
+#. type: Plain text
+#: ../man/top.1:1341
+msgid "Typing `h' or `?' on that help screen will take you to help for those \\*(CIs applicable to \\*(AM."
+msgstr "Att trycka â€h†eller â€?†pÃ¥ den hjälpskärmen kommer ta en till hjälp för de interaktiva kommandon som är tillämpliga pÃ¥ \\*(AM."
+
+#. type: TP
+#: ../man/top.1:1342
+#, no-wrap
+msgid "\\ \\ \\ B<=>\\ \\ :I<Exit-Display-Limits >"
+msgstr "\\ \\ \\ B<=>\\ \\ :I<Gå ur visningsbegränsningar>"
+
+#. type: Plain text
+#: ../man/top.1:1349
+msgid "Removes restrictions on what is shown. This command will reverse any `i' (idle tasks), `n' (max tasks), `v' (hide children) and `F' focus commands that might be active. It also provides for an exit from PID monitoring, User filtering, Other filtering, Locate processing and Combine Cpus mode."
+msgstr "Tar bort begränsningar pÃ¥ vad som visas. Detta kommando kommer Ã¥terställa kommandon â€i†(inaktiva uppgifter), â€n†(max uppgifter), â€v†(dölj barn) och â€F†fokus som kan vara aktiva. Det avslutar ocksÃ¥ PID-monitorering, användarfiltrering, annan filtrering, lokaliseringsbearbetning och kombinera-Cpu-läge."
+
+#. type: Plain text
+#: ../man/top.1:1352
+msgid "Additionally, if the window has been scrolled it will be reset with this command."
+msgstr "Dessutom, om fönstret har rullats kommer det at återställas av detta kommando."
+
+#. type: TP
+#: ../man/top.1:1353
+#, no-wrap
+msgid "\\ \\ \\ B<0>\\ \\ :I<Zero-Suppress> toggle "
+msgstr "\\ \\ \\ B<0>\\ \\ :I<Nollundertryckning>sväxel"
+
+#. type: Plain text
+#: ../man/top.1:1358
+msgid "This command determines whether zeros are shown or suppressed for many of the fields in a \\*(TW. Fields like UID, GID, NI, PR or P are not affected by this toggle."
+msgstr "Detta kommando styr huruvida nollor visas eller undertrycks för många av fälten i ett \\*(TW. Fält som AID, GID, NI, PR eller P påverkas inte av denna växel."
+
+#. type: TP
+#: ../man/top.1:1359
+#, no-wrap
+msgid "\\ \\ \\ B<A>\\ \\ :I<Alternate-Display-Mode> toggle "
+msgstr "\\ \\ \\ B<A>\\ \\ :I<Alternativt visningsläge>sväxel"
+
+#. type: Plain text
+#: ../man/top.1:1364
+msgid "This command will switch between \\*(FM and \\*(AM. \\*(XT 5. ALTERNATE-DISPLAY Provisions and the `g' \\*(CI for insight into \\*(CWs and \\*(FGs."
+msgstr "Detta kommando kommer att byta mellan \\*(FM och \\*(AM. \\*(XT 5. ALTERNATIVA SKÄRMARS utseende och det interaktiva kommandot â€g†för insikt i aktuella fönster och \\*(FGer."
+
+#. type: TP
+#: ../man/top.1:1365
+#, no-wrap
+msgid "\\ \\ \\ B<B>\\ \\ :I<Bold-Disable/Enable> toggle "
+msgstr "\\ \\ \\ B<B>\\ \\ :I<Fetstil-avaktiverings/aktiverings>växel"
+
+#. type: Plain text
+#: ../man/top.1:1371
+msgid "This command will influence use of the bold terminfo capability and altersB< both> the \\*(SA and \\*(TA for the \\*(CW. While it is intended primarily for use with dumb terminals, it can be applied anytime."
+msgstr "Detta kommando kommer påverka användningen av terminalegenskapen feltstil och ändrar B<både> \\*(SAt och \\*(TSt för \\*(CW. Även om det är tänkt i första hand för dumma terminaler kan det användas när som helst."
+
+#. type: Plain text
+#: ../man/top.1:1376
+msgid "\\*(NT When this toggle is \\*O and \\*(We is operating in monochrome mode, theB< entire display> will appear as normal text. Thus, unless the `x' and/or `y' toggles are using reverse for emphasis, there will be no visual confirmation that they are even on."
+msgstr "\\*(NT när denna växel är \\*O och \\*(We kör i monokromt läge kommer B<hela skärmen> uppträda som normal text. AlltsÃ¥, om inte växeln â€x†och/eller â€y†använder omvänd markering kommer det inte finnas nÃ¥gon visuell bekräftelse ens att de är pÃ¥."
+
+#. type: TP
+#: ../man/top.1:1377
+#, no-wrap
+msgid "*\\ \\ B<d> | B<s>\\ \\ :I<Change-Delay-Time-interval >"
+msgstr "*\\ \\ B<d> | B<s>\\ \\ :I<Ändra tidsfördröjningsintervallet>"
+
+#. type: Plain text
+#: ../man/top.1:1381
+msgid "You will be prompted to enter the delay time, in seconds, between display updates."
+msgstr "Man får frågan om att ange fördröjningstiden, i sekunder, mellan skärmuppdateringar."
+
+#. type: Plain text
+#: ../man/top.1:1387
+msgid "Fractional seconds are honored, but a negative number is not allowed. Entering 0 causes (nearly) continuous updates, with an unsatisfactory display as the system and tty driver try to keep up with \\*(We's demands. The delay value is inversely proportional to system loading, so set it with care."
+msgstr "Delar av sekunder respekteras, men ett negativt tal är inte tillåtet. Att ange 0 medför (nästan) kontinuerliga uppdateringar, med en otillfredsställande bild eftersom systemet och tty-drivritunen försöker hänga med i \\*(Wes begäranden. Fördröjningsvärdet är omvänt proportionellt till systembelastningen, så sätt det med försiktighet."
+
+#. type: Plain text
+#: ../man/top.1:1390
+msgid "If at any time you wish to know the current delay time, simply ask for help and view the system summary on the second line."
+msgstr "Om man vid något tillfälle vill veta den aktuella fördröjningstiden, be helt enkelt om hjälp och se systemsammanfattningen på andra raden."
+
+#. type: TP
+#: ../man/top.1:1391
+#, no-wrap
+msgid "\\ \\ \\ B<E>\\ \\ :I<Enforce-Summary-Memory-Scale> in Summary Area"
+msgstr "\\ \\ \\ B<E>\\ \\ :I<Styr sammanfattningens minnesskala> i sammanfattningsområdet"
+
+#. type: Plain text
+#: ../man/top.1:1396
+msgid "With this command you can cycle through the available \\*(SA memory scaling which ranges from KiB (kibibytes or 1,024 bytes) through EiB (exbibytes or 1,152,921,504,606,846,976 bytes)."
+msgstr "Med detta kommando kan man gå runt mellan de möjliga minnesskalningarna i \\*(SAt vilket går från KiB (kibibyte ller 1\\ 024 byte) till EiB (exbibyte eller 1\\ 152\\ 921\\ 504\\ 606\\ 846\\ 976 byte)."
+
+#. type: Plain text
+#: ../man/top.1:1400
+msgid "If you see a `+' between a displayed number and the following label, it means that \\*(We was forced to truncate some portion of that number. By raising the scaling factor, such truncation can be avoided."
+msgstr "Om man ser ett â€+†mellan ett visat tal och den följande etiketten betyder det att \\*(We var tvunget att hugga av en del av det talet. Genom att öka skalfaktorn kan sÃ¥dan avhuggning undvikas."
+
+#. type: TP
+#: ../man/top.1:1401
+#, no-wrap
+msgid "\\ \\ \\ B<e>\\ \\ :I<Enforce-Task-Memory-Scale> in Task Area"
+msgstr "\\ \\ \\ B<e>\\ \\ :I<Styr uppgiftsminnesskallan> i uppgiftsområdet"
+
+#. type: Plain text
+#: ../man/top.1:1406
+msgid "With this command you can cycle through the available \\*(TA memory scaling which ranges from KiB (kibibytes or 1,024 bytes) through PiB (pebibytes or 1,125,899,906,842,624 bytes)."
+msgstr "Med detta kommando kan man gå runt mellan de tillgängliga minnesskalningarna i \\*(TAt viket går från KiB (kibibyte eller 1\\ 024 byte) till PiB (pebibyte eller 1\\ 125\\ 899\\ 906\\ 842\\ 624 byte)."
+
+#. type: Plain text
+#: ../man/top.1:1413
+msgid "While \\*(We will try to honor the selected target range, additional scaling might still be necessary in order to accommodate current values. If you wish to see a more homogeneous result in the memory columns, raising the scaling range will usually accomplish that goal. Raising it too high, however, is likely to produce an all zero result which cannot be suppressed with the `0' \\*(CI."
+msgstr "Även om \\*(We kommer försöka respektera den valda mÃ¥lintervallet kan ytterligare skalning fortfarande vara nödvändigt för att fÃ¥ plats med aktuella värden. OM man vill se ett mer homgent resultat i minneskolumnerna är att höja skalintervallet vanligen ett sätt att nÃ¥ det mÃ¥let. Att öka det för högt kommer dock förmodligen skapa ett resultat med bara nollor vilket inte kan undertryckas med det interaktiva kommandot â€0â€."
+
+#. type: TP
+#: ../man/top.1:1414
+#, no-wrap
+msgid "\\ \\ \\ B<g>\\ \\ :I<Choose-Another-Window/Field-Group >"
+msgstr "\\ \\ \\ B<g>\\ \\ :I<Välj en annan fönster-/fältgrupp>"
+
+#. type: Plain text
+#: ../man/top.1:1420
+msgid "You will be prompted to enter a number between 1 and 4 designating the \\*(FG which should be made the \\*(CW. You will soon grow comfortable with these 4 windows, especially after experimenting with \\*(AM."
+msgstr "Man kommer få frågan om att ange ett tal mellan 1 och 4 som anger den \\*(FG som skall göras till \\*(CW. Man blir snart bekväm med dessa 4 fönster, särskilt efter att ha experimenterat med \\*(AM."
+
+#. type: TP
+#: ../man/top.1:1421
+#, no-wrap
+msgid "\\ \\ \\ B<H>\\ \\ :I<Threads-mode> toggle "
+msgstr "\\ \\ \\ B<H>\\ \\ :I<Trådläges>växel"
+
+#. type: Plain text
+#: ../man/top.1:1426
+msgid "When this toggle is \\*O, individual threads will be displayed for all processes in all visible \\*(TWs. Otherwise, \\*(We displays a summation of all threads in each process."
+msgstr "När denna växel är \\*O kommer enskilda trådar visas för alla processer i alla synliga \\*(TW. Annars visar \\*(We en sammanfattning av alla trådar i varje process."
+
+#. type: TP
+#: ../man/top.1:1427
+#, no-wrap
+msgid "\\ \\ \\ B<I>\\ \\ :I<Irix/Solaris-Mode> toggle "
+msgstr "\\ \\ \\ B<I>\\ \\ :I<Irix-/Solaris-läges>växel"
+
+#. type: Plain text
+#: ../man/top.1:1432
+msgid "When operating in Solaris mode (`I' toggled \\*F), a task's \\*(Pu usage will be divided by the total number of \\*(PUs. After issuing this command, you'll be told the new state of this toggle."
+msgstr "När man arbetar i Solaris-läge (â€I†växlat \\*F) kommer en uppgifts \\*(Pu-användning delas med det totala antalet \\*(Pu:er. Efter att ge detta kommando blir man meddelad om det nya tillstÃ¥ndet för denna växel."
+
+#. type: TP
+#: ../man/top.1:1433
+#, no-wrap
+msgid "*\\ \\ B<k>\\ \\ :I<Kill-a-task >"
+msgstr "*\\ \\ B<k>\\ \\ :I<Döda en uppgift>"
+
+#. type: Plain text
+#: ../man/top.1:1436
+msgid "You will be prompted for a PID and then the signal to send."
+msgstr "Man får frågan om vilken PID och signalen som skall skickas."
+
+#. type: Plain text
+#: ../man/top.1:1440 ../man/top.1:1462
+msgid "Entering no PID or a negative number will be interpreted as the default shown in the prompt (the first task displayed). A PID value of zero means the \\*(We program itself."
+msgstr "Att inte ange någon PID eller ett negativt tal kommer tolkas som standardvärdet i frågan (den första uppgift som är listad). Ett PID-värde på noll betyer programmet \\*(We självt."
+
+#. type: Plain text
+#: ../man/top.1:1443
+msgid "The default signal, as reflected in the prompt, is SIGTERM. However, you can send any signal, via number or name."
+msgstr "Standardsignalen, som den avspeglas i frågan, är SIGTERM. Man kan dock skicka vilken signal som helst, via nummer eller namn."
+
+#. type: Plain text
+#: ../man/top.1:1446
+msgid "If you wish to abort the kill process, do one of the following depending on your progress:"
+msgstr "Om man vill avbryta dödandeprocessen, gör men en av följande beroende på hur långt man kommit:"
+
+#. type: Plain text
+#: ../man/top.1:1450
+#, no-wrap
+msgid ""
+" 1) at the pid prompt, type an invalid number\n"
+" 2) at the signal prompt, type 0 (or any invalid signal)\n"
+" 3) at any prompt, type E<lt>EscE<gt>\n"
+msgstr ""
+" 1) vid frågan om pid, skriv ett ogiltigt nummer\n"
+" 2) vid frågan om signal, skriv 0 (eller godtycklig ogiltig signal)\n"
+" 3) vid godtycklig fråga, skriv E<lt>EscE<gt>\n"
+
+#. type: TP
+#: ../man/top.1:1452
+#, no-wrap
+msgid "\\ \\ \\ B<q>\\ \\ :I<Quit >"
+msgstr "\\ \\ \\ B<q>\\ \\ :I<Avsluta>"
+
+#. type: TP
+#: ../man/top.1:1455
+#, no-wrap
+msgid "*\\ \\ B<r>\\ \\ :I<Renice-a-Task >"
+msgstr "*\\ \\ B<r>\\ \\ :I<Ändra nice för en uppgift>"
+
+#. type: Plain text
+#: ../man/top.1:1458
+msgid "You will be prompted for a PID and then the value to nice it to."
+msgstr "Man får fråga om ett PID och sedan värdet att sätta dess nice till."
+
+#. type: Plain text
+#: ../man/top.1:1468
+msgid "A positive nice value will cause a process to lose priority. Conversely, a negative nice value will cause a process to be viewed more favorably by the kernel. As a general rule, ordinary users can only increase the nice value and are prevented from lowering it."
+msgstr "Ett positivt nice-värde gör att processen förlorar prioritet. Omvänt gör ett negativt nice-värde att processen ses mer fördelaktigt av kärnan. Som en allmän regel kan vanliga användare bara öka nice-värdet och hindras från att sänka det."
+
+#. type: Plain text
+#: ../man/top.1:1471
+msgid "If you wish to abort the renice process, do one of the following depending on your progress:"
+msgstr "Om man vill avbryta processen att ändra nice-värde, gör men en av följande beroende på hur långt man kommit:"
+
+#. type: Plain text
+#: ../man/top.1:1475
+#, no-wrap
+msgid ""
+" 1) at the pid prompt, type an invalid number\n"
+" 2) at the nice prompt, type E<lt>EnterE<gt> with no input\n"
+" 3) at any prompt, type E<lt>EscE<gt>\n"
+msgstr ""
+" 1) vid frågan om pid, skriv ett ogiltigt nummer\n"
+" 2) vid frågan om nice, skriv E<lt>EnterE<gt> utan någon indata\n"
+" 3) vid godtycklig fråga, skriv E<lt>EscE<gt>\n"
+
+#. type: TP
+#: ../man/top.1:1477
+#, no-wrap
+msgid "\\ \\ \\ B<W>\\ \\ :I<Write-the-Configuration-File >"
+msgstr "\\ \\ \\ B<W>\\ \\ :I<Skriv konfigurationsfilen>"
+
+#. type: Plain text
+#: ../man/top.1:1483
+msgid "This will save all of your options and toggles plus the current display mode and delay time. By issuing this command just before quitting \\*(We, you will be able restart later in exactly that same state."
+msgstr "Detta kommer spara alla valda alternativ och växlar plus det aktuella visningsläget och fördröjningstiden. Genom att ge detta kommando just före man avslutar \\*(We kan man återstarta senare i exakt samma tillstånd."
+
+#. type: TP
+#: ../man/top.1:1484
+#, no-wrap
+msgid "\\ \\ \\ B<X>\\ \\ :I<Extra-Fixed-Width >"
+msgstr "\\ \\ \\ B<X>\\ \\ :I<Extra fältbredd>"
+
+#. type: Plain text
+#: ../man/top.1:1489
+msgid "Some fields are fixed width and not scalable. As such, they are subject to truncation which would be indicated by a `+' in the last position."
+msgstr "NÃ¥gra fält har fix bred och är inte skalbara. Som sÃ¥dana är de föremÃ¥l för avhuggning vilket indikeras av ett â€+†i den sista positionen."
+
+#. type: Plain text
+#: ../man/top.1:1491
+msgid "This \\*(CI can be used to alter the widths of the following fields:"
+msgstr "Detta interaktiva kommando kan användas för att ändra bredden på följande fält:"
+
+#. type: Plain text
+#: ../man/top.1:1503
+#, no-wrap
+msgid ""
+" I< field default field default field default >\n"
+" GID 5 GROUP 8 WCHAN 10\n"
+" LOGID 5 LXC 8 nsCGROUP 10\n"
+" RUID 5 RUSER 8 nsIPC 10\n"
+" SUID 5 SUSER 8 nsMNT 10\n"
+" UID 5 TTY 8 nsNET 10\n"
+" USER 8 nsPID 10\n"
+" nsTIME 10\n"
+" nsUSER 10\n"
+" nsUTS 10\n"
+msgstr ""
+" I< fält standard fält standard fält standard >\n"
+" GID 5 GRUPP 8 VKAN 10\n"
+" LOGID 5 LXC 8 nrGRUPPER 10\n"
+" VAID 5 VANV 8 nrIPK 10\n"
+" SUID 5 SANV 8 nrMNT 10\n"
+" AID 5 TTY 8 nrNÄT 10\n"
+" ANVÄNDARE 8 nrPID 10\n"
+" nrTID 10\n"
+" nrANV 10\n"
+" nrUTS 10\n"
+
+#. type: Plain text
+#: ../man/top.1:1508
+msgid "You will be prompted for the amount to be added to the default widths shown above. Entering zero forces a return to those defaults."
+msgstr "Man får frågan om mängden att lägga till till standardbredderna visade ovan. Att ange noll återställer till dessa standardvärden."
+
+#. type: Plain text
+#: ../man/top.1:1511
+msgid "If you enter a negative number, \\*(We will automatically increase the column size as needed until there is no more truncated data."
+msgstr "Om man anger ett negativt tal kommer \\*(We automatiskt öka kolumstorleken så mycket som behövs tills det inte finns någon mer avhuggen data."
+
+#. type: Plain text
+#: ../man/top.1:1515
+msgid "\\*(NT Whether explicitly or automatically increased, the widths for these fields are never decreased by \\*(We. To narrow them you must specify a smaller number or restore the defaults."
+msgstr "\\*(NT oavsett om de ökas explicit eller automatiskt minskas aldrig bredden på dessa fält av \\*(We. För att smalna av dem måste man ange ett mindre tal eller återställa standardvärdena."
+
+#. type: TP
+#: ../man/top.1:1516
+#, no-wrap
+msgid "\\ \\ \\ B<Y>\\ \\ :I<Inspect-Other-Output >"
+msgstr "\\ \\ \\ B<Y>\\ \\ :I<Inspektera annan utmatning>"
+
+#. type: Plain text
+#: ../man/top.1:1522
+msgid "After issuing the `Y' \\*(CI, you will be prompted for a target PID. Typing a value or accepting the default results in a separate screen. That screen can be used to view a variety of files or piped command output while the normal \\*(We iterative display is paused."
+msgstr "Efter att man gett det interaktiva kommandog â€Y†kommer man fÃ¥ frÃ¥gan om en mÃ¥l-PID. Att skriva ett värde eller godta standardvärdet resulterar i en separat skärm. Den skärmen kan användas för att se olika filer eller rör-kommandons utdata medan den normala iterativa uppdateringen av \\*(We är pausad."
+
+#. type: Plain text
+#: ../man/top.1:1526
+msgid "\\*(NT This \\*(CI is only fully realized when supporting entries have been manually added to the end of the \\*(We \\*(CF. For details on creating those entries, \\*(Xt 6b. ADDING INSPECT Entries."
+msgstr "\\*(NT detta interaktiva kommando är bara fullt ut förverkligat när stödjande poster manuellt har lagts till till slutet av \\*(CFen för \\*(We. För detaljer om att skapa dessa poster, \\*(XT 6b. LÄGGA TILL INSPEKTIONSposter."
+
+#. type: Plain text
+#: ../man/top.1:1533
+msgid "Most of the keys used to navigate the Inspect feature are reflected in its header prologue. There are, however, additional keys available once you have selected a particular file or command. They are familiar to anyone who has used the pager `less' and are summarized here for future reference."
+msgstr "De flesta tangenter som används för att styra inspektionsfunktionen visas i dess huvudprolog. Det finns dock ytterligare tangenter tillgängliga när man har valt en viss fil eller ett visst kommando. De är bekanta för den som har använt bläddraren â€less†och sammanfattas här för framtida referens."
+
+#. type: Plain text
+#: ../man/top.1:1543
+#, no-wrap
+msgid ""
+" I< key function >\n"
+" = alternate status-line, file or pipeline\n"
+" / find, equivalent to `L' locate\n"
+" n find next, equivalent to `&' locate next\n"
+" E<lt>SpaceE<gt> scroll down, equivalent to E<lt>PgDnE<gt>\n"
+" b scroll up, equivalent to E<lt>PgUpE<gt>\n"
+" g first line, equivalent to E<lt>HomeE<gt>\n"
+" G last line, equivalent to E<lt>EndE<gt>\n"
+msgstr ""
+" I<tangent funktion>\n"
+" = växla statusrad, fil eller rör\n"
+" / sök, ekvivalent med â€L†lokalisera\n"
+" n sök nästa, ekvivalent med â€&†lokalisera nästa\n"
+" E<lt>MellanslagE<gt> rulla ner, ekvivalent med E<lt>PgDnE<gt>\n"
+" b rulla upp, ekvivalent med E<lt>PgUpE<gt>\n"
+" g första raden, ekvivalent med E<lt>HomeE<gt>\n"
+" G sista raden, ekvivalent med E<lt>EndE<gt>\n"
+
+#. type: TP
+#: ../man/top.1:1545
+#, no-wrap
+msgid "\\ \\ \\ B<Z>\\ \\ :I<Change-Color-Mapping >"
+msgstr "\\ \\ \\ B<Z>\\ \\ :I<Byt färgavbildning>"
+
+#. type: Plain text
+#: ../man/top.1:1550
+msgid "This key will take you to a separate screen where you can change the colors for the \\*(CW, or for all windows. For details regarding this \\*(CI \\*(Xt 4d. COLOR Mapping."
+msgstr "Med detta kommando tas man till en separat skärm där man kan ändra färger för \\*(CW, eller för alla fönster. För detaljer om detta interaktiva kommando \\*(Xt 4d. FÄRGavbildning."
+
+#. type: Plain text
+#: ../man/top.1:1553
+msgid "\\ \\ B<^G>\\ \\ :I<Display-Control-Groups > (Ctrl key + `g')"
+msgstr "\\ \\ B<^G>\\ \\ :I<Visa-styrgrupper > (Ctrl-tangent + â€gâ€)"
+
+#. type: Plain text
+#: ../man/top.1:1555
+msgid "\\ \\ B<^K>\\ \\ :I<Display-Cmdline > (Ctrl key + `k')"
+msgstr "\\ \\ B<^K>\\ \\ :I<Visa-kommandorad > (Ctrl-tangent + â€kâ€)"
+
+#. type: Plain text
+#: ../man/top.1:1557
+msgid "\\ \\ B<^N>\\ \\ :I<Display-Environment > (Ctrl key + `n')"
+msgstr "\\ \\ B<^N>\\ \\ :I<Visa-miljö > (Ctrl-tangent + â€nâ€)"
+
+#. type: Plain text
+#: ../man/top.1:1559
+msgid "\\ \\ B<^P>\\ \\ :I<Display-Namesspaces > (Ctrl key + `p')"
+msgstr "\\ \\ B<^P>\\ \\ :I<Visa-namnrymder > (Ctrl-tangent + â€pâ€)"
+
+#. type: Plain text
+#: ../man/top.1:1561
+msgid "\\ \\ B<^U>\\ \\ :I<Display-Supplementary-Groups > (Ctrl key + `u')"
+msgstr "\\ \\ B<^U>\\ \\ :I<Visa-kompletterande-grupper > (Ctrl-tangent + â€uâ€)"
+
+#. type: Plain text
+#: ../man/top.1:1567
+msgid "Applied to the first process displayed, these commands will show that task's full (potentially wrapped) information. Such data will be displayed in a separate window at the bottom of the screen while normal \\*(We monitoring continues."
+msgstr "Tillämpat på den första visade processen kommer dessa kommandon visa den uppgiftens fullständiga (eventuellt radbrutna) information. Sådana data kommer visas i ett separat fönster längst ner på skärmen medan normal \\*(We-monitorering fortsätter."
+
+#. type: Plain text
+#: ../man/top.1:1572
+msgid "Keying theI< same> `Ctrl' command a second time removes that separate window as does the `=' command. Keying a different `Ctrl' combination, while one is already active, immediately transitions to the new information."
+msgstr "Att trycka I<samma> â€Ctrlâ€-kommando en andra gÃ¥ng tar bort det separata fönstret och detsamma gör kommandot â€=â€. Att trycka en annan â€Ctrlâ€-kombination medan en redan är aktiv byter omedelbart till den nya informationen."
+
+#. type: Plain text
+#: ../man/top.1:1577
+msgid "Notable among these provisions is the Ctrl+N (environment) command. Its output can be extensive and not easily read when line wrapped. A more readable version can be achieved with an `Inspect' entry in the rcfile like the following."
+msgstr "Värt att notera bland dessa möjligheter är kommandot Ctrl+N (miljö). Dess utdata kan vara omfattande och inte lätt att läsa när den är radbruten. En mer läsbar version kan uppnÃ¥s med ett â€Inspekteraâ€-post i rcfile-filen liksom den följande."
+
+#. type: Plain text
+#: ../man/top.1:1580
+#, no-wrap
+msgid " pipe ^I Environment ^I cat /proc/%d/environ | tr '\\e0' '\\en'\n"
+msgstr " pipe ^I Miljö ^I cat /proc/%d/environ | tr '\\e0' '\\en'\n"
+
+#. type: Plain text
+#: ../man/top.1:1584
+msgid "\\*(XC `Y' \\*(CI above and topic 6b. ADDING INSPECT Entries for additional information."
+msgstr "\\*(XC det interaktiva kommandot â€Y†ovan och avsnittet 6b. LÄGGA TILL INSPEKTIONSposter för ytterligare information."
+
+#. type: Plain text
+#: ../man/top.1:1588
+msgid "As an alternative to `Inspect', and available to all of these `Ctrl' commands, the tab key can be used to highlight individual elements in the bottom window."
+msgstr "Som ett alternativ till â€Inspekteraâ€, och tillgängligt för alla dessa â€Ctrlâ€-kommandon kan tabulatortangenten användas för att markera enskilda element i bottenfönstret."
+
+#. type: TP
+#: ../man/top.1:1590
+#, no-wrap
+msgid "\\ \\ B<^L>\\ \\ :I<Logged-Messages > (Ctrl key + `l')"
+msgstr "\\ \\ B<^L>\\ \\ :I<Loggade-meddelanden > (Ctrl-tangent + â€lâ€)"
+
+#. type: Plain text
+#: ../man/top.1:1596
+msgid "The 10 most recent messages are displayed in a separate window at the bottom of the screen while normal \\*(We monitoring continues. Keying `^L' a second time removes that window as does the `=' command. Use the tab key to highlight individual messages."
+msgstr "De 10 senaste meddelandena visas i ett separat fönster längst ner pÃ¥ skärmen samtidigt som normal \\*(We-monitorering fortsätter. Att trycka â€^L†en andra gÃ¥ng tar bort det fönstret och detsamma gör kommandot â€=â€. Använd tabulatortangenten för att markera enskilda meddelanden."
+
+#. type: TP
+#: ../man/top.1:1597
+#, no-wrap
+msgid "*\\ B<^R>\\ \\ :I<Renice-an-Autogroup > (Ctrl key + `r')"
+msgstr "*\\ B<^R>\\ \\ :I<Ändra-nice-pÃ¥-en-autogrupp > (Ctrl-tangent + â€râ€)"
+
+#. type: Plain text
+#: ../man/top.1:1601
+msgid "You will be prompted for a PID and then the value for its autogroup AGNI."
+msgstr "Man får fråga om en PID och sedan värdet på dess autogrupps AGNI."
+
+#. type: Plain text
+#: ../man/top.1:1604
+msgid "Entering no PID will be interpreted as the default shown in the prompt (the first task displayed)."
+msgstr "Att inte ange någon PID kommer tolkas som standardvärdet som visas i prompten (den första visade uppgiften)."
+
+#. type: Plain text
+#: ../man/top.1:1610
+msgid "A positive AGNI value will cause processes in that autogroup to lose priority. Conversely, a negative value causes them to be viewed more favorably by the kernel. Ordinary users are not allowed to set negative AGNI values."
+msgstr "Ett positivt AGNI-värde kommer göra att processer i den autogruppen förlorar prioritet. Omvänt gör ett negativt värde att de kommer betraktas mer förmånligt av kärnan. Vanliga användare tillåts inte sätta negativa AGNI-värden."
+
+#. type: Plain text
+#: ../man/top.1:1612
+msgid "If you wish to abort the renice process type E<lt>EscE<gt>."
+msgstr "Om man vill avbryta processen att ändra nice-värde skriver man E<lt>EscE<gt>."
+
+#. type: IP
+#: ../man/top.1:1613 ../man/top.1:2134
+#, no-wrap
+msgid "*"
+msgstr "*"
+
+#. type: Plain text
+#: ../man/top.1:1616
+msgid "The commands shown with an \\*(AK are not available in Secure mode, nor will they be shown on the level-1 help screen."
+msgstr "Kommandon som visas med en \\*(AK är inte tillgängliga i säkert läge, inte heller kommer de visas på hjälpskärm nivå-1."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1618
+#, no-wrap
+msgid "4b. SUMMARY AREA Commands"
+msgstr "4b. SAMMANFATTNINGSOMRÃ…DETS kommandon"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1623
+msgid "The \\*(SA \\*(CIs areB< always available> in both \\*(FM and \\*(AM. They affect the beginning lines of your display and will determine the position of messages and prompts."
+msgstr "Sammanfattningsområdets interaktiva kommandon är B<alltid tillgängliga> i både \\*(FM och \\*(AM. De påverkar de inledande raderna på skärmen och avgör positionen för meddelanden och frågor."
+
+#. type: Plain text
+#: ../man/top.1:1627
+msgid "These commands always impact just the \\*(CG. \\*(XT 5. ALTERNATE-DISPLAY Provisions and the `g' \\*(CI for insight into \\*(CWs and \\*(FGs."
+msgstr "Dessa kommandon pÃ¥verar alltid bara \\*(CG. \\*(XT 5. ALTERNATIVA SKÄRMARS utseende och det interaktiva kommandot â€g†för kunskap om \\*(CW och \\*(FGer."
+
+#. type: TP
+#: ../man/top.1:1628
+#, no-wrap
+msgid "\\ \\ \\ B<C>\\ \\ :I<Show-scroll-coordinates> toggle "
+msgstr "\\ \\ \\ B<C>\\ \\ :I<Visa rullkoordinaters>växel"
+
+#. type: Plain text
+#: ../man/top.1:1633
+msgid "Toggle an informational message which is displayed whenever the message line is not otherwise being used. For additional information \\*(Xt 5c. SCROLLING a Window."
+msgstr "Växla ett informationsmeddelande som visas när meddelanderaden inte används till något annat. För ytterligare information \\*(Xt 5c. RULLA ett fönster."
+
+#. type: TP
+#: ../man/top.1:1634
+#, no-wrap
+msgid "\\ \\ \\ B<l>\\ \\ :I<Load-Average/Uptime> toggle "
+msgstr "\\ \\ \\ B<l>\\ \\ :I<Lastgenomsnitts/uppetids>växel"
+
+#. type: Plain text
+#: ../man/top.1:1638
+msgid "This is also the line containing the program name (possibly an alias) when operating in \\*(FM or the \\*(CW name when operating in \\*(AM."
+msgstr "Detta är också raden som innehåller programnamnet (möjligen ett alias) när man kör i \\*(FM eller namnet på \\*(CW när man kör i \\*(AM."
+
+#. type: TP
+#: ../man/top.1:1639
+#, no-wrap
+msgid "\\ \\ \\ B<t>\\ \\ :I<Task/Cpu-States> toggle "
+msgstr "\\ \\ \\ B<t>\\ \\ :I<Uppgifts/cpu-tillstånds>växel"
+
+#. type: Plain text
+#: ../man/top.1:1644
+msgid "This command affects from 2 to many \\*(SA lines, depending on the state of the `1', `2' or `3' \\*(CTs and whether or not \\*(We is running under true SMP."
+msgstr "Detta kommando pÃ¥verkar frÃ¥n 2 till mÃ¥nga \\*(SAsrader, beroende pÃ¥ tillstÃ¥ndet hos kommandoflaggorna â€1â€, â€2†eller â€3†och huruvida eller inte \\*(We kör under sant SMP."
+
+#. type: Plain text
+#: ../man/top.1:1647
+msgid "This portion of the \\*(SA is also influenced by the `H' \\*(CI toggle, as reflected in the total label which shows either Tasks or Threads."
+msgstr "Denna del av av \\*(SAt pÃ¥verkas även av den den interaktiva kommandoflaggan â€Hâ€, eftersom den avspeglas i den totala etiketten vilken visar antinge uppgifter eller trÃ¥dar."
+
+#. type: Plain text
+#: ../man/top.1:1649 ../man/top.1:1666
+msgid "This command serves as a 4-way toggle, cycling through these modes:"
+msgstr "Detta kommando fungerar som en 4-vägsväxel, och roterar genom dessa lägen:"
+
+#. type: Plain text
+#: ../man/top.1:1654
+#, no-wrap
+msgid ""
+" 1. detailed percentages by category\n"
+" 2. abbreviated user/system and total % + bar graph\n"
+" 3. abbreviated user/system and total % + block graph\n"
+" 4. turn off task and cpu states display\n"
+msgstr ""
+" 1. detaljerade procentsatser efter kategori\n"
+" 2. förkortade användar/system och total % + stapeldiagram\n"
+" 3. förkortade användar/system och total % + blockdiagram\n"
+" 4. slå av visning av uppgifter och cpu-tillstånd\n"
+
+#. type: Plain text
+#: ../man/top.1:1659
+msgid "When operating in either of the graphic modes, the display becomes much more meaningful when individual CPUs or NUMA nodes are also displayed. \\*(XC the `1', `2' and `3' commands below for additional information."
+msgstr "När man kör i endera av de grafiska lägena blir skärmen mycket mer meningsfull när individuella CPU:er eller NUMA-noder ocksÃ¥ visas. \\*(XC kommandona â€1â€, â€2†och â€3†nedan för ytterligare information."
+
+#. type: TP
+#: ../man/top.1:1660
+#, no-wrap
+msgid "\\ \\ \\ B<m>\\ \\ :I<Memory/Swap-Usage> toggle "
+msgstr "\\ \\ \\ B<m>\\ \\ :I<Minnes-/växlingsanvändnings>växel"
+
+#. type: Plain text
+#: ../man/top.1:1664
+msgid "This command affects the two \\*(SA lines dealing with physical and virtual memory."
+msgstr "Detta kommando påverkar de två \\*(SAsraderna som hanterar fysiskt och virtuellt minne."
+
+#. type: Plain text
+#: ../man/top.1:1671
+#, no-wrap
+msgid ""
+" 1. detailed percentages by memory type\n"
+" 2. abbreviated % used/total available + bar graph\n"
+" 3. abbreviated % used/total available + block graph\n"
+" 4. turn off memory display\n"
+msgstr ""
+" 1. detaljerade procentsatser efter minnestyp\n"
+" 2. förkortad % använt/totalt tillgängligt + stapeldiagram\n"
+" 3. förkortad % använt/totalt tillgängligt + blockdiagram\n"
+" 4. slå av visning av minne\n"
+
+#. type: TP
+#: ../man/top.1:1673
+#, no-wrap
+msgid "\\ \\ \\ B<1>\\ \\ :I<Single/Separate-Cpu-States> toggle "
+msgstr "\\ \\ \\ B<1>\\ \\ :I<Enkla/separata cpu-tillstånds>växel"
+
+#. type: Plain text
+#: ../man/top.1:1678
+msgid "This command affects how the `t' command's Cpu States portion is shown. Although this toggle exists primarily to serve massively-parallel SMP machines, it is not restricted to solely SMP environments."
+msgstr "Detta kommando pÃ¥verkar hur kommandot â€tâ€:s cpu-tillstÃ¥ndsdel visas. Även om denna växel finns först och främst för att hantera massivt parallella SMP-maskiner är den itne begränsad endast till SMP-miljöer."
+
+#. type: Plain text
+#: ../man/top.1:1683
+msgid "When you see `%Cpu(s):' in the \\*(SA, the `1' toggle is \\*O and all \\*(Pu information is gathered in a single line. Otherwise, each \\*(Pu is displayed separately as: `%Cpu0, %Cpu1, ...' up to available screen height."
+msgstr "När man ser â€%Cpu(s):' i \\*(SA är växeln â€1†\\*O och all \\*(Pu-information samlas pÃ¥ en enda rad. Annars visas varje \\*(Pu separat som: â€%Cpu0, %Cpu1, …†upp till den tillgängliga skärmhöjden."
+
+#. type: TP
+#: ../man/top.1:1684
+#, no-wrap
+msgid "\\ \\ \\ B<2>\\ \\ :I<NUMA-Nodes/Cpu-Summary> toggle "
+msgstr "\\ \\ \\ B<2>\\ \\ :I<NUMA-noder/cpu-sammanfattnings>växel"
+
+#. type: Plain text
+#: ../man/top.1:1689
+msgid "This command toggles between the `1' command cpu summary display (only) or a summary display plus the cpu usage statistics for each NUMA Node. It is only available if a system has the requisite NUMA support."
+msgstr "Detta kommando vexlar mellan kommandot â€1†cpu-sammanfattnignsskärm (endast) eller en sammanfattningsskärm plus cpu-användningsstatistiken för varje NUMA-nod. Det är endast tillgängligt om ett system har det nödvändiga stödet för NUMA."
+
+#. type: TP
+#: ../man/top.1:1690
+#, no-wrap
+msgid "\\ \\ \\ B<3>\\ \\ :I<Expand-NUMA-Node >"
+msgstr "\\ \\ \\ B<3>\\ \\ :I<Expandera-NUMA-nod>"
+
+#. type: Plain text
+#: ../man/top.1:1696
+msgid "You will be invited to enter a number representing a NUMA Node. Thereafter, a node summary plus the statistics for each cpu in that node will be shown until the `1', `2' or `4' \\*(CT is pressed. This \\*(CI is only available if a system has the requisite NUMA support."
+msgstr "Man erbjuds att ange ett nummer som representerar en NUMA-nod. Därefter kommer en nodsammanfattning plus statistik för varje cpu i den noden att visas tills \\*(CTn â€1â€, â€2†eller â€4†trycks. Detta interaktiva kommando är endast tillgängligt om ett system har det nödvändiga stödet för NUMA."
+
+#. type: TP
+#: ../man/top.1:1697
+#, no-wrap
+msgid "\\ \\ \\ B<4>\\ \\ :I<Display-Multiple-Elements-Adjacent> toggle "
+msgstr "\\ \\ \\ B<4>\\ \\ :I<Visa-flera-element-intill>växel "
+
+#. type: Plain text
+#: ../man/top.1:1703
+msgid "This \\*(CT turns the `1' toggle \\*F and shows multiple \\*(PU and Memory results on each line. Each successive `4' key adds another \\*(PU until again reverting to separate lines for \\*(PU and Memory results."
+msgstr "Denna \\*(CT slÃ¥r \\*F flaggan â€1†och visar flera \\*(PU- och minnesresultat pÃ¥ varje rad. Varje följande tangent â€4†lägger till en ytterligare \\*(PU tills den Ã¥tergÃ¥r igen till separata rader för \\*(PU- och minnesresultat."
+
+#. type: Plain text
+#: ../man/top.1:1709
+msgid "A maximum of 8 \\*(PUs per line can be displayed in this manner. However, data truncation may occur before reaching the maximum. That is definitely true when displaying detailed statistics via the `t' \\*(CT since such data cannot be scaled like the graphic representations."
+msgstr "Maximalt 8 \\*(PU:er per rad kan visas pÃ¥ detta sätt. Dock kan avhuggning av data förekomma före maximum nÃ¥s. Detta är särskilt sant när man visar detaljerad statistik via \\*(CTn â€t†eftersom sÃ¥dana data inte kan skalas sÃ¥som den grafiska representationen."
+
+#. type: Plain text
+#: ../man/top.1:1712
+msgid "If one wished to quickly exit adjacent mode without cycling all the way to 8, simply use the `1' \\*(CT."
+msgstr "Om man önskar att snabbt avsluta intilläge utan att gÃ¥ igenom alla sätt till 8, tryck helt enkelt pÃ¥ \\*(CTn â€1â€."
+
+#. type: TP
+#: ../man/top.1:1713
+#, no-wrap
+msgid "\\ \\ \\ B<5>\\ \\ :I<Display-P-Cores-and-E-Cores> toggle "
+msgstr "\\ \\ \\ B<5>\\ \\ :I<Visa-P-kärnor-och-E-kärnor>växel "
+
+#. type: Plain text
+#: ../man/top.1:1719
+msgid "This \\*(CT is only active when the `t' toggle is \\*O and the `1', `2', `3' and `!' toggles are \\*F, thus showing individual \\*(PU results. It assumes a platform has multiple cores of two distinct types, either multi-threaded (P-Core) or single-threaded (E-Core)."
+msgstr "Denna \\*(CT är endast aktiv när växeln â€t†är \\*O och växlarna â€1â€, â€2â€, â€3†och â€!†är \\*F, alltsÃ¥ visar individuella \\*(PU-resultat. Den antar att en plattform har flera kärnor av tvÃ¥ olika typer, antingen multitrÃ¥dade (P-kärnor) eller enkeltrÃ¥dade (E-kärnor)."
+
+#. type: Plain text
+#: ../man/top.1:1723
+msgid "While normally each \\*(Pu is displayed as `%Cpu0, %Cpu1, ...', this toggle can be used to identify and/or filter those \\*(Pus by their core type, either P-Core (performance) or E-Core (efficient)."
+msgstr "Medan normalt varje \\*(Pu visas som â€%Cpu0, %Cpu1, …†kan denna växel användas för att identifiera och/eller filtrera dessa \\(PU:er efter sin kärntyp, antinge P-kärna (prestanda) eller E-kärna (effektivitet)."
+
+#. type: Plain text
+#: ../man/top.1:1730
+msgid "The 1st time `5' is struck, each \\*(PU is displayed as `%CpB<P>' or `%CpB<E>' representing the two core types. The 2nd time, only P-Cores (%CpB<P>) will be shown. The 3rd time, only E-Cores (%CpB<E>) are displayed. When this \\*(CT is struck for the 4th time, the \\*(PU display returns to the normal `%Cpu' convention."
+msgstr "Den 1:a gÃ¥ngen â€5†skrivs visas varje \\*(PU som â€CpB<P>†eller â€%CpB<E>†som representerar de tvÃ¥ kärntyperna. Den 2:a gÃ¥ngen kommer endast P-kärnor (%CpB<P>) visas. Den 3:e gÃ¥ngen visas E-kärnor (%CpB<E>). När denna \\*(CT trycks den 4:e gÃ¥ngen Ã¥tergÃ¥r \\*(PU-visningen till den vanliga konventionen â€%Cpuâ€."
+
+#. type: Plain text
+#: ../man/top.1:1733
+msgid "If separateI< performance> andI< efficient> categories are not present, this \\*(CT will have no effect."
+msgstr "Om inte separataI< prestanda> ochI< effektiva> kategorier finns har denna \\*(CT ingen effekt."
+
+#. type: TP
+#: ../man/top.1:1734
+#, no-wrap
+msgid "\\ \\ \\ B<!>\\ \\ :I<Combine-Cpus-Mode> toggle "
+msgstr "\\ \\ \\ B<!>\\ \\ :I<Kombinera-cpu:er-läges>växel "
+
+#. type: Plain text
+#: ../man/top.1:1740
+msgid "This \\*(CT is intended for massively parallel SMP environments where, even with the `4' \\*(CT, not all processors can be displayed. With each press of `!' the number of \\*(Pus combined is doubled thus reducing the total number of \\*(Pu lines displayed."
+msgstr "Denna \\*(CT är avsedd för massivt parallella SMP-miljöer där, även med \\*(CTn â€4â€, inte alla processer kan visas. Med varje tryck pÃ¥ â€!†dubblas antalet \\*(Pu:er som kombineras och därmed reduceras det totala antalet \\*(Pu-rader som visas."
+
+#. type: Plain text
+#: ../man/top.1:1747
+msgid "For example, with the first press of `!' two \\*(Pus will be combined and displayed as `0-1, 2-3, ...' instead of the normal `%Cpu0, %Cpu1, %Cpu2, %Cpu3, ...'. With a second `!' \\*(CT four \\*(Pus are combined and shown as `0-3, 4-7, ...'. Then the third `!' press, combining eight \\*(Pus, shows as `0-7, 8-15, ...', etc."
+msgstr "Till exempel, med det första trycket pÃ¥ â€!†kmmer tvÃ¥ \\*(Pu:er kombineras och visas som â€0-1, 2-3, …†istället för de normala â€%Cpu0, %Cpu1, %Cpu2, %Cpu3, …â€. Med en andra \\*(CT â€!†kombineras fyra \\*(Pu:er och visas som â€0-3, 4-7, …â€. Sedan med ett tredje tryck pÃ¥ â€!â€, kombineras Ã¥tta \\*(Pu:er, och visas som â€0-7, 8-15, …â€, etc."
+
+#. type: Plain text
+#: ../man/top.1:1751
+msgid "Such progression continues until individual \\*(Pus are again displayed and impacts both the `1' and `4' toggles (one or multiple columns). Use the `=' command to exit B<Combine Cpus> mode."
+msgstr "SÃ¥ fortsätter det tills individuella \\*(Pu:er Ã¥terigen visas och pÃ¥verkar de bÃ¥da växlarna â€1†och â€4†(en eller flera kolumner). Används kommandot â€=†för att avsluta läget B<Kombinera-cpu:er>."
+
+#. type: Plain text
+#: ../man/top.1:1757
+msgid "\\*(NT If the entire \\*(SA has been toggled \\*F for any window, you would be left with just theB< message line>. In that way, you will have maximized available task rows but (temporarily) sacrificed the program name in \\*(FM or the \\*(CW name when in \\*(AM."
+msgstr "\\*(NT om hela \\*(SAt har slagits \\*F för något fönster skulle man bara ha kvar B<meddelanderaden>. På detta sätt har man då maximerat de tillgängliga raderna för uppgifter men (tillfälligt) offrat programnamnet i \\*(FM eller namnet på \\*(CW när man är i \\*(AM."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1759
+#, no-wrap
+msgid "4c. TASK AREA Commands"
+msgstr "4c. UPPGIFTOMRÃ…DETS kommandon"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1762
+msgid "The \\*(TA \\*(CIs areB< always> available in \\*(FM."
+msgstr "Uppgiftsområdets interaktiva kommandon är B<alltid> tillgängliga i \\*(FM."
+
+#. type: Plain text
+#: ../man/top.1:1765
+msgid "The \\*(TA \\*(CIs areB< never available> in \\*(AMI< if> the \\*(CW's \\*(TD has been toggled \\*F (\\*(Xt 5. ALTERNATE-DISPLAY Provisions)."
+msgstr "Uppgiftsområdets interaktiva kommandon är B<aldrig tillgängliga> \\*(AM I<om> \\*(TDen för \\*(CW har slagits \\*F (\\*(Xt 5. ALTERNATIVA SKÄRMARS utseende)."
+
+#. type: Plain text
+#: ../man/top.1:1769
+msgid "B<APPEARANCE> of \\*(TW"
+msgstr "B<UTSEENDET> på uppgiftsfönstret"
+
+#. type: TP
+#: ../man/top.1:1770
+#, no-wrap
+msgid "\\ \\ \\ B<J>\\ \\ :I<Justify-Numeric-Columns> toggle "
+msgstr "\\ \\ \\ B<J>\\ \\ :I<Justera numeriska kolumner>växel"
+
+#. type: Plain text
+#: ../man/top.1:1776
+msgid "Alternates between right-justified (the default) and left-justified numeric data. If the numeric data completely fills the available column, this \\*(CT may impact the column header only."
+msgstr "Växlar mellan högerjusterad (standard) och vänsterjusterad numerisk information. Om den numeriska datan helt fyller ut den tillgängliga kolumnen kan denna \\*(TC endast påverka kolumnhuvudet."
+
+#. type: TP
+#: ../man/top.1:1777
+#, no-wrap
+msgid "\\ \\ \\ B<j>\\ \\ :I<Justify-Character-Columns> toggle "
+msgstr "\\ \\ \\ B<j>\\ \\ :I<Justera teckenkolumner>växel"
+
+#. type: Plain text
+#: ../man/top.1:1783
+msgid "Alternates between left-justified (the default) and right-justified character data. If the character data completely fills the available column, this \\*(CT may impact the column header only."
+msgstr "Växlar mellan vänsterjusterad (standard) och högerjusterad teckeninformation. OM teckendatan helt fyller ut den tillgängliga kolumnen kan denna \\*(CT endast påverka kolumnhuvudet."
+
+#. type: Plain text
+#: ../man/top.1:1788
+msgid "The following commands will also be influenced by the state of the global `B' (bold enable) toggle."
+msgstr "Följande kommandon kommer även att pÃ¥verkas av tillstÃ¥ndet hos den globala växeln â€B†(aktivera fetstil)."
+
+#. type: TP
+#: ../man/top.1:1790
+#, no-wrap
+msgid "\\ \\ \\ B<b>\\ \\ :I<Bold/Reverse> toggle "
+msgstr "\\ \\ \\ B<b>\\ \\ :I<Fet/invers>växel"
+
+#. type: Plain text
+#: ../man/top.1:1795
+msgid "This command will impact how the `x' and `y' toggles are displayed. It may also impact the \\*(SA when a bar graph has been selected for \\*(Pu states or memory usage via the `t' or `m' toggles."
+msgstr "Detta kommando kommer pÃ¥verka hur växlarna â€x†och â€y†visas. Det kan ocksÃ¥ pÃ¥verka \\*(SAt när stapeldiagram har valts för \\*(Pu-tillstÃ¥nd eller minnesanvändning via växlarna â€t†eller â€mâ€."
+
+#. type: TP
+#: ../man/top.1:1796
+#, no-wrap
+msgid "\\ \\ \\ B<x>\\ \\ :I<Column-Highlight> toggle "
+msgstr "\\ \\ \\ B<x>\\ \\ :I<Kolumnmarkerings>växel"
+
+#. type: Plain text
+#: ../man/top.1:1804
+#, no-wrap
+msgid ""
+"Changes highlighting for the current sort field.\n"
+"If you forget which field is being sorted this command can serve as a quick\n"
+"visual reminder, providing the sort field is being displayed.\n"
+"The sort field mightI< not> be visible because:\n"
+" 1) there is insufficientI< Screen Width >\n"
+" 2) the `f' \\*(CI turned it \\*F\n"
+msgstr ""
+"Ändrar markeringen för det aktuella sorteringsfältet.\n"
+"Om man glömmer vilket fält som sorteras kan detta kommando fungera som en snabb\n"
+"visuell påminnelse, förutsat att sorteringsfältet visas.\n"
+"Sorteringsfältet behöver I<inte> vara synligt på grund av att\n"
+" 1) det finns otillräckligt med I<skärmbredd>\n"
+" 2) det interaktiva kommandot â€f†har slaget \\*F det\n"
+
+#. type: TP
+#: ../man/top.1:1805
+#, no-wrap
+msgid "\\ \\ \\ B<y>\\ \\ :I<Row-Highlight> toggle "
+msgstr "\\ \\ \\ B<y>\\ \\ :I<Radmarkerings>växel"
+
+#. type: Plain text
+#: ../man/top.1:1810
+msgid "Changes highlighting for \"running\" tasks. For additional insight into this task state, \\*(Xt 3a. DESCRIPTIONS of Fields, the `S' field (Process Status)."
+msgstr "Byter markering för â€körande†uppgifter. För ytterligare kunskap om detta uppgiftstillstÃ¥nd, \\*(Xt 3a. BESKRIVNING av fält, fältet â€S†(processtatus)."
+
+#. type: Plain text
+#: ../man/top.1:1813
+msgid "Use of this provision provides important insight into your system's health. The only costs will be a few additional tty escape sequences."
+msgstr "Användning av denna möjlighet ger viktiga kunskaper om systemets hälsa. Den enda kostnaden kommer vara några få ytterligare tty-flyktföljder."
+
+#. type: TP
+#: ../man/top.1:1814
+#, no-wrap
+msgid "\\ \\ \\ B<z>\\ \\ :I<Color/Monochrome> toggle "
+msgstr "\\ \\ \\ B<z>\\ \\ :I<Färg/monokrom>växel"
+
+#. type: Plain text
+#: ../man/top.1:1820
+msgid "Switches the \\*(CW between your last used color scheme and the older form of black-on-white or white-on-black. This command will alterB< both> the \\*(SA and \\*(TA but does not affect the state of the `x', `y' or `b' toggles."
+msgstr "Byter det aktuella fönstret mellan det senast valda färgschemat och den äldre formen av svart-pÃ¥-vitt eller vitt-pÃ¥-svart. Detta kommando kommer ändra bÃ¥det \\*(SAt och \\*(TAt men pÃ¥verkar inte tillstÃ¥ndet hos växlarna â€xâ€, â€y†eller â€bâ€."
+
+#. type: Plain text
+#: ../man/top.1:1824
+msgid "B<CONTENT> of \\*(TW"
+msgstr "B<INNEHÅLL> i uppgiftsfönstret"
+
+#. type: TP
+#: ../man/top.1:1825
+#, no-wrap
+msgid "\\ \\ \\ B<c>\\ \\ :I<Command-Line/Program-Name> toggle "
+msgstr "\\ \\ \\ B<c>\\ \\ :I<Kommandorad/programnamn>växel "
+
+#. type: Plain text
+#: ../man/top.1:1830
+msgid "This command will be honored whether or not the COMMAND column is currently visible. Later, should that field come into view, the change you applied will be seen."
+msgstr "Detta kommando kommer att följas oavsett huruvida kolumnen KOMMANDO är synlig för närvarande eller inte. Skulle det fältet senare visas kommer ändringen man gjorde visas."
+
+#. type: TP
+#: ../man/top.1:1831
+#, no-wrap
+msgid "\\ \\ \\ B<F>\\ \\ :I<Maintain-Parent-Focus> toggle "
+msgstr "\\ \\ \\ B<F>\\ \\ :I<Behåll-föräldrafokus>växel "
+
+#. type: Plain text
+#: ../man/top.1:1836
+msgid "When in forest view mode, this key serves as a toggle to retain focus on a target task, presumably one with forked children. If forest view mode is \\*F this key has no effect."
+msgstr "I skogsvysläge fungerar denna tangent som en växel till att behålla fokus på en måluppgift, förmodligen en med avgrenade barn. Om skogsvysläget är \\*F har denna tangent ingen effekt."
+
+#. type: Plain text
+#: ../man/top.1:1841
+msgid "The toggle is applied to the first (topmost) process in the \\*(CW. Once established, that task is always displayed as the first (topmost) process along with its forked children. All other processes will be suppressed."
+msgstr "Växeln tillämpas pÃ¥ den första (översta) processen i det â€aktuella†fönstret. När det är etablerat visas alltid uppgiften som den första (översta) processen tillsammans med dess avgrenade barn. Alla andra processer kommer utelämnas."
+
+#. type: Plain text
+#: ../man/top.1:1844
+msgid "\\*(NT keys like `i' (idle tasks), `n' (max tasks), `v' (hide children) and User/Other filtering remain accessible and can impact what is displayed."
+msgstr "\\*(NT tangenter som â€i†(inaktiva uppgifter), â€n†(max uppgifter), â€v†(dölj barn) och filter av användare/övrigt fortsätter att vara tillgängliga och kan pÃ¥verka vad som visas."
+
+#. type: TP
+#: ../man/top.1:1845 ../man/top.1:2000
+#, no-wrap
+msgid "\\ \\ \\ B<f>\\ \\ :I<Fields-Management >"
+msgstr "\\ \\ \\ B<f>\\ \\ :I<Fälthantering >"
+
+#. type: Plain text
+#: ../man/top.1:1851
+msgid "This key displays a separate screen where you can change which fields are displayed, their order and also designate the sort field. For additional information on this \\*(CI \\*(Xt 3b. MANAGING Fields."
+msgstr "Denna tangent visar en separat skärm där man kan ändra vilka fält som visas, deras ordning och även utse sorteringsfältet. För ytterligare information om detta interaktiva kommando \\*(Xt 3b. HANTERING av fält."
+
+#. type: TP
+#: ../man/top.1:1852
+#, no-wrap
+msgid "\\ \\ \\ B<O> | B<o>\\ \\ :I<Other-Filtering >"
+msgstr "\\ \\ \\ B<O> | B<o>\\ \\ :I<Övrig-filtrering >"
+
+#. type: Plain text
+#: ../man/top.1:1858
+msgid "You will be prompted for the selection criteria which then determines which tasks will be shown in the \\*(CW. Your criteria can be made case sensitive or case can be ignored. And you determine if \\*(We should include or exclude matching tasks."
+msgstr "Man kommer få en fråga om urvalskriterier som sedan avgör vilka uppgifter som kommer visas i \\*(CW. Kriterierna kan göras skiftlägeskänsliga eller så kan skiftläget ignoreras. Och man bestämmer om \\*(We skall inkludera eller exkludera matchande uppgifter."
+
+#. type: Plain text
+#: ../man/top.1:1861
+msgid "\\*(XT 5e. FILTERING in a window for details on these and additional related \\*(CIs."
+msgstr "\\*(XT 5e. FILTRERA i ett fönster för detaljer om dessa och andra relaterade interaktiva kommandon."
+
+#. type: TP
+#: ../man/top.1:1862
+#, no-wrap
+msgid "\\ \\ \\ B<S>\\ \\ :I<Cumulative-Time-Mode> toggle "
+msgstr "\\ \\ \\ B<S>\\ \\ :I<Kumultativ-tids-läges>växel"
+
+#. type: Plain text
+#: ../man/top.1:1866
+msgid "When Cumulative mode is \\*O, each process is listed with the \\*(Pu time that it and its dead children have used."
+msgstr "När kumulativt läge är \\*O listas varje process med \\*(Pu-tiden som den och dess döda barn har använt."
+
+#. type: Plain text
+#: ../man/top.1:1873
+msgid "When \\*F, programs that fork into many separate tasks will appear less demanding. For programs like `init' or a shell this is appropriate but for others, like compilers, perhaps not. Experiment with two \\*(TWs sharing the same sort field but with different `S' states and see which representation you prefer."
+msgstr "När \\*F kommer program som grenar av i mÃ¥nga separata uppgifter förefalla mindre krävande. För program som â€init†eller ett skal är detta lämpligt men för andra, som kompilatorer, kanske inte. Experminetera med tvÃ¥ \\*(TW som delar samma sorteringsfält men med olika â€Sâ€-tillstÃ¥nd och se vilken representation du föredrar."
+
+#. type: Plain text
+#: ../man/top.1:1877
+msgid "After issuing this command, you'll be informed of the new state of this toggle. If you wish to know in advance whether or not Cumulative mode is in effect, simply ask for help and view the window summary on the second line."
+msgstr "Efter att ha gett detta kommando blir man informerad om det nya tillstånded hos denna växel. Om man vill veta i förväg huruvida kumulativt läge är på eller inte, be helt enkelt om hjälp och se fönstersammanfattningen på andra raden."
+
+#. type: TP
+#: ../man/top.1:1878
+#, no-wrap
+msgid "\\ \\ \\ B<U> | B<u>\\ \\ :I<Show-Specific-User-Only >"
+msgstr "\\ \\ \\ B<U> | B<u>\\ \\ :I<Visa-endast-specifik-användare >"
+
+#. type: Plain text
+#: ../man/top.1:1883
+msgid "You will be prompted for theB< uid> orB< name> of the user to display. The -u option matches on B< effective> user whereas the -U option matches onB< any> user (real, effective, saved, or filesystem)."
+msgstr "Man får frågan om B<uid> eller B<namn> på användaren som skall visas. Flaggan -u matchar den B<effektiva> användaren medan flaggan -U matchar B<godtycklig> användare (verklig, effektiv, sparad eller filsystem)."
+
+#. type: Plain text
+#: ../man/top.1:1888
+msgid "Thereafter, in that \\*(TW only matching users will be shown, or possibly no processes will be shown. Prepending an exclamation point (`!') to the user id or name instructs \\*(We to display only processes with users not matching the one provided."
+msgstr "Därefter visas endast matchande användare i det \\*(TWt, eller möjligen visas inga processer. Genom att inleda med ett utropstecken (â€!â€) före anvädare-id eller -namn instruerar man \\*(We att visa endast processer med användare som inte matchar den angivna."
+
+#. type: Plain text
+#: ../man/top.1:1892
+msgid "Different \\*(TWs can be used to filter different users. Later, if you wish to monitor all users again in the \\*(CW, re-issue this command but just press E<lt>EnterE<gt> at the prompt."
+msgstr "Olika \\*(TW kan användas för att filtrera olika användare. Senare, om man vill se alla användare igen i \\*(CW, ge detta kommando igen men tryck bara E<lt>EnterE<gt> vid frågan."
+
+#. type: TP
+#: ../man/top.1:1893
+#, no-wrap
+msgid "\\ \\ \\ B<V>\\ \\ :I<Forest-View-Mode> toggle "
+msgstr "\\ \\ \\ B<V>\\ \\ :I<Skogsvysläges>växel"
+
+#. type: Plain text
+#: ../man/top.1:1900
+msgid "In this mode, processes are reordered according to their parents and the layout of the COMMAND column resembles that of a tree. In forest view mode it is still possible to toggle between program name and command line (\\*(Xc `c' \\*(CI) or between processes and threads (\\*(Xc `H' \\*(CI)."
+msgstr "I detta läge ordnas processer om efter sina föräldrar och layouten av kolumnen KOMMANDO liknar den hos ett träd. I skogsvysläge är det fortfarande möjligt att växla mellan programnamn och kommandorad (\\*(Xc det interaktiva kommandot â€c†eller mellan processer och trÃ¥dar (\\*(Xc det interaktiva kommandot â€Hâ€)."
+
+#. type: Plain text
+#: ../man/top.1:1904
+msgid "\\*(NT Typing any key affecting the sort order will exit forest view mode in the \\*(CW. \\*(XT 4c. TASK AREA Commands, SORTING for information on those keys."
+msgstr "\\*(NT att att trycka godtycklig tangent som anger sorteringsordning kommer lämna skogsvysläge i det aktuella fönstret. \\*(XT 4c. UPPGIFTOMRÅDETS kommandon, SORTERING för information om dessa tangenter."
+
+#. type: TP
+#: ../man/top.1:1905
+#, no-wrap
+msgid "\\ \\ \\ B<v>\\ \\ :I<Hide/Show-Children> toggle "
+msgstr "\\ \\ \\ B<v>\\ \\ :I<Dölj/visa barn>-växel "
+
+#. type: Plain text
+#: ../man/top.1:1909
+msgid "When in forest view mode, this key serves as a toggle to collapse or expand the children of a parent."
+msgstr "I skogsvysläge fungerar denna tangent som en växel mellan att fälla ihop eller expandera en förälders barn."
+
+#. type: Plain text
+#: ../man/top.1:1913
+msgid "The toggle is applied against the first (topmost) process in the \\*(CW. \\*(XT 5c. SCROLLING a Window for additional information regarding vertical scrolling."
+msgstr "Växeln fungerar endast mot den första (översta) processen i det aktuella fönstret. \\*(Xt 5c. RULLA ett fönster för ytterligare information om vertikal rullning."
+
+#. type: Plain text
+#: ../man/top.1:1916
+msgid "If the target process has not forked any children, this key has no effect. It also has no effect when not in forest view mode."
+msgstr "Om målprocessen inte har grenat av några barn har denna tangent ingen effekt. Den har inte heller någon effekt när man inte är i skogsvyläge."
+
+#. type: TP
+#: ../man/top.1:1917
+#, no-wrap
+msgid "\\ \\ B<^E>\\ \\ :I<Scale-CPU-Time-fields> (Ctrl key + `e')"
+msgstr "\\ \\ B<^E>\\ \\ :I<Skala-CPU-tidsfält> (Ctrl-tangent + â€eâ€)"
+
+#. type: Plain text
+#: ../man/top.1:1924
+msgid "The `time' fields are normally displayed with the greatest precision their widths permit. This toggle reduces that precision until it wraps. It also illustrates the scaling those fields I<might> experience automatically, which usually depends on how long the system runs."
+msgstr "â€Tidsâ€fälten visas normalt med den största precisionen deras bredd tillÃ¥ter. Denna växel reducerar den precisionen tills det slÃ¥r runt. Den illustrerar även skalningen dessa fält I<kan> uppvisa automatiskt, vilket vanligen beror pÃ¥ hur länge systemet kör."
+
+#. type: Plain text
+#: ../man/top.1:1927
+msgid "For example, if `MMM:SS.hh' is shown, each ^E keystroke would change it to: `MM:SS', `Hours,MM', `Days+Hours' and finally `Weeks+Days'."
+msgstr "Till exempel, om â€MMM:SS.hh†visas, skulle varje tryck pÃ¥ ^E ändra det till: â€MM:SSâ€, â€timmar,MMâ€, â€dagar+timmar†och slutligen â€veckor+dagarâ€."
+
+#. type: Plain text
+#: ../man/top.1:1929
+msgid "Not all time fields are subject to the full range of such scaling."
+msgstr "Alla tidsfält är inte föremål för hela intervallet av sådan skalning."
+
+#. type: Plain text
+#: ../man/top.1:1933
+msgid "B<SIZE> of \\*(TW"
+msgstr "B<STORLEK> på \\*(TW"
+
+#. type: TP
+#: ../man/top.1:1934
+#, no-wrap
+msgid "\\ \\ \\ B<i>\\ \\ :I<Idle-Process> toggle "
+msgstr "\\ \\ \\ B<i>\\ \\ :I<Inaktiv-process>växel"
+
+#. type: Plain text
+#: ../man/top.1:1942
+msgid "Displays all tasks or just active tasks. When this toggle is \\*F, tasks that have not used any \\*(PU since the last update will not be displayed. However, due to the granularity of the %CPU and TIME+ fields, some processes may still be displayed thatI< appear> to have usedI< no> \\*(PU."
+msgstr "Visar alla uppgifter eller bara aktiva uppgifter. När denna växel är \\*F kommer uppgifter som inte använt någon \\*(PU sedan den senaste uppdateringen inte att visas. Dock, på grund av granulariteten hos fälten %CPU och TID+, kan några processer fortfarande visas som I<förefaller inte> ha använt någon \\*(PU."
+
+#. type: Plain text
+#: ../man/top.1:1945
+msgid "If this command is applied to the last \\*(TD when in \\*(AM, then it will not affect the window's size, as all prior \\*(TDs will have already been painted."
+msgstr "Om detta kommando används på den sista \\*(TDen när man är i \\*(AM, då kommer den inte påverka fönsterstorleken, eftersom alla föregående \\*(TDar redan kommer ha ritats ut."
+
+#. type: TP
+#: ../man/top.1:1946
+#, no-wrap
+msgid "\\ \\ \\ B<n> | B<#>\\ \\ :I<Set-Maximum-Tasks >"
+msgstr "\\ \\ \\ B<n> | B<#>\\ \\ :I<Ange maximala uppgifter>"
+
+#. type: Plain text
+#: ../man/top.1:1950
+msgid "You will be prompted to enter the number of tasks to display. The lessor of your number and available screen rows will be used."
+msgstr "Man kommer ombeds ange antalet uppgifter att visa. Det lägre av talet och det tillgängliga antalet skärmrader kommer användas."
+
+#. type: Plain text
+#: ../man/top.1:1955
+msgid "When used in \\*(AM, this is the command that gives you precise control over the size of each currently visible \\*(TD, except for the very last. It will not affect the last window's size, as all prior \\*(TDs will have already been painted."
+msgstr "När är i \\*(AM ger detta kommando precis kontroll över storleken på varje samtidigt synlig \\*(TD, utom den allra sista. Det kommer inte påverka det sista fönstrets storlek, eftersom alla föregående \\*(TDar redan kommer ha ritats ut."
+
+#. type: Plain text
+#: ../man/top.1:1958
+msgid "\\*(NT If you wish to increase the size of the last visible \\*(TD when in \\*(AM, simply decrease the size of the \\*(TD(s) above it."
+msgstr "\\*(NT om man vill öka storleken på den sista synliga \\*(TDen när man är i \\*(AM, minska helt enkelt storleken på \\*(TDen ovanför den."
+
+#. type: Plain text
+#: ../man/top.1:1962
+msgid "B<SORTING> of \\*(TW"
+msgstr "B<SORTERING> av \\*(TW"
+
+#. type: Plain text
+#: ../man/top.1:1967
+msgid "For compatibility, this \\*(We supports most of the former \\*(We sort keys. Since this is primarily a service to former \\*(We users, these commands do not appear on any help screen."
+msgstr "För kompatibilitet stödjer denna \\*(We de flesta tidigare \\*(We sorteringstangenter. Eftersom detta primärt är en tjänst till tidigare användare av \\*(We, finns dessa kommandon inte med på någon hjälpskärm."
+
+#. type: Plain text
+#: ../man/top.1:1974
+#, no-wrap
+msgid ""
+" I< command sorted-field supported >\n"
+" A start time (non-display) B< No >\n"
+" M %MEM Yes\n"
+" N PID Yes\n"
+" P %CPU Yes\n"
+" T TIME+ Yes\n"
+msgstr ""
+" I<kommando sorteringsfält stödjs>\n"
+" A starttid (ej visat) B<Nej>\n"
+" M %MEM Ja\n"
+" N PID Ja\n"
+" P %CPU Ja\n"
+" T TIME+ Ja\n"
+
+#. type: Plain text
+#: ../man/top.1:1979
+msgid "Before using any of the following sort provisions, \\*(We suggests that you temporarily turn on column highlighting using the `x' \\*(CI. That will help ensure that the actual sort environment matches your intent."
+msgstr "Före man använder nÃ¥gon av följande sorteringsmöjligheter föreslÃ¥r \\*(We att man tillfälligt slÃ¥r pÃ¥ kolumnmarkering med det interaktiva kommandog â€xâ€. Det kommer hjälpa att säkerställa att den faktiska sorteringsmiljön motsvarar ens avsikt."
+
+#. type: Plain text
+#: ../man/top.1:1985
+#, no-wrap
+msgid ""
+"The following \\*(CIs willB< only> be honored when the current sort field\n"
+"isB< visible>.\n"
+"The sort field mightI< not> be visible because:\n"
+" 1) there is insufficientI< Screen Width >\n"
+" 2) the `f' \\*(CI turned it \\*F\n"
+msgstr ""
+"Följande interaktiva kommandon kommer B<bara> följas när det aktuella sorteringsfältet\n"
+"är B<synligt>.\n"
+"Anledning till att sorteringsfältet I<inte> är synligt kan vara för att:\n"
+" 1) det finns otillräckligt med I<skärmbredd>\n"
+" 2) det interaktiva kommandot â€f†slog \\*F det\n"
+
+#. type: TP
+#: ../man/top.1:1986
+#, no-wrap
+msgid "\\ \\ \\ B<E<lt>>\\ \\ :I<Move-Sort-Field-Left >"
+msgstr "\\ \\ \\ B<E<lt>>\\ \\ :I<Flytta sorteringsfält åt vänster>"
+
+#. type: Plain text
+#: ../man/top.1:1990
+msgid "Moves the sort column to the left unless the current sort field is the first field being displayed."
+msgstr "Flyttar sorteringskolumnen åt vänster om inte det aktuella sorteringsfältet är det första fältet som visas."
+
+#. type: TP
+#: ../man/top.1:1991
+#, no-wrap
+msgid "\\ \\ \\ B<E<gt>>\\ \\ :I<Move-Sort-Field-Right >"
+msgstr "\\ \\ \\ B<E<gt>>\\ \\ :I<Flytta sorteringsfält åt höger>"
+
+#. type: Plain text
+#: ../man/top.1:1995
+msgid "Moves the sort column to the right unless the current sort field is the last field being displayed."
+msgstr "Flyttar sorteringskolumnen åt höger om inte det aktuella sorteringsfältet är det sista fältet som visas."
+
+#. type: Plain text
+#: ../man/top.1:1999
+msgid "The following \\*(CIs willB< always> be honored whether or not the current sort field is visible."
+msgstr "Följande interaktiva kommandon kommer B<alltid> följas oavsett huruvida det akutella sorteringsfältet är synligt eller inte."
+
+#. type: Plain text
+#: ../man/top.1:2006
+msgid "This key displays a separate screen where you can change which field is used as the sort column, among other functions. This can be a convenient way to simply verify the current sort field, when running \\*(We with column highlighting turned \\*F."
+msgstr "Denna tangent visar en separat skärm där man kan ändra vilket fält so används som sorteringskolumn, bland andra funktioner. Detta kan vara ett bekvämt sätt att enkelt verifiera det aktuella sorteringsfältet när man kör \\*(We med kolumnmarkeringen \\*F."
+
+#. type: TP
+#: ../man/top.1:2007
+#, no-wrap
+msgid "\\ \\ \\ B<R>\\ \\ :I<Reverse/Normal-Sort-Field> toggle "
+msgstr "\\ \\ \\ B<R>\\ \\ :I<Inverst/Normalt sorteringsfälts>växel"
+
+#. type: Plain text
+#: ../man/top.1:2010
+msgid "Using this \\*(CI you can alternate between high-to-low and low-to-high sorts."
+msgstr "Genom att använda detta interaktiva kommando kan man byta mellan hög-till-låg och låg-till-hög sortering."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2012
+#, no-wrap
+msgid "4d. COLOR Mapping"
+msgstr "4d. FÄRGavbildning"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2017
+msgid "When you issue the `Z' \\*(CI, you will be presented with a separate screen. That screen can be used to change the colors in just the \\*(CW or in all four windows before returning to the \\*(We display."
+msgstr "När man ger det interaktiva kommandot â€Z†visas en separat skärm. Den skärmen kan användas för att ändra färgerna i bara det â€aktuella†fönstret eller i alla fyra fönstren innan man Ã¥tervänder till \\*(We-visningen."
+
+#. type: Plain text
+#: ../man/top.1:2020
+msgid "The following \\*(CIs are available."
+msgstr "Följande interaktiva kommandon är tillgängliga."
+
+#. type: Plain text
+#: ../man/top.1:2031
+#, no-wrap
+msgid ""
+" B<4> upper case letters to select aB< target >\n"
+" B<8> numbers to select aB< color >\n"
+" normal toggles available \n"
+" B :bold disable/enable\n"
+" b :running tasks \"bold\"/reverse\n"
+" z :color/mono\n"
+" other commands available \n"
+" a/w :apply, then go to next/prior\n"
+" E<lt>EnterE<gt> :apply and exit\n"
+" q :abandon current changes and exit\n"
+msgstr ""
+" B<4> versala bokstäver för att välja ett B<mål>\n"
+" B<8> nummer för att välja en B<färg>\n"
+" normala tillgänliga växlar\n"
+" B :fetstil avaktivera/aktivera\n"
+" b :körande uppgift â€fetâ€/invers\n"
+" z :färg/mono\n"
+" andra tillgängliga kommandon\n"
+" a/w :verkställ, gå sedan till nästa/föregående\n"
+" E<lt>EnterE<gt> :verkställ och avsluta\n"
+" q :avbryt aktuella ändringar och avsluta\n"
+
+#. type: Plain text
+#: ../man/top.1:2037
+msgid "If you use `a' or `w' to cycle the targeted window, you will have applied the color scheme that was displayed when you left that window. You can, of course, easily return to any window and reapply different colors or turn colors \\*F completely with the `z' toggle."
+msgstr "Om man använder â€a†eller â€w†för att gÃ¥ igenom mÃ¥lfönster kommer man ha använt det färgschema som visades när man lämnade det fönstret. Man kan naturligtvis enkelt Ã¥tervända till ett fönster och Ã¥terapplicera andra färger eller helt slÃ¥ \\*F färger med växeln â€zâ€."
+
+#. type: Plain text
+#: ../man/top.1:2042
+msgid "The Color Mapping screen can also be used to change the \\*(CG in either \\*(FM or \\*(AM. Whatever was targeted when `q' or E<lt>EnterE<gt> was pressed will be made current as you return to the \\*(We display."
+msgstr "Färgavbildningsskärmen kan även användas för att ändra den â€aktuella†fönster-/fältgruppen i antingen \\*(FM eller \\*(AM. Oavsett vad som var mÃ¥let när â€q†eller E<lt>EnterE<gt> trycktes kommer göras aktuellt när man Ã¥tervänder till \\*(We-visningen."
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2044
+#, no-wrap
+msgid "5. ALTERNATE-DISPLAY Provisions"
+msgstr "5. ALTERNATIVA SKÄRMARS utseende"
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2047
+#, no-wrap
+msgid "5a. WINDOWS Overview"
+msgstr "5a. FÖNSTERöversikt"
+
+#. type: TP
+#: ../man/top.1:2049
+#, no-wrap
+msgid "B<Field Groups/Windows>:"
+msgstr "B<Fältgrupper/fönster>:"
+
+#. type: Plain text
+#: ../man/top.1:2056
+msgid "In \\*(FM there is a single window represented by the entire screen. That single window can still be changed to display 1 of 4 differentB< field groups> (\\*(Xc `g' \\*(CI, repeated below). Each of the 4 \\*(FGs has a unique separately configurableB< \\*(SA > and its own configurableB< \\*(TA>."
+msgstr "I \\*(FM finns det ett ensamt fönster representerat av hela skärmen. Det enda fönstret kan fortfarande ändras till att visa 1 av 4 olika B<fältgrupper> (\\*(Xc det interaktiva kommandot â€gâ€, repeterat nedan). Vart och ett av de 4 \\*(FGerna har ett unikt separat konfigurerbart B<\\*(SA> och sitt egen konfigurerbara B<\\*(TA>."
+
+#. type: Plain text
+#: ../man/top.1:2059
+msgid "In \\*(AM, those 4 underlying \\*(FGs can now be made visible simultaneously, or can be turned \\*F individually at your command."
+msgstr "I \\*(AM kan dessa 4 underliggande \\*(FGer nu göras synliga samtidigt, eller kan slås \\*F individuellt på kommando."
+
+#. type: Plain text
+#: ../man/top.1:2064
+msgid "The \\*(SA will always exist, even if it's only the message line. At any given time onlyI< one> \\*(SA can be displayed. However, depending on your commands, there could be fromI< zero > toI< four> separate \\*(TDs currently showing on the screen."
+msgstr "Sammanfattningsområdet kommer alltid finnas, även om det endast är meddelanderaden. Vid varje given tidpunkt kan endast I<ett> \\*(SA visas. Dock, beroende på givna kommandon, kan det finnas från I<noll> till I<fyra> separata \\*(TDar samtidigt visade på skärmen."
+
+#. type: TP
+#: ../man/top.1:2065
+#, no-wrap
+msgid "B<Current Window>:"
+msgstr "B<Aktuellt fönster>:"
+
+#. type: Plain text
+#: ../man/top.1:2071
+msgid "The \\*(CW is the window associated with the \\*(SA and the window to which task related commands are always directed. Since in \\*(AM you can toggle the \\*(TD \\*F, some commands might be restricted for the \\*(CW."
+msgstr "Det â€aktuella†fönstret är fönstret som är kopplat till \\*(SAt och fönstret till vilket uppgiftsrelaterade kommandon alltid skickas. Eftersom man i \\*(AM kan växla \\*F \\*(TDen kan nÃ¥gra kommandot vara begränsade för \\*(CW."
+
+#. type: Plain text
+#: ../man/top.1:2076
+msgid "A further complication arises when you have toggled the first \\*(SA line \\*F. With the loss of the window name (the `l' toggled line), you'll not easily know what window is the \\*(CW."
+msgstr "En ytterligare komplikation uppstÃ¥r när man har slagit \\*F den första raden i \\*(SAt. I och med att fönsternamnet försvinner (raden som växlas med â€lâ€) vet man inte enkelt vilket fönster som är det â€aktuella†fönstret."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2078
+#, no-wrap
+msgid "5b. COMMANDS for Windows"
+msgstr "5b. KOMMANDON för fönster"
+
+#. type: TP
+#: ../man/top.1:2080
+#, no-wrap
+msgid "\\ \\ \\ B<-> | B<_>\\ \\ :I<Show/Hide-Window(s)> toggles "
+msgstr "\\ \\ \\ B<-> | B<_>\\ \\ :I<Visa/dölj fönster>växel"
+
+#. type: Plain text
+#: ../man/top.1:2087
+msgid "The `-' key turns the \\*(CW's \\*(TD \\*O and \\*F. When \\*O, that \\*(TA will show a minimum of the columns header you've established with the `f' \\*(CI. It will also reflect any other \\*(TA options/toggles you've applied yielding zero or more tasks."
+msgstr "Tangenten â€-†slÃ¥r \\*O och \\*F det â€aktuella†fönstrets \\*(TD. När det är \\*O kommer det \\*(TAt att visa ett minimum av kolumhuvuden som har angivits med det interaktiva kommandot â€fâ€. Det kommer även avspegla eventella andra flaggor/växlar för \\*(TAt som har tillämpats vilket resulterar i noll eller flera uppgifter."
+
+#. type: Plain text
+#: ../man/top.1:2093
+msgid "The `_' key does the same for all \\*(TDs. In other words, it switches between the currently visible \\*(TD(s) and any \\*(TD(s) you had toggled \\*F. If all 4 \\*(TDs are currently visible, this \\*(CI will leave the \\*(SA as the only display element."
+msgstr "Tangenten â€_†gör detsamma för alla \\*(TDar. Med andra ord byter det mellan den för närvarande synliga \\*(TDen och alla \\*(TD man har slagit \\*F. Om alla 4 \\*(TDarna är syniga för närvarande kommer detta interaktiva kommando lämna kvar \\*(SAt som det enda synliga elementet."
+
+#. type: TP
+#: ../man/top.1:2094
+#, no-wrap
+msgid "*\\ \\ B<=> | B<+>\\ \\ :I<Equalize/Reset-Window(s) >"
+msgstr "*\\ \\ B<=> | B<+>\\ \\ :I<Utjämna/återställ fönster>"
+
+#. type: Plain text
+#: ../man/top.1:2103
+msgid "The `=' key forces the \\*(CW's \\*(TD to be visible. It also reverses any active `i' (idle tasks), `n' (max tasks), `u/U' (user filter), `o/O' (other filter), `v' (hide children), `F' focused, `L' (locate) and `!' (combine cpus) commands. Also, if the window had been scrolled, it will be reset with this command. \\*(XT 5c. SCROLLING a Window for additional information regarding vertical and horizontal scrolling."
+msgstr "Tangenten â€=†tvingar det â€aktuella†fönstrets \\*(TD att vara synlig. Det Ã¥terställer ocksÃ¥ eventuella kommandon â€i†(inaktiva uppgifter), â€n†(max uppgifter), â€u/U†(användarfilter), â€o/O†(övriga filter), â€v†(dölj barn), â€F†fokuserat, â€L†(lokalisera) och â€!†(kombinera cpu:er). Dessutom, om fönstret är rullat, kommer det att Ã¥terställas med detta kommando. \\*(XT 5c. RULLA ett fönster för ytterligare information avseende vertikal och horisontell rullning."
+
+#. type: Plain text
+#: ../man/top.1:2108
+msgid "The `+' key does the same for all windows. The four \\*(TDs will reappear, evenly balanced, while retaining any customizations previously applied beyond those noted for the `=' \\*(CT."
+msgstr "Tangenten â€+†gör detsamma för alla fönster. De fyra \\*(TDarna kommer komma tillbaka, jämnt balanserade, samtidigt som de behÃ¥ller eventuella anpassningar som tidigare har gjorts utöver de som anges för det interaktiva kommandot â€=â€."
+
+#. type: TP
+#: ../man/top.1:2109
+#, no-wrap
+msgid "*\\ \\ B<A>\\ \\ :I<Alternate-Display-Mode> toggle "
+msgstr "*\\ \\ B<A>\\ \\ :I<Alternativt visningsläges>växel"
+
+#. type: Plain text
+#: ../man/top.1:2112
+msgid "This command will switch between \\*(FM and \\*(AM."
+msgstr "Detta kommando kommer byta mellan \\*(FM och \\*(AM."
+
+#. type: Plain text
+#: ../man/top.1:2116
+msgid "The first time you issue this command, all four \\*(TDs will be shown. Thereafter when you switch modes, you will see only the \\*(TD(s) you've chosen to make visible."
+msgstr "Första gången man ger detta kommando kommer alla fyra \\*(TDar att visas. Därefter kommer man när man byter läge bara se de \\*(TD man har valt att göra synliga."
+
+#. type: TP
+#: ../man/top.1:2117
+#, no-wrap
+msgid "*\\ \\ B<a> | B<w>\\ \\ :I<Next-Window-Forward/Backward >"
+msgstr "*\\ \\ B<a> | B<w>\\ \\ :I<Nästa fönster framåt/bakåt>"
+
+#. type: Plain text
+#: ../man/top.1:2123
+msgid "This will change the \\*(CW, which in turn changes the window to which commands are directed. These keys act in a circular fashion so you can reach any desired window using either key."
+msgstr "Detta kommer byta det â€aktuella†fönstret, vilket i sin tur byter fönstret till vilket kommandon riktas. Dessa tangenter fungerar pÃ¥ ett cirkulärt sätt sÃ¥ att man kan nÃ¥ alla fönster med vilken som helst av tangenterna."
+
+#. type: Plain text
+#: ../man/top.1:2127
+msgid "Assuming the window name is visible (you have not toggled `l' \\*F), whenever the \\*(CW name loses its emphasis/color, that's a reminder the \\*(TD is \\*F and many commands will be restricted."
+msgstr "Under antagandet att fönsternamnet är synligt (man inte har slagit \\*F â€lâ€) sÃ¥ är när namnet pÃ¥ \\*(CW tappar sin markering/färg är det en pÃ¥minnelse om att \\*(TDen är \\*F och mÃ¥nga kommandon kommer vara begränsade."
+
+#. type: TP
+#: ../man/top.1:2128
+#, no-wrap
+msgid "\\ \\ \\ B<G>\\ \\ :I<Change-Window/Field-Group-Name >"
+msgstr "\\ \\ \\ B<G>\\ \\ :I<Ändra fönster-/fältgruppsnamn>"
+
+#. type: Plain text
+#: ../man/top.1:2133
+msgid "You will be prompted for a new name to be applied to the \\*(CW. It does not require that the window name be visible (the `l' toggle to be \\*O)."
+msgstr "Man ombeds ange ett nytt namn som skall användas för det â€aktuella†fönstret. Det kräver itne att fönsternamnet är synligt (att växeln â€l†är \\*O)."
+
+#. type: Plain text
+#: ../man/top.1:2136
+msgid "The \\*(CIs shown with an \\*(AK have use beyond \\*(AM."
+msgstr "De interaktiva kommandon som visas med en \\*(AK har användning vid sidan av \\*(AM."
+
+#. type: Plain text
+#: ../man/top.1:2140
+#, no-wrap
+msgid ""
+" =, A, g are always available\n"
+" a, w act the same with color mapping\n"
+" and fields management\n"
+msgstr ""
+" =, A, g är alltid tillgängliga\n"
+" a, w fungerar på samma sätt med färgavbildning\n"
+" och fälthantering\n"
+
+#. type: TP
+#: ../man/top.1:2142
+#, no-wrap
+msgid "*\\ \\ B<g>\\ \\ :I<Choose-Another-Window/Field-Group >"
+msgstr "*\\ \\ B<g>\\ \\ :I<Välj ett annat fönster/fältgrupp>"
+
+#. type: Plain text
+#: ../man/top.1:2146
+msgid "You will be prompted to enter a number between 1 and 4 designating the \\*(FG which should be made the \\*(CW."
+msgstr "Man ombeds ange ett nummer mellan 1 och 4 som anger den \\*(FG som skall göras till \\*(CW."
+
+#. type: Plain text
+#: ../man/top.1:2150
+msgid "In \\*(FM, this command is necessary to alter the \\*(CW. In \\*(AM, it is simply a less convenient alternative to the `a' and `w' commands."
+msgstr "I \\*(FM är detta kommando nödvändigt för att ändra \\*(CW. I \\*(AM är det bara ett mindre bekvämt alterantiv till kommandona â€a†och â€wâ€."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2152
+#, no-wrap
+msgid "5c. SCROLLING a Window"
+msgstr "5c. RULLA ett fönster"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2158
+msgid "Typically a \\*(TW is a partial view into a system's total tasks/threads which shows only some of the available fields/columns. With these \\*(KSs, you can move that view vertically or horizontally to reveal any desired task or column."
+msgstr "Typiskt är ett \\*(TW en partiell vy in i systemets totala uppgifter/trådar som visar endast några av de tillgängliga fälten/kolumnen. Med dessa \\*(KSer kan man flytta den vyn vertikalt eller horisontellt för att uppvisa valfri uppgift eller kolumn."
+
+#. type: TP
+#: ../man/top.1:2159
+#, no-wrap
+msgid "B<Up>,B<PgUp>\\ \\ :I<Scroll-Tasks >"
+msgstr "B<Upp>,B<PgUp>\\ \\ :I<Rulla uppgifter>"
+
+#. type: Plain text
+#: ../man/top.1:2165
+msgid "Move the view up toward the first task row, until the first task is displayed at the top of the \\*(CW. The I<Up> \\*(KA moves a single line while I<PgUp> scrolls the entire window."
+msgstr "Flytta vyn upp mot den första uppgiftsraden, tills den första uppgiften visas pÃ¥ den översta raden av det â€aktuella†fönstret. Piltangenten I<upp> flyttar en rad medan I<PgUp> rullar hela fönstret."
+
+#. type: TP
+#: ../man/top.1:2166
+#, no-wrap
+msgid "B<Down>,B<PgDn>\\ \\ :I<Scroll-Tasks >"
+msgstr "B<Ned>,B<PgDn>\\ \\ :I<Rulla uppgifter>"
+
+#. type: Plain text
+#: ../man/top.1:2172
+msgid "Move the view down toward the last task row, until the last task is the only task displayed at the top of the \\*(CW. The I<Down> \\*(KA moves a single line while I<PgDn> scrolls the entire window."
+msgstr "Flytta vyn ned mot den sista uppgiftsraden, tills den sista uppgiften är den enda som visas pÃ¥ den översta raden av det â€aktuella†fönstret. Piltangenten I<ned> flyttar en rad medan I<PgDn> rullar hela fönstret."
+
+#. type: TP
+#: ../man/top.1:2173
+#, no-wrap
+msgid "B<Left>,B<Right>\\ \\ :I<Scroll-Columns >"
+msgstr "B<Vänster>,B<Höger>\\ \\ :I<Rulla kolumner>"
+
+#. type: Plain text
+#: ../man/top.1:2176
+msgid "Move the view of displayable fields horizontally one column at a time."
+msgstr "Flytta vyn av visningsbara fält horisontellt en kolumn åt gången."
+
+#. type: Plain text
+#: ../man/top.1:2181
+msgid "\\*(NT As a reminder, some fields/columns are not fixed-width but allocated all remaining screen width when visible. When scrolling right or left, that feature may produce some unexpected results initially."
+msgstr "\\*(NT som en påminnelse, vissa fält/kolumner har inte fast bredd utan allokerar all återstånende skärmbredd när de är synliga. När man rullar till höger eller vänster kan den funktionen medföra i några oväntade resultat initialt."
+
+#. type: Plain text
+#: ../man/top.1:2187
+msgid "Additionally, there are special provisions for any variable width field when positioned as the last displayed field. Once that field is reached via the right arrow key, and is thus the only column shown, you can continue scrolling horizontally within such a field. \\*(XC `C' \\*(CI below for additional information."
+msgstr "Dessutom finns det speciella möjligheter för alla fält med variabel bredd när de är det sista visade fältet. När det fältet nÃ¥s via höger piltangent, och det alltsÃ¥ är den enda visade kolumnen, kan man fortsätta rulla horisontellt inom ett sÃ¥dant fält. \\*(XC det interaktiva kommandot â€C†nedan för ytterligare information."
+
+#. type: TP
+#: ../man/top.1:2188
+#, no-wrap
+msgid "B<Home>\\ \\ :I<Jump-to-Home-Position >"
+msgstr "B<Home>\\ \\ :I<Hoppa till hemposition>"
+
+#. type: Plain text
+#: ../man/top.1:2191
+msgid "Reposition the display to the un-scrolled coordinates."
+msgstr "Positionera om visningen till orullade koordinater."
+
+#. type: TP
+#: ../man/top.1:2192
+#, no-wrap
+msgid "B<End>\\ \\ :I<Jump-to-End-Position >"
+msgstr "B<End>\\ \\ :I<Hoppa till slutposition>"
+
+#. type: Plain text
+#: ../man/top.1:2196
+msgid "Reposition the display so that the rightmost column reflects the last displayable field and the bottom task row represents the last task."
+msgstr "Positionera om visningen så att den högraste kolumnen visar det sista visningsbara fältet och nedersta uppgiften representerar den sista uppgiften."
+
+#. type: Plain text
+#: ../man/top.1:2201
+msgid "\\*(NT From this position it is still possible to scrollI< down> andI< right> using the \\*(KAs. This is true until a single column and a single task is left as the only display element."
+msgstr "\\*(NT från denna position är det fortfarande möjligt att rulla I<ned> och I<höger> med \\*(KAerna. Detta gäller ända tills en enda kolumn och en enda uppgift är kvar som det enda visade elementet."
+
+#. type: TP
+#: ../man/top.1:2202
+#, no-wrap
+msgid "B<C>\\ \\ :I<Show-scroll-coordinates> toggle "
+msgstr "B<C>\\ \\ :I<Visa rullningskoordinaters>växel"
+
+#. type: Plain text
+#: ../man/top.1:2208
+msgid "Toggle an informational message which is displayed whenever the message line is not otherwise being used. That message will take one of two forms depending on whether or not a variable width column has also been scrolled."
+msgstr "Växla ett informationsmeddelande som visas närhelst meddelanderaden inte används till något annat. Det meddelandet kan ta en av två former beroende på huruvida en kolumn med variabel bredd också har rullats eller inte."
+
+#. type: Plain text
+#: ../man/top.1:2212
+#, no-wrap
+msgid ""
+" B<scroll coordinates: y = n/n (tasks), x = n/n (fields)>\n"
+" scroll coordinates: y = n/n (tasks), x = n/n (fields)B< + nn>\n"
+msgstr ""
+" B<rullkoordinater: y = n/n (uppgifter), x = n/n (fält)>\n"
+" rullkoordinater: y = n/n (uppgifter), x = n/n (fält) B<+ nn>\n"
+
+#. type: Plain text
+#: ../man/top.1:2220
+msgid "The coordinates shown as B<n>/B<n> are relative to the upper left corner of the \\*(CW. The additional `B<+\\ nn>' represents the displacement into a variable width column when it has been scrolled horizontally. Such displacement occurs in normal 8 character tab stop amounts via the right and left arrow keys."
+msgstr "Koordinaterna som visas som B<n>/B<n> är relativa till det övre vänstra hörnet av det â€aktuella†fönstret. Det ytterligare â€B<+\\ nn>†representerar förskjutningen in i en kolumn med variabel bredd när den har rullats horisontellt. En sÃ¥dan förskjutning gÃ¥r i normala 8-teckens tabulatorsteg via höger och vänster piltangent."
+
+#. type: TP
+#: ../man/top.1:2222
+#, no-wrap
+msgid "B<y = n/n (tasks) >"
+msgstr "B<y = n/n (uppgifter)>"
+
+#. type: Plain text
+#: ../man/top.1:2227
+msgid "The first B<n> represents the topmost visible task and is controlled by \\*(KSs. The second B<n> is updated automatically to reflect total tasks."
+msgstr "Det första B<n> representerar den översta synliga uppgiften och styrs av \\*(KSer. Det andra B<n> uppdateras automatiskt att avspegla det totala antalet uppgifter."
+
+#. type: TP
+#: ../man/top.1:2228
+#, no-wrap
+msgid "B<x = n/n (fields) >"
+msgstr "B<x = n/n (fält)>"
+
+#. type: Plain text
+#: ../man/top.1:2234
+msgid "The first B<n> represents the leftmost displayed column and is controlled by \\*(KSs. The second B<n> is the total number of displayable fields and is established with the `B<f>' \\*(CI."
+msgstr "Det första B<n> representerar den nänstraste visade uppgiften och styrs av \\*(KSer. Det andra B<n> är det totala antalet visningsbara fält och bestäms med det interaktiva kommandot â€B<f>â€."
+
+#. type: Plain text
+#: ../man/top.1:2239 ../man/top.1:2298
+msgid "The above \\*(CIs areB< always> available in \\*(FM butB< never> available in \\*(AM if the \\*(CW's \\*(TD has been toggled \\*F."
+msgstr "Det ovanstående interaktiva kommandona ärB< alltid> tillgängliga i \\*(FM menB< aldrig> tillgängliga i \\*(AM om \\*(TDen för \\*(CW har slagits \\*F."
+
+#. type: Plain text
+#: ../man/top.1:2243
+msgid "\\*(NT When any form of filtering is active, you can expect some slight aberrations when scrolling since not all tasks will be visible. This is particularly apparent when using the Up/Down \\*(KAs."
+msgstr "\\*(NT när någon sorts filtrering är aktiv kan man räkna med några mindre avvikelser när man rullar eftersom inte alla uppgifter kommer vara synliga. Detta är särskilt uppenbart när man använder \\*(KAerna upp/ned."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2245
+#, no-wrap
+msgid "5d. SEARCHING in a Window"
+msgstr "5d. SÖKA i ett fönster"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2248
+msgid "You can use these \\*(CIs to locate a task row containing a particular value."
+msgstr "Man kan använda dessa interaktiva kommandon för att hitta en uppgiftsrad som innehåller ett visst värde."
+
+#. type: TP
+#: ../man/top.1:2249
+#, no-wrap
+msgid "B<L>\\ \\ :I<Locate-a-string>"
+msgstr "B<L>\\ \\ :I<Lokalisera en sträng>"
+
+#. type: Plain text
+#: ../man/top.1:2254
+msgid "You will be prompted for the case-sensitive string to locate starting from the current window coordinates. There are no restrictions on search string content."
+msgstr "Man ombeds ge en skiftlägeskänslig sträng att lokalisera med start från de aktuella fönsterkoordinaterna. Det finns inga begränsningar på söksträngens innehåll."
+
+#. type: Plain text
+#: ../man/top.1:2258
+msgid "Searches are not limited to values from a single field or column. All of the values displayed in a task row are allowed in a search string. You may include spaces, numbers, symbols and even forest view artwork."
+msgstr "Sökningar är inte begränsade till värden från ett ensamt fält eller kolumn. Alla värden som visas i en uppgiftsrad är tillåtna i en söksträng. Man kan inkludera mellanslag, siffror, symboler och till och med skogsvyns illustration."
+
+#. type: Plain text
+#: ../man/top.1:2261
+msgid "Keying E<lt>EnterE<gt> with no input will effectively disable the `&' key until a new search string is entered."
+msgstr "Att skriva E<lt>EnterE<gt> utan nÃ¥gon indata fÃ¥r effekten att avaktivera tangenten â€&†tills en ny söksträng skrivs in."
+
+#. type: TP
+#: ../man/top.1:2262
+#, no-wrap
+msgid "B<&>\\ \\ :I<Locate-next>"
+msgstr "B<&>\\ \\ :I<Lokalisera nästa>"
+
+#. type: Plain text
+#: ../man/top.1:2266
+msgid "Assuming a search string has been established, \\*(We will attempt to locate the next occurrence."
+msgstr "Under antagandet att en söksträng har etablerats, \\*(We kommer försöka att hitta nästa förekomst."
+
+#. type: Plain text
+#: ../man/top.1:2273
+msgid "When a match is found, the current window is repositioned vertically so the task row containing that string is first. The scroll coordinates message can provide confirmation of such vertical repositioning (\\*(Xc `C' \\*(CI). Horizontal scrolling, however, is never altered via searching."
+msgstr "När en träff hittas positioneras det aktuella fönstret om vertikalt sÃ¥ att uppgiftsraden som innehÃ¥ller den strängen är först. Meddelandet om rullningskoordinater kan ge bekräftelse om sÃ¥dan vertikal ompositionering (\\*(Xc det interaktiva kommandot â€Câ€). Horisantal skrollning ändras dock aldrig via sökningar."
+
+#. type: Plain text
+#: ../man/top.1:2276
+msgid "The availability of a matching string will be influenced by the following factors."
+msgstr "Tillgängligheten av en matchande sträng kommer påverkas av följande faktorer."
+
+#. type: TP
+#: ../man/top.1:2277
+#, no-wrap
+msgid "a. Which fields are displayable from the total available,"
+msgstr "a. Vilka fält som är visningsbara bland alla tillgängliga,"
+
+#. type: Plain text
+#: ../man/top.1:2280
+msgid "\\*(Xt 3b. MANAGING Fields."
+msgstr "\\*(Xt 3b. HANTERING av fält."
+
+#. type: TP
+#: ../man/top.1:2280
+#, no-wrap
+msgid "b. Scrolling a window vertically and/or horizontally,"
+msgstr "b. Rullning av ett fönster vertikalt och/eller horisontellt,"
+
+#. type: Plain text
+#: ../man/top.1:2283
+msgid "\\*(Xt 5c. SCROLLING a Window."
+msgstr "\\*(Xt 5c. RULLA ett fönster."
+
+#. type: TP
+#: ../man/top.1:2283
+#, no-wrap
+msgid "c. The state of the command/command-line toggle,"
+msgstr "c. Tillståndet på växeln kommando/kommandorad,"
+
+#. type: Plain text
+#: ../man/top.1:2286
+msgid "\\*(Xc `c' \\*(CI."
+msgstr "\\*(Xc det interaktiva kommandot â€câ€."
+
+#. type: TP
+#: ../man/top.1:2286
+#, no-wrap
+msgid "d. The stability of the chosen sort column,"
+msgstr "d. Stabiliteten hos den valda sorteringskolumnen,"
+
+#. type: Plain text
+#: ../man/top.1:2289
+msgid "for example PID is good but %CPU bad."
+msgstr "till exempel är PID bra men %CPU dåligt."
+
+#. type: Plain text
+#: ../man/top.1:2295
+msgid "If a search fails, restoring the \\*(CW home (unscrolled) position, scrolling horizontally, displaying command-lines or choosing a more stable sort field could yet produce a successful `&' search."
+msgstr "Om en sökning misslyckas kan att Ã¥terställa det â€aktuella†fönstret till hempositionen (orullat), att rulla horisontellt, att visa kommandorader eller att välja ett mer stabilt sorteringsfält ändÃ¥ ge en lyckad â€&â€-sökning."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2300
+#, no-wrap
+msgid "5e. FILTERING in a Window"
+msgstr "5e. FILTRERA i ett fönster"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2306
+msgid "You can use this `Other Filter' feature to establish selection criteria which will then determine which tasks are shown in the \\*(CW. Such filters can be made persistent if preserved in the rcfile via the `W' \\*(CI."
+msgstr "Man kan använda denna funktion â€Ã¶vrigt filter†för att etablera urvalskriteria som sedan kommer att avgöra vilka uppgifter som visas i det â€aktuella†fönstret. SÃ¥dana filter kan göras varaktiga om de sparas i rcfile:n via det interaktiva kommandot â€Wâ€."
+
+#. type: Plain text
+#: ../man/top.1:2312
+msgid "Establishing a filter requires: 1) a field name; 2) an operator; and 3) a selection value, as a minimum. This is the most complex of \\*(We's user input requirements so, when you make a mistake, command recall will be your friend. Remember the Up/Down \\*(KAs or their aliases when prompted for input."
+msgstr "Att skapa ett filter kräver: 1) ett fältnamn; 2) en operator; och 3) ett urvalsvärde, åtminstone. Detta är det mest komplexa av \\*(Wes användarinmatningskrav, så när man gör ett misstag kommer återkallande av kommando att vara din vän. Kom ihåg \\*(KAerna upp/ned eller deras alias när du får frågan om inmatning."
+
+#. type: Plain text
+#: ../man/top.1:2314
+msgid "B<Filter Basics>"
+msgstr "B<Filtergrunder>"
+
+#. type: TP
+#: ../man/top.1:2315
+#, no-wrap
+msgid "1. field names are case sensitive and spelled as in the header"
+msgstr "1. fältnamn är skiftlägeskänsliga och stavas som i huvudet"
+
+#. type: TP
+#: ../man/top.1:2317
+#, no-wrap
+msgid "2. selection values need not comprise the full displayed field"
+msgstr "2. urvalsvärden behöver inte utgöra hela det visade fältet"
+
+#. type: TP
+#: ../man/top.1:2319
+#, no-wrap
+msgid "3. a selection is either case insensitive or sensitive to case"
+msgstr "3. ett urval är antingen skiftlägseokänsligt eller känsligt för skiftläge"
+
+#. type: TP
+#: ../man/top.1:2321
+#, no-wrap
+msgid "4. the default is inclusion, prepending `!' denotes exclusions"
+msgstr "4. standard är att inkludera, ett inledande â€!†markerar exkludering"
+
+#. type: TP
+#: ../man/top.1:2323
+#, no-wrap
+msgid "5. multiple selection criteria can be applied to a \\*(TW"
+msgstr "5. flera urvalksriterium kan användas på ett \\*(TW"
+
+#. type: TP
+#: ../man/top.1:2325
+#, no-wrap
+msgid "6. inclusion and exclusion criteria can be used simultaneously"
+msgstr "6. inkluderings- och exkluderingskriterium kan användas samtidigt"
+
+#. type: TP
+#: ../man/top.1:2327
+#, no-wrap
+msgid "7. the 1 equality and 2 relational filters can be freely mixed"
+msgstr "7. 1 likhetsfiltren och 2 jämförande filter kan blandas fritt"
+
+#. type: TP
+#: ../man/top.1:2329
+#, no-wrap
+msgid "8. separate unique filters are maintained for each \\*(TW"
+msgstr "8. separata unika filter hanteras för varje \\*(TW"
+
+#. type: Plain text
+#: ../man/top.1:2337
+msgid "If a field is not turned on or is not currently in view, then your selection criteria will not affect the display. Later, should a filtered field become visible, the selection criteria will then be applied."
+msgstr "Om ett fält inte är påslaget eller inte visas för närvarande kommer inte urvalskriteriumet påverka vad som visas. Skulle ett filtrerat fält senare bli synligt kommer urvalskriteriumet användas då."
+
+#. type: Plain text
+#: ../man/top.1:2340
+msgid "B<Keyboard Summary>"
+msgstr "B<Tangentbordssammanfattning>"
+
+#. type: TP
+#: ../man/top.1:2340
+#, no-wrap
+msgid "\\ \\ B<O>\\ \\ :I<Other-Filter> (upper case)"
+msgstr "\\ \\ B<O>\\ \\ :I<Annat filter> (versalt)"
+
+#. type: Plain text
+#: ../man/top.1:2343
+msgid "You will be prompted to establish a B<case sensitive> filter."
+msgstr "Man ombeds skapa ett B<skiftlägskänsligt> filter."
+
+#. type: TP
+#: ../man/top.1:2344
+#, no-wrap
+msgid "\\ \\ B<o>\\ \\ :I<Other-Filter> (lower case)"
+msgstr "\\ \\ B<o>\\ \\ :I<Annat filter> (gement)"
+
+#. type: Plain text
+#: ../man/top.1:2348
+msgid "You will be prompted to establish a filter that B<ignores case> when matching."
+msgstr "Man ombeds skapa ett filter som B<ignorerar skiftläge> vid matchning."
+
+#. type: TP
+#: ../man/top.1:2349
+#, no-wrap
+msgid "\\ B<^O>\\ \\ :I<Show-Active-Filters> (Ctrl key + `o')"
+msgstr "\\ B<^O>\\ \\ :I<Visa aktiva filter> (Ctrl-tangent + â€oâ€)"
+
+#. type: Plain text
+#: ../man/top.1:2353
+msgid "This can serve as a reminder of which filters are active in the \\*(CW. A summary will be shown on the message line until you press the E<lt>EnterE<gt> key."
+msgstr "Detta kan fungera som en pÃ¥minnelse om vilka filter som är aktiva i det â€aktuella†fönstret. En sammanfattning kommer visas pÃ¥ meddelanderaden till man trycker pÃ¥ tangenten E<lt>EnterE<gt>."
+
+#. type: TP
+#: ../man/top.1:2354
+#, no-wrap
+msgid "\\ \\ B<=>\\ \\ :I<Reset-Filtering> in current window"
+msgstr "\\ \\ B<=>\\ \\ :I<Återställ filtrering> i aktuellt fönster"
+
+#. type: Plain text
+#: ../man/top.1:2358
+msgid "This clears all of your selection criteria in the \\*(CW. It also has additional impact so please \\*(Xt 4a. GLOBAL Commands."
+msgstr "Detta tömmar alla gjorda urvalskriterier i det â€aktuella†fönstret. Det har även ytterligare effekter, sÃ¥ \\*(Xt 4a. GLOBALA kommandon."
+
+#. type: TP
+#: ../man/top.1:2359
+#, no-wrap
+msgid "\\ \\ B<+>\\ \\ :I<Reset-Filtering> in all windows"
+msgstr "\\ \\ B<+>\\ \\ :I<Återställ filtrering> i alla fönster"
+
+#. type: Plain text
+#: ../man/top.1:2364
+msgid "This clears the selection criteria in all windows, assuming you are in \\*(AM. As with the `=' \\*(CI, it too has additional consequences so you might wish to \\*(Xt 5b. COMMANDS for Windows."
+msgstr "Detta tömmar alla gjorda urvalskriterier i alla fönster, under antagandet att man är i \\*(AM. Liksom med det interaktiva kommandot â€=†har även detta ytterligare konsekvenser, sÃ¥ man kan vilja \\*(Xt 5b. KOMMANDON för fönster."
+
+#. type: Plain text
+#: ../man/top.1:2367
+msgid "B<Input Requirements>"
+msgstr "B<Inmatningskrav>"
+
+#. type: Plain text
+#: ../man/top.1:2373
+msgid "When prompted for selection criteria, the data you provide must take one of two forms. There are 3 required pieces of information, with a 4th as optional. These examples use spaces for clarity but your input generally would not."
+msgstr "Vid frågan om urvalskriterier måste de data man ger ta en av två former. Det finns 3 nödvändiga bitar information, med en frivillig 4:e. Dessa exempel använder mellanslag för tydlighet men ens inmatning gör i allmänhet inte det."
+
+#. type: Plain text
+#: ../man/top.1:2378
+#, no-wrap
+msgid ""
+" #1 B<#2> #3 ( required )\n"
+" Field-Name ? include-if-value\n"
+" B<!> Field-Name ? B<exclude>-if-value\n"
+" #4 ( optional )\n"
+msgstr ""
+" #1 B<#2> #3 ( obligatorisk)\n"
+" Fältnamn ? inkludera-om-värde\n"
+" B<!> Fältnamn ? B<exkludera>-om-värde\n"
+" #4 ( frivilligt )\n"
+
+#. type: Plain text
+#: ../man/top.1:2383
+msgid "Items #1, #3 and #4 should be self-explanatory. Item B<#2> represents both a required I<delimiter> and the I<operator> which must be one of either equality (`=') or relation (`E<lt>' or `E<gt>')."
+msgstr "Posterna #1, #3 och #4 bör vara självförklarande. Post B<#2> representerar pÃ¥de en nödvändig I<avgränsare> och I<operatorn> som mÃ¥ste vara en av antingen likhet (â€=â€) eller relation (â€E<lt>†eller â€E<gt>â€)."
+
+#. type: Plain text
+#: ../man/top.1:2392
+msgid "The `=' equality operator requires only a partial match and that can reduce your `if-value' input requirements. The `E<gt>' or `E<lt>' relational operators always employ string comparisons, even with numeric fields. They are designed to work with a field's default I<justification> and with homogeneous data. When some field's numeric amounts have been subjected to I<scaling> while others have not, that data is no longer homogeneous."
+msgstr "Likhetsoperatorn â€=†behöver bara en partiell matchning och det kan begränsa kraven pÃ¥ â€om-värdetâ€. Relationsoperatorerna â€E<gt>†eller â€E<lt>†gör alltid strängjämförelser, även med numeriska fält. De är gjorda för att fungera med ett fälts standardI<justering> och med homogena data. När nÃ¥gra fälts numeriska storlekar har varit föremÃ¥l för I<skalning> medan andra inte har det, dÃ¥ är datan inte längre homogen."
+
+#. type: Plain text
+#: ../man/top.1:2399
+msgid "If you establish a relational filter and you B<have> changed the default Numeric or Character I<justification>, that filter is likely to fail. When a relational filter is applied to a memory field and you B<have not> changed the I<scaling>, it may produce misleading results. This happens, for example, because `100.0m' (MiB) would appear greater than `1.000g' (GiB) when compared as strings."
+msgstr "Om man skapar ett relationsfilter och man B<har> ändrat standardvärdet för numerisk- eller teckenI<justering> är det troligt att det filtret misslyckas. När ett relationsfilter används pÃ¥ ett minnesfält och man B<inte har> ändrat I<skalningen> kan det generera missledande resultat. Detta händer, till exempel, för att â€100.0m†(MiB) skulle förefalla större än â€1.000g†(GiB) när de jämförs som strängar."
+
+#. type: Plain text
+#: ../man/top.1:2403
+msgid "If your filtered results appear suspect, simply altering justification or scaling may yet achieve the desired objective. See the `j', `J' and `e' \\*(CIs for additional information."
+msgstr "Om det filtrerade resultatet verkar misstänkt, kan att ändra justeringen eller skalningen Ã¥stadkomma det önskade resultatet. Se de interaktiva kommandona â€jâ€, â€J†och â€e†för ytterligare information."
+
+#. type: Plain text
+#: ../man/top.1:2406
+msgid "B<Potential Problems>"
+msgstr "B<Potentiella problem>"
+
+#. type: Plain text
+#: ../man/top.1:2410
+msgid "These B<GROUP> filters could produce the exact same results or the second one might not display anything at all, just a blank \\*(TW."
+msgstr "Dessa B<GRUPP>filter kan ge exakt samma resultat eller så kan det andra inte visa någonting alls, bara ett blankt \\*(TW."
+
+#. type: Plain text
+#: ../man/top.1:2413
+#, no-wrap
+msgid ""
+" GROUP=root ( only the same results when )\n"
+" GROUP=ROOT ( invoked via lower case `o' )\n"
+msgstr ""
+" GRUPP=root ( endast samma sak när de )\n"
+" GRUPP=ROOT ( skapats via gement â€o†)\n"
+
+#. type: Plain text
+#: ../man/top.1:2418
+msgid "Either of these B<RES> filters might yield inconsistent and/or misleading results, depending on the current memory scaling factor. Or both filters could produce the exact same results."
+msgstr "Endera av dessa B<RES>-filter kan ge inkonsistenta och/eller missledande resultat, beroende på den aktuella minnesskalningsfaktorn. Eller så kan båda filtren ge exakt samma resultat."
+
+#. type: Plain text
+#: ../man/top.1:2421
+#, no-wrap
+msgid ""
+" RESE<gt>9999 ( only the same results when )\n"
+" !RESE<lt>10000 ( memory scaling is at `KiB' )\n"
+msgstr ""
+" RESE<gt>9999 ( endast samma resultat när )\n"
+" !RESE<lt>10000 ( minnesskalningen är â€KiB†)\n"
+
+#. type: Plain text
+#: ../man/top.1:2427
+msgid "This B<nMin> filter illustrates a problem unique to scalable fields. This particular field can display a maximum of 4 digits, beyond which values are automatically scaled to KiB or above. So while amounts greater than 9999 exist, they will appear as 2.6m, 197k, etc."
+msgstr "Detta B<aSmå>-filter illustrerar ett problem som är unikt för skalbara fält. Detta specifika fält kan visa maximalt 4 siffror, utöver vilket värden automatiskt skalas till KiB eller större. Så medan värden större än 9999 förekommer, kommer de att uppträda som 2.6m, 197k, etc."
+
+#. type: Plain text
+#: ../man/top.1:2429
+#, no-wrap
+msgid " nMinE<gt>9999 ( always a blank \\*(TW )\n"
+msgstr " aSmåE<gt>9999 ( alltid ett tomt \\*(TW )\n"
+
+#. type: Plain text
+#: ../man/top.1:2433
+msgid "B<Potential Solutions>"
+msgstr "B<Potentiella lösningar>"
+
+#. type: Plain text
+#: ../man/top.1:2440
+msgid "These examples illustrate how Other Filtering can be creatively applied to achieve almost any desired result. Single quotes are sometimes shown to delimit the spaces which are part of a filter or to represent a request for status (^O) accurately. But if you used them with if-values in real life, no matches would be found."
+msgstr "Dessa exempel illustrerar hur annan filtrering kan göras på ett kreativt sätt för att uppnå nästan vilket önskat resultat som helst. Enkla citationstecken visas ibland för att avgränsa mellanrum som är del av ett filter eller för att representera en begäran om status (^O) precist. Men om man använder dem med om-värden i verkligheten skulle inga matchningar hittas."
+
+#. type: Plain text
+#: ../man/top.1:2445
+msgid "Assuming field B<nTH> is displayed, the first filter will result in only multi-threaded processes being shown. It also reminds us that a trailing space is part of every displayed field. The second filter achieves the exact same results with less typing."
+msgstr "Under antagandet att fältet B<aTR> visas kommer det första filtret resultera i att endast multitrådade processer visas. Det påminner oss också om att ett efterföljande mellanslag utgör en del av varje visat fält. Det andra filtret åstadkommer precis samma sak med mindre att skriva."
+
+#. type: Plain text
+#: ../man/top.1:2448
+#, no-wrap
+msgid ""
+" !nTH=` 1 ' ( ` for clarity only )\n"
+" nTHE<gt>1 ( same with less i/p )\n"
+msgstr ""
+" !aTR=` 1 ' ( ` endast för tydlighet )\n"
+" aTRE<gt>1 ( samma sak med mindre indata )\n"
+
+#. type: Plain text
+#: ../man/top.1:2452
+msgid "With Forest View mode active and the B<COMMAND> column in view, this filter effectively collapses child processes so that just 3 levels are shown."
+msgstr "Med skogsvysläget aktivt och kolumnen B<KOMMANDO> synlig fäller det här filtret i praktiken ihop barnprocesser så att endast 3 nivåer visas."
+
+#. type: Plain text
+#: ../man/top.1:2454
+#, no-wrap
+msgid " !COMMAND=` `- ' ( ` for clarity only )\n"
+msgstr " !KOMMANDO=` `- ' ( ` endast för tydlighet )\n"
+
+#. type: Plain text
+#: ../man/top.1:2462
+msgid "The final two filters appear as in response to the status request key (^O). In reality, each filter would have required separate input. The B<PR> example shows the two concurrent filters necessary to display tasks with priorities of 20 or more, since some might be negative. Then by exploiting trailing spaces, the B<nMin> series of filters could achieve the failed `9999' objective discussed above."
+msgstr "De sista tvÃ¥ filtren kommer som svar pÃ¥ tangenten för statusbegärande (^O). I praktiken skulle varje filter ha krävt en separat inmatning. Exemplet B<PR> visar de tvÃ¥ samtidiga filtren som behövs för att visa uppgifter med prioriteter pÃ¥ 20 eller mer, eftersom nÃ¥gra kan vara negativa. Sedan genom att utnyttja efterföljande blanktecken skulle serien av B<aSmÃ¥>-filter Ã¥stadkomma det misslyckade syftet â€9999†som diskuterades ovan."
+
+#. type: Plain text
+#: ../man/top.1:2465
+#, no-wrap
+msgid ""
+" `PRE<gt>20' + `!PR=-' ( 2 for right result )\n"
+" `!nMin=0 ' + `!nMin=1 ' + `!nMin=2 ' + `!nMin=3 ' ...\n"
+msgstr ""
+" `PRE<gt>20' + `!PR=-' ( 2 för rätt resultat )\n"
+" `!aSmå=0 ' + `!aSmå=1 ' + `!aSmå=2 ' + `!aSmå=3 ' …\n"
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2469
+#, no-wrap
+msgid "6. FILES"
+msgstr "6. FILER"
+
+#. ----------------------------------------------------------------------
+#. type: SS
+#: ../man/top.1:2471
+#, no-wrap
+msgid "6a. PERSONAL Configuration File"
+msgstr "6a. PERSONLIG konfigurationfil"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2474
+msgid "This file is created or updated via the `W' \\*(CI."
+msgstr "Denna fil skapas eller uppdateras via det interaktiva kommandot â€Wâ€."
+
+#. type: Plain text
+#: ../man/top.1:2477
+msgid "The legacy version is written as `$HOME/.your-name-4-\\*(We' + `rc' with a leading period."
+msgstr "Den gamla versionen skrivs som â€$HOME/.ditt-namn-4-\\*(We†+ â€rc†med en inledande punkt."
+
+#. type: Plain text
+#: ../man/top.1:2482
+msgid "A newly created \\*(CF is written as procps/your-name-4-\\*(We' + `rc' without a leading period. The procps directory will be subordinate to either $XDG_CONFIG_HOME when set as an absolute path or the $HOME/.config directory."
+msgstr "En nyligen skapad \\*(CF skrivs som â€procps/ditt-namn-4-\\*(We†+ â€rc†utan en inledande punkt. Procps-katalogen kommer ligga under antingen $XDG_CONFIG_HOME när den är satt till en aboslut sökväg eller katalogen $HOME/.config."
+
+#. type: Plain text
+#: ../man/top.1:2484
+msgid "While not intended to be edited manually, here is the general layout:"
+msgstr "Även om den inte är avsedd att redigeras manuellt följer här den allmänna layouten:"
+
+#. type: Plain text
+#: ../man/top.1:2494
+#, no-wrap
+msgid ""
+" global # line 1: the program name/alias notation\n"
+" \" # line 2: id,altscr,irixps,delay,curwin\n"
+" per ea # line a: winname,fieldscur\n"
+" window # line b: winflags,sortindx,maxtasks,etc\n"
+" \" # line c: summclr,msgsclr,headclr,taskclr\n"
+" global # line 15: additional miscellaneous settings\n"
+" \" # any remaining lines are devoted to optional\n"
+" \" # active `other filters' discussed in section 5e above\n"
+" \" # plus `inspect' entries discussed in section 6b below\n"
+msgstr ""
+" global # rad 1: programmets namn-/aliasnotation\n"
+" \" # rad 2: id,altscr,irixps,delay,curwin\n"
+" för var # rad a: winname,fieldscur\n"
+" fönster # rad b: winflags,sortindx,maxtasks,etc\n"
+" \" # rad c: summclr,msgsclr,headclr,taskclr\n"
+" global # rad 15: ytterligare blandade inställningar\n"
+" \" # eventuella återstående rader är ägnade åt valfria\n"
+" \" # aktiva â€andra filter†diskuterade i avsnitt 5e ovan\n"
+" \" # plus â€inspektionsâ€-poster diskuterade i avsnitt 6b nedan\n"
+
+#. type: Plain text
+#: ../man/top.1:2498
+msgid "If a valid absolute path to the rcfile cannot be established, customizations made to a running \\*(We will be impossible to preserve."
+msgstr "Om inte en giltig absolut sökväg till rcfil:en kan skapas kommer anpassningar gjorda till en körade \\*(We vara omöjliga att bevara."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2500
+#, no-wrap
+msgid "6b. ADDING INSPECT Entries"
+msgstr "6b. LÄGGA TILL INSPEKTIONSposter"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2507
+msgid "To exploit the `Y' \\*(CI, you must add entries at theB< end> of the \\*(We personal \\*(CF. Such entries simply reflect a file to be read or command/pipeline to be executed whose results will then be displayed in a separate scrollable, searchable window."
+msgstr "För att utnyttja det interaktiva kommandot â€Y†mÃ¥ste man lägga till poster till B<slutet> av \\*(Wes personliga \\*(CF. SÃ¥dana poster visar en fil som skall läsas eller kommandon/rör som skall köras vars resultat sedan kommer visas i ett separat rullbart, sökbart fönster."
+
+#. type: Plain text
+#: ../man/top.1:2510
+msgid "If you don't know the location or name of your \\*(We rcfile, use the `W' \\*(CI to rewrite it and note those details."
+msgstr "Om man inte vet platsen för eller namnet pÃ¥ ens \\*(We-rcfil, använd det interaktiva kommandot â€W†för att skriva om den och notera dessa detaljer."
+
+#. type: Plain text
+#: ../man/top.1:2517
+msgid "Inspect entries can be added with a redirected echo or by editing the \\*(CF. Redirecting an echo risks overwriting the rcfile should it replace (E<gt>) rather than append (E<gt>E<gt>) to that file. Conversely, when using an editor care must be taken not to corrupt existing lines, some of which could contain unprintable data or unusual characters depending on the \\*(We version under which that \\*(CF was saved."
+msgstr "Inspektionsposter kan läggas till med en omdirigerad echo eller genom att redigera \\*(CFen. Omdirigering av echo riskerar att skriva över rcfile:n ifall det skulle ersätta (E<gt>) istället för att lägga till (E<gt>E<gt>) till den filen. Omvänt, när man använder en redigerare måste man vara noga att inte skada befintliga rader, där några av dem kan innehålla oskrivbara data eller ovanliga tecken beroende på versionen av \\*(We under vilken den \\*(CFen sparades."
+
+#. type: Plain text
+#: ../man/top.1:2522
+msgid "Those Inspect entries beginning with a `#' character are ignored, regardless of content. Otherwise they consist of the following 3 elements, each of whichI< must> be separated by a tab character (thus 2 `\\et' total):"
+msgstr "De inspektionsposter som börjar med ett â€#â€-tecken som ignoreras, oavsett deras innehÃ¥ll. Annars bestÃ¥r de av följande 3 element, varav vart och ett I<mÃ¥ste> separeras av ett tabulatortecken (alltsÃ¥ 2 â€\\et†totalt):"
+
+#. type: Plain text
+#: ../man/top.1:2527
+#, no-wrap
+msgid ""
+" .type: literal `file' or `pipe'\n"
+" .name: selection shown on the Inspect screen\n"
+" .fmts: string representing a path or command\n"
+msgstr ""
+" .type: ordagrannt â€file†eller â€pipeâ€\n"
+" .name: val visat på inspektionsskärmen\n"
+" .fmts: sträng representerande en sökväg eller ett kommando\n"
+
+#. type: Plain text
+#: ../man/top.1:2534
+msgid "The two types of Inspect entries areI< not> interchangeable. Those designated `B<file>' will be accessed using fopen and must reference a single file in the `.fmts' element. Entries specifying `B<pipe>' will employ popen, their `.fmts' element could contain many pipelined commands and, none can be interactive."
+msgstr "De tvÃ¥ typerna av inspektionsposter är I<inte> utbytbara. De markerade â€B<file>†kommer hämtas med fopen och mÃ¥ste referera en ensam fil i â€.fmtsâ€-elementet. Poster som anger â€B<pipe>†kommer använda popen, deras â€.fmtsâ€-element kan innehÃ¥lla flera kommandon i rör och inget av dem kan vara interaktivt."
+
+#. type: Plain text
+#: ../man/top.1:2538
+msgid "If the file or pipeline represented in your `.fmts' deals with the specific PID input or accepted when prompted, then the format string must also contain the `B<%d>' specifier, as these examples illustrate."
+msgstr "Om filen eller röret som representeras i â€.fmts†hanterar den specifika PID som matas in eller accepteras pÃ¥ förfrÃ¥gan sÃ¥ mÃ¥ste formatsträngen även innehÃ¥lla specificeraren â€B<%d>â€, som dessa exempel illustrerar."
+
+#. type: Plain text
+#: ../man/top.1:2542
+#, no-wrap
+msgid ""
+" .fmts= /proc/I<%d>/numa_maps\n"
+" .fmts= lsof -P -pI< %d>\n"
+msgstr ""
+" .fmts= /proc/I<%d>/numa_maps\n"
+" .fmts= lsof -P -pI< %d>\n"
+
+#. type: Plain text
+#: ../man/top.1:2547
+msgid "For `B<pipe>' type entries only, you may also wish to redirect stderr to stdout for a more comprehensive result. Thus the format string becomes:"
+msgstr "Specifikt för poster av typen â€B<pipe>†kan man även vilja omdirigera standard fel till standard ut för ett mer fullständigt resultat. Formatsträngen blir alltsÃ¥:"
+
+#. type: Plain text
+#: ../man/top.1:2550
+#, no-wrap
+msgid " .fmts= pmap -x %dI< 2E<gt>&1>\n"
+msgstr " .fmts= pmap -x %dI< 2E<gt>&1>\n"
+
+#. type: Plain text
+#: ../man/top.1:2557
+msgid "Here are examples of both types of Inspect entries as they might appear in the rcfile. The first entry will be ignored due to the initial `#' character. For clarity, the pseudo tab depictions (^I) are surrounded by an extra space but the actual tabs would not be."
+msgstr "Här är exempel pÃ¥ bÃ¥da typerna av inspektionsposter som de kan förekomma i rcfil:en. Den första posten kommer ignoreras pÃ¥ grund av det inledande â€#â€-tecknet. För tydlighets skull är lÃ¥tsastabulatorillustrationen (^I) omgiven av ett extra mellanslag men de faktiska tabulatorerna skall inte vara det."
+
+#. type: Plain text
+#: ../man/top.1:2563
+#, no-wrap
+msgid ""
+" # pipe ^I Sockets ^I lsof -n -P -i 2E<gt>&1\n"
+" pipe ^I Open Files ^I lsof -P -p %d 2E<gt>&1\n"
+" file ^I NUMA Info ^I /proc/%d/numa_maps\n"
+" pipe ^I Log ^I tail -n100 /var/log/syslog | sort -Mr\n"
+msgstr ""
+" # pipe ^I Uttag ^I lsof -n -P -i 2E<gt>&1\n"
+" pipe ^I Öppna filer ^I lsof -P -p %d 2E<gt>&1\n"
+" file ^I NUMA-info ^I /proc/%d/numa_maps\n"
+" pipe ^I Logg ^I tail -n100 /var/log/syslog | sort -Mr\n"
+
+#. type: Plain text
+#: ../man/top.1:2570
+msgid "Except for the commented entry above, these next examples show what could be echoed to achieve similar results, assuming the rcfile name was `.toprc'. However, due to the embedded tab characters, each of these lines should be preceded by `B</bin/echo -e>', not just a simple an `echo', to enable backslash interpretation regardless of which shell you use."
+msgstr "Med undantag för den utkommenterade posten ovan visar dessa exempel vad som skulle kunna echo:as för att Ã¥stadkomma liknande resultat, under antagandet att rcfil:ens namn var â€.toprcâ€. PÃ¥ grund av de inbäddade tabulatortecknen skall dock var och en av dessa rader föregÃ¥s av â€B</bin/echo -e>â€, inte bara ett ensamt â€echoâ€, för att aktivera tolkning av omvända snedstreck oavsett vilket skal man använder."
+
+#. type: Plain text
+#: ../man/top.1:2575
+#, no-wrap
+msgid ""
+" \"pipe\\etOpen Files\\etlsof -P -p %d 2E<gt>&1\" E<gt>E<gt> ~/.toprc\n"
+" \"file\\etNUMA Info\\et/proc/%d/numa_maps\" E<gt>E<gt> ~/.toprc\n"
+" \"pipe\\etLog\\ettail -n200 /var/log/syslog | sort -Mr\" E<gt>E<gt> ~/.toprc\n"
+msgstr ""
+" \"pipe\\etÖppna filer\\etlsof -P -p %d 2E<gt>&1\" E<gt>E<gt> ~/.toprc\n"
+" \"file\\etNUMA-info\\et/proc/%d/numa_maps\" E<gt>E<gt> ~/.toprc\n"
+" \"pipe\\etLogg\\ettail -n200 /var/log/syslog | sort -Mr\" E<gt>E<gt> ~/.toprc\n"
+
+#. type: Plain text
+#: ../man/top.1:2584
+msgid "If any inspect entry you create produces output with unprintable characters they will be displayed in either the ^C notation or hexadecimal E<lt>FFE<gt> form, depending on their value. This applies to tab characters as well, which will show as `^I'. If you want a truer representation, any embedded tabs should be expanded. The following example takes what could have been a `file' entry but employs a `pipe' instead so as to expand the embedded tabs."
+msgstr "Om nÃ¥gon inspektionspost man skapar ger utdata med oskrivbara tecken kommer de visas med antingen notationen ^C eller hexadesimalt E<lt>FFE<gt> där formen beror pÃ¥ deras värde. Detta gäller även tabulatortecken, vilka kommer visas som â€^Iâ€. Om man vill ha en mer sann representation bör alla inbäddade tabulatorer expanderas. Följande exempel tar vad som skulle kunna ha varit en â€fileâ€-post men använder en â€pipe†istället för att expandera de inbäddade tabulatorerna."
+
+#. type: Plain text
+#: ../man/top.1:2590
+#, no-wrap
+msgid ""
+" # next would have contained `\\et' ...\n"
+" # file ^I E<lt>your_nameE<gt> ^I /proc/%d/status\n"
+" # but this will eliminate embedded `\\et' ...\n"
+" pipe ^I E<lt>your_nameE<gt> ^I cat /proc/%d/status | expand -\n"
+msgstr ""
+" # det följande skulle ha innehÃ¥llit â€\\et†…\n"
+" # file ^I E<lt>ditt_namnE<gt> ^I /proc/%d/status\n"
+" # men detta kommer eliminera inbäddade â€\\et†…\n"
+" pipe ^I E<lt>ditt_namnE<gt> ^I cat /proc/%d/status | expand -\n"
+
+#. type: Plain text
+#: ../man/top.1:2596
+msgid "\\*(NT Some programs might rely on I<SIGINT> to end. Therefore, if a `B<pipe>' such as the following is established, one must use Ctrl-C to terminate it in order to review the results. This is the single occasion where a `^C' will not also terminate \\*(We."
+msgstr "\\*(NT nÃ¥gra program kan bero pÃ¥ I<SIGINT> för att avsluta. Därför mÃ¥ste man, om en â€B<pipe>†som den följande skapas, använda Ctrl-C för att avsluta den för att kunna se resultatet. Detta är det enda tillfälle dÃ¥ ett â€^C†inte även kommer avsluta \\*(We."
+
+#. type: Plain text
+#: ../man/top.1:2599
+#, no-wrap
+msgid " pipe ^I Trace ^I /usr/bin/strace -p %d 2E<gt>&1\n"
+msgstr " pipe ^I Spåra ^I /usr/bin/strace -p %d 2E<gt>&1\n"
+
+#. type: Plain text
+#: ../man/top.1:2605
+msgid "Lastly, while `B<pipe>' type entries have been discussed in terms of pipelines and commands, there is nothing to prevent you from including I< shell scripts> as well. Perhaps even newly created scripts designed specifically for the `Y' \\*(CI."
+msgstr "Slutligen, även om poster av typen â€B<pipe>†har diskuterats i termer av rör och kommandon finns det inget som hindrar att man ocksÃ¥ inkluderar I<skalskript>. Kanske även nyskapade skript gjorde specifikt för det interaktiva kommandot â€Yâ€."
+
+#. type: Plain text
+#: ../man/top.1:2611
+msgid "For example, as the number of your Inspect entries grows over time, the `Options:' row will be truncated when screen width is exceeded. That does not affect operation other than to make some selections invisible. However, if some choices are lost to truncation but you want to see more options, there is an easy solution hinted at below."
+msgstr "Till exempel, allteftersom antalet inspektposter man har växer med tiden kommer raden â€Alternativ:†att huggas av när skärmbredden överskrids. Det pÃ¥verkar inte funktionen annat än att det gör nÃ¥gra val osynliga. Om nÃ¥gra val förloras pÃ¥ grund av avhuggning men man vill se fler alternativ finns det dock en enkel lösning som antyds nedan."
+
+#. type: Plain text
+#: ../man/top.1:2616
+#, no-wrap
+msgid ""
+" Inspection Pause at pid ...\n"
+" Use: left/right then E<lt>EnterE<gt> ...\n"
+" Options: help 1 2 3 4 5 6 7 8 9 10 11 ...\n"
+msgstr ""
+" Inspektion Paus vid pid …\n"
+" Använd: vänster/höger och E<lt>ReturE<gt> …\n"
+" Alternativ: hjälp 1 2 3 4 5 6 7 8 9 10 11 …\n"
+
+#. type: Plain text
+#: ../man/top.1:2622
+msgid "The entries in the \\*(We rcfile would have a number for the `.name' element and the `help' entry would identify a shell script you've written explaining what those numbered selections actually mean. In that way, many more choices can be made visible."
+msgstr "Posterna i \\*(Wes rcfil kunde ha ett nummer som elementet â€.name†och posten â€hjälp†kunde identifiera ett skalskript man skriver som förklarar vad dessa numrerade val faktiskt betyder. PÃ¥ sÃ¥ sätt kan mÃ¥nga fler val vara synliga."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2624
+#, no-wrap
+msgid "6c. SYSTEM Configuration File"
+msgstr "6c. SYSTEMkonfigurtionsfil"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2629
+msgid "This \\*(CF represents defaults for users who have not saved their own \\*(CF. The format mirrors exactly the personal \\*(CF and can also include `inspect' entries as explained above."
+msgstr "Denna \\*(CF representerar standardvärden för alla användare som inte har sparat sin egen \\*(CF. Formatet speglar exakt den personliga \\*(CFen och kan även innehÃ¥lla â€inspektionsâ€-poster som förklaras ovan."
+
+#. type: Plain text
+#: ../man/top.1:2631
+msgid "Creating it is a simple process."
+msgstr "Att skapa den är enkelt."
+
+#. type: Plain text
+#: ../man/top.1:2634
+msgid "1. Configure \\*(We appropriately for your installation and preserve that configuration with the `W' \\*(CI."
+msgstr "1. Konfigurera \\*(We som den skall vara för installationen och bevara den konfigurationen med det interaktiva kommandot â€Wâ€."
+
+#. type: Plain text
+#: ../man/top.1:2636
+msgid "2. Add and test any desired `inspect' entries."
+msgstr "2. Lägg till och prova eventuella önskade â€inspektionsâ€-poster."
+
+#. type: Plain text
+#: ../man/top.1:2638
+msgid "3. Copy that \\*(CF to the I</etc/> directory as `B<topdefaultrc>'."
+msgstr "3. Kopiera den \\*(CFen till katalogen I</etc/> som â€B<topdefaultrc>â€."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2640
+#, no-wrap
+msgid "6d. SYSTEM Restrictions File"
+msgstr "6d. SYSTEMbegränsningsfil"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2644
+msgid "The presence of this file will influence which version of the help screen is shown to an ordinary user."
+msgstr "Förekomsten av denna fil kommer påverka vilken version av hjälpskärmen som visas för en vanlig användare."
+
+#. type: Plain text
+#: ../man/top.1:2648
+msgid "More importantly, it will limit what ordinary users are allowed to do when \\*(We is running. They will not be able to issue the following commands."
+msgstr "Viktigare än så kommer den begränsa vad vanliga användare tillåts göra när \\*(We kör. De kommer inte att kunna ge följande kommandon."
+
+#. type: Plain text
+#: ../man/top.1:2652
+#, no-wrap
+msgid ""
+" k Kill a task\n"
+" r Renice a task\n"
+" d or s Change delay/sleep interval\n"
+msgstr ""
+" k Döda en uppgift\n"
+" r Ändra nice-värde för en uppgift\n"
+" d el. s Ändra fördröjnings-/sovintervall\n"
+
+#. type: Plain text
+#: ../man/top.1:2657
+msgid "This \\*(CF is not created by \\*(We. Rather, it is created manually and placed it in the I</etc/> directory as `B<toprc>'."
+msgstr "Denna \\*(CF skapas inte av \\*(We. Istället skapas den manuellt och placeras i katalogen I</etc/> som â€B<toprc>â€."
+
+#. type: Plain text
+#: ../man/top.1:2659
+msgid "It should have exactly two lines, as shown in this example:"
+msgstr "Den skall ha precis två rader, som visas i detta exempel:"
+
+#. type: Plain text
+#: ../man/top.1:2662
+#, no-wrap
+msgid ""
+" s # line 1: secure mode switch\n"
+" 5.0 # line 2: delay interval in seconds\n"
+msgstr ""
+" s # rad 1: växel för byte till säkert läge\n"
+" 5.0 # rad 2: fördröjningsintervall i sekunder\n"
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2665
+#, no-wrap
+msgid "7. ENVIRONMENT VARIABLE(S)"
+msgstr "7. MILJÖVARIABLER"
+
+#. type: Plain text
+#: ../man/top.1:2668 ../man/procps_pids.3:201
+msgid "The value set for the following is unimportant, just its presence."
+msgstr "Värdet som sätts på följande är oviktigt, bara att den finns."
+
+#. type: IP
+#: ../man/top.1:2669 ../man/procps_pids.3:202
+#, no-wrap
+msgid "LIBPROC_HIDE_KERNEL"
+msgstr "LIBPROC_HIDE_KERNEL"
+
+#. type: Plain text
+#: ../man/top.1:2672
+msgid "This will prevent display of any kernel threads and exclude such processes from the \\*(SA Tasks/Threads counts."
+msgstr "Detta kommer förhindra visningen av alla kärntrådar och utesluta sådana processer från \\*(SAts sammanräkning av uppgifter/trådar."
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2674
+#, no-wrap
+msgid "8. STUPID TRICKS Sampler"
+msgstr "8. DUMMA TRICK-exempel"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2679
+msgid "Many of these tricks work best when you give \\*(We a scheduling boost. So plan on starting him with a nice value of -10, assuming you've got the authority."
+msgstr "Många av dessa trick fungerar bäst när man ger \\*(We ett lyft i schemaläggningen. Så planera att starta den med ett nice-värde på -10, under antagandet att du har rätt till det."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2681
+#, no-wrap
+msgid "7a. Kernel Magic"
+msgstr "7a. Kärnmagi"
+
+#. ----------------------------------------------------------------------
+#. sorry, just can't help it -- don't ya love the sound of this?
+#. ( apparently AM static was a potential concern )
+#. type: Plain text
+#: ../man/top.1:2686
+msgid "For these stupid tricks, \\*(We needs \\*(FM."
+msgstr "För dessa dumma trick behöver \\*(We \\*(FM."
+
+#. type: Plain text
+#: ../man/top.1:2693
+msgid "The user interface, through prompts and help, intentionally implies that the delay interval is limited to tenths of a second. However, you're free to set any desired delay. If you want to see Linux at his scheduling best, try a delay of .09 seconds or less."
+msgstr "Användargränssnittet, via frågor och hjälp, implicerar avsiktligen att fördröjningsintervallet är begränsat till tiondelar av en sekund. Det står en dock fritt att sätta godtyckligt önskat värde. Vill man se Linux i sin bästa schemaläggningsform, prova en fördröjning på 0,09 sekunder eller mindre."
+
+#. type: Plain text
+#: ../man/top.1:2696
+msgid "For this experiment, under x-windows open an xterm and maximize it. Then do the following:"
+msgstr "För detta experiment öppna en xterm och maximera den. Gör sedan följande:"
+
+#. type: Plain text
+#: ../man/top.1:2705
+#, no-wrap
+msgid ""
+" . provide a scheduling boost and tiny delay via:\n"
+" nice -n -10 \\*(We -d.09\n"
+" . keep sorted column highlighting \\*F so as to\n"
+" minimize path length\n"
+" . turn \\*O reverse row highlighting for emphasis\n"
+" . try various sort columns (TIME/MEM work well),\n"
+" and normal or reverse sorts to bring the most\n"
+" active processes into view\n"
+msgstr ""
+" . ge en schemaläggningslyft och en kort fördröjning via\n"
+" nice -n -10 \\*(We -d.09\n"
+" . håll markering av sorteringskolumn \\*F för att\n"
+" minimera sökvägslängd\n"
+" . slå \\*O markering med invers text för betoning\n"
+" . prova olika sorteringskolumner (TID/MIN fungerar bra),\n"
+" och vanlig eller omvänd sortering för att ta fram de\n"
+" mest aktiva processerna i bild\n"
+
+#. type: Plain text
+#: ../man/top.1:2709
+msgid "What you'll see is a very busy Linux doing what he's always done for you, but there was no program available to illustrate this."
+msgstr "Vad man får se är en väldigt upptagen Linux som gör vad den alltid gjort, men det fanns inget program tillgängligt för att illustrera detta."
+
+#. type: Plain text
+#: ../man/top.1:2715
+msgid "Under an xterm using `white-on-black' colors, on \\*(We's Color Mapping screen set the task color to black and be sure that task highlighting is set to bold, not reverse. Then set the delay interval to around .3 seconds."
+msgstr "Under en xterm med â€vitt-pÃ¥-svartâ€-färger sätt i \\*(Wes färgavbildningsskärm uppgiftsfärgen till svart och se till att uppgiftsmarkering är satt till fetstil, inte invers. Sätt sedan fördröjningsintervallet till runt 0,3 sekunder."
+
+#. type: Plain text
+#: ../man/top.1:2718
+msgid "After bringing the most active processes into view, what you'll see are the ghostly images of just the currently running tasks."
+msgstr "Efter att ha fått de mest aktiva processerna i bild är vad man får se de spöklika avbilderna av de jus nu körande uppgifterna."
+
+#. type: Plain text
+#: ../man/top.1:2724
+msgid "Delete the existing rcfile, or create a new symlink. Start this new version then type `T' (a secret key, \\*(Xt 4c. Task Area Commands, SORTING) followed by `W' and `q'. Finally, restart the program with -d0 (zero delay)."
+msgstr "Radera den befintliga rcfil:en elelr skapa en ny symbolisk länk. Starta denna nya version och skriv sedan â€T†(en hemlig tangent, \\*(Xt 4c. uppgiftsomrÃ¥dets kommandon, SORTERING) följt av â€W†och â€qâ€. Slutligen, starta om programmet med -d0 (noll i fördröjning)."
+
+#. type: Plain text
+#: ../man/top.1:2729
+msgid "Your display will be refreshed at three times the rate of the former \\*(We, a 300% speed advantage. As \\*(We climbs the TIME ladder, be as patient as you can while speculating on whether or not \\*(We will ever reach the \\*(We."
+msgstr "Skärmen kommer uppdateras med tre gånger så hög hastighet som den tidigare \\*(We, en 300 % hastighetsuppdatering. Eftersom \\*(We klättrar uppför TID-stegen, var så tålmodig som möjligt under spekulation huruvida \\*(We någonsin kommer nå \\*(Wepen, eller inte."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2731
+#, no-wrap
+msgid "7b. Bouncing Windows"
+msgstr "7b. Studsande fönster"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2734
+msgid "For these stupid tricks, \\*(We needs \\*(AM."
+msgstr "För dessa dumma trick behöver \\*(We \\*(AM."
+
+#. type: Plain text
+#: ../man/top.1:2740
+msgid "With 3 or 4 \\*(TDs visible, pick any window other than the last and turn idle processes \\*F using the `i' \\*(CT. Depending on where you applied `i', sometimes several \\*(TDs are bouncing and sometimes it's like an accordion, as \\*(We tries his best to allocate space."
+msgstr "Med 3 eller 4 \\*(TDar synliga, välj nÃ¥got annat fönster än det sista och slÃ¥ \\*F inaktiva processer med det interaktiva kommandot â€iâ€. Beroende pÃ¥ var du använde â€i†studsar ibland flera \\*(TDar och ibland är det som ett dragspel, eftersom \\*(We gör sitt bästa för att allokera plats."
+
+#. type: Plain text
+#: ../man/top.1:2746
+msgid "Set each window's summary lines differently: one with no memory (`m'); another with no states (`t'); maybe one with nothing at all, just the message line. Then hold down `a' or `w' and watch a variation on bouncing windows \\*(Em hopping windows."
+msgstr "Sätt varje fönsters sammanfattningsrader olika: en utan minne (â€mâ€); ett annat utan tillstÃ¥nd (â€tâ€); kanske ett utan nÃ¥got alls, bara meddelanderaden. HÃ¥ll sedan ner â€a†eller â€w†och se en variation av studsande fönster \\*(Em hoppande fönster."
+
+#. type: Plain text
+#: ../man/top.1:2751
+msgid "Display all 4 windows and for each, in turn, set idle processes to \\*F using the `i' \\*(CT. You've just entered the \"extreme bounce\" zone."
+msgstr "Visa alla 4 fönstren och för vart och ett i ordning sätt inaktiva processer \\*F med det interaktiva kommandot â€iâ€. Du har just gÃ¥tt in i zonen â€extrem studsâ€."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2753
+#, no-wrap
+msgid "7c. The Big Bird Window"
+msgstr "7c. Den stora fågelns fönster"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2756
+msgid "This stupid trick also requires \\*(AM."
+msgstr "Detta dumma trick behöver också \\*(AM."
+
+#. type: Plain text
+#: ../man/top.1:2761
+msgid "Display all 4 windows and make sure that 1:Def is the \\*(CW. Then, keep increasing window size with the `n' \\*(CI until all the other \\*(TDs are \"pushed out of the nest\"."
+msgstr "Visa alla 4 fönster och se till att 1:Def är det â€aktuella†fönstret. Öka sedan fönsterstorleken med det interaktiva kommandot â€n†tills alla de andra \\*(TDarna â€tryckts ur boetâ€."
+
+#. type: Plain text
+#: ../man/top.1:2765
+msgid "When they've all been displaced, toggle between all visible/invisible windows using the `_' \\*(CT. Then ponder this:"
+msgstr "När de alla har tryckts undan, växla mellan alla synliga/osynliga fönster genom att använda \\*(CTan â€_â€. Fundera sedan pÃ¥ detta:"
+
+#. type: Plain text
+#: ../man/top.1:2767
+#, no-wrap
+msgid " is \\*(We fibbing or telling honestly your imposed truth?\n"
+msgstr " narras \\*(We eller berättar den sanningsenligt din påtvingade sanning?\n"
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2769
+#, no-wrap
+msgid "7d. The Ol' Switcheroo"
+msgstr "7d. Den gamla förväxlingen"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2773
+msgid "This stupid trick works best without \\*(AM, since justification is active on a per window basis."
+msgstr "Detta dumma trick fungerar bäst utan \\*(AM eftersom justering är aktivt på basis av varje fönster."
+
+#. type: Plain text
+#: ../man/top.1:2778
+msgid "Start \\*(We and make COMMAND the last (rightmost) column displayed. If necessary, use the `c' \\*(CT to display command lines and ensure that forest view mode is active with the `V' \\*(CT."
+msgstr "Starta \\*(We och gör KOMMANDO till den sista (högraste) kolumnen som visas. Om nödvändigt, använd \\*(CTn â€c†för att visa kommandorader och se till att skogsvyläget är aktivt med \\*(CTn â€Vâ€."
+
+#. type: Plain text
+#: ../man/top.1:2782
+msgid "Then use the up/down arrow keys to position the display so that some truncated command lines are shown (`+' in last position). You may have to resize your xterm to produce truncation."
+msgstr "Använd sedan piltangenterna upp/ned för att placera skärmen sÃ¥ att nÃ¥gra avhuggna kommandorader visas (â€+†i sista positionen). Man kan behöva ändra storlek pÃ¥ sin xterm för att Ã¥stadkomma trunkering."
+
+#. type: Plain text
+#: ../man/top.1:2784
+msgid "Lastly, use the `j' \\*(CT to make the COMMAND column right justified."
+msgstr "Använd slutligen \\*(CTn â€j†för att göra kolumnen KOMMANDO högerjusterad."
+
+#. type: Plain text
+#: ../man/top.1:2788
+msgid "Now use the right arrow key to reach the COMMAND column. Continuing with the right arrow key, watch closely the direction of travel for the command lines being shown."
+msgstr "Använd nu höger piltangent för att nå kolumnen KOMMANDO. Fortsätt med höger piltangent, och titta noga riktingen på rörelsen för kommandoraderna som visas."
+
+#. type: Plain text
+#: ../man/top.1:2791
+#, no-wrap
+msgid " some lines travel left, while others travel right\n"
+msgstr " några rader rör sig till vänster, medan andra rör sig åt höger\n"
+
+#. type: Plain text
+#: ../man/top.1:2793
+#, no-wrap
+msgid " eventually all lines will Switcheroo, and move right\n"
+msgstr " slutligen kommer alla rader växla runt, och röra sig åt höger\n"
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2795
+#, no-wrap
+msgid "9. BUGS"
+msgstr "9. FEL"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2800
+msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE .>"
+msgstr ""
+"Skicka felrapporter till E<.UR procps@freelists.org> E<.UE .>\n"
+"Skicka synpunkter på översättningen till E<.UR tp-sv@listor.tp-sv.se> E<.UE>"
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2802
+#, no-wrap
+msgid "10. SEE Also"
+msgstr "10. SE även"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2810
+msgid "B<free>(1), B<ps>(1), B<uptime>(1), B<atop>(1), B<slabtop>(1), B<vmstat>(8), B<w>(1)"
+msgstr "B<free>(1), B<ps>(1), B<uptime>(1), B<atop>(1), B<slabtop>(1), B<vmstat>(8), B<w>(1)"
+
+#. type: TH
+#: ../man/procps.3:11
+#, no-wrap
+msgid "PROCPS"
+msgstr "PROCPS"
+
+#. type: TH
+#: ../man/procps.3:11 ../man/procps_misc.3:11 ../man/procps_pids.3:11
+#, no-wrap
+msgid "August 2022"
+msgstr "Augusti 2022"
+
+#. type: TH
+#: ../man/procps.3:11 ../man/procps_misc.3:11 ../man/procps_pids.3:11
+#, no-wrap
+msgid "libproc2"
+msgstr "libproc2"
+
+#. type: Plain text
+#: ../man/procps.3:17
+msgid "procps - API to access system level information in the /proc filesystem"
+msgstr "procps — API för att komma åt information på systemnivå i filsystemet /proc"
+
+#. type: Plain text
+#: ../man/procps.3:22
+msgid "Five distinct interfaces are represented in this synopsis and named after the files they access in the /proc pseudo filesystem: B<diskstats>, B<meminfo>, B<slabinfo>, B<stat> and B<vmstat>."
+msgstr "Fem distinkta gränssnitt representeras i detta synopsis namnges efter filen de använder i pseudofilsystemet /proc: B<diskstats>, B<meminfo>, B<slabinfo>, B<stat> och B<vmstat>."
+
+#. type: Plain text
+#: ../man/procps.3:26
+#, no-wrap
+msgid "#include E<lt>libproc2/B<named_interface>.hE<gt>\n"
+msgstr "#include E<lt>libproc2/B<namngivet_gränssnitt>.hE<gt>\n"
+
+#. type: Plain text
+#: ../man/procps.3:30
+#, no-wrap
+msgid ""
+"intB< procps_new > (struct info **I<info>);\n"
+"intB< procps_ref > (struct info *I<info>);\n"
+"intB< procps_unref> (struct info **I<info>);\n"
+msgstr ""
+"intB< procps_new > (struct info **I<info>);\n"
+"intB< procps_ref > (struct info *I<info>);\n"
+"intB< procps_unref> (struct info **I<info>);\n"
+
+#. type: Plain text
+#: ../man/procps.3:35
+#, no-wrap
+msgid ""
+"struct result *B<procps_get> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<name>, ] B<diskstats> api only\n"
+" enum item I<item>);\n"
+msgstr ""
+"struct result *B<procps_get> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<namn>, ] endast B<diskstats>-api:et\n"
+" enum item I<post>);\n"
+
+#. type: Plain text
+#: ../man/procps.3:41
+#, no-wrap
+msgid ""
+"struct stack *B<procps_select> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<name>, ] B<diskstats> api only\n"
+" enum item *I<items>,\n"
+" int I<numitems>);\n"
+msgstr ""
+"struct stack *B<procps_select> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<namn>, ] endast B<diskstats>-api:et\n"
+" enum item *I<poster>,\n"
+" int I<postantal>);\n"
+
+#. type: Plain text
+#: ../man/procps.3:47
+#, no-wrap
+msgid ""
+"struct reaped *B<procps_reap> (\n"
+" struct info *I<info>,\n"
+"[ enum reap_type I<what>, ] B<stat> api only\n"
+" enum item *I<items>,\n"
+" int I<numitems>);\n"
+msgstr ""
+"struct reaped *B<procps_reap> (\n"
+" struct info *I<info>,\n"
+"[ enum reap_type I<vad>, ] endast B<stat>-api:et\n"
+" enum item *I<poster>,\n"
+" int I<postantal>);\n"
+
+#. type: Plain text
+#: ../man/procps.3:54
+#, no-wrap
+msgid ""
+"struct stack **B<procps_sort> (\n"
+" struct info *I<info>,\n"
+" struct stack *I<stacks>[],\n"
+" int I<numstacked>,\n"
+" enum item I<sortitem>,\n"
+" enum sort_order I<order>);\n"
+msgstr ""
+"struct stack **B<procps_sort> (\n"
+" struct info *I<info>,\n"
+" struct stack *I<stackar>[],\n"
+" int I<stackantal>,\n"
+" enum item I<sortpost>,\n"
+" enum sort_order I<ordning>);\n"
+
+#. type: Plain text
+#: ../man/procps.3:61
+msgid "The above functions and structures are generic but the specific B<named_interface> would also be part of any identifiers. For example, `procps_new' would actually be `procps_B<meminfo>_new' and `info' would really be `B<diskstats>_info', etc."
+msgstr "OvanstÃ¥ende funktioner och poster är generella men det specifika B<namngivna_gränssnittet> skall ocksÃ¥ vara en del av alla identifierare. Till exempel, â€procps_new†skulle faktiskt vara â€procps_B<meminfo>_new†och \"info\" skulle faktiskt vara â€B<diskstats>_infoâ€, etc."
+
+#. type: Plain text
+#: ../man/procps.3:64
+msgid "The same B<named_interface> is used in each header file name with an appended `.h' suffix."
+msgstr "Samma B<namngivna_gränssnitt> används i varje huvudfilnamn med en ändelse .h tillagd."
+
+#. type: Plain text
+#: ../man/procps.3:66 ../man/procps_pids.3:60
+msgid "Link with I<-lproc2>."
+msgstr "Länka med I<-lproc2>."
+
+#. type: SS
+#: ../man/procps.3:68 ../man/procps_pids.3:62
+#, no-wrap
+msgid "Overview"
+msgstr "Översikt"
+
+#. type: Plain text
+#: ../man/procps.3:74
+msgid "Central to these interfaces is a simple `result' structure reflecting an `item' plus its value (in a union with standard C language types as members). All `result' structures are automatically allocated and provided by the library."
+msgstr "Centralt för dessa gränssnitt är en enkel â€resultatâ€-post so avspelgar ett â€element†plus dess värde (i en union med typer frÃ¥n standardsprÃ¥ket C som medlemmar). Alla â€resultatâ€-poster allokeras automatiskt och levereras av biblioteket."
+
+#. type: Plain text
+#: ../man/procps.3:80 ../man/procps_pids.3:74
+msgid "By specifying an array of `items', these structures can be organized as a `stack', potentially yielding many results with a single function call. Thus, a `stack' can be viewed as a variable length record whose content and order is determined solely by the user."
+msgstr "Genom att ange en vektor av â€element†kan dessa strukturer organiseras som en â€stackâ€, som potentiellt ger mÃ¥nga resultat med ett enda funktionsanrop. AlltsÃ¥ kan en â€stack†ses som en post med variabel längd vars innehÃ¥ll och ordning helt avgörs av användaren."
+
+#. type: Plain text
+#: ../man/procps.3:85
+msgid "As part of each interface there are two unique enumerators. The `noop' and `extra' items exist to hold user values. They are never set by the library, but the `extra' result will be zeroed with each library interaction."
+msgstr "Som en del av varje gränssnitt finns det tvÃ¥ unika uppräknare. Elementen â€noop†och â€extra†finns för att hÃ¥lla användarvärden. De sätts aldrig av bilbioteket, men resultatet â€extra†kommer nollställas med varje biblioteksinteratkion."
+
+#. type: Plain text
+#: ../man/procps.3:91
+msgid "The B<named_interface> header file will be an essential document during user program development. There you will find available items, their return type (the `result' struct member name) and the source for such values. Additional enumerators and structures are also documented there."
+msgstr "Huvudfilen B<namngivet_gränssnitt> kommer vara ett viktigt dokument under programutveckling. Där hittar man tillgängliga element, deras returtyper (medlemsnamn i posten â€resultatâ€) och källan för sÃ¥dana värden. Ytterligare uppräknare och poster dokumenteras ocksÃ¥ där."
+
+#. type: SS
+#: ../man/procps.3:92 ../man/procps_pids.3:86
+#, no-wrap
+msgid "Usage"
+msgstr "Användning"
+
+#. type: Plain text
+#: ../man/procps.3:95
+msgid "The following would be a typical sequence of calls to these interfaces."
+msgstr "Följande skulle vara en typisk sekvens av anrop till dessa gränssnitt."
+
+#. type: Plain text
+#: ../man/procps.3:100
+#, no-wrap
+msgid ""
+"1. B<procps_new()>\n"
+"2. B<procps_get()>, B<procps_select()> or B<procps_reap()>\n"
+"3. B<procps_unref()>\n"
+msgstr ""
+"1. B<procps_new()>\n"
+"2. B<procps_get()>, B<procps_select()> eller B<procps_reap()>\n"
+"3. B<procps_unref()>\n"
+
+#. type: Plain text
+#: ../man/procps.3:106
+msgid "The B<get> function is used to retrieve a `result' structure for a single `item'. Alternatively, a B<GET> macro is available when only the return value is of interest."
+msgstr "Funktionen B<get> används för att hämta posten â€resultat†för ett visst â€elementâ€. Alternativt är ett B<GET>-makro tillgängligt när endast returvärdet är intressant."
+
+#. type: Plain text
+#: ../man/procps.3:109
+msgid "The B<select> function can retrieve multiple `result' structures in a single `stack'."
+msgstr "Funktionen B<select> kan hämta flera â€resultatâ€-poster i en enda â€stackâ€."
+
+#. type: Plain text
+#: ../man/procps.3:115
+msgid "For unpredictable variable outcomes, the B<diskstats>, B<slabinfo> and B<stat> interfaces export a B<reap> function. It is used to retrieve multiple `stacks' each containing multiple `result' structures. Optionally, a user may choose to B<sort> those results."
+msgstr "För oförutsägbara variabla resultat exporterar gränssnitten B<diskstats>, B<slabinfo> och B<stat> en funktion B<reap>. Den används för att hämta multipla â€stackar†där var och en innehÃ¥ller flera â€resultatâ€-poster. Om önskas kan en användare välja att B<sortera> dessa resultat."
+
+#. type: Plain text
+#: ../man/procps.3:122 ../man/procps_pids.3:114
+msgid "To exploit any `stack', and access individual `result' structures, a I<relative_enum> is required as shown in the B<VAL> macro defined in the header file. Such values could be hard coded as: 0 through numitems-1. However, this need is typically satisfied by creating your own enumerators corresponding to the order of the `items' array."
+msgstr "För att använda nÃ¥gon â€stackâ€, och komma Ã¥t individuella â€resultatâ€-poster, krävs en I<relativ_uppräkning> som visas i makrot B<VAL> definierat i huvudfilen. SÃ¥dana värden skulle kunna hÃ¥rdkodas som: 0 till antalelement-1. Dock uppfylls detta behov typiskt genom att skapa ens egna uppräknare motsvarande ordningen i vektorn av â€elementâ€."
+
+#. type: SS
+#: ../man/procps.3:123 ../man/procps_pids.3:115
+#, no-wrap
+msgid "Caveats"
+msgstr "Förbehåll"
+
+#. type: Plain text
+#: ../man/procps.3:126
+msgid "The B<new>, B<ref>, B<unref>, B<get> and B<select> functions are available in all five interfaces."
+msgstr "Funktionerna B<new>, B<ref>, B<unref>, B<get> och B<select> är tillgängliga i alla fem gränssnitten."
+
+#. type: Plain text
+#: ../man/procps.3:131 ../man/procps_pids.3:127
+msgid "For the B<new> and B<unref> functions, the address of an I<info> struct pointer must be supplied. With B<new> it must have been initialized to NULL. With B<unref> it will be reset to NULL if the reference count reaches zero."
+msgstr "För funktionerna B<new> och B<unref> måste adressen till en I<info>-postpekare ges. Med B<new> måste den ha initierats till NULL. Med B<unref> kommer den återställas till NULL om referensräknaren når noll."
+
+#. type: Plain text
+#: ../man/procps.3:135
+msgid "In the case of the B<diskstats> interface, a I<name> parameter on the B<get> and B<select> functions identifies a disk or partition name"
+msgstr "Vad gäller gränssnittet B<diskstats> identifierar en parameter I<namn> till funktionerna B<get> och B<select> en disk eller ett partitionsnamn"
+
+#. type: Plain text
+#: ../man/procps.3:139
+msgid "For the B<stat> interface, a I<what> parameter on the B<reap> function identifies whether data for just CPUs or both CPUs and NUMA nodes is to be gathered."
+msgstr "För gränssnittet B<stat> identifierar en I<vad>-parameter till funktionen B<reap> huruvida data för endast CPU:er eller både CPU:er och NUMA-noder skall samlas in."
+
+#. type: Plain text
+#: ../man/procps.3:143
+msgid "When using the B<sort> function, the parameters I<stacks> and I<numstacked> would normally be those returned in the `reaped' structure."
+msgstr "När man använder funktionen B<sort> skall normalt parametrarna I<stackar> och I<stackantal> normalt vara de som returneras av posten â€reapedâ€."
+
+#. type: SH
+#: ../man/procps.3:144 ../man/procps_misc.3:127 ../man/procps_pids.3:148
+#, no-wrap
+msgid "RETURN VALUE"
+msgstr "RETURVÄRDE"
+
+#. type: SS
+#: ../man/procps.3:145 ../man/procps_pids.3:149
+#, no-wrap
+msgid "Functions Returning an `int'"
+msgstr "Funktioner som returnerar en â€intâ€"
+
+#. type: Plain text
+#: ../man/procps.3:148 ../man/procps_misc.3:131 ../man/procps_pids.3:152
+msgid "An error will be indicated by a negative number that is always the inverse of some well known errno.h value."
+msgstr "Ett fel kommer indikera ett negativt tal som alltid är inversen av något känt värde från errno.h."
+
+#. type: Plain text
+#: ../man/procps.3:152 ../man/procps_pids.3:156
+msgid "Success is indicated by a zero return value. However, the B<ref> and B<unref> functions return the current I<info> structure reference count."
+msgstr "Lyckat resultat markeras med ett returvärde av noll. Dock returnerar funktionerna B<ref> och B<unref> det aktuella värdet på referensräknaren för I<info>-posten."
+
+#. type: SS
+#: ../man/procps.3:153 ../man/procps_misc.3:132 ../man/procps_pids.3:157
+#, no-wrap
+msgid "Functions Returning an `address'"
+msgstr "Funktioner som returnerar en â€adressâ€"
+
+#. type: Plain text
+#: ../man/procps.3:156 ../man/procps_misc.3:135 ../man/procps_pids.3:160
+msgid "An error will be indicated by a NULL return pointer with the reason found in the formal errno value."
+msgstr "Ett fel kommer indikeras av en NULL-returpekare och orsaken går att hitta i dett formella errno-värdet."
+
+#. type: Plain text
+#: ../man/procps.3:158
+msgid "Success is indicated by a pointer to the named structure."
+msgstr "Lyckat resultat indikeras med en pekare till den namngivna posten."
+
+#. type: SH
+#: ../man/procps.3:159 ../man/procps_pids.3:165
+#, no-wrap
+msgid "DEBUGGING"
+msgstr "FELSÖKNING"
+
+#. type: Plain text
+#: ../man/procps.3:165
+msgid "To aid in program development, there is a provision that can help ensure `result' member references agree with library expectations. It assumes that a supplied macro in the header file is used to access the `result' value."
+msgstr "För att hjälpa till i programutveckling finns det ett medel som kan hjälpa till att säkerställa att â€resultatâ€-medlemsreferenser stämmer överens med bibliotekets förväntningar. Det förutsätter att ett av de tillgängliga makrona i huvudfilen används för att komma Ã¥t â€resultatâ€-värdet."
+
+#. type: Plain text
+#: ../man/procps.3:168 ../man/procps_pids.3:185
+msgid "This feature can be activated through either of the following methods and any discrepancies will be written to B<stderr>."
+msgstr "Denna funktion kan aktiveras genom någon av de följande metoderna och eventuella avvikelser kommer att skrivas till B<standard fel>."
+
+#. type: IP
+#: ../man/procps.3:169 ../man/procps_pids.3:186
+#, no-wrap
+msgid "1)"
+msgstr "1)"
+
+#. type: Plain text
+#: ../man/procps.3:172
+msgid "Add CFLAGS='-DXTRA_PROCPS_DEBUG' to any other ./configure options employed."
+msgstr "Lägg till CFLAGS='-DXTRA_PROCPS_DEBUG' till eventuella övriga flaggor som används till ./configure."
+
+#. type: IP
+#: ../man/procps.3:173 ../man/procps_pids.3:190
+#, no-wrap
+msgid "2)"
+msgstr "2)"
+
+#. type: Plain text
+#: ../man/procps.3:176
+msgid "Add #include E<lt>procps/xtra-procps-debug.hE<gt> to any program I<after> the named interface includes."
+msgstr "Lägg till #include E<lt>procps/xtra-procps-debug.hE<gt> till alla program I<efter> inkluderandet av de namngivna gränssnitten."
+
+#. type: Plain text
+#: ../man/procps.3:181 ../man/procps_pids.3:198
+msgid "This verification feature incurs substantial overhead. Therefore, it is important that it I<not> be activated for a production/release build."
+msgstr "Denna verifieringsfunktion orsakar en väsentlig kostnad. Därför är det viktigt att den I<inte> är aktiverad för produktions-/utgåvebyggen."
+
+#. type: Plain text
+#: ../man/procps.3:185
+msgid "B<procps_misc>(3), B<procps_pids>(3), B<proc>(5)."
+msgstr "B<procps_misc>(3), B<procps_pids>(3), B<proc>(5)."
+
+#. type: TH
+#: ../man/procps_misc.3:11
+#, no-wrap
+msgid "PROCPS_MISC"
+msgstr "PROCPS_MISC"
+
+#. type: Plain text
+#: ../man/procps_misc.3:17
+msgid "procps_misc - API for miscellaneous information in the /proc filesystem"
+msgstr "procps_misc — API för diverse information i filsystemet /proc"
+
+#. type: Plain text
+#: ../man/procps_misc.3:20
+#, no-wrap
+msgid "B<#include E<lt>libproc2/misc.hE<gt>>\n"
+msgstr "B<#include E<lt>libproc2/misc.hE<gt>>\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:22
+#, no-wrap
+msgid "Platform Particulars\n"
+msgstr "Plattformsegenskaper\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:28
+#, no-wrap
+msgid ""
+"long B<procps_cpu_count> (void);\n"
+"long B<procps_hertz_get> (void);\n"
+"unsigned int B<procps_pid_length> (void);\n"
+"int B<procps_linux_version> (void);\n"
+msgstr ""
+"long B<procps_cpu_count> (void);\n"
+"long B<procps_hertz_get> (void);\n"
+"unsigned int B<procps_pid_length> (void);\n"
+"int B<procps_linux_version> (void);\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:31
+#, no-wrap
+msgid "Runtime Particulars\n"
+msgstr "Körtidsegenskaper\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:37
+#, no-wrap
+msgid ""
+"int B< procps_loadavg> (double *I<av1>, double *I<av5>, double *I<av15>);\n"
+"int B< procps_uptime> (double *I<uptime_secs>, double *I<idle_secs>);\n"
+"char *B<procps_uptime_sprint> (void);\n"
+"char *B<procps_uptime_sprint_short> (void);\n"
+msgstr ""
+"int B< procps_loadavg> (double *I<gs1>, double *I<gs5>, double *I<gs15>);\n"
+"int B< procps_uptime> (double *I<uppetid_s>, double *I<inaktiv_s>);\n"
+"char *B<procps_uptime_sprint> (void);\n"
+"char *B<procps_uptime_sprint_short> (void);\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:40
+#, no-wrap
+msgid "Namespace Particulars\n"
+msgstr "Namnrymdsegenskaper\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:45
+#, no-wrap
+msgid ""
+"int B< procps_ns_get_id> (const char *I<name>);\n"
+"const charB< *procps_ns_get_name> (int I<id>);\n"
+"int B< procps_ns_read_pid> (int I<pid>, struct procps_ns *I<nsp>);\n"
+msgstr ""
+"int B< procps_ns_get_id> (const char *I<namn>);\n"
+"const charB< *procps_ns_get_name> (int I<id>);\n"
+"int B< procps_ns_read_pid> (int I<pid>, struct procps_ns *I<nrd>);\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:48
+#, no-wrap
+msgid "Link with I<-lproc2>.\n"
+msgstr "Länka med I<-lproc2>.\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:54
+msgid "B<procps_cpu_count>() returns the number of CPUs that are currently online as B<sysconf(>I<_SC_NPROCESSORS_ONLY>B<)> or an assumed I<1>."
+msgstr "B<procps_cpu_count>() returnerar antalet CPU:er som för närvarande är inkopplade liksom B<sysconf(>I<_SC_NPROCESSORS_ONLY>B<)> eller ett antaget I<1>."
+
+#. type: Plain text
+#: ../man/procps_misc.3:60
+msgid "B<procps_hertz_get>() returns the number of clock ticks per second as B<sysconf(>I<_SC_CLK_TCK>B<)> or an assumed I<100>. Dividing tics by this value yields seconds."
+msgstr "B<procps_hertz_get>() returnerar antalet klocktick per sekund liksom B<sysconf(>I<_SC_CLK_TCK>B<)> eller ett antaget I<100>. Att dividera tick med detta värder ger sekunder."
+
+#. type: Plain text
+#: ../man/procps_misc.3:65
+msgid "B<procps_pid_length>() returns the maximum string length for a PID on the system. For example, if the largest possible PID value on was 123, then the length would be 3. If the file I</proc/sys/kernel/pid_max> is unreadable, the value is assumed to be I<5>."
+msgstr "B<procps_pid_length>() returnerar den maximala stränglängden för en PID på systemet. Till exempel, om det största möjliga värdet på en PID var 123, då skulle längden vara 3. Om filen I</proc/sys/kernel/pid_max> är oläsbar antas värdet vara I<5>."
+
+#. type: Plain text
+#: ../man/procps_misc.3:74
+msgid "B<procps_linux_version>() returns the current Linux version as an encoded integer. On non-Linux systems that have an emulated proc filesystem this function returns the version of the Linux emulation instead. The version consists of three positive integers representing the major, minor and patch levels. The following macros are provided for encoding a given Linux version or separating out the components of the current version."
+msgstr "B<procps_linux_version>() returnerar den aktuella Linuxversionen som ett kodat heltal. På ett icke-Linuxsystem som har ett emulerat proc-filsystem returnerar denna funktionen versionen på Linuxemuleringen istället. Versionen består av tre positiva heltal som representerar nivåerna större, mindre och fix. Följande makron finns för att koda en given Linuxversion eller att separera ut komponenterna av den aktuella versionen."
+
+#. type: Plain text
+#: ../man/procps_misc.3:77
+msgid "LINUX_VERSION(\\ major\\ ,\\ minor\\ ,\\ patch\\ )"
+msgstr "LINUX_VERSION(\\ större\\ ,\\ mindre\\ ,\\ fix\\ )"
+
+#. type: Plain text
+#: ../man/procps_misc.3:79
+msgid "LINUX_VERSION_MAJOR(\\ ver\\ )"
+msgstr "LINUX_VERSION_MAJOR(\\ ver\\ )"
+
+#. type: Plain text
+#: ../man/procps_misc.3:81
+msgid "LINUX_VERSION_MINOR(\\ ver\\ )"
+msgstr "LINUX_VERSION_MINOR(\\ ver\\ )"
+
+#. type: Plain text
+#: ../man/procps_misc.3:83
+msgid "LINUX_VERSION_PATCH(\\ ver\\ )"
+msgstr "LINUX_VERSION_PATCH(\\ ver\\ )"
+
+#. type: Plain text
+#: ../man/procps_misc.3:88
+msgid "B<procps_loadavg>() fetches the system load average and puts the 1, 5 and 15 minute averages into location(s) specified by any pointer which is not I<NULL>."
+msgstr "B<procps_loadavg>() hämtar genomsnittlig systemlast och lägger genomsnitten över 1, 5 och 15 minuter i platserna som anges av de pekare som inte är I<NULL>."
+
+#. type: Plain text
+#: ../man/procps_misc.3:93
+msgid "B<procps_uptime>() returns uptime and/or idle seconds into location(s) specified by any pointer which is not I<NULL>. The B<sprint> varieties return a human-readable string in one of two forms."
+msgstr "B<procps_uptime>() returnerar uppetiden och eller inaktiva sekunder i platserna som anges av de pekare som inte är I<NULL>. Varianterna B<sprint> returnerar en mänskligt läsbar sträng på en av två former."
+
+#. type: Plain text
+#: ../man/procps_misc.3:96
+msgid "HH:MM:SS up HH:MM, # users, load average: 1, 5, 15 MM averages"
+msgstr "HH:MM:SS up HH:MM, # users, load average: 1, 5, 15 MM averages"
+
+#. type: Plain text
+#: ../man/procps_misc.3:98
+msgid "up HH, MM"
+msgstr "up HH, MM"
+
+#. type: Plain text
+#: ../man/procps_misc.3:102
+msgid "B<procps_ns_get_id>() returns the integer id (enum namespace_type) of the namespace for the given namespace I<name>."
+msgstr "B<procps_ns_get_id>() returnerar heltals-id:t (enum namespace_type) för namnrymden för den angivna namnrymden I<namn>."
+
+#. type: Plain text
+#: ../man/procps_misc.3:105
+msgid "B<procps_ns_get_name>() returns the name of the namespace for the given I<id> (enum namespace_type)."
+msgstr "B<procps_ns_get_name>() returnerar namnet på namnrymden för det angivna I<id:t> (enum namespace_type)."
+
+#. type: Plain text
+#: ../man/procps_misc.3:110
+msgid "B<procps_ns_read_pid>() returns the inodes for the namespaces of the given process in the procps_ns structure pointed to by I<nsp>. Those inodes will appear in the order proscribed by enum namespace_type."
+msgstr "B<procps_ns_read_pid>() returnerar inoderna för namnrymderna för den angivna processen procps_ns-posten som pekas ut av I<nrp>. Dessa inoder kommer komma i den ordning som föreskrivs av enum namespace_type."
+
+#. type: Plain text
+#: ../man/procps_misc.3:123
+#, no-wrap
+msgid ""
+"enum namespace_type {\n"
+" PROCPS_NS_CGROUP,\n"
+" PROCPS_NS_IPC,\n"
+" PROCPS_NS_MNT,\n"
+" PROCPS_NS_NET,\n"
+" PROCPS_NS_PID,\n"
+" PROCPS_NS_TIME,\n"
+" PROCPS_NS_USER,\n"
+" PROCPS_NS_UTS\n"
+"};\n"
+msgstr ""
+"enum namespace_type {\n"
+" PROCPS_NS_CGROUP,\n"
+" PROCPS_NS_IPC,\n"
+" PROCPS_NS_MNT,\n"
+" PROCPS_NS_NET,\n"
+" PROCPS_NS_PID,\n"
+" PROCPS_NS_TIME,\n"
+" PROCPS_NS_USER,\n"
+" PROCPS_NS_UTS\n"
+"};\n"
+
+#. type: SS
+#: ../man/procps_misc.3:128
+#, no-wrap
+msgid "Functions Returning an `int' or `long'"
+msgstr "Funktioner som returnerar en â€int†eller â€longâ€"
+
+#. type: TP
+#: ../man/procps_misc.3:137
+#, no-wrap
+msgid "I</proc/loadavg>"
+msgstr "I</proc/loadavg>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:140
+msgid "The raw values for load average."
+msgstr "De råa värdena för lastgenomsnitt."
+
+#. type: TP
+#: ../man/procps_misc.3:140
+#, no-wrap
+msgid "I</proc/sys/kernel/osrelease>"
+msgstr "I</proc/sys/kernel/osrelease>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:143
+msgid "Contains the release version of the Linux kernel or proc filesystem."
+msgstr "Innehåller utgåveversionen för Linuxkärnan eller proc-filsystemet."
+
+#. type: TP
+#: ../man/procps_misc.3:143
+#, no-wrap
+msgid "I</proc/sys/kernel/pid_max>"
+msgstr "I</proc/sys/kernel/pid_max>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:146
+msgid "Contains the value at which PIDs wrap around, one greater than the maximum PID value."
+msgstr "Innehåller värdet vid vilket PID:ar slår runt, ett större än det maximala PID-värdet."
+
+#. type: TP
+#: ../man/procps_misc.3:146
+#, no-wrap
+msgid "I</proc/uptime>"
+msgstr "I</proc/uptime>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:149
+msgid "The raw values for uptime and idle time."
+msgstr "De råa värdena för uppetid och inaktiv tid."
+
+#. type: TP
+#: ../man/procps_misc.3:149
+#, no-wrap
+msgid "I</proc/E<lt>PIDE<gt>/ns>"
+msgstr "I</proc/E<lt>PIDE<gt>/ns>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:152
+msgid "contains the set of namespaces for a particular B<PID>."
+msgstr "innehåller uppsättningen av namnrymder för en viss B<PID>."
+
+#. type: Plain text
+#: ../man/procps_misc.3:156
+msgid "B<procps>(3), B<procps_pids>(3), B<proc>(5)."
+msgstr "B<procps>(3), B<procps_pids>(3), B<proc>(5)."
+
+#. type: TH
+#: ../man/procps_pids.3:11
+#, no-wrap
+msgid "PROCPS_PIDS"
+msgstr "PROCPS_PIDS"
+
+#. type: Plain text
+#: ../man/procps_pids.3:17
+msgid "procps_pids - API to access process information in the /proc filesystem"
+msgstr "procps_pids — API för att hämta ut processinformation i filsystemet /proc"
+
+#. type: Plain text
+#: ../man/procps_pids.3:21
+#, no-wrap
+msgid "#include E<lt>libproc2/pids.hE<gt>\n"
+msgstr "#include E<lt>libproc2/pids.hE<gt>\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:25
+#, no-wrap
+msgid ""
+"intB< procps_pids_new > (struct pids_info **I<info>, enum pids_item *I<items>, int I<numitems>);\n"
+"intB< procps_pids_ref > (struct pids_info *I<info>);\n"
+"intB< procps_pids_unref> (struct pids_info **I<info>);\n"
+msgstr ""
+"intB< procps_pids_new > (struct pids_info **I<info>, enum pids_item *I<element>, int I<antalelement>);\n"
+"intB< procps_pids_ref > (struct pids_info *I<info>);\n"
+"intB< procps_pids_unref> (struct pids_info **I<info>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:30
+#, no-wrap
+msgid ""
+"struct pids_stack *B<procps_pids_get> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<which>);\n"
+msgstr ""
+"struct pids_stack *B<procps_pids_get> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<vilken>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:34
+#, no-wrap
+msgid ""
+"struct pids_fetch *B<procps_pids_reap> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<which>);\n"
+msgstr ""
+"struct pids_fetch *B<procps_pids_reap> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<vilken>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:40
+#, no-wrap
+msgid ""
+"struct pids_fetch *B<procps_pids_select> (\n"
+" struct pids_info *I<info>,\n"
+" unsigned *I<these>,\n"
+" int I<numthese>,\n"
+" enum pids_select_type I<which>);\n"
+msgstr ""
+"struct pids_fetch *B<procps_pids_select> (\n"
+" struct pids_info *I<info>,\n"
+" unsigned *I<dessa>,\n"
+" int I<antaldessa>,\n"
+" enum pids_select_type I<vilken>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:47
+#, no-wrap
+msgid ""
+"struct pids_stack **B<procps_pids_sort> (\n"
+" struct pids_info *I<info>,\n"
+" struct pids_stack *I<stacks>[],\n"
+" int I<numstacked>,\n"
+" enum pids_item I<sortitem>,\n"
+" enum pids_sort_order I<order>);\n"
+msgstr ""
+"struct pids_stack **B<procps_pids_sort> (\n"
+" struct pids_info *I<info>,\n"
+" struct pids_stack *I<stackar>[],\n"
+" int I<antalstackade>,\n"
+" enum pids_item I<sortelement>,\n"
+" enum pids_sort_order I<ordning>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:52
+#, no-wrap
+msgid ""
+"int B<procps_pids_reset> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_item *I<newitems>,\n"
+" int I<newnumitems>);\n"
+msgstr ""
+"int B<procps_pids_reset> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_item *I<nyaelement>,\n"
+" int I<nyaantalelement>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:56
+#, no-wrap
+msgid ""
+"struct pids_stack *B<fatal_proc_unmounted> (\n"
+" struct pids_info *I<info>,\n"
+" int I<return_self>);\n"
+msgstr ""
+"struct pids_stack *B<fatal_proc_unmounted> (\n"
+" struct pids_info *I<info>,\n"
+" int I<returnera_själv>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:68
+msgid "Central to this interface is a simple `result' structure reflecting an `item' plus its value (in a union with standard C language types as members). All `result' structures are automatically allocated and provided by the library."
+msgstr "Centralt för detta gränssnitt är en enkel â€resultatâ€-post som avspeglar ett â€element†plus dess värde (i en union med standardtyper i sprÃ¥ket C som medlemmar). Alla â€resultatâ€-poster allokeras automatiskt och tillhandahÃ¥lls av biblioteket."
+
+#. type: Plain text
+#: ../man/procps_pids.3:79
+msgid "As part of this interface there are two unique enumerators. The `noop' and `extra' items exist to hold user values. They are never set by the library, but the `extra' result will be zeroed with each library interaction."
+msgstr "Som en del av detta gränssnitt finns det tvÃ¥ unika uppräknare. Elementen â€noop†och â€extra†finns för att hÃ¥lla användarvärden. De sätts aldrig av biblioteket, men â€extraâ€-resultatet kommer nollställas vid varje biblioteksinteraktion."
+
+#. type: Plain text
+#: ../man/procps_pids.3:85
+msgid "The pids.h file will be an essential document during user program development. There you will find available items, their return type (the `result' struct member name) and the source for such values. Additional enumerators and structures are also documented there."
+msgstr "Filen pids.h kommer vara ett avgörande dokument under användarens utveckling av program. Där hittar man tillgängliga element, deras returtyp (medlemsnamnen i posten â€resultatâ€) och källan för sÃ¥dana värden. Ytterligare uppräknare och poster dokumenteras ocksÃ¥ där."
+
+#. type: Plain text
+#: ../man/procps_pids.3:89
+msgid "The following would be a typical sequence of calls to this interface."
+msgstr "Följande skulle vara en typisk anropssekvens till detta gränssnitt."
+
+#. type: Plain text
+#: ../man/procps_pids.3:95
+#, no-wrap
+msgid ""
+"1. B<fatal_proc_unmounted()>\n"
+"2. B<procps_pids_new()>\n"
+"3. B<procps_pids_get()>, B<procps_pids_reap()> or B<procps_pids_select()>\n"
+"4. B<procps_pids_unref()>\n"
+msgstr ""
+"1. B<fatal_proc_unmounted()>\n"
+"2. B<procps_pids_new()>\n"
+"3. B<procps_pids_get()>, B<procps_pids_reap()> eller B<procps_pids_select()>\n"
+"4. B<procps_pids_unref()>\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:100
+msgid "The B<get> function is an iterator for successive PIDs/TIDs, returning those `items' previously identified via B<new> or B<reset>."
+msgstr "Funktionen B<get> är en iterator för succesiva PID:n/TID:n, och returnerar dessa â€element†som tidigare identifierats via B<new> eller B<reset>."
+
+#. type: Plain text
+#: ../man/procps_pids.3:107
+msgid "Two functions support unpredictable variable outcomes. The B<reap> function gathers data for all processes while the B<select> function deals with specific PIDs or UIDs. Both can return multiple `stacks' each containing multiple `result' structures. Optionally, a user may choose to B<sort> such results"
+msgstr "TvÃ¥ funktioner stödjer oförutsägbara variabla utfall. Funktionen B<reap> samlar dat för alla processer medan funktionen B<select> arbetar med specifikaPID:er eller UID:er. BÃ¥da kan returnera flera â€stackar†som var och en innehÃ¥ller multipla â€resultatâ€-poster. Om önskas kan en användare välja att B<sort> sÃ¥dana resultat"
+
+#. type: Plain text
+#: ../man/procps_pids.3:122
+msgid "The E<lt>pidsE<gt> API differs from others in that those items of interest must be provided at B<new> or B<reset> time, the latter being unique to this API. If either the I<items> or I<numitems> parameter is zero at B<new> time, then B<reset> becomes mandatory before issuing any other call."
+msgstr "API:et E<lt>pidsE<gt> skiljer sig från andra genom att de intressanta elementen måste anges vid tidpunkten för B<new> eller B<reset>, där den senare är unik för detta API. Om antingen parametern I<element> eller I<antalelement> är noll vid tidpunkten för B<new> blir B<reset> obligatorisk före man gör något annat anrop."
+
+#. type: Plain text
+#: ../man/procps_pids.3:130
+msgid "The B<get> and B<reap> functions use the I<which> parameter to specify whether just tasks or both tasks and threads are to be fetched."
+msgstr "Funktionerna B<get> och B<reap> använder parametern I<vilken> för att ange huruvida endast uppgifter eller både uppgifter och trådar skall hämtas."
+
+#. type: Plain text
+#: ../man/procps_pids.3:135
+msgid "The B<select> function requires an array of PIDs or UIDs as I<these> along with I<numthese> to identify which processes are to be fetched. This function then operates as a subset of B<reap>."
+msgstr "Funktionen B<select> behöver en vektor av PID:er eller UID:er som I<dessa> tillsammans med I<antaldessa> för att identifera vilka processer som skall hämtas. Denna funktion arbetar sedan som en delmängd av B<reap>."
+
+#. type: Plain text
+#: ../man/procps_pids.3:139
+msgid "When using the B<sort> function, the parameters I<stacks> and I<numstacked> would normally be those returned in the `pids_fetch' structure."
+msgstr "När man använder funktionen B<sort> skall parametrarna I<stackar> och I<antalstackade> normalt vara de som returneras i posten â€pids_fetchâ€."
+
+#. type: Plain text
+#: ../man/procps_pids.3:147
+msgid "Lastly, a B<fatal_proc_unmounted> function may be called before any other function to ensure that the /proc/ directory is mounted. As such, the I<info> parameter would be NULL and the I<return_self> parameter zero. If, however, some items are desired for the issuing program (a I<return_self> other than zero) then the B<new> call must precede it to identify the I<items> and obtain the required I<info> pointer."
+msgstr "Slutligen kan funktion B<fatal_proc_unmounted> anropas före någon annan funktion för att säkerställa att katalogen /proc/ är monterad. Därmed skall parametern I<info> vara NULL och parametern I<returnera_själv> vara noll. Om, däremot, några element önskas av det anropande programmet (en I<returnera_själv> något annat än noll) då måste anropet av B<new> föregå det för att identfiera I<element>en och hämta den önskade I<info>-pekaren."
+
+#. type: Plain text
+#: ../man/procps_pids.3:164
+msgid "Success is indicated by a pointer to the named structure. However, if one survives the B<fatal_proc_unmounted> call, NULL is always returned when I<return_self> is zero."
+msgstr "Lyckat resultat indikeras av en pekare på den namngivna posten. Dock, om man överlever anropet av B<fatal_proc_unmounted> kommer NULL alltid returneras när I<returnera_själv> är noll."
+
+#. type: Plain text
+#: ../man/procps_pids.3:168
+msgid "To aid in program development, there are two procps-ng provisions that can be exploited."
+msgstr "För att hjälpa till med programutveckling finns det två metoder i procps-ng som kan användas."
+
+#. type: Plain text
+#: ../man/procps_pids.3:173
+msgid "The first is a supplied file named `libproc.supp' which may be useful when developing a I<multi-threaded> application. When used with the valgrind `--suppressions=' option, warnings associated with the procps library itself are avoided."
+msgstr "Den första är en levererad fil med namnet â€libproc.supp†som kan vara användbar när man utvecklar ett I<multitrÃ¥dat> program. När den används med flaggan â€--suppressions=†till valgrind undviks varningar som hör ihop med biblioteket procps självt."
+
+#. type: Plain text
+#: ../man/procps_pids.3:177
+msgid "Such warnings arise because the library handles heap based allocations in a thread-safe manner. A I<single-threaded> application will not receive those warnings."
+msgstr "Sådana varningar uppstår för att biblioteket hanterar heap-baserade allokeringar på ett trädsäkert sätt. Ett I<enkeltrådat> program kommer inte att få dessa varningar."
+
+#. type: Plain text
+#: ../man/procps_pids.3:182
+msgid "The second provision can help ensure `result' member references agree with library expectations. It assumes that a supplied macro in the header file is used to access the `result' value."
+msgstr "Den andra metoden kan hjälpa till att säkerställa att medlemsreferenser i â€resultat†stämmer överens med bibliotekets förväntningar. Den räknar med att ett tillhandahÃ¥llet makro i huvuddfilen används för att komma Ã¥t â€resultatâ€-värdet."
+
+#. type: Plain text
+#: ../man/procps_pids.3:189
+msgid "Add CFLAGS='-DXTRA_PROCPS_DEBUG' to any other ./configure options your project may employ."
+msgstr "Lägg till CFLAGS='-DXTRA_PROCPS_DEBUG' till eventuella andra flaggor till ./configure som ditt projekt kan tänkas använda."
+
+#. type: Plain text
+#: ../man/procps_pids.3:193
+msgid "Add #include E<lt>procps/xtra-procps-debug.hE<gt> to any program I<after> the #include E<lt>procps/pids.hE<gt>."
+msgstr "Lägg till #include E<lt>procps/xtra-procps-debug.hE<gt> till varje program I<efter> raden #include E<lt>procps/pids.hE<gt>."
+
+#. type: SH
+#: ../man/procps_pids.3:199
+#, no-wrap
+msgid "ENVIRONMENT VARIABLE(S)"
+msgstr "MILJÖVARIABLER"
+
+#. type: Plain text
+#: ../man/procps_pids.3:206
+msgid "This will hide kernel threads which would otherwise be returned with a B<procps_pids_get>, B<procps_pids_select> or B<procps_pids_reap> call."
+msgstr "Detta kommer dölja kärntrådar som annars skulle returnera med ett anrop av B<procps_pids_get>, B<procps_pids_select> eller B<procps_pids_reap>."
+
+#. type: Plain text
+#: ../man/procps_pids.3:210
+msgid "B<procps>(3), B<procps_misc>(3), B<proc>(5)."
+msgstr "B<procps>(3), B<procps_misc>(3), B<proc>(5)."
diff --git a/po-man/sv/free.1 b/po-man/sv/free.1
new file mode 100644
index 0000000..f3389b5
--- /dev/null
+++ b/po-man/sv/free.1
@@ -0,0 +1,170 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2003 Albert Cahalan
+.\" Copyright (c) 1993 Matt Welsh <mdw@sunsite.unc.edu>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH FREE 1 2023\-05\-02 procps\-ng Användarkommandon
+.SH NAMN
+free — Visa mängden fritt och använt minne i systemet
+.SH SYNOPSIS
+\fBfree\fP [\fIflaggor\fP]
+.SH BESKRIVNING
+\fBfree\fP visar den totala mängden fritt och använt fysiskt minne och
+växlingsminne i systemet, liksom buffertarna och cacharna som används av
+kärnan. Informationen samlas in genom att tolka /proc/meminfo. De visade
+kolumnerna är:
+.TP
+\fBtotalt\fP
+Totalt användbart minne (MemTotal och SwapTotal i /proc/meminfo). Detta
+inkluderar det fysiska minnet och växlingsminnet mines några få reserverade
+bitar och kärnans binärkod.
+.TP
+\fBanvänt\fP
+Använt eller otillgängligt minne (beräknat som \fBtotalt\fP \- \fBtillgängligt\fP)
+.TP
+\fBfritt\fP
+Oanvänt minne (MemFree och SwapFree i /proc/meminfo)
+.TP
+\fBdelat\fP
+Minne använt (huvudsakligen) av tmpfs (Shmem i /proc/meminfo)
+.TP
+\fBbuffertar\fP
+Minne använt av kärnans buffertar (Buffers i /proc/meminfo)
+.TP
+\fBcache\fP
+Minne använt av sidcachen och skivor (Cached och SReclaimable i
+/proc/meminfo)
+.TP
+\fBbuff/cache\fP
+Summan av \fBbuffertar\fP och \fBcache\fP
+.TP
+\fBtillgängligt\fP
+Uppskattning av hur mycket minne som är tillgängligt för att starta nya
+program, utan att börja växla. Till skillnad mot data som tillhandahålls av
+fälten \fBcache\fP eller \fBfritt\fP tar detta fält hänsyn till sidcachen och även
+att inte alla återvinningsbara minnesskivor kommer återvinnas på grund av
+saker som används (MemAvailable i /proc/meminfo, tillgängligt i kärnan 3.14,
+emulerat i kärnor 2.6.27+, annars samma som \fBfritt\fP)
+.SH FLAGGOR
+.TP
+\fB\-b\fP, \fB\-\-bytes\fP
+Visa mängden minne i byte.
+.TP
+\fB\-k\fP, \fB\-\-kibi\fP
+Visa mängden minne i kibibyte. Detta är standardvärdet.
+.TP
+\fB\-m\fP, \fB\-\-mebi\fP
+Visa mängden minne i mebibyte.
+.TP
+\fB\-g\fP, \fB\-\-gibi\fP
+Visa mängden minne i gibibyte.
+.TP
+\fB\-\-tebi\fP
+Visa mängden minne i tebibyte.
+.TP
+\fB\-\-pebi\fP
+Visa mängden minne i pebibyte.
+.TP
+\fB\-\-kilo\fP
+Visa mängden minne i kilobyte. Implicerar \-\-si.
+.TP
+\fB\-\-mega\fP
+Visa mängden minne i megabyte. Implicerar \-\-si.
+.TP
+\fB\-\-giga\fP
+Visa mängden minne i gigabyte. Implicerar \-\-si.
+.TP
+\fB\-\-tera\fP
+Visa mängden minne i terabyte. Implicerar \-\-si.
+.TP
+\fB\-\-peta\fP
+Visa mängden minne i petabyte. Implicerar \-\-si.
+.TP
+\fB\-h\fP, \fB\-\-human\fP
+Visa alla utmatningsfält automatiskt skalade till den kortaste enheten med
+tre siffror och visa enheterna i utskriften. Följande enheter används.
+.sp
+.nf
+ B = byte
+ Ki = kibibyte
+ Mi = mebibyte
+ Gi = gibibyte
+ Ti = tebibyte
+ Pi = pebibyte
+.fi
+.sp
+Om en enhet saknas, och du har exbibyte med RAM eller växlingsutrymme är
+talet i tebibyte och kolumnerna är inte nödvändigtvis justerade med
+rubriken.
+.TP
+\fB\-w\fP, \fB\-\-wide\fP
+Byt till brett läge. Det breda läget skapar rader som är längre än 80
+tecken. I detta läge rapporteras \fBbuffertar\fP och \fBcache\fP i två separata
+kolumner.
+.TP
+\fB\-c\fP, \fB\-\-count\fP \fIantal\fP
+Visa resultatet \fIantal\fP gånger. Kräver flaggan \fB\-s\fP.
+.TP
+\fB\-l\fP, \fB\-\-lohi\fP
+Visa detaljerad statistik över lägsta och högsta minne.
+.TP
+\fB\-L\fP, \fB\-\-line\fP
+Visa utdata på en enda rad, används ofta med flagga \fB\-s\fP för att upprepat
+visa minnesstatistik.
+.TP
+\fB\-s\fP, \fB\-\-seconds\fP \fIfördröjning\fP
+Visa kontinuerligt resultatet fördröjt \fIfördröjning\fP isär. Du kan faktiskt
+ange godtyckligt flyttal som \fIfördröjning\fP med antingen . eller , som
+decimaltecken. \fBusleep\fP(3) används för fördröjningstider med upplösning i
+mikrosekunder.
+.TP
+\fB\-\-si\fP
+Använd kilo, mega, giga etc. (potenser av 1000) istället för kibi, mebi,
+gibi (potenser av 1024).
+.TP
+\fB\-t\fP, \fB\-\-total\fP
+Visa en rad som visar kolumnernas summor.
+.TP
+\fB\-v\fP, \fB\-\-committed\fP
+Visa en rad som visar minnestilldelningsgränsen och mängden
+tilldelat/otilldelat minne. Kolumnen \fBtotalt\fP på denna rad kommer visa
+minnestilldelningsgränsen. Raden är relevan om övertilldelning av minne är
+avaktiverat.
+.TP
+\fB\-\-help\fP
+Skriv ut hjälp.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Visa versionsinformation.
+.PD
+.SH FILER
+.TP
+/proc/meminfo
+minnesinformation
+.PD
+.SH FEL
+Värdet på kolumnen \fBdelat\fP är inte tillgängligt från kärnan före 2.6.32 och
+visas som noll.
+.TP
+Skicka synpunkter på översättningen till
+.UR tp\-sv@listor.tp\-sv.se
+.UE
+.TP
+Skicka felrapporter till
+.UR procps@freelists.org
+.UE
+.SH "SE ÄVEN"
+\fBps\fP(1), \fBslabtop\fP(1), \fBtop\fP(1), \fBvmstat\fP(8).
diff --git a/po-man/sv/kill.1 b/po-man/sv/kill.1
new file mode 100644
index 0000000..0703eed
--- /dev/null
+++ b/po-man/sv/kill.1
@@ -0,0 +1,95 @@
+.\"
+.\" Copyright (c) 2002-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1998-2003 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH KILL 1 2023\-01\-16 procps\-ng Användarkommandon
+.SH NAMN
+kill — skicka en signal till en process
+.SH SYNOPSIS
+\fBkill\fP [flaggor] <pid> […]
+.SH BESKRIVNING
+Standardsignalen för kill är TERM. Använd \fB\-l\fP eller \fB\-L\fP för att lista
+tillgängliga signaler. Särskilt användbara signaler inkluderar HUP, INT,
+KILL, STOP, CONT och 0. Alternativa signaler kan anges på tre sätt: \fB\-9\fP,
+\fB\-SIGKILL\fP eller \fB\-KILL\fP. Negativa PID\-värden kan användas för att välja
+hela processgrupper; se kolumnen PGID i utdata från kommandot ps. En PID på
+\fB\-1\fP är speciell; den indikerar alla processer utom kill\-processen själv
+och init.
+.SH FLAGGOR
+.TP
+\fB<pid> […]\fP
+Skicka signal till varje listad <pid>.
+.TP
+\fB\-<signal>\fP
+.TQ
+\fB\-s <signal>\fP
+.TQ
+\fB\-\-signal <signal>\fP
+Ange den \fBsignal\fP som skall skickas. Signalen kan anges genom att använda
+namn eller nummer. Beteendet hos signaler beskrivs i manualsidan
+\fBsignal\fP(7).
+.TP
+\fB\-q\fP, \fB\-\-queue \fP\fIvärde\fP
+Använd \fBsigqueue\fP(3) istället för \fBkill\fP(2) och värdeargumentet används
+för att ange ett heltal att skickas med signalen. Om den mottagande
+processen har installerat en hanterare för denna signal med flaggan
+SA_SIGINFO till \fBsigaction\fP(2) så kan den hämta denna data via fältet
+si_value i posten siginfo_t.
+.TP
+\fB\-l\fP, \fB\-\-list\fP [\fIsignal\fP]
+Lista signalnamn. Denna flagga kan ta ett argument, vilket kommer
+konvertera signalnummer till signalnamn, eller vice versa.
+.TP
+\fB\-L\fP,\fB\ \-\-table\fP
+Lista signalnamn i en trevlig tabell.
+.TP
+.PD
+.SH OBSERVERA
+Ditt skal (kommandoradstolk) kan ha ett inbyggt kill\-kommando. Du kan
+behöva köra kommandot som beskrivs här som /bin/kill för att lösa upp
+konflikten.
+.SH EXEMPEL
+.TP
+\fBkill \-9 \-1\fP
+Döda alla processer du kan döda.
+.TP
+\fBkill \-l 11\fP
+Översätt nummer 11 till ett signalnamn.
+.TP
+\fBkill \-L\fP
+Lista de tillgängliga signalvalen i en trevlig tabell.
+.TP
+\fBkill 123 543 2341 3453\fP
+Skicka standardsignalen, SIGTERM, till alla dessa processer.
+.SH "SE ÄVEN"
+\fBkill\fP(2), \fBkillall\fP(1), \fBnice\fP(1), \fBpkill\fP(1), \fBrenice\fP(1),
+\fBsignal\fP(7), \fBsigqueue\fP(3), \fBskill\fP(1)
+.SH STANDARDER
+Detta kommand uppfyller tillämpliga standarder. Flaggan \fB\-L\fP är
+Linux\-specifik.
+.SH UPPHOVSMAN
+.UR albert@users.sf.net
+Albert Cahalan
+.UE
+skrev kill 1999 för att
+ersätta en version i bsdutils som inte följde standarder. Den i util\-linux
+kan dessuotom fungera korrekt.
+.SH "RAPPORTERA FEL"
+Skicka felrapporter till
+.UR procps@freelists.org
+.UE
+Skicka synpunkter på översättningen till
+.UR tp\-sv@listor.tp\-sv.se
+.UE
diff --git a/po-man/sv/pgrep.1 b/po-man/sv/pgrep.1
new file mode 100644
index 0000000..d31af69
--- /dev/null
+++ b/po-man/sv/pgrep.1
@@ -0,0 +1,251 @@
+.\"
+.\" Copyright (c) 2004-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2004 Albert Cahalan
+.\" Copyright (c) 2000 Kjetil Torgrim Homme
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PGREP 1 2023\-01\-16 procps\-ng Användarkommandon
+.SH NAMN
+pgrep, pkill, pidwait — slå upp, signalera eller vänta på processer baserat
+på namn och andra attribut
+.SH SYNOPSIS
+\fBpgrep\fP [flaggor] mönster
+.br
+\fBpkill\fP [flaggor] mönster
+.br
+\fBpidwait\fP [flaggor] mönster
+.SH BESKRIVNING
+\fBpgrep\fP letar igenom de just nu körande processerna och listar de
+process\-ID:n som matchar urvalskriterierna till standard ut. Alla
+kriterierna måste matcha. Till exempel,
+.IP
+$ pgrep \-u root sshd
+.PP
+kommer endast lista processerna som heter \fBsshd\fP OCH ägs av \fBroot\fP. Å
+andra sidan,
+.IP
+$ pgrep \-u root,daemon
+.PP
+kommer lista processerna som ägs av \fBroot\fP ELLER \fBdaemon\fP.
+.PP
+\fBpkill\fP kommer skicka den angivna signalen (\fBSIGTERM\fP som standard) till
+varje process istället för att lista dem på standard ut.
+.PP
+\fBpidwait\fP kommer vänta på varje process istället för att räkna upp dem på
+standard ut.
+.SH FLAGGOR
+.TP
+\fB\-\fP\fIsignal\fP
+.TQ
+\fB\-\-signal\fP \fIsignal\fP
+Definierar signalen att skicka till varje matchad process. Antingen det
+numeriska eller det symboliska signalnamnet kan användas. I \fBpgrep\fP\- eller
+\fBpidwait\fP\-läge endast kan flaggan long användas och har ingen effekt om det
+inte används tilsammans med filtret \fB\-\-require\-handler\fP för att filtrera ut
+processer där det finns en signalhanterare i användarrymden för en viss
+signal.
+
+.TP
+\fB\-c\fP, \fB\-\-count\fP
+Utelämna normal utmatning; skriv istället antalet processer som matchar.
+När antalet inte matchar något, d.v.s. returnerar noll, kommer kommandot
+returnera ett värde skilt från noll. Observera att för pkill och pidwait är
+numret antalet matchande processer, inte processerna som man lyckades skicka
+en signal till eller vänta på.
+.TP
+\fB\-d\fP, \fB\-\-delimiter\fP \fIavgränsare\fP
+Sätter strängen som används för att avgränsa varje process\-ID i utdata
+(nyrad som standard). (Endast \fBpgrep\fP.)
+.TP
+\fB\-e\fP, \fB\-\-echo\fP
+Visa namnet och PID processen som dödas. (Endast \fBpkill\fP.)
+.TP
+\fB\-f\fP, \fB\-\-full\fP
+\fIMönstret\fP matchas normalt endast mot processnamnet. När \fB\-f\fP anges
+används hela kommandoraden.
+.TP
+\fB\-g\fP, \fB\-\-pgroup\fP \fIpgrp\fP,…
+Matcha endast processer i de processgrupper vars ID listas. Processgrupp 0
+översätts till \fBpgrep\fPs, \fBpkill\fPs eller \fBpidwait\fPs egen processgrupp.
+.TP
+\fB\-G\fP, \fB\-\-group\fP \fIgid\fP,…
+Matcha endast processer vars verkliga grupp\-ID listas. BÃ¥de det numeriska
+och det symboliska värdet kan användas.
+.TP
+\fB\-i\fP, \fB\-\-ignore\-case\fP
+Matcha processer skiftlägesokänsligt.
+.TP
+\fB\-l\fP, \fB\-\-list\-name\fP
+Lista processnamnet såväl som process\-ID:t. (Endast \fBpgrep\fP.)
+.TP
+\fB\-a\fP, \fB\-\-list\-full\fP
+Lista den fullständiga kommandoraden såväl som process\-ID:t. (Endast
+\fBpgrep\fP.)
+.TP
+\fB\-n\fP, \fB\-\-newest\fP
+Välj endast den nyaste (senast startade) av de matchande processerna.
+.TP
+\fB\-o\fP, \fB\-\-oldest\fP
+Välj endast den äldsta (minst nyligen startade) av de matchande processerna.
+.TP
+\fB\-O\fP, \fB\-\-older\fP \fIsekunder\fP
+Välj processer som är äldre än sek.
+.TP
+\fB\-P\fP, \fB\-\-parent\fP \fIfpid\fP,…
+Matcha endast processer vars föräldraprocess\-ID listas.
+.TP
+\fB\-s\fP, \fB\-\-session\fP \fIsid\fP,…
+Matcha endast processer vars processessions\-ID listas. Sessions\-ID 0
+översätts till \fBpgrep\fPs, \fBpkill\fPs eller \fBpidwait\fPs eget sessions\-ID.
+.TP
+\fB\-t\fP, \fB\-\-terminal\fP \fIterm\fP,…
+Matcha endast processer vars styrande terminal listas. Terminalnamnet skall
+anges utan prefixet â€/dev/â€.
+.TP
+\fB\-u\fP, \fB\-\-euid\fP \fIeaid\fP,…
+Matcha endast processer vars effektiva användar\-ID listas. Både det
+numeriska och symboliska värdet kan användas.
+.TP
+\fB\-U\fP, \fB\-\-uid\fP \fIaid\fP,…
+Matcha endast processer vars verkliga användar\-ID listas. Både det
+numeriska och symboliska värdet kan användas.
+.TP
+\fB\-v\fP, \fB\-\-inverse\fP
+Negerar matchningen. Denna flagga används oftast i \fBpgrep\fPs eller
+\fBpidwait\fPs sammanhang. I \fBpkill\fPs sammanhang är den korta flaggan
+avaktiverad för att undvika att flaggan används av misstag.
+.TP
+\fB\-w\fP, \fB\-\-lightweight\fP
+Visar alla tråd\-id:n istället för pid:n i \fBpgrep\fPs eller \fBpidwait\fPs
+sammanhang. I \fBpkill\fPs sammanhang är denna flagga avaktiverad.
+.TP
+\fB\-x\fP, \fB\-\-exact\fP
+Matcha endast processer vars namn (eller kommandorader om \fB\-f\fP anges)
+\fBexakt\fP matchar \fImönstret\fP.
+.TP
+\fB\-F\fP, \fB\-\-pidfile\fP \fIfil\fP
+Läs \fIPID\fP:n från en \fIfil\fP. Denna flagga är mer användbar för \fBpkill\fP
+eller \fBpidwait\fP än \fBpgrep\fP.
+.TP
+\fB\-L\fP, \fB\-\-logpidfile\fP
+Misslyckas om pid\-filen (se \fB\-F\fP) inte är låst.
+.TP
+\fB\-r\fP, \fB\-\-runstates\fP \fID,R,S,Z\fP,…
+Matcha endast processer som matchar processtillståndet.
+.TP
+\fB\-A\fP, \fB\-\-ignore\-ancestors\fP
+Ignorera alla förfäder till \fBpgrep\fP, \fBpkill\fP eller \fBpidwait\fP. Till
+exempel kan detta vara användbart när man höjer med \fBsudo\fP eller liknande
+verktyg.
+.TP
+\fB\-H\fP, \fB\-\-require\-handler\fP
+Matcha endast processer där det finns en signalhanterare i användarrymden
+för signalen som skall skickas.
+.TP
+\fB\-\-cgroup \fP\fInamn\fP\fB,…\fP
+Matcha det givna styrgruppsnamnet (cgroup) v2. Se \fBcgroups\fP(8)
+.TP
+\fB\-\-ns \fP\fIpid\fP
+Matcha processer som hör till samma namnrymder. Måste köras som root för
+att matcha andra användares processer. Se \fB\-\-nslist\fP för hur man begränsar
+vilka namnrymder som skall matchas.
+.TP
+\fB\-\-nslist \fP\fInamn\fP\fB,…\fP
+Matcha endast de angivna namnrymderna. Tillgängliga namnrymder: ipc, mnt,
+net, pid, user, uts.
+.TP
+\fB\-q\fP, \fB\-\-queue \fP\fIvärde\fP
+Använd \fBsigqueue\fP(3) istället för \fBkill\fP(2) och värdeargumentet används
+för att ange ett heltal att skickas med signalen. Om den mottagande
+processen har installerat en hanterare för denna signal med flaggan
+SA_SIGINFO till \fBsigaction\fP(2) så kan den hämta denna data via fältet
+si_value i posten siginfo_t.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Visa versionsinformation och avsluta.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Visa hjälp och avsluta.
+.PD
+.SH OPERANDER
+.TP
+\fImönster\fP
+Specificerar ett utökat reguljärt uttryck att matcha mot processnamnen eller
+kommandoraderna.
+.SH EXEMPEL
+Exempel 1: Hitta process\-ID:t för demonen \fBnamed\fP:
+.IP
+$ pgrep \-u root named
+.PP
+Exempel 2: Få \fBsyslog\fP att läsa om sin konfigurationsfil:
+.IP
+$ pkill \-HUP syslogd
+.PP
+Exempel 3: Ge detaljerad information om alla \fBxterm\fP\-processer:
+.IP
+$ ps \-fp $(pgrep \-d, \-x xterm)
+.PP
+Exempel 4: Få alla \fBchrome\fP\-processer köra med nice:
+.IP
+$ renice +4 $(pgrep chrome)
+.SH SLUTSTATUS
+.PD 0
+.TP
+0
+En eller flera processer matchar kriterierna. För \fBpkill\fP och \fBpidwait\fP
+måste även en eller flera processer framgångsrikt ha signalerats.
+.TP
+1
+Inga processer matchade eller inga av dem kunde signaleras.
+.TP
+2
+Syntaxfel på kommandoraden.
+.TP
+3
+Ödesdigert fel: slut på minne etc.
+.PD
+.SH OBSERVERA
+Processnamnet som används för att matcha är begränsat till de 15 tecknen som
+är med i utdata från /proc/\fIpid\fP/stat. Använd flaggan \fB\-f\fP för att matcha
+mot den fullständiga kommandoraden, /proc/\fIpid\fP/cmdline. Trådar behöver
+inte ha samma processnamn som föräldraprocessen men kommer ha samma
+kommandorad.
+.PP
+Den körande \fBpgrep\fP\-, \fBpkill\fP\- eller \fBpidwait\fP\-processen kommer aldrig
+rapportera sig själv som en matchning.
+.PP
+Flagga \fB\-O \-\-older\fP kommer tyst misslyckas om \fI/proc\fP är monterat med
+flaggan \fIsubset=pid\fP.
+.SH FEL
+Flaggorna \fB\-n\fP och \fB\-o\fP och \fB\-v\fP kan inte kombineras. Berätta för mig om
+du behöver kunna göra detta.
+.PP
+Döda (defunct) processer rapporteras.
+.PP
+\fBpidwait\fP behöver systemanropet \fBpidfd_open\fP(2) som först dök up i Linux
+5.3.
+.SH "SE ÄVEN"
+\fBps\fP(1), \fBregex\fP(7), \fBsignal\fP(7), \fBsigqueue\fP(3), \fBkillall\fP(1),
+\fBskill\fP(1), \fBkill\fP(1), \fBkill\fP(2), \fBcgroups\fP(8).
+.SH UPPHOVSMAN
+.UR kjetilho@ifi.uio.no
+Kjetil Torgrim Homme
+.UE
+.SH "RAPPORTERA FEL"
+Skicka felrapporter till
+.UR procps@freelists.org
+.UE
+Skicka synpunkter på översättningen till
+.UR tp\-sv@listor.tp\-sv.se
+.UE
diff --git a/po-man/sv/pidof.1 b/po-man/sv/pidof.1
new file mode 100644
index 0000000..aa26bef
--- /dev/null
+++ b/po-man/sv/pidof.1
@@ -0,0 +1,72 @@
+.\"
+.\" Copyright (c) 2018-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2019-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013 Jaromir Capik <jcapik@redhat.com>
+.\" Copyright (c) 1998 Miquel van Smoorenburg
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PIDOF 1 2023\-01\-16 "" Användarkommandon
+.SH NAMN
+pidof — hitta process\-ID för ett körande program
+.SH SYNOPSIS
+\fBpidof\fP [\fB\-s\fP] [\fB\-c\fP] [\fB\-q\fP] [\fB\-w\fP] [\fB\-x\fP] [\fB\-o\fP
+\fIskippapid[,skippapid…]…\fP] \fB\-t\fP [\fB\-S\fP \fIseparator\fP] \fIprogram\fP
+\fI[\fP\fBprogram…\fP\fI]\fP
+.SH BESKRIVNING
+\fBPidof\fP hittar process\-id:t (pid:ar) för de namngivna programmen. Det
+skriver ut dessa id:n till standard ut.
+.SH FLAGGOR
+.IP \fB\-s\fP
+Enkelskott — detta instruerar programmet att endast returnera en \fIpid\fP.
+.IP \fB\-c\fP
+Returnera endast process\-id:n som kör med samma rotkatalog. Denna flagga
+ignoreras för andra användare än root, eftersom de inte kommer kunna
+kontrollera den aktuella rotkatalogen för processer de inte äger.
+.IP \fB\-q\fP
+Tyst läge, undertryck all utdata och sätt bara slutstatus.
+.IP \fB\-w\fP
+Visa även processer som inte har en synlig kommandorad
+(t.ex. kärnarbetstrådar).
+.IP \fB\-x\fP
+Även skript — detta får programmet att även returnera process\-id:n för skal
+som kör de namngivna skripten.
+.IP "\fB\-o\fP \fIskippapid\fP"
+Säger till \fBpidof\fP att utesluta processer med det process\-id:t. Den
+speciella processen \fB%PPID\fP kan användas för att namnge föräldraprocessen
+till \fBpidof\fP\-programmet, med andra ord det anropande skalet eller
+skalskriptet.
+.IP \fB\-t\fP
+Visa alla tråd\-id:n istället för pid:n.
+.IP "\fB\-S\fP \fIseparator\fP"
+Använd \fIseparator\fP som separator placerad mellan pid:er. Använd endast när
+mer än en pid skrivs för programmet. Flaggan \fB\-d\fP är ett alias för denna
+flagga för kompatibilitet med sysvinit:s \fBpidof\fP.
+.SH SLUTSTATUS
+.TP
+\fB0\fP
+Åtminstone ett program hittades med det begärda namnet.
+.TP
+\fB1\fP
+Inget program hittades med det begärda namnet.
+
+.SH FEL
+När flaggan \fB\-x\fP används har \fBpidof\fP endast en enkel metod för att
+upptäcka skript och kommer missa skript som, till exempel, använder env.
+Denna begränsning beror på hur skripten ser ut i proc\-filsystemet.
+
+.SH "SE ÄVEN"
+\fBpgrep\fP(1), \fBpkill\fP(1)
+.SH UPPHOVSMAN
+.UR jcapik@redhat.com
+Jaromir Capik
+.UE
diff --git a/po-man/sv/pmap.1 b/po-man/sv/pmap.1
new file mode 100644
index 0000000..0891cc5
--- /dev/null
+++ b/po-man/sv/pmap.1
@@ -0,0 +1,99 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2013 Jaromir Capik <jcapik@redhat.com>
+.\" Copyright (c) 1998-2002 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\" (The preceding line is a note to broken versions of man to tell
+.\" them to pre-process this man page with tbl)
+.\" Man page for pmap.
+.\" Licensed under version 2 of the GNU General Public License.
+.\" Written by Albert Cahalan.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PMAP 1 2020\-06\-04 procps\-ng Användarkommandon
+.SH NAMN
+pmap — rapportera minneskartan över en process
+.SH SYNOPSIS
+\fBpmap\fP [\fIflaggor\fP] \fIpid\fP […]
+.SH BESKRIVNING
+Kommandot \fBpmap\fP rapporterar minneskartan över en process eller processer.
+.SH FLAGGOR
+.TP
+\fB\-x\fP, \fB\-\-extended\fP
+Visa det utökade formatet.
+.TP
+\fB\-d\fP, \fB\-\-device\fP
+Visa enhetsformatet.
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+Visa inte några huvud\- och fotrader.
+.TP
+\fB\-A\fP, \fB\-\-range\fP \fIlåg\fP,\fIhög\fP
+Begränsa resultaten till adressintervallet från \fIlåg\fP till \fIhög\fP.
+Observera att argumenten låg och hög är en enda sträng separerad med komma.
+.TP
+\fB\-X\fP
+Visa ännu fler detaljer än flaggan \fB\-x\fP. VARNING: formatet ändras i
+enlighet med \fI/proc/PID/smaps\fP
+.TP
+\fB\-XX\fP
+Visa allt kärnan tillhandahåller
+.TP
+\fB\-p\fP, \fB\-\-show\-path\fP
+Visa den fullständiga sökvägen till filer i mappningskolumnen
+.TP
+\fB\-c\fP, \fB\-\-read\-rc\fP
+Läs standardkonfigurationen
+.TP
+\fB\-C\fP, \fB\-\-read\-rc\-from\fP \fIfil\fP
+Läs konfigurationen från \fIfil\fP
+.TP
+\fB\-n\fP, \fB\-\-create\-rc\fP
+Skapa en ny standardkonfiguration
+.TP
+\fB\-N\fP, \fB\-\-create\-rc\-to\fP \fIfil\fP
+Skapa en ny konfiguration i \fIfil\fP
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Visa hjälptext och avsluta.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Visa versionsinformation och avsluta.
+.SH SLUTSTATUS
+.PP
+.RS
+.PD 0
+.TP
+\fB0\fP
+Gick bra.
+.TP
+\fB1\fP
+Misslyckades.
+.TP
+\fB42\fP
+Hittade inte alla efterfrågade processer.
+.PD
+.RE
+.SH "SE ÄVEN"
+\fBps\fP(1), \fBpgrep\fP(1)
+.SH STANDARDER
+Inga standarder är tillämpliga, men \fBpmap\fP liknar väldigt mycket ett
+SunOS\-kommando.
+.SH "RAPPORTERA FEL"
+Skicka felrapporter till
+.UR procps@freelists.org
+.UE
+Skicka synpunkter på översättningen till
+.UR tp\-sv@listor.tp\-sv.se
+.UE
diff --git a/po-man/sv/procps.3 b/po-man/sv/procps.3
new file mode 100644
index 0000000..66f838f
--- /dev/null
+++ b/po-man/sv/procps.3
@@ -0,0 +1,176 @@
+.\"
+.\" Copyright (c) 2020-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2020-2023 Craig Small <csmall@dropbear.xyz>
+.\"
+.\" This manual is free software; you can redistribute it and/or
+.\" modify it under the terms of the GNU Lesser General Public
+.\" License as published by the Free Software Foundation; either
+.\" version 2.1 of the License, or (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PROCPS 3 "Augusti 2022" libproc2
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.nh
+.SH NAMN
+procps — API för att komma åt information på systemnivå i filsystemet /proc
+
+.SH SYNOPSIS
+Fem distinkta gränssnitt representeras i detta synopsis namnges efter filen
+de använder i pseudofilsystemet /proc: \fBdiskstats\fP, \fBmeminfo\fP,
+\fBslabinfo\fP, \fBstat\fP och \fBvmstat\fP.
+
+.nf
+.RS +4
+#include <libproc2/\fBnamngivet_gränssnitt\fP.h>
+
+int\fB procps_new \fP (struct info **\fIinfo\fP);
+int\fB procps_ref \fP (struct info *\fIinfo\fP);
+int\fB procps_unref\fP (struct info **\fIinfo\fP);
+
+struct result *\fBprocps_get\fP (
+ struct info *\fIinfo\fP,
+[ const char *\fInamn\fP, ] endast \fBdiskstats\fP\-api:et
+ enum item \fIpost\fP);
+
+struct stack *\fBprocps_select\fP (
+ struct info *\fIinfo\fP,
+[ const char *\fInamn\fP, ] endast \fBdiskstats\fP\-api:et
+ enum item *\fIposter\fP,
+ int \fIpostantal\fP);
+
+struct reaped *\fBprocps_reap\fP (
+ struct info *\fIinfo\fP,
+[ enum reap_type \fIvad\fP, ] endast \fBstat\fP\-api:et
+ enum item *\fIposter\fP,
+ int \fIpostantal\fP);
+
+struct stack **\fBprocps_sort\fP (
+ struct info *\fIinfo\fP,
+ struct stack *\fIstackar\fP[],
+ int \fIstackantal\fP,
+ enum item \fIsortpost\fP,
+ enum sort_order \fIordning\fP);
+
+.fi
+
+Ovanstående funktioner och poster är generella men det specifika
+\fBnamngivna_gränssnittet\fP skall också vara en del av alla
+identifierare. Till exempel, â€procps_new†skulle faktiskt vara
+â€procps_\fBmeminfo\fP_new†och "info" skulle faktiskt vara â€\fBdiskstats\fP_infoâ€,
+etc.
+
+Samma \fBnamngivna_gränssnitt\fP används i varje huvudfilnamn med en ändelse .h
+tillagd.
+
+Länka med \fI\-lproc2\fP.
+
+.SH BESKRIVNING
+.SS Översikt
+Centralt för dessa gränssnitt är en enkel â€resultatâ€\-post so avspelgar ett
+â€element†plus dess värde (i en union med typer frÃ¥n standardsprÃ¥ket C som
+medlemmar). Alla â€resultatâ€\-poster allokeras automatiskt och levereras av
+biblioteket.
+
+Genom att ange en vektor av â€element†kan dessa strukturer organiseras som
+en â€stackâ€, som potentiellt ger mÃ¥nga resultat med ett enda
+funktionsanrop. AlltsÃ¥ kan en â€stack†ses som en post med variabel längd
+vars innehåll och ordning helt avgörs av användaren.
+
+Som en del av varje gränssnitt finns det två unika uppräknare. Elementen
+â€noop†och â€extra†finns för att hÃ¥lla användarvärden. De sätts aldrig av
+bilbioteket, men resultatet â€extra†kommer nollställas med varje
+biblioteksinteratkion.
+
+Huvudfilen \fBnamngivet_gränssnitt\fP kommer vara ett viktigt dokument under
+programutveckling. Där hittar man tillgängliga element, deras returtyper
+(medlemsnamn i posten â€resultatâ€) och källan för sÃ¥dana värden. Ytterligare
+uppräknare och poster dokumenteras också där.
+
+.SS Användning
+Följande skulle vara en typisk sekvens av anrop till dessa gränssnitt.
+
+.nf
+1. \fBprocps_new()\fP
+2. \fBprocps_get()\fP, \fBprocps_select()\fP eller \fBprocps_reap()\fP
+3. \fBprocps_unref()\fP
+.fi
+
+Funktionen \fBget\fP används för att hämta posten â€resultat†för ett visst
+â€elementâ€. Alternativt är ett \fBGET\fP\-makro tillgängligt när endast
+returvärdet är intressant.
+
+Funktionen \fBselect\fP kan hämta flera â€resultatâ€\-poster i en enda â€stackâ€.
+
+För oförutsägbara variabla resultat exporterar gränssnitten \fBdiskstats\fP,
+\fBslabinfo\fP och \fBstat\fP en funktion \fBreap\fP. Den används för att hämta
+multipla â€stackar†där var och en innehÃ¥ller flera â€resultatâ€\-poster. Om
+önskas kan en användare välja att \fBsortera\fP dessa resultat.
+
+För att använda nÃ¥gon â€stackâ€, och komma Ã¥t individuella â€resultatâ€\-poster,
+krävs en \fIrelativ_uppräkning\fP som visas i makrot \fBVAL\fP definierat i
+huvudfilen. Sådana värden skulle kunna hårdkodas som: 0 till
+antalelement\-1. Dock uppfylls detta behov typiskt genom att skapa ens egna
+uppräknare motsvarande ordningen i vektorn av â€elementâ€.
+
+.SS Förbehåll
+Funktionerna \fBnew\fP, \fBref\fP, \fBunref\fP, \fBget\fP och \fBselect\fP är tillgängliga
+i alla fem gränssnitten.
+
+För funktionerna \fBnew\fP och \fBunref\fP måste adressen till en
+\fIinfo\fP\-postpekare ges. Med \fBnew\fP måste den ha initierats till NULL. Med
+\fBunref\fP kommer den återställas till NULL om referensräknaren når noll.
+
+Vad gäller gränssnittet \fBdiskstats\fP identifierar en parameter \fInamn\fP till
+funktionerna \fBget\fP och \fBselect\fP en disk eller ett partitionsnamn
+
+För gränssnittet \fBstat\fP identifierar en \fIvad\fP\-parameter till funktionen
+\fBreap\fP huruvida data för endast CPU:er eller både CPU:er och NUMA\-noder
+skall samlas in.
+
+När man använder funktionen \fBsort\fP skall normalt parametrarna \fIstackar\fP
+och \fIstackantal\fP normalt vara de som returneras av posten â€reapedâ€.
+
+.SH RETURVÄRDE
+.SS "Funktioner som returnerar en â€intâ€"
+Ett fel kommer indikera ett negativt tal som alltid är inversen av något
+känt värde från errno.h.
+
+Lyckat resultat markeras med ett returvärde av noll. Dock returnerar
+funktionerna \fBref\fP och \fBunref\fP det aktuella värdet på referensräknaren för
+\fIinfo\fP\-posten.
+
+.SS "Funktioner som returnerar en â€adressâ€"
+Ett fel kommer indikeras av en NULL\-returpekare och orsaken går att hitta i
+dett formella errno\-värdet.
+
+Lyckat resultat indikeras med en pekare till den namngivna posten.
+
+.SH FELSÖKNING
+För att hjälpa till i programutveckling finns det ett medel som kan hjälpa
+till att säkerställa att â€resultatâ€\-medlemsreferenser stämmer överens med
+bibliotekets förväntningar. Det förutsätter att ett av de tillgängliga
+makrona i huvudfilen används för att komma Ã¥t â€resultatâ€\-värdet.
+
+Denna funktion kan aktiveras genom någon av de följande metoderna och
+eventuella avvikelser kommer att skrivas till \fBstandard fel\fP.
+
+.IP 1) 3
+Lägg till CFLAGS='\-DXTRA_PROCPS_DEBUG' till eventuella övriga flaggor som
+används till ./configure.
+
+.IP 2) 3
+Lägg till #include <procps/xtra\-procps\-debug.h> till alla program
+\fIefter\fP inkluderandet av de namngivna gränssnitten.
+
+.PP
+Denna verifieringsfunktion orsakar en väsentlig kostnad. Därför är det
+viktigt att den \fIinte\fP är aktiverad för produktions\-/utgåvebyggen.
+
+.SH "SE ÄVEN"
+\fBprocps_misc\fP(3), \fBprocps_pids\fP(3), \fBproc\fP(5).
diff --git a/po-man/sv/procps_misc.3 b/po-man/sv/procps_misc.3
new file mode 100644
index 0000000..36b1620
--- /dev/null
+++ b/po-man/sv/procps_misc.3
@@ -0,0 +1,153 @@
+.\"
+.\" Copyright (c) 2020-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2020-2023 Craig Small <csmall@dropbear.xyz>
+.\"
+.\" This manual is free software; you can redistribute it and/or
+.\" modify it under the terms of the GNU Lesser General Public
+.\" License as published by the Free Software Foundation; either
+.\" version 2.1 of the License, or (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PROCPS_MISC 3 "Augusti 2022" libproc2
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.nh
+.SH NAMN
+procps_misc — API för diverse information i filsystemet /proc
+.SH SYNOPSIS
+.nf
+\fB#include <libproc2/misc.h>\fP
+.PP
+Plattformsegenskaper
+.RS 4
+.PP
+long \fBprocps_cpu_count\fP (void);
+long \fBprocps_hertz_get\fP (void);
+unsigned int \fBprocps_pid_length\fP (void);
+int \fBprocps_linux_version\fP (void);
+.RE
+.PP
+Körtidsegenskaper
+.PP
+.RS 4
+int \fB procps_loadavg\fP (double *\fIgs1\fP, double *\fIgs5\fP, double *\fIgs15\fP);
+int \fB procps_uptime\fP (double *\fIuppetid_s\fP, double *\fIinaktiv_s\fP);
+char *\fBprocps_uptime_sprint\fP (void);
+char *\fBprocps_uptime_sprint_short\fP (void);
+.RE
+.PP
+Namnrymdsegenskaper
+.PP
+.RS 4
+int \fB procps_ns_get_id\fP (const char *\fInamn\fP);
+const char\fB *procps_ns_get_name\fP (int \fIid\fP);
+int \fB procps_ns_read_pid\fP (int \fIpid\fP, struct procps_ns *\fInrd\fP);
+.RE
+
+Länka med \fI\-lproc2\fP.
+
+.SH BESKRIVNING
+\fBprocps_cpu_count\fP() returnerar antalet CPU:er som för närvarande är
+inkopplade liksom \fBsysconf(\fP\fI_SC_NPROCESSORS_ONLY\fP\fB)\fP eller ett antaget
+\fI1\fP.
+
+\fBprocps_hertz_get\fP() returnerar antalet klocktick per sekund liksom
+\fBsysconf(\fP\fI_SC_CLK_TCK\fP\fB)\fP eller ett antaget \fI100\fP. Att dividera tick
+med detta värder ger sekunder.
+
+\fBprocps_pid_length\fP() returnerar den maximala stränglängden för en PID på
+systemet. Till exempel, om det största möjliga värdet på en PID var 123, då
+skulle längden vara 3. Om filen \fI/proc/sys/kernel/pid_max\fP är oläsbar antas
+värdet vara \fI5\fP.
+
+\fBprocps_linux_version\fP() returnerar den aktuella Linuxversionen som ett
+kodat heltal. PÃ¥ ett icke\-Linuxsystem som har ett emulerat proc\-filsystem
+returnerar denna funktionen versionen på Linuxemuleringen
+istället. Versionen består av tre positiva heltal som representerar nivåerna
+större, mindre och fix. Följande makron finns för att koda en given
+Linuxversion eller att separera ut komponenterna av den aktuella versionen.
+.RS 4
+.PP
+LINUX_VERSION(\ större\ ,\ mindre\ ,\ fix\ )
+.PP
+LINUX_VERSION_MAJOR(\ ver\ )
+.PP
+LINUX_VERSION_MINOR(\ ver\ )
+.PP
+LINUX_VERSION_PATCH(\ ver\ )
+.RE
+
+\fBprocps_loadavg\fP() hämtar genomsnittlig systemlast och lägger genomsnitten
+över 1, 5 och 15 minuter i platserna som anges av de pekare som inte är
+\fINULL\fP.
+
+\fBprocps_uptime\fP() returnerar uppetiden och eller inaktiva sekunder i
+platserna som anges av de pekare som inte är \fINULL\fP. Varianterna \fBsprint\fP
+returnerar en mänskligt läsbar sträng på en av två former.
+.RS 4
+.PP
+HH:MM:SS up HH:MM, # users, load average: 1, 5, 15 MM averages
+.PP
+up HH, MM
+.RE
+
+\fBprocps_ns_get_id\fP() returnerar heltals\-id:t (enum namespace_type) för
+namnrymden för den angivna namnrymden \fInamn\fP.
+
+\fBprocps_ns_get_name\fP() returnerar namnet på namnrymden för det angivna
+\fIid:t\fP (enum namespace_type).
+
+\fBprocps_ns_read_pid\fP() returnerar inoderna för namnrymderna för den
+angivna processen procps_ns\-posten som pekas ut av \fInrp\fP. Dessa inoder
+kommer komma i den ordning som föreskrivs av enum namespace_type.
+.PP
+.RS 4
+.nf
+enum namespace_type {
+ PROCPS_NS_CGROUP,
+ PROCPS_NS_IPC,
+ PROCPS_NS_MNT,
+ PROCPS_NS_NET,
+ PROCPS_NS_PID,
+ PROCPS_NS_TIME,
+ PROCPS_NS_USER,
+ PROCPS_NS_UTS
+};
+.fi
+.RE
+
+
+.SH RETURVÄRDE
+.SS "Funktioner som returnerar en â€int†eller â€longâ€"
+Ett fel kommer indikera ett negativt tal som alltid är inversen av något
+känt värde från errno.h.
+
+.SS "Funktioner som returnerar en â€adressâ€"
+Ett fel kommer indikeras av en NULL\-returpekare och orsaken går att hitta i
+dett formella errno\-värdet.
+
+.SH FILER
+.TP
+\fI/proc/loadavg\fP
+De råa värdena för lastgenomsnitt.
+.TP
+\fI/proc/sys/kernel/osrelease\fP
+Innehåller utgåveversionen för Linuxkärnan eller proc\-filsystemet.
+.TP
+\fI/proc/sys/kernel/pid_max\fP
+Innehåller värdet vid vilket PID:ar slår runt, ett större än det maximala
+PID\-värdet.
+.TP
+\fI/proc/uptime\fP
+De råa värdena för uppetid och inaktiv tid.
+.TP
+\fI/proc/<PID>/ns\fP
+innehåller uppsättningen av namnrymder för en viss \fBPID\fP.
+
+.SH "SE ÄVEN"
+\fBprocps\fP(3), \fBprocps_pids\fP(3), \fBproc\fP(5).
diff --git a/po-man/sv/procps_pids.3 b/po-man/sv/procps_pids.3
new file mode 100644
index 0000000..a0f01c7
--- /dev/null
+++ b/po-man/sv/procps_pids.3
@@ -0,0 +1,199 @@
+.\"
+.\" Copyright (c) 2020-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2020-2023 Craig Small <csmall@dropbear.xyz>
+.\"
+.\" This manual is free software; you can redistribute it and/or
+.\" modify it under the terms of the GNU Lesser General Public
+.\" License as published by the Free Software Foundation; either
+.\" version 2.1 of the License, or (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PROCPS_PIDS 3 "Augusti 2022" libproc2
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.nh
+.SH NAMN
+procps_pids — API för att hämta ut processinformation i filsystemet /proc
+
+.SH SYNOPSIS
+.nf
+#include <libproc2/pids.h>
+
+int\fB procps_pids_new \fP (struct pids_info **\fIinfo\fP, enum pids_item *\fIelement\fP, int \fIantalelement\fP);
+int\fB procps_pids_ref \fP (struct pids_info *\fIinfo\fP);
+int\fB procps_pids_unref\fP (struct pids_info **\fIinfo\fP);
+
+
+struct pids_stack *\fBprocps_pids_get\fP (
+ struct pids_info *\fIinfo\fP,
+ enum pids_fetch_type \fIvilken\fP);
+
+struct pids_fetch *\fBprocps_pids_reap\fP (
+ struct pids_info *\fIinfo\fP,
+ enum pids_fetch_type \fIvilken\fP);
+
+struct pids_fetch *\fBprocps_pids_select\fP (
+ struct pids_info *\fIinfo\fP,
+ unsigned *\fIdessa\fP,
+ int \fIantaldessa\fP,
+ enum pids_select_type \fIvilken\fP);
+
+struct pids_stack **\fBprocps_pids_sort\fP (
+ struct pids_info *\fIinfo\fP,
+ struct pids_stack *\fIstackar\fP[],
+ int \fIantalstackade\fP,
+ enum pids_item \fIsortelement\fP,
+ enum pids_sort_order \fIordning\fP);
+
+int \fBprocps_pids_reset\fP (
+ struct pids_info *\fIinfo\fP,
+ enum pids_item *\fInyaelement\fP,
+ int \fInyaantalelement\fP);
+
+struct pids_stack *\fBfatal_proc_unmounted\fP (
+ struct pids_info *\fIinfo\fP,
+ int \fIreturnera_själv\fP);
+
+.fi
+
+Länka med \fI\-lproc2\fP.
+
+.SH BESKRIVNING
+.SS Översikt
+Centralt för detta gränssnitt är en enkel â€resultatâ€\-post som avspeglar ett
+â€element†plus dess värde (i en union med standardtyper i sprÃ¥ket C som
+medlemmar). Alla â€resultatâ€\-poster allokeras automatiskt och tillhandahÃ¥lls
+av biblioteket.
+
+Genom att ange en vektor av â€element†kan dessa strukturer organiseras som
+en â€stackâ€, som potentiellt ger mÃ¥nga resultat med ett enda
+funktionsanrop. AlltsÃ¥ kan en â€stack†ses som en post med variabel längd
+vars innehåll och ordning helt avgörs av användaren.
+
+Som en del av detta gränssnitt finns det två unika uppräknare. Elementen
+â€noop†och â€extra†finns för att hÃ¥lla användarvärden. De sätts aldrig av
+biblioteket, men â€extraâ€\-resultatet kommer nollställas vid varje
+biblioteksinteraktion.
+
+Filen pids.h kommer vara ett avgörande dokument under användarens utveckling
+av program. Där hittar man tillgängliga element, deras returtyp
+(medlemsnamnen i posten â€resultatâ€) och källan för sÃ¥dana
+värden. Ytterligare uppräknare och poster dokumenteras också där.
+
+.SS Användning
+Följande skulle vara en typisk anropssekvens till detta gränssnitt.
+
+.nf
+1. \fBfatal_proc_unmounted()\fP
+2. \fBprocps_pids_new()\fP
+3. \fBprocps_pids_get()\fP, \fBprocps_pids_reap()\fP eller \fBprocps_pids_select()\fP
+4. \fBprocps_pids_unref()\fP
+.fi
+
+Funktionen \fBget\fP är en iterator för succesiva PID:n/TID:n, och returnerar
+dessa â€element†som tidigare identifierats via \fBnew\fP eller \fBreset\fP.
+
+Två funktioner stödjer oförutsägbara variabla utfall. Funktionen \fBreap\fP
+samlar dat för alla processer medan funktionen \fBselect\fP arbetar med
+specifikaPID:er eller UID:er. BÃ¥da kan returnera flera â€stackar†som var och
+en innehÃ¥ller multipla â€resultatâ€\-poster. Om önskas kan en användare välja
+att \fBsort\fP sådana resultat
+
+För att använda nÃ¥gon â€stackâ€, och komma Ã¥t individuella â€resultatâ€\-poster,
+krävs en \fIrelativ_uppräkning\fP som visas i makrot \fBVAL\fP definierat i
+huvudfilen. Sådana värden skulle kunna hårdkodas som: 0 till
+antalelement\-1. Dock uppfylls detta behov typiskt genom att skapa ens egna
+uppräknare motsvarande ordningen i vektorn av â€elementâ€.
+
+.SS Förbehåll
+API:et <pids> skiljer sig från andra genom att de intressanta
+elementen måste anges vid tidpunkten för \fBnew\fP eller \fBreset\fP, där den
+senare är unik för detta API. Om antingen parametern \fIelement\fP eller
+\fIantalelement\fP är noll vid tidpunkten för \fBnew\fP blir \fBreset\fP obligatorisk
+före man gör något annat anrop.
+
+För funktionerna \fBnew\fP och \fBunref\fP måste adressen till en
+\fIinfo\fP\-postpekare ges. Med \fBnew\fP måste den ha initierats till NULL. Med
+\fBunref\fP kommer den återställas till NULL om referensräknaren når noll.
+
+Funktionerna \fBget\fP och \fBreap\fP använder parametern \fIvilken\fP för att ange
+huruvida endast uppgifter eller både uppgifter och trådar skall hämtas.
+
+Funktionen \fBselect\fP behöver en vektor av PID:er eller UID:er som \fIdessa\fP
+tillsammans med \fIantaldessa\fP för att identifera vilka processer som skall
+hämtas. Denna funktion arbetar sedan som en delmängd av \fBreap\fP.
+
+När man använder funktionen \fBsort\fP skall parametrarna \fIstackar\fP och
+\fIantalstackade\fP normalt vara de som returneras i posten â€pids_fetchâ€.
+
+Slutligen kan funktion \fBfatal_proc_unmounted\fP anropas före någon annan
+funktion för att säkerställa att katalogen /proc/ är monterad. Därmed skall
+parametern \fIinfo\fP vara NULL och parametern \fIreturnera_själv\fP vara
+noll. Om, däremot, några element önskas av det anropande programmet (en
+\fIreturnera_själv\fP något annat än noll) då måste anropet av \fBnew\fP föregå
+det för att identfiera \fIelement\fPen och hämta den önskade \fIinfo\fP\-pekaren.
+
+.SH RETURVÄRDE
+.SS "Funktioner som returnerar en â€intâ€"
+Ett fel kommer indikera ett negativt tal som alltid är inversen av något
+känt värde från errno.h.
+
+Lyckat resultat markeras med ett returvärde av noll. Dock returnerar
+funktionerna \fBref\fP och \fBunref\fP det aktuella värdet på referensräknaren för
+\fIinfo\fP\-posten.
+
+.SS "Funktioner som returnerar en â€adressâ€"
+Ett fel kommer indikeras av en NULL\-returpekare och orsaken går att hitta i
+dett formella errno\-värdet.
+
+Lyckat resultat indikeras av en pekare på den namngivna posten. Dock, om man
+överlever anropet av \fBfatal_proc_unmounted\fP kommer NULL alltid returneras
+när \fIreturnera_själv\fP är noll.
+
+.SH FELSÖKNING
+För att hjälpa till med programutveckling finns det två metoder i procps\-ng
+som kan användas.
+
+Den första är en levererad fil med namnet â€libproc.supp†som kan vara
+användbar när man utvecklar ett \fImultitrådat\fP program. När den används med
+flaggan â€\-\-suppressions=†till valgrind undviks varningar som hör ihop med
+biblioteket procps självt.
+
+Sådana varningar uppstår för att biblioteket hanterar heap\-baserade
+allokeringar på ett trädsäkert sätt. Ett \fIenkeltrådat\fP program kommer inte
+att få dessa varningar.
+
+Den andra metoden kan hjälpa till att säkerställa att medlemsreferenser i
+â€resultat†stämmer överens med bibliotekets förväntningar. Den räknar med
+att ett tillhandahållet makro i huvuddfilen används för att komma åt
+â€resultatâ€\-värdet.
+
+Denna funktion kan aktiveras genom någon av de följande metoderna och
+eventuella avvikelser kommer att skrivas till \fBstandard fel\fP.
+
+.IP 1) 3
+Lägg till CFLAGS='\-DXTRA_PROCPS_DEBUG' till eventuella andra flaggor till
+\&./configure som ditt projekt kan tänkas använda.
+
+.IP 2) 3
+Lägg till #include <procps/xtra\-procps\-debug.h> till varje program
+\fIefter\fP raden #include <procps/pids.h>.
+
+.PP
+Denna verifieringsfunktion orsakar en väsentlig kostnad. Därför är det
+viktigt att den \fIinte\fP är aktiverad för produktions\-/utgåvebyggen.
+
+.SH MILJÖVARIABLER
+Värdet som sätts på följande är oviktigt, bara att den finns.
+
+.IP LIBPROC_HIDE_KERNEL
+Detta kommer dölja kärntrådar som annars skulle returnera med ett anrop av
+\fBprocps_pids_get\fP, \fBprocps_pids_select\fP eller \fBprocps_pids_reap\fP.
+
+.SH "SE ÄVEN"
+\fBprocps\fP(3), \fBprocps_misc\fP(3), \fBproc\fP(5).
diff --git a/po-man/sv/ps.1 b/po-man/sv/ps.1
new file mode 100644
index 0000000..b39906c
--- /dev/null
+++ b/po-man/sv/ps.1
@@ -0,0 +1,1854 @@
+.\"
+.\" Copyright (c) 2004-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1998-2003 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PS 1 2023\-08\-19 procps\-ng Användarkommandon
+.\"
+.\" Ragged-right text.
+.na
+.\" Disable hyphenation.
+.nh
+.\"
+.\" ColSize is used for the format spec table.
+.\" It's the left margin, minus the right, minus
+.\" the space needed for the 1st two columns.
+.\" Making it messy: inches, ens, points, scaled points...
+.\"
+.nr ColSize ((\n[.l] - \n[.i]) / 1n - 29)
+.\"
+.SH NAMN
+ps — rapportera en ögonblicksbild av de nuvarande processerna.
+.SH SYNOPSIS
+\fBps\fP [\,\fIflaggor\/\fP]
+.SH BESKRIVNING
+\fBps\fP visar information om ett urval av de aktiva processerna. Om du vill ha
+en upprepad uppdatering av urvalet och den visade informationen, använd
+\fBtop\fP istället.
+.P
+Denna version av \fBps\fP accepterar flera olika sorters flaggor:
+.IP
+.PD 0
+.IP 1 4
+UNIX\-flaggor, som kan grupperas och måste föregås av ett bindestreck.
+.IP 2 4
+BSD\-flaggor, som kan grupperas och inte får föregås av ett bindestreck.
+.IP 3 4
+GNU långa flaggor, vilka föregås av två bindestreck.
+.PD
+.PP
+Flaggor av olika typer får blandas fritt, men konflikter kan förekomma. Det
+finns några synonyma flaggor, vars funktionalitet är identisk, på grund av
+de många standarder och \fBps\fP\-implementationer som denna \fBps\fP är kompatibel
+med.
+.P
+Som standard väljer \fBps\fP alla processer med samma effektiva användar\-ID
+(euid=EUID) som den aktiva användaren och associerade med samma terminal som
+anroparen. Den visar process\-ID (pid=PID), terminalen som är associerad med
+processen (tname=TTY), den ackumulerade CPU\-tiden i formatet [DD\-]hh:mm:ss
+(time=TIME) och det körbara namnet (ucmd=CMD). Utdata är osorterat som
+standard.
+.P
+Användningen av flaggor i BSD\-stil kommer lägga till porcesstatus
+(stat=STAT) till standardutmatningen och visa kommandoargumenten
+(args=KOMMANDO) istället för den körbaras namn. Man kan åsidsätta detta med
+miljövariabeln \fBPS_FORMAT\fP. Användningen av flaggor i BSD\-stil kommer även
+ändra processvalet till att inkludera processer på andra terminaler (TTY:er)
+som ägs av dig; alternativt kan detta beskrivas som att ställa in valet till
+att vara mängden av alla processer filtrerad till att utesluta processer som
+ägs av andr användare eller inte av en termina. Dessa effekter betraktas
+inte när flaggor beskrivs som att vara â€identiska†nedan, sÃ¥ \fB\-M\fP kommer
+anses identiskt med \fBZ\fP och så vidare.
+.P
+Förutom som det beskrivs nedan är processvalsflaggor
+additativa. Standardurvalet kastas och sedan lägs de valda processerna till
+till mängden processer som skall visas. En process kommer alltså visas om
+den uppfyller något av de angivna urvalskriterierna.
+.SH EXEMPEL
+.TP 3
+För att se alla processer på systemet använd standardsyntaxen:
+\fBps\ \-e\fP
+.br
+\fBps\ \-ef\fP
+.br
+\fBps\ \-eF\fP
+.br
+\fBps\ \-ely\fP
+.TP
+För att se alla processer på systemed med BSD\-syntax:
+\fBps\ ax\fP
+.br
+\fBps\ axu\fP
+.TP
+För att skriva ut ett processträd:
+\fBps\ \-ejH\fP
+.br
+\fBps\ axjf\fP
+.TP
+För att fi information om trådar:
+\fBps\ \-eLf\fP
+.br
+\fBps\ axms\fP
+.TP
+För att få säkerhetsinformation:
+\fBps\ \-eo euser,ruser,suser,fuser,f,comm,label\fP
+.br
+\fBps\ axZ\fP
+.br
+\fBps\ \-eM\fP
+.TP
+För att se alla processer som kör som root (verkligt & effektivt ID) i användarformat:
+\fBps\ \-U\ root\ \-u\ root\ u\fP
+.TP
+För att se alla processer med ett användardefinierat format:
+\fBps\ \-eo\ pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm\fP
+.br
+\fBps\ axo\ stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm\fP
+.br
+\fBps\ \-Ao\ pid,tt,user,fname,tmout,f,wchan\fP
+.TP
+Skriv endast ut process\-ID:n för syslogd:
+\fBps\ \-C\ syslogd\ \-o\ pid=\fP
+.TP
+Skriv endast namnet på PID 42:
+\fBps\ \-q\ 42\ \-o\ comm=\fP
+.SH "ENKLA VAL AV PROCESS"
+.TP
+\fBa\fP
+Lyft begränsningen â€endast dig själv†med BSD\-stil, vilken läggs pÃ¥ mängden
+av alla processer när nÃ¥gra flaggor i BSD\-stil (utan â€\-â€) används eller när
+personlighetsinställningen för \fBps\fP är BSD\-lik. Mängden processer som väljs
+på detta sätt är utöver mängden processer som väljs på andra sätt. Ett annat
+sätt att beskriva detta är att denna flagga får \fBps\fP att lista alla
+processer med en terminal (tty) eller att lista alla processer när de
+används tillsammans med flaggan \fBx\fP.
+.TP
+\fB\-A\fP
+Välj alla processer. Identiskt med \fB\-e\fP.
+.TP
+\fB\-a\fP
+Välj alla processer utom både sessionsledare (se \fIgetsid\fP(2)) och processer
+som inte är associerade med någon terminal.
+.TP
+\fB\-d\fP
+Välj alla processer utom sessionsledare.
+.TP
+\fB\-\-deselect\fP
+Välj alla processer utom de som möter de angivna villkoren (negerar
+valet). Identiskt med \fB\-N\fP.
+.TP
+\fB\-e\fP
+.\" Current "g" behavior: add in the session leaders, which would
+.\" be excluded in the sunos4 personality. Supposed "g" behavior:
+.\" add in the group leaders -- at least according to the SunOS 4
+.\" man page on the FreeBSD site. Uh oh. I think I had tested SunOS
+.\" though, so maybe the code is correct.
+Välj alla processer. Identiskt med \fB\-A\fP.
+.TP
+\fBg\fP
+Verkligen alla, även sessionsledare. Denna flagga är föråldrar och kan
+försvinna i en framtida utgåva. Den impliceras normalt av flaggan \fBa\fP och
+är endast användbar på operativsystem i personligheten sunos4.
+.TP
+\fB\-N\fP
+Välj alla processer utom de som möter de angivna villkoren (negerar
+valet). Identiskt med \fB\-\-deselect\fP.
+.TP
+\fBT\fP
+Välj alla processer associerade med denna terminal. Identiskt med flaggan
+\fBt\fP utan något argument.
+.TP
+\fBr\fP
+Begränsa urvalet till endast körande processer.
+.TP
+\fBx\fP
+Lyft begränsningen â€mÃ¥ste ha en ttty†med BSD\-stil, vilken läggs pÃ¥ mängden
+av alla processer när nÃ¥gra flaggor i BSD\-stil (utan â€\-â€) används eller när
+personlighetsinställningen för \fBps\fP är BSD\-lik. Mängden processer som väljs
+på detta sätt är utöver mängden processer som väljs på andra sätt. Ett annat
+sätt att beskriva detta är att denna flagga får \fBps\fP att lista alla
+processer som ägs av dig (samma EAID som \fBps\fP) eller att lista alla
+processer när de används tillsammans med flaggan \fBa\fP.
+.PD
+.SH "VAL AV PROCESS MED LISTA"
+Dessa flaggor tar ett ensamt argument på formen av en mellanslagsseparerad
+eller kommaseparerad lista. De kan användas flera gånger. Till exempel:
+\fBps\ \-p\ "1\ 2"\ \-p\ 3,4\fP
+.TP
+\fI123\fP
+Identiskt med \fB\-\-pid\ \fP\fI123\fP.
+.TP
+\+\fI123\fP
+Identiskt med \fB\-\-sid\ \fP\fI123\fP.
+.TP
+\-\fI123\fP
+Välj via processgrupps\-ID (PGID).
+.TP
+\fB\-C\fP\fI\ kmdlista\fP
+Välj via kommandonamn. Detta väljer processerna vars körbara namn är givet i
+\fIkmdlista\fP. OBS: kommandonamnet är inte samma som kommandoraden. Tidigare
+verisoner av procps och kärnan högg av detta kommandonamn till 15
+tecken. Denna begränsning är inte längre kvar i båda. Om du var beroende av
+att matcha endast 15 tecken kanske du inte längre får en matchning.
+.TP
+\fB\-G\fP\fI\ grplista\fP
+Välj via verkligt grupp\-ID (VGID) eller \-namn. Detta väljer processer vars
+verkliga gruppnamn eller \-ID finns i listan \fIgrplista\fP. Det verkliga
+grupp\-ID:t identifierar gruppen för användare som skapade processen, se
+\fIgetgid\fP(2).
+.TP
+\fB\-g\fP\fI\ grplista\fP
+Välj via sessions\- ELLER effektivt gruppnamn. Val via session anges av många
+standarder, men val enligt effektiv grupp är det logiska beteendet som flera
+andra operativsystem använder. Denna \fBps\fP kommer välja via session när
+listan är helt numerisk (som sessioner är). Grupp\-ID\-nummer kommer fungera
+endast när några gruppnamn också anges. Se flaggorna \fB\-s\fP och \fB\-\-group\fP.
+.TP
+\fB\-\-Group\fP\fI\ grplista\fP
+Välj via verkligt grupp\-ID (VGID) eller namn. Identistk med \fB\-G\fP.
+.TP
+\fB\-\-group\fP\fI\ grplista\fP
+Välj via effektivt grupp\-ID (EGID) eller namn. Detta väljer processer vars
+effektiva gruppnamn eller \-ID fins i \fIgrplista\fP. Det effektiva grupp\-ID:t
+beskriver gruppen var vars filåtkomsträttigheter används av processen (se
+\fIgetegid\fP(2)). Flaggan \fB\-g\fP är ofta ett alternativ till \fB\-\-group\fP.
+.TP
+\fBp\fP\fI\ pidlista\fP
+Väljer via process\-ID. Identiskt med \fB\-p\fP och \fB\-\-pid\fP.
+.TP
+\fB\-p\fP\fI\ pidlista\fP
+Välj via PID. Detta väljer processer vars process\-ID\-nummer förekommer i
+\fIpidlista\fP. Identiskt med \fBp\fP och \fB\-\-pid\fP.
+.TP
+\fB\-\-pid\fP\fI\ pidlista\fP
+Välj via process\-ID. Identiskt med \fB\-p\fP och \fBp\fP.
+.TP
+\fB\-\-ppid\fP\fI\ pidlista\fP
+Välj via föräldraprocess\-ID. Detta väljer processerna med en
+förälderprocess\-ID i \fIpidlista\fP. Det vill säga, den väljer processer som är
+barn av dessa uppräknade i \fIpidlista\fP.
+.TP
+\fBq\fP\fI\ pidlista\fP
+Välj via process\-ID (snabbläge). Identiskt med \fB\-q\fP och \fB\-\-quick\-pid\fP.
+.TP
+\fB\-q\fP\fI\ pidlista\fP
+Välj via PID (snabbläge). Detta väljer processerna vars process\-ID\-tal
+förekommer i \fIpidlista\fP. Med denna flagga läser \fBps\fP den nödvändiga
+informationen endast pid:erna som listas i \fIpidlist\fP och tillämpar inte
+ytterligare filtreringsregler. Ordningen av pid:ar är osorterad och
+bevarad. Inga ytterligare urvalsflaggor, sorterings\- eller
+skogstypslistningar tillåts i detta läge. Identiskt med \fBq\fP och
+\fB\-\-quick\-pid\fP.
+.TP
+\fB\-\-quick\-pid\fP\fI\ pidlista\fP
+Välj via process\-ID (snabbläge). Identiskt med \fB\-q\fP och \fBq\fP.
+.TP
+\fB\-s\fP\fI\ sesslista\fP
+Välj via sessions\-ID. Detta väljer processerna med en sessions\-ID angiven i
+\fIsesslista\fP.
+.TP
+\fB\-\-sid\fP\fI\ sesslista\fP
+Välj via sessions\-ID. Identiskt med \fB\-s\fP.
+.TP
+\fBt\fP\fI\ ttylista\fP
+Välj via tty. Nästan identiskt med \fB\-t\fP och \fB\-\-tty\fP, men kan även användas
+med en tom \fIttylista\fP för att indikera att terminalen associerad med
+\fBps\fP. Att använda flagga \fBT\fP anses renare än att använda \fBt\fP med en tom
+\fIttylista\fP.
+.TP
+\fB\-t\fP\fI\ ttylista\fP
+Välj via tty. Detta väljer processerna associerade med terminalerna angivna
+i \fIttylista\fP. Terminaler (tty:er, eller skärmar för textutmatning) kan ages
+pÃ¥ i flera format: /dev/ttyS1, ttyS1, S1. Ett enkelt â€\-†kan användas för
+att välja processer som ine är kopplade till någon terminal.
+.TP
+\fB\-\-tty\fP\fI\ ttylista\fP
+Välj via terminal. Identiskt med \fB\-t\fP och \fBt\fP.
+.TP
+\fBU\fP\fI\ användarlista\fP
+Välj via effektiv användar\-ID (EAID) eller \-namn. Detta väljer processerna
+vars effektiva användarnamn eller \-ID finns i \fIanvändarlista\fP. Det
+effektiva användar\-ID:t beskriver användaren var vars filåtkomsträttigheter
+används av processen (se \fIgeteuid\fP(2)). Identiskt med \fB\-u\fP och \fB\-\-user\fP.
+.TP
+\fB\-U\fP\fI\ användarlista\fP
+Välj via verkligt användar\-ID (VAID) eller \-namn. Detta väljer processerna
+vars verkliga användarnamn eller \-ID finns i listan \fIanvändarlista\fP. Det
+verkliga användar\-ID:t identifierar användaren som skapade processen, se
+\fIgetuid\fP(2).
+.TP
+\fB\-u\fP\fI\ användarlista\fP
+Välj via effektivt användar\-ID (EAID) eller \-namn. Detta väljer processerna
+vars effektiva användramn eller \-ID finns i \fIanvändarlista\fP.
+
+ Det effektiva användar\-ID:t beskriver användaren var vars
+filåtkomsträttigheter används av processen (se \fIgeteuid\fP(2)). Identiskt med
+\fBU\fP och \fB\-\-user\fP.
+.TP
+\fB\-\-User\fP\fI\ användarlista\fP
+Välj via verkligt användar\-ID (VAID) eller \-namn. Identiskt med \fB\-U\fP.
+.TP
+\fB\-\-user\fP\fI\ användarlista\fP
+Välj via effektivt användar\-ID (EAID) eller \-namn. Identiskt med \fB\-u\fP och
+\fBU\fP.
+.PD
+.SH "STYRNING AV UTMATNINGSFORMAT"
+Dessa flaggor används för att välja informationen som visas av
+\fBps\fP. Utmatningen kan skilja beroende på personlighet.
+.TP
+\fB\-c\fP
+Visa annan schemaläggarinformation för flaggan \fB\-l\fP.
+.TP
+\fB\-\-context\fP
+Visa säkerhetskontextsformat (för SELinux).
+.TP
+\fB\-f\fP
+Gör en helformatslistning. Denna flagga kan kombineras med många andra
+flaggor i UNIX\-stil för att lägga till ytterligare kolumner. Det gör också
+att kommandoargumenten skrivs ut. När det används med \fB\-L\fP kommer
+kolumnerna NLWP (antal trådar) och LWP (tråd\-ID) läggas till. Se flaggan
+\fBc\fP, formatnyckelordet \fBargs\fP och formatnyckelordet \fBcomm\fP.
+.TP
+\fB\-F\fP
+Extra fullt format. Se flaggan \fB\-f\fP som \fB\-F\fP implicerar.
+.TP
+\fB\-\-format\fP\fI\ format\fP
+användardefinierat format. Identiskt med \fB\-o\fP och \fBo\fP.
+.TP
+\fBj\fP
+BSD jobbstyrningsformat.
+.TP
+\fB\-j\fP
+Jobbformat.
+.TP
+\fBl\fP
+Visa BSD:s långa format.
+.TP
+\fB\-l\fP
+Långt format. Flaggan \fB\-y\fP är ofta användbar med denna.
+.TP
+\fB\-M\fP
+Lägg till en kolumn med säkerhetsdata. Identiskt med \fBZ\fP (för SELinux).
+.TP
+\fBO\fP\fI\ format\fP
+är förladdad \fBo\fP (överlagrad). BSD\-flaggan \fBO\fP kan fungera som \fB\-O\fP
+(användardefinierat utdataformat med några vanliga fält fördefinierade)
+eller kan användas för att ange sorteringsordning. Heuristiker används för
+att avgöra beteendet för denna flagga. För att säkerställa att det önskade
+beteendet erhålls (sortering eller formatering), ange flaggan på något annat
+sätt (t.ex. med \fB\-O\fP eller \fB\-\-sort\fP). När använd som en formateringsflagga
+är den identisk med \fB\-O\fP med BSD\-personligheten.
+.TP
+\fB\-O\fP\fI\ format\fP
+Som \fB\-o\fP men förladdad med några standardkolumner. Identiskt med \fB\-o\ pid,\:\fP\fIformat\fP\fB,\:state,\:tname,\:time,\:command\fP eller \fB\-o\ pid,\:\fP\fIformat\fP\fB,\:tname,\:time,\:cmd\fP, se \fB\-o\fP nedan.
+.TP
+\fBo\fP\fI\ format\fP
+Ange användardefinierat format. Identiskt med \fB\-o\fP och \fB\-\-format\fP.
+.TP
+\fB\-o\fP\fI\ format\fP
+Användardefinierat format. \fIformat\fP är ett enda argument i form av en
+blankseparerad eller kommaseparerad lista, vilket ger ett sett att ange
+individuella utdatakolumner. De kända nyckelorden beskrivs i avsnittet
+\fBSTANDARDFORMATSPECIFICERARE\fP nedan. Namn på huvuden kan ändras (\fBps \-o pid,\:ruser=VerkligAnvändare \-o comm=Kommando\fP) som önskas. Om alla
+kolumnhuvuden är tomma (\fBps \-o pid= \-o comm=\fP) kommer huvudraden inte att
+skrivas ut. Kolumnbredder kommer öka efter behov för breda huvuden; detta
+kan användas för att bredda kolumner såsom WCHAN (\fBps \-o pid,\:wchan=\:BRED\-\:WCHAN\-\:KOLUMN \-o comm\fP). Explicit breddstyrning (\fBps opid,\:wchan:42,\:cmd\fP) finns också.. Beteendet hos \fBps \-o pid=X,\:comm=Y\fP
+varierar med personligheten; utmatningen kan vara en kolumn med namnen
+â€X,\:comm=Y†eller tvÃ¥ kolumner med namen â€X†och â€Yâ€. Använd flera
+\fB\-o\fP\-flaggor vid tveksamhet. Använd miljövariabeln \fBPS_FORMAT\fP för att
+ange en standard som önskas; DefSysV och DefBSD är makron som kan användas
+för att som välja UNIX\- eller BSD\-standardkolumner.
+.TP
+\fB\-P\fP
+Lägg till en kolumn som visar \fBpsr\fP.
+.TP
+\fBs\fP
+Visa signalformat.
+.TP
+\fBu\fP
+Visa användarorienterat format.
+.TP
+\fBv\fP
+Visa format för virtuellt minne.
+.TP
+\fBX\fP
+Registerformat.
+.TP
+\fB\-y\fP
+Visa inte flaggor; visa rss istället för addr. Denna flagga kan endast
+användas med \fB\-l\fP.
+.TP
+\fBZ\fP
+Lägg till en kolumn med säkerhetsdata. Identiskt med \fB\-M\fP (för SELinux).
+.PD
+.SH UTMATNINGSMODIFIERARE
+.TP
+\fBc\fP
+Visa det sanna kommandonamnet. Detta härleds från namnet på den körbara
+filen, istället från argv\-värdet. Kommandoargument och eventuella ändringar
+av dem visas alltså inte. Denna flagga gör i praktiken om formatnyckelordet
+\fBargs\fP till formatnyckelordet \fBcomm\fP; den är användbar med formatflagga
+\fB\-f\fP och med de olika formatflaggorna i BSD\-stil, vilka alla normalt visar
+kommandoargumenten. Se flagga \fB\-f\fP, formatnyckelordet \fBargs\fP och
+formatnyckelordet \fBcomm\fP.
+.TP
+\fB\-\-cols\fP\fI\ n\fP
+Ange skärmbredd.
+.TP
+\fB\-\-columns\fP\fI\ n\fP
+Ange skärmbredd.
+.TP
+\fB\-\-cumulative\fP
+Inkludera några data om döda processer (som en summa med föräldern).
+.TP
+.TP
+\fB\-D\fP\fI\ format\fP
+Ange datumformatet för fältet \fBlstart\fP till \fIformat\fP. Detta format tolkas
+av \fBstrftime\fP(3) och skall vara maximalt 24 tecken för att feljustera
+kolumner.
+.TP
+\fB\-\-date\-format\fP\fI\ format\fP
+Identiskt med \fB\-D\fP.
+.TP
+\fBe\fP
+Visa miljön efter kommandot.
+.TP
+\fBf\fP
+Processhierarki med ASCII\-konst (skog).
+.TP
+\fB\-\-forest\fP
+Processträd i ASCII\-konst.
+.TP
+\fBh\fP
+Inget huvud. (eller, ett huvud per skärm i BSD\-personligheten). Flaggan \fBh\fP
+är problematisk. Standard BSD\-\fBps\fP använder denna flagga för att skriva ett
+huvud på varje seida av utmatning, men äldre Linux\-\fBps\fP använder denna
+flagga för att fullständigt avaktivera huvuden. Denna version av \fBps\fP
+följer Linux användning att inte skriva huvudet såvida inte
+BSD\-personligheten har valts, i vilket fall den skriver ett huvud på varje
+sida av utmatning. Oavsett av den aktuella personlighete kan du använda de
+långa flaggorna \fB\-\-headers\fP och \fB\-\-no\-headers\fP för att aktivera utskrift
+av huvuden på varje sida respektive att avaktivera huvuden fullständigt.
+.TP
+\fB\-H\fP
+Vissa processhierarki (skog).
+.TP
+\fB\-\-headers\fP
+Repetera huvudrader, en gång per sida med utmatning.
+.TP
+\fBk\fP\fI\ spec\fP
+Ange sorteringsordning. Sorteringssyntaxen är [\fB+\fP|\fB\-\fP]\fInyckel\/.RB [,[ + | \- ].IR nyckel [,…]].\fP Välj en flerbokstavsnyckel från avsnittet
+\fBSTANDARDFORMATSPECIFICERARE\fP. â€+â€:et är frivilligt eftersom
+standardriktningen är ökande numerisk eller lexikografisk ordning. Identiskt
+med \fB\-\-sort\fP.
+.RS 8
+.IP
+Exempel:
+.br
+\fBps jaxkuid,\-ppid,+pid\fP
+.br
+\fBps axk comm o comm,args\fP
+.br
+\fBps kstart_time \-ef\fP
+.RE
+.TP
+\fB\-\-lines\fP\fI\ n\fP
+Ange skärmhöjd.
+.TP
+\fBn\fP
+Numerisk utmatning för WCHAN och USER (inklusive alla typer av UID och GID).
+.TP
+\fB\-\-no\-headers\fP
+Skriv inte ut något huvud alls. \fB\-\-no\-heading\fP är ett alias för denna
+flagga.
+.TP
+\fBO\fP\fI\ ordning\fP
+Sorteringsordning (överlagrad). BSD\-flaggan \fBO\fP kan fungera som \fB\-O\fP
+(användardefinierat utmatningsformat med några vanliga fält fördefinierade)
+eller kan användas för att ange sorteringsordningen. Heuristiker används för
+att bestämma beteenendet hos denna flagga. För att vara säker på att det
+önskade beteendet erhålls (sortering eller formatering), ange flaggan på
+något annat sätt (t.ex. med \fB\-O\fP eller \fB\-\-sort\fP).
+.IP
+För sortering är syntaxen för det föråldrade syntaxen \fBO\fP från BSD
+\fBO\fP[\fB+\fP|\fB\-\fP]\fIn1\fP[,[\fB+\fP|\fB\-\fP]\fIn2\fP[,…]], Det ordnar processlistan enligt
+den sortering i flera nivåer som specifiseras av sekvensen av enbokstavs
+korta nycklar \fIn1\fP, \fIn2\fP, … som beskrivs i avsnittet \fBFÖRÃ…LDRADE SORTERINGSNYCKLAR\fP nedan. â€+â€:et är för närvarande frivilligt, det upprepar
+bara standarrikningen för en nyckel, men kan hjälpa till att särskilja en
+\fBO\fP\-sortering frÃ¥n ett \fBO\fP\-format. â€\-â€:et vänder riktingen endast för den
+nyckel det föregår.
+.TP
+\fB\-\-rows\fP\fI\ n\fP
+Ange skärmhöjd.
+.TP
+\fBS\fP
+Summera en del information, såsom CPU\-användning, från döda barnprocesser
+till deras förälder. Detta är användbart för att undersöka ett system där en
+föräldraprocess upprepat grenar av kortlivade barn för att göra arbetet.
+.TP
+\fB\-\-sort\fP\fI\ spec\fP
+Ange sorteringsordning. Sorteringssyntaxen är
+[\fB+\fP|\fB\-\fP]\fInyckel\fP[,[\fB+\fP|\fB\-\fP]\fInyckel\fP[,…]]. Välj en flerbokstavsnyckel
+frÃ¥n avsnittet \fBSTANDARDFORMATSPECIFICERARE\fP. â€+â€:et är frivilligt eftersom
+standardordningen är ökande numeriks eller lexikografisk ordning. Identiskt
+med \fBk\fP. Till exempel: \fBps jax \-\-sort=\:uid,\:\-ppid,\:+pid\fP
+.TP
+\fB\-\-signames\fP
+Visa signalmasker som använder förkortade signalnamn och expanderar
+kolumnen. Om kolumnbredden inte kan visa alla signaler kommer kolumnen
+avslutas med ett plus â€\fI+\fPâ€. Kolumner med bara ett bindestreck har inga
+signaler.
+.TP
+\fBw\fP
+Bred utmatning. Använd denna flagga två gånger för obegränsad bredd.
+.TP
+\fB\-w\fP
+Bred utmatning. Använd denna flagga två gånger för obegränsad bredd.
+.TP
+\fB\-\-width\fP\fI\ n\fP
+Ange skärmbredd.
+.PD
+.SH TRÃ…DVISNING
+.TP
+\fBH\fP
+Visa trådar som om de vore processer.
+.TP
+\fB\-L\fP
+Visa trådar, möjligen med LWP\- och NLWP\-kolumner.
+.TP
+\fBm\fP
+Visa trådar efter processer.
+.TP
+\fB\-m\fP
+Visa trådar efter processer.
+.TP
+\fB\-T\fP
+Visa trådar, möjligen med en SPID\-kolumn.
+.SH "ANNAN INFORMATION"
+.TP
+\fB\-\-help\fP\fI\ avsnitt\fP
+Skriv ut ett hjälpmeddelande. Argumentet \fIavsnitt\fP kan var ett av \fIe\fPnkel,
+\fIl\fPista, \fIu\fPtdata, \fIt\fPrådar, \fId\fPiverse eller \fIa\fPllt. Argumentet kan
+förkortas till en av de understrukna tecknen som i:
+e\^|\^l\^|\^u\^|\^t\^|\^d\^|\^a.
+.TP
+\fB\-\-info\fP
+Skriv ut felsökningsinformation.
+.TP
+\fBL\fP
+Lista alla formatspeicicerare.
+.TP
+\fBV\fP
+Skriv ut procps\-ng\-versionen.
+.TP
+\fB\-V\fP
+Skriv ut procps\-ng\-versionen.
+.TP
+\fB\-\-version\fP
+Skriv ut procps\-ng\-versionen.
+.SH OBSERVERA
+Denna \fBps\fP fungerar genom att läsa de virtuella filerna i /proc. Denna
+\fBps\fP beöver inte vara setuid kmem eller ha några privilegier för att
+köra. Ge inte denna \fBps\fP några särskilda rättigheter.
+.PP
+CPU\-användning uttrycks för närvarande som en procentandel av tiden som
+tillbringats körande under hela livstiden för en process. Detta är inte
+idealiskt och det följer inte standarderna som \fBps\fP i övrigt följer. Det är
+osannolikt att summan av CPU\-användningen blir precis 100\ %.
+.PP
+Fälten SIZE och RSS räknar inte med några delar av en process inklusive
+sidtabeller, kärnstack, posten thread_info och posten task_struct. Detta är
+vanligen åtminstone 20\ KiB minne som alltid är resident. SIZE är den
+virtuella storleken på processen (kod+\:data+\:stack).
+.PP
+Processer makerade <defunkt> är döda processer (så kallade
+â€zombierâ€) som finns kvar för att deras förälder inte har förstört dem
+ordentligt. Dessa processer kommer att förstöras av \fIinit\fP(8) om
+föräldraprocessen avslutar.
+.PP
+Om längden på användarnamnet är större än bredden på visningskolumnen huggs
+användarnamnet av. Se formateringsflaggorna \fB\-o\fP och \fB\-O\fP för att anpassa
+längden.
+.PP
+Kommandoflaggor såsom \fBps \-aux\fP rekommenderas inte eftersom det är en
+sammanblandning av två olika standarder. Enligt standarderna POSIX och UNIX
+begär ovanståend kommando att visa alla processer med en TTY (i allmänhet
+kommandona användare kör) plus alla processer som ägs av en användare med
+namnet \fIx\fP. Om den användaren inte finns kommer \fBps\fP anta att du
+egentligen menade â€\fBps aux\fPâ€.
+.SH PROCESSFLAGGOR
+Summan av dessa flaggor visas i kolumnen â€Fâ€, som ges av
+utmatningsspecificeraren \fBflags\fP:
+.PP
+.RS 8
+.PD 0
+.TP 5
+1
+grenad men gjorde inte exec
+.TP
+4
+använde superanvändarprivileger
+.PD
+.RE
+.SH PROCESSTATUSKODER
+Här är de olika värdena som utmatningsspecificerarna \fBs\fP, \fBstat\fP och
+\fBstate\fP (rubrikerna â€STAT†eller â€Sâ€) kommer visa för att beskriva
+tillståndet hos en process:
+.PP
+.RS 8
+.PD 0
+.TP 5
+D
+oavbrytbar sömn (vanligen IO)
+.TP
+I
+Inaktiv kärntråd
+.TP
+R
+körande eller körbar (på körkön)
+.TP
+S
+avbrytbar sömn (väntar på att en händelse skall avsluta)
+.TP
+T
+stoppad av jobbstyrningssignal
+.TP
+t
+stoppad av en felsökare under spårning
+.TP
+W
+sidväxling (inte giltig sedan kärnan 2.6.xx)
+.TP
+X
+död (skall aldrig synas)
+.TP
+Z
+upphörd process (â€zombieâ€), avslutad men inte skördad av sin förälder
+.PD
+.RE
+.PP
+För BSD\-format och när nyckelordet \fBstat\fP används kan ytterligare bokstäver
+visas:
+.PP
+.RS 8
+.PD 0
+.TP 5
+<
+hög prioritet (inte trevlig mot andra användare)
+.TP
+N
+låg prioritet (trevlig mot andra användare)
+.TP
+L
+har sidor låsta i minnet (för realtid och anpassat IO)
+.TP
+s
+är en sessionsledare
+.TP
+l
+är multitrådad (använder CLONE_THREAD, som NPTL pthreads gör)
+.TP
++
+är i förgrundsprocessgruppen
+.PD
+.RE
+.SH "FÖRÅLDRADE SORTERINGSNYCKLAR"
+Dessa nycklar används av BSD\-flaggan \fBO\fP (när den används för
+sortering). GNU\-flaggan \fB\-\-sort\fP använder inte dessa nycklar, utan
+specificerarna som beskrivs i avsnittet
+\fBSTANDARDFORMATSPECIFICERARE\fP. Observera att värdena som används i
+sorteringen är de interna värden som \fBps\fP använder och inte de â€koktaâ€
+värden som används i några av utmatningsformatsfälten (t.ex. kommer
+sortering på tty sortera efter enhetsnummer, inte enligt terminalnamnet som
+visas). Skicka utdata från \fBps\fP i rör till kommandot \fBsort\fP(1) om du vill
+sortera de kokta värdena.
+.TS
+l l lw(3i).
+\fBNYCKEL\fP \fBLÃ…NG\fP \fBBESKRIVNING\fP
+c cmd enkelt namn på den körbara
+C pcpu cpu\-användning
+f flags flaggor som i det långa formatets F\-fält
+g pgrp processgrupp\-ID
+G tpgid styrande tty\-processgrupps\-ID
+j cutime kumulativ användartid
+J cstime kumulativ systemtid
+k utime användartid
+m min_flt antal mindre sidfel
+M maj_flt antal större sidfel
+n cmin_flt kumulativt mindre sidfel
+N cmaj_flt kumulativt större sidfel
+o session sessions\-ID
+p pid process\-ID
+P ppid föräldraprocess\-ID
+r rss residenta mängdens storlek
+R resident residenta sidor
+s size minnesstorlek i kilobyte
+S share mängden delade sidor
+t tty enhetsnumret på den styrande tty:n
+T start_time tidpunkten processen startades
+U uid användarens ID\-nummer
+u user användarnamn
+v vsize total VM\-storlek i KiB
+y priority kärnskemaläggningsprioritet
+.\"K stime system time (conflict, system vs. start time)
+.TE
+.SH AIX\-FORMATBESKRIVARE
+Denna \fBps\fP stödjer AIX formatbeskrivare, vilka fungerar ungefär som
+formateringskoderna till \fIprintf\fP(1) och \fIprintf\fP(3). Till exempel kan den
+normala standardutmatningen skapas med detta: \fBps \-eo "%p %y %x %c"\fP. De
+\fBVANLIGA\fP koderna beskrivs i nästa stycke.
+.TS
+l l l.
+\fBKOD\fP \fBVANLIG\fP \fBRUBRIK\fP
+%C pcpu %CPU
+%G group GRUPP
+%P ppid FPID
+%U user ANVÄNDARE
+%a args KOMMANDO
+%c comm KOMMANDO
+%g rgroup VGRUPP
+%n nice NI
+%p pid PID
+%r pgid PGID
+%t etime FÖRFLUTEN
+%u ruser VANV
+%x time TID
+%y tty TTY
+%z vsz VST
+.TE
+.SH STANDARDFORMATSPECIFICERARE
+Här är de olika nyckelorden som kan användas för att styra
+utmatningsformatet (t.ex., med flaggan \fB\-o\fP) eller för att sortera de valda
+processerna med GNU\-stilsflaggan \fB\-\-sort\fP.
+.PP
+Till exempel: \fBps \-eo pid,\:user,\:args \-\-sort user\fP
+.PP
+Denna version av \fBps\fP försöker känna igen de flesta nyckelord som används
+in andra implementationer av \fBps\fP.
+.PP
+Följande användardefinierade formatspecificerare kan innehålla blanktecken:
+\fBargs\fP, \fBcmd\fP, \fBcomm\fP, \fBcommand\fP, \fBfname\fP, \fBucmd\fP, \fBucomm\fP,
+\fBlstart\fP, \fBbsdstart\fP, \fBstart\fP.
+.PP
+Några nyckelord är kanske inte tillgängliga för sortering.
+
+.\" #######################################################################
+.\" lB1 lB1 lB1 lB1 s s s
+.\" lB1 l1 l1 l1 s s s.
+.\"
+.\" lB1 lB1 lBw(5.5i)
+.\" lB1 l1 l.
+.\"
+.TS
+expand;
+l1B l1B lBw(\n[ColSize]n)
+l1B l1 l.
+KOD RUBRIK BESKRIVNING
+
+%cpu %CPU T{
+cpu\-användning av processerna i formatet â€##.#â€. För närvarande är det CPU\-tiden som används dividerad med tiden som processen har kört (förhÃ¥llandet cputid/verklig tid), uttryckt som en procentsats. Det kommer inte summeras till 100\ % utom om du har tur. (alias \fBpcpu\fP).
+T}
+
+%mem %MIN T{
+förhållandet mellan storleken på processens residenta mängd och det fysiska
+minnet på maskinen, uttryckt som en procentsats. (alias
+\fBpmem\fP).
+T}
+
+ag_id AGID T{
+Autogruppidentifieraren som är associerad med en process som arbetar tillsammans med CFS\-schemaläggaren för att förbättra interaktiv skrivbordsprestanda.
+T}
+
+ag_nice AGNI T{
+Autogruppens nice\-värde vilket påverkar schemaläggningen för alla processer e den gruppen.
+T}
+
+args KOMMANDO T{
+kommandot med alla dess flaggor som en sträng. Ändringar av argumenten kan
+visas. Utdatan i denna kolumn kan innehålla blanktecken. En process markerad
+<defunct> är delvis död, och väntar på att helt destrueras av sin
+förälder. Ibland är processargumenten inte tillgängliga; när detta händer
+kommer
+\fBps\fP
+istället skriva det körbara namnet i hakparenteser. (alias
+\fBcmd\fP, \fBcommand\fP).
+Se även formatnyckelordet
+\fBcomm\fP
+flaggan
+\fB\-f\fP
+och flaggan
+\fBc\fP.
+.br
+När den anges sist kommer denna kolumn sträcka sig till kanten av displayen. Om
+\fBps\fP
+inte kan avgöra displaybredden, som när utdata är omdirigerad (pipe) till en
+fil eller ett annat kommando, är utdatabredden odefinierad (den kan vara 80,
+obegränsad, bestämd av variabeln
+\fBTERM\fP,
+och så vidare). Miljövariabeln
+\fBCOLUMNS\fP
+eller flaggan
+\fB\-\-cols\fP
+kan användas för att exakt bestämma bredden i detta fall. Flaggan
+\fBw\fP
+eller
+\fB\-w\fP
+kan också användas för att justera bredden.
+T}
+
+blocked BLOCKED T{
+mask av blockerade signaler, se
+\fIsignal\fP(7).
+Enligt bredden på fältet visas en 32\- eller 64\-bitars mask i hexadecimalt
+format. (alias
+\fBsig_block\fP,\fB\ sigmask\fP).
+T}
+
+bsdstart START T{
+tiden kommandot startade. Om processen startades för mindre än 24 timmar sedan,
+är utmatningsformatet â€\ HH:MMâ€, annars är den †Mmm:SS†(där Mmm är de tre
+bokstäverna i månaden). Se även
+\fBlstart\fP,\fB\ start\fP,\fB\ start_time\fP och\fB\ stime\fP.
+T}
+
+bsdtime TID T{
+accumulerad cpu\-tid, användare + system. Visningsformatet är vanligen
+â€MMM:SSâ€, men kan justeras Ã¥t höger om processen har använt mer än 999
+minuter cpu\-tid.
+T}
+
+c C T{
+processoranvändning. För närvarande är detta heltalsvärdet av procent
+användning över processens livslängd. (se
+\fB%cpu\fP).
+T}
+
+caught CAUGHT T{
+mask av fångade signaler, se
+\fIsignal\fP(7).
+Enligt bredden på fältet visas en 32\- eller 64\-bitars mask i hexadecimalt
+format, om inte flaggan \fB\-\-signames\fP används. (alias
+\fBsig_catch\fP, \fBsigcatch\fP).
+T}
+
+cgnamn KGNAMN T{
+visar namnet på kontrollgrupper vilka denna process hör till.
+T}
+
+cgroup KGRUPPR T{
+visar kontrollgruppe vilka denna process hör till.
+T}
+
+cgroupns CGROUPNS T{
+Unikt inodsnummer som beskriver namnrymden processen hör till.
+Se
+\fInamespaces\fP(7).
+T}
+
+class CLS T{
+processens schemaläggningsklass. (alias
+\fBpolicy\fP, \fBcls\fP).
+Fältets möjliga värden är:
+.sp 1
+.in +9n
+\- inte rapporterad
+.br
+TS SCHED_OTHER
+.br
+FF SCHED_FIFO
+.br
+RR SCHED_RR
+.br
+B SCHED_BATCH
+.br
+ISO SCHED_ISO
+.br
+IDL SCHED_IDLE
+.br
+DLN SCHED_DEADLINE
+.br
+? okänt värde
+.in
+T}
+
+cls CLS T{
+processens schemaläggningsklass. (alias
+\fBpolicy\fP, \fBcls\fP).
+Fältets möjliga värden är:
+.sp 1
+.in +9n
+\- inte rapporterad
+.br
+TS SCHED_OTHER
+.br
+FF SCHED_FIFO
+.br
+RR SCHED_RR
+.br
+B SCHED_BATCH
+.br
+ISO SCHED_ISO
+.br
+IDL SCHED_IDLE
+.br
+DLN SCHED_DEADLINE
+.br
+? okänt värde
+.in
+T}
+
+cmd CMD T{
+se
+\fBargs\fP.
+(alias
+\fBargs\fP, \fBcommand\fP).
+T}
+
+comm KOMMANDO T{
+kommandonamn (endast det körbara namnet). Utdata i denna kolumn kan
+innehålla blanktecken.
+(alias
+\fBucmd\fP, \fBucomm\fP).
+Se även formatnyckelordet
+\fBargs\fP, flaggan
+\fB\-f\fP
+och flaggan
+\fBc\fP.
+.br
+När den anges sist kommer denna kolumn sträcka sig till kanten av displayen. Om
+\fBps\fP
+inte kan avgöra displaybredden, som när utdata är omdirigerad (pipe) till en
+fil eller ett annat kommando, är utdatabredden odefinierad (den kan vara 80,
+obegränsad, bestämd av variabeln
+\fBTERM\fP,
+och så vidare). Miljövariabeln
+\fBCOLUMNS\fP
+eller flaggan
+\fB\-\-cols\fP
+kan användas för att exakt bestämma bredden i detta fall. Flaggan
+\fBw\fP\ eller \fB\ \-w\fP
+kan också användas för att justera bredden.
+T}
+
+command KOMMANDO T{
+Se
+\fBargs\fP.
+(alias
+\fBargs\fP, \fBcommand\fP).
+T}
+
+cp CP T{
+promille (tiondels procent) CPU\-användning. (se
+\fB%cpu\fP).
+T}
+
+cputime TID T{
+ackumulerad CPU\-tid, formatet â€[DD\-]hh:mm:ssâ€. (alias
+\fBtime\fP).
+T}
+
+cputimes TID T{
+ackumulerad CPU\-tid i sekunder (alias
+\fBtimes\fP).
+T}
+
+cuc %CUB T{
+En process CPU\-användning, inklusive döda barn, i ett utökat format â€##.###â€.
+(se även
+\fB%cpu\fP,
+\fBc\fP,
+\fBcp\fP,
+\fBcuu\fP,
+\fBpcpu\fP).
+T}
+
+cuu %CUA T{
+En process CPU\-användning i ett utökat format â€##.###â€.
+(se även
+\fB%cpu\fP,
+\fBc\fP,
+\fBcp\fP,
+\fBcuc\fP,
+\fBpcpu\fP).
+T}
+
+drs DRS T{
+storleken på den residenta mängden data, mängden fysiskt minne \fIreserverat\fP
+av en process. Det är även känt som DATA. Sådant minne behöver ännu inte
+vara mappat till
+\fBrss\fP
+men kommer alltid att inkluderas i mängden
+\fBvsz\fP.
+
+T}
+
+egid EGID T{
+effektivt grupp\-ID\-nummer på processen som ett decimalt heltal. (alias
+\fBgid\fP).
+T}
+
+egroup EGROUP T{
+effektivt grupp\-ID på processen. Detta kommer vara det textuella grupp\-ID:t
+om det kan hämtas och fältbredden tillåter, eller en decimal representation
+i annat fall. (alias
+\fBgroup\fP).
+T}
+
+eip EIP T{
+instruktionspekaren. Från kärna 4.9.xx kommer det att vara nollställt utom
+om en uppgift avslutar eller dumpar minnet.
+T}
+
+esp ESP T{
+stackpekaren. Från kärna 4.9.xx kommer det att vara nollställt utom
+om en uppgift avslutar eller dumpar minnet.
+T}
+
+etime FÖRFLUTEN T{
+förlupen tid sedan processen startades, i formatet [[DD\-]hh:]mm:ss.
+T}
+
+etimes FÖRFLUTEN T{
+förlupen tid sedan processen startades, i sekunder.
+T}
+
+euid EUID T{
+effektivt användar\-ID (alias
+\fBuid\fP).
+T}
+
+euser EUSER T{
+effektivt användarnamn. Detta kommer vara det textuella användar\-ID:t, om det
+kan avgöras och fältbredden så tillåter, eller en decimal representation i
+annat fall. Flaggan
+\fBn\fP
+kan användas för att framtvinga den decimala representationen. (alias
+\fBuname\fP, \fBuser\fP).
+T}
+
+exe EXE T{
+sökvägen till den körbara. Användbart om sökvägen inte kan skrivas ut via
+formatflaggorna
+\fBcmd\fP, \fBcomm\fP
+eller
+\fBargs\fP.
+T}
+
+f F T{
+flaggor associerade med processen, se avsnittet
+\fBPROCESSFLAGGOR\fP.
+(alias
+\fBflag\fP, \fBflags\fP).
+T}
+
+fgid FGID T{
+filsystemsåtkomstgrupp\-ID. (alias
+\fBfsgid\fP).
+T}
+
+fgroup FGROUP T{
+filsystemets åtkomstgrupp\-ID. Detta kommer vara det textuella grupp\-ID:t
+om det kan hämtas och fältbredden tillåter, eller en decimal representation
+i annat fall. (alias
+\fBfsgroup\fP).
+T}
+
+flag F T{
+se
+\fBf\fP.
+(alias
+\fBf\fP, \fBflags\fP).
+T}
+
+flags F T{
+se
+\fBf\fP.
+(alias
+\fBf\fP, \fBflag\fP).
+T}
+
+fname KOMMANDO T{
+de första 8 byten av basnamnet på processens körbara fil. Utmatningen i
+denna kolumn kan innehålla blanktecken.
+T}
+
+fuid FUID T{
+filsystemsåtkomstanvändar\-ID. (alias
+\fBfsuid\fP).
+T}
+
+fuser FUSER T{
+filsystemsåtkomstanvändar\-ID. Detta kommer vara det textuella användar\-ID:t,
+om det kan hämtas och fältbredden tillåter, eller en decimal representation
+i annat fall.
+T}
+
+gid GID T{
+se
+\fBegid\fP.
+(alias
+\fBegid\fP).
+T}
+
+group GRUPP T{
+se
+\fBegroup\fP.
+(alias
+\fBegroup\fP).
+T}
+
+ignored IGNORED T{
+mask över de ignorerade signalerna, se
+\fIsignal\fP(7).
+Enligt fältets bredd visas en 32\-bitars eller 64\-bitars mask i hexadecimal
+form, on inte fagga \fB\-\-signames\fP används. (alias
+\fBsig_ignore\fP, \fBsigignore\fP).
+T}
+
+ipcns IPCNS T{
+Unikt inodsnummer som beskriver namnrymden processen hör till.
+Se
+\fInamespaces\fP(7).
+T}
+
+label LABEL T{
+säkerhetsetikett, vanligen använt för SELinux\-kontextdata. Detta är till för
+\fItvingande åtkomstkontroll\fP
+(â€MACâ€) som finns i högsäkerhetssystem.
+T}
+
+lstart STARTED T{
+Tiden kommandot startade. Detta kommer vara i formatet â€DDD mmm HH:MM:SS Ã…Ã…Ã…Ã…â€
+om det inte ändras av flaggan \fB\-D\fP.
+T}
+
+lsession SESSION T{
+visar identiferaren av inloggningssessionen för en process,
+om stöd för systemd har inkluderats.
+T}
+
+luid LUID T{
+visar login\-ID associerat med en process.
+T}
+
+lwp LWP T{
+den körbara lättviktsprocessens (trådens) ID (alias
+\fBspid\fP,\fB\ tid\fP).
+Se
+\fBtid\fP
+för ytterligare information.
+T}
+
+lxc LXC T{
+Namnet på lxc\-behållaren i vilken en process kör.
+Om en process inte kör i en behÃ¥llare kommer ett streck (â€\-â€) visas.
+T}
+
+machine MACHINE T{
+visar maskinnamnet för processer som tillhör en VM eller behållare,
+om stöd för systemd har inkluderats.
+T}
+
+maj_flt MAJFLT T{
+Antalet större sidfel som har inträffat för denna process.
+T}
+
+min_flt MINFLT T{
+Antalet mindre sidfel som har inträffat för denna process.
+T}
+
+mntns MNTNS T{
+Unikt inodsnummer som beskriver namnrymden processen hör till.
+Se
+\fInamespaces\fP(7).
+T}
+
+netns NETNS T{
+Unikt inodsnummer som beskriver namnrymden processen hör till.
+Se
+\fInamespaces\fP(7).
+T}
+
+ni NI T{
+nice\-värde. Detta går från 19 (trevligast) till \-20 (inte trevligt mot andra),
+se
+\fInice\fP(1).
+(alias
+\fBnice\fP).
+T}
+
+nice NI T{
+se
+\fBni\fP.
+(alias
+\fBni\fP).
+T}
+
+nlwp NLWP T{
+antal lwps (trådar) i processen. (alias
+\fBthcount\fP).
+T}
+
+numa NUMA T{
+Noden associerad med den senast använda processorn.
+Ett \fI\-1\fP betyder att NUMA\-information inte är tillgänglig.
+T}
+
+nwchan VKAN T{
+adress till kärnfunktionen där processen sover (använd
+\fBwchan\fP
+om du vill veta kärnfunktionens namn).
+T}
+
+oom OOM T{
+Slut\-på\-minne\-värde. Värdet, från 0 till +1000, som används för att välja
+uppgift(er) att döda när minnet tar slut.
+T}
+
+oomadj OOMADJ T{
+Slut\-på\-minne\-justeringsfaktor. Värdet läggs till till det aktuella slut\-på
+minnet\-värdet som sedan används för att avgöra vilken uppgift som skall dödas
+när minnet tar slut.
+T}
+
+ouid OWNER T{
+visar Unix\-användaridentifieraren för ägaren av processens sessionen,
+om stöd för systemd har inkluderats.
+T}
+
+pcpu %CPU T{
+se
+\fB%cpu\fP.
+(alias
+\fB%cpu\fP).
+T}
+
+pending PENDING T{
+mask av väntande signaler. Se
+\fIsignal\fP(7).
+Signaler som väntar på processen skiljer sig från signaler som väntar på
+enskilda trådar. Använd flaggan
+\fBm\fP
+eller flaggan
+\fB\-m\fP
+för att se båda. Enligt fältets bredd visas en 32\- eller 64\-bitars mask
+i hexadecimal form, om inte flagga \fB\-\-signames\fP används. (alias
+\fBsig\fP).
+T}
+
+pgid PGID T{
+processgrupps\-ID eller, likvärdigt, process\-ID:t på processgruppledaren.
+(alias
+\fBpgrp\fP).
+T}
+
+pgrp PGRP T{
+se
+\fBpgid\fP.
+(alias
+\fBpgid\fP).
+T}
+
+pid PID T{
+ett nummer representerade process\-ID:t (alias
+\fBtgid\fP).
+T}
+
+pidns PIDNS T{
+Unikt inodsnummer som beskriver namnrymden processen hör till.
+Se
+\fInamespaces\fP(7).
+T}
+
+pmem %MIN T{
+se
+\fB%mem\fP.
+(alias
+\fB%mem\fP).
+T}
+
+policy POL T{
+processens schemaläggningsklass. (alias
+\fBclass\fP, \fBcls\fP).
+Möjliga värden är:
+.sp 1
+.in +9n
+\- inte rapporterad
+.br
+TS SCHED_OTHER
+.br
+FF SCHED_FIFO
+.br
+RR SCHED_RR
+.br
+B SCHED_BATCH
+.br
+ISO SCHED_ISO
+.br
+IDL SCHED_IDLE
+.br
+DLN SCHED_DEADLINE
+.br
+? okänt värde
+.in
+T}
+
+ppid FPID T{
+föräldraprocess\-ID.
+T}
+
+pri PRI T{
+processens prioritet. Högre tal betyder högre prioritet.
+T}
+
+psr PSR T{
+processor som processen senast körde på.
+T}
+
+pss ARSS T{
+Proportinell andels storlek, det inte utväxlade fysiska minnet, med delat minne
+proportionellt fördelat över alla uppgifter som avbildar in det.
+T}
+
+rbytes RBYTES T{
+Antal byte som denna process verkligen fick att hämtas från lagringslagret.
+T}
+
+rchars RCHARS T{
+Antal byte som denna uppgift har orsakat att de lästs in från lagringen.
+T}
+
+rgid VGID T{
+verkligt grupp\-ID.
+T}
+
+rgroup VGRUPP T{
+verkligt gruppnamn. Detta kommer vara det textuella grupp\-ID:t, om det kan
+hämtas och fältbredden tillåter, eller en decimal representation i annat fall.
+T}
+
+rops ROPS T{
+Antal läsnings\-I/O\-åtgärder — det vill säga, systemanrop såsom
+\fBread\fP(2) och \fBpread\fP(2).
+T}
+
+rss RSS T{
+residenta mängdens storlek, det ej utväxlade fysiska minnet som en uppgift
+har använt (i kiloyte). (alias
+\fBrssize\fP, \fBrsz\fP).
+T}
+
+rssize RSS T{
+se
+\fBrss\fP.
+(alias
+\fBrss\fP, \fBrsz\fP).
+T}
+
+rsz RSZ T{
+se
+\fBrss\fP.
+(alias
+\fBrss\fP, \fBrssize\fP).
+T}
+
+rtprio RTPRIO T{
+realtidsprioritet.
+T}
+
+ruid VAID T{
+verkligt användar\-ID.
+T}
+
+ruser VANV T{
+verkligt användar\-ID. Detta kommer vara det textuella användar\-ID:t, om det kan
+hämtas och fältbredden tillåter, eller en decimal representation i annat fall.
+T}
+
+s S T{
+minimal tillståndsvisning (en bokstav). Se avsnittet
+\fBPROCESSTATUSKODER\fP
+för de olika värdena. Se även
+\fBstat\fP
+om du vill ha ytterligare information visad. (alias
+\fBstate\fP).
+T}
+
+sched SCH T{
+schemaläggninspolicy för processen. Policyerna SCHED_OTHER (SCHED_NORMAL),
+SCHED_FIFO, SCHED_RR, SCHED_BATCH, SCHED_ISO, SCHED_IDLE och SCHED_DEADLINE
+visas som 0, 1, 2, 3, 4, 5 respektive 6.
+T}
+
+seat SEAT T{
+visar identifieraren associerad med alla hårdvaruenheter tilldelade till
+en specifik arebetsplats,
+om stöd för systemd har inkluderats.
+T}
+
+sess SESS T{
+sessions\-ID eller, likvärdigt, process\-ID för sessionsledaren. (alias
+\fBsession\fP, \fBsid\fP).
+T}
+
+sgi_p P T{
+processor som processen för närvarande kör pÃ¥. Visar â€*†om
+processen inte kör eller är körbar just nu.
+T}
+
+sgid SGID T{
+sparat grupp\-ID. (alias
+\fBsvgid\fP).
+T}
+
+sgroup SGROUP T{
+sparat gruppnamn. Detta kommer vara det textuella grupp\-ID:t, om det kan
+hämtas och fältbredden tillåter, eller en decimal representation i annat fall.
+T}
+
+sid SID T{
+se
+\fBsess\fP.
+(alias
+\fBsess\fP, \fBsession\fP).
+T}
+
+sig PENDING T{
+se
+\fBpending\fP.
+(alias
+\fBpending\fP, \fBsig_pend\fP).
+T}
+
+sigcatch CAUGHT T{
+se
+\fBcaught\fP.
+(alias
+\fBcaught\fP, \fBsig_catch\fP).
+T}
+
+sigignore IGNORED T{
+se
+\fBignored\fP.
+(alias
+\fBignored\fP, \fBsig_ignore\fP).
+T}
+
+sigmask BLOCKED T{
+se
+\fBblocked\fP.
+(alias
+\fBblocked\fP, \fBsig_block\fP).
+T}
+
+size SIZE T{
+ungefärlig mängd växlingsutrymme som skulle krävas om processen skulle smutsa
+ner alla skrivbara sidor och sedan växlas ut. Denna beräkning är väldigt grov!
+T}
+
+slice SLICE T{
+visar skivenheten vilken en process hör till,
+om stöd för systemd har inkluderats.
+T}
+
+spid SPID T{
+se
+\fBlwp\fP.
+(alias
+\fBlwp\fP, \fBtid\fP).
+T}
+
+stackp STACKP T{
+adressen till botten (början) av processens stack.
+T}
+
+start STARTED T{
+tiden kommandot startade. Om processen startades för mindre än 24 timmar sedan
+är utdataformatet â€HH:MM:SSâ€, annars är det â€\ \ Mmm\ dd†(där Mmm är ett
+trebokstavs månadsnamn). Se även
+\fBbsdstart\fP, \fBstart\fP, \fBstart_time\fP och \fBstime\fP.
+T}
+
+start_time START T{
+processens starttid eller \-datum. Endast året kommer visas om processen
+inte startades samma år
+\fBps\fP
+kördes, eller â€MmmDD†om den inte startades samma dag, eller â€HH:MMâ€
+annars. Se även
+\fBbsdstart\fP, \fBstart\fP, \fBlstart\fP och \fBstime\fP.
+T}
+
+stat STAT T{
+flerteckens processtillstånd. Se avsnittet
+\fBPROCESSTATUSKODER\fP
+för de olika värdenas betydelse. Se även
+\fBs\fP\ och \fB\ state\fP
+om du bara vill visa den första bokstaven.
+T}
+
+state S T{
+se
+\fBs\fP.\& (alias\fB\ s\fP).
+T}
+
+stime STID T{
+se \fBstart_time\fP. (alias \fBstart_time\fP).
+T}
+
+suid SAID T{
+sparat användar\-ID. (alias
+\fBsvuid\fP).
+T}
+
+supgid SUPGID T{
+grupp\-id:n av kompletterande grupper, om det finns några. Se
+\fBgetgroups\fP(2).
+T}
+
+supgrp SUPGRP T{
+gruppnamn på kompletterande grupper, om det finns några. Se
+\fBgetgroups\fP(2).
+T}
+
+suser SANV T{
+sparat användarnamn. Detta kommer vara det textuella användar\-ID:t, om det kan
+hämtas och fältbredden tillåter, eller en decimal representation i annat fall.
+T}
+
+svgid SVGID T{
+se
+\fBsgid\fP.
+(alias
+\fBsgid\fP).
+T}
+
+svuid SVUID T{
+se
+\fBsuid\fP.
+(alias
+\fBsuid\fP).
+T}
+
+sz SZ T{
+storlek i fysiska sidor på processens kärnavbild. Detta inkluderar text\-,
+data\- och stackutrymme. Enhetsinmappningar exkluderas för närvarande, detta
+kan komma att ändras. Se
+\fBvsz\fP\ och\fB\ rss\fP.
+T}
+
+tgid TGID T{
+ett tal som representerar trådgruppen som uppgiften tillhör (alias
+\fBpid\fP).
+Det är process\-ID:t på trådgruppledaren.
+T}
+
+thcount THCNT T{
+se
+\fBnlwp\fP.
+(alias
+\fBnlwp\fP).
+antal kärntrådar som processen äger.
+T}
+
+tid TID T{
+Det unika numret som representerar en körbar enhet (alias
+\fBlwp\fP, \fBspid\fP).
+Detta värde kan även förekomma som: ett process\-ID (pid); ett processgrupp\-ID (pgrp);
+ett sessions\-ID för en sessionsledare (sid); ett trådgrupps\-ID för
+trådgrubbsledaren (tgid); och ett tty\-processgrupps\-ID för processgruppsledaren
+(tpgid).
+T}
+
+time TID T{
+ackumulerad CPU\-tid, formatet â€[DD\-]HH:MM:SSâ€. (alias
+\fBcputime\fP).
+T}
+
+timens TIDNR T{
+Unikt inodsnummer som beskriver namnrymden processen hör till.
+Se
+\fInamespaces\fP(7).
+T}
+
+times TID T{
+ackumulerad CPU\-tid i sekunder (alias
+\fBcputimes\fP).
+T}
+
+tname TTY T{
+styr\-tty (terminal). (alias
+\fBtt\fP, \fBtty\fP).
+T}
+
+tpgid TPGID T{
+Förgrundsprocessgruppens ID på tty:n (terminalen) som processen är kopplad
+till, eller \-1 om processen inte är kopplad till någon tty.
+T}
+
+trs TRS T{
+den residenta text\-mängdens storlek, mängden fysiskt minne tilldelat till körbar kod.
+T}
+
+tt TT T{
+styr\-tty (terminal). (alias
+\fBtname\fP, \fBtty\fP).
+T}
+
+tty TT T{
+styr\-tty (terminal). (alias
+\fBtname\fP, \fBtt\fP).
+T}
+
+ucmd CMD T{
+se
+\fBcomm\fP.
+(alias
+\fBcomm\fP, \fBucomm\fP).
+T}
+
+ucomm KOMMANDO T{
+se
+\fBcomm\fP.
+(alias
+\fBcomm\fP, \fBucmd\fP).
+T}
+
+uid AID T{
+se
+\fBeuid\fP.
+(alias
+\fBeuid\fP).
+T}
+
+uname ANVÄNDARE T{
+se
+\fBeuser\fP.
+(alias
+\fBeuser\fP, \fBuser\fP).
+T}
+
+unit UNIT T{
+visar enheten vilken en process hör till,
+om stöd för systemd har inkluderats.
+T}
+
+user ANVÄNDARE T{
+se
+\fBeuser\fP.
+(alias
+\fBeuser\fP, \fBuname\fP).
+T}
+
+userns USERNS T{
+Unikt inodsnummer som beskriver namnrymden processen hör till.
+Se
+\fInamespaces\fP(7).
+T}
+
+uss URSS T{
+Unika mängdens storlek, det inte utväxlade fysiska minnet, vilket
+inte delas med en annan uppgift.
+T}
+
+utsns UTSNS T{
+Unikt inodsnummer som beskriver namnrymden processen hör till.
+Se
+\fInamespaces\fP(7).
+T}
+
+uunit UUNIT T{
+visar användarenheten vilken en process hör till,
+om stöd för systemd har inkluderats.
+T}
+
+vsize VST T{
+se
+\fBvsz\fP.
+(alias
+\fBvsz\fP).
+T}
+
+vsz VST T{
+storleken på processens virtuella minne i KiB (1024\-bytenheter).
+Enhetsinmappningar exkluderas för närvarande, detta kan komma att
+ändras. (alias
+\fBvsize\fP).
+T}
+
+wbytes WBYTES T{
+Antal byte vilka denna process fick att skickas till lagringslagret.
+T}
+
+wcbytes WCBYTES T{
+Antal inställda skrivbyte.
+T}
+
+wchan VKAN T{
+namnet på kärnfunktionen i vilken processen sover.
+T}
+
+wchars WCHARS T{
+Antal byt vilka denna uppgift har fått, eller kommer att få skrivas till disk.
+T}
+
+wops WOPS T{
+Antal skrivnings\-I/O\-åtgärder — det vill säga, systemanrop såsom
+\fBwrite\fP(2) och \fBpwrite\fP(2).
+T}
+
+.TE
+.SH MILJÖVARIABLER
+Följande miljövariabler kan påverka \fBps\fP:
+.TP 3
+\fBCOLUMNS\fP
+Åsidosätt standardvisningsbredden.
+.TP
+\fBLINES\fP
+Åsidosätt standardvisningshöjden.
+.TP
+\fBPS_PERSONALITY\fP
+Sätt till en av posix, old, linux, bsd, sun, digital …\& (se avsnittet
+\fBPERSONLIGHET\fP nedan).
+.TP
+\fBCMD_ENV\fP
+Sätt till en av posix, old, linux, bsd, sun, digital …\& (se avsnittet
+\fBPERSONLIGHET\fP nedan).
+.TP
+\fBI_WANT_A_BROKEN_PS\fP
+Framtvinga fåråldrad tolkning av kommandoraden.
+.TP
+\fBLC_TIME\fP
+Datumformat.
+.TP
+\fBLIBPROC_HIDE_KERNEL\fP
+Sätt detta till vilket värde so helst för att dölja kärntrådar som normalt
+visas med flaggan \fB\-e\fP. Detta är likvärdigt med att välja \fB\-\-ppid 2 \-p 2 \-\-deselect\fP istället. Fungerar även i BSD\-läge.
+.TP
+\fBPS_COLORS\fP
+Stödjs inte för närvarande.
+.TP
+\fBPS_FORMAT\fP
+Åsidosättande av standardutmatningsformat. Man kan sätta detta till en
+formatsträng av typen som används till flaggan \fB\-o\fP. Värdena \fBDevSysV\fP och
+\fBDefBSD\fP är särskilt användbara.
+.TP
+\fBPOSIXLY_CORRECT\fP
+Sök inte ursäkter för att ignorera dÃ¥liga â€funktionerâ€.
+.TP
+\fBPOSIX2\fP
+När satt till â€onâ€, fungerar som \fBPOSIXLY_CORRECT\fP.
+.TP
+\fBUNIX95\fP
+Sök inte ursäkter för att ignorera dÃ¥liga â€funktionerâ€.
+.TP
+\fB_XPG\fP
+Annulera icke\-standardbettendet hos \fBCMD_ENV\fP=\fIirix\fP.
+.PP
+I allmänhet är det en dålig idé att sätta dessa variabler. Enda undantaget
+är \fBCMD_ENV\fP eller \fBPS_PERSONALITY\fP, vilket kan sättas till Linux för
+normala system. Utan den inställningen följer \fBps\fP de oanvändbara och
+dåliga delarna av standarden Unix98.
+.SH PERSONLIGHET
+.TS
+l l.
+390 som \fBps\fP på OS/390 Open Edition
+aix som \fBps\fP på AIX
+bsd som \fBps\fP på FreeBSD (helt ostandardiserat)
+compaq som \fBps\fP på Digital Unix
+debian som den gamla \fBps\fP på Debian
+digital som \fBps\fP på Tru64 (före detta Digital Unix, före detta OSF/1)
+gnu som den gamla \fBps\fP på Debian
+hp som \fBps\fP på HP\-UX
+hpux som \fBps\fP på HP\-UX
+irix som \fBps\fP på Irix
+linux ***** \fBrekommenderas\fP *****
+old som den ursprungliga \fBps\fP på Linux (helt ostandardiserat)
+os390 som \fBps\fP på OS/390 Open Edition
+posix standard
+s390 som \fBps\fP på OS/390 Open Edition
+sco som \fBps\fP på SCO
+sgi som \fBps\fP på Irix
+solaris2 som \fBps\fP på Solaris 2+ (SunOS 5)
+sunos4 som \fBps\fP på SunOS 4 (Solaris 1) (helt ostandardiserat)
+svr4 standard
+sysv standard
+tru64 som \fBps\fP på Tru64 (före detta Digital Unix, före detta OSF/1)
+unix standard
+unix95 standard
+unix98 standard
+.TE
+.SH FEL
+Fälten \fBbsdstart\fP och \fBstart\fP kommer endast visa det förkortade
+månadsnamnet på engelska. Fältet \fBlstart\fP och \fBstime\fP kommer visa det
+förkortade månadsnamnet i den konfigurerade lokalen men kan överskrida
+kolumnbredden på grund av olika längder för förkortade månads\- och dagnamn
+mellan språk.
+.PP
+.SH "SE ÄVEN"
+\fBpgrep\fP(1), \fBpstree\fP(1), \fBtop\fP(1), \fBstrftime\fP(3), \fBproc\fP(5).
+.SH STANDARDER
+Denna \fBps\fP följer:
+.PP
+.PD 0
+.IP 1 4
+Version 2 av Single Unix Specification
+.IP 2 4
+Technical Standard Base Specifications, utgåva 6 från Open Group
+.IP 3 4
+IEEE Std 1003.1, utgåva 2004
+.IP 4 4
+X/Open System Interfaces Extension [UP\ XSI]
+.IP 5 4
+ISO/IEC 9945:2003
+.PD
+.SH UPPHOVSMAN
+\fBps\fP skrevs ursprungligen av
+.MT lankeste@\:fwi.\:uva.\:nl
+Branko
+Lankester
+.ME
+.
+.MT johnsonm@\:redhat.\:com
+Michael K. Johnson
+.ME
+skrev om det signifikant till att använda proc\-filsystemet och ändrade en
+del saker på vägen.
+.MT mjshield@\:nyx.\:cs.\:du.\:edu
+Michael Shields
+.ME
+lade till funktionen pid\-lista.
+.MT cblake@\:bbn.\:com
+Charles
+Blake
+.ME
+lade till flernivåsortering, bibliotek i dirent\-stil, databasen
+med avbildningar från namn till nummer, den ungefärliga binära sökningen
+direkt i System.map och gjorde många kod\- och
+dokumentationsstädningar. David Mossberger\-Tang skrev det generiska stödet
+av BFD för psupdate.
+.MT albert@\:users.\:sf.\:net
+Albert Cahalan
+.ME
+skrev om ps med fullständigt stöd för Unix98 och BSD, tillsammans med några
+fula hack för föråldrad och främmande syntax.
+.PP
+Skicka felrapporter till
+.MT procps@freelists.org
+.ME .
+Ingen
+prenumeration krävs eller föreslås.
+Skicka synpunkter på översättningen till
+.MT tp\-sv@listor.tp\-sv.se
+.ME
diff --git a/po-man/sv/pwdx.1 b/po-man/sv/pwdx.1
new file mode 100644
index 0000000..e54ff40
--- /dev/null
+++ b/po-man/sv/pwdx.1
@@ -0,0 +1,45 @@
+.\"
+.\" Copyright (c) 2020-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2004 Nicholas Miel.
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PWDX 1 2020\-06\-04 procps\-ng Användarkommandon
+.SH NAMN
+pwdx — rapportera nuvarande arbetskatalog för en process
+.SH SYNOPSIS
+\fBpwdx\fP [\fIflaggor\fP] \fIpid\fP […]
+.SH FLAGGOR
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Skriv ut versionsinformation och avsluta.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Skriv ut en hjälpskärm och avsluta.
+.SH "SE ÄVEN"
+\fBps\fP(1), \fBpgrep\fP(1)
+.SH STANDARDER
+Inga standarder är tillämpliga, men \fBpwdx\fP liknar väldigt mycket ett
+SunOS\-kommando.
+.SH UPPHOVSMAN
+.UR nmiell@gmail.com
+Nicholas Miell
+.UE
+skrev pwdx 2004.
+.SH "RAPPORTERA FEL"
+Skicka felrapporter till
+.UR procps@freelists.org
+.UE
+Skicka synpunkter på översättningen till
+.UR tp\-sv@listor.tp\-sv.se
+.UE
diff --git a/po-man/sv/skill.1 b/po-man/sv/skill.1
new file mode 100644
index 0000000..3e777f9
--- /dev/null
+++ b/po-man/sv/skill.1
@@ -0,0 +1,119 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2006 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SKILL 1 2023\-08\-19 procps\-ng Användarkommandon
+.SH NAMN
+skill, snice — skicka en signal eller rapportera processtatus
+.SH SYNOPSIS
+\fBskill\fP [\fIsignal\fP] [\fIflaggor\fP] \fIuttryck\fP
+.br
+\fBsnice\fP [\fIny prioritet\fP] [\fIflaggor\fP] \fIuttryck\fP
+.SH BESKRIVNING
+Dessa verktyg är föråldrade och oportabla. Kommandosyntaxen är dåligt
+definierad. Överväg att använda kommandona \fBkillall\fP, \fBpkill\fP och
+\fBpgrep\fP istället.
+.PP
+Standardsignalen för \fBskill\fP är TERM. Använd \fB\-l\fP eller \fB\-L\fP för att
+lista tillgängliga signaler. Särskilt användbara signaler inkluderar HUP,
+INT, KILL, STOP, CONT och 0. Alternativa signaler kan anges på tre sätt:
+\fB\-9\fP \fB\-SIGKILL\fP \fB\-KILL\fP.
+.PP
+Standardprioriteten för \fBsnice\fP är +4. Prioritetstal går från +20
+(långsammast) till \-20 (snabbast). Negativa prioritetsvärden är begränsade
+till administrativa användare.
+.SH FLAGGOR
+.TP
+\fB\-f\fP,\fB\ \-\-fast\fP
+Snabbt läge. Denna flagga har inte implementerats.
+.TP
+\fB\-i\fP,\fB\ \-\-interactive\fP
+Interaktiv användning. Du kommer få en fråga om att godkänna varje åtgärd.
+.TP
+\fB\-l\fP,\fB\ \-\-list\fP
+Lista alla signalnamn.
+.TP
+\fB\-L\fP,\fB\ \-\-table\fP
+Lista alla signalnamn i en trevlig tabell.
+.TP
+\fB\-n\fP,\fB\ \-\-no\-action\fP
+Ingen åtgärd; utför en simulering av de händelser som skulle ske men gör
+ingen faktisk ändring av systemet.
+.TP
+\fB\-v\fP,\fB\ \-\-verbose\fP
+Utförlig; förklara vad som görs.
+.TP
+\fB\-w\fP,\fB\ \-\-warnings\fP
+Aktivera varningar. Denna flagga har inte implementerats.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Visa hjälptext och avsluta.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Visa versionsinformation.
+.PD
+.SH "FLAGGOR FÖR VAL AV PROCESS"
+Urvalskriterier kan vara: terminal, användare, pid, kommando. Flaggorna
+nedan kan användas för att säkerställa rätt tolkning.
+.TP
+\fB\-t\fP, \fB\-\-tty\fP \fItty\fP
+Nästa uttryck är en terminal (tty eller pty).
+.TP
+\fB\-u\fP, \fB\-\-user\fP \fIanvändare\fP
+Nästa uttryck är ett användarnamn.
+.TP
+\fB\-p\fP, \fB\-\-pid\fP \fIpid\fP
+Nästa uttryck är ett process\-ID\-nummer.
+.TP
+\fB\-c\fP, \fB\-\-command\fP \fIkommando\fP
+Nästa uttryck är ett kommandonamn.
+.TP
+\fB\-\-ns \fP\fIpid\fP
+Matcha processerna som tillhör samma namnrymd som pid.
+.TP
+\fB\-\-nslist \fP\fInr\/\fP,\,\fI…\/\fP
+lista vilka namnrymder som skall beaktas av flaggan \fB\-\-ns\fP. Tillgängliga
+namnrymder: ipc, mnt, net, pid, user, uts.
+.PD
+.SH SIGNALER
+Beteendet hos signaler förklaras i manualsidan \fBsignal\fP(7).
+.SH EXEMPEL
+.TP
+\fBsnice \-c seti \-c crack +7\fP
++Sakta ner kommandona \fBseti\fP och \fBcrack\fP.
+.TP
+\fBskill \-KILL \-t /dev/pts/*\fP
+Döda användare på PTY\-enheter.
+.TP
+\fBskill \-STOP \-u viro \-u lm \-u davem\fP
+Stoppa tre användare.
+.SH "SE ÄVEN"
+\fBkill\fP(1), \fBkill\fP(2), \fBkillall\fP(1), \fBnice\fP(1), \fBpkill\fP(1),
+\fBrenice\fP(1), \fBsignal\fP(7)
+.SH STANDARDER
+Inga standarder är tillämpliga.
+.SH UPPHOVSMAN
+.MT albert@users.sf.net
+Albert Cahalan
+.ME
+skrev skill och snice 1999
+som en ersättning för en ofri version.
+.SH "RAPPORTERA FEL"
+Skicka felrapporter till
+.UR procps@freelists.org
+.UE
+Skicka synpunkter på översättningen till
+.UR tp\-sv@listor.tp\-sv.se
+.UE
diff --git a/po-man/sv/slabtop.1 b/po-man/sv/slabtop.1
new file mode 100644
index 0000000..b385879
--- /dev/null
+++ b/po-man/sv/slabtop.1
@@ -0,0 +1,113 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2004-2006 Albert Cahalan
+.\" Copyright (C) 2003 Chris Rivera
+.\"
+.\" This program is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU Lesser General Public License as
+.\" published by the Free Software Foundation; either version 2.1 of the
+.\" License, or (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SLABTOP 1 2021\-03\-11 procps\-ng Användarkommandon
+.SH NAMN
+slabtop — visa information om kärnans skivcache i realtid
+.SH SYNOPSIS
+\fBslabtop\fP [\fIflaggor\fP]
+.SH BESKRIVNING
+\fBslabtop\fP visar detaljerad information om kärnans skiv\-cache i realtid.
+Det visar en lista över toppskivorna sorterade efter en av de listade
+sorteringskriterierna. Det visar också ett huvud med statistisk information
+om skivnivåer.
+.SH FLAGGOR
+Normalt anrop av \fBslabtop\fP kräver inte några flaggor. Beteendet kan dock
+finjusteras genom att ange en eller flera av följande flaggor:
+.TP
+\fB\-d\fP, \fB\-\-delay\fP=\fIN\fP
+Uppdatera presentationen var \fIn\fP:e sekund. Som standard uppdaterar
+\fBslabtop\fP presentationen var tredje sekund. För att avsluta programmet,
+skriv \fBq\fP. Detta kan inte kombineras med flaggan \fB\-o\fP.
+.TP
+\fB\-s\fP, \fB\-\-sort\fP=\fIS\fP
+Sortera efter \fIS\fP, där \fIS\fP är ett av sorteringskriterierna.
+.TP
+\fB\-o\fP, \fB\-\-once\fP
+Visa utdata en gång och avsluta sedan.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Visa versionsinformation och avsluta.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Visa användningsinformation och avsluta.
+.SH SORTERINGSKRITERIER
+Följande är giltiga sorteringskriterier som används för att sortera de
+enskilda skiv\-cacharna och därigenom avgöra vilka â€toppâ€\-skiv\-cacharna som
+visas skall vara. Standardsorteringskriteriet är att sortera efter antal
+objekt (â€oâ€).
+.PP
+Sorteringskriteriet kan även ändras medan \fBslabtop\fP kör genom att trycka
+den tillhörande bokstaven.
+.TS
+l l l.
+\fBtecken\fP \fBbeskrivning\fP \fBhuvud\fP
+a antal aktiva objekt AKTIVT
+b objekt per skiva OBJ/SKIVA
+c cachestorlek CACHESTORLEK
+l antal skivor SKIVOR
+v antal aktiva skivor saknas
+n namn NAMN\:
+o antal objekt OBJ
+p sidor per skiva saknas
+s objektstorlek OBJ\-STRL
+u cacheanvändning ANV
+.TE
+.SH KOMMANDON
+\fBslabtop\fP tar emot tangentbordskommandon från användaren under körning.
+Följande stödjs. Vad gäller bokstäver tas både versaler och gemener emot.
+.PP
+Var och en av de giltiga sorteringskriterierna tas också emot, för att ändra
+sorteringsrutinen. Se avsnittet \fBSORTERINGSKRITERIER\fP.
+.TP
+\fB<MELLANSLAG>\fP
+Uppdatera skärmen.
+.TP
+\fBQ\fP
+Avsluta programmet.
+.SH FILER
+.TP
+\fI/proc/slabinfo\fP
+skivinformation
+.SH "SE ÄVEN"
+\fBfree\fP(1), \fBps\fP(1), \fBtop\fP(1), \fBvmstat\fP(8)
+.SH OBSERVERA
+För närvarande kräver \fBslabtop\fP en kärna 2.4 eller senare (specifikt,
+version 1.1 eller senare av \fI/proc/slabinfo\fP). Kärna 2.2 bör stödjas i
+framtiden.
+.PP
+Statistikhuvudet i \fBslabtop\fP följer hur många byte av skivor som används
+och är inte ett mÃ¥tt pÃ¥ fysiskt minne. Fältet â€Slab†i filen
+\fI/proc/meminfo\fP följer information om skivors använda fysiska minne.
+.PP
+Kolumnen \fBCACHE\-STRL\fP är inte precis, det är den övre gränsen på minne som
+används av en specifik slab. När ett system som använder slub (det
+vanligaste fallet) är under högt minnestryck finns det reserver för
+slab\-ordrar, vilket betyder att â€sidor per slab†inte är konstant och kan
+minska.
+.SH UPPHOVSMÄN
+Skrivet av Chris Rivera och Robert Love.
+.PP
+\fBslabtop\fP inspirerades av Martin Blighs perl\-skript \fBvmtop\fP.
+.SH "RAPPORTERA FEL"
+Skicka felrapporter till
+.UR procps@freelists.org
+.UE
+Skicka synpunkter på översättningen till
+.UR tp\-sv@listor.tp\-sv.se
+.UE
diff --git a/po-man/sv/sysctl.8 b/po-man/sv/sysctl.8
new file mode 100644
index 0000000..282d12b
--- /dev/null
+++ b/po-man/sv/sysctl.8
@@ -0,0 +1,180 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2004-2006 Albert Cahalan
+.\" Copyright (c) 1999 George Staikos <staikos@0wned.org>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SYSCTL 8 2023\-08\-19 procps\-ng Systemadministration
+.SH NAMN
+sysctl — konfigurera kärnparametrar under gång
+.SH SYNOPSIS
+\fBsysctl\fP [\fIflaggor\fP] [\fIvariabel\fP[\fB=\fP\fIvärde\fP]] […]
+.br
+\fBsysctl \-p\fP [\fIfil\fP eller \fIreguttr\fP] […]
+.SH BESKRIVNING
+\fBsysctl\fP används för att ändra kärnparametrar under gång. De tillgängliga
+parametrarna är de som listas under \fB/proc/sys/\fP. Procfs krävs för att
+stödja \fBsysctl\fP i Linux. Du kan använda \fBsysctl\fP både för att läsa och
+skriva sysctl\-data.
+.SH PARAMETRAR
+.TP
+\fBvariabel\fP
+Namnet på en nyckel att läsa ifrån. Ett exempel är kernel.ostype.
+Separatorn â€/†godkänns ocksÃ¥ istället för en â€.â€.
+.TP
+\fIvariabel\fP=\fIvärde\fP
+För att sätta en nyckel, använd formen \fIvariabel\fP=\fIvärde\fP där \fIvariabel\fP
+är nyckeln och \fIvärde\fP är värdet att sätta den till. Om värdet innehåller
+citationstecken eller tecken som tolkas av skalet kan du behöva omge värdet
+med citationstecken.
+.TP
+\fB\-n\fP, \fB\-\-values\fP
+Använd denna flagga för att slå av utskrift av nyckelnamnet när värden
+skrivs.
+.TP
+\fB\-e\fP, \fB\-\-ignore\fP
+Använd denna flagga för att ignorera fel för okända nycklar.
+.TP
+\fB\-N\fP, \fB\-\-names\fP
+Använd denna flagga för att bara skriva namnen. Det kan vara användbart med
+skal som har programmerbar komplettering.
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+Använd denna flagga för att inte visa värdena som sätts på standard ut.
+.TP
+\fB\-w\fP, \fB\-\-write\fP
+Tvinga alla argument att vara skrivargument och skriv ett fel om de inte kan
+tolkas på det sättet.
+.TP
+\fB\-p\fP[\fIFIL\fP], \fB\-\-load\fP[=\fIFIL\fP]
+Läs in \fBsysctl\fP\-inställningar från filen som anges eller
+\fI/etc/sysctl.conf\fP om ingen anges. Att ange \- som ett filnamn betyder att
+läsa data från standard in. Användning av denna flagga kommer betyda att
+argument till \fBsysctl\fP är filer, vilka läses i den ordning de
+anges. Filargumentet kan anges som ett reguljärt uttryck.
+.TP
+\fB\-a\fP, \fB\-\-all\fP
+Visa alla värden som för närvarande är tillgängliga.
+.TP
+\fB\-\-deprecated\fP
+Inkludera utgående parametrar i värdelistningen med \fB\-\-all\fP.
+.TP
+\fB\-b\fP, \fB\-\-binary\fP
+Skriv värdet utan nyrad.
+.TP
+\fB\-\-system\fP
+Läs in inställningar från alla systemkonfigurationsfiler. Se avsnittet
+\fBSYSTEMFILSPRECEDENS\fP nedan.
+.TP
+\fB\-r\fP, \fB\-\-pattern\fP \fImönster\fP
+Verkställ endast inställningar som matchar \fImönster\fP. \fIMönstret\fP använder
+syntaxen för utökade reguljära uttryck.
+.TP
+\fB\-A\fP
+Alias för \fB\-a\fP
+.TP
+\fB\-d\fP
+Alias för \fB\-h\fP
+.TP
+\fB\-f\fP
+Alias för \fB\-p\fP
+.TP
+\fB\-X\fP
+Alias för \fB\-a\fP
+.TP
+\fB\-o\fP
+Gör ingenting, finns för kompatibilitet med BSD.
+.TP
+\fB\-x\fP
+Gör ingenting, finns för kompatibilitet med BSD.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Visa hjälptext och avsluta.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Visa versionsinformation och avsluta.
+.SH SYSTEMFILSPRECEDENS
+När man använder flaggan \fB\-\-system\fP kommer \fBsysctl\fP läsa filer från
+kataloger i följande lista i angiven ordning från början till slut. När en
+fil med ett angivet filnamn lästs in kommer eventuella filer med samma namn
+i senare kataloger ingoreras.
+
+/etc/sysctl.d/*.conf
+.br
+/run/sysctl.d/*.conf
+.br
+/usr/local/lib/sysctl.d/*.conf
+.br
+/usr/lib/sysctl.d/*.conf
+.br
+/lib/sysctl.d/*.conf
+.br
+/etc/sysctl.conf
+
+Alla konfigurationsfiler sorteras i lexikografisk ordning, oavsett vilken
+katalog de finns i. Konfigurationsfiler kan antingen ersättas helt (genom
+att ha en ny konfigurationsfil med samma namn i en katalog med högre
+prioritet) eller ersättas delvis (genom att ha en konfigurationsfil som
+ordnas senare).
+.SH EXEMPEL
+/sbin/sysctl \-a
+.br
+/sbin/sysctl \-n kernel.hostname
+.br
+/sbin/sysctl \-w kernel.domainname="example.com"
+.br
+/sbin/sysctl \-p/etc/sysctl.conf
+.br
+/sbin/sysctl \-a \-\-pattern forward
+.br
+/sbin/sysctl \-a \-\-pattern forward$
+.br
+/sbin/sysctl \-a \-\-pattern 'net.ipv4.conf.(eth|wlan)0.arp'
+.br
+/sbin/sysctl \-\-pattern '\[char94]net.ipv6' \-\-system
+.SH "FÖRÅLDRADE PARAMETRAR"
+\fBbase_reachable_time\fP och \fBretrans_time\fP är föråldrade. Kommandot
+\fBsysctl\fP tillåter inte ändring av dessa parametrar. Användare som
+insisterar på att använda föråldrade kärngränssnitt får trycka värdet till
+filsystemet \fB/proc\fP på annat sätt. Till exempel:
+.PP
+echo 256 > /proc/sys/net/ipv6/neigh/eth0/base_reachable_time
+.SH FILER
+\fI/proc/sys\fP
+.br
+\fI/etc/sysctl.d/*.conf\fP
+.br
+\fI/run/sysctl.d/*.conf\fP
+.br
+\fI/usr/local/lib/sysctl.d/*.conf\fP
+.br
+\fI/usr/lib/sysctl.d/*.conf\fP
+.br
+\fI/lib/sysctl.d/*.conf\fP
+.br
+\fI/etc/sysctl.conf\fP
+.SH "SE ÄVEN"
+\fBproc\fP(5), \fBsysctl.conf\fP(5), \fBregex\fP(7)
+.SH UPPHOVSMAN
+.UR staikos@0wned.org
+George Staikos
+.UE
+.SH "RAPPORTERA FEL"
+Skicka felrapporter till
+.UR procps@freelists.org
+.UE
+Skicka synpunkter på översättningen till
+.UR tp\-sv@listor.tp\-sv.se
+.UE
diff --git a/po-man/sv/sysctl.conf.5 b/po-man/sv/sysctl.conf.5
new file mode 100644
index 0000000..593c30f
--- /dev/null
+++ b/po-man/sv/sysctl.conf.5
@@ -0,0 +1,92 @@
+.\"
+.\" Copyright (c) 2016-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2019-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1999 George Staikos <staikos@0wned.org>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SYSCTL.CONF 5 2021\-09\-15 procps\-ng Filformat
+.SH NAMN
+sysctl.conf — förinställnings\-/konfigurationsfil till sysctl
+.SH BESKRIVNING
+\fBsysctl.conf\fP är en enkel fil som innehåller sysctl\-värden att läsas in och
+sättas av \fBsysctl\fP. Syntaxen är som följer:
+.RS
+.sp
+.nf
+.ne 7
+# kommentar
+; kommentar
+
+symbol = värde
+.fi
+.RE
+.PP
+Observera att tomma rader ignoreras, och blanktecken före och efter en
+symbol eller ett värde ignoreras, även om ett värde kan innehålla
+blanktecken inuti. Rader som börjar med en \fB#\fP eller ett \fB;\fP betraktas
+som kommentarer och ignoreras.
+
+Om en rad börjar med ett ensamt \- kommer alla misslyckade försök att sätta
+värdet ignoreras.
+
+.SH OBSERVERA
+Eftersom filen \fB/etc/sysctl.conf\fP används för att åsidosätta standardvärden
+på kärnparametrar är endast ett litet antal parametrar fördefinierade i
+filen. Använd \fI/sbin/sysctl\ \-a\fP eller följ \fBsysctl\fP(8) för att lista
+alla möjliga parametrar. Beskrivningen av enskilda parametrar finns i
+kärnans dokumentation.
+
+Maximal radlängt som stöds för värdet är 4096 tecken på grund av en
+begränsning hos \fI/proc\fP\-poster i Linuxkärnan.
+.SH EXEMPEL
+.RS
+.sp
+.nf
+.ne 7
+# sysctl.conf\-exempel
+#
+ kernel.domainname = example.com
+; detta värde har ett mellanslag som kommer att skrivas av sysctl!
+ kernel.modprobe = /sbin/mod probe
+.fi
+.RE
+.PP
+.SH FILER
+\fI/etc/sysctl.d/*.conf\fP
+.br
+\fI/run/sysctl.d/*.conf\fP
+.br
+\fI/usr/local/lib/sysctl.d/*.conf\fP
+.br
+\fI/usr/lib/sysctl.d/*.conf\fP
+.br
+\fI/lib/sysctl.d/*.conf\fP
+.br
+\fI/etc/sysctl.conf\fP
+
+Sökvägarna där förinställningsfiler till \fBsysctl\fP normalt finns. Se även
+flaggan \fI\-\-system\fP till \fBsysctl\fP.
+.SH "SE ÄVEN"
+\fBsysctl\fP(8)
+.SH UPPHOVSMAN
+.UR staikos@0wned.org
+George Staikos
+.UE
+.SH "RAPPORTERA FEL"
+Skicka felrapporter till
+.UR procps@freelists.org
+.UE
+Skicka synpunkter på översättningen till
+.UR tp\-sv@listor.tp\-sv.se
+.UE
diff --git a/po-man/sv/tload.1 b/po-man/sv/tload.1
new file mode 100644
index 0000000..f8cbce6
--- /dev/null
+++ b/po-man/sv/tload.1
@@ -0,0 +1,63 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1993 Matt Welsh <mdw@tc.cornell.edu>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH TLOAD 1 2020\-06\-04 procps\-ng Användarkommandon
+.SH NAMN
+tload — grafisk representation av systemets genomsnittslast
+.SH SYNOPSIS
+\fBtload\fP [\fIflaggor\fP] [\fItty\fP]
+.SH BESKRIVNING
+\fBtload\fP skriver ut en graf över systemets aktuella genomsnittslast på den
+angivna \fItty\fPn (eller \fBtload\fP\-processens tty om ingen anges).
+.SH FLAGGOR
+.TP
+\fB\-s\fP, \fB\-\-scale\fP \fItal\fP
+Flaggan scale gör att en vertikal skala kan anges för visning (i antal
+tecken mellan steg i grafen); alltså representerar ett mindre värde en
+större skala och vice versa.
+.TP
+\fB\-d\fP, \fB\-\-delay\fP \fIsekunder\fP
+Fördröjningen anger väntetiden mellan uppdateringar av grafen i \fIsekunder\fP.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Visa denna hjälptext.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Visa versionsinformation och avsluta.
+.PP
+.SH FILER
+\fI/proc/loadavg\fP information om genomsnittslast
+.SH "SE ÄVEN"
+\fBps\fP(1), \fBtop\fP(1), \fBuptime\fP(1), \fBw\fP(1)
+.SH FEL
+Flaggan \fB\-d\fP\fI fördröjning\fP anger tidsargumentet för ett anrop av
+\fBalarm\fP(2); om \-d 0 anges är larmet satt till 0, vilket aldrig kommer
+skicka någon \fBSIGALRM\fP och uppdatera visningen.
+.SH UPPHOVSMÄN
+Branko Lankester,
+.UR david@\:ods.\:com
+David Engel
+.UE , och
+.UR johnsonm@\:redhat.\:com
+Michael K. Johnson
+.UE .
+.SH "RAPPORTERA FEL"
+Skicka felrapporter till
+.UR procps@freelists.org
+.UE
+Skicka synpunkter på översättningen till
+.UR tp\-sv@listor.tp\-sv.se
+.UE
diff --git a/po-man/sv/top.1 b/po-man/sv/top.1
new file mode 100644
index 0000000..9481cd2
--- /dev/null
+++ b/po-man/sv/top.1
@@ -0,0 +1,2752 @@
+.ig
+. manual page for NEW and IMPROVED linux top
+.
+. Copyright (c) 2002-2023 Jim Warner <james.warner@comcast.net
+.
+. This file may be copied under the terms of the GNU Public License.
+..
+.\" Setup ////////////////////////////////////////////////////////////////
+.\" Commonly used strings (for consistency) ----------
+.\" - our em-dashes
+.ds Em \ —\
+.ds EM \fB\ —\ \fP
+.\" - our program name (makes great grammar)
+.ds We top
+.ds WE \fBtop\fP
+.\" - other misc strs for consistent usage
+.ds F \fIAv\fP
+.ds O \fIPÃ¥\fP
+.
+.ds AK asterisk (â€*â€)
+.ds AM alternativt visningsläge
+.ds AS extra lagring
+.ds CF konfigurationsfil
+.ds CG â€aktuell†fönster\-/fältgrupp
+.ds CI interaktivt kommando
+.ds CO kommandoradsflagga
+.ds CT kommandoflagga
+.ds CW â€aktuellt†fönster
+.ds FG fältgrupp
+.ds FM helskärmsläge
+.ds KA piltangent
+.ds KS rullningstangent
+.ds MP fysiskt minne
+.ds MS växlingsfil
+.ds MV virtuellt minne
+.ds NT \fBObs\fP:
+.ds PU CPU
+.ds Pu cpu
+.ds SA sammanfattningsområde
+.ds TA uppgiftsområde
+.ds TD uppgiftsvisning
+.ds TT \fBprocesser\fP eller \fBtrådar\fP
+.ds TW uppgiftsfönster
+.\" Reference to the various widths/sizes ------------
+.\" - the max screen width limit
+.ds WX 512
+.\" - the header width w/ all fields
+.ds WF ungefär 250
+.\" - pid monitoring limit
+.\" Xref's that depend on/mention other stuff --------
+.ds Xa se
+.ds XC Se
+.ds Xc se
+.ds XT Se avsnittet
+.ds Xt se avsnittet
+.ds XX Se â€Ã–VERSIKT, Linux minnestyper†för ytterligare detaljer
+.ds ZX Att komma åt smaps\-värden är 10× dyrare än annan minnesstatistik och data för andra användare kräver root\-privilegier
+.
+.\" Document /////////////////////////////////////////////////////////////
+.\" ----------------------------------------------------------------------
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH TOP 1 "Augusti 2023" procps\-ng Användarkommandon
+.\" ----------------------------------------------------------------------
+.nh
+
+.\" ----------------------------------------------------------------------
+.SH NAMN
+.\" ----------------------------------------------------------------------
+top — visa Linuxprocesser
+
+.\" ----------------------------------------------------------------------
+.SH SYNOPSIS
+.\" ----------------------------------------------------------------------
+\*(WE [flaggor]
+
+.\" ----------------------------------------------------------------------
+.SH BESKRIVNING
+.\" ----------------------------------------------------------------------
+Programmet \*(WE visar en dynamisk vy av det körande systemet i realtid. Det
+kan visa sammanfattande information om \fBsystemet\fP liksom en lista över
+\*(TT som för närvarande hanteras av Linuxkärnan. Typerna av sammanfattande
+systeminformation som visas och typerna, ordningen och storleken på
+informationen som visas för processer är användarkonfigurerbart och den
+konfigurationen kan bevaras mellan omstarter.
+
+Programmet ger ett begränsat interaktivt gränssnitt för processhantering
+såväl som ett mycket mer omfattande gränssnitt för personlig konfiguration
+\*(Em omfattande dess funktion i alla avseenden. Och medan \*(WE rereras
+genomgående i detta dokument står det dig fritt att kalla programmet vad du
+vill. Det nya namnet, möjligen ett alias, kan sedan avspeglas i \*(Wes
+fönster och anvädas när man läser och skriver en \*(CF.
+
+.\" ----------------------------------------------------------------------
+.SH ÖVERSIKT
+.\" ----------------------------------------------------------------------
+.\" ......................................................................
+.SS Dokumentation
+.\" ----------------------------------------------------------------------
+Återstående innehållsförteckning
+
+.nf
+ ÖVERSIKT
+ Funktion
+ Linux minnestyper
+ 1. KOMMANDORADSflaggor
+ 2. SAMMANFATTNINGSvisning
+ a. UPPETID och LASTgenomsnitt
+ b. UPPGIFTER och CPU\-tillstånd
+ c. MINNESanvändning
+ 3. FÄLT\-/Kolumnvisning
+ a. BESKRIVNINGAR av fält
+ b. HANTERING av fält
+ 4. INTERAKTIVA kommandon
+ a. GLOBALA kommandon
+ b. SAMMANFATTNINGSOMRÃ…DETS kommandon
+ c. UPPGIFTSOMRÃ…DETS kommandon
+ 1. Utseende
+ 2. Innehåll
+ 3. Storlek
+ 4. Sortering
+ d. FÄRGavbildning
+ 5. ALTERNATIVA SKÄRMARS utseende
+ a. FÖNSTERöversikt
+ b. KOMMANDON för fönster
+ c. RULLA ett fönster
+ d. SÖKA i ett fönster
+ e. FILTRERA i ett fönster
+ 6. FILER
+ a. PERSONLIG konfigurationfil
+ b. LÄGGA TILL INSPEKTIONSposter
+ c. SYSTEMkonfigurtionsfil
+ d. SYSTEMbegränsningsfil
+ 7. MILJÖVARIABLER
+ 8. DUMMA TRICK\-exempel
+ a. Kärnmagi
+ b. Studsande fönster
+ c. Den stora fågelns fönster
+ d. Den gamla förväxlingen
+ 9. FEL, 10. SE även
+.fi
+
+.\" ......................................................................
+.SS Funktion
+.\" ----------------------------------------------------------------------
+När \*(We kör är de två viktigaste tangenterna hjälptagenten (h eller ?) och
+avslutningstangenten (â€qâ€). Alternativt kan du helt enkelt använda den
+traditionella avbrottstangenten (^C) när du är klar.
+
+När det startas för första gången kommer du få se dessa traditionella
+elementen på hvudskärmen i \*(We: 1) sammanfattningsområde; 2)
+fält\-/kolumnhuvud; 3) uppgiftsområde. Var och en av dessa kommer utforskas i
+avsnitten som följer nedan. Det finns även en inmatnings\-/meddelanderad
+mellan sammanfattnigsområdet och kolumhuvudet som inte behöver någon
+ytterligare förklaring.
+
+Huvudskärmen för \*(We är \fIi allmänhet\fP väl anpassningsbar till ändringar
+av terminalens dimensioner under X\-Windows. Andra skärmar hos \*(We kan vara
+det i mindre utsträckning, särskilt de med statisk text. Det beror dock i
+slutänden på just din fönsterhanterare och terminalemulator. Det kan finnas
+tillfällen när deras vy av terminalstorleken och det aktuella innehållet
+skiljer från \*(Wes vy, vilket alltid baseras på operativsystemanrop.
+
+Efter en storleksändringsåtgärd, om en \*(We\-skärm blir trasig, förefaller
+ofullständig eller i oordning kommer att helt enkelt skriva något harmlöst
+som ett interpunktionstecken eller markörrörelsetangent vanligen att
+återställa den. I extrema fall kommer följande sekvens nästan säkert göra
+det:
+.nf
+ \fItgt/kmd syfte \fP
+ ^Z \fBgör uppehåll för\fP \*(We
+ fg \fBÃ¥teruppta\fP \*(We
+ <Vänster> framtvinga om skärm\fBomritning\fP (om nödvändigt)
+.fi
+
+Men om skärmen fortfarande är trasig är det ett steg till du kan
+prova. Infoga detta kommando efter att ha gjort uppehåll i \*(We men innan
+den återupptas.
+.nf
+ \fItgt/kmd syfte\fP
+ reset återställ dina \fBterminalinställningar\fP
+.fi
+
+\*(NT bredden på \*(Wes skärm kommer begränsas till \*(WX positioner. Att
+visa alla fälten kräver \*(WF tecken. Återstående skärmbredd allokeras
+vanligen till de variabla kolumnbredder som för närvarande är
+synliga. Kolumner med variabel bredd, såsom KOMMANDO finns noterade i
+avsnitt 3a. BESKRIVNING av fält. Faktiskt utskriftsbredd kan även påverkas
+av flaggan \-w vilken diskuteras i avsnitt 1. KOMMANDORADSflaggor.
+
+Slutligen kräver vissa av \*(Wes skärmar eller funktioner användningen av
+markörförflyttningstangeter som standard\*(KAerna plus tangenterna Home,
+End, PgUp och PgDn. Om din terminal eller emulator inte tillhandahåller
+dessa tangenter är följande kombinationer godkända som alternativ:
+.nf
+ \fItgt likvärdig tangent\fP
+ Vänster alt +\fB h \fP
+ Ned alt +\fB j \fP
+ Upp alt +\fB k \fP
+ Höger alt +\fB l \fP
+ Home alt + ctrl +\fB h \fP
+ PgDn alt + ctrl +\fB j \fP
+ PgUp alt + ctrl +\fB k \fP
+ End alt + ctrl +\fB l \fP
+.fi
+
+Piltangenterna \fBupp\fP och \fBned\fP har speciell betydelse när en radinatning
+avslutad med tangenten <Enter> efterfrågas. Dessa tangenter, eller
+deras alias, kan användas för att tidigare inmatningsrader vilka sedan kan
+redigeras och matas in igen. Det finns fyra ytterligare tangenter
+tillgängliga med radorienterad inmatning.
+.nf
+ \fItgt speciell betydelse\fP
+ Upp hämta \fBtidigare\fP strängar för omredigering
+ Ned hämta \fBnyare\fP strängar eller \fBradera\fP hela raden
+ Insert växla mellan lägena \fBinfoga\fP och \fBskriv över\fP
+ Delete tecknet \fBtas bort\fP vid markören, övriga flyttas till vänster
+ Home hoppa till \fBbörjan\fP av inmatningsraden
+ End hoppa till \fBslutet\fP av inmatningsraden
+.fi
+
+.\" ......................................................................
+.SS "Linux minnestyper"
+.\" ----------------------------------------------------------------------
+För våra syften finns det tre sorters minne, och en är valfri. Den första är
+\*(MP, en begränsad resurs där kod och data måste finnas när det körs eller
+refereras. Nästa är den valfria \*(MSen där ändrat (smutsigt) minne kan
+sparas och senare hämtas tillbaka ifall för mycket efterfrågan finns på
+\*(MP. Slutligen har vi \*(MV, en nästan obegränsad resurs som uppfyller
+följande mål:
+
+.nf
+ 1. abstraktion, från från det fysiska minnets adresser/begränsningar
+ 2. isolering, varje process i en separat minnesrymd
+ 3. delning, en viss mappning kan uppfylla flera behov
+ 4. flexibilitet, tilldela en virtuell minnesadress till en fil
+.fi
+
+Oavsett vilken av dessa former minnet kan ta hanteras alla som sidor
+(typiskt 4096 byte) men uttrycks som standard i \*(We som KiB
+(kibibyte). Minnet som diskuteras under avsnittet â€2c. MINNESanvändningâ€
+handlar om \*(MP och \*(MS för systemet som en helhet. Minnet som gås igenom
+i avsnittet â€3. FÄLT\-/Kolumnvisning†omfattar alla tre minnestyperna, men
+för enskilda processer.
+
+För varje sådan process är varje minnessida begränsat till en vis kvadrant
+från tabellen nedan. Både \*(MP och \*(MV kan inkludera vilken som helst av
+de fyra, medan \*(MSen endast inkluderar nr. 1 till 3. Minnet i kvadrant
+nr. 4 fungerar när det ändras som sin egen dedikerade \*(MS.
+
+.nf
+ \fBPrivat\fP | \fBDelat\fP
+ \fB1\fP | \fB2\fP
+ \fBAnonymt\fP . stack |
+ . malloc() |
+ . brk()/sbrk() | . POSIX shm*
+ . mmap(PRIVATE, ANON) | . mmap(SHARED, ANON)
+ \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
+ . mmap(PRIVATE, fd) | . mmap(SHARED, fd)
+ \fBFilstött\fP . pgm/delade bibl |
+ \fB3\fP | \fB4\fP
+.fi
+
+Följande kan hjälpa till med att tolka minnesvärden som visas på processnivå
+som skalbara kolumner och diskuteras under avsnitt â€3a. BESKRIVNING av
+fältâ€.
+
+.nf
+ %MIN \- helt enkelt RES divederat med totalt \*(MP
+ KOD \- â€pgmâ€\-delen av kvadrant \fB3\fP
+ DATA \- hela kvadrant \fB1\fP del av VIRT plus alla
+ explicit mmap:ade filstödda sidor i kvadrant \fB3\fP
+ RES \- vad som helst som tar upp \*(MP vilket, med början med
+ Linux\-4.5, är summan ad de följande tre fälten:
+ RSan \- kvadrant \fB1\fP\-sidor, vilket inkluderar alla
+ tidigare \fB3\fP\-sidor om de ändras
+ RSfb \- kvadrant \fB3\fP\- och kvadrant \fB4\fP\-sidor
+ RSdl \- kvadrant \fB2\fP\-sidor
+ RSlå \- delmängden av RES som inte kan växlas ut (oavsett kvadrant)
+ DELT \- delmängd av RES (exkluderar \fB1\fP, inkluderar hela \fB2\fP & \fB4\fP, delvis \fB3\fP)
+ VÄXL \- potentiellt vilken kvadrant som helst utom \fB4\fP
+ ANV \- helt enkelt summan av RES och SWAP
+ VIRT \- allt använd och/eller reserverat (oavsett kvadrant)
+.fi
+
+\*(NT även om programavbilder och delade bibliotek betraktas som \fIprivata\fP
+hos en process kommer de räknas som \fIdelade\fP (DELT) av kärnan.
+
+.\" ----------------------------------------------------------------------
+.SH "1. KOMMANDORADSflaggor"
+.\" ----------------------------------------------------------------------
+Obligatoriska\fI argument\fP till långa flaggor är obligatoriska även för korta
+flaggor.
+
+Även om det inte krävs kan likhetstecknet med endera formen av flaggan och
+blanktecken före och/eller efter â€=†är tillÃ¥tet.
+
+.TP 3
+\-\fBb\fP, \fB\-\-batch\fP
+Startat \*(We i satsvis läge, vilket kan vara användbart för att skicka
+utdata från \*(We till andra program eller till en fil. I detta läge kommer
+\*(We inte acceptera indata och kör tills iterationsgränsen du satt med
+\*(COn â€\-n†eller tills den dödas.
+
+.TP 3
+\-\fBc\fP, \fB\-\-cmdline\-toggle\fP
+Startar \*(We med det senast sparade â€câ€\-tillstÃ¥ndet omvänt. AlltsÃ¥, om
+\*(We visade kommandorader kommer nu det fältet visa programnamn, och vice
+versa. \*(XC det interaktiva kommandot â€c†för ytterligare information.
+
+.TP 3
+\-\fBd\fP, \fB\-\-delay\fP = \fISEK\fP [\fI.TIONDELAR\fP]
+Anger fördröjningen mellan skärmuppdateringar, och åsidosätter motsvarande
+värde i den personliga \*(CFen eller uppstartsstandardvärdet. Senare kan
+detta ändras med de interaktiva kommandona â€d†eller â€sâ€.
+
+Delar av sekunder respekteras, men ett negativt tal är inte tillåtet. I
+vilket fall som helst är dock sådana ändringar otillåtna om \*(We kör i
+Säkert läge, utom för root (om inte \*(COn â€s†användes). För ytterligare
+information om Säkert läge, \*(Xt 6d. SYSTEMbegränsningsfil.
+
+.TP 3
+\-\fBE\fP, \fB\-\-scale\-summary\-mem\fP = \fIk\fP | \fIm\fP | \fIg\fP | \fIt\fP | \fIp\fP | \fIe\fP
+Instruerar \*(WE att framtvinga \*(SAminne att skalas som:
+.nf
+ k — kibibyte
+ m — mebibyte
+ g — gibibyte
+ t — tebibyte
+ p — pebibyte
+ e — exbibyte
+.fi
+
+Detta kan senare ändras med \*(CTn â€Eâ€.
+
+.TP 3
+\-\fBe\fP, \fB\-\-scale\-task\-mem\fP = \fIk\fP | \fIm\fP | \fIg\fP | \fIt\fP | \fIp\fP
+Instruerar \*(We att framtvinga \*(TAsminne att skalas som:
+.nf
+ k — kibibyte
+ m — mebibyte
+ g — gibibyte
+ t — tebibyte
+ p — pebibyte
+.fi
+
+Detta kan senare ändras med \*(CTn â€eâ€.
+
+.TP 3
+\-\fBH\fP, \fB\-\-threads\-show\fP
+Instruerar \*(We att visa enskilda trådar. Utan denna \*(CO visas en
+sammanfattning av alla trådar i varje process. Detta kan senare ändras med
+det interaktiva kommandot â€Hâ€.
+
+.TP 3
+\-\fBh\fP, \fB\-\-help\fP
+Visa användningshjälptext, avsluta sedan.
+
+.TP 3
+\-\fBi\fP, \fB\-\-idle\-toggle\fP
+Startar \*(We med det senast sparade â€iâ€\-tillstÃ¥ndet omvänt. När denna växel
+är \*F kommer uppgifter som inte har använt någon \*(PU sedan den senaste
+uppdateringen inte visas. För ytterligare information om denna växel \*(Xt
+4c. UPPGIFTOMRÃ…DETS kommandon, STORLEK.
+
+.TP 3
+\-\fBn\fP, \fB\-\-iterations\fP = \fIANTAL\fP
+Anger det maximala antalet iterationer, eller ramar, \*(We skall producera
+före det avslutar.
+
+.TP 3
+\-\fBO\fP, \fB\-\-list\-fields\fP
+Denna flagga fungerar som en slags hjälp för flaggan \-o som visas nedan. Den
+gör att \*(We skriver ut vart och ett av de tillgängliga fältnamnen på var
+sin rad, sedan avsluta. Sådana namn är föremål för översättningar enligt NLS
+(National Language Support, stöd för nationella språk).
+
+.TP 3
+\-\fBo\fP, \fB\-\-sort\-override\fP = \fIFÄLTNAMN\fP
+Anger namnet på fältet enligt vilket uppgifter skall sorteras, oavsett vad
+somavspeglas i konfigurationsfilen. Man kan lägga till ett â€+†eller â€\-â€
+till filnamnet för att även åsidosätta sorteringsordningen. Ett inledande
+â€+†kommer tvinga sortering högt till lÃ¥gt, medan ett â€\-†ser till att
+ordningen blir lågt till högt.
+
+Denna flagga finns primärt för att stödja automatisk/skriptad satsvis drift.
+
+.TP 3
+\-\fBp\fP, \fB\-\-pid\fP = \fIPID\-LISTA\fP (som: \fI1\fP,\fI2\fP,\fI3\fP, … eller \-p\fI1\fP \-p\fI2\fP \-p\fI3\fP …)
+Övervaka endast processer med angivna process\-ID:n. Dock, när det kombineras
+med trÃ¥dläge (â€Hâ€) kommer även alla processer i trÃ¥dgruppen (\*(Xa TGID) för
+varje övervakad PID att visas.
+
+Denna flagga gan ges upp till 20 gånger, eller så kan man ge en
+kommaavgränsad lista med upp till 20 pid:ar. Att kombinera ihop båda
+metoderna är tillåtet.
+
+Ett pid\-värde på noll kommer tolkas som process\-id:t på programmet \*(We
+självt när det har startat.
+
+Detta är endast en \*(CO och skulle du vilja återgå till normal drift är det
+nödvändigt att avsluta och starta om \*(We \*(Em ge endast något av dessa
+interaktiva kommandon: â€=â€, â€u†eller â€Uâ€.
+
+Kommandoradsflaggorna â€pâ€, â€u†och â€U†är ömsesidigt uteslutande.
+
+.TP 3
+\-\fBS\fP, \fB\-\-accum\-time\-toggle\fP
+Startar \*(We med det senast sparade â€Sâ€\-tillstÃ¥ndet omvänt. När ackumulerad
+tid\-läge är \*O listas varje process med \*(Pu\-tiden som den och dess döda
+barn har använt. \*(XC det interaktiva kommandot â€S†för ytterligare
+information om detta läge.
+
+.TP 3
+\-\fBs\fP, \fB\-\-secure\-mode\fP
+Startar \*(We med säkert läge påtvingat, även för root. Detta läge är mycket
+bättre styrt genom en system\*(CF (\*(Xt 6. FILER).
+
+.TP 3
+\-\fBU\fP, \fB\-\-filter\-any\-user\fP = \fIANVÄNDARE\fP (som: \fInummer\fP eller \fInamn\fP)
+Visa endast processer med ett användar\-id eller användarnamn som matchar det
+givna. Denna flagga mot \fIalla\fP användare (\fIverklig\fP, \fIverksam\fP, \fIsparad\fP
+eller \fIfilsystem\fP).
+
+Att lägga till ett utropstecken (â€!â€) till användar\-id:t eller \-namnet
+instruerar \*(We att visa endast processer med användare som inte stämmer
+med den angivna.
+
+Kommandoradsflaggorna â€pâ€, â€U†och â€u†är ömsesidigt uteslutande.
+
+.TP 3
+\-\fBu\fP, \fB\-\-filter\-only\-euser\fP = \fIANVÄNDARE\fP (som: \fInummer\fP eller \fInamn\fP)
+Visa endast processer med ett användar\-id eller användarnamn som som matchar
+den givna. Denna flagga matchar endast mot det \fIverksamma\fP användar\-id:t.
+
+Att lägga till ett utropstecken (â€!â€) till användar\-id:t eller \-namnet
+instruerar \*(We att visa endast processer med användare som inte stämmer
+med den angivna.
+
+Kommandoradsflaggorna â€pâ€, â€U†och â€u†är ömsesidigt uteslutande.
+
+.TP 3
+\-\fBV\fP, \fB\-\-version\fP
+Visa versionsinformation, avsluta sedan.
+
+.TP 3
+\-\fBw\fP, \fB\-\-width\fP [=\fIKOLUMNER\fP]
+I satsvis läge, när det används utan argument kommer \*(We formatera med
+användning av miljövariablerna COLUMNS= och LINES=, om de är satta. Annars
+kommer bredden vara fixerad till de maximala \*(WX kolumnerna. Med ett
+argument kan utmatningsbredden minskas eller ökas (upp till \*(WX) men
+antalet rader betraktas som obegränsat.
+
+I normalt visningsläge, när det används utan argument kommer \*(We
+\fIförsöka\fP att formatera utmatningen med miljövariablerna COLUMNS= och
+LINES=, om de är satta. Med ett argument kan utmatningsbredden bara minskas,
+inte ökas. Oavsett om miljövariabler används eller ett argument till \-w, när
+man \fIinte\fP är i satsvis läge, kan de faktiska terminaldimensionerna aldrig
+överskridas.
+
+\*(NT utan användning av denna \*(CO baseras utmatningsbredden alltid på
+terminalen i vilken \*(We anropades oavsett om man kör i satsvis läge eller
+inte.
+
+.TP 3
+\-\fB1\fP, \fB\-\-single\-cpu\-toggle\fP
+Startar \*(We med den senast sparade Cpu\-tillståndsdelen av \*(SAt
+omvänt. Antingen kommer all \*(Pu\-information visas på en ensam rad eller så
+kommer varje \*(Pu visas separat, beroende på tillståndet hos \*(CTn för
+NUMA\-nod (â€2â€).
+
+\*(XC de interaktiva kommandona â€1†och â€2†för ytterligare information.
+
+.\" ----------------------------------------------------------------------
+.SH "2. SAMMANFATTNINGSvisning"
+.\" ----------------------------------------------------------------------
+Var och en av de följande tre områdena styrs individellt genom en eller
+flera interaktiva kommandon. \*(XT 4b. SAMMANFATTNINGSOMRÅDETS kommandon för
+ytterligare information avseende dessa möjligheter.
+
+.\" ......................................................................
+.SS "2a. UPPETID och LASTgenomsnitts"
+.\" ----------------------------------------------------------------------
+Detta avsnitt består av en enda rad som innehåller:
+.nf
+ \fBprogram\fP\- eller \fBfönster\fPnamn, beroende på visningsläge
+ aktuell tid och tiden som gått sedan senaste start
+ totalt antal användare
+ systemlastsnitt över de senaste 1, 5 och 15 minuterna
+.fi
+
+.\" ......................................................................
+.SS "2b. UPPGIFTER och CPU\-tillstånd"
+.\" ----------------------------------------------------------------------
+Detta avsnitt består av minst två rader. I en SMP\-miljö kan ytterligare
+rader avspegla enskilda \*(PU\-tillståndsprocentsatser.
+
+Rad 1 visar totalt antal \fBuppgifter\fP eller \fBtrådar\fP, beroende på
+tillståndet hos Trådlägesväxeln. Den totalen är vidare klassificerad som:
+.nf
+ körande; sovande; stoppade; zombier
+.fi
+
+Rad 2 visar \*(PU\-tillståndsprocentsatser baserat på intervallet sedan den
+senaste uppdateringen.
+
+Som standard visas procentsatser för dessa individuella kategorier. Beroende
+på kärnversionen visas kanske inte fältet \fBst\fP.
+.nf
+ \fBan\fP : tid då icke nice:ade användarprocesser körts
+ \fBsy\fP : tid då kärnprocesser körts
+ \fBni\fP : tid då nice:ade användarprocesser körts
+ \fBia\fP : tid tillbringad i kärnans inaktivetetshanterare
+ \fBvä\fP : tid väntande på fullgord I/O
+ \fBha\fP : tid tillbringad med att betjäna hårdvaruavbrott
+ \fBma\fP : tid tillbringat med att betjäna mjukvaruavbrott
+ \fBst\fP : tid stulen från denna vm av hypervisorn
+.fi
+
+Värdet â€sy†ovan avspeglar även tiden som används till att köra en virtuell
+\*(Pu för gästoperativsystem, inklusive dem med ett nice\-värde.
+
+Utöver den första uppgifts\-/trådraden finns det alternativa
+\*(PU\-visningslägen tillgängliga via 4\-vägs\*(CTn â€tâ€. De visar en förkortad
+sammanfattning som består av dessa element:
+.nf
+ a b c d
+ %Cpu/er: \fB75.0\fP/25.0 \fB100\fP[ … ]
+
+.fi
+
+Där: a) är â€användarens†(an + ni) procent; b) är â€systemets†(wy + ha + ma
++ gäster) procent; c) är den totala procenten; och d) är en av två visuella
+grafer av dessa representationer. Sådana grafer avspeglar även separata
+â€användarâ€\- och â€systemâ€\-delar.
+
+Om \*(CTn â€4†används för att ge mer än tvÃ¥ cpu:er per rad kommer resultaten
+ytterligare förkortas och eliminera element a) och b). Dock avspeglas den
+informationen fortfarande i själva grafen under antagandet att färg är
+aktivt eller, om inte, visas streck eller block.
+
+\*(XT 4b. SAMMANFATTNINGSOMRÅDETS kommandon för ytterligare information om
+kommandoradsflaggorna â€t†och â€4â€.
+
+.\" ......................................................................
+.SS "2c. MINNESanvändning"
+.\" ----------------------------------------------------------------------
+Detta avsnitt består av två rader som kan uttrycka värden i kibibyte (KiB)
+till exbibyte (EiB) beroende på skalfaktorn med det interaktiva kommandot
+â€Eâ€. Källfälten frÃ¥n filen /proc/meminfo visas i parenteser.
+
+Rad 1 avspeglar \*(MP, klassificerat som:
+.nf
+ totalt ( MemTotal )
+ fritt ( MemFree )
+ anv. ( MemTotal \- MemAvailable )
+ buff/cache ( Buffers + Cached + SReclaimable )
+.fi
+
+Rad 2 avspeglar huvudsakligen \*(MV, klassificerat som:
+.nf
+ totalt ( SwapTotal )
+ fritt ( SwapFree )
+ anv. ( SwapTotal \- SwapFree )
+ tillg ( MemAvailable, vilket är \*(MP )
+.fi
+
+Värdet \fBtillg\fP på rad 2 är en uppskattning av \*(MP tillgängligt för att
+starta nya program, utan växling. Till skillnad mot fältet \fBfritt\fP
+försöker det att ta hänsyn till sid\-cache och minnesskivor som kan begäras
+tillbaka direkt. Det är tillgängligt i kärna 3.14, emulerad med kärnor
+2.6.27+, och annars detsamma som \fBfritt\fP.
+
+I de alternativa minnesvisningslägena visas två förkortade
+sammanfattningsrader som innehåler dessa elment:
+.nf
+ a b c
+ GiB Minn: \fB18.7\fP/15.738 [ … ]
+ GiB Växl: \fB 0.0\fP/7.999 [ … ]
+.fi
+
+Där: a) är procentsatsen använt; b) är det totalt tillgängliga; och c) är en
+av två visuella grafer över dessa representationer.
+
+I fallet \*(MP representerar procentsatsen det \fBtotala\fP minus det
+uppskattade \fBtillgängliga\fP noterat ovan. Grafen â€Minn†själv är delad
+mellan den icke\-cachade delen av \fBanvänt\fP och det återstående minnet som
+inte i övrigt räknas in av \fBtillgängligt\fP. \*(XT
+4b. SAMMANFATTNINGSOMRÃ…DETS kommandon och kommandot â€m†för ytterligare
+information om denna speciella 4\-vägsväxel.
+
+Denna tabell kan vara till hjälp i att tolka de skalade värdena som visas:
+.nf
+ KiB = kibibyte = 1024 byte
+ MiB = mebibyte = 1024 KiB = 1 048 576 byte
+ GiB = gibibyte = 1024 MiB = 1 073 741 824 byte
+ TiB = tebibyte = 1024 GiB = 1 099 511 627 776 byte
+ PiB = pebibyte = 1024 TiB = 1 125 899 906 842 624 byte
+ EiB = exbibyte = 1024 PiB = 1 152 921 504 606 846 976 byte
+.fi
+
+.\" ----------------------------------------------------------------------
+.SH "3. FÄLT / kolumner"
+.\" ----------------------------------------------------------------------
+.\" ......................................................................
+.SS "3a. BESKRIVNING av fält"
+.\" ----------------------------------------------------------------------
+Listat nedan är \*(Wes tillgängliga processfält (kolumner). De visas i
+strikt ascii\-alfabetisk ordning efter deras engelska namn. Man kan anpassa
+deras position och huruvida de visas eller inte med det interaktiva
+kommandot â€f†(Fälthantering).
+
+Alla fält kan väljas som sorteringsfält, och man kan styra huruvida de
+soteras högt\-till\-lågt eller lågt\-till\-högt. För ytterligare information om
+sorteringsmöjligheter \*(Xt 4c. UPPGIFTSOMRÅDETS kommandon, SORTERING.
+
+Fälten relaterade till \*(MP eller \*(MV refererar â€(KiB)†vilket är
+visningsläget utan suffix. Sådana fält kan dock skalas från KiB till
+PiB. Skalningen styrs via det interaktiva kommandot â€e†eller etableras vid
+uppstart via en byggflagga.
+
+.TP 4
+\fB%CPU \*(Em \*(PU\-användning \fP
+Uppgiftens andel av den förlupna \*(PU\-tiden sedan den senaste
+uppdateringen, uttryckt som en procentsats av den totala \*(PU\-tiden.
+
+I en miljö med sann SMP, om en process är multitrådad och \*(We \fIinte\fP
+arbetar i trådläge, kan andelar större än 100 % rapporteras. Man kan växla
+trÃ¥dläge med det interaktiva kommandog â€Hâ€.
+
+För multiprocessormiljöer gäller även att, om Irix\-läget är \*F, kommer
+\*(We köra i Solaris\-läge där en uppgifts \*(Pu\-användning delas med det
+totala antalet \*(PU:er. Man växlar Irix\-/Solaris\-lägen med det interaktiva
+kommandot â€Iâ€.
+
+\*(NT när man kör i skogsvyläge (â€Vâ€) med barn infällda (â€vâ€) kommer detta
+fält även inkludera \*(PU\-tiden för dessa osynliga barn. \*(XT
+4c. UPPGIFTSOMRÃ…DETS kommandon, INNEHÃ…LL för mer information om växlarna â€Vâ€
+och â€vâ€.
+
+.TP 4
+\fB%CUB \*(Em \*(PU\-utnyttjande \fP
+Detta fält är identiskt med %CUA nedan, förutom att procentsatsen även
+avspeglar skördade barnprocesser.
+
+.TP 4
+\fB%CUA \*(Em \*(PU\-utnyttjande \fP
+En uppgifts totala \*(PU\-användning dividerat med den gångna körtiden,
+uttryckt som en procentsats.
+
+Om en process för närvarande visar högt \*(PU\-användande kan detta fält
+hjälpa till att avgöra om sådant beteende är normalt. Omvänt, om en proces
+har lågt \*(PU\-användande för närvarande kan %CUA avspegla högre historiska
+behov över dess livstid.
+
+.TP 4
+\fB%MIN \*(Em Minnesanvändning (RES) \fP
+En uppgifts aktuella residenta andel av tillgängligt \*(MP.
+
+\*(XX.
+
+.TP 4
+\fBAGID \*(Em Autogruppidentifierare \fP
+Autogruppidentifieraren som hör ihop med en process. Denna funktion fungerar
+tillsammans med CFS\-schemaläggaren för att förbättra interaktiv
+skrivbordsprestanda.
+
+När /proc/sys/kernel/sched_autogroup_enabled är satt skapas en ny autogrupp
+för varje ny session (\*(Xa SID). Alla processer som avgrenats därefter i
+den sessionen ärver medlemskapet i denna autogrupp. Kärnan försöker
+likafördela CPU\-sykler över sådana grupper. Alltså, en autogrupp med många
+\*(PU\-intensiva processer (t.ex. make \-j) kommer inte att dominera en
+autogrupp med endast en eller två processer.
+
+När \-1 visas betyder det att denna information inte är tillgänglig.
+
+.TP 4
+\fBAGNI \*(Em Autogruppens nice\-värde \fP
+Autogruppens nice\-värde vilket påverkar schemaläggningen för alla processer
+e den gruppen. Ett negativt nice\-värde betyder högre prioritet, medan ett
+positivt nice\-värde betyder lägre prioritet.
+
+.TP 4
+\fBKGNAMN \*(Em Styrgruppsnamn \fP
+Namnet pÃ¥ kontrollgruppen vilken en process hör, eller â€\-†om inte
+tillämpligt för den processen.
+
+Detta kommer typiskt vara den sista posten i den fullständiga listan av
+kontrollgrupper som visas under nästa rubrik (KGRUPPR). Och liksom gäller
+där, har detta fält variabel bredd.
+
+.TP 4
+\fBKGRUPPR \*(Em Styrgrupper \fP
+Namnen pÃ¥ kontrollgrupperna till vilken en process hör, eller â€\-†om inte
+tillämpligt för den processen.
+
+Kontrollgrupper gör att man kan allokera resurser (cpu, minne,
+nätverksbandbredd, etc.) bland installationsdefinierade grupper av
+processer. De möjliggör finkorning styrning av allokeringen, nekandet,
+prioriteringen, hanteringen och övervakningen av dessa resurser.
+
+Många olika hierarkier av kgrupper kan finnas samtidigt på ett system och
+varje hierarki är kopplat till ett eller flera subsystem. Ett subsystem
+representerar en ensam resurs.
+
+\*(NT Fältet KGRUPPR, till skillnad mot de flesta kolumner, har inte fast
+bredd. När det visas kommer det och alla andra kolumner med variabel bredd
+allokeras all återstående skärmbredd (upp till ett maximum \*(WX
+tecken). Trots det kan sådana fält med variabel bredd huggas av. \*(XT
+5c. RULLA ett fönster för ytterligare information om hur man kommer åt
+avhuggen data.
+
+.TP 4
+\fBKOD \*(Em Kodstorlek (KiB) \fP
+Mängden \*(MP som just nu ägnat åt körbar kod, även känt som den residenta
+textmängdens storlek eller TRS.
+
+\*(XX.
+
+.TP 4
+\fBKOMMANDO \*(Em Kommandonamn\fP eller kommando\fBrad \fP
+Visa kommandoraden som användes för att starta en uppgift eller namnet på
+det tillhörade programmet. Man växlar mellan kommando\fIrad\fP och \fInamn\fP med
+â€câ€, vilket är bÃ¥de en \*(CO och ett \*(CI.
+
+När man har valt att visa kommandorader kommer processer utan en kommandorad
+som kärntrådar) visas med endast programnamnet i hakparentesr, som i detta
+exempel:
+ [kthreadd]
+
+Detta fält kan även påverkas av visningsläget skogsvy. \*(XC det interaktiva
+kommandot â€V†för ytterligare information om det läget.
+
+\*(NT Fältet KOMMANDO, till skillnad mot de flesta kolumner, har inte fast
+bredd. När det visas kommer det och alla andra kolumner med variabel bredd
+allokeras all återstående skärmbredd (upp till ett maximum \*(WX
+tecken). Trots det kan sådana fält med variabel bredd huggas av. Detta
+gäller särskilt för detta fält när kommandorader visas (det interaktiva
+kommandot \*(CI). \*(XT 5c. RULLA ett fönster för ytterligare information om
+hur man kommer åt avhuggen data.
+
+.TP 4
+\fBDATA \*(Em Data\- + stackstorlek (KiB) \fP
+Mängden privat minne \fIreserverat\fP av en process. Detta är även känt även
+känt som den residenta datamängdens storlek eller DRS. Sådant minne behöver
+ännu inte vara mappat till \*(MP (RES) men kommer alltid att inkluderas i
+mängden \*(MV (VIRT).
+
+\*(XX.
+
+.TP 4
+\fBFÖRLUP. \*(Em Förlupen körtid\fP
+Tidsåtgången sedan en process startades. Alltså, den senast startade
+uppgiften kommer visa det minsta tidsintervallet.
+
+Värdet kommer uttryckas som â€HH,MM†(timmar,minuter) men är föremÃ¥l för
+ytterligare skalning om intervallet blir för stort för att passa
+kolumnbredden. Vid den tidpunkten kommer det att skalas till 'DD+HH'
+(dagar+timmar) och möjligen därutöver.
+
+.TP 4
+\fBMILJÖ \*(Em Milöjövariabler \fP
+Visa alla miljövariablerna, om några, som ses av respektive processer. Dessa
+variabler kommer visas sin råa ordning, inte den sorterade ordning man är
+van vid att se med ett â€set†utan argument.
+
+\*(NT Fältet MILJÖ, till skillnad mot de flesta kolumner, har inte fast
+bredd. När det visas kommer det och alla andra kolumner med variabel bredd
+allokeras all återstående skärmbredd (upp till ett maximum \*(WX
+tecken). Trots det kan sådana fält med variabel bredd huggas av. Detta
+gäller särskilt för detta fält. \*(XT 5c. RULLA ett fönster för ytterligare
+information om hur man kommer åt avhuggen data.
+
+.TP 4
+\fBKÖRBAR \*(Em Körbars sökväg \fP
+Där det är tillgängligt är detta den fullständiga sökvägen till den körbara,
+inklusive programnamnet.
+
+\*(NT Fältet KÖRBAR har, till skillnad mot de flesta kolumner, inte fast
+bredd. När det visas kommer det plus eventuella andra kolumner med variabel
+bredd allokeras all återstående skärmbredd (upp till de maximala \*(WX
+tecknen).
+
+.TP 4
+\fBFlaggor \*(Em Uppgiftens flaggor \fP
+Denna kolumn representerar uppgiftens aktuella schemaläggningsflaggor vilka
+uttrycks i hexadecimal notation och med nollor utelämnade. Dessa flaggor är
+officiellt dokumenterade i <linux/sched.h>.
+
+.TP 4
+\fBGID \*(Em Grupp\-Id \fP
+Den \fIeffektiva\fP gruppens ID.
+
+.TP 4
+\fBGRUPP \*(Em Gruppnamn \fP
+Den \fIeffektiva\fP gruppens namn.
+
+.TP 4
+\fBLOGID \*(Em Inloggningsanvändar\-Id \fP
+Användar\-ID:t som användes vid \fIinloggning\fP. När \-1 visas betyder det att
+denna informaion inte är tillgänglig.
+
+.TP 4
+\fBLXC \*(Em Lxc\-behållarnamn \fP
+Namnet på den lxc\-behållare i vilken uppgiften kör. Om en process inte kör
+inuti en behÃ¥llare kommer ett streck (â€\-â€) visas.
+
+.TP 4
+\fBNI \*(Em Nice\-värde \fP
+Nice\-värdet på uppgiften. Ett negativt nice\-värde betyder högre prioritet,
+medan ett positivt nice\-värde betyder lägre prioritet. Noll i detta fält
+betyder helt enkelt att prioriteten inte kommer justeras när en uppgifts
+körbarhet bestäms.
+
+\*(NT Detta värde påverkar bara schemaläggningsprioritet relativt mot andra
+processer i samma autogrupp. \*(XC fälten â€AGID†och â€AGNI†för ytterligare
+information om autogrupper.
+
+.TP 4
+\fBNU \*(Em Senast kända NUMA\-nod \fP
+Ett tal representerar NUMA\-noden associerad med den senast använda
+processorn (â€Pâ€). När \-1 visas betyder det att NUMA\-information inte är
+tillgänglig.
+
+\*(XC de interaktiva kommandona â€2†och â€3†för ytterligare NUMA\-möjligheter
+som påverkar \*(SAt.
+
+.TP 4
+\fBOOMj \*(Em Justeringsfaktor för slut på minnet \fP
+Värdet, som går från \-1000 till +1000, läggs till det aktuella
+slut\-på\-minnet\-värdet (OOMv) vilket sedan används för att avgöra vilken
+uppgift som skall dödas när minnet är uttömt.
+
+.TP 4
+\fBOOMv \*(Em Slut på minnet\-värde \fP
+Detta värde, som går från 0 till +1000, används för att välja uppgift(er)
+att döda när minnet är uttömt. Noll översätts till â€döda aldrig†medan 1000
+betyder â€döda alltidâ€.
+
+.TP 4
+\fBP \*(Em Senast använd \*(PU (SMP) \fP
+Ett nummer som representerar den senast använda processorn. I en sann
+SMP\-miljö kommer detta sannolikt ändras ofta eftersom kärnan avsiktligt
+använder svag affinitet. Dessutom kan själva körandet av \*(We bryta denna
+svaga affinitet få fler processer att byta \*(PU oftare (på grund av den
+ökade efterfrågan på \*(PU\-tid).
+
+.TP 4
+\fBPGRP \*(Em Processgrupps\-Id \fP
+Varje process är medlem av en unik processgrupp vilken används för att
+distribuera signaler och av terminaler för att skilja begäranden som sin
+indata och utdata. När en process skapas (grenas) blir den en medlem i sin
+förälders processgrupp. Enligt konvention är detta värde lika med process\-ID
+(\*(Xa PID) för den första medlemmen i processgruppen, kallad
+processgruppens ledare.
+
+.TP 4
+\fBPID \*(Em Process\-Id \fP
+En uppgifts unika process\-ID, vilket periodiskt slår runt, men aldrig
+startar om på noll. I kärnans termer är det en körbar enhet definerad av en
+task_struct.
+
+Detta värde kan även användas som: en processgrupps\-ID (\*(Xa PGRP); en
+sessions\-ID för sessionsledaren (\*(Xa SID); en trådgrupps\-ID för
+trådgruppsledaren ((\*(Xa TGID); och en TTY\-processgrupps\-iID för
+processgruppsledaren (\*(Xa TPGID).
+
+.TP 4
+\fBFPID \*(Em Föräldraprocess\-Id \fP
+Uppgiftens förälders process\-ID (pid).
+
+.TP 4
+\fBPR \*(Em Prioritet \fP
+Uppgiftens schemaläggningsprioritet. Om man ser â€rt†i detta fält betyder
+det att uppgiften kör under schemaläggningprioritet för realtid.
+
+Under linux är realtidsprioritet något missledande eftersom traditionellt
+operativsystemet självt inte gick att avbryta (preempt). Och medan kärna 2.6
+kan göras avbrytbar (preemptible) är den inte alltid det.
+
+.TP 4
+\fBARSS \*(Em Andel resident minne, smaps (KiB) \fP
+Proportionen av denna uppgifts andel av â€RSS†där varje sida delas av
+antalet processer som delar den. Det är även summan av fälten â€ASanâ€, â€ASfbâ€
+och â€ASdeltâ€.
+
+Till exempel, om en process ar 1000 residenta sidor själv och 1000 residenta
+sidor som delas med en annan process skulle dess â€ARSS†vara 1500 (gÃ¥nger
+sidstorleken).
+
+\*(ZX.
+
+.PP
+\fBASan \*(Em Andel anonymt minne, smaps (KiB) \fP
+.br
+\fBASfb \*(Em Andel filminne, smaps (KiB) \fP
+.br
+\fBASdelt \*(Em Andel shmem\-minne, smaps (KiB) \fP
+.RS 4
+I liket med vad som gällde för â€ARSS†ovan (total proportionell andel
+resident minne) representerar dessa fält andelen av denna uppgifts del av
+varje typ av minne dividerat med antalet processer som delar det.
+
+\*(ZX.
+.RE
+
+.TP 4
+\fBRES \*(Em Storlek på resident minne (KiB) \fP
+En delmängd av den virtuella adressrymden (VIRT) som representerar det inte
+utväxlade fysiska minnet en uppgift just nu använder. Det är också summan av
+fälten â€RSanâ€, â€RSfb†och â€RSdlâ€.
+
+Det kan inkludera privata anonyma sidor, privata sidor avbildade mot filer
+(inklusive programavbilder och delade bibliotek) plus delade anonyma
+sidor. Allt sådant minne stödjs av den \*(MS som representeras separat under
+VÄXL.
+
+Slutligen kan detta fält även inkludera delade filstödda sidor som, när de
+modifieras, beter sig som en dedikerad \*(MS och alltså aldrig kommer
+påverka VÄXL.
+
+\*(XX.
+
+.TP 4
+\fBRSS \*(Em Resident minne, smaps (KiB) \fP
+En annan, mer exakt vy av processens ej utväxlade fysiska minne. Det hämtas
+frÃ¥n filen â€smaps_rollup†och är i allmänhet nÃ¥got större än det som visas
+för â€RESâ€.
+
+\*(ZX.
+
+.TP 4
+\fBRSan \*(Em Storlek på resident anonymt minne (KiB) \fP
+En delmängd av resident minne (RES) som representerar privata sidor inte
+avbildade mot en fil.
+
+.TP 4
+\fBRSfb \*(Em Storlek på resident minne med bakomliggande fil (KiB) \fP
+En delmängd av resident minne (RES) som representerar de implicit delade
+sidor som stöds av programavbilder och delade bibliotek. Det inkluderar även
+explicita filavbildningar, både privata och delade.
+
+.TP 4
+\fBRSlå \*(Em Storlek på resident låst minne (KiB) \fP
+En delmängd av resident minne (RES) som inte kan växlas ut.
+
+.TP 4
+\fBRSdl \*(Em Storlek på resident delat minne (KiB) \fP
+En delmängd av resident minne (RES) som reprecenterar de explicit delade
+anonyma shm*/mmap\-sidorna.
+
+.TP 4
+\fBVAID \*(Em Verkligt användar\-id \fP
+Det \fIverkliga\fP användar\-ID:t.
+
+.TP 4
+\fBVANV \*(Em Verkligt användarnamn \fP
+Det \fIverkliga\fP användarnamnet.
+
+.TP 4
+\fBS \*(Em Processtatus \fP
+Status för uppgiften kan vara en av:
+ \fBD\fP = oavbrytbar sömn
+ \fBI\fP = inaktiv
+ \fBR\fP = körande
+ \fBS\fP = sovande
+ \fBT\fP = stoppad av jobbstyrsignal
+ \fBt\fP = stoppad av felsökare under spårning
+ \fBZ\fP = zombie
+
+Uppgifter som visas som körande bör man egentligen tänka på som redo att
+köra \*(Em deras task_struct är helt enkelt representerad i Linux
+körkö. Även utan en sann SMP\-maskin kan man se flera uppgifter i detta
+tillstånd beroende på \*(Wes fördröjningsintervall och nice\-värde.
+
+.TP 4
+\fBDELT \*(Em Storlek på delat minne (KiB) \fP
+En delmängd av resident minne (RES) som kan användas av andra processer. Det
+kommer inkludera delade anonyma sidor och delade filstödda sidor. Det
+inkluderar även privata sidor som är avbildade på filer som representerar
+programavbilder och delade bibliotek.
+
+\*(XX.
+
+.TP 4
+\fBSID \*(Em Sessions\-id \fP
+En session är en samling processgrupper (\*(Xa PGRP), vanligen etablerad av
+inloggningsskalet. En nyavgrenad process går med i sin skapares session. Som
+konvention är detta värde lika med sessionens första medlems process\-ID
+(\*(Xa PID), kallad sessionsledaren, vilket vanligen är inloggningsskalet.
+
+.TP 4
+\fBSTARTAD \*(Em Starttidsintervall\fP
+Tidslängden sedan systemstarten när en process startades. Alltså kommer den
+senast startade uppgiften visa det största tidsintervallet.
+
+Värdet kommer uttryckas som â€MM:SS†(minuter:sekunder). Men om intervallet
+är för stort för att få plats i kolumnbredden kommer det att skalas som
+â€HH,MM†(timmar,minuter) och möjligen därutöver.
+
+.TP 4
+\fBSAID \*(Em Sparat användar\-id \fP
+Det \fIsparade\fP användar\-ID:t.
+
+.TP 4
+\fBKOMPPGID \*(Em Komplementära grupp\-id:n \fP
+Eventuella kompletterande gruppers ID:n etablerade vid inloggning eller
+ärvda från en uppgifts förälder. De visas i en kommaseparerad lista.
+
+\*(NT Fältet KOMPGID har, till skillnad mot de flesta kolumner, inte fast
+bredd. När det visas kommer det plus eventuella andra kolumner med variabel
+bredd allokeras all återstående skärmbredd (upp till de maximala \*(WX
+tecknen).
+
+.TP 4
+\fBKOMPGRP \*(Em Komplementära gruppnamn \fP
+Eventuella kompletterande gruppers namn etablerade vid inloggning eller
+ärvda från en uppgifts förälder. De visas i en kommaseparerad lista.
+
+\*(NT Fältet KOMPGRP har, till skillnad mot de flesta kolumner, inte fast
+bredd. När det visas kommer det plus eventuella andra kolumner med variabel
+bredd allokeras all återstående skärmbredd (upp till de maximala \*(WX
+tecknen)
+
+.TP 4
+\fBSANV \*(Em Sparat användarnamn \fP
+Det \fIsparade\fP användarnamnet.
+
+.TP 4
+\fBVÄXL \*(Em Växlad storlek (KiB) \fP
+Den tidigare residenta delen av en uppgifts adressutrymme skrivet till
+\*(MSen när \*(MP blir överanvänt.
+
+\*(XX.
+
+.TP 4
+\fBTGID \*(Em Trådgrupps\-id \fP
+Trådgruppens ID som en uppgift hör till. Det är trådgruppledarens PID. I
+kärnans termer representerar det de uppgifter som delar en mm_struct.
+
+.TP 4
+\fBTID \*(Em \*(PU\-tid \fP
+Total \*(PU\-tid uppgiften har använt sedan den startades. När kumulativt
+läge är \*O listas varje process med \*(Pu\-tiden som den och dess döda barn
+har använt. Man växlar kumulativt läge med â€Sâ€, vilket är bÃ¥de en \*(CO och
+ett \*(CI. \*(XC Det interaktiva kommandot â€S†för ytterligare information
+om detta läge.
+
+.TP 4
+\fBTID+ \*(Em \*(PU\-tid, hundradelar \fP
+Samma som TID, men avspeglar mer noggrannhet genom hundradelar av sekunder.
+
+.TP 4
+\fBTPGID \*(Em Tty\-processgrupps\-id \fP
+Förgrundsprocessens processgrupps\-ID för den anslutna tty:n, eller \-1 om en
+process inte är ansluten till en terminal. Enligt konvention är detta värde
+lika med processgruppsledarens (\*(Xa PGRP) process\-ID (\*(Xa PID).
+
+.TP 4
+\fBTTY \*(Em Styrande tty \fP
+Styrterminalens namn. Detta är vanligen enheten (serieporten, pty, etc.)
+processen startades ifrån, och vilken den använder för inmatning och
+utmatning. Dock behöver inte en terminal vara kopplad till en terminal, i
+vilket fall man ser en �†visad.
+
+.TP 4
+\fBAID \*(Em Användar\-id \fP
+Uppgiftens \fIeffektiva\fP ägares användar\-ID.
+
+.TP 4
+\fBANV \*(Em Använt minne (KiB) \fP
+Detta fält representerar ej växlat \*(MP en uppgift använder (RES) plus den
+utväxlade delen av dess adressutrymme (VÄXL).
+
+\*(XX.
+
+.TP 4
+\fBANVÄNDARE \*(Em Användarnamn \fP
+Uppgiftens \fIeffektiva\fP ägares användarnamn.
+
+.TP 4
+\fBURSS \*(Em Unika mängdens storlek \fP
+Den inte utväxlade andelen av \*(MP (â€RSSâ€) som inte delas med nÃ¥gon annan
+process. Det härleds fron filen â€smaps_rollupâ€.
+
+\*(ZX.
+
+.TP 4
+\fBVIRT \*(Em Storleken på virtuellt minne (KiB) \fP
+Den totala mängden \*(MV som används av uppgiften. Den inkluderar all kod,
+data och delade bibliotek plus sidor som har växlats ut och sidor som har
+avbildats men inte använts.
+
+\*(XX.
+
+.TP 4
+\fBWKAN \*(Em Sover i en funktion \fP
+Detta fält kommer visa namnet på kärnfunktionen i vilken uppgiften just nu
+sover. Körande uppgifter kommer visa ett streck (â€\-â€) i denna kolumn.
+
+.TP 4
+\fBioL \*(Em I/O\-byte lästa \fP
+Antalet byte en process orsakade att de lästes från lagringsnivån.
+
+Root\-privilegier krävs för att visa â€ioâ€\-data för andra användare.
+
+.TP 4
+\fBioLåt \*(Em I/O\-läsåtgärder \fP
+Antalet läs\-I/O\-åtgärder (systemanrop) för en process. Sådana anrop
+resulterar inte nödvändigtvis i faktisk fysisk disk\-I/O.
+
+.TP 4
+\fBioS \*(Em I/O\-byte skrivna \fP
+Antalet byte en process orsakade att de skickades till lagringsnivån.
+
+.TP 4
+\fBioSåt \*(Em I/O\-skrivåtgärder \fP
+Antalet skriv\-I/O\-åtgärder (systemanrop) för en process. Sådana anrop
+resulterar inte nödvändigtvis i faktisk fysisk disk\-I/O.
+
+.TP 4
+\fBaSmu \*(Em Antal smutsiga sidor \fP
+Antalet sidor som har ändrats sedan de senast skrevs till \*(AS. Smutsiga
+sidor måste skrivas till \*(AS före den motsvarande fysiska minnesplatsen
+kan användas för någon annan virtuell sida.
+
+Detta fält är föråldrat sedan linux 2.6 och är alltid noll.
+
+.TP 4
+\fBaSmå \*(Em Antal större sidfel \fP
+Antalet \fBstora\fP sidfel som inträffat för en uppgift. Ett sidfel inträffar
+när en process försöker läsa från eller skriva till en virtuell sida som
+inte för närvarande finns i dess adressrymd. Ett stort sidfel är när \*(AS
+är inblandat i att göra sidan tillgänglig.
+
+.TP 4
+\fBaSmå \*(Em Antal mindre sidfel \fP
+Antalet \fBsmå\fP sidfel som inträffat för en uppgift. Ett sidfel inträffar när
+en process försöker läsa från eller skriva till en virtuell sida som inte
+för närvarande finns i dess adressrymd. Ett litet sidfel blandar inte in
+åtkomst av \*(AS för att göra sidan tillgänglig.
+
+.TP 4
+\fBnTR \*(Em Antal trådar \fP
+Antalet trådar kopplade till en process.
+
+.TP 4
+\fBnrGRUPPER \*(Em CGROUP\-namnrymd \fP
+Inoden för namnrymden som används för att dölja identiteten på styrgruppen i
+vilken processen är en medlem.
+
+.TP 4
+\fBnrIPK \*(Em IPK\-namnrymd \fP
+Inoden för namnrymden som används för att isolera resurser för
+interprocesskommunikation (IPK) såsom System V IPC\-objekt och
+POSIX\-meddelandeköer.
+
+.TP 4
+\fBnrMNT \*(Em MNT\-namnrymd \fP
+Inoden för namnrymden som används för att isolera monteringspunkter för
+filsystem och därmed erbjuder olika vyer av filsystemshierarkin.
+
+.TP 4
+\fBnrNÄT \*(Em NÄT\-namnrymd \fP
+Inoden för namnrymden som används för att isolera resurser såsom
+nätverksenheter, IP\-adresser, IP\-ruttläggning, portnummer etc.
+
+.TP 4
+\fBnrPID \*(Em PID\-namnrymd \fP
+Inoden för namnrymden som används för att isolera process\-ID\-nummer vilket
+betyder att de inte behöver vara unika. Alltså kan varje sådan namnrymd ha
+sin egen â€init/systemd†(PID nr. 1) för att hantera diverse
+initieringsuppgifter och skörda föräldralösa barnprocesser.
+
+.TP 4
+\fBnrTID \*(Em TIDS\-namnrymd \fP
+Inoden för namnrymden som låter processer se olika systemtider på ett sätt
+liknande det för UTS\-namnrymden.
+
+.TP 4
+\fBnrANV \*(Em ANVÄNDAR\-namnrymd \fP
+Inoden för namnrymden som används för att isolera användar\- och
+grupp\-ID\-nummer. Alltså kan en process ha ett normalt opriviligierat
+anändar\-ID utanför en användarnamnrymd medan den har användar\-ID 0, men
+fullständiga root\-privilegier, inuti den namnrymden.
+
+.TP 4
+\fBnrUTS \*(Em UTS\-namnrymd \fP
+Inoden för namnrymden som används för att isolera värdnamn och
+NIS\-domännamn. UTS betyder helt enkelt â€UNIX Time\-sharing Systemâ€.
+
+.TP 4
+\fBvSt \*(Em Delta av antal stora sidfel\fP
+Antalet \fBstora\fP sidfel som har inträffat sedan den senaste uppdateringen
+(se aSto).
+
+.TP 4
+\fBvSm \*(Em Delta av antal mindre sidfel\fP
+Antalet \fBsmå\fP sidfel som har inträffat sedan den senaste uppdateringen (se
+aSmå).
+
+.\" ......................................................................
+.SS "3b. HANTERING av fält"
+.\" ----------------------------------------------------------------------
+Efter att trycka det interaktiva kommandot â€f†(fälthantering) kommer man
+presenteras med en skärm som visar: 1) namnet på \*(CW; 2) det utsedda
+sorteringsfältet; 3) alla fält i deras aktuella ordning tillsammans med
+beskrivningar. Poster markerade med en asterisk är fält som visas just nu, i
+den mån skärmbredden tillåter.
+
+.RS +4
+.IP \(bu 3
+Som intruktionerna på skärmen indikerar navigerar man mellan fälten med
+\*(KAerna \fBupp\fP och \fBner\fP. Tangenterna PgUp, PgDn, Home och End kan också
+användas för att snabbt nå det första eller sista tillgängliga fältet.
+
+.IP \(bu 3
+Piltangenten \fBhöger\fP väljer ett fält för att flyttas och \*(KAen \fBvänster\fP
+eller tangenten <\fBEnter\fP> fastställer det fältets placering.
+
+.IP \(bu 3
+Tangenten â€\fBd\fP†eller <\fBmellanslag\fP> växlar ett fälts
+visningsstatus, och därmed förekomsten eller frånvaron av asterisken.
+
+.IP \(bu 3
+Tangenten â€\fBs\fP†markerar ett fält som sorteringsfältet. \*(XT
+4c. UPPGIFTSOMRÅDETS kommandon, SORTERING för ytterligare information om
+valet av sorteringsfält.
+
+.IP \(bu 3
+Tangenterna â€\fBa\fP†och â€\fBw\fP†kan användas för att bläddra igenom alla
+tillgängliga fönster och tangenterna â€\fBq\fP†eller <\fBEsc\fP> gÃ¥r ur
+fälthanteringen.
+.RS -4
+
+.PP
+Fälthanteringsskärmen kan även användas för att ändra \*(CG i antingen \*(FM
+eller \*(AM. Det som var mÃ¥let när â€q†eller <Esc> trycktes kommer
+att göras aktuellt när man återgår till \*(We\-visningen. \*(XT
+5. ALTERNATIVA SKÄRMARS utseende och det interaktiva kommandot â€g†för
+kunskap om aktuella fönster och \*(FGer.
+
+.PP
+\*(NT ett fönster som har rullats \fIhorisontellt\fP kommer att återställas om
+några fältändringar görs via fälthanteringsskärmen. Eventuell \fIvertikal\fP
+rullningsposition, däremot, kommer inte påverkas. \*(XT 5c. RULLA ett
+fönster för ytterligare information om att rulla vertikalt och horisontellt.
+
+.\" ----------------------------------------------------------------------
+.SH "4. INTERAKTIVA kommandon"
+.\" ----------------------------------------------------------------------
+Listade nedan är ett kort register över kommandon i kategorier. Några
+kommandon förekommer mer än en gång \*(Em deras betydelse eller omfattning
+kan variera beroende på sammahanget i vilket de ges.
+
+.nf
+ 4a.\fI Globala\-kommandon \fP
+ <Ent/Sp> ?, =, 0,
+ A, B, d, E, e, g, H, h, I, k, q, r, s, W, X, Y, Z,
+ ^G, ^K, ^N, ^P, ^U, ^L, ^R
+ 4b.\fI Sammanfattningsområdets.kommandon \fP
+ C, l, t, m, 1, 2, 3, 4, 5, !
+ 4c.\fI Uppgiftområdets\-kommandon \fP
+ Utseende: b, J, j, x, y, z
+ Innehåll: c, F, f, O, o, S, U, u, V, v, ^E
+ Storlek: #, i, n
+ Sortering: <, >, f, R
+ 4d.\fI FÄRGavbildning \fP
+ <Ret>, a, B, b, H, M, q, S, T, w, z, 0 \- 7
+ 5b.\fI Kommandon\-för\-fönster \fP
+ \-, _, =, +, A, a, G, g, w
+ 5c.\fI Rulla\-ett\-fönster \fP
+ C, Upp, Ned, Vänster, Höger, PgUp, PgDn, Home, End
+ 5d.\fI Söka\-i\-ett\-fönster \fP
+ L, &
+ 5e.\fI Filtrera\-i\-ett\-fönster \fP
+ O, o, ^O, =, +
+.fi
+
+.\" ......................................................................
+.SS "4a. GLOBALA kommandon"
+.\" ----------------------------------------------------------------------
+De globala interaktiva kommandona är \fBalltid\fP tillgängliga påde i \*(FM och
+\*(AM. Dock är några av dessa interaktiva kommandon \fBinte tillgängliga\fP när
+man kör i säkert läge.
+
+Om man vill veta i förväg huruvida eller inte ens \*(We har säkrats, fråga
+helt enkelt efter hjälp och titta på systemsammanfattningen på den andra
+raden.
+
+.TP 7
+\ \ <\fBEnter\fP> eller <\fBMellanslag\fP>\ \ :\fIUppdatera visningen\fP
+Dessa kommandon väcker upp \*(We och som följd av mottagande av någon indata
+kommer hela skärmen ritas om. De framtvingar även en uppdatering av
+eventuella ändringar i drift av \*(Pu eller \*(MP.
+
+Man kan använda vilken som helst av dessa tangenter om man har ett långt
+fördröjningsintervall och vill se den aktuella statusen.
+
+.TP 7
+\ \ \ \fB?\fP | \fBh\fP\ \ :\fIHjälp\fP
+Det finns två hjälpnivåer tillgängliga. Den första kommer ge en påminnelse
+om alla gruldäggande interaktiva kommandon. Om \*(We är \fIsäkrad\fP kommer den
+skärmen vara förkortad.
+
+Att trycka â€h†eller â€?†pÃ¥ den hjälpskärmen kommer ta en till hjälp för de
+interaktiva kommandon som är tillämpliga på \*(AM.
+
+.TP 7
+\ \ \ \fB=\fP\ \ :\fIGå ur visningsbegränsningar\fP
+Tar bort begränsningar på vad som visas. Detta kommando kommer återställa
+kommandon â€i†(inaktiva uppgifter), â€n†(max uppgifter), â€v†(dölj barn) och
+â€F†fokus som kan vara aktiva. Det avslutar ocksÃ¥ PID\-monitorering,
+användarfiltrering, annan filtrering, lokaliseringsbearbetning och
+kombinera\-Cpu\-läge.
+
+Dessutom, om fönstret har rullats kommer det at återställas av detta
+kommando.
+
+.TP 7
+\ \ \ \fB0\fP\ \ :\fINollundertryckning\fPsväxel
+Detta kommando styr huruvida nollor visas eller undertrycks för många av
+fälten i ett \*(TW. Fält som AID, GID, NI, PR eller P påverkas inte av denna
+växel.
+
+.TP 7
+\ \ \ \fBA\fP\ \ :\fIAlternativt visningsläge\fPsväxel
+Detta kommando kommer att byta mellan \*(FM och \*(AM. \*(XT 5. ALTERNATIVA
+SKÄRMARS utseende och det interaktiva kommandot â€g†för insikt i aktuella
+fönster och \*(FGer.
+
+.TP 7
+\ \ \ \fBB\fP\ \ :\fIFetstil\-avaktiverings/aktiverings\fPväxel
+Detta kommando kommer påverka användningen av terminalegenskapen feltstil
+och ändrar \fBbåde\fP \*(SAt och \*(TSt för \*(CW. Även om det är tänkt i
+första hand för dumma terminaler kan det användas när som helst.
+
+\*(NT när denna växel är \*O och \*(We kör i monokromt läge kommer \fBhela skärmen\fP uppträda som normal text. AlltsÃ¥, om inte växeln â€x†och/eller â€yâ€
+använder omvänd markering kommer det inte finnas någon visuell bekräftelse
+ens att de är på.
+
+.TP 7
+*\ \ \fBd\fP | \fBs\fP\ \ :\fIÄndra tidsfördröjningsintervallet\fP
+Man får frågan om att ange fördröjningstiden, i sekunder, mellan
+skärmuppdateringar.
+
+Delar av sekunder respekteras, men ett negativt tal är inte tillåtet. Att
+ange 0 medför (nästan) kontinuerliga uppdateringar, med en
+otillfredsställande bild eftersom systemet och tty\-drivritunen försöker
+hänga med i \*(Wes begäranden. Fördröjningsvärdet är omvänt proportionellt
+till systembelastningen, så sätt det med försiktighet.
+
+Om man vid något tillfälle vill veta den aktuella fördröjningstiden, be helt
+enkelt om hjälp och se systemsammanfattningen på andra raden.
+
+.TP 7
+\ \ \ \fBE\fP\ \ :\fIStyr sammanfattningens minnesskala\fP i sammanfattningsområdet
+Med detta kommando kan man gå runt mellan de möjliga minnesskalningarna i
+\*(SAt vilket går från KiB (kibibyte ller 1\ 024 byte) till EiB (exbibyte
+eller 1\ 152\ 921\ 504\ 606\ 846\ 976 byte).
+
+Om man ser ett â€+†mellan ett visat tal och den följande etiketten betyder
+det att \*(We var tvunget att hugga av en del av det talet. Genom att öka
+skalfaktorn kan sådan avhuggning undvikas.
+
+.TP 7
+\ \ \ \fBe\fP\ \ :\fIStyr uppgiftsminnesskallan\fP i uppgiftsområdet
+Med detta kommando kan man gå runt mellan de tillgängliga minnesskalningarna
+i \*(TAt viket går från KiB (kibibyte eller 1\ 024 byte) till PiB (pebibyte
+eller 1\ 125\ 899\ 906\ 842\ 624 byte).
+
+Även om \*(We kommer försöka respektera den valda målintervallet kan
+ytterligare skalning fortfarande vara nödvändigt för att få plats med
+aktuella värden. OM man vill se ett mer homgent resultat i minneskolumnerna
+är att höja skalintervallet vanligen ett sätt att nå det målet. Att öka det
+för högt kommer dock förmodligen skapa ett resultat med bara nollor vilket
+inte kan undertryckas med det interaktiva kommandot â€0â€.
+
+.TP 7
+\ \ \ \fBg\fP\ \ :\fIVälj en annan fönster\-/fältgrupp\fP
+Man kommer få frågan om att ange ett tal mellan 1 och 4 som anger den \*(FG
+som skall göras till \*(CW. Man blir snart bekväm med dessa 4 fönster,
+särskilt efter att ha experimenterat med \*(AM.
+
+.TP 7
+\ \ \ \fBH\fP\ \ :\fITrådläges\fPväxel
+När denna växel är \*O kommer enskilda trådar visas för alla processer i
+alla synliga \*(TW. Annars visar \*(We en sammanfattning av alla trådar i
+varje process.
+
+.TP 7
+\ \ \ \fBI\fP\ \ :\fIIrix\-/Solaris\-läges\fPväxel
+När man arbetar i Solaris\-läge (â€I†växlat \*F) kommer en uppgifts
+\*(Pu\-användning delas med det totala antalet \*(Pu:er. Efter att ge detta
+kommando blir man meddelad om det nya tillståndet för denna växel.
+
+.TP 7
+*\ \ \fBk\fP\ \ :\fIDöda en uppgift\fP
+Man får frågan om vilken PID och signalen som skall skickas.
+
+Att inte ange någon PID eller ett negativt tal kommer tolkas som
+standardvärdet i frågan (den första uppgift som är listad). Ett PID\-värde på
+noll betyer programmet \*(We självt.
+
+Standardsignalen, som den avspeglas i frågan, är SIGTERM. Man kan dock
+skicka vilken signal som helst, via nummer eller namn.
+
+Om man vill avbryta dödandeprocessen, gör men en av följande beroende på hur
+långt man kommit:
+.nf
+ 1) vid frågan om pid, skriv ett ogiltigt nummer
+ 2) vid frågan om signal, skriv 0 (eller godtycklig ogiltig signal)
+ 3) vid godtycklig fråga, skriv <Esc>
+.fi
+
+.TP 7
+\ \ \ \fBq\fP\ \ :\fIAvsluta\fP
+
+.TP 7
+*\ \ \fBr\fP\ \ :\fIÄndra nice för en uppgift\fP
+Man får fråga om ett PID och sedan värdet att sätta dess nice till.
+
+Att inte ange någon PID eller ett negativt tal kommer tolkas som
+standardvärdet i frågan (den första uppgift som är listad). Ett PID\-värde på
+noll betyer programmet \*(We självt.
+
+Ett positivt nice\-värde gör att processen förlorar prioritet. Omvänt gör ett
+negativt nice\-värde att processen ses mer fördelaktigt av kärnan. Som en
+allmän regel kan vanliga användare bara öka nice\-värdet och hindras från att
+sänka det.
+
+Om man vill avbryta processen att ändra nice\-värde, gör men en av följande
+beroende på hur långt man kommit:
+.nf
+ 1) vid frågan om pid, skriv ett ogiltigt nummer
+ 2) vid frågan om nice, skriv <Enter> utan någon indata
+ 3) vid godtycklig fråga, skriv <Esc>
+.fi
+
+.TP 7
+\ \ \ \fBW\fP\ \ :\fISkriv konfigurationsfilen\fP
+Detta kommer spara alla valda alternativ och växlar plus det aktuella
+visningsläget och fördröjningstiden. Genom att ge detta kommando just före
+man avslutar \*(We kan man återstarta senare i exakt samma tillstånd.
+
+.TP 7
+\ \ \ \fBX\fP\ \ :\fIExtra fältbredd\fP
+Några fält har fix bred och är inte skalbara. Som sådana är de föremål för
+avhuggning vilket indikeras av ett â€+†i den sista positionen.
+
+Detta interaktiva kommando kan användas för att ändra bredden på följande
+fält:
+
+.nf
+ \fI fält standard fält standard fält standard \fP
+ GID 5 GRUPP 8 VKAN 10
+ LOGID 5 LXC 8 nrGRUPPER 10
+ VAID 5 VANV 8 nrIPK 10
+ SUID 5 SANV 8 nrMNT 10
+ AID 5 TTY 8 nrNÄT 10
+ ANVÄNDARE 8 nrPID 10
+ nrTID 10
+ nrANV 10
+ nrUTS 10
+.fi
+
+Man får frågan om mängden att lägga till till standardbredderna visade
+ovan. Att ange noll återställer till dessa standardvärden.
+
+Om man anger ett negativt tal kommer \*(We automatiskt öka kolumstorleken så
+mycket som behövs tills det inte finns någon mer avhuggen data.
+
+\*(NT oavsett om de ökas explicit eller automatiskt minskas aldrig bredden
+på dessa fält av \*(We. För att smalna av dem måste man ange ett mindre tal
+eller återställa standardvärdena.
+
+.TP 7
+\ \ \ \fBY\fP\ \ :\fIInspektera annan utmatning\fP
+Efter att man gett det interaktiva kommandog â€Y†kommer man fÃ¥ frÃ¥gan om en
+mål\-PID. Att skriva ett värde eller godta standardvärdet resulterar i en
+separat skärm. Den skärmen kan användas för att se olika filer eller
+rör\-kommandons utdata medan den normala iterativa uppdateringen av \*(We är
+pausad.
+
+\*(NT detta interaktiva kommando är bara fullt ut förverkligat när stödjande
+poster manuellt har lagts till till slutet av \*(CFen för \*(We. För
+detaljer om att skapa dessa poster, \*(XT 6b. LÄGGA TILL INSPEKTIONSposter.
+
+De flesta tangenter som används för att styra inspektionsfunktionen visas i
+dess huvudprolog. Det finns dock ytterligare tangenter tillgängliga när man
+har valt en viss fil eller ett visst kommando. De är bekanta för den som har
+använt bläddraren â€less†och sammanfattas här för framtida referens.
+
+.nf
+ \fItangent funktion\fP
+ = växla statusrad, fil eller rör
+ / sök, ekvivalent med â€L†lokalisera
+ n sök nästa, ekvivalent med â€&†lokalisera nästa
+ <Mellanslag> rulla ner, ekvivalent med <PgDn>
+ b rulla upp, ekvivalent med <PgUp>
+ g första raden, ekvivalent med <Home>
+ G sista raden, ekvivalent med <End>
+.fi
+
+.TP 7
+\ \ \ \fBZ\fP\ \ :\fIByt färgavbildning\fP
+Med detta kommando tas man till en separat skärm där man kan ändra färger
+för \*(CW, eller för alla fönster. För detaljer om detta interaktiva
+kommando \*(Xt 4d. FÄRGavbildning.
+
+.P
+\ \ \fB^G\fP\ \ :\fIVisa\-styrgrupper \fP (Ctrl\-tangent + â€gâ€)
+.br
+\ \ \fB^K\fP\ \ :\fIVisa\-kommandorad \fP (Ctrl\-tangent + â€kâ€)
+.br
+\ \ \fB^N\fP\ \ :\fIVisa\-miljö \fP (Ctrl\-tangent + â€nâ€)
+.br
+\ \ \fB^P\fP\ \ :\fIVisa\-namnrymder \fP (Ctrl\-tangent + â€pâ€)
+.br
+\ \ \fB^U\fP\ \ :\fIVisa\-kompletterande\-grupper \fP (Ctrl\-tangent + â€uâ€)
+.br
+.RS +7
+Tillämpat på den första visade processen kommer dessa kommandon visa den
+uppgiftens fullständiga (eventuellt radbrutna) information. Sådana data
+kommer visas i ett separat fönster längst ner på skärmen medan normal
+\*(We\-monitorering fortsätter.
+
+Att trycka \fIsamma\fP â€Ctrlâ€\-kommando en andra gÃ¥ng tar bort det separata
+fönstret och detsamma gör kommandot â€=â€. Att trycka en annan
+â€Ctrlâ€\-kombination medan en redan är aktiv byter omedelbart till den nya
+informationen.
+
+Värt att notera bland dessa möjligheter är kommandot Ctrl+N (miljö). Dess
+utdata kan vara omfattande och inte lätt att läsa när den är radbruten. En
+mer läsbar version kan uppnÃ¥s med ett â€Inspekteraâ€\-post i rcfile\-filen
+liksom den följande.
+
+.nf
+ pipe ^I Miljö ^I cat /proc/%d/environ | tr '\e0' '\en'
+.fi
+
+\*(XC det interaktiva kommandot â€Y†ovan och avsnittet 6b. LÄGGA TILL
+INSPEKTIONSposter för ytterligare information.
+
+Som ett alternativ till â€Inspekteraâ€, och tillgängligt för alla dessa
+â€Ctrlâ€\-kommandon kan tabulatortangenten användas för att markera enskilda
+element i bottenfönstret.
+.RS -7
+
+.TP 7
+\ \ \fB^L\fP\ \ :\fILoggade\-meddelanden \fP (Ctrl\-tangent + â€lâ€)
+De 10 senaste meddelandena visas i ett separat fönster längst ner på skärmen
+samtidigt som normal \*(We\-monitorering fortsätter. Att trycka â€^L†en andra
+gÃ¥ng tar bort det fönstret och detsamma gör kommandot â€=â€. Använd
+tabulatortangenten för att markera enskilda meddelanden.
+
+.TP 7
+*\ \fB^R\fP\ \ :\fIÄndra\-nice\-pÃ¥\-en\-autogrupp \fP (Ctrl\-tangent + â€râ€)
+Man får fråga om en PID och sedan värdet på dess autogrupps AGNI.
+
+Att inte ange någon PID kommer tolkas som standardvärdet som visas i
+prompten (den första visade uppgiften).
+
+Ett positivt AGNI\-värde kommer göra att processer i den autogruppen förlorar
+prioritet. Omvänt gör ett negativt värde att de kommer betraktas mer
+förmånligt av kärnan. Vanliga användare tillåts inte sätta negativa
+AGNI\-värden.
+
+Om man vill avbryta processen att ändra nice\-värde skriver man
+<Esc>.
+
+.IP * 3
+Kommandon som visas med en \*(AK är inte tillgängliga i säkert läge, inte
+heller kommer de visas på hjälpskärm nivå\-1.
+
+.\" ......................................................................
+.SS "4b. SAMMANFATTNINGSOMRÃ…DETS kommandon"
+.\" ----------------------------------------------------------------------
+Sammanfattningsområdets interaktiva kommandon är \fBalltid tillgängliga\fP i
+både \*(FM och \*(AM. De påverkar de inledande raderna på skärmen och avgör
+positionen för meddelanden och frågor.
+
+Dessa kommandon påverar alltid bara \*(CG. \*(XT 5. ALTERNATIVA SKÄRMARS
+utseende och det interaktiva kommandot â€g†för kunskap om \*(CW och \*(FGer.
+
+.TP 7
+\ \ \ \fBC\fP\ \ :\fIVisa rullkoordinaters\fPväxel
+Växla ett informationsmeddelande som visas när meddelanderaden inte används
+till något annat. För ytterligare information \*(Xt 5c. RULLA ett fönster.
+
+.TP 7
+\ \ \ \fBl\fP\ \ :\fILastgenomsnitts/uppetids\fPväxel
+Detta är också raden som innehåller programnamnet (möjligen ett alias) när
+man kör i \*(FM eller namnet på \*(CW när man kör i \*(AM.
+
+.TP 7
+\ \ \ \fBt\fP\ \ :\fIUppgifts/cpu\-tillstånds\fPväxel
+Detta kommando påverkar från 2 till många \*(SAsrader, beroende på
+tillstÃ¥ndet hos kommandoflaggorna â€1â€, â€2†eller â€3†och huruvida eller inte
+\*(We kör under sant SMP.
+
+Denna del av av \*(SAt påverkas även av den den interaktiva kommandoflaggan
+â€Hâ€, eftersom den avspeglas i den totala etiketten vilken visar antinge
+uppgifter eller trådar.
+
+Detta kommando fungerar som en 4\-vägsväxel, och roterar genom dessa lägen:
+.nf
+ 1. detaljerade procentsatser efter kategori
+ 2. förkortade användar/system och total % + stapeldiagram
+ 3. förkortade användar/system och total % + blockdiagram
+ 4. slå av visning av uppgifter och cpu\-tillstånd
+.fi
+
+När man kör i endera av de grafiska lägena blir skärmen mycket mer
+meningsfull när individuella CPU:er eller NUMA\-noder också visas. \*(XC
+kommandona â€1â€, â€2†och â€3†nedan för ytterligare information.
+
+.TP 7
+\ \ \ \fBm\fP\ \ :\fIMinnes\-/växlingsanvändnings\fPväxel
+Detta kommando påverkar de två \*(SAsraderna som hanterar fysiskt och
+virtuellt minne.
+
+Detta kommando fungerar som en 4\-vägsväxel, och roterar genom dessa lägen:
+.nf
+ 1. detaljerade procentsatser efter minnestyp
+ 2. förkortad % använt/totalt tillgängligt + stapeldiagram
+ 3. förkortad % använt/totalt tillgängligt + blockdiagram
+ 4. slå av visning av minne
+.fi
+
+.TP 7
+\ \ \ \fB1\fP\ \ :\fIEnkla/separata cpu\-tillstånds\fPväxel
+Detta kommando pÃ¥verkar hur kommandot â€tâ€:s cpu\-tillstÃ¥ndsdel visas. Även om
+denna växel finns först och främst för att hantera massivt parallella
+SMP\-maskiner är den itne begränsad endast till SMP\-miljöer.
+
+När man ser â€%Cpu(s):' i \*(SA är växeln â€1†\*O och all \*(Pu\-information
+samlas pÃ¥ en enda rad. Annars visas varje \*(Pu separat som: â€%Cpu0, %Cpu1,
+…†upp till den tillgängliga skärmhöjden.
+
+.TP 7
+\ \ \ \fB2\fP\ \ :\fINUMA\-noder/cpu\-sammanfattnings\fPväxel
+Detta kommando vexlar mellan kommandot â€1†cpu\-sammanfattnignsskärm (endast)
+eller en sammanfattningsskärm plus cpu\-användningsstatistiken för varje
+NUMA\-nod. Det är endast tillgängligt om ett system har det nödvändiga stödet
+för NUMA.
+
+.TP 7
+\ \ \ \fB3\fP\ \ :\fIExpandera\-NUMA\-nod\fP
+Man erbjuds att ange ett nummer som representerar en NUMA\-nod. Därefter
+kommer en nodsammanfattning plus statistik för varje cpu i den noden att
+visas tills \*(CTn â€1â€, â€2†eller â€4†trycks. Detta interaktiva kommando är
+endast tillgängligt om ett system har det nödvändiga stödet för NUMA.
+
+.TP 7
+\ \ \ \fB4\fP\ \ :\fIVisa\-flera\-element\-intill\fPväxel
+Denna \*(CT slÃ¥r \*F flaggan â€1†och visar flera \*(PU\- och minnesresultat
+pÃ¥ varje rad. Varje följande tangent â€4†lägger till en ytterligare \*(PU
+tills den återgår igen till separata rader för \*(PU\- och minnesresultat.
+
+Maximalt 8 \*(PU:er per rad kan visas på detta sätt. Dock kan avhuggning av
+data förekomma före maximum nås. Detta är särskilt sant när man visar
+detaljerad statistik via \*(CTn â€t†eftersom sÃ¥dana data inte kan skalas
+såsom den grafiska representationen.
+
+Om man önskar att snabbt avsluta intilläge utan att gå igenom alla sätt till
+8, tryck helt enkelt pÃ¥ \*(CTn â€1â€.
+
+.TP 7
+\ \ \ \fB5\fP\ \ :\fIVisa\-P\-kärnor\-och\-E\-kärnor\fPväxel
+Denna \*(CT är endast aktiv när växeln â€t†är \*O och växlarna â€1â€, â€2â€, â€3â€
+och â€!†är \*F, alltsÃ¥ visar individuella \*(PU\-resultat. Den antar att en
+plattform har flera kärnor av två olika typer, antingen multitrådade
+(P\-kärnor) eller enkeltrådade (E\-kärnor).
+
+Medan normalt varje \*(Pu visas som â€%Cpu0, %Cpu1, …†kan denna växel
+användas för att identifiera och/eller filtrera dessa \(PU:er efter sin
+kärntyp, antinge P\-kärna (prestanda) eller E\-kärna (effektivitet).
+
+Den 1:a gÃ¥ngen â€5†skrivs visas varje \*(PU som â€Cp\fBP\fP†eller â€%Cp\fBE\fP†som
+representerar de två kärntyperna. Den 2:a gången kommer endast P\-kärnor
+(%Cp\fBP\fP) visas. Den 3:e gången visas E\-kärnor (%Cp\fBE\fP). När denna \*(CT
+trycks den 4:e gången återgår \*(PU\-visningen till den vanliga konventionen
+â€%Cpuâ€.
+
+Om inte separata\fI prestanda\fP och\fI effektiva\fP kategorier finns har denna
+\*(CT ingen effekt.
+
+.TP 7
+\ \ \ \fB!\fP\ \ :\fIKombinera\-cpu:er\-läges\fPväxel
+Denna \*(CT är avsedd för massivt parallella SMP\-miljöer där, även med
+\*(CTn â€4â€, inte alla processer kan visas. Med varje tryck pÃ¥ â€!†dubblas
+antalet \*(Pu:er som kombineras och därmed reduceras det totala antalet
+\*(Pu\-rader som visas.
+
+Till exempel, med det första trycket pÃ¥ â€!†kmmer tvÃ¥ \*(Pu:er kombineras
+och visas som â€0\-1, 2\-3, …†istället för de normala â€%Cpu0, %Cpu1, %Cpu2,
+%Cpu3, …â€. Med en andra \*(CT â€!†kombineras fyra \*(Pu:er och visas som
+â€0\-3, 4\-7, …â€. Sedan med ett tredje tryck pÃ¥ â€!â€, kombineras Ã¥tta \*(Pu:er,
+och visas som â€0\-7, 8\-15, …â€, etc.
+
+Så fortsätter det tills individuella \*(Pu:er återigen visas och påverkar de
+bÃ¥da växlarna â€1†och â€4†(en eller flera kolumner). Används kommandot â€=â€
+för att avsluta läget \fBKombinera\-cpu:er\fP.
+
+.PP
+\*(NT om hela \*(SAt har slagits \*F för något fönster skulle man bara ha
+kvar \fBmeddelanderaden\fP. På detta sätt har man då maximerat de tillgängliga
+raderna för uppgifter men (tillfälligt) offrat programnamnet i \*(FM eller
+namnet på \*(CW när man är i \*(AM.
+
+.\" ......................................................................
+.SS "4c. UPPGIFTOMRÃ…DETS kommandon"
+.\" ----------------------------------------------------------------------
+Uppgiftsområdets interaktiva kommandon är \fBalltid\fP tillgängliga i \*(FM.
+
+Uppgiftsområdets interaktiva kommandon är \fBaldrig tillgängliga\fP \*(AM \fIom\fP
+\*(TDen för \*(CW har slagits \*F (\*(Xt 5. ALTERNATIVA SKÄRMARS utseende).
+
+.\" ..................................................
+.PP
+\fBUTSEENDET\fP på uppgiftsfönstret
+
+.TP 7
+\ \ \ \fBJ\fP\ \ :\fIJustera numeriska kolumner\fPväxel
+Växlar mellan högerjusterad (standard) och vänsterjusterad numerisk
+information. Om den numeriska datan helt fyller ut den tillgängliga kolumnen
+kan denna \*(TC endast påverka kolumnhuvudet.
+
+.TP 7
+\ \ \ \fBj\fP\ \ :\fIJustera teckenkolumner\fPväxel
+Växlar mellan vänsterjusterad (standard) och högerjusterad
+teckeninformation. OM teckendatan helt fyller ut den tillgängliga kolumnen
+kan denna \*(CT endast påverka kolumnhuvudet.
+
+.PP
+.RS +2
+Följande kommandon kommer även att påverkas av tillståndet hos den globala
+växeln â€B†(aktivera fetstil).
+.RS -2
+
+.TP 7
+\ \ \ \fBb\fP\ \ :\fIFet/invers\fPväxel
+Detta kommando kommer pÃ¥verka hur växlarna â€x†och â€y†visas. Det kan ocksÃ¥
+påverka \*(SAt när stapeldiagram har valts för \*(Pu\-tillstånd eller
+minnesanvändning via växlarna â€t†eller â€mâ€.
+
+.TP 7
+\ \ \ \fBx\fP\ \ :\fIKolumnmarkerings\fPväxel
+Ändrar markeringen för det aktuella sorteringsfältet.
+Om man glömmer vilket fält som sorteras kan detta kommando fungera som en snabb
+visuell påminnelse, förutsat att sorteringsfältet visas.
+Sorteringsfältet behöver \fIinte\fP vara synligt på grund av att
+ 1) det finns otillräckligt med \fIskärmbredd\fP
+ 2) det interaktiva kommandot â€f†har slaget \*F det
+
+.TP 7
+\ \ \ \fBy\fP\ \ :\fIRadmarkerings\fPväxel
+Byter markering för â€körande†uppgifter. För ytterligare kunskap om detta
+uppgiftstillstÃ¥nd, \*(Xt 3a. BESKRIVNING av fält, fältet â€S†(processtatus).
+
+Användning av denna möjlighet ger viktiga kunskaper om systemets hälsa. Den
+enda kostnaden kommer vara några få ytterligare tty\-flyktföljder.
+
+.TP 7
+\ \ \ \fBz\fP\ \ :\fIFärg/monokrom\fPväxel
+Byter det aktuella fönstret mellan det senast valda färgschemat och den
+äldre formen av svart\-på\-vitt eller vitt\-på\-svart. Detta kommando kommer
+ändra bådet \*(SAt och \*(TAt men påverkar inte tillståndet hos växlarna
+â€xâ€, â€y†eller â€bâ€.
+
+.\" ..................................................
+.PP
+\fBINNEHÅLL\fP i uppgiftsfönstret
+
+.TP 7
+\ \ \ \fBc\fP\ \ :\fIKommandorad/programnamn\fPväxel
+Detta kommando kommer att följas oavsett huruvida kolumnen KOMMANDO är
+synlig för närvarande eller inte. Skulle det fältet senare visas kommer
+ändringen man gjorde visas.
+
+.TP 7
+\ \ \ \fBF\fP\ \ :\fIBehåll\-föräldrafokus\fPväxel
+I skogsvysläge fungerar denna tangent som en växel till att behålla fokus på
+en måluppgift, förmodligen en med avgrenade barn. Om skogsvysläget är \*F
+har denna tangent ingen effekt.
+
+Växeln tillämpas pÃ¥ den första (översta) processen i det â€aktuellaâ€
+fönstret. När det är etablerat visas alltid uppgiften som den första
+(översta) processen tillsammans med dess avgrenade barn. Alla andra
+processer kommer utelämnas.
+
+\*(NT tangenter som â€i†(inaktiva uppgifter), â€n†(max uppgifter), â€v†(dölj
+barn) och filter av användare/övrigt fortsätter att vara tillgängliga och
+kan påverka vad som visas.
+
+.TP 7
+\ \ \ \fBf\fP\ \ :\fIFälthantering \fP
+Denna tangent visar en separat skärm där man kan ändra vilka fält som visas,
+deras ordning och även utse sorteringsfältet. För ytterligare information om
+detta interaktiva kommando \*(Xt 3b. HANTERING av fält.
+
+.TP 7
+\ \ \ \fBO\fP | \fBo\fP\ \ :\fIÖvrig\-filtrering \fP
+Man kommer få en fråga om urvalskriterier som sedan avgör vilka uppgifter
+som kommer visas i \*(CW. Kriterierna kan göras skiftlägeskänsliga eller så
+kan skiftläget ignoreras. Och man bestämmer om \*(We skall inkludera eller
+exkludera matchande uppgifter.
+
+\*(XT 5e. FILTRERA i ett fönster för detaljer om dessa och andra relaterade
+interaktiva kommandon.
+
+.TP 7
+\ \ \ \fBS\fP\ \ :\fIKumultativ\-tids\-läges\fPväxel
+När kumulativt läge är \*O listas varje process med \*(Pu\-tiden som den och
+dess döda barn har använt.
+
+När \*F kommer program som grenar av i många separata uppgifter förefalla
+mindre krävande. För program som â€init†eller ett skal är detta lämpligt men
+för andra, som kompilatorer, kanske inte. Experminetera med två \*(TW som
+delar samma sorteringsfält men med olika â€Sâ€\-tillstÃ¥nd och se vilken
+representation du föredrar.
+
+Efter att ha gett detta kommando blir man informerad om det nya tillstånded
+hos denna växel. Om man vill veta i förväg huruvida kumulativt läge är på
+eller inte, be helt enkelt om hjälp och se fönstersammanfattningen på andra
+raden.
+
+.TP 7
+\ \ \ \fBU\fP | \fBu\fP\ \ :\fIVisa\-endast\-specifik\-användare \fP
+Man får frågan om \fBuid\fP eller \fBnamn\fP på användaren som skall
+visas. Flaggan \-u matchar den \fBeffektiva\fP användaren medan flaggan \-U
+matchar \fBgodtycklig\fP användare (verklig, effektiv, sparad eller filsystem).
+
+Därefter visas endast matchande användare i det \*(TWt, eller möjligen visas
+inga processer. Genom att inleda med ett utropstecken (â€!â€) före anvädare\-id
+eller \-namn instruerar man \*(We att visa endast processer med användare som
+inte matchar den angivna.
+
+Olika \*(TW kan användas för att filtrera olika användare. Senare, om man
+vill se alla användare igen i \*(CW, ge detta kommando igen men tryck bara
+<Enter> vid frågan.
+
+.TP 7
+\ \ \ \fBV\fP\ \ :\fISkogsvysläges\fPväxel
+I detta läge ordnas processer om efter sina föräldrar och layouten av
+kolumnen KOMMANDO liknar den hos ett träd. I skogsvysläge är det fortfarande
+möjligt att växla mellan programnamn och kommandorad (\*(Xc det interaktiva
+kommandot â€c†eller mellan processer och trÃ¥dar (\*(Xc det interaktiva
+kommandot â€Hâ€).
+
+\*(NT att att trycka godtycklig tangent som anger sorteringsordning kommer
+lämna skogsvysläge i det aktuella fönstret. \*(XT 4c. UPPGIFTOMRÅDETS
+kommandon, SORTERING för information om dessa tangenter.
+
+.TP 7
+\ \ \ \fBv\fP\ \ :\fIDölj/visa barn\fP\-växel
+I skogsvysläge fungerar denna tangent som en växel mellan att fälla ihop
+eller expandera en förälders barn.
+
+Växeln fungerar endast mot den första (översta) processen i det aktuella
+fönstret. \*(Xt 5c. RULLA ett fönster för ytterligare information om
+vertikal rullning.
+
+Om målprocessen inte har grenat av några barn har denna tangent ingen
+effekt. Den har inte heller någon effekt när man inte är i skogsvyläge.
+
+.TP 7
+\ \ \fB^E\fP\ \ :\fISkala\-CPU\-tidsfält\fP (Ctrl\-tangent + â€eâ€)
+â€Tidsâ€fälten visas normalt med den största precisionen deras bredd
+tillåter. Denna växel reducerar den precisionen tills det slår runt. Den
+illustrerar även skalningen dessa fält \fIkan\fP uppvisa automatiskt, vilket
+vanligen beror på hur länge systemet kör.
+
+Till exempel, om â€MMM:SS.hh†visas, skulle varje tryck pÃ¥ ^E ändra det till:
+â€MM:SSâ€, â€timmar,MMâ€, â€dagar+timmar†och slutligen â€veckor+dagarâ€.
+
+Alla tidsfält är inte föremål för hela intervallet av sådan skalning.
+
+.\" ..................................................
+.PP
+\fBSTORLEK\fP på \*(TW
+
+.TP 7
+\ \ \ \fBi\fP\ \ :\fIInaktiv\-process\fPväxel
+Visar alla uppgifter eller bara aktiva uppgifter. När denna växel är \*F
+kommer uppgifter som inte använt någon \*(PU sedan den senaste uppdateringen
+inte att visas. Dock, på grund av granulariteten hos fälten %CPU och TID+,
+kan några processer fortfarande visas som \fIförefaller inte\fP ha använt någon
+\*(PU.
+
+Om detta kommando används på den sista \*(TDen när man är i \*(AM, då kommer
+den inte påverka fönsterstorleken, eftersom alla föregående \*(TDar redan
+kommer ha ritats ut.
+
+.TP 7
+\ \ \ \fBn\fP | \fB#\fP\ \ :\fIAnge maximala uppgifter\fP
+Man kommer ombeds ange antalet uppgifter att visa. Det lägre av talet och
+det tillgängliga antalet skärmrader kommer användas.
+
+När är i \*(AM ger detta kommando precis kontroll över storleken på varje
+samtidigt synlig \*(TD, utom den allra sista. Det kommer inte påverka det
+sista fönstrets storlek, eftersom alla föregående \*(TDar redan kommer ha
+ritats ut.
+
+\*(NT om man vill öka storleken på den sista synliga \*(TDen när man är i
+\*(AM, minska helt enkelt storleken på \*(TDen ovanför den.
+
+.\" ..................................................
+.PP
+\fBSORTERING\fP av \*(TW
+.PP
+.RS +3
+För kompatibilitet stödjer denna \*(We de flesta tidigare \*(We
+sorteringstangenter. Eftersom detta primärt är en tjänst till tidigare
+användare av \*(We, finns dessa kommandon inte med på någon hjälpskärm.
+.nf
+ \fIkommando sorteringsfält stödjs\fP
+ A starttid (ej visat) \fBNej\fP
+ M %MEM Ja
+ N PID Ja
+ P %CPU Ja
+ T TIME+ Ja
+.fi
+
+Före man använder någon av följande sorteringsmöjligheter föreslår \*(We att
+man tillfälligt slår på kolumnmarkering med det interaktiva kommandog
+â€xâ€. Det kommer hjälpa att säkerställa att den faktiska sorteringsmiljön
+motsvarar ens avsikt.
+
+Följande interaktiva kommandon kommer \fBbara\fP följas när det aktuella sorteringsfältet
+är \fBsynligt\fP.
+Anledning till att sorteringsfältet \fIinte\fP är synligt kan vara för att:
+ 1) det finns otillräckligt med \fIskärmbredd\fP
+ 2) det interaktiva kommandot â€f†slog \*F det
+
+.TP 7
+\ \ \ \fB<\fP\ \ :\fIFlytta sorteringsfält åt vänster\fP
+Flyttar sorteringskolumnen åt vänster om inte det aktuella sorteringsfältet
+är det första fältet som visas.
+
+.TP 7
+\ \ \ \fB>\fP\ \ :\fIFlytta sorteringsfält åt höger\fP
+Flyttar sorteringskolumnen åt höger om inte det aktuella sorteringsfältet är
+det sista fältet som visas.
+
+.PP
+Följande interaktiva kommandon kommer \fBalltid\fP följas oavsett huruvida det
+akutella sorteringsfältet är synligt eller inte.
+
+.TP 7
+\ \ \ \fBf\fP\ \ :\fIFälthantering \fP
+Denna tangent visar en separat skärm där man kan ändra vilket fält so
+används som sorteringskolumn, bland andra funktioner. Detta kan vara ett
+bekvämt sätt att enkelt verifiera det aktuella sorteringsfältet när man kör
+\*(We med kolumnmarkeringen \*F.
+
+.TP 7
+\ \ \ \fBR\fP\ \ :\fIInverst/Normalt sorteringsfälts\fPväxel
+Genom att använda detta interaktiva kommando kan man byta mellan
+hög\-till\-låg och låg\-till\-hög sortering.
+
+.\" ......................................................................
+.SS "4d. FÄRGavbildning"
+.\" ----------------------------------------------------------------------
+När man ger det interaktiva kommandot â€Z†visas en separat skärm. Den
+skärmen kan användas för att ändra färgerna i bara det â€aktuella†fönstret
+eller i alla fyra fönstren innan man återvänder till \*(We\-visningen.
+
+.P
+Följande interaktiva kommandon är tillgängliga.
+.nf
+ \fB4\fP versala bokstäver för att välja ett \fBmål\fP
+ \fB8\fP nummer för att välja en \fBfärg\fP
+ normala tillgänliga växlar
+ B :fetstil avaktivera/aktivera
+ b :körande uppgift â€fetâ€/invers
+ z :färg/mono
+ andra tillgängliga kommandon
+ a/w :verkställ, gå sedan till nästa/föregående
+ <Enter> :verkställ och avsluta
+ q :avbryt aktuella ändringar och avsluta
+.fi
+
+Om man använder â€a†eller â€w†för att gÃ¥ igenom mÃ¥lfönster kommer man ha
+använt det färgschema som visades när man lämnade det fönstret. Man kan
+naturligtvis enkelt återvända till ett fönster och återapplicera andra
+färger eller helt slÃ¥ \*F färger med växeln â€zâ€.
+
+Färgavbildningsskärmen kan även användas för att ändra den â€aktuellaâ€
+fönster\-/fältgruppen i antingen \*(FM eller \*(AM. Oavsett vad som var målet
+när â€q†eller <Enter> trycktes kommer göras aktuellt när man
+återvänder till \*(We\-visningen.
+
+.\" ----------------------------------------------------------------------
+.SH "5. ALTERNATIVA SKÄRMARS utseende"
+.\" ----------------------------------------------------------------------
+.\" ......................................................................
+.SS "5a. FÖNSTERöversikt"
+.\" ----------------------------------------------------------------------
+.TP 3
+\fBFältgrupper/fönster\fP:
+I \*(FM finns det ett ensamt fönster representerat av hela skärmen. Det enda
+fönstret kan fortfarande ändras till att visa 1 av 4 olika \fBfältgrupper\fP
+(\*(Xc det interaktiva kommandot â€gâ€, repeterat nedan). Vart och ett av de 4
+\*(FGerna har ett unikt separat konfigurerbart \fB\*(SA\fP och sitt egen
+konfigurerbara \fB\*(TA\fP.
+
+I \*(AM kan dessa 4 underliggande \*(FGer nu göras synliga samtidigt, eller
+kan slås \*F individuellt på kommando.
+
+Sammanfattningsområdet kommer alltid finnas, även om det endast är
+meddelanderaden. Vid varje given tidpunkt kan endast \fIett\fP \*(SA
+visas. Dock, beroende på givna kommandon, kan det finnas från \fInoll\fP till
+\fIfyra\fP separata \*(TDar samtidigt visade på skärmen.
+
+.TP 3
+\fBAktuellt fönster\fP:
+Det â€aktuella†fönstret är fönstret som är kopplat till \*(SAt och fönstret
+till vilket uppgiftsrelaterade kommandon alltid skickas. Eftersom man i
+\*(AM kan växla \*F \*(TDen kan några kommandot vara begränsade för \*(CW.
+
+En ytterligare komplikation uppstår när man har slagit \*F den första raden
+i \*(SAt. I och med att fönsternamnet försvinner (raden som växlas med â€lâ€)
+vet man inte enkelt vilket fönster som är det â€aktuella†fönstret.
+
+.\" ......................................................................
+.SS "5b. KOMMANDON för fönster"
+.\" ----------------------------------------------------------------------
+.TP 7
+\ \ \ \fB\-\fP | \fB_\fP\ \ :\fIVisa/dölj fönster\fPväxel
+Tangenten â€\-†slÃ¥r \*O och \*F det â€aktuella†fönstrets \*(TD. När det är
+\*O kommer det \*(TAt att visa ett minimum av kolumhuvuden som har angivits
+med det interaktiva kommandot â€fâ€. Det kommer även avspegla eventella andra
+flaggor/växlar för \*(TAt som har tillämpats vilket resulterar i noll eller
+flera uppgifter.
+
+Tangenten â€_†gör detsamma för alla \*(TDar. Med andra ord byter det mellan
+den för närvarande synliga \*(TDen och alla \*(TD man har slagit \*F. Om
+alla 4 \*(TDarna är syniga för närvarande kommer detta interaktiva kommando
+lämna kvar \*(SAt som det enda synliga elementet.
+
+.TP 7
+*\ \ \fB=\fP | \fB+\fP\ \ :\fIUtjämna/återställ fönster\fP
+Tangenten â€=†tvingar det â€aktuella†fönstrets \*(TD att vara synlig. Det
+Ã¥terställer ocksÃ¥ eventuella kommandon â€i†(inaktiva uppgifter), â€n†(max
+uppgifter), â€u/U†(användarfilter), â€o/O†(övriga filter), â€v†(dölj barn),
+â€F†fokuserat, â€L†(lokalisera) och â€!†(kombinera cpu:er). Dessutom, om
+fönstret är rullat, kommer det att återställas med detta kommando. \*(XT
+5c. RULLA ett fönster för ytterligare information avseende vertikal och
+horisontell rullning.
+
+Tangenten â€+†gör detsamma för alla fönster. De fyra \*(TDarna kommer komma
+tillbaka, jämnt balanserade, samtidigt som de behåller eventuella
+anpassningar som tidigare har gjorts utöver de som anges för det interaktiva
+kommandot â€=â€.
+
+.TP 7
+*\ \ \fBA\fP\ \ :\fIAlternativt visningsläges\fPväxel
+Detta kommando kommer byta mellan \*(FM och \*(AM.
+
+Första gången man ger detta kommando kommer alla fyra \*(TDar att
+visas. Därefter kommer man när man byter läge bara se de \*(TD man har valt
+att göra synliga.
+
+.TP 7
+*\ \ \fBa\fP | \fBw\fP\ \ :\fINästa fönster framåt/bakåt\fP
+Detta kommer byta det â€aktuella†fönstret, vilket i sin tur byter fönstret
+till vilket kommandon riktas. Dessa tangenter fungerar på ett cirkulärt sätt
+så att man kan nå alla fönster med vilken som helst av tangenterna.
+
+Under antagandet att fönsternamnet är synligt (man inte har slagit \*F â€lâ€)
+så är när namnet på \*(CW tappar sin markering/färg är det en påminnelse om
+att \*(TDen är \*F och många kommandon kommer vara begränsade.
+
+.TP 7
+\ \ \ \fBG\fP\ \ :\fIÄndra fönster\-/fältgruppsnamn\fP
+Man ombeds ange ett nytt namn som skall användas för det â€aktuellaâ€
+fönstret. Det kräver itne att fönsternamnet är synligt (att växeln â€l†är
+\*O).
+
+.IP * 3
+De interaktiva kommandon som visas med en \*(AK har användning vid sidan av
+\*(AM.
+.nf
+ =, A, g är alltid tillgängliga
+ a, w fungerar på samma sätt med färgavbildning
+ och fälthantering
+.fi
+
+.TP 7
+*\ \ \fBg\fP\ \ :\fIVälj ett annat fönster/fältgrupp\fP
+Man ombeds ange ett nummer mellan 1 och 4 som anger den \*(FG som skall
+göras till \*(CW.
+
+I \*(FM är detta kommando nödvändigt för att ändra \*(CW. I \*(AM är det
+bara ett mindre bekvämt alterantiv till kommandona â€a†och â€wâ€.
+
+.\" ......................................................................
+.SS "5c. RULLA ett fönster"
+.\" ----------------------------------------------------------------------
+Typiskt är ett \*(TW en partiell vy in i systemets totala uppgifter/trådar
+som visar endast några av de tillgängliga fälten/kolumnen. Med dessa \*(KSer
+kan man flytta den vyn vertikalt eller horisontellt för att uppvisa valfri
+uppgift eller kolumn.
+
+.TP 4
+\fBUpp\fP,\fBPgUp\fP\ \ :\fIRulla uppgifter\fP
+Flytta vyn upp mot den första uppgiftsraden, tills den första uppgiften
+visas pÃ¥ den översta raden av det â€aktuella†fönstret. Piltangenten \fIupp\fP
+flyttar en rad medan \fIPgUp\fP rullar hela fönstret.
+
+.TP 4
+\fBNed\fP,\fBPgDn\fP\ \ :\fIRulla uppgifter\fP
+Flytta vyn ned mot den sista uppgiftsraden, tills den sista uppgiften är den
+enda som visas pÃ¥ den översta raden av det â€aktuella†fönstret. Piltangenten
+\fIned\fP flyttar en rad medan \fIPgDn\fP rullar hela fönstret.
+
+.TP 4
+\fBVänster\fP,\fBHöger\fP\ \ :\fIRulla kolumner\fP
+Flytta vyn av visningsbara fält horisontellt en kolumn åt gången.
+
+\*(NT som en påminnelse, vissa fält/kolumner har inte fast bredd utan
+allokerar all återstånende skärmbredd när de är synliga. När man rullar till
+höger eller vänster kan den funktionen medföra i några oväntade resultat
+initialt.
+
+Dessutom finns det speciella möjligheter för alla fält med variabel bredd
+när de är det sista visade fältet. När det fältet nås via höger piltangent,
+och det alltså är den enda visade kolumnen, kan man fortsätta rulla
+horisontellt inom ett sÃ¥dant fält. \*(XC det interaktiva kommandot â€C†nedan
+för ytterligare information.
+
+.TP 4
+\fBHome\fP\ \ :\fIHoppa till hemposition\fP
+Positionera om visningen till orullade koordinater.
+
+.TP 4
+\fBEnd\fP\ \ :\fIHoppa till slutposition\fP
+Positionera om visningen så att den högraste kolumnen visar det sista
+visningsbara fältet och nedersta uppgiften representerar den sista
+uppgiften.
+
+\*(NT från denna position är det fortfarande möjligt att rulla \fIned\fP och
+\fIhöger\fP med \*(KAerna. Detta gäller ända tills en enda kolumn och en enda
+uppgift är kvar som det enda visade elementet.
+
+.TP 4
+\fBC\fP\ \ :\fIVisa rullningskoordinaters\fPväxel
+Växla ett informationsmeddelande som visas närhelst meddelanderaden inte
+används till något annat. Det meddelandet kan ta en av två former beroende
+på huruvida en kolumn med variabel bredd också har rullats eller inte.
+
+.nf
+ \fBrullkoordinater: y = n/n (uppgifter), x = n/n (fält)\fP
+ rullkoordinater: y = n/n (uppgifter), x = n/n (fält) \fB+ nn\fP
+.fi
+
+Koordinaterna som visas som \fBn\fP/\fBn\fP är relativa till det övre vänstra
+hörnet av det â€aktuella†fönstret. Det ytterligare â€\fB+\ nn\fP†representerar
+förskjutningen in i en kolumn med variabel bredd när den har rullats
+horisontellt. En sådan förskjutning går i normala 8\-teckens tabulatorsteg
+via höger och vänster piltangent.
+
+.RS +4
+.TP 4
+\fBy = n/n (uppgifter)\fP
+Det första \fBn\fP representerar den översta synliga uppgiften och styrs av
+\*(KSer. Det andra \fBn\fP uppdateras automatiskt att avspegla det totala
+antalet uppgifter.
+
+.TP 4
+\fBx = n/n (fält)\fP
+Det första \fBn\fP representerar den nänstraste visade uppgiften och styrs av
+\*(KSer. Det andra \fBn\fP är det totala antalet visningsbara fält och bestäms
+med det interaktiva kommandot â€\fBf\fPâ€.
+.RS -4
+
+.PP
+Det ovanstående interaktiva kommandona är\fB alltid\fP tillgängliga i \*(FM
+men\fB aldrig\fP tillgängliga i \*(AM om \*(TDen för \*(CW har slagits \*F.
+
+\*(NT när någon sorts filtrering är aktiv kan man räkna med några mindre
+avvikelser när man rullar eftersom inte alla uppgifter kommer vara
+synliga. Detta är särskilt uppenbart när man använder \*(KAerna upp/ned.
+
+.\" ......................................................................
+.SS "5d. SÖKA i ett fönster"
+.\" ----------------------------------------------------------------------
+Man kan använda dessa interaktiva kommandon för att hitta en uppgiftsrad som
+innehåller ett visst värde.
+
+.TP 4
+\fBL\fP\ \ :\fILokalisera en sträng\fP
+Man ombeds ge en skiftlägeskänslig sträng att lokalisera med start från de
+aktuella fönsterkoordinaterna. Det finns inga begränsningar på söksträngens
+innehåll.
+
+Sökningar är inte begränsade till värden från ett ensamt fält eller
+kolumn. Alla värden som visas i en uppgiftsrad är tillåtna i en
+söksträng. Man kan inkludera mellanslag, siffror, symboler och till och med
+skogsvyns illustration.
+
+Att skriva <Enter> utan någon indata får effekten att avaktivera
+tangenten â€&†tills en ny söksträng skrivs in.
+
+.TP 4
+\fB&\fP\ \ :\fILokalisera nästa\fP
+Under antagandet att en söksträng har etablerats, \*(We kommer försöka att
+hitta nästa förekomst.
+
+.PP
+När en träff hittas positioneras det aktuella fönstret om vertikalt så att
+uppgiftsraden som innehåller den strängen är först. Meddelandet om
+rullningskoordinater kan ge bekräftelse om sådan vertikal ompositionering
+(\*(Xc det interaktiva kommandot â€Câ€). Horisantal skrollning ändras dock
+aldrig via sökningar.
+
+Tillgängligheten av en matchande sträng kommer påverkas av följande
+faktorer.
+.RS +3
+.TP 3
+a. Vilka fält som är visningsbara bland alla tillgängliga,
+\*(Xt 3b. HANTERING av fält.
+.TP 3
+b. Rullning av ett fönster vertikalt och/eller horisontellt,
+\*(Xt 5c. RULLA ett fönster.
+.TP 3
+c. Tillståndet på växeln kommando/kommandorad,
+\*(Xc det interaktiva kommandot â€câ€.
+.TP 3
+d. Stabiliteten hos den valda sorteringskolumnen,
+till exempel är PID bra men %CPU dåligt.
+.RS -3
+
+.PP
+Om en sökning misslyckas kan att Ã¥terställa det â€aktuella†fönstret till
+hempositionen (orullat), att rulla horisontellt, att visa kommandorader
+eller att välja ett mer stabilt sorteringsfält ändå ge en lyckad
+â€&â€\-sökning.
+
+Det ovanstående interaktiva kommandona är\fB alltid\fP tillgängliga i \*(FM
+men\fB aldrig\fP tillgängliga i \*(AM om \*(TDen för \*(CW har slagits \*F.
+
+.\" ......................................................................
+.SS "5e. FILTRERA i ett fönster"
+.\" ----------------------------------------------------------------------
+Man kan använda denna funktion â€Ã¶vrigt filter†för att etablera
+urvalskriteria som sedan kommer att avgöra vilka uppgifter som visas i det
+â€aktuella†fönstret. SÃ¥dana filter kan göras varaktiga om de sparas i
+rcfile:n via det interaktiva kommandot â€Wâ€.
+
+Att skapa ett filter kräver: 1) ett fältnamn; 2) en operator; och 3) ett
+urvalsvärde, åtminstone. Detta är det mest komplexa av \*(Wes
+användarinmatningskrav, så när man gör ett misstag kommer återkallande av
+kommando att vara din vän. Kom ihåg \*(KAerna upp/ned eller deras alias när
+du får frågan om inmatning.
+
+\fBFiltergrunder\fP
+.RS +3
+.TP 3
+1. fältnamn är skiftlägeskänsliga och stavas som i huvudet
+.TP 3
+2. urvalsvärden behöver inte utgöra hela det visade fältet
+.TP 3
+3. ett urval är antingen skiftlägseokänsligt eller känsligt för skiftläge
+.TP 3
+4. standard är att inkludera, ett inledande â€!†markerar exkludering
+.TP 3
+5. flera urvalksriterium kan användas på ett \*(TW
+.TP 3
+6. inkluderings\- och exkluderingskriterium kan användas samtidigt
+.TP 3
+7. 1 likhetsfiltren och 2 jämförande filter kan blandas fritt
+.TP 3
+8. separata unika filter hanteras för varje \*(TW
+
+.PP
+Om ett fält inte är påslaget eller inte visas för närvarande kommer inte
+urvalskriteriumet påverka vad som visas. Skulle ett filtrerat fält senare
+bli synligt kommer urvalskriteriumet användas då.
+.RE
+
+\fBTangentbordssammanfattning\fP
+.TP 6
+\ \ \fBO\fP\ \ :\fIAnnat filter\fP (versalt)
+Man ombeds skapa ett \fBskiftlägskänsligt\fP filter.
+
+.TP 6
+\ \ \fBo\fP\ \ :\fIAnnat filter\fP (gement)
+Man ombeds skapa ett filter som \fBignorerar skiftläge\fP vid matchning.
+
+.TP 6
+\ \fB^O\fP\ \ :\fIVisa aktiva filter\fP (Ctrl\-tangent + â€oâ€)
+Detta kan fungera som en påminnelse om vilka filter som är aktiva i det
+â€aktuella†fönstret. En sammanfattning kommer visas pÃ¥ meddelanderaden till
+man trycker på tangenten <Enter>.
+
+.TP 6
+\ \ \fB=\fP\ \ :\fIÅterställ filtrering\fP i aktuellt fönster
+Detta tömmar alla gjorda urvalskriterier i det â€aktuella†fönstret. Det har
+även ytterligare effekter, så \*(Xt 4a. GLOBALA kommandon.
+
+.TP 6
+\ \ \fB+\fP\ \ :\fIÅterställ filtrering\fP i alla fönster
+Detta tömmar alla gjorda urvalskriterier i alla fönster, under antagandet
+att man är i \*(AM. Liksom med det interaktiva kommandot â€=†har även detta
+ytterligare konsekvenser, så man kan vilja \*(Xt 5b. KOMMANDON för fönster.
+
+.PP
+\fBInmatningskrav\fP
+.RS +3
+.P
+Vid frågan om urvalskriterier måste de data man ger ta en av två former. Det
+finns 3 nödvändiga bitar information, med en frivillig 4:e. Dessa exempel
+använder mellanslag för tydlighet men ens inmatning gör i allmänhet inte
+det.
+.nf
+ #1 \fB#2\fP #3 ( obligatorisk)
+ Fältnamn ? inkludera\-om\-värde
+ \fB!\fP Fältnamn ? \fBexkludera\fP\-om\-värde
+ #4 ( frivilligt )
+.fi
+
+Posterna #1, #3 och #4 bör vara självförklarande. Post \fB#2\fP representerar
+påde en nödvändig \fIavgränsare\fP och \fIoperatorn\fP som måste vara en av
+antingen likhet (â€=â€) eller relation (â€<†eller â€>â€).
+
+Likhetsoperatorn â€=†behöver bara en partiell matchning och det kan begränsa
+kraven pÃ¥ â€om\-värdetâ€. Relationsoperatorerna â€>†eller â€<†gör
+alltid strängjämförelser, även med numeriska fält. De är gjorda för att
+fungera med ett fälts standard\fIjustering\fP och med homogena data. När några
+fälts numeriska storlekar har varit föremål för \fIskalning\fP medan andra inte
+har det, då är datan inte längre homogen.
+
+Om man skapar ett relationsfilter och man \fBhar\fP ändrat standardvärdet för
+numerisk\- eller tecken\fIjustering\fP är det troligt att det filtret
+misslyckas. När ett relationsfilter används på ett minnesfält och man \fBinte har\fP ändrat \fIskalningen\fP kan det generera missledande resultat. Detta
+händer, till exempel, för att â€100.0m†(MiB) skulle förefalla större än
+â€1.000g†(GiB) när de jämförs som strängar.
+
+Om det filtrerade resultatet verkar misstänkt, kan att ändra justeringen
+eller skalningen åstadkomma det önskade resultatet. Se de interaktiva
+kommandona â€jâ€, â€J†och â€e†för ytterligare information.
+.RE
+
+\fBPotentiella problem\fP
+.RS +3
+.P
+Dessa \fBGRUPP\fPfilter kan ge exakt samma resultat eller så kan det andra inte
+visa någonting alls, bara ett blankt \*(TW.
+.nf
+ GRUPP=root ( endast samma sak när de )
+ GRUPP=ROOT ( skapats via gement â€o†)
+.fi
+
+Endera av dessa \fBRES\fP\-filter kan ge inkonsistenta och/eller missledande
+resultat, beroende på den aktuella minnesskalningsfaktorn. Eller så kan båda
+filtren ge exakt samma resultat.
+.nf
+ RES>9999 ( endast samma resultat när )
+ !RES<10000 ( minnesskalningen är â€KiB†)
+.fi
+
+Detta \fBaSmå\fP\-filter illustrerar ett problem som är unikt för skalbara
+fält. Detta specifika fält kan visa maximalt 4 siffror, utöver vilket värden
+automatiskt skalas till KiB eller större. Så medan värden större än 9999
+förekommer, kommer de att uppträda som 2.6m, 197k, etc.
+.nf
+ aSmå>9999 ( alltid ett tomt \*(TW )
+.fi
+.RE
+
+\fBPotentiella lösningar\fP
+.RS +3
+.P
+Dessa exempel illustrerar hur annan filtrering kan göras på ett kreativt
+sätt för att uppnå nästan vilket önskat resultat som helst. Enkla
+citationstecken visas ibland för att avgränsa mellanrum som är del av ett
+filter eller för att representera en begäran om status (^O) precist. Men om
+man använder dem med om\-värden i verkligheten skulle inga matchningar
+hittas.
+
+Under antagandet att fältet \fBaTR\fP visas kommer det första filtret resultera
+i att endast multitrådade processer visas. Det påminner oss också om att ett
+efterföljande mellanslag utgör en del av varje visat fält. Det andra filtret
+Ã¥stadkommer precis samma sak med mindre att skriva.
+.nf
+ !aTR=` 1 ' ( ` endast för tydlighet )
+ aTR>1 ( samma sak med mindre indata )
+.fi
+
+Med skogsvysläget aktivt och kolumnen \fBKOMMANDO\fP synlig fäller det här
+filtret i praktiken ihop barnprocesser så att endast 3 nivåer visas.
+.nf
+ !KOMMANDO=` `\- ' ( ` endast för tydlighet )
+.fi
+
+De sista två filtren kommer som svar på tangenten för statusbegärande
+(^O). I praktiken skulle varje filter ha krävt en separat
+inmatning. Exemplet \fBPR\fP visar de två samtidiga filtren som behövs för att
+visa uppgifter med prioriteter på 20 eller mer, eftersom några kan vara
+negativa. Sedan genom att utnyttja efterföljande blanktecken skulle serien
+av \fBaSmÃ¥\fP\-filter Ã¥stadkomma det misslyckade syftet â€9999†som diskuterades
+ovan.
+.nf
+ `PR>20' + `!PR=\-' ( 2 för rätt resultat )
+ `!aSmå=0 ' + `!aSmå=1 ' + `!aSmå=2 ' + `!aSmå=3 ' …
+.fi
+.RS -3
+
+.\" ----------------------------------------------------------------------
+.SH "6. FILER"
+.\" ----------------------------------------------------------------------
+.SS "6a. PERSONLIG konfigurationfil"
+.\" ----------------------------------------------------------------------
+Denna fil skapas eller uppdateras via det interaktiva kommandot â€Wâ€.
+
+Den gamla versionen skrivs som â€$HOME/.ditt\-namn\-4\-\*(We†+ â€rc†med en
+inledande punkt.
+
+En nyligen skapad \*(CF skrivs som â€procps/ditt\-namn\-4\-\*(We†+ â€rc†utan en
+inledande punkt. Procps\-katalogen kommer ligga under antingen
+$XDG_CONFIG_HOME när den är satt till en aboslut sökväg eller katalogen
+$HOME/.config.
+
+Även om den inte är avsedd att redigeras manuellt följer här den allmänna
+layouten:
+.nf
+ global # rad 1: programmets namn\-/aliasnotation
+ " # rad 2: id,altscr,irixps,delay,curwin
+ för var # rad a: winname,fieldscur
+ fönster # rad b: winflags,sortindx,maxtasks,etc
+ " # rad c: summclr,msgsclr,headclr,taskclr
+ global # rad 15: ytterligare blandade inställningar
+ " # eventuella återstående rader är ägnade åt valfria
+ " # aktiva â€andra filter†diskuterade i avsnitt 5e ovan
+ " # plus â€inspektionsâ€\-poster diskuterade i avsnitt 6b nedan
+.fi
+
+Om inte en giltig absolut sökväg till rcfil:en kan skapas kommer
+anpassningar gjorda till en körade \*(We vara omöjliga att bevara.
+
+.\" ......................................................................
+.SS "6b. LÄGGA TILL INSPEKTIONSposter"
+.\" ----------------------------------------------------------------------
+För att utnyttja det interaktiva kommandot â€Y†mÃ¥ste man lägga till poster
+till \fBslutet\fP av \*(Wes personliga \*(CF. SÃ¥dana poster visar en fil som
+skall läsas eller kommandon/rör som skall köras vars resultat sedan kommer
+visas i ett separat rullbart, sökbart fönster.
+
+Om man inte vet platsen för eller namnet på ens \*(We\-rcfil, använd det
+interaktiva kommandot â€W†för att skriva om den och notera dessa detaljer.
+
+Inspektionsposter kan läggas till med en omdirigerad echo eller genom att
+redigera \*(CFen. Omdirigering av echo riskerar att skriva över rcfile:n
+ifall det skulle ersätta (>) istället för att lägga till (>>)
+till den filen. Omvänt, när man använder en redigerare måste man vara noga
+att inte skada befintliga rader, där några av dem kan innehålla oskrivbara
+data eller ovanliga tecken beroende på versionen av \*(We under vilken den
+\*(CFen sparades.
+
+De inspektionsposter som börjar med ett â€#â€\-tecken som ignoreras, oavsett
+deras innehåll. Annars består de av följande 3 element, varav vart och ett
+\fImÃ¥ste\fP separeras av ett tabulatortecken (alltsÃ¥ 2 â€\et†totalt):
+
+.nf
+ .type: ordagrannt â€file†eller â€pipeâ€
+ .name: val visat på inspektionsskärmen
+ .fmts: sträng representerande en sökväg eller ett kommando
+.fi
+
+De två typerna av inspektionsposter är \fIinte\fP utbytbara. De markerade
+â€\fBfile\fP†kommer hämtas med fopen och mÃ¥ste referera en ensam fil i
+â€.fmtsâ€\-elementet. Poster som anger â€\fBpipe\fP†kommer använda popen, deras
+â€.fmtsâ€\-element kan innehÃ¥lla flera kommandon i rör och inget av dem kan
+vara interaktivt.
+
+Om filen eller röret som representeras i â€.fmts†hanterar den specifika PID
+som matas in eller accepteras på förfrågan så måste formatsträngen även
+innehÃ¥lla specificeraren â€\fB%d\fPâ€, som dessa exempel illustrerar.
+
+.nf
+ .fmts= /proc/\fI%d\fP/numa_maps
+ .fmts= lsof \-P \-p\fI %d\fP
+.fi
+
+Specifikt för poster av typen â€\fBpipe\fP†kan man även vilja omdirigera
+standard fel till standard ut för ett mer fullständigt
+resultat. Formatsträngen blir alltså:
+
+.nf
+ .fmts= pmap \-x %d\fI 2>&1\fP
+.fi
+
+Här är exempel på båda typerna av inspektionsposter som de kan förekomma i
+rcfil:en. Den första posten kommer ignoreras på grund av det inledande
+â€#â€\-tecknet. För tydlighets skull är lÃ¥tsastabulatorillustrationen (^I)
+omgiven av ett extra mellanslag men de faktiska tabulatorerna skall inte
+vara det.
+.nf
+
+ # pipe ^I Uttag ^I lsof \-n \-P \-i 2>&1
+ pipe ^I Öppna filer ^I lsof \-P \-p %d 2>&1
+ file ^I NUMA\-info ^I /proc/%d/numa_maps
+ pipe ^I Logg ^I tail \-n100 /var/log/syslog | sort \-Mr
+.fi
+
+Med undantag för den utkommenterade posten ovan visar dessa exempel vad som
+skulle kunna echo:as för att åstadkomma liknande resultat, under antagandet
+att rcfil:ens namn var â€.toprcâ€. PÃ¥ grund av de inbäddade tabulatortecknen
+skall dock var och en av dessa rader föregÃ¥s av â€\fB/bin/echo \-e\fPâ€, inte bara
+ett ensamt â€echoâ€, för att aktivera tolkning av omvända snedstreck oavsett
+vilket skal man använder.
+
+.nf
+ "pipe\etÖppna filer\etlsof \-P \-p %d 2>&1" >> ~/.toprc
+ "file\etNUMA\-info\et/proc/%d/numa_maps" >> ~/.toprc
+ "pipe\etLogg\ettail \-n200 /var/log/syslog | sort \-Mr" >> ~/.toprc
+.fi
+
+Om någon inspektionspost man skapar ger utdata med oskrivbara tecken kommer
+de visas med antingen notationen ^C eller hexadesimalt <FF> där
+formen beror på deras värde. Detta gäller även tabulatortecken, vilka kommer
+visas som â€^Iâ€. Om man vill ha en mer sann representation bör alla inbäddade
+tabulatorer expanderas. Följande exempel tar vad som skulle kunna ha varit
+en â€fileâ€\-post men använder en â€pipe†istället för att expandera de
+inbäddade tabulatorerna.
+
+.nf
+ # det följande skulle ha innehÃ¥llit â€\et†…
+ # file ^I <ditt_namn> ^I /proc/%d/status
+ # men detta kommer eliminera inbäddade â€\et†…
+ pipe ^I <ditt_namn> ^I cat /proc/%d/status | expand \-
+.fi
+
+\*(NT några program kan bero på \fISIGINT\fP för att avsluta. Därför måste man,
+om en â€\fBpipe\fP†som den följande skapas, använda Ctrl\-C för att avsluta den
+för att kunna se resultatet. Detta är det enda tillfälle dÃ¥ ett â€^C†inte
+även kommer avsluta \*(We.
+
+.nf
+ pipe ^I Spåra ^I /usr/bin/strace \-p %d 2>&1
+.fi
+
+Slutligen, även om poster av typen â€\fBpipe\fP†har diskuterats i termer av rör
+och kommandon finns det inget som hindrar att man också inkluderar
+\fIskalskript\fP. Kanske även nyskapade skript gjorde specifikt för det
+interaktiva kommandot â€Yâ€.
+
+Till exempel, allteftersom antalet inspektposter man har växer med tiden
+kommer raden â€Alternativ:†att huggas av när skärmbredden överskrids. Det
+påverkar inte funktionen annat än att det gör några val osynliga. Om några
+val förloras på grund av avhuggning men man vill se fler alternativ finns
+det dock en enkel lösning som antyds nedan.
+
+.nf
+ Inspektion Paus vid pid …
+ Använd: vänster/höger och <Retur> …
+ Alternativ: hjälp 1 2 3 4 5 6 7 8 9 10 11 …
+.fi
+
+Posterna i \*(Wes rcfil kunde ha ett nummer som elementet â€.name†och posten
+â€hjälp†kunde identifiera ett skalskript man skriver som förklarar vad dessa
+numrerade val faktiskt betyder. På så sätt kan många fler val vara synliga.
+
+.\" ......................................................................
+.SS "6c. SYSTEMkonfigurtionsfil"
+.\" ----------------------------------------------------------------------
+Denna \*(CF representerar standardvärden för alla användare som inte har
+sparat sin egen \*(CF. Formatet speglar exakt den personliga \*(CFen och kan
+även innehÃ¥lla â€inspektionsâ€\-poster som förklaras ovan.
+
+Att skapa den är enkelt.
+
+1. Konfigurera \*(We som den skall vara för installationen och bevara den
+konfigurationen med det interaktiva kommandot â€Wâ€.
+
+2. Lägg till och prova eventuella önskade â€inspektionsâ€\-poster.
+
+3. Kopiera den \*(CFen till katalogen \fI/etc/\fP som â€\fBtopdefaultrc\fPâ€.
+
+.\" ......................................................................
+.SS "6d. SYSTEMbegränsningsfil"
+.\" ----------------------------------------------------------------------
+Förekomsten av denna fil kommer påverka vilken version av hjälpskärmen som
+visas för en vanlig användare.
+
+Viktigare än så kommer den begränsa vad vanliga användare tillåts göra när
+\*(We kör. De kommer inte att kunna ge följande kommandon.
+.nf
+ k Döda en uppgift
+ r Ändra nice\-värde för en uppgift
+ d el. s Ändra fördröjnings\-/sovintervall
+.fi
+
+Denna \*(CF skapas inte av \*(We. Istället skapas den manuellt och placeras
+i katalogen \fI/etc/\fP som â€\fBtoprc\fPâ€.
+
+Den skall ha precis två rader, som visas i detta exempel:
+.nf
+ s # rad 1: växel för byte till säkert läge
+ 5.0 # rad 2: fördröjningsintervall i sekunder
+.fi
+
+.\" ----------------------------------------------------------------------
+.SH "7. MILJÖVARIABLER"
+.\" ----------------------------------------------------------------------
+Värdet som sätts på följande är oviktigt, bara att den finns.
+
+.IP LIBPROC_HIDE_KERNEL
+Detta kommer förhindra visningen av alla kärntrådar och utesluta sådana
+processer från \*(SAts sammanräkning av uppgifter/trådar.
+
+.\" ----------------------------------------------------------------------
+.SH "8. DUMMA TRICK\-exempel"
+.\" ----------------------------------------------------------------------
+Många av dessa trick fungerar bäst när man ger \*(We ett lyft i
+schemaläggningen. Så planera att starta den med ett nice\-värde på \-10, under
+antagandet att du har rätt till det.
+
+.\" ......................................................................
+.SS "7a. Kärnmagi"
+.\" ----------------------------------------------------------------------
+.\" sorry, just can't help it -- don't ya love the sound of this?
+.\" ( apparently AM static was a potential concern )
+För dessa dumma trick behöver \*(We \*(FM.
+
+.IP \(bu 3
+Användargränssnittet, via frågor och hjälp, implicerar avsiktligen att
+fördröjningsintervallet är begränsat till tiondelar av en sekund. Det står
+en dock fritt att sätta godtyckligt önskat värde. Vill man se Linux i sin
+bästa schemaläggningsform, prova en fördröjning på 0,09 sekunder eller
+mindre.
+
+För detta experiment öppna en xterm och maximera den. Gör sedan följande:
+.nf
+ . ge en schemaläggningslyft och en kort fördröjning via
+ nice \-n \-10 \*(We \-d.09
+ . håll markering av sorteringskolumn \*F för att
+ minimera sökvägslängd
+ . slå \*O markering med invers text för betoning
+ . prova olika sorteringskolumner (TID/MIN fungerar bra),
+ och vanlig eller omvänd sortering för att ta fram de
+ mest aktiva processerna i bild
+.fi
+
+Vad man får se är en väldigt upptagen Linux som gör vad den alltid gjort,
+men det fanns inget program tillgängligt för att illustrera detta.
+
+.IP \(bu 3
+Under en xterm med â€vitt\-pÃ¥\-svartâ€\-färger sätt i \*(Wes färgavbildningsskärm
+uppgiftsfärgen till svart och se till att uppgiftsmarkering är satt till
+fetstil, inte invers. Sätt sedan fördröjningsintervallet till runt 0,3
+sekunder.
+
+Efter att ha fått de mest aktiva processerna i bild är vad man får se de
+spöklika avbilderna av de jus nu körande uppgifterna.
+
+.IP \(bu 3
+Radera den befintliga rcfil:en elelr skapa en ny symbolisk länk. Starta
+denna nya version och skriv sedan â€T†(en hemlig tangent, \*(Xt
+4c. uppgiftsomrÃ¥dets kommandon, SORTERING) följt av â€W†och â€qâ€. Slutligen,
+starta om programmet med \-d0 (noll i fördröjning).
+
+Skärmen kommer uppdateras med tre gånger så hög hastighet som den tidigare
+\*(We, en 300\ % hastighetsuppdatering. Eftersom \*(We klättrar uppför
+TID\-stegen, var så tålmodig som möjligt under spekulation huruvida \*(We
+någonsin kommer nå \*(Wepen, eller inte.
+
+.\" ......................................................................
+.SS "7b. Studsande fönster"
+.\" ----------------------------------------------------------------------
+För dessa dumma trick behöver \*(We \*(AM.
+
+.IP \(bu 3
+Med 3 eller 4 \*(TDar synliga, välj något annat fönster än det sista och slå
+\*F inaktiva processer med det interaktiva kommandot â€iâ€. Beroende pÃ¥ var du
+använde â€i†studsar ibland flera \*(TDar och ibland är det som ett dragspel,
+eftersom \*(We gör sitt bästa för att allokera plats.
+
+.IP \(bu 3
+Sätt varje fönsters sammanfattningsrader olika: en utan minne (â€mâ€); ett
+annat utan tillstÃ¥nd (â€tâ€); kanske ett utan nÃ¥got alls, bara
+meddelanderaden. HÃ¥ll sedan ner â€a†eller â€w†och se en variation av
+studsande fönster \*(Em hoppande fönster.
+
+.IP \(bu 3
+Visa alla 4 fönstren och för vart och ett i ordning sätt inaktiva processer
+\*F med det interaktiva kommandot â€iâ€. Du har just gÃ¥tt in i zonen â€extrem
+studsâ€.
+
+.\" ......................................................................
+.SS "7c. Den stora fågelns fönster"
+.\" ----------------------------------------------------------------------
+Detta dumma trick behöver också \*(AM.
+
+.IP \(bu 3
+Visa alla 4 fönster och se till att 1:Def är det â€aktuella†fönstret. Öka
+sedan fönsterstorleken med det interaktiva kommandot â€n†tills alla de andra
+\*(TDarna â€tryckts ur boetâ€.
+
+När de alla har tryckts undan, växla mellan alla synliga/osynliga fönster
+genom att använda \*(CTan â€_â€. Fundera sedan pÃ¥ detta:
+.br
+ narras \*(We eller berättar den sanningsenligt din påtvingade sanning?
+
+.\" ......................................................................
+.SS "7d. Den gamla förväxlingen"
+.\" ----------------------------------------------------------------------
+Detta dumma trick fungerar bäst utan \*(AM eftersom justering är aktivt på
+basis av varje fönster.
+
+.IP \(bu 3
+Starta \*(We och gör KOMMANDO till den sista (högraste) kolumnen som
+visas. Om nödvändigt, använd \*(CTn â€c†för att visa kommandorader och se
+till att skogsvyläget är aktivt med \*(CTn â€Vâ€.
+
+Använd sedan piltangenterna upp/ned för att placera skärmen så att några
+avhuggna kommandorader visas (â€+†i sista positionen). Man kan behöva ändra
+storlek på sin xterm för att åstadkomma trunkering.
+
+Använd slutligen \*(CTn â€j†för att göra kolumnen KOMMANDO högerjusterad.
+
+Använd nu höger piltangent för att nå kolumnen KOMMANDO. Fortsätt med höger
+piltangent, och titta noga riktingen på rörelsen för kommandoraderna som
+visas.
+
+.br
+ några rader rör sig till vänster, medan andra rör sig åt höger
+
+ slutligen kommer alla rader växla runt, och röra sig åt höger
+
+.\" ----------------------------------------------------------------------
+.SH "9. FEL"
+.\" ----------------------------------------------------------------------
+Skicka felrapporter till
+.UR procps@freelists.org
+.UE .
+Skicka synpunkter på översättningen till
+.UR tp\-sv@listor.tp\-sv.se
+.UE
+
+
+.\" ----------------------------------------------------------------------
+.SH "10. SE även"
+.\" ----------------------------------------------------------------------
+\fBfree\fP(1), \fBps\fP(1), \fBuptime\fP(1), \fBatop\fP(1), \fBslabtop\fP(1), \fBvmstat\fP(8),
+\fBw\fP(1)
diff --git a/po-man/sv/uptime.1 b/po-man/sv/uptime.1
new file mode 100644
index 0000000..1148370
--- /dev/null
+++ b/po-man/sv/uptime.1
@@ -0,0 +1,75 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH UPTIME 1 "December 2012" procps\-ng Användarkommandon
+.SH NAMN
+uptime — Berätta hur länge systemet har kört.
+.SH SYNOPSIS
+\fBuptime\fP [\fIflaggor\fP]
+.SH BESKRIVNING
+\fBuptime\fP visar en rad med följande information. Den aktuella tiden, hur
+länge systemet har kört, hur många användare som för tillfället är inloggade
+och systemets genomsnittslast under de senaste 1, 5 och 15 minuterna.
+.PP
+Detta är samma information som finns i huvudraden som visas av \fBw\fP(1).
+.PP
+Systemets genomsnittslast är det genomsnittliga antalet processer som
+antingen är i körbart eller ej avbrytbart tillstånd. En process i körbart
+tillstånd använder antingen CPU:n eller väntar på att använda CPU:n. En
+process i ej avbrytbart tillstånd väntar på någon I/O\-åtkomst, t.ex. väntar
+på disk. Genomsnitten tas över de tre tidsintervallen. Lastgenomsnitt är
+inte normaliserade för antalet CPU:er i ett system, så en genomsnittslast på
+1 betyder att ett system med en ensam CPU är belastat hela tiden medan på
+ett system med 4 CPU:er betyder det att det var inaktivt 75\ % av tiden.
+.SH FLAGGOR
+.TP
+\fB\-p\fP, \fB\-\-pretty\fP
+visa uppetiden i ett snyggt format
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+visa denna hjälptext
+.TP
+\fB\-s\fP, \fB\-\-since\fP
+systemet är uppe sedan, på formatet åååå\-mm\-dd HH:MM:SS
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+visa versionsinformation och avsluta
+.SH FILER
+.TP
+\fI/var/run/utmp\fP
+information om vem som är inloggad för närvarande
+.TP
+\fI/proc\fP
+processinformation
+.SH UPPHOVSMÄN
+\fBuptime\fP skrevs av
+.UR greenfie@gauss.\:rutgers.\:edu
+Larry Greenfield
+.UE
+och
+.UR johnsonm@sunsite.\:unc.\:edu
+Michael K. Johnson
+.UE
+.SH "SE ÄVEN"
+\fBps\fP(1), \fBtop\fP(1), \fButmp\fP(5), \fBw\fP(1)
+.SH "RAPPORTERA FEL"
+Skicka felrapporter till
+.UR procps@freelists.org
+.UE
+Skicka synpunkter på översättningen till
+.UR tp\-sv@listor.tp\-sv.se
+.UE
diff --git a/po-man/sv/vmstat.8 b/po-man/sv/vmstat.8
new file mode 100644
index 0000000..764420f
--- /dev/null
+++ b/po-man/sv/vmstat.8
@@ -0,0 +1,185 @@
+.\"
+.\" Copyright (c) 2002-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2012-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1994 Henry Ware <al172@yfn.ysu.edu>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH VMSTAT 8 2023\-01\-18 procps\-ng Systemadministration
+.SH NAMN
+vmstat — Rapportera statistik över virtuellt minne
+.SH SYNOPSIS
+\fBvmstat\fP [flaggor] [\fIfördröjning\fP [\fIantal\fP]]
+.SH BESKRIVNING
+\fBvmstat\fP rapporterar information om processer, minne, sidväxling,
+block\-I/O, fällor, disk\- och cpu\-aktivitet.
+.PP
+Den första producerade rapporten ger genomsnitt sedan senaste omstarten.
+Följande rapporter ger information om en samplingsperiod med längden
+\fIfördröjning\fP. Process\- och minnesrapporterna är ögonblickliga i båda
+fallen.
+.SH FLAGGOR
+.TP
+\fIfördröjning\fP
+\fIFördröjningen\fP mellan uppdateringar i sekunder. Om ingen \fIfördröjning\fP
+anges skrivs endast en rapport med genomsnittsvärdena sedan start.
+.TP
+\fIantal\fP
+Antal uppdateringar. I avsaknad av \fIantal\fP, när \fIfördröjning\fP är
+definierad, är standardvärdet oändligt.
+.TP
+\fB\-a\fP, \fB\-\-active\fP
+Visa aktivt och inaktivt minne, förutsatt en kärna 2.5.41 eller bättre.
+.TP
+\fB\-f\fP, \fB\-\-forks\fP
+Flaggan \fB\-f\fP visar antalet avgreningar sedan start. Detta inkluderar
+systemanropen fork, vfork och clone, och är likvärdigt med antalet skapade
+uppgifter. Varje process representeras av en eller flera uppgifter,
+beroende på trådanvändning. Denna visning uppdateras inte.
+.TP
+\fB\-m\fP, \fB\-\-slabs\fP
+Visa skivinformation.
+.TP
+\fB\-n\fP, \fB\-\-one\-header\fP
+Visa endast huvudet en gång istället för periodiskt.
+.TP
+\fB\-s\fP, \fB\-\-stats\fP
+Visar en tabell över olika händelseräknare och minnesstatistik. Denna
+visning upprepas inte.
+.TP
+\fB\-d\fP, \fB\-\-disk\fP
+Rapportera diskstatistik (2.5.70 eller senare krävs).
+.TP
+\fB\-D\fP, \fB\-\-disk\-sum\fP
+Rapportera en del sammanfattande statistik om diskaktivitet.
+.TP
+\fB\-p\fP, \fB\-\-partition\fP \fIenhet\fP
+Detaljerad statistik om partitioner (2.5.70 eller senare krävs).
+.TP
+\fB\-S\fP, \fB\-\-unit\fP \fItecken\fP
+Byter utmatning mellan 1000 (\fIk\fP), 1024 (\fIK\fP), 1000000 (\fIm\fP) eller
+1048576 (\fIM\fP) byte. Observera att detta inte ändrar fälten för växling
+(vi/vo) eller block (bi/bu).
+.TP
+\fB\-t\fP, \fB\-\-timestamp\fP
+Lägg till en tidsstämpel till varje rad
+.TP
+\fB\-w\fP, \fB\-\-wide\fP
+Brett utmatningsläge (användbart för system med större mängder minne, där
+standardläget för utmatning drabbas av oönskade trasiga kolumner).
+Utmatningen är bredare än 80 tecken per rad.
+.TP
+\fB\-y\fP, \fB\-\-no\-first\fP
+Uteslut den första rapporten med statistik sedan systemstart.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Visa versionsinformation och avsluta.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Visa hjälp och avsluta.
+.PD
+.SH "FÄLTBESKRIVNING FÖR VM\-LÄGET"
+.SS Procs
+.nf
+k: Antalet körbara processer (körande eller väntande på körtid).
+b: Antalet processer blockerade väntande på I/O för att fortsätta.
+.fi
+.SS Minne
+Dessa påverkas av flaggan \fB\-\-unit\fP.
+.nf
+växl: mängden använt växlingsminne.
+fritt: mängden oanvänt minne.
+buff: mängden minne använt som buffertar.
+cache: mängden minne använt som cache.
+inakt: mängden inaktivt minne. (flaggan \fB\-a\fP)
+aktivt: mängden aktivt minne. (flaggan \fB\-a\fP)
+.fi
+.SS Växling
+Dessa påverkas av flaggan \fB\-\-unit\fP.
+.nf
+vi: Mängden minne växlat in från disk (/s).
+vu: Mängden minne växlat ut till disk (/s).
+.fi
+.SS IO
+.nf
+bi: Kibibyte mottagna från en blockenhet (KiB/s).
+bu: Kibibyte skickade till en blockenhet (KiB/s).
+.fi
+.SS System
+.nf
+avb: Antalet avbrott per sekund, inklusive klockan.
+ktxb: Antalet kontextbyten per sekund.
+.fi
+.SS CPU
+Detta är procentandelar av total CPU\-tid.
+.nf
+an: Tid tillbringad att köra icke\-kärnkod. (användartid, inklusive nice\-tid)
+sy: Tid tillbringad att köra kärnkod. (systemtid)
+in: Tid tillbringad inaktiv. Före Linux 2.5.41 inkluderar detta IO\-väntetid.
+vä: Tid tillbringad väntande på IO. Före Linux 2.5.41 inkluderat i inaktiv.
+st: Tid stulen från en virtuell maskin. Före Linux 2.6.11, okänd.
+gä: Tid tillbringar med att köra KVM\-gästkod (gästtid, inklusive gäst\-nice).
+.fi
+.SH "FÄLTBESKRIVNING FÖR DISK\-LÄGET"
+.SS Läsningar
+.nf
+totalt: Totalt avslutade lyckade läsningar
+grupp: grupperade läsningar (resulterar i en I/O)
+sektor: Sektorer lyckat lästa
+ms: millisekunder tillbringat med läsningar
+.fi
+.SS Skrivningar
+.nf
+totalt: Totalt avslutade lyckade skrivningar
+grupp: grupperade skrivningar (resulterar i en I/O)
+sektor: Sektorer lyckat skrivna
+ms: millisekunder tillbringat med skrivningar
+.fi
+.SS IO
+.nf
+akt: pågående I/O
+s: sekunder tillbringat i I/O
+.fi
+.SH "FÄLTBESKRIVNING FÖR DISKPARTITIONSLÄGET"
+.nf
+läsningar: Totalt antal läsningar skickade till denna partition
+lästa sektorer: Totalt lästa sektorer från partitionen
+skrivningr: Totalt antal skrivningar skickade till denna partition
+beg skrivn: Totalt antal skrivbegäranden gjorda för partitionen
+.fi
+.SH "FÄLTBESKRIVNING FÖR SKIVLÄGET"
+Slab\-läge visar statistik per slab, för mer information om denna information
+se \fBslabinfo\fP(5)
+.PP
+.nf
+cache: Cachenamn
+antal: Antal för närvarande aktiva objekt
+totalt: Totalt antal tillgängliga objekt
+strlk: Storlek på varje objekt
+sidor: Antal sidor med åtminstone ett aktivt objekt
+.fi
+.SH OBSERVERA
+\fBvmstat\fP kräver läsåtkomst av filer under \fI/proc\fP. Flaggan \fB\-m\fP kräver
+läsåtkomst av \fI/proc/slabinfo\fP vilket kanske inte är tillgängligt för
+vanliga användare. Monteringsflaggor för \fI/proc\fP såsom \fIsubset=pid\fP kan
+också påverka vad som är synligt.
+.SH "SE ÄVEN"
+\fBfree\fP(1), \fBiostat\fP(1), \fBmpstat\fP(1), \fBps\fP(1), \fBsar\fP(1), \fBtop\fP(1),
+\fBslabinfo\fP(5)
+.SH "RAPPORTERA FEL"
+Skicka felrapporter till
+.UR procps@freelists.org
+.UE
+Skicka synpunkter på översättningen till
+.UR tp\-sv@listor.tp\-sv.se
+.UE
diff --git a/po-man/sv/w.1 b/po-man/sv/w.1
new file mode 100644
index 0000000..53c9af1
--- /dev/null
+++ b/po-man/sv/w.1
@@ -0,0 +1,108 @@
+.\"
+.\" Copyright (c) 2009-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2015-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2012-2013 Jaromir Capik <jcapik@redhat.com>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2004 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH W 1 2023\-01\-15 procps\-ng Användarkommandon
+.SH NAMN
+w — Visa vem som är inloggad och vad de gör.
+.SH SYNOPSIS
+\fBw\fP [\fIflaggor\fP] [\fIanvändare\fP]
+.SH BESKRIVNING
+\fBw\fP visar information om de användare som just nu är inloggade på maskinen
+och deras processer. Rubrikraden visar, i denna ordning, den aktuella tiden,
+hur länge systemet har kört, hur många användare som för tillfället är
+inloggade och systemets genomsnittslast under de senaste 1, 5 och 15
+minuterna.
+.PP
+Följande poster visas för varje användare: inloggningsnamn, tty\-namnet,
+fjärrvärden, inloggningstid, inaktiv tid, JCPU, PCPU och kommandoraden för
+deras aktuella process.
+.PP
+JCPU\-tiden är tiden som använts av alla processer kopplade till tty:n. Det
+inkluderar inte tidigare bakgrundsjobb, men det inkluderar de för närvarande
+körande bakgrundsjobben.
+.PP
+PCPU\-tiden är tiden som används av den aktuella processen, med namnet i
+â€vadâ€\-fältet.
+.SH KOMMANDORADSFLAGGOR
+.TP
+\fB\-h\fP, \fB\-\-no\-header\fP
+Skriv inte ut huvudet.
+.TP
+\fB\-u\fP, \fB\-\-no\-current\fP
+Ignorerar användarnamnet när programmet listar ut den aktuella processen och
+cpu\-tider. För att demonstrera detta, gör \fBsu\fP och gör \fBw\fP och \fBw \-u\fP.
+.TP
+\fB\-s\fP, \fB\-\-short\fP
+Använd kort format. Skriv inte ut inloggningstid, JCPU\- eller PCPU\-tider.
+.TP
+\fB\-f\fP, \fB\-\-from\fP
+Växla utskriften av fältet \fBfrån\fP (fjärrvärdsnamn). Standard i utgåvan är
+att fältet \fBfrån\fP inte visas, men din systemadministratör eller
+distributionsansvarige kan ha kompilerat en version i vilken fältet \fBfrån\fP
+visas som standard.
+.TP
+\fB\-\-help\fP
+Visa hjälptext och avsluta.
+.TP
+\fB\-i\fP, \fB\-\-ip\-addr\fP
+Visa IP\-adress istället för värdnamn i fältet \fBfrån\fP.
+.TP
+\fB\-p\fP, \fB\-\-pids\fP
+Visa pid för inloggningsprocessen/â€vadâ€\-processen i fältet â€vadâ€.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Visa versionsinformation.
+.TP
+\fB\-o\fP, \fB\-\-old\-style\fP
+Gammaldags utmatning. Skriver mellanslag för inaktiva tider mindre än en
+minut.
+.TP
+\fBanvändare \fP
+Visa information endast om den angivna användaren.
+.SH MILJÖ
+.TP
+PROCPS_USERLEN
+Åsidosätt standardbredden på kolumnen för användarnamn. Standard är 8.
+.TP
+PROCPS_FROMLEN
+Åsidosätt standardbredden på kolumnen från. Standard är 16.
+.SH FILER
+.TP
+\fI/var/run/utmp\fP
+information om vem som är inloggad för närvarande
+.TP
+\fI/proc\fP
+processinformation
+.SH "SE ÄVEN"
+\fBfree\fP(1), \fBps\fP(1), \fBtop\fP(1), \fBuptime\fP(1), \fButmp\fP(5), \fBwho\fP(1)
+.SH UPPHOVSMÄN
+\fBw\fP skrevs om nestan fullständigt av Charles Blake, baserat på versionen av
+.UR greenfie@gauss.\:rutgers.\:edu
+Larry Greenfield
+.UE
+och
+.UR johnsonm@\:redhat.\:com
+Michael K. Johnson
+.UE
+.SH "RAPPORTERA FEL"
+Skicka felrapporter till
+.UR procps@freelists.org
+.UE
+Skicka synpunkter på översättningen till
+.UR tp\-sv@listor.tp\-sv.se
+.UE
diff --git a/po-man/sv/watch.1 b/po-man/sv/watch.1
new file mode 100644
index 0000000..c563895
--- /dev/null
+++ b/po-man/sv/watch.1
@@ -0,0 +1,201 @@
+.\"
+.\" Copyright (c) 2009-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2018-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2003 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH WATCH 1 2023\-01\-17 procps\-ng Användarkommandon
+.SH NAMN
+watch — kör ett program periodiskt och visa utdata i helskärm
+.SH SYNOPSIS
+\fBwatch\fP [\fIflaggor\fP] \fIkommando\fP
+.SH BESKRIVNING
+\fBwatch\fP kör \fIkommando\fP upprepade gånger, och visar dess utmatning och fel
+(den första skärmen). Detta gör att du kan se programmets utdata ändras
+över tiden. Som standard körs \fIkommando\fP varannan sekund och \fBwatch\fP körs
+tills det avbryts.
+.SH FLAGGOR
+.TP
+\fB\-b\fP, \fB\-\-beep\fP
+Pip om kommandot har en slutstatus skild från noll.
+.TP
+\fB\-c\fP, \fB\-\-color\fP
+Tolka ANSI:s färg\- och stilsekvenser.
+.TP
+\fB\-C\fP, \fB\-\-no\-color\fP
+Tolka inte ANSI:s färg\- och stilsekvenser.
+.TP
+\fB\-d\fP, \fB\-\-differences\fP[=\fIpermanent\fP]
+Markera skillnaderna mellan påföljande uppdateringar. Om det valfria
+argumentet \fIpermanent\fP anges kommer \fBwatch\fP visa alla ändringar sedan den
+första iterationen.
+.TP
+\fB\-e\fP, \fB\-\-errexit\fP
+Frys uppdateringar vid kommandofel, och avsluta efter en tangenttryckning.
+.TP
+\fB\-g\fP, \fB\-\-chgexit\fP
+Avsluta när utdata från \fIkommando\fP ändras.
+.TP
+\fB\-n\fP, \fB\-\-interval\fP \fIsekunder\fP
+Ange uppdateringsintervall. Kommandot kommer inte tillåta snabbare
+uppdateringar än 0,1 sekunders intervall, då mindre värden kommer
+konverteras. BÃ¥de â€.†och â€,†fungerar för alla lokaler. Miljövariabeln
+\fBWATCH_INTERVAL\fP kan användas för att sätta ett bestående annat intervall
+än standard (och följer samma regler och formatering).
+.TP
+\fB\-p\fP, \fB\-\-precise\fP
+Gör att \fBwatch\fP försöker köra \fIkommando\fP var \fB\-\-interval\fP \fIsekund\fP.
+Prova det med \fBntptime\fP (om tillgängligt) och notera hur delarna av
+sekunden är (nästan) desamma, till skillnad mot det normala läget då de ökar
+kontinuerligt.
+.TP
+\fB\-q\fP, \fB\-\-equexit\fP <cykler>
+Avsluta när utmatningen från \fIkommando\fP inte ändras under det angivna
+antalet cykler.
+.TP
+\fB\-r\fP, \fB\-\-no\-rerun\fP
+Kör inte programmet när terminalens storlek ändras, utdata från programmet
+kommer återkomma vid nästa ordinarie körtillfälle.
+.TP
+\fB\-t\fP, \fB\-\-no\-title\fP
+Slå av huvudet som visar intervallet, kommandot och aktuell tid längst upp
+på skärmen, liksom den följande tomma raden.
+.TP
+\fB\-w\fP, \fB\-\-no\-wrap\fP
+Slå av radbrytning. Långa rader kommer huggas av istället för att brytas
+till nästa rad.
+.TP
+\fB\-x\fP, \fB\-\-exec\fP
+Skicka \fIkommando\fP till \fBexec\fP(2) istället för \fBsh \-c\fP vilket reducerar
+behovet av extra citationstecken för att få den önskade effekten.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Visa hjälptext och avsluta.
+.TP
+\fB\-v\fP, \fB\-\-version\fP
+Visa versionsinformation och avsluta.
+.SH SLUTSTATUS
+.PP
+.RS
+.PD 0
+.TP
+\fB0\fP
+Gick bra.
+.TP
+\fB1\fP
+Diverse fel.
+.TP
+\fB2\fP
+Att grena av processen att övervaka misslyckades.
+.TP
+\fB3\fP
+Att ersätta en barnprocess standard ut med skrivsidan av ett rör
+misslyckades.
+.TP
+\fB4\fP
+Kommandokörningen misslyckades.
+.TP
+\fB5\fP
+Att stänga barnprocessens skrivrör misslyckades.
+.TP
+\fB7\fP
+Att skapa ett IPC\-rör misslyckades.
+.TP
+\fB8\fP
+Att få reda på barnprocessens returvärde med \fBwaitpid\fP(2) misslyckades,
+eller kommandot gav upp vid ett fel.
+.TP
+\fBövriga\fP
+Watch kommer skicka vidare kommandots slutstatus som barnets slutstatus.
+.SH MILJÖ
+Beteendet hos \fBwatch\fP påverkas av följande miljövariabler.
+
+.TP
+\fBWATCH_INTERVAL\fP
+Uppdateringsintervall, följer samma regler som kommandoradsflaggan
+\fB\-\-interval\fP.
+.sp
+.SH OBSERVERA
+POSIX flagghantering används (d.v.s., flaggbearbetning slutar vid det första
+argumentet som inte är en flagga). Detta betyder att flaggor efter
+\fIkommando\fP inte tolkas av \fBwatch\fP självt.
+.sp
+.SH FEL
+När storleken på terminalen ändras kommer inte skärmen ritas om korrekt
+förrän nästa schemalagda uppdatering. All markering med \fB\-\-differences\fP
+går också förlorade vid den uppdateringen. När flaggan \fB\-\-no\-rerun\fP används
+kommer ingen utdata vara synlig.
+
+Icke skrivbara tecken tas bort från programs utdata. Använd \fBcat \-v\fP som
+en del av kommandoröret om du vill se dem.
+
+Kombinerande tecken som är tänkta att visas som tecknet i sista kolumnen på
+skärmen kan komma att visas en kolumn för tidigt, eller kan komma att inte
+visas alls.
+
+Kombinerande tecken räknas aldrig som olika i läget \fB\-\-differences\fP.
+Endast grundtecknet räknas.
+
+Tomma rader direkt efter en rad som slutar i sista kolumnen visas inte.
+
+Läget \fB\-\-precise\fP har inte ännu avancerad temporal distorsionsteknik för
+att kompensera för ett \fIkommando\fP som tar mer än \fB\-\-intervall\fP \fIsekunder\fP
+att köra. \fBwatch\fP kan också hamna i ett läge där det i snabb följd kör så
+många exekveringar det kan av \fIkommando\fP för att komma ifatt efter en
+tidigare körning som varit längre än \fB\-\-interval\fP (till exempel om
+\fBnetstat\fP(8) tar evigheter för att göra en DNS\-uppslagning).
+.sp
+.SH EXEMPEL
+.PP
+För att titta efter post skulle du kunna göra
+.IP
+watch \-n 60 from
+.PP
+För att se innehållet i en katalog ändras kan du använda
+.IP
+watch \-d ls \-l
+.PP
+Om du bara är intresserad av filer som ägs av användaren kalle skulle du
+kunna använda
+.IP
+watch \-d 'ls \-l | fgrep kalle'
+.PP
+För att se effekterna av att citera, prova dessa
+.IP
+watch echo $$
+.br
+watch echo '$$'
+.br
+watch echo "'"'$$'"'"
+.PP
+För att se effekten av att hålla tiden med precision, prova att lägga till
+\fB\-p\fP till
+.IP
+watch \-n 10 sleep 1
+.PP
+Du kan se om din administratör installerar den senaste kärnan med
+.IP
+watch uname \-r
+.PP
+(Observera att \fB\-p\fP inte är garanterat att fungera över en omstart,
+särskilt med hänsyn till \fBntpdate\fP eller andra mekanismer som ändrar tiden
+under uppstart)
+.sp
+.SH "RAPPORTERA FEL"
+Skicka felrapporter till
+.UR procps@freelists.org
+.UE
+Skicka synpunkter på översättningen till
+.UR tp\-sv@listor.tp\-sv.se
+.UE
diff --git a/po-man/uk.po b/po-man/uk.po
new file mode 100644
index 0000000..4776c70
--- /dev/null
+++ b/po-man/uk.po
@@ -0,0 +1,16724 @@
+# Ukrainian translation for procps-ng.
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This file is distributed under the same license as the procps-ng package.
+#
+# Yuri Chornoivan <yurchor@ukr.net>, 2014, 2019, 2021, 2022, 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: procps-ng-man-4.0.4-rc1\n"
+"Report-Msgid-Bugs-To: Procps list <procps@freelists.org>\n"
+"POT-Creation-Date: 2023-08-19 17:38+1000\n"
+"PO-Revision-Date: 2023-08-20 14:30+0300\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
+"Language: uk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Lokalize 20.12.0\n"
+
+#. type: TH
+#: ../man/free.1:14
+#, no-wrap
+msgid "FREE"
+msgstr "FREE"
+
+#. type: TH
+#: ../man/free.1:14
+#, no-wrap
+msgid "2023-05-02"
+msgstr "2 Ñ‚Ñ€Ð°Ð²Ð½Ñ 2023 року"
+
+#. type: TH
+#: ../man/free.1:14 ../man/kill.1:12 ../man/pgrep.1:13 ../man/pmap.1:19
+#: ../man/pwdx.1:12 ../man/skill.1:12 ../man/slabtop.1:14 ../man/sysctl.8:14
+#: ../man/sysctl.conf.5:13 ../man/tload.1:12 ../man/uptime.1:13
+#: ../man/vmstat.8:13 ../man/w.1:14 ../man/watch.1:13 ../man/ps.1:13
+#: ../man/top.1:62
+#, no-wrap
+msgid "procps-ng"
+msgstr "procps-ng"
+
+#. type: TH
+#: ../man/free.1:14 ../man/kill.1:12 ../man/pgrep.1:13 ../man/pidof.1:13
+#: ../man/pmap.1:19 ../man/pwdx.1:12 ../man/skill.1:12 ../man/slabtop.1:14
+#: ../man/tload.1:12 ../man/uptime.1:13 ../man/w.1:14 ../man/watch.1:13
+#: ../man/ps.1:13 ../man/top.1:62
+#, no-wrap
+msgid "User Commands"
+msgstr "Команди кориÑтувача"
+
+#. type: SH
+#: ../man/free.1:15 ../man/kill.1:13 ../man/pgrep.1:14 ../man/pidof.1:14
+#: ../man/pmap.1:20 ../man/pwdx.1:13 ../man/skill.1:13 ../man/slabtop.1:15
+#: ../man/sysctl.8:15 ../man/sysctl.conf.5:14 ../man/tload.1:13
+#: ../man/uptime.1:14 ../man/vmstat.8:14 ../man/w.1:15 ../man/watch.1:14
+#: ../man/ps.1:27 ../man/top.1:67 ../man/procps.3:15 ../man/procps_misc.3:15
+#: ../man/procps_pids.3:15
+#, no-wrap
+msgid "NAME"
+msgstr "ÐÐЗВÐ"
+
+#. type: Plain text
+#: ../man/free.1:17
+msgid "free - Display amount of free and used memory in the system"
+msgstr "free — показ даних щодо об’єму вільної та викориÑтаної оперативної пам’ÑÑ‚Ñ– у ÑиÑтемі"
+
+#. type: SH
+#: ../man/free.1:17 ../man/kill.1:15 ../man/pgrep.1:16 ../man/pidof.1:16
+#: ../man/pmap.1:22 ../man/pwdx.1:15 ../man/skill.1:15 ../man/slabtop.1:17
+#: ../man/sysctl.8:17 ../man/tload.1:15 ../man/uptime.1:16 ../man/vmstat.8:16
+#: ../man/w.1:17 ../man/watch.1:16 ../man/ps.1:29 ../man/top.1:72
+#: ../man/procps.3:18 ../man/procps_misc.3:17 ../man/procps_pids.3:18
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "КОРОТКИЙ ОПИС"
+
+#. type: Plain text
+#: ../man/free.1:20
+msgid "B<free> [I<options>]"
+msgstr "B<free> [I<параметри>]"
+
+#. type: SH
+#: ../man/free.1:20 ../man/kill.1:18 ../man/pgrep.1:25 ../man/pidof.1:30
+#: ../man/pmap.1:25 ../man/skill.1:25 ../man/slabtop.1:20 ../man/sysctl.8:23
+#: ../man/sysctl.conf.5:16 ../man/tload.1:18 ../man/uptime.1:19
+#: ../man/vmstat.8:20 ../man/w.1:20 ../man/watch.1:19 ../man/ps.1:31
+#: ../man/ps.1:1002 ../man/top.1:77 ../man/procps.3:67 ../man/procps_misc.3:49
+#: ../man/procps_pids.3:61
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "ОПИС"
+
+#. type: Plain text
+#: ../man/free.1:26
+msgid "B<free> displays the total amount of free and used physical and swap memory in the system, as well as the buffers and caches used by the kernel. The information is gathered by parsing /proc/meminfo. The displayed columns are:"
+msgstr "B<free> виводить дані щодо загального об’єму вільної Ñ– викориÑтаної фізичної та резервної пам’ÑÑ‚Ñ– у ÑиÑтемі, а також буферів та кешів, що викориÑтовуютьÑÑ Ñдром. Ð—Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… виконуєтьÑÑ Ð·Ð° допомогою обробки даних /proc/meminfo. Серед показаних Ñтовпчиків:"
+
+#. type: TP
+#: ../man/free.1:26
+#, no-wrap
+msgid "B<total>"
+msgstr "B<загалом>"
+
+#. type: Plain text
+#: ../man/free.1:30
+msgid "Total usable memory (MemTotal and SwapTotal in /proc/meminfo). This includes the physical and swap memory minus a few reserved bits and kernel binary code."
+msgstr "Загальний об'єм придатної до викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– (MemTotal Ñ– SwapTotal у /proc/meminfo). Сюди буде включено фізичну пам'ÑÑ‚ÑŒ та резервну пам'ÑÑ‚ÑŒ на диÑку, без декількох зарезервованих бітів та двійкового коду Ñдра."
+
+#. type: TP
+#: ../man/free.1:30
+#, no-wrap
+msgid "B<used>"
+msgstr "B<викориÑтана>"
+
+#. type: Plain text
+#: ../man/free.1:33
+msgid "Used or unavailable memory (calculated as B<total> - B<available>)"
+msgstr "ВикориÑтана або недоÑтупна пам'ÑÑ‚ÑŒ (обчиÑлюєтьÑÑ Ñк B<total> - B<available>)"
+
+#. type: TP
+#: ../man/free.1:33
+#, no-wrap
+msgid "B<free>"
+msgstr "B<вільна>"
+
+#. type: Plain text
+#: ../man/free.1:36
+msgid "Unused memory (MemFree and SwapFree in /proc/meminfo)"
+msgstr "ÐевикориÑтана пам’ÑÑ‚ÑŒ (MemFree та SwapFree у /proc/meminfo)"
+
+#. type: TP
+#: ../man/free.1:36
+#, no-wrap
+msgid "B<shared>"
+msgstr "B<Ñпільна>"
+
+#. type: Plain text
+#: ../man/free.1:39
+msgid "Memory used (mostly) by tmpfs (Shmem in /proc/meminfo)"
+msgstr "Об’єм пам’ÑÑ‚Ñ–, викориÑтаної (здебільшого) Ð´Ð»Ñ tmpfs (Shmem у /proc/meminfo)"
+
+#. type: TP
+#: ../man/free.1:39
+#, no-wrap
+msgid "B<buffers>"
+msgstr "B<буфери>"
+
+#. type: Plain text
+#: ../man/free.1:42
+msgid "Memory used by kernel buffers (Buffers in /proc/meminfo)"
+msgstr "Об’єм пам’ÑÑ‚Ñ–, викориÑтаної Ð´Ð»Ñ Ð±ÑƒÑ„ÐµÑ€Ñ–Ð² Ñдра (Buffers у /proc/meminfo)"
+
+#. type: TP
+#: ../man/free.1:42
+#, no-wrap
+msgid "B<cache>"
+msgstr "B<кеш>"
+
+#. type: Plain text
+#: ../man/free.1:45
+msgid "Memory used by the page cache and slabs (Cached and SReclaimable in /proc/meminfo)"
+msgstr "Об’єм пам’ÑÑ‚Ñ–, викориÑтаний під кеш Ñторінок Ñ– фрагментів (Cached та SReclaimable у /proc/meminfo)"
+
+#. type: TP
+#: ../man/free.1:45
+#, no-wrap
+msgid "B<buff/cache>"
+msgstr "B<буф/кеш>"
+
+#. type: Plain text
+#: ../man/free.1:48
+msgid "Sum of B<buffers> and B<cache>"
+msgstr "Сума значень B<буфери> і B<кеш>"
+
+#. type: TP
+#: ../man/free.1:48
+#, no-wrap
+msgid "B<available>"
+msgstr "B<доÑтупна>"
+
+#. type: Plain text
+#: ../man/free.1:57
+msgid "Estimation of how much memory is available for starting new applications, without swapping. Unlike the data provided by the B<cache> or B<free> fields, this field takes into account page cache and also that not all reclaimable memory slabs will be reclaimed due to items being in use (MemAvailable in /proc/meminfo, available on kernels 3.14, emulated on kernels 2.6.27+, otherwise the same as B<free>)"
+msgstr "Оцінка об’єму пам’ÑÑ‚Ñ–, доÑтупного Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку нових програм, без викориÑÑ‚Ð°Ð½Ð½Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ñ— пам’ÑÑ‚Ñ– на диÑку. Ðа відміну від даних, Ñкі буде показано у полÑÑ… B<cache> та B<free>, у цьому полі враховуєтьÑÑ ÐºÐµÑˆ Ñторінок Ñ– те, що не уÑÑ– придатні до Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ñ‡Ð°Ñтини пам’ÑÑ‚Ñ– буде повернуто через об’єкти, що перебувають у викориÑтанні (MemAvailable у /proc/meminfo, доÑтупне у Ñдрах, починаючи з 3.14, емульоване, починаючи з Ñдра 2.6.27, інакше, те Ñаме, що Ñ– B<free>)"
+
+#. type: SH
+#: ../man/free.1:57 ../man/kill.1:34 ../man/pgrep.1:53 ../man/pidof.1:34
+#: ../man/pmap.1:29 ../man/pwdx.1:18 ../man/skill.1:42 ../man/slabtop.1:25
+#: ../man/tload.1:25 ../man/uptime.1:36 ../man/vmstat.8:29 ../man/watch.1:26
+#, no-wrap
+msgid "OPTIONS"
+msgstr "ПÐРÐМЕТРИ"
+
+#. type: TP
+#: ../man/free.1:58
+#, no-wrap
+msgid "B<-b>, B<--bytes>"
+msgstr "B<-b>, B<--bytes>"
+
+#. type: Plain text
+#: ../man/free.1:61
+msgid "Display the amount of memory in bytes."
+msgstr "ВивеÑти об’єм пам’ÑÑ‚Ñ– у байтах."
+
+#. type: TP
+#: ../man/free.1:61
+#, no-wrap
+msgid "B<-k>, B<--kibi>"
+msgstr "B<-k>, B<--kibi>"
+
+#. type: Plain text
+#: ../man/free.1:64
+msgid "Display the amount of memory in kibibytes. This is the default."
+msgstr "ВивеÑти об’єм пам’ÑÑ‚Ñ– у кібібайтах. Типовий варіант."
+
+#. type: TP
+#: ../man/free.1:64
+#, no-wrap
+msgid "B<-m>, B<--mebi>"
+msgstr "B<-m>, B<--mebi>"
+
+#. type: Plain text
+#: ../man/free.1:67
+msgid "Display the amount of memory in mebibytes."
+msgstr "ВивеÑти об’єм пам’ÑÑ‚Ñ– у мебібайтах."
+
+#. type: TP
+#: ../man/free.1:67
+#, no-wrap
+msgid "B<-g>, B<--gibi>"
+msgstr "B<-g>, B<--gibi>"
+
+#. type: Plain text
+#: ../man/free.1:70
+msgid "Display the amount of memory in gibibytes."
+msgstr "ВивеÑти об’єм пам’ÑÑ‚Ñ– у гібібайтах."
+
+#. type: TP
+#: ../man/free.1:70
+#, no-wrap
+msgid "B<--tebi>"
+msgstr "B<--tebi>"
+
+#. type: Plain text
+#: ../man/free.1:73
+msgid "Display the amount of memory in tebibytes."
+msgstr "ВивеÑти об’єм пам’ÑÑ‚Ñ– у тебібайтах."
+
+#. type: TP
+#: ../man/free.1:73
+#, no-wrap
+msgid "B<--pebi>"
+msgstr "B<--pebi>"
+
+#. type: Plain text
+#: ../man/free.1:76
+msgid "Display the amount of memory in pebibytes."
+msgstr "ВивеÑти об’єм пам’ÑÑ‚Ñ– у пебібайтах."
+
+#. type: TP
+#: ../man/free.1:76
+#, no-wrap
+msgid "B<--kilo>"
+msgstr "B<--kilo>"
+
+#. type: Plain text
+#: ../man/free.1:79
+msgid "Display the amount of memory in kilobytes. Implies --si."
+msgstr "ВивеÑти об’єм пам’ÑÑ‚Ñ– у кілобайтах. ÐеÑвно викориÑтовує --si."
+
+#. type: TP
+#: ../man/free.1:79
+#, no-wrap
+msgid "B<--mega>"
+msgstr "B<--mega>"
+
+#. type: Plain text
+#: ../man/free.1:82
+msgid "Display the amount of memory in megabytes. Implies --si."
+msgstr "ВивеÑти об’єм пам’ÑÑ‚Ñ– у мегабайтах. ÐеÑвно викориÑтовує --si."
+
+#. type: TP
+#: ../man/free.1:82
+#, no-wrap
+msgid "B<--giga>"
+msgstr "B<--giga>"
+
+#. type: Plain text
+#: ../man/free.1:85
+msgid "Display the amount of memory in gigabytes. Implies --si."
+msgstr "ВивеÑти об’єм пам’ÑÑ‚Ñ– у гігабайтах. ÐеÑвно викориÑтовує --si."
+
+#. type: TP
+#: ../man/free.1:85
+#, no-wrap
+msgid "B<--tera>"
+msgstr "B<--tera>"
+
+#. type: Plain text
+#: ../man/free.1:88
+msgid "Display the amount of memory in terabytes. Implies --si."
+msgstr "ВивеÑти об’єм пам’ÑÑ‚Ñ– у терабайтах. ÐеÑвно викориÑтовує --si."
+
+#. type: TP
+#: ../man/free.1:88
+#, no-wrap
+msgid "B<--peta>"
+msgstr "B<--peta>"
+
+#. type: Plain text
+#: ../man/free.1:91
+msgid "Display the amount of memory in petabytes. Implies --si."
+msgstr "ВивеÑти об’єм пам’ÑÑ‚Ñ– у петабайтах. ÐеÑвно викориÑтовує --si."
+
+#. type: TP
+#: ../man/free.1:91
+#, no-wrap
+msgid "B<-h>, B<--human>"
+msgstr "B<-h>, B<--human>"
+
+#. type: Plain text
+#: ../man/free.1:95
+msgid "Show all output fields automatically scaled to shortest three digit unit and display the units of print out. Following units are used."
+msgstr "ВивеÑти вміÑÑ‚ уÑÑ–Ñ… полів з автоматичним маÑштабуваннÑм до найбільшої цілої одиниці та показом викориÑтаних одиниць. ВикориÑтовуютьÑÑ Ñ‚Ð°ÐºÑ– одиниці:"
+
+#. type: Plain text
+#: ../man/free.1:103
+#, no-wrap
+msgid ""
+" B = bytes\n"
+" Ki = kibibyte\n"
+" Mi = mebibyte\n"
+" Gi = gibibyte\n"
+" Ti = tebibyte\n"
+" Pi = pebibyte\n"
+msgstr ""
+" B = байти\n"
+" Ki = кібібайти\n"
+" Mi = мебібайти\n"
+" Gi = гібібайти\n"
+" Ti = тебібайти\n"
+" Pi = пебібайти\n"
+
+#. type: Plain text
+#: ../man/free.1:107
+msgid "If unit is missing, and you have exbibyte of RAM or swap, the number is in tebibytes and columns might not be aligned with header."
+msgstr "Якщо одиницю не буде вказано Ñ– на комп’ютері вÑтановлено екÑбібайти оперативної або резервної пам’ÑÑ‚Ñ–, дані буде показано у тебібайтах, а у Ñтовпчиках може порушуватиÑÑ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñ–Ð· заголовком таблиці."
+
+#. type: TP
+#: ../man/free.1:107 ../man/vmstat.8:89
+#, no-wrap
+msgid "B<-w>, B<--wide>"
+msgstr "B<-w>, B<--wide>"
+
+#. type: Plain text
+#: ../man/free.1:112
+msgid "Switch to the wide mode. The wide mode produces lines longer than 80 characters. In this mode B<buffers> and B<cache> are reported in two separate columns."
+msgstr "Перемкнути програму у режим широкого показу. У режимі широкого показу програма виводитиме Ñ€Ñдки, довші за 80 Ñимволів. У цьому режимі Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ B<buffers> та B<cache> виводитимутьÑÑ Ñƒ два окремих Ñтовпчики."
+
+#. type: TP
+#: ../man/free.1:112
+#, no-wrap
+msgid "B<-c>, B<--count> I<count>"
+msgstr "B<-c>, B<--count> I<чиÑло>"
+
+#. type: Plain text
+#: ../man/free.1:119
+msgid "Display the result I<count> times. Requires the B<-s> option."
+msgstr "ВивеÑти результат вказану аргументом I<чиÑло> разів. Потребує викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° B<-s>."
+
+#. type: TP
+#: ../man/free.1:119
+#, no-wrap
+msgid "B<-l>, B<--lohi>"
+msgstr "B<-l>, B<--lohi>"
+
+#. type: Plain text
+#: ../man/free.1:122
+msgid "Show detailed low and high memory statistics."
+msgstr "ВивеÑти докладні дані щодо викориÑÑ‚Ð°Ð½Ð½Ñ Ð²ÐµÑ€Ñ…Ð½ÑŒÐ¾Ñ— Ñ– нижньої облаÑтей пам’ÑÑ‚Ñ–."
+
+#. type: TP
+#: ../man/free.1:122
+#, no-wrap
+msgid "B<-L>, B<--line>"
+msgstr "B<-L>, B<--line>"
+
+#. type: Plain text
+#: ../man/free.1:127
+msgid "Show output on a single line, often used with the B<-s> option to show memory statistics repeatedly."
+msgstr "ВивеÑти дані в один Ñ€Ñдок. ЧаÑто викориÑтовують разом із параметром B<-s> Ð´Ð»Ñ Ñ€ÐµÐ³ÑƒÐ»Ñрного показу ÑтатиÑтичних даних щодо пам'ÑÑ‚Ñ–."
+
+#. type: TP
+#: ../man/free.1:127
+#, no-wrap
+msgid "B<-s>, B<--seconds> I<delay>"
+msgstr "B<-s>, B<--seconds> I<затримка>"
+
+#. type: Plain text
+#: ../man/free.1:134
+msgid "Continuously display the result I<delay> seconds apart. You may actually specify any floating point number for I<delay> using either . or , for decimal point. B<usleep>(3) is used for microsecond resolution delay times."
+msgstr "Ðеперервно виводити результати із інтервалом між оновленнÑми у вказану параметром I<затримка> кількіÑÑ‚ÑŒ Ñекунд. Фактично, ви можете вказати Ð´Ð»Ñ I<затримки> дійÑне чиÑло із крапкою або комою Ñк роздільником дробової чаÑтини. Ð”Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑтовуєтьÑÑ B<usleep>(3) з точніÑÑ‚ÑŽ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ‚Ñƒ чаÑу порÑдку мікроÑекунд."
+
+#. type: TP
+#: ../man/free.1:134
+#, no-wrap
+msgid "B<--si>"
+msgstr "B<--si>"
+
+#. type: Plain text
+#: ../man/free.1:138
+msgid "Use kilo, mega, giga etc (power of 1000) instead of kibi, mebi, gibi (power of 1024)."
+msgstr "ВикориÑтовувати кіло-, мега-, гіга- тощо (кратні до 1000) одиниці заміÑÑ‚ÑŒ кібі-, мебі-, гібі- тощо (кратних до 1024)."
+
+#. type: TP
+#: ../man/free.1:138
+#, no-wrap
+msgid "B<-t>, B<--total>"
+msgstr "B<-t>, B<--total>"
+
+#. type: Plain text
+#: ../man/free.1:141
+msgid "Display a line showing the column totals."
+msgstr "Виводити Ñ€Ñдок із підÑумками за Ñтовпчиками."
+
+#. type: TP
+#: ../man/free.1:141
+#, no-wrap
+msgid "B<-v>, B<--committed>"
+msgstr "B<-v>, B<--committed>"
+
+#. type: Plain text
+#: ../man/free.1:146
+msgid "Display a line showing the memory commit limit and amount of committed/uncommitted memory. The B<total> column on this line will display the memory commit limit. This line is relevant if memory overcommit is disabled."
+msgstr "ВивеÑти Ñ€Ñдок із обмеженнÑм на внеÑок до пам'ÑÑ‚Ñ– та обÑÑгом внеÑеної/невнеÑеної пам'ÑÑ‚Ñ–. У Ñтовпчику B<total> цього Ñ€Ñдка буде показано Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° внеÑок до пам'ÑÑ‚Ñ–. Цей Ñ€Ñдок має значеннÑ, Ñкщо вимкнено Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸ внеÑÐµÐ½Ð½Ñ Ð´Ð¾ пам'ÑÑ‚Ñ–."
+
+#. type: TP
+#: ../man/free.1:146 ../man/w.1:63
+#, no-wrap
+msgid "B<--help>"
+msgstr "B<--help>"
+
+#. type: Plain text
+#: ../man/free.1:149
+msgid "Print help."
+msgstr "ВивеÑти довідку."
+
+#. type: TP
+#: ../man/free.1:149 ../man/pgrep.1:228 ../man/pmap.1:72 ../man/pwdx.1:19
+#: ../man/skill.1:68 ../man/slabtop.1:45 ../man/sysctl.8:116 ../man/tload.1:38
+#: ../man/uptime.1:46 ../man/vmstat.8:97 ../man/w.1:72
+#, no-wrap
+msgid "B<-V>, B<--version>"
+msgstr "B<-V>, B<--version>"
+
+#. type: Plain text
+#: ../man/free.1:152 ../man/skill.1:71 ../man/w.1:75
+msgid "Display version information."
+msgstr "Показати інформацію щодо верÑÑ–Ñ—."
+
+#. type: SH
+#: ../man/free.1:153 ../man/slabtop.1:87 ../man/sysctl.8:171
+#: ../man/sysctl.conf.5:64 ../man/tload.1:42 ../man/uptime.1:49 ../man/w.1:88
+#: ../man/procps_misc.3:136
+#, no-wrap
+msgid "FILES"
+msgstr "ФÐЙЛИ"
+
+#. type: TP
+#: ../man/free.1:154
+#, no-wrap
+msgid "/proc/meminfo"
+msgstr "/proc/meminfo"
+
+#. type: Plain text
+#: ../man/free.1:157
+msgid "memory information"
+msgstr "Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ñ‰Ð¾Ð´Ð¾ пам'ÑÑ‚Ñ–"
+
+#. type: SH
+#: ../man/free.1:158 ../man/pgrep.1:301 ../man/pidof.1:69 ../man/tload.1:50
+#: ../man/watch.1:152 ../man/ps.1:2063
+#, no-wrap
+msgid "BUGS"
+msgstr "Ð’ÐДИ"
+
+#. type: Plain text
+#: ../man/free.1:161
+msgid "The value for the B<shared> column is not available from kernels before 2.6.32 and is displayed as zero."
+msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ Ñтовпчику B<shared> Ñ” недоÑтупним у ÑиÑтемах із Ñдрами до 2.6.32. У таких ÑиÑтемах заміÑÑ‚ÑŒ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ показано нуль."
+
+#. type: TP
+#: ../man/free.1:161
+#, no-wrap
+msgid "Please send bug reports to"
+msgstr "Про вади, будь лаÑка, повідомлÑйте на адреÑу"
+
+#. type: Plain text
+#: ../man/free.1:165
+msgid "E<.UR procps@freelists.org> E<.UE>"
+msgstr "E<.UR procps@freelists.org> E<.UE>"
+
+#. type: SH
+#: ../man/free.1:165 ../man/kill.1:88 ../man/pgrep.1:317 ../man/pidof.1:76
+#: ../man/pmap.1:90 ../man/pwdx.1:25 ../man/skill.1:109 ../man/slabtop.1:91
+#: ../man/sysctl.8:185 ../man/sysctl.conf.5:83 ../man/tload.1:45
+#: ../man/uptime.1:66 ../man/vmstat.8:191 ../man/w.1:95 ../man/ps.1:2070
+#: ../man/procps.3:182 ../man/procps_misc.3:153 ../man/procps_pids.3:207
+#, no-wrap
+msgid "SEE ALSO"
+msgstr "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ"
+
+#. type: Plain text
+#: ../man/free.1:169
+msgid "B<ps>(1), B<slabtop>(1), B<top>(1), B<vmstat>(8)."
+msgstr "B<ps>(1), B<slabtop>(1), B<top>(1), B<vmstat>(8)."
+
+#. type: TH
+#: ../man/kill.1:12
+#, no-wrap
+msgid "KILL"
+msgstr "KILL"
+
+#. type: TH
+#: ../man/kill.1:12 ../man/pgrep.1:13 ../man/pidof.1:13
+#, no-wrap
+msgid "2023-01-16"
+msgstr "16 ÑÑ–Ñ‡Ð½Ñ 2023 року"
+
+#. type: Plain text
+#: ../man/kill.1:15
+msgid "kill - send a signal to a process"
+msgstr "kill — надÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñигналу процеÑу"
+
+#. type: Plain text
+#: ../man/kill.1:18
+msgid "B<kill> [options] E<lt>pidE<gt> [...]"
+msgstr "B<kill> [параметри] E<lt>pidE<gt> [...]"
+
+#. type: Plain text
+#: ../man/kill.1:34
+msgid "The default signal for kill is TERM. Use B<-l> or B<-L> to list available signals. Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0. Alternate signals may be specified in three ways: B<-9>, B<-SIGKILL> or B<-KILL>. Negative PID values may be used to choose whole process groups; see the PGID column in ps command output. A PID of B<-1> is special; it indicates all processes except the kill process itself and init."
+msgstr "Типовим Ñигналом Ð´Ð»Ñ kill Ñ” TERM. Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ ÑпиÑку доÑтупних Ñигналів ÑкориÑтайтеÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ B<-l> або B<-L>. Зокрема, кориÑними Ñигналами Ñ” HUP, INT, KILL, STOP, CONT та 0. Сигнали можна вказати у три ÑпоÑоби: B<-9>, B<-SIGKILL> або B<-KILL>. Ð”Ð»Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ цілих груп процеÑів можна викориÑтовувати від’ємні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ PID; див. Ñтовпчик PGID у виведенні команди ps. PID Ð´Ð»Ñ B<-1> Ñ” оÑобливим; він позначає уÑÑ– процеÑи, окрім Ñамого процеÑу kill та процеÑу init."
+
+#. type: TP
+#: ../man/kill.1:35
+#, no-wrap
+msgid "B<E<lt>pidE<gt> [...]>"
+msgstr "B<E<lt>pidE<gt> [...]>"
+
+#. type: Plain text
+#: ../man/kill.1:38
+msgid "Send signal to every E<lt>pidE<gt> listed."
+msgstr "ÐадіÑлати Ñигнал уÑÑ–Ñ… E<lt>pidE<gt> зі ÑпиÑку."
+
+#. type: TP
+#: ../man/kill.1:38
+#, no-wrap
+msgid "B<-E<lt>signalE<gt>>"
+msgstr "B<-E<lt>signalE<gt>>"
+
+#. type: TQ
+#: ../man/kill.1:40
+#, no-wrap
+msgid "B<-s E<lt>signalE<gt>>"
+msgstr "B<-s> I<Ñигнал>"
+
+#. type: TQ
+#: ../man/kill.1:42
+#, no-wrap
+msgid "B<--signal E<lt>signalE<gt>>"
+msgstr "B<--signal> I<Ñигнал>"
+
+#. type: Plain text
+#: ../man/kill.1:50
+msgid "Specify the B<signal> to be sent. The signal can be specified by using name or number. The behavior of signals is explained in B<signal>(7) manual page."
+msgstr "Вказати B<Ñигнал>, Ñкий Ñлід надіÑлати. Сигнал може бути вказано за допомогою назви Ñигналу або його номера. Поведінку Ñигналів опиÑано на Ñторінці підручника B<signal>(7)."
+
+#. type: TP
+#: ../man/kill.1:50 ../man/pgrep.1:216
+#, no-wrap
+msgid "B<-q>, B<--queue >I<value>"
+msgstr "B<-q>, B<--queue >I<значеннÑ>"
+
+#. type: Plain text
+#: ../man/kill.1:62 ../man/pgrep.1:228
+msgid "Use B<sigqueue>(3) rather than B<kill>(2) and the value argument is used to specify an integer to be sent with the signal. If the receiving process has installed a handler for this signal using the SA_SIGINFO flag to B<sigaction>(2), then it can obtain this data via the si_value field of the siginfo_t structure."
+msgstr "СкориÑтайтеÑÑ B<kill>(2) заміÑÑ‚ÑŒ B<sigqueue>(3), Ñ– аргумент значеннÑ, Ñкий викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ Ñ†Ñ–Ð»Ð¾Ð³Ð¾ значеннÑ, буде надіÑлано разом із Ñигналом. Якщо у процеÑÑ–, Ñкий його отримає, вÑтановлено обробки Ñигналу, Ñкий викориÑтовує прапорець SA_SIGINFO B<sigaction>(2), Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð¼Ð¾Ð¶Ðµ отримати ці дані за допомогою Ð¿Ð¾Ð»Ñ si_value Ñтруктури siginfo_t."
+
+#. type: TP
+#: ../man/kill.1:62
+#, no-wrap
+msgid "B<-l>, B<--list> [I<signal>]"
+msgstr "B<-l>, B<--list> [I<Ñигнал>]"
+
+#. type: Plain text
+#: ../man/kill.1:66
+msgid "List signal names. This option has optional argument, which will convert signal number to signal name, or other way round."
+msgstr "ВивеÑти ÑпиÑок Ñигналів. У цього параметра Ñ” необов’Ñзковий аргумент, за допомогою Ñкого можна перетворювати номер Ñигналу на назву Ñ– навпаки."
+
+#. type: TP
+#: ../man/kill.1:66 ../man/skill.1:52
+#, no-wrap
+msgid "B<-L>,B<\\ --table>"
+msgstr "B<-L>,B<\\ --table>"
+
+#. type: Plain text
+#: ../man/kill.1:69
+msgid "List signal names in a nice table."
+msgstr "ВивеÑти ÑпиÑок назв Ñигналів у форматі таблиці."
+
+#. type: SH
+#: ../man/kill.1:71 ../man/pgrep.1:284 ../man/slabtop.1:96
+#: ../man/sysctl.conf.5:39 ../man/vmstat.8:185 ../man/watch.1:144
+#: ../man/ps.1:768
+#, no-wrap
+msgid "NOTES"
+msgstr "ЗÐУВÐЖЕÐÐЯ"
+
+#. type: Plain text
+#: ../man/kill.1:75
+msgid "Your shell (command line interpreter) may have a built-in kill command. You may need to run the command described here as /bin/kill to solve the conflict."
+msgstr "У вашій оболонці (інтерпретаторі командного Ñ€Ñдка) може бути вбудована команда kill. Щоб позбутиÑÑ ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚Ñƒ команд, вам Ñлід запуÑкати опиÑану тут команду Ñк /bin/kill."
+
+#. type: SH
+#: ../man/kill.1:75 ../man/pgrep.1:240 ../man/skill.1:99 ../man/sysctl.8:143
+#: ../man/watch.1:191 ../man/ps.1:84
+#, no-wrap
+msgid "EXAMPLES"
+msgstr "ПРИКЛÐДИ"
+
+#. type: TP
+#: ../man/kill.1:76
+#, no-wrap
+msgid "B<kill -9 -1>"
+msgstr "B<kill -9 -1>"
+
+#. type: Plain text
+#: ../man/kill.1:79
+msgid "Kill all processes you can kill."
+msgstr "Завершити робот уÑÑ–Ñ… процеÑів, роботу Ñких можна завершити."
+
+#. type: TP
+#: ../man/kill.1:79
+#, no-wrap
+msgid "B<kill -l 11>"
+msgstr "B<kill -l 11>"
+
+#. type: Plain text
+#: ../man/kill.1:82
+msgid "Translate number 11 into a signal name."
+msgstr "Знайти відповідну назву Ð´Ð»Ñ Ñигналу з номером 11."
+
+#. type: TP
+#: ../man/kill.1:82
+#, no-wrap
+msgid "B<kill -L>"
+msgstr "B<kill -L>"
+
+#. type: Plain text
+#: ../man/kill.1:85
+msgid "List the available signal choices in a nice table."
+msgstr "ВивеÑти ÑпиÑок варіантів Ñигналів у форматі таблиці."
+
+#. type: TP
+#: ../man/kill.1:85
+#, no-wrap
+msgid "B<kill 123 543 2341 3453>"
+msgstr "B<kill 123 543 2341 3453>"
+
+#. type: Plain text
+#: ../man/kill.1:88
+msgid "Send the default signal, SIGTERM, to all those processes."
+msgstr "ÐадіÑлати уÑім цим процеÑам типовий Ñигнал, SIGTERM."
+
+#. type: Plain text
+#: ../man/kill.1:97
+msgid "B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), B<renice>(1), B<signal>(7), B<sigqueue>(3), B<skill>(1)"
+msgstr "B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), B<renice>(1), B<signal>(7), B<sigqueue>(3), B<skill>(1)"
+
+#. type: SH
+#: ../man/kill.1:97 ../man/pmap.1:93 ../man/pwdx.1:28 ../man/skill.1:117
+#: ../man/ps.1:2076
+#, no-wrap
+msgid "STANDARDS"
+msgstr "СТÐÐДÐРТИ"
+
+#. type: Plain text
+#: ../man/kill.1:101
+msgid "This command meets appropriate standards. The B<-L> flag is Linux-specific."
+msgstr "Під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ виконано відповідні Ñтандарти. Параметр B<-L> Ñ” Ñпецифічним, його призначено лише Ð´Ð»Ñ Linux."
+
+#. type: SH
+#: ../man/kill.1:101 ../man/pgrep.1:327 ../man/pidof.1:79 ../man/pwdx.1:32
+#: ../man/skill.1:119 ../man/sysctl.8:189 ../man/sysctl.conf.5:85
+#: ../man/ps.1:2093
+#, no-wrap
+msgid "AUTHOR"
+msgstr "ÐВТОР"
+
+#. type: Plain text
+#: ../man/kill.1:107
+msgid "E<.UR albert@users.sf.net> Albert Cahalan E<.UE> wrote kill in 1999 to replace a bsdutils one that was not standards compliant. The util-linux one might also work correctly."
+msgstr "Kill Ñтворено E<.UR albert@users.sf.net> Albert Cahalan E<.UE> у 1999 році Ð´Ð»Ñ Ð·Ð°Ð¼Ñ–Ð½Ð¸ відповідної програми з bsdutils, Ñка не була ÑуміÑною зі Ñтандартами. Програма зі Ñкладу util-linux також може працювати належним чином."
+
+#. type: SH
+#: ../man/kill.1:107 ../man/pgrep.1:331 ../man/pmap.1:97 ../man/pwdx.1:37
+#: ../man/skill.1:125 ../man/slabtop.1:120 ../man/sysctl.8:193
+#: ../man/sysctl.conf.5:89 ../man/tload.1:66 ../man/uptime.1:71
+#: ../man/vmstat.8:199 ../man/w.1:112 ../man/watch.1:229
+#, no-wrap
+msgid "REPORTING BUGS"
+msgstr "Як надіÑлати звіт про вади"
+
+#. type: Plain text
+#: ../man/kill.1:110 ../man/pgrep.1:334 ../man/pmap.1:100 ../man/pwdx.1:40
+#: ../man/skill.1:128 ../man/slabtop.1:123 ../man/sysctl.8:196
+#: ../man/sysctl.conf.5:92 ../man/tload.1:69 ../man/uptime.1:74
+#: ../man/vmstat.8:202 ../man/w.1:115 ../man/watch.1:232
+msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE>"
+msgstr "Про вади, будь лаÑка, повідомлÑйте на адреÑу E<.UR procps@freelists.org> E<.UE>"
+
+#. type: TH
+#: ../man/pgrep.1:13
+#, no-wrap
+msgid "PGREP"
+msgstr "PGREP"
+
+#. type: Plain text
+#: ../man/pgrep.1:16
+msgid "pgrep, pkill, pidwait - look up, signal, or wait for processes based on name and other attributes"
+msgstr "pgrep, pkill, pidwait — пошук, надÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñигналів процеÑам або Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ процеÑів на оÑнові даних щодо їхньої назви та інших атрибутів"
+
+#. type: Plain text
+#: ../man/pgrep.1:19
+msgid "B<pgrep> [options] pattern"
+msgstr "B<pgrep> [параметри] взірець"
+
+#. type: Plain text
+#: ../man/pgrep.1:22
+msgid "B<pkill> [options] pattern"
+msgstr "B<pkill> [параметри] взірець"
+
+#. type: Plain text
+#: ../man/pgrep.1:25
+msgid "B<pidwait> [options] pattern"
+msgstr "B<pidwait> [параметри] взірець"
+
+#. type: Plain text
+#: ../man/pgrep.1:30
+msgid "B<pgrep> looks through the currently running processes and lists the process IDs which match the selection criteria to stdout. All the criteria have to match. For example,"
+msgstr "B<pgrep> виконує пошук Ñеред поточних запущених процеÑів Ñ– виводить ÑпиÑок ідентифікаторів процеÑів, Ñкі відповідають критерію вибору до stdout. ВиконуватиÑÑ Ð¼Ð°ÑŽÑ‚ÑŒ уÑÑ– критерії. Ðаприклад,"
+
+#. type: Plain text
+#: ../man/pgrep.1:32
+msgid "$ pgrep -u root sshd"
+msgstr "$ pgrep -u root sshd"
+
+#. type: Plain text
+#: ../man/pgrep.1:38
+msgid "will only list the processes called B<sshd> AND owned by B<root>. On the other hand,"
+msgstr "покаже ÑпиÑок процеÑів, Ñкі мають назву B<sshd> Ñ– належать B<root>. З іншого боку,"
+
+#. type: Plain text
+#: ../man/pgrep.1:40
+msgid "$ pgrep -u root,daemon"
+msgstr "$ pgrep -u root,daemon"
+
+#. type: Plain text
+#: ../man/pgrep.1:45
+msgid "will list the processes owned by B<root> OR B<daemon>."
+msgstr "виведе ÑпиÑок процеÑів, влаÑником Ñких Ñ” B<root> або B<daemon>."
+
+#. type: Plain text
+#: ../man/pgrep.1:50
+msgid "B<pkill> will send the specified signal (by default B<SIGTERM>) to each process instead of listing them on stdout."
+msgstr "B<pkill> надішле вказаний Ñигнал (типово B<SIGTERM>) кожному процеÑу, заміÑÑ‚ÑŒ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ ÑпиÑку процеÑів до stdout."
+
+#. type: Plain text
+#: ../man/pgrep.1:53
+msgid "B<pidwait> will wait for each process instead of listing them on stdout."
+msgstr "B<pidwait> чекатиме на уÑÑ– процеÑи заміÑÑ‚ÑŒ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñ—Ñ…Ð½ÑŒÐ¾Ð³Ð¾ ÑпиÑку до stdout."
+
+#. type: TP
+#: ../man/pgrep.1:54
+#, no-wrap
+msgid "B<->I<signal>"
+msgstr "B<->I<Ñигнал>"
+
+#. type: TQ
+#: ../man/pgrep.1:56
+#, no-wrap
+msgid "B<--signal> I<signal>"
+msgstr "B<--signal> I<Ñигнал>"
+
+#. type: Plain text
+#: ../man/pgrep.1:66
+msgid "Defines the signal to send to each matched process. Either the numeric or the symbolic signal name can be used. In B<pgrep> or B<pidwait> mode only the long option can be used and has no effect unless used in conjunction with B<--require-handler> to filter to processes with a userspace signal handler present for a particular signal."
+msgstr "Визначає Ñигнал, Ñкий Ñлід надіÑлати кожному відповідному процеÑу. Можна ÑкориÑтатиÑÑ Ñ‡Ð¸Ñловим значеннÑм або Ñимволічною назвою Ñигналу. У режимі B<pgrep> або B<pidwait> можна викориÑтовувати лише довгу верÑÑ–ÑŽ параметра. У цьому режимі параметр не працює, Ñкщо не викориÑтано у поєднанні із B<--require-handler> Ð´Ð»Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑів із наÑвним обробником певного Ñигналу у проÑторі кориÑтувача."
+
+#. type: TP
+#: ../man/pgrep.1:67
+#, no-wrap
+msgid "B<-c>, B<--count>"
+msgstr "B<-c>, B<--count>"
+
+#. type: Plain text
+#: ../man/pgrep.1:74
+msgid "Suppress normal output; instead print a count of matching processes. When count does not match anything, e.g. returns zero, the command will return non-zero value. Note that for pkill and pidwait, the count is the number of matching processes, not the processes that were successfully signaled or waited for."
+msgstr "Придушити звичайне виведеннÑ. ЗаміÑÑ‚ÑŒ цього, вивеÑти кількіÑÑ‚ÑŒ відповідних процеÑів. Якщо не вдаÑÑ‚ÑŒÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ нічого, наприклад, буде повернуто нульове значеннÑ, програма поверне ненульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸. Зауважте, що Ð´Ð»Ñ pkill Ñ– pidwait кількіÑÑ‚ÑŒ Ñ” кількіÑÑ‚ÑŽ відповідних процеÑів, а не кількіÑÑ‚ÑŽ процеÑів, Ñким було уÑпішно надіÑлано Ñигнал, або кількіÑÑ‚ÑŒ процеÑів, на Ñкі очікувала програма."
+
+#. type: TP
+#: ../man/pgrep.1:74
+#, no-wrap
+msgid "B<-d>, B<--delimiter> I<delimiter>"
+msgstr "B<-d>, B<--delimiter> I<роздільник>"
+
+#. type: Plain text
+#: ../man/pgrep.1:80
+msgid "Sets the string used to delimit each process ID in the output (by default a newline). (B<pgrep> only.)"
+msgstr "Ð’Ñтановлює Ñ€Ñдок, що викориÑтовуватиметьÑÑ Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾ÐºÑ€ÐµÐ¼Ð»ÐµÐ½Ð½Ñ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€Ñ–Ð² процеÑів у виведених даних (типовим роздільником Ñ” Ñимвол розриву Ñ€Ñдка). (Лише B<pgrep>.)"
+
+#. type: TP
+#: ../man/pgrep.1:80
+#, no-wrap
+msgid "B<-e>, B<--echo>"
+msgstr "B<-e>, B<--echo>"
+
+#. type: Plain text
+#: ../man/pgrep.1:85
+msgid "Display name and PID of the process being killed. (B<pkill> only.)"
+msgstr "Показати назву Ñ– PID процеÑів, роботу Ñких буде завершено (лише B<pkill>)."
+
+#. type: TP
+#: ../man/pgrep.1:85
+#, no-wrap
+msgid "B<-f>, B<--full>"
+msgstr "B<-f>, B<--full>"
+
+#. type: Plain text
+#: ../man/pgrep.1:92
+msgid "The I<pattern> is normally only matched against the process name. When B<-f> is set, the full command line is used."
+msgstr "Зазвичай, відповідніÑÑ‚ÑŒ I<взірцÑ> вÑтановлюєтьÑÑ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ Ð½Ð°Ð·Ð²Ð¸ процеÑу. Якщо викориÑтано B<-f>, відповідніÑÑ‚ÑŒ вÑтановлюєтьÑÑ Ð·Ð° цілим Ñ€Ñдком команди."
+
+#. type: TP
+#: ../man/pgrep.1:92
+#, no-wrap
+msgid "B<-g>, B<--pgroup> I<pgrp>,..."
+msgstr "B<-g>, B<--pgroup> I<група процеÑів>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:101
+msgid "Only match processes in the process group IDs listed. Process group 0 is translated into B<pgrep>'s, B<pkill>'s, or B<pidwait>'s own process group."
+msgstr "Ð’Ñтановлювати відповідніÑÑ‚ÑŒ процеÑів лише Ð´Ð»Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾Ð³Ð¾ ÑпиÑку ідентифікаторів груп. Група процеÑів 0 відповідає влаÑній групі процеÑів B<pgrep>, B<pkill> або B<pidwait>."
+
+#. type: TP
+#: ../man/pgrep.1:101
+#, no-wrap
+msgid "B<-G>, B<--group> I<gid>,..."
+msgstr "B<-G>, B<--group> I<gid>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:105
+msgid "Only match processes whose real group ID is listed. Either the numerical or symbolical value may be used."
+msgstr "Ð’Ñтановлювати відповідніÑÑ‚ÑŒ процеÑів зі ÑпиÑку Ñправжніх ідентифікаторів груп. Можна викориÑтовувати цифрове або Ñимволічне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€Ð°."
+
+#. type: TP
+#: ../man/pgrep.1:105
+#, no-wrap
+msgid "B<-i>, B<--ignore-case>"
+msgstr "B<-i>, B<--ignore-case>"
+
+#. type: Plain text
+#: ../man/pgrep.1:108
+msgid "Match processes case-insensitively."
+msgstr "Виконувати пошук процеÑів без Ð²Ñ€Ð°Ñ…ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÐ³Ñ–Ñтру Ñимволів."
+
+#. type: TP
+#: ../man/pgrep.1:108
+#, no-wrap
+msgid "B<-l>, B<--list-name>"
+msgstr "B<-l>, B<--list-name>"
+
+#. type: Plain text
+#: ../man/pgrep.1:113
+msgid "List the process name as well as the process ID. (B<pgrep> only.)"
+msgstr "ВивеÑти ÑпиÑок назв процеÑів, а також ідентифікаторів процеÑів. (Лише B<pgrep>.)"
+
+#. type: TP
+#: ../man/pgrep.1:113
+#, no-wrap
+msgid "B<-a>, B<--list-full>"
+msgstr "B<-a>, B<--list-full>"
+
+#. type: Plain text
+#: ../man/pgrep.1:118
+msgid "List the full command line as well as the process ID. (B<pgrep> only.)"
+msgstr "ВивеÑти ÑпиÑок Ñ€Ñдків команд повніÑÑ‚ÑŽ, а також ідентифікаторів процеÑів. (Лише B<pgrep>.)"
+
+#. type: TP
+#: ../man/pgrep.1:118
+#, no-wrap
+msgid "B<-n>, B<--newest>"
+msgstr "B<-n>, B<--newest>"
+
+#. type: Plain text
+#: ../man/pgrep.1:121
+msgid "Select only the newest (most recently started) of the matching processes."
+msgstr "Вибрати лише найновіші (запущені Ñкомога пізніше) відповідні процеÑи."
+
+#. type: TP
+#: ../man/pgrep.1:121
+#, no-wrap
+msgid "B<-o>, B<--oldest>"
+msgstr "B<-o>, B<--oldest>"
+
+#. type: Plain text
+#: ../man/pgrep.1:124
+msgid "Select only the oldest (least recently started) of the matching processes."
+msgstr "Вибрати лише найдавніші (запущені Ñкомога раніше) відповідні процеÑи."
+
+#. type: TP
+#: ../man/pgrep.1:124
+#, no-wrap
+msgid "B<-O>, B<--older> I<secs>"
+msgstr "B<-O>, B<--older> I<Ñекунди>"
+
+#. type: Plain text
+#: ../man/pgrep.1:127
+msgid "Select processes older than secs."
+msgstr "Вибрати процеÑи, Ñкі Ñ” Ñтарішими за вказану кількіÑÑ‚ÑŒ Ñекунд."
+
+#. type: TP
+#: ../man/pgrep.1:127
+#, no-wrap
+msgid "B<-P>, B<--parent> I<ppid>,..."
+msgstr "B<-P>, B<--parent> I<ppid>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:130
+msgid "Only match processes whose parent process ID is listed."
+msgstr "Ð’Ñтановлювати відповідніÑÑ‚ÑŒ лише тих процеÑів, Ñкі мають батьківÑькі процеÑи зі вказаного ÑпиÑку."
+
+#. type: TP
+#: ../man/pgrep.1:130
+#, no-wrap
+msgid "B<-s>, B<--session> I<sid>,..."
+msgstr "B<-s>, B<--session> I<sid>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:139
+msgid "Only match processes whose process session ID is listed. Session ID 0 is translated into B<pgrep>'s, B<pkill>'s, or B<pidwait>'s own session ID."
+msgstr "Ð’Ñтановлювати відповідніÑÑ‚ÑŒ лише тих процеÑів, Ñкі мають ідентифікатори ÑеанÑів процеÑів зі вказаного ÑпиÑку. Ідентифікатор 0 відповідає ідентифікаторам ÑеанÑів Ñамих програм B<pgrep>, B<pkill> або B<pidwait>."
+
+#. type: TP
+#: ../man/pgrep.1:139
+#, no-wrap
+msgid "B<-t>, B<--terminal> I<term>,..."
+msgstr "B<-t>, B<--terminal> I<термінал>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:143
+msgid "Only match processes whose controlling terminal is listed. The terminal name should be specified without the \"/dev/\" prefix."
+msgstr "Ð’Ñтановлювати відповідніÑÑ‚ÑŒ лише процеÑів із терміналом ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð· вказаного ÑпиÑку. Ðазву термінала Ñлід вказувати без префікÑа «/dev/»."
+
+#. type: TP
+#: ../man/pgrep.1:143
+#, no-wrap
+msgid "B<-u>, B<--euid> I<euid>,..."
+msgstr "B<-u>, B<--euid> I<euid>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:147
+msgid "Only match processes whose effective user ID is listed. Either the numerical or symbolical value may be used."
+msgstr "Ð’Ñтановлювати відповідніÑÑ‚ÑŒ процеÑів зі ÑпиÑку ідентифікаторів ефективних кориÑтувачів. Можна викориÑтовувати цифрове або Ñимволічне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€Ð°."
+
+#. type: TP
+#: ../man/pgrep.1:147
+#, no-wrap
+msgid "B<-U>, B<--uid> I<uid>,..."
+msgstr "B<-U>, B<--uid> I<uid>,..."
+
+#. type: Plain text
+#: ../man/pgrep.1:151
+msgid "Only match processes whose real user ID is listed. Either the numerical or symbolical value may be used."
+msgstr "Ð’Ñтановлювати відповідніÑÑ‚ÑŒ процеÑів зі ÑпиÑку Ñправжніх ідентифікаторів кориÑтувачів. Можна викориÑтовувати цифрове або Ñимволічне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€Ð°."
+
+#. type: TP
+#: ../man/pgrep.1:151
+#, no-wrap
+msgid "B<-v>, B<--inverse>"
+msgstr "B<-v>, B<--inverse>"
+
+#. type: Plain text
+#: ../man/pgrep.1:160
+msgid "Negates the matching. This option is usually used in B<pgrep>'s or B<pidwait>'s context. In B<pkill>'s context the short option is disabled to avoid accidental usage of the option."
+msgstr "Інвертує відповідніÑÑ‚ÑŒ. Зазвичай, цей параметр викориÑтовуєтьÑÑ Ñƒ контекÑÑ‚Ñ– B<pgrep> або B<pidwait>. У контекÑÑ‚Ñ– B<pkill> Ñкорочену форму параметра вимкнено Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб запобігти випадковому викориÑтанню цього параметра."
+
+#. type: TP
+#: ../man/pgrep.1:160
+#, no-wrap
+msgid "B<-w>, B<--lightweight>"
+msgstr "B<-w>, B<--lightweight>"
+
+#. type: Plain text
+#: ../man/pgrep.1:169
+msgid "Shows all thread ids instead of pids in B<pgrep>'s or B<pidwait>'s context. In B<pkill>'s context this option is disabled."
+msgstr "Показує уÑÑ–Ñ… ідентифікатори потоків обробки, заміÑÑ‚ÑŒ ідентифікаторів, у контекÑÑ‚Ñ– B<pgrep> або B<pidwait>. У контекÑÑ‚Ñ– B<pkill> цей параметр вимкнено."
+
+#. type: TP
+#: ../man/pgrep.1:169
+#, no-wrap
+msgid "B<-x>, B<--exact>"
+msgstr "B<-x>, B<--exact>"
+
+#. type: Plain text
+#: ../man/pgrep.1:175
+msgid "Only match processes whose names (or command lines if B<-f> is specified) B<exactly> match the I<pattern>."
+msgstr "Ð’Ñтановлювати відповідніÑÑ‚ÑŒ лише процеÑів, назви Ñких (або Ñ€Ñдки команд, Ñкщо вказано параметр B<-f>) B<точно> відповідає I<взірцю>."
+
+#. type: TP
+#: ../man/pgrep.1:175
+#, no-wrap
+msgid "B<-F>, B<--pidfile> I<file>"
+msgstr "B<-F>, B<--pidfile> I<файл>"
+
+#. type: Plain text
+#: ../man/pgrep.1:183
+msgid "Read I<PID>s from I<file>. This option is more useful for B<pkill> or B<pidwait> than B<pgrep>."
+msgstr "Прочитати I<PID> з I<файла>. Ймовірно, цей параметр кориÑніший Ð´Ð»Ñ B<pkill> або B<pidwait>, а не Ð´Ð»Ñ B<pgrep>."
+
+#. type: TP
+#: ../man/pgrep.1:183
+#, no-wrap
+msgid "B<-L>, B<--logpidfile>"
+msgstr "B<-L>, B<--logpidfile>"
+
+#. type: Plain text
+#: ../man/pgrep.1:186
+msgid "Fail if pidfile (see B<-F>) not locked."
+msgstr "Завершувати роботу повідомленнÑм про помилку, Ñкщо pid-файл (див. B<-F>) не заблоковано."
+
+#. type: TP
+#: ../man/pgrep.1:186
+#, no-wrap
+msgid "B<-r>, B<--runstates> I<D,R,S,Z,>..."
+msgstr "B<-r>, B<--runstates> I<D,R,S,Z,>..."
+
+#. type: Plain text
+#: ../man/pgrep.1:189
+msgid "Match only processes which match the process state."
+msgstr "Виконати пошук лише тих процеÑів, Ñкі відповідають вказаному значенню Ñтану процеÑу."
+
+#. type: TP
+#: ../man/pgrep.1:189
+#, no-wrap
+msgid "B<-A>, B<--ignore-ancestors>"
+msgstr "B<-A>, B<--ignore-ancestors>"
+
+#. type: Plain text
+#: ../man/pgrep.1:199
+msgid "Ignore all ancestors of B<pgrep>, B<pkill>, or B<pidwait>. For example, this can be useful when elevating with B<sudo> or similar tools."
+msgstr "Ігнорувати уÑÑ– попередники B<pgrep>, B<pkill> та B<pidwait>. Ðаприклад, це може бути кориÑним при розширенні прав доÑтупу за допомогою B<sudo> або подібних інÑтрументів."
+
+#. type: TP
+#: ../man/pgrep.1:199
+#, no-wrap
+msgid "B<-H>, B<--require-handler>"
+msgstr "B<-H>, B<--require-handler>"
+
+#. type: Plain text
+#: ../man/pgrep.1:203
+msgid "Only match processes with a userspace signal handler present for the signal to be sent."
+msgstr "Ð’Ñтановлювати відповідніÑÑ‚ÑŒ лише тих процеÑів, Ñкі мають обробник Ñигналу, Ñкий має бути надіÑлано, у проÑторі кориÑтувача."
+
+#. type: TP
+#: ../man/pgrep.1:203
+#, no-wrap
+msgid "B<--cgroup >I<name>B<,...>"
+msgstr "B<--cgroup >I<назва>B<,...>"
+
+#. type: Plain text
+#: ../man/pgrep.1:207
+msgid "Match on provided control group (cgroup) v2 name. See B<cgroups>(8)"
+msgstr "Ð’Ñтановити відповідніÑÑ‚ÑŒ наданій назві групи ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ (cgroup) у верÑÑ–Ñ— 2. Див. B<cgroups>(8)"
+
+#. type: TP
+#: ../man/pgrep.1:207 ../man/skill.1:87
+#, no-wrap
+msgid "B<--ns >I<pid>"
+msgstr "B<--ns >I<pid>"
+
+#. type: Plain text
+#: ../man/pgrep.1:212
+msgid "Match processes that belong to the same namespaces. Required to run as root to match processes from other users. See B<--nslist> for how to limit which namespaces to match."
+msgstr "Ð’Ñтановлювати відповідніÑÑ‚ÑŒ процеÑів, Ñкі належать до одного проÑтору назв. Ð”Ð»Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾ÑÑ‚Ñ– Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑів інших кориÑтувачів програму має бути запущено від імені кориÑтувача root. Див. довідку щодо B<--nslist>, щоб дізнатиÑÑ Ð¿Ñ€Ð¾ те, Ñк обмежити перелік відповідних проÑторів назв."
+
+#. type: TP
+#: ../man/pgrep.1:212
+#, no-wrap
+msgid "B<--nslist >I<name>B<,...>"
+msgstr "B<--nslist >I<назва>B<,...>"
+
+#. type: Plain text
+#: ../man/pgrep.1:216
+msgid "Match only the provided namespaces. Available namespaces: ipc, mnt, net, pid, user, uts."
+msgstr "Ð’Ñтановлювати відповідніÑÑ‚ÑŒ лише Ð´Ð»Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¸Ñ… проÑторів назв. Можливі проÑтори назв: ipc, mnt, net, pid, user, uts."
+
+#. type: Plain text
+#: ../man/pgrep.1:231 ../man/pmap.1:75 ../man/slabtop.1:48 ../man/sysctl.8:119
+#: ../man/tload.1:41 ../man/vmstat.8:100 ../man/watch.1:100
+msgid "Display version information and exit."
+msgstr "ВивеÑти дані щодо верÑÑ–Ñ— Ñ– завершити роботу."
+
+#. type: TP
+#: ../man/pgrep.1:231 ../man/pmap.1:69 ../man/pwdx.1:22 ../man/skill.1:65
+#: ../man/slabtop.1:48 ../man/sysctl.8:113 ../man/tload.1:35
+#: ../man/uptime.1:40 ../man/vmstat.8:100 ../man/watch.1:94
+#, no-wrap
+msgid "B<-h>, B<--help>"
+msgstr "B<-h>, B<--help>"
+
+#. type: Plain text
+#: ../man/pgrep.1:234 ../man/vmstat.8:103
+msgid "Display help and exit."
+msgstr "Показати довідкові дані і завершити роботу."
+
+#. type: SH
+#: ../man/pgrep.1:235
+#, no-wrap
+msgid "OPERANDS"
+msgstr "ОПЕРÐÐДИ"
+
+#. type: TP
+#: ../man/pgrep.1:236
+#, no-wrap
+msgid "I<pattern>"
+msgstr "I<взірець>"
+
+#. type: Plain text
+#: ../man/pgrep.1:240
+msgid "Specifies an Extended Regular Expression for matching against the process names or command lines."
+msgstr "Вказує розширений формальний вираз Ð´Ð»Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾ÑÑ‚Ñ– за назвами процеÑів або Ñ€Ñдками команд."
+
+#. type: Plain text
+#: ../man/pgrep.1:244
+msgid "Example 1: Find the process ID of the B<named> daemon:"
+msgstr "Приклад 1: знайти ідентифікатор процеÑу фонової Ñлужби B<named>:"
+
+#. type: Plain text
+#: ../man/pgrep.1:246
+msgid "$ pgrep -u root named"
+msgstr "$ pgrep -u root named"
+
+#. type: Plain text
+#: ../man/pgrep.1:250
+msgid "Example 2: Make B<syslog> reread its configuration file:"
+msgstr "Приклад 2: змуÑити B<syslog> виконати повторне Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° налаштувань:"
+
+#. type: Plain text
+#: ../man/pgrep.1:252
+msgid "$ pkill -HUP syslogd"
+msgstr "$ pkill -HUP syslogd"
+
+#. type: Plain text
+#: ../man/pgrep.1:256
+msgid "Example 3: Give detailed information on all B<xterm> processes:"
+msgstr "Приклад 3: надати докладну інформацію щодо уÑÑ–Ñ… процеÑів B<xterm>:"
+
+#. type: Plain text
+#: ../man/pgrep.1:258
+msgid "$ ps -fp $(pgrep -d, -x xterm)"
+msgstr "$ ps -fp $(pgrep -d, -x xterm)"
+
+#. type: Plain text
+#: ../man/pgrep.1:262
+msgid "Example 4: Make all B<chrome> processes run nicer:"
+msgstr "Приклад 4: підвищити пріоритетніÑÑ‚ÑŒ уÑÑ–Ñ… процеÑів B<chrome>:"
+
+#. type: Plain text
+#: ../man/pgrep.1:264
+msgid "$ renice +4 $(pgrep chrome)"
+msgstr "$ renice +4 $(pgrep chrome)"
+
+#. type: SH
+#: ../man/pgrep.1:264 ../man/pidof.1:61 ../man/pmap.1:75 ../man/watch.1:100
+#, no-wrap
+msgid "EXIT STATUS"
+msgstr "СТÐРВИХОДУ"
+
+#. type: TP
+#: ../man/pgrep.1:266
+#, no-wrap
+msgid "0"
+msgstr "0"
+
+#. type: Plain text
+#: ../man/pgrep.1:274
+msgid "One or more processes matched the criteria. For B<pkill> and B<pidwait>, one or more processes must also have been successfully signalled or waited for."
+msgstr "Вказаному критерію відповідає один або декілька процеÑів. Ð”Ð»Ñ B<pkill> Ñ– B<pidwait> також має бути один або декілька процеÑів, Ñким уÑпішно надіÑлано Ñигнал або Ñкі перебувають у Ñтані очікуваннÑ."
+
+#. type: IP
+#: ../man/pgrep.1:274 ../man/ps.1:43 ../man/ps.1:818 ../man/ps.1:2082
+#, no-wrap
+msgid "1"
+msgstr "1"
+
+#. type: Plain text
+#: ../man/pgrep.1:277
+msgid "No processes matched or none of them could be signalled."
+msgstr "Ðе знайдено жодного відповідного процеÑу або жодному зі знайдених процеÑів не вдалоÑÑ Ð½Ð°Ð´Ñ–Ñлати Ñигнал."
+
+#. type: IP
+#: ../man/pgrep.1:277 ../man/ps.1:45 ../man/ps.1:2084
+#, no-wrap
+msgid "2"
+msgstr "2"
+
+#. type: Plain text
+#: ../man/pgrep.1:280
+msgid "Syntax error in the command line."
+msgstr "СинтакÑична помилка у Ñ€Ñдку команди."
+
+#. type: IP
+#: ../man/pgrep.1:280 ../man/ps.1:47 ../man/ps.1:2086
+#, no-wrap
+msgid "3"
+msgstr "3"
+
+#. type: Plain text
+#: ../man/pgrep.1:283
+msgid "Fatal error: out of memory etc."
+msgstr "Критична помилка: вичерпано пам’ÑÑ‚ÑŒ тощо."
+
+#. type: Plain text
+#: ../man/pgrep.1:289
+msgid "The process name used for matching is limited to the 15 characters present in the output of /proc/I<pid>/stat. Use the B<-f> option to match against the complete command line, /proc/I<pid>/cmdline. Threads may not have the same process name as the parent process but will have the same command line."
+msgstr "Ðазву процеÑу, що викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾ÑÑ‚Ñ–, обмежено 15 Ñимволами, Ñкі виводить /proc/I<pid>/stat. Ð”Ð»Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾ÑÑ‚Ñ– за цілим командним Ñ€Ñдком, /proc/I<pid>/cmdline, ÑкориÑтайтеÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ B<-f>. Потоки обробки можуть не мати такої Ñамої назви процеÑу, що Ñ– батьківÑький процеÑ, але матимуть той Ñамий Ñ€Ñдок команди."
+
+#. type: Plain text
+#: ../man/pgrep.1:297
+msgid "The running B<pgrep>, B<pkill>, or B<pidwait> process will never report itself as a match."
+msgstr "Запущений Ð¿Ñ€Ð¾Ñ†ÐµÑ B<pgrep>, B<pkill> або B<pidwait> ніколи не повідомлÑтиметьÑÑ Ñамим Ñобою Ñк відповідник."
+
+#. type: Plain text
+#: ../man/pgrep.1:301
+msgid "The B<-O --older> option will silently fail if I</proc> is mounted with the I<subset=pid> option."
+msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° B<-O --older> буде без повідомлень не враховано, Ñкщо I</proc> змонтовано з параметром I<subset=pid>."
+
+#. type: Plain text
+#: ../man/pgrep.1:310
+msgid "The options B<-n> and B<-o> and B<-v> can not be combined. Let me know if you need to do this."
+msgstr "Ðе можна одночаÑно викориÑтовувати параметри B<-n>, B<-o> та B<-v> одночаÑно. Повідомте авторам, Ñкщо вам потрібне таке поєднаннÑ."
+
+#. type: Plain text
+#: ../man/pgrep.1:312
+msgid "Defunct processes are reported."
+msgstr "Програма повідомлÑÑ” про щезлі процеÑи."
+
+#. type: Plain text
+#: ../man/pgrep.1:317
+msgid "B<pidwait> requires the B<pidfd_open>(2) system call which first appeared in Linux 5.3."
+msgstr "B<pidwait> потребує ÑиÑтемного виклику B<pidfd_open>(2), Ñкий вперше з'ÑвивÑÑ Ñƒ Linux 5.3."
+
+#. type: Plain text
+#: ../man/pgrep.1:327
+msgid "B<ps>(1), B<regex>(7), B<signal>(7), B<sigqueue>(3), B<killall>(1), B<skill>(1), B<kill>(1), B<kill>(2), B<cgroups>(8)."
+msgstr "B<ps>(1), B<regex>(7), B<signal>(7), B<sigqueue>(3), B<killall>(1), B<skill>(1), B<kill>(1), B<kill>(2), B<cgroups>(8)."
+
+#. type: Plain text
+#: ../man/pgrep.1:331
+msgid "E<.UR kjetilho@ifi.uio.no> Kjetil Torgrim Homme E<.UE>"
+msgstr "E<.UR kjetilho@ifi.uio.no> Kjetil Torgrim Homme E<.UE>"
+
+#. type: TH
+#: ../man/pidof.1:13
+#, no-wrap
+msgid "PIDOF"
+msgstr "PIDOF"
+
+#. type: Plain text
+#: ../man/pidof.1:16
+msgid "pidof - find the process ID of a running program"
+msgstr "pidof — визначити ідентифікатор процеÑу запущеної програми"
+
+#. type: Plain text
+#: ../man/pidof.1:30
+msgid "B<pidof> [B<-s>] [B<-c>] [B<-q>] [B<-w>] [B<-x>] [B<-o> I<omitpid[,omitpid...]...>] [B<-t>] [B<-S> I<separator>] I<program> I<[>B<program...>I<]>"
+msgstr "B<pidof> [B<-s>] [B<-c>] [B<-q>] [B<-w>] [B<-x>] [B<-o> I<пропущений_pid[,пропущений_pid...]...>] [B<-t>] [B<-S> I<роздільник>] B<програма> I<[>B<програма...>I<]>"
+
+#. type: Plain text
+#: ../man/pidof.1:34
+msgid "B<Pidof> finds the process id's (pids) of the named programs. It prints those id's on the standard output."
+msgstr "B<Pidof> виконує пошук ідентифікаторів процеÑів (pids) вказаних програм. Дані щодо виÑвлених ідентифікаторів буде виведено до Ñтандартного виведеннÑ."
+
+#. type: IP
+#: ../man/pidof.1:35
+#, no-wrap
+msgid "B<-s>"
+msgstr "B<-s>"
+
+#. type: Plain text
+#: ../man/pidof.1:37
+msgid "Single shot - this instructs the program to only return one I<pid>."
+msgstr "Один відповідник: наказує програмі повернути лише один I<pid>."
+
+#. type: TP
+#: ../man/pidof.1:37 ../man/ps.1:409
+#, no-wrap
+msgid "B<-c>"
+msgstr "B<-c>"
+
+#. type: Plain text
+#: ../man/pidof.1:41
+msgid "Only return process ids that are running with the same root directory. This option is ignored for non-root users, as they will be unable to check the current root directory of processes they do not own."
+msgstr "Повернути лише ідентифікатори тих процеÑів, Ñкі працюють у тому Ñамому кореневому каталозі. Цей параметр буде проігноровано, Ñкщо програму запущено від імені кориÑтувачів, відмінних від кориÑтувача root, оÑкільки таким кориÑтувачам не дозволено доÑтуп до перевірки поточного кореневого каталогу процеÑів, влаÑниками Ñких вони не Ñ”."
+
+#. type: IP
+#: ../man/pidof.1:41
+#, no-wrap
+msgid "B<-q>"
+msgstr "B<-q>"
+
+#. type: Plain text
+#: ../man/pidof.1:43
+msgid "Quiet mode, suppress any output and only sets the exit status accordingly."
+msgstr "Режим без повідомлень. Придушити Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ, лише вÑтановити Ñтан виходу відповідним чином."
+
+#. type: TP
+#: ../man/pidof.1:43 ../man/ps.1:718
+#, no-wrap
+msgid "B<-w>"
+msgstr "B<-w>"
+
+#. type: Plain text
+#: ../man/pidof.1:46
+msgid "Show also processes that do not have visible command line (e.g. kernel worker threads)."
+msgstr "Показувати Ñ– процеÑи, Ñкі не мають видимого Ñ€Ñдка команди (наприклад потоки-обробники Ñдра)."
+
+#. type: TP
+#: ../man/pidof.1:46 ../man/sysctl.8:110
+#, no-wrap
+msgid "B<-x>"
+msgstr "B<-x>"
+
+#. type: Plain text
+#: ../man/pidof.1:49
+msgid "Scripts too - this causes the program to also return process id's of shells running the named scripts."
+msgstr "Разом зі Ñкриптами: наказує програмі повернути ідентифікатори процеÑів оболонок, у Ñких запущено вказані Ñкрипти."
+
+#. type: IP
+#: ../man/pidof.1:49
+#, no-wrap
+msgid "B<-o> I<omitpid>"
+msgstr "B<-o> I<пропущений_pid>"
+
+#. type: Plain text
+#: ../man/pidof.1:53
+msgid "Tells B<pidof> to omit processes with that process id. The special pid B<%PPID> can be used to name the parent process of the B<pidof> program, in other words the calling shell or shell script."
+msgstr "Ðаказує B<pidof> пропуÑкати процеÑи із вказаним ідентифікатором. Спеціальним ідентифікатором процеÑу B<%PPID> можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±Ð°Ñ‚ÑŒÐºÑ–Ð²Ñького процеÑу програми I<pidof>, інакше кажучи, оболонки або Ñкрипту оболонки, за допомогою Ñкого було викликано програму."
+
+#. type: IP
+#: ../man/pidof.1:53
+#, no-wrap
+msgid "B<-t>"
+msgstr "B<-t>"
+
+#. type: Plain text
+#: ../man/pidof.1:55
+msgid "Shows all thread ids instead of pids."
+msgstr "ВивеÑти уÑÑ– ідентифікатори потоків обробки заміÑÑ‚ÑŒ ідентифікаторів процеÑів."
+
+#. type: IP
+#: ../man/pidof.1:55
+#, no-wrap
+msgid "B<-S> I<separator>"
+msgstr "B<-S> I<роздільник>"
+
+#. type: Plain text
+#: ../man/pidof.1:61
+msgid "Use I<separator> as a separator put between pids. Used only when more than one pids are printed for the program. The B<-d> option is an alias for this option for sysvinit B<pidof> compatibility."
+msgstr "СкориÑтатиÑÑ Ñ€Ð¾Ð·Ð´Ñ–Ð»ÑŒÐ½Ð¸ÐºÐ¾Ð¼ I<роздільник> Ñк роздільником запиÑів ідентифікаторів процеÑів. ВикориÑтовуєтьÑÑ, лише Ñкщо програма виводить декілька ідентифікаторів процеÑів. Параметр B<-d> Ñ” альтернативним варіантом запиÑу цього параметра, призначеним Ð´Ð»Ñ ÑуміÑноÑÑ‚Ñ– B<pidof> з sysvinit."
+
+#. type: TP
+#: ../man/pidof.1:62 ../man/pmap.1:79 ../man/watch.1:104
+#, no-wrap
+msgid "B<0>"
+msgstr "B<0>"
+
+#. type: Plain text
+#: ../man/pidof.1:65
+msgid "At least one program was found with the requested name."
+msgstr "Знайдено принаймні одну програму із вказаною назвою."
+
+#. type: TP
+#: ../man/pidof.1:65 ../man/pmap.1:82 ../man/watch.1:107
+#, no-wrap
+msgid "B<1>"
+msgstr "B<1>"
+
+#. type: Plain text
+#: ../man/pidof.1:68
+msgid "No program was found with the requested name."
+msgstr "Програми із вказаною назвою не знайдено."
+
+#. type: Plain text
+#: ../man/pidof.1:75
+msgid "When using the B<-x> option, B<pidof> only has a simple method for detecting scripts and will miss scripts that, for example, use env. This limitation is due to how the scripts look in the proc filesystem."
+msgstr "Якщо викориÑтано параметр B<-x>, B<pidof> зможе викориÑтовувати лише проÑтий ÑпоÑіб виÑÐ²Ð»ÐµÐ½Ð½Ñ Ñкриптів Ñ– не зможе ÑкориÑтатиÑÑ Ñкриптами, у Ñких, наприклад, викориÑтано env. Це Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²'Ñзано із тим, Ñк виглÑдають Ñкрипти з точки зору файлової ÑиÑтеми процеÑів."
+
+#. type: Plain text
+#: ../man/pidof.1:79
+msgid "B<pgrep>(1), B<pkill>(1)"
+msgstr "B<pgrep>(1), B<pkill>(1)"
+
+#. type: Plain text
+#: ../man/pidof.1:82
+msgid "E<.UR jcapik@redhat.com> Jaromir Capik E<.UE>"
+msgstr "E<.UR jcapik@redhat.com> Jaromir Capik E<.UE>"
+
+#. type: TH
+#: ../man/pmap.1:19
+#, no-wrap
+msgid "PMAP"
+msgstr "PMAP"
+
+#. type: TH
+#: ../man/pmap.1:19 ../man/pwdx.1:12 ../man/tload.1:12
+#, no-wrap
+msgid "2020-06-04"
+msgstr "4 Ñ‡ÐµÑ€Ð²Ð½Ñ 2020 року"
+
+#. type: Plain text
+#: ../man/pmap.1:22
+msgid "pmap - report memory map of a process"
+msgstr "pmap — вивеÑти карту пам’ÑÑ‚Ñ– певного процеÑу."
+
+#. type: Plain text
+#: ../man/pmap.1:25
+msgid "B<pmap> [I<options>] I<pid> [...]"
+msgstr "B<pmap> [I<параметри>] I<pid> [...]"
+
+#. type: Plain text
+#: ../man/pmap.1:29
+msgid "The B<pmap> command reports the memory map of a process or processes."
+msgstr "Команда B<pmap> виводить карту пам’ÑÑ‚Ñ– процеÑу або процеÑів."
+
+#. type: TP
+#: ../man/pmap.1:30
+#, no-wrap
+msgid "B<-x>, B<--extended>"
+msgstr "B<-x>, B<--extended>"
+
+#. type: Plain text
+#: ../man/pmap.1:33
+msgid "Show the extended format."
+msgstr "ВивеÑти дані у розширеному форматі."
+
+#. type: TP
+#: ../man/pmap.1:33
+#, no-wrap
+msgid "B<-d>, B<--device>"
+msgstr "B<-d>, B<--device>"
+
+#. type: Plain text
+#: ../man/pmap.1:36
+msgid "Show the device format."
+msgstr "ВивеÑти дані щодо формату приÑтрою."
+
+#. type: TP
+#: ../man/pmap.1:36 ../man/sysctl.8:57
+#, no-wrap
+msgid "B<-q>, B<--quiet>"
+msgstr "B<-q>, B<--quiet>"
+
+#. type: Plain text
+#: ../man/pmap.1:39
+msgid "Do not display some header or footer lines."
+msgstr "Ðе виводити деÑкі початкові Ñ– кінцеві Ñ€Ñдки."
+
+#. type: TP
+#: ../man/pmap.1:39
+#, no-wrap
+msgid "B<-A>, B<--range> I<low>,I<high>"
+msgstr "B<-A>, B<--range> I<Ð½Ð¸Ð¶Ð½Ñ Ð¼ÐµÐ¶Ð°>,I<Ð²ÐµÑ€Ñ…Ð½Ñ Ð¼ÐµÐ¶Ð°>"
+
+#. type: Plain text
+#: ../man/pmap.1:47
+msgid "Limit results to the given range to I<low> and I<high> address range. Notice that the low and high arguments are single string separated with comma."
+msgstr "Обмежити результати вказаним діапазоном Ð°Ð´Ñ€ÐµÑ Ð²Ñ–Ð´ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ I<Ð½Ð¸Ð¶Ð½Ñ Ð¼ÐµÐ¶Ð°> до Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ I<Ð²ÐµÑ€Ñ…Ð½Ñ Ð¼ÐµÐ¶Ð°>. Зауважте, що аргументи нижньої Ñ– верхньої меж Ñ” одним Ñ€Ñдком, Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ Ñкому відокремлено комою."
+
+#. type: TP
+#: ../man/pmap.1:47 ../man/sysctl.8:104
+#, no-wrap
+msgid "B<-X>"
+msgstr "B<-X>"
+
+#. type: Plain text
+#: ../man/pmap.1:51
+msgid "Show even more details than the B<-x> option. WARNING: format changes according to I</proc/PID/smaps>"
+msgstr "Показати додаткові подробиці, більші, ніж Ñкщо викориÑтовуєтьÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€ B<-x>. ПОПЕРЕДЖЕÐÐЯ: зміни у форматі відповідають змінам у I</proc/PID/smaps>."
+
+#. type: TP
+#: ../man/pmap.1:51
+#, no-wrap
+msgid "B<-XX>"
+msgstr "B<-XX>"
+
+#. type: Plain text
+#: ../man/pmap.1:54
+msgid "Show everything the kernel provides"
+msgstr "ВивеÑти уÑе, що надаєтьÑÑ Ñдром."
+
+#. type: TP
+#: ../man/pmap.1:54
+#, no-wrap
+msgid "B<-p>, B<--show-path>"
+msgstr "B<-p>, B<--show-path>"
+
+#. type: Plain text
+#: ../man/pmap.1:57
+msgid "Show full path to files in the mapping column"
+msgstr "Виводити шлÑÑ… до файлів у Ñтовпчику прив’Ñзки повніÑÑ‚ÑŽ."
+
+#. type: TP
+#: ../man/pmap.1:57
+#, no-wrap
+msgid "B<-c>, B<--read-rc>"
+msgstr "B<-c>, B<--read-rc>"
+
+#. type: Plain text
+#: ../man/pmap.1:60
+msgid "Read the default configuration"
+msgstr "Прочитати типові налаштуваннÑ."
+
+#. type: TP
+#: ../man/pmap.1:60
+#, no-wrap
+msgid "B<-C>, B<--read-rc-from> I<file>"
+msgstr "B<-C>, B<--read-rc-from> I<файл>"
+
+#. type: Plain text
+#: ../man/pmap.1:63
+msgid "Read the configuration from I<file>"
+msgstr "Прочитати Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð· файла I<файл>."
+
+#. type: TP
+#: ../man/pmap.1:63
+#, no-wrap
+msgid "B<-n>, B<--create-rc>"
+msgstr "B<-n>, B<--create-rc>"
+
+#. type: Plain text
+#: ../man/pmap.1:66
+msgid "Create new default configuration"
+msgstr "Створити нові типові налаштуваннÑ."
+
+#. type: TP
+#: ../man/pmap.1:66
+#, no-wrap
+msgid "B<-N>, B<--create-rc-to> I<file>"
+msgstr "B<-N>, B<--create-rc-to> I<файл>"
+
+#. type: Plain text
+#: ../man/pmap.1:69
+msgid "Create new configuration to I<file>"
+msgstr "Створити Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ файлі I<файл>"
+
+#. type: Plain text
+#: ../man/pmap.1:72 ../man/skill.1:68 ../man/sysctl.8:116 ../man/w.1:66
+#: ../man/watch.1:97
+msgid "Display help text and exit."
+msgstr "ВивеÑти текÑÑ‚ довідки Ñ– завершити роботу."
+
+#. type: Plain text
+#: ../man/pmap.1:82 ../man/watch.1:107
+msgid "Success."
+msgstr "УÑпіх."
+
+#. type: Plain text
+#: ../man/pmap.1:85
+msgid "Failure."
+msgstr "Ðевдача."
+
+#. type: TP
+#: ../man/pmap.1:85
+#, no-wrap
+msgid "B<42>"
+msgstr "B<42>"
+
+#. type: Plain text
+#: ../man/pmap.1:88
+msgid "Did not find all processes asked for."
+msgstr "Ðе знайдено уÑÑ– процеÑи, щодо Ñких було надіÑлано запит."
+
+#. type: Plain text
+#: ../man/pmap.1:93 ../man/pwdx.1:28
+msgid "B<ps>(1), B<pgrep>(1)"
+msgstr "B<ps>(1), B<pgrep>(1)"
+
+#. type: Plain text
+#: ../man/pmap.1:97
+msgid "No standards apply, but B<pmap> looks an awful lot like a SunOS command."
+msgstr "Стандарти не заÑтоÑовувалиÑÑ, але B<pmap> Ñ” Ñхожим на програму Ð´Ð»Ñ SunOS."
+
+#. type: TH
+#: ../man/pwdx.1:12
+#, no-wrap
+msgid "PWDX"
+msgstr "PWDX"
+
+#. type: Plain text
+#: ../man/pwdx.1:15
+msgid "pwdx - report current working directory of a process"
+msgstr "pwdx — повідомити про поточний робочий каталог процеÑу."
+
+#. type: Plain text
+#: ../man/pwdx.1:18
+msgid "B<pwdx> [I<options>] I<pid> [...]"
+msgstr "B<pwdx> [I<параметри>] I<pid> [...]"
+
+#. type: Plain text
+#: ../man/pwdx.1:22
+msgid "Output version information and exit."
+msgstr "ВивеÑти дані щодо верÑÑ–Ñ— Ñ– завершити роботу."
+
+#. type: Plain text
+#: ../man/pwdx.1:25
+msgid "Output help screen and exit."
+msgstr "ВивеÑти довідкові дані Ñ– завершити роботу."
+
+#. type: Plain text
+#: ../man/pwdx.1:32
+msgid "No standards apply, but B<pwdx> looks an awful lot like a SunOS command."
+msgstr "Стандарти не заÑтоÑовувалиÑÑ, але B<pwdx> Ñ” Ñхожим на програму Ð´Ð»Ñ SunOS."
+
+#. type: Plain text
+#: ../man/pwdx.1:37
+msgid "E<.UR nmiell@gmail.com> Nicholas Miell E<.UE> wrote pwdx in 2004."
+msgstr "E<.UR nmiell@gmail.com> Nicholas Miell E<.UE> Ñтворив pwdx у 2004 році."
+
+#. type: TH
+#: ../man/skill.1:12
+#, no-wrap
+msgid "SKILL"
+msgstr "SKILL"
+
+#. type: TH
+#: ../man/skill.1:12 ../man/sysctl.8:14 ../man/ps.1:13
+#, no-wrap
+msgid "2023-08-19"
+msgstr "19 ÑÐµÑ€Ð¿Ð½Ñ 2023 року"
+
+#. type: Plain text
+#: ../man/skill.1:15
+msgid "skill, snice - send a signal or report process status"
+msgstr "skill, snice — надіÑлати Ñигнал або повідомити про Ñтан процеÑу."
+
+#. type: Plain text
+#: ../man/skill.1:20
+msgid "B<skill> [I<signal>] [I<options>] I<expression>"
+msgstr "B<snice> [I<нова пріоритетніÑÑ‚ÑŒ>] [I<параметри>] I<вираз>"
+
+#. type: Plain text
+#: ../man/skill.1:25
+msgid "B<snice> [I<new priority>] [I<options>] I<expression>"
+msgstr "B<snice> [I<нова пріоритетніÑÑ‚ÑŒ>] [I<параметри>] I<вираз>"
+
+#. type: Plain text
+#: ../man/skill.1:33
+msgid "These tools are obsolete and unportable. The command syntax is poorly defined. Consider using the B<killall>, B<pkill>, and B<pgrep> commands instead."
+msgstr "Ці програми Ñ” заÑтарілими Ñ– непридатними до портуваннÑ. СинтакÑÐ¸Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¸Ñ… команд Ñ” погано визначеним. Вам варто кориÑтуватиÑÑ Ð·Ð°Ð¼Ñ–ÑÑ‚ÑŒ них програмами B<killall>, B<pkill> та B<pgrep>."
+
+#. type: Plain text
+#: ../man/skill.1:38
+msgid "The default signal for B<skill> is TERM. Use B<-l> or B<-L> to list available signals. Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0. Alternate signals may be specified in three ways: B<-9> B<-SIGKILL> B<-KILL>."
+msgstr "Типовим Ñигналом Ð´Ð»Ñ B<skill> Ñ” TERM. СкориÑтайтеÑÑ B<-l> або B<-L> Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ ÑпиÑку Ñигналів. Зокрема, кориÑними Ñигналами Ñ” HUP, INT, KILL, STOP, CONT та 0. Інші Ñигнали може бути вказано у три ÑпоÑоби: B<-9> B<-SIGKILL> B<-KILL>."
+
+#. type: Plain text
+#: ../man/skill.1:42
+msgid "The default priority for B<snice> is +4. Priority numbers range from +20 (slowest) to -20 (fastest). Negative priority numbers are restricted to administrative users."
+msgstr "Типовим рівнем пріоритетноÑÑ‚Ñ– Ð´Ð»Ñ B<snice> Ñ” +4. РівнÑм відповідають чиÑла від +20 (найнижчий) до -20 (найвищий). Від’ємними значеннÑми можуть ÑкориÑтатиÑÑ Ð»Ð¸ÑˆÐµ кориÑтувачі з адмініÑтративними правами доÑтупу."
+
+#. type: TP
+#: ../man/skill.1:43
+#, no-wrap
+msgid "B<-f>,B<\\ --fast>"
+msgstr "B<-f>,B<\\ --fast>"
+
+#. type: Plain text
+#: ../man/skill.1:46
+msgid "Fast mode. This option has not been implemented."
+msgstr "Швидкий режим. Цей параметр ще не реалізовано."
+
+#. type: TP
+#: ../man/skill.1:46
+#, no-wrap
+msgid "B<-i>,B<\\ --interactive>"
+msgstr "B<-i>,B<\\ --interactive>"
+
+#. type: Plain text
+#: ../man/skill.1:49
+msgid "Interactive use. You will be asked to approve each action."
+msgstr "Інтерактивний режим. Програма проÑитиме Ð²Ð°Ñ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¸Ñ‚Ð¸ кожну дію."
+
+#. type: TP
+#: ../man/skill.1:49
+#, no-wrap
+msgid "B<-l>,B<\\ --list>"
+msgstr "B<-l>,B<\\ --list>"
+
+#. type: Plain text
+#: ../man/skill.1:52
+msgid "List all signal names."
+msgstr "ВивеÑти ÑпиÑок уÑÑ–Ñ… назв Ñигналів."
+
+#. type: Plain text
+#: ../man/skill.1:55
+msgid "List all signal names in a nice table."
+msgstr "ВивеÑти ÑпиÑок назв уÑÑ–Ñ… Ñигналів у форматі таблиці."
+
+#. type: TP
+#: ../man/skill.1:55
+#, no-wrap
+msgid "B<-n>,B<\\ --no-action>"
+msgstr "B<-n>,B<\\ --no-action>"
+
+#. type: Plain text
+#: ../man/skill.1:59
+msgid "No action; perform a simulation of events that would occur but do not actually change the system."
+msgstr "Ðе виконувати дій. Виконати імітацію подій, Ñкі б ÑталиÑÑ, але не вноÑити змін до ÑиÑтеми."
+
+#. type: TP
+#: ../man/skill.1:59
+#, no-wrap
+msgid "B<-v>,B<\\ --verbose>"
+msgstr "B<-v>,B<\\ --verbose>"
+
+#. type: Plain text
+#: ../man/skill.1:62
+msgid "Verbose; explain what is being done."
+msgstr "Докладний режим. Виводити поÑÑÐ½ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ уÑÑ–Ñ… виконуваних дій."
+
+#. type: TP
+#: ../man/skill.1:62
+#, no-wrap
+msgid "B<-w>,B<\\ --warnings>"
+msgstr "B<-w>,B<\\ --warnings>"
+
+#. type: Plain text
+#: ../man/skill.1:65
+msgid "Enable warnings. This option has not been implemented."
+msgstr "Увімкнути Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½ÑŒ. Цей параметри ще не реалізовано."
+
+#. type: SH
+#: ../man/skill.1:72
+#, no-wrap
+msgid "PROCESS SELECTION OPTIONS"
+msgstr "ПÐРÐМЕТРИ ВИБОРУ ПРОЦЕСУ"
+
+#. type: Plain text
+#: ../man/skill.1:75
+msgid "Selection criteria can be: terminal, user, pid, command. The options below may be used to ensure correct interpretation."
+msgstr "КритеріÑми вибору можуть бути такі значеннÑ: terminal, user, pid, command. Ðаведені нижче параметри може бути викориÑтано Ð´Ð»Ñ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ Ð½Ð°Ð»ÐµÐ¶Ð½Ð¾Ñ— інтерпретації."
+
+#. type: TP
+#: ../man/skill.1:75
+#, no-wrap
+msgid "B<-t>, B<--tty> I<tty>"
+msgstr "B<-t>, B<--tty> I<tty>"
+
+#. type: Plain text
+#: ../man/skill.1:78
+msgid "The next expression is a terminal (tty or pty)."
+msgstr "ÐаÑтупний вираз Ñ” терміналом (tty або pty)."
+
+#. type: TP
+#: ../man/skill.1:78
+#, no-wrap
+msgid "B<-u>, B<--user> I<user>"
+msgstr "B<-u>, B<--user> I<кориÑтувач>"
+
+#. type: Plain text
+#: ../man/skill.1:81
+msgid "The next expression is a username."
+msgstr "ÐаÑтупний вираз Ñ” іменем кориÑтувача."
+
+#. type: TP
+#: ../man/skill.1:81
+#, no-wrap
+msgid "B<-p>, B<--pid> I<pid>"
+msgstr "B<-p>, B<--pid> I<pid>"
+
+#. type: Plain text
+#: ../man/skill.1:84
+msgid "The next expression is a process ID number."
+msgstr "ÐаÑтупний вираз Ñ” ідентифікаційним номером процеÑу."
+
+#. type: TP
+#: ../man/skill.1:84
+#, no-wrap
+msgid "B<-c>, B<--command> I<command>"
+msgstr "B<-c>, B<--command> I<команда>"
+
+#. type: Plain text
+#: ../man/skill.1:87
+msgid "The next expression is a command name."
+msgstr "ÐаÑтупний вираз Ñ” назвою команди."
+
+#. type: Plain text
+#: ../man/skill.1:90
+msgid "Match the processes that belong to the same namespace as pid."
+msgstr "Ð’Ñтановлювати відповідніÑÑ‚ÑŒ процеÑам, що належать тому Ñамому проÑтору назв, що Ñ– pid."
+
+#. type: TP
+#: ../man/skill.1:90
+#, no-wrap
+msgid "B<--nslist >I<ns\\/>,\\,I<...\\/>"
+msgstr "B<--nslist >I<ns\\/>,\\,I<...\\/>"
+
+#. type: Plain text
+#: ../man/skill.1:94
+msgid "list which namespaces will be considered for the B<--ns> option. Available namespaces: ipc, mnt, net, pid, user, uts."
+msgstr "ВивеÑти ÑпиÑок проÑторів назв, Ñкі викориÑтовуватимутьÑÑ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ з параметром B<--ns>. Можливі проÑтори назв: ipc, mnt, net, pid, user, uts."
+
+#. type: SH
+#: ../man/skill.1:95
+#, no-wrap
+msgid "SIGNALS"
+msgstr "СИГÐÐЛИ"
+
+#. type: Plain text
+#: ../man/skill.1:99
+msgid "The behavior of signals is explained in B<signal>(7) manual page."
+msgstr "Поведінку Ñигналів опиÑано на Ñторінці підручника B<signal>(7)."
+
+#. type: TP
+#: ../man/skill.1:100
+#, no-wrap
+msgid "B<snice -c seti -c crack +7>"
+msgstr "B<snice -c seti -c crack +7>"
+
+#. type: Plain text
+#: ../man/skill.1:103
+msgid "+Slow down B<seti> and B<crack> commands."
+msgstr "+Уповільнити програми B<seti> та B<crack>."
+
+#. type: TP
+#: ../man/skill.1:103
+#, no-wrap
+msgid "B<skill -KILL -t /dev/pts/*>"
+msgstr "B<skill -KILL -t /dev/pts/*>"
+
+#. type: Plain text
+#: ../man/skill.1:106
+msgid "Kill users on PTY devices."
+msgstr "Припинити ÑеанÑи кориÑтувачів на приÑтроÑÑ… PTY."
+
+#. type: TP
+#: ../man/skill.1:106
+#, no-wrap
+msgid "B<skill -STOP -u viro -u lm -u davem>"
+msgstr "B<skill -STOP -u viro -u lm -u davem>"
+
+#. type: Plain text
+#: ../man/skill.1:109
+msgid "Stop three users."
+msgstr "Припинити роботу трьох кориÑтувачів."
+
+#. type: Plain text
+#: ../man/skill.1:117
+msgid "B<kill>(1), B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), B<renice>(1), B<signal>(7)"
+msgstr "B<kill>(1), B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), B<renice>(1), B<signal>(7)"
+
+#. type: Plain text
+#: ../man/skill.1:119
+msgid "No standards apply."
+msgstr "Стандарти не заÑтоÑовувалиÑÑ."
+
+#. type: Plain text
+#: ../man/skill.1:125
+msgid "E<.MT albert@users.sf.net> Albert Cahalan E<.ME> wrote skill and snice in 1999 as a replacement for a non-free version."
+msgstr "E<.MT albert@users.sf.net> Albert Cahalan E<.ME> напиÑав skill та snice у 1999 році, щоб замінити верÑÑ–Ñ—, Ñкі не були вільними."
+
+#. type: TH
+#: ../man/slabtop.1:14
+#, no-wrap
+msgid "SLABTOP"
+msgstr "SLABTOP"
+
+#. type: TH
+#: ../man/slabtop.1:14
+#, no-wrap
+msgid "2021-03-11"
+msgstr "11 Ð±ÐµÑ€ÐµÐ·Ð½Ñ 2021 року"
+
+#. type: Plain text
+#: ../man/slabtop.1:17
+msgid "slabtop - display kernel slab cache information in real time"
+msgstr "slabtop — програма Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ даних щодо кешу чаÑтин у режимі реального чаÑу."
+
+#. type: Plain text
+#: ../man/slabtop.1:20
+msgid "B<slabtop> [I<options>]"
+msgstr "B<slabtop> [I<параметри>]"
+
+#. type: Plain text
+#: ../man/slabtop.1:25
+msgid "B<slabtop> displays detailed kernel slab cache information in real time. It displays a listing of the top caches sorted by one of the listed sort criteria. It also displays a statistics header filled with slab layer information."
+msgstr "Програма B<slabtop> показує докладні дані щодо кешу чаÑтин Ñдра у режимі реального чаÑу. Буде показано верхню чаÑтину ÑпиÑку, упорÑдкованого за одним з критеріїв. Також буде показано заголовок із даними щодо шару чаÑтин."
+
+#. type: Plain text
+#: ../man/slabtop.1:30
+msgid "Normal invocation of B<slabtop> does not require any options. The behavior, however, can be fine-tuned by specifying one or more of the following flags:"
+msgstr "Якщо B<slabtop> викориÑтовуєтьÑÑ Ñƒ звичайному режимі, програма не потребує додаткових параметрів. Втім, поведінку програми можна змінити додаваннÑм до Ñ€Ñдка команди одного або декількох параметрів:"
+
+#. type: TP
+#: ../man/slabtop.1:30
+#, no-wrap
+msgid "B<-d>, B<--delay>=I<N>"
+msgstr "B<-d>, B<--delay>=I<N>"
+
+#. type: Plain text
+#: ../man/slabtop.1:39
+msgid "Refresh the display every I<n> in seconds. By default, B<slabtop> refreshes the display every three seconds. To exit the program, hit B<q>. This cannot be combined with the B<-o> option."
+msgstr "Оновлювати показані дані кожні I<n> Ñекунд. Типово, B<slabtop> оновлює показ кожні 3 Ñекунди. Щоб завершити роботу програми, натиÑніть клавішу B<q>. Ðе можна поєднувати із параметром B<-o>."
+
+#. type: TP
+#: ../man/slabtop.1:39
+#, no-wrap
+msgid "B<-s>, B<--sort>=I<S>"
+msgstr "B<-s>, B<--sort>=I<критерій>"
+
+#. type: Plain text
+#: ../man/slabtop.1:42
+msgid "Sort by I<S>, where I<S> is one of the sort criteria."
+msgstr "УпорÑдкувати за I<S>, де I<S> Ñ” одним із вказаних нижче критеріїв упорÑдковуваннÑ."
+
+#. type: TP
+#: ../man/slabtop.1:42
+#, no-wrap
+msgid "B<-o>, B<--once>"
+msgstr "B<-o>, B<--once>"
+
+#. type: Plain text
+#: ../man/slabtop.1:45
+msgid "Display the output once and then exit."
+msgstr "ВивеÑти дані один раз Ñ– завершити роботу."
+
+#. type: Plain text
+#: ../man/slabtop.1:51
+msgid "Display usage information and exit."
+msgstr "ВивеÑти дані щодо кориÑÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ– завершити роботу."
+
+#. type: SH
+#: ../man/slabtop.1:51
+#, no-wrap
+msgid "SORT CRITERIA"
+msgstr "КРИТЕРІЙ УПОРЯДКОВУВÐÐÐЯ"
+
+#. type: Plain text
+#: ../man/slabtop.1:55
+msgid "The following are valid sort criteria used to sort the individual slab caches and thereby determine what are the \"top\" slab caches to display. The default sort criteria is to sort by the number of objects (\"o\")."
+msgstr "Ðижче наведено коректні критерії упорÑдковуваннÑ, що викориÑтовуютьÑÑ Ð´Ð»Ñ Ð¾ÐºÑ€ÐµÐ¼Ð¸Ñ… кешів чаÑтин, а отже, визначають, Ñкі кеші чаÑтин перебуватимуть у верхній чаÑтині показаного ÑпиÑку. Типовий критерієм упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ” кількіÑÑ‚ÑŒ об’єктів («o»)."
+
+#. type: Plain text
+#: ../man/slabtop.1:59
+msgid "The sort criteria can also be changed while B<slabtop> is running by pressing the associated character."
+msgstr "Крім того, критерій упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° змінити під Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ B<slabtop> натиÑканнÑм відповідної клавіші."
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<character>"
+msgstr "B<Ñимвол>"
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<description>"
+msgstr "B<опиÑ>"
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<header>"
+msgstr "B<заголовок>"
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "a"
+msgstr "a"
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "number of active objects"
+msgstr "кількіÑÑ‚ÑŒ активних об’єктів"
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "ACTIVE"
+msgstr "ÐКТИВÐ"
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "b"
+msgstr "b"
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "objects per slab"
+msgstr "кількіÑÑ‚ÑŒ об’єктів на фрагмент"
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "OBJ/SLAB"
+msgstr "ОБ./ЧÐСТ"
+
+#. type: tbl table
+#: ../man/slabtop.1:64 ../man/ps.1:909 ../man/ps.1:1081
+#, no-wrap
+msgid "c"
+msgstr "c"
+
+#. type: tbl table
+#: ../man/slabtop.1:64
+#, no-wrap
+msgid "cache size"
+msgstr "розмір кешу"
+
+#. type: tbl table
+#: ../man/slabtop.1:64
+#, no-wrap
+msgid "CACHE SIZE"
+msgstr "РОЗМІР КЕШУ"
+
+#. type: TP
+#: ../man/slabtop.1:65 ../man/ps.1:882
+#, no-wrap
+msgid "l"
+msgstr "l"
+
+#. type: tbl table
+#: ../man/slabtop.1:65
+#, no-wrap
+msgid "number of slabs"
+msgstr "кількіÑÑ‚ÑŒ фрагментів (чаÑтин)"
+
+#. type: tbl table
+#: ../man/slabtop.1:65
+#, no-wrap
+msgid "SLABS"
+msgstr "ЧÐСТ"
+
+#. type: tbl table
+#: ../man/slabtop.1:66 ../man/ps.1:932
+#, no-wrap
+msgid "v"
+msgstr "v"
+
+#. type: tbl table
+#: ../man/slabtop.1:66
+#, no-wrap
+msgid "number of active slabs"
+msgstr "кількіÑÑ‚ÑŒ активних чаÑтин"
+
+#. type: tbl table
+#: ../man/slabtop.1:66 ../man/slabtop.1:69
+#, no-wrap
+msgid "N/A"
+msgstr "Ðемає"
+
+#. type: tbl table
+#: ../man/slabtop.1:67 ../man/ps.1:919
+#, no-wrap
+msgid "n"
+msgstr "n"
+
+#. type: tbl table
+#: ../man/slabtop.1:67
+#, no-wrap
+msgid "name"
+msgstr "назва"
+
+#. type: tbl table
+#: ../man/slabtop.1:67
+#, no-wrap
+msgid "NAME\\:"
+msgstr "ÐÐЗВÐ\\:"
+
+#. type: tbl table
+#: ../man/slabtop.1:68 ../man/ps.1:921
+#, no-wrap
+msgid "o"
+msgstr "o"
+
+#. type: tbl table
+#: ../man/slabtop.1:68
+#, no-wrap
+msgid "number of objects"
+msgstr "кількіÑÑ‚ÑŒ об’єктів"
+
+#. type: tbl table
+#: ../man/slabtop.1:68
+#, no-wrap
+msgid "OBJS"
+msgstr "OBJS"
+
+#. type: tbl table
+#: ../man/slabtop.1:69 ../man/ps.1:922
+#, no-wrap
+msgid "p"
+msgstr "p"
+
+#. type: tbl table
+#: ../man/slabtop.1:69
+#, no-wrap
+msgid "pages per slab"
+msgstr "к-Ñ‚ÑŒ Ñторінок на чаÑтину"
+
+#. type: tbl table
+#: ../man/slabtop.1:70 ../man/ps.1:879 ../man/ps.1:926 ../man/ps.1:1631
+#, no-wrap
+msgid "s"
+msgstr "s"
+
+#. type: tbl table
+#: ../man/slabtop.1:70
+#, no-wrap
+msgid "object size"
+msgstr "розмір об’єкта"
+
+#. type: tbl table
+#: ../man/slabtop.1:70
+#, no-wrap
+msgid "OBJ SIZE"
+msgstr "РОЗМ ОБ."
+
+#. type: tbl table
+#: ../man/slabtop.1:71 ../man/ps.1:931
+#, no-wrap
+msgid "u"
+msgstr "u"
+
+#. type: tbl table
+#: ../man/slabtop.1:71
+#, no-wrap
+msgid "cache utilization"
+msgstr "викориÑÑ‚Ð°Ð½Ð½Ñ ÐºÐµÑˆÑƒ"
+
+#. type: tbl table
+#: ../man/slabtop.1:71
+#, no-wrap
+msgid "USE"
+msgstr "ВИК"
+
+#. type: SH
+#: ../man/slabtop.1:73
+#, no-wrap
+msgid "COMMANDS"
+msgstr "КОМÐÐДИ"
+
+#. type: Plain text
+#: ../man/slabtop.1:77
+msgid "B<slabtop> accepts keyboard commands from the user during use. The following are supported. In the case of letters, both cases are accepted."
+msgstr "Під Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ програма B<slabtop> Ñприймає команди кориÑтувача, віддані за допомогою клавіатури. Ðижче вказано ÑпиÑок підтримуваних команд. У випадку команд-літер можна викориÑтовувати Ñк великі, так Ñ– маленькі літери."
+
+#. type: Plain text
+#: ../man/slabtop.1:81
+msgid "Each of the valid sort characters are also accepted, to change the sort routine. See the section B<SORT CRITERIA>."
+msgstr "Передбачено можливіÑÑ‚ÑŒ викориÑÑ‚Ð°Ð½Ð½Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ із коректних Ñимволів упорÑдковуваннÑ, призначених Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ критерію. Докладніший Ð¾Ð¿Ð¸Ñ Ñ†Ð¸Ñ… Ñимволів наведено у розділі B<КРИТЕРІЇ УПОРЯДКОВУВÐÐÐЯ>."
+
+#. type: TP
+#: ../man/slabtop.1:81
+#, no-wrap
+msgid "B<E<lt>SPACEBARE<gt>>"
+msgstr "B<E<lt>ПРОБІЛE<gt>>"
+
+#. type: Plain text
+#: ../man/slabtop.1:84
+msgid "Refresh the screen."
+msgstr "Оновити вміÑÑ‚ екрана."
+
+#. type: TP
+#: ../man/slabtop.1:84
+#, no-wrap
+msgid "B<Q>"
+msgstr "B<Q>"
+
+#. type: Plain text
+#: ../man/slabtop.1:87
+msgid "Quit the program."
+msgstr "Завершити роботу програми."
+
+#. type: TP
+#: ../man/slabtop.1:88
+#, no-wrap
+msgid "I</proc/slabinfo>"
+msgstr "I</proc/slabinfo>"
+
+#. type: Plain text
+#: ../man/slabtop.1:91
+msgid "slab information"
+msgstr "дані щодо фрагмента (slab)"
+
+#. type: Plain text
+#: ../man/slabtop.1:96
+msgid "B<free>(1), B<ps>(1), B<top>(1), B<vmstat>(8)"
+msgstr "B<free>(1), B<ps>(1), B<top>(1), B<vmstat>(8)"
+
+#. type: Plain text
+#: ../man/slabtop.1:102
+msgid "Currently, B<slabtop> requires a 2.4 or later kernel (specifically, a version 1.1 or later I</proc/slabinfo>). Kernel 2.2 should be supported in the future."
+msgstr "Ð”Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ поточної верÑÑ–Ñ— програми B<slabtop> потрібне Ñдро ÑиÑтеми верÑÑ–Ñ— 2.4 або новішої (зокрема, верÑÑ–Ñ 1.1 або новіша I</proc/slabinfo>). Підтримку Ñдер 2.2 має бути передбачено у майбутніх верÑÑ–ÑÑ…."
+
+#. type: Plain text
+#: ../man/slabtop.1:108
+msgid "The B<slabtop> statistic header is tracking how many bytes of slabs are being used and is not a measure of physical memory. The 'Slab' field in the I</proc/meminfo> file is tracking information about used slab physical memory."
+msgstr "Заголовок ÑтатиÑтичних даних B<slabtop> міÑтить дані щодо того, Ñкільки байтів чаÑтин викориÑтовуєтьÑÑ, а не виміри об’єму фізичної пам’ÑÑ‚Ñ–. Поточні дані щодо викориÑтаної чаÑтинами фізичної пам’ÑÑ‚Ñ– зберігаютьÑÑ Ñƒ полі «Slab» файла I</proc/meminfo>."
+
+#. type: Plain text
+#: ../man/slabtop.1:114
+msgid "The B<CACHE SIZE> column is not accurate, it's the upper limit of memory used by specific slab. When system using slub (most common case) is under high memory pressure, there are slab order fallbacks, which means \"pages per slab\" is not constant and may decrease."
+msgstr "Дані у Ñтовпчику B<CACHE SIZE> не Ñ” точними, це Ð²ÐµÑ€Ñ…Ð½Ñ Ð¼ÐµÐ¶Ð° пам'ÑÑ‚Ñ–, викориÑтаної певною чаÑтиною. Коли ÑиÑтема, що викориÑтовує чаÑтину (найпоширеніший випадок), перебуває під значним навантаженнÑм щодо пам'ÑÑ‚Ñ–, Ñ–Ñнують резерви порÑдку чаÑтин, що означає, що Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«ÐºÑ–Ð»ÑŒÐºÑ–ÑÑ‚ÑŒ Ñторінок на чаÑтину» не Ñ” Ñталим Ñ– може зменшуватиÑÑ."
+
+#. type: SH
+#: ../man/slabtop.1:114 ../man/tload.1:58 ../man/uptime.1:56 ../man/w.1:102
+#, no-wrap
+msgid "AUTHORS"
+msgstr "ÐВТОРИ"
+
+#. type: Plain text
+#: ../man/slabtop.1:116
+msgid "Written by Chris Rivera and Robert Love."
+msgstr "Створено Chris Rivera та Robert Love."
+
+#. type: Plain text
+#: ../man/slabtop.1:120
+msgid "B<slabtop> was inspired by Martin Bligh's perl script, B<vmtop>."
+msgstr "Ідею B<slabtop> запозичено зі Ñкрипту мовою Perl, напиÑаного Martin Bligh, B<vmtop>."
+
+#. type: TH
+#: ../man/sysctl.8:14
+#, no-wrap
+msgid "SYSCTL"
+msgstr "SYSCTL"
+
+#. type: TH
+#: ../man/sysctl.8:14 ../man/vmstat.8:13
+#, no-wrap
+msgid "System Administration"
+msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÑиÑтемою"
+
+#. type: Plain text
+#: ../man/sysctl.8:17
+msgid "sysctl - configure kernel parameters at runtime"
+msgstr "sysctl — програма Ð´Ð»Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² Ñдра під Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸."
+
+#. type: Plain text
+#: ../man/sysctl.8:20
+msgid "B<sysctl> [I<options>] [I<variable>[B<=>I<value>]] [...]"
+msgstr "B<sysctl> [I<параметри>] [I<змінна>[B<=>I<значеннÑ>]] [...]"
+
+#. type: Plain text
+#: ../man/sysctl.8:23
+msgid "B<sysctl -p> [I<file> or I<regexp>] [...]"
+msgstr "B<sysctl -p> [I<файл> або I<формальний вираз>] [...]"
+
+#. type: Plain text
+#: ../man/sysctl.8:31
+msgid "B<sysctl> is used to modify kernel parameters at runtime. The parameters available are those listed under I</proc/sys/>. Procfs is required for B<sysctl> support in Linux. You can use B<sysctl> to both read and write sysctl data."
+msgstr "B<sysctl> викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð²Ð½ÐµÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½Ð¸ до параметрів Ñдра під Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸. ДоÑтупними Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ параметрами Ñ” параметри зі ÑпиÑку у I</proc/sys/>. Ð”Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ роботи B<sysctl> у Linux потрібна procfs. B<sysctl> можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ– запиÑу даних sysctl."
+
+#. type: SH
+#: ../man/sysctl.8:31
+#, no-wrap
+msgid "PARAMETERS"
+msgstr "ПÐРÐМЕТРИ"
+
+#. type: TP
+#: ../man/sysctl.8:32
+#, no-wrap
+msgid "I<variable>"
+msgstr "I<змінна>"
+
+#. type: Plain text
+#: ../man/sysctl.8:36
+msgid "The name of a key to read from. An example is kernel.ostype. The '/' separator is also accepted in place of a '.'."
+msgstr "Ðазва ключа Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…. Приклад: kernel.ostype. ЗаміÑÑ‚ÑŒ роздільника «.» можна викориÑтовувати роздільник «/»."
+
+#. type: TP
+#: ../man/sysctl.8:36
+#, no-wrap
+msgid "I<variable>=I<value>"
+msgstr "I<змінна>=I<значеннÑ>"
+
+#. type: Plain text
+#: ../man/sysctl.8:47
+msgid "To set a key, use the form I<variable>=I<value> where I<variable> is the key and I<value> is the value to set it to. If the value contains quotes or characters which are parsed by the shell, you may need to enclose the value in double quotes."
+msgstr "Ð”Ð»Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð° ÑкориÑтайтеÑÑ Ð·Ð°Ð¿Ð¸Ñом у форматі I<змінна>=I<значеннÑ>, де I<змінна> Ñ” назвою ключа, а I<значеннÑ> — значеннÑ, Ñке Ñлід вÑтановити. Якщо у значенні міÑÑ‚ÑÑ‚ÑŒÑÑ Ð»Ð°Ð¿ÐºÐ¸ або Ñимволи, Ñкі оброблÑÑŽÑ‚ÑŒÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾ÑŽ оболонкою, ви можете взÑти Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ подвійні лапки."
+
+#. type: TP
+#: ../man/sysctl.8:47
+#, no-wrap
+msgid "B<-n>, B<--values>"
+msgstr "B<-n>, B<--values>"
+
+#. type: Plain text
+#: ../man/sysctl.8:50
+msgid "Use this option to disable printing of the key name when printing values."
+msgstr "Цим параметром можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð²Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸ ключа під Ñ‡Ð°Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ."
+
+#. type: TP
+#: ../man/sysctl.8:50
+#, no-wrap
+msgid "B<-e>, B<--ignore>"
+msgstr "B<-e>, B<--ignore>"
+
+#. type: Plain text
+#: ../man/sysctl.8:53
+msgid "Use this option to ignore errors about unknown keys."
+msgstr "Цим параметром можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð²Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ñƒ Ñ–Ð³Ð½Ð¾Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»Ð¾Ðº, пов’Ñзаних із невідомими ключами."
+
+#. type: TP
+#: ../man/sysctl.8:53
+#, no-wrap
+msgid "B<-N>, B<--names>"
+msgstr "B<-N>, B<--names>"
+
+#. type: Plain text
+#: ../man/sysctl.8:57
+msgid "Use this option to only print the names. It may be useful with shells that have programmable completion."
+msgstr "Цим параметром можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð»Ð¸ÑˆÐµ назв. КориÑно у оболонках, де передбачено програмоване Ð´Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´."
+
+#. type: Plain text
+#: ../man/sysctl.8:60
+msgid "Use this option to not display the values set to stdout."
+msgstr "Цим параметром можна ÑкориÑтатиÑÑ Ð´Ð»Ñ ÑƒÑÑƒÐ²Ð°Ð½Ð½Ñ Ð· виведених даних значень, вÑтановлених у stdout."
+
+#. type: TP
+#: ../man/sysctl.8:60
+#, no-wrap
+msgid "B<-w>, B<--write>"
+msgstr "B<-w>, B<--write>"
+
+#. type: Plain text
+#: ../man/sysctl.8:64
+msgid "Force all arguments to be write arguments and print an error if they cannot be parsed this way."
+msgstr "ПримуÑово вважати уÑÑ– аргументи аргументами запиÑу Ñ– вивеÑти помилку, Ñкщо Ñ—Ñ… не можна обробити у відповідний ÑпоÑіб."
+
+#. type: TP
+#: ../man/sysctl.8:64
+#, no-wrap
+msgid "B<-p>[I<FILE>], B<--load>[=I<FILE>]"
+msgstr "B<-p>[I<ФÐЙЛ>], B<--load>[=I<ФÐЙЛ>]"
+
+#. type: Plain text
+#: ../man/sysctl.8:72
+msgid "Load in B<sysctl> settings from the file specified or I</etc/sysctl.conf> if none given. Specifying - as filename means reading data from standard input. Using this option will mean arguments to B<sysctl> are files, which are read in the order they are specified. The file argument may be specified as regular expression."
+msgstr "Завантажити параметри B<sysctl> із вказаного файла або із I</etc/sysctl.conf>, Ñкщо файл не вказано. Якщо вказати заміÑÑ‚ÑŒ назви файла -, дані буде прочитано із Ñтандартного джерела вхідних даних. ВикориÑÑ‚Ð°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ параметра означає, що аргументами B<sysctl> Ñ” файли, Ñкі буде прочитано у порÑдку, у Ñкому Ñ—Ñ… було вказано. Ðргумент файла може бути вказано у форматі формального виразу."
+
+#. type: TP
+#: ../man/sysctl.8:72
+#, no-wrap
+msgid "B<-a>, B<--all>"
+msgstr "B<-a>, B<--all>"
+
+#. type: Plain text
+#: ../man/sysctl.8:75
+msgid "Display all values currently available."
+msgstr "ВивеÑти вÑÑ– доÑтупні значеннÑ."
+
+#. type: TP
+#: ../man/sysctl.8:75
+#, no-wrap
+msgid "B<--deprecated>"
+msgstr "B<--deprecated>"
+
+#. type: Plain text
+#: ../man/sysctl.8:80
+msgid "Include deprecated parameters to B<--all> values listing."
+msgstr "Включити заÑтарілі параметри до ÑпиÑку значень B<--all>."
+
+#. type: TP
+#: ../man/sysctl.8:80
+#, no-wrap
+msgid "B<-b>, B<--binary>"
+msgstr "B<-b>, B<--binary>"
+
+#. type: Plain text
+#: ../man/sysctl.8:83
+msgid "Print value without new line."
+msgstr "ВивеÑти Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±ÐµÐ· Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ñимволу розриву Ñ€Ñдка."
+
+#. type: TP
+#: ../man/sysctl.8:83
+#, no-wrap
+msgid "B<--system>"
+msgstr "B<--system>"
+
+#. type: Plain text
+#: ../man/sysctl.8:88
+msgid "Load settings from all system configuration files. See the B<SYSTEM FILE PRECEDENCE> section below."
+msgstr "Завантажити параметри з уÑÑ–Ñ… загальноÑиÑтемних файлів налаштувань. Див. розділ B<ПРІОРИТЕТÐІСТЬ ФÐЙЛІВ СИСТЕМИ> нижче."
+
+#. type: TP
+#: ../man/sysctl.8:88
+#, no-wrap
+msgid "B<-r>, B<--pattern> I<pattern>"
+msgstr "B<-r>, B<--pattern> I<взірець>"
+
+#. type: Plain text
+#: ../man/sysctl.8:95
+msgid "Only apply settings that match I<pattern>. The I<pattern> uses extended regular expression syntax."
+msgstr "ЗаÑтоÑувати лише параметри, Ñкі відповідають I<взірцю>. У I<взірці> викориÑтовуєтьÑÑ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¸Ð¹ ÑинтакÑÐ¸Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ð»ÑŒÐ½Ð¸Ñ… виразів."
+
+#. type: TP
+#: ../man/sysctl.8:95 ../man/ps.1:147
+#, no-wrap
+msgid "B<-A>"
+msgstr "B<-A>"
+
+#. type: Plain text
+#: ../man/sysctl.8:98 ../man/sysctl.8:107
+msgid "Alias of B<-a>"
+msgstr "Інший варіант B<-a>"
+
+#. type: TP
+#: ../man/sysctl.8:98 ../man/ps.1:156
+#, no-wrap
+msgid "B<-d>"
+msgstr "B<-d>"
+
+#. type: Plain text
+#: ../man/sysctl.8:101
+msgid "Alias of B<-h>"
+msgstr "Інший варіант B<-h>"
+
+#. type: TP
+#: ../man/sysctl.8:101 ../man/ps.1:417
+#, no-wrap
+msgid "B<-f>"
+msgstr "B<-f>"
+
+#. type: Plain text
+#: ../man/sysctl.8:104
+msgid "Alias of B<-p>"
+msgstr "Інший варіант B<-p>"
+
+#. type: TP
+#: ../man/sysctl.8:107
+#, no-wrap
+msgid "B<-o>"
+msgstr "B<-o>"
+
+#. type: Plain text
+#: ../man/sysctl.8:110 ../man/sysctl.8:113
+msgid "Does nothing, exists for BSD compatibility."
+msgstr "Ðе виконувати дій. ВикориÑтовуєтьÑÑ Ð´Ð»Ñ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ ÑуміÑноÑÑ‚Ñ– із BSD."
+
+#. type: SH
+#: ../man/sysctl.8:119
+#, no-wrap
+msgid "SYSTEM FILE PRECEDENCE"
+msgstr "ПРІОРИТЕТÐІСТЬ ФÐЙЛІВ СИСТЕМИ"
+
+#. type: Plain text
+#: ../man/sysctl.8:125
+msgid "When using the B<--system> option, B<sysctl> will read files from directories in the following list in given order from top to bottom. Once a file of a given filename is loaded, any file of the same name in subsequent directories is ignored."
+msgstr "При викориÑтанні параметра B<--system> B<sysctl> прочитає файли з каталогів у вказаному ÑпиÑку у вказаному порÑдку, згори вниз. ПіÑÐ»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° із вказаною назвою уÑÑ– інші файли із такою Ñамою назвою, Ñкі зберігаютьÑÑ Ñƒ інших каталогах, буде проігноровано."
+
+#. type: Plain text
+#: ../man/sysctl.8:127
+msgid "/etc/sysctl.d/*.conf"
+msgstr "/etc/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:129
+msgid "/run/sysctl.d/*.conf"
+msgstr "/run/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:131
+msgid "/usr/local/lib/sysctl.d/*.conf"
+msgstr "/usr/local/lib/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:133
+msgid "/usr/lib/sysctl.d/*.conf"
+msgstr "/usr/lib/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:135
+msgid "/lib/sysctl.d/*.conf"
+msgstr "/lib/sysctl.d/*.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:137
+msgid "/etc/sysctl.conf"
+msgstr "/etc/sysctl.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:143
+msgid "All configuration files are sorted in lexicographic order, regardless of the directory they reside in. Configuration files can either be completely replaced (by having a new configuration file with the same name in a directory of higher priority) or partially replaced (by having a configuration file that is ordered later)."
+msgstr "УÑÑ– файли налаштувань буде упорÑдковано за абеткою у назвах, незалежно від каталогу, у Ñкому вони зберігаютьÑÑ. Файли налаштувань можна замінити або повніÑÑ‚ÑŽ (ÑтвореннÑм нового файла налаштувань із тією Ñамою назвою у каталозі із вищою пріоритетніÑÑ‚ÑŽ), або чаÑтково (за допомогою файла налаштувань, Ñкий йде далі за порÑдком)."
+
+#. type: Plain text
+#: ../man/sysctl.8:145
+msgid "/sbin/sysctl -a"
+msgstr "/sbin/sysctl -a"
+
+#. type: Plain text
+#: ../man/sysctl.8:147
+msgid "/sbin/sysctl -n kernel.hostname"
+msgstr "/sbin/sysctl -n kernel.hostname"
+
+#. type: Plain text
+#: ../man/sysctl.8:149
+msgid "/sbin/sysctl -w kernel.domainname=\"example.com\""
+msgstr "/sbin/sysctl -w kernel.domainname=\"example.com\""
+
+#. type: Plain text
+#: ../man/sysctl.8:151
+msgid "/sbin/sysctl -p/etc/sysctl.conf"
+msgstr "/sbin/sysctl -p/etc/sysctl.conf"
+
+#. type: Plain text
+#: ../man/sysctl.8:153
+msgid "/sbin/sysctl -a --pattern forward"
+msgstr "/sbin/sysctl -a --pattern forward"
+
+#. type: Plain text
+#: ../man/sysctl.8:155
+msgid "/sbin/sysctl -a --pattern forward$"
+msgstr "/sbin/sysctl -a --pattern forward$"
+
+#. type: Plain text
+#: ../man/sysctl.8:157
+msgid "/sbin/sysctl -a --pattern 'net.ipv4.conf.(eth|wlan)0.arp'"
+msgstr "/sbin/sysctl -a --pattern 'net.ipv4.conf.(eth|wlan)0.arp'"
+
+#. type: Plain text
+#: ../man/sysctl.8:159
+msgid "/sbin/sysctl --pattern '\\[char94]net.ipv6' --system"
+msgstr "/sbin/sysctl --pattern '\\[char94]net.ipv6' --system"
+
+#. type: SH
+#: ../man/sysctl.8:159
+#, no-wrap
+msgid "DEPRECATED PARAMETERS"
+msgstr "ЗÐСТÐРІЛІ ПÐРÐМЕТРИ\t"
+
+#. type: Plain text
+#: ../man/sysctl.8:169
+msgid "The B<base_reachable_time> and B<retrans_time> are deprecated. The B<sysctl> command does not allow changing values of these parameters. Users who insist to use deprecated kernel interfaces should push values to B</proc> file system by other means. For example:"
+msgstr "Параметри B<base_reachable_time> та B<retrans_time> вважаютьÑÑ Ð·Ð°Ñтарілими. Програма B<sysctl> не дозволÑÑ” змінювати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ†Ð¸Ñ… параметрів. КориÑтувачі, Ñкі вважають за потрібне викориÑтовувати заÑтарілі інтерфейÑи Ñдра, мають змінювати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ файловій ÑиÑтемі B</proc> у інший ÑпоÑіб. Приклад:"
+
+#. type: Plain text
+#: ../man/sysctl.8:171
+msgid "echo 256 E<gt> /proc/sys/net/ipv6/neigh/eth0/base_reachable_time"
+msgstr "echo 256 E<gt> /proc/sys/net/ipv6/neigh/eth0/base_reachable_time"
+
+#. type: Plain text
+#: ../man/sysctl.8:173
+msgid "I</proc/sys>"
+msgstr "I</proc/sys>"
+
+#. type: Plain text
+#: ../man/sysctl.8:175 ../man/sysctl.conf.5:66
+msgid "I</etc/sysctl.d/*.conf>"
+msgstr "I</etc/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:177 ../man/sysctl.conf.5:68
+msgid "I</run/sysctl.d/*.conf>"
+msgstr "I</run/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:179 ../man/sysctl.conf.5:70
+msgid "I</usr/local/lib/sysctl.d/*.conf>"
+msgstr "I</usr/local/lib/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:181 ../man/sysctl.conf.5:72
+msgid "I</usr/lib/sysctl.d/*.conf>"
+msgstr "I</usr/lib/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:183 ../man/sysctl.conf.5:74
+msgid "I</lib/sysctl.d/*.conf>"
+msgstr "I</lib/sysctl.d/*.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:185 ../man/sysctl.conf.5:76
+msgid "I</etc/sysctl.conf>"
+msgstr "I</etc/sysctl.conf>"
+
+#. type: Plain text
+#: ../man/sysctl.8:189
+msgid "B<proc>(5), B<sysctl.conf>(5), B<regex>(7)"
+msgstr "B<proc>(5), B<sysctl.conf>(5), B<regex>(7)"
+
+#. type: Plain text
+#: ../man/sysctl.8:193 ../man/sysctl.conf.5:89
+msgid "E<.UR staikos@0wned.org> George Staikos E<.UE>"
+msgstr "E<.UR staikos@0wned.org> George Staikos E<.UE>"
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "SYSCTL.CONF"
+msgstr "SYSCTL.CONF"
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "2021-09-15"
+msgstr "15 вереÑÐ½Ñ 2021 року"
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "File Formats"
+msgstr "Формати файлів"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:16
+msgid "sysctl.conf - sysctl preload/configuration file"
+msgstr "sysctl.conf — файл попереднього Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ налаштувань sysctl."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:21
+msgid "B<sysctl.conf> is a simple file containing sysctl values to be read in and set by B<sysctl>. The syntax is simply as follows:"
+msgstr "B<sysctl.conf> — проÑтий файл, що міÑтить Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ sysctl, Ñкі Ñлід прочитати Ñ– вÑтановити за допомогою B<sysctl>. СинтакÑÐ¸Ñ Ñ” проÑтим:"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:27
+#, no-wrap
+msgid ""
+"# comment\n"
+"; comment\n"
+msgstr ""
+"# коментар\n"
+"; коментар\n"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:29
+#, no-wrap
+msgid "token = value\n"
+msgstr "ключ = значеннÑ\n"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:35
+msgid "Note that blank lines are ignored, and whitespace before and after a token or value is ignored, although a value can contain whitespace within. Lines which begin with a I<#> or I<;> are considered comments and ignored."
+msgstr "Зауважте, що порожні Ñ€Ñдки буде проігноровано так Ñамо, Ñк пробіли перед Ñ– піÑÐ»Ñ ÐºÐ»ÑŽÑ‡Ð° або значеннÑ, хоча Ñамі Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶ÑƒÑ‚ÑŒ міÑтити пробіли. РÑдки, що починаютьÑÑ Ñ–Ð· Ñимволу I<#> або I<;> вважатимутьÑÑ ÐºÐ¾Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ñми Ñ– ігноруватимутьÑÑ."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:38
+msgid "If a line begins with a single -, any attempts to set the value that fail will be ignored."
+msgstr "Якщо Ñ€Ñдок починаєтьÑÑ Ð· одинарного -, будь-Ñкі невдалі Ñпроби вÑтановити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ проігноровано."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:48
+msgid "As the B</etc/sysctl.conf> file is used to override default kernel parameter values, only a small number of parameters is predefined in the file. Use I</sbin/sysctl\\ -a> or follow B<sysctl>(8) to list all possible parameters. The description of individual parameters can be found in the kernel documentation."
+msgstr "ОÑкільки файл B</etc/sysctl.conf> викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¸Ñ… значень параметрів Ñдра, у цьому файлі попередньо визначаєтьÑÑ Ð»Ð¸ÑˆÐµ незначна кількіÑÑ‚ÑŒ параметрів. Щоб ознайомитиÑÑ Ð·Ñ– ÑпиÑком уÑÑ–Ñ… можливих параметрів, ÑкориÑтайтеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ I</sbin/sysctl\\ -a> або підручником із B<sysctl>(8). ÐžÐ¿Ð¸Ñ Ð¾ÐºÑ€ÐµÐ¼Ð¸Ñ… параметрів можна знайти у документації до Ñдра ÑиÑтеми."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:51
+msgid "Maximum supported line length of the value is 4096 characters due to a limitation of I</proc> entries in Linux kernel."
+msgstr "МакÑимальною довжиною Ñ€Ñдка Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ” 4096 Ñимволів через Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° запиÑи I</proc> у Ñдрі Linux."
+
+#. type: SH
+#: ../man/sysctl.conf.5:51
+#, no-wrap
+msgid "EXAMPLE"
+msgstr "ПРИКЛÐД"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:61
+#, no-wrap
+msgid ""
+"# sysctl.conf sample\n"
+"#\n"
+" kernel.domainname = example.com\n"
+"; this one has a space which will be written to the sysctl!\n"
+" kernel.modprobe = /sbin/mod probe\n"
+msgstr ""
+"# Зразок sysctl.conf\n"
+"#\n"
+" kernel.domainname = example.com\n"
+"; тут Ñ” пробіл, Ñкий буде запиÑано до sysctl!\n"
+" kernel.modprobe = /sbin/mod probe\n"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:83
+msgid "The paths where B<sysctl> preload files usually exist. See also B<sysctl> option I<--system>."
+msgstr "ШлÑхи, де зазвичай зберігаютьÑÑ Ñ„Ð°Ð¹Ð»Ð¸ попереднього Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ B<sysctl>. Див. також параметр B<sysctl> I<--system>."
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:85
+msgid "B<sysctl>(8)"
+msgstr "B<sysctl>(8)"
+
+#. type: TH
+#: ../man/tload.1:12
+#, no-wrap
+msgid "TLOAD"
+msgstr "TLOAD"
+
+#. type: Plain text
+#: ../man/tload.1:15
+msgid "tload - graphic representation of system load average"
+msgstr "tload — програма Ð´Ð»Ñ Ð³Ñ€Ð°Ñ„Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ñередніх значень Ð½Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° ÑиÑтему."
+
+#. type: Plain text
+#: ../man/tload.1:18
+msgid "B<tload> [I<options>] [I<tty>]"
+msgstr "B<tload> [I<параметри>] [I<tty>]"
+
+#. type: Plain text
+#: ../man/tload.1:25
+msgid "B<tload> prints a graph of the current system load average to the specified I<tty> (or the tty of the B<tload> process if none is specified)."
+msgstr "B<tload> виводить графік поточних Ñередніх значень Ð½Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° ÑиÑтему до вказаного I<tty> (або tty процеÑу B<tload>, Ñкщо термінала не вказано)."
+
+#. type: TP
+#: ../man/tload.1:26
+#, no-wrap
+msgid "B<-s>, B<--scale> I<number>"
+msgstr "B<-s>, B<--scale> I<чиÑло>"
+
+#. type: Plain text
+#: ../man/tload.1:31
+msgid "The scale option allows a vertical scale to be specified for the display (in characters between graph ticks); thus, a smaller value represents a larger scale, and vice versa."
+msgstr "За допомогою параметра маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° вÑтановити вертикальний маÑштаб показу (у Ñимволах між позначками на графіку). Менше Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°Ñ” більшому маÑштабу, а більше Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼ÐµÐ½ÑˆÐ¾Ð¼Ñƒ маÑштабу."
+
+#. type: TP
+#: ../man/tload.1:31
+#, no-wrap
+msgid "B<-d>, B<--delay> I<seconds>"
+msgstr "B<-d>, B<--delay> I<чиÑло>"
+
+#. type: Plain text
+#: ../man/tload.1:35
+msgid "The delay sets the delay between graph updates in I<seconds>."
+msgstr "ЧиÑло визначає затримку у I<Ñекундах> між оновленнÑми графіка."
+
+#. type: Plain text
+#: ../man/tload.1:38
+msgid "Display this help text."
+msgstr "ВивеÑти цю довідку."
+
+#. type: Plain text
+#: ../man/tload.1:45
+msgid "I</proc/loadavg> load average information"
+msgstr "I</proc/loadavg> — завантажити оÑереднені дані"
+
+#. type: Plain text
+#: ../man/tload.1:50
+msgid "B<ps>(1), B<top>(1), B<uptime>(1), B<w>(1)"
+msgstr "B<ps>(1), B<top>(1), B<uptime>(1), B<w>(1)"
+
+#. type: Plain text
+#: ../man/tload.1:58
+msgid "The B<-d>I< delay> option sets the time argument for an B<alarm>(2); if -d 0 is specified, the alarm is set to 0, which will never send the B<SIGALRM> and update the display."
+msgstr "Параметр B<-d>I< затримка> вÑтановлює Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñƒ чаÑу Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ B<alarm>(2). Якщо вказано параметр -d 0, затримку Ñигналу буде вÑтановлено рівною 0, що ÑкаÑує надÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñигналу B<SIGALRM> Ñ– Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð¸Ñ… даних."
+
+#. type: Plain text
+#: ../man/tload.1:66
+msgid "Branko Lankester, E<.UR david@\\:ods.\\:com> David Engel E<.UE , and> E<.UR johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE .>"
+msgstr "Branko Lankester, E<.UR david@\\:ods.\\:com> David Engel E<.UE , та> E<.UR johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE .>"
+
+#. type: TH
+#: ../man/uptime.1:13
+#, no-wrap
+msgid "UPTIME"
+msgstr "UPTIME"
+
+#. type: TH
+#: ../man/uptime.1:13
+#, no-wrap
+msgid "December 2012"
+msgstr "грудень 2012 року"
+
+#. type: Plain text
+#: ../man/uptime.1:16
+msgid "uptime - Tell how long the system has been running."
+msgstr "uptime — виводить дані щодо чаÑу, протÑгом Ñкого працювала ÑиÑтема."
+
+#. type: Plain text
+#: ../man/uptime.1:19
+msgid "B<uptime> [I<options>]"
+msgstr "B<uptime> [I<параметри>]"
+
+#. type: Plain text
+#: ../man/uptime.1:24
+msgid "B<uptime> gives a one line display of the following information. The current time, how long the system has been running, how many users are currently logged on, and the system load averages for the past 1, 5, and 15 minutes."
+msgstr "B<uptime> виводить у один Ñ€Ñдок такі дані: поточний чаÑ, триваліÑÑ‚ÑŒ роботи ÑиÑтеми, кількіÑÑ‚ÑŒ кориÑтувачів, Ñкі працюють у ÑиÑтемі, та Ñередні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° ÑиÑтему за оÑтанні 1, 5 та 15 хвилин."
+
+#. type: Plain text
+#: ../man/uptime.1:27
+msgid "This is the same information contained in the header line displayed by B<w>(1)."
+msgstr "Це Ñ‚Ñ– Ñамі дані, що міÑÑ‚ÑÑ‚ÑŒÑÑ Ñƒ Ñ€Ñдку заголовка, Ñкий показує програма B<w>(1)."
+
+#. type: Plain text
+#: ../man/uptime.1:36
+msgid "System load averages is the average number of processes that are either in a runnable or uninterruptable state. A process in a runnable state is either using the CPU or waiting to use the CPU. A process in uninterruptable state is waiting for some I/O access, eg waiting for disk. The averages are taken over the three time intervals. Load averages are not normalized for the number of CPUs in a system, so a load average of 1 means a single CPU system is loaded all the time while on a 4 CPU system it means it was idle 75% of the time."
+msgstr "Середні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ â€” це оÑереднені чиÑлові характериÑтики процеÑів, Ñкі перебувають у Ñтані роботи або у неперервному Ñтані. ÐŸÑ€Ð¾Ñ†ÐµÑ Ñƒ Ñтані роботи або викориÑтовує процеÑор або очікує на можливіÑÑ‚ÑŒ викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора. ÐŸÑ€Ð¾Ñ†ÐµÑ Ñƒ неперервному Ñтані очікує на ÑкийÑÑŒ доÑтуп до каналів введеннÑ-виведеннÑ, наприклад, очікує на доÑтуп до диÑка. Середні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¾Ð±Ñ‡Ð¸ÑлюютьÑÑ Ð·Ð° трьома чаÑовими інтервалами. Середні Ð½Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð¾Ñ€Ð¼Ð°Ð»Ñ–Ð·ÑƒÑŽÑ‚ÑŒÑÑ Ð½Ð° кількіÑÑ‚ÑŒ процеÑорів у ÑиÑтемі, отже, Ñереднє Ð½Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñƒ 1 у ÑиÑтемі з одним процеÑором означає, що процеÑор завантажено увеÑÑŒ чаÑ, а у ÑиÑтемі з 4 процеÑорами означає, що ÑиÑтема перебуває у Ñтані бездіÑльноÑÑ‚Ñ– 75% чаÑу."
+
+#. type: TP
+#: ../man/uptime.1:37
+#, no-wrap
+msgid "B<-p>, B<--pretty>"
+msgstr "B<-p>, B<--pretty>"
+
+#. type: Plain text
+#: ../man/uptime.1:40
+msgid "show uptime in pretty format"
+msgstr "ВивеÑти Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ у зручному Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ–"
+
+#. type: Plain text
+#: ../man/uptime.1:43
+msgid "display this help text"
+msgstr "ВивеÑти цю довідку"
+
+#. type: TP
+#: ../man/uptime.1:43
+#, no-wrap
+msgid "B<-s>, B<--since>"
+msgstr "B<-s>, B<--since>"
+
+#. type: Plain text
+#: ../man/uptime.1:46
+msgid "system up since, in yyyy-mm-dd HH:MM:SS format"
+msgstr "чаÑ, від Ñкого виконуєтьÑÑ Ð²Ñ–Ð´Ð»Ñ–Ðº чаÑу роботи ÑиÑтеми, у форматі рррр-мм-дд ГГ:ХХ:СС"
+
+#. type: Plain text
+#: ../man/uptime.1:49
+msgid "display version information and exit"
+msgstr "вивеÑти дані щодо верÑÑ–Ñ— Ñ– завершити роботу"
+
+#. type: TP
+#: ../man/uptime.1:50 ../man/w.1:89
+#, no-wrap
+msgid "I</var/run/utmp>"
+msgstr "I</var/run/utmp>"
+
+#. type: Plain text
+#: ../man/uptime.1:53 ../man/w.1:92
+msgid "information about who is currently logged on"
+msgstr "Дані щодо тих, хто зараз працює у ÑиÑтемі."
+
+#. type: TP
+#: ../man/uptime.1:53 ../man/w.1:92
+#, no-wrap
+msgid "I</proc>"
+msgstr "I</proc>"
+
+#. type: Plain text
+#: ../man/uptime.1:56 ../man/w.1:95
+msgid "process information"
+msgstr "дані щодо процеÑу"
+
+#. type: Plain text
+#: ../man/uptime.1:66
+msgid "B<uptime> was written by E<.UR greenfie@gauss.\\:rutgers.\\:edu> Larry Greenfield E<.UE> and E<.UR johnsonm@sunsite.\\:unc.\\:edu> Michael K. Johnson E<.UE>"
+msgstr "B<uptime> Ñтворено E<.UR greenfie@gauss.\\:rutgers.\\:edu> Larry Greenfield E<.UE> та E<.UR johnsonm@sunsite.\\:unc.\\:edu> Michael K. Johnson E<.UE>"
+
+#. type: Plain text
+#: ../man/uptime.1:71
+msgid "B<ps>(1), B<top>(1), B<utmp>(5), B<w>(1)"
+msgstr "B<ps>(1), B<top>(1), B<utmp>(5), B<w>(1)"
+
+#. type: TH
+#: ../man/vmstat.8:13
+#, no-wrap
+msgid "VMSTAT"
+msgstr "VMSTAT"
+
+#. type: TH
+#: ../man/vmstat.8:13
+#, no-wrap
+msgid "2023-01-18"
+msgstr "18 ÑÑ–Ñ‡Ð½Ñ 2023 року"
+
+#. type: Plain text
+#: ../man/vmstat.8:16
+msgid "vmstat - Report virtual memory statistics"
+msgstr "vmstat — програма Ð´Ð»Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ ÑтатиÑтичних звітів щодо викориÑÑ‚Ð°Ð½Ð½Ñ Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð¾Ñ— пам’ÑÑ‚Ñ–."
+
+#. type: Plain text
+#: ../man/vmstat.8:20
+msgid "B<vmstat> [options] [I<delay> [I<count>]]"
+msgstr "B<vmstat> [параметри] [I<затримка> [I<чиÑло>]]"
+
+#. type: Plain text
+#: ../man/vmstat.8:24
+msgid "B<vmstat> reports information about processes, memory, paging, block IO, traps, disks and cpu activity."
+msgstr "B<vmstat> повідомлÑÑ” дані щодо процеÑів, пам’ÑÑ‚Ñ–, розподілу на Ñторінки, введеннÑ-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð±Ð»Ð¾ÐºÑ–Ð², паÑток, диÑків та роботи процеÑора."
+
+#. type: Plain text
+#: ../man/vmstat.8:29
+msgid "The first report produced gives averages since the last reboot. Additional reports give information on a sampling period of length I<delay>. The process and memory reports are instantaneous in either case."
+msgstr "Перший Ñтворений звіт надає Ñередні дані з чаÑу оÑтаннього перезавантаженнÑ. ÐаÑтупні звіти надають дані щодо фрагмента чаÑу, Ñкий визначаєтьÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ I<затримка>. Дані звітів щодо процеÑів та ÑÐ¿Ð¾Ð¶Ð¸Ð²Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼â€™ÑÑ‚Ñ– відповідають моменту запуÑку програми."
+
+#. type: TP
+#: ../man/vmstat.8:30
+#, no-wrap
+msgid "I<delay>"
+msgstr "I<затримка>"
+
+#. type: Plain text
+#: ../man/vmstat.8:37
+msgid "The I<delay> between updates in seconds. If no I<delay> is specified, only one report is printed with the average values since boot."
+msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ I<затримки> між оновленнÑми у Ñекундах. Якщо I<затримки> не визначено, програма виводить лише один звіт із Ñередніми даними з чаÑу перезавантаженнÑ."
+
+#. type: TP
+#: ../man/vmstat.8:37
+#, no-wrap
+msgid "I<count>"
+msgstr "I<чиÑло>"
+
+#. type: Plain text
+#: ../man/vmstat.8:44
+msgid "Number of updates. In absence of I<count>, when I<delay> is defined, default is infinite."
+msgstr "КількіÑÑ‚ÑŒ оновлень. Якщо Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ I<чиÑло> не вказано Ñ– вказано Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ I<затримка>, програма починає працювати у циклічному неÑкінченному режимі."
+
+#. type: TP
+#: ../man/vmstat.8:44
+#, no-wrap
+msgid "B<-a>, B<--active>"
+msgstr "B<-a>, B<--active>"
+
+#. type: Plain text
+#: ../man/vmstat.8:47
+msgid "Display active and inactive memory, given a 2.5.41 kernel or better."
+msgstr "ВивеÑти дані щодо активної Ñ– неактивної пам’ÑÑ‚Ñ–, Ñкщо викориÑтовуєтьÑÑ Ñдро 2.5.41 або новіше."
+
+#. type: TP
+#: ../man/vmstat.8:47
+#, no-wrap
+msgid "B<-f>, B<--forks>"
+msgstr "B<-f>, B<--forks>"
+
+#. type: Plain text
+#: ../man/vmstat.8:55
+msgid "The B<-f> switch displays the number of forks since boot. This includes the fork, vfork, and clone system calls, and is equivalent to the total number of tasks created. Each process is represented by one or more tasks, depending on thread usage. This display does not repeat."
+msgstr "За допомогою параметра B<-f> можна наказати програмі вивеÑти кількіÑÑ‚ÑŒ відгалужень з чаÑу перезавантаженнÑ. Це ÑтоÑуєтьÑÑ Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½ÑŒ, Ñтворених за допомогою викликів функцій fork, vfork та clone, Ñ– Ñ” еквівалентом загальної кількоÑÑ‚Ñ– Ñтворених завдань. Кожному процеÑу відповідає одне або декілька завдань, залежно від викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑ–Ð² обробки. Показ цього параметра під Ñ‡Ð°Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¸Ñ… ÑеанÑів Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… не виконуєтьÑÑ."
+
+#. type: TP
+#: ../man/vmstat.8:55
+#, no-wrap
+msgid "B<-m>, B<--slabs>"
+msgstr "B<-m>, B<--slabs>"
+
+#. type: Plain text
+#: ../man/vmstat.8:58
+msgid "Displays slabinfo."
+msgstr "ВивеÑти slabinfo."
+
+#. type: TP
+#: ../man/vmstat.8:58
+#, no-wrap
+msgid "B<-n>, B<--one-header>"
+msgstr "B<-n>, B<--one-header>"
+
+#. type: Plain text
+#: ../man/vmstat.8:61
+msgid "Display the header only once rather than periodically."
+msgstr "Виводити заголовок лише один раз, а не періодично."
+
+#. type: TP
+#: ../man/vmstat.8:61
+#, no-wrap
+msgid "B<-s>, B<--stats>"
+msgstr "B<-s>, B<--stats>"
+
+#. type: Plain text
+#: ../man/vmstat.8:65
+msgid "Displays a table of various event counters and memory statistics. This display does not repeat."
+msgstr "ВивеÑти таблицю різноманітних лічильників подій та ÑтатиÑтичних даних щодо ÑÐ¿Ð¾Ð¶Ð¸Ð²Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼â€™ÑÑ‚Ñ–. Показ цих даних під Ñ‡Ð°Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¸Ñ… ÑеанÑів обробки даних не виконуєтьÑÑ."
+
+#. type: TP
+#: ../man/vmstat.8:65
+#, no-wrap
+msgid "B<-d>, B<--disk>"
+msgstr "B<-d>, B<--disk>"
+
+#. type: Plain text
+#: ../man/vmstat.8:68
+msgid "Report disk statistics (2.5.70 or above required)."
+msgstr "ВивеÑти дані щодо викориÑÑ‚Ð°Ð½Ð½Ñ Ð´Ð¸Ñка (потрібне Ñдро 2.5.70 або новіше)."
+
+#. type: TP
+#: ../man/vmstat.8:68
+#, no-wrap
+msgid "B<-D>, B<--disk-sum>"
+msgstr "B<-D>, B<--disk-sum>"
+
+#. type: Plain text
+#: ../man/vmstat.8:71
+msgid "Report some summary statistics about disk activity."
+msgstr "ВивеÑти ÑтатиÑтичні підÑумки щодо роботи із диÑком."
+
+#. type: TP
+#: ../man/vmstat.8:71
+#, no-wrap
+msgid "B<-p>, B<--partition> I<device>"
+msgstr "B<-p>, B<--partition> I<приÑтрій>"
+
+#. type: Plain text
+#: ../man/vmstat.8:74
+msgid "Detailed statistics about partition (2.5.70 or above required)."
+msgstr "Докладні ÑтатиÑтичні дані щодо розділу (потрібне Ñдро верÑÑ–Ñ— 2.5.70 або новішої)."
+
+#. type: TP
+#: ../man/vmstat.8:74
+#, no-wrap
+msgid "B<-S>, B<--unit> I<character>"
+msgstr "B<-S>, B<--unit> I<Ñимвол>"
+
+#. type: Plain text
+#: ../man/vmstat.8:86
+msgid "Switches outputs between 1000 (I<k>), 1024 (I<K>), 1000000 (I<m>), or 1048576 (I<M>) bytes. Note this does not change the swap (si/so) or block (bi/bo) fields."
+msgstr "Перемикає одиницю показу виведених даних між 1000 (I<k>), 1024 (I<K>), 1000000 (I<m>) та 1048576 (I<M>) байтами. Зауважте, що це не ÑтоÑуєтьÑÑ Ð¿Ð¾Ð»Ñ–Ð² резервної пам'ÑÑ‚Ñ– (si/so) або блоків (bi/bo)."
+
+#. type: TP
+#: ../man/vmstat.8:86
+#, no-wrap
+msgid "B<-t>, B<--timestamp>"
+msgstr "B<-t>, B<--timestamp>"
+
+#. type: Plain text
+#: ../man/vmstat.8:89
+msgid "Append timestamp to each line"
+msgstr "Додати до кожного Ñ€Ñдка чаÑову позначку."
+
+#. type: Plain text
+#: ../man/vmstat.8:94
+msgid "Wide output mode (useful for systems with higher amount of memory, where the default output mode suffers from unwanted column breakage). The output is wider than 80 characters per line."
+msgstr "Режим широкого Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ (кориÑний Ð´Ð»Ñ ÑиÑтем з великим об’ємом пам’ÑÑ‚Ñ–, де у типовому режимі Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð²Ð¸Ð½Ð¸ÐºÐ°ÑŽÑ‚ÑŒ проблеми із розбиттÑм даних за Ñтовпчиками). У цьому режимі програма виводить понад 80 Ñимволів у Ñ€Ñдок."
+
+#. type: TP
+#: ../man/vmstat.8:94
+#, no-wrap
+msgid "B<-y>, B<--no-first>"
+msgstr "B<-y>, B<--no-first>"
+
+#. type: Plain text
+#: ../man/vmstat.8:97
+msgid "Omits first report with statistics since system boot."
+msgstr "ПропуÑтити перший звіт із ÑтатиÑтикою піÑÐ»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ ÑиÑтеми."
+
+#. type: SH
+#: ../man/vmstat.8:104
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR VM MODE"
+msgstr "ОПИС ПОЛІВ ДЛЯ РЕЖИМУ ВІРТУÐЛЬÐОЇ ÐœÐШИÐИ"
+
+#. type: SS
+#: ../man/vmstat.8:105
+#, no-wrap
+msgid "Procs"
+msgstr "Procs"
+
+#. type: Plain text
+#: ../man/vmstat.8:109
+#, no-wrap
+msgid ""
+"r: The number of runnable processes (running or waiting for run time).\n"
+"b: The number of processes blocked waiting for I/O to complete.\n"
+msgstr ""
+"r: кількіÑÑ‚ÑŒ придатних до роботи процеÑів (запущених або таких, що чекають на запуÑк).\n"
+"b: кількіÑÑ‚ÑŒ заблокованих процеÑів, Ñкі очікують на Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ-виведеннÑ.\n"
+
+#. type: SS
+#: ../man/vmstat.8:110
+#, no-wrap
+msgid "Memory"
+msgstr "Пам'ÑÑ‚ÑŒ"
+
+#. type: Plain text
+#: ../man/vmstat.8:112 ../man/vmstat.8:122
+msgid "These are affected by the B<--unit> option."
+msgstr "Ðа показ цих даних впливає параметр B<--unit>."
+
+#. type: Plain text
+#: ../man/vmstat.8:119
+#, no-wrap
+msgid ""
+"swpd: the amount of swap memory used.\n"
+"free: the amount of idle memory.\n"
+"buff: the amount of memory used as buffers.\n"
+"cache: the amount of memory used as cache.\n"
+"inact: the amount of inactive memory. (B<-a> option)\n"
+"active: the amount of active memory. (B<-a> option)\n"
+msgstr ""
+"swpd: об’єм викориÑтаної резервної пам’ÑÑ‚Ñ–.\n"
+"free: об’єм невикориÑтаної пам’ÑÑ‚Ñ–.\n"
+"buff: об’єм пам’ÑÑ‚Ñ–, викориÑтаної Ð´Ð»Ñ Ð±ÑƒÑ„ÐµÑ€Ñ–Ð².\n"
+"кеш: об’єм пам’ÑÑ‚Ñ–, викориÑтаної Ð´Ð»Ñ ÐºÐµÑˆÑƒÐ²Ð°Ð½Ð½Ñ.\n"
+"inact: об’єм неактивної пам’ÑÑ‚Ñ– (параметр B<-a>).\n"
+"активно: об’єм активної пам’ÑÑ‚Ñ– (параметр B<-a>).\n"
+
+#. type: SS
+#: ../man/vmstat.8:120
+#, no-wrap
+msgid "Swap"
+msgstr "Свопінг"
+
+#. type: Plain text
+#: ../man/vmstat.8:125
+#, no-wrap
+msgid ""
+"si: Amount of memory swapped in from disk (/s).\n"
+"so: Amount of memory swapped to disk (/s).\n"
+msgstr ""
+"si: об’єм зарезервованої пам’ÑÑ‚Ñ–, взÑтої з диÑка (/Ñ).\n"
+"so: об’єм зарезервованої пам’ÑÑ‚Ñ–, запиÑаної на диÑк (/Ñ).\n"
+
+#. type: SS
+#: ../man/vmstat.8:126 ../man/vmstat.8:161
+#, no-wrap
+msgid "IO"
+msgstr "ВведеннÑ-виведеннÑ"
+
+#. type: Plain text
+#: ../man/vmstat.8:130
+#, no-wrap
+msgid ""
+"bi: Kibibyte received from a block device (KiB/s).\n"
+"bo: Kibibyte sent to a block device (KiB/s).\n"
+msgstr ""
+"bi: кількіÑÑ‚ÑŒ кібібайтів, отриманих із блокового приÑтрою (КіБ/Ñ).\n"
+"bo: кількіÑÑ‚ÑŒ кібібайтів, надіÑланих на блоковий приÑтрій (КіБ/Ñ).\n"
+
+#. type: SS
+#: ../man/vmstat.8:131
+#, no-wrap
+msgid "System"
+msgstr "СиÑтема"
+
+#. type: Plain text
+#: ../man/vmstat.8:135
+#, no-wrap
+msgid ""
+"in: The number of interrupts per second, including the clock.\n"
+"cs: The number of context switches per second.\n"
+msgstr ""
+"in: кількіÑÑ‚ÑŒ переривань за Ñекунду, включно із перериваннÑми годинника.\n"
+"cs: кількіÑÑ‚ÑŒ перемикань контекÑтів за Ñекунду.\n"
+
+#. type: ds PU
+#: ../man/vmstat.8:136 ../man/top.1:37
+#, no-wrap
+msgid "CPU"
+msgstr "ПроцеÑор"
+
+#. type: Plain text
+#: ../man/vmstat.8:138
+msgid "These are percentages of total CPU time."
+msgstr "ВідÑоткові Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ чаÑу викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора."
+
+#. type: Plain text
+#: ../man/vmstat.8:145
+#, no-wrap
+msgid ""
+"us: Time spent running non-kernel code. (user time, including nice time)\n"
+"sy: Time spent running kernel code. (system time)\n"
+"id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.\n"
+"wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle.\n"
+"st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.\n"
+"gu: Time spent running KVM guest code (guest time, including guest nice).\n"
+msgstr ""
+"us: чаÑ, витрачений на Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð´Ñƒ, Ñкий не Ñ” кодом Ñдра (Ñ‡Ð°Ñ ÐºÐ¾Ñ€Ð¸Ñтувача, разом з чаÑом nice).\n"
+"sy: чаÑ, витрачений на Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð´Ñƒ Ñдра (ÑиÑтемний чаÑ).\n"
+"id: чаÑ, витрачений на бездіÑльніÑÑ‚ÑŒ. До Ñдра Linux 2.5.41 включав Ñ‡Ð°Ñ Ð½Ð° Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ-виведеннÑ.\n"
+"wa: чаÑ, витрачений на Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ-виведеннÑ. До Ñдра Linux 2.5.41 його було включено до чаÑу бездіÑльноÑÑ‚Ñ–.\n"
+"st: чаÑ, запозичений з віртуальної машини. До Ñдра Linux 2.6.11 позначавÑÑ Ñк Ñ‡Ð°Ñ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¾Ð³Ð¾ призначеннÑ.\n"
+"gu: чаÑ, витрачений на Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð´Ñƒ гоÑтьової ÑиÑтеми KVM (Ñ‡Ð°Ñ Ð³Ð¾Ñтьової ÑиÑтеми, включно із nice гоÑтьової ÑиÑтеми).\n"
+
+#. type: SH
+#: ../man/vmstat.8:146
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR DISK MODE"
+msgstr "ОПИС ПОЛІВ ДЛЯ РЕЖИМУ ДИСКÐ"
+
+#. type: SS
+#: ../man/vmstat.8:147
+#, no-wrap
+msgid "Reads"
+msgstr "ЧитаннÑ"
+
+#. type: Plain text
+#: ../man/vmstat.8:153
+#, no-wrap
+msgid ""
+"total: Total reads completed successfully\n"
+"merged: grouped reads (resulting in one I/O)\n"
+"sectors: Sectors read successfully\n"
+"ms: milliseconds spent reading\n"
+msgstr ""
+"загалом: загальна кількіÑÑ‚ÑŒ уÑпішних читань.\n"
+"об’єднано: групові Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ (такі, Ñкі дають один ÑÐµÐ°Ð½Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ-виведеннÑ).\n"
+"Ñектори: кількіÑÑ‚ÑŒ уÑпішно прочитаних Ñекторів.\n"
+"мÑ: чаÑ, витрачений на читаннÑ, у міліÑекундах.\n"
+
+#. type: SS
+#: ../man/vmstat.8:154
+#, no-wrap
+msgid "Writes"
+msgstr "ЗапиÑи"
+
+#. type: Plain text
+#: ../man/vmstat.8:160
+#, no-wrap
+msgid ""
+"total: Total writes completed successfully\n"
+"merged: grouped writes (resulting in one I/O)\n"
+"sectors: Sectors written successfully\n"
+"ms: milliseconds spent writing\n"
+msgstr ""
+"загалом: загальна кількіÑÑ‚ÑŒ уÑпішних запиÑів.\n"
+"об’єднано: групові запиÑи (такі, Ñкі дають один ÑÐµÐ°Ð½Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ-виведеннÑ).\n"
+"Ñектори: кількіÑÑ‚ÑŒ уÑпішно запиÑаних Ñекторів.\n"
+"мÑ: чаÑ, витрачений на запиÑ, у міліÑекундах.\n"
+
+#. type: Plain text
+#: ../man/vmstat.8:165
+#, no-wrap
+msgid ""
+"cur: I/O in progress\n"
+"s: seconds spent for I/O\n"
+msgstr ""
+"пот.: поточні дії з введеннÑ-виведеннÑ\n"
+"Ñ: Ñекунди, витраченні на введеннÑ-виведеннÑ\n"
+
+#. type: SH
+#: ../man/vmstat.8:166
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR DISK PARTITION MODE"
+msgstr "ОПИС ПОЛІВ ДЛЯ РЕЖИМУ РОЗДІЛУ ДИСКÐ"
+
+#. type: Plain text
+#: ../man/vmstat.8:172
+#, no-wrap
+msgid ""
+"reads: Total number of reads issued to this partition\n"
+"read sectors: Total read sectors for partition\n"
+"writes : Total number of writes issued to this partition\n"
+"requested writes: Total number of write requests made for partition\n"
+msgstr ""
+"чит.: загальне кількіÑÑ‚ÑŒ читань, виданих Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ розділу\n"
+"чит. Ñекторів: загальна кількіÑÑ‚ÑŒ читань Ñекторів Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ\n"
+"запиÑ: загальна кількіÑÑ‚ÑŒ запиÑів, виданих Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ розділу\n"
+"запитаних запиÑів: загальна кількіÑÑ‚ÑŒ запитів щодо запиÑу, Ñкі було надіÑлано Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ\n"
+
+#. type: SH
+#: ../man/vmstat.8:173
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR SLAB MODE"
+msgstr "ОПИС ПОЛІВ ДЛЯ РЕЖИМУ ЧÐСТИÐ"
+
+#. type: Plain text
+#: ../man/vmstat.8:177
+msgid "Slab mode shows statistics per slab, for more information about this information see B<slabinfo>(5)"
+msgstr "У режимі чаÑтин буде показано ÑтатиÑтичні дані Ð´Ð»Ñ Ð¾ÐºÑ€ÐµÐ¼Ð¾Ñ— чаÑтини. Щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про це, див. B<slabinfo>(5)"
+
+#. type: Plain text
+#: ../man/vmstat.8:184
+#, no-wrap
+msgid ""
+"cache: Cache name\n"
+"num: Number of currently active objects\n"
+"total: Total number of available objects\n"
+"size: Size of each object\n"
+"pages: Number of pages with at least one active object\n"
+msgstr ""
+"кеш: назва кешу\n"
+"чиÑл: кількіÑÑ‚ÑŒ поточних активних об’єктів\n"
+"загалом: загальна кількіÑÑ‚ÑŒ доÑтупних об’єктів\n"
+"розмір: розмір кожного з об’єктів\n"
+"Ñторінки: кількіÑÑ‚ÑŒ Ñторінок з принаймні одним активним об’єктом\n"
+
+#. type: Plain text
+#: ../man/vmstat.8:191
+msgid "B<vmstat> requires read access to files under I</proc>. The B<-m> requires read access to I</proc/slabinfo> which may not be available to standard users. Mount options for I</proc> such as I<subset=pid> may also impact what is visible."
+msgstr "B<vmstat> потребує доÑтупу до файлів у I</proc>. B<-m> потребує доÑтупу до Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ I</proc/slabinfo>, Ñкого може не бути у звичайних кориÑтувачів. Параметри Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ I</proc>, зокрема I<subset=pid>, також можуть впливати на перелік виведених даних."
+
+#. type: Plain text
+#: ../man/vmstat.8:199
+msgid "B<free>(1), B<iostat>(1), B<mpstat>(1), B<ps>(1), B<sar>(1), B<top>(1), B<slabinfo>(5)"
+msgstr "B<free>(1), B<iostat>(1), B<mpstat>(1), B<ps>(1), B<sar>(1), B<top>(1), B<slabinfo>(5)"
+
+#. type: TP
+#: ../man/w.1:14 ../man/ps.1:852
+#, no-wrap
+msgid "W"
+msgstr "W"
+
+#. type: TH
+#: ../man/w.1:14
+#, no-wrap
+msgid "2023-01-15"
+msgstr "15 ÑÑ–Ñ‡Ð½Ñ 2023 року"
+
+#. type: Plain text
+#: ../man/w.1:17
+msgid "w - Show who is logged on and what they are doing."
+msgstr "w — програма Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ ÑпиÑку тих, хто працює у ÑиÑтемі, та даних щодо того, Ñкі дії вони виконують."
+
+#. type: Plain text
+#: ../man/w.1:20
+msgid "B<w> [I<options>] [I<user>]"
+msgstr "B<w> [I<параметри>] [I<кориÑтувач>]"
+
+#. type: Plain text
+#: ../man/w.1:26
+msgid "B<w> displays information about the users currently on the machine, and their processes. The header shows, in this order, the current time, how long the system has been running, how many users are currently logged on, and the system load averages for the past 1, 5, and 15 minutes."
+msgstr "B<w> виводить дані щодо поточних кориÑтувачів ÑиÑтеми та процеÑів, влаÑниками Ñких вони Ñ”. У заголовку виведених даних наведено: поточний чаÑ, триваліÑÑ‚ÑŒ роботи ÑиÑтеми, кількіÑÑ‚ÑŒ кориÑтувачів, Ñкі працюють у ÑиÑтемі, та Ñереднє Ð½Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° ÑиÑтему за оÑтанні 1, 5 та 15 хвилин."
+
+#. type: Plain text
+#: ../man/w.1:30
+msgid "The following entries are displayed for each user: login name, the tty name, the remote host, login time, idle time, JCPU, PCPU, and the command line of their current process."
+msgstr "Ð”Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ кориÑтувача буде показано такі дані: назву облікового запиÑу, назву tty, віддалений вузол, Ñ‡Ð°Ñ Ð²Ñ…Ð¾Ð´Ñƒ до ÑиÑтеми, Ñ‡Ð°Ñ Ð±ÐµÐ·Ð´Ñ–ÑльноÑÑ‚Ñ–, JCPU, PCPU та Ñ€Ñдок команди поточного процеÑу."
+
+#. type: Plain text
+#: ../man/w.1:34
+msgid "The JCPU time is the time used by all processes attached to the tty. It does not include past background jobs, but does include currently running background jobs."
+msgstr "Ð§Ð°Ñ JCPU Ñ” чаÑом, викориÑтаним уÑіма процеÑами, пов’Ñзаними із терміналом tty. До нього не включено Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ… фонових завдань, але включено Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¸Ñ… фонових завдань."
+
+#. type: Plain text
+#: ../man/w.1:37
+msgid "The PCPU time is the time used by the current process, named in the \"what\" field."
+msgstr "Ð§Ð°Ñ PCPU Ñ” чаÑом, викориÑтаним поточним процеÑом, назву Ñкого наведено у полі «what»."
+
+#. type: SH
+#: ../man/w.1:37
+#, no-wrap
+msgid "COMMAND-LINE OPTIONS"
+msgstr "ПÐРÐМЕТРИ КОМÐÐДÐОГО РЯДКÐ"
+
+#. type: TP
+#: ../man/w.1:38
+#, no-wrap
+msgid "B<-h>, B<--no-header>"
+msgstr "B<-h>, B<--no-header>"
+
+#. type: Plain text
+#: ../man/w.1:41
+msgid "Don't print the header."
+msgstr "Ðе виводити заголовок."
+
+#. type: TP
+#: ../man/w.1:41
+#, no-wrap
+msgid "B<-u>, B<--no-current>"
+msgstr "B<-u>, B<--no-current>"
+
+#. type: Plain text
+#: ../man/w.1:50
+msgid "Ignores the username while figuring out the current process and cpu times. To demonstrate this, do a B<su> and do a B<w> and a B<w -u>."
+msgstr "Ігнорувати Ñ–Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача під Ñ‡Ð°Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ процеÑу та чаÑу викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора. Побачити різницю можна піÑÐ»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ B<su> у даних, виведених командами B<w> та B<w -u>."
+
+#. type: TP
+#: ../man/w.1:50
+#, no-wrap
+msgid "B<-s>, B<--short>"
+msgstr "B<-s>, B<--short>"
+
+#. type: Plain text
+#: ../man/w.1:53
+msgid "Use the short format. Don't print the login time, JCPU or PCPU times."
+msgstr "ВикориÑтовувати Ñкорочений формат. Ðе виводити даних щодо чаÑу входу до ÑиÑтеми та чаÑових параметрів JCPU або PCPU."
+
+#. type: TP
+#: ../man/w.1:53
+#, no-wrap
+msgid "B<-f>, B<--from>"
+msgstr "B<-f>, B<--from>"
+
+#. type: Plain text
+#: ../man/w.1:63
+msgid "Toggle printing the B<from> (remote hostname) field. The default as released is for the B<from> field to not be printed, although your system administrator or distribution maintainer may have compiled a version in which the B<from> field is shown by default."
+msgstr "Увімкнути Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ð¾Ð»Ñ B<з> (назви віддаленого вузла). У типовому варіанті програми поле B<з> не виводитьÑÑ. Втім, адмініÑтратор вашої ÑиÑтеми або Ñупровідник диÑтрибутива може зібрати верÑÑ–ÑŽ, у Ñкій типово вміÑÑ‚ Ð¿Ð¾Ð»Ñ B<з> виводитьÑÑ."
+
+#. type: TP
+#: ../man/w.1:66
+#, no-wrap
+msgid "B<-i>, B<--ip-addr>"
+msgstr "B<-i>, B<--ip-addr>"
+
+#. type: Plain text
+#: ../man/w.1:69
+msgid "Display IP address instead of hostname for B<from> field."
+msgstr "Виводити у полі B<from> IP-адреÑу заміÑÑ‚ÑŒ назви вузла."
+
+#. type: TP
+#: ../man/w.1:69
+#, no-wrap
+msgid "B<-p>, B<--pids>"
+msgstr "B<-p>, B<--pids>"
+
+#. type: Plain text
+#: ../man/w.1:72
+msgid "Display pid of the login process/the \"what\" process in the \"what\" field."
+msgstr "Показати ідентифікатор процеÑу входу до ÑиÑтеми або процеÑу «what» у полі «what»."
+
+#. type: TP
+#: ../man/w.1:75
+#, no-wrap
+msgid "B<-o>, B<--old-style>"
+msgstr "B<-o>, B<--old-style>"
+
+#. type: Plain text
+#: ../man/w.1:78
+msgid "Old style output. Prints blank space for idle times less than one minute."
+msgstr "Ð’Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… у Ñтарому Ñтилі. Виводить пробіл Ð´Ð»Ñ Ñ‡Ð°Ñів бездіÑльноÑÑ‚Ñ–, Ñкі тривають менше за одну хвилину."
+
+#. type: TP
+#: ../man/w.1:78
+#, no-wrap
+msgid "B<user >"
+msgstr "B<кориÑтувач>"
+
+#. type: Plain text
+#: ../man/w.1:81
+msgid "Show information about the specified user only."
+msgstr "ВивеÑти дані лише щодо вказаного кориÑтувача."
+
+#. type: SH
+#: ../man/w.1:81 ../man/watch.1:133
+#, no-wrap
+msgid "ENVIRONMENT"
+msgstr "СЕРЕДОВИЩЕ"
+
+#. type: TP
+#: ../man/w.1:82
+#, no-wrap
+msgid "PROCPS_USERLEN"
+msgstr "PROCPS_USERLEN"
+
+#. type: Plain text
+#: ../man/w.1:85
+msgid "Override the default width of the username column. Defaults to 8."
+msgstr "Перевизначити типову ширину Ñтовпчика імені кориÑтувача. Типовою Ñ” ширина у 8 Ñимволів."
+
+#. type: TP
+#: ../man/w.1:85
+#, no-wrap
+msgid "PROCPS_FROMLEN"
+msgstr "PROCPS_FROMLEN"
+
+#. type: Plain text
+#: ../man/w.1:88
+msgid "Override the default width of the from column. Defaults to 16."
+msgstr "Перевизначити типову ширину Ñтовпчика джерела (from). Типовою Ñ” ширина у 16 Ñимволів."
+
+#. type: Plain text
+#: ../man/w.1:102
+msgid "B<free>(1), B<ps>(1), B<top>(1), B<uptime>(1), B<utmp>(5), B<who>(1)"
+msgstr "B<free>(1), B<ps>(1), B<top>(1), B<uptime>(1), B<utmp>(5), B<who>(1)"
+
+#. type: Plain text
+#: ../man/w.1:112
+msgid "B<w> was re-written almost entirely by Charles Blake, based on the version by E<.UR greenfie@\\:gauss.\\:rutgers.\\:edu> Larry Greenfield E<.UE> and E<.UR johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE>"
+msgstr "B<w> майже повніÑÑ‚ÑŽ перепиÑано з «нулÑ» Charles Blake на оÑнові верÑÑ–Ñ—, Ñтвореної E<.UR greenfie@\\:gauss.\\:rutgers.\\:edu> Larry Greenfield E<.UE> та E<.UR johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE>"
+
+#. type: TH
+#: ../man/watch.1:13
+#, no-wrap
+msgid "WATCH"
+msgstr "WATCH"
+
+#. type: TH
+#: ../man/watch.1:13
+#, no-wrap
+msgid "2023-01-17"
+msgstr "17 ÑÑ–Ñ‡Ð½Ñ 2023 року"
+
+#. type: Plain text
+#: ../man/watch.1:16
+msgid "watch - execute a program periodically, showing output fullscreen"
+msgstr "watch — програма Ð´Ð»Ñ Ð¿ÐµÑ€Ñ–Ð¾Ð´Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñ–Ð½ÑˆÐ¸Ñ… програм з виведеннÑм даних на веÑÑŒ екран"
+
+#. type: Plain text
+#: ../man/watch.1:19
+msgid "B<watch> [I<options>] I<command>"
+msgstr "B<watch> [I<параметри>] I<команда>"
+
+#. type: Plain text
+#: ../man/watch.1:26
+msgid "B<watch> runs I<command> repeatedly, displaying its output and errors (the first screenfull). This allows you to watch the program output change over time. By default, I<command> is run every 2 seconds and B<watch> will run until interrupted."
+msgstr "B<watch> виконує I<команду> регулÑрно, показує виведені нею дані та Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ помилок (перший екран). За B<watch> ви зможете ÑпоÑтерігати за змінами у виведених даних із чаÑом. Типово, запуÑк програми I<команда> відбуватиметьÑÑ ÐºÐ¾Ð¶Ð½Ñ– 2 Ñекунди, аж доки роботу B<watch> не буде перервано."
+
+#. type: TP
+#: ../man/watch.1:27
+#, no-wrap
+msgid "B<-b>, B<--beep>"
+msgstr "B<-b>, B<--beep>"
+
+#. type: Plain text
+#: ../man/watch.1:30
+msgid "Beep if command has a non-zero exit."
+msgstr "Гудок, Ñкщо Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ завершуєтьÑÑ Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ñтаном."
+
+#. type: TP
+#: ../man/watch.1:30
+#, no-wrap
+msgid "B<-c>, B<--color>"
+msgstr "B<-c>, B<--color>"
+
+#. type: Plain text
+#: ../man/watch.1:33
+msgid "Interpret ANSI color and style sequences."
+msgstr "ОброблÑти поÑлідовноÑÑ‚Ñ– Ñимволів ANSI Ð´Ð»Ñ ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ñ–Ð² Ñ– Ñтилю."
+
+#. type: TP
+#: ../man/watch.1:33
+#, no-wrap
+msgid "B<-C>, B<--no-color>"
+msgstr "B<-C>, B<--no-color>"
+
+#. type: Plain text
+#: ../man/watch.1:36
+msgid "Do not interpret ANSI color and style sequences."
+msgstr "Ðе оброблÑти поÑлідовноÑÑ‚Ñ– Ñимволів ANSI Ð´Ð»Ñ ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ñ–Ð² Ñ– Ñтилю."
+
+#. type: TP
+#: ../man/watch.1:36
+#, no-wrap
+msgid "B<-d>, B<--differences>[=I<permanent>]"
+msgstr "B<-d>, B<--differences>[=I<permanent>]"
+
+#. type: Plain text
+#: ../man/watch.1:42
+msgid "Highlight the differences between successive updates. If the optional I<permanent> argument is specified then B<watch> will show all changes since the first iteration."
+msgstr "Позначити відмінноÑÑ‚Ñ– між двома поÑлідовними запуÑками. Якщо задано необов'Ñзковий аргумент I<permanent>, B<watch> покаже уÑÑ– зміни із чаÑу першого запуÑку."
+
+#. type: TP
+#: ../man/watch.1:42
+#, no-wrap
+msgid "B<-e>, B<--errexit>"
+msgstr "B<-e>, B<--errexit>"
+
+#. type: Plain text
+#: ../man/watch.1:45
+msgid "Freeze updates on command error, and exit after a key press."
+msgstr "Призупинити оновленнÑ, Ñкщо буде виÑвлено помилку, Ñ– завершити роботу піÑÐ»Ñ Ð½Ð°Ñ‚Ð¸ÑÐºÐ°Ð½Ð½Ñ Ð±ÑƒÐ´ÑŒ-Ñкої клавіші."
+
+#. type: TP
+#: ../man/watch.1:45
+#, no-wrap
+msgid "B<-g>, B<--chgexit>"
+msgstr "B<-g>, B<--chgexit>"
+
+#. type: Plain text
+#: ../man/watch.1:50
+msgid "Exit when the output of I<command> changes."
+msgstr "Вийти, Ñкщо змінилиÑÑ Ð´Ð°Ð½Ñ–, виведені командою I<команда>."
+
+#. type: TP
+#: ../man/watch.1:50
+#, no-wrap
+msgid "B<-n>, B<--interval> I<seconds>"
+msgstr "B<-n>, B<--interval> I<чиÑло>"
+
+#. type: Plain text
+#: ../man/watch.1:56
+msgid "Specify update interval. The command will not allow quicker than 0.1 second interval, in which the smaller values are converted. Both '.' and ',' work for any locales. The B<WATCH_INTERVAL> environment can be used to persistently set a non-default interval (following the same rules and formatting)."
+msgstr "Визначити інтервал між запуÑками. Ðайменшим Ñ” інтервал у 0,1 Ñекунди. Якщо ви вкажете менше значеннÑ, викориÑтовуватиметьÑÑ Ñ–Ð½Ñ‚ÐµÑ€Ð²Ð°Ð» у 0,1 Ñекунди. У вÑÑ–Ñ… локалÑÑ… працюють Ñ– «.» Ñ– «,». Ð”Ð»Ñ Ð¿Ð¾Ñтійного Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½ÐµÑ‚Ð¸Ð¿Ð¾Ð²Ð¾Ð³Ð¾ інтервалу можна ÑкориÑтатиÑÑ Ð·Ð¼Ñ–Ð½Ð½Ð¾ÑŽ Ñередовища B<WATCH_INTERVAL> (Ð´Ð»Ñ Ð½ÐµÑ— викориÑтовуютьÑÑ Ñ‚Ñ– Ñамі правила Ñ– форматуваннÑ)."
+
+#. type: TP
+#: ../man/watch.1:56
+#, no-wrap
+msgid "B<-p>, B<--precise>"
+msgstr "B<-p>, B<--precise>"
+
+#. type: Plain text
+#: ../man/watch.1:69
+msgid "Make B<watch> attempt to run I<command> every B<--interval> I<seconds>. Try it with B<ntptime> (if present) and notice how the fractional seconds stays (nearly) the same, as opposed to normal mode where they continuously increase."
+msgstr "Ðаказати B<watch> запуÑкати I<command> кожні B<--interval> I<Ñекунд>. Спробуйте з B<ntptime> (Ñкщо Ñ”) Ñ– зауважте, що дробові чаÑтки Ñекунд залишаютьÑÑ (майже) незмінними, на відміну від звичайного режиму, коли Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½ÐµÐ¿ÐµÑ€ÐµÑ€Ð²Ð½Ð¾ зроÑтають."
+
+#. type: TP
+#: ../man/watch.1:69
+#, no-wrap
+msgid "B<-q>, B<--equexit> E<lt>cyclesE<gt>"
+msgstr "B<-q>, B<--equexit> E<lt>циклиE<gt>"
+
+#. type: Plain text
+#: ../man/watch.1:74
+msgid "Exit when output of I<command> does not change for the given number of cycles."
+msgstr "Вийти, коли Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ I<команди> не змінюєтьÑÑ Ð²ÐºÐ°Ð·Ð°Ð½Ñƒ кількіÑÑ‚ÑŒ циклів."
+
+#. type: TP
+#: ../man/watch.1:74
+#, no-wrap
+msgid "B<-r>, B<--no-rerun>"
+msgstr "B<-r>, B<--no-rerun>"
+
+#. type: Plain text
+#: ../man/watch.1:78
+msgid "Do not run the program on terminal resize, the output of the program will re-appear at the next regular run time."
+msgstr "Ðе перезапуÑкати програму при зміні розмірів вікна термінала. Виведені програмою дані знову з'ÑвлÑÑ‚ÑŒÑÑ Ð½Ð° екрані при наÑтупному регулÑрному запуÑку."
+
+#. type: TP
+#: ../man/watch.1:78
+#, no-wrap
+msgid "B<-t>, B<--no-title>"
+msgstr "B<-t>, B<--no-title>"
+
+#. type: Plain text
+#: ../man/watch.1:82
+msgid "Turn off the header showing the interval, command, and current time at the top of the display, as well as the following blank line."
+msgstr "Вимкнути показ заголовка із даними щодо інтервалу, команди та поточного чаÑу та наÑтупного порожнього Ñ€Ñдка у верхній чаÑтині екрана."
+
+#. type: TP
+#: ../man/watch.1:82
+#, no-wrap
+msgid "B<-w>, B<--no-wrap>"
+msgstr "B<-w>, B<--no-wrap>"
+
+#. type: Plain text
+#: ../man/watch.1:85
+msgid "Turn off line wrapping. Long lines will be truncated instead of wrapped to the next line."
+msgstr "Вимкнути перенеÑÐµÐ½Ð½Ñ Ñ€Ñдків. Довгі Ñ€Ñдки буде обрізано, заміÑÑ‚ÑŒ перенеÑÐµÐ½Ð½Ñ Ð½Ð° наÑтупний."
+
+#. type: TP
+#: ../man/watch.1:85
+#, no-wrap
+msgid "B<-x>, B<--exec>"
+msgstr "B<-x>, B<--exec>"
+
+#. type: Plain text
+#: ../man/watch.1:94
+msgid "Pass I<command> to B<exec>(2) instead of B<sh -c> which reduces the need to use extra quoting to get the desired effect."
+msgstr "Передати команду I<команда> до B<exec>(2) заміÑÑ‚ÑŒ B<sh -c>. Це зменшує потребу у викориÑтанні лапок Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð±Ð°Ð¶Ð°Ð½Ð¾Ð³Ð¾ результату."
+
+#. type: TP
+#: ../man/watch.1:97
+#, no-wrap
+msgid "B<-v>, B<--version>"
+msgstr "B<-v>, B<--version>"
+
+#. type: Plain text
+#: ../man/watch.1:110
+msgid "Various failures."
+msgstr "Різноманітні помилки."
+
+#. type: TP
+#: ../man/watch.1:110
+#, no-wrap
+msgid "B<2>"
+msgstr "B<2>"
+
+#. type: Plain text
+#: ../man/watch.1:113
+msgid "Forking the process to watch failed."
+msgstr "Ð’Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу Ð´Ð»Ñ ÑпоÑÑ‚ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð°Ð·Ð½Ð°Ð»Ð¾ невдачі."
+
+#. type: TP
+#: ../man/watch.1:113
+#, no-wrap
+msgid "B<3>"
+msgstr "B<3>"
+
+#. type: Plain text
+#: ../man/watch.1:116
+msgid "Replacing child process stdout with write side pipe failed."
+msgstr "Ðе вдалоÑÑ Ð·Ð°Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ Ñтандартне Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð¾Ñ‡Ñ–Ñ€Ð½ÑŒÐ¾Ð³Ð¾ процеÑу на канал Ñтороннього запиÑу."
+
+#. type: TP
+#: ../man/watch.1:116
+#, no-wrap
+msgid "B<4>"
+msgstr "B<4>"
+
+#. type: Plain text
+#: ../man/watch.1:119
+msgid "Command execution failed."
+msgstr "Помилка під Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸."
+
+#. type: TP
+#: ../man/watch.1:119
+#, no-wrap
+msgid "B<5>"
+msgstr "B<5>"
+
+#. type: Plain text
+#: ../man/watch.1:122
+msgid "Closing child process write pipe failed."
+msgstr "Ð’Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу Ð´Ð»Ñ ÑпоÑÑ‚ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð°Ð·Ð½Ð°Ð»Ð¾ невдачі."
+
+#. type: TP
+#: ../man/watch.1:122
+#, no-wrap
+msgid "B<7>"
+msgstr "B<7>"
+
+#. type: Plain text
+#: ../man/watch.1:125
+msgid "IPC pipe creation failed."
+msgstr "Спроба ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ°Ð½Ð°Ð»Ñƒ IPC зазнала невдачі."
+
+#. type: TP
+#: ../man/watch.1:125
+#, no-wrap
+msgid "B<8>"
+msgstr "B<8>"
+
+#. type: Plain text
+#: ../man/watch.1:130
+msgid "Getting child process return value with B<waitpid>(2) failed, or command exited up on error."
+msgstr "Спроба Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ñ…Ð¾Ð´Ñƒ дочірнього процеÑу за допомогою B<waitpid>(2) зазнала невдачі або команда завершила роботу Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилку."
+
+#. type: TP
+#: ../man/watch.1:130
+#, no-wrap
+msgid "B<other>"
+msgstr "B<інший>"
+
+#. type: Plain text
+#: ../man/watch.1:133
+msgid "The watch will propagate command exit status as child exit status."
+msgstr "watch передаÑÑ‚ÑŒ Ñтан виходу команди Ñк Ñтан виходу дочірнього процеÑу."
+
+#. type: Plain text
+#: ../man/watch.1:137
+msgid "The behavior of B<watch> is affected by the following environment variables."
+msgstr "Ðа поведінку B<grep> впливають наÑтупні змінні Ñередовища."
+
+#. type: TP
+#: ../man/watch.1:138
+#, no-wrap
+msgid "B<WATCH_INTERVAL>"
+msgstr "B<WATCH_INTERVAL>"
+
+#. type: Plain text
+#: ../man/watch.1:143
+msgid "Update interval, follows the same rules as the B<--interval> command line option."
+msgstr "Інтервал оновленнÑ, викориÑтовує Ñ‚Ñ– Ñамі правила, що Ñ– параметр командного Ñ€Ñдка B<--interval>."
+
+#. type: Plain text
+#: ../man/watch.1:151
+msgid "POSIX option processing is used (i.e., option processing stops at the first non-option argument). This means that flags after I<command> don't get interpreted by B<watch> itself."
+msgstr "СпоÑіб обробки параметрів POSIX (тобто обробка параметрів завершуєтьÑÑ Ð½Ð° першому з аргументів, Ñкий не Ñ” параметром). Це означає, що параметри піÑÐ»Ñ I<команди> не оброблÑтимутьÑÑ Ñамою програмою B<watch>."
+
+#. type: Plain text
+#: ../man/watch.1:159
+msgid "Upon terminal resize, the screen will not be correctly repainted until the next scheduled update. All B<--differences> highlighting is lost on that update as well. When using the B<--no-rerun> option, no output of will be visible."
+msgstr "ПіÑÐ»Ñ Ð·Ð¼Ñ–Ð½Ð¸ розмірів вікна термінала, дані не буде належним чином переформатовано до наÑтупного запланованого оновленнÑ. Також буде втрачено уÑÑ– позначеннÑ, отримані за допомогою параметра B<--differences>. Якщо викориÑтано параметр B<--no-rerun>, виведені дані будуть невидимими."
+
+#. type: Plain text
+#: ../man/watch.1:162
+msgid "Non-printing characters are stripped from program output. Use B<cat -v> as part of the command pipeline if you want to see them."
+msgstr "Ðепридатні до Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñимволи буде уÑунуто із даних, виведених програмою. Якщо ви хочете побачити ці Ñимволи, ÑкориÑтайтеÑÑ B<cat -v> у поÑлідовноÑÑ‚Ñ– команд, Ñтвореній за допомогою Ñимволу каналу (|)."
+
+#. type: Plain text
+#: ../man/watch.1:166
+msgid "Combining Characters that are supposed to display on the character at the last column on the screen may display one column early, or they may not display at all."
+msgstr "Символи поєднаннÑ, Ñкі мало бути показано на позиції у оÑтанньому Ñтовпчику на екрані, може бути показано на Ñтовпчик раніше або взагалі не показано."
+
+#. type: Plain text
+#: ../man/watch.1:170
+msgid "Combining Characters never count as different in B<--differences> mode. Only the base character counts."
+msgstr "Символи Ð¿Ð¾Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð½Ñ–ÐºÐ¾Ð»Ð¸ не враховуютьÑÑ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¼Ñ–Ð½Ð½Ð¾Ñтей, Ñкщо викориÑтано параметр B<--differences>. До уваги берутьÑÑ Ð»Ð¸ÑˆÐµ оÑновні Ñимволи."
+
+#. type: Plain text
+#: ../man/watch.1:173
+msgid "Blank lines directly after a line which ends in the last column do not display."
+msgstr "Порожні Ñ€Ñдки, розташовані безпоÑередньо піÑÐ»Ñ Ñ€Ñдка, що завершує оÑтанній Ñтовпчик, не буде показано."
+
+#. type: Plain text
+#: ../man/watch.1:190
+msgid "B<--precise> mode doesn't yet have advanced temporal distortion technology to compensate for a I<command> that takes more than B<--interval> I<seconds> to execute. B<watch> also can get into a state where it rapid-fires as many executions of I<command> as it can to catch up from a previous executions running longer than B<--interval> (for example, B<netstat>(8) taking ages on a DNS lookup)."
+msgstr "У режимі B<--precise> ще не передбачено технології розширеного Ð²Ð¸ÐºÑ€Ð¸Ð²Ð»ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу Ð´Ð»Ñ ÐºÐ¾Ð¼Ð¿ÐµÐ½Ñації проблем із I<командою>, Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñкої триває понад B<--interval> I<Ñекунд>. Крім того, B<watch> може перейти у режим, коли програма швидко намагаєтьÑÑ Ð·Ð°Ð¿ÑƒÑтити Ñкомога більше екземплÑрів I<команди> Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб «наздогнати» план за попередніми запуÑками, Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñких тривало понад B<--interval> (наприклад, Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ B<netstat>(8) під Ñ‡Ð°Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ у DNS може тривати дуже довго)."
+
+#. type: Plain text
+#: ../man/watch.1:194
+msgid "To watch for mail, you might do"
+msgstr "Ð”Ð»Ñ ÑпоÑÑ‚ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð° надходженнÑм пошти можна ÑкориÑтатиÑÑ Ñ‚Ð°ÐºÐ¾ÑŽ командою:"
+
+#. type: Plain text
+#: ../man/watch.1:196
+msgid "watch -n 60 from"
+msgstr "watch -n 60 from"
+
+#. type: Plain text
+#: ../man/watch.1:198
+msgid "To watch the contents of a directory change, you could use"
+msgstr "Ð”Ð»Ñ ÑпоÑÑ‚ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð° змінами у вміÑÑ‚Ñ– каталогу можна ÑкориÑтатиÑÑ Ñ‚Ð°ÐºÐ¾ÑŽ командою:"
+
+#. type: Plain text
+#: ../man/watch.1:200
+msgid "watch -d ls -l"
+msgstr "watch -d ls -l"
+
+#. type: Plain text
+#: ../man/watch.1:202
+msgid "If you're only interested in files owned by user joe, you might use"
+msgstr "Якщо Ð²Ð°Ñ Ñ†Ñ–ÐºÐ°Ð²Ð»ÑÑ‚ÑŒ лише файли, влаÑником Ñких Ñ” кориÑтувач joe, ви можете ÑкориÑтатиÑÑ Ñ‚Ð°ÐºÐ¾ÑŽ командою:"
+
+#. type: Plain text
+#: ../man/watch.1:204
+msgid "watch -d 'ls -l | fgrep joe'"
+msgstr "watch -d 'ls -l | fgrep joe'"
+
+#. type: Plain text
+#: ../man/watch.1:206
+msgid "To see the effects of quoting, try these out"
+msgstr "Щоб побачити результат викориÑÑ‚Ð°Ð½Ð½Ñ Ð»Ð°Ð¿Ð¾Ðº, Ñпробуйте таку команду:"
+
+#. type: Plain text
+#: ../man/watch.1:208
+msgid "watch echo $$"
+msgstr "watch echo $$"
+
+#. type: Plain text
+#: ../man/watch.1:210
+msgid "watch echo '$$'"
+msgstr "watch echo '$$'"
+
+#. type: Plain text
+#: ../man/watch.1:212
+msgid "watch echo \"'\"'$$'\"'\""
+msgstr "watch echo \"'\"'$$'\"'\""
+
+#. type: Plain text
+#: ../man/watch.1:216
+msgid "To see the effect of precision time keeping, try adding B<-p> to"
+msgstr "Щоб побачити результат точного Ð²Ñ€Ð°Ñ…ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‡Ð°Ñу, Ñпробуйте додати параметр B<-p> до такої команди:"
+
+#. type: Plain text
+#: ../man/watch.1:218
+msgid "watch -n 10 sleep 1"
+msgstr "watch -n 10 sleep 1"
+
+#. type: Plain text
+#: ../man/watch.1:220
+msgid "You can watch for your administrator to install the latest kernel with"
+msgstr "Стежити за діÑми зі вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ð°Ð¹Ð½Ð¾Ð²Ñ–ÑˆÐ¸Ñ… верÑій Ñдра адмініÑтратора вашого комп’ютера можна за допомогою такої команди:"
+
+#. type: Plain text
+#: ../man/watch.1:222
+msgid "watch uname -r"
+msgstr "watch uname -r"
+
+#. type: Plain text
+#: ../man/watch.1:228
+msgid "(Note that B<-p> isn't guaranteed to work across reboots, especially in the face of B<ntpdate> (if present) or other bootup time-changing mechanisms)"
+msgstr "(Зауважте, що роботу з B<-p> під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ðµ гарантовано, оÑобливо з врахуваннÑм викориÑÑ‚Ð°Ð½Ð½Ñ B<ntpdate> (Ñкщо Ñ”) та інших механізмів зміни чаÑових даних.)"
+
+#. type: TH
+#: ../man/ps.1:13
+#, no-wrap
+msgid "PS"
+msgstr "PS"
+
+#. type: Plain text
+#: ../man/ps.1:29
+msgid "ps - report a snapshot of the current processes."
+msgstr "ps — надає звіт щодо поточних процеÑів."
+
+#. type: Plain text
+#: ../man/ps.1:31
+msgid "B<ps> [\\,I<options\\/>]"
+msgstr "B<ps> [\\,I<параметри\\/>]"
+
+#. type: Plain text
+#: ../man/ps.1:37
+msgid "B<ps> displays information about a selection of the active processes. If you want a repetitive update of the selection and the displayed information, use B<top> instead."
+msgstr "B<ps> показує відомоÑÑ‚Ñ– щодо вибраного набору активних процеÑів. Якщо вам потрібне регулÑрне Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ та показаних даних, ÑкориÑтайтеÑÑ Ð·Ð°Ð¼Ñ–ÑÑ‚ÑŒ цієї програми програмою B<top>."
+
+#. type: Plain text
+#: ../man/ps.1:41
+msgid "This version of B<ps> accepts several kinds of options:"
+msgstr "Ð¦Ñ Ð²ÐµÑ€ÑÑ–Ñ B<ps> приймає декілька типів параметрів:"
+
+#. type: Plain text
+#: ../man/ps.1:45
+msgid "UNIX options, which may be grouped and must be preceded by a dash."
+msgstr "Параметри UNIX, Ñкі може бути згруповано Ñ– Ñким має перебувати дефіÑ."
+
+#. type: Plain text
+#: ../man/ps.1:47
+msgid "BSD options, which may be grouped and must not be used with a dash."
+msgstr "Параметри BSD, Ñкі може бути згруповано Ñ– Ñкі не Ñлід викориÑтовувати з дефіÑом."
+
+#. type: Plain text
+#: ../man/ps.1:49
+msgid "GNU long options, which are preceded by two dashes."
+msgstr "Довгі верÑÑ–Ñ— параметрів GNU, перед Ñкими Ñлід вказати два дефіÑи."
+
+#. type: Plain text
+#: ../man/ps.1:58
+msgid "Options of different types may be freely mixed, but conflicts can appear. There are some synonymous options, which are functionally identical, due to the many standards and B<ps> implementations that this B<ps> is compatible with."
+msgstr "Параметри різних типів можна поєднувати довільним чином, але можуть виникнути конфлікти. ІÑнує декілька параметрів однакового призначеннÑ, Ñкі Ñ” функціонально ідентичним. Причиною Ñ” одночаÑна наÑвніÑÑ‚ÑŒ багатьох Ñтандартів Ñ– реалізацій B<ps>, з Ñкими Ñ” ÑуміÑною Ñ†Ñ Ð²ÐµÑ€ÑÑ–Ñ B<ps>."
+
+#. type: Plain text
+#: ../man/ps.1:66
+msgid "By default, B<ps> selects all processes with the same effective user ID (euid=EUID) as the current user and associated with the same terminal as the invoker. It displays the process ID (pid=PID), the terminal associated with the process (tname=TTY), the cumulated CPU time in [DD-]hh:mm:ss format (time=TIME), and the executable name (ucmd=CMD). Output is unsorted by default."
+msgstr "Типово, B<ps> вибирає уÑÑ– процеÑи із тим Ñамим ідентифікатором ефективного кориÑтувача (euid=EUID), що Ñ– у поточного кориÑтувача, а також Ñ‚Ñ– процеÑи, Ñкі пов'Ñзано із тим Ñамим терміналом, звідки викликано програму. Програма виводить ідентифікатор процеÑу (pid=PID), термінал, Ñкий пов'Ñзано із процеÑом (tname=TTY), накопичений Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора у форматі [ДД-]гг:Ñ…Ñ…:ÑÑ (time=TIME) та назву виконуваного файла (ucmd=CMD). Типово, виведені дані не упорÑдковуютьÑÑ."
+
+#. type: Plain text
+#: ../man/ps.1:79
+msgid "The use of BSD-style options will add process state (stat=STAT) to the default display and show the command args (args=COMMAND) instead of the executable name. You can override this with the B<PS_FORMAT> environment variable. The use of BSD-style options will also change the process selection to include processes on other terminals (TTYs) that are owned by you; alternately, this may be described as setting the selection to be the set of all processes filtered to exclude processes owned by other users or not on a terminal. These effects are not considered when options are described as being \"identical\" below, so B<-M> will be considered identical to B<Z> and so on."
+msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² у Ñтилі BSD додаÑÑ‚ÑŒ Ñтан процеÑу (stat=STAT) до типового набору Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ Ñ– показ аргументів команди (args=COMMAND) заміÑÑ‚ÑŒ назви виконуваного файла. Ви можете перевизначити це за допомогою змінної Ñередовища B<PS_FORMAT>. ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² у Ñтилі BSD також змінить вибір процеÑів — буде включено процеÑи з інших терміналів (TTY), влаÑником Ñких ви Ñ”; крім того, це може бути опиÑано Ñк вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ð°Ð±Ð¾Ñ€Ñƒ уÑÑ–Ñ… процеÑів, Ñкі фільтровано Ð´Ð»Ñ Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑів, влаÑником Ñких Ñ” інші кориÑтувачі або не у терміналі. Ці ефекти не буде взÑто до уваги Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð², Ñкі опиÑано нижче Ñк «тотожні», отже, B<-M> вважатиметьÑÑ Ñ‚Ð¾Ñ‚Ð¾Ð¶Ð½Ð¸Ð¼ до B<Z> тощо."
+
+#. type: Plain text
+#: ../man/ps.1:84
+msgid "Except as described below, process selection options are additive. The default selection is discarded, and then the selected processes are added to the set of processes to be displayed. A process will thus be shown if it meets any of the given selection criteria."
+msgstr "Окрім вказаних нижче випадків, параметри вибору процеÑів Ñ” адитивними. Типовий вибір буде відкинуто, а потім вибрані процеÑи буде додано до набору процеÑів, Ñкі Ñлід показати. Таким чином, Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±ÑƒÐ´Ðµ показано, Ñкщо він буде відповідати уÑім заданим критеріÑм."
+
+#. type: TP
+#: ../man/ps.1:85
+#, no-wrap
+msgid "To see every process on the system using standard syntax:"
+msgstr "ПереглÑд уÑÑ–Ñ… процеÑів ÑиÑтеми з викориÑтаннÑм Ñтандартного ÑинтакÑиÑу:"
+
+#. type: Plain text
+#: ../man/ps.1:88
+msgid "B<ps\\ -e>"
+msgstr "B<ps\\ -e>"
+
+#. type: Plain text
+#: ../man/ps.1:90
+msgid "B<ps\\ -ef>"
+msgstr "B<ps\\ -ef>"
+
+#. type: Plain text
+#: ../man/ps.1:92
+msgid "B<ps\\ -eF>"
+msgstr "B<ps\\ -eF>"
+
+#. type: Plain text
+#: ../man/ps.1:94
+msgid "B<ps\\ -ely>"
+msgstr "B<ps\\ -ely>"
+
+#. type: TP
+#: ../man/ps.1:94
+#, no-wrap
+msgid "To see every process on the system using BSD syntax:"
+msgstr "ПереглÑд уÑÑ–Ñ… процеÑів ÑиÑтеми з викориÑтаннÑм ÑинтакÑиÑу BSD:"
+
+#. type: Plain text
+#: ../man/ps.1:97
+msgid "B<ps\\ ax>"
+msgstr "B<ps\\ ax>"
+
+#. type: Plain text
+#: ../man/ps.1:99
+msgid "B<ps\\ axu>"
+msgstr "B<ps\\ axu>"
+
+#. type: TP
+#: ../man/ps.1:99
+#, no-wrap
+msgid "To print a process tree:"
+msgstr "Ð’Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñ–Ñ”Ñ€Ð°Ñ€Ñ…Ñ–Ñ— процеÑів:"
+
+#. type: Plain text
+#: ../man/ps.1:102
+msgid "B<ps\\ -ejH>"
+msgstr "B<ps\\ -ejH>"
+
+#. type: Plain text
+#: ../man/ps.1:104
+msgid "B<ps\\ axjf>"
+msgstr "B<ps\\ axjf>"
+
+#. type: TP
+#: ../man/ps.1:104
+#, no-wrap
+msgid "To get info about threads:"
+msgstr "ÐžÑ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð¾Ð¼Ð¾Ñтей щодо потоків обробки:"
+
+#. type: Plain text
+#: ../man/ps.1:107
+msgid "B<ps\\ -eLf>"
+msgstr "B<ps\\ -eLf>"
+
+#. type: Plain text
+#: ../man/ps.1:109
+msgid "B<ps\\ axms>"
+msgstr "B<ps\\ axms>"
+
+#. type: TP
+#: ../man/ps.1:109
+#, no-wrap
+msgid "To get security info:"
+msgstr "ÐžÑ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð¾Ð¼Ð¾Ñтей щодо захиÑту:"
+
+#. type: Plain text
+#: ../man/ps.1:112
+msgid "B<ps\\ -eo euser,ruser,suser,fuser,f,comm,label>"
+msgstr "B<ps\\ -eo euser,ruser,suser,fuser,f,comm,label>"
+
+#. type: Plain text
+#: ../man/ps.1:114
+msgid "B<ps\\ axZ>"
+msgstr "B<ps\\ axZ>"
+
+#. type: Plain text
+#: ../man/ps.1:116
+msgid "B<ps\\ -eM>"
+msgstr "B<ps\\ -eM>"
+
+#. type: TP
+#: ../man/ps.1:116
+#, no-wrap
+msgid "To see every process running as root (real\\ &\\ effective\\ ID) in user format:"
+msgstr "ПереглÑд уÑÑ–Ñ… процеÑів, Ñкі запущено від імені кориÑтувача root (Ñправжній\\ Ñ–\\ ефективний\\ ідентифікатор) у форматі кориÑтувача:"
+
+#. type: Plain text
+#: ../man/ps.1:119
+msgid "B<ps\\ -U\\ root\\ -u\\ root\\ u>"
+msgstr "B<ps\\ -U\\ root\\ -u\\ root\\ u>"
+
+#. type: TP
+#: ../man/ps.1:119
+#, no-wrap
+msgid "To see every process with a user-defined format:"
+msgstr "ПереглÑд уÑÑ–Ñ… процеÑів із визначеним кориÑтувачем форматом:"
+
+#. type: Plain text
+#: ../man/ps.1:122
+msgid "B<ps\\ -eo\\ pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm>"
+msgstr "B<ps\\ -eo\\ pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm>"
+
+#. type: Plain text
+#: ../man/ps.1:124
+msgid "B<ps\\ axo\\ stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm>"
+msgstr "B<ps\\ axo\\ stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm>"
+
+#. type: Plain text
+#: ../man/ps.1:126
+msgid "B<ps\\ -Ao\\ pid,tt,user,fname,tmout,f,wchan>"
+msgstr "B<ps\\ -Ao\\ pid,tt,user,fname,tmout,f,wchan>"
+
+#. type: TP
+#: ../man/ps.1:126
+#, no-wrap
+msgid "Print only the process IDs of syslogd:"
+msgstr "Ð’Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð»Ð¸ÑˆÐµ ідентифікаторів процеÑів syslogd:"
+
+#. type: Plain text
+#: ../man/ps.1:129
+msgid "B<ps\\ -C\\ syslogd\\ -o\\ pid=>"
+msgstr "B<ps\\ -C\\ syslogd\\ -o\\ pid=>"
+
+#. type: TP
+#: ../man/ps.1:129
+#, no-wrap
+msgid "Print only the name of PID 42:"
+msgstr "вивеÑти лише назву PID 42:"
+
+#. type: Plain text
+#: ../man/ps.1:132
+msgid "B<ps\\ -q\\ 42\\ -o\\ comm=>"
+msgstr "B<ps\\ -q\\ 42\\ -o\\ comm=>"
+
+#. type: SH
+#: ../man/ps.1:132
+#, no-wrap
+msgid "SIMPLE PROCESS SELECTION"
+msgstr "ПРОСТИЙ ВИБІР ПРОЦЕСУ"
+
+#. type: TP
+#: ../man/ps.1:133
+#, no-wrap
+msgid "B<a>"
+msgstr "B<a>"
+
+#. type: Plain text
+#: ../man/ps.1:147
+msgid "Lift the BSD-style \"only yourself\" restriction, which is imposed upon the set of all processes when some BSD-style (without \"-\") options are used or when the B<ps> personality setting is BSD-like. The set of processes selected in this manner is in addition to the set of processes selected by other means. An alternate description is that this option causes B<ps> to list all processes with a terminal (tty), or to list all processes when used together with the B<x> option."
+msgstr "ВикориÑтати Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Â«Ð»Ð¸ÑˆÐµ Ñебе» у Ñтилі BSD, Ñке буде накладено на набір уÑÑ–Ñ… процеÑів, Ñкщо викориÑтано ÑкіÑÑŒ параметри у Ñтилі BSD (без «-») або Ñкщо оÑобу кориÑтувача B<ps> вÑтановлено у Ñтилі BSD. Ðабір процеÑів, Ñкий вибрано у цей ÑпоÑіб, додаєтьÑÑ Ð´Ð¾ набору процеÑів, Ñкі вибрано в інший ÑпоÑіб. Ðльтернативним опиÑом Ñ” те, що цей параметр наказує B<ps> вивеÑти ÑпиÑок уÑÑ–Ñ… процеÑів з терміналом (tty) або вивеÑти ÑпиÑок уÑÑ–Ñ… процеÑів, Ñкщо викориÑтано разом із параметром B<x>."
+
+#. type: Plain text
+#: ../man/ps.1:151
+msgid "Select all processes. Identical to B<-e>."
+msgstr "Вибрати уÑÑ– процеÑи. Те Ñаме, що Ñ– B<-e>."
+
+#. type: TP
+#: ../man/ps.1:151
+#, no-wrap
+msgid "B<-a>"
+msgstr "B<-a>"
+
+#. type: Plain text
+#: ../man/ps.1:156
+msgid "Select all processes except both session leaders (see I<getsid>(2)) and processes not associated with a terminal."
+msgstr "Вибрати уÑÑ– процеÑи, окрім обох лідерів ÑеанÑів (див. I<getsid>(2)) Ñ– процеÑи, Ñкі не пов'Ñзано із терміналом."
+
+#. type: Plain text
+#: ../man/ps.1:159
+msgid "Select all processes except session leaders."
+msgstr "Вибрати уÑÑ– процеÑи, окрім лідерів ÑеанÑів."
+
+#. type: TP
+#: ../man/ps.1:159
+#, no-wrap
+msgid "B<--deselect>"
+msgstr "B<--deselect>"
+
+#. type: Plain text
+#: ../man/ps.1:164
+msgid "Select all processes except those that fulfill the specified conditions (negates the selection). Identical to B<-N>."
+msgstr "Вибрати уÑÑ– процеÑи, окрім тих, Ñкі задовольнÑÑŽÑ‚ÑŒ вказані умови (інвертує вибір). Те Ñаме, що Ñ– B<-N>."
+
+#. type: TP
+#: ../man/ps.1:164
+#, no-wrap
+msgid "B<-e>"
+msgstr "B<-e>"
+
+#. Current "g" behavior: add in the session leaders, which would
+#. be excluded in the sunos4 personality. Supposed "g" behavior:
+#. add in the group leaders -- at least according to the SunOS 4
+#. man page on the FreeBSD site. Uh oh. I think I had tested SunOS
+#. though, so maybe the code is correct.
+#. type: Plain text
+#: ../man/ps.1:173
+msgid "Select all processes. Identical to B<-A>."
+msgstr "Вибрати уÑÑ– процеÑи. Те Ñаме, що Ñ– B<-A>."
+
+#. type: TP
+#: ../man/ps.1:173
+#, no-wrap
+msgid "B<g>"
+msgstr "B<g>"
+
+#. type: Plain text
+#: ../man/ps.1:179
+msgid "Really all, even session leaders. This flag is obsolete and may be discontinued in a future release. It is normally implied by the B<a> flag, and is only useful when operating in the sunos4 personality."
+msgstr "Справді вÑÑ–, навіть лідери ÑеанÑу. Цей прапорець Ñ” заÑтарілим, Ñ– його може бути вилучено у майбутніх випуÑках. Зазвичай, неÑвно вÑтановлюєтьÑÑ Ð¿Ñ€Ð°Ð¿Ð¾Ñ€Ñ†ÐµÐ¼ B<a>, Ñ– кориÑний лише Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ із оÑобами sunos4."
+
+#. type: TP
+#: ../man/ps.1:179
+#, no-wrap
+msgid "B<-N>"
+msgstr "B<-N>"
+
+#. type: Plain text
+#: ../man/ps.1:184
+msgid "Select all processes except those that fulfill the specified conditions (negates the selection). Identical to B<--deselect>."
+msgstr "Вибрати уÑÑ– процеÑи, окрім тих, Ñкі задовольнÑÑŽÑ‚ÑŒ вказані умови (інвертує вибір). Те Ñаме, що Ñ– B<--deselect>."
+
+#. type: TP
+#: ../man/ps.1:184
+#, no-wrap
+msgid "B<T>"
+msgstr "B<T>"
+
+#. type: Plain text
+#: ../man/ps.1:189
+msgid "Select all processes associated with this terminal. Identical to the B<t> option without any argument."
+msgstr "Вибрати уÑÑ– процеÑи, Ñкі пов'Ñзано із цим терміналом. Те Ñаме, що Ñ– параметр B<t> без будь-Ñких аргументів."
+
+#. type: TP
+#: ../man/ps.1:189
+#, no-wrap
+msgid "B<r>"
+msgstr "B<r>"
+
+#. type: Plain text
+#: ../man/ps.1:192
+msgid "Restrict the selection to only running processes."
+msgstr "Обмежити вибір лише процеÑами, Ñкі працюють."
+
+#. type: TP
+#: ../man/ps.1:192
+#, no-wrap
+msgid "B<x>"
+msgstr "B<x>"
+
+#. type: Plain text
+#: ../man/ps.1:207
+msgid "Lift the BSD-style \"must have a tty\" restriction, which is imposed upon the set of all processes when some BSD-style (without \"-\") options are used or when the B<ps> personality setting is BSD-like. The set of processes selected in this manner is in addition to the set of processes selected by other means. An alternate description is that this option causes B<ps> to list all processes owned by you (same EUID as B<ps>), or to list all processes when used together with the B<a> option."
+msgstr "ВикориÑтати Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Â«Ð¿Ð¾Ð²Ð¸Ð½ÐµÐ½ мати термінал» у Ñтилі BSD, Ñке буде накладено на набір уÑÑ–Ñ… процеÑів, Ñкщо викориÑтано ÑкіÑÑŒ параметри у Ñтилі BSD (без «-») або Ñкщо оÑобу кориÑтувача B<ps> вÑтановлено у Ñтилі BSD. Ðабір процеÑів, Ñкий вибрано у цей ÑпоÑіб, додаєтьÑÑ Ð´Ð¾ набору процеÑів, Ñкі вибрано в інший ÑпоÑіб. Ðльтернативним опиÑом Ñ” те, що цей параметр наказує B<ps> вивеÑти ÑпиÑок уÑÑ–Ñ… процеÑів, влаÑником Ñких Ñ” ви (той Ñамий EUID, що Ñ– Ð´Ð»Ñ B<ps>) або вивеÑти ÑпиÑок уÑÑ–Ñ… процеÑів, Ñкщо викориÑтано разом із параметром B<a>."
+
+#. type: SH
+#: ../man/ps.1:208
+#, no-wrap
+msgid "PROCESS SELECTION BY LIST"
+msgstr "ВИБІР ПРОЦЕСУ ЗРСПИСКОМ"
+
+#. type: Plain text
+#: ../man/ps.1:212
+msgid "These options accept a single argument in the form of a blank-separated or comma-separated list. They can be used multiple times. For example: B<ps\\ -p\\ \"1\\ 2\"\\ -p\\ 3,4>"
+msgstr "Ці параметри приймають один аргумент у формі ÑпиÑку відокремлених пробілами або комами значень. Можна викориÑтовувати декілька разів в одній команді. Приклад: B<ps\\ -p\\ \"1\\ 2\"\\ -p\\ 3,4>"
+
+#. type: TP
+#: ../man/ps.1:212
+#, no-wrap
+msgid "I<123>"
+msgstr "I<123>"
+
+#. type: Plain text
+#: ../man/ps.1:216
+msgid "Identical to B<--pid\\ >I<123>."
+msgstr "Те Ñаме, що Ñ– B<--pid\\ >I<123>."
+
+#. type: TP
+#: ../man/ps.1:216
+#, no-wrap
+msgid "\\+I<123>"
+msgstr "\\+I<123>"
+
+#. type: Plain text
+#: ../man/ps.1:220
+msgid "Identical to B<--sid\\ >I<123>."
+msgstr "Те Ñаме, що Ñ– B<--sid\\ >I<123>."
+
+#. type: TP
+#: ../man/ps.1:220
+#, no-wrap
+msgid "-I<123>"
+msgstr "-I<123>"
+
+#. type: Plain text
+#: ../man/ps.1:223
+msgid "Select by process group ID (PGID)."
+msgstr "Вибрати ідентифікатор групи процеÑів (PGID)."
+
+#. type: TP
+#: ../man/ps.1:223
+#, no-wrap
+msgid "B<-C>I<\\ cmdlist>"
+msgstr "B<-C>I<\\ ÑпиÑок_команд>"
+
+#. type: Plain text
+#: ../man/ps.1:232
+msgid "Select by command name. This selects the processes whose executable name is given in I<cmdlist>. NOTE: The command name is not the same as the command line. Previous versions of procps and the kernel truncated this command name to 15 characters. This limitation is no longer present in both. If you depended on matching only 15 characters, you may no longer get a match."
+msgstr "Вибрати за назвою команди. Вибирає процеÑи, назвою виконуваного файла у Ñких Ñ” назва, задана аргументом I<ÑпиÑок_команд>. ЗауваженнÑ: назва команди не Ñ” тим Ñамим, що Ñ€Ñдок команди. У попередніх верÑÑ–ÑÑ… procps Ñ– Ñдро обрізали цю назву команди до 15 Ñимволів. Це Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð½Ñто у нових верÑÑ–ÑÑ…. Якщо ваш код залежить від Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñƒ 15 Ñимволів, він може не Ñпрацювати."
+
+#. type: TP
+#: ../man/ps.1:232
+#, no-wrap
+msgid "B<-G>I<\\ grplist>"
+msgstr "B<-G>I<\\ ÑпиÑок_груп>"
+
+#. type: Plain text
+#: ../man/ps.1:240
+msgid "Select by real group ID (RGID) or name. This selects the processes whose real group name or ID is in the I<grplist> list. The real group ID identifies the group of the user who created the process, see I<getgid>(2)."
+msgstr "Вибрати за ідентифікатором Ñправжньої групи (RGID) або назвою. Вибирає процеÑи, назва або ідентифікатор Ñправжньої групи Ñких Ñ” у ÑпиÑку I<ÑпиÑок_груп>. Ідентифікатор Ñправжньої групи визначає групу кориÑтувача, Ñкий Ñтворив процеÑ, див. I<getgid>(2)."
+
+#. type: TP
+#: ../man/ps.1:240
+#, no-wrap
+msgid "B<-g>I<\\ grplist>"
+msgstr "B<-g>I<\\ grplist>"
+
+#. type: Plain text
+#: ../man/ps.1:253
+msgid "Select by session OR by effective group name. Selection by session is specified by many standards, but selection by effective group is the logical behavior that several other operating systems use. This B<ps> will select by session when the list is completely numeric (as sessions are). Group ID numbers will work only when some group names are also specified. See the B<-s> and B<--group> options."
+msgstr "Вибрати за ÑеанÑом ÐБО за назвою ефективної групи. Вибір за ÑеанÑом визначаєтьÑÑ Ð±Ð°Ð³Ð°Ñ‚ÑŒÐ¼Ð° Ñтандартами, але вибір за ефективною групою Ñ” логічною поведінкою, Ñку викориÑтано у декількох інших операційних ÑиÑтемах. Ð¦Ñ Ð²ÐµÑ€ÑÑ–Ñ B<ps> вибиратиме за ÑеанÑом, Ñкщо ÑпиÑок Ñ” повніÑÑ‚ÑŽ чиÑловим (Ñк ÑеанÑи). ЧиÑлові ідентифікатори груп працюватимуть, лише Ñкщо також вказано деÑкі назви груп. Див. параметри B<-s> Ñ– B<--group>."
+
+#. type: TP
+#: ../man/ps.1:253
+#, no-wrap
+msgid "B<--Group>I<\\ grplist>"
+msgstr "B<--Group>I<\\ grplist>"
+
+#. type: Plain text
+#: ../man/ps.1:257
+msgid "Select by real group ID (RGID) or name. Identical to B<-G>."
+msgstr "Вибрати за ідентифікатором Ñправжньої групи (RGID) або назвою. Те Ñаме, що Ñ– B<-G>."
+
+#. type: TP
+#: ../man/ps.1:257
+#, no-wrap
+msgid "B<--group>I<\\ grplist>"
+msgstr "B<--group>I<\\ grplist>"
+
+#. type: Plain text
+#: ../man/ps.1:269
+msgid "Select by effective group ID (EGID) or name. This selects the processes whose effective group name or ID is in I<grplist>. The effective group ID describes the group whose file access permissions are used by the process (see I<getegid>(2)). The B<-g> option is often an alternative to B<--group>."
+msgstr "Вибрати за ідентифікатором ефективної групи (EGID) або назвою. Вибирає процеÑи, чиї назви або ідентифікатори ефективних груп Ñ” у I<ÑпиÑок_груп>. Ідентифікатор ефективної групи опиÑує групу, чиї права доÑтупу до файлів викориÑтано процеÑом (див. I<getegid>(2)). Параметр B<-g> чаÑто Ñ” альтернативою B<--group>."
+
+#. type: TP
+#: ../man/ps.1:269
+#, no-wrap
+msgid "B<p>I<\\ pidlist>"
+msgstr "B<p>I<\\ ÑпиÑок_pid>"
+
+#. type: Plain text
+#: ../man/ps.1:275
+msgid "Select by process ID. Identical to B<-p> and B<--pid>."
+msgstr "Вибрати за ідентифікатором процеÑу. Те Ñаме, що Ñ– B<-p> та B<--pid>."
+
+#. type: TP
+#: ../man/ps.1:275
+#, no-wrap
+msgid "B<-p>I<\\ pidlist>"
+msgstr "B<-p>I<\\ ÑпиÑок_pid>"
+
+#. type: Plain text
+#: ../man/ps.1:283
+msgid "Select by PID. This selects the processes whose process ID numbers appear in I<pidlist>. Identical to B<p> and B<--pid>."
+msgstr "Вибрати за PID. Вибирає процеÑи, номери ідентифікаторів процеÑу Ñких з'ÑвлÑÑŽÑ‚ÑŒÑÑ Ñƒ I<pidlist>. Те Ñаме, що Ñ– B<p> та B<--pid>."
+
+#. type: TP
+#: ../man/ps.1:283
+#, no-wrap
+msgid "B<--pid>I<\\ pidlist>"
+msgstr "B<--pid>I<\\ ÑпиÑок_pid>"
+
+#. type: Plain text
+#: ../man/ps.1:289
+msgid "Select by process\\ ID. Identical to B<-p> and B<p>."
+msgstr "Вибрати за ідентифікатором\\ процеÑу. Те Ñаме, що Ñ– B<-p> та B<p>."
+
+#. type: TP
+#: ../man/ps.1:289
+#, no-wrap
+msgid "B<--ppid>I<\\ pidlist>"
+msgstr "B<--ppid>I<\\ ÑпиÑок_pid>"
+
+#. type: Plain text
+#: ../man/ps.1:296
+msgid "Select by parent process ID. This selects the processes with a parent process\\ ID in I<pidlist>. That is, it selects processes that are children of those listed in I<pidlist>."
+msgstr "Вибрати за ідентифікатором батьківÑького процеÑу. Вибирає процеÑи із ідентифікатором батьківÑького процеÑу зі ÑпиÑку I<ÑпиÑок_pid>. Таким чином, програма вибирає процеÑи, Ñкі Ñ” дочірніми щодо процеÑів зі ÑпиÑку I<ÑпиÑок_pid>."
+
+#. type: TP
+#: ../man/ps.1:296
+#, no-wrap
+msgid "B<q>I<\\ pidlist>"
+msgstr "B<q>I<\\ ÑпиÑок_pid>"
+
+#. type: Plain text
+#: ../man/ps.1:302
+msgid "Select by process ID (quick mode). Identical to B<-q> and B<--quick-pid>."
+msgstr "Вибрати за ідентифікатором процеÑу (швидкий режим). Те Ñаме, що Ñ– B<-q> та B<--quick-pid>."
+
+#. type: TP
+#: ../man/ps.1:302
+#, no-wrap
+msgid "B<-q>I<\\ pidlist>"
+msgstr "B<-q>I<\\ ÑпиÑок_pid>"
+
+#. type: Plain text
+#: ../man/ps.1:316
+msgid "Select by PID (quick mode). This selects the processes whose process ID numbers appear in I<pidlist>. With this option B<ps> reads the necessary info only for the pids listed in the I<pidlist> and doesn't apply additional filtering rules. The order of pids is unsorted and preserved. No additional selection options, sorting and forest type listings are allowed in this mode. Identical to B<q> and B<--quick-pid>."
+msgstr "Вибрати за PID (швидкий режим). Вибирає процеÑи, чиї чиÑлові ідентифікатори процеÑу Ñ” у ÑпиÑку I<ÑпиÑок_pid>. Якщо вказано цей параметр, B<ps> прочитає потрібні дані лише Ð´Ð»Ñ pid зі ÑпиÑку I<ÑпиÑок_pid> Ñ– не заÑтоÑовуватиме додаткових правил фільтруваннÑ. ПорÑдок pid без ÑÐ¾Ñ€Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ñ‚Ð¸Ð¼ÐµÑ‚ÑŒÑÑ. У цьому режимі не передбачено додаткових параметрів вибору, упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð° ÑпиÑки типу «ліÑ». Те Ñаме, що B<q> Ñ– B<--quick-pid>."
+
+#. type: TP
+#: ../man/ps.1:316
+#, no-wrap
+msgid "B<--quick-pid>I<\\ pidlist>"
+msgstr "B<--quick-pid>I<\\ ÑпиÑок_pid>"
+
+#. type: Plain text
+#: ../man/ps.1:322
+msgid "Select by process\\ ID (quick mode). Identical to B<-q> and B<q>."
+msgstr "Вибрати за ідентифікатором\\ процеÑу (швидкий режим). Те Ñаме, що Ñ– B<-q> та B<q>."
+
+#. type: TP
+#: ../man/ps.1:322
+#, no-wrap
+msgid "B<-s>I<\\ sesslist>"
+msgstr "B<-s>I<\\ sesslist>"
+
+#. type: Plain text
+#: ../man/ps.1:327
+msgid "Select by session ID. This selects the processes with a session ID specified in I<sesslist>."
+msgstr "Вибрати за ідентифікатором ÑеанÑу. Вибирає процеÑи із ідентифікатором ÑеанÑу, вказаним у I<sesslist>."
+
+#. type: TP
+#: ../man/ps.1:327
+#, no-wrap
+msgid "B<--sid>I<\\ sesslist>"
+msgstr "B<--sid>I<\\ sesslist>"
+
+#. type: Plain text
+#: ../man/ps.1:331
+msgid "Select by session\\ ID. Identical to B<-s>."
+msgstr "Вибрати за ідентифікатором\\ ÑеанÑу. Те Ñаме, що Ñ– B<-s>."
+
+#. type: TP
+#: ../man/ps.1:331
+#, no-wrap
+msgid "B<t>I<\\ ttylist>"
+msgstr "B<t>I<\\ ÑпиÑок_терміналів>"
+
+#. type: Plain text
+#: ../man/ps.1:348
+msgid "Select by tty. Nearly identical to B<-t> and B<--tty>, but can also be used with an empty I<ttylist> to indicate the terminal associated with B<ps>. Using the B<T> option is considered cleaner than using B<t> with an empty I<ttylist>."
+msgstr "Вибрати за терміналом. Майже те Ñаме, що Ñ– B<-t> та B<--tty>, але можна викориÑтовувати із порожнім значеннÑм I<ÑпиÑок_терміналів>, щоб вказати на термінал, Ñкий пов'Ñзано із B<ps>. ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° B<T> вважаєтьÑÑ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ñ–ÑˆÐ¸Ð¼ варіантом за викориÑÑ‚Ð°Ð½Ð½Ñ B<t> із порожнім значеннÑм I<ÑпиÑок_терміналів>."
+
+#. type: TP
+#: ../man/ps.1:348
+#, no-wrap
+msgid "B<-t>I<\\ ttylist>"
+msgstr "B<-t>I<\\ ÑпиÑок_терміналів>"
+
+#. type: Plain text
+#: ../man/ps.1:356
+msgid "Select by tty. This selects the processes associated with the terminals given in I<ttylist>. Terminals (ttys, or screens for text output) can be specified in several forms: /dev/ttyS1, ttyS1, S1. A plain \"-\" may be used to select processes not attached to any terminal."
+msgstr "Вибрати за терміналом. Вибирає процеÑи, пов'Ñзані із терміналами, Ñкі задано ÑпиÑком I<ÑпиÑок_терміналів>. Термінали (tty або екрани Ð´Ð»Ñ Ñ‚ÐµÐºÑтового виведеннÑ) можна вказати у декількох формах: /dev/ttyS1, ttyS1, S1. Можна ÑкориÑтатиÑÑ Ð¿Ñ€Ð¾Ñтим «-» Ð´Ð»Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ процеÑів, Ñкі не пов'Ñзано із будь-Ñким терміналом."
+
+#. type: TP
+#: ../man/ps.1:356
+#, no-wrap
+msgid "B<--tty>I<\\ ttylist>"
+msgstr "B<--tty>I<\\ ttylist>"
+
+#. type: Plain text
+#: ../man/ps.1:362
+msgid "Select by terminal. Identical to B<-t> and B<t>."
+msgstr "Вибрати за терміналом. Те Ñаме, що Ñ– B<-t> та B<t>."
+
+#. type: TP
+#: ../man/ps.1:362
+#, no-wrap
+msgid "B<U>I<\\ userlist>"
+msgstr "B<U>I<\\ ÑпиÑок_кориÑтувачів>"
+
+#. type: Plain text
+#: ../man/ps.1:374
+msgid "Select by effective user ID (EUID) or name. This selects the processes whose effective user name or ID is in I<userlist>. The effective user ID describes the user whose file access permissions are used by the process (see I<geteuid>(2)). Identical to B<-u> and B<--user>."
+msgstr "Вибрати за ідентифікатором ефективного кориÑтувача (EUID) або назвою. Вибирає процеÑи, чиї імена або ідентифікатори ефективних кориÑтувачів Ñ” у I<ÑпиÑок_кориÑтувачів>. Ідентифікатор ефективного кориÑтувача опиÑує кориÑтувача, чиї права доÑтупу до файлів викориÑтано процеÑом (див. I<geteuid>(2)). Параметр B<-u> чаÑто Ñ” альтернативою B<--user>."
+
+#. type: TP
+#: ../man/ps.1:374
+#, no-wrap
+msgid "B<-U>I<\\ userlist>"
+msgstr "B<-U>I<\\ ÑпиÑок_кориÑтувачів>"
+
+#. type: Plain text
+#: ../man/ps.1:381
+msgid "Select by real user ID (RUID) or name. It selects the processes whose real user name or ID is in the I<userlist> list. The real user ID identifies the user who created the process, see I<getuid>(2)."
+msgstr "Вибрати за ідентифікатором Ñправжнього кориÑтувача (RUID) або назвою. Вибирає процеÑи, назва або ідентифікатор Ñправжнього кориÑтувача Ñких Ñ” у ÑпиÑку I<ÑпиÑок_кориÑтувачів>. Ідентифікатор Ñправжнього кориÑтувача визначає кориÑтувача, Ñкий Ñтворив процеÑ, див. I<getuid>(2)."
+
+#. type: TP
+#: ../man/ps.1:381
+#, no-wrap
+msgid "B<-u>I<\\ userlist>"
+msgstr "B<-u>I<\\ ÑпиÑок_кориÑтувачів>"
+
+#. type: Plain text
+#: ../man/ps.1:386
+msgid "Select by effective user ID (EUID) or name. This selects the processes whose effective user name or ID is in I<userlist>."
+msgstr "Вибрати за ідентифікатором ефективного кориÑтувача (EUID) або назвою. Вибирає процеÑи, Ñ‡Ð¸Ñ Ð½Ð°Ð·Ð²Ð° ефективного кориÑтувача або ідентифікатор перебуває у ÑпиÑку I<ÑпиÑок_кориÑтувачів>."
+
+#. type: Plain text
+#: ../man/ps.1:394
+msgid "The effective user ID describes the user whose file access permissions are used by the process (see I<geteuid>(2)). Identical to B<U> and B<--user>."
+msgstr "Ідентифікатор ефективного кориÑтувача опиÑує кориÑтувача, чиї права доÑтупу до файлів викориÑтано процеÑом (див. I<geteuid>(2)). Параметр B<U> чаÑто Ñ” альтернативою B<--user>."
+
+#. type: TP
+#: ../man/ps.1:394
+#, no-wrap
+msgid "B<--User>I<\\ userlist>"
+msgstr "B<--User>I<\\ ÑпиÑок_кориÑтувачів>"
+
+#. type: Plain text
+#: ../man/ps.1:398
+msgid "Select by real user ID (RUID) or name. Identical to B<-U>."
+msgstr "Вибрати ідентифікатор або ім'Ñ Ñправжнього кориÑтувача (RUID). Тотожний до B<-U>."
+
+#. type: TP
+#: ../man/ps.1:398
+#, no-wrap
+msgid "B<--user>I<\\ userlist>"
+msgstr "B<--user>I<\\ ÑпиÑок кориÑтувачів>"
+
+#. type: Plain text
+#: ../man/ps.1:404
+msgid "Select by effective user ID (EUID) or name. Identical to B<-u> and B<U>."
+msgstr "Вибрати за ідентифікатором або іменем ефективного кориÑтувача (EUID). Те Ñаме, що B<-u> Ñ– B<U>."
+
+#. type: SH
+#: ../man/ps.1:405
+#, no-wrap
+msgid "OUTPUT FORMAT CONTROL"
+msgstr "КЕРУВÐÐÐЯ ФОРМÐТОМ ВИВЕДЕÐÐЯ"
+
+#. type: Plain text
+#: ../man/ps.1:409
+msgid "These options are used to choose the information displayed by B<ps>. The output may differ by personality."
+msgstr "Ці параметри викориÑтовують Ð´Ð»Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ даних, Ñкі буде показано B<ps>. Виведений результат може бути різним Ð´Ð»Ñ Ñ€Ñ–Ð·Ð½Ð¸Ñ… кориÑтувачів."
+
+#. type: Plain text
+#: ../man/ps.1:414
+msgid "Show different scheduler information for the B<-l> option."
+msgstr "Показати різні дані планувальника Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° B<-l>."
+
+#. type: TP
+#: ../man/ps.1:414
+#, no-wrap
+msgid "B<--context>"
+msgstr "B<--context>"
+
+#. type: Plain text
+#: ../man/ps.1:417
+msgid "Display security context format (for SELinux)."
+msgstr "Показати формат контекÑту захиÑту (Ð´Ð»Ñ SELinux)."
+
+#. type: Plain text
+#: ../man/ps.1:430
+msgid "Do full-format listing. This option can be combined with many other UNIX-style options to add additional columns. It also causes the command arguments to be printed. When used with B<-L>, the NLWP (number of threads) and LWP (thread ID) columns will be added. See the B<c> option, the format keyword B<args>, and the format keyword B<comm>."
+msgstr "Виконати повноформатне Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ ÑпиÑку. Цей параметр можна поєднувати із багатьма іншими параметрами у Ñтилі UNIX Ð´Ð»Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¸Ñ… Ñтовпчиків. Його викориÑÑ‚Ð°Ð½Ð½Ñ Ñ‚Ð°ÐºÐ¾Ð¶ призводить до Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð² команди. Якщо викориÑтано разом із B<-L>, буде додано Ñтовпчики NLWP (кількоÑÑ‚Ñ– потоків обробки) та LWP (ідентифікатора потоку обробки). Див. параметр B<c>, ключове Ñлово Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ B<args> та ключове Ñлово Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ B<comm>."
+
+#. type: TP
+#: ../man/ps.1:430
+#, no-wrap
+msgid "B<-F>"
+msgstr "B<-F>"
+
+#. type: Plain text
+#: ../man/ps.1:437
+msgid "Extra full format. See the B<-f> option, which B<-F> implies."
+msgstr "Ðадповний формат. Див. параметр B<-f>, викориÑÑ‚Ð°Ð½Ð½Ñ Ñкого неÑвним чином вмикає B<-F>."
+
+#. type: TP
+#: ../man/ps.1:437
+#, no-wrap
+msgid "B<--format>I<\\ format>"
+msgstr "B<--format>I<\\ формат>"
+
+#. type: Plain text
+#: ../man/ps.1:443
+msgid "user-defined format. Identical to B<-o> and B<o>."
+msgstr "Визначений кориÑтувачем формат. Тотожній до B<-o> Ñ– B<o>."
+
+#. type: TP
+#: ../man/ps.1:443
+#, no-wrap
+msgid "B<j>"
+msgstr "B<j>"
+
+#. type: Plain text
+#: ../man/ps.1:446
+msgid "BSD job control format."
+msgstr "Формат ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñми BSD."
+
+#. type: TP
+#: ../man/ps.1:446
+#, no-wrap
+msgid "B<-j>"
+msgstr "B<-j>"
+
+#. type: Plain text
+#: ../man/ps.1:449
+msgid "Jobs format."
+msgstr "Формат завдань."
+
+#. type: TP
+#: ../man/ps.1:449
+#, no-wrap
+msgid "B<l>"
+msgstr "B<l>"
+
+#. type: Plain text
+#: ../man/ps.1:452
+msgid "Display BSD long format."
+msgstr "ВивеÑти дані у довгому форматі BSD."
+
+#. type: TP
+#: ../man/ps.1:452
+#, no-wrap
+msgid "B<-l>"
+msgstr "B<-l>"
+
+#. type: Plain text
+#: ../man/ps.1:457
+msgid "Long format. The B<-y> option is often useful with this."
+msgstr "Довгий формат. Разом із цим параметром чаÑто кориÑним Ñ” параметр B<-y>."
+
+#. type: TP
+#: ../man/ps.1:457
+#, no-wrap
+msgid "B<-M>"
+msgstr "B<-M>"
+
+#. type: Plain text
+#: ../man/ps.1:462
+msgid "Add a column of security data. Identical to B<Z> (for SELinux)."
+msgstr "Додати Ñтовпчик даних щодо захиÑту. Те Ñаме, що Ñ– B<Z> (Ð´Ð»Ñ SELinux)."
+
+#. type: TP
+#: ../man/ps.1:462
+#, no-wrap
+msgid "B<O>I<\\ format>"
+msgstr "B<O>I<\\ формат>"
+
+#. type: Plain text
+#: ../man/ps.1:480
+msgid "is preloaded B<o> (overloaded). The BSD B<O> option can act like B<-O> (user-defined output format with some common fields predefined) or can be used to specify sort order. Heuristics are used to determine the behavior of this option. To ensure that the desired behavior is obtained (sorting or formatting), specify the option in some other way (e.g. with B<-O> or B<--sort>). When used as a formatting option, it is identical to B<-O>, with the BSD personality."
+msgstr "Є попередньо завантаженим B<o> (перезавантаженим). Параметр B<O> BSD може працювати Ñк B<-O> (визначений кориÑтувачем формат Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð· деÑкими попередньо визначеними типовими полÑми) або бути викориÑтаним Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÑƒÐ¿Ð¾Ñ€ÑдкуваннÑ. Ð”Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²ÐµÐ´Ñ–Ð½ÐºÐ¸ цього параметра буде викориÑтано евриÑтику. Ð”Ð»Ñ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ Ð±Ð°Ð¶Ð°Ð½Ð¾Ñ— поведінки (упорÑÐ´ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ форматуваннÑ) вкажіть параметр у ÑкийÑÑŒ інший ÑпоÑіб (наприклад, з B<-O> або B<--sort>). Якщо викориÑтано Ñк параметр форматуваннÑ, Ñ” ідентичним до B<-O> із оÑобливоÑÑ‚Ñми BSD."
+
+#. type: TP
+#: ../man/ps.1:480
+#, no-wrap
+msgid "B<-O>I<\\ format>"
+msgstr "B<-O>I<\\ формат>"
+
+#. type: Plain text
+#: ../man/ps.1:491
+msgid "Like B<-o>, but preloaded with some default columns. Identical to B<-o\\ pid,\\:>I<format>B<,\\:state,\\:tname,\\:time,\\:command> or B<-o\\ pid,\\:>I<format>B<,\\:tname,\\:time,\\:cmd>, see B<-o> below."
+msgstr "Подібний до B<-o>, але із попереднім завантаженнÑм деÑких типових Ñтовпчиків. Ідентичний до B<-o\\ pid,\\:>I<формат>B<,\\:state,\\:tname,\\:time,\\:command> або B<-o\\ pid,\\:>I<формат>B<,\\:tname,\\:time,\\:cmd>, див. B<-o> нижче."
+
+#. type: TP
+#: ../man/ps.1:491
+#, no-wrap
+msgid "B<o>I<\\ format>"
+msgstr "B<o>I<\\ формат>"
+
+#. type: Plain text
+#: ../man/ps.1:497
+msgid "Specify user-defined format. Identical to B<-o> and B<--format>."
+msgstr "Вказати визначений кориÑтувачем формат. Те Ñаме, що Ñ– B<-o> Ñ– B<--format>."
+
+#. type: TP
+#: ../man/ps.1:497
+#, no-wrap
+msgid "B<-o>I<\\ format>"
+msgstr "B<-o>I<\\ формат>"
+
+#. type: Plain text
+#: ../man/ps.1:525
+msgid "User-defined format. I<format> is a single argument in the form of a blank-separated or comma-separated list, which offers a way to specify individual output columns. The recognized keywords are described in the B<STANDARD FORMAT SPECIFIERS> section below. Headers may be renamed (B<ps -o pid,\\:ruser=RealUser -o comm=Command>) as desired. If all column headers are empty (B<ps -o pid= -o comm=>) then the header line will not be output. Column width will increase as needed for wide headers; this may be used to widen up columns such as WCHAN (B<ps -o pid,\\:wchan=\\:WIDE-\\:WCHAN-\\:COLUMN -o comm>). Explicit width control (B<ps opid,\\:wchan:42,\\:cmd>) is offered too. The behavior of B<ps -o pid=X,\\:comm=Y> varies with personality; output may be one column named \"X,\\:comm=Y\" or two columns named \"X\" and \"Y\". Use multiple B<-o> options when in doubt. Use the B<PS_FORMAT> environment variable to specify a default as desired; DefSysV and DefBSD are macros that may be used to choose the default UNIX or BSD columns."
+msgstr "Визначений кориÑтувачем формат. Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ I<формат> Ñ” єдиним аргументом у формі ÑпиÑку відокремлених пробілами або комами значень, за його допомогою можна вказати окремі Ñтовпчики Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…. Визначені ключові Ñлова опиÑано у розділі B<СТÐÐДÐРТÐІ СПЕЦИФІКÐТОРИ ФОРМÐТІВ> нижче. Заголовки, Ñкщо потрібно, може бути перейменовано (B<ps -o pid,\\:ruser=RealUser -o comm=Command>). Якщо уÑÑ– заголовки Ñтовпчиків порожні (B<ps -o pid= -o comm=>), Ñ€Ñдок заголовків не буде виведено. Ð”Ð»Ñ ÑˆÐ¸Ñ€Ð¾ÐºÐ¸Ñ… заголовків буде збільшено ширину Ñтовпчика; цим можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð·Ð±Ñ–Ð»ÑŒÑˆÐµÐ½Ð½Ñ ÑˆÐ¸Ñ€Ð¸Ñ‚Ð¸ Ñтовпчиків, подібних до WCHAN (B<ps -o pid,\\:wchan=\\:WIDE-\\:WCHAN-\\:COLUMN -o comm>). Також можна ÑкориÑтатиÑÑ Ñвним визначеннÑм ширини (B<ps opid,\\:wchan:42,\\:cmd>). Поведінка B<ps -o pid=X,\\:comm=Y> Ñ” різною у різних ÑиÑтемах; дані може бути виведено в один Ñтовпчик із назвою «X,\\:comm=Y» або у два Ñтовпчики із назвами «X» та «Y». СкориÑтайтеÑÑ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ð¼Ð° параметрами B<-o>, Ñкщо не певні щодо результатів. СкориÑтайтеÑÑ Ð·Ð¼Ñ–Ð½Ð½Ð¾ÑŽ Ñередовища B<PS_FORMAT> Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±Ð°Ð¶Ð°Ð½Ð¾Ð³Ð¾ типового варіанта; DefSysV Ñ– DefBSD Ñ” макроÑами, Ñкими можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ типових Ñтовпчиків UNIX або BSD."
+
+#. type: TP
+#: ../man/ps.1:525
+#, no-wrap
+msgid "B<-P>"
+msgstr "B<-P>"
+
+#. type: Plain text
+#: ../man/ps.1:528
+msgid "Add a column showing B<psr>."
+msgstr "Додати Ñтовпчик із Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ B<psr>."
+
+#. type: TP
+#: ../man/ps.1:528
+#, no-wrap
+msgid "B<s>"
+msgstr "B<s>"
+
+#. type: Plain text
+#: ../man/ps.1:531
+msgid "Display signal format."
+msgstr "Формат показу Ñигналів."
+
+#. type: TP
+#: ../man/ps.1:531
+#, no-wrap
+msgid "B<u>"
+msgstr "B<u>"
+
+#. type: Plain text
+#: ../man/ps.1:534
+msgid "Display user-oriented format."
+msgstr "Формат показу, орієнтований на кориÑтувача."
+
+#. type: TP
+#: ../man/ps.1:534
+#, no-wrap
+msgid "B<v>"
+msgstr "B<v>"
+
+#. type: Plain text
+#: ../man/ps.1:537
+msgid "Display virtual memory format."
+msgstr "Формат показу віртуальної пам'ÑÑ‚Ñ–."
+
+#. type: TP
+#: ../man/ps.1:537
+#, no-wrap
+msgid "B<X>"
+msgstr "B<X>"
+
+#. type: Plain text
+#: ../man/ps.1:540
+msgid "Register format."
+msgstr "Формат регіÑтрів."
+
+#. type: TP
+#: ../man/ps.1:540
+#, no-wrap
+msgid "B<-y>"
+msgstr "B<-y>"
+
+#. type: Plain text
+#: ../man/ps.1:545
+msgid "Do not show flags; show rss in place of addr. This option can only be used with B<-l>."
+msgstr "Ðе показувати прапорці, показувати rss заміÑÑ‚ÑŒ addr. Цим параметром можна кориÑтуватиÑÑ Ð»Ð¸ÑˆÐµ разом із B<-l>."
+
+#. type: TP
+#: ../man/ps.1:545
+#, no-wrap
+msgid "B<Z>"
+msgstr "B<Z>"
+
+#. type: Plain text
+#: ../man/ps.1:550
+msgid "Add a column of security data. Identical to B<-M> (for SELinux)."
+msgstr "Додати Ñтовпчик даних щодо захиÑту. Те Ñаме, що Ñ– B<-M> (Ð´Ð»Ñ SELinux)."
+
+#. type: SH
+#: ../man/ps.1:551
+#, no-wrap
+msgid "OUTPUT MODIFIERS"
+msgstr "МОДИФІКÐТОРИ ВИВЕДЕÐÐЯ"
+
+#. type: TP
+#: ../man/ps.1:552
+#, no-wrap
+msgid "B<c>"
+msgstr "B<c>"
+
+#. type: Plain text
+#: ../man/ps.1:570
+msgid "Show the true command name. This is derived from the name of the executable file, rather than from the argv value. Command arguments and any modifications to them are thus not shown. This option effectively turns the B<args> format keyword into the B<comm> format keyword; it is useful with the B<-f> format option and with the various BSD-style format options, which all normally display the command arguments. See the B<-f> option, the format keyword B<args>, and the format keyword B<comm>."
+msgstr "Показати Ñправжню назву команди. Ð¦Ñ Ð½Ð°Ð·Ð²Ð° Ñ” похідною від назви виконуваного файла, а не від Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ argv. Таким чином, аргументи команди та уÑÑ– внеÑені до них зміни показано не буде. Цей параметр, фактично, перетворює ключове Ñлово Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ B<args> на ключове Ñлово Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ B<comm>. Він кориÑний у поєднанні із параметром Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ B<-f> та різноманітними параметрами Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ Ñтилі BSD, Ñкі, зазвичай, призводÑÑ‚ÑŒ до показу аргументів команди. Див. параметр B<-f>, ключове Ñлово Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ B<args> та ключове Ñлово Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ B<comm>."
+
+#. type: TP
+#: ../man/ps.1:570
+#, no-wrap
+msgid "B<--cols>I<\\ n>"
+msgstr "B<--cols>I<\\ n>"
+
+#. type: Plain text
+#: ../man/ps.1:573 ../man/ps.1:576 ../man/ps.1:724
+msgid "Set screen width."
+msgstr "Ð’Ñтановити ширину екрана."
+
+#. type: TP
+#: ../man/ps.1:573
+#, no-wrap
+msgid "B<--columns>I<\\ n>"
+msgstr "B<--columns>I<\\ n>"
+
+#. type: TP
+#: ../man/ps.1:576
+#, no-wrap
+msgid "B<--cumulative>"
+msgstr "B<--cumulative>"
+
+#. type: Plain text
+#: ../man/ps.1:579
+msgid "Include some dead child process data (as a sum with the parent)."
+msgstr "Включити деÑкі дані завершених дочірніх процеÑів (Ñк Ñуму із батьківÑьким)."
+
+#. type: TP
+#: ../man/ps.1:580
+#, no-wrap
+msgid "B<-D>I<\\ format>"
+msgstr "B<-D>I<\\ формат>"
+
+#. type: Plain text
+#: ../man/ps.1:586
+msgid "Set the date format of the B<lstart> field to I<format>. This format is parsed by B<strftime>(3) and should be a maximum of 24 characters to not mis-align columns."
+msgstr "Ð’Ñтановити Ð´Ð»Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñƒ дати Ð¿Ð¾Ð»Ñ B<lstart> Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ I<формат>. Цей формат буде оброблено B<strftime>(3). Ð—Ð°Ð¿Ð¸Ñ Ð¼Ð°Ñ” не перевищувати у довжину 24 Ñимволів, щоб не порушувати Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñтовпчиків."
+
+#. type: TP
+#: ../man/ps.1:586
+#, no-wrap
+msgid "B<--date-format>I<\\ format>"
+msgstr "B<--date-format>I<\\ формат>"
+
+#. type: Plain text
+#: ../man/ps.1:589
+msgid "Identical to B<-D>."
+msgstr "Те Ñаме, що Ñ– B<-D>."
+
+#. type: TP
+#: ../man/ps.1:589
+#, no-wrap
+msgid "B<e>"
+msgstr "B<e>"
+
+#. type: Plain text
+#: ../man/ps.1:592
+msgid "Show the environment after the command."
+msgstr "Показати Ñередовище піÑÐ»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸."
+
+#. type: TP
+#: ../man/ps.1:592
+#, no-wrap
+msgid "B<f>"
+msgstr "B<f>"
+
+#. type: Plain text
+#: ../man/ps.1:595
+msgid "ASCII art process hierarchy (forest)."
+msgstr "ВивеÑти ієрархію (ліÑ) процеÑів у форматі риÑунка ASCII."
+
+#. type: TP
+#: ../man/ps.1:595
+#, no-wrap
+msgid "B<--forest>"
+msgstr "B<--forest>"
+
+#. type: Plain text
+#: ../man/ps.1:598
+msgid "ASCII art process tree."
+msgstr "Дерево процеÑів у форматі риÑунка ASCII."
+
+#. type: TP
+#: ../man/ps.1:598
+#, no-wrap
+msgid "B<h>"
+msgstr "B<h>"
+
+#. type: Plain text
+#: ../man/ps.1:616
+msgid "No header. (or, one header per screen in the BSD personality). The B<h> option is problematic. Standard BSD B<ps> uses this option to print a header on each page of output, but older Linux B<ps> uses this option to totally disable the header. This version of B<ps> follows the Linux usage of not printing the header unless the BSD personality has been selected, in which case it prints a header on each page of output. Regardless of the current personality, you can use the long options B<--headers> and B<--no-headers> to enable printing headers each page or disable headers entirely, respectively."
+msgstr "Без заголовка (боа один заголовок на екран у випадку BSD). Параметр B<h> може ÑпричинÑти проблеми. У Ñтандартній B<ps> Ð´Ð»Ñ BSD цей параметр викориÑтано Ð´Ð»Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° на кожній Ñторінці виведених даних, але у Ñтарому B<ps> Ð´Ð»Ñ Linux цей параметр повніÑÑ‚ÑŽ вимикає заголовок. У цій верÑÑ–Ñ— B<ps> реалізовано верÑÑ–ÑŽ Ð´Ð»Ñ Linux — не виводити заголовок, Ñкщо не вибрано варіант Ð´Ð»Ñ BSD, Ð´Ð»Ñ Ñкого буде виведено один заголовок на кожній Ñторінці виведених даних. Ðезалежно від поточного варіанта, ви можете ÑкориÑтатиÑÑ Ð´Ð¾Ð²Ð³Ð¸Ð¼Ð¸ верÑÑ–Ñми параметрів, B<--headers> Ñ– B<--no-headers>, щоб увімкнути Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÑ–Ð² на кожній Ñторінці або вимкнути заголовки взагалі, відповідно."
+
+#. type: TP
+#: ../man/ps.1:616
+#, no-wrap
+msgid "B<-H>"
+msgstr "B<-H>"
+
+#. type: Plain text
+#: ../man/ps.1:619
+msgid "Show process hierarchy (forest)."
+msgstr "Показати ієрархію процеÑів (ліÑ)."
+
+#. type: TP
+#: ../man/ps.1:619
+#, no-wrap
+msgid "B<--headers>"
+msgstr "B<--headers>"
+
+#. type: Plain text
+#: ../man/ps.1:622
+msgid "Repeat header lines, one per page of output."
+msgstr "Повторювати Ñ€Ñдки заголовка, по одному на виведену Ñторінку."
+
+#. type: TP
+#: ../man/ps.1:622
+#, no-wrap
+msgid "B<k>I<\\ spec>"
+msgstr "B<k>I<\\ ÑпецифікаціÑ>"
+
+#. type: Plain text
+#: ../man/ps.1:634
+msgid "Specify sorting order. Sorting syntax is [B<+>|B<->]I<key\\/.RB [,[ + | - ].IR key [,...]].> Choose a multi-letter key from the B<STANDARD FORMAT SPECIFIERS> section. The \"+\" is optional since default direction is increasing numerical or lexicographic order. Identical to B<--sort>."
+msgstr "Вказати варіант упорÑдкуваннÑ. СинтакÑÐ¸Ñ Ð·Ð°Ð¿Ð¸Ñу такий: [B<+>|B<->]I<ключ\\/.RB [,[ + | - ].IR ключ [,...]].> Багатолітерний ключ можна вибрати зі ÑпиÑку у розділі B<СТÐÐДÐРТÐІ СПЕЦИФІКÐТОРИ ФОРМÐТІВ>. Символ «+» Ñ” необов'Ñзковим, оÑкільки типовим порÑдком Ñ” порÑдок за зроÑтаннÑм чиÑлових або лекÑикографічних значень. Те Ñаме, що Ñ– B<--sort>."
+
+#. type: Plain text
+#: ../man/ps.1:637
+msgid "Examples:"
+msgstr "Приклади:"
+
+#. type: Plain text
+#: ../man/ps.1:639
+msgid "B<ps jaxkuid,-ppid,+pid>"
+msgstr "B<ps jaxkuid,-ppid,+pid>"
+
+#. type: Plain text
+#: ../man/ps.1:641
+msgid "B<ps axk comm o comm,args>"
+msgstr "B<ps axk comm o comm,args>"
+
+#. type: Plain text
+#: ../man/ps.1:643
+msgid "B<ps kstart_time -ef>"
+msgstr "B<ps kstart_time -ef>"
+
+#. type: TP
+#: ../man/ps.1:644
+#, no-wrap
+msgid "B<--lines>I<\\ n>"
+msgstr "B<--lines>I<\\ n>"
+
+#. type: Plain text
+#: ../man/ps.1:647 ../man/ps.1:691
+msgid "Set screen height."
+msgstr "Ð’Ñтановити виÑоту екрана."
+
+#. type: TP
+#: ../man/ps.1:647
+#, no-wrap
+msgid "B<n>"
+msgstr "B<n>"
+
+#. type: Plain text
+#: ../man/ps.1:650
+msgid "Numeric output for WCHAN and USER (including all types of UID and GID)."
+msgstr "ЧиÑлове Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð»Ñ WCHAN Ñ– USER (включно із уÑіма типами UID Ñ– GID)."
+
+#. type: TP
+#: ../man/ps.1:650
+#, no-wrap
+msgid "B<--no-headers>"
+msgstr "B<--no-headers>"
+
+#. type: Plain text
+#: ../man/ps.1:655
+msgid "Print no header line at all. B<--no-heading> is an alias for this option."
+msgstr "Ðе виводити Ñ€Ñдок заголовка взагалі. B<--no-heading> Ñ” альтернативою Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ параметра."
+
+#. type: TP
+#: ../man/ps.1:655
+#, no-wrap
+msgid "B<O>I<\\ order>"
+msgstr "B<O>I<\\ порÑдок>"
+
+#. type: Plain text
+#: ../man/ps.1:669
+msgid "Sorting order (overloaded). The BSD B<O> option can act like B<-O> (user-defined output format with some common fields predefined) or can be used to specify sort order. Heuristics are used to determine the behavior of this option. To ensure that the desired behavior is obtained (sorting or formatting), specify the option in some other way (e.g. with B<-O> or B<--sort>)."
+msgstr "Варіант упорÑÐ´ÐºÑƒÐ²Ð°Ð½Ð½Ñ (перевантажений). Параметр B<O> BSD може працювати Ñк B<--sort> (визначений кориÑтувачем формат Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð· деÑкими попередньо визначеними типовими полÑми) або бути викориÑтаним Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÑƒÐ¿Ð¾Ñ€ÑдкуваннÑ. Ð”Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²ÐµÐ´Ñ–Ð½ÐºÐ¸ цього параметра буде викориÑтано евриÑтику. Ð”Ð»Ñ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ Ð±Ð°Ð¶Ð°Ð½Ð¾Ñ— поведінки (упорÑÐ´ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ форматуваннÑ) вкажіть параметр у ÑкийÑÑŒ інший ÑпоÑіб (наприклад, з B<-O> або B<--sort>)."
+
+#. type: Plain text
+#: ../man/ps.1:688
+msgid "For sorting, obsolete BSD B<O> option syntax is B<O>[B<+>|B<->]I<k1>[,[B<+>|B<->]I<k2>[,...]]. It orders the processes listing according to the multilevel sort specified by the sequence of one-letter short keys I<k1>,I<k2>, ...\" described in the B<OBSOLETE SORT KEYS> section below. The\\ \"+\" is currently optional, merely re-iterating the default direction on a key, but may help to distinguish an B<O> sort from an B<O> format. The \"-\" reverses direction only on the key it precedes."
+msgstr "Ð”Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑдковуваннÑ, заÑтарілим ÑинтакÑиÑом параметра B<O> BSD Ñ” такий: B<O>[B<+>|B<->]I<k1>[,[B<+>|B<->]I<k2>[,...]]. Він упорÑдковує ÑпиÑок процеÑів за багаторівневим правилом, Ñке визначає поÑлідовніÑÑ‚ÑŒ однолітерних коротких ключів I<k1>, I<k2>, ..., Ñкі опиÑано у розділі B<ЗÐСТÐРІЛІ КЛЮЧІ УПОРЯКОВУВÐÐÐЯ> нижче. У поточній верÑÑ–Ñ— «+» Ñ” необов'Ñзковим, оÑкільки проÑто повторює типовий напрÑмок упорÑдковуваннÑ, але він може допомогти відрізнити упорÑÐ´ÐºÑƒÐ²Ð°Ð½Ð½Ñ B<O> від формату B<O>. Символ «-» змінює напрÑмок упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð°, перед Ñким його вказано."
+
+#. type: TP
+#: ../man/ps.1:688
+#, no-wrap
+msgid "B<--rows>I<\\ n>"
+msgstr "B<--rows>I<\\ n>"
+
+#. type: TP
+#: ../man/ps.1:691
+#, no-wrap
+msgid "B<S>"
+msgstr "B<S>"
+
+#. type: Plain text
+#: ../man/ps.1:696
+msgid "Sum up some information, such as CPU usage, from dead child processes into their parent. This is useful for examining a system where a parent process repeatedly forks off short-lived children to do work."
+msgstr "ПідÑумувати дані, зокрема викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора, від завершених дочірніх процеÑів до батьківÑького процеÑу. КориÑно Ð´Ð»Ñ Ð°Ð½Ð°Ð»Ñ–Ð·Ñƒ ÑиÑтеми, де батьківÑький Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¿ÐµÑ€Ñ–Ð¾Ð´Ð¸Ñ‡Ð½Ð¾ відгалужує короткотривалі дочірні процеÑи Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿ÐµÐ²Ð½Ð¸Ñ… завдань."
+
+#. type: TP
+#: ../man/ps.1:696
+#, no-wrap
+msgid "B<--sort>I<\\ spec>"
+msgstr "B<--sort>I<\\ ÑпецифікаціÑ>"
+
+#. type: Plain text
+#: ../man/ps.1:710
+msgid "Specify sorting order. Sorting syntax is [I<+>|I<->]I<key>[,[B<+>|B<->]I<key>[,...]]. Choose a multi-letter key from the B<STANDARD FORMAT SPECIFIERS> section. The \"+\" is optional since default direction is increasing numerical or lexicographic order. Identical to B<k>. For example: B<ps jax --sort=\\:uid,\\:-ppid,\\:+pid>"
+msgstr "Вказати варіант упорÑÐ´ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¡Ð¸Ð½Ñ‚Ð°ÐºÑÐ¸Ñ Ð·Ð°Ð¿Ð¸Ñу такий: [I<+>|I<->]I<ключ>[,[B<+>|B<->]I<ключ>[,...]]. Багатолітерний ключ можна вибрати зі ÑпиÑку у розділі B<СТÐÐДÐРТÐІ СПЕЦИФІКÐТОРИ ФОРМÐТІВ>. Символ «+» Ñ” необов'Ñзковим, оÑкільки типовим порÑдком Ñ” порÑдок за зроÑтаннÑм чиÑлових або лекÑикографічних значень. Те Ñаме, що Ñ– B<k>. Приклад: B<ps jax --sort=\\:uid,\\:-ppid,\\:+pid>"
+
+#. type: TP
+#: ../man/ps.1:710
+#, no-wrap
+msgid "B<--signames>"
+msgstr "B<--signames>"
+
+#. type: Plain text
+#: ../man/ps.1:715
+msgid "Show signal masks using abbreviated signal names and expands the collumn. If the column width cannot show all signals, the column will end with a plus \"I<+>\". Columns with only a hyphen have no signals."
+msgstr "ВивеÑти маÑки Ñигналів з викориÑтаннÑм Ñкорочених назв Ñигналів Ñ– розгорнути Ñтовпчик. Якщо ширина Ñтовпчика не дає показати уÑÑ– Ñигнали, Ð·Ð°Ð¿Ð¸Ñ Ñтовпчика завершуватиметьÑÑ Ð¿Ð»ÑŽÑом, «I<+>». Стовпчики, що міÑÑ‚ÑÑ‚ÑŒ лише дефіÑ, не мають Ñигналів."
+
+#. type: TP
+#: ../man/ps.1:715
+#, no-wrap
+msgid "B<w>"
+msgstr "B<w>"
+
+#. type: Plain text
+#: ../man/ps.1:718 ../man/ps.1:721
+msgid "Wide output. Use this option twice for unlimited width."
+msgstr "Широке виведеннÑ. СкориÑтайтеÑÑ Ñ†Ð¸Ð¼ параметром двічі, щоб вÑтановити необмежену ширину."
+
+#. type: TP
+#: ../man/ps.1:721
+#, no-wrap
+msgid "B<--width>I<\\ n>"
+msgstr "B<--width>I<\\ n>"
+
+#. type: SH
+#: ../man/ps.1:725
+#, no-wrap
+msgid "THREAD DISPLAY"
+msgstr "ПОКÐЗ ПОТОКІВ ОБРОБКИ"
+
+#. type: TP
+#: ../man/ps.1:726
+#, no-wrap
+msgid "B<H>"
+msgstr "B<H>"
+
+#. type: Plain text
+#: ../man/ps.1:729
+msgid "Show threads as if they were processes."
+msgstr "Показати потоки обробки так, наче вони Ñ” процеÑами."
+
+#. type: TP
+#: ../man/ps.1:729
+#, no-wrap
+msgid "B<-L>"
+msgstr "B<-L>"
+
+#. type: Plain text
+#: ../man/ps.1:732
+msgid "Show threads, possibly with LWP and NLWP columns."
+msgstr "Показати потоки, можливо, зі Ñтовпчиками LWP Ñ– NLWP."
+
+#. type: TP
+#: ../man/ps.1:732
+#, no-wrap
+msgid "B<m>"
+msgstr "B<m>"
+
+#. type: Plain text
+#: ../man/ps.1:735 ../man/ps.1:738
+msgid "Show threads after processes."
+msgstr "Показати потоки обробки піÑÐ»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑів."
+
+#. type: TP
+#: ../man/ps.1:735
+#, no-wrap
+msgid "B<-m>"
+msgstr "B<-m>"
+
+#. type: TP
+#: ../man/ps.1:738
+#, no-wrap
+msgid "B<-T>"
+msgstr "B<-T>"
+
+#. type: Plain text
+#: ../man/ps.1:741
+msgid "Show threads, possibly with SPID column."
+msgstr "Показати потоки обробки, можливо, зі Ñтовпчиком SPID."
+
+#. type: SH
+#: ../man/ps.1:741
+#, no-wrap
+msgid "OTHER INFORMATION"
+msgstr "ІÐШІ ВІДОМОСТІ"
+
+#. type: TP
+#: ../man/ps.1:742
+#, no-wrap
+msgid "B<--help>I<\\ section>"
+msgstr "B<--help>I<\\ розділ>"
+
+#. type: Plain text
+#: ../man/ps.1:753
+msgid "Print a help message. The I<section> argument can be one of I<s>imple, I<l>ist, I<o>utput, I<t>hreads, I<m>isc, or I<a>ll. The argument can be shortened to one of the underlined letters as in: s\\^|\\^l\\^|\\^o\\^|\\^t\\^|\\^m\\^|\\^a."
+msgstr "ВивеÑти довідкове повідомленнÑ. Ðргументом I<розділ> може бути одна з літер I<s>imple (проÑте), I<l>ist (ÑпиÑок), I<o>utput (виведеннÑ), I<t>hreads (потоки), I<m>isc (різне) або I<a>ll (уÑе). Ðргумент можна Ñкоротити до однієї з підкреÑлених літер, оÑÑŒ так: s\\^|\\^l\\^|\\^o\\^|\\^t\\^|\\^m\\^|\\^a."
+
+#. type: TP
+#: ../man/ps.1:753
+#, no-wrap
+msgid "B<--info>"
+msgstr "B<--info>"
+
+#. type: Plain text
+#: ../man/ps.1:756
+msgid "Print debugging info."
+msgstr "ВивеÑти діагноÑтичні дані."
+
+#. type: TP
+#: ../man/ps.1:756
+#, no-wrap
+msgid "B<L>"
+msgstr "B<L>"
+
+#. type: Plain text
+#: ../man/ps.1:759
+msgid "List all format specifiers."
+msgstr "СпиÑок уÑÑ–Ñ… Ñпецифікаторів формату."
+
+#. type: TP
+#: ../man/ps.1:759
+#, no-wrap
+msgid "B<V>"
+msgstr "B<V>"
+
+#. type: Plain text
+#: ../man/ps.1:762 ../man/ps.1:765 ../man/ps.1:768
+msgid "Print the procps-ng version."
+msgstr "ВивеÑти верÑÑ–ÑŽ procps-ng."
+
+#. type: TP
+#: ../man/ps.1:762
+#, no-wrap
+msgid "B<-V>"
+msgstr "B<-V>"
+
+#. type: TP
+#: ../man/ps.1:765
+#, no-wrap
+msgid "B<--version>"
+msgstr "B<--version>"
+
+#. type: Plain text
+#: ../man/ps.1:777
+msgid "This B<ps> works by reading the virtual files in /proc. This B<ps> does not need to be setuid kmem or have any privileges to run. Do not give this B<ps> any special permissions."
+msgstr "Ð¦Ñ Ð²ÐµÑ€ÑÑ–Ñ B<ps> працює на оÑнові Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð¸Ñ… файлів у /proc. Ð¦Ñ Ð²ÐµÑ€ÑÑ–Ñ B<ps> не потребує Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ setuid kmem або інших привілеїв Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку. Ðе надавайте цій верÑÑ–Ñ— B<ps> ніÑких додаткових прав доÑтупу."
+
+#. type: Plain text
+#: ../man/ps.1:783
+msgid "CPU usage is currently expressed as the percentage of time spent running during the entire lifetime of a process. This is not ideal, and\\ it does not conform to the standards that B<ps> otherwise conforms to. CPU usage is unlikely to add up to exactly 100%."
+msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора у цій верÑÑ–Ñ— буде показано у відÑотках чаÑу, Ñкий витрачено на Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ під Ñ‡Ð°Ñ Ð¿Ð¾Ð²Ð½Ð¾Ð³Ð¾ чаÑу Ð¶Ð¸Ñ‚Ñ‚Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу. Це не ідеально, Ñ– це не узгоджуєтьÑÑ Ñ–Ð· Ñтандартами, з Ñкими узгоджуєтьÑÑ B<ps> у інших аÑпектах. При цьому, загальне чиÑло викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора наврÑд чи точно дорівнюватиме 100%."
+
+#. type: Plain text
+#: ../man/ps.1:788
+msgid "The SIZE and RSS fields don't count some parts of a process including the page tables, kernel stack, struct thread_info, and struct task_struct. This is usually at least 20\\ KiB of memory that is always resident. SIZE is the virtual size of the process (code+\\:data+\\:stack)."
+msgstr "ÐŸÐ¾Ð»Ñ SIZE Ñ– RSS не враховують деÑкі чаÑтини процеÑу, зокрема таблиці Ñторінок, Ñтек Ñдра, Ñтруктуру thread_info та Ñтруктуру task_struct. Це, зазвичай, принаймні 20\\ КіБ пам'ÑÑ‚Ñ–, Ñка завжди Ñ” резидентною. SIZE Ñ” віртуальним розміром процеÑу (код+\\:дані+\\:Ñтек)."
+
+#. type: Plain text
+#: ../man/ps.1:794
+msgid "Processes marked E<lt>defunctE<gt> are dead processes (so-called \"zombies\") that remain because their parent has not destroyed them properly. These processes will be destroyed by I<init>(8) if the parent process exits."
+msgstr "ПроцеÑи, Ñкі позначено Ñк E<lt>defunctE<gt>, Ñ” мертвими процеÑами (так званими «зомбі»), Ñкі лишаютьÑÑ, оÑкільки їхній батьківÑький Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ðµ завершив їхню роботу належним чином. Ці процеÑи буде знижено I<init>(8), Ñкщо завершить роботу батьківÑький процеÑ."
+
+#. type: Plain text
+#: ../man/ps.1:798
+msgid "If the length of the username is greater than the width of the display column, the username will be truncated. See the B<-o> and B<-O> formatting options to customize length."
+msgstr "Якщо довжина імені кориÑтувача перевищує ширину Ñтовпчика на диÑплеї, ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача буде обрізано. Ð”Ð»Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¸ ÑкориÑтайтеÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°Ð¼Ð¸ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ B<-o> Ñ– B<-O>."
+
+#. type: Plain text
+#: ../man/ps.1:810
+msgid "Commands options such as B<ps -aux> are not recommended as it is a confusion of two different standards. According to the POSIX and UNIX standards, the above command asks to display all processes with a TTY (generally the commands users are running) plus all processes owned by a user named I<x>. If that user doesn't exist, then B<ps> will assume you really meant \"B<ps> I<aux>\"."
+msgstr "Ðе рекомендуємо кориÑтуватиÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°Ð¼Ð¸ команд, зокрема B<ps -aux>, оÑкільки це призводить до неузгодженоÑÑ‚Ñ– у двох різних Ñтандартах. Відповідно до Ñтандартів POSIX Ñ– UNIX, наведена команда проÑить програму показати уÑÑ– процеÑи з терміналом (загалом, команд, Ñкі запущено кориÑтувачами) Ñ– уÑÑ– процеÑи, влаÑником Ñких Ñ” кориÑтувач із іменем I<x>. Якщо цього кориÑтувача не Ñ–Ñнує, B<ps> припуÑкатиме, що ви наказали виконати «B<ps> I<aux>»."
+
+#. type: SH
+#: ../man/ps.1:810
+#, no-wrap
+msgid "PROCESS FLAGS"
+msgstr "ПРÐПОРЦІ ПРОЦЕСУ"
+
+#. type: Plain text
+#: ../man/ps.1:815
+msgid "The sum of these values is displayed in the \"F\" column, which is provided by the B<flags> output specifier:"
+msgstr "Суму цих значень буде показано у Ñтовпчику «F», Ñкий надаєтьÑÑ Ñпецифікатором Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ B<flags>:"
+
+#. type: Plain text
+#: ../man/ps.1:821
+msgid "forked but didn't exec"
+msgstr "відгалужено, але не виконано"
+
+#. type: IP
+#: ../man/ps.1:821 ../man/ps.1:2088
+#, no-wrap
+msgid "4"
+msgstr "4"
+
+#. type: Plain text
+#: ../man/ps.1:824
+msgid "used super-user privileges"
+msgstr "викориÑтано права доÑтупу ÑуперкориÑтувача"
+
+#. type: SH
+#: ../man/ps.1:826
+#, no-wrap
+msgid "PROCESS STATE CODES"
+msgstr "КОДИ СТÐÐУ ПРОЦЕСІВ"
+
+#. type: Plain text
+#: ../man/ps.1:831
+msgid "Here are the different values that the B<s>, B<stat> and B<state> output specifiers (header \"STAT\" or \"S\") will display to describe the state of a process:"
+msgstr "Тут наведено різні значеннÑ, Ñкі показують Ñпецифікатори Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ B<s>, B<stat> Ñ– B<state> (заголовок «STAT» або «S»), Ð´Ð»Ñ Ð¾Ð¿Ð¸Ñу Ñтану процеÑу:"
+
+#. type: TP
+#: ../man/ps.1:834
+#, no-wrap
+msgid "D"
+msgstr "D"
+
+#. type: Plain text
+#: ../man/ps.1:837
+msgid "uninterruptible sleep (usually IO)"
+msgstr "непридатний до Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ð½Ð½Ñ Ñон (зазвичай, введеннÑ-виведеннÑ)"
+
+#. type: TP
+#: ../man/ps.1:837
+#, no-wrap
+msgid "I"
+msgstr "I"
+
+#. type: Plain text
+#: ../man/ps.1:840
+msgid "Idle kernel thread"
+msgstr "БездіÑльний потік обробки Ñдра"
+
+#. type: tbl table
+#: ../man/ps.1:840 ../man/ps.1:925
+#, no-wrap
+msgid "R"
+msgstr "R"
+
+#. type: Plain text
+#: ../man/ps.1:843
+msgid "running or runnable (on run queue)"
+msgstr "запущено або може бути запущено (у черзі запуÑку)"
+
+#. type: tbl table
+#: ../man/ps.1:843 ../man/ps.1:927 ../man/ps.1:1631 ../man/ps.1:1753
+#, no-wrap
+msgid "S"
+msgstr "S"
+
+#. type: Plain text
+#: ../man/ps.1:846
+msgid "interruptible sleep (waiting for an event to complete)"
+msgstr "придатний до Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ð½Ð½Ñ Ñон (Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¿Ð¾Ð´Ñ–Ñ—)"
+
+#. type: tbl table
+#: ../man/ps.1:846 ../man/ps.1:929
+#, no-wrap
+msgid "T"
+msgstr "T"
+
+#. type: Plain text
+#: ../man/ps.1:849
+msgid "stopped by job control signal"
+msgstr "зупинено Ñигналом ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñми"
+
+#. type: tbl table
+#: ../man/ps.1:849 ../man/ps.1:928
+#, no-wrap
+msgid "t"
+msgstr "t"
+
+#. type: Plain text
+#: ../man/ps.1:852
+msgid "stopped by debugger during the tracing"
+msgstr "зупинено заÑобом діагноÑтики під Ñ‡Ð°Ñ Ñ‚Ñ€Ð°ÑуваннÑ"
+
+#. type: Plain text
+#: ../man/ps.1:855
+msgid "paging (not valid since the 2.6.xx kernel)"
+msgstr "поділ на Ñторінки (не Ñ” чинним з чаÑу Ñдер 2.6.xx)"
+
+#. type: TP
+#: ../man/ps.1:855
+#, no-wrap
+msgid "X"
+msgstr "X"
+
+#. type: Plain text
+#: ../man/ps.1:858
+msgid "dead (should never be seen)"
+msgstr "мертвий (таке не має бути показано)"
+
+#. type: TP
+#: ../man/ps.1:858
+#, no-wrap
+msgid "Z"
+msgstr "Z"
+
+#. type: Plain text
+#: ../man/ps.1:861
+msgid "defunct (\"zombie\") process, terminated but not reaped by its parent"
+msgstr "неробочий Ð¿Ñ€Ð¾Ñ†ÐµÑ («зомбі»), перерваний, але не вилучений його батьківÑьким процеÑом"
+
+#. type: Plain text
+#: ../man/ps.1:867
+msgid "For BSD formats and when the B<stat> keyword is used, additional characters may be displayed:"
+msgstr "Ð”Ð»Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ–Ð² BSD, Ñкщо викориÑтано ключове Ñлово B<stat>, може бути показано додаткові Ñимволи:"
+
+#. type: TP
+#: ../man/ps.1:870
+#, no-wrap
+msgid "E<lt>"
+msgstr "E<lt>"
+
+#. type: Plain text
+#: ../man/ps.1:873
+msgid "high-priority (not nice to other users)"
+msgstr "виÑокопріоритетний (нелоÑльний до інших кориÑтувачів)"
+
+#. type: tbl table
+#: ../man/ps.1:873 ../man/ps.1:920
+#, no-wrap
+msgid "N"
+msgstr "N"
+
+#. type: Plain text
+#: ../man/ps.1:876
+msgid "low-priority (nice to other users)"
+msgstr "низькопріоритетний (лоÑльний до інших кориÑтувачів)"
+
+#. type: TP
+#: ../man/ps.1:876
+#, no-wrap
+msgid "L"
+msgstr "L"
+
+#. type: Plain text
+#: ../man/ps.1:879
+msgid "has pages locked into memory (for real-time and custom IO)"
+msgstr "має заблоковані у пам'ÑÑ‚Ñ– Ñторінки (Ð´Ð»Ñ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€Ñ–Ð² реального чаÑу та нетипових ідентифікаторів)"
+
+#. type: Plain text
+#: ../man/ps.1:882
+msgid "is a session leader"
+msgstr "Ñ” лідером ÑеанÑу"
+
+#. type: Plain text
+#: ../man/ps.1:885
+msgid "is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)"
+msgstr "Ñ” багатопотоковим (викориÑтовує CLONE_THREAD, подібно до того, Ñк це роблÑÑ‚ÑŒ pthreads NPTL)"
+
+#. type: TP
+#: ../man/ps.1:885
+#, no-wrap
+msgid "+"
+msgstr "+"
+
+#. type: Plain text
+#: ../man/ps.1:888
+msgid "is in the foreground process group"
+msgstr "перебуває у групі процеÑів переднього плану"
+
+#. type: SH
+#: ../man/ps.1:890
+#, no-wrap
+msgid "OBSOLETE SORT KEYS"
+msgstr "ЗÐСТÐРІЛІ КЛЮЧІ УПОРЯДКОВУВÐÐÐЯ"
+
+#. type: Plain text
+#: ../man/ps.1:906
+msgid "These keys are used by the BSD B<O> option (when it is used for sorting). The GNU B<--sort> option doesn't use these keys, but the specifiers described below in the B<STANDARD FORMAT SPECIFIERS> section. Note that the values used in sorting are the internal values B<ps> uses and not the \"cooked\" values used in some of the output format fields (e.g. sorting on tty will sort into device number, not according to the terminal name displayed). Pipe B<ps> output into the B<sort>(1) command if you want to sort the cooked values."
+msgstr "Ці ключі викориÑтовують разом із параметром B<O> BSD (Ñкщо його викориÑтовують Ð´Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑдковуваннÑ). Параметр B<--sort> GNU не викориÑтовує ці ключі, але опиÑані нижче Ñпецифікатори з розділу B<СТÐÐДÐРТÐІ СПЕЦИФІКÐТОРИ ФОРМÐТІВ>. Зауважте, що значеннÑ, Ñкі викориÑтано в упорÑдковуванні, Ñ” внутрішніми значеннÑми, Ñкі викориÑтовує B<ps>, а не «оброблені» значеннÑ, Ñкі викориÑтовують у деÑких полÑÑ… Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ (наприклад, у полі термінала упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑÑ Ð·Ð° номером приÑтрою, а не за показаною назвою термінала). Передайте каналом виведені B<ps> дані до програми B<sort>(1), Ñкщо вам хочетьÑÑ ÑƒÐ¿Ð¾Ñ€Ñдкувати дані за обробленими значеннÑми."
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, no-wrap
+msgid "B<KEY>"
+msgstr "B<КЛЮЧ>"
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, no-wrap
+msgid "B<LONG>"
+msgstr "B<ДОВГИЙ>"
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, no-wrap
+msgid "B<DESCRIPTION>"
+msgstr "B<ОПИС>"
+
+#. type: tbl table
+#: ../man/ps.1:909 ../man/ps.1:1161
+#, no-wrap
+msgid "cmd"
+msgstr "cmd"
+
+#. type: tbl table
+#: ../man/ps.1:909
+#, no-wrap
+msgid "simple name of executable"
+msgstr "проÑта назва виконуваного файла"
+
+#. type: tbl table
+#: ../man/ps.1:910 ../man/ps.1:1081
+#, no-wrap
+msgid "C"
+msgstr "C"
+
+#. type: tbl table
+#: ../man/ps.1:910 ../man/ps.1:952 ../man/ps.1:1481
+#, no-wrap
+msgid "pcpu"
+msgstr "pcpu"
+
+#. type: tbl table
+#: ../man/ps.1:910
+#, no-wrap
+msgid "cpu utilization"
+msgstr "викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора"
+
+#. type: tbl table
+#: ../man/ps.1:911 ../man/ps.1:1300
+#, no-wrap
+msgid "f"
+msgstr "f"
+
+#. type: tbl table
+#: ../man/ps.1:911 ../man/ps.1:1326
+#, no-wrap
+msgid "flags"
+msgstr "flags"
+
+#. type: tbl table
+#: ../man/ps.1:911
+#, no-wrap
+msgid "flags as in long format F field"
+msgstr "прапорці, Ñк у довгому форматі Ð¿Ð¾Ð»Ñ F"
+
+#. type: tbl table
+#: ../man/ps.1:912
+#, no-wrap
+msgid "g"
+msgstr "g"
+
+#. type: tbl table
+#: ../man/ps.1:912 ../man/ps.1:1508
+#, no-wrap
+msgid "pgrp"
+msgstr "pgrp"
+
+#. type: tbl table
+#: ../man/ps.1:912
+#, no-wrap
+msgid "process group ID"
+msgstr "ідентифікатор групи процеÑів"
+
+#. type: tbl table
+#: ../man/ps.1:913
+#, no-wrap
+msgid "G"
+msgstr "G"
+
+#. type: tbl table
+#: ../man/ps.1:913 ../man/ps.1:1848
+#, no-wrap
+msgid "tpgid"
+msgstr "tpgid"
+
+#. type: tbl table
+#: ../man/ps.1:913
+#, no-wrap
+msgid "controlling tty process group ID"
+msgstr "ідентифікатор групи процеÑів керівного термінала"
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "j"
+msgstr "j"
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "cutime"
+msgstr "cutime"
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "cumulative user time"
+msgstr "накопичувальний Ñ‡Ð°Ñ ÐºÐ¾Ñ€Ð¸Ñтувача"
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "J"
+msgstr "J"
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "cstime"
+msgstr "cstime"
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "cumulative system time"
+msgstr "накопичувальний Ñ‡Ð°Ñ ÑиÑтеми"
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "k"
+msgstr "k"
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "utime"
+msgstr "utime"
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "user time"
+msgstr "Ñ‡Ð°Ñ ÐºÐ¾Ñ€Ð¸Ñтувача"
+
+#. type: tbl table
+#: ../man/ps.1:917
+#, no-wrap
+msgid "m"
+msgstr "m"
+
+#. type: tbl table
+#: ../man/ps.1:917 ../man/ps.1:1419
+#, no-wrap
+msgid "min_flt"
+msgstr "min_flt"
+
+#. type: tbl table
+#: ../man/ps.1:917
+#, no-wrap
+msgid "number of minor page faults"
+msgstr "кількіÑÑ‚ÑŒ вторинних помилок Ñторінок"
+
+#. type: tbl table
+#: ../man/ps.1:918
+#, no-wrap
+msgid "M"
+msgstr "M"
+
+#. type: tbl table
+#: ../man/ps.1:918 ../man/ps.1:1415
+#, no-wrap
+msgid "maj_flt"
+msgstr "maj_flt"
+
+#. type: tbl table
+#: ../man/ps.1:918
+#, no-wrap
+msgid "number of major page faults"
+msgstr "кількіÑÑ‚ÑŒ первинних помилок Ñторінок"
+
+#. type: tbl table
+#: ../man/ps.1:919
+#, no-wrap
+msgid "cmin_flt"
+msgstr "cmin_flt"
+
+#. type: tbl table
+#: ../man/ps.1:919
+#, no-wrap
+msgid "cumulative minor page faults"
+msgstr "накопичені вторинні помилки Ñторінок"
+
+#. type: tbl table
+#: ../man/ps.1:920
+#, no-wrap
+msgid "cmaj_flt"
+msgstr "cmaj_flt"
+
+#. type: tbl table
+#: ../man/ps.1:920
+#, no-wrap
+msgid "cumulative major page faults"
+msgstr "накопичені оÑновні помилки Ñторінок"
+
+#. type: tbl table
+#: ../man/ps.1:921
+#, no-wrap
+msgid "session"
+msgstr "session"
+
+#. type: tbl table
+#: ../man/ps.1:921
+#, no-wrap
+msgid "session ID"
+msgstr "ідентифікатор ÑеанÑу"
+
+#. type: tbl table
+#: ../man/ps.1:922 ../man/ps.1:960 ../man/ps.1:1515
+#, no-wrap
+msgid "pid"
+msgstr "pid"
+
+#. type: tbl table
+#: ../man/ps.1:922
+#, no-wrap
+msgid "process ID"
+msgstr "ідентифікатор процеÑу"
+
+#. type: tbl table
+#: ../man/ps.1:923 ../man/ps.1:1657
+#, no-wrap
+msgid "P"
+msgstr "P"
+
+#. type: tbl table
+#: ../man/ps.1:923 ../man/ps.1:954 ../man/ps.1:1559
+#, no-wrap
+msgid "ppid"
+msgstr "ppid"
+
+#. type: tbl table
+#: ../man/ps.1:923
+#, no-wrap
+msgid "parent process ID"
+msgstr "ідентифікатор батьківÑького процеÑу"
+
+#. type: tbl table
+#: ../man/ps.1:924
+#, no-wrap
+msgid "r"
+msgstr "r"
+
+#. type: tbl table
+#: ../man/ps.1:924 ../man/ps.1:1598
+#, no-wrap
+msgid "rss"
+msgstr "rss"
+
+#. type: tbl table
+#: ../man/ps.1:924
+#, no-wrap
+msgid "resident set size"
+msgstr "розмір оперативного набору"
+
+#. type: tbl table
+#: ../man/ps.1:925
+#, no-wrap
+msgid "resident"
+msgstr "resident"
+
+#. type: tbl table
+#: ../man/ps.1:925
+#, no-wrap
+msgid "resident pages"
+msgstr "Ñторінки у резидентній пам'ÑÑ‚Ñ–"
+
+#. type: tbl table
+#: ../man/ps.1:926 ../man/ps.1:1707
+#, no-wrap
+msgid "size"
+msgstr "size"
+
+#. type: tbl table
+#: ../man/ps.1:926
+#, no-wrap
+msgid "memory size in kilobytes"
+msgstr "розмір пам'ÑÑ‚Ñ– у кілобайтах"
+
+#. type: tbl table
+#: ../man/ps.1:927
+#, no-wrap
+msgid "share"
+msgstr "share"
+
+#. type: tbl table
+#: ../man/ps.1:927
+#, no-wrap
+msgid "amount of shared pages"
+msgstr "кількіÑÑ‚ÑŒ Ñторінок Ñпільного викориÑтаннÑ"
+
+#. type: tbl table
+#: ../man/ps.1:928 ../man/ps.1:965 ../man/ps.1:1862
+#, no-wrap
+msgid "tty"
+msgstr "tty"
+
+#. type: tbl table
+#: ../man/ps.1:928
+#, no-wrap
+msgid "the device number of the controlling tty"
+msgstr "номер приÑтрою керівного термінала"
+
+#. type: tbl table
+#: ../man/ps.1:929 ../man/ps.1:1736
+#, no-wrap
+msgid "start_time"
+msgstr "start_time"
+
+#. type: tbl table
+#: ../man/ps.1:929
+#, no-wrap
+msgid "time process was started"
+msgstr "момент чаÑу, коли Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±ÑƒÐ»Ð¾ запущено"
+
+#. type: tbl table
+#: ../man/ps.1:930
+#, no-wrap
+msgid "U"
+msgstr "U"
+
+#. type: tbl table
+#: ../man/ps.1:930 ../man/ps.1:1881
+#, no-wrap
+msgid "uid"
+msgstr "uid"
+
+#. type: tbl table
+#: ../man/ps.1:930
+#, no-wrap
+msgid "user ID number"
+msgstr "номер ідентифікатора кориÑтувача"
+
+#. type: tbl table
+#: ../man/ps.1:931 ../man/ps.1:955 ../man/ps.1:1900
+#, no-wrap
+msgid "user"
+msgstr "кориÑтувач"
+
+#. type: tbl table
+#: ../man/ps.1:931
+#, no-wrap
+msgid "user name"
+msgstr "Ñ–Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача"
+
+#. type: tbl table
+#: ../man/ps.1:932 ../man/ps.1:1929
+#, no-wrap
+msgid "vsize"
+msgstr "vsize"
+
+#. type: tbl table
+#: ../man/ps.1:932
+#, no-wrap
+msgid "total VM size in KiB"
+msgstr "загальний розмір ВМ у КіБ"
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "y"
+msgstr "y"
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "priority"
+msgstr "priority"
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "kernel scheduling priority"
+msgstr "пріоритетніÑÑ‚ÑŒ Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ Ñдрі"
+
+#. type: SH
+#: ../man/ps.1:936
+#, no-wrap
+msgid "AIX FORMAT DESCRIPTORS"
+msgstr "ДЕСКРИПТОРИ ФОРМÐТУ AIX"
+
+#. type: Plain text
+#: ../man/ps.1:949
+msgid "This B<ps> supports AIX format descriptors, which work somewhat like the formatting codes of I<printf>(1) and I<printf>(3). For example, the normal default output can be produced with this: B<ps -eo \"%p %y %x %c\">. The B<NORMAL> codes are described in the next section."
+msgstr "У цій верÑÑ–Ñ— B<ps> передбачено підтримку деÑкрипторів форматів AIX, Ñкі працюють дещо подібно до кодів Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ I<printf>(1) Ñ– I<printf>(3). Ðаприклад, звичайне типове Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° отримати оÑÑŒ так: B<ps -eo \"%p %y %x %c\">. Коди B<NORMAL> опиÑано у наÑтупному розділі."
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<CODE>"
+msgstr "B<CODE>"
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<NORMAL>"
+msgstr "B<NORMAL>"
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<HEADER>"
+msgstr "B<HEADER>"
+
+#. type: tbl table
+#: ../man/ps.1:952
+#, no-wrap
+msgid "%C"
+msgstr "%C"
+
+#. type: tbl table
+#: ../man/ps.1:952 ../man/ps.1:1004 ../man/ps.1:1481
+#, no-wrap
+msgid "%CPU"
+msgstr "%CPU"
+
+#. type: tbl table
+#: ../man/ps.1:953
+#, no-wrap
+msgid "%G"
+msgstr "%G"
+
+#. type: tbl table
+#: ../man/ps.1:953 ../man/ps.1:1355
+#, no-wrap
+msgid "group"
+msgstr "group"
+
+#. type: tbl table
+#: ../man/ps.1:953 ../man/ps.1:1355
+#, no-wrap
+msgid "GROUP"
+msgstr "GROUP"
+
+#. type: tbl table
+#: ../man/ps.1:954
+#, no-wrap
+msgid "%P"
+msgstr "%P"
+
+#. type: tbl table
+#: ../man/ps.1:954 ../man/ps.1:1559
+#, no-wrap
+msgid "PPID"
+msgstr "PPID"
+
+#. type: tbl table
+#: ../man/ps.1:955
+#, no-wrap
+msgid "%U"
+msgstr "%U"
+
+#. type: tbl table
+#: ../man/ps.1:955 ../man/ps.1:1888 ../man/ps.1:1900
+#, no-wrap
+msgid "USER"
+msgstr "USER"
+
+#. type: tbl table
+#: ../man/ps.1:956
+#, no-wrap
+msgid "%a"
+msgstr "%a"
+
+#. type: tbl table
+#: ../man/ps.1:956 ../man/ps.1:1027
+#, no-wrap
+msgid "args"
+msgstr "args"
+
+#. type: tbl table
+#: ../man/ps.1:956 ../man/ps.1:957 ../man/ps.1:1027 ../man/ps.1:1168
+#: ../man/ps.1:1196 ../man/ps.1:1333 ../man/ps.1:1874
+#, no-wrap
+msgid "COMMAND"
+msgstr "КОМÐÐДÐ"
+
+#. type: tbl table
+#: ../man/ps.1:957
+#, no-wrap
+msgid "%c"
+msgstr "%c"
+
+#. type: tbl table
+#: ../man/ps.1:957 ../man/ps.1:1168
+#, no-wrap
+msgid "comm"
+msgstr "comm"
+
+#. type: tbl table
+#: ../man/ps.1:958
+#, no-wrap
+msgid "%g"
+msgstr "%g"
+
+#. type: tbl table
+#: ../man/ps.1:958 ../man/ps.1:1588
+#, no-wrap
+msgid "rgroup"
+msgstr "rgroup"
+
+#. type: tbl table
+#: ../man/ps.1:958 ../man/ps.1:1588
+#, no-wrap
+msgid "RGROUP"
+msgstr "RGROUP"
+
+#. type: tbl table
+#: ../man/ps.1:959
+#, no-wrap
+msgid "%n"
+msgstr "%n"
+
+#. type: tbl table
+#: ../man/ps.1:959 ../man/ps.1:1443
+#, no-wrap
+msgid "nice"
+msgstr "nice"
+
+#. type: tbl table
+#: ../man/ps.1:959 ../man/ps.1:1435 ../man/ps.1:1443
+#, no-wrap
+msgid "NI"
+msgstr "NI"
+
+#. type: tbl table
+#: ../man/ps.1:960
+#, no-wrap
+msgid "%p"
+msgstr "%p"
+
+#. type: tbl table
+#: ../man/ps.1:960 ../man/ps.1:1515
+#, no-wrap
+msgid "PID"
+msgstr "PID"
+
+#. type: tbl table
+#: ../man/ps.1:961
+#, no-wrap
+msgid "%r"
+msgstr "%r"
+
+#. type: tbl table
+#: ../man/ps.1:961 ../man/ps.1:1502
+#, no-wrap
+msgid "pgid"
+msgstr "pgid"
+
+#. type: tbl table
+#: ../man/ps.1:961 ../man/ps.1:1502
+#, no-wrap
+msgid "PGID"
+msgstr "PGID"
+
+#. type: tbl table
+#: ../man/ps.1:962
+#, no-wrap
+msgid "%t"
+msgstr "%t"
+
+#. type: tbl table
+#: ../man/ps.1:962 ../man/ps.1:1271
+#, no-wrap
+msgid "etime"
+msgstr "etime"
+
+#. type: tbl table
+#: ../man/ps.1:962 ../man/ps.1:1271 ../man/ps.1:1275
+#, no-wrap
+msgid "ELAPSED"
+msgstr "ELAPSED"
+
+#. type: tbl table
+#: ../man/ps.1:963
+#, no-wrap
+msgid "%u"
+msgstr "%u"
+
+#. type: tbl table
+#: ../man/ps.1:963 ../man/ps.1:1626
+#, no-wrap
+msgid "ruser"
+msgstr "ruser"
+
+#. type: tbl table
+#: ../man/ps.1:963 ../man/ps.1:1626
+#, no-wrap
+msgid "RUSER"
+msgstr "RUSER"
+
+#. type: tbl table
+#: ../man/ps.1:964
+#, no-wrap
+msgid "%x"
+msgstr "%x"
+
+#. type: tbl table
+#: ../man/ps.1:964 ../man/ps.1:1827
+#, no-wrap
+msgid "time"
+msgstr "time"
+
+#. type: tbl table
+#: ../man/ps.1:964 ../man/ps.1:1075 ../man/ps.1:1208 ../man/ps.1:1213
+#: ../man/ps.1:1827 ../man/ps.1:1838
+#, no-wrap
+msgid "TIME"
+msgstr "TIME"
+
+#. type: tbl table
+#: ../man/ps.1:965
+#, no-wrap
+msgid "%y"
+msgstr "%y"
+
+#. type: tbl table
+#: ../man/ps.1:965 ../man/ps.1:1843
+#, no-wrap
+msgid "TTY"
+msgstr "TTY"
+
+#. type: tbl table
+#: ../man/ps.1:966
+#, no-wrap
+msgid "%z"
+msgstr "%z"
+
+#. type: tbl table
+#: ../man/ps.1:966 ../man/ps.1:1936
+#, no-wrap
+msgid "vsz"
+msgstr "vsz"
+
+#. type: tbl table
+#: ../man/ps.1:966 ../man/ps.1:1929 ../man/ps.1:1936
+#, no-wrap
+msgid "VSZ"
+msgstr "VSZ"
+
+#. type: SH
+#: ../man/ps.1:968
+#, no-wrap
+msgid "STANDARD FORMAT SPECIFIERS"
+msgstr "СТÐÐДÐРТÐІ СПЕЦИФІКÐТОРИ ФОРМÐТІВ"
+
+#. type: Plain text
+#: ../man/ps.1:975
+msgid "Here are the different keywords that may be used to control the output format (e.g., with option B<-o>) or to sort the selected processes with the GNU-style B<--sort> option."
+msgstr "Ðижче наведено різні ключові Ñлова, Ñкими можна ÑкориÑтатиÑÑ Ð´Ð»Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ð¾Ð¼ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ (наприклад, з параметром B<-o>) або упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð±Ñ€Ð°Ð½Ð¸Ñ… процеÑів за допомогою параметра B<--sort> у Ñтилі GNU."
+
+#. type: Plain text
+#: ../man/ps.1:978
+msgid "For example: B<ps -eo pid,\\:user,\\:args --sort user>"
+msgstr "Приклад: B<ps -eo pid,\\:user,\\:args --sort user>"
+
+#. type: Plain text
+#: ../man/ps.1:983
+msgid "This version of B<ps> tries to recognize most of the keywords used in other implementations of B<ps>."
+msgstr "У цій верÑÑ–Ñ— B<ps> виконано Ñпробу реалізувати Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð²Ð°Ð½Ð½Ñ Ð±Ñ–Ð»ÑŒÑˆÐ¾ÑÑ‚Ñ– ключових Ñлів, Ñкі викориÑтовують у інших реалізаціÑÑ… B<ps>."
+
+#. type: Plain text
+#: ../man/ps.1:988
+msgid "The following user-defined format specifiers may contain spaces: B<args>, B<cmd>, B<comm>, B<command>, B<fname>, B<ucmd>, B<ucomm>, B<lstart>, B<bsdstart>, B<start>."
+msgstr "Пробіли можуть міÑтитиÑÑ Ñƒ таких визначених кориÑтувачем Ñпецифікаторах форматів: B<args>,B<cmd>,B<comm>,B<command>,B<fname>,B<ucmd>,B<ucomm>, B<lstart>,B<bsdstart>,B<start>."
+
+#. type: Plain text
+#: ../man/ps.1:990
+msgid "Some keywords may not be available for sorting."
+msgstr "ДеÑкими ключовими Ñловами не можна ÑкориÑтатиÑÑ Ð´Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑдковуваннÑ."
+
+#. type: tbl table
+#: ../man/ps.1:1002
+#, no-wrap
+msgid "CODE"
+msgstr "CODE"
+
+#. type: tbl table
+#: ../man/ps.1:1002
+#, no-wrap
+msgid "HEADER"
+msgstr "HEADER"
+
+#. type: tbl table
+#: ../man/ps.1:1004
+#, no-wrap
+msgid "%cpu"
+msgstr "%cpu"
+
+#. type: tbl table
+#: ../man/ps.1:1010
+#, no-wrap
+msgid ""
+"cpu utilization of the process in \"##.#\" format. Currently, it is the CPU\n"
+"time used divided by the time the process has been running (cputime/realtime\n"
+"ratio), expressed as a percentage. It will not add up to 100% unless you are\n"
+"lucky. (alias\n"
+"B<pcpu>)."
+msgstr "викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑом процеÑора у форматі «##.#». У поточній верÑÑ–Ñ— це чаÑтка від Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Ð²Ð¸Ñ‚Ñ€Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ на Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу чаÑу на чаÑ, протÑгом Ñкого Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¿Ñ€Ð°Ñ†ÑŽÑ” (Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Â«Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора/Ñправжній чаÑ»), виражене у відÑотках. Дуже чаÑто загальна Ñума таких значень Ñ” меншою за 100% (альтернатива — B<pcpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1012
+#, no-wrap
+msgid "%mem"
+msgstr "%mem"
+
+#. type: tbl table
+#: ../man/ps.1:1012 ../man/ps.1:1526
+#, no-wrap
+msgid "%MEM"
+msgstr "%MEM"
+
+#. type: tbl table
+#: ../man/ps.1:1016
+#, no-wrap
+msgid ""
+"ratio of the process's resident set size to the physical memory on the\n"
+"machine, expressed as a percentage. (alias\n"
+"B<pmem>)."
+msgstr "Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ резидентного набору процеÑу до фізичної пам'ÑÑ‚Ñ– комп'ютера, виражене у відÑотках (альтернатива — B<pmem>)."
+
+#. type: tbl table
+#: ../man/ps.1:1018
+#, no-wrap
+msgid "ag_id"
+msgstr "ag_id"
+
+#. type: tbl table
+#: ../man/ps.1:1018
+#, no-wrap
+msgid "AGID"
+msgstr "AGID"
+
+#. type: tbl table
+#: ../man/ps.1:1021
+#, no-wrap
+msgid ""
+"The autogroup identifier associated with a process which operates in conjunction\n"
+"with the CFS scheduler to improve interactive desktop performance."
+msgstr "Ідентифікатор автогрупи, Ñкий пов'Ñзано із процеÑом, що працює у поєднанні із планувальником CFS Ð´Ð»Ñ ÑƒÐ´Ð¾ÑÐºÐ¾Ð½Ð°Ð»ÐµÐ½Ð½Ñ ÑˆÐ²Ð¸Ð´ÐºÐ¾Ð´Ñ–Ñ— інтерактивної Ñтільниці."
+
+#. type: tbl table
+#: ../man/ps.1:1023
+#, no-wrap
+msgid "ag_nice"
+msgstr "ag_nice"
+
+#. type: tbl table
+#: ../man/ps.1:1023
+#, no-wrap
+msgid "AGNI"
+msgstr "AGNI"
+
+#. type: tbl table
+#: ../man/ps.1:1025
+#, no-wrap
+msgid "The autogroup nice value which affects scheduling of all processes in that group."
+msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– автогрупи, Ñке ÑтоÑуєтьÑÑ Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÑÑ–Ñ… процеÑів у цій групі."
+
+#. type: tbl table
+#: ../man/ps.1:1042
+#, no-wrap
+msgid ""
+"command with all its arguments as a string. Modifications to the arguments\n"
+"may be shown. The output in this column may contain spaces. A process\n"
+"marked E<lt>defunctE<gt> is partly dead, waiting to be fully destroyed by its parent.\n"
+"Sometimes the process args will be unavailable; when this happens,\n"
+"B<ps>\n"
+"will instead print the executable name in brackets. (alias\n"
+"B<cmd>, B<command>).\n"
+"See also the\n"
+"B<comm>\n"
+"format keyword, the\n"
+"B<-f>\n"
+"option, and the\n"
+"B<c>\n"
+"option.\n"
+msgstr ""
+"команда із уÑіма аргументами Ñк Ñ€Ñдок.\n"
+"Може бути показано зміни у аргументах.\n"
+"Виведені до цього Ñтовпчика дані можуть міÑтити пробіли.\n"
+"ПроцеÑ, Ñкий позначено запиÑом E<lt>defunctE<gt> Ñ” чаÑтково мертвим,\n"
+"таким, що очікує на повне Ð·Ð½Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð±Ð°Ñ‚ÑŒÐºÑ–Ð²Ñьким процеÑом.\n"
+"Іноді аргументи процеÑу можуть виÑвитиÑÑ Ð½ÐµÐ´Ð¾Ñтупними. Коли таке траплÑєтьÑÑ,\n"
+"B<ps>\n"
+"виведе назву виконуваного файла у квадратних дужках (альтернатива – B<cmd>, B<command>).\n"
+"Див. також ключове Ñлово Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ B<comm>, параметр B<-f> та параметр B<c>.\n"
+
+#. type: tbl table
+#: ../man/ps.1:1042 ../man/ps.1:1116 ../man/ps.1:1118 ../man/ps.1:1120
+#: ../man/ps.1:1122 ../man/ps.1:1124 ../man/ps.1:1126 ../man/ps.1:1128
+#: ../man/ps.1:1130 ../man/ps.1:1142 ../man/ps.1:1144 ../man/ps.1:1146
+#: ../man/ps.1:1148 ../man/ps.1:1150 ../man/ps.1:1152 ../man/ps.1:1154
+#: ../man/ps.1:1156 ../man/ps.1:1180 ../man/ps.1:1540 ../man/ps.1:1542
+#: ../man/ps.1:1544 ../man/ps.1:1546 ../man/ps.1:1548 ../man/ps.1:1550
+#: ../man/ps.1:1552 ../man/ps.1:1554
+#, no-wrap
+msgid ".br\n"
+msgstr ".br\n"
+
+#. type: tbl table
+#: ../man/ps.1:1058
+#, no-wrap
+msgid ""
+"When specified last, this column will extend to the edge of the display. If\n"
+"B<ps>\n"
+"can not determine display width, as when output is redirected (piped) into a\n"
+"file or another command, the output width is undefined (it may be 80,\n"
+"unlimited, determined by the\n"
+"B<TERM>\n"
+"variable, and so on). The\n"
+"B<COLUMNS>\n"
+"environment variable or\n"
+"B<--cols>\n"
+"option may be used to exactly determine the width in this case. The\n"
+"B<w>\n"
+"or\n"
+"B<-w>\n"
+"option may be also be used to adjust width."
+msgstr "Якщо вказано оÑтаннім, цей Ñтовпчик буде розтÑгнуто до краю диÑплеÑ. Якщо B<ps> не вдаÑÑ‚ÑŒÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ ширину диÑплеÑ, наприклад, коли виведені дані буде переÑпрÑмовано (каналом) до файла або іншої програми, ширина Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð·Ð°Ð»Ð¸ÑˆÐ¸Ñ‚ÑŒÑÑ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ÑŽ (вона може дорівнювати 80, бути необмеженою, визначатиÑÑ Ð·Ð¼Ñ–Ð½Ð½Ð¾ÑŽ B<TERM> тощо). У цьому випадку Ð´Ð»Ñ Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ð¸ показу можна ÑкориÑтатиÑÑ Ð·Ð¼Ñ–Ð½Ð½Ð¾ÑŽ Ñередовища B<COLUMNS> або параметром B<--cols>. Ð”Ð»Ñ ÐºÐ¾Ñ€Ð¸Ð³ÑƒÐ²Ð°Ð½Ð½Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ð¸ також можна ÑкориÑтатиÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ B<w> або B<-w>."
+
+#. type: tbl table
+#: ../man/ps.1:1060
+#, no-wrap
+msgid "blocked"
+msgstr "blocked"
+
+#. type: tbl table
+#: ../man/ps.1:1060 ../man/ps.1:1700
+#, no-wrap
+msgid "BLOCKED"
+msgstr "BLOCKED"
+
+#. type: tbl table
+#: ../man/ps.1:1066
+#, no-wrap
+msgid ""
+"mask of the blocked signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64-bit mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_block>, B<sigmask>)."
+msgstr "маÑка блокованих Ñигналів, див. I<signal>(7). Відповідно до ширини полÑ, буде показано 32- або 64-бітову маÑку у шіÑтнадцÑтковому форматі, Ñкщо не викориÑтано параметр B<--signames> (альтернатива – B<sig_block>, B<sigmask>)."
+
+#. type: tbl table
+#: ../man/ps.1:1068
+#, no-wrap
+msgid "bsdstart"
+msgstr "bsdstart"
+
+#. type: tbl table
+#: ../man/ps.1:1068 ../man/ps.1:1736
+#, no-wrap
+msgid "START"
+msgstr "START"
+
+#. type: tbl table
+#: ../man/ps.1:1073
+#, no-wrap
+msgid ""
+"time the command started. If the process was started less than 24 hours ago,\n"
+"the output format is \"\\ HH:MM\", else it is \" Mmm:SS\" (where Mmm is the three\n"
+"letters of the month). See also\n"
+"B<lstart>,B<\\ start>,B<\\ start_time>, andB<\\ stime>."
+msgstr "Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку команди Якщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±ÑƒÐ»Ð¾ запущено менше ніж 24 години тому, буде виведено дані у форматі «ГГ:ХХ», інакше, дані буде виведено у форматі « Ммм дд» (де «Ммм» — трилітерне ÑÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸ міÑÑцÑ). Див. також B<lstart>, B<start>, B<start_time> Ñ– B<stime>."
+
+#. type: tbl table
+#: ../man/ps.1:1075
+#, no-wrap
+msgid "bsdtime"
+msgstr "bsdtime"
+
+#. type: tbl table
+#: ../man/ps.1:1079
+#, no-wrap
+msgid ""
+"accumulated cpu time, user + system. The display format is usually\n"
+"\"MMM:SS\", but can be shifted to the right if the process used more than 999\n"
+"minutes of cpu time."
+msgstr "накопичувальний Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора, кориÑтувач + ÑиÑтема. Форматом показу, зазвичай, Ñ” «ХХХ:СС», але його можна поÑунути праворуч, Ñкщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñтав понад 999 хвилин чаÑу процеÑора."
+
+#. type: tbl table
+#: ../man/ps.1:1085
+#, no-wrap
+msgid ""
+"processor utilization. Currently, this is the integer value of the percent\n"
+"usage over the lifetime of the process. (see\n"
+"B<%cpu>)."
+msgstr "викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора. У поточній верÑÑ–Ñ— це ціле Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ відÑотках викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора до чаÑу Ð¶Ð¸Ñ‚Ñ‚Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу (див. B<%cpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1087
+#, no-wrap
+msgid "caught"
+msgstr "caught"
+
+#. type: tbl table
+#: ../man/ps.1:1087 ../man/ps.1:1686
+#, no-wrap
+msgid "CAUGHT"
+msgstr "CAUGHT"
+
+#. type: tbl table
+#: ../man/ps.1:1093
+#, no-wrap
+msgid ""
+"mask of the caught signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64 bits mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_catch>, B<sigcatch>)."
+msgstr "маÑка перехоплених, див. I<signal>(7). Відповідно до ширини полÑ, буде показано 32- або 64-бітову маÑку у шіÑтнадцÑтковому форматі, Ñкщо не викориÑтано параметр B<--signames> (альтернатива – B<sig_catch>, B<sigcatch>)."
+
+#. type: tbl table
+#: ../man/ps.1:1095
+#, no-wrap
+msgid "cgname"
+msgstr "cgname"
+
+#. type: tbl table
+#: ../man/ps.1:1095
+#, no-wrap
+msgid "CGNAME"
+msgstr "CGNAME"
+
+#. type: tbl table
+#: ../man/ps.1:1097
+#, no-wrap
+msgid "display name of control groups to which the process belongs."
+msgstr "назва керівних груп диÑплеÑ, до Ñких належить процеÑ."
+
+#. type: tbl table
+#: ../man/ps.1:1099
+#, no-wrap
+msgid "cgroup"
+msgstr "cgroup"
+
+#. type: tbl table
+#: ../man/ps.1:1099
+#, no-wrap
+msgid "CGROUP"
+msgstr "CGROUP"
+
+#. type: tbl table
+#: ../man/ps.1:1101
+#, no-wrap
+msgid "display control groups to which the process belongs."
+msgstr "керівні групи диÑплеÑ, до Ñких належить процеÑ."
+
+#. type: tbl table
+#: ../man/ps.1:1103
+#, no-wrap
+msgid "cgroupns"
+msgstr "cgroupns"
+
+#. type: tbl table
+#: ../man/ps.1:1103
+#, no-wrap
+msgid "CGROUPNS"
+msgstr "CGROUPNS"
+
+#. type: tbl table
+#: ../man/ps.1:1107 ../man/ps.1:1374 ../man/ps.1:1427 ../man/ps.1:1433
+#: ../man/ps.1:1524 ../man/ps.1:1836 ../man/ps.1:1911 ../man/ps.1:1922
+#, no-wrap
+msgid ""
+"Unique inode number describing the namespace the process belongs to.\n"
+"See\n"
+"I<namespaces>(7)."
+msgstr "Унікальний номер inode, що опиÑує проÑÑ‚Ñ–Ñ€ назв, до Ñкого належить процеÑ. Див. I<namespaces>(7)."
+
+#. type: tbl table
+#: ../man/ps.1:1109
+#, no-wrap
+msgid "class"
+msgstr "class"
+
+#. type: tbl table
+#: ../man/ps.1:1109 ../man/ps.1:1135
+#, no-wrap
+msgid "CLS"
+msgstr "CLS"
+
+#. type: tbl table
+#: ../man/ps.1:1113 ../man/ps.1:1139
+#, no-wrap
+msgid ""
+"scheduling class of the process. (alias\n"
+"B<policy>, B<cls>).\n"
+"Field's possible values are:\n"
+msgstr "ÐºÐ»Ð°Ñ Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу. (альтернатива — B<policy>, B<cls>). Можливими значеннÑми Ð¿Ð¾Ð»Ñ Ñ” такі:\n"
+
+#. type: tbl table
+#: ../man/ps.1:1113 ../man/ps.1:1139 ../man/ps.1:1537
+#, no-wrap
+msgid ".sp 1\n"
+msgstr ".sp 1\n"
+
+#. type: tbl table
+#: ../man/ps.1:1114 ../man/ps.1:1140 ../man/ps.1:1538
+#, no-wrap
+msgid ".in +9n\n"
+msgstr ".in +9n\n"
+
+#. type: tbl table
+#: ../man/ps.1:1116 ../man/ps.1:1142 ../man/ps.1:1540
+#, no-wrap
+msgid "-\tnot reported\n"
+msgstr "-\tне повідомлено\n"
+
+#. type: tbl table
+#: ../man/ps.1:1118 ../man/ps.1:1144 ../man/ps.1:1542
+#, no-wrap
+msgid "TS\tSCHED_OTHER\n"
+msgstr "TS\tSCHED_OTHER\n"
+
+#. type: tbl table
+#: ../man/ps.1:1120 ../man/ps.1:1146 ../man/ps.1:1544
+#, no-wrap
+msgid "FF\tSCHED_FIFO\n"
+msgstr "FF\tSCHED_FIFO\n"
+
+#. type: tbl table
+#: ../man/ps.1:1122 ../man/ps.1:1148 ../man/ps.1:1546
+#, no-wrap
+msgid "RR\tSCHED_RR\n"
+msgstr "RR\tSCHED_RR\n"
+
+#. type: tbl table
+#: ../man/ps.1:1124 ../man/ps.1:1150 ../man/ps.1:1548
+#, no-wrap
+msgid "B\tSCHED_BATCH\n"
+msgstr "B\tSCHED_BATCH\n"
+
+#. type: tbl table
+#: ../man/ps.1:1126 ../man/ps.1:1152 ../man/ps.1:1550
+#, no-wrap
+msgid "ISO\tSCHED_ISO\n"
+msgstr "ISO\tSCHED_ISO\n"
+
+#. type: tbl table
+#: ../man/ps.1:1128 ../man/ps.1:1154 ../man/ps.1:1552
+#, no-wrap
+msgid "IDL\tSCHED_IDLE\n"
+msgstr "IDL\tSCHED_IDLE\n"
+
+#. type: tbl table
+#: ../man/ps.1:1130 ../man/ps.1:1156 ../man/ps.1:1554
+#, no-wrap
+msgid "DLN\tSCHED_DEADLINE\n"
+msgstr "DLN\tSCHED_DEADLINE\n"
+
+#. type: tbl table
+#: ../man/ps.1:1132 ../man/ps.1:1158 ../man/ps.1:1556
+#, no-wrap
+msgid "?\tunknown value\n"
+msgstr "?\tневідоме значеннÑ\n"
+
+#. type: tbl table
+#: ../man/ps.1:1132 ../man/ps.1:1158 ../man/ps.1:1556
+#, no-wrap
+msgid ".in\n"
+msgstr ".in\n"
+
+#. type: tbl table
+#: ../man/ps.1:1135
+#, no-wrap
+msgid "cls"
+msgstr "cls"
+
+#. type: tbl table
+#: ../man/ps.1:1161 ../man/ps.1:1867
+#, no-wrap
+msgid "CMD"
+msgstr "CMD"
+
+#. type: tbl table
+#: ../man/ps.1:1166
+#, no-wrap
+msgid ""
+"see\n"
+"B<args>.\n"
+"(alias\n"
+"B<args>, B<command>)."
+msgstr ""
+"див.\n"
+"B<args>\n"
+"(альтернатива –\n"
+"B<args>, B<command>)."
+
+#. type: tbl table
+#: ../man/ps.1:1180
+#, no-wrap
+msgid ""
+"command name (only the executable name). The output in this column may\n"
+"contain spaces.\n"
+"(alias\n"
+"B<ucmd>, B<ucomm>).\n"
+"See also the\n"
+"B<args>\n"
+"format keyword, the\n"
+"B<-f>\n"
+"option, and the\n"
+"B<c>\n"
+"option.\n"
+msgstr "назва команди (лише назва виконуваного файла). Виведені до цього Ñтовпчика дані можуть міÑтити пробіли. (альтернативи – B<ucmd>, B<ucomm>). Див. також ключове Ñлово Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ B<args>, параметр B<-f> та параметр B<c>.\n"
+
+#. type: tbl table
+#: ../man/ps.1:1194
+#, no-wrap
+msgid ""
+"When specified last, this column will extend to the edge of the display. If\n"
+"B<ps>\n"
+"can not determine display width, as when output is redirected (piped) into a\n"
+"file or another command, the output width is undefined (it may be 80,\n"
+"unlimited, determined by the\n"
+"B<TERM>\n"
+"variable, and so on). The\n"
+"B<COLUMNS>\n"
+"environment variable or\n"
+"B<--cols>\n"
+"option may be used to exactly determine the width in this case. The\n"
+"B<w>\\ orB<\\ -w>\n"
+"option may be also be used to adjust width."
+msgstr "Якщо вказано оÑтаннім, цей Ñтовпчик буде розтÑгнуто до краю диÑплеÑ. Якщо B<ps> не вдаÑÑ‚ÑŒÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ ширину диÑплеÑ, наприклад, коли виведені дані буде переÑпрÑмовано (каналом) до файла або іншої програми, ширина Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð·Ð°Ð»Ð¸ÑˆÐ¸Ñ‚ÑŒÑÑ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ÑŽ (вона може дорівнювати 80, бути необмеженою, визначатиÑÑ Ð·Ð¼Ñ–Ð½Ð½Ð¾ÑŽ B<TERM> тощо). У цьому випадку Ð´Ð»Ñ Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ð¸ показу можна ÑкориÑтатиÑÑ Ð·Ð¼Ñ–Ð½Ð½Ð¾ÑŽ Ñередовища B<COLUMNS> або параметром B<--cols>. Ð”Ð»Ñ ÐºÐ¾Ñ€Ð¸Ð³ÑƒÐ²Ð°Ð½Ð½Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ð¸ також можна ÑкориÑтатиÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ B<w> або B<-w>."
+
+#. type: tbl table
+#: ../man/ps.1:1196
+#, no-wrap
+msgid "command"
+msgstr "command"
+
+#. type: tbl table
+#: ../man/ps.1:1201
+#, no-wrap
+msgid ""
+"See\n"
+"B<args>.\n"
+"(alias\n"
+"B<args>, B<command>)."
+msgstr ""
+"Див.\n"
+"B<args>.\n"
+"(альтернатива –\n"
+"B<args>, B<command>)."
+
+#. type: tbl table
+#: ../man/ps.1:1203
+#, no-wrap
+msgid "cp"
+msgstr "cp"
+
+#. type: tbl table
+#: ../man/ps.1:1203
+#, no-wrap
+msgid "CP"
+msgstr "CP"
+
+#. type: tbl table
+#: ../man/ps.1:1206
+#, no-wrap
+msgid ""
+"per-mill (tenths of a percent) CPU usage. (see\n"
+"B<%cpu>)."
+msgstr "викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора у проміле (деÑÑтих відÑотка) (див. B<%cpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1208
+#, no-wrap
+msgid "cputime"
+msgstr "cputime"
+
+#. type: tbl table
+#: ../man/ps.1:1211
+#, no-wrap
+msgid ""
+"cumulative CPU time, \"[DD-]hh:mm:ss\" format. (alias\n"
+"B<time>)."
+msgstr "накопичувальний Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора у форматі «[ДД-]гг:Ñ…Ñ…:ÑÑ» (альтернатива — B<time>)."
+
+#. type: tbl table
+#: ../man/ps.1:1213
+#, no-wrap
+msgid "cputimes"
+msgstr "cputimes"
+
+#. type: tbl table
+#: ../man/ps.1:1216
+#, no-wrap
+msgid ""
+"cumulative CPU time in seconds (alias\n"
+"B<times>)."
+msgstr "накопичувальний Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора у Ñекундах (альтернатива – B<times>)."
+
+#. type: tbl table
+#: ../man/ps.1:1218
+#, no-wrap
+msgid "cuc"
+msgstr "cuc"
+
+#. type: tbl table
+#: ../man/ps.1:1218
+#, no-wrap
+msgid "%CUC"
+msgstr "%CUC"
+
+#. type: tbl table
+#: ../man/ps.1:1226
+#, no-wrap
+msgid ""
+"The CPU utilization of a process, including dead children, in an extended \"##.###\" format.\n"
+"(see also\n"
+"B<%cpu>,\n"
+"B<c>,\n"
+"B<cp>,\n"
+"B<cuu>,\n"
+"B<pcpu>)."
+msgstr ""
+"ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора процеÑом, включно із завершеними дочірніми процеÑами, у розширеному форматі «##.###».\n"
+"(див. також\n"
+"B<%cpu>,\n"
+"B<c>,\n"
+"B<cp>,\n"
+"B<cuu>,\n"
+"B<pcpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1228
+#, no-wrap
+msgid "cuu"
+msgstr "cuu"
+
+#. type: tbl table
+#: ../man/ps.1:1228
+#, no-wrap
+msgid "%CUU"
+msgstr "%CUU"
+
+#. type: tbl table
+#: ../man/ps.1:1236
+#, no-wrap
+msgid ""
+"The CPU utilization of a process in an extended \"##.###\" format.\n"
+"(see also\n"
+"B<%cpu>,\n"
+"B<c>,\n"
+"B<cp>,\n"
+"B<cuc>,\n"
+"B<pcpu>)."
+msgstr ""
+"ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора процеÑом, у розширеному форматі «##.###».\n"
+"(див. також\n"
+"B<%cpu>,\n"
+"B<c>,\n"
+"B<cp>,\n"
+"B<cuc>,\n"
+"B<pcpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1238
+#, no-wrap
+msgid "drs"
+msgstr "drs"
+
+#. type: tbl table
+#: ../man/ps.1:1238
+#, no-wrap
+msgid "DRS"
+msgstr "DRS"
+
+#. type: tbl table
+#: ../man/ps.1:1247
+#, no-wrap
+msgid ""
+"data resident set size, the amount of private memory I<reserved> by a process.\n"
+"It is also known as DATA. Such memory may not yet be mapped to\n"
+"B<rss>\n"
+"but will always be included\n"
+"included in the\n"
+"B<vsz>\n"
+"amount.\n"
+msgstr ""
+"об'єм резидентного набору, обÑÑг приватної пам'ÑÑ‚Ñ–, Ñкий I<зарезервовано> процеÑом.\n"
+"Також називають DATA. Таку пам'ÑÑ‚ÑŒ ще не може бути пов'Ñзано B<rss>, але Ñ—Ñ— буде завжди включено в обÑÑг B<vsz>.\n"
+
+#. type: tbl table
+#: ../man/ps.1:1249
+#, no-wrap
+msgid "egid"
+msgstr "egid"
+
+#. type: tbl table
+#: ../man/ps.1:1249
+#, no-wrap
+msgid "EGID"
+msgstr "EGID"
+
+#. type: tbl table
+#: ../man/ps.1:1252
+#, no-wrap
+msgid ""
+"effective group ID number of the process as a decimal integer. (alias\n"
+"B<gid>)."
+msgstr "чиÑловий ідентифікатор ефективної групи процеÑу у форматі деÑÑткового цілого чиÑла (альтернатива – B<gid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1254
+#, no-wrap
+msgid "egroup"
+msgstr "egroup"
+
+#. type: tbl table
+#: ../man/ps.1:1254
+#, no-wrap
+msgid "EGROUP"
+msgstr "EGROUP"
+
+#. type: tbl table
+#: ../man/ps.1:1259
+#, no-wrap
+msgid ""
+"effective group ID of the process. This will be the textual group ID, if it\n"
+"can be obtained and the field width permits, or a decimal representation\n"
+"otherwise. (alias\n"
+"B<group>)."
+msgstr "ідентифікатор ефективної групи процеÑу. Це буде текÑтовий ідентифікатор групи, Ñкщо його можна отримати, Ñ– поле Ñ” доÑтатньо широким, або чиÑлове предÑтавленнÑ, Ñкщо це не так. (альтернатива – B<group>)."
+
+#. type: tbl table
+#: ../man/ps.1:1261
+#, no-wrap
+msgid "eip"
+msgstr "eip"
+
+#. type: tbl table
+#: ../man/ps.1:1261
+#, no-wrap
+msgid "EIP"
+msgstr "EIP"
+
+#. type: tbl table
+#: ../man/ps.1:1264
+#, no-wrap
+msgid ""
+"instruction pointer. As of kernel 4.9.xx will be zeroed out unless task is\n"
+"exiting or being core dumped."
+msgstr ""
+"вказівник на інÑтрукцію. З чаÑу поÑви Ñдра 4.9.xx буде занулено, Ñкщо Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð½Ðµ завершує роботу\n"
+"або ÑиÑтема Ñтворює дамп Ñдра Ð´Ð»Ñ Ð½ÑŒÐ¾Ð³Ð¾."
+
+#. type: tbl table
+#: ../man/ps.1:1266
+#, no-wrap
+msgid "esp"
+msgstr "esp"
+
+#. type: tbl table
+#: ../man/ps.1:1266
+#, no-wrap
+msgid "ESP"
+msgstr "ESP"
+
+#. type: tbl table
+#: ../man/ps.1:1269
+#, no-wrap
+msgid ""
+"stack pointer. As of kernel 4.9.xx will be zeroed out unless task is\n"
+"exiting or being core dumped."
+msgstr ""
+"вказівник на Ñтек. З чаÑу поÑви Ñдра 4.9.xx буде занулено, Ñкщо Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð½Ðµ завершує роботу\n"
+"або ÑиÑтема Ñтворює дамп Ñдра Ð´Ð»Ñ Ð½ÑŒÐ¾Ð³Ð¾."
+
+#. type: tbl table
+#: ../man/ps.1:1273
+#, no-wrap
+msgid "elapsed time since the process was started, in the form [[DD-]hh:]mm:ss."
+msgstr "ЧаÑ, що Ñплинув з чаÑу запуÑку процеÑу у формі [[ДД-]гг:]Ñ…Ñ…:ÑÑ."
+
+#. type: tbl table
+#: ../man/ps.1:1275
+#, no-wrap
+msgid "etimes"
+msgstr "etimes"
+
+#. type: tbl table
+#: ../man/ps.1:1277
+#, no-wrap
+msgid "elapsed time since the process was started, in seconds."
+msgstr "чаÑ, що минув з моменту запуÑку процеÑу, у Ñекундах."
+
+#. type: tbl table
+#: ../man/ps.1:1279
+#, no-wrap
+msgid "euid"
+msgstr "euid"
+
+#. type: tbl table
+#: ../man/ps.1:1279
+#, no-wrap
+msgid "EUID"
+msgstr "EUID"
+
+#. type: tbl table
+#: ../man/ps.1:1282
+#, no-wrap
+msgid ""
+"effective user ID (alias\n"
+"B<uid>)."
+msgstr "ідентифікатор ефективного кориÑтувача (альтернатива – B<uid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1284
+#, no-wrap
+msgid "euser"
+msgstr "euser"
+
+#. type: tbl table
+#: ../man/ps.1:1284
+#, no-wrap
+msgid "EUSER"
+msgstr "EUSER"
+
+#. type: tbl table
+#: ../man/ps.1:1290
+#, no-wrap
+msgid ""
+"effective user name. This will be the textual user ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise. The\n"
+"B<n>\n"
+"option can be used to force the decimal representation. (alias\n"
+"B<uname>, B<user>)."
+msgstr "ефективне ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача. Це буде текÑтовий ідентифікатор кориÑтувача, Ñкщо його можна отримати Ñ– поле Ñ” доÑтатньо широким, або чиÑлове предÑтавленнÑ, Ñкщо це не так. Ð”Ð»Ñ Ð¿Ñ€Ð¸Ð¼ÑƒÑового Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´ÐµÑÑткового предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° ÑкориÑтатиÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ B<n>. (альтернатива – B<uname>, B<user>)."
+
+#. type: tbl table
+#: ../man/ps.1:1292
+#, no-wrap
+msgid "exe"
+msgstr "exe"
+
+#. type: tbl table
+#: ../man/ps.1:1292
+#, no-wrap
+msgid "EXE"
+msgstr "EXE"
+
+#. type: tbl table
+#: ../man/ps.1:1298
+#, no-wrap
+msgid ""
+"path to the executable. Useful if path cannot be printed via\n"
+"B<cmd>, B<comm>\n"
+"or\n"
+"B<args>\n"
+"format options."
+msgstr "шлÑÑ… до виконуваного файла. КориÑно, Ñкщо шлÑÑ… не може бути виведено за допомогою параметрів Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ B<cmd>, B<comm> або B<args>."
+
+#. type: tbl table
+#: ../man/ps.1:1300 ../man/ps.1:1319 ../man/ps.1:1326
+#, no-wrap
+msgid "F"
+msgstr "F"
+
+#. type: tbl table
+#: ../man/ps.1:1305
+#, no-wrap
+msgid ""
+"flags associated with the process, see the\n"
+"B<PROCESS FLAGS>\n"
+"section. (alias\n"
+"B<flag>, B<flags>)."
+msgstr "прапорці, Ñкі пов'Ñзано із процеÑом, Див. розділ B<ПРÐПОРЦІ ПРОЦЕСУ>. (альтернатива – B<flag>, B<flags>)."
+
+#. type: tbl table
+#: ../man/ps.1:1307
+#, no-wrap
+msgid "fgid"
+msgstr "fgid"
+
+#. type: tbl table
+#: ../man/ps.1:1307
+#, no-wrap
+msgid "FGID"
+msgstr "FGID"
+
+#. type: tbl table
+#: ../man/ps.1:1310
+#, no-wrap
+msgid ""
+"filesystem access group\\ ID. (alias\n"
+"B<fsgid>)."
+msgstr "ідентифікатор групи Ð´Ð»Ñ Ð´Ð¾Ñтупу до файлової ÑиÑтеми (альтернатива – B<fsgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1312
+#, no-wrap
+msgid "fgroup"
+msgstr "fgroup"
+
+#. type: tbl table
+#: ../man/ps.1:1312
+#, no-wrap
+msgid "FGROUP"
+msgstr "FGROUP"
+
+#. type: tbl table
+#: ../man/ps.1:1317
+#, no-wrap
+msgid ""
+"filesystem access group ID. This will be the textual group ID, if it can\n"
+"be obtained and the field width permits, or a decimal representation\n"
+"otherwise. (alias\n"
+"B<fsgroup>)."
+msgstr "ідентифікатор групи Ð´Ð»Ñ Ð´Ð¾Ñтупу до файлової ÑиÑтеми. Це буде текÑтовий ідентифікатор групи, Ñкщо його можна отримати, Ñ– поле Ñ” доÑтатньо широким, або чиÑлове предÑтавленнÑ, Ñкщо це не так. (альтернатива – B<fsgroup>)."
+
+#. type: tbl table
+#: ../man/ps.1:1319
+#, no-wrap
+msgid "flag"
+msgstr "flag"
+
+#. type: tbl table
+#: ../man/ps.1:1324
+#, no-wrap
+msgid ""
+"see\n"
+"B<f>.\n"
+"(alias\n"
+"B<f>, B<flags>)."
+msgstr ""
+"див.\n"
+"B<f>\n"
+"(альтернатива –\n"
+"B<f>, B<flags>)."
+
+#. type: tbl table
+#: ../man/ps.1:1331
+#, no-wrap
+msgid ""
+"see\n"
+"B<f>.\n"
+"(alias\n"
+"B<f>, B<flag>)."
+msgstr ""
+"див.\n"
+"B<f>\n"
+"(альтернатива –\n"
+"B<f>, B<flag>)."
+
+#. type: tbl table
+#: ../man/ps.1:1333
+#, no-wrap
+msgid "fname"
+msgstr "fname"
+
+#. type: tbl table
+#: ../man/ps.1:1336
+#, no-wrap
+msgid ""
+"first 8 bytes of the base name of the process's executable file. The output\n"
+"in this column may contain spaces."
+msgstr "перші 8 байтів базової назви виконуваного файла процеÑу. Виведені дані у цьому Ñтовпчику можуть міÑтити пробіли."
+
+#. type: tbl table
+#: ../man/ps.1:1338
+#, no-wrap
+msgid "fuid"
+msgstr "fuid"
+
+#. type: tbl table
+#: ../man/ps.1:1338
+#, no-wrap
+msgid "FUID"
+msgstr "FUID"
+
+#. type: tbl table
+#: ../man/ps.1:1341
+#, no-wrap
+msgid ""
+"filesystem access user ID. (alias\n"
+"B<fsuid>)."
+msgstr "ідентифікатор кориÑтувача Ð´Ð»Ñ Ð´Ð¾Ñтупу до файлової ÑиÑтеми (альтернатива – B<fsuid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1343
+#, no-wrap
+msgid "fuser"
+msgstr "fuser"
+
+#. type: tbl table
+#: ../man/ps.1:1343
+#, no-wrap
+msgid "FUSER"
+msgstr "FUSER"
+
+#. type: tbl table
+#: ../man/ps.1:1346
+#, no-wrap
+msgid ""
+"filesystem access user ID. This will be the textual user ID, if it can be\n"
+"obtained and the field width permits, or a decimal representation otherwise."
+msgstr "ідентифікатор кориÑтувача Ð´Ð»Ñ Ð´Ð¾Ñтупу до файлової ÑиÑтеми. Це буде текÑтовий ідентифікатор кориÑтувача, Ñкщо його можна отримати Ñ– поле Ñ” доÑтатньо широким, або чиÑлове предÑтавленнÑ, Ñкщо це не так."
+
+#. type: tbl table
+#: ../man/ps.1:1348
+#, no-wrap
+msgid "gid"
+msgstr "gid"
+
+#. type: tbl table
+#: ../man/ps.1:1348
+#, no-wrap
+msgid "GID"
+msgstr "GID"
+
+#. type: tbl table
+#: ../man/ps.1:1353
+#, no-wrap
+msgid ""
+"see\n"
+"B<egid>.\n"
+"(alias\n"
+"B<egid>)."
+msgstr "див. B<egid> (альтернатива B<egid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1360
+#, no-wrap
+msgid ""
+"see\n"
+"B<egroup>.\n"
+"(alias\n"
+"B<egroup>)."
+msgstr "див. B<egroup> (альтернатива – B<egroup>)."
+
+#. type: tbl table
+#: ../man/ps.1:1362
+#, no-wrap
+msgid "ignored"
+msgstr "ignored"
+
+#. type: tbl table
+#: ../man/ps.1:1362 ../man/ps.1:1693
+#, no-wrap
+msgid "IGNORED"
+msgstr "IGNORED"
+
+#. type: tbl table
+#: ../man/ps.1:1368
+#, no-wrap
+msgid ""
+"mask of the ignored signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64 bits mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_ignore>, B<sigignore>)."
+msgstr "маÑка ігнорованих Ñигналів, див. I<signal>(7). Відповідно до ширини полÑ, буде показано 32- або 64-бітову маÑку у шіÑтнадцÑтковому форматі, Ñкщо не викориÑтано параметр B<--signames> (альтернатива – B<sig_ignore>, B<sigignore>)."
+
+#. type: tbl table
+#: ../man/ps.1:1370
+#, no-wrap
+msgid "ipcns"
+msgstr "ipcns"
+
+#. type: tbl table
+#: ../man/ps.1:1370
+#, no-wrap
+msgid "IPCNS"
+msgstr "IPCNS"
+
+#. type: tbl table
+#: ../man/ps.1:1376
+#, no-wrap
+msgid "label"
+msgstr "label"
+
+#. type: tbl table
+#: ../man/ps.1:1376
+#, no-wrap
+msgid "LABEL"
+msgstr "LABEL"
+
+#. type: tbl table
+#: ../man/ps.1:1381
+#, no-wrap
+msgid ""
+"security label, most commonly used for SELinux context data. This is for\n"
+"the\n"
+"I<Mandatory Access Control>\n"
+"(\"MAC\") found on high-security systems."
+msgstr "мітка захиÑту, здебільшого викориÑтовують Ð´Ð»Ñ Ð´Ð°Ð½Ð¸Ñ… контекÑту SELinux. Призначено Ð´Ð»Ñ I<Mandatory Access Control> («MAC») у виÑокозахищених ÑиÑтемах."
+
+#. type: tbl table
+#: ../man/ps.1:1383
+#, no-wrap
+msgid "lstart"
+msgstr "lstart"
+
+#. type: tbl table
+#: ../man/ps.1:1383 ../man/ps.1:1729
+#, no-wrap
+msgid "STARTED"
+msgstr "STARTED"
+
+#. type: tbl table
+#: ../man/ps.1:1386
+#, no-wrap
+msgid ""
+"time the command started. This will be in the form \"DDD mmm HH:MM:SS YYY\"\n"
+"unless changed by the B<-D> option."
+msgstr ""
+"чаÑ, коли було віддано команду. Цей Ð·Ð°Ð¿Ð¸Ñ Ð¼Ð°Ñ‚Ð¸Ð¼Ðµ форму «ДДД ммм ГГ:ХХ:СС РРР»,\n"
+"Ñкщо його формат не було змінено за допомогою параметра B<-D>."
+
+#. type: tbl table
+#: ../man/ps.1:1388
+#, no-wrap
+msgid "lsession"
+msgstr "lsession"
+
+#. type: tbl table
+#: ../man/ps.1:1388
+#, no-wrap
+msgid "SESSION"
+msgstr "SESSION"
+
+#. type: tbl table
+#: ../man/ps.1:1391
+#, no-wrap
+msgid ""
+"displays the login session identifier of a process,\n"
+"if systemd support has been included."
+msgstr "показує ідентифікатор ÑеанÑу входу процеÑу, Ñкщо було включено підтримку systemd."
+
+#. type: tbl table
+#: ../man/ps.1:1393
+#, no-wrap
+msgid "luid"
+msgstr "luid"
+
+#. type: tbl table
+#: ../man/ps.1:1393
+#, no-wrap
+msgid "LUID"
+msgstr "LUID"
+
+#. type: tbl table
+#: ../man/ps.1:1395
+#, no-wrap
+msgid "displays Login ID associated with a process."
+msgstr "показує ідентифікатор входу, Ñкий пов'Ñзано із процеÑом."
+
+#. type: tbl table
+#: ../man/ps.1:1397
+#, no-wrap
+msgid "lwp"
+msgstr "lwp"
+
+#. type: tbl table
+#: ../man/ps.1:1397
+#, no-wrap
+msgid "LWP"
+msgstr "LWP"
+
+#. type: tbl table
+#: ../man/ps.1:1403
+#, no-wrap
+msgid ""
+"light weight process (thread) ID of the dispatchable entity (alias\n"
+"B<spid>,B<\\ tid>).\n"
+"See\n"
+"B<tid>\n"
+"for additional information."
+msgstr "ідентифікаторів легких процеÑів (потоків) розподілюваного запиÑу (альтернатива – B<spid>, B<tid>). Див. B<tid>, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ."
+
+#. type: tbl table
+#: ../man/ps.1:1405
+#, no-wrap
+msgid "lxc"
+msgstr "lxc"
+
+#. type: tbl table
+#: ../man/ps.1:1405
+#, no-wrap
+msgid "LXC"
+msgstr "LXC"
+
+#. type: tbl table
+#: ../man/ps.1:1408
+#, no-wrap
+msgid ""
+"The name of the lxc container within which a task is running.\n"
+"If a process is not running inside a container, a dash ('-') will be shown."
+msgstr "Ðазва контейнера LXC, у Ñкому запущено завданнÑ. Якщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ðµ запущено у контейнері, буде показано Ð´ÐµÑ„Ñ–Ñ («-»)."
+
+#. type: tbl table
+#: ../man/ps.1:1410
+#, no-wrap
+msgid "machine"
+msgstr "machine"
+
+#. type: tbl table
+#: ../man/ps.1:1410
+#, no-wrap
+msgid "MACHINE"
+msgstr "MACHINE"
+
+#. type: tbl table
+#: ../man/ps.1:1413
+#, no-wrap
+msgid ""
+"displays the machine name for processes assigned to VM or container,\n"
+"if systemd support has been included."
+msgstr "показує назву комп'ютера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑів, Ñкі пов'Ñзано із віртуальною машиною або контейнером, Ñкщо було включено підтримку systemd."
+
+#. type: tbl table
+#: ../man/ps.1:1415
+#, no-wrap
+msgid "MAJFLT"
+msgstr "MAJFLT"
+
+#. type: tbl table
+#: ../man/ps.1:1417
+#, no-wrap
+msgid "The number of major page faults that have occurred with this process."
+msgstr "КількіÑÑ‚ÑŒ оÑновних помилок Ñторінок, Ñкі ÑталиÑÑ Ñ–Ð· цим процеÑом."
+
+#. type: tbl table
+#: ../man/ps.1:1419
+#, no-wrap
+msgid "MINFLT"
+msgstr "MINFLT"
+
+#. type: tbl table
+#: ../man/ps.1:1421
+#, no-wrap
+msgid "The number of minor page faults that have occurred with this process."
+msgstr "КількіÑÑ‚ÑŒ вторинних помилок Ñторінок, Ñкі ÑталиÑÑ Ñ–Ð· цим процеÑом."
+
+#. type: tbl table
+#: ../man/ps.1:1423
+#, no-wrap
+msgid "mntns"
+msgstr "mntns"
+
+#. type: tbl table
+#: ../man/ps.1:1423
+#, no-wrap
+msgid "MNTNS"
+msgstr "MNTNS"
+
+#. type: tbl table
+#: ../man/ps.1:1429
+#, no-wrap
+msgid "netns"
+msgstr "netns"
+
+#. type: tbl table
+#: ../man/ps.1:1429
+#, no-wrap
+msgid "NETNS"
+msgstr "NETNS"
+
+#. type: tbl table
+#: ../man/ps.1:1435
+#, no-wrap
+msgid "ni"
+msgstr "ni"
+
+#. type: tbl table
+#: ../man/ps.1:1441
+#, no-wrap
+msgid ""
+"nice value. This ranges from 19 (nicest) to -20 (not nice to others),\n"
+"see\n"
+"I<nice>(1).\n"
+"(alias\n"
+"B<nice>)."
+msgstr "Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ nice. Діапазон Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ â€” від 19 (найнижча пріоритетніÑÑ‚ÑŒ) до -20 (найвища пріоритетніÑÑ‚ÑŒ щодо інших), див. I<nice>(1) (альтернатива – B<nice>)."
+
+#. type: tbl table
+#: ../man/ps.1:1447
+#, no-wrap
+msgid ""
+"see\n"
+"B<ni>.B<(alias>\n"
+"B<ni>)."
+msgstr ""
+"див.\n"
+"B<ni>. B<(альтернатива>\n"
+"B<ni>)."
+
+#. type: tbl table
+#: ../man/ps.1:1449
+#, no-wrap
+msgid "nlwp"
+msgstr "nlwp"
+
+#. type: tbl table
+#: ../man/ps.1:1449
+#, no-wrap
+msgid "NLWP"
+msgstr "NLWP"
+
+#. type: tbl table
+#: ../man/ps.1:1452
+#, no-wrap
+msgid ""
+"number of lwps (threads) in the process. (alias\n"
+"B<thcount>)."
+msgstr "кількіÑÑ‚ÑŒ lwps (потоків обробки) у процеÑÑ– (альтернатива – B<thcount>)."
+
+#. type: tbl table
+#: ../man/ps.1:1454
+#, no-wrap
+msgid "numa"
+msgstr "numa"
+
+#. type: tbl table
+#: ../man/ps.1:1454
+#, no-wrap
+msgid "NUMA"
+msgstr "NUMA"
+
+#. type: tbl table
+#: ../man/ps.1:1457
+#, no-wrap
+msgid ""
+"The node associated with the most recently used processor.\n"
+"A I<-1> means that NUMA information is unavailable."
+msgstr "Вузол, з Ñким пов'Ñзано оÑтанній викориÑтаний процеÑор. Якщо тут показано I<-1>, дані щодо NUMA Ñ” недоÑтупними."
+
+#. type: tbl table
+#: ../man/ps.1:1459
+#, no-wrap
+msgid "nwchan"
+msgstr "nwchan"
+
+#. type: tbl table
+#: ../man/ps.1:1459 ../man/ps.1:1950
+#, no-wrap
+msgid "WCHAN"
+msgstr "WCHAN"
+
+#. type: tbl table
+#: ../man/ps.1:1463
+#, no-wrap
+msgid ""
+"address of the kernel function where the process is sleeping (use\n"
+"B<wchan>\n"
+"if you want the kernel function name)."
+msgstr "адреÑа функції Ñдра, де Ñпить Ð¿Ñ€Ð¾Ñ†ÐµÑ (ÑкориÑтайтеÑÑ, B<wchan>, Ñкщо вам потрібна назва функції)."
+
+#. type: tbl table
+#: ../man/ps.1:1465
+#, no-wrap
+msgid "oom"
+msgstr "oom"
+
+#. type: tbl table
+#: ../man/ps.1:1465
+#, no-wrap
+msgid "OOM"
+msgstr "OOM"
+
+#. type: tbl table
+#: ../man/ps.1:1468
+#, no-wrap
+msgid ""
+"Out of Memory Score. The value, ranging from 0 to +1000, used to select\n"
+"task(s) to kill when memory is exhausted."
+msgstr "Оцінка виходу за межі доÑтупної пам'ÑÑ‚Ñ–. Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ діапазоні від 0 до +1000, Ñке буде викориÑтано Ð´Ð»Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ завдань, Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñких Ñлід припинити, Ñкщо буде вичерпано пам'ÑÑ‚ÑŒ."
+
+#. type: tbl table
+#: ../man/ps.1:1470
+#, no-wrap
+msgid "oomadj"
+msgstr "oomadj"
+
+#. type: tbl table
+#: ../man/ps.1:1470
+#, no-wrap
+msgid "OOMADJ"
+msgstr "OOMADJ"
+
+#. type: tbl table
+#: ../man/ps.1:1474
+#, no-wrap
+msgid ""
+"Out of Memory Adjustment Factor. The value is added to the current out of\n"
+"memory score which is then used to determine which task to kill when memory\n"
+"is exhausted."
+msgstr "Коефіцієнт ÐºÐ¾Ñ€Ð¸Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ñ…Ð¾Ð´Ñƒ за межі доÑтупної пам'ÑÑ‚Ñ–. ЗначеннÑ, Ñке буде додано до поточного рахунку виходу за межі пам'ÑÑ‚Ñ– (OOM), Ñке потім буде викориÑтано Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð¾Ð³Ð¾, Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñкого Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ñлід припинити, Ñкщо пам'ÑÑ‚ÑŒ буде вичерпано."
+
+#. type: tbl table
+#: ../man/ps.1:1476
+#, no-wrap
+msgid "ouid"
+msgstr "ouid"
+
+#. type: tbl table
+#: ../man/ps.1:1476
+#, no-wrap
+msgid "OWNER"
+msgstr "OWNER"
+
+#. type: tbl table
+#: ../man/ps.1:1479
+#, no-wrap
+msgid ""
+"displays the Unix user identifier of the owner of the session of a process,\n"
+"if systemd support has been included."
+msgstr "показує ідентифікатор кориÑтувача Unix влаÑника ÑеанÑу процеÑу, Ñкщо було включено підтримку systemd."
+
+#. type: tbl table
+#: ../man/ps.1:1486
+#, no-wrap
+msgid ""
+"see\n"
+"B<%cpu>.\n"
+"(alias\n"
+"B<%cpu>)."
+msgstr "див. B<%cpu> (альтернатива – B<%cpu>)."
+
+#. type: tbl table
+#: ../man/ps.1:1488
+#, no-wrap
+msgid "pending"
+msgstr "pending"
+
+#. type: tbl table
+#: ../man/ps.1:1488 ../man/ps.1:1679
+#, no-wrap
+msgid "PENDING"
+msgstr "PENDING"
+
+#. type: tbl table
+#: ../man/ps.1:1500
+#, no-wrap
+msgid ""
+"mask of the pending signals. See\n"
+"I<signal>(7).\n"
+"Signals pending on the process are distinct from signals pending on\n"
+"individual threads. Use the\n"
+"B<m>\n"
+"option or the\n"
+"B<-m>\n"
+"option to see both. According to the width of the field, a 32 or 64 bits\n"
+"mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig>)."
+msgstr "маÑка Ñигналів черги. Див. I<signal>(7). Черга Ñигналів процеÑу відрізнÑєтьÑÑ Ð²Ñ–Ð´ черги Ñигналів потоків обробки. СкориÑтайтеÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°Ð¼Ð¸ B<m> Ñ– B<-m> Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду обох. Відповідно до ширини полÑ, буде показано 32- або 64-бітову маÑку у шіÑтнадцÑтковому форматі, Ñкщо не викориÑтано параметр B<--signames> (альтернатива – B<sig>)."
+
+#. type: tbl table
+#: ../man/ps.1:1506
+#, no-wrap
+msgid ""
+"process group ID or, equivalently, the process ID of the process group\n"
+"leader. (alias\n"
+"B<pgrp>)."
+msgstr "ідентифікатор групи процеÑів або, що те Ñаме, ідентифікатор процеÑу лідера групи процеÑів (альтернатива – B<pgrp>)."
+
+#. type: tbl table
+#: ../man/ps.1:1508
+#, no-wrap
+msgid "PGRP"
+msgstr "PGRP"
+
+#. type: tbl table
+#: ../man/ps.1:1513
+#, no-wrap
+msgid ""
+"see\n"
+"B<pgid>.\n"
+"(alias\n"
+"B<pgid>)."
+msgstr "див. B<pgid> (альтернатива – B<pgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1518
+#, no-wrap
+msgid ""
+"a number representing the process ID (alias\n"
+"B<tgid>)."
+msgstr "чиÑло, що відповідає ідентифікатору процеÑу (альтернатива – B<tgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1520
+#, no-wrap
+msgid "pidns"
+msgstr "pidns"
+
+#. type: tbl table
+#: ../man/ps.1:1520
+#, no-wrap
+msgid "PIDNS"
+msgstr "PIDNS"
+
+#. type: tbl table
+#: ../man/ps.1:1526
+#, no-wrap
+msgid "pmem"
+msgstr "pmem"
+
+#. type: tbl table
+#: ../man/ps.1:1531
+#, no-wrap
+msgid ""
+"see\n"
+"B<%mem>.\n"
+"(alias\n"
+"B<%mem>)."
+msgstr "див. B<%mem> (альтернатива – B<%mem>)."
+
+#. type: tbl table
+#: ../man/ps.1:1533
+#, no-wrap
+msgid "policy"
+msgstr "policy"
+
+#. type: tbl table
+#: ../man/ps.1:1533
+#, no-wrap
+msgid "POL"
+msgstr "POL"
+
+#. type: tbl table
+#: ../man/ps.1:1537
+#, no-wrap
+msgid ""
+"scheduling class of the process. (alias\n"
+"B<class>, B<cls>).\n"
+"Possible values are:\n"
+msgstr "ÐºÐ»Ð°Ñ Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу. (альтернатива — B<class>, B<cls>). Можливими значеннÑми Ð¿Ð¾Ð»Ñ Ñ” такі:\n"
+
+#. type: tbl table
+#: ../man/ps.1:1561
+#, no-wrap
+msgid "parent process ID."
+msgstr "ідентифікатор батьківÑького процеÑу."
+
+#. type: tbl table
+#: ../man/ps.1:1563
+#, no-wrap
+msgid "pri"
+msgstr "pri"
+
+#. type: tbl table
+#: ../man/ps.1:1563
+#, no-wrap
+msgid "PRI"
+msgstr "PRI"
+
+#. type: tbl table
+#: ../man/ps.1:1565
+#, no-wrap
+msgid "priority of the process. Higher number means higher priority."
+msgstr "пріоритетніÑÑ‚ÑŒ процеÑу. Більше чиÑло — вища пріоритетніÑÑ‚ÑŒ."
+
+#. type: tbl table
+#: ../man/ps.1:1567
+#, no-wrap
+msgid "psr"
+msgstr "psr"
+
+#. type: tbl table
+#: ../man/ps.1:1567
+#, no-wrap
+msgid "PSR"
+msgstr "PSR"
+
+#. type: tbl table
+#: ../man/ps.1:1569
+#, no-wrap
+msgid "processor that process last executed on."
+msgstr "процеÑор, а Ñкому воÑтаннє виконувавÑÑ Ð¿Ñ€Ð¾Ñ†ÐµÑ."
+
+#. type: tbl table
+#: ../man/ps.1:1571
+#, no-wrap
+msgid "pss"
+msgstr "pss"
+
+#. type: tbl table
+#: ../man/ps.1:1571
+#, no-wrap
+msgid "PSS"
+msgstr "PSS"
+
+#. type: tbl table
+#: ../man/ps.1:1574
+#, no-wrap
+msgid ""
+"Proportional share size, the non-swapped physical memory, with shared memory\n"
+"proportionally accounted to all tasks mapping it."
+msgstr "Пропорційний розмір Ñпільного кориÑтуваннÑ, нерезервована фізична пам'ÑÑ‚ÑŒ із пам'ÑÑ‚Ñ‚ÑŽ Ñпільного викориÑтаннÑ, Ñку пропорційно враховано Ð´Ð»Ñ ÑƒÑÑ–Ñ… завдань, Ñкі виконують Ñ—Ñ— прив'ÑзуваннÑ."
+
+#. type: tbl table
+#: ../man/ps.1:1576
+#, no-wrap
+msgid "rbytes"
+msgstr "rbytes"
+
+#. type: tbl table
+#: ../man/ps.1:1576
+#, no-wrap
+msgid "RBYTES"
+msgstr "RBYTES"
+
+#. type: tbl table
+#: ../man/ps.1:1578
+#, no-wrap
+msgid "Number of bytes which this process really did cause to be fetched from the storage layer."
+msgstr "КількіÑÑ‚ÑŒ байтів, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñких з шару Ñховища даних було наÑправді Ñпричинено цим процеÑом."
+
+#. type: tbl table
+#: ../man/ps.1:1580
+#, no-wrap
+msgid "rchars"
+msgstr "rchars"
+
+#. type: tbl table
+#: ../man/ps.1:1580
+#, no-wrap
+msgid "RCHARS"
+msgstr "RCHARS"
+
+#. type: tbl table
+#: ../man/ps.1:1582
+#, no-wrap
+msgid "Number of bytes which this task has caused to be read from storage."
+msgstr "КількіÑÑ‚ÑŒ байтів, Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñких зі Ñховища даних було Ñпричинено цим завданнÑм."
+
+#. type: tbl table
+#: ../man/ps.1:1584
+#, no-wrap
+msgid "rgid"
+msgstr "rgid"
+
+#. type: tbl table
+#: ../man/ps.1:1584
+#, no-wrap
+msgid "RGID"
+msgstr "RGID"
+
+#. type: tbl table
+#: ../man/ps.1:1586
+#, no-wrap
+msgid "real group ID."
+msgstr "Ñправжній ідентифікатор групи."
+
+#. type: tbl table
+#: ../man/ps.1:1591
+#, no-wrap
+msgid ""
+"real group name. This will be the textual group ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise."
+msgstr ""
+"назва Ñправжньої групи. Це буде текÑтовий ідентифікатор групи, Ñкщо його можна отримати\n"
+"Ñ– поле Ñ” доÑтатньо широким, або чиÑлове предÑтавленнÑ, Ñкщо це не так."
+
+#. type: tbl table
+#: ../man/ps.1:1593
+#, no-wrap
+msgid "rops"
+msgstr "rops"
+
+#. type: tbl table
+#: ../man/ps.1:1593
+#, no-wrap
+msgid "ROPS"
+msgstr "ROPS"
+
+#. type: tbl table
+#: ../man/ps.1:1596
+#, no-wrap
+msgid ""
+"Number of read I/O operations—that is, system calls such as\n"
+"B<read>(2) and B<pread>(2)."
+msgstr "КількіÑÑ‚ÑŒ дій з введеннÑ-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ, тобто ÑиÑтемних викликів B<read>(2) Ñ– B<pread>(2)."
+
+#. type: tbl table
+#: ../man/ps.1:1598 ../man/ps.1:1604
+#, no-wrap
+msgid "RSS"
+msgstr "RSS"
+
+#. type: tbl table
+#: ../man/ps.1:1602
+#, no-wrap
+msgid ""
+"resident set size, the non-swapped physical memory that a task has used (in\n"
+"kilobytes). (alias\n"
+"B<rssize>, B<rsz>)."
+msgstr "розмір резидентного набору, нерезервована фізична пам'ÑÑ‚ÑŒ, Ñку викориÑтано завданнÑм (у кілобайтах) (альтернатива – B<rssize>, B<rsz>)."
+
+#. type: tbl table
+#: ../man/ps.1:1604
+#, no-wrap
+msgid "rssize"
+msgstr "rssize"
+
+#. type: tbl table
+#: ../man/ps.1:1609
+#, no-wrap
+msgid ""
+"see\n"
+"B<rss>.\n"
+"(alias\n"
+"B<rss>, B<rsz>)."
+msgstr "див. B<rss> (альтернатива – B<rss>, B<rsz>)."
+
+#. type: tbl table
+#: ../man/ps.1:1611
+#, no-wrap
+msgid "rsz"
+msgstr "rsz"
+
+#. type: tbl table
+#: ../man/ps.1:1611
+#, no-wrap
+msgid "RSZ"
+msgstr "RSZ"
+
+#. type: tbl table
+#: ../man/ps.1:1616
+#, no-wrap
+msgid ""
+"see\n"
+"B<rss>.\n"
+"(alias\n"
+"B<rss>, B<rssize>)."
+msgstr "див. B<rss> (альтернатива – B<rss>, B<rssize>)."
+
+#. type: tbl table
+#: ../man/ps.1:1618
+#, no-wrap
+msgid "rtprio"
+msgstr "rtprio"
+
+#. type: tbl table
+#: ../man/ps.1:1618
+#, no-wrap
+msgid "RTPRIO"
+msgstr "RTPRIO"
+
+#. type: tbl table
+#: ../man/ps.1:1620
+#, no-wrap
+msgid "realtime priority."
+msgstr "пріоритетніÑÑ‚ÑŒ Ñправжнього чаÑу."
+
+#. type: tbl table
+#: ../man/ps.1:1622
+#, no-wrap
+msgid "ruid"
+msgstr "ruid"
+
+#. type: tbl table
+#: ../man/ps.1:1622
+#, no-wrap
+msgid "RUID"
+msgstr "RUID"
+
+#. type: tbl table
+#: ../man/ps.1:1624
+#, no-wrap
+msgid "real user ID."
+msgstr "Ñправжній ідентифікатор кориÑтувача."
+
+#. type: tbl table
+#: ../man/ps.1:1629
+#, no-wrap
+msgid ""
+"real user ID. This will be the textual user ID, if it can be obtained and\n"
+"the field width permits, or a decimal representation otherwise."
+msgstr "Ñправжній ідентифікатор кориÑтувача. Це буде текÑтовий ідентифікатор кориÑтувача, Ñкщо його можна отримати Ñ– поле Ñ” доÑтатньо широким, або чиÑлове предÑтавленнÑ, Ñкщо це не так."
+
+#. type: tbl table
+#: ../man/ps.1:1638
+#, no-wrap
+msgid ""
+"minimal state display (one character). See section\n"
+"B<PROCESS STATE CODES>\n"
+"for the different values. See also\n"
+"B<stat>\n"
+"if you want additional information displayed. (alias\n"
+"B<state>)."
+msgstr "мінімальний показ Ñтану (один Ñимвол). Див. розділ B<КОДИ СТÐÐІВ ПРОЦЕСУ> Ð´Ð»Ñ Ñ€Ñ–Ð·Ð½Ð¸Ñ… значень. Див. також B<stat>, Ñкщо вам потрібен показ додаткових відомоÑтей (альтернатива – B<state>)."
+
+#. type: tbl table
+#: ../man/ps.1:1640
+#, no-wrap
+msgid "sched"
+msgstr "sched"
+
+#. type: tbl table
+#: ../man/ps.1:1640
+#, no-wrap
+msgid "SCH"
+msgstr "SCH"
+
+#. type: tbl table
+#: ../man/ps.1:1644
+#, no-wrap
+msgid ""
+"scheduling policy of the process. The policies SCHED_OTHER (SCHED_NORMAL),\n"
+"SCHED_FIFO, SCHED_RR, SCHED_BATCH, SCHED_ISO, SCHED_IDLE and SCHED_DEADLINE are\n"
+"respectively displayed as 0, 1, 2, 3, 4, 5 and 6."
+msgstr "правила Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу. Ð”Ð»Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð» SCHED_OTHER (SCHED_NORMAL), SCHED_FIFO, SCHED_RR, SCHED_BATCH, SCHED_ISO, SCHED_IDLE Ñ– SCHED_DEADLINE, відповідно, буде показано Ñк 0, 1, 2, 3, 4, 5 Ñ– 6."
+
+#. type: tbl table
+#: ../man/ps.1:1646
+#, no-wrap
+msgid "seat"
+msgstr "ÑидіннÑ"
+
+#. type: tbl table
+#: ../man/ps.1:1646
+#, no-wrap
+msgid "SEAT"
+msgstr "SEAT"
+
+#. type: tbl table
+#: ../man/ps.1:1650
+#, no-wrap
+msgid ""
+"displays the identifier associated with all hardware devices assigned\n"
+"to a specific workplace,\n"
+"if systemd support has been included."
+msgstr "показує ідентифікатор, Ñкий пов'Ñзано із уÑіма призначеними до певного робочого міÑÑ†Ñ Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð¸Ð¼Ð¸ приÑтроÑми, Ñкщо було включено підтримку systemd."
+
+#. type: tbl table
+#: ../man/ps.1:1652
+#, no-wrap
+msgid "sess"
+msgstr "sess"
+
+#. type: tbl table
+#: ../man/ps.1:1652
+#, no-wrap
+msgid "SESS"
+msgstr "SESS"
+
+#. type: tbl table
+#: ../man/ps.1:1655
+#, no-wrap
+msgid ""
+"session ID or, equivalently, the process ID of the session leader. (alias\n"
+"B<session>, B<sid>)."
+msgstr ""
+"ідентифікатор ÑеанÑу або, що те Ñаме, ідентифікатор процеÑу лідера ÑеанÑу. (альтернатива\n"
+"B<session>, B<sid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1657
+#, no-wrap
+msgid "sgi_p"
+msgstr "sgi_p"
+
+#. type: tbl table
+#: ../man/ps.1:1660
+#, no-wrap
+msgid ""
+"processor that the process is currently executing on. Displays \"*\" if the\n"
+"process is not currently running or runnable."
+msgstr ""
+"процеÑор, на Ñкому виконуєтьÑÑ Ð¿Ñ€Ð¾Ñ†ÐµÑ. Буде показано «*», Ñкщо процеÑ\n"
+"не працює або не Ñ” придатним до запуÑку."
+
+#. type: tbl table
+#: ../man/ps.1:1662
+#, no-wrap
+msgid "sgid"
+msgstr "sgid"
+
+#. type: tbl table
+#: ../man/ps.1:1662
+#, no-wrap
+msgid "SGID"
+msgstr "SGID"
+
+#. type: tbl table
+#: ../man/ps.1:1665
+#, no-wrap
+msgid ""
+"saved group ID. (alias\n"
+"B<svgid>)."
+msgstr ""
+"ідентифікатор збереженої групи. (альтернатива\n"
+"B<svgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1667
+#, no-wrap
+msgid "sgroup"
+msgstr "sgroup"
+
+#. type: tbl table
+#: ../man/ps.1:1667
+#, no-wrap
+msgid "SGROUP"
+msgstr "SGROUP"
+
+#. type: tbl table
+#: ../man/ps.1:1670
+#, no-wrap
+msgid ""
+"saved group name. This will be the textual group ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise."
+msgstr ""
+"назва збереженої групи. Це буде текÑтовий ідентифікатор групи, Ñкщо його можна отримати\n"
+"Ñ– поле Ñ” доÑтатньо широким, або чиÑлове предÑтавленнÑ, Ñкщо це не так."
+
+#. type: tbl table
+#: ../man/ps.1:1672
+#, no-wrap
+msgid "sid"
+msgstr "sid"
+
+#. type: tbl table
+#: ../man/ps.1:1672
+#, no-wrap
+msgid "SID"
+msgstr "SID"
+
+#. type: tbl table
+#: ../man/ps.1:1677
+#, no-wrap
+msgid ""
+"see\n"
+"B<sess>.\n"
+"(alias\n"
+"B<sess>, B<session>)."
+msgstr ""
+"див.\n"
+"B<sess>.\n"
+"(альтернатива\n"
+"B<sess>, B<session>)."
+
+#. type: tbl table
+#: ../man/ps.1:1679
+#, no-wrap
+msgid "sig"
+msgstr "sig"
+
+#. type: tbl table
+#: ../man/ps.1:1684
+#, no-wrap
+msgid ""
+"see\n"
+"B<pending>.\n"
+"(alias\n"
+"B<pending>, B<sig_pend>)."
+msgstr ""
+"див.\n"
+"B<pending>.\n"
+"(альтернатива\n"
+"B<pending>, B<sig_pend>)."
+
+#. type: tbl table
+#: ../man/ps.1:1686
+#, no-wrap
+msgid "sigcatch"
+msgstr "sigcatch"
+
+#. type: tbl table
+#: ../man/ps.1:1691
+#, no-wrap
+msgid ""
+"see\n"
+"B<caught>.\n"
+"(alias\n"
+"B<caught>, B<sig_catch>)."
+msgstr ""
+"див.\n"
+"B<caught>.\n"
+"(альтернатива\n"
+"B<caught>, B<sig_catch>)."
+
+#. type: tbl table
+#: ../man/ps.1:1693
+#, no-wrap
+msgid "sigignore"
+msgstr "sigignore"
+
+#. type: tbl table
+#: ../man/ps.1:1698
+#, no-wrap
+msgid ""
+"see\n"
+"B<ignored>.\n"
+"(alias\n"
+"B<ignored>, B<sig_ignore>)."
+msgstr ""
+"див.\n"
+"B<ignored>.\n"
+"(альтернатива\n"
+"B<ignored>, B<sig_ignore>)."
+
+#. type: tbl table
+#: ../man/ps.1:1700
+#, no-wrap
+msgid "sigmask"
+msgstr "sigmask"
+
+#. type: tbl table
+#: ../man/ps.1:1705
+#, no-wrap
+msgid ""
+"see\n"
+"B<blocked>.\n"
+"(alias\n"
+"B<blocked>, B<sig_block>)."
+msgstr ""
+"див.\n"
+"B<blocked>.\n"
+"(альтернатива\n"
+"B<blocked>, B<sig_block>)."
+
+#. type: tbl table
+#: ../man/ps.1:1707
+#, no-wrap
+msgid "SIZE"
+msgstr "SIZE"
+
+#. type: tbl table
+#: ../man/ps.1:1711
+#, no-wrap
+msgid ""
+"approximate amount of swap space that would be required if the process were\n"
+"to dirty all writable pages and then be swapped out. This number is very\n"
+"rough!"
+msgstr "приблизний обÑÑг проÑтору резервної пам'ÑÑ‚Ñ–, Ñкий знадобитьÑÑ, Ñкщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ñ–Ð¿Ñує уÑÑ– запиÑувані Ñторінки з наÑтупним витіÑненнÑм до резервної пам'ÑÑ‚Ñ–. Це чиÑлове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¾Ð±Ñ‡Ð¸Ñлено доÑить грубо!"
+
+#. type: tbl table
+#: ../man/ps.1:1713
+#, no-wrap
+msgid "slice"
+msgstr "slice"
+
+#. type: tbl table
+#: ../man/ps.1:1713
+#, no-wrap
+msgid "SLICE"
+msgstr "SLICE"
+
+#. type: tbl table
+#: ../man/ps.1:1716
+#, no-wrap
+msgid ""
+"displays the slice unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr ""
+"показує модуль зрізу, до Ñкого належить процеÑ,\n"
+"Ñкщо було включено підтримку systemd."
+
+#. type: tbl table
+#: ../man/ps.1:1718
+#, no-wrap
+msgid "spid"
+msgstr "spid"
+
+#. type: tbl table
+#: ../man/ps.1:1718
+#, no-wrap
+msgid "SPID"
+msgstr "SPID"
+
+#. type: tbl table
+#: ../man/ps.1:1723
+#, no-wrap
+msgid ""
+"see\n"
+"B<lwp>.\n"
+"(alias\n"
+"B<lwp>, B<tid>)."
+msgstr ""
+"див.\n"
+"B<lwp>.\n"
+"(альтернативи\n"
+"B<lwp>, B<tid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1725
+#, no-wrap
+msgid "stackp"
+msgstr "stackp"
+
+#. type: tbl table
+#: ../man/ps.1:1725
+#, no-wrap
+msgid "STACKP"
+msgstr "STACKP"
+
+#. type: tbl table
+#: ../man/ps.1:1727
+#, no-wrap
+msgid "address of the bottom (start) of stack for the process."
+msgstr "адреÑа низу (початку) Ñтека Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу."
+
+#. type: tbl table
+#: ../man/ps.1:1729
+#, no-wrap
+msgid "start"
+msgstr "start"
+
+#. type: tbl table
+#: ../man/ps.1:1734
+#, no-wrap
+msgid ""
+"time the command started. If the process was started less than 24 hours ago,\n"
+"the output format is \"HH:MM:SS\", else it is \"\\ \\ Mmm\\ dd\" (where Mmm is a\n"
+"three-letter month name). See also\n"
+"B<bsdstart>, B<start>, B<start_time>, and B<stime>."
+msgstr ""
+"Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку команди. Якщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±ÑƒÐ»Ð¾ запущено менше ніж 24 години тому,\n"
+"буде виведено дані у форматі «ГГ:ХХ:СС», інакше, дані буде виведено у форматі «\\ \\ Ммм\\ дд» (де «Ммм» —\n"
+"трилітерне ÑÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸ міÑÑцÑ). Див. також\n"
+"B<bsdstart>, B<start>, B<start_time> Ñ– B<stime>."
+
+#. type: tbl table
+#: ../man/ps.1:1743
+#, no-wrap
+msgid ""
+"starting time or date of the process. Only the year will be displayed if the\n"
+"process was not started the same year\n"
+"B<ps>\n"
+"was invoked, or \"MmmDD\" if it was not started the same day, or \"HH:MM\"\n"
+"otherwise. See also\n"
+"B<bsdstart>, B<start>, B<lstart>, and B<stime>."
+msgstr "Ñ‡Ð°Ñ Ð°Ð±Ð¾ дата запуÑку процеÑу. Якщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ðµ було запущено року, коли було викликано B<ps>, буде показано лише рік або «МммДД», Ñкщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ðµ було запущено у той Ñамий день, або «ГГ:ХХ» у інших випадках. Див. також B<bsdstart>, B<start>, B<lstart> Ñ– B<stime>."
+
+#. type: tbl table
+#: ../man/ps.1:1745
+#, no-wrap
+msgid "stat"
+msgstr "stat"
+
+#. type: tbl table
+#: ../man/ps.1:1745
+#, no-wrap
+msgid "STAT"
+msgstr "STAT"
+
+#. type: tbl table
+#: ../man/ps.1:1751
+#, no-wrap
+msgid ""
+"multi-character process state. See section\n"
+"B<PROCESS STATE CODES>\n"
+"for the different values meaning. See also\n"
+"B<s>\\ andB<\\ state>\n"
+"if you just want the first character displayed."
+msgstr "багатоÑимвольний Ñтан процеÑу. Див. розділ B<КОДИ СТÐÐІВ ПРОЦЕСУ>, щоб дізнатиÑÑ Ð¿Ñ€Ð¾ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ€Ñ–Ð·Ð½Ð¸Ñ… значень. Див. також B<s> Ñ– B<state>, Ñкщо ви проÑто хочете бачити перший Ñимвол."
+
+#. type: tbl table
+#: ../man/ps.1:1753
+#, no-wrap
+msgid "state"
+msgstr "state"
+
+#. type: tbl table
+#: ../man/ps.1:1756
+#, no-wrap
+msgid ""
+"see\n"
+"B<s>.\\& (aliasB<\\ s>)."
+msgstr ""
+"див.\n"
+"B<s>.\\& (альтернатива B<\\ s>)."
+
+#. type: tbl table
+#: ../man/ps.1:1758
+#, no-wrap
+msgid "stime"
+msgstr "stime"
+
+#. type: tbl table
+#: ../man/ps.1:1758
+#, no-wrap
+msgid "STIME"
+msgstr "STIME"
+
+#. type: tbl table
+#: ../man/ps.1:1760
+#, no-wrap
+msgid "see B<start_time>. (alias B<start_time>)."
+msgstr "див. B<start_time>. (альтернатива B<start_time>)."
+
+#. type: tbl table
+#: ../man/ps.1:1762
+#, no-wrap
+msgid "suid"
+msgstr "suid"
+
+#. type: tbl table
+#: ../man/ps.1:1762
+#, no-wrap
+msgid "SUID"
+msgstr "SUID"
+
+#. type: tbl table
+#: ../man/ps.1:1765
+#, no-wrap
+msgid ""
+"saved user ID. (alias\n"
+"B<svuid>)."
+msgstr "збережений ідентифікатор кориÑтувача (альтернатива – B<svuid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1767
+#, no-wrap
+msgid "supgid"
+msgstr "supgid"
+
+#. type: tbl table
+#: ../man/ps.1:1767
+#, no-wrap
+msgid "SUPGID"
+msgstr "SUPGID"
+
+#. type: tbl table
+#: ../man/ps.1:1770
+#, no-wrap
+msgid ""
+"group ids of supplementary groups, if any. See\n"
+"B<getgroups>(2)."
+msgstr "ідентифікатори груп Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð¼Ñ–Ð¶Ð½Ð¸Ñ… груп, Ñкщо такі Ñ”. Див. B<getgroups>(2)."
+
+#. type: tbl table
+#: ../man/ps.1:1772
+#, no-wrap
+msgid "supgrp"
+msgstr "supgrp"
+
+#. type: tbl table
+#: ../man/ps.1:1772
+#, no-wrap
+msgid "SUPGRP"
+msgstr "SUPGRP"
+
+#. type: tbl table
+#: ../man/ps.1:1775
+#, no-wrap
+msgid ""
+"group names of supplementary groups, if any. See\n"
+"B<getgroups>(2)."
+msgstr "назви груп Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð¼Ñ–Ð¶Ð½Ð¸Ñ… груп, Ñкщо такі Ñ”. Див. B<getgroups>(2)."
+
+#. type: tbl table
+#: ../man/ps.1:1777
+#, no-wrap
+msgid "suser"
+msgstr "suser"
+
+#. type: tbl table
+#: ../man/ps.1:1777
+#, no-wrap
+msgid "SUSER"
+msgstr "SUSER"
+
+#. type: tbl table
+#: ../man/ps.1:1781
+#, no-wrap
+msgid ""
+"saved user name. This will be the textual user ID, if it can be obtained and\n"
+"the field width permits, or a decimal representation otherwise. (alias\n"
+"B<svuser>)."
+msgstr "збережене ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача. Це буде текÑтовий ідентифікатор кориÑтувача, Ñкщо його можна отримати Ñ– поле Ñ” доÑтатньо широким, або чиÑлове предÑтавленнÑ, Ñкщо це не так (альтернатива – B<svuser>)."
+
+#. type: tbl table
+#: ../man/ps.1:1783
+#, no-wrap
+msgid "svgid"
+msgstr "svgid"
+
+#. type: tbl table
+#: ../man/ps.1:1783
+#, no-wrap
+msgid "SVGID"
+msgstr "SVGID"
+
+#. type: tbl table
+#: ../man/ps.1:1788
+#, no-wrap
+msgid ""
+"see\n"
+"B<sgid>.\n"
+"(alias\n"
+"B<sgid>)."
+msgstr "див. B<sgid> (альтернатива – B<sgid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1790
+#, no-wrap
+msgid "svuid"
+msgstr "svuid"
+
+#. type: tbl table
+#: ../man/ps.1:1790
+#, no-wrap
+msgid "SVUID"
+msgstr "SVUID"
+
+#. type: tbl table
+#: ../man/ps.1:1795
+#, no-wrap
+msgid ""
+"see\n"
+"B<suid>.\n"
+"(alias\n"
+"B<suid>)."
+msgstr ""
+"див.\n"
+"B<suid>.\n"
+"(альтернатива\n"
+"B<suid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1797
+#, no-wrap
+msgid "sz"
+msgstr "sz"
+
+#. type: tbl table
+#: ../man/ps.1:1797
+#, no-wrap
+msgid "SZ"
+msgstr "SZ"
+
+#. type: tbl table
+#: ../man/ps.1:1802
+#, no-wrap
+msgid ""
+"size in physical pages of the core image of the process. This includes text,\n"
+"data, and stack space. Device mappings are currently excluded; this is\n"
+"subject to change. See\n"
+"B<vsz>\\ andB<\\ rss>."
+msgstr "розмір у фізичних Ñторінках образу Ñдра процеÑу. Це включає текÑÑ‚, дані та Ñтек. У поточній верÑÑ–Ñ— прив'Ñзки до приÑтроїв виключено; це може змінитиÑÑ. Див. B<vsz> Ñ– B<rss>."
+
+#. type: tbl table
+#: ../man/ps.1:1804
+#, no-wrap
+msgid "tgid"
+msgstr "tgid"
+
+#. type: tbl table
+#: ../man/ps.1:1804
+#, no-wrap
+msgid "TGID"
+msgstr "TGID"
+
+#. type: tbl table
+#: ../man/ps.1:1808
+#, no-wrap
+msgid ""
+"a number representing the thread group to which a task belongs (alias\n"
+"B<pid>).\n"
+"It is the process ID of the thread group leader."
+msgstr "чиÑло, Ñке відповідає групі потоків обробки, Ñким належить Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ (альтернатива – B<pid>). Це ідентифікатор процеÑу лідера групи потоків обробки."
+
+#. type: tbl table
+#: ../man/ps.1:1810
+#, no-wrap
+msgid "thcount"
+msgstr "thcount"
+
+#. type: tbl table
+#: ../man/ps.1:1810
+#, no-wrap
+msgid "THCNT"
+msgstr "THCNT"
+
+#. type: tbl table
+#: ../man/ps.1:1816
+#, no-wrap
+msgid ""
+"see\n"
+"B<nlwp>.\n"
+"(alias\n"
+"B<nlwp>).\n"
+"number of kernel threads owned by the process."
+msgstr "див. B<nlwp> (альтернатива – B<nlwp>), кількіÑÑ‚ÑŒ потоків обробки Ñдра, влаÑником Ñких Ñ” процеÑ."
+
+#. type: tbl table
+#: ../man/ps.1:1818
+#, no-wrap
+msgid "tid"
+msgstr "tid"
+
+#. type: tbl table
+#: ../man/ps.1:1818
+#, no-wrap
+msgid "TID"
+msgstr "TID"
+
+#. type: tbl table
+#: ../man/ps.1:1825
+#, no-wrap
+msgid ""
+"the unique number representing a dispatchable entity (alias\n"
+"B<spid>, B<tid>).\n"
+"This value may also appear as: a process ID (pid); a process group ID (pgrp);\n"
+"a session ID for the session leader (sid); a thread group ID for the thread\n"
+"group leader (tgid); and a tty process group ID for the process group leader\n"
+"(tpgid)."
+msgstr "унікальне чиÑло, що відповідає розподілюваному запиÑу (альтернатива – B<spid>, B<spid>). Це Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ðµ також бути показано Ñк ідентифікатор процеÑу (pid); ідентифікатор групи процеÑів (pgrp); ідентифікатор ÑеанÑу Ð´Ð»Ñ Ð»Ñ–Ð´ÐµÑ€Ð° ÑеанÑу (sid); ідентифікатор групи потоків Ð´Ð»Ñ Ð»Ñ–Ð´ÐµÑ€Ð° групи потоків (tgid) та ідентифікатор групи процеÑів термінала Ð´Ð»Ñ Ð»Ñ–Ð´ÐµÑ€Ð° групи процеÑів (tpgid)."
+
+#. type: tbl table
+#: ../man/ps.1:1830
+#, no-wrap
+msgid ""
+"cumulative CPU\\ time, \"[DD-]HH:MM:SS\" format. (alias\n"
+"B<cputime>)."
+msgstr "накопичувальний Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора у форматі «[ДД-]ГГ:ХХ:СС» (альтернатива — B<cputime>)."
+
+#. type: tbl table
+#: ../man/ps.1:1832
+#, no-wrap
+msgid "timens"
+msgstr "timens"
+
+#. type: tbl table
+#: ../man/ps.1:1832
+#, no-wrap
+msgid "TIMENS"
+msgstr "TIMENS"
+
+#. type: tbl table
+#: ../man/ps.1:1838
+#, no-wrap
+msgid "times"
+msgstr "times"
+
+#. type: tbl table
+#: ../man/ps.1:1841
+#, no-wrap
+msgid ""
+"cumulative CPU\\ time in seconds (alias\n"
+"B<cputimes>)."
+msgstr "накопичувальний Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора у Ñекундах (альтернатива – B<cputimes>)."
+
+#. type: tbl table
+#: ../man/ps.1:1843
+#, no-wrap
+msgid "tname"
+msgstr "tname"
+
+#. type: tbl table
+#: ../man/ps.1:1846
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tt>, B<tty>)."
+msgstr "керівний tty (термінал) (альтернатива – B<tt>, B<tty>)."
+
+#. type: tbl table
+#: ../man/ps.1:1848
+#, no-wrap
+msgid "TPGID"
+msgstr "TPGID"
+
+#. type: tbl table
+#: ../man/ps.1:1851
+#, no-wrap
+msgid ""
+"ID of the foreground process group on the tty (terminal) that the process is\n"
+"connected to, or -1 if the process is not connected to a tty."
+msgstr "ідентифікатор оÑновної групи процеÑів на tty (термінала), з Ñким з'єднано процеÑ, або -1, Ñкщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ðµ з'єднано з терміналом."
+
+#. type: tbl table
+#: ../man/ps.1:1853
+#, no-wrap
+msgid "trs"
+msgstr "trs"
+
+#. type: tbl table
+#: ../man/ps.1:1853
+#, no-wrap
+msgid "TRS"
+msgstr "TRS"
+
+#. type: tbl table
+#: ../man/ps.1:1855
+#, no-wrap
+msgid "text resident set size, the amount of physical memory devoted to executable code."
+msgstr "розмір резидентного набору текÑтових даних, обÑÑг фізичної пам'ÑÑ‚Ñ–, Ñку викориÑтано Ð´Ð»Ñ Ð´Ð°Ð½Ð¸Ñ… виконуваного коду."
+
+#. type: tbl table
+#: ../man/ps.1:1857
+#, no-wrap
+msgid "tt"
+msgstr "tt"
+
+#. type: tbl table
+#: ../man/ps.1:1857 ../man/ps.1:1862
+#, no-wrap
+msgid "TT"
+msgstr "TT"
+
+#. type: tbl table
+#: ../man/ps.1:1860
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tname>, B<tty>)."
+msgstr "керівний tty (термінал) (альтернатива – B<tname>, B<tty>)."
+
+#. type: tbl table
+#: ../man/ps.1:1865
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tname>, B<tt>)."
+msgstr "керівний tty (термінал) (альтернатива – B<tname>, B<tt>)."
+
+#. type: tbl table
+#: ../man/ps.1:1867
+#, no-wrap
+msgid "ucmd"
+msgstr "ucmd"
+
+#. type: tbl table
+#: ../man/ps.1:1872
+#, no-wrap
+msgid ""
+"see\n"
+"B<comm>.\n"
+"(alias\n"
+"B<comm>, B<ucomm>)."
+msgstr ""
+"див.\n"
+"B<comm>\n"
+"(альтернатива –\n"
+"B<comm>, B<ucomm>)."
+
+#. type: tbl table
+#: ../man/ps.1:1874
+#, no-wrap
+msgid "ucomm"
+msgstr "ucomm"
+
+#. type: tbl table
+#: ../man/ps.1:1879
+#, no-wrap
+msgid ""
+"see\n"
+"B<comm>.\n"
+"(alias\n"
+"B<comm>, B<ucmd>)."
+msgstr ""
+"див.\n"
+"B<comm>.\n"
+"(альтернативи\n"
+"B<comm>, B<ucmd>)."
+
+#. type: tbl table
+#: ../man/ps.1:1881
+#, no-wrap
+msgid "UID"
+msgstr "UID"
+
+#. type: tbl table
+#: ../man/ps.1:1886
+#, no-wrap
+msgid ""
+"see\n"
+"B<euid>.\n"
+"(alias\n"
+"B<euid>)."
+msgstr ""
+"див.\n"
+"B<euid>.\n"
+"(альтернатива\n"
+"B<euid>)."
+
+#. type: tbl table
+#: ../man/ps.1:1888
+#, no-wrap
+msgid "uname"
+msgstr "uname"
+
+#. type: tbl table
+#: ../man/ps.1:1893
+#, no-wrap
+msgid ""
+"see\n"
+"B<euser>.\n"
+"(alias\n"
+"B<euser>, B<user>)."
+msgstr ""
+"див.\n"
+"B<euser>.\n"
+"(альтернативи\n"
+"B<euser>, B<user>)."
+
+#. type: tbl table
+#: ../man/ps.1:1895
+#, no-wrap
+msgid "unit"
+msgstr "unit"
+
+#. type: tbl table
+#: ../man/ps.1:1895
+#, no-wrap
+msgid "UNIT"
+msgstr "UNIT"
+
+#. type: tbl table
+#: ../man/ps.1:1898
+#, no-wrap
+msgid ""
+"displays unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr ""
+"показує модуль, до Ñкого належить процеÑ,\n"
+"Ñкщо було включено підтримку systemd."
+
+#. type: tbl table
+#: ../man/ps.1:1905
+#, no-wrap
+msgid ""
+"see\n"
+"B<euser>.\n"
+"(alias\n"
+"B<euser>, B<uname>)."
+msgstr ""
+"див.\n"
+"B<euser>.\n"
+"(альтернативи\n"
+"B<euser>, B<uname>)."
+
+#. type: tbl table
+#: ../man/ps.1:1907
+#, no-wrap
+msgid "userns"
+msgstr "userns"
+
+#. type: tbl table
+#: ../man/ps.1:1907
+#, no-wrap
+msgid "USERNS"
+msgstr "USERNS"
+
+#. type: tbl table
+#: ../man/ps.1:1913
+#, no-wrap
+msgid "uss"
+msgstr "uss"
+
+#. type: tbl table
+#: ../man/ps.1:1913
+#, no-wrap
+msgid "USS"
+msgstr "USS"
+
+#. type: tbl table
+#: ../man/ps.1:1916
+#, no-wrap
+msgid ""
+"Unique set size, the non-swapped physical memory, which\n"
+"is not shared with an another task."
+msgstr "Розмір унікального набору, нерезервована фізична пам'ÑÑ‚ÑŒ, Ñку не викориÑтано Ñпільно з іншими завданнÑми."
+
+#. type: tbl table
+#: ../man/ps.1:1918
+#, no-wrap
+msgid "utsns"
+msgstr "utsns"
+
+#. type: tbl table
+#: ../man/ps.1:1918
+#, no-wrap
+msgid "UTSNS"
+msgstr "UTSNS"
+
+#. type: tbl table
+#: ../man/ps.1:1924
+#, no-wrap
+msgid "uunit"
+msgstr "uunit"
+
+#. type: tbl table
+#: ../man/ps.1:1924
+#, no-wrap
+msgid "UUNIT"
+msgstr "UUNIT"
+
+#. type: tbl table
+#: ../man/ps.1:1927
+#, no-wrap
+msgid ""
+"displays user unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr ""
+"показує модуль кориÑтувача, до Ñкого належить процеÑ,\n"
+"Ñкщо було включено підтримку systemd."
+
+#. type: tbl table
+#: ../man/ps.1:1934
+#, no-wrap
+msgid ""
+"see\n"
+"B<vsz>.\n"
+"(alias\n"
+"B<vsz>)."
+msgstr ""
+"див.\n"
+"B<vsz>.\n"
+"(альтернатива\n"
+"B<vsz>)."
+
+#. type: tbl table
+#: ../man/ps.1:1940
+#, no-wrap
+msgid ""
+"virtual memory size of the process in KiB (1024-byte units). Device\n"
+"mappings are currently excluded; this is subject to change. (alias\n"
+"B<vsize>)."
+msgstr "розмір віртуальної пам'ÑÑ‚Ñ– процеÑу у КіБ (1024-байтових одиницÑÑ…). У поточній верÑÑ–Ñ— прив'Ñзки до приÑтроїв буде виключено; це може бути змінено у майбутніх верÑÑ–ÑÑ… (альтернатива – B<vsize>)."
+
+#. type: tbl table
+#: ../man/ps.1:1942
+#, no-wrap
+msgid "wbytes"
+msgstr "wbytes"
+
+#. type: tbl table
+#: ../man/ps.1:1942
+#, no-wrap
+msgid "WBYTES"
+msgstr "WBYTES"
+
+#. type: tbl table
+#: ../man/ps.1:1944
+#, no-wrap
+msgid "Number of bytes which this process caused to be sent to the storage layer."
+msgstr "КількіÑÑ‚ÑŒ байтів, Ñкі було надіÑлано до шару Ñховища завдÑки цьому процеÑу."
+
+#. type: tbl table
+#: ../man/ps.1:1946
+#, no-wrap
+msgid "wcbytes"
+msgstr "wcbytes"
+
+#. type: tbl table
+#: ../man/ps.1:1946
+#, no-wrap
+msgid "WCBYTES"
+msgstr "WCBYTES"
+
+#. type: tbl table
+#: ../man/ps.1:1948
+#, no-wrap
+msgid "Number of cancelled write bytes."
+msgstr "КількіÑÑ‚ÑŒ байтів, Ð·Ð°Ð¿Ð¸Ñ Ñких ÑкаÑовано."
+
+#. type: tbl table
+#: ../man/ps.1:1950
+#, no-wrap
+msgid "wchan"
+msgstr "wchan"
+
+#. type: tbl table
+#: ../man/ps.1:1952
+#, no-wrap
+msgid "name of the kernel function in which the process is sleeping."
+msgstr "назва функції Ñдра, у Ñкий Ñпить процеÑ."
+
+#. type: tbl table
+#: ../man/ps.1:1954
+#, no-wrap
+msgid "wchars"
+msgstr "wchars"
+
+#. type: tbl table
+#: ../man/ps.1:1954
+#, no-wrap
+msgid "WCHARS"
+msgstr "WCHARS"
+
+#. type: tbl table
+#: ../man/ps.1:1956
+#, no-wrap
+msgid "Number of bytes which this task has caused, or shall cause to be written to disk."
+msgstr "КількіÑÑ‚ÑŒ байтів, Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° диÑк Ñких було Ñпричинено або буде Ñпричинено цим завданнÑм."
+
+#. type: tbl table
+#: ../man/ps.1:1958
+#, no-wrap
+msgid "wops"
+msgstr "wops"
+
+#. type: tbl table
+#: ../man/ps.1:1958
+#, no-wrap
+msgid "WOPS"
+msgstr "WOPS"
+
+#. type: tbl table
+#: ../man/ps.1:1961
+#, no-wrap
+msgid ""
+"Number of write I/O operations—that is, system calls such as\n"
+"B<write>(2) and B<pwrite>(2)."
+msgstr "КількіÑÑ‚ÑŒ дій з введеннÑ-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу, тобто ÑиÑтемних викликів B<write>(2) Ñ– B<pwrite>(2)."
+
+#. type: SH
+#: ../man/ps.1:1964
+#, no-wrap
+msgid "ENVIRONMENT VARIABLES"
+msgstr "ЗМІÐÐІ СЕРЕДОВИЩÐ"
+
+#. type: Plain text
+#: ../man/ps.1:1967
+msgid "The following environment variables could affect B<ps>:"
+msgstr "Ðа роботу B<ps> можуть впливати такі змінні Ñередовища:"
+
+#. type: TP
+#: ../man/ps.1:1967
+#, no-wrap
+msgid "B<COLUMNS>"
+msgstr "B<COLUMNS>"
+
+#. type: Plain text
+#: ../man/ps.1:1970
+msgid "Override default display width."
+msgstr "Перевизначити типову ширину диÑплеÑ."
+
+#. type: TP
+#: ../man/ps.1:1970
+#, no-wrap
+msgid "B<LINES>"
+msgstr "B<LINES>"
+
+#. type: Plain text
+#: ../man/ps.1:1973
+msgid "Override default display height."
+msgstr "Перевизначити типову виÑоту диÑплеÑ."
+
+#. type: TP
+#: ../man/ps.1:1973
+#, no-wrap
+msgid "B<PS_PERSONALITY>"
+msgstr "B<PS_PERSONALITY>"
+
+#. type: Plain text
+#: ../man/ps.1:1978 ../man/ps.1:1983
+msgid "Set to one of posix, old, linux, bsd, sun, digital...\\& (see section B<PERSONALITY> below)."
+msgstr "Ð’Ñтановлюють одне зі значень: posix, old, linux, bsd, sun, digital...\\& (див. розділ B<УОСОБЛЕÐÐЯ> нижче)."
+
+#. type: TP
+#: ../man/ps.1:1978
+#, no-wrap
+msgid "B<CMD_ENV>"
+msgstr "B<CMD_ENV>"
+
+#. type: TP
+#: ../man/ps.1:1983
+#, no-wrap
+msgid "B<I_WANT_A_BROKEN_PS>"
+msgstr "B<I_WANT_A_BROKEN_PS>"
+
+#. type: Plain text
+#: ../man/ps.1:1986
+msgid "Force obsolete command line interpretation."
+msgstr "ПримуÑово викориÑтатиÑÑ Ð·Ð°Ñтарілу інтерпретацію Ñ€Ñдка команди."
+
+#. type: TP
+#: ../man/ps.1:1986
+#, no-wrap
+msgid "B<LC_TIME>"
+msgstr "B<LC_TIME>"
+
+#. type: Plain text
+#: ../man/ps.1:1989
+msgid "Date format."
+msgstr "Формат дати."
+
+#. type: TP
+#: ../man/ps.1:1989
+#, no-wrap
+msgid "B<LIBPROC_HIDE_KERNEL>"
+msgstr "B<LIBPROC_HIDE_KERNEL>"
+
+#. type: Plain text
+#: ../man/ps.1:1996
+msgid "Set this to any value to hide kernel threads normally displayed with the B<-e> option. This is equivalent to selecting B<--ppid 2 -p 2 --deselect> instead. Also works in BSD mode."
+msgstr "Ð’Ñтановіть будь-Ñке значеннÑ, щоб приховати потоки обробки Ñдра, Ñкі зазвичай буде показано при викориÑтанні параметра B<-e>. Еквівалент вибору B<--ppid 2 -p 2 --deselect>. Також працює у режимі BSD."
+
+#. type: TP
+#: ../man/ps.1:1996
+#, no-wrap
+msgid "B<PS_COLORS>"
+msgstr "B<PS_COLORS>"
+
+#. type: Plain text
+#: ../man/ps.1:1999
+msgid "Not currently supported."
+msgstr "У поточній верÑÑ–Ñ— підтримки не передбачено."
+
+#. type: TP
+#: ../man/ps.1:1999
+#, no-wrap
+msgid "B<PS_FORMAT>"
+msgstr "B<PS_FORMAT>"
+
+#. type: Plain text
+#: ../man/ps.1:2010
+msgid "Default output format override. You may set this to a format string of the type used for the B<-o> option. The B<DefSysV> and B<DefBSD> values are particularly useful."
+msgstr "ÐŸÐµÑ€ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ð³Ð¾ формату виведеннÑ. Ви можете вÑтановити Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ— змінної Ñ€Ñдок Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð¸Ð¿Ñƒ, Ñкий викориÑтовують Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° B<-o>. Зокрема, кориÑними будуть Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ B<DefSysV> Ñ– B<DefBSD>."
+
+#. type: TP
+#: ../man/ps.1:2010
+#, no-wrap
+msgid "B<POSIXLY_CORRECT>"
+msgstr "B<POSIXLY_CORRECT>"
+
+#. type: Plain text
+#: ../man/ps.1:2013 ../man/ps.1:2020
+msgid "Don't find excuses to ignore bad \"features\"."
+msgstr "Ðе шукати виправдань Ñ–Ð³Ð½Ð¾Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ñ… «можливоÑтей»."
+
+#. type: TP
+#: ../man/ps.1:2013
+#, no-wrap
+msgid "B<POSIX2>"
+msgstr "B<POSIX2>"
+
+#. type: Plain text
+#: ../man/ps.1:2017
+msgid "When set to \"on\", acts as B<POSIXLY_CORRECT>."
+msgstr "Якщо вÑтановлено «on», працює Ñк B<POSIXLY_CORRECT>."
+
+#. type: TP
+#: ../man/ps.1:2017
+#, no-wrap
+msgid "B<UNIX95>"
+msgstr "B<UNIX95>"
+
+#. type: TP
+#: ../man/ps.1:2020
+#, no-wrap
+msgid "B<_XPG>"
+msgstr "B<_XPG>"
+
+#. type: Plain text
+#: ../man/ps.1:2026
+msgid "Cancel B<CMD_ENV>=I<irix> non-standard behavior."
+msgstr "СкаÑувати неÑтандартну поведінку B<CMD_ENV>=I<irix>."
+
+#. type: Plain text
+#: ../man/ps.1:2034
+msgid "In general, it is a bad idea to set these variables. The one exception is B<CMD_ENV> or B<PS_PERSONALITY>, which could be set to Linux for normal systems. Without that setting, B<ps> follows the useless and bad parts of the Unix98 standard."
+msgstr "Загалом, не варто вÑтановлювати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ†Ð¸Ñ… змінних. Єдиним виключеннÑм Ñ” B<CMD_ENV> або B<PS_PERSONALITY>, Ð´Ð»Ñ Ñких можна вÑтановити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Linux Ð´Ð»Ñ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¸Ñ… ÑиÑтем. Без вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ B<ps> виконуватиме непотрібні Ñ– неÑкіÑні чаÑтини Ñтандарту Unix98."
+
+#. type: SH
+#: ../man/ps.1:2034
+#, no-wrap
+msgid "PERSONALITY"
+msgstr "УОСОБЛЕÐÐЯ"
+
+#. type: tbl table
+#: ../man/ps.1:2037
+#, no-wrap
+msgid "390"
+msgstr "390"
+
+#. type: tbl table
+#: ../man/ps.1:2037
+#, no-wrap
+msgid "like the OS/390 OpenEdition B<ps>"
+msgstr "подібний до B<ps> Ð´Ð»Ñ OS/390 OpenEdition"
+
+#. type: tbl table
+#: ../man/ps.1:2038
+#, no-wrap
+msgid "aix"
+msgstr "aix"
+
+#. type: tbl table
+#: ../man/ps.1:2038
+#, no-wrap
+msgid "like AIX B<ps>"
+msgstr "подібно до B<ps> в AIX"
+
+#. type: tbl table
+#: ../man/ps.1:2039
+#, no-wrap
+msgid "bsd"
+msgstr "bsd"
+
+#. type: tbl table
+#: ../man/ps.1:2039
+#, no-wrap
+msgid "like FreeBSD B<ps> (totally non-standard)"
+msgstr "подібний до B<ps> Ð´Ð»Ñ FreeBSD (повніÑÑ‚ÑŽ неÑтандартний)"
+
+#. type: tbl table
+#: ../man/ps.1:2040
+#, no-wrap
+msgid "compaq"
+msgstr "compaq"
+
+#. type: tbl table
+#: ../man/ps.1:2040
+#, no-wrap
+msgid "like Digital Unix B<ps>"
+msgstr "подібний до B<ps> Ð´Ð»Ñ Digital Unix"
+
+#. type: tbl table
+#: ../man/ps.1:2041
+#, no-wrap
+msgid "debian"
+msgstr "debian"
+
+#. type: tbl table
+#: ../man/ps.1:2041 ../man/ps.1:2043
+#, no-wrap
+msgid "like the old Debian B<ps>"
+msgstr "подібний до B<ps> Ð´Ð»Ñ Ñтарого Debian"
+
+#. type: tbl table
+#: ../man/ps.1:2042
+#, no-wrap
+msgid "digital"
+msgstr "digital"
+
+#. type: tbl table
+#: ../man/ps.1:2042
+#, no-wrap
+msgid "like Tru64 (was Digital\\ Unix, was OSF/1) B<ps>"
+msgstr "подібний до B<ps> Ð´Ð»Ñ Tru64 (раніше Digital\\ Unix, раніше OSF/1)"
+
+#. type: tbl table
+#: ../man/ps.1:2043
+#, no-wrap
+msgid "gnu"
+msgstr "gnu"
+
+#. type: tbl table
+#: ../man/ps.1:2044
+#, no-wrap
+msgid "hp"
+msgstr "к.Ñ."
+
+#. type: tbl table
+#: ../man/ps.1:2044 ../man/ps.1:2045
+#, no-wrap
+msgid "like HP-UX B<ps>"
+msgstr "подібно до B<ps> в HP-UX"
+
+#. type: tbl table
+#: ../man/ps.1:2045
+#, no-wrap
+msgid "hpux"
+msgstr "hpux"
+
+#. type: tbl table
+#: ../man/ps.1:2046
+#, no-wrap
+msgid "irix"
+msgstr "irix"
+
+#. type: tbl table
+#: ../man/ps.1:2046 ../man/ps.1:2053
+#, no-wrap
+msgid "like Irix B<ps>"
+msgstr "подібно до B<ps> в Irix"
+
+#. type: tbl table
+#: ../man/ps.1:2047
+#, no-wrap
+msgid "linux"
+msgstr "linux"
+
+#. type: tbl table
+#: ../man/ps.1:2047
+#, no-wrap
+msgid "***** B<recommended> *****"
+msgstr "***** B<рекомендовано> *****"
+
+#. type: tbl table
+#: ../man/ps.1:2048
+#, no-wrap
+msgid "old"
+msgstr "old"
+
+#. type: tbl table
+#: ../man/ps.1:2048
+#, no-wrap
+msgid "like the original Linux B<ps> (totally non-standard)"
+msgstr "подібний до початкового B<ps> Ð´Ð»Ñ Linux (повніÑÑ‚ÑŽ неÑтандартний)"
+
+#. type: tbl table
+#: ../man/ps.1:2049
+#, no-wrap
+msgid "os390"
+msgstr "os390"
+
+#. type: tbl table
+#: ../man/ps.1:2049 ../man/ps.1:2051
+#, no-wrap
+msgid "like OS/390 Open Edition B<ps>"
+msgstr "подібний до B<ps> в OS/390 Open Edition"
+
+#. type: tbl table
+#: ../man/ps.1:2050
+#, no-wrap
+msgid "posix"
+msgstr "posix"
+
+#. type: tbl table
+#: ../man/ps.1:2050 ../man/ps.1:2056 ../man/ps.1:2057 ../man/ps.1:2059
+#: ../man/ps.1:2060 ../man/ps.1:2061
+#, no-wrap
+msgid "standard"
+msgstr "standard"
+
+#. type: tbl table
+#: ../man/ps.1:2051
+#, no-wrap
+msgid "s390"
+msgstr "s390"
+
+#. type: tbl table
+#: ../man/ps.1:2052
+#, no-wrap
+msgid "sco"
+msgstr "sco"
+
+#. type: tbl table
+#: ../man/ps.1:2052
+#, no-wrap
+msgid "like SCO B<ps>"
+msgstr "подібний до B<ps> Ð´Ð»Ñ SCO"
+
+#. type: tbl table
+#: ../man/ps.1:2053
+#, no-wrap
+msgid "sgi"
+msgstr "sgi"
+
+#. type: tbl table
+#: ../man/ps.1:2054
+#, no-wrap
+msgid "solaris2"
+msgstr "solaris2"
+
+#. type: tbl table
+#: ../man/ps.1:2054
+#, no-wrap
+msgid "like Solaris 2+ (SunOS 5) B<ps>"
+msgstr "подібний до B<ps> Ð´Ð»Ñ Solaris 2+ (SunOS 5)"
+
+#. type: tbl table
+#: ../man/ps.1:2055
+#, no-wrap
+msgid "sunos4"
+msgstr "sunos4"
+
+#. type: tbl table
+#: ../man/ps.1:2055
+#, no-wrap
+msgid "like SunOS 4 (Solaris 1) B<ps> (totally non-standard)"
+msgstr "подібний до B<ps> Ð´Ð»Ñ SunOS 4 (Solaris 1) (повніÑÑ‚ÑŽ неÑтандартний)"
+
+#. type: tbl table
+#: ../man/ps.1:2056
+#, no-wrap
+msgid "svr4"
+msgstr "svr4"
+
+#. type: tbl table
+#: ../man/ps.1:2057
+#, no-wrap
+msgid "sysv"
+msgstr "sysv"
+
+#. type: tbl table
+#: ../man/ps.1:2058
+#, no-wrap
+msgid "tru64"
+msgstr "tru64"
+
+#. type: tbl table
+#: ../man/ps.1:2058
+#, no-wrap
+msgid "like Tru64 (was Digital Unix, was OSF/1) B<ps>"
+msgstr "подібний до B<ps> Ð´Ð»Ñ Tru64 (раніше Digital Unix, раніше OSF/1)"
+
+#. type: tbl table
+#: ../man/ps.1:2059
+#, no-wrap
+msgid "unix"
+msgstr "unix"
+
+#. type: tbl table
+#: ../man/ps.1:2060
+#, no-wrap
+msgid "unix95"
+msgstr "unix95"
+
+#. type: tbl table
+#: ../man/ps.1:2061
+#, no-wrap
+msgid "unix98"
+msgstr "unix98"
+
+#. type: Plain text
+#: ../man/ps.1:2069
+msgid "The fields B<bsdstart> and B<start> will only show the abbreviated month name in English. The fields B<lstart> and B<stime> will show the abbreviated month name in the configured locale but may exceed the column width due to the different lengths for abbreviated month and day names across languages."
+msgstr "У полÑÑ… B<bsdstart> Ñ– B<start> буде показано лише Ñкорочену назву міÑÑÑ†Ñ Ð°Ð½Ð³Ð»Ñ–Ð¹Ñькою. У полÑÑ… B<lstart> Ñ– B<stime> буде показано Ñкорочену назву міÑÑÑ†Ñ Ñƒ налаштованій локалі, але Ñ†Ñ Ð½Ð°Ð·Ð²Ð° може вийти за межі Ñтовпчика через різну довжину Ñкорочених назв міÑÑців та днів у різних мовах."
+
+#. type: Plain text
+#: ../man/ps.1:2076
+msgid "B<pgrep>(1), B<pstree>(1), B<top>(1), B<strftime>(3), B<proc>(5)."
+msgstr "B<pgrep>(1), B<pstree>(1), B<top>(1), B<strftime>(3), B<proc>(5)."
+
+#. type: Plain text
+#: ../man/ps.1:2080
+msgid "This B<ps> conforms to:"
+msgstr "B<ps> Ñ” ÑуміÑним із такими Ñтандартами:"
+
+#. type: Plain text
+#: ../man/ps.1:2084
+msgid "Version 2 of the Single Unix Specification"
+msgstr "ВерÑією 2 Single Unix Specification"
+
+#. type: Plain text
+#: ../man/ps.1:2086
+msgid "The Open Group Technical Standard Base Specifications, Issue\\ 6"
+msgstr "The Open Group Technical Standard Base Specifications, випуÑк\\ 6"
+
+#. type: Plain text
+#: ../man/ps.1:2088
+msgid "IEEE Std 1003.1, 2004\\ Edition"
+msgstr "IEEE Std 1003.1, 2004\\ Edition"
+
+#. type: Plain text
+#: ../man/ps.1:2090
+msgid "X/Open System Interfaces Extension [UP\\ XSI]"
+msgstr "X/Open System Interfaces Extension [UP\\ XSI]"
+
+#. type: IP
+#: ../man/ps.1:2090
+#, no-wrap
+msgid "5"
+msgstr "5"
+
+#. type: Plain text
+#: ../man/ps.1:2092
+msgid "ISO/IEC 9945:2003"
+msgstr "ISO/IEC 9945:2003"
+
+#. type: Plain text
+#: ../man/ps.1:2120
+msgid "B<ps> was originally written by E<.MT lankeste@\\:fwi.\\:uva.\\:nl> Branko Lankester E<.ME .> E<.MT johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.ME> re-wrote it significantly to use the proc filesystem, changing a few things in the process. E<.MT mjshield@\\:nyx.\\:cs.\\:du.\\:edu> Michael Shields E<.ME> added the pid-list feature. E<.MT cblake@\\:bbn.\\:com> Charles Blake E<.ME> added multi-level sorting, the dirent-style library, the device name-to-number mmaped database, the approximate binary search directly on System.map, and many code and documentation cleanups. David Mossberger-Tang wrote the generic BFD support for psupdate. E<.MT albert@\\:users.\\:sf.\\:net> Albert Cahalan E<.ME> rewrote ps for full Unix98 and BSD support, along with some ugly hacks for obsolete and foreign syntax."
+msgstr "Першу верÑÑ–ÑŽ B<ps> було напиÑано E<.MT lankeste@\\:fwi.\\:uva.\\:nl> Branko Lankester E<.ME .> E<.MT johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.ME> значно перепиÑав програму Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð¾Ñ— ÑиÑтеми proc, змінивши декілька речей у процеÑÑ–. E<.MT mjshield@\\:nyx.\\:cs.\\:du.\\:edu> Michael Shields E<.ME> додав можливіÑÑ‚ÑŒ ÑпиÑку pid. E<.MT cblake@\\:bbn.\\:com> Charles Blake E<.ME> додав багаторівневе упорÑдковуваннÑ, бібліотеку у Ñтилі dirent, базу даних із прив'Ñзкою назв приÑтроїв до чиÑел, приблизний двійковий пошук безпоÑередньо у System.map, а також виконав багато упорÑÐ´ÐºÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð´Ñƒ та документації. David Mossberger-Tang напиÑав загальну підтримку BFD Ð´Ð»Ñ psupdate. E<.MT albert@\\:users.\\:sf.\\:net> Albert Cahalan E<.ME> перепиÑав ps з метою повної підтримки Ñтандартів Unix98 та BSD, додавши деÑкий обхідний код Ð´Ð»Ñ Ð·Ð°Ñтарілого Ñ– Ñтороннього ÑинтакÑиÑу."
+
+#. type: Plain text
+#: ../man/ps.1:2124
+msgid "Please send bug reports to E<.MT procps@\\:freelists.\\:org> E<.ME .> No subscription is required or suggested."
+msgstr "Про вади, будь лаÑка, повідомлÑйте на адреÑу E<.MT procps@\\:freelists.\\:org> E<.ME .> ПідпиÑка не Ñ” обов'Ñзковою."
+
+#. Setup ////////////////////////////////////////////////////////////////
+#. Commonly used strings (for consistency) ----------
+#. - our em-dashes
+#. type: ds Em
+#: ../man/top.1:11
+#, no-wrap
+msgid "\\ --\\ "
+msgstr "\\ --\\ "
+
+#. type: ds EM
+#: ../man/top.1:12
+#, no-wrap
+msgid "B<\\ --\\ >"
+msgstr "B<\\ --\\ >"
+
+#. - our program name (makes great grammar)
+#. type: ds We
+#: ../man/top.1:14
+#, no-wrap
+msgid "top"
+msgstr "top"
+
+#. type: ds WE
+#: ../man/top.1:15
+#, no-wrap
+msgid "B<top>"
+msgstr "B<top>"
+
+#. - other misc strs for consistent usage
+#. type: ds F
+#: ../man/top.1:17
+#, no-wrap
+msgid "I<Off>"
+msgstr "I<Вимкнено>"
+
+#. type: ds O
+#: ../man/top.1:18
+#, no-wrap
+msgid "I<On>"
+msgstr "I<Увімкнено>"
+
+#. type: ds AK
+#: ../man/top.1:20
+#, no-wrap
+msgid "asterisk (`*')"
+msgstr "зірочка («*»)"
+
+#. type: ds AM
+#: ../man/top.1:21
+#, no-wrap
+msgid "alternate-display mode"
+msgstr "режим альтернативних показів"
+
+#. type: ds AS
+#: ../man/top.1:22
+#, no-wrap
+msgid "auxiliary storage"
+msgstr "додаткове Ñховище"
+
+#. type: ds CF
+#: ../man/top.1:23
+#, no-wrap
+msgid "configuration file"
+msgstr "файла налаштувань"
+
+#. type: ds CG
+#: ../man/top.1:24
+#, no-wrap
+msgid "`current' window/field group"
+msgstr "`поточне' вікно/група полів"
+
+#. type: ds CI
+#: ../man/top.1:25
+#, no-wrap
+msgid "interactive command"
+msgstr "інтерактивна команда"
+
+#. type: ds CO
+#: ../man/top.1:26
+#, no-wrap
+msgid "command-line option"
+msgstr "параметр командного Ñ€Ñдка"
+
+#. type: ds CT
+#: ../man/top.1:27
+#, no-wrap
+msgid "command toggle"
+msgstr "перемикач команд"
+
+#. type: ds CW
+#: ../man/top.1:28
+#, no-wrap
+msgid "`current' window"
+msgstr "`поточне' вікно"
+
+#. type: ds FG
+#: ../man/top.1:29
+#, no-wrap
+msgid "field group"
+msgstr "група полів"
+
+#. type: ds FM
+#: ../man/top.1:30
+#, no-wrap
+msgid "full-screen mode"
+msgstr "повноекранний режим"
+
+#. type: ds KA
+#: ../man/top.1:31
+#, no-wrap
+msgid "arrow key"
+msgstr "клавіша зі Ñтрілкою"
+
+#. type: ds KS
+#: ../man/top.1:32
+#, no-wrap
+msgid "scrolling key"
+msgstr "клавіша гортаннÑ"
+
+#. type: ds MP
+#: ../man/top.1:33
+#, no-wrap
+msgid "physical memory"
+msgstr "фізична пам'ÑÑ‚ÑŒ"
+
+#. type: ds MS
+#: ../man/top.1:34
+#, no-wrap
+msgid "swap file"
+msgstr "файл резервної пам’ÑÑ‚Ñ–"
+
+#. type: ds MV
+#: ../man/top.1:35
+#, no-wrap
+msgid "virtual memory"
+msgstr "віртуальна пам'ÑÑ‚ÑŒ"
+
+#. type: ds NT
+#: ../man/top.1:36
+#, no-wrap
+msgid "B<Note>:"
+msgstr "B<ЗауваженнÑ>:"
+
+#. type: ds Pu
+#: ../man/top.1:38
+#, no-wrap
+msgid "cpu"
+msgstr "процеÑор"
+
+#. type: ds SA
+#: ../man/top.1:39
+#, no-wrap
+msgid "summary area"
+msgstr "облаÑÑ‚ÑŒ резюме"
+
+#. type: ds TA
+#: ../man/top.1:40
+#, no-wrap
+msgid "task area"
+msgstr "облаÑÑ‚ÑŒ завдань"
+
+#. type: ds TD
+#: ../man/top.1:41
+#, no-wrap
+msgid "task display"
+msgstr "показ завдань"
+
+#. type: ds TT
+#: ../man/top.1:42
+#, no-wrap
+msgid "B<processes> or B<threads>"
+msgstr "B<процеÑів> або B<потоків обробки>"
+
+#. type: ds TW
+#: ../man/top.1:43
+#, no-wrap
+msgid "task window"
+msgstr "вікно завданнÑ"
+
+#. Reference to the various widths/sizes ------------
+#. - the max screen width limit
+#. type: ds WX
+#: ../man/top.1:46
+#, no-wrap
+msgid "512"
+msgstr "512"
+
+#. - the header width w/ all fields
+#. type: ds WF
+#: ../man/top.1:48
+#, no-wrap
+msgid "approximately 250"
+msgstr "приблизно 250"
+
+#. - pid monitoring limit
+#. Xref's that depend on/mention other stuff --------
+#. type: ds Xa
+#: ../man/top.1:51
+#, no-wrap
+msgid "see"
+msgstr "див."
+
+#. type: ds XC
+#: ../man/top.1:52
+#, no-wrap
+msgid "See the"
+msgstr "Див."
+
+#. type: ds Xc
+#: ../man/top.1:53
+#, no-wrap
+msgid "see the"
+msgstr "див."
+
+#. type: ds XT
+#: ../man/top.1:54
+#, no-wrap
+msgid "See topic"
+msgstr "Див. тему"
+
+#. type: ds Xt
+#: ../man/top.1:55
+#, no-wrap
+msgid "see topic"
+msgstr "див. тему"
+
+#. type: ds XX
+#: ../man/top.1:56
+#, no-wrap
+msgid "See `OVERVIEW, Linux Memory Types' for additional details"
+msgstr "Див. «ОГЛЯД, типи пам'ÑÑ‚Ñ– Linux», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ"
+
+#. type: ds ZX
+#: ../man/top.1:57
+#, no-wrap
+msgid "Accessing smaps values is 10x more costly than other memory statistics and data for other users requires root privileges"
+msgstr "ДоÑтуп до значень smaps Ñ” удеÑÑтеро коштовнішим щодо обчиÑлювальних можливоÑтей, ніж доÑтуп до інших ÑтатиÑтичних даних щодо пам'ÑÑ‚Ñ–, а доÑтуп до даних Ð´Ð»Ñ Ñ–Ð½ÑˆÐ¸Ñ… кориÑтувачів потребує привілеїв root."
+
+#. type: TH
+#: ../man/top.1:62
+#, no-wrap
+msgid "TOP"
+msgstr "TOP"
+
+#. type: TH
+#: ../man/top.1:62
+#, no-wrap
+msgid "August 2023"
+msgstr "Ñерпень 2023 року"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:70
+msgid "top - display Linux processes"
+msgstr "top — показ процеÑів Linux"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:75
+msgid "\\*(WE [options]"
+msgstr "\\*(WE [параметри]"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:85
+msgid "The \\*(WE program provides a dynamic real-time view of a running system. It can displayB< system> summary information as well as a list of \\*(TT currently being managed by the Linux kernel. The types of system summary information shown and the types, order and size of information displayed for processes are all user configurable and that configuration can be made persistent across restarts."
+msgstr "Програма \\*(WE забезпечує динамічний переглÑд у режимі реального чаÑу запущеної ÑиÑтеми. Вона може показувати загальні відомоÑÑ‚Ñ– щодо B<ÑиÑтеми>, а також ÑпиÑок \\*(TT, Ñкими зараз керує Ñдро Linux. КориÑтувач може налаштовувати будь-Ñкі типи показаних загальних відомоÑтей щодо ÑиÑтеми, порÑдок Ñ– тип відомоÑтей, Ñкі показано Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑів. ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° зберегти Ñ– відновлювати піÑÐ»Ñ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿ÑƒÑку програми."
+
+#. type: Plain text
+#: ../man/top.1:93
+msgid "The program provides a limited interactive interface for process manipulation as well as a much more extensive interface for personal configuration \\*(Em encompassing every aspect of its operation. And while \\*(WE is referred to throughout this document, you are free to name the program anything you wish. That new name, possibly an alias, will then be reflected on \\*(We's display and used when reading and writing a \\*(CF."
+msgstr "У програмі передбачено обмежений інтерактивний Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð´Ð»Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑами, а також набагато ширший Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð´Ð»Ñ Ð¾ÑобиÑтого Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ \\*(Em він включає уÑÑ– аÑпекти роботи програми. Хоча уÑе це буде опиÑано Ñк \\*(WE у решті цього документа, ви можете назвати програму будь-Ñк. Програму із новою назвою, можливо проÑто альтернативою назви, буде відтворено у показі \\*(We Ñ– викориÑтано Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ‚Ð° запиÑу \\*(CF."
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:95
+#, no-wrap
+msgid "OVERVIEW"
+msgstr "ОГЛЯД"
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:98
+#, no-wrap
+msgid "Documentation"
+msgstr "ДокументаціÑ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:101
+msgid "The remaining Table of Contents"
+msgstr "Решта «ЗміÑту»"
+
+#. type: Plain text
+#: ../man/top.1:141
+#, no-wrap
+msgid ""
+" OVERVIEW\n"
+" Operation\n"
+" Linux Memory Types\n"
+" 1. COMMAND-LINE Options\n"
+" 2. SUMMARY Display\n"
+" a. UPTIME and LOAD Averages\n"
+" b. TASK and CPU States\n"
+" c. MEMORY Usage\n"
+" 3. FIELDS / Columns Display\n"
+" a. DESCRIPTIONS of Fields\n"
+" b. MANAGING Fields\n"
+" 4. INTERACTIVE Commands\n"
+" a. GLOBAL Commands\n"
+" b. SUMMARY AREA Commands\n"
+" c. TASK AREA Commands\n"
+" 1. Appearance\n"
+" 2. Content\n"
+" 3. Size\n"
+" 4. Sorting\n"
+" d. COLOR Mapping\n"
+" 5. ALTERNATE-DISPLAY Provisions\n"
+" a. WINDOWS Overview\n"
+" b. COMMANDS for Windows\n"
+" c. SCROLLING a Window\n"
+" d. SEARCHING in a Window\n"
+" e. FILTERING in a Window\n"
+" 6. FILES\n"
+" a. PERSONAL Configuration File\n"
+" b. ADDING INSPECT Entries\n"
+" c. SYSTEM Configuration File\n"
+" d. SYSTEM Restrictions File\n"
+" 7. ENVIRONMENT VARIABLE(S)\n"
+" 8. STUPID TRICKS Sampler\n"
+" a. Kernel Magic\n"
+" b. Bouncing Windows\n"
+" c. The Big Bird Window\n"
+" d. The Ol' Switcheroo\n"
+" 9. BUGS, 10. SEE Also\n"
+msgstr ""
+" ОГЛЯД\n"
+" Робота програми\n"
+" Типи пам'ÑÑ‚Ñ– Linux\n"
+" 1. ПÐРÐМЕТРИ КОМÐÐДÐОГО РЯДКÐ\n"
+" 2. ПОКÐЗ РЕЗЮМЕ\n"
+" а. СЕРЕДÐІ ЗÐÐЧЕÐÐЯ ЧÐСУ РОБОТИ ТРÐÐÐ’ÐÐТÐЖЕÐÐЯ\n"
+" б. СТÐÐИ ЗÐВДÐÐÐЯ ТРПРОЦЕСОРÐ\n"
+" в. ВИКОРИСТÐÐÐЯ ПÐÐœ'ЯТІ\n"
+" 3. ПОКÐЗ ПОЛІВ / СТОВПЧИКІВ\n"
+" а. ОПИС ПОЛІВ\n"
+" б. КЕРУВÐÐÐЯ ПОЛЯМИ\n"
+" 4. ІÐТЕРÐКТИВÐІ КОМÐÐДИ\n"
+" а. ЗÐГÐЛЬÐІ КОМÐÐДИ\n"
+" б. КОМÐÐДИ ОБЛÐСТІ РЕЗЮМЕ\n"
+" в. КОМÐÐДИ ОБЛÐСТІ ЗÐВДÐÐЬ\n"
+" 1. ВиглÑд\n"
+" 2. ВміÑÑ‚\n"
+" 3. Розмір\n"
+" 4. УпорÑдкуваннÑ\n"
+" г. ПРИВ'ЯЗКРКОЛЬОРІВ\n"
+" 5. ПОЛОЖЕÐÐЯ ÐЛЬТЕРÐÐТИВÐОГО ПОКÐЗУ\n"
+" а. ОГЛЯД ВІКОÐ\n"
+" б. КОМÐÐДИ ДЛЯ ВІКОÐ\n"
+" в. ГОРТÐÐÐЯ ВІКÐÐ\n"
+" г. ПОШУК У ВІКÐІ\n"
+" д. ФІЛЬТРУВÐÐÐЯ У ВІКÐІ\n"
+" 6. ФÐЙЛИ\n"
+" а. ФÐЙЛ ОСОБИСТИХ ÐÐЛÐШТУВÐÐЬ\n"
+" б. ДОДÐÐ’ÐÐÐЯ ЗÐПИСІВ ДЛЯ ІÐСПЕКТУВÐÐÐЯ\n"
+" в. ФÐЙЛ ЗÐГÐЛЬÐОСИСТЕМÐИХ ÐÐЛÐШТУВÐÐЬ\n"
+" г. ФÐЙЛ ЗÐГÐЛЬÐОСИСТЕМÐИХ ОБМЕЖЕÐЬ\n"
+" 7. ЗМІÐÐІ СЕРЕДОВИЩÐ\n"
+" 8. ЗРÐЗКИ ДУРÐУВÐТИХ ТРЮКІВ\n"
+" а. ÐœÐ°Ð³Ñ–Ñ Ñдра\n"
+" b. Вікна-Ñтрибунці\n"
+" c. Вікно Великого Птаха\n"
+" d. Перемикачка\n"
+" 9. Ð’ÐДИ, 10. ДИВ. ТÐКОЖ\n"
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:144
+#, no-wrap
+msgid "Operation"
+msgstr "Робота програми"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:150
+msgid "When operating \\*(We, the two most important keys are the help (h or ?) key and quit (`q') key. Alternatively, you could simply use the traditional interrupt key (^C) when you're done."
+msgstr "При роботі з \\*(We найважливішими клавішами Ñ” клавіша довідки (h або ?) Ñ– клавіша виходу («q»). Крім того, Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ програми ви можете ÑкориÑтатиÑÑ Ñ‚Ñ€Ð°Ð´Ð¸Ñ†Ñ–Ð¹Ð½Ð¾ÑŽ комбінацією Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ð½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ програм (^C)."
+
+#. type: Plain text
+#: ../man/top.1:157
+msgid "When started for the first time, you'll be presented with these traditional elements on the main \\*(We screen: 1) Summary Area; 2) Fields/Columns Header; 3) Task Area. Each of these will be explored in the sections that follow. There is also an Input/Message line between the Summary Area and Columns Header which needs no further explanation."
+msgstr "Під Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку уперше програма покаже вам такі традиційні елементи на головному екрані \\*(We: 1) облаÑÑ‚ÑŒ резюме; 2) заголовок полів/Ñтовпчиків; 3) облаÑÑ‚ÑŒ завдань. ÐžÐ¿Ð¸Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ з цих елементів наведено у наÑтупних розділах. Також ви побачите Ñ€Ñдок введеннÑ/повідомлень між облаÑÑ‚ÑŽ резюме та заголовком Ñтовпчиків. Цей Ñ€Ñдок не потребує зайвих поÑÑнень."
+
+#. type: Plain text
+#: ../man/top.1:165
+msgid "The main \\*(We screen is I<generally> quite adaptive to changes in terminal dimensions under X-Windows. Other \\*(We screens may be less so, especially those with static text. It ultimately depends, however, on your particular window manager and terminal emulator. There may be occasions when their view of terminal size and current contents differs from \\*(We's view, which is always based on operating system calls."
+msgstr "Головна Ñторінка \\*(We I<загалом> Ñ” доволі адаптивною до змін у розмірноÑÑ‚ÑÑ… термінала в X-Window. Інші Ñторінки \\*(We можуть бути менше приÑтоÑовані до змін, оÑобливо Ñторінки зі Ñтатичним текÑтом. Це, втім, повніÑÑ‚ÑŽ залежить від вашої ÑиÑтеми ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–ÐºÐ½Ð°Ð¼Ð¸ та емулÑтора термінала. Може так трапитиÑÑ, що обчиÑÐ»ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ термінала та поточного вміÑту у цих програмах відрізнÑєтьÑÑ Ð²Ñ–Ð´ обчиÑÐ»ÐµÐ½Ð½Ñ Ñƒ \\*(We, Ñке завжди виконуєтьÑÑ Ð½Ð° оÑнові викликів операційної ÑиÑтеми."
+
+#. type: Plain text
+#: ../man/top.1:170
+msgid "Following any re-size operation, if a \\*(We screen is corrupted, appears incomplete or disordered, simply typing something innocuous like a punctuation character or cursor motion key will usually restore it. In extreme cases, the following sequence almost certainly will:"
+msgstr "ПіÑÐ»Ñ Ð±ÑƒÐ´ÑŒ-Ñкої дії зі зміни розмірів, Ñкщо вміÑÑ‚ Ñторінки \\*(We пошкоджено, дані показано не повніÑÑ‚ÑŽ або не впорÑдковано, проÑте Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñ‡Ð¾Ð³Ð¾ÑÑŒ нешкідливого, наприклад Ñимволу пунктуації або клавіші переÑÑƒÐ²Ð°Ð½Ð½Ñ ÐºÑƒÑ€Ñора, зазвичай, відновлює нормальний показ даних. Ð’ екÑтремальних випадках, майже напевно, Ñпрацює така поÑлідовніÑÑ‚ÑŒ:"
+
+#. type: Plain text
+#: ../man/top.1:175
+#, no-wrap
+msgid ""
+" I<key/cmd objective >\n"
+" ^Z B<suspend> \\*(We\n"
+" fg B<resume> \\*(We\n"
+" E<lt>LeftE<gt> force a screen B<redraw> (if necessary)\n"
+msgstr ""
+" I<кл/ком Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ >\n"
+" ^Z B<призупинити> \\*(We\n"
+" fg B<поновити> \\*(We\n"
+" E<lt>ЛіворучE<gt> примуÑово B<перемалювати> екран (Ñкщо потрібно)\n"
+
+#. type: Plain text
+#: ../man/top.1:179
+msgid "But if the display is still corrupted, there is one more step you could try. Insert this command after \\*(We has been suspended but before resuming it."
+msgstr "Ðле Ñкщо показані дані лишаютьÑÑ Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¼Ð¸ Ñ– піÑÐ»Ñ Ñ†ÑŒÐ¾Ð³Ð¾, ви можете Ñпробувати ще один крок. Ð’Ñтавте цю команду піÑÐ»Ñ Ñ‚Ð¾Ð³Ð¾, Ñк роботу \\*(We було призупинено, але перед Ñ—Ñ— відновленнÑм."
+
+#. type: Plain text
+#: ../man/top.1:182
+#, no-wrap
+msgid ""
+" I<key/cmd objective >\n"
+" reset restore your B<terminal settings>\n"
+msgstr ""
+" I<кл/ком Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ >\n"
+" reset відновити ваші B<параметри термінала>\n"
+
+#. type: Plain text
+#: ../man/top.1:192
+msgid "\\*(NT the width of \\*(We's display will be limited to \\*(WX positions. Displaying all fields requires \\*(WF characters. Remaining screen width is usually allocated to any variable width columns currently visible. The variable width columns, such as COMMAND, are noted in topic 3a. DESCRIPTIONS of Fields. Actual output width may also be influenced by the -w switch, which is discussed in topic 1. COMMAND-LINE Options."
+msgstr "\\*(NT ширину переглÑду у \\*(We обмежено \\*(WX позиціÑми. Показ уÑÑ–Ñ… полів потребує \\*(WF Ñимволів. Решту ширини екрана буде, зазвичай, викориÑтано Ð´Ð»Ñ Ð±ÑƒÐ´ÑŒ-Ñких показаних Ñтовпчиків змінної ширини. Стовпчики змінної ширини, зокрема COMMAND, опиÑано у розділі 3а. ОПИСИ ПОЛІВ. Ðа ширину виведених даних також може вплинути параметр -w, обговоренню Ñкого приÑвÑчено розділ 1. ПÐРÐМЕТРИ КОМÐÐДÐОГО РЯДКÐ."
+
+#. type: Plain text
+#: ../man/top.1:197
+msgid "Lastly, some of \\*(We's screens or functions require the use of cursor motion keys like the standard \\*(KAs plus the Home, End, PgUp and PgDn keys. If your terminal or emulator does not provide those keys, the following combinations are accepted as alternatives:"
+msgstr "Ðарешті, деÑкі з екранів або функцій \\*(We потребують викориÑÑ‚Ð°Ð½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–Ñˆ переÑÑƒÐ²Ð°Ð½Ð½Ñ ÐºÑƒÑ€Ñора, зокрема Ñтандартних клавіш зі Ñтрілками та клавіш Home, End, PgUp Ñ– PgDn. Якщо у вашому терміналі або емулÑторі термінала не передбачено доÑтупу до цих клавіш, можна ÑкориÑтатиÑÑ Ñ‚Ð°ÐºÐ¸Ð¼Ð¸ альтернативами:"
+
+#. type: Plain text
+#: ../man/top.1:207
+#, no-wrap
+msgid ""
+" I< key equivalent-keys >\n"
+" Left alt +B< h >\n"
+" Down alt +B< j >\n"
+" Up alt +B< k >\n"
+" Right alt +B< l >\n"
+" Home alt + ctrl +B< h >\n"
+" PgDn alt + ctrl +B< j >\n"
+" PgUp alt + ctrl +B< k >\n"
+" End alt + ctrl +B< l >\n"
+msgstr ""
+" I< клавіша еквівалентні комбінації клавіш >\n"
+" Ліворуч alt +B< h >\n"
+" Вниз alt +B< j >\n"
+" Вгору alt +B< k >\n"
+" Праворуч alt +B< l >\n"
+" Home alt + ctrl +B< h >\n"
+" PgDn alt + ctrl +B< j >\n"
+" PgUp alt + ctrl +B< k >\n"
+" End alt + ctrl +B< l >\n"
+
+#. type: Plain text
+#: ../man/top.1:214
+msgid "The B<Up> and B<Down> \\*(KAs have special significance when prompted for line input terminated with the E<lt>EnterE<gt> key. Those keys, or their aliases, can be used to retrieve previous input lines which can then be edited and re-input. And there are four additional keys available with line oriented input."
+msgstr "Клавіші зі Ñтрілками B<Вгору> та B<Вниз> Ñ” оÑобливо важливими у Ñ€Ñдку запиту щодо вхідних даних, Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñких завершуєтьÑÑ Ð½Ð°Ñ‚Ð¸ÑканнÑм клавіші E<lt>EnterE<gt>. Цими клавішами або їхніми альтернативами можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… Ñ€Ñдків введеннÑ, Ñкі потім можна відредагувати та ввеÑти знову. Крім того, передбачено чотири додаткових клавіші із орієнтованим на Ñ€Ñдки введеннÑм."
+
+#. type: Plain text
+#: ../man/top.1:222
+#, no-wrap
+msgid ""
+" I< key special-significance >\n"
+" Up recall B<older> strings for re-editing\n"
+" Down recall B<newer> strings or B<erase> entire line\n"
+" Insert toggle between B<insert> and B<overtype> modes\n"
+" Delete character B<removed> at cursor, moving others left\n"
+" Home jump to B<beginning> of input line\n"
+" End jump to B<end> of input line\n"
+msgstr ""
+" I< клавіша Ñпеціальне Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ >\n"
+" Вгору відновити B<Ñтаріший> Ñ€Ñдок Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾Ð³Ð¾ редагуваннÑ\n"
+" Вниз відновити B<новіший> Ñ€Ñдок або B<витерти> увеÑÑŒ Ñ€Ñдок\n"
+" Insert перемкнутиÑÑ Ð¼Ñ–Ð¶ режимами B<вÑтавленнÑ> Ñ– B<заміни>\n"
+" Delete B<вилучити> Ñимвол під курÑором, переÑунути інші ліворуч\n"
+" Home перейти на B<початок> Ñ€Ñдка введеннÑ\n"
+" End перейти на B<кінець> Ñ€Ñдка введеннÑ\n"
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:225
+#, no-wrap
+msgid "Linux Memory Types"
+msgstr "Типи пам'ÑÑ‚Ñ– Linux"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:234
+msgid "For our purposes there are three types of memory, and one is optional. First is \\*(MP, a limited resource where code and data must reside when executed or referenced. Next is the optional \\*(MS, where modified (dirty) memory can be saved and later retrieved if too many demands are made on \\*(MP. Lastly we have \\*(MV, a nearly unlimited resource serving the following goals:"
+msgstr "У програмі викориÑтано три типи пам'ÑÑ‚Ñ–, один Ñ” необов'Ñзковим. Першим типом Ñ” фізична пам'ÑÑ‚ÑŒ, обмежений реÑурÑ, у Ñкому зберігаютьÑÑ ÐºÐ¾Ð´ Ñ– дані при виконанні або викориÑтанні. Далі, Ñ” необов'Ñзковий файл резервної пам'ÑÑ‚Ñ–, де зберігаютьÑÑ Ð·Ð¼Ñ–Ð½ÐµÐ½Ñ– дані, Ñкі згодом можна отримати, Ñкщо перевищено обÑÑг Ð´Ð»Ñ Ñ„Ñ–Ð·Ð¸Ñ‡Ð½Ð¾Ñ— пам'ÑÑ‚Ñ–. Ðарешті, Ñ” віртуальна пам'ÑÑ‚ÑŒ, майже необмежений реÑÑƒÑ€Ñ Ñкої викориÑтовуєтьÑÑ Ð·Ð° такими призначеннÑми:"
+
+#. type: Plain text
+#: ../man/top.1:240
+#, no-wrap
+msgid ""
+" 1. abstraction, free from physical memory addresses/limits\n"
+" 2. isolation, every process in a separate address space\n"
+" 3. sharing, a single mapping can serve multiple needs\n"
+" 4. flexibility, assign a virtual address to a file\n"
+msgstr ""
+" 1. абÑтракціÑ, вільна від адреÑ/обмежень фізичної пам'ÑÑ‚Ñ–\n"
+" 2. ізолÑціÑ, кожен Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð² окремому адреÑному проÑторі\n"
+" 3. Ñпільне викориÑтаннÑ, одна прив'Ñзка може Ñлугувати декільком потребам\n"
+" 4. гнучкіÑÑ‚ÑŒ, прив'Ñзка віртуальної адреÑи до файла\n"
+
+#. type: Plain text
+#: ../man/top.1:249
+msgid "Regardless of which of these forms memory may take, all are managed as pages (typically 4096 bytes) but expressed by default in \\*(We as KiB (kibibyte). The memory discussed under topic `2c. MEMORY Usage' deals with \\*(MP and the \\*(MS for the system as a whole. The memory reviewed in topic `3. FIELDS / Columns Display' embraces all three memory types, but for individual processes."
+msgstr "Ðезалежно від того, Ñку з цих форм може приймати пам'ÑÑ‚ÑŒ, уÑіма ними ÑиÑтема керує Ñк Ñторінками (типовим розміром Ñторінки Ñ” 4096 байтів), але типово виражаєтьÑÑ Ñƒ \\*(We у КіБ (кібібайтах). ÐžÐ±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– у розділі «2в. ВИКОРИСТÐÐÐЯ ПÐÐœ'ЯТІ» ÑтоÑуєтьÑÑ Ñ„Ñ–Ð·Ð¸Ñ‡Ð½Ð¾Ñ— пам'ÑÑ‚Ñ– та резервної пам'ÑÑ‚Ñ– на диÑку Ð´Ð»Ñ ÑиÑтеми у цілому. ОглÑд пам'ÑÑ‚Ñ– наведено у розділі «3. ПОЛЯ / ПОКÐЗ СТОВПЧИКІВ», він ÑтоÑуєтьÑÑ ÑƒÑÑ–Ñ… трьох типів пам'ÑÑ‚Ñ–, але Ð´Ð»Ñ Ð¾ÐºÑ€ÐµÐ¼Ð¸Ñ… процеÑів."
+
+#. type: Plain text
+#: ../man/top.1:255
+msgid "For each such process, every memory page is restricted to a single quadrant from the table below. Both \\*(MP and \\*(MV can include any of the four, while the \\*(MS only includes #1 through #3. The memory in quadrant #4, when modified, acts as its own dedicated \\*(MS."
+msgstr "Ð”Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ з таких процеÑів кожну Ñторінку пам'ÑÑ‚Ñ– обмежено одним квадрантом із наведеної нижче таблиці. Включати будь-Ñку з чотирьох можуть Ñ– фізична пам'ÑÑ‚ÑŒ, Ñ– віртуальна пам'ÑÑ‚ÑŒ, а резервна пам'ÑÑ‚ÑŒ на диÑку може включати лише Ñторінки з квадрантів від 1 до 3. Пам'ÑÑ‚ÑŒ у квадранті 4, при зміні, працює Ñк влаÑна резервна пам'ÑÑ‚ÑŒ на диÑку."
+
+#. type: Plain text
+#: ../man/top.1:267
+#, no-wrap
+msgid ""
+" B<Private> | B<Shared>\n"
+" B<1> | B<2>\n"
+" B<Anonymous> . stack |\n"
+" . malloc() |\n"
+" . brk()/sbrk() | . POSIX shm*\n"
+" . mmap(PRIVATE, ANON) | . mmap(SHARED, ANON)\n"
+" -----------------------+----------------------\n"
+" . mmap(PRIVATE, fd) | . mmap(SHARED, fd)\n"
+" B<File-backed> . pgms/shared libs |\n"
+" B<3> | B<4>\n"
+msgstr ""
+" B<Приватна> | B<Спільна>\n"
+" B<1> | B<2>\n"
+" B<Ðнонімна> . stack |\n"
+" . malloc() |\n"
+" . brk()/sbrk() | . POSIX shm*\n"
+" . mmap(PRIVATE, ANON) | . mmap(SHARED, ANON)\n"
+" -----------------------+----------------------\n"
+" . mmap(PRIVATE, fd) | . mmap(SHARED, fd)\n"
+" B<Ðа оÑнові файла> . pgms/shared libs |\n"
+" B<3> | B<4>\n"
+
+#. type: Plain text
+#: ../man/top.1:271
+msgid "The following may help in interpreting process level memory values displayed as scalable columns and discussed under topic `3a. DESCRIPTIONS of Fields'."
+msgstr "Ðаведені нижче відомоÑÑ‚Ñ– можуть допомогти у інтерпретації значень рівнів пам'ÑÑ‚Ñ–, Ñкі показано у форматі маÑштабованих Ñтовпчиків Ñ– опиÑано у розділі «3а. ОПИС ПОЛІВ»."
+
+#. type: Plain text
+#: ../man/top.1:288
+#, no-wrap
+msgid ""
+" %MEM - simply RES divided by total \\*(MP\n"
+" CODE - the `pgms' portion of quadrant B<3>\n"
+" DATA - the entire quadrant B<1> portion of VIRT plus all\n"
+" explicit mmap file-backed pages of quadrant B<3>\n"
+" RES - anything occupying \\*(MP which, beginning with\n"
+" Linux-4.5, is the sum of the following three fields:\n"
+" RSan - quadrant B<1> pages, which include any\n"
+" former quadrant B<3> pages if modified\n"
+" RSfd - quadrant B<3> and quadrant B<4> pages\n"
+" RSsh - quadrant B<2> pages\n"
+" RSlk - subset of RES which cannot be swapped out (any quadrant)\n"
+" SHR - subset of RES (excludes B<1>, includes all B<2> & B<4>, some B<3>)\n"
+" SWAP - potentially any quadrant except B<4>\n"
+" USED - simply the sum of RES and SWAP\n"
+" VIRT - everything in-use and/or reserved (all quadrants)\n"
+msgstr ""
+" %MEM - проÑто RES, Ñке поділено на загальний обÑÑг фізичної пам'ÑÑ‚Ñ–\n"
+" CODE - чаÑтина «pgms» квадранта B<3>\n"
+" DATA - увеÑÑŒ квадрант B<1> VIRT Ñ– уÑÑ– Ñвним чином отримані\n"
+" за допомогою mmap Ñторінки на оÑнові файла квадранта B<3>\n"
+" RES - уÑе, що розміщено у фізичній пам'ÑÑ‚Ñ–, починаючи з\n"
+" Linux-4.5, Ñ” Ñумою таких трьох полів:\n"
+" RSan - Ñторінки з квадранта B<1>, куди включено\n"
+" колишні Ñторінки квадранта B<3>, Ñкщо Ñ—Ñ… змінено\n"
+" RSfd - Ñторінки квадранта B<3> Ñ– квадранта B<4>\n"
+" RSsh - Ñторінки квадранта B<2>\n"
+" RSlk - підмножина RES, Ñку не можна вивантажити до резервної пам'ÑÑ‚Ñ– (будь-Ñкий квадрант)\n"
+" SHR - підмножина RES (виключає B<1>, включає уÑÑ– B<2> Ñ– B<4>, деÑкі B<3>)\n"
+" SWAP - потенційно будь-Ñкий квадрант, окрім B<4>\n"
+" USED - проÑто Ñума RES Ñ– SWAP\n"
+" VIRT - уÑе, що викориÑтано Ñ–/або зарезервовано (уÑÑ– квадранти)\n"
+
+#. type: Plain text
+#: ../man/top.1:293
+msgid "\\*(NT Even though program images and shared libraries are considered I<private> to a process, they will be accounted for as I<shared> (SHR) by the kernel."
+msgstr "\\*(NT Хоча образи програми Ñ– Ñпільні бібліотеки вважаютьÑÑ I<приватними> Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу, Ñ—Ñ… буде враховано Ñк I<Ñпільні> (SHR) Ñдром ÑиÑтеми."
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:295
+#, no-wrap
+msgid "1. COMMAND-LINE Options"
+msgstr "1. ПÐРÐМЕТРИ КОМÐÐДÐОГО РЯДКÐ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:299
+msgid "MandatoryI< arguments> to long options are mandatory for short options too."
+msgstr "Обов'Ñзкові I<аргументи> Ð´Ð»Ñ Ð´Ð¾Ð²Ð³Ð¸Ñ… параметрів також Ñ” обов'Ñзковими Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¾Ñ‚ÐºÐ¸Ñ… параметрів."
+
+#. type: Plain text
+#: ../man/top.1:302
+msgid "Although not required, the equals sign can be used with either option form and whitespace before and/or after the `=' is permitted."
+msgstr "Хоча це Ñ– не Ñ” обов'Ñзковим, можна ÑкориÑтатиÑÑ Ð·Ð½Ð°ÐºÐ¾Ð¼ «дорівнює» у будь-Ñкій з форм параметра. Також можна додавати пробіли перед Ñ– піÑÐ»Ñ Â«=»."
+
+#. type: TP
+#: ../man/top.1:303
+#, no-wrap
+msgid "-B<b>, B<--batch>"
+msgstr "-B<b>, B<--batch>"
+
+#. type: Plain text
+#: ../man/top.1:309
+msgid "Starts \\*(We in Batch mode, which could be useful for sending output from \\*(We to other programs or to a file. In this mode, \\*(We will not accept input and runs until the iterations limit you've set with the `-n' \\*(CO or until killed."
+msgstr "ЗапуÑкає \\*(We у пакетному режимі, що може бути кориÑним Ð´Ð»Ñ Ð½Ð°Ð´ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð¸Ñ… даних з \\*(We до інших програм або до файла. У цьому режимі \\*(We не прийматиме вхідних даних Ñ– працюватиме, аж доки не буде доÑÑгнуто кількоÑÑ‚Ñ– ітерацій, Ñку вÑтановлено за допомогою параметра командного Ñ€Ñдка «-n», або до примуÑового Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ програми."
+
+#. type: TP
+#: ../man/top.1:310
+#, no-wrap
+msgid "-B<c>, B<--cmdline-toggle>"
+msgstr "-B<c>, B<--cmdline-toggle>"
+
+#. type: Plain text
+#: ../man/top.1:316
+msgid "Starts \\*(We with the last remembered `c' state reversed. Thus, if \\*(We was displaying command lines, now that field will show program names, and vice versa. \\*(XC `c' \\*(CI for additional information."
+msgstr "ЗапуÑкає \\*(We зі оберненнÑм до оÑтаннього збереженого Ñтану «c». Отже, Ñкщо \\*(We показувала Ñ€Ñдки команд, піÑÐ»Ñ Ð·Ð°Ð¿ÑƒÑку програма показуватиме назви програм, Ñ– навпаки. \\*(XC інтерактивну команду «c», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ."
+
+#. type: TP
+#: ../man/top.1:317
+#, no-wrap
+msgid "-B<d>, B<--delay> = I<SECS> [I<.TENTHS>]"
+msgstr "-B<d>, B<--delay> = I<СЕКУÐДИ> [I<.ДЕСЯТІ>]"
+
+#. type: Plain text
+#: ../man/top.1:322
+msgid "Specifies the delay between screen updates, and overrides the corresponding value in one's personal \\*(CF or the startup default. Later this can be changed with the `d' or `s' \\*(CIs."
+msgstr "Визначає затримку між оновленнÑми екрана Ñ– перевизначає відповідне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ оÑобиÑтому файлі налаштувань або типові Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку. Пізніше, це Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° змінити за допомогою інтерактивних команд «d» та «s»."
+
+#. type: Plain text
+#: ../man/top.1:327
+msgid "Fractional seconds are honored, but a negative number is not allowed. In all cases, however, such changes are prohibited if \\*(We is running in Secure mode, except for root (unless the `s' \\*(CO was used). For additional information on Secure mode \\*(Xt 6d. SYSTEM Restrictions File."
+msgstr "До уваги братимутьÑÑ Ð´Ñ€Ð¾Ð±Ð¾Ð²Ñ– чаÑтини Ñекунди, але не можна викориÑтовувати від'ємні чиÑла. Втім, за будь-Ñких умов, такі зміни заборонено виконувати, Ñкщо \\*(We працює у захищеному режимі, уÑім, окрім кориÑтувача root (Ñкщо не було викориÑтано параметра командного Ñ€Ñдка «s»). Додаткові відомоÑÑ‚Ñ– щодо захищеного режиму наведено у розділі 6г. ФÐЙЛ ЗÐГÐЛЬÐОСИСТЕМÐИХ ОБМЕЖЕÐЬ."
+
+#. type: TP
+#: ../man/top.1:328
+#, no-wrap
+msgid "-B<E>, B<--scale-summary-mem> = I<k> | I<m> | I<g> | I<t> | I<p> | I<e>"
+msgstr "-B<E>, B<--scale-summary-mem> = I<k> | I<m> | I<g> | I<t> | I<p> | I<e>"
+
+#. type: Plain text
+#: ../man/top.1:331
+msgid "Instructs \\*(We to force \\*(SA memory to be scaled as:"
+msgstr "Ðаказує \\*(We примуÑово маÑштабувати пам'ÑÑ‚ÑŒ у облаÑÑ‚Ñ– завдань за такими величинами:"
+
+#. type: Plain text
+#: ../man/top.1:338
+#, no-wrap
+msgid ""
+" k - kibibytes\n"
+" m - mebibytes\n"
+" g - gibibytes\n"
+" t - tebibytes\n"
+" p - pebibytes\n"
+" e - exbibytes\n"
+msgstr ""
+" k - кібібайти\n"
+" m - мебібайти\n"
+" g - гібібайти\n"
+" t - тебібайти\n"
+" p - пебібайти\n"
+" e - екÑбібайти\n"
+
+#. type: Plain text
+#: ../man/top.1:341
+msgid "Later this can be changed with the `E' \\*(CT."
+msgstr "Згодом маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° змінити за допомогою команди-перемикача «E»."
+
+#. type: TP
+#: ../man/top.1:342
+#, no-wrap
+msgid "-B<e>, B<--scale-task-mem> = I<k> | I<m> | I<g> | I<t> | I<p>"
+msgstr "-B<e>, B<--scale-task-mem> = I<k> | I<m> | I<g> | I<t> | I<p>"
+
+#. type: Plain text
+#: ../man/top.1:345
+msgid "Instructs \\*(We to force \\*(TA memory to be scaled as:"
+msgstr "Ðаказує \\*(We примуÑово маÑштабувати пам'ÑÑ‚ÑŒ у облаÑÑ‚Ñ– завдань за такими величинами:"
+
+#. type: Plain text
+#: ../man/top.1:351
+#, no-wrap
+msgid ""
+" k - kibibytes\n"
+" m - mebibytes\n"
+" g - gibibytes\n"
+" t - tebibytes\n"
+" p - pebibytes\n"
+msgstr ""
+" k - кібібайти\n"
+" m - мебібайти\n"
+" g - гібібайти\n"
+" t - тебібайти\n"
+" p - пебібайти\n"
+
+#. type: Plain text
+#: ../man/top.1:354
+msgid "Later this can be changed with the `e' \\*(CT."
+msgstr "Згодом маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° змінити за допомогою команди-перемикача «e»."
+
+#. type: TP
+#: ../man/top.1:355
+#, no-wrap
+msgid "-B<H>, B<--threads-show>"
+msgstr "-B<H>, B<--threads-show>"
+
+#. type: Plain text
+#: ../man/top.1:360
+msgid "Instructs \\*(We to display individual threads. Without this \\*(CO a summation of all threads in each process is shown. Later this can be changed with the `H' \\*(CI."
+msgstr "Ðаказує \\*(We показувати окремі потоки обробки. Без цього параметра командного Ñ€Ñдка буде показано Ñумарні дані щодо уÑÑ–Ñ… потоків кожного процеÑу. Пізніше режим роботи можна змінити за допомогою інтерактивної команди «H»."
+
+#. type: TP
+#: ../man/top.1:361
+#, no-wrap
+msgid "-B<h>, B<--help>"
+msgstr "-B<h>, B<--help>"
+
+#. type: Plain text
+#: ../man/top.1:364
+msgid "Display usage help text, then quit."
+msgstr "ВивеÑти текÑÑ‚ довідки Ñ– завершити роботу."
+
+#. type: TP
+#: ../man/top.1:365
+#, no-wrap
+msgid "-B<i>, B<--idle-toggle>"
+msgstr "-B<i>, B<--idle-toggle>"
+
+#. type: Plain text
+#: ../man/top.1:372
+msgid "Starts \\*(We with the last remembered `i' state reversed. When this toggle is \\*F, tasks that have not used any \\*(PU since the last update will not be displayed. For additional information regarding this toggle \\*(Xt 4c. TASK AREA Commands, SIZE."
+msgstr "ЗапуÑкає \\*(We із оберненнÑм оÑтаннього збереженого Ñтану «i». Якщо цей перемикач вимкнено, завданнÑ, Ñкі не викориÑтовували центральний процеÑор з моменту оÑтаннього оновленнÑ, не буде показано. Щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про цей перемикач, ознайомтеÑÑ Ð· розділом 4в. КОМÐÐДИ ОБЛÐСТІ ЗÐВДÐÐЬ, РОЗМІР."
+
+#. type: TP
+#: ../man/top.1:373
+#, no-wrap
+msgid "-B<n>, B<--iterations> = I<NUMBER>"
+msgstr "-B<n>, B<--iterations> = I<ЧИСЛО>"
+
+#. type: Plain text
+#: ../man/top.1:377
+msgid "Specifies the maximum number of iterations, or frames, \\*(We should produce before ending."
+msgstr "Визначає макÑимальну кількіÑÑ‚ÑŒ ітерацій або кадрів, Ñкі \\*(We має показати, перш ніж завершити роботу."
+
+#. type: TP
+#: ../man/top.1:378
+#, no-wrap
+msgid "-B<O>, B<--list-fields>"
+msgstr "-B<O>, B<--list-fields>"
+
+#. type: Plain text
+#: ../man/top.1:384
+msgid "This option acts as a form of help for the -o option shown below. It will cause \\*(We to print each of the available field names on a separate line, then quit. Such names are subject to NLS (National Language Support) translation."
+msgstr "Цей параметр працює Ñк допоміжна форма Ð´Ð»Ñ Ð¾Ð¿Ð¸Ñаного нижче параметра -o. ВикориÑÑ‚Ð°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ параметра наказує \\*(We виводити кожну назву доÑтупного полÑ, а потім завершити роботу. Такі назви підлÑгають перекладу NLS (National Language Support)."
+
+#. type: TP
+#: ../man/top.1:385
+#, no-wrap
+msgid "-B<o>, B<--sort-override> = I<FIELDNAME>"
+msgstr "-B<o>, B<--sort-override> = I<ÐÐЗВÐ_ПОЛЯ>"
+
+#. type: Plain text
+#: ../man/top.1:393
+msgid "Specifies the name of the field on which tasks will be sorted, independent of what is reflected in the configuration file. You can prepend a `+' or `-' to the field name to also override the sort direction. A leading `+' will force sorting high to low, whereas a `-' will ensure a low to high ordering."
+msgstr "Визначає назву полÑ, за Ñким буде упорÑдковано завданнÑ, незалежно від того, що вказано у файлі налаштувань. Ви можете допиÑати «+» або «-» до назви полÑ, щоб змінити порÑдок. Початковий «+» визначає упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´ більших до менших значень, а початковий «-» — від менших до більших."
+
+#. type: Plain text
+#: ../man/top.1:396
+msgid "This option exists primarily to support automated/scripted batch mode operation."
+msgstr "Цей параметр призначено, в оÑновному, Ð´Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ роботи у автоматизованому/керованому Ñкриптами пакетному режимі."
+
+#. type: TP
+#: ../man/top.1:397
+#, no-wrap
+msgid "-B<p>, B<--pid> = I<PIDLIST> (as: I<1>,I<2>,I<3>, ... or -pI<1> -pI<2> -pI<3> ...)"
+msgstr "-B<p>, B<--pid> = I<СПИСОК_PID> (у форматі I<1>,I<2>,I<3>, ... або -pI<1> -pI<2> -pI<3> ...)"
+
+#. type: Plain text
+#: ../man/top.1:403
+msgid "Monitor only processes with specified process IDs. However, when combined with Threads mode (`H'), all processes in the thread group (\\*(Xa TGID) of each monitored PID will also be shown."
+msgstr "СпоÑтерігати лише за процеÑами із вказаними ідентифікаторами. Втім, при поєднанні із режимом потоків обробки («H»), також буде показано уÑÑ– процеÑи у групі потоків обробки (\\*(Xa TGID) кожного PID, за Ñким ведетьÑÑ ÑпоÑтереженнÑ."
+
+#. type: Plain text
+#: ../man/top.1:407
+msgid "This option can be given up to 20 times, or you can provide a comma delimited list with up to 20 pids. Co-mingling both approaches is permitted."
+msgstr "Цей параметр можна викориÑтати до 20 разів або ви можете вказати ÑпиÑок відокремлених комами аж до 20 pid. Можна викориÑтовувати Ñуміш обох запиÑів."
+
+#. type: Plain text
+#: ../man/top.1:410
+msgid "A pid value of zero will be treated as the process id of the \\*(We program itself once it is running."
+msgstr "Ðульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ pid вважаєтьÑÑ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ процеÑу Ñамої програми \\*(We піÑÐ»Ñ Ñ—Ñ— запуÑку."
+
+#. type: Plain text
+#: ../man/top.1:414
+msgid "This is a \\*(CO only and should you wish to return to normal operation, it is not necessary to quit and restart \\*(We \\*(Em just issue any of these \\*(CIs: `=', `u' or `U'."
+msgstr "Це лише параметр командного Ñ€Ñдка, Ñ– Ñкщо ви хочете повернутиÑÑ Ð´Ð¾ звичайного режиму роботи програми, немає потреби у виході з програми Ñ– перезапуÑку \\*(Em проÑто видайте одну з таких інтерактивних команд: «=», «u» або «U»."
+
+#. type: Plain text
+#: ../man/top.1:416
+msgid "The `p', `u' and `U' \\*(COs are mutually exclusive."
+msgstr "Параметри командного Ñ€Ñдка «p», «u» Ñ– «U» Ñ” взаємно виключними."
+
+#. type: TP
+#: ../man/top.1:417
+#, no-wrap
+msgid "-B<S>, B<--accum-time-toggle>"
+msgstr "-B<S>, B<--accum-time-toggle>"
+
+#. type: Plain text
+#: ../man/top.1:423
+msgid "Starts \\*(We with the last remembered `S' state reversed. When Cumulative time mode is \\*O, each process is listed with the \\*(Pu time that it and its dead children have used. \\*(XC `S' \\*(CI for additional information regarding this mode."
+msgstr "ЗапуÑкає \\*(We із Ñтаном, оберненим щодо оÑтаннього збереженого Ñтану «S». Якщо режим накопиченого чаÑу увімкнено, кожен Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±ÑƒÐ´Ðµ показано із чаÑом центрального процеÑора, Ñкий викориÑтано Ñамим процеÑом Ñ– уÑіма його завершеними дочірніми процеÑами. Додаткові відомоÑÑ‚Ñ– щодо цього режиму можна отримати у розділі щодо інтерактивної команди «S»."
+
+#. type: TP
+#: ../man/top.1:424
+#, no-wrap
+msgid "-B<s>, B<--secure-mode>"
+msgstr "-B<s>, B<--secure-mode>"
+
+#. type: Plain text
+#: ../man/top.1:429
+msgid "Starts \\*(We with secure mode forced, even for root. This mode is far better controlled through a system \\*(CF (\\*(Xt 6. FILES)."
+msgstr "ПримуÑово запуÑкає \\*(We у захищеному режимі, навіть Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача root. Цим режимом набагато краще керувати за допомогою загальноÑиÑтемного файла налаштувань (див. розділ 6. ФÐЙЛИ)."
+
+#. type: TP
+#: ../man/top.1:430
+#, no-wrap
+msgid "-B<U>, B<--filter-any-user> = I<USER> (as: I<number> or I<name>)"
+msgstr "-B<U>, B<--filter-any-user> = I<КОРИСТУВÐЧ> (Ñк I<чиÑло> або I<ім'Ñ>)"
+
+#. type: Plain text
+#: ../man/top.1:435
+msgid "Display only processes with a user id or user name matching that given. This option matches onI< any> user (I<real>, I<effective>, I<saved>, or I<filesystem>)."
+msgstr "Показати лише процеÑи із вказаним ідентифікатором кориÑтувача або іменем кориÑтувача. Цей параметр ÑтоÑуєтьÑÑ I<будь-Ñкого> кориÑтувача (I<Ñправжнього>, I<ефективного>, I<збереженого> або I<файлової ÑиÑтеми>)."
+
+#. type: Plain text
+#: ../man/top.1:438 ../man/top.1:448
+msgid "Prepending an exclamation point (`!') to the user id or name instructs \\*(We to display only processes with users not matching the one provided."
+msgstr "Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð½Ð°ÐºÑƒ оклику («!») до ідентифікатора кориÑтувача або імені наказує \\*(We показати лише процеÑи кориÑтувачів, Ñкі не збігаютьÑÑ Ñ–Ð· вказаним."
+
+#. type: Plain text
+#: ../man/top.1:440 ../man/top.1:450
+msgid "The `p', `U' and `u' \\*(COs are mutually exclusive."
+msgstr "Параметри командного Ñ€Ñдка «p», «u» Ñ– «U» Ñ” взаємно виключними."
+
+#. type: TP
+#: ../man/top.1:441
+#, no-wrap
+msgid "-B<u>, B<--filter-only-euser> = I<USER> (as: I<number> or I<name>)"
+msgstr "-B<u>, B<--filter-only-euser> = I<КОРИСТУВÐЧ> (Ñк I<чиÑло> або I<ім'Ñ>)"
+
+#. type: Plain text
+#: ../man/top.1:445
+msgid "Display only processes with a user id or user name matching that given. This option matches on theI< effective> user id only."
+msgstr "Показати лише процеÑи із вказаним ідентифікатором кориÑтувача або іменем кориÑтувача. Цей параметр ÑтоÑуєтьÑÑ Ð»Ð¸ÑˆÐµ I<ефективного> кориÑтувача."
+
+#. type: TP
+#: ../man/top.1:451
+#, no-wrap
+msgid "-B<V>, B<--version>"
+msgstr "-B<V>, B<--version>"
+
+#. type: Plain text
+#: ../man/top.1:454
+msgid "Display version information, then quit."
+msgstr "ВивеÑти дані щодо верÑÑ–Ñ— Ñ– завершити роботу."
+
+#. type: TP
+#: ../man/top.1:455
+#, no-wrap
+msgid "-B<w>, B<--width> [=I<COLUMNS>]"
+msgstr "-B<w>, B<--width> [=I<СТОВПЧИКИ>]"
+
+#. type: Plain text
+#: ../man/top.1:462
+msgid "In Batch mode, when used without an argument \\*(We will format output using the COLUMNS= and LINES= environment variables, if set. Otherwise, width will be fixed at the maximum \\*(WX columns. With an argument, output width can be decreased or increased (up to \\*(WX) but the number of rows is considered unlimited."
+msgstr "У пакетному режимі, коли програму викориÑтано без аргументів, \\*(We форматуватиме Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð· викориÑтаннÑм змінних Ñередовища COLUMNS= Ñ– LINES=, Ñкщо Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ†Ð¸Ñ… змінних вÑтановлено. Якщо Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ðµ вÑтановлено, ширину буде зафікÑовано на макÑимальному Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ \\*(WX Ñтовпчиків. Якщо вказано аргумент, ширину Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ зменшено або збільшено (аж до \\*(WX), а кількіÑÑ‚ÑŒ Ñ€Ñдків вважатиметьÑÑ Ð½ÐµÐ¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð¾ÑŽ."
+
+#. type: Plain text
+#: ../man/top.1:468
+msgid "In normal display mode, when used without an argument \\*(We willI< attempt> to format output using the COLUMNS= and LINES= environment variables, if set. With an argument, output width can only be decreased, not increased. Whether using environment variables or an argument with -w, whenI< not> in Batch mode actual terminal dimensions can never be exceeded."
+msgstr "У режимі звичайного показу, Ñкщо параметр вказано без аргументу \\*(We I<Ñпробує> форматувати Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð· викориÑтаннÑм змінних Ñередовища COLUMNS= Ñ– LINES=, Ñкщо їхні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñтановлено. Якщо аргумент вказано, ширину Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ðµ бути лише зменшено, а не збільшено. Буде викориÑтано змінні Ñередовища чи аргумент з -w, Ñкщо програма I<не> працює у пакетному режимі, Ñправжні розмірноÑÑ‚Ñ– терміналу ніколи не може бути перевищено."
+
+#. type: Plain text
+#: ../man/top.1:471
+msgid "\\*(NT Without the use of this \\*(CO, output width is always based on the terminal at which \\*(We was invoked whether or not in Batch mode."
+msgstr "\\*(NT Без викориÑÑ‚Ð°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ параметра командного Ñ€Ñдка, ширина Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð·Ð°Ð²Ð¶Ð´Ð¸ обчиÑлюєтьÑÑ Ð½Ð° оÑнові термінала, з Ñкого викликано \\*(We, незважаючи на те, чи запущено програму у пакетному режимі."
+
+#. type: TP
+#: ../man/top.1:472
+#, no-wrap
+msgid "-B<1>, B<--single-cpu-toggle>"
+msgstr "-B<1>, B<--single-cpu-toggle>"
+
+#. type: Plain text
+#: ../man/top.1:478
+msgid "Starts \\*(We with the last remembered Cpu States portion of the \\*(SA reversed. Either all \\*(Pu information will be displayed in a single line or each \\*(Pu will be displayed separately, depending on the state of the NUMA Node \\*(CT (`2')."
+msgstr "ЗапуÑкає \\*(We із оберненим щодо оÑтаннього збереженого Ñтану розділом Ñтанів центрального процеÑора облаÑÑ‚Ñ– резюме. Ðбо дані щодо уÑÑ–Ñ… центральних процеÑорів буде показано або у єдиному Ñ€Ñдку, або дані Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ процеÑора буде показано окремо, залежно від Ñтану перемикача вузлів NUMA Node («2»)."
+
+#. type: Plain text
+#: ../man/top.1:480
+msgid "\\*(XC `1' and `2' \\*(CIs for additional information."
+msgstr "Див. інтерактивні команди «1» Ñ– «2», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ."
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:482
+#, no-wrap
+msgid "2. SUMMARY Display"
+msgstr "2. ПОКÐЗ РЕЗЮМЕ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:488
+msgid "Each of the following three areas are individually controlled through one or more \\*(CIs. \\*(XT 4b. SUMMARY AREA Commands for additional information regarding these provisions."
+msgstr "Кожною з опиÑаних нижче облаÑтей можна окремо керувати за допомогою однією або декількох інтерактивних команд. Див. розділ 4б. КОМÐÐДИ ОБЛÐСТІ РЕЗЮМЕ, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про ці команди."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:490
+#, no-wrap
+msgid "2a. UPTIME and LOAD Averages"
+msgstr "2а. СЕРЕДÐІ ЗÐÐЧЕÐÐЯ ЧÐСУ РОБОТИ ТРÐÐÐ’ÐÐТÐЖЕÐÐЯ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:493
+msgid "This portion consists of a single line containing:"
+msgstr "Ð¦Ñ Ñ‡Ð°Ñтина ÑкладаєтьÑÑ Ð· одного Ñ€Ñдка такого вміÑту:"
+
+#. type: Plain text
+#: ../man/top.1:498
+#, no-wrap
+msgid ""
+" B<program> orB< window> name, depending on display mode\n"
+" current time and length of time since last boot\n"
+" total number of users\n"
+" system load avg over the last 1, 5 and 15 minutes\n"
+msgstr ""
+" назва B<програми> або B<вікна>, залежно від режиму показу;\n"
+" поточний Ñ‡Ð°Ñ Ñ– Ñ‡Ð°Ñ Ð· моменту оÑтаннього завантаженнÑ;\n"
+" загальна кількіÑÑ‚ÑŒ кориÑтувачів;\n"
+" Ñереднє Ð½Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° ÑиÑтему за оÑтанні 1, 5 Ñ– 15 хвилин\n"
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:501
+#, no-wrap
+msgid "2b. TASK and CPU States"
+msgstr "2б. СТÐÐИ ЗÐВДÐÐÐЯ ТРПРОЦЕСОРÐ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:506
+msgid "This portion consists of a minimum of two lines. In an SMP environment, additional lines can reflect individual \\*(PU state percentages."
+msgstr "Ð¦Ñ Ñ‡Ð°Ñтина ÑкладаєтьÑÑ Ð· принаймні двох Ñ€Ñдків. У Ñередовищі із Ñиметричною багатопроцеÑорніÑÑ‚ÑŽ додаткові Ñ€Ñдки може бути викориÑтано Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ окремих чаÑток кожного процеÑора."
+
+#. type: Plain text
+#: ../man/top.1:510
+msgid "Line 1 shows totalB< tasks> orB< threads>, depending on the state of the Threads-mode toggle. That total is further classified as:"
+msgstr "У першому Ñ€Ñдку буде показано загальну кількіÑÑ‚ÑŒ B<завдань> або B<потоків обробки>, залежно від Ñтану перемикача режиму потоків. Загальні дані далі буде клаÑифіковано так:"
+
+#. type: Plain text
+#: ../man/top.1:512
+#, no-wrap
+msgid " running; sleeping; stopped; zombie\n"
+msgstr " працює; приÑпано; зупинено; зомбі\n"
+
+#. type: Plain text
+#: ../man/top.1:516
+msgid "Line 2 shows \\*(PU state percentages based on the interval since the last refresh."
+msgstr "У другому Ñ€Ñдку буде показано чаÑтки Ñтану центрального процеÑора на оÑнові проміжку чаÑу з оÑтаннього Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…."
+
+#. type: Plain text
+#: ../man/top.1:519
+msgid "As a default, percentages for these individual categories are displayed. Depending on your kernel version, the B<st> field may not be shown."
+msgstr "Типово, буде показано чаÑтки Ð´Ð»Ñ Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ð¸Ñ… нижче категорій. Якщо верÑÑ–Ñ Ñдра Ñ” невідповідною, поле B<st> може бути не показано."
+
+#. type: Plain text
+#: ../man/top.1:528
+#, no-wrap
+msgid ""
+" B<us> : time running un-niced user processes\n"
+" B<sy> : time running kernel processes\n"
+" B<ni> : time running niced user processes\n"
+" B<id> : time spent in the kernel idle handler\n"
+" B<wa> : time waiting for I/O completion\n"
+" B<hi> : time spent servicing hardware interrupts\n"
+" B<si> : time spent servicing software interrupts\n"
+" B<st> : time stolen from this vm by the hypervisor\n"
+msgstr ""
+" B<us> : Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ непріоритетних процеÑів кориÑтувача\n"
+" B<sy> : Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ процеÑів Ñдра\n"
+" B<ni> : Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ пріоритетних процеÑів кориÑтувача\n"
+" B<id> : чаÑ, витрачений у обробнику бездіÑльноÑÑ‚Ñ– Ñдра\n"
+" B<wa> : Ñ‡Ð°Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ-виведеннÑ\n"
+" B<hi> : чаÑ, витрачений на обÑÐ»ÑƒÐ³Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð¸Ñ… переривань\n"
+" B<si> : чаÑ, витрачений на обÑÐ»ÑƒÐ³Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð¸Ñ… переривань\n"
+" B<st> : чаÑ, викрадений з цієї Ð’Ðœ гіпервізором\n"
+
+#. type: Plain text
+#: ../man/top.1:532
+msgid "The `sy' value above also reflects the time running a virtual \\*(Pu for guest operating systems, including those that have been niced."
+msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«sy» вище також відповідає чаÑу Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð½Ð° віртуальному центральному процеÑорі Ð´Ð»Ñ Ð³Ð¾Ñтьових операційних ÑиÑтем, включно з тією, Ñка має пріоритетніÑÑ‚ÑŒ."
+
+#. type: Plain text
+#: ../man/top.1:536
+msgid "Beyond the first tasks/threads line, there are alternate \\*(PU display modes available via the 4-way `t' \\*(CT. They show an abbreviated summary consisting of these elements:"
+msgstr "Окрім першого Ñ€Ñдка завдань/потоків, передбачено альтернативні режими показу центрального процеÑора, доÑтуп до Ñких можна отримати за допомогою чотирипозиційної команди-перемикача «t». У них програма показуватиме Ñкорочене резюме, що ÑкладаєтьÑÑ Ð· таких елементів:"
+
+#. type: Plain text
+#: ../man/top.1:539
+#, no-wrap
+msgid ""
+" a b c d\n"
+" %Cpu(s): B<75.0>/25.0 B<100>[ ... ]\n"
+msgstr ""
+" а б в г\n"
+" %CПроц.: B<75,0>/25,0 B<100>[ ... ]\n"
+
+#. type: Plain text
+#: ../man/top.1:546
+msgid "Where: a) is the `user' (us + ni) percentage; b) is the `system' (sy + hi + si + guests) percentage; c) is the total percentage; and d) is one of two visual graphs of those representations. Such graphs also reflect separate `user' and `system' portions."
+msgstr "Де а) чаÑтка «user» (us + ni); б) Ñ” чаÑткою «system» (sy + hi + si + guests); в) Ñ” загальні дані чаÑток; Ñ– г) один з двох візуальних графіків цих предÑтавлень. У таких графіках також буде показано окремі чаÑтки «кориÑтувача» Ñ– «ÑиÑтеми»."
+
+#. type: Plain text
+#: ../man/top.1:551
+msgid "If the `4' \\*(CT is used to yield more than two cpus per line, results will be further abridged eliminating the a) and b) elements. However, that information is still reflected in the graph itself assuming color is active or, if not, bars vs. blocks are being shown."
+msgstr "Командою-перемикачем «4» кориÑтуютьÑÑ Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… понад двох процеÑорів на Ñ€Ñдок. Результати буде Ñкорочено шлÑхом Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ñ–Ð² а) Ñ– б). Втім, ці дані уÑе ще буде показано на Ñамому графіку, Ñкщо активними Ñ” кольори, а Ñкщо ні, показано Ñмужки Ñ– блоки."
+
+#. type: Plain text
+#: ../man/top.1:554
+msgid "\\*(XT 4b. SUMMARY AREA Commands for additional information on the `t' and `4' \\*(CTs."
+msgstr "Див. розділ 4б. КОМÐÐДИ ОБЛÐСТІ РЕЗЮМЕ, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про команди-перемикачі «t» Ñ– «4»."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:556
+#, no-wrap
+msgid "2c. MEMORY Usage"
+msgstr "2в. ВИКОРИСТÐÐÐЯ пам'ÑÑ‚Ñ–"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:561
+msgid "This portion consists of two lines which may express values in kibibytes (KiB) through exbibytes (EiB) depending on the scaling factor enforced with the `E' \\*(CI. The /proc/meminfo source fields are shown in parenthesis."
+msgstr "Ð¦Ñ Ñ‡Ð°Ñтина ÑкладаєтьÑÑ Ð· двох Ñ€Ñдків, у Ñких може бути показано Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð² одиницÑÑ… від кібібайтів (КіБ) до екÑбібайтів (ЕіБ) залежно від коефіцієнта маÑштабуваннÑ, Ñкий визначаєтьÑÑ Ñ–Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾ÑŽ командою «E». ПолÑ-джерела з /proc/meminfo показано у дужках."
+
+#. type: Plain text
+#: ../man/top.1:563
+msgid "Line 1 reflects \\*(MP, classified as:"
+msgstr "РÑдок 1 показує віртуальну пам'ÑÑ‚ÑŒ, клаÑифіковану так:"
+
+#. type: Plain text
+#: ../man/top.1:568
+#, no-wrap
+msgid ""
+" total ( MemTotal )\n"
+" free ( MemFree )\n"
+" used ( MemTotal - MemAvailable )\n"
+" buff/cache ( Buffers + Cached + SReclaimable )\n"
+msgstr ""
+" total ( MemTotal )\n"
+" free ( MemFree )\n"
+" used ( MemTotal - MemAvailable )\n"
+" buff/cache ( Buffers + Cached + SReclaimable )\n"
+
+#. type: Plain text
+#: ../man/top.1:571
+msgid "Line 2 reflects mostly \\*(MV, classified as:"
+msgstr "РÑдок 2 показує, здебільшого, віртуальну пам'ÑÑ‚ÑŒ, клаÑифіковану так:"
+
+#. type: Plain text
+#: ../man/top.1:576
+#, no-wrap
+msgid ""
+" total ( SwapTotal )\n"
+" free ( SwapFree )\n"
+" used ( SwapTotal - SwapFree )\n"
+" avail ( MemAvailable, which is \\*(MP )\n"
+msgstr ""
+" total ( SwapTotal )\n"
+" free ( SwapFree )\n"
+" used ( SwapTotal - SwapFree )\n"
+" avail ( MemAvailable, Ñка Ñ” \\*(MP )\n"
+
+#. type: Plain text
+#: ../man/top.1:584
+msgid "The B<avail> number on line 2 is an estimation of \\*(MP available for starting new applications, without swapping. Unlike the B<free> field, it attempts to account for readily reclaimable page cache and memory slabs. It is available on kernels 3.14, emulated on kernels 2.6.27+, otherwise the same as B<free>."
+msgstr "ЧиÑло B<доÑÑ‚> у Ñ€Ñдку 2 Ñ” оцінкою фізичної пам'ÑÑ‚Ñ–, доÑтупною Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку нових програм, без резервної пам'ÑÑ‚Ñ– на диÑку. Ðа відміну від Ð¿Ð¾Ð»Ñ B<вільн>, програма Ñпробує врахувати безпоÑередньо викориÑтовуваний кеш Ñторінок та шматки пам'ÑÑ‚Ñ–. Дані доÑтупні у Ñдрах піÑÐ»Ñ 3.14, Ñ—Ñ… емульовано у Ñдрах 2.6.27+, у інших випадках це те Ñаме, що Ñ– B<вільн>."
+
+#. type: Plain text
+#: ../man/top.1:587
+msgid "In the alternate memory display modes, two abbreviated summary lines are shown consisting of these elements:"
+msgstr "У режимах альтернативного показу пам'ÑÑ‚Ñ–, буде показано два Ñкорочених резюме, що ÑкладатимутьÑÑ Ð· таких елементів:"
+
+#. type: Plain text
+#: ../man/top.1:591
+#, no-wrap
+msgid ""
+" a b c\n"
+" GiB Mem : B<18.7>/15.738 [ ... ]\n"
+" GiB Swap: B< 0.0>/7.999 [ ... ]\n"
+msgstr ""
+" а б в\n"
+" ГіБ Пам : B<18,7>/15,738 [ ... ]\n"
+" ГіБ Своп: B< 0,0>/7,999 [ ... ]\n"
+
+#. type: Plain text
+#: ../man/top.1:595
+msgid "Where: a) is the percentage used; b) is the total available; and c) is one of two visual graphs of those representations."
+msgstr "Де а) Ñ” чаÑткою викориÑтаного; б) загалом доÑтупно Ñ– в) один з двох візуальних графіків цих предÑтавлень."
+
+#. type: Plain text
+#: ../man/top.1:602
+msgid "In the case of \\*(MP, the percentage represents the B<total> minus the estimated B<avail> noted above. The `Mem' graph itself is divided between the non-cached portion of B<used> and any remaining memory not otherwise accounted for by B<avail>. \\*(XT 4b. SUMMARY AREA Commands and the `m' command for additional information on that special 4-way toggle."
+msgstr "У випадку фізичної пам'ÑÑ‚Ñ– чаÑтка відповідає різниці B<загал> Ñ– оцінки B<доÑÑ‚>, вказаний вище. Сам графік «Пам» поділено між некешованою чаÑтиною B<вик.> та рештою пам'ÑÑ‚Ñ–, Ñку інакше не враховано у B<доÑÑ‚>. Див. 4б. КОМÐÐДИ ОБЛÐСТІ РЕЗЮМЕ та команду «m», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про цей оÑобливий чотирипозиційний перемикач."
+
+#. type: Plain text
+#: ../man/top.1:604
+msgid "This table may help in interpreting the scaled values displayed:"
+msgstr "Ð¦Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð¼Ð¾Ð¶Ðµ допомогти вам в інтерпретації показаних маÑштабованих значень:"
+
+#. type: Plain text
+#: ../man/top.1:611
+#, no-wrap
+msgid ""
+" KiB = kibibyte = 1024 bytes\n"
+" MiB = mebibyte = 1024 KiB = 1,048,576 bytes\n"
+" GiB = gibibyte = 1024 MiB = 1,073,741,824 bytes\n"
+" TiB = tebibyte = 1024 GiB = 1,099,511,627,776 bytes\n"
+" PiB = pebibyte = 1024 TiB = 1,125,899,906,842,624 bytes\n"
+" EiB = exbibyte = 1024 PiB = 1,152,921,504,606,846,976 bytes\n"
+msgstr ""
+" КіБ = кібібайт = 1024 байтів\n"
+" МіБ = мебібайт = 1024 КіБ = 1048576 байтів\n"
+" ГіБ = гібібайт = 1024 МіБ = 1073741824 байтів\n"
+" ТіБ = тебібайт = 1024 ГіБ = 1099511627776 байтів\n"
+" ПіБ = пебібайт = 1024 ТіБ = 1125899906842624 байтів\n"
+" ЕіБ = екÑбібайт = 1024 ПіБ = 1152921504606846976 байтів\n"
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:614
+#, no-wrap
+msgid "3. FIELDS / Columns"
+msgstr "3. ПОЛЯ / СТОВПЧИКИ"
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:617
+#, no-wrap
+msgid "3a. DESCRIPTIONS of Fields"
+msgstr "3а. ОПИС ПОЛІВ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:623
+msgid "Listed below are \\*(We's available process fields (columns). They are shown in strict ascii alphabetical order. You may customize their position and whether or not they are displayable with the `f' (Fields Management) \\*(CI."
+msgstr "Ðижче наведено ÑпиÑок доÑтупних у \\*(We полів процеÑів (Ñтовпчиків). Пункти вказано Ñтрого за абетковим порÑдком ASCII. Ви можете змінити їхні позиції та те, чи буде Ñ—Ñ… показано за допомогою інтерактивної команди «f» (ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð»Ñми)."
+
+#. type: Plain text
+#: ../man/top.1:628
+msgid "Any field is selectable as the sort field, and you control whether they are sorted high-to-low or low-to-high. For additional information on sort provisions \\*(Xt 4c. TASK AREA Commands, SORTING."
+msgstr "Як поле Ð´Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° викориÑтовувати будь-Ñке поле. Ви можете керувати тим, буде запиÑи упорÑдковано за зроÑтаннÑм чи ÑпаданнÑм. Щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про упорÑдковуваннÑ, звернітьÑÑ Ð´Ð¾ розділу 4в. КОМÐÐДИ ОБЛÐСТІ ЗÐВДÐÐЬ, УПОРЯДКОВУВÐÐÐЯ."
+
+#. type: Plain text
+#: ../man/top.1:634
+msgid "The fields related to \\*(MP or \\*(MV reference `(KiB)' which is the unsuffixed display mode. Such fields may, however, be scaled from KiB through PiB. That scaling is influenced via the `e' \\*(CI or established for startup through a build option."
+msgstr "Дані у полÑÑ…, Ñкі пов'Ñзано із фізичною пам'ÑÑ‚Ñ‚ÑŽ та віртуальною пам'ÑÑ‚Ñ‚ÑŽ, викориÑтано «(КіБ)», режим показу без ÑуфікÑів одиниць. Втім, у таких полÑÑ… можливе маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´ КіБ до ПіБ. Це маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð°ÑŽÑ‚ÑŒ інтерактивною командою «e» або під Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку за допомогою параметра збираннÑ."
+
+#. type: TP
+#: ../man/top.1:635
+#, no-wrap
+msgid "B<%CPU \\*(Em \\*(PU Usage >"
+msgstr "B<%CPU \\*(Em ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора >"
+
+#. type: Plain text
+#: ../man/top.1:639
+msgid "The task's share of the elapsed \\*(PU time since the last screen update, expressed as a percentage of total \\*(PU time."
+msgstr "ЧаÑтка Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ñƒ чаÑÑ– процеÑора з моменту оÑтаннього Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÐµÐºÑ€Ð°Ð½Ð°, Ñку виражено у відÑотках від загального чаÑу роботи процеÑора."
+
+#. type: Plain text
+#: ../man/top.1:644
+msgid "In a true SMP environment, if a process is multi-threaded and \\*(We is I<not> operating in Threads mode, amounts greater than 100% may be reported. You toggle Threads mode with the `H' \\*(CI."
+msgstr "У Ñправжньому Ñередовищі із Ñиметричною багатопроцеÑорніÑÑ‚ÑŽ, Ñкщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ” багатопотоковим, Ñ– \\*(We I<не> працює у режимі потоків, може бути показано Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±Ñ–Ð»ÑŒÑˆÑ– за 100%. Перемкнути режим потоків можна за допомогою інтерактивної команди «H»."
+
+#. type: Plain text
+#: ../man/top.1:649
+msgid "Also for multi-processor environments, if Irix mode is \\*F, \\*(We will operate in Solaris mode where a task's \\*(Pu usage will be divided by the total number of \\*(PUs. You toggle Irix/Solaris modes with the `I' \\*(CI."
+msgstr "Також Ð´Ð»Ñ Ð±Ð°Ð³Ð°Ñ‚Ð¾Ð¿Ñ€Ð¾Ñ†ÐµÑорних Ñередовищ, Ñкщо режим Irix \\*F, \\*(We працюватиме у режимі Solaris, у Ñкому викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора завданнÑм буде поділено на загальну кількіÑÑ‚ÑŒ процеÑорів. Перемкнути режими Irix/Solaris можна за допомогою інтерактивної команди «I»."
+
+#. type: Plain text
+#: ../man/top.1:655
+msgid "\\*(NT When running in forest view mode (`V') with children collapsed (`v'), this field will also include the \\*(PU time of those unseen children. \\*(XT 4c. TASK AREA Commands, CONTENT for more information regarding the `V' and `v' toggles."
+msgstr "\\*(NT Якщо програма працює у режимі переглÑду ліÑу («V») зі згорнутими дочірніми процеÑами («v»), до цього Ð¿Ð¾Ð»Ñ Ñ‚Ð°ÐºÐ¾Ð¶ буде включено Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора Ð´Ð»Ñ Ñ†Ð¸Ñ… невидимих дочірніх процеÑів. Див. розділ 4в. КОМÐÐДИ ОБЛÐСТІ ЗÐВДÐÐЬ, ВМІСТ, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про перемикачі «V» та «v»."
+
+#. type: TP
+#: ../man/top.1:656
+#, no-wrap
+msgid "B<%CUC \\*(Em \\*(PU Utilization >"
+msgstr "B<%CUC \\*(Em ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора >"
+
+#. type: Plain text
+#: ../man/top.1:660
+msgid "This field is identical to %CUU below, except the percentage also reflects reaped child processes."
+msgstr "Це поле Ñ” тотожним до %CUU нижче, але у чаÑтці буде також показано завершені дочірні процеÑи."
+
+#. type: TP
+#: ../man/top.1:661
+#, no-wrap
+msgid "B<%CUU \\*(Em \\*(PU Utilization >"
+msgstr "B<%CUU \\*(Em ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора >"
+
+#. type: Plain text
+#: ../man/top.1:665
+msgid "A task's total \\*(PU usage divided by its elapsed running time, expressed as a percentage."
+msgstr "Загальне викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора завданнÑм, поділене на витрачений Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸, Ñке виражено у відÑотках."
+
+#. type: Plain text
+#: ../man/top.1:670
+msgid "If a process currently displays high \\*(PU usage, this field can help determine if such behavior is normal. Conversely, if a process has low \\*(PU usage currently, %CUU may reflect historically higher demands over its lifetime."
+msgstr "Якщо на поточний момент Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу буде показано виÑоке викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора, це поле може допомогти визначити, чи належним чином поводить Ñебе процеÑ. Ðавпаки, Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¼Ð°Ð»Ð¾ викориÑтовує процеÑор, %CUU може показати попередні вищі вимоги під Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ процеÑу."
+
+#. type: TP
+#: ../man/top.1:671
+#, no-wrap
+msgid "B<%MEM \\*(Em Memory Usage (RES) >"
+msgstr "B<%MEM \\*(Em ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– (RES) >"
+
+#. type: Plain text
+#: ../man/top.1:674
+msgid "A task's currently resident share of available \\*(MP."
+msgstr "Поточна викориÑтана завданнÑм чаÑтка доÑтупної фізичної пам'ÑÑ‚Ñ–."
+
+#. type: Plain text
+#: ../man/top.1:676 ../man/top.1:737 ../man/top.1:770 ../man/top.1:943
+#: ../man/top.1:1004 ../man/top.1:1057 ../man/top.1:1102 ../man/top.1:1122
+msgid "\\*(XX."
+msgstr "\\*(XX."
+
+#. type: TP
+#: ../man/top.1:677
+#, no-wrap
+msgid "B<AGID \\*(Em Autogroup Identifier >"
+msgstr "B<AGID \\*(Em Autogroup Identifier >"
+
+#. type: Plain text
+#: ../man/top.1:682
+msgid "The autogroup identifier associated with a process. This feature operates in conjunction with the CFS scheduler to improve interactive desktop performance."
+msgstr "Ідентифікатор автогрупи, Ñкий пов'Ñзано із процеÑом, що працює у поєднанні із планувальником CFS Ð´Ð»Ñ ÑƒÐ´Ð¾ÑÐºÐ¾Ð½Ð°Ð»ÐµÐ½Ð½Ñ ÑˆÐ²Ð¸Ð´ÐºÐ¾Ð´Ñ–Ñ— інтерактивної Ñтільниці."
+
+#. type: Plain text
+#: ../man/top.1:691
+msgid "When /proc/sys/kernel/sched_autogroup_enabled is set, a new autogroup is created with each new session (\\*(Xa SID). All subsequently forked processes in that session inherit membership in this autogroup. The kernel then attempts to equalize distribution of CPU cycles across such groups. Thus, an autogroup with many \\*(PU intensive processes (e.g make -j) will not dominate an autogroup with only one or two processes."
+msgstr "Якщо вÑтановлено /proc/sys/kernel/sched_autogroup_enabled, Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ ÑеанÑу (\\*(Xa SID) буде Ñтворено автогрупу. УÑÑ– наÑтупні відгалужені процеÑи у цьому ÑеанÑÑ– уÑпадкують членÑтво у цій автогрупі. Ðадалі, Ñдро Ñпробує вирівнÑти розподіл циклів процеÑора між такими групами. Таким чином, автогрупа із багатьма інтенÑивними щодо процеÑора процеÑами (наприклад, make -j) не домінуватиме над автогрупою із лише одним або двома процеÑами."
+
+#. type: Plain text
+#: ../man/top.1:693
+msgid "When -1 is displayed it means this information is not available."
+msgstr "Якщо показано -1, відомоÑÑ‚Ñ– Ñ” недоÑтупними."
+
+#. type: TP
+#: ../man/top.1:694
+#, no-wrap
+msgid "B<AGNI \\*(Em Autogroup Nice Value >"
+msgstr "B<AGNI \\*(Em Autogroup Nice Value >"
+
+#. type: Plain text
+#: ../man/top.1:700
+msgid "The autogroup nice value which affects scheduling of all processes in that group. A negative nice value means higher priority, whereas a positive nice value means lower priority."
+msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– автогрупи, Ñке ÑтоÑуєтьÑÑ Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÑÑ–Ñ… процеÑів у цій групі. Від'ємне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– означає, що пріоритет Ñ” вищим, а додатне — нижчим."
+
+#. type: TP
+#: ../man/top.1:701
+#, no-wrap
+msgid "B<CGNAME \\*(Em Control Group Name >"
+msgstr "B<CGNAME \\*(Em Control Group Name >"
+
+#. type: Plain text
+#: ../man/top.1:705
+msgid "The name of the control group to which a process belongs, or `-' if not applicable for that process."
+msgstr "Ðазва групи керуваннÑ, Ñкій належить процеÑ, або «-», Ñкщо Ñ—Ñ… можна заÑтоÑовувати до цього процеÑу."
+
+#. type: Plain text
+#: ../man/top.1:709
+msgid "This will typically be the last entry in the full list of control groups as shown under the next heading (CGROUPS). And as is true there, this field is also variable width."
+msgstr "Це, типово, буде оÑтанній Ð·Ð°Ð¿Ð¸Ñ Ñƒ повному ÑпиÑку груп керуваннÑ, показаного під наÑтупним заголовком (CGROUPS). Це поле також має змінну ширину."
+
+#. type: TP
+#: ../man/top.1:710
+#, no-wrap
+msgid "B<CGROUPS \\*(Em Control Groups >"
+msgstr "B<CGROUPS \\*(Em Control Groups >"
+
+#. type: Plain text
+#: ../man/top.1:714
+msgid "The names of the control group(s) to which a process belongs, or `-' if not applicable for that process."
+msgstr "Ðазви груп керуваннÑ, Ñкій належить процеÑ, або «-», Ñкщо Ñ—Ñ… можна заÑтоÑовувати до цього процеÑу."
+
+#. type: Plain text
+#: ../man/top.1:719
+msgid "Control Groups provide for allocating resources (cpu, memory, network bandwidth, etc.) among installation-defined groups of processes. They enable fine-grained control over allocating, denying, prioritizing, managing and monitoring those resources."
+msgstr "Групи ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð¾Ð´Ñ–Ð»Ñƒ реÑурÑів (процеÑора, пам'ÑÑ‚Ñ–, каналу мережі тощо) Ñеред визначених під Ñ‡Ð°Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð³Ñ€ÑƒÐ¿ процеÑів. Вони уможливлюють тонкий контроль над розподілом реÑурÑів, забороною викориÑÑ‚Ð°Ð½Ð½Ñ Ñ€ÐµÑурÑів, пріоритетами у викориÑтанні реÑурÑів, ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑурÑами та ÑпоÑÑ‚ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð° реÑурÑами."
+
+#. type: Plain text
+#: ../man/top.1:723
+msgid "Many different hierarchies of cgroups can exist simultaneously on a system and each hierarchy is attached to one or more subsystems. A subsystem represents a single resource."
+msgstr "ОдночаÑно у ÑиÑтемі може бути багато різних ієрархій груп керуваннÑ. Кожну з ієрархій пов'Ñзано із однією або декількома підÑиÑтемами. ПідÑиÑтема відповідає єдиному реÑурÑу."
+
+#. type: Plain text
+#: ../man/top.1:730
+msgid "\\*(NT The CGROUPS field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum \\*(WX characters). Even so, such variable width fields could still suffer truncation. \\*(XT 5c. SCROLLING a Window for additional information on accessing any truncated data."
+msgstr "\\*(NT Поле CGROUPS, на відміну від більшоÑÑ‚Ñ– Ñтовпчиків, не Ñ” полем фікÑованої ширини. Якщо його показано, воно разом із іншими полÑми змінної ширини доповнюватиме текÑÑ‚ у Ñ€Ñдку до межі ширини екрана (аж до макÑимальної ширини у \\*(WX Ñимволів). Попри це, такі Ð¿Ð¾Ð»Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¾Ñ— ширини теж можуть підлÑгати обрізанню. Див. розділ 5в. ГОРТÐÐÐЯ ВІКÐÐ, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про доÑтуп до будь-Ñких обрізаних даних."
+
+#. type: TP
+#: ../man/top.1:731
+#, no-wrap
+msgid "B<CODE \\*(Em Code Size (KiB) >"
+msgstr "B<CODE \\*(Em Розмір коду (КіБ) >"
+
+#. type: Plain text
+#: ../man/top.1:735
+msgid "The amount of \\*(MP currently devoted to executable code, also known as the Text Resident Set size or TRS."
+msgstr "ОбÑÑг фізичної пам'ÑÑ‚Ñ–, Ñку у поточний момент призначено Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð³Ð¾ коду, також відома Ñк розмір Text Resident Set (TRS або текÑтового резидентного набору)."
+
+#. type: TP
+#: ../man/top.1:738
+#, no-wrap
+msgid "B<COMMAND \\*(Em Command Name> or CommandB< Line >"
+msgstr "B< COMMAND \\*(Em Ðазва команди> або командний B<Ñ€Ñдок >"
+
+#. type: Plain text
+#: ../man/top.1:744
+msgid "Display the command line used to start a task or the name of the associated program. You toggle between commandI< line> andI< name> with `c', which is both a \\*(CO and an \\*(CI."
+msgstr "Показує Ñ€Ñдок команди, Ñкий викориÑтано Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ назву пов'Ñзаної із ним програми. ÐŸÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¼Ñ–Ð¶ показом I<Ñ€Ñдка> Ñ– I<назви> можна виконувати за допомогою «c», параметра командного Ñ€Ñдка або інтерактивної команди."
+
+#. type: Plain text
+#: ../man/top.1:749
+#, no-wrap
+msgid ""
+"When you've chosen to display command lines, processes without a command\n"
+"line (like kernel threads) will be shown with only the program name in\n"
+"brackets, as in this example:\n"
+" [kthreadd]\n"
+msgstr ""
+"Якщо ви вибрали режим Ñ€Ñдка команди, процеÑи без Ñ€Ñдка команди (зокрема\n"
+"потоки Ñдра) буде показано лише назвою програми у квадратних дужках,\n"
+"Ñк у цьому прикладі:\n"
+" [kthreadd]\n"
+
+#. type: Plain text
+#: ../man/top.1:752
+msgid "This field may also be impacted by the forest view display mode. \\*(XC `V' \\*(CI for additional information regarding that mode."
+msgstr "Ðа це поле також може впливати режим показу дерева. Див. інтерактивну команду «V», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про цей режим."
+
+#. type: Plain text
+#: ../man/top.1:761
+msgid "\\*(NT The COMMAND field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum \\*(WX characters). Even so, such variable width fields could still suffer truncation. This is especially true for this field when command lines are being displayed (the `c' \\*(CI.) \\*(XT 5c. SCROLLING a Window for additional information on accessing any truncated data."
+msgstr "\\*(NT Поле COMMAND, на відміну від більшоÑÑ‚Ñ– Ñтовпчиків, не Ñ” полем фікÑованої ширини. Якщо його показано, воно разом із іншими полÑми змінної ширини доповнюватиме текÑÑ‚ у Ñ€Ñдку до межі ширини екрана (аж до макÑимальної ширини у \\*(WX Ñимволів). Попри це, такі Ð¿Ð¾Ð»Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¾Ñ— ширини теж можуть підлÑгати обрізанню. Це оÑобливо ÑтоÑуєтьÑÑ Ñ†ÑŒÐ¾Ð³Ð¾ Ð¿Ð¾Ð»Ñ Ð¿Ñ€Ð¸ показі Ñ€Ñдків команди (інтерактивна команда «c».) Див. розділ 5в. ГОРТÐÐÐЯ ВІКÐÐ, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про доÑтуп до будь-Ñких обрізаних даних."
+
+#. type: TP
+#: ../man/top.1:762
+#, no-wrap
+msgid "B<DATA \\*(Em Data + Stack Size (KiB) >"
+msgstr "B<DATA \\*(Em Розмір даних + Ñтека (КіБ) >"
+
+#. type: Plain text
+#: ../man/top.1:768
+msgid "The amount of private memory I<reserved> by a process. It is also known as the Data Resident Set or DRS. Such memory may not yet be mapped to \\*(MP (RES) but will always be included in the \\*(MV (VIRT) amount."
+msgstr "ОбÑÑг приватної пам'ÑÑ‚Ñ–, Ñкий I<зарезервовано> процеÑом. Ð¦Ñ Ð¿Ð°Ð¼'ÑÑ‚ÑŒ має назву Data Resident Set (DRS або резидентний набір даних). Таку пам'ÑÑ‚ÑŒ ще не може бути пов'Ñзано із фізичною пам'ÑÑ‚Ñ‚ÑŽ (RES), але Ñ—Ñ— буде завжди включено в обÑÑг віртуальної пам'ÑÑ‚Ñ– (VIRT)."
+
+#. type: TP
+#: ../man/top.1:771
+#, no-wrap
+msgid "B<ELAPSED \\*(Em Elapsed Running Time>"
+msgstr "B<ELAPSED \\*(Em Витрачений на роботу чаÑ>"
+
+#. type: Plain text
+#: ../man/top.1:775
+msgid "The length of time since a process was started. Thus, the most recently started task will display the smallest time interval."
+msgstr "Ð§Ð°Ñ Ð· моменту запуÑку процеÑу. Отже, Ð´Ð»Ñ Ð¾Ñтаннього запущеного Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ показано найменший інтервал чаÑу."
+
+#. type: Plain text
+#: ../man/top.1:780
+msgid "The value will be expressed as `HH,MM' (hours,minutes) but is subject to additional scaling if the interval becomes too great to fit column width. At that point it will be scaled to `DD+HH' (days+hours) and possibly beyond."
+msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ показано Ñк «ГГ,ХХ» (години,хвилини), але його може бути маÑштабовано, Ñкщо інтервал Ñтає надто великим, щоб його можна було показати у Ñтовпчику. Тобто, його може бути маÑштабовано до «ДД+ГГ» (дні+години) Ñ–, можливо, далі."
+
+#. type: TP
+#: ../man/top.1:781
+#, no-wrap
+msgid "B<ENVIRON \\*(Em Environment variables >"
+msgstr "B<ENVIRON \\*(Em Змінні Ñередовища >"
+
+#. type: Plain text
+#: ../man/top.1:787
+msgid "Display all of the environment variables, if any, as seen by the respective processes. These variables will be displayed in their raw native order, not the sorted order you are accustomed to seeing with an unqualified `set'."
+msgstr "Показ уÑÑ–Ñ… змінних Ñередовища, Ñкщо такі визначено, з точки зору відповідних процеÑів. Ці змінні буде показано у їхньому необробленому порÑдку, а не в упорÑдкованому виглÑд, до Ñкого ви звикли бачити у виведенні «set»."
+
+#. type: Plain text
+#: ../man/top.1:795
+msgid "\\*(NT The ENVIRON field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum \\*(WX characters). Even so, such variable width fields could still suffer truncation. This is especially true for this field. \\*(XT 5c. SCROLLING a Window for additional information on accessing any truncated data."
+msgstr "\\*(NT Поле ENVIRON, на відміну від більшоÑÑ‚Ñ– Ñтовпчиків, не Ñ” полем фікÑованої ширини Якщо його показано, воно разом із іншими полÑми змінної ширини доповнюватиме текÑÑ‚ у Ñ€Ñдку до межі ширини екрана (аж до макÑимальної ширини у \\*(WX Ñимволів). Попри це, такі Ð¿Ð¾Ð»Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¾Ñ— ширини теж можуть підлÑгати обрізанню. Це оÑобливо ÑтоÑуєтьÑÑ Ñ†ÑŒÐ¾Ð³Ð¾ полÑ. Див. розділ 5в. ГОРТÐÐÐЯ ВІКÐÐ, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про доÑтуп до будь-Ñких обрізаних даних."
+
+#. type: TP
+#: ../man/top.1:796
+#, no-wrap
+msgid "B<EXE \\*(Em Executable Path >"
+msgstr "B<EXE \\*(Em ШлÑÑ… до виконуваного файла >"
+
+#. type: Plain text
+#: ../man/top.1:800
+msgid "Where available, this is the full path to the executable, including the program name."
+msgstr "Де Ñ” доÑтупним, це повний шлÑÑ… до виконуваного файла, включно із назвою програми."
+
+#. type: Plain text
+#: ../man/top.1:804
+msgid "\\*(NT The EXE field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum \\*(WX characters)."
+msgstr "\\*(NT Поле EXE, на відміну від більшоÑÑ‚Ñ– Ñтовпчиків, не Ñ” полем фікÑованої ширини. Якщо його показано, воно разом із іншими полÑми змінної ширини доповнюватиме текÑÑ‚ у Ñ€Ñдку до межі ширини екрана (аж до макÑимальної ширини у \\*(WX Ñимволів)."
+
+#. type: TP
+#: ../man/top.1:805
+#, no-wrap
+msgid "B<Flags \\*(Em Task Flags >"
+msgstr "B<Flags \\*(Em Прапорці Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ >"
+
+#. type: Plain text
+#: ../man/top.1:810
+msgid "This column represents the task's current scheduling flags which are expressed in hexadecimal notation and with zeros suppressed. These flags are officially documented in E<lt>linux/sched.hE<gt>."
+msgstr "У цьому Ñтовпчику буде показано поточні прапорці Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ, Ñкі буде виражено у шіÑтнадцÑтковому форматі із придушеннÑм нулів. Ці прапорці офіційно документовано у E<lt>linux/sched.hE<gt>."
+
+#. type: TP
+#: ../man/top.1:811
+#, no-wrap
+msgid "B<GID \\*(Em Group Id >"
+msgstr "B<GID \\*(Em Ідентифікатор групи >"
+
+#. type: Plain text
+#: ../man/top.1:814
+msgid "TheI< effective> group ID."
+msgstr "Ідентифікатор I<ефективної> групи."
+
+#. type: TP
+#: ../man/top.1:815
+#, no-wrap
+msgid "B<GROUP \\*(Em Group Name >"
+msgstr "B<GROUP \\*(Em Ðазва групи >"
+
+#. type: Plain text
+#: ../man/top.1:818
+msgid "TheI< effective> group name."
+msgstr "Ðазва I<ефективної> групи."
+
+#. type: TP
+#: ../man/top.1:819
+#, no-wrap
+msgid "B<LOGID \\*(Em Login User Id >"
+msgstr "B<LOGID \\*(Em Ідентифікатор кориÑтувача Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñƒ >"
+
+#. type: Plain text
+#: ../man/top.1:823
+msgid "The user ID used atI< login>. When -1 is displayed it means this information is not available."
+msgstr "Ідентифікатор кориÑтувача під Ñ‡Ð°Ñ I<входу>. Якщо показано -1, відомоÑÑ‚Ñ– Ñ” недоÑтупними."
+
+#. type: TP
+#: ../man/top.1:824
+#, no-wrap
+msgid "B<LXC \\*(Em Lxc Container Name >"
+msgstr "B<LXC \\*(Em Lxc Ðазва контейнера >"
+
+#. type: Plain text
+#: ../man/top.1:828
+msgid "The name of the lxc container within which a task is running. If a process is not running inside a container, a dash (`-') will be shown."
+msgstr "Ðазва контейнера LXC, у Ñкому запущено завданнÑ. Якщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ðµ запущено у контейнері, буде показано Ð´ÐµÑ„Ñ–Ñ («-»)."
+
+#. type: TP
+#: ../man/top.1:829
+#, no-wrap
+msgid "B<NI \\*(Em Nice Value >"
+msgstr "B<NI \\*(Em Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– >"
+
+#. type: Plain text
+#: ../man/top.1:836
+msgid "The nice value of the task. A negative nice value means higher priority, whereas a positive nice value means lower priority. Zero in this field simply means priority will not be adjusted in determining a task's dispatch-ability."
+msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– (nice) завданнÑ. Від'ємне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– означає вищу пріоритетніÑÑ‚ÑŒ, а додатне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ â€” нижчу. Ðульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ цьому полі проÑто означає, що при виділенні реÑурÑів Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– не відбуватиметьÑÑ."
+
+#. type: Plain text
+#: ../man/top.1:840
+msgid "\\*(NT This value only affects scheduling priority relative to other processes in the same autogroup. \\*(XC `AGID' and `AGNI' fields for additional information on autogroups."
+msgstr "\\*(NT Це Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¿Ð»Ð¸Ð²Ð°Ñ” лише на пріоритет Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð½Ð¾Ñно інших процеÑів у тій Ñамій автогрупі. Див. Ð¿Ð¾Ð»Ñ Â«AGID» та «AGNI», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про автогрупи."
+
+#. type: TP
+#: ../man/top.1:841
+#, no-wrap
+msgid "B<NU \\*(Em Last known NUMA node >"
+msgstr "B<NU \\*(Em ОÑтанній відомий вузол NUMA >"
+
+#. type: Plain text
+#: ../man/top.1:845
+msgid "A number representing the NUMA node associated with the last used processor (`P'). When -1 is displayed it means that NUMA information is not available."
+msgstr "ЧиÑло, Ñке відповідає номеру вузла NUMA, з Ñким пов'Ñзано оÑтанній викориÑтаний процеÑор («P»). Якщо тут показано -1, дані щодо NUMA Ñ” недоÑтупними."
+
+#. type: Plain text
+#: ../man/top.1:847
+msgid "\\*(XC `2' and `3' \\*(CIs for additional NUMA provisions affecting the \\*(SA."
+msgstr "Див. інтерактивні команди «2» Ñ– «3», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про параметри NUMA, Ñкі ÑтоÑуютьÑÑ Ð¾Ð±Ð»Ð°ÑÑ‚Ñ– резюме."
+
+#. type: TP
+#: ../man/top.1:848
+#, no-wrap
+msgid "B<OOMa \\*(Em Out of Memory Adjustment Factor >"
+msgstr "B<OOMa \\*(Em Out of Memory Adjustment Factor >"
+
+#. type: Plain text
+#: ../man/top.1:853
+msgid "The value, ranging from -1000 to +1000, added to the current out of memory score (OOMs) which is then used to determine which task to kill when memory is exhausted."
+msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ діапазоні від -1000 до +1000, Ñке буде додано до поточного рахунку виходу за межі пам'ÑÑ‚Ñ– (OOM), Ñке потім буде викориÑтано Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð¾Ð³Ð¾, Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñкого Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ñлід припинити, Ñкщо пам'ÑÑ‚ÑŒ буде вичерпано."
+
+#. type: TP
+#: ../man/top.1:854
+#, no-wrap
+msgid "B<OOMs \\*(Em Out of Memory Score >"
+msgstr "B<OOMs \\*(Em Out of Memory Score >"
+
+#. type: Plain text
+#: ../man/top.1:859
+msgid "The value, ranging from 0 to +1000, used to select task(s) to kill when memory is exhausted. Zero translates to `never kill' whereas 1000 means `always kill'."
+msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ діапазоні від 0 до +1000, Ñке буде викориÑтано Ð´Ð»Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ завдань, Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñких Ñлід припинити, Ñкщо буде вичерпано пам'ÑÑ‚ÑŒ. Ðульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¾Ð·Ð½Ð°Ñ‡Ð°Ñ” «ніколи не припинÑти», а Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ 1000 означає «припинÑти завжди»."
+
+#. type: TP
+#: ../man/top.1:860
+#, no-wrap
+msgid "B<P \\*(Em Last used \\*(PU (SMP) >"
+msgstr "B<P \\*(Em ОÑтанній викориÑтаний процеÑор (SMP) >"
+
+#. type: Plain text
+#: ../man/top.1:868
+msgid "A number representing the last used processor. In a true SMP environment this will likely change frequently since the kernel intentionally uses weak affinity. Also, the very act of running \\*(We may break this weak affinity and cause more processes to change \\*(PUs more often (because of the extra demand for \\*(Pu time)."
+msgstr "ЧиÑло, Ñке відповідає номеру оÑтаннього викориÑтаного процеÑора. У Ñередовищах із Ñ–Ñтинною Ñиметричною багатопроцеÑорніÑÑ‚ÑŽ це значеннÑ, ймовірно, чаÑто змінюватиметьÑÑ, оÑкільки Ñдро навмиÑне викориÑтовує Ñлабку прив'Ñзку до процеÑорів. Крім того, Ñам запуÑк \\*(We може порушити цю Ñлабку прив'Ñзку, Ñ– Ñпричинити чаÑтішу зміну процеÑорів Ð´Ð»Ñ Ð±Ñ–Ð»ÑŒÑˆÐ¾Ñ— кількоÑÑ‚Ñ– завдань (через додаткову потребу у процеÑорному чаÑÑ–)."
+
+#. type: TP
+#: ../man/top.1:869
+#, no-wrap
+msgid "B<PGRP \\*(Em Process Group Id >"
+msgstr "B<PGRP \\*(Em Ідентифікатор групи процеÑів >"
+
+#. type: Plain text
+#: ../man/top.1:878
+msgid "Every process is member of a unique process group which is used for distribution of signals and by terminals to arbitrate requests for their input and output. When a process is created (forked), it becomes a member of the process group of its parent. By convention, this value equals the process ID (\\*(Xa PID) of the first member of a process group, called the process group leader."
+msgstr "Кожен Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ” учаÑником унікальної групи процеÑів, Ñку викориÑтовують Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð¾Ð´Ñ–Ð»Ñƒ Ñигналів, а також терміналами Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð¾Ð´Ñ–Ð»Ñƒ запитів щодо Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñ– виведеннÑ. При Ñтворенні (відгалуженні) процеÑу він Ñтає учаÑником групи проєктів його батьківÑького процеÑу. За угодою, це Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¾Ñ€Ñ–Ð²Ð½ÑŽÑ” ідентифікатору процеÑу (\\*(Xa PID) першого учаÑника групи процеÑів, Ñкий називають лідером групи процеÑів."
+
+#. type: TP
+#: ../man/top.1:879
+#, no-wrap
+msgid "B<PID \\*(Em Process Id >"
+msgstr "B<PID \\*(Em Ідентифікатор процеÑу >"
+
+#. type: Plain text
+#: ../man/top.1:884
+msgid "The task's unique process ID, which periodically wraps, though never restarting at zero. In kernel terms, it is a dispatchable entity defined by a task_struct."
+msgstr "Унікальний ідентифікатор процеÑу завданнÑ, Ñкий ÑиÑтема періодично циклічно перепризначає, хоча ніколи не розпочинає відлік з нулÑ. У термінах Ñдра це розподілений запиÑ, Ñкий визначено task_struct."
+
+#. type: Plain text
+#: ../man/top.1:889
+msgid "This value may also be used as: a process group ID (\\*(Xa PGRP); a session ID for the session leader (\\*(Xa SID); a thread group ID for the thread group leader (\\*(Xa TGID); and a TTY process group ID for the process group leader (\\*(Xa TPGID)."
+msgstr "Це Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð°ÐºÐ¾Ð¶ може бути викориÑтано Ñк ідентифікатор групи процеÑів (\\*(Xa PGRP); ідентифікатор ÑеанÑу Ð´Ð»Ñ Ð»Ñ–Ð´ÐµÑ€Ð° ÑеанÑу (\\*(Xa SID); ідентифікатор групи потоків Ð´Ð»Ñ Ð»Ñ–Ð´ÐµÑ€Ð° групи потоків (\\*(Xa TGID); Ñ– ідентифікатор групи процеÑів термінала Ð´Ð»Ñ Ð»Ñ–Ð´ÐµÑ€Ð° групи процеÑів (\\*(Xa TPGID)."
+
+#. type: TP
+#: ../man/top.1:890
+#, no-wrap
+msgid "B<PPID \\*(Em Parent Process Id >"
+msgstr "B<PPID \\*(Em Ідентифікатор батьківÑького процеÑу >"
+
+#. type: Plain text
+#: ../man/top.1:893
+msgid "The process ID (pid) of a task's parent."
+msgstr "Ідентифікатор процеÑу (pid) батьківÑького процеÑу завданнÑ."
+
+#. type: TP
+#: ../man/top.1:894
+#, no-wrap
+msgid "B<PR \\*(Em Priority >"
+msgstr "B<PR \\*(Em ПріоритетніÑÑ‚ÑŒ >"
+
+#. type: Plain text
+#: ../man/top.1:899
+msgid "The scheduling priority of the task. If you see `rt' in this field, it means the task is running under real time scheduling priority."
+msgstr "ПріоритетніÑÑ‚ÑŒ Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ. Якщо ви бачите у цьому полі «rt», це означає, що Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ñ†ÑŽÑ” із плануваннÑм у режимі реального чаÑу."
+
+#. type: Plain text
+#: ../man/top.1:903
+msgid "Under linux, real time priority is somewhat misleading since traditionally the operating itself was not preemptible. And while the 2.6 kernel can be made mostly preemptible, it is not always so."
+msgstr "У linux пріоритетніÑÑ‚ÑŒ реального чаÑу Ñ” дещо оманливим терміном, оÑкільки, традиційно, Ñама ÑиÑтема не була ÑиÑтемою із витіÑненнÑм. І хоча Ñдро 2.6 можна зробити Ñдром, Ñке Ñ” здебільшого придатним до витіÑненнÑ, працює це не завжди."
+
+#. type: TP
+#: ../man/top.1:904
+#, no-wrap
+msgid "B<PSS \\*(Em Proportional Resident Memory, smaps (KiB) >"
+msgstr "B<PSS \\*(Em Пропорційна резидентна пам'ÑÑ‚ÑŒ, smaps (КіБ) >"
+
+#. type: Plain text
+#: ../man/top.1:909
+msgid "The proportion of this task's share of `RSS' where each page is divided by the number of processes sharing it. It is also the sum of the `PSan', `PSfd' and `PSsh' fields."
+msgstr "ЧаÑтка цього Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ñƒ «RSS», де кожну Ñторінку буде поділено на кількіÑÑ‚ÑŒ процеÑів, Ð´Ð»Ñ Ñких вона Ñ” Ñпільною. Також, це Ñума значень у полÑÑ… «PSan», «PSfd» та «PSsh»."
+
+#. type: Plain text
+#: ../man/top.1:912
+msgid "For example, if a process has 1000 resident pages alone and 1000 resident pages shared with another process, its `PSS' would be 1500 (times page size)."
+msgstr "Ðаприклад, Ñкщо у процеÑу Ñ” 1000 резидентних Ñторінок Ñ– 1000 резидентних Ñторінок Ñ” Ñпільними з іншим процеÑом, значеннÑм «PSS» буде рівним 1500 (помножене на розмір Ñторінки)."
+
+#. type: Plain text
+#: ../man/top.1:914 ../man/top.1:927 ../man/top.1:951 ../man/top.1:1114
+msgid "\\*(ZX."
+msgstr "\\*(ZX."
+
+#. type: Plain text
+#: ../man/top.1:917
+msgid "B<PSan \\*(Em Proportional Anonymous Memory, smaps (KiB) >"
+msgstr "B<PSan \\*(Em Пропорційна анонімна пам'ÑÑ‚ÑŒ, smaps (КіБ) >"
+
+#. type: Plain text
+#: ../man/top.1:919
+msgid "B<PSfd \\*(Em Proportional File Memory, smaps (KiB) >"
+msgstr "B<PSfd \\*(Em Пропорційна файлова пам'ÑÑ‚ÑŒ, smaps (КіБ) >"
+
+#. type: Plain text
+#: ../man/top.1:921
+msgid "B<PSsh \\*(Em Proportional Shmem Memory, smaps (KiB) >"
+msgstr "B<PSsh \\*(Em Пропорційна пам'ÑÑ‚ÑŒ shmem, smaps (КіБ) >"
+
+#. type: Plain text
+#: ../man/top.1:925
+msgid "As was true for `PSS' above (total proportional resident memory), these fields represent the proportion of this task's share of each type of memory divided by the number of processes sharing it."
+msgstr "Як Ñ– поле «PSS» вище (загальна пропорційна резидентна пам'ÑÑ‚ÑŒ), ці Ð¿Ð¾Ð»Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°ÑŽÑ‚ÑŒ чаÑтці цього Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ типу пам'ÑÑ‚Ñ–, поділеній на кількіÑÑ‚ÑŒ процеÑів, Ð´Ð»Ñ Ñких вона Ñ” Ñпільною."
+
+#. type: TP
+#: ../man/top.1:929
+#, no-wrap
+msgid "B<RES \\*(Em Resident Memory Size (KiB) >"
+msgstr "B< RES \\*(Em Розмір резидентної пам'ÑÑ‚Ñ– (КіБ) >"
+
+#. type: Plain text
+#: ../man/top.1:934
+msgid "A subset of the virtual address space (VIRT) representing the non-swapped \\*(MP a task is currently using. It is also the sum of the `RSan', `RSfd' and `RSsh' fields."
+msgstr "Піднабір проÑтору віртуальних Ð°Ð´Ñ€ÐµÑ (VIRT) Ñкий відповідає фізичний пам'ÑÑ‚Ñ– без резервної пам'ÑÑ‚Ñ– на диÑку, Ñку Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñтовує у поточний момент. Це також Ñума значень у полÑÑ… RSan, RSfd Ñ– RSsh."
+
+#. type: Plain text
+#: ../man/top.1:938
+msgid "It can include private anonymous pages, private pages mapped to files (including program images and shared libraries) plus shared anonymous pages. All such memory is backed by the \\*(MS represented separately under SWAP."
+msgstr "Може включати приватні анонімні Ñторінки, приватні Ñторінки, Ñкі пов'Ñзано із файлами (включно із образами програм та бібліотеками Ñпільного викориÑтаннÑ) разом із анонімними Ñторінками Ñпільного викориÑтаннÑ. Резервне ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ ÑƒÑієї цієї пам'ÑÑ‚Ñ– здійÑнюєтьÑÑ Ð´Ð¾ файла резервної пам'ÑÑ‚Ñ–, Ñкий окремо показано у полі SWAP."
+
+#. type: Plain text
+#: ../man/top.1:941
+msgid "Lastly, this field may also include shared file-backed pages which, when modified, act as a dedicated \\*(MS and thus will never impact SWAP."
+msgstr "Ðарешті, це поле також може включати Ñпільні Ñторінки із резервними копіÑми у файлах, Ñкі, Ñкщо до них внеÑено зміни, працюють Ñк файл резервної пам'ÑÑ‚Ñ– Ñ–, таким чином, ніколи не впливають на Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ SWAP."
+
+#. type: TP
+#: ../man/top.1:944
+#, no-wrap
+msgid "B<RSS \\*(Em Resident Memory, smaps (KiB) >"
+msgstr "B<RSS \\*(Em Розмір резидентної пам'ÑÑ‚Ñ–, smaps (КіБ) >"
+
+#. type: Plain text
+#: ../man/top.1:949
+msgid "Another, more precise view of process non-swapped \\*(MP. It is obtained from the `smaps_rollup' file and is generally slightly larger than that shown for `RES'."
+msgstr "Інший, точніший переглÑд нерезервованої фізичної пам'ÑÑ‚Ñ– процеÑу. Дані буде отримано з файла «smaps_rollup». Зазвичай, результат буде трохи більшим за показаний Ð´Ð»Ñ Â«RES»."
+
+#. type: TP
+#: ../man/top.1:952
+#, no-wrap
+msgid "B<RSan \\*(Em Resident Anonymous Memory Size (KiB) >"
+msgstr "B<RSan \\*(Em Розмір резидентної анонімної пам'ÑÑ‚Ñ– (КіБ) >"
+
+#. type: Plain text
+#: ../man/top.1:956
+msgid "A subset of resident memory (RES) representing private pages not mapped to a file."
+msgstr "Підмножина резидентної пам'ÑÑ‚Ñ– (RES), що відповідає приватним Ñторінкам, Ñкі не пов'Ñзано із файлом."
+
+#. type: TP
+#: ../man/top.1:957
+#, no-wrap
+msgid "B<RSfd \\*(Em Resident File-Backed Memory Size (KiB) >"
+msgstr "B<RSfd \\*(Em Розмір резидентної пам'ÑÑ‚Ñ– із резервом у файлі (КіБ) >"
+
+#. type: Plain text
+#: ../man/top.1:962
+msgid "A subset of resident memory (RES) representing the implicitly shared pages supporting program images and shared libraries. It also includes explicit file mappings, both private and shared."
+msgstr "Підмножина резидентної пам'ÑÑ‚Ñ– (RES), що відповідають неÑвно Ñпільним Ñторінкам, Ñкі підтримують образи програм та бібліотеки Ñпільного викориÑтаннÑ. Сюди також включено Ñвні прив'Ñзки до файлів, приватні та Ñпільні."
+
+#. type: TP
+#: ../man/top.1:963
+#, no-wrap
+msgid "B<RSlk \\*(Em Resident Locked Memory Size (KiB) >"
+msgstr "B<RSlk \\*(Em Розмір резидентної заблокованої пам'ÑÑ‚Ñ– (КіБ) >"
+
+#. type: Plain text
+#: ../man/top.1:966
+msgid "A subset of resident memory (RES) which cannot be swapped out."
+msgstr "Підмножина резидентної пам'ÑÑ‚Ñ– (RES), Ñку не можна зарезервувати на диÑку."
+
+#. type: TP
+#: ../man/top.1:967
+#, no-wrap
+msgid "B<RSsh \\*(Em Resident Shared Memory Size (KiB) >"
+msgstr "B<RSsh \\*(Em Розмір резидентної Ñпільної пам'ÑÑ‚Ñ– (КіБ) >"
+
+#. type: Plain text
+#: ../man/top.1:971
+msgid "A subset of resident memory (RES) representing the explicitly shared anonymous shm*/mmap pages."
+msgstr "Підмножина резидентної пам'ÑÑ‚Ñ– (RES), що відповідає Ñвно Ñпільним анонімним Ñторінкам shm*/mmap."
+
+#. type: TP
+#: ../man/top.1:972
+#, no-wrap
+msgid "B<RUID \\*(Em Real User Id >"
+msgstr "B<RUID \\*(Em Ідентифікатор дійÑного кориÑтувача >"
+
+#. type: Plain text
+#: ../man/top.1:975
+msgid "TheI< real> user ID."
+msgstr "Ідентифікатор I<дійÑного> кориÑтувача."
+
+#. type: TP
+#: ../man/top.1:976
+#, no-wrap
+msgid "B<RUSER \\*(Em Real User Name >"
+msgstr "B<RUSER \\*(Em Ім'Ñ Ð´Ñ–Ð¹Ñного кориÑтувача >"
+
+#. type: Plain text
+#: ../man/top.1:979
+msgid "TheI< real> user name."
+msgstr "I<ДійÑне> ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача."
+
+#. type: TP
+#: ../man/top.1:980
+#, no-wrap
+msgid "B<S \\*(Em Process Status >"
+msgstr "B<S \\*(Em Стан процеÑу >"
+
+#. type: Plain text
+#: ../man/top.1:990
+#, no-wrap
+msgid ""
+"The status of the task which can be one of:\n"
+" B<D> = uninterruptible sleep\n"
+" B<I> = idle\n"
+" B<R> = running\n"
+" B<S> = sleeping\n"
+" B<T> = stopped by job control signal\n"
+" B<t> = stopped by debugger during trace\n"
+" B<Z> = zombie\n"
+msgstr ""
+"Стан завданнÑ, одне з таких значень:\n"
+" B<D> = приÑиплÑннÑ, Ñке не можна переривати\n"
+" B<I> = бездіÑльніÑÑ‚ÑŒ\n"
+" B<R> = працює\n"
+" B<S> = приÑпано\n"
+" B<T> = зупинено Ñигналом ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñми\n"
+" B<t> = зупинено заÑобом діагноÑтики під Ñ‡Ð°Ñ Ñ‚Ñ€Ð°ÑуваннÑ\n"
+" B<Z> = зомбі\n"
+
+#. type: Plain text
+#: ../man/top.1:995
+msgid "Tasks shown as running should be more properly thought of as ready to run \\*(Em their task_struct is simply represented on the Linux run-queue. Even without a true SMP machine, you may see numerous tasks in this state depending on \\*(We's delay interval and nice value."
+msgstr "ЗавданнÑ, Ñкі показано Ñк такі, Ñкі працюють, правильніше було б назвати готовими до роботи \\*(Em Ñ—Ñ…Ð½Ñ task_struct Ñ” проÑто предÑтавлена у черзі роботи Linux. Ðавіть без Ñправжньої машини із Ñиметричною багатопроцеÑорніÑÑ‚ÑŽ ви можете побачити чиÑельні Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ñƒ цьому Ñтані. КількіÑÑ‚ÑŒ залежатиме від інтервалу затримки \\*(We та Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– (nice)."
+
+#. type: TP
+#: ../man/top.1:996
+#, no-wrap
+msgid "B<SHR \\*(Em Shared Memory Size (KiB) >"
+msgstr "B<SHR \\*(Em Розмір Ñпільної пам'ÑÑ‚Ñ– (КіБ) >"
+
+#. type: Plain text
+#: ../man/top.1:1002
+msgid "A subset of resident memory (RES) that may be used by other processes. It will include shared anonymous pages and shared file-backed pages. It also includes private pages mapped to files representing program images and shared libraries."
+msgstr "Підмножина резидентної пам'ÑÑ‚Ñ– (RES), Ñку може бути викориÑтано іншими процеÑами. Сюди буде включено Ñпільні анонімні Ñторінки та Ñпільні Ñторінки із резервними копіÑми на диÑку. Також буде включено приватні Ñторінки, Ñкі пов'Ñзано із файлами, що відповідають образам програм та бібліотекам Ñпільного викориÑтаннÑ."
+
+#. type: TP
+#: ../man/top.1:1005
+#, no-wrap
+msgid "B<SID \\*(Em Session Id >"
+msgstr "B<SID \\*(Em Ідентифікатор ÑеанÑу >"
+
+#. type: Plain text
+#: ../man/top.1:1013
+msgid "A session is a collection of process groups (\\*(Xa PGRP), usually established by the login shell. A newly forked process joins the session of its creator. By convention, this value equals the process ID (\\*(Xa PID) of the first member of the session, called the session leader, which is usually the login shell."
+msgstr "Ð¡ÐµÐ°Ð½Ñ â€” збірка груп процеÑів (\\*(Xa PGRP), зазвичай, вÑтановлюєтьÑÑ Ð¾Ð±Ð¾Ð»Ð¾Ð½ÐºÐ¾ÑŽ входу до ÑиÑтеми. Ðовий відгалужений Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð´Ð¾Ð»ÑƒÑ‡Ð°Ñ”Ñ‚ÑŒÑÑ Ð´Ð¾ ÑеанÑу Ñвого породжувача. За угодою, це Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¾Ñ€Ñ–Ð²Ð½ÑŽÑ” ідентифікатору процеÑу (\\*(Xa PID) першого учаÑника ÑеанÑу, Ñкого називають лідером ÑеанÑу, Ñким, зазвичай, Ñ” оболонка входу до ÑиÑтеми."
+
+#. type: TP
+#: ../man/top.1:1014
+#, no-wrap
+msgid "B<STARTED \\*(Em Start Time Interval>"
+msgstr "B<STARTED \\*(Em Інтервал чаÑу запуÑку>"
+
+#. type: Plain text
+#: ../man/top.1:1018
+msgid "The length of time since system boot when a process started. Thus, the most recently started task will display the largest time interval."
+msgstr "Ð§Ð°Ñ Ð²Ñ–Ð´ моменту Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ ÑиÑтеми до запуÑку процеÑу. Отже, Ð´Ð»Ñ Ð¾Ñтаннього запущеного Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ показано найбільший інтервал чаÑу."
+
+#. type: Plain text
+#: ../man/top.1:1022
+msgid "The value will be expressed as `MM:SS' (minutes:seconds). But if the interval is too great to fit column width it will be scaled as `HH,MM' (hours,minutes) and possibly beyond."
+msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ показано у форматі «ХХ:СС» (хвилини:Ñекунди). Ðле Ñкщо інтервал Ñ” надто великим, Ñ– не вміщуєтьÑÑ Ñƒ Ñтовпчик, його буде маÑштабовано до «ГГ,ХХ» (години,хвилини) Ñ–, можливо, далі, зі збільшеннÑм одиниць."
+
+#. type: TP
+#: ../man/top.1:1023
+#, no-wrap
+msgid "B<SUID \\*(Em Saved User Id >"
+msgstr "B<SUID \\*(Em Збережений ідентифікатор кориÑтувача >"
+
+#. type: Plain text
+#: ../man/top.1:1026
+msgid "TheI< saved> user ID."
+msgstr "I<Збережений> ідентифікатор кориÑтувача."
+
+#. type: TP
+#: ../man/top.1:1027
+#, no-wrap
+msgid "B<SUPGIDS \\*(Em Supplementary Group IDs >"
+msgstr "B<SUPGIDS \\*(Em Ідентифікатори допоміжних груп >"
+
+#. type: Plain text
+#: ../man/top.1:1032
+msgid "The IDs of any supplementary group(s) established at login or inherited from a task's parent. They are displayed in a comma delimited list."
+msgstr "Ідентифікатори будь-Ñких допоміжних груп, Ñкі вÑтановлено під Ñ‡Ð°Ñ Ð²Ñ…Ð¾Ð´Ñƒ до ÑиÑтеми або уÑпадковано від батьківÑького процеÑу завданнÑ. Ідентифікатори буде показано у форматі ÑпиÑку відокремлених комами значень."
+
+#. type: Plain text
+#: ../man/top.1:1036
+msgid "\\*(NT The SUPGIDS field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum \\*(WX characters)."
+msgstr "\\*(NT Поле SUPGIDS, на відміну від більшоÑÑ‚Ñ– Ñтовпчиків, не Ñ” полем фікÑованої ширини. Якщо його показано, воно разом із іншими полÑми змінної ширини доповнюватиме текÑÑ‚ у Ñ€Ñдку до межі ширини екрана (аж до макÑимальної ширини у \\*(WX Ñимволів)."
+
+#. type: TP
+#: ../man/top.1:1037
+#, no-wrap
+msgid "B<SUPGRPS \\*(Em Supplementary Group Names >"
+msgstr "B<SUPGRPS \\*(Em Ðазви допоміжних груп >"
+
+#. type: Plain text
+#: ../man/top.1:1042
+msgid "The names of any supplementary group(s) established at login or inherited from a task's parent. They are displayed in a comma delimited list."
+msgstr "Ðазви будь-Ñких допоміжних груп, Ñкі вÑтановлено під Ñ‡Ð°Ñ Ð²Ñ…Ð¾Ð´Ñƒ до ÑиÑтеми або уÑпадковано від батьківÑького процеÑу завданнÑ. Ідентифікатори буде показано у форматі ÑпиÑку відокремлених комами значень."
+
+#. type: Plain text
+#: ../man/top.1:1046
+msgid "\\*(NT The SUPGRPS field, unlike most columns, is not fixed-width. When displayed, it plus any other variable width columns will be allocated all remaining screen width (up to the maximum \\*(WX characters)."
+msgstr "\\*(NT Поле SUPGRPS, на відміну від більшоÑÑ‚Ñ– Ñтовпчиків, не Ñ” полем фікÑованої ширини. Якщо його показано, воно разом із іншими полÑми змінної ширини доповнюватиме текÑÑ‚ у Ñ€Ñдку до межі ширини екрана (аж до макÑимальної ширини у \\*(WX Ñимволів)."
+
+#. type: TP
+#: ../man/top.1:1047
+#, no-wrap
+msgid "B<SUSER \\*(Em Saved User Name >"
+msgstr "B<SUSER \\*(Em Збережене ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача >"
+
+#. type: Plain text
+#: ../man/top.1:1050
+msgid "TheI< saved> user name."
+msgstr "I<Збережене> ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача."
+
+#. type: TP
+#: ../man/top.1:1051
+#, no-wrap
+msgid "B<SWAP \\*(Em Swapped Size (KiB) >"
+msgstr "B<SWAP \\*(Em Розмір зарезервованої пам'ÑÑ‚Ñ– (КіБ) >"
+
+#. type: Plain text
+#: ../man/top.1:1055
+msgid "The formerly resident portion of a task's address space written to the \\*(MS when \\*(MP becomes over committed."
+msgstr "Раніше резидентна чаÑтина проÑтору Ð°Ð´Ñ€ÐµÑ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ, Ñку запиÑано до файла резервної пам'ÑÑ‚Ñ–, коли фізичну пам'ÑÑ‚ÑŒ буде переповнено."
+
+#. type: TP
+#: ../man/top.1:1058
+#, no-wrap
+msgid "B<TGID \\*(Em Thread Group Id >"
+msgstr "B<TGID \\*(Em Ідентифікатор групи потоків >"
+
+#. type: Plain text
+#: ../man/top.1:1063
+msgid "The ID of the thread group to which a task belongs. It is the PID of the thread group leader. In kernel terms, it represents those tasks that share an mm_struct."
+msgstr "Ідентифікатор групи потоків, до Ñкої належить завданнÑм. Це PID лідера групи потоків обробки. У термінах Ñдра відповідає тим завданнÑм, Ñкі Ñпільно викориÑтовують mm_struct."
+
+#. type: TP
+#: ../man/top.1:1064
+#, no-wrap
+msgid "B<TIME \\*(Em \\*(PU Time >"
+msgstr "B<TIME \\*(Em Ð§Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора >"
+
+#. type: Plain text
+#: ../man/top.1:1071
+msgid "Total \\*(PU time the task has used since it started. When Cumulative mode is \\*O, each process is listed with the \\*(Pu time that it and its dead children have used. You toggle Cumulative mode with `S', which is both a \\*(CO and an \\*(CI. \\*(XC `S' \\*(CI for additional information regarding this mode."
+msgstr "Загальний Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора, Ñкий було викориÑтано завданнÑм з моменту запуÑку. Якщо накопичувальний режим \\*O, кожен Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±ÑƒÐ´Ðµ показано у ÑпиÑку із чаÑом процеÑора, Ñкий було викориÑтано процеÑом Ñ– його завершеними дочірніми процеÑами. Перемкнути накопичувальний режим можна за допомогою «S», параметра командного Ñ€Ñдка та інтерактивної команди. Див. інтерактивну команду «S», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про цей режим."
+
+#. type: TP
+#: ../man/top.1:1072
+#, no-wrap
+msgid "B<TIME+ \\*(Em \\*(PU Time, hundredths >"
+msgstr "B<TIME+ \\*(Em Ð§Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора, Ñоті >"
+
+#. type: Plain text
+#: ../man/top.1:1076
+msgid "The same as TIME, but reflecting more granularity through hundredths of a second."
+msgstr "Те Ñаме, що Ñ– TIME, але із більшою точніÑÑ‚ÑŽ, до Ñотих Ñекунди."
+
+#. type: TP
+#: ../man/top.1:1077
+#, no-wrap
+msgid "B<TPGID \\*(Em Tty Process Group Id >"
+msgstr "B<TPGID \\*(Em Ідентифікатор групи процеÑів термінала >"
+
+#. type: Plain text
+#: ../man/top.1:1083
+msgid "The process group ID of the foreground process for the connected tty, or -1 if a process is not connected to a terminal. By convention, this value equals the process ID (\\*(Xa PID) of the process group leader (\\*(Xa PGRP)."
+msgstr "Ідентифікатор групи процеÑів оÑновного процеÑу Ð´Ð»Ñ Ð·'єднаного термінала або -1, Ñкщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ðµ з'єднано із терміналом. За угодою, це Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¾Ñ€Ñ–Ð²Ð½ÑŽÑ” ідентифікатору процеÑу (\\*(Xa PID) лідера групи процеÑів (\\*(Xa PGRP)."
+
+#. type: TP
+#: ../man/top.1:1084
+#, no-wrap
+msgid "B<TTY \\*(Em Controlling Tty >"
+msgstr "B<TTY \\*(Em Термінал ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ >"
+
+#. type: Plain text
+#: ../man/top.1:1091
+msgid "The name of the controlling terminal. This is usually the device (serial port, pty, etc.) from which the process was started, and which it uses for input or output. However, a task need not be associated with a terminal, in which case you'll see `?' displayed."
+msgstr "Ðазва термінала керуваннÑ. Це, зазвичай, приÑтрій (поÑлідовний порт, pty тощо) з Ñкого було запущено Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ– Ñкий Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñтовує Ð´Ð»Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…. Втім, Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð½Ðµ обов'Ñзково має бути пов'Ñзано із терміналом. Ð”Ð»Ñ Ð½Ðµ пов'Ñзаних із терміналом завдань буде показано «?»."
+
+#. type: TP
+#: ../man/top.1:1092
+#, no-wrap
+msgid "B<UID \\*(Em User Id >"
+msgstr "B<UID \\*(Em Ідентифікатор кориÑтувача >"
+
+#. type: Plain text
+#: ../man/top.1:1095
+msgid "TheI< effective> user ID of the task's owner."
+msgstr "Ідентифікатор I<ефективного> кориÑтувача влаÑника завданнÑ."
+
+#. type: TP
+#: ../man/top.1:1096
+#, no-wrap
+msgid "B<USED \\*(Em Memory in Use (KiB) >"
+msgstr "B<USED \\*(Em ВикориÑтана пам'ÑÑ‚ÑŒ (КіБ) >"
+
+#. type: Plain text
+#: ../man/top.1:1100
+msgid "This field represents the non-swapped \\*(MP a task is using (RES) plus the swapped out portion of its address space (SWAP)."
+msgstr "Цьому полю відповідає фізична пам'ÑÑ‚ÑŒ без резервуваннÑ, Ñку викориÑтовує Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ (RES), Ñ– зарезервована чаÑтка Ñ—Ñ— проÑтору Ð°Ð´Ñ€ÐµÑ (SWAP)."
+
+#. type: TP
+#: ../man/top.1:1103
+#, no-wrap
+msgid "B<USER \\*(Em User Name >"
+msgstr "B<USER \\*(Em Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача >"
+
+#. type: Plain text
+#: ../man/top.1:1106
+msgid "TheI< effective> user name of the task's owner."
+msgstr "Ім'Ñ I<ефективного> кориÑтувача влаÑника завданнÑ."
+
+#. type: TP
+#: ../man/top.1:1107
+#, no-wrap
+msgid "B<USS \\*(Em Unique Set Size >"
+msgstr "B<USS \\*(Em Розмір унікального набору >"
+
+#. type: Plain text
+#: ../man/top.1:1112
+msgid "The non-swapped portion of \\*(MP (`RSS') not shared with any other process. It is derived from the `smaps_rollup' file."
+msgstr "Ðерезервована чаÑтка фізичної пам'ÑÑ‚Ñ– («RSS»), Ñка не Ñ” Ñпільною Ð´Ð»Ñ Ð±ÑƒÐ´ÑŒ-Ñкого іншого процеÑу. Є похідною від даних у файлі «smaps_rollup»."
+
+#. type: TP
+#: ../man/top.1:1115
+#, no-wrap
+msgid "B<VIRT \\*(Em Virtual Memory Size (KiB) >"
+msgstr "B<VIRT \\*(Em Розмір віртуальної пам'ÑÑ‚Ñ– (КіБ) >"
+
+#. type: Plain text
+#: ../man/top.1:1120
+msgid "The total amount of \\*(MV used by the task. It includes all code, data and shared libraries plus pages that have been swapped out and pages that have been mapped but not used."
+msgstr "Загальний обÑÑг віртуальної пам'ÑÑ‚Ñ–, Ñку викориÑтано процеÑом. До викориÑтаної пам'ÑÑ‚Ñ– буде включено увеÑÑŒ код, дані та Ñпільні бібліотеки, а також Ñторінки, Ñкі було Ñкинуто до резервної пам'ÑÑ‚Ñ– на диÑку, та Ñторінки, Ñкі було пов'Ñзано з процеÑами, але не було викориÑтано."
+
+#. type: TP
+#: ../man/top.1:1123
+#, no-wrap
+msgid "B<WCHAN \\*(Em Sleeping in Function >"
+msgstr "B<WCHAN \\*(Em ПриÑиплÑÐ½Ð½Ñ Ñƒ функції >"
+
+#. type: Plain text
+#: ../man/top.1:1128
+msgid "This field will show the name of the kernel function in which the task is currently sleeping. Running tasks will display a dash (`-') in this column."
+msgstr "У цьому полі буде показано назву функції Ñдра, у Ñкій зараз приÑпано завданнÑ. Ð”Ð»Ñ Ð·Ð°Ð²Ð´Ð°Ð½ÑŒ, Ñкі виконуютьÑÑ, у цьому Ñтовпчику буде показано Ð´ÐµÑ„Ñ–Ñ («-»)."
+
+#. type: TP
+#: ../man/top.1:1129
+#, no-wrap
+msgid "B<ioR \\*(Em I/O Bytes Read >"
+msgstr "B<ioR \\*(Em КількіÑÑ‚ÑŒ прочитаних байтів введеннÑ-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ >"
+
+#. type: Plain text
+#: ../man/top.1:1132
+msgid "The number of bytes a process caused to be fetched from the storage layer."
+msgstr "КількіÑÑ‚ÑŒ байтів, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñких з шару Ñховища даних було Ñпричинено процеÑом."
+
+#. type: Plain text
+#: ../man/top.1:1134
+msgid "Root privileges are required to display `io' data for other users."
+msgstr "Ð”Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ даних «io» Ð´Ð»Ñ Ñ–Ð½ÑˆÐ¸Ñ… кориÑтувачів потрібні права доÑтупу кориÑтувача root."
+
+#. type: TP
+#: ../man/top.1:1135
+#, no-wrap
+msgid "B<ioRop \\*(Em I/O Read Operations >"
+msgstr "B<ioRop \\*(Em КількіÑÑ‚ÑŒ дій введеннÑ-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð· Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ >"
+
+#. type: Plain text
+#: ../man/top.1:1139
+msgid "The number of read I/O operations (syscalls) for a process. Such calls might not result in actual physical disk I/O."
+msgstr "КількіÑÑ‚ÑŒ дій (ÑиÑтемних викликів) введеннÑ-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð· Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу. Такі виклики можуть Ñ– не ÑпричинÑти Ñправжнього введеннÑ-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… на фізичний диÑк."
+
+#. type: TP
+#: ../man/top.1:1140
+#, no-wrap
+msgid "B<ioW \\*(Em I/O Bytes Written >"
+msgstr "B<ioW \\*(Em КількіÑÑ‚ÑŒ запиÑаних байтів введеннÑ-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ >"
+
+#. type: Plain text
+#: ../man/top.1:1143
+msgid "The number of bytes a process caused to be sent to the storage layer."
+msgstr "КількіÑÑ‚ÑŒ байтів, Ñкі було надіÑлано до шару Ñховища завдÑки процеÑу."
+
+#. type: TP
+#: ../man/top.1:1144
+#, no-wrap
+msgid "B<ioWop \\*(Em I/O Write Operations >"
+msgstr "B<ioWop \\*(Em КількіÑÑ‚ÑŒ дій введеннÑ-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð· запиÑу >"
+
+#. type: Plain text
+#: ../man/top.1:1148
+msgid "The number of write I/O operations (syscalls) for a process. Such calls might not result in actual physical disk I/O."
+msgstr "КількіÑÑ‚ÑŒ дій (ÑиÑтемних викликів) введеннÑ-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð· запиÑу Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу. Такі виклики можуть Ñ– не ÑпричинÑти Ñправжнього введеннÑ-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… на фізичний диÑк."
+
+#. type: TP
+#: ../man/top.1:1149
+#, no-wrap
+msgid "B<nDRT \\*(Em Dirty Pages Count >"
+msgstr "B<nDRT \\*(Em КількіÑÑ‚ÑŒ зіпÑованих Ñторінок >"
+
+#. type: Plain text
+#: ../man/top.1:1155
+msgid "The number of pages that have been modified since they were last written to \\*(AS. Dirty pages must be written to \\*(AS before the corresponding physical memory location can be used for some other virtual page."
+msgstr "КількіÑÑ‚ÑŒ Ñторінок, Ñкі було змінено з моменту запиÑу Ñ—Ñ… до допоміжного Ñховища даних. ЗіпÑовані Ñторінки має бути запиÑано до допоміжного Ñховища до того, Ñк відповідне міÑце у фізичній пам'ÑÑ‚Ñ– може бути викориÑтано Ð´Ð»Ñ ÑкоїÑÑŒ іншої віртуальної Ñторінки."
+
+#. type: Plain text
+#: ../man/top.1:1157
+msgid "This field was deprecated with linux 2.6 and is always zero."
+msgstr "Це поле Ñтало заÑтарілим з виходу linux 2.6 Ñ– його вміÑтом завжди Ñ” нуль."
+
+#. type: TP
+#: ../man/top.1:1158
+#, no-wrap
+msgid "B<nMaj \\*(Em Major Page Fault Count >"
+msgstr "B<nMaj \\*(Em КількіÑÑ‚ÑŒ оÑновних помилок Ñторінок >"
+
+#. type: Plain text
+#: ../man/top.1:1165
+msgid "The number ofB< major> page faults that have occurred for a task. A page fault occurs when a process attempts to read from or write to a virtual page that is not currently present in its address space. A major page fault is when \\*(AS access is involved in making that page available."
+msgstr "КількіÑÑ‚ÑŒ B<оÑновних> помилок Ñторінок, Ñкі ÑталиÑÑ Ð´Ð»Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ. Помилка Ñторінки ÑтаєтьÑÑ, Ñкщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð°Ð¼Ð°Ð³Ð°Ñ”Ñ‚ÑŒÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ дані з віртуальної Ñторінки, Ñкої немає у його адреÑному проÑторі, або запиÑати дані до цієї Ñторінки. До оÑновної помилки Ñторінок призводить доÑтуп до допоміжного Ñховища у процеÑÑ– Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð´Ð¾Ñтупу до Ñторінки."
+
+#. type: TP
+#: ../man/top.1:1166
+#, no-wrap
+msgid "B<nMin \\*(Em Minor Page Fault count >"
+msgstr "B<nMin \\*(Em КількіÑÑ‚ÑŒ незначних помилок Ñторінок >"
+
+#. type: Plain text
+#: ../man/top.1:1173
+msgid "The number ofB< minor> page faults that have occurred for a task. A page fault occurs when a process attempts to read from or write to a virtual page that is not currently present in its address space. A minor page fault does not involve \\*(AS access in making that page available."
+msgstr "КількіÑÑ‚ÑŒ B<незначних> помилок Ñторінок, Ñкі ÑталиÑÑ Ð´Ð»Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ. Помилка Ñторінки ÑтаєтьÑÑ, Ñкщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð°Ð¼Ð°Ð³Ð°Ñ”Ñ‚ÑŒÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ дані з віртуальної Ñторінки, Ñкої немає у його адреÑному проÑторі, або запиÑати дані до цієї Ñторінки. До незначних помилок Ñторінок призводить Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð´Ð¾Ñтупу до Ñторінки без доÑтупу до допоміжного Ñховища."
+
+#. type: TP
+#: ../man/top.1:1174
+#, no-wrap
+msgid "B<nTH \\*(Em Number of Threads >"
+msgstr "B<nTH \\*(Em КількіÑÑ‚ÑŒ потоків обробки >"
+
+#. type: Plain text
+#: ../man/top.1:1177
+msgid "The number of threads associated with a process."
+msgstr "КількіÑÑ‚ÑŒ потоків обробки, Ñку пов'Ñзано із процеÑом."
+
+#. type: TP
+#: ../man/top.1:1178
+#, no-wrap
+msgid "B<nsCGROUP \\*(Em CGROUP namespace >"
+msgstr "B<nsCGROUP \\*(Em ПроÑÑ‚Ñ–Ñ€ назв CGROUP >"
+
+#. type: Plain text
+#: ../man/top.1:1182
+msgid "The Inode of the namespace used to hide the identity of the control group of which process is a member."
+msgstr "Inode проÑтору назв, Ñкий викориÑтано Ð´Ð»Ñ Ð¿Ñ€Ð¸Ñ…Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ„Ñ–Ð»ÑŽ керівної групи, учаÑником Ñкої Ñ” процеÑ."
+
+#. type: TP
+#: ../man/top.1:1183
+#, no-wrap
+msgid "B<nsIPC \\*(Em IPC namespace >"
+msgstr "B<nsIPC \\*(Em ПроÑÑ‚Ñ–Ñ€ назв IPC >"
+
+#. type: Plain text
+#: ../man/top.1:1187
+msgid "The Inode of the namespace used to isolate interprocess communication (IPC) resources such as System V IPC objects and POSIX message queues."
+msgstr "Inode проÑтору назв, Ñкий викориÑтано Ð´Ð»Ñ Ñ–Ð·Ð¾Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑурÑів обміну даними між процеÑами (IPC), зокрема об'єктів IPC System V та черг повідомлень POSIX."
+
+#. type: TP
+#: ../man/top.1:1188
+#, no-wrap
+msgid "B<nsMNT \\*(Em MNT namespace >"
+msgstr "B<nsMNT \\*(Em ПроÑÑ‚Ñ–Ñ€ назв MNT >"
+
+#. type: Plain text
+#: ../man/top.1:1192
+msgid "The Inode of the namespace used to isolate filesystem mount points thus offering different views of the filesystem hierarchy."
+msgstr "Inode проÑтору назв, Ñкий викориÑтано Ð´Ð»Ñ Ñ–Ð·Ð¾Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ñ‚Ð¾Ñ‡Ð¾Ðº Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð¾Ñ— ÑиÑтеми, Ñ– отже, Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ñ€Ñ–Ð·Ð½Ð¸Ñ… точок зору на ієрархію файлової ÑиÑтеми."
+
+#. type: TP
+#: ../man/top.1:1193
+#, no-wrap
+msgid "B<nsNET \\*(Em NET namespace >"
+msgstr "B<nsNET \\*(Em ПроÑÑ‚Ñ–Ñ€ назв NET >"
+
+#. type: Plain text
+#: ../man/top.1:1197
+msgid "The Inode of the namespace used to isolate resources such as network devices, IP addresses, IP routing, port numbers, etc."
+msgstr "Inode проÑтору назв, Ñкий викориÑтано Ð´Ð»Ñ Ñ–Ð·Ð¾Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑурÑів, подібних до мережевих приÑтроїв, IP-адреÑ, IP-маршрутів, номерів портів тощо."
+
+#. type: TP
+#: ../man/top.1:1198
+#, no-wrap
+msgid "B<nsPID \\*(Em PID namespace >"
+msgstr "B<nsPID \\*(Em ПроÑÑ‚Ñ–Ñ€ назв PID >"
+
+#. type: Plain text
+#: ../man/top.1:1204
+msgid "The Inode of the namespace used to isolate process ID numbers meaning they need not remain unique. Thus, each such namespace could have its own `init/systemd' (PID #1) to manage various initialization tasks and reap orphaned child processes."
+msgstr "Inode проÑтору назв, Ñкий викориÑтано Ð´Ð»Ñ Ñ–Ð·Ð¾Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð² ідентифікаторів процеÑів, що означає, що вони не повинні лишатиÑÑ ÑƒÐ½Ñ–ÐºÐ°Ð»ÑŒÐ½Ð¸Ð¼Ð¸. Таким чином, кожен проÑÑ‚Ñ–Ñ€ назв може мати влаÑний «init/systemd» (PID #1) Ð´Ð»Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ñ–Ð·Ð½Ð¾Ð¼Ð°Ð½Ñ–Ñ‚Ð½Ð¸Ð¼Ð¸ завданнÑми з ініціалізації та Ð¿Ñ€Ð¸Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð¾Ñиротілих дочірніх процеÑів."
+
+#. type: TP
+#: ../man/top.1:1205
+#, no-wrap
+msgid "B<nsTIME \\*(Em TIME namespace >"
+msgstr "B<nsTIME \\*(Em ПроÑÑ‚Ñ–Ñ€ назв TIME >"
+
+#. type: Plain text
+#: ../man/top.1:1209
+msgid "The Inode of the namespace which allows processes to see different system times in a way similar to the UTS namespace."
+msgstr "Inode проÑтору назв, Ñкий надає змогу процеÑам бачити Ñ‡Ð°Ñ Ñƒ інших ÑиÑтемах, подібно до проÑтору назв UTS."
+
+#. type: TP
+#: ../man/top.1:1210
+#, no-wrap
+msgid "B<nsUSER \\*(Em USER namespace >"
+msgstr "B<nsUSER \\*(Em ПроÑÑ‚Ñ–Ñ€ назв кориÑтувача >"
+
+#. type: Plain text
+#: ../man/top.1:1216
+msgid "The Inode of the namespace used to isolate the user and group ID numbers. Thus, a process could have a normal unprivileged user ID outside a user namespace while having a user ID of 0, with full root privileges, inside that namespace."
+msgstr "Inode проÑтору назв, Ñкий викориÑтано Ð´Ð»Ñ Ñ–Ð·Ð¾Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ñ‡Ð¸Ñлових ідентифікаторів кориÑтувачів Ñ– груп. Таким чином, Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¼Ð¾Ð¶Ðµ мати звичайни ідентифікатор непривілейованого кориÑтувача поза проÑтором назв кориÑтувача, маючи ідентифікатор кориÑтувача 0, із повними привілеÑми root вÑередині цього проÑтору назв."
+
+#. type: TP
+#: ../man/top.1:1217
+#, no-wrap
+msgid "B<nsUTS \\*(Em UTS namespace >"
+msgstr "B<nsUTS \\*(Em ПроÑÑ‚Ñ–Ñ€ назв UTS >"
+
+#. type: Plain text
+#: ../man/top.1:1221
+msgid "The Inode of the namespace used to isolate hostname and NIS domain name. UTS simply means \"UNIX Time-sharing System\"."
+msgstr "Inode проÑтору назв, Ñкий викориÑтано Ð´Ð»Ñ Ñ–Ð·Ð¾Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸ вузла та назви домену NIS. UTS означає «СиÑтема Ð¾Ð¿Ñ€Ð¸Ð»ÑŽÐ´Ð½ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу UNIX»."
+
+#. type: TP
+#: ../man/top.1:1222
+#, no-wrap
+msgid "B<vMj \\*(Em Major Page Fault Count Delta>"
+msgstr "B<vMj \\*(Em ПриріÑÑ‚ кількоÑÑ‚Ñ– оÑновних помилок Ñторінок>"
+
+#. type: Plain text
+#: ../man/top.1:1226
+msgid "The number ofB< major> page faults that have occurred since the last update (see nMaj)."
+msgstr "КількіÑÑ‚ÑŒ B<оÑновних> помилок Ñторінок, Ñкі ÑталиÑÑ Ð· моменту оÑтаннього Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ (див. nMaj)."
+
+#. type: TP
+#: ../man/top.1:1227
+#, no-wrap
+msgid "B<vMn \\*(Em Minor Page Fault Count Delta>"
+msgstr "B<vMn \\*(Em ПриріÑÑ‚ кількоÑÑ‚Ñ– незначних помилок Ñторінок>"
+
+#. type: Plain text
+#: ../man/top.1:1231
+msgid "The number ofB< minor> page faults that have occurred since the last update (see nMin)."
+msgstr "КількіÑÑ‚ÑŒ B<незначних> помилок Ñторінок, Ñкі ÑталиÑÑ Ð· моменту оÑтаннього Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ (див. nMin)."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1233
+#, no-wrap
+msgid "3b. MANAGING Fields"
+msgstr "3б. КЕРУВÐÐÐЯ ПОЛЯМИ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1240
+msgid "After pressing the \\*(CI `f' (Fields Management) you will be presented with a screen showing: 1) the \\*(CW name; 2) the designated sort field; 3) all fields in their current order along with descriptions. Entries marked with an asterisk are the currently displayed fields, screen width permitting."
+msgstr "У відповідь на натиÑÐºÐ°Ð½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–ÑˆÑ– інтерактивної команди «f» (ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð»Ñми) програма покаже вам екран із: 1) назвою «поточного» вікна; 2) призначеним полем упорÑдковуваннÑ; 3) уÑіма полÑми у поточному порÑдку разом із їхніми опиÑами. Пункти, Ñкі позначено зірочкою Ñ” поточними показаними полÑми, переглÑд Ñких уможливлює ширина екрана."
+
+#. type: IP
+#: ../man/top.1:1242 ../man/top.1:1248 ../man/top.1:1253 ../man/top.1:1257
+#: ../man/top.1:1262 ../man/top.1:2687 ../man/top.1:2710 ../man/top.1:2719
+#: ../man/top.1:2735 ../man/top.1:2741 ../man/top.1:2747 ../man/top.1:2757
+#: ../man/top.1:2774
+#, no-wrap
+msgid "\\(bu"
+msgstr "\\(bu"
+
+#. type: Plain text
+#: ../man/top.1:1247
+msgid "As the on screen instructions indicate, you navigate among the fields with theB< Up> andB< Down> \\*(KAs. The PgUp, PgDn, Home and End keys can also be used to quickly reach the first or last available field."
+msgstr "Як буде вказано у наÑтановах на екрані, переÑуватиÑÑ Ð¼Ñ–Ð¶ полÑми можна за допомогою клавіш зі Ñтрілками вгору Ñ– вниз. Також можна ÑкориÑтатиÑÑ ÐºÐ»Ð°Ð²Ñ–ÑˆÐ°Ð¼Ð¸ PgUp, PgDn, Home та End Ð´Ð»Ñ Ð¿Ñ€Ð¸ÑˆÐ²Ð¸Ð´ÑˆÐµÐ½Ð¾Ð³Ð¾ доÑтупу до першого Ñ– оÑтаннього з доÑтупних полів."
+
+#. type: Plain text
+#: ../man/top.1:1252
+msgid "TheB< Right> \\*(KA selects a field for repositioning and theB< Left> \\*(KA or the E<lt>B<Enter>E<gt> key commits that field's placement."
+msgstr "Клавіша зі Ñтрілкою B<праворуч> позначає поле Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ розташуваннÑ, а клавіша зі Ñтрілкою B<ліворуч> та клавіша E<lt>B<Enter>E<gt> фікÑують Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð»Ñ."
+
+#. type: Plain text
+#: ../man/top.1:1256
+msgid "The `B<d>' key or the E<lt>B<Space>E<gt> bar toggles a field's display status, and thus the presence or absence of the asterisk."
+msgstr "Клавішами «B<d>» та E<lt>B<Пробіл>E<gt> можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ñтану показу полÑ, а отже, ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð°ÑвніÑÑ‚ÑŽ зірочки."
+
+#. type: Plain text
+#: ../man/top.1:1261
+msgid "The `B<s>' key designates a field as the sort field. \\*(XT 4c. TASK AREA Commands, SORTING for additional information regarding your selection of a sort field."
+msgstr "Клавіша «B<s>» позначає поле, Ñк поле Ð´Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑдковуваннÑ. Див. 4в. КОМÐÐДИ ОБЛÐСТІ ЗÐВДÐÐЬ, УПОРЯДКОВУВÐÐÐЯ, щоб отримати додаткові відомоÑÑ‚Ñ– щодо вибору Ð¿Ð¾Ð»Ñ Ð´Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑдковуваннÑ."
+
+#. type: Plain text
+#: ../man/top.1:1265
+msgid "The `B<a>' and `B<w>' keys can be used to cycle through all available windows and the `B<q>' or E<lt>B<Esc>E<gt> keys exit Fields Management."
+msgstr "Клавішами «B<a>» Ñ– «B<w>» можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ñ†Ð¸ÐºÐ»Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ переходу уÑіма доÑтупними вікнами, а клавішами «B<q>» та E<lt>B<Esc>E<gt> Ð´Ð»Ñ Ð²Ð¸Ñ…Ð¾Ð´Ñƒ з ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð»Ñми."
+
+#. type: Plain text
+#: ../man/top.1:1274
+msgid "The Fields Management screen can also be used to change the \\*(CG in either \\*(FM or \\*(AM. Whatever was targeted when `q' or E<lt>EscE<gt> was pressed will be made current as you return to the \\*(We display. \\*(XT 5. ALTERNATE-DISPLAY Provisions and the `g' \\*(CI for insight into \\*(CWs and \\*(FGs."
+msgstr "Екраном ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð»Ñми також можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð²Ð½ÐµÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до поточного вікна або групи полів у повноекранному режимі показу або режимі альтернативного показу. Що б не було позначено у момент натиÑÐºÐ°Ð½Ð½Ñ Â«q» або E<lt>EscE<gt>, його буде зроблено поточним при Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð´Ð¾ показу \\*(We. Див. розділ 5. ПОЛОЖЕÐÐЯ ÐЛЬТЕРÐÐТИВÐОГО ПОКÐЗУ та інтерактивну команду «g», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про «поточні» вікна Ñ– групи полів."
+
+#. type: Plain text
+#: ../man/top.1:1281
+msgid "\\*(NT Any window that has been scrolledI< horizontally> will be reset if any field changes are made via the Fields Management screen. AnyI< vertical> scrolled position, however, will not be affected. \\*(XT 5c. SCROLLING a Window for additional information regarding vertical and horizontal scrolling."
+msgstr "\\*(NT Будь-Ñке вікно, у Ñкому було виконано Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ñƒ I<горизонтальному> буде Ñкинуто до типового Ñтану, Ñкщо буде внеÑено будь-Ñкі зміни до полів за допомогою екрана ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð»Ñми. Втім, будь-Ñку позицію I<вертикального> Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ збережено. Див. 5в. ГОРТÐÐÐЯ ВІКÐÐ, щоб отримати додаткові відомоÑÑ‚Ñ– щодо вертикального та горизонтального гортаннÑ."
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:1283
+#, no-wrap
+msgid "4. INTERACTIVE Commands"
+msgstr "4. ІÐТЕРÐКТИВÐІ КОМÐÐДИ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1288
+msgid "Listed below is a brief index of commands within categories. Some commands appear more than once \\*(Em their meaning or scope may vary depending on the context in which they are issued."
+msgstr "Ðижче наведено короткий покажчик команд у категоріÑÑ…. ДеÑкі команди у ÑпиÑку траплÑÑŽÑ‚ÑŒÑÑ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° разів \\*(Em їхнє Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð° облаÑÑ‚ÑŒ дії можуть змінюватиÑÑ, залежно від контекÑту, у Ñкому Ñ—Ñ… віддано."
+
+#. type: Plain text
+#: ../man/top.1:1311
+#, no-wrap
+msgid ""
+" 4a.I< Global-Commands >\n"
+" E<lt>Ent/SpE<gt> ?, =, 0,\n"
+" A, B, d, E, e, g, H, h, I, k, q, r, s, W, X, Y, Z,\n"
+" ^G, ^K, ^N, ^P, ^U, ^L, ^R\n"
+" 4b.I< Summary-Area-Commands >\n"
+" C, l, t, m, 1, 2, 3, 4, 5, !\n"
+" 4c.I< Task-Area-Commands >\n"
+" Appearance: b, J, j, x, y, z\n"
+" Content: c, F, f, O, o, S, U, u, V, v, ^E\n"
+" Size: #, i, n\n"
+" Sorting: E<lt>, E<gt>, f, R\n"
+" 4d.I< Color-Mapping >\n"
+" E<lt>RetE<gt>, a, B, b, H, M, q, S, T, w, z, 0 - 7\n"
+" 5b.I< Commands-for-Windows >\n"
+" -, _, =, +, A, a, G, g, w\n"
+" 5c.I< Scrolling-a-Window >\n"
+" C, Up, Dn, Left, Right, PgUp, PgDn, Home, End\n"
+" 5d.I< Searching-in-a-Window >\n"
+" L, &\n"
+" 5e.I< Filtering-in-a-Window\n"
+" O, o, ^O, =, +>\n"
+msgstr ""
+" 4а. I<Загальні команди>\n"
+" E<lt>Ent/SpE<gt> ?, =, 0,\n"
+" A, B, d, E, e, g, h, H, I, k, q, r, s, W, X, Y, Z,\n"
+" ^G, ^K, ^N, ^P, ^U, ^L, ^R\n"
+"\n"
+" 4б. I<Команди облаÑÑ‚Ñ– резюме>\n"
+" C, l, t, m, 1, 2, 3, 4, !\n"
+" 4в. I<Команди облаÑÑ‚Ñ– завдань>\n"
+" ВиглÑд: b, J, j, x, y, z\n"
+" ВміÑÑ‚: c, F, f, O, o, S, U, u, V, v, ^E\n"
+" Розмір: #, i, n\n"
+" УпорÑдкуваннÑ: E<lt>, E<gt>, f, R\n"
+" 4г. I<Прив'Ñзка кольорів>\n"
+" E<lt>RetE<gt>, a, B, b, H, M, q, S, T, w, z, 0 - 7\n"
+" 5б. I<Команди Ð´Ð»Ñ Ð²Ñ–ÐºÐ¾Ð½>\n"
+" -, _, =, +, A, a, G, g, w\n"
+" 5в. I<Ð“Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ñƒ вікні>\n"
+" C, вгору, вниз, ліворуч, праворуч, PgUp, PgDn, Home, End\n"
+" 5г. I<Пошук у вікні>\n"
+" L, &\n"
+" 5д.I< Ð¤Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ вікні\n"
+" O, o, ^O, =, +>\n"
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1314
+#, no-wrap
+msgid "4a. GLOBAL Commands"
+msgstr "4a. ЗÐГÐЛЬÐІ КОМÐÐДИ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1319
+msgid "The global \\*(CIs areB< always> available in both \\*(FM and \\*(AM. However, some of these \\*(CIs areB< not available> when running in Secure mode."
+msgstr "Загальні інтерактивні команди B<завжди> доÑтупні у повноекранному режимі та режимі альтернативного показу. Втім, деÑкі з цих інтерактивних команд B<не Ñ” доÑтупними>, Ñкщо програма працює у захищеному режимі."
+
+#. type: Plain text
+#: ../man/top.1:1323
+msgid "If you wish to know in advance whether or not your \\*(We has been secured, simply ask for help and view the system summary on the second line."
+msgstr "Якщо ви хочете наперед знати, чи захищено роботу вашої копії програми \\*(We, проÑто віддайте команду показу довідки Ñ– переглÑньте резюме щодо ÑиÑтеми у другому Ñ€Ñдку."
+
+#. type: TP
+#: ../man/top.1:1324
+#, no-wrap
+msgid "\\ \\ E<lt>B<Enter>E<gt> or E<lt>B<Space>E<gt>\\ \\ :I<Refresh-Display >"
+msgstr "\\ \\ E<lt>B<Enter>E<gt> або E<lt>B<Пробіл>E<gt>\\ \\ :I<оÑвіжити показу>"
+
+#. type: Plain text
+#: ../man/top.1:1329
+msgid "These commands awaken \\*(We and following receipt of any input the entire display will be repainted. They also force an update of any hotplugged \\*(Pu or \\*(MP changes."
+msgstr "Ці команди пробуджують \\*(We Ñ–, відповідно до інÑÑ‚Ñ€ÑƒÐºÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° вхідними даними, буде перемальовано уÑÑ– показані дані. Це також призведе до примуÑового Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÑƒÑÑ–Ñ… інтерактивних змін у процеÑорах та фізичній пам'ÑÑ‚Ñ–."
+
+#. type: Plain text
+#: ../man/top.1:1332
+msgid "Use either of these keys if you have a large delay interval and wish to see current status,"
+msgstr "СкориÑтайтеÑÑ Ð±ÑƒÐ´ÑŒ-Ñкою з цих клавіш, Ñкщо інтервал затримки Ñ” надто великим, Ñ– ви хочете ознайомитиÑÑ Ñ–Ð· поточним Ñтаном."
+
+#. type: TP
+#: ../man/top.1:1333
+#, no-wrap
+msgid "\\ \\ \\ B<?> | B<h>\\ \\ :I<Help >"
+msgstr "\\ \\ \\ B<?> | B<h>\\ \\ :I<Довідка >"
+
+#. type: Plain text
+#: ../man/top.1:1338
+msgid "There are two help levels available. The first will provide a reminder of all the basic \\*(CIs. If \\*(We isI< secured>, that screen will be abbreviated."
+msgstr "ДоÑтупні два Ñ€Ñ–Ð²Ð½Ñ Ð´Ð¾Ð²Ñ–Ð´ÐºÐ¸. Ðа першому програма покаже Ð½Ð°Ð³Ð°Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ уÑÑ–Ñ… базових інтерактивних команд. Якщо \\*(We працює у I<захищеному> режимі, екран довідки буде Ñкорочено."
+
+#. type: Plain text
+#: ../man/top.1:1341
+msgid "Typing `h' or `?' on that help screen will take you to help for those \\*(CIs applicable to \\*(AM."
+msgstr "ÐатиÑÐºÐ°Ð½Ð½Ñ Â«h» або «?» на цьому екрані довідки призведе до показу довідки Ð´Ð»Ñ Ñ†Ð¸Ñ… інтерактивних команд із заÑтоÑуваннÑм до режиму альтернативного показу."
+
+#. type: TP
+#: ../man/top.1:1342
+#, no-wrap
+msgid "\\ \\ \\ B<=>\\ \\ :I<Exit-Display-Limits >"
+msgstr "\\ \\ \\ B<=>\\ \\ :I<Скинути Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° показ>"
+
+#. type: Plain text
+#: ../man/top.1:1349
+msgid "Removes restrictions on what is shown. This command will reverse any `i' (idle tasks), `n' (max tasks), `v' (hide children) and `F' focus commands that might be active. It also provides for an exit from PID monitoring, User filtering, Other filtering, Locate processing and Combine Cpus mode."
+msgstr "Знімає Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° показ. Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° обертає будь-Ñкі команди «i» (бездіÑльні завданнÑ), «n» (макÑимальна кількіÑÑ‚ÑŒ завдань), «v» (приховати дочірні) Ñ– «F» (фокуÑуваннÑ), Ñкі могли бути активними. Команду також призначено Ð´Ð»Ñ Ð²Ð¸Ñ…Ð¾Ð´Ñƒ із режимів ÑпоÑÑ‚ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð° PID, Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° кориÑтувачами, іншого фільтруваннÑ, обробки пошуку та режиму Ð¿Ð¾Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑорів."
+
+#. type: Plain text
+#: ../man/top.1:1352
+msgid "Additionally, if the window has been scrolled it will be reset with this command."
+msgstr "Крім того, Ñкщо у вікні було виконано гортаннÑ, його буде повернуто до початкового Ñтану цією командою."
+
+#. type: TP
+#: ../man/top.1:1353
+#, no-wrap
+msgid "\\ \\ \\ B<0>\\ \\ :I<Zero-Suppress> toggle "
+msgstr "\\ \\ \\ B<0>\\ \\ :I<Перемикач Ð¿Ñ€Ð¸Ð´ÑƒÑˆÐµÐ½Ð½Ñ Ð½ÑƒÐ»Ñ–Ð²> "
+
+#. type: Plain text
+#: ../man/top.1:1358
+msgid "This command determines whether zeros are shown or suppressed for many of the fields in a \\*(TW. Fields like UID, GID, NI, PR or P are not affected by this toggle."
+msgstr "Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° визначає, буде показано нулі чи нулі буде приховано Ð´Ð»Ñ Ð±Ð°Ð³Ð°Ñ‚ÑŒÐ¾Ñ… полів у вікні завдань. Цей перемикач не впливає на показ даних у полÑÑ… UID, GID, NI, PR та P."
+
+#. type: TP
+#: ../man/top.1:1359
+#, no-wrap
+msgid "\\ \\ \\ B<A>\\ \\ :I<Alternate-Display-Mode> toggle "
+msgstr "\\ \\ \\ B<A>\\ \\ :I<Перемикач режиму альтернативного показу> "
+
+#. type: Plain text
+#: ../man/top.1:1364
+msgid "This command will switch between \\*(FM and \\*(AM. \\*(XT 5. ALTERNATE-DISPLAY Provisions and the `g' \\*(CI for insight into \\*(CWs and \\*(FGs."
+msgstr "Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° перемикає програму між повноекранним режимом Ñ– режимом альтернативного показу. Див. розділ 5. ПОЛОЖЕÐÐЯ ÐЛЬТЕРÐÐТИВÐОГО ПОКÐЗУ та інтерактивну команду «g», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про «поточні» вікна Ñ– групи полів."
+
+#. type: TP
+#: ../man/top.1:1365
+#, no-wrap
+msgid "\\ \\ \\ B<B>\\ \\ :I<Bold-Disable/Enable> toggle "
+msgstr "\\ \\ \\ B<B>\\ \\ :I<Перемикач вмиканнÑ/Ð²Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð½Ð°Ð¿Ñ–Ð²Ð¶Ð¸Ñ€Ð½Ð¾Ð³Ð¾ шрифту> "
+
+#. type: Plain text
+#: ../man/top.1:1371
+msgid "This command will influence use of the bold terminfo capability and altersB< both> the \\*(SA and \\*(TA for the \\*(CW. While it is intended primarily for use with dumb terminals, it can be applied anytime."
+msgstr "Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° впливає на викориÑÑ‚Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾Ñтей показу напівжирного текÑту terminfo Ñ– змінює B<одразу> облаÑÑ‚ÑŒ резюме та облаÑÑ‚ÑŒ завдань Ð´Ð»Ñ Â«Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾Â» вікна. Хоча цю команду призначено, в оÑновному, Ð´Ð»Ñ Â«Ð¿Ñ€Ð¾Ñтих» терміналів, нею можна ÑкориÑтатиÑÑ Ñƒ будь-Ñкому терміналі."
+
+#. type: Plain text
+#: ../man/top.1:1376
+msgid "\\*(NT When this toggle is \\*O and \\*(We is operating in monochrome mode, theB< entire display> will appear as normal text. Thus, unless the `x' and/or `y' toggles are using reverse for emphasis, there will be no visual confirmation that they are even on."
+msgstr "\\*(NT Якщо цей перемикач \\*O, Ñ– \\*(We працює у монохромному режимі, Ð´Ð»Ñ B<уÑього диÑплеÑ> буде викориÑтано звичайний текÑÑ‚. Таким чином, Ñкщо не викориÑтано перемикач «x» Ñ–/або«y» Ð´Ð»Ñ Ð¾Ð±ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð°ÐºÑ†ÐµÐ½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÐºÑту, не буде ніÑкого візуального підтвердженнÑ, що ці перемикачі увімкнено."
+
+#. type: TP
+#: ../man/top.1:1377
+#, no-wrap
+msgid "*\\ \\ B<d> | B<s>\\ \\ :I<Change-Delay-Time-interval >"
+msgstr "*\\ \\ B<d> | B<s>\\ \\ :I<Змінити інтервал затримки чаÑу>"
+
+#. type: Plain text
+#: ../man/top.1:1381
+msgid "You will be prompted to enter the delay time, in seconds, between display updates."
+msgstr "Програма попроÑить Ð²Ð°Ñ Ð²Ð²ÐµÑти Ñ‡Ð°Ñ Ð·Ð°Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ у Ñекундах між оновленнÑми показаних даних."
+
+#. type: Plain text
+#: ../man/top.1:1387
+msgid "Fractional seconds are honored, but a negative number is not allowed. Entering 0 causes (nearly) continuous updates, with an unsatisfactory display as the system and tty driver try to keep up with \\*(We's demands. The delay value is inversely proportional to system loading, so set it with care."
+msgstr "Буде враховано вказані дробові чаÑтки Ñекунд, але від'ємні чиÑла викориÑтовувати не можна. Ð’Ð²ÐµÐ´ÐµÐ½Ð½Ñ 0 Ñпричинить (майже) неперервне Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… із незадовільними результатами, оÑкільки ÑиÑтема та драйвер термінала намагатимутьÑÑ Ð·Ð°Ð´Ð¾Ð²Ð¾Ð»ÑŒÐ½Ð¸Ñ‚Ð¸ вимоги \\*(We. Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð°Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ñ” обернено пропорційним до Ð½Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° ÑиÑтему, тому вÑтановлювати його Ñлід обережно."
+
+#. type: Plain text
+#: ../man/top.1:1390
+msgid "If at any time you wish to know the current delay time, simply ask for help and view the system summary on the second line."
+msgstr "Якщо вам захочетьÑÑ Ð¿ÐµÑ€ÐµÐ³Ð»Ñнути поточне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу затримки, проÑто віддайте команду показу довідки Ñ– переглÑньте резюме щодо ÑиÑтеми у другому Ñ€Ñдку."
+
+#. type: TP
+#: ../man/top.1:1391
+#, no-wrap
+msgid "\\ \\ \\ B<E>\\ \\ :I<Enforce-Summary-Memory-Scale> in Summary Area"
+msgstr "\\ \\ \\ B<E>\\ \\ :I<ПримуÑове маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–> в облаÑÑ‚Ñ– резюме"
+
+#. type: Plain text
+#: ../man/top.1:1396
+msgid "With this command you can cycle through the available \\*(SA memory scaling which ranges from KiB (kibibytes or 1,024 bytes) through EiB (exbibytes or 1,152,921,504,606,846,976 bytes)."
+msgstr "За допомогою цієї команди ви можете циклічно перемикати доÑтупні маÑштаби пам'ÑÑ‚Ñ– в облаÑÑ‚Ñ– резюме, від КіБ (кібібайтів або 1024 байтів) до ЕіБ (екÑбібайтів або 1152921504606846976 байтів)."
+
+#. type: Plain text
+#: ../man/top.1:1400
+msgid "If you see a `+' between a displayed number and the following label, it means that \\*(We was forced to truncate some portion of that number. By raising the scaling factor, such truncation can be avoided."
+msgstr "Якщо ви побачите «+» між показаним чиÑлом та наÑтупною міткою, це означатиме, що програма \\*(We примуÑово обрізала чаÑтину чиÑла. ÐžÐ±Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° уникнути, Ñкщо збільшити коефіцієнт маÑштабуваннÑ."
+
+#. type: TP
+#: ../man/top.1:1401
+#, no-wrap
+msgid "\\ \\ \\ B<e>\\ \\ :I<Enforce-Task-Memory-Scale> in Task Area"
+msgstr "\\ \\ \\ B<e>\\ \\ :I<ПримуÑове маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– завдань> у облаÑÑ‚Ñ– завдань"
+
+#. type: Plain text
+#: ../man/top.1:1406
+msgid "With this command you can cycle through the available \\*(TA memory scaling which ranges from KiB (kibibytes or 1,024 bytes) through PiB (pebibytes or 1,125,899,906,842,624 bytes)."
+msgstr "За допомогою цієї команди ви можете циклічно перемикати доÑтупні маÑштаби пам'ÑÑ‚Ñ– в облаÑÑ‚Ñ– завдань, від КіБ (кібібайтів або 1024 байтів) до ПіБ (пібібайтів або 1125899906842624 байтів)."
+
+#. type: Plain text
+#: ../man/top.1:1413
+msgid "While \\*(We will try to honor the selected target range, additional scaling might still be necessary in order to accommodate current values. If you wish to see a more homogeneous result in the memory columns, raising the scaling range will usually accomplish that goal. Raising it too high, however, is likely to produce an all zero result which cannot be suppressed with the `0' \\*(CI."
+msgstr "Хоча \\*(We намагатиметьÑÑ Ð·Ð²Ð°Ð¶Ð°Ñ‚Ð¸ на вибраний діапазон цілей, може знадобитиÑÑ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ðµ маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð· метою приÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ поточних значень. Якщо вам потрібен більш однорідний результат у Ñтовпчиках пам'ÑÑ‚Ñ–, цілі можна, зазвичай, доÑÑгти збільшеннÑм діапазону маÑштабуваннÑ. Втім, надмірне його піднÑÑ‚Ñ‚Ñ, ймовірно, призведе до показу одних нулів, Ñкі не можна буде придушити інтерактивною командою «0»."
+
+#. type: TP
+#: ../man/top.1:1414
+#, no-wrap
+msgid "\\ \\ \\ B<g>\\ \\ :I<Choose-Another-Window/Field-Group >"
+msgstr "\\ \\ \\ B<g>\\ \\ :I<Вибрати інше вікно/групу полів>"
+
+#. type: Plain text
+#: ../man/top.1:1420
+msgid "You will be prompted to enter a number between 1 and 4 designating the \\*(FG which should be made the \\*(CW. You will soon grow comfortable with these 4 windows, especially after experimenting with \\*(AM."
+msgstr "Програма попроÑить Ð²Ð°Ñ Ð²Ð²ÐµÑти чиÑло від 1 до 4, Ñке позначатиме групу полів, Ñку Ñлід зробити «поточним» вікном. Звикнути до цих 4 вікон доволі проÑто, оÑобливо піÑÐ»Ñ ÐµÐºÑÐ¿ÐµÑ€Ð¸Ð¼ÐµÐ½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð· режимом альтернативного показу."
+
+#. type: TP
+#: ../man/top.1:1421
+#, no-wrap
+msgid "\\ \\ \\ B<H>\\ \\ :I<Threads-mode> toggle "
+msgstr "\\ \\ \\ B<H>\\ \\ :I<Перемикач режиму потоків> "
+
+#. type: Plain text
+#: ../man/top.1:1426
+msgid "When this toggle is \\*O, individual threads will be displayed for all processes in all visible \\*(TWs. Otherwise, \\*(We displays a summation of all threads in each process."
+msgstr "Якщо цей перемикач \\*O, Ð´Ð»Ñ ÑƒÑÑ–Ñ… процеÑів в уÑÑ–Ñ… видимих вікнах завдань буде показано окремі потоки обробки. Якщо перемикач вимкнено, \\*(We покаже Ñуму за уÑіма потоками Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ процеÑу."
+
+#. type: TP
+#: ../man/top.1:1427
+#, no-wrap
+msgid "\\ \\ \\ B<I>\\ \\ :I<Irix/Solaris-Mode> toggle "
+msgstr "\\ \\ \\ B<I>\\ \\ :I<Перемикач режимів Irix/Solaris> "
+
+#. type: Plain text
+#: ../man/top.1:1432
+msgid "When operating in Solaris mode (`I' toggled \\*F), a task's \\*(Pu usage will be divided by the total number of \\*(PUs. After issuing this command, you'll be told the new state of this toggle."
+msgstr "Якщо програма працює у режимі Solaris («I» у Ñтані \\*F), викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора завданнÑм буде поділено на загальну кількіÑÑ‚ÑŒ процеÑорів. ПіÑÐ»Ñ Ñ‚Ð¾Ð³Ð¾, Ñк буде віддано цю команду, програма повідомить вам про новий Ñтан перемикача."
+
+#. type: TP
+#: ../man/top.1:1433
+#, no-wrap
+msgid "*\\ \\ B<k>\\ \\ :I<Kill-a-task >"
+msgstr "*\\ \\ B<k>\\ \\ :I<Вбити Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ >"
+
+#. type: Plain text
+#: ../man/top.1:1436
+msgid "You will be prompted for a PID and then the signal to send."
+msgstr "Програма попроÑить Ð²Ð°Ñ Ð²Ð²ÐµÑти PID, а потім ввеÑти Ñигнал, Ñкий Ñлід надіÑлати."
+
+#. type: Plain text
+#: ../man/top.1:1440 ../man/top.1:1462
+msgid "Entering no PID or a negative number will be interpreted as the default shown in the prompt (the first task displayed). A PID value of zero means the \\*(We program itself."
+msgstr "Якщо PID не буде введено або буде введено від'ємне чиÑло, програма викориÑтає типове значеннÑ, Ñке показано у запиті щодо команди (перше показане завданнÑ). Ðульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ PID означає Ñаму програму \\*(We."
+
+#. type: Plain text
+#: ../man/top.1:1443
+msgid "The default signal, as reflected in the prompt, is SIGTERM. However, you can send any signal, via number or name."
+msgstr "Типовим Ñигналом, Ñк це буде показано у запиті, Ñ” SIGTERM. Втім, ви можете надіÑлати будь-Ñкий Ñигнал, вказавши чиÑло або назву."
+
+#. type: Plain text
+#: ../man/top.1:1446
+msgid "If you wish to abort the kill process, do one of the following depending on your progress:"
+msgstr "Якщо ви хочете перервати Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ завданнÑ, виконайте одну з таких дій, залежно від поÑтупу процедури:"
+
+#. type: Plain text
+#: ../man/top.1:1450
+#, no-wrap
+msgid ""
+" 1) at the pid prompt, type an invalid number\n"
+" 2) at the signal prompt, type 0 (or any invalid signal)\n"
+" 3) at any prompt, type E<lt>EscE<gt>\n"
+msgstr ""
+" 1) у запиті щодо pid введіть некоректне чиÑло\n"
+" 2) у запиті щодо Ñигналу введіть 0 (або будь-Ñкий некоректний Ñигнал)\n"
+" 3) у будь-Ñкому запиті натиÑніть E<lt>EscE<gt>\n"
+
+#. type: TP
+#: ../man/top.1:1452
+#, no-wrap
+msgid "\\ \\ \\ B<q>\\ \\ :I<Quit >"
+msgstr "\\ \\ \\ B<q>\\ \\ :I<Вийти >"
+
+#. type: TP
+#: ../man/top.1:1455
+#, no-wrap
+msgid "*\\ \\ B<r>\\ \\ :I<Renice-a-Task >"
+msgstr "*\\ \\ B<r>\\ \\ :I<Змінити пріоритетніÑÑ‚ÑŒ (nice) завданнÑ>"
+
+#. type: Plain text
+#: ../man/top.1:1458
+msgid "You will be prompted for a PID and then the value to nice it to."
+msgstr "Програма попроÑить Ð²Ð°Ñ Ð²Ð²ÐµÑти PID, а потім ввеÑти Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу."
+
+#. type: Plain text
+#: ../man/top.1:1468
+msgid "A positive nice value will cause a process to lose priority. Conversely, a negative nice value will cause a process to be viewed more favorably by the kernel. As a general rule, ordinary users can only increase the nice value and are prevented from lowering it."
+msgstr "Додатне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– (nice) ÑпричинÑÑ” втрату пріоритетноÑÑ‚Ñ– процеÑом. І навпаки, від'ємне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– призводить до того, що Ñдро розглÑдатиме Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñк пріоритетніший. Загалом, звичайні кориÑтувачі можуть лише збільшувати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– Ñ– не можуть його зменшувати."
+
+#. type: Plain text
+#: ../man/top.1:1471
+msgid "If you wish to abort the renice process, do one of the following depending on your progress:"
+msgstr "Якщо ви хочете перервати Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð¼Ñ–Ð½Ð¸ пріоритетноÑÑ‚Ñ– завданнÑ, виконайте одну з таких дій, залежно від поÑтупу процедури:"
+
+#. type: Plain text
+#: ../man/top.1:1475
+#, no-wrap
+msgid ""
+" 1) at the pid prompt, type an invalid number\n"
+" 2) at the nice prompt, type E<lt>EnterE<gt> with no input\n"
+" 3) at any prompt, type E<lt>EscE<gt>\n"
+msgstr ""
+" 1) у запиті щодо pid введіть некоректне чиÑло\n"
+" 2) у запиті щодо пріоритетноÑÑ‚Ñ– натиÑніть E<lt>EnterE<gt> без Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ\n"
+" 3) у будь-Ñкому запиті натиÑніть E<lt>EscE<gt>\n"
+
+#. type: TP
+#: ../man/top.1:1477
+#, no-wrap
+msgid "\\ \\ \\ B<W>\\ \\ :I<Write-the-Configuration-File >"
+msgstr "\\ \\ \\ B<W>\\ \\ :I<ЗапиÑати файл налаштувань>"
+
+#. type: Plain text
+#: ../man/top.1:1483
+msgid "This will save all of your options and toggles plus the current display mode and delay time. By issuing this command just before quitting \\*(We, you will be able restart later in exactly that same state."
+msgstr "У результаті уÑÑ– ваші Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² Ñ– перемикачів, разом із поточним режимом показу та чаÑом затримки буде збережено. Якщо ви віддаÑте цю команду одразу перед завершеннÑм роботи \\*(We, ви зможете згодом запуÑтити програму у тому Ñамому Ñтані."
+
+#. type: TP
+#: ../man/top.1:1484
+#, no-wrap
+msgid "\\ \\ \\ B<X>\\ \\ :I<Extra-Fixed-Width >"
+msgstr "\\ \\ \\ B<X>\\ \\ :I<Додаткова фікÑована ширина>"
+
+#. type: Plain text
+#: ../man/top.1:1489
+msgid "Some fields are fixed width and not scalable. As such, they are subject to truncation which would be indicated by a `+' in the last position."
+msgstr "ДеÑкі Ð¿Ð¾Ð»Ñ Ð¼Ð°ÑŽÑ‚ÑŒ фікÑовану ширину Ñ– не придатні до маÑштабуваннÑ. Такі Ð¿Ð¾Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð° обрізає Ñ– позначає Ñ—Ñ… Ñимволом «+» в оÑтанній позиції."
+
+#. type: Plain text
+#: ../man/top.1:1491
+msgid "This \\*(CI can be used to alter the widths of the following fields:"
+msgstr "Цією інтерактивною командою можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ ширини таких полів:"
+
+#. type: Plain text
+#: ../man/top.1:1503
+#, no-wrap
+msgid ""
+" I< field default field default field default >\n"
+" GID 5 GROUP 8 WCHAN 10\n"
+" LOGID 5 LXC 8 nsCGROUP 10\n"
+" RUID 5 RUSER 8 nsIPC 10\n"
+" SUID 5 SUSER 8 nsMNT 10\n"
+" UID 5 TTY 8 nsNET 10\n"
+" USER 8 nsPID 10\n"
+" nsTIME 10\n"
+" nsUSER 10\n"
+" nsUTS 10\n"
+msgstr ""
+" I< поле типова поле типова поле типова >\n"
+" GID 5 GROUP 8 WCHAN 10\n"
+" LOGID 5 LXC 8 nsCGROUP 10\n"
+" RUID 5 RUSER 8 nsIPC 10\n"
+" SUID 5 SUSER 8 nsMNT 10\n"
+" UID 5 TTY 8 nsNET 10\n"
+" USER 8 nsPID 10\n"
+" nsTIME 10\n"
+" nsUSER 10\n"
+" nsUTS 10\n"
+
+#. type: Plain text
+#: ../man/top.1:1508
+msgid "You will be prompted for the amount to be added to the default widths shown above. Entering zero forces a return to those defaults."
+msgstr "Програма попроÑить Ð²Ð°Ñ Ð²ÐºÐ°Ð·Ð°Ñ‚Ð¸ доповненнÑ, Ñке буде додано до типової ширини з наведеної вище таблиці. Ð’Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¾Ð³Ð¾ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸Ð·Ð²ÐµÐ´Ðµ до Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð´Ð¾ типового значеннÑ."
+
+#. type: Plain text
+#: ../man/top.1:1511
+msgid "If you enter a negative number, \\*(We will automatically increase the column size as needed until there is no more truncated data."
+msgstr "Якщо ви вкажете від'ємне значеннÑ, \\*(We автоматично збільшить розмір Ñтовпчика на потрібну величину, так, щоб дані не було обрізано."
+
+#. type: Plain text
+#: ../man/top.1:1515
+msgid "\\*(NT Whether explicitly or automatically increased, the widths for these fields are never decreased by \\*(We. To narrow them you must specify a smaller number or restore the defaults."
+msgstr "\\*(NT Буде ширину цих полів збільшено Ñвно чи автоматично, \\*(We ніколи не зменшуватиме ширини. Щоб зменшити ширину, вам Ñлід вказати менше чиÑло або відновити типові значеннÑ."
+
+#. type: TP
+#: ../man/top.1:1516
+#, no-wrap
+msgid "\\ \\ \\ B<Y>\\ \\ :I<Inspect-Other-Output >"
+msgstr "\\ \\ \\ B<Y>\\ \\ :I<Вивчити інше виведеннÑ>"
+
+#. type: Plain text
+#: ../man/top.1:1522
+msgid "After issuing the `Y' \\*(CI, you will be prompted for a target PID. Typing a value or accepting the default results in a separate screen. That screen can be used to view a variety of files or piped command output while the normal \\*(We iterative display is paused."
+msgstr "ПіÑÐ»Ñ Ð²Ð¸Ð´Ð°Ð½Ð½Ñ Ñ–Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ñ— команди «Y» програма попроÑить Ð²Ð°Ñ Ð²Ð²ÐµÑти PID призначеннÑ. Ð’Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ прийнÑÑ‚Ñ‚Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ð³Ð¾ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸Ð·Ð²ÐµÐ´Ðµ до поÑви окремого екрана. Цим екраном можна буде ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду діапазону файлів або каналізованого Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´, а звичайний ітеративний показ даних \\*(We буде призупинено."
+
+#. type: Plain text
+#: ../man/top.1:1526
+msgid "\\*(NT This \\*(CI is only fully realized when supporting entries have been manually added to the end of the \\*(We \\*(CF. For details on creating those entries, \\*(Xt 6b. ADDING INSPECT Entries."
+msgstr "\\*(NT Цю інтерактивну команду повніÑÑ‚ÑŽ реалізовано лише при підтримці запиÑів, Ñкі вручну додано наприкінці файла налаштувань \\*(We. Докладніше про ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ†Ð¸Ñ… запиÑів можна дізнатиÑÑ Ñ–Ð· розділу 6б. ДОДÐÐ’ÐÐÐЯ ЗÐПИСІВ ДЛЯ ІÐСПЕКТУВÐÐÐЯ."
+
+#. type: Plain text
+#: ../man/top.1:1533
+msgid "Most of the keys used to navigate the Inspect feature are reflected in its header prologue. There are, however, additional keys available once you have selected a particular file or command. They are familiar to anyone who has used the pager `less' and are summarized here for future reference."
+msgstr "БільшіÑÑ‚ÑŒ клавіш, Ñкі викориÑтовують Ð´Ð»Ñ Ð½Ð°Ð²Ñ–Ð³Ð°Ñ†Ñ–Ñ— інÑпектованими даними вказано у передмові. Втім, Ñ” додаткові клавіші, Ñкі Ñтають доÑтупними Ð´Ð»Ñ Ð¿ÐµÐ²Ð½Ð¾Ð³Ð¾ файла або команди. Ці клавіші знайомі будь-кому, хто кориÑтувавÑÑ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¾ÑŽ поділу на Ñторінки «less». Їхнє резюме наведено тут з довідковою метою."
+
+#. type: Plain text
+#: ../man/top.1:1543
+#, no-wrap
+msgid ""
+" I< key function >\n"
+" = alternate status-line, file or pipeline\n"
+" / find, equivalent to `L' locate\n"
+" n find next, equivalent to `&' locate next\n"
+" E<lt>SpaceE<gt> scroll down, equivalent to E<lt>PgDnE<gt>\n"
+" b scroll up, equivalent to E<lt>PgUpE<gt>\n"
+" g first line, equivalent to E<lt>HomeE<gt>\n"
+" G last line, equivalent to E<lt>EndE<gt>\n"
+msgstr ""
+" I< клавіша Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ >\n"
+" = альтернативний Ñ€Ñдок Ñтану, файла або каналу\n"
+" / пошук, еквівалент пошуку «L»\n"
+" n знайти далі, еквівалент пошуку наÑтупного «&»\n"
+" E<lt>ПробілE<gt> Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð²Ð½Ð¸Ð·, еквівалент E<lt>PgDnE<gt>\n"
+" b Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð²Ð³Ð¾Ñ€Ñƒ, еквівалент E<lt>PgUpE<gt>\n"
+" g перший Ñ€Ñдок, еквівалент E<lt>HomeE<gt>\n"
+" G оÑтанній Ñ€Ñдок, еквівалент E<lt>EndE<gt>\n"
+
+#. type: TP
+#: ../man/top.1:1545
+#, no-wrap
+msgid "\\ \\ \\ B<Z>\\ \\ :I<Change-Color-Mapping >"
+msgstr "\\ \\ \\ B<Z>\\ \\ :I<Змінити прив'Ñзку кольорів>"
+
+#. type: Plain text
+#: ../man/top.1:1550
+msgid "This key will take you to a separate screen where you can change the colors for the \\*(CW, or for all windows. For details regarding this \\*(CI \\*(Xt 4d. COLOR Mapping."
+msgstr "ÐатиÑÐºÐ°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— клавіші переведе Ð²Ð°Ñ Ð´Ð¾ окремого екрана, на Ñкому ви зможете змінити кольори Ð´Ð»Ñ Â«Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾Â» вікна або Ð´Ð»Ñ ÑƒÑÑ–Ñ… вікон. Докладніше про цю інтерактивну команду можна дізнатиÑÑ Ð· розділу 4г. ПРИВ'ЯЗКРКОЛЬОРІВ."
+
+#. type: Plain text
+#: ../man/top.1:1553
+msgid "\\ \\ B<^G>\\ \\ :I<Display-Control-Groups > (Ctrl key + `g')"
+msgstr "\\ \\ B<^G>\\ \\ :I<Показати групи ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ > (клавіша Ctrl + `g')"
+
+#. type: Plain text
+#: ../man/top.1:1555
+msgid "\\ \\ B<^K>\\ \\ :I<Display-Cmdline > (Ctrl key + `k')"
+msgstr "\\ \\ B<^K>\\ \\ :I<Показати Ñ€Ñдок команди > (клавіша Ctrl + `k')"
+
+#. type: Plain text
+#: ../man/top.1:1557
+msgid "\\ \\ B<^N>\\ \\ :I<Display-Environment > (Ctrl key + `n')"
+msgstr "\\ \\ B<^N>\\ \\ :I<Показати Ñередовище > (клавіша Ctrl + `n')"
+
+#. type: Plain text
+#: ../man/top.1:1559
+msgid "\\ \\ B<^P>\\ \\ :I<Display-Namesspaces > (Ctrl key + `p')"
+msgstr "\\ \\ B<^P>\\ \\ :I<Показати проÑтори назв > (клавіша Ctrl + `p')"
+
+#. type: Plain text
+#: ../man/top.1:1561
+msgid "\\ \\ B<^U>\\ \\ :I<Display-Supplementary-Groups > (Ctrl key + `u')"
+msgstr "\\ \\ B<^U>\\ \\ :I<Показати допоміжні групи > (клавіша Ctrl + `u')"
+
+#. type: Plain text
+#: ../man/top.1:1567
+msgid "Applied to the first process displayed, these commands will show that task's full (potentially wrapped) information. Such data will be displayed in a separate window at the bottom of the screen while normal \\*(We monitoring continues."
+msgstr "ЗаÑтоÑовані до першого показаного процеÑу, ці команди виводÑÑ‚ÑŒ повні дані (потенційно розбиті на Ñ€Ñдки) щодо процеÑу. Такі дані буде показано в окремому вікні внизу екрана без Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ð½Ð½Ñ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¾Ð³Ð¾ ÑпоÑÑ‚ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð° даними у \\*(We."
+
+#. type: Plain text
+#: ../man/top.1:1572
+msgid "Keying theI< same> `Ctrl' command a second time removes that separate window as does the `=' command. Keying a different `Ctrl' combination, while one is already active, immediately transitions to the new information."
+msgstr "ÐатиÑÐºÐ°Ð½Ð½Ñ I<тієї Ñамої> комбінації із «Ctrl» удруге вилучає це окреме вікно Ñ– віддає команду «=». ÐатиÑÐºÐ°Ð½Ð½Ñ Ñ–Ð½ÑˆÐ¾Ñ— комбінації клавіш із «Ctrl», доки вікно лишаєтьÑÑ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¸Ð¼, негайно переводить програму у режим Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¸Ñ… нових даних."
+
+#. type: Plain text
+#: ../man/top.1:1577
+msgid "Notable among these provisions is the Ctrl+N (environment) command. Its output can be extensive and not easily read when line wrapped. A more readable version can be achieved with an `Inspect' entry in the rcfile like the following."
+msgstr "Помітною Ñеред цих команд Ñ” команда Ctrl+N (Ñередовище). Виведені нею дані можуть бути доÑить об'ємними, Ñ—Ñ… не проÑто читати, Ñкщо Ñ€Ñдок розбито. Зручніший Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð²Ð°Ñ€Ñ–Ð°Ð½Ñ‚ можна отримати за допомогою запиÑу «Inspect» у файлі rcfile, подібного до наведеного нижче."
+
+#. type: Plain text
+#: ../man/top.1:1580
+#, no-wrap
+msgid " pipe ^I Environment ^I cat /proc/%d/environ | tr '\\e0' '\\en'\n"
+msgstr " pipe ^I Environment ^I cat /proc/%d/environ | tr '\\e0' '\\en'\n"
+
+#. type: Plain text
+#: ../man/top.1:1584
+msgid "\\*(XC `Y' \\*(CI above and topic 6b. ADDING INSPECT Entries for additional information."
+msgstr "Див. інтерактивну команду «Y» Ñ– розділ 6б. ДОДÐÐ’ÐÐÐЯ ЗÐПИСІВ ДЛЯ ІÐСПЕКТУВÐÐÐЯ, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ."
+
+#. type: Plain text
+#: ../man/top.1:1588
+msgid "As an alternative to `Inspect', and available to all of these `Ctrl' commands, the tab key can be used to highlight individual elements in the bottom window."
+msgstr "Ðльтернативою «Inspect», Ñка доÑтупна Ð´Ð»Ñ ÑƒÑÑ–Ñ… «Ctrl»-команд, Ñ” клавіша табулÑції, Ñкою можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð¿Ñ–Ð´ÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾ÐºÑ€ÐµÐ¼Ð¸Ñ… елементів у нижній чаÑтині вікна."
+
+#. type: TP
+#: ../man/top.1:1590
+#, no-wrap
+msgid "\\ \\ B<^L>\\ \\ :I<Logged-Messages > (Ctrl key + `l')"
+msgstr "\\ \\ B<^L>\\ \\ :I<ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¶ÑƒÑ€Ð½Ð°Ð»Ñƒ > (клавіша Ctrl + `l')"
+
+#. type: Plain text
+#: ../man/top.1:1596
+msgid "The 10 most recent messages are displayed in a separate window at the bottom of the screen while normal \\*(We monitoring continues. Keying `^L' a second time removes that window as does the `=' command. Use the tab key to highlight individual messages."
+msgstr "10 найÑвіжіших повідомлень буде показано на окремій панелі у нижній чаÑтині вікна, де, зазвичай, продовжуєтьÑÑ ÑÑ‚ÐµÐ¶ÐµÐ½Ð½Ñ Ð· \\*(We. Повторне натиÑÐºÐ°Ð½Ð½Ñ Â«^L» вилучає цю панель, Ñк Ñ– команда «=». СкориÑтайтеÑÑ ÐºÐ»Ð°Ð²Ñ–ÑˆÐµÑŽ Tab Ð´Ð»Ñ Ð¿Ñ–Ð´ÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾ÐºÑ€ÐµÐ¼Ð¸Ñ… повідомлень."
+
+#. type: TP
+#: ../man/top.1:1597
+#, no-wrap
+msgid "*\\ B<^R>\\ \\ :I<Renice-an-Autogroup > (Ctrl key + `r')"
+msgstr "*\\ B<^R>\\ \\ :I<Змінити пріоритетніÑÑ‚ÑŒ автогрупи > (клавіша Ctrl + `r')"
+
+#. type: Plain text
+#: ../man/top.1:1601
+msgid "You will be prompted for a PID and then the value for its autogroup AGNI."
+msgstr "Програма попроÑить Ð²Ð°Ñ Ð²Ð²ÐµÑти PID, а потім ввеÑти Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– Ð´Ð»Ñ Ð¹Ð¾Ð³Ð¾ AGNI автогрупи."
+
+#. type: Plain text
+#: ../man/top.1:1604
+msgid "Entering no PID will be interpreted as the default shown in the prompt (the first task displayed)."
+msgstr "Якщо PID не буде введено, програма викориÑтає типове значеннÑ, Ñке показано у запиті щодо команди (перше показане завданнÑ)."
+
+#. type: Plain text
+#: ../man/top.1:1610
+msgid "A positive AGNI value will cause processes in that autogroup to lose priority. Conversely, a negative value causes them to be viewed more favorably by the kernel. Ordinary users are not allowed to set negative AGNI values."
+msgstr "Додатне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ AGNI призводить до втрати пріоритетноÑÑ‚Ñ– процеÑів в автогрупі. Ðавпаки, від'ємне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ‚ÑŒ до того, що Ñдро вважає Ñ—Ñ… пріоритетнішими. Звичайні кориÑтувачі не можуть вÑтановлювати від'ємні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ AGNI."
+
+#. type: Plain text
+#: ../man/top.1:1612
+msgid "If you wish to abort the renice process type E<lt>EscE<gt>."
+msgstr "Якщо ви хочете перервати Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð¼Ñ–Ð½Ð¸ пріоритетноÑÑ‚Ñ– завданнÑ, натиÑніть E<lt>EscE<gt>."
+
+#. type: IP
+#: ../man/top.1:1613 ../man/top.1:2134
+#, no-wrap
+msgid "*"
+msgstr "*"
+
+#. type: Plain text
+#: ../man/top.1:1616
+msgid "The commands shown with an \\*(AK are not available in Secure mode, nor will they be shown on the level-1 help screen."
+msgstr "Команди, Ñкі показано із зірочкою («*»), Ñ” недоÑтупними у захищеному режимі, Ñ—Ñ… також не буде показано на першому рівні екрана довідки."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1618
+#, no-wrap
+msgid "4b. SUMMARY AREA Commands"
+msgstr "4б. КОМÐÐДИ ОБЛÐСТІ РЕЗЮМЕ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1623
+msgid "The \\*(SA \\*(CIs areB< always available> in both \\*(FM and \\*(AM. They affect the beginning lines of your display and will determine the position of messages and prompts."
+msgstr "Інтерактивні команди облаÑÑ‚Ñ– резюме Ñ” B<завжди доÑтупними> у обох режимах — повноекранному та режимі альтернативного показу. Ці команди ÑтоÑуютьÑÑ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð¸Ñ… Ñ€Ñдків показу Ñ– визначають позицію повідомлень Ñ– запитів."
+
+#. type: Plain text
+#: ../man/top.1:1627
+msgid "These commands always impact just the \\*(CG. \\*(XT 5. ALTERNATE-DISPLAY Provisions and the `g' \\*(CI for insight into \\*(CWs and \\*(FGs."
+msgstr "Ці команди завжди впливають лише на «поточне» вікно або групу полів. Див. розділ 5. ПОЛОЖЕÐÐЯ ÐЛЬТЕРÐÐТИВÐОГО ПОКÐЗУ та інтерактивну команду «g», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про «поточні» вікна Ñ– групи полів."
+
+#. type: TP
+#: ../man/top.1:1628
+#, no-wrap
+msgid "\\ \\ \\ B<C>\\ \\ :I<Show-scroll-coordinates> toggle "
+msgstr "\\ \\ \\ B<C>\\ \\ :I<Перемикач показу координат гортаннÑ> "
+
+#. type: Plain text
+#: ../man/top.1:1633
+msgid "Toggle an informational message which is displayed whenever the message line is not otherwise being used. For additional information \\*(Xt 5c. SCROLLING a Window."
+msgstr "Перемкнути інформаційне повідомленнÑ, Ñке буде показано кожного разу, коли Ñ€Ñдок Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ðµ викориÑтовуєтьÑÑ Ð² інший ÑпоÑіб. Докладніше про це можна дізнатиÑÑ Ð· розділу 5в. ГОРТÐÐÐЯ ВІКÐÐ."
+
+#. type: TP
+#: ../man/top.1:1634
+#, no-wrap
+msgid "\\ \\ \\ B<l>\\ \\ :I<Load-Average/Uptime> toggle "
+msgstr "\\ \\ \\ B<l>\\ \\ :I<Перемикач Ñереднього навантаженнÑ/чаÑу роботу> "
+
+#. type: Plain text
+#: ../man/top.1:1638
+msgid "This is also the line containing the program name (possibly an alias) when operating in \\*(FM or the \\*(CW name when operating in \\*(AM."
+msgstr "Це також Ñ€Ñдок, що міÑтить назву програми (можливо альтернативу назви) при роботі у повноекранному режимі або назву «поточного» вікна при роботі у режимі альтернативного показу."
+
+#. type: TP
+#: ../man/top.1:1639
+#, no-wrap
+msgid "\\ \\ \\ B<t>\\ \\ :I<Task/Cpu-States> toggle "
+msgstr "\\ \\ \\ B<t>\\ \\ :I<Перемикач завданнÑ/Ñтани процеÑора> "
+
+#. type: Plain text
+#: ../man/top.1:1644
+msgid "This command affects from 2 to many \\*(SA lines, depending on the state of the `1', `2' or `3' \\*(CTs and whether or not \\*(We is running under true SMP."
+msgstr "Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° ÑтоÑуєтьÑÑ Ð²Ñ–Ð´ 2 багатьох Ñ€Ñдків облаÑÑ‚Ñ– резюме, залежно від Ñтану перемикачів команд «1», «2» або «3» Ñ– того, чи працює \\*(We у режимі Ñиметричної багатопроцеÑорноÑÑ‚Ñ–."
+
+#. type: Plain text
+#: ../man/top.1:1647
+msgid "This portion of the \\*(SA is also influenced by the `H' \\*(CI toggle, as reflected in the total label which shows either Tasks or Threads."
+msgstr "Ðа цю чаÑтину облаÑÑ‚Ñ– резюме впливає інтерактивна команда-перемикач «H», Ñк це показано загальною міткою, Ñка показує Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ потоки."
+
+#. type: Plain text
+#: ../man/top.1:1649 ../man/top.1:1666
+msgid "This command serves as a 4-way toggle, cycling through these modes:"
+msgstr "Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° працює Ñк чотирипозиційний перемикач із циклічним перемиканнÑм таких режимів:"
+
+#. type: Plain text
+#: ../man/top.1:1654
+#, no-wrap
+msgid ""
+" 1. detailed percentages by category\n"
+" 2. abbreviated user/system and total % + bar graph\n"
+" 3. abbreviated user/system and total % + block graph\n"
+" 4. turn off task and cpu states display\n"
+msgstr ""
+" 1. докладні чаÑтки за категоріÑми\n"
+" 2. Ñкорочені запиÑи кориÑтувача/ÑиÑтеми Ñ– загальний % + Ñтовпчикова діаграма\n"
+" 3. Ñкорочені запиÑи кориÑтувача/ÑиÑтеми Ñ– загальний % + блоковий графік\n"
+" 4. Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ завдань Ñ– Ñтанів процеÑора\n"
+
+#. type: Plain text
+#: ../man/top.1:1659
+msgid "When operating in either of the graphic modes, the display becomes much more meaningful when individual CPUs or NUMA nodes are also displayed. \\*(XC the `1', `2' and `3' commands below for additional information."
+msgstr "При роботі у будь-Ñкому з графічних режимів показані дані Ñтають набагато значимішими, Ñкщо також показано окремі процеÑори або вузли NUMA. Щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ, ознайомтеÑÑ Ñ–Ð· опиÑом команд «1», «2» Ñ– «3» нижче."
+
+#. type: TP
+#: ../man/top.1:1660
+#, no-wrap
+msgid "\\ \\ \\ B<m>\\ \\ :I<Memory/Swap-Usage> toggle "
+msgstr "\\ \\ \\ B<m>\\ \\ :I<Перемикач пам'ÑÑ‚ÑŒ/викориÑÑ‚Ð°Ð½Ð½Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ñ— пам'ÑÑ‚Ñ–> "
+
+#. type: Plain text
+#: ../man/top.1:1664
+msgid "This command affects the two \\*(SA lines dealing with physical and virtual memory."
+msgstr "Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° ÑтоÑуєтьÑÑ Ð´Ð²Ð¾Ñ… Ñ€Ñдків облаÑÑ‚Ñ– резюме, Ñкі ÑтоÑуютьÑÑ Ñ„Ñ–Ð·Ð¸Ñ‡Ð½Ð¾Ñ— Ñ– віртуальної пам'ÑÑ‚Ñ–."
+
+#. type: Plain text
+#: ../man/top.1:1671
+#, no-wrap
+msgid ""
+" 1. detailed percentages by memory type\n"
+" 2. abbreviated % used/total available + bar graph\n"
+" 3. abbreviated % used/total available + block graph\n"
+" 4. turn off memory display\n"
+msgstr ""
+" 1. докладні чаÑтки за типом пам'ÑÑ‚Ñ–\n"
+" 2. Ñкорочені запиÑи % викориÑтаної/загальної доÑтупної + Ñтовпчикова діаграма\n"
+" 3. Ñкорочені запиÑи % викориÑтаної/загальної доÑтупної + блокова діаграма\n"
+" 4. Ð²Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ даних пам'ÑÑ‚Ñ–\n"
+
+#. type: TP
+#: ../man/top.1:1673
+#, no-wrap
+msgid "\\ \\ \\ B<1>\\ \\ :I<Single/Separate-Cpu-States> toggle "
+msgstr "\\ \\ \\ B<1>\\ \\ :I<Перемикач Ñтанів єдиного процеÑора/окремих процеÑорів> "
+
+#. type: Plain text
+#: ../man/top.1:1678
+msgid "This command affects how the `t' command's Cpu States portion is shown. Although this toggle exists primarily to serve massively-parallel SMP machines, it is not restricted to solely SMP environments."
+msgstr "Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° впливає на те, Ñк буде показано чаÑтину Ñтанів процеÑора Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ «t». Хоча оÑновним призначеннÑм цього перемикача Ñ” обÑÐ»ÑƒÐ³Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð¿'ютерів із значною паралелізацією у Ñиметричній багатопроцеÑорноÑÑ‚Ñ–, його не обмежено лише Ñередовищами із Ñиметричною багатопроцеÑорніÑÑ‚ÑŽ."
+
+#. type: Plain text
+#: ../man/top.1:1683
+msgid "When you see `%Cpu(s):' in the \\*(SA, the `1' toggle is \\*O and all \\*(Pu information is gathered in a single line. Otherwise, each \\*(Pu is displayed separately as: `%Cpu0, %Cpu1, ...' up to available screen height."
+msgstr "Коли ви бачите «%CПроц:» в облаÑÑ‚Ñ– резюме, перемикач «1» перебуває у Ñтані \\*O, а уÑÑ– дані щодо процеÑора буде зібрано в одному Ñ€Ñдку. Якщо цього Ñ€Ñдка немає, кожен процеÑор буде показано окремо, Ñк «%Прц0, %Прц1, ...», аж до Ð²Ð¸Ñ‡ÐµÑ€Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупної виÑоти екрана."
+
+#. type: TP
+#: ../man/top.1:1684
+#, no-wrap
+msgid "\\ \\ \\ B<2>\\ \\ :I<NUMA-Nodes/Cpu-Summary> toggle "
+msgstr "\\ \\ \\ B<2>\\ \\ :I<Перемикач вузли NUMA/резюме процеÑорів> "
+
+#. type: Plain text
+#: ../man/top.1:1689
+msgid "This command toggles between the `1' command cpu summary display (only) or a summary display plus the cpu usage statistics for each NUMA Node. It is only available if a system has the requisite NUMA support."
+msgstr "Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° перемикає програму між режимом «1» показу резюме процеÑора (лише) або показом резюме разом із ÑтатиÑтикою щодо викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ вузла NUMA. Вона доÑтупна, лише Ñкщо у ÑиÑтемі Ñ” відповідна підтримка NUMA."
+
+#. type: TP
+#: ../man/top.1:1690
+#, no-wrap
+msgid "\\ \\ \\ B<3>\\ \\ :I<Expand-NUMA-Node >"
+msgstr "\\ \\ \\ B<3>\\ \\ :I<Розгорнути вузол NUMA>"
+
+#. type: Plain text
+#: ../man/top.1:1696
+msgid "You will be invited to enter a number representing a NUMA Node. Thereafter, a node summary plus the statistics for each cpu in that node will be shown until the `1', `2' or `4' \\*(CT is pressed. This \\*(CI is only available if a system has the requisite NUMA support."
+msgstr "Програма попроÑить Ð²Ð°Ñ Ð²Ð²ÐµÑти номер, Ñкий відповідає вузлу NUMA. ПіÑÐ»Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ показано резюме щодо вузла разом із ÑтатиÑтикою Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ процеÑора на вузлі, аж доки не буде натиÑнуто командний перемикач «1», «2» або «4». ДоÑтуп до цієї інтерактивної команди можна буде отримати, лише Ñкщо у ÑиÑтемі Ñ” відповідне підтримка NUMA."
+
+#. type: TP
+#: ../man/top.1:1697
+#, no-wrap
+msgid "\\ \\ \\ B<4>\\ \\ :I<Display-Multiple-Elements-Adjacent> toggle "
+msgstr "\\ \\ \\ B<4>\\ \\ :I<Перемикач одночаÑного показу декількох елементів> "
+
+#. type: Plain text
+#: ../man/top.1:1703
+msgid "This \\*(CT turns the `1' toggle \\*F and shows multiple \\*(PU and Memory results on each line. Each successive `4' key adds another \\*(PU until again reverting to separate lines for \\*(PU and Memory results."
+msgstr "Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°-перемикач вимикає «1» Ñ– показує дані декількох процеÑорів та пам'ÑÑ‚Ñ– у кожному Ñ€Ñдку. Кожне наÑтупне натиÑÐºÐ°Ð½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–ÑˆÑ– «4» додає ще один процеÑор, аж доки Ñтану Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð´Ð¾ окремих Ñ€Ñдків результатів Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑорів Ñ– пам'ÑÑ‚Ñ–."
+
+#. type: Plain text
+#: ../man/top.1:1709
+msgid "A maximum of 8 \\*(PUs per line can be displayed in this manner. However, data truncation may occur before reaching the maximum. That is definitely true when displaying detailed statistics via the `t' \\*(CT since such data cannot be scaled like the graphic representations."
+msgstr "У цей ÑпоÑіб може бути показано дані до 8 процеÑорів на Ñ€Ñдок. Втім може ÑтатиÑÑ Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… через доÑÑÐ³Ð½ÐµÐ½Ð½Ñ Ð¼Ð°ÐºÑимального обÑÑгу показаного. Таке, напевно, ÑтанетьÑÑ, Ñкщо переглÑдати докладні ÑтатиÑтичні дані за допомогою команди-перемикача «t», оÑкільки такі дані не можна маÑштабувати, подібно до графічного предÑтавленнÑ."
+
+#. type: Plain text
+#: ../man/top.1:1712
+msgid "If one wished to quickly exit adjacent mode without cycling all the way to 8, simply use the `1' \\*(CT."
+msgstr "Якщо потрібно швидко вийти із режиму паралельного показу без переходу уÑім циклом, аж до 8 процеÑорів, проÑто ÑкориÑтайтеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ-перемикачем «1»."
+
+#. type: TP
+#: ../man/top.1:1713
+#, no-wrap
+msgid "\\ \\ \\ B<5>\\ \\ :I<Display-P-Cores-and-E-Cores> toggle "
+msgstr "\\ \\ \\ B<5>\\ \\ :I<Перемикач показу P-Ñдер Ñ– E-Ñдер> "
+
+#. type: Plain text
+#: ../man/top.1:1719
+msgid "This \\*(CT is only active when the `t' toggle is \\*O and the `1', `2', `3' and `!' toggles are \\*F, thus showing individual \\*(PU results. It assumes a platform has multiple cores of two distinct types, either multi-threaded (P-Core) or single-threaded (E-Core)."
+msgstr "Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°-перемикач Ñ” активною, лише Ñкщо увімкнено перемикач «t» Ñ– вимкнено перемикачі «1», «2», «3» та «!», показуючи окремі результати Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑорів. ПрипуÑкаємо, що платформа має декілька процеÑорних Ñдер двох різних типів, багатопотокові (P-Ñдро) або однопотокові (E-Ñдро)."
+
+#. type: Plain text
+#: ../man/top.1:1723
+msgid "While normally each \\*(Pu is displayed as `%Cpu0, %Cpu1, ...', this toggle can be used to identify and/or filter those \\*(Pus by their core type, either P-Core (performance) or E-Core (efficient)."
+msgstr "Хоча, зазвичай, кожен процеÑор буде показано Ñк «%Проц0, %Проц1, ...», цим перемикачем можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ— Ñ–/або Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑорів за типом Ñдра, або P-Ñдро (швидкодіÑ), або E-Ñдро (ефективніÑÑ‚ÑŒ)."
+
+#. type: Plain text
+#: ../man/top.1:1730
+msgid "The 1st time `5' is struck, each \\*(PU is displayed as `%CpB<P>' or `%CpB<E>' representing the two core types. The 2nd time, only P-Cores (%CpB<P>) will be shown. The 3rd time, only E-Cores (%CpB<E>) are displayed. When this \\*(CT is struck for the 4th time, the \\*(PU display returns to the normal `%Cpu' convention."
+msgstr "Коли уперше натиÑнути «5», кожен процеÑор буде показано Ñк «%CpB<P>» або «%CpB<E>», відповідно до одного з двох типів Ñдер. ПіÑÐ»Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð³Ð¾ натиÑÐºÐ°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ показано лише P-Ñдра (%CpB<P>). ПіÑÐ»Ñ Ñ‚Ñ€ÐµÑ‚ÑŒÐ¾Ð³Ð¾ натиÑÐºÐ°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ показано лише E-Ñдра (%CpB<E>). Якщо натиÑнути команду-перемикач учетверте, показ процеÑорів повернетьÑÑ Ð´Ð¾ звичайного режиму «%Проц»."
+
+#. type: Plain text
+#: ../man/top.1:1733
+msgid "If separateI< performance> andI< efficient> categories are not present, this \\*(CT will have no effect."
+msgstr "Якщо окремих категорій I<швидкодіÑ> Ñ– I<ефективніÑÑ‚ÑŒ> немає, цей перемикач не працюватиме."
+
+#. type: TP
+#: ../man/top.1:1734
+#, no-wrap
+msgid "\\ \\ \\ B<!>\\ \\ :I<Combine-Cpus-Mode> toggle "
+msgstr "\\ \\ \\ B<!>\\ \\ :I<Перемикач режиму Ð¿Ð¾Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑорів> "
+
+#. type: Plain text
+#: ../man/top.1:1740
+msgid "This \\*(CT is intended for massively parallel SMP environments where, even with the `4' \\*(CT, not all processors can be displayed. With each press of `!' the number of \\*(Pus combined is doubled thus reducing the total number of \\*(Pu lines displayed."
+msgstr "Цю команду-перемикач призначено Ð´Ð»Ñ Ñередовищ із потужною паралельною Ñиметричною багатопроцеÑорніÑÑ‚ÑŽ, де, навіть із командою-перемикачем «4», може бути показано лише чаÑтину процеÑорів. Із кожним натиÑканнÑм «!» кількіÑÑ‚ÑŒ додаткових поєднаних процеÑорів подвоюватиметьÑÑ, таким чином зменшуючи загальну кількіÑÑ‚ÑŒ показаних Ñ€Ñдків процеÑорів."
+
+#. type: Plain text
+#: ../man/top.1:1747
+msgid "For example, with the first press of `!' two \\*(Pus will be combined and displayed as `0-1, 2-3, ...' instead of the normal `%Cpu0, %Cpu1, %Cpu2, %Cpu3, ...'. With a second `!' \\*(CT four \\*(Pus are combined and shown as `0-3, 4-7, ...'. Then the third `!' press, combining eight \\*(Pus, shows as `0-7, 8-15, ...', etc."
+msgstr "Ðаприклад, піÑÐ»Ñ Ð¿ÐµÑ€ÑˆÐ¾Ð³Ð¾ натиÑÐºÐ°Ð½Ð½Ñ Â«!» два центральних процеÑора буде поєднано Ñ– показано Ñк «0-1, 2-3, ...» заміÑÑ‚ÑŒ звичайного «%Прц0, %Прц1, %Прц2, %Прц3, ...». ПіÑÐ»Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð³Ð¾ натиÑÐºÐ°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸-перемикача «!» буде поєднано чотири процеÑори Ñ– показано дані Ñк «0-3, 4-7, ...». Далі, третє натиÑÐºÐ°Ð½Ð½Ñ Â«!» поєднає віÑім процеÑорів, покаже «0-7, 8-15, ...» тощо."
+
+#. type: Plain text
+#: ../man/top.1:1751
+msgid "Such progression continues until individual \\*(Pus are again displayed and impacts both the `1' and `4' toggles (one or multiple columns). Use the `=' command to exit B<Combine Cpus> mode."
+msgstr "ÐŸÐ¾Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ñ‚Ñ€Ð¸Ð²Ð°Ñ‚Ð¸Ð¼Ðµ, аж доки програма не повернетьÑÑ Ð´Ð¾ показу окремих процеÑорів, Ñ– ÑтоÑуватиметьÑÑ Ð¾Ð±Ð¾Ñ… перемикачів, «1» Ñ– «4» (одного або декількох Ñтовпчиків). СкориÑтайтеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ «=», щоб вийти з режиму B<Ð¿Ð¾Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑорів>."
+
+#. type: Plain text
+#: ../man/top.1:1757
+msgid "\\*(NT If the entire \\*(SA has been toggled \\*F for any window, you would be left with just theB< message line>. In that way, you will have maximized available task rows but (temporarily) sacrificed the program name in \\*(FM or the \\*(CW name when in \\*(AM."
+msgstr "\\*(NT Якщо уÑÑ– облаÑÑ‚ÑŒ резюме було вимкнено Ð´Ð»Ñ ÑкогоÑÑŒ з вікон, ви зможете бачити лише B<Ñ€Ñдок повідомлень>. У такому режимі ви бачитимете макÑимум доÑтупних Ñ€Ñдків завдань, але (тимчаÑово) не побачите назви програми у повноекранному режимі або назви «поточного» вікна у режимі альтернативного показу."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1759
+#, no-wrap
+msgid "4c. TASK AREA Commands"
+msgstr "4в. КОМÐÐДИ ОБЛÐСТІ ЗÐВДÐÐЬ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1762
+msgid "The \\*(TA \\*(CIs areB< always> available in \\*(FM."
+msgstr "Інтерактивні команди облаÑÑ‚Ñ– завдань B<завжди> доÑтупні у повноекранному режимі."
+
+#. type: Plain text
+#: ../man/top.1:1765
+msgid "The \\*(TA \\*(CIs areB< never available> in \\*(AMI< if> the \\*(CW's \\*(TD has been toggled \\*F (\\*(Xt 5. ALTERNATE-DISPLAY Provisions)."
+msgstr "Інтерактивні команди облаÑÑ‚Ñ– завдань B<ніколи не доÑтупні> у режимі альтернативного показу, Ñкщо показ завдань «поточного» вікна \\*F (див. розділ 5. ПОЛОЖЕÐÐЯ ÐЛЬТЕРÐÐТИВÐОГО ПОКÐЗУ)."
+
+#. type: Plain text
+#: ../man/top.1:1769
+msgid "B<APPEARANCE> of \\*(TW"
+msgstr "B<ВИГЛЯД> \\*(TW"
+
+#. type: TP
+#: ../man/top.1:1770
+#, no-wrap
+msgid "\\ \\ \\ B<J>\\ \\ :I<Justify-Numeric-Columns> toggle "
+msgstr "\\ \\ \\ B<J>\\ \\ :I<Перемикач Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñ‡Ð¸Ñлових Ñтовпчиків> "
+
+#. type: Plain text
+#: ../man/top.1:1776
+msgid "Alternates between right-justified (the default) and left-justified numeric data. If the numeric data completely fills the available column, this \\*(CT may impact the column header only."
+msgstr "Перемикає між вирівнюваннÑм праворуч (типовий режим) та вирівнюваннÑм ліворуч чиÑлових даних. Якщо чиÑлові дані повніÑÑ‚ÑŽ заповнюють доÑтупний у Ñтовпчику проÑÑ‚Ñ–Ñ€, цей командний перемикач ÑтоÑуватиметьÑÑ Ð»Ð¸ÑˆÐµ заголовка Ñтовпчика."
+
+#. type: TP
+#: ../man/top.1:1777
+#, no-wrap
+msgid "\\ \\ \\ B<j>\\ \\ :I<Justify-Character-Columns> toggle "
+msgstr "\\ \\ \\ B<j>\\ \\ :I<Перемикач Ð²Ð¸Ñ€Ñ–Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñимвольних Ñтовпчиків> "
+
+#. type: Plain text
+#: ../man/top.1:1783
+msgid "Alternates between left-justified (the default) and right-justified character data. If the character data completely fills the available column, this \\*(CT may impact the column header only."
+msgstr "Перемикає між вирівнюваннÑм ліворуч (типовий режим) та вирівнюваннÑм праворуч Ñимвольних даних. Якщо Ñимвольні дані повніÑÑ‚ÑŽ заповнюють доÑтупний у Ñтовпчику проÑÑ‚Ñ–Ñ€, цей командний перемикач ÑтоÑуватиметьÑÑ Ð»Ð¸ÑˆÐµ заголовка Ñтовпчика."
+
+#. type: Plain text
+#: ../man/top.1:1788
+msgid "The following commands will also be influenced by the state of the global `B' (bold enable) toggle."
+msgstr "Ðа наведені нижче команди також впливає Ñтан загального перемикача «B» (Ð²Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð½Ð°Ð¿Ñ–Ð²Ð¶Ð¸Ñ€Ð½Ð¾Ð³Ð¾)."
+
+#. type: TP
+#: ../man/top.1:1790
+#, no-wrap
+msgid "\\ \\ \\ B<b>\\ \\ :I<Bold/Reverse> toggle "
+msgstr "\\ \\ \\ B<b>\\ \\ :I<Перемикач напівжирний/звичайний> "
+
+#. type: Plain text
+#: ../man/top.1:1795
+msgid "This command will impact how the `x' and `y' toggles are displayed. It may also impact the \\*(SA when a bar graph has been selected for \\*(Pu states or memory usage via the `t' or `m' toggles."
+msgstr "Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° впливає на те, Ñк буде показано перемикачі «x» та «y». Вона також може вплинути на облаÑÑ‚ÑŒ резюме, Ñкщо Ð´Ð»Ñ Ñтанів процеÑора або викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– було вибрано Ñтовпчикову діаграму за допомогою перемикача «t» або «m»."
+
+#. type: TP
+#: ../man/top.1:1796
+#, no-wrap
+msgid "\\ \\ \\ B<x>\\ \\ :I<Column-Highlight> toggle "
+msgstr "\\ \\ \\ B<x>\\ \\ :I<Перемикач підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ñтовпчиків> "
+
+#. type: Plain text
+#: ../man/top.1:1804
+#, no-wrap
+msgid ""
+"Changes highlighting for the current sort field.\n"
+"If you forget which field is being sorted this command can serve as a quick\n"
+"visual reminder, providing the sort field is being displayed.\n"
+"The sort field mightI< not> be visible because:\n"
+" 1) there is insufficientI< Screen Width >\n"
+" 2) the `f' \\*(CI turned it \\*F\n"
+msgstr ""
+"Змінює підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ Ð¿Ð¾Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑдковуваннÑ.\n"
+"Якщо ви забули, Ñке поле викориÑтано Ð´Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑдковуваннÑ, цією командою можна ÑкориÑтатиÑÑ,\n"
+"Ñк швидким візуальним нагадуваннÑм, Ñке показує поле упорÑдковуваннÑ.\n"
+"Поле упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ðµ бути I<невидимим>, оÑкільки:\n"
+" 1) недоÑÑ‚Ð°Ñ‚Ð½Ñ I<ширина екрана>\n"
+" 2) його \\*F інтерактивною командою «f»\n"
+
+#. type: TP
+#: ../man/top.1:1805
+#, no-wrap
+msgid "\\ \\ \\ B<y>\\ \\ :I<Row-Highlight> toggle "
+msgstr "\\ \\ \\ B<y>\\ \\ :I<Перемикач підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ñдків> "
+
+#. type: Plain text
+#: ../man/top.1:1810
+msgid "Changes highlighting for \"running\" tasks. For additional insight into this task state, \\*(Xt 3a. DESCRIPTIONS of Fields, the `S' field (Process Status)."
+msgstr "Змінює підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Â«Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ð¸Ñ…Â» завдань. Щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про цей Ñтан завдань, див. розділ 3а. ОПИСИ ПОЛІВ, поле «S» (Ñтан процеÑів)."
+
+#. type: Plain text
+#: ../man/top.1:1813
+msgid "Use of this provision provides important insight into your system's health. The only costs will be a few additional tty escape sequences."
+msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ перемикача надає важливі дані щодо Ñтану вашої ÑиÑтеми. Єдиною платою за це Ñ” декілька додаткових екранованих поÑлідовноÑтей у терміналі."
+
+#. type: TP
+#: ../man/top.1:1814
+#, no-wrap
+msgid "\\ \\ \\ B<z>\\ \\ :I<Color/Monochrome> toggle "
+msgstr "\\ \\ \\ B<z>\\ \\ :I<Перемикач колір/монохроматичніÑÑ‚ÑŒ> "
+
+#. type: Plain text
+#: ../man/top.1:1820
+msgid "Switches the \\*(CW between your last used color scheme and the older form of black-on-white or white-on-black. This command will alterB< both> the \\*(SA and \\*(TA but does not affect the state of the `x', `y' or `b' toggles."
+msgstr "Перемикає «поточне» вікно між вашою оÑтанньою викориÑтаною Ñхемою кольорів та Ñтарою формою чорного текÑту на білому тлі або білого текÑту на чорному тлі. Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° ÑтоÑуєтьÑÑ B<одрдазу> облаÑÑ‚Ñ– резюме Ñ– облаÑÑ‚Ñ– завдань, але не впливає на Ñтан перемикачів «x», «y» та «b»."
+
+#. type: Plain text
+#: ../man/top.1:1824
+msgid "B<CONTENT> of \\*(TW"
+msgstr "B<ВМІСТ> вікна завдань"
+
+#. type: TP
+#: ../man/top.1:1825
+#, no-wrap
+msgid "\\ \\ \\ B<c>\\ \\ :I<Command-Line/Program-Name> toggle "
+msgstr "\\ \\ \\ B<c>\\ \\ :I<Перемикач Ñ€Ñдок команди/назва програми> "
+
+#. type: Plain text
+#: ../man/top.1:1830
+msgid "This command will be honored whether or not the COMMAND column is currently visible. Later, should that field come into view, the change you applied will be seen."
+msgstr "Цю команду буде враховано незалежно від того, чи Ñ” Ñтовпчик COMMAND видимим. Пізніше, Ñкщо це поле Ñтане видимим, ви зможете побачити наÑлідки внеÑених змін."
+
+#. type: TP
+#: ../man/top.1:1831
+#, no-wrap
+msgid "\\ \\ \\ B<F>\\ \\ :I<Maintain-Parent-Focus> toggle "
+msgstr "\\ \\ \\ B<F>\\ \\ :I<Перемикач Ñупроводу фокуÑом батьківÑького процеÑу> "
+
+#. type: Plain text
+#: ../man/top.1:1836
+msgid "When in forest view mode, this key serves as a toggle to retain focus on a target task, presumably one with forked children. If forest view mode is \\*F this key has no effect."
+msgstr "У режимі ліÑу Ñ†Ñ ÐºÐ»Ð°Ð²Ñ–ÑˆÐ° Ñлугує Ñк перемикач Ð´Ð»Ñ ÑƒÑ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ„Ð¾ÐºÑƒÑа на завданні призначеннÑ, можливо, із відгалуженими дочірніми процеÑами. У режимі переглÑду ліÑу вимкнено, Ñ†Ñ ÐºÐ»Ð°Ð²Ñ–ÑˆÐ° ні на що не впливатиме."
+
+#. type: Plain text
+#: ../man/top.1:1841
+msgid "The toggle is applied to the first (topmost) process in the \\*(CW. Once established, that task is always displayed as the first (topmost) process along with its forked children. All other processes will be suppressed."
+msgstr "Перемикач буде заÑтоÑовано до першого (верхнього) Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñƒ «поточному» вікні. ПіÑÐ»Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‚Ð°ÐºÐµ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð¶Ð´Ð¸ буде показано Ñк перший (верхній) Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ€Ð°Ð·Ð¾Ð¼ із Ñвоїми відгалуженими дочірніми процеÑами. Показ уÑÑ–Ñ… інших процеÑів буде придушено."
+
+#. type: Plain text
+#: ../man/top.1:1844
+msgid "\\*(NT keys like `i' (idle tasks), `n' (max tasks), `v' (hide children) and User/Other filtering remain accessible and can impact what is displayed."
+msgstr "\\*(NT можна буде кориÑтуватиÑÑ ÐºÐ»Ð°Ð²Ñ–ÑˆÐ°Ð¼Ð¸ «i» (бездіÑльні завданнÑ), «n» (макÑимальні завданнÑ), «v» (приховати дочірні) та фільтруваннÑм за кориÑтувачем та іншими кориÑтувачами; ці команди можуть впливати на те, що буде показано."
+
+#. type: TP
+#: ../man/top.1:1845 ../man/top.1:2000
+#, no-wrap
+msgid "\\ \\ \\ B<f>\\ \\ :I<Fields-Management >"
+msgstr "\\ \\ \\ B<f>\\ \\ :I<ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð»Ñми >"
+
+#. type: Plain text
+#: ../man/top.1:1851
+msgid "This key displays a separate screen where you can change which fields are displayed, their order and also designate the sort field. For additional information on this \\*(CI \\*(Xt 3b. MANAGING Fields."
+msgstr "ÐатиÑÐºÐ°Ð½Ð½Ñ Ñ†Ð¸Ñ… клавіш призведе до показу окремого екрана, на Ñкому ви зможете змінити перелік показаних полів, їхній порÑдок та вказати поле Ð´Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑдковуваннÑ. Докладніші відомоÑÑ‚Ñ– щодо цих інтерактивних команд можна знайти у розділі 3б. КЕРУВÐÐÐЯ ПОЛЯМИ."
+
+#. type: TP
+#: ../man/top.1:1852
+#, no-wrap
+msgid "\\ \\ \\ B<O> | B<o>\\ \\ :I<Other-Filtering >"
+msgstr "\\ \\ \\ B<O> | B<o>\\ \\ :I<Інше Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ >"
+
+#. type: Plain text
+#: ../man/top.1:1858
+msgid "You will be prompted for the selection criteria which then determines which tasks will be shown in the \\*(CW. Your criteria can be made case sensitive or case can be ignored. And you determine if \\*(We should include or exclude matching tasks."
+msgstr "Програма попроÑить Ð²Ð°Ñ Ð²Ð¸Ð±Ñ€Ð°Ñ‚Ð¸ критерій, Ñкий визначить, Ñкі Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ показано у «поточному» вікні. У вашому критерії можна враховувати регіÑÑ‚Ñ€ Ñимволів або не враховувати регіÑÑ‚Ñ€ Ñимволів. Ви також можете визначити, має \\*(We включати чи виключати відповідні завданнÑ."
+
+#. type: Plain text
+#: ../man/top.1:1861
+msgid "\\*(XT 5e. FILTERING in a window for details on these and additional related \\*(CIs."
+msgstr "\\*Див. розділ 5д. ФІЛЬТРУВÐÐÐЯ У ВІКÐІ, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про ці та додаткові пов'Ñзані інтерактивні команди."
+
+#. type: TP
+#: ../man/top.1:1862
+#, no-wrap
+msgid "\\ \\ \\ B<S>\\ \\ :I<Cumulative-Time-Mode> toggle "
+msgstr "\\ \\ \\ B<S>\\ \\ :I<Перемикач режиму Ð½Ð°ÐºÐ¾Ð¿Ð¸Ñ‡ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу> "
+
+#. type: Plain text
+#: ../man/top.1:1866
+msgid "When Cumulative mode is \\*O, each process is listed with the \\*(Pu time that it and its dead children have used."
+msgstr "Якщо режим накопиченого чаÑу увімкнено, кожен Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±ÑƒÐ´Ðµ показано із чаÑом центрального процеÑора, Ñкий викориÑтано Ñамим процеÑом Ñ– уÑіма його завершеними дочірніми процеÑами."
+
+#. type: Plain text
+#: ../man/top.1:1873
+msgid "When \\*F, programs that fork into many separate tasks will appear less demanding. For programs like `init' or a shell this is appropriate but for others, like compilers, perhaps not. Experiment with two \\*(TWs sharing the same sort field but with different `S' states and see which representation you prefer."
+msgstr "Якщо \\*F, програми, Ñкі розгалужуютьÑÑ Ð½Ð° багато окремих завдань здаватимутьÑÑ Ð¼ÐµÐ½Ñˆ вимогливими. Ð”Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼, подібних до «init» або командної оболонки, це Ñ” прийнÑтним, але Ð´Ð»Ñ Ñ–Ð½ÑˆÐ¸Ñ… програм, подібних до компілÑторів, ймовірно, ні. Спробуйте поекÑпериментувати з двома вікнами завдань із однаковим полем упорÑдковуваннÑ, але різними Ñтанами «S» Ñ– виберіть потрібне вам предÑтавленнÑ."
+
+#. type: Plain text
+#: ../man/top.1:1877
+msgid "After issuing this command, you'll be informed of the new state of this toggle. If you wish to know in advance whether or not Cumulative mode is in effect, simply ask for help and view the window summary on the second line."
+msgstr "ПіÑÐ»Ñ Ñ‚Ð¾Ð³Ð¾, Ñк буде віддано цю команду, програма проінформує Ð²Ð°Ñ Ñ‰Ð¾Ð´Ð¾ нового Ñтану цього перемикача. Якщо вам потрібно знати, чи задіÑно накопичувальний режим, проÑто віддайте команду показу довідки Ñ– зверніть увагу на другий Ñ€Ñдок у резюме вікна."
+
+#. type: TP
+#: ../man/top.1:1878
+#, no-wrap
+msgid "\\ \\ \\ B<U> | B<u>\\ \\ :I<Show-Specific-User-Only >"
+msgstr "\\ \\ \\ B<U> | B<u>\\ \\ :I<Показати лише Ð´Ð»Ñ Ð¿ÐµÐ²Ð½Ð¾Ð³Ð¾ кориÑтувача >"
+
+#. type: Plain text
+#: ../man/top.1:1883
+msgid "You will be prompted for theB< uid> orB< name> of the user to display. The -u option matches on B< effective> user whereas the -U option matches onB< any> user (real, effective, saved, or filesystem)."
+msgstr "Програма попроÑить Ð²Ð°Ñ Ð²Ð²ÐµÑти B<uid> або B<ім'Ñ> кориÑтувача, дані Ñкого Ñлід показати. Показати лише процеÑи із вказаним ідентифікатором кориÑтувача або іменем кориÑтувача Параметр «-u» ÑтоÑуєтьÑÑ B<ефективного> кориÑтувача, а параметр «-U» ÑтоÑуєтьÑÑ I<будь-Ñкого> кориÑтувача (Ñправжнього, ефективного, збереженого або кориÑтувача файлової ÑиÑтеми)."
+
+#. type: Plain text
+#: ../man/top.1:1888
+msgid "Thereafter, in that \\*(TW only matching users will be shown, or possibly no processes will be shown. Prepending an exclamation point (`!') to the user id or name instructs \\*(We to display only processes with users not matching the one provided."
+msgstr "З цього моменту у цьому вікні завдань буде показано далі лише відповідних кориÑтувачів або взагалі не буде показано процеÑів. Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð½Ð°ÐºÑƒ оклику («!») до ідентифікатора кориÑтувача або імені наказує \\*(We показати лише процеÑи кориÑтувачів, Ñкі не збігаютьÑÑ Ñ–Ð· вказаним."
+
+#. type: Plain text
+#: ../man/top.1:1892
+msgid "Different \\*(TWs can be used to filter different users. Later, if you wish to monitor all users again in the \\*(CW, re-issue this command but just press E<lt>EnterE<gt> at the prompt."
+msgstr "Ð”Ð»Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… за різними кориÑтувачами можна ÑкориÑтатиÑÑ Ñ€Ñ–Ð·Ð½Ð¸Ð¼Ð¸ вікнами завдань. Пізніше, Ñкщо ви захочете знову побачити дані ÑпоÑÑ‚ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð° уÑіма кориÑтувачами у «поточному» вікні, знову віддайте цю команду, але проÑто натиÑніть E<lt>EnterE<gt> у відповідь на запит."
+
+#. type: TP
+#: ../man/top.1:1893
+#, no-wrap
+msgid "\\ \\ \\ B<V>\\ \\ :I<Forest-View-Mode> toggle "
+msgstr "\\ \\ \\ B<V>\\ \\ :I<Перемикач режиму переглÑду ліÑу> "
+
+#. type: Plain text
+#: ../man/top.1:1900
+msgid "In this mode, processes are reordered according to their parents and the layout of the COMMAND column resembles that of a tree. In forest view mode it is still possible to toggle between program name and command line (\\*(Xc `c' \\*(CI) or between processes and threads (\\*(Xc `H' \\*(CI)."
+msgstr "У цьому режимі процеÑи буде переупорÑдковано за їхніми батьківÑькими процеÑами, а ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñтовпчика COMMAND нагадуватиме дерево. У режимі переглÑду ліÑу можна буде перемикатиÑÑ Ð¼Ñ–Ð¶ показом назви програми Ñ– Ñ€Ñдка команди (див. інтерактивну команду «c») або між показом процеÑів Ñ– гілок (див. інтерактивну команду «H»)."
+
+#. type: Plain text
+#: ../man/top.1:1904
+msgid "\\*(NT Typing any key affecting the sort order will exit forest view mode in the \\*(CW. \\*(XT 4c. TASK AREA Commands, SORTING for information on those keys."
+msgstr "\\*(NT ÐатиÑÐºÐ°Ð½Ð½Ñ Ð±ÑƒÐ´ÑŒ-Ñкої клавіші, Ñка впливає на порÑдок ÑортуваннÑ, призведе до виходу з режиму переглÑду ліÑу у «поточному» вікні. Див. 4в. КОМÐÐДИ ОБЛÐСТІ ЗÐВДÐÐЬ, УПОРЯДКОВУВÐÐÐЯ, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про ці клавіші."
+
+#. type: TP
+#: ../man/top.1:1905
+#, no-wrap
+msgid "\\ \\ \\ B<v>\\ \\ :I<Hide/Show-Children> toggle "
+msgstr "\\ \\ \\ B<v>\\ \\ :I<Перемикач приховуваннÑ/показу дочірніх процеÑів> "
+
+#. type: Plain text
+#: ../man/top.1:1909
+msgid "When in forest view mode, this key serves as a toggle to collapse or expand the children of a parent."
+msgstr "У режимі ліÑу Ñ†Ñ ÐºÐ»Ð°Ð²Ñ–ÑˆÐ° Ñлугує Ñк перемикач Ð´Ð»Ñ Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð´Ð¾Ñ‡Ñ–Ñ€Ð½Ñ–Ñ… запиÑів батьківÑького запиÑу."
+
+#. type: Plain text
+#: ../man/top.1:1913
+msgid "The toggle is applied against the first (topmost) process in the \\*(CW. \\*(XT 5c. SCROLLING a Window for additional information regarding vertical scrolling."
+msgstr "Перемикач буде заÑтоÑовано до першого (найвищого у ÑпиÑку) процеÑу у «поточному» вікні. Див. 5в. ГОРТÐÐÐЯ ВІКÐÐ, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про вертикальне гортаннÑ."
+
+#. type: Plain text
+#: ../man/top.1:1916
+msgid "If the target process has not forked any children, this key has no effect. It also has no effect when not in forest view mode."
+msgstr "Якщо від цільового процеÑу не було відгалужено жодних дочірніх, Ñ†Ñ ÐºÐ»Ð°Ð²Ñ–ÑˆÐ° ні на що не вплине. Також вона не працює у режимах, відмінних від режиму показу ліÑу."
+
+#. type: TP
+#: ../man/top.1:1917
+#, no-wrap
+msgid "\\ \\ B<^E>\\ \\ :I<Scale-CPU-Time-fields> (Ctrl key + `e')"
+msgstr "\\ \\ B<^E>\\ \\ :I<МаÑштабувати Ð¿Ð¾Ð»Ñ Ñ‡Ð°Ñу процеÑора> (клавіша Ctrl + «E»)"
+
+#. type: Plain text
+#: ../man/top.1:1924
+msgid "The `time' fields are normally displayed with the greatest precision their widths permit. This toggle reduces that precision until it wraps. It also illustrates the scaling those fields I<might> experience automatically, which usually depends on how long the system runs."
+msgstr "Дані у полÑÑ… чаÑу, зазвичай, буде показано із найвищою доÑтупною точніÑÑ‚ÑŽ. За допомогою цього перемикача можна змінити точніÑÑ‚ÑŒ так, щоб дані вміÑтилиÑÑ Ñƒ поле. Він також ілюÑтрує маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð»Ñ–Ð², Ñке I<могло б> бути вÑтановлено автоматично, залежно від того, наÑкільки довго працює ÑиÑтема."
+
+#. type: Plain text
+#: ../man/top.1:1927
+msgid "For example, if `MMM:SS.hh' is shown, each ^E keystroke would change it to: `MM:SS', `Hours,MM', `Days+Hours' and finally `Weeks+Days'."
+msgstr "Ðаприклад, Ñкщо показано «ХХХ:СС.дд», поÑлідовні натиÑÐºÐ°Ð½Ð½Ñ ^E змінюватимуть формат показу так: «ХХ:СС», «Години,ХХ», «Дні+Години» Ñ–, нарешті, «Тижні+Дні»."
+
+#. type: Plain text
+#: ../man/top.1:1929
+msgid "Not all time fields are subject to the full range of such scaling."
+msgstr "Такому маÑштабуванню до повного діапазону підлÑгають не уÑÑ– Ð¿Ð¾Ð»Ñ Ñ‡Ð°Ñу."
+
+#. type: Plain text
+#: ../man/top.1:1933
+msgid "B<SIZE> of \\*(TW"
+msgstr "B<РОЗМІР> \\*(TW"
+
+#. type: TP
+#: ../man/top.1:1934
+#, no-wrap
+msgid "\\ \\ \\ B<i>\\ \\ :I<Idle-Process> toggle "
+msgstr "\\ \\ \\ B<i>\\ \\ :I<Перемикач бездіÑльних процеÑів> "
+
+#. type: Plain text
+#: ../man/top.1:1942
+msgid "Displays all tasks or just active tasks. When this toggle is \\*F, tasks that have not used any \\*(PU since the last update will not be displayed. However, due to the granularity of the %CPU and TIME+ fields, some processes may still be displayed thatI< appear> to have usedI< no> \\*(PU."
+msgstr "Перемикає програму між показом уÑÑ–Ñ… завдань або лише активних завдань. Якщо цей перемикач \\*F, завданнÑ, Ñкі не викориÑтовували жодного процеÑора з моменту оÑтаннього оновленнÑ, не буде показано. Втім, через деталізацію полів %CPU Ñ– TIME+, програма може показувати пункти деÑких процеÑів, Ñкі, Ñк може I<здатиÑÑ>, I<не> викориÑтовують процеÑор."
+
+#. type: Plain text
+#: ../man/top.1:1945
+msgid "If this command is applied to the last \\*(TD when in \\*(AM, then it will not affect the window's size, as all prior \\*(TDs will have already been painted."
+msgstr "Якщо цю команду заÑтоÑовано до оÑтаннього показу команд у режимі альтернативного показу, вона не впливатиме на розмір вікна, оÑкільки уÑÑ– попередні покази команд уже буде намальовано."
+
+#. type: TP
+#: ../man/top.1:1946
+#, no-wrap
+msgid "\\ \\ \\ B<n> | B<#>\\ \\ :I<Set-Maximum-Tasks >"
+msgstr "\\ \\ \\ B<n> | B<#>\\ \\ :I<Ð’Ñтановити макÑимальну кількіÑÑ‚ÑŒ завдань>"
+
+#. type: Plain text
+#: ../man/top.1:1950
+msgid "You will be prompted to enter the number of tasks to display. The lessor of your number and available screen rows will be used."
+msgstr "Програма попроÑить Ð²Ð°Ñ Ð²Ð²ÐµÑти кількіÑÑ‚ÑŒ завдань, Ñкі Ñлід показати. Буде викориÑтано менше зі значень — вказаного вами чиÑла Ñ– доÑтупної кількоÑÑ‚Ñ– Ñ€Ñдків на екрані."
+
+#. type: Plain text
+#: ../man/top.1:1955
+msgid "When used in \\*(AM, this is the command that gives you precise control over the size of each currently visible \\*(TD, except for the very last. It will not affect the last window's size, as all prior \\*(TDs will have already been painted."
+msgstr "Якщо команду викориÑтано у режимі альтернативного показу, вона надаÑÑ‚ÑŒ вам можливіÑÑ‚ÑŒ точно визначити розмір кожної із видимих панелей показу завдань, окрім оÑтанньої. Вона не впливає на розмір оÑтаннього вікна, оÑкільки уÑÑ– попередні панелі показу завдань вже буде намальовано."
+
+#. type: Plain text
+#: ../man/top.1:1958
+msgid "\\*(NT If you wish to increase the size of the last visible \\*(TD when in \\*(AM, simply decrease the size of the \\*(TD(s) above it."
+msgstr "\\*(NT Якщо вам потрібно збільшити розмір оÑтанньої видимої панелі показу завдань у режимі альтернативного показу, проÑто зменшіть розмір панелей показу завдань над нею."
+
+#. type: Plain text
+#: ../man/top.1:1962
+msgid "B<SORTING> of \\*(TW"
+msgstr "B<УПОРЯДКУВÐÐÐЯ> \\*(TW"
+
+#. type: Plain text
+#: ../man/top.1:1967
+msgid "For compatibility, this \\*(We supports most of the former \\*(We sort keys. Since this is primarily a service to former \\*(We users, these commands do not appear on any help screen."
+msgstr "З метою Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ ÑуміÑноÑÑ‚Ñ– у цій верÑÑ–Ñ— \\*(We передбачено підтримку уÑÑ–Ñ… клавіш упорÑдковуваннÑ, Ñкі було реалізовано у попередніх верÑÑ–ÑÑ… \\*(We. ОÑкільки ці клавіші призначено, в оÑновному, Ð´Ð»Ñ Ð´Ð°Ð²Ð½Ñ–Ñ… кориÑтувачів \\*(We, відповідні команди не опиÑано на жодному з екранів довідки."
+
+#. type: Plain text
+#: ../man/top.1:1974
+#, no-wrap
+msgid ""
+" I< command sorted-field supported >\n"
+" A start time (non-display) B< No >\n"
+" M %MEM Yes\n"
+" N PID Yes\n"
+" P %CPU Yes\n"
+" T TIME+ Yes\n"
+msgstr ""
+" I< комаанда поле-упорÑÐ´ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ° >\n"
+" A момент запуÑку (без показу) B< ÐÑ– >\n"
+" M %MEM Так\n"
+" N PID Так\n"
+" P %CPU Так\n"
+" T TIME+ Так\n"
+
+#. type: Plain text
+#: ../man/top.1:1979
+msgid "Before using any of the following sort provisions, \\*(We suggests that you temporarily turn on column highlighting using the `x' \\*(CI. That will help ensure that the actual sort environment matches your intent."
+msgstr "Перш ніж кориÑтуватиÑÑ Ð±ÑƒÐ´ÑŒ-Ñкими із вказаних нижче варіантів упорÑдковуваннÑ, \\*(We запропонує вам тимчаÑово увімкнути підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ñтовпчиків за допомогою інтерактивної команди «x». Це допоможе вам переконатиÑÑ, що Ñправжнє Ñередовище упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°Ñ” вашим очікуваннÑм."
+
+#. type: Plain text
+#: ../man/top.1:1985
+#, no-wrap
+msgid ""
+"The following \\*(CIs willB< only> be honored when the current sort field\n"
+"isB< visible>.\n"
+"The sort field mightI< not> be visible because:\n"
+" 1) there is insufficientI< Screen Width >\n"
+" 2) the `f' \\*(CI turned it \\*F\n"
+msgstr ""
+"Вказані нижче інтерактивні команди буде враховано, B<лише> Ñкщо поточне поле\n"
+"упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ” B<видимим>.\n"
+"Поле упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ðµ бути I<невидимим> з таких причин:\n"
+" 1) недоÑÑ‚Ð°Ñ‚Ð½Ñ I<ширина екрана>\n"
+" 2) інтерактивна команда «f» вимкнула показ полÑ\n"
+
+#. type: TP
+#: ../man/top.1:1986
+#, no-wrap
+msgid "\\ \\ \\ B<E<lt>>\\ \\ :I<Move-Sort-Field-Left >"
+msgstr "\\ \\ \\ B<E<lt>>\\ \\ :I<ПереÑунути поле упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð»Ñ–Ð²Ð¾Ñ€ÑƒÑ‡>"
+
+#. type: Plain text
+#: ../man/top.1:1990
+msgid "Moves the sort column to the left unless the current sort field is the first field being displayed."
+msgstr "ПереÑуває Ñтовпчик упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð»Ñ–Ð²Ð¾Ñ€ÑƒÑ‡, Ñкщо поточне поле упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ Ñ” першим показаним полем."
+
+#. type: TP
+#: ../man/top.1:1991
+#, no-wrap
+msgid "\\ \\ \\ B<E<gt>>\\ \\ :I<Move-Sort-Field-Right >"
+msgstr "\\ \\ \\ B<E<gt>>\\ \\ :I<ПереÑунути поле упорÑÐ´ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¾Ñ€ÑƒÑ‡ >"
+
+#. type: Plain text
+#: ../man/top.1:1995
+msgid "Moves the sort column to the right unless the current sort field is the last field being displayed."
+msgstr "ПереÑуває Ñтовпчик упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¾Ñ€ÑƒÑ‡, Ñкщо поточне поле упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ Ñ” оÑтаннім показаним полем."
+
+#. type: Plain text
+#: ../man/top.1:1999
+msgid "The following \\*(CIs willB< always> be honored whether or not the current sort field is visible."
+msgstr "Вказані нижче інтерактивні команди буде B<завжди> враховано, незалежно від того, чи Ñ” видимим поточне поле упорÑдковуваннÑ."
+
+#. type: Plain text
+#: ../man/top.1:2006
+msgid "This key displays a separate screen where you can change which field is used as the sort column, among other functions. This can be a convenient way to simply verify the current sort field, when running \\*(We with column highlighting turned \\*F."
+msgstr "За допомогою цих клавіш можна відкрити окремий екран, за допомогою Ñкого, окрім іншого, ви можете змінити, Ñке з полів буде викориÑтано Ð´Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑдковуваннÑ. Це може бути зручним ÑпоÑобом перевірити, Ñке з полів Ñ” полем Ð´Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑдковуваннÑ, Ñкщо \\*(We було запущено із вимкненим підÑвічуваннÑм Ñтовпчиків."
+
+#. type: TP
+#: ../man/top.1:2007
+#, no-wrap
+msgid "\\ \\ \\ B<R>\\ \\ :I<Reverse/Normal-Sort-Field> toggle "
+msgstr "\\ \\ \\ B<R>\\ \\ :I<Перемикач оберненого/звичайного упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° полем> "
+
+#. type: Plain text
+#: ../man/top.1:2010
+msgid "Using this \\*(CI you can alternate between high-to-low and low-to-high sorts."
+msgstr "За допомогою цієї інтерактивної команди ви можете перемикатиÑÑ Ð¼Ñ–Ð¶ режимами «від більшого до меншого» та «від меншого до більшого»."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2012
+#, no-wrap
+msgid "4d. COLOR Mapping"
+msgstr "4г. ПРИВ'ЯЗКРКОЛЬОРІВ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2017
+msgid "When you issue the `Z' \\*(CI, you will be presented with a separate screen. That screen can be used to change the colors in just the \\*(CW or in all four windows before returning to the \\*(We display."
+msgstr "Якщо ви віддаÑте інтерактивну команду «Z», програма покаже вам окремий екран. Цим екраном можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ кольорів лише у «поточному» вікні або в уÑÑ–Ñ… чотирьох вікнах перед поверненнÑм до показу даних \\*(We."
+
+#. type: Plain text
+#: ../man/top.1:2020
+msgid "The following \\*(CIs are available."
+msgstr "ДоÑтупними Ñ” вказані нижче інтерактивні команди."
+
+#. type: Plain text
+#: ../man/top.1:2031
+#, no-wrap
+msgid ""
+" B<4> upper case letters to select aB< target >\n"
+" B<8> numbers to select aB< color >\n"
+" normal toggles available \n"
+" B :bold disable/enable\n"
+" b :running tasks \"bold\"/reverse\n"
+" z :color/mono\n"
+" other commands available \n"
+" a/w :apply, then go to next/prior\n"
+" E<lt>EnterE<gt> :apply and exit\n"
+" q :abandon current changes and exit\n"
+msgstr ""
+" B<4> літери верхнього регіÑтру Ð´Ð»Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ B<цілі>\n"
+" B<8> цифри Ð´Ð»Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ B<кольору>\n"
+" доÑтупні звичайні перемикачі\n"
+" B :вимиканнÑ/Ð²Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð½Ð°Ð¿Ñ–Ð¶Ð¸Ñ€Ð½Ð¾Ð³Ð¾\n"
+" b :«напівжирні»/звичайні запущені завданнÑ\n"
+" z :колір/монохроматичніÑÑ‚ÑŒ\n"
+" доÑтупні інші команди\n"
+" a/w :заÑтоÑувати, потім перейти до наÑтупного/попереднього\n"
+" E<lt>EnterE<gt> :заÑтоÑувати Ñ– вийти\n"
+" q :відкинути поточні зміни і вийти\n"
+
+#. type: Plain text
+#: ../man/top.1:2037
+msgid "If you use `a' or `w' to cycle the targeted window, you will have applied the color scheme that was displayed when you left that window. You can, of course, easily return to any window and reapply different colors or turn colors \\*F completely with the `z' toggle."
+msgstr "Якщо ви ÑкориÑтаєтеÑÑ Â«a» або «w» Ð´Ð»Ñ Ñ†Ð¸ÐºÐ»Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ переходу вікном призначеннÑ, ви матимете заÑтоÑовану Ñхему кольорів, Ñку було показано, коли ви полишите це вікно. Ви можете, звичайно, без проблем повернутиÑÑ Ð´Ð¾ будь-Ñкого вікна Ñ– повторно заÑтоÑувати різні кольори або повніÑÑ‚ÑŽ вимкнути кольори за допомогою перемикача «z»."
+
+#. type: Plain text
+#: ../man/top.1:2042
+msgid "The Color Mapping screen can also be used to change the \\*(CG in either \\*(FM or \\*(AM. Whatever was targeted when `q' or E<lt>EnterE<gt> was pressed will be made current as you return to the \\*(We display."
+msgstr "Крім того, екраном прив'Ñзки кольорів можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ «поточного» вікна або групи полів у повноекранному режимі або режимі альтернативного показу. Щоб не було ціллю при натиÑканні «q» або E<lt>EnterE<gt>, його буде зроблено поточним, коли ви повернетеÑÑ Ð´Ð¾ показу даних \\*(We."
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2044
+#, no-wrap
+msgid "5. ALTERNATE-DISPLAY Provisions"
+msgstr "5. ПОЛОЖЕÐÐЯ ÐЛЬТЕРÐÐТИВÐОГО ПОКÐЗУ"
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2047
+#, no-wrap
+msgid "5a. WINDOWS Overview"
+msgstr "5а. ОГЛЯД ВІКОÐ"
+
+#. type: TP
+#: ../man/top.1:2049
+#, no-wrap
+msgid "B<Field Groups/Windows>:"
+msgstr "B<Групи полів/Вікна>:"
+
+#. type: Plain text
+#: ../man/top.1:2056
+msgid "In \\*(FM there is a single window represented by the entire screen. That single window can still be changed to display 1 of 4 differentB< field groups> (\\*(Xc `g' \\*(CI, repeated below). Each of the 4 \\*(FGs has a unique separately configurableB< \\*(SA > and its own configurableB< \\*(TA>."
+msgstr "У повноекранному режимі програма показуватиме єдине вікно, Ñке заповнюватиме увеÑÑŒ екран. У цьому єдиному вікні уÑе ще можна показ на демонÑтрацію даних однієї з 4 різних B<груп полів> (див. інтерактивну команду «g», повторену нижче). Кожна з 4 груп полів має унікальну окремо налаштовувану B<облаÑÑ‚ÑŒ резюме> Ñ– влаÑну налаштовувану B<облаÑÑ‚ÑŒ завдань>."
+
+#. type: Plain text
+#: ../man/top.1:2059
+msgid "In \\*(AM, those 4 underlying \\*(FGs can now be made visible simultaneously, or can be turned \\*F individually at your command."
+msgstr "У режимі альтернативного показу ці базові 4 групи полів тепер можна зробити видимими або вимкнути окремо за вашою командою."
+
+#. type: Plain text
+#: ../man/top.1:2064
+msgid "The \\*(SA will always exist, even if it's only the message line. At any given time onlyI< one> \\*(SA can be displayed. However, depending on your commands, there could be fromI< zero > toI< four> separate \\*(TDs currently showing on the screen."
+msgstr "ОблаÑÑ‚ÑŒ резюме Ñ–Ñнуватиме завжди, навіть Ñкщо це проÑто Ñ€Ñдок повідомленнÑ. У будь-Ñкий конкретний момент може бути показано лише I<одну> \\*(SA. Втім, залежно від ваших команд, може бути від I<нулÑ> до I<чотирьох> окремих панелей показу завдань одночаÑно показаних на екрані."
+
+#. type: TP
+#: ../man/top.1:2065
+#, no-wrap
+msgid "B<Current Window>:"
+msgstr "B<Поточне вікно>:"
+
+#. type: Plain text
+#: ../man/top.1:2071
+msgid "The \\*(CW is the window associated with the \\*(SA and the window to which task related commands are always directed. Since in \\*(AM you can toggle the \\*(TD \\*F, some commands might be restricted for the \\*(CW."
+msgstr "«Поточне» вікно Ñ” вікном, Ñке пов'Ñзано із облаÑÑ‚ÑŽ резюме, Ñ– вікном, до Ñкого завжди буде ÑпрÑмовано уÑÑ– пов'Ñзані із завданнÑм команди. ОÑкільки у режимі альтернативного показу ви можете перемкнути показ завдань у Ñтан \\*F, деÑкі команди може бути обмежено Ð´Ð»Ñ Â«Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾Â» вікна."
+
+#. type: Plain text
+#: ../man/top.1:2076
+msgid "A further complication arises when you have toggled the first \\*(SA line \\*F. With the loss of the window name (the `l' toggled line), you'll not easily know what window is the \\*(CW."
+msgstr "УÑе Ñтає Ñкладнішим, Ñкщо ви вимкнете перший Ñ€Ñдок облаÑÑ‚Ñ– резюме. Із втратою назви вікна (Ñ€Ñдка, перемкнутого «l»), вам не проÑто буде визначити, Ñке з вікон Ñ” «поточним»."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2078
+#, no-wrap
+msgid "5b. COMMANDS for Windows"
+msgstr "5б. КОМÐÐДИ ДЛЯ ВІКОÐ"
+
+#. type: TP
+#: ../man/top.1:2080
+#, no-wrap
+msgid "\\ \\ \\ B<-> | B<_>\\ \\ :I<Show/Hide-Window(s)> toggles "
+msgstr "\\ \\ \\ B<-> | B<_>\\ \\ :I<Перемикачі показу/Ð¿Ñ€Ð¸Ñ…Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–ÐºÐ¾Ð½> "
+
+#. type: Plain text
+#: ../man/top.1:2087
+msgid "The `-' key turns the \\*(CW's \\*(TD \\*O and \\*F. When \\*O, that \\*(TA will show a minimum of the columns header you've established with the `f' \\*(CI. It will also reflect any other \\*(TA options/toggles you've applied yielding zero or more tasks."
+msgstr "Клавіша «-» вмикає або вимикає показ завдань «поточного» вікна. У Ñтані \\*O в облаÑÑ‚Ñ– завдань буде показано мінімум заголовка Ñтовпчиків, Ñкі вÑтановлено вами за допомогою інтерактивної команди «f». У ній також буде відтворено будь-Ñкі інші параметри або перемикачі облаÑÑ‚Ñ– завдань, Ñкі було заÑтоÑовано вами з метою Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… Ð½ÑƒÐ»Ñ Ð°Ð±Ð¾ більшої кількоÑÑ‚Ñ– завдань."
+
+#. type: Plain text
+#: ../man/top.1:2093
+msgid "The `_' key does the same for all \\*(TDs. In other words, it switches between the currently visible \\*(TD(s) and any \\*(TD(s) you had toggled \\*F. If all 4 \\*(TDs are currently visible, this \\*(CI will leave the \\*(SA as the only display element."
+msgstr "Клавіша «_» виконує те Ñаме Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð´Ð»Ñ ÑƒÑÑ–Ñ… показів завдань. Іншими Ñловами, Ñ†Ñ ÐºÐ»Ð°Ð²Ñ–ÑˆÐ° перемикає програму між поточними видимими показами завдань Ñ– будь-Ñкими показами завдань, Ñкі ви перевели у Ñтан \\*F. Якщо поточними видимими Ñ” уÑÑ– 4 покази завдань, Ñ†Ñ Ñ–Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð° команда лишить облаÑÑ‚ÑŒ резюме єдиним показаним елементом."
+
+#. type: TP
+#: ../man/top.1:2094
+#, no-wrap
+msgid "*\\ \\ B<=> | B<+>\\ \\ :I<Equalize/Reset-Window(s) >"
+msgstr "*\\ \\ B<=> | B<+>\\ \\ :I<ВирівнÑти/Скинути вікна>"
+
+#. type: Plain text
+#: ../man/top.1:2103
+msgid "The `=' key forces the \\*(CW's \\*(TD to be visible. It also reverses any active `i' (idle tasks), `n' (max tasks), `u/U' (user filter), `o/O' (other filter), `v' (hide children), `F' focused, `L' (locate) and `!' (combine cpus) commands. Also, if the window had been scrolled, it will be reset with this command. \\*(XT 5c. SCROLLING a Window for additional information regarding vertical and horizontal scrolling."
+msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–ÑˆÑ– «=» примуÑово вÑтановлює Ñтан видимоÑÑ‚Ñ– Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ завдань «поточного» вікна Вона також обертає уÑÑ– активні перемикачі «i» (бездіÑльні завданнÑ), «n» (макÑимум завдань), «u/U» (фільтр за кориÑтувачем), «o/O» (інший фільтр), «v» (приховати дочірні), «F» (фокуÑовано), «L» (пошук) Ñ– «!» (поєднати дані Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑорів). Також, Ñкщо у вікні було виконано гортаннÑ, його буде Ñкинуто цією командою. Див. 5в. ГОРТÐÐÐЯ ВІКÐÐ, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про вертикальне Ñ– горизонтальне гортаннÑ."
+
+#. type: Plain text
+#: ../man/top.1:2108
+msgid "The `+' key does the same for all windows. The four \\*(TDs will reappear, evenly balanced, while retaining any customizations previously applied beyond those noted for the `=' \\*(CT."
+msgstr "Клавіша «+» робить те Ñаме Ð´Ð»Ñ ÑƒÑÑ–Ñ… вікон. Повторно з'ÑвлÑÑ‚ÑŒÑÑ ÑƒÑÑ– чотири покази завдань, рівномірно розподілені за розміром, із одночаÑним збереженнÑм уÑÑ–Ñ… налаштувань, Ñкі було заÑтоÑовано додатково до тих, Ñкі опиÑано Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸-перемикача «=»."
+
+#. type: TP
+#: ../man/top.1:2109
+#, no-wrap
+msgid "*\\ \\ B<A>\\ \\ :I<Alternate-Display-Mode> toggle "
+msgstr "*\\ \\ B<A>\\ \\ :I<Перемикач режиму альтернативного показу> "
+
+#. type: Plain text
+#: ../man/top.1:2112
+msgid "This command will switch between \\*(FM and \\*(AM."
+msgstr "Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° перемикає програму між повноекранним режимом Ñ– режимом альтернативного показу."
+
+#. type: Plain text
+#: ../man/top.1:2116
+msgid "The first time you issue this command, all four \\*(TDs will be shown. Thereafter when you switch modes, you will see only the \\*(TD(s) you've chosen to make visible."
+msgstr "Коли ви перший раз віддаÑте цю команду, буде показано уÑÑ– чотири показу завдань. Ðадалі, коли ви перемикатимете режими, ви бачитимете лише Ñ‚Ñ– покази завдань, Ñкі ви визначили Ñк видимі."
+
+#. type: TP
+#: ../man/top.1:2117
+#, no-wrap
+msgid "*\\ \\ B<a> | B<w>\\ \\ :I<Next-Window-Forward/Backward >"
+msgstr "*\\ \\ B<a> | B<w>\\ \\ :I<ÐаÑтупне-вікно-вперед/назад >"
+
+#. type: Plain text
+#: ../man/top.1:2123
+msgid "This will change the \\*(CW, which in turn changes the window to which commands are directed. These keys act in a circular fashion so you can reach any desired window using either key."
+msgstr "Ці команди змінюють «поточне» вікно, що, у Ñвій чаÑ, змінює вікно, до Ñкого буде ÑпрÑмовано команди. Ці клавіші працюють циклічним чином, тому ви можете діÑтатиÑÑ Ð±ÑƒÐ´ÑŒ-Ñкого бажаного вікна за допомогою будь-Ñкої з клавіш."
+
+#. type: Plain text
+#: ../man/top.1:2127
+msgid "Assuming the window name is visible (you have not toggled `l' \\*F), whenever the \\*(CW name loses its emphasis/color, that's a reminder the \\*(TD is \\*F and many commands will be restricted."
+msgstr "Якщо назву вікно показано (вами не перемкнуто «l» у Ñтан \\*F), коли назва «поточного» вікна втрачає акцент/колір, назва буде нагадуваннÑм про те, що показ завдань \\*F, а багато команд буде обмежено."
+
+#. type: TP
+#: ../man/top.1:2128
+#, no-wrap
+msgid "\\ \\ \\ B<G>\\ \\ :I<Change-Window/Field-Group-Name >"
+msgstr "\\ \\ \\ B<G>\\ \\ :I<Змінити назву вікна/групи полів >"
+
+#. type: Plain text
+#: ../man/top.1:2133
+msgid "You will be prompted for a new name to be applied to the \\*(CW. It does not require that the window name be visible (the `l' toggle to be \\*O)."
+msgstr "Програма попроÑить Ð²Ð°Ñ Ð²Ð²ÐµÑти нову назву, Ñку буде заÑтоÑовано до «поточного» вікна. Потреби у видимоÑÑ‚Ñ– назви вікна немає (перемикач «l» може не перебувати у Ñтані \\*O)."
+
+#. type: Plain text
+#: ../man/top.1:2136
+msgid "The \\*(CIs shown with an \\*(AK have use beyond \\*(AM."
+msgstr "Інтерактивні команди, пункти Ñких позначено зірочкою (*), можна викориÑтовувати поза режимом альтернативного показу."
+
+#. type: Plain text
+#: ../man/top.1:2140
+#, no-wrap
+msgid ""
+" =, A, g are always available\n"
+" a, w act the same with color mapping\n"
+" and fields management\n"
+msgstr ""
+" =, A, g доÑтупні завжди\n"
+" a, w працюють так Ñамо із прив'Ñзкою кольорів\n"
+" Ñ– керуваннÑм полÑми\n"
+
+#. type: TP
+#: ../man/top.1:2142
+#, no-wrap
+msgid "*\\ \\ B<g>\\ \\ :I<Choose-Another-Window/Field-Group >"
+msgstr "*\\ \\ B<g>\\ \\ :I<Вибрати інше вікно/групу полів >"
+
+#. type: Plain text
+#: ../man/top.1:2146
+msgid "You will be prompted to enter a number between 1 and 4 designating the \\*(FG which should be made the \\*(CW."
+msgstr "Програма попроÑить Ð²Ð°Ñ Ð²Ð²ÐµÑти чиÑло від 1 до 4, Ñке позначає групу полів, Ñка має Ñтати «поточним» вікном."
+
+#. type: Plain text
+#: ../man/top.1:2150
+msgid "In \\*(FM, this command is necessary to alter the \\*(CW. In \\*(AM, it is simply a less convenient alternative to the `a' and `w' commands."
+msgstr "У повноекранному режимі Ñ†Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° потрібна Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ «поточного» вікна. У режимі альтернативного переглÑду це проÑто менш зручна альтернатива командам «a» Ñ– «w»."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2152
+#, no-wrap
+msgid "5c. SCROLLING a Window"
+msgstr "5в. ГОРТÐÐÐЯ ВІКÐÐ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2158
+msgid "Typically a \\*(TW is a partial view into a system's total tasks/threads which shows only some of the available fields/columns. With these \\*(KSs, you can move that view vertically or horizontally to reveal any desired task or column."
+msgstr "Типово, вікно завдань Ñ” чаÑтковим переглÑдом загальних даних щодо завдань/потоків ÑиÑтеми, де буде показано лише деÑкі з доÑтупних полів/Ñтовпчиків. За допомогою цих клавіш Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð²Ð¸ можете переÑувати переглÑд вертикально або горизонтально, щоб діÑтатиÑÑ Ð±ÑƒÐ´ÑŒ-Ñкого бажаного Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ Ñтовпчика."
+
+#. type: TP
+#: ../man/top.1:2159
+#, no-wrap
+msgid "B<Up>,B<PgUp>\\ \\ :I<Scroll-Tasks >"
+msgstr "B<Вгору>,B<PgUp>\\ \\ :I<Гортати Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ >"
+
+#. type: Plain text
+#: ../man/top.1:2165
+msgid "Move the view up toward the first task row, until the first task is displayed at the top of the \\*(CW. The I<Up> \\*(KA moves a single line while I<PgUp> scrolls the entire window."
+msgstr "ПереÑунути переглÑд вгору у напрÑмку першого Ñ€Ñдка завдань, аж доки моменту, коли пункт першого Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ показано у верхній позиції «поточного» вікна. Клавіша зі Ñтрілкою I<вгору> переÑуває переглÑд на один Ñ€Ñдок, а клавіша I<PgUp> гортає на ціле вікно."
+
+#. type: TP
+#: ../man/top.1:2166
+#, no-wrap
+msgid "B<Down>,B<PgDn>\\ \\ :I<Scroll-Tasks >"
+msgstr "B<Ðазад>,B<PgDn>\\ \\ :I<Ð“Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½ÑŒ >"
+
+#. type: Plain text
+#: ../man/top.1:2172
+msgid "Move the view down toward the last task row, until the last task is the only task displayed at the top of the \\*(CW. The I<Down> \\*(KA moves a single line while I<PgDn> scrolls the entire window."
+msgstr "ПереÑунути переглÑд вниз у напрÑмку оÑтаннього Ñ€Ñдка завдань, аж доки моменту, коли пункт оÑтаннього Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ показано єдиним у верхній позиції «поточного» вікна. Клавіша зі Ñтрілкою I<вниз> переÑуває переглÑд на один Ñ€Ñдок, а клавіша I<PgDn> гортає на ціле вікно."
+
+#. type: TP
+#: ../man/top.1:2173
+#, no-wrap
+msgid "B<Left>,B<Right>\\ \\ :I<Scroll-Columns >"
+msgstr "B<Ліворуч>,B<Праворуч>\\ \\ :I<Ð“Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ñтовпчиків >"
+
+#. type: Plain text
+#: ../man/top.1:2176
+msgid "Move the view of displayable fields horizontally one column at a time."
+msgstr "ПереÑунути переглÑд показаних полів горизонтально на один Ñтовпчик за раз."
+
+#. type: Plain text
+#: ../man/top.1:2181
+msgid "\\*(NT As a reminder, some fields/columns are not fixed-width but allocated all remaining screen width when visible. When scrolling right or left, that feature may produce some unexpected results initially."
+msgstr "\\*(NT Як нагадуваннÑ, деÑкі полÑ/Ñтовпчики мають не фікÑовану ширину, а займають решту ширини екрана, Ñкщо Ñ—Ñ… показано. При гортанні праворуч або ліворуч на першому кроці Ñ†Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° може давати не Ñ‚Ñ– результати, на Ñкі ви очікували."
+
+#. type: Plain text
+#: ../man/top.1:2187
+msgid "Additionally, there are special provisions for any variable width field when positioned as the last displayed field. Once that field is reached via the right arrow key, and is thus the only column shown, you can continue scrolling horizontally within such a field. \\*(XC `C' \\*(CI below for additional information."
+msgstr "Крім того, Ñ” певні правила Ð´Ð»Ñ Ð±ÑƒÐ´ÑŒ-Ñкого Ð¿Ð¾Ð»Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¾Ñ— ширини, Ñке розташовано у оÑтанньому показаному полі. Щойно ви доÑÑгнете оÑтаннього Ð¿Ð¾Ð»Ñ Ð·Ð° допомогою Ñтрілки праворуч, Ñ– отже, Ñтане єдиним показаним Ñтовпчиком, ви можете продовжити Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ ÑƒÑередині такого полÑ. Щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ, див. інтерактивну команду «C» нижче."
+
+#. type: TP
+#: ../man/top.1:2188
+#, no-wrap
+msgid "B<Home>\\ \\ :I<Jump-to-Home-Position >"
+msgstr "B<Home>\\ \\ :I<Перейти на початкову позицію>"
+
+#. type: Plain text
+#: ../man/top.1:2191
+msgid "Reposition the display to the un-scrolled coordinates."
+msgstr "Змінити Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±Ð»Ð°ÑÑ‚Ñ– показу до координат до гортаннÑ."
+
+#. type: TP
+#: ../man/top.1:2192
+#, no-wrap
+msgid "B<End>\\ \\ :I<Jump-to-End-Position >"
+msgstr "B<End>\\ \\ :I<Перейти на кінцеву позицію>"
+
+#. type: Plain text
+#: ../man/top.1:2196
+msgid "Reposition the display so that the rightmost column reflects the last displayable field and the bottom task row represents the last task."
+msgstr "Змінити Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±Ð»Ð°ÑÑ‚Ñ– показу так, щоб у найправішому Ñтовпчику було показано дані оÑтаннього придатного до показу полÑ, а нижній Ñ€Ñдок Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°Ð² оÑтанньому завданню."
+
+#. type: Plain text
+#: ../man/top.1:2201
+msgid "\\*(NT From this position it is still possible to scrollI< down> andI< right> using the \\*(KAs. This is true until a single column and a single task is left as the only display element."
+msgstr "\\*(NT З цієї позиції можна гортати I<вниз> Ñ– I<праворуч> за допомогою клавіш зі Ñтрілками. Це Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð»Ð¸ÑˆÐ°Ñ”Ñ‚ÑŒÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¸Ð¼, аж доки в облаÑÑ‚Ñ– переглÑду не лишитьÑÑ Ñ”Ð´Ð¸Ð½Ð¾Ð³Ð¾ Ñтовпчика Ñ– єдиного завданнÑ."
+
+#. type: TP
+#: ../man/top.1:2202
+#, no-wrap
+msgid "B<C>\\ \\ :I<Show-scroll-coordinates> toggle "
+msgstr "B<C>\\ \\ :I<Перемикач показу координат гортаннÑ> "
+
+#. type: Plain text
+#: ../man/top.1:2208
+msgid "Toggle an informational message which is displayed whenever the message line is not otherwise being used. That message will take one of two forms depending on whether or not a variable width column has also been scrolled."
+msgstr "Перемкнути інформаційне повідомленнÑ, Ñке буде показано, Ñкщо Ñ€Ñдок Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ðµ викориÑтано іншим чином. Це Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” одну з двох форм. Форма залежить від того, чи було виконано Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ñƒ Ñтовпчику змінної ширини."
+
+#. type: Plain text
+#: ../man/top.1:2212
+#, no-wrap
+msgid ""
+" B<scroll coordinates: y = n/n (tasks), x = n/n (fields)>\n"
+" scroll coordinates: y = n/n (tasks), x = n/n (fields)B< + nn>\n"
+msgstr ""
+" B<координати гортаннÑ: y = n/n (завданнÑ), x = n/n (полÑ)>\n"
+" координати гортаннÑ: y = n/n (завданнÑ), x = n/n (полÑ)B< + nn>\n"
+
+#. type: Plain text
+#: ../man/top.1:2220
+msgid "The coordinates shown as B<n>/B<n> are relative to the upper left corner of the \\*(CW. The additional `B<+\\ nn>' represents the displacement into a variable width column when it has been scrolled horizontally. Such displacement occurs in normal 8 character tab stop amounts via the right and left arrow keys."
+msgstr "Координати буде показано у форматі B<n>/B<n> відноÑно верхнього лівого кута «поточного» вікна. Додаткове «B<+\\ nn>» відтворюватиме Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñƒ Ñтовпчику змінної ширини при гортанні його вміÑту у горизонтальному напрÑмку. Такі Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÐ¾Ð²ÑƒÑŽÑ‚ÑŒÑÑ Ñƒ звичайних позиціÑÑ… 8-Ñимвольної табулÑції при переÑуванні за допомогою клавіш зі Ñтрілками праворуч Ñ– ліворуч."
+
+#. type: TP
+#: ../man/top.1:2222
+#, no-wrap
+msgid "B<y = n/n (tasks) >"
+msgstr "B<y = n/n (завданнÑ) >"
+
+#. type: Plain text
+#: ../man/top.1:2227
+msgid "The first B<n> represents the topmost visible task and is controlled by \\*(KSs. The second B<n> is updated automatically to reflect total tasks."
+msgstr "Перше B<n> відповідає верхньому видимому завданню, ним керують клавіші гортаннÑ. Друге B<n> оновлюєтьÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾ Ñ– відповідає загальній кількоÑÑ‚Ñ– завдань."
+
+#. type: TP
+#: ../man/top.1:2228
+#, no-wrap
+msgid "B<x = n/n (fields) >"
+msgstr "B<x = n/n (полів) >"
+
+#. type: Plain text
+#: ../man/top.1:2234
+msgid "The first B<n> represents the leftmost displayed column and is controlled by \\*(KSs. The second B<n> is the total number of displayable fields and is established with the `B<f>' \\*(CI."
+msgstr "Перше B<n> відповідає найлівішому показаному Ñтовпчику, ним керують клавіші гортаннÑ. Друге B<n> Ñ” загальною кількіÑÑ‚ÑŽ полів, Ñкі може бути показано, його Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð°Ñ” інтерактивна команда «B<f>»."
+
+#. type: Plain text
+#: ../man/top.1:2239 ../man/top.1:2298
+msgid "The above \\*(CIs areB< always> available in \\*(FM butB< never> available in \\*(AM if the \\*(CW's \\*(TD has been toggled \\*F."
+msgstr "Ðаведені вище інтерактивні команди доÑтупні B<завжди> у повноекранному режимі, але B<ніколи> не доÑтупні у режимі альтернативного показу, Ñкщо показ завдань «поточного» вікна \\*F."
+
+#. type: Plain text
+#: ../man/top.1:2243
+msgid "\\*(NT When any form of filtering is active, you can expect some slight aberrations when scrolling since not all tasks will be visible. This is particularly apparent when using the Up/Down \\*(KAs."
+msgstr "\\*(NT Якщо активним Ñ” Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ будь-Ñкій формі, можна очікувати певні помилки під Ñ‡Ð°Ñ Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ, оÑкільки не уÑÑ– Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð±ÑƒÐ´ÑƒÑ‚ÑŒ видимими. Це, зокрема, оÑобливо помітно при викориÑтанні клавіш зі Ñтрілками вгору/вниз."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2245
+#, no-wrap
+msgid "5d. SEARCHING in a Window"
+msgstr "5г. ПОШУК У ВІКÐІ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2248
+msgid "You can use these \\*(CIs to locate a task row containing a particular value."
+msgstr "Ви можете ÑкориÑтатиÑÑ Ñ†Ð¸Ð¼Ð¸ інтерактивними командами Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ Ñ€Ñдка завданнÑ, що міÑтить певне значеннÑ."
+
+#. type: TP
+#: ../man/top.1:2249
+#, no-wrap
+msgid "B<L>\\ \\ :I<Locate-a-string>"
+msgstr "B<L>\\ \\ :I<Locate-a-string>"
+
+#. type: Plain text
+#: ../man/top.1:2254
+msgid "You will be prompted for the case-sensitive string to locate starting from the current window coordinates. There are no restrictions on search string content."
+msgstr "Програма попроÑить Ð²Ð°Ñ Ð²Ð²ÐµÑти Ñ€Ñдок без Ð²Ñ€Ð°Ñ…ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÐ³Ñ–Ñтру Ñимволів Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ, починаючи з координат поточного вікна. Обмежень на вміÑÑ‚ Ñ€Ñдка пошуку не передбачено."
+
+#. type: Plain text
+#: ../man/top.1:2258
+msgid "Searches are not limited to values from a single field or column. All of the values displayed in a task row are allowed in a search string. You may include spaces, numbers, symbols and even forest view artwork."
+msgstr "Пошук не обмежено значеннÑми з єдиного Ð¿Ð¾Ð»Ñ Ð°Ð±Ð¾ Ñтовпчика. У Ñ€Ñдку пошуку можна викориÑтовувати уÑÑ– значеннÑ, Ñкі показано у Ñ€Ñдку завданнÑ. До Ñ€Ñдка пошуку можна включати пробіли, цифри, Ñимволи Ñ– навіть графічні Ñимволи переглÑду ліÑу."
+
+#. type: Plain text
+#: ../man/top.1:2261
+msgid "Keying E<lt>EnterE<gt> with no input will effectively disable the `&' key until a new search string is entered."
+msgstr "ÐатиÑÐºÐ°Ð½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–ÑˆÑ– E<lt>EnterE<gt> без введених даних призведе до Ð²Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¿ÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ñ‡Ð° «&», аж доки не буде введено нового Ñ€Ñдка Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ."
+
+#. type: TP
+#: ../man/top.1:2262
+#, no-wrap
+msgid "B<&>\\ \\ :I<Locate-next>"
+msgstr "B<&>\\ \\ :I<Locate-next>"
+
+#. type: Plain text
+#: ../man/top.1:2266
+msgid "Assuming a search string has been established, \\*(We will attempt to locate the next occurrence."
+msgstr "Якщо було вказано Ñ€Ñдок пошуку, \\*(We Ñпробує знайти наÑтупний відповідник критерію пошуку."
+
+#. type: Plain text
+#: ../man/top.1:2273
+msgid "When a match is found, the current window is repositioned vertically so the task row containing that string is first. The scroll coordinates message can provide confirmation of such vertical repositioning (\\*(Xc `C' \\*(CI). Horizontal scrolling, however, is never altered via searching."
+msgstr "Якщо буде знайдено відповідник, поточне вікно буде переміщено вертикально так, щоб Ñ€Ñдок завданнÑ, Ñкий міÑтить знайдений відповідник, Ñтав першим. У повідомленні координат Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ðµ бути показано Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð°ÐºÐ¾Ð³Ð¾ вертикального Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ (див. інтерактивну команду «C»). Втім, горизонтальна Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ ніколи не змінюєтьÑÑ."
+
+#. type: Plain text
+#: ../man/top.1:2276
+msgid "The availability of a matching string will be influenced by the following factors."
+msgstr "Ðа доÑтупніÑÑ‚ÑŒ Ñ€Ñдка-відповідника будуть впливати вказані нижче фактори."
+
+#. type: TP
+#: ../man/top.1:2277
+#, no-wrap
+msgid "a. Which fields are displayable from the total available,"
+msgstr "а. Які Ð¿Ð¾Ð»Ñ Ð¼Ð¾Ð¶Ðµ бути показано з загального доÑтупного набору,"
+
+#. type: Plain text
+#: ../man/top.1:2280
+msgid "\\*(Xt 3b. MANAGING Fields."
+msgstr "Див. 3б. КЕРУВÐÐÐЯ ПОЛЯМИ."
+
+#. type: TP
+#: ../man/top.1:2280
+#, no-wrap
+msgid "b. Scrolling a window vertically and/or horizontally,"
+msgstr "б. Ð“Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð²Ñ–ÐºÐ½Ð° у вертикальному Ñ–/або горизонтальному напрÑмку,"
+
+#. type: Plain text
+#: ../man/top.1:2283
+msgid "\\*(Xt 5c. SCROLLING a Window."
+msgstr "Див. розділ 5в. ГОРТÐÐÐЯ ВІКÐÐ."
+
+#. type: TP
+#: ../man/top.1:2283
+#, no-wrap
+msgid "c. The state of the command/command-line toggle,"
+msgstr "в. Стан перемикача команда/командний Ñ€Ñдок,"
+
+#. type: Plain text
+#: ../man/top.1:2286
+msgid "\\*(Xc `c' \\*(CI."
+msgstr "Див. інтерактивну команду «c»."
+
+#. type: TP
+#: ../man/top.1:2286
+#, no-wrap
+msgid "d. The stability of the chosen sort column,"
+msgstr "г. СтабільніÑÑ‚ÑŒ вибраного Ð´Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñтовпчика,"
+
+#. type: Plain text
+#: ../man/top.1:2289
+msgid "for example PID is good but %CPU bad."
+msgstr "наприклад, PID працює добре, а %CPU — погано."
+
+#. type: Plain text
+#: ../man/top.1:2295
+msgid "If a search fails, restoring the \\*(CW home (unscrolled) position, scrolling horizontally, displaying command-lines or choosing a more stable sort field could yet produce a successful `&' search."
+msgstr "Якщо пошуки завершатьÑÑ Ð½ÐµÐ²Ð´Ð°Ñ‡ÐµÑŽ, Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— позиції (без гортаннÑ) у «поточному» вікні, горизонтальне гортаннÑ, показ командних Ñ€Ñдків або вибір Ñтабільнішого Ð¿Ð¾Ð»Ñ Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ðµ зробити пошук «&» уÑпішним."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2300
+#, no-wrap
+msgid "5e. FILTERING in a Window"
+msgstr "5д. ФІЛЬТРУВÐÐÐЯ У ВІКÐІ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2306
+msgid "You can use this `Other Filter' feature to establish selection criteria which will then determine which tasks are shown in the \\*(CW. Such filters can be made persistent if preserved in the rcfile via the `W' \\*(CI."
+msgstr "Ви можете ÑкориÑтатиÑÑ Ñ†Ñ–Ñ”ÑŽ можливіÑÑ‚ÑŽ іншого фільтра, щоб вÑтановити критерій вибору, Ñкий визначить, Ñкі Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ показано у «поточному» вікні. Такі фільтри можна зробити Ñталими, Ñкщо зберегти Ñ—Ñ… до файла rcfile за допомогою інтерактивної команди «W»."
+
+#. type: Plain text
+#: ../man/top.1:2312
+msgid "Establishing a filter requires: 1) a field name; 2) an operator; and 3) a selection value, as a minimum. This is the most complex of \\*(We's user input requirements so, when you make a mistake, command recall will be your friend. Remember the Up/Down \\*(KAs or their aliases when prompted for input."
+msgstr "Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€Ð° мінімально потребує: 1) назви полÑ; 2) оператора та 3) Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ. Це найÑкладніші вимоги щодо введених кориÑтувачем даних у \\*(We. Тому, Ñкщо ви зробили помилку, вам допоможе пам'ÑÑ‚ÑŒ команд. Пам'Ñтайте про клавіші зі Ñтрілками вгору/вниз або їхні альтернативи при запитах на Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…."
+
+#. type: Plain text
+#: ../man/top.1:2314
+msgid "B<Filter Basics>"
+msgstr "B<ОÑнови фільтруваннÑ>"
+
+#. type: TP
+#: ../man/top.1:2315
+#, no-wrap
+msgid "1. field names are case sensitive and spelled as in the header"
+msgstr "1. у назвах полів Ñлід враховувати регіÑÑ‚Ñ€ Ñ– пиÑати Ñ—Ñ… так, Ñк у заголовку"
+
+#. type: TP
+#: ../man/top.1:2317
+#, no-wrap
+msgid "2. selection values need not comprise the full displayed field"
+msgstr "2. Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ не обов'Ñзково мають повніÑÑ‚ÑŽ вміщати показане поле"
+
+#. type: TP
+#: ../man/top.1:2319
+#, no-wrap
+msgid "3. a selection is either case insensitive or sensitive to case"
+msgstr "3. у виборі або не враховуєтьÑÑ Ñ€ÐµÐ³Ñ–ÑÑ‚Ñ€ Ñимволів, або враховуєтьÑÑ"
+
+#. type: TP
+#: ../man/top.1:2321
+#, no-wrap
+msgid "4. the default is inclusion, prepending `!' denotes exclusions"
+msgstr "4. типовим Ñ” включеннÑ, Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð° початку «!» означає виключеннÑ"
+
+#. type: TP
+#: ../man/top.1:2323
+#, no-wrap
+msgid "5. multiple selection criteria can be applied to a \\*(TW"
+msgstr "5. до вікна завдань може бути заÑтоÑовано декілька критеріїв вибору"
+
+#. type: TP
+#: ../man/top.1:2325
+#, no-wrap
+msgid "6. inclusion and exclusion criteria can be used simultaneously"
+msgstr "6. критерії Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñ– Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ðµ бути викориÑтано одночаÑно"
+
+#. type: TP
+#: ../man/top.1:2327
+#, no-wrap
+msgid "7. the 1 equality and 2 relational filters can be freely mixed"
+msgstr "7. можна довільним чином поєднувати 1 фільтр рівноÑÑ‚Ñ– Ñ– 2 фільтри відношеннÑ"
+
+#. type: TP
+#: ../man/top.1:2329
+#, no-wrap
+msgid "8. separate unique filters are maintained for each \\*(TW"
+msgstr "8. Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ вікна завдань передбачено окремі унікальні фільтри"
+
+#. type: Plain text
+#: ../man/top.1:2337
+msgid "If a field is not turned on or is not currently in view, then your selection criteria will not affect the display. Later, should a filtered field become visible, the selection criteria will then be applied."
+msgstr "Якщо поле не увімкнено або у поточний момент не показано, ваші критерії вибору не впливатимуть на показ. Пізніше, Ñкщо фільтроване поле Ñтане видимим, критерії вибору буде заÑтоÑовано."
+
+#. type: Plain text
+#: ../man/top.1:2340
+msgid "B<Keyboard Summary>"
+msgstr "B<Резюме щодо клавіатури>"
+
+#. type: TP
+#: ../man/top.1:2340
+#, no-wrap
+msgid "\\ \\ B<O>\\ \\ :I<Other-Filter> (upper case)"
+msgstr "\\ \\ B<O>\\ \\ :I<Інший фільтр> (верхній регіÑÑ‚Ñ€)"
+
+#. type: Plain text
+#: ../man/top.1:2343
+msgid "You will be prompted to establish a B<case sensitive> filter."
+msgstr "Програма попроÑить Ð²Ð°Ñ Ð²Ñтановити фільтр B<із врахуваннÑм регіÑтру Ñимволів>."
+
+#. type: TP
+#: ../man/top.1:2344
+#, no-wrap
+msgid "\\ \\ B<o>\\ \\ :I<Other-Filter> (lower case)"
+msgstr "\\ \\ B<o>\\ \\ :I<Інший фільтр> (нижній регіÑÑ‚Ñ€)"
+
+#. type: Plain text
+#: ../man/top.1:2348
+msgid "You will be prompted to establish a filter that B<ignores case> when matching."
+msgstr "Програма попроÑить Ð²Ð°Ñ Ð²Ñтановити фільтр, у Ñкому при вÑтановленні відповідноÑÑ‚Ñ– B<регіÑÑ‚Ñ€ Ñимволів буде проігноровано>."
+
+#. type: TP
+#: ../man/top.1:2349
+#, no-wrap
+msgid "\\ B<^O>\\ \\ :I<Show-Active-Filters> (Ctrl key + `o')"
+msgstr "\\ B<^O>\\ \\ :I<Показати активні фільтри> (клавіша Ctrl + «o»)"
+
+#. type: Plain text
+#: ../man/top.1:2353
+msgid "This can serve as a reminder of which filters are active in the \\*(CW. A summary will be shown on the message line until you press the E<lt>EnterE<gt> key."
+msgstr "За допомогою цієї команди можна згадати, Ñкі фільтри Ñ” активними у «поточному» вікні. Резюме буде показано у Ñ€Ñдку Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð°Ð¶ до натиÑÐºÐ°Ð½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–ÑˆÑ– E<lt>EnterE<gt>."
+
+#. type: TP
+#: ../man/top.1:2354
+#, no-wrap
+msgid "\\ \\ B<=>\\ \\ :I<Reset-Filtering> in current window"
+msgstr "\\ \\ B<=>\\ \\ :I<Скинути фільтруваннÑ> у поточному вікні"
+
+#. type: Plain text
+#: ../man/top.1:2358
+msgid "This clears all of your selection criteria in the \\*(CW. It also has additional impact so please \\*(Xt 4a. GLOBAL Commands."
+msgstr "Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° знімає уÑÑ– ваші критерії вибору у «поточному» вікні. Також має додатковий вплив на показу, тому, будь лаÑка, ознайомтеÑÑ Ð· розділом 4а. ЗÐГÐЛЬÐІ КОМÐÐДИ."
+
+#. type: TP
+#: ../man/top.1:2359
+#, no-wrap
+msgid "\\ \\ B<+>\\ \\ :I<Reset-Filtering> in all windows"
+msgstr "\\ \\ B<+>\\ \\ :I<Скинути фільтруваннÑ> в уÑÑ–Ñ… вікнах"
+
+#. type: Plain text
+#: ../man/top.1:2364
+msgid "This clears the selection criteria in all windows, assuming you are in \\*(AM. As with the `=' \\*(CI, it too has additional consequences so you might wish to \\*(Xt 5b. COMMANDS for Windows."
+msgstr "Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° вилучає уÑÑ– критерії вибору в уÑÑ–Ñ… вікнах, Ñкщо ви працюєте у режимі альтернативного показу. Так Ñамо, Ñк із інтерактивною командою «=», Ñ—Ñ— заÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ‚ÑŒ до додаткових наÑлідків, тому варто ознайомитиÑÑ Ñ–Ð· розділом 5б. КОМÐÐДИ ДЛЯ ВІКОÐ."
+
+#. type: Plain text
+#: ../man/top.1:2367
+msgid "B<Input Requirements>"
+msgstr "B<Вимоги до вхідних даних>"
+
+#. type: Plain text
+#: ../man/top.1:2373
+msgid "When prompted for selection criteria, the data you provide must take one of two forms. There are 3 required pieces of information, with a 4th as optional. These examples use spaces for clarity but your input generally would not."
+msgstr "У відповідь на запит щодо критерії вибору вам Ñлід вказати дані в одній з двох форм. Передбачено 3 обов'Ñзкових елементів даних Ñ– четвертий додатковий. У наведених прикладах пробіли викориÑтано Ð´Ð»Ñ Ð·Ñ€ÑƒÑ‡Ð½Ð¾ÑÑ‚Ñ– читаннÑ, але, загалом, Ñ—Ñ… можна Ñ– не викориÑтовувати."
+
+#. type: Plain text
+#: ../man/top.1:2378
+#, no-wrap
+msgid ""
+" #1 B<#2> #3 ( required )\n"
+" Field-Name ? include-if-value\n"
+" B<!> Field-Name ? B<exclude>-if-value\n"
+" #4 ( optional )\n"
+msgstr ""
+" #1 B<#2> #3 ( обов'Ñзкові )\n"
+" Ðазва-Ð¿Ð¾Ð»Ñ ? значеннÑ-длÑ-включеннÑ\n"
+" B<!> Ðазва-Ð¿Ð¾Ð»Ñ ? значеннÑ-длÑ-B<виключеннÑ>\n"
+" #4 ( додаткове )\n"
+
+#. type: Plain text
+#: ../man/top.1:2383
+msgid "Items #1, #3 and #4 should be self-explanatory. Item B<#2> represents both a required I<delimiter> and the I<operator> which must be one of either equality (`=') or relation (`E<lt>' or `E<gt>')."
+msgstr "Пункти #1, #3 Ñ– #4 неважко зрозуміти Ñ– без поÑÑнень. Пункт B<#2> Ñ” одразу Ñ– обов'Ñзковим I<роздільником>, Ñ– I<оператором>, Ñким Ñ” одне зі значень: рівніÑÑ‚ÑŒ («=») або Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ («E<lt>» або «E<gt>»)."
+
+#. type: Plain text
+#: ../man/top.1:2392
+msgid "The `=' equality operator requires only a partial match and that can reduce your `if-value' input requirements. The `E<gt>' or `E<lt>' relational operators always employ string comparisons, even with numeric fields. They are designed to work with a field's default I<justification> and with homogeneous data. When some field's numeric amounts have been subjected to I<scaling> while others have not, that data is no longer homogeneous."
+msgstr "Оператор рівноÑÑ‚Ñ– «=» потребує лише чаÑткової відповідноÑÑ‚Ñ– Ñ– це може зменшити вимоги щодо вхідних даних Ð´Ð»Ñ Â«Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ». Ð”Ð»Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ñ–Ð² Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Â«E<gt>» або «E<lt>» буде викориÑтано порівнÑÐ½Ð½Ñ Ñ€Ñдків, навіть Ð´Ð»Ñ Ñ‡Ð¸Ñлових полів. Їх розроблено Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ з типовим I<вирівнюваннÑм> полів Ñ– однорідними даними. Якщо деÑкі чиÑлові дані у певному полі I<маÑштабовано>, а інші ні, дані вже не будуть однорідними."
+
+#. type: Plain text
+#: ../man/top.1:2399
+msgid "If you establish a relational filter and you B<have> changed the default Numeric or Character I<justification>, that filter is likely to fail. When a relational filter is applied to a memory field and you B<have not> changed the I<scaling>, it may produce misleading results. This happens, for example, because `100.0m' (MiB) would appear greater than `1.000g' (GiB) when compared as strings."
+msgstr "Якщо вами вÑтановлено фільтр Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ñ– ви B<змінили> типове I<вирівнюваннÑ> чиÑлових або Ñимвольних даних, цей фільтр, ймовірно, не Ñпрацює. Якщо фільтр Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ð·Ð°ÑтоÑовано до Ð¿Ð¾Ð»Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–, Ñ– вами B<не змінено> I<маÑштабуваннÑ>, результати можуть бути помилковими. Таке траплÑєтьÑÑ, наприклад, оÑкільки «100.0m» (МіБ) програма вважає більшим значеннÑм за «1.000g» (ГіБ) при порівнÑнні Ñ€Ñдків."
+
+#. type: Plain text
+#: ../man/top.1:2403
+msgid "If your filtered results appear suspect, simply altering justification or scaling may yet achieve the desired objective. See the `j', `J' and `e' \\*(CIs for additional information."
+msgstr "Якщо фільтровані результати виглÑдають підозріливо, проÑто змініть Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð±Ð°Ð¶Ð°Ð½Ð¾Ñ— мети. Щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про вирівнюваннÑ, ознайомтеÑÑ Ñ–Ð· опиÑом інтерактивних команд «j», «J» Ñ– «e»."
+
+#. type: Plain text
+#: ../man/top.1:2406
+msgid "B<Potential Problems>"
+msgstr "B<Потенційні проблеми>"
+
+#. type: Plain text
+#: ../man/top.1:2410
+msgid "These B<GROUP> filters could produce the exact same results or the second one might not display anything at all, just a blank \\*(TW."
+msgstr "Ці фільтри Ð´Ð»Ñ B<GROUP> можуть давати Ñ‚Ñ– Ñамі результати або другий фільтр не покаже нічого, проÑто порожнє вікно завдань."
+
+#. type: Plain text
+#: ../man/top.1:2413
+#, no-wrap
+msgid ""
+" GROUP=root ( only the same results when )\n"
+" GROUP=ROOT ( invoked via lower case `o' )\n"
+msgstr ""
+" GROUP=root ( Ñ‚Ñ– Ñамі результати, лише )\n"
+" GROUP=ROOT ( Ñкщо викликано малим «o» )\n"
+
+#. type: Plain text
+#: ../man/top.1:2418
+msgid "Either of these B<RES> filters might yield inconsistent and/or misleading results, depending on the current memory scaling factor. Or both filters could produce the exact same results."
+msgstr "Обидва цих фільтри за B<RES> можуть дати різні Ñ–/або помилкові результати, залежно від поточного коефіцієнта маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–. Втім, обидва фільтри можуть дати абÑолютно однакові результати."
+
+#. type: Plain text
+#: ../man/top.1:2421
+#, no-wrap
+msgid ""
+" RESE<gt>9999 ( only the same results when )\n"
+" !RESE<lt>10000 ( memory scaling is at `KiB' )\n"
+msgstr ""
+" RESE<gt>9999 ( Ñ‚Ñ– Ñамі результати, лише )\n"
+" !RESE<lt>10000 ( Ñкщо пам'ÑÑ‚ÑŒ маÑштабовано за «КіБ» )\n"
+
+#. type: Plain text
+#: ../man/top.1:2427
+msgid "This B<nMin> filter illustrates a problem unique to scalable fields. This particular field can display a maximum of 4 digits, beyond which values are automatically scaled to KiB or above. So while amounts greater than 9999 exist, they will appear as 2.6m, 197k, etc."
+msgstr "Цей фільтр за B<nMin> ілюÑтрує проблему, Ñка Ñ” притаманною маÑштабованим полÑм. У цьому полі, зокрема, може бути показано не більше 4 цифр. При перевищенні кількоÑÑ‚Ñ– Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ автоматично маÑштабовано до КіБ або більшої одиниці. І, Ñкщо Ñ–Ñнують значеннÑ, Ñкі Ñ” більшими 9999, Ñ—Ñ… буде показано Ñк 2,6m, 197k тощо."
+
+#. type: Plain text
+#: ../man/top.1:2429
+#, no-wrap
+msgid " nMinE<gt>9999 ( always a blank \\*(TW )\n"
+msgstr " nMinE<gt>9999 ( завжди порожнє \\*(TW )\n"
+
+#. type: Plain text
+#: ../man/top.1:2433
+msgid "B<Potential Solutions>"
+msgstr "B<Потенційні рішеннÑ>"
+
+#. type: Plain text
+#: ../man/top.1:2440
+msgid "These examples illustrate how Other Filtering can be creatively applied to achieve almost any desired result. Single quotes are sometimes shown to delimit the spaces which are part of a filter or to represent a request for status (^O) accurately. But if you used them with if-values in real life, no matches would be found."
+msgstr "Ці приклад ілюÑтрують, Ñк інше Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° творчо заÑтоÑувати до Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¼Ð°Ð¹Ð¶Ðµ будь-Ñких бажаних результатів. Одинарні лапки іноді викориÑтовують Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾ÐºÑ€ÐµÐ¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ñ–Ð»Ñ–Ð², Ñкі Ñ” чаÑтиною фільтра, або точного предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ щодо Ñтану (^O). Ðле Ñкщо ви викориÑтаєте Ñ—Ñ… із значеннÑми в умовах в реальних прикладах, нічого не буде знайдено."
+
+#. type: Plain text
+#: ../man/top.1:2445
+msgid "Assuming field B<nTH> is displayed, the first filter will result in only multi-threaded processes being shown. It also reminds us that a trailing space is part of every displayed field. The second filter achieves the exact same results with less typing."
+msgstr "Якщо припуÑтити, що показано поле B<nTH>, перший фільтр призведе до показу лише процеÑів із декількома потоками обробки. Також приклад нагадує нам, що чаÑтиною кожного показаного Ð¿Ð¾Ð»Ñ Ñ” кінцевий пробіл. Другий фільтр дає абÑолютно такий Ñамий результат, але він Ñ” коротшим."
+
+#. type: Plain text
+#: ../man/top.1:2448
+#, no-wrap
+msgid ""
+" !nTH=` 1 ' ( ` for clarity only )\n"
+" nTHE<gt>1 ( same with less i/p )\n"
+msgstr ""
+" !nTH=` 1 ' ( ' лише Ð´Ð»Ñ Ð·Ñ€ÑƒÑ‡Ð½Ð¾ÑÑ‚Ñ– Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ )\n"
+" nTHE<gt>1 ( те Ñаме, але коротше )\n"
+
+#. type: Plain text
+#: ../man/top.1:2452
+msgid "With Forest View mode active and the B<COMMAND> column in view, this filter effectively collapses child processes so that just 3 levels are shown."
+msgstr "Якщо активним Ñ” режим переглÑду ліÑу Ñ– показано Ñтовпчик B<COMMAND>, викориÑÑ‚Ð°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ фільтра призведе до Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð´Ð¾Ñ‡Ñ–Ñ€Ð½Ñ–Ñ… процеÑів так, що буде показано лише 3 рівні."
+
+#. type: Plain text
+#: ../man/top.1:2454
+#, no-wrap
+msgid " !COMMAND=` `- ' ( ` for clarity only )\n"
+msgstr " !COMMAND=` `- ' ( ' лише Ð´Ð»Ñ Ð·Ñ€ÑƒÑ‡Ð½Ð¾ÑÑ‚Ñ– Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ )\n"
+
+#. type: Plain text
+#: ../man/top.1:2462
+msgid "The final two filters appear as in response to the status request key (^O). In reality, each filter would have required separate input. The B<PR> example shows the two concurrent filters necessary to display tasks with priorities of 20 or more, since some might be negative. Then by exploiting trailing spaces, the B<nMin> series of filters could achieve the failed `9999' objective discussed above."
+msgstr "ОÑтанні два фільтри показано Ñк відповіді на натиÑÐºÐ°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð±Ñ–Ð½Ð°Ñ†Ñ–Ñ— запиту щодо Ñтану (^O). У реальноÑÑ‚Ñ– Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ з них потрібні окремі вхідні дані. У прикладі Ð´Ð»Ñ B<PR> показано два конкурентних фільтри, потрібні Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ завдань із пріоритетноÑÑ‚Ñми 20 або більше, оÑкільки Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– можуть бути Ñ– від'ємними. Далі, викориÑтовуючи кінцеві пробіли, набір фільтрів B<nMin> надає змогу отримати результат у випадку з помилкою «9999», Ñку обговорено вище."
+
+#. type: Plain text
+#: ../man/top.1:2465
+#, no-wrap
+msgid ""
+" `PRE<gt>20' + `!PR=-' ( 2 for right result )\n"
+" `!nMin=0 ' + `!nMin=1 ' + `!nMin=2 ' + `!nMin=3 ' ...\n"
+msgstr ""
+" `PRE<gt>20' + `!PR=-' ( 2 Ð´Ð»Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¾Ð³Ð¾ результату )\n"
+" `!nMin=0 ' + `!nMin=1 ' + `!nMin=2 ' + `!nMin=3 ' ...\n"
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2469
+#, no-wrap
+msgid "6. FILES"
+msgstr "6. ФÐЙЛИ"
+
+#. ----------------------------------------------------------------------
+#. type: SS
+#: ../man/top.1:2471
+#, no-wrap
+msgid "6a. PERSONAL Configuration File"
+msgstr "6а. ФÐЙЛ ОСОБИСТИХ ÐÐЛÐШТУВÐÐЬ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2474
+msgid "This file is created or updated via the `W' \\*(CI."
+msgstr "Цей файл ÑтворюєтьÑÑ Ñ– оновлюєтьÑÑ Ñ–Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾ÑŽ командою «W»."
+
+#. type: Plain text
+#: ../man/top.1:2477
+msgid "The legacy version is written as `$HOME/.your-name-4-\\*(We' + `rc' with a leading period."
+msgstr "ЗаÑтарілу верÑÑ–ÑŽ буде запиÑано Ñк `$HOME/.ваша-назва-4-\\*(We' + `rc' з початковою крапкою у назві."
+
+#. type: Plain text
+#: ../man/top.1:2482
+msgid "A newly created \\*(CF is written as procps/your-name-4-\\*(We' + `rc' without a leading period. The procps directory will be subordinate to either $XDG_CONFIG_HOME when set as an absolute path or the $HOME/.config directory."
+msgstr "ÐовоÑтворений файл налаштувань буде запиÑано Ñк procps/ваша-назва-4-\\*(We' + «rc» без початкового пробілу. Каталог procps Ñ” підкаталогом або у каталозі, Ñкий визначаєтьÑÑ Ð·Ð¼Ñ–Ð½Ð½Ð¾ÑŽ $XDG_CONFIG_HOME, Ñкщо Ñ—Ñ— значеннÑм Ñ” абÑолютний шлÑÑ…, або у каталозі $HOME/.config."
+
+#. type: Plain text
+#: ../man/top.1:2484
+msgid "While not intended to be edited manually, here is the general layout:"
+msgstr "Хоча файл Ñ– не призначено Ð´Ð»Ñ Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ€ÑƒÑ‡Ð½Ñƒ, оÑÑŒ його загальне компонуваннÑ:"
+
+#. type: Plain text
+#: ../man/top.1:2494
+#, no-wrap
+msgid ""
+" global # line 1: the program name/alias notation\n"
+" \" # line 2: id,altscr,irixps,delay,curwin\n"
+" per ea # line a: winname,fieldscur\n"
+" window # line b: winflags,sortindx,maxtasks,etc\n"
+" \" # line c: summclr,msgsclr,headclr,taskclr\n"
+" global # line 15: additional miscellaneous settings\n"
+" \" # any remaining lines are devoted to optional\n"
+" \" # active `other filters' discussed in section 5e above\n"
+" \" # plus `inspect' entries discussed in section 6b below\n"
+msgstr ""
+" загальне # Ñ€Ñдок 1: назва/альтернатива назви програми\n"
+" \" # Ñ€Ñдок 2: id,altscr,irixps,delay,curwin\n"
+" окремі # Ñ€Ñдок a: winname,fieldscur\n"
+" вікна # Ñ€Ñдок b: winflags,sortindx,maxtasks тощо\n"
+" \" # Ñ€Ñдок c: summclr,msgsclr,headclr,taskclr\n"
+" загальне # Ñ€Ñдок 15: різні додаткові параметри\n"
+" \" # у решті Ñ€Ñдків опиÑують необов'Ñзкові активні\n"
+" \" # «інші фільтри», Ñкі опиÑано у розділі 5д вище, а\n"
+" \" # також запиÑи «inspect», Ñкі опиÑано у розділі 6б нижче\n"
+
+#. type: Plain text
+#: ../man/top.1:2498
+msgid "If a valid absolute path to the rcfile cannot be established, customizations made to a running \\*(We will be impossible to preserve."
+msgstr "Якщо коректний абÑолютний шлÑÑ… до файла rc не вдаÑÑ‚ÑŒÑÑ Ð²Ñтановити, налаштуваннÑ, Ñкі виконано у запущеній програмі \\*(We, не можна буде зберегти."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2500
+#, no-wrap
+msgid "6b. ADDING INSPECT Entries"
+msgstr "6б. ДОДÐÐ’ÐÐÐЯ ЗÐПИСІВ ДЛЯ ІÐСПЕКТУВÐÐÐЯ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2507
+msgid "To exploit the `Y' \\*(CI, you must add entries at theB< end> of the \\*(We personal \\*(CF. Such entries simply reflect a file to be read or command/pipeline to be executed whose results will then be displayed in a separate scrollable, searchable window."
+msgstr "Щоб ÑкориÑтатиÑÑ Ñ–Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾ÑŽ командою «Y», вам Ñлід додати запиÑи B<наприкінці> оÑобиÑтого файла налаштувань \\*(We. Такі запиÑи проÑто вказують файл, Ñкий Ñлід прочтати або команду/канал даних, Ñкі Ñлід виконати, Ñ– результати Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñких Ñлід показати в окремому придатному до Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ñ– пошуку вікні."
+
+#. type: Plain text
+#: ../man/top.1:2510
+msgid "If you don't know the location or name of your \\*(We rcfile, use the `W' \\*(CI to rewrite it and note those details."
+msgstr "Якщо вам не відоме міÑце Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ назва вашого файла rc \\*(We, ÑкориÑтайтеÑÑ Ñ–Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾ÑŽ командою «W», щоб перезапиÑати його Ñ– запам'Ñтайте його параметри."
+
+#. type: Plain text
+#: ../man/top.1:2517
+msgid "Inspect entries can be added with a redirected echo or by editing the \\*(CF. Redirecting an echo risks overwriting the rcfile should it replace (E<gt>) rather than append (E<gt>E<gt>) to that file. Conversely, when using an editor care must be taken not to corrupt existing lines, some of which could contain unprintable data or unusual characters depending on the \\*(We version under which that \\*(CF was saved."
+msgstr "ЗапиÑи інÑÐ¿ÐµÐºÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° додати переÑпрÑмовуваннÑм echo або редагуваннÑм файла налаштувань. ПереÑпрÑÐ¼Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ echo небезпечне через можливіÑÑ‚ÑŒ перезапиÑу файла rc, Ñкщо буде викориÑтано заміну (E<gt>), а не допиÑÑƒÐ²Ð°Ð½Ð½Ñ (E<gt>E<gt>) до цього файла. Ð Ñкщо ви кориÑтуватиметеÑÑ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ð¾Ð¼, Ñлід Ñлідкувати за тим, щоб не пошкодити наÑвні Ñ€Ñдки, деÑкі з Ñких будуть міÑтити непридатні до друку або незвичайні Ñимволи, залежно від верÑÑ–Ñ— \\*(We, у Ñкій було збережено файл налаштувань."
+
+#. type: Plain text
+#: ../man/top.1:2522
+msgid "Those Inspect entries beginning with a `#' character are ignored, regardless of content. Otherwise they consist of the following 3 elements, each of whichI< must> be separated by a tab character (thus 2 `\\et' total):"
+msgstr "ЗапиÑи інÑпектуваннÑ, Ñкі починаютьÑÑ Ð· Ñимволу «#» буде проігноровано, незалежно від вміÑту. Інші запиÑи мають ÑкладатиÑÑ Ð· вказаних нижче 3 елементів, кожен з Ñких I<має> бути відокремлено від інших Ñимволом табулÑції (отже, міÑтити загалом 2 «\\et»):"
+
+#. type: Plain text
+#: ../man/top.1:2527
+#, no-wrap
+msgid ""
+" .type: literal `file' or `pipe'\n"
+" .name: selection shown on the Inspect screen\n"
+" .fmts: string representing a path or command\n"
+msgstr ""
+" .type: буквально «file» або «pipe»\n"
+" .name: вибір, Ñкий буде показано на екрані інÑпектуваннÑ\n"
+" .fmts: Ñ€Ñдок шлÑху або команди\n"
+
+#. type: Plain text
+#: ../man/top.1:2534
+msgid "The two types of Inspect entries areI< not> interchangeable. Those designated `B<file>' will be accessed using fopen and must reference a single file in the `.fmts' element. Entries specifying `B<pipe>' will employ popen, their `.fmts' element could contain many pipelined commands and, none can be interactive."
+msgstr "Два типи запиÑів інÑÐ¿ÐµÐºÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ I<не> Ñ” взаємозамінними. ДоÑтуп до тих, Ñкі позначено Ñк «B<file>», буде здійÑнюватиÑÑ Ð·Ð° допомогою fopen, вони мають поÑилатиÑÑ Ð½Ð° єдиний файл в елементі «.fmts». ЗапиÑи, Ñкі задають «B<pipe>» підлÑгатимуть дії popen, їхній елемент «.fmts» може міÑтити багато команд у конвеєрі, жодна з цих команд не повинна бути інтерактивною."
+
+#. type: Plain text
+#: ../man/top.1:2538
+msgid "If the file or pipeline represented in your `.fmts' deals with the specific PID input or accepted when prompted, then the format string must also contain the `B<%d>' specifier, as these examples illustrate."
+msgstr "Якщо файл або конвеєр, предÑтавлений у вашому «.fmts», має Ñправу зі Ñпецифічними вхідними даними PID або приймає дані, Ñкщо запитано, у Ñ€Ñдку Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð°ÐºÐ¾Ð¶ має міÑтитиÑÑ ÑÐ¿ÐµÑ†Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ Â«B<%d>», Ñк у наших демонÑтраційних прикладах."
+
+#. type: Plain text
+#: ../man/top.1:2542
+#, no-wrap
+msgid ""
+" .fmts= /proc/I<%d>/numa_maps\n"
+" .fmts= lsof -P -pI< %d>\n"
+msgstr ""
+" .fmts= /proc/I<%d>/numa_maps\n"
+" .fmts= lsof -P -pI< %d>\n"
+
+#. type: Plain text
+#: ../man/top.1:2547
+msgid "For `B<pipe>' type entries only, you may also wish to redirect stderr to stdout for a more comprehensive result. Thus the format string becomes:"
+msgstr "Лише Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñів типу «B<pipe>», вам, ймовірно, також Ñлід переÑпрÑмувати stderr до stdout Ð´Ð»Ñ Ð¿Ð¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñ–Ð². Таким чином, Ñ€Ñдок Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ таким:"
+
+#. type: Plain text
+#: ../man/top.1:2550
+#, no-wrap
+msgid " .fmts= pmap -x %dI< 2E<gt>&1>\n"
+msgstr " .fmts= pmap -x %dI< 2E<gt>&1>\n"
+
+#. type: Plain text
+#: ../man/top.1:2557
+msgid "Here are examples of both types of Inspect entries as they might appear in the rcfile. The first entry will be ignored due to the initial `#' character. For clarity, the pseudo tab depictions (^I) are surrounded by an extra space but the actual tabs would not be."
+msgstr "Тут наведено приклади обох типів запиÑів інÑÐ¿ÐµÐºÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ такому виглÑді, у Ñкому вони можуть з'ÑвлÑтиÑÑ Ñƒ файлі rc. Перший Ð·Ð°Ð¿Ð¸Ñ Ð±ÑƒÐ´Ðµ проігноровано через початковий Ñимвол «#». Ð”Ð»Ñ Ð·Ñ€ÑƒÑ‡Ð½Ð¾ÑÑ‚Ñ– Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð´Ð¾ пÑевдозамінників табулÑції (^I) додано додаткові пробіли з обох боків, але Ñправжні табулÑції таким чином не виокремлено."
+
+#. type: Plain text
+#: ../man/top.1:2563
+#, no-wrap
+msgid ""
+" # pipe ^I Sockets ^I lsof -n -P -i 2E<gt>&1\n"
+" pipe ^I Open Files ^I lsof -P -p %d 2E<gt>&1\n"
+" file ^I NUMA Info ^I /proc/%d/numa_maps\n"
+" pipe ^I Log ^I tail -n100 /var/log/syslog | sort -Mr\n"
+msgstr ""
+" # pipe ^I Sockets ^I lsof -n -P -i 2E<gt>&1\n"
+" pipe ^I Open Files ^I lsof -P -p %d 2E<gt>&1\n"
+" file ^I NUMA Info ^I /proc/%d/numa_maps\n"
+" pipe ^I Log ^I tail -n100 /var/log/syslog | sort -Mr\n"
+
+#. type: Plain text
+#: ../man/top.1:2570
+msgid "Except for the commented entry above, these next examples show what could be echoed to achieve similar results, assuming the rcfile name was `.toprc'. However, due to the embedded tab characters, each of these lines should be preceded by `B</bin/echo -e>', not just a simple an `echo', to enable backslash interpretation regardless of which shell you use."
+msgstr "Окрім коментованого запиÑу вище, у наÑтупних прикладах показано, що можна переÑпрÑмувати з echo Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ð¾Ð´Ñ–Ð±Ð½Ð¸Ñ… результатів, у припущенні, що файлом rc Ñ” файл «.toprc». Втім, через вбудовані Ñимволи табулÑції перед кожним з цих Ñ€Ñдків Ñлід допиÑувати «B</bin/echo -e>», а не проÑто «echo», щоб уможливити обробку Ñимволів зворотної похилої риÑки, незалежно від викориÑтаної вами командної оболонки."
+
+#. type: Plain text
+#: ../man/top.1:2575
+#, no-wrap
+msgid ""
+" \"pipe\\etOpen Files\\etlsof -P -p %d 2E<gt>&1\" E<gt>E<gt> ~/.toprc\n"
+" \"file\\etNUMA Info\\et/proc/%d/numa_maps\" E<gt>E<gt> ~/.toprc\n"
+" \"pipe\\etLog\\ettail -n200 /var/log/syslog | sort -Mr\" E<gt>E<gt> ~/.toprc\n"
+msgstr ""
+" \"pipe\\etOpen Files\\etlsof -P -p %d 2E<gt>&1\" E<gt>E<gt> ~/.toprc\n"
+" \"file\\etNUMA Info\\et/proc/%d/numa_maps\" E<gt>E<gt> ~/.toprc\n"
+" \"pipe\\etLog\\ettail -n200 /var/log/syslog | sort -Mr\" E<gt>E<gt> ~/.toprc\n"
+
+#. type: Plain text
+#: ../man/top.1:2584
+msgid "If any inspect entry you create produces output with unprintable characters they will be displayed in either the ^C notation or hexadecimal E<lt>FFE<gt> form, depending on their value. This applies to tab characters as well, which will show as `^I'. If you want a truer representation, any embedded tabs should be expanded. The following example takes what could have been a `file' entry but employs a `pipe' instead so as to expand the embedded tabs."
+msgstr "Якщо будь-Ñкий зі Ñтворених вами запиÑів інÑÐ¿ÐµÐºÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð²Ð¾Ð´Ð¸Ñ‚Ð¸Ð¼Ðµ дані із непридатними до друку Ñимволами, Ñ—Ñ… буде показано або у позначеннÑÑ…, подібних до ^C, або у шіÑтнадцÑтковій формі, подібній до E<lt>FFE<gt>, залежно від значеннÑ. Це ÑтоÑуєтьÑÑ Ñимволів табулÑції, Ñкі буде показано Ñк «^I». Якщо вам потрібне краще предÑтавленнÑ, уÑÑ– вбудовані табулÑції має бути розгорнуто. У наведеному нижче прикладі програма приймає те, що могло б бути запиÑом «file», але викориÑтовує заміÑÑ‚ÑŒ нього «pipe» Ð´Ð»Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð²Ð±ÑƒÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ… табулÑцій."
+
+#. type: Plain text
+#: ../man/top.1:2590
+#, no-wrap
+msgid ""
+" # next would have contained `\\et' ...\n"
+" # file ^I E<lt>your_nameE<gt> ^I /proc/%d/status\n"
+" # but this will eliminate embedded `\\et' ...\n"
+" pipe ^I E<lt>your_nameE<gt> ^I cat /proc/%d/status | expand -\n"
+msgstr ""
+" # наÑтупний Ñ€Ñдок мав би міÑтити «\\et» ...\n"
+" # файл ^I E<lt>ваша_назваE<gt> ^I /proc/%d/status\n"
+" # але це вилучить вбудований `\\et' ...\n"
+" pipe ^I E<lt>ваша_назваE<gt> ^I cat /proc/%d/status | expand -\n"
+
+#. type: Plain text
+#: ../man/top.1:2596
+msgid "\\*(NT Some programs might rely on I<SIGINT> to end. Therefore, if a `B<pipe>' such as the following is established, one must use Ctrl-C to terminate it in order to review the results. This is the single occasion where a `^C' will not also terminate \\*(We."
+msgstr "\\*(NT Ð”Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð´ÐµÑких програм може бути потрібним I<SIGINT>. Тому, Ñкщо вÑтановлено «B<pipe>», подібний до наведеного нижче, доведетьÑÑ ÑкориÑтатиÑÑ Ctrl-C Ð´Ð»Ñ Ð¹Ð¾Ð³Ð¾ перериваннÑ, щоб переглÑнути результати. Це єдиний випадок, коли «^C» не завершить також Ñ– роботу \\*(We."
+
+#. type: Plain text
+#: ../man/top.1:2599
+#, no-wrap
+msgid " pipe ^I Trace ^I /usr/bin/strace -p %d 2E<gt>&1\n"
+msgstr " pipe ^I Trace ^I /usr/bin/strace -p %d 2E<gt>&1\n"
+
+#. type: Plain text
+#: ../man/top.1:2605
+msgid "Lastly, while `B<pipe>' type entries have been discussed in terms of pipelines and commands, there is nothing to prevent you from including I< shell scripts> as well. Perhaps even newly created scripts designed specifically for the `Y' \\*(CI."
+msgstr "Ðарешті, хоча ми опиÑували запиÑи типу «B<pipe>» у термінах конвеєрів Ñ– команд, нічого не заважає вам включати Ñ– I<Ñкрипти командної оболонки>. Можливо, навіть новоÑтворені Ñкрипти, Ñкі Ñпеціально розроблено Ð´Ð»Ñ Ñ–Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ñ— команди «Y»."
+
+#. type: Plain text
+#: ../man/top.1:2611
+msgid "For example, as the number of your Inspect entries grows over time, the `Options:' row will be truncated when screen width is exceeded. That does not affect operation other than to make some selections invisible. However, if some choices are lost to truncation but you want to see more options, there is an easy solution hinted at below."
+msgstr "Ðаприклад, зі зроÑтаннÑм кількоÑÑ‚Ñ– запиÑів інÑÐ¿ÐµÐºÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð· чаÑом, Ñ€Ñдок «Параметри:» буде обрізано при перевищенні ширини екрана. Це не вплине на працездатніÑÑ‚ÑŒ запиÑів, але зробить деÑкі з варіантів вибору невидимими. Втім, Ñкщо деÑкі варіанти обрізано, а ви хочете переглÑнути уÑÑ–, Ñ–Ñнує проÑте рішеннÑ, підказку щодо Ñкого можна бачити нижче."
+
+#. type: Plain text
+#: ../man/top.1:2616
+#, no-wrap
+msgid ""
+" Inspection Pause at pid ...\n"
+" Use: left/right then E<lt>EnterE<gt> ...\n"
+" Options: help 1 2 3 4 5 6 7 8 9 10 11 ...\n"
+msgstr ""
+" ІнÑÐ¿ÐµÐºÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐŸÑ€Ð¸Ð·ÑƒÐ¿Ð¸Ð½ÐºÐ°: pid ...\n"
+" Кор: ліворуч/праворуч, потім E<lt>EnterE<gt> ...\n"
+" Пункти: help 1 2 3 4 5 6 7 8 9 10 11 ...\n"
+
+#. type: Plain text
+#: ../man/top.1:2622
+msgid "The entries in the \\*(We rcfile would have a number for the `.name' element and the `help' entry would identify a shell script you've written explaining what those numbered selections actually mean. In that way, many more choices can be made visible."
+msgstr "ЗапиÑи у файлі rc \\*(We повинні мати номери у елементах «.name», а Ð·Ð°Ð¿Ð¸Ñ Â«help» має ідентифікувати Ñкрипт оболонки, Ñкий ви напиÑали Ð´Ð»Ñ Ð¿Ð¾ÑÑÐ½ÐµÐ½Ð½Ñ Ñ‚Ð¾Ð³Ð¾, що Ñаме позначають ці нумеровані варіанти вибору. У такий ÑпоÑіб можна зробити видимими набагато більше варіантів вибору."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2624
+#, no-wrap
+msgid "6c. SYSTEM Configuration File"
+msgstr "6в. ФÐЙЛ ЗÐГÐЛЬÐОСИСТЕМÐИХ ÐÐЛÐШТУВÐÐЬ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2629
+msgid "This \\*(CF represents defaults for users who have not saved their own \\*(CF. The format mirrors exactly the personal \\*(CF and can also include `inspect' entries as explained above."
+msgstr "Цей файл налаштувань міÑтить типові Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувачів, Ñкими не було збережено влаÑний файл налаштувань. Формат точно такий Ñамий, Ñк в оÑобиÑтих файлів налаштувань, а також може включати запиÑи «inspect», Ñкі опиÑано вище."
+
+#. type: Plain text
+#: ../man/top.1:2631
+msgid "Creating it is a simple process."
+msgstr "Процедура його ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñта."
+
+#. type: Plain text
+#: ../man/top.1:2634
+msgid "1. Configure \\*(We appropriately for your installation and preserve that configuration with the `W' \\*(CI."
+msgstr "1. Ðалаштуйте \\*(We відповідним чином Ð´Ð»Ñ Ð²Ñтановленої у Ð²Ð°Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ Ñ– збережіть Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° допомогою інтерактивної команди «W»."
+
+#. type: Plain text
+#: ../man/top.1:2636
+msgid "2. Add and test any desired `inspect' entries."
+msgstr "2. Додайте Ñ– перевірте роботу будь-Ñких бажаних запиÑів «inspect»."
+
+#. type: Plain text
+#: ../man/top.1:2638
+msgid "3. Copy that \\*(CF to the I</etc/> directory as `B<topdefaultrc>'."
+msgstr "3. Скопіюйте файл налаштувань до каталогу I</etc/>, ÑкориÑтавшиÑÑŒ Ð´Ð»Ñ Ð½ÑŒÐ¾Ð³Ð¾ назвою `B<topdefaultrc>'."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2640
+#, no-wrap
+msgid "6d. SYSTEM Restrictions File"
+msgstr "6г. ФÐЙЛ ЗÐГÐЛЬÐОСИСТЕМÐИХ ОБМЕЖЕÐЬ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2644
+msgid "The presence of this file will influence which version of the help screen is shown to an ordinary user."
+msgstr "ÐаÑвніÑÑ‚ÑŒ цього файла вплине на те, Ñку верÑÑ–ÑŽ екрана довідки буде показано звичайному кориÑтувачу."
+
+#. type: Plain text
+#: ../man/top.1:2648
+msgid "More importantly, it will limit what ordinary users are allowed to do when \\*(We is running. They will not be able to issue the following commands."
+msgstr "Що важливіше, він обмежить перелік завдань, Ñкі зможуть виконувати звичайні кориÑтувачі, коли запущено \\*(We. КориÑтувачі не зможуть віддавати наведені нижче команди."
+
+#. type: Plain text
+#: ../man/top.1:2652
+#, no-wrap
+msgid ""
+" k Kill a task\n"
+" r Renice a task\n"
+" d or s Change delay/sleep interval\n"
+msgstr ""
+" k припинити Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ\n"
+" r змінити пріоритетніÑÑ‚ÑŒ (nice) завданнÑ\n"
+" d або s змінити інтервал затримки/приÑиплÑннÑ\n"
+
+#. type: Plain text
+#: ../man/top.1:2657
+msgid "This \\*(CF is not created by \\*(We. Rather, it is created manually and placed it in the I</etc/> directory as `B<toprc>'."
+msgstr "Цей файл налаштувань не буде Ñтворено \\*(We. ЗаміÑÑ‚ÑŒ цього, його Ñтворюють вручну Ñ– зберігають у каталозі I</etc/> із назвою «B<toprc>»."
+
+#. type: Plain text
+#: ../man/top.1:2659
+msgid "It should have exactly two lines, as shown in this example:"
+msgstr "У ньому має бути точно два Ñ€Ñдки, Ñк це показано у прикладі:"
+
+#. type: Plain text
+#: ../man/top.1:2662
+#, no-wrap
+msgid ""
+" s # line 1: secure mode switch\n"
+" 5.0 # line 2: delay interval in seconds\n"
+msgstr ""
+" s # Ñ€Ñдок 1: перемикач захищеного режиму\n"
+" 5.0 # Ñ€Ñдок 2: інтервал затримки у Ñекундах\n"
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2665
+#, no-wrap
+msgid "7. ENVIRONMENT VARIABLE(S)"
+msgstr "7. ЗМІÐÐІ СЕРЕДОВИЩÐ"
+
+#. type: Plain text
+#: ../man/top.1:2668 ../man/procps_pids.3:201
+msgid "The value set for the following is unimportant, just its presence."
+msgstr "Ð’Ñтановлене Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ” неÑуттєвим, доÑтатнього Ñамого факту його вÑтановленнÑ."
+
+#. type: IP
+#: ../man/top.1:2669 ../man/procps_pids.3:202
+#, no-wrap
+msgid "LIBPROC_HIDE_KERNEL"
+msgstr "LIBPROC_HIDE_KERNEL"
+
+#. type: Plain text
+#: ../man/top.1:2672
+msgid "This will prevent display of any kernel threads and exclude such processes from the \\*(SA Tasks/Threads counts."
+msgstr "Запобігає показу будь-Ñких потоків обробки Ñдра та виключає такі процеÑи з обліку завдань/потоків в облаÑÑ‚Ñ– резюме."
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2674
+#, no-wrap
+msgid "8. STUPID TRICKS Sampler"
+msgstr "8. ЗРÐЗКИ ДУРÐУВÐТИХ ТРЮКІВ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2679
+msgid "Many of these tricks work best when you give \\*(We a scheduling boost. So plan on starting him with a nice value of -10, assuming you've got the authority."
+msgstr "Багато з цих трюків найкраще працюють, Ñкщо ви підвищите пріоритетніÑÑ‚ÑŒ Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ \\*(We. Тому заплануйте запуÑк програми із значеннÑм пріоритетноÑÑ‚Ñ– (nice) -10, Ñкщо ви маєте відповідні права доÑтупу."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2681
+#, no-wrap
+msgid "7a. Kernel Magic"
+msgstr "7а. ÐœÐ°Ð³Ñ–Ñ Ñдра"
+
+#. ----------------------------------------------------------------------
+#. sorry, just can't help it -- don't ya love the sound of this?
+#. ( apparently AM static was a potential concern )
+#. type: Plain text
+#: ../man/top.1:2686
+msgid "For these stupid tricks, \\*(We needs \\*(FM."
+msgstr "Ð”Ð»Ñ Ñ†Ð¸Ñ… химерних трюків потрібен повноекранний режим."
+
+#. type: Plain text
+#: ../man/top.1:2693
+msgid "The user interface, through prompts and help, intentionally implies that the delay interval is limited to tenths of a second. However, you're free to set any desired delay. If you want to see Linux at his scheduling best, try a delay of .09 seconds or less."
+msgstr "Ð†Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÐºÐ¾Ñ€Ð¸Ñтувача, у запитах Ñ– довідці, навмиÑне припуÑкає, що інтервал затримки обмежено деÑÑтими чаÑтками Ñекунди. Втім, ви можете вÑтановити будь-Ñку бажану затримку. Якщо ви хочете бачити уÑÑ– можливоÑÑ‚Ñ– Linux, Ñпробуйте затримку у 0,09 Ñекунд або меншу."
+
+#. type: Plain text
+#: ../man/top.1:2696
+msgid "For this experiment, under x-windows open an xterm and maximize it. Then do the following:"
+msgstr "Ð”Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ екÑперименту відкрийте у x-window xterm Ñ– макÑимізуйте вікно програми. Далі, зробіть таке:"
+
+#. type: Plain text
+#: ../man/top.1:2705
+#, no-wrap
+msgid ""
+" . provide a scheduling boost and tiny delay via:\n"
+" nice -n -10 \\*(We -d.09\n"
+" . keep sorted column highlighting \\*F so as to\n"
+" minimize path length\n"
+" . turn \\*O reverse row highlighting for emphasis\n"
+" . try various sort columns (TIME/MEM work well),\n"
+" and normal or reverse sorts to bring the most\n"
+" active processes into view\n"
+msgstr ""
+" . вÑтановіть підвищений пріоритет Ñ– малу затримку:\n"
+" nice -n -10 \\*(We -d.09\n"
+" . вимкніть підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ñтовпчика упорÑдковуваннÑ\n"
+" так, щоб мінімізувати довжину шлÑху\n"
+" . увімкніть зворотне підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð°ÐºÑ†ÐµÐ½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ\n"
+" . Ñпробуйте різні Ñтовпчики упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ (добрий\n"
+" варіант TIME/MEM) і звичайне або обернене\n"
+" упорÑÐ´ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб бачити більшіÑÑ‚ÑŒ\n"
+" активних процеÑів\n"
+
+#. type: Plain text
+#: ../man/top.1:2709
+msgid "What you'll see is a very busy Linux doing what he's always done for you, but there was no program available to illustrate this."
+msgstr "Ви побачите дуже зайнÑтий Linux, Ñкий робить те, що завжди Ð´Ð»Ñ Ð²Ð°Ñ, але без програми, Ñка б це ілюÑтрувала."
+
+#. type: Plain text
+#: ../man/top.1:2715
+msgid "Under an xterm using `white-on-black' colors, on \\*(We's Color Mapping screen set the task color to black and be sure that task highlighting is set to bold, not reverse. Then set the delay interval to around .3 seconds."
+msgstr "У xterm з викориÑтаннÑм чорно-білих кольорів на екрані прив'Ñзки кольорів \\*(We вÑтановіть чорний колір завдань Ñ– переконайтеÑÑ, що Ð´Ð»Ñ Ð¿Ñ–Ð´ÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñтановлено напівжирний шрифт, а не обернений. Далі, вÑтановіть інтервал затримки у значеннÑ, Ñке приблизно дорівнює 0,3 Ñекунди."
+
+#. type: Plain text
+#: ../man/top.1:2718
+msgid "After bringing the most active processes into view, what you'll see are the ghostly images of just the currently running tasks."
+msgstr "ПіÑÐ»Ñ Ñ‚Ð¾Ð³Ð¾, Ñк Ñтане видимою більшіÑÑ‚ÑŒ активних процеÑів, ви побачите примарні образи лише поточних робочих завдань."
+
+#. type: Plain text
+#: ../man/top.1:2724
+msgid "Delete the existing rcfile, or create a new symlink. Start this new version then type `T' (a secret key, \\*(Xt 4c. Task Area Commands, SORTING) followed by `W' and `q'. Finally, restart the program with -d0 (zero delay)."
+msgstr "Вилучіть наÑвний файл rc або Ñтворіть нове Ñимволічне поÑиланнÑ. ЗапуÑÑ‚Ñ–Ñ‚ÑŒ цю нову верÑÑ–ÑŽ, потім натиÑніть клавішу «T» (Ñекретна клавіша, див. 4в. КОМÐÐДИ ОБЛÐСТІ ЗÐВДÐÐЬ, УПОРЯДКОВУВÐÐÐЯ), потім клавіші «W» Ñ– «q». Ðарешті, перезапуÑÑ‚Ñ–Ñ‚ÑŒ програму з викориÑтаннÑм параметра -d0 (нульова затримка)."
+
+#. type: Plain text
+#: ../man/top.1:2729
+msgid "Your display will be refreshed at three times the rate of the former \\*(We, a 300% speed advantage. As \\*(We climbs the TIME ladder, be as patient as you can while speculating on whether or not \\*(We will ever reach the \\*(We."
+msgstr "Ваш диÑплей буде оновлюватиÑÑ ÑƒÑ‚Ñ€Ð¸Ñ‡Ñ– швидше, ніж до цього у \\*(We, — 300% Ð¿Ñ–Ð´Ð²Ð¸Ñ‰ÐµÐ½Ð½Ñ ÑˆÐ²Ð¸Ð´ÐºÐ¾ÑÑ‚Ñ–. ОÑкільки \\*(We здираєтьÑÑ Ð´Ñ€Ð°Ð±Ð¸Ð½Ð¾ÑŽ TIME, будьте терплÑчими, оÑкільки важко вгадати, чи зможе \\*(We наздогнати \\*(We."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2731
+#, no-wrap
+msgid "7b. Bouncing Windows"
+msgstr "7б. Вікна-Ñтрибунці"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2734
+msgid "For these stupid tricks, \\*(We needs \\*(AM."
+msgstr "Ð”Ð»Ñ Ñ†Ð¸Ñ… химерних трюків потрібен режим альтернативного показу."
+
+#. type: Plain text
+#: ../man/top.1:2740
+msgid "With 3 or 4 \\*(TDs visible, pick any window other than the last and turn idle processes \\*F using the `i' \\*(CT. Depending on where you applied `i', sometimes several \\*(TDs are bouncing and sometimes it's like an accordion, as \\*(We tries his best to allocate space."
+msgstr "Із 3 або 4 видимими показами завдань виберіть будь-Ñке вікно, окрім оÑтаннього Ñ– вимкніть бездіÑльні процеÑи за допомогою команди-перемикача «i». Залежно від того, де вами заÑтоÑовано «i», іноді підÑтрибуватимуть декілька показів завдань, а іноді, вÑе нагадуватиме акордеон, оÑкільки \\*(We намагатиметьÑÑ Ñкнайкраще викориÑтати проÑÑ‚Ñ–Ñ€ на екрані."
+
+#. type: Plain text
+#: ../man/top.1:2746
+msgid "Set each window's summary lines differently: one with no memory (`m'); another with no states (`t'); maybe one with nothing at all, just the message line. Then hold down `a' or `w' and watch a variation on bouncing windows \\*(Em hopping windows."
+msgstr "Ð’Ñтановіть Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ з вікон різні Ñ€Ñдки резюме: один без пам'ÑÑ‚Ñ– («m»); інший без Ñтанів («t»); можливо, один взагалі без нічого, проÑто Ñ€Ñдок повідомленнÑ. Далі, натиÑніть Ñ– утримуйте «a» або «w», Ñ– ÑпоÑтерігайте за варіацією у підÑтрибуванні вікон \\*(Em вікна-Ñтрибунці."
+
+#. type: Plain text
+#: ../man/top.1:2751
+msgid "Display all 4 windows and for each, in turn, set idle processes to \\*F using the `i' \\*(CT. You've just entered the \"extreme bounce\" zone."
+msgstr "Зробіть видимими уÑÑ– 4 вікна, Ñ– Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾, по черзі, вимкніть бездіÑльні процеÑи за допомогою команди-перемикача «i». Ви проÑто увійшли до зони «екÑтремальне підÑтрибуваннÑ»."
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2753
+#, no-wrap
+msgid "7c. The Big Bird Window"
+msgstr "7в. Вікно Великого Птаха"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2756
+msgid "This stupid trick also requires \\*(AM."
+msgstr "Ð”Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ химерного трюку також потрібен режим альтернативного показу."
+
+#. type: Plain text
+#: ../man/top.1:2761
+msgid "Display all 4 windows and make sure that 1:Def is the \\*(CW. Then, keep increasing window size with the `n' \\*(CI until all the other \\*(TDs are \"pushed out of the nest\"."
+msgstr "Зробіть видимими уÑÑ– 4 вікна Ñ– переконайтеÑÑ, що «поточним» вікном Ñ” 1:Def. Далі, збільшуйте розмір вікна за допомогою інтерактивної команди «n», аж доки уÑÑ– інші покази завдань буде «виштовхнуто з гнізда»."
+
+#. type: Plain text
+#: ../man/top.1:2765
+msgid "When they've all been displaced, toggle between all visible/invisible windows using the `_' \\*(CT. Then ponder this:"
+msgstr "Коли Ñ—Ñ… буде переміщено, перемкнітьÑÑ Ð¼Ñ–Ð¶ уÑіма видимими/невидимими вікнами за допомогою команди-перемикача «_». Потім обміркуйте це:"
+
+#. type: Plain text
+#: ../man/top.1:2767
+#, no-wrap
+msgid " is \\*(We fibbing or telling honestly your imposed truth?\n"
+msgstr " \\*(We видумує результати чи чеÑно повідомлÑÑ” вам оманливу правду?\n"
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2769
+#, no-wrap
+msgid "7d. The Ol' Switcheroo"
+msgstr "7г. Перемикачка"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2773
+msgid "This stupid trick works best without \\*(AM, since justification is active on a per window basis."
+msgstr "Цей химерний трюк найкраще працює без режиму альтернативного переглÑду, оÑкільки Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ активним на рівні окремого вікна."
+
+#. type: Plain text
+#: ../man/top.1:2778
+msgid "Start \\*(We and make COMMAND the last (rightmost) column displayed. If necessary, use the `c' \\*(CT to display command lines and ensure that forest view mode is active with the `V' \\*(CT."
+msgstr "ЗапуÑÑ‚Ñ–Ñ‚ÑŒ \\*(We із робіть COMMAND оÑтаннім (найправішим) показаним Ñтовпчиком. Якщо потрібно, ÑкориÑтайтеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ-перемикачем «c» Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ Ñ€Ñдків команд Ñ– переконайтеÑÑ, що активним Ñ” режим переглÑду ліÑу, ÑкориÑтавшиÑÑŒ командою-перемикачем «V»."
+
+#. type: Plain text
+#: ../man/top.1:2782
+msgid "Then use the up/down arrow keys to position the display so that some truncated command lines are shown (`+' in last position). You may have to resize your xterm to produce truncation."
+msgstr "Потім ÑкориÑтайтеÑÑ ÐºÐ»Ð°Ð²Ñ–ÑˆÐ°Ð¼Ð¸ зі Ñтрілками вгору/вниз Ð´Ð»Ñ Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ так, щоб було показано ÑкіÑÑŒ обрізані Ñ€Ñдки команд («+» в оÑтанній позиції). Ви можете змінити розміри вашого xterm, щоб ÑталоÑÑ Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ."
+
+#. type: Plain text
+#: ../man/top.1:2784
+msgid "Lastly, use the `j' \\*(CT to make the COMMAND column right justified."
+msgstr "Ðарешті, ÑкориÑтайтеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ-перемикачем «j», щоб вÑтановити Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¾Ñ€ÑƒÑ‡ у Ñтовпчику COMMAND."
+
+#. type: Plain text
+#: ../man/top.1:2788
+msgid "Now use the right arrow key to reach the COMMAND column. Continuing with the right arrow key, watch closely the direction of travel for the command lines being shown."
+msgstr "Далі, ÑкориÑтайтеÑÑ ÐºÐ»Ð°Ð²Ñ–ÑˆÐµÑŽ зі Ñтрілкою праворуч, щоб діÑтатиÑÑ Ñтовпчика COMMAND. Продовжіть натиÑкати клавішу зі Ñтрілкою праворуч, ретельно Ñтежте за напрÑмком у Ñкому рухаютьÑÑ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ– Ñ€Ñдки команд."
+
+#. type: Plain text
+#: ../man/top.1:2791
+#, no-wrap
+msgid " some lines travel left, while others travel right\n"
+msgstr " деÑкі Ñ€Ñдки переÑунутьÑÑ Ð»Ñ–Ð²Ð¾Ñ€ÑƒÑ‡, а інші — праворуч\n"
+
+#. type: Plain text
+#: ../man/top.1:2793
+#, no-wrap
+msgid " eventually all lines will Switcheroo, and move right\n"
+msgstr " нарешті, уÑÑ– Ñ€Ñдки перемкнутьÑÑ Ñ– поÑунутьÑÑ Ð¿Ñ€Ð°Ð²Ð¾Ñ€ÑƒÑ‡\n"
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2795
+#, no-wrap
+msgid "9. BUGS"
+msgstr "9. Ð’ÐДИ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2800
+msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE .>"
+msgstr "Про вади, будь лаÑка, повідомлÑйте на адреÑу E<.UR procps@freelists.org> E<.UE .>"
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2802
+#, no-wrap
+msgid "10. SEE Also"
+msgstr "10. ДИВ. ТÐКОЖ"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2810
+msgid "B<free>(1), B<ps>(1), B<uptime>(1), B<atop>(1), B<slabtop>(1), B<vmstat>(8), B<w>(1)"
+msgstr "B<free>(1), B<ps>(1), B<uptime>(1), B<atop>(1), B<slabtop>(1), B<vmstat>(8), B<w>(1)"
+
+#. type: TH
+#: ../man/procps.3:11
+#, no-wrap
+msgid "PROCPS"
+msgstr "PROCPS"
+
+#. type: TH
+#: ../man/procps.3:11 ../man/procps_misc.3:11 ../man/procps_pids.3:11
+#, no-wrap
+msgid "August 2022"
+msgstr "Ñерпень 2022 року"
+
+#. type: TH
+#: ../man/procps.3:11 ../man/procps_misc.3:11 ../man/procps_pids.3:11
+#, no-wrap
+msgid "libproc2"
+msgstr "libproc2"
+
+#. type: Plain text
+#: ../man/procps.3:17
+msgid "procps - API to access system level information in the /proc filesystem"
+msgstr "procps — програмний Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð´Ð»Ñ Ð´Ð¾Ñтупу до даних ÑиÑтемного Ñ€Ñ–Ð²Ð½Ñ Ñƒ файловій ÑиÑтемі /proc"
+
+#. type: Plain text
+#: ../man/procps.3:22
+msgid "Five distinct interfaces are represented in this synopsis and named after the files they access in the /proc pseudo filesystem: B<diskstats>, B<meminfo>, B<slabinfo>, B<stat> and B<vmstat>."
+msgstr "У цьому короткому опиÑÑ– предÑтавлено п'ÑÑ‚ÑŒ різних інтерфейÑів, Ñкі названо за файлами, до Ñких вони надають доÑтуп у фіктивній файловій ÑиÑтемі /proc: B<diskstats>, B<meminfo>, B<slabinfo>, B<stat> та B<vmstat>."
+
+#. type: Plain text
+#: ../man/procps.3:26
+#, no-wrap
+msgid "#include E<lt>libproc2/B<named_interface>.hE<gt>\n"
+msgstr "#include E<lt>libproc2/B<іменований_інтерфейÑ>.hE<gt>\n"
+
+#. type: Plain text
+#: ../man/procps.3:30
+#, no-wrap
+msgid ""
+"intB< procps_new > (struct info **I<info>);\n"
+"intB< procps_ref > (struct info *I<info>);\n"
+"intB< procps_unref> (struct info **I<info>);\n"
+msgstr ""
+"intB< procps_new > (struct info **I<info>);\n"
+"intB< procps_ref > (struct info *I<info>);\n"
+"intB< procps_unref> (struct info **I<info>);\n"
+
+#. type: Plain text
+#: ../man/procps.3:35
+#, no-wrap
+msgid ""
+"struct result *B<procps_get> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<name>, ] B<diskstats> api only\n"
+" enum item I<item>);\n"
+msgstr ""
+"struct result *B<procps_get> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<name>, ] лише програмний Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ B<diskstats>\n"
+" enum item I<item>);\n"
+
+#. type: Plain text
+#: ../man/procps.3:41
+#, no-wrap
+msgid ""
+"struct stack *B<procps_select> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<name>, ] B<diskstats> api only\n"
+" enum item *I<items>,\n"
+" int I<numitems>);\n"
+msgstr ""
+"struct stack *B<procps_select> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<name>, ] лише програмний Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ B<diskstats>\n"
+" enum item *I<items>,\n"
+" int I<numitems>);\n"
+
+#. type: Plain text
+#: ../man/procps.3:47
+#, no-wrap
+msgid ""
+"struct reaped *B<procps_reap> (\n"
+" struct info *I<info>,\n"
+"[ enum reap_type I<what>, ] B<stat> api only\n"
+" enum item *I<items>,\n"
+" int I<numitems>);\n"
+msgstr ""
+"struct reaped *B<procps_reap> (\n"
+" struct info *I<info>,\n"
+"[ enum reap_type I<what>, ] лише програмний Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ B<stat>\n"
+" enum item *I<items>,\n"
+" int I<numitems>);\n"
+
+#. type: Plain text
+#: ../man/procps.3:54
+#, no-wrap
+msgid ""
+"struct stack **B<procps_sort> (\n"
+" struct info *I<info>,\n"
+" struct stack *I<stacks>[],\n"
+" int I<numstacked>,\n"
+" enum item I<sortitem>,\n"
+" enum sort_order I<order>);\n"
+msgstr ""
+"struct stack **B<procps_sort> (\n"
+" struct info *I<info>,\n"
+" struct stack *I<stacks>[],\n"
+" int I<numstacked>,\n"
+" enum item I<sortitem>,\n"
+" enum sort_order I<order>);\n"
+
+#. type: Plain text
+#: ../man/procps.3:61
+msgid "The above functions and structures are generic but the specific B<named_interface> would also be part of any identifiers. For example, `procps_new' would actually be `procps_B<meminfo>_new' and `info' would really be `B<diskstats>_info', etc."
+msgstr "Ðаведені вище функції Ñ– Ñтруктури Ñ” загальними, але чаÑтиною будь-Ñкого ідентифікатора може також бути Ñпецифічний Ð·Ð°Ð¿Ð¸Ñ B<іменований_інтерфейÑ>. Ðаприклад, «procps_new» може бути наÑправді «procps_B<meminfo>_new», а «info» може бути наÑправді «B<diskstats>_info» тощо."
+
+#. type: Plain text
+#: ../man/procps.3:64
+msgid "The same B<named_interface> is used in each header file name with an appended `.h' suffix."
+msgstr "Той Ñамий B<іменований_інтерфейÑ> буде викориÑтано у кожній з назв файлів заголовків, назви Ñких формуютьÑÑ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñм ÑуфікÑа «.h»."
+
+#. type: Plain text
+#: ../man/procps.3:66 ../man/procps_pids.3:60
+msgid "Link with I<-lproc2>."
+msgstr "Компонувати з I<-lproc2>."
+
+#. type: SS
+#: ../man/procps.3:68 ../man/procps_pids.3:62
+#, no-wrap
+msgid "Overview"
+msgstr "ОглÑд"
+
+#. type: Plain text
+#: ../man/procps.3:74
+msgid "Central to these interfaces is a simple `result' structure reflecting an `item' plus its value (in a union with standard C language types as members). All `result' structures are automatically allocated and provided by the library."
+msgstr "Центральною Ð´Ð»Ñ Ñ†Ð¸Ñ… інтерфейÑів Ñ” проÑта Ñтруктура «result», Ñка визначає «item» Ñ– його Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ (в об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð·Ñ– Ñтандартними типами мови C, Ñк учаÑниками). УÑÑ– Ñтруктури «result» буде автоматично розподілено Ñ– надано бібліотекою."
+
+#. type: Plain text
+#: ../man/procps.3:80 ../man/procps_pids.3:74
+msgid "By specifying an array of `items', these structures can be organized as a `stack', potentially yielding many results with a single function call. Thus, a `stack' can be viewed as a variable length record whose content and order is determined solely by the user."
+msgstr "ЗаданнÑм маÑиву значень «item» ці Ñтруктури можна упорÑдкувати Ñк «Ñтек» із потенційним Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð±Ð°Ð³Ð°Ñ‚ÑŒÐ¾Ñ… результатів одним викликом функції. Таким чином, «Ñтек» можна розглÑдати Ñк Ð·Ð°Ð¿Ð¸Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¾Ñ— довжини, вміÑÑ‚ Ñкого та порÑдок запиÑів у Ñкому визначаютьÑÑ Ð»Ð¸ÑˆÐµ кориÑтувачем."
+
+#. type: Plain text
+#: ../man/procps.3:85
+msgid "As part of each interface there are two unique enumerators. The `noop' and `extra' items exist to hold user values. They are never set by the library, but the `extra' result will be zeroed with each library interaction."
+msgstr "ЧаÑтиною кожного інтерфейÑу Ñ” два унікальних лічильники. Ð”Ð»Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ñ—Ñ…Ð½Ñ–Ñ… значень передбачено запиÑи «noop» та «extra». Їхні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ñ–ÐºÐ¾Ð»Ð¸ не вÑтановлюютьÑÑ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¾ÑŽ, але результат «extra» буде занулено на початку кожної взаємодії із бібліотекою."
+
+#. type: Plain text
+#: ../man/procps.3:91
+msgid "The B<named_interface> header file will be an essential document during user program development. There you will find available items, their return type (the `result' struct member name) and the source for such values. Additional enumerators and structures are also documented there."
+msgstr "Базовим документом при розробці кориÑтувацької програми буде файл заголовків B<іменованого інтерфейÑу>. Там ви знайдете уÑÑ– доÑтупні запиÑи (item), тип, Ñкий вони повертають (назву члена Ñтруктури «result») Ñ– джерело Ð´Ð»Ñ Ñ‚Ð°ÐºÐ¸Ñ… значень. Також там наведено документацію щодо додаткових лічильників та Ñтруктур."
+
+#. type: SS
+#: ../man/procps.3:92 ../man/procps_pids.3:86
+#, no-wrap
+msgid "Usage"
+msgstr "КориÑтуваннÑ"
+
+#. type: Plain text
+#: ../man/procps.3:95
+msgid "The following would be a typical sequence of calls to these interfaces."
+msgstr "Ðижче наведено типову поÑлідовніÑÑ‚ÑŒ викликів цих інтерфейÑів."
+
+#. type: Plain text
+#: ../man/procps.3:100
+#, no-wrap
+msgid ""
+"1. B<procps_new()>\n"
+"2. B<procps_get()>, B<procps_select()> or B<procps_reap()>\n"
+"3. B<procps_unref()>\n"
+msgstr ""
+"1. B<procps_new()>\n"
+"2. B<procps_get()>, B<procps_select()> або B<procps_reap()>\n"
+"3. B<procps_unref()>\n"
+
+#. type: Plain text
+#: ../man/procps.3:106
+msgid "The B<get> function is used to retrieve a `result' structure for a single `item'. Alternatively, a B<GET> macro is available when only the return value is of interest."
+msgstr "Функцію B<get> призначено Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñтруктури «result» Ð´Ð»Ñ Ð¾ÐºÑ€ÐµÐ¼Ð¾Ð³Ð¾ «item». Крім того, можна ÑкориÑтатиÑÑ Ð¼Ð°ÐºÑ€Ð¾Ñом B<GET>, Ñкщо потрібне лише значеннÑ, Ñке повертає функціÑ."
+
+#. type: Plain text
+#: ../man/procps.3:109
+msgid "The B<select> function can retrieve multiple `result' structures in a single `stack'."
+msgstr "Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ B<select> може отримувати декілька Ñтруктур «result» в одному значенні «stack»."
+
+#. type: Plain text
+#: ../man/procps.3:115
+msgid "For unpredictable variable outcomes, the B<diskstats>, B<slabinfo> and B<stat> interfaces export a B<reap> function. It is used to retrieve multiple `stacks' each containing multiple `result' structures. Optionally, a user may choose to B<sort> those results."
+msgstr "Ð”Ð»Ñ Ð½ÐµÐ¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÑƒÐ²Ð°Ð½Ð¸Ñ… результатів Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¸Ñ… інтерфейÑи B<diskstats>, B<slabinfo> Ñ– B<stat> екÑпортують функцію B<reap>. Її викориÑтовують Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ… «Ñтеків», кожен з Ñких міÑтить декілька Ñтруктур «result». Крім того, кориÑтувач може наказати B<упорÑдкувати> (B<sort>) ці результати."
+
+#. type: Plain text
+#: ../man/procps.3:122 ../man/procps_pids.3:114
+msgid "To exploit any `stack', and access individual `result' structures, a I<relative_enum> is required as shown in the B<VAL> macro defined in the header file. Such values could be hard coded as: 0 through numitems-1. However, this need is typically satisfied by creating your own enumerators corresponding to the order of the `items' array."
+msgstr "Щоб ÑкориÑтатиÑÑ Ð±ÑƒÐ´ÑŒ-Ñким «stack» Ñ– отримати доÑтуп до окремих Ñтруктур «result», потрібен I<relative_enum>, Ñк це показано у макроÑÑ– B<VAL>, Ñкий визначено у файлі заголовка. ТÐкі Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° запрограмувати Ñк: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ 0 до numitems-1. Втім, цю потребу типово можна задовольнити ÑтвореннÑм ваших влаÑних лічильників, Ñкі відповідають порÑдку у маÑиві «items»."
+
+#. type: SS
+#: ../man/procps.3:123 ../man/procps_pids.3:115
+#, no-wrap
+msgid "Caveats"
+msgstr "ЗаÑтереженнÑ"
+
+#. type: Plain text
+#: ../man/procps.3:126
+msgid "The B<new>, B<ref>, B<unref>, B<get> and B<select> functions are available in all five interfaces."
+msgstr "ФункціÑми B<new>, B<ref>, B<unref>, B<get> та B<select> можна ÑкориÑтатиÑÑ Ð² уÑÑ–Ñ… п'Ñти інтерфейÑах."
+
+#. type: Plain text
+#: ../man/procps.3:131 ../man/procps_pids.3:127
+msgid "For the B<new> and B<unref> functions, the address of an I<info> struct pointer must be supplied. With B<new> it must have been initialized to NULL. With B<unref> it will be reset to NULL if the reference count reaches zero."
+msgstr "Ð”Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹ B<new> Ñ– B<unref> має бути надано адреÑу вказівник Ñтруктури I<info>. Із B<new> Ñ—Ñ— має бути ініціалізовано значеннÑм NULL. Із B<unref> Ñ—Ñ— буде Ñкинуто до NULL, Ñкщо контрольний відлік дійде до нулÑ."
+
+#. type: Plain text
+#: ../man/procps.3:135
+msgid "In the case of the B<diskstats> interface, a I<name> parameter on the B<get> and B<select> functions identifies a disk or partition name"
+msgstr "У випадку інтерфейÑу B<diskstats> параметр I<name> у функціÑÑ… B<get> Ñ– B<select> вказує на диÑк або назву розділу"
+
+#. type: Plain text
+#: ../man/procps.3:139
+msgid "For the B<stat> interface, a I<what> parameter on the B<reap> function identifies whether data for just CPUs or both CPUs and NUMA nodes is to be gathered."
+msgstr "Ð”Ð»Ñ Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñу B<stat> параметр I<what> функції B<reap> вказує на те, чи Ñлід збирати дані лише Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑорів або процеÑорів Ñ– вузлів NUMA."
+
+#. type: Plain text
+#: ../man/procps.3:143
+msgid "When using the B<sort> function, the parameters I<stacks> and I<numstacked> would normally be those returned in the `reaped' structure."
+msgstr "Якщо викориÑтано функцію B<sort>, зазвичай, буде повернуто параметри I<stacks> Ñ– I<numstacked> у Ñтруктурі «reaped»."
+
+#. type: SH
+#: ../man/procps.3:144 ../man/procps_misc.3:127 ../man/procps_pids.3:148
+#, no-wrap
+msgid "RETURN VALUE"
+msgstr "ПОВЕРÐУТЕ ЗÐÐЧЕÐÐЯ"
+
+#. type: SS
+#: ../man/procps.3:145 ../man/procps_pids.3:149
+#, no-wrap
+msgid "Functions Returning an `int'"
+msgstr "Функції, Ñкі повертають «int»"
+
+#. type: Plain text
+#: ../man/procps.3:148 ../man/procps_misc.3:131 ../man/procps_pids.3:152
+msgid "An error will be indicated by a negative number that is always the inverse of some well known errno.h value."
+msgstr "Ðа помилку вказуватиме від'ємне чиÑло, Ñке Ñ” завжди оберненим до ÑкогоÑÑŒ відомого Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð· errno.h."
+
+#. type: Plain text
+#: ../man/procps.3:152 ../man/procps_pids.3:156
+msgid "Success is indicated by a zero return value. However, the B<ref> and B<unref> functions return the current I<info> structure reference count."
+msgstr "Ðа уÑпіх вказує нульовий Ñтан поверненнÑ. Втім, функції B<ref> Ñ– B<unref> повертають поточний контрольний відлік Ñтруктури I<info>."
+
+#. type: SS
+#: ../man/procps.3:153 ../man/procps_misc.3:132 ../man/procps_pids.3:157
+#, no-wrap
+msgid "Functions Returning an `address'"
+msgstr "Функції, Ñкі повертають «address»"
+
+#. type: Plain text
+#: ../man/procps.3:156 ../man/procps_misc.3:135 ../man/procps_pids.3:160
+msgid "An error will be indicated by a NULL return pointer with the reason found in the formal errno value."
+msgstr "Ðа помилку вказуватиме повернутий NUL-вказівник із Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ причину у формальному значенні errno."
+
+#. type: Plain text
+#: ../man/procps.3:158
+msgid "Success is indicated by a pointer to the named structure."
+msgstr "Ðа уÑпіх вказує Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÐ° на іменовану Ñтруктуру."
+
+#. type: SH
+#: ../man/procps.3:159 ../man/procps_pids.3:165
+#, no-wrap
+msgid "DEBUGGING"
+msgstr "ДІÐГÐОСТИКÐ"
+
+#. type: Plain text
+#: ../man/procps.3:165
+msgid "To aid in program development, there is a provision that can help ensure `result' member references agree with library expectations. It assumes that a supplied macro in the header file is used to access the `result' value."
+msgstr "Щоб допомогти у розробці програм, передбачено функцію, Ñка може допомогти забезпечити узгодженіÑÑ‚ÑŒ поÑилань на члени «result» із очікуваннÑми бібліотеки. У цій функції передбачено, що наданий Ð¼Ð°ÐºÑ€Ð¾Ñ Ñƒ файлі заголовків буде викориÑтано Ð´Ð»Ñ Ð´Ð¾Ñтупу до Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«result»."
+
+#. type: Plain text
+#: ../man/procps.3:168 ../man/procps_pids.3:185
+msgid "This feature can be activated through either of the following methods and any discrepancies will be written to B<stderr>."
+msgstr "Цю можливіÑÑ‚ÑŒ можна активувати за допомогою будь-Ñкого з вказаних нижче методів, а уÑÑ– розбіжноÑÑ‚Ñ– буде запиÑано до B<stderr>."
+
+#. type: IP
+#: ../man/procps.3:169 ../man/procps_pids.3:186
+#, no-wrap
+msgid "1)"
+msgstr "1)"
+
+#. type: Plain text
+#: ../man/procps.3:172
+msgid "Add CFLAGS='-DXTRA_PROCPS_DEBUG' to any other ./configure options employed."
+msgstr "Додайте CFLAGS='-DXTRA_PROCPS_DEBUG' до будь-Ñких інших заÑтоÑованих параметрів ./configure."
+
+#. type: IP
+#: ../man/procps.3:173 ../man/procps_pids.3:190
+#, no-wrap
+msgid "2)"
+msgstr "2)"
+
+#. type: Plain text
+#: ../man/procps.3:176
+msgid "Add #include E<lt>procps/xtra-procps-debug.hE<gt> to any program I<after> the named interface includes."
+msgstr "Додайте #include E<lt>procps/xtra-procps-debug.hE<gt> у програму I<піÑлÑ> команд Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñ–Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ… інтерфейÑів."
+
+#. type: Plain text
+#: ../man/procps.3:181 ../man/procps_pids.3:198
+msgid "This verification feature incurs substantial overhead. Therefore, it is important that it I<not> be activated for a production/release build."
+msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— можливоÑÑ‚Ñ– перевірки призводить до Ñуттєвих обчиÑлювальних витрат. Через це, важливо I<не> вмикати Ñ—Ñ— під Ñ‡Ð°Ñ Ð¾Ñтаточного Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ Ð´Ð»Ñ Ð²Ð¸Ð¿ÑƒÑку."
+
+#. type: Plain text
+#: ../man/procps.3:185
+msgid "B<procps_misc>(3), B<procps_pids>(3), B<proc>(5)."
+msgstr "B<procps_misc>(3), B<procps_pids>(3), B<proc>(5)."
+
+#. type: TH
+#: ../man/procps_misc.3:11
+#, no-wrap
+msgid "PROCPS_MISC"
+msgstr "PROCPS_MISC"
+
+#. type: Plain text
+#: ../man/procps_misc.3:17
+msgid "procps_misc - API for miscellaneous information in the /proc filesystem"
+msgstr "procps_misc — програмний Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð´Ð¾ різноманітних даних у файловій ÑиÑтемі /proc"
+
+#. type: Plain text
+#: ../man/procps_misc.3:20
+#, no-wrap
+msgid "B<#include E<lt>libproc2/misc.hE<gt>>\n"
+msgstr "B<#include E<lt>libproc2/misc.hE<gt>>\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:22
+#, no-wrap
+msgid "Platform Particulars\n"
+msgstr "Подробиці щодо платформи\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:28
+#, no-wrap
+msgid ""
+"long B<procps_cpu_count> (void);\n"
+"long B<procps_hertz_get> (void);\n"
+"unsigned int B<procps_pid_length> (void);\n"
+"int B<procps_linux_version> (void);\n"
+msgstr ""
+"long B<procps_cpu_count> (void);\n"
+"long B<procps_hertz_get> (void);\n"
+"unsigned int B<procps_pid_length> (void);\n"
+"int B<procps_linux_version> (void);\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:31
+#, no-wrap
+msgid "Runtime Particulars\n"
+msgstr "Подробиці щодо Ñередовища виконаннÑ\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:37
+#, no-wrap
+msgid ""
+"int B< procps_loadavg> (double *I<av1>, double *I<av5>, double *I<av15>);\n"
+"int B< procps_uptime> (double *I<uptime_secs>, double *I<idle_secs>);\n"
+"char *B<procps_uptime_sprint> (void);\n"
+"char *B<procps_uptime_sprint_short> (void);\n"
+msgstr ""
+"int B< procps_loadavg> (double *I<av1>, double *I<av5>, double *I<av15>);\n"
+"int B< procps_uptime> (double *I<uptime_secs>, double *I<idle_secs>);\n"
+"char *B<procps_uptime_sprint> (void);\n"
+"char *B<procps_uptime_sprint_short> (void);\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:40
+#, no-wrap
+msgid "Namespace Particulars\n"
+msgstr "Подробиці щодо проÑтору назв\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:45
+#, no-wrap
+msgid ""
+"int B< procps_ns_get_id> (const char *I<name>);\n"
+"const charB< *procps_ns_get_name> (int I<id>);\n"
+"int B< procps_ns_read_pid> (int I<pid>, struct procps_ns *I<nsp>);\n"
+msgstr ""
+"int B< procps_ns_get_id> (const char *I<name>);\n"
+"const charB< *procps_ns_get_name> (int I<id>);\n"
+"int B< procps_ns_read_pid> (int I<pid>, struct procps_ns *I<nsp>);\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:48
+#, no-wrap
+msgid "Link with I<-lproc2>.\n"
+msgstr "Компонувати з I<-lproc2>.\n"
+
+#. type: Plain text
+#: ../man/procps_misc.3:54
+msgid "B<procps_cpu_count>() returns the number of CPUs that are currently online as B<sysconf(>I<_SC_NPROCESSORS_ONLY>B<)> or an assumed I<1>."
+msgstr "B<procps_cpu_count>() повертає кількіÑÑ‚ÑŒ робочих процеÑорів Ñк B<sysconf(>I<_SC_NPROCESSORS_ONLY>B<)> або типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ I<1>."
+
+#. type: Plain text
+#: ../man/procps_misc.3:60
+msgid "B<procps_hertz_get>() returns the number of clock ticks per second as B<sysconf(>I<_SC_CLK_TCK>B<)> or an assumed I<100>. Dividing tics by this value yields seconds."
+msgstr "B<procps_hertz_get>() повертає кількіÑÑ‚ÑŒ тактів годинника на Ñекунду Ñк B<sysconf(>I<_SC_CLK_TCK>B<)> або типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ I<100>. Якщо поділити такти на це значеннÑ, буде отримано Ñекунди."
+
+#. type: Plain text
+#: ../man/procps_misc.3:65
+msgid "B<procps_pid_length>() returns the maximum string length for a PID on the system. For example, if the largest possible PID value on was 123, then the length would be 3. If the file I</proc/sys/kernel/pid_max> is unreadable, the value is assumed to be I<5>."
+msgstr "B<procps_pid_length>() повертає макÑимальну довжину Ñ€Ñдка Ð´Ð»Ñ PID у ÑиÑтемі. Ðаприклад, Ñкщо найбільше можливе Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ PID — 123, довжиною буде 3. Якщо файл I</proc/sys/kernel/pid_max> виÑвитьÑÑ Ð½ÐµÐ´Ð¾Ñтупним до читаннÑ, типовим значеннÑм буде I<5>."
+
+#. type: Plain text
+#: ../man/procps_misc.3:74
+msgid "B<procps_linux_version>() returns the current Linux version as an encoded integer. On non-Linux systems that have an emulated proc filesystem this function returns the version of the Linux emulation instead. The version consists of three positive integers representing the major, minor and patch levels. The following macros are provided for encoding a given Linux version or separating out the components of the current version."
+msgstr "B<procps_linux_version>() повертає верÑÑ–ÑŽ поточної ÑиÑтеми Linux у форматі закодованого цілого чиÑла. У ÑиÑтемах, відмінних від Linux, із імітацією файлової ÑиÑтеми proc Ñ†Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð¿Ð¾Ð²ÐµÑ€Ñ‚Ð°Ñ” верÑÑ–ÑŽ емулÑції Linux. ВерÑÑ–Ñ ÑкладаєтьÑÑ Ð· трьох додатних цілих чиÑел, Ñкі відповідають оÑновній, проміжній чаÑтинам Ñ– чаÑтині модифікації. Передбачено вказані нижче макроÑи Ð´Ð»Ñ ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð´Ð°Ð½Ð¾Ñ— верÑÑ–Ñ— Linux або окремого викориÑÑ‚Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ñ–Ð² поточної верÑÑ–Ñ—."
+
+#. type: Plain text
+#: ../man/procps_misc.3:77
+msgid "LINUX_VERSION(\\ major\\ ,\\ minor\\ ,\\ patch\\ )"
+msgstr "LINUX_VERSION(\\ major\\ ,\\ minor\\ ,\\ patch\\ )"
+
+#. type: Plain text
+#: ../man/procps_misc.3:79
+msgid "LINUX_VERSION_MAJOR(\\ ver\\ )"
+msgstr "LINUX_VERSION_MAJOR(\\ ver\\ )"
+
+#. type: Plain text
+#: ../man/procps_misc.3:81
+msgid "LINUX_VERSION_MINOR(\\ ver\\ )"
+msgstr "LINUX_VERSION_MINOR(\\ ver\\ )"
+
+#. type: Plain text
+#: ../man/procps_misc.3:83
+msgid "LINUX_VERSION_PATCH(\\ ver\\ )"
+msgstr "LINUX_VERSION_PATCH(\\ ver\\ )"
+
+#. type: Plain text
+#: ../man/procps_misc.3:88
+msgid "B<procps_loadavg>() fetches the system load average and puts the 1, 5 and 15 minute averages into location(s) specified by any pointer which is not I<NULL>."
+msgstr "B<procps_loadavg>() отримує дані щодо Ñереднього Ð½Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° ÑиÑтему Ñ– запиÑує Ñередні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð° 1, 5 Ñ– 15 хвилин у міÑцÑ, Ñкі вказано будь-Ñким вказівником, Ñкий не Ñ” порожнім (I<NULL>)."
+
+#. type: Plain text
+#: ../man/procps_misc.3:93
+msgid "B<procps_uptime>() returns uptime and/or idle seconds into location(s) specified by any pointer which is not I<NULL>. The B<sprint> varieties return a human-readable string in one of two forms."
+msgstr "B<procps_uptime>() повертає Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ñ–/або бездіÑльноÑÑ‚Ñ– у Ñекундах у міÑцÑ, Ñкі вказано будь-Ñким вказівником, Ñкий не Ñ” порожнім (I<NULL>). ВикориÑÑ‚Ð°Ð½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ B<sprint> повертає Ñ€Ñдок у зручному Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– в одній із двох форм."
+
+#. type: Plain text
+#: ../man/procps_misc.3:96
+msgid "HH:MM:SS up HH:MM, # users, load average: 1, 5, 15 MM averages"
+msgstr "ГГ:ХХ:СС up ГГ:ХХ, # users, load average: 1, 5, 15 MM averages"
+
+#. type: Plain text
+#: ../man/procps_misc.3:98
+msgid "up HH, MM"
+msgstr "up ГГ, ХХ"
+
+#. type: Plain text
+#: ../man/procps_misc.3:102
+msgid "B<procps_ns_get_id>() returns the integer id (enum namespace_type) of the namespace for the given namespace I<name>."
+msgstr "B<procps_ns_get_id>() повертає цілочиÑельний ідентифікатор (enum namespace_type) проÑтору назв Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð¾Ð³Ð¾ проÑтору назв I<name>."
+
+#. type: Plain text
+#: ../man/procps_misc.3:105
+msgid "B<procps_ns_get_name>() returns the name of the namespace for the given I<id> (enum namespace_type)."
+msgstr "B<procps_ns_get_name>() повертає назву проÑтора назв Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð¾Ð³Ð¾ I<id> (enum namespace_type)."
+
+#. type: Plain text
+#: ../man/procps_misc.3:110
+msgid "B<procps_ns_read_pid>() returns the inodes for the namespaces of the given process in the procps_ns structure pointed to by I<nsp>. Those inodes will appear in the order proscribed by enum namespace_type."
+msgstr "B<procps_ns_read_pid>() повертає inode-и Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñторів назв із заданим процеÑом у Ñтруктурі procps_ns на Ñку вказує I<nsp>. Ці inode-и буде виведено у порÑдку, Ñкий визначаєтьÑÑ Ð¿ÐµÑ€ÐµÐ»Ñ–ÐºÐ¾Ð¼ namespace_type."
+
+#. type: Plain text
+#: ../man/procps_misc.3:123
+#, no-wrap
+msgid ""
+"enum namespace_type {\n"
+" PROCPS_NS_CGROUP,\n"
+" PROCPS_NS_IPC,\n"
+" PROCPS_NS_MNT,\n"
+" PROCPS_NS_NET,\n"
+" PROCPS_NS_PID,\n"
+" PROCPS_NS_TIME,\n"
+" PROCPS_NS_USER,\n"
+" PROCPS_NS_UTS\n"
+"};\n"
+msgstr ""
+"enum namespace_type {\n"
+" PROCPS_NS_CGROUP,\n"
+" PROCPS_NS_IPC,\n"
+" PROCPS_NS_MNT,\n"
+" PROCPS_NS_NET,\n"
+" PROCPS_NS_PID,\n"
+" PROCPS_NS_TIME,\n"
+" PROCPS_NS_USER,\n"
+" PROCPS_NS_UTS\n"
+"};\n"
+
+#. type: SS
+#: ../man/procps_misc.3:128
+#, no-wrap
+msgid "Functions Returning an `int' or `long'"
+msgstr "Функції, Ñкі повертають «int» або «long»"
+
+#. type: TP
+#: ../man/procps_misc.3:137
+#, no-wrap
+msgid "I</proc/loadavg>"
+msgstr "I</proc/loadavg>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:140
+msgid "The raw values for load average."
+msgstr "Ðеоброблені Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñереднього навантаженнÑ."
+
+#. type: TP
+#: ../man/procps_misc.3:140
+#, no-wrap
+msgid "I</proc/sys/kernel/osrelease>"
+msgstr "I</proc/sys/kernel/osrelease>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:143
+msgid "Contains the release version of the Linux kernel or proc filesystem."
+msgstr "МіÑтить верÑÑ–ÑŽ випуÑку Ñдра Linux або файлової ÑиÑтеми proc."
+
+#. type: TP
+#: ../man/procps_misc.3:143
+#, no-wrap
+msgid "I</proc/sys/kernel/pid_max>"
+msgstr "I</proc/sys/kernel/pid_max>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:146
+msgid "Contains the value at which PIDs wrap around, one greater than the maximum PID value."
+msgstr "МіÑтить значеннÑ, на Ñкому відбуваєтьÑÑ Ð·Ð°Ñ†Ð¸ÐºÐ»ÑŽÐ²Ð°Ð½Ð½Ñ PID, на одиницю більше за макÑимальне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ PID."
+
+#. type: TP
+#: ../man/procps_misc.3:146
+#, no-wrap
+msgid "I</proc/uptime>"
+msgstr "I</proc/uptime>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:149
+msgid "The raw values for uptime and idle time."
+msgstr "Ðеоброблені Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ‡Ð°Ñу роботи та чаÑу бездіÑльноÑÑ‚Ñ–."
+
+#. type: TP
+#: ../man/procps_misc.3:149
+#, no-wrap
+msgid "I</proc/E<lt>PIDE<gt>/ns>"
+msgstr "I</proc/E<lt>PIDE<gt>/ns>"
+
+#. type: Plain text
+#: ../man/procps_misc.3:152
+msgid "contains the set of namespaces for a particular B<PID>."
+msgstr "міÑтить набір проÑторів назв Ð´Ð»Ñ Ð¿ÐµÐ²Ð½Ð¾Ð³Ð¾ B<PID>."
+
+#. type: Plain text
+#: ../man/procps_misc.3:156
+msgid "B<procps>(3), B<procps_pids>(3), B<proc>(5)."
+msgstr "B<procps>(3), B<procps_pids>(3), B<proc>(5)."
+
+#. type: TH
+#: ../man/procps_pids.3:11
+#, no-wrap
+msgid "PROCPS_PIDS"
+msgstr "PROCPS_PIDS"
+
+#. type: Plain text
+#: ../man/procps_pids.3:17
+msgid "procps_pids - API to access process information in the /proc filesystem"
+msgstr "procps_pids — програмний Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð´Ð»Ñ Ð´Ð¾Ñтупу до даних процеÑів у файловій ÑиÑтемі /proc"
+
+#. type: Plain text
+#: ../man/procps_pids.3:21
+#, no-wrap
+msgid "#include E<lt>libproc2/pids.hE<gt>\n"
+msgstr "#include E<lt>libproc2/pids.hE<gt>\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:25
+#, no-wrap
+msgid ""
+"intB< procps_pids_new > (struct pids_info **I<info>, enum pids_item *I<items>, int I<numitems>);\n"
+"intB< procps_pids_ref > (struct pids_info *I<info>);\n"
+"intB< procps_pids_unref> (struct pids_info **I<info>);\n"
+msgstr ""
+"intB< procps_pids_new > (struct pids_info **I<info>, enum pids_item *I<items>, int I<numitems>);\n"
+"intB< procps_pids_ref > (struct pids_info *I<info>);\n"
+"intB< procps_pids_unref> (struct pids_info **I<info>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:30
+#, no-wrap
+msgid ""
+"struct pids_stack *B<procps_pids_get> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<which>);\n"
+msgstr ""
+"struct pids_stack *B<procps_pids_get> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<which>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:34
+#, no-wrap
+msgid ""
+"struct pids_fetch *B<procps_pids_reap> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<which>);\n"
+msgstr ""
+"struct pids_fetch *B<procps_pids_reap> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<which>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:40
+#, no-wrap
+msgid ""
+"struct pids_fetch *B<procps_pids_select> (\n"
+" struct pids_info *I<info>,\n"
+" unsigned *I<these>,\n"
+" int I<numthese>,\n"
+" enum pids_select_type I<which>);\n"
+msgstr ""
+"struct pids_fetch *B<procps_pids_select> (\n"
+" struct pids_info *I<info>,\n"
+" unsigned *I<these>,\n"
+" int I<numthese>,\n"
+" enum pids_select_type I<which>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:47
+#, no-wrap
+msgid ""
+"struct pids_stack **B<procps_pids_sort> (\n"
+" struct pids_info *I<info>,\n"
+" struct pids_stack *I<stacks>[],\n"
+" int I<numstacked>,\n"
+" enum pids_item I<sortitem>,\n"
+" enum pids_sort_order I<order>);\n"
+msgstr ""
+"struct pids_stack **B<procps_pids_sort> (\n"
+" struct pids_info *I<info>,\n"
+" struct pids_stack *I<stacks>[],\n"
+" int I<numstacked>,\n"
+" enum pids_item I<sortitem>,\n"
+" enum pids_sort_order I<order>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:52
+#, no-wrap
+msgid ""
+"int B<procps_pids_reset> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_item *I<newitems>,\n"
+" int I<newnumitems>);\n"
+msgstr ""
+"int B<procps_pids_reset> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_item *I<newitems>,\n"
+" int I<newnumitems>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:56
+#, no-wrap
+msgid ""
+"struct pids_stack *B<fatal_proc_unmounted> (\n"
+" struct pids_info *I<info>,\n"
+" int I<return_self>);\n"
+msgstr ""
+"struct pids_stack *B<fatal_proc_unmounted> (\n"
+" struct pids_info *I<info>,\n"
+" int I<return_self>);\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:68
+msgid "Central to this interface is a simple `result' structure reflecting an `item' plus its value (in a union with standard C language types as members). All `result' structures are automatically allocated and provided by the library."
+msgstr "Центральною Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ інтерфейÑу Ñ” проÑта Ñтруктура «result», Ñка визначає «item» Ñ– його Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ (в об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð·Ñ– Ñтандартними типами мови C, Ñк учаÑниками). УÑÑ– Ñтруктури «result» буде автоматично розподілено Ñ– надано бібліотекою."
+
+#. type: Plain text
+#: ../man/procps_pids.3:79
+msgid "As part of this interface there are two unique enumerators. The `noop' and `extra' items exist to hold user values. They are never set by the library, but the `extra' result will be zeroed with each library interaction."
+msgstr "ЧаÑтиною цього інтерфейÑу Ñ” два унікальних лічильники. Ð”Ð»Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ñ—Ñ…Ð½Ñ–Ñ… значень передбачено запиÑи «noop» та «extra». Їхні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ñ–ÐºÐ¾Ð»Ð¸ не вÑтановлюютьÑÑ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¾ÑŽ, але результат «extra» буде занулено на початку кожної взаємодії із бібліотекою."
+
+#. type: Plain text
+#: ../man/procps_pids.3:85
+msgid "The pids.h file will be an essential document during user program development. There you will find available items, their return type (the `result' struct member name) and the source for such values. Additional enumerators and structures are also documented there."
+msgstr "Базовим документом при розробці кориÑтувацької програми буде файл заголовків pids.h. Там ви знайдете уÑÑ– доÑтупні запиÑи (item), тип, Ñкий вони повертають (назву члена Ñтруктури «result») Ñ– джерело Ð´Ð»Ñ Ñ‚Ð°ÐºÐ¸Ñ… значень. Також там наведено документацію щодо додаткових лічильників та Ñтруктур."
+
+#. type: Plain text
+#: ../man/procps_pids.3:89
+msgid "The following would be a typical sequence of calls to this interface."
+msgstr "Ðижче наведено типову поÑлідовніÑÑ‚ÑŒ викликів цього інтерфейÑу."
+
+#. type: Plain text
+#: ../man/procps_pids.3:95
+#, no-wrap
+msgid ""
+"1. B<fatal_proc_unmounted()>\n"
+"2. B<procps_pids_new()>\n"
+"3. B<procps_pids_get()>, B<procps_pids_reap()> or B<procps_pids_select()>\n"
+"4. B<procps_pids_unref()>\n"
+msgstr ""
+"1. B<fatal_proc_unmounted()>\n"
+"2. B<procps_pids_new()>\n"
+"3. B<procps_pids_get()>, B<procps_pids_reap()> або B<procps_pids_select()>\n"
+"4. B<procps_pids_unref()>\n"
+
+#. type: Plain text
+#: ../man/procps_pids.3:100
+msgid "The B<get> function is an iterator for successive PIDs/TIDs, returning those `items' previously identified via B<new> or B<reset>."
+msgstr "Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ B<get> Ñ” ітератором Ð´Ð»Ñ Ð¿Ð¾Ñлідовних PID/TID, що повертає ці «items», раніше вказані за допомогою B<new> або B<reset>."
+
+#. type: Plain text
+#: ../man/procps_pids.3:107
+msgid "Two functions support unpredictable variable outcomes. The B<reap> function gathers data for all processes while the B<select> function deals with specific PIDs or UIDs. Both can return multiple `stacks' each containing multiple `result' structures. Optionally, a user may choose to B<sort> such results"
+msgstr "Ð”Ð»Ñ Ð½ÐµÐ¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÑƒÐ²Ð°Ð½Ð¸Ñ… результатів Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¸Ñ… передбачено дві функції. Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ B<reap> збирає дані Ð´Ð»Ñ ÑƒÑÑ–Ñ… процеÑів, а Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ B<select> працює зі Ñпецифічними PID та UID. Обидві можуть повертати декілька «Ñтеків», кожне з Ñких міÑтить декілька Ñтруктур «result». Крім того, кориÑтувач може наказати B<упорÑдкувати> (B<sort>) ці результати."
+
+#. type: Plain text
+#: ../man/procps_pids.3:122
+msgid "The E<lt>pidsE<gt> API differs from others in that those items of interest must be provided at B<new> or B<reset> time, the latter being unique to this API. If either the I<items> or I<numitems> parameter is zero at B<new> time, then B<reset> becomes mandatory before issuing any other call."
+msgstr "Програмний Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ E<lt>pidsE<gt> відрізнÑєтьÑÑ Ð²Ñ–Ð´ інших тим, що потрібні запиÑи має бути надано під Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ B<new> або B<reset>, оÑтанній варіант Ñ” унікальним Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ програмного інтерфейÑу. Якщо ÑкийÑÑŒ із параметрів, I<items> або I<numitems>, Ñ” нульовим на Ñ‡Ð°Ñ B<new>, обов'Ñзковим перед надÑиланнÑм будь-Ñкого іншого виклику Ñтає B<reset>."
+
+#. type: Plain text
+#: ../man/procps_pids.3:130
+msgid "The B<get> and B<reap> functions use the I<which> parameter to specify whether just tasks or both tasks and threads are to be fetched."
+msgstr "Функції B<get> Ñ– B<reap> викориÑтовують параметр I<which> Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð¾Ð³Ð¾, Ñлід отримувати дані лише Ð´Ð»Ñ Ð·Ð°Ð²Ð´Ð°Ð½ÑŒ чи Ð´Ð»Ñ Ð·Ð°Ð²Ð´Ð°Ð½ÑŒ Ñ– потоків обробки."
+
+#. type: Plain text
+#: ../man/procps_pids.3:135
+msgid "The B<select> function requires an array of PIDs or UIDs as I<these> along with I<numthese> to identify which processes are to be fetched. This function then operates as a subset of B<reap>."
+msgstr "Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ B<select> потребує маÑиву PID або UID, Ñк I<these> разом із I<numthese>, Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð¾Ð³Ð¾, дані Ñких процеÑів Ñлід отримати. Далі, Ñ†Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð¿Ñ€Ð°Ñ†ÑŽÑ” із підмножиною B<reap>."
+
+#. type: Plain text
+#: ../man/procps_pids.3:139
+msgid "When using the B<sort> function, the parameters I<stacks> and I<numstacked> would normally be those returned in the `pids_fetch' structure."
+msgstr "Якщо викориÑтано функцію B<sort>, зазвичай, буде повернуто параметри I<stacks> Ñ– I<numstacked> у Ñтруктурі «pids_fetch»."
+
+#. type: Plain text
+#: ../man/procps_pids.3:147
+msgid "Lastly, a B<fatal_proc_unmounted> function may be called before any other function to ensure that the /proc/ directory is mounted. As such, the I<info> parameter would be NULL and the I<return_self> parameter zero. If, however, some items are desired for the issuing program (a I<return_self> other than zero) then the B<new> call must precede it to identify the I<items> and obtain the required I<info> pointer."
+msgstr "Ðарешті, можна викликати функцію B<fatal_proc_unmounted> до будь-Ñкої іншої функції Ð´Ð»Ñ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ /proc/. Якщо каталог змонтовано, параметр I<info> матиме Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ NULL, а параметр I<return_self> матиме нульове значеннÑ. Якщо, втім, деÑкі запиÑи потрібні Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку програми (I<return_self> відмінне від нулÑ), виклик B<new> має передувати виклику цієї функції Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб вказати I<items> Ñ– отримати потрібний вказівник I<info>."
+
+#. type: Plain text
+#: ../man/procps_pids.3:164
+msgid "Success is indicated by a pointer to the named structure. However, if one survives the B<fatal_proc_unmounted> call, NULL is always returned when I<return_self> is zero."
+msgstr "Ðа уÑпіх вказує Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÐ° на іменовану Ñтруктуру. Втім, Ñкщо щоÑÑŒ переживе виклик B<fatal_proc_unmounted>, NULL завжди буде повернуто, Ñкщо значеннÑм I<return_self> Ñ” нуль."
+
+#. type: Plain text
+#: ../man/procps_pids.3:168
+msgid "To aid in program development, there are two procps-ng provisions that can be exploited."
+msgstr "Щоб полегшити розробку програм, передбачено дві можливоÑÑ‚Ñ– procps-ng, Ñкими можна ÑкориÑтатиÑÑ."
+
+#. type: Plain text
+#: ../man/procps_pids.3:173
+msgid "The first is a supplied file named `libproc.supp' which may be useful when developing a I<multi-threaded> application. When used with the valgrind `--suppressions=' option, warnings associated with the procps library itself are avoided."
+msgstr "Першою Ñ” файл із назвою «libproc.supp», Ñким можна ÑкориÑтатиÑÑ Ð¿Ñ€Ð¸ розробці I<багатопотокової> програми. Якщо ÑкориÑтатиÑÑ Ð½Ð¸Ð¼ у поєднанні із параметром valgrind «--suppressions=», можна уникнути Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½ÑŒ, Ñкі пов'Ñзано із Ñамою бібліотекою procps."
+
+#. type: Plain text
+#: ../man/procps_pids.3:177
+msgid "Such warnings arise because the library handles heap based allocations in a thread-safe manner. A I<single-threaded> application will not receive those warnings."
+msgstr "Такі Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ð²Ð¸Ð½Ð¸ÐºÐ°ÑŽÑ‚ÑŒ через те, що бібліотека оброблÑÑ” заÑновані на «купі» функції Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– у безпечний щодо потоків обробки ÑпоÑіб. I<Однопотокові> програми не призводитимуть до поÑви таких попереджень."
+
+#. type: Plain text
+#: ../man/procps_pids.3:182
+msgid "The second provision can help ensure `result' member references agree with library expectations. It assumes that a supplied macro in the header file is used to access the `result' value."
+msgstr "Друга Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð¼Ð¾Ð¶Ðµ допомогти забезпечити узгодженіÑÑ‚ÑŒ поÑилань на члени «result» із очікуваннÑми бібліотеки. У цій функції передбачено, що наданий Ð¼Ð°ÐºÑ€Ð¾Ñ Ñƒ файлі заголовків буде викориÑтано Ð´Ð»Ñ Ð´Ð¾Ñтупу до Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«result»."
+
+#. type: Plain text
+#: ../man/procps_pids.3:189
+msgid "Add CFLAGS='-DXTRA_PROCPS_DEBUG' to any other ./configure options your project may employ."
+msgstr "Додайте CFLAGS='-DXTRA_PROCPS_DEBUG' до будь-Ñких інших заÑтоÑованих у вашому проєкті параметрів ./configure."
+
+#. type: Plain text
+#: ../man/procps_pids.3:193
+msgid "Add #include E<lt>procps/xtra-procps-debug.hE<gt> to any program I<after> the #include E<lt>procps/pids.hE<gt>."
+msgstr "Додайте #include E<lt>procps/xtra-procps-debug.hE<gt> у програму I<піÑлÑ> #include E<lt>procps/pids.hE<gt>."
+
+#. type: SH
+#: ../man/procps_pids.3:199
+#, no-wrap
+msgid "ENVIRONMENT VARIABLE(S)"
+msgstr "ЗМІÐÐІ СЕРЕДОВИЩÐ"
+
+#. type: Plain text
+#: ../man/procps_pids.3:206
+msgid "This will hide kernel threads which would otherwise be returned with a B<procps_pids_get>, B<procps_pids_select> or B<procps_pids_reap> call."
+msgstr "Призведе до Ð¿Ñ€Ð¸Ñ…Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑ–Ð² обробки Ñдра, Ñкі інакше було б повернуто викликом B<procps_pids_get>, B<procps_pids_select> або B<procps_pids_reap>."
+
+#. type: Plain text
+#: ../man/procps_pids.3:210
+msgid "B<procps>(3), B<procps_misc>(3), B<proc>(5)."
+msgstr "B<procps>(3), B<procps_misc>(3), B<proc>(5)."
+
+#~ msgid "October 2011"
+#~ msgstr "жовтень 2011 року"
+
+#~ msgid "B<--nslist >I<ns,...>"
+#~ msgstr "B<--nslist >I<ns,...>"
+
+#~ msgid "Use this option when all arguments prescribe a key to be set."
+#~ msgstr "СкориÑтайтеÑÑ Ñ†Ð¸Ð¼ параметром, Ñкщо уÑÑ– аргументи визначають ключ, Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñкого Ñлід вÑтановити."
+
+#~ msgid "Note that B<ps -aux> is distinct from B<ps\\ aux>. The POSIX and UNIX standards require that B<ps\\ -aux> print all processes owned by a user named I<x>, as well as printing all processes that would be selected by the B<-a> option. If the user named I<x> does not exist, this B<ps> may interpret the command as B<ps\\ aux> instead and print a warning. This behavior is intended to aid in transitioning old scripts and habits. It is fragile, subject to change, and thus should not be relied upon."
+#~ msgstr "Зауважте, що B<ps -aux> не Ñ” тим Ñамим, що Ñ– B<ps\\ aux>. Стандарти POSIX Ñ– UNIX вимагають, щоб команда B<ps\\ -aux> виводила ÑпиÑок уÑÑ–Ñ… процеÑів, влаÑником Ñких Ñ” кориÑтувач I<x>, а також уÑÑ–Ñ… процеÑів, Ñкі було б вибрано у результаті викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° B<-a>. Якщо запиÑу кориÑтувача I<x> не Ñ–Ñнує, цей варіант B<ps> може обробити команду Ñк B<ps\\ aux> Ñ– вивеÑти Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ цього. Так зроблено навмиÑне, щоб допомогти у ÑуміÑноÑÑ‚Ñ– із заÑтарілими Ñкриптами та звичками. Така поведінка програми не Ñ” Ñталою, може змінитиÑÑ â€” не варто на неї покладатиÑÑ."
+
+#~ msgid ".IP \"\" 2\n"
+#~ msgstr ".IP \"\" 2\n"
+
+#~ msgid "January 2023"
+#~ msgstr "Січень 2023 року"
+
+#~ msgid "As a default, Line 1 reflects \\*(MP, classified as:"
+#~ msgstr "Типово, у першому Ñ€Ñдку буде показано дані фізичної пам'ÑÑ‚Ñ–, клаÑифіковані так:"
+
+#~ msgid " total, free, used and buff/cache\n"
+#~ msgstr " загалом, вільно, викориÑтано та буфер/кеш\n"
+
+#~ msgid " total, free, used and avail (which is \\*(MP)\n"
+#~ msgstr " загалом, вільно, викориÑтано та доÑтупно (тобто фізична пам'ÑÑ‚ÑŒ)\n"
+
+#~ msgid "2022-06-25"
+#~ msgstr "25 Ñ‡ÐµÑ€Ð²Ð½Ñ 2022 року"
+
+#~ msgid "Total installed memory (MemTotal and SwapTotal in /proc/meminfo)"
+#~ msgstr "Загальний об’єм вÑтановленої пам’ÑÑ‚Ñ– (MemTotal та SwapTotal у /proc/meminfo)"
+
+#~ msgid "2021-05-18"
+#~ msgstr "18 Ñ‚Ñ€Ð°Ð²Ð½Ñ 2021 року"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Команди кориÑтувача "
+
+#~ msgid "NAME "
+#~ msgstr "ÐÐЗВÐ"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "КОРОТКИЙ ОПИС"
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "ОПИС "
+
+#~ msgid "OPTIONS "
+#~ msgstr "ПÐРÐМЕТРИ "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ "
+
+#~ msgid "2022-08-31"
+#~ msgstr "31 ÑÐµÑ€Ð¿Ð½Ñ 2022 року"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Команди кориÑтувача "
+
+#~ msgid "NAME "
+#~ msgstr "ÐÐЗВР"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "КОРОТКИЙ ОПИС "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "ОПИС "
+
+#~ msgid "OPTIONS "
+#~ msgstr "ПÐРÐМЕТРИ "
+
+#~ msgid "Defines the signal to send to each matched process. Either the numeric or the symbolic signal name can be used. (B<pkill> only.)"
+#~ msgstr "Визначає Ñигнал Ð´Ð»Ñ Ð½Ð°Ð´ÑÐ¸Ð»Ð°Ð½Ð½Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð¼Ñƒ відповідному процеÑу. Ð”Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñигналу можна ÑкориÑтатиÑÑ Ñ†Ð¸Ñ„Ñ€Ð¾Ð²Ð¸Ð¼ значеннÑм або Ñимволічною назвою Ñигналу. (лише Ð´Ð»Ñ B<pkill>.)"
+
+#~ msgid "B<-q>, B<--queue >I<value> "
+#~ msgstr "B<-q>, B<--queue >I<значеннÑ> "
+
+#~ msgid "Use B<sigqueue(3)> rather than B<kill(2)> and the value argument is used to specify an integer to be sent with the signal. If the receiving process has installed a handler for this signal using the SA_SIGINFO flag to B<sigaction(2)> , then it can obtain this data via the si_value field of the siginfo_t structure."
+#~ msgstr "СкориÑтайтеÑÑ B<kill(2)> заміÑÑ‚ÑŒ B<sigqueue(3)>, Ñ– аргумент значеннÑ, Ñкий викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ Ñ†Ñ–Ð»Ð¾Ð³Ð¾ значеннÑ, буде надіÑлано разом із Ñигналом. Якщо у процеÑÑ–, Ñкий його отримає, вÑтановлено обробки Ñигналу, Ñкий викориÑтовує прапорець SA_SIGINFO B<sigaction(2)>, Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð¼Ð¾Ð¶Ðµ отримати ці дані за допомогою Ð¿Ð¾Ð»Ñ si_value Ñтруктури siginfo_t."
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "EXAMPLES "
+#~ msgstr "ПРИКЛÐДИ"
+
+#~ msgid "NOTES "
+#~ msgstr "ЗÐУВÐЖЕÐÐЯ"
+
+#~ msgid "BUGS "
+#~ msgstr "Ð’ÐДИ "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ "
+
+#~ msgid "AUTHOR "
+#~ msgstr "ÐВТОР"
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "ЗВІТИ ПРО Ð’ÐДИ "
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Про вади, будь лаÑка, повідомлÑйте на адреÑу E<.UR procps@freelists.org> E<.UE> "
+
+#~ msgid "2020-12-22"
+#~ msgstr "22 Ð³Ñ€ÑƒÐ´Ð½Ñ 2020 року"
+
+#~ msgid "User Commands "
+#~ msgstr "Команди кориÑтувача"
+
+#~ msgid "NAME "
+#~ msgstr "ÐÐЗВР"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "КОРОТКИЙ ОПИС "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "ОПИС "
+
+#~ msgid "OPTIONS "
+#~ msgstr "ПÐРÐМЕТРИ "
+
+#~ msgid "-s"
+#~ msgstr "-s"
+
+#~ msgid "-c"
+#~ msgstr "-c"
+
+#~ msgid "-q"
+#~ msgstr "-q"
+
+#~ msgid "-w"
+#~ msgstr "-w"
+
+#~ msgid "-x"
+#~ msgstr "-x"
+
+#~ msgid "EXIT STATUS "
+#~ msgstr "СТÐРВИХОДУ "
+
+#~ msgid "BUGS "
+#~ msgstr "Ð’ÐДИ "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ "
+
+#~ msgid "AUTHOR "
+#~ msgstr "ÐВТОР"
+
+#~ msgid "Jaromir Capik E<lt>jcapik@redhat.comE<gt>"
+#~ msgstr "Jaromir Capik E<lt>jcapik@redhat.comE<gt>"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Команди кориÑтувача"
+
+#~ msgid "NAME "
+#~ msgstr "ÐÐЗВР"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "КОРОТКИЙ ОПИС "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "ОПИС "
+
+#~ msgid "OPTIONS "
+#~ msgstr "ПÐРÐМЕТРИ "
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "Display version information and exit. "
+#~ msgstr "ВивеÑти дані щодо верÑÑ–Ñ— Ñ– завершити роботу. "
+
+#~ msgid "EXIT STATUS "
+#~ msgstr "СТÐРВИХОДУ "
+
+#~ msgid "B<0> "
+#~ msgstr "B<0> "
+
+#~ msgid "B<1> "
+#~ msgstr "B<1> "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ "
+
+#~ msgid "STANDARDS "
+#~ msgstr "СТÐÐДÐРТИ"
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "ЗВІТИ ПРО Ð’ÐДИ "
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Про вади, будь лаÑка, повідомлÑйте на адреÑу E<.UR procps@freelists.org> E<.UE> "
+
+#~ msgid "PROCIO"
+#~ msgstr "PROCIO"
+
+#~ msgid "Linux Manpage"
+#~ msgstr "Сторінка підручника Linux"
+
+#~ msgid "Linux Programmer's Manual"
+#~ msgstr "Підручник програміÑта Linux"
+
+#~ msgid "NAME "
+#~ msgstr "ÐÐЗВР"
+
+#~ msgid "fprocopen - stream open functions on files below /proc/##"
+#~ msgstr "fprocopen — функції Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑƒ Ð´Ð»Ñ Ñ„Ð°Ð¹Ð»Ñ–Ð² у /proc/##"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "КОРОТКИЙ ОПИС"
+
+#~ msgid "B<#define _GNU_SOURCE>"
+#~ msgstr "B<#define _GNU_SOURCE>"
+
+#~ msgid "B<#include E<lt>stdio.hE<gt>>"
+#~ msgstr "B<#include E<lt>stdio.hE<gt>>"
+
+#~ msgid "B<#include E<lt>proc/procio.hE<gt>>"
+#~ msgstr "B<#include E<lt>proc/procio.hE<gt>>"
+
+#~ msgid "B<FILE *fprocopen(const char *path, const char *mode);>"
+#~ msgstr "B<FILE *fprocopen(const char *path, const char *mode);>"
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "ОПИС "
+
+#~ msgid "The B<fprocopen> function opens files below I</proc/##> whose name is the string to by path and associates a stream with it. The argument I<mode> points to a string containing one of the following sequences"
+#~ msgstr "Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ B<fprocopen> відкриває файли у каталозі I</proc/##>, назвою Ñких Ñ” Ñ€Ñдок, на Ñкий вказує path, Ñ– пов'Ñзує із ними потік даних. Ðргумент I<mode> вказує на Ñ€Ñдок, що міÑтить одну з таких поÑлідовноÑтей:"
+
+#~ msgid "Open a file below I</proc/##> for reading even large buffers. The stream is positioned at the beginning of the file."
+#~ msgstr "Відкрити файл I</proc/##> Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ, навіть великі буфери. Потік буде позиційовано за початком файла."
+
+#~ msgid "B<w>[B<E<lt>delE<gt>>]"
+#~ msgstr "B<w>[B<E<lt>delE<gt>>]"
+
+#~ msgid "Open a file below I</proc/##> for writing even large buffers. The optional delimiter character can be one of the follwoing B<'\\ '>,\\ B<','>,\\ B<'.'>,\\ and\\ B<':'> where the default is the comma B<','>. This allows to split very large input lines into pieces at this delimiter and write each of them to the opened file below I</proc/##>."
+#~ msgstr "Відкрити файл I</proc/##> Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñу, навіть великі буфери. Додатковим Ñимволом-роздільником може бути один з таких: B<'\\ '>,\\ B<','>,\\ B<'.'>\\ Ñ–\\ B<':'>, де типовим Ñимволом Ñ” кома B<','>. Це надає змогу ділити дуже великі вхідні файли на чаÑтини за роздільником Ñ– запиÑувати Ñ—Ñ… до відкритого файла I</proc/##>."
+
+#~ msgid "The underlying file descriptor will be closed if you use any of the `exec...' functions within your code."
+#~ msgstr "Базовий деÑкриптор файла буде закрито, Ñкщо ви викориÑтаєте буд-Ñку з функцій «exec...» у вашому коді."
+
+#~ msgid "The internal API allows the use of stdio functions to read and write large buffers below I</proc/##>."
+#~ msgstr "Внутрішній програмний Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð´Ð¾Ð·Ð²Ð¾Ð»ÑÑ” викориÑÑ‚Ð°Ð½Ð½Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹ stdio Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ– запиÑÑƒÐ²Ð°Ð½Ð½Ñ Ð²ÐµÐ»Ð¸ÐºÐ¸Ñ… буферів до I</proc/##>."
+
+#~ msgid "SEE ALSO "
+#~ msgstr "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ "
+
+#~ msgid "B<fopen>(3),"
+#~ msgstr "B<fopen>(3),"
+
+#~ msgid "B<fopencookie>(3)"
+#~ msgstr "B<fopencookie>(3)"
+
+#~ msgid "B<setvbuf>(3)"
+#~ msgstr "B<setvbuf>(3)"
+
+#~ msgid "B<lseek>(3)"
+#~ msgstr "B<lseek>(3)"
+
+#~ msgid "COPYRIGHT"
+#~ msgstr "ÐВТОРСЬКІ ПРÐÐ’Ð"
+
+#~ msgid "2018 Werner Fink,"
+#~ msgstr "Werner Fink, 2018"
+
+#~ msgid "AUTHOR "
+#~ msgstr "ÐВТОР"
+
+#
+#
+#
+#~ msgid "Werner Fink E<lt>werner@suse.deE<gt>"
+#~ msgstr "Werner Fink E<lt>werner@suse.deE<gt>"
+
+#~ msgid "NAME "
+#~ msgstr "ÐÐЗВР"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "КОРОТКИЙ ОПИС "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "ОПИС "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ "
+
+#~ msgid "August 2022 "
+#~ msgstr "Ñерпень 2022 року"
+
+#~ msgid "libproc2 "
+#~ msgstr "libproc2 "
+
+#~ msgid "NAME "
+#~ msgstr "ÐÐЗВР"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "КОРОТКИЙ ОПИС "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "ОПИС "
+
+#~ msgid "RETURN VALUE "
+#~ msgstr "ПОВЕРÐУТЕ ЗÐÐЧЕÐÐЯ"
+
+#~ msgid "An error will be indicated by a negative number that is always the inverse of some well known errno.h value. "
+#~ msgstr "Ðа помилку вказуватиме від'ємне чиÑло, Ñке Ñ” завжди оберненим до ÑкогоÑÑŒ відомого Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð· errno.h. "
+
+#~ msgid "Functions Returning an `address' "
+#~ msgstr "Функції, Ñкі повертають «address» "
+
+#~ msgid "An error will be indicated by a NULL return pointer with the reason found in the formal errno value. "
+#~ msgstr "Ðа помилку вказуватиме повернутий NUL-вказівник із Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ причину у формальному значенні errno. "
+
+#~ msgid "FILES "
+#~ msgstr "ФÐЙЛИ "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ "
+
+#~ msgid "August 2022 "
+#~ msgstr "Ñерпень 2022 року"
+
+#~ msgid "libproc2 "
+#~ msgstr "libproc2 "
+
+#~ msgid "NAME "
+#~ msgstr "ÐÐЗВÐ"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "КОРОТКИЙ ОПИС"
+
+#~ msgid "Link with I<-lproc2>. "
+#~ msgstr "Компонувати з I<-lproc2>. "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "ОПИС"
+
+#~ msgid "Overview "
+#~ msgstr "ОглÑд "
+
+#~ msgid "By specifying an array of `items', these structures can be organized as a `stack', potentially yielding many results with a single function call. Thus, a `stack' can be viewed as a variable length record whose content and order is determined solely by the user. "
+#~ msgstr "ЗаданнÑм маÑиву значень «item» ці Ñтруктури можна упорÑдкувати Ñк «Ñтек» із потенційним Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð±Ð°Ð³Ð°Ñ‚ÑŒÐ¾Ñ… результатів одним викликом функції. Таким чином, «Ñтек» можна розглÑдати Ñк Ð·Ð°Ð¿Ð¸Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¾Ñ— довжини, вміÑÑ‚ Ñкого та порÑдок запиÑів у Ñкому визначаютьÑÑ Ð»Ð¸ÑˆÐµ кориÑтувачем."
+
+#~ msgid "Usage "
+#~ msgstr "КориÑÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ "
+
+#~ msgid "To exploit any `stack', and access individual `result' structures, a I<relative_enum> is required as shown in the B<VAL> macro defined in the header file. Such values could be hard coded as: 0 through numitems-1. However, this need is typically satisfied by creating your own enumerators corresponding to the order of the `items' array. "
+#~ msgstr "Щоб ÑкориÑтатиÑÑ Ð±ÑƒÐ´ÑŒ-Ñким «stack» Ñ– отримати доÑтуп до окремих Ñтруктур «result», потрібен I<relative_enum>, Ñк це показано у макроÑÑ– B<VAL>, Ñкий визначено у файлі заголовка. Такі Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° запрограмувати так: Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ 0 до numitems-1. Втім, цю потребу типово можна задовольнити ÑтвореннÑм ваших влаÑних лічильників, Ñкі відповідають порÑдку у маÑиві «items». "
+
+#~ msgid "Caveats "
+#~ msgstr "ЗаÑÑ‚ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ "
+
+#~ msgid "For the B<new> and B<unref> functions, the address of an I<info> struct pointer must be supplied. With B<new> it must have been initialized to NULL. With B<unref> it will be reset to NULL if the reference count reaches zero. "
+#~ msgstr "Ð”Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹ B<new> Ñ– B<unref> має бути надано адреÑу вказівник Ñтруктури I<info>. Із B<new> Ñ—Ñ— має бути ініціалізовано значеннÑм NULL. Із B<unref> Ñ—Ñ— буде Ñкинуто до NULL, Ñкщо контрольний відлік дійде до нулÑ. "
+
+#~ msgid "RETURN VALUE "
+#~ msgstr "ПОВЕРÐУТЕ ЗÐÐЧЕÐÐЯ "
+
+#~ msgid "Functions Returning an `int' "
+#~ msgstr "Функції, Ñкі повертають «int» "
+
+#~ msgid "An error will be indicated by a negative number that is always the inverse of some well known errno.h value. "
+#~ msgstr "Ðа помилку вказуватиме від'ємне чиÑло, Ñке Ñ” завжди оберненим до ÑкогоÑÑŒ відомого Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð· errno.h. "
+
+#~ msgid "Success is indicated by a zero return value. However, the B<ref> and B<unref> functions return the current I<info> structure reference count. "
+#~ msgstr "Ðа уÑпіх вказує нульовий Ñтан поверненнÑ. Втім, функції B<ref> Ñ– B<unref> повертають поточний контрольний відлік Ñтруктури I<info>. "
+
+#~ msgid "Functions Returning an `address' "
+#~ msgstr "Функції, Ñкі повертають «address» "
+
+#~ msgid "An error will be indicated by a NULL return pointer with the reason found in the formal errno value. "
+#~ msgstr "Ðа помилку вказуватиме повернутий NUL-вказівник із Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ причину у формальному значенні errno. "
+
+#~ msgid "DEBUGGING "
+#~ msgstr "ДІÐГÐОСТИКР"
+
+#~ msgid "This feature can be activated through either of the following methods and any discrepancies will be written to B<stderr>. "
+#~ msgstr "Цю можливіÑÑ‚ÑŒ можна активувати за допомогою будь-Ñкого з вказаних нижче методів, а уÑÑ– розбіжноÑÑ‚Ñ– буде запиÑано до B<stderr>. "
+
+#~ msgid "1) "
+#~ msgstr "1) "
+
+#~ msgid "2) "
+#~ msgstr "2) "
+
+#~ msgid "This verification feature incurs substantial overhead. Therefore, it is important that it I<not> be activated for a production/release build. "
+#~ msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— можливоÑÑ‚Ñ– перевірки призводить до Ñуттєвих обчиÑлювальних витрат. Через це, важливо I<не> вмикати Ñ—Ñ— під Ñ‡Ð°Ñ Ð¾Ñтаточного Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ Ð´Ð»Ñ Ð²Ð¸Ð¿ÑƒÑку. "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ"
+
+#~ msgid "2022-05-11"
+#~ msgstr "11 Ñ‚Ñ€Ð°Ð²Ð½Ñ 2022 року"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Команди кориÑтувача"
+
+#~ msgid "NAME "
+#~ msgstr "ÐÐЗВÐ"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "КОРОТКИЙ ОПИС"
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "ОПИС"
+
+#~ msgid "1 "
+#~ msgstr "1 "
+
+#~ msgid "2 "
+#~ msgstr "2 "
+
+#~ msgid "3 "
+#~ msgstr "3 "
+
+#~ msgid "EXAMPLES "
+#~ msgstr "ПРИКЛÐДИ "
+
+#~ msgid "B<r> "
+#~ msgstr "B<r> "
+
+#~ msgid "Identical to B<--pid\\ >I<123>. "
+#~ msgstr "Те Ñаме, що Ñ– B<--pid\\ >I<123>."
+
+#~ msgid "Set screen width. "
+#~ msgstr "Ð’Ñтановити ширину екрана. "
+
+#~ msgid "B<e> "
+#~ msgstr "B<e> "
+
+#~ msgid "Set screen height. "
+#~ msgstr "Ð’Ñтановити виÑоту екрана. "
+
+#~ msgid "Wide output. Use this option twice for unlimited width. "
+#~ msgstr "Широке виведеннÑ. СкориÑтайтеÑÑ Ñ†Ð¸Ð¼ параметром двічі, щоб вÑтановити необмежену ширину. "
+
+#~ msgid "Set screen width. "
+#~ msgstr "Ð’Ñтановити ширину екрана. "
+
+#~ msgid "Show threads after processes. "
+#~ msgstr "Показати потоки обробки піÑÐ»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑів. "
+
+#~ msgid "Print the procps-ng version. "
+#~ msgstr "ВивеÑти верÑÑ–ÑŽ procps-ng. "
+
+#~ msgid "Print the procps-ng version. "
+#~ msgstr "ВивеÑти верÑÑ–ÑŽ procps-ng. "
+
+#~ msgid "NOTES "
+#~ msgstr "ЗÐУВÐЖЕÐÐЯ "
+
+#~ msgid "1 "
+#~ msgstr "1 "
+
+#~ msgid "N "
+#~ msgstr "N "
+
+#~ msgid "R "
+#~ msgstr "R "
+
+#~ msgid "s "
+#~ msgstr "s "
+
+#~ msgid "S "
+#~ msgstr "S "
+
+#~ msgid "t "
+#~ msgstr "t "
+
+#~ msgid "T "
+#~ msgstr "T "
+
+#~ msgid "pcpu "
+#~ msgstr "pcpu "
+
+#~ msgid "ppid "
+#~ msgstr "ppid "
+
+#~ msgid "user "
+#~ msgstr "user "
+
+#~ msgid "COMMAND "
+#~ msgstr "КОМÐÐДÐ"
+
+#~ msgid "pid "
+#~ msgstr "pid "
+
+#~ msgid "tty "
+#~ msgstr "tty "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "ОПИС "
+
+#~ msgid "%CPU "
+#~ msgstr "%CPU "
+
+#~ msgid "args "
+#~ msgstr "args "
+
+#~ msgid "COMMAND "
+#~ msgstr "КОМÐÐДР"
+
+#~ msgid "TIME "
+#~ msgstr "TIME "
+
+#~ msgid "c "
+#~ msgstr "c "
+
+#~ msgid "C "
+#~ msgstr "C "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid "CLS "
+#~ msgstr "CLS "
+
+#~ msgid ""
+#~ "scheduling class of the process. (alias\n"
+#~ "B<policy>,B<\\ cls>).\n"
+#~ "Field's possible values are:\n"
+#~ " "
+#~ msgstr ""
+#~ "ÐºÐ»Ð°Ñ Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу. (альтернатива — B<policy>, B<\\ cls>). Можливими значеннÑми Ð¿Ð¾Ð»Ñ Ñ” такі:\n"
+#~ " "
+
+#~ msgid ""
+#~ ".IP \"\" 2\n"
+#~ " "
+#~ msgstr ""
+#~ ".IP \"\" 2\n"
+#~ " "
+
+#~ msgid ""
+#~ "-\tnot reported\n"
+#~ " "
+#~ msgstr ""
+#~ "-\tне повідомлено\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "TS\tSCHED_OTHER\n"
+#~ " "
+#~ msgstr ""
+#~ "TS\tSCHED_OTHER\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "FF\tSCHED_FIFO\n"
+#~ " "
+#~ msgstr ""
+#~ "FF\tSCHED_FIFO\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "RR\tSCHED_RR\n"
+#~ " "
+#~ msgstr ""
+#~ "RR\tSCHED_RR\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "B\tSCHED_BATCH\n"
+#~ " "
+#~ msgstr ""
+#~ "B\tSCHED_BATCH\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "ISO\tSCHED_ISO\n"
+#~ " "
+#~ msgstr ""
+#~ "ISO\tSCHED_ISO\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "IDL\tSCHED_IDLE\n"
+#~ " "
+#~ msgstr ""
+#~ "IDL\tSCHED_IDLE\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "DLN\tSCHED_DEADLINE\n"
+#~ " "
+#~ msgstr ""
+#~ "DLN\tSCHED_DEADLINE\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid "?\tunknown value "
+#~ msgstr "?\tневідоме Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ "
+
+#~ msgid "cmd "
+#~ msgstr "cmd "
+
+#~ msgid "comm "
+#~ msgstr "comm "
+
+#~ msgid "COMMAND "
+#~ msgstr "КОМÐÐДР"
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid "COMMAND "
+#~ msgstr "КОМÐÐДР"
+
+#~ msgid "TIME "
+#~ msgstr "ЧÐС "
+
+#~ msgid "TIME "
+#~ msgstr "ЧÐС "
+
+#~ msgid ""
+#~ "data resident set size, the amount of physical memory devoted to other than\n"
+#~ "executable code."
+#~ msgstr "розмір резидентного набору даних, обÑÑг фізичної пам'ÑÑ‚Ñ–, Ñку викориÑтано Ð´Ð»Ñ Ð´Ð°Ð½Ð¸Ñ…, відмінних від виконуваного коду."
+
+#~ msgid "etime "
+#~ msgstr "etime "
+
+#~ msgid "ELAPSED "
+#~ msgstr "ELAPSED "
+
+#~ msgid "ELAPSED "
+#~ msgstr "ELAPSED "
+
+#~ msgid "f "
+#~ msgstr "f "
+
+#~ msgid "F "
+#~ msgstr "F "
+
+#~ msgid "flags "
+#~ msgstr "flags "
+
+#~ msgid "F "
+#~ msgstr "F "
+
+#~ msgid "COMMAND "
+#~ msgstr "КОМÐÐДÐ"
+
+#~ msgid "group "
+#~ msgstr "group "
+
+#~ msgid "GROUP "
+#~ msgstr "ГРУПР"
+
+#~ msgid ""
+#~ "Unique inode number describing the namespace the process belongs to.\n"
+#~ "See\n"
+#~ "I<namespaces>(7). "
+#~ msgstr "Унікальний номер inode, що опиÑує проÑÑ‚Ñ–Ñ€ назв, до Ñкого належить процеÑ. Див. I<namespaces>(7). "
+
+#~ msgid ""
+#~ "time the command started. See also\n"
+#~ "B<bsdstart>,B<\\ start>,B<\\ start_time>, andB<\\ stime>."
+#~ msgstr "момент чаÑу, коли запущено команду. Див. також B<bsdstart>, B<start>, B<start_time> Ñ– B<stime>."
+
+#~ msgid "maj_flt "
+#~ msgstr "maj_flt "
+
+#~ msgid "min_flt "
+#~ msgstr "min_flt "
+
+#~ msgid ""
+#~ "Unique inode number describing the namespace the process belongs to.\n"
+#~ "See\n"
+#~ "I<namespaces>(7). "
+#~ msgstr "Унікальний номер inode, що опиÑує проÑÑ‚Ñ–Ñ€ назв, до Ñкого належить процеÑ. Див. I<namespaces>(7). "
+
+#~ msgid ""
+#~ "Unique inode number describing the namespace the process belongs to.\n"
+#~ "See\n"
+#~ "I<namespaces>(7). "
+#~ msgstr "Унікальний номер inode, що опиÑує проÑÑ‚Ñ–Ñ€ назв, до Ñкого належить процеÑ. Див. I<namespaces>(7). "
+
+#~ msgid "NI "
+#~ msgstr "NI "
+
+#~ msgid "nice "
+#~ msgstr "nice "
+
+#~ msgid "NI "
+#~ msgstr "NI "
+
+#~ msgid "pcpu "
+#~ msgstr "pcpu "
+
+#~ msgid "%CPU "
+#~ msgstr "%CPU "
+
+#~ msgid "pgid "
+#~ msgstr "pgid "
+
+#~ msgid "PGID "
+#~ msgstr "PGID "
+
+#~ msgid "pgrp "
+#~ msgstr "pgrp "
+
+#~ msgid "pid "
+#~ msgstr "pid "
+
+#~ msgid "PID "
+#~ msgstr "PID "
+
+#~ msgid ""
+#~ "Unique inode number describing the namespace the process belongs to.\n"
+#~ "See\n"
+#~ "I<namespaces>(7). "
+#~ msgstr "Унікальний номер inode, що опиÑує проÑÑ‚Ñ–Ñ€ назв, до Ñкого належить процеÑ. Див. I<namespaces>(7). "
+
+#~ msgid "%MEM "
+#~ msgstr "%MEM "
+
+#~ msgid ""
+#~ ".IP \"\" 2\n"
+#~ " "
+#~ msgstr ""
+#~ ".IP \"\" 2\n"
+#~ " "
+
+#~ msgid ""
+#~ "-\tnot reported\n"
+#~ " "
+#~ msgstr ""
+#~ "-\tне повідомлено\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "TS\tSCHED_OTHER\n"
+#~ " "
+#~ msgstr ""
+#~ "TS\tSCHED_OTHER\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "FF\tSCHED_FIFO\n"
+#~ " "
+#~ msgstr ""
+#~ "FF\tSCHED_FIFO\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "RR\tSCHED_RR\n"
+#~ " "
+#~ msgstr ""
+#~ "RR\tSCHED_RR\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "B\tSCHED_BATCH\n"
+#~ " "
+#~ msgstr ""
+#~ "B\tSCHED_BATCH\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "ISO\tSCHED_ISO\n"
+#~ " "
+#~ msgstr ""
+#~ "ISO\tSCHED_ISO\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "IDL\tSCHED_IDLE\n"
+#~ " "
+#~ msgstr ""
+#~ "IDL\tSCHED_IDLE\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid ""
+#~ "DLN\tSCHED_DEADLINE\n"
+#~ " "
+#~ msgstr ""
+#~ "DLN\tSCHED_DEADLINE\n"
+#~ " "
+
+#~ msgid ""
+#~ ".br\n"
+#~ " "
+#~ msgstr ""
+#~ ".br\n"
+#~ " "
+
+#~ msgid "?\tunknown value "
+#~ msgstr "?\tневідоме Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ "
+
+#~ msgid "ppid "
+#~ msgstr "ppid "
+
+#~ msgid "PPID "
+#~ msgstr "PPID "
+
+#~ msgid "rgroup "
+#~ msgstr "rgroup "
+
+#~ msgid "RGROUP "
+#~ msgstr "RGROUP "
+
+#~ msgid "rss "
+#~ msgstr "rss "
+
+#~ msgid "RSS "
+#~ msgstr "RSS "
+
+#~ msgid "ruser "
+#~ msgstr "ruser "
+
+#~ msgid "RUSER "
+#~ msgstr "RUSER "
+
+#~ msgid "s "
+#~ msgstr "s "
+
+#~ msgid "S "
+#~ msgstr "S "
+
+#~ msgid "P "
+#~ msgstr "P "
+
+#~ msgid "PENDING "
+#~ msgstr "PENDING "
+
+#~ msgid "CAUGHT "
+#~ msgstr "CAUGHT "
+
+#~ msgid "IGNORED "
+#~ msgstr "IGNORED "
+
+#~ msgid "BLOCKED "
+#~ msgstr "BLOCKED "
+
+#~ msgid "size "
+#~ msgstr "size "
+
+#~ msgid "STARTED "
+#~ msgstr "STARTED "
+
+#~ msgid "start_time "
+#~ msgstr "start_time "
+
+#~ msgid "START "
+#~ msgstr "START "
+
+#~ msgid "S "
+#~ msgstr "S "
+
+#~ msgid "time "
+#~ msgstr "time "
+
+#~ msgid "TIME "
+#~ msgstr "TIME "
+
+#~ msgid ""
+#~ "Unique inode number describing the namespace the process belongs to.\n"
+#~ "See\n"
+#~ "I<namespaces>(7). "
+#~ msgstr "Унікальний номер inode, що опиÑує проÑÑ‚Ñ–Ñ€ назв, до Ñкого належить процеÑ. Див. I<namespaces>(7). "
+
+#~ msgid "TIME "
+#~ msgstr "TIME "
+
+#~ msgid "TTY "
+#~ msgstr "TTY "
+
+#~ msgid "tpgid "
+#~ msgstr "tpgid "
+
+#~ msgid "tty "
+#~ msgstr "tty "
+
+#~ msgid "TT "
+#~ msgstr "TT "
+
+#~ msgid "CMD "
+#~ msgstr "CMD "
+
+#~ msgid "COMMAND "
+#~ msgstr "КОМÐÐДР"
+
+#~ msgid "uid "
+#~ msgstr "uid "
+
+#~ msgid "USER "
+#~ msgstr "USER "
+
+#~ msgid "user "
+#~ msgstr "user "
+
+#~ msgid "USER "
+#~ msgstr "USER "
+
+#~ msgid ""
+#~ "Unique inode number describing the namespace the process belongs to.\n"
+#~ "See\n"
+#~ "I<namespaces>(7). "
+#~ msgstr "Унікальний номер inode, що опиÑує проÑÑ‚Ñ–Ñ€ назв, до Ñкого належить процеÑ. Див. I<namespaces>(7). "
+
+#~ msgid ""
+#~ "Unique inode number describing the namespace the process belongs to.\n"
+#~ "See\n"
+#~ "I<namespaces>(7). "
+#~ msgstr "Унікальний номер inode, що опиÑує проÑÑ‚Ñ–Ñ€ назв, до Ñкого належить процеÑ. Див. I<namespaces>(7). "
+
+#~ msgid "vsize "
+#~ msgstr "vsize "
+
+#~ msgid "VSZ "
+#~ msgstr "VSZ "
+
+#~ msgid "vsz "
+#~ msgstr "vsz "
+
+#~ msgid "VSZ "
+#~ msgstr "VSZ "
+
+#~ msgid "WCHAN "
+#~ msgstr "WCHAN "
+
+#~ msgid "Set to one of posix, old, linux, bsd, sun, digital... (see section B<PERSONALITY> below). "
+#~ msgstr "Ð’Ñтановлюють одне зі значень: posix, old, linux, bsd, sun, digital... (див. розділ B<УОСОБЛЕÐÐЯ> нижче). "
+
+#~ msgid "Don't find excuses to ignore bad \"features\". "
+#~ msgstr "Ðе шукати виправдань Ñ–Ð³Ð½Ð¾Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ñ… «можливоÑтей». "
+
+#~ msgid "like the old Debian B<ps> "
+#~ msgstr "подібний до B<ps> Ð´Ð»Ñ Ñтарого Debian "
+
+#~ msgid "like HP-UX B<ps> "
+#~ msgstr "подібно до B<ps> в HP-UX "
+
+#~ msgid "like OS/390 Open Edition B<ps> "
+#~ msgstr "подібний до B<ps> в OS/390 Open Edition "
+
+#~ msgid "like Irix B<ps> "
+#~ msgstr "подібно до B<ps> в Irix "
+
+#~ msgid "standard "
+#~ msgstr "standard "
+
+#~ msgid "standard "
+#~ msgstr "standard "
+
+#~ msgid "standard "
+#~ msgstr "standard "
+
+#~ msgid "standard "
+#~ msgstr "standard "
+
+#~ msgid "standard "
+#~ msgstr "standard "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ "
+
+#~ msgid "STANDARDS "
+#~ msgstr "СТÐÐДÐРТИ "
+
+#~ msgid "1 "
+#~ msgstr "1 "
+
+#~ msgid "2 "
+#~ msgstr "2 "
+
+#~ msgid "3 "
+#~ msgstr "3 "
+
+#~ msgid "4 "
+#~ msgstr "4 "
+
+#~ msgid "AUTHOR "
+#~ msgstr "ÐВТОР "
+
+#~ msgid "2020-06-04 "
+#~ msgstr "4 Ñ‡ÐµÑ€Ð²Ð½Ñ 2020 року"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Команди кориÑтувача "
+
+#~ msgid "NAME "
+#~ msgstr "ÐÐЗВР"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "КОРОТКИЙ ОПИС "
+
+#~ msgid "OPTIONS "
+#~ msgstr "ПÐРÐМЕТРИ "
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ "
+
+#~ msgid "B<ps>(1), B<pgrep>(1) "
+#~ msgstr "B<ps>(1), B<pgrep>(1) "
+
+#~ msgid "STANDARDS "
+#~ msgstr "СТÐÐДÐРТИ "
+
+#~ msgid "AUTHOR "
+#~ msgstr "ÐВТОР "
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "ЗВІТИ ПРО Ð’ÐДИ "
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Про вади, будь лаÑка, повідомлÑйте на адреÑу E<.UR procps@freelists.org> E<.UE> "
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Команди кориÑтувача "
+
+#~ msgid "NAME "
+#~ msgstr "ÐÐЗВР"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "КОРОТКИЙ ОПИС "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "ОПИС "
+
+#~ msgid "OPTIONS "
+#~ msgstr "ПÐРÐМЕТРИ "
+
+#~ msgid "B<-L>,B<\\ --table> "
+#~ msgstr "B<-L>,B<\\ --table> "
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "Display help text and exit. "
+#~ msgstr "ВивеÑти текÑÑ‚ довідки Ñ– завершити роботу. "
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "Display version information. "
+#~ msgstr "Показати інформацію щодо верÑÑ–Ñ—. "
+
+#~ msgid "B<--ns >I<pid> "
+#~ msgstr "B<--ns >I<pid> "
+
+#~ msgid "EXAMPLES "
+#~ msgstr "ПРИКЛÐДИ "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ "
+
+#~ msgid "STANDARDS "
+#~ msgstr "СТÐÐДÐРТИ "
+
+#~ msgid "AUTHOR "
+#~ msgstr "ÐВТОР "
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "ЗВІТИ ПРО Ð’ÐДИ "
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Про вади, будь лаÑка, повідомлÑйте на адреÑу E<.UR procps@freelists.org> E<.UE> "
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Команди кориÑтувача "
+
+#~ msgid "NAME "
+#~ msgstr "ÐÐЗВР"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "КОРОТКИЙ ОПИС "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "ОПИС "
+
+#~ msgid "OPTIONS "
+#~ msgstr "ПÐРÐМЕТРИ "
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "Display version information and exit. "
+#~ msgstr "ВивеÑти дані щодо верÑÑ–Ñ— Ñ– завершити роботу. "
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "c "
+#~ msgstr "c "
+
+#~ msgid "l "
+#~ msgstr "l "
+
+#~ msgid "v "
+#~ msgstr "v "
+
+#~ msgid "n "
+#~ msgstr "n "
+
+#~ msgid "o "
+#~ msgstr "o "
+
+#~ msgid "p "
+#~ msgstr "p "
+
+#~ msgid "N/A "
+#~ msgstr "Ðемає "
+
+#~ msgid "s "
+#~ msgstr "s "
+
+#~ msgid "u "
+#~ msgstr "u "
+
+#~ msgid "FILES "
+#~ msgstr "ФÐЙЛИ "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ "
+
+#~ msgid "NOTES "
+#~ msgstr "ЗÐУВÐЖЕÐÐЯ "
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "ЗВІТИ ПРО Ð’ÐДИ "
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Про вади, будь лаÑка, повідомлÑйте на адреÑу E<.UR procps@freelists.org> E<.UE> "
+
+#~ msgid "2021-03-29"
+#~ msgstr "29 Ð±ÐµÑ€ÐµÐ·Ð½Ñ 2021 року"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "NAME "
+#~ msgstr "ÐÐЗВР"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "КОРОТКИЙ ОПИС "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "ОПИС "
+
+#~ msgid "B<-q>, B<--quiet> "
+#~ msgstr "B<-q>, B<--quiet> "
+
+#~ msgid "B<-A> "
+#~ msgstr "B<-A> "
+
+#~ msgid "B<-d> "
+#~ msgstr "B<-d> "
+
+#~ msgid "B<-f> "
+#~ msgstr "B<-f> "
+
+#~ msgid "B<-X> "
+#~ msgstr "B<-X> "
+
+#~ msgid "Alias of B<-a> "
+#~ msgstr "Інший варіант B<-a> "
+
+#~ msgid "Does nothing, exists for BSD compatibility. "
+#~ msgstr "Ðе виконувати дій. ВикориÑтовуєтьÑÑ Ð´Ð»Ñ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ ÑуміÑноÑÑ‚Ñ– із BSD. "
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "Display help text and exit. "
+#~ msgstr "ВивеÑти текÑÑ‚ довідки Ñ– завершити роботу. "
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "Display version information and exit. "
+#~ msgstr "ВивеÑти дані щодо верÑÑ–Ñ— Ñ– завершити роботу. "
+
+#~ msgid "EXAMPLES "
+#~ msgstr "ПРИКЛÐДИ "
+
+#~ msgid "FILES "
+#~ msgstr "ФÐЙЛИ "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ "
+
+#~ msgid "AUTHOR "
+#~ msgstr "ÐВТОР "
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "ЗВІТИ ПРО Ð’ÐДИ "
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Про вади, будь лаÑка, повідомлÑйте на адреÑу E<.UR procps@freelists.org> E<.UE> "
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "NAME "
+#~ msgstr "ÐÐЗВР"
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "ОПИС "
+
+#~ msgid "NOTES "
+#~ msgstr "ЗÐУВÐЖЕÐÐЯ "
+
+#~ msgid "FILES "
+#~ msgstr "ФÐЙЛИ "
+
+#~ msgid "I</etc/sysctl.d/*.conf> "
+#~ msgstr "I</etc/sysctl.d/*.conf> "
+
+#~ msgid "I</run/sysctl.d/*.conf> "
+#~ msgstr "I</run/sysctl.d/*.conf> "
+
+#~ msgid "I</usr/local/lib/sysctl.d/*.conf> "
+#~ msgstr "I</usr/local/lib/sysctl.d/*.conf> "
+
+#~ msgid "I</usr/lib/sysctl.d/*.conf> "
+#~ msgstr "I</usr/lib/sysctl.d/*.conf> "
+
+#~ msgid "I</lib/sysctl.d/*.conf> "
+#~ msgstr "I</lib/sysctl.d/*.conf> "
+
+#~ msgid "I</etc/sysctl.conf> "
+#~ msgstr "I</etc/sysctl.conf> "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ "
+
+#~ msgid "AUTHOR "
+#~ msgstr "ÐВТОР "
+
+#~ msgid "E<.UR staikos@0wned.org> George Staikos E<.UE> "
+#~ msgstr "E<.UR staikos@0wned.org> George Staikos E<.UE> "
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "ЗВІТИ ПРО Ð’ÐДИ "
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Про вади, будь лаÑка, повідомлÑйте на адреÑу E<.UR procps@freelists.org> E<.UE> "
+
+#~ msgid "2020-06-04 "
+#~ msgstr "4 Ñ‡ÐµÑ€Ð²Ð½Ñ 2020 року "
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Команди кориÑтувача "
+
+#~ msgid "NAME "
+#~ msgstr "ÐÐЗВР"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "КОРОТКИЙ ОПИС "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "ОПИС "
+
+#~ msgid "OPTIONS "
+#~ msgstr "ПÐРÐМЕТРИ "
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "Display version information and exit. "
+#~ msgstr "ВивеÑти дані щодо верÑÑ–Ñ— Ñ– завершити роботу. "
+
+#~ msgid "FILES "
+#~ msgstr "ФÐЙЛИ "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ "
+
+#~ msgid "BUGS "
+#~ msgstr "Ð’ÐДИ "
+
+#~ msgid "AUTHORS "
+#~ msgstr "ÐВТОРИ "
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "ЗВІТИ ПРО Ð’ÐДИ "
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Про вади, будь лаÑка, повідомлÑйте на адреÑу E<.UR procps@freelists.org> E<.UE> "
+
+#~ msgid "September 2022"
+#~ msgstr "ВереÑень 2022 року"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Команди кориÑтувача "
+
+#~ msgid "NAME "
+#~ msgstr "ÐÐЗВР"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "КОРОТКИЙ ОПИС "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "ОПИС "
+
+#~ msgid "Prepending an exclamation point (`!') to the user id or name instructs \\*(We to display only processes with users not matching the one provided. "
+#~ msgstr "Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð½Ð°ÐºÑƒ оклику («!») до ідентифікатора кориÑтувача або імені наказує \\*(We показати лише процеÑи кориÑтувачів, Ñкі не збігаютьÑÑ Ñ–Ð· вказаним. "
+
+#~ msgid "The `p', `U' and `u' \\*(COs are mutually exclusive. "
+#~ msgstr "Параметри командного Ñ€Ñдка «p», «U» Ñ– «u» Ñ” взаємно виключними."
+
+#~ msgid "\\*(XX. "
+#~ msgstr "\\*(XX. "
+
+#~ msgid "\\*(XX. "
+#~ msgstr "\\*(XX. "
+
+#~ msgid "\\*(ZX. "
+#~ msgstr "\\*(ZX. "
+
+#~ msgid "\\*(XX. "
+#~ msgstr "\\*(XX. "
+
+#~ msgid "\\*(ZX. "
+#~ msgstr "\\*(ZX. "
+
+#~ msgid "\\*(XX. "
+#~ msgstr "\\*(XX. "
+
+#~ msgid "\\*(XX. "
+#~ msgstr "\\*(XX. "
+
+#~ msgid "\\*(XX. "
+#~ msgstr "\\*(XX. "
+
+#~ msgid "\\*(ZX. "
+#~ msgstr "\\*(ZX. "
+
+#~ msgid "\\*(XX. "
+#~ msgstr "\\*(XX. "
+
+#~ msgid "\\(bu "
+#~ msgstr "\\(bu "
+
+#~ msgid "\\(bu "
+#~ msgstr "\\(bu "
+
+#~ msgid "\\(bu "
+#~ msgstr "\\(bu "
+
+#~ msgid "\\(bu "
+#~ msgstr "\\(bu "
+
+#~ msgid "Entering no PID or a negative number will be interpreted as the default shown in the prompt (the first task displayed). A PID value of zero means the \\*(We program itself. "
+#~ msgstr "Якщо PID не буде введено або буде введено від'ємне чиÑло, програма викориÑтає типове значеннÑ, Ñке показано у запиті щодо команди (перше показане завданнÑ). Ðульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ PID означає Ñаму програму \\*(We."
+
+#~ msgid "This command serves as a 4-way toggle, cycling through these modes: "
+#~ msgstr "Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° працює Ñк чотирипозиційний перемикач із циклічним перемиканнÑм таких режимів: "
+
+#~ msgid "\\ \\ \\ B<f>\\ \\ :I<Fields-Management > "
+#~ msgstr "\\ \\ \\ B<f>\\ \\ :I<ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð»Ñми > "
+
+#~ msgid "* "
+#~ msgstr "* "
+
+#~ msgid "The above \\*(CIs areB< always> available in \\*(FM butB< never> available in \\*(AM if the \\*(CW's \\*(TD has been toggled \\*F. "
+#~ msgstr "Ðаведені вище інтерактивні команди доÑтупні B<завжди> у повноекранному режимі, але B<ніколи> не доÑтупні у режимі альтернативного показу, Ñкщо показ завдань «поточного» вікна \\*F."
+
+#~ msgid "The value set for the following is unimportant, just its presence. "
+#~ msgstr "Ð’Ñтановлене Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ” неÑуттєвим, доÑтатнього Ñамого факту його вÑтановленнÑ."
+
+#~ msgid "LIBPROC_HIDE_KERNEL "
+#~ msgstr "LIBPROC_HIDE_KERNEL "
+
+#~ msgid "\\(bu "
+#~ msgstr "\\(bu "
+
+#~ msgid "\\(bu "
+#~ msgstr "\\(bu "
+
+#~ msgid "\\(bu "
+#~ msgstr "\\(bu "
+
+#~ msgid "\\(bu "
+#~ msgstr "\\(bu "
+
+#~ msgid "\\(bu "
+#~ msgstr "\\(bu "
+
+#~ msgid "\\(bu "
+#~ msgstr "\\(bu "
+
+#~ msgid "\\(bu "
+#~ msgstr "\\(bu "
+
+#~ msgid "\\(bu "
+#~ msgstr "\\(bu "
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Команди кориÑтувача "
+
+#~ msgid "NAME "
+#~ msgstr "ÐÐЗВР"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "КОРОТКИЙ ОПИС "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "ОПИС "
+
+#~ msgid "OPTIONS "
+#~ msgstr "ПÐРÐМЕТРИ "
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "FILES "
+#~ msgstr "ФÐЙЛИ "
+
+#~ msgid "AUTHORS "
+#~ msgstr "ÐВТОРИ "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ "
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "ЗВІТИ ПРО Ð’ÐДИ "
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Про вади, будь лаÑка, повідомлÑйте на адреÑу E<.UR procps@freelists.org> E<.UE> "
+
+#~ msgid "2020-06-04 "
+#~ msgstr "4 Ñ‡ÐµÑ€Ð²Ð½Ñ 2020 року"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "System Administration "
+#~ msgstr "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÑиÑтемою "
+
+#~ msgid "NAME "
+#~ msgstr "ÐÐЗВР"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "КОРОТКИЙ ОПИС "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "ОПИС "
+
+#~ msgid "OPTIONS "
+#~ msgstr "ПÐРÐМЕТРИ "
+
+#~ msgid "B<-w>, B<--wide> "
+#~ msgstr "B<-w>, B<--wide> "
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "Display version information and exit. "
+#~ msgstr "ВивеÑти дані щодо верÑÑ–Ñ— Ñ– завершити роботу. "
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "Display help and exit. "
+#~ msgstr "Показати довідкові дані і завершити роботу. "
+
+#~ msgid "These are affected by the B<--unit> option. "
+#~ msgstr "Ðа показ цих даних впливає параметр B<--unit>. "
+
+#~ msgid "CPU "
+#~ msgstr "ПроцеÑор "
+
+#~ msgid "IO "
+#~ msgstr "ВВЕДЕÐÐЯ-ВИВЕДЕÐÐЯ "
+
+#~ msgid "NOTES "
+#~ msgstr "ЗÐУВÐЖЕÐÐЯ "
+
+#~ msgid "B<vmstat> does not require special permissions."
+#~ msgstr "Ð”Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ B<vmstat> не потрібні додаткові права доÑтупу."
+
+#~ msgid "These reports are intended to help identify system bottlenecks. Linux B<vmstat> does not count itself as a running process."
+#~ msgstr "Ці звіти призначено Ð´Ð»Ñ Ð¿Ð¾Ð»ÐµÐ³ÑˆÐµÐ½Ð½Ñ Ð²Ð¸ÑÐ²Ð»ÐµÐ½Ð½Ñ Ð²ÑƒÐ·ÑŒÐºÐ¸Ñ… міÑць ÑиÑтеми. B<vmstat> у Linux не вважає Ñебе запущеним процеÑом."
+
+#~ msgid "All linux blocks are currently 1024 bytes. Old kernels may report blocks as 512 bytes, 2048 bytes, or 4096 bytes."
+#~ msgstr "Розмір уÑÑ–Ñ… блоків у linux у поточній верÑÑ–Ñ— дорівнює 1024 байтам. Старі верÑÑ–Ñ— Ñдер можуть повідомлÑти про блоки розміром 512 байтів, 2048 байтів або 4096 байтів."
+
+#~ msgid "Since procps 3.1.9, vmstat lets you choose units (k, K, m, M). Default is K (1024 bytes) in the default mode."
+#~ msgstr "Починаючи з верÑÑ–Ñ— procps 3.1.9, у vmstat передбачено можливіÑÑ‚ÑŒ вибору одиниць виміру (k, K, m, M). Типовою одиницею у типовому режимі Ñ” K (1024 байтів)."
+
+#~ msgid "vmstat uses slabinfo 1.1"
+#~ msgstr "vmstat uses slabinfo 1.1"
+
+#~ msgid "FILES "
+#~ msgstr "ФÐЙЛИ "
+
+#~ msgid ""
+#~ "/proc/meminfo\n"
+#~ "/proc/stat\n"
+#~ "/proc/*/stat\n"
+#~ msgstr ""
+#~ "/proc/meminfo\n"
+#~ "/proc/stat\n"
+#~ "/proc/*/stat\n"
+
+#~ msgid "SEE ALSO "
+#~ msgstr "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ "
+
+#~ msgid "BUGS "
+#~ msgstr "Ð’ÐДИ "
+
+#~ msgid "Does not tabulate the block io per device or count the number of system calls."
+#~ msgstr "Ðе табулює дані щодо введеннÑ-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð·Ð° приÑтроÑми Ñ– не визначає кількоÑÑ‚Ñ– ÑиÑтемних викликів."
+
+#~ msgid "AUTHORS "
+#~ msgstr "ÐВТОРИ "
+
+#~ msgid "Written by E<.UR al172@yfn.\\:ysu.\\:edu> Henry Ware E<.UE .>"
+#~ msgstr "Створено E<.UR al172@yfn.\\:ysu.\\:edu> Henry Ware E<.UE .>"
+
+#~ msgid "E<.UR ffrederick@users.\\:sourceforge.\\:net> Fabian Fr\\('ed\\('erick E<.UE> (diskstat, slab, partitions...)"
+#~ msgstr "E<.UR ffrederick@users.\\:sourceforge.\\:net> Fabian Fr\\('ed\\('erick E<.UE> (ÑтатиÑтика щодо диÑка, чаÑтин, розділів...)"
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "ЗВІТИ ПРО Ð’ÐДИ "
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Про вади, будь лаÑка, повідомлÑйте на адреÑу E<.UR procps@freelists.org> E<.UE> "
+
+#~ msgid "W "
+#~ msgstr "W "
+
+#~ msgid "2020-06-04 "
+#~ msgstr "4 Ñ‡ÐµÑ€Ð²Ð½Ñ 2020 року"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Команди кориÑтувача "
+
+#~ msgid "NAME "
+#~ msgstr "ÐÐЗВР"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "КОРОТКИЙ ОПИС "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "ОПИС "
+
+#~ msgid "B<--help> "
+#~ msgstr "B<--help> "
+
+#~ msgid "Display help text and exit. "
+#~ msgstr "ВивеÑти текÑÑ‚ довідки Ñ– завершити роботу. "
+
+#~ msgid "B<-V>, B<--version> "
+#~ msgstr "B<-V>, B<--version> "
+
+#~ msgid "Display version information. "
+#~ msgstr "Показати інформацію щодо верÑÑ–Ñ—. "
+
+#~ msgid "FILES "
+#~ msgstr "ФÐЙЛИ "
+
+#~ msgid "I</var/run/utmp> "
+#~ msgstr "I</var/run/utmp> "
+
+#~ msgid "information about who is currently logged on "
+#~ msgstr "Дані щодо тих, хто зараз працює у ÑиÑтемі. "
+
+#~ msgid "I</proc> "
+#~ msgstr "I</proc> "
+
+#~ msgid "process information "
+#~ msgstr "дані щодо процеÑів "
+
+#~ msgid "SEE ALSO "
+#~ msgstr "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ "
+
+#~ msgid "AUTHORS "
+#~ msgstr "ÐВТОРИ "
+
+#~ msgid "REPORTING BUGS "
+#~ msgstr "ЗВІТИ ПРО Ð’ÐДИ "
+
+#~ msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE> "
+#~ msgstr "Про вади, будь лаÑка, повідомлÑйте на адреÑу E<.UR procps@freelists.org> E<.UE> "
+
+#~ msgid "2021-04-24"
+#~ msgstr "4 ÐºÐ²Ñ–Ñ‚Ð½Ñ 2021 року"
+
+#~ msgid "procps-ng "
+#~ msgstr "procps-ng "
+
+#~ msgid "User Commands "
+#~ msgstr "Команди кориÑтувача "
+
+#~ msgid "NAME "
+#~ msgstr "ÐÐЗВР"
+
+#~ msgid "SYNOPSIS "
+#~ msgstr "КОРОТКИЙ ОПИС "
+
+#~ msgid "DESCRIPTION "
+#~ msgstr "ОПИС "
+
+#~ msgid "OPTIONS "
+#~ msgstr "ПÐРÐМЕТРИ "
+
+#~ msgid "B<-h>, B<--help> "
+#~ msgstr "B<-h>, B<--help> "
+
+#~ msgid "Display help text and exit. "
+#~ msgstr "ВивеÑти текÑÑ‚ довідки Ñ– завершити роботу. "
+
+#~ msgid "Display version information and exit. "
+#~ msgstr "ВивеÑти дані щодо верÑÑ–Ñ— Ñ– завершити роботу. "
+
+#~ msgid "EXIT STATUS "
+#~ msgstr "СТÐРВИХОДУ "
+
+#~ msgid "B<0> "
+#~ msgstr "B<0> "
+
+#~ msgid "Success. "
+#~ msgstr "УÑпіх."
+
+#~ msgid "B<1> "
+#~ msgstr "B<1> "
+
+#~ msgid "ENVIRONMENT "
+#~ msgstr "СЕРЕДОВИЩЕ "
+
+#~ msgid "NOTES "
+#~ msgstr "ЗÐУВÐЖЕÐÐЯ "
+
+#~ msgid "BUGS "
+#~ msgstr "Ð’ÐДИ "
+
+#~ msgid "EXAMPLES "
+#~ msgstr "ПРИКЛÐДИ "
+
+#~ msgid "Please send bug reports to E<.MT procps@freelists.org> E<.ME>"
+#~ msgstr "Про вади, будь лаÑка, повідомлÑйте на адреÑу E<.MT procps@freelists.org> E<.ME>"
+
+#~ msgid "June 2011"
+#~ msgstr "червень 2011 року"
+
+#~ msgid "2020-02-27"
+#~ msgstr "27 лютого 2020 року"
+
+#~ msgid "2020-12-06"
+#~ msgstr "6 Ð³Ñ€ÑƒÐ´Ð½Ñ 2020 року"
+
+#~ msgid "instruction pointer."
+#~ msgstr "вказівник інÑтрукцій."
+
+#~ msgid "stack pointer."
+#~ msgstr "вказівник Ñтека."
+
+#~ msgid ""
+#~ "name of the kernel function in which the process is sleeping, a \"-\" if the\n"
+#~ "process is running, or a \"*\" if the process is multi-threaded and\n"
+#~ "B<ps>\n"
+#~ "is not displaying threads."
+#~ msgstr ""
+#~ "назва функції Ñдра, у Ñкій Ñпить процеÑ, «-», Ñкщо процеÑ\n"
+#~ "запущено, або «*», Ñкщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ” багатопотоковим Ñ–\n"
+#~ "B<ps>\n"
+#~ "не показує потоки."
+
+#~ msgid "-B<hv>|-B<bcEeHiOSs1> -B<d> secs -B<n> max -B<u>|B<U> user -B<p> pids -B<o> field -B<w> [cols] "
+#~ msgstr "-B<hv>|-B<bcEeHiOSs1> -B<d> Ñек -B<n> макÑ. -B<u>|B<U> кориÑтувач -B<p> pid -B<o> поле -B<w> [Ñтовпчики] "
+
+#~ msgid "20"
+#~ msgstr "20"
+
+#~ msgid "\\*(WE \\*(CL"
+#~ msgstr "\\*(WE \\*(CL"
+
+#~ msgid "The traditional switches `-' and whitespace are optional."
+#~ msgstr "Традиційні перемикачі `-' та пробільні Ñимволи Ñ” необов'Ñзковими."
+
+#~ msgid "The command-line syntax for \\*(We consists of:"
+#~ msgstr "СинтакÑÐ¸Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾Ð³Ð¾ Ñ€Ñдка \\*(We ÑкладаєтьÑÑ Ð·:"
+
+#~ msgid " \\*(CL\n"
+#~ msgstr " \\*(CL\n"
+
+#~ msgid "The typically mandatory switch (`-') and even whitespace are completely optional."
+#~ msgstr "Типовий обов'Ñзковий перемикач («-») Ñ– навіть пробіл Ñ” повніÑÑ‚ÑŽ необов'Ñзковими."
+
+#~ msgid "-B<h> | -B<v>\\ \\ :I<Help/Version >"
+#~ msgstr "-B<h> | -B<v>\\ \\ :I<Довідка/ВерÑÑ–Ñ >"
+
+#~ msgid "Show library version and the usage prompt, then quit."
+#~ msgstr "Показати верÑÑ–ÑŽ бібліотеку Ñ– Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ викориÑтаннÑ, потім вийти."
+
+#~ msgid "-B<b>\\ \\ :I<Batch-mode> operation "
+#~ msgstr "-B<b>\\ \\ :I<Пакетний режим> роботи "
+
+#~ msgid "-B<c>\\ \\ :I<Command-line/Program-name> toggle "
+#~ msgstr "-B<c>\\ \\ :I<Командний Ñ€Ñдок/Ðазва програми> "
+
+#~ msgid "-B<d>\\ \\ :I<Delay-time> interval as:\\ \\ B<-d ss.t> (I<secs>.I<tenths>) "
+#~ msgstr "-B<d>\\ \\ :I<ТриваліÑÑ‚ÑŒ затримки> у такому форматі:\\ \\ B<-d ÑÑ.д> (I<Ñекунди>.I<деÑÑÑ‚Ñ–>) "
+
+#~ msgid "-B<H>\\ \\ :I<Threads-mode> operation "
+#~ msgstr "-B<H>\\ \\ :I<Потоковий режим> роботи "
+
+#~ msgid "-B<i>\\ \\ :I<Idle-process> toggle "
+#~ msgstr "-B<i>\\ \\ :I<Перемикач обробки бездіÑльноÑÑ‚Ñ–> "
+
+#~ msgid "-B<n>\\ \\ :I<Number-of-iterations> limit as:B<\\ \\ -n number >"
+#~ msgstr "-B<n>\\ \\ :I<ÐžÐ±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ ÐºÑ–Ð»ÑŒÐºÐ¾ÑÑ‚Ñ– ітерацій> у такому форматі:B<\\ \\ -n чиÑло >"
+
+#~ msgid "-B<o>\\ \\ :I<Override-sort-field> as:B<\\ \\ -o fieldname >"
+#~ msgstr "-B<o>\\ \\ :I<ÐŸÐµÑ€ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑдковуваннÑ> у такому форматі:B<\\ \\ -o назва_Ð¿Ð¾Ð»Ñ >"
+
+#~ msgid "-B<O>\\ \\ :I<Output-field-names >"
+#~ msgstr "-B<O>\\ \\ :I<Ðазви полів Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ >"
+
+#~ msgid "-B<p>\\ \\ :I<Monitor-PIDs> mode as:B<\\ \\ -pN1 -pN2 ...>\\ \\ orB<\\ \\ -pN1,N2,N3 ... >"
+#~ msgstr "-B<p>\\ \\ :I<Режим ÑпоÑÑ‚ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð° PID> у такій формі:B<\\ \\ -pN1 -pN2 ...>\\ \\ абоB<\\ \\ -pN1,N2,N3 ... >"
+
+#~ msgid "-B<s>\\ \\ :I<Secure-mode> operation "
+#~ msgstr "-B<s>\\ \\ :I<Безпечний режим> роботи "
+
+#~ msgid "-B<S>\\ \\ :I<Cumulative-time> toggle "
+#~ msgstr "-B<S>\\ \\ :I<Перемикач накопиченого чаÑу> "
+
+#~ msgid "-B<u> | -B<U>\\ \\ :I<User-filter-mode> as:\\ \\ B<-u> | B<-U number> orB< name >"
+#~ msgstr "-B<u> | -B<U>\\ \\ :I<Режим Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ñ€Ð¸Ñтувача> у такій формі:\\ \\ B<-u> | B<-U чиÑло> абоB< ім'Ñ >"
+
+#~ msgid "-B<w>\\ \\ :I<Output-width-override> as:\\ \\ B<-w> [B< number> ] "
+#~ msgstr "-B<w>\\ \\ :I<ÐŸÐµÑ€ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ð¸ виведеннÑ> у такій формі:\\ \\ B<-w> [B< чиÑло> ] "
+
+#~ msgid "-B<1>\\ \\ :I<Single/Separate-Cpu-States> toggle "
+#~ msgstr "-B<1>\\ \\ :I<Перемикач єдиного/окремих Ñтанів процеÑора> "
+
+#~ msgid "\\ \\ \\ B<4>\\ \\ :I<Display-Cpus-Two-Abreast >"
+#~ msgstr "\\ \\ \\ B<4>\\ \\ :I<Показувати пари процеÑорів поруч>"
+
+#~ msgid "This command turns the `1' toggle \\*F for individual \\*(Pu display but prints the results two abreast. It requires a terminal with a minimum width of 80 columns. If a terminal's width is decreased below the minimum while \\*(We is running, \\*(We reverts to the normal `1' toggle \\*F state."
+#~ msgstr "Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° вимикає перемикач «1» Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ окремого процеÑора, але виводити результати парами поруч. Це потребує термінала із мінімальною шириною у 80 позицій. Якщо ширину термінала Ñтане меншою під Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ \\*(We, \\*(We поверне звичайний вимкнений Ñтан перемикача «1»."
+
+#~ msgid "To avoid truncation when displaying detailed \\*(Pu statistcs, as opposed to the graphic representations, a minimum width of 165 columns would be required."
+#~ msgstr "Щоб уникнути Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸ показі докладних ÑтатиÑтичних даних процеÑорів, у протилежніÑÑ‚ÑŒ до графічних предÑтавлень, знадобитьÑÑ Ð¼Ñ–Ð½Ñ–Ð¼Ð°Ð»ÑŒÐ½Ð° ширина у 165 позицій."
+
+#~ msgid "\\*(NT Whenever Searching and/or Other Filtering is active in a window, column highlighting is temporarily disabled. \\*(XC notes at the end of topics 5d. SEARCHING and 5e. FILTERING for an explanation why."
+#~ msgstr "\\*(NT Якщо у вікні увімкнено пошук Ñ–/або інше фільтруваннÑ, підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ñтовпчиків буде тимчаÑово вимкнено. Див. нотатки наприкінці розділів 5г. ПОШУК Ñ– 5д. ФІЛЬТРУВÐÐÐЯ, Ñкщо вам потрібні поÑÑненнÑ."
+
+#~ msgid "\\*(NT Field sorting uses internal values, not those in column display. Thus, the TTY and WCHAN fields will violate strict ASCII collating sequence."
+#~ msgstr "\\*(NT При упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° полÑми буде викориÑтано внутрішні значеннÑ, а не Ñ‚Ñ–, Ñкі показано у Ñтовпчику. Через це, у полÑÑ… TTY Ñ– WCHAN буде порушено Ñтроку поÑлідовніÑÑ‚ÑŒ упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ ASCII."
+
+#~ msgid "\\*(NT Whenever a Search is active in a window, \\*(We will turn column highlighting \\*F to prevent false matches on internal non-display escape sequences. Such highlighting will be restored when a window's search string is empty. \\*(XC `x' \\*(CI for additional information on sort column highlighting."
+#~ msgstr "\\*(NT ЗадіÑÐ½Ð½Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ у вікні призведе до того, що \\*(We вимикатиме підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ñтовпчика, щоб запобігти помилковому виÑвленню відповідників у внутрішніх непоказаних керівних поÑлідовноÑÑ‚ÑÑ…. Таке підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ відновлено, коли Ñ€Ñдок пошуку у вікні Ñтане порожнім. Див. інтерактивну команду «x», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ñтовпчика упорÑдковуваннÑ."
+
+#~ msgid "\\*(NT Whenever Other Filtering is active in a window, \\*(We will turn column highlighting \\*F to prevent false matches on internal non-display escape sequences. Such highlighting will be restored when a window is no longer subject to filtering. \\*(XC `x' \\*(CI for additional information on sort column highlighting."
+#~ msgstr "\\*(NT ЗадіÑÐ½Ð½Ñ Ñ–Ð½ÑˆÐ¾Ð³Ð¾ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ вікні призведе до того, що \\*(We вимикатиме підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ñтовпчика, щоб запобігти помилковому виÑвленню відповідників у внутрішніх непоказаних керівних поÑлідовноÑÑ‚ÑÑ…. Таке підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ відновлено, щойно вікно переÑтане бути об'єктом Ð´Ð»Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ. Див. інтерактивну команду «x», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ñтовпчика упорÑдковуваннÑ."
+
+#~ msgid "May 2012"
+#~ msgstr "травень 2012 року"
+
+#~ msgid "2018-03-03"
+#~ msgstr "3 Ð±ÐµÑ€ÐµÐ·Ð½Ñ 2018 року"
diff --git a/po-man/uk/free.1 b/po-man/uk/free.1
new file mode 100644
index 0000000..637cbfa
--- /dev/null
+++ b/po-man/uk/free.1
@@ -0,0 +1,170 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2003 Albert Cahalan
+.\" Copyright (c) 1993 Matt Welsh <mdw@sunsite.unc.edu>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH FREE 1 "2 Ñ‚Ñ€Ð°Ð²Ð½Ñ 2023 року" procps\-ng "Команди кориÑтувача"
+.SH ÐÐЗВÐ
+free — показ даних щодо об’єму вільної та викориÑтаної оперативної пам’ÑÑ‚Ñ– у
+ÑиÑтемі
+.SH "КОРОТКИЙ ОПИС"
+\fBfree\fP [\fIпараметри\fP]
+.SH ОПИС
+\fBfree\fP виводить дані щодо загального об’єму вільної Ñ– викориÑтаної фізичної
+та резервної пам’ÑÑ‚Ñ– у ÑиÑтемі, а також буферів та кешів, що
+викориÑтовуютьÑÑ Ñдром. Ð—Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… виконуєтьÑÑ Ð·Ð° допомогою обробки
+даних /proc/meminfo. Серед показаних Ñтовпчиків:
+.TP
+\fBзагалом\fP
+Загальний об'єм придатної до викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– (MemTotal Ñ– SwapTotal у
+/proc/meminfo). Сюди буде включено фізичну пам'ÑÑ‚ÑŒ та резервну пам'ÑÑ‚ÑŒ на
+диÑку, без декількох зарезервованих бітів та двійкового коду Ñдра.
+.TP
+\fBвикориÑтана\fP
+ВикориÑтана або недоÑтупна пам'ÑÑ‚ÑŒ (обчиÑлюєтьÑÑ Ñк \fBtotal\fP \- \fBavailable\fP)
+.TP
+\fBвільна\fP
+ÐевикориÑтана пам’ÑÑ‚ÑŒ (MemFree та SwapFree у /proc/meminfo)
+.TP
+\fBÑпільна\fP
+Об’єм пам’ÑÑ‚Ñ–, викориÑтаної (здебільшого) Ð´Ð»Ñ tmpfs (Shmem у /proc/meminfo)
+.TP
+\fBбуфери\fP
+Об’єм пам’ÑÑ‚Ñ–, викориÑтаної Ð´Ð»Ñ Ð±ÑƒÑ„ÐµÑ€Ñ–Ð² Ñдра (Buffers у /proc/meminfo)
+.TP
+\fBкеш\fP
+Об’єм пам’ÑÑ‚Ñ–, викориÑтаний під кеш Ñторінок Ñ– фрагментів (Cached та
+SReclaimable у /proc/meminfo)
+.TP
+\fBбуф/кеш\fP
+Сума значень \fBбуфери\fP і \fBкеш\fP
+.TP
+\fBдоÑтупна\fP
+Оцінка об’єму пам’ÑÑ‚Ñ–, доÑтупного Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку нових програм, без
+викориÑÑ‚Ð°Ð½Ð½Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ñ— пам’ÑÑ‚Ñ– на диÑку. Ðа відміну від даних, Ñкі буде
+показано у полÑÑ… \fBcache\fP та \fBfree\fP, у цьому полі враховуєтьÑÑ ÐºÐµÑˆ Ñторінок
+Ñ– те, що не уÑÑ– придатні до Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ñ‡Ð°Ñтини пам’ÑÑ‚Ñ– буде повернуто через
+об’єкти, що перебувають у викориÑтанні (MemAvailable у /proc/meminfo,
+доÑтупне у Ñдрах, починаючи з 3.14, емульоване, починаючи з Ñдра 2.6.27,
+інакше, те Ñаме, що Ñ– \fBfree\fP)
+.SH ПÐРÐМЕТРИ
+.TP
+\fB\-b\fP, \fB\-\-bytes\fP
+ВивеÑти об’єм пам’ÑÑ‚Ñ– у байтах.
+.TP
+\fB\-k\fP, \fB\-\-kibi\fP
+ВивеÑти об’єм пам’ÑÑ‚Ñ– у кібібайтах. Типовий варіант.
+.TP
+\fB\-m\fP, \fB\-\-mebi\fP
+ВивеÑти об’єм пам’ÑÑ‚Ñ– у мебібайтах.
+.TP
+\fB\-g\fP, \fB\-\-gibi\fP
+ВивеÑти об’єм пам’ÑÑ‚Ñ– у гібібайтах.
+.TP
+\fB\-\-tebi\fP
+ВивеÑти об’єм пам’ÑÑ‚Ñ– у тебібайтах.
+.TP
+\fB\-\-pebi\fP
+ВивеÑти об’єм пам’ÑÑ‚Ñ– у пебібайтах.
+.TP
+\fB\-\-kilo\fP
+ВивеÑти об’єм пам’ÑÑ‚Ñ– у кілобайтах. ÐеÑвно викориÑтовує \-\-si.
+.TP
+\fB\-\-mega\fP
+ВивеÑти об’єм пам’ÑÑ‚Ñ– у мегабайтах. ÐеÑвно викориÑтовує \-\-si.
+.TP
+\fB\-\-giga\fP
+ВивеÑти об’єм пам’ÑÑ‚Ñ– у гігабайтах. ÐеÑвно викориÑтовує \-\-si.
+.TP
+\fB\-\-tera\fP
+ВивеÑти об’єм пам’ÑÑ‚Ñ– у терабайтах. ÐеÑвно викориÑтовує \-\-si.
+.TP
+\fB\-\-peta\fP
+ВивеÑти об’єм пам’ÑÑ‚Ñ– у петабайтах. ÐеÑвно викориÑтовує \-\-si.
+.TP
+\fB\-h\fP, \fB\-\-human\fP
+ВивеÑти вміÑÑ‚ уÑÑ–Ñ… полів з автоматичним маÑштабуваннÑм до найбільшої цілої
+одиниці та показом викориÑтаних одиниць. ВикориÑтовуютьÑÑ Ñ‚Ð°ÐºÑ– одиниці:
+.sp
+.nf
+ B = байти
+ Ki = кібібайти
+ Mi = мебібайти
+ Gi = гібібайти
+ Ti = тебібайти
+ Pi = пебібайти
+.fi
+.sp
+Якщо одиницю не буде вказано Ñ– на комп’ютері вÑтановлено екÑбібайти
+оперативної або резервної пам’ÑÑ‚Ñ–, дані буде показано у тебібайтах, а у
+Ñтовпчиках може порушуватиÑÑ Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñ–Ð· заголовком таблиці.
+.TP
+\fB\-w\fP, \fB\-\-wide\fP
+Перемкнути програму у режим широкого показу. У режимі широкого показу
+програма виводитиме Ñ€Ñдки, довші за 80 Ñимволів. У цьому режимі значеннÑ
+\fBbuffers\fP та \fBcache\fP виводитимутьÑÑ Ñƒ два окремих Ñтовпчики.
+.TP
+\fB\-c\fP, \fB\-\-count\fP \fIчиÑло\fP
+ВивеÑти результат вказану аргументом \fIчиÑло\fP разів. Потребує викориÑтаннÑ
+параметра \fB\-s\fP.
+.TP
+\fB\-l\fP, \fB\-\-lohi\fP
+ВивеÑти докладні дані щодо викориÑÑ‚Ð°Ð½Ð½Ñ Ð²ÐµÑ€Ñ…Ð½ÑŒÐ¾Ñ— Ñ– нижньої облаÑтей пам’ÑÑ‚Ñ–.
+.TP
+\fB\-L\fP, \fB\-\-line\fP
+ВивеÑти дані в один Ñ€Ñдок. ЧаÑто викориÑтовують разом із параметром \fB\-s\fP
+Ð´Ð»Ñ Ñ€ÐµÐ³ÑƒÐ»Ñрного показу ÑтатиÑтичних даних щодо пам'ÑÑ‚Ñ–.
+.TP
+\fB\-s\fP, \fB\-\-seconds\fP \fIзатримка\fP
+Ðеперервно виводити результати із інтервалом між оновленнÑми у вказану
+параметром \fIзатримка\fP кількіÑÑ‚ÑŒ Ñекунд. Фактично, ви можете вказати длÑ
+\fIзатримки\fP дійÑне чиÑло із крапкою або комою Ñк роздільником дробової
+чаÑтини. Ð”Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑтовуєтьÑÑ \fBusleep\fP(3) з
+точніÑÑ‚ÑŽ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¼ÐµÐ½Ñ‚Ñƒ чаÑу порÑдку мікроÑекунд.
+.TP
+\fB\-\-si\fP
+ВикориÑтовувати кіло\-, мега\-, гіга\- тощо (кратні до 1000) одиниці заміÑÑ‚ÑŒ
+кібі\-, мебі\-, гібі\- тощо (кратних до 1024).
+.TP
+\fB\-t\fP, \fB\-\-total\fP
+Виводити Ñ€Ñдок із підÑумками за Ñтовпчиками.
+.TP
+\fB\-v\fP, \fB\-\-committed\fP
+ВивеÑти Ñ€Ñдок із обмеженнÑм на внеÑок до пам'ÑÑ‚Ñ– та обÑÑгом
+внеÑеної/невнеÑеної пам'ÑÑ‚Ñ–. У Ñтовпчику \fBtotal\fP цього Ñ€Ñдка буде показано
+Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° внеÑок до пам'ÑÑ‚Ñ–. Цей Ñ€Ñдок має значеннÑ, Ñкщо вимкнено
+Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸ внеÑÐµÐ½Ð½Ñ Ð´Ð¾ пам'ÑÑ‚Ñ–.
+.TP
+\fB\-\-help\fP
+ВивеÑти довідку.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Показати інформацію щодо верÑÑ–Ñ—.
+.PD
+.SH ФÐЙЛИ
+.TP
+/proc/meminfo
+Ñ–Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ñ–Ñ Ñ‰Ð¾Ð´Ð¾ пам'ÑÑ‚Ñ–
+.PD
+.SH Ð’ÐДИ
+Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ Ñтовпчику \fBshared\fP Ñ” недоÑтупним у ÑиÑтемах із Ñдрами до
+2.6.32. У таких ÑиÑтемах заміÑÑ‚ÑŒ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ показано нуль.
+.TP
+Про вади, будь лаÑка, повідомлÑйте на адреÑу
+.UR procps@freelists.org
+.UE
+.SH "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ"
+\fBps\fP(1), \fBslabtop\fP(1), \fBtop\fP(1), \fBvmstat\fP(8).
diff --git a/po-man/uk/kill.1 b/po-man/uk/kill.1
new file mode 100644
index 0000000..720a55d
--- /dev/null
+++ b/po-man/uk/kill.1
@@ -0,0 +1,94 @@
+.\"
+.\" Copyright (c) 2002-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1998-2003 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH KILL 1 "16 ÑÑ–Ñ‡Ð½Ñ 2023 року" procps\-ng "Команди кориÑтувача"
+.SH ÐÐЗВÐ
+kill — надÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñигналу процеÑу
+.SH "КОРОТКИЙ ОПИС"
+\fBkill\fP [параметри] <pid> [...]
+.SH ОПИС
+Типовим Ñигналом Ð´Ð»Ñ kill Ñ” TERM. Ð”Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ ÑпиÑку доÑтупних Ñигналів
+ÑкориÑтайтеÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ \fB\-l\fP або \fB\-L\fP. Зокрема, кориÑними Ñигналами Ñ”
+HUP, INT, KILL, STOP, CONT та 0. Сигнали можна вказати у три ÑпоÑоби: \fB\-9\fP,
+\fB\-SIGKILL\fP або \fB\-KILL\fP. Ð”Ð»Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ цілих груп процеÑів можна
+викориÑтовувати від’ємні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ PID; див. Ñтовпчик PGID у виведенні
+команди ps. PID Ð´Ð»Ñ \fB\-1\fP Ñ” оÑобливим; він позначає уÑÑ– процеÑи, окрім
+Ñамого процеÑу kill та процеÑу init.
+.SH ПÐРÐМЕТРИ
+.TP
+\fB<pid> [...]\fP
+ÐадіÑлати Ñигнал уÑÑ–Ñ… <pid> зі ÑпиÑку.
+.TP
+\fB\-<signal>\fP
+.TQ
+\fB\-s\fP \fIÑигнал\fP
+.TQ
+\fB\-\-signal\fP \fIÑигнал\fP
+Вказати \fBÑигнал\fP, Ñкий Ñлід надіÑлати. Сигнал може бути вказано за
+допомогою назви Ñигналу або його номера. Поведінку Ñигналів опиÑано на
+Ñторінці підручника \fBsignal\fP(7).
+.TP
+\fB\-q\fP, \fB\-\-queue \fP\fIзначеннÑ\fP
+СкориÑтайтеÑÑ \fBkill\fP(2) заміÑÑ‚ÑŒ \fBsigqueue\fP(3), Ñ– аргумент значеннÑ, Ñкий
+викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ Ñ†Ñ–Ð»Ð¾Ð³Ð¾ значеннÑ, буде надіÑлано разом із
+Ñигналом. Якщо у процеÑÑ–, Ñкий його отримає, вÑтановлено обробки Ñигналу,
+Ñкий викориÑтовує прапорець SA_SIGINFO \fBsigaction\fP(2), Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð¼Ð¾Ð¶Ðµ
+отримати ці дані за допомогою Ð¿Ð¾Ð»Ñ si_value Ñтруктури siginfo_t.
+.TP
+\fB\-l\fP, \fB\-\-list\fP [\fIÑигнал\fP]
+ВивеÑти ÑпиÑок Ñигналів. У цього параметра Ñ” необов’Ñзковий аргумент, за
+допомогою Ñкого можна перетворювати номер Ñигналу на назву Ñ– навпаки.
+.TP
+\fB\-L\fP,\fB\ \-\-table\fP
+ВивеÑти ÑпиÑок назв Ñигналів у форматі таблиці.
+.TP
+.PD
+.SH ЗÐУВÐЖЕÐÐЯ
+У вашій оболонці (інтерпретаторі командного Ñ€Ñдка) може бути вбудована
+команда kill. Щоб позбутиÑÑ ÐºÐ¾Ð½Ñ„Ð»Ñ–ÐºÑ‚Ñƒ команд, вам Ñлід запуÑкати опиÑану тут
+команду Ñк /bin/kill.
+.SH ПРИКЛÐДИ
+.TP
+\fBkill \-9 \-1\fP
+Завершити робот уÑÑ–Ñ… процеÑів, роботу Ñких можна завершити.
+.TP
+\fBkill \-l 11\fP
+Знайти відповідну назву Ð´Ð»Ñ Ñигналу з номером 11.
+.TP
+\fBkill \-L\fP
+ВивеÑти ÑпиÑок варіантів Ñигналів у форматі таблиці.
+.TP
+\fBkill 123 543 2341 3453\fP
+ÐадіÑлати уÑім цим процеÑам типовий Ñигнал, SIGTERM.
+.SH "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ"
+\fBkill\fP(2), \fBkillall\fP(1), \fBnice\fP(1), \fBpkill\fP(1), \fBrenice\fP(1),
+\fBsignal\fP(7), \fBsigqueue\fP(3), \fBskill\fP(1)
+.SH СТÐÐДÐРТИ
+Під Ñ‡Ð°Ñ ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ виконано відповідні Ñтандарти. Параметр \fB\-L\fP Ñ”
+Ñпецифічним, його призначено лише Ð´Ð»Ñ Linux.
+.SH ÐВТОР
+Kill Ñтворено
+.UR albert@users.sf.net
+Albert Cahalan
+.UE
+у 1999 році
+Ð´Ð»Ñ Ð·Ð°Ð¼Ñ–Ð½Ð¸ відповідної програми з bsdutils, Ñка не була ÑуміÑною зі
+Ñтандартами. Програма зі Ñкладу util\-linux також може працювати належним
+чином.
+.SH "Як надіÑлати звіт про вади"
+Про вади, будь лаÑка, повідомлÑйте на адреÑу
+.UR procps@freelists.org
+.UE
diff --git a/po-man/uk/pgrep.1 b/po-man/uk/pgrep.1
new file mode 100644
index 0000000..d051953
--- /dev/null
+++ b/po-man/uk/pgrep.1
@@ -0,0 +1,266 @@
+.\"
+.\" Copyright (c) 2004-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2004 Albert Cahalan
+.\" Copyright (c) 2000 Kjetil Torgrim Homme
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PGREP 1 "16 ÑÑ–Ñ‡Ð½Ñ 2023 року" procps\-ng "Команди кориÑтувача"
+.SH ÐÐЗВÐ
+pgrep, pkill, pidwait — пошук, надÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñигналів процеÑам або очікуваннÑ
+на Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ процеÑів на оÑнові даних щодо їхньої назви та інших
+атрибутів
+.SH "КОРОТКИЙ ОПИС"
+\fBpgrep\fP [параметри] взірець
+.br
+\fBpkill\fP [параметри] взірець
+.br
+\fBpidwait\fP [параметри] взірець
+.SH ОПИС
+\fBpgrep\fP виконує пошук Ñеред поточних запущених процеÑів Ñ– виводить ÑпиÑок
+ідентифікаторів процеÑів, Ñкі відповідають критерію вибору до
+stdout. ВиконуватиÑÑ Ð¼Ð°ÑŽÑ‚ÑŒ уÑÑ– критерії. Ðаприклад,
+.IP
+$ pgrep \-u root sshd
+.PP
+покаже ÑпиÑок процеÑів, Ñкі мають назву \fBsshd\fP Ñ– належать \fBroot\fP. З іншого
+боку,
+.IP
+$ pgrep \-u root,daemon
+.PP
+виведе ÑпиÑок процеÑів, влаÑником Ñких Ñ” \fBroot\fP або \fBdaemon\fP.
+.PP
+\fBpkill\fP надішле вказаний Ñигнал (типово \fBSIGTERM\fP) кожному процеÑу,
+заміÑÑ‚ÑŒ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ ÑпиÑку процеÑів до stdout.
+.PP
+\fBpidwait\fP чекатиме на уÑÑ– процеÑи заміÑÑ‚ÑŒ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñ—Ñ…Ð½ÑŒÐ¾Ð³Ð¾ ÑпиÑку до
+stdout.
+.SH ПÐРÐМЕТРИ
+.TP
+\fB\-\fP\fIÑигнал\fP
+.TQ
+\fB\-\-signal\fP \fIÑигнал\fP
+Визначає Ñигнал, Ñкий Ñлід надіÑлати кожному відповідному процеÑу. Можна
+ÑкориÑтатиÑÑ Ñ‡Ð¸Ñловим значеннÑм або Ñимволічною назвою Ñигналу. У режимі
+\fBpgrep\fP або \fBpidwait\fP можна викориÑтовувати лише довгу верÑÑ–ÑŽ параметра. У
+цьому режимі параметр не працює, Ñкщо не викориÑтано у поєднанні із
+\fB\-\-require\-handler\fP Ð´Ð»Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑів із наÑвним обробником певного
+Ñигналу у проÑторі кориÑтувача.
+
+.TP
+\fB\-c\fP, \fB\-\-count\fP
+Придушити звичайне виведеннÑ. ЗаміÑÑ‚ÑŒ цього, вивеÑти кількіÑÑ‚ÑŒ відповідних
+процеÑів. Якщо не вдаÑÑ‚ÑŒÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ нічого, наприклад, буде повернуто нульове
+значеннÑ, програма поверне ненульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¸. Зауважте, що длÑ
+pkill Ñ– pidwait кількіÑÑ‚ÑŒ Ñ” кількіÑÑ‚ÑŽ відповідних процеÑів, а не кількіÑÑ‚ÑŽ
+процеÑів, Ñким було уÑпішно надіÑлано Ñигнал, або кількіÑÑ‚ÑŒ процеÑів, на Ñкі
+очікувала програма.
+.TP
+\fB\-d\fP, \fB\-\-delimiter\fP \fIроздільник\fP
+Ð’Ñтановлює Ñ€Ñдок, що викориÑтовуватиметьÑÑ Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾ÐºÑ€ÐµÐ¼Ð»ÐµÐ½Ð½Ñ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€Ñ–Ð²
+процеÑів у виведених даних (типовим роздільником Ñ” Ñимвол розриву
+Ñ€Ñдка). (Лише \fBpgrep\fP.)
+.TP
+\fB\-e\fP, \fB\-\-echo\fP
+Показати назву Ñ– PID процеÑів, роботу Ñких буде завершено (лише \fBpkill\fP).
+.TP
+\fB\-f\fP, \fB\-\-full\fP
+Зазвичай, відповідніÑÑ‚ÑŒ \fIвзірцÑ\fP вÑтановлюєтьÑÑ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ Ð½Ð°Ð·Ð²Ð¸
+процеÑу. Якщо викориÑтано \fB\-f\fP, відповідніÑÑ‚ÑŒ вÑтановлюєтьÑÑ Ð·Ð° цілим
+Ñ€Ñдком команди.
+.TP
+\fB\-g\fP, \fB\-\-pgroup\fP \fIгрупа процеÑів\fP,...
+Ð’Ñтановлювати відповідніÑÑ‚ÑŒ процеÑів лише Ð´Ð»Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¾Ð³Ð¾ ÑпиÑку
+ідентифікаторів груп. Група процеÑів 0 відповідає влаÑній групі процеÑів
+\fBpgrep\fP, \fBpkill\fP або \fBpidwait\fP.
+.TP
+\fB\-G\fP, \fB\-\-group\fP \fIgid\fP,...
+Ð’Ñтановлювати відповідніÑÑ‚ÑŒ процеÑів зі ÑпиÑку Ñправжніх ідентифікаторів
+груп. Можна викориÑтовувати цифрове або Ñимволічне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€Ð°.
+.TP
+\fB\-i\fP, \fB\-\-ignore\-case\fP
+Виконувати пошук процеÑів без Ð²Ñ€Ð°Ñ…ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÐ³Ñ–Ñтру Ñимволів.
+.TP
+\fB\-l\fP, \fB\-\-list\-name\fP
+ВивеÑти ÑпиÑок назв процеÑів, а також ідентифікаторів процеÑів. (Лише
+\fBpgrep\fP.)
+.TP
+\fB\-a\fP, \fB\-\-list\-full\fP
+ВивеÑти ÑпиÑок Ñ€Ñдків команд повніÑÑ‚ÑŽ, а також ідентифікаторів
+процеÑів. (Лише \fBpgrep\fP.)
+.TP
+\fB\-n\fP, \fB\-\-newest\fP
+Вибрати лише найновіші (запущені Ñкомога пізніше) відповідні процеÑи.
+.TP
+\fB\-o\fP, \fB\-\-oldest\fP
+Вибрати лише найдавніші (запущені Ñкомога раніше) відповідні процеÑи.
+.TP
+\fB\-O\fP, \fB\-\-older\fP \fIÑекунди\fP
+Вибрати процеÑи, Ñкі Ñ” Ñтарішими за вказану кількіÑÑ‚ÑŒ Ñекунд.
+.TP
+\fB\-P\fP, \fB\-\-parent\fP \fIppid\fP,...
+Ð’Ñтановлювати відповідніÑÑ‚ÑŒ лише тих процеÑів, Ñкі мають батьківÑькі процеÑи
+зі вказаного ÑпиÑку.
+.TP
+\fB\-s\fP, \fB\-\-session\fP \fIsid\fP,...
+Ð’Ñтановлювати відповідніÑÑ‚ÑŒ лише тих процеÑів, Ñкі мають ідентифікатори
+ÑеанÑів процеÑів зі вказаного ÑпиÑку. Ідентифікатор 0 відповідає
+ідентифікаторам ÑеанÑів Ñамих програм \fBpgrep\fP, \fBpkill\fP або \fBpidwait\fP.
+.TP
+\fB\-t\fP, \fB\-\-terminal\fP \fIтермінал\fP,...
+Ð’Ñтановлювати відповідніÑÑ‚ÑŒ лише процеÑів із терміналом ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð·
+вказаного ÑпиÑку. Ðазву термінала Ñлід вказувати без префікÑа «/dev/».
+.TP
+\fB\-u\fP, \fB\-\-euid\fP \fIeuid\fP,...
+Ð’Ñтановлювати відповідніÑÑ‚ÑŒ процеÑів зі ÑпиÑку ідентифікаторів ефективних
+кориÑтувачів. Можна викориÑтовувати цифрове або Ñимволічне значеннÑ
+ідентифікатора.
+.TP
+\fB\-U\fP, \fB\-\-uid\fP \fIuid\fP,...
+Ð’Ñтановлювати відповідніÑÑ‚ÑŒ процеÑів зі ÑпиÑку Ñправжніх ідентифікаторів
+кориÑтувачів. Можна викориÑтовувати цифрове або Ñимволічне значеннÑ
+ідентифікатора.
+.TP
+\fB\-v\fP, \fB\-\-inverse\fP
+Інвертує відповідніÑÑ‚ÑŒ. Зазвичай, цей параметр викориÑтовуєтьÑÑ Ñƒ контекÑÑ‚Ñ–
+\fBpgrep\fP або \fBpidwait\fP. У контекÑÑ‚Ñ– \fBpkill\fP Ñкорочену форму параметра
+вимкнено Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб запобігти випадковому викориÑтанню цього параметра.
+.TP
+\fB\-w\fP, \fB\-\-lightweight\fP
+Показує уÑÑ–Ñ… ідентифікатори потоків обробки, заміÑÑ‚ÑŒ ідентифікаторів, у
+контекÑÑ‚Ñ– \fBpgrep\fP або \fBpidwait\fP. У контекÑÑ‚Ñ– \fBpkill\fP цей параметр
+вимкнено.
+.TP
+\fB\-x\fP, \fB\-\-exact\fP
+Ð’Ñтановлювати відповідніÑÑ‚ÑŒ лише процеÑів, назви Ñких (або Ñ€Ñдки команд,
+Ñкщо вказано параметр \fB\-f\fP) \fBточно\fP відповідає \fIвзірцю\fP.
+.TP
+\fB\-F\fP, \fB\-\-pidfile\fP \fIфайл\fP
+Прочитати \fIPID\fP з \fIфайла\fP. Ймовірно, цей параметр кориÑніший Ð´Ð»Ñ \fBpkill\fP
+або \fBpidwait\fP, а не Ð´Ð»Ñ \fBpgrep\fP.
+.TP
+\fB\-L\fP, \fB\-\-logpidfile\fP
+Завершувати роботу повідомленнÑм про помилку, Ñкщо pid\-файл (див. \fB\-F\fP) не
+заблоковано.
+.TP
+\fB\-r\fP, \fB\-\-runstates\fP \fID,R,S,Z,\fP...
+Виконати пошук лише тих процеÑів, Ñкі відповідають вказаному значенню Ñтану
+процеÑу.
+.TP
+\fB\-A\fP, \fB\-\-ignore\-ancestors\fP
+Ігнорувати уÑÑ– попередники \fBpgrep\fP, \fBpkill\fP та \fBpidwait\fP. Ðаприклад, це
+може бути кориÑним при розширенні прав доÑтупу за допомогою \fBsudo\fP або
+подібних інÑтрументів.
+.TP
+\fB\-H\fP, \fB\-\-require\-handler\fP
+Ð’Ñтановлювати відповідніÑÑ‚ÑŒ лише тих процеÑів, Ñкі мають обробник Ñигналу,
+Ñкий має бути надіÑлано, у проÑторі кориÑтувача.
+.TP
+\fB\-\-cgroup \fP\fIназва\fP\fB,...\fP
+Ð’Ñтановити відповідніÑÑ‚ÑŒ наданій назві групи ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ (cgroup) у верÑÑ–Ñ—
+2. Див. \fBcgroups\fP(8)
+.TP
+\fB\-\-ns \fP\fIpid\fP
+Ð’Ñтановлювати відповідніÑÑ‚ÑŒ процеÑів, Ñкі належать до одного проÑтору
+назв. Ð”Ð»Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾ÑÑ‚Ñ– Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑів інших кориÑтувачів
+програму має бути запущено від імені кориÑтувача root. Див. довідку щодо
+\fB\-\-nslist\fP, щоб дізнатиÑÑ Ð¿Ñ€Ð¾ те, Ñк обмежити перелік відповідних проÑторів
+назв.
+.TP
+\fB\-\-nslist \fP\fIназва\fP\fB,...\fP
+Ð’Ñтановлювати відповідніÑÑ‚ÑŒ лише Ð´Ð»Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¸Ñ… проÑторів назв. Можливі
+проÑтори назв: ipc, mnt, net, pid, user, uts.
+.TP
+\fB\-q\fP, \fB\-\-queue \fP\fIзначеннÑ\fP
+СкориÑтайтеÑÑ \fBkill\fP(2) заміÑÑ‚ÑŒ \fBsigqueue\fP(3), Ñ– аргумент значеннÑ, Ñкий
+викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ñ Ñ†Ñ–Ð»Ð¾Ð³Ð¾ значеннÑ, буде надіÑлано разом із
+Ñигналом. Якщо у процеÑÑ–, Ñкий його отримає, вÑтановлено обробки Ñигналу,
+Ñкий викориÑтовує прапорець SA_SIGINFO \fBsigaction\fP(2), Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð¼Ð¾Ð¶Ðµ
+отримати ці дані за допомогою Ð¿Ð¾Ð»Ñ si_value Ñтруктури siginfo_t.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+ВивеÑти дані щодо верÑÑ–Ñ— Ñ– завершити роботу.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Показати довідкові дані і завершити роботу.
+.PD
+.SH ОПЕРÐÐДИ
+.TP
+\fIвзірець\fP
+Вказує розширений формальний вираз Ð´Ð»Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾ÑÑ‚Ñ– за назвами процеÑів або
+Ñ€Ñдками команд.
+.SH ПРИКЛÐДИ
+Приклад 1: знайти ідентифікатор процеÑу фонової Ñлужби \fBnamed\fP:
+.IP
+$ pgrep \-u root named
+.PP
+Приклад 2: змуÑити \fBsyslog\fP виконати повторне Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð° налаштувань:
+.IP
+$ pkill \-HUP syslogd
+.PP
+Приклад 3: надати докладну інформацію щодо уÑÑ–Ñ… процеÑів \fBxterm\fP:
+.IP
+$ ps \-fp $(pgrep \-d, \-x xterm)
+.PP
+Приклад 4: підвищити пріоритетніÑÑ‚ÑŒ уÑÑ–Ñ… процеÑів \fBchrome\fP:
+.IP
+$ renice +4 $(pgrep chrome)
+.SH "СТÐРВИХОДУ"
+.PD 0
+.TP
+0
+Вказаному критерію відповідає один або декілька процеÑів. Ð”Ð»Ñ \fBpkill\fP Ñ–
+\fBpidwait\fP також має бути один або декілька процеÑів, Ñким уÑпішно надіÑлано
+Ñигнал або Ñкі перебувають у Ñтані очікуваннÑ.
+.TP
+1
+Ðе знайдено жодного відповідного процеÑу або жодному зі знайдених процеÑів
+не вдалоÑÑ Ð½Ð°Ð´Ñ–Ñлати Ñигнал.
+.TP
+2
+СинтакÑична помилка у Ñ€Ñдку команди.
+.TP
+3
+Критична помилка: вичерпано пам’ÑÑ‚ÑŒ тощо.
+.PD
+.SH ЗÐУВÐЖЕÐÐЯ
+Ðазву процеÑу, що викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾ÑÑ‚Ñ–, обмежено
+15 Ñимволами, Ñкі виводить /proc/\fIpid\fP/stat. Ð”Ð»Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾ÑÑ‚Ñ–
+за цілим командним Ñ€Ñдком, /proc/\fIpid\fP/cmdline, ÑкориÑтайтеÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼
+\fB\-f\fP. Потоки обробки можуть не мати такої Ñамої назви процеÑу, що Ñ–
+батьківÑький процеÑ, але матимуть той Ñамий Ñ€Ñдок команди.
+.PP
+Запущений Ð¿Ñ€Ð¾Ñ†ÐµÑ \fBpgrep\fP, \fBpkill\fP або \fBpidwait\fP ніколи не
+повідомлÑтиметьÑÑ Ñамим Ñобою Ñк відповідник.
+.PP
+ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° \fB\-O \-\-older\fP буде без повідомлень не враховано, Ñкщо
+\fI/proc\fP змонтовано з параметром \fIsubset=pid\fP.
+.SH Ð’ÐДИ
+Ðе можна одночаÑно викориÑтовувати параметри \fB\-n\fP, \fB\-o\fP та \fB\-v\fP
+одночаÑно. Повідомте авторам, Ñкщо вам потрібне таке поєднаннÑ.
+.PP
+Програма повідомлÑÑ” про щезлі процеÑи.
+.PP
+\fBpidwait\fP потребує ÑиÑтемного виклику \fBpidfd_open\fP(2), Ñкий вперше
+з'ÑвивÑÑ Ñƒ Linux 5.3.
+.SH "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ"
+\fBps\fP(1), \fBregex\fP(7), \fBsignal\fP(7), \fBsigqueue\fP(3), \fBkillall\fP(1),
+\fBskill\fP(1), \fBkill\fP(1), \fBkill\fP(2), \fBcgroups\fP(8).
+.SH ÐВТОР
+.UR kjetilho@ifi.uio.no
+Kjetil Torgrim Homme
+.UE
+.SH "Як надіÑлати звіт про вади"
+Про вади, будь лаÑка, повідомлÑйте на адреÑу
+.UR procps@freelists.org
+.UE
diff --git a/po-man/uk/pidof.1 b/po-man/uk/pidof.1
new file mode 100644
index 0000000..e358440
--- /dev/null
+++ b/po-man/uk/pidof.1
@@ -0,0 +1,78 @@
+.\"
+.\" Copyright (c) 2018-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2019-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013 Jaromir Capik <jcapik@redhat.com>
+.\" Copyright (c) 1998 Miquel van Smoorenburg
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PIDOF 1 "16 ÑÑ–Ñ‡Ð½Ñ 2023 року" "" "Команди кориÑтувача"
+.SH ÐÐЗВÐ
+pidof — визначити ідентифікатор процеÑу запущеної програми
+.SH "КОРОТКИЙ ОПИС"
+\fBpidof\fP [\fB\-s\fP] [\fB\-c\fP] [\fB\-q\fP] [\fB\-w\fP] [\fB\-x\fP] [\fB\-o\fP
+\fIпропущений_pid[,пропущений_pid...]...\fP] [\fB\-t\fP] [\fB\-S\fP \fIроздільник\fP]
+\fBпрограма\fP \fI[\fP\fBпрограма...\fP\fI]\fP
+.SH ОПИС
+\fBPidof\fP виконує пошук ідентифікаторів процеÑів (pids) вказаних
+програм. Дані щодо виÑвлених ідентифікаторів буде виведено до Ñтандартного
+виведеннÑ.
+.SH ПÐРÐМЕТРИ
+.IP \fB\-s\fP
+Один відповідник: наказує програмі повернути лише один \fIpid\fP.
+.IP \fB\-c\fP
+Повернути лише ідентифікатори тих процеÑів, Ñкі працюють у тому Ñамому
+кореневому каталозі. Цей параметр буде проігноровано, Ñкщо програму запущено
+від імені кориÑтувачів, відмінних від кориÑтувача root, оÑкільки таким
+кориÑтувачам не дозволено доÑтуп до перевірки поточного кореневого каталогу
+процеÑів, влаÑниками Ñких вони не Ñ”.
+.IP \fB\-q\fP
+Режим без повідомлень. Придушити Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½ÑŒ, лише вÑтановити Ñтан
+виходу відповідним чином.
+.IP \fB\-w\fP
+Показувати Ñ– процеÑи, Ñкі не мають видимого Ñ€Ñдка команди (наприклад
+потоки\-обробники Ñдра).
+.IP \fB\-x\fP
+Разом зі Ñкриптами: наказує програмі повернути ідентифікатори процеÑів
+оболонок, у Ñких запущено вказані Ñкрипти.
+.IP "\fB\-o\fP \fIпропущений_pid\fP"
+Ðаказує \fBpidof\fP пропуÑкати процеÑи із вказаним ідентифікатором. Спеціальним
+ідентифікатором процеÑу \fB%PPID\fP можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ
+батьківÑького процеÑу програми \fIpidof\fP, інакше кажучи, оболонки або Ñкрипту
+оболонки, за допомогою Ñкого було викликано програму.
+.IP \fB\-t\fP
+ВивеÑти уÑÑ– ідентифікатори потоків обробки заміÑÑ‚ÑŒ ідентифікаторів процеÑів.
+.IP "\fB\-S\fP \fIроздільник\fP"
+СкориÑтатиÑÑ Ñ€Ð¾Ð·Ð´Ñ–Ð»ÑŒÐ½Ð¸ÐºÐ¾Ð¼ \fIроздільник\fP Ñк роздільником запиÑів
+ідентифікаторів процеÑів. ВикориÑтовуєтьÑÑ, лише Ñкщо програма виводить
+декілька ідентифікаторів процеÑів. Параметр \fB\-d\fP Ñ” альтернативним варіантом
+запиÑу цього параметра, призначеним Ð´Ð»Ñ ÑуміÑноÑÑ‚Ñ– \fBpidof\fP з sysvinit.
+.SH "СТÐРВИХОДУ"
+.TP
+\fB0\fP
+Знайдено принаймні одну програму із вказаною назвою.
+.TP
+\fB1\fP
+Програми із вказаною назвою не знайдено.
+
+.SH Ð’ÐДИ
+Якщо викориÑтано параметр \fB\-x\fP, \fBpidof\fP зможе викориÑтовувати лише проÑтий
+ÑпоÑіб виÑÐ²Ð»ÐµÐ½Ð½Ñ Ñкриптів Ñ– не зможе ÑкориÑтатиÑÑ Ñкриптами, у Ñких,
+наприклад, викориÑтано env. Це Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²'Ñзано із тим, Ñк виглÑдають
+Ñкрипти з точки зору файлової ÑиÑтеми процеÑів.
+
+.SH "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ"
+\fBpgrep\fP(1), \fBpkill\fP(1)
+.SH ÐВТОР
+.UR jcapik@redhat.com
+Jaromir Capik
+.UE
diff --git a/po-man/uk/pmap.1 b/po-man/uk/pmap.1
new file mode 100644
index 0000000..b205a87
--- /dev/null
+++ b/po-man/uk/pmap.1
@@ -0,0 +1,97 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2013 Jaromir Capik <jcapik@redhat.com>
+.\" Copyright (c) 1998-2002 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\" (The preceding line is a note to broken versions of man to tell
+.\" them to pre-process this man page with tbl)
+.\" Man page for pmap.
+.\" Licensed under version 2 of the GNU General Public License.
+.\" Written by Albert Cahalan.
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PMAP 1 "4 Ñ‡ÐµÑ€Ð²Ð½Ñ 2020 року" procps\-ng "Команди кориÑтувача"
+.SH ÐÐЗВÐ
+pmap — вивеÑти карту пам’ÑÑ‚Ñ– певного процеÑу.
+.SH "КОРОТКИЙ ОПИС"
+\fBpmap\fP [\fIпараметри\fP] \fIpid\fP [...]
+.SH ОПИС
+Команда \fBpmap\fP виводить карту пам’ÑÑ‚Ñ– процеÑу або процеÑів.
+.SH ПÐРÐМЕТРИ
+.TP
+\fB\-x\fP, \fB\-\-extended\fP
+ВивеÑти дані у розширеному форматі.
+.TP
+\fB\-d\fP, \fB\-\-device\fP
+ВивеÑти дані щодо формату приÑтрою.
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+Ðе виводити деÑкі початкові Ñ– кінцеві Ñ€Ñдки.
+.TP
+\fB\-A\fP, \fB\-\-range\fP \fIÐ½Ð¸Ð¶Ð½Ñ Ð¼ÐµÐ¶Ð°\fP,\fIÐ²ÐµÑ€Ñ…Ð½Ñ Ð¼ÐµÐ¶Ð°\fP
+Обмежити результати вказаним діапазоном Ð°Ð´Ñ€ÐµÑ Ð²Ñ–Ð´ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fIÐ½Ð¸Ð¶Ð½Ñ Ð¼ÐµÐ¶Ð°\fP до
+Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fIÐ²ÐµÑ€Ñ…Ð½Ñ Ð¼ÐµÐ¶Ð°\fP. Зауважте, що аргументи нижньої Ñ– верхньої меж Ñ”
+одним Ñ€Ñдком, Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ Ñкому відокремлено комою.
+.TP
+\fB\-X\fP
+Показати додаткові подробиці, більші, ніж Ñкщо викориÑтовуєтьÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€
+\fB\-x\fP. ПОПЕРЕДЖЕÐÐЯ: зміни у форматі відповідають змінам у
+\fI/proc/PID/smaps\fP.
+.TP
+\fB\-XX\fP
+ВивеÑти уÑе, що надаєтьÑÑ Ñдром.
+.TP
+\fB\-p\fP, \fB\-\-show\-path\fP
+Виводити шлÑÑ… до файлів у Ñтовпчику прив’Ñзки повніÑÑ‚ÑŽ.
+.TP
+\fB\-c\fP, \fB\-\-read\-rc\fP
+Прочитати типові налаштуваннÑ.
+.TP
+\fB\-C\fP, \fB\-\-read\-rc\-from\fP \fIфайл\fP
+Прочитати Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð· файла \fIфайл\fP.
+.TP
+\fB\-n\fP, \fB\-\-create\-rc\fP
+Створити нові типові налаштуваннÑ.
+.TP
+\fB\-N\fP, \fB\-\-create\-rc\-to\fP \fIфайл\fP
+Створити Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ файлі \fIфайл\fP
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+ВивеÑти текÑÑ‚ довідки Ñ– завершити роботу.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+ВивеÑти дані щодо верÑÑ–Ñ— Ñ– завершити роботу.
+.SH "СТÐРВИХОДУ"
+.PP
+.RS
+.PD 0
+.TP
+\fB0\fP
+УÑпіх.
+.TP
+\fB1\fP
+Ðевдача.
+.TP
+\fB42\fP
+Ðе знайдено уÑÑ– процеÑи, щодо Ñких було надіÑлано запит.
+.PD
+.RE
+.SH "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ"
+\fBps\fP(1), \fBpgrep\fP(1)
+.SH СТÐÐДÐРТИ
+Стандарти не заÑтоÑовувалиÑÑ, але \fBpmap\fP Ñ” Ñхожим на програму Ð´Ð»Ñ SunOS.
+.SH "Як надіÑлати звіт про вади"
+Про вади, будь лаÑка, повідомлÑйте на адреÑу
+.UR procps@freelists.org
+.UE
diff --git a/po-man/uk/procps.3 b/po-man/uk/procps.3
new file mode 100644
index 0000000..d65705a
--- /dev/null
+++ b/po-man/uk/procps.3
@@ -0,0 +1,179 @@
+.\"
+.\" Copyright (c) 2020-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2020-2023 Craig Small <csmall@dropbear.xyz>
+.\"
+.\" This manual is free software; you can redistribute it and/or
+.\" modify it under the terms of the GNU Lesser General Public
+.\" License as published by the Free Software Foundation; either
+.\" version 2.1 of the License, or (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PROCPS 3 "Ñерпень 2022 року" libproc2
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.nh
+.SH ÐÐЗВÐ
+procps — програмний Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð´Ð»Ñ Ð´Ð¾Ñтупу до даних ÑиÑтемного Ñ€Ñ–Ð²Ð½Ñ Ñƒ
+файловій ÑиÑтемі /proc
+
+.SH "КОРОТКИЙ ОПИС"
+У цьому короткому опиÑÑ– предÑтавлено п'ÑÑ‚ÑŒ різних інтерфейÑів, Ñкі названо
+за файлами, до Ñких вони надають доÑтуп у фіктивній файловій ÑиÑтемі /proc:
+\fBdiskstats\fP, \fBmeminfo\fP, \fBslabinfo\fP, \fBstat\fP та \fBvmstat\fP.
+
+.nf
+.RS +4
+#include <libproc2/\fBіменований_інтерфейÑ\fP.h>
+
+int\fB procps_new \fP (struct info **\fIinfo\fP);
+int\fB procps_ref \fP (struct info *\fIinfo\fP);
+int\fB procps_unref\fP (struct info **\fIinfo\fP);
+
+struct result *\fBprocps_get\fP (
+ struct info *\fIinfo\fP,
+[ const char *\fIname\fP, ] лише програмний Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ \fBdiskstats\fP
+ enum item \fIitem\fP);
+
+struct stack *\fBprocps_select\fP (
+ struct info *\fIinfo\fP,
+[ const char *\fIname\fP, ] лише програмний Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ \fBdiskstats\fP
+ enum item *\fIitems\fP,
+ int \fInumitems\fP);
+
+struct reaped *\fBprocps_reap\fP (
+ struct info *\fIinfo\fP,
+[ enum reap_type \fIwhat\fP, ] лише програмний Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ \fBstat\fP
+ enum item *\fIitems\fP,
+ int \fInumitems\fP);
+
+struct stack **\fBprocps_sort\fP (
+ struct info *\fIinfo\fP,
+ struct stack *\fIstacks\fP[],
+ int \fInumstacked\fP,
+ enum item \fIsortitem\fP,
+ enum sort_order \fIorder\fP);
+
+.fi
+
+Ðаведені вище функції Ñ– Ñтруктури Ñ” загальними, але чаÑтиною будь\-Ñкого
+ідентифікатора може також бути Ñпецифічний запиÑ
+\fBіменований_інтерфейÑ\fP. Ðаприклад, «procps_new» може бути наÑправді
+«procps_\fBmeminfo\fP_new», а «info» може бути наÑправді «\fBdiskstats\fP_info»
+тощо.
+
+Той Ñамий \fBіменований_інтерфейÑ\fP буде викориÑтано у кожній з назв файлів
+заголовків, назви Ñких формуютьÑÑ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñм ÑуфікÑа «.h».
+
+Компонувати з \fI\-lproc2\fP.
+
+.SH ОПИС
+.SS ОглÑд
+Центральною Ð´Ð»Ñ Ñ†Ð¸Ñ… інтерфейÑів Ñ” проÑта Ñтруктура «result», Ñка визначає
+«item» Ñ– його Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ (в об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð·Ñ– Ñтандартними типами мови C, Ñк
+учаÑниками). УÑÑ– Ñтруктури «result» буде автоматично розподілено Ñ– надано
+бібліотекою.
+
+ЗаданнÑм маÑиву значень «item» ці Ñтруктури можна упорÑдкувати Ñк «Ñтек» із
+потенційним Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð±Ð°Ð³Ð°Ñ‚ÑŒÐ¾Ñ… результатів одним викликом функції. Таким
+чином, «Ñтек» можна розглÑдати Ñк Ð·Ð°Ð¿Ð¸Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¾Ñ— довжини, вміÑÑ‚ Ñкого та
+порÑдок запиÑів у Ñкому визначаютьÑÑ Ð»Ð¸ÑˆÐµ кориÑтувачем.
+
+ЧаÑтиною кожного інтерфейÑу Ñ” два унікальних лічильники. Ð”Ð»Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ
+їхніх значень передбачено запиÑи «noop» та «extra». Їхні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ñ–ÐºÐ¾Ð»Ð¸ не
+вÑтановлюютьÑÑ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¾ÑŽ, але результат «extra» буде занулено на початку
+кожної взаємодії із бібліотекою.
+
+Базовим документом при розробці кориÑтувацької програми буде файл заголовків
+\fBіменованого інтерфейÑу\fP. Там ви знайдете уÑÑ– доÑтупні запиÑи (item), тип,
+Ñкий вони повертають (назву члена Ñтруктури «result») Ñ– джерело Ð´Ð»Ñ Ñ‚Ð°ÐºÐ¸Ñ…
+значень. Також там наведено документацію щодо додаткових лічильників та
+Ñтруктур.
+
+.SS КориÑтуваннÑ
+Ðижче наведено типову поÑлідовніÑÑ‚ÑŒ викликів цих інтерфейÑів.
+
+.nf
+1. \fBprocps_new()\fP
+2. \fBprocps_get()\fP, \fBprocps_select()\fP або \fBprocps_reap()\fP
+3. \fBprocps_unref()\fP
+.fi
+
+Функцію \fBget\fP призначено Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñтруктури «result» Ð´Ð»Ñ Ð¾ÐºÑ€ÐµÐ¼Ð¾Ð³Ð¾
+«item». Крім того, можна ÑкориÑтатиÑÑ Ð¼Ð°ÐºÑ€Ð¾Ñом \fBGET\fP, Ñкщо потрібне лише
+значеннÑ, Ñке повертає функціÑ.
+
+Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ \fBselect\fP може отримувати декілька Ñтруктур «result» в одному
+значенні «stack».
+
+Ð”Ð»Ñ Ð½ÐµÐ¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÑƒÐ²Ð°Ð½Ð¸Ñ… результатів Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¸Ñ… інтерфейÑи \fBdiskstats\fP,
+\fBslabinfo\fP Ñ– \fBstat\fP екÑпортують функцію \fBreap\fP. Її викориÑтовують длÑ
+Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ… «Ñтеків», кожен з Ñких міÑтить декілька Ñтруктур
+«result». Крім того, кориÑтувач може наказати \fBупорÑдкувати\fP (\fBsort\fP) ці
+результати.
+
+Щоб ÑкориÑтатиÑÑ Ð±ÑƒÐ´ÑŒ\-Ñким «stack» Ñ– отримати доÑтуп до окремих Ñтруктур
+«result», потрібен \fIrelative_enum\fP, Ñк це показано у макроÑÑ– \fBVAL\fP, Ñкий
+визначено у файлі заголовка. ТÐкі Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° запрограмувати Ñк: значеннÑ
+від 0 до numitems\-1. Втім, цю потребу типово можна задовольнити ÑтвореннÑм
+ваших влаÑних лічильників, Ñкі відповідають порÑдку у маÑиві «items».
+
+.SS ЗаÑтереженнÑ
+ФункціÑми \fBnew\fP, \fBref\fP, \fBunref\fP, \fBget\fP та \fBselect\fP можна ÑкориÑтатиÑÑ Ð²
+уÑÑ–Ñ… п'Ñти інтерфейÑах.
+
+Ð”Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹ \fBnew\fP Ñ– \fBunref\fP має бути надано адреÑу вказівник Ñтруктури
+\fIinfo\fP. Із \fBnew\fP Ñ—Ñ— має бути ініціалізовано значеннÑм NULL. Із \fBunref\fP Ñ—Ñ—
+буде Ñкинуто до NULL, Ñкщо контрольний відлік дійде до нулÑ.
+
+У випадку інтерфейÑу \fBdiskstats\fP параметр \fIname\fP у функціÑÑ… \fBget\fP Ñ–
+\fBselect\fP вказує на диÑк або назву розділу
+
+Ð”Ð»Ñ Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñу \fBstat\fP параметр \fIwhat\fP функції \fBreap\fP вказує на те, чи
+Ñлід збирати дані лише Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑорів або процеÑорів Ñ– вузлів NUMA.
+
+Якщо викориÑтано функцію \fBsort\fP, зазвичай, буде повернуто параметри
+\fIstacks\fP Ñ– \fInumstacked\fP у Ñтруктурі «reaped».
+
+.SH "ПОВЕРÐУТЕ ЗÐÐЧЕÐÐЯ"
+.SS "Функції, Ñкі повертають «int»"
+Ðа помилку вказуватиме від'ємне чиÑло, Ñке Ñ” завжди оберненим до ÑкогоÑÑŒ
+відомого Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð· errno.h.
+
+Ðа уÑпіх вказує нульовий Ñтан поверненнÑ. Втім, функції \fBref\fP Ñ– \fBunref\fP
+повертають поточний контрольний відлік Ñтруктури \fIinfo\fP.
+
+.SS "Функції, Ñкі повертають «address»"
+Ðа помилку вказуватиме повернутий NUL\-вказівник із Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ причину
+у формальному значенні errno.
+
+Ðа уÑпіх вказує Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÐ° на іменовану Ñтруктуру.
+
+.SH ДІÐГÐОСТИКÐ
+Щоб допомогти у розробці програм, передбачено функцію, Ñка може допомогти
+забезпечити узгодженіÑÑ‚ÑŒ поÑилань на члени «result» із очікуваннÑми
+бібліотеки. У цій функції передбачено, що наданий Ð¼Ð°ÐºÑ€Ð¾Ñ Ñƒ файлі заголовків
+буде викориÑтано Ð´Ð»Ñ Ð´Ð¾Ñтупу до Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«result».
+
+Цю можливіÑÑ‚ÑŒ можна активувати за допомогою будь\-Ñкого з вказаних нижче
+методів, а уÑÑ– розбіжноÑÑ‚Ñ– буде запиÑано до \fBstderr\fP.
+
+.IP 1) 3
+Додайте CFLAGS='\-DXTRA_PROCPS_DEBUG' до будь\-Ñких інших заÑтоÑованих
+параметрів ./configure.
+
+.IP 2) 3
+Додайте #include <procps/xtra\-procps\-debug.h> у програму \fIпіÑлÑ\fP
+команд Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñ–Ð¼ÐµÐ½Ð¾Ð²Ð°Ð½Ð¸Ñ… інтерфейÑів.
+
+.PP
+ВикориÑÑ‚Ð°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— можливоÑÑ‚Ñ– перевірки призводить до Ñуттєвих обчиÑлювальних
+витрат. Через це, важливо \fIне\fP вмикати Ñ—Ñ— під Ñ‡Ð°Ñ Ð¾Ñтаточного Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð°Ð±Ð¾
+Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ Ð´Ð»Ñ Ð²Ð¸Ð¿ÑƒÑку.
+
+.SH "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ"
+\fBprocps_misc\fP(3), \fBprocps_pids\fP(3), \fBproc\fP(5).
diff --git a/po-man/uk/procps_misc.3 b/po-man/uk/procps_misc.3
new file mode 100644
index 0000000..dd28cc0
--- /dev/null
+++ b/po-man/uk/procps_misc.3
@@ -0,0 +1,155 @@
+.\"
+.\" Copyright (c) 2020-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2020-2023 Craig Small <csmall@dropbear.xyz>
+.\"
+.\" This manual is free software; you can redistribute it and/or
+.\" modify it under the terms of the GNU Lesser General Public
+.\" License as published by the Free Software Foundation; either
+.\" version 2.1 of the License, or (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PROCPS_MISC 3 "Ñерпень 2022 року" libproc2
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.nh
+.SH ÐÐЗВÐ
+procps_misc — програмний Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð´Ð¾ різноманітних даних у файловій ÑиÑтемі
+/proc
+.SH "КОРОТКИЙ ОПИС"
+.nf
+\fB#include <libproc2/misc.h>\fP
+.PP
+Подробиці щодо платформи
+.RS 4
+.PP
+long \fBprocps_cpu_count\fP (void);
+long \fBprocps_hertz_get\fP (void);
+unsigned int \fBprocps_pid_length\fP (void);
+int \fBprocps_linux_version\fP (void);
+.RE
+.PP
+Подробиці щодо Ñередовища виконаннÑ
+.PP
+.RS 4
+int \fB procps_loadavg\fP (double *\fIav1\fP, double *\fIav5\fP, double *\fIav15\fP);
+int \fB procps_uptime\fP (double *\fIuptime_secs\fP, double *\fIidle_secs\fP);
+char *\fBprocps_uptime_sprint\fP (void);
+char *\fBprocps_uptime_sprint_short\fP (void);
+.RE
+.PP
+Подробиці щодо проÑтору назв
+.PP
+.RS 4
+int \fB procps_ns_get_id\fP (const char *\fIname\fP);
+const char\fB *procps_ns_get_name\fP (int \fIid\fP);
+int \fB procps_ns_read_pid\fP (int \fIpid\fP, struct procps_ns *\fInsp\fP);
+.RE
+
+Компонувати з \fI\-lproc2\fP.
+
+.SH ОПИС
+\fBprocps_cpu_count\fP() повертає кількіÑÑ‚ÑŒ робочих процеÑорів Ñк
+\fBsysconf(\fP\fI_SC_NPROCESSORS_ONLY\fP\fB)\fP або типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fI1\fP.
+
+\fBprocps_hertz_get\fP() повертає кількіÑÑ‚ÑŒ тактів годинника на Ñекунду Ñк
+\fBsysconf(\fP\fI_SC_CLK_TCK\fP\fB)\fP або типове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fI100\fP. Якщо поділити
+такти на це значеннÑ, буде отримано Ñекунди.
+
+\fBprocps_pid_length\fP() повертає макÑимальну довжину Ñ€Ñдка Ð´Ð»Ñ PID у
+ÑиÑтемі. Ðаприклад, Ñкщо найбільше можливе Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ PID — 123, довжиною буде
+3. Якщо файл \fI/proc/sys/kernel/pid_max\fP виÑвитьÑÑ Ð½ÐµÐ´Ð¾Ñтупним до читаннÑ,
+типовим значеннÑм буде \fI5\fP.
+
+\fBprocps_linux_version\fP() повертає верÑÑ–ÑŽ поточної ÑиÑтеми Linux у форматі
+закодованого цілого чиÑла. У ÑиÑтемах, відмінних від Linux, із імітацією
+файлової ÑиÑтеми proc Ñ†Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð¿Ð¾Ð²ÐµÑ€Ñ‚Ð°Ñ” верÑÑ–ÑŽ емулÑції Linux. ВерÑÑ–Ñ
+ÑкладаєтьÑÑ Ð· трьох додатних цілих чиÑел, Ñкі відповідають оÑновній,
+проміжній чаÑтинам Ñ– чаÑтині модифікації. Передбачено вказані нижче макроÑи
+Ð´Ð»Ñ ÐºÐ¾Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð´Ð°Ð½Ð¾Ñ— верÑÑ–Ñ— Linux або окремого викориÑÑ‚Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÐµÐ½Ñ‚Ñ–Ð²
+поточної верÑÑ–Ñ—.
+.RS 4
+.PP
+LINUX_VERSION(\ major\ ,\ minor\ ,\ patch\ )
+.PP
+LINUX_VERSION_MAJOR(\ ver\ )
+.PP
+LINUX_VERSION_MINOR(\ ver\ )
+.PP
+LINUX_VERSION_PATCH(\ ver\ )
+.RE
+
+\fBprocps_loadavg\fP() отримує дані щодо Ñереднього Ð½Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° ÑиÑтему Ñ–
+запиÑує Ñередні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð° 1, 5 Ñ– 15 хвилин у міÑцÑ, Ñкі вказано будь\-Ñким
+вказівником, Ñкий не Ñ” порожнім (\fINULL\fP).
+
+\fBprocps_uptime\fP() повертає Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ Ñ–/або бездіÑльноÑÑ‚Ñ– у Ñекундах у
+міÑцÑ, Ñкі вказано будь\-Ñким вказівником, Ñкий не Ñ” порожнім
+(\fINULL\fP). ВикориÑÑ‚Ð°Ð½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ \fBsprint\fP повертає Ñ€Ñдок у зручному длÑ
+Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ– в одній із двох форм.
+.RS 4
+.PP
+ГГ:ХХ:СС up ГГ:ХХ, # users, load average: 1, 5, 15 MM averages
+.PP
+up ГГ, ХХ
+.RE
+
+\fBprocps_ns_get_id\fP() повертає цілочиÑельний ідентифікатор (enum
+namespace_type) проÑтору назв Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð¾Ð³Ð¾ проÑтору назв \fIname\fP.
+
+\fBprocps_ns_get_name\fP() повертає назву проÑтора назв Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð¾Ð³Ð¾ \fIid\fP
+(enum namespace_type).
+
+\fBprocps_ns_read_pid\fP() повертає inode\-и Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñторів назв із заданим
+процеÑом у Ñтруктурі procps_ns на Ñку вказує \fInsp\fP. Ці inode\-и буде
+виведено у порÑдку, Ñкий визначаєтьÑÑ Ð¿ÐµÑ€ÐµÐ»Ñ–ÐºÐ¾Ð¼ namespace_type.
+.PP
+.RS 4
+.nf
+enum namespace_type {
+ PROCPS_NS_CGROUP,
+ PROCPS_NS_IPC,
+ PROCPS_NS_MNT,
+ PROCPS_NS_NET,
+ PROCPS_NS_PID,
+ PROCPS_NS_TIME,
+ PROCPS_NS_USER,
+ PROCPS_NS_UTS
+};
+.fi
+.RE
+
+
+.SH "ПОВЕРÐУТЕ ЗÐÐЧЕÐÐЯ"
+.SS "Функції, Ñкі повертають «int» або «long»"
+Ðа помилку вказуватиме від'ємне чиÑло, Ñке Ñ” завжди оберненим до ÑкогоÑÑŒ
+відомого Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð· errno.h.
+
+.SS "Функції, Ñкі повертають «address»"
+Ðа помилку вказуватиме повернутий NUL\-вказівник із Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ причину
+у формальному значенні errno.
+
+.SH ФÐЙЛИ
+.TP
+\fI/proc/loadavg\fP
+Ðеоброблені Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñереднього навантаженнÑ.
+.TP
+\fI/proc/sys/kernel/osrelease\fP
+МіÑтить верÑÑ–ÑŽ випуÑку Ñдра Linux або файлової ÑиÑтеми proc.
+.TP
+\fI/proc/sys/kernel/pid_max\fP
+МіÑтить значеннÑ, на Ñкому відбуваєтьÑÑ Ð·Ð°Ñ†Ð¸ÐºÐ»ÑŽÐ²Ð°Ð½Ð½Ñ PID, на одиницю більше
+за макÑимальне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ PID.
+.TP
+\fI/proc/uptime\fP
+Ðеоброблені Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ‡Ð°Ñу роботи та чаÑу бездіÑльноÑÑ‚Ñ–.
+.TP
+\fI/proc/<PID>/ns\fP
+міÑтить набір проÑторів назв Ð´Ð»Ñ Ð¿ÐµÐ²Ð½Ð¾Ð³Ð¾ \fBPID\fP.
+
+.SH "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ"
+\fBprocps\fP(3), \fBprocps_pids\fP(3), \fBproc\fP(5).
diff --git a/po-man/uk/procps_pids.3 b/po-man/uk/procps_pids.3
new file mode 100644
index 0000000..839ba42
--- /dev/null
+++ b/po-man/uk/procps_pids.3
@@ -0,0 +1,204 @@
+.\"
+.\" Copyright (c) 2020-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2020-2023 Craig Small <csmall@dropbear.xyz>
+.\"
+.\" This manual is free software; you can redistribute it and/or
+.\" modify it under the terms of the GNU Lesser General Public
+.\" License as published by the Free Software Foundation; either
+.\" version 2.1 of the License, or (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PROCPS_PIDS 3 "Ñерпень 2022 року" libproc2
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.nh
+.SH ÐÐЗВÐ
+procps_pids — програмний Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð´Ð»Ñ Ð´Ð¾Ñтупу до даних процеÑів у файловій
+ÑиÑтемі /proc
+
+.SH "КОРОТКИЙ ОПИС"
+.nf
+#include <libproc2/pids.h>
+
+int\fB procps_pids_new \fP (struct pids_info **\fIinfo\fP, enum pids_item *\fIitems\fP, int \fInumitems\fP);
+int\fB procps_pids_ref \fP (struct pids_info *\fIinfo\fP);
+int\fB procps_pids_unref\fP (struct pids_info **\fIinfo\fP);
+
+
+struct pids_stack *\fBprocps_pids_get\fP (
+ struct pids_info *\fIinfo\fP,
+ enum pids_fetch_type \fIwhich\fP);
+
+struct pids_fetch *\fBprocps_pids_reap\fP (
+ struct pids_info *\fIinfo\fP,
+ enum pids_fetch_type \fIwhich\fP);
+
+struct pids_fetch *\fBprocps_pids_select\fP (
+ struct pids_info *\fIinfo\fP,
+ unsigned *\fIthese\fP,
+ int \fInumthese\fP,
+ enum pids_select_type \fIwhich\fP);
+
+struct pids_stack **\fBprocps_pids_sort\fP (
+ struct pids_info *\fIinfo\fP,
+ struct pids_stack *\fIstacks\fP[],
+ int \fInumstacked\fP,
+ enum pids_item \fIsortitem\fP,
+ enum pids_sort_order \fIorder\fP);
+
+int \fBprocps_pids_reset\fP (
+ struct pids_info *\fIinfo\fP,
+ enum pids_item *\fInewitems\fP,
+ int \fInewnumitems\fP);
+
+struct pids_stack *\fBfatal_proc_unmounted\fP (
+ struct pids_info *\fIinfo\fP,
+ int \fIreturn_self\fP);
+
+.fi
+
+Компонувати з \fI\-lproc2\fP.
+
+.SH ОПИС
+.SS ОглÑд
+Центральною Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ інтерфейÑу Ñ” проÑта Ñтруктура «result», Ñка визначає
+«item» Ñ– його Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ (в об'Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð·Ñ– Ñтандартними типами мови C, Ñк
+учаÑниками). УÑÑ– Ñтруктури «result» буде автоматично розподілено Ñ– надано
+бібліотекою.
+
+ЗаданнÑм маÑиву значень «item» ці Ñтруктури можна упорÑдкувати Ñк «Ñтек» із
+потенційним Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð±Ð°Ð³Ð°Ñ‚ÑŒÐ¾Ñ… результатів одним викликом функції. Таким
+чином, «Ñтек» можна розглÑдати Ñк Ð·Ð°Ð¿Ð¸Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¾Ñ— довжини, вміÑÑ‚ Ñкого та
+порÑдок запиÑів у Ñкому визначаютьÑÑ Ð»Ð¸ÑˆÐµ кориÑтувачем.
+
+ЧаÑтиною цього інтерфейÑу Ñ” два унікальних лічильники. Ð”Ð»Ñ Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ñ—Ñ…Ð½Ñ–Ñ…
+значень передбачено запиÑи «noop» та «extra». Їхні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ñ–ÐºÐ¾Ð»Ð¸ не
+вÑтановлюютьÑÑ Ð±Ñ–Ð±Ð»Ñ–Ð¾Ñ‚ÐµÐºÐ¾ÑŽ, але результат «extra» буде занулено на початку
+кожної взаємодії із бібліотекою.
+
+Базовим документом при розробці кориÑтувацької програми буде файл заголовків
+pids.h. Там ви знайдете уÑÑ– доÑтупні запиÑи (item), тип, Ñкий вони
+повертають (назву члена Ñтруктури «result») Ñ– джерело Ð´Ð»Ñ Ñ‚Ð°ÐºÐ¸Ñ…
+значень. Також там наведено документацію щодо додаткових лічильників та
+Ñтруктур.
+
+.SS КориÑтуваннÑ
+Ðижче наведено типову поÑлідовніÑÑ‚ÑŒ викликів цього інтерфейÑу.
+
+.nf
+1. \fBfatal_proc_unmounted()\fP
+2. \fBprocps_pids_new()\fP
+3. \fBprocps_pids_get()\fP, \fBprocps_pids_reap()\fP або \fBprocps_pids_select()\fP
+4. \fBprocps_pids_unref()\fP
+.fi
+
+Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ \fBget\fP Ñ” ітератором Ð´Ð»Ñ Ð¿Ð¾Ñлідовних PID/TID, що повертає ці «items»,
+раніше вказані за допомогою \fBnew\fP або \fBreset\fP.
+
+Ð”Ð»Ñ Ð½ÐµÐ¿ÐµÑ€ÐµÐ´Ð±Ð°Ñ‡ÑƒÐ²Ð°Ð½Ð¸Ñ… результатів Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¸Ñ… передбачено дві
+функції. Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ \fBreap\fP збирає дані Ð´Ð»Ñ ÑƒÑÑ–Ñ… процеÑів, а Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ \fBselect\fP
+працює зі Ñпецифічними PID та UID. Обидві можуть повертати декілька
+«Ñтеків», кожне з Ñких міÑтить декілька Ñтруктур «result». Крім того,
+кориÑтувач може наказати \fBупорÑдкувати\fP (\fBsort\fP) ці результати.
+
+Щоб ÑкориÑтатиÑÑ Ð±ÑƒÐ´ÑŒ\-Ñким «stack» Ñ– отримати доÑтуп до окремих Ñтруктур
+«result», потрібен \fIrelative_enum\fP, Ñк це показано у макроÑÑ– \fBVAL\fP, Ñкий
+визначено у файлі заголовка. ТÐкі Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° запрограмувати Ñк: значеннÑ
+від 0 до numitems\-1. Втім, цю потребу типово можна задовольнити ÑтвореннÑм
+ваших влаÑних лічильників, Ñкі відповідають порÑдку у маÑиві «items».
+
+.SS ЗаÑтереженнÑ
+Програмний Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ <pids> відрізнÑєтьÑÑ Ð²Ñ–Ð´ інших тим, що потрібні
+запиÑи має бути надано під Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ \fBnew\fP або \fBreset\fP, оÑтанній
+варіант Ñ” унікальним Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ програмного інтерфейÑу. Якщо ÑкийÑÑŒ із
+параметрів, \fIitems\fP або \fInumitems\fP, Ñ” нульовим на Ñ‡Ð°Ñ \fBnew\fP, обов'Ñзковим
+перед надÑиланнÑм будь\-Ñкого іншого виклику Ñтає \fBreset\fP.
+
+Ð”Ð»Ñ Ñ„ÑƒÐ½ÐºÑ†Ñ–Ð¹ \fBnew\fP Ñ– \fBunref\fP має бути надано адреÑу вказівник Ñтруктури
+\fIinfo\fP. Із \fBnew\fP Ñ—Ñ— має бути ініціалізовано значеннÑм NULL. Із \fBunref\fP Ñ—Ñ—
+буде Ñкинуто до NULL, Ñкщо контрольний відлік дійде до нулÑ.
+
+Функції \fBget\fP Ñ– \fBreap\fP викориÑтовують параметр \fIwhich\fP Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ
+того, Ñлід отримувати дані лише Ð´Ð»Ñ Ð·Ð°Ð²Ð´Ð°Ð½ÑŒ чи Ð´Ð»Ñ Ð·Ð°Ð²Ð´Ð°Ð½ÑŒ Ñ– потоків
+обробки.
+
+Ð¤ÑƒÐ½ÐºÑ†Ñ–Ñ \fBselect\fP потребує маÑиву PID або UID, Ñк \fIthese\fP разом із
+\fInumthese\fP, Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð¾Ð³Ð¾, дані Ñких процеÑів Ñлід отримати. Далі, цÑ
+Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð¿Ñ€Ð°Ñ†ÑŽÑ” із підмножиною \fBreap\fP.
+
+Якщо викориÑтано функцію \fBsort\fP, зазвичай, буде повернуто параметри
+\fIstacks\fP Ñ– \fInumstacked\fP у Ñтруктурі «pids_fetch».
+
+Ðарешті, можна викликати функцію \fBfatal_proc_unmounted\fP до будь\-Ñкої іншої
+функції Ð´Ð»Ñ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ°Ñ‚Ð°Ð»Ð¾Ð³Ñƒ /proc/. Якщо каталог
+змонтовано, параметр \fIinfo\fP матиме Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ NULL, а параметр \fIreturn_self\fP
+матиме нульове значеннÑ. Якщо, втім, деÑкі запиÑи потрібні Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку
+програми (\fIreturn_self\fP відмінне від нулÑ), виклик \fBnew\fP має передувати
+виклику цієї функції Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб вказати \fIitems\fP Ñ– отримати потрібний
+вказівник \fIinfo\fP.
+
+.SH "ПОВЕРÐУТЕ ЗÐÐЧЕÐÐЯ"
+.SS "Функції, Ñкі повертають «int»"
+Ðа помилку вказуватиме від'ємне чиÑло, Ñке Ñ” завжди оберненим до ÑкогоÑÑŒ
+відомого Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð· errno.h.
+
+Ðа уÑпіх вказує нульовий Ñтан поверненнÑ. Втім, функції \fBref\fP Ñ– \fBunref\fP
+повертають поточний контрольний відлік Ñтруктури \fIinfo\fP.
+
+.SS "Функції, Ñкі повертають «address»"
+Ðа помилку вказуватиме повернутий NUL\-вказівник із Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ причину
+у формальному значенні errno.
+
+Ðа уÑпіх вказує Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð²ÐºÐ°Ð·Ñ–Ð²Ð½Ð¸ÐºÐ° на іменовану Ñтруктуру. Втім, Ñкщо
+щоÑÑŒ переживе виклик \fBfatal_proc_unmounted\fP, NULL завжди буде повернуто,
+Ñкщо значеннÑм \fIreturn_self\fP Ñ” нуль.
+
+.SH ДІÐГÐОСТИКÐ
+Щоб полегшити розробку програм, передбачено дві можливоÑÑ‚Ñ– procps\-ng, Ñкими
+можна ÑкориÑтатиÑÑ.
+
+Першою Ñ” файл із назвою «libproc.supp», Ñким можна ÑкориÑтатиÑÑ Ð¿Ñ€Ð¸ розробці
+\fIбагатопотокової\fP програми. Якщо ÑкориÑтатиÑÑ Ð½Ð¸Ð¼ у поєднанні із параметром
+valgrind «\-\-suppressions=», можна уникнути Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½ÑŒ, Ñкі
+пов'Ñзано із Ñамою бібліотекою procps.
+
+Такі Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ Ð²Ð¸Ð½Ð¸ÐºÐ°ÑŽÑ‚ÑŒ через те, що бібліотека оброблÑÑ” заÑновані на
+«купі» функції Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– у безпечний щодо потоків обробки
+ÑпоÑіб. \fIОднопотокові\fP програми не призводитимуть до поÑви таких
+попереджень.
+
+Друга Ñ„ÑƒÐ½ÐºÑ†Ñ–Ñ Ð¼Ð¾Ð¶Ðµ допомогти забезпечити узгодженіÑÑ‚ÑŒ поÑилань на члени
+«result» із очікуваннÑми бібліотеки. У цій функції передбачено, що наданий
+Ð¼Ð°ÐºÑ€Ð¾Ñ Ñƒ файлі заголовків буде викориÑтано Ð´Ð»Ñ Ð´Ð¾Ñтупу до Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«result».
+
+Цю можливіÑÑ‚ÑŒ можна активувати за допомогою будь\-Ñкого з вказаних нижче
+методів, а уÑÑ– розбіжноÑÑ‚Ñ– буде запиÑано до \fBstderr\fP.
+
+.IP 1) 3
+Додайте CFLAGS='\-DXTRA_PROCPS_DEBUG' до будь\-Ñких інших заÑтоÑованих у
+вашому проєкті параметрів ./configure.
+
+.IP 2) 3
+Додайте #include <procps/xtra\-procps\-debug.h> у програму \fIпіÑлÑ\fP
+#include <procps/pids.h>.
+
+.PP
+ВикориÑÑ‚Ð°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— можливоÑÑ‚Ñ– перевірки призводить до Ñуттєвих обчиÑлювальних
+витрат. Через це, важливо \fIне\fP вмикати Ñ—Ñ— під Ñ‡Ð°Ñ Ð¾Ñтаточного Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð°Ð±Ð¾
+Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ Ð´Ð»Ñ Ð²Ð¸Ð¿ÑƒÑку.
+
+.SH "ЗМІÐÐІ СЕРЕДОВИЩÐ"
+Ð’Ñтановлене Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ” неÑуттєвим, доÑтатнього Ñамого факту його
+вÑтановленнÑ.
+
+.IP LIBPROC_HIDE_KERNEL
+Призведе до Ð¿Ñ€Ð¸Ñ…Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑ–Ð² обробки Ñдра, Ñкі інакше було б повернуто
+викликом \fBprocps_pids_get\fP, \fBprocps_pids_select\fP або \fBprocps_pids_reap\fP.
+
+.SH "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ"
+\fBprocps\fP(3), \fBprocps_misc\fP(3), \fBproc\fP(5).
diff --git a/po-man/uk/ps.1 b/po-man/uk/ps.1
new file mode 100644
index 0000000..c0893d3
--- /dev/null
+++ b/po-man/uk/ps.1
@@ -0,0 +1,1655 @@
+.\"
+.\" Copyright (c) 2004-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1998-2003 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PS 1 "19 ÑÐµÑ€Ð¿Ð½Ñ 2023 року" procps\-ng "Команди кориÑтувача"
+.\"
+.\" Ragged-right text.
+.na
+.\" Disable hyphenation.
+.nh
+.\"
+.\" ColSize is used for the format spec table.
+.\" It's the left margin, minus the right, minus
+.\" the space needed for the 1st two columns.
+.\" Making it messy: inches, ens, points, scaled points...
+.\"
+.nr ColSize ((\n[.l] - \n[.i]) / 1n - 29)
+.\"
+.SH ÐÐЗВÐ
+ps — надає звіт щодо поточних процеÑів.
+.SH "КОРОТКИЙ ОПИС"
+\fBps\fP [\,\fIпараметри\/\fP]
+.SH ОПИС
+\fBps\fP показує відомоÑÑ‚Ñ– щодо вибраного набору активних процеÑів. Якщо вам
+потрібне регулÑрне Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ та показаних даних, ÑкориÑтайтеÑÑ
+заміÑÑ‚ÑŒ цієї програми програмою \fBtop\fP.
+.P
+Ð¦Ñ Ð²ÐµÑ€ÑÑ–Ñ \fBps\fP приймає декілька типів параметрів:
+.IP
+.PD 0
+.IP 1 4
+Параметри UNIX, Ñкі може бути згруповано Ñ– Ñким має перебувати дефіÑ.
+.IP 2 4
+Параметри BSD, Ñкі може бути згруповано Ñ– Ñкі не Ñлід викориÑтовувати з
+дефіÑом.
+.IP 3 4
+Довгі верÑÑ–Ñ— параметрів GNU, перед Ñкими Ñлід вказати два дефіÑи.
+.PD
+.PP
+Параметри різних типів можна поєднувати довільним чином, але можуть
+виникнути конфлікти. ІÑнує декілька параметрів однакового призначеннÑ, Ñкі Ñ”
+функціонально ідентичним. Причиною Ñ” одночаÑна наÑвніÑÑ‚ÑŒ багатьох Ñтандартів
+Ñ– реалізацій \fBps\fP, з Ñкими Ñ” ÑуміÑною Ñ†Ñ Ð²ÐµÑ€ÑÑ–Ñ \fBps\fP.
+.P
+Типово, \fBps\fP вибирає уÑÑ– процеÑи із тим Ñамим ідентифікатором ефективного
+кориÑтувача (euid=EUID), що Ñ– у поточного кориÑтувача, а також Ñ‚Ñ– процеÑи,
+Ñкі пов'Ñзано із тим Ñамим терміналом, звідки викликано програму. Програма
+виводить ідентифікатор процеÑу (pid=PID), термінал, Ñкий пов'Ñзано із
+процеÑом (tname=TTY), накопичений Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора у форматі [ДД\-]гг:Ñ…Ñ…:ÑÑ
+(time=TIME) та назву виконуваного файла (ucmd=CMD). Типово, виведені дані не
+упорÑдковуютьÑÑ.
+.P
+ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² у Ñтилі BSD додаÑÑ‚ÑŒ Ñтан процеÑу (stat=STAT) до
+типового набору Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ Ñ– показ аргументів команди (args=COMMAND) заміÑÑ‚ÑŒ
+назви виконуваного файла. Ви можете перевизначити це за допомогою змінної
+Ñередовища \fBPS_FORMAT\fP. ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² у Ñтилі BSD також змінить
+вибір процеÑів — буде включено процеÑи з інших терміналів (TTY), влаÑником
+Ñких ви Ñ”; крім того, це може бути опиÑано Ñк вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ð°Ð±Ð¾Ñ€Ñƒ уÑÑ–Ñ…
+процеÑів, Ñкі фільтровано Ð´Ð»Ñ Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑів, влаÑником Ñких Ñ” інші
+кориÑтувачі або не у терміналі. Ці ефекти не буде взÑто до уваги длÑ
+параметрів, Ñкі опиÑано нижче Ñк «тотожні», отже, \fB\-M\fP вважатиметьÑÑ
+тотожним до \fBZ\fP тощо.
+.P
+Окрім вказаних нижче випадків, параметри вибору процеÑів Ñ”
+адитивними. Типовий вибір буде відкинуто, а потім вибрані процеÑи буде
+додано до набору процеÑів, Ñкі Ñлід показати. Таким чином, Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±ÑƒÐ´Ðµ
+показано, Ñкщо він буде відповідати уÑім заданим критеріÑм.
+.SH ПРИКЛÐДИ
+.TP 3
+ПереглÑд уÑÑ–Ñ… процеÑів ÑиÑтеми з викориÑтаннÑм Ñтандартного ÑинтакÑиÑу:
+\fBps\ \-e\fP
+.br
+\fBps\ \-ef\fP
+.br
+\fBps\ \-eF\fP
+.br
+\fBps\ \-ely\fP
+.TP
+ПереглÑд уÑÑ–Ñ… процеÑів ÑиÑтеми з викориÑтаннÑм ÑинтакÑиÑу BSD:
+\fBps\ ax\fP
+.br
+\fBps\ axu\fP
+.TP
+Ð’Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñ–Ñ”Ñ€Ð°Ñ€Ñ…Ñ–Ñ— процеÑів:
+\fBps\ \-ejH\fP
+.br
+\fBps\ axjf\fP
+.TP
+ÐžÑ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð¾Ð¼Ð¾Ñтей щодо потоків обробки:
+\fBps\ \-eLf\fP
+.br
+\fBps\ axms\fP
+.TP
+ÐžÑ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð¾Ð¼Ð¾Ñтей щодо захиÑту:
+\fBps\ \-eo euser,ruser,suser,fuser,f,comm,label\fP
+.br
+\fBps\ axZ\fP
+.br
+\fBps\ \-eM\fP
+.TP
+ПереглÑд уÑÑ–Ñ… процеÑів, Ñкі запущено від імені кориÑтувача root (Ñправжній\ Ñ–\ ефективний\ ідентифікатор) у форматі кориÑтувача:
+\fBps\ \-U\ root\ \-u\ root\ u\fP
+.TP
+ПереглÑд уÑÑ–Ñ… процеÑів із визначеним кориÑтувачем форматом:
+\fBps\ \-eo\ pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm\fP
+.br
+\fBps\ axo\ stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm\fP
+.br
+\fBps\ \-Ao\ pid,tt,user,fname,tmout,f,wchan\fP
+.TP
+Ð’Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð»Ð¸ÑˆÐµ ідентифікаторів процеÑів syslogd:
+\fBps\ \-C\ syslogd\ \-o\ pid=\fP
+.TP
+вивеÑти лише назву PID 42:
+\fBps\ \-q\ 42\ \-o\ comm=\fP
+.SH "ПРОСТИЙ ВИБІР ПРОЦЕСУ"
+.TP
+\fBa\fP
+ВикориÑтати Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Â«Ð»Ð¸ÑˆÐµ Ñебе» у Ñтилі BSD, Ñке буде накладено на набір
+уÑÑ–Ñ… процеÑів, Ñкщо викориÑтано ÑкіÑÑŒ параметри у Ñтилі BSD (без «\-») або
+Ñкщо оÑобу кориÑтувача \fBps\fP вÑтановлено у Ñтилі BSD. Ðабір процеÑів, Ñкий
+вибрано у цей ÑпоÑіб, додаєтьÑÑ Ð´Ð¾ набору процеÑів, Ñкі вибрано в інший
+ÑпоÑіб. Ðльтернативним опиÑом Ñ” те, що цей параметр наказує \fBps\fP вивеÑти
+ÑпиÑок уÑÑ–Ñ… процеÑів з терміналом (tty) або вивеÑти ÑпиÑок уÑÑ–Ñ… процеÑів,
+Ñкщо викориÑтано разом із параметром \fBx\fP.
+.TP
+\fB\-A\fP
+Вибрати уÑÑ– процеÑи. Те Ñаме, що Ñ– \fB\-e\fP.
+.TP
+\fB\-a\fP
+Вибрати уÑÑ– процеÑи, окрім обох лідерів ÑеанÑів (див. \fIgetsid\fP(2)) Ñ–
+процеÑи, Ñкі не пов'Ñзано із терміналом.
+.TP
+\fB\-d\fP
+Вибрати уÑÑ– процеÑи, окрім лідерів ÑеанÑів.
+.TP
+\fB\-\-deselect\fP
+Вибрати уÑÑ– процеÑи, окрім тих, Ñкі задовольнÑÑŽÑ‚ÑŒ вказані умови (інвертує
+вибір). Те Ñаме, що Ñ– \fB\-N\fP.
+.TP
+\fB\-e\fP
+.\" Current "g" behavior: add in the session leaders, which would
+.\" be excluded in the sunos4 personality. Supposed "g" behavior:
+.\" add in the group leaders -- at least according to the SunOS 4
+.\" man page on the FreeBSD site. Uh oh. I think I had tested SunOS
+.\" though, so maybe the code is correct.
+Вибрати уÑÑ– процеÑи. Те Ñаме, що Ñ– \fB\-A\fP.
+.TP
+\fBg\fP
+Справді вÑÑ–, навіть лідери ÑеанÑу. Цей прапорець Ñ” заÑтарілим, Ñ– його може
+бути вилучено у майбутніх випуÑках. Зазвичай, неÑвно вÑтановлюєтьÑÑ
+прапорцем \fBa\fP, Ñ– кориÑний лише Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ із оÑобами sunos4.
+.TP
+\fB\-N\fP
+Вибрати уÑÑ– процеÑи, окрім тих, Ñкі задовольнÑÑŽÑ‚ÑŒ вказані умови (інвертує
+вибір). Те Ñаме, що Ñ– \fB\-\-deselect\fP.
+.TP
+\fBT\fP
+Вибрати уÑÑ– процеÑи, Ñкі пов'Ñзано із цим терміналом. Те Ñаме, що Ñ– параметр
+\fBt\fP без будь\-Ñких аргументів.
+.TP
+\fBr\fP
+Обмежити вибір лише процеÑами, Ñкі працюють.
+.TP
+\fBx\fP
+ВикориÑтати Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Â«Ð¿Ð¾Ð²Ð¸Ð½ÐµÐ½ мати термінал» у Ñтилі BSD, Ñке буде
+накладено на набір уÑÑ–Ñ… процеÑів, Ñкщо викориÑтано ÑкіÑÑŒ параметри у Ñтилі
+BSD (без «\-») або Ñкщо оÑобу кориÑтувача \fBps\fP вÑтановлено у Ñтилі
+BSD. Ðабір процеÑів, Ñкий вибрано у цей ÑпоÑіб, додаєтьÑÑ Ð´Ð¾ набору
+процеÑів, Ñкі вибрано в інший ÑпоÑіб. Ðльтернативним опиÑом Ñ” те, що цей
+параметр наказує \fBps\fP вивеÑти ÑпиÑок уÑÑ–Ñ… процеÑів, влаÑником Ñких Ñ” ви
+(той Ñамий EUID, що Ñ– Ð´Ð»Ñ \fBps\fP) або вивеÑти ÑпиÑок уÑÑ–Ñ… процеÑів, Ñкщо
+викориÑтано разом із параметром \fBa\fP.
+.PD
+.SH "ВИБІР ПРОЦЕСУ ЗРСПИСКОМ"
+Ці параметри приймають один аргумент у формі ÑпиÑку відокремлених пробілами
+або комами значень. Можна викориÑтовувати декілька разів в одній
+команді. Приклад: \fBps\ \-p\ "1\ 2"\ \-p\ 3,4\fP
+.TP
+\fI123\fP
+Те Ñаме, що Ñ– \fB\-\-pid\ \fP\fI123\fP.
+.TP
+\+\fI123\fP
+Те Ñаме, що Ñ– \fB\-\-sid\ \fP\fI123\fP.
+.TP
+\-\fI123\fP
+Вибрати ідентифікатор групи процеÑів (PGID).
+.TP
+\fB\-C\fP\fI\ ÑпиÑок_команд\fP
+Вибрати за назвою команди. Вибирає процеÑи, назвою виконуваного файла у Ñких
+Ñ” назва, задана аргументом \fIÑпиÑок_команд\fP. ЗауваженнÑ: назва команди не Ñ”
+тим Ñамим, що Ñ€Ñдок команди. У попередніх верÑÑ–ÑÑ… procps Ñ– Ñдро обрізали цю
+назву команди до 15 Ñимволів. Це Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð½Ñто у нових верÑÑ–ÑÑ…. Якщо ваш
+код залежить від Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ñƒ 15 Ñимволів, він може не Ñпрацювати.
+.TP
+\fB\-G\fP\fI\ ÑпиÑок_груп\fP
+Вибрати за ідентифікатором Ñправжньої групи (RGID) або назвою. Вибирає
+процеÑи, назва або ідентифікатор Ñправжньої групи Ñких Ñ” у ÑпиÑку
+\fIÑпиÑок_груп\fP. Ідентифікатор Ñправжньої групи визначає групу кориÑтувача,
+Ñкий Ñтворив процеÑ, див. \fIgetgid\fP(2).
+.TP
+\fB\-g\fP\fI\ grplist\fP
+Вибрати за ÑеанÑом ÐБО за назвою ефективної групи. Вибір за ÑеанÑом
+визначаєтьÑÑ Ð±Ð°Ð³Ð°Ñ‚ÑŒÐ¼Ð° Ñтандартами, але вибір за ефективною групою Ñ” логічною
+поведінкою, Ñку викориÑтано у декількох інших операційних ÑиÑтемах. ЦÑ
+верÑÑ–Ñ \fBps\fP вибиратиме за ÑеанÑом, Ñкщо ÑпиÑок Ñ” повніÑÑ‚ÑŽ чиÑловим (Ñк
+ÑеанÑи). ЧиÑлові ідентифікатори груп працюватимуть, лише Ñкщо також вказано
+деÑкі назви груп. Див. параметри \fB\-s\fP Ñ– \fB\-\-group\fP.
+.TP
+\fB\-\-Group\fP\fI\ grplist\fP
+Вибрати за ідентифікатором Ñправжньої групи (RGID) або назвою. Те Ñаме, що Ñ–
+\fB\-G\fP.
+.TP
+\fB\-\-group\fP\fI\ grplist\fP
+Вибрати за ідентифікатором ефективної групи (EGID) або назвою. Вибирає
+процеÑи, чиї назви або ідентифікатори ефективних груп Ñ” у
+\fIÑпиÑок_груп\fP. Ідентифікатор ефективної групи опиÑує групу, чиї права
+доÑтупу до файлів викориÑтано процеÑом (див. \fIgetegid\fP(2)). Параметр \fB\-g\fP
+чаÑто Ñ” альтернативою \fB\-\-group\fP.
+.TP
+\fBp\fP\fI\ ÑпиÑок_pid\fP
+Вибрати за ідентифікатором процеÑу. Те Ñаме, що Ñ– \fB\-p\fP та \fB\-\-pid\fP.
+.TP
+\fB\-p\fP\fI\ ÑпиÑок_pid\fP
+Вибрати за PID. Вибирає процеÑи, номери ідентифікаторів процеÑу Ñких
+з'ÑвлÑÑŽÑ‚ÑŒÑÑ Ñƒ \fIpidlist\fP. Те Ñаме, що Ñ– \fBp\fP та \fB\-\-pid\fP.
+.TP
+\fB\-\-pid\fP\fI\ ÑпиÑок_pid\fP
+Вибрати за ідентифікатором\ процеÑу. Те Ñаме, що Ñ– \fB\-p\fP та \fBp\fP.
+.TP
+\fB\-\-ppid\fP\fI\ ÑпиÑок_pid\fP
+Вибрати за ідентифікатором батьківÑького процеÑу. Вибирає процеÑи із
+ідентифікатором батьківÑького процеÑу зі ÑпиÑку \fIÑпиÑок_pid\fP. Таким чином,
+програма вибирає процеÑи, Ñкі Ñ” дочірніми щодо процеÑів зі ÑпиÑку
+\fIÑпиÑок_pid\fP.
+.TP
+\fBq\fP\fI\ ÑпиÑок_pid\fP
+Вибрати за ідентифікатором процеÑу (швидкий режим). Те Ñаме, що Ñ– \fB\-q\fP та
+\fB\-\-quick\-pid\fP.
+.TP
+\fB\-q\fP\fI\ ÑпиÑок_pid\fP
+Вибрати за PID (швидкий режим). Вибирає процеÑи, чиї чиÑлові ідентифікатори
+процеÑу Ñ” у ÑпиÑку \fIÑпиÑок_pid\fP. Якщо вказано цей параметр, \fBps\fP прочитає
+потрібні дані лише Ð´Ð»Ñ pid зі ÑпиÑку \fIÑпиÑок_pid\fP Ñ– не заÑтоÑовуватиме
+додаткових правил фільтруваннÑ. ПорÑдок pid без ÑортуваннÑ
+зберігатиметьÑÑ. У цьому режимі не передбачено додаткових параметрів вибору,
+упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð° ÑпиÑки типу «ліÑ». Те Ñаме, що \fBq\fP Ñ– \fB\-\-quick\-pid\fP.
+.TP
+\fB\-\-quick\-pid\fP\fI\ ÑпиÑок_pid\fP
+Вибрати за ідентифікатором\ процеÑу (швидкий режим). Те Ñаме, що Ñ– \fB\-q\fP та
+\fBq\fP.
+.TP
+\fB\-s\fP\fI\ sesslist\fP
+Вибрати за ідентифікатором ÑеанÑу. Вибирає процеÑи із ідентифікатором
+ÑеанÑу, вказаним у \fIsesslist\fP.
+.TP
+\fB\-\-sid\fP\fI\ sesslist\fP
+Вибрати за ідентифікатором\ ÑеанÑу. Те Ñаме, що Ñ– \fB\-s\fP.
+.TP
+\fBt\fP\fI\ ÑпиÑок_терміналів\fP
+Вибрати за терміналом. Майже те Ñаме, що Ñ– \fB\-t\fP та \fB\-\-tty\fP, але можна
+викориÑтовувати із порожнім значеннÑм \fIÑпиÑок_терміналів\fP, щоб вказати на
+термінал, Ñкий пов'Ñзано із \fBps\fP. ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° \fBT\fP вважаєтьÑÑ
+пріоритетнішим варіантом за викориÑÑ‚Ð°Ð½Ð½Ñ \fBt\fP із порожнім значеннÑм
+\fIÑпиÑок_терміналів\fP.
+.TP
+\fB\-t\fP\fI\ ÑпиÑок_терміналів\fP
+Вибрати за терміналом. Вибирає процеÑи, пов'Ñзані із терміналами, Ñкі задано
+ÑпиÑком \fIÑпиÑок_терміналів\fP. Термінали (tty або екрани Ð´Ð»Ñ Ñ‚ÐµÐºÑтового
+виведеннÑ) можна вказати у декількох формах: /dev/ttyS1, ttyS1, S1. Можна
+ÑкориÑтатиÑÑ Ð¿Ñ€Ð¾Ñтим «\-» Ð´Ð»Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ процеÑів, Ñкі не пов'Ñзано із будь\-Ñким
+терміналом.
+.TP
+\fB\-\-tty\fP\fI\ ttylist\fP
+Вибрати за терміналом. Те Ñаме, що Ñ– \fB\-t\fP та \fBt\fP.
+.TP
+\fBU\fP\fI\ ÑпиÑок_кориÑтувачів\fP
+Вибрати за ідентифікатором ефективного кориÑтувача (EUID) або
+назвою. Вибирає процеÑи, чиї імена або ідентифікатори ефективних
+кориÑтувачів Ñ” у \fIÑпиÑок_кориÑтувачів\fP. Ідентифікатор ефективного
+кориÑтувача опиÑує кориÑтувача, чиї права доÑтупу до файлів викориÑтано
+процеÑом (див. \fIgeteuid\fP(2)). Параметр \fB\-u\fP чаÑто Ñ” альтернативою
+\fB\-\-user\fP.
+.TP
+\fB\-U\fP\fI\ ÑпиÑок_кориÑтувачів\fP
+Вибрати за ідентифікатором Ñправжнього кориÑтувача (RUID) або
+назвою. Вибирає процеÑи, назва або ідентифікатор Ñправжнього кориÑтувача
+Ñких Ñ” у ÑпиÑку \fIÑпиÑок_кориÑтувачів\fP. Ідентифікатор Ñправжнього
+кориÑтувача визначає кориÑтувача, Ñкий Ñтворив процеÑ, див. \fIgetuid\fP(2).
+.TP
+\fB\-u\fP\fI\ ÑпиÑок_кориÑтувачів\fP
+Вибрати за ідентифікатором ефективного кориÑтувача (EUID) або
+назвою. Вибирає процеÑи, Ñ‡Ð¸Ñ Ð½Ð°Ð·Ð²Ð° ефективного кориÑтувача або ідентифікатор
+перебуває у ÑпиÑку \fIÑпиÑок_кориÑтувачів\fP.
+
+Ідентифікатор ефективного кориÑтувача опиÑує кориÑтувача, чиї права доÑтупу
+до файлів викориÑтано процеÑом (див. \fIgeteuid\fP(2)). Параметр \fBU\fP чаÑто Ñ”
+альтернативою \fB\-\-user\fP.
+.TP
+\fB\-\-User\fP\fI\ ÑпиÑок_кориÑтувачів\fP
+Вибрати ідентифікатор або ім'Ñ Ñправжнього кориÑтувача (RUID). Тотожний до
+\fB\-U\fP.
+.TP
+\fB\-\-user\fP\fI\ ÑпиÑок кориÑтувачів\fP
+Вибрати за ідентифікатором або іменем ефективного кориÑтувача (EUID). Те
+Ñаме, що \fB\-u\fP Ñ– \fBU\fP.
+.PD
+.SH "КЕРУВÐÐÐЯ ФОРМÐТОМ ВИВЕДЕÐÐЯ"
+Ці параметри викориÑтовують Ð´Ð»Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ даних, Ñкі буде показано
+\fBps\fP. Виведений результат може бути різним Ð´Ð»Ñ Ñ€Ñ–Ð·Ð½Ð¸Ñ… кориÑтувачів.
+.TP
+\fB\-c\fP
+Показати різні дані планувальника Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° \fB\-l\fP.
+.TP
+\fB\-\-context\fP
+Показати формат контекÑту захиÑту (Ð´Ð»Ñ SELinux).
+.TP
+\fB\-f\fP
+Виконати повноформатне Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ ÑпиÑку. Цей параметр можна поєднувати із
+багатьма іншими параметрами у Ñтилі UNIX Ð´Ð»Ñ Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ð¸Ñ…
+Ñтовпчиків. Його викориÑÑ‚Ð°Ð½Ð½Ñ Ñ‚Ð°ÐºÐ¾Ð¶ призводить до Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñ–Ð²
+команди. Якщо викориÑтано разом із \fB\-L\fP, буде додано Ñтовпчики NLWP
+(кількоÑÑ‚Ñ– потоків обробки) та LWP (ідентифікатора потоку
+обробки). Див. параметр \fBc\fP, ключове Ñлово Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ \fBargs\fP та ключове
+Ñлово Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ \fBcomm\fP.
+.TP
+\fB\-F\fP
+Ðадповний формат. Див. параметр \fB\-f\fP, викориÑÑ‚Ð°Ð½Ð½Ñ Ñкого неÑвним чином
+вмикає \fB\-F\fP.
+.TP
+\fB\-\-format\fP\fI\ формат\fP
+Визначений кориÑтувачем формат. Тотожній до \fB\-o\fP Ñ– \fBo\fP.
+.TP
+\fBj\fP
+Формат ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñми BSD.
+.TP
+\fB\-j\fP
+Формат завдань.
+.TP
+\fBl\fP
+ВивеÑти дані у довгому форматі BSD.
+.TP
+\fB\-l\fP
+Довгий формат. Разом із цим параметром чаÑто кориÑним Ñ” параметр \fB\-y\fP.
+.TP
+\fB\-M\fP
+Додати Ñтовпчик даних щодо захиÑту. Те Ñаме, що Ñ– \fBZ\fP (Ð´Ð»Ñ SELinux).
+.TP
+\fBO\fP\fI\ формат\fP
+Є попередньо завантаженим \fBo\fP (перезавантаженим). Параметр \fBO\fP BSD може
+працювати Ñк \fB\-O\fP (визначений кориÑтувачем формат Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð· деÑкими
+попередньо визначеними типовими полÑми) або бути викориÑтаним Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ
+упорÑдкуваннÑ. Ð”Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²ÐµÐ´Ñ–Ð½ÐºÐ¸ цього параметра буде викориÑтано
+евриÑтику. Ð”Ð»Ñ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ Ð±Ð°Ð¶Ð°Ð½Ð¾Ñ— поведінки (упорÑÐ´ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾
+форматуваннÑ) вкажіть параметр у ÑкийÑÑŒ інший ÑпоÑіб (наприклад, з \fB\-O\fP або
+\fB\-\-sort\fP). Якщо викориÑтано Ñк параметр форматуваннÑ, Ñ” ідентичним до \fB\-O\fP
+із оÑобливоÑÑ‚Ñми BSD.
+.TP
+\fB\-O\fP\fI\ формат\fP
+Подібний до \fB\-o\fP, але із попереднім завантаженнÑм деÑких типових
+Ñтовпчиків. Ідентичний до \fB\-o\ pid,\:\fP\fIформат\fP\fB,\:state,\:tname,\:time,\:command\fP або \fB\-o\ pid,\:\fP\fIформат\fP\fB,\:tname,\:time,\:cmd\fP, див. \fB\-o\fP нижче.
+.TP
+\fBo\fP\fI\ формат\fP
+Вказати визначений кориÑтувачем формат. Те Ñаме, що Ñ– \fB\-o\fP Ñ– \fB\-\-format\fP.
+.TP
+\fB\-o\fP\fI\ формат\fP
+Визначений кориÑтувачем формат. Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fIформат\fP Ñ” єдиним аргументом у
+формі ÑпиÑку відокремлених пробілами або комами значень, за його допомогою
+можна вказати окремі Ñтовпчики Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…. Визначені ключові Ñлова
+опиÑано у розділі \fBСТÐÐДÐРТÐІ СПЕЦИФІКÐТОРИ ФОРМÐТІВ\fP нижче. Заголовки,
+Ñкщо потрібно, може бути перейменовано (\fBps \-o pid,\:ruser=RealUser \-o comm=Command\fP). Якщо уÑÑ– заголовки Ñтовпчиків порожні (\fBps \-o pid= \-o comm=\fP), Ñ€Ñдок заголовків не буде виведено. Ð”Ð»Ñ ÑˆÐ¸Ñ€Ð¾ÐºÐ¸Ñ… заголовків буде
+збільшено ширину Ñтовпчика; цим можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð·Ð±Ñ–Ð»ÑŒÑˆÐµÐ½Ð½Ñ ÑˆÐ¸Ñ€Ð¸Ñ‚Ð¸
+Ñтовпчиків, подібних до WCHAN (\fBps \-o pid,\:wchan=\:WIDE\-\:WCHAN\-\:COLUMN \-o comm\fP). Також можна ÑкориÑтатиÑÑ Ñвним визначеннÑм ширини (\fBps opid,\:wchan:42,\:cmd\fP). Поведінка \fBps \-o pid=X,\:comm=Y\fP Ñ” різною у різних
+ÑиÑтемах; дані може бути виведено в один Ñтовпчик із назвою «X,\:comm=Y» або
+у два Ñтовпчики із назвами «X» та «Y». СкориÑтайтеÑÑ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ð¼Ð° параметрами
+\fB\-o\fP, Ñкщо не певні щодо результатів. СкориÑтайтеÑÑ Ð·Ð¼Ñ–Ð½Ð½Ð¾ÑŽ Ñередовища
+\fBPS_FORMAT\fP Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±Ð°Ð¶Ð°Ð½Ð¾Ð³Ð¾ типового варіанта; DefSysV Ñ– DefBSD Ñ”
+макроÑами, Ñкими можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ типових Ñтовпчиків UNIX або
+BSD.
+.TP
+\fB\-P\fP
+Додати Ñтовпчик із Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ \fBpsr\fP.
+.TP
+\fBs\fP
+Формат показу Ñигналів.
+.TP
+\fBu\fP
+Формат показу, орієнтований на кориÑтувача.
+.TP
+\fBv\fP
+Формат показу віртуальної пам'ÑÑ‚Ñ–.
+.TP
+\fBX\fP
+Формат регіÑтрів.
+.TP
+\fB\-y\fP
+Ðе показувати прапорці, показувати rss заміÑÑ‚ÑŒ addr. Цим параметром можна
+кориÑтуватиÑÑ Ð»Ð¸ÑˆÐµ разом із \fB\-l\fP.
+.TP
+\fBZ\fP
+Додати Ñтовпчик даних щодо захиÑту. Те Ñаме, що Ñ– \fB\-M\fP (Ð´Ð»Ñ SELinux).
+.PD
+.SH "МОДИФІКÐТОРИ ВИВЕДЕÐÐЯ"
+.TP
+\fBc\fP
+Показати Ñправжню назву команди. Ð¦Ñ Ð½Ð°Ð·Ð²Ð° Ñ” похідною від назви виконуваного
+файла, а не від Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ argv. Таким чином, аргументи команди та уÑÑ– внеÑені
+до них зміни показано не буде. Цей параметр, фактично, перетворює ключове
+Ñлово Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ \fBargs\fP на ключове Ñлово Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ \fBcomm\fP. Він
+кориÑний у поєднанні із параметром Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ \fB\-f\fP та різноманітними
+параметрами Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ Ñтилі BSD, Ñкі, зазвичай, призводÑÑ‚ÑŒ до показу
+аргументів команди. Див. параметр \fB\-f\fP, ключове Ñлово Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ \fBargs\fP
+та ключове Ñлово Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ \fBcomm\fP.
+.TP
+\fB\-\-cols\fP\fI\ n\fP
+Ð’Ñтановити ширину екрана.
+.TP
+\fB\-\-columns\fP\fI\ n\fP
+Ð’Ñтановити ширину екрана.
+.TP
+\fB\-\-cumulative\fP
+Включити деÑкі дані завершених дочірніх процеÑів (Ñк Ñуму із батьківÑьким).
+.TP
+.TP
+\fB\-D\fP\fI\ формат\fP
+Ð’Ñтановити Ð´Ð»Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñƒ дати Ð¿Ð¾Ð»Ñ \fBlstart\fP Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fIформат\fP. Цей формат
+буде оброблено \fBstrftime\fP(3). Ð—Ð°Ð¿Ð¸Ñ Ð¼Ð°Ñ” не перевищувати у довжину 24
+Ñимволів, щоб не порушувати Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñтовпчиків.
+.TP
+\fB\-\-date\-format\fP\fI\ формат\fP
+Те Ñаме, що Ñ– \fB\-D\fP.
+.TP
+\fBe\fP
+Показати Ñередовище піÑÐ»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸.
+.TP
+\fBf\fP
+ВивеÑти ієрархію (ліÑ) процеÑів у форматі риÑунка ASCII.
+.TP
+\fB\-\-forest\fP
+Дерево процеÑів у форматі риÑунка ASCII.
+.TP
+\fBh\fP
+Без заголовка (боа один заголовок на екран у випадку BSD). Параметр \fBh\fP
+може ÑпричинÑти проблеми. У Ñтандартній \fBps\fP Ð´Ð»Ñ BSD цей параметр
+викориÑтано Ð´Ð»Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÐ° на кожній Ñторінці виведених даних, але
+у Ñтарому \fBps\fP Ð´Ð»Ñ Linux цей параметр повніÑÑ‚ÑŽ вимикає заголовок. У цій
+верÑÑ–Ñ— \fBps\fP реалізовано верÑÑ–ÑŽ Ð´Ð»Ñ Linux — не виводити заголовок, Ñкщо не
+вибрано варіант Ð´Ð»Ñ BSD, Ð´Ð»Ñ Ñкого буде виведено один заголовок на кожній
+Ñторінці виведених даних. Ðезалежно від поточного варіанта, ви можете
+ÑкориÑтатиÑÑ Ð´Ð¾Ð²Ð³Ð¸Ð¼Ð¸ верÑÑ–Ñми параметрів, \fB\-\-headers\fP Ñ– \fB\-\-no\-headers\fP,
+щоб увімкнути Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð¾Ð»Ð¾Ð²ÐºÑ–Ð² на кожній Ñторінці або вимкнути заголовки
+взагалі, відповідно.
+.TP
+\fB\-H\fP
+Показати ієрархію процеÑів (ліÑ).
+.TP
+\fB\-\-headers\fP
+Повторювати Ñ€Ñдки заголовка, по одному на виведену Ñторінку.
+.TP
+\fBk\fP\fI\ ÑпецифікаціÑ\fP
+Вказати варіант упорÑдкуваннÑ. СинтакÑÐ¸Ñ Ð·Ð°Ð¿Ð¸Ñу такий:
+[\fB+\fP|\fB\-\fP]\fIключ\/.RB [,[ + | \- ].IR ключ [,...]].\fP Багатолітерний ключ
+можна вибрати зі ÑпиÑку у розділі \fBСТÐÐДÐРТÐІ СПЕЦИФІКÐТОРИ ФОРМÐТІВ\fP. Символ «+» Ñ” необов'Ñзковим, оÑкільки типовим порÑдком Ñ” порÑдок
+за зроÑтаннÑм чиÑлових або лекÑикографічних значень. Те Ñаме, що Ñ–
+\fB\-\-sort\fP.
+.RS 8
+.IP
+Приклади:
+.br
+\fBps jaxkuid,\-ppid,+pid\fP
+.br
+\fBps axk comm o comm,args\fP
+.br
+\fBps kstart_time \-ef\fP
+.RE
+.TP
+\fB\-\-lines\fP\fI\ n\fP
+Ð’Ñтановити виÑоту екрана.
+.TP
+\fBn\fP
+ЧиÑлове Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð»Ñ WCHAN Ñ– USER (включно із уÑіма типами UID Ñ– GID).
+.TP
+\fB\-\-no\-headers\fP
+Ðе виводити Ñ€Ñдок заголовка взагалі. \fB\-\-no\-heading\fP Ñ” альтернативою длÑ
+цього параметра.
+.TP
+\fBO\fP\fI\ порÑдок\fP
+Варіант упорÑÐ´ÐºÑƒÐ²Ð°Ð½Ð½Ñ (перевантажений). Параметр \fBO\fP BSD може працювати Ñк
+\fB\-\-sort\fP (визначений кориÑтувачем формат Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð· деÑкими попередньо
+визначеними типовими полÑми) або бути викориÑтаним Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ
+упорÑдкуваннÑ. Ð”Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ð²ÐµÐ´Ñ–Ð½ÐºÐ¸ цього параметра буде викориÑтано
+евриÑтику. Ð”Ð»Ñ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ Ð±Ð°Ð¶Ð°Ð½Ð¾Ñ— поведінки (упорÑÐ´ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾
+форматуваннÑ) вкажіть параметр у ÑкийÑÑŒ інший ÑпоÑіб (наприклад, з \fB\-O\fP або
+\fB\-\-sort\fP).
+.IP
+Ð”Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑдковуваннÑ, заÑтарілим ÑинтакÑиÑом параметра \fBO\fP BSD Ñ” такий:
+\fBO\fP[\fB+\fP|\fB\-\fP]\fIk1\fP[,[\fB+\fP|\fB\-\fP]\fIk2\fP[,...]]. Він упорÑдковує ÑпиÑок
+процеÑів за багаторівневим правилом, Ñке визначає поÑлідовніÑÑ‚ÑŒ однолітерних
+коротких ключів \fIk1\fP, \fIk2\fP, ..., Ñкі опиÑано у розділі \fBЗÐСТÐРІЛІ КЛЮЧІ УПОРЯКОВУВÐÐÐЯ\fP нижче. У поточній верÑÑ–Ñ— «+» Ñ” необов'Ñзковим, оÑкільки
+проÑто повторює типовий напрÑмок упорÑдковуваннÑ, але він може допомогти
+відрізнити упорÑÐ´ÐºÑƒÐ²Ð°Ð½Ð½Ñ \fBO\fP від формату \fBO\fP. Символ «\-» змінює напрÑмок
+упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð»Ð¸ÑˆÐµ Ð´Ð»Ñ ÐºÐ»ÑŽÑ‡Ð°, перед Ñким його вказано.
+.TP
+\fB\-\-rows\fP\fI\ n\fP
+Ð’Ñтановити виÑоту екрана.
+.TP
+\fBS\fP
+ПідÑумувати дані, зокрема викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора, від завершених дочірніх
+процеÑів до батьківÑького процеÑу. КориÑно Ð´Ð»Ñ Ð°Ð½Ð°Ð»Ñ–Ð·Ñƒ ÑиÑтеми, де
+батьківÑький Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¿ÐµÑ€Ñ–Ð¾Ð´Ð¸Ñ‡Ð½Ð¾ відгалужує короткотривалі дочірні процеÑи длÑ
+Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿ÐµÐ²Ð½Ð¸Ñ… завдань.
+.TP
+\fB\-\-sort\fP\fI\ ÑпецифікаціÑ\fP
+Вказати варіант упорÑÐ´ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¡Ð¸Ð½Ñ‚Ð°ÐºÑÐ¸Ñ Ð·Ð°Ð¿Ð¸Ñу такий:
+[\fI+\fP|\fI\-\fP]\fIключ\fP[,[\fB+\fP|\fB\-\fP]\fIключ\fP[,...]]. Багатолітерний ключ можна
+вибрати зі ÑпиÑку у розділі \fBСТÐÐДÐРТÐІ СПЕЦИФІКÐТОРИ ФОРМÐТІВ\fP. Символ «+»
+Ñ” необов'Ñзковим, оÑкільки типовим порÑдком Ñ” порÑдок за зроÑтаннÑм чиÑлових
+або лекÑикографічних значень. Те Ñаме, що Ñ– \fBk\fP. Приклад: \fBps jax \-\-sort=\:uid,\:\-ppid,\:+pid\fP
+.TP
+\fB\-\-signames\fP
+ВивеÑти маÑки Ñигналів з викориÑтаннÑм Ñкорочених назв Ñигналів Ñ– розгорнути
+Ñтовпчик. Якщо ширина Ñтовпчика не дає показати уÑÑ– Ñигнали, Ð·Ð°Ð¿Ð¸Ñ Ñтовпчика
+завершуватиметьÑÑ Ð¿Ð»ÑŽÑом, «\fI+\fP». Стовпчики, що міÑÑ‚ÑÑ‚ÑŒ лише дефіÑ, не мають
+Ñигналів.
+.TP
+\fBw\fP
+Широке виведеннÑ. СкориÑтайтеÑÑ Ñ†Ð¸Ð¼ параметром двічі, щоб вÑтановити
+необмежену ширину.
+.TP
+\fB\-w\fP
+Широке виведеннÑ. СкориÑтайтеÑÑ Ñ†Ð¸Ð¼ параметром двічі, щоб вÑтановити
+необмежену ширину.
+.TP
+\fB\-\-width\fP\fI\ n\fP
+Ð’Ñтановити ширину екрана.
+.PD
+.SH "ПОКÐЗ ПОТОКІВ ОБРОБКИ"
+.TP
+\fBH\fP
+Показати потоки обробки так, наче вони Ñ” процеÑами.
+.TP
+\fB\-L\fP
+Показати потоки, можливо, зі Ñтовпчиками LWP Ñ– NLWP.
+.TP
+\fBm\fP
+Показати потоки обробки піÑÐ»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑів.
+.TP
+\fB\-m\fP
+Показати потоки обробки піÑÐ»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑів.
+.TP
+\fB\-T\fP
+Показати потоки обробки, можливо, зі Ñтовпчиком SPID.
+.SH "ІÐШІ ВІДОМОСТІ"
+.TP
+\fB\-\-help\fP\fI\ розділ\fP
+ВивеÑти довідкове повідомленнÑ. Ðргументом \fIрозділ\fP може бути одна з літер
+\fIs\fPimple (проÑте), \fIl\fPist (ÑпиÑок), \fIo\fPutput (виведеннÑ), \fIt\fPhreads
+(потоки), \fIm\fPisc (різне) або \fIa\fPll (уÑе). Ðргумент можна Ñкоротити до
+однієї з підкреÑлених літер, оÑÑŒ так: s\^|\^l\^|\^o\^|\^t\^|\^m\^|\^a.
+.TP
+\fB\-\-info\fP
+ВивеÑти діагноÑтичні дані.
+.TP
+\fBL\fP
+СпиÑок уÑÑ–Ñ… Ñпецифікаторів формату.
+.TP
+\fBV\fP
+ВивеÑти верÑÑ–ÑŽ procps\-ng.
+.TP
+\fB\-V\fP
+ВивеÑти верÑÑ–ÑŽ procps\-ng.
+.TP
+\fB\-\-version\fP
+ВивеÑти верÑÑ–ÑŽ procps\-ng.
+.SH ЗÐУВÐЖЕÐÐЯ
+Ð¦Ñ Ð²ÐµÑ€ÑÑ–Ñ \fBps\fP працює на оÑнові Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð²Ñ–Ñ€Ñ‚ÑƒÐ°Ð»ÑŒÐ½Ð¸Ñ… файлів у /proc. ЦÑ
+верÑÑ–Ñ \fBps\fP не потребує Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ setuid kmem або інших привілеїв длÑ
+запуÑку. Ðе надавайте цій верÑÑ–Ñ— \fBps\fP ніÑких додаткових прав доÑтупу.
+.PP
+ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора у цій верÑÑ–Ñ— буде показано у відÑотках чаÑу, Ñкий
+витрачено на Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ під Ñ‡Ð°Ñ Ð¿Ð¾Ð²Ð½Ð¾Ð³Ð¾ чаÑу Ð¶Ð¸Ñ‚Ñ‚Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу. Це не
+ідеально, Ñ– це не узгоджуєтьÑÑ Ñ–Ð· Ñтандартами, з Ñкими узгоджуєтьÑÑ \fBps\fP у
+інших аÑпектах. При цьому, загальне чиÑло викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора наврÑд чи
+точно дорівнюватиме 100%.
+.PP
+ÐŸÐ¾Ð»Ñ SIZE Ñ– RSS не враховують деÑкі чаÑтини процеÑу, зокрема таблиці
+Ñторінок, Ñтек Ñдра, Ñтруктуру thread_info та Ñтруктуру task_struct. Це,
+зазвичай, принаймні 20\ КіБ пам'ÑÑ‚Ñ–, Ñка завжди Ñ” резидентною. SIZE Ñ”
+віртуальним розміром процеÑу (код+\:дані+\:Ñтек).
+.PP
+ПроцеÑи, Ñкі позначено Ñк <defunct>, Ñ” мертвими процеÑами (так
+званими «зомбі»), Ñкі лишаютьÑÑ, оÑкільки їхній батьківÑький Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ðµ
+завершив їхню роботу належним чином. Ці процеÑи буде знижено \fIinit\fP(8),
+Ñкщо завершить роботу батьківÑький процеÑ.
+.PP
+Якщо довжина імені кориÑтувача перевищує ширину Ñтовпчика на диÑплеї, ім'Ñ
+кориÑтувача буде обрізано. Ð”Ð»Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¸ ÑкориÑтайтеÑÑ
+параметрами Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ \fB\-o\fP Ñ– \fB\-O\fP.
+.PP
+Ðе рекомендуємо кориÑтуватиÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°Ð¼Ð¸ команд, зокрема \fBps \-aux\fP,
+оÑкільки це призводить до неузгодженоÑÑ‚Ñ– у двох різних
+Ñтандартах. Відповідно до Ñтандартів POSIX Ñ– UNIX, наведена команда проÑить
+програму показати уÑÑ– процеÑи з терміналом (загалом, команд, Ñкі запущено
+кориÑтувачами) Ñ– уÑÑ– процеÑи, влаÑником Ñких Ñ” кориÑтувач із іменем
+\fIx\fP. Якщо цього кориÑтувача не Ñ–Ñнує, \fBps\fP припуÑкатиме, що ви наказали
+виконати «\fBps\fP \fIaux\fP».
+.SH "ПРÐПОРЦІ ПРОЦЕСУ"
+Суму цих значень буде показано у Ñтовпчику «F», Ñкий надаєтьÑÑ
+Ñпецифікатором Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ \fBflags\fP:
+.PP
+.RS 8
+.PD 0
+.TP 5
+1
+відгалужено, але не виконано
+.TP
+4
+викориÑтано права доÑтупу ÑуперкориÑтувача
+.PD
+.RE
+.SH "КОДИ СТÐÐУ ПРОЦЕСІВ"
+Тут наведено різні значеннÑ, Ñкі показують Ñпецифікатори Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ \fBs\fP,
+\fBstat\fP Ñ– \fBstate\fP (заголовок «STAT» або «S»), Ð´Ð»Ñ Ð¾Ð¿Ð¸Ñу Ñтану процеÑу:
+.PP
+.RS 8
+.PD 0
+.TP 5
+D
+непридатний до Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ð½Ð½Ñ Ñон (зазвичай, введеннÑ\-виведеннÑ)
+.TP
+I
+БездіÑльний потік обробки Ñдра
+.TP
+R
+запущено або може бути запущено (у черзі запуÑку)
+.TP
+S
+придатний до Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ð½Ð½Ñ Ñон (Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð¿Ð¾Ð´Ñ–Ñ—)
+.TP
+T
+зупинено Ñигналом ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñми
+.TP
+t
+зупинено заÑобом діагноÑтики під Ñ‡Ð°Ñ Ñ‚Ñ€Ð°ÑуваннÑ
+.TP
+W
+поділ на Ñторінки (не Ñ” чинним з чаÑу Ñдер 2.6.xx)
+.TP
+X
+мертвий (таке не має бути показано)
+.TP
+Z
+неробочий Ð¿Ñ€Ð¾Ñ†ÐµÑ («зомбі»), перерваний, але не вилучений його батьківÑьким
+процеÑом
+.PD
+.RE
+.PP
+Ð”Ð»Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ–Ð² BSD, Ñкщо викориÑтано ключове Ñлово \fBstat\fP, може бути показано
+додаткові Ñимволи:
+.PP
+.RS 8
+.PD 0
+.TP 5
+<
+виÑокопріоритетний (нелоÑльний до інших кориÑтувачів)
+.TP
+N
+низькопріоритетний (лоÑльний до інших кориÑтувачів)
+.TP
+L
+має заблоковані у пам'ÑÑ‚Ñ– Ñторінки (Ð´Ð»Ñ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€Ñ–Ð² реального чаÑу та
+нетипових ідентифікаторів)
+.TP
+s
+Ñ” лідером ÑеанÑу
+.TP
+l
+Ñ” багатопотоковим (викориÑтовує CLONE_THREAD, подібно до того, Ñк це роблÑÑ‚ÑŒ
+pthreads NPTL)
+.TP
++
+перебуває у групі процеÑів переднього плану
+.PD
+.RE
+.SH "ЗÐСТÐРІЛІ КЛЮЧІ УПОРЯДКОВУВÐÐÐЯ"
+Ці ключі викориÑтовують разом із параметром \fBO\fP BSD (Ñкщо його
+викориÑтовують Ð´Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑдковуваннÑ). Параметр \fB\-\-sort\fP GNU не викориÑтовує
+ці ключі, але опиÑані нижче Ñпецифікатори з розділу \fBСТÐÐДÐРТÐІ СПЕЦИФІКÐТОРИ ФОРМÐТІВ\fP. Зауважте, що значеннÑ, Ñкі викориÑтано в
+упорÑдковуванні, Ñ” внутрішніми значеннÑми, Ñкі викориÑтовує \fBps\fP, а не
+«оброблені» значеннÑ, Ñкі викориÑтовують у деÑких полÑÑ… форматуваннÑ
+Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ (наприклад, у полі термінала упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÑ”Ñ‚ÑŒÑÑ Ð·Ð°
+номером приÑтрою, а не за показаною назвою термінала). Передайте каналом
+виведені \fBps\fP дані до програми \fBsort\fP(1), Ñкщо вам хочетьÑÑ ÑƒÐ¿Ð¾Ñ€Ñдкувати
+дані за обробленими значеннÑми.
+.TS
+l l lw(3i).
+\fBКЛЮЧ\fP \fBДОВГИЙ\fP \fBОПИС\fP
+c cmd проÑта назва виконуваного файла
+C pcpu викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора
+f flags прапорці, Ñк у довгому форматі Ð¿Ð¾Ð»Ñ F
+g pgrp ідентифікатор групи процеÑів
+G tpgid ідентифікатор групи процеÑів керівного термінала
+j cutime накопичувальний Ñ‡Ð°Ñ ÐºÐ¾Ñ€Ð¸Ñтувача
+J cstime накопичувальний Ñ‡Ð°Ñ ÑиÑтеми
+k utime Ñ‡Ð°Ñ ÐºÐ¾Ñ€Ð¸Ñтувача
+m min_flt кількіÑÑ‚ÑŒ вторинних помилок Ñторінок
+M maj_flt кількіÑÑ‚ÑŒ первинних помилок Ñторінок
+n cmin_flt накопичені вторинні помилки Ñторінок
+N cmaj_flt накопичені оÑновні помилки Ñторінок
+o session ідентифікатор ÑеанÑу
+p pid ідентифікатор процеÑу
+P ppid ідентифікатор батьківÑького процеÑу
+r rss розмір оперативного набору
+R resident Ñторінки у резидентній пам'ÑÑ‚Ñ–
+s size розмір пам'ÑÑ‚Ñ– у кілобайтах
+S share кількіÑÑ‚ÑŒ Ñторінок Ñпільного викориÑтаннÑ
+t tty номер приÑтрою керівного термінала
+T start_time момент чаÑу, коли Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±ÑƒÐ»Ð¾ запущено
+U uid номер ідентифікатора кориÑтувача
+u кориÑтувач Ñ–Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача
+v vsize загальний розмір ВМ у КіБ
+y priority пріоритетніÑÑ‚ÑŒ Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ Ñдрі
+.\"K stime system time (conflict, system vs. start time)
+.TE
+.SH "ДЕСКРИПТОРИ ФОРМÐТУ AIX"
+У цій верÑÑ–Ñ— \fBps\fP передбачено підтримку деÑкрипторів форматів AIX, Ñкі
+працюють дещо подібно до кодів Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ \fIprintf\fP(1) Ñ–
+\fIprintf\fP(3). Ðаприклад, звичайне типове Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° отримати оÑÑŒ так:
+\fBps \-eo "%p %y %x %c"\fP. Коди \fBNORMAL\fP опиÑано у наÑтупному розділі.
+.TS
+l l l.
+\fBCODE\fP \fBNORMAL\fP \fBHEADER\fP
+%C pcpu %CPU
+%G group GROUP
+%P ppid PPID
+%U кориÑтувач USER
+%a args КОМÐÐДÐ
+%c comm КОМÐÐДÐ
+%g rgroup RGROUP
+%n nice NI
+%p pid PID
+%r pgid PGID
+%t etime ELAPSED
+%u ruser RUSER
+%x time TIME
+%y tty TTY
+%z vsz VSZ
+.TE
+.SH "СТÐÐДÐРТÐІ СПЕЦИФІКÐТОРИ ФОРМÐТІВ"
+Ðижче наведено різні ключові Ñлова, Ñкими можна ÑкориÑтатиÑÑ Ð´Ð»Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ
+форматом Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ (наприклад, з параметром \fB\-o\fP) або упорÑдковуваннÑ
+вибраних процеÑів за допомогою параметра \fB\-\-sort\fP у Ñтилі GNU.
+.PP
+Приклад: \fBps \-eo pid,\:user,\:args \-\-sort user\fP
+.PP
+У цій верÑÑ–Ñ— \fBps\fP виконано Ñпробу реалізувати Ñ€Ð¾Ð·Ð¿Ñ–Ð·Ð½Ð°Ð²Ð°Ð½Ð½Ñ Ð±Ñ–Ð»ÑŒÑˆÐ¾ÑÑ‚Ñ–
+ключових Ñлів, Ñкі викориÑтовують у інших реалізаціÑÑ… \fBps\fP.
+.PP
+Пробіли можуть міÑтитиÑÑ Ñƒ таких визначених кориÑтувачем Ñпецифікаторах
+форматів: \fBargs\fP,\fBcmd\fP,\fBcomm\fP,\fBcommand\fP,\fBfname\fP,\fBucmd\fP,\fBucomm\fP,
+\fBlstart\fP,\fBbsdstart\fP,\fBstart\fP.
+.PP
+ДеÑкими ключовими Ñловами не можна ÑкориÑтатиÑÑ Ð´Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑдковуваннÑ.
+
+.\" #######################################################################
+.\" lB1 lB1 lB1 lB1 s s s
+.\" lB1 l1 l1 l1 s s s.
+.\"
+.\" lB1 lB1 lBw(5.5i)
+.\" lB1 l1 l.
+.\"
+.TS
+expand;
+l1B l1B lBw(\n[ColSize]n)
+l1B l1 l.
+CODE HEADER ОПИС
+
+%cpu %CPU T{
+викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑом процеÑора у форматі «##.#». У поточній верÑÑ–Ñ— це чаÑтка від Ð´Ñ–Ð»ÐµÐ½Ð½Ñ Ð²Ð¸Ñ‚Ñ€Ð°Ñ‡ÐµÐ½Ð¾Ð³Ð¾ на Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу чаÑу на чаÑ, протÑгом Ñкого Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¿Ñ€Ð°Ñ†ÑŽÑ” (Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Â«Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора/Ñправжній чаÑ»), виражене у відÑотках. Дуже чаÑто загальна Ñума таких значень Ñ” меншою за 100% (альтернатива — \fBpcpu\fP).
+T}
+
+%mem %MEM T{
+Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ резидентного набору процеÑу до фізичної пам'ÑÑ‚Ñ– комп'ютера, виражене у відÑотках (альтернатива — \fBpmem\fP).
+T}
+
+ag_id AGID T{
+Ідентифікатор автогрупи, Ñкий пов'Ñзано із процеÑом, що працює у поєднанні із планувальником CFS Ð´Ð»Ñ ÑƒÐ´Ð¾ÑÐºÐ¾Ð½Ð°Ð»ÐµÐ½Ð½Ñ ÑˆÐ²Ð¸Ð´ÐºÐ¾Ð´Ñ–Ñ— інтерактивної Ñтільниці.
+T}
+
+ag_nice AGNI T{
+Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– автогрупи, Ñке ÑтоÑуєтьÑÑ Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÑÑ–Ñ… процеÑів у цій групі.
+T}
+
+args КОМÐÐДРT{
+команда із уÑіма аргументами Ñк Ñ€Ñдок.
+Може бути показано зміни у аргументах.
+Виведені до цього Ñтовпчика дані можуть міÑтити пробіли.
+ПроцеÑ, Ñкий позначено запиÑом <defunct> Ñ” чаÑтково мертвим,
+таким, що очікує на повне Ð·Ð½Ð¸Ñ‰ÐµÐ½Ð½Ñ Ð±Ð°Ñ‚ÑŒÐºÑ–Ð²Ñьким процеÑом.
+Іноді аргументи процеÑу можуть виÑвитиÑÑ Ð½ÐµÐ´Ð¾Ñтупними. Коли таке траплÑєтьÑÑ,
+\fBps\fP
+виведе назву виконуваного файла у квадратних дужках (альтернатива – \fBcmd\fP, \fBcommand\fP).
+Див. також ключове Ñлово Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ \fBcomm\fP, параметр \fB\-f\fP та параметр \fBc\fP.
+.br
+Якщо вказано оÑтаннім, цей Ñтовпчик буде розтÑгнуто до краю диÑплеÑ. Якщо \fBps\fP не вдаÑÑ‚ÑŒÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ ширину диÑплеÑ, наприклад, коли виведені дані буде переÑпрÑмовано (каналом) до файла або іншої програми, ширина Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð·Ð°Ð»Ð¸ÑˆÐ¸Ñ‚ÑŒÑÑ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ÑŽ (вона може дорівнювати 80, бути необмеженою, визначатиÑÑ Ð·Ð¼Ñ–Ð½Ð½Ð¾ÑŽ \fBTERM\fP тощо). У цьому випадку Ð´Ð»Ñ Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ð¸ показу можна ÑкориÑтатиÑÑ Ð·Ð¼Ñ–Ð½Ð½Ð¾ÑŽ Ñередовища \fBCOLUMNS\fP або параметром \fB\-\-cols\fP. Ð”Ð»Ñ ÐºÐ¾Ñ€Ð¸Ð³ÑƒÐ²Ð°Ð½Ð½Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ð¸ також можна ÑкориÑтатиÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ \fBw\fP або \fB\-w\fP.
+T}
+
+blocked BLOCKED T{
+маÑка блокованих Ñигналів, див. \fIsignal\fP(7). Відповідно до ширини полÑ, буде показано 32\- або 64\-бітову маÑку у шіÑтнадцÑтковому форматі, Ñкщо не викориÑтано параметр \fB\-\-signames\fP (альтернатива – \fBsig_block\fP, \fBsigmask\fP).
+T}
+
+bsdstart START T{
+Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку команди Якщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±ÑƒÐ»Ð¾ запущено менше ніж 24 години тому, буде виведено дані у форматі «ГГ:ХХ», інакше, дані буде виведено у форматі « Ммм дд» (де «Ммм» — трилітерне ÑÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸ міÑÑцÑ). Див. також \fBlstart\fP, \fBstart\fP, \fBstart_time\fP Ñ– \fBstime\fP.
+T}
+
+bsdtime TIME T{
+накопичувальний Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора, кориÑтувач + ÑиÑтема. Форматом показу, зазвичай, Ñ” «ХХХ:СС», але його можна поÑунути праворуч, Ñкщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñтав понад 999 хвилин чаÑу процеÑора.
+T}
+
+c C T{
+викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора. У поточній верÑÑ–Ñ— це ціле Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ відÑотках викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора до чаÑу Ð¶Ð¸Ñ‚Ñ‚Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу (див. \fB%cpu\fP).
+T}
+
+caught CAUGHT T{
+маÑка перехоплених, див. \fIsignal\fP(7). Відповідно до ширини полÑ, буде показано 32\- або 64\-бітову маÑку у шіÑтнадцÑтковому форматі, Ñкщо не викориÑтано параметр \fB\-\-signames\fP (альтернатива – \fBsig_catch\fP, \fBsigcatch\fP).
+T}
+
+cgname CGNAME T{
+назва керівних груп диÑплеÑ, до Ñких належить процеÑ.
+T}
+
+cgroup CGROUP T{
+керівні групи диÑплеÑ, до Ñких належить процеÑ.
+T}
+
+cgroupns CGROUPNS T{
+Унікальний номер inode, що опиÑує проÑÑ‚Ñ–Ñ€ назв, до Ñкого належить процеÑ. Див. \fInamespaces\fP(7).
+T}
+
+class CLS T{
+ÐºÐ»Ð°Ñ Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу. (альтернатива — \fBpolicy\fP, \fBcls\fP). Можливими значеннÑми Ð¿Ð¾Ð»Ñ Ñ” такі:
+.sp 1
+.in +9n
+\- не повідомлено
+.br
+TS SCHED_OTHER
+.br
+FF SCHED_FIFO
+.br
+RR SCHED_RR
+.br
+B SCHED_BATCH
+.br
+ISO SCHED_ISO
+.br
+IDL SCHED_IDLE
+.br
+DLN SCHED_DEADLINE
+.br
+? невідоме значеннÑ
+.in
+T}
+
+cls CLS T{
+ÐºÐ»Ð°Ñ Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу. (альтернатива — \fBpolicy\fP, \fBcls\fP). Можливими значеннÑми Ð¿Ð¾Ð»Ñ Ñ” такі:
+.sp 1
+.in +9n
+\- не повідомлено
+.br
+TS SCHED_OTHER
+.br
+FF SCHED_FIFO
+.br
+RR SCHED_RR
+.br
+B SCHED_BATCH
+.br
+ISO SCHED_ISO
+.br
+IDL SCHED_IDLE
+.br
+DLN SCHED_DEADLINE
+.br
+? невідоме значеннÑ
+.in
+T}
+
+cmd CMD T{
+див.
+\fBargs\fP
+(альтернатива –
+\fBargs\fP, \fBcommand\fP).
+T}
+
+comm КОМÐÐДРT{
+назва команди (лише назва виконуваного файла). Виведені до цього Ñтовпчика дані можуть міÑтити пробіли. (альтернативи – \fBucmd\fP, \fBucomm\fP). Див. також ключове Ñлово Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ \fBargs\fP, параметр \fB\-f\fP та параметр \fBc\fP.
+.br
+Якщо вказано оÑтаннім, цей Ñтовпчик буде розтÑгнуто до краю диÑплеÑ. Якщо \fBps\fP не вдаÑÑ‚ÑŒÑÑ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð¸Ñ‚Ð¸ ширину диÑплеÑ, наприклад, коли виведені дані буде переÑпрÑмовано (каналом) до файла або іншої програми, ширина Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð·Ð°Ð»Ð¸ÑˆÐ¸Ñ‚ÑŒÑÑ Ð½ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ÑŽ (вона може дорівнювати 80, бути необмеженою, визначатиÑÑ Ð·Ð¼Ñ–Ð½Ð½Ð¾ÑŽ \fBTERM\fP тощо). У цьому випадку Ð´Ð»Ñ Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ð¸ показу можна ÑкориÑтатиÑÑ Ð·Ð¼Ñ–Ð½Ð½Ð¾ÑŽ Ñередовища \fBCOLUMNS\fP або параметром \fB\-\-cols\fP. Ð”Ð»Ñ ÐºÐ¾Ñ€Ð¸Ð³ÑƒÐ²Ð°Ð½Ð½Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ð¸ також можна ÑкориÑтатиÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ \fBw\fP або \fB\-w\fP.
+T}
+
+command КОМÐÐДРT{
+Див.
+\fBargs\fP.
+(альтернатива –
+\fBargs\fP, \fBcommand\fP).
+T}
+
+cp CP T{
+викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора у проміле (деÑÑтих відÑотка) (див. \fB%cpu\fP).
+T}
+
+cputime TIME T{
+накопичувальний Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора у форматі «[ДД\-]гг:Ñ…Ñ…:ÑÑ» (альтернатива — \fBtime\fP).
+T}
+
+cputimes TIME T{
+накопичувальний Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора у Ñекундах (альтернатива – \fBtimes\fP).
+T}
+
+cuc %CUC T{
+ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора процеÑом, включно із завершеними дочірніми процеÑами, у розширеному форматі «##.###».
+(див. також
+\fB%cpu\fP,
+\fBc\fP,
+\fBcp\fP,
+\fBcuu\fP,
+\fBpcpu\fP).
+T}
+
+cuu %CUU T{
+ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора процеÑом, у розширеному форматі «##.###».
+(див. також
+\fB%cpu\fP,
+\fBc\fP,
+\fBcp\fP,
+\fBcuc\fP,
+\fBpcpu\fP).
+T}
+
+drs DRS T{
+об'єм резидентного набору, обÑÑг приватної пам'ÑÑ‚Ñ–, Ñкий \fIзарезервовано\fP процеÑом.
+Також називають DATA. Таку пам'ÑÑ‚ÑŒ ще не може бути пов'Ñзано \fBrss\fP, але Ñ—Ñ— буде завжди включено в обÑÑг \fBvsz\fP.
+
+T}
+
+egid EGID T{
+чиÑловий ідентифікатор ефективної групи процеÑу у форматі деÑÑткового цілого чиÑла (альтернатива – \fBgid\fP).
+T}
+
+egroup EGROUP T{
+ідентифікатор ефективної групи процеÑу. Це буде текÑтовий ідентифікатор групи, Ñкщо його можна отримати, Ñ– поле Ñ” доÑтатньо широким, або чиÑлове предÑтавленнÑ, Ñкщо це не так. (альтернатива – \fBgroup\fP).
+T}
+
+eip EIP T{
+вказівник на інÑтрукцію. З чаÑу поÑви Ñдра 4.9.xx буде занулено, Ñкщо Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð½Ðµ завершує роботу
+або ÑиÑтема Ñтворює дамп Ñдра Ð´Ð»Ñ Ð½ÑŒÐ¾Ð³Ð¾.
+T}
+
+esp ESP T{
+вказівник на Ñтек. З чаÑу поÑви Ñдра 4.9.xx буде занулено, Ñкщо Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð½Ðµ завершує роботу
+або ÑиÑтема Ñтворює дамп Ñдра Ð´Ð»Ñ Ð½ÑŒÐ¾Ð³Ð¾.
+T}
+
+etime ELAPSED T{
+ЧаÑ, що Ñплинув з чаÑу запуÑку процеÑу у формі [[ДД\-]гг:]Ñ…Ñ…:ÑÑ.
+T}
+
+etimes ELAPSED T{
+чаÑ, що минув з моменту запуÑку процеÑу, у Ñекундах.
+T}
+
+euid EUID T{
+ідентифікатор ефективного кориÑтувача (альтернатива – \fBuid\fP).
+T}
+
+euser EUSER T{
+ефективне ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача. Це буде текÑтовий ідентифікатор кориÑтувача, Ñкщо його можна отримати Ñ– поле Ñ” доÑтатньо широким, або чиÑлове предÑтавленнÑ, Ñкщо це не так. Ð”Ð»Ñ Ð¿Ñ€Ð¸Ð¼ÑƒÑового Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´ÐµÑÑткового предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° ÑкориÑтатиÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ \fBn\fP. (альтернатива – \fBuname\fP, \fBuser\fP).
+T}
+
+exe EXE T{
+шлÑÑ… до виконуваного файла. КориÑно, Ñкщо шлÑÑ… не може бути виведено за допомогою параметрів Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ \fBcmd\fP, \fBcomm\fP або \fBargs\fP.
+T}
+
+f F T{
+прапорці, Ñкі пов'Ñзано із процеÑом, Див. розділ \fBПРÐПОРЦІ ПРОЦЕСУ\fP. (альтернатива – \fBflag\fP, \fBflags\fP).
+T}
+
+fgid FGID T{
+ідентифікатор групи Ð´Ð»Ñ Ð´Ð¾Ñтупу до файлової ÑиÑтеми (альтернатива – \fBfsgid\fP).
+T}
+
+fgroup FGROUP T{
+ідентифікатор групи Ð´Ð»Ñ Ð´Ð¾Ñтупу до файлової ÑиÑтеми. Це буде текÑтовий ідентифікатор групи, Ñкщо його можна отримати, Ñ– поле Ñ” доÑтатньо широким, або чиÑлове предÑтавленнÑ, Ñкщо це не так. (альтернатива – \fBfsgroup\fP).
+T}
+
+flag F T{
+див.
+\fBf\fP
+(альтернатива –
+\fBf\fP, \fBflags\fP).
+T}
+
+flags F T{
+див.
+\fBf\fP
+(альтернатива –
+\fBf\fP, \fBflag\fP).
+T}
+
+fname КОМÐÐДРT{
+перші 8 байтів базової назви виконуваного файла процеÑу. Виведені дані у цьому Ñтовпчику можуть міÑтити пробіли.
+T}
+
+fuid FUID T{
+ідентифікатор кориÑтувача Ð´Ð»Ñ Ð´Ð¾Ñтупу до файлової ÑиÑтеми (альтернатива – \fBfsuid\fP).
+T}
+
+fuser FUSER T{
+ідентифікатор кориÑтувача Ð´Ð»Ñ Ð´Ð¾Ñтупу до файлової ÑиÑтеми. Це буде текÑтовий ідентифікатор кориÑтувача, Ñкщо його можна отримати Ñ– поле Ñ” доÑтатньо широким, або чиÑлове предÑтавленнÑ, Ñкщо це не так.
+T}
+
+gid GID T{
+див. \fBegid\fP (альтернатива \fBegid\fP).
+T}
+
+group GROUP T{
+див. \fBegroup\fP (альтернатива – \fBegroup\fP).
+T}
+
+ignored IGNORED T{
+маÑка ігнорованих Ñигналів, див. \fIsignal\fP(7). Відповідно до ширини полÑ, буде показано 32\- або 64\-бітову маÑку у шіÑтнадцÑтковому форматі, Ñкщо не викориÑтано параметр \fB\-\-signames\fP (альтернатива – \fBsig_ignore\fP, \fBsigignore\fP).
+T}
+
+ipcns IPCNS T{
+Унікальний номер inode, що опиÑує проÑÑ‚Ñ–Ñ€ назв, до Ñкого належить процеÑ. Див. \fInamespaces\fP(7).
+T}
+
+label LABEL T{
+мітка захиÑту, здебільшого викориÑтовують Ð´Ð»Ñ Ð´Ð°Ð½Ð¸Ñ… контекÑту SELinux. Призначено Ð´Ð»Ñ \fIMandatory Access Control\fP («MAC») у виÑокозахищених ÑиÑтемах.
+T}
+
+lstart STARTED T{
+чаÑ, коли було віддано команду. Цей Ð·Ð°Ð¿Ð¸Ñ Ð¼Ð°Ñ‚Ð¸Ð¼Ðµ форму «ДДД ммм ГГ:ХХ:СС РРР»,
+Ñкщо його формат не було змінено за допомогою параметра \fB\-D\fP.
+T}
+
+lsession SESSION T{
+показує ідентифікатор ÑеанÑу входу процеÑу, Ñкщо було включено підтримку systemd.
+T}
+
+luid LUID T{
+показує ідентифікатор входу, Ñкий пов'Ñзано із процеÑом.
+T}
+
+lwp LWP T{
+ідентифікаторів легких процеÑів (потоків) розподілюваного запиÑу (альтернатива – \fBspid\fP, \fBtid\fP). Див. \fBtid\fP, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ.
+T}
+
+lxc LXC T{
+Ðазва контейнера LXC, у Ñкому запущено завданнÑ. Якщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ðµ запущено у контейнері, буде показано Ð´ÐµÑ„Ñ–Ñ («\-»).
+T}
+
+machine MACHINE T{
+показує назву комп'ютера Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑів, Ñкі пов'Ñзано із віртуальною машиною або контейнером, Ñкщо було включено підтримку systemd.
+T}
+
+maj_flt MAJFLT T{
+КількіÑÑ‚ÑŒ оÑновних помилок Ñторінок, Ñкі ÑталиÑÑ Ñ–Ð· цим процеÑом.
+T}
+
+min_flt MINFLT T{
+КількіÑÑ‚ÑŒ вторинних помилок Ñторінок, Ñкі ÑталиÑÑ Ñ–Ð· цим процеÑом.
+T}
+
+mntns MNTNS T{
+Унікальний номер inode, що опиÑує проÑÑ‚Ñ–Ñ€ назв, до Ñкого належить процеÑ. Див. \fInamespaces\fP(7).
+T}
+
+netns NETNS T{
+Унікальний номер inode, що опиÑує проÑÑ‚Ñ–Ñ€ назв, до Ñкого належить процеÑ. Див. \fInamespaces\fP(7).
+T}
+
+ni NI T{
+Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ nice. Діапазон Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ â€” від 19 (найнижча пріоритетніÑÑ‚ÑŒ) до \-20 (найвища пріоритетніÑÑ‚ÑŒ щодо інших), див. \fInice\fP(1) (альтернатива – \fBnice\fP).
+T}
+
+nice NI T{
+див.
+\fBni\fP. \fB(альтернатива\fP
+\fBni\fP).
+T}
+
+nlwp NLWP T{
+кількіÑÑ‚ÑŒ lwps (потоків обробки) у процеÑÑ– (альтернатива – \fBthcount\fP).
+T}
+
+numa NUMA T{
+Вузол, з Ñким пов'Ñзано оÑтанній викориÑтаний процеÑор. Якщо тут показано \fI\-1\fP, дані щодо NUMA Ñ” недоÑтупними.
+T}
+
+nwchan WCHAN T{
+адреÑа функції Ñдра, де Ñпить Ð¿Ñ€Ð¾Ñ†ÐµÑ (ÑкориÑтайтеÑÑ, \fBwchan\fP, Ñкщо вам потрібна назва функції).
+T}
+
+oom OOM T{
+Оцінка виходу за межі доÑтупної пам'ÑÑ‚Ñ–. Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ діапазоні від 0 до +1000, Ñке буде викориÑтано Ð´Ð»Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ завдань, Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñких Ñлід припинити, Ñкщо буде вичерпано пам'ÑÑ‚ÑŒ.
+T}
+
+oomadj OOMADJ T{
+Коефіцієнт ÐºÐ¾Ñ€Ð¸Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ñ…Ð¾Ð´Ñƒ за межі доÑтупної пам'ÑÑ‚Ñ–. ЗначеннÑ, Ñке буде додано до поточного рахунку виходу за межі пам'ÑÑ‚Ñ– (OOM), Ñке потім буде викориÑтано Ð´Ð»Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð¾Ð³Ð¾, Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñкого Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ñлід припинити, Ñкщо пам'ÑÑ‚ÑŒ буде вичерпано.
+T}
+
+ouid OWNER T{
+показує ідентифікатор кориÑтувача Unix влаÑника ÑеанÑу процеÑу, Ñкщо було включено підтримку systemd.
+T}
+
+pcpu %CPU T{
+див. \fB%cpu\fP (альтернатива – \fB%cpu\fP).
+T}
+
+pending PENDING T{
+маÑка Ñигналів черги. Див. \fIsignal\fP(7). Черга Ñигналів процеÑу відрізнÑєтьÑÑ Ð²Ñ–Ð´ черги Ñигналів потоків обробки. СкориÑтайтеÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°Ð¼Ð¸ \fBm\fP Ñ– \fB\-m\fP Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду обох. Відповідно до ширини полÑ, буде показано 32\- або 64\-бітову маÑку у шіÑтнадцÑтковому форматі, Ñкщо не викориÑтано параметр \fB\-\-signames\fP (альтернатива – \fBsig\fP).
+T}
+
+pgid PGID T{
+ідентифікатор групи процеÑів або, що те Ñаме, ідентифікатор процеÑу лідера групи процеÑів (альтернатива – \fBpgrp\fP).
+T}
+
+pgrp PGRP T{
+див. \fBpgid\fP (альтернатива – \fBpgid\fP).
+T}
+
+pid PID T{
+чиÑло, що відповідає ідентифікатору процеÑу (альтернатива – \fBtgid\fP).
+T}
+
+pidns PIDNS T{
+Унікальний номер inode, що опиÑує проÑÑ‚Ñ–Ñ€ назв, до Ñкого належить процеÑ. Див. \fInamespaces\fP(7).
+T}
+
+pmem %MEM T{
+див. \fB%mem\fP (альтернатива – \fB%mem\fP).
+T}
+
+policy POL T{
+ÐºÐ»Ð°Ñ Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу. (альтернатива — \fBclass\fP, \fBcls\fP). Можливими значеннÑми Ð¿Ð¾Ð»Ñ Ñ” такі:
+.sp 1
+.in +9n
+\- не повідомлено
+.br
+TS SCHED_OTHER
+.br
+FF SCHED_FIFO
+.br
+RR SCHED_RR
+.br
+B SCHED_BATCH
+.br
+ISO SCHED_ISO
+.br
+IDL SCHED_IDLE
+.br
+DLN SCHED_DEADLINE
+.br
+? невідоме значеннÑ
+.in
+T}
+
+ppid PPID T{
+ідентифікатор батьківÑького процеÑу.
+T}
+
+pri PRI T{
+пріоритетніÑÑ‚ÑŒ процеÑу. Більше чиÑло — вища пріоритетніÑÑ‚ÑŒ.
+T}
+
+psr PSR T{
+процеÑор, а Ñкому воÑтаннє виконувавÑÑ Ð¿Ñ€Ð¾Ñ†ÐµÑ.
+T}
+
+pss PSS T{
+Пропорційний розмір Ñпільного кориÑтуваннÑ, нерезервована фізична пам'ÑÑ‚ÑŒ із пам'ÑÑ‚Ñ‚ÑŽ Ñпільного викориÑтаннÑ, Ñку пропорційно враховано Ð´Ð»Ñ ÑƒÑÑ–Ñ… завдань, Ñкі виконують Ñ—Ñ— прив'ÑзуваннÑ.
+T}
+
+rbytes RBYTES T{
+КількіÑÑ‚ÑŒ байтів, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñких з шару Ñховища даних було наÑправді Ñпричинено цим процеÑом.
+T}
+
+rchars RCHARS T{
+КількіÑÑ‚ÑŒ байтів, Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñких зі Ñховища даних було Ñпричинено цим завданнÑм.
+T}
+
+rgid RGID T{
+Ñправжній ідентифікатор групи.
+T}
+
+rgroup RGROUP T{
+назва Ñправжньої групи. Це буде текÑтовий ідентифікатор групи, Ñкщо його можна отримати
+Ñ– поле Ñ” доÑтатньо широким, або чиÑлове предÑтавленнÑ, Ñкщо це не так.
+T}
+
+rops ROPS T{
+КількіÑÑ‚ÑŒ дій з введеннÑ\-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ, тобто ÑиÑтемних викликів \fBread\fP(2) Ñ– \fBpread\fP(2).
+T}
+
+rss RSS T{
+розмір резидентного набору, нерезервована фізична пам'ÑÑ‚ÑŒ, Ñку викориÑтано завданнÑм (у кілобайтах) (альтернатива – \fBrssize\fP, \fBrsz\fP).
+T}
+
+rssize RSS T{
+див. \fBrss\fP (альтернатива – \fBrss\fP, \fBrsz\fP).
+T}
+
+rsz RSZ T{
+див. \fBrss\fP (альтернатива – \fBrss\fP, \fBrssize\fP).
+T}
+
+rtprio RTPRIO T{
+пріоритетніÑÑ‚ÑŒ Ñправжнього чаÑу.
+T}
+
+ruid RUID T{
+Ñправжній ідентифікатор кориÑтувача.
+T}
+
+ruser RUSER T{
+Ñправжній ідентифікатор кориÑтувача. Це буде текÑтовий ідентифікатор кориÑтувача, Ñкщо його можна отримати Ñ– поле Ñ” доÑтатньо широким, або чиÑлове предÑтавленнÑ, Ñкщо це не так.
+T}
+
+s S T{
+мінімальний показ Ñтану (один Ñимвол). Див. розділ \fBКОДИ СТÐÐІВ ПРОЦЕСУ\fP Ð´Ð»Ñ Ñ€Ñ–Ð·Ð½Ð¸Ñ… значень. Див. також \fBstat\fP, Ñкщо вам потрібен показ додаткових відомоÑтей (альтернатива – \fBstate\fP).
+T}
+
+sched SCH T{
+правила Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу. Ð”Ð»Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð» SCHED_OTHER (SCHED_NORMAL), SCHED_FIFO, SCHED_RR, SCHED_BATCH, SCHED_ISO, SCHED_IDLE Ñ– SCHED_DEADLINE, відповідно, буде показано Ñк 0, 1, 2, 3, 4, 5 Ñ– 6.
+T}
+
+ÑÐ¸Ð´Ñ–Ð½Ð½Ñ SEAT T{
+показує ідентифікатор, Ñкий пов'Ñзано із уÑіма призначеними до певного робочого міÑÑ†Ñ Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð¸Ð¼Ð¸ приÑтроÑми, Ñкщо було включено підтримку systemd.
+T}
+
+sess SESS T{
+ідентифікатор ÑеанÑу або, що те Ñаме, ідентифікатор процеÑу лідера ÑеанÑу. (альтернатива
+\fBsession\fP, \fBsid\fP).
+T}
+
+sgi_p P T{
+процеÑор, на Ñкому виконуєтьÑÑ Ð¿Ñ€Ð¾Ñ†ÐµÑ. Буде показано «*», Ñкщо процеÑ
+не працює або не Ñ” придатним до запуÑку.
+T}
+
+sgid SGID T{
+ідентифікатор збереженої групи. (альтернатива
+\fBsvgid\fP).
+T}
+
+sgroup SGROUP T{
+назва збереженої групи. Це буде текÑтовий ідентифікатор групи, Ñкщо його можна отримати
+Ñ– поле Ñ” доÑтатньо широким, або чиÑлове предÑтавленнÑ, Ñкщо це не так.
+T}
+
+sid SID T{
+див.
+\fBsess\fP.
+(альтернатива
+\fBsess\fP, \fBsession\fP).
+T}
+
+sig PENDING T{
+див.
+\fBpending\fP.
+(альтернатива
+\fBpending\fP, \fBsig_pend\fP).
+T}
+
+sigcatch CAUGHT T{
+див.
+\fBcaught\fP.
+(альтернатива
+\fBcaught\fP, \fBsig_catch\fP).
+T}
+
+sigignore IGNORED T{
+див.
+\fBignored\fP.
+(альтернатива
+\fBignored\fP, \fBsig_ignore\fP).
+T}
+
+sigmask BLOCKED T{
+див.
+\fBblocked\fP.
+(альтернатива
+\fBblocked\fP, \fBsig_block\fP).
+T}
+
+size SIZE T{
+приблизний обÑÑг проÑтору резервної пам'ÑÑ‚Ñ–, Ñкий знадобитьÑÑ, Ñкщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ñ–Ð¿Ñує уÑÑ– запиÑувані Ñторінки з наÑтупним витіÑненнÑм до резервної пам'ÑÑ‚Ñ–. Це чиÑлове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¾Ð±Ñ‡Ð¸Ñлено доÑить грубо!
+T}
+
+slice SLICE T{
+показує модуль зрізу, до Ñкого належить процеÑ,
+Ñкщо було включено підтримку systemd.
+T}
+
+spid SPID T{
+див.
+\fBlwp\fP.
+(альтернативи
+\fBlwp\fP, \fBtid\fP).
+T}
+
+stackp STACKP T{
+адреÑа низу (початку) Ñтека Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу.
+T}
+
+start STARTED T{
+Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку команди. Якщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±ÑƒÐ»Ð¾ запущено менше ніж 24 години тому,
+буде виведено дані у форматі «ГГ:ХХ:СС», інакше, дані буде виведено у форматі «\ \ Ммм\ дд» (де «Ммм» —
+трилітерне ÑÐºÐ¾Ñ€Ð¾Ñ‡ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸ міÑÑцÑ). Див. також
+\fBbsdstart\fP, \fBstart\fP, \fBstart_time\fP Ñ– \fBstime\fP.
+T}
+
+start_time START T{
+Ñ‡Ð°Ñ Ð°Ð±Ð¾ дата запуÑку процеÑу. Якщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ðµ було запущено року, коли було викликано \fBps\fP, буде показано лише рік або «МммДД», Ñкщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ðµ було запущено у той Ñамий день, або «ГГ:ХХ» у інших випадках. Див. також \fBbsdstart\fP, \fBstart\fP, \fBlstart\fP Ñ– \fBstime\fP.
+T}
+
+stat STAT T{
+багатоÑимвольний Ñтан процеÑу. Див. розділ \fBКОДИ СТÐÐІВ ПРОЦЕСУ\fP, щоб дізнатиÑÑ Ð¿Ñ€Ð¾ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ€Ñ–Ð·Ð½Ð¸Ñ… значень. Див. також \fBs\fP Ñ– \fBstate\fP, Ñкщо ви проÑто хочете бачити перший Ñимвол.
+T}
+
+state S T{
+див.
+\fBs\fP.\& (альтернатива \fB\ s\fP).
+T}
+
+stime STIME T{
+див. \fBstart_time\fP. (альтернатива \fBstart_time\fP).
+T}
+
+suid SUID T{
+збережений ідентифікатор кориÑтувача (альтернатива – \fBsvuid\fP).
+T}
+
+supgid SUPGID T{
+ідентифікатори груп Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð¼Ñ–Ð¶Ð½Ð¸Ñ… груп, Ñкщо такі Ñ”. Див. \fBgetgroups\fP(2).
+T}
+
+supgrp SUPGRP T{
+назви груп Ð´Ð»Ñ Ð´Ð¾Ð¿Ð¾Ð¼Ñ–Ð¶Ð½Ð¸Ñ… груп, Ñкщо такі Ñ”. Див. \fBgetgroups\fP(2).
+T}
+
+suser SUSER T{
+збережене ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача. Це буде текÑтовий ідентифікатор кориÑтувача, Ñкщо його можна отримати Ñ– поле Ñ” доÑтатньо широким, або чиÑлове предÑтавленнÑ, Ñкщо це не так (альтернатива – \fBsvuser\fP).
+T}
+
+svgid SVGID T{
+див. \fBsgid\fP (альтернатива – \fBsgid\fP).
+T}
+
+svuid SVUID T{
+див.
+\fBsuid\fP.
+(альтернатива
+\fBsuid\fP).
+T}
+
+sz SZ T{
+розмір у фізичних Ñторінках образу Ñдра процеÑу. Це включає текÑÑ‚, дані та Ñтек. У поточній верÑÑ–Ñ— прив'Ñзки до приÑтроїв виключено; це може змінитиÑÑ. Див. \fBvsz\fP Ñ– \fBrss\fP.
+T}
+
+tgid TGID T{
+чиÑло, Ñке відповідає групі потоків обробки, Ñким належить Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ (альтернатива – \fBpid\fP). Це ідентифікатор процеÑу лідера групи потоків обробки.
+T}
+
+thcount THCNT T{
+див. \fBnlwp\fP (альтернатива – \fBnlwp\fP), кількіÑÑ‚ÑŒ потоків обробки Ñдра, влаÑником Ñких Ñ” процеÑ.
+T}
+
+tid TID T{
+унікальне чиÑло, що відповідає розподілюваному запиÑу (альтернатива – \fBspid\fP, \fBspid\fP). Це Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ðµ також бути показано Ñк ідентифікатор процеÑу (pid); ідентифікатор групи процеÑів (pgrp); ідентифікатор ÑеанÑу Ð´Ð»Ñ Ð»Ñ–Ð´ÐµÑ€Ð° ÑеанÑу (sid); ідентифікатор групи потоків Ð´Ð»Ñ Ð»Ñ–Ð´ÐµÑ€Ð° групи потоків (tgid) та ідентифікатор групи процеÑів термінала Ð´Ð»Ñ Ð»Ñ–Ð´ÐµÑ€Ð° групи процеÑів (tpgid).
+T}
+
+time TIME T{
+накопичувальний Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора у форматі «[ДД\-]ГГ:ХХ:СС» (альтернатива — \fBcputime\fP).
+T}
+
+timens TIMENS T{
+Унікальний номер inode, що опиÑує проÑÑ‚Ñ–Ñ€ назв, до Ñкого належить процеÑ. Див. \fInamespaces\fP(7).
+T}
+
+times TIME T{
+накопичувальний Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора у Ñекундах (альтернатива – \fBcputimes\fP).
+T}
+
+tname TTY T{
+керівний tty (термінал) (альтернатива – \fBtt\fP, \fBtty\fP).
+T}
+
+tpgid TPGID T{
+ідентифікатор оÑновної групи процеÑів на tty (термінала), з Ñким з'єднано процеÑ, або \-1, Ñкщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ðµ з'єднано з терміналом.
+T}
+
+trs TRS T{
+розмір резидентного набору текÑтових даних, обÑÑг фізичної пам'ÑÑ‚Ñ–, Ñку викориÑтано Ð´Ð»Ñ Ð´Ð°Ð½Ð¸Ñ… виконуваного коду.
+T}
+
+tt TT T{
+керівний tty (термінал) (альтернатива – \fBtname\fP, \fBtty\fP).
+T}
+
+tty TT T{
+керівний tty (термінал) (альтернатива – \fBtname\fP, \fBtt\fP).
+T}
+
+ucmd CMD T{
+див.
+\fBcomm\fP
+(альтернатива –
+\fBcomm\fP, \fBucomm\fP).
+T}
+
+ucomm КОМÐÐДРT{
+див.
+\fBcomm\fP.
+(альтернативи
+\fBcomm\fP, \fBucmd\fP).
+T}
+
+uid UID T{
+див.
+\fBeuid\fP.
+(альтернатива
+\fBeuid\fP).
+T}
+
+uname USER T{
+див.
+\fBeuser\fP.
+(альтернативи
+\fBeuser\fP, \fBuser\fP).
+T}
+
+unit UNIT T{
+показує модуль, до Ñкого належить процеÑ,
+Ñкщо було включено підтримку systemd.
+T}
+
+кориÑтувач USER T{
+див.
+\fBeuser\fP.
+(альтернативи
+\fBeuser\fP, \fBuname\fP).
+T}
+
+userns USERNS T{
+Унікальний номер inode, що опиÑує проÑÑ‚Ñ–Ñ€ назв, до Ñкого належить процеÑ. Див. \fInamespaces\fP(7).
+T}
+
+uss USS T{
+Розмір унікального набору, нерезервована фізична пам'ÑÑ‚ÑŒ, Ñку не викориÑтано Ñпільно з іншими завданнÑми.
+T}
+
+utsns UTSNS T{
+Унікальний номер inode, що опиÑує проÑÑ‚Ñ–Ñ€ назв, до Ñкого належить процеÑ. Див. \fInamespaces\fP(7).
+T}
+
+uunit UUNIT T{
+показує модуль кориÑтувача, до Ñкого належить процеÑ,
+Ñкщо було включено підтримку systemd.
+T}
+
+vsize VSZ T{
+див.
+\fBvsz\fP.
+(альтернатива
+\fBvsz\fP).
+T}
+
+vsz VSZ T{
+розмір віртуальної пам'ÑÑ‚Ñ– процеÑу у КіБ (1024\-байтових одиницÑÑ…). У поточній верÑÑ–Ñ— прив'Ñзки до приÑтроїв буде виключено; це може бути змінено у майбутніх верÑÑ–ÑÑ… (альтернатива – \fBvsize\fP).
+T}
+
+wbytes WBYTES T{
+КількіÑÑ‚ÑŒ байтів, Ñкі було надіÑлано до шару Ñховища завдÑки цьому процеÑу.
+T}
+
+wcbytes WCBYTES T{
+КількіÑÑ‚ÑŒ байтів, Ð·Ð°Ð¿Ð¸Ñ Ñких ÑкаÑовано.
+T}
+
+wchan WCHAN T{
+назва функції Ñдра, у Ñкий Ñпить процеÑ.
+T}
+
+wchars WCHARS T{
+КількіÑÑ‚ÑŒ байтів, Ð·Ð°Ð¿Ð¸Ñ Ð½Ð° диÑк Ñких було Ñпричинено або буде Ñпричинено цим завданнÑм.
+T}
+
+wops WOPS T{
+КількіÑÑ‚ÑŒ дій з введеннÑ\-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñу, тобто ÑиÑтемних викликів \fBwrite\fP(2) Ñ– \fBpwrite\fP(2).
+T}
+
+.TE
+.SH "ЗМІÐÐІ СЕРЕДОВИЩÐ"
+Ðа роботу \fBps\fP можуть впливати такі змінні Ñередовища:
+.TP 3
+\fBCOLUMNS\fP
+Перевизначити типову ширину диÑплеÑ.
+.TP
+\fBLINES\fP
+Перевизначити типову виÑоту диÑплеÑ.
+.TP
+\fBPS_PERSONALITY\fP
+Ð’Ñтановлюють одне зі значень: posix, old, linux, bsd, sun, digital...\&
+(див. розділ \fBУОСОБЛЕÐÐЯ\fP нижче).
+.TP
+\fBCMD_ENV\fP
+Ð’Ñтановлюють одне зі значень: posix, old, linux, bsd, sun, digital...\&
+(див. розділ \fBУОСОБЛЕÐÐЯ\fP нижче).
+.TP
+\fBI_WANT_A_BROKEN_PS\fP
+ПримуÑово викориÑтатиÑÑ Ð·Ð°Ñтарілу інтерпретацію Ñ€Ñдка команди.
+.TP
+\fBLC_TIME\fP
+Формат дати.
+.TP
+\fBLIBPROC_HIDE_KERNEL\fP
+Ð’Ñтановіть будь\-Ñке значеннÑ, щоб приховати потоки обробки Ñдра, Ñкі
+зазвичай буде показано при викориÑтанні параметра \fB\-e\fP. Еквівалент вибору
+\fB\-\-ppid 2 \-p 2 \-\-deselect\fP. Також працює у режимі BSD.
+.TP
+\fBPS_COLORS\fP
+У поточній верÑÑ–Ñ— підтримки не передбачено.
+.TP
+\fBPS_FORMAT\fP
+ÐŸÐµÑ€ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ð³Ð¾ формату виведеннÑ. Ви можете вÑтановити Ð´Ð»Ñ Ñ†Ñ–Ñ”Ñ—
+змінної Ñ€Ñдок Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð¸Ð¿Ñƒ, Ñкий викориÑтовують Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð°
+\fB\-o\fP. Зокрема, кориÑними будуть Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fBDefSysV\fP Ñ– \fBDefBSD\fP.
+.TP
+\fBPOSIXLY_CORRECT\fP
+Ðе шукати виправдань Ñ–Ð³Ð½Ð¾Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ñ… «можливоÑтей».
+.TP
+\fBPOSIX2\fP
+Якщо вÑтановлено «on», працює Ñк \fBPOSIXLY_CORRECT\fP.
+.TP
+\fBUNIX95\fP
+Ðе шукати виправдань Ñ–Ð³Ð½Ð¾Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ¾Ð²Ð¸Ñ… «можливоÑтей».
+.TP
+\fB_XPG\fP
+СкаÑувати неÑтандартну поведінку \fBCMD_ENV\fP=\fIirix\fP.
+.PP
+Загалом, не варто вÑтановлювати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ Ñ†Ð¸Ñ… змінних. Єдиним виключеннÑм
+Ñ” \fBCMD_ENV\fP або \fBPS_PERSONALITY\fP, Ð´Ð»Ñ Ñких можна вÑтановити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Linux
+Ð´Ð»Ñ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¸Ñ… ÑиÑтем. Без вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fBps\fP виконуватиме
+непотрібні Ñ– неÑкіÑні чаÑтини Ñтандарту Unix98.
+.SH УОСОБЛЕÐÐЯ
+.TS
+l l.
+390 подібний до \fBps\fP Ð´Ð»Ñ OS/390 OpenEdition
+aix подібно до \fBps\fP в AIX
+bsd подібний до \fBps\fP Ð´Ð»Ñ FreeBSD (повніÑÑ‚ÑŽ неÑтандартний)
+compaq подібний до \fBps\fP Ð´Ð»Ñ Digital Unix
+debian подібний до \fBps\fP Ð´Ð»Ñ Ñтарого Debian
+digital подібний до \fBps\fP Ð´Ð»Ñ Tru64 (раніше Digital\ Unix, раніше OSF/1)
+gnu подібний до \fBps\fP Ð´Ð»Ñ Ñтарого Debian
+к.Ñ. подібно до \fBps\fP в HP\-UX
+hpux подібно до \fBps\fP в HP\-UX
+irix подібно до \fBps\fP в Irix
+linux ***** \fBрекомендовано\fP *****
+old подібний до початкового \fBps\fP Ð´Ð»Ñ Linux (повніÑÑ‚ÑŽ неÑтандартний)
+os390 подібний до \fBps\fP в OS/390 Open Edition
+posix standard
+s390 подібний до \fBps\fP в OS/390 Open Edition
+sco подібний до \fBps\fP Ð´Ð»Ñ SCO
+sgi подібно до \fBps\fP в Irix
+solaris2 подібний до \fBps\fP Ð´Ð»Ñ Solaris 2+ (SunOS 5)
+sunos4 подібний до \fBps\fP Ð´Ð»Ñ SunOS 4 (Solaris 1) (повніÑÑ‚ÑŽ неÑтандартний)
+svr4 standard
+sysv standard
+tru64 подібний до \fBps\fP Ð´Ð»Ñ Tru64 (раніше Digital Unix, раніше OSF/1)
+unix standard
+unix95 standard
+unix98 standard
+.TE
+.SH Ð’ÐДИ
+У полÑÑ… \fBbsdstart\fP Ñ– \fBstart\fP буде показано лише Ñкорочену назву міÑÑцÑ
+англійÑькою. У полÑÑ… \fBlstart\fP Ñ– \fBstime\fP буде показано Ñкорочену назву
+міÑÑÑ†Ñ Ñƒ налаштованій локалі, але Ñ†Ñ Ð½Ð°Ð·Ð²Ð° може вийти за межі Ñтовпчика
+через різну довжину Ñкорочених назв міÑÑців та днів у різних мовах.
+.PP
+.SH "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ"
+\fBpgrep\fP(1), \fBpstree\fP(1), \fBtop\fP(1), \fBstrftime\fP(3), \fBproc\fP(5).
+.SH СТÐÐДÐРТИ
+\fBps\fP Ñ” ÑуміÑним із такими Ñтандартами:
+.PP
+.PD 0
+.IP 1 4
+ВерÑією 2 Single Unix Specification
+.IP 2 4
+The Open Group Technical Standard Base Specifications, випуÑк\ 6
+.IP 3 4
+IEEE Std 1003.1, 2004\ Edition
+.IP 4 4
+X/Open System Interfaces Extension [UP\ XSI]
+.IP 5 4
+ISO/IEC 9945:2003
+.PD
+.SH ÐВТОР
+Першу верÑÑ–ÑŽ \fBps\fP було напиÑано
+.MT lankeste@\:fwi.\:uva.\:nl
+Branko
+Lankester
+.ME .
+.MT johnsonm@\:redhat.\:com
+Michael K. Johnson
+.ME
+значно перепиÑав програму Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð¾Ð²Ð¾Ñ— ÑиÑтеми proc, змінивши
+декілька речей у процеÑÑ–.
+.MT mjshield@\:nyx.\:cs.\:du.\:edu
+Michael
+Shields
+.ME
+додав можливіÑÑ‚ÑŒ ÑпиÑку pid.
+.MT cblake@\:bbn.\:com
+Charles Blake
+.ME
+додав багаторівневе упорÑдковуваннÑ, бібліотеку у Ñтилі
+dirent, базу даних із прив'Ñзкою назв приÑтроїв до чиÑел, приблизний
+двійковий пошук безпоÑередньо у System.map, а також виконав багато
+упорÑÐ´ÐºÑƒÐ²Ð°Ð½Ð½Ñ ÐºÐ¾Ð´Ñƒ та документації. David Mossberger\-Tang напиÑав загальну
+підтримку BFD Ð´Ð»Ñ psupdate.
+.MT albert@\:users.\:sf.\:net
+Albert Cahalan
+.ME
+перепиÑав ps з метою повної підтримки Ñтандартів Unix98 та BSD,
+додавши деÑкий обхідний код Ð´Ð»Ñ Ð·Ð°Ñтарілого Ñ– Ñтороннього ÑинтакÑиÑу.
+.PP
+Про вади, будь лаÑка, повідомлÑйте на адреÑу
+.MT procps@\:freelists.\:org
+.ME .
+ПідпиÑка не Ñ” обов'Ñзковою.
diff --git a/po-man/uk/pwdx.1 b/po-man/uk/pwdx.1
new file mode 100644
index 0000000..7a3f45f
--- /dev/null
+++ b/po-man/uk/pwdx.1
@@ -0,0 +1,41 @@
+.\"
+.\" Copyright (c) 2020-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2004 Nicholas Miel.
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH PWDX 1 "4 Ñ‡ÐµÑ€Ð²Ð½Ñ 2020 року" procps\-ng "Команди кориÑтувача"
+.SH ÐÐЗВÐ
+pwdx — повідомити про поточний робочий каталог процеÑу.
+.SH "КОРОТКИЙ ОПИС"
+\fBpwdx\fP [\fIпараметри\fP] \fIpid\fP [...]
+.SH ПÐРÐМЕТРИ
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+ВивеÑти дані щодо верÑÑ–Ñ— Ñ– завершити роботу.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+ВивеÑти довідкові дані Ñ– завершити роботу.
+.SH "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ"
+\fBps\fP(1), \fBpgrep\fP(1)
+.SH СТÐÐДÐРТИ
+Стандарти не заÑтоÑовувалиÑÑ, але \fBpwdx\fP Ñ” Ñхожим на програму Ð´Ð»Ñ SunOS.
+.SH ÐВТОР
+.UR nmiell@gmail.com
+Nicholas Miell
+.UE
+Ñтворив pwdx у 2004 році.
+.SH "Як надіÑлати звіт про вади"
+Про вади, будь лаÑка, повідомлÑйте на адреÑу
+.UR procps@freelists.org
+.UE
diff --git a/po-man/uk/skill.1 b/po-man/uk/skill.1
new file mode 100644
index 0000000..644525a
--- /dev/null
+++ b/po-man/uk/skill.1
@@ -0,0 +1,118 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2006 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SKILL 1 "19 ÑÐµÑ€Ð¿Ð½Ñ 2023 року" procps\-ng "Команди кориÑтувача"
+.SH ÐÐЗВÐ
+skill, snice — надіÑлати Ñигнал або повідомити про Ñтан процеÑу.
+.SH "КОРОТКИЙ ОПИС"
+\fBsnice\fP [\fIнова пріоритетніÑÑ‚ÑŒ\fP] [\fIпараметри\fP] \fIвираз\fP
+.br
+\fBsnice\fP [\fIнова пріоритетніÑÑ‚ÑŒ\fP] [\fIпараметри\fP] \fIвираз\fP
+.SH ОПИС
+Ці програми Ñ” заÑтарілими Ñ– непридатними до портуваннÑ. СинтакÑиÑ
+відповідних команд Ñ” погано визначеним. Вам варто кориÑтуватиÑÑ Ð·Ð°Ð¼Ñ–ÑÑ‚ÑŒ них
+програмами \fBkillall\fP, \fBpkill\fP та \fBpgrep\fP.
+.PP
+Типовим Ñигналом Ð´Ð»Ñ \fBskill\fP Ñ” TERM. СкориÑтайтеÑÑ \fB\-l\fP або \fB\-L\fP длÑ
+Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ ÑпиÑку Ñигналів. Зокрема, кориÑними Ñигналами Ñ” HUP, INT, KILL,
+STOP, CONT та 0. Інші Ñигнали може бути вказано у три ÑпоÑоби: \fB\-9\fP
+\fB\-SIGKILL\fP \fB\-KILL\fP.
+.PP
+Типовим рівнем пріоритетноÑÑ‚Ñ– Ð´Ð»Ñ \fBsnice\fP Ñ” +4. РівнÑм відповідають чиÑла
+від +20 (найнижчий) до \-20 (найвищий). Від’ємними значеннÑми можуть
+ÑкориÑтатиÑÑ Ð»Ð¸ÑˆÐµ кориÑтувачі з адмініÑтративними правами доÑтупу.
+.SH ПÐРÐМЕТРИ
+.TP
+\fB\-f\fP,\fB\ \-\-fast\fP
+Швидкий режим. Цей параметр ще не реалізовано.
+.TP
+\fB\-i\fP,\fB\ \-\-interactive\fP
+Інтерактивний режим. Програма проÑитиме Ð²Ð°Ñ Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¸Ñ‚Ð¸ кожну дію.
+.TP
+\fB\-l\fP,\fB\ \-\-list\fP
+ВивеÑти ÑпиÑок уÑÑ–Ñ… назв Ñигналів.
+.TP
+\fB\-L\fP,\fB\ \-\-table\fP
+ВивеÑти ÑпиÑок назв уÑÑ–Ñ… Ñигналів у форматі таблиці.
+.TP
+\fB\-n\fP,\fB\ \-\-no\-action\fP
+Ðе виконувати дій. Виконати імітацію подій, Ñкі б ÑталиÑÑ, але не вноÑити
+змін до ÑиÑтеми.
+.TP
+\fB\-v\fP,\fB\ \-\-verbose\fP
+Докладний режим. Виводити поÑÑÐ½ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ уÑÑ–Ñ… виконуваних дій.
+.TP
+\fB\-w\fP,\fB\ \-\-warnings\fP
+Увімкнути Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½ÑŒ. Цей параметри ще не реалізовано.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+ВивеÑти текÑÑ‚ довідки Ñ– завершити роботу.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Показати інформацію щодо верÑÑ–Ñ—.
+.PD
+.SH "ПÐРÐМЕТРИ ВИБОРУ ПРОЦЕСУ"
+КритеріÑми вибору можуть бути такі значеннÑ: terminal, user, pid,
+command. Ðаведені нижче параметри може бути викориÑтано Ð´Ð»Ñ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ
+належної інтерпретації.
+.TP
+\fB\-t\fP, \fB\-\-tty\fP \fItty\fP
+ÐаÑтупний вираз Ñ” терміналом (tty або pty).
+.TP
+\fB\-u\fP, \fB\-\-user\fP \fIкориÑтувач\fP
+ÐаÑтупний вираз Ñ” іменем кориÑтувача.
+.TP
+\fB\-p\fP, \fB\-\-pid\fP \fIpid\fP
+ÐаÑтупний вираз Ñ” ідентифікаційним номером процеÑу.
+.TP
+\fB\-c\fP, \fB\-\-command\fP \fIкоманда\fP
+ÐаÑтупний вираз Ñ” назвою команди.
+.TP
+\fB\-\-ns \fP\fIpid\fP
+Ð’Ñтановлювати відповідніÑÑ‚ÑŒ процеÑам, що належать тому Ñамому проÑтору назв,
+що і pid.
+.TP
+\fB\-\-nslist \fP\fIns\/\fP,\,\fI...\/\fP
+ВивеÑти ÑпиÑок проÑторів назв, Ñкі викориÑтовуватимутьÑÑ Ð´Ð»Ñ Ð¾Ð±Ñ€Ð¾Ð±ÐºÐ¸ з
+параметром \fB\-\-ns\fP. Можливі проÑтори назв: ipc, mnt, net, pid, user, uts.
+.PD
+.SH СИГÐÐЛИ
+Поведінку Ñигналів опиÑано на Ñторінці підручника \fBsignal\fP(7).
+.SH ПРИКЛÐДИ
+.TP
+\fBsnice \-c seti \-c crack +7\fP
++Уповільнити програми \fBseti\fP та \fBcrack\fP.
+.TP
+\fBskill \-KILL \-t /dev/pts/*\fP
+Припинити ÑеанÑи кориÑтувачів на приÑтроÑÑ… PTY.
+.TP
+\fBskill \-STOP \-u viro \-u lm \-u davem\fP
+Припинити роботу трьох кориÑтувачів.
+.SH "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ"
+\fBkill\fP(1), \fBkill\fP(2), \fBkillall\fP(1), \fBnice\fP(1), \fBpkill\fP(1),
+\fBrenice\fP(1), \fBsignal\fP(7)
+.SH СТÐÐДÐРТИ
+Стандарти не заÑтоÑовувалиÑÑ.
+.SH ÐВТОР
+.MT albert@users.sf.net
+Albert Cahalan
+.ME
+напиÑав skill та snice у
+1999 році, щоб замінити верÑÑ–Ñ—, Ñкі не були вільними.
+.SH "Як надіÑлати звіт про вади"
+Про вади, будь лаÑка, повідомлÑйте на адреÑу
+.UR procps@freelists.org
+.UE
diff --git a/po-man/uk/slabtop.1 b/po-man/uk/slabtop.1
new file mode 100644
index 0000000..70065ec
--- /dev/null
+++ b/po-man/uk/slabtop.1
@@ -0,0 +1,117 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2004-2006 Albert Cahalan
+.\" Copyright (C) 2003 Chris Rivera
+.\"
+.\" This program is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU Lesser General Public License as
+.\" published by the Free Software Foundation; either version 2.1 of the
+.\" License, or (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SLABTOP 1 "11 Ð±ÐµÑ€ÐµÐ·Ð½Ñ 2021 року" procps\-ng "Команди кориÑтувача"
+.SH ÐÐЗВÐ
+slabtop — програма Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ даних щодо кешу чаÑтин у режимі реального
+чаÑу.
+.SH "КОРОТКИЙ ОПИС"
+\fBslabtop\fP [\fIпараметри\fP]
+.SH ОПИС
+Програма \fBslabtop\fP показує докладні дані щодо кешу чаÑтин Ñдра у режимі
+реального чаÑу. Буде показано верхню чаÑтину ÑпиÑку, упорÑдкованого за одним
+з критеріїв. Також буде показано заголовок із даними щодо шару чаÑтин.
+.SH ПÐРÐМЕТРИ
+Якщо \fBslabtop\fP викориÑтовуєтьÑÑ Ñƒ звичайному режимі, програма не потребує
+додаткових параметрів. Втім, поведінку програми можна змінити додаваннÑм до
+Ñ€Ñдка команди одного або декількох параметрів:
+.TP
+\fB\-d\fP, \fB\-\-delay\fP=\fIN\fP
+Оновлювати показані дані кожні \fIn\fP Ñекунд. Типово, \fBslabtop\fP оновлює показ
+кожні 3 Ñекунди. Щоб завершити роботу програми, натиÑніть клавішу \fBq\fP. Ðе
+можна поєднувати із параметром \fB\-o\fP.
+.TP
+\fB\-s\fP, \fB\-\-sort\fP=\fIкритерій\fP
+УпорÑдкувати за \fIS\fP, де \fIS\fP Ñ” одним із вказаних нижче критеріїв
+упорÑдковуваннÑ.
+.TP
+\fB\-o\fP, \fB\-\-once\fP
+ВивеÑти дані один раз Ñ– завершити роботу.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+ВивеÑти дані щодо верÑÑ–Ñ— Ñ– завершити роботу.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+ВивеÑти дані щодо кориÑÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ– завершити роботу.
+.SH "КРИТЕРІЙ УПОРЯДКОВУВÐÐÐЯ"
+Ðижче наведено коректні критерії упорÑдковуваннÑ, що викориÑтовуютьÑÑ Ð´Ð»Ñ
+окремих кешів чаÑтин, а отже, визначають, Ñкі кеші чаÑтин перебуватимуть у
+верхній чаÑтині показаного ÑпиÑку. Типовий критерієм упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ”
+кількіÑÑ‚ÑŒ об’єктів («o»).
+.PP
+Крім того, критерій упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° змінити під Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ \fBslabtop\fP
+натиÑканнÑм відповідної клавіші.
+.TS
+l l l.
+\fBÑимвол\fP \fBопиÑ\fP \fBзаголовок\fP
+a кількіÑÑ‚ÑŒ активних об’єктів ÐКТИВÐ
+b кількіÑÑ‚ÑŒ об’єктів на фрагмент ОБ./ЧÐСТ
+c розмір кешу РОЗМІР КЕШУ
+l кількіÑÑ‚ÑŒ фрагментів (чаÑтин) ЧÐСТ
+v кількіÑÑ‚ÑŒ активних чаÑтин Ðемає
+n назва ÐÐЗВÐ\:
+o кількіÑÑ‚ÑŒ об’єктів OBJS
+p к\-Ñ‚ÑŒ Ñторінок на чаÑтину Ðемає
+s розмір об’єкта РОЗМ ОБ.
+u викориÑÑ‚Ð°Ð½Ð½Ñ ÐºÐµÑˆÑƒ ВИК
+.TE
+.SH КОМÐÐДИ
+Під Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ програма \fBslabtop\fP Ñприймає команди кориÑтувача, віддані за
+допомогою клавіатури. Ðижче вказано ÑпиÑок підтримуваних команд. У випадку
+команд\-літер можна викориÑтовувати Ñк великі, так Ñ– маленькі літери.
+.PP
+Передбачено можливіÑÑ‚ÑŒ викориÑÑ‚Ð°Ð½Ð½Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ із коректних Ñимволів
+упорÑдковуваннÑ, призначених Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ критерію. Докладніший Ð¾Ð¿Ð¸Ñ Ñ†Ð¸Ñ…
+Ñимволів наведено у розділі \fBКРИТЕРІЇ УПОРЯДКОВУВÐÐÐЯ\fP.
+.TP
+\fB<ПРОБІЛ>\fP
+Оновити вміÑÑ‚ екрана.
+.TP
+\fBQ\fP
+Завершити роботу програми.
+.SH ФÐЙЛИ
+.TP
+\fI/proc/slabinfo\fP
+дані щодо фрагмента (slab)
+.SH "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ"
+\fBfree\fP(1), \fBps\fP(1), \fBtop\fP(1), \fBvmstat\fP(8)
+.SH ЗÐУВÐЖЕÐÐЯ
+Ð”Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ поточної верÑÑ–Ñ— програми \fBslabtop\fP потрібне Ñдро ÑиÑтеми верÑÑ–Ñ—
+2.4 або новішої (зокрема, верÑÑ–Ñ 1.1 або новіша
+\fI/proc/slabinfo\fP). Підтримку Ñдер 2.2 має бути передбачено у майбутніх
+верÑÑ–ÑÑ….
+.PP
+Заголовок ÑтатиÑтичних даних \fBslabtop\fP міÑтить дані щодо того, Ñкільки
+байтів чаÑтин викориÑтовуєтьÑÑ, а не виміри об’єму фізичної пам’ÑÑ‚Ñ–. Поточні
+дані щодо викориÑтаної чаÑтинами фізичної пам’ÑÑ‚Ñ– зберігаютьÑÑ Ñƒ полі «Slab»
+файла \fI/proc/meminfo\fP.
+.PP
+Дані у Ñтовпчику \fBCACHE SIZE\fP не Ñ” точними, це Ð²ÐµÑ€Ñ…Ð½Ñ Ð¼ÐµÐ¶Ð° пам'ÑÑ‚Ñ–,
+викориÑтаної певною чаÑтиною. Коли ÑиÑтема, що викориÑтовує чаÑтину
+(найпоширеніший випадок), перебуває під значним навантаженнÑм щодо пам'ÑÑ‚Ñ–,
+Ñ–Ñнують резерви порÑдку чаÑтин, що означає, що Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«ÐºÑ–Ð»ÑŒÐºÑ–ÑÑ‚ÑŒ Ñторінок
+на чаÑтину» не Ñ” Ñталим Ñ– може зменшуватиÑÑ.
+.SH ÐВТОРИ
+Створено Chris Rivera та Robert Love.
+.PP
+Ідею \fBslabtop\fP запозичено зі Ñкрипту мовою Perl, напиÑаного Martin Bligh,
+\fBvmtop\fP.
+.SH "Як надіÑлати звіт про вади"
+Про вади, будь лаÑка, повідомлÑйте на адреÑу
+.UR procps@freelists.org
+.UE
diff --git a/po-man/uk/sysctl.8 b/po-man/uk/sysctl.8
new file mode 100644
index 0000000..a8cc30e
--- /dev/null
+++ b/po-man/uk/sysctl.8
@@ -0,0 +1,182 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2013-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2004-2006 Albert Cahalan
+.\" Copyright (c) 1999 George Staikos <staikos@0wned.org>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SYSCTL 8 "19 ÑÐµÑ€Ð¿Ð½Ñ 2023 року" procps\-ng "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÑиÑтемою"
+.SH ÐÐЗВÐ
+sysctl — програма Ð´Ð»Ñ Ð½Ð°Ð»Ð°ÑˆÑ‚Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² Ñдра під Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸.
+.SH "КОРОТКИЙ ОПИС"
+\fBsysctl\fP [\fIпараметри\fP] [\fIзмінна\fP[\fB=\fP\fIзначеннÑ\fP]] [...]
+.br
+\fBsysctl \-p\fP [\fIфайл\fP або \fIформальний вираз\fP] [...]
+.SH ОПИС
+\fBsysctl\fP викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð²Ð½ÐµÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½Ð¸ до параметрів Ñдра під чаÑ
+роботи. ДоÑтупними Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ параметрами Ñ” параметри зі ÑпиÑку у
+\fI/proc/sys/\fP. Ð”Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ роботи \fBsysctl\fP у Linux потрібна
+procfs. \fBsysctl\fP можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ– запиÑу даних sysctl.
+.SH ПÐРÐМЕТРИ
+.TP
+\fIзмінна\fP
+Ðазва ключа Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…. Приклад: kernel.ostype. ЗаміÑÑ‚ÑŒ роздільника
+«.» можна викориÑтовувати роздільник «/».
+.TP
+\fIзмінна\fP=\fIзначеннÑ\fP
+Ð”Ð»Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ»ÑŽÑ‡Ð° ÑкориÑтайтеÑÑ Ð·Ð°Ð¿Ð¸Ñом у форматі
+\fIзмінна\fP=\fIзначеннÑ\fP, де \fIзмінна\fP Ñ” назвою ключа, а \fIзначеннÑ\fP —
+значеннÑ, Ñке Ñлід вÑтановити. Якщо у значенні міÑÑ‚ÑÑ‚ÑŒÑÑ Ð»Ð°Ð¿ÐºÐ¸ або Ñимволи,
+Ñкі оброблÑÑŽÑ‚ÑŒÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð½Ð¾ÑŽ оболонкою, ви можете взÑти Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ подвійні
+лапки.
+.TP
+\fB\-n\fP, \fB\-\-values\fP
+Цим параметром можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð²Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸ ключа під
+Ñ‡Ð°Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½ÑŒ.
+.TP
+\fB\-e\fP, \fB\-\-ignore\fP
+Цим параметром можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð²Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ñ€ÐµÐ¶Ð¸Ð¼Ñƒ Ñ–Ð³Ð½Ð¾Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð¼Ð¸Ð»Ð¾Ðº,
+пов’Ñзаних із невідомими ключами.
+.TP
+\fB\-N\fP, \fB\-\-names\fP
+Цим параметром можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð»Ð¸ÑˆÐµ назв. КориÑно у
+оболонках, де передбачено програмоване Ð´Ð¾Ð¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´.
+.TP
+\fB\-q\fP, \fB\-\-quiet\fP
+Цим параметром можна ÑкориÑтатиÑÑ Ð´Ð»Ñ ÑƒÑÑƒÐ²Ð°Ð½Ð½Ñ Ð· виведених даних значень,
+вÑтановлених у stdout.
+.TP
+\fB\-w\fP, \fB\-\-write\fP
+ПримуÑово вважати уÑÑ– аргументи аргументами запиÑу Ñ– вивеÑти помилку, Ñкщо
+Ñ—Ñ… не можна обробити у відповідний ÑпоÑіб.
+.TP
+\fB\-p\fP[\fIФÐЙЛ\fP], \fB\-\-load\fP[=\fIФÐЙЛ\fP]
+Завантажити параметри \fBsysctl\fP із вказаного файла або із
+\fI/etc/sysctl.conf\fP, Ñкщо файл не вказано. Якщо вказати заміÑÑ‚ÑŒ назви файла
+\-, дані буде прочитано із Ñтандартного джерела вхідних даних. ВикориÑтаннÑ
+цього параметра означає, що аргументами \fBsysctl\fP Ñ” файли, Ñкі буде
+прочитано у порÑдку, у Ñкому Ñ—Ñ… було вказано. Ðргумент файла може бути
+вказано у форматі формального виразу.
+.TP
+\fB\-a\fP, \fB\-\-all\fP
+ВивеÑти вÑÑ– доÑтупні значеннÑ.
+.TP
+\fB\-\-deprecated\fP
+Включити заÑтарілі параметри до ÑпиÑку значень \fB\-\-all\fP.
+.TP
+\fB\-b\fP, \fB\-\-binary\fP
+ВивеÑти Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±ÐµÐ· Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ñимволу розриву Ñ€Ñдка.
+.TP
+\fB\-\-system\fP
+Завантажити параметри з уÑÑ–Ñ… загальноÑиÑтемних файлів
+налаштувань. Див. розділ \fBПРІОРИТЕТÐІСТЬ ФÐЙЛІВ СИСТЕМИ\fP нижче.
+.TP
+\fB\-r\fP, \fB\-\-pattern\fP \fIвзірець\fP
+ЗаÑтоÑувати лише параметри, Ñкі відповідають \fIвзірцю\fP. У \fIвзірці\fP
+викориÑтовуєтьÑÑ Ñ€Ð¾Ð·ÑˆÐ¸Ñ€ÐµÐ½Ð¸Ð¹ ÑинтакÑÐ¸Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ð»ÑŒÐ½Ð¸Ñ… виразів.
+.TP
+\fB\-A\fP
+Інший варіант \fB\-a\fP
+.TP
+\fB\-d\fP
+Інший варіант \fB\-h\fP
+.TP
+\fB\-f\fP
+Інший варіант \fB\-p\fP
+.TP
+\fB\-X\fP
+Інший варіант \fB\-a\fP
+.TP
+\fB\-o\fP
+Ðе виконувати дій. ВикориÑтовуєтьÑÑ Ð´Ð»Ñ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ ÑуміÑноÑÑ‚Ñ– із BSD.
+.TP
+\fB\-x\fP
+Ðе виконувати дій. ВикориÑтовуєтьÑÑ Ð´Ð»Ñ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ ÑуміÑноÑÑ‚Ñ– із BSD.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+ВивеÑти текÑÑ‚ довідки Ñ– завершити роботу.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+ВивеÑти дані щодо верÑÑ–Ñ— Ñ– завершити роботу.
+.SH "ПРІОРИТЕТÐІСТЬ ФÐЙЛІВ СИСТЕМИ"
+При викориÑтанні параметра \fB\-\-system\fP \fBsysctl\fP прочитає файли з каталогів
+у вказаному ÑпиÑку у вказаному порÑдку, згори вниз. ПіÑÐ»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ñ„Ð°Ð¹Ð»Ð°
+із вказаною назвою уÑÑ– інші файли із такою Ñамою назвою, Ñкі зберігаютьÑÑ Ñƒ
+інших каталогах, буде проігноровано.
+
+/etc/sysctl.d/*.conf
+.br
+/run/sysctl.d/*.conf
+.br
+/usr/local/lib/sysctl.d/*.conf
+.br
+/usr/lib/sysctl.d/*.conf
+.br
+/lib/sysctl.d/*.conf
+.br
+/etc/sysctl.conf
+
+УÑÑ– файли налаштувань буде упорÑдковано за абеткою у назвах, незалежно від
+каталогу, у Ñкому вони зберігаютьÑÑ. Файли налаштувань можна замінити або
+повніÑÑ‚ÑŽ (ÑтвореннÑм нового файла налаштувань із тією Ñамою назвою у
+каталозі із вищою пріоритетніÑÑ‚ÑŽ), або чаÑтково (за допомогою файла
+налаштувань, Ñкий йде далі за порÑдком).
+.SH ПРИКЛÐДИ
+/sbin/sysctl \-a
+.br
+/sbin/sysctl \-n kernel.hostname
+.br
+/sbin/sysctl \-w kernel.domainname="example.com"
+.br
+/sbin/sysctl \-p/etc/sysctl.conf
+.br
+/sbin/sysctl \-a \-\-pattern forward
+.br
+/sbin/sysctl \-a \-\-pattern forward$
+.br
+/sbin/sysctl \-a \-\-pattern 'net.ipv4.conf.(eth|wlan)0.arp'
+.br
+/sbin/sysctl \-\-pattern '\[char94]net.ipv6' \-\-system
+.SH "ЗÐСТÐРІЛІ ПÐРÐМЕТРИ "
+Параметри \fBbase_reachable_time\fP та \fBretrans_time\fP вважаютьÑÑ
+заÑтарілими. Програма \fBsysctl\fP не дозволÑÑ” змінювати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ†Ð¸Ñ…
+параметрів. КориÑтувачі, Ñкі вважають за потрібне викориÑтовувати заÑтарілі
+інтерфейÑи Ñдра, мають змінювати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ файловій ÑиÑтемі \fB/proc\fP у
+інший ÑпоÑіб. Приклад:
+.PP
+echo 256 > /proc/sys/net/ipv6/neigh/eth0/base_reachable_time
+.SH ФÐЙЛИ
+\fI/proc/sys\fP
+.br
+\fI/etc/sysctl.d/*.conf\fP
+.br
+\fI/run/sysctl.d/*.conf\fP
+.br
+\fI/usr/local/lib/sysctl.d/*.conf\fP
+.br
+\fI/usr/lib/sysctl.d/*.conf\fP
+.br
+\fI/lib/sysctl.d/*.conf\fP
+.br
+\fI/etc/sysctl.conf\fP
+.SH "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ"
+\fBproc\fP(5), \fBsysctl.conf\fP(5), \fBregex\fP(7)
+.SH ÐВТОР
+.UR staikos@0wned.org
+George Staikos
+.UE
+.SH "Як надіÑлати звіт про вади"
+Про вади, будь лаÑка, повідомлÑйте на адреÑу
+.UR procps@freelists.org
+.UE
diff --git a/po-man/uk/sysctl.conf.5 b/po-man/uk/sysctl.conf.5
new file mode 100644
index 0000000..8d4ef32
--- /dev/null
+++ b/po-man/uk/sysctl.conf.5
@@ -0,0 +1,90 @@
+.\"
+.\" Copyright (c) 2016-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2019-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1999 George Staikos <staikos@0wned.org>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH SYSCTL.CONF 5 "15 вереÑÐ½Ñ 2021 року" procps\-ng "Формати файлів"
+.SH ÐÐЗВÐ
+sysctl.conf — файл попереднього Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ налаштувань sysctl.
+.SH ОПИС
+\fBsysctl.conf\fP — проÑтий файл, що міÑтить Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ sysctl, Ñкі Ñлід
+прочитати Ñ– вÑтановити за допомогою \fBsysctl\fP. СинтакÑÐ¸Ñ Ñ” проÑтим:
+.RS
+.sp
+.nf
+.ne 7
+# коментар
+; коментар
+
+ключ = значеннÑ
+.fi
+.RE
+.PP
+Зауважте, що порожні Ñ€Ñдки буде проігноровано так Ñамо, Ñк пробіли перед Ñ–
+піÑÐ»Ñ ÐºÐ»ÑŽÑ‡Ð° або значеннÑ, хоча Ñамі Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶ÑƒÑ‚ÑŒ міÑтити пробіли. РÑдки,
+що починаютьÑÑ Ñ–Ð· Ñимволу \fI#\fP або \fI;\fP вважатимутьÑÑ ÐºÐ¾Ð¼ÐµÐ½Ñ‚Ð°Ñ€Ñми Ñ–
+ігноруватимутьÑÑ.
+
+Якщо Ñ€Ñдок починаєтьÑÑ Ð· одинарного \-, будь\-Ñкі невдалі Ñпроби вÑтановити
+Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ проігноровано.
+
+.SH ЗÐУВÐЖЕÐÐЯ
+ОÑкільки файл \fB/etc/sysctl.conf\fP викориÑтовуєтьÑÑ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ
+типових значень параметрів Ñдра, у цьому файлі попередньо визначаєтьÑÑ Ð»Ð¸ÑˆÐµ
+незначна кількіÑÑ‚ÑŒ параметрів. Щоб ознайомитиÑÑ Ð·Ñ– ÑпиÑком уÑÑ–Ñ… можливих
+параметрів, ÑкориÑтайтеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ \fI/sbin/sysctl\ \-a\fP або підручником із
+\fBsysctl\fP(8). ÐžÐ¿Ð¸Ñ Ð¾ÐºÑ€ÐµÐ¼Ð¸Ñ… параметрів можна знайти у документації до Ñдра
+ÑиÑтеми.
+
+МакÑимальною довжиною Ñ€Ñдка Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ” 4096 Ñимволів через Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð°
+запиÑи \fI/proc\fP у Ñдрі Linux.
+.SH ПРИКЛÐД
+.RS
+.sp
+.nf
+.ne 7
+# Зразок sysctl.conf
+#
+ kernel.domainname = example.com
+; тут Ñ” пробіл, Ñкий буде запиÑано до sysctl!
+ kernel.modprobe = /sbin/mod probe
+.fi
+.RE
+.PP
+.SH ФÐЙЛИ
+\fI/etc/sysctl.d/*.conf\fP
+.br
+\fI/run/sysctl.d/*.conf\fP
+.br
+\fI/usr/local/lib/sysctl.d/*.conf\fP
+.br
+\fI/usr/lib/sysctl.d/*.conf\fP
+.br
+\fI/lib/sysctl.d/*.conf\fP
+.br
+\fI/etc/sysctl.conf\fP
+
+ШлÑхи, де зазвичай зберігаютьÑÑ Ñ„Ð°Ð¹Ð»Ð¸ попереднього завантаженнÑ
+\fBsysctl\fP. Див. також параметр \fBsysctl\fP \fI\-\-system\fP.
+.SH "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ"
+\fBsysctl\fP(8)
+.SH ÐВТОР
+.UR staikos@0wned.org
+George Staikos
+.UE
+.SH "Як надіÑлати звіт про вади"
+Про вади, будь лаÑка, повідомлÑйте на адреÑу
+.UR procps@freelists.org
+.UE
diff --git a/po-man/uk/tload.1 b/po-man/uk/tload.1
new file mode 100644
index 0000000..6159369
--- /dev/null
+++ b/po-man/uk/tload.1
@@ -0,0 +1,62 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1993 Matt Welsh <mdw@tc.cornell.edu>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH TLOAD 1 "4 Ñ‡ÐµÑ€Ð²Ð½Ñ 2020 року" procps\-ng "Команди кориÑтувача"
+.SH ÐÐЗВÐ
+tload — програма Ð´Ð»Ñ Ð³Ñ€Ð°Ñ„Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ñередніх значень навантаженнÑ
+на ÑиÑтему.
+.SH "КОРОТКИЙ ОПИС"
+\fBtload\fP [\fIпараметри\fP] [\fItty\fP]
+.SH ОПИС
+\fBtload\fP виводить графік поточних Ñередніх значень Ð½Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° ÑиÑтему
+до вказаного \fItty\fP (або tty процеÑу \fBtload\fP, Ñкщо термінала не вказано).
+.SH ПÐРÐМЕТРИ
+.TP
+\fB\-s\fP, \fB\-\-scale\fP \fIчиÑло\fP
+За допомогою параметра маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° вÑтановити вертикальний маÑштаб
+показу (у Ñимволах між позначками на графіку). Менше Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°Ñ”
+більшому маÑштабу, а більше Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼ÐµÐ½ÑˆÐ¾Ð¼Ñƒ маÑштабу.
+.TP
+\fB\-d\fP, \fB\-\-delay\fP \fIчиÑло\fP
+ЧиÑло визначає затримку у \fIÑекундах\fP між оновленнÑми графіка.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+ВивеÑти цю довідку.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+ВивеÑти дані щодо верÑÑ–Ñ— Ñ– завершити роботу.
+.PP
+.SH ФÐЙЛИ
+\fI/proc/loadavg\fP — завантажити оÑереднені дані
+.SH "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ"
+\fBps\fP(1), \fBtop\fP(1), \fBuptime\fP(1), \fBw\fP(1)
+.SH Ð’ÐДИ
+Параметр \fB\-d\fP\fI затримка\fP вÑтановлює Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ñ€Ð³ÑƒÐ¼ÐµÐ½Ñ‚Ñƒ чаÑу Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸
+\fBalarm\fP(2). Якщо вказано параметр \-d 0, затримку Ñигналу буде вÑтановлено
+рівною 0, що ÑкаÑує надÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñигналу \fBSIGALRM\fP Ñ– Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ð¸Ñ…
+даних.
+.SH ÐВТОРИ
+Branko Lankester,
+.UR david@\:ods.\:com
+David Engel
+.UE , та
+.UR johnsonm@\:redhat.\:com
+Michael K. Johnson
+.UE .
+.SH "Як надіÑлати звіт про вади"
+Про вади, будь лаÑка, повідомлÑйте на адреÑу
+.UR procps@freelists.org
+.UE
diff --git a/po-man/uk/top.1 b/po-man/uk/top.1
new file mode 100644
index 0000000..8010c71
--- /dev/null
+++ b/po-man/uk/top.1
@@ -0,0 +1,2878 @@
+.ig
+. manual page for NEW and IMPROVED linux top
+.
+. Copyright (c) 2002-2023 Jim Warner <james.warner@comcast.net
+.
+. This file may be copied under the terms of the GNU Public License.
+..
+.\" Setup ////////////////////////////////////////////////////////////////
+.\" Commonly used strings (for consistency) ----------
+.\" - our em-dashes
+.ds Em \ \-\-\
+.ds EM \fB\ \-\-\ \fP
+.\" - our program name (makes great grammar)
+.ds We top
+.ds WE \fBtop\fP
+.\" - other misc strs for consistent usage
+.ds F \fIВимкнено\fP
+.ds O \fIУвімкнено\fP
+.
+.ds AK зірочка («*»)
+.ds AM режим альтернативних показів
+.ds AS додаткове Ñховище
+.ds CF файла налаштувань
+.ds CG `поточне' вікно/група полів
+.ds CI інтерактивна команда
+.ds CO параметр командного Ñ€Ñдка
+.ds CT перемикач команд
+.ds CW `поточне' вікно
+.ds FG група полів
+.ds FM повноекранний режим
+.ds KA клавіша зі Ñтрілкою
+.ds KS клавіша гортаннÑ
+.ds MP фізична пам'ÑÑ‚ÑŒ
+.ds MS файл резервної пам’ÑÑ‚Ñ–
+.ds MV віртуальна пам'ÑÑ‚ÑŒ
+.ds NT \fBЗауваженнÑ\fP:
+.ds PU ПроцеÑор
+.ds Pu процеÑор
+.ds SA облаÑÑ‚ÑŒ резюме
+.ds TA облаÑÑ‚ÑŒ завдань
+.ds TD показ завдань
+.ds TT \fBпроцеÑів\fP або \fBпотоків обробки\fP
+.ds TW вікно завданнÑ
+.\" Reference to the various widths/sizes ------------
+.\" - the max screen width limit
+.ds WX 512
+.\" - the header width w/ all fields
+.ds WF приблизно 250
+.\" - pid monitoring limit
+.\" Xref's that depend on/mention other stuff --------
+.ds Xa див.
+.ds XC Див.
+.ds Xc див.
+.ds XT Див. тему
+.ds Xt див. тему
+.ds XX Див. «ОГЛЯД, типи пам'ÑÑ‚Ñ– Linux», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ
+.ds ZX ДоÑтуп до значень smaps Ñ” удеÑÑтеро коштовнішим щодо обчиÑлювальних можливоÑтей, ніж доÑтуп до інших ÑтатиÑтичних даних щодо пам'ÑÑ‚Ñ–, а доÑтуп до даних Ð´Ð»Ñ Ñ–Ð½ÑˆÐ¸Ñ… кориÑтувачів потребує привілеїв root.
+.
+.\" Document /////////////////////////////////////////////////////////////
+.\" ----------------------------------------------------------------------
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH TOP 1 "Ñерпень 2023 року" procps\-ng "Команди кориÑтувача"
+.\" ----------------------------------------------------------------------
+.nh
+
+.\" ----------------------------------------------------------------------
+.SH ÐÐЗВÐ
+.\" ----------------------------------------------------------------------
+top — показ процеÑів Linux
+
+.\" ----------------------------------------------------------------------
+.SH "КОРОТКИЙ ОПИС"
+.\" ----------------------------------------------------------------------
+\*(WE [параметри]
+
+.\" ----------------------------------------------------------------------
+.SH ОПИС
+.\" ----------------------------------------------------------------------
+Програма \*(WE забезпечує динамічний переглÑд у режимі реального чаÑу
+запущеної ÑиÑтеми. Вона може показувати загальні відомоÑÑ‚Ñ– щодо \fBÑиÑтеми\fP,
+а також ÑпиÑок \*(TT, Ñкими зараз керує Ñдро Linux. КориÑтувач може
+налаштовувати будь\-Ñкі типи показаних загальних відомоÑтей щодо ÑиÑтеми,
+порÑдок Ñ– тип відомоÑтей, Ñкі показано Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑів. ÐÐ°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð°
+зберегти Ñ– відновлювати піÑÐ»Ñ Ð¿ÐµÑ€ÐµÐ·Ð°Ð¿ÑƒÑку програми.
+
+У програмі передбачено обмежений інтерактивний Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð´Ð»Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ
+процеÑами, а також набагато ширший Ñ–Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð´Ð»Ñ Ð¾ÑобиÑтого налаштовуваннÑ
+\*(Em він включає уÑÑ– аÑпекти роботи програми. Хоча уÑе це буде опиÑано Ñк
+\*(WE у решті цього документа, ви можете назвати програму будь\-Ñк. Програму
+із новою назвою, можливо проÑто альтернативою назви, буде відтворено у
+показі \*(We Ñ– викориÑтано Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ‚Ð° запиÑу \*(CF.
+
+.\" ----------------------------------------------------------------------
+.SH ОГЛЯД
+.\" ----------------------------------------------------------------------
+.\" ......................................................................
+.SS ДокументаціÑ
+.\" ----------------------------------------------------------------------
+Решта «ЗміÑту»
+
+.nf
+ ОГЛЯД
+ Робота програми
+ Типи пам'ÑÑ‚Ñ– Linux
+ 1. ПÐРÐМЕТРИ КОМÐÐДÐОГО РЯДКÐ
+ 2. ПОКÐЗ РЕЗЮМЕ
+ а. СЕРЕДÐІ ЗÐÐЧЕÐÐЯ ЧÐСУ РОБОТИ ТРÐÐÐ’ÐÐТÐЖЕÐÐЯ
+ б. СТÐÐИ ЗÐВДÐÐÐЯ ТРПРОЦЕСОРÐ
+ в. ВИКОРИСТÐÐÐЯ ПÐÐœ'ЯТІ
+ 3. ПОКÐЗ ПОЛІВ / СТОВПЧИКІВ
+ а. ОПИС ПОЛІВ
+ б. КЕРУВÐÐÐЯ ПОЛЯМИ
+ 4. ІÐТЕРÐКТИВÐІ КОМÐÐДИ
+ а. ЗÐГÐЛЬÐІ КОМÐÐДИ
+ б. КОМÐÐДИ ОБЛÐСТІ РЕЗЮМЕ
+ в. КОМÐÐДИ ОБЛÐСТІ ЗÐВДÐÐЬ
+ 1. ВиглÑд
+ 2. ВміÑÑ‚
+ 3. Розмір
+ 4. УпорÑдкуваннÑ
+ г. ПРИВ'ЯЗКРКОЛЬОРІВ
+ 5. ПОЛОЖЕÐÐЯ ÐЛЬТЕРÐÐТИВÐОГО ПОКÐЗУ
+ а. ОГЛЯД ВІКОÐ
+ б. КОМÐÐДИ ДЛЯ ВІКОÐ
+ в. ГОРТÐÐÐЯ ВІКÐÐ
+ г. ПОШУК У ВІКÐІ
+ д. ФІЛЬТРУВÐÐÐЯ У ВІКÐІ
+ 6. ФÐЙЛИ
+ а. ФÐЙЛ ОСОБИСТИХ ÐÐЛÐШТУВÐÐЬ
+ б. ДОДÐÐ’ÐÐÐЯ ЗÐПИСІВ ДЛЯ ІÐСПЕКТУВÐÐÐЯ
+ в. ФÐЙЛ ЗÐГÐЛЬÐОСИСТЕМÐИХ ÐÐЛÐШТУВÐÐЬ
+ г. ФÐЙЛ ЗÐГÐЛЬÐОСИСТЕМÐИХ ОБМЕЖЕÐЬ
+ 7. ЗМІÐÐІ СЕРЕДОВИЩÐ
+ 8. ЗРÐЗКИ ДУРÐУВÐТИХ ТРЮКІВ
+ а. ÐœÐ°Ð³Ñ–Ñ Ñдра
+ b. Вікна\-Ñтрибунці
+ c. Вікно Великого Птаха
+ d. Перемикачка
+ 9. Ð’ÐДИ, 10. ДИВ. ТÐКОЖ
+.fi
+
+.\" ......................................................................
+.SS "Робота програми"
+.\" ----------------------------------------------------------------------
+При роботі з \*(We найважливішими клавішами є клавіша довідки (h або ?) і
+клавіша виходу («q»). Крім того, Ð´Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ програми ви можете
+ÑкориÑтатиÑÑ Ñ‚Ñ€Ð°Ð´Ð¸Ñ†Ñ–Ð¹Ð½Ð¾ÑŽ комбінацією Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ð½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ програм (^C).
+
+Під Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку уперше програма покаже вам такі традиційні елементи на
+головному екрані \*(We: 1) облаÑÑ‚ÑŒ резюме; 2) заголовок полів/Ñтовпчиків; 3)
+облаÑÑ‚ÑŒ завдань. ÐžÐ¿Ð¸Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ з цих елементів наведено у наÑтупних
+розділах. Також ви побачите Ñ€Ñдок введеннÑ/повідомлень між облаÑÑ‚ÑŽ резюме та
+заголовком Ñтовпчиків. Цей Ñ€Ñдок не потребує зайвих поÑÑнень.
+
+Головна Ñторінка \*(We \fIзагалом\fP Ñ” доволі адаптивною до змін у розмірноÑÑ‚ÑÑ…
+термінала в X\-Window. Інші Ñторінки \*(We можуть бути менше приÑтоÑовані до
+змін, оÑобливо Ñторінки зі Ñтатичним текÑтом. Це, втім, повніÑÑ‚ÑŽ залежить
+від вашої ÑиÑтеми ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–ÐºÐ½Ð°Ð¼Ð¸ та емулÑтора термінала. Може так
+трапитиÑÑ, що обчиÑÐ»ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ð¼Ñ–Ñ€Ñƒ термінала та поточного вміÑту у цих
+програмах відрізнÑєтьÑÑ Ð²Ñ–Ð´ обчиÑÐ»ÐµÐ½Ð½Ñ Ñƒ \*(We, Ñке завжди виконуєтьÑÑ Ð½Ð°
+оÑнові викликів операційної ÑиÑтеми.
+
+ПіÑÐ»Ñ Ð±ÑƒÐ´ÑŒ\-Ñкої дії зі зміни розмірів, Ñкщо вміÑÑ‚ Ñторінки \*(We пошкоджено,
+дані показано не повніÑÑ‚ÑŽ або не впорÑдковано, проÑте Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñ‡Ð¾Ð³Ð¾ÑÑŒ
+нешкідливого, наприклад Ñимволу пунктуації або клавіші переÑÑƒÐ²Ð°Ð½Ð½Ñ ÐºÑƒÑ€Ñора,
+зазвичай, відновлює нормальний показ даних. Ð’ екÑтремальних випадках, майже
+напевно, Ñпрацює така поÑлідовніÑÑ‚ÑŒ:
+.nf
+ \fIкл/ком Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fP
+ ^Z \fBпризупинити\fP \*(We
+ fg \fBпоновити\fP \*(We
+ <Ліворуч> примуÑово \fBперемалювати\fP екран (Ñкщо потрібно)
+.fi
+
+Ðле Ñкщо показані дані лишаютьÑÑ Ð¿Ð¾ÑˆÐºÐ¾Ð´Ð¶ÐµÐ½Ð¸Ð¼Ð¸ Ñ– піÑÐ»Ñ Ñ†ÑŒÐ¾Ð³Ð¾, ви можете
+Ñпробувати ще один крок. Ð’Ñтавте цю команду піÑÐ»Ñ Ñ‚Ð¾Ð³Ð¾, Ñк роботу \*(We було
+призупинено, але перед Ñ—Ñ— відновленнÑм.
+.nf
+ \fIкл/ком Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fP
+ reset відновити ваші \fBпараметри термінала\fP
+.fi
+
+\*(NT ширину переглÑду у \*(We обмежено \*(WX позиціÑми. Показ уÑÑ–Ñ… полів
+потребує \*(WF Ñимволів. Решту ширини екрана буде, зазвичай, викориÑтано длÑ
+будь\-Ñких показаних Ñтовпчиків змінної ширини. Стовпчики змінної ширини,
+зокрема COMMAND, опиÑано у розділі 3а. ОПИСИ ПОЛІВ. Ðа ширину виведених
+даних також може вплинути параметр \-w, обговоренню Ñкого приÑвÑчено розділ
+1. ПÐРÐМЕТРИ КОМÐÐДÐОГО РЯДКÐ.
+
+Ðарешті, деÑкі з екранів або функцій \*(We потребують викориÑÑ‚Ð°Ð½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–Ñˆ
+переÑÑƒÐ²Ð°Ð½Ð½Ñ ÐºÑƒÑ€Ñора, зокрема Ñтандартних клавіш зі Ñтрілками та клавіш Home,
+End, PgUp Ñ– PgDn. Якщо у вашому терміналі або емулÑторі термінала не
+передбачено доÑтупу до цих клавіш, можна ÑкориÑтатиÑÑ Ñ‚Ð°ÐºÐ¸Ð¼Ð¸ альтернативами:
+.nf
+ \fI клавіша еквівалентні комбінації клавіш \fP
+ Ліворуч alt +\fB h \fP
+ Вниз alt +\fB j \fP
+ Вгору alt +\fB k \fP
+ Праворуч alt +\fB l \fP
+ Home alt + ctrl +\fB h \fP
+ PgDn alt + ctrl +\fB j \fP
+ PgUp alt + ctrl +\fB k \fP
+ End alt + ctrl +\fB l \fP
+.fi
+
+Клавіші зі Ñтрілками \fBВгору\fP та \fBВниз\fP Ñ” оÑобливо важливими у Ñ€Ñдку запиту
+щодо вхідних даних, Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñких завершуєтьÑÑ Ð½Ð°Ñ‚Ð¸ÑканнÑм клавіші
+<Enter>. Цими клавішами або їхніми альтернативами можна ÑкориÑтатиÑÑ
+Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð½Ñ–Ñ… Ñ€Ñдків введеннÑ, Ñкі потім можна відредагувати та
+ввеÑти знову. Крім того, передбачено чотири додаткових клавіші із
+орієнтованим на Ñ€Ñдки введеннÑм.
+.nf
+ \fI клавіша Ñпеціальне Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fP
+ Вгору відновити \fBÑтаріший\fP Ñ€Ñдок Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾Ð³Ð¾ редагуваннÑ
+ Вниз відновити \fBновіший\fP Ñ€Ñдок або \fBвитерти\fP увеÑÑŒ Ñ€Ñдок
+ Insert перемкнутиÑÑ Ð¼Ñ–Ð¶ режимами \fBвÑтавленнÑ\fP Ñ– \fBзаміни\fP
+ Delete \fBвилучити\fP Ñимвол під курÑором, переÑунути інші ліворуч
+ Home перейти на \fBпочаток\fP Ñ€Ñдка введеннÑ
+ End перейти на \fBкінець\fP Ñ€Ñдка введеннÑ
+.fi
+
+.\" ......................................................................
+.SS "Типи пам'ÑÑ‚Ñ– Linux"
+.\" ----------------------------------------------------------------------
+У програмі викориÑтано три типи пам'ÑÑ‚Ñ–, один Ñ” необов'Ñзковим. Першим типом
+Ñ” фізична пам'ÑÑ‚ÑŒ, обмежений реÑурÑ, у Ñкому зберігаютьÑÑ ÐºÐ¾Ð´ Ñ– дані при
+виконанні або викориÑтанні. Далі, Ñ” необов'Ñзковий файл резервної пам'ÑÑ‚Ñ–,
+де зберігаютьÑÑ Ð·Ð¼Ñ–Ð½ÐµÐ½Ñ– дані, Ñкі згодом можна отримати, Ñкщо перевищено
+обÑÑг Ð´Ð»Ñ Ñ„Ñ–Ð·Ð¸Ñ‡Ð½Ð¾Ñ— пам'ÑÑ‚Ñ–. Ðарешті, Ñ” віртуальна пам'ÑÑ‚ÑŒ, майже необмежений
+реÑÑƒÑ€Ñ Ñкої викориÑтовуєтьÑÑ Ð·Ð° такими призначеннÑми:
+
+.nf
+ 1. абÑтракціÑ, вільна від адреÑ/обмежень фізичної пам'ÑÑ‚Ñ–
+ 2. ізолÑціÑ, кожен Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð² окремому адреÑному проÑторі
+ 3. Ñпільне викориÑтаннÑ, одна прив'Ñзка може Ñлугувати декільком потребам
+ 4. гнучкіÑÑ‚ÑŒ, прив'Ñзка віртуальної адреÑи до файла
+.fi
+
+Ðезалежно від того, Ñку з цих форм може приймати пам'ÑÑ‚ÑŒ, уÑіма ними ÑиÑтема
+керує Ñк Ñторінками (типовим розміром Ñторінки Ñ” 4096 байтів), але типово
+виражаєтьÑÑ Ñƒ \*(We у КіБ (кібібайтах). ÐžÐ±Ð³Ð¾Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– у розділі
+«2в. ВИКОРИСТÐÐÐЯ ПÐÐœ'ЯТІ» ÑтоÑуєтьÑÑ Ñ„Ñ–Ð·Ð¸Ñ‡Ð½Ð¾Ñ— пам'ÑÑ‚Ñ– та резервної пам'ÑÑ‚Ñ–
+на диÑку Ð´Ð»Ñ ÑиÑтеми у цілому. ОглÑд пам'ÑÑ‚Ñ– наведено у розділі «3. ПОЛЯ /
+ПОКÐЗ СТОВПЧИКІВ», він ÑтоÑуєтьÑÑ ÑƒÑÑ–Ñ… трьох типів пам'ÑÑ‚Ñ–, але Ð´Ð»Ñ Ð¾ÐºÑ€ÐµÐ¼Ð¸Ñ…
+процеÑів.
+
+Ð”Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ з таких процеÑів кожну Ñторінку пам'ÑÑ‚Ñ– обмежено одним
+квадрантом із наведеної нижче таблиці. Включати будь\-Ñку з чотирьох можуть Ñ–
+фізична пам'ÑÑ‚ÑŒ, Ñ– віртуальна пам'ÑÑ‚ÑŒ, а резервна пам'ÑÑ‚ÑŒ на диÑку може
+включати лише Ñторінки з квадрантів від 1 до 3. Пам'ÑÑ‚ÑŒ у квадранті 4, при
+зміні, працює Ñк влаÑна резервна пам'ÑÑ‚ÑŒ на диÑку.
+
+.nf
+ \fBПриватна\fP | \fBСпільна\fP
+ \fB1\fP | \fB2\fP
+ \fBÐнонімна\fP . stack |
+ . malloc() |
+ . brk()/sbrk() | . POSIX shm*
+ . mmap(PRIVATE, ANON) | . mmap(SHARED, ANON)
+ \-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-+\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-\-
+ . mmap(PRIVATE, fd) | . mmap(SHARED, fd)
+ \fBÐа оÑнові файла\fP . pgms/shared libs |
+ \fB3\fP | \fB4\fP
+.fi
+
+Ðаведені нижче відомоÑÑ‚Ñ– можуть допомогти у інтерпретації значень рівнів
+пам'ÑÑ‚Ñ–, Ñкі показано у форматі маÑштабованих Ñтовпчиків Ñ– опиÑано у розділі
+«3а. ОПИС ПОЛІВ».
+
+.nf
+ %MEM \- проÑто RES, Ñке поділено на загальний обÑÑг фізичної пам'ÑÑ‚Ñ–
+ CODE \- чаÑтина «pgms» квадранта \fB3\fP
+ DATA \- увеÑÑŒ квадрант \fB1\fP VIRT Ñ– уÑÑ– Ñвним чином отримані
+ за допомогою mmap Ñторінки на оÑнові файла квадранта \fB3\fP
+ RES \- уÑе, що розміщено у фізичній пам'ÑÑ‚Ñ–, починаючи з
+ Linux\-4.5, Ñ” Ñумою таких трьох полів:
+ RSan \- Ñторінки з квадранта \fB1\fP, куди включено
+ колишні Ñторінки квадранта \fB3\fP, Ñкщо Ñ—Ñ… змінено
+ RSfd \- Ñторінки квадранта \fB3\fP Ñ– квадранта \fB4\fP
+ RSsh \- Ñторінки квадранта \fB2\fP
+ RSlk \- підмножина RES, Ñку не можна вивантажити до резервної пам'ÑÑ‚Ñ– (будь\-Ñкий квадрант)
+ SHR \- підмножина RES (виключає \fB1\fP, включає уÑÑ– \fB2\fP Ñ– \fB4\fP, деÑкі \fB3\fP)
+ SWAP \- потенційно будь\-Ñкий квадрант, окрім \fB4\fP
+ USED \- проÑто Ñума RES Ñ– SWAP
+ VIRT \- уÑе, що викориÑтано Ñ–/або зарезервовано (уÑÑ– квадранти)
+.fi
+
+\*(NT Хоча образи програми Ñ– Ñпільні бібліотеки вважаютьÑÑ \fIприватними\fP длÑ
+процеÑу, Ñ—Ñ… буде враховано Ñк \fIÑпільні\fP (SHR) Ñдром ÑиÑтеми.
+
+.\" ----------------------------------------------------------------------
+.SH "1. ПÐРÐМЕТРИ КОМÐÐДÐОГО РЯДКÐ"
+.\" ----------------------------------------------------------------------
+Обов'Ñзкові \fIаргументи\fP Ð´Ð»Ñ Ð´Ð¾Ð²Ð³Ð¸Ñ… параметрів також Ñ” обов'Ñзковими длÑ
+коротких параметрів.
+
+Хоча це Ñ– не Ñ” обов'Ñзковим, можна ÑкориÑтатиÑÑ Ð·Ð½Ð°ÐºÐ¾Ð¼ «дорівнює» у
+будь\-Ñкій з форм параметра. Також можна додавати пробіли перед Ñ– піÑÐ»Ñ Â«=».
+
+.TP 3
+\-\fBb\fP, \fB\-\-batch\fP
+ЗапуÑкає \*(We у пакетному режимі, що може бути кориÑним Ð´Ð»Ñ Ð½Ð°Ð´ÑиланнÑ
+виведених даних з \*(We до інших програм або до файла. У цьому режимі \*(We
+не прийматиме вхідних даних Ñ– працюватиме, аж доки не буде доÑÑгнуто
+кількоÑÑ‚Ñ– ітерацій, Ñку вÑтановлено за допомогою параметра командного Ñ€Ñдка
+«\-n», або до примуÑового Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ програми.
+
+.TP 3
+\-\fBc\fP, \fB\-\-cmdline\-toggle\fP
+ЗапуÑкає \*(We зі оберненнÑм до оÑтаннього збереженого Ñтану «c». Отже, Ñкщо
+\*(We показувала Ñ€Ñдки команд, піÑÐ»Ñ Ð·Ð°Ð¿ÑƒÑку програма показуватиме назви
+програм, Ñ– навпаки. \*(XC інтерактивну команду «c», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ.
+
+.TP 3
+\-\fBd\fP, \fB\-\-delay\fP = \fIСЕКУÐДИ\fP [\fI.ДЕСЯТІ\fP]
+Визначає затримку між оновленнÑми екрана Ñ– перевизначає відповідне значеннÑ
+у оÑобиÑтому файлі налаштувань або типові Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´ чаÑ
+запуÑку. Пізніше, це Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° змінити за допомогою інтерактивних
+команд «d» та «s».
+
+До уваги братимутьÑÑ Ð´Ñ€Ð¾Ð±Ð¾Ð²Ñ– чаÑтини Ñекунди, але не можна викориÑтовувати
+від'ємні чиÑла. Втім, за будь\-Ñких умов, такі зміни заборонено виконувати,
+Ñкщо \*(We працює у захищеному режимі, уÑім, окрім кориÑтувача root (Ñкщо не
+було викориÑтано параметра командного Ñ€Ñдка «s»). Додаткові відомоÑÑ‚Ñ– щодо
+захищеного режиму наведено у розділі 6г. ФÐЙЛ ЗÐГÐЛЬÐОСИСТЕМÐИХ ОБМЕЖЕÐЬ.
+
+.TP 3
+\-\fBE\fP, \fB\-\-scale\-summary\-mem\fP = \fIk\fP | \fIm\fP | \fIg\fP | \fIt\fP | \fIp\fP | \fIe\fP
+Ðаказує \*(We примуÑово маÑштабувати пам'ÑÑ‚ÑŒ у облаÑÑ‚Ñ– завдань за такими
+величинами:
+.nf
+ k \- кібібайти
+ m \- мебібайти
+ g \- гібібайти
+ t \- тебібайти
+ p \- пебібайти
+ e \- екÑбібайти
+.fi
+
+Згодом маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° змінити за допомогою команди\-перемикача «E».
+
+.TP 3
+\-\fBe\fP, \fB\-\-scale\-task\-mem\fP = \fIk\fP | \fIm\fP | \fIg\fP | \fIt\fP | \fIp\fP
+Ðаказує \*(We примуÑово маÑштабувати пам'ÑÑ‚ÑŒ у облаÑÑ‚Ñ– завдань за такими
+величинами:
+.nf
+ k \- кібібайти
+ m \- мебібайти
+ g \- гібібайти
+ t \- тебібайти
+ p \- пебібайти
+.fi
+
+Згодом маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° змінити за допомогою команди\-перемикача «e».
+
+.TP 3
+\-\fBH\fP, \fB\-\-threads\-show\fP
+Ðаказує \*(We показувати окремі потоки обробки. Без цього параметра
+командного Ñ€Ñдка буде показано Ñумарні дані щодо уÑÑ–Ñ… потоків кожного
+процеÑу. Пізніше режим роботи можна змінити за допомогою інтерактивної
+команди «H».
+
+.TP 3
+\-\fBh\fP, \fB\-\-help\fP
+ВивеÑти текÑÑ‚ довідки Ñ– завершити роботу.
+
+.TP 3
+\-\fBi\fP, \fB\-\-idle\-toggle\fP
+ЗапуÑкає \*(We із оберненнÑм оÑтаннього збереженого Ñтану «i». Якщо цей
+перемикач вимкнено, завданнÑ, Ñкі не викориÑтовували центральний процеÑор з
+моменту оÑтаннього оновленнÑ, не буде показано. Щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про цей
+перемикач, ознайомтеÑÑ Ð· розділом 4в. КОМÐÐДИ ОБЛÐСТІ ЗÐВДÐÐЬ, РОЗМІР.
+
+.TP 3
+\-\fBn\fP, \fB\-\-iterations\fP = \fIЧИСЛО\fP
+Визначає макÑимальну кількіÑÑ‚ÑŒ ітерацій або кадрів, Ñкі \*(We має показати,
+перш ніж завершити роботу.
+
+.TP 3
+\-\fBO\fP, \fB\-\-list\-fields\fP
+Цей параметр працює Ñк допоміжна форма Ð´Ð»Ñ Ð¾Ð¿Ð¸Ñаного нижче параметра
+\-o. ВикориÑÑ‚Ð°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ параметра наказує \*(We виводити кожну назву
+доÑтупного полÑ, а потім завершити роботу. Такі назви підлÑгають перекладу
+NLS (National Language Support).
+
+.TP 3
+\-\fBo\fP, \fB\-\-sort\-override\fP = \fIÐÐЗВÐ_ПОЛЯ\fP
+Визначає назву полÑ, за Ñким буде упорÑдковано завданнÑ, незалежно від того,
+що вказано у файлі налаштувань. Ви можете допиÑати «+» або «\-» до назви
+полÑ, щоб змінити порÑдок. Початковий «+» визначає упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´
+більших до менших значень, а початковий «\-» — від менших до більших.
+
+Цей параметр призначено, в оÑновному, Ð´Ð»Ñ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ роботи у
+автоматизованому/керованому Ñкриптами пакетному режимі.
+
+.TP 3
+\-\fBp\fP, \fB\-\-pid\fP = \fIСПИСОК_PID\fP (у форматі \fI1\fP,\fI2\fP,\fI3\fP, ... або \-p\fI1\fP \-p\fI2\fP \-p\fI3\fP ...)
+СпоÑтерігати лише за процеÑами із вказаними ідентифікаторами. Втім, при
+поєднанні із режимом потоків обробки («H»), також буде показано уÑÑ– процеÑи
+у групі потоків обробки (\*(Xa TGID) кожного PID, за Ñким ведетьÑÑ
+ÑпоÑтереженнÑ.
+
+Цей параметр можна викориÑтати до 20 разів або ви можете вказати ÑпиÑок
+відокремлених комами аж до 20 pid. Можна викориÑтовувати Ñуміш обох запиÑів.
+
+Ðульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ pid вважаєтьÑÑ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ‚Ð¾Ñ€Ð¾Ð¼ процеÑу Ñамої програми \*(We
+піÑÐ»Ñ Ñ—Ñ— запуÑку.
+
+Це лише параметр командного Ñ€Ñдка, Ñ– Ñкщо ви хочете повернутиÑÑ Ð´Ð¾
+звичайного режиму роботи програми, немає потреби у виході з програми і
+перезапуÑку \*(Em проÑто видайте одну з таких інтерактивних команд: «=», «u»
+або «U».
+
+Параметри командного Ñ€Ñдка «p», «u» Ñ– «U» Ñ” взаємно виключними.
+
+.TP 3
+\-\fBS\fP, \fB\-\-accum\-time\-toggle\fP
+ЗапуÑкає \*(We із Ñтаном, оберненим щодо оÑтаннього збереженого Ñтану
+«S». Якщо режим накопиченого чаÑу увімкнено, кожен Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±ÑƒÐ´Ðµ показано із
+чаÑом центрального процеÑора, Ñкий викориÑтано Ñамим процеÑом Ñ– уÑіма його
+завершеними дочірніми процеÑами. Додаткові відомоÑÑ‚Ñ– щодо цього режиму можна
+отримати у розділі щодо інтерактивної команди «S».
+
+.TP 3
+\-\fBs\fP, \fB\-\-secure\-mode\fP
+ПримуÑово запуÑкає \*(We у захищеному режимі, навіть Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувача
+root. Цим режимом набагато краще керувати за допомогою загальноÑиÑтемного
+файла налаштувань (див. розділ 6. ФÐЙЛИ).
+
+.TP 3
+\-\fBU\fP, \fB\-\-filter\-any\-user\fP = \fIКОРИСТУВÐЧ\fP (Ñк \fIчиÑло\fP або \fIім'Ñ\fP)
+Показати лише процеÑи із вказаним ідентифікатором кориÑтувача або іменем
+кориÑтувача. Цей параметр ÑтоÑуєтьÑÑ \fIбудь\-Ñкого\fP кориÑтувача
+(\fIÑправжнього\fP, \fIефективного\fP, \fIзбереженого\fP або \fIфайлової ÑиÑтеми\fP).
+
+Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð½Ð°ÐºÑƒ оклику («!») до ідентифікатора кориÑтувача або імені наказує
+\*(We показати лише процеÑи кориÑтувачів, Ñкі не збігаютьÑÑ Ñ–Ð· вказаним.
+
+Параметри командного Ñ€Ñдка «p», «u» Ñ– «U» Ñ” взаємно виключними.
+
+.TP 3
+\-\fBu\fP, \fB\-\-filter\-only\-euser\fP = \fIКОРИСТУВÐЧ\fP (Ñк \fIчиÑло\fP або \fIім'Ñ\fP)
+Показати лише процеÑи із вказаним ідентифікатором кориÑтувача або іменем
+кориÑтувача. Цей параметр ÑтоÑуєтьÑÑ Ð»Ð¸ÑˆÐµ \fIефективного\fP кориÑтувача.
+
+Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð½Ð°ÐºÑƒ оклику («!») до ідентифікатора кориÑтувача або імені наказує
+\*(We показати лише процеÑи кориÑтувачів, Ñкі не збігаютьÑÑ Ñ–Ð· вказаним.
+
+Параметри командного Ñ€Ñдка «p», «u» Ñ– «U» Ñ” взаємно виключними.
+
+.TP 3
+\-\fBV\fP, \fB\-\-version\fP
+ВивеÑти дані щодо верÑÑ–Ñ— Ñ– завершити роботу.
+
+.TP 3
+\-\fBw\fP, \fB\-\-width\fP [=\fIСТОВПЧИКИ\fP]
+У пакетному режимі, коли програму викориÑтано без аргументів, \*(We
+форматуватиме Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð· викориÑтаннÑм змінних Ñередовища COLUMNS= Ñ–
+LINES=, Ñкщо Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ†Ð¸Ñ… змінних вÑтановлено. Якщо Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ðµ вÑтановлено,
+ширину буде зафікÑовано на макÑимальному Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ \*(WX Ñтовпчиків. Якщо
+вказано аргумент, ширину Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ зменшено або збільшено (аж до
+\*(WX), а кількіÑÑ‚ÑŒ Ñ€Ñдків вважатиметьÑÑ Ð½ÐµÐ¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð¾ÑŽ.
+
+У режимі звичайного показу, Ñкщо параметр вказано без аргументу \*(We
+\fIÑпробує\fP форматувати Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð· викориÑтаннÑм змінних Ñередовища COLUMNS=
+Ñ– LINES=, Ñкщо їхні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñтановлено. Якщо аргумент вказано, ширину
+Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ðµ бути лише зменшено, а не збільшено. Буде викориÑтано змінні
+Ñередовища чи аргумент з \-w, Ñкщо програма \fIне\fP працює у пакетному режимі,
+Ñправжні розмірноÑÑ‚Ñ– терміналу ніколи не може бути перевищено.
+
+\*(NT Без викориÑÑ‚Ð°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ параметра командного Ñ€Ñдка, ширина виведеннÑ
+завжди обчиÑлюєтьÑÑ Ð½Ð° оÑнові термінала, з Ñкого викликано \*(We, незважаючи
+на те, чи запущено програму у пакетному режимі.
+
+.TP 3
+\-\fB1\fP, \fB\-\-single\-cpu\-toggle\fP
+ЗапуÑкає \*(We із оберненим щодо оÑтаннього збереженого Ñтану розділом
+Ñтанів центрального процеÑора облаÑÑ‚Ñ– резюме. Ðбо дані щодо уÑÑ–Ñ… центральних
+процеÑорів буде показано або у єдиному Ñ€Ñдку, або дані Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ процеÑора
+буде показано окремо, залежно від Ñтану перемикача вузлів NUMA Node («2»).
+
+Див. інтерактивні команди «1» Ñ– «2», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ.
+
+.\" ----------------------------------------------------------------------
+.SH "2. ПОКÐЗ РЕЗЮМЕ"
+.\" ----------------------------------------------------------------------
+Кожною з опиÑаних нижче облаÑтей можна окремо керувати за допомогою однією
+або декількох інтерактивних команд. Див. розділ 4б. КОМÐÐДИ ОБЛÐСТІ РЕЗЮМЕ,
+щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про ці команди.
+
+.\" ......................................................................
+.SS "2а. СЕРЕДÐІ ЗÐÐЧЕÐÐЯ ЧÐСУ РОБОТИ ТРÐÐÐ’ÐÐТÐЖЕÐÐЯ"
+.\" ----------------------------------------------------------------------
+Ð¦Ñ Ñ‡Ð°Ñтина ÑкладаєтьÑÑ Ð· одного Ñ€Ñдка такого вміÑту:
+.nf
+ назва \fBпрограми\fP або \fBвікна\fP, залежно від режиму показу;
+ поточний Ñ‡Ð°Ñ Ñ– Ñ‡Ð°Ñ Ð· моменту оÑтаннього завантаженнÑ;
+ загальна кількіÑÑ‚ÑŒ кориÑтувачів;
+ Ñереднє Ð½Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° ÑиÑтему за оÑтанні 1, 5 Ñ– 15 хвилин
+.fi
+
+.\" ......................................................................
+.SS "2б. СТÐÐИ ЗÐВДÐÐÐЯ ТРПРОЦЕСОРÐ"
+.\" ----------------------------------------------------------------------
+Ð¦Ñ Ñ‡Ð°Ñтина ÑкладаєтьÑÑ Ð· принаймні двох Ñ€Ñдків. У Ñередовищі із Ñиметричною
+багатопроцеÑорніÑÑ‚ÑŽ додаткові Ñ€Ñдки може бути викориÑтано Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ окремих
+чаÑток кожного процеÑора.
+
+У першому Ñ€Ñдку буде показано загальну кількіÑÑ‚ÑŒ \fBзавдань\fP або \fBпотоків обробки\fP, залежно від Ñтану перемикача режиму потоків. Загальні дані далі
+буде клаÑифіковано так:
+.nf
+ працює; приÑпано; зупинено; зомбі
+.fi
+
+У другому Ñ€Ñдку буде показано чаÑтки Ñтану центрального процеÑора на оÑнові
+проміжку чаÑу з оÑтаннього Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ….
+
+Типово, буде показано чаÑтки Ð´Ð»Ñ Ð½Ð°Ð²ÐµÐ´ÐµÐ½Ð¸Ñ… нижче категорій. Якщо верÑÑ–Ñ Ñдра
+є невідповідною, поле \fBst\fP може бути не показано.
+.nf
+ \fBus\fP : Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ непріоритетних процеÑів кориÑтувача
+ \fBsy\fP : Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ процеÑів Ñдра
+ \fBni\fP : Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ пріоритетних процеÑів кориÑтувача
+ \fBid\fP : чаÑ, витрачений у обробнику бездіÑльноÑÑ‚Ñ– Ñдра
+ \fBwa\fP : Ñ‡Ð°Ñ Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð° Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ\-виведеннÑ
+ \fBhi\fP : чаÑ, витрачений на обÑÐ»ÑƒÐ³Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð¿Ð°Ñ€Ð°Ñ‚Ð½Ð¸Ñ… переривань
+ \fBsi\fP : чаÑ, витрачений на обÑÐ»ÑƒÐ³Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð½Ð¸Ñ… переривань
+ \fBst\fP : чаÑ, викрадений з цієї Ð’Ðœ гіпервізором
+.fi
+
+Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Â«sy» вище також відповідає чаÑу Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð½Ð° віртуальному
+центральному процеÑорі Ð´Ð»Ñ Ð³Ð¾Ñтьових операційних ÑиÑтем, включно з тією, Ñка
+має пріоритетніÑÑ‚ÑŒ.
+
+Окрім першого Ñ€Ñдка завдань/потоків, передбачено альтернативні режими показу
+центрального процеÑора, доÑтуп до Ñких можна отримати за допомогою
+чотирипозиційної команди\-перемикача «t». У них програма показуватиме
+Ñкорочене резюме, що ÑкладаєтьÑÑ Ð· таких елементів:
+.nf
+ а б в г
+ %CПроц.: \fB75,0\fP/25,0 \fB100\fP[ ... ]
+
+.fi
+
+Де а) чаÑтка «user» (us + ni); б) Ñ” чаÑткою «system» (sy + hi + si +
+guests); в) Ñ” загальні дані чаÑток; Ñ– г) один з двох візуальних графіків цих
+предÑтавлень. У таких графіках також буде показано окремі чаÑтки
+«кориÑтувача» Ñ– «ÑиÑтеми».
+
+Командою\-перемикачем «4» кориÑтуютьÑÑ Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… понад двох
+процеÑорів на Ñ€Ñдок. Результати буде Ñкорочено шлÑхом Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ ÐµÐ»ÐµÐ¼ÐµÐ½Ñ‚Ñ–Ð² а)
+Ñ– б). Втім, ці дані уÑе ще буде показано на Ñамому графіку, Ñкщо активними Ñ”
+кольори, а Ñкщо ні, показано Ñмужки Ñ– блоки.
+
+Див. розділ 4б. КОМÐÐДИ ОБЛÐСТІ РЕЗЮМЕ, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про
+команди\-перемикачі «t» і «4».
+
+.\" ......................................................................
+.SS "2в. ВИКОРИСТÐÐÐЯ пам'ÑÑ‚Ñ–"
+.\" ----------------------------------------------------------------------
+Ð¦Ñ Ñ‡Ð°Ñтина ÑкладаєтьÑÑ Ð· двох Ñ€Ñдків, у Ñких може бути показано Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²
+одиницÑÑ… від кібібайтів (КіБ) до екÑбібайтів (ЕіБ) залежно від коефіцієнта
+маÑштабуваннÑ, Ñкий визначаєтьÑÑ Ñ–Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾ÑŽ командою «E». ПолÑ\-джерела з
+/proc/meminfo показано у дужках.
+
+РÑдок 1 показує віртуальну пам'ÑÑ‚ÑŒ, клаÑифіковану так:
+.nf
+ total ( MemTotal )
+ free ( MemFree )
+ used ( MemTotal \- MemAvailable )
+ buff/cache ( Buffers + Cached + SReclaimable )
+.fi
+
+РÑдок 2 показує, здебільшого, віртуальну пам'ÑÑ‚ÑŒ, клаÑифіковану так:
+.nf
+ total ( SwapTotal )
+ free ( SwapFree )
+ used ( SwapTotal \- SwapFree )
+ avail ( MemAvailable, Ñка Ñ” \*(MP )
+.fi
+
+ЧиÑло \fBдоÑÑ‚\fP у Ñ€Ñдку 2 Ñ” оцінкою фізичної пам'ÑÑ‚Ñ–, доÑтупною Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку
+нових програм, без резервної пам'ÑÑ‚Ñ– на диÑку. Ðа відміну від Ð¿Ð¾Ð»Ñ \fBвільн\fP,
+програма Ñпробує врахувати безпоÑередньо викориÑтовуваний кеш Ñторінок та
+шматки пам'ÑÑ‚Ñ–. Дані доÑтупні у Ñдрах піÑÐ»Ñ 3.14, Ñ—Ñ… емульовано у Ñдрах
+2.6.27+, у інших випадках це те Ñаме, що Ñ– \fBвільн\fP.
+
+У режимах альтернативного показу пам'ÑÑ‚Ñ–, буде показано два Ñкорочених
+резюме, що ÑкладатимутьÑÑ Ð· таких елементів:
+.nf
+ а б в
+ ГіБ Пам : \fB18,7\fP/15,738 [ ... ]
+ ГіБ Своп: \fB 0,0\fP/7,999 [ ... ]
+.fi
+
+Де а) Ñ” чаÑткою викориÑтаного; б) загалом доÑтупно Ñ– в) один з двох
+візуальних графіків цих предÑтавлень.
+
+У випадку фізичної пам'ÑÑ‚Ñ– чаÑтка відповідає різниці \fBзагал\fP Ñ– оцінки
+\fBдоÑÑ‚\fP, вказаний вище. Сам графік «Пам» поділено між некешованою чаÑтиною
+\fBвик.\fP та рештою пам'ÑÑ‚Ñ–, Ñку інакше не враховано у
+\fBдоÑÑ‚\fP. Див. 4б. КОМÐÐДИ ОБЛÐСТІ РЕЗЮМЕ та команду «m», щоб дізнатиÑÑ
+більше про цей оÑобливий чотирипозиційний перемикач.
+
+Ð¦Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ Ð¼Ð¾Ð¶Ðµ допомогти вам в інтерпретації показаних маÑштабованих
+значень:
+.nf
+ КіБ = кібібайт = 1024 байтів
+ МіБ = мебібайт = 1024 КіБ = 1048576 байтів
+ ГіБ = гібібайт = 1024 МіБ = 1073741824 байтів
+ ТіБ = тебібайт = 1024 ГіБ = 1099511627776 байтів
+ ПіБ = пебібайт = 1024 ТіБ = 1125899906842624 байтів
+ ЕіБ = екÑбібайт = 1024 ПіБ = 1152921504606846976 байтів
+.fi
+
+.\" ----------------------------------------------------------------------
+.SH "3. ПОЛЯ / СТОВПЧИКИ"
+.\" ----------------------------------------------------------------------
+.\" ......................................................................
+.SS "3а. ОПИС ПОЛІВ"
+.\" ----------------------------------------------------------------------
+Ðижче наведено ÑпиÑок доÑтупних у \*(We полів процеÑів (Ñтовпчиків). Пункти
+вказано Ñтрого за абетковим порÑдком ASCII. Ви можете змінити їхні позиції
+та те, чи буде Ñ—Ñ… показано за допомогою інтерактивної команди «f» (керуваннÑ
+полÑми).
+
+Як поле Ð´Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° викориÑтовувати будь\-Ñке поле. Ви можете
+керувати тим, буде запиÑи упорÑдковано за зроÑтаннÑм чи ÑпаданнÑм. Щоб
+дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про упорÑдковуваннÑ, звернітьÑÑ Ð´Ð¾ розділу 4в. КОМÐÐДИ
+ОБЛÐСТІ ЗÐВДÐÐЬ, УПОРЯДКОВУВÐÐÐЯ.
+
+Дані у полÑÑ…, Ñкі пов'Ñзано із фізичною пам'ÑÑ‚Ñ‚ÑŽ та віртуальною пам'ÑÑ‚Ñ‚ÑŽ,
+викориÑтано «(КіБ)», режим показу без ÑуфікÑів одиниць. Втім, у таких полÑÑ…
+можливе маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´ КіБ до ПіБ. Це маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð°ÑŽÑ‚ÑŒ
+інтерактивною командою «e» або під Ñ‡Ð°Ñ Ð·Ð°Ð¿ÑƒÑку за допомогою параметра
+збираннÑ.
+
+.TP 4
+\fB%CPU \*(Em ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора \fP
+ЧаÑтка Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ñƒ чаÑÑ– процеÑора з моменту оÑтаннього Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÐµÐºÑ€Ð°Ð½Ð°, Ñку
+виражено у відÑотках від загального чаÑу роботи процеÑора.
+
+У Ñправжньому Ñередовищі із Ñиметричною багатопроцеÑорніÑÑ‚ÑŽ, Ñкщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ”
+багатопотоковим, і \*(We \fIне\fP працює у режимі потоків, може бути показано
+Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±Ñ–Ð»ÑŒÑˆÑ– за 100%. Перемкнути режим потоків можна за допомогою
+інтерактивної команди «H».
+
+Також Ð´Ð»Ñ Ð±Ð°Ð³Ð°Ñ‚Ð¾Ð¿Ñ€Ð¾Ñ†ÐµÑорних Ñередовищ, Ñкщо режим Irix \*F, \*(We
+працюватиме у режимі Solaris, у Ñкому викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора завданнÑм буде
+поділено на загальну кількіÑÑ‚ÑŒ процеÑорів. Перемкнути режими Irix/Solaris
+можна за допомогою інтерактивної команди «I».
+
+\*(NT Якщо програма працює у режимі переглÑду ліÑу («V») зі згорнутими
+дочірніми процеÑами («v»), до цього Ð¿Ð¾Ð»Ñ Ñ‚Ð°ÐºÐ¾Ð¶ буде включено Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора
+Ð´Ð»Ñ Ñ†Ð¸Ñ… невидимих дочірніх процеÑів. Див. розділ 4в. КОМÐÐДИ ОБЛÐСТІ
+ЗÐВДÐÐЬ, ВМІСТ, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про перемикачі «V» та «v».
+
+.TP 4
+\fB%CUC \*(Em ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора \fP
+Це поле Ñ” тотожним до %CUU нижче, але у чаÑтці буде також показано завершені
+дочірні процеÑи.
+
+.TP 4
+\fB%CUU \*(Em ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора \fP
+Загальне викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора завданнÑм, поділене на витрачений чаÑ
+роботи, Ñке виражено у відÑотках.
+
+Якщо на поточний момент Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу буде показано виÑоке викориÑтаннÑ
+процеÑора, це поле може допомогти визначити, чи належним чином поводить Ñебе
+процеÑ. Ðавпаки, Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¼Ð°Ð»Ð¾ викориÑтовує процеÑор, %CUU може показати
+попередні вищі вимоги під Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ процеÑу.
+
+.TP 4
+\fB%MEM \*(Em ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– (RES) \fP
+Поточна викориÑтана завданнÑм чаÑтка доÑтупної фізичної пам'ÑÑ‚Ñ–.
+
+\*(XX.
+
+.TP 4
+\fBAGID \*(Em Autogroup Identifier \fP
+Ідентифікатор автогрупи, Ñкий пов'Ñзано із процеÑом, що працює у поєднанні
+із планувальником CFS Ð´Ð»Ñ ÑƒÐ´Ð¾ÑÐºÐ¾Ð½Ð°Ð»ÐµÐ½Ð½Ñ ÑˆÐ²Ð¸Ð´ÐºÐ¾Ð´Ñ–Ñ— інтерактивної Ñтільниці.
+
+Якщо вÑтановлено /proc/sys/kernel/sched_autogroup_enabled, Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾
+ÑеанÑу (\*(Xa SID) буде Ñтворено автогрупу. УÑÑ– наÑтупні відгалужені процеÑи
+у цьому ÑеанÑÑ– уÑпадкують членÑтво у цій автогрупі. Ðадалі, Ñдро Ñпробує
+вирівнÑти розподіл циклів процеÑора між такими групами. Таким чином,
+автогрупа із багатьма інтенÑивними щодо процеÑора процеÑами (наприклад, make
+\-j) не домінуватиме над автогрупою із лише одним або двома процеÑами.
+
+Якщо показано \-1, відомоÑÑ‚Ñ– Ñ” недоÑтупними.
+
+.TP 4
+\fBAGNI \*(Em Autogroup Nice Value \fP
+Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– автогрупи, Ñке ÑтоÑуєтьÑÑ Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ ÑƒÑÑ–Ñ… процеÑів у
+цій групі. Від'ємне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– означає, що пріоритет Ñ” вищим, а
+додатне — нижчим.
+
+.TP 4
+\fBCGNAME \*(Em Control Group Name \fP
+Ðазва групи керуваннÑ, Ñкій належить процеÑ, або «\-», Ñкщо Ñ—Ñ… можна
+заÑтоÑовувати до цього процеÑу.
+
+Це, типово, буде оÑтанній Ð·Ð°Ð¿Ð¸Ñ Ñƒ повному ÑпиÑку груп керуваннÑ, показаного
+під наÑтупним заголовком (CGROUPS). Це поле також має змінну ширину.
+
+.TP 4
+\fBCGROUPS \*(Em Control Groups \fP
+Ðазви груп керуваннÑ, Ñкій належить процеÑ, або «\-», Ñкщо Ñ—Ñ… можна
+заÑтоÑовувати до цього процеÑу.
+
+Групи ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¾ Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð¾Ð´Ñ–Ð»Ñƒ реÑурÑів (процеÑора, пам'ÑÑ‚Ñ–,
+каналу мережі тощо) Ñеред визначених під Ñ‡Ð°Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð³Ñ€ÑƒÐ¿
+процеÑів. Вони уможливлюють тонкий контроль над розподілом реÑурÑів,
+забороною викориÑÑ‚Ð°Ð½Ð½Ñ Ñ€ÐµÑурÑів, пріоритетами у викориÑтанні реÑурÑів,
+ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑурÑами та ÑпоÑÑ‚ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð° реÑурÑами.
+
+ОдночаÑно у ÑиÑтемі може бути багато різних ієрархій груп керуваннÑ. Кожну з
+ієрархій пов'Ñзано із однією або декількома підÑиÑтемами. ПідÑиÑтема
+відповідає єдиному реÑурÑу.
+
+\*(NT Поле CGROUPS, на відміну від більшоÑÑ‚Ñ– Ñтовпчиків, не Ñ” полем
+фікÑованої ширини. Якщо його показано, воно разом із іншими полÑми змінної
+ширини доповнюватиме текÑÑ‚ у Ñ€Ñдку до межі ширини екрана (аж до макÑимальної
+ширини у \*(WX Ñимволів). Попри це, такі Ð¿Ð¾Ð»Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¾Ñ— ширини теж можуть
+підлÑгати обрізанню. Див. розділ 5в. ГОРТÐÐÐЯ ВІКÐÐ, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ
+про доÑтуп до будь\-Ñких обрізаних даних.
+
+.TP 4
+\fBCODE \*(Em Розмір коду (КіБ) \fP
+ОбÑÑг фізичної пам'ÑÑ‚Ñ–, Ñку у поточний момент призначено Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ð½Ð¾Ð³Ð¾
+коду, також відома Ñк розмір Text Resident Set (TRS або текÑтового
+резидентного набору).
+
+\*(XX.
+
+.TP 4
+\fB COMMAND \*(Em Ðазва команди\fP або командний \fBÑ€Ñдок \fP
+Показує Ñ€Ñдок команди, Ñкий викориÑтано Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑку Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ назву
+пов'Ñзаної із ним програми. ÐŸÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¼Ñ–Ð¶ показом \fIÑ€Ñдка\fP Ñ– \fIназви\fP
+можна виконувати за допомогою «c», параметра командного Ñ€Ñдка або
+інтерактивної команди.
+
+Якщо ви вибрали режим Ñ€Ñдка команди, процеÑи без Ñ€Ñдка команди (зокрема
+потоки Ñдра) буде показано лише назвою програми у квадратних дужках,
+Ñк у цьому прикладі:
+ [kthreadd]
+
+Ðа це поле також може впливати режим показу дерева. Див. інтерактивну
+команду «V», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про цей режим.
+
+\*(NT Поле COMMAND, на відміну від більшоÑÑ‚Ñ– Ñтовпчиків, не Ñ” полем
+фікÑованої ширини. Якщо його показано, воно разом із іншими полÑми змінної
+ширини доповнюватиме текÑÑ‚ у Ñ€Ñдку до межі ширини екрана (аж до макÑимальної
+ширини у \*(WX Ñимволів). Попри це, такі Ð¿Ð¾Ð»Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¾Ñ— ширини теж можуть
+підлÑгати обрізанню. Це оÑобливо ÑтоÑуєтьÑÑ Ñ†ÑŒÐ¾Ð³Ð¾ Ð¿Ð¾Ð»Ñ Ð¿Ñ€Ð¸ показі Ñ€Ñдків
+команди (інтерактивна команда «c».) Див. розділ 5в. ГОРТÐÐÐЯ ВІКÐÐ, щоб
+дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про доÑтуп до будь\-Ñких обрізаних даних.
+
+.TP 4
+\fBDATA \*(Em Розмір даних + Ñтека (КіБ) \fP
+ОбÑÑг приватної пам'ÑÑ‚Ñ–, Ñкий \fIзарезервовано\fP процеÑом. Ð¦Ñ Ð¿Ð°Ð¼'ÑÑ‚ÑŒ має
+назву Data Resident Set (DRS або резидентний набір даних). Таку пам'ÑÑ‚ÑŒ ще
+не може бути пов'Ñзано із фізичною пам'ÑÑ‚Ñ‚ÑŽ (RES), але Ñ—Ñ— буде завжди
+включено в обÑÑг віртуальної пам'ÑÑ‚Ñ– (VIRT).
+
+\*(XX.
+
+.TP 4
+\fBELAPSED \*(Em Витрачений на роботу чаÑ\fP
+Ð§Ð°Ñ Ð· моменту запуÑку процеÑу. Отже, Ð´Ð»Ñ Ð¾Ñтаннього запущеного Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ
+показано найменший інтервал чаÑу.
+
+Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ показано Ñк «ГГ,ХХ» (години,хвилини), але його може бути
+маÑштабовано, Ñкщо інтервал Ñтає надто великим, щоб його можна було показати
+у Ñтовпчику. Тобто, його може бути маÑштабовано до «ДД+ГГ» (дні+години) Ñ–,
+можливо, далі.
+
+.TP 4
+\fBENVIRON \*(Em Змінні Ñередовища \fP
+Показ уÑÑ–Ñ… змінних Ñередовища, Ñкщо такі визначено, з точки зору відповідних
+процеÑів. Ці змінні буде показано у їхньому необробленому порÑдку, а не в
+упорÑдкованому виглÑд, до Ñкого ви звикли бачити у виведенні «set».
+
+\*(NT Поле ENVIRON, на відміну від більшоÑÑ‚Ñ– Ñтовпчиків, не Ñ” полем
+фікÑованої ширини Якщо його показано, воно разом із іншими полÑми змінної
+ширини доповнюватиме текÑÑ‚ у Ñ€Ñдку до межі ширини екрана (аж до макÑимальної
+ширини у \*(WX Ñимволів). Попри це, такі Ð¿Ð¾Ð»Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¾Ñ— ширини теж можуть
+підлÑгати обрізанню. Це оÑобливо ÑтоÑуєтьÑÑ Ñ†ÑŒÐ¾Ð³Ð¾ полÑ. Див. розділ
+5в. ГОРТÐÐÐЯ ВІКÐÐ, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про доÑтуп до будь\-Ñких обрізаних
+даних.
+
+.TP 4
+\fBEXE \*(Em ШлÑÑ… до виконуваного файла \fP
+Де Ñ” доÑтупним, це повний шлÑÑ… до виконуваного файла, включно із назвою
+програми.
+
+\*(NT Поле EXE, на відміну від більшоÑÑ‚Ñ– Ñтовпчиків, не Ñ” полем фікÑованої
+ширини. Якщо його показано, воно разом із іншими полÑми змінної ширини
+доповнюватиме текÑÑ‚ у Ñ€Ñдку до межі ширини екрана (аж до макÑимальної ширини
+у \*(WX Ñимволів).
+
+.TP 4
+\fBFlags \*(Em Прапорці Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ \fP
+У цьому Ñтовпчику буде показано поточні прапорці Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ, Ñкі
+буде виражено у шіÑтнадцÑтковому форматі із придушеннÑм нулів. Ці прапорці
+офіційно документовано у <linux/sched.h>.
+
+.TP 4
+\fBGID \*(Em Ідентифікатор групи \fP
+Ідентифікатор \fIефективної\fP групи.
+
+.TP 4
+\fBGROUP \*(Em Ðазва групи \fP
+Ðазва \fIефективної\fP групи.
+
+.TP 4
+\fBLOGID \*(Em Ідентифікатор кориÑтувача Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñƒ \fP
+Ідентифікатор кориÑтувача під Ñ‡Ð°Ñ \fIвходу\fP. Якщо показано \-1, відомоÑÑ‚Ñ– Ñ”
+недоÑтупними.
+
+.TP 4
+\fBLXC \*(Em Lxc Ðазва контейнера \fP
+Ðазва контейнера LXC, у Ñкому запущено завданнÑ. Якщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ðµ запущено у
+контейнері, буде показано Ð´ÐµÑ„Ñ–Ñ («\-»).
+
+.TP 4
+\fBNI \*(Em Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– \fP
+Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– (nice) завданнÑ. Від'ємне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ–
+означає вищу пріоритетніÑÑ‚ÑŒ, а додатне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ â€” нижчу. Ðульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ
+цьому полі проÑто означає, що при виділенні реÑурÑів Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ завданнÑ
+ÐºÐ¾Ñ€Ð¸Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– не відбуватиметьÑÑ.
+
+\*(NT Це Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¿Ð»Ð¸Ð²Ð°Ñ” лише на пріоритет Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð½Ð¾Ñно інших
+процеÑів у тій Ñамій автогрупі. Див. Ð¿Ð¾Ð»Ñ Â«AGID» та «AGNI», щоб дізнатиÑÑ
+більше про автогрупи.
+
+.TP 4
+\fBNU \*(Em ОÑтанній відомий вузол NUMA \fP
+ЧиÑло, Ñке відповідає номеру вузла NUMA, з Ñким пов'Ñзано оÑтанній
+викориÑтаний процеÑор («P»). Якщо тут показано \-1, дані щодо NUMA Ñ”
+недоÑтупними.
+
+Див. інтерактивні команди «2» Ñ– «3», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про параметри
+NUMA, Ñкі ÑтоÑуютьÑÑ Ð¾Ð±Ð»Ð°ÑÑ‚Ñ– резюме.
+
+.TP 4
+\fBOOMa \*(Em Out of Memory Adjustment Factor \fP
+Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ діапазоні від \-1000 до +1000, Ñке буде додано до поточного
+рахунку виходу за межі пам'ÑÑ‚Ñ– (OOM), Ñке потім буде викориÑтано длÑ
+Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð¾Ð³Ð¾, Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñкого Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ñлід припинити, Ñкщо пам'ÑÑ‚ÑŒ буде
+вичерпано.
+
+.TP 4
+\fBOOMs \*(Em Out of Memory Score \fP
+Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ діапазоні від 0 до +1000, Ñке буде викориÑтано Ð´Ð»Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ
+завдань, Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñких Ñлід припинити, Ñкщо буде вичерпано пам'ÑÑ‚ÑŒ. Ðульове
+Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¾Ð·Ð½Ð°Ñ‡Ð°Ñ” «ніколи не припинÑти», а Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ 1000 означає «припинÑти
+завжди».
+
+.TP 4
+\fBP \*(Em ОÑтанній викориÑтаний процеÑор (SMP) \fP
+ЧиÑло, Ñке відповідає номеру оÑтаннього викориÑтаного процеÑора. У
+Ñередовищах із Ñ–Ñтинною Ñиметричною багатопроцеÑорніÑÑ‚ÑŽ це значеннÑ,
+ймовірно, чаÑто змінюватиметьÑÑ, оÑкільки Ñдро навмиÑне викориÑтовує Ñлабку
+прив'Ñзку до процеÑорів. Крім того, Ñам запуÑк \*(We може порушити цю Ñлабку
+прив'Ñзку, Ñ– Ñпричинити чаÑтішу зміну процеÑорів Ð´Ð»Ñ Ð±Ñ–Ð»ÑŒÑˆÐ¾Ñ— кількоÑÑ‚Ñ–
+завдань (через додаткову потребу у процеÑорному чаÑÑ–).
+
+.TP 4
+\fBPGRP \*(Em Ідентифікатор групи процеÑів \fP
+Кожен Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ” учаÑником унікальної групи процеÑів, Ñку викориÑтовують длÑ
+розподілу Ñигналів, а також терміналами Ð´Ð»Ñ Ñ€Ð¾Ð·Ð¿Ð¾Ð´Ñ–Ð»Ñƒ запитів щодо введеннÑ
+Ñ– виведеннÑ. При Ñтворенні (відгалуженні) процеÑу він Ñтає учаÑником групи
+проєктів його батьківÑького процеÑу. За угодою, це Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¾Ñ€Ñ–Ð²Ð½ÑŽÑ”
+ідентифікатору процеÑу (\*(Xa PID) першого учаÑника групи процеÑів, Ñкий
+називають лідером групи процеÑів.
+
+.TP 4
+\fBPID \*(Em Ідентифікатор процеÑу \fP
+Унікальний ідентифікатор процеÑу завданнÑ, Ñкий ÑиÑтема періодично циклічно
+перепризначає, хоча ніколи не розпочинає відлік з нулÑ. У термінах Ñдра це
+розподілений запиÑ, Ñкий визначено task_struct.
+
+Це Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð°ÐºÐ¾Ð¶ може бути викориÑтано Ñк ідентифікатор групи процеÑів
+(\*(Xa PGRP); ідентифікатор ÑеанÑу Ð´Ð»Ñ Ð»Ñ–Ð´ÐµÑ€Ð° ÑеанÑу (\*(Xa SID);
+ідентифікатор групи потоків Ð´Ð»Ñ Ð»Ñ–Ð´ÐµÑ€Ð° групи потоків (\*(Xa TGID); Ñ–
+ідентифікатор групи процеÑів термінала Ð´Ð»Ñ Ð»Ñ–Ð´ÐµÑ€Ð° групи процеÑів (\*(Xa
+TPGID).
+
+.TP 4
+\fBPPID \*(Em Ідентифікатор батьківÑького процеÑу \fP
+Ідентифікатор процеÑу (pid) батьківÑького процеÑу завданнÑ.
+
+.TP 4
+\fBPR \*(Em ПріоритетніÑÑ‚ÑŒ \fP
+ПріоритетніÑÑ‚ÑŒ Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ. Якщо ви бачите у цьому полі «rt», це
+означає, що Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ñ†ÑŽÑ” із плануваннÑм у режимі реального чаÑу.
+
+У linux пріоритетніÑÑ‚ÑŒ реального чаÑу Ñ” дещо оманливим терміном, оÑкільки,
+традиційно, Ñама ÑиÑтема не була ÑиÑтемою із витіÑненнÑм. І хоча Ñдро 2.6
+можна зробити Ñдром, Ñке Ñ” здебільшого придатним до витіÑненнÑ, працює це не
+завжди.
+
+.TP 4
+\fBPSS \*(Em Пропорційна резидентна пам'ÑÑ‚ÑŒ, smaps (КіБ) \fP
+ЧаÑтка цього Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ñƒ «RSS», де кожну Ñторінку буде поділено на кількіÑÑ‚ÑŒ
+процеÑів, Ð´Ð»Ñ Ñких вона Ñ” Ñпільною. Також, це Ñума значень у полÑÑ… «PSan»,
+«PSfd» та «PSsh».
+
+Ðаприклад, Ñкщо у процеÑу Ñ” 1000 резидентних Ñторінок Ñ– 1000 резидентних
+Ñторінок Ñ” Ñпільними з іншим процеÑом, значеннÑм «PSS» буде рівним 1500
+(помножене на розмір Ñторінки).
+
+\*(ZX.
+
+.PP
+\fBPSan \*(Em Пропорційна анонімна пам'ÑÑ‚ÑŒ, smaps (КіБ) \fP
+.br
+\fBPSfd \*(Em Пропорційна файлова пам'ÑÑ‚ÑŒ, smaps (КіБ) \fP
+.br
+\fBPSsh \*(Em Пропорційна пам'ÑÑ‚ÑŒ shmem, smaps (КіБ) \fP
+.RS 4
+Як Ñ– поле «PSS» вище (загальна пропорційна резидентна пам'ÑÑ‚ÑŒ), ці полÑ
+відповідають чаÑтці цього Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ типу пам'ÑÑ‚Ñ–, поділеній на
+кількіÑÑ‚ÑŒ процеÑів, Ð´Ð»Ñ Ñких вона Ñ” Ñпільною.
+
+\*(ZX.
+.RE
+
+.TP 4
+\fB RES \*(Em Розмір резидентної пам'ÑÑ‚Ñ– (КіБ) \fP
+Піднабір проÑтору віртуальних Ð°Ð´Ñ€ÐµÑ (VIRT) Ñкий відповідає фізичний пам'ÑÑ‚Ñ–
+без резервної пам'ÑÑ‚Ñ– на диÑку, Ñку Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñтовує у поточний
+момент. Це також Ñума значень у полÑÑ… RSan, RSfd Ñ– RSsh.
+
+Може включати приватні анонімні Ñторінки, приватні Ñторінки, Ñкі пов'Ñзано
+із файлами (включно із образами програм та бібліотеками Ñпільного
+викориÑтаннÑ) разом із анонімними Ñторінками Ñпільного
+викориÑтаннÑ. Резервне ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ ÑƒÑієї цієї пам'ÑÑ‚Ñ– здійÑнюєтьÑÑ Ð´Ð¾ файла
+резервної пам'ÑÑ‚Ñ–, Ñкий окремо показано у полі SWAP.
+
+Ðарешті, це поле також може включати Ñпільні Ñторінки із резервними копіÑми
+у файлах, Ñкі, Ñкщо до них внеÑено зміни, працюють Ñк файл резервної пам'ÑÑ‚Ñ–
+Ñ–, таким чином, ніколи не впливають на Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ SWAP.
+
+\*(XX.
+
+.TP 4
+\fBRSS \*(Em Розмір резидентної пам'ÑÑ‚Ñ–, smaps (КіБ) \fP
+Інший, точніший переглÑд нерезервованої фізичної пам'ÑÑ‚Ñ– процеÑу. Дані буде
+отримано з файла «smaps_rollup». Зазвичай, результат буде трохи більшим за
+показаний Ð´Ð»Ñ Â«RES».
+
+\*(ZX.
+
+.TP 4
+\fBRSan \*(Em Розмір резидентної анонімної пам'ÑÑ‚Ñ– (КіБ) \fP
+Підмножина резидентної пам'ÑÑ‚Ñ– (RES), що відповідає приватним Ñторінкам, Ñкі
+не пов'Ñзано із файлом.
+
+.TP 4
+\fBRSfd \*(Em Розмір резидентної пам'ÑÑ‚Ñ– із резервом у файлі (КіБ) \fP
+Підмножина резидентної пам'ÑÑ‚Ñ– (RES), що відповідають неÑвно Ñпільним
+Ñторінкам, Ñкі підтримують образи програм та бібліотеки Ñпільного
+викориÑтаннÑ. Сюди також включено Ñвні прив'Ñзки до файлів, приватні та
+Ñпільні.
+
+.TP 4
+\fBRSlk \*(Em Розмір резидентної заблокованої пам'ÑÑ‚Ñ– (КіБ) \fP
+Підмножина резидентної пам'ÑÑ‚Ñ– (RES), Ñку не можна зарезервувати на диÑку.
+
+.TP 4
+\fBRSsh \*(Em Розмір резидентної Ñпільної пам'ÑÑ‚Ñ– (КіБ) \fP
+Підмножина резидентної пам'ÑÑ‚Ñ– (RES), що відповідає Ñвно Ñпільним анонімним
+Ñторінкам shm*/mmap.
+
+.TP 4
+\fBRUID \*(Em Ідентифікатор дійÑного кориÑтувача \fP
+Ідентифікатор \fIдійÑного\fP кориÑтувача.
+
+.TP 4
+\fBRUSER \*(Em Ім'Ñ Ð´Ñ–Ð¹Ñного кориÑтувача \fP
+\fIДійÑне\fP ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача.
+
+.TP 4
+\fBS \*(Em Стан процеÑу \fP
+Стан завданнÑ, одне з таких значень:
+ \fBD\fP = приÑиплÑннÑ, Ñке не можна переривати
+ \fBI\fP = бездіÑльніÑÑ‚ÑŒ
+ \fBR\fP = працює
+ \fBS\fP = приÑпано
+ \fBT\fP = зупинено Ñигналом ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñми
+ \fBt\fP = зупинено заÑобом діагноÑтики під Ñ‡Ð°Ñ Ñ‚Ñ€Ð°ÑуваннÑ
+ \fBZ\fP = зомбі
+
+ЗавданнÑ, Ñкі показано Ñк такі, Ñкі працюють, правильніше було б назвати
+готовими до роботи \*(Em Ñ—Ñ…Ð½Ñ task_struct Ñ” проÑто предÑтавлена у черзі
+роботи Linux. Ðавіть без Ñправжньої машини із Ñиметричною
+багатопроцеÑорніÑÑ‚ÑŽ ви можете побачити чиÑельні Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ñƒ цьому
+Ñтані. КількіÑÑ‚ÑŒ залежатиме від інтервалу затримки \*(We та значеннÑ
+пріоритетноÑÑ‚Ñ– (nice).
+
+.TP 4
+\fBSHR \*(Em Розмір Ñпільної пам'ÑÑ‚Ñ– (КіБ) \fP
+Підмножина резидентної пам'ÑÑ‚Ñ– (RES), Ñку може бути викориÑтано іншими
+процеÑами. Сюди буде включено Ñпільні анонімні Ñторінки та Ñпільні Ñторінки
+із резервними копіÑми на диÑку. Також буде включено приватні Ñторінки, Ñкі
+пов'Ñзано із файлами, що відповідають образам програм та бібліотекам
+Ñпільного викориÑтаннÑ.
+
+\*(XX.
+
+.TP 4
+\fBSID \*(Em Ідентифікатор ÑеанÑу \fP
+Ð¡ÐµÐ°Ð½Ñ â€” збірка груп процеÑів (\*(Xa PGRP), зазвичай, вÑтановлюєтьÑÑ
+оболонкою входу до ÑиÑтеми. Ðовий відгалужений Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð´Ð¾Ð»ÑƒÑ‡Ð°Ñ”Ñ‚ÑŒÑÑ Ð´Ð¾ ÑеанÑу
+Ñвого породжувача. За угодою, це Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¾Ñ€Ñ–Ð²Ð½ÑŽÑ” ідентифікатору процеÑу
+(\*(Xa PID) першого учаÑника ÑеанÑу, Ñкого називають лідером ÑеанÑу, Ñким,
+зазвичай, Ñ” оболонка входу до ÑиÑтеми.
+
+.TP 4
+\fBSTARTED \*(Em Інтервал чаÑу запуÑку\fP
+Ð§Ð°Ñ Ð²Ñ–Ð´ моменту Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ ÑиÑтеми до запуÑку процеÑу. Отже, длÑ
+оÑтаннього запущеного Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ показано найбільший інтервал чаÑу.
+
+Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ показано у форматі «ХХ:СС» (хвилини:Ñекунди). Ðле Ñкщо
+інтервал Ñ” надто великим, Ñ– не вміщуєтьÑÑ Ñƒ Ñтовпчик, його буде маÑштабовано
+до «ГГ,ХХ» (години,хвилини) Ñ–, можливо, далі, зі збільшеннÑм одиниць.
+
+.TP 4
+\fBSUID \*(Em Збережений ідентифікатор кориÑтувача \fP
+\fIЗбережений\fP ідентифікатор кориÑтувача.
+
+.TP 4
+\fBSUPGIDS \*(Em Ідентифікатори допоміжних груп \fP
+Ідентифікатори будь\-Ñких допоміжних груп, Ñкі вÑтановлено під Ñ‡Ð°Ñ Ð²Ñ…Ð¾Ð´Ñƒ до
+ÑиÑтеми або уÑпадковано від батьківÑького процеÑу завданнÑ. Ідентифікатори
+буде показано у форматі ÑпиÑку відокремлених комами значень.
+
+\*(NT Поле SUPGIDS, на відміну від більшоÑÑ‚Ñ– Ñтовпчиків, не Ñ” полем
+фікÑованої ширини. Якщо його показано, воно разом із іншими полÑми змінної
+ширини доповнюватиме текÑÑ‚ у Ñ€Ñдку до межі ширини екрана (аж до макÑимальної
+ширини у \*(WX Ñимволів).
+
+.TP 4
+\fBSUPGRPS \*(Em Ðазви допоміжних груп \fP
+Ðазви будь\-Ñких допоміжних груп, Ñкі вÑтановлено під Ñ‡Ð°Ñ Ð²Ñ…Ð¾Ð´Ñƒ до ÑиÑтеми
+або уÑпадковано від батьківÑького процеÑу завданнÑ. Ідентифікатори буде
+показано у форматі ÑпиÑку відокремлених комами значень.
+
+\*(NT Поле SUPGRPS, на відміну від більшоÑÑ‚Ñ– Ñтовпчиків, не Ñ” полем
+фікÑованої ширини. Якщо його показано, воно разом із іншими полÑми змінної
+ширини доповнюватиме текÑÑ‚ у Ñ€Ñдку до межі ширини екрана (аж до макÑимальної
+ширини у \*(WX Ñимволів).
+
+.TP 4
+\fBSUSER \*(Em Збережене ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача \fP
+\fIЗбережене\fP ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача.
+
+.TP 4
+\fBSWAP \*(Em Розмір зарезервованої пам'ÑÑ‚Ñ– (КіБ) \fP
+Раніше резидентна чаÑтина проÑтору Ð°Ð´Ñ€ÐµÑ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ, Ñку запиÑано до файла
+резервної пам'ÑÑ‚Ñ–, коли фізичну пам'ÑÑ‚ÑŒ буде переповнено.
+
+\*(XX.
+
+.TP 4
+\fBTGID \*(Em Ідентифікатор групи потоків \fP
+Ідентифікатор групи потоків, до Ñкої належить завданнÑм. Це PID лідера групи
+потоків обробки. У термінах Ñдра відповідає тим завданнÑм, Ñкі Ñпільно
+викориÑтовують mm_struct.
+
+.TP 4
+\fBTIME \*(Em Ð§Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора \fP
+Загальний Ñ‡Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора, Ñкий було викориÑтано завданнÑм з моменту
+запуÑку. Якщо накопичувальний режим \*O, кожен Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±ÑƒÐ´Ðµ показано у ÑпиÑку
+із чаÑом процеÑора, Ñкий було викориÑтано процеÑом Ñ– його завершеними
+дочірніми процеÑами. Перемкнути накопичувальний режим можна за допомогою
+«S», параметра командного Ñ€Ñдка та інтерактивної команди. Див. інтерактивну
+команду «S», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про цей режим.
+
+.TP 4
+\fBTIME+ \*(Em Ð§Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора, Ñоті \fP
+Те Ñаме, що Ñ– TIME, але із більшою точніÑÑ‚ÑŽ, до Ñотих Ñекунди.
+
+.TP 4
+\fBTPGID \*(Em Ідентифікатор групи процеÑів термінала \fP
+Ідентифікатор групи процеÑів оÑновного процеÑу Ð´Ð»Ñ Ð·'єднаного термінала або
+\-1, Ñкщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ðµ з'єднано із терміналом. За угодою, це Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¾Ñ€Ñ–Ð²Ð½ÑŽÑ”
+ідентифікатору процеÑу (\*(Xa PID) лідера групи процеÑів (\*(Xa PGRP).
+
+.TP 4
+\fBTTY \*(Em Термінал ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ \fP
+Ðазва термінала керуваннÑ. Це, зазвичай, приÑтрій (поÑлідовний порт, pty
+тощо) з Ñкого було запущено Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ– Ñкий Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñтовує Ð´Ð»Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ
+або Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…. Втім, Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð½Ðµ обов'Ñзково має бути пов'Ñзано із
+терміналом. Ð”Ð»Ñ Ð½Ðµ пов'Ñзаних із терміналом завдань буде показано «?».
+
+.TP 4
+\fBUID \*(Em Ідентифікатор кориÑтувача \fP
+Ідентифікатор \fIефективного\fP кориÑтувача влаÑника завданнÑ.
+
+.TP 4
+\fBUSED \*(Em ВикориÑтана пам'ÑÑ‚ÑŒ (КіБ) \fP
+Цьому полю відповідає фізична пам'ÑÑ‚ÑŒ без резервуваннÑ, Ñку викориÑтовує
+Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ (RES), Ñ– зарезервована чаÑтка Ñ—Ñ— проÑтору Ð°Ð´Ñ€ÐµÑ (SWAP).
+
+\*(XX.
+
+.TP 4
+\fBUSER \*(Em Ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача \fP
+Ім'Ñ \fIефективного\fP кориÑтувача влаÑника завданнÑ.
+
+.TP 4
+\fBUSS \*(Em Розмір унікального набору \fP
+Ðерезервована чаÑтка фізичної пам'ÑÑ‚Ñ– («RSS»), Ñка не Ñ” Ñпільною длÑ
+будь\-Ñкого іншого процеÑу. Є похідною від даних у файлі «smaps_rollup».
+
+\*(ZX.
+
+.TP 4
+\fBVIRT \*(Em Розмір віртуальної пам'ÑÑ‚Ñ– (КіБ) \fP
+Загальний обÑÑг віртуальної пам'ÑÑ‚Ñ–, Ñку викориÑтано процеÑом. До
+викориÑтаної пам'ÑÑ‚Ñ– буде включено увеÑÑŒ код, дані та Ñпільні бібліотеки, а
+також Ñторінки, Ñкі було Ñкинуто до резервної пам'ÑÑ‚Ñ– на диÑку, та Ñторінки,
+Ñкі було пов'Ñзано з процеÑами, але не було викориÑтано.
+
+\*(XX.
+
+.TP 4
+\fBWCHAN \*(Em ПриÑиплÑÐ½Ð½Ñ Ñƒ функції \fP
+У цьому полі буде показано назву функції Ñдра, у Ñкій зараз приÑпано
+завданнÑ. Ð”Ð»Ñ Ð·Ð°Ð²Ð´Ð°Ð½ÑŒ, Ñкі виконуютьÑÑ, у цьому Ñтовпчику буде показано
+Ð´ÐµÑ„Ñ–Ñ («\-»).
+
+.TP 4
+\fBioR \*(Em КількіÑÑ‚ÑŒ прочитаних байтів введеннÑ\-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ \fP
+КількіÑÑ‚ÑŒ байтів, Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñких з шару Ñховища даних було Ñпричинено
+процеÑом.
+
+Ð”Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ даних «io» Ð´Ð»Ñ Ñ–Ð½ÑˆÐ¸Ñ… кориÑтувачів потрібні права доÑтупу
+кориÑтувача root.
+
+.TP 4
+\fBioRop \*(Em КількіÑÑ‚ÑŒ дій введеннÑ\-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð· Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ \fP
+КількіÑÑ‚ÑŒ дій (ÑиÑтемних викликів) введеннÑ\-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð· Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð´Ð»Ñ
+процеÑу. Такі виклики можуть Ñ– не ÑпричинÑти Ñправжнього введеннÑ\-виведеннÑ
+даних на фізичний диÑк.
+
+.TP 4
+\fBioW \*(Em КількіÑÑ‚ÑŒ запиÑаних байтів введеннÑ\-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ \fP
+КількіÑÑ‚ÑŒ байтів, Ñкі було надіÑлано до шару Ñховища завдÑки процеÑу.
+
+.TP 4
+\fBioWop \*(Em КількіÑÑ‚ÑŒ дій введеннÑ\-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð· запиÑу \fP
+КількіÑÑ‚ÑŒ дій (ÑиÑтемних викликів) введеннÑ\-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð· запиÑу длÑ
+процеÑу. Такі виклики можуть Ñ– не ÑпричинÑти Ñправжнього введеннÑ\-виведеннÑ
+даних на фізичний диÑк.
+
+.TP 4
+\fBnDRT \*(Em КількіÑÑ‚ÑŒ зіпÑованих Ñторінок \fP
+КількіÑÑ‚ÑŒ Ñторінок, Ñкі було змінено з моменту запиÑу Ñ—Ñ… до допоміжного
+Ñховища даних. ЗіпÑовані Ñторінки має бути запиÑано до допоміжного Ñховища
+до того, Ñк відповідне міÑце у фізичній пам'ÑÑ‚Ñ– може бути викориÑтано длÑ
+ÑкоїÑÑŒ іншої віртуальної Ñторінки.
+
+Це поле Ñтало заÑтарілим з виходу linux 2.6 Ñ– його вміÑтом завжди Ñ” нуль.
+
+.TP 4
+\fBnMaj \*(Em КількіÑÑ‚ÑŒ оÑновних помилок Ñторінок \fP
+КількіÑÑ‚ÑŒ \fBоÑновних\fP помилок Ñторінок, Ñкі ÑталиÑÑ Ð´Ð»Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ. Помилка
+Ñторінки ÑтаєтьÑÑ, Ñкщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð°Ð¼Ð°Ð³Ð°Ñ”Ñ‚ÑŒÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ дані з віртуальної
+Ñторінки, Ñкої немає у його адреÑному проÑторі, або запиÑати дані до цієї
+Ñторінки. До оÑновної помилки Ñторінок призводить доÑтуп до допоміжного
+Ñховища у процеÑÑ– Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð´Ð¾Ñтупу до Ñторінки.
+
+.TP 4
+\fBnMin \*(Em КількіÑÑ‚ÑŒ незначних помилок Ñторінок \fP
+КількіÑÑ‚ÑŒ \fBнезначних\fP помилок Ñторінок, Ñкі ÑталиÑÑ Ð´Ð»Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ. Помилка
+Ñторінки ÑтаєтьÑÑ, Ñкщо Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð½Ð°Ð¼Ð°Ð³Ð°Ñ”Ñ‚ÑŒÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ дані з віртуальної
+Ñторінки, Ñкої немає у його адреÑному проÑторі, або запиÑати дані до цієї
+Ñторінки. До незначних помилок Ñторінок призводить Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Ð´Ð¾Ñтупу
+до Ñторінки без доÑтупу до допоміжного Ñховища.
+
+.TP 4
+\fBnTH \*(Em КількіÑÑ‚ÑŒ потоків обробки \fP
+КількіÑÑ‚ÑŒ потоків обробки, Ñку пов'Ñзано із процеÑом.
+
+.TP 4
+\fBnsCGROUP \*(Em ПроÑÑ‚Ñ–Ñ€ назв CGROUP \fP
+Inode проÑтору назв, Ñкий викориÑтано Ð´Ð»Ñ Ð¿Ñ€Ð¸Ñ…Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ„Ñ–Ð»ÑŽ керівної
+групи, учаÑником Ñкої Ñ” процеÑ.
+
+.TP 4
+\fBnsIPC \*(Em ПроÑÑ‚Ñ–Ñ€ назв IPC \fP
+Inode проÑтору назв, Ñкий викориÑтано Ð´Ð»Ñ Ñ–Ð·Ð¾Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑурÑів обміну даними
+між процеÑами (IPC), зокрема об'єктів IPC System V та черг повідомлень
+POSIX.
+
+.TP 4
+\fBnsMNT \*(Em ПроÑÑ‚Ñ–Ñ€ назв MNT \fP
+Inode проÑтору назв, Ñкий викориÑтано Ð´Ð»Ñ Ñ–Ð·Ð¾Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ñ‚Ð¾Ñ‡Ð¾Ðº монтуваннÑ
+файлової ÑиÑтеми, Ñ– отже, Ð½Ð°Ð´Ð°Ð½Ð½Ñ Ñ€Ñ–Ð·Ð½Ð¸Ñ… точок зору на ієрархію файлової
+ÑиÑтеми.
+
+.TP 4
+\fBnsNET \*(Em ПроÑÑ‚Ñ–Ñ€ назв NET \fP
+Inode проÑтору назв, Ñкий викориÑтано Ð´Ð»Ñ Ñ–Ð·Ð¾Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÑурÑів, подібних до
+мережевих приÑтроїв, IP\-адреÑ, IP\-маршрутів, номерів портів тощо.
+
+.TP 4
+\fBnsPID \*(Em ПроÑÑ‚Ñ–Ñ€ назв PID \fP
+Inode проÑтору назв, Ñкий викориÑтано Ð´Ð»Ñ Ñ–Ð·Ð¾Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð½Ð¾Ð¼ÐµÑ€Ñ–Ð² ідентифікаторів
+процеÑів, що означає, що вони не повинні лишатиÑÑ ÑƒÐ½Ñ–ÐºÐ°Ð»ÑŒÐ½Ð¸Ð¼Ð¸. Таким чином,
+кожен проÑÑ‚Ñ–Ñ€ назв може мати влаÑний «init/systemd» (PID #1) Ð´Ð»Ñ ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ
+різноманітними завданнÑми з ініціалізації та Ð¿Ñ€Ð¸Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð¾Ñиротілих дочірніх
+процеÑів.
+
+.TP 4
+\fBnsTIME \*(Em ПроÑÑ‚Ñ–Ñ€ назв TIME \fP
+Inode проÑтору назв, Ñкий надає змогу процеÑам бачити Ñ‡Ð°Ñ Ñƒ інших ÑиÑтемах,
+подібно до проÑтору назв UTS.
+
+.TP 4
+\fBnsUSER \*(Em ПроÑÑ‚Ñ–Ñ€ назв кориÑтувача \fP
+Inode проÑтору назв, Ñкий викориÑтано Ð´Ð»Ñ Ñ–Ð·Ð¾Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ñ‡Ð¸Ñлових
+ідентифікаторів кориÑтувачів Ñ– груп. Таким чином, Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð¼Ð¾Ð¶Ðµ мати звичайни
+ідентифікатор непривілейованого кориÑтувача поза проÑтором назв кориÑтувача,
+маючи ідентифікатор кориÑтувача 0, із повними привілеÑми root вÑередині
+цього проÑтору назв.
+
+.TP 4
+\fBnsUTS \*(Em ПроÑÑ‚Ñ–Ñ€ назв UTS \fP
+Inode проÑтору назв, Ñкий викориÑтано Ð´Ð»Ñ Ñ–Ð·Ð¾Ð»ÑŽÐ²Ð°Ð½Ð½Ñ Ð½Ð°Ð·Ð²Ð¸ вузла та назви
+домену NIS. UTS означає «СиÑтема Ð¾Ð¿Ñ€Ð¸Ð»ÑŽÐ´Ð½ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу UNIX».
+
+.TP 4
+\fBvMj \*(Em ПриріÑÑ‚ кількоÑÑ‚Ñ– оÑновних помилок Ñторінок\fP
+КількіÑÑ‚ÑŒ \fBоÑновних\fP помилок Ñторінок, Ñкі ÑталиÑÑ Ð· моменту оÑтаннього
+Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ (див. nMaj).
+
+.TP 4
+\fBvMn \*(Em ПриріÑÑ‚ кількоÑÑ‚Ñ– незначних помилок Ñторінок\fP
+КількіÑÑ‚ÑŒ \fBнезначних\fP помилок Ñторінок, Ñкі ÑталиÑÑ Ð· моменту оÑтаннього
+Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ (див. nMin).
+
+.\" ......................................................................
+.SS "3б. КЕРУВÐÐÐЯ ПОЛЯМИ"
+.\" ----------------------------------------------------------------------
+У відповідь на натиÑÐºÐ°Ð½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–ÑˆÑ– інтерактивної команди «f» (керуваннÑ
+полÑми) програма покаже вам екран із: 1) назвою «поточного» вікна; 2)
+призначеним полем упорÑдковуваннÑ; 3) уÑіма полÑми у поточному порÑдку разом
+із їхніми опиÑами. Пункти, Ñкі позначено зірочкою Ñ” поточними показаними
+полÑми, переглÑд Ñких уможливлює ширина екрана.
+
+.RS +4
+.IP \(bu 3
+Як буде вказано у наÑтановах на екрані, переÑуватиÑÑ Ð¼Ñ–Ð¶ полÑми можна за
+допомогою клавіш зі Ñтрілками вгору Ñ– вниз. Також можна ÑкориÑтатиÑÑ
+клавішами PgUp, PgDn, Home та End Ð´Ð»Ñ Ð¿Ñ€Ð¸ÑˆÐ²Ð¸Ð´ÑˆÐµÐ½Ð¾Ð³Ð¾ доÑтупу до першого Ñ–
+оÑтаннього з доÑтупних полів.
+
+.IP \(bu 3
+Клавіша зі Ñтрілкою \fBправоруч\fP позначає поле Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ розташуваннÑ, а
+клавіша зі Ñтрілкою \fBліворуч\fP та клавіша <\fBEnter\fP> фікÑують
+Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð»Ñ.
+
+.IP \(bu 3
+Клавішами «\fBd\fP» та <\fBПробіл\fP> можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ
+Ñтану показу полÑ, а отже, ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ð°ÑвніÑÑ‚ÑŽ зірочки.
+
+.IP \(bu 3
+Клавіша «\fBs\fP» позначає поле, Ñк поле Ð´Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑдковуваннÑ. Див. 4в. КОМÐÐДИ
+ОБЛÐСТІ ЗÐВДÐÐЬ, УПОРЯДКОВУВÐÐÐЯ, щоб отримати додаткові відомоÑÑ‚Ñ– щодо
+вибору Ð¿Ð¾Ð»Ñ Ð´Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑдковуваннÑ.
+
+.IP \(bu 3
+Клавішами «\fBa\fP» Ñ– «\fBw\fP» можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ñ†Ð¸ÐºÐ»Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ переходу уÑіма
+доÑтупними вікнами, а клавішами «\fBq\fP» та <\fBEsc\fP> Ð´Ð»Ñ Ð²Ð¸Ñ…Ð¾Ð´Ñƒ з
+ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð»Ñми.
+.RS -4
+
+.PP
+Екраном ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð»Ñми також можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð²Ð½ÐµÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до
+поточного вікна або групи полів у повноекранному режимі показу або режимі
+альтернативного показу. Що б не було позначено у момент натиÑÐºÐ°Ð½Ð½Ñ Â«q» або
+<Esc>, його буде зроблено поточним при Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð´Ð¾ показу
+\*(We. Див. розділ 5. ПОЛОЖЕÐÐЯ ÐЛЬТЕРÐÐТИВÐОГО ПОКÐЗУ та інтерактивну
+команду «g», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про «поточні» вікна Ñ– групи полів.
+
+.PP
+\*(NT Будь\-Ñке вікно, у Ñкому було виконано Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ñƒ \fIгоризонтальному\fP
+буде Ñкинуто до типового Ñтану, Ñкщо буде внеÑено будь\-Ñкі зміни до полів за
+допомогою екрана ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð»Ñми. Втім, будь\-Ñку позицію \fIвертикального\fP
+Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ збережено. Див. 5в. ГОРТÐÐÐЯ ВІКÐÐ, щоб отримати додаткові
+відомоÑÑ‚Ñ– щодо вертикального та горизонтального гортаннÑ.
+
+.\" ----------------------------------------------------------------------
+.SH "4. ІÐТЕРÐКТИВÐІ КОМÐÐДИ"
+.\" ----------------------------------------------------------------------
+Ðижче наведено короткий покажчик команд у категоріÑÑ…. ДеÑкі команди у ÑпиÑку
+траплÑÑŽÑ‚ÑŒÑÑ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ° разів \*(Em їхнє Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‚Ð° облаÑÑ‚ÑŒ дії можуть
+змінюватиÑÑ, залежно від контекÑту, у Ñкому Ñ—Ñ… віддано.
+
+.nf
+ 4а. \fIЗагальні команди\fP
+ <Ent/Sp> ?, =, 0,
+ A, B, d, E, e, g, h, H, I, k, q, r, s, W, X, Y, Z,
+ ^G, ^K, ^N, ^P, ^U, ^L, ^R
+
+ 4б. \fIКоманди облаÑÑ‚Ñ– резюме\fP
+ C, l, t, m, 1, 2, 3, 4, !
+ 4в. \fIКоманди облаÑÑ‚Ñ– завдань\fP
+ ВиглÑд: b, J, j, x, y, z
+ ВміÑÑ‚: c, F, f, O, o, S, U, u, V, v, ^E
+ Розмір: #, i, n
+ УпорÑдкуваннÑ: <, >, f, R
+ 4г. \fIПрив'Ñзка кольорів\fP
+ <Ret>, a, B, b, H, M, q, S, T, w, z, 0 \- 7
+ 5б. \fIКоманди Ð´Ð»Ñ Ð²Ñ–ÐºÐ¾Ð½\fP
+ \-, _, =, +, A, a, G, g, w
+ 5в. \fIÐ“Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ñƒ вікні\fP
+ C, вгору, вниз, ліворуч, праворуч, PgUp, PgDn, Home, End
+ 5г. \fIПошук у вікні\fP
+ L, &
+ 5д.\fI Ð¤Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ вікні O, o, ^O, =, +\fP
+.fi
+
+.\" ......................................................................
+.SS "4a. ЗÐГÐЛЬÐІ КОМÐÐДИ"
+.\" ----------------------------------------------------------------------
+Загальні інтерактивні команди \fBзавжди\fP доÑтупні у повноекранному режимі та
+режимі альтернативного показу. Втім, деÑкі з цих інтерактивних команд \fBне Ñ” доÑтупними\fP, Ñкщо програма працює у захищеному режимі.
+
+Якщо ви хочете наперед знати, чи захищено роботу вашої копії програми \*(We,
+проÑто віддайте команду показу довідки Ñ– переглÑньте резюме щодо ÑиÑтеми у
+другому Ñ€Ñдку.
+
+.TP 7
+\ \ <\fBEnter\fP> або <\fBПробіл\fP>\ \ :\fIоÑвіжити показу\fP
+Ці команди пробуджують \*(We Ñ–, відповідно до інÑÑ‚Ñ€ÑƒÐºÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° вхідними
+даними, буде перемальовано уÑÑ– показані дані. Це також призведе до
+примуÑового Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ ÑƒÑÑ–Ñ… інтерактивних змін у процеÑорах та фізичній
+пам'ÑÑ‚Ñ–.
+
+СкориÑтайтеÑÑ Ð±ÑƒÐ´ÑŒ\-Ñкою з цих клавіш, Ñкщо інтервал затримки Ñ” надто
+великим, Ñ– ви хочете ознайомитиÑÑ Ñ–Ð· поточним Ñтаном.
+
+.TP 7
+\ \ \ \fB?\fP | \fBh\fP\ \ :\fIДовідка \fP
+ДоÑтупні два Ñ€Ñ–Ð²Ð½Ñ Ð´Ð¾Ð²Ñ–Ð´ÐºÐ¸. Ðа першому програма покаже Ð½Ð°Ð³Ð°Ð´ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ уÑÑ–Ñ…
+базових інтерактивних команд. Якщо \*(We працює у \fIзахищеному\fP режимі,
+екран довідки буде Ñкорочено.
+
+ÐатиÑÐºÐ°Ð½Ð½Ñ Â«h» або «?» на цьому екрані довідки призведе до показу довідки
+Ð´Ð»Ñ Ñ†Ð¸Ñ… інтерактивних команд із заÑтоÑуваннÑм до режиму альтернативного
+показу.
+
+.TP 7
+\ \ \ \fB=\fP\ \ :\fIСкинути Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° показ\fP
+Знімає Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð½Ð° показ. Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° обертає будь\-Ñкі команди «i»
+(бездіÑльні завданнÑ), «n» (макÑимальна кількіÑÑ‚ÑŒ завдань), «v» (приховати
+дочірні) Ñ– «F» (фокуÑуваннÑ), Ñкі могли бути активними. Команду також
+призначено Ð´Ð»Ñ Ð²Ð¸Ñ…Ð¾Ð´Ñƒ із режимів ÑпоÑÑ‚ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð° PID, Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°
+кориÑтувачами, іншого фільтруваннÑ, обробки пошуку та режиму поєднаннÑ
+процеÑорів.
+
+Крім того, Ñкщо у вікні було виконано гортаннÑ, його буде повернуто до
+початкового Ñтану цією командою.
+
+.TP 7
+\ \ \ \fB0\fP\ \ :\fIПеремикач Ð¿Ñ€Ð¸Ð´ÑƒÑˆÐµÐ½Ð½Ñ Ð½ÑƒÐ»Ñ–Ð²\fP
+Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° визначає, буде показано нулі чи нулі буде приховано Ð´Ð»Ñ Ð±Ð°Ð³Ð°Ñ‚ÑŒÐ¾Ñ…
+полів у вікні завдань. Цей перемикач не впливає на показ даних у полÑÑ… UID,
+GID, NI, PR та P.
+
+.TP 7
+\ \ \ \fBA\fP\ \ :\fIПеремикач режиму альтернативного показу\fP
+Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° перемикає програму між повноекранним режимом Ñ– режимом
+альтернативного показу. Див. розділ 5. ПОЛОЖЕÐÐЯ ÐЛЬТЕРÐÐТИВÐОГО ПОКÐЗУ та
+інтерактивну команду «g», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про «поточні» вікна Ñ– групи
+полів.
+
+.TP 7
+\ \ \ \fBB\fP\ \ :\fIПеремикач вмиканнÑ/Ð²Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð½Ð°Ð¿Ñ–Ð²Ð¶Ð¸Ñ€Ð½Ð¾Ð³Ð¾ шрифту\fP
+Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° впливає на викориÑÑ‚Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð»Ð¸Ð²Ð¾Ñтей показу напівжирного текÑту
+terminfo Ñ– змінює \fBодразу\fP облаÑÑ‚ÑŒ резюме та облаÑÑ‚ÑŒ завдань длÑ
+«поточного» вікна. Хоча цю команду призначено, в оÑновному, Ð´Ð»Ñ Â«Ð¿Ñ€Ð¾Ñтих»
+терміналів, нею можна ÑкориÑтатиÑÑ Ñƒ будь\-Ñкому терміналі.
+
+\*(NT Якщо цей перемикач \*O, Ñ– \*(We працює у монохромному режимі, длÑ
+\fBуÑього диÑплеÑ\fP буде викориÑтано звичайний текÑÑ‚. Таким чином, Ñкщо не
+викориÑтано перемикач «x» Ñ–/або«y» Ð´Ð»Ñ Ð¾Ð±ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð°ÐºÑ†ÐµÐ½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚ÐµÐºÑту, не
+буде ніÑкого візуального підтвердженнÑ, що ці перемикачі увімкнено.
+
+.TP 7
+*\ \ \fBd\fP | \fBs\fP\ \ :\fIЗмінити інтервал затримки чаÑу\fP
+Програма попроÑить Ð²Ð°Ñ Ð²Ð²ÐµÑти Ñ‡Ð°Ñ Ð·Ð°Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ у Ñекундах між оновленнÑми
+показаних даних.
+
+Буде враховано вказані дробові чаÑтки Ñекунд, але від'ємні чиÑла
+викориÑтовувати не можна. Ð’Ð²ÐµÐ´ÐµÐ½Ð½Ñ 0 Ñпричинить (майже) неперервне оновленнÑ
+даних із незадовільними результатами, оÑкільки ÑиÑтема та драйвер термінала
+намагатимутьÑÑ Ð·Ð°Ð´Ð¾Ð²Ð¾Ð»ÑŒÐ½Ð¸Ñ‚Ð¸ вимоги \*(We. Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð°Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸ Ñ” обернено
+пропорційним до Ð½Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° ÑиÑтему, тому вÑтановлювати його Ñлід
+обережно.
+
+Якщо вам захочетьÑÑ Ð¿ÐµÑ€ÐµÐ³Ð»Ñнути поточне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу затримки, проÑто
+віддайте команду показу довідки Ñ– переглÑньте резюме щодо ÑиÑтеми у другому
+Ñ€Ñдку.
+
+.TP 7
+\ \ \ \fBE\fP\ \ :\fIПримуÑове маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–\fP в облаÑÑ‚Ñ– резюме
+За допомогою цієї команди ви можете циклічно перемикати доÑтупні маÑштаби
+пам'ÑÑ‚Ñ– в облаÑÑ‚Ñ– резюме, від КіБ (кібібайтів або 1024 байтів) до ЕіБ
+(екÑбібайтів або 1152921504606846976 байтів).
+
+Якщо ви побачите «+» між показаним чиÑлом та наÑтупною міткою, це
+означатиме, що програма \*(We примуÑово обрізала чаÑтину чиÑла. ОбрізаннÑ
+можна уникнути, Ñкщо збільшити коефіцієнт маÑштабуваннÑ.
+
+.TP 7
+\ \ \ \fBe\fP\ \ :\fIПримуÑове маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– завдань\fP у облаÑÑ‚Ñ– завдань
+За допомогою цієї команди ви можете циклічно перемикати доÑтупні маÑштаби
+пам'ÑÑ‚Ñ– в облаÑÑ‚Ñ– завдань, від КіБ (кібібайтів або 1024 байтів) до ПіБ
+(пібібайтів або 1125899906842624 байтів).
+
+Хоча \*(We намагатиметьÑÑ Ð·Ð²Ð°Ð¶Ð°Ñ‚Ð¸ на вибраний діапазон цілей, може
+знадобитиÑÑ Ð´Ð¾Ð´Ð°Ñ‚ÐºÐ¾Ð²Ðµ маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð· метою приÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ поточних
+значень. Якщо вам потрібен більш однорідний результат у Ñтовпчиках пам'ÑÑ‚Ñ–,
+цілі можна, зазвичай, доÑÑгти збільшеннÑм діапазону маÑштабуваннÑ. Втім,
+надмірне його піднÑÑ‚Ñ‚Ñ, ймовірно, призведе до показу одних нулів, Ñкі не
+можна буде придушити інтерактивною командою «0».
+
+.TP 7
+\ \ \ \fBg\fP\ \ :\fIВибрати інше вікно/групу полів\fP
+Програма попроÑить Ð²Ð°Ñ Ð²Ð²ÐµÑти чиÑло від 1 до 4, Ñке позначатиме групу полів,
+Ñку Ñлід зробити «поточним» вікном. Звикнути до цих 4 вікон доволі проÑто,
+оÑобливо піÑÐ»Ñ ÐµÐºÑÐ¿ÐµÑ€Ð¸Ð¼ÐµÐ½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ–Ð· режимом альтернативного показу.
+
+.TP 7
+\ \ \ \fBH\fP\ \ :\fIПеремикач режиму потоків\fP
+Якщо цей перемикач \*O, Ð´Ð»Ñ ÑƒÑÑ–Ñ… процеÑів в уÑÑ–Ñ… видимих вікнах завдань буде
+показано окремі потоки обробки. Якщо перемикач вимкнено, \*(We покаже Ñуму
+за уÑіма потоками Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ процеÑу.
+
+.TP 7
+\ \ \ \fBI\fP\ \ :\fIПеремикач режимів Irix/Solaris\fP
+Якщо програма працює у режимі Solaris («I» у Ñтані \*F), викориÑтаннÑ
+процеÑора завданнÑм буде поділено на загальну кількіÑÑ‚ÑŒ процеÑорів. ПіÑлÑ
+того, Ñк буде віддано цю команду, програма повідомить вам про новий Ñтан
+перемикача.
+
+.TP 7
+*\ \ \fBk\fP\ \ :\fIВбити Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ \fP
+Програма попроÑить Ð²Ð°Ñ Ð²Ð²ÐµÑти PID, а потім ввеÑти Ñигнал, Ñкий Ñлід
+надіÑлати.
+
+Якщо PID не буде введено або буде введено від'ємне чиÑло, програма
+викориÑтає типове значеннÑ, Ñке показано у запиті щодо команди (перше
+показане завданнÑ). Ðульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ PID означає Ñаму програму \*(We.
+
+Типовим Ñигналом, Ñк це буде показано у запиті, Ñ” SIGTERM. Втім, ви можете
+надіÑлати будь\-Ñкий Ñигнал, вказавши чиÑло або назву.
+
+Якщо ви хочете перервати Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ завданнÑ, виконайте одну з
+таких дій, залежно від поÑтупу процедури:
+.nf
+ 1) у запиті щодо pid введіть некоректне чиÑло
+ 2) у запиті щодо Ñигналу введіть 0 (або будь\-Ñкий некоректний Ñигнал)
+ 3) у будь\-Ñкому запиті натиÑніть <Esc>
+.fi
+
+.TP 7
+\ \ \ \fBq\fP\ \ :\fIВийти \fP
+
+.TP 7
+*\ \ \fBr\fP\ \ :\fIЗмінити пріоритетніÑÑ‚ÑŒ (nice) завданнÑ\fP
+Програма попроÑить Ð²Ð°Ñ Ð²Ð²ÐµÑти PID, а потім ввеÑти Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ–
+Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу.
+
+Якщо PID не буде введено або буде введено від'ємне чиÑло, програма
+викориÑтає типове значеннÑ, Ñке показано у запиті щодо команди (перше
+показане завданнÑ). Ðульове Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ PID означає Ñаму програму \*(We.
+
+Додатне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– (nice) ÑпричинÑÑ” втрату пріоритетноÑÑ‚Ñ–
+процеÑом. І навпаки, від'ємне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– призводить до того, що
+Ñдро розглÑдатиме Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñк пріоритетніший. Загалом, звичайні кориÑтувачі
+можуть лише збільшувати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– Ñ– не можуть його зменшувати.
+
+Якщо ви хочете перервати Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð¼Ñ–Ð½Ð¸ пріоритетноÑÑ‚Ñ– завданнÑ, виконайте
+одну з таких дій, залежно від поÑтупу процедури:
+.nf
+ 1) у запиті щодо pid введіть некоректне чиÑло
+ 2) у запиті щодо пріоритетноÑÑ‚Ñ– натиÑніть <Enter> без Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ
+ 3) у будь\-Ñкому запиті натиÑніть <Esc>
+.fi
+
+.TP 7
+\ \ \ \fBW\fP\ \ :\fIЗапиÑати файл налаштувань\fP
+У результаті уÑÑ– ваші Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ñ–Ð² Ñ– перемикачів, разом із поточним
+режимом показу та чаÑом затримки буде збережено. Якщо ви віддаÑте цю команду
+одразу перед завершеннÑм роботи \*(We, ви зможете згодом запуÑтити програму
+у тому Ñамому Ñтані.
+
+.TP 7
+\ \ \ \fBX\fP\ \ :\fIДодаткова фікÑована ширина\fP
+ДеÑкі Ð¿Ð¾Ð»Ñ Ð¼Ð°ÑŽÑ‚ÑŒ фікÑовану ширину Ñ– не придатні до маÑштабуваннÑ. Такі полÑ
+програма обрізає Ñ– позначає Ñ—Ñ… Ñимволом «+» в оÑтанній позиції.
+
+Цією інтерактивною командою можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ ширини таких полів:
+
+.nf
+ \fI поле типова поле типова поле типова \fP
+ GID 5 GROUP 8 WCHAN 10
+ LOGID 5 LXC 8 nsCGROUP 10
+ RUID 5 RUSER 8 nsIPC 10
+ SUID 5 SUSER 8 nsMNT 10
+ UID 5 TTY 8 nsNET 10
+ USER 8 nsPID 10
+ nsTIME 10
+ nsUSER 10
+ nsUTS 10
+.fi
+
+Програма попроÑить Ð²Ð°Ñ Ð²ÐºÐ°Ð·Ð°Ñ‚Ð¸ доповненнÑ, Ñке буде додано до типової ширини
+з наведеної вище таблиці. Ð’Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð½ÑƒÐ»ÑŒÐ¾Ð²Ð¾Ð³Ð¾ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸Ð·Ð²ÐµÐ´Ðµ до поверненнÑ
+до типового значеннÑ.
+
+Якщо ви вкажете від'ємне значеннÑ, \*(We автоматично збільшить розмір
+Ñтовпчика на потрібну величину, так, щоб дані не було обрізано.
+
+\*(NT Буде ширину цих полів збільшено Ñвно чи автоматично, \*(We ніколи не
+зменшуватиме ширини. Щоб зменшити ширину, вам Ñлід вказати менше чиÑло або
+відновити типові значеннÑ.
+
+.TP 7
+\ \ \ \fBY\fP\ \ :\fIВивчити інше виведеннÑ\fP
+ПіÑÐ»Ñ Ð²Ð¸Ð´Ð°Ð½Ð½Ñ Ñ–Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ñ— команди «Y» програма попроÑить Ð²Ð°Ñ Ð²Ð²ÐµÑти PID
+призначеннÑ. Ð’Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ прийнÑÑ‚Ñ‚Ñ Ñ‚Ð¸Ð¿Ð¾Ð²Ð¾Ð³Ð¾ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸Ð·Ð²ÐµÐ´Ðµ до
+поÑви окремого екрана. Цим екраном можна буде ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÐ³Ð»Ñду
+діапазону файлів або каналізованого Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´, а звичайний
+ітеративний показ даних \*(We буде призупинено.
+
+\*(NT Цю інтерактивну команду повніÑÑ‚ÑŽ реалізовано лише при підтримці
+запиÑів, Ñкі вручну додано наприкінці файла налаштувань \*(We. Докладніше
+про ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ñ†Ð¸Ñ… запиÑів можна дізнатиÑÑ Ñ–Ð· розділу 6б. ДОДÐÐ’ÐÐÐЯ ЗÐПИСІВ
+ДЛЯ ІÐСПЕКТУВÐÐÐЯ.
+
+БільшіÑÑ‚ÑŒ клавіш, Ñкі викориÑтовують Ð´Ð»Ñ Ð½Ð°Ð²Ñ–Ð³Ð°Ñ†Ñ–Ñ— інÑпектованими даними
+вказано у передмові. Втім, Ñ” додаткові клавіші, Ñкі Ñтають доÑтупними длÑ
+певного файла або команди. Ці клавіші знайомі будь\-кому, хто кориÑтувавÑÑ
+програмою поділу на Ñторінки «less». Їхнє резюме наведено тут з довідковою
+метою.
+
+.nf
+ \fI клавіша Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fP
+ = альтернативний Ñ€Ñдок Ñтану, файла або каналу
+ / пошук, еквівалент пошуку «L»
+ n знайти далі, еквівалент пошуку наÑтупного «&»
+ <Пробіл> Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð²Ð½Ð¸Ð·, еквівалент <PgDn>
+ b Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð²Ð³Ð¾Ñ€Ñƒ, еквівалент <PgUp>
+ g перший Ñ€Ñдок, еквівалент <Home>
+ G оÑтанній Ñ€Ñдок, еквівалент <End>
+.fi
+
+.TP 7
+\ \ \ \fBZ\fP\ \ :\fIЗмінити прив'Ñзку кольорів\fP
+ÐатиÑÐºÐ°Ð½Ð½Ñ Ñ†Ñ–Ñ”Ñ— клавіші переведе Ð²Ð°Ñ Ð´Ð¾ окремого екрана, на Ñкому ви зможете
+змінити кольори Ð´Ð»Ñ Â«Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾Â» вікна або Ð´Ð»Ñ ÑƒÑÑ–Ñ… вікон. Докладніше про цю
+інтерактивну команду можна дізнатиÑÑ Ð· розділу 4г. ПРИВ'ЯЗКРКОЛЬОРІВ.
+
+.P
+\ \ \fB^G\fP\ \ :\fIПоказати групи ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ \fP (клавіша Ctrl + `g')
+.br
+\ \ \fB^K\fP\ \ :\fIПоказати Ñ€Ñдок команди \fP (клавіша Ctrl + `k')
+.br
+\ \ \fB^N\fP\ \ :\fIПоказати Ñередовище \fP (клавіша Ctrl + `n')
+.br
+\ \ \fB^P\fP\ \ :\fIПоказати проÑтори назв \fP (клавіша Ctrl + `p')
+.br
+\ \ \fB^U\fP\ \ :\fIПоказати допоміжні групи \fP (клавіша Ctrl + `u')
+.br
+.RS +7
+ЗаÑтоÑовані до першого показаного процеÑу, ці команди виводÑÑ‚ÑŒ повні дані
+(потенційно розбиті на Ñ€Ñдки) щодо процеÑу. Такі дані буде показано в
+окремому вікні внизу екрана без Ð¿ÐµÑ€ÐµÑ€Ð¸Ð²Ð°Ð½Ð½Ñ Ð·Ð²Ð¸Ñ‡Ð°Ð¹Ð½Ð¾Ð³Ð¾ ÑпоÑÑ‚ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð°
+даними у \*(We.
+
+ÐатиÑÐºÐ°Ð½Ð½Ñ \fIтієї Ñамої\fP комбінації із «Ctrl» удруге вилучає це окреме вікно
+Ñ– віддає команду «=». ÐатиÑÐºÐ°Ð½Ð½Ñ Ñ–Ð½ÑˆÐ¾Ñ— комбінації клавіш із «Ctrl», доки
+вікно лишаєтьÑÑ Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¸Ð¼, негайно переводить програму у режим виведеннÑ
+відповідних нових даних.
+
+Помітною Ñеред цих команд Ñ” команда Ctrl+N (Ñередовище). Виведені нею дані
+можуть бути доÑить об'ємними, Ñ—Ñ… не проÑто читати, Ñкщо Ñ€Ñдок
+розбито. Зручніший Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð²Ð°Ñ€Ñ–Ð°Ð½Ñ‚ можна отримати за допомогою запиÑу
+«Inspect» у файлі rcfile, подібного до наведеного нижче.
+
+.nf
+ pipe ^I Environment ^I cat /proc/%d/environ | tr '\e0' '\en'
+.fi
+
+Див. інтерактивну команду «Y» Ñ– розділ 6б. ДОДÐÐ’ÐÐÐЯ ЗÐПИСІВ ДЛЯ
+ІÐСПЕКТУВÐÐÐЯ, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ.
+
+Ðльтернативою «Inspect», Ñка доÑтупна Ð´Ð»Ñ ÑƒÑÑ–Ñ… «Ctrl»\-команд, Ñ” клавіша
+табулÑції, Ñкою можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð¿Ñ–Ð´ÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾ÐºÑ€ÐµÐ¼Ð¸Ñ… елементів у
+нижній чаÑтині вікна.
+.RS -7
+
+.TP 7
+\ \ \fB^L\fP\ \ :\fIÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¶ÑƒÑ€Ð½Ð°Ð»Ñƒ \fP (клавіша Ctrl + `l')
+10 найÑвіжіших повідомлень буде показано на окремій панелі у нижній чаÑтині
+вікна, де, зазвичай, продовжуєтьÑÑ ÑÑ‚ÐµÐ¶ÐµÐ½Ð½Ñ Ð· \*(We. Повторне натиÑканнÑ
+«^L» вилучає цю панель, Ñк Ñ– команда «=». СкориÑтайтеÑÑ ÐºÐ»Ð°Ð²Ñ–ÑˆÐµÑŽ Tab длÑ
+підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ð¾ÐºÑ€ÐµÐ¼Ð¸Ñ… повідомлень.
+
+.TP 7
+*\ \fB^R\fP\ \ :\fIЗмінити пріоритетніÑÑ‚ÑŒ автогрупи \fP (клавіша Ctrl + `r')
+Програма попроÑить Ð²Ð°Ñ Ð²Ð²ÐµÑти PID, а потім ввеÑти Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ–
+Ð´Ð»Ñ Ð¹Ð¾Ð³Ð¾ AGNI автогрупи.
+
+Якщо PID не буде введено, програма викориÑтає типове значеннÑ, Ñке показано
+у запиті щодо команди (перше показане завданнÑ).
+
+Додатне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ AGNI призводить до втрати пріоритетноÑÑ‚Ñ– процеÑів в
+автогрупі. Ðавпаки, від'ємне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ‚ÑŒ до того, що Ñдро вважає Ñ—Ñ…
+пріоритетнішими. Звичайні кориÑтувачі не можуть вÑтановлювати від'ємні
+Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ AGNI.
+
+Якщо ви хочете перервати Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð·Ð¼Ñ–Ð½Ð¸ пріоритетноÑÑ‚Ñ– завданнÑ, натиÑніть
+<Esc>.
+
+.IP * 3
+Команди, Ñкі показано із зірочкою («*»), Ñ” недоÑтупними у захищеному режимі,
+їх також не буде показано на першому рівні екрана довідки.
+
+.\" ......................................................................
+.SS "4б. КОМÐÐДИ ОБЛÐСТІ РЕЗЮМЕ"
+.\" ----------------------------------------------------------------------
+Інтерактивні команди облаÑÑ‚Ñ– резюме Ñ” \fBзавжди доÑтупними\fP у обох режимах —
+повноекранному та режимі альтернативного показу. Ці команди ÑтоÑуютьÑÑ
+початкових Ñ€Ñдків показу Ñ– визначають позицію повідомлень Ñ– запитів.
+
+Ці команди завжди впливають лише на «поточне» вікно або групу
+полів. Див. розділ 5. ПОЛОЖЕÐÐЯ ÐЛЬТЕРÐÐТИВÐОГО ПОКÐЗУ та інтерактивну
+команду «g», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про «поточні» вікна Ñ– групи полів.
+
+.TP 7
+\ \ \ \fBC\fP\ \ :\fIПеремикач показу координат гортаннÑ\fP
+Перемкнути інформаційне повідомленнÑ, Ñке буде показано кожного разу, коли
+Ñ€Ñдок Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ðµ викориÑтовуєтьÑÑ Ð² інший ÑпоÑіб. Докладніше про це
+можна дізнатиÑÑ Ð· розділу 5в. ГОРТÐÐÐЯ ВІКÐÐ.
+
+.TP 7
+\ \ \ \fBl\fP\ \ :\fIПеремикач Ñереднього навантаженнÑ/чаÑу роботу\fP
+Це також Ñ€Ñдок, що міÑтить назву програми (можливо альтернативу назви) при
+роботі у повноекранному режимі або назву «поточного» вікна при роботі у
+режимі альтернативного показу.
+
+.TP 7
+\ \ \ \fBt\fP\ \ :\fIПеремикач завданнÑ/Ñтани процеÑора\fP
+Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° ÑтоÑуєтьÑÑ Ð²Ñ–Ð´ 2 багатьох Ñ€Ñдків облаÑÑ‚Ñ– резюме, залежно від
+Ñтану перемикачів команд «1», «2» або «3» Ñ– того, чи працює \*(We у режимі
+Ñиметричної багатопроцеÑорноÑÑ‚Ñ–.
+
+Ðа цю чаÑтину облаÑÑ‚Ñ– резюме впливає інтерактивна команда\-перемикач «H», Ñк
+це показано загальною міткою, Ñка показує Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ потоки.
+
+Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° працює Ñк чотирипозиційний перемикач із циклічним перемиканнÑм
+таких режимів:
+.nf
+ 1. докладні чаÑтки за категоріÑми
+ 2. Ñкорочені запиÑи кориÑтувача/ÑиÑтеми Ñ– загальний % + Ñтовпчикова діаграма
+ 3. Ñкорочені запиÑи кориÑтувача/ÑиÑтеми Ñ– загальний % + блоковий графік
+ 4. Ð²Ð¸Ð¼ÐºÐ½ÐµÐ½Ð½Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ завдань Ñ– Ñтанів процеÑора
+.fi
+
+При роботі у будь\-Ñкому з графічних режимів показані дані Ñтають набагато
+значимішими, Ñкщо також показано окремі процеÑори або вузли NUMA. Щоб
+дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ, ознайомтеÑÑ Ñ–Ð· опиÑом команд «1», «2» Ñ– «3» нижче.
+
+.TP 7
+\ \ \ \fBm\fP\ \ :\fIПеремикач пам'ÑÑ‚ÑŒ/викориÑÑ‚Ð°Ð½Ð½Ñ Ñ€ÐµÐ·ÐµÑ€Ð²Ð½Ð¾Ñ— пам'ÑÑ‚Ñ–\fP
+Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° ÑтоÑуєтьÑÑ Ð´Ð²Ð¾Ñ… Ñ€Ñдків облаÑÑ‚Ñ– резюме, Ñкі ÑтоÑуютьÑÑ Ñ„Ñ–Ð·Ð¸Ñ‡Ð½Ð¾Ñ— Ñ–
+віртуальної пам'ÑÑ‚Ñ–.
+
+Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° працює Ñк чотирипозиційний перемикач із циклічним перемиканнÑм
+таких режимів:
+.nf
+ 1. докладні чаÑтки за типом пам'ÑÑ‚Ñ–
+ 2. Ñкорочені запиÑи % викориÑтаної/загальної доÑтупної + Ñтовпчикова діаграма
+ 3. Ñкорочені запиÑи % викориÑтаної/загальної доÑтупної + блокова діаграма
+ 4. Ð²Ð¸Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ даних пам'ÑÑ‚Ñ–
+.fi
+
+.TP 7
+\ \ \ \fB1\fP\ \ :\fIПеремикач Ñтанів єдиного процеÑора/окремих процеÑорів\fP
+Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° впливає на те, Ñк буде показано чаÑтину Ñтанів процеÑора длÑ
+команди «t». Хоча оÑновним призначеннÑм цього перемикача Ñ” обÑлуговуваннÑ
+комп'ютерів із значною паралелізацією у Ñиметричній багатопроцеÑорноÑÑ‚Ñ–,
+його не обмежено лише Ñередовищами із Ñиметричною багатопроцеÑорніÑÑ‚ÑŽ.
+
+Коли ви бачите «%CПроц:» в облаÑÑ‚Ñ– резюме, перемикач «1» перебуває у Ñтані
+\*O, а уÑÑ– дані щодо процеÑора буде зібрано в одному Ñ€Ñдку. Якщо цього Ñ€Ñдка
+немає, кожен процеÑор буде показано окремо, Ñк «%Прц0, %Прц1, ...», аж до
+Ð²Ð¸Ñ‡ÐµÑ€Ð¿Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупної виÑоти екрана.
+
+.TP 7
+\ \ \ \fB2\fP\ \ :\fIПеремикач вузли NUMA/резюме процеÑорів\fP
+Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° перемикає програму між режимом «1» показу резюме процеÑора (лише)
+або показом резюме разом із ÑтатиÑтикою щодо викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора длÑ
+кожного вузла NUMA. Вона доÑтупна, лише Ñкщо у ÑиÑтемі Ñ” відповідна
+підтримка NUMA.
+
+.TP 7
+\ \ \ \fB3\fP\ \ :\fIРозгорнути вузол NUMA\fP
+Програма попроÑить Ð²Ð°Ñ Ð²Ð²ÐµÑти номер, Ñкий відповідає вузлу NUMA. ПіÑлÑ
+Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ показано резюме щодо вузла разом із ÑтатиÑтикою Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾
+процеÑора на вузлі, аж доки не буде натиÑнуто командний перемикач «1», «2»
+або «4». ДоÑтуп до цієї інтерактивної команди можна буде отримати, лише Ñкщо
+у ÑиÑтемі Ñ” відповідне підтримка NUMA.
+
+.TP 7
+\ \ \ \fB4\fP\ \ :\fIПеремикач одночаÑного показу декількох елементів\fP
+Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°\-перемикач вимикає «1» Ñ– показує дані декількох процеÑорів та
+пам'ÑÑ‚Ñ– у кожному Ñ€Ñдку. Кожне наÑтупне натиÑÐºÐ°Ð½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–ÑˆÑ– «4» додає ще один
+процеÑор, аж доки Ñтану Ð¿Ð¾Ð²ÐµÑ€Ð½ÐµÐ½Ð½Ñ Ð´Ð¾ окремих Ñ€Ñдків результатів длÑ
+процеÑорів Ñ– пам'ÑÑ‚Ñ–.
+
+У цей ÑпоÑіб може бути показано дані до 8 процеÑорів на Ñ€Ñдок. Втім може
+ÑтатиÑÑ Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… через доÑÑÐ³Ð½ÐµÐ½Ð½Ñ Ð¼Ð°ÐºÑимального обÑÑгу
+показаного. Таке, напевно, ÑтанетьÑÑ, Ñкщо переглÑдати докладні ÑтатиÑтичні
+дані за допомогою команди\-перемикача «t», оÑкільки такі дані не можна
+маÑштабувати, подібно до графічного предÑтавленнÑ.
+
+Якщо потрібно швидко вийти із режиму паралельного показу без переходу уÑім
+циклом, аж до 8 процеÑорів, проÑто ÑкориÑтайтеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ\-перемикачем «1».
+
+.TP 7
+\ \ \ \fB5\fP\ \ :\fIПеремикач показу P\-Ñдер Ñ– E\-Ñдер\fP
+Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°\-перемикач Ñ” активною, лише Ñкщо увімкнено перемикач «t» Ñ–
+вимкнено перемикачі «1», «2», «3» та «!», показуючи окремі результати длÑ
+процеÑорів. ПрипуÑкаємо, що платформа має декілька процеÑорних Ñдер двох
+різних типів, багатопотокові (P\-Ñдро) або однопотокові (E\-Ñдро).
+
+Хоча, зазвичай, кожен процеÑор буде показано Ñк «%Проц0, %Проц1, ...», цим
+перемикачем можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ñ–Ð´ÐµÐ½Ñ‚Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ— Ñ–/або фільтруваннÑ
+процеÑорів за типом Ñдра, або P\-Ñдро (швидкодіÑ), або E\-Ñдро (ефективніÑÑ‚ÑŒ).
+
+Коли уперше натиÑнути «5», кожен процеÑор буде показано Ñк «%Cp\fBP\fP» або
+«%Cp\fBE\fP», відповідно до одного з двох типів Ñдер. ПіÑÐ»Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð³Ð¾ натиÑканнÑ
+буде показано лише P\-Ñдра (%Cp\fBP\fP). ПіÑÐ»Ñ Ñ‚Ñ€ÐµÑ‚ÑŒÐ¾Ð³Ð¾ натиÑÐºÐ°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ
+показано лише E\-Ñдра (%Cp\fBE\fP). Якщо натиÑнути команду\-перемикач учетверте,
+показ процеÑорів повернетьÑÑ Ð´Ð¾ звичайного режиму «%Проц».
+
+Якщо окремих категорій \fIшвидкодіÑ\fP Ñ– \fIефективніÑÑ‚ÑŒ\fP немає, цей перемикач
+не працюватиме.
+
+.TP 7
+\ \ \ \fB!\fP\ \ :\fIПеремикач режиму Ð¿Ð¾Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑорів\fP
+Цю команду\-перемикач призначено Ð´Ð»Ñ Ñередовищ із потужною паралельною
+Ñиметричною багатопроцеÑорніÑÑ‚ÑŽ, де, навіть із командою\-перемикачем «4»,
+може бути показано лише чаÑтину процеÑорів. Із кожним натиÑканнÑм «!»
+кількіÑÑ‚ÑŒ додаткових поєднаних процеÑорів подвоюватиметьÑÑ, таким чином
+зменшуючи загальну кількіÑÑ‚ÑŒ показаних Ñ€Ñдків процеÑорів.
+
+Ðаприклад, піÑÐ»Ñ Ð¿ÐµÑ€ÑˆÐ¾Ð³Ð¾ натиÑÐºÐ°Ð½Ð½Ñ Â«!» два центральних процеÑора буде
+поєднано Ñ– показано Ñк «0\-1, 2\-3, ...» заміÑÑ‚ÑŒ звичайного «%Прц0, %Прц1,
+%Прц2, %Прц3, ...». ПіÑÐ»Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð³Ð¾ натиÑÐºÐ°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸\-перемикача «!» буде
+поєднано чотири процеÑори Ñ– показано дані Ñк «0\-3, 4\-7, ...». Далі, третє
+натиÑÐºÐ°Ð½Ð½Ñ Â«!» поєднає віÑім процеÑорів, покаже «0\-7, 8\-15, ...» тощо.
+
+ÐŸÐ¾Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ñ‚Ñ€Ð¸Ð²Ð°Ñ‚Ð¸Ð¼Ðµ, аж доки програма не повернетьÑÑ Ð´Ð¾ показу окремих
+процеÑорів, Ñ– ÑтоÑуватиметьÑÑ Ð¾Ð±Ð¾Ñ… перемикачів, «1» Ñ– «4» (одного або
+декількох Ñтовпчиків). СкориÑтайтеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ «=», щоб вийти з режиму
+\fBÐ¿Ð¾Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑорів\fP.
+
+.PP
+\*(NT Якщо уÑÑ– облаÑÑ‚ÑŒ резюме було вимкнено Ð´Ð»Ñ ÑкогоÑÑŒ з вікон, ви зможете
+бачити лише \fBÑ€Ñдок повідомлень\fP. У такому режимі ви бачитимете макÑимум
+доÑтупних Ñ€Ñдків завдань, але (тимчаÑово) не побачите назви програми у
+повноекранному режимі або назви «поточного» вікна у режимі альтернативного
+показу.
+
+.\" ......................................................................
+.SS "4в. КОМÐÐДИ ОБЛÐСТІ ЗÐВДÐÐЬ"
+.\" ----------------------------------------------------------------------
+Інтерактивні команди облаÑÑ‚Ñ– завдань \fBзавжди\fP доÑтупні у повноекранному
+режимі.
+
+Інтерактивні команди облаÑÑ‚Ñ– завдань \fBніколи не доÑтупні\fP у режимі
+альтернативного показу, Ñкщо показ завдань «поточного» вікна \*F
+(див. розділ 5. ПОЛОЖЕÐÐЯ ÐЛЬТЕРÐÐТИВÐОГО ПОКÐЗУ).
+
+.\" ..................................................
+.PP
+\fBВИГЛЯД\fP \*(TW
+
+.TP 7
+\ \ \ \fBJ\fP\ \ :\fIПеремикач Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñ‡Ð¸Ñлових Ñтовпчиків\fP
+Перемикає між вирівнюваннÑм праворуч (типовий режим) та вирівнюваннÑм
+ліворуч чиÑлових даних. Якщо чиÑлові дані повніÑÑ‚ÑŽ заповнюють доÑтупний у
+Ñтовпчику проÑÑ‚Ñ–Ñ€, цей командний перемикач ÑтоÑуватиметьÑÑ Ð»Ð¸ÑˆÐµ заголовка
+Ñтовпчика.
+
+.TP 7
+\ \ \ \fBj\fP\ \ :\fIПеремикач Ð²Ð¸Ñ€Ñ–Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñимвольних Ñтовпчиків\fP
+Перемикає між вирівнюваннÑм ліворуч (типовий режим) та вирівнюваннÑм
+праворуч Ñимвольних даних. Якщо Ñимвольні дані повніÑÑ‚ÑŽ заповнюють доÑтупний
+у Ñтовпчику проÑÑ‚Ñ–Ñ€, цей командний перемикач ÑтоÑуватиметьÑÑ Ð»Ð¸ÑˆÐµ заголовка
+Ñтовпчика.
+
+.PP
+.RS +2
+Ðа наведені нижче команди також впливає Ñтан загального перемикача «B»
+(Ð²Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð½Ð°Ð¿Ñ–Ð²Ð¶Ð¸Ñ€Ð½Ð¾Ð³Ð¾).
+.RS -2
+
+.TP 7
+\ \ \ \fBb\fP\ \ :\fIПеремикач напівжирний/звичайний\fP
+Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° впливає на те, Ñк буде показано перемикачі «x» та «y». Вона також
+може вплинути на облаÑÑ‚ÑŒ резюме, Ñкщо Ð´Ð»Ñ Ñтанів процеÑора або викориÑтаннÑ
+пам'ÑÑ‚Ñ– було вибрано Ñтовпчикову діаграму за допомогою перемикача «t» або
+«m».
+
+.TP 7
+\ \ \ \fBx\fP\ \ :\fIПеремикач підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ñтовпчиків\fP
+Змінює підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ Ð¿Ð¾Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑдковуваннÑ.
+Якщо ви забули, Ñке поле викориÑтано Ð´Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑдковуваннÑ, цією командою можна ÑкориÑтатиÑÑ,
+Ñк швидким візуальним нагадуваннÑм, Ñке показує поле упорÑдковуваннÑ.
+Поле упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ðµ бути \fIневидимим\fP, оÑкільки:
+ 1) недоÑÑ‚Ð°Ñ‚Ð½Ñ \fIширина екрана\fP
+ 2) його \*F інтерактивною командою «f»
+
+.TP 7
+\ \ \ \fBy\fP\ \ :\fIПеремикач підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€Ñдків\fP
+Змінює підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Â«Ð·Ð°Ð¿ÑƒÑ‰ÐµÐ½Ð¸Ñ…Â» завдань. Щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про цей
+Ñтан завдань, див. розділ 3а. ОПИСИ ПОЛІВ, поле «S» (Ñтан процеÑів).
+
+ВикориÑÑ‚Ð°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ перемикача надає важливі дані щодо Ñтану вашої
+ÑиÑтеми. Єдиною платою за це Ñ” декілька додаткових екранованих
+поÑлідовноÑтей у терміналі.
+
+.TP 7
+\ \ \ \fBz\fP\ \ :\fIПеремикач колір/монохроматичніÑÑ‚ÑŒ\fP
+Перемикає «поточне» вікно між вашою оÑтанньою викориÑтаною Ñхемою кольорів
+та Ñтарою формою чорного текÑту на білому тлі або білого текÑту на чорному
+тлі. Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° ÑтоÑуєтьÑÑ \fBодрдазу\fP облаÑÑ‚Ñ– резюме Ñ– облаÑÑ‚Ñ– завдань, але
+не впливає на Ñтан перемикачів «x», «y» та «b».
+
+.\" ..................................................
+.PP
+\fBВМІСТ\fP вікна завдань
+
+.TP 7
+\ \ \ \fBc\fP\ \ :\fIПеремикач Ñ€Ñдок команди/назва програми\fP
+Цю команду буде враховано незалежно від того, чи Ñ” Ñтовпчик COMMAND
+видимим. Пізніше, Ñкщо це поле Ñтане видимим, ви зможете побачити наÑлідки
+внеÑених змін.
+
+.TP 7
+\ \ \ \fBF\fP\ \ :\fIПеремикач Ñупроводу фокуÑом батьківÑького процеÑу\fP
+У режимі ліÑу Ñ†Ñ ÐºÐ»Ð°Ð²Ñ–ÑˆÐ° Ñлугує Ñк перемикач Ð´Ð»Ñ ÑƒÑ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ„Ð¾ÐºÑƒÑа на
+завданні призначеннÑ, можливо, із відгалуженими дочірніми процеÑами. У
+режимі переглÑду ліÑу вимкнено, Ñ†Ñ ÐºÐ»Ð°Ð²Ñ–ÑˆÐ° ні на що не впливатиме.
+
+Перемикач буде заÑтоÑовано до першого (верхнього) Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñƒ «поточному»
+вікні. ПіÑÐ»Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ‚Ð°ÐºÐµ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð¶Ð´Ð¸ буде показано Ñк перший
+(верхній) Ð¿Ñ€Ð¾Ñ†ÐµÑ Ñ€Ð°Ð·Ð¾Ð¼ із Ñвоїми відгалуженими дочірніми процеÑами. Показ
+уÑÑ–Ñ… інших процеÑів буде придушено.
+
+\*(NT можна буде кориÑтуватиÑÑ ÐºÐ»Ð°Ð²Ñ–ÑˆÐ°Ð¼Ð¸ «i» (бездіÑльні завданнÑ), «n»
+(макÑимальні завданнÑ), «v» (приховати дочірні) та фільтруваннÑм за
+кориÑтувачем та іншими кориÑтувачами; ці команди можуть впливати на те, що
+буде показано.
+
+.TP 7
+\ \ \ \fBf\fP\ \ :\fIÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð»Ñми \fP
+ÐатиÑÐºÐ°Ð½Ð½Ñ Ñ†Ð¸Ñ… клавіш призведе до показу окремого екрана, на Ñкому ви
+зможете змінити перелік показаних полів, їхній порÑдок та вказати поле длÑ
+упорÑдковуваннÑ. Докладніші відомоÑÑ‚Ñ– щодо цих інтерактивних команд можна
+знайти у розділі 3б. КЕРУВÐÐÐЯ ПОЛЯМИ.
+
+.TP 7
+\ \ \ \fBO\fP | \fBo\fP\ \ :\fIІнше Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ \fP
+Програма попроÑить Ð²Ð°Ñ Ð²Ð¸Ð±Ñ€Ð°Ñ‚Ð¸ критерій, Ñкий визначить, Ñкі Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ
+показано у «поточному» вікні. У вашому критерії можна враховувати регіÑÑ‚Ñ€
+Ñимволів або не враховувати регіÑÑ‚Ñ€ Ñимволів. Ви також можете визначити, має
+\*(We включати чи виключати відповідні завданнÑ.
+
+\*Див. розділ 5д. ФІЛЬТРУВÐÐÐЯ У ВІКÐІ, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про ці та
+додаткові пов'Ñзані інтерактивні команди.
+
+.TP 7
+\ \ \ \fBS\fP\ \ :\fIПеремикач режиму Ð½Ð°ÐºÐ¾Ð¿Ð¸Ñ‡ÐµÐ½Ð½Ñ Ñ‡Ð°Ñу\fP
+Якщо режим накопиченого чаÑу увімкнено, кожен Ð¿Ñ€Ð¾Ñ†ÐµÑ Ð±ÑƒÐ´Ðµ показано із чаÑом
+центрального процеÑора, Ñкий викориÑтано Ñамим процеÑом Ñ– уÑіма його
+завершеними дочірніми процеÑами.
+
+Якщо \*F, програми, Ñкі розгалужуютьÑÑ Ð½Ð° багато окремих завдань
+здаватимутьÑÑ Ð¼ÐµÐ½Ñˆ вимогливими. Ð”Ð»Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼, подібних до «init» або
+командної оболонки, це Ñ” прийнÑтним, але Ð´Ð»Ñ Ñ–Ð½ÑˆÐ¸Ñ… програм, подібних до
+компілÑторів, ймовірно, ні. Спробуйте поекÑпериментувати з двома вікнами
+завдань із однаковим полем упорÑдковуваннÑ, але різними Ñтанами «S» Ñ–
+виберіть потрібне вам предÑтавленнÑ.
+
+ПіÑÐ»Ñ Ñ‚Ð¾Ð³Ð¾, Ñк буде віддано цю команду, програма проінформує Ð²Ð°Ñ Ñ‰Ð¾Ð´Ð¾ нового
+Ñтану цього перемикача. Якщо вам потрібно знати, чи задіÑно накопичувальний
+режим, проÑто віддайте команду показу довідки Ñ– зверніть увагу на другий
+Ñ€Ñдок у резюме вікна.
+
+.TP 7
+\ \ \ \fBU\fP | \fBu\fP\ \ :\fIПоказати лише Ð´Ð»Ñ Ð¿ÐµÐ²Ð½Ð¾Ð³Ð¾ кориÑтувача \fP
+Програма попроÑить Ð²Ð°Ñ Ð²Ð²ÐµÑти \fBuid\fP або \fBім'Ñ\fP кориÑтувача, дані Ñкого
+Ñлід показати. Показати лише процеÑи із вказаним ідентифікатором кориÑтувача
+або іменем кориÑтувача Параметр «\-u» ÑтоÑуєтьÑÑ \fBефективного\fP кориÑтувача,
+а параметр «\-U» ÑтоÑуєтьÑÑ \fIбудь\-Ñкого\fP кориÑтувача (Ñправжнього,
+ефективного, збереженого або кориÑтувача файлової ÑиÑтеми).
+
+З цього моменту у цьому вікні завдань буде показано далі лише відповідних
+кориÑтувачів або взагалі не буде показано процеÑів. Ð”Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð½Ð°ÐºÑƒ оклику
+(«!») до ідентифікатора кориÑтувача або імені наказує \*(We показати лише
+процеÑи кориÑтувачів, Ñкі не збігаютьÑÑ Ñ–Ð· вказаним.
+
+Ð”Ð»Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… за різними кориÑтувачами можна ÑкориÑтатиÑÑ Ñ€Ñ–Ð·Ð½Ð¸Ð¼Ð¸
+вікнами завдань. Пізніше, Ñкщо ви захочете знову побачити дані ÑпоÑтереженнÑ
+за уÑіма кориÑтувачами у «поточному» вікні, знову віддайте цю команду, але
+проÑто натиÑніть <Enter> у відповідь на запит.
+
+.TP 7
+\ \ \ \fBV\fP\ \ :\fIПеремикач режиму переглÑду ліÑу\fP
+У цьому режимі процеÑи буде переупорÑдковано за їхніми батьківÑькими
+процеÑами, а ÐºÐ¾Ð¼Ð¿Ð¾Ð½ÑƒÐ²Ð°Ð½Ð½Ñ Ñтовпчика COMMAND нагадуватиме дерево. У режимі
+переглÑду ліÑу можна буде перемикатиÑÑ Ð¼Ñ–Ð¶ показом назви програми Ñ– Ñ€Ñдка
+команди (див. інтерактивну команду «c») або між показом процеÑів Ñ– гілок
+(див. інтерактивну команду «H»).
+
+\*(NT ÐатиÑÐºÐ°Ð½Ð½Ñ Ð±ÑƒÐ´ÑŒ\-Ñкої клавіші, Ñка впливає на порÑдок ÑортуваннÑ,
+призведе до виходу з режиму переглÑду ліÑу у «поточному»
+вікні. Див. 4в. КОМÐÐДИ ОБЛÐСТІ ЗÐВДÐÐЬ, УПОРЯДКОВУВÐÐÐЯ, щоб дізнатиÑÑ
+більше про ці клавіші.
+
+.TP 7
+\ \ \ \fBv\fP\ \ :\fIПеремикач приховуваннÑ/показу дочірніх процеÑів\fP
+У режимі ліÑу Ñ†Ñ ÐºÐ»Ð°Ð²Ñ–ÑˆÐ° Ñлугує Ñк перемикач Ð´Ð»Ñ Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ розгортаннÑ
+дочірніх запиÑів батьківÑького запиÑу.
+
+Перемикач буде заÑтоÑовано до першого (найвищого у ÑпиÑку) процеÑу у
+«поточному» вікні. Див. 5в. ГОРТÐÐÐЯ ВІКÐÐ, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про
+вертикальне гортаннÑ.
+
+Якщо від цільового процеÑу не було відгалужено жодних дочірніх, Ñ†Ñ ÐºÐ»Ð°Ð²Ñ–ÑˆÐ°
+ні на що не вплине. Також вона не працює у режимах, відмінних від режиму
+показу ліÑу.
+
+.TP 7
+\ \ \fB^E\fP\ \ :\fIМаÑштабувати Ð¿Ð¾Ð»Ñ Ñ‡Ð°Ñу процеÑора\fP (клавіша Ctrl + «E»)
+Дані у полÑÑ… чаÑу, зазвичай, буде показано із найвищою доÑтупною
+точніÑÑ‚ÑŽ. За допомогою цього перемикача можна змінити точніÑÑ‚ÑŒ так, щоб дані
+вміÑтилиÑÑ Ñƒ поле. Він також ілюÑтрує маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð»Ñ–Ð², Ñке \fIмогло б\fP
+бути вÑтановлено автоматично, залежно від того, наÑкільки довго працює
+ÑиÑтема.
+
+Ðаприклад, Ñкщо показано «ХХХ:СС.дд», поÑлідовні натиÑÐºÐ°Ð½Ð½Ñ ^E змінюватимуть
+формат показу так: «ХХ:СС», «Години,ХХ», «Дні+Години» і, нарешті,
+«Тижні+Дні».
+
+Такому маÑштабуванню до повного діапазону підлÑгають не уÑÑ– Ð¿Ð¾Ð»Ñ Ñ‡Ð°Ñу.
+
+.\" ..................................................
+.PP
+\fBРОЗМІР\fP \*(TW
+
+.TP 7
+\ \ \ \fBi\fP\ \ :\fIПеремикач бездіÑльних процеÑів\fP
+Перемикає програму між показом уÑÑ–Ñ… завдань або лише активних завдань. Якщо
+цей перемикач \*F, завданнÑ, Ñкі не викориÑтовували жодного процеÑора з
+моменту оÑтаннього оновленнÑ, не буде показано. Втім, через деталізацію
+полів %CPU Ñ– TIME+, програма може показувати пункти деÑких процеÑів, Ñкі, Ñк
+може \fIздатиÑÑ\fP, \fIне\fP викориÑтовують процеÑор.
+
+Якщо цю команду заÑтоÑовано до оÑтаннього показу команд у режимі
+альтернативного показу, вона не впливатиме на розмір вікна, оÑкільки уÑÑ–
+попередні покази команд уже буде намальовано.
+
+.TP 7
+\ \ \ \fBn\fP | \fB#\fP\ \ :\fIÐ’Ñтановити макÑимальну кількіÑÑ‚ÑŒ завдань\fP
+Програма попроÑить Ð²Ð°Ñ Ð²Ð²ÐµÑти кількіÑÑ‚ÑŒ завдань, Ñкі Ñлід показати. Буде
+викориÑтано менше зі значень — вказаного вами чиÑла Ñ– доÑтупної кількоÑÑ‚Ñ–
+Ñ€Ñдків на екрані.
+
+Якщо команду викориÑтано у режимі альтернативного показу, вона надаÑÑ‚ÑŒ вам
+можливіÑÑ‚ÑŒ точно визначити розмір кожної із видимих панелей показу завдань,
+окрім оÑтанньої. Вона не впливає на розмір оÑтаннього вікна, оÑкільки уÑÑ–
+попередні панелі показу завдань вже буде намальовано.
+
+\*(NT Якщо вам потрібно збільшити розмір оÑтанньої видимої панелі показу
+завдань у режимі альтернативного показу, проÑто зменшіть розмір панелей
+показу завдань над нею.
+
+.\" ..................................................
+.PP
+\fBУПОРЯДКУВÐÐÐЯ\fP \*(TW
+.PP
+.RS +3
+З метою Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ ÑуміÑноÑÑ‚Ñ– у цій верÑÑ–Ñ— \*(We передбачено підтримку
+уÑÑ–Ñ… клавіш упорÑдковуваннÑ, Ñкі було реалізовано у попередніх верÑÑ–ÑÑ…
+\*(We. ОÑкільки ці клавіші призначено, в оÑновному, Ð´Ð»Ñ Ð´Ð°Ð²Ð½Ñ–Ñ… кориÑтувачів
+\*(We, відповідні команди не опиÑано на жодному з екранів довідки.
+.nf
+ \fI комаанда поле\-упорÑÐ´ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´Ñ‚Ñ€Ð¸Ð¼ÐºÐ° \fP
+ A момент запуÑку (без показу) \fB ÐÑ– \fP
+ M %MEM Так
+ N PID Так
+ P %CPU Так
+ T TIME+ Так
+.fi
+
+Перш ніж кориÑтуватиÑÑ Ð±ÑƒÐ´ÑŒ\-Ñкими із вказаних нижче варіантів
+упорÑдковуваннÑ, \*(We запропонує вам тимчаÑово увімкнути підÑвічуваннÑ
+Ñтовпчиків за допомогою інтерактивної команди «x». Це допоможе вам
+переконатиÑÑ, що Ñправжнє Ñередовище упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð°Ñ” вашим
+очікуваннÑм.
+
+Вказані нижче інтерактивні команди буде враховано, \fBлише\fP Ñкщо поточне поле
+упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ” \fBвидимим\fP.
+Поле упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ðµ бути \fIневидимим\fP з таких причин:
+ 1) недоÑÑ‚Ð°Ñ‚Ð½Ñ \fIширина екрана\fP
+ 2) інтерактивна команда «f» вимкнула показ полÑ
+
+.TP 7
+\ \ \ \fB<\fP\ \ :\fIПереÑунути поле упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð»Ñ–Ð²Ð¾Ñ€ÑƒÑ‡\fP
+ПереÑуває Ñтовпчик упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð»Ñ–Ð²Ð¾Ñ€ÑƒÑ‡, Ñкщо поточне поле
+упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ Ñ” першим показаним полем.
+
+.TP 7
+\ \ \ \fB>\fP\ \ :\fIПереÑунути поле упорÑÐ´ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¾Ñ€ÑƒÑ‡ \fP
+ПереÑуває Ñтовпчик упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð°Ð²Ð¾Ñ€ÑƒÑ‡, Ñкщо поточне поле
+упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð½Ðµ Ñ” оÑтаннім показаним полем.
+
+.PP
+Вказані нижче інтерактивні команди буде \fBзавжди\fP враховано, незалежно від
+того, чи Ñ” видимим поточне поле упорÑдковуваннÑ.
+
+.TP 7
+\ \ \ \fBf\fP\ \ :\fIÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð»Ñми \fP
+За допомогою цих клавіш можна відкрити окремий екран, за допомогою Ñкого,
+окрім іншого, ви можете змінити, Ñке з полів буде викориÑтано длÑ
+упорÑдковуваннÑ. Це може бути зручним ÑпоÑобом перевірити, Ñке з полів Ñ”
+полем Ð´Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑдковуваннÑ, Ñкщо \*(We було запущено із вимкненим
+підÑвічуваннÑм Ñтовпчиків.
+
+.TP 7
+\ \ \ \fBR\fP\ \ :\fIПеремикач оберненого/звичайного упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° полем\fP
+За допомогою цієї інтерактивної команди ви можете перемикатиÑÑ Ð¼Ñ–Ð¶ режимами
+«від більшого до меншого» та «від меншого до більшого».
+
+.\" ......................................................................
+.SS "4г. ПРИВ'ЯЗКРКОЛЬОРІВ"
+.\" ----------------------------------------------------------------------
+Якщо ви віддаÑте інтерактивну команду «Z», програма покаже вам окремий
+екран. Цим екраном можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ кольорів лише у «поточному»
+вікні або в уÑÑ–Ñ… чотирьох вікнах перед поверненнÑм до показу даних \*(We.
+
+.P
+ДоÑтупними Ñ” вказані нижче інтерактивні команди.
+.nf
+ \fB4\fP літери верхнього регіÑтру Ð´Ð»Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ \fBцілі\fP
+ \fB8\fP цифри Ð´Ð»Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ \fBкольору\fP
+ доÑтупні звичайні перемикачі
+ B :вимиканнÑ/Ð²Ð¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð½Ð°Ð¿Ñ–Ð¶Ð¸Ñ€Ð½Ð¾Ð³Ð¾
+ b :«напівжирні»/звичайні запущені завданнÑ
+ z :колір/монохроматичніÑÑ‚ÑŒ
+ доÑтупні інші команди
+ a/w :заÑтоÑувати, потім перейти до наÑтупного/попереднього
+ <Enter> :заÑтоÑувати Ñ– вийти
+ q :відкинути поточні зміни і вийти
+.fi
+
+Якщо ви ÑкориÑтаєтеÑÑ Â«a» або «w» Ð´Ð»Ñ Ñ†Ð¸ÐºÐ»Ñ–Ñ‡Ð½Ð¾Ð³Ð¾ переходу вікном
+призначеннÑ, ви матимете заÑтоÑовану Ñхему кольорів, Ñку було показано, коли
+ви полишите це вікно. Ви можете, звичайно, без проблем повернутиÑÑ Ð´Ð¾
+будь\-Ñкого вікна Ñ– повторно заÑтоÑувати різні кольори або повніÑÑ‚ÑŽ вимкнути
+кольори за допомогою перемикача «z».
+
+Крім того, екраном прив'Ñзки кольорів можна ÑкориÑтатиÑÑ Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸
+«поточного» вікна або групи полів у повноекранному режимі або режимі
+альтернативного показу. Щоб не було ціллю при натиÑканні «q» або
+<Enter>, його буде зроблено поточним, коли ви повернетеÑÑ Ð´Ð¾ показу
+даних \*(We.
+
+.\" ----------------------------------------------------------------------
+.SH "5. ПОЛОЖЕÐÐЯ ÐЛЬТЕРÐÐТИВÐОГО ПОКÐЗУ"
+.\" ----------------------------------------------------------------------
+.\" ......................................................................
+.SS "5а. ОГЛЯД ВІКОÐ"
+.\" ----------------------------------------------------------------------
+.TP 3
+\fBГрупи полів/Вікна\fP:
+У повноекранному режимі програма показуватиме єдине вікно, Ñке заповнюватиме
+увеÑÑŒ екран. У цьому єдиному вікні уÑе ще можна показ на демонÑтрацію даних
+однієї з 4 різних \fBгруп полів\fP (див. інтерактивну команду «g», повторену
+нижче). Кожна з 4 груп полів має унікальну окремо налаштовувану \fBоблаÑÑ‚ÑŒ резюме\fP Ñ– влаÑну налаштовувану \fBоблаÑÑ‚ÑŒ завдань\fP.
+
+У режимі альтернативного показу ці базові 4 групи полів тепер можна зробити
+видимими або вимкнути окремо за вашою командою.
+
+ОблаÑÑ‚ÑŒ резюме Ñ–Ñнуватиме завжди, навіть Ñкщо це проÑто Ñ€Ñдок
+повідомленнÑ. У будь\-Ñкий конкретний момент може бути показано лише \fIодну\fP
+\*(SA. Втім, залежно від ваших команд, може бути від \fIнулÑ\fP до \fIчотирьох\fP
+окремих панелей показу завдань одночаÑно показаних на екрані.
+
+.TP 3
+\fBПоточне вікно\fP:
+«Поточне» вікно Ñ” вікном, Ñке пов'Ñзано із облаÑÑ‚ÑŽ резюме, Ñ– вікном, до
+Ñкого завжди буде ÑпрÑмовано уÑÑ– пов'Ñзані із завданнÑм команди. ОÑкільки у
+режимі альтернативного показу ви можете перемкнути показ завдань у Ñтан \*F,
+деÑкі команди може бути обмежено Ð´Ð»Ñ Â«Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾Â» вікна.
+
+УÑе Ñтає Ñкладнішим, Ñкщо ви вимкнете перший Ñ€Ñдок облаÑÑ‚Ñ– резюме. Із
+втратою назви вікна (Ñ€Ñдка, перемкнутого «l»), вам не проÑто буде визначити,
+Ñке з вікон Ñ” «поточним».
+
+.\" ......................................................................
+.SS "5б. КОМÐÐДИ ДЛЯ ВІКОÐ"
+.\" ----------------------------------------------------------------------
+.TP 7
+\ \ \ \fB\-\fP | \fB_\fP\ \ :\fIПеремикачі показу/Ð¿Ñ€Ð¸Ñ…Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ–ÐºÐ¾Ð½\fP
+Клавіша «\-» вмикає або вимикає показ завдань «поточного» вікна. У Ñтані \*O
+в облаÑÑ‚Ñ– завдань буде показано мінімум заголовка Ñтовпчиків, Ñкі
+вÑтановлено вами за допомогою інтерактивної команди «f». У ній також буде
+відтворено будь\-Ñкі інші параметри або перемикачі облаÑÑ‚Ñ– завдань, Ñкі було
+заÑтоÑовано вами з метою Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… Ð½ÑƒÐ»Ñ Ð°Ð±Ð¾ більшої кількоÑÑ‚Ñ– завдань.
+
+Клавіша «_» виконує те Ñаме Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð´Ð»Ñ ÑƒÑÑ–Ñ… показів завдань. Іншими
+Ñловами, Ñ†Ñ ÐºÐ»Ð°Ð²Ñ–ÑˆÐ° перемикає програму між поточними видимими показами
+завдань Ñ– будь\-Ñкими показами завдань, Ñкі ви перевели у Ñтан \*F. Якщо
+поточними видимими Ñ” уÑÑ– 4 покази завдань, Ñ†Ñ Ñ–Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð° команда лишить
+облаÑÑ‚ÑŒ резюме єдиним показаним елементом.
+
+.TP 7
+*\ \ \fB=\fP | \fB+\fP\ \ :\fIВирівнÑти/Скинути вікна\fP
+ВикориÑÑ‚Ð°Ð½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–ÑˆÑ– «=» примуÑово вÑтановлює Ñтан видимоÑÑ‚Ñ– Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ
+завдань «поточного» вікна Вона також обертає уÑÑ– активні перемикачі «i»
+(бездіÑльні завданнÑ), «n» (макÑимум завдань), «u/U» (фільтр за
+кориÑтувачем), «o/O» (інший фільтр), «v» (приховати дочірні), «F»
+(фокуÑовано), «L» (пошук) Ñ– «!» (поєднати дані Ð´Ð»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑорів). Також, Ñкщо
+у вікні було виконано гортаннÑ, його буде Ñкинуто цією
+командою. Див. 5в. ГОРТÐÐÐЯ ВІКÐÐ, щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про вертикальне Ñ–
+горизонтальне гортаннÑ.
+
+Клавіша «+» робить те Ñаме Ð´Ð»Ñ ÑƒÑÑ–Ñ… вікон. Повторно з'ÑвлÑÑ‚ÑŒÑÑ ÑƒÑÑ– чотири
+покази завдань, рівномірно розподілені за розміром, із одночаÑним
+збереженнÑм уÑÑ–Ñ… налаштувань, Ñкі було заÑтоÑовано додатково до тих, Ñкі
+опиÑано Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸\-перемикача «=».
+
+.TP 7
+*\ \ \fBA\fP\ \ :\fIПеремикач режиму альтернативного показу\fP
+Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° перемикає програму між повноекранним режимом Ñ– режимом
+альтернативного показу.
+
+Коли ви перший раз віддаÑте цю команду, буде показано уÑÑ– чотири показу
+завдань. Ðадалі, коли ви перемикатимете режими, ви бачитимете лише Ñ‚Ñ– покази
+завдань, Ñкі ви визначили Ñк видимі.
+
+.TP 7
+*\ \ \fBa\fP | \fBw\fP\ \ :\fIÐаÑтупне\-вікно\-вперед/назад \fP
+Ці команди змінюють «поточне» вікно, що, у Ñвій чаÑ, змінює вікно, до Ñкого
+буде ÑпрÑмовано команди. Ці клавіші працюють циклічним чином, тому ви можете
+діÑтатиÑÑ Ð±ÑƒÐ´ÑŒ\-Ñкого бажаного вікна за допомогою будь\-Ñкої з клавіш.
+
+Якщо назву вікно показано (вами не перемкнуто «l» у Ñтан \*F), коли назва
+«поточного» вікна втрачає акцент/колір, назва буде нагадуваннÑм про те, що
+показ завдань \*F, а багато команд буде обмежено.
+
+.TP 7
+\ \ \ \fBG\fP\ \ :\fIЗмінити назву вікна/групи полів \fP
+Програма попроÑить Ð²Ð°Ñ Ð²Ð²ÐµÑти нову назву, Ñку буде заÑтоÑовано до
+«поточного» вікна. Потреби у видимоÑÑ‚Ñ– назви вікна немає (перемикач «l» може
+не перебувати у Ñтані \*O).
+
+.IP * 3
+Інтерактивні команди, пункти Ñких позначено зірочкою (*), можна
+викориÑтовувати поза режимом альтернативного показу.
+.nf
+ =, A, g доÑтупні завжди
+ a, w працюють так Ñамо із прив'Ñзкою кольорів
+ Ñ– керуваннÑм полÑми
+.fi
+
+.TP 7
+*\ \ \fBg\fP\ \ :\fIВибрати інше вікно/групу полів \fP
+Програма попроÑить Ð²Ð°Ñ Ð²Ð²ÐµÑти чиÑло від 1 до 4, Ñке позначає групу полів,
+Ñка має Ñтати «поточним» вікном.
+
+У повноекранному режимі Ñ†Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° потрібна Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ «поточного» вікна. У
+режимі альтернативного переглÑду це проÑто менш зручна альтернатива командам
+«a» і «w».
+
+.\" ......................................................................
+.SS "5в. ГОРТÐÐÐЯ ВІКÐÐ"
+.\" ----------------------------------------------------------------------
+Типово, вікно завдань Ñ” чаÑтковим переглÑдом загальних даних щодо
+завдань/потоків ÑиÑтеми, де буде показано лише деÑкі з доÑтупних
+полів/Ñтовпчиків. За допомогою цих клавіш Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð²Ð¸ можете переÑувати
+переглÑд вертикально або горизонтально, щоб діÑтатиÑÑ Ð±ÑƒÐ´ÑŒ\-Ñкого бажаного
+Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ Ñтовпчика.
+
+.TP 4
+\fBВгору\fP,\fBPgUp\fP\ \ :\fIГортати Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ \fP
+ПереÑунути переглÑд вгору у напрÑмку першого Ñ€Ñдка завдань, аж доки моменту,
+коли пункт першого Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ показано у верхній позиції «поточного»
+вікна. Клавіша зі Ñтрілкою \fIвгору\fP переÑуває переглÑд на один Ñ€Ñдок, а
+клавіша \fIPgUp\fP гортає на ціле вікно.
+
+.TP 4
+\fBÐазад\fP,\fBPgDn\fP\ \ :\fIÐ“Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½ÑŒ \fP
+ПереÑунути переглÑд вниз у напрÑмку оÑтаннього Ñ€Ñдка завдань, аж доки
+моменту, коли пункт оÑтаннього Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ показано єдиним у верхній
+позиції «поточного» вікна. Клавіша зі Ñтрілкою \fIвниз\fP переÑуває переглÑд на
+один Ñ€Ñдок, а клавіша \fIPgDn\fP гортає на ціле вікно.
+
+.TP 4
+\fBЛіворуч\fP,\fBПраворуч\fP\ \ :\fIÐ“Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ñтовпчиків \fP
+ПереÑунути переглÑд показаних полів горизонтально на один Ñтовпчик за раз.
+
+\*(NT Як нагадуваннÑ, деÑкі полÑ/Ñтовпчики мають не фікÑовану ширину, а
+займають решту ширини екрана, Ñкщо Ñ—Ñ… показано. При гортанні праворуч або
+ліворуч на першому кроці Ñ†Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° може давати не Ñ‚Ñ– результати, на Ñкі ви
+очікували.
+
+Крім того, Ñ” певні правила Ð´Ð»Ñ Ð±ÑƒÐ´ÑŒ\-Ñкого Ð¿Ð¾Ð»Ñ Ð·Ð¼Ñ–Ð½Ð½Ð¾Ñ— ширини, Ñке
+розташовано у оÑтанньому показаному полі. Щойно ви доÑÑгнете оÑтаннього полÑ
+за допомогою Ñтрілки праворуч, Ñ– отже, Ñтане єдиним показаним Ñтовпчиком, ви
+можете продовжити Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ ÑƒÑередині такого полÑ. Щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ,
+див. інтерактивну команду «C» нижче.
+
+.TP 4
+\fBHome\fP\ \ :\fIПерейти на початкову позицію\fP
+Змінити Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±Ð»Ð°ÑÑ‚Ñ– показу до координат до гортаннÑ.
+
+.TP 4
+\fBEnd\fP\ \ :\fIПерейти на кінцеву позицію\fP
+Змінити Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ Ð¾Ð±Ð»Ð°ÑÑ‚Ñ– показу так, щоб у найправішому Ñтовпчику було
+показано дані оÑтаннього придатного до показу полÑ, а нижній Ñ€Ñдок завданнÑ
+відповідав оÑтанньому завданню.
+
+\*(NT З цієї позиції можна гортати \fIвниз\fP і \fIправоруч\fP за допомогою клавіш
+зі Ñтрілками. Це Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ð»Ð¸ÑˆÐ°Ñ”Ñ‚ÑŒÑÑ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¸Ð¼, аж доки в облаÑÑ‚Ñ–
+переглÑду не лишитьÑÑ Ñ”Ð´Ð¸Ð½Ð¾Ð³Ð¾ Ñтовпчика Ñ– єдиного завданнÑ.
+
+.TP 4
+\fBC\fP\ \ :\fIПеремикач показу координат гортаннÑ\fP
+Перемкнути інформаційне повідомленнÑ, Ñке буде показано, Ñкщо Ñ€Ñдок
+Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ðµ викориÑтано іншим чином. Це Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¼Ð°Ñ” одну з двох
+форм. Форма залежить від того, чи було виконано Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ñƒ Ñтовпчику змінної
+ширини.
+
+.nf
+ \fBкоординати гортаннÑ: y = n/n (завданнÑ), x = n/n (полÑ)\fP
+ координати гортаннÑ: y = n/n (завданнÑ), x = n/n (полÑ)\fB + nn\fP
+.fi
+
+Координати буде показано у форматі \fBn\fP/\fBn\fP відноÑно верхнього лівого кута
+«поточного» вікна. Додаткове «\fB+\ nn\fP» відтворюватиме Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñƒ Ñтовпчику
+змінної ширини при гортанні його вміÑту у горизонтальному напрÑмку. Такі
+Ð·Ð¼Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÐ¾Ð²ÑƒÑŽÑ‚ÑŒÑÑ Ñƒ звичайних позиціÑÑ… 8\-Ñимвольної табулÑції при
+переÑуванні за допомогою клавіш зі Ñтрілками праворуч Ñ– ліворуч.
+
+.RS +4
+.TP 4
+\fBy = n/n (завданнÑ) \fP
+Перше \fBn\fP відповідає верхньому видимому завданню, ним керують клавіші
+гортаннÑ. Друге \fBn\fP оновлюєтьÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡Ð½Ð¾ Ñ– відповідає загальній
+кількоÑÑ‚Ñ– завдань.
+
+.TP 4
+\fBx = n/n (полів) \fP
+Перше \fBn\fP відповідає найлівішому показаному Ñтовпчику, ним керують клавіші
+гортаннÑ. Друге \fBn\fP Ñ” загальною кількіÑÑ‚ÑŽ полів, Ñкі може бути показано,
+його Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡Ð°Ñ” інтерактивна команда «\fBf\fP».
+.RS -4
+
+.PP
+Ðаведені вище інтерактивні команди доÑтупні \fBзавжди\fP у повноекранному
+режимі, але \fBніколи\fP не доÑтупні у режимі альтернативного показу, Ñкщо
+показ завдань «поточного» вікна \*F.
+
+\*(NT Якщо активним Ñ” Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ будь\-Ñкій формі, можна очікувати певні
+помилки під Ñ‡Ð°Ñ Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ, оÑкільки не уÑÑ– Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð±ÑƒÐ´ÑƒÑ‚ÑŒ видимими. Це,
+зокрема, оÑобливо помітно при викориÑтанні клавіш зі Ñтрілками вгору/вниз.
+
+.\" ......................................................................
+.SS "5г. ПОШУК У ВІКÐІ"
+.\" ----------------------------------------------------------------------
+Ви можете ÑкориÑтатиÑÑ Ñ†Ð¸Ð¼Ð¸ інтерактивними командами Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ Ñ€Ñдка
+завданнÑ, що міÑтить певне значеннÑ.
+
+.TP 4
+\fBL\fP\ \ :\fILocate\-a\-string\fP
+Програма попроÑить Ð²Ð°Ñ Ð²Ð²ÐµÑти Ñ€Ñдок без Ð²Ñ€Ð°Ñ…ÑƒÐ²Ð°Ð½Ð½Ñ Ñ€ÐµÐ³Ñ–Ñтру Ñимволів длÑ
+пошуку, починаючи з координат поточного вікна. Обмежень на вміÑÑ‚ Ñ€Ñдка
+пошуку не передбачено.
+
+Пошук не обмежено значеннÑми з єдиного Ð¿Ð¾Ð»Ñ Ð°Ð±Ð¾ Ñтовпчика. У Ñ€Ñдку пошуку
+можна викориÑтовувати уÑÑ– значеннÑ, Ñкі показано у Ñ€Ñдку завданнÑ. До Ñ€Ñдка
+пошуку можна включати пробіли, цифри, Ñимволи Ñ– навіть графічні Ñимволи
+переглÑду ліÑу.
+
+ÐатиÑÐºÐ°Ð½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–ÑˆÑ– <Enter> без введених даних призведе до вимиканнÑ
+перемикача «&», аж доки не буде введено нового Ñ€Ñдка Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ.
+
+.TP 4
+\fB&\fP\ \ :\fILocate\-next\fP
+Якщо було вказано Ñ€Ñдок пошуку, \*(We Ñпробує знайти наÑтупний відповідник
+критерію пошуку.
+
+.PP
+Якщо буде знайдено відповідник, поточне вікно буде переміщено вертикально
+так, щоб Ñ€Ñдок завданнÑ, Ñкий міÑтить знайдений відповідник, Ñтав першим. У
+повідомленні координат Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ðµ бути показано Ð¿Ñ–Ð´Ñ‚Ð²ÐµÑ€Ð´Ð¶ÐµÐ½Ð½Ñ Ñ‚Ð°ÐºÐ¾Ð³Ð¾
+вертикального Ð¿ÐµÑ€ÐµÐ¼Ñ–Ñ‰ÐµÐ½Ð½Ñ (див. інтерактивну команду «C»). Втім,
+горизонтальна Ð¿Ð¾Ð·Ð¸Ñ†Ñ–Ñ Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ ніколи не змінюєтьÑÑ.
+
+Ðа доÑтупніÑÑ‚ÑŒ Ñ€Ñдка\-відповідника будуть впливати вказані нижче фактори.
+.RS +3
+.TP 3
+а. Які Ð¿Ð¾Ð»Ñ Ð¼Ð¾Ð¶Ðµ бути показано з загального доÑтупного набору,
+Див. 3б. КЕРУВÐÐÐЯ ПОЛЯМИ.
+.TP 3
+б. Ð“Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð²Ñ–ÐºÐ½Ð° у вертикальному Ñ–/або горизонтальному напрÑмку,
+Див. розділ 5в. ГОРТÐÐÐЯ ВІКÐÐ.
+.TP 3
+в. Стан перемикача команда/командний Ñ€Ñдок,
+Див. інтерактивну команду «c».
+.TP 3
+г. СтабільніÑÑ‚ÑŒ вибраного Ð´Ð»Ñ ÑƒÐ¿Ð¾Ñ€ÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñтовпчика,
+наприклад, PID працює добре, а %CPU — погано.
+.RS -3
+
+.PP
+Якщо пошуки завершатьÑÑ Ð½ÐµÐ²Ð´Ð°Ñ‡ÐµÑŽ, Ð²Ñ–Ð´Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÐ¾Ð²Ð¾Ñ— позиції (без
+гортаннÑ) у «поточному» вікні, горизонтальне гортаннÑ, показ командних
+Ñ€Ñдків або вибір Ñтабільнішого Ð¿Ð¾Ð»Ñ Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ðµ зробити пошук «&»
+уÑпішним.
+
+Ðаведені вище інтерактивні команди доÑтупні \fBзавжди\fP у повноекранному
+режимі, але \fBніколи\fP не доÑтупні у режимі альтернативного показу, Ñкщо
+показ завдань «поточного» вікна \*F.
+
+.\" ......................................................................
+.SS "5д. ФІЛЬТРУВÐÐÐЯ У ВІКÐІ"
+.\" ----------------------------------------------------------------------
+Ви можете ÑкориÑтатиÑÑ Ñ†Ñ–Ñ”ÑŽ можливіÑÑ‚ÑŽ іншого фільтра, щоб вÑтановити
+критерій вибору, Ñкий визначить, Ñкі Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ показано у «поточному»
+вікні. Такі фільтри можна зробити Ñталими, Ñкщо зберегти Ñ—Ñ… до файла rcfile
+за допомогою інтерактивної команди «W».
+
+Ð’ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€Ð° мінімально потребує: 1) назви полÑ; 2) оператора та 3)
+Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ. Це найÑкладніші вимоги щодо введених кориÑтувачем даних у
+\*(We. Тому, Ñкщо ви зробили помилку, вам допоможе пам'ÑÑ‚ÑŒ
+команд. Пам'Ñтайте про клавіші зі Ñтрілками вгору/вниз або їхні альтернативи
+при запитах на Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ….
+
+\fBОÑнови фільтруваннÑ\fP
+.RS +3
+.TP 3
+1. у назвах полів Ñлід враховувати регіÑÑ‚Ñ€ Ñ– пиÑати Ñ—Ñ… так, Ñк у заголовку
+.TP 3
+2. Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ð±Ð¾Ñ€Ñƒ не обов'Ñзково мають повніÑÑ‚ÑŽ вміщати показане поле
+.TP 3
+3. у виборі або не враховуєтьÑÑ Ñ€ÐµÐ³Ñ–ÑÑ‚Ñ€ Ñимволів, або враховуєтьÑÑ
+.TP 3
+4. типовим Ñ” включеннÑ, Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð½Ð° початку «!» означає виключеннÑ
+.TP 3
+5. до вікна завдань може бути заÑтоÑовано декілька критеріїв вибору
+.TP 3
+6. критерії Ð²ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ñ– Ð²Ð¸ÐºÐ»ÑŽÑ‡ÐµÐ½Ð½Ñ Ð¼Ð¾Ð¶Ðµ бути викориÑтано одночаÑно
+.TP 3
+7. можна довільним чином поєднувати 1 фільтр рівноÑÑ‚Ñ– Ñ– 2 фільтри відношеннÑ
+.TP 3
+8. Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ вікна завдань передбачено окремі унікальні фільтри
+
+.PP
+Якщо поле не увімкнено або у поточний момент не показано, ваші критерії
+вибору не впливатимуть на показ. Пізніше, Ñкщо фільтроване поле Ñтане
+видимим, критерії вибору буде заÑтоÑовано.
+.RE
+
+\fBРезюме щодо клавіатури\fP
+.TP 6
+\ \ \fBO\fP\ \ :\fIІнший фільтр\fP (верхній регіÑÑ‚Ñ€)
+Програма попроÑить Ð²Ð°Ñ Ð²Ñтановити фільтр \fBіз врахуваннÑм регіÑтру Ñимволів\fP.
+
+.TP 6
+\ \ \fBo\fP\ \ :\fIІнший фільтр\fP (нижній регіÑÑ‚Ñ€)
+Програма попроÑить Ð²Ð°Ñ Ð²Ñтановити фільтр, у Ñкому при вÑтановленні
+відповідноÑÑ‚Ñ– \fBрегіÑÑ‚Ñ€ Ñимволів буде проігноровано\fP.
+
+.TP 6
+\ \fB^O\fP\ \ :\fIПоказати активні фільтри\fP (клавіша Ctrl + «o»)
+За допомогою цієї команди можна згадати, Ñкі фільтри Ñ” активними у
+«поточному» вікні. Резюме буде показано у Ñ€Ñдку Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð°Ð¶ до
+натиÑÐºÐ°Ð½Ð½Ñ ÐºÐ»Ð°Ð²Ñ–ÑˆÑ– <Enter>.
+
+.TP 6
+\ \ \fB=\fP\ \ :\fIСкинути фільтруваннÑ\fP у поточному вікні
+Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° знімає уÑÑ– ваші критерії вибору у «поточному» вікні. Також має
+додатковий вплив на показу, тому, будь лаÑка, ознайомтеÑÑ Ð· розділом
+4а. ЗÐГÐЛЬÐІ КОМÐÐДИ.
+
+.TP 6
+\ \ \fB+\fP\ \ :\fIСкинути фільтруваннÑ\fP в уÑÑ–Ñ… вікнах
+Ð¦Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° вилучає уÑÑ– критерії вибору в уÑÑ–Ñ… вікнах, Ñкщо ви працюєте у
+режимі альтернативного показу. Так Ñамо, Ñк із інтерактивною командою «=»,
+Ñ—Ñ— заÑтоÑÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ‚ÑŒ до додаткових наÑлідків, тому варто ознайомитиÑÑ
+із розділом 5б. КОМÐÐДИ ДЛЯ ВІКОÐ.
+
+.PP
+\fBВимоги до вхідних даних\fP
+.RS +3
+.P
+У відповідь на запит щодо критерії вибору вам Ñлід вказати дані в одній з
+двох форм. Передбачено 3 обов'Ñзкових елементів даних Ñ– четвертий
+додатковий. У наведених прикладах пробіли викориÑтано Ð´Ð»Ñ Ð·Ñ€ÑƒÑ‡Ð½Ð¾ÑÑ‚Ñ– читаннÑ,
+але, загалом, Ñ—Ñ… можна Ñ– не викориÑтовувати.
+.nf
+ #1 \fB#2\fP #3 ( обов'Ñзкові )
+ Ðазва\-Ð¿Ð¾Ð»Ñ ? значеннÑ\-длÑ\-включеннÑ
+ \fB!\fP Ðазва\-Ð¿Ð¾Ð»Ñ ? значеннÑ\-длÑ\-\fBвиключеннÑ\fP
+ #4 ( додаткове )
+.fi
+
+Пункти #1, #3 Ñ– #4 неважко зрозуміти Ñ– без поÑÑнень. Пункт \fB#2\fP Ñ” одразу Ñ–
+обов'Ñзковим \fIроздільником\fP, Ñ– \fIоператором\fP, Ñким Ñ” одне зі значень:
+рівніÑÑ‚ÑŒ («=») або Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ («<» або «>»).
+
+Оператор рівноÑÑ‚Ñ– «=» потребує лише чаÑткової відповідноÑÑ‚Ñ– Ñ– це може
+зменшити вимоги щодо вхідних даних Ð´Ð»Ñ Â«Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ». Ð”Ð»Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¾Ñ€Ñ–Ð² відношеннÑ
+«>» або «<» буде викориÑтано порівнÑÐ½Ð½Ñ Ñ€Ñдків, навіть Ð´Ð»Ñ Ñ‡Ð¸Ñлових
+полів. Їх розроблено Ð´Ð»Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ з типовим \fIвирівнюваннÑм\fP полів Ñ–
+однорідними даними. Якщо деÑкі чиÑлові дані у певному полі \fIмаÑштабовано\fP,
+а інші ні, дані вже не будуть однорідними.
+
+Якщо вами вÑтановлено фільтр Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ñ– ви \fBзмінили\fP типове
+\fIвирівнюваннÑ\fP чиÑлових або Ñимвольних даних, цей фільтр, ймовірно, не
+Ñпрацює. Якщо фільтр Ð²Ñ–Ð´Ð½Ð¾ÑˆÐµÐ½Ð½Ñ Ð·Ð°ÑтоÑовано до Ð¿Ð¾Ð»Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–, Ñ– вами \fBне змінено\fP \fIмаÑштабуваннÑ\fP, результати можуть бути помилковими. Таке
+траплÑєтьÑÑ, наприклад, оÑкільки «100.0m» (МіБ) програма вважає більшим
+значеннÑм за «1.000g» (ГіБ) при порівнÑнні Ñ€Ñдків.
+
+Якщо фільтровані результати виглÑдають підозріливо, проÑто змініть
+Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð±Ð°Ð¶Ð°Ð½Ð¾Ñ— мети. Щоб дізнатиÑÑ
+більше про вирівнюваннÑ, ознайомтеÑÑ Ñ–Ð· опиÑом інтерактивних команд «j», «J»
+і «e».
+.RE
+
+\fBПотенційні проблеми\fP
+.RS +3
+.P
+Ці фільтри Ð´Ð»Ñ \fBGROUP\fP можуть давати Ñ‚Ñ– Ñамі результати або другий фільтр
+не покаже нічого, проÑто порожнє вікно завдань.
+.nf
+ GROUP=root ( Ñ‚Ñ– Ñамі результати, лише )
+ GROUP=ROOT ( Ñкщо викликано малим «o» )
+.fi
+
+Обидва цих фільтри за \fBRES\fP можуть дати різні і/або помилкові результати,
+залежно від поточного коефіцієнта маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ–. Втім, обидва
+фільтри можуть дати абÑолютно однакові результати.
+.nf
+ RES>9999 ( Ñ‚Ñ– Ñамі результати, лише )
+ !RES<10000 ( Ñкщо пам'ÑÑ‚ÑŒ маÑштабовано за «КіБ» )
+.fi
+
+Цей фільтр за \fBnMin\fP ілюÑтрує проблему, Ñка Ñ” притаманною маÑштабованим
+полÑм. У цьому полі, зокрема, може бути показано не більше 4 цифр. При
+перевищенні кількоÑÑ‚Ñ– Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±ÑƒÐ´Ðµ автоматично маÑштабовано до КіБ або
+більшої одиниці. І, Ñкщо Ñ–Ñнують значеннÑ, Ñкі Ñ” більшими 9999, Ñ—Ñ… буде
+показано Ñк 2,6m, 197k тощо.
+.nf
+ nMin>9999 ( завжди порожнє \*(TW )
+.fi
+.RE
+
+\fBПотенційні рішеннÑ\fP
+.RS +3
+.P
+Ці приклад ілюÑтрують, Ñк інше Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° творчо заÑтоÑувати до
+Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¼Ð°Ð¹Ð¶Ðµ будь\-Ñких бажаних результатів. Одинарні лапки іноді
+викориÑтовують Ð´Ð»Ñ Ð²Ñ–Ð´Ð¾ÐºÑ€ÐµÐ¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ð±Ñ–Ð»Ñ–Ð², Ñкі Ñ” чаÑтиною фільтра, або
+точного предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñ‚Ñƒ щодо Ñтану (^O). Ðле Ñкщо ви викориÑтаєте Ñ—Ñ… із
+значеннÑми в умовах в реальних прикладах, нічого не буде знайдено.
+
+Якщо припуÑтити, що показано поле \fBnTH\fP, перший фільтр призведе до показу
+лише процеÑів із декількома потоками обробки. Також приклад нагадує нам, що
+чаÑтиною кожного показаного Ð¿Ð¾Ð»Ñ Ñ” кінцевий пробіл. Другий фільтр дає
+абÑолютно такий Ñамий результат, але він Ñ” коротшим.
+.nf
+ !nTH=` 1 ' ( ' лише Ð´Ð»Ñ Ð·Ñ€ÑƒÑ‡Ð½Ð¾ÑÑ‚Ñ– Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ )
+ nTH>1 ( те Ñаме, але коротше )
+.fi
+
+Якщо активним Ñ” режим переглÑду ліÑу Ñ– показано Ñтовпчик \fBCOMMAND\fP,
+викориÑÑ‚Ð°Ð½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ фільтра призведе до Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð´Ð¾Ñ‡Ñ–Ñ€Ð½Ñ–Ñ… процеÑів так, що
+буде показано лише 3 рівні.
+.nf
+ !COMMAND=` `\- ' ( ' лише Ð´Ð»Ñ Ð·Ñ€ÑƒÑ‡Ð½Ð¾ÑÑ‚Ñ– Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ )
+.fi
+
+ОÑтанні два фільтри показано Ñк відповіді на натиÑÐºÐ°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð±Ñ–Ð½Ð°Ñ†Ñ–Ñ— запиту
+щодо Ñтану (^O). У реальноÑÑ‚Ñ– Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ з них потрібні окремі вхідні
+дані. У прикладі Ð´Ð»Ñ \fBPR\fP показано два конкурентних фільтри, потрібні длÑ
+показу завдань із пріоритетноÑÑ‚Ñми 20 або більше, оÑкільки значеннÑ
+пріоритетноÑÑ‚Ñ– можуть бути Ñ– від'ємними. Далі, викориÑтовуючи кінцеві
+пробіли, набір фільтрів \fBnMin\fP надає змогу отримати результат у випадку з
+помилкою «9999», Ñку обговорено вище.
+.nf
+ `PR>20' + `!PR=\-' ( 2 Ð´Ð»Ñ Ð¿Ñ€Ð°Ð²Ð¸Ð»ÑŒÐ½Ð¾Ð³Ð¾ результату )
+ `!nMin=0 ' + `!nMin=1 ' + `!nMin=2 ' + `!nMin=3 ' ...
+.fi
+.RS -3
+
+.\" ----------------------------------------------------------------------
+.SH "6. ФÐЙЛИ"
+.\" ----------------------------------------------------------------------
+.SS "6а. ФÐЙЛ ОСОБИСТИХ ÐÐЛÐШТУВÐÐЬ"
+.\" ----------------------------------------------------------------------
+Цей файл ÑтворюєтьÑÑ Ñ– оновлюєтьÑÑ Ñ–Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾ÑŽ командою «W».
+
+ЗаÑтарілу верÑÑ–ÑŽ буде запиÑано Ñк `$HOME/.ваша\-назва\-4\-\*(We' + `rc' з
+початковою крапкою у назві.
+
+ÐовоÑтворений файл налаштувань буде запиÑано Ñк procps/ваша\-назва\-4\-\*(We' +
+«rc» без початкового пробілу. Каталог procps є підкаталогом або у каталозі,
+Ñкий визначаєтьÑÑ Ð·Ð¼Ñ–Ð½Ð½Ð¾ÑŽ $XDG_CONFIG_HOME, Ñкщо Ñ—Ñ— значеннÑм Ñ” абÑолютний
+шлÑÑ…, або у каталозі $HOME/.config.
+
+Хоча файл Ñ– не призначено Ð´Ð»Ñ Ñ€ÐµÐ´Ð°Ð³ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ñ€ÑƒÑ‡Ð½Ñƒ, оÑÑŒ його загальне
+компонуваннÑ:
+.nf
+ загальне # Ñ€Ñдок 1: назва/альтернатива назви програми
+ " # Ñ€Ñдок 2: id,altscr,irixps,delay,curwin
+ окремі # Ñ€Ñдок a: winname,fieldscur
+ вікна # Ñ€Ñдок b: winflags,sortindx,maxtasks тощо
+ " # Ñ€Ñдок c: summclr,msgsclr,headclr,taskclr
+ загальне # Ñ€Ñдок 15: різні додаткові параметри
+ " # у решті Ñ€Ñдків опиÑують необов'Ñзкові активні
+ " # «інші фільтри», Ñкі опиÑано у розділі 5д вище, а
+ " # також запиÑи «inspect», Ñкі опиÑано у розділі 6б нижче
+.fi
+
+Якщо коректний абÑолютний шлÑÑ… до файла rc не вдаÑÑ‚ÑŒÑÑ Ð²Ñтановити,
+налаштуваннÑ, Ñкі виконано у запущеній програмі \*(We, не можна буде
+зберегти.
+
+.\" ......................................................................
+.SS "6б. ДОДÐÐ’ÐÐÐЯ ЗÐПИСІВ ДЛЯ ІÐСПЕКТУВÐÐÐЯ"
+.\" ----------------------------------------------------------------------
+Щоб ÑкориÑтатиÑÑ Ñ–Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾ÑŽ командою «Y», вам Ñлід додати запиÑи
+\fBнаприкінці\fP оÑобиÑтого файла налаштувань \*(We. Такі запиÑи проÑто
+вказують файл, Ñкий Ñлід прочтати або команду/канал даних, Ñкі Ñлід
+виконати, Ñ– результати Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñких Ñлід показати в окремому придатному до
+Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ñ– пошуку вікні.
+
+Якщо вам не відоме міÑце Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ назва вашого файла rc \*(We,
+ÑкориÑтайтеÑÑ Ñ–Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾ÑŽ командою «W», щоб перезапиÑати його Ñ–
+запам'Ñтайте його параметри.
+
+ЗапиÑи інÑÐ¿ÐµÐºÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ð¾Ð¶Ð½Ð° додати переÑпрÑмовуваннÑм echo або редагуваннÑм
+файла налаштувань. ПереÑпрÑÐ¼Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ echo небезпечне через можливіÑÑ‚ÑŒ
+перезапиÑу файла rc, Ñкщо буде викориÑтано заміну (>), а не допиÑуваннÑ
+(>>) до цього файла. Ð Ñкщо ви кориÑтуватиметеÑÑ Ñ€ÐµÐ´Ð°ÐºÑ‚Ð¾Ñ€Ð¾Ð¼, Ñлід
+Ñлідкувати за тим, щоб не пошкодити наÑвні Ñ€Ñдки, деÑкі з Ñких будуть
+міÑтити непридатні до друку або незвичайні Ñимволи, залежно від верÑÑ–Ñ—
+\*(We, у Ñкій було збережено файл налаштувань.
+
+ЗапиÑи інÑпектуваннÑ, Ñкі починаютьÑÑ Ð· Ñимволу «#» буде проігноровано,
+незалежно від вміÑту. Інші запиÑи мають ÑкладатиÑÑ Ð· вказаних нижче 3
+елементів, кожен з Ñких \fIмає\fP бути відокремлено від інших Ñимволом
+табулÑції (отже, міÑтити загалом 2 «\et»):
+
+.nf
+ .type: буквально «file» або «pipe»
+ .name: вибір, Ñкий буде показано на екрані інÑпектуваннÑ
+ .fmts: Ñ€Ñдок шлÑху або команди
+.fi
+
+Два типи запиÑів інÑÐ¿ÐµÐºÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ \fIне\fP Ñ” взаємозамінними. ДоÑтуп до тих, Ñкі
+позначено Ñк «\fBfile\fP», буде здійÑнюватиÑÑ Ð·Ð° допомогою fopen, вони мають
+поÑилатиÑÑ Ð½Ð° єдиний файл в елементі «.fmts». ЗапиÑи, Ñкі задають «\fBpipe\fP»
+підлÑгатимуть дії popen, їхній елемент «.fmts» може міÑтити багато команд у
+конвеєрі, жодна з цих команд не повинна бути інтерактивною.
+
+Якщо файл або конвеєр, предÑтавлений у вашому «.fmts», має Ñправу зі
+Ñпецифічними вхідними даними PID або приймає дані, Ñкщо запитано, у Ñ€Ñдку
+Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð°ÐºÐ¾Ð¶ має міÑтитиÑÑ ÑÐ¿ÐµÑ†Ð¸Ñ„Ñ–ÐºÐ°Ñ†Ñ–Ñ Â«\fB%d\fP», Ñк у наших
+демонÑтраційних прикладах.
+
+.nf
+ .fmts= /proc/\fI%d\fP/numa_maps
+ .fmts= lsof \-P \-p\fI %d\fP
+.fi
+
+Лише Ð´Ð»Ñ Ð·Ð°Ð¿Ð¸Ñів типу «\fBpipe\fP», вам, ймовірно, також Ñлід переÑпрÑмувати
+stderr до stdout Ð´Ð»Ñ Ð¿Ð¾ÐºÑ€Ð°Ñ‰ÐµÐ½Ð½Ñ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñ–Ð². Таким чином, Ñ€Ñдок форматуваннÑ
+буде таким:
+
+.nf
+ .fmts= pmap \-x %d\fI 2>&1\fP
+.fi
+
+Тут наведено приклади обох типів запиÑів інÑÐ¿ÐµÐºÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ñƒ такому виглÑді, у
+Ñкому вони можуть з'ÑвлÑтиÑÑ Ñƒ файлі rc. Перший Ð·Ð°Ð¿Ð¸Ñ Ð±ÑƒÐ´Ðµ проігноровано
+через початковий Ñимвол «#». Ð”Ð»Ñ Ð·Ñ€ÑƒÑ‡Ð½Ð¾ÑÑ‚Ñ– Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð´Ð¾ пÑевдозамінників
+табулÑції (^I) додано додаткові пробіли з обох боків, але Ñправжні табулÑції
+таким чином не виокремлено.
+.nf
+
+ # pipe ^I Sockets ^I lsof \-n \-P \-i 2>&1
+ pipe ^I Open Files ^I lsof \-P \-p %d 2>&1
+ file ^I NUMA Info ^I /proc/%d/numa_maps
+ pipe ^I Log ^I tail \-n100 /var/log/syslog | sort \-Mr
+.fi
+
+Окрім коментованого запиÑу вище, у наÑтупних прикладах показано, що можна
+переÑпрÑмувати з echo Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ð¾Ð´Ñ–Ð±Ð½Ð¸Ñ… результатів, у припущенні, що
+файлом rc Ñ” файл «.toprc». Втім, через вбудовані Ñимволи табулÑції перед
+кожним з цих Ñ€Ñдків Ñлід допиÑувати «\fB/bin/echo \-e\fP», а не проÑто «echo»,
+щоб уможливити обробку Ñимволів зворотної похилої риÑки, незалежно від
+викориÑтаної вами командної оболонки.
+
+.nf
+ "pipe\etOpen Files\etlsof \-P \-p %d 2>&1" >> ~/.toprc
+ "file\etNUMA Info\et/proc/%d/numa_maps" >> ~/.toprc
+ "pipe\etLog\ettail \-n200 /var/log/syslog | sort \-Mr" >> ~/.toprc
+.fi
+
+Якщо будь\-Ñкий зі Ñтворених вами запиÑів інÑÐ¿ÐµÐºÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð²Ð¾Ð´Ð¸Ñ‚Ð¸Ð¼Ðµ дані із
+непридатними до друку Ñимволами, Ñ—Ñ… буде показано або у позначеннÑÑ…,
+подібних до ^C, або у шіÑтнадцÑтковій формі, подібній до <FF>,
+залежно від значеннÑ. Це ÑтоÑуєтьÑÑ Ñимволів табулÑції, Ñкі буде показано Ñк
+«^I». Якщо вам потрібне краще предÑтавленнÑ, уÑÑ– вбудовані табулÑції має
+бути розгорнуто. У наведеному нижче прикладі програма приймає те, що могло б
+бути запиÑом «file», але викориÑтовує заміÑÑ‚ÑŒ нього «pipe» Ð´Ð»Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ
+вбудованих табулÑцій.
+
+.nf
+ # наÑтупний Ñ€Ñдок мав би міÑтити «\et» ...
+ # файл ^I <ваша_назва> ^I /proc/%d/status
+ # але це вилучить вбудований `\et' ...
+ pipe ^I <ваша_назва> ^I cat /proc/%d/status | expand \-
+.fi
+
+\*(NT Ð”Ð»Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð´ÐµÑких програм може бути потрібним \fISIGINT\fP. Тому,
+Ñкщо вÑтановлено «\fBpipe\fP», подібний до наведеного нижче, доведетьÑÑ
+ÑкориÑтатиÑÑ Ctrl\-C Ð´Ð»Ñ Ð¹Ð¾Ð³Ð¾ перериваннÑ, щоб переглÑнути результати. Це
+єдиний випадок, коли «^C» не завершить також і роботу \*(We.
+
+.nf
+ pipe ^I Trace ^I /usr/bin/strace \-p %d 2>&1
+.fi
+
+Ðарешті, хоча ми опиÑували запиÑи типу «\fBpipe\fP» у термінах конвеєрів Ñ–
+команд, нічого не заважає вам включати Ñ– \fIÑкрипти командної оболонки\fP. Можливо, навіть новоÑтворені Ñкрипти, Ñкі Ñпеціально розроблено
+Ð´Ð»Ñ Ñ–Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð¾Ñ— команди «Y».
+
+Ðаприклад, зі зроÑтаннÑм кількоÑÑ‚Ñ– запиÑів інÑÐ¿ÐµÐºÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð· чаÑом, Ñ€Ñдок
+«Параметри:» буде обрізано при перевищенні ширини екрана. Це не вплине на
+працездатніÑÑ‚ÑŒ запиÑів, але зробить деÑкі з варіантів вибору
+невидимими. Втім, Ñкщо деÑкі варіанти обрізано, а ви хочете переглÑнути уÑÑ–,
+Ñ–Ñнує проÑте рішеннÑ, підказку щодо Ñкого можна бачити нижче.
+
+.nf
+ ІнÑÐ¿ÐµÐºÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ ÐŸÑ€Ð¸Ð·ÑƒÐ¿Ð¸Ð½ÐºÐ°: pid ...
+ Кор: ліворуч/праворуч, потім <Enter> ...
+ Пункти: help 1 2 3 4 5 6 7 8 9 10 11 ...
+.fi
+
+ЗапиÑи у файлі rc \*(We повинні мати номери у елементах «.name», а запиÑ
+«help» має ідентифікувати Ñкрипт оболонки, Ñкий ви напиÑали Ð´Ð»Ñ Ð¿Ð¾ÑÑненнÑ
+того, що Ñаме позначають ці нумеровані варіанти вибору. У такий ÑпоÑіб можна
+зробити видимими набагато більше варіантів вибору.
+
+.\" ......................................................................
+.SS "6в. ФÐЙЛ ЗÐГÐЛЬÐОСИСТЕМÐИХ ÐÐЛÐШТУВÐÐЬ"
+.\" ----------------------------------------------------------------------
+Цей файл налаштувань міÑтить типові Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð»Ñ ÐºÐ¾Ñ€Ð¸Ñтувачів, Ñкими не було
+збережено влаÑний файл налаштувань. Формат точно такий Ñамий, Ñк в оÑобиÑтих
+файлів налаштувань, а також може включати запиÑи «inspect», Ñкі опиÑано
+вище.
+
+Процедура його ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñта.
+
+1. Ðалаштуйте \*(We відповідним чином Ð´Ð»Ñ Ð²Ñтановленої у Ð²Ð°Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¸ Ñ–
+збережіть Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° допомогою інтерактивної команди «W».
+
+2. Додайте Ñ– перевірте роботу будь\-Ñких бажаних запиÑів «inspect».
+
+3. Скопіюйте файл налаштувань до каталогу \fI/etc/\fP, ÑкориÑтавшиÑÑŒ Ð´Ð»Ñ Ð½ÑŒÐ¾Ð³Ð¾
+назвою `\fBtopdefaultrc\fP'.
+
+.\" ......................................................................
+.SS "6г. ФÐЙЛ ЗÐГÐЛЬÐОСИСТЕМÐИХ ОБМЕЖЕÐЬ"
+.\" ----------------------------------------------------------------------
+ÐаÑвніÑÑ‚ÑŒ цього файла вплине на те, Ñку верÑÑ–ÑŽ екрана довідки буде показано
+звичайному кориÑтувачу.
+
+Що важливіше, він обмежить перелік завдань, Ñкі зможуть виконувати звичайні
+кориÑтувачі, коли запущено \*(We. КориÑтувачі не зможуть віддавати наведені
+нижче команди.
+.nf
+ k припинити Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ
+ r змінити пріоритетніÑÑ‚ÑŒ (nice) завданнÑ
+ d або s змінити інтервал затримки/приÑиплÑннÑ
+.fi
+
+Цей файл налаштувань не буде Ñтворено \*(We. ЗаміÑÑ‚ÑŒ цього, його Ñтворюють
+вручну і зберігають у каталозі \fI/etc/\fP із назвою «\fBtoprc\fP».
+
+У ньому має бути точно два Ñ€Ñдки, Ñк це показано у прикладі:
+.nf
+ s # Ñ€Ñдок 1: перемикач захищеного режиму
+ 5.0 # Ñ€Ñдок 2: інтервал затримки у Ñекундах
+.fi
+
+.\" ----------------------------------------------------------------------
+.SH "7. ЗМІÐÐІ СЕРЕДОВИЩÐ"
+.\" ----------------------------------------------------------------------
+Ð’Ñтановлене Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ” неÑуттєвим, доÑтатнього Ñамого факту його
+вÑтановленнÑ.
+
+.IP LIBPROC_HIDE_KERNEL
+Запобігає показу будь\-Ñких потоків обробки Ñдра та виключає такі процеÑи з
+обліку завдань/потоків в облаÑÑ‚Ñ– резюме.
+
+.\" ----------------------------------------------------------------------
+.SH "8. ЗРÐЗКИ ДУРÐУВÐТИХ ТРЮКІВ"
+.\" ----------------------------------------------------------------------
+Багато з цих трюків найкраще працюють, Ñкщо ви підвищите пріоритетніÑÑ‚ÑŒ
+Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ \*(We. Тому заплануйте запуÑк програми із значеннÑм
+пріоритетноÑÑ‚Ñ– (nice) \-10, Ñкщо ви маєте відповідні права доÑтупу.
+
+.\" ......................................................................
+.SS "7а. ÐœÐ°Ð³Ñ–Ñ Ñдра"
+.\" ----------------------------------------------------------------------
+.\" sorry, just can't help it -- don't ya love the sound of this?
+.\" ( apparently AM static was a potential concern )
+Ð”Ð»Ñ Ñ†Ð¸Ñ… химерних трюків потрібен повноекранний режим.
+
+.IP \(bu 3
+Ð†Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ ÐºÐ¾Ñ€Ð¸Ñтувача, у запитах Ñ– довідці, навмиÑне припуÑкає, що інтервал
+затримки обмежено деÑÑтими чаÑтками Ñекунди. Втім, ви можете вÑтановити
+будь\-Ñку бажану затримку. Якщо ви хочете бачити уÑÑ– можливоÑÑ‚Ñ– Linux,
+Ñпробуйте затримку у 0,09 Ñекунд або меншу.
+
+Ð”Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ екÑперименту відкрийте у x\-window xterm Ñ– макÑимізуйте вікно
+програми. Далі, зробіть таке:
+.nf
+ . вÑтановіть підвищений пріоритет Ñ– малу затримку:
+ nice \-n \-10 \*(We \-d.09
+ . вимкніть підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ñтовпчика упорÑдковуваннÑ
+ так, щоб мінімізувати довжину шлÑху
+ . увімкніть зворотне підÑÐ²Ñ–Ñ‡ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ð°ÐºÑ†ÐµÐ½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ
+ . Ñпробуйте різні Ñтовпчики упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ (добрий
+ варіант TIME/MEM) і звичайне або обернене
+ упорÑÐ´ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб бачити більшіÑÑ‚ÑŒ
+ активних процеÑів
+.fi
+
+Ви побачите дуже зайнÑтий Linux, Ñкий робить те, що завжди Ð´Ð»Ñ Ð²Ð°Ñ, але без
+програми, Ñка б це ілюÑтрувала.
+
+.IP \(bu 3
+У xterm з викориÑтаннÑм чорно\-білих кольорів на екрані прив'Ñзки кольорів
+\*(We вÑтановіть чорний колір завдань Ñ– переконайтеÑÑ, що Ð´Ð»Ñ Ð¿Ñ–Ð´ÑвічуваннÑ
+вÑтановлено напівжирний шрифт, а не обернений. Далі, вÑтановіть інтервал
+затримки у значеннÑ, Ñке приблизно дорівнює 0,3 Ñекунди.
+
+ПіÑÐ»Ñ Ñ‚Ð¾Ð³Ð¾, Ñк Ñтане видимою більшіÑÑ‚ÑŒ активних процеÑів, ви побачите
+примарні образи лише поточних робочих завдань.
+
+.IP \(bu 3
+Вилучіть наÑвний файл rc або Ñтворіть нове Ñимволічне поÑиланнÑ. ЗапуÑÑ‚Ñ–Ñ‚ÑŒ
+цю нову верÑÑ–ÑŽ, потім натиÑніть клавішу «T» (Ñекретна клавіша,
+див. 4в. КОМÐÐДИ ОБЛÐСТІ ЗÐВДÐÐЬ, УПОРЯДКОВУВÐÐÐЯ), потім клавіші «W» Ñ–
+«q». Ðарешті, перезапуÑÑ‚Ñ–Ñ‚ÑŒ програму з викориÑтаннÑм параметра \-d0 (нульова
+затримка).
+
+Ваш диÑплей буде оновлюватиÑÑ ÑƒÑ‚Ñ€Ð¸Ñ‡Ñ– швидше, ніж до цього у \*(We, — 300%
+Ð¿Ñ–Ð´Ð²Ð¸Ñ‰ÐµÐ½Ð½Ñ ÑˆÐ²Ð¸Ð´ÐºÐ¾ÑÑ‚Ñ–. ОÑкільки \*(We здираєтьÑÑ Ð´Ñ€Ð°Ð±Ð¸Ð½Ð¾ÑŽ TIME, будьте
+терплÑчими, оÑкільки важко вгадати, чи зможе \*(We наздогнати \*(We.
+
+.\" ......................................................................
+.SS "7б. Вікна\-Ñтрибунці"
+.\" ----------------------------------------------------------------------
+Ð”Ð»Ñ Ñ†Ð¸Ñ… химерних трюків потрібен режим альтернативного показу.
+
+.IP \(bu 3
+Із 3 або 4 видимими показами завдань виберіть будь\-Ñке вікно, окрім
+оÑтаннього Ñ– вимкніть бездіÑльні процеÑи за допомогою команди\-перемикача
+«i». Залежно від того, де вами заÑтоÑовано «i», іноді підÑтрибуватимуть
+декілька показів завдань, а іноді, вÑе нагадуватиме акордеон, оÑкільки \*(We
+намагатиметьÑÑ Ñкнайкраще викориÑтати проÑÑ‚Ñ–Ñ€ на екрані.
+
+.IP \(bu 3
+Ð’Ñтановіть Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ з вікон різні Ñ€Ñдки резюме: один без пам'ÑÑ‚Ñ– («m»);
+інший без Ñтанів («t»); можливо, один взагалі без нічого, проÑто Ñ€Ñдок
+повідомленнÑ. Далі, натиÑніть Ñ– утримуйте «a» або «w», Ñ– ÑпоÑтерігайте за
+варіацією у підÑтрибуванні вікон \*(Em вікна\-Ñтрибунці.
+
+.IP \(bu 3
+Зробіть видимими уÑÑ– 4 вікна, Ñ– Ð´Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾, по черзі, вимкніть бездіÑльні
+процеÑи за допомогою команди\-перемикача «i». Ви проÑто увійшли до зони
+«екÑтремальне підÑтрибуваннÑ».
+
+.\" ......................................................................
+.SS "7в. Вікно Великого Птаха"
+.\" ----------------------------------------------------------------------
+Ð”Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ химерного трюку також потрібен режим альтернативного показу.
+
+.IP \(bu 3
+Зробіть видимими уÑÑ– 4 вікна Ñ– переконайтеÑÑ, що «поточним» вікном Ñ”
+1:Def. Далі, збільшуйте розмір вікна за допомогою інтерактивної команди «n»,
+аж доки уÑÑ– інші покази завдань буде «виштовхнуто з гнізда».
+
+Коли Ñ—Ñ… буде переміщено, перемкнітьÑÑ Ð¼Ñ–Ð¶ уÑіма видимими/невидимими вікнами
+за допомогою команди\-перемикача «_». Потім обміркуйте це:
+.br
+ \*(We видумує результати чи чеÑно повідомлÑÑ” вам оманливу правду?
+
+.\" ......................................................................
+.SS "7г. Перемикачка"
+.\" ----------------------------------------------------------------------
+Цей химерний трюк найкраще працює без режиму альтернативного переглÑду,
+оÑкільки Ð²Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ð±ÑƒÐ´Ðµ активним на рівні окремого вікна.
+
+.IP \(bu 3
+ЗапуÑÑ‚Ñ–Ñ‚ÑŒ \*(We із робіть COMMAND оÑтаннім (найправішим) показаним
+Ñтовпчиком. Якщо потрібно, ÑкориÑтайтеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ\-перемикачем «c» Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ
+Ñ€Ñдків команд Ñ– переконайтеÑÑ, що активним Ñ” режим переглÑду ліÑу,
+ÑкориÑтавшиÑÑŒ командою\-перемикачем «V».
+
+Потім ÑкориÑтайтеÑÑ ÐºÐ»Ð°Ð²Ñ–ÑˆÐ°Ð¼Ð¸ зі Ñтрілками вгору/вниз Ð´Ð»Ñ Ñ€Ð¾Ð·Ñ‚Ð°ÑˆÑƒÐ²Ð°Ð½Ð½Ñ
+показу так, щоб було показано ÑкіÑÑŒ обрізані Ñ€Ñдки команд («+» в оÑтанній
+позиції). Ви можете змінити розміри вашого xterm, щоб ÑталоÑÑ Ð¾Ð±Ñ€Ñ–Ð·Ð°Ð½Ð½Ñ.
+
+Ðарешті, ÑкориÑтайтеÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¾ÑŽ\-перемикачем «j», щоб вÑтановити вирівнюваннÑ
+праворуч у Ñтовпчику COMMAND.
+
+Далі, ÑкориÑтайтеÑÑ ÐºÐ»Ð°Ð²Ñ–ÑˆÐµÑŽ зі Ñтрілкою праворуч, щоб діÑтатиÑÑ Ñтовпчика
+COMMAND. Продовжіть натиÑкати клавішу зі Ñтрілкою праворуч, ретельно Ñтежте
+за напрÑмком у Ñкому рухаютьÑÑ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ– Ñ€Ñдки команд.
+
+.br
+ деÑкі Ñ€Ñдки переÑунутьÑÑ Ð»Ñ–Ð²Ð¾Ñ€ÑƒÑ‡, а інші — праворуч
+
+ нарешті, уÑÑ– Ñ€Ñдки перемкнутьÑÑ Ñ– поÑунутьÑÑ Ð¿Ñ€Ð°Ð²Ð¾Ñ€ÑƒÑ‡
+
+.\" ----------------------------------------------------------------------
+.SH "9. Ð’ÐДИ"
+.\" ----------------------------------------------------------------------
+Про вади, будь лаÑка, повідомлÑйте на адреÑу
+.UR procps@freelists.org
+.UE .
+
+
+.\" ----------------------------------------------------------------------
+.SH "10. ДИВ. ТÐКОЖ"
+.\" ----------------------------------------------------------------------
+\fBfree\fP(1), \fBps\fP(1), \fBuptime\fP(1), \fBatop\fP(1), \fBslabtop\fP(1), \fBvmstat\fP(8),
+\fBw\fP(1)
diff --git a/po-man/uk/uptime.1 b/po-man/uk/uptime.1
new file mode 100644
index 0000000..5c26ce5
--- /dev/null
+++ b/po-man/uk/uptime.1
@@ -0,0 +1,76 @@
+.\"
+.\" Copyright (c) 2011-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2011-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH UPTIME 1 "грудень 2012 року" procps\-ng "Команди кориÑтувача"
+.SH ÐÐЗВÐ
+uptime — виводить дані щодо чаÑу, протÑгом Ñкого працювала ÑиÑтема.
+.SH "КОРОТКИЙ ОПИС"
+\fBuptime\fP [\fIпараметри\fP]
+.SH ОПИС
+\fBuptime\fP виводить у один Ñ€Ñдок такі дані: поточний чаÑ, триваліÑÑ‚ÑŒ роботи
+ÑиÑтеми, кількіÑÑ‚ÑŒ кориÑтувачів, Ñкі працюють у ÑиÑтемі, та Ñередні значеннÑ
+Ð½Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° ÑиÑтему за оÑтанні 1, 5 та 15 хвилин.
+.PP
+Це Ñ‚Ñ– Ñамі дані, що міÑÑ‚ÑÑ‚ÑŒÑÑ Ñƒ Ñ€Ñдку заголовка, Ñкий показує програма
+\fBw\fP(1).
+.PP
+Середні Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ â€” це оÑереднені чиÑлові характериÑтики
+процеÑів, Ñкі перебувають у Ñтані роботи або у неперервному Ñтані. ÐŸÑ€Ð¾Ñ†ÐµÑ Ñƒ
+Ñтані роботи або викориÑтовує процеÑор або очікує на можливіÑÑ‚ÑŒ викориÑтаннÑ
+процеÑора. ÐŸÑ€Ð¾Ñ†ÐµÑ Ñƒ неперервному Ñтані очікує на ÑкийÑÑŒ доÑтуп до каналів
+введеннÑ\-виведеннÑ, наприклад, очікує на доÑтуп до диÑка. Середні значеннÑ
+обчиÑлюютьÑÑ Ð·Ð° трьома чаÑовими інтервалами. Середні навантаженнÑ
+нормалізуютьÑÑ Ð½Ð° кількіÑÑ‚ÑŒ процеÑорів у ÑиÑтемі, отже, Ñереднє навантаженнÑ
+у 1 у ÑиÑтемі з одним процеÑором означає, що процеÑор завантажено увеÑÑŒ чаÑ,
+а у ÑиÑтемі з 4 процеÑорами означає, що ÑиÑтема перебуває у Ñтані
+бездіÑльноÑÑ‚Ñ– 75% чаÑу.
+.SH ПÐРÐМЕТРИ
+.TP
+\fB\-p\fP, \fB\-\-pretty\fP
+ВивеÑти Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ у зручному Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ–
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+ВивеÑти цю довідку
+.TP
+\fB\-s\fP, \fB\-\-since\fP
+чаÑ, від Ñкого виконуєтьÑÑ Ð²Ñ–Ð´Ð»Ñ–Ðº чаÑу роботи ÑиÑтеми, у форматі рррр\-мм\-дд
+ГГ:ХХ:СС
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+вивеÑти дані щодо верÑÑ–Ñ— Ñ– завершити роботу
+.SH ФÐЙЛИ
+.TP
+\fI/var/run/utmp\fP
+Дані щодо тих, хто зараз працює у ÑиÑтемі.
+.TP
+\fI/proc\fP
+дані щодо процеÑу
+.SH ÐВТОРИ
+\fBuptime\fP Ñтворено
+.UR greenfie@gauss.\:rutgers.\:edu
+Larry Greenfield
+.UE
+та
+.UR johnsonm@sunsite.\:unc.\:edu
+Michael K. Johnson
+.UE
+.SH "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ"
+\fBps\fP(1), \fBtop\fP(1), \fButmp\fP(5), \fBw\fP(1)
+.SH "Як надіÑлати звіт про вади"
+Про вади, будь лаÑка, повідомлÑйте на адреÑу
+.UR procps@freelists.org
+.UE
diff --git a/po-man/uk/vmstat.8 b/po-man/uk/vmstat.8
new file mode 100644
index 0000000..49a8d5f
--- /dev/null
+++ b/po-man/uk/vmstat.8
@@ -0,0 +1,189 @@
+.\"
+.\" Copyright (c) 2002-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2012-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 1994 Henry Ware <al172@yfn.ysu.edu>
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH VMSTAT 8 "18 ÑÑ–Ñ‡Ð½Ñ 2023 року" procps\-ng "ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ ÑиÑтемою"
+.SH ÐÐЗВÐ
+vmstat — програма Ð´Ð»Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ ÑтатиÑтичних звітів щодо викориÑтаннÑ
+віртуальної пам’ÑÑ‚Ñ–.
+.SH "КОРОТКИЙ ОПИС"
+\fBvmstat\fP [параметри] [\fIзатримка\fP [\fIчиÑло\fP]]
+.SH ОПИС
+\fBvmstat\fP повідомлÑÑ” дані щодо процеÑів, пам’ÑÑ‚Ñ–, розподілу на Ñторінки,
+введеннÑ\-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð±Ð»Ð¾ÐºÑ–Ð², паÑток, диÑків та роботи процеÑора.
+.PP
+Перший Ñтворений звіт надає Ñередні дані з чаÑу оÑтаннього
+перезавантаженнÑ. ÐаÑтупні звіти надають дані щодо фрагмента чаÑу, Ñкий
+визначаєтьÑÑ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð¾Ð¼ \fIзатримка\fP. Дані звітів щодо процеÑів та ÑпоживаннÑ
+пам’ÑÑ‚Ñ– відповідають моменту запуÑку програми.
+.SH ПÐРÐМЕТРИ
+.TP
+\fIзатримка\fP
+Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fIзатримки\fP між оновленнÑми у Ñекундах. Якщо \fIзатримки\fP не
+визначено, програма виводить лише один звіт із Ñередніми даними з чаÑу
+перезавантаженнÑ.
+.TP
+\fIчиÑло\fP
+КількіÑÑ‚ÑŒ оновлень. Якщо Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ \fIчиÑло\fP не вказано Ñ– вказано значеннÑ
+\fIзатримка\fP, програма починає працювати у циклічному неÑкінченному режимі.
+.TP
+\fB\-a\fP, \fB\-\-active\fP
+ВивеÑти дані щодо активної Ñ– неактивної пам’ÑÑ‚Ñ–, Ñкщо викориÑтовуєтьÑÑ Ñдро
+2.5.41 або новіше.
+.TP
+\fB\-f\fP, \fB\-\-forks\fP
+За допомогою параметра \fB\-f\fP можна наказати програмі вивеÑти кількіÑÑ‚ÑŒ
+відгалужень з чаÑу перезавантаженнÑ. Це ÑтоÑуєтьÑÑ Ð²Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½ÑŒ, Ñтворених за
+допомогою викликів функцій fork, vfork та clone, і є еквівалентом загальної
+кількоÑÑ‚Ñ– Ñтворених завдань. Кожному процеÑу відповідає одне або декілька
+завдань, залежно від викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÑ–Ð² обробки. Показ цього параметра під
+Ñ‡Ð°Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¸Ñ… ÑеанÑів Ð·Ð±Ð¸Ñ€Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… не виконуєтьÑÑ.
+.TP
+\fB\-m\fP, \fB\-\-slabs\fP
+ВивеÑти slabinfo.
+.TP
+\fB\-n\fP, \fB\-\-one\-header\fP
+Виводити заголовок лише один раз, а не періодично.
+.TP
+\fB\-s\fP, \fB\-\-stats\fP
+ВивеÑти таблицю різноманітних лічильників подій та ÑтатиÑтичних даних щодо
+ÑÐ¿Ð¾Ð¶Ð¸Ð²Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼â€™ÑÑ‚Ñ–. Показ цих даних під Ñ‡Ð°Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¸Ñ… ÑеанÑів обробки даних
+не виконуєтьÑÑ.
+.TP
+\fB\-d\fP, \fB\-\-disk\fP
+ВивеÑти дані щодо викориÑÑ‚Ð°Ð½Ð½Ñ Ð´Ð¸Ñка (потрібне Ñдро 2.5.70 або новіше).
+.TP
+\fB\-D\fP, \fB\-\-disk\-sum\fP
+ВивеÑти ÑтатиÑтичні підÑумки щодо роботи із диÑком.
+.TP
+\fB\-p\fP, \fB\-\-partition\fP \fIприÑтрій\fP
+Докладні ÑтатиÑтичні дані щодо розділу (потрібне Ñдро верÑÑ–Ñ— 2.5.70 або
+новішої).
+.TP
+\fB\-S\fP, \fB\-\-unit\fP \fIÑимвол\fP
+Перемикає одиницю показу виведених даних між 1000 (\fIk\fP), 1024 (\fIK\fP),
+1000000 (\fIm\fP) та 1048576 (\fIM\fP) байтами. Зауважте, що це не ÑтоÑуєтьÑÑ
+полів резервної пам'ÑÑ‚Ñ– (si/so) або блоків (bi/bo).
+.TP
+\fB\-t\fP, \fB\-\-timestamp\fP
+Додати до кожного Ñ€Ñдка чаÑову позначку.
+.TP
+\fB\-w\fP, \fB\-\-wide\fP
+Режим широкого Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ (кориÑний Ð´Ð»Ñ ÑиÑтем з великим об’ємом пам’ÑÑ‚Ñ–, де
+у типовому режимі Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð²Ð¸Ð½Ð¸ÐºÐ°ÑŽÑ‚ÑŒ проблеми із розбиттÑм даних за
+Ñтовпчиками). У цьому режимі програма виводить понад 80 Ñимволів у Ñ€Ñдок.
+.TP
+\fB\-y\fP, \fB\-\-no\-first\fP
+ПропуÑтити перший звіт із ÑтатиÑтикою піÑÐ»Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ ÑиÑтеми.
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+ВивеÑти дані щодо верÑÑ–Ñ— Ñ– завершити роботу.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+Показати довідкові дані і завершити роботу.
+.PD
+.SH "ОПИС ПОЛІВ ДЛЯ РЕЖИМУ ВІРТУÐЛЬÐОЇ ÐœÐШИÐИ"
+.SS Procs
+.nf
+r: кількіÑÑ‚ÑŒ придатних до роботи процеÑів (запущених або таких, що чекають на запуÑк).
+b: кількіÑÑ‚ÑŒ заблокованих процеÑів, Ñкі очікують на Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ\-виведеннÑ.
+.fi
+.SS Пам'ÑÑ‚ÑŒ
+Ðа показ цих даних впливає параметр \fB\-\-unit\fP.
+.nf
+swpd: об’єм викориÑтаної резервної пам’ÑÑ‚Ñ–.
+free: об’єм невикориÑтаної пам’ÑÑ‚Ñ–.
+buff: об’єм пам’ÑÑ‚Ñ–, викориÑтаної Ð´Ð»Ñ Ð±ÑƒÑ„ÐµÑ€Ñ–Ð².
+кеш: об’єм пам’ÑÑ‚Ñ–, викориÑтаної Ð´Ð»Ñ ÐºÐµÑˆÑƒÐ²Ð°Ð½Ð½Ñ.
+inact: об’єм неактивної пам’ÑÑ‚Ñ– (параметр \fB\-a\fP).
+активно: об’єм активної пам’ÑÑ‚Ñ– (параметр \fB\-a\fP).
+.fi
+.SS Свопінг
+Ðа показ цих даних впливає параметр \fB\-\-unit\fP.
+.nf
+si: об’єм зарезервованої пам’ÑÑ‚Ñ–, взÑтої з диÑка (/Ñ).
+so: об’єм зарезервованої пам’ÑÑ‚Ñ–, запиÑаної на диÑк (/Ñ).
+.fi
+.SS ВведеннÑ\-виведеннÑ
+.nf
+bi: кількіÑÑ‚ÑŒ кібібайтів, отриманих із блокового приÑтрою (КіБ/Ñ).
+bo: кількіÑÑ‚ÑŒ кібібайтів, надіÑланих на блоковий приÑтрій (КіБ/Ñ).
+.fi
+.SS СиÑтема
+.nf
+in: кількіÑÑ‚ÑŒ переривань за Ñекунду, включно із перериваннÑми годинника.
+cs: кількіÑÑ‚ÑŒ перемикань контекÑтів за Ñекунду.
+.fi
+.SS ПроцеÑор
+ВідÑоткові Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð°Ð³Ð°Ð»ÑŒÐ½Ð¾Ð³Ð¾ чаÑу викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора.
+.nf
+us: чаÑ, витрачений на Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð´Ñƒ, Ñкий не Ñ” кодом Ñдра (Ñ‡Ð°Ñ ÐºÐ¾Ñ€Ð¸Ñтувача, разом з чаÑом nice).
+sy: чаÑ, витрачений на Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð´Ñƒ Ñдра (ÑиÑтемний чаÑ).
+id: чаÑ, витрачений на бездіÑльніÑÑ‚ÑŒ. До Ñдра Linux 2.5.41 включав Ñ‡Ð°Ñ Ð½Ð° Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ\-виведеннÑ.
+wa: чаÑ, витрачений на Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ\-виведеннÑ. До Ñдра Linux 2.5.41 його було включено до чаÑу бездіÑльноÑÑ‚Ñ–.
+st: чаÑ, запозичений з віртуальної машини. До Ñдра Linux 2.6.11 позначавÑÑ Ñк Ñ‡Ð°Ñ Ð½ÐµÐ²Ñ–Ð´Ð¾Ð¼Ð¾Ð³Ð¾ призначеннÑ.
+gu: чаÑ, витрачений на Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð´Ñƒ гоÑтьової ÑиÑтеми KVM (Ñ‡Ð°Ñ Ð³Ð¾Ñтьової ÑиÑтеми, включно із nice гоÑтьової ÑиÑтеми).
+.fi
+.SH "ОПИС ПОЛІВ ДЛЯ РЕЖИМУ ДИСКÐ"
+.SS ЧитаннÑ
+.nf
+загалом: загальна кількіÑÑ‚ÑŒ уÑпішних читань.
+об’єднано: групові Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ (такі, Ñкі дають один ÑÐµÐ°Ð½Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ\-виведеннÑ).
+Ñектори: кількіÑÑ‚ÑŒ уÑпішно прочитаних Ñекторів.
+мÑ: чаÑ, витрачений на читаннÑ, у міліÑекундах.
+.fi
+.SS ЗапиÑи
+.nf
+загалом: загальна кількіÑÑ‚ÑŒ уÑпішних запиÑів.
+об’єднано: групові запиÑи (такі, Ñкі дають один ÑÐµÐ°Ð½Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ\-виведеннÑ).
+Ñектори: кількіÑÑ‚ÑŒ уÑпішно запиÑаних Ñекторів.
+мÑ: чаÑ, витрачений на запиÑ, у міліÑекундах.
+.fi
+.SS ВведеннÑ\-виведеннÑ
+.nf
+пот.: поточні дії з введеннÑ\-виведеннÑ
+Ñ: Ñекунди, витраченні на введеннÑ\-виведеннÑ
+.fi
+.SH "ОПИС ПОЛІВ ДЛЯ РЕЖИМУ РОЗДІЛУ ДИСКÐ"
+.nf
+чит.: загальне кількіÑÑ‚ÑŒ читань, виданих Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ розділу
+чит. Ñекторів: загальна кількіÑÑ‚ÑŒ читань Ñекторів Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ
+запиÑ: загальна кількіÑÑ‚ÑŒ запиÑів, виданих Ð´Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ розділу
+запитаних запиÑів: загальна кількіÑÑ‚ÑŒ запитів щодо запиÑу, Ñкі було надіÑлано Ð´Ð»Ñ Ñ€Ð¾Ð·Ð´Ñ–Ð»Ñƒ
+.fi
+.SH "ОПИС ПОЛІВ ДЛЯ РЕЖИМУ ЧÐСТИÐ"
+У режимі чаÑтин буде показано ÑтатиÑтичні дані Ð´Ð»Ñ Ð¾ÐºÑ€ÐµÐ¼Ð¾Ñ— чаÑтини. Щоб
+дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ про це, див. \fBslabinfo\fP(5)
+.PP
+.nf
+кеш: назва кешу
+чиÑл: кількіÑÑ‚ÑŒ поточних активних об’єктів
+загалом: загальна кількіÑÑ‚ÑŒ доÑтупних об’єктів
+розмір: розмір кожного з об’єктів
+Ñторінки: кількіÑÑ‚ÑŒ Ñторінок з принаймні одним активним об’єктом
+.fi
+.SH ЗÐУВÐЖЕÐÐЯ
+\fBvmstat\fP потребує доÑтупу до файлів у \fI/proc\fP. \fB\-m\fP потребує доÑтупу до
+Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ \fI/proc/slabinfo\fP, Ñкого може не бути у звичайних
+кориÑтувачів. Параметри Ð¼Ð¾Ð½Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ \fI/proc\fP, зокрема \fIsubset=pid\fP, також
+можуть впливати на перелік виведених даних.
+.SH "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ"
+\fBfree\fP(1), \fBiostat\fP(1), \fBmpstat\fP(1), \fBps\fP(1), \fBsar\fP(1), \fBtop\fP(1),
+\fBslabinfo\fP(5)
+.SH "Як надіÑлати звіт про вади"
+Про вади, будь лаÑка, повідомлÑйте на адреÑу
+.UR procps@freelists.org
+.UE
diff --git a/po-man/uk/w.1 b/po-man/uk/w.1
new file mode 100644
index 0000000..7139d9d
--- /dev/null
+++ b/po-man/uk/w.1
@@ -0,0 +1,111 @@
+.\"
+.\" Copyright (c) 2009-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2015-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2012-2013 Jaromir Capik <jcapik@redhat.com>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2002-2004 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH W 1 "15 ÑÑ–Ñ‡Ð½Ñ 2023 року" procps\-ng "Команди кориÑтувача"
+.SH ÐÐЗВÐ
+w — програма Ð´Ð»Ñ Ð¿Ð¾ÐºÐ°Ð·Ñƒ ÑпиÑку тих, хто працює у ÑиÑтемі, та даних щодо
+того, Ñкі дії вони виконують.
+.SH "КОРОТКИЙ ОПИС"
+\fBw\fP [\fIпараметри\fP] [\fIкориÑтувач\fP]
+.SH ОПИС
+\fBw\fP виводить дані щодо поточних кориÑтувачів ÑиÑтеми та процеÑів,
+влаÑниками Ñких вони Ñ”. У заголовку виведених даних наведено: поточний чаÑ,
+триваліÑÑ‚ÑŒ роботи ÑиÑтеми, кількіÑÑ‚ÑŒ кориÑтувачів, Ñкі працюють у ÑиÑтемі,
+та Ñереднє Ð½Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ð° ÑиÑтему за оÑтанні 1, 5 та 15 хвилин.
+.PP
+Ð”Ð»Ñ ÐºÐ¾Ð¶Ð½Ð¾Ð³Ð¾ кориÑтувача буде показано такі дані: назву облікового запиÑу,
+назву tty, віддалений вузол, Ñ‡Ð°Ñ Ð²Ñ…Ð¾Ð´Ñƒ до ÑиÑтеми, Ñ‡Ð°Ñ Ð±ÐµÐ·Ð´Ñ–ÑльноÑÑ‚Ñ–, JCPU,
+PCPU та Ñ€Ñдок команди поточного процеÑу.
+.PP
+Ð§Ð°Ñ JCPU Ñ” чаÑом, викориÑтаним уÑіма процеÑами, пов’Ñзаними із терміналом
+tty. До нього не включено Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð¸Ñ… фонових завдань, але
+включено Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¸Ñ… фонових завдань.
+.PP
+Ð§Ð°Ñ PCPU Ñ” чаÑом, викориÑтаним поточним процеÑом, назву Ñкого наведено у
+полі «what».
+.SH "ПÐРÐМЕТРИ КОМÐÐДÐОГО РЯДКÐ"
+.TP
+\fB\-h\fP, \fB\-\-no\-header\fP
+Ðе виводити заголовок.
+.TP
+\fB\-u\fP, \fB\-\-no\-current\fP
+Ігнорувати Ñ–Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача під Ñ‡Ð°Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ð¾Ñ‚Ð¾Ñ‡Ð½Ð¾Ð³Ð¾ процеÑу та чаÑу
+викориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора. Побачити різницю можна піÑÐ»Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ \fBsu\fP
+у даних, виведених командами \fBw\fP та \fBw \-u\fP.
+.TP
+\fB\-s\fP, \fB\-\-short\fP
+ВикориÑтовувати Ñкорочений формат. Ðе виводити даних щодо чаÑу входу до
+ÑиÑтеми та чаÑових параметрів JCPU або PCPU.
+.TP
+\fB\-f\fP, \fB\-\-from\fP
+Увімкнути Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ð¾Ð»Ñ \fBз\fP (назви віддаленого вузла). У типовому варіанті
+програми поле \fBз\fP не виводитьÑÑ. Втім, адмініÑтратор вашої ÑиÑтеми або
+Ñупровідник диÑтрибутива може зібрати верÑÑ–ÑŽ, у Ñкій типово вміÑÑ‚ Ð¿Ð¾Ð»Ñ \fBз\fP
+виводитьÑÑ.
+.TP
+\fB\-\-help\fP
+ВивеÑти текÑÑ‚ довідки Ñ– завершити роботу.
+.TP
+\fB\-i\fP, \fB\-\-ip\-addr\fP
+Виводити у полі \fBfrom\fP IP\-адреÑу заміÑÑ‚ÑŒ назви вузла.
+.TP
+\fB\-p\fP, \fB\-\-pids\fP
+Показати ідентифікатор процеÑу входу до ÑиÑтеми або процеÑу «what» у полі
+«what».
+.TP
+\fB\-V\fP, \fB\-\-version\fP
+Показати інформацію щодо верÑÑ–Ñ—.
+.TP
+\fB\-o\fP, \fB\-\-old\-style\fP
+Ð’Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… у Ñтарому Ñтилі. Виводить пробіл Ð´Ð»Ñ Ñ‡Ð°Ñів бездіÑльноÑÑ‚Ñ–,
+Ñкі тривають менше за одну хвилину.
+.TP
+\fBкориÑтувач\fP
+ВивеÑти дані лише щодо вказаного кориÑтувача.
+.SH СЕРЕДОВИЩЕ
+.TP
+PROCPS_USERLEN
+Перевизначити типову ширину Ñтовпчика імені кориÑтувача. Типовою Ñ” ширина у
+8 Ñимволів.
+.TP
+PROCPS_FROMLEN
+Перевизначити типову ширину Ñтовпчика джерела (from). Типовою Ñ” ширина у 16
+Ñимволів.
+.SH ФÐЙЛИ
+.TP
+\fI/var/run/utmp\fP
+Дані щодо тих, хто зараз працює у ÑиÑтемі.
+.TP
+\fI/proc\fP
+дані щодо процеÑу
+.SH "ТÐКОЖ ПЕРЕГЛЯÐЬТЕ"
+\fBfree\fP(1), \fBps\fP(1), \fBtop\fP(1), \fBuptime\fP(1), \fButmp\fP(5), \fBwho\fP(1)
+.SH ÐВТОРИ
+\fBw\fP майже повніÑÑ‚ÑŽ перепиÑано з «нулÑ» Charles Blake на оÑнові верÑÑ–Ñ—,
+Ñтвореної
+.UR greenfie@\:gauss.\:rutgers.\:edu
+Larry Greenfield
+.UE
+та
+.UR johnsonm@\:redhat.\:com
+Michael K. Johnson
+.UE
+.SH "Як надіÑлати звіт про вади"
+Про вади, будь лаÑка, повідомлÑйте на адреÑу
+.UR procps@freelists.org
+.UE
diff --git a/po-man/uk/watch.1 b/po-man/uk/watch.1
new file mode 100644
index 0000000..1b9d61f
--- /dev/null
+++ b/po-man/uk/watch.1
@@ -0,0 +1,207 @@
+.\"
+.\" Copyright (c) 2009-2023 Craig Small <csmall@dropbear.xyz>
+.\" Copyright (c) 2018-2023 Jim Warner <james.warner@comcast.net>
+.\" Copyright (c) 2011-2012 Sami Kerola <kerolasa@iki.fi>
+.\" Copyright (c) 2003 Albert Cahalan
+.\"
+.\" 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 2 of the License, or
+.\" (at your option) any later version.
+.\"
+.\"
+.\"*******************************************************************
+.\"
+.\" This file was generated with po4a. Translate the source file.
+.\"
+.\"*******************************************************************
+.TH WATCH 1 "17 ÑÑ–Ñ‡Ð½Ñ 2023 року" procps\-ng "Команди кориÑтувача"
+.SH ÐÐЗВÐ
+watch — програма Ð´Ð»Ñ Ð¿ÐµÑ€Ñ–Ð¾Ð´Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñ–Ð½ÑˆÐ¸Ñ… програм з виведеннÑм даних
+на веÑÑŒ екран
+.SH "КОРОТКИЙ ОПИС"
+\fBwatch\fP [\fIпараметри\fP] \fIкоманда\fP
+.SH ОПИС
+\fBwatch\fP виконує \fIкоманду\fP регулÑрно, показує виведені нею дані та
+Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ помилок (перший екран). За \fBwatch\fP ви зможете
+ÑпоÑтерігати за змінами у виведених даних із чаÑом. Типово, запуÑк програми
+\fIкоманда\fP відбуватиметьÑÑ ÐºÐ¾Ð¶Ð½Ñ– 2 Ñекунди, аж доки роботу \fBwatch\fP не буде
+перервано.
+.SH ПÐРÐМЕТРИ
+.TP
+\fB\-b\fP, \fB\-\-beep\fP
+Гудок, Ñкщо Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ завершуєтьÑÑ Ð½ÐµÐ½ÑƒÐ»ÑŒÐ¾Ð²Ð¸Ð¼ Ñтаном.
+.TP
+\fB\-c\fP, \fB\-\-color\fP
+ОброблÑти поÑлідовноÑÑ‚Ñ– Ñимволів ANSI Ð´Ð»Ñ ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ñ–Ð² Ñ– Ñтилю.
+.TP
+\fB\-C\fP, \fB\-\-no\-color\fP
+Ðе оброблÑти поÑлідовноÑÑ‚Ñ– Ñимволів ANSI Ð´Ð»Ñ ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ñ–Ð² Ñ– Ñтилю.
+.TP
+\fB\-d\fP, \fB\-\-differences\fP[=\fIpermanent\fP]
+Позначити відмінноÑÑ‚Ñ– між двома поÑлідовними запуÑками. Якщо задано
+необов'Ñзковий аргумент \fIpermanent\fP, \fBwatch\fP покаже уÑÑ– зміни із чаÑу
+першого запуÑку.
+.TP
+\fB\-e\fP, \fB\-\-errexit\fP
+Призупинити оновленнÑ, Ñкщо буде виÑвлено помилку, Ñ– завершити роботу піÑлÑ
+натиÑÐºÐ°Ð½Ð½Ñ Ð±ÑƒÐ´ÑŒ\-Ñкої клавіші.
+.TP
+\fB\-g\fP, \fB\-\-chgexit\fP
+Вийти, Ñкщо змінилиÑÑ Ð´Ð°Ð½Ñ–, виведені командою \fIкоманда\fP.
+.TP
+\fB\-n\fP, \fB\-\-interval\fP \fIчиÑло\fP
+Визначити інтервал між запуÑками. Ðайменшим Ñ” інтервал у 0,1 Ñекунди. Якщо
+ви вкажете менше значеннÑ, викориÑтовуватиметьÑÑ Ñ–Ð½Ñ‚ÐµÑ€Ð²Ð°Ð» у 0,1 Ñекунди. У
+вÑÑ–Ñ… локалÑÑ… працюють Ñ– «.» Ñ– «,». Ð”Ð»Ñ Ð¿Ð¾Ñтійного Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½ÐµÑ‚Ð¸Ð¿Ð¾Ð²Ð¾Ð³Ð¾
+інтервалу можна ÑкориÑтатиÑÑ Ð·Ð¼Ñ–Ð½Ð½Ð¾ÑŽ Ñередовища \fBWATCH_INTERVAL\fP (Ð´Ð»Ñ Ð½ÐµÑ—
+викориÑтовуютьÑÑ Ñ‚Ñ– Ñамі правила Ñ– форматуваннÑ).
+.TP
+\fB\-p\fP, \fB\-\-precise\fP
+Ðаказати \fBwatch\fP запуÑкати \fIcommand\fP кожні \fB\-\-interval\fP
+\fIÑекунд\fP. Спробуйте з \fBntptime\fP (Ñкщо Ñ”) Ñ– зауважте, що дробові чаÑтки
+Ñекунд залишаютьÑÑ (майже) незмінними, на відміну від звичайного режиму,
+коли Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½ÐµÐ¿ÐµÑ€ÐµÑ€Ð²Ð½Ð¾ зроÑтають.
+.TP
+\fB\-q\fP, \fB\-\-equexit\fP <цикли>
+Вийти, коли Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ \fIкоманди\fP не змінюєтьÑÑ Ð²ÐºÐ°Ð·Ð°Ð½Ñƒ кількіÑÑ‚ÑŒ циклів.
+.TP
+\fB\-r\fP, \fB\-\-no\-rerun\fP
+Ðе перезапуÑкати програму при зміні розмірів вікна термінала. Виведені
+програмою дані знову з'ÑвлÑÑ‚ÑŒÑÑ Ð½Ð° екрані при наÑтупному регулÑрному
+запуÑку.
+.TP
+\fB\-t\fP, \fB\-\-no\-title\fP
+Вимкнути показ заголовка із даними щодо інтервалу, команди та поточного чаÑу
+та наÑтупного порожнього Ñ€Ñдка у верхній чаÑтині екрана.
+.TP
+\fB\-w\fP, \fB\-\-no\-wrap\fP
+Вимкнути перенеÑÐµÐ½Ð½Ñ Ñ€Ñдків. Довгі Ñ€Ñдки буде обрізано, заміÑÑ‚ÑŒ перенеÑеннÑ
+на наÑтупний.
+.TP
+\fB\-x\fP, \fB\-\-exec\fP
+Передати команду \fIкоманда\fP до \fBexec\fP(2) заміÑÑ‚ÑŒ \fBsh \-c\fP. Це зменшує
+потребу у викориÑтанні лапок Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð±Ð°Ð¶Ð°Ð½Ð¾Ð³Ð¾ результату.
+.TP
+\fB\-h\fP, \fB\-\-help\fP
+ВивеÑти текÑÑ‚ довідки Ñ– завершити роботу.
+.TP
+\fB\-v\fP, \fB\-\-version\fP
+ВивеÑти дані щодо верÑÑ–Ñ— Ñ– завершити роботу.
+.SH "СТÐРВИХОДУ"
+.PP
+.RS
+.PD 0
+.TP
+\fB0\fP
+УÑпіх.
+.TP
+\fB1\fP
+Різноманітні помилки.
+.TP
+\fB2\fP
+Ð’Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу Ð´Ð»Ñ ÑпоÑÑ‚ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð°Ð·Ð½Ð°Ð»Ð¾ невдачі.
+.TP
+\fB3\fP
+Ðе вдалоÑÑ Ð·Ð°Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ Ñтандартне Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð¾Ñ‡Ñ–Ñ€Ð½ÑŒÐ¾Ð³Ð¾ процеÑу на канал
+Ñтороннього запиÑу.
+.TP
+\fB4\fP
+Помилка під Ñ‡Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸.
+.TP
+\fB5\fP
+Ð’Ñ–Ð´Ð³Ð°Ð»ÑƒÐ¶ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑу Ð´Ð»Ñ ÑпоÑÑ‚ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð°Ð·Ð½Ð°Ð»Ð¾ невдачі.
+.TP
+\fB7\fP
+Спроба ÑÑ‚Ð²Ð¾Ñ€ÐµÐ½Ð½Ñ ÐºÐ°Ð½Ð°Ð»Ñƒ IPC зазнала невдачі.
+.TP
+\fB8\fP
+Спроба Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ð¸Ñ…Ð¾Ð´Ñƒ дочірнього процеÑу за допомогою
+\fBwaitpid\fP(2) зазнала невдачі або команда завершила роботу Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾
+помилку.
+.TP
+\fBінший\fP
+watch передаÑÑ‚ÑŒ Ñтан виходу команди Ñк Ñтан виходу дочірнього процеÑу.
+.SH СЕРЕДОВИЩЕ
+Ðа поведінку \fBgrep\fP впливають наÑтупні змінні Ñередовища.
+
+.TP
+\fBWATCH_INTERVAL\fP
+Інтервал оновленнÑ, викориÑтовує Ñ‚Ñ– Ñамі правила, що Ñ– параметр командного
+Ñ€Ñдка \fB\-\-interval\fP.
+.sp
+.SH ЗÐУВÐЖЕÐÐЯ
+СпоÑіб обробки параметрів POSIX (тобто обробка параметрів завершуєтьÑÑ Ð½Ð°
+першому з аргументів, Ñкий не Ñ” параметром). Це означає, що параметри піÑлÑ
+\fIкоманди\fP не оброблÑтимутьÑÑ Ñамою програмою \fBwatch\fP.
+.sp
+.SH Ð’ÐДИ
+ПіÑÐ»Ñ Ð·Ð¼Ñ–Ð½Ð¸ розмірів вікна термінала, дані не буде належним чином
+переформатовано до наÑтупного запланованого оновленнÑ. Також буде втрачено
+уÑÑ– позначеннÑ, отримані за допомогою параметра \fB\-\-differences\fP. Якщо
+викориÑтано параметр \fB\-\-no\-rerun\fP, виведені дані будуть невидимими.
+
+Ðепридатні до Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñимволи буде уÑунуто із даних, виведених
+програмою. Якщо ви хочете побачити ці Ñимволи, ÑкориÑтайтеÑÑ \fBcat \-v\fP у
+поÑлідовноÑÑ‚Ñ– команд, Ñтвореній за допомогою Ñимволу каналу (|).
+
+Символи поєднаннÑ, Ñкі мало бути показано на позиції у оÑтанньому Ñтовпчику
+на екрані, може бути показано на Ñтовпчик раніше або взагалі не показано.
+
+Символи Ð¿Ð¾Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð½Ñ–ÐºÐ¾Ð»Ð¸ не враховуютьÑÑ Ð¿Ñ–Ð´ Ñ‡Ð°Ñ Ð²Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¼Ñ–Ð½Ð½Ð¾Ñтей,
+Ñкщо викориÑтано параметр \fB\-\-differences\fP. До уваги берутьÑÑ Ð»Ð¸ÑˆÐµ оÑновні
+Ñимволи.
+
+Порожні Ñ€Ñдки, розташовані безпоÑередньо піÑÐ»Ñ Ñ€Ñдка, що завершує оÑтанній
+Ñтовпчик, не буде показано.
+
+У режимі \fB\-\-precise\fP ще не передбачено технології розширеного викривленнÑ
+чаÑу Ð´Ð»Ñ ÐºÐ¾Ð¼Ð¿ÐµÐ½Ñації проблем із \fIкомандою\fP, Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñкої триває понад
+\fB\-\-interval\fP \fIÑекунд\fP. Крім того, \fBwatch\fP може перейти у режим, коли
+програма швидко намагаєтьÑÑ Ð·Ð°Ð¿ÑƒÑтити Ñкомога більше екземплÑрів \fIкоманди\fP
+Ð´Ð»Ñ Ñ‚Ð¾Ð³Ð¾, щоб «наздогнати» план за попередніми запуÑками, Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ Ñких
+тривало понад \fB\-\-interval\fP (наприклад, Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ \fBnetstat\fP(8) під
+Ñ‡Ð°Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ у DNS може тривати дуже довго).
+.sp
+.SH ПРИКЛÐДИ
+.PP
+Ð”Ð»Ñ ÑпоÑÑ‚ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð° надходженнÑм пошти можна ÑкориÑтатиÑÑ Ñ‚Ð°ÐºÐ¾ÑŽ командою:
+.IP
+watch \-n 60 from
+.PP
+Ð”Ð»Ñ ÑпоÑÑ‚ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð° змінами у вміÑÑ‚Ñ– каталогу можна ÑкориÑтатиÑÑ Ñ‚Ð°ÐºÐ¾ÑŽ
+командою:
+.IP
+watch \-d ls \-l
+.PP
+Якщо Ð²Ð°Ñ Ñ†Ñ–ÐºÐ°Ð²Ð»ÑÑ‚ÑŒ лише файли, влаÑником Ñких Ñ” кориÑтувач joe, ви можете
+ÑкориÑтатиÑÑ Ñ‚Ð°ÐºÐ¾ÑŽ командою:
+.IP
+watch \-d 'ls \-l | fgrep joe'
+.PP
+Щоб побачити результат викориÑÑ‚Ð°Ð½Ð½Ñ Ð»Ð°Ð¿Ð¾Ðº, Ñпробуйте таку команду:
+.IP
+watch echo $$
+.br
+watch echo '$$'
+.br
+watch echo "'"'$$'"'"
+.PP
+Щоб побачити результат точного Ð²Ñ€Ð°Ñ…ÑƒÐ²Ð°Ð½Ð½Ñ Ñ‡Ð°Ñу, Ñпробуйте додати параметр
+\fB\-p\fP до такої команди:
+.IP
+watch \-n 10 sleep 1
+.PP
+Стежити за діÑми зі вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð½Ð°Ð¹Ð½Ð¾Ð²Ñ–ÑˆÐ¸Ñ… верÑій Ñдра адмініÑтратора
+вашого комп’ютера можна за допомогою такої команди:
+.IP
+watch uname \-r
+.PP
+(Зауважте, що роботу з \fB\-p\fP під Ñ‡Ð°Ñ Ð¿ÐµÑ€ÐµÐ·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ Ð½Ðµ гарантовано,
+оÑобливо з врахуваннÑм викориÑÑ‚Ð°Ð½Ð½Ñ \fBntpdate\fP (Ñкщо Ñ”) та інших механізмів
+зміни чаÑових даних.)
+.sp
+.SH "Як надіÑлати звіт про вади"
+Про вади, будь лаÑка, повідомлÑйте на адреÑу
+.UR procps@freelists.org
+.UE
diff --git a/po-man/zh_CN.po b/po-man/zh_CN.po
new file mode 100644
index 0000000..52c6b40
--- /dev/null
+++ b/po-man/zh_CN.po
@@ -0,0 +1,16178 @@
+# procps-ng manpages in zh_CN
+# Copyright (C) 2015 Free Software Foundation, Inc.
+# This file is distributed under the same license as the procps-ng package.
+# Mingye Wang <arthur200126@gmail.com>, 2015.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: procps-ng-man 3.3.10-rc3\n"
+"Report-Msgid-Bugs-To: Procps list <procps@freelists.org>\n"
+"POT-Creation-Date: 2023-08-19 17:38+1000\n"
+"PO-Revision-Date: 2015-10-30 09:26-0400\n"
+"Last-Translator: Mingye Wang (Arthur2e5) <arthur200126@gmail.com>\n"
+"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"X-Generator: Poedit 1.8.4\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+
+#. type: TH
+#: ../man/free.1:14
+#, no-wrap
+msgid "FREE"
+msgstr "FREE"
+
+#. type: TH
+#: ../man/free.1:14
+#, no-wrap
+msgid "2023-05-02"
+msgstr ""
+
+#. type: TH
+#: ../man/free.1:14 ../man/kill.1:12 ../man/pgrep.1:13 ../man/pmap.1:19
+#: ../man/pwdx.1:12 ../man/skill.1:12 ../man/slabtop.1:14 ../man/sysctl.8:14
+#: ../man/sysctl.conf.5:13 ../man/tload.1:12 ../man/uptime.1:13
+#: ../man/vmstat.8:13 ../man/w.1:14 ../man/watch.1:13 ../man/ps.1:13
+#: ../man/top.1:62
+#, no-wrap
+msgid "procps-ng"
+msgstr "procps-ng"
+
+#. type: TH
+#: ../man/free.1:14 ../man/kill.1:12 ../man/pgrep.1:13 ../man/pidof.1:13
+#: ../man/pmap.1:19 ../man/pwdx.1:12 ../man/skill.1:12 ../man/slabtop.1:14
+#: ../man/tload.1:12 ../man/uptime.1:13 ../man/w.1:14 ../man/watch.1:13
+#: ../man/ps.1:13 ../man/top.1:62
+#, no-wrap
+msgid "User Commands"
+msgstr "用户命令"
+
+#. type: SH
+#: ../man/free.1:15 ../man/kill.1:13 ../man/pgrep.1:14 ../man/pidof.1:14
+#: ../man/pmap.1:20 ../man/pwdx.1:13 ../man/skill.1:13 ../man/slabtop.1:15
+#: ../man/sysctl.8:15 ../man/sysctl.conf.5:14 ../man/tload.1:13
+#: ../man/uptime.1:14 ../man/vmstat.8:14 ../man/w.1:15 ../man/watch.1:14
+#: ../man/ps.1:27 ../man/top.1:67 ../man/procps.3:15 ../man/procps_misc.3:15
+#: ../man/procps_pids.3:15
+#, no-wrap
+msgid "NAME"
+msgstr "å称"
+
+#. type: Plain text
+#: ../man/free.1:17
+msgid "free - Display amount of free and used memory in the system"
+msgstr ""
+
+#. type: SH
+#: ../man/free.1:17 ../man/kill.1:15 ../man/pgrep.1:16 ../man/pidof.1:16
+#: ../man/pmap.1:22 ../man/pwdx.1:15 ../man/skill.1:15 ../man/slabtop.1:17
+#: ../man/sysctl.8:17 ../man/tload.1:15 ../man/uptime.1:16 ../man/vmstat.8:16
+#: ../man/w.1:17 ../man/watch.1:16 ../man/ps.1:29 ../man/top.1:72
+#: ../man/procps.3:18 ../man/procps_misc.3:17 ../man/procps_pids.3:18
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "摘è¦"
+
+#. type: Plain text
+#: ../man/free.1:20
+msgid "B<free> [I<options>]"
+msgstr ""
+
+#. type: SH
+#: ../man/free.1:20 ../man/kill.1:18 ../man/pgrep.1:25 ../man/pidof.1:30
+#: ../man/pmap.1:25 ../man/skill.1:25 ../man/slabtop.1:20 ../man/sysctl.8:23
+#: ../man/sysctl.conf.5:16 ../man/tload.1:18 ../man/uptime.1:19
+#: ../man/vmstat.8:20 ../man/w.1:20 ../man/watch.1:19 ../man/ps.1:31
+#: ../man/ps.1:1002 ../man/top.1:77 ../man/procps.3:67 ../man/procps_misc.3:49
+#: ../man/procps_pids.3:61
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "æè¿°"
+
+#. type: Plain text
+#: ../man/free.1:26
+msgid ""
+"B<free> displays the total amount of free and used physical and swap memory "
+"in the system, as well as the buffers and caches used by the kernel. The "
+"information is gathered by parsing /proc/meminfo. The displayed columns are:"
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:26
+#, no-wrap
+msgid "B<total>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:30
+msgid ""
+"Total usable memory (MemTotal and SwapTotal in /proc/meminfo). This includes "
+"the physical and swap memory minus a few reserved bits and kernel binary "
+"code."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:30
+#, no-wrap
+msgid "B<used>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:33
+msgid "Used or unavailable memory (calculated as B<total> - B<available>)"
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:33
+#, no-wrap
+msgid "B<free>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:36
+msgid "Unused memory (MemFree and SwapFree in /proc/meminfo)"
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:36
+#, no-wrap
+msgid "B<shared>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:39
+msgid "Memory used (mostly) by tmpfs (Shmem in /proc/meminfo)"
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:39
+#, no-wrap
+msgid "B<buffers>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:42
+msgid "Memory used by kernel buffers (Buffers in /proc/meminfo)"
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:42
+#, no-wrap
+msgid "B<cache>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:45
+msgid ""
+"Memory used by the page cache and slabs (Cached and SReclaimable in /proc/"
+"meminfo)"
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:45
+#, no-wrap
+msgid "B<buff/cache>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:48
+msgid "Sum of B<buffers> and B<cache>"
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:48
+#, no-wrap
+msgid "B<available>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:57
+msgid ""
+"Estimation of how much memory is available for starting new applications, "
+"without swapping. Unlike the data provided by the B<cache> or B<free> "
+"fields, this field takes into account page cache and also that not all "
+"reclaimable memory slabs will be reclaimed due to items being in use "
+"(MemAvailable in /proc/meminfo, available on kernels 3.14, emulated on "
+"kernels 2.6.27+, otherwise the same as B<free>)"
+msgstr ""
+
+#. type: SH
+#: ../man/free.1:57 ../man/kill.1:34 ../man/pgrep.1:53 ../man/pidof.1:34
+#: ../man/pmap.1:29 ../man/pwdx.1:18 ../man/skill.1:42 ../man/slabtop.1:25
+#: ../man/tload.1:25 ../man/uptime.1:36 ../man/vmstat.8:29 ../man/watch.1:26
+#, no-wrap
+msgid "OPTIONS"
+msgstr "选项"
+
+#. type: TP
+#: ../man/free.1:58
+#, no-wrap
+msgid "B<-b>, B<--bytes>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:61
+msgid "Display the amount of memory in bytes."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:61
+#, no-wrap
+msgid "B<-k>, B<--kibi>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:64
+msgid "Display the amount of memory in kibibytes. This is the default."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:64
+#, no-wrap
+msgid "B<-m>, B<--mebi>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:67
+msgid "Display the amount of memory in mebibytes."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:67
+#, no-wrap
+msgid "B<-g>, B<--gibi>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:70
+msgid "Display the amount of memory in gibibytes."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:70
+#, no-wrap
+msgid "B<--tebi>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:73
+msgid "Display the amount of memory in tebibytes."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:73
+#, no-wrap
+msgid "B<--pebi>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:76
+msgid "Display the amount of memory in pebibytes."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:76
+#, no-wrap
+msgid "B<--kilo>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:79
+msgid "Display the amount of memory in kilobytes. Implies --si."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:79
+#, no-wrap
+msgid "B<--mega>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:82
+msgid "Display the amount of memory in megabytes. Implies --si."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:82
+#, no-wrap
+msgid "B<--giga>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:85
+msgid "Display the amount of memory in gigabytes. Implies --si."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:85
+#, no-wrap
+msgid "B<--tera>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:88
+msgid "Display the amount of memory in terabytes. Implies --si."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:88
+#, no-wrap
+msgid "B<--peta>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:91
+msgid "Display the amount of memory in petabytes. Implies --si."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:91
+#, no-wrap
+msgid "B<-h>, B<--human>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:95
+msgid ""
+"Show all output fields automatically scaled to shortest three digit unit and "
+"display the units of print out. Following units are used."
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:103
+#, no-wrap
+msgid ""
+" B = bytes\n"
+" Ki = kibibyte\n"
+" Mi = mebibyte\n"
+" Gi = gibibyte\n"
+" Ti = tebibyte\n"
+" Pi = pebibyte\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:107
+msgid ""
+"If unit is missing, and you have exbibyte of RAM or swap, the number is in "
+"tebibytes and columns might not be aligned with header."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:107 ../man/vmstat.8:89
+#, no-wrap
+msgid "B<-w>, B<--wide>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:112
+msgid ""
+"Switch to the wide mode. The wide mode produces lines longer than 80 "
+"characters. In this mode B<buffers> and B<cache> are reported in two "
+"separate columns."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:112
+#, no-wrap
+msgid "B<-c>, B<--count> I<count>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:119
+msgid "Display the result I<count> times. Requires the B<-s> option."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:119
+#, no-wrap
+msgid "B<-l>, B<--lohi>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:122
+msgid "Show detailed low and high memory statistics."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:122
+#, no-wrap
+msgid "B<-L>, B<--line>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:127
+msgid ""
+"Show output on a single line, often used with the B<-s> option to show "
+"memory statistics repeatedly."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:127
+#, no-wrap
+msgid "B<-s>, B<--seconds> I<delay>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:134
+msgid ""
+"Continuously display the result I<delay> seconds apart. You may actually "
+"specify any floating point number for I<delay> using either . or , for "
+"decimal point. B<usleep>(3) is used for microsecond resolution delay times."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:134
+#, no-wrap
+msgid "B<--si>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:138
+msgid ""
+"Use kilo, mega, giga etc (power of 1000) instead of kibi, mebi, gibi (power "
+"of 1024)."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:138
+#, no-wrap
+msgid "B<-t>, B<--total>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:141
+msgid "Display a line showing the column totals."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:141
+#, no-wrap
+msgid "B<-v>, B<--committed>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:146
+msgid ""
+"Display a line showing the memory commit limit and amount of committed/"
+"uncommitted memory. The B<total> column on this line will display the memory "
+"commit limit. This line is relevant if memory overcommit is disabled."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:146 ../man/w.1:63
+#, no-wrap
+msgid "B<--help>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:149
+msgid "Print help."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:149 ../man/pgrep.1:228 ../man/pmap.1:72 ../man/pwdx.1:19
+#: ../man/skill.1:68 ../man/slabtop.1:45 ../man/sysctl.8:116 ../man/tload.1:38
+#: ../man/uptime.1:46 ../man/vmstat.8:97 ../man/w.1:72
+#, no-wrap
+msgid "B<-V>, B<--version>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:152 ../man/skill.1:71 ../man/w.1:75
+msgid "Display version information."
+msgstr ""
+
+#. type: SH
+#: ../man/free.1:153 ../man/slabtop.1:87 ../man/sysctl.8:171
+#: ../man/sysctl.conf.5:64 ../man/tload.1:42 ../man/uptime.1:49 ../man/w.1:88
+#: ../man/procps_misc.3:136
+#, no-wrap
+msgid "FILES"
+msgstr "文件"
+
+#. type: TP
+#: ../man/free.1:154
+#, no-wrap
+msgid "/proc/meminfo"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:157
+msgid "memory information"
+msgstr ""
+
+#. type: SH
+#: ../man/free.1:158 ../man/pgrep.1:301 ../man/pidof.1:69 ../man/tload.1:50
+#: ../man/watch.1:152 ../man/ps.1:2063
+#, no-wrap
+msgid "BUGS"
+msgstr "错误"
+
+#. type: Plain text
+#: ../man/free.1:161
+msgid ""
+"The value for the B<shared> column is not available from kernels before "
+"2.6.32 and is displayed as zero."
+msgstr ""
+
+#. type: TP
+#: ../man/free.1:161
+#, no-wrap
+msgid "Please send bug reports to"
+msgstr ""
+
+#. type: Plain text
+#: ../man/free.1:165
+msgid "E<.UR procps@freelists.org> E<.UE>"
+msgstr ""
+
+#. type: SH
+#: ../man/free.1:165 ../man/kill.1:88 ../man/pgrep.1:317 ../man/pidof.1:76
+#: ../man/pmap.1:90 ../man/pwdx.1:25 ../man/skill.1:109 ../man/slabtop.1:91
+#: ../man/sysctl.8:185 ../man/sysctl.conf.5:83 ../man/tload.1:45
+#: ../man/uptime.1:66 ../man/vmstat.8:191 ../man/w.1:95 ../man/ps.1:2070
+#: ../man/procps.3:182 ../man/procps_misc.3:153 ../man/procps_pids.3:207
+#, no-wrap
+msgid "SEE ALSO"
+msgstr "å‚è§"
+
+#. type: Plain text
+#: ../man/free.1:169
+msgid "B<ps>(1), B<slabtop>(1), B<top>(1), B<vmstat>(8)."
+msgstr ""
+
+#. type: TH
+#: ../man/kill.1:12
+#, no-wrap
+msgid "KILL"
+msgstr ""
+
+#. type: TH
+#: ../man/kill.1:12 ../man/pgrep.1:13 ../man/pidof.1:13
+#, no-wrap
+msgid "2023-01-16"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:15
+msgid "kill - send a signal to a process"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:18
+msgid "B<kill> [options] E<lt>pidE<gt> [...]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:34
+msgid ""
+"The default signal for kill is TERM. Use B<-l> or B<-L> to list available "
+"signals. Particularly useful signals include HUP, INT, KILL, STOP, CONT, "
+"and 0. Alternate signals may be specified in three ways: B<-9>, B<-SIGKILL> "
+"or B<-KILL>. Negative PID values may be used to choose whole process "
+"groups; see the PGID column in ps command output. A PID of B<-1> is "
+"special; it indicates all processes except the kill process itself and init."
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:35
+#, no-wrap
+msgid "B<E<lt>pidE<gt> [...]>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:38
+msgid "Send signal to every E<lt>pidE<gt> listed."
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:38
+#, no-wrap
+msgid "B<-E<lt>signalE<gt>>"
+msgstr ""
+
+#. type: TQ
+#: ../man/kill.1:40
+#, no-wrap
+msgid "B<-s E<lt>signalE<gt>>"
+msgstr ""
+
+#. type: TQ
+#: ../man/kill.1:42
+#, no-wrap
+msgid "B<--signal E<lt>signalE<gt>>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:50
+msgid ""
+"Specify the B<signal> to be sent. The signal can be specified by using name "
+"or number. The behavior of signals is explained in B<signal>(7) manual "
+"page."
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:50 ../man/pgrep.1:216
+#, no-wrap
+msgid "B<-q>, B<--queue >I<value>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:62 ../man/pgrep.1:228
+msgid ""
+"Use B<sigqueue>(3) rather than B<kill>(2) and the value argument is used "
+"to specify an integer to be sent with the signal. If the receiving process "
+"has installed a handler for this signal using the SA_SIGINFO flag to "
+"B<sigaction>(2), then it can obtain this data via the si_value field of the "
+"siginfo_t structure."
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:62
+#, no-wrap
+msgid "B<-l>, B<--list> [I<signal>]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:66
+msgid ""
+"List signal names. This option has optional argument, which will convert "
+"signal number to signal name, or other way round."
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:66 ../man/skill.1:52
+#, no-wrap
+msgid "B<-L>,B<\\ --table>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:69
+msgid "List signal names in a nice table."
+msgstr ""
+
+#. type: SH
+#: ../man/kill.1:71 ../man/pgrep.1:284 ../man/slabtop.1:96
+#: ../man/sysctl.conf.5:39 ../man/vmstat.8:185 ../man/watch.1:144
+#: ../man/ps.1:768
+#, no-wrap
+msgid "NOTES"
+msgstr "备注"
+
+#. type: Plain text
+#: ../man/kill.1:75
+msgid ""
+"Your shell (command line interpreter) may have a built-in kill command. You "
+"may need to run the command described here as /bin/kill to solve the "
+"conflict."
+msgstr ""
+
+#. type: SH
+#: ../man/kill.1:75 ../man/pgrep.1:240 ../man/skill.1:99 ../man/sysctl.8:143
+#: ../man/watch.1:191 ../man/ps.1:84
+#, no-wrap
+msgid "EXAMPLES"
+msgstr "示例"
+
+#. type: TP
+#: ../man/kill.1:76
+#, no-wrap
+msgid "B<kill -9 -1>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:79
+msgid "Kill all processes you can kill."
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:79
+#, no-wrap
+msgid "B<kill -l 11>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:82
+msgid "Translate number 11 into a signal name."
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:82
+#, no-wrap
+msgid "B<kill -L>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:85
+msgid "List the available signal choices in a nice table."
+msgstr ""
+
+#. type: TP
+#: ../man/kill.1:85
+#, no-wrap
+msgid "B<kill 123 543 2341 3453>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:88
+msgid "Send the default signal, SIGTERM, to all those processes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/kill.1:97
+msgid ""
+"B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), B<renice>(1), "
+"B<signal>(7), B<sigqueue>(3), B<skill>(1)"
+msgstr ""
+
+#. type: SH
+#: ../man/kill.1:97 ../man/pmap.1:93 ../man/pwdx.1:28 ../man/skill.1:117
+#: ../man/ps.1:2076
+#, no-wrap
+msgid "STANDARDS"
+msgstr "标准"
+
+#. type: Plain text
+#: ../man/kill.1:101
+msgid ""
+"This command meets appropriate standards. The B<-L> flag is Linux-specific."
+msgstr ""
+
+#. type: SH
+#: ../man/kill.1:101 ../man/pgrep.1:327 ../man/pidof.1:79 ../man/pwdx.1:32
+#: ../man/skill.1:119 ../man/sysctl.8:189 ../man/sysctl.conf.5:85
+#: ../man/ps.1:2093
+#, no-wrap
+msgid "AUTHOR"
+msgstr "作者"
+
+#. type: Plain text
+#: ../man/kill.1:107
+msgid ""
+"E<.UR albert@users.sf.net> Albert Cahalan E<.UE> wrote kill in 1999 to "
+"replace a bsdutils one that was not standards compliant. The util-linux one "
+"might also work correctly."
+msgstr ""
+
+#. type: SH
+#: ../man/kill.1:107 ../man/pgrep.1:331 ../man/pmap.1:97 ../man/pwdx.1:37
+#: ../man/skill.1:125 ../man/slabtop.1:120 ../man/sysctl.8:193
+#: ../man/sysctl.conf.5:89 ../man/tload.1:66 ../man/uptime.1:71
+#: ../man/vmstat.8:199 ../man/w.1:112 ../man/watch.1:229
+#, no-wrap
+msgid "REPORTING BUGS"
+msgstr "报告缺陷"
+
+#. type: Plain text
+#: ../man/kill.1:110 ../man/pgrep.1:334 ../man/pmap.1:100 ../man/pwdx.1:40
+#: ../man/skill.1:128 ../man/slabtop.1:123 ../man/sysctl.8:196
+#: ../man/sysctl.conf.5:92 ../man/tload.1:69 ../man/uptime.1:74
+#: ../man/vmstat.8:202 ../man/w.1:115 ../man/watch.1:232
+msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE>"
+msgstr ""
+
+#. type: TH
+#: ../man/pgrep.1:13
+#, no-wrap
+msgid "PGREP"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:16
+msgid ""
+"pgrep, pkill, pidwait - look up, signal, or wait for processes based on name "
+"and other attributes"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:19
+msgid "B<pgrep> [options] pattern"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:22
+msgid "B<pkill> [options] pattern"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:25
+msgid "B<pidwait> [options] pattern"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:30
+msgid ""
+"B<pgrep> looks through the currently running processes and lists the process "
+"IDs which match the selection criteria to stdout. All the criteria have to "
+"match. For example,"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:32
+msgid "$ pgrep -u root sshd"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:38
+msgid ""
+"will only list the processes called B<sshd> AND owned by B<root>. On the "
+"other hand,"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:40
+msgid "$ pgrep -u root,daemon"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:45
+msgid "will list the processes owned by B<root> OR B<daemon>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:50
+msgid ""
+"B<pkill> will send the specified signal (by default B<SIGTERM>) to each "
+"process instead of listing them on stdout."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:53
+msgid ""
+"B<pidwait> will wait for each process instead of listing them on stdout."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:54
+#, no-wrap
+msgid "B<->I<signal>"
+msgstr ""
+
+#. type: TQ
+#: ../man/pgrep.1:56
+#, no-wrap
+msgid "B<--signal> I<signal>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:66
+msgid ""
+"Defines the signal to send to each matched process. Either the numeric or "
+"the symbolic signal name can be used. In B<pgrep> or B<pidwait> mode only "
+"the long option can be used and has no effect unless used in conjunction "
+"with B<--require-handler> to filter to processes with a userspace signal "
+"handler present for a particular signal."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:67
+#, no-wrap
+msgid "B<-c>, B<--count>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:74
+msgid ""
+"Suppress normal output; instead print a count of matching processes. When "
+"count does not match anything, e.g. returns zero, the command will return "
+"non-zero value. Note that for pkill and pidwait, the count is the number of "
+"matching processes, not the processes that were successfully signaled or "
+"waited for."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:74
+#, no-wrap
+msgid "B<-d>, B<--delimiter> I<delimiter>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:80
+msgid ""
+"Sets the string used to delimit each process ID in the output (by default a "
+"newline). (B<pgrep> only.)"
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:80
+#, no-wrap
+msgid "B<-e>, B<--echo>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:85
+msgid "Display name and PID of the process being killed. (B<pkill> only.)"
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:85
+#, no-wrap
+msgid "B<-f>, B<--full>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:92
+msgid ""
+"The I<pattern> is normally only matched against the process name. When B<-"
+"f> is set, the full command line is used."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:92
+#, no-wrap
+msgid "B<-g>, B<--pgroup> I<pgrp>,..."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:101
+msgid ""
+"Only match processes in the process group IDs listed. Process group 0 is "
+"translated into B<pgrep>'s, B<pkill>'s, or B<pidwait>'s own process group."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:101
+#, no-wrap
+msgid "B<-G>, B<--group> I<gid>,..."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:105
+msgid ""
+"Only match processes whose real group ID is listed. Either the numerical or "
+"symbolical value may be used."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:105
+#, no-wrap
+msgid "B<-i>, B<--ignore-case>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:108
+msgid "Match processes case-insensitively."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:108
+#, no-wrap
+msgid "B<-l>, B<--list-name>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:113
+msgid "List the process name as well as the process ID. (B<pgrep> only.)"
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:113
+#, no-wrap
+msgid "B<-a>, B<--list-full>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:118
+msgid "List the full command line as well as the process ID. (B<pgrep> only.)"
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:118
+#, no-wrap
+msgid "B<-n>, B<--newest>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:121
+msgid ""
+"Select only the newest (most recently started) of the matching processes."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:121
+#, no-wrap
+msgid "B<-o>, B<--oldest>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:124
+msgid ""
+"Select only the oldest (least recently started) of the matching processes."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:124
+#, no-wrap
+msgid "B<-O>, B<--older> I<secs>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:127
+msgid "Select processes older than secs."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:127
+#, no-wrap
+msgid "B<-P>, B<--parent> I<ppid>,..."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:130
+msgid "Only match processes whose parent process ID is listed."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:130
+#, no-wrap
+msgid "B<-s>, B<--session> I<sid>,..."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:139
+msgid ""
+"Only match processes whose process session ID is listed. Session ID 0 is "
+"translated into B<pgrep>'s, B<pkill>'s, or B<pidwait>'s own session ID."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:139
+#, no-wrap
+msgid "B<-t>, B<--terminal> I<term>,..."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:143
+msgid ""
+"Only match processes whose controlling terminal is listed. The terminal "
+"name should be specified without the \"/dev/\" prefix."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:143
+#, no-wrap
+msgid "B<-u>, B<--euid> I<euid>,..."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:147
+msgid ""
+"Only match processes whose effective user ID is listed. Either the "
+"numerical or symbolical value may be used."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:147
+#, no-wrap
+msgid "B<-U>, B<--uid> I<uid>,..."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:151
+msgid ""
+"Only match processes whose real user ID is listed. Either the numerical or "
+"symbolical value may be used."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:151
+#, no-wrap
+msgid "B<-v>, B<--inverse>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:160
+msgid ""
+"Negates the matching. This option is usually used in B<pgrep>'s or "
+"B<pidwait>'s context. In B<pkill>'s context the short option is disabled to "
+"avoid accidental usage of the option."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:160
+#, no-wrap
+msgid "B<-w>, B<--lightweight>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:169
+msgid ""
+"Shows all thread ids instead of pids in B<pgrep>'s or B<pidwait>'s context. "
+"In B<pkill>'s context this option is disabled."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:169
+#, no-wrap
+msgid "B<-x>, B<--exact>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:175
+msgid ""
+"Only match processes whose names (or command lines if B<-f> is specified) "
+"B<exactly> match the I<pattern>."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:175
+#, no-wrap
+msgid "B<-F>, B<--pidfile> I<file>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:183
+msgid ""
+"Read I<PID>s from I<file>. This option is more useful for B<pkill> or "
+"B<pidwait> than B<pgrep>."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:183
+#, no-wrap
+msgid "B<-L>, B<--logpidfile>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:186
+msgid "Fail if pidfile (see B<-F>) not locked."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:186
+#, no-wrap
+msgid "B<-r>, B<--runstates> I<D,R,S,Z,>..."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:189
+msgid "Match only processes which match the process state."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:189
+#, no-wrap
+msgid "B<-A>, B<--ignore-ancestors>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:199
+msgid ""
+"Ignore all ancestors of B<pgrep>, B<pkill>, or B<pidwait>. For example, "
+"this can be useful when elevating with B<sudo> or similar tools."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:199
+#, no-wrap
+msgid "B<-H>, B<--require-handler>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:203
+msgid ""
+"Only match processes with a userspace signal handler present for the signal "
+"to be sent."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:203
+#, no-wrap
+msgid "B<--cgroup >I<name>B<,...>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:207
+msgid "Match on provided control group (cgroup) v2 name. See B<cgroups>(8)"
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:207 ../man/skill.1:87
+#, no-wrap
+msgid "B<--ns >I<pid>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:212
+msgid ""
+"Match processes that belong to the same namespaces. Required to run as root "
+"to match processes from other users. See B<--nslist> for how to limit which "
+"namespaces to match."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:212
+#, no-wrap
+msgid "B<--nslist >I<name>B<,...>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:216
+msgid ""
+"Match only the provided namespaces. Available namespaces: ipc, mnt, net, "
+"pid, user, uts."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:231 ../man/pmap.1:75 ../man/slabtop.1:48 ../man/sysctl.8:119
+#: ../man/tload.1:41 ../man/vmstat.8:100 ../man/watch.1:100
+msgid "Display version information and exit."
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:231 ../man/pmap.1:69 ../man/pwdx.1:22 ../man/skill.1:65
+#: ../man/slabtop.1:48 ../man/sysctl.8:113 ../man/tload.1:35 ../man/uptime.1:40
+#: ../man/vmstat.8:100 ../man/watch.1:94
+#, no-wrap
+msgid "B<-h>, B<--help>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:234 ../man/vmstat.8:103
+msgid "Display help and exit."
+msgstr ""
+
+#. type: SH
+#: ../man/pgrep.1:235
+#, no-wrap
+msgid "OPERANDS"
+msgstr ""
+
+#. type: TP
+#: ../man/pgrep.1:236
+#, no-wrap
+msgid "I<pattern>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:240
+msgid ""
+"Specifies an Extended Regular Expression for matching against the process "
+"names or command lines."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:244
+msgid "Example 1: Find the process ID of the B<named> daemon:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:246
+msgid "$ pgrep -u root named"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:250
+msgid "Example 2: Make B<syslog> reread its configuration file:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:252
+msgid "$ pkill -HUP syslogd"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:256
+msgid "Example 3: Give detailed information on all B<xterm> processes:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:258
+msgid "$ ps -fp $(pgrep -d, -x xterm)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:262
+msgid "Example 4: Make all B<chrome> processes run nicer:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:264
+msgid "$ renice +4 $(pgrep chrome)"
+msgstr ""
+
+#. type: SH
+#: ../man/pgrep.1:264 ../man/pidof.1:61 ../man/pmap.1:75 ../man/watch.1:100
+#, no-wrap
+msgid "EXIT STATUS"
+msgstr "退出状æ€"
+
+#. type: TP
+#: ../man/pgrep.1:266
+#, no-wrap
+msgid "0"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:274
+msgid ""
+"One or more processes matched the criteria. For B<pkill> and B<pidwait>, one "
+"or more processes must also have been successfully signalled or waited for."
+msgstr ""
+
+#. type: IP
+#: ../man/pgrep.1:274 ../man/ps.1:43 ../man/ps.1:818 ../man/ps.1:2082
+#, no-wrap
+msgid "1"
+msgstr "1"
+
+#. type: Plain text
+#: ../man/pgrep.1:277
+msgid "No processes matched or none of them could be signalled."
+msgstr ""
+
+#. type: IP
+#: ../man/pgrep.1:277 ../man/ps.1:45 ../man/ps.1:2084
+#, no-wrap
+msgid "2"
+msgstr "2"
+
+#. type: Plain text
+#: ../man/pgrep.1:280
+msgid "Syntax error in the command line."
+msgstr ""
+
+#. type: IP
+#: ../man/pgrep.1:280 ../man/ps.1:47 ../man/ps.1:2086
+#, no-wrap
+msgid "3"
+msgstr "3"
+
+#. type: Plain text
+#: ../man/pgrep.1:283
+msgid "Fatal error: out of memory etc."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:289
+msgid ""
+"The process name used for matching is limited to the 15 characters present "
+"in the output of /proc/I<pid>/stat. Use the B<-f> option to match against "
+"the complete command line, /proc/I<pid>/cmdline. Threads may not have the "
+"same process name as the parent process but will have the same command line."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:297
+msgid ""
+"The running B<pgrep>, B<pkill>, or B<pidwait> process will never report "
+"itself as a match."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:301
+msgid ""
+"The B<-O --older> option will silently fail if I</proc> is mounted with the "
+"I<subset=pid> option."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:310
+msgid ""
+"The options B<-n> and B<-o> and B<-v> can not be combined. Let me know if "
+"you need to do this."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:312
+msgid "Defunct processes are reported."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:317
+msgid ""
+"B<pidwait> requires the B<pidfd_open>(2) system call which first appeared "
+"in Linux 5.3."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:327
+msgid ""
+"B<ps>(1), B<regex>(7), B<signal>(7), B<sigqueue>(3), B<killall>(1), "
+"B<skill>(1), B<kill>(1), B<kill>(2), B<cgroups>(8)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pgrep.1:331
+msgid "E<.UR kjetilho@ifi.uio.no> Kjetil Torgrim Homme E<.UE>"
+msgstr ""
+
+#. type: TH
+#: ../man/pidof.1:13
+#, no-wrap
+msgid "PIDOF"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:16
+msgid "pidof - find the process ID of a running program"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:30
+msgid ""
+"B<pidof> [B<-s>] [B<-c>] [B<-q>] [B<-w>] [B<-x>] [B<-o> I<omitpid[,"
+"omitpid...]...>] [B<-t>] [B<-S> I<separator>] I<program> I<[>B<program..."
+">I<]>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:34
+msgid ""
+"B<Pidof> finds the process id's (pids) of the named programs. It prints "
+"those id's on the standard output."
+msgstr ""
+
+#. type: IP
+#: ../man/pidof.1:35
+#, no-wrap
+msgid "B<-s>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:37
+msgid "Single shot - this instructs the program to only return one I<pid>."
+msgstr ""
+
+#. type: TP
+#: ../man/pidof.1:37 ../man/ps.1:409
+#, no-wrap
+msgid "B<-c>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:41
+msgid ""
+"Only return process ids that are running with the same root directory. This "
+"option is ignored for non-root users, as they will be unable to check the "
+"current root directory of processes they do not own."
+msgstr ""
+
+#. type: IP
+#: ../man/pidof.1:41
+#, no-wrap
+msgid "B<-q>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:43
+msgid ""
+"Quiet mode, suppress any output and only sets the exit status accordingly."
+msgstr ""
+
+#. type: TP
+#: ../man/pidof.1:43 ../man/ps.1:718
+#, no-wrap
+msgid "B<-w>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:46
+msgid ""
+"Show also processes that do not have visible command line (e.g. kernel "
+"worker threads)."
+msgstr ""
+
+#. type: TP
+#: ../man/pidof.1:46 ../man/sysctl.8:110
+#, no-wrap
+msgid "B<-x>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:49
+msgid ""
+"Scripts too - this causes the program to also return process id's of shells "
+"running the named scripts."
+msgstr ""
+
+#. type: IP
+#: ../man/pidof.1:49
+#, no-wrap
+msgid "B<-o> I<omitpid>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:53
+msgid ""
+"Tells B<pidof> to omit processes with that process id. The special pid "
+"B<%PPID> can be used to name the parent process of the B<pidof> program, in "
+"other words the calling shell or shell script."
+msgstr ""
+
+#. type: IP
+#: ../man/pidof.1:53
+#, no-wrap
+msgid "B<-t>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:55
+msgid "Shows all thread ids instead of pids."
+msgstr ""
+
+#. type: IP
+#: ../man/pidof.1:55
+#, no-wrap
+msgid "B<-S> I<separator>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:61
+msgid ""
+"Use I<separator> as a separator put between pids. Used only when more than "
+"one pids are printed for the program. The B<-d> option is an alias for this "
+"option for sysvinit B<pidof> compatibility."
+msgstr ""
+
+#. type: TP
+#: ../man/pidof.1:62 ../man/pmap.1:79 ../man/watch.1:104
+#, no-wrap
+msgid "B<0>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:65
+msgid "At least one program was found with the requested name."
+msgstr ""
+
+#. type: TP
+#: ../man/pidof.1:65 ../man/pmap.1:82 ../man/watch.1:107
+#, no-wrap
+msgid "B<1>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:68
+msgid "No program was found with the requested name."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:75
+msgid ""
+"When using the B<-x> option, B<pidof> only has a simple method for detecting "
+"scripts and will miss scripts that, for example, use env. This limitation is "
+"due to how the scripts look in the proc filesystem."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:79
+msgid "B<pgrep>(1), B<pkill>(1)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pidof.1:82
+msgid "E<.UR jcapik@redhat.com> Jaromir Capik E<.UE>"
+msgstr ""
+
+#. type: TH
+#: ../man/pmap.1:19
+#, no-wrap
+msgid "PMAP"
+msgstr ""
+
+#. type: TH
+#: ../man/pmap.1:19 ../man/pwdx.1:12 ../man/tload.1:12
+#, no-wrap
+msgid "2020-06-04"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:22
+msgid "pmap - report memory map of a process"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:25
+msgid "B<pmap> [I<options>] I<pid> [...]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:29
+msgid "The B<pmap> command reports the memory map of a process or processes."
+msgstr ""
+
+#. type: TP
+#: ../man/pmap.1:30
+#, no-wrap
+msgid "B<-x>, B<--extended>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:33
+msgid "Show the extended format."
+msgstr ""
+
+#. type: TP
+#: ../man/pmap.1:33
+#, no-wrap
+msgid "B<-d>, B<--device>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:36
+msgid "Show the device format."
+msgstr ""
+
+#. type: TP
+#: ../man/pmap.1:36 ../man/sysctl.8:57
+#, no-wrap
+msgid "B<-q>, B<--quiet>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:39
+msgid "Do not display some header or footer lines."
+msgstr ""
+
+#. type: TP
+#: ../man/pmap.1:39
+#, no-wrap
+msgid "B<-A>, B<--range> I<low>,I<high>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:47
+msgid ""
+"Limit results to the given range to I<low> and I<high> address range. "
+"Notice that the low and high arguments are single string separated with "
+"comma."
+msgstr ""
+
+#. type: TP
+#: ../man/pmap.1:47 ../man/sysctl.8:104
+#, no-wrap
+msgid "B<-X>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:51
+msgid ""
+"Show even more details than the B<-x> option. WARNING: format changes "
+"according to I</proc/PID/smaps>"
+msgstr ""
+
+#. type: TP
+#: ../man/pmap.1:51
+#, no-wrap
+msgid "B<-XX>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:54
+msgid "Show everything the kernel provides"
+msgstr ""
+
+#. type: TP
+#: ../man/pmap.1:54
+#, no-wrap
+msgid "B<-p>, B<--show-path>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:57
+msgid "Show full path to files in the mapping column"
+msgstr ""
+
+#. type: TP
+#: ../man/pmap.1:57
+#, no-wrap
+msgid "B<-c>, B<--read-rc>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:60
+msgid "Read the default configuration"
+msgstr ""
+
+#. type: TP
+#: ../man/pmap.1:60
+#, no-wrap
+msgid "B<-C>, B<--read-rc-from> I<file>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:63
+msgid "Read the configuration from I<file>"
+msgstr ""
+
+#. type: TP
+#: ../man/pmap.1:63
+#, no-wrap
+msgid "B<-n>, B<--create-rc>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:66
+msgid "Create new default configuration"
+msgstr ""
+
+#. type: TP
+#: ../man/pmap.1:66
+#, no-wrap
+msgid "B<-N>, B<--create-rc-to> I<file>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:69
+msgid "Create new configuration to I<file>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:72 ../man/skill.1:68 ../man/sysctl.8:116 ../man/w.1:66
+#: ../man/watch.1:97
+msgid "Display help text and exit."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:82 ../man/watch.1:107
+msgid "Success."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:85
+msgid "Failure."
+msgstr ""
+
+#. type: TP
+#: ../man/pmap.1:85
+#, no-wrap
+msgid "B<42>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:88
+msgid "Did not find all processes asked for."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:93 ../man/pwdx.1:28
+msgid "B<ps>(1), B<pgrep>(1)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pmap.1:97
+msgid ""
+"No standards apply, but B<pmap> looks an awful lot like a SunOS command."
+msgstr ""
+
+#. type: TH
+#: ../man/pwdx.1:12
+#, no-wrap
+msgid "PWDX"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pwdx.1:15
+msgid "pwdx - report current working directory of a process"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pwdx.1:18
+msgid "B<pwdx> [I<options>] I<pid> [...]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/pwdx.1:22
+msgid "Output version information and exit."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pwdx.1:25
+msgid "Output help screen and exit."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pwdx.1:32
+msgid ""
+"No standards apply, but B<pwdx> looks an awful lot like a SunOS command."
+msgstr ""
+
+#. type: Plain text
+#: ../man/pwdx.1:37
+msgid "E<.UR nmiell@gmail.com> Nicholas Miell E<.UE> wrote pwdx in 2004."
+msgstr ""
+
+#. type: TH
+#: ../man/skill.1:12
+#, no-wrap
+msgid "SKILL"
+msgstr ""
+
+#. type: TH
+#: ../man/skill.1:12 ../man/sysctl.8:14 ../man/ps.1:13
+#, no-wrap
+msgid "2023-08-19"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:15
+msgid "skill, snice - send a signal or report process status"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:20
+msgid "B<skill> [I<signal>] [I<options>] I<expression>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:25
+msgid "B<snice> [I<new priority>] [I<options>] I<expression>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:33
+msgid ""
+"These tools are obsolete and unportable. The command syntax is poorly "
+"defined. Consider using the B<killall>, B<pkill>, and B<pgrep> commands "
+"instead."
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:38
+msgid ""
+"The default signal for B<skill> is TERM. Use B<-l> or B<-L> to list "
+"available signals. Particularly useful signals include HUP, INT, KILL, "
+"STOP, CONT, and 0. Alternate signals may be specified in three ways: B<-9> "
+"B<-SIGKILL> B<-KILL>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:42
+msgid ""
+"The default priority for B<snice> is +4. Priority numbers range from +20 "
+"(slowest) to -20 (fastest). Negative priority numbers are restricted to "
+"administrative users."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:43
+#, no-wrap
+msgid "B<-f>,B<\\ --fast>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:46
+msgid "Fast mode. This option has not been implemented."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:46
+#, no-wrap
+msgid "B<-i>,B<\\ --interactive>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:49
+msgid "Interactive use. You will be asked to approve each action."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:49
+#, no-wrap
+msgid "B<-l>,B<\\ --list>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:52
+msgid "List all signal names."
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:55
+msgid "List all signal names in a nice table."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:55
+#, no-wrap
+msgid "B<-n>,B<\\ --no-action>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:59
+msgid ""
+"No action; perform a simulation of events that would occur but do not "
+"actually change the system."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:59
+#, no-wrap
+msgid "B<-v>,B<\\ --verbose>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:62
+msgid "Verbose; explain what is being done."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:62
+#, no-wrap
+msgid "B<-w>,B<\\ --warnings>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:65
+msgid "Enable warnings. This option has not been implemented."
+msgstr ""
+
+#. type: SH
+#: ../man/skill.1:72
+#, no-wrap
+msgid "PROCESS SELECTION OPTIONS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:75
+msgid ""
+"Selection criteria can be: terminal, user, pid, command. The options below "
+"may be used to ensure correct interpretation."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:75
+#, no-wrap
+msgid "B<-t>, B<--tty> I<tty>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:78
+msgid "The next expression is a terminal (tty or pty)."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:78
+#, no-wrap
+msgid "B<-u>, B<--user> I<user>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:81
+msgid "The next expression is a username."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:81
+#, no-wrap
+msgid "B<-p>, B<--pid> I<pid>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:84
+msgid "The next expression is a process ID number."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:84
+#, no-wrap
+msgid "B<-c>, B<--command> I<command>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:87
+msgid "The next expression is a command name."
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:90
+msgid "Match the processes that belong to the same namespace as pid."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:90
+#, no-wrap
+msgid "B<--nslist >I<ns\\/>,\\,I<...\\/>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:94
+msgid ""
+"list which namespaces will be considered for the B<--ns> option. Available "
+"namespaces: ipc, mnt, net, pid, user, uts."
+msgstr ""
+
+#. type: SH
+#: ../man/skill.1:95
+#, no-wrap
+msgid "SIGNALS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:99
+msgid "The behavior of signals is explained in B<signal>(7) manual page."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:100
+#, no-wrap
+msgid "B<snice -c seti -c crack +7>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:103
+msgid "+Slow down B<seti> and B<crack> commands."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:103
+#, no-wrap
+msgid "B<skill -KILL -t /dev/pts/*>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:106
+msgid "Kill users on PTY devices."
+msgstr ""
+
+#. type: TP
+#: ../man/skill.1:106
+#, no-wrap
+msgid "B<skill -STOP -u viro -u lm -u davem>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:109
+msgid "Stop three users."
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:117
+msgid ""
+"B<kill>(1), B<kill>(2), B<killall>(1), B<nice>(1), B<pkill>(1), "
+"B<renice>(1), B<signal>(7)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:119
+msgid "No standards apply."
+msgstr ""
+
+#. type: Plain text
+#: ../man/skill.1:125
+msgid ""
+"E<.MT albert@users.sf.net> Albert Cahalan E<.ME> wrote skill and snice in "
+"1999 as a replacement for a non-free version."
+msgstr ""
+
+#. type: TH
+#: ../man/slabtop.1:14
+#, no-wrap
+msgid "SLABTOP"
+msgstr ""
+
+#. type: TH
+#: ../man/slabtop.1:14
+#, no-wrap
+msgid "2021-03-11"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:17
+msgid "slabtop - display kernel slab cache information in real time"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:20
+msgid "B<slabtop> [I<options>]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:25
+msgid ""
+"B<slabtop> displays detailed kernel slab cache information in real time. It "
+"displays a listing of the top caches sorted by one of the listed sort "
+"criteria. It also displays a statistics header filled with slab layer "
+"information."
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:30
+msgid ""
+"Normal invocation of B<slabtop> does not require any options. The behavior, "
+"however, can be fine-tuned by specifying one or more of the following flags:"
+msgstr ""
+
+#. type: TP
+#: ../man/slabtop.1:30
+#, no-wrap
+msgid "B<-d>, B<--delay>=I<N>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:39
+msgid ""
+"Refresh the display every I<n> in seconds. By default, B<slabtop> refreshes "
+"the display every three seconds. To exit the program, hit B<q>. This "
+"cannot be combined with the B<-o> option."
+msgstr ""
+
+#. type: TP
+#: ../man/slabtop.1:39
+#, no-wrap
+msgid "B<-s>, B<--sort>=I<S>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:42
+msgid "Sort by I<S>, where I<S> is one of the sort criteria."
+msgstr ""
+
+#. type: TP
+#: ../man/slabtop.1:42
+#, no-wrap
+msgid "B<-o>, B<--once>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:45
+msgid "Display the output once and then exit."
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:51
+msgid "Display usage information and exit."
+msgstr ""
+
+#. type: SH
+#: ../man/slabtop.1:51
+#, no-wrap
+msgid "SORT CRITERIA"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:55
+msgid ""
+"The following are valid sort criteria used to sort the individual slab "
+"caches and thereby determine what are the \"top\" slab caches to display. "
+"The default sort criteria is to sort by the number of objects (\"o\")."
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:59
+msgid ""
+"The sort criteria can also be changed while B<slabtop> is running by "
+"pressing the associated character."
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<character>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<description>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:61
+#, no-wrap
+msgid "B<header>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "a"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "number of active objects"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:62
+#, no-wrap
+msgid "ACTIVE"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "b"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "objects per slab"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:63
+#, no-wrap
+msgid "OBJ/SLAB"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:64 ../man/ps.1:909 ../man/ps.1:1081
+#, no-wrap
+msgid "c"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:64
+#, no-wrap
+msgid "cache size"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:64
+#, no-wrap
+msgid "CACHE SIZE"
+msgstr ""
+
+#. type: TP
+#: ../man/slabtop.1:65 ../man/ps.1:882
+#, no-wrap
+msgid "l"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:65
+#, no-wrap
+msgid "number of slabs"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:65
+#, no-wrap
+msgid "SLABS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:66 ../man/ps.1:932
+#, no-wrap
+msgid "v"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:66
+#, no-wrap
+msgid "number of active slabs"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:66 ../man/slabtop.1:69
+#, no-wrap
+msgid "N/A"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:67 ../man/ps.1:919
+#, no-wrap
+msgid "n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:67
+#, no-wrap
+msgid "name"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:67
+#, fuzzy, no-wrap
+#| msgid "NAME"
+msgid "NAME\\:"
+msgstr "å称"
+
+#. type: tbl table
+#: ../man/slabtop.1:68 ../man/ps.1:921
+#, no-wrap
+msgid "o"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:68
+#, no-wrap
+msgid "number of objects"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:68
+#, no-wrap
+msgid "OBJS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:69 ../man/ps.1:922
+#, no-wrap
+msgid "p"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:69
+#, no-wrap
+msgid "pages per slab"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:70 ../man/ps.1:879 ../man/ps.1:926 ../man/ps.1:1631
+#, no-wrap
+msgid "s"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:70
+#, no-wrap
+msgid "object size"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:70
+#, no-wrap
+msgid "OBJ SIZE"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:71 ../man/ps.1:931
+#, no-wrap
+msgid "u"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:71
+#, no-wrap
+msgid "cache utilization"
+msgstr ""
+
+#. type: tbl table
+#: ../man/slabtop.1:71
+#, no-wrap
+msgid "USE"
+msgstr ""
+
+#. type: SH
+#: ../man/slabtop.1:73
+#, no-wrap
+msgid "COMMANDS"
+msgstr "命令"
+
+#. type: Plain text
+#: ../man/slabtop.1:77
+msgid ""
+"B<slabtop> accepts keyboard commands from the user during use. The "
+"following are supported. In the case of letters, both cases are accepted."
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:81
+msgid ""
+"Each of the valid sort characters are also accepted, to change the sort "
+"routine. See the section B<SORT CRITERIA>."
+msgstr ""
+
+#. type: TP
+#: ../man/slabtop.1:81
+#, no-wrap
+msgid "B<E<lt>SPACEBARE<gt>>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:84
+msgid "Refresh the screen."
+msgstr ""
+
+#. type: TP
+#: ../man/slabtop.1:84
+#, no-wrap
+msgid "B<Q>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:87
+msgid "Quit the program."
+msgstr ""
+
+#. type: TP
+#: ../man/slabtop.1:88
+#, no-wrap
+msgid "I</proc/slabinfo>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:91
+msgid "slab information"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:96
+msgid "B<free>(1), B<ps>(1), B<top>(1), B<vmstat>(8)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:102
+msgid ""
+"Currently, B<slabtop> requires a 2.4 or later kernel (specifically, a "
+"version 1.1 or later I</proc/slabinfo>). Kernel 2.2 should be supported in "
+"the future."
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:108
+msgid ""
+"The B<slabtop> statistic header is tracking how many bytes of slabs are "
+"being used and is not a measure of physical memory. The 'Slab' field in the "
+"I</proc/meminfo> file is tracking information about used slab physical "
+"memory."
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:114
+msgid ""
+"The B<CACHE SIZE> column is not accurate, it's the upper limit of memory "
+"used by specific slab. When system using slub (most common case) is under "
+"high memory pressure, there are slab order fallbacks, which means \"pages "
+"per slab\" is not constant and may decrease."
+msgstr ""
+
+#. type: SH
+#: ../man/slabtop.1:114 ../man/tload.1:58 ../man/uptime.1:56 ../man/w.1:102
+#, no-wrap
+msgid "AUTHORS"
+msgstr "作者"
+
+#. type: Plain text
+#: ../man/slabtop.1:116
+msgid "Written by Chris Rivera and Robert Love."
+msgstr ""
+
+#. type: Plain text
+#: ../man/slabtop.1:120
+msgid "B<slabtop> was inspired by Martin Bligh's perl script, B<vmtop>."
+msgstr ""
+
+#. type: TH
+#: ../man/sysctl.8:14
+#, no-wrap
+msgid "SYSCTL"
+msgstr ""
+
+#. type: TH
+#: ../man/sysctl.8:14 ../man/vmstat.8:13
+#, no-wrap
+msgid "System Administration"
+msgstr "系统管ç†"
+
+#. type: Plain text
+#: ../man/sysctl.8:17
+msgid "sysctl - configure kernel parameters at runtime"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:20
+msgid "B<sysctl> [I<options>] [I<variable>[B<=>I<value>]] [...]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:23
+msgid "B<sysctl -p> [I<file> or I<regexp>] [...]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:31
+msgid ""
+"B<sysctl> is used to modify kernel parameters at runtime. The parameters "
+"available are those listed under I</proc/sys/>. Procfs is required for "
+"B<sysctl> support in Linux. You can use B<sysctl> to both read and write "
+"sysctl data."
+msgstr ""
+
+#. type: SH
+#: ../man/sysctl.8:31
+#, no-wrap
+msgid "PARAMETERS"
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:32
+#, no-wrap
+msgid "I<variable>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:36
+msgid ""
+"The name of a key to read from. An example is kernel.ostype. The '/' "
+"separator is also accepted in place of a '.'."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:36
+#, no-wrap
+msgid "I<variable>=I<value>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:47
+msgid ""
+"To set a key, use the form I<variable>=I<value> where I<variable> is the key "
+"and I<value> is the value to set it to. If the value contains quotes or "
+"characters which are parsed by the shell, you may need to enclose the value "
+"in double quotes."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:47
+#, no-wrap
+msgid "B<-n>, B<--values>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:50
+msgid ""
+"Use this option to disable printing of the key name when printing values."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:50
+#, no-wrap
+msgid "B<-e>, B<--ignore>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:53
+msgid "Use this option to ignore errors about unknown keys."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:53
+#, no-wrap
+msgid "B<-N>, B<--names>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:57
+msgid ""
+"Use this option to only print the names. It may be useful with shells that "
+"have programmable completion."
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:60
+msgid "Use this option to not display the values set to stdout."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:60
+#, no-wrap
+msgid "B<-w>, B<--write>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:64
+msgid ""
+"Force all arguments to be write arguments and print an error if they cannot "
+"be parsed this way."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:64
+#, no-wrap
+msgid "B<-p>[I<FILE>], B<--load>[=I<FILE>]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:72
+msgid ""
+"Load in B<sysctl> settings from the file specified or I</etc/sysctl.conf> if "
+"none given. Specifying - as filename means reading data from standard "
+"input. Using this option will mean arguments to B<sysctl> are files, which "
+"are read in the order they are specified. The file argument may be "
+"specified as regular expression."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:72
+#, no-wrap
+msgid "B<-a>, B<--all>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:75
+msgid "Display all values currently available."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:75
+#, no-wrap
+msgid "B<--deprecated>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:80
+msgid "Include deprecated parameters to B<--all> values listing."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:80
+#, no-wrap
+msgid "B<-b>, B<--binary>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:83
+msgid "Print value without new line."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:83
+#, no-wrap
+msgid "B<--system>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:88
+msgid ""
+"Load settings from all system configuration files. See the B<SYSTEM FILE "
+"PRECEDENCE> section below."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:88
+#, no-wrap
+msgid "B<-r>, B<--pattern> I<pattern>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:95
+msgid ""
+"Only apply settings that match I<pattern>. The I<pattern> uses extended "
+"regular expression syntax."
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:95 ../man/ps.1:147
+#, no-wrap
+msgid "B<-A>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:98 ../man/sysctl.8:107
+msgid "Alias of B<-a>"
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:98 ../man/ps.1:156
+#, no-wrap
+msgid "B<-d>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:101
+msgid "Alias of B<-h>"
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:101 ../man/ps.1:417
+#, no-wrap
+msgid "B<-f>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:104
+msgid "Alias of B<-p>"
+msgstr ""
+
+#. type: TP
+#: ../man/sysctl.8:107
+#, no-wrap
+msgid "B<-o>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:110 ../man/sysctl.8:113
+msgid "Does nothing, exists for BSD compatibility."
+msgstr ""
+
+#. type: SH
+#: ../man/sysctl.8:119
+#, no-wrap
+msgid "SYSTEM FILE PRECEDENCE"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:125
+msgid ""
+"When using the B<--system> option, B<sysctl> will read files from "
+"directories in the following list in given order from top to bottom. Once a "
+"file of a given filename is loaded, any file of the same name in subsequent "
+"directories is ignored."
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:127
+msgid "/etc/sysctl.d/*.conf"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:129
+msgid "/run/sysctl.d/*.conf"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:131
+msgid "/usr/local/lib/sysctl.d/*.conf"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:133
+msgid "/usr/lib/sysctl.d/*.conf"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:135
+msgid "/lib/sysctl.d/*.conf"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:137
+msgid "/etc/sysctl.conf"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:143
+msgid ""
+"All configuration files are sorted in lexicographic order, regardless of the "
+"directory they reside in. Configuration files can either be completely "
+"replaced (by having a new configuration file with the same name in a "
+"directory of higher priority) or partially replaced (by having a "
+"configuration file that is ordered later)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:145
+msgid "/sbin/sysctl -a"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:147
+msgid "/sbin/sysctl -n kernel.hostname"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:149
+msgid "/sbin/sysctl -w kernel.domainname=\"example.com\""
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:151
+msgid "/sbin/sysctl -p/etc/sysctl.conf"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:153
+msgid "/sbin/sysctl -a --pattern forward"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:155
+msgid "/sbin/sysctl -a --pattern forward$"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:157
+msgid "/sbin/sysctl -a --pattern 'net.ipv4.conf.(eth|wlan)0.arp'"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:159
+msgid "/sbin/sysctl --pattern '\\[char94]net.ipv6' --system"
+msgstr ""
+
+#. type: SH
+#: ../man/sysctl.8:159
+#, no-wrap
+msgid "DEPRECATED PARAMETERS"
+msgstr "已弃用å‚æ•°"
+
+#. type: Plain text
+#: ../man/sysctl.8:169
+msgid ""
+"The B<base_reachable_time> and B<retrans_time> are deprecated. The "
+"B<sysctl> command does not allow changing values of these parameters. Users "
+"who insist to use deprecated kernel interfaces should push values to B</"
+"proc> file system by other means. For example:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:171
+msgid "echo 256 E<gt> /proc/sys/net/ipv6/neigh/eth0/base_reachable_time"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:173
+msgid "I</proc/sys>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:175 ../man/sysctl.conf.5:66
+msgid "I</etc/sysctl.d/*.conf>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:177 ../man/sysctl.conf.5:68
+msgid "I</run/sysctl.d/*.conf>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:179 ../man/sysctl.conf.5:70
+msgid "I</usr/local/lib/sysctl.d/*.conf>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:181 ../man/sysctl.conf.5:72
+msgid "I</usr/lib/sysctl.d/*.conf>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:183 ../man/sysctl.conf.5:74
+msgid "I</lib/sysctl.d/*.conf>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:185 ../man/sysctl.conf.5:76
+msgid "I</etc/sysctl.conf>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:189
+msgid "B<proc>(5), B<sysctl.conf>(5), B<regex>(7)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.8:193 ../man/sysctl.conf.5:89
+msgid "E<.UR staikos@0wned.org> George Staikos E<.UE>"
+msgstr ""
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "SYSCTL.CONF"
+msgstr ""
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "2021-09-15"
+msgstr ""
+
+#. type: TH
+#: ../man/sysctl.conf.5:13
+#, no-wrap
+msgid "File Formats"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:16
+msgid "sysctl.conf - sysctl preload/configuration file"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:21
+msgid ""
+"B<sysctl.conf> is a simple file containing sysctl values to be read in and "
+"set by B<sysctl>. The syntax is simply as follows:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:27
+#, no-wrap
+msgid ""
+"# comment\n"
+"; comment\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:29
+#, no-wrap
+msgid "token = value\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:35
+msgid ""
+"Note that blank lines are ignored, and whitespace before and after a token "
+"or value is ignored, although a value can contain whitespace within. Lines "
+"which begin with a I<#> or I<;> are considered comments and ignored."
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:38
+msgid ""
+"If a line begins with a single -, any attempts to set the value that fail "
+"will be ignored."
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:48
+msgid ""
+"As the B</etc/sysctl.conf> file is used to override default kernel parameter "
+"values, only a small number of parameters is predefined in the file. Use I</"
+"sbin/sysctl\\ -a> or follow B<sysctl>(8) to list all possible parameters. "
+"The description of individual parameters can be found in the kernel "
+"documentation."
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:51
+msgid ""
+"Maximum supported line length of the value is 4096 characters due to a "
+"limitation of I</proc> entries in Linux kernel."
+msgstr ""
+
+#. type: SH
+#: ../man/sysctl.conf.5:51
+#, no-wrap
+msgid "EXAMPLE"
+msgstr "示例"
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:61
+#, no-wrap
+msgid ""
+"# sysctl.conf sample\n"
+"#\n"
+" kernel.domainname = example.com\n"
+"; this one has a space which will be written to the sysctl!\n"
+" kernel.modprobe = /sbin/mod probe\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:83
+msgid ""
+"The paths where B<sysctl> preload files usually exist. See also B<sysctl> "
+"option I<--system>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/sysctl.conf.5:85
+msgid "B<sysctl>(8)"
+msgstr ""
+
+#. type: TH
+#: ../man/tload.1:12
+#, no-wrap
+msgid "TLOAD"
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:15
+msgid "tload - graphic representation of system load average"
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:18
+msgid "B<tload> [I<options>] [I<tty>]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:25
+msgid ""
+"B<tload> prints a graph of the current system load average to the specified "
+"I<tty> (or the tty of the B<tload> process if none is specified)."
+msgstr ""
+
+#. type: TP
+#: ../man/tload.1:26
+#, no-wrap
+msgid "B<-s>, B<--scale> I<number>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:31
+msgid ""
+"The scale option allows a vertical scale to be specified for the display (in "
+"characters between graph ticks); thus, a smaller value represents a larger "
+"scale, and vice versa."
+msgstr ""
+
+#. type: TP
+#: ../man/tload.1:31
+#, no-wrap
+msgid "B<-d>, B<--delay> I<seconds>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:35
+msgid "The delay sets the delay between graph updates in I<seconds>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:38
+msgid "Display this help text."
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:45
+msgid "I</proc/loadavg> load average information"
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:50
+msgid "B<ps>(1), B<top>(1), B<uptime>(1), B<w>(1)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:58
+msgid ""
+"The B<-d>I< delay> option sets the time argument for an B<alarm>(2); if -d 0 "
+"is specified, the alarm is set to 0, which will never send the B<SIGALRM> "
+"and update the display."
+msgstr ""
+
+#. type: Plain text
+#: ../man/tload.1:66
+msgid ""
+"Branko Lankester, E<.UR david@\\:ods.\\:com> David Engel E<.UE , and> E<.UR "
+"johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE .>"
+msgstr ""
+
+#. type: TH
+#: ../man/uptime.1:13
+#, no-wrap
+msgid "UPTIME"
+msgstr ""
+
+#. type: TH
+#: ../man/uptime.1:13
+#, no-wrap
+msgid "December 2012"
+msgstr "2012 年 12 月"
+
+#. type: Plain text
+#: ../man/uptime.1:16
+msgid "uptime - Tell how long the system has been running."
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:19
+msgid "B<uptime> [I<options>]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:24
+msgid ""
+"B<uptime> gives a one line display of the following information. The "
+"current time, how long the system has been running, how many users are "
+"currently logged on, and the system load averages for the past 1, 5, and 15 "
+"minutes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:27
+msgid ""
+"This is the same information contained in the header line displayed by "
+"B<w>(1)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:36
+msgid ""
+"System load averages is the average number of processes that are either in a "
+"runnable or uninterruptable state. A process in a runnable state is either "
+"using the CPU or waiting to use the CPU. A process in uninterruptable state "
+"is waiting for some I/O access, eg waiting for disk. The averages are taken "
+"over the three time intervals. Load averages are not normalized for the "
+"number of CPUs in a system, so a load average of 1 means a single CPU system "
+"is loaded all the time while on a 4 CPU system it means it was idle 75% of "
+"the time."
+msgstr ""
+
+#. type: TP
+#: ../man/uptime.1:37
+#, no-wrap
+msgid "B<-p>, B<--pretty>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:40
+msgid "show uptime in pretty format"
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:43
+msgid "display this help text"
+msgstr ""
+
+#. type: TP
+#: ../man/uptime.1:43
+#, no-wrap
+msgid "B<-s>, B<--since>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:46
+msgid "system up since, in yyyy-mm-dd HH:MM:SS format"
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:49
+msgid "display version information and exit"
+msgstr ""
+
+#. type: TP
+#: ../man/uptime.1:50 ../man/w.1:89
+#, no-wrap
+msgid "I</var/run/utmp>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:53 ../man/w.1:92
+msgid "information about who is currently logged on"
+msgstr ""
+
+#. type: TP
+#: ../man/uptime.1:53 ../man/w.1:92
+#, no-wrap
+msgid "I</proc>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:56 ../man/w.1:95
+msgid "process information"
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:66
+msgid ""
+"B<uptime> was written by E<.UR greenfie@gauss.\\:rutgers.\\:edu> Larry "
+"Greenfield E<.UE> and E<.UR johnsonm@sunsite.\\:unc.\\:edu> Michael K. "
+"Johnson E<.UE>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/uptime.1:71
+msgid "B<ps>(1), B<top>(1), B<utmp>(5), B<w>(1)"
+msgstr ""
+
+#. type: TH
+#: ../man/vmstat.8:13
+#, no-wrap
+msgid "VMSTAT"
+msgstr ""
+
+#. type: TH
+#: ../man/vmstat.8:13
+#, no-wrap
+msgid "2023-01-18"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:16
+msgid "vmstat - Report virtual memory statistics"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:20
+msgid "B<vmstat> [options] [I<delay> [I<count>]]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:24
+msgid ""
+"B<vmstat> reports information about processes, memory, paging, block IO, "
+"traps, disks and cpu activity."
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:29
+msgid ""
+"The first report produced gives averages since the last reboot. Additional "
+"reports give information on a sampling period of length I<delay>. The "
+"process and memory reports are instantaneous in either case."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:30
+#, no-wrap
+msgid "I<delay>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:37
+msgid ""
+"The I<delay> between updates in seconds. If no I<delay> is specified, only "
+"one report is printed with the average values since boot."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:37
+#, no-wrap
+msgid "I<count>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:44
+msgid ""
+"Number of updates. In absence of I<count>, when I<delay> is defined, "
+"default is infinite."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:44
+#, no-wrap
+msgid "B<-a>, B<--active>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:47
+msgid "Display active and inactive memory, given a 2.5.41 kernel or better."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:47
+#, no-wrap
+msgid "B<-f>, B<--forks>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:55
+msgid ""
+"The B<-f> switch displays the number of forks since boot. This includes the "
+"fork, vfork, and clone system calls, and is equivalent to the total number "
+"of tasks created. Each process is represented by one or more tasks, "
+"depending on thread usage. This display does not repeat."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:55
+#, no-wrap
+msgid "B<-m>, B<--slabs>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:58
+msgid "Displays slabinfo."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:58
+#, no-wrap
+msgid "B<-n>, B<--one-header>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:61
+msgid "Display the header only once rather than periodically."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:61
+#, no-wrap
+msgid "B<-s>, B<--stats>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:65
+msgid ""
+"Displays a table of various event counters and memory statistics. This "
+"display does not repeat."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:65
+#, no-wrap
+msgid "B<-d>, B<--disk>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:68
+msgid "Report disk statistics (2.5.70 or above required)."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:68
+#, no-wrap
+msgid "B<-D>, B<--disk-sum>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:71
+msgid "Report some summary statistics about disk activity."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:71
+#, no-wrap
+msgid "B<-p>, B<--partition> I<device>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:74
+msgid "Detailed statistics about partition (2.5.70 or above required)."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:74
+#, no-wrap
+msgid "B<-S>, B<--unit> I<character>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:86
+msgid ""
+"Switches outputs between 1000 (I<k>), 1024 (I<K>), 1000000 (I<m>), or "
+"1048576 (I<M>) bytes. Note this does not change the swap (si/so) or block "
+"(bi/bo) fields."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:86
+#, no-wrap
+msgid "B<-t>, B<--timestamp>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:89
+msgid "Append timestamp to each line"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:94
+msgid ""
+"Wide output mode (useful for systems with higher amount of memory, where the "
+"default output mode suffers from unwanted column breakage). The output is "
+"wider than 80 characters per line."
+msgstr ""
+
+#. type: TP
+#: ../man/vmstat.8:94
+#, no-wrap
+msgid "B<-y>, B<--no-first>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:97
+msgid "Omits first report with statistics since system boot."
+msgstr ""
+
+#. type: SH
+#: ../man/vmstat.8:104
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR VM MODE"
+msgstr ""
+
+#. type: SS
+#: ../man/vmstat.8:105
+#, no-wrap
+msgid "Procs"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:109
+#, no-wrap
+msgid ""
+"r: The number of runnable processes (running or waiting for run time).\n"
+"b: The number of processes blocked waiting for I/O to complete.\n"
+msgstr ""
+
+#. type: SS
+#: ../man/vmstat.8:110
+#, no-wrap
+msgid "Memory"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:112 ../man/vmstat.8:122
+msgid "These are affected by the B<--unit> option."
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:119
+#, no-wrap
+msgid ""
+"swpd: the amount of swap memory used.\n"
+"free: the amount of idle memory.\n"
+"buff: the amount of memory used as buffers.\n"
+"cache: the amount of memory used as cache.\n"
+"inact: the amount of inactive memory. (B<-a> option)\n"
+"active: the amount of active memory. (B<-a> option)\n"
+msgstr ""
+
+#. type: SS
+#: ../man/vmstat.8:120
+#, no-wrap
+msgid "Swap"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:125
+#, no-wrap
+msgid ""
+"si: Amount of memory swapped in from disk (/s).\n"
+"so: Amount of memory swapped to disk (/s).\n"
+msgstr ""
+
+#. type: SS
+#: ../man/vmstat.8:126 ../man/vmstat.8:161
+#, no-wrap
+msgid "IO"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:130
+#, no-wrap
+msgid ""
+"bi: Kibibyte received from a block device (KiB/s).\n"
+"bo: Kibibyte sent to a block device (KiB/s).\n"
+msgstr ""
+
+#. type: SS
+#: ../man/vmstat.8:131
+#, no-wrap
+msgid "System"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:135
+#, no-wrap
+msgid ""
+"in: The number of interrupts per second, including the clock.\n"
+"cs: The number of context switches per second.\n"
+msgstr ""
+
+#. type: ds PU
+#: ../man/vmstat.8:136 ../man/top.1:37
+#, no-wrap
+msgid "CPU"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:138
+msgid "These are percentages of total CPU time."
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:145
+#, no-wrap
+msgid ""
+"us: Time spent running non-kernel code. (user time, including nice time)\n"
+"sy: Time spent running kernel code. (system time)\n"
+"id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.\n"
+"wa: Time spent waiting for IO. Prior to Linux 2.5.41, included in idle.\n"
+"st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.\n"
+"gu: Time spent running KVM guest code (guest time, including guest nice).\n"
+msgstr ""
+
+#. type: SH
+#: ../man/vmstat.8:146
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR DISK MODE"
+msgstr ""
+
+#. type: SS
+#: ../man/vmstat.8:147
+#, no-wrap
+msgid "Reads"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:153
+#, no-wrap
+msgid ""
+"total: Total reads completed successfully\n"
+"merged: grouped reads (resulting in one I/O)\n"
+"sectors: Sectors read successfully\n"
+"ms: milliseconds spent reading\n"
+msgstr ""
+
+#. type: SS
+#: ../man/vmstat.8:154
+#, no-wrap
+msgid "Writes"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:160
+#, no-wrap
+msgid ""
+"total: Total writes completed successfully\n"
+"merged: grouped writes (resulting in one I/O)\n"
+"sectors: Sectors written successfully\n"
+"ms: milliseconds spent writing\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:165
+#, no-wrap
+msgid ""
+"cur: I/O in progress\n"
+"s: seconds spent for I/O\n"
+msgstr ""
+
+#. type: SH
+#: ../man/vmstat.8:166
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR DISK PARTITION MODE"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:172
+#, no-wrap
+msgid ""
+"reads: Total number of reads issued to this partition\n"
+"read sectors: Total read sectors for partition\n"
+"writes : Total number of writes issued to this partition\n"
+"requested writes: Total number of write requests made for partition\n"
+msgstr ""
+
+#. type: SH
+#: ../man/vmstat.8:173
+#, no-wrap
+msgid "FIELD DESCRIPTION FOR SLAB MODE"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:177
+msgid ""
+"Slab mode shows statistics per slab, for more information about this "
+"information see B<slabinfo>(5)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:184
+#, no-wrap
+msgid ""
+"cache: Cache name\n"
+"num: Number of currently active objects\n"
+"total: Total number of available objects\n"
+"size: Size of each object\n"
+"pages: Number of pages with at least one active object\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:191
+msgid ""
+"B<vmstat> requires read access to files under I</proc>. The B<-m> requires "
+"read access to I</proc/slabinfo> which may not be available to standard "
+"users. Mount options for I</proc> such as I<subset=pid> may also impact "
+"what is visible."
+msgstr ""
+
+#. type: Plain text
+#: ../man/vmstat.8:199
+msgid ""
+"B<free>(1), B<iostat>(1), B<mpstat>(1), B<ps>(1), B<sar>(1), B<top>(1), "
+"B<slabinfo>(5)"
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:14 ../man/ps.1:852
+#, no-wrap
+msgid "W"
+msgstr "W"
+
+#. type: TH
+#: ../man/w.1:14
+#, no-wrap
+msgid "2023-01-15"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:17
+msgid "w - Show who is logged on and what they are doing."
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:20
+msgid "B<w> [I<options>] [I<user>]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:26
+msgid ""
+"B<w> displays information about the users currently on the machine, and "
+"their processes. The header shows, in this order, the current time, how "
+"long the system has been running, how many users are currently logged on, "
+"and the system load averages for the past 1, 5, and 15 minutes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:30
+msgid ""
+"The following entries are displayed for each user: login name, the tty name, "
+"the remote host, login time, idle time, JCPU, PCPU, and the command line of "
+"their current process."
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:34
+msgid ""
+"The JCPU time is the time used by all processes attached to the tty. It "
+"does not include past background jobs, but does include currently running "
+"background jobs."
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:37
+msgid ""
+"The PCPU time is the time used by the current process, named in the \"what\" "
+"field."
+msgstr ""
+
+#. type: SH
+#: ../man/w.1:37
+#, no-wrap
+msgid "COMMAND-LINE OPTIONS"
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:38
+#, no-wrap
+msgid "B<-h>, B<--no-header>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:41
+msgid "Don't print the header."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:41
+#, no-wrap
+msgid "B<-u>, B<--no-current>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:50
+msgid ""
+"Ignores the username while figuring out the current process and cpu times. "
+"To demonstrate this, do a B<su> and do a B<w> and a B<w -u>."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:50
+#, no-wrap
+msgid "B<-s>, B<--short>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:53
+msgid "Use the short format. Don't print the login time, JCPU or PCPU times."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:53
+#, no-wrap
+msgid "B<-f>, B<--from>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:63
+msgid ""
+"Toggle printing the B<from> (remote hostname) field. The default as "
+"released is for the B<from> field to not be printed, although your system "
+"administrator or distribution maintainer may have compiled a version in "
+"which the B<from> field is shown by default."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:66
+#, no-wrap
+msgid "B<-i>, B<--ip-addr>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:69
+msgid "Display IP address instead of hostname for B<from> field."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:69
+#, no-wrap
+msgid "B<-p>, B<--pids>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:72
+msgid ""
+"Display pid of the login process/the \"what\" process in the \"what\" field."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:75
+#, no-wrap
+msgid "B<-o>, B<--old-style>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:78
+msgid ""
+"Old style output. Prints blank space for idle times less than one minute."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:78
+#, no-wrap
+msgid "B<user >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:81
+msgid "Show information about the specified user only."
+msgstr ""
+
+#. type: SH
+#: ../man/w.1:81 ../man/watch.1:133
+#, no-wrap
+msgid "ENVIRONMENT"
+msgstr "环境"
+
+#. type: TP
+#: ../man/w.1:82
+#, no-wrap
+msgid "PROCPS_USERLEN"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:85
+msgid "Override the default width of the username column. Defaults to 8."
+msgstr ""
+
+#. type: TP
+#: ../man/w.1:85
+#, no-wrap
+msgid "PROCPS_FROMLEN"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:88
+msgid "Override the default width of the from column. Defaults to 16."
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:102
+msgid "B<free>(1), B<ps>(1), B<top>(1), B<uptime>(1), B<utmp>(5), B<who>(1)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/w.1:112
+msgid ""
+"B<w> was re-written almost entirely by Charles Blake, based on the version "
+"by E<.UR greenfie@\\:gauss.\\:rutgers.\\:edu> Larry Greenfield E<.UE> and E<."
+"UR johnsonm@\\:redhat.\\:com> Michael K. Johnson E<.UE>"
+msgstr ""
+
+#. type: TH
+#: ../man/watch.1:13
+#, no-wrap
+msgid "WATCH"
+msgstr ""
+
+#. type: TH
+#: ../man/watch.1:13
+#, no-wrap
+msgid "2023-01-17"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:16
+msgid "watch - execute a program periodically, showing output fullscreen"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:19
+msgid "B<watch> [I<options>] I<command>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:26
+msgid ""
+"B<watch> runs I<command> repeatedly, displaying its output and errors (the "
+"first screenfull). This allows you to watch the program output change over "
+"time. By default, I<command> is run every 2 seconds and B<watch> will run "
+"until interrupted."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:27
+#, no-wrap
+msgid "B<-b>, B<--beep>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:30
+msgid "Beep if command has a non-zero exit."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:30
+#, no-wrap
+msgid "B<-c>, B<--color>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:33
+msgid "Interpret ANSI color and style sequences."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:33
+#, no-wrap
+msgid "B<-C>, B<--no-color>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:36
+msgid "Do not interpret ANSI color and style sequences."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:36
+#, no-wrap
+msgid "B<-d>, B<--differences>[=I<permanent>]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:42
+msgid ""
+"Highlight the differences between successive updates. If the optional "
+"I<permanent> argument is specified then B<watch> will show all changes since "
+"the first iteration."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:42
+#, no-wrap
+msgid "B<-e>, B<--errexit>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:45
+msgid "Freeze updates on command error, and exit after a key press."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:45
+#, no-wrap
+msgid "B<-g>, B<--chgexit>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:50
+msgid "Exit when the output of I<command> changes."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:50
+#, no-wrap
+msgid "B<-n>, B<--interval> I<seconds>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:56
+msgid ""
+"Specify update interval. The command will not allow quicker than 0.1 second "
+"interval, in which the smaller values are converted. Both '.' and ',' work "
+"for any locales. The B<WATCH_INTERVAL> environment can be used to "
+"persistently set a non-default interval (following the same rules and "
+"formatting)."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:56
+#, no-wrap
+msgid "B<-p>, B<--precise>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:69
+msgid ""
+"Make B<watch> attempt to run I<command> every B<--interval> I<seconds>. Try "
+"it with B<ntptime> (if present) and notice how the fractional seconds stays "
+"(nearly) the same, as opposed to normal mode where they continuously "
+"increase."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:69
+#, no-wrap
+msgid "B<-q>, B<--equexit> E<lt>cyclesE<gt>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:74
+msgid ""
+"Exit when output of I<command> does not change for the given number of "
+"cycles."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:74
+#, no-wrap
+msgid "B<-r>, B<--no-rerun>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:78
+msgid ""
+"Do not run the program on terminal resize, the output of the program will re-"
+"appear at the next regular run time."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:78
+#, no-wrap
+msgid "B<-t>, B<--no-title>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:82
+msgid ""
+"Turn off the header showing the interval, command, and current time at the "
+"top of the display, as well as the following blank line."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:82
+#, no-wrap
+msgid "B<-w>, B<--no-wrap>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:85
+msgid ""
+"Turn off line wrapping. Long lines will be truncated instead of wrapped to "
+"the next line."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:85
+#, no-wrap
+msgid "B<-x>, B<--exec>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:94
+msgid ""
+"Pass I<command> to B<exec>(2) instead of B<sh -c> which reduces the need to "
+"use extra quoting to get the desired effect."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:97
+#, no-wrap
+msgid "B<-v>, B<--version>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:110
+msgid "Various failures."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:110
+#, no-wrap
+msgid "B<2>"
+msgstr "B<2>"
+
+#. type: Plain text
+#: ../man/watch.1:113
+msgid "Forking the process to watch failed."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:113
+#, no-wrap
+msgid "B<3>"
+msgstr "B<3>"
+
+#. type: Plain text
+#: ../man/watch.1:116
+msgid "Replacing child process stdout with write side pipe failed."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:116
+#, no-wrap
+msgid "B<4>"
+msgstr "B<4>"
+
+#. type: Plain text
+#: ../man/watch.1:119
+msgid "Command execution failed."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:119
+#, no-wrap
+msgid "B<5>"
+msgstr "B<5>"
+
+#. type: Plain text
+#: ../man/watch.1:122
+msgid "Closing child process write pipe failed."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:122
+#, no-wrap
+msgid "B<7>"
+msgstr "B<7>"
+
+#. type: Plain text
+#: ../man/watch.1:125
+msgid "IPC pipe creation failed."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:125
+#, no-wrap
+msgid "B<8>"
+msgstr "B<8>"
+
+#. type: Plain text
+#: ../man/watch.1:130
+msgid ""
+"Getting child process return value with B<waitpid>(2) failed, or command "
+"exited up on error."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:130
+#, no-wrap
+msgid "B<other>"
+msgstr "B<其他>"
+
+#. type: Plain text
+#: ../man/watch.1:133
+msgid "The watch will propagate command exit status as child exit status."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:137
+msgid ""
+"The behavior of B<watch> is affected by the following environment variables."
+msgstr ""
+
+#. type: TP
+#: ../man/watch.1:138
+#, no-wrap
+msgid "B<WATCH_INTERVAL>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:143
+msgid ""
+"Update interval, follows the same rules as the B<--interval> command line "
+"option."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:151
+msgid ""
+"POSIX option processing is used (i.e., option processing stops at the first "
+"non-option argument). This means that flags after I<command> don't get "
+"interpreted by B<watch> itself."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:159
+msgid ""
+"Upon terminal resize, the screen will not be correctly repainted until the "
+"next scheduled update. All B<--differences> highlighting is lost on that "
+"update as well. When using the B<--no-rerun> option, no output of will be "
+"visible."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:162
+msgid ""
+"Non-printing characters are stripped from program output. Use B<cat -v> as "
+"part of the command pipeline if you want to see them."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:166
+msgid ""
+"Combining Characters that are supposed to display on the character at the "
+"last column on the screen may display one column early, or they may not "
+"display at all."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:170
+msgid ""
+"Combining Characters never count as different in B<--differences> mode. "
+"Only the base character counts."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:173
+msgid ""
+"Blank lines directly after a line which ends in the last column do not "
+"display."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:190
+msgid ""
+"B<--precise> mode doesn't yet have advanced temporal distortion technology "
+"to compensate for a I<command> that takes more than B<--interval> I<seconds> "
+"to execute. B<watch> also can get into a state where it rapid-fires as many "
+"executions of I<command> as it can to catch up from a previous executions "
+"running longer than B<--interval> (for example, B<netstat>(8) taking ages "
+"on a DNS lookup)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:194
+msgid "To watch for mail, you might do"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:196
+msgid "watch -n 60 from"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:198
+msgid "To watch the contents of a directory change, you could use"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:200
+msgid "watch -d ls -l"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:202
+msgid "If you're only interested in files owned by user joe, you might use"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:204
+msgid "watch -d 'ls -l | fgrep joe'"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:206
+msgid "To see the effects of quoting, try these out"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:208
+msgid "watch echo $$"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:210
+msgid "watch echo '$$'"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:212
+msgid "watch echo \"'\"'$$'\"'\""
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:216
+msgid "To see the effect of precision time keeping, try adding B<-p> to"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:218
+msgid "watch -n 10 sleep 1"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:220
+msgid "You can watch for your administrator to install the latest kernel with"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:222
+msgid "watch uname -r"
+msgstr ""
+
+#. type: Plain text
+#: ../man/watch.1:228
+msgid ""
+"(Note that B<-p> isn't guaranteed to work across reboots, especially in the "
+"face of B<ntpdate> (if present) or other bootup time-changing mechanisms)"
+msgstr ""
+
+#. type: TH
+#: ../man/ps.1:13
+#, no-wrap
+msgid "PS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:29
+msgid "ps - report a snapshot of the current processes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:31
+msgid "B<ps> [\\,I<options\\/>]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:37
+msgid ""
+"B<ps> displays information about a selection of the active processes. If "
+"you want a repetitive update of the selection and the displayed information, "
+"use B<top> instead."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:41
+msgid "This version of B<ps> accepts several kinds of options:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:45
+msgid "UNIX options, which may be grouped and must be preceded by a dash."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:47
+msgid "BSD options, which may be grouped and must not be used with a dash."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:49
+msgid "GNU long options, which are preceded by two dashes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:58
+msgid ""
+"Options of different types may be freely mixed, but conflicts can appear. "
+"There are some synonymous options, which are functionally identical, due to "
+"the many standards and B<ps> implementations that this B<ps> is compatible "
+"with."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:66
+msgid ""
+"By default, B<ps> selects all processes with the same effective user ID "
+"(euid=EUID) as the current user and associated with the same terminal as the "
+"invoker. It displays the process ID (pid=PID), the terminal associated with "
+"the process (tname=TTY), the cumulated CPU time in [DD-]hh:mm:ss format "
+"(time=TIME), and the executable name (ucmd=CMD). Output is unsorted by "
+"default."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:79
+msgid ""
+"The use of BSD-style options will add process state (stat=STAT) to the "
+"default display and show the command args (args=COMMAND) instead of the "
+"executable name. You can override this with the B<PS_FORMAT> environment "
+"variable. The use of BSD-style options will also change the process "
+"selection to include processes on other terminals (TTYs) that are owned by "
+"you; alternately, this may be described as setting the selection to be the "
+"set of all processes filtered to exclude processes owned by other users or "
+"not on a terminal. These effects are not considered when options are "
+"described as being \"identical\" below, so B<-M> will be considered "
+"identical to B<Z> and so on."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:84
+msgid ""
+"Except as described below, process selection options are additive. The "
+"default selection is discarded, and then the selected processes are added to "
+"the set of processes to be displayed. A process will thus be shown if it "
+"meets any of the given selection criteria."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:85
+#, no-wrap
+msgid "To see every process on the system using standard syntax:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:88
+msgid "B<ps\\ -e>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:90
+msgid "B<ps\\ -ef>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:92
+msgid "B<ps\\ -eF>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:94
+msgid "B<ps\\ -ely>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:94
+#, no-wrap
+msgid "To see every process on the system using BSD syntax:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:97
+msgid "B<ps\\ ax>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:99
+msgid "B<ps\\ axu>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:99
+#, no-wrap
+msgid "To print a process tree:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:102
+msgid "B<ps\\ -ejH>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:104
+msgid "B<ps\\ axjf>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:104
+#, no-wrap
+msgid "To get info about threads:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:107
+msgid "B<ps\\ -eLf>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:109
+msgid "B<ps\\ axms>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:109
+#, no-wrap
+msgid "To get security info:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:112
+msgid "B<ps\\ -eo euser,ruser,suser,fuser,f,comm,label>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:114
+msgid "B<ps\\ axZ>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:116
+msgid "B<ps\\ -eM>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:116
+#, no-wrap
+msgid "To see every process running as root (real\\ &\\ effective\\ ID) in user format:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:119
+msgid "B<ps\\ -U\\ root\\ -u\\ root\\ u>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:119
+#, no-wrap
+msgid "To see every process with a user-defined format:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:122
+msgid "B<ps\\ -eo\\ pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:124
+msgid "B<ps\\ axo\\ stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:126
+msgid "B<ps\\ -Ao\\ pid,tt,user,fname,tmout,f,wchan>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:126
+#, no-wrap
+msgid "Print only the process IDs of syslogd:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:129
+msgid "B<ps\\ -C\\ syslogd\\ -o\\ pid=>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:129
+#, no-wrap
+msgid "Print only the name of PID 42:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:132
+msgid "B<ps\\ -q\\ 42\\ -o\\ comm=>"
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:132
+#, no-wrap
+msgid "SIMPLE PROCESS SELECTION"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:133
+#, no-wrap
+msgid "B<a>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:147
+msgid ""
+"Lift the BSD-style \"only yourself\" restriction, which is imposed upon the "
+"set of all processes when some BSD-style (without \"-\") options are used or "
+"when the B<ps> personality setting is BSD-like. The set of processes "
+"selected in this manner is in addition to the set of processes selected by "
+"other means. An alternate description is that this option causes B<ps> to "
+"list all processes with a terminal (tty), or to list all processes when used "
+"together with the B<x> option."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:151
+msgid "Select all processes. Identical to B<-e>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:151
+#, no-wrap
+msgid "B<-a>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:156
+msgid ""
+"Select all processes except both session leaders (see I<getsid>(2)) and "
+"processes not associated with a terminal."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:159
+msgid "Select all processes except session leaders."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:159
+#, no-wrap
+msgid "B<--deselect>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:164
+msgid ""
+"Select all processes except those that fulfill the specified conditions "
+"(negates the selection). Identical to B<-N>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:164
+#, no-wrap
+msgid "B<-e>"
+msgstr ""
+
+#. Current "g" behavior: add in the session leaders, which would
+#. be excluded in the sunos4 personality. Supposed "g" behavior:
+#. add in the group leaders -- at least according to the SunOS 4
+#. man page on the FreeBSD site. Uh oh. I think I had tested SunOS
+#. though, so maybe the code is correct.
+#. type: Plain text
+#: ../man/ps.1:173
+msgid "Select all processes. Identical to B<-A>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:173
+#, no-wrap
+msgid "B<g>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:179
+msgid ""
+"Really all, even session leaders. This flag is obsolete and may be "
+"discontinued in a future release. It is normally implied by the B<a> flag, "
+"and is only useful when operating in the sunos4 personality."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:179
+#, no-wrap
+msgid "B<-N>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:184
+msgid ""
+"Select all processes except those that fulfill the specified conditions "
+"(negates the selection). Identical to B<--deselect>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:184
+#, no-wrap
+msgid "B<T>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:189
+msgid ""
+"Select all processes associated with this terminal. Identical to the B<t> "
+"option without any argument."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:189
+#, no-wrap
+msgid "B<r>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:192
+msgid "Restrict the selection to only running processes."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:192
+#, no-wrap
+msgid "B<x>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:207
+msgid ""
+"Lift the BSD-style \"must have a tty\" restriction, which is imposed upon "
+"the set of all processes when some BSD-style (without \"-\") options are "
+"used or when the B<ps> personality setting is BSD-like. The set of "
+"processes selected in this manner is in addition to the set of processes "
+"selected by other means. An alternate description is that this option "
+"causes B<ps> to list all processes owned by you (same EUID as B<ps>), or to "
+"list all processes when used together with the B<a> option."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:208
+#, no-wrap
+msgid "PROCESS SELECTION BY LIST"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:212
+msgid ""
+"These options accept a single argument in the form of a blank-separated or "
+"comma-separated list. They can be used multiple times. For example: B<ps\\ "
+"-p\\ \"1\\ 2\"\\ -p\\ 3,4>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:212
+#, no-wrap
+msgid "I<123>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:216
+msgid "Identical to B<--pid\\ >I<123>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:216
+#, no-wrap
+msgid "\\+I<123>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:220
+msgid "Identical to B<--sid\\ >I<123>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:220
+#, no-wrap
+msgid "-I<123>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:223
+msgid "Select by process group ID (PGID)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:223
+#, no-wrap
+msgid "B<-C>I<\\ cmdlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:232
+msgid ""
+"Select by command name. This selects the processes whose executable name is "
+"given in I<cmdlist>. NOTE: The command name is not the same as the command "
+"line. Previous versions of procps and the kernel truncated this command name "
+"to 15 characters. This limitation is no longer present in both. If you "
+"depended on matching only 15 characters, you may no longer get a match."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:232
+#, no-wrap
+msgid "B<-G>I<\\ grplist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:240
+msgid ""
+"Select by real group ID (RGID) or name. This selects the processes whose "
+"real group name or ID is in the I<grplist> list. The real group ID "
+"identifies the group of the user who created the process, see I<getgid>(2)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:240
+#, no-wrap
+msgid "B<-g>I<\\ grplist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:253
+msgid ""
+"Select by session OR by effective group name. Selection by session is "
+"specified by many standards, but selection by effective group is the logical "
+"behavior that several other operating systems use. This B<ps> will select "
+"by session when the list is completely numeric (as sessions are). Group ID "
+"numbers will work only when some group names are also specified. See the B<-"
+"s> and B<--group> options."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:253
+#, no-wrap
+msgid "B<--Group>I<\\ grplist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:257
+msgid "Select by real group ID (RGID) or name. Identical to B<-G>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:257
+#, no-wrap
+msgid "B<--group>I<\\ grplist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:269
+msgid ""
+"Select by effective group ID (EGID) or name. This selects the processes "
+"whose effective group name or ID is in I<grplist>. The effective group ID "
+"describes the group whose file access permissions are used by the process "
+"(see I<getegid>(2)). The B<-g> option is often an alternative to B<--group>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:269
+#, no-wrap
+msgid "B<p>I<\\ pidlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:275
+msgid "Select by process ID. Identical to B<-p> and B<--pid>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:275
+#, no-wrap
+msgid "B<-p>I<\\ pidlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:283
+msgid ""
+"Select by PID. This selects the processes whose process ID numbers appear "
+"in I<pidlist>. Identical to B<p> and B<--pid>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:283
+#, no-wrap
+msgid "B<--pid>I<\\ pidlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:289
+msgid "Select by process\\ ID. Identical to B<-p> and B<p>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:289
+#, no-wrap
+msgid "B<--ppid>I<\\ pidlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:296
+msgid ""
+"Select by parent process ID. This selects the processes with a parent "
+"process\\ ID in I<pidlist>. That is, it selects processes that are children "
+"of those listed in I<pidlist>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:296
+#, no-wrap
+msgid "B<q>I<\\ pidlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:302
+msgid ""
+"Select by process ID (quick mode). Identical to B<-q> and B<--quick-pid>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:302
+#, no-wrap
+msgid "B<-q>I<\\ pidlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:316
+msgid ""
+"Select by PID (quick mode). This selects the processes whose process ID "
+"numbers appear in I<pidlist>. With this option B<ps> reads the necessary "
+"info only for the pids listed in the I<pidlist> and doesn't apply additional "
+"filtering rules. The order of pids is unsorted and preserved. No additional "
+"selection options, sorting and forest type listings are allowed in this "
+"mode. Identical to B<q> and B<--quick-pid>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:316
+#, no-wrap
+msgid "B<--quick-pid>I<\\ pidlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:322
+msgid "Select by process\\ ID (quick mode). Identical to B<-q> and B<q>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:322
+#, no-wrap
+msgid "B<-s>I<\\ sesslist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:327
+msgid ""
+"Select by session ID. This selects the processes with a session ID "
+"specified in I<sesslist>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:327
+#, no-wrap
+msgid "B<--sid>I<\\ sesslist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:331
+msgid "Select by session\\ ID. Identical to B<-s>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:331
+#, no-wrap
+msgid "B<t>I<\\ ttylist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:348
+msgid ""
+"Select by tty. Nearly identical to B<-t> and B<--tty>, but can also be used "
+"with an empty I<ttylist> to indicate the terminal associated with B<ps>. "
+"Using the B<T> option is considered cleaner than using B<t> with an empty "
+"I<ttylist>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:348
+#, no-wrap
+msgid "B<-t>I<\\ ttylist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:356
+msgid ""
+"Select by tty. This selects the processes associated with the terminals "
+"given in I<ttylist>. Terminals (ttys, or screens for text output) can be "
+"specified in several forms: /dev/ttyS1, ttyS1, S1. A plain \"-\" may be "
+"used to select processes not attached to any terminal."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:356
+#, no-wrap
+msgid "B<--tty>I<\\ ttylist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:362
+msgid "Select by terminal. Identical to B<-t> and B<t>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:362
+#, no-wrap
+msgid "B<U>I<\\ userlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:374
+msgid ""
+"Select by effective user ID (EUID) or name. This selects the processes "
+"whose effective user name or ID is in I<userlist>. The effective user ID "
+"describes the user whose file access permissions are used by the process "
+"(see I<geteuid>(2)). Identical to B<-u> and B<--user>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:374
+#, no-wrap
+msgid "B<-U>I<\\ userlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:381
+msgid ""
+"Select by real user ID (RUID) or name. It selects the processes whose real "
+"user name or ID is in the I<userlist> list. The real user ID identifies the "
+"user who created the process, see I<getuid>(2)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:381
+#, no-wrap
+msgid "B<-u>I<\\ userlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:386
+msgid ""
+"Select by effective user ID (EUID) or name. This selects the processes "
+"whose effective user name or ID is in I<userlist>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:394
+msgid ""
+"The effective user ID describes the user whose file access permissions are "
+"used by the process (see I<geteuid>(2)). Identical to B<U> and B<--user>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:394
+#, no-wrap
+msgid "B<--User>I<\\ userlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:398
+msgid "Select by real user ID (RUID) or name. Identical to B<-U>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:398
+#, no-wrap
+msgid "B<--user>I<\\ userlist>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:404
+msgid ""
+"Select by effective user ID (EUID) or name. Identical to B<-u> and B<U>."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:405
+#, no-wrap
+msgid "OUTPUT FORMAT CONTROL"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:409
+msgid ""
+"These options are used to choose the information displayed by B<ps>. The "
+"output may differ by personality."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:414
+msgid "Show different scheduler information for the B<-l> option."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:414
+#, no-wrap
+msgid "B<--context>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:417
+msgid "Display security context format (for SELinux)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:430
+msgid ""
+"Do full-format listing. This option can be combined with many other UNIX-"
+"style options to add additional columns. It also causes the command "
+"arguments to be printed. When used with B<-L>, the NLWP (number of threads) "
+"and LWP (thread ID) columns will be added. See the B<c> option, the format "
+"keyword B<args>, and the format keyword B<comm>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:430
+#, no-wrap
+msgid "B<-F>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:437
+msgid "Extra full format. See the B<-f> option, which B<-F> implies."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:437
+#, no-wrap
+msgid "B<--format>I<\\ format>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:443
+msgid "user-defined format. Identical to B<-o> and B<o>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:443
+#, no-wrap
+msgid "B<j>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:446
+msgid "BSD job control format."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:446
+#, no-wrap
+msgid "B<-j>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:449
+msgid "Jobs format."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:449
+#, no-wrap
+msgid "B<l>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:452
+msgid "Display BSD long format."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:452
+#, no-wrap
+msgid "B<-l>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:457
+msgid "Long format. The B<-y> option is often useful with this."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:457
+#, no-wrap
+msgid "B<-M>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:462
+msgid "Add a column of security data. Identical to B<Z> (for SELinux)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:462
+#, no-wrap
+msgid "B<O>I<\\ format>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:480
+msgid ""
+"is preloaded B<o> (overloaded). The BSD B<O> option can act like B<-O> "
+"(user-defined output format with some common fields predefined) or can be "
+"used to specify sort order. Heuristics are used to determine the behavior "
+"of this option. To ensure that the desired behavior is obtained (sorting or "
+"formatting), specify the option in some other way (e.g. with B<-O> or B<--"
+"sort>). When used as a formatting option, it is identical to B<-O>, with "
+"the BSD personality."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:480
+#, no-wrap
+msgid "B<-O>I<\\ format>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:491
+msgid ""
+"Like B<-o>, but preloaded with some default columns. Identical to B<-o\\ "
+"pid,\\:>I<format>B<,\\:state,\\:tname,\\:time,\\:command> or B<-o\\ pid,\\:"
+">I<format>B<,\\:tname,\\:time,\\:cmd>, see B<-o> below."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:491
+#, no-wrap
+msgid "B<o>I<\\ format>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:497
+msgid "Specify user-defined format. Identical to B<-o> and B<--format>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:497
+#, no-wrap
+msgid "B<-o>I<\\ format>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:525
+msgid ""
+"User-defined format. I<format> is a single argument in the form of a blank-"
+"separated or comma-separated list, which offers a way to specify individual "
+"output columns. The recognized keywords are described in the B<STANDARD "
+"FORMAT SPECIFIERS> section below. Headers may be renamed (B<ps -o pid,\\:"
+"ruser=RealUser -o comm=Command>) as desired. If all column headers are "
+"empty (B<ps -o pid= -o comm=>) then the header line will not be output. "
+"Column width will increase as needed for wide headers; this may be used to "
+"widen up columns such as WCHAN (B<ps -o pid,\\:wchan=\\:WIDE-\\:WCHAN-\\:"
+"COLUMN -o comm>). Explicit width control (B<ps opid,\\:wchan:42,\\:cmd>) "
+"is offered too. The behavior of B<ps -o pid=X,\\:comm=Y> varies with "
+"personality; output may be one column named \"X,\\:comm=Y\" or two columns "
+"named \"X\" and \"Y\". Use multiple B<-o> options when in doubt. Use the "
+"B<PS_FORMAT> environment variable to specify a default as desired; DefSysV "
+"and DefBSD are macros that may be used to choose the default UNIX or BSD "
+"columns."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:525
+#, no-wrap
+msgid "B<-P>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:528
+msgid "Add a column showing B<psr>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:528
+#, no-wrap
+msgid "B<s>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:531
+msgid "Display signal format."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:531
+#, no-wrap
+msgid "B<u>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:534
+msgid "Display user-oriented format."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:534
+#, no-wrap
+msgid "B<v>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:537
+msgid "Display virtual memory format."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:537
+#, no-wrap
+msgid "B<X>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:540
+msgid "Register format."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:540
+#, no-wrap
+msgid "B<-y>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:545
+msgid ""
+"Do not show flags; show rss in place of addr. This option can only be used "
+"with B<-l>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:545
+#, no-wrap
+msgid "B<Z>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:550
+msgid "Add a column of security data. Identical to B<-M> (for SELinux)."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:551
+#, no-wrap
+msgid "OUTPUT MODIFIERS"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:552
+#, no-wrap
+msgid "B<c>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:570
+msgid ""
+"Show the true command name. This is derived from the name of the executable "
+"file, rather than from the argv value. Command arguments and any "
+"modifications to them are thus not shown. This option effectively turns the "
+"B<args> format keyword into the B<comm> format keyword; it is useful with "
+"the B<-f> format option and with the various BSD-style format options, which "
+"all normally display the command arguments. See the B<-f> option, the "
+"format keyword B<args>, and the format keyword B<comm>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:570
+#, no-wrap
+msgid "B<--cols>I<\\ n>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:573 ../man/ps.1:576 ../man/ps.1:724
+msgid "Set screen width."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:573
+#, no-wrap
+msgid "B<--columns>I<\\ n>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:576
+#, no-wrap
+msgid "B<--cumulative>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:579
+msgid "Include some dead child process data (as a sum with the parent)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:580
+#, no-wrap
+msgid "B<-D>I<\\ format>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:586
+msgid ""
+"Set the date format of the B<lstart> field to I<format>. This format is "
+"parsed by B<strftime>(3) and should be a maximum of 24 characters to not "
+"mis-align columns."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:586
+#, no-wrap
+msgid "B<--date-format>I<\\ format>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:589
+msgid "Identical to B<-D>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:589
+#, no-wrap
+msgid "B<e>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:592
+msgid "Show the environment after the command."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:592
+#, no-wrap
+msgid "B<f>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:595
+msgid "ASCII art process hierarchy (forest)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:595
+#, no-wrap
+msgid "B<--forest>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:598
+msgid "ASCII art process tree."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:598
+#, no-wrap
+msgid "B<h>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:616
+msgid ""
+"No header. (or, one header per screen in the BSD personality). The B<h> "
+"option is problematic. Standard BSD B<ps> uses this option to print a "
+"header on each page of output, but older Linux B<ps> uses this option to "
+"totally disable the header. This version of B<ps> follows the Linux usage "
+"of not printing the header unless the BSD personality has been selected, in "
+"which case it prints a header on each page of output. Regardless of the "
+"current personality, you can use the long options B<--headers> and B<--no-"
+"headers> to enable printing headers each page or disable headers entirely, "
+"respectively."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:616
+#, no-wrap
+msgid "B<-H>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:619
+msgid "Show process hierarchy (forest)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:619
+#, no-wrap
+msgid "B<--headers>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:622
+msgid "Repeat header lines, one per page of output."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:622
+#, no-wrap
+msgid "B<k>I<\\ spec>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:634
+msgid ""
+"Specify sorting order. Sorting syntax is [B<+>|B<->]I<key\\/.RB [,[ + | - ]."
+"IR key [,...]].> Choose a multi-letter key from the B<STANDARD FORMAT "
+"SPECIFIERS> section. The \"+\" is optional since default direction is "
+"increasing numerical or lexicographic order. Identical to B<--sort>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:637
+msgid "Examples:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:639
+msgid "B<ps jaxkuid,-ppid,+pid>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:641
+msgid "B<ps axk comm o comm,args>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:643
+msgid "B<ps kstart_time -ef>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:644
+#, no-wrap
+msgid "B<--lines>I<\\ n>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:647 ../man/ps.1:691
+msgid "Set screen height."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:647
+#, no-wrap
+msgid "B<n>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:650
+msgid "Numeric output for WCHAN and USER (including all types of UID and GID)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:650
+#, no-wrap
+msgid "B<--no-headers>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:655
+msgid ""
+"Print no header line at all. B<--no-heading> is an alias for this option."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:655
+#, no-wrap
+msgid "B<O>I<\\ order>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:669
+msgid ""
+"Sorting order (overloaded). The BSD B<O> option can act like B<-O> (user-"
+"defined output format with some common fields predefined) or can be used to "
+"specify sort order. Heuristics are used to determine the behavior of this "
+"option. To ensure that the desired behavior is obtained (sorting or "
+"formatting), specify the option in some other way (e.g. with B<-O> or B<--"
+"sort>)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:688
+msgid ""
+"For sorting, obsolete BSD B<O> option syntax is B<O>[B<+>|B<->]I<k1>[,[B<+>|"
+"B<->]I<k2>[,...]]. It orders the processes listing according to the "
+"multilevel sort specified by the sequence of one-letter short keys I<k1>,"
+"I<k2>, ...\" described in the B<OBSOLETE SORT KEYS> section below. The\\ \"+"
+"\" is currently optional, merely re-iterating the default direction on a "
+"key, but may help to distinguish an B<O> sort from an B<O> format. The \"-"
+"\" reverses direction only on the key it precedes."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:688
+#, no-wrap
+msgid "B<--rows>I<\\ n>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:691
+#, no-wrap
+msgid "B<S>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:696
+msgid ""
+"Sum up some information, such as CPU usage, from dead child processes into "
+"their parent. This is useful for examining a system where a parent process "
+"repeatedly forks off short-lived children to do work."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:696
+#, no-wrap
+msgid "B<--sort>I<\\ spec>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:710
+msgid ""
+"Specify sorting order. Sorting syntax is [I<+>|I<->]I<key>[,[B<+>|B<-"
+">]I<key>[,...]]. Choose a multi-letter key from the B<STANDARD FORMAT "
+"SPECIFIERS> section. The \"+\" is optional since default direction is "
+"increasing numerical or lexicographic order. Identical to B<k>. For "
+"example: B<ps jax --sort=\\:uid,\\:-ppid,\\:+pid>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:710
+#, no-wrap
+msgid "B<--signames>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:715
+msgid ""
+"Show signal masks using abbreviated signal names and expands the collumn. "
+"If the column width cannot show all signals, the column will end with a plus "
+"\"I<+>\". Columns with only a hyphen have no signals."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:715
+#, no-wrap
+msgid "B<w>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:718 ../man/ps.1:721
+msgid "Wide output. Use this option twice for unlimited width."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:721
+#, no-wrap
+msgid "B<--width>I<\\ n>"
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:725
+#, no-wrap
+msgid "THREAD DISPLAY"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:726
+#, no-wrap
+msgid "B<H>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:729
+msgid "Show threads as if they were processes."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:729
+#, no-wrap
+msgid "B<-L>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:732
+msgid "Show threads, possibly with LWP and NLWP columns."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:732
+#, no-wrap
+msgid "B<m>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:735 ../man/ps.1:738
+msgid "Show threads after processes."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:735
+#, no-wrap
+msgid "B<-m>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:738
+#, no-wrap
+msgid "B<-T>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:741
+msgid "Show threads, possibly with SPID column."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:741
+#, no-wrap
+msgid "OTHER INFORMATION"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:742
+#, no-wrap
+msgid "B<--help>I<\\ section>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:753
+msgid ""
+"Print a help message. The I<section> argument can be one of I<s>imple, "
+"I<l>ist, I<o>utput, I<t>hreads, I<m>isc, or I<a>ll. The argument can be "
+"shortened to one of the underlined letters as in: s\\^|\\^l\\^|\\^o\\^|"
+"\\^t\\^|\\^m\\^|\\^a."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:753
+#, no-wrap
+msgid "B<--info>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:756
+msgid "Print debugging info."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:756
+#, no-wrap
+msgid "B<L>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:759
+msgid "List all format specifiers."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:759
+#, no-wrap
+msgid "B<V>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:762 ../man/ps.1:765 ../man/ps.1:768
+msgid "Print the procps-ng version."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:762
+#, no-wrap
+msgid "B<-V>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:765
+#, no-wrap
+msgid "B<--version>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:777
+msgid ""
+"This B<ps> works by reading the virtual files in /proc. This B<ps> does not "
+"need to be setuid kmem or have any privileges to run. Do not give this "
+"B<ps> any special permissions."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:783
+msgid ""
+"CPU usage is currently expressed as the percentage of time spent running "
+"during the entire lifetime of a process. This is not ideal, and\\ it does "
+"not conform to the standards that B<ps> otherwise conforms to. CPU usage is "
+"unlikely to add up to exactly 100%."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:788
+msgid ""
+"The SIZE and RSS fields don't count some parts of a process including the "
+"page tables, kernel stack, struct thread_info, and struct task_struct. This "
+"is usually at least 20\\ KiB of memory that is always resident. SIZE is the "
+"virtual size of the process (code+\\:data+\\:stack)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:794
+msgid ""
+"Processes marked E<lt>defunctE<gt> are dead processes (so-called "
+"\"zombies\") that remain because their parent has not destroyed them "
+"properly. These processes will be destroyed by I<init>(8) if the parent "
+"process exits."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:798
+msgid ""
+"If the length of the username is greater than the width of the display "
+"column, the username will be truncated. See the B<-o> and B<-O> formatting "
+"options to customize length."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:810
+msgid ""
+"Commands options such as B<ps -aux> are not recommended as it is a confusion "
+"of two different standards. According to the POSIX and UNIX standards, the "
+"above command asks to display all processes with a TTY (generally the "
+"commands users are running) plus all processes owned by a user named I<x>. "
+"If that user doesn't exist, then B<ps> will assume you really meant \"B<ps> "
+"I<aux>\"."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:810
+#, no-wrap
+msgid "PROCESS FLAGS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:815
+msgid ""
+"The sum of these values is displayed in the \"F\" column, which is provided "
+"by the B<flags> output specifier:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:821
+msgid "forked but didn't exec"
+msgstr ""
+
+#. type: IP
+#: ../man/ps.1:821 ../man/ps.1:2088
+#, no-wrap
+msgid "4"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:824
+msgid "used super-user privileges"
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:826
+#, no-wrap
+msgid "PROCESS STATE CODES"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:831
+msgid ""
+"Here are the different values that the B<s>, B<stat> and B<state> output "
+"specifiers (header \"STAT\" or \"S\") will display to describe the state of "
+"a process:"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:834
+#, no-wrap
+msgid "D"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:837
+msgid "uninterruptible sleep (usually IO)"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:837
+#, no-wrap
+msgid "I"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:840
+msgid "Idle kernel thread"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:840 ../man/ps.1:925
+#, no-wrap
+msgid "R"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:843
+msgid "running or runnable (on run queue)"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:843 ../man/ps.1:927 ../man/ps.1:1631 ../man/ps.1:1753
+#, no-wrap
+msgid "S"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:846
+msgid "interruptible sleep (waiting for an event to complete)"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:846 ../man/ps.1:929
+#, no-wrap
+msgid "T"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:849
+msgid "stopped by job control signal"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:849 ../man/ps.1:928
+#, no-wrap
+msgid "t"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:852
+msgid "stopped by debugger during the tracing"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:855
+msgid "paging (not valid since the 2.6.xx kernel)"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:855
+#, no-wrap
+msgid "X"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:858
+msgid "dead (should never be seen)"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:858
+#, no-wrap
+msgid "Z"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:861
+msgid "defunct (\"zombie\") process, terminated but not reaped by its parent"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:867
+msgid ""
+"For BSD formats and when the B<stat> keyword is used, additional characters "
+"may be displayed:"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:870
+#, no-wrap
+msgid "E<lt>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:873
+msgid "high-priority (not nice to other users)"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:873 ../man/ps.1:920
+#, no-wrap
+msgid "N"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:876
+msgid "low-priority (nice to other users)"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:876
+#, no-wrap
+msgid "L"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:879
+msgid "has pages locked into memory (for real-time and custom IO)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:882
+msgid "is a session leader"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:885
+msgid "is multi-threaded (using CLONE_THREAD, like NPTL pthreads do)"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:885
+#, no-wrap
+msgid "+"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:888
+msgid "is in the foreground process group"
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:890
+#, no-wrap
+msgid "OBSOLETE SORT KEYS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:906
+msgid ""
+"These keys are used by the BSD B<O> option (when it is used for sorting). "
+"The GNU B<--sort> option doesn't use these keys, but the specifiers "
+"described below in the B<STANDARD FORMAT SPECIFIERS> section. Note that the "
+"values used in sorting are the internal values B<ps> uses and not the "
+"\"cooked\" values used in some of the output format fields (e.g. sorting on "
+"tty will sort into device number, not according to the terminal name "
+"displayed). Pipe B<ps> output into the B<sort>(1) command if you want to "
+"sort the cooked values."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, no-wrap
+msgid "B<KEY>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, no-wrap
+msgid "B<LONG>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:908
+#, fuzzy, no-wrap
+#| msgid "DESCRIPTION"
+msgid "B<DESCRIPTION>"
+msgstr "æè¿°"
+
+#. type: tbl table
+#: ../man/ps.1:909 ../man/ps.1:1161
+#, no-wrap
+msgid "cmd"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:909
+#, no-wrap
+msgid "simple name of executable"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:910 ../man/ps.1:1081
+#, no-wrap
+msgid "C"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:910 ../man/ps.1:952 ../man/ps.1:1481
+#, no-wrap
+msgid "pcpu"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:910
+#, no-wrap
+msgid "cpu utilization"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:911 ../man/ps.1:1300
+#, no-wrap
+msgid "f"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:911 ../man/ps.1:1326
+#, no-wrap
+msgid "flags"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:911
+#, no-wrap
+msgid "flags as in long format F field"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:912
+#, no-wrap
+msgid "g"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:912 ../man/ps.1:1508
+#, no-wrap
+msgid "pgrp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:912
+#, no-wrap
+msgid "process group ID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:913
+#, no-wrap
+msgid "G"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:913 ../man/ps.1:1848
+#, no-wrap
+msgid "tpgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:913
+#, no-wrap
+msgid "controlling tty process group ID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "j"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "cutime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:914
+#, no-wrap
+msgid "cumulative user time"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "J"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "cstime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:915
+#, no-wrap
+msgid "cumulative system time"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "k"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "utime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:916
+#, no-wrap
+msgid "user time"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:917
+#, no-wrap
+msgid "m"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:917 ../man/ps.1:1419
+#, no-wrap
+msgid "min_flt"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:917
+#, no-wrap
+msgid "number of minor page faults"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:918
+#, no-wrap
+msgid "M"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:918 ../man/ps.1:1415
+#, no-wrap
+msgid "maj_flt"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:918
+#, no-wrap
+msgid "number of major page faults"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:919
+#, no-wrap
+msgid "cmin_flt"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:919
+#, no-wrap
+msgid "cumulative minor page faults"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:920
+#, no-wrap
+msgid "cmaj_flt"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:920
+#, no-wrap
+msgid "cumulative major page faults"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:921
+#, no-wrap
+msgid "session"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:921
+#, no-wrap
+msgid "session ID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:922 ../man/ps.1:960 ../man/ps.1:1515
+#, no-wrap
+msgid "pid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:922
+#, no-wrap
+msgid "process ID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:923 ../man/ps.1:1657
+#, no-wrap
+msgid "P"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:923 ../man/ps.1:954 ../man/ps.1:1559
+#, no-wrap
+msgid "ppid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:923
+#, no-wrap
+msgid "parent process ID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:924
+#, no-wrap
+msgid "r"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:924 ../man/ps.1:1598
+#, no-wrap
+msgid "rss"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:924
+#, no-wrap
+msgid "resident set size"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:925
+#, no-wrap
+msgid "resident"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:925
+#, no-wrap
+msgid "resident pages"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:926 ../man/ps.1:1707
+#, no-wrap
+msgid "size"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:926
+#, no-wrap
+msgid "memory size in kilobytes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:927
+#, no-wrap
+msgid "share"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:927
+#, no-wrap
+msgid "amount of shared pages"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:928 ../man/ps.1:965 ../man/ps.1:1862
+#, no-wrap
+msgid "tty"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:928
+#, no-wrap
+msgid "the device number of the controlling tty"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:929 ../man/ps.1:1736
+#, no-wrap
+msgid "start_time"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:929
+#, no-wrap
+msgid "time process was started"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:930
+#, no-wrap
+msgid "U"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:930 ../man/ps.1:1881
+#, no-wrap
+msgid "uid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:930
+#, no-wrap
+msgid "user ID number"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:931 ../man/ps.1:955 ../man/ps.1:1900
+#, no-wrap
+msgid "user"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:931
+#, no-wrap
+msgid "user name"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:932 ../man/ps.1:1929
+#, no-wrap
+msgid "vsize"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:932
+#, no-wrap
+msgid "total VM size in KiB"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "y"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "priority"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:933
+#, no-wrap
+msgid "kernel scheduling priority"
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:936
+#, no-wrap
+msgid "AIX FORMAT DESCRIPTORS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:949
+msgid ""
+"This B<ps> supports AIX format descriptors, which work somewhat like the "
+"formatting codes of I<printf>(1) and I<printf>(3). For example, the normal "
+"default output can be produced with this: B<ps -eo \"%p %y %x %c\">. The "
+"B<NORMAL> codes are described in the next section."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<CODE>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<NORMAL>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:951
+#, no-wrap
+msgid "B<HEADER>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:952
+#, no-wrap
+msgid "%C"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:952 ../man/ps.1:1004 ../man/ps.1:1481
+#, no-wrap
+msgid "%CPU"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:953
+#, no-wrap
+msgid "%G"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:953 ../man/ps.1:1355
+#, no-wrap
+msgid "group"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:953 ../man/ps.1:1355
+#, no-wrap
+msgid "GROUP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:954
+#, no-wrap
+msgid "%P"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:954 ../man/ps.1:1559
+#, no-wrap
+msgid "PPID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:955
+#, no-wrap
+msgid "%U"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:955 ../man/ps.1:1888 ../man/ps.1:1900
+#, no-wrap
+msgid "USER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:956
+#, no-wrap
+msgid "%a"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:956 ../man/ps.1:1027
+#, no-wrap
+msgid "args"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:956 ../man/ps.1:957 ../man/ps.1:1027 ../man/ps.1:1168
+#: ../man/ps.1:1196 ../man/ps.1:1333 ../man/ps.1:1874
+#, fuzzy, no-wrap
+#| msgid "COMMANDS"
+msgid "COMMAND"
+msgstr "命令"
+
+#. type: tbl table
+#: ../man/ps.1:957
+#, no-wrap
+msgid "%c"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:957 ../man/ps.1:1168
+#, no-wrap
+msgid "comm"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:958
+#, no-wrap
+msgid "%g"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:958 ../man/ps.1:1588
+#, no-wrap
+msgid "rgroup"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:958 ../man/ps.1:1588
+#, no-wrap
+msgid "RGROUP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:959
+#, no-wrap
+msgid "%n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:959 ../man/ps.1:1443
+#, no-wrap
+msgid "nice"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:959 ../man/ps.1:1435 ../man/ps.1:1443
+#, no-wrap
+msgid "NI"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:960
+#, no-wrap
+msgid "%p"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:960 ../man/ps.1:1515
+#, no-wrap
+msgid "PID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:961
+#, no-wrap
+msgid "%r"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:961 ../man/ps.1:1502
+#, no-wrap
+msgid "pgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:961 ../man/ps.1:1502
+#, no-wrap
+msgid "PGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:962
+#, no-wrap
+msgid "%t"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:962 ../man/ps.1:1271
+#, no-wrap
+msgid "etime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:962 ../man/ps.1:1271 ../man/ps.1:1275
+#, no-wrap
+msgid "ELAPSED"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:963
+#, no-wrap
+msgid "%u"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:963 ../man/ps.1:1626
+#, no-wrap
+msgid "ruser"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:963 ../man/ps.1:1626
+#, no-wrap
+msgid "RUSER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:964
+#, no-wrap
+msgid "%x"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:964 ../man/ps.1:1827
+#, no-wrap
+msgid "time"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:964 ../man/ps.1:1075 ../man/ps.1:1208 ../man/ps.1:1213
+#: ../man/ps.1:1827 ../man/ps.1:1838
+#, no-wrap
+msgid "TIME"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:965
+#, no-wrap
+msgid "%y"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:965 ../man/ps.1:1843
+#, no-wrap
+msgid "TTY"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:966
+#, no-wrap
+msgid "%z"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:966 ../man/ps.1:1936
+#, no-wrap
+msgid "vsz"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:966 ../man/ps.1:1929 ../man/ps.1:1936
+#, no-wrap
+msgid "VSZ"
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:968
+#, no-wrap
+msgid "STANDARD FORMAT SPECIFIERS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:975
+msgid ""
+"Here are the different keywords that may be used to control the output "
+"format (e.g., with option B<-o>) or to sort the selected processes with the "
+"GNU-style B<--sort> option."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:978
+msgid "For example: B<ps -eo pid,\\:user,\\:args --sort user>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:983
+msgid ""
+"This version of B<ps> tries to recognize most of the keywords used in other "
+"implementations of B<ps>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:988
+msgid ""
+"The following user-defined format specifiers may contain spaces: B<args>, "
+"B<cmd>, B<comm>, B<command>, B<fname>, B<ucmd>, B<ucomm>, B<lstart>, "
+"B<bsdstart>, B<start>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:990
+msgid "Some keywords may not be available for sorting."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1002
+#, no-wrap
+msgid "CODE"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1002
+#, no-wrap
+msgid "HEADER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1004
+#, no-wrap
+msgid "%cpu"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1010
+#, no-wrap
+msgid ""
+"cpu utilization of the process in \"##.#\" format. Currently, it is the CPU\n"
+"time used divided by the time the process has been running (cputime/realtime\n"
+"ratio), expressed as a percentage. It will not add up to 100% unless you are\n"
+"lucky. (alias\n"
+"B<pcpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1012
+#, no-wrap
+msgid "%mem"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1012 ../man/ps.1:1526
+#, no-wrap
+msgid "%MEM"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1016
+#, no-wrap
+msgid ""
+"ratio of the process's resident set size to the physical memory on the\n"
+"machine, expressed as a percentage. (alias\n"
+"B<pmem>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1018
+#, no-wrap
+msgid "ag_id"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1018
+#, no-wrap
+msgid "AGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1021
+#, no-wrap
+msgid ""
+"The autogroup identifier associated with a process which operates in conjunction\n"
+"with the CFS scheduler to improve interactive desktop performance."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1023
+#, no-wrap
+msgid "ag_nice"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1023
+#, no-wrap
+msgid "AGNI"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1025
+#, no-wrap
+msgid "The autogroup nice value which affects scheduling of all processes in that group."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1042
+#, no-wrap
+msgid ""
+"command with all its arguments as a string. Modifications to the arguments\n"
+"may be shown. The output in this column may contain spaces. A process\n"
+"marked E<lt>defunctE<gt> is partly dead, waiting to be fully destroyed by its parent.\n"
+"Sometimes the process args will be unavailable; when this happens,\n"
+"B<ps>\n"
+"will instead print the executable name in brackets. (alias\n"
+"B<cmd>, B<command>).\n"
+"See also the\n"
+"B<comm>\n"
+"format keyword, the\n"
+"B<-f>\n"
+"option, and the\n"
+"B<c>\n"
+"option.\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1042 ../man/ps.1:1116 ../man/ps.1:1118 ../man/ps.1:1120
+#: ../man/ps.1:1122 ../man/ps.1:1124 ../man/ps.1:1126 ../man/ps.1:1128
+#: ../man/ps.1:1130 ../man/ps.1:1142 ../man/ps.1:1144 ../man/ps.1:1146
+#: ../man/ps.1:1148 ../man/ps.1:1150 ../man/ps.1:1152 ../man/ps.1:1154
+#: ../man/ps.1:1156 ../man/ps.1:1180 ../man/ps.1:1540 ../man/ps.1:1542
+#: ../man/ps.1:1544 ../man/ps.1:1546 ../man/ps.1:1548 ../man/ps.1:1550
+#: ../man/ps.1:1552 ../man/ps.1:1554
+#, no-wrap
+msgid ".br\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1058
+#, no-wrap
+msgid ""
+"When specified last, this column will extend to the edge of the display. If\n"
+"B<ps>\n"
+"can not determine display width, as when output is redirected (piped) into a\n"
+"file or another command, the output width is undefined (it may be 80,\n"
+"unlimited, determined by the\n"
+"B<TERM>\n"
+"variable, and so on). The\n"
+"B<COLUMNS>\n"
+"environment variable or\n"
+"B<--cols>\n"
+"option may be used to exactly determine the width in this case. The\n"
+"B<w>\n"
+"or\n"
+"B<-w>\n"
+"option may be also be used to adjust width."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1060
+#, no-wrap
+msgid "blocked"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1060 ../man/ps.1:1700
+#, no-wrap
+msgid "BLOCKED"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1066
+#, no-wrap
+msgid ""
+"mask of the blocked signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64-bit mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_block>, B<sigmask>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1068
+#, no-wrap
+msgid "bsdstart"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1068 ../man/ps.1:1736
+#, no-wrap
+msgid "START"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1073
+#, no-wrap
+msgid ""
+"time the command started. If the process was started less than 24 hours ago,\n"
+"the output format is \"\\ HH:MM\", else it is \" Mmm:SS\" (where Mmm is the three\n"
+"letters of the month). See also\n"
+"B<lstart>,B<\\ start>,B<\\ start_time>, andB<\\ stime>."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1075
+#, no-wrap
+msgid "bsdtime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1079
+#, no-wrap
+msgid ""
+"accumulated cpu time, user + system. The display format is usually\n"
+"\"MMM:SS\", but can be shifted to the right if the process used more than 999\n"
+"minutes of cpu time."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1085
+#, no-wrap
+msgid ""
+"processor utilization. Currently, this is the integer value of the percent\n"
+"usage over the lifetime of the process. (see\n"
+"B<%cpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1087
+#, no-wrap
+msgid "caught"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1087 ../man/ps.1:1686
+#, no-wrap
+msgid "CAUGHT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1093
+#, no-wrap
+msgid ""
+"mask of the caught signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64 bits mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_catch>, B<sigcatch>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1095
+#, no-wrap
+msgid "cgname"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1095
+#, fuzzy, no-wrap
+#| msgid "NAME"
+msgid "CGNAME"
+msgstr "å称"
+
+#. type: tbl table
+#: ../man/ps.1:1097
+#, no-wrap
+msgid "display name of control groups to which the process belongs."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1099
+#, no-wrap
+msgid "cgroup"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1099
+#, no-wrap
+msgid "CGROUP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1101
+#, no-wrap
+msgid "display control groups to which the process belongs."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1103
+#, no-wrap
+msgid "cgroupns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1103
+#, no-wrap
+msgid "CGROUPNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1107 ../man/ps.1:1374 ../man/ps.1:1427 ../man/ps.1:1433
+#: ../man/ps.1:1524 ../man/ps.1:1836 ../man/ps.1:1911 ../man/ps.1:1922
+#, no-wrap
+msgid ""
+"Unique inode number describing the namespace the process belongs to.\n"
+"See\n"
+"I<namespaces>(7)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1109
+#, no-wrap
+msgid "class"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1109 ../man/ps.1:1135
+#, no-wrap
+msgid "CLS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1113 ../man/ps.1:1139
+#, no-wrap
+msgid ""
+"scheduling class of the process. (alias\n"
+"B<policy>, B<cls>).\n"
+"Field's possible values are:\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1113 ../man/ps.1:1139 ../man/ps.1:1537
+#, no-wrap
+msgid ".sp 1\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1114 ../man/ps.1:1140 ../man/ps.1:1538
+#, no-wrap
+msgid ".in +9n\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1116 ../man/ps.1:1142 ../man/ps.1:1540
+#, no-wrap
+msgid "-\tnot reported\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1118 ../man/ps.1:1144 ../man/ps.1:1542
+#, no-wrap
+msgid "TS\tSCHED_OTHER\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1120 ../man/ps.1:1146 ../man/ps.1:1544
+#, no-wrap
+msgid "FF\tSCHED_FIFO\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1122 ../man/ps.1:1148 ../man/ps.1:1546
+#, no-wrap
+msgid "RR\tSCHED_RR\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1124 ../man/ps.1:1150 ../man/ps.1:1548
+#, no-wrap
+msgid "B\tSCHED_BATCH\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1126 ../man/ps.1:1152 ../man/ps.1:1550
+#, no-wrap
+msgid "ISO\tSCHED_ISO\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1128 ../man/ps.1:1154 ../man/ps.1:1552
+#, no-wrap
+msgid "IDL\tSCHED_IDLE\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1130 ../man/ps.1:1156 ../man/ps.1:1554
+#, no-wrap
+msgid "DLN\tSCHED_DEADLINE\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1132 ../man/ps.1:1158 ../man/ps.1:1556
+#, no-wrap
+msgid "?\tunknown value\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1132 ../man/ps.1:1158 ../man/ps.1:1556
+#, no-wrap
+msgid ".in\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1135
+#, no-wrap
+msgid "cls"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1161 ../man/ps.1:1867
+#, no-wrap
+msgid "CMD"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1166
+#, no-wrap
+msgid ""
+"see\n"
+"B<args>.\n"
+"(alias\n"
+"B<args>, B<command>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1180
+#, no-wrap
+msgid ""
+"command name (only the executable name). The output in this column may\n"
+"contain spaces.\n"
+"(alias\n"
+"B<ucmd>, B<ucomm>).\n"
+"See also the\n"
+"B<args>\n"
+"format keyword, the\n"
+"B<-f>\n"
+"option, and the\n"
+"B<c>\n"
+"option.\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1194
+#, no-wrap
+msgid ""
+"When specified last, this column will extend to the edge of the display. If\n"
+"B<ps>\n"
+"can not determine display width, as when output is redirected (piped) into a\n"
+"file or another command, the output width is undefined (it may be 80,\n"
+"unlimited, determined by the\n"
+"B<TERM>\n"
+"variable, and so on). The\n"
+"B<COLUMNS>\n"
+"environment variable or\n"
+"B<--cols>\n"
+"option may be used to exactly determine the width in this case. The\n"
+"B<w>\\ orB<\\ -w>\n"
+"option may be also be used to adjust width."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1196
+#, fuzzy, no-wrap
+#| msgid "User Commands"
+msgid "command"
+msgstr "用户命令"
+
+#. type: tbl table
+#: ../man/ps.1:1201
+#, no-wrap
+msgid ""
+"See\n"
+"B<args>.\n"
+"(alias\n"
+"B<args>, B<command>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1203
+#, no-wrap
+msgid "cp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1203
+#, no-wrap
+msgid "CP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1206
+#, no-wrap
+msgid ""
+"per-mill (tenths of a percent) CPU usage. (see\n"
+"B<%cpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1208
+#, no-wrap
+msgid "cputime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1211
+#, no-wrap
+msgid ""
+"cumulative CPU time, \"[DD-]hh:mm:ss\" format. (alias\n"
+"B<time>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1213
+#, no-wrap
+msgid "cputimes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1216
+#, no-wrap
+msgid ""
+"cumulative CPU time in seconds (alias\n"
+"B<times>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1218
+#, no-wrap
+msgid "cuc"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1218
+#, no-wrap
+msgid "%CUC"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1226
+#, no-wrap
+msgid ""
+"The CPU utilization of a process, including dead children, in an extended \"##.###\" format.\n"
+"(see also\n"
+"B<%cpu>,\n"
+"B<c>,\n"
+"B<cp>,\n"
+"B<cuu>,\n"
+"B<pcpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1228
+#, no-wrap
+msgid "cuu"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1228
+#, no-wrap
+msgid "%CUU"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1236
+#, no-wrap
+msgid ""
+"The CPU utilization of a process in an extended \"##.###\" format.\n"
+"(see also\n"
+"B<%cpu>,\n"
+"B<c>,\n"
+"B<cp>,\n"
+"B<cuc>,\n"
+"B<pcpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1238
+#, no-wrap
+msgid "drs"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1238
+#, no-wrap
+msgid "DRS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1247
+#, no-wrap
+msgid ""
+"data resident set size, the amount of private memory I<reserved> by a process.\n"
+"It is also known as DATA. Such memory may not yet be mapped to\n"
+"B<rss>\n"
+"but will always be included\n"
+"included in the\n"
+"B<vsz>\n"
+"amount.\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1249
+#, no-wrap
+msgid "egid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1249
+#, no-wrap
+msgid "EGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1252
+#, no-wrap
+msgid ""
+"effective group ID number of the process as a decimal integer. (alias\n"
+"B<gid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1254
+#, no-wrap
+msgid "egroup"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1254
+#, no-wrap
+msgid "EGROUP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1259
+#, no-wrap
+msgid ""
+"effective group ID of the process. This will be the textual group ID, if it\n"
+"can be obtained and the field width permits, or a decimal representation\n"
+"otherwise. (alias\n"
+"B<group>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1261
+#, no-wrap
+msgid "eip"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1261
+#, no-wrap
+msgid "EIP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1264
+#, no-wrap
+msgid ""
+"instruction pointer. As of kernel 4.9.xx will be zeroed out unless task is\n"
+"exiting or being core dumped."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1266
+#, no-wrap
+msgid "esp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1266
+#, no-wrap
+msgid "ESP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1269
+#, no-wrap
+msgid ""
+"stack pointer. As of kernel 4.9.xx will be zeroed out unless task is\n"
+"exiting or being core dumped."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1273
+#, no-wrap
+msgid "elapsed time since the process was started, in the form [[DD-]hh:]mm:ss."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1275
+#, no-wrap
+msgid "etimes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1277
+#, no-wrap
+msgid "elapsed time since the process was started, in seconds."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1279
+#, no-wrap
+msgid "euid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1279
+#, no-wrap
+msgid "EUID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1282
+#, no-wrap
+msgid ""
+"effective user ID (alias\n"
+"B<uid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1284
+#, no-wrap
+msgid "euser"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1284
+#, no-wrap
+msgid "EUSER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1290
+#, no-wrap
+msgid ""
+"effective user name. This will be the textual user ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise. The\n"
+"B<n>\n"
+"option can be used to force the decimal representation. (alias\n"
+"B<uname>, B<user>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1292
+#, no-wrap
+msgid "exe"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1292
+#, fuzzy, no-wrap
+#| msgid "EXAMPLE"
+msgid "EXE"
+msgstr "示例"
+
+#. type: tbl table
+#: ../man/ps.1:1298
+#, no-wrap
+msgid ""
+"path to the executable. Useful if path cannot be printed via\n"
+"B<cmd>, B<comm>\n"
+"or\n"
+"B<args>\n"
+"format options."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1300 ../man/ps.1:1319 ../man/ps.1:1326
+#, no-wrap
+msgid "F"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1305
+#, no-wrap
+msgid ""
+"flags associated with the process, see the\n"
+"B<PROCESS FLAGS>\n"
+"section. (alias\n"
+"B<flag>, B<flags>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1307
+#, no-wrap
+msgid "fgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1307
+#, no-wrap
+msgid "FGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1310
+#, no-wrap
+msgid ""
+"filesystem access group\\ ID. (alias\n"
+"B<fsgid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1312
+#, no-wrap
+msgid "fgroup"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1312
+#, no-wrap
+msgid "FGROUP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1317
+#, no-wrap
+msgid ""
+"filesystem access group ID. This will be the textual group ID, if it can\n"
+"be obtained and the field width permits, or a decimal representation\n"
+"otherwise. (alias\n"
+"B<fsgroup>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1319
+#, no-wrap
+msgid "flag"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1324
+#, no-wrap
+msgid ""
+"see\n"
+"B<f>.\n"
+"(alias\n"
+"B<f>, B<flags>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1331
+#, no-wrap
+msgid ""
+"see\n"
+"B<f>.\n"
+"(alias\n"
+"B<f>, B<flag>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1333
+#, no-wrap
+msgid "fname"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1336
+#, no-wrap
+msgid ""
+"first 8 bytes of the base name of the process's executable file. The output\n"
+"in this column may contain spaces."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1338
+#, no-wrap
+msgid "fuid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1338
+#, no-wrap
+msgid "FUID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1341
+#, no-wrap
+msgid ""
+"filesystem access user ID. (alias\n"
+"B<fsuid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1343
+#, no-wrap
+msgid "fuser"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1343
+#, no-wrap
+msgid "FUSER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1346
+#, no-wrap
+msgid ""
+"filesystem access user ID. This will be the textual user ID, if it can be\n"
+"obtained and the field width permits, or a decimal representation otherwise."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1348
+#, no-wrap
+msgid "gid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1348
+#, no-wrap
+msgid "GID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1353
+#, no-wrap
+msgid ""
+"see\n"
+"B<egid>.\n"
+"(alias\n"
+"B<egid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1360
+#, no-wrap
+msgid ""
+"see\n"
+"B<egroup>.\n"
+"(alias\n"
+"B<egroup>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1362
+#, no-wrap
+msgid "ignored"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1362 ../man/ps.1:1693
+#, no-wrap
+msgid "IGNORED"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1368
+#, no-wrap
+msgid ""
+"mask of the ignored signals, see\n"
+"I<signal>(7).\n"
+"According to the width of the field, a 32 or 64 bits mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig_ignore>, B<sigignore>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1370
+#, no-wrap
+msgid "ipcns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1370
+#, no-wrap
+msgid "IPCNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1376
+#, no-wrap
+msgid "label"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1376
+#, no-wrap
+msgid "LABEL"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1381
+#, no-wrap
+msgid ""
+"security label, most commonly used for SELinux context data. This is for\n"
+"the\n"
+"I<Mandatory Access Control>\n"
+"(\"MAC\") found on high-security systems."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1383
+#, no-wrap
+msgid "lstart"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1383 ../man/ps.1:1729
+#, no-wrap
+msgid "STARTED"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1386
+#, no-wrap
+msgid ""
+"time the command started. This will be in the form \"DDD mmm HH:MM:SS YYY\"\n"
+"unless changed by the B<-D> option."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1388
+#, no-wrap
+msgid "lsession"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1388
+#, no-wrap
+msgid "SESSION"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1391
+#, no-wrap
+msgid ""
+"displays the login session identifier of a process,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1393
+#, no-wrap
+msgid "luid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1393
+#, no-wrap
+msgid "LUID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1395
+#, no-wrap
+msgid "displays Login ID associated with a process."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1397
+#, no-wrap
+msgid "lwp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1397
+#, no-wrap
+msgid "LWP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1403
+#, no-wrap
+msgid ""
+"light weight process (thread) ID of the dispatchable entity (alias\n"
+"B<spid>,B<\\ tid>).\n"
+"See\n"
+"B<tid>\n"
+"for additional information."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1405
+#, no-wrap
+msgid "lxc"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1405
+#, no-wrap
+msgid "LXC"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1408
+#, no-wrap
+msgid ""
+"The name of the lxc container within which a task is running.\n"
+"If a process is not running inside a container, a dash ('-') will be shown."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1410
+#, no-wrap
+msgid "machine"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1410
+#, no-wrap
+msgid "MACHINE"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1413
+#, no-wrap
+msgid ""
+"displays the machine name for processes assigned to VM or container,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1415
+#, no-wrap
+msgid "MAJFLT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1417
+#, no-wrap
+msgid "The number of major page faults that have occurred with this process."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1419
+#, no-wrap
+msgid "MINFLT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1421
+#, no-wrap
+msgid "The number of minor page faults that have occurred with this process."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1423
+#, no-wrap
+msgid "mntns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1423
+#, no-wrap
+msgid "MNTNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1429
+#, no-wrap
+msgid "netns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1429
+#, no-wrap
+msgid "NETNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1435
+#, no-wrap
+msgid "ni"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1441
+#, no-wrap
+msgid ""
+"nice value. This ranges from 19 (nicest) to -20 (not nice to others),\n"
+"see\n"
+"I<nice>(1).\n"
+"(alias\n"
+"B<nice>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1447
+#, no-wrap
+msgid ""
+"see\n"
+"B<ni>.B<(alias>\n"
+"B<ni>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1449
+#, no-wrap
+msgid "nlwp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1449
+#, no-wrap
+msgid "NLWP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1452
+#, no-wrap
+msgid ""
+"number of lwps (threads) in the process. (alias\n"
+"B<thcount>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1454
+#, no-wrap
+msgid "numa"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1454
+#, no-wrap
+msgid "NUMA"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1457
+#, no-wrap
+msgid ""
+"The node associated with the most recently used processor.\n"
+"A I<-1> means that NUMA information is unavailable."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1459
+#, no-wrap
+msgid "nwchan"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1459 ../man/ps.1:1950
+#, no-wrap
+msgid "WCHAN"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1463
+#, no-wrap
+msgid ""
+"address of the kernel function where the process is sleeping (use\n"
+"B<wchan>\n"
+"if you want the kernel function name)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1465
+#, no-wrap
+msgid "oom"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1465
+#, no-wrap
+msgid "OOM"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1468
+#, no-wrap
+msgid ""
+"Out of Memory Score. The value, ranging from 0 to +1000, used to select\n"
+"task(s) to kill when memory is exhausted."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1470
+#, no-wrap
+msgid "oomadj"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1470
+#, no-wrap
+msgid "OOMADJ"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1474
+#, no-wrap
+msgid ""
+"Out of Memory Adjustment Factor. The value is added to the current out of\n"
+"memory score which is then used to determine which task to kill when memory\n"
+"is exhausted."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1476
+#, no-wrap
+msgid "ouid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1476
+#, no-wrap
+msgid "OWNER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1479
+#, no-wrap
+msgid ""
+"displays the Unix user identifier of the owner of the session of a process,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1486
+#, no-wrap
+msgid ""
+"see\n"
+"B<%cpu>.\n"
+"(alias\n"
+"B<%cpu>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1488
+#, no-wrap
+msgid "pending"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1488 ../man/ps.1:1679
+#, no-wrap
+msgid "PENDING"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1500
+#, no-wrap
+msgid ""
+"mask of the pending signals. See\n"
+"I<signal>(7).\n"
+"Signals pending on the process are distinct from signals pending on\n"
+"individual threads. Use the\n"
+"B<m>\n"
+"option or the\n"
+"B<-m>\n"
+"option to see both. According to the width of the field, a 32 or 64 bits\n"
+"mask in hexadecimal\n"
+"format is displayed, unless the B<--signames> option is used. (alias\n"
+"B<sig>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1506
+#, no-wrap
+msgid ""
+"process group ID or, equivalently, the process ID of the process group\n"
+"leader. (alias\n"
+"B<pgrp>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1508
+#, no-wrap
+msgid "PGRP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1513
+#, no-wrap
+msgid ""
+"see\n"
+"B<pgid>.\n"
+"(alias\n"
+"B<pgid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1518
+#, no-wrap
+msgid ""
+"a number representing the process ID (alias\n"
+"B<tgid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1520
+#, no-wrap
+msgid "pidns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1520
+#, no-wrap
+msgid "PIDNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1526
+#, no-wrap
+msgid "pmem"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1531
+#, no-wrap
+msgid ""
+"see\n"
+"B<%mem>.\n"
+"(alias\n"
+"B<%mem>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1533
+#, no-wrap
+msgid "policy"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1533
+#, no-wrap
+msgid "POL"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1537
+#, no-wrap
+msgid ""
+"scheduling class of the process. (alias\n"
+"B<class>, B<cls>).\n"
+"Possible values are:\n"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1561
+#, no-wrap
+msgid "parent process ID."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1563
+#, no-wrap
+msgid "pri"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1563
+#, no-wrap
+msgid "PRI"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1565
+#, no-wrap
+msgid "priority of the process. Higher number means higher priority."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1567
+#, no-wrap
+msgid "psr"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1567
+#, no-wrap
+msgid "PSR"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1569
+#, no-wrap
+msgid "processor that process last executed on."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1571
+#, no-wrap
+msgid "pss"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1571
+#, no-wrap
+msgid "PSS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1574
+#, no-wrap
+msgid ""
+"Proportional share size, the non-swapped physical memory, with shared memory\n"
+"proportionally accounted to all tasks mapping it."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1576
+#, no-wrap
+msgid "rbytes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1576
+#, no-wrap
+msgid "RBYTES"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1578
+#, no-wrap
+msgid "Number of bytes which this process really did cause to be fetched from the storage layer."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1580
+#, no-wrap
+msgid "rchars"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1580
+#, no-wrap
+msgid "RCHARS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1582
+#, no-wrap
+msgid "Number of bytes which this task has caused to be read from storage."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1584
+#, no-wrap
+msgid "rgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1584
+#, no-wrap
+msgid "RGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1586
+#, no-wrap
+msgid "real group ID."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1591
+#, no-wrap
+msgid ""
+"real group name. This will be the textual group ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1593
+#, no-wrap
+msgid "rops"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1593
+#, no-wrap
+msgid "ROPS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1596
+#, no-wrap
+msgid ""
+"Number of read I/O operations—that is, system calls such as\n"
+"B<read>(2) and B<pread>(2)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1598 ../man/ps.1:1604
+#, no-wrap
+msgid "RSS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1602
+#, no-wrap
+msgid ""
+"resident set size, the non-swapped physical memory that a task has used (in\n"
+"kilobytes). (alias\n"
+"B<rssize>, B<rsz>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1604
+#, no-wrap
+msgid "rssize"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1609
+#, no-wrap
+msgid ""
+"see\n"
+"B<rss>.\n"
+"(alias\n"
+"B<rss>, B<rsz>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1611
+#, no-wrap
+msgid "rsz"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1611
+#, no-wrap
+msgid "RSZ"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1616
+#, no-wrap
+msgid ""
+"see\n"
+"B<rss>.\n"
+"(alias\n"
+"B<rss>, B<rssize>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1618
+#, no-wrap
+msgid "rtprio"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1618
+#, no-wrap
+msgid "RTPRIO"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1620
+#, no-wrap
+msgid "realtime priority."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1622
+#, no-wrap
+msgid "ruid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1622
+#, no-wrap
+msgid "RUID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1624
+#, no-wrap
+msgid "real user ID."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1629
+#, no-wrap
+msgid ""
+"real user ID. This will be the textual user ID, if it can be obtained and\n"
+"the field width permits, or a decimal representation otherwise."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1638
+#, no-wrap
+msgid ""
+"minimal state display (one character). See section\n"
+"B<PROCESS STATE CODES>\n"
+"for the different values. See also\n"
+"B<stat>\n"
+"if you want additional information displayed. (alias\n"
+"B<state>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1640
+#, no-wrap
+msgid "sched"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1640
+#, no-wrap
+msgid "SCH"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1644
+#, no-wrap
+msgid ""
+"scheduling policy of the process. The policies SCHED_OTHER (SCHED_NORMAL),\n"
+"SCHED_FIFO, SCHED_RR, SCHED_BATCH, SCHED_ISO, SCHED_IDLE and SCHED_DEADLINE are\n"
+"respectively displayed as 0, 1, 2, 3, 4, 5 and 6."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1646
+#, no-wrap
+msgid "seat"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1646
+#, no-wrap
+msgid "SEAT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1650
+#, no-wrap
+msgid ""
+"displays the identifier associated with all hardware devices assigned\n"
+"to a specific workplace,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1652
+#, no-wrap
+msgid "sess"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1652
+#, no-wrap
+msgid "SESS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1655
+#, no-wrap
+msgid ""
+"session ID or, equivalently, the process ID of the session leader. (alias\n"
+"B<session>, B<sid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1657
+#, no-wrap
+msgid "sgi_p"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1660
+#, no-wrap
+msgid ""
+"processor that the process is currently executing on. Displays \"*\" if the\n"
+"process is not currently running or runnable."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1662
+#, no-wrap
+msgid "sgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1662
+#, no-wrap
+msgid "SGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1665
+#, no-wrap
+msgid ""
+"saved group ID. (alias\n"
+"B<svgid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1667
+#, no-wrap
+msgid "sgroup"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1667
+#, no-wrap
+msgid "SGROUP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1670
+#, no-wrap
+msgid ""
+"saved group name. This will be the textual group ID, if it can be obtained\n"
+"and the field width permits, or a decimal representation otherwise."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1672
+#, no-wrap
+msgid "sid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1672
+#, no-wrap
+msgid "SID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1677
+#, no-wrap
+msgid ""
+"see\n"
+"B<sess>.\n"
+"(alias\n"
+"B<sess>, B<session>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1679
+#, no-wrap
+msgid "sig"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1684
+#, no-wrap
+msgid ""
+"see\n"
+"B<pending>.\n"
+"(alias\n"
+"B<pending>, B<sig_pend>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1686
+#, no-wrap
+msgid "sigcatch"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1691
+#, no-wrap
+msgid ""
+"see\n"
+"B<caught>.\n"
+"(alias\n"
+"B<caught>, B<sig_catch>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1693
+#, no-wrap
+msgid "sigignore"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1698
+#, no-wrap
+msgid ""
+"see\n"
+"B<ignored>.\n"
+"(alias\n"
+"B<ignored>, B<sig_ignore>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1700
+#, no-wrap
+msgid "sigmask"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1705
+#, no-wrap
+msgid ""
+"see\n"
+"B<blocked>.\n"
+"(alias\n"
+"B<blocked>, B<sig_block>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1707
+#, no-wrap
+msgid "SIZE"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1711
+#, no-wrap
+msgid ""
+"approximate amount of swap space that would be required if the process were\n"
+"to dirty all writable pages and then be swapped out. This number is very\n"
+"rough!"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1713
+#, no-wrap
+msgid "slice"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1713
+#, no-wrap
+msgid "SLICE"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1716
+#, no-wrap
+msgid ""
+"displays the slice unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1718
+#, no-wrap
+msgid "spid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1718
+#, no-wrap
+msgid "SPID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1723
+#, no-wrap
+msgid ""
+"see\n"
+"B<lwp>.\n"
+"(alias\n"
+"B<lwp>, B<tid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1725
+#, no-wrap
+msgid "stackp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1725
+#, no-wrap
+msgid "STACKP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1727
+#, no-wrap
+msgid "address of the bottom (start) of stack for the process."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1729
+#, no-wrap
+msgid "start"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1734
+#, no-wrap
+msgid ""
+"time the command started. If the process was started less than 24 hours ago,\n"
+"the output format is \"HH:MM:SS\", else it is \"\\ \\ Mmm\\ dd\" (where Mmm is a\n"
+"three-letter month name). See also\n"
+"B<bsdstart>, B<start>, B<start_time>, and B<stime>."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1743
+#, no-wrap
+msgid ""
+"starting time or date of the process. Only the year will be displayed if the\n"
+"process was not started the same year\n"
+"B<ps>\n"
+"was invoked, or \"MmmDD\" if it was not started the same day, or \"HH:MM\"\n"
+"otherwise. See also\n"
+"B<bsdstart>, B<start>, B<lstart>, and B<stime>."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1745
+#, no-wrap
+msgid "stat"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1745
+#, no-wrap
+msgid "STAT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1751
+#, no-wrap
+msgid ""
+"multi-character process state. See section\n"
+"B<PROCESS STATE CODES>\n"
+"for the different values meaning. See also\n"
+"B<s>\\ andB<\\ state>\n"
+"if you just want the first character displayed."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1753
+#, no-wrap
+msgid "state"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1756
+#, no-wrap
+msgid ""
+"see\n"
+"B<s>.\\& (aliasB<\\ s>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1758
+#, no-wrap
+msgid "stime"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1758
+#, no-wrap
+msgid "STIME"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1760
+#, no-wrap
+msgid "see B<start_time>. (alias B<start_time>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1762
+#, no-wrap
+msgid "suid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1762
+#, no-wrap
+msgid "SUID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1765
+#, no-wrap
+msgid ""
+"saved user ID. (alias\n"
+"B<svuid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1767
+#, no-wrap
+msgid "supgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1767
+#, no-wrap
+msgid "SUPGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1770
+#, no-wrap
+msgid ""
+"group ids of supplementary groups, if any. See\n"
+"B<getgroups>(2)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1772
+#, no-wrap
+msgid "supgrp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1772
+#, no-wrap
+msgid "SUPGRP"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1775
+#, no-wrap
+msgid ""
+"group names of supplementary groups, if any. See\n"
+"B<getgroups>(2)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1777
+#, no-wrap
+msgid "suser"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1777
+#, no-wrap
+msgid "SUSER"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1781
+#, no-wrap
+msgid ""
+"saved user name. This will be the textual user ID, if it can be obtained and\n"
+"the field width permits, or a decimal representation otherwise. (alias\n"
+"B<svuser>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1783
+#, no-wrap
+msgid "svgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1783
+#, no-wrap
+msgid "SVGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1788
+#, no-wrap
+msgid ""
+"see\n"
+"B<sgid>.\n"
+"(alias\n"
+"B<sgid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1790
+#, no-wrap
+msgid "svuid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1790
+#, no-wrap
+msgid "SVUID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1795
+#, no-wrap
+msgid ""
+"see\n"
+"B<suid>.\n"
+"(alias\n"
+"B<suid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1797
+#, no-wrap
+msgid "sz"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1797
+#, no-wrap
+msgid "SZ"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1802
+#, no-wrap
+msgid ""
+"size in physical pages of the core image of the process. This includes text,\n"
+"data, and stack space. Device mappings are currently excluded; this is\n"
+"subject to change. See\n"
+"B<vsz>\\ andB<\\ rss>."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1804
+#, no-wrap
+msgid "tgid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1804
+#, no-wrap
+msgid "TGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1808
+#, no-wrap
+msgid ""
+"a number representing the thread group to which a task belongs (alias\n"
+"B<pid>).\n"
+"It is the process ID of the thread group leader."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1810
+#, no-wrap
+msgid "thcount"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1810
+#, no-wrap
+msgid "THCNT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1816
+#, no-wrap
+msgid ""
+"see\n"
+"B<nlwp>.\n"
+"(alias\n"
+"B<nlwp>).\n"
+"number of kernel threads owned by the process."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1818
+#, no-wrap
+msgid "tid"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1818
+#, no-wrap
+msgid "TID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1825
+#, no-wrap
+msgid ""
+"the unique number representing a dispatchable entity (alias\n"
+"B<spid>, B<tid>).\n"
+"This value may also appear as: a process ID (pid); a process group ID (pgrp);\n"
+"a session ID for the session leader (sid); a thread group ID for the thread\n"
+"group leader (tgid); and a tty process group ID for the process group leader\n"
+"(tpgid)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1830
+#, no-wrap
+msgid ""
+"cumulative CPU\\ time, \"[DD-]HH:MM:SS\" format. (alias\n"
+"B<cputime>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1832
+#, no-wrap
+msgid "timens"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1832
+#, no-wrap
+msgid "TIMENS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1838
+#, no-wrap
+msgid "times"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1841
+#, no-wrap
+msgid ""
+"cumulative CPU\\ time in seconds (alias\n"
+"B<cputimes>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1843
+#, no-wrap
+msgid "tname"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1846
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tt>, B<tty>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1848
+#, no-wrap
+msgid "TPGID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1851
+#, no-wrap
+msgid ""
+"ID of the foreground process group on the tty (terminal) that the process is\n"
+"connected to, or -1 if the process is not connected to a tty."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1853
+#, no-wrap
+msgid "trs"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1853
+#, fuzzy, no-wrap
+#| msgid "AUTHORS"
+msgid "TRS"
+msgstr "作者"
+
+#. type: tbl table
+#: ../man/ps.1:1855
+#, no-wrap
+msgid "text resident set size, the amount of physical memory devoted to executable code."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1857
+#, no-wrap
+msgid "tt"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1857 ../man/ps.1:1862
+#, no-wrap
+msgid "TT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1860
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tname>, B<tty>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1865
+#, no-wrap
+msgid ""
+"controlling tty (terminal). (alias\n"
+"B<tname>, B<tt>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1867
+#, no-wrap
+msgid "ucmd"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1872
+#, no-wrap
+msgid ""
+"see\n"
+"B<comm>.\n"
+"(alias\n"
+"B<comm>, B<ucomm>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1874
+#, no-wrap
+msgid "ucomm"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1879
+#, no-wrap
+msgid ""
+"see\n"
+"B<comm>.\n"
+"(alias\n"
+"B<comm>, B<ucmd>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1881
+#, no-wrap
+msgid "UID"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1886
+#, no-wrap
+msgid ""
+"see\n"
+"B<euid>.\n"
+"(alias\n"
+"B<euid>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1888
+#, no-wrap
+msgid "uname"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1893
+#, no-wrap
+msgid ""
+"see\n"
+"B<euser>.\n"
+"(alias\n"
+"B<euser>, B<user>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1895
+#, no-wrap
+msgid "unit"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1895
+#, no-wrap
+msgid "UNIT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1898
+#, no-wrap
+msgid ""
+"displays unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1905
+#, no-wrap
+msgid ""
+"see\n"
+"B<euser>.\n"
+"(alias\n"
+"B<euser>, B<uname>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1907
+#, no-wrap
+msgid "userns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1907
+#, no-wrap
+msgid "USERNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1913
+#, no-wrap
+msgid "uss"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1913
+#, no-wrap
+msgid "USS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1916
+#, no-wrap
+msgid ""
+"Unique set size, the non-swapped physical memory, which\n"
+"is not shared with an another task."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1918
+#, no-wrap
+msgid "utsns"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1918
+#, no-wrap
+msgid "UTSNS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1924
+#, no-wrap
+msgid "uunit"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1924
+#, no-wrap
+msgid "UUNIT"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1927
+#, no-wrap
+msgid ""
+"displays user unit which a process belongs to,\n"
+"if systemd support has been included."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1934
+#, no-wrap
+msgid ""
+"see\n"
+"B<vsz>.\n"
+"(alias\n"
+"B<vsz>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1940
+#, no-wrap
+msgid ""
+"virtual memory size of the process in KiB (1024-byte units). Device\n"
+"mappings are currently excluded; this is subject to change. (alias\n"
+"B<vsize>)."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1942
+#, no-wrap
+msgid "wbytes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1942
+#, no-wrap
+msgid "WBYTES"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1944
+#, no-wrap
+msgid "Number of bytes which this process caused to be sent to the storage layer."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1946
+#, no-wrap
+msgid "wcbytes"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1946
+#, no-wrap
+msgid "WCBYTES"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1948
+#, no-wrap
+msgid "Number of cancelled write bytes."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1950
+#, no-wrap
+msgid "wchan"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1952
+#, no-wrap
+msgid "name of the kernel function in which the process is sleeping."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1954
+#, no-wrap
+msgid "wchars"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1954
+#, no-wrap
+msgid "WCHARS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1956
+#, no-wrap
+msgid "Number of bytes which this task has caused, or shall cause to be written to disk."
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1958
+#, no-wrap
+msgid "wops"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1958
+#, no-wrap
+msgid "WOPS"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:1961
+#, no-wrap
+msgid ""
+"Number of write I/O operations—that is, system calls such as\n"
+"B<write>(2) and B<pwrite>(2)."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:1964
+#, fuzzy, no-wrap
+#| msgid "ENVIRONMENT"
+msgid "ENVIRONMENT VARIABLES"
+msgstr "环境"
+
+#. type: Plain text
+#: ../man/ps.1:1967
+msgid "The following environment variables could affect B<ps>:"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1967
+#, no-wrap
+msgid "B<COLUMNS>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1970
+msgid "Override default display width."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1970
+#, no-wrap
+msgid "B<LINES>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1973
+msgid "Override default display height."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1973
+#, no-wrap
+msgid "B<PS_PERSONALITY>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1978 ../man/ps.1:1983
+msgid ""
+"Set to one of posix, old, linux, bsd, sun, digital...\\& (see section "
+"B<PERSONALITY> below)."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1978
+#, no-wrap
+msgid "B<CMD_ENV>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1983
+#, no-wrap
+msgid "B<I_WANT_A_BROKEN_PS>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1986
+msgid "Force obsolete command line interpretation."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1986
+#, no-wrap
+msgid "B<LC_TIME>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1989
+msgid "Date format."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1989
+#, no-wrap
+msgid "B<LIBPROC_HIDE_KERNEL>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1996
+msgid ""
+"Set this to any value to hide kernel threads normally displayed with the B<-"
+"e> option. This is equivalent to selecting B<--ppid 2 -p 2 --deselect> "
+"instead. Also works in BSD mode."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1996
+#, no-wrap
+msgid "B<PS_COLORS>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:1999
+msgid "Not currently supported."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:1999
+#, no-wrap
+msgid "B<PS_FORMAT>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2010
+msgid ""
+"Default output format override. You may set this to a format string of the "
+"type used for the B<-o> option. The B<DefSysV> and B<DefBSD> values are "
+"particularly useful."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:2010
+#, no-wrap
+msgid "B<POSIXLY_CORRECT>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2013 ../man/ps.1:2020
+msgid "Don't find excuses to ignore bad \"features\"."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:2013
+#, no-wrap
+msgid "B<POSIX2>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2017
+msgid "When set to \"on\", acts as B<POSIXLY_CORRECT>."
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:2017
+#, no-wrap
+msgid "B<UNIX95>"
+msgstr ""
+
+#. type: TP
+#: ../man/ps.1:2020
+#, no-wrap
+msgid "B<_XPG>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2026
+msgid "Cancel B<CMD_ENV>=I<irix> non-standard behavior."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2034
+msgid ""
+"In general, it is a bad idea to set these variables. The one exception is "
+"B<CMD_ENV> or B<PS_PERSONALITY>, which could be set to Linux for normal "
+"systems. Without that setting, B<ps> follows the useless and bad parts of "
+"the Unix98 standard."
+msgstr ""
+
+#. type: SH
+#: ../man/ps.1:2034
+#, no-wrap
+msgid "PERSONALITY"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2037
+#, no-wrap
+msgid "390"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2037
+#, no-wrap
+msgid "like the OS/390 OpenEdition B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2038
+#, no-wrap
+msgid "aix"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2038
+#, no-wrap
+msgid "like AIX B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2039
+#, no-wrap
+msgid "bsd"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2039
+#, no-wrap
+msgid "like FreeBSD B<ps> (totally non-standard)"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2040
+#, no-wrap
+msgid "compaq"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2040
+#, no-wrap
+msgid "like Digital Unix B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2041
+#, no-wrap
+msgid "debian"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2041 ../man/ps.1:2043
+#, no-wrap
+msgid "like the old Debian B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2042
+#, no-wrap
+msgid "digital"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2042
+#, no-wrap
+msgid "like Tru64 (was Digital\\ Unix, was OSF/1) B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2043
+#, no-wrap
+msgid "gnu"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2044
+#, no-wrap
+msgid "hp"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2044 ../man/ps.1:2045
+#, no-wrap
+msgid "like HP-UX B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2045
+#, no-wrap
+msgid "hpux"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2046
+#, no-wrap
+msgid "irix"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2046 ../man/ps.1:2053
+#, no-wrap
+msgid "like Irix B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2047
+#, no-wrap
+msgid "linux"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2047
+#, no-wrap
+msgid "***** B<recommended> *****"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2048
+#, no-wrap
+msgid "old"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2048
+#, no-wrap
+msgid "like the original Linux B<ps> (totally non-standard)"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2049
+#, no-wrap
+msgid "os390"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2049 ../man/ps.1:2051
+#, no-wrap
+msgid "like OS/390 Open Edition B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2050
+#, no-wrap
+msgid "posix"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2050 ../man/ps.1:2056 ../man/ps.1:2057 ../man/ps.1:2059
+#: ../man/ps.1:2060 ../man/ps.1:2061
+#, no-wrap
+msgid "standard"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2051
+#, no-wrap
+msgid "s390"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2052
+#, no-wrap
+msgid "sco"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2052
+#, no-wrap
+msgid "like SCO B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2053
+#, no-wrap
+msgid "sgi"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2054
+#, no-wrap
+msgid "solaris2"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2054
+#, no-wrap
+msgid "like Solaris 2+ (SunOS 5) B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2055
+#, no-wrap
+msgid "sunos4"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2055
+#, no-wrap
+msgid "like SunOS 4 (Solaris 1) B<ps> (totally non-standard)"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2056
+#, no-wrap
+msgid "svr4"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2057
+#, no-wrap
+msgid "sysv"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2058
+#, no-wrap
+msgid "tru64"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2058
+#, no-wrap
+msgid "like Tru64 (was Digital Unix, was OSF/1) B<ps>"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2059
+#, no-wrap
+msgid "unix"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2060
+#, no-wrap
+msgid "unix95"
+msgstr ""
+
+#. type: tbl table
+#: ../man/ps.1:2061
+#, no-wrap
+msgid "unix98"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2069
+msgid ""
+"The fields B<bsdstart> and B<start> will only show the abbreviated month "
+"name in English. The fields B<lstart> and B<stime> will show the abbreviated "
+"month name in the configured locale but may exceed the column width due to "
+"the different lengths for abbreviated month and day names across languages."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2076
+msgid "B<pgrep>(1), B<pstree>(1), B<top>(1), B<strftime>(3), B<proc>(5)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2080
+msgid "This B<ps> conforms to:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2084
+msgid "Version 2 of the Single Unix Specification"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2086
+msgid "The Open Group Technical Standard Base Specifications, Issue\\ 6"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2088
+msgid "IEEE Std 1003.1, 2004\\ Edition"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2090
+msgid "X/Open System Interfaces Extension [UP\\ XSI]"
+msgstr ""
+
+#. type: IP
+#: ../man/ps.1:2090
+#, no-wrap
+msgid "5"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2092
+msgid "ISO/IEC 9945:2003"
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2120
+msgid ""
+"B<ps> was originally written by E<.MT lankeste@\\:fwi.\\:uva.\\:nl> Branko "
+"Lankester E<.ME .> E<.MT johnsonm@\\:redhat.\\:com> Michael K. Johnson E<."
+"ME> re-wrote it significantly to use the proc filesystem, changing a few "
+"things in the process. E<.MT mjshield@\\:nyx.\\:cs.\\:du.\\:edu> Michael "
+"Shields E<.ME> added the pid-list feature. E<.MT cblake@\\:bbn.\\:com> "
+"Charles Blake E<.ME> added multi-level sorting, the dirent-style library, "
+"the device name-to-number mmaped database, the approximate binary search "
+"directly on System.map, and many code and documentation cleanups. David "
+"Mossberger-Tang wrote the generic BFD support for psupdate. E<.MT albert@\\:"
+"users.\\:sf.\\:net> Albert Cahalan E<.ME> rewrote ps for full Unix98 and BSD "
+"support, along with some ugly hacks for obsolete and foreign syntax."
+msgstr ""
+
+#. type: Plain text
+#: ../man/ps.1:2124
+msgid ""
+"Please send bug reports to E<.MT procps@\\:freelists.\\:org> E<.ME .> No "
+"subscription is required or suggested."
+msgstr ""
+
+#. Setup ////////////////////////////////////////////////////////////////
+#. Commonly used strings (for consistency) ----------
+#. - our em-dashes
+#. type: ds Em
+#: ../man/top.1:11
+#, no-wrap
+msgid "\\ --\\ "
+msgstr ""
+
+#. type: ds EM
+#: ../man/top.1:12
+#, no-wrap
+msgid "B<\\ --\\ >"
+msgstr ""
+
+#. - our program name (makes great grammar)
+#. type: ds We
+#: ../man/top.1:14
+#, no-wrap
+msgid "top"
+msgstr ""
+
+#. type: ds WE
+#: ../man/top.1:15
+#, no-wrap
+msgid "B<top>"
+msgstr ""
+
+#. - other misc strs for consistent usage
+#. type: ds F
+#: ../man/top.1:17
+#, no-wrap
+msgid "I<Off>"
+msgstr ""
+
+#. type: ds O
+#: ../man/top.1:18
+#, no-wrap
+msgid "I<On>"
+msgstr ""
+
+#. type: ds AK
+#: ../man/top.1:20
+#, no-wrap
+msgid "asterisk (`*')"
+msgstr ""
+
+#. type: ds AM
+#: ../man/top.1:21
+#, no-wrap
+msgid "alternate-display mode"
+msgstr ""
+
+#. type: ds AS
+#: ../man/top.1:22
+#, no-wrap
+msgid "auxiliary storage"
+msgstr ""
+
+#. type: ds CF
+#: ../man/top.1:23
+#, no-wrap
+msgid "configuration file"
+msgstr ""
+
+#. type: ds CG
+#: ../man/top.1:24
+#, no-wrap
+msgid "`current' window/field group"
+msgstr ""
+
+#. type: ds CI
+#: ../man/top.1:25
+#, no-wrap
+msgid "interactive command"
+msgstr ""
+
+#. type: ds CO
+#: ../man/top.1:26
+#, no-wrap
+msgid "command-line option"
+msgstr ""
+
+#. type: ds CT
+#: ../man/top.1:27
+#, no-wrap
+msgid "command toggle"
+msgstr ""
+
+#. type: ds CW
+#: ../man/top.1:28
+#, no-wrap
+msgid "`current' window"
+msgstr ""
+
+#. type: ds FG
+#: ../man/top.1:29
+#, no-wrap
+msgid "field group"
+msgstr ""
+
+#. type: ds FM
+#: ../man/top.1:30
+#, no-wrap
+msgid "full-screen mode"
+msgstr ""
+
+#. type: ds KA
+#: ../man/top.1:31
+#, no-wrap
+msgid "arrow key"
+msgstr ""
+
+#. type: ds KS
+#: ../man/top.1:32
+#, no-wrap
+msgid "scrolling key"
+msgstr ""
+
+#. type: ds MP
+#: ../man/top.1:33
+#, no-wrap
+msgid "physical memory"
+msgstr ""
+
+#. type: ds MS
+#: ../man/top.1:34
+#, no-wrap
+msgid "swap file"
+msgstr ""
+
+#. type: ds MV
+#: ../man/top.1:35
+#, no-wrap
+msgid "virtual memory"
+msgstr ""
+
+#. type: ds NT
+#: ../man/top.1:36
+#, no-wrap
+msgid "B<Note>:"
+msgstr ""
+
+#. type: ds Pu
+#: ../man/top.1:38
+#, no-wrap
+msgid "cpu"
+msgstr ""
+
+#. type: ds SA
+#: ../man/top.1:39
+#, no-wrap
+msgid "summary area"
+msgstr ""
+
+#. type: ds TA
+#: ../man/top.1:40
+#, no-wrap
+msgid "task area"
+msgstr ""
+
+#. type: ds TD
+#: ../man/top.1:41
+#, no-wrap
+msgid "task display"
+msgstr ""
+
+#. type: ds TT
+#: ../man/top.1:42
+#, no-wrap
+msgid "B<processes> or B<threads>"
+msgstr ""
+
+#. type: ds TW
+#: ../man/top.1:43
+#, no-wrap
+msgid "task window"
+msgstr ""
+
+#. Reference to the various widths/sizes ------------
+#. - the max screen width limit
+#. type: ds WX
+#: ../man/top.1:46
+#, no-wrap
+msgid "512"
+msgstr ""
+
+#. - the header width w/ all fields
+#. type: ds WF
+#: ../man/top.1:48
+#, no-wrap
+msgid "approximately 250"
+msgstr ""
+
+#. - pid monitoring limit
+#. Xref's that depend on/mention other stuff --------
+#. type: ds Xa
+#: ../man/top.1:51
+#, no-wrap
+msgid "see"
+msgstr ""
+
+#. type: ds XC
+#: ../man/top.1:52
+#, no-wrap
+msgid "See the"
+msgstr ""
+
+#. type: ds Xc
+#: ../man/top.1:53
+#, no-wrap
+msgid "see the"
+msgstr ""
+
+#. type: ds XT
+#: ../man/top.1:54
+#, no-wrap
+msgid "See topic"
+msgstr ""
+
+#. type: ds Xt
+#: ../man/top.1:55
+#, no-wrap
+msgid "see topic"
+msgstr ""
+
+#. type: ds XX
+#: ../man/top.1:56
+#, no-wrap
+msgid "See `OVERVIEW, Linux Memory Types' for additional details"
+msgstr ""
+
+#. type: ds ZX
+#: ../man/top.1:57
+#, no-wrap
+msgid "Accessing smaps values is 10x more costly than other memory statistics and data for other users requires root privileges"
+msgstr ""
+
+#. type: TH
+#: ../man/top.1:62
+#, no-wrap
+msgid "TOP"
+msgstr ""
+
+#. type: TH
+#: ../man/top.1:62
+#, no-wrap
+msgid "August 2023"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:70
+msgid "top - display Linux processes"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:75
+msgid "\\*(WE [options]"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:85
+msgid ""
+"The \\*(WE program provides a dynamic real-time view of a running system. "
+"It can displayB< system> summary information as well as a list of \\*(TT "
+"currently being managed by the Linux kernel. The types of system summary "
+"information shown and the types, order and size of information displayed for "
+"processes are all user configurable and that configuration can be made "
+"persistent across restarts."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:93
+msgid ""
+"The program provides a limited interactive interface for process "
+"manipulation as well as a much more extensive interface for personal "
+"configuration \\*(Em encompassing every aspect of its operation. And while "
+"\\*(WE is referred to throughout this document, you are free to name the "
+"program anything you wish. That new name, possibly an alias, will then be "
+"reflected on \\*(We's display and used when reading and writing a \\*(CF."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:95
+#, no-wrap
+msgid "OVERVIEW"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:98
+#, no-wrap
+msgid "Documentation"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:101
+msgid "The remaining Table of Contents"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:141
+#, no-wrap
+msgid ""
+" OVERVIEW\n"
+" Operation\n"
+" Linux Memory Types\n"
+" 1. COMMAND-LINE Options\n"
+" 2. SUMMARY Display\n"
+" a. UPTIME and LOAD Averages\n"
+" b. TASK and CPU States\n"
+" c. MEMORY Usage\n"
+" 3. FIELDS / Columns Display\n"
+" a. DESCRIPTIONS of Fields\n"
+" b. MANAGING Fields\n"
+" 4. INTERACTIVE Commands\n"
+" a. GLOBAL Commands\n"
+" b. SUMMARY AREA Commands\n"
+" c. TASK AREA Commands\n"
+" 1. Appearance\n"
+" 2. Content\n"
+" 3. Size\n"
+" 4. Sorting\n"
+" d. COLOR Mapping\n"
+" 5. ALTERNATE-DISPLAY Provisions\n"
+" a. WINDOWS Overview\n"
+" b. COMMANDS for Windows\n"
+" c. SCROLLING a Window\n"
+" d. SEARCHING in a Window\n"
+" e. FILTERING in a Window\n"
+" 6. FILES\n"
+" a. PERSONAL Configuration File\n"
+" b. ADDING INSPECT Entries\n"
+" c. SYSTEM Configuration File\n"
+" d. SYSTEM Restrictions File\n"
+" 7. ENVIRONMENT VARIABLE(S)\n"
+" 8. STUPID TRICKS Sampler\n"
+" a. Kernel Magic\n"
+" b. Bouncing Windows\n"
+" c. The Big Bird Window\n"
+" d. The Ol' Switcheroo\n"
+" 9. BUGS, 10. SEE Also\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:144
+#, no-wrap
+msgid "Operation"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:150
+msgid ""
+"When operating \\*(We, the two most important keys are the help (h or ?) "
+"key and quit (`q') key. Alternatively, you could simply use the traditional "
+"interrupt key (^C) when you're done."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:157
+msgid ""
+"When started for the first time, you'll be presented with these traditional "
+"elements on the main \\*(We screen: 1) Summary Area; 2) Fields/Columns "
+"Header; 3) Task Area. Each of these will be explored in the sections that "
+"follow. There is also an Input/Message line between the Summary Area and "
+"Columns Header which needs no further explanation."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:165
+msgid ""
+"The main \\*(We screen is I<generally> quite adaptive to changes in terminal "
+"dimensions under X-Windows. Other \\*(We screens may be less so, especially "
+"those with static text. It ultimately depends, however, on your particular "
+"window manager and terminal emulator. There may be occasions when their "
+"view of terminal size and current contents differs from \\*(We's view, which "
+"is always based on operating system calls."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:170
+msgid ""
+"Following any re-size operation, if a \\*(We screen is corrupted, appears "
+"incomplete or disordered, simply typing something innocuous like a "
+"punctuation character or cursor motion key will usually restore it. In "
+"extreme cases, the following sequence almost certainly will:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:175
+#, no-wrap
+msgid ""
+" I<key/cmd objective >\n"
+" ^Z B<suspend> \\*(We\n"
+" fg B<resume> \\*(We\n"
+" E<lt>LeftE<gt> force a screen B<redraw> (if necessary)\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:179
+msgid ""
+"But if the display is still corrupted, there is one more step you could "
+"try. Insert this command after \\*(We has been suspended but before "
+"resuming it."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:182
+#, no-wrap
+msgid ""
+" I<key/cmd objective >\n"
+" reset restore your B<terminal settings>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:192
+msgid ""
+"\\*(NT the width of \\*(We's display will be limited to \\*(WX positions. "
+"Displaying all fields requires \\*(WF characters. Remaining screen width is "
+"usually allocated to any variable width columns currently visible. The "
+"variable width columns, such as COMMAND, are noted in topic 3a. DESCRIPTIONS "
+"of Fields. Actual output width may also be influenced by the -w switch, "
+"which is discussed in topic 1. COMMAND-LINE Options."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:197
+msgid ""
+"Lastly, some of \\*(We's screens or functions require the use of cursor "
+"motion keys like the standard \\*(KAs plus the Home, End, PgUp and PgDn "
+"keys. If your terminal or emulator does not provide those keys, the "
+"following combinations are accepted as alternatives:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:207
+#, no-wrap
+msgid ""
+" I< key equivalent-keys >\n"
+" Left alt +B< h >\n"
+" Down alt +B< j >\n"
+" Up alt +B< k >\n"
+" Right alt +B< l >\n"
+" Home alt + ctrl +B< h >\n"
+" PgDn alt + ctrl +B< j >\n"
+" PgUp alt + ctrl +B< k >\n"
+" End alt + ctrl +B< l >\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:214
+msgid ""
+"The B<Up> and B<Down> \\*(KAs have special significance when prompted for "
+"line input terminated with the E<lt>EnterE<gt> key. Those keys, or their "
+"aliases, can be used to retrieve previous input lines which can then be "
+"edited and re-input. And there are four additional keys available with line "
+"oriented input."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:222
+#, no-wrap
+msgid ""
+" I< key special-significance >\n"
+" Up recall B<older> strings for re-editing\n"
+" Down recall B<newer> strings or B<erase> entire line\n"
+" Insert toggle between B<insert> and B<overtype> modes\n"
+" Delete character B<removed> at cursor, moving others left\n"
+" Home jump to B<beginning> of input line\n"
+" End jump to B<end> of input line\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:225
+#, no-wrap
+msgid "Linux Memory Types"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:234
+msgid ""
+"For our purposes there are three types of memory, and one is optional. "
+"First is \\*(MP, a limited resource where code and data must reside when "
+"executed or referenced. Next is the optional \\*(MS, where modified (dirty) "
+"memory can be saved and later retrieved if too many demands are made on "
+"\\*(MP. Lastly we have \\*(MV, a nearly unlimited resource serving the "
+"following goals:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:240
+#, no-wrap
+msgid ""
+" 1. abstraction, free from physical memory addresses/limits\n"
+" 2. isolation, every process in a separate address space\n"
+" 3. sharing, a single mapping can serve multiple needs\n"
+" 4. flexibility, assign a virtual address to a file\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:249
+msgid ""
+"Regardless of which of these forms memory may take, all are managed as pages "
+"(typically 4096 bytes) but expressed by default in \\*(We as KiB "
+"(kibibyte). The memory discussed under topic `2c. MEMORY Usage' deals with "
+"\\*(MP and the \\*(MS for the system as a whole. The memory reviewed in "
+"topic `3. FIELDS / Columns Display' embraces all three memory types, but for "
+"individual processes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:255
+msgid ""
+"For each such process, every memory page is restricted to a single quadrant "
+"from the table below. Both \\*(MP and \\*(MV can include any of the four, "
+"while the \\*(MS only includes #1 through #3. The memory in quadrant #4, "
+"when modified, acts as its own dedicated \\*(MS."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:267
+#, no-wrap
+msgid ""
+" B<Private> | B<Shared>\n"
+" B<1> | B<2>\n"
+" B<Anonymous> . stack |\n"
+" . malloc() |\n"
+" . brk()/sbrk() | . POSIX shm*\n"
+" . mmap(PRIVATE, ANON) | . mmap(SHARED, ANON)\n"
+" -----------------------+----------------------\n"
+" . mmap(PRIVATE, fd) | . mmap(SHARED, fd)\n"
+" B<File-backed> . pgms/shared libs |\n"
+" B<3> | B<4>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:271
+msgid ""
+"The following may help in interpreting process level memory values displayed "
+"as scalable columns and discussed under topic `3a. DESCRIPTIONS of Fields'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:288
+#, no-wrap
+msgid ""
+" %MEM - simply RES divided by total \\*(MP\n"
+" CODE - the `pgms' portion of quadrant B<3>\n"
+" DATA - the entire quadrant B<1> portion of VIRT plus all\n"
+" explicit mmap file-backed pages of quadrant B<3>\n"
+" RES - anything occupying \\*(MP which, beginning with\n"
+" Linux-4.5, is the sum of the following three fields:\n"
+" RSan - quadrant B<1> pages, which include any\n"
+" former quadrant B<3> pages if modified\n"
+" RSfd - quadrant B<3> and quadrant B<4> pages\n"
+" RSsh - quadrant B<2> pages\n"
+" RSlk - subset of RES which cannot be swapped out (any quadrant)\n"
+" SHR - subset of RES (excludes B<1>, includes all B<2> & B<4>, some B<3>)\n"
+" SWAP - potentially any quadrant except B<4>\n"
+" USED - simply the sum of RES and SWAP\n"
+" VIRT - everything in-use and/or reserved (all quadrants)\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:293
+msgid ""
+"\\*(NT Even though program images and shared libraries are considered "
+"I<private> to a process, they will be accounted for as I<shared> (SHR) by "
+"the kernel."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:295
+#, no-wrap
+msgid "1. COMMAND-LINE Options"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:299
+msgid ""
+"MandatoryI< arguments> to long options are mandatory for short options too."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:302
+msgid ""
+"Although not required, the equals sign can be used with either option form "
+"and whitespace before and/or after the `=' is permitted."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:303
+#, no-wrap
+msgid "-B<b>, B<--batch>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:309
+msgid ""
+"Starts \\*(We in Batch mode, which could be useful for sending output from "
+"\\*(We to other programs or to a file. In this mode, \\*(We will not accept "
+"input and runs until the iterations limit you've set with the `-n' \\*(CO or "
+"until killed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:310
+#, no-wrap
+msgid "-B<c>, B<--cmdline-toggle>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:316
+msgid ""
+"Starts \\*(We with the last remembered `c' state reversed. Thus, if \\*(We "
+"was displaying command lines, now that field will show program names, and "
+"vice versa. \\*(XC `c' \\*(CI for additional information."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:317
+#, no-wrap
+msgid "-B<d>, B<--delay> = I<SECS> [I<.TENTHS>]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:322
+msgid ""
+"Specifies the delay between screen updates, and overrides the corresponding "
+"value in one's personal \\*(CF or the startup default. Later this can be "
+"changed with the `d' or `s' \\*(CIs."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:327
+msgid ""
+"Fractional seconds are honored, but a negative number is not allowed. In "
+"all cases, however, such changes are prohibited if \\*(We is running in "
+"Secure mode, except for root (unless the `s' \\*(CO was used). For "
+"additional information on Secure mode \\*(Xt 6d. SYSTEM Restrictions File."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:328
+#, no-wrap
+msgid "-B<E>, B<--scale-summary-mem> = I<k> | I<m> | I<g> | I<t> | I<p> | I<e>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:331
+msgid "Instructs \\*(We to force \\*(SA memory to be scaled as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:338
+#, no-wrap
+msgid ""
+" k - kibibytes\n"
+" m - mebibytes\n"
+" g - gibibytes\n"
+" t - tebibytes\n"
+" p - pebibytes\n"
+" e - exbibytes\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:341
+msgid "Later this can be changed with the `E' \\*(CT."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:342
+#, no-wrap
+msgid "-B<e>, B<--scale-task-mem> = I<k> | I<m> | I<g> | I<t> | I<p>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:345
+msgid "Instructs \\*(We to force \\*(TA memory to be scaled as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:351
+#, no-wrap
+msgid ""
+" k - kibibytes\n"
+" m - mebibytes\n"
+" g - gibibytes\n"
+" t - tebibytes\n"
+" p - pebibytes\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:354
+msgid "Later this can be changed with the `e' \\*(CT."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:355
+#, no-wrap
+msgid "-B<H>, B<--threads-show>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:360
+msgid ""
+"Instructs \\*(We to display individual threads. Without this \\*(CO a "
+"summation of all threads in each process is shown. Later this can be "
+"changed with the `H' \\*(CI."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:361
+#, no-wrap
+msgid "-B<h>, B<--help>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:364
+msgid "Display usage help text, then quit."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:365
+#, no-wrap
+msgid "-B<i>, B<--idle-toggle>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:372
+msgid ""
+"Starts \\*(We with the last remembered `i' state reversed. When this toggle "
+"is \\*F, tasks that have not used any \\*(PU since the last update will not "
+"be displayed. For additional information regarding this toggle \\*(Xt 4c. "
+"TASK AREA Commands, SIZE."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:373
+#, no-wrap
+msgid "-B<n>, B<--iterations> = I<NUMBER>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:377
+msgid ""
+"Specifies the maximum number of iterations, or frames, \\*(We should produce "
+"before ending."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:378
+#, no-wrap
+msgid "-B<O>, B<--list-fields>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:384
+msgid ""
+"This option acts as a form of help for the -o option shown below. It will "
+"cause \\*(We to print each of the available field names on a separate line, "
+"then quit. Such names are subject to NLS (National Language Support) "
+"translation."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:385
+#, no-wrap
+msgid "-B<o>, B<--sort-override> = I<FIELDNAME>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:393
+msgid ""
+"Specifies the name of the field on which tasks will be sorted, independent "
+"of what is reflected in the configuration file. You can prepend a `+' or "
+"`-' to the field name to also override the sort direction. A leading `+' "
+"will force sorting high to low, whereas a `-' will ensure a low to high "
+"ordering."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:396
+msgid ""
+"This option exists primarily to support automated/scripted batch mode "
+"operation."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:397
+#, no-wrap
+msgid "-B<p>, B<--pid> = I<PIDLIST> (as: I<1>,I<2>,I<3>, ... or -pI<1> -pI<2> -pI<3> ...)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:403
+msgid ""
+"Monitor only processes with specified process IDs. However, when combined "
+"with Threads mode (`H'), all processes in the thread group (\\*(Xa TGID) of "
+"each monitored PID will also be shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:407
+msgid ""
+"This option can be given up to 20 times, or you can provide a comma "
+"delimited list with up to 20 pids. Co-mingling both approaches is permitted."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:410
+msgid ""
+"A pid value of zero will be treated as the process id of the \\*(We program "
+"itself once it is running."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:414
+msgid ""
+"This is a \\*(CO only and should you wish to return to normal operation, it "
+"is not necessary to quit and restart \\*(We \\*(Em just issue any of these "
+"\\*(CIs: `=', `u' or `U'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:416
+msgid "The `p', `u' and `U' \\*(COs are mutually exclusive."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:417
+#, no-wrap
+msgid "-B<S>, B<--accum-time-toggle>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:423
+msgid ""
+"Starts \\*(We with the last remembered `S' state reversed. When Cumulative "
+"time mode is \\*O, each process is listed with the \\*(Pu time that it and "
+"its dead children have used. \\*(XC `S' \\*(CI for additional information "
+"regarding this mode."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:424
+#, no-wrap
+msgid "-B<s>, B<--secure-mode>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:429
+msgid ""
+"Starts \\*(We with secure mode forced, even for root. This mode is far "
+"better controlled through a system \\*(CF (\\*(Xt 6. FILES)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:430
+#, no-wrap
+msgid "-B<U>, B<--filter-any-user> = I<USER> (as: I<number> or I<name>)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:435
+msgid ""
+"Display only processes with a user id or user name matching that given. "
+"This option matches onI< any> user (I<real>, I<effective>, I<saved>, or "
+"I<filesystem>)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:438 ../man/top.1:448
+msgid ""
+"Prepending an exclamation point (`!') to the user id or name instructs "
+"\\*(We to display only processes with users not matching the one provided."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:440 ../man/top.1:450
+msgid "The `p', `U' and `u' \\*(COs are mutually exclusive."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:441
+#, no-wrap
+msgid "-B<u>, B<--filter-only-euser> = I<USER> (as: I<number> or I<name>)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:445
+msgid ""
+"Display only processes with a user id or user name matching that given. "
+"This option matches on theI< effective> user id only."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:451
+#, no-wrap
+msgid "-B<V>, B<--version>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:454
+msgid "Display version information, then quit."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:455
+#, no-wrap
+msgid "-B<w>, B<--width> [=I<COLUMNS>]"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:462
+msgid ""
+"In Batch mode, when used without an argument \\*(We will format output using "
+"the COLUMNS= and LINES= environment variables, if set. Otherwise, width "
+"will be fixed at the maximum \\*(WX columns. With an argument, output width "
+"can be decreased or increased (up to \\*(WX) but the number of rows is "
+"considered unlimited."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:468
+msgid ""
+"In normal display mode, when used without an argument \\*(We willI< attempt> "
+"to format output using the COLUMNS= and LINES= environment variables, if "
+"set. With an argument, output width can only be decreased, not increased. "
+"Whether using environment variables or an argument with -w, whenI< not> in "
+"Batch mode actual terminal dimensions can never be exceeded."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:471
+msgid ""
+"\\*(NT Without the use of this \\*(CO, output width is always based on the "
+"terminal at which \\*(We was invoked whether or not in Batch mode."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:472
+#, no-wrap
+msgid "-B<1>, B<--single-cpu-toggle>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:478
+msgid ""
+"Starts \\*(We with the last remembered Cpu States portion of the \\*(SA "
+"reversed. Either all \\*(Pu information will be displayed in a single line "
+"or each \\*(Pu will be displayed separately, depending on the state of the "
+"NUMA Node \\*(CT (`2')."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:480
+msgid "\\*(XC `1' and `2' \\*(CIs for additional information."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:482
+#, no-wrap
+msgid "2. SUMMARY Display"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:488
+msgid ""
+"Each of the following three areas are individually controlled through one or "
+"more \\*(CIs. \\*(XT 4b. SUMMARY AREA Commands for additional information "
+"regarding these provisions."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:490
+#, no-wrap
+msgid "2a. UPTIME and LOAD Averages"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:493
+msgid "This portion consists of a single line containing:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:498
+#, no-wrap
+msgid ""
+" B<program> orB< window> name, depending on display mode\n"
+" current time and length of time since last boot\n"
+" total number of users\n"
+" system load avg over the last 1, 5 and 15 minutes\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:501
+#, no-wrap
+msgid "2b. TASK and CPU States"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:506
+msgid ""
+"This portion consists of a minimum of two lines. In an SMP environment, "
+"additional lines can reflect individual \\*(PU state percentages."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:510
+msgid ""
+"Line 1 shows totalB< tasks> orB< threads>, depending on the state of the "
+"Threads-mode toggle. That total is further classified as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:512
+#, no-wrap
+msgid " running; sleeping; stopped; zombie\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:516
+msgid ""
+"Line 2 shows \\*(PU state percentages based on the interval since the last "
+"refresh."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:519
+msgid ""
+"As a default, percentages for these individual categories are displayed. "
+"Depending on your kernel version, the B<st> field may not be shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:528
+#, no-wrap
+msgid ""
+" B<us> : time running un-niced user processes\n"
+" B<sy> : time running kernel processes\n"
+" B<ni> : time running niced user processes\n"
+" B<id> : time spent in the kernel idle handler\n"
+" B<wa> : time waiting for I/O completion\n"
+" B<hi> : time spent servicing hardware interrupts\n"
+" B<si> : time spent servicing software interrupts\n"
+" B<st> : time stolen from this vm by the hypervisor\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:532
+msgid ""
+"The `sy' value above also reflects the time running a virtual \\*(Pu for "
+"guest operating systems, including those that have been niced."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:536
+msgid ""
+"Beyond the first tasks/threads line, there are alternate \\*(PU display "
+"modes available via the 4-way `t' \\*(CT. They show an abbreviated summary "
+"consisting of these elements:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:539
+#, no-wrap
+msgid ""
+" a b c d\n"
+" %Cpu(s): B<75.0>/25.0 B<100>[ ... ]\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:546
+msgid ""
+"Where: a) is the `user' (us + ni) percentage; b) is the `system' (sy + hi + "
+"si + guests) percentage; c) is the total percentage; and d) is one of two "
+"visual graphs of those representations. Such graphs also reflect separate "
+"`user' and `system' portions."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:551
+msgid ""
+"If the `4' \\*(CT is used to yield more than two cpus per line, results will "
+"be further abridged eliminating the a) and b) elements. However, that "
+"information is still reflected in the graph itself assuming color is active "
+"or, if not, bars vs. blocks are being shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:554
+msgid ""
+"\\*(XT 4b. SUMMARY AREA Commands for additional information on the `t' and "
+"`4' \\*(CTs."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:556
+#, no-wrap
+msgid "2c. MEMORY Usage"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:561
+msgid ""
+"This portion consists of two lines which may express values in kibibytes "
+"(KiB) through exbibytes (EiB) depending on the scaling factor enforced with "
+"the `E' \\*(CI. The /proc/meminfo source fields are shown in parenthesis."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:563
+msgid "Line 1 reflects \\*(MP, classified as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:568
+#, no-wrap
+msgid ""
+" total ( MemTotal )\n"
+" free ( MemFree )\n"
+" used ( MemTotal - MemAvailable )\n"
+" buff/cache ( Buffers + Cached + SReclaimable )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:571
+msgid "Line 2 reflects mostly \\*(MV, classified as:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:576
+#, no-wrap
+msgid ""
+" total ( SwapTotal )\n"
+" free ( SwapFree )\n"
+" used ( SwapTotal - SwapFree )\n"
+" avail ( MemAvailable, which is \\*(MP )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:584
+msgid ""
+"The B<avail> number on line 2 is an estimation of \\*(MP available for "
+"starting new applications, without swapping. Unlike the B<free> field, it "
+"attempts to account for readily reclaimable page cache and memory slabs. It "
+"is available on kernels 3.14, emulated on kernels 2.6.27+, otherwise the "
+"same as B<free>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:587
+msgid ""
+"In the alternate memory display modes, two abbreviated summary lines are "
+"shown consisting of these elements:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:591
+#, no-wrap
+msgid ""
+" a b c\n"
+" GiB Mem : B<18.7>/15.738 [ ... ]\n"
+" GiB Swap: B< 0.0>/7.999 [ ... ]\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:595
+msgid ""
+"Where: a) is the percentage used; b) is the total available; and c) is one "
+"of two visual graphs of those representations."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:602
+msgid ""
+"In the case of \\*(MP, the percentage represents the B<total> minus the "
+"estimated B<avail> noted above. The `Mem' graph itself is divided between "
+"the non-cached portion of B<used> and any remaining memory not otherwise "
+"accounted for by B<avail>. \\*(XT 4b. SUMMARY AREA Commands and the `m' "
+"command for additional information on that special 4-way toggle."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:604
+msgid "This table may help in interpreting the scaled values displayed:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:611
+#, no-wrap
+msgid ""
+" KiB = kibibyte = 1024 bytes\n"
+" MiB = mebibyte = 1024 KiB = 1,048,576 bytes\n"
+" GiB = gibibyte = 1024 MiB = 1,073,741,824 bytes\n"
+" TiB = tebibyte = 1024 GiB = 1,099,511,627,776 bytes\n"
+" PiB = pebibyte = 1024 TiB = 1,125,899,906,842,624 bytes\n"
+" EiB = exbibyte = 1024 PiB = 1,152,921,504,606,846,976 bytes\n"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:614
+#, no-wrap
+msgid "3. FIELDS / Columns"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:617
+#, no-wrap
+msgid "3a. DESCRIPTIONS of Fields"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:623
+msgid ""
+"Listed below are \\*(We's available process fields (columns). They are "
+"shown in strict ascii alphabetical order. You may customize their position "
+"and whether or not they are displayable with the `f' (Fields Management) "
+"\\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:628
+msgid ""
+"Any field is selectable as the sort field, and you control whether they are "
+"sorted high-to-low or low-to-high. For additional information on sort "
+"provisions \\*(Xt 4c. TASK AREA Commands, SORTING."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:634
+msgid ""
+"The fields related to \\*(MP or \\*(MV reference `(KiB)' which is the "
+"unsuffixed display mode. Such fields may, however, be scaled from KiB "
+"through PiB. That scaling is influenced via the `e' \\*(CI or established "
+"for startup through a build option."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:635
+#, no-wrap
+msgid "B<%CPU \\*(Em \\*(PU Usage >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:639
+msgid ""
+"The task's share of the elapsed \\*(PU time since the last screen update, "
+"expressed as a percentage of total \\*(PU time."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:644
+msgid ""
+"In a true SMP environment, if a process is multi-threaded and \\*(We is "
+"I<not> operating in Threads mode, amounts greater than 100% may be "
+"reported. You toggle Threads mode with the `H' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:649
+msgid ""
+"Also for multi-processor environments, if Irix mode is \\*F, \\*(We will "
+"operate in Solaris mode where a task's \\*(Pu usage will be divided by the "
+"total number of \\*(PUs. You toggle Irix/Solaris modes with the `I' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:655
+msgid ""
+"\\*(NT When running in forest view mode (`V') with children collapsed (`v'), "
+"this field will also include the \\*(PU time of those unseen children. "
+"\\*(XT 4c. TASK AREA Commands, CONTENT for more information regarding the "
+"`V' and `v' toggles."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:656
+#, no-wrap
+msgid "B<%CUC \\*(Em \\*(PU Utilization >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:660
+msgid ""
+"This field is identical to %CUU below, except the percentage also reflects "
+"reaped child processes."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:661
+#, no-wrap
+msgid "B<%CUU \\*(Em \\*(PU Utilization >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:665
+msgid ""
+"A task's total \\*(PU usage divided by its elapsed running time, expressed "
+"as a percentage."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:670
+msgid ""
+"If a process currently displays high \\*(PU usage, this field can help "
+"determine if such behavior is normal. Conversely, if a process has low "
+"\\*(PU usage currently, %CUU may reflect historically higher demands over "
+"its lifetime."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:671
+#, no-wrap
+msgid "B<%MEM \\*(Em Memory Usage (RES) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:674
+msgid "A task's currently resident share of available \\*(MP."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:676 ../man/top.1:737 ../man/top.1:770 ../man/top.1:943
+#: ../man/top.1:1004 ../man/top.1:1057 ../man/top.1:1102 ../man/top.1:1122
+msgid "\\*(XX."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:677
+#, no-wrap
+msgid "B<AGID \\*(Em Autogroup Identifier >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:682
+msgid ""
+"The autogroup identifier associated with a process. This feature operates "
+"in conjunction with the CFS scheduler to improve interactive desktop "
+"performance."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:691
+msgid ""
+"When /proc/sys/kernel/sched_autogroup_enabled is set, a new autogroup is "
+"created with each new session (\\*(Xa SID). All subsequently forked "
+"processes in that session inherit membership in this autogroup. The kernel "
+"then attempts to equalize distribution of CPU cycles across such groups. "
+"Thus, an autogroup with many \\*(PU intensive processes (e.g make -j) will "
+"not dominate an autogroup with only one or two processes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:693
+msgid "When -1 is displayed it means this information is not available."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:694
+#, no-wrap
+msgid "B<AGNI \\*(Em Autogroup Nice Value >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:700
+msgid ""
+"The autogroup nice value which affects scheduling of all processes in that "
+"group. A negative nice value means higher priority, whereas a positive nice "
+"value means lower priority."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:701
+#, no-wrap
+msgid "B<CGNAME \\*(Em Control Group Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:705
+msgid ""
+"The name of the control group to which a process belongs, or `-' if not "
+"applicable for that process."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:709
+msgid ""
+"This will typically be the last entry in the full list of control groups as "
+"shown under the next heading (CGROUPS). And as is true there, this field is "
+"also variable width."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:710
+#, no-wrap
+msgid "B<CGROUPS \\*(Em Control Groups >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:714
+msgid ""
+"The names of the control group(s) to which a process belongs, or `-' if not "
+"applicable for that process."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:719
+msgid ""
+"Control Groups provide for allocating resources (cpu, memory, network "
+"bandwidth, etc.) among installation-defined groups of processes. They "
+"enable fine-grained control over allocating, denying, prioritizing, managing "
+"and monitoring those resources."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:723
+msgid ""
+"Many different hierarchies of cgroups can exist simultaneously on a system "
+"and each hierarchy is attached to one or more subsystems. A subsystem "
+"represents a single resource."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:730
+msgid ""
+"\\*(NT The CGROUPS field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters). Even so, such "
+"variable width fields could still suffer truncation. \\*(XT 5c. SCROLLING a "
+"Window for additional information on accessing any truncated data."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:731
+#, no-wrap
+msgid "B<CODE \\*(Em Code Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:735
+msgid ""
+"The amount of \\*(MP currently devoted to executable code, also known as the "
+"Text Resident Set size or TRS."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:738
+#, no-wrap
+msgid "B<COMMAND \\*(Em Command Name> or CommandB< Line >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:744
+msgid ""
+"Display the command line used to start a task or the name of the associated "
+"program. You toggle between commandI< line> andI< name> with `c', which is "
+"both a \\*(CO and an \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:749
+#, no-wrap
+msgid ""
+"When you've chosen to display command lines, processes without a command\n"
+"line (like kernel threads) will be shown with only the program name in\n"
+"brackets, as in this example:\n"
+" [kthreadd]\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:752
+msgid ""
+"This field may also be impacted by the forest view display mode. \\*(XC `V' "
+"\\*(CI for additional information regarding that mode."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:761
+msgid ""
+"\\*(NT The COMMAND field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters). Even so, such "
+"variable width fields could still suffer truncation. This is especially "
+"true for this field when command lines are being displayed (the `c' "
+"\\*(CI.) \\*(XT 5c. SCROLLING a Window for additional information on "
+"accessing any truncated data."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:762
+#, no-wrap
+msgid "B<DATA \\*(Em Data + Stack Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:768
+msgid ""
+"The amount of private memory I<reserved> by a process. It is also known as "
+"the Data Resident Set or DRS. Such memory may not yet be mapped to \\*(MP "
+"(RES) but will always be included in the \\*(MV (VIRT) amount."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:771
+#, no-wrap
+msgid "B<ELAPSED \\*(Em Elapsed Running Time>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:775
+msgid ""
+"The length of time since a process was started. Thus, the most recently "
+"started task will display the smallest time interval."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:780
+msgid ""
+"The value will be expressed as `HH,MM' (hours,minutes) but is subject to "
+"additional scaling if the interval becomes too great to fit column width. "
+"At that point it will be scaled to `DD+HH' (days+hours) and possibly beyond."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:781
+#, no-wrap
+msgid "B<ENVIRON \\*(Em Environment variables >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:787
+msgid ""
+"Display all of the environment variables, if any, as seen by the respective "
+"processes. These variables will be displayed in their raw native order, not "
+"the sorted order you are accustomed to seeing with an unqualified `set'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:795
+msgid ""
+"\\*(NT The ENVIRON field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters). Even so, such "
+"variable width fields could still suffer truncation. This is especially "
+"true for this field. \\*(XT 5c. SCROLLING a Window for additional "
+"information on accessing any truncated data."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:796
+#, no-wrap
+msgid "B<EXE \\*(Em Executable Path >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:800
+msgid ""
+"Where available, this is the full path to the executable, including the "
+"program name."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:804
+msgid ""
+"\\*(NT The EXE field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:805
+#, no-wrap
+msgid "B<Flags \\*(Em Task Flags >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:810
+msgid ""
+"This column represents the task's current scheduling flags which are "
+"expressed in hexadecimal notation and with zeros suppressed. These flags "
+"are officially documented in E<lt>linux/sched.hE<gt>."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:811
+#, no-wrap
+msgid "B<GID \\*(Em Group Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:814
+msgid "TheI< effective> group ID."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:815
+#, no-wrap
+msgid "B<GROUP \\*(Em Group Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:818
+msgid "TheI< effective> group name."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:819
+#, no-wrap
+msgid "B<LOGID \\*(Em Login User Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:823
+msgid ""
+"The user ID used atI< login>. When -1 is displayed it means this "
+"information is not available."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:824
+#, no-wrap
+msgid "B<LXC \\*(Em Lxc Container Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:828
+msgid ""
+"The name of the lxc container within which a task is running. If a process "
+"is not running inside a container, a dash (`-') will be shown."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:829
+#, no-wrap
+msgid "B<NI \\*(Em Nice Value >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:836
+msgid ""
+"The nice value of the task. A negative nice value means higher priority, "
+"whereas a positive nice value means lower priority. Zero in this field "
+"simply means priority will not be adjusted in determining a task's dispatch-"
+"ability."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:840
+msgid ""
+"\\*(NT This value only affects scheduling priority relative to other "
+"processes in the same autogroup. \\*(XC `AGID' and `AGNI' fields for "
+"additional information on autogroups."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:841
+#, no-wrap
+msgid "B<NU \\*(Em Last known NUMA node >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:845
+msgid ""
+"A number representing the NUMA node associated with the last used processor "
+"(`P'). When -1 is displayed it means that NUMA information is not available."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:847
+msgid ""
+"\\*(XC `2' and `3' \\*(CIs for additional NUMA provisions affecting the "
+"\\*(SA."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:848
+#, no-wrap
+msgid "B<OOMa \\*(Em Out of Memory Adjustment Factor >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:853
+msgid ""
+"The value, ranging from -1000 to +1000, added to the current out of memory "
+"score (OOMs) which is then used to determine which task to kill when memory "
+"is exhausted."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:854
+#, no-wrap
+msgid "B<OOMs \\*(Em Out of Memory Score >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:859
+msgid ""
+"The value, ranging from 0 to +1000, used to select task(s) to kill when "
+"memory is exhausted. Zero translates to `never kill' whereas 1000 means "
+"`always kill'."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:860
+#, no-wrap
+msgid "B<P \\*(Em Last used \\*(PU (SMP) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:868
+msgid ""
+"A number representing the last used processor. In a true SMP environment "
+"this will likely change frequently since the kernel intentionally uses weak "
+"affinity. Also, the very act of running \\*(We may break this weak affinity "
+"and cause more processes to change \\*(PUs more often (because of the extra "
+"demand for \\*(Pu time)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:869
+#, no-wrap
+msgid "B<PGRP \\*(Em Process Group Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:878
+msgid ""
+"Every process is member of a unique process group which is used for "
+"distribution of signals and by terminals to arbitrate requests for their "
+"input and output. When a process is created (forked), it becomes a member "
+"of the process group of its parent. By convention, this value equals the "
+"process ID (\\*(Xa PID) of the first member of a process group, called the "
+"process group leader."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:879
+#, no-wrap
+msgid "B<PID \\*(Em Process Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:884
+msgid ""
+"The task's unique process ID, which periodically wraps, though never "
+"restarting at zero. In kernel terms, it is a dispatchable entity defined by "
+"a task_struct."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:889
+msgid ""
+"This value may also be used as: a process group ID (\\*(Xa PGRP); a session "
+"ID for the session leader (\\*(Xa SID); a thread group ID for the thread "
+"group leader (\\*(Xa TGID); and a TTY process group ID for the process group "
+"leader (\\*(Xa TPGID)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:890
+#, no-wrap
+msgid "B<PPID \\*(Em Parent Process Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:893
+msgid "The process ID (pid) of a task's parent."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:894
+#, no-wrap
+msgid "B<PR \\*(Em Priority >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:899
+msgid ""
+"The scheduling priority of the task. If you see `rt' in this field, it "
+"means the task is running under real time scheduling priority."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:903
+msgid ""
+"Under linux, real time priority is somewhat misleading since traditionally "
+"the operating itself was not preemptible. And while the 2.6 kernel can be "
+"made mostly preemptible, it is not always so."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:904
+#, no-wrap
+msgid "B<PSS \\*(Em Proportional Resident Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:909
+msgid ""
+"The proportion of this task's share of `RSS' where each page is divided by "
+"the number of processes sharing it. It is also the sum of the `PSan', "
+"`PSfd' and `PSsh' fields."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:912
+msgid ""
+"For example, if a process has 1000 resident pages alone and 1000 resident "
+"pages shared with another process, its `PSS' would be 1500 (times page size)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:914 ../man/top.1:927 ../man/top.1:951 ../man/top.1:1114
+msgid "\\*(ZX."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:917
+msgid "B<PSan \\*(Em Proportional Anonymous Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:919
+msgid "B<PSfd \\*(Em Proportional File Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:921
+msgid "B<PSsh \\*(Em Proportional Shmem Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:925
+msgid ""
+"As was true for `PSS' above (total proportional resident memory), these "
+"fields represent the proportion of this task's share of each type of memory "
+"divided by the number of processes sharing it."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:929
+#, no-wrap
+msgid "B<RES \\*(Em Resident Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:934
+msgid ""
+"A subset of the virtual address space (VIRT) representing the non-swapped "
+"\\*(MP a task is currently using. It is also the sum of the `RSan', `RSfd' "
+"and `RSsh' fields."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:938
+msgid ""
+"It can include private anonymous pages, private pages mapped to files "
+"(including program images and shared libraries) plus shared anonymous "
+"pages. All such memory is backed by the \\*(MS represented separately under "
+"SWAP."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:941
+msgid ""
+"Lastly, this field may also include shared file-backed pages which, when "
+"modified, act as a dedicated \\*(MS and thus will never impact SWAP."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:944
+#, no-wrap
+msgid "B<RSS \\*(Em Resident Memory, smaps (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:949
+msgid ""
+"Another, more precise view of process non-swapped \\*(MP. It is obtained "
+"from the `smaps_rollup' file and is generally slightly larger than that "
+"shown for `RES'."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:952
+#, no-wrap
+msgid "B<RSan \\*(Em Resident Anonymous Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:956
+msgid ""
+"A subset of resident memory (RES) representing private pages not mapped to a "
+"file."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:957
+#, no-wrap
+msgid "B<RSfd \\*(Em Resident File-Backed Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:962
+msgid ""
+"A subset of resident memory (RES) representing the implicitly shared pages "
+"supporting program images and shared libraries. It also includes explicit "
+"file mappings, both private and shared."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:963
+#, no-wrap
+msgid "B<RSlk \\*(Em Resident Locked Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:966
+msgid "A subset of resident memory (RES) which cannot be swapped out."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:967
+#, no-wrap
+msgid "B<RSsh \\*(Em Resident Shared Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:971
+msgid ""
+"A subset of resident memory (RES) representing the explicitly shared "
+"anonymous shm*/mmap pages."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:972
+#, no-wrap
+msgid "B<RUID \\*(Em Real User Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:975
+msgid "TheI< real> user ID."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:976
+#, no-wrap
+msgid "B<RUSER \\*(Em Real User Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:979
+msgid "TheI< real> user name."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:980
+#, no-wrap
+msgid "B<S \\*(Em Process Status >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:990
+#, no-wrap
+msgid ""
+"The status of the task which can be one of:\n"
+" B<D> = uninterruptible sleep\n"
+" B<I> = idle\n"
+" B<R> = running\n"
+" B<S> = sleeping\n"
+" B<T> = stopped by job control signal\n"
+" B<t> = stopped by debugger during trace\n"
+" B<Z> = zombie\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:995
+msgid ""
+"Tasks shown as running should be more properly thought of as ready to run "
+"\\*(Em their task_struct is simply represented on the Linux run-queue. Even "
+"without a true SMP machine, you may see numerous tasks in this state "
+"depending on \\*(We's delay interval and nice value."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:996
+#, no-wrap
+msgid "B<SHR \\*(Em Shared Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1002
+msgid ""
+"A subset of resident memory (RES) that may be used by other processes. It "
+"will include shared anonymous pages and shared file-backed pages. It also "
+"includes private pages mapped to files representing program images and "
+"shared libraries."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1005
+#, no-wrap
+msgid "B<SID \\*(Em Session Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1013
+msgid ""
+"A session is a collection of process groups (\\*(Xa PGRP), usually "
+"established by the login shell. A newly forked process joins the session of "
+"its creator. By convention, this value equals the process ID (\\*(Xa PID) "
+"of the first member of the session, called the session leader, which is "
+"usually the login shell."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1014
+#, no-wrap
+msgid "B<STARTED \\*(Em Start Time Interval>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1018
+msgid ""
+"The length of time since system boot when a process started. Thus, the most "
+"recently started task will display the largest time interval."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1022
+msgid ""
+"The value will be expressed as `MM:SS' (minutes:seconds). But if the "
+"interval is too great to fit column width it will be scaled as `HH,"
+"MM' (hours,minutes) and possibly beyond."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1023
+#, no-wrap
+msgid "B<SUID \\*(Em Saved User Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1026
+msgid "TheI< saved> user ID."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1027
+#, no-wrap
+msgid "B<SUPGIDS \\*(Em Supplementary Group IDs >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1032
+msgid ""
+"The IDs of any supplementary group(s) established at login or inherited from "
+"a task's parent. They are displayed in a comma delimited list."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1036
+msgid ""
+"\\*(NT The SUPGIDS field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1037
+#, no-wrap
+msgid "B<SUPGRPS \\*(Em Supplementary Group Names >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1042
+msgid ""
+"The names of any supplementary group(s) established at login or inherited "
+"from a task's parent. They are displayed in a comma delimited list."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1046
+msgid ""
+"\\*(NT The SUPGRPS field, unlike most columns, is not fixed-width. When "
+"displayed, it plus any other variable width columns will be allocated all "
+"remaining screen width (up to the maximum \\*(WX characters)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1047
+#, no-wrap
+msgid "B<SUSER \\*(Em Saved User Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1050
+msgid "TheI< saved> user name."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1051
+#, no-wrap
+msgid "B<SWAP \\*(Em Swapped Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1055
+msgid ""
+"The formerly resident portion of a task's address space written to the "
+"\\*(MS when \\*(MP becomes over committed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1058
+#, no-wrap
+msgid "B<TGID \\*(Em Thread Group Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1063
+msgid ""
+"The ID of the thread group to which a task belongs. It is the PID of the "
+"thread group leader. In kernel terms, it represents those tasks that share "
+"an mm_struct."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1064
+#, no-wrap
+msgid "B<TIME \\*(Em \\*(PU Time >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1071
+msgid ""
+"Total \\*(PU time the task has used since it started. When Cumulative mode "
+"is \\*O, each process is listed with the \\*(Pu time that it and its dead "
+"children have used. You toggle Cumulative mode with `S', which is both a "
+"\\*(CO and an \\*(CI. \\*(XC `S' \\*(CI for additional information "
+"regarding this mode."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1072
+#, no-wrap
+msgid "B<TIME+ \\*(Em \\*(PU Time, hundredths >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1076
+msgid ""
+"The same as TIME, but reflecting more granularity through hundredths of a "
+"second."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1077
+#, no-wrap
+msgid "B<TPGID \\*(Em Tty Process Group Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1083
+msgid ""
+"The process group ID of the foreground process for the connected tty, or -1 "
+"if a process is not connected to a terminal. By convention, this value "
+"equals the process ID (\\*(Xa PID) of the process group leader (\\*(Xa PGRP)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1084
+#, no-wrap
+msgid "B<TTY \\*(Em Controlling Tty >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1091
+msgid ""
+"The name of the controlling terminal. This is usually the device (serial "
+"port, pty, etc.) from which the process was started, and which it uses for "
+"input or output. However, a task need not be associated with a terminal, in "
+"which case you'll see `?' displayed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1092
+#, no-wrap
+msgid "B<UID \\*(Em User Id >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1095
+msgid "TheI< effective> user ID of the task's owner."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1096
+#, no-wrap
+msgid "B<USED \\*(Em Memory in Use (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1100
+msgid ""
+"This field represents the non-swapped \\*(MP a task is using (RES) plus the "
+"swapped out portion of its address space (SWAP)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1103
+#, no-wrap
+msgid "B<USER \\*(Em User Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1106
+msgid "TheI< effective> user name of the task's owner."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1107
+#, no-wrap
+msgid "B<USS \\*(Em Unique Set Size >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1112
+msgid ""
+"The non-swapped portion of \\*(MP (`RSS') not shared with any other "
+"process. It is derived from the `smaps_rollup' file."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1115
+#, no-wrap
+msgid "B<VIRT \\*(Em Virtual Memory Size (KiB) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1120
+msgid ""
+"The total amount of \\*(MV used by the task. It includes all code, data and "
+"shared libraries plus pages that have been swapped out and pages that have "
+"been mapped but not used."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1123
+#, no-wrap
+msgid "B<WCHAN \\*(Em Sleeping in Function >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1128
+msgid ""
+"This field will show the name of the kernel function in which the task is "
+"currently sleeping. Running tasks will display a dash (`-') in this column."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1129
+#, no-wrap
+msgid "B<ioR \\*(Em I/O Bytes Read >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1132
+msgid ""
+"The number of bytes a process caused to be fetched from the storage layer."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1134
+msgid "Root privileges are required to display `io' data for other users."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1135
+#, no-wrap
+msgid "B<ioRop \\*(Em I/O Read Operations >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1139
+msgid ""
+"The number of read I/O operations (syscalls) for a process. Such calls "
+"might not result in actual physical disk I/O."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1140
+#, no-wrap
+msgid "B<ioW \\*(Em I/O Bytes Written >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1143
+msgid "The number of bytes a process caused to be sent to the storage layer."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1144
+#, no-wrap
+msgid "B<ioWop \\*(Em I/O Write Operations >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1148
+msgid ""
+"The number of write I/O operations (syscalls) for a process. Such calls "
+"might not result in actual physical disk I/O."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1149
+#, no-wrap
+msgid "B<nDRT \\*(Em Dirty Pages Count >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1155
+msgid ""
+"The number of pages that have been modified since they were last written to "
+"\\*(AS. Dirty pages must be written to \\*(AS before the corresponding "
+"physical memory location can be used for some other virtual page."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1157
+msgid "This field was deprecated with linux 2.6 and is always zero."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1158
+#, no-wrap
+msgid "B<nMaj \\*(Em Major Page Fault Count >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1165
+msgid ""
+"The number ofB< major> page faults that have occurred for a task. A page "
+"fault occurs when a process attempts to read from or write to a virtual page "
+"that is not currently present in its address space. A major page fault is "
+"when \\*(AS access is involved in making that page available."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1166
+#, no-wrap
+msgid "B<nMin \\*(Em Minor Page Fault count >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1173
+msgid ""
+"The number ofB< minor> page faults that have occurred for a task. A page "
+"fault occurs when a process attempts to read from or write to a virtual page "
+"that is not currently present in its address space. A minor page fault does "
+"not involve \\*(AS access in making that page available."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1174
+#, no-wrap
+msgid "B<nTH \\*(Em Number of Threads >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1177
+msgid "The number of threads associated with a process."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1178
+#, no-wrap
+msgid "B<nsCGROUP \\*(Em CGROUP namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1182
+msgid ""
+"The Inode of the namespace used to hide the identity of the control group of "
+"which process is a member."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1183
+#, no-wrap
+msgid "B<nsIPC \\*(Em IPC namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1187
+msgid ""
+"The Inode of the namespace used to isolate interprocess communication (IPC) "
+"resources such as System V IPC objects and POSIX message queues."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1188
+#, no-wrap
+msgid "B<nsMNT \\*(Em MNT namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1192
+msgid ""
+"The Inode of the namespace used to isolate filesystem mount points thus "
+"offering different views of the filesystem hierarchy."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1193
+#, no-wrap
+msgid "B<nsNET \\*(Em NET namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1197
+msgid ""
+"The Inode of the namespace used to isolate resources such as network "
+"devices, IP addresses, IP routing, port numbers, etc."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1198
+#, no-wrap
+msgid "B<nsPID \\*(Em PID namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1204
+msgid ""
+"The Inode of the namespace used to isolate process ID numbers meaning they "
+"need not remain unique. Thus, each such namespace could have its own `init/"
+"systemd' (PID #1) to manage various initialization tasks and reap orphaned "
+"child processes."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1205
+#, no-wrap
+msgid "B<nsTIME \\*(Em TIME namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1209
+msgid ""
+"The Inode of the namespace which allows processes to see different system "
+"times in a way similar to the UTS namespace."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1210
+#, no-wrap
+msgid "B<nsUSER \\*(Em USER namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1216
+msgid ""
+"The Inode of the namespace used to isolate the user and group ID numbers. "
+"Thus, a process could have a normal unprivileged user ID outside a user "
+"namespace while having a user ID of 0, with full root privileges, inside "
+"that namespace."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1217
+#, no-wrap
+msgid "B<nsUTS \\*(Em UTS namespace >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1221
+msgid ""
+"The Inode of the namespace used to isolate hostname and NIS domain name. "
+"UTS simply means \"UNIX Time-sharing System\"."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1222
+#, no-wrap
+msgid "B<vMj \\*(Em Major Page Fault Count Delta>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1226
+msgid ""
+"The number ofB< major> page faults that have occurred since the last update "
+"(see nMaj)."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1227
+#, no-wrap
+msgid "B<vMn \\*(Em Minor Page Fault Count Delta>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1231
+msgid ""
+"The number ofB< minor> page faults that have occurred since the last update "
+"(see nMin)."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1233
+#, no-wrap
+msgid "3b. MANAGING Fields"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1240
+msgid ""
+"After pressing the \\*(CI `f' (Fields Management) you will be presented with "
+"a screen showing: 1) the \\*(CW name; 2) the designated sort field; 3) all "
+"fields in their current order along with descriptions. Entries marked with "
+"an asterisk are the currently displayed fields, screen width permitting."
+msgstr ""
+
+#. type: IP
+#: ../man/top.1:1242 ../man/top.1:1248 ../man/top.1:1253 ../man/top.1:1257
+#: ../man/top.1:1262 ../man/top.1:2687 ../man/top.1:2710 ../man/top.1:2719
+#: ../man/top.1:2735 ../man/top.1:2741 ../man/top.1:2747 ../man/top.1:2757
+#: ../man/top.1:2774
+#, no-wrap
+msgid "\\(bu"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1247
+msgid ""
+"As the on screen instructions indicate, you navigate among the fields with "
+"theB< Up> andB< Down> \\*(KAs. The PgUp, PgDn, Home and End keys can also "
+"be used to quickly reach the first or last available field."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1252
+msgid ""
+"TheB< Right> \\*(KA selects a field for repositioning and theB< Left> \\*(KA "
+"or the E<lt>B<Enter>E<gt> key commits that field's placement."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1256
+msgid ""
+"The `B<d>' key or the E<lt>B<Space>E<gt> bar toggles a field's display "
+"status, and thus the presence or absence of the asterisk."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1261
+msgid ""
+"The `B<s>' key designates a field as the sort field. \\*(XT 4c. TASK AREA "
+"Commands, SORTING for additional information regarding your selection of a "
+"sort field."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1265
+msgid ""
+"The `B<a>' and `B<w>' keys can be used to cycle through all available "
+"windows and the `B<q>' or E<lt>B<Esc>E<gt> keys exit Fields Management."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1274
+msgid ""
+"The Fields Management screen can also be used to change the \\*(CG in either "
+"\\*(FM or \\*(AM. Whatever was targeted when `q' or E<lt>EscE<gt> was "
+"pressed will be made current as you return to the \\*(We display. \\*(XT 5. "
+"ALTERNATE-DISPLAY Provisions and the `g' \\*(CI for insight into \\*(CWs and "
+"\\*(FGs."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1281
+msgid ""
+"\\*(NT Any window that has been scrolledI< horizontally> will be reset if "
+"any field changes are made via the Fields Management screen. AnyI< "
+"vertical> scrolled position, however, will not be affected. \\*(XT 5c. "
+"SCROLLING a Window for additional information regarding vertical and "
+"horizontal scrolling."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:1283
+#, no-wrap
+msgid "4. INTERACTIVE Commands"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1288
+msgid ""
+"Listed below is a brief index of commands within categories. Some commands "
+"appear more than once \\*(Em their meaning or scope may vary depending on "
+"the context in which they are issued."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1311
+#, no-wrap
+msgid ""
+" 4a.I< Global-Commands >\n"
+" E<lt>Ent/SpE<gt> ?, =, 0,\n"
+" A, B, d, E, e, g, H, h, I, k, q, r, s, W, X, Y, Z,\n"
+" ^G, ^K, ^N, ^P, ^U, ^L, ^R\n"
+" 4b.I< Summary-Area-Commands >\n"
+" C, l, t, m, 1, 2, 3, 4, 5, !\n"
+" 4c.I< Task-Area-Commands >\n"
+" Appearance: b, J, j, x, y, z\n"
+" Content: c, F, f, O, o, S, U, u, V, v, ^E\n"
+" Size: #, i, n\n"
+" Sorting: E<lt>, E<gt>, f, R\n"
+" 4d.I< Color-Mapping >\n"
+" E<lt>RetE<gt>, a, B, b, H, M, q, S, T, w, z, 0 - 7\n"
+" 5b.I< Commands-for-Windows >\n"
+" -, _, =, +, A, a, G, g, w\n"
+" 5c.I< Scrolling-a-Window >\n"
+" C, Up, Dn, Left, Right, PgUp, PgDn, Home, End\n"
+" 5d.I< Searching-in-a-Window >\n"
+" L, &\n"
+" 5e.I< Filtering-in-a-Window\n"
+" O, o, ^O, =, +>\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1314
+#, no-wrap
+msgid "4a. GLOBAL Commands"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1319
+msgid ""
+"The global \\*(CIs areB< always> available in both \\*(FM and \\*(AM. "
+"However, some of these \\*(CIs areB< not available> when running in Secure "
+"mode."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1323
+msgid ""
+"If you wish to know in advance whether or not your \\*(We has been secured, "
+"simply ask for help and view the system summary on the second line."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1324
+#, no-wrap
+msgid "\\ \\ E<lt>B<Enter>E<gt> or E<lt>B<Space>E<gt>\\ \\ :I<Refresh-Display >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1329
+msgid ""
+"These commands awaken \\*(We and following receipt of any input the entire "
+"display will be repainted. They also force an update of any hotplugged "
+"\\*(Pu or \\*(MP changes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1332
+msgid ""
+"Use either of these keys if you have a large delay interval and wish to see "
+"current status,"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1333
+#, no-wrap
+msgid "\\ \\ \\ B<?> | B<h>\\ \\ :I<Help >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1338
+msgid ""
+"There are two help levels available. The first will provide a reminder of "
+"all the basic \\*(CIs. If \\*(We isI< secured>, that screen will be "
+"abbreviated."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1341
+msgid ""
+"Typing `h' or `?' on that help screen will take you to help for those "
+"\\*(CIs applicable to \\*(AM."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1342
+#, no-wrap
+msgid "\\ \\ \\ B<=>\\ \\ :I<Exit-Display-Limits >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1349
+msgid ""
+"Removes restrictions on what is shown. This command will reverse any "
+"`i' (idle tasks), `n' (max tasks), `v' (hide children) and `F' focus "
+"commands that might be active. It also provides for an exit from PID "
+"monitoring, User filtering, Other filtering, Locate processing and Combine "
+"Cpus mode."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1352
+msgid ""
+"Additionally, if the window has been scrolled it will be reset with this "
+"command."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1353
+#, no-wrap
+msgid "\\ \\ \\ B<0>\\ \\ :I<Zero-Suppress> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1358
+msgid ""
+"This command determines whether zeros are shown or suppressed for many of "
+"the fields in a \\*(TW. Fields like UID, GID, NI, PR or P are not affected "
+"by this toggle."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1359
+#, no-wrap
+msgid "\\ \\ \\ B<A>\\ \\ :I<Alternate-Display-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1364
+msgid ""
+"This command will switch between \\*(FM and \\*(AM. \\*(XT 5. ALTERNATE-"
+"DISPLAY Provisions and the `g' \\*(CI for insight into \\*(CWs and \\*(FGs."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1365
+#, no-wrap
+msgid "\\ \\ \\ B<B>\\ \\ :I<Bold-Disable/Enable> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1371
+msgid ""
+"This command will influence use of the bold terminfo capability and altersB< "
+"both> the \\*(SA and \\*(TA for the \\*(CW. While it is intended primarily "
+"for use with dumb terminals, it can be applied anytime."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1376
+msgid ""
+"\\*(NT When this toggle is \\*O and \\*(We is operating in monochrome mode, "
+"theB< entire display> will appear as normal text. Thus, unless the `x' and/"
+"or `y' toggles are using reverse for emphasis, there will be no visual "
+"confirmation that they are even on."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1377
+#, no-wrap
+msgid "*\\ \\ B<d> | B<s>\\ \\ :I<Change-Delay-Time-interval >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1381
+msgid ""
+"You will be prompted to enter the delay time, in seconds, between display "
+"updates."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1387
+msgid ""
+"Fractional seconds are honored, but a negative number is not allowed. "
+"Entering 0 causes (nearly) continuous updates, with an unsatisfactory "
+"display as the system and tty driver try to keep up with \\*(We's demands. "
+"The delay value is inversely proportional to system loading, so set it with "
+"care."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1390
+msgid ""
+"If at any time you wish to know the current delay time, simply ask for help "
+"and view the system summary on the second line."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1391
+#, no-wrap
+msgid "\\ \\ \\ B<E>\\ \\ :I<Enforce-Summary-Memory-Scale> in Summary Area"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1396
+msgid ""
+"With this command you can cycle through the available \\*(SA memory scaling "
+"which ranges from KiB (kibibytes or 1,024 bytes) through EiB (exbibytes or "
+"1,152,921,504,606,846,976 bytes)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1400
+msgid ""
+"If you see a `+' between a displayed number and the following label, it "
+"means that \\*(We was forced to truncate some portion of that number. By "
+"raising the scaling factor, such truncation can be avoided."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1401
+#, no-wrap
+msgid "\\ \\ \\ B<e>\\ \\ :I<Enforce-Task-Memory-Scale> in Task Area"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1406
+msgid ""
+"With this command you can cycle through the available \\*(TA memory scaling "
+"which ranges from KiB (kibibytes or 1,024 bytes) through PiB (pebibytes or "
+"1,125,899,906,842,624 bytes)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1413
+msgid ""
+"While \\*(We will try to honor the selected target range, additional scaling "
+"might still be necessary in order to accommodate current values. If you "
+"wish to see a more homogeneous result in the memory columns, raising the "
+"scaling range will usually accomplish that goal. Raising it too high, "
+"however, is likely to produce an all zero result which cannot be suppressed "
+"with the `0' \\*(CI."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1414
+#, no-wrap
+msgid "\\ \\ \\ B<g>\\ \\ :I<Choose-Another-Window/Field-Group >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1420
+msgid ""
+"You will be prompted to enter a number between 1 and 4 designating the "
+"\\*(FG which should be made the \\*(CW. You will soon grow comfortable with "
+"these 4 windows, especially after experimenting with \\*(AM."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1421
+#, no-wrap
+msgid "\\ \\ \\ B<H>\\ \\ :I<Threads-mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1426
+msgid ""
+"When this toggle is \\*O, individual threads will be displayed for all "
+"processes in all visible \\*(TWs. Otherwise, \\*(We displays a summation of "
+"all threads in each process."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1427
+#, no-wrap
+msgid "\\ \\ \\ B<I>\\ \\ :I<Irix/Solaris-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1432
+msgid ""
+"When operating in Solaris mode (`I' toggled \\*F), a task's \\*(Pu usage "
+"will be divided by the total number of \\*(PUs. After issuing this command, "
+"you'll be told the new state of this toggle."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1433
+#, no-wrap
+msgid "*\\ \\ B<k>\\ \\ :I<Kill-a-task >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1436
+msgid "You will be prompted for a PID and then the signal to send."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1440 ../man/top.1:1462
+msgid ""
+"Entering no PID or a negative number will be interpreted as the default "
+"shown in the prompt (the first task displayed). A PID value of zero means "
+"the \\*(We program itself."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1443
+msgid ""
+"The default signal, as reflected in the prompt, is SIGTERM. However, you "
+"can send any signal, via number or name."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1446
+msgid ""
+"If you wish to abort the kill process, do one of the following depending on "
+"your progress:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1450
+#, no-wrap
+msgid ""
+" 1) at the pid prompt, type an invalid number\n"
+" 2) at the signal prompt, type 0 (or any invalid signal)\n"
+" 3) at any prompt, type E<lt>EscE<gt>\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1452
+#, no-wrap
+msgid "\\ \\ \\ B<q>\\ \\ :I<Quit >"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1455
+#, no-wrap
+msgid "*\\ \\ B<r>\\ \\ :I<Renice-a-Task >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1458
+msgid "You will be prompted for a PID and then the value to nice it to."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1468
+msgid ""
+"A positive nice value will cause a process to lose priority. Conversely, a "
+"negative nice value will cause a process to be viewed more favorably by the "
+"kernel. As a general rule, ordinary users can only increase the nice value "
+"and are prevented from lowering it."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1471
+msgid ""
+"If you wish to abort the renice process, do one of the following depending "
+"on your progress:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1475
+#, no-wrap
+msgid ""
+" 1) at the pid prompt, type an invalid number\n"
+" 2) at the nice prompt, type E<lt>EnterE<gt> with no input\n"
+" 3) at any prompt, type E<lt>EscE<gt>\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1477
+#, no-wrap
+msgid "\\ \\ \\ B<W>\\ \\ :I<Write-the-Configuration-File >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1483
+msgid ""
+"This will save all of your options and toggles plus the current display mode "
+"and delay time. By issuing this command just before quitting \\*(We, you "
+"will be able restart later in exactly that same state."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1484
+#, no-wrap
+msgid "\\ \\ \\ B<X>\\ \\ :I<Extra-Fixed-Width >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1489
+msgid ""
+"Some fields are fixed width and not scalable. As such, they are subject to "
+"truncation which would be indicated by a `+' in the last position."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1491
+msgid "This \\*(CI can be used to alter the widths of the following fields:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1503
+#, no-wrap
+msgid ""
+" I< field default field default field default >\n"
+" GID 5 GROUP 8 WCHAN 10\n"
+" LOGID 5 LXC 8 nsCGROUP 10\n"
+" RUID 5 RUSER 8 nsIPC 10\n"
+" SUID 5 SUSER 8 nsMNT 10\n"
+" UID 5 TTY 8 nsNET 10\n"
+" USER 8 nsPID 10\n"
+" nsTIME 10\n"
+" nsUSER 10\n"
+" nsUTS 10\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1508
+msgid ""
+"You will be prompted for the amount to be added to the default widths shown "
+"above. Entering zero forces a return to those defaults."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1511
+msgid ""
+"If you enter a negative number, \\*(We will automatically increase the "
+"column size as needed until there is no more truncated data."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1515
+msgid ""
+"\\*(NT Whether explicitly or automatically increased, the widths for these "
+"fields are never decreased by \\*(We. To narrow them you must specify a "
+"smaller number or restore the defaults."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1516
+#, no-wrap
+msgid "\\ \\ \\ B<Y>\\ \\ :I<Inspect-Other-Output >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1522
+msgid ""
+"After issuing the `Y' \\*(CI, you will be prompted for a target PID. Typing "
+"a value or accepting the default results in a separate screen. That screen "
+"can be used to view a variety of files or piped command output while the "
+"normal \\*(We iterative display is paused."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1526
+msgid ""
+"\\*(NT This \\*(CI is only fully realized when supporting entries have been "
+"manually added to the end of the \\*(We \\*(CF. For details on creating "
+"those entries, \\*(Xt 6b. ADDING INSPECT Entries."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1533
+msgid ""
+"Most of the keys used to navigate the Inspect feature are reflected in its "
+"header prologue. There are, however, additional keys available once you "
+"have selected a particular file or command. They are familiar to anyone who "
+"has used the pager `less' and are summarized here for future reference."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1543
+#, no-wrap
+msgid ""
+" I< key function >\n"
+" = alternate status-line, file or pipeline\n"
+" / find, equivalent to `L' locate\n"
+" n find next, equivalent to `&' locate next\n"
+" E<lt>SpaceE<gt> scroll down, equivalent to E<lt>PgDnE<gt>\n"
+" b scroll up, equivalent to E<lt>PgUpE<gt>\n"
+" g first line, equivalent to E<lt>HomeE<gt>\n"
+" G last line, equivalent to E<lt>EndE<gt>\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1545
+#, no-wrap
+msgid "\\ \\ \\ B<Z>\\ \\ :I<Change-Color-Mapping >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1550
+msgid ""
+"This key will take you to a separate screen where you can change the colors "
+"for the \\*(CW, or for all windows. For details regarding this \\*(CI "
+"\\*(Xt 4d. COLOR Mapping."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1553
+msgid "\\ \\ B<^G>\\ \\ :I<Display-Control-Groups > (Ctrl key + `g')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1555
+msgid "\\ \\ B<^K>\\ \\ :I<Display-Cmdline > (Ctrl key + `k')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1557
+msgid "\\ \\ B<^N>\\ \\ :I<Display-Environment > (Ctrl key + `n')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1559
+msgid "\\ \\ B<^P>\\ \\ :I<Display-Namesspaces > (Ctrl key + `p')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1561
+msgid "\\ \\ B<^U>\\ \\ :I<Display-Supplementary-Groups > (Ctrl key + `u')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1567
+msgid ""
+"Applied to the first process displayed, these commands will show that task's "
+"full (potentially wrapped) information. Such data will be displayed in a "
+"separate window at the bottom of the screen while normal \\*(We monitoring "
+"continues."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1572
+msgid ""
+"Keying theI< same> `Ctrl' command a second time removes that separate window "
+"as does the `=' command. Keying a different `Ctrl' combination, while one "
+"is already active, immediately transitions to the new information."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1577
+msgid ""
+"Notable among these provisions is the Ctrl+N (environment) command. Its "
+"output can be extensive and not easily read when line wrapped. A more "
+"readable version can be achieved with an `Inspect' entry in the rcfile like "
+"the following."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1580
+#, no-wrap
+msgid " pipe ^I Environment ^I cat /proc/%d/environ | tr '\\e0' '\\en'\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1584
+msgid ""
+"\\*(XC `Y' \\*(CI above and topic 6b. ADDING INSPECT Entries for additional "
+"information."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1588
+msgid ""
+"As an alternative to `Inspect', and available to all of these `Ctrl' "
+"commands, the tab key can be used to highlight individual elements in the "
+"bottom window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1590
+#, no-wrap
+msgid "\\ \\ B<^L>\\ \\ :I<Logged-Messages > (Ctrl key + `l')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1596
+msgid ""
+"The 10 most recent messages are displayed in a separate window at the bottom "
+"of the screen while normal \\*(We monitoring continues. Keying `^L' a "
+"second time removes that window as does the `=' command. Use the tab key to "
+"highlight individual messages."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1597
+#, no-wrap
+msgid "*\\ B<^R>\\ \\ :I<Renice-an-Autogroup > (Ctrl key + `r')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1601
+msgid ""
+"You will be prompted for a PID and then the value for its autogroup AGNI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1604
+msgid ""
+"Entering no PID will be interpreted as the default shown in the prompt (the "
+"first task displayed)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1610
+msgid ""
+"A positive AGNI value will cause processes in that autogroup to lose "
+"priority. Conversely, a negative value causes them to be viewed more "
+"favorably by the kernel. Ordinary users are not allowed to set negative "
+"AGNI values."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1612
+msgid "If you wish to abort the renice process type E<lt>EscE<gt>."
+msgstr ""
+
+#. type: IP
+#: ../man/top.1:1613 ../man/top.1:2134
+#, no-wrap
+msgid "*"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1616
+msgid ""
+"The commands shown with an \\*(AK are not available in Secure mode, nor will "
+"they be shown on the level-1 help screen."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1618
+#, no-wrap
+msgid "4b. SUMMARY AREA Commands"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1623
+msgid ""
+"The \\*(SA \\*(CIs areB< always available> in both \\*(FM and \\*(AM. They "
+"affect the beginning lines of your display and will determine the position "
+"of messages and prompts."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1627
+msgid ""
+"These commands always impact just the \\*(CG. \\*(XT 5. ALTERNATE-DISPLAY "
+"Provisions and the `g' \\*(CI for insight into \\*(CWs and \\*(FGs."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1628
+#, no-wrap
+msgid "\\ \\ \\ B<C>\\ \\ :I<Show-scroll-coordinates> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1633
+msgid ""
+"Toggle an informational message which is displayed whenever the message line "
+"is not otherwise being used. For additional information \\*(Xt 5c. "
+"SCROLLING a Window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1634
+#, no-wrap
+msgid "\\ \\ \\ B<l>\\ \\ :I<Load-Average/Uptime> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1638
+msgid ""
+"This is also the line containing the program name (possibly an alias) when "
+"operating in \\*(FM or the \\*(CW name when operating in \\*(AM."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1639
+#, no-wrap
+msgid "\\ \\ \\ B<t>\\ \\ :I<Task/Cpu-States> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1644
+msgid ""
+"This command affects from 2 to many \\*(SA lines, depending on the state of "
+"the `1', `2' or `3' \\*(CTs and whether or not \\*(We is running under true "
+"SMP."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1647
+msgid ""
+"This portion of the \\*(SA is also influenced by the `H' \\*(CI toggle, as "
+"reflected in the total label which shows either Tasks or Threads."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1649 ../man/top.1:1666
+msgid "This command serves as a 4-way toggle, cycling through these modes:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1654
+#, no-wrap
+msgid ""
+" 1. detailed percentages by category\n"
+" 2. abbreviated user/system and total % + bar graph\n"
+" 3. abbreviated user/system and total % + block graph\n"
+" 4. turn off task and cpu states display\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1659
+msgid ""
+"When operating in either of the graphic modes, the display becomes much more "
+"meaningful when individual CPUs or NUMA nodes are also displayed. \\*(XC "
+"the `1', `2' and `3' commands below for additional information."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1660
+#, no-wrap
+msgid "\\ \\ \\ B<m>\\ \\ :I<Memory/Swap-Usage> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1664
+msgid ""
+"This command affects the two \\*(SA lines dealing with physical and virtual "
+"memory."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1671
+#, no-wrap
+msgid ""
+" 1. detailed percentages by memory type\n"
+" 2. abbreviated % used/total available + bar graph\n"
+" 3. abbreviated % used/total available + block graph\n"
+" 4. turn off memory display\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1673
+#, no-wrap
+msgid "\\ \\ \\ B<1>\\ \\ :I<Single/Separate-Cpu-States> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1678
+msgid ""
+"This command affects how the `t' command's Cpu States portion is shown. "
+"Although this toggle exists primarily to serve massively-parallel SMP "
+"machines, it is not restricted to solely SMP environments."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1683
+msgid ""
+"When you see `%Cpu(s):' in the \\*(SA, the `1' toggle is \\*O and all \\*(Pu "
+"information is gathered in a single line. Otherwise, each \\*(Pu is "
+"displayed separately as: `%Cpu0, %Cpu1, ...' up to available screen height."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1684
+#, no-wrap
+msgid "\\ \\ \\ B<2>\\ \\ :I<NUMA-Nodes/Cpu-Summary> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1689
+msgid ""
+"This command toggles between the `1' command cpu summary display (only) or "
+"a summary display plus the cpu usage statistics for each NUMA Node. It is "
+"only available if a system has the requisite NUMA support."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1690
+#, no-wrap
+msgid "\\ \\ \\ B<3>\\ \\ :I<Expand-NUMA-Node >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1696
+msgid ""
+"You will be invited to enter a number representing a NUMA Node. Thereafter, "
+"a node summary plus the statistics for each cpu in that node will be shown "
+"until the `1', `2' or `4' \\*(CT is pressed. This \\*(CI is only available "
+"if a system has the requisite NUMA support."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1697
+#, no-wrap
+msgid "\\ \\ \\ B<4>\\ \\ :I<Display-Multiple-Elements-Adjacent> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1703
+msgid ""
+"This \\*(CT turns the `1' toggle \\*F and shows multiple \\*(PU and Memory "
+"results on each line. Each successive `4' key adds another \\*(PU until "
+"again reverting to separate lines for \\*(PU and Memory results."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1709
+msgid ""
+"A maximum of 8 \\*(PUs per line can be displayed in this manner. However, "
+"data truncation may occur before reaching the maximum. That is definitely "
+"true when displaying detailed statistics via the `t' \\*(CT since such data "
+"cannot be scaled like the graphic representations."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1712
+msgid ""
+"If one wished to quickly exit adjacent mode without cycling all the way to "
+"8, simply use the `1' \\*(CT."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1713
+#, no-wrap
+msgid "\\ \\ \\ B<5>\\ \\ :I<Display-P-Cores-and-E-Cores> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1719
+msgid ""
+"This \\*(CT is only active when the `t' toggle is \\*O and the `1', `2', `3' "
+"and `!' toggles are \\*F, thus showing individual \\*(PU results. It "
+"assumes a platform has multiple cores of two distinct types, either multi-"
+"threaded (P-Core) or single-threaded (E-Core)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1723
+msgid ""
+"While normally each \\*(Pu is displayed as `%Cpu0, %Cpu1, ...', this toggle "
+"can be used to identify and/or filter those \\*(Pus by their core type, "
+"either P-Core (performance) or E-Core (efficient)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1730
+msgid ""
+"The 1st time `5' is struck, each \\*(PU is displayed as `%CpB<P>' or "
+"`%CpB<E>' representing the two core types. The 2nd time, only P-Cores "
+"(%CpB<P>) will be shown. The 3rd time, only E-Cores (%CpB<E>) are "
+"displayed. When this \\*(CT is struck for the 4th time, the \\*(PU display "
+"returns to the normal `%Cpu' convention."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1733
+msgid ""
+"If separateI< performance> andI< efficient> categories are not present, this "
+"\\*(CT will have no effect."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1734
+#, no-wrap
+msgid "\\ \\ \\ B<!>\\ \\ :I<Combine-Cpus-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1740
+msgid ""
+"This \\*(CT is intended for massively parallel SMP environments where, even "
+"with the `4' \\*(CT, not all processors can be displayed. With each press "
+"of `!' the number of \\*(Pus combined is doubled thus reducing the total "
+"number of \\*(Pu lines displayed."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1747
+msgid ""
+"For example, with the first press of `!' two \\*(Pus will be combined and "
+"displayed as `0-1, 2-3, ...' instead of the normal `%Cpu0, %Cpu1, %Cpu2, "
+"%Cpu3, ...'. With a second `!' \\*(CT four \\*(Pus are combined and shown as "
+"`0-3, 4-7, ...'. Then the third `!' press, combining eight \\*(Pus, shows "
+"as `0-7, 8-15, ...', etc."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1751
+msgid ""
+"Such progression continues until individual \\*(Pus are again displayed and "
+"impacts both the `1' and `4' toggles (one or multiple columns). Use the `=' "
+"command to exit B<Combine Cpus> mode."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1757
+msgid ""
+"\\*(NT If the entire \\*(SA has been toggled \\*F for any window, you would "
+"be left with just theB< message line>. In that way, you will have maximized "
+"available task rows but (temporarily) sacrificed the program name in \\*(FM "
+"or the \\*(CW name when in \\*(AM."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:1759
+#, no-wrap
+msgid "4c. TASK AREA Commands"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:1762
+msgid "The \\*(TA \\*(CIs areB< always> available in \\*(FM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1765
+msgid ""
+"The \\*(TA \\*(CIs areB< never available> in \\*(AMI< if> the \\*(CW's "
+"\\*(TD has been toggled \\*F (\\*(Xt 5. ALTERNATE-DISPLAY Provisions)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1769
+msgid "B<APPEARANCE> of \\*(TW"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1770
+#, no-wrap
+msgid "\\ \\ \\ B<J>\\ \\ :I<Justify-Numeric-Columns> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1776
+msgid ""
+"Alternates between right-justified (the default) and left-justified numeric "
+"data. If the numeric data completely fills the available column, this "
+"\\*(CT may impact the column header only."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1777
+#, no-wrap
+msgid "\\ \\ \\ B<j>\\ \\ :I<Justify-Character-Columns> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1783
+msgid ""
+"Alternates between left-justified (the default) and right-justified "
+"character data. If the character data completely fills the available "
+"column, this \\*(CT may impact the column header only."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1788
+msgid ""
+"The following commands will also be influenced by the state of the global "
+"`B' (bold enable) toggle."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1790
+#, no-wrap
+msgid "\\ \\ \\ B<b>\\ \\ :I<Bold/Reverse> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1795
+msgid ""
+"This command will impact how the `x' and `y' toggles are displayed. It may "
+"also impact the \\*(SA when a bar graph has been selected for \\*(Pu states "
+"or memory usage via the `t' or `m' toggles."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1796
+#, no-wrap
+msgid "\\ \\ \\ B<x>\\ \\ :I<Column-Highlight> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1804
+#, no-wrap
+msgid ""
+"Changes highlighting for the current sort field.\n"
+"If you forget which field is being sorted this command can serve as a quick\n"
+"visual reminder, providing the sort field is being displayed.\n"
+"The sort field mightI< not> be visible because:\n"
+" 1) there is insufficientI< Screen Width >\n"
+" 2) the `f' \\*(CI turned it \\*F\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1805
+#, no-wrap
+msgid "\\ \\ \\ B<y>\\ \\ :I<Row-Highlight> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1810
+msgid ""
+"Changes highlighting for \"running\" tasks. For additional insight into "
+"this task state, \\*(Xt 3a. DESCRIPTIONS of Fields, the `S' field (Process "
+"Status)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1813
+msgid ""
+"Use of this provision provides important insight into your system's health. "
+"The only costs will be a few additional tty escape sequences."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1814
+#, no-wrap
+msgid "\\ \\ \\ B<z>\\ \\ :I<Color/Monochrome> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1820
+msgid ""
+"Switches the \\*(CW between your last used color scheme and the older form "
+"of black-on-white or white-on-black. This command will alterB< both> the "
+"\\*(SA and \\*(TA but does not affect the state of the `x', `y' or `b' "
+"toggles."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1824
+msgid "B<CONTENT> of \\*(TW"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1825
+#, no-wrap
+msgid "\\ \\ \\ B<c>\\ \\ :I<Command-Line/Program-Name> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1830
+msgid ""
+"This command will be honored whether or not the COMMAND column is currently "
+"visible. Later, should that field come into view, the change you applied "
+"will be seen."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1831
+#, no-wrap
+msgid "\\ \\ \\ B<F>\\ \\ :I<Maintain-Parent-Focus> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1836
+msgid ""
+"When in forest view mode, this key serves as a toggle to retain focus on a "
+"target task, presumably one with forked children. If forest view mode is "
+"\\*F this key has no effect."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1841
+msgid ""
+"The toggle is applied to the first (topmost) process in the \\*(CW. Once "
+"established, that task is always displayed as the first (topmost) process "
+"along with its forked children. All other processes will be suppressed."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1844
+msgid ""
+"\\*(NT keys like `i' (idle tasks), `n' (max tasks), `v' (hide children) and "
+"User/Other filtering remain accessible and can impact what is displayed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1845 ../man/top.1:2000
+#, no-wrap
+msgid "\\ \\ \\ B<f>\\ \\ :I<Fields-Management >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1851
+msgid ""
+"This key displays a separate screen where you can change which fields are "
+"displayed, their order and also designate the sort field. For additional "
+"information on this \\*(CI \\*(Xt 3b. MANAGING Fields."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1852
+#, no-wrap
+msgid "\\ \\ \\ B<O> | B<o>\\ \\ :I<Other-Filtering >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1858
+msgid ""
+"You will be prompted for the selection criteria which then determines which "
+"tasks will be shown in the \\*(CW. Your criteria can be made case sensitive "
+"or case can be ignored. And you determine if \\*(We should include or "
+"exclude matching tasks."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1861
+msgid ""
+"\\*(XT 5e. FILTERING in a window for details on these and additional related "
+"\\*(CIs."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1862
+#, no-wrap
+msgid "\\ \\ \\ B<S>\\ \\ :I<Cumulative-Time-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1866
+msgid ""
+"When Cumulative mode is \\*O, each process is listed with the \\*(Pu time "
+"that it and its dead children have used."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1873
+msgid ""
+"When \\*F, programs that fork into many separate tasks will appear less "
+"demanding. For programs like `init' or a shell this is appropriate but for "
+"others, like compilers, perhaps not. Experiment with two \\*(TWs sharing "
+"the same sort field but with different `S' states and see which "
+"representation you prefer."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1877
+msgid ""
+"After issuing this command, you'll be informed of the new state of this "
+"toggle. If you wish to know in advance whether or not Cumulative mode is in "
+"effect, simply ask for help and view the window summary on the second line."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1878
+#, no-wrap
+msgid "\\ \\ \\ B<U> | B<u>\\ \\ :I<Show-Specific-User-Only >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1883
+msgid ""
+"You will be prompted for theB< uid> orB< name> of the user to display. The -"
+"u option matches on B< effective> user whereas the -U option matches onB< "
+"any> user (real, effective, saved, or filesystem)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1888
+msgid ""
+"Thereafter, in that \\*(TW only matching users will be shown, or possibly no "
+"processes will be shown. Prepending an exclamation point (`!') to the user "
+"id or name instructs \\*(We to display only processes with users not "
+"matching the one provided."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1892
+msgid ""
+"Different \\*(TWs can be used to filter different users. Later, if you wish "
+"to monitor all users again in the \\*(CW, re-issue this command but just "
+"press E<lt>EnterE<gt> at the prompt."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1893
+#, no-wrap
+msgid "\\ \\ \\ B<V>\\ \\ :I<Forest-View-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1900
+msgid ""
+"In this mode, processes are reordered according to their parents and the "
+"layout of the COMMAND column resembles that of a tree. In forest view mode "
+"it is still possible to toggle between program name and command line (\\*(Xc "
+"`c' \\*(CI) or between processes and threads (\\*(Xc `H' \\*(CI)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1904
+msgid ""
+"\\*(NT Typing any key affecting the sort order will exit forest view mode in "
+"the \\*(CW. \\*(XT 4c. TASK AREA Commands, SORTING for information on those "
+"keys."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1905
+#, no-wrap
+msgid "\\ \\ \\ B<v>\\ \\ :I<Hide/Show-Children> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1909
+msgid ""
+"When in forest view mode, this key serves as a toggle to collapse or expand "
+"the children of a parent."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1913
+msgid ""
+"The toggle is applied against the first (topmost) process in the \\*(CW. "
+"\\*(XT 5c. SCROLLING a Window for additional information regarding vertical "
+"scrolling."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1916
+msgid ""
+"If the target process has not forked any children, this key has no effect. "
+"It also has no effect when not in forest view mode."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1917
+#, no-wrap
+msgid "\\ \\ B<^E>\\ \\ :I<Scale-CPU-Time-fields> (Ctrl key + `e')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1924
+msgid ""
+"The `time' fields are normally displayed with the greatest precision their "
+"widths permit. This toggle reduces that precision until it wraps. It also "
+"illustrates the scaling those fields I<might> experience automatically, "
+"which usually depends on how long the system runs."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1927
+msgid ""
+"For example, if `MMM:SS.hh' is shown, each ^E keystroke would change it to: "
+"`MM:SS', `Hours,MM', `Days+Hours' and finally `Weeks+Days'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1929
+msgid "Not all time fields are subject to the full range of such scaling."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1933
+msgid "B<SIZE> of \\*(TW"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1934
+#, no-wrap
+msgid "\\ \\ \\ B<i>\\ \\ :I<Idle-Process> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1942
+msgid ""
+"Displays all tasks or just active tasks. When this toggle is \\*F, tasks "
+"that have not used any \\*(PU since the last update will not be displayed. "
+"However, due to the granularity of the %CPU and TIME+ fields, some processes "
+"may still be displayed thatI< appear> to have usedI< no> \\*(PU."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1945
+msgid ""
+"If this command is applied to the last \\*(TD when in \\*(AM, then it will "
+"not affect the window's size, as all prior \\*(TDs will have already been "
+"painted."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1946
+#, no-wrap
+msgid "\\ \\ \\ B<n> | B<#>\\ \\ :I<Set-Maximum-Tasks >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1950
+msgid ""
+"You will be prompted to enter the number of tasks to display. The lessor of "
+"your number and available screen rows will be used."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1955
+msgid ""
+"When used in \\*(AM, this is the command that gives you precise control over "
+"the size of each currently visible \\*(TD, except for the very last. It "
+"will not affect the last window's size, as all prior \\*(TDs will have "
+"already been painted."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1958
+msgid ""
+"\\*(NT If you wish to increase the size of the last visible \\*(TD when in "
+"\\*(AM, simply decrease the size of the \\*(TD(s) above it."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1962
+msgid "B<SORTING> of \\*(TW"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1967
+msgid ""
+"For compatibility, this \\*(We supports most of the former \\*(We sort "
+"keys. Since this is primarily a service to former \\*(We users, these "
+"commands do not appear on any help screen."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1974
+#, no-wrap
+msgid ""
+" I< command sorted-field supported >\n"
+" A start time (non-display) B< No >\n"
+" M %MEM Yes\n"
+" N PID Yes\n"
+" P %CPU Yes\n"
+" T TIME+ Yes\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1979
+msgid ""
+"Before using any of the following sort provisions, \\*(We suggests that you "
+"temporarily turn on column highlighting using the `x' \\*(CI. That will "
+"help ensure that the actual sort environment matches your intent."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1985
+#, no-wrap
+msgid ""
+"The following \\*(CIs willB< only> be honored when the current sort field\n"
+"isB< visible>.\n"
+"The sort field mightI< not> be visible because:\n"
+" 1) there is insufficientI< Screen Width >\n"
+" 2) the `f' \\*(CI turned it \\*F\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1986
+#, no-wrap
+msgid "\\ \\ \\ B<E<lt>>\\ \\ :I<Move-Sort-Field-Left >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1990
+msgid ""
+"Moves the sort column to the left unless the current sort field is the first "
+"field being displayed."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:1991
+#, no-wrap
+msgid "\\ \\ \\ B<E<gt>>\\ \\ :I<Move-Sort-Field-Right >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1995
+msgid ""
+"Moves the sort column to the right unless the current sort field is the last "
+"field being displayed."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:1999
+msgid ""
+"The following \\*(CIs willB< always> be honored whether or not the current "
+"sort field is visible."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2006
+msgid ""
+"This key displays a separate screen where you can change which field is used "
+"as the sort column, among other functions. This can be a convenient way to "
+"simply verify the current sort field, when running \\*(We with column "
+"highlighting turned \\*F."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2007
+#, no-wrap
+msgid "\\ \\ \\ B<R>\\ \\ :I<Reverse/Normal-Sort-Field> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2010
+msgid ""
+"Using this \\*(CI you can alternate between high-to-low and low-to-high "
+"sorts."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2012
+#, no-wrap
+msgid "4d. COLOR Mapping"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2017
+msgid ""
+"When you issue the `Z' \\*(CI, you will be presented with a separate "
+"screen. That screen can be used to change the colors in just the \\*(CW or "
+"in all four windows before returning to the \\*(We display."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2020
+msgid "The following \\*(CIs are available."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2031
+#, no-wrap
+msgid ""
+" B<4> upper case letters to select aB< target >\n"
+" B<8> numbers to select aB< color >\n"
+" normal toggles available \n"
+" B :bold disable/enable\n"
+" b :running tasks \"bold\"/reverse\n"
+" z :color/mono\n"
+" other commands available \n"
+" a/w :apply, then go to next/prior\n"
+" E<lt>EnterE<gt> :apply and exit\n"
+" q :abandon current changes and exit\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2037
+msgid ""
+"If you use `a' or `w' to cycle the targeted window, you will have applied "
+"the color scheme that was displayed when you left that window. You can, of "
+"course, easily return to any window and reapply different colors or turn "
+"colors \\*F completely with the `z' toggle."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2042
+msgid ""
+"The Color Mapping screen can also be used to change the \\*(CG in either "
+"\\*(FM or \\*(AM. Whatever was targeted when `q' or E<lt>EnterE<gt> was "
+"pressed will be made current as you return to the \\*(We display."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2044
+#, no-wrap
+msgid "5. ALTERNATE-DISPLAY Provisions"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2047
+#, no-wrap
+msgid "5a. WINDOWS Overview"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2049
+#, no-wrap
+msgid "B<Field Groups/Windows>:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2056
+msgid ""
+"In \\*(FM there is a single window represented by the entire screen. That "
+"single window can still be changed to display 1 of 4 differentB< field "
+"groups> (\\*(Xc `g' \\*(CI, repeated below). Each of the 4 \\*(FGs has a "
+"unique separately configurableB< \\*(SA > and its own configurableB< \\*(TA>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2059
+msgid ""
+"In \\*(AM, those 4 underlying \\*(FGs can now be made visible "
+"simultaneously, or can be turned \\*F individually at your command."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2064
+msgid ""
+"The \\*(SA will always exist, even if it's only the message line. At any "
+"given time onlyI< one> \\*(SA can be displayed. However, depending on your "
+"commands, there could be fromI< zero > toI< four> separate \\*(TDs currently "
+"showing on the screen."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2065
+#, no-wrap
+msgid "B<Current Window>:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2071
+msgid ""
+"The \\*(CW is the window associated with the \\*(SA and the window to which "
+"task related commands are always directed. Since in \\*(AM you can toggle "
+"the \\*(TD \\*F, some commands might be restricted for the \\*(CW."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2076
+msgid ""
+"A further complication arises when you have toggled the first \\*(SA line "
+"\\*F. With the loss of the window name (the `l' toggled line), you'll not "
+"easily know what window is the \\*(CW."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2078
+#, no-wrap
+msgid "5b. COMMANDS for Windows"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2080
+#, no-wrap
+msgid "\\ \\ \\ B<-> | B<_>\\ \\ :I<Show/Hide-Window(s)> toggles "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2087
+msgid ""
+"The `-' key turns the \\*(CW's \\*(TD \\*O and \\*F. When \\*O, that \\*(TA "
+"will show a minimum of the columns header you've established with the `f' "
+"\\*(CI. It will also reflect any other \\*(TA options/toggles you've "
+"applied yielding zero or more tasks."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2093
+msgid ""
+"The `_' key does the same for all \\*(TDs. In other words, it switches "
+"between the currently visible \\*(TD(s) and any \\*(TD(s) you had toggled "
+"\\*F. If all 4 \\*(TDs are currently visible, this \\*(CI will leave the "
+"\\*(SA as the only display element."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2094
+#, no-wrap
+msgid "*\\ \\ B<=> | B<+>\\ \\ :I<Equalize/Reset-Window(s) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2103
+msgid ""
+"The `=' key forces the \\*(CW's \\*(TD to be visible. It also reverses any "
+"active `i' (idle tasks), `n' (max tasks), `u/U' (user filter), `o/O' (other "
+"filter), `v' (hide children), `F' focused, `L' (locate) and `!' (combine "
+"cpus) commands. Also, if the window had been scrolled, it will be reset "
+"with this command. \\*(XT 5c. SCROLLING a Window for additional information "
+"regarding vertical and horizontal scrolling."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2108
+msgid ""
+"The `+' key does the same for all windows. The four \\*(TDs will reappear, "
+"evenly balanced, while retaining any customizations previously applied "
+"beyond those noted for the `=' \\*(CT."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2109
+#, no-wrap
+msgid "*\\ \\ B<A>\\ \\ :I<Alternate-Display-Mode> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2112
+msgid "This command will switch between \\*(FM and \\*(AM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2116
+msgid ""
+"The first time you issue this command, all four \\*(TDs will be shown. "
+"Thereafter when you switch modes, you will see only the \\*(TD(s) you've "
+"chosen to make visible."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2117
+#, no-wrap
+msgid "*\\ \\ B<a> | B<w>\\ \\ :I<Next-Window-Forward/Backward >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2123
+msgid ""
+"This will change the \\*(CW, which in turn changes the window to which "
+"commands are directed. These keys act in a circular fashion so you can "
+"reach any desired window using either key."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2127
+msgid ""
+"Assuming the window name is visible (you have not toggled `l' \\*F), "
+"whenever the \\*(CW name loses its emphasis/color, that's a reminder the "
+"\\*(TD is \\*F and many commands will be restricted."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2128
+#, no-wrap
+msgid "\\ \\ \\ B<G>\\ \\ :I<Change-Window/Field-Group-Name >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2133
+msgid ""
+"You will be prompted for a new name to be applied to the \\*(CW. It does "
+"not require that the window name be visible (the `l' toggle to be \\*O)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2136
+msgid "The \\*(CIs shown with an \\*(AK have use beyond \\*(AM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2140
+#, no-wrap
+msgid ""
+" =, A, g are always available\n"
+" a, w act the same with color mapping\n"
+" and fields management\n"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2142
+#, no-wrap
+msgid "*\\ \\ B<g>\\ \\ :I<Choose-Another-Window/Field-Group >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2146
+msgid ""
+"You will be prompted to enter a number between 1 and 4 designating the "
+"\\*(FG which should be made the \\*(CW."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2150
+msgid ""
+"In \\*(FM, this command is necessary to alter the \\*(CW. In \\*(AM, it is "
+"simply a less convenient alternative to the `a' and `w' commands."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2152
+#, no-wrap
+msgid "5c. SCROLLING a Window"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2158
+msgid ""
+"Typically a \\*(TW is a partial view into a system's total tasks/threads "
+"which shows only some of the available fields/columns. With these \\*(KSs, "
+"you can move that view vertically or horizontally to reveal any desired task "
+"or column."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2159
+#, no-wrap
+msgid "B<Up>,B<PgUp>\\ \\ :I<Scroll-Tasks >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2165
+msgid ""
+"Move the view up toward the first task row, until the first task is "
+"displayed at the top of the \\*(CW. The I<Up> \\*(KA moves a single line "
+"while I<PgUp> scrolls the entire window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2166
+#, no-wrap
+msgid "B<Down>,B<PgDn>\\ \\ :I<Scroll-Tasks >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2172
+msgid ""
+"Move the view down toward the last task row, until the last task is the only "
+"task displayed at the top of the \\*(CW. The I<Down> \\*(KA moves a single "
+"line while I<PgDn> scrolls the entire window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2173
+#, no-wrap
+msgid "B<Left>,B<Right>\\ \\ :I<Scroll-Columns >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2176
+msgid "Move the view of displayable fields horizontally one column at a time."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2181
+msgid ""
+"\\*(NT As a reminder, some fields/columns are not fixed-width but allocated "
+"all remaining screen width when visible. When scrolling right or left, that "
+"feature may produce some unexpected results initially."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2187
+msgid ""
+"Additionally, there are special provisions for any variable width field when "
+"positioned as the last displayed field. Once that field is reached via the "
+"right arrow key, and is thus the only column shown, you can continue "
+"scrolling horizontally within such a field. \\*(XC `C' \\*(CI below for "
+"additional information."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2188
+#, no-wrap
+msgid "B<Home>\\ \\ :I<Jump-to-Home-Position >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2191
+msgid "Reposition the display to the un-scrolled coordinates."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2192
+#, no-wrap
+msgid "B<End>\\ \\ :I<Jump-to-End-Position >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2196
+msgid ""
+"Reposition the display so that the rightmost column reflects the last "
+"displayable field and the bottom task row represents the last task."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2201
+msgid ""
+"\\*(NT From this position it is still possible to scrollI< down> andI< "
+"right> using the \\*(KAs. This is true until a single column and a single "
+"task is left as the only display element."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2202
+#, no-wrap
+msgid "B<C>\\ \\ :I<Show-scroll-coordinates> toggle "
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2208
+msgid ""
+"Toggle an informational message which is displayed whenever the message line "
+"is not otherwise being used. That message will take one of two forms "
+"depending on whether or not a variable width column has also been scrolled."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2212
+#, no-wrap
+msgid ""
+" B<scroll coordinates: y = n/n (tasks), x = n/n (fields)>\n"
+" scroll coordinates: y = n/n (tasks), x = n/n (fields)B< + nn>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2220
+msgid ""
+"The coordinates shown as B<n>/B<n> are relative to the upper left corner of "
+"the \\*(CW. The additional `B<+\\ nn>' represents the displacement into a "
+"variable width column when it has been scrolled horizontally. Such "
+"displacement occurs in normal 8 character tab stop amounts via the right and "
+"left arrow keys."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2222
+#, no-wrap
+msgid "B<y = n/n (tasks) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2227
+msgid ""
+"The first B<n> represents the topmost visible task and is controlled by "
+"\\*(KSs. The second B<n> is updated automatically to reflect total tasks."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2228
+#, no-wrap
+msgid "B<x = n/n (fields) >"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2234
+msgid ""
+"The first B<n> represents the leftmost displayed column and is controlled by "
+"\\*(KSs. The second B<n> is the total number of displayable fields and is "
+"established with the `B<f>' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2239 ../man/top.1:2298
+msgid ""
+"The above \\*(CIs areB< always> available in \\*(FM butB< never> available "
+"in \\*(AM if the \\*(CW's \\*(TD has been toggled \\*F."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2243
+msgid ""
+"\\*(NT When any form of filtering is active, you can expect some slight "
+"aberrations when scrolling since not all tasks will be visible. This is "
+"particularly apparent when using the Up/Down \\*(KAs."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2245
+#, no-wrap
+msgid "5d. SEARCHING in a Window"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2248
+msgid ""
+"You can use these \\*(CIs to locate a task row containing a particular value."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2249
+#, no-wrap
+msgid "B<L>\\ \\ :I<Locate-a-string>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2254
+msgid ""
+"You will be prompted for the case-sensitive string to locate starting from "
+"the current window coordinates. There are no restrictions on search string "
+"content."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2258
+msgid ""
+"Searches are not limited to values from a single field or column. All of "
+"the values displayed in a task row are allowed in a search string. You may "
+"include spaces, numbers, symbols and even forest view artwork."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2261
+msgid ""
+"Keying E<lt>EnterE<gt> with no input will effectively disable the `&' key "
+"until a new search string is entered."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2262
+#, no-wrap
+msgid "B<&>\\ \\ :I<Locate-next>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2266
+msgid ""
+"Assuming a search string has been established, \\*(We will attempt to locate "
+"the next occurrence."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2273
+msgid ""
+"When a match is found, the current window is repositioned vertically so the "
+"task row containing that string is first. The scroll coordinates message "
+"can provide confirmation of such vertical repositioning (\\*(Xc `C' "
+"\\*(CI). Horizontal scrolling, however, is never altered via searching."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2276
+msgid ""
+"The availability of a matching string will be influenced by the following "
+"factors."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2277
+#, no-wrap
+msgid "a. Which fields are displayable from the total available,"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2280
+msgid "\\*(Xt 3b. MANAGING Fields."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2280
+#, no-wrap
+msgid "b. Scrolling a window vertically and/or horizontally,"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2283
+msgid "\\*(Xt 5c. SCROLLING a Window."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2283
+#, no-wrap
+msgid "c. The state of the command/command-line toggle,"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2286
+msgid "\\*(Xc `c' \\*(CI."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2286
+#, no-wrap
+msgid "d. The stability of the chosen sort column,"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2289
+msgid "for example PID is good but %CPU bad."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2295
+msgid ""
+"If a search fails, restoring the \\*(CW home (unscrolled) position, "
+"scrolling horizontally, displaying command-lines or choosing a more stable "
+"sort field could yet produce a successful `&' search."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2300
+#, no-wrap
+msgid "5e. FILTERING in a Window"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2306
+msgid ""
+"You can use this `Other Filter' feature to establish selection criteria "
+"which will then determine which tasks are shown in the \\*(CW. Such filters "
+"can be made persistent if preserved in the rcfile via the `W' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2312
+msgid ""
+"Establishing a filter requires: 1) a field name; 2) an operator; and 3) a "
+"selection value, as a minimum. This is the most complex of \\*(We's user "
+"input requirements so, when you make a mistake, command recall will be your "
+"friend. Remember the Up/Down \\*(KAs or their aliases when prompted for "
+"input."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2314
+msgid "B<Filter Basics>"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2315
+#, no-wrap
+msgid "1. field names are case sensitive and spelled as in the header"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2317
+#, no-wrap
+msgid "2. selection values need not comprise the full displayed field"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2319
+#, no-wrap
+msgid "3. a selection is either case insensitive or sensitive to case"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2321
+#, no-wrap
+msgid "4. the default is inclusion, prepending `!' denotes exclusions"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2323
+#, no-wrap
+msgid "5. multiple selection criteria can be applied to a \\*(TW"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2325
+#, no-wrap
+msgid "6. inclusion and exclusion criteria can be used simultaneously"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2327
+#, no-wrap
+msgid "7. the 1 equality and 2 relational filters can be freely mixed"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2329
+#, no-wrap
+msgid "8. separate unique filters are maintained for each \\*(TW"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2337
+msgid ""
+"If a field is not turned on or is not currently in view, then your selection "
+"criteria will not affect the display. Later, should a filtered field become "
+"visible, the selection criteria will then be applied."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2340
+msgid "B<Keyboard Summary>"
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2340
+#, no-wrap
+msgid "\\ \\ B<O>\\ \\ :I<Other-Filter> (upper case)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2343
+msgid "You will be prompted to establish a B<case sensitive> filter."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2344
+#, no-wrap
+msgid "\\ \\ B<o>\\ \\ :I<Other-Filter> (lower case)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2348
+msgid ""
+"You will be prompted to establish a filter that B<ignores case> when "
+"matching."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2349
+#, no-wrap
+msgid "\\ B<^O>\\ \\ :I<Show-Active-Filters> (Ctrl key + `o')"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2353
+msgid ""
+"This can serve as a reminder of which filters are active in the \\*(CW. A "
+"summary will be shown on the message line until you press the "
+"E<lt>EnterE<gt> key."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2354
+#, no-wrap
+msgid "\\ \\ B<=>\\ \\ :I<Reset-Filtering> in current window"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2358
+msgid ""
+"This clears all of your selection criteria in the \\*(CW. It also has "
+"additional impact so please \\*(Xt 4a. GLOBAL Commands."
+msgstr ""
+
+#. type: TP
+#: ../man/top.1:2359
+#, no-wrap
+msgid "\\ \\ B<+>\\ \\ :I<Reset-Filtering> in all windows"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2364
+msgid ""
+"This clears the selection criteria in all windows, assuming you are in "
+"\\*(AM. As with the `=' \\*(CI, it too has additional consequences so you "
+"might wish to \\*(Xt 5b. COMMANDS for Windows."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2367
+msgid "B<Input Requirements>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2373
+msgid ""
+"When prompted for selection criteria, the data you provide must take one of "
+"two forms. There are 3 required pieces of information, with a 4th as "
+"optional. These examples use spaces for clarity but your input generally "
+"would not."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2378
+#, no-wrap
+msgid ""
+" #1 B<#2> #3 ( required )\n"
+" Field-Name ? include-if-value\n"
+" B<!> Field-Name ? B<exclude>-if-value\n"
+" #4 ( optional )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2383
+msgid ""
+"Items #1, #3 and #4 should be self-explanatory. Item B<#2> represents both "
+"a required I<delimiter> and the I<operator> which must be one of either "
+"equality (`=') or relation (`E<lt>' or `E<gt>')."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2392
+msgid ""
+"The `=' equality operator requires only a partial match and that can reduce "
+"your `if-value' input requirements. The `E<gt>' or `E<lt>' relational "
+"operators always employ string comparisons, even with numeric fields. They "
+"are designed to work with a field's default I<justification> and with "
+"homogeneous data. When some field's numeric amounts have been subjected to "
+"I<scaling> while others have not, that data is no longer homogeneous."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2399
+msgid ""
+"If you establish a relational filter and you B<have> changed the default "
+"Numeric or Character I<justification>, that filter is likely to fail. When "
+"a relational filter is applied to a memory field and you B<have not> changed "
+"the I<scaling>, it may produce misleading results. This happens, for "
+"example, because `100.0m' (MiB) would appear greater than `1.000g' (GiB) "
+"when compared as strings."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2403
+msgid ""
+"If your filtered results appear suspect, simply altering justification or "
+"scaling may yet achieve the desired objective. See the `j', `J' and `e' "
+"\\*(CIs for additional information."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2406
+msgid "B<Potential Problems>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2410
+msgid ""
+"These B<GROUP> filters could produce the exact same results or the second "
+"one might not display anything at all, just a blank \\*(TW."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2413
+#, no-wrap
+msgid ""
+" GROUP=root ( only the same results when )\n"
+" GROUP=ROOT ( invoked via lower case `o' )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2418
+msgid ""
+"Either of these B<RES> filters might yield inconsistent and/or misleading "
+"results, depending on the current memory scaling factor. Or both filters "
+"could produce the exact same results."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2421
+#, no-wrap
+msgid ""
+" RESE<gt>9999 ( only the same results when )\n"
+" !RESE<lt>10000 ( memory scaling is at `KiB' )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2427
+msgid ""
+"This B<nMin> filter illustrates a problem unique to scalable fields. This "
+"particular field can display a maximum of 4 digits, beyond which values are "
+"automatically scaled to KiB or above. So while amounts greater than 9999 "
+"exist, they will appear as 2.6m, 197k, etc."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2429
+#, no-wrap
+msgid " nMinE<gt>9999 ( always a blank \\*(TW )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2433
+msgid "B<Potential Solutions>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2440
+msgid ""
+"These examples illustrate how Other Filtering can be creatively applied to "
+"achieve almost any desired result. Single quotes are sometimes shown to "
+"delimit the spaces which are part of a filter or to represent a request for "
+"status (^O) accurately. But if you used them with if-values in real life, "
+"no matches would be found."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2445
+msgid ""
+"Assuming field B<nTH> is displayed, the first filter will result in only "
+"multi-threaded processes being shown. It also reminds us that a trailing "
+"space is part of every displayed field. The second filter achieves the "
+"exact same results with less typing."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2448
+#, no-wrap
+msgid ""
+" !nTH=` 1 ' ( ` for clarity only )\n"
+" nTHE<gt>1 ( same with less i/p )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2452
+msgid ""
+"With Forest View mode active and the B<COMMAND> column in view, this filter "
+"effectively collapses child processes so that just 3 levels are shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2454
+#, no-wrap
+msgid " !COMMAND=` `- ' ( ` for clarity only )\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2462
+msgid ""
+"The final two filters appear as in response to the status request key (^O). "
+"In reality, each filter would have required separate input. The B<PR> "
+"example shows the two concurrent filters necessary to display tasks with "
+"priorities of 20 or more, since some might be negative. Then by exploiting "
+"trailing spaces, the B<nMin> series of filters could achieve the failed "
+"`9999' objective discussed above."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2465
+#, no-wrap
+msgid ""
+" `PRE<gt>20' + `!PR=-' ( 2 for right result )\n"
+" `!nMin=0 ' + `!nMin=1 ' + `!nMin=2 ' + `!nMin=3 ' ...\n"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2469
+#, fuzzy, no-wrap
+#| msgid "FILES"
+msgid "6. FILES"
+msgstr "文件"
+
+#. ----------------------------------------------------------------------
+#. type: SS
+#: ../man/top.1:2471
+#, no-wrap
+msgid "6a. PERSONAL Configuration File"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2474
+msgid "This file is created or updated via the `W' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2477
+msgid ""
+"The legacy version is written as `$HOME/.your-name-4-\\*(We' + `rc' with a "
+"leading period."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2482
+msgid ""
+"A newly created \\*(CF is written as procps/your-name-4-\\*(We' + `rc' "
+"without a leading period. The procps directory will be subordinate to "
+"either $XDG_CONFIG_HOME when set as an absolute path or the $HOME/.config "
+"directory."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2484
+msgid "While not intended to be edited manually, here is the general layout:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2494
+#, no-wrap
+msgid ""
+" global # line 1: the program name/alias notation\n"
+" \" # line 2: id,altscr,irixps,delay,curwin\n"
+" per ea # line a: winname,fieldscur\n"
+" window # line b: winflags,sortindx,maxtasks,etc\n"
+" \" # line c: summclr,msgsclr,headclr,taskclr\n"
+" global # line 15: additional miscellaneous settings\n"
+" \" # any remaining lines are devoted to optional\n"
+" \" # active `other filters' discussed in section 5e above\n"
+" \" # plus `inspect' entries discussed in section 6b below\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2498
+msgid ""
+"If a valid absolute path to the rcfile cannot be established, customizations "
+"made to a running \\*(We will be impossible to preserve."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2500
+#, no-wrap
+msgid "6b. ADDING INSPECT Entries"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2507
+msgid ""
+"To exploit the `Y' \\*(CI, you must add entries at theB< end> of the \\*(We "
+"personal \\*(CF. Such entries simply reflect a file to be read or command/"
+"pipeline to be executed whose results will then be displayed in a separate "
+"scrollable, searchable window."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2510
+msgid ""
+"If you don't know the location or name of your \\*(We rcfile, use the `W' "
+"\\*(CI to rewrite it and note those details."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2517
+msgid ""
+"Inspect entries can be added with a redirected echo or by editing the "
+"\\*(CF. Redirecting an echo risks overwriting the rcfile should it replace "
+"(E<gt>) rather than append (E<gt>E<gt>) to that file. Conversely, when "
+"using an editor care must be taken not to corrupt existing lines, some of "
+"which could contain unprintable data or unusual characters depending on the "
+"\\*(We version under which that \\*(CF was saved."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2522
+msgid ""
+"Those Inspect entries beginning with a `#' character are ignored, regardless "
+"of content. Otherwise they consist of the following 3 elements, each of "
+"whichI< must> be separated by a tab character (thus 2 `\\et' total):"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2527
+#, no-wrap
+msgid ""
+" .type: literal `file' or `pipe'\n"
+" .name: selection shown on the Inspect screen\n"
+" .fmts: string representing a path or command\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2534
+msgid ""
+"The two types of Inspect entries areI< not> interchangeable. Those "
+"designated `B<file>' will be accessed using fopen and must reference a "
+"single file in the `.fmts' element. Entries specifying `B<pipe>' will "
+"employ popen, their `.fmts' element could contain many pipelined commands "
+"and, none can be interactive."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2538
+msgid ""
+"If the file or pipeline represented in your `.fmts' deals with the specific "
+"PID input or accepted when prompted, then the format string must also "
+"contain the `B<%d>' specifier, as these examples illustrate."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2542
+#, no-wrap
+msgid ""
+" .fmts= /proc/I<%d>/numa_maps\n"
+" .fmts= lsof -P -pI< %d>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2547
+msgid ""
+"For `B<pipe>' type entries only, you may also wish to redirect stderr to "
+"stdout for a more comprehensive result. Thus the format string becomes:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2550
+#, no-wrap
+msgid " .fmts= pmap -x %dI< 2E<gt>&1>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2557
+msgid ""
+"Here are examples of both types of Inspect entries as they might appear in "
+"the rcfile. The first entry will be ignored due to the initial `#' "
+"character. For clarity, the pseudo tab depictions (^I) are surrounded by an "
+"extra space but the actual tabs would not be."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2563
+#, no-wrap
+msgid ""
+" # pipe ^I Sockets ^I lsof -n -P -i 2E<gt>&1\n"
+" pipe ^I Open Files ^I lsof -P -p %d 2E<gt>&1\n"
+" file ^I NUMA Info ^I /proc/%d/numa_maps\n"
+" pipe ^I Log ^I tail -n100 /var/log/syslog | sort -Mr\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2570
+msgid ""
+"Except for the commented entry above, these next examples show what could be "
+"echoed to achieve similar results, assuming the rcfile name was `.toprc'. "
+"However, due to the embedded tab characters, each of these lines should be "
+"preceded by `B</bin/echo -e>', not just a simple an `echo', to enable "
+"backslash interpretation regardless of which shell you use."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2575
+#, no-wrap
+msgid ""
+" \"pipe\\etOpen Files\\etlsof -P -p %d 2E<gt>&1\" E<gt>E<gt> ~/.toprc\n"
+" \"file\\etNUMA Info\\et/proc/%d/numa_maps\" E<gt>E<gt> ~/.toprc\n"
+" \"pipe\\etLog\\ettail -n200 /var/log/syslog | sort -Mr\" E<gt>E<gt> ~/.toprc\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2584
+msgid ""
+"If any inspect entry you create produces output with unprintable characters "
+"they will be displayed in either the ^C notation or hexadecimal E<lt>FFE<gt> "
+"form, depending on their value. This applies to tab characters as well, "
+"which will show as `^I'. If you want a truer representation, any embedded "
+"tabs should be expanded. The following example takes what could have been a "
+"`file' entry but employs a `pipe' instead so as to expand the embedded tabs."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2590
+#, no-wrap
+msgid ""
+" # next would have contained `\\et' ...\n"
+" # file ^I E<lt>your_nameE<gt> ^I /proc/%d/status\n"
+" # but this will eliminate embedded `\\et' ...\n"
+" pipe ^I E<lt>your_nameE<gt> ^I cat /proc/%d/status | expand -\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2596
+msgid ""
+"\\*(NT Some programs might rely on I<SIGINT> to end. Therefore, if a "
+"`B<pipe>' such as the following is established, one must use Ctrl-C to "
+"terminate it in order to review the results. This is the single occasion "
+"where a `^C' will not also terminate \\*(We."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2599
+#, no-wrap
+msgid " pipe ^I Trace ^I /usr/bin/strace -p %d 2E<gt>&1\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2605
+msgid ""
+"Lastly, while `B<pipe>' type entries have been discussed in terms of "
+"pipelines and commands, there is nothing to prevent you from including I< "
+"shell scripts> as well. Perhaps even newly created scripts designed "
+"specifically for the `Y' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2611
+msgid ""
+"For example, as the number of your Inspect entries grows over time, the "
+"`Options:' row will be truncated when screen width is exceeded. That does "
+"not affect operation other than to make some selections invisible. However, "
+"if some choices are lost to truncation but you want to see more options, "
+"there is an easy solution hinted at below."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2616
+#, no-wrap
+msgid ""
+" Inspection Pause at pid ...\n"
+" Use: left/right then E<lt>EnterE<gt> ...\n"
+" Options: help 1 2 3 4 5 6 7 8 9 10 11 ...\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2622
+msgid ""
+"The entries in the \\*(We rcfile would have a number for the `.name' element "
+"and the `help' entry would identify a shell script you've written explaining "
+"what those numbered selections actually mean. In that way, many more "
+"choices can be made visible."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2624
+#, no-wrap
+msgid "6c. SYSTEM Configuration File"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2629
+msgid ""
+"This \\*(CF represents defaults for users who have not saved their own "
+"\\*(CF. The format mirrors exactly the personal \\*(CF and can also include "
+"`inspect' entries as explained above."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2631
+msgid "Creating it is a simple process."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2634
+msgid ""
+"1. Configure \\*(We appropriately for your installation and preserve that "
+"configuration with the `W' \\*(CI."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2636
+msgid "2. Add and test any desired `inspect' entries."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2638
+msgid "3. Copy that \\*(CF to the I</etc/> directory as `B<topdefaultrc>'."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2640
+#, no-wrap
+msgid "6d. SYSTEM Restrictions File"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2644
+msgid ""
+"The presence of this file will influence which version of the help screen is "
+"shown to an ordinary user."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2648
+msgid ""
+"More importantly, it will limit what ordinary users are allowed to do when "
+"\\*(We is running. They will not be able to issue the following commands."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2652
+#, no-wrap
+msgid ""
+" k Kill a task\n"
+" r Renice a task\n"
+" d or s Change delay/sleep interval\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2657
+msgid ""
+"This \\*(CF is not created by \\*(We. Rather, it is created manually and "
+"placed it in the I</etc/> directory as `B<toprc>'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2659
+msgid "It should have exactly two lines, as shown in this example:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2662
+#, no-wrap
+msgid ""
+" s # line 1: secure mode switch\n"
+" 5.0 # line 2: delay interval in seconds\n"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2665
+#, no-wrap
+msgid "7. ENVIRONMENT VARIABLE(S)"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2668 ../man/procps_pids.3:201
+msgid "The value set for the following is unimportant, just its presence."
+msgstr ""
+
+#. type: IP
+#: ../man/top.1:2669 ../man/procps_pids.3:202
+#, no-wrap
+msgid "LIBPROC_HIDE_KERNEL"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2672
+msgid ""
+"This will prevent display of any kernel threads and exclude such processes "
+"from the \\*(SA Tasks/Threads counts."
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2674
+#, no-wrap
+msgid "8. STUPID TRICKS Sampler"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2679
+msgid ""
+"Many of these tricks work best when you give \\*(We a scheduling boost. So "
+"plan on starting him with a nice value of -10, assuming you've got the "
+"authority."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2681
+#, no-wrap
+msgid "7a. Kernel Magic"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. sorry, just can't help it -- don't ya love the sound of this?
+#. ( apparently AM static was a potential concern )
+#. type: Plain text
+#: ../man/top.1:2686
+msgid "For these stupid tricks, \\*(We needs \\*(FM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2693
+msgid ""
+"The user interface, through prompts and help, intentionally implies that the "
+"delay interval is limited to tenths of a second. However, you're free to "
+"set any desired delay. If you want to see Linux at his scheduling best, try "
+"a delay of .09 seconds or less."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2696
+msgid ""
+"For this experiment, under x-windows open an xterm and maximize it. Then do "
+"the following:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2705
+#, no-wrap
+msgid ""
+" . provide a scheduling boost and tiny delay via:\n"
+" nice -n -10 \\*(We -d.09\n"
+" . keep sorted column highlighting \\*F so as to\n"
+" minimize path length\n"
+" . turn \\*O reverse row highlighting for emphasis\n"
+" . try various sort columns (TIME/MEM work well),\n"
+" and normal or reverse sorts to bring the most\n"
+" active processes into view\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2709
+msgid ""
+"What you'll see is a very busy Linux doing what he's always done for you, "
+"but there was no program available to illustrate this."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2715
+msgid ""
+"Under an xterm using `white-on-black' colors, on \\*(We's Color Mapping "
+"screen set the task color to black and be sure that task highlighting is set "
+"to bold, not reverse. Then set the delay interval to around .3 seconds."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2718
+msgid ""
+"After bringing the most active processes into view, what you'll see are the "
+"ghostly images of just the currently running tasks."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2724
+msgid ""
+"Delete the existing rcfile, or create a new symlink. Start this new version "
+"then type `T' (a secret key, \\*(Xt 4c. Task Area Commands, SORTING) "
+"followed by `W' and `q'. Finally, restart the program with -d0 (zero delay)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2729
+msgid ""
+"Your display will be refreshed at three times the rate of the former \\*(We, "
+"a 300% speed advantage. As \\*(We climbs the TIME ladder, be as patient as "
+"you can while speculating on whether or not \\*(We will ever reach the "
+"\\*(We."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2731
+#, no-wrap
+msgid "7b. Bouncing Windows"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2734
+msgid "For these stupid tricks, \\*(We needs \\*(AM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2740
+msgid ""
+"With 3 or 4 \\*(TDs visible, pick any window other than the last and turn "
+"idle processes \\*F using the `i' \\*(CT. Depending on where you applied "
+"`i', sometimes several \\*(TDs are bouncing and sometimes it's like an "
+"accordion, as \\*(We tries his best to allocate space."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2746
+msgid ""
+"Set each window's summary lines differently: one with no memory (`m'); "
+"another with no states (`t'); maybe one with nothing at all, just the "
+"message line. Then hold down `a' or `w' and watch a variation on bouncing "
+"windows \\*(Em hopping windows."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2751
+msgid ""
+"Display all 4 windows and for each, in turn, set idle processes to \\*F "
+"using the `i' \\*(CT. You've just entered the \"extreme bounce\" zone."
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2753
+#, no-wrap
+msgid "7c. The Big Bird Window"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2756
+msgid "This stupid trick also requires \\*(AM."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2761
+msgid ""
+"Display all 4 windows and make sure that 1:Def is the \\*(CW. Then, keep "
+"increasing window size with the `n' \\*(CI until all the other \\*(TDs are "
+"\"pushed out of the nest\"."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2765
+msgid ""
+"When they've all been displaced, toggle between all visible/invisible "
+"windows using the `_' \\*(CT. Then ponder this:"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2767
+#, no-wrap
+msgid " is \\*(We fibbing or telling honestly your imposed truth?\n"
+msgstr ""
+
+#. ......................................................................
+#. type: SS
+#: ../man/top.1:2769
+#, no-wrap
+msgid "7d. The Ol' Switcheroo"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2773
+msgid ""
+"This stupid trick works best without \\*(AM, since justification is active "
+"on a per window basis."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2778
+msgid ""
+"Start \\*(We and make COMMAND the last (rightmost) column displayed. If "
+"necessary, use the `c' \\*(CT to display command lines and ensure that "
+"forest view mode is active with the `V' \\*(CT."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2782
+msgid ""
+"Then use the up/down arrow keys to position the display so that some "
+"truncated command lines are shown (`+' in last position). You may have to "
+"resize your xterm to produce truncation."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2784
+msgid "Lastly, use the `j' \\*(CT to make the COMMAND column right justified."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2788
+msgid ""
+"Now use the right arrow key to reach the COMMAND column. Continuing with "
+"the right arrow key, watch closely the direction of travel for the command "
+"lines being shown."
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2791
+#, no-wrap
+msgid " some lines travel left, while others travel right\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/top.1:2793
+#, no-wrap
+msgid " eventually all lines will Switcheroo, and move right\n"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2795
+#, fuzzy, no-wrap
+#| msgid "BUGS"
+msgid "9. BUGS"
+msgstr "错误"
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2800
+msgid "Please send bug reports to E<.UR procps@freelists.org> E<.UE .>"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: SH
+#: ../man/top.1:2802
+#, no-wrap
+msgid "10. SEE Also"
+msgstr ""
+
+#. ----------------------------------------------------------------------
+#. type: Plain text
+#: ../man/top.1:2810
+msgid ""
+"B<free>(1), B<ps>(1), B<uptime>(1), B<atop>(1), B<slabtop>(1), B<vmstat>(8), "
+"B<w>(1)"
+msgstr ""
+
+#. type: TH
+#: ../man/procps.3:11
+#, no-wrap
+msgid "PROCPS"
+msgstr ""
+
+#. type: TH
+#: ../man/procps.3:11 ../man/procps_misc.3:11 ../man/procps_pids.3:11
+#, no-wrap
+msgid "August 2022"
+msgstr ""
+
+#. type: TH
+#: ../man/procps.3:11 ../man/procps_misc.3:11 ../man/procps_pids.3:11
+#, no-wrap
+msgid "libproc2"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:17
+msgid "procps - API to access system level information in the /proc filesystem"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:22
+msgid ""
+"Five distinct interfaces are represented in this synopsis and named after "
+"the files they access in the /proc pseudo filesystem: B<diskstats>, "
+"B<meminfo>, B<slabinfo>, B<stat> and B<vmstat>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:26
+#, no-wrap
+msgid "#include E<lt>libproc2/B<named_interface>.hE<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:30
+#, no-wrap
+msgid ""
+"intB< procps_new > (struct info **I<info>);\n"
+"intB< procps_ref > (struct info *I<info>);\n"
+"intB< procps_unref> (struct info **I<info>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:35
+#, no-wrap
+msgid ""
+"struct result *B<procps_get> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<name>, ] B<diskstats> api only\n"
+" enum item I<item>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:41
+#, no-wrap
+msgid ""
+"struct stack *B<procps_select> (\n"
+" struct info *I<info>,\n"
+"[ const char *I<name>, ] B<diskstats> api only\n"
+" enum item *I<items>,\n"
+" int I<numitems>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:47
+#, no-wrap
+msgid ""
+"struct reaped *B<procps_reap> (\n"
+" struct info *I<info>,\n"
+"[ enum reap_type I<what>, ] B<stat> api only\n"
+" enum item *I<items>,\n"
+" int I<numitems>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:54
+#, no-wrap
+msgid ""
+"struct stack **B<procps_sort> (\n"
+" struct info *I<info>,\n"
+" struct stack *I<stacks>[],\n"
+" int I<numstacked>,\n"
+" enum item I<sortitem>,\n"
+" enum sort_order I<order>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:61
+msgid ""
+"The above functions and structures are generic but the specific "
+"B<named_interface> would also be part of any identifiers. For example, "
+"`procps_new' would actually be `procps_B<meminfo>_new' and `info' would "
+"really be `B<diskstats>_info', etc."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:64
+msgid ""
+"The same B<named_interface> is used in each header file name with an "
+"appended `.h' suffix."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:66 ../man/procps_pids.3:60
+msgid "Link with I<-lproc2>."
+msgstr ""
+
+#. type: SS
+#: ../man/procps.3:68 ../man/procps_pids.3:62
+#, no-wrap
+msgid "Overview"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:74
+msgid ""
+"Central to these interfaces is a simple `result' structure reflecting an "
+"`item' plus its value (in a union with standard C language types as "
+"members). All `result' structures are automatically allocated and provided "
+"by the library."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:80 ../man/procps_pids.3:74
+msgid ""
+"By specifying an array of `items', these structures can be organized as a "
+"`stack', potentially yielding many results with a single function call. "
+"Thus, a `stack' can be viewed as a variable length record whose content and "
+"order is determined solely by the user."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:85
+msgid ""
+"As part of each interface there are two unique enumerators. The `noop' and "
+"`extra' items exist to hold user values. They are never set by the library, "
+"but the `extra' result will be zeroed with each library interaction."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:91
+msgid ""
+"The B<named_interface> header file will be an essential document during user "
+"program development. There you will find available items, their return type "
+"(the `result' struct member name) and the source for such values. "
+"Additional enumerators and structures are also documented there."
+msgstr ""
+
+#. type: SS
+#: ../man/procps.3:92 ../man/procps_pids.3:86
+#, no-wrap
+msgid "Usage"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:95
+msgid "The following would be a typical sequence of calls to these interfaces."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:100
+#, no-wrap
+msgid ""
+"1. B<procps_new()>\n"
+"2. B<procps_get()>, B<procps_select()> or B<procps_reap()>\n"
+"3. B<procps_unref()>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:106
+msgid ""
+"The B<get> function is used to retrieve a `result' structure for a single "
+"`item'. Alternatively, a B<GET> macro is available when only the return "
+"value is of interest."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:109
+msgid ""
+"The B<select> function can retrieve multiple `result' structures in a single "
+"`stack'."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:115
+msgid ""
+"For unpredictable variable outcomes, the B<diskstats>, B<slabinfo> and "
+"B<stat> interfaces export a B<reap> function. It is used to retrieve "
+"multiple `stacks' each containing multiple `result' structures. Optionally, "
+"a user may choose to B<sort> those results."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:122 ../man/procps_pids.3:114
+msgid ""
+"To exploit any `stack', and access individual `result' structures, a "
+"I<relative_enum> is required as shown in the B<VAL> macro defined in the "
+"header file. Such values could be hard coded as: 0 through numitems-1. "
+"However, this need is typically satisfied by creating your own enumerators "
+"corresponding to the order of the `items' array."
+msgstr ""
+
+#. type: SS
+#: ../man/procps.3:123 ../man/procps_pids.3:115
+#, no-wrap
+msgid "Caveats"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:126
+msgid ""
+"The B<new>, B<ref>, B<unref>, B<get> and B<select> functions are available "
+"in all five interfaces."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:131 ../man/procps_pids.3:127
+msgid ""
+"For the B<new> and B<unref> functions, the address of an I<info> struct "
+"pointer must be supplied. With B<new> it must have been initialized to "
+"NULL. With B<unref> it will be reset to NULL if the reference count reaches "
+"zero."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:135
+msgid ""
+"In the case of the B<diskstats> interface, a I<name> parameter on the B<get> "
+"and B<select> functions identifies a disk or partition name"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:139
+msgid ""
+"For the B<stat> interface, a I<what> parameter on the B<reap> function "
+"identifies whether data for just CPUs or both CPUs and NUMA nodes is to be "
+"gathered."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:143
+msgid ""
+"When using the B<sort> function, the parameters I<stacks> and I<numstacked> "
+"would normally be those returned in the `reaped' structure."
+msgstr ""
+
+#. type: SH
+#: ../man/procps.3:144 ../man/procps_misc.3:127 ../man/procps_pids.3:148
+#, no-wrap
+msgid "RETURN VALUE"
+msgstr ""
+
+#. type: SS
+#: ../man/procps.3:145 ../man/procps_pids.3:149
+#, no-wrap
+msgid "Functions Returning an `int'"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:148 ../man/procps_misc.3:131 ../man/procps_pids.3:152
+msgid ""
+"An error will be indicated by a negative number that is always the inverse "
+"of some well known errno.h value."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:152 ../man/procps_pids.3:156
+msgid ""
+"Success is indicated by a zero return value. However, the B<ref> and "
+"B<unref> functions return the current I<info> structure reference count."
+msgstr ""
+
+#. type: SS
+#: ../man/procps.3:153 ../man/procps_misc.3:132 ../man/procps_pids.3:157
+#, no-wrap
+msgid "Functions Returning an `address'"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:156 ../man/procps_misc.3:135 ../man/procps_pids.3:160
+msgid ""
+"An error will be indicated by a NULL return pointer with the reason found in "
+"the formal errno value."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:158
+msgid "Success is indicated by a pointer to the named structure."
+msgstr ""
+
+#. type: SH
+#: ../man/procps.3:159 ../man/procps_pids.3:165
+#, no-wrap
+msgid "DEBUGGING"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:165
+msgid ""
+"To aid in program development, there is a provision that can help ensure "
+"`result' member references agree with library expectations. It assumes that "
+"a supplied macro in the header file is used to access the `result' value."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:168 ../man/procps_pids.3:185
+msgid ""
+"This feature can be activated through either of the following methods and "
+"any discrepancies will be written to B<stderr>."
+msgstr ""
+
+#. type: IP
+#: ../man/procps.3:169 ../man/procps_pids.3:186
+#, fuzzy, no-wrap
+#| msgid "1"
+msgid "1)"
+msgstr "1"
+
+#. type: Plain text
+#: ../man/procps.3:172
+msgid ""
+"Add CFLAGS='-DXTRA_PROCPS_DEBUG' to any other ./configure options employed."
+msgstr ""
+
+#. type: IP
+#: ../man/procps.3:173 ../man/procps_pids.3:190
+#, fuzzy, no-wrap
+#| msgid "2"
+msgid "2)"
+msgstr "2"
+
+#. type: Plain text
+#: ../man/procps.3:176
+msgid ""
+"Add #include E<lt>procps/xtra-procps-debug.hE<gt> to any program I<after> "
+"the named interface includes."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:181 ../man/procps_pids.3:198
+msgid ""
+"This verification feature incurs substantial overhead. Therefore, it is "
+"important that it I<not> be activated for a production/release build."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps.3:185
+msgid "B<procps_misc>(3), B<procps_pids>(3), B<proc>(5)."
+msgstr ""
+
+#. type: TH
+#: ../man/procps_misc.3:11
+#, no-wrap
+msgid "PROCPS_MISC"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:17
+msgid "procps_misc - API for miscellaneous information in the /proc filesystem"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:20
+#, no-wrap
+msgid "B<#include E<lt>libproc2/misc.hE<gt>>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:22
+#, no-wrap
+msgid "Platform Particulars\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:28
+#, no-wrap
+msgid ""
+"long B<procps_cpu_count> (void);\n"
+"long B<procps_hertz_get> (void);\n"
+"unsigned int B<procps_pid_length> (void);\n"
+"int B<procps_linux_version> (void);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:31
+#, no-wrap
+msgid "Runtime Particulars\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:37
+#, no-wrap
+msgid ""
+"int B< procps_loadavg> (double *I<av1>, double *I<av5>, double *I<av15>);\n"
+"int B< procps_uptime> (double *I<uptime_secs>, double *I<idle_secs>);\n"
+"char *B<procps_uptime_sprint> (void);\n"
+"char *B<procps_uptime_sprint_short> (void);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:40
+#, no-wrap
+msgid "Namespace Particulars\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:45
+#, no-wrap
+msgid ""
+"int B< procps_ns_get_id> (const char *I<name>);\n"
+"const charB< *procps_ns_get_name> (int I<id>);\n"
+"int B< procps_ns_read_pid> (int I<pid>, struct procps_ns *I<nsp>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:48
+#, no-wrap
+msgid "Link with I<-lproc2>.\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:54
+msgid ""
+"B<procps_cpu_count>() returns the number of CPUs that are currently online "
+"as B<sysconf(>I<_SC_NPROCESSORS_ONLY>B<)> or an assumed I<1>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:60
+msgid ""
+"B<procps_hertz_get>() returns the number of clock ticks per second as "
+"B<sysconf(>I<_SC_CLK_TCK>B<)> or an assumed I<100>. Dividing tics by this "
+"value yields seconds."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:65
+msgid ""
+"B<procps_pid_length>() returns the maximum string length for a PID on the "
+"system. For example, if the largest possible PID value on was 123, then the "
+"length would be 3. If the file I</proc/sys/kernel/pid_max> is unreadable, "
+"the value is assumed to be I<5>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:74
+msgid ""
+"B<procps_linux_version>() returns the current Linux version as an encoded "
+"integer. On non-Linux systems that have an emulated proc filesystem this "
+"function returns the version of the Linux emulation instead. The version "
+"consists of three positive integers representing the major, minor and patch "
+"levels. The following macros are provided for encoding a given Linux "
+"version or separating out the components of the current version."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:77
+msgid "LINUX_VERSION(\\ major\\ ,\\ minor\\ ,\\ patch\\ )"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:79
+msgid "LINUX_VERSION_MAJOR(\\ ver\\ )"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:81
+msgid "LINUX_VERSION_MINOR(\\ ver\\ )"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:83
+msgid "LINUX_VERSION_PATCH(\\ ver\\ )"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:88
+msgid ""
+"B<procps_loadavg>() fetches the system load average and puts the 1, 5 and "
+"15 minute averages into location(s) specified by any pointer which is not "
+"I<NULL>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:93
+msgid ""
+"B<procps_uptime>() returns uptime and/or idle seconds into location(s) "
+"specified by any pointer which is not I<NULL>. The B<sprint> varieties "
+"return a human-readable string in one of two forms."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:96
+msgid "HH:MM:SS up HH:MM, # users, load average: 1, 5, 15 MM averages"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:98
+msgid "up HH, MM"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:102
+msgid ""
+"B<procps_ns_get_id>() returns the integer id (enum namespace_type) of the "
+"namespace for the given namespace I<name>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:105
+msgid ""
+"B<procps_ns_get_name>() returns the name of the namespace for the given "
+"I<id> (enum namespace_type)."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:110
+msgid ""
+"B<procps_ns_read_pid>() returns the inodes for the namespaces of the given "
+"process in the procps_ns structure pointed to by I<nsp>. Those inodes will "
+"appear in the order proscribed by enum namespace_type."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:123
+#, no-wrap
+msgid ""
+"enum namespace_type {\n"
+" PROCPS_NS_CGROUP,\n"
+" PROCPS_NS_IPC,\n"
+" PROCPS_NS_MNT,\n"
+" PROCPS_NS_NET,\n"
+" PROCPS_NS_PID,\n"
+" PROCPS_NS_TIME,\n"
+" PROCPS_NS_USER,\n"
+" PROCPS_NS_UTS\n"
+"};\n"
+msgstr ""
+
+#. type: SS
+#: ../man/procps_misc.3:128
+#, no-wrap
+msgid "Functions Returning an `int' or `long'"
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:137
+#, no-wrap
+msgid "I</proc/loadavg>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:140
+msgid "The raw values for load average."
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:140
+#, no-wrap
+msgid "I</proc/sys/kernel/osrelease>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:143
+msgid "Contains the release version of the Linux kernel or proc filesystem."
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:143
+#, no-wrap
+msgid "I</proc/sys/kernel/pid_max>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:146
+msgid ""
+"Contains the value at which PIDs wrap around, one greater than the maximum "
+"PID value."
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:146
+#, no-wrap
+msgid "I</proc/uptime>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:149
+msgid "The raw values for uptime and idle time."
+msgstr ""
+
+#. type: TP
+#: ../man/procps_misc.3:149
+#, no-wrap
+msgid "I</proc/E<lt>PIDE<gt>/ns>"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:152
+msgid "contains the set of namespaces for a particular B<PID>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_misc.3:156
+msgid "B<procps>(3), B<procps_pids>(3), B<proc>(5)."
+msgstr ""
+
+#. type: TH
+#: ../man/procps_pids.3:11
+#, no-wrap
+msgid "PROCPS_PIDS"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:17
+msgid "procps_pids - API to access process information in the /proc filesystem"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:21
+#, no-wrap
+msgid "#include E<lt>libproc2/pids.hE<gt>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:25
+#, no-wrap
+msgid ""
+"intB< procps_pids_new > (struct pids_info **I<info>, enum pids_item *I<items>, int I<numitems>);\n"
+"intB< procps_pids_ref > (struct pids_info *I<info>);\n"
+"intB< procps_pids_unref> (struct pids_info **I<info>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:30
+#, no-wrap
+msgid ""
+"struct pids_stack *B<procps_pids_get> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<which>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:34
+#, no-wrap
+msgid ""
+"struct pids_fetch *B<procps_pids_reap> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_fetch_type I<which>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:40
+#, no-wrap
+msgid ""
+"struct pids_fetch *B<procps_pids_select> (\n"
+" struct pids_info *I<info>,\n"
+" unsigned *I<these>,\n"
+" int I<numthese>,\n"
+" enum pids_select_type I<which>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:47
+#, no-wrap
+msgid ""
+"struct pids_stack **B<procps_pids_sort> (\n"
+" struct pids_info *I<info>,\n"
+" struct pids_stack *I<stacks>[],\n"
+" int I<numstacked>,\n"
+" enum pids_item I<sortitem>,\n"
+" enum pids_sort_order I<order>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:52
+#, no-wrap
+msgid ""
+"int B<procps_pids_reset> (\n"
+" struct pids_info *I<info>,\n"
+" enum pids_item *I<newitems>,\n"
+" int I<newnumitems>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:56
+#, no-wrap
+msgid ""
+"struct pids_stack *B<fatal_proc_unmounted> (\n"
+" struct pids_info *I<info>,\n"
+" int I<return_self>);\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:68
+msgid ""
+"Central to this interface is a simple `result' structure reflecting an "
+"`item' plus its value (in a union with standard C language types as "
+"members). All `result' structures are automatically allocated and provided "
+"by the library."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:79
+msgid ""
+"As part of this interface there are two unique enumerators. The `noop' and "
+"`extra' items exist to hold user values. They are never set by the library, "
+"but the `extra' result will be zeroed with each library interaction."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:85
+msgid ""
+"The pids.h file will be an essential document during user program "
+"development. There you will find available items, their return type (the "
+"`result' struct member name) and the source for such values. Additional "
+"enumerators and structures are also documented there."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:89
+msgid "The following would be a typical sequence of calls to this interface."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:95
+#, no-wrap
+msgid ""
+"1. B<fatal_proc_unmounted()>\n"
+"2. B<procps_pids_new()>\n"
+"3. B<procps_pids_get()>, B<procps_pids_reap()> or B<procps_pids_select()>\n"
+"4. B<procps_pids_unref()>\n"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:100
+msgid ""
+"The B<get> function is an iterator for successive PIDs/TIDs, returning those "
+"`items' previously identified via B<new> or B<reset>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:107
+msgid ""
+"Two functions support unpredictable variable outcomes. The B<reap> function "
+"gathers data for all processes while the B<select> function deals with "
+"specific PIDs or UIDs. Both can return multiple `stacks' each containing "
+"multiple `result' structures. Optionally, a user may choose to B<sort> such "
+"results"
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:122
+msgid ""
+"The E<lt>pidsE<gt> API differs from others in that those items of interest "
+"must be provided at B<new> or B<reset> time, the latter being unique to this "
+"API. If either the I<items> or I<numitems> parameter is zero at B<new> "
+"time, then B<reset> becomes mandatory before issuing any other call."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:130
+msgid ""
+"The B<get> and B<reap> functions use the I<which> parameter to specify "
+"whether just tasks or both tasks and threads are to be fetched."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:135
+msgid ""
+"The B<select> function requires an array of PIDs or UIDs as I<these> along "
+"with I<numthese> to identify which processes are to be fetched. This "
+"function then operates as a subset of B<reap>."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:139
+msgid ""
+"When using the B<sort> function, the parameters I<stacks> and I<numstacked> "
+"would normally be those returned in the `pids_fetch' structure."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:147
+msgid ""
+"Lastly, a B<fatal_proc_unmounted> function may be called before any other "
+"function to ensure that the /proc/ directory is mounted. As such, the "
+"I<info> parameter would be NULL and the I<return_self> parameter zero. If, "
+"however, some items are desired for the issuing program (a I<return_self> "
+"other than zero) then the B<new> call must precede it to identify the "
+"I<items> and obtain the required I<info> pointer."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:164
+msgid ""
+"Success is indicated by a pointer to the named structure. However, if one "
+"survives the B<fatal_proc_unmounted> call, NULL is always returned when "
+"I<return_self> is zero."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:168
+msgid ""
+"To aid in program development, there are two procps-ng provisions that can "
+"be exploited."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:173
+msgid ""
+"The first is a supplied file named `libproc.supp' which may be useful when "
+"developing a I<multi-threaded> application. When used with the valgrind `--"
+"suppressions=' option, warnings associated with the procps library itself "
+"are avoided."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:177
+msgid ""
+"Such warnings arise because the library handles heap based allocations in a "
+"thread-safe manner. A I<single-threaded> application will not receive those "
+"warnings."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:182
+msgid ""
+"The second provision can help ensure `result' member references agree with "
+"library expectations. It assumes that a supplied macro in the header file "
+"is used to access the `result' value."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:189
+msgid ""
+"Add CFLAGS='-DXTRA_PROCPS_DEBUG' to any other ./configure options your "
+"project may employ."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:193
+msgid ""
+"Add #include E<lt>procps/xtra-procps-debug.hE<gt> to any program I<after> "
+"the #include E<lt>procps/pids.hE<gt>."
+msgstr ""
+
+#. type: SH
+#: ../man/procps_pids.3:199
+#, fuzzy, no-wrap
+#| msgid "ENVIRONMENT"
+msgid "ENVIRONMENT VARIABLE(S)"
+msgstr "环境"
+
+#. type: Plain text
+#: ../man/procps_pids.3:206
+msgid ""
+"This will hide kernel threads which would otherwise be returned with a "
+"B<procps_pids_get>, B<procps_pids_select> or B<procps_pids_reap> call."
+msgstr ""
+
+#. type: Plain text
+#: ../man/procps_pids.3:210
+msgid "B<procps>(3), B<procps_misc>(3), B<proc>(5)."
+msgstr ""
diff --git a/po/ChangeLog b/po/ChangeLog
new file mode 100644
index 0000000..732c0fa
--- /dev/null
+++ b/po/ChangeLog
@@ -0,0 +1,5 @@
+2015-12-15 gettextize <bug-gnu-gettext@gnu.org>
+
+ * Makefile.in.in: Upgrade to gettext-0.19.6.
+ * Rules-quot: Upgrade to gettext-0.19.6.
+
diff --git a/po/Makefile.in.in b/po/Makefile.in.in
new file mode 100644
index 0000000..e08b03e
--- /dev/null
+++ b/po/Makefile.in.in
@@ -0,0 +1,367 @@
+# Makefile for PO directory in any package using GNU gettext.
+# Copyright (C) 1995-1997, 2000-2004 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+#
+# This file can be copied and used freely without restrictions. It can
+# be used in projects which are not available under the GNU General Public
+# License but which still want to provide support for the GNU gettext
+# functionality.
+# Please note that the actual code of GNU gettext is covered by the GNU
+# General Public License and is *not* in the public domain.
+#
+# Origin: gettext-0.14
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+SHELL = /bin/sh
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datarootdir = @datarootdir@
+datadir = @datadir@
+localedir = $(datadir)/locale
+gettextsrcdir = $(datadir)/gettext/po
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+mkinstalldirs = $(SHELL) $(MKINSTALLDIRS)
+
+GMSGFMT = @GMSGFMT@
+MSGFMT = @MSGFMT@
+XGETTEXT = @XGETTEXT@
+MSGMERGE = msgmerge
+MSGMERGE_UPDATE = @MSGMERGE@ --update
+MSGINIT = msginit
+MSGCONV = msgconv
+MSGFILTER = msgfilter
+
+POFILES = @POFILES@
+GMOFILES = @GMOFILES@
+UPDATEPOFILES = @UPDATEPOFILES@
+DUMMYPOFILES = @DUMMYPOFILES@
+DISTFILES.common = Makefile.in.in remove-potcdate.sin \
+$(DISTFILES.common.extra1) $(DISTFILES.common.extra2) $(DISTFILES.common.extra3)
+DISTFILES = $(DISTFILES.common) Makevars POTFILES.in $(DOMAIN).pot stamp-po \
+$(POFILES) $(GMOFILES) \
+$(DISTFILES.extra1) $(DISTFILES.extra2) $(DISTFILES.extra3)
+
+POTFILES = \
+
+CATALOGS = @CATALOGS@
+
+# Makevars gets inserted here. (Don't remove this line!)
+
+.SUFFIXES:
+.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update
+
+.po.mo:
+ @echo "$(MSGFMT) -c -o $@ $<"; \
+ $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
+
+.po.gmo:
+ @lang=`echo $* | sed -e 's,.*/,,'`; \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o $${lang}.gmo $${lang}.po"; \
+ cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
+
+.sin.sed:
+ sed -e '/^#/d' $< > t-$@
+ mv t-$@ $@
+
+
+all: all-@USE_NLS@
+
+all-yes: stamp-po
+all-no:
+
+# stamp-po is a timestamp denoting the last time at which the CATALOGS have
+# been loosely updated. Its purpose is that when a developer or translator
+# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
+# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent
+# invocations of "make" will do nothing. This timestamp would not be necessary
+# if updating the $(CATALOGS) would always touch them; however, the rule for
+# $(POFILES) has been designed to not touch files that don't need to be
+# changed.
+stamp-po: $(srcdir)/$(DOMAIN).pot
+ test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
+ @echo "touch stamp-po"
+ @echo timestamp > stamp-poT
+ @mv stamp-poT stamp-po
+
+# Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
+# otherwise packages like GCC can not be built if only parts of the source
+# have been downloaded.
+
+# This target rebuilds $(DOMAIN).pot; it is an expensive operation.
+# Note that $(DOMAIN).pot is not touched if it doesn't need to be changed.
+$(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
+ $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
+ --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) \
+ --files-from=$(srcdir)/POTFILES.in \
+ --copyright-holder='$(COPYRIGHT_HOLDER)' \
+ --msgid-bugs-address='$(MSGID_BUGS_ADDRESS)'
+ test ! -f $(DOMAIN).po || { \
+ if test -f $(srcdir)/$(DOMAIN).pot; then \
+ sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
+ sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
+ if cmp $(DOMAIN).1po $(DOMAIN).2po >/dev/null 2>&1; then \
+ rm -f $(DOMAIN).1po $(DOMAIN).2po $(DOMAIN).po; \
+ else \
+ rm -f $(DOMAIN).1po $(DOMAIN).2po $(srcdir)/$(DOMAIN).pot && \
+ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+ fi; \
+ else \
+ mv $(DOMAIN).po $(srcdir)/$(DOMAIN).pot; \
+ fi; \
+ }
+
+# This rule has no dependencies: we don't need to update $(DOMAIN).pot at
+# every "make" invocation, only create it when it is missing.
+# Only "make $(DOMAIN).pot-update" or "make dist" will force an update.
+$(srcdir)/$(DOMAIN).pot:
+ $(MAKE) $(DOMAIN).pot-update
+
+# This target rebuilds a PO file if $(DOMAIN).pot has changed.
+# Note that a PO file is not touched if it doesn't need to be changed.
+$(POFILES): $(srcdir)/$(DOMAIN).pot
+ @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
+ if test -f "$(srcdir)/$${lang}.po"; then \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}$(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot"; \
+ cd $(srcdir) && $(MSGMERGE_UPDATE) $${lang}.po $(DOMAIN).pot; \
+ else \
+ $(MAKE) $${lang}.po-create; \
+ fi
+
+
+install: install-exec install-data
+install-exec:
+install-data: install-data-@USE_NLS@
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
+ for file in $(DISTFILES.common) Makevars.template; do \
+ $(INSTALL_DATA) $(srcdir)/$$file \
+ $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ for file in Makevars; do \
+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ else \
+ : ; \
+ fi
+install-data-no: all
+install-data-yes: all
+ $(mkinstalldirs) $(DESTDIR)$(datadir)
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ dir=$(localedir)/$$lang/LC_MESSAGES; \
+ $(mkinstalldirs) $(DESTDIR)$$dir; \
+ if test -r $$cat; then realcat=$$cat; else realcat=$(srcdir)/$$cat; fi; \
+ $(INSTALL_DATA) $$realcat $(DESTDIR)$$dir/$(DOMAIN).mo; \
+ echo "installing $$realcat as $(DESTDIR)$$dir/$(DOMAIN).mo"; \
+ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
+ if test -n "$$lc"; then \
+ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
+ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
+ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
+ for file in *; do \
+ if test -f $$file; then \
+ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
+ fi; \
+ done); \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ else \
+ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
+ :; \
+ else \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ fi; \
+ fi; \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ ln -s ../LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
+ ln $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo 2>/dev/null || \
+ cp -p $(DESTDIR)$(localedir)/$$lang/LC_MESSAGES/$(DOMAIN).mo $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ echo "installing $$realcat link as $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo"; \
+ fi; \
+ done; \
+ done
+
+install-strip: install
+
+installdirs: installdirs-exec installdirs-data
+installdirs-exec:
+installdirs-data: installdirs-data-@USE_NLS@
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ $(mkinstalldirs) $(DESTDIR)$(gettextsrcdir); \
+ else \
+ : ; \
+ fi
+installdirs-data-no:
+installdirs-data-yes:
+ $(mkinstalldirs) $(DESTDIR)$(datadir)
+ @catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ dir=$(localedir)/$$lang/LC_MESSAGES; \
+ $(mkinstalldirs) $(DESTDIR)$$dir; \
+ for lc in '' $(EXTRA_LOCALE_CATEGORIES); do \
+ if test -n "$$lc"; then \
+ if (cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc 2>/dev/null) | grep ' -> ' >/dev/null; then \
+ link=`cd $(DESTDIR)$(localedir)/$$lang && LC_ALL=C ls -l -d $$lc | sed -e 's/^.* -> //'`; \
+ mv $(DESTDIR)$(localedir)/$$lang/$$lc $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ (cd $(DESTDIR)$(localedir)/$$lang/$$lc.old && \
+ for file in *; do \
+ if test -f $$file; then \
+ ln -s ../$$link/$$file $(DESTDIR)$(localedir)/$$lang/$$lc/$$file; \
+ fi; \
+ done); \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc.old; \
+ else \
+ if test -d $(DESTDIR)$(localedir)/$$lang/$$lc; then \
+ :; \
+ else \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ mkdir $(DESTDIR)$(localedir)/$$lang/$$lc; \
+ fi; \
+ fi; \
+ fi; \
+ done; \
+ done
+
+# Define this as empty until I found a useful application.
+installcheck:
+
+uninstall: uninstall-exec uninstall-data
+uninstall-exec:
+uninstall-data: uninstall-data-@USE_NLS@
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ for file in $(DISTFILES.common) Makevars.template; do \
+ rm -f $(DESTDIR)$(gettextsrcdir)/$$file; \
+ done; \
+ else \
+ : ; \
+ fi
+uninstall-data-no:
+uninstall-data-yes:
+ catalogs='$(CATALOGS)'; \
+ for cat in $$catalogs; do \
+ cat=`basename $$cat`; \
+ lang=`echo $$cat | sed -e 's/\.gmo$$//'`; \
+ for lc in LC_MESSAGES $(EXTRA_LOCALE_CATEGORIES); do \
+ rm -f $(DESTDIR)$(localedir)/$$lang/$$lc/$(DOMAIN).mo; \
+ done; \
+ done
+
+check: all
+
+info dvi ps pdf html tags TAGS ctags CTAGS ID:
+
+mostlyclean:
+ rm -f remove-potcdate.sed
+ rm -f stamp-poT
+ rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
+ rm -fr *.o
+
+clean: mostlyclean
+
+distclean: clean
+ rm -f Makefile Makefile.in POTFILES *.mo
+
+maintainer-clean: distclean
+ @echo "This command is intended for maintainers to use;"
+ @echo "it deletes files that may require special tools to rebuild."
+ rm -f stamp-po $(GMOFILES)
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir:
+ $(MAKE) update-po
+ @$(MAKE) dist2
+# This is a separate target because 'update-po' must be executed before.
+dist2: $(DISTFILES)
+ dists="$(DISTFILES)"; \
+ if test "$(PACKAGE)" = "gettext-tools"; then \
+ dists="$$dists Makevars.template"; \
+ fi; \
+ if test -f $(srcdir)/ChangeLog; then \
+ dists="$$dists ChangeLog"; \
+ fi; \
+ for i in 0 1 2 3 4 5 6 7 8 9; do \
+ if test -f $(srcdir)/ChangeLog.$$i; then \
+ dists="$$dists ChangeLog.$$i"; \
+ fi; \
+ done; \
+ if test -f $(srcdir)/LINGUAS; then dists="$$dists LINGUAS"; fi; \
+ for file in $$dists; do \
+ if test -f $$file; then \
+ cp -p $$file $(distdir); \
+ else \
+ cp -p $(srcdir)/$$file $(distdir); \
+ fi; \
+ done
+
+update-po: Makefile
+ $(MAKE) $(DOMAIN).pot-update
+ test -z "$(UPDATEPOFILES)" || $(MAKE) $(UPDATEPOFILES)
+ $(MAKE) update-gmo
+
+# General rule for creating PO files.
+
+.nop.po-create:
+ @lang=`echo $@ | sed -e 's/\.po-create$$//'`; \
+ echo "File $$lang.po does not exist. If you are a translator, you can create it through 'msginit'." 1>&2; \
+ exit 1
+
+# General rule for updating PO files.
+
+.nop.po-update:
+ @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
+ if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \
+ tmpdir=`pwd`; \
+ echo "$$lang:"; \
+ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
+ echo "$${cdcmd}$(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
+ cd $(srcdir); \
+ if $(MSGMERGE) $$lang.po $(DOMAIN).pot -o $$tmpdir/$$lang.new.po; then \
+ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+ rm -f $$tmpdir/$$lang.new.po; \
+ else \
+ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+ :; \
+ else \
+ echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+ exit 1; \
+ fi; \
+ fi; \
+ else \
+ echo "msgmerge for $$lang.po failed!" 1>&2; \
+ rm -f $$tmpdir/$$lang.new.po; \
+ fi
+
+$(DUMMYPOFILES):
+
+update-gmo: Makefile $(GMOFILES)
+ @:
+
+Makefile: Makefile.in.in $(top_builddir)/config.status @POMAKEFILEDEPS@
+ cd $(top_builddir) \
+ && CONFIG_FILES=$(subdir)/$@.in CONFIG_HEADERS= \
+ $(SHELL) ./config.status
+
+force:
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/po/Makevars b/po/Makevars
new file mode 100644
index 0000000..88a7408
--- /dev/null
+++ b/po/Makevars
@@ -0,0 +1,41 @@
+# Makefile variables for PO directory in any package using GNU gettext.
+
+# Usually the message domain is the same as the package name.
+DOMAIN = $(PACKAGE)
+
+# These two variables depend on the location of this directory.
+subdir = po
+top_builddir = ..
+
+# These options get passed to xgettext.
+XGETTEXT_OPTIONS = --keyword=_ --keyword=N_ --keyword=P_:1,2 --no-wrap --escape --add-comments=Translation
+
+# This is the copyright holder that gets inserted into the header of the
+# $(DOMAIN).pot file. Set this to the copyright holder of the surrounding
+# package. (Note that the msgstr strings, extracted from the package's
+# sources, belong to the copyright holder of the package.) Translators are
+# expected to transfer the copyright for their translations to this person
+# or entity, or to disclaim their copyright. The empty string stands for
+# the public domain; in this case the translators are expected to disclaim
+# their copyright.
+COPYRIGHT_HOLDER = Free Software Foundation, Inc.
+
+# This is the email address or URL to which the translators shall report
+# bugs in the untranslated strings:
+# - Strings which are not entire sentences, see the maintainer guidelines
+# in the GNU gettext documentation, section 'Preparing Strings'.
+# - Strings which use unclear terms or require additional context to be
+# understood.
+# - Strings which make invalid assumptions about notation of date, time or
+# money.
+# - Pluralisation problems.
+# - Incorrect English spelling.
+# - Incorrect formatting.
+# It can be your email address, or a mailing list address where translators
+# can write to without being subscribed, or the URL of a web page through
+# which the translators can contact you.
+MSGID_BUGS_ADDRESS = procps@freelists.org
+
+# This is the list of locale categories, beyond LC_MESSAGES, for which the
+# message catalogs shall be used. It is usually empty.
+EXTRA_LOCALE_CATEGORIES =
diff --git a/po/POTFILES.in b/po/POTFILES.in
new file mode 100644
index 0000000..ee7a980
--- /dev/null
+++ b/po/POTFILES.in
@@ -0,0 +1,59 @@
+library/devname.c
+library/diskstats.c
+library/escape.c
+library/meminfo.c
+library/namespace.c
+library/numa.c
+library/pids.c
+library/pwcache.c
+library/readproc.c
+library/slabinfo.c
+library/stat.c
+library/sysinfo.c
+library/tests/test_Itemtables.c
+library/tests/test_namespace.c
+library/tests/test_pids.c
+library/tests/test_sysinfo.c
+library/tests/test_uptime.c
+library/tests/test_version.c
+library/uptime.c
+library/version.c
+library/vmstat.c
+library/wchan.c
+local/fileutils.c
+local/procio.c
+local/signals.c
+local/strutils.c
+local/strverscmp.c
+src/free.c
+src/kill.c
+src/pgrep.c
+src/pidof.c
+src/pmap.c
+src/ps/display.c
+src/ps/global.c
+src/ps/help.c
+src/ps/output.c
+src/ps/parser.c
+src/ps/select.c
+src/ps/signames.c
+src/ps/sortformat.c
+src/ps/stacktrace.c
+src/pwdx.c
+src/skill.c
+src/slabtop.c
+src/sysctl.c
+src/tests/test_fileutils.c
+src/tests/test_process.c
+src/tests/test_shm.c
+src/tests/test_strtod_nol.c
+src/tests/test_strutils.c
+src/tload.c
+src/top/top.c
+src/top/top_nls.c
+src/uptime.c
+src/vmstat.c
+src/watch.c
+src/w.c
+testsuite/ps.test/test-schedbatch.c
+local/c.h
diff --git a/po/Rules-quot b/po/Rules-quot
new file mode 100644
index 0000000..9c2a995
--- /dev/null
+++ b/po/Rules-quot
@@ -0,0 +1,47 @@
+# Special Makefile rules for English message catalogs with quotation marks.
+
+DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot
+
+.SUFFIXES: .insert-header .po-update-en
+
+en@quot.po-create:
+ $(MAKE) en@quot.po-update
+en@boldquot.po-create:
+ $(MAKE) en@boldquot.po-update
+
+en@quot.po-update: en@quot.po-update-en
+en@boldquot.po-update: en@boldquot.po-update-en
+
+.insert-header.po-update-en:
+ @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \
+ if test "$(PACKAGE)" = "gettext"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \
+ tmpdir=`pwd`; \
+ echo "$$lang:"; \
+ ll=`echo $$lang | sed -e 's/@.*//'`; \
+ LC_ALL=C; export LC_ALL; \
+ cd $(srcdir); \
+ if $(MSGINIT) -i $(DOMAIN).pot --no-translator -l $$ll -o - 2>/dev/null | sed -f $$tmpdir/$$lang.insert-header | $(MSGCONV) -t UTF-8 | $(MSGFILTER) sed -f `echo $$lang | sed -e 's/.*@//'`.sed 2>/dev/null > $$tmpdir/$$lang.new.po; then \
+ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
+ rm -f $$tmpdir/$$lang.new.po; \
+ else \
+ if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
+ :; \
+ else \
+ echo "creation of $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
+ exit 1; \
+ fi; \
+ fi; \
+ else \
+ echo "creation of $$lang.po failed!" 1>&2; \
+ rm -f $$tmpdir/$$lang.new.po; \
+ fi
+
+en@quot.insert-header: insert-header.sin
+ sed -e '/^#/d' -e 's/HEADER/en@quot.header/g' $(srcdir)/insert-header.sin > en@quot.insert-header
+
+en@boldquot.insert-header: insert-header.sin
+ sed -e '/^#/d' -e 's/HEADER/en@boldquot.header/g' $(srcdir)/insert-header.sin > en@boldquot.insert-header
+
+mostlyclean: mostlyclean-quot
+mostlyclean-quot:
+ rm -f *.insert-header
diff --git a/po/boldquot.sed b/po/boldquot.sed
new file mode 100644
index 0000000..4b937aa
--- /dev/null
+++ b/po/boldquot.sed
@@ -0,0 +1,10 @@
+s/"\([^"]*\)"/“\1â€/g
+s/`\([^`']*\)'/‘\1’/g
+s/ '\([^`']*\)' / ‘\1’ /g
+s/ '\([^`']*\)'$/ ‘\1’/g
+s/^'\([^`']*\)' /‘\1’ /g
+s/“â€/""/g
+s/“/“/g
+s/â€/â€/g
+s/‘/‘/g
+s/’/’/g
diff --git a/po/de.gmo b/po/de.gmo
new file mode 100644
index 0000000..e199ad0
--- /dev/null
+++ b/po/de.gmo
Binary files differ
diff --git a/po/de.po b/po/de.po
new file mode 100644
index 0000000..b5aa191
--- /dev/null
+++ b/po/de.po
@@ -0,0 +1,4917 @@
+# German translation of procps-ng.
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This file is distributed under the same license as the procps-ng package.
+#
+# Mario Blättermann <mario.blaettermann@gmail.com>, 2014, 2017, 2019, 2021, 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: procps-ng-4.0.4-rc1\n"
+"Report-Msgid-Bugs-To: procps@freelists.org\n"
+"POT-Creation-Date: 2023-08-19 17:38+1000\n"
+"PO-Revision-Date: 2023-08-20 16:58+0200\n"
+"Last-Translator: Mario Blättermann <mario.blaettermann@gmail.com>\n"
+"Language-Team: German <translation-team-de@lists.sourceforge.net>\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"X-Generator: Lokalize 23.04.3\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+
+#: local/fileutils.c:38
+msgid "write error"
+msgstr "Schreibfehler"
+
+#: src/free.c:74 src/slabtop.c:106 src/uptime.c:65
+#, c-format
+msgid " %s [options]\n"
+msgstr " %s [OPTIONEN]\n"
+
+#: src/free.c:76
+msgid " -b, --bytes show output in bytes\n"
+msgstr " -b, --bytes Ausgabe in Byte anzeigen\n"
+
+#: src/free.c:77
+msgid " --kilo show output in kilobytes\n"
+msgstr " -k, --kilo Ausgabe in Kilobyte anzeigen\n"
+
+#: src/free.c:78
+msgid " --mega show output in megabytes\n"
+msgstr " -m, --mega Ausgabe in Megabyte anzeigen\n"
+
+#: src/free.c:79
+msgid " --giga show output in gigabytes\n"
+msgstr " -g, --giga Ausgabe in Gigabyte anzeigen\n"
+
+#: src/free.c:80
+msgid " --tera show output in terabytes\n"
+msgstr " --tera Ausgabe in Terabyte anzeigen\n"
+
+#: src/free.c:81
+msgid " --peta show output in petabytes\n"
+msgstr " --peta Ausgabe in Petabyte anzeigen\n"
+
+#: src/free.c:82
+msgid " -k, --kibi show output in kibibytes\n"
+msgstr " -k, --kibi Ausgabe in Kibibyte anzeigen\n"
+
+#: src/free.c:83
+msgid " -m, --mebi show output in mebibytes\n"
+msgstr " -m, --mebi Ausgabe in Mebibyte anzeigen\n"
+
+#: src/free.c:84
+msgid " -g, --gibi show output in gibibytes\n"
+msgstr " -g, --gibi Ausgabe in Gibibyte anzeigen\n"
+
+#: src/free.c:85
+msgid " --tebi show output in tebibytes\n"
+msgstr " --tebi Ausgabe in Tebibyte anzeigen\n"
+
+#: src/free.c:86
+msgid " --pebi show output in pebibytes\n"
+msgstr " --pebi Ausgabe in Pebibyte anzeigen\n"
+
+#: src/free.c:87
+msgid " -h, --human show human-readable output\n"
+msgstr " -h, --human menschenlesbare Ausgabe\n"
+
+#: src/free.c:88
+msgid " --si use powers of 1000 not 1024\n"
+msgstr " --si Potenzen von 1000 und nicht 1024 verwenden\n"
+
+#: src/free.c:89
+msgid " -l, --lohi show detailed low and high memory statistics\n"
+msgstr ""
+" -l, --lohi detaillierte Statistiken für hohe und niedrige\n"
+" Speicherbelegung anzeigen\n"
+
+#: src/free.c:90
+msgid " -L, --line show output on a single line\n"
+msgstr " -L, --line Ausgabe in einer Zeile anzeigen\n"
+
+#: src/free.c:91
+msgid " -t, --total show total for RAM + swap\n"
+msgstr " -t, --total Gesamtgröße von RAM + Swap anzeigen\n"
+
+#: src/free.c:92
+msgid " -v, --committed show committed memory and commit limit\n"
+msgstr ""
+
+#: src/free.c:93
+msgid " -s N, --seconds N repeat printing every N seconds\n"
+msgstr " -s N, --seconds N Ausgabe alle N Sekunden wiederholen\n"
+
+#: src/free.c:94
+msgid " -c N, --count N repeat printing N times, then exit\n"
+msgstr " -c N, --count N Ausgabe N-mal wiederholen, dann beenden\n"
+
+#: src/free.c:95
+msgid " -w, --wide wide output\n"
+msgstr " -w, --wide breite Ausgabe\n"
+
+#: src/free.c:97 src/w.c:666
+msgid " --help display this help and exit\n"
+msgstr " --help diese Hilfe anzeigen und beenden\n"
+
+#: src/free.c:172
+msgid "Multiple unit options don't make sense."
+msgstr "Mehrere Einheitenoptionen ergeben keinen Sinn."
+
+#: src/free.c:341
+#, c-format
+msgid "seconds argument `%s' is not positive number"
+msgstr "Sekunden-Argument »%s« ist keine positive Zahl"
+
+#: src/free.c:347
+msgid "failed to parse count argument"
+msgstr "Anzahl im Argument konnte nicht verarbeitet werden"
+
+#: src/free.c:350
+#, c-format
+msgid "failed to parse count argument: '%s'"
+msgstr "Anzahl im Argument konnte nicht verarbeitet werden: »%s«"
+
+#: src/free.c:370
+msgid "Memory information file /proc/meminfo does not exist"
+msgstr "Speicherinformationsdatei /proc/meminfo existiert nicht"
+
+#: src/free.c:373 src/vmstat.c:378 src/vmstat.c:872
+msgid "Unable to create meminfo structure"
+msgstr "Meminfo-Struktur konnte nicht angelegt werden"
+
+#. Translation Hint: These are shortened column headers
+#. * that are all 7 characters long. Use spaces and right
+#. * align if the translation is shorter.
+#.
+#: src/free.c:381
+#, fuzzy
+msgid "SwapUse"
+msgstr "Swap"
+
+#: src/free.c:382
+#, fuzzy
+msgid "CachUse"
+msgstr "Cache"
+
+#: src/free.c:384
+msgid " MemUse"
+msgstr ""
+
+#: src/free.c:385
+msgid "MemFree"
+msgstr ""
+
+#: src/free.c:395
+#, c-format
+msgid ""
+" total used free shared buffers "
+"cache available"
+msgstr ""
+" gesamt benutzt frei gemeins. Puffer "
+"Cache verfügbar"
+
+#: src/free.c:397
+#, c-format
+msgid ""
+" total used free shared buff/cache "
+"available"
+msgstr ""
+" gesamt benutzt frei gemns. Puffer/Cache "
+"verfügbar"
+
+#: src/free.c:400
+msgid "Mem:"
+msgstr "Speicher:"
+
+#: src/free.c:423
+msgid "Low:"
+msgstr "Niedrig:"
+
+#: src/free.c:429
+msgid "High:"
+msgstr "Hoch:"
+
+#: src/free.c:436
+msgid "Swap:"
+msgstr "Swap:"
+
+#: src/free.c:443
+msgid "Total:"
+msgstr "Gesamt:"
+
+#: src/free.c:456
+msgid "Comm:"
+msgstr ""
+
+#: src/kill.c:40
+#, c-format
+msgid " %s [options] <pid> [...]\n"
+msgstr " %s [Optionen] <pid> […]\n"
+
+#: src/kill.c:42
+msgid " <pid> [...] send signal to every <pid> listed\n"
+msgstr " <pid> […] Signal an alle aufgelisteten <pids> senden\n"
+
+#: src/kill.c:43
+msgid ""
+" -<signal>, -s, --signal <signal>\n"
+" specify the <signal> to be sent\n"
+msgstr ""
+" -<Signal>, -s, --signal <Signal>\n"
+" das zu sendende <Signal> angeben\n"
+
+#: src/kill.c:45
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr ""
+" -q, --queue <Wert> Ganzzahlwert, der mit dem Signal gesendet\n"
+" werden soll\n"
+
+#: src/kill.c:46
+msgid ""
+" -l, --list=[<signal>] list all signal names, or convert one to a name\n"
+msgstr ""
+" -l, --list=[<Signal>] alle Signalnamen auflisten oder eines\n"
+" in einen Namen konvertieren\n"
+
+#: src/kill.c:47
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr ""
+" -L, --table alle Signalnamen in einer Tabelle\n"
+" auflisten\n"
+
+#: src/kill.c:112
+#, c-format
+msgid "unknown signal name %s"
+msgstr "Unbekannter Signalname %s"
+
+#: src/kill.c:131
+msgid "must be an integer value to be passed with the signal."
+msgstr "Mit dem Signal zu übergebender Wert muss eine Ganzzahl sein."
+
+#: src/kill.c:136
+#, c-format
+msgid "invalid argument %c"
+msgstr "ungültiges Argument %c"
+
+#: src/kill.c:146 src/pgrep.c:792 src/pidof.c:250 src/pidof.c:290
+#: src/sysctl.c:867
+msgid "internal error"
+msgstr "Interner Fehler"
+
+#: src/kill.c:158 src/pmap.c:771 src/pmap.c:786 src/skill.c:381 src/skill.c:465
+#: src/tload.c:135 src/tload.c:140 src/vmstat.c:1047 src/vmstat.c:1057
+#: src/watch.c:891 src/watch.c:906
+msgid "failed to parse argument"
+msgstr "Argument konnte nicht eingelesen werden"
+
+#: src/pgrep.c:92 src/pidof.c:40 src/skill.c:74
+msgid "integer overflow"
+msgstr "Ganzzahlüberlauf"
+
+#: src/pgrep.c:155
+#, c-format
+msgid " %s [options] <pattern>\n"
+msgstr " %s [Optionen] <Muster>\n"
+
+#: src/pgrep.c:159
+msgid " -d, --delimiter <string> specify output delimiter\n"
+msgstr " -d, --delimiter <String> Trennzeichen für Ausgabe festlegen\n"
+
+#: src/pgrep.c:160
+msgid " -l, --list-name list PID and process name\n"
+msgstr " -l, --list-name PID und Prozessname auflisten\n"
+
+#: src/pgrep.c:161
+msgid " -a, --list-full list PID and full command line\n"
+msgstr ""
+" -a, --list-full PID und vollständige Befehlszeile auflisten\n"
+
+#: src/pgrep.c:162
+msgid " -v, --inverse negates the matching\n"
+msgstr " -v, --inverse Ãœbereinstimmung negieren\n"
+
+#: src/pgrep.c:163
+msgid " -w, --lightweight list all TID\n"
+msgstr " -w, --lightweight alle Thread-IDs auflisten\n"
+
+#: src/pgrep.c:166
+msgid " -<sig> signal to send (either number or name)\n"
+msgstr " -<sig> zu sendendes Signal (Zahl oder Name)\n"
+
+#: src/pgrep.c:167
+msgid " -H, --require-handler match only if signal handler is present\n"
+msgstr ""
+
+#: src/pgrep.c:168
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr ""
+" -q, --queue <Wert> Ganzzahlwert, der mit dem Signal gesendet\n"
+" werden soll\n"
+
+#: src/pgrep.c:169
+msgid " -e, --echo display what is killed\n"
+msgstr " -e, --echo anzeigen, was abgewürgt wird\n"
+
+#: src/pgrep.c:173
+msgid " -e, --echo display PIDs before waiting\n"
+msgstr " -e, --echo zeigt PIDs vor dem Warten an\n"
+
+#: src/pgrep.c:177
+msgid " -c, --count count of matching processes\n"
+msgstr " -c, --count Anzahl der gefundenen Prozesse\n"
+
+#: src/pgrep.c:178
+msgid " -f, --full use full process name to match\n"
+msgstr " -f, --full nach vollem Prozessnamen suchen\n"
+
+#: src/pgrep.c:179
+msgid " -g, --pgroup <PGID,...> match listed process group IDs\n"
+msgstr ""
+" -g, --pgroup <PGID, …> nach aufgelisteten Prozessgruppen-IDs suchen\n"
+
+#: src/pgrep.c:180
+msgid " -G, --group <GID,...> match real group IDs\n"
+msgstr " -G, --group <GID, …> reale Gruppenkennungen suchen\n"
+
+#: src/pgrep.c:181
+msgid " -i, --ignore-case match case insensitively\n"
+msgstr " -i, --ignore-case Groß-/Kleinschreibung nicht beachten\n"
+
+#: src/pgrep.c:182
+msgid " -n, --newest select most recently started\n"
+msgstr " -n, --newest zuletzt gestartete auswählen\n"
+
+#: src/pgrep.c:183
+msgid " -o, --oldest select least recently started\n"
+msgstr " -o, --oldest zuerst gestartete auswählen\n"
+
+#: src/pgrep.c:184
+msgid " -O, --older <seconds> select where older than seconds\n"
+msgstr ""
+" -O, --older <Sekunden> wählt aus, was älter als die angegebene\n"
+" Anzahl Sekunden ist\n"
+
+#: src/pgrep.c:185
+msgid ""
+" -P, --parent <PPID,...> match only child processes of the given parent\n"
+msgstr ""
+" -P, --parent <PPID,...> nur Kindprozesse des angegebenen\n"
+" Elternprozesses berücksichtigen\n"
+
+#: src/pgrep.c:186
+msgid " -s, --session <SID,...> match session IDs\n"
+msgstr " -s, --session <SID, …> Sitzungskennungen suchen\n"
+
+#: src/pgrep.c:187
+msgid " --signal <sig> signal to send (either number or name)\n"
+msgstr " --signal <sig> zu sendendes Signal (Zahl oder Name)\n"
+
+#: src/pgrep.c:188
+msgid " -t, --terminal <tty,...> match by controlling terminal\n"
+msgstr " -t, --terminal <tty, …> nach steuerndem Terminal suchen\n"
+
+#: src/pgrep.c:189
+msgid " -u, --euid <ID,...> match by effective IDs\n"
+msgstr " -u, --euid <ID, …> nach effektiven IDs suchen\n"
+
+#: src/pgrep.c:190
+msgid " -U, --uid <ID,...> match by real IDs\n"
+msgstr " -U, --uid <ID, …> nach realen IDs suchen\n"
+
+#: src/pgrep.c:191
+msgid " -x, --exact match exactly with the command name\n"
+msgstr " -x, --exact exakte Ãœbereinstimmung des Befehlsnamens\n"
+
+#: src/pgrep.c:192
+msgid " -F, --pidfile <file> read PIDs from file\n"
+msgstr " -F, --pidfile <Datei> PIDs aus einer Datei lesen\n"
+
+#: src/pgrep.c:193
+msgid " -L, --logpidfile fail if PID file is not locked\n"
+msgstr ""
+" -L, --logpidfile Fehlschlag, wenn PID-Datei nicht gesperrt ist\n"
+
+#: src/pgrep.c:194
+msgid " -r, --runstates <state> match runstates [D,S,Z,...]\n"
+msgstr " -r, --runstates <Status> nach Runstatus suchen [D,S,Z,...]\n"
+
+#: src/pgrep.c:195
+msgid " -A, --ignore-ancestors exclude our ancestors from results\n"
+msgstr ""
+" -A, --ignore-ancestors Vorgänger nicht in die Ergebnisse\n"
+" einbeziehen\n"
+
+#: src/pgrep.c:196
+msgid " --cgroup <grp,...> match by cgroup v2 names\n"
+msgstr " --cgroup <Gruppe, …> nach cgroup-v2-Namen suchen\n"
+
+#: src/pgrep.c:197
+msgid ""
+" --ns <PID> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+" --ns <PID> nach Prozessen suchen, die zum gleichen\n"
+" Namensraum wie <PID> gehören\n"
+
+#: src/pgrep.c:199
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option.\n"
+" Available namespaces: ipc, mnt, net, pid, user, "
+"uts\n"
+msgstr ""
+" --nslist <ns,...> Namensräume auflisten, die in der Option --ns\n"
+" berücksichtigt werden.\n"
+" Verfügbare Namensräume: ipc, mnt, net, pid, user, "
+"uts\n"
+
+#: src/pgrep.c:224 src/pgrep.c:700 src/w.c:455
+msgid "Unable to create pid info structure"
+msgstr "PID-Informationsstruktur konnte nicht angelegt werden"
+
+#: src/pgrep.c:388
+#, c-format
+msgid "invalid user name: %s"
+msgstr "Ungültiger Benutzername: %s"
+
+#: src/pgrep.c:405
+#, c-format
+msgid "invalid group name: %s"
+msgstr "Ungültiger Gruppenname: %s"
+
+#: src/pgrep.c:416
+#, c-format
+msgid "invalid process group: %s"
+msgstr "Ungültige Prozessgruppe: %s"
+
+#: src/pgrep.c:428
+#, c-format
+msgid "invalid session id: %s"
+msgstr "Ungültige Sitzungs-ID: %s"
+
+#: src/pgrep.c:440
+#, c-format
+msgid "not a number: %s"
+msgstr "Keine Zahl: %s"
+
+#: src/pgrep.c:490
+#, c-format
+msgid "not a hex string: %s"
+msgstr "Keine hexadezimale Zeichenkette: %s"
+
+#: src/pgrep.c:525 src/skill.c:162
+msgid "Unable to read process namespace information"
+msgstr "Fehler beim Lesen der Informationen für Prozess-Namensraum"
+
+#: src/pgrep.c:612
+#, c-format
+msgid "regex error: %s"
+msgstr "Fehler im regulären Ausdruck: %s"
+
+#: src/pgrep.c:695
+msgid "Error reading reference namespace information\n"
+msgstr "Fehler beim Lesen der Informationen für den Referenz-Namensraum\n"
+
+#: src/pgrep.c:809
+#, c-format
+msgid ""
+"pattern that searches for process name longer than 15 characters will result "
+"in zero matches\n"
+"Try `%s -f' option to match against the complete command line."
+msgstr ""
+"Muster, die nach Prozessnamen mit mehr als 15 Zeichen suchen, ergeben keine "
+"Treffer.\n"
+"Mit der Option »%s -f« können Sie versuchen, nach der gesamten Befehlszeile "
+"suchen zu lassen."
+
+#: src/pgrep.c:924
+#, c-format
+msgid "Unknown signal \"%s\"."
+msgstr "Unbekanntes Signal »%s«."
+
+#: src/pgrep.c:1090
+#, c-format
+msgid ""
+"-L without -F makes no sense\n"
+"Try `%s --help' for more information."
+msgstr ""
+"-L ohne -F ergibt keinen Sinn.\n"
+"Rufen Sie »%s --help« auf für weitere Informationen."
+
+#: src/pgrep.c:1097
+#, c-format
+msgid ""
+"pidfile not valid\n"
+"Try `%s --help' for more information."
+msgstr ""
+"pidfile ist ungültig\n"
+"Rufen Sie »%s --help« auf für weitere Informationen."
+
+#: src/pgrep.c:1106
+#, c-format
+msgid ""
+"only one pattern can be provided\n"
+"Try `%s --help' for more information."
+msgstr ""
+"nur ein Muster kann angegeben werden\n"
+"Rufen Sie »%s --help« auf für weitere Informationen."
+
+#: src/pgrep.c:1110
+#, c-format
+msgid ""
+"no matching criteria specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+"keine Ãœbereinstimmungskriterien angegeben\n"
+"Rufen Sie »%s --help« auf für weitere Informationen."
+
+#: src/pgrep.c:1162
+#, c-format
+msgid "%s killed (pid %lu)\n"
+msgstr "%s abgewürgt (PID %lu)\n"
+
+#: src/pgrep.c:1169
+#, c-format
+msgid "killing pid %ld failed"
+msgstr "Abwürgen von Prozess-ID %ld fehlgeschlagen"
+
+#: src/pgrep.c:1181
+#, c-format
+msgid "waiting for %s (pid %lu)\n"
+msgstr "Warten auf %s (PID %lu)\n"
+
+#: src/pgrep.c:1185
+msgid "pidfd_open() not implemented in Linux < 5.3"
+msgstr "pidfd_open() ist in Linux < 5.3 nicht implementiert"
+
+#: src/pgrep.c:1188
+#, c-format
+msgid "opening pid %ld failed"
+msgstr "Öffnen von %ld ist fehlgeschlagen"
+
+#: src/pgrep.c:1202
+msgid "epoll_wait failed"
+msgstr "epoll_wait ist fehlgeschlagen"
+
+#: src/pidof.c:75
+#, c-format
+msgid " %s [options] [program [...]]\n"
+msgstr " %s [Optionen] [Programm […]]\n"
+
+#: src/pidof.c:77
+msgid " -s, --single-shot return one PID only\n"
+msgstr " -s, --single-shot nur eine PID zurückgeben\n"
+
+#: src/pidof.c:78
+msgid " -c, --check-root omit processes with different root\n"
+msgstr ""
+" -c, --check-root Prozesse mit anderer Systemwurzel auslassen\n"
+
+#: src/pidof.c:79
+msgid " -q, quiet mode, only set the exit code\n"
+msgstr " -q, stiller Modus, setzt nur den Exit-Code\n"
+
+#: src/pidof.c:80
+msgid " -w, --with-workers show kernel workers too\n"
+msgstr " -w, --with-workers zeigt auch Kernel-Arbeitsthreads\n"
+
+#: src/pidof.c:81
+msgid " -x also find shells running the named scripts\n"
+msgstr ""
+" -x auch nach Shells suchen, in denen die\n"
+" benannten Skripte laufen\n"
+
+#: src/pidof.c:82
+msgid " -o, --omit-pid <PID,...> omit processes with PID\n"
+msgstr ""
+" -o, --omit-pid <PID, …> Prozesse mit den angegebenen PID(s)\n"
+" auslassen\n"
+
+#: src/pidof.c:83
+msgid " -t, --lightweight list threads too\n"
+msgstr " -t, --lightweight auch Threads auflisten\n"
+
+#: src/pidof.c:84
+msgid " -S, --separator SEP use SEP as separator put between PIDs"
+msgstr " -S, --separator TRENNER diesen TRENNER zwischen PIDs setzen"
+
+#: src/pidof.c:293
+#, c-format
+msgid "illegal omit pid value (%s)!\n"
+msgstr "Ungültiger Wert für auszulassende PID (%s)!\n"
+
+#: src/pmap.c:72
+msgid "Address"
+msgstr "Adresse"
+
+#: src/pmap.c:73
+msgid "Offset"
+msgstr "Versatz"
+
+#: src/pmap.c:74
+msgid "Device"
+msgstr "Gerät"
+
+#: src/pmap.c:75
+msgid "Mapping"
+msgstr "Zuordnung"
+
+#: src/pmap.c:79
+msgid "Perm"
+msgstr "Zugr"
+
+#: src/pmap.c:80
+msgid "Inode"
+msgstr "Inode"
+
+#: src/pmap.c:83
+msgid "Kbytes"
+msgstr "kByte"
+
+#: src/pmap.c:84
+msgid "Mode"
+msgstr "Modus"
+
+#. Translation Hint: With the next 5 fields, notice how an extra space
+#. has been added ahead of one 'KiB' so that they all
+#. align. You need not preserve such alignment.
+#. Translation Hint: maximum 'RSS' = 6
+#: src/pmap.c:85 src/top/top_nls.c:337
+msgid "RSS"
+msgstr "RSS"
+
+#: src/pmap.c:86
+msgid "Dirty"
+msgstr "Dirty"
+
+#: src/pmap.c:120
+#, c-format
+msgid " %s [options] PID [PID ...]\n"
+msgstr " %s [Optionen] PID [PID …]\n"
+
+#: src/pmap.c:122
+msgid " -x, --extended show details\n"
+msgstr " -x, --extended Details anzeigen\n"
+
+#: src/pmap.c:123
+msgid " -X show even more details\n"
+msgstr " -X noch mehr Details anzeigen\n"
+
+#: src/pmap.c:124
+msgid " WARNING: format changes according to /proc/PID/smaps\n"
+msgstr " WARNUNG: Formatänderung entsprechend /proc/PID/smaps\n"
+
+#: src/pmap.c:125
+msgid " -XX show everything the kernel provides\n"
+msgstr ""
+" -XX alles zeigen, was der Kernel bereitstellt\n"
+
+#: src/pmap.c:126
+msgid " -c, --read-rc read the default rc\n"
+msgstr " -c, --read-rc Standard-Konfigurationsdatei einlesen\n"
+
+#: src/pmap.c:127
+msgid " -C, --read-rc-from=<file> read the rc from file\n"
+msgstr " -C, --read-rc-from=<Datei> Konfiguration aus Datei einlesen\n"
+
+#: src/pmap.c:128
+msgid " -n, --create-rc create new default rc\n"
+msgstr " -n, --create-rc neue Standardkonfiguration erzeugen\n"
+
+#: src/pmap.c:129
+msgid " -N, --create-rc-to=<file> create new rc to file\n"
+msgstr ""
+" -N, --create-rc-to=<Datei> neue Standardkonfiguration\n"
+" in Datei erzeugen\n"
+
+#: src/pmap.c:130
+msgid " NOTE: pid arguments are not allowed with -n, -N\n"
+msgstr " NOTE: PID-Argumente sind mit -n, -N nicht erlaubt\n"
+
+#: src/pmap.c:131
+msgid " -d, --device show the device format\n"
+msgstr " -d, --device das Geräteformat anzeigen\n"
+
+#: src/pmap.c:132
+msgid " -q, --quiet do not display header and footer\n"
+msgstr " -q, --quiet Kopf- und Fußzeile nicht anzeigen\n"
+
+#: src/pmap.c:133
+msgid " -p, --show-path show path in the mapping\n"
+msgstr " -p, --show-path Pfad in der Zuweisung anzeigen\n"
+
+#: src/pmap.c:134
+msgid " -A, --range=<low>[,<high>] limit results to the given range\n"
+msgstr ""
+" -A, --range=<von>[,<bis>] Ergebnisse auf den angegebenen Bereich\n"
+" beschränken\n"
+
+#: src/pmap.c:215
+msgid "shared memory detach"
+msgstr ""
+
+#: src/pmap.c:220
+msgid "shared memory remove"
+msgstr ""
+
+#: src/pmap.c:245
+msgid " [ anon ]"
+msgstr " [ anon ]"
+
+#: src/pmap.c:248
+msgid " [ stack ]"
+msgstr " [ stack ]"
+
+#: src/pmap.c:334 src/pmap.c:340
+msgid "Unknown format in smaps file!"
+msgstr "Unbekanntes Format in smaps-Datei!"
+
+#: src/pmap.c:365
+msgid "ERROR: memory allocation failed"
+msgstr "FEHLER: Speicherzuweisung ist gescheitert"
+
+#: src/pmap.c:382
+msgid "inconsistent detail field in smaps file, line:\n"
+msgstr "Inkonsistentes Detail-Feld in smaps-Datei, Zeile:\n"
+
+#: src/pmap.c:731
+msgid "total kB"
+msgstr "kB gesamt"
+
+#: src/pmap.c:742
+#, c-format
+msgid "mapped: %ldK writeable/private: %ldK shared: %ldK\n"
+msgstr ""
+
+#. Translation Hint: keep total string length
+#. * as 24 characters. Adjust %16 if needed
+#: src/pmap.c:751
+#, c-format
+msgid " total %16ldK\n"
+msgstr " gesamt %16ldK\n"
+
+#. Translation Hint: keep total string length
+#. * as 16 characters. Adjust %8 if needed
+#: src/pmap.c:757
+#, c-format
+msgid " total %8ldK\n"
+msgstr " gesamt %8ldK\n"
+
+#: src/pmap.c:832
+#, c-format
+msgid "config line too long - line %d"
+msgstr "Konfigurationszeile ist zu lang - Zeile %d"
+
+#: src/pmap.c:857
+#, c-format
+msgid "unsupported section found in the config - line %d"
+msgstr ""
+"nicht unterstützter Abschnitt in Konfigurationsdatei gefunden - Zeile %d"
+
+#: src/pmap.c:860 src/pmap.c:871 src/pmap.c:882 src/pmap.c:905 src/pmap.c:917
+#, c-format
+msgid "syntax error found in the config - line %d"
+msgstr "Syntaxfehler in der Konfigurationsdatei - Zeile %d"
+
+#: src/pmap.c:887 src/pmap.c:1010
+msgid "memory allocation failed"
+msgstr "Speicherzuweisung ist gescheitert"
+
+#: src/pmap.c:939
+msgid "the file already exists - delete or rename it first"
+msgstr "die Datei existiert bereits - bitte zuerst löschen oder umbenennen"
+
+#: src/pmap.c:1002
+msgid "HOME variable undefined"
+msgstr "HOME-Variable ist nicht definiert"
+
+#: src/pmap.c:1061
+msgid "option -r is ignored as SunOS compatibility"
+msgstr "Option -r wird wegen SunOS-Kompatibilität ignoriert"
+
+#: src/pmap.c:1108
+msgid "options -c, -C, -d, -n, -N, -x, -X are mutually exclusive"
+msgstr ""
+"die Optionen -c, -C, -d, -n, -N, -x und -X schließen sich gegenseitig aus"
+
+#: src/pmap.c:1111
+msgid "options -p, -q are mutually exclusive with -n, -N"
+msgstr ""
+"die Optionen -p und -q können nicht zusammen mit -n, -N verwendet werden"
+
+#: src/pmap.c:1114 src/pmap.c:1163
+msgid "too many arguments"
+msgstr "Zu viele Argumente"
+
+#: src/pmap.c:1118
+msgid "rc file successfully created, feel free to edit the content"
+msgstr ""
+"Konfigurationsdatei wurde erfolgreich erstellt, Sie können nun deren Inhalt "
+"bearbeiten"
+
+#: src/pmap.c:1121
+msgid "couldn't create the rc file"
+msgstr "Konfigurationsdatei konnte nicht angelegt werden"
+
+#: src/pmap.c:1133
+#, c-format
+msgid "~/.%src file successfully created, feel free to edit the content"
+msgstr ""
+"Datei ~/.%src wurde erfolgreich erstellt, Sie können nun deren Inhalt "
+"bearbeiten"
+
+#: src/pmap.c:1136
+#, c-format
+msgid "couldn't create ~/.%src"
+msgstr "~/.%src konnte nicht angelegt werden"
+
+#: src/pmap.c:1141
+msgid "argument missing"
+msgstr "Fehlendes Argument"
+
+#: src/pmap.c:1154
+msgid "couldn't read the rc file"
+msgstr "Konfigurationsdatei konnte nicht gelesen werden"
+
+#: src/pmap.c:1156
+#, c-format
+msgid "couldn't read ~/.%src"
+msgstr "~/.%src konnte nicht gelesen werden"
+
+#: src/pmap.c:1165 src/pmap.c:1190
+msgid "library failed pids statistics"
+msgstr ""
+
+#: src/ps/display.c:61
+#, c-format
+msgid "Signal %d (%s) caught by %s (%s).\n"
+msgstr "Signal %d (%s) empfangen von %s (%s).\n"
+
+#: src/ps/display.c:75 src/ps/display.c:252 src/ps/display.c:407
+#: src/ps/output.c:2359 src/ps/parser.c:509 src/ps/parser.c:756
+#: src/ps/select.c:95 src/ps/sortformat.c:263 src/ps/sortformat.c:301
+#: src/ps/sortformat.c:549
+msgid "please report this bug"
+msgstr "Bitte melden Sie diesen Fehler"
+
+#: src/ps/display.c:315 src/ps/display.c:484
+#, c-format
+msgid "fatal library error, reap\n"
+msgstr ""
+
+#: src/ps/display.c:365
+#, c-format
+msgid "could not find ppid\n"
+msgstr "ppid kann nicht gefunden werden\n"
+
+#: src/ps/display.c:375
+#, c-format
+msgid "could not find start_time\n"
+msgstr "start_time kann nicht gefunden werden\n"
+
+#: src/ps/global.c:287
+#, c-format
+msgid "your %dx%d screen size is bogus. expect trouble\n"
+msgstr "Ihre Bildschirmgröße %dx%d ist Unsinn, Probleme sind zu erwarten\n"
+
+#: src/ps/global.c:360 src/ps/global.c:372
+msgid "environment specified an unknown personality"
+msgstr "Eine unbekannte Prozess-Ausführungsumgebung wurde angegeben"
+
+#: src/ps/global.c:364
+#, c-format
+msgid "cannot strdup() personality text\n"
+msgstr ""
+"Text der Prozess-Ausführungsumgebung kann nicht mit strdup() verarbeitet "
+"werden\n"
+
+#: src/ps/global.c:495
+#, c-format
+msgid "fatal library error, context\n"
+msgstr ""
+
+#: src/ps/global.c:503
+#, c-format
+msgid "fatal library error, lookup self\n"
+msgstr ""
+
+#. Translation Note:
+#. . The following translatable word will be used to recognize the
+#. . user's request for help text. In other words, the translation
+#. . you provide will alter program behavior.
+#. .
+#. . It must be limited to 15 characters or less.
+#.
+#: src/ps/global.c:542
+msgid "help"
+msgstr "Hilfe"
+
+#. Translation Notes for ps Help #1 ---------------------------------
+#. . This next group of lines represents 6 pairs of words + abbreviations
+#. . which are the basis of the 'ps' program help text.
+#. .
+#. . The words and abbreviations you provide will alter program behavior.
+#. . They will also appear in the help usage summary associated with the
+#. . "Notes for ps Help #2" below.
+#. .
+#. . In their English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . When translating these 6 pairs you may choose any appropriate
+#. . language equivalents and the only requirement is the abbreviated
+#. . representations must be unique.
+#. .
+#. . By default, those abbreviations are single characters. However,
+#. . they are not limited to only one character after translation.
+#. .
+#. Translation Hint, Pair #1
+#: src/ps/help.c:67
+msgid "simple"
+msgstr "Einfach"
+
+#: src/ps/help.c:67
+msgid "s"
+msgstr "s"
+
+#. Translation Hint, Pair #2
+#: src/ps/help.c:69
+msgid "list"
+msgstr "Liste"
+
+#: src/ps/help.c:69
+msgid "l"
+msgstr "l"
+
+#. Translation Hint, Pair #3
+#: src/ps/help.c:71
+msgid "output"
+msgstr "Ausgabe"
+
+#: src/ps/help.c:71
+msgid "o"
+msgstr "o"
+
+#. Translation Hint, Pair #4
+#: src/ps/help.c:73
+msgid "threads"
+msgstr "Threads"
+
+#: src/ps/help.c:73
+msgid "t"
+msgstr "t"
+
+#. Translation Hint, Pair #5
+#: src/ps/help.c:75
+msgid "misc"
+msgstr "Verschiedenes"
+
+#: src/ps/help.c:75
+msgid "m"
+msgstr "m"
+
+#. Translation Hint, Pair #6
+#: src/ps/help.c:77
+msgid "all"
+msgstr "Alle"
+
+#: src/ps/help.c:77
+msgid "a"
+msgstr "a"
+
+#: src/ps/help.c:98
+#, c-format
+msgid ""
+"\n"
+"Usage:\n"
+" %s [options]\n"
+msgstr ""
+"\n"
+"Aufruf: \n"
+" %s [Optionen]\n"
+
+#: src/ps/help.c:103
+msgid ""
+"\n"
+"Basic options:\n"
+msgstr ""
+"\n"
+"Grundlegende Optionen:\n"
+
+#: src/ps/help.c:104
+msgid " -A, -e all processes\n"
+msgstr " -A, -e alle Prozesse\n"
+
+#: src/ps/help.c:105
+msgid " -a all with tty, except session leaders\n"
+msgstr " -a alle mit TTY, außer Session Leaders\n"
+
+#: src/ps/help.c:106
+msgid " a all with tty, including other users\n"
+msgstr " a alle mit TTY, einschließlich andere Benutzer\n"
+
+#: src/ps/help.c:107
+msgid " -d all except session leaders\n"
+msgstr ""
+" -d alle außer Session Leaders\n"
+" (übergeordnete Prozessgruppen)\n"
+
+#: src/ps/help.c:108
+msgid " -N, --deselect negate selection\n"
+msgstr " -N, --deselect Auswahl umkehren\n"
+
+#: src/ps/help.c:109
+msgid " r only running processes\n"
+msgstr " r nur laufende Prozesse\n"
+
+#: src/ps/help.c:110
+msgid " T all processes on this terminal\n"
+msgstr " T alle Prozesse in diesem Terminal\n"
+
+#: src/ps/help.c:111
+msgid " x processes without controlling ttys\n"
+msgstr " x Prozesse ohne steuernde ttys\n"
+
+#: src/ps/help.c:114
+msgid ""
+"\n"
+"Selection by list:\n"
+msgstr ""
+"\n"
+"Auswahl nach Liste:\n"
+
+#: src/ps/help.c:115
+msgid " -C <command> command name\n"
+msgstr " -C <Befehl> Befehlsname\n"
+
+#: src/ps/help.c:116
+msgid " -G, --Group <GID> real group id or name\n"
+msgstr " -G, --Group <GID> reale Gruppenkennung oder Name\n"
+
+#: src/ps/help.c:117
+msgid " -g, --group <group> session or effective group name\n"
+msgstr " -g, --group <group> Sitzung oder effektiver Gruppenname\n"
+
+#: src/ps/help.c:118
+msgid " -p, p, --pid <PID> process id\n"
+msgstr " -p, p, --pid <PID> Prozesskennung (ID)\n"
+
+#: src/ps/help.c:119
+msgid " --ppid <PID> parent process id\n"
+msgstr " --ppid <PID> nach ID des Elternprozesses auswählen\n"
+
+#: src/ps/help.c:120
+msgid ""
+" -q, q, --quick-pid <PID>\n"
+" process id (quick mode)\n"
+msgstr ""
+" -q, q, --quick-pid <PID>\n"
+" Prozesskennung (schneller Modus)\n"
+
+#: src/ps/help.c:122
+msgid " -s, --sid <session> session id\n"
+msgstr " -s, --sid <Sitzung> Sitzungs-ID\n"
+
+#: src/ps/help.c:123
+msgid " -t, t, --tty <tty> terminal\n"
+msgstr " -t, t, --tty <tty> Terminal\n"
+
+#: src/ps/help.c:124
+msgid " -u, U, --user <UID> effective user id or name\n"
+msgstr " -u, U, --user <UID> effektive Benutzer-ID oder Name\n"
+
+#: src/ps/help.c:125
+msgid " -U, --User <UID> real user id or name\n"
+msgstr " -U, --User <UID> reale Benutzer-ID oder Name\n"
+
+#: src/ps/help.c:126
+msgid ""
+"\n"
+" The selection options take as their argument either:\n"
+" a comma-separated list e.g. '-u root,nobody' or\n"
+" a blank-separated list e.g. '-p 123 4567'\n"
+msgstr ""
+"\n"
+" Die Auswahloptionen akzeptieren diese Argumentformate:\n"
+" durch Kommata getrennte Liste, z.B. »-u root,nobody« oder\n"
+" durch Leerzeichen getrennte Liste, z.B. »-p 123 4567«\n"
+
+#: src/ps/help.c:132
+msgid ""
+"\n"
+"Output formats:\n"
+msgstr ""
+"\n"
+"Ausgabeformate:\n"
+
+#: src/ps/help.c:133
+msgid " -D <format> date format for lstart\n"
+msgstr " -D <format> Datumsformat für lstart\n"
+
+#: src/ps/help.c:134
+msgid " -F extra full\n"
+msgstr " -F extra vollständig\n"
+
+#: src/ps/help.c:135
+msgid " -f full-format, including command lines\n"
+msgstr " -f Vollformat einschließlich Befehlszeilen\n"
+
+#: src/ps/help.c:136
+msgid " f, --forest ascii art process tree\n"
+msgstr " f, --forest Prozessbaum in ASCII Art\n"
+
+#: src/ps/help.c:137
+msgid " -H show process hierarchy\n"
+msgstr " -H Prozesshierarchie anzeigen\n"
+
+#: src/ps/help.c:138
+msgid " -j jobs format\n"
+msgstr " -j Jobs-Format\n"
+
+#: src/ps/help.c:139
+msgid " j BSD job control format\n"
+msgstr " j BSD-Jobsteuerung-Format\n"
+
+#: src/ps/help.c:140
+msgid " -l long format\n"
+msgstr " -l Langformat\n"
+
+#: src/ps/help.c:141
+msgid " l BSD long format\n"
+msgstr " l BSD-Langformat\n"
+
+#: src/ps/help.c:142
+msgid " -M, Z add security data (for SELinux)\n"
+msgstr " -M, Z Sicherheitsdaten hinzufügen (für SELinux)\n"
+
+#: src/ps/help.c:143
+msgid " -O <format> preloaded with default columns\n"
+msgstr " -O <format> mit vorgegebenen Spalten\n"
+
+#: src/ps/help.c:144
+msgid " O <format> as -O, with BSD personality\n"
+msgstr " O <format> wie -O, mit BSD-Prozess-Ausführungsumgebung\n"
+
+#: src/ps/help.c:145
+msgid ""
+" -o, o, --format <format>\n"
+" user-defined format\n"
+msgstr ""
+" -o, o, --format <Format>\n"
+" benutzerdefiniertes Format\n"
+
+#: src/ps/help.c:147
+msgid " -P add psr column\n"
+msgstr " -P PSR-Zeile hinzufügen\n"
+
+#: src/ps/help.c:148
+msgid " s signal format\n"
+msgstr " s Signalformat\n"
+
+#: src/ps/help.c:149
+msgid " u user-oriented format\n"
+msgstr " u benutzerorientiertes Format\n"
+
+#: src/ps/help.c:150
+msgid " v virtual memory format\n"
+msgstr " v virtuelles Speicherformat\n"
+
+#: src/ps/help.c:151
+msgid " X register format\n"
+msgstr " X Registerformat\n"
+
+#: src/ps/help.c:152
+msgid ""
+" -y do not show flags, show rss vs. addr (used with -l)\n"
+msgstr ""
+" -y keine Flags anzeigen, rrs vs. addr anzeigen (genutzt "
+"mit -l)\n"
+
+#: src/ps/help.c:153
+msgid " --context display security context (for SELinux)\n"
+msgstr " --context Sicherheitskontext anzeigen (für SELinux)\n"
+
+#: src/ps/help.c:154
+msgid " --headers repeat header lines, one per page\n"
+msgstr " --headers Kopfzeilen wiederholen, eine pro Seite\n"
+
+#: src/ps/help.c:155
+msgid " --no-headers do not print header at all\n"
+msgstr " --no-headers keine Kopfzeilen ausgeben\n"
+
+#: src/ps/help.c:156
+msgid ""
+" --cols, --columns, --width <num>\n"
+" set screen width\n"
+msgstr ""
+" --cols, --columns, --width <Zahl>\n"
+" Bildschirmbreite angeben\n"
+
+#: src/ps/help.c:158
+msgid ""
+" --rows, --lines <num>\n"
+" set screen height\n"
+msgstr ""
+" --rows, --lines <Zahl>\n"
+" Bildschirmhöhe angeben\n"
+
+#: src/ps/help.c:160
+msgid " --signames display signal masks using signal names\n"
+msgstr ""
+" --signames Signalmasken mittels Signalnamen\n"
+" anzeigen\n"
+
+#: src/ps/help.c:163
+msgid ""
+"\n"
+"Show threads:\n"
+msgstr ""
+"\n"
+"Threads anzeigen:\n"
+
+#: src/ps/help.c:164
+msgid " H as if they were processes\n"
+msgstr " H als ob sie Prozesse wären\n"
+
+#: src/ps/help.c:165
+msgid " -L possibly with LWP and NLWP columns\n"
+msgstr " -L möglich mit LWP- und NLWP-Spalten\n"
+
+#: src/ps/help.c:166
+msgid " -m, m after processes\n"
+msgstr " -m, m nach Prozessen\n"
+
+#: src/ps/help.c:167
+msgid " -T possibly with SPID column\n"
+msgstr " -T möglich mit SPID-Spalten\n"
+
+#: src/ps/help.c:170
+msgid ""
+"\n"
+"Miscellaneous options:\n"
+msgstr ""
+"\n"
+"Verschiedene Optionen:\n"
+
+#: src/ps/help.c:171
+msgid " -c show scheduling class with -l option\n"
+msgstr " -c Scheduling-Klasse mit Option -l anzeigen\n"
+
+#: src/ps/help.c:172
+msgid " c show true command name\n"
+msgstr " c den echten Befehlsnaman anzeigen\n"
+
+#: src/ps/help.c:173
+msgid " e show the environment after command\n"
+msgstr " e Umgebung nach dem Befehl anzeigen\n"
+
+#: src/ps/help.c:174
+msgid ""
+" k, --sort specify sort order as: [+|-]key[,[+|-]key[,...]]\n"
+msgstr ""
+" k, --sort Reihenfolge angeben wie: [+|-]Schlüssel[,"
+"[+|-]Schlüssel[, …]]\n"
+
+#: src/ps/help.c:175
+msgid " L show format specifiers\n"
+msgstr " L Formatbezeichner anzeigen\n"
+
+#: src/ps/help.c:176
+msgid " n display numeric uid and wchan\n"
+msgstr " n UID und WCHAN numerisch anzeigen\n"
+
+#: src/ps/help.c:177
+msgid " S, --cumulative include some dead child process data\n"
+msgstr " S, --cumulative Daten toter Kindprozesse einbeziehen\n"
+
+#: src/ps/help.c:178
+msgid " -y do not show flags, show rss (only with -l)\n"
+msgstr ""
+" -y keine Flags anzeigen, rss anzeigen (nur mit -l)\n"
+
+#: src/ps/help.c:179
+msgid " -V, V, --version display version information and exit\n"
+msgstr " -V, V, --version Versionsinformation anzeigen und beenden\n"
+
+#: src/ps/help.c:180
+msgid " -w, w unlimited output width\n"
+msgstr " -w, w Breite der Ausgabe unbegrenzt\n"
+
+#: src/ps/help.c:181
+#, c-format
+msgid ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" display help and exit\n"
+msgstr ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" Hilfe anzeigen und beenden\n"
+
+#. Translation Notes for ps Help #2 ---------------------------------
+#. . Most of the following c-format string is derived from the 6
+#. . pairs of words + chars mentioned above in "Notes for ps Help #1".
+#. .
+#. . In its full English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . The word for "help" will be translated elsewhere. Thus, the only
+#. . translations below will be: "Try", "or" and "for additional...".
+#. .
+#: src/ps/help.c:202
+#, c-format
+msgid ""
+"\n"
+" Try '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" or '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" for additional help text.\n"
+msgstr ""
+"\n"
+" Versuchen Sie »%s --%s <%s|%s|%s|%s|%s|%s>«\n"
+" oder »%s --%s <%s|%s|%s|%s|%s|%s>«,\n"
+" um zusätzliche Hilfe anzuzeigen.\n"
+
+#: src/ps/help.c:215
+#, c-format
+msgid ""
+"\n"
+"For more details see ps(1).\n"
+msgstr ""
+"\n"
+"Für weitere Informationen siehe ps(1).\n"
+
+#: src/ps/output.c:104
+msgid "Unable to get system boot time"
+msgstr "Systemstartzeit konnte nicht ermittelt werden"
+
+#: src/ps/output.c:119
+msgid "Unable to get total memory"
+msgstr "Gesamtspeicher konnte nicht ermittelt werden"
+
+#: src/ps/output.c:2206
+#, c-format
+msgid "fix bigness error\n"
+msgstr ""
+
+#: src/ps/output.c:2289
+#, c-format
+msgid "bad alignment code\n"
+msgstr "fehlerhafter Ausrichtungscode\n"
+
+#: src/ps/parser.c:63
+msgid "the option is exclusive: "
+msgstr "die Option ist exklusiv: "
+
+#: src/ps/parser.c:93
+msgid "process ID list syntax error"
+msgstr "Syntaxfehler in Prozess-ID-Liste"
+
+#: src/ps/parser.c:94 src/ps/parser.c:95
+msgid "process ID out of range"
+msgstr "Prozess-ID ist außerhalb des gültigen Bereichs"
+
+#: src/ps/parser.c:108
+msgid "user name does not exist"
+msgstr "Benutzername existiert nicht"
+
+#: src/ps/parser.c:114
+msgid "user ID out of range"
+msgstr "Benutzer-ID ist außerhalb des gültigen Bereichs"
+
+#: src/ps/parser.c:127
+msgid "group name does not exist"
+msgstr "Gruppenname existiert nicht"
+
+#: src/ps/parser.c:133
+msgid "group ID out of range"
+msgstr "Gruppen-ID ist außerhalb des gültigen Bereichs"
+
+#: src/ps/parser.c:149 src/ps/parser.c:173
+msgid "TTY could not be found"
+msgstr "TTY wurde nicht gefunden"
+
+#: src/ps/parser.c:175
+msgid "list member was not a TTY"
+msgstr "Listenelement war kein TTY"
+
+#: src/ps/parser.c:200
+msgid "improper list"
+msgstr "ungültige Liste"
+
+#: src/ps/parser.c:249
+msgid "list of command names must follow -C"
+msgstr "Liste von Befehlsnamen muss auf -C folgen"
+
+#: src/ps/parser.c:257
+msgid "date format must follow -D"
+msgstr "Datumsformat muss auf -D folgen"
+
+#: src/ps/parser.c:270
+msgid "list of real groups must follow -G"
+msgstr "Liste von realen Gruppen muss auf -G folgen"
+
+#: src/ps/parser.c:283
+msgid "list of jobs must follow -J"
+msgstr "Jobliste muss auf -J folgen"
+
+#: src/ps/parser.c:311
+msgid "format or sort specification must follow -O"
+msgstr "Format- oder Sortierspezifikation muss auf -O folgen"
+
+#: src/ps/parser.c:322
+msgid "list of PRM groups must follow -R"
+msgstr "Liste von PRM-Gruppen muss auf -R folgen"
+
+#: src/ps/parser.c:341
+msgid "list of real users must follow -U"
+msgstr "Liste von realen Benutzern muss auf -U folgen"
+
+#: src/ps/parser.c:382
+msgid "list of session leaders OR effective group names must follow -g"
+msgstr "Auf Liste der Session Leaders ODER effektiven Gruppe muss -g folgen"
+
+#: src/ps/parser.c:393
+msgid "list of session leaders OR effective group IDs was invalid"
+msgstr "Liste der Session Leaders ODER effektiven Gruppen-IDs war ungültig"
+
+#: src/ps/parser.c:417
+msgid "format specification must follow -o"
+msgstr "Formatspezifikation muss auf -o folgen"
+
+#: src/ps/parser.c:423
+msgid "list of process IDs must follow -p"
+msgstr "Liste von Prozess-IDs muss auf -p folgen"
+
+#: src/ps/parser.c:440
+msgid "the -r option is reserved"
+msgstr "die Option -r ist reserviert"
+
+#: src/ps/parser.c:446
+msgid "list of session IDs must follow -s"
+msgstr "Liste von Sitzungs-IDs muss auf -s folgen"
+
+#: src/ps/parser.c:454
+msgid "list of terminals (pty, tty...) must follow -t"
+msgstr "Auf Liste von Terminals (pty, tty …) muss -t folgen"
+
+#: src/ps/parser.c:462
+msgid "list of users must follow -u"
+msgstr "Benutzerliste muss auf -u folgen"
+
+#: src/ps/parser.c:484
+msgid "must set personality to get -x option"
+msgstr ""
+
+#: src/ps/parser.c:499
+msgid "list of zones (contexts, labels, whatever?) must follow -z"
+msgstr ""
+
+#: src/ps/parser.c:506
+msgid "embedded '-' among SysV options makes no sense"
+msgstr "in SysV-Optionen eingebettetes »-« ergibt keinen Sinn"
+
+#: src/ps/parser.c:512
+msgid "unsupported SysV option"
+msgstr "nicht unterstützte SysV-Option"
+
+#: src/ps/parser.c:525
+msgid "cannot happen - problem #1"
+msgstr "darf nicht passieren - Problem #1"
+
+#: src/ps/parser.c:529
+msgid "cannot happen - problem #2"
+msgstr "darf nicht passieren - Problem #2"
+
+#: src/ps/parser.c:531
+msgid "second chance parse failed, not BSD or SysV"
+msgstr "erneutes Einlesen ist fehlgeschlagen, weder BSD noch SysV"
+
+#: src/ps/parser.c:548
+msgid "option A is reserved"
+msgstr "Option A ist reserviert"
+
+#: src/ps/parser.c:553
+msgid "option C is reserved"
+msgstr "Option C ist reserviert"
+
+#: src/ps/parser.c:573
+msgid "format or sort specification must follow O"
+msgstr "Format- oder Sortierspezifikation muss auf O folgen"
+
+#: src/ps/parser.c:598
+msgid "list of users must follow U"
+msgstr "Benutzerliste muss auf U folgen"
+
+#: src/ps/parser.c:610
+msgid "obsolete W option not supported (you have a /dev/drum?)"
+msgstr ""
+"die veraltete Option W wird nicht unterstützt (haben Sie ein /dev/drum?)"
+
+#: src/ps/parser.c:646 src/ps/parser.c:921 src/ps/parser.c:930
+msgid "only one heading option may be specified"
+msgstr "Nur eine Heading-Option darf angegeben werden"
+
+#: src/ps/parser.c:661
+msgid "long sort specification must follow 'k'"
+msgstr "lange Sortierspezifikation muss auf »k« folgen"
+
+#: src/ps/parser.c:689
+msgid "format specification must follow o"
+msgstr "Formatspezifikation muss auf o folgen"
+
+#: src/ps/parser.c:695
+msgid "list of process IDs must follow p"
+msgstr "Liste von Prozess-IDs muss auf p folgen"
+
+#: src/ps/parser.c:753
+msgid "embedded '-' among BSD options makes no sense"
+msgstr "in BSD-Optionen eingebettetes »-« ergibt keinen Sinn"
+
+#: src/ps/parser.c:759
+msgid "unsupported option (BSD syntax)"
+msgstr "nicht unterstützte Option (BSD-Syntax)"
+
+#: src/ps/parser.c:847 src/ps/parser.c:859
+msgid "unknown gnu long option"
+msgstr "unbekannte lange GNU-Option"
+
+#: src/ps/parser.c:867
+msgid "list of real groups must follow --Group"
+msgstr "Liste von realen Gruppen muss auf --Group folgen"
+
+#: src/ps/parser.c:875
+msgid "list of real users must follow --User"
+msgstr "Liste von realen Benutzern muss auf --User folgen"
+
+#: src/ps/parser.c:894
+msgid "number of columns must follow --cols, --width, or --columns"
+msgstr "Anzahl der Spalten muss auf --cols, --width oder --columns folgen"
+
+#: src/ps/parser.c:897
+msgid "option --cumulative does not take an argument"
+msgstr "Option --cumulative akzeptiert kein Argument"
+
+#: src/ps/parser.c:902
+msgid "date format must follow --date-format"
+msgstr "Datumsformat muss auf --date-format folgen"
+
+#: src/ps/parser.c:908
+msgid "option --deselect does not take an argument"
+msgstr "Option --deselect akzeptiert kein Argument"
+
+#: src/ps/parser.c:920
+msgid "option --no-heading does not take an argument"
+msgstr "Option --no-heading akzeptiert kein Argument"
+
+#: src/ps/parser.c:929
+msgid "option --heading does not take an argument"
+msgstr "Option --heading akzeptiert kein Argument"
+
+#: src/ps/parser.c:935
+msgid "option --forest does not take an argument"
+msgstr "Option --forest akzeptiert kein Argument"
+
+#: src/ps/parser.c:941
+msgid "format specification must follow --format"
+msgstr "Formatspezifikation muss auf --format folgen"
+
+#: src/ps/parser.c:947
+msgid "list of effective groups must follow --group"
+msgstr "Liste von effektiven Gruppen muss auf --group folgen"
+
+#: src/ps/parser.c:965
+msgid "list of process IDs must follow --pid"
+msgstr "Liste von Prozess-IDs muss auf --pid folgen"
+
+#: src/ps/parser.c:981
+msgid "list of process IDs must follow --ppid"
+msgstr "Liste von Prozess-IDs muss auf --ppid folgen"
+
+#: src/ps/parser.c:999
+msgid "number of rows must follow --rows or --lines"
+msgstr "Anzahl der Zeilen muss auf --rows oder --lines folgen"
+
+#: src/ps/parser.c:1003
+msgid "some sid thing(s) must follow --sid"
+msgstr ""
+
+#: src/ps/parser.c:1015
+msgid "long sort specification must follow --sort"
+msgstr "lange Sortierspezifikation muss auf --sort folgen"
+
+#: src/ps/parser.c:1021
+msgid "list of ttys must follow --tty"
+msgstr "Liste von Terminals muss auf -tty folgen"
+
+#: src/ps/parser.c:1029
+msgid "list of effective users must follow --user"
+msgstr "Liste von realen Benutzern muss auf --user folgen"
+
+#: src/ps/parser.c:1145
+msgid "way bad"
+msgstr ""
+
+#: src/ps/parser.c:1159
+msgid "garbage option"
+msgstr ""
+
+#: src/ps/parser.c:1163
+msgid "something broke"
+msgstr ""
+
+#: src/ps/parser.c:1183
+msgid "thread display conflicts with forest display"
+msgstr "Konflikt zwischen Thread- und Baumansicht"
+
+#: src/ps/parser.c:1188
+msgid "thread flags conflict; can't use H with m or -m"
+msgstr ""
+"Konflikt der Thread-Schalter; H kann nicht mit m oder -m verwendet werden"
+
+#: src/ps/parser.c:1190
+msgid "thread flags conflict; can't use both m and -m"
+msgstr ""
+"Konflikt der Thread-Schalter; m und -m können nicht zusammen verwendet werden"
+
+#: src/ps/parser.c:1192
+msgid "thread flags conflict; can't use both -L and -T"
+msgstr ""
+"Konflikt der Thread-Schalter; -L und -T können nicht zusammen verwendet "
+"werden"
+
+#: src/ps/parser.c:1265 src/ps/parser.c:1266
+#, c-format
+msgid "error: %s\n"
+msgstr "Fehler: %s\n"
+
+#: src/ps/select.c:71
+msgid "process selection options conflict"
+msgstr "Optionen zur Prozessauswahl stehen im Konflikt"
+
+#: src/ps/sortformat.c:110 src/ps/sortformat.c:115
+msgid "seriously crashing: goodbye cruel world"
+msgstr "Ernsthafter Absturz: Goodbye cruel world"
+
+#: src/ps/sortformat.c:150 src/ps/sortformat.c:169
+msgid "missing AIX field descriptor"
+msgstr "AIX-Felddeskriptor fehlt"
+
+#: src/ps/sortformat.c:152
+msgid "improper AIX field descriptor"
+msgstr "ungültiger AIX-Felddeskriptor"
+
+#: src/ps/sortformat.c:174
+msgid "unknown AIX field descriptor"
+msgstr "unbekannter AIX-Felddeskriptor"
+
+#: src/ps/sortformat.c:179
+msgid "AIX field descriptor processing bug"
+msgstr ""
+
+#: src/ps/sortformat.c:287
+#, c-format
+msgid "unknown user-defined format specifier \"%s\""
+msgstr "unbekannter benutzerdefinierter Formatbezeichner »%s«"
+
+#: src/ps/sortformat.c:314
+msgid "empty format list"
+msgstr "leere Formatliste"
+
+#: src/ps/sortformat.c:315
+msgid "improper format list"
+msgstr "unzulässige Formatliste"
+
+#: src/ps/sortformat.c:316
+msgid "column widths must be unsigned decimal numbers"
+msgstr ""
+"Spaltenbreiten müssen in Dezimalzahlen ohne Vorzeichen angegeben werden"
+
+#: src/ps/sortformat.c:317
+msgid "can not set width for a macro (multi-column) format specifier"
+msgstr ""
+"Breite kann für einen Makro- (mehrspaltigen) Formatbezeichner nicht gesetzt "
+"werden"
+
+#: src/ps/sortformat.c:371 src/ps/sortformat.c:387
+msgid "improper sort list"
+msgstr "ungültige Sortierliste"
+
+#: src/ps/sortformat.c:382
+msgid "empty sort list"
+msgstr "leere Sortierliste"
+
+#: src/ps/sortformat.c:403 src/ps/sortformat.c:482 src/ps/sortformat.c:484
+msgid "unknown sort specifier"
+msgstr "unbekannter Sortierungsbezeichner"
+
+#: src/ps/sortformat.c:430 src/ps/sortformat.c:435 src/ps/sortformat.c:442
+#: src/ps/sortformat.c:448
+msgid "bad sorting code"
+msgstr "fehlerhafter Sortiercode"
+
+#: src/ps/sortformat.c:445
+msgid "PPID sort and forest output conflict"
+msgstr "Konflikt zwischen PID-Sortierung und Baumansicht"
+
+#: src/ps/sortformat.c:519
+msgid "option -O can not follow other format options"
+msgstr "Option -O kann nicht auf andere Formatoptionen folgen"
+
+#: src/ps/sortformat.c:526 src/ps/sortformat.c:544
+msgid "multiple sort options"
+msgstr "mehrfache Sortieroptionen"
+
+#: src/ps/sortformat.c:534
+msgid "option O is neither first format nor sort order"
+msgstr "Option O ist weder erstes Format noch Sortierreihenfolge"
+
+#: src/ps/sortformat.c:661
+msgid "modifier -y without format -l makes no sense"
+msgstr "Modifikator -y ohne Format -l ergibt keinen Sinn"
+
+#: src/ps/sortformat.c:760
+msgid "bug: must reset the list first"
+msgstr "Fehler: die Liste muss zuerst zurückgesetzt werden"
+
+#: src/ps/sortformat.c:797
+msgid "tell <procps@freelists.org> what you expected"
+msgstr "Teilen Sie auf <procps@freelists.org> mit, was Sie erwartet haben."
+
+#: src/ps/sortformat.c:807
+msgid ""
+"tell <procps@freelists.org> what you want (-L/-T, -m/m/H, and $PS_FORMAT)"
+msgstr ""
+"Teilen Sie auf <procps@freelists.org> mit, was Sie wollen (-L/-T, -m/m/H und "
+"$PS_FORMAT)."
+
+#: src/ps/sortformat.c:824
+#, c-format
+msgid "warning: $PS_FORMAT ignored. (%s)\n"
+msgstr "Warnung: $PS_FORMAT wird ignoriert. (%s)\n"
+
+#: src/ps/sortformat.c:829 src/ps/sortformat.c:839
+msgid "conflicting format options"
+msgstr "widersprüchliche Formatoptionen"
+
+#: src/ps/sortformat.c:830
+msgid "can not use output modifiers with user-defined output"
+msgstr ""
+"Ausgabemodifikatoren können bei benutzerdefinierter Ausgabe nicht verwendet "
+"werden"
+
+#: src/ps/sortformat.c:831
+msgid "-L/-T with H/m/-m and -o/-O/o/O is nonsense"
+msgstr "-L/-T mit H/m/-m und -o/-O/o/O ist Unsinn"
+
+#: src/ps/sortformat.c:889
+msgid "internal error: no PID or PPID for -j option"
+msgstr "interner Fehler: keine PID oder PPID für Option -j"
+
+#: src/ps/sortformat.c:891
+msgid "lost my PGID"
+msgstr "Prozessgruppen-ID verloren"
+
+#: src/ps/sortformat.c:904
+msgid "internal error: no PRI for -c option"
+msgstr "interner Fehler: keine PRI für Option -c"
+
+#: src/ps/sortformat.c:907
+msgid "lost my CLS"
+msgstr "CLS verloren"
+
+#: src/ps/sortformat.c:912
+msgid "-T with H/-m/m but no PID for SPID to follow"
+msgstr "-T mit H/-m/m, aber keine PID für SPID zum Folgen"
+
+#: src/ps/sortformat.c:923
+msgid "-L with H/-m/m but no PID/PGID/SID/SESS for NLWP to follow"
+msgstr "-L mit H/-m/m, aber keine PID/PGID/SID/SESS für NLWP zum Folgen"
+
+#: src/pwdx.c:41
+#, c-format
+msgid " %s [options] pid...\n"
+msgstr " %s [Optionen] pid …\n"
+
+#: src/pwdx.c:117
+#, c-format
+msgid "invalid process id: %s"
+msgstr "ungültige Prozessâ€ID: %s"
+
+#: src/skill.c:285
+msgid "Unable to create pid Pids_info structure"
+msgstr ""
+
+#: src/skill.c:288 src/w.c:458
+msgid "Unable to load process information"
+msgstr "Prozessinformation kann nicht geladen werden"
+
+#: src/skill.c:319
+#, c-format
+msgid " %s [signal] [options] <expression>\n"
+msgstr " %s [Signal] [Optionen] <Ausdruck>\n"
+
+#: src/skill.c:323
+#, c-format
+msgid " %s [new priority] [options] <expression>\n"
+msgstr " %s [neue Priorität] [Optionen] <Ausdruck>\n"
+
+#: src/skill.c:327
+msgid " -f, --fast fast mode (not implemented)\n"
+msgstr " -f, --fast schneller Modus (nicht implementiert)\n"
+
+#: src/skill.c:328
+msgid " -i, --interactive interactive\n"
+msgstr " -i, --interactive interaktiv\n"
+
+#: src/skill.c:329
+msgid " -l, --list list all signal names\n"
+msgstr " -l, --list alle Signalnamen auflisten\n"
+
+#: src/skill.c:330
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr ""
+" -L, --table alle Signalnamen in einer Tabelle\n"
+" auflisten\n"
+
+#: src/skill.c:331
+msgid ""
+" -n, --no-action do not actually kill processes; just print what would "
+"happen\n"
+msgstr ""
+" -n, --no-action keine Prozesse wirklich abwürgen, nur testen,\n"
+" was passieren würde\n"
+
+#: src/skill.c:332
+msgid " -v, --verbose explain what is being done\n"
+msgstr " -v, --verbose erklären, was geschieht\n"
+
+#: src/skill.c:333
+msgid " -w, --warnings enable warnings (not implemented)\n"
+msgstr " -w, --warnings Warnungen aktivieren (nicht implementiert)\n"
+
+#: src/skill.c:335
+msgid ""
+"Expression can be: terminal, user, pid, command.\n"
+"The options below may be used to ensure correct interpretation.\n"
+msgstr ""
+"Ausdrücke können sein: terminal, user, pid, command.\n"
+"Die nachfolgenden Optionen können verwendet werden, um\n"
+"eine korrekte Interpretation zu gewährleisten.\n"
+
+#: src/skill.c:337
+msgid " -c, --command <command> expression is a command name\n"
+msgstr " -c, --command <Befehl> Ausdruck ist ein Befehlsname\n"
+
+#: src/skill.c:338
+msgid " -p, --pid <pid> expression is a process id number\n"
+msgstr " -p, --pid <pid> Ausdruck ist eine Prozesskennung (ID)\n"
+
+#: src/skill.c:339
+msgid " -t, --tty <tty> expression is a terminal\n"
+msgstr " -t, --tty <tty> Ausdruck ist ein Terminal\n"
+
+#: src/skill.c:340
+msgid " -u, --user <username> expression is a username\n"
+msgstr " -u, --user <username> Ausdruck ist ein Benutzername\n"
+
+#: src/skill.c:342
+msgid "Alternatively, expression can be:\n"
+msgstr "Alternativ kann der Ausdruck Folgendes sein:\n"
+
+#: src/skill.c:343
+msgid ""
+" --ns <pid> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+" --ns <PID> sucht Prozesse, die zum gleichen Namensraum wie\n"
+" <PID> gehören\n"
+
+#: src/skill.c:345
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option; available namespaces are\n"
+": ipc, mnt, net, pid, user, uts\n"
+msgstr ""
+" --nslist <ns, …> listet die Namensräume auf, die für die Option\n"
+" --ns verwendet werden; verfügbare Namensräume "
+"sind\n"
+" ipc, mnt, net, pid, user, uts\n"
+
+#: src/skill.c:355
+#, c-format
+msgid ""
+"\n"
+"The default signal is TERM. Use -l or -L to list available signals.\n"
+"Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0.\n"
+"Alternate signals may be specified in three ways: -SIGKILL -KILL -9\n"
+msgstr ""
+"\n"
+"Das Vorgabesignal ist TERM. Mit -l oder -L können verfügbare Signale\n"
+"aufgelistet werden. In bestimmten Fällen sind HUP, INT, KILL, STOP,\n"
+"CONT und 0 verwendbar. Alternative Signale können auf drei Arten\n"
+"angegeben werden: -SIGKILL -KILL -9\n"
+
+#: src/skill.c:362
+#, c-format
+msgid ""
+"\n"
+"The default priority is +4. (snice +4 ...)\n"
+"Priority numbers range from +20 (slowest) to -20 (fastest).\n"
+"Negative priority numbers are restricted to administrative users.\n"
+msgstr ""
+"\n"
+"Die Vorgabepriorität ist +4. (snice +4 …). Prioritätskennziffern\n"
+"liegen im Bereich von +20 (am langsamsten) und -20 (am schnellsten).\n"
+"Negative Prioritätskennziffern sind Benutzern mit Administratorrechten\n"
+"vorbehalten.\n"
+
+#: src/skill.c:384
+#, c-format
+msgid "priority %lu out of range"
+msgstr "Priorität %lu ist außerhalb des Wertebereiches"
+
+#: src/skill.c:493
+#, c-format
+msgid "invalid pid number %s"
+msgstr "ungültige PID-Nummer %s"
+
+#: src/skill.c:497
+msgid "error reading reference namespace information"
+msgstr "Fehler beim Lesen der Informationen für Referenz-Namensraum"
+
+#: src/skill.c:505
+msgid "invalid namespace list"
+msgstr "Ungültige Namensraumliste"
+
+#: src/skill.c:542
+msgid "no process selection criteria"
+msgstr "Keine Kriterien zur Prozessauswahl"
+
+#: src/skill.c:545
+msgid "general flags may not be repeated"
+msgstr "Allgemeine Schalter dürfen nicht wiederholt angegeben werden"
+
+#: src/skill.c:548
+msgid "-i makes no sense with -v, -f, and -n"
+msgstr "-i ergibt keinen Sinn mit -v, -f und -n"
+
+#: src/skill.c:550
+msgid "-v makes no sense with -i and -f"
+msgstr "-v ergibt keinen Sinn mit -i und -f"
+
+#: src/skill.c:594
+#, c-format
+msgid "skill: \"%s\" is not supported\n"
+msgstr "skill: »%s« wird nicht unterstützt\n"
+
+#: src/slabtop.c:108
+msgid " -d, --delay <secs> delay updates\n"
+msgstr " -d, --delay <sec> Aktualisierungsverzögerung\n"
+
+#: src/slabtop.c:109
+msgid " -o, --once only display once, then exit\n"
+msgstr " -o, --once nur einmal anzeigen, dann beenden\n"
+
+#: src/slabtop.c:110
+msgid " -s, --sort <char> specify sort criteria by character (see below)\n"
+msgstr ""
+" -s, --sort <char> Sortierkriterien in Buchstaben angeben (siehe unten)\n"
+
+#: src/slabtop.c:115
+msgid ""
+"\n"
+"The following are valid sort criteria:\n"
+msgstr ""
+"\n"
+"Folgende Sortierkriterien sind gültig:\n"
+
+#: src/slabtop.c:116
+msgid " a: sort by number of active objects\n"
+msgstr " a: nach Anzahl der aktiven Objekte sortieren\n"
+
+#: src/slabtop.c:117
+msgid " b: sort by objects per slab\n"
+msgstr " b: nach Objekten pro Slab sortieren\n"
+
+#: src/slabtop.c:118
+msgid " c: sort by cache size\n"
+msgstr " c: nach Cache-Größe sortieren\n"
+
+#: src/slabtop.c:119
+msgid " l: sort by number of slabs\n"
+msgstr " l: nach der Anzahl der Slabs sortieren\n"
+
+#: src/slabtop.c:120
+msgid " v: sort by (non display) number of active slabs\n"
+msgstr " v: nach Anzahl der (nicht angezeigten) aktiven Slabs sortieren\n"
+
+#: src/slabtop.c:121
+msgid " n: sort by name\n"
+msgstr " n: nach Name sortieren\n"
+
+#: src/slabtop.c:122
+msgid " o: sort by number of objects (the default)\n"
+msgstr " o: nach Anzahl der Objekte sortieren (Vorgabe)\n"
+
+#: src/slabtop.c:123
+msgid " p: sort by (non display) pages per slab\n"
+msgstr " p: nach (nicht angezeigten) Pages pro Slab sortieren\n"
+
+#: src/slabtop.c:124
+msgid " s: sort by object size\n"
+msgstr " s: nach Objektgröße sortieren\n"
+
+#: src/slabtop.c:125
+msgid " u: sort by cache utilization\n"
+msgstr " u: nach Cache-Auslastung sortieren\n"
+
+#: src/slabtop.c:188 src/slabtop.c:199
+msgid "Cannot combine -d and -o options"
+msgstr "Optionen -d und -o können nicht kombiniert werden"
+
+#: src/slabtop.c:190
+msgid "illegal delay"
+msgstr "ungültige Verzögerung"
+
+#: src/slabtop.c:192 src/tload.c:142 src/vmstat.c:1049
+msgid "delay must be positive integer"
+msgstr "Verzögerung muss eine positive Ganzzahl sein"
+
+#: src/slabtop.c:236
+msgid "Error getting slab summary results"
+msgstr ""
+
+#. Translation Hint: Next five strings must not
+#. * exceed a length of 35 characters.
+#: src/slabtop.c:242
+#, no-c-format
+msgid "Active / Total Objects (% used)"
+msgstr "Objekte aktiv / gesamt (% benutzt)"
+
+#: src/slabtop.c:248
+#, no-c-format
+msgid "Active / Total Slabs (% used)"
+msgstr "Slabs aktiv / gesamt (% benutzt)"
+
+#: src/slabtop.c:254
+#, no-c-format
+msgid "Active / Total Caches (% used)"
+msgstr "Caches aktiv / gesamt (% benutzt)"
+
+#: src/slabtop.c:260
+#, no-c-format
+msgid "Active / Total Size (% used)"
+msgstr "Größe aktiv / gesamt (% benutzt)"
+
+#: src/slabtop.c:265
+msgid "Minimum / Average / Maximum Object"
+msgstr ""
+
+#. Translation Hint: Please keep alignment of the
+#. * following intact.
+#: src/slabtop.c:276
+msgid " OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME"
+msgstr ""
+
+#: src/slabtop.c:313 src/vmstat.c:767
+msgid "Unable to create slabinfo structure"
+msgstr ""
+
+#: src/slabtop.c:318
+msgid "terminal setting retrieval"
+msgstr ""
+
+#: src/slabtop.c:334 src/vmstat.c:774
+msgid "Unable to get slabinfo node data"
+msgstr ""
+
+#: src/slabtop.c:340 src/vmstat.c:776
+#, fuzzy
+msgid "Unable to sort slab nodes"
+msgstr "Prozess kann nicht geforkt werden"
+
+#: src/sysctl.c:118
+#, c-format
+msgid "Path is not under %s: %s"
+msgstr "Pfad ist nicht unterhalb von %s: %s"
+
+#: src/sysctl.c:136
+#, c-format
+msgid "separators should not be repeated: %s"
+msgstr "Trenner sollten nicht wiederholt werden: %s"
+
+#: src/sysctl.c:232
+#, c-format
+msgid " %s [options] [variable[=value] ...]\n"
+msgstr " %s [Optionen] [Variable[=Wert] …]\n"
+
+#: src/sysctl.c:235
+msgid " -a, --all display all variables\n"
+msgstr " -a, --all Alle Variablen anzeigen\n"
+
+#: src/sysctl.c:236
+msgid " -A alias of -a\n"
+msgstr " -A Alias für -a\n"
+
+#: src/sysctl.c:237
+msgid " -X alias of -a\n"
+msgstr " -X Alias für -a\n"
+
+#: src/sysctl.c:238
+msgid " --deprecated include deprecated parameters to listing\n"
+msgstr " --deprecated auch nicht mehr genutzte Parameter auflisten\n"
+
+#: src/sysctl.c:239
+msgid " --dry-run Print the key and values but do not write\n"
+msgstr ""
+" --dry-run Schlüssel und Werte ausgeben,\n"
+" aber nicht schreiben\n"
+
+#: src/sysctl.c:240
+msgid " -b, --binary print value without new line\n"
+msgstr " -b, --binary Wert ohne neue Zeile ausgeben\n"
+
+#: src/sysctl.c:241
+msgid " -e, --ignore ignore unknown variables errors\n"
+msgstr ""
+" -e, --ignore Fehler durch unbekannte Variablen\n"
+" ignorieren\n"
+
+#: src/sysctl.c:242
+msgid " -N, --names print variable names without values\n"
+msgstr " -N, --names Variablennamen ohne Werte ausgeben\n"
+
+#: src/sysctl.c:243
+msgid " -n, --values print only values of the given variable(s)\n"
+msgstr " -n, --values nur Werte der angegebenen Variablen ausgeben\n"
+
+#: src/sysctl.c:244
+msgid " -p, --load[=<file>] read values from file\n"
+msgstr " -p, --load[=<Datei>] Werte aus einer Datei lesen\n"
+
+#: src/sysctl.c:245
+msgid " -f alias of -p\n"
+msgstr " -f Alias für -p\n"
+
+#: src/sysctl.c:246
+msgid " --system read values from all system directories\n"
+msgstr " --system Werte aus allen Systemverzeichnissen lesen\n"
+
+#: src/sysctl.c:247
+msgid ""
+" -r, --pattern <expression>\n"
+" select setting that match expression\n"
+msgstr ""
+" -r, --pattern <Ausdruck>\n"
+" Einstellung auswählen, die diesem Ausdruck\n"
+" entspricht\n"
+
+#: src/sysctl.c:249
+msgid " -q, --quiet do not echo variable set\n"
+msgstr " -q, --quiet Setzen von Variablen nicht bestätigen\n"
+
+#: src/sysctl.c:250
+msgid " -w, --write enable writing a value to variable\n"
+msgstr " -w, --write Setzen von Werten für Variablen aktivieren\n"
+
+#: src/sysctl.c:251
+msgid " -o does nothing\n"
+msgstr " -o nichts tun\n"
+
+#: src/sysctl.c:252
+msgid " -x does nothing\n"
+msgstr " -x nichts tun\n"
+
+#: src/sysctl.c:253
+msgid " -d alias of -h\n"
+msgstr " -d Alias für -h\n"
+
+#: src/sysctl.c:334 src/sysctl.c:390
+#, c-format
+msgid "\"%s\" is an unknown key"
+msgstr "»%s« ist ein unbekannter Schlüssel"
+
+#: src/sysctl.c:352 src/sysctl.c:508 src/sysctl.c:545
+#, c-format
+msgid "cannot stat %s"
+msgstr "der Aufruf von stat für %s ist nicht möglich"
+
+#: src/sysctl.c:395 src/sysctl.c:437
+#, c-format
+msgid "permission denied on key '%s'"
+msgstr "Zugriff verweigert auf Schlüssel »%s«"
+
+#: src/sysctl.c:402 src/sysctl.c:454
+#, c-format
+msgid "reading key \"%s\""
+msgstr "Schlüssel »%s« wird gelesen"
+
+#: src/sysctl.c:492
+#, c-format
+msgid "unable to open directory \"%s\""
+msgstr "Verzeichnis »%s« kann nicht geöffnet werden"
+
+#: src/sysctl.c:557
+msgid "strdup key"
+msgstr ""
+
+#: src/sysctl.c:564 src/sysctl.c:571 src/sysctl.c:604
+#, c-format
+msgid "setting key \"%s\""
+msgstr "Schlüssel »%s« wird gesetzt"
+
+#: src/sysctl.c:581
+#, c-format
+msgid "\"%s\" is an unknown key%s"
+msgstr "»%s« ist ein unbekannter Schlüssel%s"
+
+#: src/sysctl.c:582 src/sysctl.c:591 src/sysctl.c:595
+msgid ", ignoring"
+msgstr ", wird ignoriert"
+
+#: src/sysctl.c:590
+#, c-format
+msgid "permission denied on key \"%s\"%s"
+msgstr "Zugriff verweigert auf Schlüssel »%s«%s"
+
+#: src/sysctl.c:594
+#, c-format
+msgid "setting key \"%s\"%s"
+msgstr "Schlüssel »%s«%s wird gesetzt"
+
+#: src/sysctl.c:669
+#, c-format
+msgid "%s(%d): invalid syntax, continuing..."
+msgstr "%s(%d): ungültige Syntax, es wird fortgefahren …"
+
+#: src/sysctl.c:761
+#, c-format
+msgid ""
+"GLOB_TILDE is not supported on your platform, the tilde in \"%s\" won't be "
+"expanded."
+msgstr ""
+"GLOB_TILDE wird auf Ihrer Plattform nicht unterstützt, die Tilde in »%s« "
+"wird nicht expandiert."
+
+#: src/sysctl.c:767
+msgid "glob failed"
+msgstr "glob ist fehlgeschlagen"
+
+#: src/sysctl.c:773
+#, c-format
+msgid "cannot open \"%s\""
+msgstr "»%s« kann nicht geöffnet werden"
+
+#: src/sysctl.c:877 src/sysctl.c:884
+#, c-format
+msgid "* Applying %s ...\n"
+msgstr "* %s wird angewendet …\n"
+
+#: src/sysctl.c:1050
+#, c-format
+msgid ""
+"no variables specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+"keine Variablen angegeben\n"
+"Rufen Sie »%s --help« auf für weitere Informationen."
+
+#: src/sysctl.c:1054
+#, c-format
+msgid ""
+"options -N and -q cannot coexist\n"
+"Try `%s --help' for more information."
+msgstr ""
+"die Optionen -N und -q können nicht zusammen verwendet werden\n"
+"Rufen Sie »%s --help« auf für weitere Informationen."
+
+#: src/tload.c:75 src/tload.c:77
+msgid "screen too small or too large"
+msgstr "Bildschirm zu klein oder zu groß"
+
+#: src/tload.c:80
+msgid "screen too small"
+msgstr "Bildschirm zu klein"
+
+#: src/tload.c:96
+#, c-format
+msgid " %s [options] [tty]\n"
+msgstr " %s [Optionen] [tty]\n"
+
+#: src/tload.c:98
+msgid " -d, --delay <secs> update delay in seconds\n"
+msgstr " -d, --delay <sek> Aktualisierungsverzögerung in Sekunden\n"
+
+#: src/tload.c:99
+msgid " -s, --scale <num> vertical scale\n"
+msgstr " -s, --scale <Zahl> vertikaler Maßstab\n"
+
+#: src/tload.c:137
+msgid "scale cannot be negative"
+msgstr "Maßstab kann nicht negativ sein"
+
+#: src/tload.c:144 src/vmstat.c:1051
+msgid "too large delay value"
+msgstr "Verzögerungswert ist zu groß"
+
+#: src/tload.c:159
+msgid "can not open tty"
+msgstr "tty konnte nicht geöffnet werden"
+
+#: src/tload.c:182
+msgid "Load average file /proc/loadavg does not exist"
+msgstr "Lastmittelwertdatei /proc/loadavg existiert nicht"
+
+#: src/tload.c:185
+msgid "Unable to get load average"
+msgstr "Lastmittelwert kann nicht ermittelt werden"
+
+#: src/tload.c:227 src/tload.c:229
+msgid "writing to tty failed"
+msgstr "Schreiben in tty fehlgeschlagen"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The following line pairs contain only plain text and consist of:
+#. . 1) a field name/column header - mostly upper case
+#. . 2) the related description - both upper and lower case
+#. .
+#. . To avoid truncation on the main top display, each column header
+#. . is noted with its maximum size, while a few are 'variable' width.
+#. . Names for the latter should probably be 10 or fewer characters.
+#. .
+#. . Those fields shown with a '+' are also eligible for user resizing
+#. . using the 'X' command. That means the default width might produce
+#. . truncation but need not if widened (see the man page 'X' command).
+#. .
+#. . All headers are subject to a maximum of 8 on the Fields Management
+#. . screen where truncation is entirely acceptable.
+#. .
+#. . The associated descriptions are always limited to 20 characters,
+#. . and are used only on the Fields Management screen.
+#. .
+#. . In all cases, fewer characters are just fine.
+#. .
+#. Translation Hint: maximum 'PID' = 5
+#: src/top/top_nls.c:152
+msgid "PID"
+msgstr "PID"
+
+#: src/top/top_nls.c:153
+msgid "Process Id"
+msgstr "Prozessâ€ID"
+
+#. Translation Hint: maximum 'PPID' = 5
+#: src/top/top_nls.c:155
+msgid "PPID"
+msgstr "PPID"
+
+#: src/top/top_nls.c:156
+msgid "Parent Process pid"
+msgstr "PID des Elternprozesses"
+
+#. Translation Hint: maximum 'UID' = 5 +
+#: src/top/top_nls.c:158
+msgid "UID"
+msgstr "UID"
+
+#: src/top/top_nls.c:159
+msgid "Effective User Id"
+msgstr "Effektive Benutzerâ€ID"
+
+#. Translation Hint: maximum 'USER' = 8 +
+#: src/top/top_nls.c:161 src/w.c:799
+msgid "USER"
+msgstr "USER"
+
+#: src/top/top_nls.c:162
+msgid "Effective User Name"
+msgstr "Effektiver Benutzername"
+
+#. Translation Hint: maximum 'RUID' = 5 +
+#: src/top/top_nls.c:164
+msgid "RUID"
+msgstr "RUID"
+
+#: src/top/top_nls.c:165
+msgid "Real User Id"
+msgstr "Reale Benutzerâ€ID"
+
+#. Translation Hint: maximum 'RUSER' = 8 +
+#: src/top/top_nls.c:167
+msgid "RUSER"
+msgstr "RUSER"
+
+#: src/top/top_nls.c:168
+msgid "Real User Name"
+msgstr "Realer Benutzername"
+
+#. Translation Hint: maximum 'SUID' = 5 +
+#: src/top/top_nls.c:170
+msgid "SUID"
+msgstr "SUID"
+
+#: src/top/top_nls.c:171
+msgid "Saved User Id"
+msgstr "Gespeicherte Benutzerâ€ID"
+
+#. Translation Hint: maximum 'SUSER' = 8 +
+#: src/top/top_nls.c:173
+msgid "SUSER"
+msgstr "SUSER"
+
+#: src/top/top_nls.c:174
+msgid "Saved User Name"
+msgstr "Gespeicherter Benutzername"
+
+#. Translation Hint: maximum 'GID' = 5 +
+#: src/top/top_nls.c:176
+msgid "GID"
+msgstr "GID"
+
+#: src/top/top_nls.c:177
+msgid "Group Id"
+msgstr "Gruppenkennung"
+
+#. Translation Hint: maximum 'GROUP' = 8 +
+#: src/top/top_nls.c:179
+msgid "GROUP"
+msgstr "GRUPPE"
+
+#: src/top/top_nls.c:180
+msgid "Group Name"
+msgstr "Gruppenname"
+
+#. Translation Hint: maximum 'PGRP' = 5
+#: src/top/top_nls.c:182
+msgid "PGRP"
+msgstr "PGRP"
+
+#: src/top/top_nls.c:183
+msgid "Process Group Id"
+msgstr "Prozessgruppenkennung"
+
+#. Translation Hint: maximum 'TTY' = 8 +
+#: src/top/top_nls.c:185
+msgid "TTY"
+msgstr "TTY"
+
+#: src/top/top_nls.c:186
+msgid "Controlling Tty"
+msgstr "Steuernde TTY"
+
+#. Translation Hint: maximum 'TPGID' = 5
+#: src/top/top_nls.c:188
+msgid "TPGID"
+msgstr "TPGID"
+
+#: src/top/top_nls.c:189
+msgid "Tty Process Grp Id"
+msgstr ""
+
+#. Translation Hint: maximum 'SID' = 5
+#: src/top/top_nls.c:191
+msgid "SID"
+msgstr "SID"
+
+#: src/top/top_nls.c:192
+msgid "Session Id"
+msgstr "Sitzungs-ID"
+
+#. Translation Hint: maximum 'PR' = 3
+#: src/top/top_nls.c:194
+msgid "PR"
+msgstr "PR"
+
+#: src/top/top_nls.c:195
+msgid "Priority"
+msgstr "Priorität"
+
+#. Translation Hint: maximum 'NI' = 3
+#: src/top/top_nls.c:197
+msgid "NI"
+msgstr "NI"
+
+#: src/top/top_nls.c:198
+msgid "Nice Value"
+msgstr "Nice-Wert"
+
+#. Translation Hint: maximum 'nTH' = 3
+#: src/top/top_nls.c:200
+msgid "nTH"
+msgstr "nTH"
+
+#: src/top/top_nls.c:201
+msgid "Number of Threads"
+msgstr "Anzahl der Threads"
+
+#. Translation Hint: maximum 'P' = 1
+#: src/top/top_nls.c:203
+msgid "P"
+msgstr "P"
+
+#: src/top/top_nls.c:204
+msgid "Last Used Cpu (SMP)"
+msgstr "Zuletzt benutzte CPU (SMP)"
+
+#. Translation Hint: maximum '%CPU' = 4
+#: src/top/top_nls.c:206
+#, c-format
+msgid "%CPU"
+msgstr "%CPU"
+
+#: src/top/top_nls.c:207
+msgid "CPU Usage"
+msgstr "CPU-Auslastung"
+
+#. Translation Hint: maximum '' = 6
+#: src/top/top_nls.c:209
+msgid "TIME"
+msgstr "ZEIT"
+
+#: src/top/top_nls.c:210
+msgid "CPU Time"
+msgstr "CPU-Zeit"
+
+#. Translation Hint: maximum 'TIME+' = 9
+#: src/top/top_nls.c:212
+msgid "TIME+"
+msgstr "ZEIT+"
+
+#: src/top/top_nls.c:213
+msgid "CPU Time, hundredths"
+msgstr "CPU-Zeit, Hundertstel"
+
+#. Translation Hint: maximum '%MEM' = 4
+#: src/top/top_nls.c:215
+msgid "%MEM"
+msgstr "%MEM"
+
+#: src/top/top_nls.c:216
+msgid "Memory Usage (RES)"
+msgstr "Speichernutzung (RES)"
+
+#. Translation Hint: maximum 'VIRT' = 7
+#: src/top/top_nls.c:218
+msgid "VIRT"
+msgstr "VIRT"
+
+#: src/top/top_nls.c:219
+msgid "Virtual Image (KiB)"
+msgstr "Virtuelles Image (KiB)"
+
+#. Translation Hint: maximum 'SWAP' = 6
+#: src/top/top_nls.c:221
+msgid "SWAP"
+msgstr "SWAP"
+
+#: src/top/top_nls.c:222
+msgid "Swapped Size (KiB)"
+msgstr "Auslagerungsgröße (KiB)"
+
+#. Translation Hint: maximum 'RES' = 6
+#: src/top/top_nls.c:224
+msgid "RES"
+msgstr "RES"
+
+#: src/top/top_nls.c:225
+msgid "Resident Size (KiB)"
+msgstr "Hauptspeicherbelegung (KiB)"
+
+#. Translation Hint: maximum 'CODE' = 4
+#: src/top/top_nls.c:227
+msgid "CODE"
+msgstr "CODE"
+
+#: src/top/top_nls.c:228
+msgid "Code Size (KiB)"
+msgstr "Code-Größe (KiB)"
+
+#. Translation Hint: maximum 'DATA' = 7
+#: src/top/top_nls.c:230
+msgid "DATA"
+msgstr "DATEN"
+
+#: src/top/top_nls.c:231
+msgid "Data+Stack (KiB)"
+msgstr "Daten+Stack (KiB)"
+
+#. Translation Hint: maximum 'SHR' = 6
+#: src/top/top_nls.c:233
+msgid "SHR"
+msgstr "SHR"
+
+#: src/top/top_nls.c:234
+msgid "Shared Memory (KiB)"
+msgstr "Gemeinsam genutzter Speicher (KiB)"
+
+#. Translation Hint: maximum 'nMaj' = 4
+#: src/top/top_nls.c:236
+msgid "nMaj"
+msgstr "nMaj"
+
+#: src/top/top_nls.c:237
+msgid "Major Page Faults"
+msgstr ""
+
+#. Translation Hint: maximum 'nMin' = 4
+#: src/top/top_nls.c:239
+msgid "nMin"
+msgstr "nMin"
+
+#: src/top/top_nls.c:240
+msgid "Minor Page Faults"
+msgstr ""
+
+#. Translation Hint: maximum 'nDRT' = 4
+#: src/top/top_nls.c:242
+msgid "nDRT"
+msgstr "nDRT"
+
+#: src/top/top_nls.c:243
+msgid "Dirty Pages Count"
+msgstr "Anzahl der Dirty Pages"
+
+#. Translation Hint: maximum 'S' = 1
+#: src/top/top_nls.c:245
+msgid "S"
+msgstr "S"
+
+#: src/top/top_nls.c:246
+msgid "Process Status"
+msgstr "Prozessstatus"
+
+#. Translation Hint: maximum 'COMMAND' = variable
+#: src/top/top_nls.c:248
+msgid "COMMAND"
+msgstr "BEFEHL"
+
+#: src/top/top_nls.c:249
+msgid "Command Name/Line"
+msgstr "Befehlsname/-zeile"
+
+#. Translation Hint: maximum 'WCHAN' = 10 +
+#: src/top/top_nls.c:251
+msgid "WCHAN"
+msgstr "WCHAN"
+
+#: src/top/top_nls.c:252
+msgid "Sleeping in Function"
+msgstr "Schläft"
+
+#. Translation Hint: maximum 'Flags' = 8
+#: src/top/top_nls.c:254
+msgid "Flags"
+msgstr "Schalter"
+
+#: src/top/top_nls.c:255
+msgid "Task Flags <sched.h>"
+msgstr "Prozess-Flags <sched.h>"
+
+#. Translation Hint: maximum 'CGROUPS' = variable
+#: src/top/top_nls.c:257
+msgid "CGROUPS"
+msgstr "CGROUPS"
+
+#: src/top/top_nls.c:258
+msgid "Control Groups"
+msgstr "Kontrollgruppen"
+
+#. Translation Hint: maximum 'SUPGIDS' = variable
+#: src/top/top_nls.c:260
+msgid "SUPGIDS"
+msgstr "SUPGIDS"
+
+#: src/top/top_nls.c:261
+msgid "Supp Groups IDs"
+msgstr "IDs zusätzlicher Gruppen"
+
+#. Translation Hint: maximum 'SUPGRPS' = variable
+#: src/top/top_nls.c:263
+msgid "SUPGRPS"
+msgstr "SUPGRPS"
+
+#: src/top/top_nls.c:264
+msgid "Supp Groups Names"
+msgstr "Namen zusätzlicher Gruppen"
+
+#. Translation Hint: maximum 'TGID' = 5
+#: src/top/top_nls.c:266
+msgid "TGID"
+msgstr "TGID"
+
+#: src/top/top_nls.c:267
+msgid "Thread Group Id"
+msgstr "Threadgruppen-ID"
+
+#. Translation Hint: maximum 'OOMa' = 5
+#: src/top/top_nls.c:269
+msgid "OOMa"
+msgstr "OOMa"
+
+#: src/top/top_nls.c:270
+msgid "OOMEM Adjustment"
+msgstr "OOMEM-Anpassung"
+
+#. Translation Hint: maximum 'OOMs' = 4
+#: src/top/top_nls.c:272
+msgid "OOMs"
+msgstr "OOMs"
+
+#: src/top/top_nls.c:273
+msgid "OOMEM Score current"
+msgstr "OOMEM-Rang aktuell"
+
+#. Translation Hint: maximum 'ENVIRON' = variable
+#: src/top/top_nls.c:275
+msgid "ENVIRON"
+msgstr "UMGEBUNG"
+
+#. Translation Hint: the abbreviation 'vars' below is shorthand for
+#. 'variables'
+#: src/top/top_nls.c:278
+msgid "Environment vars"
+msgstr "Umgebungsvariablen"
+
+#. Translation Hint: maximum 'vMj' = 3
+#: src/top/top_nls.c:280
+msgid "vMj"
+msgstr "vMj"
+
+#: src/top/top_nls.c:281
+msgid "Major Faults delta"
+msgstr ""
+
+#. Translation Hint: maximum 'vMn' = 3
+#: src/top/top_nls.c:283
+msgid "vMn"
+msgstr "vMn"
+
+#: src/top/top_nls.c:284
+msgid "Minor Faults delta"
+msgstr ""
+
+#. Translation Hint: maximum 'USED' = 6
+#: src/top/top_nls.c:286
+msgid "USED"
+msgstr "USED"
+
+#: src/top/top_nls.c:287
+msgid "Res+Swap Size (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'nsIPC' = 10 +
+#: src/top/top_nls.c:289
+msgid "nsIPC"
+msgstr "nsIPC"
+
+#: src/top/top_nls.c:290
+msgid "IPC namespace Inode"
+msgstr "Inode für IPC-Namensraum"
+
+#. Translation Hint: maximum 'nsMNT' = 10 +
+#: src/top/top_nls.c:292
+msgid "nsMNT"
+msgstr "nsMNT"
+
+#: src/top/top_nls.c:293
+msgid "MNT namespace Inode"
+msgstr "Inode für MNT-Namensraum"
+
+#. Translation Hint: maximum 'nsNET' = 10 +
+#: src/top/top_nls.c:295
+msgid "nsNET"
+msgstr "nsNET"
+
+#: src/top/top_nls.c:296
+msgid "NET namespace Inode"
+msgstr "Inode für NET-Namensraum"
+
+#. Translation Hint: maximum 'nsPID' = 10 +
+#: src/top/top_nls.c:298
+msgid "nsPID"
+msgstr "nsPID"
+
+#: src/top/top_nls.c:299
+msgid "PID namespace Inode"
+msgstr "Inode für Prozess-ID-Namensraum"
+
+#. Translation Hint: maximum 'nsUSER' = 10 +
+#: src/top/top_nls.c:301
+msgid "nsUSER"
+msgstr "nsUSER"
+
+#: src/top/top_nls.c:302
+msgid "USER namespace Inode"
+msgstr "Inode für Benutzer-Namensraum"
+
+#. Translation Hint: maximum 'nsUTS' = 10 +
+#: src/top/top_nls.c:304
+msgid "nsUTS"
+msgstr "nsUTS"
+
+#: src/top/top_nls.c:305
+msgid "UTS namespace Inode"
+msgstr "Inode für UTS-Namensraum"
+
+#. Translation Hint: maximum 'LXC' = 8 +
+#: src/top/top_nls.c:307
+msgid "LXC"
+msgstr "LXC"
+
+#: src/top/top_nls.c:308
+msgid "LXC container name"
+msgstr "LXC-Containername"
+
+#. Translation Hint: maximum 'RSan' = 6
+#: src/top/top_nls.c:310
+msgid "RSan"
+msgstr "RSan"
+
+#: src/top/top_nls.c:311
+msgid "RES Anonymous (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'RSfd' = 6
+#: src/top/top_nls.c:313
+msgid "RSfd"
+msgstr "RSfd"
+
+#: src/top/top_nls.c:314
+msgid "RES File-based (KiB)"
+msgstr "RES dateibasiert (KiB)"
+
+#. Translation Hint: maximum 'RSlk' = 6
+#: src/top/top_nls.c:316
+msgid "RSlk"
+msgstr "RSlk"
+
+#: src/top/top_nls.c:317
+msgid "RES Locked (KiB)"
+msgstr "RES gesperrt (KiB)"
+
+#. Translation Hint: maximum 'RSsh' = 6
+#: src/top/top_nls.c:319
+msgid "RSsh"
+msgstr "RSsh"
+
+#: src/top/top_nls.c:320
+msgid "RES Shared (KiB)"
+msgstr "Hptsp. gemns. (KiB)"
+
+#. Translation Hint: maximum 'CGNAME' = variable
+#: src/top/top_nls.c:322
+msgid "CGNAME"
+msgstr "CGNAME"
+
+#: src/top/top_nls.c:323
+msgid "Control Group name"
+msgstr "Kontrollgruppenname"
+
+#. Translation Hint: maximum 'NU' = 2
+#: src/top/top_nls.c:325
+msgid "NU"
+msgstr "NU"
+
+#: src/top/top_nls.c:326
+msgid "Last Used NUMA node"
+msgstr "Zuletzt benutzter NUMA-Node"
+
+#. Translation Hint: maximum 'LOGID' = 5 +
+#: src/top/top_nls.c:328
+msgid "LOGID"
+msgstr ""
+
+#: src/top/top_nls.c:329
+#, fuzzy
+msgid "Login User Id"
+msgstr "Reale Benutzerâ€ID"
+
+#. Translation Hint: maximum 'EXE' = variable
+#: src/top/top_nls.c:331
+msgid "EXE"
+msgstr ""
+
+#: src/top/top_nls.c:332
+msgid "Executable Path"
+msgstr "Ausführbarer Pfad"
+
+#: src/top/top_nls.c:338
+msgid "Res Mem (smaps), KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'PSS' = 6
+#: src/top/top_nls.c:340
+msgid "PSS"
+msgstr "PSS"
+
+#: src/top/top_nls.c:341
+msgid "Proportion RSS, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'PSan' = 6
+#: src/top/top_nls.c:343
+msgid "PSan"
+msgstr ""
+
+#: src/top/top_nls.c:344
+msgid "Proportion Anon, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'PSfd' = 6
+#: src/top/top_nls.c:346
+msgid "PSfd"
+msgstr ""
+
+#: src/top/top_nls.c:347
+msgid "Proportion File, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'PSsh' = 6
+#: src/top/top_nls.c:349
+msgid "PSsh"
+msgstr ""
+
+#: src/top/top_nls.c:350
+msgid "Proportion Shrd, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'USS' = 6
+#: src/top/top_nls.c:352
+msgid "USS"
+msgstr "USS"
+
+#: src/top/top_nls.c:353
+msgid "Unique RSS, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'ioR' = 6
+#: src/top/top_nls.c:355
+msgid "ioR"
+msgstr ""
+
+#: src/top/top_nls.c:356
+msgid "I/O Bytes Read"
+msgstr "E/A Bytes gelesen"
+
+#. Translation Hint: maximum 'ioRop' = 5
+#: src/top/top_nls.c:358
+msgid "ioRop"
+msgstr ""
+
+#: src/top/top_nls.c:359
+msgid "I/O Read Operations"
+msgstr "E/A-Lesevorgänge"
+
+#. Translation Hint: maximum 'ioW' = 6
+#: src/top/top_nls.c:361
+msgid "ioW"
+msgstr ""
+
+#: src/top/top_nls.c:362
+msgid "I/O Bytes Written"
+msgstr "E/A Bytes geschrieben"
+
+#. Translation Hint: maximum 'ioWop' = 5
+#: src/top/top_nls.c:364
+msgid "ioWop"
+msgstr ""
+
+#: src/top/top_nls.c:365
+msgid "I/O Write Operations"
+msgstr "E/A-Schreibvorgänge"
+
+#. Translation Hint: maximum 'AGID' = 5
+#: src/top/top_nls.c:367
+msgid "AGID"
+msgstr "AGID"
+
+#: src/top/top_nls.c:368
+msgid "Autogroup Identifier"
+msgstr ""
+
+#. Translation Hint: maximum 'AGNI' = 4
+#: src/top/top_nls.c:370
+msgid "AGNI"
+msgstr "AGNI"
+
+#: src/top/top_nls.c:371
+#, fuzzy
+msgid "Autogroup Nice Value"
+msgstr "Nice-Wert"
+
+#. Translation Hint: maximum 'STARTED' = 7
+#: src/top/top_nls.c:373
+msgid "STARTED"
+msgstr ""
+
+#: src/top/top_nls.c:374
+msgid "Start Time from boot"
+msgstr ""
+
+#. Translation Hint: maximum 'ELAPSED' = 7
+#: src/top/top_nls.c:376
+msgid "ELAPSED"
+msgstr ""
+
+#: src/top/top_nls.c:377
+msgid "Elapsed Running Time"
+msgstr ""
+
+#. Translation Hint: maximum '%CUU' = 6
+#: src/top/top_nls.c:379
+#, c-format
+msgid "%CUU"
+msgstr "%CUU"
+
+#: src/top/top_nls.c:380
+msgid "CPU Utilization"
+msgstr ""
+
+#. Translation Hint: maximum '%CUC' = 7
+#: src/top/top_nls.c:382
+#, c-format
+msgid "%CUC"
+msgstr "%CUC"
+
+#: src/top/top_nls.c:383
+msgid "Utilization + child"
+msgstr ""
+
+#. Translation Hint: maximum 'nsCGROUP' = 10 +
+#: src/top/top_nls.c:385
+#, fuzzy
+msgid "nsCGROUP"
+msgstr "CGROUPS"
+
+#: src/top/top_nls.c:386
+#, fuzzy
+msgid "CGRP namespace Inode"
+msgstr "Inode für IPC-Namensraum"
+
+#. Translation Hint: maximum 'nsTIME' = 10 +
+#: src/top/top_nls.c:388
+#, fuzzy
+msgid "nsTIME"
+msgstr "ZEIT"
+
+#: src/top/top_nls.c:389
+msgid "TIME namespace Inode"
+msgstr "TIME-Inode für IPC-Namensraum"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . This group of lines contains both plain text and c-format strings.
+#. .
+#. . Some strings reflect switches used to affect the running program
+#. . and should not be translated without also making corresponding
+#. . c-code logic changes.
+#. .
+#: src/top/top_nls.c:409
+#, c-format
+msgid ""
+"\tsignal %d (%s) was caught by %s, please\n"
+"\tsend bug reports to <procps@freelists.org>\n"
+msgstr ""
+"\tSignal %d (%s) wurde von %s empfangen, bitte\n"
+"\tFehlerbericht an <procps@freelists.org> senden\n"
+
+#: src/top/top_nls.c:439
+#, c-format
+msgid "bad delay interval '%s'"
+msgstr "ungültiges Verzögerungsintervall »%s«"
+
+#: src/top/top_nls.c:440
+#, c-format
+msgid "bad iterations argument '%s'"
+msgstr "Falsches Argument »%s« für Iterationen"
+
+#: src/top/top_nls.c:441
+#, c-format
+msgid "pid limit (%d) exceeded"
+msgstr "PID-Begrenzung (%d) überschritten"
+
+#: src/top/top_nls.c:442
+#, c-format
+msgid "bad pid '%s'"
+msgstr "ungültige PID »%s«"
+
+#: src/top/top_nls.c:443
+#, c-format
+msgid "-%c argument missing"
+msgstr "-%c-Argument fehlt"
+
+#: src/top/top_nls.c:444
+#, c-format
+msgid "bad width arg '%s'"
+msgstr "Falsches Breitenargument »%s«"
+
+#: src/top/top_nls.c:445
+#, c-format
+msgid "unknown option '%s'"
+msgstr "Unbekannte Option »%s«"
+
+#: src/top/top_nls.c:446
+msgid "-d disallowed in \"secure\" mode"
+msgstr "-d ist im »sicheren« Modus deaktiviert"
+
+#: src/top/top_nls.c:447
+msgid "-d requires positive argument"
+msgstr "-d benötigt ein positives Argument"
+
+#: src/top/top_nls.c:448
+msgid "On"
+msgstr "An"
+
+#: src/top/top_nls.c:449
+msgid "Off"
+msgstr "Aus"
+
+#: src/top/top_nls.c:450
+#, c-format
+msgid "%s from %s"
+msgstr "%s von %s"
+
+#: src/top/top_nls.c:451
+#, c-format
+msgid "Forest mode %s"
+msgstr "Baum-Modus %s"
+
+#: src/top/top_nls.c:452
+msgid "failed tty get"
+msgstr ""
+
+#: src/top/top_nls.c:453
+#, c-format
+msgid "failed tty set: %s"
+msgstr "Setzen des TTY fehlgeschlagen: %s"
+
+#: src/top/top_nls.c:454
+msgid "Choose field group (1 - 4)"
+msgstr "Feldgruppe wählen (1-4)"
+
+#: src/top/top_nls.c:455
+msgid "Command disabled, 'A' mode required"
+msgstr "Befehl deaktiviert, der A-Modus ist erforderlich"
+
+#: src/top/top_nls.c:456
+#, c-format
+msgid "Command disabled, activate %s with '-' or '_'"
+msgstr "Befehl ist deaktiviert, aktivieren Sie %s mit »-« oder »_«"
+
+#: src/top/top_nls.c:457
+msgid "No colors to map!"
+msgstr "Keine anwendbaren Farben!"
+
+#: src/top/top_nls.c:458
+#, c-format
+msgid "Failed '%s' open: %s"
+msgstr "Öffnen von »%s« ist fehlgeschlagen: %s"
+
+#: src/top/top_nls.c:459
+#, c-format
+msgid "Wrote configuration to '%s'"
+msgstr "Konfiguration wurde nach »%s« geschrieben"
+
+#: src/top/top_nls.c:460
+#, c-format
+msgid "Change delay from %.1f to"
+msgstr "Verzögerung von %.1f ändern auf"
+
+#: src/top/top_nls.c:461
+#, c-format
+msgid "Show threads %s"
+msgstr ""
+
+#: src/top/top_nls.c:462
+#, c-format
+msgid "Irix mode %s"
+msgstr "Irix-Modus %s"
+
+#: src/top/top_nls.c:463
+#, c-format
+msgid "PID to signal/kill [default pid = %d]"
+msgstr ""
+
+#: src/top/top_nls.c:464
+#, c-format
+msgid "Send pid %d signal [%d/sigterm]"
+msgstr ""
+
+#: src/top/top_nls.c:465
+#, c-format
+msgid "Failed signal pid '%d' with '%d': %s"
+msgstr ""
+
+#: src/top/top_nls.c:466
+msgid "Invalid signal"
+msgstr "Ungültiges Signal"
+
+#: src/top/top_nls.c:467
+#, c-format
+msgid "PID to renice [default pid = %d]"
+msgstr ""
+
+#: src/top/top_nls.c:468
+#, c-format
+msgid "Renice PID %d to value"
+msgstr ""
+
+#: src/top/top_nls.c:469
+#, c-format
+msgid "Failed renice of PID %d to %d: %s"
+msgstr ""
+
+#: src/top/top_nls.c:470
+#, c-format
+msgid "Rename window '%s' to (1-3 chars)"
+msgstr "Fenster »%s« umbenennen in (1-3 Zeichen)"
+
+#: src/top/top_nls.c:471
+#, c-format
+msgid "Cumulative time %s"
+msgstr "Kumulierte Zeit %s"
+
+#: src/top/top_nls.c:472
+#, c-format
+msgid "Maximum tasks = %d, change to (0 is unlimited)"
+msgstr ""
+
+#: src/top/top_nls.c:473
+msgid "Invalid maximum"
+msgstr "Ungültiges Maximum"
+
+#: src/top/top_nls.c:474
+msgid "Which user (blank for all)"
+msgstr "Welcher Benutzer (leer lassen für alle)"
+
+#: src/top/top_nls.c:475
+msgid "Unknown command - try 'h' for help"
+msgstr "Ungültiger Befehl. Geben Sie »h« ein für Hilfe."
+
+#: src/top/top_nls.c:476
+#, c-format
+msgid "scroll coordinates: y = %d/%d (tasks), x = %d/%d (fields)"
+msgstr "Bildlaufkoordinaten: y = %d/%d (Prozesse), x = %d/%d (Felder)"
+
+#: src/top/top_nls.c:477
+msgid "failed memory allocate"
+msgstr "Speicherzuweisung ist fehlgeschlagen"
+
+#: src/top/top_nls.c:478
+msgid "failed memory re-allocate"
+msgstr "erneute Speicherzuweisung ist fehlgeschlagen"
+
+#: src/top/top_nls.c:479
+msgid "Unacceptable floating point"
+msgstr "Fließkommaausnahme"
+
+#: src/top/top_nls.c:480
+msgid "Invalid user"
+msgstr "Ungültiger Benutzer"
+
+#: src/top/top_nls.c:481
+msgid "forest view"
+msgstr "Baumansicht"
+
+#: src/top/top_nls.c:482
+msgid "failed pid maximum size test"
+msgstr "Test für maximale PID-Größe fehlgeschlagen"
+
+#: src/top/top_nls.c:483
+msgid "failed number of cpus test"
+msgstr "Überprüfung der CPU-Anzahl ist fehlgeschlagen"
+
+#: src/top/top_nls.c:484
+#, c-format
+msgid "incompatible rcfile, you should delete '%s'"
+msgstr "ungültige Konfigurationsdatei, Sie sollten »%s« löschen"
+
+#: src/top/top_nls.c:485
+#, c-format
+msgid "window entry #%d corrupt, please delete '%s'"
+msgstr "Fenstereintrag #%d beschädigt, bitte löschen Sie »%s«"
+
+#: src/top/top_nls.c:486
+msgid "Unavailable in secure mode"
+msgstr "Im Sicherheitsmodus nicht verfügbar"
+
+#: src/top/top_nls.c:487
+msgid "Only 1 cpu detected"
+msgstr "nNur eine CPU wurde erkannt"
+
+#: src/top/top_nls.c:488
+msgid "Unacceptable integer"
+msgstr "Ungültige Ganzzahl"
+
+#: src/top/top_nls.c:489
+msgid "conflicting process selections (U/p/u)"
+msgstr "widersprüchliche Prozessauswahlen (U/p/u)"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . kibibytes (1024 bytes)
+#: src/top/top_nls.c:492
+msgid "KiB"
+msgstr "KiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . mebibytes (1,048,576 bytes)
+#: src/top/top_nls.c:495
+msgid "MiB"
+msgstr "MiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . gibibytes (1,073,741,824 bytes)
+#: src/top/top_nls.c:498
+msgid "GiB"
+msgstr "GiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . tebibytes (1,099,511,627,776 bytes)
+#: src/top/top_nls.c:501
+msgid "TiB"
+msgstr "TiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . pebibytes (1,024 tebibytes)
+#: src/top/top_nls.c:504
+msgid "PiB"
+msgstr "PiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . exbibytes (1,024 pebibytes)
+#: src/top/top_nls.c:507
+msgid "EiB"
+msgstr "EiB"
+
+#: src/top/top_nls.c:508
+msgid "Threads"
+msgstr "Threads"
+
+#: src/top/top_nls.c:509
+msgid "Tasks"
+msgstr "Tasks"
+
+#. Translation Hint: The following "word" is meant to represent either a single
+#. . cpu or all of the processors in a multi-processor computer
+#. . (should be exactly 6 characters, excluding leading % & colon)
+#: src/top/top_nls.c:513
+#, c-format
+msgid "%Cpu(s):"
+msgstr "%CPU(s):"
+
+#. Translation Hint: The following "word" is meant to represent a single processor
+#. and 'the Cp' prefix will be combined with a core id: 'p', 'e' or 'u'
+#. . (if 'Cp' is translated, it must be exactly 2 characters long)
+#: src/top/top_nls.c:517
+#, c-format
+msgid "%%Cp%c%-3d:"
+msgstr "%%Cp%c%-3d:"
+
+#. Translation Hint: The following word "another" must have 1 trailing space
+#: src/top/top_nls.c:519
+msgid "another "
+msgstr "andere "
+
+#: src/top/top_nls.c:520
+msgid "Locate next inactive, use \"L\""
+msgstr ""
+
+#: src/top/top_nls.c:521
+msgid "Locate string"
+msgstr ""
+
+#: src/top/top_nls.c:522
+#, c-format
+msgid "%s\"%s\" not found"
+msgstr "%s»%s« nicht gefunden"
+
+#: src/top/top_nls.c:523
+#, c-format
+msgid "width incr is %d, change to (0 default, -1 auto)"
+msgstr ""
+
+#: src/top/top_nls.c:524
+msgid "rcfile has inspect/other-filter error(s), save anyway?"
+msgstr ""
+
+#: src/top/top_nls.c:525
+#, c-format
+msgid "unrecognized field name '%s'"
+msgstr "nicht erkannter Feldname »%s«"
+
+#: src/top/top_nls.c:526
+msgid "even using field names only, window is now too small"
+msgstr "selbst nur mit Feldnamen ist das Fenster jetzt zu klein"
+
+#: src/top/top_nls.c:527
+msgid "Open Files"
+msgstr "Offene Dateien"
+
+#: src/top/top_nls.c:528
+msgid "NUMA Info"
+msgstr "NUMA-Info"
+
+#: src/top/top_nls.c:529
+msgid "Log"
+msgstr "Protokoll"
+
+#: src/top/top_nls.c:530
+msgid ""
+"the '=' key will eventually show the actual file read or command(s) "
+"executed ..."
+msgstr ""
+"Die Taste »=« zeigt eventuell die tatsächlich gelesene Datei oder den/die "
+"ausgeführte(n) Befehl(e) …"
+
+#: src/top/top_nls.c:531
+msgid "demo"
+msgstr "Demo"
+
+#: src/top/top_nls.c:532
+#, c-format
+msgid ""
+"This is simulated output representing the contents of some file or the "
+"output\n"
+"from some command. Exactly which commands and/or files are solely up to "
+"you.\n"
+"\n"
+"Although this text is for information purposes only, it can still be "
+"scrolled\n"
+"and searched like real output will be. You are encouraged to experiment "
+"with\n"
+"those features as explained in the prologue above.\n"
+"\n"
+"To enable real Inspect functionality, entries must be added to the end of "
+"the\n"
+"top personal personal configuration file. You could use your favorite "
+"editor\n"
+"to accomplish this, taking care not to disturb existing entries.\n"
+"\n"
+"Another way to add entries is illustrated below, but it risks overwriting "
+"the\n"
+"rcfile. Redirected echoes must not replace (>) but append (>>) to that "
+"file.\n"
+"\n"
+" /bin/echo -e \"pipe\\tOpen Files\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+" /bin/echo -e \"file\\tNUMA Info\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+" /bin/echo -e \"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr\" >> ~/."
+"toprc\n"
+"\n"
+"If you don't know the location or name of the top rcfile, use the 'W' "
+"command\n"
+"and note those details. After backing up the current rcfile, try issuing "
+"the\n"
+"above echoes exactly as shown, replacing '.toprc' as appropriate. The "
+"safest\n"
+"approach would be to use copy then paste to avoid any typing mistakes.\n"
+"\n"
+"Finally, restart top to reveal what actual Inspect entries combined with "
+"this\n"
+"new command can offer. The possibilities are endless, especially "
+"considering\n"
+"that 'pipe' type entries can include shell scripts too!\n"
+"\n"
+"For additional important information, please consult the top(1) man "
+"document.\n"
+"Then, enhance top with your very own customized 'file' and/or 'pipe' "
+"entries.\n"
+"\n"
+"Enjoy!\n"
+msgstr ""
+"Dies ist eine simulierte Ausgabe, die den Inhalt einer Datei oder die "
+"Ausgabe\n"
+"eines Befehls darstellt. Die genauen Befehle und/oder Dateien sind Ihre "
+"Sache.\n"
+"\n"
+"Obwohl dieser Text nur informativen Zwecken dient, kann er wie eine echte "
+"Ausgabe\n"
+"durchsucht werden. Experimentieren Sie ruhig damit, wie oben beschrieben.\n"
+"\n"
+"Um eine echte Inspektions-Funktionalität zu aktivieren, müssen Einträge am\n"
+"Ende der persönlichen top-Konfigurationsdatei hinzugefügt werden. Sie "
+"können\n"
+"dazu Ihren bevorzugten Editor verwenden. Achten Sie bitte darauf, "
+"vorhandene\n"
+"Einträge nicht zu verändern.\n"
+"\n"
+"Ein weiterer Weg zum Hinzufügen von Einträgen ist nachfolgend beschrieben,\n"
+"aber Sie riskieren dabei, dass die Konfigurationsdatei überschrieben wird.\n"
+"Zurückgeführte Echos dürfen diese Datei nicht ersetzen (>), sondern müssen\n"
+"angehängt werden.\n"
+"\n"
+" /bin/echo -e \"pipe\\tOpen Files\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+" /bin/echo -e \"file\\tNUMA Info\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+" /bin/echo -e \"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr\" >> ~/."
+"toprc\n"
+"\n"
+"Falls Sie den Ort oder den Namen der top-Konfigurationsdatei nicht kennen,\n"
+"verwenden Sie den Befehl »W« und schauen Sie nach den ausgegebenen Details.\n"
+"Versuchen Sie nach dem Sichern der aktuellen Konfigurationsdatei, versuchen\n"
+"Sie die obigen Echos exakt wie angezeigt auszugeben, unter entsprechender\n"
+"Ersetzung von ».toprc«. Der sicherste Weg wäre mittels Kopieren und "
+"Einfügen,\n"
+"um eventuelle Tippfehler zu vermeiden.\n"
+"Zum Schluss starten Sie top neu, um zu sehen, welche neuen Befehle mit "
+"diesen\n"
+"neuen Inspektions-Einträgen nun möglich sind. Die Möglichkeiten sind "
+"unbegrenzt,\n"
+"speziell im Hinblick darauf, dass Einträge des Typs »pipe« auch Shell-"
+"Skripte\n"
+"enthalten können!\n"
+"Weitere wichtige Informationen finden Sie in der Handbuchseite man(1). "
+"Erstellen\n"
+"Sie »Ihr« top mit benutzerdefinierten Einträgen der Typen »file« und "
+"»pipe«.\n"
+"\n"
+"Viel Spaß!\n"
+
+#: src/top/top_nls.c:564
+msgid "to enable 'Y' press <Enter> then type 'W' and restart top"
+msgstr ""
+"Um »Y« zu aktivieren, drücken Sie die Eingabetaste, geben »W« ein und "
+"starten top neu"
+
+#: src/top/top_nls.c:565
+msgid "to enable 'Y' please consult the top man page (press Enter)"
+msgstr ""
+"Lesen Sie in der Handbuchseite zu top(1), wie Sie die Option »Y« aktivieren "
+"können (Eingabetaste drücken)"
+
+#: src/top/top_nls.c:566
+#, c-format
+msgid "Selection failed with: %s\n"
+msgstr "Auswahl fehlgeschlagen mit: %s\n"
+
+#: src/top/top_nls.c:567
+#, c-format
+msgid "unable to inspect, pid %d not found"
+msgstr "Untersuchung nicht möglich, PID %d nicht gefunden"
+
+#: src/top/top_nls.c:568
+#, c-format
+msgid "inspect at PID [default pid = %d]"
+msgstr ""
+
+#: src/top/top_nls.c:569
+#, c-format
+msgid "%s: %*d-%-*d lines, %*d-%*d columns, %lu bytes read"
+msgstr "%s: %*d-%-*d Zeilen, %*d-%*d Spalten, %lu Bytes gelesen"
+
+#: src/top/top_nls.c:570
+msgid "patience please, working ..."
+msgstr "Bitte warten Sie, wird ausgeführt …"
+
+#: src/top/top_nls.c:571
+msgid "working, use Ctrl-C to end ..."
+msgstr "Wird ausgeführt, Strg-C zum Beenden …"
+
+#. Translation Hint: Below are 2 abbreviations which can be as long as needed:
+#. . FLD = FIELD, VAL = VALUE
+#: src/top/top_nls.c:574
+#, c-format
+msgid "add filter #%d (%s) as: [!]FLD?VAL"
+msgstr "Filter #%d (%s) hinzufügen als: [!]FELD?WERT"
+
+#: src/top/top_nls.c:575
+msgid "ignoring case"
+msgstr "Groß-/Kleinschreibung ignorieren"
+
+#: src/top/top_nls.c:576
+msgid "case sensitive"
+msgstr "Groß-/Kleinschreibung"
+
+#: src/top/top_nls.c:577
+msgid "duplicate filter was ignored"
+msgstr "Filterduplikat wurde ignoriert"
+
+#: src/top/top_nls.c:578
+#, c-format
+msgid "'%s' filter delimiter is missing"
+msgstr "Filter-Trennzeichen »%s« fehlt"
+
+#: src/top/top_nls.c:579
+#, c-format
+msgid "'%s' filter value is missing"
+msgstr "Filterwert »%s« fehlt"
+
+#: src/top/top_nls.c:580
+msgid "include"
+msgstr "einschließen"
+
+#: src/top/top_nls.c:581
+msgid "exclude"
+msgstr "ausschließen"
+
+#: src/top/top_nls.c:582
+#, c-format
+msgid "<Enter> to resume, filters: %s"
+msgstr "<Eingabe> zum Fortsetzen, Filter: %s"
+
+#: src/top/top_nls.c:583
+msgid "none"
+msgstr "keine"
+
+#. Translation Hint: The following word 'Node' should be exactly
+#. 4 characters, excluding leading %%, fmt chars & colon)
+#: src/top/top_nls.c:586
+#, c-format
+msgid "%%Node%-2d:"
+msgstr "%%Node%-2d:"
+
+#: src/top/top_nls.c:587
+#, c-format
+msgid "expand which numa node (0-%d)"
+msgstr ""
+
+#: src/top/top_nls.c:588
+msgid "invalid numa node"
+msgstr "ungültiger NUMA-Knoten"
+
+#: src/top/top_nls.c:589
+msgid "sorry, NUMA extensions unavailable"
+msgstr "Entschuldigung, NUMA-Erweiterungen sind nicht verfügbar"
+
+#. Translation Hint: 'Mem ' is an abbreviation for physical memory/ram
+#. . 'Swap' represents the linux swap file --
+#. . please make both translations exactly 4 characters,
+#. . padding with extra spaces as necessary
+#: src/top/top_nls.c:594
+msgid "Mem "
+msgstr "Spch"
+
+#: src/top/top_nls.c:595
+msgid "Swap"
+msgstr "Swap"
+
+#: src/top/top_nls.c:596
+#, c-format
+msgid "library failed memory statistics, at %d: %s"
+msgstr ""
+
+#: src/top/top_nls.c:597
+#, c-format
+msgid "library failed cpu statistics, at %d: %s"
+msgstr ""
+
+#: src/top/top_nls.c:598
+#, c-format
+msgid "library failed pids statistics, at %d: %s"
+msgstr ""
+
+#: src/top/top_nls.c:599
+#, c-format
+msgid "bad memory scaling arg '%s'"
+msgstr "Falsches Argument »%s« für Speicherskalierung"
+
+#: src/top/top_nls.c:600
+#, c-format
+msgid "PID to collapse/expand [default pid = %d]"
+msgstr ""
+
+#: src/top/top_nls.c:601
+msgid "wrong mode, command inactive"
+msgstr "Falscher Modus, Befehl inaktiv"
+
+#: src/top/top_nls.c:602
+msgid "saving prevents older top from reading, save anyway?"
+msgstr "Speichern hindert ältere Top-Versionen am Lesen, trotzdem fortsetzen?"
+
+#: src/top/top_nls.c:603
+#, fuzzy, c-format
+msgid "failed sem_init() at %d: %s"
+msgstr "Setzen des TTY fehlgeschlagen: %s"
+
+#: src/top/top_nls.c:604
+#, fuzzy, c-format
+msgid "failed pthread_create() at %d: %s"
+msgstr "/proc/stat konnte nicht gelesen werden: %s"
+
+#: src/top/top_nls.c:605
+msgid "sorry, restricted namespace with reduced functionality"
+msgstr ""
+
+#: src/top/top_nls.c:606
+#, c-format
+msgid "set pid %d AGNI value to"
+msgstr ""
+
+#: src/top/top_nls.c:607
+msgid "valid AGNI range is -20 to +19"
+msgstr ""
+
+#: src/top/top_nls.c:608
+#, fuzzy, c-format
+msgid "autogroup open failed, %s"
+msgstr "Datei »%s« konnte nicht geöffnet werden"
+
+#: src/top/top_nls.c:609
+#, c-format
+msgid "autogroup write failed, %s"
+msgstr ""
+
+#: src/top/top_nls.c:610
+#, c-format
+msgid "command line for pid %d, %s"
+msgstr "Befehlszeile für PID %d, %s"
+
+#: src/top/top_nls.c:611
+#, c-format
+msgid "control groups for pid %d, %s"
+msgstr "Kontrollgruppen für PID %d, %s"
+
+#: src/top/top_nls.c:612
+#, c-format
+msgid "environment for pid %d, %s"
+msgstr "Umgebung für PID %d, %s"
+
+#: src/top/top_nls.c:613
+#, c-format
+msgid "namespaces for pid %d, %s"
+msgstr "Namensräume für PID %d, %s"
+
+#: src/top/top_nls.c:614
+msgid "n/a"
+msgstr "n. v."
+
+#: src/top/top_nls.c:615
+#, c-format
+msgid "supplementary groups for pid %d, %s"
+msgstr "Ergänzende Gruppen für PID %d, %s"
+
+#: src/top/top_nls.c:616
+msgid "message log, last 10 messages:"
+msgstr "Meldungsprotokoll, letzte 10 Meldungen:"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The next several text groups contain special escape sequences
+#. . representing values used to index a table at run-time.
+#. .
+#. . Each such sequence consists of a tilde (~) followed by an ascii
+#. . number in the range of '1' - '8'. Examples are '~2', '~8', etc.
+#. . These escape sequences must never themselves be translated but
+#. . could be deleted.
+#. .
+#. . If you remove these escape sequences (both tilde and number) it
+#. . would make translation easier. However, the ability to display
+#. . colors and bold text at run-time will have been lost.
+#. .
+#. . Additionally, each of these text groups was designed to display
+#. . in a 80x24 terminal window. Hopefully, any translations will
+#. . adhere to that goal lest the translated text be truncated.
+#. .
+#. . If you would like additional information regarding these strings,
+#. . please see the prologue to the show_special function in the top.c
+#. . source file.
+#. .
+#. . Caution:
+#. . The next three items represent pages for interacting with a user.
+#. . In all cases, the last lines of text must be treated with care.
+#. .
+#. . They must not end with a newline character so that at runtime the
+#. . cursor will remain on that final text line.
+#. .
+#. . Also, the special sequences (tilde+number) must not appear on the
+#. . last line (the one without the newline). So please avoid any line
+#. . wraps that could place them there.
+#. .
+#: src/top/top_nls.c:661
+#, c-format
+msgid ""
+"Help for Interactive Commands~2 - %s\n"
+"Window ~1%s~6: ~1Cumulative mode ~3%s~2. ~1System~6: ~1Delay ~3%.1f secs~2; "
+"~1Secure mode ~3%s~2.\n"
+"\n"
+" Z~5,~1B~5,E,e Global: '~1Z~2' colors; '~1B~2' bold; '~1E~2'/'~1e~2' "
+"summary/task memory scale\n"
+" l,t,m,I,0 Toggle: '~1l~2' load avg; '~1t~2' task/cpu; '~1m~2' memory; "
+"'~1I~2' Irix; '~10~2' zeros\n"
+" 1,2,3,4,5 Toggle: '~11~2/~12~2/~13~2' cpu/numa views; '~14~2' cpus "
+"abreast; '~15~2' P/E-cores\n"
+" f,X Fields: '~1f~2' add/remove/order/sort; '~1X~2' increase fixed-"
+"width fields\n"
+"\n"
+" L,&,<,> . Locate: '~1L~2'/'~1&~2' find/again; Move sort column: "
+"'~1<~2'/'~1>~2' left/right\n"
+" R,H,J,C . Toggle: '~1R~2' Sort; '~1H~2' Threads; '~1J~2' Num justify; "
+"'~1C~2' Coordinates\n"
+" c,i,S,j . Toggle: '~1c~2' Cmd name/line; '~1i~2' Idle; '~1S~2' Time; "
+"'~1j~2' Str justify\n"
+" x~5,~1y~5 . Toggle highlights: '~1x~2' sort field; '~1y~2' running "
+"tasks\n"
+" z~5,~1b~5 . Toggle: '~1z~2' color/mono; '~1b~2' bold/reverse (only if "
+"'x' or 'y')\n"
+" u,U,o,O . Filter by: '~1u~2'/'~1U~2' effective/any user; '~1o~2'/'~1O~2' "
+"other criteria\n"
+" n,#,^O . Set: '~1n~2'/'~1#~2' max tasks displayed; Show: ~1Ctrl~2+'~1O~2' "
+"other filter(s)\n"
+" V,v,F . Toggle: '~1V~2' forest view; '~1v~2' hide/show children; '~1F~2' "
+"keep focused\n"
+"\n"
+"%s ^G,K,N,U View: ctl groups ~1^G~2; cmdline ~1^K~2; environment ~1^N~2; "
+"supp groups ~1^U~2\n"
+" Y,!,^E,P Inspect '~1Y~2'; Combine Cpus '~1!~2'; Scale time ~1^E~2; View "
+"namespaces ~1^P~2\n"
+" W,q Write config file '~1W~2'; Quit '~1q~2'\n"
+" ( commands shown with '.' require a ~1visible~2 task display "
+"~1window~2 ) \n"
+"Press '~1h~2' or '~1?~2' for help with ~1Windows~2,\n"
+"Type 'q' or <Esc> to continue "
+msgstr ""
+
+#: src/top/top_nls.c:687
+#, c-format
+msgid ""
+"Help for Windows / Field Groups~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+". Use multiple ~1windows~2, each with separate config opts (color,fields,"
+"sort,etc)\n"
+". The 'current' window controls the ~1Summary Area~2 and responds to your "
+"~1Commands~2\n"
+" . that window's ~1task display~2 can be turned ~1Off~2 & ~1On~2, growing/"
+"shrinking others\n"
+" . with ~1NO~2 task display, some commands will be ~1disabled~2 "
+"('i','R','n','c', etc)\n"
+" until a ~1different window~2 has been activated, making it the 'current' "
+"window\n"
+". You ~1change~2 the 'current' window by: ~1 1~2) cycling forward/backward;"
+"~1 2~2) choosing\n"
+" a specific field group; or~1 3~2) exiting the color mapping or fields "
+"screens\n"
+". Commands ~1available anytime -------------~2\n"
+" A . Alternate display mode toggle, show ~1Single~2 / ~1Multiple~2 "
+"windows\n"
+" g . Choose another field group and make it 'current', or change "
+"now\n"
+" by selecting a number from: ~1 1~2 =%s;~1 2~2 =%s;~1 3~2 =%s; "
+"or~1 4~2 =%s\n"
+". Commands ~1requiring~2 '~1A~2' mode~1 -------------~2\n"
+" G . Change the ~1Name~5 of the 'current' window/field group\n"
+" ~1*~4 a , w . Cycle through all four windows: '~1a~5' Forward; '~1w~5' "
+"Backward\n"
+" ~1*~4 - , _ . Show/Hide: '~1-~5' ~1Current~2 window; '~1_~5' all "
+"~1Visible~2/~1Invisible~2\n"
+" The screen will be divided evenly between task displays. But you can "
+"make\n"
+" some ~1larger~2 or ~1smaller~2, using '~1n~2' and '~1i~2' commands. Then "
+"later you could:\n"
+" ~1*~4 = , + . Rebalance tasks: '~1=~5' ~1Current~2 window; '~1+~5' "
+"~1Every~2 window\n"
+" (this also forces the ~1current~2 or ~1every~2 window to "
+"become visible)\n"
+"\n"
+"In '~1A~2' mode, '~1*~4' keys are your ~1essential~2 commands. Please try "
+"the '~1a~2' and '~1w~2'\n"
+"commands plus the 'g' sub-commands NOW. Press <Enter> to make 'Current' "
+msgstr ""
+
+#. Translation Notes ------------------------------------------------
+#. . The following 'Help for color mapping' simulated screen should
+#. . probably NOT be translated. It is terribly hard to follow in
+#. . this form and any translation could produce unpleasing results
+#. . that are unlikely to parallel the running top program.
+#. .
+#. . If you decide to proceed with translation, please take care
+#. . to not disturb the spaces and the tilde + number delimiters.
+#. .
+#: src/top/top_nls.c:722
+#, c-format
+msgid ""
+"Help for color mapping~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+" color - 04:25:44 up 8 days, 50 min, 7 users, load average:\n"
+" Tasks:~3 64 ~2total,~3 2 ~3running,~3 62 ~2sleeping,~3 0 ~2stopped,"
+"~3\n"
+" %%Cpu(s):~3 76.5 ~2user,~3 11.2 ~2system,~3 0.0 ~2nice,~3 12.3 "
+"~2idle~3\n"
+" ~1 Nasty Message! ~4 -or- ~1Input Prompt~5\n"
+" ~1 PID TTY PR NI %%CPU TIME+ VIRT SWAP S COMMAND ~6\n"
+" 17284 ~8pts/2 ~7 8 0 0.0 0:00.75 1380 0 S /bin/bash ~8\n"
+" ~1 8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z~7\n"
+" 11005 ~8? ~7 9 0 0.0 0:02.50 2852 1008 S amor -sessi~8\n"
+" available toggles: ~1B~2 =disable bold globally (~1%s~2),\n"
+" ~1z~2 =color/mono (~1%s~2), ~1b~2 =tasks \"bold\"/reverse (~1%s~2)\n"
+"\n"
+"1) Select a ~1target~2 as an upper case letter, ~1current target~2 is ~1 %c "
+"~4:\n"
+" S~2 = Summary Data,~1 M~2 = Messages/Prompts,\n"
+" H~2 = Column Heads,~1 T~2 = Task Information\n"
+"2) Select a ~1color~2 as a number or use the up/down arrow keys\n"
+" to raise/lower the %d colors value, ~1current color~2 is ~1 %d ~4:\n"
+" 0~2 = black,~1 1~2 = red, ~1 2~2 = green,~1 3~2 = yellow,\n"
+" 4~2 = blue, ~1 5~2 = magenta,~1 6~2 = cyan, ~1 7~2 = white\n"
+"\n"
+"3) Then use these keys when finished:\n"
+" 'q' or <Esc> to abort changes to window '~1%s~2'\n"
+" 'a' or 'w' to commit & change another, <Enter> to commit and end "
+msgstr ""
+
+#. Translation Hint: As is true for the text above, the "keys" shown to the left and
+#. . also embedded in the translatable text (along with escape seqs)
+#. . should never themselves be translated.
+#: src/top/top_nls.c:751
+msgid ""
+" d,k,r,^R '~1d~2' set delay; '~1k~2' kill; '~1r~2' renice; ~1Ctrl~2+'~1R~2' "
+"renice autogroup\n"
+msgstr ""
+
+#. Translation Hint:
+#. . This Fields Management header should be 3 lines long so as
+#. . to allow 1 blank line before the fields & descriptions.
+#. . If absolutely necessary, 4 lines could be used (but never more).
+#. .
+#: src/top/top_nls.c:759
+#, c-format
+msgid ""
+"Fields Management~2 for window ~1%s~6, whose current sort field is ~1%s~2\n"
+" Navigate with Up/Dn, Right selects for move then <Enter> or Left "
+"commits,\n"
+" 'd' or <Space> toggles display, 's' sets sort. Use 'q' or <Esc> to end!\n"
+msgstr ""
+
+#. Translation Hint:
+#. . The next 5 items must each be translated as a single line.
+#. .
+#: src/top/top_nls.c:767
+#, c-format
+msgid ""
+"%s:~3 %3u ~2total,~3 %3u ~2running,~3 %3u ~2sleeping,~3 %3u ~2stopped,~3 %3u "
+"~2zombie~3\n"
+msgstr ""
+
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt
+#: src/top/top_nls.c:773
+#, c-format
+msgid ""
+"%s~3 %#5.1f ~2us,~3 %#5.1f ~2sy,~3 %#5.1f ~2ni,~3 %#5.1f ~2id,~3 %#5.1f ~2wa,"
+"~3 %#5.1f ~2hi,~3 %#5.1f ~2si~3 ~1"
+msgstr ""
+
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt, st = steal time
+#: src/top/top_nls.c:779
+#, c-format
+msgid ""
+"%s~3%#5.1f ~2us,~3%#5.1f ~2sy,~3%#5.1f ~2ni,~3%#5.1f ~2id,~3%#5.1f ~2wa,"
+"~3%#5.1f ~2hi,~3%#5.1f ~2si,~3%#5.1f ~2st~3 ~1"
+msgstr ""
+
+#. Translation Hint: next 2 must be treated together, with WORDS above & below aligned
+#: src/top/top_nls.c:783
+#, c-format
+msgid ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used,~3 %9.9s~2buff/cache~3 "
+"~1 "
+msgstr ""
+
+#: src/top/top_nls.c:785
+#, c-format
+msgid ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used.~3 %9.9s~2avail %s~3"
+msgstr ""
+
+#. Translation Hint:
+#. . The next 2 headers for 'Inspection' must each be 3 lines or less
+#. .
+#: src/top/top_nls.c:791
+#, c-format
+msgid ""
+"Inspection~2 Pause at: pid ~1%d~6, running ~1%s~6\n"
+"Use~2: left/right then <Enter> to ~1select~5 an option; 'q' or <Esc> to "
+"~1end~5 !\n"
+"Options~2: ~1%s\n"
+msgstr ""
+
+#: src/top/top_nls.c:796
+#, c-format
+msgid ""
+"Inspection~2 View at pid: ~1%s~3, running ~1%s~3. Locating: ~1%s~6\n"
+"Use~2: left/right/up/down/etc to ~1navigate~5 the output; 'L'/'&' to "
+"~1locate~5/~1next~5.\n"
+"Or~2: <Enter> to ~1select another~5; 'q' or <Esc> to ~1end~5 !\n"
+msgstr ""
+
+#: src/uptime.c:51 src/uptime.c:123
+msgid "Cannot get system uptime"
+msgstr ""
+
+#: src/uptime.c:67
+msgid " -p, --pretty show uptime in pretty format\n"
+msgstr " -p, --pretty Betriebszeit in ansehnlichem Format anzeigen\n"
+
+#: src/uptime.c:69
+msgid " -s, --since system up since\n"
+msgstr " -s, --since System in Betrieb seit\n"
+
+#: src/vmstat.c:220
+#, c-format
+msgid " %s [options] [delay [count]]\n"
+msgstr " %s [Optionen] [Verzögerung [Anzahl]]\n"
+
+#: src/vmstat.c:223
+msgid " -a, --active active/inactive memory\n"
+msgstr " -a, --active aktiver/inaktiver Speicher\n"
+
+#: src/vmstat.c:224
+msgid " -f, --forks number of forks since boot\n"
+msgstr " -f, --forks Anzahl der Forks seit dem Systemstart\n"
+
+#: src/vmstat.c:225
+msgid " -m, --slabs slabinfo\n"
+msgstr " -m, --slabs Slab-Info\n"
+
+#: src/vmstat.c:226
+msgid " -n, --one-header do not redisplay header\n"
+msgstr " -n, --one-header Header nicht erneut anzeigen\n"
+
+#: src/vmstat.c:227
+msgid " -s, --stats event counter statistics\n"
+msgstr " -s, --stats Ereigniszähler-Statistiken\n"
+
+#: src/vmstat.c:228
+msgid " -d, --disk disk statistics\n"
+msgstr " -d, --disk Laufwerksstatistiken\n"
+
+#: src/vmstat.c:229
+msgid " -D, --disk-sum summarize disk statistics\n"
+msgstr " -D, --disk-sum Laufwerksstatistiken zusammenfassen\n"
+
+#: src/vmstat.c:230
+msgid " -p, --partition <dev> partition specific statistics\n"
+msgstr " -p, --partition <dev> partitionsspezifische Statistiken\n"
+
+#: src/vmstat.c:231
+msgid " -S, --unit <char> define display unit\n"
+msgstr " -S, --unit <Zeichen> Anzeigeeinheit festlegen\n"
+
+#: src/vmstat.c:232
+msgid " -w, --wide wide output\n"
+msgstr " -w, --wide breite Ausgabe\n"
+
+#: src/vmstat.c:233
+msgid " -t, --timestamp show timestamp\n"
+msgstr " -t, --timestamp Zeitstempel anzeigen\n"
+
+#: src/vmstat.c:234
+msgid " -y, --no-first skips first line of output\n"
+msgstr " -y, --no-first erste Zeile der Ausgabe unterdrücken\n"
+
+#: src/vmstat.c:253
+#, fuzzy
+msgid ""
+"procs -----------memory---------- ---swap-- -----io---- -system-- -------"
+"cpu-------"
+msgstr ""
+"Disk- ----------------Lesevorgänge--------------- ---------------"
+"Schreibvorgänge------------- ------E/A------"
+
+#: src/vmstat.c:255
+#, fuzzy
+msgid ""
+"--procs-- -----------------------memory---------------------- ---swap-- -----"
+"io---- -system-- ----------cpu----------"
+msgstr ""
+"Disk- ----------------Lesevorgänge--------------- ---------------"
+"Schreibvorgänge------------- ------E/A------"
+
+#: src/vmstat.c:256 src/vmstat.c:619
+msgid " -----timestamp-----"
+msgstr " ----Zeitstempel----"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:275
+msgid "r"
+msgstr "r"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:277
+msgid "b"
+msgstr "b"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:279
+msgid "swpd"
+msgstr "swpd"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:281
+msgid "free"
+msgstr "frei"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:283
+msgid "inact"
+msgstr "inakt"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:285
+msgid "buff"
+msgstr "buff"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:287
+msgid "active"
+msgstr "aktiv"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:289
+msgid "cache"
+msgstr "Cache"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:291
+msgid "si"
+msgstr "si"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:293
+msgid "so"
+msgstr "so"
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:295
+msgid "bi"
+msgstr "bi"
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:297
+msgid "bo"
+msgstr "bo"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:299
+msgid "in"
+msgstr "in"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:301
+msgid "cs"
+msgstr "cs"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:303
+msgid "us"
+msgstr "us"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:305
+msgid "sy"
+msgstr "sy"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:307
+msgid "id"
+msgstr "id"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:309
+msgid "wa"
+msgstr "wa"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:311
+msgid "st"
+msgstr "st"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:313
+msgid "gu"
+msgstr ""
+
+#: src/vmstat.c:374 src/vmstat.c:870
+msgid "Unable to create vmstat structure"
+msgstr "Vmstat-Struktur konnte nicht angelegt werden"
+
+#: src/vmstat.c:376 src/vmstat.c:866 src/vmstat.c:919
+msgid "Unable to create system stat structure"
+msgstr ""
+
+#: src/vmstat.c:380
+msgid "Unable to get uptime"
+msgstr "Systemlaufzeit konnte nicht ermittelt werden"
+
+#: src/vmstat.c:391 src/vmstat.c:472 src/vmstat.c:874
+msgid "Unable to select memory information"
+msgstr "Speicherinformation konnte nicht ermittelt werden"
+
+#: src/vmstat.c:405 src/vmstat.c:458 src/vmstat.c:868
+msgid "Unable to select stat information"
+msgstr ""
+
+#. Translation Hint: Translating folloging disk partition
+#. * header fields that follow (marked with max x chars) might
+#. * not work, unless manual page is translated as well.
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:565
+msgid "reads"
+msgstr "gelesen"
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:567
+msgid "read sectors"
+msgstr ""
+"gelesene\n"
+"Sektoren"
+
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:569
+msgid "writes"
+msgstr "geschrieben"
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:571
+msgid "requested writes"
+msgstr ""
+"angeforderte\n"
+"Schreibvorgänge"
+
+#: src/vmstat.c:584 src/vmstat.c:687 src/vmstat.c:813
+msgid "Unable to create diskstat structure"
+msgstr ""
+
+#: src/vmstat.c:587 src/vmstat.c:593
+#, c-format
+msgid "Disk/Partition %s not found"
+msgstr "Platte/Partition %s wurde nicht gefunden"
+
+#: src/vmstat.c:616
+msgid ""
+"disk- ------------reads------------ ------------writes----------- -----"
+"IO------"
+msgstr ""
+"Disk- ---------Lesevorgänge-------- --------Schreibvorgänge------ ------E/"
+"A----"
+
+#: src/vmstat.c:618
+msgid ""
+"disk- -------------------reads------------------- -------------------"
+"writes------------------ ------IO-------"
+msgstr ""
+"Disk- ----------------Lesevorgänge--------------- ---------------"
+"Schreibvorgänge------------- ------E/A------"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:637 src/vmstat.c:645
+msgid "total"
+msgstr "gesamt"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:639 src/vmstat.c:647
+msgid "merged"
+msgstr ""
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:641 src/vmstat.c:649
+msgid "sectors"
+msgstr "Sektoren"
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:643 src/vmstat.c:651
+msgid "ms"
+msgstr "ms"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:653
+msgid "cur"
+msgstr "cur"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:655
+msgid "sec"
+msgstr "s"
+
+#: src/vmstat.c:694 src/vmstat.c:815
+msgid "Unable to retrieve disk statistics"
+msgstr ""
+
+#. Translation Hint: Translating folloging slab fields that
+#. * follow (marked with max x chars) might not work, unless
+#. * manual page is translated as well.
+#. Translation Hint: max 24 chars
+#: src/vmstat.c:741
+msgid "Cache"
+msgstr "Cache"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:743
+msgid "Num"
+msgstr "Num"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:745
+msgid "Total"
+msgstr "Gesamt"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:747
+msgid "Size"
+msgstr "Größe"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:749
+msgid "Pages"
+msgstr "Seiten"
+
+#: src/vmstat.c:836
+#, c-format
+msgid "%13d disks\n"
+msgstr "%13d Laufwerke\n"
+
+#: src/vmstat.c:837
+#, c-format
+msgid "%13d partitions\n"
+msgstr "%13d Partitionen\n"
+
+#: src/vmstat.c:838
+#, c-format
+msgid "%13lu total reads\n"
+msgstr "%13lu Lesevorgänge gesamt\n"
+
+#: src/vmstat.c:839
+#, c-format
+msgid "%13lu merged reads\n"
+msgstr ""
+
+#: src/vmstat.c:840
+#, c-format
+msgid "%13lu read sectors\n"
+msgstr "%13lu gelesene Sektoren\n"
+
+#: src/vmstat.c:841
+#, c-format
+msgid "%13lu milli reading\n"
+msgstr ""
+
+#: src/vmstat.c:842
+#, c-format
+msgid "%13lu writes\n"
+msgstr "%13lu Schreibvorgänge\n"
+
+#: src/vmstat.c:843
+#, c-format
+msgid "%13lu merged writes\n"
+msgstr ""
+
+#: src/vmstat.c:844
+#, c-format
+msgid "%13lu written sectors\n"
+msgstr "%13lu geschriebene Sektoren\n"
+
+#: src/vmstat.c:845
+#, c-format
+msgid "%13lu milli writing\n"
+msgstr ""
+
+#: src/vmstat.c:846
+#, c-format
+msgid "%13lu inprogress IO\n"
+msgstr ""
+
+#: src/vmstat.c:847
+#, c-format
+msgid "%13lu milli spent IO\n"
+msgstr ""
+
+#: src/vmstat.c:848
+#, c-format
+msgid "%13lu milli weighted IO\n"
+msgstr ""
+
+#: src/vmstat.c:876
+#, c-format
+msgid "%13lu %s total memory\n"
+msgstr "%13lu %s Gesamtspeicher\n"
+
+#: src/vmstat.c:877
+#, c-format
+msgid "%13lu %s used memory\n"
+msgstr "%13lu %s benutzter Speicher\n"
+
+#: src/vmstat.c:878
+#, c-format
+msgid "%13lu %s active memory\n"
+msgstr "%13lu %s aktiver Speicher\n"
+
+#: src/vmstat.c:879
+#, c-format
+msgid "%13lu %s inactive memory\n"
+msgstr "%13lu %s inaktiver Speicher\n"
+
+#: src/vmstat.c:880
+#, c-format
+msgid "%13lu %s free memory\n"
+msgstr "%13lu %s freier Speicher\n"
+
+#: src/vmstat.c:881
+#, c-format
+msgid "%13lu %s buffer memory\n"
+msgstr "%13lu %s Pufferspeicher\n"
+
+#: src/vmstat.c:882
+#, c-format
+msgid "%13lu %s swap cache\n"
+msgstr "%13lu %s Auslagerungsspeicher-Cache\n"
+
+#: src/vmstat.c:883
+#, c-format
+msgid "%13lu %s total swap\n"
+msgstr "%13lu %s Gesamt-Auslagerungsspeicher\n"
+
+#: src/vmstat.c:884
+#, c-format
+msgid "%13lu %s used swap\n"
+msgstr "%13lu %s benutzter Auslagerungsspeicher\n"
+
+#: src/vmstat.c:885
+#, c-format
+msgid "%13lu %s free swap\n"
+msgstr "%13lu %s freier Auslagerungsspeicher\n"
+
+#: src/vmstat.c:886
+#, c-format
+msgid "%13lld non-nice user cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:887
+#, c-format
+msgid "%13lld nice user cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:888
+#, c-format
+msgid "%13lld system cpu ticks\n"
+msgstr "%13lld System-CPU-Ticks\n"
+
+#: src/vmstat.c:889
+#, c-format
+msgid "%13lld idle cpu ticks\n"
+msgstr "%13lld Untätig-CPU-Ticks\n"
+
+#: src/vmstat.c:890
+#, c-format
+msgid "%13lld IO-wait cpu ticks\n"
+msgstr "%13lld E/A-Warten-CPU-Ticks\n"
+
+#: src/vmstat.c:891
+#, c-format
+msgid "%13lld IRQ cpu ticks\n"
+msgstr "%13lld IRQ-CPU-Ticks\n"
+
+#: src/vmstat.c:892
+#, c-format
+msgid "%13lld softirq cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:893
+#, c-format
+msgid "%13lld stolen cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:894
+#, fuzzy, c-format
+msgid "%13lld non-nice guest cpu ticks\n"
+msgstr "%13lld Untätig-CPU-Ticks\n"
+
+#: src/vmstat.c:895
+#, fuzzy, c-format
+msgid "%13lld nice guest cpu ticks\n"
+msgstr "%13lld Untätig-CPU-Ticks\n"
+
+#: src/vmstat.c:896
+#, fuzzy, c-format
+msgid "%13lu K paged in\n"
+msgstr "%13lu %s benutzter Auslagerungsspeicher\n"
+
+#: src/vmstat.c:897
+#, fuzzy, c-format
+msgid "%13lu K paged out\n"
+msgstr "%13lu %s benutzter Speicher\n"
+
+#: src/vmstat.c:898
+#, c-format
+msgid "%13lu pages swapped in\n"
+msgstr ""
+
+#: src/vmstat.c:899
+#, c-format
+msgid "%13lu pages swapped out\n"
+msgstr ""
+
+#: src/vmstat.c:900
+#, c-format
+msgid "%13lu interrupts\n"
+msgstr "%13lu Interrupts\n"
+
+#: src/vmstat.c:901
+#, fuzzy, c-format
+msgid "%13lu CPU context switches\n"
+msgstr "%13lu Schreibvorgäng\n"
+
+#: src/vmstat.c:902
+#, c-format
+msgid "%13lu boot time\n"
+msgstr "%13lu Startzeit\n"
+
+#: src/vmstat.c:903 src/vmstat.c:921
+#, c-format
+msgid "%13lu forks\n"
+msgstr "%13lu Forks\n"
+
+#. Translation Hint: do not change argument characters
+#: src/vmstat.c:1024
+msgid "-S requires k, K, m or M (default is KiB)"
+msgstr "-S benötigt k, K, m oder M (Vorgabe ist KiB)"
+
+#: src/watch.c:94
+#, c-format
+msgid " %s [options] command\n"
+msgstr " %s [Optionen] Befehl\n"
+
+#: src/watch.c:96
+msgid " -b, --beep beep if command has a non-zero exit\n"
+msgstr ""
+" -b, --beep Warnklang abspielen, wenn die Ausgabe des\n"
+" Befehls nicht Null ist\n"
+
+#: src/watch.c:97
+msgid " -c, --color interpret ANSI color and style sequences\n"
+msgstr " -c, --color ANSI-Farb- und Stilsequenzen interpretieren\n"
+
+#: src/watch.c:98
+msgid ""
+" -C, --no-color do not interpret ANSI color and style sequences\n"
+msgstr ""
+" -C, --no-color ANSI-Farb- und Stilsequenzen nicht interpretieren\n"
+
+#: src/watch.c:99
+msgid ""
+" -d, --differences[=<permanent>]\n"
+" highlight changes between updates\n"
+msgstr ""
+" -d, --differences[=<permanent>]\n"
+" Änderungen zwischen Aktualisierungen\n"
+" hervorheben\n"
+
+#: src/watch.c:101
+msgid " -e, --errexit exit if command has a non-zero exit\n"
+msgstr ""
+" -e, --errexit abbrechen, wenn die Ausgabe des Befehls\n"
+" nicht Null ist\n"
+
+#: src/watch.c:102
+msgid " -g, --chgexit exit when output from command changes\n"
+msgstr ""
+" -g, --chgexit beenden, wenn sich die Ausgabe des Befehls\n"
+" ändert\n"
+
+#: src/watch.c:103
+msgid ""
+" -q, --equexit <cycles>\n"
+" exit when output from command does not change\n"
+msgstr ""
+" -q, --equexit <Durchläufe> beenden, wenn sich die "
+"Ausgabe des Befehls\n"
+" nicht ändert\n"
+
+#: src/watch.c:105
+msgid " -n, --interval <secs> seconds to wait between updates\n"
+msgstr ""
+" -n, --interval <Sek> Wartezeit zwischen Aktualisierungen\n"
+" in Sekunden\n"
+
+#: src/watch.c:106
+msgid " -p, --precise attempt run command in precise intervals\n"
+msgstr ""
+" -p, --precise versuchen, den Befehl in präzisen\n"
+" Intervallen auszuführen\n"
+
+#: src/watch.c:107
+msgid " -r, --no-rerun do not rerun program on window resize\n"
+msgstr ""
+" -r, --no-rerun Programm bei Änderungen der Fenstergröße\n"
+" nicht neu ausführen\n"
+
+#: src/watch.c:108
+msgid " -t, --no-title turn off header\n"
+msgstr " -t, --no-title Kopfzeile nicht anzeigen\n"
+
+#: src/watch.c:109
+msgid " -w, --no-wrap turn off line wrapping\n"
+msgstr " -w, --no-wrap Zeilenumbrüche deaktivieren\n"
+
+#: src/watch.c:110
+msgid " -x, --exec pass command to exec instead of \"sh -c\"\n"
+msgstr ""
+" -x, --exec auszuführenden Befehl übergeben anstelle\n"
+" von »sh -c«\n"
+
+#: src/watch.c:113
+msgid " -v, --version output version information and exit\n"
+msgstr " -v, --version Versionsinformation anzeigen und beenden\n"
+
+#: src/watch.c:485
+#, c-format
+msgid "Every %.1fs: "
+msgstr "Alle %.1fs: "
+
+#: src/watch.c:486
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: src/watch.c:575
+msgid "unable to create IPC pipes"
+msgstr "IPC-Pipes konnten nicht angelegt werden"
+
+#: src/watch.c:585
+msgid "unable to fork process"
+msgstr "Prozess kann nicht geforkt werden"
+
+#: src/watch.c:590
+msgid "dup2 failed"
+msgstr "dup2 fehlgeschlagen"
+
+#: src/watch.c:597
+#, c-format
+msgid "unable to execute '%s'"
+msgstr "»%s« kann nicht ausgeführt werden"
+
+#: src/watch.c:614
+msgid "fdopen"
+msgstr "fdopen"
+
+#: src/watch.c:788
+msgid "waitpid"
+msgstr "waitpid"
+
+#: src/watch.c:796
+msgid "command exit with a non-zero status, press a key to exit"
+msgstr ""
+"der Befehl wurde mit einem von Null verschiedenen Exit-Status beendet, "
+"drücken Sie eine Taste zum Beenden"
+
+#: src/watch.c:863
+msgid "Could not parse interval from WATCH_INTERVAL"
+msgstr "Intervall konnte nicht aus WATCH_INTERVAL ermittelt werden"
+
+#: src/watch.c:954
+#, c-format
+msgid "unicode handling error\n"
+msgstr "Unicode-Verarbeitungsfehler\n"
+
+#: src/watch.c:960
+#, c-format
+msgid "unicode handling error (malloc)\n"
+msgstr "Unicode-Verarbeitungsfehler (malloc)\n"
+
+#: src/w.c:289 src/w.c:304
+#, c-format
+msgid " %2lludays"
+msgstr " %2lluTage"
+
+#. Translation Hint: Minutes:Seconds
+#. Translation Hint: Hours:Minutes
+#: src/w.c:298 src/w.c:308
+#, c-format
+msgid " %2llu:%02um"
+msgstr " %2llu:%02u m"
+
+#. Translation Hint: Seconds:Centiseconds
+#: src/w.c:316
+#, c-format
+msgid " %2llu.%02us"
+msgstr " %2llu.%02u s"
+
+#: src/w.c:656
+#, c-format
+msgid " %s [options] [user]\n"
+msgstr " %s [Optionen] [Benutzer]\n"
+
+#: src/w.c:658
+msgid " -h, --no-header do not print header\n"
+msgstr " -h, --no-header keinen Header ausgeben\n"
+
+#: src/w.c:659
+msgid " -u, --no-current ignore current process username\n"
+msgstr " -u, --no-current Benutzername des aktuellen Prozesses ignorieren\n"
+
+#: src/w.c:660
+msgid " -s, --short short format\n"
+msgstr " -s, --short Kurzformat\n"
+
+#: src/w.c:661
+msgid " -f, --from show remote hostname field\n"
+msgstr " -f, --from Feld für entfernten Rechnernamen anzeigen\n"
+
+#: src/w.c:662
+msgid " -o, --old-style old style output\n"
+msgstr " -o, --old-style Ausgabe im alten Stil\n"
+
+#: src/w.c:663
+msgid ""
+" -i, --ip-addr display IP address instead of hostname (if possible)\n"
+msgstr ""
+" -i, --ip-addr IP-Adresse anstelle des Rechnernamens anzeigen\n"
+" (falls möglich)\n"
+
+#: src/w.c:664
+#, fuzzy
+msgid " -p, --pids show the PID(s) of processes in WHAT\n"
+msgstr " -l, --list-name PID und Prozessname auflisten\n"
+
+#: src/w.c:763
+#, c-format
+msgid ""
+"User length environment PROCPS_USERLEN must be between 8 and %i, ignoring.\n"
+msgstr ""
+"Benutzer-Umgebungsvariable PROCPS_USERLEN muss zwischen 8 und %i sein, wird "
+"ignoriert.\n"
+
+#: src/w.c:773
+#, c-format
+msgid ""
+"from length environment PROCPS_FROMLEN must be between 8 and %d, ignoring\n"
+msgstr ""
+"»Von«-Umgebungsvariable PROCPS_FROMLEN muss zwischen 8 und %i sein, wird "
+"ignoriert\n"
+
+#. Translation Hint: Following five uppercase messages are
+#. * headers. Try to keep alignment intact.
+#: src/w.c:799
+#, c-format
+msgid "%-*s TTY "
+msgstr "%-*s TTY "
+
+#: src/w.c:801
+msgid "FROM"
+msgstr "VON"
+
+#: src/w.c:803
+#, c-format
+msgid " LOGIN@ IDLE JCPU PCPU WHAT\n"
+msgstr ""
+
+#: src/w.c:805
+#, c-format
+msgid " IDLE WHAT\n"
+msgstr ""
+
+#: src/w.c:815
+msgid "error getting sessions"
+msgstr "Sitzungen konnten nicht ermittelt werden"
+
+#: src/w.c:823
+msgid "get user name failed"
+msgstr "Benutzername konnte nicht ermittelt werden"
+
+#: local/c.h:153
+msgid ""
+"\n"
+"Usage:\n"
+msgstr ""
+"\n"
+"Aufruf:\n"
+
+#: local/c.h:154
+msgid ""
+"\n"
+"Options:\n"
+msgstr ""
+"\n"
+"Optionen:\n"
+
+#: local/c.h:155
+msgid "\n"
+msgstr "\n"
+
+#: local/c.h:156
+msgid " -h, --help display this help and exit\n"
+msgstr " -h, --help diese Hilfe anzeigen und beenden\n"
+
+#: local/c.h:157
+msgid " -V, --version output version information and exit\n"
+msgstr " -V, --version Versionsinformationen ausgeben und beenden\n"
+
+#: local/c.h:158
+#, c-format
+msgid ""
+"\n"
+"For more details see %s.\n"
+msgstr ""
+"\n"
+"Für weitere Einzelheiten siehe %s.\n"
+
+#: local/c.h:160
+#, c-format
+msgid "%s from %s\n"
+msgstr "%s von %s\n"
+
+#~ msgid "error: not enough memory\n"
+#~ msgstr "Fehler: Nicht genug Speicher\n"
+
+#~ msgid "error: can not access /proc\n"
+#~ msgstr "Fehler: auf /proc kann nicht zugegriffen werden\n"
+
+#~ msgid "something at line %d\n"
+#~ msgstr "etwas in Zeile %d\n"
+
+#~ msgid "\"%s\" must be of the form name=value"
+#~ msgstr "»%s« muss die Form Name=Wert haben"
+
+#~ msgid "malformed setting \"%s\""
+#~ msgstr "ungültige Einstellung »%s«"
+
+#~ msgid "%s is deprecated, value not set"
+#~ msgstr "%s ist veraltet, Wert wird nicht gesetzt"
+
+#~ msgid ""
+#~ "inappropriate '%s'\n"
+#~ "Usage:\n"
+#~ " %s%s"
+#~ msgstr ""
+#~ "unzulässiges »%s«\n"
+#~ "Aufruf:\n"
+#~ " %s%s"
+
+#~ msgid ""
+#~ " %s\n"
+#~ "Usage:\n"
+#~ " %s%s"
+#~ msgstr ""
+#~ " %s\n"
+#~ "Aufruf:\n"
+#~ " %s%s"
+
+#~ msgid "failed openproc: %s"
+#~ msgstr "openproc ist fehlgeschlagen: %s"
+
+#~ msgid "-%c requires argument"
+#~ msgstr "-%c benötigt ein Argument"
+
+#~ msgid ""
+#~ " -hv | -bcEeHiOSs1 -d secs -n max -u|U user -p pid(s) -o field -w [cols]"
+#~ msgstr ""
+#~ " -hv | -bcEeHiOSs1 -d Sekunden -n Max. -u|U Benutzer -p PID(s) -o Feld -w "
+#~ "[Spalten]"
+
+#~ msgid "failed /proc/stat read"
+#~ msgstr "/proc/stat konnte nicht gelesen werden"
+
+#~ msgid "terminal is not wide enough"
+#~ msgstr "Terminal ist nicht breit genug"
+
+#~ msgid "your kernel does not support diskstat. (2.5.70 or above required)"
+#~ msgstr ""
+#~ "Ihr Kernel unterstützt diskstat nicht (Version 2.5.70 oder neuer "
+#~ "erforderlich)"
+
+#~ msgid "your kernel does not support diskstat (2.5.70 or above required)"
+#~ msgstr ""
+#~ "Ihr Kernel unterstützt diskstat nicht (Version 2.5.70 oder neuer "
+#~ "erforderlich)"
+
+#~ msgid ""
+#~ "your kernel does not support slabinfo or your permissions are insufficient"
+#~ msgstr ""
+#~ "Ihr Kernel unterstützt slabinfo nicht oder Ihre Zugriffsrechte sind "
+#~ "unzureichend"
+
+#~ msgid "unknown page size (assume 4096)\n"
+#~ msgstr "unbekannte Seitengröße (4096 wird angenommen)\n"
+
+#~ msgid "Overwrite existing obsolete/corrupted rcfile?"
+#~ msgstr "Veraltete/beschädigte Konfigurationsdatei löschen?"
+
+#~ msgid "reads "
+#~ msgstr "gelesen"
+
+#~ msgid "seconds argument `%s' failed"
+#~ msgstr "Sekunden-Argument »%s« fehlgeschlagen "
+
+#~ msgid "Adj"
+#~ msgstr "Adj"
+
+#~ msgid "%d column window is too narrow"
+#~ msgstr "Fenster mit %d Spalten ist zu klein"
+
+#~ msgid "%d column width exceeds command buffer size, truncating to %d"
+#~ msgstr ""
+#~ "die Breite der Spalte %d überschreitet die Puffergröße des Befehls, wird "
+#~ "auf %d abgeschnitten "
+
+#~ msgid "warning: screen width %d suboptimal"
+#~ msgstr "Warnung: Bildschirmbreite %d ist nicht optimal"
diff --git a/po/en@boldquot.header b/po/en@boldquot.header
new file mode 100644
index 0000000..fedb6a0
--- /dev/null
+++ b/po/en@boldquot.header
@@ -0,0 +1,25 @@
+# All this catalog "translates" are quotation characters.
+# The msgids must be ASCII and therefore cannot contain real quotation
+# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
+# and double quote (0x22). These substitutes look strange; see
+# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+#
+# This catalog translates grave accent (0x60) and apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019).
+# It also translates pairs of apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019)
+# and pairs of quotation mark (0x22) to
+# left double quotation mark (U+201C) and right double quotation mark (U+201D).
+#
+# When output to an UTF-8 terminal, the quotation characters appear perfectly.
+# When output to an ISO-8859-1 terminal, the single quotation marks are
+# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
+# grave/acute accent (by libiconv), and the double quotation marks are
+# transliterated to 0x22.
+# When output to an ASCII terminal, the single quotation marks are
+# transliterated to apostrophes, and the double quotation marks are
+# transliterated to 0x22.
+#
+# This catalog furthermore displays the text between the quotation marks in
+# bold face, assuming the VT100/XTerm escape sequences.
+#
diff --git a/po/en@quot.header b/po/en@quot.header
new file mode 100644
index 0000000..a9647fc
--- /dev/null
+++ b/po/en@quot.header
@@ -0,0 +1,22 @@
+# All this catalog "translates" are quotation characters.
+# The msgids must be ASCII and therefore cannot contain real quotation
+# characters, only substitutes like grave accent (0x60), apostrophe (0x27)
+# and double quote (0x22). These substitutes look strange; see
+# http://www.cl.cam.ac.uk/~mgk25/ucs/quotes.html
+#
+# This catalog translates grave accent (0x60) and apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019).
+# It also translates pairs of apostrophe (0x27) to
+# left single quotation mark (U+2018) and right single quotation mark (U+2019)
+# and pairs of quotation mark (0x22) to
+# left double quotation mark (U+201C) and right double quotation mark (U+201D).
+#
+# When output to an UTF-8 terminal, the quotation characters appear perfectly.
+# When output to an ISO-8859-1 terminal, the single quotation marks are
+# transliterated to apostrophes (by iconv in glibc 2.2 or newer) or to
+# grave/acute accent (by libiconv), and the double quotation marks are
+# transliterated to 0x22.
+# When output to an ASCII terminal, the single quotation marks are
+# transliterated to apostrophes, and the double quotation marks are
+# transliterated to 0x22.
+#
diff --git a/po/es.gmo b/po/es.gmo
new file mode 100644
index 0000000..8912dfc
--- /dev/null
+++ b/po/es.gmo
Binary files differ
diff --git a/po/es.po b/po/es.po
new file mode 100644
index 0000000..00a4642
--- /dev/null
+++ b/po/es.po
@@ -0,0 +1,5197 @@
+# SOME DESCRIPTIVE TITLE.
+# Copyright (C) 2021 Free Software Foundation, Inc.
+# This file is distributed under the same license as the procps-ng package.
+# Rodrigo Lledó <rodhos92@gmail.com>, 2021, 2022, 2023.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: procps-ng 4.0.3-rc1\n"
+"Report-Msgid-Bugs-To: procps@freelists.org\n"
+"POT-Creation-Date: 2023-08-19 17:38+1000\n"
+"PO-Revision-Date: 2023-04-25 00:20+0200\n"
+"Last-Translator: Rodrigo Lledó Milanca <rodhos92@gmail.com>\n"
+"Language-Team: Spanish <es@tp.org.es>\n"
+"Language: es\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"X-Generator: Poedit 3.2.2\n"
+
+#: local/fileutils.c:38
+msgid "write error"
+msgstr "error de escritura"
+
+#: src/free.c:74 src/slabtop.c:106 src/uptime.c:65
+#, c-format
+msgid " %s [options]\n"
+msgstr " %s [opciones]\n"
+
+#: src/free.c:76
+msgid " -b, --bytes show output in bytes\n"
+msgstr " -b, --bytes muestra la salida en bytes\n"
+
+#: src/free.c:77
+msgid " --kilo show output in kilobytes\n"
+msgstr " --kilo muestra la salida en kilobytes\n"
+
+#: src/free.c:78
+msgid " --mega show output in megabytes\n"
+msgstr " --mega muestra la salida en megabytes\n"
+
+#: src/free.c:79
+msgid " --giga show output in gigabytes\n"
+msgstr " --giga muestra la salida en gigabytes\n"
+
+#: src/free.c:80
+msgid " --tera show output in terabytes\n"
+msgstr " --tera muestra la salida en terabytes\n"
+
+#: src/free.c:81
+msgid " --peta show output in petabytes\n"
+msgstr " --peta muestra la salida en petabytes\n"
+
+#: src/free.c:82
+msgid " -k, --kibi show output in kibibytes\n"
+msgstr " -k, --kibi muestra la salida en kibibytes\n"
+
+#: src/free.c:83
+msgid " -m, --mebi show output in mebibytes\n"
+msgstr " -m, --mebi muestra la salida en mebibytes\n"
+
+#: src/free.c:84
+msgid " -g, --gibi show output in gibibytes\n"
+msgstr " -g, --gibi muestra la salida en gibibytes\n"
+
+#: src/free.c:85
+msgid " --tebi show output in tebibytes\n"
+msgstr " --tebi muestra la salida en tebibytes\n"
+
+#: src/free.c:86
+msgid " --pebi show output in pebibytes\n"
+msgstr " --pebi muestra la salida en pebibytes\n"
+
+#: src/free.c:87
+msgid " -h, --human show human-readable output\n"
+msgstr " -h, --human muestra una salida legible por humanos\n"
+
+#: src/free.c:88
+msgid " --si use powers of 1000 not 1024\n"
+msgstr " --si usa potencias de 1000, no de 1024\n"
+
+#: src/free.c:89
+msgid " -l, --lohi show detailed low and high memory statistics\n"
+msgstr ""
+" -l, --lohi muestra estadísticas detalladas de memoria baja y alta\n"
+
+#: src/free.c:90
+#, fuzzy
+msgid " -L, --line show output on a single line\n"
+msgstr " -k, --kibi muestra la salida en kibibytes\n"
+
+#: src/free.c:91
+msgid " -t, --total show total for RAM + swap\n"
+msgstr " -t, --total muestra el total de RAM + intercambio\n"
+
+#: src/free.c:92
+msgid " -v, --committed show committed memory and commit limit\n"
+msgstr ""
+" -v, --committed muestra memoria confirmada y el límite de confirmación\n"
+
+#: src/free.c:93
+msgid " -s N, --seconds N repeat printing every N seconds\n"
+msgstr " -s N, --seconds N se vuelve a mostrar cada N segundos\n"
+
+# Aunque no hay mucho lugar a dudas, 'sale' es muy polisémica.
+# Sugerencia: sale -> sale del programa, sale -> termina
+#: src/free.c:94
+msgid " -c N, --count N repeat printing N times, then exit\n"
+msgstr " -c N, --count N se muestra N veces, luego sale del programa\n"
+
+#: src/free.c:95
+msgid " -w, --wide wide output\n"
+msgstr " -w, --wide salida amplia\n"
+
+#: src/free.c:97 src/w.c:666
+msgid " --help display this help and exit\n"
+msgstr " --help muestra esta ayuda y sale\n"
+
+#: src/free.c:172
+msgid "Multiple unit options don't make sense."
+msgstr "Las opciones de unidades múltiples no tienen sentido."
+
+#: src/free.c:341
+#, c-format
+msgid "seconds argument `%s' is not positive number"
+msgstr "el argumento de segundos «%s» no es un número positivo"
+
+# Siempre me resulta difícil traducir 'count'. 'Cuenta' no suele quedar bien.
+# Sugerencia: contador
+#: src/free.c:347
+msgid "failed to parse count argument"
+msgstr "fallo al analizar el argumento de «count»"
+
+#: src/free.c:350
+#, c-format
+msgid "failed to parse count argument: '%s'"
+msgstr "fallo al analizar el argumento de «count»: «%s»"
+
+#: src/free.c:370
+msgid "Memory information file /proc/meminfo does not exist"
+msgstr "El archivo de información de memoria /proc/meminfo no existe"
+
+#: src/free.c:373 src/vmstat.c:378 src/vmstat.c:872
+msgid "Unable to create meminfo structure"
+msgstr "No se puede crear la estructura meminfo"
+
+#. Translation Hint: These are shortened column headers
+#. * that are all 7 characters long. Use spaces and right
+#. * align if the translation is shorter.
+#.
+#: src/free.c:381
+#, fuzzy
+msgid "SwapUse"
+msgstr "Intercambio"
+
+#: src/free.c:382
+#, fuzzy
+msgid "CachUse"
+msgstr "Caché"
+
+#: src/free.c:384
+msgid " MemUse"
+msgstr ""
+
+#: src/free.c:385
+msgid "MemFree"
+msgstr ""
+
+# ¿Has mirado en el código del programa que el distinto alineamiento de columnas en la traducción no estropee la salida? Mira, por ejemplo, la traducción al francés.
+#: src/free.c:395
+#, c-format
+msgid ""
+" total used free shared buffers "
+"cache available"
+msgstr ""
+" total usado libre compartido búferes "
+"caché disponible"
+
+#: src/free.c:397
+#, c-format
+msgid ""
+" total used free shared buff/cache "
+"available"
+msgstr ""
+" total usado libre compartido búf/caché "
+"disponible"
+
+#: src/free.c:400
+msgid "Mem:"
+msgstr "Mem:"
+
+#: src/free.c:423
+msgid "Low:"
+msgstr "Baja:"
+
+#: src/free.c:429
+msgid "High:"
+msgstr "Alta:"
+
+#: src/free.c:436
+msgid "Swap:"
+msgstr "Inter:"
+
+#: src/free.c:443
+msgid "Total:"
+msgstr "Total:"
+
+#: src/free.c:456
+msgid "Comm:"
+msgstr "Conf:"
+
+#: src/kill.c:40
+#, c-format
+msgid " %s [options] <pid> [...]\n"
+msgstr " %s [opciones] <pid> [...]\n"
+
+#: src/kill.c:42
+msgid " <pid> [...] send signal to every <pid> listed\n"
+msgstr " <pid> [...] envía una señal a cada <pid> listado\n"
+
+#: src/kill.c:43
+msgid ""
+" -<signal>, -s, --signal <signal>\n"
+" specify the <signal> to be sent\n"
+msgstr ""
+" -<signal>, -s, --signal <señal>\n"
+" especificar la <señal> que se enviará\n"
+
+#: src/kill.c:45
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr " -q, --queue <valor> valor entero que se enviará con la señal\n"
+
+#: src/kill.c:46
+msgid ""
+" -l, --list=[<signal>] list all signal names, or convert one to a name\n"
+msgstr ""
+" -l, --list=[<señal>] listar todos los nombres de señales, o convertir uno "
+"a un nombre\n"
+
+#: src/kill.c:47
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr " -L, --table lista todos los nombres de señal en una bonita tabla\n"
+
+#: src/kill.c:112
+#, c-format
+msgid "unknown signal name %s"
+msgstr "nombre de señal desconocido %s"
+
+#: src/kill.c:131
+msgid "must be an integer value to be passed with the signal."
+msgstr "debe ser un valor entero para pasar con la señal."
+
+#: src/kill.c:136
+#, c-format
+msgid "invalid argument %c"
+msgstr "argumento no válido %c"
+
+#: src/kill.c:146 src/pgrep.c:792 src/pidof.c:250 src/pidof.c:290
+#: src/sysctl.c:867
+msgid "internal error"
+msgstr "error interno"
+
+#: src/kill.c:158 src/pmap.c:771 src/pmap.c:786 src/skill.c:381 src/skill.c:465
+#: src/tload.c:135 src/tload.c:140 src/vmstat.c:1047 src/vmstat.c:1057
+#: src/watch.c:891 src/watch.c:906
+msgid "failed to parse argument"
+msgstr "fallo al analizar el argumento"
+
+#: src/pgrep.c:92 src/pidof.c:40 src/skill.c:74
+msgid "integer overflow"
+msgstr "desbordamiento de entero"
+
+#: src/pgrep.c:155
+#, c-format
+msgid " %s [options] <pattern>\n"
+msgstr " %s [opciones] <patrón>\n"
+
+#: src/pgrep.c:159
+msgid " -d, --delimiter <string> specify output delimiter\n"
+msgstr " -d, --delimiter <cadena> especifica el delimitador de salida\n"
+
+# 'Listar' no existe con ese significado. Sugerencias: saca lista, enumera.
+#: src/pgrep.c:160
+msgid " -l, --list-name list PID and process name\n"
+msgstr " -l, --list-name muestra el PID y el nombre del proceso\n"
+
+# 'Command' es más adecuado traducirlo como 'orden' (command line -> línea de órdenes),
+# aunque veo que la RAE ya admite la acepción informática.
+#: src/pgrep.c:161
+msgid " -a, --list-full list PID and full command line\n"
+msgstr ""
+" -a, --list-full muestra el PID y la línea de órdenes completa\n"
+
+# No describe bien el significado. Sugerencia basada en la traducción de grep: selecciona no coincidencias.
+#: src/pgrep.c:162
+msgid " -v, --inverse negates the matching\n"
+msgstr " -v, --inverse muestra los no coincidentes\n"
+
+#: src/pgrep.c:163
+msgid " -w, --lightweight list all TID\n"
+msgstr " -w, --lightweight muestra todos los TID\n"
+
+#: src/pgrep.c:166
+#, fuzzy
+msgid " -<sig> signal to send (either number or name)\n"
+msgstr ""
+" -<señal>, --signal <señal> señal que enviar (ya sea un nombre o un "
+"número)\n"
+
+#: src/pgrep.c:167
+msgid " -H, --require-handler match only if signal handler is present\n"
+msgstr ""
+" -H, --require-handler coincide solo si el controlador de señal está "
+"presente\n"
+
+#: src/pgrep.c:168
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr " -q, --queue <valor> valor entero que enviar con la señal\n"
+
+# Haría una traducción más literal del tiempo verbal si no estás seguro de que signifique otra cosa:
+# muestra lo que se ha matado
+#: src/pgrep.c:169
+msgid " -e, --echo display what is killed\n"
+msgstr " -e, --echo muestra lo que se ha matado\n"
+
+#: src/pgrep.c:173
+msgid " -e, --echo display PIDs before waiting\n"
+msgstr " -e, --echo muestra PIDs antes de esperar\n"
+
+#: src/pgrep.c:177
+msgid " -c, --count count of matching processes\n"
+msgstr " -c, --count número de procesos coincidentes\n"
+
+#: src/pgrep.c:178
+msgid " -f, --full use full process name to match\n"
+msgstr ""
+" -f, --full usa el nombre de proceso completo al buscar "
+"coincidencias\n"
+
+#: src/pgrep.c:179
+msgid " -g, --pgroup <PGID,...> match listed process group IDs\n"
+msgstr ""
+" -g, --pgroup <PGID,...> compara con las IDs de grupo de procesos "
+"mostrada\n"
+
+#: src/pgrep.c:180
+msgid " -G, --group <GID,...> match real group IDs\n"
+msgstr " -G, --group <GID,...> compara con las IDs de grupo real\n"
+
+#: src/pgrep.c:181
+msgid " -i, --ignore-case match case insensitively\n"
+msgstr ""
+" -i, --ignore-case busca coincidencias sin diferenciar entre "
+"mayúsculas y minúsculas\n"
+
+#: src/pgrep.c:182
+msgid " -n, --newest select most recently started\n"
+msgstr ""
+" -n, --newest selecciona los más iniciados recientemente\n"
+
+#: src/pgrep.c:183
+msgid " -o, --oldest select least recently started\n"
+msgstr ""
+" -o, --oldest selecciona los menos iniciados recientemente\n"
+
+#: src/pgrep.c:184
+msgid " -O, --older <seconds> select where older than seconds\n"
+msgstr ""
+" -O, --older <segundos> selecciona los más antiguos que esos segundos\n"
+
+#: src/pgrep.c:185
+msgid ""
+" -P, --parent <PPID,...> match only child processes of the given parent\n"
+msgstr ""
+" -P, --parent <PPID,...> compara solo los procesos hijo del padre dado\n"
+
+#: src/pgrep.c:186
+msgid " -s, --session <SID,...> match session IDs\n"
+msgstr " -s, --session <SID,...> compara las IDs de sesión\n"
+
+#: src/pgrep.c:187
+#, fuzzy
+msgid " --signal <sig> signal to send (either number or name)\n"
+msgstr ""
+" -<señal>, --signal <señal> señal que enviar (ya sea un nombre o un "
+"número)\n"
+
+#: src/pgrep.c:188
+msgid " -t, --terminal <tty,...> match by controlling terminal\n"
+msgstr " -t, --terminal <tty,...> compara por terminal de control\n"
+
+#: src/pgrep.c:189
+msgid " -u, --euid <ID,...> match by effective IDs\n"
+msgstr " -u, --euid <ID,...> compara por IDs efectivas\n"
+
+#: src/pgrep.c:190
+msgid " -U, --uid <ID,...> match by real IDs\n"
+msgstr " -U, --uid <ID,...> compara por IDs reales\n"
+
+#: src/pgrep.c:191
+msgid " -x, --exact match exactly with the command name\n"
+msgstr ""
+" -x, --exact hace coincidir exactamente con el nombre de "
+"orden\n"
+
+#: src/pgrep.c:192
+msgid " -F, --pidfile <file> read PIDs from file\n"
+msgstr " -F, --pidfile <archivo> read PIDs from file\n"
+
+#: src/pgrep.c:193
+msgid " -L, --logpidfile fail if PID file is not locked\n"
+msgstr ""
+" -L, --logpidfile falla si el archivo de PID no está bloqueado\n"
+
+#: src/pgrep.c:194
+msgid " -r, --runstates <state> match runstates [D,S,Z,...]\n"
+msgstr ""
+" -r, --runstates <estado> compara con los estados de ejecución [D,S,"
+"Z,...]\n"
+
+#: src/pgrep.c:195
+msgid " -A, --ignore-ancestors exclude our ancestors from results\n"
+msgstr ""
+" -A, --ignore-ancestors excluir a nuestros antepasados ​​de los resultados\n"
+
+#: src/pgrep.c:196
+msgid " --cgroup <grp,...> match by cgroup v2 names\n"
+msgstr " --cgroup <grp,...> coincidir por nombres de cgroup v2\n"
+
+#: src/pgrep.c:197
+msgid ""
+" --ns <PID> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+" --ns <PID> compara los procesos que pertenecen al mismo\n"
+" espacio de nombres que <pid>\n"
+
+#: src/pgrep.c:199
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option.\n"
+" Available namespaces: ipc, mnt, net, pid, user, "
+"uts\n"
+msgstr ""
+" --nslist <ns,...> muestra qué espacios de nombre se van a "
+"considerar para\n"
+" la opción --ns.\n"
+" Espacios de nombre disponibles: ipc, mnt, net, "
+"pid, user, uts\n"
+
+#: src/pgrep.c:224 src/pgrep.c:700 src/w.c:455
+msgid "Unable to create pid info structure"
+msgstr "No se puede crear la estructura de información pid"
+
+#: src/pgrep.c:388
+#, c-format
+msgid "invalid user name: %s"
+msgstr "nombre de usuario no válido: %s"
+
+#: src/pgrep.c:405
+#, c-format
+msgid "invalid group name: %s"
+msgstr "nombre de grupo no válido: %s"
+
+#: src/pgrep.c:416
+#, c-format
+msgid "invalid process group: %s"
+msgstr "grupo de procesos no válido: %s"
+
+#: src/pgrep.c:428
+#, c-format
+msgid "invalid session id: %s"
+msgstr "id de sesión no válida: %s"
+
+#: src/pgrep.c:440
+#, c-format
+msgid "not a number: %s"
+msgstr "no es un número: %s"
+
+#: src/pgrep.c:490
+#, c-format
+msgid "not a hex string: %s"
+msgstr "no es una cadena hex: %s"
+
+#: src/pgrep.c:525 src/skill.c:162
+msgid "Unable to read process namespace information"
+msgstr "No se puede leer la información del espacio de nombres del proceso"
+
+#: src/pgrep.c:612
+#, c-format
+msgid "regex error: %s"
+msgstr "error regex: %s"
+
+#: src/pgrep.c:695
+msgid "Error reading reference namespace information\n"
+msgstr "Error al leer la información del espacio de nombres de referencia\n"
+
+#: src/pgrep.c:809
+#, c-format
+msgid ""
+"pattern that searches for process name longer than 15 characters will result "
+"in zero matches\n"
+"Try `%s -f' option to match against the complete command line."
+msgstr ""
+"un patrón que busque un nombre de proceso de más de 15 caracteres dará como "
+"resultado cero coincidencias\n"
+"Pruebe la opción «%s -f» para buscar en la línea de comandos completa."
+
+#: src/pgrep.c:924
+#, fuzzy, c-format
+msgid "Unknown signal \"%s\"."
+msgstr "nombre de señal desconocido %s"
+
+#: src/pgrep.c:1090
+#, c-format
+msgid ""
+"-L without -F makes no sense\n"
+"Try `%s --help' for more information."
+msgstr ""
+"Usar -L sin -F no tiene sentido\n"
+"Pruebe «%s --help» para más información."
+
+#: src/pgrep.c:1097
+#, c-format
+msgid ""
+"pidfile not valid\n"
+"Try `%s --help' for more information."
+msgstr ""
+"pidfile no válido\n"
+"Pruebe «%s --help» para más información."
+
+#: src/pgrep.c:1106
+#, c-format
+msgid ""
+"only one pattern can be provided\n"
+"Try `%s --help' for more information."
+msgstr ""
+"solo se puede proporcionar un único patrón\n"
+"Pruebe «%s --help» para más información."
+
+#: src/pgrep.c:1110
+#, c-format
+msgid ""
+"no matching criteria specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+"no se especificó un criterio de búsqueda\n"
+"Pruebe «%s --help» para más información."
+
+#: src/pgrep.c:1162
+#, c-format
+msgid "%s killed (pid %lu)\n"
+msgstr "%s muerto (pid %lu)\n"
+
+#: src/pgrep.c:1169
+#, c-format
+msgid "killing pid %ld failed"
+msgstr "no se pudo matar el pid %ld"
+
+#: src/pgrep.c:1181
+#, c-format
+msgid "waiting for %s (pid %lu)\n"
+msgstr "esperando a %s (pid %lu)\n"
+
+#: src/pgrep.c:1185
+msgid "pidfd_open() not implemented in Linux < 5.3"
+msgstr "pidfd_open() no está implementado en Linux < 5.3"
+
+#: src/pgrep.c:1188
+#, c-format
+msgid "opening pid %ld failed"
+msgstr "no se pudo abrir el pid %ld"
+
+#: src/pgrep.c:1202
+msgid "epoll_wait failed"
+msgstr "epoll_wait falló"
+
+#: src/pidof.c:75
+#, c-format
+msgid " %s [options] [program [...]]\n"
+msgstr " %s [opciones] [programa [...]]\n"
+
+#: src/pidof.c:77
+msgid " -s, --single-shot return one PID only\n"
+msgstr " -s, --single-shot devuelve un solo PID\n"
+
+#: src/pidof.c:78
+msgid " -c, --check-root omit processes with different root\n"
+msgstr " -c, --check-root omite procesos con raíz diferente\n"
+
+#: src/pidof.c:79
+msgid " -q, quiet mode, only set the exit code\n"
+msgstr ""
+" -q, modo silencioso, solo establece el código de "
+"salida\n"
+
+#: src/pidof.c:80
+msgid " -w, --with-workers show kernel workers too\n"
+msgstr ""
+" -w, --with-workers muestra los trabajadores del núcleo también\n"
+
+#: src/pidof.c:81
+msgid " -x also find shells running the named scripts\n"
+msgstr ""
+" -x también encuentra consolas ejecutando los scripts "
+"nombrados\n"
+
+#: src/pidof.c:82
+msgid " -o, --omit-pid <PID,...> omit processes with PID\n"
+msgstr " -o, --omit-pid <PID,...> omite procesos con PID\n"
+
+#: src/pidof.c:83
+#, fuzzy
+msgid " -t, --lightweight list threads too\n"
+msgstr " -w, --lightweight muestra todos los TID\n"
+
+#: src/pidof.c:84
+msgid " -S, --separator SEP use SEP as separator put between PIDs"
+msgstr " -S, --separator SEP usa SEP como separador entre PIDs"
+
+#: src/pidof.c:293
+#, c-format
+msgid "illegal omit pid value (%s)!\n"
+msgstr "¡se omite un valor de pid ilegal (%s)!\n"
+
+#: src/pmap.c:72
+msgid "Address"
+msgstr "DireccioÌn"
+
+#: src/pmap.c:73
+msgid "Offset"
+msgstr "Desplazamiento"
+
+#: src/pmap.c:74
+msgid "Device"
+msgstr "Dispositivo"
+
+#: src/pmap.c:75
+msgid "Mapping"
+msgstr "Asignación"
+
+#: src/pmap.c:79
+msgid "Perm"
+msgstr "Perm"
+
+#: src/pmap.c:80
+msgid "Inode"
+msgstr "Inodo"
+
+#: src/pmap.c:83
+msgid "Kbytes"
+msgstr "Kbytes"
+
+#: src/pmap.c:84
+msgid "Mode"
+msgstr "Modo"
+
+#. Translation Hint: With the next 5 fields, notice how an extra space
+#. has been added ahead of one 'KiB' so that they all
+#. align. You need not preserve such alignment.
+#. Translation Hint: maximum 'RSS' = 6
+#: src/pmap.c:85 src/top/top_nls.c:337
+msgid "RSS"
+msgstr "RSS"
+
+#: src/pmap.c:86
+msgid "Dirty"
+msgstr "Sucio"
+
+#: src/pmap.c:120
+#, c-format
+msgid " %s [options] PID [PID ...]\n"
+msgstr " %s [opciones] PID [PID ...]\n"
+
+#: src/pmap.c:122
+msgid " -x, --extended show details\n"
+msgstr " -x, --extended muestra los detalles\n"
+
+#: src/pmap.c:123
+msgid " -X show even more details\n"
+msgstr " -X muestra incluso más detalles\n"
+
+#: src/pmap.c:124
+msgid " WARNING: format changes according to /proc/PID/smaps\n"
+msgstr ""
+" ADVERTENCIA: el formato cambia de acuerdo con /proc/PID/smaps\n"
+
+#: src/pmap.c:125
+msgid " -XX show everything the kernel provides\n"
+msgstr ""
+" -XX muestra todo lo que proporciona el núcleo\n"
+
+#: src/pmap.c:126
+msgid " -c, --read-rc read the default rc\n"
+msgstr " -c, --read-rc lee el rc predeterminado\n"
+
+#: src/pmap.c:127
+msgid " -C, --read-rc-from=<file> read the rc from file\n"
+msgstr " -C, --read-rc-from=<archivo> lee el rc desde un archivo\n"
+
+#: src/pmap.c:128
+msgid " -n, --create-rc create new default rc\n"
+msgstr " -n, --create-rc crea un rc predeterminado nuevo\n"
+
+#: src/pmap.c:129
+msgid " -N, --create-rc-to=<file> create new rc to file\n"
+msgstr " -N, --create-rc-to=<archivo> crea un rc nuevo en un archivo\n"
+
+#: src/pmap.c:130
+msgid " NOTE: pid arguments are not allowed with -n, -N\n"
+msgstr " NOTA: los argumentos de pid no se permiten con -n, -N\n"
+
+#: src/pmap.c:131
+msgid " -d, --device show the device format\n"
+msgstr " -d, --device muestra el formato de dispositivo\n"
+
+#: src/pmap.c:132
+msgid " -q, --quiet do not display header and footer\n"
+msgstr " -q, --quiet no se muestra el encabezado ni el pie\n"
+
+#: src/pmap.c:133
+msgid " -p, --show-path show path in the mapping\n"
+msgstr " -p, --show-path muestra la ruta en la asignación\n"
+
+#: src/pmap.c:134
+msgid " -A, --range=<low>[,<high>] limit results to the given range\n"
+msgstr " -A, --range=<bajo>[,<alto>] limita los resultados al rango dado\n"
+
+#: src/pmap.c:215
+msgid "shared memory detach"
+msgstr "separar la memoria compartida"
+
+#: src/pmap.c:220
+msgid "shared memory remove"
+msgstr "eliminar la memoria compartida"
+
+#: src/pmap.c:245
+msgid " [ anon ]"
+msgstr " [ anon ]"
+
+#: src/pmap.c:248
+msgid " [ stack ]"
+msgstr " [ pila ]"
+
+#: src/pmap.c:334 src/pmap.c:340
+msgid "Unknown format in smaps file!"
+msgstr "¡Formato desconocido del archivo smaps!"
+
+#: src/pmap.c:365
+msgid "ERROR: memory allocation failed"
+msgstr "ERROR: la asignación de memoria falló"
+
+#: src/pmap.c:382
+msgid "inconsistent detail field in smaps file, line:\n"
+msgstr "campo de detalle inconsistente en el archivo smaps, línea:\n"
+
+#: src/pmap.c:731
+msgid "total kB"
+msgstr "total kB"
+
+#: src/pmap.c:742
+#, c-format
+msgid "mapped: %ldK writeable/private: %ldK shared: %ldK\n"
+msgstr "asignado: %ldK escribible/privado: %ldK compartido: %ldK\n"
+
+#. Translation Hint: keep total string length
+#. * as 24 characters. Adjust %16 if needed
+#: src/pmap.c:751
+#, c-format
+msgid " total %16ldK\n"
+msgstr " total %16ldK\n"
+
+#. Translation Hint: keep total string length
+#. * as 16 characters. Adjust %8 if needed
+#: src/pmap.c:757
+#, c-format
+msgid " total %8ldK\n"
+msgstr " total %8ldK\n"
+
+#: src/pmap.c:832
+#, c-format
+msgid "config line too long - line %d"
+msgstr "línea de config demasiado larga - línea %d"
+
+#: src/pmap.c:857
+#, c-format
+msgid "unsupported section found in the config - line %d"
+msgstr "sección no compatible encontrada en la configuración - línea %d"
+
+#: src/pmap.c:860 src/pmap.c:871 src/pmap.c:882 src/pmap.c:905 src/pmap.c:917
+#, c-format
+msgid "syntax error found in the config - line %d"
+msgstr "error de sintaxis encontrado en la configuración - línea %d"
+
+#: src/pmap.c:887 src/pmap.c:1010
+msgid "memory allocation failed"
+msgstr "la asignación de memoria falló"
+
+#: src/pmap.c:939
+msgid "the file already exists - delete or rename it first"
+msgstr "el archivo ya existe; elimínelo o cámbiele el nombre primero"
+
+#: src/pmap.c:1002
+msgid "HOME variable undefined"
+msgstr "variable HOME no definida"
+
+#: src/pmap.c:1061
+msgid "option -r is ignored as SunOS compatibility"
+msgstr "la opción -r se ignora debido a compatibilidad con SunOS"
+
+#: src/pmap.c:1108
+msgid "options -c, -C, -d, -n, -N, -x, -X are mutually exclusive"
+msgstr "las opciones -c, -C, -d, -n, -N, -x, -X son mutuamente excluyentes"
+
+#: src/pmap.c:1111
+msgid "options -p, -q are mutually exclusive with -n, -N"
+msgstr "las opciones -p, -q son mutuamente excluyentes con -n, -N"
+
+#: src/pmap.c:1114 src/pmap.c:1163
+msgid "too many arguments"
+msgstr "demasiados argumentos"
+
+#: src/pmap.c:1118
+msgid "rc file successfully created, feel free to edit the content"
+msgstr "archivo rc creado con éxito, siéntase libre de editar el contenido"
+
+#: src/pmap.c:1121
+msgid "couldn't create the rc file"
+msgstr "no se pudo crear el archivo rc"
+
+#: src/pmap.c:1133
+#, c-format
+msgid "~/.%src file successfully created, feel free to edit the content"
+msgstr ""
+"archivo ~/.%src creado con éxito, siéntase libre de editar el contenido"
+
+#: src/pmap.c:1136
+#, c-format
+msgid "couldn't create ~/.%src"
+msgstr "no se pudo crear ~/.%src"
+
+#: src/pmap.c:1141
+msgid "argument missing"
+msgstr "falta un argumento"
+
+#: src/pmap.c:1154
+msgid "couldn't read the rc file"
+msgstr "no se pudo leer el archivo rc"
+
+#: src/pmap.c:1156
+#, c-format
+msgid "couldn't read ~/.%src"
+msgstr "no se pudo leer ~/.%src"
+
+#: src/pmap.c:1165 src/pmap.c:1190
+msgid "library failed pids statistics"
+msgstr "estadísticas de pids fallidos de la biblioteca"
+
+#: src/ps/display.c:61
+#, c-format
+msgid "Signal %d (%s) caught by %s (%s).\n"
+msgstr "Señal %d (%s) capturada por %s (%s).\n"
+
+#: src/ps/display.c:75 src/ps/display.c:252 src/ps/display.c:407
+#: src/ps/output.c:2359 src/ps/parser.c:509 src/ps/parser.c:756
+#: src/ps/select.c:95 src/ps/sortformat.c:263 src/ps/sortformat.c:301
+#: src/ps/sortformat.c:549
+msgid "please report this bug"
+msgstr "por favor informe de este error"
+
+#: src/ps/display.c:315 src/ps/display.c:484
+#, c-format
+msgid "fatal library error, reap\n"
+msgstr "error fatal de biblioteca, reap\n"
+
+#: src/ps/display.c:365
+#, c-format
+msgid "could not find ppid\n"
+msgstr "no se pudo encontrar el ppid\n"
+
+#: src/ps/display.c:375
+#, c-format
+msgid "could not find start_time\n"
+msgstr "no se pudo encontrar el start_time\n"
+
+#: src/ps/global.c:287
+#, c-format
+msgid "your %dx%d screen size is bogus. expect trouble\n"
+msgstr "su tamaño de pantalla %dx%d es falso. Espere problemas\n"
+
+#: src/ps/global.c:360 src/ps/global.c:372
+msgid "environment specified an unknown personality"
+msgstr "el entorno ha especificado una personalidad desconocida"
+
+#: src/ps/global.c:364
+#, c-format
+msgid "cannot strdup() personality text\n"
+msgstr "no se puede strdup() el texto de personalidad\n"
+
+#: src/ps/global.c:495
+#, c-format
+msgid "fatal library error, context\n"
+msgstr "error fatal de biblioteca, contexto\n"
+
+#: src/ps/global.c:503
+#, c-format
+msgid "fatal library error, lookup self\n"
+msgstr "error fatal de biblioteca, búsqueda de uno mismo\n"
+
+#. Translation Note:
+#. . The following translatable word will be used to recognize the
+#. . user's request for help text. In other words, the translation
+#. . you provide will alter program behavior.
+#. .
+#. . It must be limited to 15 characters or less.
+#.
+#: src/ps/global.c:542
+msgid "help"
+msgstr "ayuda"
+
+#. Translation Notes for ps Help #1 ---------------------------------
+#. . This next group of lines represents 6 pairs of words + abbreviations
+#. . which are the basis of the 'ps' program help text.
+#. .
+#. . The words and abbreviations you provide will alter program behavior.
+#. . They will also appear in the help usage summary associated with the
+#. . "Notes for ps Help #2" below.
+#. .
+#. . In their English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . When translating these 6 pairs you may choose any appropriate
+#. . language equivalents and the only requirement is the abbreviated
+#. . representations must be unique.
+#. .
+#. . By default, those abbreviations are single characters. However,
+#. . they are not limited to only one character after translation.
+#. .
+#. Translation Hint, Pair #1
+#: src/ps/help.c:67
+msgid "simple"
+msgstr "simple"
+
+#: src/ps/help.c:67
+msgid "s"
+msgstr "s"
+
+#. Translation Hint, Pair #2
+#: src/ps/help.c:69
+msgid "list"
+msgstr "lista"
+
+#: src/ps/help.c:69
+msgid "l"
+msgstr "l"
+
+#. Translation Hint, Pair #3
+#: src/ps/help.c:71
+msgid "output"
+msgstr "salida"
+
+#: src/ps/help.c:71
+msgid "o"
+msgstr "o"
+
+#. Translation Hint, Pair #4
+#: src/ps/help.c:73
+msgid "threads"
+msgstr "hilos"
+
+#: src/ps/help.c:73
+msgid "t"
+msgstr "t"
+
+#. Translation Hint, Pair #5
+#: src/ps/help.c:75
+msgid "misc"
+msgstr "varios"
+
+#: src/ps/help.c:75
+msgid "m"
+msgstr "m"
+
+#. Translation Hint, Pair #6
+#: src/ps/help.c:77
+msgid "all"
+msgstr "todo"
+
+#: src/ps/help.c:77
+msgid "a"
+msgstr "a"
+
+#: src/ps/help.c:98
+#, c-format
+msgid ""
+"\n"
+"Usage:\n"
+" %s [options]\n"
+msgstr ""
+"\n"
+"Uso:\n"
+" %s [opciones]\n"
+
+#: src/ps/help.c:103
+msgid ""
+"\n"
+"Basic options:\n"
+msgstr ""
+"\n"
+"Opciones básicas:\n"
+
+#: src/ps/help.c:104
+msgid " -A, -e all processes\n"
+msgstr " -A, -e todos los procesos\n"
+
+#: src/ps/help.c:105
+msgid " -a all with tty, except session leaders\n"
+msgstr " -a todos con tty, excepto líderes de sesión\n"
+
+#: src/ps/help.c:106
+msgid " a all with tty, including other users\n"
+msgstr " a todo con tty, incluyendo otros usuarios\n"
+
+#: src/ps/help.c:107
+msgid " -d all except session leaders\n"
+msgstr " -d todo excepto líderes de sesión\n"
+
+#: src/ps/help.c:108
+msgid " -N, --deselect negate selection\n"
+msgstr " -N, --deselect niega la selección\n"
+
+#: src/ps/help.c:109
+msgid " r only running processes\n"
+msgstr " r solo procesos en ejecución\n"
+
+#: src/ps/help.c:110
+msgid " T all processes on this terminal\n"
+msgstr " T todos los procesos en esta terminal\n"
+
+#: src/ps/help.c:111
+msgid " x processes without controlling ttys\n"
+msgstr " x procesos que no controlan ttys\n"
+
+#: src/ps/help.c:114
+msgid ""
+"\n"
+"Selection by list:\n"
+msgstr ""
+"\n"
+"Selección por lista:\n"
+
+#: src/ps/help.c:115
+msgid " -C <command> command name\n"
+msgstr " -C <orden> nombre de orden (comando)\n"
+
+#: src/ps/help.c:116
+msgid " -G, --Group <GID> real group id or name\n"
+msgstr " -G, --Group <GID> id de grupo real o nombre\n"
+
+#: src/ps/help.c:117
+msgid " -g, --group <group> session or effective group name\n"
+msgstr " -g, --group <grupo> sesión o nombre de grupo efectivo\n"
+
+#: src/ps/help.c:118
+msgid " -p, p, --pid <PID> process id\n"
+msgstr " -p, p, --pid <PID> id de proceso\n"
+
+#: src/ps/help.c:119
+msgid " --ppid <PID> parent process id\n"
+msgstr " --ppid <PID> id de proceso padre\n"
+
+#: src/ps/help.c:120
+msgid ""
+" -q, q, --quick-pid <PID>\n"
+" process id (quick mode)\n"
+msgstr ""
+" -q, q, --quick-pid <PID>\n"
+" id de proceso (modo rápido)\n"
+
+#: src/ps/help.c:122
+msgid " -s, --sid <session> session id\n"
+msgstr " -s, --sid <sesión> id de sesión\n"
+
+#: src/ps/help.c:123
+msgid " -t, t, --tty <tty> terminal\n"
+msgstr " -t, t, --tty <tty> terminal\n"
+
+#: src/ps/help.c:124
+msgid " -u, U, --user <UID> effective user id or name\n"
+msgstr " -u, U, --user <UID> id de usuario efectivo o nombre\n"
+
+#: src/ps/help.c:125
+msgid " -U, --User <UID> real user id or name\n"
+msgstr " -U, --User <UID> id de usuario real o nombre\n"
+
+#: src/ps/help.c:126
+msgid ""
+"\n"
+" The selection options take as their argument either:\n"
+" a comma-separated list e.g. '-u root,nobody' or\n"
+" a blank-separated list e.g. '-p 123 4567'\n"
+msgstr ""
+"\n"
+" Las opciones de selección toman como argumento ya sea:\n"
+" una lista separada por comas p.ej. «-u raíz,nadie» o\n"
+" una lista separada por espacios p.ej. «-p 123 4567»\n"
+
+#: src/ps/help.c:132
+msgid ""
+"\n"
+"Output formats:\n"
+msgstr ""
+"\n"
+"Formatos de salida:\n"
+
+#: src/ps/help.c:133
+msgid " -D <format> date format for lstart\n"
+msgstr " -D <formato> formato de fecha para lstart\n"
+
+#: src/ps/help.c:134
+msgid " -F extra full\n"
+msgstr " -F extra completo\n"
+
+#: src/ps/help.c:135
+msgid " -f full-format, including command lines\n"
+msgstr " -f formato completo, incluyendo líneas de órdenes\n"
+
+#: src/ps/help.c:136
+msgid " f, --forest ascii art process tree\n"
+msgstr " f, --forest árbol de proceso de arte ascii\n"
+
+#: src/ps/help.c:137
+msgid " -H show process hierarchy\n"
+msgstr " -H mostrar jerarquía de procesos\n"
+
+#: src/ps/help.c:138
+msgid " -j jobs format\n"
+msgstr " -j formato de tareas\n"
+
+#: src/ps/help.c:139
+msgid " j BSD job control format\n"
+msgstr " j formato de control de tareas BSD\n"
+
+#: src/ps/help.c:140
+msgid " -l long format\n"
+msgstr " -l formato largo\n"
+
+#: src/ps/help.c:141
+msgid " l BSD long format\n"
+msgstr " l formato largo BSD\n"
+
+#: src/ps/help.c:142
+msgid " -M, Z add security data (for SELinux)\n"
+msgstr " -M, Z añade datos de seguridad (para SELinux)\n"
+
+#: src/ps/help.c:143
+msgid " -O <format> preloaded with default columns\n"
+msgstr " -O <formato> precargado con columnas predeterminadas\n"
+
+#: src/ps/help.c:144
+msgid " O <format> as -O, with BSD personality\n"
+msgstr " O <formato> como -O, con personalidad BSD\n"
+
+#: src/ps/help.c:145
+msgid ""
+" -o, o, --format <format>\n"
+" user-defined format\n"
+msgstr ""
+" -o, o, --format <formato>\n"
+" formato definido por el usuario\n"
+
+#: src/ps/help.c:147
+msgid " -P add psr column\n"
+msgstr " -P añadir columna psr\n"
+
+#: src/ps/help.c:148
+msgid " s signal format\n"
+msgstr " s formato de señal\n"
+
+#: src/ps/help.c:149
+msgid " u user-oriented format\n"
+msgstr " u formato orientado al usuario\n"
+
+#: src/ps/help.c:150
+msgid " v virtual memory format\n"
+msgstr " v formato de memoria virtual\n"
+
+#: src/ps/help.c:151
+msgid " X register format\n"
+msgstr " X formato de registro\n"
+
+#: src/ps/help.c:152
+msgid ""
+" -y do not show flags, show rss vs. addr (used with -l)\n"
+msgstr ""
+" -y no mostrar banderas, mostrar rss vs. addr (usado con -"
+"l)\n"
+
+#: src/ps/help.c:153
+msgid " --context display security context (for SELinux)\n"
+msgstr ""
+" --context muestra el contexto de seguridad (para SELinux)\n"
+
+#: src/ps/help.c:154
+msgid " --headers repeat header lines, one per page\n"
+msgstr ""
+" --headers repite las lineas de encabezado, una por página\n"
+
+#: src/ps/help.c:155
+msgid " --no-headers do not print header at all\n"
+msgstr " --no-headers no imprimir el encabezado en absoluto\n"
+
+#: src/ps/help.c:156
+msgid ""
+" --cols, --columns, --width <num>\n"
+" set screen width\n"
+msgstr ""
+" --cols, --columns, --width <num>\n"
+" establecer el ancho de la pantalla\n"
+
+#: src/ps/help.c:158
+msgid ""
+" --rows, --lines <num>\n"
+" set screen height\n"
+msgstr ""
+" --rows, --lines <num>\n"
+" establecer la altura de la pantalla\n"
+
+#: src/ps/help.c:160
+#, fuzzy
+msgid " --signames display signal masks using signal names\n"
+msgstr " -l, --list listar todos los nombre de señal\n"
+
+#: src/ps/help.c:163
+msgid ""
+"\n"
+"Show threads:\n"
+msgstr ""
+"\n"
+"Mostrar hilos:\n"
+
+#: src/ps/help.c:164
+msgid " H as if they were processes\n"
+msgstr " H as como si fueran procesos\n"
+
+#: src/ps/help.c:165
+msgid " -L possibly with LWP and NLWP columns\n"
+msgstr " -L posiblemente con columnas LWP y NLWP\n"
+
+#: src/ps/help.c:166
+msgid " -m, m after processes\n"
+msgstr " -m, m después de los procesos\n"
+
+#: src/ps/help.c:167
+msgid " -T possibly with SPID column\n"
+msgstr " -T posiblemente con columna SPID\n"
+
+#: src/ps/help.c:170
+msgid ""
+"\n"
+"Miscellaneous options:\n"
+msgstr ""
+"\n"
+"Opciones varias:\n"
+
+#: src/ps/help.c:171
+msgid " -c show scheduling class with -l option\n"
+msgstr " -c muestra la clase de la planificación con la opción -l\n"
+
+#: src/ps/help.c:172
+msgid " c show true command name\n"
+msgstr " c muestra el nombre de comando verdadero\n"
+
+#: src/ps/help.c:173
+msgid " e show the environment after command\n"
+msgstr " e muestra el entorno después del comando\n"
+
+#: src/ps/help.c:174
+msgid ""
+" k, --sort specify sort order as: [+|-]key[,[+|-]key[,...]]\n"
+msgstr ""
+" k, --sort especifica el orden de clasificación como: [+|-]key[,"
+"[+|-]key[,...]]\n"
+
+#: src/ps/help.c:175
+msgid " L show format specifiers\n"
+msgstr " L muestra las especificaciones de formato\n"
+
+#: src/ps/help.c:176
+msgid " n display numeric uid and wchan\n"
+msgstr " n mostrar uid y wchan numérico\n"
+
+#: src/ps/help.c:177
+msgid " S, --cumulative include some dead child process data\n"
+msgstr " S, --cumulative incluir algunos datos de procesos hijo muertos\n"
+
+#: src/ps/help.c:178
+msgid " -y do not show flags, show rss (only with -l)\n"
+msgstr " -y no mostrar banderas, mostrar rss (solo con -l)\n"
+
+#: src/ps/help.c:179
+msgid " -V, V, --version display version information and exit\n"
+msgstr " -V, V, --version mostrar la información de versión y salir\n"
+
+#: src/ps/help.c:180
+msgid " -w, w unlimited output width\n"
+msgstr " -w, w anchura de salida ilimitada\n"
+
+#: src/ps/help.c:181
+#, c-format
+msgid ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" display help and exit\n"
+msgstr ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" mostrar la ayuda y salir\n"
+
+#. Translation Notes for ps Help #2 ---------------------------------
+#. . Most of the following c-format string is derived from the 6
+#. . pairs of words + chars mentioned above in "Notes for ps Help #1".
+#. .
+#. . In its full English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . The word for "help" will be translated elsewhere. Thus, the only
+#. . translations below will be: "Try", "or" and "for additional...".
+#. .
+#: src/ps/help.c:202
+#, c-format
+msgid ""
+"\n"
+" Try '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" or '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" for additional help text.\n"
+msgstr ""
+"\n"
+" Intente «%s --%s <%s|%s|%s|%s|%s|%s>»\n"
+" o «%s --%s <%s|%s|%s|%s|%s|%s>»\n"
+" para más texto de ayuda.\n"
+
+#: src/ps/help.c:215
+#, c-format
+msgid ""
+"\n"
+"For more details see ps(1).\n"
+msgstr ""
+"\n"
+"Para más información vea ps(1).\n"
+
+#: src/ps/output.c:104
+msgid "Unable to get system boot time"
+msgstr "No se puede obtener el tiempo de arranque del sistema"
+
+#: src/ps/output.c:119
+msgid "Unable to get total memory"
+msgstr "No se puede obtener la memoria total"
+
+#: src/ps/output.c:2206
+#, c-format
+msgid "fix bigness error\n"
+msgstr "reparar el gran error\n"
+
+#: src/ps/output.c:2289
+#, c-format
+msgid "bad alignment code\n"
+msgstr "coÌdigo de alineamiento incorrecto\n"
+
+#: src/ps/parser.c:63
+msgid "the option is exclusive: "
+msgstr "la opción es exclusiva: "
+
+#: src/ps/parser.c:93
+msgid "process ID list syntax error"
+msgstr "error de sintaxis en el proceso ID"
+
+#: src/ps/parser.c:94 src/ps/parser.c:95
+msgid "process ID out of range"
+msgstr "ID de proceso fuera de rango"
+
+#: src/ps/parser.c:108
+msgid "user name does not exist"
+msgstr "no existe el nombre del usuario"
+
+#: src/ps/parser.c:114
+msgid "user ID out of range"
+msgstr "ID de usuario fuera de rango"
+
+#: src/ps/parser.c:127
+msgid "group name does not exist"
+msgstr "el nombre de grupo no existe"
+
+#: src/ps/parser.c:133
+msgid "group ID out of range"
+msgstr "ID de grupo fuera de rango"
+
+#: src/ps/parser.c:149 src/ps/parser.c:173
+msgid "TTY could not be found"
+msgstr "TTY puede no enocntrarse"
+
+#: src/ps/parser.c:175
+msgid "list member was not a TTY"
+msgstr "el miembro de la lista no era un TTY"
+
+#: src/ps/parser.c:200
+msgid "improper list"
+msgstr "lista impropia"
+
+#: src/ps/parser.c:249
+msgid "list of command names must follow -C"
+msgstr "lista de nombres de órdenes que debe seguir a -C"
+
+#: src/ps/parser.c:257
+msgid "date format must follow -D"
+msgstr "el formato de fecha debe seguir a -D"
+
+#: src/ps/parser.c:270
+msgid "list of real groups must follow -G"
+msgstr "lista de grupos reales que debe seguir a -G"
+
+#: src/ps/parser.c:283
+msgid "list of jobs must follow -J"
+msgstr "la lista de trabajos debe llevar -J"
+
+#: src/ps/parser.c:311
+msgid "format or sort specification must follow -O"
+msgstr "formato o especificación ordenada que debe seguir a -O"
+
+#: src/ps/parser.c:322
+msgid "list of PRM groups must follow -R"
+msgstr "lista de grupos PRM que debe seguir a -R"
+
+#: src/ps/parser.c:341
+msgid "list of real users must follow -U"
+msgstr "lista de usuarios reales que deben seguir a -U"
+
+#: src/ps/parser.c:382
+msgid "list of session leaders OR effective group names must follow -g"
+msgstr ""
+"debe de seguir -g a la lista de los dirigentes de la sesión o el nombre del "
+"del grupo efectivo"
+
+#: src/ps/parser.c:393
+msgid "list of session leaders OR effective group IDs was invalid"
+msgstr ""
+"la lista de los dirigentes de la sesión o la ID del grupo efectivo no es "
+"válida"
+
+#: src/ps/parser.c:417
+msgid "format specification must follow -o"
+msgstr "especificación de formato que debe seguir a -o"
+
+#: src/ps/parser.c:423
+msgid "list of process IDs must follow -p"
+msgstr "La lista de ID de procesos debe llevar -p"
+
+#: src/ps/parser.c:440
+msgid "the -r option is reserved"
+msgstr "la opción -r está reservada"
+
+#: src/ps/parser.c:446
+msgid "list of session IDs must follow -s"
+msgstr "La lista de ID de sesión debe llevar -s"
+
+#: src/ps/parser.c:454
+msgid "list of terminals (pty, tty...) must follow -t"
+msgstr "lista de terminales (pty, tty...) que debe seguir a -t"
+
+#: src/ps/parser.c:462
+msgid "list of users must follow -u"
+msgstr "la lista de usuarios debe llevar -u"
+
+#: src/ps/parser.c:484
+msgid "must set personality to get -x option"
+msgstr "se debe establecer la personalidad para poder obtener la opción -x"
+
+#: src/ps/parser.c:499
+msgid "list of zones (contexts, labels, whatever?) must follow -z"
+msgstr ""
+"la lista de las zonas (contextos, etiquetas o lo que sea) deben seguirse de -"
+"z"
+
+#: src/ps/parser.c:506
+msgid "embedded '-' among SysV options makes no sense"
+msgstr "« - » empotrado entre las opciones de SysV no tiene sentido"
+
+#: src/ps/parser.c:512
+msgid "unsupported SysV option"
+msgstr "Opción SysV no soportada"
+
+#: src/ps/parser.c:525
+msgid "cannot happen - problem #1"
+msgstr "no puede ocurrir - problema #1"
+
+#: src/ps/parser.c:529
+msgid "cannot happen - problem #2"
+msgstr "no puede ocurrir - problema #2"
+
+#: src/ps/parser.c:531
+msgid "second chance parse failed, not BSD or SysV"
+msgstr "la segunda posibilidad de análisis fracasó, no hay BSD ni SysV"
+
+#: src/ps/parser.c:548
+msgid "option A is reserved"
+msgstr "La opción A está reservada"
+
+#: src/ps/parser.c:553
+msgid "option C is reserved"
+msgstr "La opción C está reservada"
+
+#: src/ps/parser.c:573
+msgid "format or sort specification must follow O"
+msgstr "formato o especificación ordenada que debe seguir a O"
+
+#: src/ps/parser.c:598
+msgid "list of users must follow U"
+msgstr "la lista de usuarios deber llevar U"
+
+#: src/ps/parser.c:610
+msgid "obsolete W option not supported (you have a /dev/drum?)"
+msgstr "la opción W está obsoleta y no es compatible (¿tiene un /dev/drum?)"
+
+#: src/ps/parser.c:646 src/ps/parser.c:921 src/ps/parser.c:930
+msgid "only one heading option may be specified"
+msgstr "solo se puede especificar un encabezado de la opción"
+
+#: src/ps/parser.c:661
+msgid "long sort specification must follow 'k'"
+msgstr "la especificación de clasificación larga debe continuar con «k»"
+
+#: src/ps/parser.c:689
+msgid "format specification must follow o"
+msgstr "a la especificación de formato debe seguir o"
+
+#: src/ps/parser.c:695
+msgid "list of process IDs must follow p"
+msgstr "a la lista de ID de los procesos debe seguir p"
+
+#: src/ps/parser.c:753
+msgid "embedded '-' among BSD options makes no sense"
+msgstr "integrar «-» entre las opciones BSD no tiene sentido"
+
+#: src/ps/parser.c:759
+msgid "unsupported option (BSD syntax)"
+msgstr "opción no soportada (sintaxis BSD)"
+
+#: src/ps/parser.c:847 src/ps/parser.c:859
+msgid "unknown gnu long option"
+msgstr "opción gnu larga desconocida"
+
+#: src/ps/parser.c:867
+msgid "list of real groups must follow --Group"
+msgstr "lista de grupos reales que debe seguir a --Group"
+
+#: src/ps/parser.c:875
+msgid "list of real users must follow --User"
+msgstr "lista de usuarios reales que debe seguir a --User"
+
+#: src/ps/parser.c:894
+msgid "number of columns must follow --cols, --width, or --columns"
+msgstr "número de columnas que debe seguir a --cols, --width, o --columns"
+
+#: src/ps/parser.c:897
+msgid "option --cumulative does not take an argument"
+msgstr "la opción --cumulative no lleva argumento"
+
+#: src/ps/parser.c:902
+msgid "date format must follow --date-format"
+msgstr "el formato de fecha debe seguir a --date-format"
+
+#: src/ps/parser.c:908
+msgid "option --deselect does not take an argument"
+msgstr "la opción --deselect no lleva argumento"
+
+#: src/ps/parser.c:920
+msgid "option --no-heading does not take an argument"
+msgstr "la opción --no-heading no lleva argumento"
+
+#: src/ps/parser.c:929
+msgid "option --heading does not take an argument"
+msgstr "la opción --heading no lleva argumento"
+
+#: src/ps/parser.c:935
+msgid "option --forest does not take an argument"
+msgstr "la opción --forest no lleva argumento"
+
+#: src/ps/parser.c:941
+msgid "format specification must follow --format"
+msgstr "especificación del formato que debe seguir a --format"
+
+#: src/ps/parser.c:947
+msgid "list of effective groups must follow --group"
+msgstr "lisa de grupos efectiva que debe seguir a --group"
+
+#: src/ps/parser.c:965
+msgid "list of process IDs must follow --pid"
+msgstr "a la lista de los ID de los procesos debe seguir -pid"
+
+#: src/ps/parser.c:981
+msgid "list of process IDs must follow --ppid"
+msgstr "a la lista de los ID de procesos debe seguir - ppid"
+
+#: src/ps/parser.c:999
+msgid "number of rows must follow --rows or --lines"
+msgstr "al número de líneas debe seguir --rows o --lines"
+
+#: src/ps/parser.c:1003
+msgid "some sid thing(s) must follow --sid"
+msgstr "algún objeto(s) sid debe continuar con --sid"
+
+#: src/ps/parser.c:1015
+msgid "long sort specification must follow --sort"
+msgstr "especificación de clasificación larga debe continuar con --sort"
+
+#: src/ps/parser.c:1021
+msgid "list of ttys must follow --tty"
+msgstr "la lista de tty debe llevar --tty"
+
+#: src/ps/parser.c:1029
+msgid "list of effective users must follow --user"
+msgstr "a la lista de usuarios efectivos debe seguir --user"
+
+#: src/ps/parser.c:1145
+msgid "way bad"
+msgstr "mal camino"
+
+#: src/ps/parser.c:1159
+msgid "garbage option"
+msgstr "opción de bausra"
+
+#: src/ps/parser.c:1163
+msgid "something broke"
+msgstr "algo roto"
+
+#: src/ps/parser.c:1183
+msgid "thread display conflicts with forest display"
+msgstr "mostrar thread entra en conflicto con mostrar forest"
+
+#: src/ps/parser.c:1188
+msgid "thread flags conflict; can't use H with m or -m"
+msgstr "conflicto de marcas; no se puede usar H con m o con -m"
+
+#: src/ps/parser.c:1190
+msgid "thread flags conflict; can't use both m and -m"
+msgstr "conflicto de marcas; no se puede usar H con m o con -m"
+
+#: src/ps/parser.c:1192
+msgid "thread flags conflict; can't use both -L and -T"
+msgstr "conflicto de marcas; no se pueden usar a la vez -L y -T"
+
+#: src/ps/parser.c:1265 src/ps/parser.c:1266
+#, c-format
+msgid "error: %s\n"
+msgstr "error: %s\n"
+
+#: src/ps/select.c:71
+msgid "process selection options conflict"
+msgstr "conflicto en las opciones de selección del proceso"
+
+#: src/ps/sortformat.c:110 src/ps/sortformat.c:115
+msgid "seriously crashing: goodbye cruel world"
+msgstr "bloqueo grave: adiós mundo cruel"
+
+#: src/ps/sortformat.c:150 src/ps/sortformat.c:169
+msgid "missing AIX field descriptor"
+msgstr "falta el descriptor de campo AIX"
+
+#: src/ps/sortformat.c:152
+msgid "improper AIX field descriptor"
+msgstr "descriptor de campo indebido AIX"
+
+#: src/ps/sortformat.c:174
+msgid "unknown AIX field descriptor"
+msgstr "descriptor de campo AIX desconocido"
+
+#: src/ps/sortformat.c:179
+msgid "AIX field descriptor processing bug"
+msgstr "AIX error de procesamiento de descriptor de campo"
+
+#: src/ps/sortformat.c:287
+#, c-format
+msgid "unknown user-defined format specifier \"%s\""
+msgstr "especificador «%s» de formato definido por el usuario desconocido"
+
+#: src/ps/sortformat.c:314
+msgid "empty format list"
+msgstr "lista de formato vacía"
+
+#: src/ps/sortformat.c:315
+msgid "improper format list"
+msgstr "lista de formato incorrecta"
+
+#: src/ps/sortformat.c:316
+msgid "column widths must be unsigned decimal numbers"
+msgstr "la anchura de las columnas debe ser un número decimal sin signo"
+
+#: src/ps/sortformat.c:317
+msgid "can not set width for a macro (multi-column) format specifier"
+msgstr ""
+"no puede establecer tamaño para un especificador de formato de macro "
+"(multicolumna)"
+
+#: src/ps/sortformat.c:371 src/ps/sortformat.c:387
+msgid "improper sort list"
+msgstr "lista de orden impropia"
+
+#: src/ps/sortformat.c:382
+msgid "empty sort list"
+msgstr "lista de orden vacía"
+
+#: src/ps/sortformat.c:403 src/ps/sortformat.c:482 src/ps/sortformat.c:484
+msgid "unknown sort specifier"
+msgstr "especificador de orden desconocido"
+
+#: src/ps/sortformat.c:430 src/ps/sortformat.c:435 src/ps/sortformat.c:442
+#: src/ps/sortformat.c:448
+msgid "bad sorting code"
+msgstr "código de ordenación incorrecto"
+
+#: src/ps/sortformat.c:445
+msgid "PPID sort and forest output conflict"
+msgstr "entra en conflicto la salida tipo PPID y forest"
+
+#: src/ps/sortformat.c:519
+msgid "option -O can not follow other format options"
+msgstr "la opción-O no puede seguir a otras opciones de formato"
+
+#: src/ps/sortformat.c:526 src/ps/sortformat.c:544
+msgid "multiple sort options"
+msgstr "múltiples opciones de ordenación"
+
+#: src/ps/sortformat.c:534
+msgid "option O is neither first format nor sort order"
+msgstr "la opción O no está primero ni tiene el formato de ordenación"
+
+#: src/ps/sortformat.c:661
+msgid "modifier -y without format -l makes no sense"
+msgstr "el modificador -y sin el fomato -l no tiene sentido"
+
+#: src/ps/sortformat.c:760
+msgid "bug: must reset the list first"
+msgstr "error: debe restablecer la primera lista"
+
+#: src/ps/sortformat.c:797
+msgid "tell <procps@freelists.org> what you expected"
+msgstr "decir <procps@freelists.org> lo que esperaba"
+
+#: src/ps/sortformat.c:807
+msgid ""
+"tell <procps@freelists.org> what you want (-L/-T, -m/m/H, and $PS_FORMAT)"
+msgstr ""
+"comunicar a <procps@freelists.org> qué necesita (-L/-T, -m/m/H y $PS_FORMAT)"
+
+#: src/ps/sortformat.c:824
+#, c-format
+msgid "warning: $PS_FORMAT ignored. (%s)\n"
+msgstr "aviso: $PS_FORMAT ignorado. (%s)\n"
+
+#: src/ps/sortformat.c:829 src/ps/sortformat.c:839
+msgid "conflicting format options"
+msgstr "opciones de formato en conflicto"
+
+#: src/ps/sortformat.c:830
+msgid "can not use output modifiers with user-defined output"
+msgstr ""
+"no puede utilizar modificadores de salida en la salida definida por el "
+"usuario"
+
+#: src/ps/sortformat.c:831
+msgid "-L/-T with H/m/-m and -o/-O/o/O is nonsense"
+msgstr "-L/-T con H/m/-m y -o/-O/o/O no tiene sentido"
+
+#: src/ps/sortformat.c:889
+msgid "internal error: no PID or PPID for -j option"
+msgstr "error interno: no existe PID o PPID para la opción -j"
+
+#: src/ps/sortformat.c:891
+msgid "lost my PGID"
+msgstr "perdí mi PGID"
+
+#: src/ps/sortformat.c:904
+msgid "internal error: no PRI for -c option"
+msgstr "error interno: no existe PRI para la opción -c"
+
+#: src/ps/sortformat.c:907
+msgid "lost my CLS"
+msgstr "perdí CLS"
+
+#: src/ps/sortformat.c:912
+msgid "-T with H/-m/m but no PID for SPID to follow"
+msgstr "continuar -T con H/-m/m pero no PID para SPID"
+
+#: src/ps/sortformat.c:923
+msgid "-L with H/-m/m but no PID/PGID/SID/SESS for NLWP to follow"
+msgstr "continuar -L con H/-m/m pero no PID/PGID/SID/SESS para NLWP"
+
+#: src/pwdx.c:41
+#, c-format
+msgid " %s [options] pid...\n"
+msgstr " %s [opciones] pid...\n"
+
+#: src/pwdx.c:117
+#, c-format
+msgid "invalid process id: %s"
+msgstr "id de proceso inválida: %s"
+
+#: src/skill.c:285
+msgid "Unable to create pid Pids_info structure"
+msgstr "No se puede crear la estructura de pid Pids_info"
+
+#: src/skill.c:288 src/w.c:458
+msgid "Unable to load process information"
+msgstr "No se puede cargar la información de procesos"
+
+#: src/skill.c:319
+#, c-format
+msgid " %s [signal] [options] <expression>\n"
+msgstr " %s [señal] [opciones] <expresión>\n"
+
+#: src/skill.c:323
+#, c-format
+msgid " %s [new priority] [options] <expression>\n"
+msgstr " %s [nueva prioridad] [opciones] <expresión>\n"
+
+#: src/skill.c:327
+msgid " -f, --fast fast mode (not implemented)\n"
+msgstr " -f, --fast modo rápido (no implementado)\n"
+
+#: src/skill.c:328
+msgid " -i, --interactive interactive\n"
+msgstr " -i, --interactive interactivo\n"
+
+#: src/skill.c:329
+msgid " -l, --list list all signal names\n"
+msgstr " -l, --list listar todos los nombre de señal\n"
+
+#: src/skill.c:330
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr " -L, --table listar todos los nombre de señal en una bonita tabla\n"
+
+#: src/skill.c:331
+msgid ""
+" -n, --no-action do not actually kill processes; just print what would "
+"happen\n"
+msgstr ""
+" -n, --no-action no matar procesos realmente; solo imprimir lo que "
+"pasaría\n"
+
+#: src/skill.c:332
+msgid " -v, --verbose explain what is being done\n"
+msgstr " -v, --verbose explicar lo que se está haciendo\n"
+
+#: src/skill.c:333
+msgid " -w, --warnings enable warnings (not implemented)\n"
+msgstr " -w, --warnings activa las advertencias (no implementado)\n"
+
+#: src/skill.c:335
+msgid ""
+"Expression can be: terminal, user, pid, command.\n"
+"The options below may be used to ensure correct interpretation.\n"
+msgstr ""
+"La expresión puede ser: terminal, usuario, pid, comando.\n"
+"Las siguientes opciones se pueden usar para asegurar una interpretación "
+"correcta.\n"
+
+#: src/skill.c:337
+msgid " -c, --command <command> expression is a command name\n"
+msgstr " -c, --command <comando> la expresión es un nombre de comando\n"
+
+#: src/skill.c:338
+msgid " -p, --pid <pid> expression is a process id number\n"
+msgstr " -p, --pid <pid> la expresión es un número de id de proceso\n"
+
+#: src/skill.c:339
+msgid " -t, --tty <tty> expression is a terminal\n"
+msgstr " -t, --tty <tty> la expresión es un terminal\n"
+
+#: src/skill.c:340
+msgid " -u, --user <username> expression is a username\n"
+msgstr ""
+" -u, --user <nombredeusuario> la expresión es un nombre de usuario\n"
+
+#: src/skill.c:342
+msgid "Alternatively, expression can be:\n"
+msgstr "Alternativamente, la expresión puede ser:\n"
+
+#: src/skill.c:343
+msgid ""
+" --ns <pid> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+" --ns <pid> emparejar el proceso que pertenece al mismo\n"
+" espacio de nombres como <pid>\n"
+
+#: src/skill.c:345
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option; available namespaces are\n"
+": ipc, mnt, net, pid, user, uts\n"
+msgstr ""
+" --nslist <ns,...> listar cual espacio de nombres se considerará "
+"para\n"
+" la opción --ns; los espacios de nombres "
+"disponibles son\n"
+": ipc, mnt, net, pid, user, uts\n"
+
+#: src/skill.c:355
+#, c-format
+msgid ""
+"\n"
+"The default signal is TERM. Use -l or -L to list available signals.\n"
+"Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0.\n"
+"Alternate signals may be specified in three ways: -SIGKILL -KILL -9\n"
+msgstr ""
+"\n"
+"La señal por defecto es TERM. Use -l o -L para listar las señales "
+"disponibles.\n"
+"Las señales más útiles son HUP, INT, KILL, STOP, CONT y 0.\n"
+"Las señales alternativas se pueden especificar de tres modos: -SIGKILL -KILL "
+"-9\n"
+
+#: src/skill.c:362
+#, c-format
+msgid ""
+"\n"
+"The default priority is +4. (snice +4 ...)\n"
+"Priority numbers range from +20 (slowest) to -20 (fastest).\n"
+"Negative priority numbers are restricted to administrative users.\n"
+msgstr ""
+"\n"
+"La prioridad predet. es +4. (desde +4 ...)\n"
+"Prioridad del rango de números desde +20 (más lento) a -20 (más rápido).\n"
+"La prioridad negativa de números está restringida para administradores.\n"
+
+#: src/skill.c:384
+#, c-format
+msgid "priority %lu out of range"
+msgstr "la prioridad %lu está fuera de rango"
+
+#: src/skill.c:493
+#, c-format
+msgid "invalid pid number %s"
+msgstr "número de pid no válido %s"
+
+#: src/skill.c:497
+msgid "error reading reference namespace information"
+msgstr "error al leer información del espacio de nombres de referencia"
+
+#: src/skill.c:505
+msgid "invalid namespace list"
+msgstr "lista de espacios de trabajos no válida"
+
+#: src/skill.c:542
+msgid "no process selection criteria"
+msgstr "no hay criterio de selección de proceso"
+
+#: src/skill.c:545
+msgid "general flags may not be repeated"
+msgstr "las marcas generales no deben repetirse"
+
+#: src/skill.c:548
+msgid "-i makes no sense with -v, -f, and -n"
+msgstr "-i no tiene sentido con -v, -f, y -n"
+
+#: src/skill.c:550
+msgid "-v makes no sense with -i and -f"
+msgstr "-v no tiene sentido con -i y -f"
+
+#: src/skill.c:594
+#, c-format
+msgid "skill: \"%s\" is not supported\n"
+msgstr "skill: «%s» no está permitido\n"
+
+#: src/slabtop.c:108
+msgid " -d, --delay <secs> delay updates\n"
+msgstr " -d, --delay <segs> retrasar las actualizaciones\n"
+
+#: src/slabtop.c:109
+msgid " -o, --once only display once, then exit\n"
+msgstr " -o, --once mostrar solo una vez, después salir\n"
+
+#: src/slabtop.c:110
+msgid " -s, --sort <char> specify sort criteria by character (see below)\n"
+msgstr ""
+" -s, --sort <car> especificar criterio de orden por carácter (ver debajo)\n"
+
+#: src/slabtop.c:115
+msgid ""
+"\n"
+"The following are valid sort criteria:\n"
+msgstr ""
+"\n"
+"Los siguientes son criterios de clasificación válidos:\n"
+
+#: src/slabtop.c:116
+msgid " a: sort by number of active objects\n"
+msgstr " a: ordenar por número de objetos activos\n"
+
+#: src/slabtop.c:117
+msgid " b: sort by objects per slab\n"
+msgstr " b: ordenar por objetos por bloque\n"
+
+#: src/slabtop.c:118
+msgid " c: sort by cache size\n"
+msgstr " c: ordenar por tamaño de caché\n"
+
+#: src/slabtop.c:119
+msgid " l: sort by number of slabs\n"
+msgstr " l: ordenar por número de bloques\n"
+
+#: src/slabtop.c:120
+msgid " v: sort by (non display) number of active slabs\n"
+msgstr " v: ordenar por número de bloques activos (sin mostrar)\n"
+
+#: src/slabtop.c:121
+msgid " n: sort by name\n"
+msgstr " n: ordenar por nombre\n"
+
+#: src/slabtop.c:122
+msgid " o: sort by number of objects (the default)\n"
+msgstr " o: ordenar por número de objetos (predeterminado)\n"
+
+#: src/slabtop.c:123
+msgid " p: sort by (non display) pages per slab\n"
+msgstr " p: ordenar por páginas (sin mostrar) por bloque\n"
+
+#: src/slabtop.c:124
+msgid " s: sort by object size\n"
+msgstr " s: ordenar por tamaño de objeto\n"
+
+#: src/slabtop.c:125
+msgid " u: sort by cache utilization\n"
+msgstr " u: ordenar por utilización de caché\n"
+
+#: src/slabtop.c:188 src/slabtop.c:199
+msgid "Cannot combine -d and -o options"
+msgstr "No se pueden combinar las opciones -d y -o"
+
+#: src/slabtop.c:190
+msgid "illegal delay"
+msgstr "retraso ilegal"
+
+#: src/slabtop.c:192 src/tload.c:142 src/vmstat.c:1049
+msgid "delay must be positive integer"
+msgstr "el retraso debe ser un entero positivo"
+
+#: src/slabtop.c:236
+msgid "Error getting slab summary results"
+msgstr "Error al obtener los resultados del resumen de bloque"
+
+#. Translation Hint: Next five strings must not
+#. * exceed a length of 35 characters.
+#: src/slabtop.c:242
+#, no-c-format
+msgid "Active / Total Objects (% used)"
+msgstr "Objetos Activos/Totales (% usados)"
+
+#: src/slabtop.c:248
+#, no-c-format
+msgid "Active / Total Slabs (% used)"
+msgstr "Activo / Total Slabs (% usado)"
+
+#: src/slabtop.c:254
+#, no-c-format
+msgid "Active / Total Caches (% used)"
+msgstr "Activo / Total cachés (% usado)"
+
+#: src/slabtop.c:260
+#, no-c-format
+msgid "Active / Total Size (% used)"
+msgstr "Activo / Tamaño Total(% usado)"
+
+#: src/slabtop.c:265
+msgid "Minimum / Average / Maximum Object"
+msgstr "Objeto Mínimo/Medio /Máximo"
+
+#. Translation Hint: Please keep alignment of the
+#. * following intact.
+#: src/slabtop.c:276
+msgid " OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME"
+msgstr " OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME"
+
+#: src/slabtop.c:313 src/vmstat.c:767
+msgid "Unable to create slabinfo structure"
+msgstr "No se puede crear la estructura slabinfo"
+
+#: src/slabtop.c:318
+msgid "terminal setting retrieval"
+msgstr "terminal de recueración de configuración"
+
+#: src/slabtop.c:334 src/vmstat.c:774
+msgid "Unable to get slabinfo node data"
+msgstr "No se pueden obtener los datos del nodo slabinfo"
+
+#: src/slabtop.c:340 src/vmstat.c:776
+msgid "Unable to sort slab nodes"
+msgstr "No se pueden ordenar los nodos de bloque"
+
+#: src/sysctl.c:118
+#, c-format
+msgid "Path is not under %s: %s"
+msgstr "La ruta no está en %s: %s"
+
+#: src/sysctl.c:136
+#, c-format
+msgid "separators should not be repeated: %s"
+msgstr "los separadores no deben repetirse: %s"
+
+#: src/sysctl.c:232
+#, c-format
+msgid " %s [options] [variable[=value] ...]\n"
+msgstr " %s [opciones] [variable[=valor] ...]\n"
+
+#: src/sysctl.c:235
+msgid " -a, --all display all variables\n"
+msgstr " -a, --all mostrar todas las varaibles\n"
+
+#: src/sysctl.c:236
+msgid " -A alias of -a\n"
+msgstr " -A alias de -a\n"
+
+#: src/sysctl.c:237
+msgid " -X alias of -a\n"
+msgstr " -X alias de -a\n"
+
+#: src/sysctl.c:238
+msgid " --deprecated include deprecated parameters to listing\n"
+msgstr " --deprecated incluir parámetros obsoletos en la lista\n"
+
+#: src/sysctl.c:239
+msgid " --dry-run Print the key and values but do not write\n"
+msgstr ""
+" --dry-run Muestra la clave y los valores pero no los escribe\n"
+
+#: src/sysctl.c:240
+msgid " -b, --binary print value without new line\n"
+msgstr " -b, --binary mostrar valor sin nueva línea\n"
+
+#: src/sysctl.c:241
+msgid " -e, --ignore ignore unknown variables errors\n"
+msgstr " -e, --ignore ignorar errores de variables desconocidas\n"
+
+#: src/sysctl.c:242
+msgid " -N, --names print variable names without values\n"
+msgstr " -N, --names mostrar nombres de variables sin valores\n"
+
+#: src/sysctl.c:243
+msgid " -n, --values print only values of the given variable(s)\n"
+msgstr ""
+" -n, --values imprimir solo los valores de la(s) variable(s) "
+"proporcionadas\n"
+
+#: src/sysctl.c:244
+msgid " -p, --load[=<file>] read values from file\n"
+msgstr " -p, --load[=<archivo>] leer valores de archivo\n"
+
+#: src/sysctl.c:245
+msgid " -f alias of -p\n"
+msgstr " -f alias de -p\n"
+
+#: src/sysctl.c:246
+msgid " --system read values from all system directories\n"
+msgstr ""
+" --system leer valores de todos los directorios de sistema\n"
+
+#: src/sysctl.c:247
+msgid ""
+" -r, --pattern <expression>\n"
+" select setting that match expression\n"
+msgstr ""
+" -r, --pattern <expresión>\n"
+" seleccionar configuración que cumple con la "
+"expresión\n"
+
+#: src/sysctl.c:249
+msgid " -q, --quiet do not echo variable set\n"
+msgstr " -q, --quiet no mostrar eco al establecer la variable\n"
+
+#: src/sysctl.c:250
+msgid " -w, --write enable writing a value to variable\n"
+msgstr " -w, --write activar escritura de un valor a variable\n"
+
+#: src/sysctl.c:251
+msgid " -o does nothing\n"
+msgstr " -o no hace nada\n"
+
+#: src/sysctl.c:252
+msgid " -x does nothing\n"
+msgstr " -x no hace nada\n"
+
+#: src/sysctl.c:253
+msgid " -d alias of -h\n"
+msgstr " -d alias de -h\n"
+
+#: src/sysctl.c:334 src/sysctl.c:390
+#, c-format
+msgid "\"%s\" is an unknown key"
+msgstr "«%s» es una clave desconocida"
+
+#: src/sysctl.c:352 src/sysctl.c:508 src/sysctl.c:545
+#, c-format
+msgid "cannot stat %s"
+msgstr "no se puede efectuar stat sobre %s"
+
+#: src/sysctl.c:395 src/sysctl.c:437
+#, c-format
+msgid "permission denied on key '%s'"
+msgstr "permiso denegado para la clave «%s»"
+
+#: src/sysctl.c:402 src/sysctl.c:454
+#, c-format
+msgid "reading key \"%s\""
+msgstr "leyendo clave «%s»"
+
+#: src/sysctl.c:492
+#, c-format
+msgid "unable to open directory \"%s\""
+msgstr "incapaz de abrir la carpeta «%s»"
+
+#: src/sysctl.c:557
+msgid "strdup key"
+msgstr "clave strdup"
+
+#: src/sysctl.c:564 src/sysctl.c:571 src/sysctl.c:604
+#, c-format
+msgid "setting key \"%s\""
+msgstr "estableciendo la clave «%s»"
+
+#: src/sysctl.c:581
+#, c-format
+msgid "\"%s\" is an unknown key%s"
+msgstr "«%s» es una clave desconocida%s"
+
+#: src/sysctl.c:582 src/sysctl.c:591 src/sysctl.c:595
+msgid ", ignoring"
+msgstr ", ignorando"
+
+#: src/sysctl.c:590
+#, c-format
+msgid "permission denied on key \"%s\"%s"
+msgstr "permiso denegado con la clave «%s»%s"
+
+#: src/sysctl.c:594
+#, c-format
+msgid "setting key \"%s\"%s"
+msgstr "estableciendo clave «%s»%s"
+
+#: src/sysctl.c:669
+#, c-format
+msgid "%s(%d): invalid syntax, continuing..."
+msgstr "%s(%d): sintaxis no válida, continuando..."
+
+#: src/sysctl.c:761
+#, c-format
+msgid ""
+"GLOB_TILDE is not supported on your platform, the tilde in \"%s\" won't be "
+"expanded."
+msgstr ""
+"GLOB_TILDE no está soportado en su plataforma, la tilde en «%s» no se "
+"expandirá."
+
+#: src/sysctl.c:767
+msgid "glob failed"
+msgstr "glob fallido"
+
+#: src/sysctl.c:773
+#, c-format
+msgid "cannot open \"%s\""
+msgstr "no se puede abrir «%s»"
+
+#: src/sysctl.c:877 src/sysctl.c:884
+#, c-format
+msgid "* Applying %s ...\n"
+msgstr "* Aplicando %s...\n"
+
+#: src/sysctl.c:1050
+#, c-format
+msgid ""
+"no variables specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+"ninguna variable especificada\n"
+"Intente «%s --help» para más información."
+
+#: src/sysctl.c:1054
+#, c-format
+msgid ""
+"options -N and -q cannot coexist\n"
+"Try `%s --help' for more information."
+msgstr ""
+"las opciones -N y -q no pueden coexistir\n"
+"Intente «%s --help» para más información."
+
+#: src/tload.c:75 src/tload.c:77
+msgid "screen too small or too large"
+msgstr "la pantalla es demasiado pequeña o demasiado grande"
+
+#: src/tload.c:80
+msgid "screen too small"
+msgstr "la pantalla es demasiado pequeña"
+
+#: src/tload.c:96
+#, c-format
+msgid " %s [options] [tty]\n"
+msgstr " %s [opciones] [tty]\n"
+
+#: src/tload.c:98
+msgid " -d, --delay <secs> update delay in seconds\n"
+msgstr " -d, --delay <segs> retardo de actualización en segundos\n"
+
+#: src/tload.c:99
+msgid " -s, --scale <num> vertical scale\n"
+msgstr " -s, --scale <núm> escala vertical\n"
+
+#: src/tload.c:137
+msgid "scale cannot be negative"
+msgstr "la escala no puede ser negativa"
+
+#: src/tload.c:144 src/vmstat.c:1051
+msgid "too large delay value"
+msgstr "valor del retraso demasiado grande"
+
+#: src/tload.c:159
+msgid "can not open tty"
+msgstr "no se puede abrir tty"
+
+#: src/tload.c:182
+msgid "Load average file /proc/loadavg does not exist"
+msgstr "El archivo de promedio de carga /proc/loadavg no existe"
+
+#: src/tload.c:185
+msgid "Unable to get load average"
+msgstr "No se puede obtener el promedio de carga"
+
+#: src/tload.c:227 src/tload.c:229
+msgid "writing to tty failed"
+msgstr "falló la escritura en tty"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The following line pairs contain only plain text and consist of:
+#. . 1) a field name/column header - mostly upper case
+#. . 2) the related description - both upper and lower case
+#. .
+#. . To avoid truncation on the main top display, each column header
+#. . is noted with its maximum size, while a few are 'variable' width.
+#. . Names for the latter should probably be 10 or fewer characters.
+#. .
+#. . Those fields shown with a '+' are also eligible for user resizing
+#. . using the 'X' command. That means the default width might produce
+#. . truncation but need not if widened (see the man page 'X' command).
+#. .
+#. . All headers are subject to a maximum of 8 on the Fields Management
+#. . screen where truncation is entirely acceptable.
+#. .
+#. . The associated descriptions are always limited to 20 characters,
+#. . and are used only on the Fields Management screen.
+#. .
+#. . In all cases, fewer characters are just fine.
+#. .
+#. Translation Hint: maximum 'PID' = 5
+#: src/top/top_nls.c:152
+msgid "PID"
+msgstr "PID"
+
+#: src/top/top_nls.c:153
+msgid "Process Id"
+msgstr "ID de proceso"
+
+#. Translation Hint: maximum 'PPID' = 5
+#: src/top/top_nls.c:155
+msgid "PPID"
+msgstr "PPID"
+
+#: src/top/top_nls.c:156
+msgid "Parent Process pid"
+msgstr "Pid del proceso padre"
+
+#. Translation Hint: maximum 'UID' = 5 +
+#: src/top/top_nls.c:158
+msgid "UID"
+msgstr "UID"
+
+#: src/top/top_nls.c:159
+msgid "Effective User Id"
+msgstr "Identificador del usuario efectivo"
+
+#. Translation Hint: maximum 'USER' = 8 +
+#: src/top/top_nls.c:161 src/w.c:799
+msgid "USER"
+msgstr "USUARIO"
+
+#: src/top/top_nls.c:162
+msgid "Effective User Name"
+msgstr "Nombre del usuario efectivo"
+
+#. Translation Hint: maximum 'RUID' = 5 +
+#: src/top/top_nls.c:164
+msgid "RUID"
+msgstr "RUID"
+
+#: src/top/top_nls.c:165
+msgid "Real User Id"
+msgstr "Id del usuario real"
+
+#. Translation Hint: maximum 'RUSER' = 8 +
+#: src/top/top_nls.c:167
+msgid "RUSER"
+msgstr "RUSER"
+
+#: src/top/top_nls.c:168
+msgid "Real User Name"
+msgstr "Nombre del usuario real"
+
+#. Translation Hint: maximum 'SUID' = 5 +
+#: src/top/top_nls.c:170
+msgid "SUID"
+msgstr "SUID"
+
+#: src/top/top_nls.c:171
+msgid "Saved User Id"
+msgstr "Id del usuario registrado"
+
+#. Translation Hint: maximum 'SUSER' = 8 +
+#: src/top/top_nls.c:173
+msgid "SUSER"
+msgstr "SUSER"
+
+#: src/top/top_nls.c:174
+msgid "Saved User Name"
+msgstr "Nombre de usuario guardado"
+
+#. Translation Hint: maximum 'GID' = 5 +
+#: src/top/top_nls.c:176
+msgid "GID"
+msgstr "GID"
+
+#: src/top/top_nls.c:177
+msgid "Group Id"
+msgstr "ID de grupo"
+
+#. Translation Hint: maximum 'GROUP' = 8 +
+#: src/top/top_nls.c:179
+msgid "GROUP"
+msgstr "GRUPO"
+
+#: src/top/top_nls.c:180
+msgid "Group Name"
+msgstr "Nombre de grupo"
+
+#. Translation Hint: maximum 'PGRP' = 5
+#: src/top/top_nls.c:182
+msgid "PGRP"
+msgstr "PGRP"
+
+#: src/top/top_nls.c:183
+msgid "Process Group Id"
+msgstr "Identificación del grupo de procesos"
+
+#. Translation Hint: maximum 'TTY' = 8 +
+#: src/top/top_nls.c:185
+msgid "TTY"
+msgstr "TTY"
+
+#: src/top/top_nls.c:186
+msgid "Controlling Tty"
+msgstr "Controlar Tty"
+
+#. Translation Hint: maximum 'TPGID' = 5
+#: src/top/top_nls.c:188
+msgid "TPGID"
+msgstr "TPGID"
+
+#: src/top/top_nls.c:189
+msgid "Tty Process Grp Id"
+msgstr "Id de grupo de proceso tty"
+
+#. Translation Hint: maximum 'SID' = 5
+#: src/top/top_nls.c:191
+msgid "SID"
+msgstr "SID"
+
+#: src/top/top_nls.c:192
+msgid "Session Id"
+msgstr "Id de sesión"
+
+#. Translation Hint: maximum 'PR' = 3
+#: src/top/top_nls.c:194
+msgid "PR"
+msgstr "PR"
+
+#: src/top/top_nls.c:195
+msgid "Priority"
+msgstr "Prioridad"
+
+#. Translation Hint: maximum 'NI' = 3
+#: src/top/top_nls.c:197
+msgid "NI"
+msgstr "NI"
+
+#: src/top/top_nls.c:198
+msgid "Nice Value"
+msgstr "Valor adecuado"
+
+#. Translation Hint: maximum 'nTH' = 3
+#: src/top/top_nls.c:200
+msgid "nTH"
+msgstr "nTH"
+
+#: src/top/top_nls.c:201
+msgid "Number of Threads"
+msgstr "NuÌmero de hilos"
+
+#. Translation Hint: maximum 'P' = 1
+#: src/top/top_nls.c:203
+msgid "P"
+msgstr "P"
+
+#: src/top/top_nls.c:204
+msgid "Last Used Cpu (SMP)"
+msgstr "Última Cpu utilizada (SMP)"
+
+#. Translation Hint: maximum '%CPU' = 4
+#: src/top/top_nls.c:206
+#, c-format
+msgid "%CPU"
+msgstr "%CPU"
+
+#: src/top/top_nls.c:207
+msgid "CPU Usage"
+msgstr "Uso de CPU"
+
+#. Translation Hint: maximum '' = 6
+#: src/top/top_nls.c:209
+msgid "TIME"
+msgstr "HORA"
+
+#: src/top/top_nls.c:210
+msgid "CPU Time"
+msgstr "Tiempo de CPU"
+
+#. Translation Hint: maximum 'TIME+' = 9
+#: src/top/top_nls.c:212
+msgid "TIME+"
+msgstr "HORA+"
+
+#: src/top/top_nls.c:213
+msgid "CPU Time, hundredths"
+msgstr "Tiempo de la CPU, centésimas"
+
+#. Translation Hint: maximum '%MEM' = 4
+#: src/top/top_nls.c:215
+msgid "%MEM"
+msgstr "%MEM"
+
+#: src/top/top_nls.c:216
+msgid "Memory Usage (RES)"
+msgstr "Uso de memoria (RES)"
+
+#. Translation Hint: maximum 'VIRT' = 7
+#: src/top/top_nls.c:218
+msgid "VIRT"
+msgstr "VIRT"
+
+#: src/top/top_nls.c:219
+msgid "Virtual Image (KiB)"
+msgstr "Imagen virtual (KiB)"
+
+#. Translation Hint: maximum 'SWAP' = 6
+#: src/top/top_nls.c:221
+msgid "SWAP"
+msgstr "SWAP"
+
+#: src/top/top_nls.c:222
+msgid "Swapped Size (KiB)"
+msgstr "Tamaño intercambiado (KiB)"
+
+#. Translation Hint: maximum 'RES' = 6
+#: src/top/top_nls.c:224
+msgid "RES"
+msgstr "RES"
+
+#: src/top/top_nls.c:225
+msgid "Resident Size (KiB)"
+msgstr "Tamaño residente (KiB)"
+
+#. Translation Hint: maximum 'CODE' = 4
+#: src/top/top_nls.c:227
+msgid "CODE"
+msgstr "CODE"
+
+#: src/top/top_nls.c:228
+msgid "Code Size (KiB)"
+msgstr "Tamaño del codigo (KiB)"
+
+#. Translation Hint: maximum 'DATA' = 7
+#: src/top/top_nls.c:230
+msgid "DATA"
+msgstr "DATA"
+
+#: src/top/top_nls.c:231
+msgid "Data+Stack (KiB)"
+msgstr "Datos + pila (KiB)"
+
+#. Translation Hint: maximum 'SHR' = 6
+#: src/top/top_nls.c:233
+msgid "SHR"
+msgstr "SHR"
+
+#: src/top/top_nls.c:234
+msgid "Shared Memory (KiB)"
+msgstr "Memoria compartida (KiB)"
+
+#. Translation Hint: maximum 'nMaj' = 4
+#: src/top/top_nls.c:236
+msgid "nMaj"
+msgstr "nMaj"
+
+#: src/top/top_nls.c:237
+msgid "Major Page Faults"
+msgstr "Principales fallos de página"
+
+#. Translation Hint: maximum 'nMin' = 4
+#: src/top/top_nls.c:239
+msgid "nMin"
+msgstr "nMin"
+
+#: src/top/top_nls.c:240
+msgid "Minor Page Faults"
+msgstr "Minoritarios fallos de página"
+
+#. Translation Hint: maximum 'nDRT' = 4
+#: src/top/top_nls.c:242
+msgid "nDRT"
+msgstr "nDRT"
+
+#: src/top/top_nls.c:243
+msgid "Dirty Pages Count"
+msgstr "Cuenta de las páginas desfasadas"
+
+#. Translation Hint: maximum 'S' = 1
+#: src/top/top_nls.c:245
+msgid "S"
+msgstr "S"
+
+#: src/top/top_nls.c:246
+msgid "Process Status"
+msgstr "Estado de proceso"
+
+#. Translation Hint: maximum 'COMMAND' = variable
+#: src/top/top_nls.c:248
+msgid "COMMAND"
+msgstr "ORDEN"
+
+#: src/top/top_nls.c:249
+msgid "Command Name/Line"
+msgstr "Nombre/línea de orden"
+
+#. Translation Hint: maximum 'WCHAN' = 10 +
+#: src/top/top_nls.c:251
+msgid "WCHAN"
+msgstr "WCHAN"
+
+#: src/top/top_nls.c:252
+msgid "Sleeping in Function"
+msgstr "Durmiendo en la función"
+
+#. Translation Hint: maximum 'Flags' = 8
+#: src/top/top_nls.c:254
+msgid "Flags"
+msgstr "Flags"
+
+#: src/top/top_nls.c:255
+msgid "Task Flags <sched.h>"
+msgstr "Opciones de tareas (sched.h)"
+
+#. Translation Hint: maximum 'CGROUPS' = variable
+#: src/top/top_nls.c:257
+msgid "CGROUPS"
+msgstr "CGROUPS"
+
+#: src/top/top_nls.c:258
+msgid "Control Groups"
+msgstr "Grupos de control"
+
+#. Translation Hint: maximum 'SUPGIDS' = variable
+#: src/top/top_nls.c:260
+msgid "SUPGIDS"
+msgstr "SUPGIDS"
+
+#: src/top/top_nls.c:261
+msgid "Supp Groups IDs"
+msgstr "ID de grupos de soporte"
+
+#. Translation Hint: maximum 'SUPGRPS' = variable
+#: src/top/top_nls.c:263
+msgid "SUPGRPS"
+msgstr "SUPGRPS"
+
+#: src/top/top_nls.c:264
+msgid "Supp Groups Names"
+msgstr "Nombres de grupos de soporte"
+
+#. Translation Hint: maximum 'TGID' = 5
+#: src/top/top_nls.c:266
+msgid "TGID"
+msgstr "TGID"
+
+#: src/top/top_nls.c:267
+msgid "Thread Group Id"
+msgstr "Id Grupo de hilo"
+
+#. Translation Hint: maximum 'OOMa' = 5
+#: src/top/top_nls.c:269
+msgid "OOMa"
+msgstr "OOMa"
+
+#: src/top/top_nls.c:270
+msgid "OOMEM Adjustment"
+msgstr "Ajuste de OOMEM"
+
+#. Translation Hint: maximum 'OOMs' = 4
+#: src/top/top_nls.c:272
+msgid "OOMs"
+msgstr "OOMs"
+
+#: src/top/top_nls.c:273
+msgid "OOMEM Score current"
+msgstr "Puntuación OOMEM actual"
+
+#. Translation Hint: maximum 'ENVIRON' = variable
+#: src/top/top_nls.c:275
+msgid "ENVIRON"
+msgstr "ENTORNO"
+
+#. Translation Hint: the abbreviation 'vars' below is shorthand for
+#. 'variables'
+#: src/top/top_nls.c:278
+msgid "Environment vars"
+msgstr "Variables de entorno"
+
+#. Translation Hint: maximum 'vMj' = 3
+#: src/top/top_nls.c:280
+msgid "vMj"
+msgstr "vMj"
+
+#: src/top/top_nls.c:281
+msgid "Major Faults delta"
+msgstr "Fallos mayores delta"
+
+#. Translation Hint: maximum 'vMn' = 3
+#: src/top/top_nls.c:283
+msgid "vMn"
+msgstr "vMn"
+
+#: src/top/top_nls.c:284
+msgid "Minor Faults delta"
+msgstr "Fallos menores delta"
+
+#. Translation Hint: maximum 'USED' = 6
+#: src/top/top_nls.c:286
+msgid "USED"
+msgstr "USED"
+
+#: src/top/top_nls.c:287
+msgid "Res+Swap Size (KiB)"
+msgstr "Tamaño de Res+Swap (KiB)"
+
+#. Translation Hint: maximum 'nsIPC' = 10 +
+#: src/top/top_nls.c:289
+msgid "nsIPC"
+msgstr "nsIPC"
+
+#: src/top/top_nls.c:290
+msgid "IPC namespace Inode"
+msgstr "Inodo de espacio de nombres IPC"
+
+#. Translation Hint: maximum 'nsMNT' = 10 +
+#: src/top/top_nls.c:292
+msgid "nsMNT"
+msgstr "nsMNT"
+
+#: src/top/top_nls.c:293
+msgid "MNT namespace Inode"
+msgstr "Inodo de espacio de nombres MNT"
+
+#. Translation Hint: maximum 'nsNET' = 10 +
+#: src/top/top_nls.c:295
+msgid "nsNET"
+msgstr "nsNET"
+
+#: src/top/top_nls.c:296
+msgid "NET namespace Inode"
+msgstr "Inodo de espacio de nombres NET"
+
+#. Translation Hint: maximum 'nsPID' = 10 +
+#: src/top/top_nls.c:298
+msgid "nsPID"
+msgstr "nsPID"
+
+#: src/top/top_nls.c:299
+msgid "PID namespace Inode"
+msgstr "Inodo de espacio de nombres PID"
+
+#. Translation Hint: maximum 'nsUSER' = 10 +
+#: src/top/top_nls.c:301
+msgid "nsUSER"
+msgstr "nsUSER"
+
+#: src/top/top_nls.c:302
+msgid "USER namespace Inode"
+msgstr "Inodo de espacio de nombres USER"
+
+#. Translation Hint: maximum 'nsUTS' = 10 +
+#: src/top/top_nls.c:304
+msgid "nsUTS"
+msgstr "nsUTS"
+
+#: src/top/top_nls.c:305
+msgid "UTS namespace Inode"
+msgstr "Inodo de espacio de nombres UTS"
+
+#. Translation Hint: maximum 'LXC' = 8 +
+#: src/top/top_nls.c:307
+msgid "LXC"
+msgstr "LXC"
+
+#: src/top/top_nls.c:308
+msgid "LXC container name"
+msgstr "Nombre del contenedor LXC"
+
+#. Translation Hint: maximum 'RSan' = 6
+#: src/top/top_nls.c:310
+msgid "RSan"
+msgstr "RSan"
+
+#: src/top/top_nls.c:311
+msgid "RES Anonymous (KiB)"
+msgstr "RES anónimo (KiB)"
+
+#. Translation Hint: maximum 'RSfd' = 6
+#: src/top/top_nls.c:313
+msgid "RSfd"
+msgstr "RSfd"
+
+#: src/top/top_nls.c:314
+msgid "RES File-based (KiB)"
+msgstr "RES Basado-en-archivo (KiB)"
+
+#. Translation Hint: maximum 'RSlk' = 6
+#: src/top/top_nls.c:316
+msgid "RSlk"
+msgstr "RSlk"
+
+#: src/top/top_nls.c:317
+msgid "RES Locked (KiB)"
+msgstr "RES Bloqueado (KiB)"
+
+#. Translation Hint: maximum 'RSsh' = 6
+#: src/top/top_nls.c:319
+msgid "RSsh"
+msgstr "RSsh"
+
+#: src/top/top_nls.c:320
+msgid "RES Shared (KiB)"
+msgstr "RES Compartido (KiB)"
+
+#. Translation Hint: maximum 'CGNAME' = variable
+#: src/top/top_nls.c:322
+msgid "CGNAME"
+msgstr "CGNAME"
+
+#: src/top/top_nls.c:323
+msgid "Control Group name"
+msgstr "Nombre de grupo de control"
+
+#. Translation Hint: maximum 'NU' = 2
+#: src/top/top_nls.c:325
+msgid "NU"
+msgstr "NU"
+
+#: src/top/top_nls.c:326
+msgid "Last Used NUMA node"
+msgstr "Último nodo NUMA utilizado"
+
+#. Translation Hint: maximum 'LOGID' = 5 +
+#: src/top/top_nls.c:328
+msgid "LOGID"
+msgstr "LOGID"
+
+#: src/top/top_nls.c:329
+msgid "Login User Id"
+msgstr "Id del usuario que inicia sesión"
+
+#. Translation Hint: maximum 'EXE' = variable
+#: src/top/top_nls.c:331
+msgid "EXE"
+msgstr "EXE"
+
+#: src/top/top_nls.c:332
+msgid "Executable Path"
+msgstr "Ruta ejecutable"
+
+#: src/top/top_nls.c:338
+msgid "Res Mem (smaps), KiB"
+msgstr "Mem. res. (smaps), KiB"
+
+#. Translation Hint: maximum 'PSS' = 6
+#: src/top/top_nls.c:340
+msgid "PSS"
+msgstr "PSS"
+
+#: src/top/top_nls.c:341
+msgid "Proportion RSS, KiB"
+msgstr "Proporción RSS, KiB"
+
+#. Translation Hint: maximum 'PSan' = 6
+#: src/top/top_nls.c:343
+msgid "PSan"
+msgstr "PSan"
+
+#: src/top/top_nls.c:344
+msgid "Proportion Anon, KiB"
+msgstr "Proporción Anon, KiB"
+
+#. Translation Hint: maximum 'PSfd' = 6
+#: src/top/top_nls.c:346
+msgid "PSfd"
+msgstr "PSfd"
+
+#: src/top/top_nls.c:347
+msgid "Proportion File, KiB"
+msgstr "Proporción archivo, KiB"
+
+#. Translation Hint: maximum 'PSsh' = 6
+#: src/top/top_nls.c:349
+msgid "PSsh"
+msgstr "PSsh"
+
+#: src/top/top_nls.c:350
+msgid "Proportion Shrd, KiB"
+msgstr "Proporción Shrd, KiB"
+
+#. Translation Hint: maximum 'USS' = 6
+#: src/top/top_nls.c:352
+msgid "USS"
+msgstr "USS"
+
+#: src/top/top_nls.c:353
+msgid "Unique RSS, KiB"
+msgstr "RSS único, KiB"
+
+#. Translation Hint: maximum 'ioR' = 6
+#: src/top/top_nls.c:355
+msgid "ioR"
+msgstr "ioR"
+
+#: src/top/top_nls.c:356
+msgid "I/O Bytes Read"
+msgstr "E/S bytes leídos"
+
+#. Translation Hint: maximum 'ioRop' = 5
+#: src/top/top_nls.c:358
+msgid "ioRop"
+msgstr "ioRop"
+
+#: src/top/top_nls.c:359
+msgid "I/O Read Operations"
+msgstr "E/S operaciónes de lectura"
+
+#. Translation Hint: maximum 'ioW' = 6
+#: src/top/top_nls.c:361
+msgid "ioW"
+msgstr "ioW"
+
+#: src/top/top_nls.c:362
+msgid "I/O Bytes Written"
+msgstr "E/S bytes escritos"
+
+#. Translation Hint: maximum 'ioWop' = 5
+#: src/top/top_nls.c:364
+msgid "ioWop"
+msgstr "ioWop"
+
+#: src/top/top_nls.c:365
+msgid "I/O Write Operations"
+msgstr "E/S operaciones de escritura"
+
+#. Translation Hint: maximum 'AGID' = 5
+#: src/top/top_nls.c:367
+msgid "AGID"
+msgstr "AGID"
+
+#: src/top/top_nls.c:368
+msgid "Autogroup Identifier"
+msgstr "Identificador de autogrupo"
+
+#. Translation Hint: maximum 'AGNI' = 4
+#: src/top/top_nls.c:370
+msgid "AGNI"
+msgstr "AGNI"
+
+#: src/top/top_nls.c:371
+msgid "Autogroup Nice Value"
+msgstr "Valor nice de autogroupo"
+
+#. Translation Hint: maximum 'STARTED' = 7
+#: src/top/top_nls.c:373
+msgid "STARTED"
+msgstr "INICIADO"
+
+#: src/top/top_nls.c:374
+msgid "Start Time from boot"
+msgstr "Tiempo de inicio desde el arranque"
+
+#. Translation Hint: maximum 'ELAPSED' = 7
+#: src/top/top_nls.c:376
+msgid "ELAPSED"
+msgstr "TRANSCURRIDO"
+
+#: src/top/top_nls.c:377
+msgid "Elapsed Running Time"
+msgstr "Tiempo de ejecución transcurrido"
+
+#. Translation Hint: maximum '%CUU' = 6
+#: src/top/top_nls.c:379
+#, c-format
+msgid "%CUU"
+msgstr "%CUU"
+
+#: src/top/top_nls.c:380
+msgid "CPU Utilization"
+msgstr "Utilización de la CPU"
+
+#. Translation Hint: maximum '%CUC' = 7
+#: src/top/top_nls.c:382
+#, c-format
+msgid "%CUC"
+msgstr "%CUC"
+
+#: src/top/top_nls.c:383
+msgid "Utilization + child"
+msgstr "Utilización + hijo"
+
+#. Translation Hint: maximum 'nsCGROUP' = 10 +
+#: src/top/top_nls.c:385
+msgid "nsCGROUP"
+msgstr "nsCGROUP"
+
+#: src/top/top_nls.c:386
+msgid "CGRP namespace Inode"
+msgstr "Inodo de espacio de nombres CGRP"
+
+#. Translation Hint: maximum 'nsTIME' = 10 +
+#: src/top/top_nls.c:388
+msgid "nsTIME"
+msgstr "nsTIME"
+
+#: src/top/top_nls.c:389
+msgid "TIME namespace Inode"
+msgstr "Inodo del espacio de nombres TIME"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . This group of lines contains both plain text and c-format strings.
+#. .
+#. . Some strings reflect switches used to affect the running program
+#. . and should not be translated without also making corresponding
+#. . c-code logic changes.
+#. .
+#: src/top/top_nls.c:409
+#, c-format
+msgid ""
+"\tsignal %d (%s) was caught by %s, please\n"
+"\tsend bug reports to <procps@freelists.org>\n"
+msgstr ""
+"\tseñal %d (%s) fue atrapada por %s\n"
+"\tenvíe informes de errores a <procps@freelists.org>\n"
+
+#: src/top/top_nls.c:439
+#, c-format
+msgid "bad delay interval '%s'"
+msgstr "intervalo de retraso incorrecto «%s»"
+
+#: src/top/top_nls.c:440
+#, c-format
+msgid "bad iterations argument '%s'"
+msgstr "argumento de iteraciones fallido «%s»"
+
+#: src/top/top_nls.c:441
+#, c-format
+msgid "pid limit (%d) exceeded"
+msgstr "límite pid (%d) superado"
+
+#: src/top/top_nls.c:442
+#, c-format
+msgid "bad pid '%s'"
+msgstr "pid «%s» fallido"
+
+#: src/top/top_nls.c:443
+#, c-format
+msgid "-%c argument missing"
+msgstr "falta el argumento -%c"
+
+#: src/top/top_nls.c:444
+#, c-format
+msgid "bad width arg '%s'"
+msgstr "ancho de argumento no válido «%s»"
+
+#: src/top/top_nls.c:445
+#, c-format
+msgid "unknown option '%s'"
+msgstr "opción desconocida «%s»"
+
+#: src/top/top_nls.c:446
+msgid "-d disallowed in \"secure\" mode"
+msgstr "-d no permitido en modo «seguro»"
+
+#: src/top/top_nls.c:447
+msgid "-d requires positive argument"
+msgstr "-d necesita un número positivo"
+
+#: src/top/top_nls.c:448
+msgid "On"
+msgstr "Activada"
+
+#: src/top/top_nls.c:449
+msgid "Off"
+msgstr "Apagado"
+
+#: src/top/top_nls.c:450
+#, c-format
+msgid "%s from %s"
+msgstr "%s desde %s"
+
+#: src/top/top_nls.c:451
+#, c-format
+msgid "Forest mode %s"
+msgstr "Modo forest %s"
+
+#: src/top/top_nls.c:452
+msgid "failed tty get"
+msgstr "falló al obtener tty"
+
+#: src/top/top_nls.c:453
+#, c-format
+msgid "failed tty set: %s"
+msgstr "falla asignación tty: %s"
+
+#: src/top/top_nls.c:454
+msgid "Choose field group (1 - 4)"
+msgstr "Elija el campo de grupo (1 - 4)"
+
+#: src/top/top_nls.c:455
+msgid "Command disabled, 'A' mode required"
+msgstr "Orden desactivada, modo «A» necesario"
+
+#: src/top/top_nls.c:456
+#, c-format
+msgid "Command disabled, activate %s with '-' or '_'"
+msgstr "Orden desactivada, activar %s con «-» o «_»"
+
+#: src/top/top_nls.c:457
+msgid "No colors to map!"
+msgstr "¡No hay colores que asignar!"
+
+#: src/top/top_nls.c:458
+#, c-format
+msgid "Failed '%s' open: %s"
+msgstr "Fallo «%s» al abrir: %s"
+
+#: src/top/top_nls.c:459
+#, c-format
+msgid "Wrote configuration to '%s'"
+msgstr "Configuración escrita en «%s»"
+
+#: src/top/top_nls.c:460
+#, c-format
+msgid "Change delay from %.1f to"
+msgstr "Cambiar el retraso de %.1f hasta"
+
+#: src/top/top_nls.c:461
+#, c-format
+msgid "Show threads %s"
+msgstr "Mostrar hilos %s"
+
+#: src/top/top_nls.c:462
+#, c-format
+msgid "Irix mode %s"
+msgstr "Modo Irix %s"
+
+#: src/top/top_nls.c:463
+#, c-format
+msgid "PID to signal/kill [default pid = %d]"
+msgstr "PID a señal/matar [pid por defecto = %d]"
+
+#: src/top/top_nls.c:464
+#, c-format
+msgid "Send pid %d signal [%d/sigterm]"
+msgstr "Enviar la señal pid %d [%d/sigterm]"
+
+#: src/top/top_nls.c:465
+#, c-format
+msgid "Failed signal pid '%d' with '%d': %s"
+msgstr "Falló el pid de señal «%d» con «%d»: %s"
+
+#: src/top/top_nls.c:466
+msgid "Invalid signal"
+msgstr "Señal no válida"
+
+#: src/top/top_nls.c:467
+#, c-format
+msgid "PID to renice [default pid = %d]"
+msgstr "PID para reiniciar [pid por defecto = %d]"
+
+#: src/top/top_nls.c:468
+#, c-format
+msgid "Renice PID %d to value"
+msgstr "Renice PID %d al valor"
+
+#: src/top/top_nls.c:469
+#, c-format
+msgid "Failed renice of PID %d to %d: %s"
+msgstr "Falló renice de PID %d para %d: %s"
+
+#: src/top/top_nls.c:470
+#, c-format
+msgid "Rename window '%s' to (1-3 chars)"
+msgstr "Cambiar el nombre de la ventana «%s» a (caracteres 1-3)"
+
+#: src/top/top_nls.c:471
+#, c-format
+msgid "Cumulative time %s"
+msgstr "Tiempo acumulado %s"
+
+#: src/top/top_nls.c:472
+#, c-format
+msgid "Maximum tasks = %d, change to (0 is unlimited)"
+msgstr "Máximo de tareas =%d, cambiar a (0 es ilimitado)"
+
+#: src/top/top_nls.c:473
+msgid "Invalid maximum"
+msgstr "Máximo no válido"
+
+#: src/top/top_nls.c:474
+msgid "Which user (blank for all)"
+msgstr "Qué usuario (blanco para todos)"
+
+#: src/top/top_nls.c:475
+msgid "Unknown command - try 'h' for help"
+msgstr "Orden desconocida - intente «h» para la ayuda"
+
+#: src/top/top_nls.c:476
+#, c-format
+msgid "scroll coordinates: y = %d/%d (tasks), x = %d/%d (fields)"
+msgstr "desplazar coordenadas: y = %d/%d (tareas), x = %d/%d (campos)"
+
+#: src/top/top_nls.c:477
+msgid "failed memory allocate"
+msgstr "fallo de asignación de memoria"
+
+#: src/top/top_nls.c:478
+msgid "failed memory re-allocate"
+msgstr "fallo de reasignación de memoria"
+
+#: src/top/top_nls.c:479
+msgid "Unacceptable floating point"
+msgstr "Punto flotante inacepable"
+
+#: src/top/top_nls.c:480
+msgid "Invalid user"
+msgstr "Usuario no vaÌlido"
+
+#: src/top/top_nls.c:481
+msgid "forest view"
+msgstr "visualizar forest"
+
+#: src/top/top_nls.c:482
+msgid "failed pid maximum size test"
+msgstr "falló pid del test de tamaño máximo."
+
+#: src/top/top_nls.c:483
+msgid "failed number of cpus test"
+msgstr "fallo el test de número de cpus"
+
+#: src/top/top_nls.c:484
+#, c-format
+msgid "incompatible rcfile, you should delete '%s'"
+msgstr "rcfile no compatible, debe eliminar «%s»"
+
+#: src/top/top_nls.c:485
+#, c-format
+msgid "window entry #%d corrupt, please delete '%s'"
+msgstr "ventana de entrada #%d corrupta, eliminar «%s»"
+
+#: src/top/top_nls.c:486
+msgid "Unavailable in secure mode"
+msgstr "No disponible en modo seguro"
+
+#: src/top/top_nls.c:487
+msgid "Only 1 cpu detected"
+msgstr "Solo 1 cpu detectada"
+
+#: src/top/top_nls.c:488
+msgid "Unacceptable integer"
+msgstr "Entero inaceptable"
+
+#: src/top/top_nls.c:489
+msgid "conflicting process selections (U/p/u)"
+msgstr "selecciones del proceso conflictivas (U/p/u)"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . kibibytes (1024 bytes)
+#: src/top/top_nls.c:492
+msgid "KiB"
+msgstr "KiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . mebibytes (1,048,576 bytes)
+#: src/top/top_nls.c:495
+msgid "MiB"
+msgstr "MiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . gibibytes (1,073,741,824 bytes)
+#: src/top/top_nls.c:498
+msgid "GiB"
+msgstr "GiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . tebibytes (1,099,511,627,776 bytes)
+#: src/top/top_nls.c:501
+msgid "TiB"
+msgstr "TiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . pebibytes (1,024 tebibytes)
+#: src/top/top_nls.c:504
+msgid "PiB"
+msgstr "PiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . exbibytes (1,024 pebibytes)
+#: src/top/top_nls.c:507
+msgid "EiB"
+msgstr "EiB"
+
+#: src/top/top_nls.c:508
+msgid "Threads"
+msgstr "Hilos"
+
+#: src/top/top_nls.c:509
+msgid "Tasks"
+msgstr "Tareas"
+
+#. Translation Hint: The following "word" is meant to represent either a single
+#. . cpu or all of the processors in a multi-processor computer
+#. . (should be exactly 6 characters, excluding leading % & colon)
+#: src/top/top_nls.c:513
+#, c-format
+msgid "%Cpu(s):"
+msgstr "%Cpu(s):"
+
+#. Translation Hint: The following "word" is meant to represent a single processor
+#. and 'the Cp' prefix will be combined with a core id: 'p', 'e' or 'u'
+#. . (if 'Cp' is translated, it must be exactly 2 characters long)
+#: src/top/top_nls.c:517
+#, c-format
+msgid "%%Cp%c%-3d:"
+msgstr "%%Cp%c%-3d:"
+
+#. Translation Hint: The following word "another" must have 1 trailing space
+#: src/top/top_nls.c:519
+msgid "another "
+msgstr "otro "
+
+#: src/top/top_nls.c:520
+msgid "Locate next inactive, use \"L\""
+msgstr "Localice el próximo inactivo, use «L»"
+
+#: src/top/top_nls.c:521
+msgid "Locate string"
+msgstr "Ubicar cadena"
+
+#: src/top/top_nls.c:522
+#, c-format
+msgid "%s\"%s\" not found"
+msgstr "%s«%s» no encontrado"
+
+#: src/top/top_nls.c:523
+#, c-format
+msgid "width incr is %d, change to (0 default, -1 auto)"
+msgstr "el incremento de anchura es %d, cambiar a (0 por defecto, -1 auto)"
+
+#: src/top/top_nls.c:524
+msgid "rcfile has inspect/other-filter error(s), save anyway?"
+msgstr ""
+"rcfile tiene error(es) en inspect/other-filter, ¿guardar de todos modos?"
+
+#: src/top/top_nls.c:525
+#, c-format
+msgid "unrecognized field name '%s'"
+msgstr "nombre de campo no reconocido «%s»"
+
+#: src/top/top_nls.c:526
+msgid "even using field names only, window is now too small"
+msgstr "incluso usando solo nombres de campos, la ventana es demasiada pequeña"
+
+#: src/top/top_nls.c:527
+msgid "Open Files"
+msgstr "Abrir archivos"
+
+#: src/top/top_nls.c:528
+msgid "NUMA Info"
+msgstr "Información de NUMA"
+
+#: src/top/top_nls.c:529
+msgid "Log"
+msgstr "Registro"
+
+#: src/top/top_nls.c:530
+msgid ""
+"the '=' key will eventually show the actual file read or command(s) "
+"executed ..."
+msgstr ""
+"la tecla «=» mostrará eventualmente el archivo leído o comando(s) "
+"ejecutado(s) ..."
+
+#: src/top/top_nls.c:531
+msgid "demo"
+msgstr "demo"
+
+#: src/top/top_nls.c:532
+#, c-format
+msgid ""
+"This is simulated output representing the contents of some file or the "
+"output\n"
+"from some command. Exactly which commands and/or files are solely up to "
+"you.\n"
+"\n"
+"Although this text is for information purposes only, it can still be "
+"scrolled\n"
+"and searched like real output will be. You are encouraged to experiment "
+"with\n"
+"those features as explained in the prologue above.\n"
+"\n"
+"To enable real Inspect functionality, entries must be added to the end of "
+"the\n"
+"top personal personal configuration file. You could use your favorite "
+"editor\n"
+"to accomplish this, taking care not to disturb existing entries.\n"
+"\n"
+"Another way to add entries is illustrated below, but it risks overwriting "
+"the\n"
+"rcfile. Redirected echoes must not replace (>) but append (>>) to that "
+"file.\n"
+"\n"
+" /bin/echo -e \"pipe\\tOpen Files\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+" /bin/echo -e \"file\\tNUMA Info\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+" /bin/echo -e \"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr\" >> ~/."
+"toprc\n"
+"\n"
+"If you don't know the location or name of the top rcfile, use the 'W' "
+"command\n"
+"and note those details. After backing up the current rcfile, try issuing "
+"the\n"
+"above echoes exactly as shown, replacing '.toprc' as appropriate. The "
+"safest\n"
+"approach would be to use copy then paste to avoid any typing mistakes.\n"
+"\n"
+"Finally, restart top to reveal what actual Inspect entries combined with "
+"this\n"
+"new command can offer. The possibilities are endless, especially "
+"considering\n"
+"that 'pipe' type entries can include shell scripts too!\n"
+"\n"
+"For additional important information, please consult the top(1) man "
+"document.\n"
+"Then, enhance top with your very own customized 'file' and/or 'pipe' "
+"entries.\n"
+"\n"
+"Enjoy!\n"
+msgstr ""
+"Esta es una salida simulada que representa el contenido de algún archivo o "
+"la salida de\n"
+"algún comando. Exactamente qué comandos y/o archivos, depende únicamente de "
+"usted.\n"
+"\n"
+"Aunque este texto es solo para fines informativos, todavía se puede "
+"desplazar y buscar\n"
+"como en la salida real. Se le anima a experimentar con esas características "
+"como se explica\n"
+"en el prólogo anterior.\n"
+"\n"
+"Para activar la funcionalidad Inspeccionar real, las entradas deben "
+"agregarse al final del\n"
+"archivo de configuración personal superior. Podría usar tu editor favorito "
+"para lograr esto,\n"
+"teniendo cuidado de no perturbar las entradas existentes.\n"
+"\n"
+"A continuación se ilustra otra forma de agregar entradas, pero se corre el "
+"riesgo de\n"
+"sobrescribir el rcfile. Los ecos redirigidos no deben reemplazar (>) sino "
+"agregar (>>)\n"
+"a ese archivo.\n"
+"\n"
+" /bin/echo -e \"pipe\\tOpen Files\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+" /bin/echo -e \"file\\tNUMA Info\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+" /bin/echo -e \"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr\" >> ~/."
+"toprc\n"
+"\n"
+"Si no conoce la ubicación o el nombre del archivo rcfile superior, use el "
+"comando «W»\n"
+"y anote esos detalles. Después de hacer una copia de seguridad del archivo "
+"rc actual,\n"
+"intente emitir los ecos anteriores exactamente como se muestra, reemplazando "
+"«.toprc»\n"
+"según corresponda. El enfoque más seguro sería usar copiar y pegar para "
+"evitar\n"
+"errores de escritura.\n"
+"\n"
+"Finalmente, reinicie top para revelar lo que pueden ofrecer las entradas "
+"reales de Inspect\n"
+"al combinarse con este nuevo comando. Las posibilidades son infinitas, "
+"especialmente\n"
+"considerando ¡que las entradas de tipo «tubería» también pueden incluir "
+"scripts de shell!\n"
+"\n"
+"Para obtener información importante adicional, consulte el documento man "
+"top(1).\n"
+"Luego, mejore top con sus propias entradas personalizadas de «archivo» y/o "
+"«tubería».\n"
+"\n"
+"¡A disfrutar!\n"
+
+#: src/top/top_nls.c:564
+msgid "to enable 'Y' press <Enter> then type 'W' and restart top"
+msgstr "para activar «Y» presione <Intro> después presione «W» y reinicie top"
+
+#: src/top/top_nls.c:565
+msgid "to enable 'Y' please consult the top man page (press Enter)"
+msgstr ""
+"para habilitar «Y» consulte el inicio de la página de manual (pulse Intro)"
+
+#: src/top/top_nls.c:566
+#, c-format
+msgid "Selection failed with: %s\n"
+msgstr "La selección falló con: %s\n"
+
+#: src/top/top_nls.c:567
+#, c-format
+msgid "unable to inspect, pid %d not found"
+msgstr "imposible de inspeccionar, pid %d no encontrado"
+
+#: src/top/top_nls.c:568
+#, c-format
+msgid "inspect at PID [default pid = %d]"
+msgstr "inspeccionar en PID [pid por defecto = %d]"
+
+#: src/top/top_nls.c:569
+#, c-format
+msgid "%s: %*d-%-*d lines, %*d-%*d columns, %lu bytes read"
+msgstr "%s: %*d-%-*d líneas, %*d-%*d columnas, %lu bytes leídos"
+
+#: src/top/top_nls.c:570
+msgid "patience please, working ..."
+msgstr "paciencia por favor, trabajando ..."
+
+#: src/top/top_nls.c:571
+msgid "working, use Ctrl-C to end ..."
+msgstr "trabajando, use Ctrl-C para terminar ..."
+
+#. Translation Hint: Below are 2 abbreviations which can be as long as needed:
+#. . FLD = FIELD, VAL = VALUE
+#: src/top/top_nls.c:574
+#, c-format
+msgid "add filter #%d (%s) as: [!]FLD?VAL"
+msgstr "añadir filtro #%d (%s) as: [!]CAMPO?VALOR"
+
+#: src/top/top_nls.c:575
+msgid "ignoring case"
+msgstr "Ignorar mayúsculas o minúsculas"
+
+#: src/top/top_nls.c:576
+msgid "case sensitive"
+msgstr "sensible a mayúsculas y minúsculas"
+
+#: src/top/top_nls.c:577
+msgid "duplicate filter was ignored"
+msgstr "se ignoró el filtro duplicado"
+
+#: src/top/top_nls.c:578
+#, c-format
+msgid "'%s' filter delimiter is missing"
+msgstr "falta delimitador de filtro «%s»"
+
+#: src/top/top_nls.c:579
+#, c-format
+msgid "'%s' filter value is missing"
+msgstr "falta valor de filtro «%s»"
+
+#: src/top/top_nls.c:580
+msgid "include"
+msgstr "incluir"
+
+#: src/top/top_nls.c:581
+msgid "exclude"
+msgstr "excluir"
+
+#: src/top/top_nls.c:582
+#, c-format
+msgid "<Enter> to resume, filters: %s"
+msgstr "<Intro> para continuar, filtros: %s"
+
+#: src/top/top_nls.c:583
+msgid "none"
+msgstr "ninguno"
+
+#. Translation Hint: The following word 'Node' should be exactly
+#. 4 characters, excluding leading %%, fmt chars & colon)
+#: src/top/top_nls.c:586
+#, c-format
+msgid "%%Node%-2d:"
+msgstr "%%Nodo%-2d:"
+
+#: src/top/top_nls.c:587
+#, c-format
+msgid "expand which numa node (0-%d)"
+msgstr "expandir qué nodo numa (0-%d)"
+
+#: src/top/top_nls.c:588
+msgid "invalid numa node"
+msgstr "nodo numa no válido"
+
+#: src/top/top_nls.c:589
+msgid "sorry, NUMA extensions unavailable"
+msgstr "lo siento, extensiones NUMA no disponibles"
+
+#. Translation Hint: 'Mem ' is an abbreviation for physical memory/ram
+#. . 'Swap' represents the linux swap file --
+#. . please make both translations exactly 4 characters,
+#. . padding with extra spaces as necessary
+#: src/top/top_nls.c:594
+msgid "Mem "
+msgstr "Mem "
+
+#: src/top/top_nls.c:595
+msgid "Swap"
+msgstr "Intercambio"
+
+#: src/top/top_nls.c:596
+#, c-format
+msgid "library failed memory statistics, at %d: %s"
+msgstr "estadísticas de fallos de memoria de la biblioteca, en %d: %s"
+
+#: src/top/top_nls.c:597
+#, c-format
+msgid "library failed cpu statistics, at %d: %s"
+msgstr "estadísticas de fallos de cpu de la biblioteca, en %d: %s"
+
+#: src/top/top_nls.c:598
+#, c-format
+msgid "library failed pids statistics, at %d: %s"
+msgstr "estadísticas de pids fallidos de la biblioteca, en %d: %s"
+
+#: src/top/top_nls.c:599
+#, c-format
+msgid "bad memory scaling arg '%s'"
+msgstr "mal escalado de memoria arg «%s»"
+
+#: src/top/top_nls.c:600
+#, c-format
+msgid "PID to collapse/expand [default pid = %d]"
+msgstr "PID que colapsar/expandir [pid predeterminado = %d]"
+
+#: src/top/top_nls.c:601
+msgid "wrong mode, command inactive"
+msgstr "Modo incorrecto, comando inactivo"
+
+#: src/top/top_nls.c:602
+msgid "saving prevents older top from reading, save anyway?"
+msgstr "guardar evita que el top antiguo pueda leer, ¿guardar de todos modos?"
+
+#: src/top/top_nls.c:603
+#, c-format
+msgid "failed sem_init() at %d: %s"
+msgstr "falló sem_init() en %d: %s"
+
+#: src/top/top_nls.c:604
+#, c-format
+msgid "failed pthread_create() at %d: %s"
+msgstr "falló pthread_create() en %d: %s"
+
+#: src/top/top_nls.c:605
+msgid "sorry, restricted namespace with reduced functionality"
+msgstr "disculpe, espacio de nombres restringido con funcionalidad reducida"
+
+#: src/top/top_nls.c:606
+#, c-format
+msgid "set pid %d AGNI value to"
+msgstr "establecer pid %d valor AGNI a"
+
+#: src/top/top_nls.c:607
+msgid "valid AGNI range is -20 to +19"
+msgstr "el rango válido de AGNI es de -20 a +19"
+
+#: src/top/top_nls.c:608
+#, c-format
+msgid "autogroup open failed, %s"
+msgstr "falló al abrir el autogrupo, %s"
+
+#: src/top/top_nls.c:609
+#, c-format
+msgid "autogroup write failed, %s"
+msgstr "no se pudo escribir el autogrupo, %s"
+
+#: src/top/top_nls.c:610
+#, c-format
+msgid "command line for pid %d, %s"
+msgstr "línea de comando para la pid %d, %s"
+
+#: src/top/top_nls.c:611
+#, c-format
+msgid "control groups for pid %d, %s"
+msgstr "grupos de control para la pid %d, %s"
+
+#: src/top/top_nls.c:612
+#, c-format
+msgid "environment for pid %d, %s"
+msgstr "entorno para la pid %d, %s"
+
+#: src/top/top_nls.c:613
+#, c-format
+msgid "namespaces for pid %d, %s"
+msgstr "espacios de nombre para la pid %d, %s"
+
+#: src/top/top_nls.c:614
+msgid "n/a"
+msgstr "n/d"
+
+#: src/top/top_nls.c:615
+#, c-format
+msgid "supplementary groups for pid %d, %s"
+msgstr "grupos suplementarios para la pid %d, %s"
+
+#: src/top/top_nls.c:616
+msgid "message log, last 10 messages:"
+msgstr "registro de mensajes, últimos 10 mensajes:"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The next several text groups contain special escape sequences
+#. . representing values used to index a table at run-time.
+#. .
+#. . Each such sequence consists of a tilde (~) followed by an ascii
+#. . number in the range of '1' - '8'. Examples are '~2', '~8', etc.
+#. . These escape sequences must never themselves be translated but
+#. . could be deleted.
+#. .
+#. . If you remove these escape sequences (both tilde and number) it
+#. . would make translation easier. However, the ability to display
+#. . colors and bold text at run-time will have been lost.
+#. .
+#. . Additionally, each of these text groups was designed to display
+#. . in a 80x24 terminal window. Hopefully, any translations will
+#. . adhere to that goal lest the translated text be truncated.
+#. .
+#. . If you would like additional information regarding these strings,
+#. . please see the prologue to the show_special function in the top.c
+#. . source file.
+#. .
+#. . Caution:
+#. . The next three items represent pages for interacting with a user.
+#. . In all cases, the last lines of text must be treated with care.
+#. .
+#. . They must not end with a newline character so that at runtime the
+#. . cursor will remain on that final text line.
+#. .
+#. . Also, the special sequences (tilde+number) must not appear on the
+#. . last line (the one without the newline). So please avoid any line
+#. . wraps that could place them there.
+#. .
+#: src/top/top_nls.c:661
+#, c-format
+msgid ""
+"Help for Interactive Commands~2 - %s\n"
+"Window ~1%s~6: ~1Cumulative mode ~3%s~2. ~1System~6: ~1Delay ~3%.1f secs~2; "
+"~1Secure mode ~3%s~2.\n"
+"\n"
+" Z~5,~1B~5,E,e Global: '~1Z~2' colors; '~1B~2' bold; '~1E~2'/'~1e~2' "
+"summary/task memory scale\n"
+" l,t,m,I,0 Toggle: '~1l~2' load avg; '~1t~2' task/cpu; '~1m~2' memory; "
+"'~1I~2' Irix; '~10~2' zeros\n"
+" 1,2,3,4,5 Toggle: '~11~2/~12~2/~13~2' cpu/numa views; '~14~2' cpus "
+"abreast; '~15~2' P/E-cores\n"
+" f,X Fields: '~1f~2' add/remove/order/sort; '~1X~2' increase fixed-"
+"width fields\n"
+"\n"
+" L,&,<,> . Locate: '~1L~2'/'~1&~2' find/again; Move sort column: "
+"'~1<~2'/'~1>~2' left/right\n"
+" R,H,J,C . Toggle: '~1R~2' Sort; '~1H~2' Threads; '~1J~2' Num justify; "
+"'~1C~2' Coordinates\n"
+" c,i,S,j . Toggle: '~1c~2' Cmd name/line; '~1i~2' Idle; '~1S~2' Time; "
+"'~1j~2' Str justify\n"
+" x~5,~1y~5 . Toggle highlights: '~1x~2' sort field; '~1y~2' running "
+"tasks\n"
+" z~5,~1b~5 . Toggle: '~1z~2' color/mono; '~1b~2' bold/reverse (only if "
+"'x' or 'y')\n"
+" u,U,o,O . Filter by: '~1u~2'/'~1U~2' effective/any user; '~1o~2'/'~1O~2' "
+"other criteria\n"
+" n,#,^O . Set: '~1n~2'/'~1#~2' max tasks displayed; Show: ~1Ctrl~2+'~1O~2' "
+"other filter(s)\n"
+" V,v,F . Toggle: '~1V~2' forest view; '~1v~2' hide/show children; '~1F~2' "
+"keep focused\n"
+"\n"
+"%s ^G,K,N,U View: ctl groups ~1^G~2; cmdline ~1^K~2; environment ~1^N~2; "
+"supp groups ~1^U~2\n"
+" Y,!,^E,P Inspect '~1Y~2'; Combine Cpus '~1!~2'; Scale time ~1^E~2; View "
+"namespaces ~1^P~2\n"
+" W,q Write config file '~1W~2'; Quit '~1q~2'\n"
+" ( commands shown with '.' require a ~1visible~2 task display "
+"~1window~2 ) \n"
+"Press '~1h~2' or '~1?~2' for help with ~1Windows~2,\n"
+"Type 'q' or <Esc> to continue "
+msgstr ""
+"Ayuda para comandos interactivos~2 - %s\n"
+"Ventana ~1%s~6: ~1Modo acumulativo ~3%s~2. ~1Sistema~6: ~1Retardo ~3%.1f "
+"segs~2; ~1Modo seguro ~3%s~2.\n"
+"\n"
+" Z~5,~1B~5,E,e Global: '~1Z~2' colores; '~1B~2' bold; '~1E~2'/'~1e~2' "
+"resumen/escala memoria tarea\n"
+" l,t,m,I,0 Alternar: '~1l~2' cargar prom; '~1t~2' tarea/cpu; '~1m~2' "
+"memoria; '~1I~2' Irix; '~10~2' ceros\n"
+" 1,2,3,4,5 Alternar: '~11~2/~12~2/~13~2' cpu/vista numa; '~14~2' cpus "
+"juntas; '~15~2' P/E-núcleos\n"
+" f,X Campos: '~1f~2' añadir/quitar/orden/ordenar; '~1X~2' incrementa "
+"campos de tamaño fijo\n"
+"\n"
+" L,&,<,> . Ubicar: '~1L~2'/'~1&~2' encontrar/de nuevo; Mover orden columna: "
+"'~1<~2'/'~1>~2' izquierda/derecha\n"
+" R,H,J,C . Alternar: '~1R~2' Ordenar; '~1H~2' Hilos; '~1J~2' Justificar "
+"num; '~1C~2' Coordenadas\n"
+" c,i,S,j . Alternar: '~1c~2' Nombre/línea cmd; '~1i~2' Inactivo; '~1S~2' "
+"Tiempo; '~1j~2' Justificar str\n"
+" x~5,~1y~5 . Alternar destacados: '~1x~2' ordenar campo; '~1y~2' tareas "
+"en ejecución\n"
+" z~5,~1b~5 . Alternar: '~1z~2' color/mono; '~1b~2' negrita/reverso "
+"(solo si «x» o «y»)\n"
+" u,U,o,O . Filtrar por: '~1u~2'/'~1U~2' efectivo/cualquier usuario; "
+"'~1o~2'/'~1O~2' otro criterio\n"
+" n,#,^O . Establecer: '~1n~2'/'~1#~2' max tareas mostradas; Mostrar: "
+"~1Ctrl~2+'~1O~2' otro(s) filtro(s)\n"
+" V,v,F . Alternar: '~1V~2' vista bosque; '~1v~2' ocultar/mostrar hijos; "
+"'~1F~2' mantener seleccionado\n"
+"\n"
+"%s ^G,K,N,U Ver: grupos ctl ~1^G~2; cmdline ~1^K~2; entorno ~1^N~2; grupos "
+"sup ~1^U~2\n"
+" Y,!,^E,P Inspeccionar '~1Y~2'; Combinar Cpus '~1!~2'; Escalar tiempo "
+"~1^E~2; Ver espacios nombre ~1^P~2\n"
+" W,q Escribir archivo config '~1W~2'; Salir '~1q~2'\n"
+" ( comandos mostrados con '.' requieren un ~1visible~2 mostrar "
+"tarea ~1ventana~2 ) \n"
+"Pulse «~1h~2» o «~1?~2» para ayuda con ~1Ventanas~2,\n"
+"Pulse «q» o <Esc> para continuar "
+
+#: src/top/top_nls.c:687
+#, c-format
+msgid ""
+"Help for Windows / Field Groups~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+". Use multiple ~1windows~2, each with separate config opts (color,fields,"
+"sort,etc)\n"
+". The 'current' window controls the ~1Summary Area~2 and responds to your "
+"~1Commands~2\n"
+" . that window's ~1task display~2 can be turned ~1Off~2 & ~1On~2, growing/"
+"shrinking others\n"
+" . with ~1NO~2 task display, some commands will be ~1disabled~2 "
+"('i','R','n','c', etc)\n"
+" until a ~1different window~2 has been activated, making it the 'current' "
+"window\n"
+". You ~1change~2 the 'current' window by: ~1 1~2) cycling forward/backward;"
+"~1 2~2) choosing\n"
+" a specific field group; or~1 3~2) exiting the color mapping or fields "
+"screens\n"
+". Commands ~1available anytime -------------~2\n"
+" A . Alternate display mode toggle, show ~1Single~2 / ~1Multiple~2 "
+"windows\n"
+" g . Choose another field group and make it 'current', or change "
+"now\n"
+" by selecting a number from: ~1 1~2 =%s;~1 2~2 =%s;~1 3~2 =%s; "
+"or~1 4~2 =%s\n"
+". Commands ~1requiring~2 '~1A~2' mode~1 -------------~2\n"
+" G . Change the ~1Name~5 of the 'current' window/field group\n"
+" ~1*~4 a , w . Cycle through all four windows: '~1a~5' Forward; '~1w~5' "
+"Backward\n"
+" ~1*~4 - , _ . Show/Hide: '~1-~5' ~1Current~2 window; '~1_~5' all "
+"~1Visible~2/~1Invisible~2\n"
+" The screen will be divided evenly between task displays. But you can "
+"make\n"
+" some ~1larger~2 or ~1smaller~2, using '~1n~2' and '~1i~2' commands. Then "
+"later you could:\n"
+" ~1*~4 = , + . Rebalance tasks: '~1=~5' ~1Current~2 window; '~1+~5' "
+"~1Every~2 window\n"
+" (this also forces the ~1current~2 or ~1every~2 window to "
+"become visible)\n"
+"\n"
+"In '~1A~2' mode, '~1*~4' keys are your ~1essential~2 commands. Please try "
+"the '~1a~2' and '~1w~2'\n"
+"commands plus the 'g' sub-commands NOW. Press <Enter> to make 'Current' "
+msgstr ""
+"Ayuda de ventanas / Grupos de campo~2 - \"Ventana actual\" = ~1 %s ~6\n"
+"\n"
+". Usar ~1ventanas~2 múltiples, cada una con opciones de config separadas "
+"(color,campos,orden,etc)\n"
+". La ventana «actual» controla el ~1Ãrea de resumen~2 y responde a sus "
+"~1Comandos~2\n"
+" . que la ventana de la ~1pantalla de tareas~2 se puede ~1Desactivar~2 & "
+"~1Activar~2, creciendo/disminuyendo otros\n"
+" . with ~1NO~2 task display, some commands will be ~1disabled~2 "
+"('i','R','n','c', etc)\n"
+" hasta que se active una a ~1ventana diferente~2, haciéndola la ventana "
+"«actual»\n"
+". Puede ~1cambiar~2 la ventana «actual»: ~1 1~2) alternando delante/atrás;~1 "
+"2~2) eligiendo\n"
+" un grupo de campo específico; o~1 3~2) cerrando las pantallas de mapa de "
+"color o campos\n"
+". Comandos ~1disponibles siempre -------------~2\n"
+" A . Alternar modo de visualización, mostrar ~1Única~2 / "
+"~1Múltiples~2 ventanas\n"
+" g . Elija otro grupo de campos y conviértalo en «actual» o "
+"cámbielo ahora\n"
+" seleccionando un número de: ~1 1~2 =%s;~1 2~2 =%s;~1 3~2 =%s; "
+"o~1 4~2 =%s\n"
+". Comandos que ~1requieren~2 '~1A~2' modo~1 -------------~2\n"
+" G . Cambie el ~1Nombre~5 del grupo de ventana/campo «actual»\n"
+" ~1*~4 a , w . Ciclo a través de las cuatro ventanas: '~1a~5' Adelante; "
+"'~1w~5' Atrás\n"
+" ~1*~4 - , _ . Mostrar/Ocultar: '~1-~5' Ventana ~1actual~2; '~1_~5' "
+"todas ~1Visible~2/~1Invisible~2\n"
+" La pantalla se dividirá equitativamente entre las pantallas de tareas. "
+"Pero puede hacer\n"
+" algunas más ~1largas~2 o ~1pequeñas~2, usando los comandos '~1n~2' y "
+"'~1i~2'. Luego puede:\n"
+" ~1*~4 = , + . Reequilibrar tareas: '~1=~5' Ventana ~1actual~2; '~1+~5' "
+"ventana ~1cada~2\n"
+" (esto también obliga a que la ventana ~1actual~2 o ~1cada~2 se "
+"haga visible)\n"
+"\n"
+"En modo '~1A~2', '~1*~4' teclas son sus comandos ~1esenciales~2. Intente "
+"los comandos '~1a~2' y '~1w~2'\n"
+"más los subcomandos «g» AHORA. Pulse <Intro> para hacer «Actual» "
+
+#. Translation Notes ------------------------------------------------
+#. . The following 'Help for color mapping' simulated screen should
+#. . probably NOT be translated. It is terribly hard to follow in
+#. . this form and any translation could produce unpleasing results
+#. . that are unlikely to parallel the running top program.
+#. .
+#. . If you decide to proceed with translation, please take care
+#. . to not disturb the spaces and the tilde + number delimiters.
+#. .
+#: src/top/top_nls.c:722
+#, c-format
+msgid ""
+"Help for color mapping~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+" color - 04:25:44 up 8 days, 50 min, 7 users, load average:\n"
+" Tasks:~3 64 ~2total,~3 2 ~3running,~3 62 ~2sleeping,~3 0 ~2stopped,"
+"~3\n"
+" %%Cpu(s):~3 76.5 ~2user,~3 11.2 ~2system,~3 0.0 ~2nice,~3 12.3 "
+"~2idle~3\n"
+" ~1 Nasty Message! ~4 -or- ~1Input Prompt~5\n"
+" ~1 PID TTY PR NI %%CPU TIME+ VIRT SWAP S COMMAND ~6\n"
+" 17284 ~8pts/2 ~7 8 0 0.0 0:00.75 1380 0 S /bin/bash ~8\n"
+" ~1 8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z~7\n"
+" 11005 ~8? ~7 9 0 0.0 0:02.50 2852 1008 S amor -sessi~8\n"
+" available toggles: ~1B~2 =disable bold globally (~1%s~2),\n"
+" ~1z~2 =color/mono (~1%s~2), ~1b~2 =tasks \"bold\"/reverse (~1%s~2)\n"
+"\n"
+"1) Select a ~1target~2 as an upper case letter, ~1current target~2 is ~1 %c "
+"~4:\n"
+" S~2 = Summary Data,~1 M~2 = Messages/Prompts,\n"
+" H~2 = Column Heads,~1 T~2 = Task Information\n"
+"2) Select a ~1color~2 as a number or use the up/down arrow keys\n"
+" to raise/lower the %d colors value, ~1current color~2 is ~1 %d ~4:\n"
+" 0~2 = black,~1 1~2 = red, ~1 2~2 = green,~1 3~2 = yellow,\n"
+" 4~2 = blue, ~1 5~2 = magenta,~1 6~2 = cyan, ~1 7~2 = white\n"
+"\n"
+"3) Then use these keys when finished:\n"
+" 'q' or <Esc> to abort changes to window '~1%s~2'\n"
+" 'a' or 'w' to commit & change another, <Enter> to commit and end "
+msgstr ""
+"Ayuda de asignación de color~2 - \"Ventana actual\" = ~1 %s ~6\n"
+"\n"
+" color - 04:25:44 activo 8 días, 50 min, 7 usuarios, carga prom:\n"
+" Tareas:~3 64 ~2total,~3 2 ~3ejecutando,~3 62 ~2durmiendo,~3 0 "
+"~2detenidas,~3\n"
+" %%Cpu(s):~3 76.5 ~2usuarios,~3 11.2 ~2sistema,~3 0.0 ~2nice,~3 12.3 "
+"~2inact~3\n"
+" ~1 ¡Mensaje desagradable! ~4 -o- ~1Indicación de entrada~5\n"
+" ~1 PID TTY PR NI %%CPU TIEMPO+ VIRT INTER S COMANDO ~6\n"
+" 17284 ~8pts/2 ~7 8 0 0.0 0:00.75 1380 0 S /bin/bash ~8\n"
+" ~1 8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z~7\n"
+" 11005 ~8? ~7 9 0 0.0 0:02.50 2852 1008 S amor -sessi~8\n"
+" conmutadores disponibles: ~1B~2 =desactivar negrita globalmente "
+"(~1%s~2),\n"
+" ~1z~2 =color/mono (~1%s~2), ~1b~2 =tareas \"negrita\"/revertir "
+"(~1%s~2)\n"
+"\n"
+"1) Seleccione un ~1objetivo~2 como una letra mayúscula, ~1objetivo actual~2 "
+"es ~1 %c ~4:\n"
+" S~2 = Datos resumen,~1 M~2 = Mensajes/Indicadores,\n"
+" H~2 = Cabezas columna,~1 T~2 = Información tarea\n"
+"2) Seleccione un ~1color~2 como un número o use las teclas de flecha arriba/"
+"abajo\n"
+" para elevar/bajar %d valor de color, ~1color actual~2 es ~1 %d ~4:\n"
+" 0~2 = negro,~1 1~2 = rojo, ~1 2~2 = verde,~1 3~2 = amarillo,\n"
+" 4~2 = azul, ~1 5~2 = magenta,~1 6~2 = cían, ~1 7~2 = blanco\n"
+"\n"
+"3) Luego use estas teclas al terminar:\n"
+" «q» o <Esc> para cancelar los cambios en la ventana '~1%s~2'\n"
+" «a» o «w» para confirmar y cambiar otro, <Intro> para confirmar y "
+"finalizar "
+
+#. Translation Hint: As is true for the text above, the "keys" shown to the left and
+#. . also embedded in the translatable text (along with escape seqs)
+#. . should never themselves be translated.
+#: src/top/top_nls.c:751
+msgid ""
+" d,k,r,^R '~1d~2' set delay; '~1k~2' kill; '~1r~2' renice; ~1Ctrl~2+'~1R~2' "
+"renice autogroup\n"
+msgstr ""
+" d,k,r,^R '~1d~2' establecer retardo; '~1k~2' matar; '~1r~2' renice; "
+"~1Ctrl~2+'~1R~2' renice autogroup\n"
+
+#. Translation Hint:
+#. . This Fields Management header should be 3 lines long so as
+#. . to allow 1 blank line before the fields & descriptions.
+#. . If absolutely necessary, 4 lines could be used (but never more).
+#. .
+#: src/top/top_nls.c:759
+#, c-format
+msgid ""
+"Fields Management~2 for window ~1%s~6, whose current sort field is ~1%s~2\n"
+" Navigate with Up/Dn, Right selects for move then <Enter> or Left "
+"commits,\n"
+" 'd' or <Space> toggles display, 's' sets sort. Use 'q' or <Esc> to end!\n"
+msgstr ""
+"Gestión de campos~2 para ventana ~1%s~6, cuyo campo de clasificación actual "
+"es ~1%s~2\n"
+" Navegue con Arriba/Abajo, Derecha selecciona para mover, después confirme "
+"con <Intro> o Izquierda,\n"
+" «d» o <Espacio> alterna monitores, «s» establece la clasificación. ¡Use "
+"«q» o <Esc> para terminar!\n"
+
+#. Translation Hint:
+#. . The next 5 items must each be translated as a single line.
+#. .
+#: src/top/top_nls.c:767
+#, c-format
+msgid ""
+"%s:~3 %3u ~2total,~3 %3u ~2running,~3 %3u ~2sleeping,~3 %3u ~2stopped,~3 %3u "
+"~2zombie~3\n"
+msgstr ""
+"%s:~3 %3u ~2total,~3 %3u ~2ejecutar, ~3 %3u ~2hibernar, ~3 %3u ~2detener, ~3 "
+"%3u ~2zombie~3\n"
+
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt
+#: src/top/top_nls.c:773
+#, c-format
+msgid ""
+"%s~3 %#5.1f ~2us,~3 %#5.1f ~2sy,~3 %#5.1f ~2ni,~3 %#5.1f ~2id,~3 %#5.1f ~2wa,"
+"~3 %#5.1f ~2hi,~3 %#5.1f ~2si~3 ~1"
+msgstr ""
+"%s~3 %#5.1f ~2us,~3 %#5.1f ~2sy,~3 %#5.1f ~2ni,~3 %#5.1f ~2id,~3 %#5.1f ~2wa,"
+"~3 %#5.1f ~2hi,~3 %#5.1f ~2si~3 ~1"
+
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt, st = steal time
+#: src/top/top_nls.c:779
+#, c-format
+msgid ""
+"%s~3%#5.1f ~2us,~3%#5.1f ~2sy,~3%#5.1f ~2ni,~3%#5.1f ~2id,~3%#5.1f ~2wa,"
+"~3%#5.1f ~2hi,~3%#5.1f ~2si,~3%#5.1f ~2st~3 ~1"
+msgstr ""
+"%s~3%#5.1f ~2us,~3%#5.1f ~2sy,~3%#5.1f ~2ni,~3%#5.1f ~2id,~3%#5.1f ~2wa,"
+"~3%#5.1f ~2hi,~3%#5.1f ~2si,~3%#5.1f ~2st~3 ~1"
+
+#. Translation Hint: next 2 must be treated together, with WORDS above & below aligned
+#: src/top/top_nls.c:783
+#, c-format
+msgid ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used,~3 %9.9s~2buff/cache~3 "
+"~1 "
+msgstr ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2libre,~3 %9.9s~2usado,~3 %9.9s~2búf/caché~3 "
+"~1 "
+
+#: src/top/top_nls.c:785
+#, c-format
+msgid ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used.~3 %9.9s~2avail %s~3"
+msgstr ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2libre,~3 %9.9s~2usado.~3 %9.9s~2dispon %s~3"
+
+#. Translation Hint:
+#. . The next 2 headers for 'Inspection' must each be 3 lines or less
+#. .
+#: src/top/top_nls.c:791
+#, c-format
+msgid ""
+"Inspection~2 Pause at: pid ~1%d~6, running ~1%s~6\n"
+"Use~2: left/right then <Enter> to ~1select~5 an option; 'q' or <Esc> to "
+"~1end~5 !\n"
+"Options~2: ~1%s\n"
+msgstr ""
+"Inspección~2 Pausa en: pid ~1%d~6, ejecutando ~1%s~6\n"
+"Use~2: izquierda/derecha luego <Intro> para ~1seleccionar~5 una opción; «q» "
+"o <Esc> para ~1terminar~5 !\n"
+"Opciones~2: ~1%s\n"
+
+#: src/top/top_nls.c:796
+#, c-format
+msgid ""
+"Inspection~2 View at pid: ~1%s~3, running ~1%s~3. Locating: ~1%s~6\n"
+"Use~2: left/right/up/down/etc to ~1navigate~5 the output; 'L'/'&' to "
+"~1locate~5/~1next~5.\n"
+"Or~2: <Enter> to ~1select another~5; 'q' or <Esc> to ~1end~5 !\n"
+msgstr ""
+"Inspección~2 Vista en pid: ~1%s~3, ejecutando ~1%s~3. Localizando: ~1%s~6\n"
+"Use~2: izquierda/derecha/arriba/abajo/etc para ~1navegar~5 la salida; "
+"«L»/«&» para ~1localizar~5/~1siguiente~5.\n"
+"O~2: <Intro> para ~1seleccionar otro~5; «q» o <Esc> para ~1terminar~5 !\n"
+
+#: src/uptime.c:51 src/uptime.c:123
+msgid "Cannot get system uptime"
+msgstr "No se puede obtener el tiempo de actividad del sistema"
+
+#: src/uptime.c:67
+msgid " -p, --pretty show uptime in pretty format\n"
+msgstr " -p, --pretty mostrar tiempo de ejecución en formato legilbe\n"
+
+#: src/uptime.c:69
+msgid " -s, --since system up since\n"
+msgstr " -s, --since sistema levantado desde\n"
+
+#: src/vmstat.c:220
+#, c-format
+msgid " %s [options] [delay [count]]\n"
+msgstr " %s [opciones] [retraso [contador]]\n"
+
+#: src/vmstat.c:223
+msgid " -a, --active active/inactive memory\n"
+msgstr " -a, --active memoria activa/inactiva\n"
+
+#: src/vmstat.c:224
+msgid " -f, --forks number of forks since boot\n"
+msgstr " -f, --forks número de bifurcaciones desde el arranque\n"
+
+#: src/vmstat.c:225
+msgid " -m, --slabs slabinfo\n"
+msgstr " -m, --slabs información de slab\n"
+
+#: src/vmstat.c:226
+msgid " -n, --one-header do not redisplay header\n"
+msgstr " -n, --one-header no volver a mostrar la cabecera\n"
+
+#: src/vmstat.c:227
+msgid " -s, --stats event counter statistics\n"
+msgstr " -s, --stats estadísticas del contador de eventos\n"
+
+#: src/vmstat.c:228
+msgid " -d, --disk disk statistics\n"
+msgstr " -d, --disk estadísticas de disco\n"
+
+#: src/vmstat.c:229
+msgid " -D, --disk-sum summarize disk statistics\n"
+msgstr " -D, --disk-sum resumen de estadísticas de discos\n"
+
+#: src/vmstat.c:230
+msgid " -p, --partition <dev> partition specific statistics\n"
+msgstr ""
+" -p, --partition <dispositivo> estadísticas específicas de partición\n"
+
+#: src/vmstat.c:231
+msgid " -S, --unit <char> define display unit\n"
+msgstr " -S, --unit <carácter> definir unidad de visualización\n"
+
+#: src/vmstat.c:232
+msgid " -w, --wide wide output\n"
+msgstr " -w, --wide salida ancha\n"
+
+#: src/vmstat.c:233
+msgid " -t, --timestamp show timestamp\n"
+msgstr " -t, --timestamp mostrar marca de tiempo\n"
+
+#: src/vmstat.c:234
+msgid " -y, --no-first skips first line of output\n"
+msgstr " -y, --no-first salta la primera línea de salida\n"
+
+#: src/vmstat.c:253
+#, fuzzy
+msgid ""
+"procs -----------memory---------- ---swap-- -----io---- -system-- -------"
+"cpu-------"
+msgstr ""
+"procs -----------memoria---------- ---swap-- -----io---- -sistema-- ------"
+"cpu-----"
+
+#: src/vmstat.c:255
+msgid ""
+"--procs-- -----------------------memory---------------------- ---swap-- -----"
+"io---- -system-- ----------cpu----------"
+msgstr ""
+"--procs-- -----------------------memoria---------------------- ---interc-- "
+"-----es---- -sistema-- ----------cpu----------"
+
+#: src/vmstat.c:256 src/vmstat.c:619
+msgid " -----timestamp-----"
+msgstr " -----marcadetiempo-----"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:275
+msgid "r"
+msgstr "r"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:277
+msgid "b"
+msgstr "b"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:279
+msgid "swpd"
+msgstr "swpd"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:281
+msgid "free"
+msgstr "libre"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:283
+msgid "inact"
+msgstr "inact"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:285
+msgid "buff"
+msgstr "búf"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:287
+msgid "active"
+msgstr "activo"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:289
+msgid "cache"
+msgstr "caché"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:291
+msgid "si"
+msgstr "si"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:293
+msgid "so"
+msgstr "so"
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:295
+msgid "bi"
+msgstr "bi"
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:297
+msgid "bo"
+msgstr "bo"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:299
+msgid "in"
+msgstr "in"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:301
+msgid "cs"
+msgstr "cs"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:303
+msgid "us"
+msgstr "us"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:305
+msgid "sy"
+msgstr "sy"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:307
+msgid "id"
+msgstr "id"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:309
+msgid "wa"
+msgstr "wa"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:311
+msgid "st"
+msgstr "st"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:313
+msgid "gu"
+msgstr "gu"
+
+#: src/vmstat.c:374 src/vmstat.c:870
+msgid "Unable to create vmstat structure"
+msgstr "No se puede crear la estructura vmstat"
+
+#: src/vmstat.c:376 src/vmstat.c:866 src/vmstat.c:919
+msgid "Unable to create system stat structure"
+msgstr "No se puede crear la estructura system stat"
+
+#: src/vmstat.c:380
+msgid "Unable to get uptime"
+msgstr "No se puede obtener el tiempo de actividad"
+
+#: src/vmstat.c:391 src/vmstat.c:472 src/vmstat.c:874
+msgid "Unable to select memory information"
+msgstr "No se puede seleccionar la información de la memoria"
+
+#: src/vmstat.c:405 src/vmstat.c:458 src/vmstat.c:868
+msgid "Unable to select stat information"
+msgstr "No se puede seleccionar la información de stat"
+
+#. Translation Hint: Translating folloging disk partition
+#. * header fields that follow (marked with max x chars) might
+#. * not work, unless manual page is translated as well.
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:565
+msgid "reads"
+msgstr "lecturas"
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:567
+msgid "read sectors"
+msgstr "sectores leídos"
+
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:569
+msgid "writes"
+msgstr "escrituras"
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:571
+msgid "requested writes"
+msgstr "escrituras solicitadas"
+
+#: src/vmstat.c:584 src/vmstat.c:687 src/vmstat.c:813
+msgid "Unable to create diskstat structure"
+msgstr "No se puede crear la estructura diskstat"
+
+#: src/vmstat.c:587 src/vmstat.c:593
+#, c-format
+msgid "Disk/Partition %s not found"
+msgstr "No se encontró el disco/partición %s"
+
+#: src/vmstat.c:616
+msgid ""
+"disk- ------------reads------------ ------------writes----------- -----"
+"IO------"
+msgstr ""
+"disco- ------------lecturas------------ ------------escrituras----------- "
+"-----IO------"
+
+#: src/vmstat.c:618
+msgid ""
+"disk- -------------------reads------------------- -------------------"
+"writes------------------ ------IO-------"
+msgstr ""
+"disco- -------------------lecturas------------------- -------------------"
+"escrituras------------------ ------IO-------"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:637 src/vmstat.c:645
+msgid "total"
+msgstr "total"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:639 src/vmstat.c:647
+msgid "merged"
+msgstr "combinado"
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:641 src/vmstat.c:649
+msgid "sectors"
+msgstr "sectores"
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:643 src/vmstat.c:651
+msgid "ms"
+msgstr "ms"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:653
+msgid "cur"
+msgstr "cur"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:655
+msgid "sec"
+msgstr "seg"
+
+#: src/vmstat.c:694 src/vmstat.c:815
+msgid "Unable to retrieve disk statistics"
+msgstr "No se pueden recuperar las estadísticas del disco"
+
+#. Translation Hint: Translating folloging slab fields that
+#. * follow (marked with max x chars) might not work, unless
+#. * manual page is translated as well.
+#. Translation Hint: max 24 chars
+#: src/vmstat.c:741
+msgid "Cache"
+msgstr "Caché"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:743
+msgid "Num"
+msgstr "Núm"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:745
+msgid "Total"
+msgstr "Total"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:747
+msgid "Size"
+msgstr "Tamaño"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:749
+msgid "Pages"
+msgstr "Páginas"
+
+#: src/vmstat.c:836
+#, c-format
+msgid "%13d disks\n"
+msgstr "%13d discos\n"
+
+#: src/vmstat.c:837
+#, c-format
+msgid "%13d partitions\n"
+msgstr "%13d particiones\n"
+
+#: src/vmstat.c:838
+#, c-format
+msgid "%13lu total reads\n"
+msgstr "%13lu lecturas totales\n"
+
+#: src/vmstat.c:839
+#, c-format
+msgid "%13lu merged reads\n"
+msgstr "%13lu lecturas combinadas\n"
+
+#: src/vmstat.c:840
+#, c-format
+msgid "%13lu read sectors\n"
+msgstr "%13lu sectores leídos\n"
+
+#: src/vmstat.c:841
+#, c-format
+msgid "%13lu milli reading\n"
+msgstr "%13lu mili lecturas\n"
+
+#: src/vmstat.c:842
+#, c-format
+msgid "%13lu writes\n"
+msgstr "%13lu escrituras\n"
+
+#: src/vmstat.c:843
+#, c-format
+msgid "%13lu merged writes\n"
+msgstr "%13lu escrituras combinadas\n"
+
+#: src/vmstat.c:844
+#, c-format
+msgid "%13lu written sectors\n"
+msgstr "%13lu sectores escritos\n"
+
+#: src/vmstat.c:845
+#, c-format
+msgid "%13lu milli writing\n"
+msgstr "%13lu milli escrituras\n"
+
+#: src/vmstat.c:846
+#, c-format
+msgid "%13lu inprogress IO\n"
+msgstr "%13lu IO en progreso\n"
+
+#: src/vmstat.c:847
+#, c-format
+msgid "%13lu milli spent IO\n"
+msgstr "%13lu ms consumidos en E/S\n"
+
+#: src/vmstat.c:848
+#, c-format
+msgid "%13lu milli weighted IO\n"
+msgstr "%13lu E/S ponderada en mili\n"
+
+#: src/vmstat.c:876
+#, c-format
+msgid "%13lu %s total memory\n"
+msgstr "%13lu %s memoria total\n"
+
+#: src/vmstat.c:877
+#, c-format
+msgid "%13lu %s used memory\n"
+msgstr "%13lu %s memoria usada\n"
+
+#: src/vmstat.c:878
+#, c-format
+msgid "%13lu %s active memory\n"
+msgstr "%13lu %s memoria activa\n"
+
+#: src/vmstat.c:879
+#, c-format
+msgid "%13lu %s inactive memory\n"
+msgstr "%13lu %s memoria inactiva\n"
+
+#: src/vmstat.c:880
+#, c-format
+msgid "%13lu %s free memory\n"
+msgstr "%13lu %s memoria libre\n"
+
+#: src/vmstat.c:881
+#, c-format
+msgid "%13lu %s buffer memory\n"
+msgstr "%13lu %s memoria de búfer\n"
+
+#: src/vmstat.c:882
+#, c-format
+msgid "%13lu %s swap cache\n"
+msgstr "%13lu %s caché de intercambio\n"
+
+#: src/vmstat.c:883
+#, c-format
+msgid "%13lu %s total swap\n"
+msgstr "%13lu %s intercambio total\n"
+
+#: src/vmstat.c:884
+#, c-format
+msgid "%13lu %s used swap\n"
+msgstr "%13lu %s intercambio usado\n"
+
+#: src/vmstat.c:885
+#, c-format
+msgid "%13lu %s free swap\n"
+msgstr "%13lu %s intercambio libre\n"
+
+#: src/vmstat.c:886
+#, c-format
+msgid "%13lld non-nice user cpu ticks\n"
+msgstr "%13lld tics de CPU de usuario no-«nice»\n"
+
+#: src/vmstat.c:887
+#, c-format
+msgid "%13lld nice user cpu ticks\n"
+msgstr "%13lld tics de CPU del usuario «nice»\n"
+
+#: src/vmstat.c:888
+#, c-format
+msgid "%13lld system cpu ticks\n"
+msgstr "%13lld tics de CPU del sistema\n"
+
+#: src/vmstat.c:889
+#, c-format
+msgid "%13lld idle cpu ticks\n"
+msgstr "%13lld tics de CPU de inactividad\n"
+
+#: src/vmstat.c:890
+#, c-format
+msgid "%13lld IO-wait cpu ticks\n"
+msgstr "%13lld tics de CPU de espera E/S\n"
+
+#: src/vmstat.c:891
+#, c-format
+msgid "%13lld IRQ cpu ticks\n"
+msgstr "%13lld tics de CPU de IRQ\n"
+
+#: src/vmstat.c:892
+#, c-format
+msgid "%13lld softirq cpu ticks\n"
+msgstr "%13lld tics de CPU de softirq\n"
+
+#: src/vmstat.c:893
+#, c-format
+msgid "%13lld stolen cpu ticks\n"
+msgstr "%13lld tics de CPU robados\n"
+
+#: src/vmstat.c:894
+#, c-format
+msgid "%13lld non-nice guest cpu ticks\n"
+msgstr "%13lld ticks no nice de CPU invitada\n"
+
+#: src/vmstat.c:895
+#, c-format
+msgid "%13lld nice guest cpu ticks\n"
+msgstr "%13lld ticks nice de CPU invitada\n"
+
+#: src/vmstat.c:896
+#, c-format
+msgid "%13lu K paged in\n"
+msgstr "%13lu K paginado dentro\n"
+
+#: src/vmstat.c:897
+#, c-format
+msgid "%13lu K paged out\n"
+msgstr "%13lu K paginado fuera\n"
+
+#: src/vmstat.c:898
+#, c-format
+msgid "%13lu pages swapped in\n"
+msgstr "%13lu páginas intercambiadas\n"
+
+#: src/vmstat.c:899
+#, c-format
+msgid "%13lu pages swapped out\n"
+msgstr "%13lu páginas cambiadas\n"
+
+#: src/vmstat.c:900
+#, c-format
+msgid "%13lu interrupts\n"
+msgstr "%13lu interrupciones\n"
+
+#: src/vmstat.c:901
+#, c-format
+msgid "%13lu CPU context switches\n"
+msgstr "%13lu cambios de contexto de la CPU\n"
+
+#: src/vmstat.c:902
+#, c-format
+msgid "%13lu boot time\n"
+msgstr "%13lu tiempo de arranque\n"
+
+#: src/vmstat.c:903 src/vmstat.c:921
+#, c-format
+msgid "%13lu forks\n"
+msgstr "%13lu bifurcaciones\n"
+
+#. Translation Hint: do not change argument characters
+#: src/vmstat.c:1024
+msgid "-S requires k, K, m or M (default is KiB)"
+msgstr "-S necesita k, K, m o M (por defecto es KiB)"
+
+#: src/watch.c:94
+#, c-format
+msgid " %s [options] command\n"
+msgstr " %s [opciones] orden\n"
+
+#: src/watch.c:96
+msgid " -b, --beep beep if command has a non-zero exit\n"
+msgstr ""
+" -b, --beep pitar si el comando tiene un salida distinta de "
+"cero\n"
+
+#: src/watch.c:97
+msgid " -c, --color interpret ANSI color and style sequences\n"
+msgstr ""
+" -c, --color interpretar el color ANSI y las secuencias de "
+"estilo\n"
+
+#: src/watch.c:98
+#, fuzzy
+msgid ""
+" -C, --no-color do not interpret ANSI color and style sequences\n"
+msgstr ""
+" -c, --color interpretar el color ANSI y las secuencias de "
+"estilo\n"
+
+#: src/watch.c:99
+msgid ""
+" -d, --differences[=<permanent>]\n"
+" highlight changes between updates\n"
+msgstr ""
+" -d, --differences[=<permanente>]\n"
+" destacar cambios entre actualizaciones\n"
+
+#: src/watch.c:101
+msgid " -e, --errexit exit if command has a non-zero exit\n"
+msgstr ""
+" -e, --errexit salir si el comando tiene una salida distinta de "
+"cero\n"
+
+#: src/watch.c:102
+msgid " -g, --chgexit exit when output from command changes\n"
+msgstr " -g, --chgexit salir cuando la salida del comando cambie\n"
+
+#: src/watch.c:103
+msgid ""
+" -q, --equexit <cycles>\n"
+" exit when output from command does not change\n"
+msgstr ""
+" -q, --equexit <ciclos>\n"
+" salir cuando la salida del comando no cambia\n"
+
+#: src/watch.c:105
+msgid " -n, --interval <secs> seconds to wait between updates\n"
+msgstr " -n, --interval <segs> segundos a esperar entre actualizaciones\n"
+
+#: src/watch.c:106
+msgid " -p, --precise attempt run command in precise intervals\n"
+msgstr ""
+" -p, --precise intentar ejecutar el comando en intervalos "
+"precisos\n"
+
+#: src/watch.c:107
+msgid " -r, --no-rerun do not rerun program on window resize\n"
+msgstr ""
+" -r, --no-rerun no volver a ejecutar el programa al cambiar el "
+"tamaño de la ventana\n"
+
+#: src/watch.c:108
+msgid " -t, --no-title turn off header\n"
+msgstr " -t, --no-title apagar el encabezado\n"
+
+#: src/watch.c:109
+msgid " -w, --no-wrap turn off line wrapping\n"
+msgstr " -w, --no-wrap desactivar el ajuste de línea\n"
+
+#: src/watch.c:110
+msgid " -x, --exec pass command to exec instead of \"sh -c\"\n"
+msgstr " -x, --exec pasar el comando a exec en vez de a «sh -c»\n"
+
+#: src/watch.c:113
+msgid " -v, --version output version information and exit\n"
+msgstr " -v, --version muestra la información de la versión y termina\n"
+
+#: src/watch.c:485
+#, c-format
+msgid "Every %.1fs: "
+msgstr "Cada %.1fs: "
+
+#: src/watch.c:486
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: src/watch.c:575
+msgid "unable to create IPC pipes"
+msgstr "Incapaz de crear tuberias IPC"
+
+#: src/watch.c:585
+msgid "unable to fork process"
+msgstr "incapaz de procesar fork"
+
+#: src/watch.c:590
+msgid "dup2 failed"
+msgstr "dup2 falló"
+
+#: src/watch.c:597
+#, c-format
+msgid "unable to execute '%s'"
+msgstr "no se puede ejecutar «%s»"
+
+#: src/watch.c:614
+msgid "fdopen"
+msgstr "fdopen"
+
+#: src/watch.c:788
+msgid "waitpid"
+msgstr "waitpid"
+
+#: src/watch.c:796
+msgid "command exit with a non-zero status, press a key to exit"
+msgstr ""
+"orden de salida con un estado distinto de cero, pulse una tecla para salir"
+
+#: src/watch.c:863
+msgid "Could not parse interval from WATCH_INTERVAL"
+msgstr "No se pudo analizar el intervalo de WATCH_INTERVAL"
+
+#: src/watch.c:954
+#, c-format
+msgid "unicode handling error\n"
+msgstr "Error de manejo unicode\n"
+
+#: src/watch.c:960
+#, c-format
+msgid "unicode handling error (malloc)\n"
+msgstr "error de manejo unicode (malloc)\n"
+
+#: src/w.c:289 src/w.c:304
+#, c-format
+msgid " %2lludays"
+msgstr " %2lludias"
+
+#. Translation Hint: Minutes:Seconds
+#. Translation Hint: Hours:Minutes
+#: src/w.c:298 src/w.c:308
+#, c-format
+msgid " %2llu:%02um"
+msgstr " %2llu:%02um"
+
+#. Translation Hint: Seconds:Centiseconds
+#: src/w.c:316
+#, c-format
+msgid " %2llu.%02us"
+msgstr " %2llu.%02us"
+
+#: src/w.c:656
+#, c-format
+msgid " %s [options] [user]\n"
+msgstr " %s [opciones] [usuario]\n"
+
+#: src/w.c:658
+msgid " -h, --no-header do not print header\n"
+msgstr " -h, --no-header no mostrar la cabecera\n"
+
+#: src/w.c:659
+msgid " -u, --no-current ignore current process username\n"
+msgstr " -u, --no-current ignorar nombre de usuario de proceso actual\n"
+
+#: src/w.c:660
+msgid " -s, --short short format\n"
+msgstr " -s, --short formato corto\n"
+
+#: src/w.c:661
+msgid " -f, --from show remote hostname field\n"
+msgstr " -f, --from mostrar campo de nombre de equipo remoto\n"
+
+#: src/w.c:662
+msgid " -o, --old-style old style output\n"
+msgstr " -o, --old-style salida en formato antiguo\n"
+
+#: src/w.c:663
+msgid ""
+" -i, --ip-addr display IP address instead of hostname (if possible)\n"
+msgstr ""
+" -i, --ip-addr mostrar dirección IP en lugar del nombre de equipo (si "
+"es posible)\n"
+
+#: src/w.c:664
+msgid " -p, --pids show the PID(s) of processes in WHAT\n"
+msgstr " -p, --pids mostrar el(los) PID(s) de los procesos en WHAT\n"
+
+#: src/w.c:763
+#, c-format
+msgid ""
+"User length environment PROCPS_USERLEN must be between 8 and %i, ignoring.\n"
+msgstr ""
+"La variable de entorno de longitud de usuario PROCPS_USERLEN debe estar "
+"entre 8 y %i. Se ignora.\n"
+
+#: src/w.c:773
+#, c-format
+msgid ""
+"from length environment PROCPS_FROMLEN must be between 8 and %d, ignoring\n"
+msgstr ""
+"de entorno de longitud PROCPS_FROMLEN debe ser entre 8 y %d, ignorándolo\n"
+
+#. Translation Hint: Following five uppercase messages are
+#. * headers. Try to keep alignment intact.
+#: src/w.c:799
+#, c-format
+msgid "%-*s TTY "
+msgstr "%-*s TTY "
+
+#: src/w.c:801
+msgid "FROM"
+msgstr "DESDE"
+
+#: src/w.c:803
+#, c-format
+msgid " LOGIN@ IDLE JCPU PCPU WHAT\n"
+msgstr " LOGIN@ IDLE JCPU PCPU WHAT\n"
+
+#: src/w.c:805
+#, c-format
+msgid " IDLE WHAT\n"
+msgstr " IDLE WHAT\n"
+
+#: src/w.c:815
+#, fuzzy
+msgid "error getting sessions"
+msgstr "Error al obtener los resultados del resumen de bloque"
+
+#: src/w.c:823
+msgid "get user name failed"
+msgstr ""
+
+#: local/c.h:153
+msgid ""
+"\n"
+"Usage:\n"
+msgstr ""
+"\n"
+"Uso:\n"
+
+#: local/c.h:154
+msgid ""
+"\n"
+"Options:\n"
+msgstr ""
+"\n"
+"Opciones:\n"
+
+#: local/c.h:155
+msgid "\n"
+msgstr "\n"
+
+#: local/c.h:156
+msgid " -h, --help display this help and exit\n"
+msgstr " -h, --help muestra esta ayuda y sale\n"
+
+#: local/c.h:157
+msgid " -V, --version output version information and exit\n"
+msgstr " -V, --version muestra información de versión y sale\n"
+
+#: local/c.h:158
+#, c-format
+msgid ""
+"\n"
+"For more details see %s.\n"
+msgstr ""
+"\n"
+"Para más detalles consulte %s.\n"
+
+#: local/c.h:160
+#, c-format
+msgid "%s from %s\n"
+msgstr "%s desde %s\n"
+
+#~ msgid " %2lu.%02us"
+#~ msgstr " %2lu.%02us"
+
+#~ msgid " %2ludays"
+#~ msgstr " %2ludías"
+
+#~ msgid " %2lu:%02um"
+#~ msgstr " %2lu:%02um"
+
+#~ msgid "error: can not access /proc\n"
+#~ msgstr "error: no se puede acceder a /proc\n"
+
+#~ msgid "cannot open file %s"
+#~ msgstr "no se puede abrir el archivo %s"
+
+#~ msgid "something at line %d\n"
+#~ msgstr "algo en la línea %d\n"
+
+#~ msgid "partition was not found\n"
+#~ msgstr "No se encontró la partición\n"
+
+#~ msgid "%s is deprecated, value not set"
+#~ msgstr "%s está obsoleto, valor no establecido"
+
+#~ msgid "failed /proc/stat open: %s"
+#~ msgstr "fallo /proc/stat al abrir: %s"
+
+#~ msgid "-%c requires argument"
+#~ msgstr "-%c necesita un argumento"
+
+#~ msgid "failed openproc: %s"
+#~ msgstr "fallo openproc: %s"
+
+#~ msgid "failed /proc/stat read"
+#~ msgstr "fallo /proc/stat al leer"
+
+#~ msgid "your kernel does not support diskstat. (2.5.70 or above required)"
+#~ msgstr ""
+#~ "su núcleo no es compatible con diskstat. (2.5.70 o superior necesario)"
+
+#~ msgid "%13d disks \n"
+#~ msgstr "%13d discos \n"
+
+#~ msgid ""
+#~ "your kernel does not support slabinfo or your permissions are insufficient"
+#~ msgstr ""
+#~ "su núcleo no es compatible con slabinfo o sus permisos son insuficientes"
+
+#~ msgid "your kernel does not support diskstat (2.5.70 or above required)"
+#~ msgstr ""
+#~ "su núcleo no es compatible con diskstat (2.5.70 o superior necesario)"
+
+#~ msgid "%13d partitions \n"
+#~ msgstr "%13d particiones \n"
+
+#~ msgid "%13u boot time\n"
+#~ msgstr "%13u tiempo de arranque\n"
+
+#~ msgid "\"%s\" must be of the form name=value"
+#~ msgstr "«%s» tiene que ser de la forma nombre=valor"
+
+#~ msgid "malformed setting \"%s\""
+#~ msgstr "configuración malformada «%s»"
+
+#~ msgid ""
+#~ " k,r Manipulate tasks: '~1k~2' kill; '~1r~2' renice\n"
+#~ " d or s Set update interval\n"
+#~ msgstr ""
+#~ " k,r Gestiona tareas: «~1k~2» detener; «~1r~2» reiniciar\n"
+#~ " d o s Establece intervalo de actualización\n"
+
+#~ msgid "%13u interrupts\n"
+#~ msgstr "%13u interrupciones\n"
+
+#~ msgid "%13u CPU context switches\n"
+#~ msgstr "%13u cambios de contexto de CPU\n"
+
+#~ msgid "%13lu pages paged out\n"
+#~ msgstr "%13lu páginas en salida\n"
+
+#~ msgid "%13lu pages paged in\n"
+#~ msgstr "%13lu páginas en entrada\n"
+
+#~ msgid "%13u forks\n"
+#~ msgstr "%13u bifurcaciones\n"
+
+#~ msgid ""
+#~ " %s\n"
+#~ "Usage:\n"
+#~ " %s%s"
+#~ msgstr ""
+#~ " %s\n"
+#~ "Uso:\n"
+#~ " %s%s"
+
+#~ msgid ""
+#~ "unknown option '%c'\n"
+#~ "Usage:\n"
+#~ " %s%s"
+#~ msgstr ""
+#~ "opción «%c» desconocida\n"
+#~ "Uso:\n"
+#~ " %s%s"
+
+#~ msgid ""
+#~ "inappropriate '%s'\n"
+#~ "Usage:\n"
+#~ " %s%s"
+#~ msgstr ""
+#~ "«%s» inapropiada\n"
+#~ "Uso:\n"
+#~ " %s%s"
+
+#~ msgid "invalid node"
+#~ msgstr "nodo no válido"
+
+#~ msgid "expand which node (0-%d)"
+#~ msgstr "nodo a expandir (0-%d)"
+
+#~ msgid "Multiple unit options doesn't make sense."
+#~ msgstr "Múltiples opciones de unidades no tienen sentido."
+
+#~ msgid " p: sort by pages per slab\n"
+#~ msgstr " p: ordenar por páginas por bloque\n"
+
+#~ msgid " v: sort by number of active slabs\n"
+#~ msgstr " v: ordenar por número de bloques activos\n"
+
+#~ msgid ""
+#~ "%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used,~3 %9.9s~2buff/"
+#~ "cache~3\n"
+#~ "%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used.~3 %9.9s~2avail %s~3\n"
+#~ msgstr ""
+#~ "%s %s:~3 %9.9s~2total,~3 %9.9s~2libre,~3 %9.9s~2usado,~3 %9.9s~2búfer/"
+#~ "caché~3\n"
+#~ "%s %s:~3 %9.9s~2total,~3 %9.9s~2libre,~3 %9.9s~2usado.~3 %9.9s~2dispon "
+#~ "%s~3\n"
+
+#~ msgid ""
+#~ "This is simulated output representing the contents of some file or the "
+#~ "output\n"
+#~ "from some command. Exactly which commands and/or files are solely up to "
+#~ "you.\n"
+#~ "\n"
+#~ "Although this text is for information purposes only, it can still be "
+#~ "scrolled\n"
+#~ "and searched like real output will be. You are encouraged to experiment "
+#~ "with\n"
+#~ "those features as explained in the prologue above.\n"
+#~ "\n"
+#~ "To enable real Inspect functionality, entries must be added to the end of "
+#~ "the\n"
+#~ "top personal personal configuration file. You could use your favorite "
+#~ "editor\n"
+#~ "to accomplish this, taking care not to disturb existing entries.\n"
+#~ "\n"
+#~ "Another way to add entries is illustrated below, but it risks overwriting "
+#~ "the\n"
+#~ "rcfile. Redirected echoes must not replace (>) but append (>>) to that "
+#~ "file.\n"
+#~ "\n"
+#~ " /bin/echo -e \"pipe\\tOpen Files\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+#~ " /bin/echo -e \"file\\tNUMA Info\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+#~ " /bin/echo -e \"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr\" >> "
+#~ "~/.toprc\n"
+#~ "\n"
+#~ "If you don't know the location or name of the top rcfile, use the 'W' "
+#~ "command\n"
+#~ "and note those details. After backing up the current rcfile, try issuing "
+#~ "the\n"
+#~ "above echoes exactly as shown, replacing '.toprc' as appropriate. The "
+#~ "safest\n"
+#~ "approach would be to use copy then paste to avoid any typing mistakes.\n"
+#~ "\n"
+#~ "Finally, restart top to reveal what actual Inspect entries combined with "
+#~ "this\n"
+#~ "new command can offer. The possibilities are endless, especially "
+#~ "considering\n"
+#~ "that 'pipe' type entries can include shell scripts too!\n"
+#~ "\n"
+#~ "For additional important information, please consult the top "
+#~ "documentation.\n"
+#~ "Then enhance top with your very own customized 'file' and 'pipe' "
+#~ "entries.\n"
+#~ "\n"
+#~ "Enjoy!\n"
+#~ msgstr ""
+#~ "Esta es una salida simulada representando los contenidos de algún archivo "
+#~ "o la salida\n"
+#~ "de alguna orden. Exactamente qué órdenes o archivos depende solamente de "
+#~ "usted.\n"
+#~ "\n"
+#~ "Aunque este texto solo tiene fines informativos, se puede desplazar\n"
+#~ "y buscar tal y como sería una salida real. Está invitado a experimentar "
+#~ "con\n"
+#~ "esas características como se explica en el prólogo anterior.\n"
+#~ "\n"
+#~ "Para habilitar la funcionalidad Inspeccionar real, las entradas se deben "
+#~ "agregar al final del\n"
+#~ "primer archivo de configuración personal personal. Podría usar su editor "
+#~ "favorito\n"
+#~ "para lograrlo, teniendo cuidado de no alterar las entradas existentes.\n"
+#~ "\n"
+#~ "Otra forma de agregar entradas se ilustra a continuación, pero se corre "
+#~ "el riesgo de sobrescribir el\n"
+#~ "rcfile. Los ecos redirigidos no deben reemplazar (>) sino agregar (>>) a "
+#~ "ese archivo.\n"
+#~ "\n"
+#~ " /bin/echo -e \"pipe\\tOpen Files\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+#~ " /bin/echo -e \"file\\tNUMA Info\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+#~ " /bin/echo -e \"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr\" >> "
+#~ "~/.toprc\n"
+#~ "\n"
+#~ "Si no conoce la ubicación o el nombre del primer rcfile, use la orden "
+#~ "«W»\n"
+#~ "y tenga en cuenta esos detalles. Después de respaldar el rcfile actual, "
+#~ "intente introducir el\n"
+#~ "eco de arriba exactamente como se muestra, reemplazando «.toprc» según "
+#~ "corresponda. El enfoque\n"
+#~ "más seguro sería usar copiar y luego pegar para evitar cualquier error de "
+#~ "escritura.\n"
+#~ "\n"
+#~ "Finalmente, reinicie top para revelar qué entradas Inspect combinadas con "
+#~ "esta\n"
+#~ "nueva orden se ofrecen. Las posibilidades son infinitas, especialmente "
+#~ "considerando\n"
+#~ "que ¡las entradas de tipo «tubería» también pueden incluir shell "
+#~ "scripts!\n"
+#~ "\n"
+#~ "Para obtener información adicional importante, consulte la documentación "
+#~ "de top.\n"
+#~ "Luego mejore top con sus propias entradas «archivo» y «tubería» "
+#~ "personalizadas.\n"
+#~ "\n"
+#~ "¡Disfrute!\n"
+
+#~ msgid "bad memory scaling arg '%c'"
+#~ msgstr "argumento de escalado de memoria incorrecto «%c»"
+
+#~ msgid "error: not enough memory\n"
+#~ msgstr "error: no hay suficiente memoria\n"
+
+#~ msgid "terminal is not wide enough"
+#~ msgstr "el terminal no es lo suficientemente ancho"
diff --git a/po/fr.gmo b/po/fr.gmo
new file mode 100644
index 0000000..c62d535
--- /dev/null
+++ b/po/fr.gmo
Binary files differ
diff --git a/po/fr.po b/po/fr.po
new file mode 100644
index 0000000..e33b336
--- /dev/null
+++ b/po/fr.po
@@ -0,0 +1,5121 @@
+# Messages français de procps-ng
+# Copyright (C) 2023 Free Software Foundation, Inc.
+# This file is distributed under the same license as the procps-ng package.
+# Frédéric Marchal <fmarchal@perso.be>, 2014.
+# Stéphane Aulery <lkppo@free.fr>, 2015
+# Frédéric Marchal <fmarchal@perso.be>, 2023.
+#
+# La qualité de cette traduction est vraiment très mauvaise car:
+# 1) la mise en forme des messages impose des contraintes insensées: traduire
+# en deux lettres les mots wait, idle, swap, running, sleeping ou en cinq
+# lettres le mot « disk » (liste non exhaustive);
+# 2) les messages utilisent un jargon technique qui n'a pas d'équivalent suffisamment
+# explicite en français pour être abrégé: le concis « swap size » devient
+# « taille de la partition d'échange », « renice » devient l'horrible « change la
+# courtoisie » ou « pages paged in » devient « pages lues depuis le disque »;
+# 3) certains messages contiennent des mots de une ou deux lettres dont je n'ai
+# pas su trouver la signification, même avec le code source.
+# Bref, j'abandonne la traduction après six mois de recherches et j'attends que les
+# utilisateurs hurlent et me proposent des corrections.
+#
+# Frédéric Marchal
+msgid ""
+msgstr ""
+"Project-Id-Version: procps-ng 4.0.4-rc1\n"
+"Report-Msgid-Bugs-To: procps@freelists.org\n"
+"POT-Creation-Date: 2023-08-19 17:38+1000\n"
+"PO-Revision-Date: 2023-08-21 07:48+0200\n"
+"Last-Translator: Frédéric Marchal <fmarchal@perso.be>\n"
+"Language-Team: French <traduc@traduc.org>\n"
+"Language: fr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"Plural-Forms: nplurals=2; plural=(n >= 2);\n"
+
+#: local/fileutils.c:38
+msgid "write error"
+msgstr "erreur d'écriture"
+
+#: src/free.c:74 src/slabtop.c:106 src/uptime.c:65
+#, c-format
+msgid " %s [options]\n"
+msgstr " %s [options]\n"
+
+#: src/free.c:76
+msgid " -b, --bytes show output in bytes\n"
+msgstr " -b, --bytes afficher la sortie en octets\n"
+
+#: src/free.c:77
+msgid " --kilo show output in kilobytes\n"
+msgstr " --kilo afficher la sortie en kilooctets\n"
+
+#: src/free.c:78
+msgid " --mega show output in megabytes\n"
+msgstr " --mega afficher la sortie en mégaoctets\n"
+
+#: src/free.c:79
+msgid " --giga show output in gigabytes\n"
+msgstr " --giga afficher la sortie en gigaoctets\n"
+
+#: src/free.c:80
+msgid " --tera show output in terabytes\n"
+msgstr " --tera afficher la sortie en téraoctets\n"
+
+#: src/free.c:81
+msgid " --peta show output in petabytes\n"
+msgstr " --peta afficher la sortie en pétaoctets\n"
+
+#: src/free.c:82
+msgid " -k, --kibi show output in kibibytes\n"
+msgstr " -k, --kibi afficher la sortie en kibioctets\n"
+
+#: src/free.c:83
+msgid " -m, --mebi show output in mebibytes\n"
+msgstr " -m, --mebi afficher la sortie en mébioctets\n"
+
+#: src/free.c:84
+msgid " -g, --gibi show output in gibibytes\n"
+msgstr " -g, --gibi afficher la sortie en gibioctets\n"
+
+#: src/free.c:85
+msgid " --tebi show output in tebibytes\n"
+msgstr " --tebi afficher la sortie en tébioctets\n"
+
+#: src/free.c:86
+msgid " --pebi show output in pebibytes\n"
+msgstr " --pebi afficher la sortie en pébioctets\n"
+
+#: src/free.c:87
+msgid " -h, --human show human-readable output\n"
+msgstr ""
+" -h, --human afficher la sortie sous forme lisible par un humain\n"
+
+#: src/free.c:88
+msgid " --si use powers of 1000 not 1024\n"
+msgstr " --si utiliser des puissances de 1000 au lieu de 1024\n"
+
+#: src/free.c:89
+msgid " -l, --lohi show detailed low and high memory statistics\n"
+msgstr ""
+" -l, --lohi afficher des statistiques détaillées pour les mémoires "
+"basse et haute\n"
+
+#: src/free.c:90
+msgid " -L, --line show output on a single line\n"
+msgstr " -L, --line afficher la sortie sur une seule ligne\n"
+
+#: src/free.c:91
+msgid " -t, --total show total for RAM + swap\n"
+msgstr " -t, --total afficher le total de la RAM + échange (swap)\n"
+
+#: src/free.c:92
+msgid " -v, --committed show committed memory and commit limit\n"
+msgstr " -v, --committed montrer la mémoire dédiée et sa limite\n"
+
+#: src/free.c:93
+msgid " -s N, --seconds N repeat printing every N seconds\n"
+msgstr " -s N, --seconds N répéter l'affichage toutes les N secondes\n"
+
+#: src/free.c:94
+msgid " -c N, --count N repeat printing N times, then exit\n"
+msgstr " -c N, --count N répéter l'affichage N fois puis termine\n"
+
+#: src/free.c:95
+msgid " -w, --wide wide output\n"
+msgstr " -w, --wide sortie large\n"
+
+#: src/free.c:97 src/w.c:666
+msgid " --help display this help and exit\n"
+msgstr " --help afficher cette aide et termine\n"
+
+#: src/free.c:172
+msgid "Multiple unit options don't make sense."
+msgstr "Des options d'unités multiples n'ont aucun sens."
+
+#: src/free.c:341
+#, c-format
+msgid "seconds argument `%s' is not positive number"
+msgstr "l'argument des secondes « %s » n'est pas un nombre positif"
+
+#: src/free.c:347
+msgid "failed to parse count argument"
+msgstr "l'argument du nombre de répétitions ne peut pas être décodé"
+
+#: src/free.c:350
+#, c-format
+msgid "failed to parse count argument: '%s'"
+msgstr "échec du décodage de l'argument du nombre de répétitions: « %s »"
+
+#: src/free.c:370
+msgid "Memory information file /proc/meminfo does not exist"
+msgstr "Le fichier d'information de la mémoire /proc/meminfo n'existe pas"
+
+#: src/free.c:373 src/vmstat.c:378 src/vmstat.c:872
+msgid "Unable to create meminfo structure"
+msgstr "impossible de créer la structure meminfo"
+
+#. Translation Hint: These are shortened column headers
+#. * that are all 7 characters long. Use spaces and right
+#. * align if the translation is shorter.
+#.
+#: src/free.c:381
+msgid "SwapUse"
+msgstr "ÉchUtil"
+
+#: src/free.c:382
+msgid "CachUse"
+msgstr "CachUti"
+
+#: src/free.c:384
+msgid " MemUse"
+msgstr "MemUtil"
+
+#: src/free.c:385
+msgid "MemFree"
+msgstr "MemLibr"
+
+#: src/free.c:395
+#, c-format
+msgid ""
+" total used free shared buffers "
+"cache available"
+msgstr ""
+" total utilisé libre partagé tampons "
+"cache disponible"
+
+#: src/free.c:397
+#, c-format
+msgid ""
+" total used free shared buff/cache "
+"available"
+msgstr ""
+" total utilisé libre partagé tamp/cache "
+"disponible"
+
+#: src/free.c:400
+msgid "Mem:"
+msgstr "Mem:"
+
+#: src/free.c:423
+msgid "Low:"
+msgstr "Basse:"
+
+#: src/free.c:429
+msgid "High:"
+msgstr "Haute:"
+
+#: src/free.c:436
+msgid "Swap:"
+msgstr "Échange:"
+
+#: src/free.c:443
+msgid "Total:"
+msgstr "Total:"
+
+#: src/free.c:456
+msgid "Comm:"
+msgstr "Dédié:"
+
+#: src/kill.c:40
+#, c-format
+msgid " %s [options] <pid> [...]\n"
+msgstr " %s [options] <pid> […]\n"
+
+#: src/kill.c:42
+msgid " <pid> [...] send signal to every <pid> listed\n"
+msgstr " <pid> […] envoie le signal à chaque <pid> listé\n"
+
+#: src/kill.c:43
+msgid ""
+" -<signal>, -s, --signal <signal>\n"
+" specify the <signal> to be sent\n"
+msgstr ""
+" -<signal>, -s, --signal <signal>\n"
+" spécifier le <signal> à envoyer\n"
+
+#: src/kill.c:45
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr " -q, --queue <valeur> valeur entière à envoyer avec le signal\n"
+
+#: src/kill.c:46
+msgid ""
+" -l, --list=[<signal>] list all signal names, or convert one to a name\n"
+msgstr ""
+" -l, --list=[<signal>] liste tous les noms de signaux ou en converti un en "
+"son nom\n"
+
+#: src/kill.c:47
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr ""
+" -L, --table liste tous les noms de signaux dans une belle table\n"
+
+#: src/kill.c:112
+#, c-format
+msgid "unknown signal name %s"
+msgstr "nom de signal %s inconnu"
+
+#: src/kill.c:131
+msgid "must be an integer value to be passed with the signal."
+msgstr "doit être une valeur entière passée avec le signal."
+
+#: src/kill.c:136
+#, c-format
+msgid "invalid argument %c"
+msgstr "argument %c invalide"
+
+#: src/kill.c:146 src/pgrep.c:792 src/pidof.c:250 src/pidof.c:290
+#: src/sysctl.c:867
+msgid "internal error"
+msgstr "erreur interne"
+
+#: src/kill.c:158 src/pmap.c:771 src/pmap.c:786 src/skill.c:381 src/skill.c:465
+#: src/tload.c:135 src/tload.c:140 src/vmstat.c:1047 src/vmstat.c:1057
+#: src/watch.c:891 src/watch.c:906
+msgid "failed to parse argument"
+msgstr "échec de l'analyse de l'argument"
+
+#: src/pgrep.c:92 src/pidof.c:40 src/skill.c:74
+msgid "integer overflow"
+msgstr "débordement d'entier"
+
+#: src/pgrep.c:155
+#, c-format
+msgid " %s [options] <pattern>\n"
+msgstr "%s [options] <motif>\n"
+
+#: src/pgrep.c:159
+msgid " -d, --delimiter <string> specify output delimiter\n"
+msgstr " -d, --delimiter <chaîne> désigne le délimiteur de sortie\n"
+
+#: src/pgrep.c:160
+msgid " -l, --list-name list PID and process name\n"
+msgstr " -l, --list-name liste le PID et le nom du processus\n"
+
+#: src/pgrep.c:161
+msgid " -a, --list-full list PID and full command line\n"
+msgstr ""
+" -a, --list-full liste le PID et la ligne de commande complète\n"
+
+#: src/pgrep.c:162
+msgid " -v, --inverse negates the matching\n"
+msgstr " -v, --inverse inverse le sens de la correspondance\n"
+
+#: src/pgrep.c:163
+msgid " -w, --lightweight list all TID\n"
+msgstr " -w, --lightweight liste tous les TID\n"
+
+#: src/pgrep.c:166
+msgid " -<sig> signal to send (either number or name)\n"
+msgstr ""
+" -<sig> signal à envoyer (numéro ou nom du signal)\n"
+
+#: src/pgrep.c:167
+msgid " -H, --require-handler match only if signal handler is present\n"
+msgstr ""
+" -H, --require-handler correspondre uniquement si un gestionnaire de "
+"signal est présent\n"
+
+#: src/pgrep.c:168
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr " -q, --queue <valeur> valeur entière à envoyer avec le signal\n"
+
+#: src/pgrep.c:169
+msgid " -e, --echo display what is killed\n"
+msgstr " -e, --echo affiche ce qui est tué\n"
+
+#: src/pgrep.c:173
+msgid " -e, --echo display PIDs before waiting\n"
+msgstr " -e, --echo affiche les PID avant l'attente\n"
+
+#: src/pgrep.c:177
+msgid " -c, --count count of matching processes\n"
+msgstr " -c, --count compte les processus correspondants\n"
+
+#: src/pgrep.c:178
+msgid " -f, --full use full process name to match\n"
+msgstr ""
+" -f, --full correspondance sur le nom complet du processus\n"
+
+#: src/pgrep.c:179
+msgid " -g, --pgroup <PGID,...> match listed process group IDs\n"
+msgstr ""
+" -g, --pgroup <PGID,…> affiche les ID de groupe des processus listés\n"
+
+#: src/pgrep.c:180
+msgid " -G, --group <GID,...> match real group IDs\n"
+msgstr " -G, --group <GID,…> correspondance sur le ID de groupe réel\n"
+
+#: src/pgrep.c:181
+msgid " -i, --ignore-case match case insensitively\n"
+msgstr " -i, --ignore-case correspondance insensible à la casse\n"
+
+#: src/pgrep.c:182
+msgid " -n, --newest select most recently started\n"
+msgstr " -n, --newest sélectionne le plus récemment démarré\n"
+
+#: src/pgrep.c:183
+msgid " -o, --oldest select least recently started\n"
+msgstr " -o, --oldest sélectionne le moins récemment démarré\n"
+
+#: src/pgrep.c:184
+msgid " -O, --older <seconds> select where older than seconds\n"
+msgstr " -O, --older <secondes> sélectionne ceux plus vieux que secondes\n"
+
+#: src/pgrep.c:185
+msgid ""
+" -P, --parent <PPID,...> match only child processes of the given parent\n"
+msgstr ""
+" -P, --parent <PPID,…> correspondance parmi les processus enfants du "
+"parent donné\n"
+
+#: src/pgrep.c:186
+msgid " -s, --session <SID,...> match session IDs\n"
+msgstr " -s, --session <SID,…> correspondance sur le ID de session\n"
+
+#: src/pgrep.c:187
+msgid " --signal <sig> signal to send (either number or name)\n"
+msgstr ""
+" --signal <sig> signal à envoyer (numéro ou nom du signal)\n"
+
+#: src/pgrep.c:188
+msgid " -t, --terminal <tty,...> match by controlling terminal\n"
+msgstr " -t, --terminal <tty,…> correspondance sur le terminal contrôlant\n"
+
+#: src/pgrep.c:189
+msgid " -u, --euid <ID,...> match by effective IDs\n"
+msgstr " -u, --euid <ID,…> correspondance sur le ID effectif\n"
+
+#: src/pgrep.c:190
+msgid " -U, --uid <ID,...> match by real IDs\n"
+msgstr " -U, --uid <ID,…> correspondance sur le ID réel\n"
+
+#: src/pgrep.c:191
+msgid " -x, --exact match exactly with the command name\n"
+msgstr ""
+" -x, --exact correspondance exacte avec le nom de la commande\n"
+
+#: src/pgrep.c:192
+msgid " -F, --pidfile <file> read PIDs from file\n"
+msgstr " -F, --pidfile <fichier> lit les PID depuis le fichier\n"
+
+#: src/pgrep.c:193
+msgid " -L, --logpidfile fail if PID file is not locked\n"
+msgstr ""
+" -L, --logpidfile échoue si le fichier PID n'est pas verrouillé\n"
+
+#: src/pgrep.c:194
+msgid " -r, --runstates <state> match runstates [D,S,Z,...]\n"
+msgstr ""
+" -r, --runstates <état> correspond aux états d'exécution [D,S,Z,…]\n"
+
+#: src/pgrep.c:195
+msgid " -A, --ignore-ancestors exclude our ancestors from results\n"
+msgstr " -A, --ignore-ancestors exclure nos ancêtres des résultats\n"
+
+#: src/pgrep.c:196
+msgid " --cgroup <grp,...> match by cgroup v2 names\n"
+msgstr " --cgroup <grp,…> correspondance par noms cgroup v2\n"
+
+#: src/pgrep.c:197
+msgid ""
+" --ns <PID> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+" --ns <PID> fait correspondre les processus qui "
+"appartiennent\n"
+" au même espace de nom que <pid>\n"
+
+#: src/pgrep.c:199
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option.\n"
+" Available namespaces: ipc, mnt, net, pid, user, "
+"uts\n"
+msgstr ""
+" --nslist <ns,…> liste les espaces de noms qui seront acceptés "
+"par\n"
+" l'option --ns.\n"
+" Espaces de noms disponibles: ipc, mnt, net, pid, "
+"user, uts\n"
+
+#: src/pgrep.c:224 src/pgrep.c:700 src/w.c:455
+msgid "Unable to create pid info structure"
+msgstr "Impossible de créer la structure des infos pid"
+
+#: src/pgrep.c:388
+#, c-format
+msgid "invalid user name: %s"
+msgstr "nom d'utilisateur invalide : %s"
+
+#: src/pgrep.c:405
+#, c-format
+msgid "invalid group name: %s"
+msgstr "nom de groupe invalide : %s"
+
+#: src/pgrep.c:416
+#, c-format
+msgid "invalid process group: %s"
+msgstr "groupe de processus invalide : %s"
+
+#: src/pgrep.c:428
+#, c-format
+msgid "invalid session id: %s"
+msgstr "ID de session invalide : %s"
+
+#: src/pgrep.c:440
+#, c-format
+msgid "not a number: %s"
+msgstr "pas un nombre : %s"
+
+#: src/pgrep.c:490
+#, c-format
+msgid "not a hex string: %s"
+msgstr "pas un chaîne hexadécimale : %s"
+
+#: src/pgrep.c:525 src/skill.c:162
+msgid "Unable to read process namespace information"
+msgstr "Impossible de lire l'information de l'espace de noms du processus"
+
+#: src/pgrep.c:612
+#, c-format
+msgid "regex error: %s"
+msgstr "erreur exp reg : %s"
+
+#: src/pgrep.c:695
+msgid "Error reading reference namespace information\n"
+msgstr ""
+"Erreur lors de la lecture des informations de l'espace de nom de référence\n"
+
+#: src/pgrep.c:809
+#, c-format
+msgid ""
+"pattern that searches for process name longer than 15 characters will result "
+"in zero matches\n"
+"Try `%s -f' option to match against the complete command line."
+msgstr ""
+"un motif qui cherche un nom de processus plus long que 15 caractères ne "
+"retournera aucun résultat\n"
+"Essayez l'option « %s -f » pour obtenir une correspondance sur la ligne de "
+"commande complète."
+
+#: src/pgrep.c:924
+#, c-format
+msgid "Unknown signal \"%s\"."
+msgstr "Signal « %s » inconnu."
+
+#: src/pgrep.c:1090
+#, c-format
+msgid ""
+"-L without -F makes no sense\n"
+"Try `%s --help' for more information."
+msgstr ""
+"-L sans -F n'a pas de sens\n"
+"Essayez « %s --help » pour plus d'informations."
+
+#: src/pgrep.c:1097
+#, c-format
+msgid ""
+"pidfile not valid\n"
+"Try `%s --help' for more information."
+msgstr ""
+"fichier pid pas valable\n"
+"Essayez « %s --help » pour plus d'informations."
+
+#: src/pgrep.c:1106
+#, c-format
+msgid ""
+"only one pattern can be provided\n"
+"Try `%s --help' for more information."
+msgstr ""
+"fournissez un seul motif à la fois\n"
+"Essayez « %s --help » pour plus d'informations."
+
+#: src/pgrep.c:1110
+#, c-format
+msgid ""
+"no matching criteria specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+"aucun critère correspondant spécifié\n"
+"Essayez « %s --help » pour plus d'informations."
+
+#: src/pgrep.c:1162
+#, c-format
+msgid "%s killed (pid %lu)\n"
+msgstr "%s tué (pid %lu)\n"
+
+#: src/pgrep.c:1169
+#, c-format
+msgid "killing pid %ld failed"
+msgstr "le pid %ld n'a pu être tué"
+
+#: src/pgrep.c:1181
+#, c-format
+msgid "waiting for %s (pid %lu)\n"
+msgstr "attente de %s (pid %lu)\n"
+
+#: src/pgrep.c:1185
+msgid "pidfd_open() not implemented in Linux < 5.3"
+msgstr "pidfd_opent() n'est pas implémenté avant Linux 5.3"
+
+#: src/pgrep.c:1188
+#, c-format
+msgid "opening pid %ld failed"
+msgstr "l'ouverture du pid %ld a échoué"
+
+#: src/pgrep.c:1202
+msgid "epoll_wait failed"
+msgstr "epoll_wait a échoué"
+
+#: src/pidof.c:75
+#, c-format
+msgid " %s [options] [program [...]]\n"
+msgstr " %s [options] [programme […]]\n"
+
+#: src/pidof.c:77
+msgid " -s, --single-shot return one PID only\n"
+msgstr " -s, --single-shot retourne un seul PID\n"
+
+#: src/pidof.c:78
+msgid " -c, --check-root omit processes with different root\n"
+msgstr ""
+" -c, --check-root omet les processus avec des racines différentes\n"
+
+#: src/pidof.c:79
+msgid " -q, quiet mode, only set the exit code\n"
+msgstr ""
+" -q mode silencieux, retourne uniquement un code de "
+"sortie\n"
+
+#: src/pidof.c:80
+msgid " -w, --with-workers show kernel workers too\n"
+msgstr " -w, --with-workers montre aussi les « workers » du noyau\n"
+
+#: src/pidof.c:81
+msgid " -x also find shells running the named scripts\n"
+msgstr ""
+" -x trouve aussi les shells exécutant les scripts "
+"nommés\n"
+
+#: src/pidof.c:82
+msgid " -o, --omit-pid <PID,...> omit processes with PID\n"
+msgstr " -o, --omit-pid <PID,…> omet les processus avec ce PID\n"
+
+#: src/pidof.c:83
+msgid " -t, --lightweight list threads too\n"
+msgstr " -t, --lightweight lister aussi les threads\n"
+
+#: src/pidof.c:84
+msgid " -S, --separator SEP use SEP as separator put between PIDs"
+msgstr " -S, --separator SEP place le séparateur SEP entre les PID"
+
+#: src/pidof.c:293
+#, c-format
+msgid "illegal omit pid value (%s)!\n"
+msgstr "valeur de pid à omettre invalide (%s) !\n"
+
+#: src/pmap.c:72
+msgid "Address"
+msgstr "Adresse"
+
+#: src/pmap.c:73
+msgid "Offset"
+msgstr "Décalage"
+
+#: src/pmap.c:74
+msgid "Device"
+msgstr "Périphérique"
+
+#: src/pmap.c:75
+msgid "Mapping"
+msgstr "Carte"
+
+#: src/pmap.c:79
+msgid "Perm"
+msgstr "Perm"
+
+#: src/pmap.c:80
+msgid "Inode"
+msgstr "Inode"
+
+#: src/pmap.c:83
+msgid "Kbytes"
+msgstr "kilo-octets"
+
+#: src/pmap.c:84
+msgid "Mode"
+msgstr "Mode"
+
+#. Translation Hint: With the next 5 fields, notice how an extra space
+#. has been added ahead of one 'KiB' so that they all
+#. align. You need not preserve such alignment.
+#. Translation Hint: maximum 'RSS' = 6
+#: src/pmap.c:85 src/top/top_nls.c:337
+msgid "RSS"
+msgstr "RSS"
+
+#: src/pmap.c:86
+msgid "Dirty"
+msgstr "Modifié"
+
+#: src/pmap.c:120
+#, c-format
+msgid " %s [options] PID [PID ...]\n"
+msgstr " %s [options] PID [PID …]\n"
+
+#: src/pmap.c:122
+msgid " -x, --extended show details\n"
+msgstr " -x, --extended montre les détails\n"
+
+#: src/pmap.c:123
+msgid " -X show even more details\n"
+msgstr " -X montre plus de détails\n"
+
+#: src/pmap.c:124
+msgid " WARNING: format changes according to /proc/PID/smaps\n"
+msgstr " ATTENTION: le format change selon /proc/PID/smaps\n"
+
+#: src/pmap.c:125
+msgid " -XX show everything the kernel provides\n"
+msgstr " -XX montre tout ce que le kernel fournis\n"
+
+#: src/pmap.c:126
+msgid " -c, --read-rc read the default rc\n"
+msgstr " -c, --read-rc lit le rc par défaut\n"
+
+#: src/pmap.c:127
+msgid " -C, --read-rc-from=<file> read the rc from file\n"
+msgstr " -C, --read-rc-from=<fichier> lit le rc dans le fichier\n"
+
+#: src/pmap.c:128
+msgid " -n, --create-rc create new default rc\n"
+msgstr " -n, --create-rc crée un nouveau rc par défaut\n"
+
+#: src/pmap.c:129
+msgid " -N, --create-rc-to=<file> create new rc to file\n"
+msgstr " -N, --create-rc-to=<fichier> crée un nouveau rc dans le fichier\n"
+
+#: src/pmap.c:130
+msgid " NOTE: pid arguments are not allowed with -n, -N\n"
+msgstr ""
+" NOTE: un pid n'est pas accepté comme argument avec -n, -N\n"
+
+#: src/pmap.c:131
+msgid " -d, --device show the device format\n"
+msgstr " -d, --device montre le format du périphérique\n"
+
+#: src/pmap.c:132
+msgid " -q, --quiet do not display header and footer\n"
+msgstr ""
+" -q, --quiet n'affiche pas l'en-tête ni le pied de page\n"
+
+#: src/pmap.c:133
+msgid " -p, --show-path show path in the mapping\n"
+msgstr " -p, --show-path montre le chemin dans la carte\n"
+
+#: src/pmap.c:134
+msgid " -A, --range=<low>[,<high>] limit results to the given range\n"
+msgstr ""
+" -A, --range=<min>[,<max>] limite les résultats à l'intervalle donné\n"
+
+#: src/pmap.c:215
+msgid "shared memory detach"
+msgstr "détacher mémoire partagée"
+
+#: src/pmap.c:220
+msgid "shared memory remove"
+msgstr "retirer mémoire partagée"
+
+#: src/pmap.c:245
+msgid " [ anon ]"
+msgstr " [ anon ]"
+
+#: src/pmap.c:248
+msgid " [ stack ]"
+msgstr " [ pile ]"
+
+#: src/pmap.c:334 src/pmap.c:340
+msgid "Unknown format in smaps file!"
+msgstr "Format inconnu dans le fichier smaps !"
+
+#: src/pmap.c:365
+msgid "ERROR: memory allocation failed"
+msgstr "ERREUR : l'allocation de mémoire a échoué"
+
+#: src/pmap.c:382
+msgid "inconsistent detail field in smaps file, line:\n"
+msgstr "champ de détail inconsistant dans le fichier smaps à la ligne:\n"
+
+#: src/pmap.c:731
+msgid "total kB"
+msgstr "ko total"
+
+#: src/pmap.c:742
+#, c-format
+msgid "mapped: %ldK writeable/private: %ldK shared: %ldK\n"
+msgstr "mappé: %ldK inscriptible/privé: %ldK partagé: %ldK\n"
+
+#. Translation Hint: keep total string length
+#. * as 24 characters. Adjust %16 if needed
+#: src/pmap.c:751
+#, c-format
+msgid " total %16ldK\n"
+msgstr " total %16ldK\n"
+
+#. Translation Hint: keep total string length
+#. * as 16 characters. Adjust %8 if needed
+#: src/pmap.c:757
+#, c-format
+msgid " total %8ldK\n"
+msgstr " total %8ldK\n"
+
+#: src/pmap.c:832
+#, c-format
+msgid "config line too long - line %d"
+msgstr "ligne de configuration trop longue – ligne %d"
+
+#: src/pmap.c:857
+#, c-format
+msgid "unsupported section found in the config - line %d"
+msgstr "section non supportée dans la config – ligne %d"
+
+#: src/pmap.c:860 src/pmap.c:871 src/pmap.c:882 src/pmap.c:905 src/pmap.c:917
+#, c-format
+msgid "syntax error found in the config - line %d"
+msgstr "erreur de syntaxe dans la config – ligne %d"
+
+#: src/pmap.c:887 src/pmap.c:1010
+msgid "memory allocation failed"
+msgstr "l'allocation de mémoire a échoué"
+
+#: src/pmap.c:939
+msgid "the file already exists - delete or rename it first"
+msgstr "le fichier existe déjà – effacez ou renommez-le d'abord"
+
+#: src/pmap.c:1002
+msgid "HOME variable undefined"
+msgstr "variable HOME non définie"
+
+#: src/pmap.c:1061
+msgid "option -r is ignored as SunOS compatibility"
+msgstr "l'option -r est ignorée par compatibilité avec SunOS"
+
+#: src/pmap.c:1108
+msgid "options -c, -C, -d, -n, -N, -x, -X are mutually exclusive"
+msgstr "les options -c, -C, -d, -n, -N, -x, -X sont mutuellement exclusives"
+
+#: src/pmap.c:1111
+msgid "options -p, -q are mutually exclusive with -n, -N"
+msgstr "les options -p et -q sont exclues avec -n et -N"
+
+#: src/pmap.c:1114 src/pmap.c:1163
+msgid "too many arguments"
+msgstr "trop d'arguments"
+
+#: src/pmap.c:1118
+msgid "rc file successfully created, feel free to edit the content"
+msgstr "fichier rc créé avec succès, vous pouvez éditer son contenu"
+
+#: src/pmap.c:1121
+msgid "couldn't create the rc file"
+msgstr "le fichier rc n'a pu être créé"
+
+#: src/pmap.c:1133
+#, c-format
+msgid "~/.%src file successfully created, feel free to edit the content"
+msgstr "fichier ~/.%src créé, vous pouvez éditer son contenu"
+
+#: src/pmap.c:1136
+#, c-format
+msgid "couldn't create ~/.%src"
+msgstr "n'a pu créer ~/.%src"
+
+#: src/pmap.c:1141
+msgid "argument missing"
+msgstr "argument manquant"
+
+#: src/pmap.c:1154
+msgid "couldn't read the rc file"
+msgstr "le fichier rc n'a pu être lu"
+
+#: src/pmap.c:1156
+#, c-format
+msgid "couldn't read ~/.%src"
+msgstr "n'a pu lire ~/.%src"
+
+#: src/pmap.c:1165 src/pmap.c:1190
+msgid "library failed pids statistics"
+msgstr "la bibliothèque a échoué dans les statistiques des pids"
+
+#: src/ps/display.c:61
+#, c-format
+msgid "Signal %d (%s) caught by %s (%s).\n"
+msgstr "Signal %d (%s) intercepté par %s (%s).\n"
+
+#: src/ps/display.c:75 src/ps/display.c:252 src/ps/display.c:407
+#: src/ps/output.c:2359 src/ps/parser.c:509 src/ps/parser.c:756
+#: src/ps/select.c:95 src/ps/sortformat.c:263 src/ps/sortformat.c:301
+#: src/ps/sortformat.c:549
+msgid "please report this bug"
+msgstr "merci de rapporter ce bug"
+
+#: src/ps/display.c:315 src/ps/display.c:484
+#, c-format
+msgid "fatal library error, reap\n"
+msgstr "erreur fatale de la bibliothèque, reap\n"
+
+#: src/ps/display.c:365
+#, c-format
+msgid "could not find ppid\n"
+msgstr "n'a pu trouver le ppid\n"
+
+#: src/ps/display.c:375
+#, c-format
+msgid "could not find start_time\n"
+msgstr "n'a pu trouver start_time\n"
+
+#: src/ps/global.c:287
+#, c-format
+msgid "your %dx%d screen size is bogus. expect trouble\n"
+msgstr "votre taille d'écran %dx%d est fausse. Attendez-vous à des problèmes\n"
+
+#: src/ps/global.c:360 src/ps/global.c:372
+msgid "environment specified an unknown personality"
+msgstr "l'environnement a spécifié une personnalité inconnue"
+
+#: src/ps/global.c:364
+#, c-format
+msgid "cannot strdup() personality text\n"
+msgstr "le texte de la personnalité ne peut être dupliqué avec strdup()\n"
+
+#: src/ps/global.c:495
+#, c-format
+msgid "fatal library error, context\n"
+msgstr "erreur fatale de la bibliothèque, context\n"
+
+#: src/ps/global.c:503
+#, c-format
+msgid "fatal library error, lookup self\n"
+msgstr "erreur fatale de la bibliothèque, recherche de sois-même\n"
+
+#. Translation Note:
+#. . The following translatable word will be used to recognize the
+#. . user's request for help text. In other words, the translation
+#. . you provide will alter program behavior.
+#. .
+#. . It must be limited to 15 characters or less.
+#.
+#: src/ps/global.c:542
+msgid "help"
+msgstr "aide"
+
+#. Translation Notes for ps Help #1 ---------------------------------
+#. . This next group of lines represents 6 pairs of words + abbreviations
+#. . which are the basis of the 'ps' program help text.
+#. .
+#. . The words and abbreviations you provide will alter program behavior.
+#. . They will also appear in the help usage summary associated with the
+#. . "Notes for ps Help #2" below.
+#. .
+#. . In their English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . When translating these 6 pairs you may choose any appropriate
+#. . language equivalents and the only requirement is the abbreviated
+#. . representations must be unique.
+#. .
+#. . By default, those abbreviations are single characters. However,
+#. . they are not limited to only one character after translation.
+#. .
+#. Translation Hint, Pair #1
+#: src/ps/help.c:67
+msgid "simple"
+msgstr "simple"
+
+#: src/ps/help.c:67
+msgid "s"
+msgstr "s"
+
+#. Translation Hint, Pair #2
+#: src/ps/help.c:69
+msgid "list"
+msgstr "liste"
+
+#: src/ps/help.c:69
+msgid "l"
+msgstr "l"
+
+#. Translation Hint, Pair #3
+#: src/ps/help.c:71
+msgid "output"
+msgstr "sortie"
+
+#: src/ps/help.c:71
+msgid "o"
+msgstr "o"
+
+#. Translation Hint, Pair #4
+#: src/ps/help.c:73
+msgid "threads"
+msgstr "threads"
+
+#: src/ps/help.c:73
+msgid "t"
+msgstr "h"
+
+#. Translation Hint, Pair #5
+#: src/ps/help.c:75
+msgid "misc"
+msgstr "divers"
+
+#: src/ps/help.c:75
+msgid "m"
+msgstr "d"
+
+#. Translation Hint, Pair #6
+#: src/ps/help.c:77
+msgid "all"
+msgstr "tous"
+
+#: src/ps/help.c:77
+msgid "a"
+msgstr "t"
+
+#: src/ps/help.c:98
+#, c-format
+msgid ""
+"\n"
+"Usage:\n"
+" %s [options]\n"
+msgstr ""
+"\n"
+"Usage:\n"
+" %s [options]\n"
+
+#: src/ps/help.c:103
+msgid ""
+"\n"
+"Basic options:\n"
+msgstr ""
+"\n"
+"Options de base:\n"
+
+#: src/ps/help.c:104
+msgid " -A, -e all processes\n"
+msgstr " -A, -e tous les processus\n"
+
+#: src/ps/help.c:105
+msgid " -a all with tty, except session leaders\n"
+msgstr " -a tous avec un tty sauf les têtes de sessions\n"
+
+#: src/ps/help.c:106
+msgid " a all with tty, including other users\n"
+msgstr ""
+" a tous avec un tty y compris les autres utilisateurs\n"
+
+#: src/ps/help.c:107
+msgid " -d all except session leaders\n"
+msgstr " -d tous sauf les têtes de sessions\n"
+
+#: src/ps/help.c:108
+msgid " -N, --deselect negate selection\n"
+msgstr " -N, --deselect inverse la sélection\n"
+
+#: src/ps/help.c:109
+msgid " r only running processes\n"
+msgstr " r seuls les processus s'exécutant\n"
+
+#: src/ps/help.c:110
+msgid " T all processes on this terminal\n"
+msgstr " T tous les processus sur ce terminal\n"
+
+#: src/ps/help.c:111
+msgid " x processes without controlling ttys\n"
+msgstr " x processus sans ttys contrôlant\n"
+
+#: src/ps/help.c:114
+msgid ""
+"\n"
+"Selection by list:\n"
+msgstr ""
+"\n"
+"Sélection par liste:\n"
+
+#: src/ps/help.c:115
+msgid " -C <command> command name\n"
+msgstr " -C <commande> nom de la commande\n"
+
+#: src/ps/help.c:116
+msgid " -G, --Group <GID> real group id or name\n"
+msgstr " -G, --Group <GID> ID ou nom réel du groupe\n"
+
+#: src/ps/help.c:117
+msgid " -g, --group <group> session or effective group name\n"
+msgstr " -g, --group <groupe> session ou nom de group effectif\n"
+
+#: src/ps/help.c:118
+msgid " -p, p, --pid <PID> process id\n"
+msgstr " -p, p, --pid <PID> ID du processus\n"
+
+#: src/ps/help.c:119
+msgid " --ppid <PID> parent process id\n"
+msgstr " --ppid <PID> ID du processus parent\n"
+
+#: src/ps/help.c:120
+msgid ""
+" -q, q, --quick-pid <PID>\n"
+" process id (quick mode)\n"
+msgstr ""
+" -q, q, --quick-pid <PID>\n"
+" ID du processus (mode rapide)\n"
+
+#: src/ps/help.c:122
+msgid " -s, --sid <session> session id\n"
+msgstr " -s, --sid <session> ID de session\n"
+
+#: src/ps/help.c:123
+msgid " -t, t, --tty <tty> terminal\n"
+msgstr " -t, t, --tty <tty> terminal\n"
+
+#: src/ps/help.c:124
+msgid " -u, U, --user <UID> effective user id or name\n"
+msgstr " -u, U, --user <UID> nom ou ID de l'utilisateur effectif\n"
+
+#: src/ps/help.c:125
+msgid " -U, --User <UID> real user id or name\n"
+msgstr " -U, --User <UID> nom ou ID de l'utilisateur réel\n"
+
+#: src/ps/help.c:126
+msgid ""
+"\n"
+" The selection options take as their argument either:\n"
+" a comma-separated list e.g. '-u root,nobody' or\n"
+" a blank-separated list e.g. '-p 123 4567'\n"
+msgstr ""
+"\n"
+" Les options de sélection prennent comme argument\n"
+" une liste séparée par des virgules (par exemple,\n"
+" « -u root,nobody ») ou une liste séparée par des\n"
+" espaces (par exemple, « -p 123 4567 »)\n"
+
+#: src/ps/help.c:132
+msgid ""
+"\n"
+"Output formats:\n"
+msgstr ""
+"\n"
+"Formats de sortie:\n"
+
+#: src/ps/help.c:133
+msgid " -D <format> date format for lstart\n"
+msgstr " -D <format> format de date pour lstart\n"
+
+#: src/ps/help.c:134
+msgid " -F extra full\n"
+msgstr " -F vraiment complet\n"
+
+#: src/ps/help.c:135
+msgid " -f full-format, including command lines\n"
+msgstr ""
+" -f format complet y compris les lignes de commande\n"
+
+#: src/ps/help.c:136
+msgid " f, --forest ascii art process tree\n"
+msgstr " f, --forest arbre des processus en art ascii\n"
+
+#: src/ps/help.c:137
+msgid " -H show process hierarchy\n"
+msgstr " -H montre la hiérarchie des processus\n"
+
+#: src/ps/help.c:138
+msgid " -j jobs format\n"
+msgstr " -j format de la tâche\n"
+
+#: src/ps/help.c:139
+msgid " j BSD job control format\n"
+msgstr " j format de contrôle de la tâche BSD\n"
+
+#: src/ps/help.c:140
+msgid " -l long format\n"
+msgstr " -l format long\n"
+
+#: src/ps/help.c:141
+msgid " l BSD long format\n"
+msgstr " l format long BSD\n"
+
+#: src/ps/help.c:142
+msgid " -M, Z add security data (for SELinux)\n"
+msgstr " -M, Z ajoute les données de sécurité (pour SELinux)\n"
+
+#: src/ps/help.c:143
+msgid " -O <format> preloaded with default columns\n"
+msgstr " -O <format> pré-remplir avec les colonnes par défaut\n"
+
+#: src/ps/help.c:144
+msgid " O <format> as -O, with BSD personality\n"
+msgstr " O <format> comme -O avec la personnalité BSD\n"
+
+#: src/ps/help.c:145
+msgid ""
+" -o, o, --format <format>\n"
+" user-defined format\n"
+msgstr ""
+" -o, o, --format <format>\n"
+" format défini par l'utilisateur\n"
+
+#: src/ps/help.c:147
+msgid " -P add psr column\n"
+msgstr " -P ajouter la colonne psr\n"
+
+#: src/ps/help.c:148
+msgid " s signal format\n"
+msgstr " s format de signal\n"
+
+#: src/ps/help.c:149
+msgid " u user-oriented format\n"
+msgstr " u format orienté utilisateur\n"
+
+#: src/ps/help.c:150
+msgid " v virtual memory format\n"
+msgstr " v format de mémoire virtuelle\n"
+
+#: src/ps/help.c:151
+msgid " X register format\n"
+msgstr " X format de registre\n"
+
+#: src/ps/help.c:152
+msgid ""
+" -y do not show flags, show rss vs. addr (used with -l)\n"
+msgstr ""
+" -y ne montre pas les fanions, montre rss/adr (utilisé "
+"avec -l)\n"
+
+#: src/ps/help.c:153
+msgid " --context display security context (for SELinux)\n"
+msgstr " --context affiche le contexte de sécurité (pour SELinux)\n"
+
+#: src/ps/help.c:154
+msgid " --headers repeat header lines, one per page\n"
+msgstr " --headers répète les lignes d'en-tête, une par page\n"
+
+#: src/ps/help.c:155
+msgid " --no-headers do not print header at all\n"
+msgstr " --no-headers ne pas afficher du tout d'en-tête\n"
+
+#: src/ps/help.c:156
+msgid ""
+" --cols, --columns, --width <num>\n"
+" set screen width\n"
+msgstr ""
+" --cols, --columns, --width <num>\n"
+" change la largeur de l'écran\n"
+
+#: src/ps/help.c:158
+msgid ""
+" --rows, --lines <num>\n"
+" set screen height\n"
+msgstr ""
+" --rows, --lines <num>\n"
+" change la hauteur de l'écran\n"
+
+#: src/ps/help.c:160
+msgid " --signames display signal masks using signal names\n"
+msgstr ""
+" --signames lister les masques des signaux en utilisant les noms "
+"des signaux\n"
+
+#: src/ps/help.c:163
+msgid ""
+"\n"
+"Show threads:\n"
+msgstr ""
+"\n"
+"Montre les threads:\n"
+
+#: src/ps/help.c:164
+msgid " H as if they were processes\n"
+msgstr " H comme si ils étaient des processus\n"
+
+#: src/ps/help.c:165
+msgid " -L possibly with LWP and NLWP columns\n"
+msgstr " -L éventuellement avec les colonnes LWP et NLWP\n"
+
+#: src/ps/help.c:166
+msgid " -m, m after processes\n"
+msgstr " -m, m après les processus\n"
+
+#: src/ps/help.c:167
+msgid " -T possibly with SPID column\n"
+msgstr " -T éventuellement avec la colonne SPID\n"
+
+#: src/ps/help.c:170
+msgid ""
+"\n"
+"Miscellaneous options:\n"
+msgstr ""
+"\n"
+"Options diverses:\n"
+
+#: src/ps/help.c:171
+msgid " -c show scheduling class with -l option\n"
+msgstr ""
+" -c montre la classe d'ordonnancement avec l'option -l\n"
+
+#: src/ps/help.c:172
+msgid " c show true command name\n"
+msgstr " c montre le vrai nom de commande\n"
+
+#: src/ps/help.c:173
+msgid " e show the environment after command\n"
+msgstr " e montre l'environnement après la commande\n"
+
+#: src/ps/help.c:174
+msgid ""
+" k, --sort specify sort order as: [+|-]key[,[+|-]key[,...]]\n"
+msgstr ""
+" k, --sort indique l'ordre de tri: [+|-]clé[,[+|-]clé[,…]]\n"
+
+#: src/ps/help.c:175
+msgid " L show format specifiers\n"
+msgstr " L montre le spécificateur de format\n"
+
+#: src/ps/help.c:176
+msgid " n display numeric uid and wchan\n"
+msgstr " n affiche les uid et wchan sous forme numérique\n"
+
+#: src/ps/help.c:177
+msgid " S, --cumulative include some dead child process data\n"
+msgstr ""
+" S, --cumulative inclus quelques données sur les processus enfants "
+"terminés\n"
+
+#: src/ps/help.c:178
+msgid " -y do not show flags, show rss (only with -l)\n"
+msgstr ""
+" -y ne montre pas les fanions, montre rss (uniquement avec "
+"-l)\n"
+
+#: src/ps/help.c:179
+msgid " -V, V, --version display version information and exit\n"
+msgstr " -V, V, --version affiche les informations de version et arrête\n"
+
+#: src/ps/help.c:180
+msgid " -w, w unlimited output width\n"
+msgstr " -w, w sortie sur largeur illimitée\n"
+
+#: src/ps/help.c:181
+#, c-format
+msgid ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" display help and exit\n"
+msgstr ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" affiche l'aide et arrête\n"
+
+#. Translation Notes for ps Help #2 ---------------------------------
+#. . Most of the following c-format string is derived from the 6
+#. . pairs of words + chars mentioned above in "Notes for ps Help #1".
+#. .
+#. . In its full English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . The word for "help" will be translated elsewhere. Thus, the only
+#. . translations below will be: "Try", "or" and "for additional...".
+#. .
+#: src/ps/help.c:202
+#, c-format
+msgid ""
+"\n"
+" Try '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" or '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" for additional help text.\n"
+msgstr ""
+"\n"
+" Essayez '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" ou '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" pour plus d'aide.\n"
+
+#: src/ps/help.c:215
+#, c-format
+msgid ""
+"\n"
+"For more details see ps(1).\n"
+msgstr ""
+"\n"
+"Pour plus de détails, consultez ps(1).\n"
+
+#: src/ps/output.c:104
+msgid "Unable to get system boot time"
+msgstr "Impossible d'obtenir l'heure de démarrage du système"
+
+#: src/ps/output.c:119
+msgid "Unable to get total memory"
+msgstr "Impossible d'obtenir la mémoire totale"
+
+#: src/ps/output.c:2206
+#, c-format
+msgid "fix bigness error\n"
+msgstr "corriger l'erreur d'ordre des octets\n"
+
+#: src/ps/output.c:2289
+#, c-format
+msgid "bad alignment code\n"
+msgstr "mauvais code d'alignement\n"
+
+#: src/ps/parser.c:63
+msgid "the option is exclusive: "
+msgstr "l'option est exclusive: "
+
+#: src/ps/parser.c:93
+msgid "process ID list syntax error"
+msgstr "erreur de syntaxe dans la liste des ID de processus"
+
+#: src/ps/parser.c:94 src/ps/parser.c:95
+msgid "process ID out of range"
+msgstr "ID de processus hors limites"
+
+#: src/ps/parser.c:108
+msgid "user name does not exist"
+msgstr "le nom d'utilisateur n'existe pas"
+
+#: src/ps/parser.c:114
+msgid "user ID out of range"
+msgstr "ID utilisateur hors limites"
+
+#: src/ps/parser.c:127
+msgid "group name does not exist"
+msgstr "le nom du groupe n'existe pas"
+
+#: src/ps/parser.c:133
+msgid "group ID out of range"
+msgstr "ID du groupe hors limites"
+
+#: src/ps/parser.c:149 src/ps/parser.c:173
+msgid "TTY could not be found"
+msgstr "le TTY n'a pu être trouvé"
+
+#: src/ps/parser.c:175
+msgid "list member was not a TTY"
+msgstr "l'élément de la liste n'était pas un TTY"
+
+#: src/ps/parser.c:200
+msgid "improper list"
+msgstr "liste incorrecte"
+
+#: src/ps/parser.c:249
+msgid "list of command names must follow -C"
+msgstr "la liste des noms de commandes doit suivre -C"
+
+#: src/ps/parser.c:257
+msgid "date format must follow -D"
+msgstr "un format de date doit suivre -D"
+
+#: src/ps/parser.c:270
+msgid "list of real groups must follow -G"
+msgstr "la liste des groupes réels doit suivre -G"
+
+#: src/ps/parser.c:283
+msgid "list of jobs must follow -J"
+msgstr "la liste des tâches doit suivre -J"
+
+#: src/ps/parser.c:311
+msgid "format or sort specification must follow -O"
+msgstr "la spécification de format ou de tri doit suivre -O"
+
+#: src/ps/parser.c:322
+msgid "list of PRM groups must follow -R"
+msgstr "la liste des groupes PRM doit suivre -R"
+
+#: src/ps/parser.c:341
+msgid "list of real users must follow -U"
+msgstr "la liste des utilisateurs réels doit suivre -U"
+
+#: src/ps/parser.c:382
+msgid "list of session leaders OR effective group names must follow -g"
+msgstr ""
+"la liste des têtes de sessions OU des noms de groupes effectifs doit suivre -"
+"g"
+
+#: src/ps/parser.c:393
+msgid "list of session leaders OR effective group IDs was invalid"
+msgstr ""
+"la liste des têtes de sessions OU des ID de groupes effectifs était invalide"
+
+#: src/ps/parser.c:417
+msgid "format specification must follow -o"
+msgstr "le spécificateur de format doit suivre -o"
+
+#: src/ps/parser.c:423
+msgid "list of process IDs must follow -p"
+msgstr "la liste des ID des processus doit suivre -p"
+
+#: src/ps/parser.c:440
+msgid "the -r option is reserved"
+msgstr "l'option -r est réservée"
+
+#: src/ps/parser.c:446
+msgid "list of session IDs must follow -s"
+msgstr "la liste des ID de sessions doit suivre -s"
+
+#: src/ps/parser.c:454
+msgid "list of terminals (pty, tty...) must follow -t"
+msgstr "la liste des terminaux (pty, tty…) doit suivre -t"
+
+#: src/ps/parser.c:462
+msgid "list of users must follow -u"
+msgstr "la liste des utilisateurs doit suivre -u"
+
+#: src/ps/parser.c:484
+msgid "must set personality to get -x option"
+msgstr "la personnalité doit être définie pour avoir l'option -x"
+
+#: src/ps/parser.c:499
+msgid "list of zones (contexts, labels, whatever?) must follow -z"
+msgstr ""
+"la liste des zones (contextes, étiquettes, quoi d'autre ?) doit suivre -z"
+
+#: src/ps/parser.c:506
+msgid "embedded '-' among SysV options makes no sense"
+msgstr "un « - » incrusté dans les options SysV n'a pas de sens"
+
+#: src/ps/parser.c:512
+msgid "unsupported SysV option"
+msgstr "option SysV non supportée"
+
+#: src/ps/parser.c:525
+msgid "cannot happen - problem #1"
+msgstr "ne peut se produire – problème #1"
+
+#: src/ps/parser.c:529
+msgid "cannot happen - problem #2"
+msgstr "ne peut se produire – problème #2"
+
+#: src/ps/parser.c:531
+msgid "second chance parse failed, not BSD or SysV"
+msgstr "l'analyse de la seconde chance a échoué: pas BSD ni SysV"
+
+#: src/ps/parser.c:548
+msgid "option A is reserved"
+msgstr "l'option A est réservée"
+
+#: src/ps/parser.c:553
+msgid "option C is reserved"
+msgstr "l'option C est réservée"
+
+#: src/ps/parser.c:573
+msgid "format or sort specification must follow O"
+msgstr "la spécification de format ou de tri doit suivre O"
+
+#: src/ps/parser.c:598
+msgid "list of users must follow U"
+msgstr "la liste des utilisateurs doit suivre U"
+
+#: src/ps/parser.c:610
+msgid "obsolete W option not supported (you have a /dev/drum?)"
+msgstr "l'option obsolète W n'est pas supportée (avez-vous un /dev/drum ?)"
+
+#: src/ps/parser.c:646 src/ps/parser.c:921 src/ps/parser.c:930
+msgid "only one heading option may be specified"
+msgstr "une seule option d'en-tête peut être spécifiée"
+
+#: src/ps/parser.c:661
+msgid "long sort specification must follow 'k'"
+msgstr "la spécification de tri long doit suivre « k »"
+
+#: src/ps/parser.c:689
+msgid "format specification must follow o"
+msgstr "la spécification de format doit suivre o"
+
+#: src/ps/parser.c:695
+msgid "list of process IDs must follow p"
+msgstr "la liste des ID de processus doit suivre p"
+
+#: src/ps/parser.c:753
+msgid "embedded '-' among BSD options makes no sense"
+msgstr "un « - » incrusté dans les options BSD n'a pas de sens"
+
+#: src/ps/parser.c:759
+msgid "unsupported option (BSD syntax)"
+msgstr "option non supportée (syntaxe BSD)"
+
+#: src/ps/parser.c:847 src/ps/parser.c:859
+msgid "unknown gnu long option"
+msgstr "option longue gnu inconnue"
+
+#: src/ps/parser.c:867
+msgid "list of real groups must follow --Group"
+msgstr "la liste des groupes réels doit suivre --Group"
+
+#: src/ps/parser.c:875
+msgid "list of real users must follow --User"
+msgstr "la liste des utilisateurs réels doit suivre --User"
+
+#: src/ps/parser.c:894
+msgid "number of columns must follow --cols, --width, or --columns"
+msgstr "le nombre de colonnes doit suivre --cols, --width ou --columns"
+
+#: src/ps/parser.c:897
+msgid "option --cumulative does not take an argument"
+msgstr "l'option --cumulative ne prend pas d'argument"
+
+#: src/ps/parser.c:902
+msgid "date format must follow --date-format"
+msgstr "un format de date doit suivre --date-format"
+
+#: src/ps/parser.c:908
+msgid "option --deselect does not take an argument"
+msgstr "l'option --deselect ne prend pas d'argument"
+
+#: src/ps/parser.c:920
+msgid "option --no-heading does not take an argument"
+msgstr "l'option --no-heading ne prend pas d'argument"
+
+#: src/ps/parser.c:929
+msgid "option --heading does not take an argument"
+msgstr "l'option --heading ne prend pas d'argument"
+
+#: src/ps/parser.c:935
+msgid "option --forest does not take an argument"
+msgstr "l'option --forest ne prend pas d'argument"
+
+#: src/ps/parser.c:941
+msgid "format specification must follow --format"
+msgstr "la spécification de format doit suivre --format"
+
+#: src/ps/parser.c:947
+msgid "list of effective groups must follow --group"
+msgstr "la liste des groupes effectifs doit suivre --group"
+
+#: src/ps/parser.c:965
+msgid "list of process IDs must follow --pid"
+msgstr "la liste des ID de processus doit suivre --pid"
+
+#: src/ps/parser.c:981
+msgid "list of process IDs must follow --ppid"
+msgstr "la liste des ID de processus doit suivre --ppid"
+
+#: src/ps/parser.c:999
+msgid "number of rows must follow --rows or --lines"
+msgstr "le nombre de lignes doit suivre --rows ou --lines"
+
+#: src/ps/parser.c:1003
+msgid "some sid thing(s) must follow --sid"
+msgstr "quelques choses sid doivent suivre --sid"
+
+#: src/ps/parser.c:1015
+msgid "long sort specification must follow --sort"
+msgstr "la spécification de tri longue doit suivre --sort"
+
+#: src/ps/parser.c:1021
+msgid "list of ttys must follow --tty"
+msgstr "la liste des tty doit suivre --tty"
+
+#: src/ps/parser.c:1029
+msgid "list of effective users must follow --user"
+msgstr "la liste des utilisateurs effectifs doit suivre --user"
+
+#: src/ps/parser.c:1145
+msgid "way bad"
+msgstr "très mauvais"
+
+#: src/ps/parser.c:1159
+msgid "garbage option"
+msgstr "option crasse"
+
+#: src/ps/parser.c:1163
+msgid "something broke"
+msgstr "quelque chose de cassé"
+
+#: src/ps/parser.c:1183
+msgid "thread display conflicts with forest display"
+msgstr "l'affichage par threads est en conflit avec l'affichage de type forêt"
+
+#: src/ps/parser.c:1188
+msgid "thread flags conflict; can't use H with m or -m"
+msgstr ""
+"conflit dans les fanions de threads: H ne peut être utilisé avec m ou -m"
+
+#: src/ps/parser.c:1190
+msgid "thread flags conflict; can't use both m and -m"
+msgstr ""
+"conflit dans les fanions de threads: m et -m ne peuvent être utilisés "
+"ensemble"
+
+#: src/ps/parser.c:1192
+msgid "thread flags conflict; can't use both -L and -T"
+msgstr ""
+"conflit dans les fanions de threads: -L et -T ne peuvent être utilisés "
+"ensemble"
+
+#: src/ps/parser.c:1265 src/ps/parser.c:1266
+#, c-format
+msgid "error: %s\n"
+msgstr "erreur: %s\n"
+
+#: src/ps/select.c:71
+msgid "process selection options conflict"
+msgstr "conflit dans les options de sélection des processus"
+
+#: src/ps/sortformat.c:110 src/ps/sortformat.c:115
+msgid "seriously crashing: goodbye cruel world"
+msgstr "plantage sérieux: adieu monde cruel"
+
+#: src/ps/sortformat.c:150 src/ps/sortformat.c:169
+msgid "missing AIX field descriptor"
+msgstr "descripteur de champ AIX manquant"
+
+#: src/ps/sortformat.c:152
+msgid "improper AIX field descriptor"
+msgstr "descripteur de champ AIX incorrect"
+
+#: src/ps/sortformat.c:174
+msgid "unknown AIX field descriptor"
+msgstr "descripteur de champ AIX inconnu"
+
+#: src/ps/sortformat.c:179
+msgid "AIX field descriptor processing bug"
+msgstr "bug dans le traitement du descripteur de champ AIX"
+
+#: src/ps/sortformat.c:287
+#, c-format
+msgid "unknown user-defined format specifier \"%s\""
+msgstr "spécificateur de format défini par l'utilisateur « %s » inconnu"
+
+#: src/ps/sortformat.c:314
+msgid "empty format list"
+msgstr "liste de format vide"
+
+#: src/ps/sortformat.c:315
+msgid "improper format list"
+msgstr "liste de format incorrecte"
+
+#: src/ps/sortformat.c:316
+msgid "column widths must be unsigned decimal numbers"
+msgstr "les largeurs de colonnes doivent être des nombres décimaux non signés"
+
+#: src/ps/sortformat.c:317
+msgid "can not set width for a macro (multi-column) format specifier"
+msgstr ""
+"la largeur ne peut pas être définie pour une macro (multi colonne) de "
+"spécificateur de format"
+
+#: src/ps/sortformat.c:371 src/ps/sortformat.c:387
+msgid "improper sort list"
+msgstr "liste de tri incorrecte"
+
+#: src/ps/sortformat.c:382
+msgid "empty sort list"
+msgstr "liste de tri vide"
+
+#: src/ps/sortformat.c:403 src/ps/sortformat.c:482 src/ps/sortformat.c:484
+msgid "unknown sort specifier"
+msgstr "spécificateur de tri inconnu"
+
+#: src/ps/sortformat.c:430 src/ps/sortformat.c:435 src/ps/sortformat.c:442
+#: src/ps/sortformat.c:448
+msgid "bad sorting code"
+msgstr "mauvais code de tri"
+
+#: src/ps/sortformat.c:445
+msgid "PPID sort and forest output conflict"
+msgstr "conflit entre le tri de PPID et l'affichage de type forêt"
+
+#: src/ps/sortformat.c:519
+msgid "option -O can not follow other format options"
+msgstr "l'option -O ne peut pas suivre d'autres options de format"
+
+#: src/ps/sortformat.c:526 src/ps/sortformat.c:544
+msgid "multiple sort options"
+msgstr "options de tri multiples"
+
+#: src/ps/sortformat.c:534
+msgid "option O is neither first format nor sort order"
+msgstr "l'option O n'est ni le premier format ni un ordre de tri"
+
+#: src/ps/sortformat.c:661
+msgid "modifier -y without format -l makes no sense"
+msgstr "le modificateur -y sans le format -l n'a pas de sens"
+
+#: src/ps/sortformat.c:760
+msgid "bug: must reset the list first"
+msgstr "bug: la liste doit être réinitialisée d'abord"
+
+#: src/ps/sortformat.c:797
+msgid "tell <procps@freelists.org> what you expected"
+msgstr "dites à <procps@freelists.org> ce que vous attendiez"
+
+#: src/ps/sortformat.c:807
+msgid ""
+"tell <procps@freelists.org> what you want (-L/-T, -m/m/H, and $PS_FORMAT)"
+msgstr ""
+"dites à <procps@freelists.org> ce que vous voulez (-L/-T, -m/m/H et "
+"$PS_FORMAT)"
+
+#: src/ps/sortformat.c:824
+#, c-format
+msgid "warning: $PS_FORMAT ignored. (%s)\n"
+msgstr "attention: $PS_FORMAT est ignoré. (%s)\n"
+
+#: src/ps/sortformat.c:829 src/ps/sortformat.c:839
+msgid "conflicting format options"
+msgstr "options de format en conflit"
+
+#: src/ps/sortformat.c:830
+msgid "can not use output modifiers with user-defined output"
+msgstr ""
+"un modificateur de sortie ne peut pas être utilisé avec une sortie définie "
+"par l'utilisateur"
+
+#: src/ps/sortformat.c:831
+msgid "-L/-T with H/m/-m and -o/-O/o/O is nonsense"
+msgstr "-L/-T avec H/m/-m et -o/-O/o/O n'a pas de sens"
+
+#: src/ps/sortformat.c:889
+msgid "internal error: no PID or PPID for -j option"
+msgstr "erreur interne: pas de PID ou de PPID pour l'option -j"
+
+#: src/ps/sortformat.c:891
+msgid "lost my PGID"
+msgstr "j'ai perdu mon PGID"
+
+#: src/ps/sortformat.c:904
+msgid "internal error: no PRI for -c option"
+msgstr "erreur interne: pas de PRI pour l'option -c"
+
+#: src/ps/sortformat.c:907
+msgid "lost my CLS"
+msgstr "j'ai perdu mon CLS"
+
+#: src/ps/sortformat.c:912
+msgid "-T with H/-m/m but no PID for SPID to follow"
+msgstr "-T avec H/-m/m mais aucun PID à suivre pour SPID"
+
+#: src/ps/sortformat.c:923
+msgid "-L with H/-m/m but no PID/PGID/SID/SESS for NLWP to follow"
+msgstr "-L comme H/-m/m mais sans PID/PGID/SID/SESS à suivre pour NLWP"
+
+#: src/pwdx.c:41
+#, c-format
+msgid " %s [options] pid...\n"
+msgstr " %s [options] pid…\n"
+
+#: src/pwdx.c:117
+#, c-format
+msgid "invalid process id: %s"
+msgstr "ID de processus invalide: %s"
+
+#: src/skill.c:285
+msgid "Unable to create pid Pids_info structure"
+msgstr "Impossible de créer la structure Pids_info du pid"
+
+#: src/skill.c:288 src/w.c:458
+msgid "Unable to load process information"
+msgstr "Impossible de charger les informations du processus"
+
+#: src/skill.c:319
+#, c-format
+msgid " %s [signal] [options] <expression>\n"
+msgstr " %s [signal] [options] <expression>\n"
+
+#: src/skill.c:323
+#, c-format
+msgid " %s [new priority] [options] <expression>\n"
+msgstr " %s [nouvelle priorité] [options] <expression>\n"
+
+#: src/skill.c:327
+msgid " -f, --fast fast mode (not implemented)\n"
+msgstr " -f, --fast mode rapide (pas encore disponible)\n"
+
+#: src/skill.c:328
+msgid " -i, --interactive interactive\n"
+msgstr " -i, --interactive interactif\n"
+
+#: src/skill.c:329
+msgid " -l, --list list all signal names\n"
+msgstr " -l, --list liste tous les noms de signaux\n"
+
+#: src/skill.c:330
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr ""
+" -L, --table liste tous les noms de signaux dans une belle table\n"
+
+#: src/skill.c:331
+msgid ""
+" -n, --no-action do not actually kill processes; just print what would "
+"happen\n"
+msgstr ""
+" -n, --no-action ne tue pas réellement le processus. Affiche simplement "
+"ce qui va se passer\n"
+
+#: src/skill.c:332
+msgid " -v, --verbose explain what is being done\n"
+msgstr " -v, --verbose explique ce qui est en train de se produire\n"
+
+#: src/skill.c:333
+msgid " -w, --warnings enable warnings (not implemented)\n"
+msgstr " -w, --warnings active les avertissements (pas disponible)\n"
+
+#: src/skill.c:335
+msgid ""
+"Expression can be: terminal, user, pid, command.\n"
+"The options below may be used to ensure correct interpretation.\n"
+msgstr ""
+"L'expression peut être: terminal, user, pid, command.\n"
+"Les options ci-dessous peuvent être utilisées pour assurer une "
+"interprétation correcte.\n"
+
+#: src/skill.c:337
+msgid " -c, --command <command> expression is a command name\n"
+msgstr " -c, --command <commande> l'expression est un nom de commande\n"
+
+#: src/skill.c:338
+msgid " -p, --pid <pid> expression is a process id number\n"
+msgstr ""
+" -p, --pid <pid> l'expression est un numéro d'identification de "
+"processus\n"
+
+#: src/skill.c:339
+msgid " -t, --tty <tty> expression is a terminal\n"
+msgstr " -t, --tty <tty> l'expression est un terminal\n"
+
+#: src/skill.c:340
+msgid " -u, --user <username> expression is a username\n"
+msgstr " -u, --user <nom_utilisateur> l'expression est un nom d'utilisateur\n"
+
+#: src/skill.c:342
+msgid "Alternatively, expression can be:\n"
+msgstr "L'expression peut aussi être:\n"
+
+#: src/skill.c:343
+msgid ""
+" --ns <pid> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+" --ns <pid> fait correspondre les processus qui appartiennent\n"
+" au même espace de nom que <pid>\n"
+
+#: src/skill.c:345
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option; available namespaces are\n"
+": ipc, mnt, net, pid, user, uts\n"
+msgstr ""
+" --nslist <en,…> liste quels espaces de noms vont être pris en\n"
+" considération par l'option --ns. Les espaces de "
+"noms\n"
+" disponibles sont: ipc, mnt, net, pid, user, uts\n"
+
+#: src/skill.c:355
+#, c-format
+msgid ""
+"\n"
+"The default signal is TERM. Use -l or -L to list available signals.\n"
+"Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0.\n"
+"Alternate signals may be specified in three ways: -SIGKILL -KILL -9\n"
+msgstr ""
+"\n"
+"Le signal par défaut est TERM. Utilisez -l ou -L pour afficher les signaux\n"
+"disponibles. Les signaux particulièrement utiles comprennent HUP, INT, "
+"KILL,\n"
+"STOP, CONT et 0. Les signaux peuvent aussi être spécifiés de trois "
+"manières:\n"
+"-SIGKILL -KILL -9\n"
+
+#: src/skill.c:362
+#, c-format
+msgid ""
+"\n"
+"The default priority is +4. (snice +4 ...)\n"
+"Priority numbers range from +20 (slowest) to -20 (fastest).\n"
+"Negative priority numbers are restricted to administrative users.\n"
+msgstr ""
+"\n"
+"La priorité par défaut est +4. (snice +4 …)\n"
+"La priorité prend une valeur entre +20 (le plus bas) à -20 (le plus "
+"rapide).\n"
+"Les priorités négatives sont accessibles aux seuls administrateurs.\n"
+
+#: src/skill.c:384
+#, c-format
+msgid "priority %lu out of range"
+msgstr "priorité %lu hors limites"
+
+#: src/skill.c:493
+#, c-format
+msgid "invalid pid number %s"
+msgstr "numéro de pid %s invalide"
+
+#: src/skill.c:497
+msgid "error reading reference namespace information"
+msgstr ""
+"erreur lors de la lecture de l'information de l'espace de nom de référence"
+
+#: src/skill.c:505
+msgid "invalid namespace list"
+msgstr "liste d'espace de noms invalide"
+
+#: src/skill.c:542
+msgid "no process selection criteria"
+msgstr "aucun critère de sélection de processus"
+
+#: src/skill.c:545
+msgid "general flags may not be repeated"
+msgstr "les fanions généraux ne peuvent pas être répétés"
+
+#: src/skill.c:548
+msgid "-i makes no sense with -v, -f, and -n"
+msgstr "-i n'a pas de sens avec -v, -f et -n"
+
+#: src/skill.c:550
+msgid "-v makes no sense with -i and -f"
+msgstr "-v n'a pas de sens avec -i et -f"
+
+#: src/skill.c:594
+#, c-format
+msgid "skill: \"%s\" is not supported\n"
+msgstr "compétence: « %s » n'est pas supporté\n"
+
+#: src/slabtop.c:108
+msgid " -d, --delay <secs> delay updates\n"
+msgstr " -d, --delay <secs> délai des mises à jour\n"
+
+#: src/slabtop.c:109
+msgid " -o, --once only display once, then exit\n"
+msgstr " -o, --once n'affiche qu'une seule fois puis arrête\n"
+
+#: src/slabtop.c:110
+msgid " -s, --sort <char> specify sort criteria by character (see below)\n"
+msgstr ""
+" -s, --sort <car> spécifie le critère de tri par caractère (voir plus "
+"bas)\n"
+
+#: src/slabtop.c:115
+msgid ""
+"\n"
+"The following are valid sort criteria:\n"
+msgstr ""
+"\n"
+"Voici les critères de tri acceptés:\n"
+
+#: src/slabtop.c:116
+msgid " a: sort by number of active objects\n"
+msgstr " a: trie selon le nombre d'objets actifs\n"
+
+#: src/slabtop.c:117
+msgid " b: sort by objects per slab\n"
+msgstr " b: trie selon les objets dans le slab\n"
+
+#: src/slabtop.c:118
+msgid " c: sort by cache size\n"
+msgstr " c: trie selon la taille de la cache\n"
+
+#: src/slabtop.c:119
+msgid " l: sort by number of slabs\n"
+msgstr " l: trie selon le nombre de slabs\n"
+
+#: src/slabtop.c:120
+msgid " v: sort by (non display) number of active slabs\n"
+msgstr " v: trie selon le nombre de slabs actives (non affiché)\n"
+
+#: src/slabtop.c:121
+msgid " n: sort by name\n"
+msgstr " n: trie par nom\n"
+
+#: src/slabtop.c:122
+msgid " o: sort by number of objects (the default)\n"
+msgstr " o: tri selon le nombre d'objets (choix par défaut)\n"
+
+#: src/slabtop.c:123
+msgid " p: sort by (non display) pages per slab\n"
+msgstr " p: trie selon les pages par slab (non affiché)\n"
+
+#: src/slabtop.c:124
+msgid " s: sort by object size\n"
+msgstr " s: trie par taille d'objet\n"
+
+#: src/slabtop.c:125
+msgid " u: sort by cache utilization\n"
+msgstr " u: trie selon l'utilisation de la cache\n"
+
+#: src/slabtop.c:188 src/slabtop.c:199
+msgid "Cannot combine -d and -o options"
+msgstr "Les options -d et -o ne peuvent pas être combinées"
+
+#: src/slabtop.c:190
+msgid "illegal delay"
+msgstr "délai illégal"
+
+#: src/slabtop.c:192 src/tload.c:142 src/vmstat.c:1049
+msgid "delay must be positive integer"
+msgstr "le délai doit être un nombre entier positif"
+
+#: src/slabtop.c:236
+msgid "Error getting slab summary results"
+msgstr "Erreur lors de l'obtention des résultats du résumé slab"
+
+#. Translation Hint: Next five strings must not
+#. * exceed a length of 35 characters.
+#: src/slabtop.c:242
+#, no-c-format
+msgid "Active / Total Objects (% used)"
+msgstr "Actif / Total Objets (% utilisé)"
+
+#: src/slabtop.c:248
+#, no-c-format
+msgid "Active / Total Slabs (% used)"
+msgstr "Actif / Total Slabs (% utilisé)"
+
+#: src/slabtop.c:254
+#, no-c-format
+msgid "Active / Total Caches (% used)"
+msgstr "Actif / Total Caches (% utilisé)"
+
+#: src/slabtop.c:260
+#, no-c-format
+msgid "Active / Total Size (% used)"
+msgstr "Actif / Taille Totale (% utilisé)"
+
+#: src/slabtop.c:265
+msgid "Minimum / Average / Maximum Object"
+msgstr "Minimum / Moyenne / Maximum (Objet)"
+
+#. Translation Hint: Please keep alignment of the
+#. * following intact.
+#: src/slabtop.c:276
+msgid " OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME"
+msgstr " OBJS ACTIF UTIL OBJ DIM SLABS OBJ/SLAB CACHE DIM NOM"
+
+#: src/slabtop.c:313 src/vmstat.c:767
+msgid "Unable to create slabinfo structure"
+msgstr "Impossible de créer la structure slabinfo"
+
+#: src/slabtop.c:318
+msgid "terminal setting retrieval"
+msgstr "récupération des paramètres du terminal"
+
+#: src/slabtop.c:334 src/vmstat.c:774
+msgid "Unable to get slabinfo node data"
+msgstr "Impossible d'obtenir les données du nœud slabinfo"
+
+#: src/slabtop.c:340 src/vmstat.c:776
+msgid "Unable to sort slab nodes"
+msgstr "impossible de trier les nœuds slab"
+
+#: src/sysctl.c:118
+#, c-format
+msgid "Path is not under %s: %s"
+msgstr "Le chemin n'est pas sous %s : %s"
+
+#: src/sysctl.c:136
+#, c-format
+msgid "separators should not be repeated: %s"
+msgstr "les séparateurs ne devraient pas être répétés: %s"
+
+#: src/sysctl.c:232
+#, c-format
+msgid " %s [options] [variable[=value] ...]\n"
+msgstr " %s [options] [variable[=valeur] …]\n"
+
+#: src/sysctl.c:235
+msgid " -a, --all display all variables\n"
+msgstr " -a, --all affiche toutes les variables\n"
+
+#: src/sysctl.c:236
+msgid " -A alias of -a\n"
+msgstr " -A synonyme de -a\n"
+
+#: src/sysctl.c:237
+msgid " -X alias of -a\n"
+msgstr " -X synonyme de -a\n"
+
+#: src/sysctl.c:238
+msgid " --deprecated include deprecated parameters to listing\n"
+msgstr " --deprecated inclus les paramètres dépréciés dans la liste\n"
+
+#: src/sysctl.c:239
+msgid " --dry-run Print the key and values but do not write\n"
+msgstr ""
+" --dry-run Afficher les clés et les valeurs sans les écrire\n"
+
+#: src/sysctl.c:240
+msgid " -b, --binary print value without new line\n"
+msgstr " -b, --binary affiche la valeur sans retour à la ligne\n"
+
+#: src/sysctl.c:241
+msgid " -e, --ignore ignore unknown variables errors\n"
+msgstr " -e, --ignore ignore les erreurs des variables inconnues\n"
+
+#: src/sysctl.c:242
+msgid " -N, --names print variable names without values\n"
+msgstr ""
+" -N, --names affiche les noms des variables sans les valeurs\n"
+
+#: src/sysctl.c:243
+msgid " -n, --values print only values of the given variable(s)\n"
+msgstr ""
+" -n, --values affiche uniquement les valeurs de la variable donnée\n"
+
+#: src/sysctl.c:244
+msgid " -p, --load[=<file>] read values from file\n"
+msgstr ""
+" -p, --load[=<fichier>]\n"
+" lis les valeurs dans le fichier\n"
+
+#: src/sysctl.c:245
+msgid " -f alias of -p\n"
+msgstr " -f synonyme de -p\n"
+
+#: src/sysctl.c:246
+msgid " --system read values from all system directories\n"
+msgstr ""
+" --system lis les valeurs depuis tous les répertoires systèmes\n"
+
+#: src/sysctl.c:247
+msgid ""
+" -r, --pattern <expression>\n"
+" select setting that match expression\n"
+msgstr ""
+" -r, --pattern <expression>\n"
+" sélectionne les paramètres qui correspondent à "
+"l'expression\n"
+
+#: src/sysctl.c:249
+msgid " -q, --quiet do not echo variable set\n"
+msgstr " -q, --quiet ne répète pas la variable changée\n"
+
+#: src/sysctl.c:250
+msgid " -w, --write enable writing a value to variable\n"
+msgstr ""
+" -w, --write active l'écriture d'une valeur dans la variable\n"
+
+#: src/sysctl.c:251
+msgid " -o does nothing\n"
+msgstr " -o ne fait rien\n"
+
+#: src/sysctl.c:252
+msgid " -x does nothing\n"
+msgstr " -x ne fait rien\n"
+
+#: src/sysctl.c:253
+msgid " -d alias of -h\n"
+msgstr " -d synonyme de -h\n"
+
+#: src/sysctl.c:334 src/sysctl.c:390
+#, c-format
+msgid "\"%s\" is an unknown key"
+msgstr "« %s » est une clé inconnue"
+
+#: src/sysctl.c:352 src/sysctl.c:508 src/sysctl.c:545
+#, c-format
+msgid "cannot stat %s"
+msgstr "impossible d'obtenir les stat de %s"
+
+#: src/sysctl.c:395 src/sysctl.c:437
+#, c-format
+msgid "permission denied on key '%s'"
+msgstr "permission refusée sur la clé « %s »"
+
+#: src/sysctl.c:402 src/sysctl.c:454
+#, c-format
+msgid "reading key \"%s\""
+msgstr "lecture de la clé « %s »"
+
+#: src/sysctl.c:492
+#, c-format
+msgid "unable to open directory \"%s\""
+msgstr "impossible d'ouvrir le répertoire « %s »"
+
+#: src/sysctl.c:557
+msgid "strdup key"
+msgstr "clé strdup"
+
+#: src/sysctl.c:564 src/sysctl.c:571 src/sysctl.c:604
+#, c-format
+msgid "setting key \"%s\""
+msgstr "change la clé « %s »"
+
+#: src/sysctl.c:581
+#, c-format
+msgid "\"%s\" is an unknown key%s"
+msgstr "« %s » est une clé inconnue%s"
+
+#: src/sysctl.c:582 src/sysctl.c:591 src/sysctl.c:595
+msgid ", ignoring"
+msgstr " ignorée"
+
+#: src/sysctl.c:590
+#, c-format
+msgid "permission denied on key \"%s\"%s"
+msgstr "permission refusée sur la clé « %s »%s"
+
+#: src/sysctl.c:594
+#, c-format
+msgid "setting key \"%s\"%s"
+msgstr "change la clé « %s »%s"
+
+#: src/sysctl.c:669
+#, c-format
+msgid "%s(%d): invalid syntax, continuing..."
+msgstr "%s(%d): erreur de syntaxe, je continue…"
+
+#: src/sysctl.c:761
+#, c-format
+msgid ""
+"GLOB_TILDE is not supported on your platform, the tilde in \"%s\" won't be "
+"expanded."
+msgstr ""
+"GLOB_TILDE n'est pas supporté sur votre plate-forme. Le tilde dans « %s » ne "
+"sera pas remplacé."
+
+#: src/sysctl.c:767
+msgid "glob failed"
+msgstr "glob a échoué"
+
+#: src/sysctl.c:773
+#, c-format
+msgid "cannot open \"%s\""
+msgstr "impossible d'ouvrir « %s »"
+
+#: src/sysctl.c:877 src/sysctl.c:884
+#, c-format
+msgid "* Applying %s ...\n"
+msgstr "* Applique %s …\n"
+
+#: src/sysctl.c:1050
+#, c-format
+msgid ""
+"no variables specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+"pas de variable spécifiée\n"
+"Essayez « %s --help » pour plus d'informations."
+
+#: src/sysctl.c:1054
+#, c-format
+msgid ""
+"options -N and -q cannot coexist\n"
+"Try `%s --help' for more information."
+msgstr ""
+"les options -N et -q ne peuvent pas coexister\n"
+"Essayez « %s --help » pour plus d'informations."
+
+#: src/tload.c:75 src/tload.c:77
+msgid "screen too small or too large"
+msgstr "écran trop petit ou trop grand"
+
+#: src/tload.c:80
+msgid "screen too small"
+msgstr "écran trop petit"
+
+#: src/tload.c:96
+#, c-format
+msgid " %s [options] [tty]\n"
+msgstr " %s [options] [tty]\n"
+
+#: src/tload.c:98
+msgid " -d, --delay <secs> update delay in seconds\n"
+msgstr " -d, --delay <secs> délai de mise à jour en secondes\n"
+
+#: src/tload.c:99
+msgid " -s, --scale <num> vertical scale\n"
+msgstr " -s, --scale <num> échelle verticale\n"
+
+#: src/tload.c:137
+msgid "scale cannot be negative"
+msgstr "l'échelle ne peut pas être négative"
+
+#: src/tload.c:144 src/vmstat.c:1051
+msgid "too large delay value"
+msgstr "valeur de délai trop grande"
+
+#: src/tload.c:159
+msgid "can not open tty"
+msgstr "le tty ne peut être ouvert"
+
+#: src/tload.c:182
+msgid "Load average file /proc/loadavg does not exist"
+msgstr "Le fichier de charge moyenne /proc/loadavg n'existe pas"
+
+#: src/tload.c:185
+msgid "Unable to get load average"
+msgstr "Impossible d'obtenir la charge moyenne"
+
+#: src/tload.c:227 src/tload.c:229
+msgid "writing to tty failed"
+msgstr "l'écriture dans le tty a échoué"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The following line pairs contain only plain text and consist of:
+#. . 1) a field name/column header - mostly upper case
+#. . 2) the related description - both upper and lower case
+#. .
+#. . To avoid truncation on the main top display, each column header
+#. . is noted with its maximum size, while a few are 'variable' width.
+#. . Names for the latter should probably be 10 or fewer characters.
+#. .
+#. . Those fields shown with a '+' are also eligible for user resizing
+#. . using the 'X' command. That means the default width might produce
+#. . truncation but need not if widened (see the man page 'X' command).
+#. .
+#. . All headers are subject to a maximum of 8 on the Fields Management
+#. . screen where truncation is entirely acceptable.
+#. .
+#. . The associated descriptions are always limited to 20 characters,
+#. . and are used only on the Fields Management screen.
+#. .
+#. . In all cases, fewer characters are just fine.
+#. .
+#. Translation Hint: maximum 'PID' = 5
+#: src/top/top_nls.c:152
+msgid "PID"
+msgstr "PID"
+
+#: src/top/top_nls.c:153
+msgid "Process Id"
+msgstr "ID processus"
+
+#. Translation Hint: maximum 'PPID' = 5
+#: src/top/top_nls.c:155
+msgid "PPID"
+msgstr "PPID"
+
+#: src/top/top_nls.c:156
+msgid "Parent Process pid"
+msgstr "ID processus parent"
+
+#. Translation Hint: maximum 'UID' = 5 +
+#: src/top/top_nls.c:158
+msgid "UID"
+msgstr "UID"
+
+#: src/top/top_nls.c:159
+msgid "Effective User Id"
+msgstr "ID util. effectif"
+
+#. Translation Hint: maximum 'USER' = 8 +
+#: src/top/top_nls.c:161 src/w.c:799
+msgid "USER"
+msgstr "UTIL."
+
+#: src/top/top_nls.c:162
+msgid "Effective User Name"
+msgstr "Nom util. effectif"
+
+#. Translation Hint: maximum 'RUID' = 5 +
+#: src/top/top_nls.c:164
+msgid "RUID"
+msgstr "RUID"
+
+#: src/top/top_nls.c:165
+msgid "Real User Id"
+msgstr "ID util. réel"
+
+#. Translation Hint: maximum 'RUSER' = 8 +
+#: src/top/top_nls.c:167
+msgid "RUSER"
+msgstr "RUSER"
+
+#: src/top/top_nls.c:168
+msgid "Real User Name"
+msgstr "Nom util. réel"
+
+#. Translation Hint: maximum 'SUID' = 5 +
+#: src/top/top_nls.c:170
+msgid "SUID"
+msgstr "SUID"
+
+#: src/top/top_nls.c:171
+msgid "Saved User Id"
+msgstr "ID util. sauvé"
+
+#. Translation Hint: maximum 'SUSER' = 8 +
+#: src/top/top_nls.c:173
+msgid "SUSER"
+msgstr "SUSER"
+
+#: src/top/top_nls.c:174
+msgid "Saved User Name"
+msgstr "Nom util. sauvé"
+
+#. Translation Hint: maximum 'GID' = 5 +
+#: src/top/top_nls.c:176
+msgid "GID"
+msgstr "GID"
+
+#: src/top/top_nls.c:177
+msgid "Group Id"
+msgstr "ID groupe"
+
+#. Translation Hint: maximum 'GROUP' = 8 +
+#: src/top/top_nls.c:179
+msgid "GROUP"
+msgstr "GROUPE"
+
+#: src/top/top_nls.c:180
+msgid "Group Name"
+msgstr "Nom groupe"
+
+#. Translation Hint: maximum 'PGRP' = 5
+#: src/top/top_nls.c:182
+msgid "PGRP"
+msgstr "PGRP"
+
+#: src/top/top_nls.c:183
+msgid "Process Group Id"
+msgstr "ID groupe proc."
+
+#. Translation Hint: maximum 'TTY' = 8 +
+#: src/top/top_nls.c:185
+msgid "TTY"
+msgstr "TTY"
+
+#: src/top/top_nls.c:186
+msgid "Controlling Tty"
+msgstr "TTY contrôlant"
+
+#. Translation Hint: maximum 'TPGID' = 5
+#: src/top/top_nls.c:188
+msgid "TPGID"
+msgstr "TPGID"
+
+#: src/top/top_nls.c:189
+msgid "Tty Process Grp Id"
+msgstr "ID grp tty proc."
+
+#. Translation Hint: maximum 'SID' = 5
+#: src/top/top_nls.c:191
+msgid "SID"
+msgstr "SID"
+
+#: src/top/top_nls.c:192
+msgid "Session Id"
+msgstr "ID session"
+
+#. Translation Hint: maximum 'PR' = 3
+#: src/top/top_nls.c:194
+msgid "PR"
+msgstr "PR"
+
+#: src/top/top_nls.c:195
+msgid "Priority"
+msgstr "Priorité"
+
+#. Translation Hint: maximum 'NI' = 3
+#: src/top/top_nls.c:197
+msgid "NI"
+msgstr "NI"
+
+#: src/top/top_nls.c:198
+msgid "Nice Value"
+msgstr "Politesse"
+
+#. Translation Hint: maximum 'nTH' = 3
+#: src/top/top_nls.c:200
+msgid "nTH"
+msgstr "nTH"
+
+#: src/top/top_nls.c:201
+msgid "Number of Threads"
+msgstr "Nombre de threads"
+
+#. Translation Hint: maximum 'P' = 1
+#: src/top/top_nls.c:203
+msgid "P"
+msgstr "P"
+
+#: src/top/top_nls.c:204
+msgid "Last Used Cpu (SMP)"
+msgstr "Dernier CPU utilisé"
+
+#. Translation Hint: maximum '%CPU' = 4
+#: src/top/top_nls.c:206
+#, c-format
+msgid "%CPU"
+msgstr "%CPU"
+
+#: src/top/top_nls.c:207
+msgid "CPU Usage"
+msgstr "Util. CPU"
+
+#. Translation Hint: maximum '' = 6
+#: src/top/top_nls.c:209
+msgid "TIME"
+msgstr "TEMPS"
+
+#: src/top/top_nls.c:210
+msgid "CPU Time"
+msgstr "Temps CPU"
+
+#. Translation Hint: maximum 'TIME+' = 9
+#: src/top/top_nls.c:212
+msgid "TIME+"
+msgstr "TEMPS+"
+
+#: src/top/top_nls.c:213
+msgid "CPU Time, hundredths"
+msgstr "Temps CPU (centièmes)"
+
+#. Translation Hint: maximum '%MEM' = 4
+#: src/top/top_nls.c:215
+msgid "%MEM"
+msgstr "%MEM"
+
+#: src/top/top_nls.c:216
+msgid "Memory Usage (RES)"
+msgstr "Util. mémoire (RES)"
+
+#. Translation Hint: maximum 'VIRT' = 7
+#: src/top/top_nls.c:218
+msgid "VIRT"
+msgstr "VIRT"
+
+#: src/top/top_nls.c:219
+msgid "Virtual Image (KiB)"
+msgstr "Image virtuelle (Kio)"
+
+#. Translation Hint: maximum 'SWAP' = 6
+#: src/top/top_nls.c:221
+msgid "SWAP"
+msgstr "ÉCH."
+
+#: src/top/top_nls.c:222
+msgid "Swapped Size (KiB)"
+msgstr "Taille écrite dans le swap (Kio)"
+
+#. Translation Hint: maximum 'RES' = 6
+#: src/top/top_nls.c:224
+msgid "RES"
+msgstr "RES"
+
+#: src/top/top_nls.c:225
+msgid "Resident Size (KiB)"
+msgstr "Taille résid. (Kio)"
+
+#. Translation Hint: maximum 'CODE' = 4
+#: src/top/top_nls.c:227
+msgid "CODE"
+msgstr "CODE"
+
+#: src/top/top_nls.c:228
+msgid "Code Size (KiB)"
+msgstr "Taille code (Kio)"
+
+#. Translation Hint: maximum 'DATA' = 7
+#: src/top/top_nls.c:230
+msgid "DATA"
+msgstr "DATA"
+
+#: src/top/top_nls.c:231
+msgid "Data+Stack (KiB)"
+msgstr "Data+pile (Kio)"
+
+#. Translation Hint: maximum 'SHR' = 6
+#: src/top/top_nls.c:233
+msgid "SHR"
+msgstr "SHR"
+
+#: src/top/top_nls.c:234
+msgid "Shared Memory (KiB)"
+msgstr "Mem partagée (Kio)"
+
+#. Translation Hint: maximum 'nMaj' = 4
+#: src/top/top_nls.c:236
+msgid "nMaj"
+msgstr "nMaj"
+
+#: src/top/top_nls.c:237
+msgid "Major Page Faults"
+msgstr "Fautes page majeurs"
+
+#. Translation Hint: maximum 'nMin' = 4
+#: src/top/top_nls.c:239
+msgid "nMin"
+msgstr "nMin"
+
+#: src/top/top_nls.c:240
+msgid "Minor Page Faults"
+msgstr "Fautes page mineurs"
+
+#. Translation Hint: maximum 'nDRT' = 4
+#: src/top/top_nls.c:242
+msgid "nDRT"
+msgstr "nDRT"
+
+#: src/top/top_nls.c:243
+msgid "Dirty Pages Count"
+msgstr "Pages modifiées"
+
+#. Translation Hint: maximum 'S' = 1
+#: src/top/top_nls.c:245
+msgid "S"
+msgstr "S"
+
+#: src/top/top_nls.c:246
+msgid "Process Status"
+msgstr "Statut processus"
+
+#. Translation Hint: maximum 'COMMAND' = variable
+#: src/top/top_nls.c:248
+msgid "COMMAND"
+msgstr "COM."
+
+#: src/top/top_nls.c:249
+msgid "Command Name/Line"
+msgstr "Nom/ligne commande"
+
+#. Translation Hint: maximum 'WCHAN' = 10 +
+#: src/top/top_nls.c:251
+msgid "WCHAN"
+msgstr "WCHAN"
+
+#: src/top/top_nls.c:252
+msgid "Sleeping in Function"
+msgstr "Dors dans fonction"
+
+#. Translation Hint: maximum 'Flags' = 8
+#: src/top/top_nls.c:254
+msgid "Flags"
+msgstr "Fanions"
+
+#: src/top/top_nls.c:255
+msgid "Task Flags <sched.h>"
+msgstr "Fanions tâche <sched.h>"
+
+#. Translation Hint: maximum 'CGROUPS' = variable
+#: src/top/top_nls.c:257
+msgid "CGROUPS"
+msgstr "CGROUPS"
+
+#: src/top/top_nls.c:258
+msgid "Control Groups"
+msgstr "Groups contrôle"
+
+#. Translation Hint: maximum 'SUPGIDS' = variable
+#: src/top/top_nls.c:260
+msgid "SUPGIDS"
+msgstr "SUPGIDS"
+
+#: src/top/top_nls.c:261
+msgid "Supp Groups IDs"
+msgstr "ID groups sup"
+
+#. Translation Hint: maximum 'SUPGRPS' = variable
+#: src/top/top_nls.c:263
+msgid "SUPGRPS"
+msgstr "SUPGRPS"
+
+#: src/top/top_nls.c:264
+msgid "Supp Groups Names"
+msgstr "Noms groups sup"
+
+#. Translation Hint: maximum 'TGID' = 5
+#: src/top/top_nls.c:266
+msgid "TGID"
+msgstr "TGID"
+
+#: src/top/top_nls.c:267
+msgid "Thread Group Id"
+msgstr "ID group thread"
+
+#. Translation Hint: maximum 'OOMa' = 5
+#: src/top/top_nls.c:269
+msgid "OOMa"
+msgstr "OOMa"
+
+#: src/top/top_nls.c:270
+msgid "OOMEM Adjustment"
+msgstr "Ajustement OOMEM"
+
+#. Translation Hint: maximum 'OOMs' = 4
+#: src/top/top_nls.c:272
+msgid "OOMs"
+msgstr "OOMs"
+
+#: src/top/top_nls.c:273
+msgid "OOMEM Score current"
+msgstr "Score OOMEM actuel"
+
+#. Translation Hint: maximum 'ENVIRON' = variable
+#: src/top/top_nls.c:275
+msgid "ENVIRON"
+msgstr "ENVIRON"
+
+#. Translation Hint: the abbreviation 'vars' below is shorthand for
+#. 'variables'
+#: src/top/top_nls.c:278
+msgid "Environment vars"
+msgstr "Var. d'environnement"
+
+#. Translation Hint: maximum 'vMj' = 3
+#: src/top/top_nls.c:280
+msgid "vMj"
+msgstr "vMj"
+
+#: src/top/top_nls.c:281
+msgid "Major Faults delta"
+msgstr "Delta fautes maj"
+
+#. Translation Hint: maximum 'vMn' = 3
+#: src/top/top_nls.c:283
+msgid "vMn"
+msgstr "vMn"
+
+#: src/top/top_nls.c:284
+msgid "Minor Faults delta"
+msgstr "Delta fautes min"
+
+#. Translation Hint: maximum 'USED' = 6
+#: src/top/top_nls.c:286
+msgid "USED"
+msgstr "UTIL"
+
+#: src/top/top_nls.c:287
+msgid "Res+Swap Size (KiB)"
+msgstr "Taille res+éch (Kio)"
+
+#. Translation Hint: maximum 'nsIPC' = 10 +
+#: src/top/top_nls.c:289
+msgid "nsIPC"
+msgstr "nsIPC"
+
+#: src/top/top_nls.c:290
+msgid "IPC namespace Inode"
+msgstr "Inode esp nom IPC"
+
+#. Translation Hint: maximum 'nsMNT' = 10 +
+#: src/top/top_nls.c:292
+msgid "nsMNT"
+msgstr "nsMNT"
+
+#: src/top/top_nls.c:293
+msgid "MNT namespace Inode"
+msgstr "Inode esp nom MNT"
+
+#. Translation Hint: maximum 'nsNET' = 10 +
+#: src/top/top_nls.c:295
+msgid "nsNET"
+msgstr "nsNET"
+
+#: src/top/top_nls.c:296
+msgid "NET namespace Inode"
+msgstr "Inode esp nom NET"
+
+#. Translation Hint: maximum 'nsPID' = 10 +
+#: src/top/top_nls.c:298
+msgid "nsPID"
+msgstr "nsPID"
+
+#: src/top/top_nls.c:299
+msgid "PID namespace Inode"
+msgstr "Inode esp nom PID"
+
+#. Translation Hint: maximum 'nsUSER' = 10 +
+#: src/top/top_nls.c:301
+msgid "nsUSER"
+msgstr "nsUSER"
+
+#: src/top/top_nls.c:302
+msgid "USER namespace Inode"
+msgstr "Inode esp nom USER"
+
+#. Translation Hint: maximum 'nsUTS' = 10 +
+#: src/top/top_nls.c:304
+msgid "nsUTS"
+msgstr "nsUTS"
+
+#: src/top/top_nls.c:305
+msgid "UTS namespace Inode"
+msgstr "Inode esp nom UTS"
+
+#. Translation Hint: maximum 'LXC' = 8 +
+#: src/top/top_nls.c:307
+msgid "LXC"
+msgstr "LXC"
+
+#: src/top/top_nls.c:308
+msgid "LXC container name"
+msgstr "Nom container LXC"
+
+#. Translation Hint: maximum 'RSan' = 6
+#: src/top/top_nls.c:310
+msgid "RSan"
+msgstr "RSan"
+
+#: src/top/top_nls.c:311
+msgid "RES Anonymous (KiB)"
+msgstr "RES Anonymes (Kio)"
+
+#. Translation Hint: maximum 'RSfd' = 6
+#: src/top/top_nls.c:313
+msgid "RSfd"
+msgstr "RSfd"
+
+#: src/top/top_nls.c:314
+msgid "RES File-based (KiB)"
+msgstr "RES Basé fichier (Kib)"
+
+#. Translation Hint: maximum 'RSlk' = 6
+#: src/top/top_nls.c:316
+msgid "RSlk"
+msgstr "RSlk"
+
+#: src/top/top_nls.c:317
+msgid "RES Locked (KiB)"
+msgstr "RES verrouillé (Kio)"
+
+#. Translation Hint: maximum 'RSsh' = 6
+#: src/top/top_nls.c:319
+msgid "RSsh"
+msgstr "RSsh"
+
+#: src/top/top_nls.c:320
+msgid "RES Shared (KiB)"
+msgstr "RES partagée (Kio)"
+
+#. Translation Hint: maximum 'CGNAME' = variable
+#: src/top/top_nls.c:322
+msgid "CGNAME"
+msgstr "CGNAME"
+
+#: src/top/top_nls.c:323
+msgid "Control Group name"
+msgstr "Nom groupe contrôle"
+
+#. Translation Hint: maximum 'NU' = 2
+#: src/top/top_nls.c:325
+msgid "NU"
+msgstr "NU"
+
+#: src/top/top_nls.c:326
+msgid "Last Used NUMA node"
+msgstr "Dernier nœud NUMA utilisé"
+
+#. Translation Hint: maximum 'LOGID' = 5 +
+#: src/top/top_nls.c:328
+msgid "LOGID"
+msgstr "LOGID"
+
+#: src/top/top_nls.c:329
+msgid "Login User Id"
+msgstr "ID util. connecté"
+
+#. Translation Hint: maximum 'EXE' = variable
+#: src/top/top_nls.c:331
+msgid "EXE"
+msgstr "EXE"
+
+#: src/top/top_nls.c:332
+msgid "Executable Path"
+msgstr "Chemin de l'exécutable"
+
+#: src/top/top_nls.c:338
+msgid "Res Mem (smaps), KiB"
+msgstr "Res Mem (smaps), KiB"
+
+#. Translation Hint: maximum 'PSS' = 6
+#: src/top/top_nls.c:340
+msgid "PSS"
+msgstr "PSS"
+
+#: src/top/top_nls.c:341
+msgid "Proportion RSS, KiB"
+msgstr "Proportion RSS, KiB"
+
+#. Translation Hint: maximum 'PSan' = 6
+#: src/top/top_nls.c:343
+msgid "PSan"
+msgstr "PSan"
+
+#: src/top/top_nls.c:344
+msgid "Proportion Anon, KiB"
+msgstr "Proportion Anon, KiB"
+
+#. Translation Hint: maximum 'PSfd' = 6
+#: src/top/top_nls.c:346
+msgid "PSfd"
+msgstr "PSfd"
+
+#: src/top/top_nls.c:347
+msgid "Proportion File, KiB"
+msgstr "Proportion Fichier, KiB"
+
+#. Translation Hint: maximum 'PSsh' = 6
+#: src/top/top_nls.c:349
+msgid "PSsh"
+msgstr "PSsh"
+
+#: src/top/top_nls.c:350
+msgid "Proportion Shrd, KiB"
+msgstr "Proportion Shrd, KiB"
+
+#. Translation Hint: maximum 'USS' = 6
+#: src/top/top_nls.c:352
+msgid "USS"
+msgstr "USS"
+
+#: src/top/top_nls.c:353
+msgid "Unique RSS, KiB"
+msgstr "RSS unique, KiB"
+
+#. Translation Hint: maximum 'ioR' = 6
+#: src/top/top_nls.c:355
+msgid "ioR"
+msgstr "esL"
+
+#: src/top/top_nls.c:356
+msgid "I/O Bytes Read"
+msgstr "E/S Octets Lus"
+
+#. Translation Hint: maximum 'ioRop' = 5
+#: src/top/top_nls.c:358
+msgid "ioRop"
+msgstr "esOpL"
+
+#: src/top/top_nls.c:359
+msgid "I/O Read Operations"
+msgstr "E/S Opérations Lecture"
+
+#. Translation Hint: maximum 'ioW' = 6
+#: src/top/top_nls.c:361
+msgid "ioW"
+msgstr "esÉ"
+
+#: src/top/top_nls.c:362
+msgid "I/O Bytes Written"
+msgstr "E/S Octets Écrits"
+
+#. Translation Hint: maximum 'ioWop' = 5
+#: src/top/top_nls.c:364
+msgid "ioWop"
+msgstr "esOpé"
+
+#: src/top/top_nls.c:365
+msgid "I/O Write Operations"
+msgstr "E/S Opérations Écriture"
+
+#. Translation Hint: maximum 'AGID' = 5
+#: src/top/top_nls.c:367
+msgid "AGID"
+msgstr "IDAG"
+
+#: src/top/top_nls.c:368
+msgid "Autogroup Identifier"
+msgstr "Identificateur Autogroupe"
+
+#. Translation Hint: maximum 'AGNI' = 4
+#: src/top/top_nls.c:370
+msgid "AGNI"
+msgstr "AGNI"
+
+#: src/top/top_nls.c:371
+msgid "Autogroup Nice Value"
+msgstr "Politesse Autogroupe"
+
+#. Translation Hint: maximum 'STARTED' = 7
+#: src/top/top_nls.c:373
+msgid "STARTED"
+msgstr "DÉMAR"
+
+#: src/top/top_nls.c:374
+msgid "Start Time from boot"
+msgstr "Heure du démarrage"
+
+#. Translation Hint: maximum 'ELAPSED' = 7
+#: src/top/top_nls.c:376
+msgid "ELAPSED"
+msgstr "ÉCOULÉ"
+
+#: src/top/top_nls.c:377
+msgid "Elapsed Running Time"
+msgstr "Temps de fonctionnement écoulé"
+
+#. Translation Hint: maximum '%CUU' = 6
+#: src/top/top_nls.c:379
+#, c-format
+msgid "%CUU"
+msgstr "%CUU"
+
+#: src/top/top_nls.c:380
+msgid "CPU Utilization"
+msgstr "Utilisation CPU"
+
+#. Translation Hint: maximum '%CUC' = 7
+#: src/top/top_nls.c:382
+#, c-format
+msgid "%CUC"
+msgstr "%CUE"
+
+#: src/top/top_nls.c:383
+msgid "Utilization + child"
+msgstr "Utilisation + enfant"
+
+#. Translation Hint: maximum 'nsCGROUP' = 10 +
+#: src/top/top_nls.c:385
+msgid "nsCGROUP"
+msgstr "nsCGROUP"
+
+#: src/top/top_nls.c:386
+msgid "CGRP namespace Inode"
+msgstr "Inode esp nom CGRP"
+
+#. Translation Hint: maximum 'nsTIME' = 10 +
+#: src/top/top_nls.c:388
+msgid "nsTIME"
+msgstr "nsTEMPS"
+
+#: src/top/top_nls.c:389
+msgid "TIME namespace Inode"
+msgstr "Inode esp nom TEMPS"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . This group of lines contains both plain text and c-format strings.
+#. .
+#. . Some strings reflect switches used to affect the running program
+#. . and should not be translated without also making corresponding
+#. . c-code logic changes.
+#. .
+#: src/top/top_nls.c:409
+#, c-format
+msgid ""
+"\tsignal %d (%s) was caught by %s, please\n"
+"\tsend bug reports to <procps@freelists.org>\n"
+msgstr ""
+"\tle signal %d (%s) a été intercepté par %s, veuillez\n"
+"\tenvoyer les rapports de bogues à <procps@freelists.org>\n"
+
+#: src/top/top_nls.c:439
+#, c-format
+msgid "bad delay interval '%s'"
+msgstr "mauvais intervalle de délai « %s »"
+
+#: src/top/top_nls.c:440
+#, c-format
+msgid "bad iterations argument '%s'"
+msgstr "mauvais argument d'interactions « %s »"
+
+#: src/top/top_nls.c:441
+#, c-format
+msgid "pid limit (%d) exceeded"
+msgstr "limite de pid (%d) dépassée"
+
+#: src/top/top_nls.c:442
+#, c-format
+msgid "bad pid '%s'"
+msgstr "mauvais pid « %s »"
+
+#: src/top/top_nls.c:443
+#, c-format
+msgid "-%c argument missing"
+msgstr "argument -%c manquant"
+
+#: src/top/top_nls.c:444
+#, c-format
+msgid "bad width arg '%s'"
+msgstr "mauvais param de largeur « %s »"
+
+#: src/top/top_nls.c:445
+#, c-format
+msgid "unknown option '%s'"
+msgstr "option « %s » inconnue"
+
+#: src/top/top_nls.c:446
+msgid "-d disallowed in \"secure\" mode"
+msgstr "-d interdit en mode « sure »"
+
+#: src/top/top_nls.c:447
+msgid "-d requires positive argument"
+msgstr "-d requiert un paramètre positif"
+
+#: src/top/top_nls.c:448
+msgid "On"
+msgstr "On"
+
+#: src/top/top_nls.c:449
+msgid "Off"
+msgstr "Off"
+
+#: src/top/top_nls.c:450
+#, c-format
+msgid "%s from %s"
+msgstr "%s de %s"
+
+#: src/top/top_nls.c:451
+#, c-format
+msgid "Forest mode %s"
+msgstr "Mode forêt %s"
+
+#: src/top/top_nls.c:452
+msgid "failed tty get"
+msgstr "échec de get sur le tty"
+
+#: src/top/top_nls.c:453
+#, c-format
+msgid "failed tty set: %s"
+msgstr "échec de set sur le tty: %s"
+
+#: src/top/top_nls.c:454
+msgid "Choose field group (1 - 4)"
+msgstr "Choisissez le groupe du champ (1 à 4)"
+
+#: src/top/top_nls.c:455
+msgid "Command disabled, 'A' mode required"
+msgstr "Commande désactivée, mode « A » requis"
+
+#: src/top/top_nls.c:456
+#, c-format
+msgid "Command disabled, activate %s with '-' or '_'"
+msgstr "Commande désactivée, activez %s avec « - » ou « _ »"
+
+#: src/top/top_nls.c:457
+msgid "No colors to map!"
+msgstr "Pas de couleur dans la correspondance !"
+
+#: src/top/top_nls.c:458
+#, c-format
+msgid "Failed '%s' open: %s"
+msgstr "Échec à l'ouverture de « %s »: %s"
+
+#: src/top/top_nls.c:459
+#, c-format
+msgid "Wrote configuration to '%s'"
+msgstr "Configuration écrite dans  « %s »"
+
+#: src/top/top_nls.c:460
+#, c-format
+msgid "Change delay from %.1f to"
+msgstr "Change le délai de %.1f à"
+
+#: src/top/top_nls.c:461
+#, c-format
+msgid "Show threads %s"
+msgstr "Montre les threads %s"
+
+#: src/top/top_nls.c:462
+#, c-format
+msgid "Irix mode %s"
+msgstr "Mode Irix %s"
+
+#: src/top/top_nls.c:463
+#, c-format
+msgid "PID to signal/kill [default pid = %d]"
+msgstr "PID à signaler/tuer [pid par défaut = %d]"
+
+#: src/top/top_nls.c:464
+#, c-format
+msgid "Send pid %d signal [%d/sigterm]"
+msgstr "Envoyer au pid %d le signal [%d/sigterm]"
+
+#: src/top/top_nls.c:465
+#, c-format
+msgid "Failed signal pid '%d' with '%d': %s"
+msgstr "Échec à l'envoi du signal « %2$d » au pid « %1$d »: %3$s"
+
+#: src/top/top_nls.c:466
+msgid "Invalid signal"
+msgstr "Signal invalide"
+
+#: src/top/top_nls.c:467
+#, c-format
+msgid "PID to renice [default pid = %d]"
+msgstr "PID dont la courtoisie va changer [pid par défaut = %d]"
+
+#: src/top/top_nls.c:468
+#, c-format
+msgid "Renice PID %d to value"
+msgstr "Change la courtoisie du PID %d à la valeur"
+
+#: src/top/top_nls.c:469
+#, c-format
+msgid "Failed renice of PID %d to %d: %s"
+msgstr "La courtoisie du PID %d n'a pas pu être mise à %d: %s"
+
+#: src/top/top_nls.c:470
+#, c-format
+msgid "Rename window '%s' to (1-3 chars)"
+msgstr "Renomme la fenêtre « %s » en (1-3 caractères)"
+
+#: src/top/top_nls.c:471
+#, c-format
+msgid "Cumulative time %s"
+msgstr "Temps cumulé %s"
+
+#: src/top/top_nls.c:472
+#, c-format
+msgid "Maximum tasks = %d, change to (0 is unlimited)"
+msgstr "Tâches maximum = %d, change en (0 pour illimité)"
+
+#: src/top/top_nls.c:473
+msgid "Invalid maximum"
+msgstr "Maximum invalide"
+
+#: src/top/top_nls.c:474
+msgid "Which user (blank for all)"
+msgstr "Quel utilisateur (vide pour tous)"
+
+#: src/top/top_nls.c:475
+msgid "Unknown command - try 'h' for help"
+msgstr "Commande inconnue – essayez « h » pour l'aide"
+
+#: src/top/top_nls.c:476
+#, c-format
+msgid "scroll coordinates: y = %d/%d (tasks), x = %d/%d (fields)"
+msgstr "coordonnées de défilement: y= %d/%d (tâches), x = %d/%d (champs)"
+
+#: src/top/top_nls.c:477
+msgid "failed memory allocate"
+msgstr "échec de l'allocation de mémoire"
+
+#: src/top/top_nls.c:478
+msgid "failed memory re-allocate"
+msgstr "échec de la ré-allocation de mémoire"
+
+#: src/top/top_nls.c:479
+msgid "Unacceptable floating point"
+msgstr "Nombre décimal inacceptable"
+
+#: src/top/top_nls.c:480
+msgid "Invalid user"
+msgstr "Utilisateur invalide"
+
+#: src/top/top_nls.c:481
+msgid "forest view"
+msgstr "vue forêt"
+
+#: src/top/top_nls.c:482
+msgid "failed pid maximum size test"
+msgstr "le test du pid maximum a échoué"
+
+#: src/top/top_nls.c:483
+msgid "failed number of cpus test"
+msgstr "le test du nombre de CPU a échoué"
+
+#: src/top/top_nls.c:484
+#, c-format
+msgid "incompatible rcfile, you should delete '%s'"
+msgstr "fichier rcfile incompatible, vous devriez effacer « %s »"
+
+#: src/top/top_nls.c:485
+#, c-format
+msgid "window entry #%d corrupt, please delete '%s'"
+msgstr "l'entrée de fenêtre #%d est corrompue, veuillez effacer « %s »"
+
+#: src/top/top_nls.c:486
+msgid "Unavailable in secure mode"
+msgstr "Non disponible en mode sécurisé"
+
+#: src/top/top_nls.c:487
+msgid "Only 1 cpu detected"
+msgstr "Seulement 1 CPU détecté"
+
+#: src/top/top_nls.c:488
+msgid "Unacceptable integer"
+msgstr "Nombre entier inacceptable"
+
+#: src/top/top_nls.c:489
+msgid "conflicting process selections (U/p/u)"
+msgstr "sélections de processus conflictuelles (U/p/u)"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . kibibytes (1024 bytes)
+#: src/top/top_nls.c:492
+msgid "KiB"
+msgstr "KiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . mebibytes (1,048,576 bytes)
+#: src/top/top_nls.c:495
+msgid "MiB"
+msgstr "MiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . gibibytes (1,073,741,824 bytes)
+#: src/top/top_nls.c:498
+msgid "GiB"
+msgstr "GiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . tebibytes (1,099,511,627,776 bytes)
+#: src/top/top_nls.c:501
+msgid "TiB"
+msgstr "TiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . pebibytes (1,024 tebibytes)
+#: src/top/top_nls.c:504
+msgid "PiB"
+msgstr "PiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . exbibytes (1,024 pebibytes)
+#: src/top/top_nls.c:507
+msgid "EiB"
+msgstr "EiB"
+
+#: src/top/top_nls.c:508
+msgid "Threads"
+msgstr "Threads"
+
+#: src/top/top_nls.c:509
+msgid "Tasks"
+msgstr "Tâches"
+
+#. Translation Hint: The following "word" is meant to represent either a single
+#. . cpu or all of the processors in a multi-processor computer
+#. . (should be exactly 6 characters, excluding leading % & colon)
+#: src/top/top_nls.c:513
+#, c-format
+msgid "%Cpu(s):"
+msgstr "%Cpu(s):"
+
+#. Translation Hint: The following "word" is meant to represent a single processor
+#. and 'the Cp' prefix will be combined with a core id: 'p', 'e' or 'u'
+#. . (if 'Cp' is translated, it must be exactly 2 characters long)
+#: src/top/top_nls.c:517
+#, c-format
+msgid "%%Cp%c%-3d:"
+msgstr "%%Cp%c%-3d:"
+
+#. Translation Hint: The following word "another" must have 1 trailing space
+#: src/top/top_nls.c:519
+msgid "another "
+msgstr "autre "
+
+#: src/top/top_nls.c:520
+msgid "Locate next inactive, use \"L\""
+msgstr "Trouve le suivant inactif, utilisez « L »"
+
+#: src/top/top_nls.c:521
+msgid "Locate string"
+msgstr "Trouve chaîne"
+
+#: src/top/top_nls.c:522
+#, c-format
+msgid "%s\"%s\" not found"
+msgstr "%s« %s » pas trouvé"
+
+#: src/top/top_nls.c:523
+#, c-format
+msgid "width incr is %d, change to (0 default, -1 auto)"
+msgstr "largeur incr est %d, change à (0 défaut, -1 auto)"
+
+#: src/top/top_nls.c:524
+msgid "rcfile has inspect/other-filter error(s), save anyway?"
+msgstr ""
+"rcfile a une ou des erreur(s) d'entrée « inspect » ou d'autre filtre, écrire "
+"quand-même ?"
+
+#: src/top/top_nls.c:525
+#, c-format
+msgid "unrecognized field name '%s'"
+msgstr "nom de champ « %s » non reconnu"
+
+#: src/top/top_nls.c:526
+msgid "even using field names only, window is now too small"
+msgstr ""
+"même en n'utilisant que les noms de champs, la fenêtre est maintenant trop "
+"petite"
+
+#: src/top/top_nls.c:527
+msgid "Open Files"
+msgstr "Ouvrir fichiers"
+
+#: src/top/top_nls.c:528
+msgid "NUMA Info"
+msgstr "Info NUMA"
+
+#: src/top/top_nls.c:529
+msgid "Log"
+msgstr "Journal"
+
+#: src/top/top_nls.c:530
+msgid ""
+"the '=' key will eventually show the actual file read or command(s) "
+"executed ..."
+msgstr ""
+"la touche « = » montera le fichier réellement lu ou la/les commande(s) "
+"exécutée(s)…"
+
+#: src/top/top_nls.c:531
+msgid "demo"
+msgstr "démo"
+
+#: src/top/top_nls.c:532
+#, c-format
+msgid ""
+"This is simulated output representing the contents of some file or the "
+"output\n"
+"from some command. Exactly which commands and/or files are solely up to "
+"you.\n"
+"\n"
+"Although this text is for information purposes only, it can still be "
+"scrolled\n"
+"and searched like real output will be. You are encouraged to experiment "
+"with\n"
+"those features as explained in the prologue above.\n"
+"\n"
+"To enable real Inspect functionality, entries must be added to the end of "
+"the\n"
+"top personal personal configuration file. You could use your favorite "
+"editor\n"
+"to accomplish this, taking care not to disturb existing entries.\n"
+"\n"
+"Another way to add entries is illustrated below, but it risks overwriting "
+"the\n"
+"rcfile. Redirected echoes must not replace (>) but append (>>) to that "
+"file.\n"
+"\n"
+" /bin/echo -e \"pipe\\tOpen Files\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+" /bin/echo -e \"file\\tNUMA Info\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+" /bin/echo -e \"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr\" >> ~/."
+"toprc\n"
+"\n"
+"If you don't know the location or name of the top rcfile, use the 'W' "
+"command\n"
+"and note those details. After backing up the current rcfile, try issuing "
+"the\n"
+"above echoes exactly as shown, replacing '.toprc' as appropriate. The "
+"safest\n"
+"approach would be to use copy then paste to avoid any typing mistakes.\n"
+"\n"
+"Finally, restart top to reveal what actual Inspect entries combined with "
+"this\n"
+"new command can offer. The possibilities are endless, especially "
+"considering\n"
+"that 'pipe' type entries can include shell scripts too!\n"
+"\n"
+"For additional important information, please consult the top(1) man "
+"document.\n"
+"Then, enhance top with your very own customized 'file' and/or 'pipe' "
+"entries.\n"
+"\n"
+"Enjoy!\n"
+msgstr ""
+"Ceci est une sortie simulée représentant le contenu d'un fichier ou la "
+"sortie\n"
+"d'une commande. Quelle commande ou quel fichier dépend uniquement de vous.\n"
+"\n"
+"Bien que ce texte soit purement informatif, vous pouvez le faire défiler ou\n"
+"lancer une recherche comme une sortie réelle. Vous êtes encouragé à\n"
+"expérimenter ces fonctionnalités comme expliqué dans le prologue ci-dessus.\n"
+"\n"
+"Pour activer les fonctionnalités réelles d'Inspect, des entrées doivent "
+"être\n"
+"ajoutées à la fin du fichier personnel de configuration de top. Vous pouvez\n"
+"utiliser votre éditeur de texte pour accomplir ceci en prenant soin de ne\n"
+"pas démettre les entrées existantes.\n"
+"\n"
+"Une autre manière d'ajouter les entrées est illustrée ci-dessous mais il y\n"
+"a un risque qu'elle écrase le fichier rcfile. Les sorties echo redirigées\n"
+"ne doivent pas remplacer le contenu (>) mais bien ajouter (>>) à la fin\n"
+"du fichier.\n"
+"\n"
+" /bin/echo -e \"pipe\\tOpen Files\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+" /bin/echo -e \"file\\tNUMA Info\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+" /bin/echo -e \"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr\" >> ~/."
+"toprc\n"
+"\n"
+"Si vous ignorez l'emplacement ou le nom du fichier rcfiled de top, utilisez\n"
+"la commande « W » et notez ces détails. Après avoir fait une copie de\n"
+"sauvegarde du fichier rcfile actuel, essayez les commandes echo ci-dessus\n"
+"exactement tel que montré. Remplacez « .toprc » par le bon nom de fichier.\n"
+"La manière la plus sûre est d'utiliser un copier/coller pour éviter les\n"
+"fautes de frappe.\n"
+"\n"
+"Finalement, redémarrez top pour révéler ce que les entrées Inspect "
+"combinées\n"
+"avec cette nouvelle commande peuvent offrir. Les possibilités sont "
+"illimitées,\n"
+"surtout en considérant que les entrées de type « pipe » peuvent inclure des\n"
+"scripts shell aussi !\n"
+"\n"
+"Pour obtenir plus d'informations importantes, veuillez vous référer à la\n"
+"documentation man de top(1). Ensuite, améliorez top avec vos propres "
+"entrées\n"
+"« file » et « pipe ».\n"
+"\n"
+"Amusez-vous~!\n"
+
+#: src/top/top_nls.c:564
+msgid "to enable 'Y' press <Enter> then type 'W' and restart top"
+msgstr ""
+"pour activer « Y », appuyez sur <Entrée> puis tapez « W » et redémarrez top"
+
+#: src/top/top_nls.c:565
+msgid "to enable 'Y' please consult the top man page (press Enter)"
+msgstr "pour activer « Y », consultez la page man de top (pressez Entrée)"
+
+#: src/top/top_nls.c:566
+#, c-format
+msgid "Selection failed with: %s\n"
+msgstr "La sélection a échoué avec: %s\n"
+
+#: src/top/top_nls.c:567
+#, c-format
+msgid "unable to inspect, pid %d not found"
+msgstr "impossible d'inspecter, pid %d pas trouvé"
+
+#: src/top/top_nls.c:568
+#, c-format
+msgid "inspect at PID [default pid = %d]"
+msgstr "inspection du PID [pid par défaut = %d]"
+
+#: src/top/top_nls.c:569
+#, c-format
+msgid "%s: %*d-%-*d lines, %*d-%*d columns, %lu bytes read"
+msgstr "%s: %*d-%-*d lignes, %*d-%*d colonnes, %lu octets lus"
+
+#: src/top/top_nls.c:570
+msgid "patience please, working ..."
+msgstr "merci de patienter, travail en cours…"
+
+#: src/top/top_nls.c:571
+msgid "working, use Ctrl-C to end ..."
+msgstr "travail en cour, utilisez Ctrl-C pour arrêter…"
+
+#. Translation Hint: Below are 2 abbreviations which can be as long as needed:
+#. . FLD = FIELD, VAL = VALUE
+#: src/top/top_nls.c:574
+#, c-format
+msgid "add filter #%d (%s) as: [!]FLD?VAL"
+msgstr "ajouter le filtre #%d (%s) comme: [!]FLD?VAL"
+
+#: src/top/top_nls.c:575
+msgid "ignoring case"
+msgstr "ignore les majuscules/minuscules"
+
+#: src/top/top_nls.c:576
+msgid "case sensitive"
+msgstr "sensible à la casse"
+
+#: src/top/top_nls.c:577
+msgid "duplicate filter was ignored"
+msgstr "le doublon dans les filtres a été ignoré"
+
+#: src/top/top_nls.c:578
+#, c-format
+msgid "'%s' filter delimiter is missing"
+msgstr "délimiteur manquant dans le filtre « %s »"
+
+#: src/top/top_nls.c:579
+#, c-format
+msgid "'%s' filter value is missing"
+msgstr "valeur manquante dans le filtre « %s »"
+
+#: src/top/top_nls.c:580
+msgid "include"
+msgstr "inclure"
+
+#: src/top/top_nls.c:581
+msgid "exclude"
+msgstr "exclure"
+
+#: src/top/top_nls.c:582
+#, c-format
+msgid "<Enter> to resume, filters: %s"
+msgstr "<Enter> pour continuer, filtres: %s"
+
+#: src/top/top_nls.c:583
+msgid "none"
+msgstr "aucun"
+
+#. Translation Hint: The following word 'Node' should be exactly
+#. 4 characters, excluding leading %%, fmt chars & colon)
+#: src/top/top_nls.c:586
+#, c-format
+msgid "%%Node%-2d:"
+msgstr "%%NÅ“ud%-2d:"
+
+#: src/top/top_nls.c:587
+#, c-format
+msgid "expand which numa node (0-%d)"
+msgstr "développer quel nœud numa (0-%d)"
+
+#: src/top/top_nls.c:588
+msgid "invalid numa node"
+msgstr "nœud numa invalide"
+
+#: src/top/top_nls.c:589
+msgid "sorry, NUMA extensions unavailable"
+msgstr "désolé, les extensions NUMA ne sont pas disponibles"
+
+#. Translation Hint: 'Mem ' is an abbreviation for physical memory/ram
+#. . 'Swap' represents the linux swap file --
+#. . please make both translations exactly 4 characters,
+#. . padding with extra spaces as necessary
+#: src/top/top_nls.c:594
+msgid "Mem "
+msgstr "Mem "
+
+#: src/top/top_nls.c:595
+msgid "Swap"
+msgstr "Éch "
+
+#: src/top/top_nls.c:596
+#, c-format
+msgid "library failed memory statistics, at %d: %s"
+msgstr "la bibliothèque a échoué dans les statistiques mémoire à %d : %s"
+
+#: src/top/top_nls.c:597
+#, c-format
+msgid "library failed cpu statistics, at %d: %s"
+msgstr "la bibliothèque a échoué dans les statistiques du processeur à %d : %s"
+
+#: src/top/top_nls.c:598
+#, c-format
+msgid "library failed pids statistics, at %d: %s"
+msgstr "la bibliothèque a échoué dans les statistiques des pids à %d : %s"
+
+#: src/top/top_nls.c:599
+#, c-format
+msgid "bad memory scaling arg '%s'"
+msgstr "mauvais argument de mise à l'échelle de la mémoire « %s »"
+
+#: src/top/top_nls.c:600
+#, c-format
+msgid "PID to collapse/expand [default pid = %d]"
+msgstr "PID à replier ou étendre [pid par défaut = %d]"
+
+#: src/top/top_nls.c:601
+msgid "wrong mode, command inactive"
+msgstr "mode incorrect, commande inactive"
+
+#: src/top/top_nls.c:602
+msgid "saving prevents older top from reading, save anyway?"
+msgstr ""
+"l'enregistrement empêche un ancien top de le lire, enregistrer malgré tout ?"
+
+#: src/top/top_nls.c:603
+#, c-format
+msgid "failed sem_init() at %d: %s"
+msgstr "échec de sem_init() à %d : %s"
+
+#: src/top/top_nls.c:604
+#, c-format
+msgid "failed pthread_create() at %d: %s"
+msgstr "échec de pthread_create() à %d : %s"
+
+#: src/top/top_nls.c:605
+msgid "sorry, restricted namespace with reduced functionality"
+msgstr "désolé, espace de nom restreint avec des fonctionnalités réduites"
+
+#: src/top/top_nls.c:606
+#, c-format
+msgid "set pid %d AGNI value to"
+msgstr "définir la valeur AGNI du pid %d à"
+
+#: src/top/top_nls.c:607
+msgid "valid AGNI range is -20 to +19"
+msgstr "plage valide pour AGNI est -20 à +19"
+
+#: src/top/top_nls.c:608
+#, c-format
+msgid "autogroup open failed, %s"
+msgstr "impossible d'ouvrir l'autogroupe, %s"
+
+#: src/top/top_nls.c:609
+#, c-format
+msgid "autogroup write failed, %s"
+msgstr "échec d'écriture dans l'autogroupe, %s"
+
+#: src/top/top_nls.c:610
+#, c-format
+msgid "command line for pid %d, %s"
+msgstr "ligne de commande pour le pid %d, %s"
+
+#: src/top/top_nls.c:611
+#, c-format
+msgid "control groups for pid %d, %s"
+msgstr "groupes de contrôle pour le pid %d, %s"
+
+#: src/top/top_nls.c:612
+#, c-format
+msgid "environment for pid %d, %s"
+msgstr "environnement pour le pid %d, %s"
+
+#: src/top/top_nls.c:613
+#, c-format
+msgid "namespaces for pid %d, %s"
+msgstr "espaces de noms pour le pid %d, %s"
+
+#: src/top/top_nls.c:614
+msgid "n/a"
+msgstr "n/a"
+
+#: src/top/top_nls.c:615
+#, c-format
+msgid "supplementary groups for pid %d, %s"
+msgstr "groupes supplémentaires pour le pid %d, %s"
+
+#: src/top/top_nls.c:616
+msgid "message log, last 10 messages:"
+msgstr "journal des messages, 10 derniers messages :"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The next several text groups contain special escape sequences
+#. . representing values used to index a table at run-time.
+#. .
+#. . Each such sequence consists of a tilde (~) followed by an ascii
+#. . number in the range of '1' - '8'. Examples are '~2', '~8', etc.
+#. . These escape sequences must never themselves be translated but
+#. . could be deleted.
+#. .
+#. . If you remove these escape sequences (both tilde and number) it
+#. . would make translation easier. However, the ability to display
+#. . colors and bold text at run-time will have been lost.
+#. .
+#. . Additionally, each of these text groups was designed to display
+#. . in a 80x24 terminal window. Hopefully, any translations will
+#. . adhere to that goal lest the translated text be truncated.
+#. .
+#. . If you would like additional information regarding these strings,
+#. . please see the prologue to the show_special function in the top.c
+#. . source file.
+#. .
+#. . Caution:
+#. . The next three items represent pages for interacting with a user.
+#. . In all cases, the last lines of text must be treated with care.
+#. .
+#. . They must not end with a newline character so that at runtime the
+#. . cursor will remain on that final text line.
+#. .
+#. . Also, the special sequences (tilde+number) must not appear on the
+#. . last line (the one without the newline). So please avoid any line
+#. . wraps that could place them there.
+#. .
+#: src/top/top_nls.c:661
+#, c-format
+msgid ""
+"Help for Interactive Commands~2 - %s\n"
+"Window ~1%s~6: ~1Cumulative mode ~3%s~2. ~1System~6: ~1Delay ~3%.1f secs~2; "
+"~1Secure mode ~3%s~2.\n"
+"\n"
+" Z~5,~1B~5,E,e Global: '~1Z~2' colors; '~1B~2' bold; '~1E~2'/'~1e~2' "
+"summary/task memory scale\n"
+" l,t,m,I,0 Toggle: '~1l~2' load avg; '~1t~2' task/cpu; '~1m~2' memory; "
+"'~1I~2' Irix; '~10~2' zeros\n"
+" 1,2,3,4,5 Toggle: '~11~2/~12~2/~13~2' cpu/numa views; '~14~2' cpus "
+"abreast; '~15~2' P/E-cores\n"
+" f,X Fields: '~1f~2' add/remove/order/sort; '~1X~2' increase fixed-"
+"width fields\n"
+"\n"
+" L,&,<,> . Locate: '~1L~2'/'~1&~2' find/again; Move sort column: "
+"'~1<~2'/'~1>~2' left/right\n"
+" R,H,J,C . Toggle: '~1R~2' Sort; '~1H~2' Threads; '~1J~2' Num justify; "
+"'~1C~2' Coordinates\n"
+" c,i,S,j . Toggle: '~1c~2' Cmd name/line; '~1i~2' Idle; '~1S~2' Time; "
+"'~1j~2' Str justify\n"
+" x~5,~1y~5 . Toggle highlights: '~1x~2' sort field; '~1y~2' running "
+"tasks\n"
+" z~5,~1b~5 . Toggle: '~1z~2' color/mono; '~1b~2' bold/reverse (only if "
+"'x' or 'y')\n"
+" u,U,o,O . Filter by: '~1u~2'/'~1U~2' effective/any user; '~1o~2'/'~1O~2' "
+"other criteria\n"
+" n,#,^O . Set: '~1n~2'/'~1#~2' max tasks displayed; Show: ~1Ctrl~2+'~1O~2' "
+"other filter(s)\n"
+" V,v,F . Toggle: '~1V~2' forest view; '~1v~2' hide/show children; '~1F~2' "
+"keep focused\n"
+"\n"
+"%s ^G,K,N,U View: ctl groups ~1^G~2; cmdline ~1^K~2; environment ~1^N~2; "
+"supp groups ~1^U~2\n"
+" Y,!,^E,P Inspect '~1Y~2'; Combine Cpus '~1!~2'; Scale time ~1^E~2; View "
+"namespaces ~1^P~2\n"
+" W,q Write config file '~1W~2'; Quit '~1q~2'\n"
+" ( commands shown with '.' require a ~1visible~2 task display "
+"~1window~2 ) \n"
+"Press '~1h~2' or '~1?~2' for help with ~1Windows~2,\n"
+"Type 'q' or <Esc> to continue "
+msgstr ""
+"Aide pour les commandes interactives~2 - %s\n"
+"Fenêtre ~1%s~6: ~1Mode cumulatif ~3%s~2. ~1Système~6: ~1Délai ~3%.1f "
+"secs~2; ~1Mode sûr ~3%s~2.\n"
+"\n"
+" Z~5,~1B~5,E,e Global: «~1Z~2» couleurs; «~1B~2» gras; «~1E~2»/«~1e~2» "
+"résumé/échelle mem tâches\n"
+" l,t,m,I,0 Commuter: «~1l~2» charge moy; «~1t~2» stats tâche/cpu; «~1m~2» "
+"info mem; «~1I~2» Mode Irix; «~10~2» zéros\n"
+" 1,2,3,4,5 Commuter: «~11~2/~12~2/~13~2» vues cpus/numa; «~14~2» cpus par "
+"deux; «~15~2» cœurs P/E\n"
+" f,X Champs: «~1f~2» ajouter/supprimer/ordre/tri; «~1X~2» augmenter "
+"largeur fixe\n"
+"\n"
+" L,&,<,> . Identifier: «~1L~2»/«~1&~2» chercher/encore; Déplacer colonne "
+"tri: «~1<~2»/«~1>~2» gauche/droite\n"
+" R,H,J,C . Commuter: «~1R~2» Tri; «~1H~2» Threads; «~1J~2» Justifier "
+"nombre, «~1C~2» Coordonnées\n"
+" c,i,S,j . Commuter: «~1c~2» Nom/ligne com; «~1i~2» Repos; «~1S~2» Temps; "
+"«~1j~2» Justifier chaîne\n"
+" x~5,~1y~5 . Commuter mise en évidence: «~1x~2» champ de tri; «~1y~2» "
+"tâches en cours\n"
+" z~5,~1b~5 . Commuter: «~1z~2» couleur/mono; «~1b~2» gras/inverse "
+"(uniquement avec « x » ou « y »)\n"
+" u,U,o,O . Filtrer par: «~1u~2»/«~1U~2» utilisateur eff/tous; "
+"«~1o~2»/«~1O~2» autre critère\n"
+" n,#,^O . Changer: «~1n~2»/«~1#~2» tâches max affichées; Montrer: "
+"~1Ctrl~2+«~1O~2» autre(s) filtre(s)\n"
+" V,v,F . Commuter: «~1V~2» vue forêt; «~1v~2» montrer/cacher les enfants "
+"dans la vue forêt; «~1F~2» garder focus\n"
+"\n"
+"%s ^G,K,N,U Vue: grp ctl ~1^G~2; lignecmd ~1^K~2; environ. ~1^N~2; grp sup "
+"~1^U~2\n"
+" Y,!^E,P Inspecter «~1Y~2»; Combiner Cpus «~1!~2»; Échelle temps "
+"«~1^E~2», Voir espaces de noms ~1^P~2\n"
+" W,q Écrire config «~1W~2»; Quitter «~1q~2»\n"
+" ( commandes montrée avec « . » exigent une ~1fenêtre~2 ~1visible~2 "
+"d'affichage des tâches ) \n"
+"Appuyez sur «~1h̃~2» ou «~1?~2» pour l'aide sur les ~1Fenêtres~2,\n"
+"Appuyez sur « q » ou « Éch » pour continuer "
+
+#: src/top/top_nls.c:687
+#, c-format
+msgid ""
+"Help for Windows / Field Groups~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+". Use multiple ~1windows~2, each with separate config opts (color,fields,"
+"sort,etc)\n"
+". The 'current' window controls the ~1Summary Area~2 and responds to your "
+"~1Commands~2\n"
+" . that window's ~1task display~2 can be turned ~1Off~2 & ~1On~2, growing/"
+"shrinking others\n"
+" . with ~1NO~2 task display, some commands will be ~1disabled~2 "
+"('i','R','n','c', etc)\n"
+" until a ~1different window~2 has been activated, making it the 'current' "
+"window\n"
+". You ~1change~2 the 'current' window by: ~1 1~2) cycling forward/backward;"
+"~1 2~2) choosing\n"
+" a specific field group; or~1 3~2) exiting the color mapping or fields "
+"screens\n"
+". Commands ~1available anytime -------------~2\n"
+" A . Alternate display mode toggle, show ~1Single~2 / ~1Multiple~2 "
+"windows\n"
+" g . Choose another field group and make it 'current', or change "
+"now\n"
+" by selecting a number from: ~1 1~2 =%s;~1 2~2 =%s;~1 3~2 =%s; "
+"or~1 4~2 =%s\n"
+". Commands ~1requiring~2 '~1A~2' mode~1 -------------~2\n"
+" G . Change the ~1Name~5 of the 'current' window/field group\n"
+" ~1*~4 a , w . Cycle through all four windows: '~1a~5' Forward; '~1w~5' "
+"Backward\n"
+" ~1*~4 - , _ . Show/Hide: '~1-~5' ~1Current~2 window; '~1_~5' all "
+"~1Visible~2/~1Invisible~2\n"
+" The screen will be divided evenly between task displays. But you can "
+"make\n"
+" some ~1larger~2 or ~1smaller~2, using '~1n~2' and '~1i~2' commands. Then "
+"later you could:\n"
+" ~1*~4 = , + . Rebalance tasks: '~1=~5' ~1Current~2 window; '~1+~5' "
+"~1Every~2 window\n"
+" (this also forces the ~1current~2 or ~1every~2 window to "
+"become visible)\n"
+"\n"
+"In '~1A~2' mode, '~1*~4' keys are your ~1essential~2 commands. Please try "
+"the '~1a~2' and '~1w~2'\n"
+"commands plus the 'g' sub-commands NOW. Press <Enter> to make 'Current' "
+msgstr ""
+"Aide pour les fenêtres / Groupes de champs~2 – « Fenêtre courante » = ~1 %s "
+"~6\n"
+"\n"
+". Utiliser plusieurs ~1fenêtres~2, chacune avec des options de configuration "
+"(couleur,champs,tri,etc)\n"
+". La fenêtre « courante » contrôle la ~1zone de résumé~2 et répond à vos "
+"~1Commandes~2\n"
+" . l'~1affichage de tâches~2 de cette fenêtre peut être ~1éteint~2 ou "
+"~1allumé~2, agrandir/réduire les autres\n"
+" . ~1SANS~2 affichage de tâches, certaines commandes seront ~1désactivées~2 "
+"(«i»,«R»,«n»,«c», etc)\n"
+" jusqu'à ce qu'une ~1fenêtre différente~2 soit activée et devienne la "
+"fenêtre « courante »\n"
+". Vous ~1changez~2 la fenêtre « courante » en: ~1 1~2) rotation avant/"
+"arrière;~1 2~2) choisissant\n"
+" un group de champ spécifique; ou~1 3~2) sortant des écrans de "
+"correspondance des couleurs ou des champs\n"
+". Commandes ~1disponibles tout le temps -------------~2\n"
+" A . Basculer vers le mode d'affichage alternatif, montrer "
+"~1Une~2 / ~1Plusieurs~2 fenêtres\n"
+" g . Choisir un autre groupe de champs et le rendre « courant », "
+"ou changer maintenant\n"
+" en choisissant un nombre: ~1 1~2 =%s;~1 2~2 =%s;~1 3~2 =%s; "
+"ou~1 4~2 =%s\n"
+". Commandes ~1exigeant~2 le mode «~1A~2»~1 -------------~2\n"
+" G . Changer le ~1Nom~2 de la fenêtre/groupe de champs "
+"« courant »\n"
+" ~1*~4 a , w . Rotation par toutes les quatre fenêtres: «~1a~5» avant, "
+"«~1w~5» arrière\n"
+" ~1*~4 - , _ . Montrer/cacher: «~1-~5» fenêtre « courante »; «~1_~5» "
+"toutes ~1Visibles~2/~1Invisibles~2\n"
+" L'écran sera divisé de manière équitable entre les affichages de tâches. "
+"Mais vous pouvez en rendre\n"
+" certaines plus ~1larges~2 ou plus ~1petites~2 en utilisant les commandes "
+"«~1n~2» et «~1i~2».\n"
+" Vous pouvez ensuite:\n"
+" ~1*~4 = , + . Ré-équilibrer les tâches: «~1=~5» fenêtre ~1courante~2; "
+"«~1+̃5» ~1toutes~2 fenêtres\n"
+" (ceci force aussi la fenêtre ~1courante~2 ou ~1toutes~2 les "
+"fenêtres à devenir visibles)\n"
+"\n"
+"En mode «~1A~2», les touches «~1*~4» sont vos commandes ~1essentielles~2. "
+"Essayez les commandes «~1a~2»\n"
+"et «~1w~2» ainsi que les sous-commandes «g» MAINTENANT. Appuyez sur "
+"« Entrée » pour rendre « courant » "
+
+#. Translation Notes ------------------------------------------------
+#. . The following 'Help for color mapping' simulated screen should
+#. . probably NOT be translated. It is terribly hard to follow in
+#. . this form and any translation could produce unpleasing results
+#. . that are unlikely to parallel the running top program.
+#. .
+#. . If you decide to proceed with translation, please take care
+#. . to not disturb the spaces and the tilde + number delimiters.
+#. .
+#: src/top/top_nls.c:722
+#, c-format
+msgid ""
+"Help for color mapping~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+" color - 04:25:44 up 8 days, 50 min, 7 users, load average:\n"
+" Tasks:~3 64 ~2total,~3 2 ~3running,~3 62 ~2sleeping,~3 0 ~2stopped,"
+"~3\n"
+" %%Cpu(s):~3 76.5 ~2user,~3 11.2 ~2system,~3 0.0 ~2nice,~3 12.3 "
+"~2idle~3\n"
+" ~1 Nasty Message! ~4 -or- ~1Input Prompt~5\n"
+" ~1 PID TTY PR NI %%CPU TIME+ VIRT SWAP S COMMAND ~6\n"
+" 17284 ~8pts/2 ~7 8 0 0.0 0:00.75 1380 0 S /bin/bash ~8\n"
+" ~1 8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z~7\n"
+" 11005 ~8? ~7 9 0 0.0 0:02.50 2852 1008 S amor -sessi~8\n"
+" available toggles: ~1B~2 =disable bold globally (~1%s~2),\n"
+" ~1z~2 =color/mono (~1%s~2), ~1b~2 =tasks \"bold\"/reverse (~1%s~2)\n"
+"\n"
+"1) Select a ~1target~2 as an upper case letter, ~1current target~2 is ~1 %c "
+"~4:\n"
+" S~2 = Summary Data,~1 M~2 = Messages/Prompts,\n"
+" H~2 = Column Heads,~1 T~2 = Task Information\n"
+"2) Select a ~1color~2 as a number or use the up/down arrow keys\n"
+" to raise/lower the %d colors value, ~1current color~2 is ~1 %d ~4:\n"
+" 0~2 = black,~1 1~2 = red, ~1 2~2 = green,~1 3~2 = yellow,\n"
+" 4~2 = blue, ~1 5~2 = magenta,~1 6~2 = cyan, ~1 7~2 = white\n"
+"\n"
+"3) Then use these keys when finished:\n"
+" 'q' or <Esc> to abort changes to window '~1%s~2'\n"
+" 'a' or 'w' to commit & change another, <Enter> to commit and end "
+msgstr ""
+"Aide pour la correspondance des couleurs~2 - « Fenêtre Actuelle » = ~1 %s "
+"~6\n"
+"\n"
+" couleur - 04:25:44 up 8 jours, 50 min, 7 utilisateurs, charge moyenne:\n"
+" Tâches:~3 64 ~2total,~3 2 ~3exécutée,~3 62 ~2endormie,~3 0 "
+"~2arrêtée,~3\n"
+" %%Cpu(s):~3 76.5 ~2util.,~3 11.2 ~2système,~3 0.0 ~2nice,~3 12.3 "
+"~2inactif~3\n"
+" ~1 Message méchant! ~4 -or- ~1Invite d'entrée~5\n"
+" ~1 PID TTY PR NI %%CPU TEMPS+ VIRT SWAP S COMMANDE ~6\n"
+" 17284 ~8pts/2 ~7 8 0 0.0 0:00.75 1380 0 S /bin/bash ~8\n"
+" ~1 8601 pts/1 7 -10 0.4 0:00.03 916 0 R couleur -b -z~7\n"
+" 11005 ~8? ~7 9 0 0.0 0:02.50 2852 1008 S amor -sessi~8\n"
+" commutateurs disponibles: ~1B~2 =désactive gras globalement (~1%s~2),\n"
+" ~1z~2 =couleur/mono (~1%s~2), ~1b~2 =tâches \"gras\"/inversé "
+"(~1%s~2)\n"
+"\n"
+"1) Choisissez une ~1cible~2 en lettre majuscule, la ~1cible actuelle~2 est "
+"~1 %c ~4:\n"
+" S~2 = Données résumées,~1 M~2 = Messages/Invites,\n"
+" H~2 = En-têtes de colonnes,~1 T~2 = Informations tâches\n"
+"2) Choisissez une ~1couleur~2 par un nombre ou utilisez les flèches haut/"
+"bas\n"
+" pour augmenter/diminuer la valeur des %d couleurs, la ~1couleur "
+"actuelle~2 est ~1 %d ~4:\n"
+" 0~2 = noir,~1 1~2 = rouge, ~1 2~2 = vert ,~1 3~2 = jaune,\n"
+" 4~2 = bleu, ~1 5~2 = magenta,~1 6~2 = cyan, ~1 7~2 = blanc\n"
+"\n"
+"3) Utilisez ensuite ces touches pour terminer:\n"
+" 'q' ou « Échap » pour annuler les changements à la fenêtre '~1%s~2'\n"
+" 'a' ou 'w' pour valider et changer une autre, <Entrée> pour valider et "
+"terminer "
+
+#. Translation Hint: As is true for the text above, the "keys" shown to the left and
+#. . also embedded in the translatable text (along with escape seqs)
+#. . should never themselves be translated.
+#: src/top/top_nls.c:751
+msgid ""
+" d,k,r,^R '~1d~2' set delay; '~1k~2' kill; '~1r~2' renice; ~1Ctrl~2+'~1R~2' "
+"renice autogroup\n"
+msgstr ""
+" d,k,r,^R '~1d~2' délai; '~1k~2' tuer; '~1r~2' courtoisie; ~1Ctrl~2+'~1R~2' "
+"courtoisie autogroupe\n"
+
+#. Translation Hint:
+#. . This Fields Management header should be 3 lines long so as
+#. . to allow 1 blank line before the fields & descriptions.
+#. . If absolutely necessary, 4 lines could be used (but never more).
+#. .
+#: src/top/top_nls.c:759
+#, c-format
+msgid ""
+"Fields Management~2 for window ~1%s~6, whose current sort field is ~1%s~2\n"
+" Navigate with Up/Dn, Right selects for move then <Enter> or Left "
+"commits,\n"
+" 'd' or <Space> toggles display, 's' sets sort. Use 'q' or <Esc> to end!\n"
+msgstr ""
+"Gestion des champs~2 pour la fenêtre ~1%s~6 qui trie selon le champ ~1%s~2\n"
+" Naviguer avec Haut/Bas, Droit sélectionne pour le déplacement puis "
+"<Entrée> ou Gauche applique le changement,\n"
+" 'd' ou <Espace> bascule l'affichage, 's' change le tri. Utiliser 'q' ou "
+"<Echap> pour terminer !\n"
+
+#. Translation Hint:
+#. . The next 5 items must each be translated as a single line.
+#. .
+#: src/top/top_nls.c:767
+#, c-format
+msgid ""
+"%s:~3 %3u ~2total,~3 %3u ~2running,~3 %3u ~2sleeping,~3 %3u ~2stopped,~3 %3u "
+"~2zombie~3\n"
+msgstr ""
+"%s:~3 %3u ~2total,~3 %3u ~2en cours,~3 %3u ~2en veille,~3 %3u ~2arrêté,~3 "
+"%3u ~2zombie~3\n"
+
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt
+#: src/top/top_nls.c:773
+#, c-format
+msgid ""
+"%s~3 %#5.1f ~2us,~3 %#5.1f ~2sy,~3 %#5.1f ~2ni,~3 %#5.1f ~2id,~3 %#5.1f ~2wa,"
+"~3 %#5.1f ~2hi,~3 %#5.1f ~2si~3 ~1"
+msgstr ""
+"%s~3 %#5.1f ~2ut,~3 %#5.1f ~2sy,~3 %#5.1f ~2ni,~3 %#5.1f ~2id,~3 %#5.1f ~2wa,"
+"~3 %#5.1f ~2hi,~3 %#5.1f ~2si~3 ~1"
+
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt, st = steal time
+#: src/top/top_nls.c:779
+#, c-format
+msgid ""
+"%s~3%#5.1f ~2us,~3%#5.1f ~2sy,~3%#5.1f ~2ni,~3%#5.1f ~2id,~3%#5.1f ~2wa,"
+"~3%#5.1f ~2hi,~3%#5.1f ~2si,~3%#5.1f ~2st~3 ~1"
+msgstr ""
+"%s~3%#5.1f ~2ut,~3%#5.1f ~2sy,~3%#5.1f ~2ni,~3%#5.1f ~2id,~3%#5.1f ~2wa,"
+"~3%#5.1f ~2hi,~3%#5.1f ~2si,~3%#5.1f ~2st~3 ~1"
+
+#. Translation Hint: next 2 must be treated together, with WORDS above & below aligned
+#: src/top/top_nls.c:783
+#, c-format
+msgid ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used,~3 %9.9s~2buff/cache~3 "
+"~1 "
+msgstr ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2libr,~3 %9.9s~2util,~3 %9.9s~2tamp/cache~3 "
+"~1 "
+
+#: src/top/top_nls.c:785
+#, c-format
+msgid ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used.~3 %9.9s~2avail %s~3"
+msgstr ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2libr,~3 %9.9s~2util.~3 %9.9s~2dispo %s~3"
+
+#. Translation Hint:
+#. . The next 2 headers for 'Inspection' must each be 3 lines or less
+#. .
+#: src/top/top_nls.c:791
+#, c-format
+msgid ""
+"Inspection~2 Pause at: pid ~1%d~6, running ~1%s~6\n"
+"Use~2: left/right then <Enter> to ~1select~5 an option; 'q' or <Esc> to "
+"~1end~5 !\n"
+"Options~2: ~1%s\n"
+msgstr ""
+"Inspection~2 Pause à: pid ~1%d~6 en cours ~1%s~6\n"
+"Usage~2: gauche/droite puis <Entrée> pour ~1sélectionner~5 une option; "
+"« q » ou <Éch> pour ~1terminer~5 !\n"
+"Options~2: ~1%s\n"
+
+#: src/top/top_nls.c:796
+#, c-format
+msgid ""
+"Inspection~2 View at pid: ~1%s~3, running ~1%s~3. Locating: ~1%s~6\n"
+"Use~2: left/right/up/down/etc to ~1navigate~5 the output; 'L'/'&' to "
+"~1locate~5/~1next~5.\n"
+"Or~2: <Enter> to ~1select another~5; 'q' or <Esc> to ~1end~5 !\n"
+msgstr ""
+"Inspection~2 Vue au pid: ~1%s~3, exécution ~1%s~3. Position: ~1%s~6\n"
+"Usage~2: gauche/droite/haut/bas/etc pour ~1naviguer~5 dans la sortie; "
+"« L »/« & » pour ~1trouver~5/~1suivant~5.\n"
+"Ou~2: <Entrée> pour ~1sélectionner une autre~5; « q » or <Éch> pour "
+"~1terminer~5 !\n"
+
+#: src/uptime.c:51 src/uptime.c:123
+msgid "Cannot get system uptime"
+msgstr "Impossible d'obtenir le temps de fonctionnement du système"
+
+#: src/uptime.c:67
+msgid " -p, --pretty show uptime in pretty format\n"
+msgstr ""
+" -p, --pretty montre le temps de fonctionnement dans un joli format\n"
+
+#: src/uptime.c:69
+msgid " -s, --since system up since\n"
+msgstr " -s, --since système en route depuis\n"
+
+#: src/vmstat.c:220
+#, c-format
+msgid " %s [options] [delay [count]]\n"
+msgstr " %s [options] [délai [décompte]]\n"
+
+#: src/vmstat.c:223
+msgid " -a, --active active/inactive memory\n"
+msgstr " -a, --active active/désactive la mémoire\n"
+
+#: src/vmstat.c:224
+msgid " -f, --forks number of forks since boot\n"
+msgstr " -f, --forks nombre de forks depuis l'amorçage\n"
+
+#: src/vmstat.c:225
+msgid " -m, --slabs slabinfo\n"
+msgstr " -m, --slabs slabinfo\n"
+
+#: src/vmstat.c:226
+msgid " -n, --one-header do not redisplay header\n"
+msgstr " -n, --one-header ne réaffiche pas l'en-tête\n"
+
+#: src/vmstat.c:227
+msgid " -s, --stats event counter statistics\n"
+msgstr " -s, --stats statistiques du compteur d'événements\n"
+
+#: src/vmstat.c:228
+msgid " -d, --disk disk statistics\n"
+msgstr " -d, --disk statistiques du disque\n"
+
+#: src/vmstat.c:229
+msgid " -D, --disk-sum summarize disk statistics\n"
+msgstr " -D, --disks-sum résume les statistiques du disque\n"
+
+#: src/vmstat.c:230
+msgid " -p, --partition <dev> partition specific statistics\n"
+msgstr " -p, --partition <dev> statistiques spécifiques à la partition\n"
+
+#: src/vmstat.c:231
+msgid " -S, --unit <char> define display unit\n"
+msgstr " -S, --unit <char> défini les unités d'affichage\n"
+
+#: src/vmstat.c:232
+msgid " -w, --wide wide output\n"
+msgstr " -w, --wide sortie large\n"
+
+#: src/vmstat.c:233
+msgid " -t, --timestamp show timestamp\n"
+msgstr " -t, --timestamp affiche l'horodatage\n"
+
+#: src/vmstat.c:234
+msgid " -y, --no-first skips first line of output\n"
+msgstr " -y, --no-first passer outre la première ligne de la sortie\n"
+
+#: src/vmstat.c:253
+msgid ""
+"procs -----------memory---------- ---swap-- -----io---- -system-- -------"
+"cpu-------"
+msgstr ""
+"procs ----------mémoire---------- -échange- -----io---- -système- ------"
+"cpu--------"
+
+#: src/vmstat.c:255
+msgid ""
+"--procs-- -----------------------memory---------------------- ---swap-- -----"
+"io---- -system-- ----------cpu----------"
+msgstr ""
+"--procs-- -----------------------mémoire--------------------- -échange- -----"
+"io---- -système- ----------cpu----------"
+
+#: src/vmstat.c:256 src/vmstat.c:619
+msgid " -----timestamp-----"
+msgstr " -----horodatage----"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:275
+msgid "r"
+msgstr "r"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:277
+msgid "b"
+msgstr "b"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:279
+msgid "swpd"
+msgstr "swpd"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:281
+msgid "free"
+msgstr "libre"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:283
+msgid "inact"
+msgstr "inact"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:285
+msgid "buff"
+msgstr "tampon"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:287
+msgid "active"
+msgstr "actif"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:289
+msgid "cache"
+msgstr "cache"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:291
+msgid "si"
+msgstr "si"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:293
+msgid "so"
+msgstr "so"
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:295
+msgid "bi"
+msgstr "bi"
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:297
+msgid "bo"
+msgstr "bo"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:299
+msgid "in"
+msgstr "in"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:301
+msgid "cs"
+msgstr "cs"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:303
+msgid "us"
+msgstr "us"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:305
+msgid "sy"
+msgstr "sy"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:307
+msgid "id"
+msgstr "id"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:309
+msgid "wa"
+msgstr "wa"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:311
+msgid "st"
+msgstr "st"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:313
+msgid "gu"
+msgstr "gu"
+
+#: src/vmstat.c:374 src/vmstat.c:870
+msgid "Unable to create vmstat structure"
+msgstr "Impossible de créer la structure vmstat"
+
+#: src/vmstat.c:376 src/vmstat.c:866 src/vmstat.c:919
+msgid "Unable to create system stat structure"
+msgstr "Impossible de créer la structure des stats système"
+
+#: src/vmstat.c:380
+msgid "Unable to get uptime"
+msgstr "Impossible d'obtenir le temps de fonctionnement"
+
+#: src/vmstat.c:391 src/vmstat.c:472 src/vmstat.c:874
+msgid "Unable to select memory information"
+msgstr "Impossible de sélectionner l'information mémoire"
+
+#: src/vmstat.c:405 src/vmstat.c:458 src/vmstat.c:868
+msgid "Unable to select stat information"
+msgstr "Impossible de sélectionner l'information des stats"
+
+#. Translation Hint: Translating folloging disk partition
+#. * header fields that follow (marked with max x chars) might
+#. * not work, unless manual page is translated as well.
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:565
+msgid "reads"
+msgstr "lectures"
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:567
+msgid "read sectors"
+msgstr "secteurs lus"
+
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:569
+msgid "writes"
+msgstr "écritures"
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:571
+msgid "requested writes"
+msgstr "écritures dem"
+
+#: src/vmstat.c:584 src/vmstat.c:687 src/vmstat.c:813
+msgid "Unable to create diskstat structure"
+msgstr "Impossible de créer la structure diskstat"
+
+#: src/vmstat.c:587 src/vmstat.c:593
+#, c-format
+msgid "Disk/Partition %s not found"
+msgstr "Disque/Partition %s pas trouvé"
+
+#: src/vmstat.c:616
+msgid ""
+"disk- ------------reads------------ ------------writes----------- -----"
+"IO------"
+msgstr ""
+"disq- -----------lectures----- ---- -----------écritures--------- -----"
+"ES------"
+
+#: src/vmstat.c:618
+msgid ""
+"disk- -------------------reads------------------- -------------------"
+"writes------------------ ------IO-------"
+msgstr ""
+"disq- ------------------lectures----------------- ------------------"
+"écritures---------------- ------ES-------"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:637 src/vmstat.c:645
+msgid "total"
+msgstr "total"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:639 src/vmstat.c:647
+msgid "merged"
+msgstr "fusion"
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:641 src/vmstat.c:649
+msgid "sectors"
+msgstr "secteurs"
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:643 src/vmstat.c:651
+msgid "ms"
+msgstr "ms"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:653
+msgid "cur"
+msgstr "cur"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:655
+msgid "sec"
+msgstr "sec"
+
+#: src/vmstat.c:694 src/vmstat.c:815
+msgid "Unable to retrieve disk statistics"
+msgstr "Impossible de récupérer les statistiques disque"
+
+#. Translation Hint: Translating folloging slab fields that
+#. * follow (marked with max x chars) might not work, unless
+#. * manual page is translated as well.
+#. Translation Hint: max 24 chars
+#: src/vmstat.c:741
+msgid "Cache"
+msgstr "Cache"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:743
+msgid "Num"
+msgstr "#"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:745
+msgid "Total"
+msgstr "Total"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:747
+msgid "Size"
+msgstr "Taille"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:749
+msgid "Pages"
+msgstr "Pages"
+
+#: src/vmstat.c:836
+#, c-format
+msgid "%13d disks\n"
+msgstr "%13d disques\n"
+
+#: src/vmstat.c:837
+#, c-format
+msgid "%13d partitions\n"
+msgstr "%13d partitions\n"
+
+#: src/vmstat.c:838
+#, c-format
+msgid "%13lu total reads\n"
+msgstr "%13lu lectures totales\n"
+
+#: src/vmstat.c:839
+#, c-format
+msgid "%13lu merged reads\n"
+msgstr "%13lu lectures fusionnées\n"
+
+#: src/vmstat.c:840
+#, c-format
+msgid "%13lu read sectors\n"
+msgstr "%13lu secteurs lus\n"
+
+#: src/vmstat.c:841
+#, c-format
+msgid "%13lu milli reading\n"
+msgstr "%13lu temps lectures (ms)\n"
+
+#: src/vmstat.c:842
+#, c-format
+msgid "%13lu writes\n"
+msgstr "%13lu écritures\n"
+
+#: src/vmstat.c:843
+#, c-format
+msgid "%13lu merged writes\n"
+msgstr "%13lu écritures fusionnées\n"
+
+#: src/vmstat.c:844
+#, c-format
+msgid "%13lu written sectors\n"
+msgstr "%13lu secteurs écrits\n"
+
+#: src/vmstat.c:845
+#, c-format
+msgid "%13lu milli writing\n"
+msgstr "%13lu temps écritures (ms)\n"
+
+#: src/vmstat.c:846
+#, c-format
+msgid "%13lu inprogress IO\n"
+msgstr "%13lu E/S en cours\n"
+
+#: src/vmstat.c:847
+#, c-format
+msgid "%13lu milli spent IO\n"
+msgstr "%13lu temps E/S consommés (ms)\n"
+
+#: src/vmstat.c:848
+#, c-format
+msgid "%13lu milli weighted IO\n"
+msgstr "%13lu temps E/S pondéré (ms)\n"
+
+#: src/vmstat.c:876
+#, c-format
+msgid "%13lu %s total memory\n"
+msgstr "%13lu %s mémoire totale\n"
+
+#: src/vmstat.c:877
+#, c-format
+msgid "%13lu %s used memory\n"
+msgstr "%13lu %s mémoire utilisée\n"
+
+#: src/vmstat.c:878
+#, c-format
+msgid "%13lu %s active memory\n"
+msgstr "%13lu %s mémoire active\n"
+
+#: src/vmstat.c:879
+#, c-format
+msgid "%13lu %s inactive memory\n"
+msgstr "%13lu %s mémoire inactive\n"
+
+#: src/vmstat.c:880
+#, c-format
+msgid "%13lu %s free memory\n"
+msgstr "%13lu %s mémoire libre\n"
+
+#: src/vmstat.c:881
+#, c-format
+msgid "%13lu %s buffer memory\n"
+msgstr "%13lu %s mémoire tampon\n"
+
+#: src/vmstat.c:882
+#, c-format
+msgid "%13lu %s swap cache\n"
+msgstr "%13lu %s mémoire échange\n"
+
+#: src/vmstat.c:883
+#, c-format
+msgid "%13lu %s total swap\n"
+msgstr "%13lu %s échange total\n"
+
+#: src/vmstat.c:884
+#, c-format
+msgid "%13lu %s used swap\n"
+msgstr "%13lu %s échange utilisé\n"
+
+#: src/vmstat.c:885
+#, c-format
+msgid "%13lu %s free swap\n"
+msgstr "%13lu %s échange libre\n"
+
+#: src/vmstat.c:886
+#, c-format
+msgid "%13lld non-nice user cpu ticks\n"
+msgstr "%13lld tics du cpu utilisateur non-courtois\n"
+
+#: src/vmstat.c:887
+#, c-format
+msgid "%13lld nice user cpu ticks\n"
+msgstr "%13lld tics cpu utilisateur courtois\n"
+
+#: src/vmstat.c:888
+#, c-format
+msgid "%13lld system cpu ticks\n"
+msgstr "%13lld tics cpu système\n"
+
+#: src/vmstat.c:889
+#, c-format
+msgid "%13lld idle cpu ticks\n"
+msgstr "%13lld tics cpu inactif\n"
+
+#: src/vmstat.c:890
+#, c-format
+msgid "%13lld IO-wait cpu ticks\n"
+msgstr "%13lld tics cpu attente E/S\n"
+
+#: src/vmstat.c:891
+#, c-format
+msgid "%13lld IRQ cpu ticks\n"
+msgstr "%13lld tics cpu IRQ\n"
+
+#: src/vmstat.c:892
+#, c-format
+msgid "%13lld softirq cpu ticks\n"
+msgstr "%13lld tics cpu IRQ soft\n"
+
+#: src/vmstat.c:893
+#, c-format
+msgid "%13lld stolen cpu ticks\n"
+msgstr "%13lld tics cpu volés\n"
+
+#: src/vmstat.c:894
+#, c-format
+msgid "%13lld non-nice guest cpu ticks\n"
+msgstr "%13lld tics du cpu invité non-courtois\n"
+
+#: src/vmstat.c:895
+#, c-format
+msgid "%13lld nice guest cpu ticks\n"
+msgstr "%13lld tics cpu invité courtois\n"
+
+#: src/vmstat.c:896
+#, c-format
+msgid "%13lu K paged in\n"
+msgstr "%13lu K pages lues depuis le disque\n"
+
+#: src/vmstat.c:897
+#, c-format
+msgid "%13lu K paged out\n"
+msgstr "%13lu K pages écrites sur le disque\n"
+
+#: src/vmstat.c:898
+#, c-format
+msgid "%13lu pages swapped in\n"
+msgstr "%13lu pages mises en mémoire d'échange\n"
+
+#: src/vmstat.c:899
+#, c-format
+msgid "%13lu pages swapped out\n"
+msgstr "%13lu pages sorties de la mémoire d'échange\n"
+
+#: src/vmstat.c:900
+#, c-format
+msgid "%13lu interrupts\n"
+msgstr "%13lu interruptions\n"
+
+#: src/vmstat.c:901
+#, c-format
+msgid "%13lu CPU context switches\n"
+msgstr "%13lu changements de contexte CPU\n"
+
+#: src/vmstat.c:902
+#, c-format
+msgid "%13lu boot time\n"
+msgstr "%13lu heure d'amorçage\n"
+
+#: src/vmstat.c:903 src/vmstat.c:921
+#, c-format
+msgid "%13lu forks\n"
+msgstr "%13lu clonages\n"
+
+#. Translation Hint: do not change argument characters
+#: src/vmstat.c:1024
+msgid "-S requires k, K, m or M (default is KiB)"
+msgstr "-S requiert k, K, m ou M (KiB par défaut)"
+
+#: src/watch.c:94
+#, c-format
+msgid " %s [options] command\n"
+msgstr " %s [options] commande\n"
+
+#: src/watch.c:96
+msgid " -b, --beep beep if command has a non-zero exit\n"
+msgstr ""
+" -b, --beep émet un bip si la commande sort avec un code non "
+"nul\n"
+
+#: src/watch.c:97
+msgid " -c, --color interpret ANSI color and style sequences\n"
+msgstr ""
+" -c, --color interprète les séquences de couleurs et de styles "
+"ANSI\n"
+
+#: src/watch.c:98
+msgid ""
+" -C, --no-color do not interpret ANSI color and style sequences\n"
+msgstr ""
+" -C, --no-color ne pas interpréter les séquences de couleurs et de "
+"styles ANSI\n"
+
+#: src/watch.c:99
+msgid ""
+" -d, --differences[=<permanent>]\n"
+" highlight changes between updates\n"
+msgstr ""
+" -d, --differences[=<permanent>]\n"
+" met en évidence les changements entre mises à "
+"jours\n"
+
+#: src/watch.c:101
+msgid " -e, --errexit exit if command has a non-zero exit\n"
+msgstr ""
+" -e, --errexit termine si la commande sort avec un code non nul\n"
+
+#: src/watch.c:102
+msgid " -g, --chgexit exit when output from command changes\n"
+msgstr ""
+" -g, --chgexit termine quand la sortie de la commande change\n"
+
+#: src/watch.c:103
+msgid ""
+" -q, --equexit <cycles>\n"
+" exit when output from command does not change\n"
+msgstr ""
+" -q, --equexit <cycles>\n"
+" termine quand la sortie de la commande ne change "
+"plus\n"
+
+#: src/watch.c:105
+msgid " -n, --interval <secs> seconds to wait between updates\n"
+msgstr " -n, --interval <sec> secondes de délai entre mises à jours\n"
+
+#: src/watch.c:106
+msgid " -p, --precise attempt run command in precise intervals\n"
+msgstr ""
+" -p, --precise essaie d'exécuter la commande à intervalles "
+"réguliers\n"
+
+#: src/watch.c:107
+msgid " -r, --no-rerun do not rerun program on window resize\n"
+msgstr ""
+" -r, --no-rerun ne pas ré-exécuter le programme lors du "
+"redimensionnement de la fenêtre\n"
+
+#: src/watch.c:108
+msgid " -t, --no-title turn off header\n"
+msgstr " -t, --no-title masque l'en-tête\n"
+
+#: src/watch.c:109
+msgid " -w, --no-wrap turn off line wrapping\n"
+msgstr " -w, --no-wrap désactive le retour à la ligne\n"
+
+#: src/watch.c:110
+msgid " -x, --exec pass command to exec instead of \"sh -c\"\n"
+msgstr ""
+" -x, --exec passe la commande à exec au lieu de « sh -c »\n"
+
+#: src/watch.c:113
+msgid " -v, --version output version information and exit\n"
+msgstr " -v, --version affiche les informations de version et sort\n"
+
+#: src/watch.c:485
+#, c-format
+msgid "Every %.1fs: "
+msgstr "Toutes les %.1fs: "
+
+#: src/watch.c:486
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: src/watch.c:575
+msgid "unable to create IPC pipes"
+msgstr "impossible de créer les tubes IPC"
+
+#: src/watch.c:585
+msgid "unable to fork process"
+msgstr "impossible de clôner le processus"
+
+#: src/watch.c:590
+msgid "dup2 failed"
+msgstr "dup2 a échoué"
+
+#: src/watch.c:597
+#, c-format
+msgid "unable to execute '%s'"
+msgstr "impossible d'exécuter « %s »"
+
+#: src/watch.c:614
+msgid "fdopen"
+msgstr "fdopen"
+
+#: src/watch.c:788
+msgid "waitpid"
+msgstr "waitpid"
+
+#: src/watch.c:796
+msgid "command exit with a non-zero status, press a key to exit"
+msgstr ""
+"la commande s'est terminée avec un statut non nul, pressez une touche pour "
+"terminer"
+
+#: src/watch.c:863
+msgid "Could not parse interval from WATCH_INTERVAL"
+msgstr "Impossible d'analyser l'intervalle dans WATCH_INTERVAL"
+
+#: src/watch.c:954
+#, c-format
+msgid "unicode handling error\n"
+msgstr "erreur de gestion de unicode\n"
+
+#: src/watch.c:960
+#, c-format
+msgid "unicode handling error (malloc)\n"
+msgstr "erreur de gestion de unicode (malloc)\n"
+
+#: src/w.c:289 src/w.c:304
+#, c-format
+msgid " %2lludays"
+msgstr "%2llujours"
+
+#. Translation Hint: Minutes:Seconds
+#. Translation Hint: Hours:Minutes
+#: src/w.c:298 src/w.c:308
+#, c-format
+msgid " %2llu:%02um"
+msgstr " %2llu:%02um"
+
+#. Translation Hint: Seconds:Centiseconds
+#: src/w.c:316
+#, c-format
+msgid " %2llu.%02us"
+msgstr " %2llu.%02us"
+
+#: src/w.c:656
+#, c-format
+msgid " %s [options] [user]\n"
+msgstr " %s [options] [utilisateur]\n"
+
+#: src/w.c:658
+msgid " -h, --no-header do not print header\n"
+msgstr " -h, --no-header n'affiche pas l'en-tête\n"
+
+#: src/w.c:659
+msgid " -u, --no-current ignore current process username\n"
+msgstr ""
+" -u, --no-current ignore le nom d'utilisateur du processus courant\n"
+
+#: src/w.c:660
+msgid " -s, --short short format\n"
+msgstr " -s, --short format court\n"
+
+#: src/w.c:661
+msgid " -f, --from show remote hostname field\n"
+msgstr " -f, --from montre le champ du nom d'hôte distant\n"
+
+#: src/w.c:662
+msgid " -o, --old-style old style output\n"
+msgstr " -o, --old-style sortie dans l'ancien style\n"
+
+#: src/w.c:663
+msgid ""
+" -i, --ip-addr display IP address instead of hostname (if possible)\n"
+msgstr ""
+" -i, --ip-addr affiche l'adresse IP au lieu du nom d'hôte (si "
+"possible)\n"
+
+#: src/w.c:664
+msgid " -p, --pids show the PID(s) of processes in WHAT\n"
+msgstr " -p, --pids montrer le/les PID des processus dans QUOI\n"
+
+#: src/w.c:763
+#, c-format
+msgid ""
+"User length environment PROCPS_USERLEN must be between 8 and %i, ignoring.\n"
+msgstr ""
+"la longueur « utilisateur » dans l'environnement PROCPS_USERLEN doit être "
+"entre 8 et %i, ignoré.\n"
+
+#: src/w.c:773
+#, c-format
+msgid ""
+"from length environment PROCPS_FROMLEN must be between 8 and %d, ignoring\n"
+msgstr ""
+"la longueur « de » dans l'environnement PROCPS_FROMLEN doit être entre 8 et "
+"%d, ignoré.\n"
+
+#. Translation Hint: Following five uppercase messages are
+#. * headers. Try to keep alignment intact.
+#: src/w.c:799
+#, c-format
+msgid "%-*s TTY "
+msgstr "%-*s TTY "
+
+#: src/w.c:801
+msgid "FROM"
+msgstr "DE "
+
+#: src/w.c:803
+#, c-format
+msgid " LOGIN@ IDLE JCPU PCPU WHAT\n"
+msgstr " LOGIN@ IDLE JCPU PCPU QUOI\n"
+
+#: src/w.c:805
+#, c-format
+msgid " IDLE WHAT\n"
+msgstr " IDLE QUOI\n"
+
+#: src/w.c:815
+msgid "error getting sessions"
+msgstr "erreur lors de l'obtention des sessions"
+
+#: src/w.c:823
+msgid "get user name failed"
+msgstr "échec de l'obtention du nom de l'utilisateur"
+
+#: local/c.h:153
+msgid ""
+"\n"
+"Usage:\n"
+msgstr ""
+"\n"
+"Usage:\n"
+
+#: local/c.h:154
+msgid ""
+"\n"
+"Options:\n"
+msgstr ""
+"\n"
+"Options:\n"
+
+#: local/c.h:155
+msgid "\n"
+msgstr "\n"
+
+#: local/c.h:156
+msgid " -h, --help display this help and exit\n"
+msgstr " -h, --help affiche cette aide et termine\n"
+
+#: local/c.h:157
+msgid " -V, --version output version information and exit\n"
+msgstr " -V, --version affiche les informations de version et termine\n"
+
+#: local/c.h:158
+#, c-format
+msgid ""
+"\n"
+"For more details see %s.\n"
+msgstr ""
+"\n"
+"Pour plus de détails, consultez %s.\n"
+
+#: local/c.h:160
+#, c-format
+msgid "%s from %s\n"
+msgstr "%s de %s\n"
+
+#~ msgid ""
+#~ "inappropriate '%s'\n"
+#~ "Usage:\n"
+#~ " %s%s"
+#~ msgstr ""
+#~ "« %s » inapproprié\n"
+#~ "Usage:\n"
+#~ " %s%s"
+
+#~ msgid "error: not enough memory\n"
+#~ msgstr "erreur: pas assez de mémoire\n"
+
+#~ msgid "error: can not access /proc\n"
+#~ msgstr "erreur: pas d'accès à /proc\n"
+
+#~ msgid "something at line %d\n"
+#~ msgstr "quelque chose à la ligne %d\n"
+
+#~ msgid "\"%s\" must be of the form name=value"
+#~ msgstr "« %s » doit être au format nom=valeur"
+
+#~ msgid "malformed setting \"%s\""
+#~ msgstr "paramètre malformé « %s »"
+
+#~ msgid "%s is deprecated, value not set"
+#~ msgstr "%s est déprécié, valeur pas changée"
+
+#~ msgid ""
+#~ " %s\n"
+#~ "Usage:\n"
+#~ " %s%s"
+#~ msgstr ""
+#~ " %s\n"
+#~ "Usage:\n"
+#~ " %s%s"
+
+#~ msgid "failed openproc: %s"
+#~ msgstr "échec de openproc: %s"
+
+#~ msgid "-%c requires argument"
+#~ msgstr "-%c exige un paramètre"
+
+#~ msgid ""
+#~ " -hv | -bcEeHiOSs1 -d secs -n max -u|U user -p pid(s) -o field -w [cols]"
+#~ msgstr ""
+#~ " -hv | -bcEeHiOSs1 -d sec -n max -u|U util -p pid(s) -o champ -w [col]"
+
+#~ msgid "failed /proc/stat read"
+#~ msgstr "échec lors de la lecture de /proc/stat"
+
+#~ msgid "terminal is not wide enough"
+#~ msgstr "le terminal n'est pas assez large"
+
+#~ msgid ""
+#~ " k,r Manipulate tasks: '~1k~2' kill; '~1r~2' renice\n"
+#~ " d or s Set update interval\n"
+#~ msgstr ""
+#~ " k,r Manipuler les tâches: «~1k̃~2» tuer; «~1r~2» courtoisie\n"
+#~ " d ou s Changer l'intervalle de mise à jour\n"
+
+#~ msgid ""
+#~ "%s~3 %#5.1f ~2user,~3 %#5.1f ~2system,~3 %#5.1f ~2nice,~3 %#5.1f "
+#~ "~2idle~3"
+#~ msgstr ""
+#~ "%s~3 %#5.1f ~2util.,~3 %#5.1f ~2système,~3 %#5.1f ~2courtoisie,~3 %#5.1f "
+#~ "~2inactif~3"
+
+#~ msgid ""
+#~ "%s~3 %#5.1f ~2user,~3 %#5.1f ~2system,~3 %#5.1f ~2nice,~3 %#5.1f "
+#~ "~2idle,~3 %#5.1f ~2IO-wait~3"
+#~ msgstr ""
+#~ "%s~3 %#5.1f ~2util.,~3 %#5.1f ~2système,~3 %#5.1f ~2courtoisie,~3 "
+#~ "%#5.1f ~2inactif,~3 %#5.1f ~2attente E/S~3"
+
+#~ msgid "your kernel does not support diskstat. (2.5.70 or above required)"
+#~ msgstr "votre kernel ne supporte pas diskstat. (2.5.70 ou plus requis)"
+
+#~ msgid "your kernel does not support diskstat (2.5.70 or above required)"
+#~ msgstr "votre kernel ne supporte pas diskstat (2.5.70 ou plus requis)"
+
+#~ msgid ""
+#~ "your kernel does not support slabinfo or your permissions are insufficient"
+#~ msgstr ""
+#~ "votre kernel ne supporte pas slabinfo ou vos permissions sont "
+#~ "insuffisantes"
+
+#~ msgid ""
+#~ " --ns <PID> match the processes that belong to the same\n"
+#~ " namespace as <pid> or 0 for all namespaces\n"
+#~ msgstr ""
+#~ " --ns <PID> trouve les processus qui appartiennent au "
+#~ "même\n"
+#~ " espace de nom que <PID> ou 0 pour tous les "
+#~ "espaces\n"
+#~ " de noms\n"
+
+#~ msgid "unknown page size (assume 4096)\n"
+#~ msgstr "taille de page inconnue (4096 supposé)\n"
+
+#~ msgid "Overwrite existing obsolete/corrupted rcfile?"
+#~ msgstr "Écraser le fichier rcfile existant qui est obsolète ou corrompu ?"
+
+#~ msgid "reads "
+#~ msgstr "lectures"
+
+#~ msgid "seconds argument `%s' failed"
+#~ msgstr "l'argument des secondes « %s » n'est pas valable"
+
+#~ msgid "alternate System.map file must follow -n"
+#~ msgstr "le fichier System.map alternatif doit suivre -n"
+
+#~ msgid "alternate System.map file must follow N"
+#~ msgstr "le fichier System.map alternatif doit suivre N"
+
+#~ msgid "Adj"
+#~ msgstr "Adj"
+
+#~ msgid "oom_adjustment (2^X)"
+#~ msgstr "oom_adjustment (2^X)"
+
+# Quel terme utiliser pour désigner la probabilité que le process soit éliminé par le OOM killer ?
+#~ msgid "Badness"
+#~ msgstr "OOM killer mediation"
+
+#~ msgid "oom_score (badness)"
+#~ msgstr "oom_score (badness)"
+
+#~ msgid "%d column window is too narrow"
+#~ msgstr "la fenêtre avec %d colonnes est trop étroite"
+
+#~ msgid "%d column width exceeds command buffer size, truncating to %d"
+#~ msgstr ""
+#~ "la largeur de colonne %d dépasse la taille du tampon de commande, tronqué "
+#~ "à %d"
+
+#~ msgid "warning: screen width %d suboptimal"
+#~ msgstr "attention: la largeur %d de l'écran n'est pas optimale"
+
+#~ msgid ""
+#~ " -o, --old use old format (without -/+buffers/cache line)\n"
+#~ msgstr ""
+#~ " -o, --old utiliser l'ancien format (sans la ligne -/+tampon/"
+#~ "cache)\n"
+
+#~ msgid "-/+ buffers/cache:"
+#~ msgstr "-/+ tampons/cache:"
+
+#~ msgid "Nothing to highlight!"
+#~ msgstr "Rien à mettre en évidence !"
+
+#~ msgid "could not parse rcfile inspect entry %d"
+#~ msgstr "l'entrée inspect %d du fichier rcfile n'a pu être analysée"
diff --git a/po/insert-header.sin b/po/insert-header.sin
new file mode 100644
index 0000000..b26de01
--- /dev/null
+++ b/po/insert-header.sin
@@ -0,0 +1,23 @@
+# Sed script that inserts the file called HEADER before the header entry.
+#
+# At each occurrence of a line starting with "msgid ", we execute the following
+# commands. At the first occurrence, insert the file. At the following
+# occurrences, do nothing. The distinction between the first and the following
+# occurrences is achieved by looking at the hold space.
+/^msgid /{
+x
+# Test if the hold space is empty.
+s/m/m/
+ta
+# Yes it was empty. First occurrence. Read the file.
+r HEADER
+# Output the file's contents by reading the next line. But don't lose the
+# current line while doing this.
+g
+N
+bb
+:a
+# The hold space was nonempty. Following occurrences. Do nothing.
+x
+:b
+}
diff --git a/po/ka.gmo b/po/ka.gmo
new file mode 100644
index 0000000..e942bd0
--- /dev/null
+++ b/po/ka.gmo
Binary files differ
diff --git a/po/ka.po b/po/ka.po
new file mode 100644
index 0000000..a26cf8b
--- /dev/null
+++ b/po/ka.po
@@ -0,0 +1,4631 @@
+# procps-ng Georgian translaton
+# Copyright (C) 2023 Free Software Foundation, Inc.
+# This file is distributed under the same license as the procps-ng package.
+# Temuri Doghonadze <temuri.doghonadze@gmail.com>, 2022-2023.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: procps-ng-4.0.4-rc1\n"
+"Report-Msgid-Bugs-To: procps@freelists.org\n"
+"POT-Creation-Date: 2023-08-19 17:38+1000\n"
+"PO-Revision-Date: 2023-08-20 11:17+0200\n"
+"Last-Translator: Temuri Doghonadze <temuri.doghonadze@gmail.com>\n"
+"Language-Team: Georgian <(nothing)>\n"
+"Language: ka\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"X-Generator: Poedit 3.3.2\n"
+
+#: local/fileutils.c:38
+msgid "write error"
+msgstr "ჩáƒáƒ¬áƒ”რის შეცდáƒáƒ›áƒ"
+
+#: src/free.c:74 src/slabtop.c:106 src/uptime.c:65
+#, c-format
+msgid " %s [options]\n"
+msgstr " %s [პáƒáƒ áƒáƒ›áƒ”ტრები]\n"
+
+#: src/free.c:76
+msgid " -b, --bytes show output in bytes\n"
+msgstr " -b, --bytes მნიშვნელáƒáƒ”ბის ბáƒáƒ˜áƒ¢áƒ”ბში გáƒáƒ›áƒáƒ¢áƒáƒœáƒ\n"
+
+#: src/free.c:77
+msgid " --kilo show output in kilobytes\n"
+msgstr " --kilo მნიშვნელáƒáƒ‘ების კილáƒáƒ‘áƒáƒ˜áƒ¢áƒ”ბში გáƒáƒ›áƒáƒ¢áƒáƒœáƒ\n"
+
+#: src/free.c:78
+msgid " --mega show output in megabytes\n"
+msgstr " --mega მნიშვნელáƒáƒ‘ების მეგáƒáƒ‘áƒáƒ˜áƒ¢áƒ”ბში გáƒáƒ›áƒáƒ¢áƒáƒœáƒ\n"
+
+#: src/free.c:79
+msgid " --giga show output in gigabytes\n"
+msgstr " --giga მნიშვნელáƒáƒ‘ების გიგáƒáƒ‘áƒáƒ˜áƒ¢áƒ”ბში გáƒáƒ›áƒáƒ¢áƒáƒœáƒ\n"
+
+#: src/free.c:80
+msgid " --tera show output in terabytes\n"
+msgstr " --tera მნიშვნელáƒáƒ‘ების ტერáƒáƒ‘áƒáƒ˜áƒ¢áƒ”ბში გáƒáƒ›áƒáƒ¢áƒáƒœáƒ\n"
+
+#: src/free.c:81
+msgid " --peta show output in petabytes\n"
+msgstr " --peta მნიშვნელáƒáƒ‘ების პეტáƒáƒ‘áƒáƒ˜áƒ¢áƒ”ბში გáƒáƒ›áƒáƒ¢áƒáƒœáƒ\n"
+
+#: src/free.c:82
+msgid " -k, --kibi show output in kibibytes\n"
+msgstr " -k, --kibi მნიშვნელáƒáƒ‘ების კიბიბáƒáƒ˜áƒ¢áƒ”ბში გáƒáƒ›áƒáƒ¢áƒáƒœáƒ\n"
+
+#: src/free.c:83
+msgid " -m, --mebi show output in mebibytes\n"
+msgstr " -m, --mebi მნიშვნელáƒáƒ‘ების მებიბáƒáƒ˜áƒ¢áƒ”ბში გáƒáƒ›áƒáƒ¢áƒáƒœáƒ\n"
+
+#: src/free.c:84
+msgid " -g, --gibi show output in gibibytes\n"
+msgstr " -g, --gibi მნიშვნელáƒáƒ‘ების გიბიბáƒáƒ˜áƒ¢áƒ”ბში გáƒáƒ›áƒáƒ¢áƒáƒœáƒ\n"
+
+#: src/free.c:85
+msgid " --tebi show output in tebibytes\n"
+msgstr " --tebi მნიშვნელáƒáƒ‘ების ტერიბáƒáƒ˜áƒ¢áƒ”ბში გáƒáƒ›áƒáƒ¢áƒáƒœáƒ\n"
+
+#: src/free.c:86
+msgid " --pebi show output in pebibytes\n"
+msgstr " --pebi მნიშვნელáƒáƒ‘ების პებიბáƒáƒ˜áƒ¢áƒ”ბში გáƒáƒ›áƒáƒ¢áƒáƒœáƒ\n"
+
+#: src/free.c:87
+msgid " -h, --human show human-readable output\n"
+msgstr " -h, --human áƒáƒ“áƒáƒ›áƒ˜áƒáƒœáƒ˜áƒ¡áƒ—ვის წáƒáƒ™áƒ˜áƒ—ხვáƒáƒ“ი სáƒáƒ®áƒ˜áƒ— გáƒáƒ›áƒáƒ¢áƒáƒœáƒ\n"
+
+#: src/free.c:88
+msgid " --si use powers of 1000 not 1024\n"
+msgstr " --si 1024-ის მáƒáƒ’იერ 1000-ის ხáƒáƒ áƒ˜áƒ¡áƒ®áƒ˜áƒ¡ გáƒáƒ›áƒáƒ§áƒ”ნებáƒ\n"
+
+#: src/free.c:89
+msgid " -l, --lohi show detailed low and high memory statistics\n"
+msgstr ""
+" -l, --lohi ზედრდრქვედრმეხსიერების დეტáƒáƒšáƒ£áƒ áƒ˜ სტáƒáƒ¢áƒ˜áƒ¡áƒ¢áƒ˜áƒ™áƒ˜áƒ¡ ჩვენებáƒ\n"
+
+#: src/free.c:90
+msgid " -L, --line show output on a single line\n"
+msgstr " -L, --line გáƒáƒ›áƒáƒ¢áƒáƒœáƒ˜áƒ¡ ერთ ხáƒáƒ–ში ჩáƒáƒ¢áƒ”ვáƒ\n"
+
+#: src/free.c:91
+msgid " -t, --total show total for RAM + swap\n"
+msgstr " -t, --total ჯáƒáƒ›áƒ£áƒ áƒ˜, RAM + სვáƒáƒžáƒ˜áƒ¡ ჩვენებáƒ\n"
+
+#: src/free.c:92
+msgid " -v, --committed show committed memory and commit limit\n"
+msgstr ""
+
+#: src/free.c:93
+msgid " -s N, --seconds N repeat printing every N seconds\n"
+msgstr " -s N, --seconds N გáƒáƒ›áƒáƒ¢áƒáƒœáƒ˜áƒ¡ ყáƒáƒ•áƒ”ლ N წáƒáƒ›áƒ¨áƒ˜ გáƒáƒ›áƒ”áƒáƒ áƒ”ბáƒ\n"
+
+#: src/free.c:94
+msgid " -c N, --count N repeat printing N times, then exit\n"
+msgstr " -c N, --count N გáƒáƒ›áƒáƒ¢áƒáƒœáƒ˜áƒ¡ N-ჯერ გáƒáƒ›áƒáƒ¢áƒáƒœáƒ დრგáƒáƒ¡áƒ•áƒšáƒ\n"
+
+#: src/free.c:95
+msgid " -w, --wide wide output\n"
+msgstr " -w, --wide ფáƒáƒ áƒ—რგáƒáƒ›áƒáƒ¢áƒáƒœáƒ\n"
+
+#: src/free.c:97 src/w.c:666
+msgid " --help display this help and exit\n"
+msgstr " --help áƒáƒ› დáƒáƒ®áƒ›áƒáƒ áƒ”ბის გáƒáƒ›áƒáƒ¢áƒáƒœáƒ დრგáƒáƒ¡áƒ•áƒšáƒ\n"
+
+#: src/free.c:172
+msgid "Multiple unit options don't make sense."
+msgstr "ერთზე მეტი ერთეულის პáƒáƒ áƒáƒ›áƒ”ტრის მითითებáƒáƒ¡ áƒáƒ–რი áƒáƒ  áƒáƒ¥áƒ•áƒ¡."
+
+#: src/free.c:341
+#, c-format
+msgid "seconds argument `%s' is not positive number"
+msgstr "მეáƒáƒ áƒ” áƒáƒ áƒ’უმენტი '%s' დáƒáƒ“ებითი რიცხვი áƒáƒ áƒáƒ"
+
+#: src/free.c:347
+msgid "failed to parse count argument"
+msgstr "რáƒáƒáƒ“ენáƒáƒ‘ის áƒáƒ áƒ’უმენტის დáƒáƒ›áƒ£áƒ¨áƒáƒ•áƒ”ბის შეცდáƒáƒ›áƒ"
+
+#: src/free.c:350
+#, c-format
+msgid "failed to parse count argument: '%s'"
+msgstr "რáƒáƒáƒ“ენáƒáƒ‘ის áƒáƒ áƒ’უმენტის დáƒáƒ›áƒ£áƒ¨áƒáƒ•áƒ”ბის შეცდáƒáƒ›áƒ: \"%s\""
+
+#: src/free.c:370
+msgid "Memory information file /proc/meminfo does not exist"
+msgstr "მეხსიერების ინფáƒáƒ áƒ›áƒáƒªáƒ˜áƒ¡ ფáƒáƒ˜áƒšáƒ˜ /proc/meminfo áƒáƒ  áƒáƒ áƒ¡áƒ”ბáƒáƒ‘ს"
+
+#: src/free.c:373 src/vmstat.c:378 src/vmstat.c:872
+msgid "Unable to create meminfo structure"
+msgstr "შეცდáƒáƒ›áƒ meminfo-ის სტრუქტურის შექმნისáƒáƒ¡"
+
+#. Translation Hint: These are shortened column headers
+#. * that are all 7 characters long. Use spaces and right
+#. * align if the translation is shorter.
+#.
+#: src/free.c:381
+msgid "SwapUse"
+msgstr "სვáƒáƒžáƒ˜áƒ¡áƒ’áƒáƒ›áƒáƒ§"
+
+#: src/free.c:382
+msgid "CachUse"
+msgstr "კეშისგáƒáƒ›áƒáƒ§"
+
+#: src/free.c:384
+msgid " MemUse"
+msgstr " მეხსგáƒáƒ›áƒáƒ§"
+
+#: src/free.c:385
+msgid "MemFree"
+msgstr "მეხსთáƒáƒ•áƒ˜áƒ¡"
+
+#: src/free.c:395
+#, c-format
+msgid ""
+" total used free shared buffers "
+"cache available"
+msgstr ""
+" სულl გáƒáƒ›áƒáƒ§áƒ”ნებული თáƒáƒ•áƒ˜áƒ¡áƒ£áƒ¤áƒáƒšáƒ˜ "
+"გáƒáƒ–იáƒáƒ áƒ”ბული ბუფერი ქეში ხელმისáƒáƒ¬áƒ•áƒ“áƒáƒ›áƒ˜"
+
+#: src/free.c:397
+#, c-format
+msgid ""
+" total used free shared buff/cache "
+"available"
+msgstr ""
+" სულl გáƒáƒ›áƒáƒ§ თáƒáƒ•áƒ˜áƒ¡ გáƒáƒ–იáƒáƒ  ბუფ/ქეში "
+"ხელმისáƒáƒ¬áƒ•áƒ“áƒáƒ›áƒ˜"
+
+#: src/free.c:400
+msgid "Mem:"
+msgstr "მეხს:"
+
+#: src/free.c:423
+msgid "Low:"
+msgstr "დáƒáƒ‘áƒáƒšáƒ˜:"
+
+#: src/free.c:429
+msgid "High:"
+msgstr "მáƒáƒ¦áƒáƒšáƒ˜:"
+
+#: src/free.c:436
+msgid "Swap:"
+msgstr "სვáƒáƒžáƒ˜:"
+
+#: src/free.c:443
+msgid "Total:"
+msgstr "ჯáƒáƒ›áƒ˜:"
+
+#: src/free.c:456
+msgid "Comm:"
+msgstr "ბრძáƒáƒœáƒ”ბáƒ:"
+
+#: src/kill.c:40
+#, c-format
+msgid " %s [options] <pid> [...]\n"
+msgstr " %s [options] <pid> [...]\n"
+
+#: src/kill.c:42
+msgid " <pid> [...] send signal to every <pid> listed\n"
+msgstr ""
+" <pid> [...] სიგნáƒáƒšáƒ˜áƒ¡ ყველრჩáƒáƒ›áƒáƒ—ვლილი <pid>-სთვის გáƒáƒ’ზáƒáƒ•áƒœáƒ\n"
+
+#: src/kill.c:43
+msgid ""
+" -<signal>, -s, --signal <signal>\n"
+" specify the <signal> to be sent\n"
+msgstr ""
+" -<signal>, -s, --signal <signal>\n"
+" მიუთითეთ გáƒáƒ¡áƒáƒ’ზáƒáƒ•áƒœáƒ˜ <signal>\n"
+
+#: src/kill.c:45
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr " -q, --queue <value> სიგნáƒáƒšáƒ—áƒáƒœ ერთáƒáƒ“ გáƒáƒ¡áƒáƒ’ზáƒáƒ•áƒœáƒ˜ მთელი რიცხვი\n"
+
+#: src/kill.c:46
+msgid ""
+" -l, --list=[<signal>] list all signal names, or convert one to a name\n"
+msgstr ""
+" -l, --list=[<signal>] ყველრსიგნáƒáƒšáƒ˜áƒ¡ სიის გáƒáƒ›áƒáƒ¢áƒáƒœáƒ áƒáƒœ სáƒáƒ®áƒ”ლში გáƒáƒ“áƒáƒ§áƒ•áƒáƒœáƒ\n"
+
+#: src/kill.c:47
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr " -L, --table სიგნáƒáƒšáƒ˜áƒ¡ სáƒáƒ®áƒ”ლების ცხრილის სáƒáƒ®áƒ˜áƒ— გáƒáƒ›áƒáƒ¢áƒáƒœáƒ\n"
+
+#: src/kill.c:112
+#, c-format
+msgid "unknown signal name %s"
+msgstr "უცნáƒáƒ‘ი სიგნáƒáƒšáƒ˜áƒ¡ სáƒáƒ®áƒ”ლი: %s"
+
+#: src/kill.c:131
+msgid "must be an integer value to be passed with the signal."
+msgstr ""
+"სიგნáƒáƒšáƒ—áƒáƒœ ერთáƒáƒ“ გáƒáƒ“áƒáƒ¡áƒáƒªáƒ”მáƒáƒ“ დáƒáƒ“ებით მთელი რიცხვის მქáƒáƒœáƒ” მნიშვნელáƒáƒ‘áƒáƒ¡ უნდრ"
+"წáƒáƒ áƒ›áƒáƒáƒ“გენდეს."
+
+#: src/kill.c:136
+#, c-format
+msgid "invalid argument %c"
+msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ áƒáƒ áƒ’უმენტი %c"
+
+#: src/kill.c:146 src/pgrep.c:792 src/pidof.c:250 src/pidof.c:290
+#: src/sysctl.c:867
+msgid "internal error"
+msgstr "შიდრშეცდáƒáƒ›áƒ"
+
+#: src/kill.c:158 src/pmap.c:771 src/pmap.c:786 src/skill.c:381 src/skill.c:465
+#: src/tload.c:135 src/tload.c:140 src/vmstat.c:1047 src/vmstat.c:1057
+#: src/watch.c:891 src/watch.c:906
+msgid "failed to parse argument"
+msgstr "áƒáƒ áƒ’უმენტის დáƒáƒ›áƒ£áƒ¨áƒáƒ•áƒ”ბის შეცდáƒáƒ›áƒ"
+
+#: src/pgrep.c:92 src/pidof.c:40 src/skill.c:74
+msgid "integer overflow"
+msgstr "მთელი რიცხვის მáƒáƒ¥áƒ¡áƒ˜áƒ›áƒáƒšáƒ£áƒ áƒ˜ მნიშვნელáƒáƒ‘ის გáƒáƒ“áƒáƒªáƒ˜áƒšáƒ”ბáƒ"
+
+#: src/pgrep.c:155
+#, c-format
+msgid " %s [options] <pattern>\n"
+msgstr " %s [options] <pattern>\n"
+
+#: src/pgrep.c:159
+msgid " -d, --delimiter <string> specify output delimiter\n"
+msgstr " -d, --delimiter <string> გáƒáƒ›áƒáƒ¢áƒáƒœáƒ˜áƒ¡ გáƒáƒ›áƒ§áƒáƒ¤áƒ˜áƒ¡ მითითებáƒ\n"
+
+#: src/pgrep.c:160
+msgid " -l, --list-name list PID and process name\n"
+msgstr " -l, --list-name PID-ების დრპრáƒáƒªáƒ”სის სáƒáƒ®áƒ”ლების სიáƒ\n"
+
+#: src/pgrep.c:161
+msgid " -a, --list-full list PID and full command line\n"
+msgstr ""
+" -a, --list-full PID-ის დრსრული ბრძáƒáƒœáƒ”ბის სტრიქáƒáƒœáƒ˜áƒ¡ ჩვენებáƒ\n"
+
+#: src/pgrep.c:162
+msgid " -v, --inverse negates the matching\n"
+msgstr " -v, --inverse დáƒáƒ›áƒ—ხვევის შებრუნებáƒ\n"
+
+#: src/pgrep.c:163
+msgid " -w, --lightweight list all TID\n"
+msgstr " -w, --lightweight ყველრTID-ის ჩáƒáƒ›áƒáƒœáƒáƒ—ვáƒáƒšáƒ˜\n"
+
+#: src/pgrep.c:166
+msgid " -<sig> signal to send (either number or name)\n"
+msgstr " -<სიგ> გáƒáƒ¡áƒáƒ’ზáƒáƒ•áƒœáƒ˜ სიგნáƒáƒšáƒ˜ (რიცხვი áƒáƒœ სáƒáƒ®áƒ”ლი)\n"
+
+#: src/pgrep.c:167
+msgid " -H, --require-handler match only if signal handler is present\n"
+msgstr ""
+" -H, --require-handler დáƒáƒ›áƒ—ხვევრმხáƒáƒšáƒáƒ“ მáƒáƒ¨áƒ˜áƒœ, თუ სიგნáƒáƒšáƒ˜áƒ¡ დáƒáƒ›áƒ›áƒ£áƒ¨áƒáƒ•áƒ”ბელი "
+"ხელმისáƒáƒ¬áƒ•áƒ“áƒáƒ›áƒ˜áƒ\n"
+
+#: src/pgrep.c:168
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr " -q, --queue <value> სიგნáƒáƒšáƒ—áƒáƒœ ერთáƒáƒ“ გáƒáƒ¡áƒáƒ’ზáƒáƒ•áƒœáƒ˜ მთელი რიცხვი\n"
+
+#: src/pgrep.c:169
+msgid " -e, --echo display what is killed\n"
+msgstr " -e, --echo მáƒáƒ™áƒšáƒ£áƒšáƒ˜ პრáƒáƒªáƒ”სების სიის ჩვენებáƒ\n"
+
+#: src/pgrep.c:173
+msgid " -e, --echo display PIDs before waiting\n"
+msgstr " -e, --echo PID-ების მáƒáƒªáƒ“áƒáƒ›áƒ“ე ჩვენებáƒ\n"
+
+#: src/pgrep.c:177
+msgid " -c, --count count of matching processes\n"
+msgstr " -c, --count დáƒáƒ›áƒ—ხვეული პრáƒáƒªáƒ”სების რáƒáƒáƒ“ენáƒáƒ‘áƒ\n"
+
+#: src/pgrep.c:178
+msgid " -f, --full use full process name to match\n"
+msgstr ""
+" -f, --full დáƒáƒ¡áƒáƒ›áƒ—ხვევáƒáƒ“ სრული პრáƒáƒªáƒ”სის სáƒáƒ®áƒ”ლის გáƒáƒ›áƒáƒ§áƒ”ნებáƒ\n"
+
+#: src/pgrep.c:179
+msgid " -g, --pgroup <PGID,...> match listed process group IDs\n"
+msgstr ""
+" -g, --pgroup <PGID,...> ჩáƒáƒ›áƒáƒ—ვლილი პრáƒáƒªáƒ”სის ჯგუფის ID-ების დáƒáƒ›áƒ—ხვევáƒ\n"
+
+#: src/pgrep.c:180
+msgid " -G, --group <GID,...> match real group IDs\n"
+msgstr " -G, --group <GID,...> რეáƒáƒšáƒ£áƒ áƒ˜ ჯგუფის ID-ების დáƒáƒ›áƒ—ხვევáƒ\n"
+
+#: src/pgrep.c:181
+msgid " -i, --ignore-case match case insensitively\n"
+msgstr ""
+" -i, --ignore-case დáƒáƒ›áƒ—ხვევრრეგისტრისთვის ყურáƒáƒ“ღების მიქცევის "
+"გáƒáƒ áƒ”შე\n"
+
+#: src/pgrep.c:182
+msgid " -n, --newest select most recently started\n"
+msgstr ""
+
+#: src/pgrep.c:183
+msgid " -o, --oldest select least recently started\n"
+msgstr ""
+
+#: src/pgrep.c:184
+msgid " -O, --older <seconds> select where older than seconds\n"
+msgstr ""
+
+#: src/pgrep.c:185
+msgid ""
+" -P, --parent <PPID,...> match only child processes of the given parent\n"
+msgstr ""
+
+#: src/pgrep.c:186
+msgid " -s, --session <SID,...> match session IDs\n"
+msgstr ""
+
+#: src/pgrep.c:187
+msgid " --signal <sig> signal to send (either number or name)\n"
+msgstr ""
+
+#: src/pgrep.c:188
+msgid " -t, --terminal <tty,...> match by controlling terminal\n"
+msgstr ""
+
+#: src/pgrep.c:189
+msgid " -u, --euid <ID,...> match by effective IDs\n"
+msgstr " -u, --euid <ID,...> ეფექტური ID-ებით დáƒáƒ›áƒ—ხვევáƒ\n"
+
+#: src/pgrep.c:190
+msgid " -U, --uid <ID,...> match by real IDs\n"
+msgstr " -U, --uid <ID,...> რეáƒáƒšáƒ£áƒ áƒ˜ ID-ებით დáƒáƒ›áƒ—ხვევáƒ\n"
+
+#: src/pgrep.c:191
+msgid " -x, --exact match exactly with the command name\n"
+msgstr ""
+
+#: src/pgrep.c:192
+msgid " -F, --pidfile <file> read PIDs from file\n"
+msgstr ""
+
+#: src/pgrep.c:193
+msgid " -L, --logpidfile fail if PID file is not locked\n"
+msgstr ""
+
+#: src/pgrep.c:194
+msgid " -r, --runstates <state> match runstates [D,S,Z,...]\n"
+msgstr ""
+
+#: src/pgrep.c:195
+msgid " -A, --ignore-ancestors exclude our ancestors from results\n"
+msgstr ""
+
+#: src/pgrep.c:196
+msgid " --cgroup <grp,...> match by cgroup v2 names\n"
+msgstr ""
+
+#: src/pgrep.c:197
+msgid ""
+" --ns <PID> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+
+#: src/pgrep.c:199
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option.\n"
+" Available namespaces: ipc, mnt, net, pid, user, "
+"uts\n"
+msgstr ""
+
+#: src/pgrep.c:224 src/pgrep.c:700 src/w.c:455
+msgid "Unable to create pid info structure"
+msgstr "Pid-ის ინფáƒáƒ áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ სტრუქტურის შექმნის შეცდáƒáƒ›áƒ"
+
+#: src/pgrep.c:388
+#, c-format
+msgid "invalid user name: %s"
+msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის სáƒáƒ®áƒ”ლი: %s"
+
+#: src/pgrep.c:405
+#, c-format
+msgid "invalid group name: %s"
+msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ ჯგუფის სáƒáƒ®áƒ”ლი: %s"
+
+#: src/pgrep.c:416
+#, c-format
+msgid "invalid process group: %s"
+msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ პრáƒáƒªáƒ”სის ჯგუფი: %s"
+
+#: src/pgrep.c:428
+#, c-format
+msgid "invalid session id: %s"
+msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ სესიის id: %s"
+
+#: src/pgrep.c:440
+#, c-format
+msgid "not a number: %s"
+msgstr "რიცხვი áƒáƒ áƒáƒ: %s"
+
+#: src/pgrep.c:490
+#, c-format
+msgid "not a hex string: %s"
+msgstr "ტექსვსმ. სტრიქáƒáƒœáƒ˜ áƒáƒ áƒáƒ: %s"
+
+#: src/pgrep.c:525 src/skill.c:162
+msgid "Unable to read process namespace information"
+msgstr "პრáƒáƒªáƒ”სის სáƒáƒ®áƒ”ლების სივრცის ინფáƒáƒ áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ წáƒáƒ™áƒ˜áƒ—ხვრშეუძლებელიáƒ"
+
+#: src/pgrep.c:612
+#, c-format
+msgid "regex error: %s"
+msgstr "რეგექსის შეცდáƒáƒ›áƒ: %s"
+
+#: src/pgrep.c:695
+msgid "Error reading reference namespace information\n"
+msgstr "მიმáƒáƒ áƒ—ვის სáƒáƒ®áƒ”ლების სივრცის ინფáƒáƒ áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ წáƒáƒ™áƒ˜áƒ—ხვის შეცდáƒáƒ›áƒ\n"
+
+#: src/pgrep.c:809
+#, c-format
+msgid ""
+"pattern that searches for process name longer than 15 characters will result "
+"in zero matches\n"
+"Try `%s -f' option to match against the complete command line."
+msgstr ""
+
+#: src/pgrep.c:924
+#, c-format
+msgid "Unknown signal \"%s\"."
+msgstr "უცნáƒáƒ‘ი სიგნáƒáƒšáƒ˜ \"%s\"."
+
+#: src/pgrep.c:1090
+#, c-format
+msgid ""
+"-L without -F makes no sense\n"
+"Try `%s --help' for more information."
+msgstr ""
+
+#: src/pgrep.c:1097
+#, c-format
+msgid ""
+"pidfile not valid\n"
+"Try `%s --help' for more information."
+msgstr ""
+
+#: src/pgrep.c:1106
+#, c-format
+msgid ""
+"only one pattern can be provided\n"
+"Try `%s --help' for more information."
+msgstr ""
+
+#: src/pgrep.c:1110
+#, c-format
+msgid ""
+"no matching criteria specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+
+#: src/pgrep.c:1162
+#, c-format
+msgid "%s killed (pid %lu)\n"
+msgstr "%s მáƒáƒ™áƒ•áƒ“რ(pid %lu)\n"
+
+#: src/pgrep.c:1169
+#, c-format
+msgid "killing pid %ld failed"
+msgstr "pid %ld -ის მáƒáƒ™áƒ•áƒšáƒ˜áƒ¡ შეცდáƒáƒ›áƒ"
+
+#: src/pgrep.c:1181
+#, c-format
+msgid "waiting for %s (pid %lu)\n"
+msgstr "%s (pid %lu)-ის მáƒáƒšáƒáƒ“ინი\n"
+
+#: src/pgrep.c:1185
+msgid "pidfd_open() not implemented in Linux < 5.3"
+msgstr ""
+
+#: src/pgrep.c:1188
+#, c-format
+msgid "opening pid %ld failed"
+msgstr "pid %ld -ის გáƒáƒ®áƒ¡áƒœáƒ˜áƒ¡ შეცდáƒáƒ›áƒ"
+
+#: src/pgrep.c:1202
+msgid "epoll_wait failed"
+msgstr "epoll_wait -ის შეცდáƒáƒ›áƒ"
+
+#: src/pidof.c:75
+#, c-format
+msgid " %s [options] [program [...]]\n"
+msgstr " %s [options] [program [...]]\n"
+
+#: src/pidof.c:77
+msgid " -s, --single-shot return one PID only\n"
+msgstr ""
+
+#: src/pidof.c:78
+msgid " -c, --check-root omit processes with different root\n"
+msgstr ""
+
+#: src/pidof.c:79
+msgid " -q, quiet mode, only set the exit code\n"
+msgstr ""
+
+#: src/pidof.c:80
+msgid " -w, --with-workers show kernel workers too\n"
+msgstr ""
+
+#: src/pidof.c:81
+msgid " -x also find shells running the named scripts\n"
+msgstr ""
+
+#: src/pidof.c:82
+msgid " -o, --omit-pid <PID,...> omit processes with PID\n"
+msgstr ""
+
+#: src/pidof.c:83
+msgid " -t, --lightweight list threads too\n"
+msgstr " -t, --lightweight áƒáƒ¡áƒ”ვე ნáƒáƒ©áƒ•áƒ”ნები იქნებრნáƒáƒ™áƒáƒ“ებიც\n"
+
+#: src/pidof.c:84
+msgid " -S, --separator SEP use SEP as separator put between PIDs"
+msgstr ""
+
+#: src/pidof.c:293
+#, c-format
+msgid "illegal omit pid value (%s)!\n"
+msgstr ""
+
+#: src/pmap.c:72
+msgid "Address"
+msgstr "მისáƒáƒ›áƒáƒ áƒ—ი"
+
+#: src/pmap.c:73
+msgid "Offset"
+msgstr "გáƒáƒ“áƒáƒ¬áƒ”ვáƒ"
+
+#: src/pmap.c:74
+msgid "Device"
+msgstr "მáƒáƒ¬áƒ§áƒáƒ‘ილáƒáƒ‘áƒ"
+
+#: src/pmap.c:75
+msgid "Mapping"
+msgstr "მიბმáƒ"
+
+#: src/pmap.c:79
+msgid "Perm"
+msgstr "პერმი"
+
+#: src/pmap.c:80
+msgid "Inode"
+msgstr "Inode"
+
+#: src/pmap.c:83
+msgid "Kbytes"
+msgstr "კბáƒáƒ˜áƒ¢áƒ˜"
+
+#: src/pmap.c:84
+msgid "Mode"
+msgstr "რეჟიმი"
+
+#. Translation Hint: With the next 5 fields, notice how an extra space
+#. has been added ahead of one 'KiB' so that they all
+#. align. You need not preserve such alignment.
+#. Translation Hint: maximum 'RSS' = 6
+#: src/pmap.c:85 src/top/top_nls.c:337
+msgid "RSS"
+msgstr "RSS"
+
+#: src/pmap.c:86
+msgid "Dirty"
+msgstr "ბინძური"
+
+#: src/pmap.c:120
+#, c-format
+msgid " %s [options] PID [PID ...]\n"
+msgstr " %s [options] PID [PID ...]\n"
+
+#: src/pmap.c:122
+msgid " -x, --extended show details\n"
+msgstr " -x, --extended დეტáƒáƒšáƒ”ბის ჩვენებáƒ\n"
+
+#: src/pmap.c:123
+msgid " -X show even more details\n"
+msgstr " -X კიდევ უფრრმეტი დეტáƒáƒšáƒ˜áƒ¡ ჩვენებáƒ\n"
+
+#: src/pmap.c:124
+msgid " WARNING: format changes according to /proc/PID/smaps\n"
+msgstr ""
+
+#: src/pmap.c:125
+msgid " -XX show everything the kernel provides\n"
+msgstr ""
+
+#: src/pmap.c:126
+msgid " -c, --read-rc read the default rc\n"
+msgstr " -c, --read-rc ნáƒáƒ’ულისხმები rc-ის წáƒáƒ™áƒ˜áƒ—ხვáƒ\n"
+
+#: src/pmap.c:127
+msgid " -C, --read-rc-from=<file> read the rc from file\n"
+msgstr ""
+
+#: src/pmap.c:128
+msgid " -n, --create-rc create new default rc\n"
+msgstr ""
+
+#: src/pmap.c:129
+msgid " -N, --create-rc-to=<file> create new rc to file\n"
+msgstr ""
+
+#: src/pmap.c:130
+msgid " NOTE: pid arguments are not allowed with -n, -N\n"
+msgstr ""
+
+#: src/pmap.c:131
+msgid " -d, --device show the device format\n"
+msgstr " -d, --device მáƒáƒ¬áƒ§áƒáƒ‘ილáƒáƒ‘ის ფáƒáƒ áƒ›áƒáƒ¢áƒ˜áƒ¡ ჩვენებáƒ\n"
+
+#: src/pmap.c:132
+msgid " -q, --quiet do not display header and footer\n"
+msgstr ""
+" -q, --quiet თáƒáƒ•áƒ¡áƒáƒ áƒ—ი დრქვემრკáƒáƒšáƒáƒœáƒ¢áƒ˜áƒ¢áƒ£áƒšáƒ˜ ნáƒáƒ©áƒ•áƒ”ნები áƒáƒ  "
+"იქნებáƒ\n"
+
+#: src/pmap.c:133
+msgid " -p, --show-path show path in the mapping\n"
+msgstr ""
+
+#: src/pmap.c:134
+msgid " -A, --range=<low>[,<high>] limit results to the given range\n"
+msgstr ""
+
+#: src/pmap.c:215
+msgid "shared memory detach"
+msgstr "გáƒáƒ–იáƒáƒ áƒ”ბული მეხსიერების მáƒáƒ®áƒ¡áƒœáƒ"
+
+#: src/pmap.c:220
+msgid "shared memory remove"
+msgstr "გáƒáƒ–იáƒáƒ áƒ”ბული მეხსიერების წáƒáƒ¨áƒšáƒ"
+
+#: src/pmap.c:245
+msgid " [ anon ]"
+msgstr " [ áƒáƒœáƒáƒœ ]"
+
+#: src/pmap.c:248
+msgid " [ stack ]"
+msgstr " [ სტეკი ]"
+
+#: src/pmap.c:334 src/pmap.c:340
+msgid "Unknown format in smaps file!"
+msgstr ""
+
+#: src/pmap.c:365
+msgid "ERROR: memory allocation failed"
+msgstr "მეხსიერების გáƒáƒ›áƒáƒ§áƒáƒ¤áƒ˜áƒ¡ შეცდáƒáƒ›áƒ"
+
+#: src/pmap.c:382
+msgid "inconsistent detail field in smaps file, line:\n"
+msgstr ""
+
+#: src/pmap.c:731
+msgid "total kB"
+msgstr "სულ კბ"
+
+#: src/pmap.c:742
+#, c-format
+msgid "mapped: %ldK writeable/private: %ldK shared: %ldK\n"
+msgstr ""
+
+#. Translation Hint: keep total string length
+#. * as 24 characters. Adjust %16 if needed
+#: src/pmap.c:751
+#, c-format
+msgid " total %16ldK\n"
+msgstr " სულ %16ldკ\n"
+
+#. Translation Hint: keep total string length
+#. * as 16 characters. Adjust %8 if needed
+#: src/pmap.c:757
+#, c-format
+msgid " total %8ldK\n"
+msgstr " სულ %8ldკ\n"
+
+#: src/pmap.c:832
+#, c-format
+msgid "config line too long - line %d"
+msgstr "კáƒáƒœáƒ¤áƒ˜áƒ’ურáƒáƒªáƒ˜áƒ˜áƒ¡ ხáƒáƒ–ი ძáƒáƒšáƒ˜áƒáƒœ გრძელირ- ხáƒáƒ–ი: %d"
+
+#: src/pmap.c:857
+#, c-format
+msgid "unsupported section found in the config - line %d"
+msgstr ""
+
+#: src/pmap.c:860 src/pmap.c:871 src/pmap.c:882 src/pmap.c:905 src/pmap.c:917
+#, c-format
+msgid "syntax error found in the config - line %d"
+msgstr ""
+
+#: src/pmap.c:887 src/pmap.c:1010
+msgid "memory allocation failed"
+msgstr "მეხსიერების გáƒáƒ›áƒáƒ§áƒáƒ¤áƒ˜áƒ¡ შეცდáƒáƒ›áƒ"
+
+#: src/pmap.c:939
+msgid "the file already exists - delete or rename it first"
+msgstr ""
+
+#: src/pmap.c:1002
+msgid "HOME variable undefined"
+msgstr "გáƒáƒ áƒ”მáƒáƒ¡ ცვლáƒáƒ“ი HOME áƒáƒ¦áƒ¬áƒ”რილი áƒáƒ áƒáƒ"
+
+#: src/pmap.c:1061
+msgid "option -r is ignored as SunOS compatibility"
+msgstr ""
+
+#: src/pmap.c:1108
+msgid "options -c, -C, -d, -n, -N, -x, -X are mutually exclusive"
+msgstr "პáƒáƒ áƒáƒ›áƒ”ტრები -c, -C, -d, -n, -N, -x, -X ურთიერთგáƒáƒ›áƒáƒ›áƒ áƒ˜áƒªáƒ®áƒáƒ•áƒ˜áƒ"
+
+#: src/pmap.c:1111
+msgid "options -p, -q are mutually exclusive with -n, -N"
+msgstr ""
+
+#: src/pmap.c:1114 src/pmap.c:1163
+msgid "too many arguments"
+msgstr "მეტისმეტáƒáƒ“ ბევრი áƒáƒ áƒ’უმენტი"
+
+#: src/pmap.c:1118
+msgid "rc file successfully created, feel free to edit the content"
+msgstr ""
+
+#: src/pmap.c:1121
+msgid "couldn't create the rc file"
+msgstr "rc ფáƒáƒ˜áƒšáƒ˜áƒ¡ შექმნრშეუძლებელიáƒ"
+
+#: src/pmap.c:1133
+#, c-format
+msgid "~/.%src file successfully created, feel free to edit the content"
+msgstr ""
+
+#: src/pmap.c:1136
+#, c-format
+msgid "couldn't create ~/.%src"
+msgstr "~/.%src-ის შექმნის შეცდáƒáƒ›áƒ"
+
+#: src/pmap.c:1141
+msgid "argument missing"
+msgstr "ნáƒáƒ™áƒšáƒ£áƒšáƒ˜ áƒáƒ áƒ’უმენტი"
+
+#: src/pmap.c:1154
+msgid "couldn't read the rc file"
+msgstr "rc ფáƒáƒ˜áƒšáƒ˜áƒ¡ წáƒáƒ™áƒ˜áƒ—ხვის შეცდáƒáƒ›áƒ"
+
+#: src/pmap.c:1156
+#, c-format
+msgid "couldn't read ~/.%src"
+msgstr "~/.%src-ის წáƒáƒ™áƒ˜áƒ—ხვის შეცდáƒáƒ›áƒ"
+
+#: src/pmap.c:1165 src/pmap.c:1190
+msgid "library failed pids statistics"
+msgstr ""
+
+#: src/ps/display.c:61
+#, c-format
+msgid "Signal %d (%s) caught by %s (%s).\n"
+msgstr ""
+
+#: src/ps/display.c:75 src/ps/display.c:252 src/ps/display.c:407
+#: src/ps/output.c:2359 src/ps/parser.c:509 src/ps/parser.c:756
+#: src/ps/select.c:95 src/ps/sortformat.c:263 src/ps/sortformat.c:301
+#: src/ps/sortformat.c:549
+msgid "please report this bug"
+msgstr "გთხáƒáƒ•áƒ— გáƒáƒ“áƒáƒáƒ’ზáƒáƒ•áƒœáƒáƒ— áƒáƒœáƒ’áƒáƒ áƒ˜áƒ¨áƒ˜ áƒáƒ› შეცდáƒáƒ›áƒ˜áƒ¡ შესáƒáƒ®áƒ”ბ"
+
+#: src/ps/display.c:315 src/ps/display.c:484
+#, c-format
+msgid "fatal library error, reap\n"
+msgstr "ბიბლიáƒáƒ—ეკის ფáƒáƒ¢áƒáƒšáƒ£áƒ áƒ˜ შეცდáƒáƒ›áƒ, reap\n"
+
+#: src/ps/display.c:365
+#, c-format
+msgid "could not find ppid\n"
+msgstr "ppid-ის პáƒáƒ•áƒœáƒ˜áƒ¡ შეცდáƒáƒ›áƒ\n"
+
+#: src/ps/display.c:375
+#, c-format
+msgid "could not find start_time\n"
+msgstr "start_time-ის პáƒáƒ•áƒœáƒ˜áƒ¡ შეცდáƒáƒ›áƒ\n"
+
+#: src/ps/global.c:287
+#, c-format
+msgid "your %dx%d screen size is bogus. expect trouble\n"
+msgstr ""
+
+#: src/ps/global.c:360 src/ps/global.c:372
+msgid "environment specified an unknown personality"
+msgstr ""
+
+#: src/ps/global.c:364
+#, c-format
+msgid "cannot strdup() personality text\n"
+msgstr ""
+
+#: src/ps/global.c:495
+#, c-format
+msgid "fatal library error, context\n"
+msgstr "ფáƒáƒ¢áƒáƒšáƒ£áƒ áƒ˜ ბიბლიáƒáƒ—ეკის შეცდáƒáƒ›áƒ, კáƒáƒœáƒ¢áƒ”ქსტი\n"
+
+#: src/ps/global.c:503
+#, c-format
+msgid "fatal library error, lookup self\n"
+msgstr "ფáƒáƒ¢áƒáƒšáƒ£áƒ áƒ˜ ბიბლიáƒáƒ—ეკის შეცდáƒáƒ›áƒ, სáƒáƒ™áƒ£áƒ—áƒáƒ áƒ˜ თáƒáƒ•áƒ˜áƒ¡ ძებნáƒ\n"
+
+#. Translation Note:
+#. . The following translatable word will be used to recognize the
+#. . user's request for help text. In other words, the translation
+#. . you provide will alter program behavior.
+#. .
+#. . It must be limited to 15 characters or less.
+#.
+#: src/ps/global.c:542
+msgid "help"
+msgstr "დáƒáƒ®áƒ›áƒáƒ áƒ”ბáƒ"
+
+#. Translation Notes for ps Help #1 ---------------------------------
+#. . This next group of lines represents 6 pairs of words + abbreviations
+#. . which are the basis of the 'ps' program help text.
+#. .
+#. . The words and abbreviations you provide will alter program behavior.
+#. . They will also appear in the help usage summary associated with the
+#. . "Notes for ps Help #2" below.
+#. .
+#. . In their English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . When translating these 6 pairs you may choose any appropriate
+#. . language equivalents and the only requirement is the abbreviated
+#. . representations must be unique.
+#. .
+#. . By default, those abbreviations are single characters. However,
+#. . they are not limited to only one character after translation.
+#. .
+#. Translation Hint, Pair #1
+#: src/ps/help.c:67
+msgid "simple"
+msgstr "მáƒáƒ áƒ¢áƒ˜áƒ•áƒ˜"
+
+#: src/ps/help.c:67
+msgid "s"
+msgstr "s"
+
+#. Translation Hint, Pair #2
+#: src/ps/help.c:69
+msgid "list"
+msgstr "სიáƒ"
+
+#: src/ps/help.c:69
+msgid "l"
+msgstr "l"
+
+#. Translation Hint, Pair #3
+#: src/ps/help.c:71
+msgid "output"
+msgstr "გáƒáƒ›áƒáƒ¢áƒáƒœáƒ"
+
+#: src/ps/help.c:71
+msgid "o"
+msgstr "o"
+
+#. Translation Hint, Pair #4
+#: src/ps/help.c:73
+msgid "threads"
+msgstr "ნáƒáƒ™áƒáƒ“ები"
+
+#: src/ps/help.c:73
+msgid "t"
+msgstr "t"
+
+#. Translation Hint, Pair #5
+#: src/ps/help.c:75
+msgid "misc"
+msgstr "სხვ"
+
+#: src/ps/help.c:75
+msgid "m"
+msgstr "მილი"
+
+#. Translation Hint, Pair #6
+#: src/ps/help.c:77
+msgid "all"
+msgstr "ყველáƒ"
+
+#: src/ps/help.c:77
+msgid "a"
+msgstr "a"
+
+#: src/ps/help.c:98
+#, c-format
+msgid ""
+"\n"
+"Usage:\n"
+" %s [options]\n"
+msgstr ""
+"\n"
+"გáƒáƒ›áƒáƒ§áƒ”ნებáƒ:\n"
+" %s [პáƒáƒ áƒáƒ›áƒ”ტრები]\n"
+
+#: src/ps/help.c:103
+msgid ""
+"\n"
+"Basic options:\n"
+msgstr ""
+"\n"
+"ძირითáƒáƒ“ი პáƒáƒ áƒáƒ›áƒ”ტრები:\n"
+
+#: src/ps/help.c:104
+msgid " -A, -e all processes\n"
+msgstr " -A, -e ყველრპრáƒáƒªáƒ”სი\n"
+
+#: src/ps/help.c:105
+msgid " -a all with tty, except session leaders\n"
+msgstr ""
+
+#: src/ps/help.c:106
+msgid " a all with tty, including other users\n"
+msgstr ""
+
+#: src/ps/help.c:107
+msgid " -d all except session leaders\n"
+msgstr ""
+
+#: src/ps/help.c:108
+msgid " -N, --deselect negate selection\n"
+msgstr " -N, --deselect მáƒáƒœáƒ˜áƒ¨áƒœáƒ£áƒšáƒ˜áƒ¡ შებრუნებáƒ\n"
+
+#: src/ps/help.c:109
+msgid " r only running processes\n"
+msgstr " r მხáƒáƒšáƒáƒ“ გáƒáƒ¨áƒ•áƒ”ბული პრáƒáƒªáƒ”სები\n"
+
+#: src/ps/help.c:110
+msgid " T all processes on this terminal\n"
+msgstr " T მხáƒáƒšáƒáƒ“ áƒáƒ› ტერმინáƒáƒšáƒ˜áƒ¡ პრáƒáƒªáƒ”სები\n"
+
+#: src/ps/help.c:111
+msgid " x processes without controlling ttys\n"
+msgstr ""
+
+#: src/ps/help.c:114
+msgid ""
+"\n"
+"Selection by list:\n"
+msgstr ""
+"\n"
+"სიის მიხედვით áƒáƒ áƒ©áƒ”ვáƒ:\n"
+
+#: src/ps/help.c:115
+msgid " -C <command> command name\n"
+msgstr " -C <command> ბრძáƒáƒœáƒ”ბის სáƒáƒ®áƒ”ლი\n"
+
+#: src/ps/help.c:116
+msgid " -G, --Group <GID> real group id or name\n"
+msgstr " -G, --Group <GID> რეáƒáƒšáƒ£áƒ áƒ˜ ჯგუფის id áƒáƒœ სáƒáƒ®áƒ”ლი\n"
+
+#: src/ps/help.c:117
+msgid " -g, --group <group> session or effective group name\n"
+msgstr " -g, --group <group> სესიის áƒáƒœ ეფექტური ჯგუფის სáƒáƒ®áƒ”ლი\n"
+
+#: src/ps/help.c:118
+msgid " -p, p, --pid <PID> process id\n"
+msgstr " -p, p, --pid <PID> პრáƒáƒªáƒ”სის id\n"
+
+#: src/ps/help.c:119
+msgid " --ppid <PID> parent process id\n"
+msgstr " --ppid <PID> მშáƒáƒ‘ელი პრáƒáƒªáƒ”სის id\n"
+
+#: src/ps/help.c:120
+msgid ""
+" -q, q, --quick-pid <PID>\n"
+" process id (quick mode)\n"
+msgstr ""
+" -q, q, --quick-pid <PID>\n"
+" პრáƒáƒªáƒ”სის id (სწრáƒáƒ¤áƒ˜ რეჟიმი)\n"
+
+#: src/ps/help.c:122
+msgid " -s, --sid <session> session id\n"
+msgstr " -s, --sid <session> სესიის id\n"
+
+#: src/ps/help.c:123
+msgid " -t, t, --tty <tty> terminal\n"
+msgstr " -t, t, --tty <tty> ტერმინáƒáƒšáƒ˜\n"
+
+#: src/ps/help.c:124
+msgid " -u, U, --user <UID> effective user id or name\n"
+msgstr " -u, U, --user <UID> ეფექტური მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის id áƒáƒœ სáƒáƒ®áƒ”ლი\n"
+
+#: src/ps/help.c:125
+msgid " -U, --User <UID> real user id or name\n"
+msgstr " -U, --User <UID> რეáƒáƒšáƒ£áƒ áƒ˜ მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის id áƒáƒœ სáƒáƒ®áƒ”ლი\n"
+
+#: src/ps/help.c:126
+msgid ""
+"\n"
+" The selection options take as their argument either:\n"
+" a comma-separated list e.g. '-u root,nobody' or\n"
+" a blank-separated list e.g. '-p 123 4567'\n"
+msgstr ""
+
+#: src/ps/help.c:132
+msgid ""
+"\n"
+"Output formats:\n"
+msgstr ""
+"\n"
+"გáƒáƒ›áƒáƒ¢áƒáƒœáƒ˜áƒ¡ ფáƒáƒ áƒ›áƒáƒ¢áƒ”ბი:\n"
+
+#: src/ps/help.c:133
+msgid " -D <format> date format for lstart\n"
+msgstr ""
+
+#: src/ps/help.c:134
+msgid " -F extra full\n"
+msgstr " -F დáƒáƒ›áƒáƒ¢áƒ”ბით სრული\n"
+
+#: src/ps/help.c:135
+msgid " -f full-format, including command lines\n"
+msgstr ""
+
+#: src/ps/help.c:136
+msgid " f, --forest ascii art process tree\n"
+msgstr ""
+
+#: src/ps/help.c:137
+msgid " -H show process hierarchy\n"
+msgstr ""
+
+#: src/ps/help.c:138
+msgid " -j jobs format\n"
+msgstr " -j დáƒáƒ•áƒáƒšáƒ”ბის ფáƒáƒ áƒ›áƒáƒ¢áƒ˜\n"
+
+#: src/ps/help.c:139
+msgid " j BSD job control format\n"
+msgstr " j BSD-ის დáƒáƒ•áƒáƒšáƒ”ბის კáƒáƒœáƒ¢áƒ áƒáƒšáƒ˜áƒ¡ ფáƒáƒ áƒ›áƒáƒ¢áƒ˜\n"
+
+#: src/ps/help.c:140
+msgid " -l long format\n"
+msgstr " -l გრძელი ფáƒáƒ áƒ›áƒáƒ¢áƒ˜\n"
+
+#: src/ps/help.c:141
+msgid " l BSD long format\n"
+msgstr " l BSD-ის გრძელი ფáƒáƒ áƒ›áƒáƒ¢áƒ˜\n"
+
+#: src/ps/help.c:142
+msgid " -M, Z add security data (for SELinux)\n"
+msgstr ""
+
+#: src/ps/help.c:143
+msgid " -O <format> preloaded with default columns\n"
+msgstr ""
+
+#: src/ps/help.c:144
+msgid " O <format> as -O, with BSD personality\n"
+msgstr ""
+
+#: src/ps/help.c:145
+msgid ""
+" -o, o, --format <format>\n"
+" user-defined format\n"
+msgstr ""
+
+#: src/ps/help.c:147
+msgid " -P add psr column\n"
+msgstr " -d -h -ის მეტსáƒáƒ®áƒ”ლი\n"
+
+#: src/ps/help.c:148
+msgid " s signal format\n"
+msgstr " s სიგნáƒáƒšáƒ˜áƒ¡ ფáƒáƒ áƒ›áƒáƒ¢áƒ˜\n"
+
+#: src/ps/help.c:149
+msgid " u user-oriented format\n"
+msgstr ""
+
+#: src/ps/help.c:150
+msgid " v virtual memory format\n"
+msgstr " v ვირტუáƒáƒšáƒ£áƒ áƒ˜ მეხსიერების ფáƒáƒ áƒ›áƒáƒ¢áƒ˜\n"
+
+#: src/ps/help.c:151
+msgid " X register format\n"
+msgstr " X ფáƒáƒ áƒ›áƒáƒ¢áƒ˜áƒ¡ რეგისტრáƒáƒªáƒ˜áƒ\n"
+
+#: src/ps/help.c:152
+msgid ""
+" -y do not show flags, show rss vs. addr (used with -l)\n"
+msgstr ""
+
+#: src/ps/help.c:153
+msgid " --context display security context (for SELinux)\n"
+msgstr ""
+
+#: src/ps/help.c:154
+msgid " --headers repeat header lines, one per page\n"
+msgstr ""
+
+#: src/ps/help.c:155
+msgid " --no-headers do not print header at all\n"
+msgstr ""
+
+#: src/ps/help.c:156
+msgid ""
+" --cols, --columns, --width <num>\n"
+" set screen width\n"
+msgstr ""
+
+#: src/ps/help.c:158
+msgid ""
+" --rows, --lines <num>\n"
+" set screen height\n"
+msgstr ""
+
+#: src/ps/help.c:160
+msgid " --signames display signal masks using signal names\n"
+msgstr ""
+" --signames სიგნáƒáƒšáƒ˜áƒ¡ ნიღბების ჩვენებრსიგნáƒáƒšáƒ˜áƒ¡ სáƒáƒ®áƒ”ლების "
+"გáƒáƒ›áƒáƒ§áƒ”ნებით\n"
+
+#: src/ps/help.c:163
+msgid ""
+"\n"
+"Show threads:\n"
+msgstr ""
+"\n"
+"ნáƒáƒ™áƒáƒ“ების ჩვენებáƒ:\n"
+
+#: src/ps/help.c:164
+msgid " H as if they were processes\n"
+msgstr " H რáƒáƒ’áƒáƒ áƒª პრáƒáƒªáƒ”სების\n"
+
+#: src/ps/help.c:165
+msgid " -L possibly with LWP and NLWP columns\n"
+msgstr ""
+
+#: src/ps/help.c:166
+msgid " -m, m after processes\n"
+msgstr " -m, m პრáƒáƒªáƒ”სების შემდეგ\n"
+
+#: src/ps/help.c:167
+msgid " -T possibly with SPID column\n"
+msgstr ""
+
+#: src/ps/help.c:170
+msgid ""
+"\n"
+"Miscellaneous options:\n"
+msgstr ""
+"\n"
+"სხვáƒáƒ“áƒáƒ¡áƒ®áƒ•áƒ პáƒáƒ áƒáƒ›áƒ”ტრები:\n"
+
+#: src/ps/help.c:171
+msgid " -c show scheduling class with -l option\n"
+msgstr ""
+
+#: src/ps/help.c:172
+msgid " c show true command name\n"
+msgstr ""
+
+#: src/ps/help.c:173
+msgid " e show the environment after command\n"
+msgstr ""
+
+#: src/ps/help.c:174
+msgid ""
+" k, --sort specify sort order as: [+|-]key[,[+|-]key[,...]]\n"
+msgstr ""
+
+#: src/ps/help.c:175
+msgid " L show format specifiers\n"
+msgstr ""
+
+#: src/ps/help.c:176
+msgid " n display numeric uid and wchan\n"
+msgstr ""
+
+#: src/ps/help.c:177
+msgid " S, --cumulative include some dead child process data\n"
+msgstr ""
+
+#: src/ps/help.c:178
+msgid " -y do not show flags, show rss (only with -l)\n"
+msgstr ""
+
+#: src/ps/help.c:179
+msgid " -V, V, --version display version information and exit\n"
+msgstr ""
+" -V, V, --version ვერსიის ინფáƒáƒ áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ ჩვენებრდრგáƒáƒ¡áƒ•áƒšáƒ\n"
+
+#: src/ps/help.c:180
+msgid " -w, w unlimited output width\n"
+msgstr ""
+
+#: src/ps/help.c:181
+#, c-format
+msgid ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" display help and exit\n"
+msgstr ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" დáƒáƒ®áƒ›áƒáƒ áƒ”ბის გáƒáƒ›áƒáƒ¢áƒáƒœáƒ დრგáƒáƒ¡áƒ•áƒšáƒ\n"
+
+#. Translation Notes for ps Help #2 ---------------------------------
+#. . Most of the following c-format string is derived from the 6
+#. . pairs of words + chars mentioned above in "Notes for ps Help #1".
+#. .
+#. . In its full English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . The word for "help" will be translated elsewhere. Thus, the only
+#. . translations below will be: "Try", "or" and "for additional...".
+#. .
+#: src/ps/help.c:202
+#, c-format
+msgid ""
+"\n"
+" Try '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" or '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" for additional help text.\n"
+msgstr ""
+"\n"
+" დáƒáƒ›áƒáƒ¢áƒ”ბითი დáƒáƒ®áƒ›áƒáƒ áƒ”ბისთვის '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" áƒáƒœ '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" სცáƒáƒ“ეთ.\n"
+
+#: src/ps/help.c:215
+#, c-format
+msgid ""
+"\n"
+"For more details see ps(1).\n"
+msgstr ""
+"\n"
+"მეტი დეტáƒáƒšáƒ”ბისთვის იხილეთ ps(1).\n"
+
+#: src/ps/output.c:104
+msgid "Unable to get system boot time"
+msgstr ""
+
+#: src/ps/output.c:119
+msgid "Unable to get total memory"
+msgstr "სრული მეხსიერების მიღების შეცდáƒáƒ›áƒ"
+
+#: src/ps/output.c:2206
+#, c-format
+msgid "fix bigness error\n"
+msgstr ""
+
+#: src/ps/output.c:2289
+#, c-format
+msgid "bad alignment code\n"
+msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ სწáƒáƒ áƒ”ბის კáƒáƒ“ი\n"
+
+#: src/ps/parser.c:63
+msgid "the option is exclusive: "
+msgstr "პáƒáƒ áƒáƒ›áƒ”ტრი ექსკლუზიურიáƒ: "
+
+#: src/ps/parser.c:93
+msgid "process ID list syntax error"
+msgstr "პრáƒáƒªáƒ”სის ID-ების სიის სინტáƒáƒ¥áƒ¡áƒ˜áƒ¡ შეცდáƒáƒ›áƒ"
+
+#: src/ps/parser.c:94 src/ps/parser.c:95
+msgid "process ID out of range"
+msgstr "პრáƒáƒªáƒ”სის ID დიáƒáƒžáƒáƒ–áƒáƒœáƒ¡ გáƒáƒ áƒ”თáƒáƒ"
+
+#: src/ps/parser.c:108
+msgid "user name does not exist"
+msgstr "მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის სáƒáƒ®áƒ”ლი áƒáƒ  áƒáƒ áƒ¡áƒ”ბáƒáƒ‘ს"
+
+#: src/ps/parser.c:114
+msgid "user ID out of range"
+msgstr "მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის ID დიáƒáƒžáƒáƒ–áƒáƒœáƒ¡ გáƒáƒ áƒ”თáƒáƒ"
+
+#: src/ps/parser.c:127
+msgid "group name does not exist"
+msgstr "ჯგუფის სáƒáƒ®áƒ”ლი áƒáƒ  áƒáƒ áƒ¡áƒ”ბáƒáƒ‘ს"
+
+#: src/ps/parser.c:133
+msgid "group ID out of range"
+msgstr "ჯგუფის ID დიáƒáƒžáƒáƒ–áƒáƒœáƒ¡ გáƒáƒ áƒ”თáƒáƒ"
+
+#: src/ps/parser.c:149 src/ps/parser.c:173
+msgid "TTY could not be found"
+msgstr "TTY ვერ ვიპáƒáƒ•áƒ”"
+
+#: src/ps/parser.c:175
+msgid "list member was not a TTY"
+msgstr ""
+
+#: src/ps/parser.c:200
+msgid "improper list"
+msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ სიáƒ"
+
+#: src/ps/parser.c:249
+msgid "list of command names must follow -C"
+msgstr ""
+
+#: src/ps/parser.c:257
+msgid "date format must follow -D"
+msgstr "თáƒáƒ áƒ˜áƒ¦áƒ˜áƒ¡ ფáƒáƒ áƒ›áƒáƒ¢áƒ˜ -D-ს უნდრმáƒáƒ¡áƒ“ევდეს"
+
+#: src/ps/parser.c:270
+msgid "list of real groups must follow -G"
+msgstr ""
+
+#: src/ps/parser.c:283
+msgid "list of jobs must follow -J"
+msgstr "-J-ს დáƒáƒ•áƒáƒšáƒ”ბების სირუნდრმáƒáƒ¡áƒ“ევდეს"
+
+#: src/ps/parser.c:311
+msgid "format or sort specification must follow -O"
+msgstr "-O-ს დáƒáƒšáƒáƒ’ების სპეციფიკáƒáƒªáƒ˜áƒ უნდრმáƒáƒ¡áƒ“ევდეს"
+
+#: src/ps/parser.c:322
+msgid "list of PRM groups must follow -R"
+msgstr "-R-ს PRM-ის ჯგუფების სირუნდრმáƒáƒ¡áƒ“ევდეს"
+
+#: src/ps/parser.c:341
+msgid "list of real users must follow -U"
+msgstr "-U-ს რეáƒáƒšáƒ£áƒ áƒ˜ მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლები უნდრმáƒáƒ¡áƒ“ევდეს"
+
+#: src/ps/parser.c:382
+msgid "list of session leaders OR effective group names must follow -g"
+msgstr "-g-ს სესიის ლიდერების სირáƒáƒœ ეფექტური ჯგუფის სáƒáƒ®áƒ”ლები უნდრმáƒáƒ¡áƒ“ევდეს"
+
+#: src/ps/parser.c:393
+msgid "list of session leaders OR effective group IDs was invalid"
+msgstr "სესიის ლიდერების სირáƒáƒœ ეფექტური ჯგუფის ID-ები áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜áƒ"
+
+#: src/ps/parser.c:417
+msgid "format specification must follow -o"
+msgstr "-o-ს ფáƒáƒ áƒ›áƒáƒ¢áƒ˜áƒ¡ სპეციფიკáƒáƒªáƒ˜áƒ უნდრმáƒáƒ¡áƒ“ევდეს"
+
+#: src/ps/parser.c:423
+msgid "list of process IDs must follow -p"
+msgstr "-p-ს პრáƒáƒªáƒ”სის ID-ების სირუნდრმáƒáƒ¡áƒ“ევდეს"
+
+#: src/ps/parser.c:440
+msgid "the -r option is reserved"
+msgstr "პáƒáƒ áƒáƒ›áƒ”ტრი -r დáƒáƒ áƒ”ზერვებულიáƒ"
+
+#: src/ps/parser.c:446
+msgid "list of session IDs must follow -s"
+msgstr "-s-ს სესიების ID-ების სირუნდრმáƒáƒ¡áƒ“ევდეს"
+
+#: src/ps/parser.c:454
+msgid "list of terminals (pty, tty...) must follow -t"
+msgstr "-t-ს ტერმინáƒáƒšáƒ”ბის სირ(pty,tty….) უნდრმáƒáƒ¡áƒ“ევდეს"
+
+#: src/ps/parser.c:462
+msgid "list of users must follow -u"
+msgstr "-u-ს მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლების სირუნდრმáƒáƒ¡áƒ“ევდეს"
+
+#: src/ps/parser.c:484
+msgid "must set personality to get -x option"
+msgstr ""
+
+#: src/ps/parser.c:499
+msgid "list of zones (contexts, labels, whatever?) must follow -z"
+msgstr ""
+
+#: src/ps/parser.c:506
+msgid "embedded '-' among SysV options makes no sense"
+msgstr ""
+
+#: src/ps/parser.c:512
+msgid "unsupported SysV option"
+msgstr ""
+
+#: src/ps/parser.c:525
+msgid "cannot happen - problem #1"
+msgstr "ვერ მáƒáƒ®áƒ“ებრ- პრáƒáƒ‘ლემრ#1"
+
+#: src/ps/parser.c:529
+msgid "cannot happen - problem #2"
+msgstr "ვერ მáƒáƒ®áƒ“ებრ- პრáƒáƒ‘ლემრ#2"
+
+#: src/ps/parser.c:531
+msgid "second chance parse failed, not BSD or SysV"
+msgstr ""
+
+#: src/ps/parser.c:548
+msgid "option A is reserved"
+msgstr "პáƒáƒ áƒáƒ›áƒ”ტრი A დáƒáƒ áƒ”ზერვებულიáƒ"
+
+#: src/ps/parser.c:553
+msgid "option C is reserved"
+msgstr "პáƒáƒ áƒáƒ›áƒ”ტრი C დáƒáƒ áƒ”ზერვებულიáƒ"
+
+#: src/ps/parser.c:573
+msgid "format or sort specification must follow O"
+msgstr ""
+
+#: src/ps/parser.c:598
+msgid "list of users must follow U"
+msgstr ""
+
+#: src/ps/parser.c:610
+msgid "obsolete W option not supported (you have a /dev/drum?)"
+msgstr ""
+
+#: src/ps/parser.c:646 src/ps/parser.c:921 src/ps/parser.c:930
+msgid "only one heading option may be specified"
+msgstr ""
+
+#: src/ps/parser.c:661
+msgid "long sort specification must follow 'k'"
+msgstr ""
+
+#: src/ps/parser.c:689
+msgid "format specification must follow o"
+msgstr ""
+
+#: src/ps/parser.c:695
+msgid "list of process IDs must follow p"
+msgstr ""
+
+#: src/ps/parser.c:753
+msgid "embedded '-' among BSD options makes no sense"
+msgstr ""
+
+#: src/ps/parser.c:759
+msgid "unsupported option (BSD syntax)"
+msgstr ""
+
+#: src/ps/parser.c:847 src/ps/parser.c:859
+msgid "unknown gnu long option"
+msgstr "უცნáƒáƒ‘ი GNU გრძელი პáƒáƒ áƒáƒ›áƒ”ტრი"
+
+#: src/ps/parser.c:867
+msgid "list of real groups must follow --Group"
+msgstr "ნáƒáƒ›áƒ“ვილი ჯგუფების სირ--Group-ს უნდრმáƒáƒ¡áƒ“ევდეს"
+
+#: src/ps/parser.c:875
+msgid "list of real users must follow --User"
+msgstr "ნáƒáƒ›áƒ“ვლი მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლების სირ--User-ს უნდრმáƒáƒ¡áƒ“ევდეს"
+
+#: src/ps/parser.c:894
+msgid "number of columns must follow --cols, --width, or --columns"
+msgstr ""
+
+#: src/ps/parser.c:897
+msgid "option --cumulative does not take an argument"
+msgstr ""
+
+#: src/ps/parser.c:902
+msgid "date format must follow --date-format"
+msgstr ""
+
+#: src/ps/parser.c:908
+msgid "option --deselect does not take an argument"
+msgstr "პáƒáƒ áƒáƒ›áƒ”ტრს --deselect áƒáƒ áƒ’უმენტები áƒáƒ  გáƒáƒáƒ©áƒœáƒ˜áƒ"
+
+#: src/ps/parser.c:920
+msgid "option --no-heading does not take an argument"
+msgstr "პáƒáƒ áƒáƒ›áƒ”ტრს --no-heading áƒáƒ áƒ’უმენტები áƒáƒ  გáƒáƒáƒ©áƒœáƒ˜áƒ"
+
+#: src/ps/parser.c:929
+msgid "option --heading does not take an argument"
+msgstr "პáƒáƒ áƒáƒ›áƒ”ტრს --heading áƒáƒ áƒ’უმენტები áƒáƒ  გáƒáƒáƒ©áƒœáƒ˜áƒ"
+
+#: src/ps/parser.c:935
+msgid "option --forest does not take an argument"
+msgstr "პáƒáƒ áƒáƒ›áƒ”ტრს --forest áƒáƒ áƒ’უმენტები áƒáƒ  გáƒáƒáƒ©áƒœáƒ˜áƒ"
+
+#: src/ps/parser.c:941
+msgid "format specification must follow --format"
+msgstr "--format-ს ფáƒáƒ áƒ›áƒáƒ¢áƒ˜áƒ¡ სპეციფიკáƒáƒªáƒ˜áƒ უნდრმáƒáƒ¡áƒ“ევდეს"
+
+#: src/ps/parser.c:947
+msgid "list of effective groups must follow --group"
+msgstr "--group-ს ეფექტური ჯგუფების სირუნდრმáƒáƒ¡áƒ“ევდეს"
+
+#: src/ps/parser.c:965
+msgid "list of process IDs must follow --pid"
+msgstr "--pid-ს პრáƒáƒªáƒ”სის ID-ების სირუნდრმáƒáƒ¡áƒ“ევდეს"
+
+#: src/ps/parser.c:981
+msgid "list of process IDs must follow --ppid"
+msgstr "--ppid-ს პრáƒáƒªáƒ”სის ID-ების სირუნდრმáƒáƒ¡áƒ“ევდეს"
+
+#: src/ps/parser.c:999
+msgid "number of rows must follow --rows or --lines"
+msgstr "--row დრ--lines პáƒáƒ áƒáƒ›áƒ”ტრáƒáƒ“ რიცხვი უნდრმáƒáƒ¡áƒ“ევდეს"
+
+#: src/ps/parser.c:1003
+msgid "some sid thing(s) must follow --sid"
+msgstr "--sid-ს sid-ის რáƒáƒ›áƒ” უნდრმáƒáƒ°áƒ§áƒ•áƒ”ბáƒáƒ“ეს"
+
+#: src/ps/parser.c:1015
+msgid "long sort specification must follow --sort"
+msgstr "--sort-ს გრძელი დáƒáƒšáƒáƒ’ების სპეციფიკáƒáƒªáƒ˜áƒ უნდრმáƒáƒ¡áƒ“ევდეს"
+
+#: src/ps/parser.c:1021
+msgid "list of ttys must follow --tty"
+msgstr "--tty-ის tty-ების სირუნდრმáƒáƒ¡áƒ“ევდეს"
+
+#: src/ps/parser.c:1029
+msgid "list of effective users must follow --user"
+msgstr "--user-ს ეფექტური მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლების სირუნდრმáƒáƒ¡áƒ“ევდეს"
+
+#: src/ps/parser.c:1145
+msgid "way bad"
+msgstr "უáƒáƒ áƒ”სი"
+
+#: src/ps/parser.c:1159
+msgid "garbage option"
+msgstr "ნáƒáƒ’áƒáƒ•áƒ˜ პáƒáƒ áƒáƒ›áƒ”ტრი"
+
+#: src/ps/parser.c:1163
+msgid "something broke"
+msgstr "რáƒáƒ¦áƒáƒª გáƒáƒ¤áƒ£áƒ­áƒ“áƒ"
+
+#: src/ps/parser.c:1183
+msgid "thread display conflicts with forest display"
+msgstr ""
+
+#: src/ps/parser.c:1188
+msgid "thread flags conflict; can't use H with m or -m"
+msgstr ""
+
+#: src/ps/parser.c:1190
+msgid "thread flags conflict; can't use both m and -m"
+msgstr ""
+
+#: src/ps/parser.c:1192
+msgid "thread flags conflict; can't use both -L and -T"
+msgstr ""
+
+#: src/ps/parser.c:1265 src/ps/parser.c:1266
+#, c-format
+msgid "error: %s\n"
+msgstr "შეცდáƒáƒ›áƒ: %s\n"
+
+#: src/ps/select.c:71
+msgid "process selection options conflict"
+msgstr "პრáƒáƒªáƒ”სის áƒáƒ áƒ©áƒ”ვის პáƒáƒ áƒáƒ›áƒ”ტრების კáƒáƒœáƒ¤áƒšáƒ˜áƒ¥áƒ¢áƒ˜"
+
+#: src/ps/sortformat.c:110 src/ps/sortformat.c:115
+msgid "seriously crashing: goodbye cruel world"
+msgstr ""
+
+#: src/ps/sortformat.c:150 src/ps/sortformat.c:169
+msgid "missing AIX field descriptor"
+msgstr ""
+
+#: src/ps/sortformat.c:152
+msgid "improper AIX field descriptor"
+msgstr ""
+
+#: src/ps/sortformat.c:174
+msgid "unknown AIX field descriptor"
+msgstr ""
+
+#: src/ps/sortformat.c:179
+msgid "AIX field descriptor processing bug"
+msgstr ""
+
+#: src/ps/sortformat.c:287
+#, c-format
+msgid "unknown user-defined format specifier \"%s\""
+msgstr ""
+
+#: src/ps/sortformat.c:314
+msgid "empty format list"
+msgstr "ფáƒáƒ áƒ›áƒáƒ¢áƒ”ბის ცáƒáƒ áƒ˜áƒ”ლი სიáƒ"
+
+#: src/ps/sortformat.c:315
+msgid "improper format list"
+msgstr "ფáƒáƒ áƒ›áƒáƒ¢áƒ”ბის áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ სიáƒ"
+
+#: src/ps/sortformat.c:316
+msgid "column widths must be unsigned decimal numbers"
+msgstr ""
+
+#: src/ps/sortformat.c:317
+msgid "can not set width for a macro (multi-column) format specifier"
+msgstr ""
+
+#: src/ps/sortformat.c:371 src/ps/sortformat.c:387
+msgid "improper sort list"
+msgstr "დáƒáƒšáƒáƒ’ების áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ სიáƒ"
+
+#: src/ps/sortformat.c:382
+msgid "empty sort list"
+msgstr "ცáƒáƒáƒáƒ áƒ˜áƒ”ლი დáƒáƒšáƒáƒ’ების სიáƒ"
+
+#: src/ps/sortformat.c:403 src/ps/sortformat.c:482 src/ps/sortformat.c:484
+msgid "unknown sort specifier"
+msgstr "უცნáƒáƒ‘ი დáƒáƒšáƒáƒ’ების მიმთითებელი"
+
+#: src/ps/sortformat.c:430 src/ps/sortformat.c:435 src/ps/sortformat.c:442
+#: src/ps/sortformat.c:448
+msgid "bad sorting code"
+msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ დáƒáƒšáƒáƒ’ების კáƒáƒ“ი"
+
+#: src/ps/sortformat.c:445
+msgid "PPID sort and forest output conflict"
+msgstr ""
+
+#: src/ps/sortformat.c:519
+msgid "option -O can not follow other format options"
+msgstr ""
+
+#: src/ps/sortformat.c:526 src/ps/sortformat.c:544
+msgid "multiple sort options"
+msgstr "დáƒáƒšáƒáƒ’ების ბევრი პáƒáƒ áƒáƒ›áƒ”ტრი"
+
+#: src/ps/sortformat.c:534
+msgid "option O is neither first format nor sort order"
+msgstr ""
+
+#: src/ps/sortformat.c:661
+msgid "modifier -y without format -l makes no sense"
+msgstr ""
+
+#: src/ps/sortformat.c:760
+msgid "bug: must reset the list first"
+msgstr ""
+
+#: src/ps/sortformat.c:797
+msgid "tell <procps@freelists.org> what you expected"
+msgstr "უთხáƒáƒ áƒ˜áƒ— <procps@freelists.org>-ს, რáƒáƒ¡ მáƒáƒ”ლáƒáƒ“ით"
+
+#: src/ps/sortformat.c:807
+msgid ""
+"tell <procps@freelists.org> what you want (-L/-T, -m/m/H, and $PS_FORMAT)"
+msgstr ""
+"უთხáƒáƒ áƒ˜áƒ— <procps@freelists.org>-ს, რრგნებáƒáƒ•áƒ— (-L/-T, -m/m/H, დრ$PS_FORMAT)"
+
+#: src/ps/sortformat.c:824
+#, c-format
+msgid "warning: $PS_FORMAT ignored. (%s)\n"
+msgstr ""
+
+#: src/ps/sortformat.c:829 src/ps/sortformat.c:839
+msgid "conflicting format options"
+msgstr "ფáƒáƒ áƒ›áƒáƒ¢áƒ˜áƒ¡ ურთიერთგáƒáƒ›áƒáƒ›áƒ áƒ˜áƒªáƒ®áƒáƒ•áƒ˜ პáƒáƒ áƒáƒ›áƒ”ტრები"
+
+#: src/ps/sortformat.c:830
+msgid "can not use output modifiers with user-defined output"
+msgstr ""
+
+#: src/ps/sortformat.c:831
+msgid "-L/-T with H/m/-m and -o/-O/o/O is nonsense"
+msgstr ""
+
+#: src/ps/sortformat.c:889
+msgid "internal error: no PID or PPID for -j option"
+msgstr ""
+
+#: src/ps/sortformat.c:891
+msgid "lost my PGID"
+msgstr "დáƒáƒ•áƒ™áƒáƒ áƒ’ე ჩემი PGID"
+
+#: src/ps/sortformat.c:904
+msgid "internal error: no PRI for -c option"
+msgstr ""
+
+#: src/ps/sortformat.c:907
+msgid "lost my CLS"
+msgstr "დáƒáƒ•áƒ™áƒáƒ áƒ’ე ჩემი CSL"
+
+#: src/ps/sortformat.c:912
+msgid "-T with H/-m/m but no PID for SPID to follow"
+msgstr ""
+
+#: src/ps/sortformat.c:923
+msgid "-L with H/-m/m but no PID/PGID/SID/SESS for NLWP to follow"
+msgstr ""
+
+#: src/pwdx.c:41
+#, c-format
+msgid " %s [options] pid...\n"
+msgstr " %s [options] pid...\n"
+
+#: src/pwdx.c:117
+#, c-format
+msgid "invalid process id: %s"
+msgstr "პრáƒáƒªáƒ”სის áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ ID: '%s'"
+
+#: src/skill.c:285
+msgid "Unable to create pid Pids_info structure"
+msgstr ""
+
+#: src/skill.c:288 src/w.c:458
+msgid "Unable to load process information"
+msgstr "პრáƒáƒªáƒ”სის ინფáƒáƒ áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡ ჩáƒáƒ¢áƒ•áƒ˜áƒ áƒ—ვრშეუძლებელიáƒ"
+
+#: src/skill.c:319
+#, c-format
+msgid " %s [signal] [options] <expression>\n"
+msgstr " %s [signal] [options] <expression>\n"
+
+#: src/skill.c:323
+#, c-format
+msgid " %s [new priority] [options] <expression>\n"
+msgstr " %s [áƒáƒ®áƒáƒšáƒ˜ პრიáƒáƒ áƒ˜áƒ¢áƒ”ტი] [პáƒáƒ áƒáƒ›áƒ”ტრები] <expression>\n"
+
+#: src/skill.c:327
+msgid " -f, --fast fast mode (not implemented)\n"
+msgstr " -f, --fast სწრáƒáƒ¤áƒ˜ რეჟიმი (გáƒáƒœáƒ®áƒáƒ áƒªáƒ˜áƒ”ლებული áƒáƒ áƒáƒ)\n"
+
+#: src/skill.c:328
+msgid " -i, --interactive interactive\n"
+msgstr " -i, --interactive ინტერáƒáƒ¥áƒ¢áƒ˜áƒ£áƒ áƒ˜\n"
+
+#: src/skill.c:329
+msgid " -l, --list list all signal names\n"
+msgstr " -l, --list ყველრსიგნáƒáƒšáƒ˜áƒ¡ სიის გáƒáƒ›áƒáƒ¢áƒáƒœáƒ\n"
+
+#: src/skill.c:330
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr ""
+
+#: src/skill.c:331
+msgid ""
+" -n, --no-action do not actually kill processes; just print what would "
+"happen\n"
+msgstr ""
+
+#: src/skill.c:332
+msgid " -v, --verbose explain what is being done\n"
+msgstr ""
+
+#: src/skill.c:333
+msgid " -w, --warnings enable warnings (not implemented)\n"
+msgstr ""
+
+#: src/skill.c:335
+msgid ""
+"Expression can be: terminal, user, pid, command.\n"
+"The options below may be used to ensure correct interpretation.\n"
+msgstr ""
+
+#: src/skill.c:337
+msgid " -c, --command <command> expression is a command name\n"
+msgstr ""
+
+#: src/skill.c:338
+msgid " -p, --pid <pid> expression is a process id number\n"
+msgstr " -p, --pid <pid> გáƒáƒ›áƒáƒ¡áƒáƒ®áƒ£áƒšáƒ”ბრპრáƒáƒªáƒ”სის ID-ის ნáƒáƒ›áƒ”რიáƒ\n"
+
+#: src/skill.c:339
+msgid " -t, --tty <tty> expression is a terminal\n"
+msgstr " -t, --tty <tty> გáƒáƒ›áƒáƒ¡áƒáƒ®áƒ£áƒšáƒ”ბრტერმინáƒáƒšáƒ˜áƒ\n"
+
+#: src/skill.c:340
+msgid " -u, --user <username> expression is a username\n"
+msgstr " -u, --user <username> გáƒáƒ›áƒáƒ¡áƒáƒ®áƒ£áƒšáƒ”ბრმáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის სáƒáƒ®áƒ”ლიáƒ\n"
+
+#: src/skill.c:342
+msgid "Alternatively, expression can be:\n"
+msgstr ""
+
+#: src/skill.c:343
+msgid ""
+" --ns <pid> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+
+#: src/skill.c:345
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option; available namespaces are\n"
+": ipc, mnt, net, pid, user, uts\n"
+msgstr ""
+
+#: src/skill.c:355
+#, c-format
+msgid ""
+"\n"
+"The default signal is TERM. Use -l or -L to list available signals.\n"
+"Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0.\n"
+"Alternate signals may be specified in three ways: -SIGKILL -KILL -9\n"
+msgstr ""
+
+#: src/skill.c:362
+#, c-format
+msgid ""
+"\n"
+"The default priority is +4. (snice +4 ...)\n"
+"Priority numbers range from +20 (slowest) to -20 (fastest).\n"
+"Negative priority numbers are restricted to administrative users.\n"
+msgstr ""
+
+#: src/skill.c:384
+#, c-format
+msgid "priority %lu out of range"
+msgstr ""
+
+#: src/skill.c:493
+#, c-format
+msgid "invalid pid number %s"
+msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ pid რიცხვი: %s"
+
+#: src/skill.c:497
+msgid "error reading reference namespace information"
+msgstr ""
+
+#: src/skill.c:505
+msgid "invalid namespace list"
+msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ სáƒáƒ®áƒ”ლების სივრცის სიáƒ"
+
+#: src/skill.c:542
+msgid "no process selection criteria"
+msgstr ""
+
+#: src/skill.c:545
+msgid "general flags may not be repeated"
+msgstr ""
+
+#: src/skill.c:548
+msgid "-i makes no sense with -v, -f, and -n"
+msgstr ""
+
+#: src/skill.c:550
+msgid "-v makes no sense with -i and -f"
+msgstr ""
+
+#: src/skill.c:594
+#, c-format
+msgid "skill: \"%s\" is not supported\n"
+msgstr ""
+
+#: src/slabtop.c:108
+msgid " -d, --delay <secs> delay updates\n"
+msgstr " -d, --delay <secs> გáƒáƒœáƒáƒ®áƒšáƒ”ბების დáƒáƒ§áƒáƒ•áƒœáƒ”ბáƒ\n"
+
+#: src/slabtop.c:109
+msgid " -o, --once only display once, then exit\n"
+msgstr " -o, --once ერთხელ ჩვენებრდრგáƒáƒ¡áƒ•áƒšáƒ\n"
+
+#: src/slabtop.c:110
+msgid " -s, --sort <char> specify sort criteria by character (see below)\n"
+msgstr ""
+
+#: src/slabtop.c:115
+msgid ""
+"\n"
+"The following are valid sort criteria:\n"
+msgstr ""
+
+#: src/slabtop.c:116
+msgid " a: sort by number of active objects\n"
+msgstr ""
+
+#: src/slabtop.c:117
+msgid " b: sort by objects per slab\n"
+msgstr ""
+
+#: src/slabtop.c:118
+msgid " c: sort by cache size\n"
+msgstr ""
+
+#: src/slabtop.c:119
+msgid " l: sort by number of slabs\n"
+msgstr ""
+
+#: src/slabtop.c:120
+msgid " v: sort by (non display) number of active slabs\n"
+msgstr ""
+
+#: src/slabtop.c:121
+msgid " n: sort by name\n"
+msgstr ""
+
+#: src/slabtop.c:122
+msgid " o: sort by number of objects (the default)\n"
+msgstr ""
+
+#: src/slabtop.c:123
+msgid " p: sort by (non display) pages per slab\n"
+msgstr ""
+
+#: src/slabtop.c:124
+msgid " s: sort by object size\n"
+msgstr ""
+
+#: src/slabtop.c:125
+msgid " u: sort by cache utilization\n"
+msgstr ""
+
+#: src/slabtop.c:188 src/slabtop.c:199
+msgid "Cannot combine -d and -o options"
+msgstr ""
+
+#: src/slabtop.c:190
+msgid "illegal delay"
+msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ დáƒáƒ§áƒáƒ•áƒœáƒ”ბáƒ"
+
+#: src/slabtop.c:192 src/tload.c:142 src/vmstat.c:1049
+msgid "delay must be positive integer"
+msgstr "დáƒáƒ§áƒáƒ•áƒœáƒ”ბრდáƒáƒ“ებითი მთელი რიცხვი უნდრიყáƒáƒ¡"
+
+#: src/slabtop.c:236
+msgid "Error getting slab summary results"
+msgstr ""
+
+#. Translation Hint: Next five strings must not
+#. * exceed a length of 35 characters.
+#: src/slabtop.c:242
+#, no-c-format
+msgid "Active / Total Objects (% used)"
+msgstr ""
+
+#: src/slabtop.c:248
+#, no-c-format
+msgid "Active / Total Slabs (% used)"
+msgstr ""
+
+#: src/slabtop.c:254
+#, no-c-format
+msgid "Active / Total Caches (% used)"
+msgstr ""
+
+#: src/slabtop.c:260
+#, no-c-format
+msgid "Active / Total Size (% used)"
+msgstr ""
+
+#: src/slabtop.c:265
+msgid "Minimum / Average / Maximum Object"
+msgstr ""
+
+#. Translation Hint: Please keep alignment of the
+#. * following intact.
+#: src/slabtop.c:276
+msgid " OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME"
+msgstr ""
+
+#: src/slabtop.c:313 src/vmstat.c:767
+msgid "Unable to create slabinfo structure"
+msgstr ""
+
+#: src/slabtop.c:318
+msgid "terminal setting retrieval"
+msgstr ""
+
+#: src/slabtop.c:334 src/vmstat.c:774
+msgid "Unable to get slabinfo node data"
+msgstr ""
+
+#: src/slabtop.c:340 src/vmstat.c:776
+msgid "Unable to sort slab nodes"
+msgstr ""
+
+#: src/sysctl.c:118
+#, c-format
+msgid "Path is not under %s: %s"
+msgstr ""
+
+#: src/sysctl.c:136
+#, c-format
+msgid "separators should not be repeated: %s"
+msgstr ""
+
+#: src/sysctl.c:232
+#, c-format
+msgid " %s [options] [variable[=value] ...]\n"
+msgstr ""
+
+#: src/sysctl.c:235
+msgid " -a, --all display all variables\n"
+msgstr ""
+
+#: src/sysctl.c:236
+msgid " -A alias of -a\n"
+msgstr ""
+
+#: src/sysctl.c:237
+msgid " -X alias of -a\n"
+msgstr ""
+
+#: src/sysctl.c:238
+msgid " --deprecated include deprecated parameters to listing\n"
+msgstr ""
+
+#: src/sysctl.c:239
+msgid " --dry-run Print the key and values but do not write\n"
+msgstr ""
+
+#: src/sysctl.c:240
+msgid " -b, --binary print value without new line\n"
+msgstr ""
+
+#: src/sysctl.c:241
+msgid " -e, --ignore ignore unknown variables errors\n"
+msgstr ""
+
+#: src/sysctl.c:242
+msgid " -N, --names print variable names without values\n"
+msgstr ""
+
+#: src/sysctl.c:243
+msgid " -n, --values print only values of the given variable(s)\n"
+msgstr ""
+
+#: src/sysctl.c:244
+msgid " -p, --load[=<file>] read values from file\n"
+msgstr ""
+
+#: src/sysctl.c:245
+msgid " -f alias of -p\n"
+msgstr ""
+
+#: src/sysctl.c:246
+msgid " --system read values from all system directories\n"
+msgstr ""
+
+#: src/sysctl.c:247
+msgid ""
+" -r, --pattern <expression>\n"
+" select setting that match expression\n"
+msgstr ""
+
+#: src/sysctl.c:249
+msgid " -q, --quiet do not echo variable set\n"
+msgstr ""
+
+#: src/sysctl.c:250
+msgid " -w, --write enable writing a value to variable\n"
+msgstr ""
+
+#: src/sysctl.c:251
+msgid " -o does nothing\n"
+msgstr ""
+
+#: src/sysctl.c:252
+msgid " -x does nothing\n"
+msgstr ""
+
+#: src/sysctl.c:253
+msgid " -d alias of -h\n"
+msgstr " -d -h -ის მეტსáƒáƒ®áƒ”ლი\n"
+
+#: src/sysctl.c:334 src/sysctl.c:390
+#, c-format
+msgid "\"%s\" is an unknown key"
+msgstr "\"%s\" áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ გáƒáƒ¡áƒáƒ¦áƒ‘იáƒ"
+
+#: src/sysctl.c:352 src/sysctl.c:508 src/sysctl.c:545
+#, c-format
+msgid "cannot stat %s"
+msgstr "%s-ის áƒáƒ¦áƒ›áƒáƒ©áƒ”ნის შეცდáƒáƒ›áƒ"
+
+#: src/sysctl.c:395 src/sysctl.c:437
+#, c-format
+msgid "permission denied on key '%s'"
+msgstr ""
+
+#: src/sysctl.c:402 src/sysctl.c:454
+#, c-format
+msgid "reading key \"%s\""
+msgstr ""
+
+#: src/sysctl.c:492
+#, c-format
+msgid "unable to open directory \"%s\""
+msgstr "სáƒáƒ¥áƒáƒ¦áƒáƒšáƒ“ის გáƒáƒ®áƒ¡áƒœáƒ˜áƒ¡ შეცდáƒáƒ›áƒ: \"%s\""
+
+#: src/sysctl.c:557
+msgid "strdup key"
+msgstr ""
+
+#: src/sysctl.c:564 src/sysctl.c:571 src/sysctl.c:604
+#, c-format
+msgid "setting key \"%s\""
+msgstr ""
+
+#: src/sysctl.c:581
+#, c-format
+msgid "\"%s\" is an unknown key%s"
+msgstr ""
+
+#: src/sysctl.c:582 src/sysctl.c:591 src/sysctl.c:595
+msgid ", ignoring"
+msgstr ", იგნáƒáƒ áƒ˜áƒ áƒ”ბáƒ"
+
+#: src/sysctl.c:590
+#, c-format
+msgid "permission denied on key \"%s\"%s"
+msgstr ""
+
+#: src/sysctl.c:594
+#, c-format
+msgid "setting key \"%s\"%s"
+msgstr ""
+
+#: src/sysctl.c:669
+#, c-format
+msgid "%s(%d): invalid syntax, continuing..."
+msgstr ""
+
+#: src/sysctl.c:761
+#, c-format
+msgid ""
+"GLOB_TILDE is not supported on your platform, the tilde in \"%s\" won't be "
+"expanded."
+msgstr ""
+
+#: src/sysctl.c:767
+msgid "glob failed"
+msgstr ""
+
+#: src/sysctl.c:773
+#, c-format
+msgid "cannot open \"%s\""
+msgstr ""
+
+#: src/sysctl.c:877 src/sysctl.c:884
+#, c-format
+msgid "* Applying %s ...\n"
+msgstr ""
+
+#: src/sysctl.c:1050
+#, c-format
+msgid ""
+"no variables specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+
+#: src/sysctl.c:1054
+#, c-format
+msgid ""
+"options -N and -q cannot coexist\n"
+"Try `%s --help' for more information."
+msgstr ""
+
+#: src/tload.c:75 src/tload.c:77
+msgid "screen too small or too large"
+msgstr ""
+
+#: src/tload.c:80
+msgid "screen too small"
+msgstr "ეკრáƒáƒœáƒ˜ ძáƒáƒšáƒ˜áƒáƒœ პáƒáƒ¢áƒáƒ áƒáƒ"
+
+#: src/tload.c:96
+#, c-format
+msgid " %s [options] [tty]\n"
+msgstr " %s [options] [tty]\n"
+
+#: src/tload.c:98
+msgid " -d, --delay <secs> update delay in seconds\n"
+msgstr ""
+
+#: src/tload.c:99
+msgid " -s, --scale <num> vertical scale\n"
+msgstr ""
+
+#: src/tload.c:137
+msgid "scale cannot be negative"
+msgstr ""
+
+#: src/tload.c:144 src/vmstat.c:1051
+msgid "too large delay value"
+msgstr ""
+
+#: src/tload.c:159
+msgid "can not open tty"
+msgstr "tty-ის გáƒáƒ®áƒ¡áƒœáƒ˜áƒ¡ შეცდáƒáƒ›áƒ"
+
+#: src/tload.c:182
+msgid "Load average file /proc/loadavg does not exist"
+msgstr ""
+
+#: src/tload.c:185
+msgid "Unable to get load average"
+msgstr ""
+
+#: src/tload.c:227 src/tload.c:229
+msgid "writing to tty failed"
+msgstr "tty-ში ჩáƒáƒ¬áƒ”რის შეცდáƒáƒ›áƒ"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The following line pairs contain only plain text and consist of:
+#. . 1) a field name/column header - mostly upper case
+#. . 2) the related description - both upper and lower case
+#. .
+#. . To avoid truncation on the main top display, each column header
+#. . is noted with its maximum size, while a few are 'variable' width.
+#. . Names for the latter should probably be 10 or fewer characters.
+#. .
+#. . Those fields shown with a '+' are also eligible for user resizing
+#. . using the 'X' command. That means the default width might produce
+#. . truncation but need not if widened (see the man page 'X' command).
+#. .
+#. . All headers are subject to a maximum of 8 on the Fields Management
+#. . screen where truncation is entirely acceptable.
+#. .
+#. . The associated descriptions are always limited to 20 characters,
+#. . and are used only on the Fields Management screen.
+#. .
+#. . In all cases, fewer characters are just fine.
+#. .
+#. Translation Hint: maximum 'PID' = 5
+#: src/top/top_nls.c:152
+msgid "PID"
+msgstr "PID"
+
+#: src/top/top_nls.c:153
+msgid "Process Id"
+msgstr "პრáƒáƒªáƒ”სის ID"
+
+#. Translation Hint: maximum 'PPID' = 5
+#: src/top/top_nls.c:155
+msgid "PPID"
+msgstr "PPID"
+
+#: src/top/top_nls.c:156
+msgid "Parent Process pid"
+msgstr "მშáƒáƒ‘ელი პრáƒáƒªáƒ”სის ID"
+
+#. Translation Hint: maximum 'UID' = 5 +
+#: src/top/top_nls.c:158
+msgid "UID"
+msgstr "UID"
+
+#: src/top/top_nls.c:159
+msgid "Effective User Id"
+msgstr "ეფექტური მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის ID"
+
+#. Translation Hint: maximum 'USER' = 8 +
+#: src/top/top_nls.c:161 src/w.c:799
+msgid "USER"
+msgstr "მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბელი"
+
+#: src/top/top_nls.c:162
+msgid "Effective User Name"
+msgstr "ეფექტური მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის სáƒáƒ®áƒ”ლი"
+
+#. Translation Hint: maximum 'RUID' = 5 +
+#: src/top/top_nls.c:164
+msgid "RUID"
+msgstr "RUID"
+
+#: src/top/top_nls.c:165
+msgid "Real User Id"
+msgstr "რეáƒáƒšáƒ£áƒ áƒ˜ მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის ID"
+
+#. Translation Hint: maximum 'RUSER' = 8 +
+#: src/top/top_nls.c:167
+msgid "RUSER"
+msgstr "RUSER"
+
+#: src/top/top_nls.c:168
+msgid "Real User Name"
+msgstr "რეáƒáƒšáƒ£áƒ áƒ˜ მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის სáƒáƒ®áƒ”ლი"
+
+#. Translation Hint: maximum 'SUID' = 5 +
+#: src/top/top_nls.c:170
+msgid "SUID"
+msgstr "SUID"
+
+#: src/top/top_nls.c:171
+msgid "Saved User Id"
+msgstr "შენáƒáƒ®áƒ£áƒšáƒ˜ მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის ID"
+
+#. Translation Hint: maximum 'SUSER' = 8 +
+#: src/top/top_nls.c:173
+msgid "SUSER"
+msgstr "SUSER"
+
+#: src/top/top_nls.c:174
+msgid "Saved User Name"
+msgstr "შენáƒáƒ®áƒ£áƒšáƒ˜ მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ლის სáƒáƒ®áƒ”ლი"
+
+#. Translation Hint: maximum 'GID' = 5 +
+#: src/top/top_nls.c:176
+msgid "GID"
+msgstr "GID"
+
+#: src/top/top_nls.c:177
+msgid "Group Id"
+msgstr "ჯგუფის ID"
+
+#. Translation Hint: maximum 'GROUP' = 8 +
+#: src/top/top_nls.c:179
+msgid "GROUP"
+msgstr "GROUP"
+
+#: src/top/top_nls.c:180
+msgid "Group Name"
+msgstr "ჯგუფის სáƒáƒ®áƒ”ლი"
+
+#. Translation Hint: maximum 'PGRP' = 5
+#: src/top/top_nls.c:182
+msgid "PGRP"
+msgstr "PGRP"
+
+#: src/top/top_nls.c:183
+msgid "Process Group Id"
+msgstr "პრáƒáƒªáƒ”სის ჯგუფის ID"
+
+#. Translation Hint: maximum 'TTY' = 8 +
+#: src/top/top_nls.c:185
+msgid "TTY"
+msgstr "TTY"
+
+#: src/top/top_nls.c:186
+msgid "Controlling Tty"
+msgstr "მáƒáƒ™áƒáƒœáƒ¢áƒ áƒáƒšáƒ”ბელი tty"
+
+#. Translation Hint: maximum 'TPGID' = 5
+#: src/top/top_nls.c:188
+msgid "TPGID"
+msgstr "TPGID"
+
+#: src/top/top_nls.c:189
+msgid "Tty Process Grp Id"
+msgstr "Tty პრáƒáƒªáƒ”სის ჯგუფის ID"
+
+#. Translation Hint: maximum 'SID' = 5
+#: src/top/top_nls.c:191
+msgid "SID"
+msgstr "SID"
+
+#: src/top/top_nls.c:192
+msgid "Session Id"
+msgstr "სესიის ID"
+
+#. Translation Hint: maximum 'PR' = 3
+#: src/top/top_nls.c:194
+msgid "PR"
+msgstr "PR"
+
+#: src/top/top_nls.c:195
+msgid "Priority"
+msgstr "პრიáƒáƒ áƒ˜áƒ¢áƒ”ტი"
+
+#. Translation Hint: maximum 'NI' = 3
+#: src/top/top_nls.c:197
+msgid "NI"
+msgstr "NI"
+
+#: src/top/top_nls.c:198
+msgid "Nice Value"
+msgstr ""
+
+#. Translation Hint: maximum 'nTH' = 3
+#: src/top/top_nls.c:200
+msgid "nTH"
+msgstr "nTH"
+
+#: src/top/top_nls.c:201
+msgid "Number of Threads"
+msgstr "ნáƒáƒ™áƒáƒ“ების რáƒáƒáƒ“ენáƒáƒ‘áƒ"
+
+#. Translation Hint: maximum 'P' = 1
+#: src/top/top_nls.c:203
+msgid "P"
+msgstr "პ"
+
+#: src/top/top_nls.c:204
+msgid "Last Used Cpu (SMP)"
+msgstr ""
+
+#. Translation Hint: maximum '%CPU' = 4
+#: src/top/top_nls.c:206
+#, c-format
+msgid "%CPU"
+msgstr "%CPU"
+
+#: src/top/top_nls.c:207
+msgid "CPU Usage"
+msgstr "CPU -ის გáƒáƒ›áƒáƒ§áƒ”ნებáƒ"
+
+#. Translation Hint: maximum '' = 6
+#: src/top/top_nls.c:209
+msgid "TIME"
+msgstr "დრáƒ"
+
+#: src/top/top_nls.c:210
+msgid "CPU Time"
+msgstr "CPU -ის დრáƒ"
+
+#. Translation Hint: maximum 'TIME+' = 9
+#: src/top/top_nls.c:212
+msgid "TIME+"
+msgstr "TIME+"
+
+#: src/top/top_nls.c:213
+msgid "CPU Time, hundredths"
+msgstr "CPU -ის დრáƒ, მეáƒáƒ¡áƒ”დები"
+
+#. Translation Hint: maximum '%MEM' = 4
+#: src/top/top_nls.c:215
+msgid "%MEM"
+msgstr "%MEM"
+
+#: src/top/top_nls.c:216
+msgid "Memory Usage (RES)"
+msgstr "მეხსიერების გáƒáƒ›áƒáƒ§áƒ”ნებრ(RES)"
+
+#. Translation Hint: maximum 'VIRT' = 7
+#: src/top/top_nls.c:218
+msgid "VIRT"
+msgstr "VIRT"
+
+#: src/top/top_nls.c:219
+msgid "Virtual Image (KiB)"
+msgstr "ვირტუáƒáƒšáƒ£áƒ áƒ˜ áƒáƒ¡áƒšáƒ˜ (კიბ)"
+
+#. Translation Hint: maximum 'SWAP' = 6
+#: src/top/top_nls.c:221
+msgid "SWAP"
+msgstr "SWAP"
+
+#: src/top/top_nls.c:222
+msgid "Swapped Size (KiB)"
+msgstr "სვáƒáƒžáƒ˜áƒ¡ ზáƒáƒ›áƒ (კიბ)"
+
+#. Translation Hint: maximum 'RES' = 6
+#: src/top/top_nls.c:224
+msgid "RES"
+msgstr "RES"
+
+#: src/top/top_nls.c:225
+msgid "Resident Size (KiB)"
+msgstr "რეზიდენტული ზáƒáƒ›áƒ (კიბ)"
+
+#. Translation Hint: maximum 'CODE' = 4
+#: src/top/top_nls.c:227
+msgid "CODE"
+msgstr "CODE"
+
+#: src/top/top_nls.c:228
+msgid "Code Size (KiB)"
+msgstr "კáƒáƒ“ის ზáƒáƒ›áƒ (კიბ)"
+
+#. Translation Hint: maximum 'DATA' = 7
+#: src/top/top_nls.c:230
+msgid "DATA"
+msgstr "მáƒáƒœáƒáƒªáƒ”მები"
+
+#: src/top/top_nls.c:231
+msgid "Data+Stack (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'SHR' = 6
+#: src/top/top_nls.c:233
+msgid "SHR"
+msgstr "SHR"
+
+#: src/top/top_nls.c:234
+msgid "Shared Memory (KiB)"
+msgstr "გáƒáƒ–იáƒáƒ áƒ”ბული მეხსიერებრ(კიბ)"
+
+#. Translation Hint: maximum 'nMaj' = 4
+#: src/top/top_nls.c:236
+msgid "nMaj"
+msgstr "nMaj"
+
+#: src/top/top_nls.c:237
+msgid "Major Page Faults"
+msgstr ""
+
+#. Translation Hint: maximum 'nMin' = 4
+#: src/top/top_nls.c:239
+msgid "nMin"
+msgstr "nMin"
+
+#: src/top/top_nls.c:240
+msgid "Minor Page Faults"
+msgstr ""
+
+#. Translation Hint: maximum 'nDRT' = 4
+#: src/top/top_nls.c:242
+msgid "nDRT"
+msgstr "nDRT"
+
+#: src/top/top_nls.c:243
+msgid "Dirty Pages Count"
+msgstr ""
+
+#. Translation Hint: maximum 'S' = 1
+#: src/top/top_nls.c:245
+msgid "S"
+msgstr "კ"
+
+#: src/top/top_nls.c:246
+msgid "Process Status"
+msgstr "პრáƒáƒªáƒ”სის სტáƒáƒ¢áƒ£áƒ¡áƒ˜"
+
+#. Translation Hint: maximum 'COMMAND' = variable
+#: src/top/top_nls.c:248
+msgid "COMMAND"
+msgstr "ბრძáƒáƒœáƒ”ბáƒ"
+
+#: src/top/top_nls.c:249
+msgid "Command Name/Line"
+msgstr ""
+
+#. Translation Hint: maximum 'WCHAN' = 10 +
+#: src/top/top_nls.c:251
+msgid "WCHAN"
+msgstr "WCHAN"
+
+#: src/top/top_nls.c:252
+msgid "Sleeping in Function"
+msgstr ""
+
+#. Translation Hint: maximum 'Flags' = 8
+#: src/top/top_nls.c:254
+msgid "Flags"
+msgstr "áƒáƒšáƒ›áƒ”ბი"
+
+#: src/top/top_nls.c:255
+msgid "Task Flags <sched.h>"
+msgstr ""
+
+#. Translation Hint: maximum 'CGROUPS' = variable
+#: src/top/top_nls.c:257
+msgid "CGROUPS"
+msgstr "CGROUPS"
+
+#: src/top/top_nls.c:258
+msgid "Control Groups"
+msgstr "სáƒáƒ™áƒáƒœáƒ¢áƒ áƒáƒšáƒ ჯგუფები"
+
+#. Translation Hint: maximum 'SUPGIDS' = variable
+#: src/top/top_nls.c:260
+msgid "SUPGIDS"
+msgstr "SUPGIDS"
+
+#: src/top/top_nls.c:261
+msgid "Supp Groups IDs"
+msgstr ""
+
+#. Translation Hint: maximum 'SUPGRPS' = variable
+#: src/top/top_nls.c:263
+msgid "SUPGRPS"
+msgstr "SUPGRPS"
+
+#: src/top/top_nls.c:264
+msgid "Supp Groups Names"
+msgstr ""
+
+#. Translation Hint: maximum 'TGID' = 5
+#: src/top/top_nls.c:266
+msgid "TGID"
+msgstr "TGID"
+
+#: src/top/top_nls.c:267
+msgid "Thread Group Id"
+msgstr ""
+
+#. Translation Hint: maximum 'OOMa' = 5
+#: src/top/top_nls.c:269
+msgid "OOMa"
+msgstr "OOMa"
+
+#: src/top/top_nls.c:270
+msgid "OOMEM Adjustment"
+msgstr ""
+
+#. Translation Hint: maximum 'OOMs' = 4
+#: src/top/top_nls.c:272
+msgid "OOMs"
+msgstr "OOMs"
+
+#: src/top/top_nls.c:273
+msgid "OOMEM Score current"
+msgstr ""
+
+#. Translation Hint: maximum 'ENVIRON' = variable
+#: src/top/top_nls.c:275
+msgid "ENVIRON"
+msgstr "ENVIRON"
+
+#. Translation Hint: the abbreviation 'vars' below is shorthand for
+#. 'variables'
+#: src/top/top_nls.c:278
+msgid "Environment vars"
+msgstr ""
+
+#. Translation Hint: maximum 'vMj' = 3
+#: src/top/top_nls.c:280
+msgid "vMj"
+msgstr "vMj"
+
+#: src/top/top_nls.c:281
+msgid "Major Faults delta"
+msgstr ""
+
+#. Translation Hint: maximum 'vMn' = 3
+#: src/top/top_nls.c:283
+msgid "vMn"
+msgstr "vMn"
+
+#: src/top/top_nls.c:284
+msgid "Minor Faults delta"
+msgstr ""
+
+#. Translation Hint: maximum 'USED' = 6
+#: src/top/top_nls.c:286
+msgid "USED"
+msgstr "USED"
+
+#: src/top/top_nls.c:287
+msgid "Res+Swap Size (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'nsIPC' = 10 +
+#: src/top/top_nls.c:289
+msgid "nsIPC"
+msgstr "nsIPC"
+
+#: src/top/top_nls.c:290
+msgid "IPC namespace Inode"
+msgstr ""
+
+#. Translation Hint: maximum 'nsMNT' = 10 +
+#: src/top/top_nls.c:292
+msgid "nsMNT"
+msgstr "nsMNT"
+
+#: src/top/top_nls.c:293
+msgid "MNT namespace Inode"
+msgstr ""
+
+#. Translation Hint: maximum 'nsNET' = 10 +
+#: src/top/top_nls.c:295
+msgid "nsNET"
+msgstr "nsNET"
+
+#: src/top/top_nls.c:296
+msgid "NET namespace Inode"
+msgstr ""
+
+#. Translation Hint: maximum 'nsPID' = 10 +
+#: src/top/top_nls.c:298
+msgid "nsPID"
+msgstr "nsPID"
+
+#: src/top/top_nls.c:299
+msgid "PID namespace Inode"
+msgstr ""
+
+#. Translation Hint: maximum 'nsUSER' = 10 +
+#: src/top/top_nls.c:301
+msgid "nsUSER"
+msgstr "nsUSER"
+
+#: src/top/top_nls.c:302
+msgid "USER namespace Inode"
+msgstr ""
+
+#. Translation Hint: maximum 'nsUTS' = 10 +
+#: src/top/top_nls.c:304
+msgid "nsUTS"
+msgstr "nsUTS"
+
+#: src/top/top_nls.c:305
+msgid "UTS namespace Inode"
+msgstr ""
+
+#. Translation Hint: maximum 'LXC' = 8 +
+#: src/top/top_nls.c:307
+msgid "LXC"
+msgstr "LXC"
+
+#: src/top/top_nls.c:308
+msgid "LXC container name"
+msgstr ""
+
+#. Translation Hint: maximum 'RSan' = 6
+#: src/top/top_nls.c:310
+msgid "RSan"
+msgstr "RSan"
+
+#: src/top/top_nls.c:311
+msgid "RES Anonymous (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'RSfd' = 6
+#: src/top/top_nls.c:313
+msgid "RSfd"
+msgstr "RSfd"
+
+#: src/top/top_nls.c:314
+msgid "RES File-based (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'RSlk' = 6
+#: src/top/top_nls.c:316
+msgid "RSlk"
+msgstr "RSlk"
+
+#: src/top/top_nls.c:317
+msgid "RES Locked (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'RSsh' = 6
+#: src/top/top_nls.c:319
+msgid "RSsh"
+msgstr "RSsh"
+
+#: src/top/top_nls.c:320
+msgid "RES Shared (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'CGNAME' = variable
+#: src/top/top_nls.c:322
+msgid "CGNAME"
+msgstr "CGNAME"
+
+#: src/top/top_nls.c:323
+msgid "Control Group name"
+msgstr ""
+
+#. Translation Hint: maximum 'NU' = 2
+#: src/top/top_nls.c:325
+msgid "NU"
+msgstr "NU"
+
+#: src/top/top_nls.c:326
+msgid "Last Used NUMA node"
+msgstr ""
+
+#. Translation Hint: maximum 'LOGID' = 5 +
+#: src/top/top_nls.c:328
+msgid "LOGID"
+msgstr "LOGID"
+
+#: src/top/top_nls.c:329
+msgid "Login User Id"
+msgstr "რეáƒáƒšáƒ£áƒ áƒ˜ მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბლის ID"
+
+#. Translation Hint: maximum 'EXE' = variable
+#: src/top/top_nls.c:331
+msgid "EXE"
+msgstr "EXE"
+
+#: src/top/top_nls.c:332
+msgid "Executable Path"
+msgstr "გáƒáƒ›áƒ¨áƒ•áƒ”ბი ფáƒáƒ˜áƒšáƒ˜áƒ¡ ბილიკი"
+
+#: src/top/top_nls.c:338
+msgid "Res Mem (smaps), KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'PSS' = 6
+#: src/top/top_nls.c:340
+msgid "PSS"
+msgstr "PSS"
+
+#: src/top/top_nls.c:341
+msgid "Proportion RSS, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'PSan' = 6
+#: src/top/top_nls.c:343
+msgid "PSan"
+msgstr "PSan"
+
+#: src/top/top_nls.c:344
+msgid "Proportion Anon, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'PSfd' = 6
+#: src/top/top_nls.c:346
+msgid "PSfd"
+msgstr "PSfd"
+
+#: src/top/top_nls.c:347
+msgid "Proportion File, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'PSsh' = 6
+#: src/top/top_nls.c:349
+msgid "PSsh"
+msgstr "PSsh"
+
+#: src/top/top_nls.c:350
+msgid "Proportion Shrd, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'USS' = 6
+#: src/top/top_nls.c:352
+msgid "USS"
+msgstr "USS"
+
+#: src/top/top_nls.c:353
+msgid "Unique RSS, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'ioR' = 6
+#: src/top/top_nls.c:355
+msgid "ioR"
+msgstr "ioR"
+
+#: src/top/top_nls.c:356
+msgid "I/O Bytes Read"
+msgstr ""
+
+#. Translation Hint: maximum 'ioRop' = 5
+#: src/top/top_nls.c:358
+msgid "ioRop"
+msgstr "ioRop"
+
+#: src/top/top_nls.c:359
+msgid "I/O Read Operations"
+msgstr ""
+
+#. Translation Hint: maximum 'ioW' = 6
+#: src/top/top_nls.c:361
+msgid "ioW"
+msgstr "ioW"
+
+#: src/top/top_nls.c:362
+msgid "I/O Bytes Written"
+msgstr ""
+
+#. Translation Hint: maximum 'ioWop' = 5
+#: src/top/top_nls.c:364
+msgid "ioWop"
+msgstr "ioWop"
+
+#: src/top/top_nls.c:365
+msgid "I/O Write Operations"
+msgstr ""
+
+#. Translation Hint: maximum 'AGID' = 5
+#: src/top/top_nls.c:367
+msgid "AGID"
+msgstr "AGID"
+
+#: src/top/top_nls.c:368
+msgid "Autogroup Identifier"
+msgstr ""
+
+#. Translation Hint: maximum 'AGNI' = 4
+#: src/top/top_nls.c:370
+msgid "AGNI"
+msgstr "AGNI"
+
+#: src/top/top_nls.c:371
+msgid "Autogroup Nice Value"
+msgstr ""
+
+#. Translation Hint: maximum 'STARTED' = 7
+#: src/top/top_nls.c:373
+msgid "STARTED"
+msgstr "STARTED"
+
+#: src/top/top_nls.c:374
+msgid "Start Time from boot"
+msgstr ""
+
+#. Translation Hint: maximum 'ELAPSED' = 7
+#: src/top/top_nls.c:376
+msgid "ELAPSED"
+msgstr ""
+
+#: src/top/top_nls.c:377
+msgid "Elapsed Running Time"
+msgstr ""
+
+#. Translation Hint: maximum '%CUU' = 6
+#: src/top/top_nls.c:379
+#, c-format
+msgid "%CUU"
+msgstr "%CUU"
+
+#: src/top/top_nls.c:380
+msgid "CPU Utilization"
+msgstr ""
+
+#. Translation Hint: maximum '%CUC' = 7
+#: src/top/top_nls.c:382
+#, c-format
+msgid "%CUC"
+msgstr "%CUC"
+
+#: src/top/top_nls.c:383
+msgid "Utilization + child"
+msgstr ""
+
+#. Translation Hint: maximum 'nsCGROUP' = 10 +
+#: src/top/top_nls.c:385
+msgid "nsCGROUP"
+msgstr "nsCGROUP"
+
+#: src/top/top_nls.c:386
+msgid "CGRP namespace Inode"
+msgstr ""
+
+#. Translation Hint: maximum 'nsTIME' = 10 +
+#: src/top/top_nls.c:388
+msgid "nsTIME"
+msgstr "დრáƒ"
+
+#: src/top/top_nls.c:389
+msgid "TIME namespace Inode"
+msgstr ""
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . This group of lines contains both plain text and c-format strings.
+#. .
+#. . Some strings reflect switches used to affect the running program
+#. . and should not be translated without also making corresponding
+#. . c-code logic changes.
+#. .
+#: src/top/top_nls.c:409
+#, c-format
+msgid ""
+"\tsignal %d (%s) was caught by %s, please\n"
+"\tsend bug reports to <procps@freelists.org>\n"
+msgstr ""
+
+#: src/top/top_nls.c:439
+#, c-format
+msgid "bad delay interval '%s'"
+msgstr ""
+
+#: src/top/top_nls.c:440
+#, c-format
+msgid "bad iterations argument '%s'"
+msgstr ""
+
+#: src/top/top_nls.c:441
+#, c-format
+msgid "pid limit (%d) exceeded"
+msgstr "pid -ის ლიმიტი (%d) გáƒáƒ“áƒáƒ­áƒáƒ áƒ‘ებულიáƒ"
+
+#: src/top/top_nls.c:442
+#, c-format
+msgid "bad pid '%s'"
+msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ pid '%s'"
+
+#: src/top/top_nls.c:443
+#, c-format
+msgid "-%c argument missing"
+msgstr "-%c áƒáƒ áƒ’უმენტი áƒáƒ™áƒšáƒ˜áƒ"
+
+#: src/top/top_nls.c:444
+#, c-format
+msgid "bad width arg '%s'"
+msgstr ""
+
+#: src/top/top_nls.c:445
+#, c-format
+msgid "unknown option '%s'"
+msgstr "უცნáƒáƒ‘ი პáƒáƒ áƒáƒ›áƒ”ტრი '%s'"
+
+#: src/top/top_nls.c:446
+msgid "-d disallowed in \"secure\" mode"
+msgstr ""
+
+#: src/top/top_nls.c:447
+msgid "-d requires positive argument"
+msgstr ""
+
+#: src/top/top_nls.c:448
+msgid "On"
+msgstr ""
+
+#: src/top/top_nls.c:449
+msgid "Off"
+msgstr "გáƒáƒ›áƒáƒ áƒ—ული"
+
+#: src/top/top_nls.c:450
+#, c-format
+msgid "%s from %s"
+msgstr "%s -ი %s-სგáƒáƒœ"
+
+#: src/top/top_nls.c:451
+#, c-format
+msgid "Forest mode %s"
+msgstr "ტყის რეჟიმი %s"
+
+#: src/top/top_nls.c:452
+msgid "failed tty get"
+msgstr "tty-ის მიღების შეცდáƒáƒ›áƒ"
+
+#: src/top/top_nls.c:453
+#, c-format
+msgid "failed tty set: %s"
+msgstr "tty-ის დáƒáƒ§áƒ”ნების შეცდáƒáƒ›áƒ: %s"
+
+#: src/top/top_nls.c:454
+msgid "Choose field group (1 - 4)"
+msgstr ""
+
+#: src/top/top_nls.c:455
+msgid "Command disabled, 'A' mode required"
+msgstr ""
+
+#: src/top/top_nls.c:456
+#, c-format
+msgid "Command disabled, activate %s with '-' or '_'"
+msgstr ""
+
+#: src/top/top_nls.c:457
+msgid "No colors to map!"
+msgstr ""
+
+#: src/top/top_nls.c:458
+#, c-format
+msgid "Failed '%s' open: %s"
+msgstr ""
+
+#: src/top/top_nls.c:459
+#, c-format
+msgid "Wrote configuration to '%s'"
+msgstr ""
+
+#: src/top/top_nls.c:460
+#, c-format
+msgid "Change delay from %.1f to"
+msgstr ""
+
+#: src/top/top_nls.c:461
+#, c-format
+msgid "Show threads %s"
+msgstr ""
+
+#: src/top/top_nls.c:462
+#, c-format
+msgid "Irix mode %s"
+msgstr "Irix -ის რეჟიმი %s"
+
+#: src/top/top_nls.c:463
+#, c-format
+msgid "PID to signal/kill [default pid = %d]"
+msgstr ""
+
+#: src/top/top_nls.c:464
+#, c-format
+msgid "Send pid %d signal [%d/sigterm]"
+msgstr ""
+
+#: src/top/top_nls.c:465
+#, c-format
+msgid "Failed signal pid '%d' with '%d': %s"
+msgstr ""
+
+#: src/top/top_nls.c:466
+msgid "Invalid signal"
+msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ სიგნáƒáƒšáƒ˜"
+
+#: src/top/top_nls.c:467
+#, c-format
+msgid "PID to renice [default pid = %d]"
+msgstr ""
+
+#: src/top/top_nls.c:468
+#, c-format
+msgid "Renice PID %d to value"
+msgstr ""
+
+#: src/top/top_nls.c:469
+#, c-format
+msgid "Failed renice of PID %d to %d: %s"
+msgstr ""
+
+#: src/top/top_nls.c:470
+#, c-format
+msgid "Rename window '%s' to (1-3 chars)"
+msgstr ""
+
+#: src/top/top_nls.c:471
+#, c-format
+msgid "Cumulative time %s"
+msgstr ""
+
+#: src/top/top_nls.c:472
+#, c-format
+msgid "Maximum tasks = %d, change to (0 is unlimited)"
+msgstr ""
+
+#: src/top/top_nls.c:473
+msgid "Invalid maximum"
+msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ მáƒáƒ¥áƒ¡áƒ˜áƒ›áƒ£áƒ›áƒ˜"
+
+#: src/top/top_nls.c:474
+msgid "Which user (blank for all)"
+msgstr ""
+
+#: src/top/top_nls.c:475
+msgid "Unknown command - try 'h' for help"
+msgstr "უცნáƒáƒ‘ი ბრძáƒáƒœáƒ”ბრ- დáƒáƒ®áƒ›áƒáƒ áƒ”ბისთვის სცáƒáƒ“ეთ \"h\""
+
+#: src/top/top_nls.c:476
+#, c-format
+msgid "scroll coordinates: y = %d/%d (tasks), x = %d/%d (fields)"
+msgstr ""
+
+#: src/top/top_nls.c:477
+msgid "failed memory allocate"
+msgstr "მეხსიერების გáƒáƒ›áƒáƒ§áƒáƒ¤áƒ˜áƒ¡ შეცდáƒáƒ›áƒ"
+
+#: src/top/top_nls.c:478
+msgid "failed memory re-allocate"
+msgstr "მეხსიერების თáƒáƒ•áƒ˜áƒ“áƒáƒœ გáƒáƒ›áƒáƒ§áƒáƒ¤áƒ˜áƒ¡ შეცდáƒáƒ›áƒ"
+
+#: src/top/top_nls.c:479
+msgid "Unacceptable floating point"
+msgstr ""
+
+#: src/top/top_nls.c:480
+msgid "Invalid user"
+msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ მáƒáƒ›áƒ®áƒ›áƒáƒ áƒ”ბელი"
+
+#: src/top/top_nls.c:481
+msgid "forest view"
+msgstr "ტყის ხედი"
+
+#: src/top/top_nls.c:482
+msgid "failed pid maximum size test"
+msgstr ""
+
+#: src/top/top_nls.c:483
+msgid "failed number of cpus test"
+msgstr ""
+
+#: src/top/top_nls.c:484
+#, c-format
+msgid "incompatible rcfile, you should delete '%s'"
+msgstr ""
+
+#: src/top/top_nls.c:485
+#, c-format
+msgid "window entry #%d corrupt, please delete '%s'"
+msgstr ""
+
+#: src/top/top_nls.c:486
+msgid "Unavailable in secure mode"
+msgstr ""
+
+#: src/top/top_nls.c:487
+msgid "Only 1 cpu detected"
+msgstr "ნáƒáƒžáƒáƒ•áƒœáƒ˜áƒ მხáƒáƒšáƒáƒ“ 1 CPU"
+
+#: src/top/top_nls.c:488
+msgid "Unacceptable integer"
+msgstr "დáƒáƒ£áƒ¨áƒ•áƒ”ბელი მთელი რიცხვი"
+
+#: src/top/top_nls.c:489
+msgid "conflicting process selections (U/p/u)"
+msgstr ""
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . kibibytes (1024 bytes)
+#: src/top/top_nls.c:492
+msgid "KiB"
+msgstr "კიბ"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . mebibytes (1,048,576 bytes)
+#: src/top/top_nls.c:495
+msgid "MiB"
+msgstr "მიბ"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . gibibytes (1,073,741,824 bytes)
+#: src/top/top_nls.c:498
+msgid "GiB"
+msgstr "გიბ"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . tebibytes (1,099,511,627,776 bytes)
+#: src/top/top_nls.c:501
+msgid "TiB"
+msgstr "ტიბ"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . pebibytes (1,024 tebibytes)
+#: src/top/top_nls.c:504
+msgid "PiB"
+msgstr "პიბ"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . exbibytes (1,024 pebibytes)
+#: src/top/top_nls.c:507
+msgid "EiB"
+msgstr "ეიბ"
+
+#: src/top/top_nls.c:508
+msgid "Threads"
+msgstr "ნáƒáƒ™áƒáƒ“ები"
+
+#: src/top/top_nls.c:509
+msgid "Tasks"
+msgstr "Tasks"
+
+#. Translation Hint: The following "word" is meant to represent either a single
+#. . cpu or all of the processors in a multi-processor computer
+#. . (should be exactly 6 characters, excluding leading % & colon)
+#: src/top/top_nls.c:513
+#, c-format
+msgid "%Cpu(s):"
+msgstr "%CPU:"
+
+#. Translation Hint: The following "word" is meant to represent a single processor
+#. and 'the Cp' prefix will be combined with a core id: 'p', 'e' or 'u'
+#. . (if 'Cp' is translated, it must be exactly 2 characters long)
+#: src/top/top_nls.c:517
+#, c-format
+msgid "%%Cp%c%-3d:"
+msgstr "%%Cp%c%-3d:"
+
+#. Translation Hint: The following word "another" must have 1 trailing space
+#: src/top/top_nls.c:519
+msgid "another "
+msgstr "სხვრ"
+
+#: src/top/top_nls.c:520
+msgid "Locate next inactive, use \"L\""
+msgstr ""
+
+#: src/top/top_nls.c:521
+msgid "Locate string"
+msgstr ""
+
+#: src/top/top_nls.c:522
+#, c-format
+msgid "%s\"%s\" not found"
+msgstr "%s: %s: áƒáƒ  áƒáƒ áƒ¡áƒ”ბáƒáƒ‘ს"
+
+#: src/top/top_nls.c:523
+#, c-format
+msgid "width incr is %d, change to (0 default, -1 auto)"
+msgstr ""
+
+#: src/top/top_nls.c:524
+msgid "rcfile has inspect/other-filter error(s), save anyway?"
+msgstr ""
+
+#: src/top/top_nls.c:525
+#, c-format
+msgid "unrecognized field name '%s'"
+msgstr ""
+
+#: src/top/top_nls.c:526
+msgid "even using field names only, window is now too small"
+msgstr ""
+
+#: src/top/top_nls.c:527
+msgid "Open Files"
+msgstr "ფáƒáƒ˜áƒšáƒ”ბის გáƒáƒ®áƒ¡áƒœáƒ"
+
+#: src/top/top_nls.c:528
+msgid "NUMA Info"
+msgstr "NUMA-ის ინფáƒáƒ áƒ›áƒáƒªáƒ˜áƒ"
+
+#: src/top/top_nls.c:529
+msgid "Log"
+msgstr "ჟურნáƒáƒšáƒ˜"
+
+#: src/top/top_nls.c:530
+msgid ""
+"the '=' key will eventually show the actual file read or command(s) "
+"executed ..."
+msgstr ""
+
+#: src/top/top_nls.c:531
+msgid "demo"
+msgstr "დემáƒ"
+
+#: src/top/top_nls.c:532
+#, c-format
+msgid ""
+"This is simulated output representing the contents of some file or the "
+"output\n"
+"from some command. Exactly which commands and/or files are solely up to "
+"you.\n"
+"\n"
+"Although this text is for information purposes only, it can still be "
+"scrolled\n"
+"and searched like real output will be. You are encouraged to experiment "
+"with\n"
+"those features as explained in the prologue above.\n"
+"\n"
+"To enable real Inspect functionality, entries must be added to the end of "
+"the\n"
+"top personal personal configuration file. You could use your favorite "
+"editor\n"
+"to accomplish this, taking care not to disturb existing entries.\n"
+"\n"
+"Another way to add entries is illustrated below, but it risks overwriting "
+"the\n"
+"rcfile. Redirected echoes must not replace (>) but append (>>) to that "
+"file.\n"
+"\n"
+" /bin/echo -e \"pipe\\tOpen Files\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+" /bin/echo -e \"file\\tNUMA Info\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+" /bin/echo -e \"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr\" >> ~/."
+"toprc\n"
+"\n"
+"If you don't know the location or name of the top rcfile, use the 'W' "
+"command\n"
+"and note those details. After backing up the current rcfile, try issuing "
+"the\n"
+"above echoes exactly as shown, replacing '.toprc' as appropriate. The "
+"safest\n"
+"approach would be to use copy then paste to avoid any typing mistakes.\n"
+"\n"
+"Finally, restart top to reveal what actual Inspect entries combined with "
+"this\n"
+"new command can offer. The possibilities are endless, especially "
+"considering\n"
+"that 'pipe' type entries can include shell scripts too!\n"
+"\n"
+"For additional important information, please consult the top(1) man "
+"document.\n"
+"Then, enhance top with your very own customized 'file' and/or 'pipe' "
+"entries.\n"
+"\n"
+"Enjoy!\n"
+msgstr ""
+
+#: src/top/top_nls.c:564
+msgid "to enable 'Y' press <Enter> then type 'W' and restart top"
+msgstr ""
+
+#: src/top/top_nls.c:565
+msgid "to enable 'Y' please consult the top man page (press Enter)"
+msgstr ""
+
+#: src/top/top_nls.c:566
+#, c-format
+msgid "Selection failed with: %s\n"
+msgstr ""
+
+#: src/top/top_nls.c:567
+#, c-format
+msgid "unable to inspect, pid %d not found"
+msgstr ""
+
+#: src/top/top_nls.c:568
+#, c-format
+msgid "inspect at PID [default pid = %d]"
+msgstr ""
+
+#: src/top/top_nls.c:569
+#, c-format
+msgid "%s: %*d-%-*d lines, %*d-%*d columns, %lu bytes read"
+msgstr ""
+
+#: src/top/top_nls.c:570
+msgid "patience please, working ..."
+msgstr "მáƒáƒ˜áƒ—მინეთ, გეთáƒáƒ§áƒ•áƒ, ვმუშáƒáƒáƒ‘ ..."
+
+#: src/top/top_nls.c:571
+msgid "working, use Ctrl-C to end ..."
+msgstr ""
+
+#. Translation Hint: Below are 2 abbreviations which can be as long as needed:
+#. . FLD = FIELD, VAL = VALUE
+#: src/top/top_nls.c:574
+#, c-format
+msgid "add filter #%d (%s) as: [!]FLD?VAL"
+msgstr ""
+
+#: src/top/top_nls.c:575
+msgid "ignoring case"
+msgstr "რეგისტრის იგნáƒáƒ áƒ˜"
+
+#: src/top/top_nls.c:576
+msgid "case sensitive"
+msgstr "დიდი დრპáƒáƒ¢áƒáƒ áƒ áƒáƒ¡áƒáƒ”ბის გáƒáƒœáƒ¡áƒ®áƒ•áƒáƒ•áƒ”ბáƒ"
+
+#: src/top/top_nls.c:577
+msgid "duplicate filter was ignored"
+msgstr ""
+
+#: src/top/top_nls.c:578
+#, c-format
+msgid "'%s' filter delimiter is missing"
+msgstr ""
+
+#: src/top/top_nls.c:579
+#, c-format
+msgid "'%s' filter value is missing"
+msgstr ""
+
+#: src/top/top_nls.c:580
+msgid "include"
+msgstr "ჩáƒáƒ¡áƒ›áƒ"
+
+#: src/top/top_nls.c:581
+msgid "exclude"
+msgstr "გáƒáƒ›áƒáƒ áƒ˜áƒªáƒ®áƒ•áƒ"
+
+#: src/top/top_nls.c:582
+#, c-format
+msgid "<Enter> to resume, filters: %s"
+msgstr ""
+
+#: src/top/top_nls.c:583
+msgid "none"
+msgstr "áƒáƒ áƒªáƒ”რთი"
+
+#. Translation Hint: The following word 'Node' should be exactly
+#. 4 characters, excluding leading %%, fmt chars & colon)
+#: src/top/top_nls.c:586
+#, c-format
+msgid "%%Node%-2d:"
+msgstr ""
+
+#: src/top/top_nls.c:587
+#, c-format
+msgid "expand which numa node (0-%d)"
+msgstr ""
+
+#: src/top/top_nls.c:588
+msgid "invalid numa node"
+msgstr "áƒáƒ áƒáƒ¡áƒ¬áƒáƒ áƒ˜ კვáƒáƒœáƒ«áƒ˜"
+
+#: src/top/top_nls.c:589
+msgid "sorry, NUMA extensions unavailable"
+msgstr "უკáƒáƒªáƒ áƒáƒ•áƒáƒ“, NUMA-ის გáƒáƒ¤áƒáƒ áƒ—áƒáƒ”ბები მáƒáƒ£áƒ¬áƒ•áƒ“áƒáƒ›áƒ”ლიáƒ"
+
+#. Translation Hint: 'Mem ' is an abbreviation for physical memory/ram
+#. . 'Swap' represents the linux swap file --
+#. . please make both translations exactly 4 characters,
+#. . padding with extra spaces as necessary
+#: src/top/top_nls.c:594
+msgid "Mem "
+msgstr "Mem "
+
+#: src/top/top_nls.c:595
+msgid "Swap"
+msgstr "სვáƒáƒžáƒ˜"
+
+#: src/top/top_nls.c:596
+#, c-format
+msgid "library failed memory statistics, at %d: %s"
+msgstr ""
+
+#: src/top/top_nls.c:597
+#, c-format
+msgid "library failed cpu statistics, at %d: %s"
+msgstr ""
+
+#: src/top/top_nls.c:598
+#, c-format
+msgid "library failed pids statistics, at %d: %s"
+msgstr ""
+
+#: src/top/top_nls.c:599
+#, c-format
+msgid "bad memory scaling arg '%s'"
+msgstr ""
+
+#: src/top/top_nls.c:600
+#, c-format
+msgid "PID to collapse/expand [default pid = %d]"
+msgstr ""
+
+#: src/top/top_nls.c:601
+msgid "wrong mode, command inactive"
+msgstr ""
+
+#: src/top/top_nls.c:602
+msgid "saving prevents older top from reading, save anyway?"
+msgstr ""
+
+#: src/top/top_nls.c:603
+#, c-format
+msgid "failed sem_init() at %d: %s"
+msgstr "sem_init()-ის შეცდáƒáƒ›áƒ მისáƒáƒ›áƒáƒ áƒ—ზე %d: %s"
+
+#: src/top/top_nls.c:604
+#, c-format
+msgid "failed pthread_create() at %d: %s"
+msgstr "pthread_create() -ის შეცდáƒáƒ›áƒ მისáƒáƒ›áƒáƒ áƒ—ზე %d: %s"
+
+#: src/top/top_nls.c:605
+msgid "sorry, restricted namespace with reduced functionality"
+msgstr ""
+
+#: src/top/top_nls.c:606
+#, c-format
+msgid "set pid %d AGNI value to"
+msgstr ""
+
+#: src/top/top_nls.c:607
+msgid "valid AGNI range is -20 to +19"
+msgstr ""
+
+#: src/top/top_nls.c:608
+#, c-format
+msgid "autogroup open failed, %s"
+msgstr "ფáƒáƒ˜áƒšáƒ˜áƒ¡ გáƒáƒ®áƒ¡áƒœáƒ˜áƒ¡ შეცდáƒáƒ›áƒ: %s"
+
+#: src/top/top_nls.c:609
+#, c-format
+msgid "autogroup write failed, %s"
+msgstr ""
+
+#: src/top/top_nls.c:610
+#, c-format
+msgid "command line for pid %d, %s"
+msgstr ""
+
+#: src/top/top_nls.c:611
+#, c-format
+msgid "control groups for pid %d, %s"
+msgstr ""
+
+#: src/top/top_nls.c:612
+#, c-format
+msgid "environment for pid %d, %s"
+msgstr ""
+
+#: src/top/top_nls.c:613
+#, c-format
+msgid "namespaces for pid %d, %s"
+msgstr ""
+
+#: src/top/top_nls.c:614
+msgid "n/a"
+msgstr "მიუწვდáƒáƒ›áƒ”ლიáƒ"
+
+#: src/top/top_nls.c:615
+#, c-format
+msgid "supplementary groups for pid %d, %s"
+msgstr ""
+
+#: src/top/top_nls.c:616
+msgid "message log, last 10 messages:"
+msgstr ""
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The next several text groups contain special escape sequences
+#. . representing values used to index a table at run-time.
+#. .
+#. . Each such sequence consists of a tilde (~) followed by an ascii
+#. . number in the range of '1' - '8'. Examples are '~2', '~8', etc.
+#. . These escape sequences must never themselves be translated but
+#. . could be deleted.
+#. .
+#. . If you remove these escape sequences (both tilde and number) it
+#. . would make translation easier. However, the ability to display
+#. . colors and bold text at run-time will have been lost.
+#. .
+#. . Additionally, each of these text groups was designed to display
+#. . in a 80x24 terminal window. Hopefully, any translations will
+#. . adhere to that goal lest the translated text be truncated.
+#. .
+#. . If you would like additional information regarding these strings,
+#. . please see the prologue to the show_special function in the top.c
+#. . source file.
+#. .
+#. . Caution:
+#. . The next three items represent pages for interacting with a user.
+#. . In all cases, the last lines of text must be treated with care.
+#. .
+#. . They must not end with a newline character so that at runtime the
+#. . cursor will remain on that final text line.
+#. .
+#. . Also, the special sequences (tilde+number) must not appear on the
+#. . last line (the one without the newline). So please avoid any line
+#. . wraps that could place them there.
+#. .
+#: src/top/top_nls.c:661
+#, c-format
+msgid ""
+"Help for Interactive Commands~2 - %s\n"
+"Window ~1%s~6: ~1Cumulative mode ~3%s~2. ~1System~6: ~1Delay ~3%.1f secs~2; "
+"~1Secure mode ~3%s~2.\n"
+"\n"
+" Z~5,~1B~5,E,e Global: '~1Z~2' colors; '~1B~2' bold; '~1E~2'/'~1e~2' "
+"summary/task memory scale\n"
+" l,t,m,I,0 Toggle: '~1l~2' load avg; '~1t~2' task/cpu; '~1m~2' memory; "
+"'~1I~2' Irix; '~10~2' zeros\n"
+" 1,2,3,4,5 Toggle: '~11~2/~12~2/~13~2' cpu/numa views; '~14~2' cpus "
+"abreast; '~15~2' P/E-cores\n"
+" f,X Fields: '~1f~2' add/remove/order/sort; '~1X~2' increase fixed-"
+"width fields\n"
+"\n"
+" L,&,<,> . Locate: '~1L~2'/'~1&~2' find/again; Move sort column: "
+"'~1<~2'/'~1>~2' left/right\n"
+" R,H,J,C . Toggle: '~1R~2' Sort; '~1H~2' Threads; '~1J~2' Num justify; "
+"'~1C~2' Coordinates\n"
+" c,i,S,j . Toggle: '~1c~2' Cmd name/line; '~1i~2' Idle; '~1S~2' Time; "
+"'~1j~2' Str justify\n"
+" x~5,~1y~5 . Toggle highlights: '~1x~2' sort field; '~1y~2' running "
+"tasks\n"
+" z~5,~1b~5 . Toggle: '~1z~2' color/mono; '~1b~2' bold/reverse (only if "
+"'x' or 'y')\n"
+" u,U,o,O . Filter by: '~1u~2'/'~1U~2' effective/any user; '~1o~2'/'~1O~2' "
+"other criteria\n"
+" n,#,^O . Set: '~1n~2'/'~1#~2' max tasks displayed; Show: ~1Ctrl~2+'~1O~2' "
+"other filter(s)\n"
+" V,v,F . Toggle: '~1V~2' forest view; '~1v~2' hide/show children; '~1F~2' "
+"keep focused\n"
+"\n"
+"%s ^G,K,N,U View: ctl groups ~1^G~2; cmdline ~1^K~2; environment ~1^N~2; "
+"supp groups ~1^U~2\n"
+" Y,!,^E,P Inspect '~1Y~2'; Combine Cpus '~1!~2'; Scale time ~1^E~2; View "
+"namespaces ~1^P~2\n"
+" W,q Write config file '~1W~2'; Quit '~1q~2'\n"
+" ( commands shown with '.' require a ~1visible~2 task display "
+"~1window~2 ) \n"
+"Press '~1h~2' or '~1?~2' for help with ~1Windows~2,\n"
+"Type 'q' or <Esc> to continue "
+msgstr ""
+
+#: src/top/top_nls.c:687
+#, c-format
+msgid ""
+"Help for Windows / Field Groups~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+". Use multiple ~1windows~2, each with separate config opts (color,fields,"
+"sort,etc)\n"
+". The 'current' window controls the ~1Summary Area~2 and responds to your "
+"~1Commands~2\n"
+" . that window's ~1task display~2 can be turned ~1Off~2 & ~1On~2, growing/"
+"shrinking others\n"
+" . with ~1NO~2 task display, some commands will be ~1disabled~2 "
+"('i','R','n','c', etc)\n"
+" until a ~1different window~2 has been activated, making it the 'current' "
+"window\n"
+". You ~1change~2 the 'current' window by: ~1 1~2) cycling forward/backward;"
+"~1 2~2) choosing\n"
+" a specific field group; or~1 3~2) exiting the color mapping or fields "
+"screens\n"
+". Commands ~1available anytime -------------~2\n"
+" A . Alternate display mode toggle, show ~1Single~2 / ~1Multiple~2 "
+"windows\n"
+" g . Choose another field group and make it 'current', or change "
+"now\n"
+" by selecting a number from: ~1 1~2 =%s;~1 2~2 =%s;~1 3~2 =%s; "
+"or~1 4~2 =%s\n"
+". Commands ~1requiring~2 '~1A~2' mode~1 -------------~2\n"
+" G . Change the ~1Name~5 of the 'current' window/field group\n"
+" ~1*~4 a , w . Cycle through all four windows: '~1a~5' Forward; '~1w~5' "
+"Backward\n"
+" ~1*~4 - , _ . Show/Hide: '~1-~5' ~1Current~2 window; '~1_~5' all "
+"~1Visible~2/~1Invisible~2\n"
+" The screen will be divided evenly between task displays. But you can "
+"make\n"
+" some ~1larger~2 or ~1smaller~2, using '~1n~2' and '~1i~2' commands. Then "
+"later you could:\n"
+" ~1*~4 = , + . Rebalance tasks: '~1=~5' ~1Current~2 window; '~1+~5' "
+"~1Every~2 window\n"
+" (this also forces the ~1current~2 or ~1every~2 window to "
+"become visible)\n"
+"\n"
+"In '~1A~2' mode, '~1*~4' keys are your ~1essential~2 commands. Please try "
+"the '~1a~2' and '~1w~2'\n"
+"commands plus the 'g' sub-commands NOW. Press <Enter> to make 'Current' "
+msgstr ""
+
+#. Translation Notes ------------------------------------------------
+#. . The following 'Help for color mapping' simulated screen should
+#. . probably NOT be translated. It is terribly hard to follow in
+#. . this form and any translation could produce unpleasing results
+#. . that are unlikely to parallel the running top program.
+#. .
+#. . If you decide to proceed with translation, please take care
+#. . to not disturb the spaces and the tilde + number delimiters.
+#. .
+#: src/top/top_nls.c:722
+#, c-format
+msgid ""
+"Help for color mapping~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+" color - 04:25:44 up 8 days, 50 min, 7 users, load average:\n"
+" Tasks:~3 64 ~2total,~3 2 ~3running,~3 62 ~2sleeping,~3 0 ~2stopped,"
+"~3\n"
+" %%Cpu(s):~3 76.5 ~2user,~3 11.2 ~2system,~3 0.0 ~2nice,~3 12.3 "
+"~2idle~3\n"
+" ~1 Nasty Message! ~4 -or- ~1Input Prompt~5\n"
+" ~1 PID TTY PR NI %%CPU TIME+ VIRT SWAP S COMMAND ~6\n"
+" 17284 ~8pts/2 ~7 8 0 0.0 0:00.75 1380 0 S /bin/bash ~8\n"
+" ~1 8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z~7\n"
+" 11005 ~8? ~7 9 0 0.0 0:02.50 2852 1008 S amor -sessi~8\n"
+" available toggles: ~1B~2 =disable bold globally (~1%s~2),\n"
+" ~1z~2 =color/mono (~1%s~2), ~1b~2 =tasks \"bold\"/reverse (~1%s~2)\n"
+"\n"
+"1) Select a ~1target~2 as an upper case letter, ~1current target~2 is ~1 %c "
+"~4:\n"
+" S~2 = Summary Data,~1 M~2 = Messages/Prompts,\n"
+" H~2 = Column Heads,~1 T~2 = Task Information\n"
+"2) Select a ~1color~2 as a number or use the up/down arrow keys\n"
+" to raise/lower the %d colors value, ~1current color~2 is ~1 %d ~4:\n"
+" 0~2 = black,~1 1~2 = red, ~1 2~2 = green,~1 3~2 = yellow,\n"
+" 4~2 = blue, ~1 5~2 = magenta,~1 6~2 = cyan, ~1 7~2 = white\n"
+"\n"
+"3) Then use these keys when finished:\n"
+" 'q' or <Esc> to abort changes to window '~1%s~2'\n"
+" 'a' or 'w' to commit & change another, <Enter> to commit and end "
+msgstr ""
+
+#. Translation Hint: As is true for the text above, the "keys" shown to the left and
+#. . also embedded in the translatable text (along with escape seqs)
+#. . should never themselves be translated.
+#: src/top/top_nls.c:751
+msgid ""
+" d,k,r,^R '~1d~2' set delay; '~1k~2' kill; '~1r~2' renice; ~1Ctrl~2+'~1R~2' "
+"renice autogroup\n"
+msgstr ""
+
+#. Translation Hint:
+#. . This Fields Management header should be 3 lines long so as
+#. . to allow 1 blank line before the fields & descriptions.
+#. . If absolutely necessary, 4 lines could be used (but never more).
+#. .
+#: src/top/top_nls.c:759
+#, c-format
+msgid ""
+"Fields Management~2 for window ~1%s~6, whose current sort field is ~1%s~2\n"
+" Navigate with Up/Dn, Right selects for move then <Enter> or Left "
+"commits,\n"
+" 'd' or <Space> toggles display, 's' sets sort. Use 'q' or <Esc> to end!\n"
+msgstr ""
+
+#. Translation Hint:
+#. . The next 5 items must each be translated as a single line.
+#. .
+#: src/top/top_nls.c:767
+#, c-format
+msgid ""
+"%s:~3 %3u ~2total,~3 %3u ~2running,~3 %3u ~2sleeping,~3 %3u ~2stopped,~3 %3u "
+"~2zombie~3\n"
+msgstr ""
+
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt
+#: src/top/top_nls.c:773
+#, c-format
+msgid ""
+"%s~3 %#5.1f ~2us,~3 %#5.1f ~2sy,~3 %#5.1f ~2ni,~3 %#5.1f ~2id,~3 %#5.1f ~2wa,"
+"~3 %#5.1f ~2hi,~3 %#5.1f ~2si~3 ~1"
+msgstr ""
+
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt, st = steal time
+#: src/top/top_nls.c:779
+#, c-format
+msgid ""
+"%s~3%#5.1f ~2us,~3%#5.1f ~2sy,~3%#5.1f ~2ni,~3%#5.1f ~2id,~3%#5.1f ~2wa,"
+"~3%#5.1f ~2hi,~3%#5.1f ~2si,~3%#5.1f ~2st~3 ~1"
+msgstr ""
+
+#. Translation Hint: next 2 must be treated together, with WORDS above & below aligned
+#: src/top/top_nls.c:783
+#, c-format
+msgid ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used,~3 %9.9s~2buff/cache~3 "
+"~1 "
+msgstr ""
+
+#: src/top/top_nls.c:785
+#, c-format
+msgid ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used.~3 %9.9s~2avail %s~3"
+msgstr ""
+
+#. Translation Hint:
+#. . The next 2 headers for 'Inspection' must each be 3 lines or less
+#. .
+#: src/top/top_nls.c:791
+#, c-format
+msgid ""
+"Inspection~2 Pause at: pid ~1%d~6, running ~1%s~6\n"
+"Use~2: left/right then <Enter> to ~1select~5 an option; 'q' or <Esc> to "
+"~1end~5 !\n"
+"Options~2: ~1%s\n"
+msgstr ""
+
+#: src/top/top_nls.c:796
+#, c-format
+msgid ""
+"Inspection~2 View at pid: ~1%s~3, running ~1%s~3. Locating: ~1%s~6\n"
+"Use~2: left/right/up/down/etc to ~1navigate~5 the output; 'L'/'&' to "
+"~1locate~5/~1next~5.\n"
+"Or~2: <Enter> to ~1select another~5; 'q' or <Esc> to ~1end~5 !\n"
+msgstr ""
+
+#: src/uptime.c:51 src/uptime.c:123
+msgid "Cannot get system uptime"
+msgstr ""
+
+#: src/uptime.c:67
+msgid " -p, --pretty show uptime in pretty format\n"
+msgstr ""
+
+#: src/uptime.c:69
+msgid " -s, --since system up since\n"
+msgstr ""
+
+#: src/vmstat.c:220
+#, c-format
+msgid " %s [options] [delay [count]]\n"
+msgstr " %s [options] [დáƒáƒ§áƒáƒ•áƒœáƒ”ბრ[რáƒáƒáƒ“ენáƒáƒ‘áƒ]]\n"
+
+#: src/vmstat.c:223
+msgid " -a, --active active/inactive memory\n"
+msgstr ""
+
+#: src/vmstat.c:224
+msgid " -f, --forks number of forks since boot\n"
+msgstr ""
+
+#: src/vmstat.c:225
+msgid " -m, --slabs slabinfo\n"
+msgstr ""
+
+#: src/vmstat.c:226
+msgid " -n, --one-header do not redisplay header\n"
+msgstr ""
+
+#: src/vmstat.c:227
+msgid " -s, --stats event counter statistics\n"
+msgstr ""
+
+#: src/vmstat.c:228
+msgid " -d, --disk disk statistics\n"
+msgstr ""
+
+#: src/vmstat.c:229
+msgid " -D, --disk-sum summarize disk statistics\n"
+msgstr ""
+
+#: src/vmstat.c:230
+msgid " -p, --partition <dev> partition specific statistics\n"
+msgstr ""
+
+#: src/vmstat.c:231
+msgid " -S, --unit <char> define display unit\n"
+msgstr ""
+
+#: src/vmstat.c:232
+msgid " -w, --wide wide output\n"
+msgstr " -w, --wide ფáƒáƒ áƒ—რგáƒáƒ›áƒáƒ¢áƒáƒœáƒ\n"
+
+#: src/vmstat.c:233
+msgid " -t, --timestamp show timestamp\n"
+msgstr " -t, --timestamp დრáƒáƒ˜áƒ¡ შტáƒáƒ›áƒžáƒ˜áƒ¡ ჩვენებáƒ\n"
+
+#: src/vmstat.c:234
+msgid " -y, --no-first skips first line of output\n"
+msgstr " -w, --wide ფáƒáƒ áƒ—რგáƒáƒ›áƒáƒ¢áƒáƒœáƒ\n"
+
+#: src/vmstat.c:253
+msgid ""
+"procs -----------memory---------- ---swap-- -----io---- -system-- -------"
+"cpu-------"
+msgstr ""
+
+#: src/vmstat.c:255
+msgid ""
+"--procs-- -----------------------memory---------------------- ---swap-- -----"
+"io---- -system-- ----------cpu----------"
+msgstr ""
+
+#: src/vmstat.c:256 src/vmstat.c:619
+msgid " -----timestamp-----"
+msgstr ""
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:275
+msgid "r"
+msgstr "r"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:277
+msgid "b"
+msgstr "b"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:279
+msgid "swpd"
+msgstr "swpd"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:281
+msgid "free"
+msgstr "თáƒáƒ•áƒ˜áƒ¡áƒ£áƒ¤áƒáƒšáƒ˜áƒ"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:283
+msgid "inact"
+msgstr "inact"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:285
+msgid "buff"
+msgstr "buff"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:287
+msgid "active"
+msgstr "áƒáƒ¥áƒ¢áƒ˜áƒ£áƒ áƒ˜"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:289
+msgid "cache"
+msgstr "cache"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:291
+msgid "si"
+msgstr "si"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:293
+msgid "so"
+msgstr "so"
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:295
+msgid "bi"
+msgstr "bi"
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:297
+msgid "bo"
+msgstr "bo"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:299
+msgid "in"
+msgstr "in"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:301
+msgid "cs"
+msgstr "cs"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:303
+msgid "us"
+msgstr "us"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:305
+msgid "sy"
+msgstr "sy"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:307
+msgid "id"
+msgstr "id"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:309
+msgid "wa"
+msgstr "wa"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:311
+msgid "st"
+msgstr "st"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:313
+msgid "gu"
+msgstr "gu"
+
+#: src/vmstat.c:374 src/vmstat.c:870
+msgid "Unable to create vmstat structure"
+msgstr ""
+
+#: src/vmstat.c:376 src/vmstat.c:866 src/vmstat.c:919
+msgid "Unable to create system stat structure"
+msgstr ""
+
+#: src/vmstat.c:380
+msgid "Unable to get uptime"
+msgstr "ჩáƒáƒ áƒ—ულáƒáƒ‘ის დრáƒáƒ˜áƒ¡ მიღებრშეუძლებელიáƒ"
+
+#: src/vmstat.c:391 src/vmstat.c:472 src/vmstat.c:874
+msgid "Unable to select memory information"
+msgstr ""
+
+#: src/vmstat.c:405 src/vmstat.c:458 src/vmstat.c:868
+msgid "Unable to select stat information"
+msgstr ""
+
+#. Translation Hint: Translating folloging disk partition
+#. * header fields that follow (marked with max x chars) might
+#. * not work, unless manual page is translated as well.
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:565
+msgid "reads"
+msgstr "წáƒáƒ™áƒ˜áƒ—ხვები"
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:567
+msgid "read sectors"
+msgstr "წáƒáƒ™áƒ˜áƒ—ხ სექტ"
+
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:569
+msgid "writes"
+msgstr "ჩáƒáƒ¬áƒ”რები"
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:571
+msgid "requested writes"
+msgstr "მáƒáƒ—ხ ჩáƒáƒ¬"
+
+#: src/vmstat.c:584 src/vmstat.c:687 src/vmstat.c:813
+msgid "Unable to create diskstat structure"
+msgstr ""
+
+#: src/vmstat.c:587 src/vmstat.c:593
+#, c-format
+msgid "Disk/Partition %s not found"
+msgstr "დისკი/დáƒáƒœáƒáƒ§áƒáƒ¤áƒ˜ %s ვერ ვიპáƒáƒ•áƒ”"
+
+#: src/vmstat.c:616
+msgid ""
+"disk- ------------reads------------ ------------writes----------- -----"
+"IO------"
+msgstr ""
+
+#: src/vmstat.c:618
+msgid ""
+"disk- -------------------reads------------------- -------------------"
+"writes------------------ ------IO-------"
+msgstr ""
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:637 src/vmstat.c:645
+msgid "total"
+msgstr "ჯáƒáƒ›áƒ¨áƒ˜"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:639 src/vmstat.c:647
+msgid "merged"
+msgstr "შერწყმ"
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:641 src/vmstat.c:649
+msgid "sectors"
+msgstr "სექტ-ები"
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:643 src/vmstat.c:651
+msgid "ms"
+msgstr "მწმ"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:653
+msgid "cur"
+msgstr "მიმდ"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:655
+msgid "sec"
+msgstr "წმ"
+
+#: src/vmstat.c:694 src/vmstat.c:815
+msgid "Unable to retrieve disk statistics"
+msgstr ""
+
+#. Translation Hint: Translating folloging slab fields that
+#. * follow (marked with max x chars) might not work, unless
+#. * manual page is translated as well.
+#. Translation Hint: max 24 chars
+#: src/vmstat.c:741
+msgid "Cache"
+msgstr "კეში"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:743
+msgid "Num"
+msgstr "რიცხვი"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:745
+msgid "Total"
+msgstr "ჯáƒáƒ›áƒ¨áƒ˜"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:747
+msgid "Size"
+msgstr "ზáƒáƒ›áƒ"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:749
+msgid "Pages"
+msgstr "გვერდი"
+
+#: src/vmstat.c:836
+#, c-format
+msgid "%13d disks\n"
+msgstr "%13d დისკი \n"
+
+#: src/vmstat.c:837
+#, c-format
+msgid "%13d partitions\n"
+msgstr "%13d დáƒáƒœáƒáƒ§áƒáƒ¤áƒ˜ \n"
+
+#: src/vmstat.c:838
+#, c-format
+msgid "%13lu total reads\n"
+msgstr "%13lu სულ წáƒáƒ™áƒ˜áƒ—ხვáƒ\n"
+
+#: src/vmstat.c:839
+#, c-format
+msgid "%13lu merged reads\n"
+msgstr "%13lu შერწყმული წáƒáƒ™áƒ˜áƒ—ხვáƒ\n"
+
+#: src/vmstat.c:840
+#, c-format
+msgid "%13lu read sectors\n"
+msgstr "%13lu წáƒáƒ™áƒ˜áƒ—ხული სექტáƒáƒ áƒ˜\n"
+
+#: src/vmstat.c:841
+#, c-format
+msgid "%13lu milli reading\n"
+msgstr "%13lu მილი წáƒáƒ™áƒ˜áƒ—ხვáƒ\n"
+
+#: src/vmstat.c:842
+#, c-format
+msgid "%13lu writes\n"
+msgstr "%13lu ჩáƒáƒ¬áƒ”რáƒ\n"
+
+#: src/vmstat.c:843
+#, c-format
+msgid "%13lu merged writes\n"
+msgstr "%13lu შერწყმული ჩáƒáƒ¬áƒ”რáƒ\n"
+
+#: src/vmstat.c:844
+#, c-format
+msgid "%13lu written sectors\n"
+msgstr "%13lu ჩáƒáƒ¬áƒ”რილი სექტáƒáƒ áƒ˜\n"
+
+#: src/vmstat.c:845
+#, c-format
+msgid "%13lu milli writing\n"
+msgstr "%13lu მილი ჩáƒáƒ¬áƒ”რáƒ\n"
+
+#: src/vmstat.c:846
+#, c-format
+msgid "%13lu inprogress IO\n"
+msgstr "%13lu მიმდინáƒáƒ áƒ” IO\n"
+
+#: src/vmstat.c:847
+#, c-format
+msgid "%13lu milli spent IO\n"
+msgstr "%13lu მილი დáƒáƒ®áƒáƒ áƒ¯áƒ£áƒšáƒ˜ IO\n"
+
+#: src/vmstat.c:848
+#, c-format
+msgid "%13lu milli weighted IO\n"
+msgstr "%13lu მილი დáƒáƒ®áƒáƒ áƒ¯áƒ£áƒšáƒ˜ IO\n"
+
+#: src/vmstat.c:876
+#, c-format
+msgid "%13lu %s total memory\n"
+msgstr "%13lu %s სულ მეხსიერებáƒ\n"
+
+#: src/vmstat.c:877
+#, c-format
+msgid "%13lu %s used memory\n"
+msgstr "%13lu %s გáƒáƒ›áƒáƒ§áƒ”ნებული მეხსიერებáƒ\n"
+
+#: src/vmstat.c:878
+#, c-format
+msgid "%13lu %s active memory\n"
+msgstr "%13lu %s áƒáƒ¥áƒ¢áƒ˜áƒ£áƒ áƒ˜ მეხსიერებáƒ\n"
+
+#: src/vmstat.c:879
+#, c-format
+msgid "%13lu %s inactive memory\n"
+msgstr "%13lu %s áƒáƒ áƒáƒáƒ¥áƒ¢áƒ˜áƒ£áƒ áƒ˜ მეხსიერებáƒ\n"
+
+#: src/vmstat.c:880
+#, c-format
+msgid "%13lu %s free memory\n"
+msgstr "%13lu %s თáƒáƒ•áƒ˜áƒ¡áƒ£áƒ¤áƒáƒšáƒ˜ მეხსიერებáƒ\n"
+
+#: src/vmstat.c:881
+#, c-format
+msgid "%13lu %s buffer memory\n"
+msgstr "%13lu %s ბუფერის მეხსიერებáƒ\n"
+
+#: src/vmstat.c:882
+#, c-format
+msgid "%13lu %s swap cache\n"
+msgstr "%13lu %s სვáƒáƒžáƒ˜áƒ¡ ქეში\n"
+
+#: src/vmstat.c:883
+#, c-format
+msgid "%13lu %s total swap\n"
+msgstr "%13lu %s ჯáƒáƒ›áƒ£áƒ áƒ˜ სვáƒáƒžáƒ˜\n"
+
+#: src/vmstat.c:884
+#, c-format
+msgid "%13lu %s used swap\n"
+msgstr "%13lu %s გáƒáƒ›áƒáƒ§áƒ”ნებული სვáƒáƒžáƒ˜\n"
+
+#: src/vmstat.c:885
+#, c-format
+msgid "%13lu %s free swap\n"
+msgstr "%13lu %s თáƒáƒ•áƒ˜áƒ¡áƒ£áƒ¤áƒáƒšáƒ˜ სვáƒáƒžáƒ˜\n"
+
+#: src/vmstat.c:886
+#, c-format
+msgid "%13lld non-nice user cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:887
+#, c-format
+msgid "%13lld nice user cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:888
+#, c-format
+msgid "%13lld system cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:889
+#, c-format
+msgid "%13lld idle cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:890
+#, c-format
+msgid "%13lld IO-wait cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:891
+#, c-format
+msgid "%13lld IRQ cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:892
+#, c-format
+msgid "%13lld softirq cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:893
+#, c-format
+msgid "%13lld stolen cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:894
+#, c-format
+msgid "%13lld non-nice guest cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:895
+#, c-format
+msgid "%13lld nice guest cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:896
+#, c-format
+msgid "%13lu K paged in\n"
+msgstr "%13lu შერწყმული ჩáƒáƒ¬áƒ”რáƒ\n"
+
+#: src/vmstat.c:897
+#, c-format
+msgid "%13lu K paged out\n"
+msgstr "%13lu შერწყმული ჩáƒáƒ¬áƒ”რáƒ\n"
+
+#: src/vmstat.c:898
+#, c-format
+msgid "%13lu pages swapped in\n"
+msgstr ""
+
+#: src/vmstat.c:899
+#, c-format
+msgid "%13lu pages swapped out\n"
+msgstr ""
+
+#: src/vmstat.c:900
+#, c-format
+msgid "%13lu interrupts\n"
+msgstr "%13lu წყვეტáƒ\n"
+
+#: src/vmstat.c:901
+#, c-format
+msgid "%13lu CPU context switches\n"
+msgstr "%13lu ჩáƒáƒ¬áƒ”რáƒ\n"
+
+#: src/vmstat.c:902
+#, c-format
+msgid "%13lu boot time\n"
+msgstr "%13lu ჩáƒáƒ¢áƒ•áƒ˜áƒ áƒ—ვის დრáƒ\n"
+
+#: src/vmstat.c:903 src/vmstat.c:921
+#, c-format
+msgid "%13lu forks\n"
+msgstr "%13lu ფáƒáƒ áƒ™áƒ˜\n"
+
+#. Translation Hint: do not change argument characters
+#: src/vmstat.c:1024
+msgid "-S requires k, K, m or M (default is KiB)"
+msgstr ""
+
+#: src/watch.c:94
+#, c-format
+msgid " %s [options] command\n"
+msgstr " %s [პáƒáƒ áƒáƒ›áƒ”ტრი] ბრძáƒáƒœáƒ”ბáƒ\n"
+
+#: src/watch.c:96
+msgid " -b, --beep beep if command has a non-zero exit\n"
+msgstr ""
+
+#: src/watch.c:97
+msgid " -c, --color interpret ANSI color and style sequences\n"
+msgstr ""
+
+#: src/watch.c:98
+msgid ""
+" -C, --no-color do not interpret ANSI color and style sequences\n"
+msgstr ""
+
+#: src/watch.c:99
+msgid ""
+" -d, --differences[=<permanent>]\n"
+" highlight changes between updates\n"
+msgstr ""
+
+#: src/watch.c:101
+msgid " -e, --errexit exit if command has a non-zero exit\n"
+msgstr ""
+
+#: src/watch.c:102
+msgid " -g, --chgexit exit when output from command changes\n"
+msgstr ""
+
+#: src/watch.c:103
+msgid ""
+" -q, --equexit <cycles>\n"
+" exit when output from command does not change\n"
+msgstr ""
+
+#: src/watch.c:105
+msgid " -n, --interval <secs> seconds to wait between updates\n"
+msgstr ""
+
+#: src/watch.c:106
+msgid " -p, --precise attempt run command in precise intervals\n"
+msgstr ""
+
+#: src/watch.c:107
+msgid " -r, --no-rerun do not rerun program on window resize\n"
+msgstr ""
+
+#: src/watch.c:108
+msgid " -t, --no-title turn off header\n"
+msgstr ""
+
+#: src/watch.c:109
+msgid " -w, --no-wrap turn off line wrapping\n"
+msgstr ""
+
+#: src/watch.c:110
+msgid " -x, --exec pass command to exec instead of \"sh -c\"\n"
+msgstr ""
+
+#: src/watch.c:113
+msgid " -v, --version output version information and exit\n"
+msgstr " -V, --version ვერსიის ჩვენებრდრგáƒáƒ¡áƒ•áƒšáƒ\n"
+
+#: src/watch.c:485
+#, c-format
+msgid "Every %.1fs: "
+msgstr ""
+
+#: src/watch.c:486
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: src/watch.c:575
+msgid "unable to create IPC pipes"
+msgstr ""
+
+#: src/watch.c:585
+msgid "unable to fork process"
+msgstr ""
+
+#: src/watch.c:590
+msgid "dup2 failed"
+msgstr "dup2 failed"
+
+#: src/watch.c:597
+#, c-format
+msgid "unable to execute '%s'"
+msgstr ""
+
+#: src/watch.c:614
+msgid "fdopen"
+msgstr "fdopen"
+
+#: src/watch.c:788
+msgid "waitpid"
+msgstr "waitpid"
+
+#: src/watch.c:796
+msgid "command exit with a non-zero status, press a key to exit"
+msgstr ""
+
+#: src/watch.c:863
+msgid "Could not parse interval from WATCH_INTERVAL"
+msgstr ""
+
+#: src/watch.c:954
+#, c-format
+msgid "unicode handling error\n"
+msgstr ""
+
+#: src/watch.c:960
+#, c-format
+msgid "unicode handling error (malloc)\n"
+msgstr ""
+
+#: src/w.c:289 src/w.c:304
+#, c-format
+msgid " %2lludays"
+msgstr " %2lluდღე"
+
+#. Translation Hint: Minutes:Seconds
+#. Translation Hint: Hours:Minutes
+#: src/w.c:298 src/w.c:308
+#, c-format
+msgid " %2llu:%02um"
+msgstr " %2llu:%02uწთ"
+
+#. Translation Hint: Seconds:Centiseconds
+#: src/w.c:316
+#, c-format
+msgid " %2llu.%02us"
+msgstr " %2llu.%02uწმ"
+
+#: src/w.c:656
+#, c-format
+msgid " %s [options] [user]\n"
+msgstr " %s [options] [tty]\n"
+
+#: src/w.c:658
+msgid " -h, --no-header do not print header\n"
+msgstr ""
+
+#: src/w.c:659
+msgid " -u, --no-current ignore current process username\n"
+msgstr ""
+
+#: src/w.c:660
+msgid " -s, --short short format\n"
+msgstr ""
+
+#: src/w.c:661
+msgid " -f, --from show remote hostname field\n"
+msgstr ""
+
+#: src/w.c:662
+msgid " -o, --old-style old style output\n"
+msgstr ""
+
+#: src/w.c:663
+msgid ""
+" -i, --ip-addr display IP address instead of hostname (if possible)\n"
+msgstr ""
+
+#: src/w.c:664
+msgid " -p, --pids show the PID(s) of processes in WHAT\n"
+msgstr " -A, -e ყველრპრáƒáƒªáƒ”სი\n"
+
+#: src/w.c:763
+#, c-format
+msgid ""
+"User length environment PROCPS_USERLEN must be between 8 and %i, ignoring.\n"
+msgstr ""
+
+#: src/w.c:773
+#, c-format
+msgid ""
+"from length environment PROCPS_FROMLEN must be between 8 and %d, ignoring\n"
+msgstr ""
+
+#. Translation Hint: Following five uppercase messages are
+#. * headers. Try to keep alignment intact.
+#: src/w.c:799
+#, c-format
+msgid "%-*s TTY "
+msgstr "%-*s TTY "
+
+#: src/w.c:801
+msgid "FROM"
+msgstr "სáƒáƒ˜áƒ“áƒáƒœ"
+
+#: src/w.c:803
+#, c-format
+msgid " LOGIN@ IDLE JCPU PCPU WHAT\n"
+msgstr ""
+
+#: src/w.c:805
+#, c-format
+msgid " IDLE WHAT\n"
+msgstr ""
+
+#: src/w.c:815
+msgid "error getting sessions"
+msgstr ""
+
+#: src/w.c:823
+msgid "get user name failed"
+msgstr ""
+
+#: local/c.h:153
+msgid ""
+"\n"
+"Usage:\n"
+msgstr ""
+"\n"
+"გáƒáƒ›áƒáƒ§áƒ”ნებáƒ:\n"
+
+#: local/c.h:154
+msgid ""
+"\n"
+"Options:\n"
+msgstr ""
+"\n"
+"პáƒáƒ áƒáƒ›áƒ”ტრები:\n"
+
+#: local/c.h:155
+msgid "\n"
+msgstr "\n"
+
+#: local/c.h:156
+msgid " -h, --help display this help and exit\n"
+msgstr ""
+
+#: local/c.h:157
+msgid " -V, --version output version information and exit\n"
+msgstr " -V, --version ვერსიის ჩვენებრდრგáƒáƒ¡áƒ•áƒšáƒ\n"
+
+#: local/c.h:158
+#, c-format
+msgid ""
+"\n"
+"For more details see %s.\n"
+msgstr ""
+"\n"
+"დáƒáƒ›áƒáƒ¢áƒ”ბითი ინფáƒáƒ áƒ›áƒáƒªáƒ˜áƒ˜áƒ¡áƒ—ვის იხილეთ %s.\n"
+
+#: local/c.h:160
+#, c-format
+msgid "%s from %s\n"
+msgstr "%s -ი %s-სგáƒáƒœ\n"
+
+#~ msgid "error: not enough memory\n"
+#~ msgstr "შეცდáƒáƒ›áƒ: áƒáƒ áƒáƒ¡áƒáƒ™áƒ›áƒáƒ áƒ˜áƒ¡áƒ˜ მეხსიერებáƒ\n"
+
+#~ msgid "error: can not access /proc\n"
+#~ msgstr "შეცდáƒáƒ›áƒ: /proc-თáƒáƒœ წვდáƒáƒ›áƒ˜áƒ¡ შეცდáƒáƒ›áƒ\n"
+
+#~ msgid "something at line %d\n"
+#~ msgstr "რáƒáƒ¦áƒáƒª უცნáƒáƒ£áƒ áƒ˜ ხáƒáƒ–ზე %d\n"
+
+#~ msgid ""
+#~ " %s\n"
+#~ "Usage:\n"
+#~ " %s%s"
+#~ msgstr ""
+#~ " %s\n"
+#~ "გáƒáƒ›áƒáƒ§áƒ”ნებáƒ:\n"
+#~ " %s%s"
+
+#~ msgid "failed openproc: %s"
+#~ msgstr "openproc-ის შეცდáƒáƒ›áƒ: %s"
+
+#~ msgid "-%c requires argument"
+#~ msgstr "-%c -ისთვის áƒáƒ áƒ’უმენტის მითითებრáƒáƒ£áƒªáƒ˜áƒšáƒ”ბელიáƒ"
diff --git a/po/ko.gmo b/po/ko.gmo
new file mode 100644
index 0000000..519e5ef
--- /dev/null
+++ b/po/ko.gmo
Binary files differ
diff --git a/po/ko.po b/po/ko.po
new file mode 100644
index 0000000..1774448
--- /dev/null
+++ b/po/ko.po
@@ -0,0 +1,4846 @@
+# Korean translation of procps-ng package.
+# Copyright (C) 2022 Free Software Foundation, Inc.
+# This file is distributed under the same license as the procps-ng package.
+# Seong-ho Cho <darkcircle.0426@gmail.com>, 2022-2023.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: procps-ng 4.0.4-rc1\n"
+"Report-Msgid-Bugs-To: procps@freelists.org\n"
+"POT-Creation-Date: 2023-08-19 17:38+1000\n"
+"PO-Revision-Date: 2023-08-22 12:13+0900\n"
+"Last-Translator: Seong-ho Cho <darkcircle.0426@gmail.com>\n"
+"Language-Team: Korean <translation-team-ko@googlegroups.com>\n"
+"Language: ko\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"X-Generator: Poedit 3.0.1\n"
+
+#: local/fileutils.c:38
+msgid "write error"
+msgstr "쓰기 오류"
+
+#: src/free.c:74 src/slabtop.c:106 src/uptime.c:65
+#, c-format
+msgid " %s [options]\n"
+msgstr " %s [<옵션>]\n"
+
+#: src/free.c:76
+msgid " -b, --bytes show output in bytes\n"
+msgstr " -b, --bytes ë°”ì´íŠ¸ 단위로 출력 표시\n"
+
+#: src/free.c:77
+msgid " --kilo show output in kilobytes\n"
+msgstr " --kilo 킬로바ì´íŠ¸ 단위로 출력 표시\n"
+
+#: src/free.c:78
+msgid " --mega show output in megabytes\n"
+msgstr " --mega 메가바ì´íŠ¸ 단위로 출력 표시\n"
+
+#: src/free.c:79
+msgid " --giga show output in gigabytes\n"
+msgstr " --giga 기가바ì´íŠ¸ 단위로 출력 표시\n"
+
+#: src/free.c:80
+msgid " --tera show output in terabytes\n"
+msgstr " --tera í…Œë¼ë°”ì´íŠ¸ 단위로 출력 표시\n"
+
+#: src/free.c:81
+msgid " --peta show output in petabytes\n"
+msgstr " --peta 페타바ì´íŠ¸ 단위로 출력 표시\n"
+
+#: src/free.c:82
+msgid " -k, --kibi show output in kibibytes\n"
+msgstr " -k, --kibi 키비바ì´íŠ¸ 단위로 출력 표시\n"
+
+#: src/free.c:83
+msgid " -m, --mebi show output in mebibytes\n"
+msgstr " -m, --mebi 메비바ì´íŠ¸ 단위로 출력 표시\n"
+
+#: src/free.c:84
+msgid " -g, --gibi show output in gibibytes\n"
+msgstr " -g, --gibi 기비바ì´íŠ¸ 단위로 출력 표시\n"
+
+#: src/free.c:85
+msgid " --tebi show output in tebibytes\n"
+msgstr " --tebi 테비바ì´íŠ¸ 단위로 출력 표시\n"
+
+#: src/free.c:86
+msgid " --pebi show output in pebibytes\n"
+msgstr " --pebi 페비바ì´íŠ¸ 단위로 출력 표시\n"
+
+#: src/free.c:87
+msgid " -h, --human show human-readable output\n"
+msgstr " -h, --human ê°€ë… í˜•ì‹ìœ¼ë¡œ 출력 표시\n"
+
+#: src/free.c:88
+msgid " --si use powers of 1000 not 1024\n"
+msgstr " --si 1024배수가 아닌 1000배수 사용\n"
+
+#: src/free.c:89
+msgid " -l, --lohi show detailed low and high memory statistics\n"
+msgstr " -l, --lohi ìžì„¸í•œ 하위 ìƒìœ„ 메모리 통계 표시\n"
+
+#: src/free.c:90
+msgid " -L, --line show output on a single line\n"
+msgstr " -L, --line ë‹¨ì¼ í–‰ì— ì¶œë ¥ì„ ë‚˜íƒ€ëƒ…ë‹ˆë‹¤\n"
+
+#: src/free.c:91
+msgid " -t, --total show total for RAM + swap\n"
+msgstr " -t, --total RAM + 스왑 ì´ê³„ 표시\n"
+
+#: src/free.c:92
+msgid " -v, --committed show committed memory and commit limit\n"
+msgstr " -v, --committed 커밋 메모리와 커밋 제한 표시\n"
+
+#: src/free.c:93
+msgid " -s N, --seconds N repeat printing every N seconds\n"
+msgstr " -s N, --seconds <N> 매 N초당 출력 반복\n"
+
+#: src/free.c:94
+msgid " -c N, --count N repeat printing N times, then exit\n"
+msgstr " -c N, --count <N> N번 출력 반복 후 나ê°\n"
+
+#: src/free.c:95
+msgid " -w, --wide wide output\n"
+msgstr " -w, --wide 넓게 출력\n"
+
+#: src/free.c:97 src/w.c:666
+msgid " --help display this help and exit\n"
+msgstr " --help ì´ ë„움ë§ì„ 표시하고 나갑니다\n"
+
+#: src/free.c:172
+msgid "Multiple unit options don't make sense."
+msgstr "여러 단위 ì˜µì…˜ì˜ ì§€ì •ì€ ì˜¬ë°”ë¥´ì§€ 않습니다."
+
+#: src/free.c:341
+#, c-format
+msgid "seconds argument `%s' is not positive number"
+msgstr "ë‘번째 `%s' ì¸ìžëŠ” 양수가 아닙니다"
+
+#: src/free.c:347
+msgid "failed to parse count argument"
+msgstr "계수 ì¸ìž í•´ì„ ì‹¤íŒ¨"
+
+#: src/free.c:350
+#, c-format
+msgid "failed to parse count argument: '%s'"
+msgstr "계수 ì¸ìž í•´ì„ ì‹¤íŒ¨: '%s'"
+
+#: src/free.c:370
+msgid "Memory information file /proc/meminfo does not exist"
+msgstr "/proc/meminfo 메모리 ì •ë³´ 파ì¼ì´ 없습니다"
+
+#: src/free.c:373 src/vmstat.c:378 src/vmstat.c:872
+msgid "Unable to create meminfo structure"
+msgstr "meminfo 구조 정보를 구성할 수 없습니다"
+
+#. Translation Hint: These are shortened column headers
+#. * that are all 7 characters long. Use spaces and right
+#. * align if the translation is shorter.
+#.
+#: src/free.c:381
+msgid "SwapUse"
+msgstr "사용스왑"
+
+#: src/free.c:382
+msgid "CachUse"
+msgstr "사용ìºì‹œ"
+
+#: src/free.c:384
+msgid " MemUse"
+msgstr "사용 RAM"
+
+#: src/free.c:385
+msgid "MemFree"
+msgstr "가용 RAM"
+
+#: src/free.c:395
+#, c-format
+msgid ""
+" total used free shared buffers "
+"cache available"
+msgstr ""
+" ì´ê³„ 사용 여분 공유 ë²„í¼ ìº"
+"시 가용"
+
+#: src/free.c:397
+#, c-format
+msgid ""
+" total used free shared buff/cache "
+"available"
+msgstr ""
+" ì´ê³„ 사용 여분 공유 버í¼/ìºì‹œ 가용"
+
+#: src/free.c:400
+msgid "Mem:"
+msgstr "메모리:"
+
+#: src/free.c:423
+msgid "Low:"
+msgstr "하 위:"
+
+#: src/free.c:429
+msgid "High:"
+msgstr "ìƒ ìœ„:"
+
+#: src/free.c:436
+msgid "Swap:"
+msgstr "스 왑:"
+
+#: src/free.c:443
+msgid "Total:"
+msgstr "ì´ ê³„:"
+
+#: src/free.c:456
+msgid "Comm:"
+msgstr "커 밋:"
+
+#: src/kill.c:40
+#, c-format
+msgid " %s [options] <pid> [...]\n"
+msgstr " %s [<옵션>] <PID> [...]\n"
+
+#: src/kill.c:42
+msgid " <pid> [...] send signal to every <pid> listed\n"
+msgstr " <PID> [...] 지정한 모든 <PID>ì— ì‹œê·¸ë„ì„ ë³´ëƒ…ë‹ˆë‹¤\n"
+
+#: src/kill.c:43
+msgid ""
+" -<signal>, -s, --signal <signal>\n"
+" specify the <signal> to be sent\n"
+msgstr ""
+" -<시그ë„>, -s, --signal <시그ë„>\n"
+" 보낼 <시그ë„>ì„ ì§€ì •í•©ë‹ˆë‹¤\n"
+
+#: src/kill.c:45
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr " -q, --queue <ê°’> 시그ë„ë¡œ 보낼 정수값\n"
+
+#: src/kill.c:46
+msgid ""
+" -l, --list=[<signal>] list all signal names, or convert one to a name\n"
+msgstr ""
+" -l, --list=[<시그ë„>] 모든 시그ë„ì˜ ì´ë¦„ì„ ë³´ì—¬ì£¼ê±°ë‚˜ 지정 ì‹œê·¸ë„ í•˜ë‚˜ë¥¼ ì´"
+"름으로 ë³´ì—¬ì¤ë‹ˆë‹¤\n"
+
+#: src/kill.c:47
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr " -L, --table 모든 ì‹œê·¸ë„ ì´ë¦„ì„ nice í…Œì´ë¸”ë¡œ ë³´ì—¬ì¤ë‹ˆë‹¤\n"
+
+#: src/kill.c:112
+#, c-format
+msgid "unknown signal name %s"
+msgstr "ì•Œ 수 없는 %s ì‹œê·¸ë„ ì´ë¦„"
+
+#: src/kill.c:131
+msgid "must be an integer value to be passed with the signal."
+msgstr "시그ë„ë¡œ 전달할 ê°’ì€ ì •ìˆ˜ì—¬ì•¼ 합니다."
+
+#: src/kill.c:136
+#, c-format
+msgid "invalid argument %c"
+msgstr "부ì ì ˆí•œ %c ì¸ìž"
+
+#: src/kill.c:146 src/pgrep.c:792 src/pidof.c:250 src/pidof.c:290
+#: src/sysctl.c:867
+msgid "internal error"
+msgstr "내부 오류"
+
+#: src/kill.c:158 src/pmap.c:771 src/pmap.c:786 src/skill.c:381 src/skill.c:465
+#: src/tload.c:135 src/tload.c:140 src/vmstat.c:1047 src/vmstat.c:1057
+#: src/watch.c:891 src/watch.c:906
+msgid "failed to parse argument"
+msgstr "ì¸ìž í•´ì„ ì‹¤íŒ¨"
+
+#: src/pgrep.c:92 src/pidof.c:40 src/skill.c:74
+msgid "integer overflow"
+msgstr "정수 범위 초과"
+
+#: src/pgrep.c:155
+#, c-format
+msgid " %s [options] <pattern>\n"
+msgstr " %s [<옵션>] <패턴>\n"
+
+#: src/pgrep.c:159
+msgid " -d, --delimiter <string> specify output delimiter\n"
+msgstr " -d, --delimiter <문ìžì—´> 출력 구분 문ìžë¥¼ 지정합니다\n"
+
+#: src/pgrep.c:160
+msgid " -l, --list-name list PID and process name\n"
+msgstr " -l, --list-name PID와 프로세스 ì´ë¦„ì„ ë³´ì—¬ì¤ë‹ˆë‹¤\n"
+
+#: src/pgrep.c:161
+msgid " -a, --list-full list PID and full command line\n"
+msgstr " -a, --list-full PID와 ì „ì²´ ëª…ë ¹í–‰ì„ ë³´ì—¬ì¤ë‹ˆë‹¤\n"
+
+#: src/pgrep.c:162
+msgid " -v, --inverse negates the matching\n"
+msgstr " -v, --inverse ì¡°ê±´ì˜ ë°˜ëŒ€ 결과를 ë³´ì—¬ì¤ë‹ˆë‹¤\n"
+
+#: src/pgrep.c:163
+msgid " -w, --lightweight list all TID\n"
+msgstr " -w, --lightweight 모든 TID를 ë³´ì—¬ì¤ë‹ˆë‹¤\n"
+
+#: src/pgrep.c:166
+msgid " -<sig> signal to send (either number or name)\n"
+msgstr " -<시그ë„> 보낼 ì‹œê·¸ë„ (ìˆ«ìž ë˜ëŠ” ì´ë¦„)\n"
+
+#: src/pgrep.c:167
+msgid " -H, --require-handler match only if signal handler is present\n"
+msgstr " -H, --require-handler ì‹œê·¸ë„ í•¸ë“¤ëŸ¬ê°€ ìžˆì„ ë•Œë§Œ 검색 ì¼ì¹˜\n"
+
+#: src/pgrep.c:168
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr " -q, --queue <ê°’> 시그ë„ë¡œ 보낼 정수값\n"
+
+#: src/pgrep.c:169
+msgid " -e, --echo display what is killed\n"
+msgstr " -e, --echo 강제로 ë낸 항목 표시\n"
+
+#: src/pgrep.c:173
+msgid " -e, --echo display PIDs before waiting\n"
+msgstr " -e, --echo 기다리기 전 PID 표시\n"
+
+#: src/pgrep.c:177
+msgid " -c, --count count of matching processes\n"
+msgstr " -c, --count ì¼ì¹˜í•˜ëŠ” 프로세스 수 계수\n"
+
+#: src/pgrep.c:178
+msgid " -f, --full use full process name to match\n"
+msgstr " -f, --full 검색어와 완전히 ì¼ì¹˜í•˜ëŠ” 프로세스만\n"
+
+#: src/pgrep.c:179
+msgid " -g, --pgroup <PGID,...> match listed process group IDs\n"
+msgstr " -g, --pgroup <PGID,...> 프로세스 그룹 ID와 ì¼ì¹˜í•˜ëŠ” 항목만\n"
+
+#: src/pgrep.c:180
+msgid " -G, --group <GID,...> match real group IDs\n"
+msgstr " -G, --group <GID,...> 실제 그룹 ID와 ì¼ì¹˜í•˜ëŠ” 항목만\n"
+
+#: src/pgrep.c:181
+msgid " -i, --ignore-case match case insensitively\n"
+msgstr " -i, --ignore-case ëŒ€ì†Œë¬¸ìž ë¬´ê´€í•˜ê²Œ ì¼ì¹˜\n"
+
+#: src/pgrep.c:182
+msgid " -n, --newest select most recently started\n"
+msgstr " -n, --newest 가장 ìµœê·¼ì— ì‹œìž‘í•œ 항목 ì„ íƒ\n"
+
+#: src/pgrep.c:183
+msgid " -o, --oldest select least recently started\n"
+msgstr " -o, --oldest 가장 늦게 시작한 항목 ì„ íƒ\n"
+
+#: src/pgrep.c:184
+msgid " -O, --older <seconds> select where older than seconds\n"
+msgstr " -O, --older <ì´ˆ> 지정 ì´ˆ ì´ì „ì˜ í•­ëª© ì„ íƒ\n"
+
+#: src/pgrep.c:185
+msgid ""
+" -P, --parent <PPID,...> match only child processes of the given parent\n"
+msgstr ""
+" -P, --parent <PPID,...> 주어진 ìƒìœ„ 프로세스 IDê°€ ì¼ì¹˜í•˜ëŠ” 하위 프로세스"
+"만\n"
+
+#: src/pgrep.c:186
+msgid " -s, --session <SID,...> match session IDs\n"
+msgstr " -s, --session <SID,...> 세션 IDê°€ ì¼ì¹˜í•˜ëŠ” 항목만\n"
+
+#: src/pgrep.c:187
+msgid " --signal <sig> signal to send (either number or name)\n"
+msgstr " --signal <시그ë„> 보낼 ì‹œê·¸ë„ (ìˆ«ìž ë˜ëŠ” ì´ë¦„)\n"
+
+#: src/pgrep.c:188
+msgid " -t, --terminal <tty,...> match by controlling terminal\n"
+msgstr " -t, --terminal <tty,...> 제어 터미ë„ì´ ì¼ì¹˜í•˜ëŠ” 항목\n"
+
+#: src/pgrep.c:189
+msgid " -u, --euid <ID,...> match by effective IDs\n"
+msgstr " -u, --euid <ID,...> 해당 IDê°€ ì¼ì¹˜í•˜ëŠ” 항목\n"
+
+#: src/pgrep.c:190
+msgid " -U, --uid <ID,...> match by real IDs\n"
+msgstr " -U, --uid <ID,...> 실제 IDê°€ ì¼ì¹˜í•˜ëŠ” 항목\n"
+
+#: src/pgrep.c:191
+msgid " -x, --exact match exactly with the command name\n"
+msgstr " -x, --exact 명령 ì´ë¦„ì´ ì™„ì „ížˆ ì¼ì¹˜í•˜ëŠ” 항목\n"
+
+#: src/pgrep.c:192
+msgid " -F, --pidfile <file> read PIDs from file\n"
+msgstr " -F, --pidfile <파ì¼> 파ì¼ì—ì„œ PID ì½ê¸°\n"
+
+#: src/pgrep.c:193
+msgid " -L, --logpidfile fail if PID file is not locked\n"
+msgstr " -L, --logpidfile PID 파ì¼ì„ 잠그지 않았다면 실패로 간주\n"
+
+#: src/pgrep.c:194
+msgid " -r, --runstates <state> match runstates [D,S,Z,...]\n"
+msgstr ""
+" -r, --runstates <ìƒíƒœ> 지정 실행ìƒíƒœ[D,S,Z,...]와 ì¼ì¹˜í•˜ëŠ” 항목만\n"
+
+#: src/pgrep.c:195
+msgid " -A, --ignore-ancestors exclude our ancestors from results\n"
+msgstr " -A, --ignore-ancestors ê²°ê³¼ì˜ ìƒìœ„ 항목 제외\n"
+
+#: src/pgrep.c:196
+msgid " --cgroup <grp,...> match by cgroup v2 names\n"
+msgstr " --cgroup <grp,...> cgroup v2 ì´ë¦„ê³¼ ì¼ì¹˜í•˜ëŠ” 항목만\n"
+
+#: src/pgrep.c:197
+msgid ""
+" --ns <PID> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+" --ns <PID> <PID>와 ë™ì¼í•œ ì´ë¦„ ì˜ì—­ì„ 소유한 프로세스만\n"
+
+#: src/pgrep.c:199
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option.\n"
+" Available namespaces: ipc, mnt, net, pid, user, "
+"uts\n"
+msgstr ""
+" --nslist <ns,...> --ns ì˜µì…˜ì— ì§€ì •í•œ ì´ë¦„ ì˜ì—­ë§Œ 표시합니다.\n"
+" 가용 ì´ë¦„ ì˜ì—­ ê°’: ipc, mnt, net, pid, user, uts\n"
+
+#: src/pgrep.c:224 src/pgrep.c:700 src/w.c:455
+msgid "Unable to create pid info structure"
+msgstr "PID 정보를 구성할 수 없습니다"
+
+#: src/pgrep.c:388
+#, c-format
+msgid "invalid user name: %s"
+msgstr "부ì ì ˆí•œ ì‚¬ìš©ìž ì´ë¦„: %s"
+
+#: src/pgrep.c:405
+#, c-format
+msgid "invalid group name: %s"
+msgstr "부ì ì ˆí•œ 그룹 ì´ë¦„: %s"
+
+#: src/pgrep.c:416
+#, c-format
+msgid "invalid process group: %s"
+msgstr "부ì ì ˆí•œ 프로세스 그룹: %s"
+
+#: src/pgrep.c:428
+#, c-format
+msgid "invalid session id: %s"
+msgstr "부ì ì ˆí•œ 세션 ID: %s"
+
+#: src/pgrep.c:440
+#, c-format
+msgid "not a number: %s"
+msgstr "ìˆ«ìž ì•„ë‹˜: %s"
+
+#: src/pgrep.c:490
+#, c-format
+msgid "not a hex string: %s"
+msgstr "16진수 아님: %s"
+
+#: src/pgrep.c:525 src/skill.c:162
+msgid "Unable to read process namespace information"
+msgstr "프로세스 ì´ë¦„ ì˜ì—­ 정보를 ì½ì„ 수 없습니다"
+
+#: src/pgrep.c:612
+#, c-format
+msgid "regex error: %s"
+msgstr "ì •ê·œ í‘œí˜„ì‹ ì˜¤ë¥˜: %s"
+
+#: src/pgrep.c:695
+msgid "Error reading reference namespace information\n"
+msgstr "참조 ì´ë¦„ ì˜ì—­ ì •ë³´ ì½ê¸° 오류\n"
+
+#: src/pgrep.c:809
+#, c-format
+msgid ""
+"pattern that searches for process name longer than 15 characters will result "
+"in zero matches\n"
+"Try `%s -f' option to match against the complete command line."
+msgstr ""
+"15글ìžë¥¼ 넘는 프로세스 ì´ë¦„ 패턴 검색시 ì¼ì¹˜í•˜ëŠ” í•­ëª©ì´ ì—†ì„ ìˆ˜ 있습니다\n"
+"완전한 명령행과 ì¼ì¹˜í•˜ëŠ” í•­ëª©ì„ ê²€ìƒ‰í•˜ë ¤ë©´ `%s -f' ì˜µì…˜ì„ ì‚¬ìš©í•˜ì‹­ì‹œì˜¤."
+
+#: src/pgrep.c:924
+#, c-format
+msgid "Unknown signal \"%s\"."
+msgstr "ì•Œ 수 없는 \"%s\" 시그ë„."
+
+#: src/pgrep.c:1090
+#, c-format
+msgid ""
+"-L without -F makes no sense\n"
+"Try `%s --help' for more information."
+msgstr ""
+"-F ì˜µì…˜ì„ ëº€ -L ì˜µì…˜ì˜ ì‚¬ìš©ì€ ë¶€ì ì ˆí•©ë‹ˆë‹¤\n"
+"ìžì„¸í•œ 정보는 `%s --help'를 입력하십시오."
+
+#: src/pgrep.c:1097
+#, c-format
+msgid ""
+"pidfile not valid\n"
+"Try `%s --help' for more information."
+msgstr ""
+"PID 파ì¼ì´ 올바르지 않습니다\n"
+"ìžì„¸í•œ 정보는 `%s --help'를 입력하십시오."
+
+#: src/pgrep.c:1106
+#, c-format
+msgid ""
+"only one pattern can be provided\n"
+"Try `%s --help' for more information."
+msgstr ""
+"í•œ ë²ˆì— íŒ¨í„´ 하나만 지정할 수 있습니다\n"
+"ìžì„¸í•œ 정보는 `%s --help'를 입력하십시오."
+
+#: src/pgrep.c:1110
+#, c-format
+msgid ""
+"no matching criteria specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+"지정한 ê²€ìƒ‰ì–´ì— ì¼ì¹˜í•˜ëŠ” í•­ëª©ì´ ì—†ìŠµë‹ˆë‹¤\n"
+"ìžì„¸í•œ 정보는 `%s --help'를 입력하십시오."
+
+#: src/pgrep.c:1162
+#, c-format
+msgid "%s killed (pid %lu)\n"
+msgstr "%s 강제로 ë냄 (PID %lu)\n"
+
+#: src/pgrep.c:1169
+#, c-format
+msgid "killing pid %ld failed"
+msgstr "PID %ld번 강제로 ë내기 실패"
+
+#: src/pgrep.c:1181
+#, c-format
+msgid "waiting for %s (pid %lu)\n"
+msgstr "%s 기다리는 중 (PID %lu)\n"
+
+#: src/pgrep.c:1185
+msgid "pidfd_open() not implemented in Linux < 5.3"
+msgstr ""
+"리눅스 ì»¤ë„ ë²„ì „ 5.3 ì´ì „ì—서는 pidfd_open() 함수를 구현하지 않았습니다"
+
+#: src/pgrep.c:1188
+#, c-format
+msgid "opening pid %ld failed"
+msgstr "PID %ld번 열기 실패"
+
+#: src/pgrep.c:1202
+msgid "epoll_wait failed"
+msgstr "epoll_wait 실패"
+
+#: src/pidof.c:75
+#, c-format
+msgid " %s [options] [program [...]]\n"
+msgstr " %s [<옵션>] [<프로그램> [...]]\n"
+
+#: src/pidof.c:77
+msgid " -s, --single-shot return one PID only\n"
+msgstr " -s, --single-shot PID 하나만 반환\n"
+
+#: src/pidof.c:78
+msgid " -c, --check-root omit processes with different root\n"
+msgstr " -c, --check-root 루트가 다른 프로세스는 ìƒëžµ\n"
+
+#: src/pidof.c:79
+msgid " -q, quiet mode, only set the exit code\n"
+msgstr " -q, 미출력 모드. 종료 코드만 설정합니다\n"
+
+#: src/pidof.c:80
+msgid " -w, --with-workers show kernel workers too\n"
+msgstr " -w, --with-workers ì»¤ë„ ì›Œì»¤ë„ í‘œì‹œ\n"
+
+#: src/pidof.c:81
+msgid " -x also find shells running the named scripts\n"
+msgstr " -x 명명 스í¬ë¦½íŠ¸ë¥¼ 실행하는 ì…¸ë„ ì°¾ìŒ\n"
+
+#: src/pidof.c:82
+msgid " -o, --omit-pid <PID,...> omit processes with PID\n"
+msgstr " -o, --omit-pid <PID,...> 지정 PID 프로세스 ìƒëžµ\n"
+
+#: src/pidof.c:83
+msgid " -t, --lightweight list threads too\n"
+msgstr " -t, --lightweight ìŠ¤ë ˆë“œë„ ëª©ë¡ì— 나타냅니다\n"
+
+#: src/pidof.c:84
+msgid " -S, --separator SEP use SEP as separator put between PIDs"
+msgstr " -S, --separator <구분ìž> PID 사ì´ì— 입력한 <구분ìž>를 구분ìžë¡œ 활용"
+
+#: src/pidof.c:293
+#, c-format
+msgid "illegal omit pid value (%s)!\n"
+msgstr "ìž˜ëª»ëœ ìƒëžµ PID 값입니다(%s)!\n"
+
+#: src/pmap.c:72
+msgid "Address"
+msgstr "주 소"
+
+#: src/pmap.c:73
+msgid "Offset"
+msgstr "오프셋"
+
+#: src/pmap.c:74
+msgid "Device"
+msgstr "장 치"
+
+#: src/pmap.c:75
+msgid "Mapping"
+msgstr "매 핑"
+
+#: src/pmap.c:79
+msgid "Perm"
+msgstr "권 한"
+
+#: src/pmap.c:80
+msgid "Inode"
+msgstr "I-노드"
+
+#: src/pmap.c:83
+msgid "Kbytes"
+msgstr "Kbytes"
+
+#: src/pmap.c:84
+msgid "Mode"
+msgstr "모 드"
+
+#. Translation Hint: With the next 5 fields, notice how an extra space
+#. has been added ahead of one 'KiB' so that they all
+#. align. You need not preserve such alignment.
+#. Translation Hint: maximum 'RSS' = 6
+#: src/pmap.c:85 src/top/top_nls.c:337
+msgid "RSS"
+msgstr "RSS"
+
+#: src/pmap.c:86
+msgid "Dirty"
+msgstr "Dirty"
+
+#: src/pmap.c:120
+#, c-format
+msgid " %s [options] PID [PID ...]\n"
+msgstr " %s [옵션] <PID> [<PID> ...]\n"
+
+#: src/pmap.c:122
+msgid " -x, --extended show details\n"
+msgstr " -x, --extended ìžì„¸í•œ ë‚´ìš© 표시\n"
+
+#: src/pmap.c:123
+msgid " -X show even more details\n"
+msgstr " -X ë” ìžì„¸í•œ ë‚´ìš© 표시\n"
+
+#: src/pmap.c:124
+msgid " WARNING: format changes according to /proc/PID/smaps\n"
+msgstr " 경고: /proc/<PID>/smapsì— ë”°ë¼ í˜•ì‹ì´ ë°”ë€ë‹ˆë‹¤\n"
+
+#: src/pmap.c:125
+msgid " -XX show everything the kernel provides\n"
+msgstr " -XX 모든 ì»¤ë„ ê°€ìš© ì •ë³´ 표시\n"
+
+#: src/pmap.c:126
+msgid " -c, --read-rc read the default rc\n"
+msgstr " -c, --read-rc 기본 rc ì½ê¸°\n"
+
+#: src/pmap.c:127
+msgid " -C, --read-rc-from=<file> read the rc from file\n"
+msgstr " -C, --read-rc-from=<파ì¼> 파ì¼ì—ì„œ rc ì½ê¸°\n"
+
+#: src/pmap.c:128
+msgid " -n, --create-rc create new default rc\n"
+msgstr " -n, --create-rc 새 기본 rc 구성\n"
+
+#: src/pmap.c:129
+msgid " -N, --create-rc-to=<file> create new rc to file\n"
+msgstr " -N, --create-rc-to=<파ì¼> 파ì¼ì— 새 기본 rc 구성\n"
+
+#: src/pmap.c:130
+msgid " NOTE: pid arguments are not allowed with -n, -N\n"
+msgstr " 참고: PID ì¸ìžëŠ” -n, -N 옵션과 사용할 수 없습니다\n"
+
+#: src/pmap.c:131
+msgid " -d, --device show the device format\n"
+msgstr " -d, --device 장치 í˜•ì‹ í‘œì‹œ\n"
+
+#: src/pmap.c:132
+msgid " -q, --quiet do not display header and footer\n"
+msgstr " -q, --quiet í—¤ë” ë° í‘¸í„° 표시 안함\n"
+
+#: src/pmap.c:133
+msgid " -p, --show-path show path in the mapping\n"
+msgstr " -p, --show-path 매핑 경로 표시\n"
+
+#: src/pmap.c:134
+msgid " -A, --range=<low>[,<high>] limit results to the given range\n"
+msgstr " -A, --range=<하위>[,<ìƒìœ„>] 주어진 경로로 ê²°ê³¼ 표시 제한\n"
+
+#: src/pmap.c:215
+msgid "shared memory detach"
+msgstr "공유 메모리 분리"
+
+#: src/pmap.c:220
+msgid "shared memory remove"
+msgstr "공유 메모리 제거"
+
+#: src/pmap.c:245
+msgid " [ anon ]"
+msgstr " [ anon ]"
+
+#: src/pmap.c:248
+msgid " [ stack ]"
+msgstr " [ stack ]"
+
+#: src/pmap.c:334 src/pmap.c:340
+msgid "Unknown format in smaps file!"
+msgstr "smaps 파ì¼ì˜ 형ì‹ì„ ì•Œ 수 없습니다!"
+
+#: src/pmap.c:365
+msgid "ERROR: memory allocation failed"
+msgstr "오류: 메모리 할당 실패"
+
+#: src/pmap.c:382
+msgid "inconsistent detail field in smaps file, line:\n"
+msgstr "smaps 파ì¼ì˜ 세부 í•„ë“œì˜ ì¼ê´€ì„±ì´ 없습니다, í–‰:\n"
+
+#: src/pmap.c:731
+msgid "total kB"
+msgstr "ì´ê³„ kB"
+
+#: src/pmap.c:742
+#, c-format
+msgid "mapped: %ldK writeable/private: %ldK shared: %ldK\n"
+msgstr "매 í•‘: %ldK 기ë¡ê°€ëŠ¥/ìžì²´: %ldK 공유: %ldK\n"
+
+#. Translation Hint: keep total string length
+#. * as 24 characters. Adjust %16 if needed
+#: src/pmap.c:751
+#, c-format
+msgid " total %16ldK\n"
+msgstr " ì´ê³„ %16ldK\n"
+
+#. Translation Hint: keep total string length
+#. * as 16 characters. Adjust %8 if needed
+#: src/pmap.c:757
+#, c-format
+msgid " total %8ldK\n"
+msgstr " ì´ê³„ %8ldK\n"
+
+#: src/pmap.c:832
+#, c-format
+msgid "config line too long - line %d"
+msgstr "구성 í–‰ì´ ë„ˆë¬´ ê¹ë‹ˆë‹¤ - %dí–‰"
+
+#: src/pmap.c:857
+#, c-format
+msgid "unsupported section found in the config - line %d"
+msgstr "ì„¤ì •ì— ì§€ì›í•˜ì§€ 않는 ì„¹ì…˜ì´ ìžˆìŠµë‹ˆë‹¤ - %dí–‰"
+
+#: src/pmap.c:860 src/pmap.c:871 src/pmap.c:882 src/pmap.c:905 src/pmap.c:917
+#, c-format
+msgid "syntax error found in the config - line %d"
+msgstr "ì„¤ì •ì— ë¬¸ë²• 오류 발견 - %dí–‰"
+
+#: src/pmap.c:887 src/pmap.c:1010
+msgid "memory allocation failed"
+msgstr "메모리 할당 실패"
+
+#: src/pmap.c:939
+msgid "the file already exists - delete or rename it first"
+msgstr "파ì¼ì´ ì´ë¯¸ 있습니다 - ìš°ì„  삭제하거나 ì´ë¦„ì„ ë°”ê¾¸ì‹­ì‹œì˜¤"
+
+#: src/pmap.c:1002
+msgid "HOME variable undefined"
+msgstr "HOME 환경 변수를 지정하지 않았습니다"
+
+#: src/pmap.c:1061
+msgid "option -r is ignored as SunOS compatibility"
+msgstr "-r ì˜µì…˜ì€ SunOS 호환 요소로 무시합니다"
+
+#: src/pmap.c:1108
+msgid "options -c, -C, -d, -n, -N, -x, -X are mutually exclusive"
+msgstr "-c, -C, -d, -n, -N, -x, -X ì˜µì…˜ì€ í•¨ê»˜ 사용할 수 없습니다"
+
+#: src/pmap.c:1111
+msgid "options -p, -q are mutually exclusive with -n, -N"
+msgstr "-p, -q ì˜µì…˜ì€ -n, -N 옵션과 함께 사용할 수 없습니다"
+
+#: src/pmap.c:1114 src/pmap.c:1163
+msgid "too many arguments"
+msgstr "ì¸ìžê°€ 너무 많습니다"
+
+#: src/pmap.c:1118
+msgid "rc file successfully created, feel free to edit the content"
+msgstr "rc íŒŒì¼ ë§Œë“¤ê¸°ì— ì„±ê³µí–ˆìŠµë‹ˆë‹¤. ë‚´ìš©ì„ ìžìœ ë¡­ê²Œ 편집하십시오"
+
+#: src/pmap.c:1121
+msgid "couldn't create the rc file"
+msgstr "rc 파ì¼ì„ 만들 수 없습니다"
+
+#: src/pmap.c:1133
+#, c-format
+msgid "~/.%src file successfully created, feel free to edit the content"
+msgstr "~/.%src íŒŒì¼ ë§Œë“¤ê¸°ì— ì„±ê³µí–ˆìŠµë‹ˆë‹¤. ë‚´ìš©ì„ ìžìœ ë¡­ê²Œ 편집하십시오"
+
+#: src/pmap.c:1136
+#, c-format
+msgid "couldn't create ~/.%src"
+msgstr "~/.%src 파ì¼ì„ 만들 수 없습니다"
+
+#: src/pmap.c:1141
+msgid "argument missing"
+msgstr "ì¸ìžê°€ 빠졌습니다"
+
+#: src/pmap.c:1154
+msgid "couldn't read the rc file"
+msgstr "rc 파ì¼ì„ ì½ì„ 수 없습니다"
+
+#: src/pmap.c:1156
+#, c-format
+msgid "couldn't read ~/.%src"
+msgstr "~/.%src 파ì¼ì„ ì½ì„ 수 없습니다"
+
+#: src/pmap.c:1165 src/pmap.c:1190
+msgid "library failed pids statistics"
+msgstr "libraryì—ì„œ PID í†µê³„ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
+
+#: src/ps/display.c:61
+#, c-format
+msgid "Signal %d (%s) caught by %s (%s).\n"
+msgstr "ì‹œê·¸ë„ %d번(%s)ì„ %s(%s)ì—ì„œ ìž¡ìŒ.\n"
+
+#: src/ps/display.c:75 src/ps/display.c:252 src/ps/display.c:407
+#: src/ps/output.c:2359 src/ps/parser.c:509 src/ps/parser.c:756
+#: src/ps/select.c:95 src/ps/sortformat.c:263 src/ps/sortformat.c:301
+#: src/ps/sortformat.c:549
+msgid "please report this bug"
+msgstr "ì´ ë²„ê·¸ë¥¼ 보고해주십시오"
+
+#: src/ps/display.c:315 src/ps/display.c:484
+#, c-format
+msgid "fatal library error, reap\n"
+msgstr "치명ì ì¸ ë¼ì´ë¸ŒëŸ¬ë¦¬ 오류, reap\n"
+
+#: src/ps/display.c:365
+#, c-format
+msgid "could not find ppid\n"
+msgstr "PPID를 ì°¾ì„ ìˆ˜ 없습니다\n"
+
+#: src/ps/display.c:375
+#, c-format
+msgid "could not find start_time\n"
+msgstr "start_time 정보를 ì°¾ì„ ìˆ˜ 없습니다\n"
+
+#: src/ps/global.c:287
+#, c-format
+msgid "your %dx%d screen size is bogus. expect trouble\n"
+msgstr "%dx%d 화면 í¬ê¸°ê°€ 잘못ë습니다. 문제가 예ìƒë©ë‹ˆë‹¤\n"
+
+#: src/ps/global.c:360 src/ps/global.c:372
+msgid "environment specified an unknown personality"
+msgstr "í™˜ê²½ì— ì•Œ 수 없는 ê°œì¸ ì„¤ì •ì„ ì§€ì •í–ˆìŠµë‹ˆë‹¤"
+
+#: src/ps/global.c:364
+#, c-format
+msgid "cannot strdup() personality text\n"
+msgstr "ê°œì¸ ì„¤ì • ë‚´ìš©ì„ strdup() 처리할 수 없습니다\n"
+
+#: src/ps/global.c:495
+#, c-format
+msgid "fatal library error, context\n"
+msgstr "ì¹˜ëª…ì  ë¼ì´ë¸ŒëŸ¬ë¦¬ 오류, context\n"
+
+#: src/ps/global.c:503
+#, c-format
+msgid "fatal library error, lookup self\n"
+msgstr "ì¹˜ëª…ì  ë¼ì´ë¸ŒëŸ¬ë¦¬ 오류, lookup self\n"
+
+#. Translation Note:
+#. . The following translatable word will be used to recognize the
+#. . user's request for help text. In other words, the translation
+#. . you provide will alter program behavior.
+#. .
+#. . It must be limited to 15 characters or less.
+#.
+#: src/ps/global.c:542
+msgid "help"
+msgstr "ë„움ë§"
+
+#. Translation Notes for ps Help #1 ---------------------------------
+#. . This next group of lines represents 6 pairs of words + abbreviations
+#. . which are the basis of the 'ps' program help text.
+#. .
+#. . The words and abbreviations you provide will alter program behavior.
+#. . They will also appear in the help usage summary associated with the
+#. . "Notes for ps Help #2" below.
+#. .
+#. . In their English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . When translating these 6 pairs you may choose any appropriate
+#. . language equivalents and the only requirement is the abbreviated
+#. . representations must be unique.
+#. .
+#. . By default, those abbreviations are single characters. However,
+#. . they are not limited to only one character after translation.
+#. .
+#. Translation Hint, Pair #1
+#: src/ps/help.c:67
+msgid "simple"
+msgstr "간단히"
+
+#: src/ps/help.c:67
+msgid "s"
+msgstr "s"
+
+#. Translation Hint, Pair #2
+#: src/ps/help.c:69
+msgid "list"
+msgstr "목 ë¡"
+
+#: src/ps/help.c:69
+msgid "l"
+msgstr "l"
+
+#. Translation Hint, Pair #3
+#: src/ps/help.c:71
+msgid "output"
+msgstr "출 력"
+
+#: src/ps/help.c:71
+msgid "o"
+msgstr "o"
+
+#. Translation Hint, Pair #4
+#: src/ps/help.c:73
+msgid "threads"
+msgstr "스레드"
+
+#: src/ps/help.c:73
+msgid "t"
+msgstr "t"
+
+#. Translation Hint, Pair #5
+#: src/ps/help.c:75
+msgid "misc"
+msgstr "기 타"
+
+#: src/ps/help.c:75
+msgid "m"
+msgstr "m"
+
+#. Translation Hint, Pair #6
+#: src/ps/help.c:77
+msgid "all"
+msgstr "모 ë‘"
+
+#: src/ps/help.c:77
+msgid "a"
+msgstr "a"
+
+#: src/ps/help.c:98
+#, c-format
+msgid ""
+"\n"
+"Usage:\n"
+" %s [options]\n"
+msgstr ""
+"\n"
+"사용법:\n"
+" %s [<옵션>]\n"
+
+#: src/ps/help.c:103
+msgid ""
+"\n"
+"Basic options:\n"
+msgstr ""
+"\n"
+"기본 옵션:\n"
+
+#: src/ps/help.c:104
+msgid " -A, -e all processes\n"
+msgstr " -A, -e 모든 프로세스\n"
+
+#: src/ps/help.c:105
+msgid " -a all with tty, except session leaders\n"
+msgstr ""
+" -a 세션 ì„ í–‰ìžë¥¼ 제외한 모든 tty í„°ë¯¸ë„ ì •ë³´ í¬í•¨\n"
+"\n"
+
+#: src/ps/help.c:106
+msgid " a all with tty, including other users\n"
+msgstr " a 기타 ì‚¬ìš©ìž ë° ëª¨ë“  tty í„°ë¯¸ë„ ì •ë³´ í¬í•¨\n"
+
+#: src/ps/help.c:107
+msgid " -d all except session leaders\n"
+msgstr " -d 세션 ì„ í–‰ìžë¥¼ 제외한 모든 ì •ë³´ í¬í•¨\n"
+
+#: src/ps/help.c:108
+msgid " -N, --deselect negate selection\n"
+msgstr " -N, --deselect ì„ íƒ ì¡°ê±´ 반전\n"
+
+#: src/ps/help.c:109
+msgid " r only running processes\n"
+msgstr " r 실행 프로세스만\n"
+
+#: src/ps/help.c:110
+msgid " T all processes on this terminal\n"
+msgstr " T ì´ í„°ë¯¸ë„ì—ì„œ 실행하는 모든 프로세스만\n"
+
+#: src/ps/help.c:111
+msgid " x processes without controlling ttys\n"
+msgstr " x tty를 제어하는 프로세스 제외\n"
+
+#: src/ps/help.c:114
+msgid ""
+"\n"
+"Selection by list:\n"
+msgstr ""
+"\n"
+"ëª©ë¡ ì„ íƒ:\n"
+
+#: src/ps/help.c:115
+msgid " -C <command> command name\n"
+msgstr ""
+" -C <명령> 명령 ì´ë¦„\n"
+"\n"
+
+#: src/ps/help.c:116
+msgid " -G, --Group <GID> real group id or name\n"
+msgstr " -G, --Group <GID> 실제 그룹 ID ë˜ëŠ” ì´ë¦„\n"
+
+#: src/ps/help.c:117
+msgid " -g, --group <group> session or effective group name\n"
+msgstr " -g, --group <그룹> 세션 ë˜ëŠ” 해당 그룹 ì´ë¦„\n"
+
+#: src/ps/help.c:118
+msgid " -p, p, --pid <PID> process id\n"
+msgstr " -p, p, --pid <PID> 프로세스 ID\n"
+
+#: src/ps/help.c:119
+msgid " --ppid <PID> parent process id\n"
+msgstr " --ppid <PID> ìƒìœ„ 프로세스 ID\n"
+
+#: src/ps/help.c:120
+msgid ""
+" -q, q, --quick-pid <PID>\n"
+" process id (quick mode)\n"
+msgstr ""
+" -q, q, --quick-pid <PID>\n"
+" 프로세스 ID (간단 모드)\n"
+
+#: src/ps/help.c:122
+msgid " -s, --sid <session> session id\n"
+msgstr " -s, --sid <세션> 세션 ID\n"
+
+#: src/ps/help.c:123
+msgid " -t, t, --tty <tty> terminal\n"
+msgstr " -t, t, --tty <tty> 터미ë„\n"
+
+#: src/ps/help.c:124
+msgid " -u, U, --user <UID> effective user id or name\n"
+msgstr " -u, U, --user <UID> 해당 ì‚¬ìš©ìž ID ë˜ëŠ” ì´ë¦„\n"
+
+#: src/ps/help.c:125
+msgid " -U, --User <UID> real user id or name\n"
+msgstr " -U, --User <UID> 실제 ì‚¬ìš©ìž ID ë˜ëŠ” ì´ë¦„\n"
+
+#: src/ps/help.c:126
+msgid ""
+"\n"
+" The selection options take as their argument either:\n"
+" a comma-separated list e.g. '-u root,nobody' or\n"
+" a blank-separated list e.g. '-p 123 4567'\n"
+msgstr ""
+"\n"
+" ì„ íƒ ì˜µì…˜ì€ ë‹¤ìŒ ë‘가지 ë°©ì‹ìœ¼ë¡œ ì¸ìž ê°’ì„ ì·¨í•©ë‹ˆë‹¤:\n"
+" 쉼표 구분 목ë¡. 예시: '-u root,nobody' or\n"
+" 빈칸 구분 목ë¡. 예시: '-p 123 4567'\n"
+
+#: src/ps/help.c:132
+msgid ""
+"\n"
+"Output formats:\n"
+msgstr ""
+"\n"
+"출력 형ì‹:\n"
+
+#: src/ps/help.c:133
+msgid " -D <format> date format for lstart\n"
+msgstr " -D <형ì‹> lstart 날짜 형ì‹\n"
+
+#: src/ps/help.c:134
+msgid " -F extra full\n"
+msgstr " -F 최대로 완전히\n"
+
+#: src/ps/help.c:135
+msgid " -f full-format, including command lines\n"
+msgstr " -f ëª…ë ¹í–‰ì„ ìˆ˜ë°˜í•œ ì „ì²´ 형ì‹\n"
+
+#: src/ps/help.c:136
+msgid " f, --forest ascii art process tree\n"
+msgstr " f, --forest 아스키아트 í˜•ì‹ í”„ë¡œì„¸ìŠ¤ 트리\n"
+
+#: src/ps/help.c:137
+msgid " -H show process hierarchy\n"
+msgstr " -H 프로세스 계층 표시\n"
+
+#: src/ps/help.c:138
+msgid " -j jobs format\n"
+msgstr " -j ìž‘ì—… 형ì‹\n"
+
+#: src/ps/help.c:139
+msgid " j BSD job control format\n"
+msgstr " j BSD ìž‘ì—… 컨트롤 형ì‹\n"
+
+#: src/ps/help.c:140
+msgid " -l long format\n"
+msgstr " -l 긴 형ì‹\n"
+
+#: src/ps/help.c:141
+msgid " l BSD long format\n"
+msgstr " l BSD 긴 형ì‹\n"
+
+#: src/ps/help.c:142
+msgid " -M, Z add security data (for SELinux)\n"
+msgstr " -M, Z 보안 ë°ì´í„° 추가(SELinuxìš©)\n"
+
+#: src/ps/help.c:143
+msgid " -O <format> preloaded with default columns\n"
+msgstr " -O <형ì‹> 기본 컬럼으로 미리 불러오기\n"
+
+#: src/ps/help.c:144
+msgid " O <format> as -O, with BSD personality\n"
+msgstr ""
+" O <형ì‹> -O 옵션과 마찬가지ì´ë‚˜, BSD íŠ¹ìœ ì˜ í˜•ì‹ìœ¼ë¡œ 출력\n"
+
+#: src/ps/help.c:145
+msgid ""
+" -o, o, --format <format>\n"
+" user-defined format\n"
+msgstr ""
+" -o, o, --format <형ì‹>\n"
+" ì‚¬ìš©ìž ì§€ì • 형ì‹\n"
+
+#: src/ps/help.c:147
+msgid " -P add psr column\n"
+msgstr " -P psr 컬럼 추가\n"
+
+#: src/ps/help.c:148
+msgid " s signal format\n"
+msgstr " s ì‹œê·¸ë„ í˜•ì‹\n"
+
+#: src/ps/help.c:149
+msgid " u user-oriented format\n"
+msgstr " u ì‚¬ìš©ìž ì§€í–¥ 형ì‹\n"
+
+#: src/ps/help.c:150
+msgid " v virtual memory format\n"
+msgstr " v ê°€ìƒ ë©”ëª¨ë¦¬ 형ì‹\n"
+
+#: src/ps/help.c:151
+msgid " X register format\n"
+msgstr " X 레지스터 형ì‹\n"
+
+#: src/ps/help.c:152
+msgid ""
+" -y do not show flags, show rss vs. addr (used with -l)\n"
+msgstr ""
+" -y 플래그를 나타내지 않고, RSS 대비 주소 정보 표시(-l 옵션"
+"으로 표시)\n"
+
+#: src/ps/help.c:153
+msgid " --context display security context (for SELinux)\n"
+msgstr " --context 보안 컨í…스트 표시(SELinuxìš©)\n"
+
+#: src/ps/help.c:154
+msgid " --headers repeat header lines, one per page\n"
+msgstr " --headers 페ì´ì§€ 당 한번씩 í—¤ë” í–‰ 반복\n"
+
+#: src/ps/help.c:155
+msgid " --no-headers do not print header at all\n"
+msgstr " --no-headers í—¤ë”를 표시하지 ì•ŠìŒ\n"
+
+#: src/ps/help.c:156
+msgid ""
+" --cols, --columns, --width <num>\n"
+" set screen width\n"
+msgstr ""
+" --cols, --columns, --width <숫ìž>\n"
+" 화면 너비 설정\n"
+
+#: src/ps/help.c:158
+msgid ""
+" --rows, --lines <num>\n"
+" set screen height\n"
+msgstr ""
+" --rows, --lines <숫ìž>\n"
+" 화면 ë†’ì´ ì„¤ì •\n"
+
+#: src/ps/help.c:160
+msgid " --signames display signal masks using signal names\n"
+msgstr " --signames ì‹œê·¸ë„ ì´ë¦„으로 ì‹œê·¸ë„ ë§ˆìŠ¤í¬ë¥¼ 나타냅니다\n"
+
+#: src/ps/help.c:163
+msgid ""
+"\n"
+"Show threads:\n"
+msgstr ""
+"\n"
+"스레드 표시:\n"
+
+#: src/ps/help.c:164
+msgid " H as if they were processes\n"
+msgstr " H 프로세스 였는지 표시\n"
+
+#: src/ps/help.c:165
+msgid " -L possibly with LWP and NLWP columns\n"
+msgstr " -L 가능하면 LWP ë° NLWP 컬럼 표시\n"
+
+#: src/ps/help.c:166
+msgid " -m, m after processes\n"
+msgstr " -m, m ë‹¤ìŒ í”„ë¡œì„¸ìŠ¤\n"
+
+#: src/ps/help.c:167
+msgid " -T possibly with SPID column\n"
+msgstr " -T 가능하면 SPID 컬럼 표시\n"
+
+#: src/ps/help.c:170
+msgid ""
+"\n"
+"Miscellaneous options:\n"
+msgstr ""
+"\n"
+"기타 옵션:\n"
+
+#: src/ps/help.c:171
+msgid " -c show scheduling class with -l option\n"
+msgstr " -c -l ì˜µì…˜ì„ í•¨ê»˜ 사용하면 ìŠ¤ì¼€ì¥´ë§ ìˆ˜ì¤€ 표시\n"
+
+#: src/ps/help.c:172
+msgid " c show true command name\n"
+msgstr " c 실제 명령 ì´ë¦„ 표시\n"
+
+#: src/ps/help.c:173
+msgid " e show the environment after command\n"
+msgstr " e 명령 실행 후 환경 표시\n"
+
+#: src/ps/help.c:174
+msgid ""
+" k, --sort specify sort order as: [+|-]key[,[+|-]key[,...]]\n"
+msgstr " k, --sort 정렬 순서 지정: [+|-]<키>[,[+|-]<키>[,...]]\n"
+
+#: src/ps/help.c:175
+msgid " L show format specifiers\n"
+msgstr " L í˜•ì‹ ì§€ì •ìž í‘œì‹œ\n"
+
+#: src/ps/help.c:176
+msgid " n display numeric uid and wchan\n"
+msgstr " n ìˆ«ìž UID ë° WCHAN ê°’ 표시\n"
+
+#: src/ps/help.c:177
+msgid " S, --cumulative include some dead child process data\n"
+msgstr " S, --cumulative ì¼ë¶€ ì£½ì€ í•˜ìœ„ 프로세스 ë°ì´í„° í¬í•¨\n"
+
+#: src/ps/help.c:178
+msgid " -y do not show flags, show rss (only with -l)\n"
+msgstr ""
+" -y 플래그 표시 안함. RSS 표시(-l 옵션 ì§€ì •í–ˆì„ ê²½ìš°)\n"
+
+#: src/ps/help.c:179
+msgid " -V, V, --version display version information and exit\n"
+msgstr " -V, V, --version 버전 정보를 표시한 후 나갑니다\n"
+
+#: src/ps/help.c:180
+msgid " -w, w unlimited output width\n"
+msgstr " -w, w 출력 너비를 제한하지 ì•ŠìŒ\n"
+
+#: src/ps/help.c:181
+#, c-format
+msgid ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" display help and exit\n"
+msgstr ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" ë„움ë§ì„ 표시한 후 나갑니다\n"
+
+#. Translation Notes for ps Help #2 ---------------------------------
+#. . Most of the following c-format string is derived from the 6
+#. . pairs of words + chars mentioned above in "Notes for ps Help #1".
+#. .
+#. . In its full English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . The word for "help" will be translated elsewhere. Thus, the only
+#. . translations below will be: "Try", "or" and "for additional...".
+#. .
+#: src/ps/help.c:202
+#, c-format
+msgid ""
+"\n"
+" Try '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" or '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" for additional help text.\n"
+msgstr ""
+"\n"
+" 추가 ë„ì›€ë§ ë‚´ìš©ì€\n"
+" '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" ë˜ëŠ” '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" ëª…ë ¹ì„ ìž…ë ¥í•˜ì‹­ì‹œì˜¤.\n"
+
+#: src/ps/help.c:215
+#, c-format
+msgid ""
+"\n"
+"For more details see ps(1).\n"
+msgstr ""
+"\n"
+"ë” ìžì„¸í•œ ë‚´ìš©ì€ ps(1)ì„ ì°¸ê³ í•˜ì‹­ì‹œì˜¤.\n"
+
+#: src/ps/output.c:104
+msgid "Unable to get system boot time"
+msgstr "시스템 부팅 시간 정보를 가져올 수 없습니다"
+
+#: src/ps/output.c:119
+msgid "Unable to get total memory"
+msgstr "ì „ì²´ 메모리 ì–‘ì„ ê°€ì ¸ì˜¬ 수 없습니다"
+
+#: src/ps/output.c:2206
+#, c-format
+msgid "fix bigness error\n"
+msgstr "고정 치수 오류\n"
+
+#: src/ps/output.c:2289
+#, c-format
+msgid "bad alignment code\n"
+msgstr "ìž˜ëª»ëœ ì •ë ¬ 코드\n"
+
+#: src/ps/parser.c:63
+msgid "the option is exclusive: "
+msgstr "ì˜µì…˜ì„ ê°™ì´ ì‚¬ìš©í•  수 없습니다: "
+
+#: src/ps/parser.c:93
+msgid "process ID list syntax error"
+msgstr "프로세스 ID ëª©ë¡ ë¬¸ë²• 오류"
+
+#: src/ps/parser.c:94 src/ps/parser.c:95
+msgid "process ID out of range"
+msgstr "프로세스 ID 범위를 벗어납니다"
+
+#: src/ps/parser.c:108
+msgid "user name does not exist"
+msgstr "그런 ì‚¬ìš©ìž ì´ë¦„ì´ ì—†ìŠµë‹ˆë‹¤"
+
+#: src/ps/parser.c:114
+msgid "user ID out of range"
+msgstr "ì‚¬ìš©ìž ID 번호 ê°’ì´ ë²”ìœ„ë¥¼ 벗어납니다"
+
+#: src/ps/parser.c:127
+msgid "group name does not exist"
+msgstr "그런 그룹 ì´ë¦„ì´ ì—†ìŠµë‹ˆë‹¤"
+
+#: src/ps/parser.c:133
+msgid "group ID out of range"
+msgstr "그룹 ID 번호 ê°’ì´ ë²”ìœ„ë¥¼ 벗어납니다"
+
+#: src/ps/parser.c:149 src/ps/parser.c:173
+msgid "TTY could not be found"
+msgstr "TTY를 ì°¾ì„ ìˆ˜ 없습니다"
+
+#: src/ps/parser.c:175
+msgid "list member was not a TTY"
+msgstr "ëª©ë¡ êµ¬ì„± í•­ëª©ì´ TTYê°€ 아닙니다"
+
+#: src/ps/parser.c:200
+msgid "improper list"
+msgstr "부ì ì ˆí•œ 목ë¡"
+
+#: src/ps/parser.c:249
+msgid "list of command names must follow -C"
+msgstr "명령 ì´ë¦„ 지정시 -C ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:257
+msgid "date format must follow -D"
+msgstr "날짜 형ì‹ì´ -D 다ìŒì— 와야 합니다"
+
+#: src/ps/parser.c:270
+msgid "list of real groups must follow -G"
+msgstr "해당 그룹 지정시 -G ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:283
+msgid "list of jobs must follow -J"
+msgstr "ìž‘ì—… 지정시 -J ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:311
+msgid "format or sort specification must follow -O"
+msgstr "í˜•ì‹ ë˜ëŠ” ì •ë ¬ 기준 지정시 -O ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:322
+msgid "list of PRM groups must follow -R"
+msgstr "PRM 그룹 지정시 -R ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:341
+msgid "list of real users must follow -U"
+msgstr "실제 ì‚¬ìš©ìž ì§€ì •ì‹œ -U ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:382
+msgid "list of session leaders OR effective group names must follow -g"
+msgstr "세션 ë¦¬ë” ë˜ëŠ” 해당 그룹 ì´ë¦„ 지정시 -g ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:393
+msgid "list of session leaders OR effective group IDs was invalid"
+msgstr "세션 ë¦¬ë” ë˜ëŠ” 해당 그룹 ì´ë¦„ì´ ë¶€ì ì ˆí•©ë‹ˆë‹¤"
+
+#: src/ps/parser.c:417
+msgid "format specification must follow -o"
+msgstr "í˜•ì‹ ì§€ì •ì‹œ -o ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:423
+msgid "list of process IDs must follow -p"
+msgstr "프로세스 ID 지정시 -p ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:440
+msgid "the -r option is reserved"
+msgstr "-r ì˜µì…˜ì€ ì˜ˆì•½ 옵션입니다"
+
+#: src/ps/parser.c:446
+msgid "list of session IDs must follow -s"
+msgstr "세션 ID 지정시 -s ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:454
+msgid "list of terminals (pty, tty...) must follow -t"
+msgstr "터미ë„(pty, tty...) 지정시 -t ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:462
+msgid "list of users must follow -u"
+msgstr "ì‚¬ìš©ìž ì§€ì •ì‹œ -u ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:484
+msgid "must set personality to get -x option"
+msgstr "-x 옵션 결과를 가져오려면 개별 설정 ê°’ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:499
+msgid "list of zones (contexts, labels, whatever?) must follow -z"
+msgstr ""
+"ì˜ì—­(contexts, labels, 그리고 ë˜ ë¬´ì—‡?) 지정시 -z ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:506
+msgid "embedded '-' among SysV options makes no sense"
+msgstr "SysV ì˜µì…˜ì— ë„£ì€ '-' ì˜µì…˜ì€ ì ì ˆí•˜ì§€ 않습니다"
+
+#: src/ps/parser.c:512
+msgid "unsupported SysV option"
+msgstr "지ì›í•˜ì§€ 않는 SysV 옵션"
+
+#: src/ps/parser.c:525
+msgid "cannot happen - problem #1"
+msgstr "ì¼ì–´ë‚˜ì„œëŠ” ì•ˆë  ë™ìž‘ - 문제 #1"
+
+#: src/ps/parser.c:529
+msgid "cannot happen - problem #2"
+msgstr "ì¼ì–´ë‚˜ì„œëŠ” ì•ˆë  ë™ìž‘ - 문제 #2"
+
+#: src/ps/parser.c:531
+msgid "second chance parse failed, not BSD or SysV"
+msgstr "2회차 í•´ì„ ì‹¤íŒ¨, BSD ë˜ëŠ” SysVê°€ 아닙니다"
+
+#: src/ps/parser.c:548
+msgid "option A is reserved"
+msgstr "A ì˜µì…˜ì€ ì˜ˆì•½ 옵션입니다"
+
+#: src/ps/parser.c:553
+msgid "option C is reserved"
+msgstr "C ì˜µì…˜ì€ ì˜ˆì•½ 옵션입니다"
+
+#: src/ps/parser.c:573
+msgid "format or sort specification must follow O"
+msgstr "í˜•ì‹ ë˜ëŠ” ì •ë ¬ 지정시 O를 지정해야 합니다"
+
+#: src/ps/parser.c:598
+msgid "list of users must follow U"
+msgstr "ì‚¬ìš©ìž ëª©ë¡ì—는 U를 지정해야 합니다"
+
+#: src/ps/parser.c:610
+msgid "obsolete W option not supported (you have a /dev/drum?)"
+msgstr "ì˜¤ëž˜ëœ W ì˜µì…˜ì„ ì§€ì›í•˜ì§€ 않습니다(/dev/drumì´ ìžˆìŠµë‹ˆê¹Œ?)"
+
+#: src/ps/parser.c:646 src/ps/parser.c:921 src/ps/parser.c:930
+msgid "only one heading option may be specified"
+msgstr "헤딩 ì˜µì…˜ì€ í•˜ë‚˜ë§Œ 지정해야 합니다"
+
+#: src/ps/parser.c:661
+msgid "long sort specification must follow 'k'"
+msgstr "긴 정렬 옵션 지정시 'k'를 지정해야 합니다"
+
+#: src/ps/parser.c:689
+msgid "format specification must follow o"
+msgstr "í˜•ì‹ ì§€ì •ì‹œ o를 지정해야 합니다"
+
+#: src/ps/parser.c:695
+msgid "list of process IDs must follow p"
+msgstr "프로세스 ID 지정시 p를 지정해야합니다"
+
+#: src/ps/parser.c:753
+msgid "embedded '-' among BSD options makes no sense"
+msgstr "BSD ì˜µì…˜ì— ë„£ì€ '-' ì˜µì…˜ì€ ì ì ˆí•˜ì§€ 않습니다"
+
+#: src/ps/parser.c:759
+msgid "unsupported option (BSD syntax)"
+msgstr "지ì›í•˜ì§€ 않는 옵션 (BSD 문법)"
+
+#: src/ps/parser.c:847 src/ps/parser.c:859
+msgid "unknown gnu long option"
+msgstr "알 수 없는 GNU 긴 옵션"
+
+#: src/ps/parser.c:867
+msgid "list of real groups must follow --Group"
+msgstr "실제 그룹 지정시 --Group ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:875
+msgid "list of real users must follow --User"
+msgstr "실제 ì‚¬ìš©ìž ì§€ì •ì‹œ --User(pty, tty...) ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:894
+msgid "number of columns must follow --cols, --width, or --columns"
+msgstr "컬럼 수 지정시 --cols, --width, --columns ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:897
+msgid "option --cumulative does not take an argument"
+msgstr "--cumulative 옵션ì—는 ì¸ìž ê°’ì„ ì·¨í•˜ì§€ 않습니다"
+
+#: src/ps/parser.c:902
+msgid "date format must follow --date-format"
+msgstr "날짜 형ì‹ì´ --date-format 다ìŒì— 와야 함니다"
+
+#: src/ps/parser.c:908
+msgid "option --deselect does not take an argument"
+msgstr "--deselect 옵션ì—는 ì¸ìž ê°’ì„ ì·¨í•˜ì§€ 않습니다"
+
+#: src/ps/parser.c:920
+msgid "option --no-heading does not take an argument"
+msgstr "--no-heading 옵션ì—는 ì¸ìž ê°’ì„ ì·¨í•˜ì§€ 않습니다"
+
+#: src/ps/parser.c:929
+msgid "option --heading does not take an argument"
+msgstr "--heading 옵션ì—는 ì¸ìž ê°’ì„ ì·¨í•˜ì§€ 않습니다"
+
+#: src/ps/parser.c:935
+msgid "option --forest does not take an argument"
+msgstr "--forest 옵션ì—는 ì¸ìž ê°’ì„ ì·¨í•˜ì§€ 않습니다"
+
+#: src/ps/parser.c:941
+msgid "format specification must follow --format"
+msgstr "í˜•ì‹ ì§€ì •ì‹œ --format ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:947
+msgid "list of effective groups must follow --group"
+msgstr "해당 그룹 지정시 --group ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:965
+msgid "list of process IDs must follow --pid"
+msgstr "프로세스 ID 지정시 --pid ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:981
+msgid "list of process IDs must follow --ppid"
+msgstr "ìƒìœ„ 프로세스 ID 지정시 --ppid ì˜µì…˜ì„ ì§€ì •í•´ì•„ 합니다"
+
+#: src/ps/parser.c:999
+msgid "number of rows must follow --rows or --lines"
+msgstr "í–‰ 수 지정시 --rows 옵션 ë˜ëŠ” --lines ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:1003
+msgid "some sid thing(s) must follow --sid"
+msgstr "세션 ID 지정시 --sid ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:1015
+msgid "long sort specification must follow --sort"
+msgstr "긴 ì •ë ¬ 옵션 지정시 --sort ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:1021
+msgid "list of ttys must follow --tty"
+msgstr "tty í„°ë¯¸ë„ ì§€ì •ì‹œ --tty ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:1029
+msgid "list of effective users must follow --user"
+msgstr "해당 ì‚¬ìš©ìž ì§€ì •ì‹œ --user ì˜µì…˜ì„ ì§€ì •í•´ì•¼ 합니다"
+
+#: src/ps/parser.c:1145
+msgid "way bad"
+msgstr "ë°©ë²•ì´ ìž˜ëª»ë¨"
+
+#: src/ps/parser.c:1159
+msgid "garbage option"
+msgstr "필요 없는 옵션"
+
+#: src/ps/parser.c:1163
+msgid "something broke"
+msgstr "뭔가가 깨졌습니다?"
+
+#: src/ps/parser.c:1183
+msgid "thread display conflicts with forest display"
+msgstr "스레드 표시 ë°©ì‹ ì§€ì •ì´ í¬ë ˆìŠ¤íŠ¸ 출력 ë°©ì‹ ì§€ì •ê³¼ 겹칩니다"
+
+#: src/ps/parser.c:1188
+msgid "thread flags conflict; can't use H with m or -m"
+msgstr "스레드 플래그갸 겹칩니다. H ì˜µì…˜ì„ m ë˜ëŠ” -m 옵션과 사용할 수 없습니다"
+
+#: src/ps/parser.c:1190
+msgid "thread flags conflict; can't use both m and -m"
+msgstr "스레드 플래그갸 겹칩니다. m ì˜µì…˜ì„ -m 옵션과 사용할 수 없습니다"
+
+#: src/ps/parser.c:1192
+msgid "thread flags conflict; can't use both -L and -T"
+msgstr "스레드 플래그갸 겹칩니다. -L ì˜µì…˜ì„ -T 옵션과 사용할 수 없습니다"
+
+#: src/ps/parser.c:1265 src/ps/parser.c:1266
+#, c-format
+msgid "error: %s\n"
+msgstr "오류: %s\n"
+
+#: src/ps/select.c:71
+msgid "process selection options conflict"
+msgstr "프로세스 ì„ íƒ ì˜µì…˜ì´ ê²¹ì¹©ë‹ˆë‹¤"
+
+#: src/ps/sortformat.c:110 src/ps/sortformat.c:115
+msgid "seriously crashing: goodbye cruel world"
+msgstr "심한 ìƒí™©ì˜ 오류: ê±°ì§€ê°™ì€ ì„¸ìƒì´ì—¬ 안녕"
+
+#: src/ps/sortformat.c:150 src/ps/sortformat.c:169
+msgid "missing AIX field descriptor"
+msgstr "빠진 AIX í•„ë“œ 서술ìž"
+
+#: src/ps/sortformat.c:152
+msgid "improper AIX field descriptor"
+msgstr "부ì ì ˆí•œ AIX í•„ë“œ 서술ìž"
+
+#: src/ps/sortformat.c:174
+msgid "unknown AIX field descriptor"
+msgstr "ì•Œ 수 없는 AIX í•„ë“œ 서술ìž"
+
+#: src/ps/sortformat.c:179
+msgid "AIX field descriptor processing bug"
+msgstr "AIX í•„ë“œ ì„œìˆ ìž ì²˜ë¦¬ 문제"
+
+#: src/ps/sortformat.c:287
+#, c-format
+msgid "unknown user-defined format specifier \"%s\""
+msgstr "ì•Œ 수 없는 ì‚¬ìš©ìž ì§€ì • í˜•ì‹ ì§€ì •ìž \"%s\""
+
+#: src/ps/sortformat.c:314
+msgid "empty format list"
+msgstr "빈 í˜•ì‹ ëª©ë¡"
+
+#: src/ps/sortformat.c:315
+msgid "improper format list"
+msgstr "부ì ì ˆí•œ í˜•ì‹ ëª©ë¡"
+
+#: src/ps/sortformat.c:316
+msgid "column widths must be unsigned decimal numbers"
+msgstr "컬럼 너비는 비부호 10진수여야 합니다"
+
+#: src/ps/sortformat.c:317
+msgid "can not set width for a macro (multi-column) format specifier"
+msgstr "매í¬ë¡œ(다중 컬럼) í˜•ì‹ ì§€ì •ìžì— 대해 너비를 설정할 수 없습니다"
+
+#: src/ps/sortformat.c:371 src/ps/sortformat.c:387
+msgid "improper sort list"
+msgstr "부ì ì ˆí•œ ì •ë ¬ 목ë¡"
+
+#: src/ps/sortformat.c:382
+msgid "empty sort list"
+msgstr "빈 ì •ë ¬ 목ë¡"
+
+#: src/ps/sortformat.c:403 src/ps/sortformat.c:482 src/ps/sortformat.c:484
+msgid "unknown sort specifier"
+msgstr "ì•Œ 수 없는 ì •ë ¬ 기준 지정ìž"
+
+#: src/ps/sortformat.c:430 src/ps/sortformat.c:435 src/ps/sortformat.c:442
+#: src/ps/sortformat.c:448
+msgid "bad sorting code"
+msgstr "ìž˜ëª»ëœ ì •ë ¬ 코드"
+
+#: src/ps/sortformat.c:445
+msgid "PPID sort and forest output conflict"
+msgstr "PPID ì •ë ¬ ë°©ì‹ê³¼ í¬ë ˆìŠ¤íŠ¸ 출력 ë°©ì‹ ì§€ì •ì´ ê²¹ì¹©ë‹ˆë‹¤"
+
+#: src/ps/sortformat.c:519
+msgid "option -O can not follow other format options"
+msgstr "-O ì˜µì…˜ì€ ë‹¤ë¥¸ í˜•ì‹ ì˜µì…˜ì„ ê°™ì´ ì§€ì •í•  수 없습니다"
+
+#: src/ps/sortformat.c:526 src/ps/sortformat.c:544
+msgid "multiple sort options"
+msgstr "다중 정렬 옵션"
+
+#: src/ps/sortformat.c:534
+msgid "option O is neither first format nor sort order"
+msgstr "O ì˜µì…˜ì€ ì²« í˜•ì‹ ì§€ì • ê°’ì´ê±°ë‚˜ ì •ë ¬ 순서 ê°’ì¼ ìˆ˜ 없습니다"
+
+#: src/ps/sortformat.c:661
+msgid "modifier -y without format -l makes no sense"
+msgstr "-y ì˜µì…˜ì— í˜•ì‹ ì§€ì •ìžê°€ 빠진 -l 옵션 ì§€ì •ì€ ë™ìž‘하지 않습니다"
+
+#: src/ps/sortformat.c:760
+msgid "bug: must reset the list first"
+msgstr "버그: ìš°ì„  목ë¡ì„ 초기화 해야 합니다"
+
+#: src/ps/sortformat.c:797
+msgid "tell <procps@freelists.org> what you expected"
+msgstr "<procps@freelists.org>ì— ê¸°ëŒ€ ë™ìž‘ì„ ì•Œë ¤ì£¼ì‹­ì‹œì˜¤"
+
+#: src/ps/sortformat.c:807
+msgid ""
+"tell <procps@freelists.org> what you want (-L/-T, -m/m/H, and $PS_FORMAT)"
+msgstr ""
+"<procps@freelists.org>ì— ì›í•˜ëŠ” ë™ìž‘(-L/-T, -m/m/H, $PS_FORMAT)ì„ ì•Œë ¤ì£¼ì‹­ì‹œ"
+"오"
+
+#: src/ps/sortformat.c:824
+#, c-format
+msgid "warning: $PS_FORMAT ignored. (%s)\n"
+msgstr "경고: $PS_FORMAT 무시함. (%s)\n"
+
+#: src/ps/sortformat.c:829 src/ps/sortformat.c:839
+msgid "conflicting format options"
+msgstr "í˜•ì‹ ì˜µì…˜ì´ ì„œë¡œ 중복입니다"
+
+#: src/ps/sortformat.c:830
+msgid "can not use output modifiers with user-defined output"
+msgstr "출력 지정ìžë¥¼ ì‚¬ìš©ìž ì§€ì • 출력 값으로 사용할 수 없습니다"
+
+#: src/ps/sortformat.c:831
+msgid "-L/-T with H/m/-m and -o/-O/o/O is nonsense"
+msgstr "-L/-T, H/m/-m, -o/-O/o/O ì˜µì…˜ì„ í•¨ê»˜ 사용할 수 없습니다"
+
+#: src/ps/sortformat.c:889
+msgid "internal error: no PID or PPID for -j option"
+msgstr "내부 오류: -j ì˜µì…˜ì„ ì‹¤í–‰í•  PID ë˜ëŠ” PPID ê°’ì´ ì—†ìŠµë‹ˆë‹¤"
+
+#: src/ps/sortformat.c:891
+msgid "lost my PGID"
+msgstr "PGID 분실"
+
+#: src/ps/sortformat.c:904
+msgid "internal error: no PRI for -c option"
+msgstr "내부 오류: -c ì˜µì…˜ì„ ì‹¤í–‰í•  PRI ê°’ì´ ì—†ìŠµë‹ˆë‹¤"
+
+#: src/ps/sortformat.c:907
+msgid "lost my CLS"
+msgstr "CLS 값 분실"
+
+#: src/ps/sortformat.c:912
+msgid "-T with H/-m/m but no PID for SPID to follow"
+msgstr ""
+"-T 옵션과 H/-m/m ì˜µì…˜ì„ ì§€ì •í–ˆì§€ë§Œ SPIDì— ëŒ€í•œ PID ê°’ì„ ì§€ì •í•˜ì§€ 않았습니다"
+
+#: src/ps/sortformat.c:923
+msgid "-L with H/-m/m but no PID/PGID/SID/SESS for NLWP to follow"
+msgstr ""
+"-L 옵션과 H/-m/m ì˜µì…˜ì„ ì§€ì •í–ˆì§€ë§Œ NLWPì— ëŒ€í•œ PID/PGID/SID/SESS ê°’ì„ ì§€ì •í•˜"
+"지 않았습니다"
+
+#: src/pwdx.c:41
+#, c-format
+msgid " %s [options] pid...\n"
+msgstr " %s [<옵션>] <PID>...\n"
+
+#: src/pwdx.c:117
+#, c-format
+msgid "invalid process id: %s"
+msgstr "부ì ì ˆí•œ 프로세스 ID: %s"
+
+#: src/skill.c:285
+msgid "Unable to create pid Pids_info structure"
+msgstr "PIDì˜ Pids_info 구조 정보를 만들 수 없습니다"
+
+#: src/skill.c:288 src/w.c:458
+msgid "Unable to load process information"
+msgstr "프로세스 정보를 불러올 수 없습니다"
+
+#: src/skill.c:319
+#, c-format
+msgid " %s [signal] [options] <expression>\n"
+msgstr " %s [<시그ë„>] [<옵션>] <표현ì‹>\n"
+
+#: src/skill.c:323
+#, c-format
+msgid " %s [new priority] [options] <expression>\n"
+msgstr " %s [<새_우선순위>] [<옵션>] <표현ì‹>\n"
+
+#: src/skill.c:327
+msgid " -f, --fast fast mode (not implemented)\n"
+msgstr " -f, --fast ê³ ì† ëª¨ë“œ (구현 안함)\n"
+
+#: src/skill.c:328
+msgid " -i, --interactive interactive\n"
+msgstr " -i, --interactive ëŒ€í™”ì‹ ì²˜ë¦¬\n"
+
+#: src/skill.c:329
+msgid " -l, --list list all signal names\n"
+msgstr " -l, --list 모든 ì‹œê·¸ë„ ì´ë¦„ 표시\n"
+
+#: src/skill.c:330
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr " -L, --table nice í…Œì´ë¸”ì— ëª¨ë“  ì‹œê·¸ë„ ì´ë¦„ 표시\n"
+
+#: src/skill.c:331
+msgid ""
+" -n, --no-action do not actually kill processes; just print what would "
+"happen\n"
+msgstr ""
+" -n, --no-action 실제로 프로세스를 강제로 ë내지 ì•ŠìŒ. ì–´ë–¤ ì¼ì´ ì¼ì–´ë‚  지"
+"만 출력\n"
+
+#: src/skill.c:332
+msgid " -v, --verbose explain what is being done\n"
+msgstr " -v, --verbose ì–´ë–¤ ë™ìž‘ì´ ì¼ì–´ë‚¬ëŠ”지 출력\n"
+
+#: src/skill.c:333
+msgid " -w, --warnings enable warnings (not implemented)\n"
+msgstr " -w, --warnings 경고 출력 사용 (구현 안함)\n"
+
+#: src/skill.c:335
+msgid ""
+"Expression can be: terminal, user, pid, command.\n"
+"The options below may be used to ensure correct interpretation.\n"
+msgstr ""
+"표현ì‹ì€ 터미ë„, 사용ìž, PID, 명령 ì´ë¦„으로 지정할 수 있습니다.\n"
+"아래 ì˜µì…˜ì€ ì˜¬ë°”ë¥´ê²Œ í•´ì„í•  수 있ë„ë¡ ë³´ì¡°í•˜ëŠ” ìš©ë„ë¡œ 활용합니다.\n"
+
+#: src/skill.c:337
+msgid " -c, --command <command> expression is a command name\n"
+msgstr " -c, --command <명령> 표현ì‹ì´ 명령 ì´ë¦„ìž„\n"
+
+#: src/skill.c:338
+msgid " -p, --pid <pid> expression is a process id number\n"
+msgstr " -p, --pid <PID> 표현ì‹ì´ 프로세스 ID 번호 ê°’ìž„\n"
+
+#: src/skill.c:339
+msgid " -t, --tty <tty> expression is a terminal\n"
+msgstr " -t, --tty <tty> 표현ì‹ì´ 터미ë„ìž„\n"
+
+#: src/skill.c:340
+msgid " -u, --user <username> expression is a username\n"
+msgstr " -u, --user <사용ìžì´ë¦„> 표현ì‹ì´ ì‚¬ìš©ìž ì´ë¦„ìž„\n"
+
+#: src/skill.c:342
+msgid "Alternatively, expression can be:\n"
+msgstr "대신 표현ì‹ì„ 다ìŒì²˜ëŸ¼ 지정할 수 있습니다:\n"
+
+#: src/skill.c:343
+msgid ""
+" --ns <pid> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+" --ns <PID> <PID>와 ë™ì¼í•œ ì´ë¦„ ì—¬ì—­ì„ ì†Œìœ í•œ 프로세스만\n"
+"\t\n"
+
+#: src/skill.c:345
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option; available namespaces are\n"
+": ipc, mnt, net, pid, user, uts\n"
+msgstr ""
+" --nslist <ns,...> --ns ì˜µì…˜ì— ì§€ì •í•œ ì´ë¦„ ì˜ì—­ë§Œ 표시합니다.\n"
+" 가용 ì´ë¦„ ì˜ì—­ ê°’:ipc, mnt, net, pid, user, uts\n"
+
+#: src/skill.c:355
+#, c-format
+msgid ""
+"\n"
+"The default signal is TERM. Use -l or -L to list available signals.\n"
+"Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0.\n"
+"Alternate signals may be specified in three ways: -SIGKILL -KILL -9\n"
+msgstr ""
+"\n"
+"기본 시그ë„ì€ TERM 입니다. 가용 ì‹œê·¸ë„ ëª©ë¡ì„ 보려면 -l ë˜ëŠ” -L ì˜µì…˜ì„ ì‚¬ìš©í•˜"
+"십시오.\n"
+"HUP, INT, KILL, STOP, CONT, 0 ë“±ì˜ ì‹œê·¸ë„ì´ ì¼ë¶€ 쓸만합니다.\n"
+"-SIGKILL -KILL -9 세가지 ë°©ì‹ìœ¼ë¡œ 시그ë„ì„ ëŒ€ì‹  지정할 수 있습니다.\n"
+
+#: src/skill.c:362
+#, c-format
+msgid ""
+"\n"
+"The default priority is +4. (snice +4 ...)\n"
+"Priority numbers range from +20 (slowest) to -20 (fastest).\n"
+"Negative priority numbers are restricted to administrative users.\n"
+msgstr ""
+"\n"
+"기본 우선순위는 +4입니다. (snice +4 ...)\n"
+"우선순위 ìˆ«ìž ê°’ 범위는 +20(가장 ëŠë¦¼)ì—ì„œ -20(가장 빠름)까지 입니다.\n"
+"ìŒìˆ˜ 우선순위값 사용 ê¶Œí•œì€ ê´€ë¦¬ìžì— 한정합니다.\n"
+
+#: src/skill.c:384
+#, c-format
+msgid "priority %lu out of range"
+msgstr "%lu 우선순위 ê°’ì€ ë²”ìœ„ë¥¼ 벗어납니다"
+
+#: src/skill.c:493
+#, c-format
+msgid "invalid pid number %s"
+msgstr "부ì ì ˆí•œ %s PID 숫ìžê°’"
+
+#: src/skill.c:497
+msgid "error reading reference namespace information"
+msgstr "참조 ì´ë¦„ ì˜ì—­ ì •ë³´ ì½ê¸° 오류"
+
+#: src/skill.c:505
+msgid "invalid namespace list"
+msgstr "부ì ì ˆí•œ ì´ë¦„ ì˜ì—­ 목ë¡"
+
+#: src/skill.c:542
+msgid "no process selection criteria"
+msgstr "프로세스 ì„ íƒ ê²€ìƒ‰ì–´ê°€ 없습니다"
+
+#: src/skill.c:545
+msgid "general flags may not be repeated"
+msgstr "ì¼ë°˜ 플래그를 반복 사용하지 않는게 좋습니다"
+
+#: src/skill.c:548
+msgid "-i makes no sense with -v, -f, and -n"
+msgstr "-v, -f, -n 옵션과 -i ì˜µì…˜ì˜ ì‚¬ìš©ì´ ì˜¬ë°”ë¥´ì§€ 않습니다"
+
+#: src/skill.c:550
+msgid "-v makes no sense with -i and -f"
+msgstr "-i, -f 옵션과 -v ì˜µì…˜ì˜ ì‚¬ìš©ì´ ì˜¬ë°”ë¥´ì§€ 않습니다"
+
+#: src/skill.c:594
+#, c-format
+msgid "skill: \"%s\" is not supported\n"
+msgstr "skill: \"%s\"ì„(를) 지ì›í•˜ì§€ 않습니다\n"
+
+#: src/slabtop.c:108
+msgid " -d, --delay <secs> delay updates\n"
+msgstr " -d, --delay <초> 지연 시간 갱신\n"
+
+#: src/slabtop.c:109
+msgid " -o, --once only display once, then exit\n"
+msgstr " -o, --once 한 번만 나타내고 나갑니다\n"
+
+#: src/slabtop.c:110
+msgid " -s, --sort <char> specify sort criteria by character (see below)\n"
+msgstr " -s, --sort <문ìž> ì •ë ¬ ê¸°ì¤€ì„ ë¬¸ìžë¡œ 지정합니다(하단 참조)\n"
+
+#: src/slabtop.c:115
+msgid ""
+"\n"
+"The following are valid sort criteria:\n"
+msgstr ""
+"\n"
+"ë‹¤ìŒ ë¬¸ìžê°€ ì •ë ¬ ê¸°ì¤€ì— í•´ë‹¹í•©ë‹ˆë‹¤:\n"
+
+#: src/slabtop.c:116
+msgid " a: sort by number of active objects\n"
+msgstr " a: 활성 개체순 정렬\n"
+
+#: src/slabtop.c:117
+msgid " b: sort by objects per slab\n"
+msgstr " b: slab당 개체순 정렬\n"
+
+#: src/slabtop.c:118
+msgid " c: sort by cache size\n"
+msgstr " c: ìºì‹œ í¬ê¸°ìˆœ ì •ë ¬\n"
+
+#: src/slabtop.c:119
+msgid " l: sort by number of slabs\n"
+msgstr " l: slab 갯수순 정렬\n"
+
+#: src/slabtop.c:120
+msgid " v: sort by (non display) number of active slabs\n"
+msgstr " v: (표시하지 않는) 활성 slab 수순 정렬\n"
+
+#: src/slabtop.c:121
+msgid " n: sort by name\n"
+msgstr " n: ì´ë¦„순 ì •ë ¬\n"
+
+#: src/slabtop.c:122
+msgid " o: sort by number of objects (the default)\n"
+msgstr " o: 개체 수순 정렬(기본값)\n"
+
+#: src/slabtop.c:123
+msgid " p: sort by (non display) pages per slab\n"
+msgstr " p: slab당 (표시하지 않는) 페ì´ì§€ 수순 ì •ë ¬\n"
+
+#: src/slabtop.c:124
+msgid " s: sort by object size\n"
+msgstr " s: 개체 í¬ê¸°ìˆœ ì •ë ¬\n"
+
+#: src/slabtop.c:125
+msgid " u: sort by cache utilization\n"
+msgstr " u: ìºì‹œ 활용순 ì •ë ¬\n"
+
+#: src/slabtop.c:188 src/slabtop.c:199
+msgid "Cannot combine -d and -o options"
+msgstr "-d 옵션과 -o ì˜µì…˜ì„ í•¨ê»˜ 사용할 수 없습니다"
+
+#: src/slabtop.c:190
+msgid "illegal delay"
+msgstr "ìž˜ëª»ëœ ì§€ì—° 시간 ê°’"
+
+#: src/slabtop.c:192 src/tload.c:142 src/vmstat.c:1049
+msgid "delay must be positive integer"
+msgstr "지연 시간 ê°’ì€ ì–‘ì˜ ì •ìˆ˜ê°’ì´ì–´ì•¼ 합니다"
+
+#: src/slabtop.c:236
+msgid "Error getting slab summary results"
+msgstr "slab 메모리 결과값 가져오기 오류"
+
+#. Translation Hint: Next five strings must not
+#. * exceed a length of 35 characters.
+#: src/slabtop.c:242
+#, no-c-format
+msgid "Active / Total Objects (% used)"
+msgstr "활성 / ì´ ê°œì²´ 수 (사용 %)"
+
+#: src/slabtop.c:248
+#, no-c-format
+msgid "Active / Total Slabs (% used)"
+msgstr "활성 / ì´ slab 수 (사용 %)"
+
+#: src/slabtop.c:254
+#, no-c-format
+msgid "Active / Total Caches (% used)"
+msgstr "활성 / ì´ ìºì‹œ 수 (사용 %)"
+
+#: src/slabtop.c:260
+#, no-c-format
+msgid "Active / Total Size (% used)"
+msgstr "활성 / ì´ í¬ê¸° (사용 %)"
+
+#: src/slabtop.c:265
+msgid "Minimum / Average / Maximum Object"
+msgstr "최소 / í‰ê·  / 최대 개체 수"
+
+#. Translation Hint: Please keep alignment of the
+#. * following intact.
+#: src/slabtop.c:276
+msgid " OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME"
+msgstr " 활성 개체 사용개체í¬ê¸° SLAB 개체/SLAB ìºì‹œ í¬ê¸° ì´ë¦„"
+
+#: src/slabtop.c:313 src/vmstat.c:767
+msgid "Unable to create slabinfo structure"
+msgstr "slabinfo 구조 ë°ì´í„°ë¥¼ 만들 수 없습니다"
+
+#: src/slabtop.c:318
+msgid "terminal setting retrieval"
+msgstr "í„°ë¯¸ë„ ì„¤ì • 가져오기"
+
+#: src/slabtop.c:334 src/vmstat.c:774
+msgid "Unable to get slabinfo node data"
+msgstr "slabinfo 노드 ë°ì´í„°ë¥¼ 가져올 수 없습니다"
+
+#: src/slabtop.c:340 src/vmstat.c:776
+msgid "Unable to sort slab nodes"
+msgstr "slab 노드를 정렬할 수 없습니다"
+
+#: src/sysctl.c:118
+#, c-format
+msgid "Path is not under %s: %s"
+msgstr "%sì— ê²½ë¡œê°€ 없습니다: %s"
+
+#: src/sysctl.c:136
+#, c-format
+msgid "separators should not be repeated: %s"
+msgstr "구분ìžë¥¼ 반복 입력하면 안ë©ë‹ˆë‹¤: %s"
+
+#: src/sysctl.c:232
+#, c-format
+msgid " %s [options] [variable[=value] ...]\n"
+msgstr " %s [<옵션>] [<변수>[=<값>] ...]\n"
+
+#: src/sysctl.c:235
+msgid " -a, --all display all variables\n"
+msgstr " -a, --all 모든 변수 표시\n"
+
+#: src/sysctl.c:236
+msgid " -A alias of -a\n"
+msgstr " -A -a 대용\n"
+
+#: src/sysctl.c:237
+msgid " -X alias of -a\n"
+msgstr " -X -a 대용\n"
+
+#: src/sysctl.c:238
+msgid " --deprecated include deprecated parameters to listing\n"
+msgstr " --deprecated ì˜¤ëž˜ëœ ë§¤ê°œë³€ìˆ˜ë¥¼ 표시 ë‚´ìš©ì— í¬í•¨\n"
+
+#: src/sysctl.c:239
+msgid " --dry-run Print the key and values but do not write\n"
+msgstr " --dry-run 키=ê°’ì„ ì¶œë ¥í•˜ê³  기ë¡í•˜ì§€ ì•ŠìŒ\n"
+
+#: src/sysctl.c:240
+msgid " -b, --binary print value without new line\n"
+msgstr " -b, --binary 개행하지 않고 값 출력\n"
+
+#: src/sysctl.c:241
+msgid " -e, --ignore ignore unknown variables errors\n"
+msgstr " -e, --ignore 알 수 없는 변수 오류 무시\n"
+
+#: src/sysctl.c:242
+msgid " -N, --names print variable names without values\n"
+msgstr " -N, --names ê°’ì„ ëº€ 변수 ì´ë¦„만 출력\n"
+
+#: src/sysctl.c:243
+msgid " -n, --values print only values of the given variable(s)\n"
+msgstr " -n, --values 지정 ë³€ìˆ˜ì˜ ê°’ë§Œ 출력\n"
+
+#: src/sysctl.c:244
+msgid " -p, --load[=<file>] read values from file\n"
+msgstr " -p, --load[=<파ì¼>] 파ì¼ì—ì„œ ê°’ ì½ê¸°\n"
+
+#: src/sysctl.c:245
+msgid " -f alias of -p\n"
+msgstr " -f -p 대용\n"
+
+#: src/sysctl.c:246
+msgid " --system read values from all system directories\n"
+msgstr " --system 모든 시스템 ë””ë ‰í„°ë¦¬ì˜ ê°’ ì½ê¸°\n"
+
+#: src/sysctl.c:247
+msgid ""
+" -r, --pattern <expression>\n"
+" select setting that match expression\n"
+msgstr ""
+" -r, --pattern <표현ì‹>\n"
+" 표현ì‹ì— ì¼ì¹˜í•˜ëŠ” 설정 ê°’ ì„ íƒ\n"
+
+#: src/sysctl.c:249
+msgid " -q, --quiet do not echo variable set\n"
+msgstr " -q, --quiet 변수 모ìŒì„ 출력하지 ì•ŠìŒ\n"
+
+#: src/sysctl.c:250
+msgid " -w, --write enable writing a value to variable\n"
+msgstr " -w, --write ë³€ìˆ˜ì— ê°’ 쓰기 ë™ìž‘ 사용\n"
+
+#: src/sysctl.c:251
+msgid " -o does nothing\n"
+msgstr " -o ì•„ë¬´ê²ƒë„ ì•ˆ 함\n"
+
+#: src/sysctl.c:252
+msgid " -x does nothing\n"
+msgstr " -x ì•„ë¬´ê²ƒë„ ì•ˆ 함\n"
+
+#: src/sysctl.c:253
+msgid " -d alias of -h\n"
+msgstr " -d -h 대용\n"
+
+#: src/sysctl.c:334 src/sysctl.c:390
+#, c-format
+msgid "\"%s\" is an unknown key"
+msgstr "\"%s\"ì€(는) ì•Œ 수 없는 키입니다"
+
+#: src/sysctl.c:352 src/sysctl.c:508 src/sysctl.c:545
+#, c-format
+msgid "cannot stat %s"
+msgstr "%s ìƒíƒœë¥¼ 확ì¸í•  수 없습니다"
+
+#: src/sysctl.c:395 src/sysctl.c:437
+#, c-format
+msgid "permission denied on key '%s'"
+msgstr "'%s' 키 사용 ê¶Œí•œì„ ê±°ë¶€í–ˆìŠµë‹ˆë‹¤"
+
+#: src/sysctl.c:402 src/sysctl.c:454
+#, c-format
+msgid "reading key \"%s\""
+msgstr "\"%s\" 키 ì½ëŠ” 중"
+
+#: src/sysctl.c:492
+#, c-format
+msgid "unable to open directory \"%s\""
+msgstr "\"%s\" 디렉터리를 열 수 없습니다"
+
+#: src/sysctl.c:557
+msgid "strdup key"
+msgstr "키 strdup"
+
+#: src/sysctl.c:564 src/sysctl.c:571 src/sysctl.c:604
+#, c-format
+msgid "setting key \"%s\""
+msgstr "\"%s\" 키 설정 중"
+
+#: src/sysctl.c:581
+#, c-format
+msgid "\"%s\" is an unknown key%s"
+msgstr "\"%s\"ì€(는) ì•Œ 수 없는 키입니다%s"
+
+#: src/sysctl.c:582 src/sysctl.c:591 src/sysctl.c:595
+msgid ", ignoring"
+msgstr ", 무시함"
+
+#: src/sysctl.c:590
+#, c-format
+msgid "permission denied on key \"%s\"%s"
+msgstr "\"%s\" 키 사용 ê¶Œí•œì„ ê±°ë¶€í–ˆìŠµë‹ˆë‹¤%s"
+
+#: src/sysctl.c:594
+#, c-format
+msgid "setting key \"%s\"%s"
+msgstr "\"%s\" 키 설정 중%s"
+
+#: src/sysctl.c:669
+#, c-format
+msgid "%s(%d): invalid syntax, continuing..."
+msgstr "%s(%d): 문법 잘못ë¨. 계ì†í•©ë‹ˆë‹¤..."
+
+#: src/sysctl.c:761
+#, c-format
+msgid ""
+"GLOB_TILDE is not supported on your platform, the tilde in \"%s\" won't be "
+"expanded."
+msgstr ""
+"GLOB_TILDE를 플랫í¼ì—ì„œ 지ì›í•˜ì§€ 않습니다. \"%s\"ì˜ ~ 를 풀어 í•´ì„하지 않습니"
+"다."
+
+#: src/sysctl.c:767
+msgid "glob failed"
+msgstr "glob 실패"
+
+#: src/sysctl.c:773
+#, c-format
+msgid "cannot open \"%s\""
+msgstr "\"%s\"ì„(를) ì—´ 수 없습니다"
+
+#: src/sysctl.c:877 src/sysctl.c:884
+#, c-format
+msgid "* Applying %s ...\n"
+msgstr "* %s ì ìš© 중 ...\n"
+
+#: src/sysctl.c:1050
+#, c-format
+msgid ""
+"no variables specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+"지정한 변수가 없습니다\n"
+"ìžì„¸í•œ 정보는 `%s --help'를 입력하십시오."
+
+#: src/sysctl.c:1054
+#, c-format
+msgid ""
+"options -N and -q cannot coexist\n"
+"Try `%s --help' for more information."
+msgstr ""
+"-N 옵션과 -q ì˜µì…˜ì„ í•¨ê»˜ 사용할 수 없습니다\n"
+"ìžì„¸í•œ 정보는 `%s --help'를 입력하십시오."
+
+#: src/tload.c:75 src/tload.c:77
+msgid "screen too small or too large"
+msgstr "화면 êµ¬ì—­ì´ ë„ˆë¬´ 작거나 í½ë‹ˆë‹¤"
+
+#: src/tload.c:80
+msgid "screen too small"
+msgstr "화면 êµ¬ì—­ì´ ë„ˆë¬´ 작습니다"
+
+#: src/tload.c:96
+#, c-format
+msgid " %s [options] [tty]\n"
+msgstr " %s [<옵션>] [<tty>]\n"
+
+#: src/tload.c:98
+msgid " -d, --delay <secs> update delay in seconds\n"
+msgstr " -d, --delay <초> 초 단위 지연 시간 갱신\n"
+
+#: src/tload.c:99
+msgid " -s, --scale <num> vertical scale\n"
+msgstr " -s, --scale <숫ìž> ìˆ˜ì§ ìŠ¤ì¼€ì¼\n"
+
+#: src/tload.c:137
+msgid "scale cannot be negative"
+msgstr "ìŠ¤ì¼€ì¼ ê°’ì€ ìŒìˆ˜ì¼ 수 없습니다"
+
+#: src/tload.c:144 src/vmstat.c:1051
+msgid "too large delay value"
+msgstr "지연 시간 ê°’ì´ ë„ˆë¬´ í½ë‹ˆë‹¤"
+
+#: src/tload.c:159
+msgid "can not open tty"
+msgstr "tty 터미ë„ì„ ì—´ 수 없습니다"
+
+#: src/tload.c:182
+msgid "Load average file /proc/loadavg does not exist"
+msgstr "/proc/loadavg 부하 í‰ê·  ì •ë³´ 파ì¼ì´ 없습니다"
+
+#: src/tload.c:185
+msgid "Unable to get load average"
+msgstr "부하 í‰ê·  정보를 가져올 수 없습니다"
+
+#: src/tload.c:227 src/tload.c:229
+msgid "writing to tty failed"
+msgstr "tty í„°ë¯¸ë„ ì“°ê¸° 실패"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The following line pairs contain only plain text and consist of:
+#. . 1) a field name/column header - mostly upper case
+#. . 2) the related description - both upper and lower case
+#. .
+#. . To avoid truncation on the main top display, each column header
+#. . is noted with its maximum size, while a few are 'variable' width.
+#. . Names for the latter should probably be 10 or fewer characters.
+#. .
+#. . Those fields shown with a '+' are also eligible for user resizing
+#. . using the 'X' command. That means the default width might produce
+#. . truncation but need not if widened (see the man page 'X' command).
+#. .
+#. . All headers are subject to a maximum of 8 on the Fields Management
+#. . screen where truncation is entirely acceptable.
+#. .
+#. . The associated descriptions are always limited to 20 characters,
+#. . and are used only on the Fields Management screen.
+#. .
+#. . In all cases, fewer characters are just fine.
+#. .
+#. Translation Hint: maximum 'PID' = 5
+#: src/top/top_nls.c:152
+msgid "PID"
+msgstr "PID"
+
+#: src/top/top_nls.c:153
+msgid "Process Id"
+msgstr "프로세스 ID"
+
+#. Translation Hint: maximum 'PPID' = 5
+#: src/top/top_nls.c:155
+msgid "PPID"
+msgstr "PPID"
+
+#: src/top/top_nls.c:156
+msgid "Parent Process pid"
+msgstr "ìƒìœ„ 프로세스 ID"
+
+#. Translation Hint: maximum 'UID' = 5 +
+#: src/top/top_nls.c:158
+msgid "UID"
+msgstr "UID"
+
+#: src/top/top_nls.c:159
+msgid "Effective User Id"
+msgstr "해당 ì‚¬ìš©ìž ID"
+
+#. Translation Hint: maximum 'USER' = 8 +
+#: src/top/top_nls.c:161 src/w.c:799
+msgid "USER"
+msgstr "USER"
+
+#: src/top/top_nls.c:162
+msgid "Effective User Name"
+msgstr "해당 ì‚¬ìš©ìž ì´ë¦„"
+
+#. Translation Hint: maximum 'RUID' = 5 +
+#: src/top/top_nls.c:164
+msgid "RUID"
+msgstr "RUID"
+
+#: src/top/top_nls.c:165
+msgid "Real User Id"
+msgstr "실제 ì‚¬ìš©ìž ID"
+
+#. Translation Hint: maximum 'RUSER' = 8 +
+#: src/top/top_nls.c:167
+msgid "RUSER"
+msgstr "RUSER"
+
+#: src/top/top_nls.c:168
+msgid "Real User Name"
+msgstr "실제 ì‚¬ìš©ìž ì´ë¦„"
+
+#. Translation Hint: maximum 'SUID' = 5 +
+#: src/top/top_nls.c:170
+msgid "SUID"
+msgstr "SUID"
+
+#: src/top/top_nls.c:171
+msgid "Saved User Id"
+msgstr "저장한 ì‚¬ìš©ìž ID"
+
+#. Translation Hint: maximum 'SUSER' = 8 +
+#: src/top/top_nls.c:173
+msgid "SUSER"
+msgstr "SUSER"
+
+#: src/top/top_nls.c:174
+msgid "Saved User Name"
+msgstr "저장한 ì‚¬ìš©ìž ì´ë¦„"
+
+#. Translation Hint: maximum 'GID' = 5 +
+#: src/top/top_nls.c:176
+msgid "GID"
+msgstr "GID"
+
+#: src/top/top_nls.c:177
+msgid "Group Id"
+msgstr "그룹 ID"
+
+#. Translation Hint: maximum 'GROUP' = 8 +
+#: src/top/top_nls.c:179
+msgid "GROUP"
+msgstr "GROUP"
+
+#: src/top/top_nls.c:180
+msgid "Group Name"
+msgstr "그룹 ì´ë¦„"
+
+#. Translation Hint: maximum 'PGRP' = 5
+#: src/top/top_nls.c:182
+msgid "PGRP"
+msgstr "PGRP"
+
+#: src/top/top_nls.c:183
+msgid "Process Group Id"
+msgstr "프로세스 그룹 ID"
+
+#. Translation Hint: maximum 'TTY' = 8 +
+#: src/top/top_nls.c:185
+msgid "TTY"
+msgstr "TTY"
+
+#: src/top/top_nls.c:186
+msgid "Controlling Tty"
+msgstr "제어 tty 터미ë„"
+
+#. Translation Hint: maximum 'TPGID' = 5
+#: src/top/top_nls.c:188
+msgid "TPGID"
+msgstr "TPGID"
+
+#: src/top/top_nls.c:189
+msgid "Tty Process Grp Id"
+msgstr "tty 프로세스 그룹 ID"
+
+#. Translation Hint: maximum 'SID' = 5
+#: src/top/top_nls.c:191
+msgid "SID"
+msgstr "SID"
+
+#: src/top/top_nls.c:192
+msgid "Session Id"
+msgstr "세션 ID"
+
+#. Translation Hint: maximum 'PR' = 3
+#: src/top/top_nls.c:194
+msgid "PR"
+msgstr "PR"
+
+#: src/top/top_nls.c:195
+msgid "Priority"
+msgstr "우선순위"
+
+#. Translation Hint: maximum 'NI' = 3
+#: src/top/top_nls.c:197
+msgid "NI"
+msgstr "NI"
+
+#: src/top/top_nls.c:198
+msgid "Nice Value"
+msgstr "nice ê°’"
+
+#. Translation Hint: maximum 'nTH' = 3
+#: src/top/top_nls.c:200
+msgid "nTH"
+msgstr "nTH"
+
+#: src/top/top_nls.c:201
+msgid "Number of Threads"
+msgstr "스레드 갯수"
+
+#. Translation Hint: maximum 'P' = 1
+#: src/top/top_nls.c:203
+msgid "P"
+msgstr "P"
+
+#: src/top/top_nls.c:204
+msgid "Last Used Cpu (SMP)"
+msgstr "최종 사용 CPU (SMP)"
+
+#. Translation Hint: maximum '%CPU' = 4
+#: src/top/top_nls.c:206
+#, c-format
+msgid "%CPU"
+msgstr "%CPU"
+
+#: src/top/top_nls.c:207
+msgid "CPU Usage"
+msgstr "CPU 사용율"
+
+#. Translation Hint: maximum '' = 6
+#: src/top/top_nls.c:209
+msgid "TIME"
+msgstr "TIME"
+
+#: src/top/top_nls.c:210
+msgid "CPU Time"
+msgstr "CPU 사용시간"
+
+#. Translation Hint: maximum 'TIME+' = 9
+#: src/top/top_nls.c:212
+msgid "TIME+"
+msgstr "TIME+"
+
+#: src/top/top_nls.c:213
+msgid "CPU Time, hundredths"
+msgstr "CPU 사용시간, 100ìžë¦¬"
+
+#. Translation Hint: maximum '%MEM' = 4
+#: src/top/top_nls.c:215
+msgid "%MEM"
+msgstr "%MEM"
+
+#: src/top/top_nls.c:216
+msgid "Memory Usage (RES)"
+msgstr "메모리 사용율 (RES)"
+
+#. Translation Hint: maximum 'VIRT' = 7
+#: src/top/top_nls.c:218
+msgid "VIRT"
+msgstr "VIRT"
+
+#: src/top/top_nls.c:219
+msgid "Virtual Image (KiB)"
+msgstr "ê°€ìƒ ì´ë¯¸ì§€ (KiB)"
+
+#. Translation Hint: maximum 'SWAP' = 6
+#: src/top/top_nls.c:221
+msgid "SWAP"
+msgstr "SWAP"
+
+#: src/top/top_nls.c:222
+msgid "Swapped Size (KiB)"
+msgstr "스왑 í¬ê¸° (KiB)"
+
+#. Translation Hint: maximum 'RES' = 6
+#: src/top/top_nls.c:224
+msgid "RES"
+msgstr "RES"
+
+#: src/top/top_nls.c:225
+msgid "Resident Size (KiB)"
+msgstr "ì ìœ  í¬ê¸° (KiB)"
+
+#. Translation Hint: maximum 'CODE' = 4
+#: src/top/top_nls.c:227
+msgid "CODE"
+msgstr "CODE"
+
+#: src/top/top_nls.c:228
+msgid "Code Size (KiB)"
+msgstr "코드 í¬ê¸° (KiB)"
+
+#. Translation Hint: maximum 'DATA' = 7
+#: src/top/top_nls.c:230
+msgid "DATA"
+msgstr "DATA"
+
+#: src/top/top_nls.c:231
+msgid "Data+Stack (KiB)"
+msgstr "ë°ì´í„°+ìŠ¤íƒ (KiB)"
+
+#. Translation Hint: maximum 'SHR' = 6
+#: src/top/top_nls.c:233
+msgid "SHR"
+msgstr "SHR"
+
+#: src/top/top_nls.c:234
+msgid "Shared Memory (KiB)"
+msgstr "공유 메모리 (KiB)"
+
+#. Translation Hint: maximum 'nMaj' = 4
+#: src/top/top_nls.c:236
+msgid "nMaj"
+msgstr "nMaj"
+
+#: src/top/top_nls.c:237
+msgid "Major Page Faults"
+msgstr "주 페ì´ì§€ 처리 실패 수"
+
+#. Translation Hint: maximum 'nMin' = 4
+#: src/top/top_nls.c:239
+msgid "nMin"
+msgstr "nMin"
+
+#: src/top/top_nls.c:240
+msgid "Minor Page Faults"
+msgstr "부 페ì´ì§€ 처리 실패 수"
+
+#. Translation Hint: maximum 'nDRT' = 4
+#: src/top/top_nls.c:242
+msgid "nDRT"
+msgstr "nDRT"
+
+#: src/top/top_nls.c:243
+msgid "Dirty Pages Count"
+msgstr "ë”í‹° 페ì´ì§€ 갯수"
+
+#. Translation Hint: maximum 'S' = 1
+#: src/top/top_nls.c:245
+msgid "S"
+msgstr "S"
+
+#: src/top/top_nls.c:246
+msgid "Process Status"
+msgstr "프로세스 ìƒíƒœ"
+
+#. Translation Hint: maximum 'COMMAND' = variable
+#: src/top/top_nls.c:248
+msgid "COMMAND"
+msgstr "COMMAND"
+
+#: src/top/top_nls.c:249
+msgid "Command Name/Line"
+msgstr "명령 ì´ë¦„/í–‰"
+
+#. Translation Hint: maximum 'WCHAN' = 10 +
+#: src/top/top_nls.c:251
+msgid "WCHAN"
+msgstr "WCHAN"
+
+#: src/top/top_nls.c:252
+msgid "Sleeping in Function"
+msgstr "ìž ìžê¸° 함수"
+
+#. Translation Hint: maximum 'Flags' = 8
+#: src/top/top_nls.c:254
+msgid "Flags"
+msgstr "Flags"
+
+#: src/top/top_nls.c:255
+msgid "Task Flags <sched.h>"
+msgstr "작업 플래그 <sched.h>"
+
+#. Translation Hint: maximum 'CGROUPS' = variable
+#: src/top/top_nls.c:257
+msgid "CGROUPS"
+msgstr "CGROUPS"
+
+#: src/top/top_nls.c:258
+msgid "Control Groups"
+msgstr "제어 그룹"
+
+#. Translation Hint: maximum 'SUPGIDS' = variable
+#: src/top/top_nls.c:260
+msgid "SUPGIDS"
+msgstr "SUPGIDS"
+
+#: src/top/top_nls.c:261
+msgid "Supp Groups IDs"
+msgstr "Supp 그룹 ID"
+
+#. Translation Hint: maximum 'SUPGRPS' = variable
+#: src/top/top_nls.c:263
+msgid "SUPGRPS"
+msgstr "SUPGRPS"
+
+#: src/top/top_nls.c:264
+msgid "Supp Groups Names"
+msgstr "Supp 그룹 ì´ë¦„"
+
+#. Translation Hint: maximum 'TGID' = 5
+#: src/top/top_nls.c:266
+msgid "TGID"
+msgstr "TGID"
+
+#: src/top/top_nls.c:267
+msgid "Thread Group Id"
+msgstr "스레드 그룹 ID"
+
+#. Translation Hint: maximum 'OOMa' = 5
+#: src/top/top_nls.c:269
+msgid "OOMa"
+msgstr "OOMa"
+
+#: src/top/top_nls.c:270
+msgid "OOMEM Adjustment"
+msgstr "OOMEM ì¡°ì •ê°’"
+
+#. Translation Hint: maximum 'OOMs' = 4
+#: src/top/top_nls.c:272
+msgid "OOMs"
+msgstr "OOMs"
+
+#: src/top/top_nls.c:273
+msgid "OOMEM Score current"
+msgstr "현재 OOMEM 스코어"
+
+#. Translation Hint: maximum 'ENVIRON' = variable
+#: src/top/top_nls.c:275
+msgid "ENVIRON"
+msgstr "ENVIRON"
+
+#. Translation Hint: the abbreviation 'vars' below is shorthand for
+#. 'variables'
+#: src/top/top_nls.c:278
+msgid "Environment vars"
+msgstr "환경 변수"
+
+#. Translation Hint: maximum 'vMj' = 3
+#: src/top/top_nls.c:280
+msgid "vMj"
+msgstr "vMj"
+
+#: src/top/top_nls.c:281
+msgid "Major Faults delta"
+msgstr "주 실패 ë³€ì´ê°’"
+
+#. Translation Hint: maximum 'vMn' = 3
+#: src/top/top_nls.c:283
+msgid "vMn"
+msgstr "vMn"
+
+#: src/top/top_nls.c:284
+msgid "Minor Faults delta"
+msgstr "부 실패 ë³€ì´ê°’"
+
+#. Translation Hint: maximum 'USED' = 6
+#: src/top/top_nls.c:286
+msgid "USED"
+msgstr "USED"
+
+#: src/top/top_nls.c:287
+msgid "Res+Swap Size (KiB)"
+msgstr "Res+스왑 í¬ê¸° (KiB)"
+
+#. Translation Hint: maximum 'nsIPC' = 10 +
+#: src/top/top_nls.c:289
+msgid "nsIPC"
+msgstr "nsIPC"
+
+#: src/top/top_nls.c:290
+msgid "IPC namespace Inode"
+msgstr "IPC ì´ë¦„ ì˜ì—­ I-노드"
+
+#. Translation Hint: maximum 'nsMNT' = 10 +
+#: src/top/top_nls.c:292
+msgid "nsMNT"
+msgstr "nsMNT"
+
+#: src/top/top_nls.c:293
+msgid "MNT namespace Inode"
+msgstr "MNT ì´ë¦„ ì˜ì—­ I-노드"
+
+#. Translation Hint: maximum 'nsNET' = 10 +
+#: src/top/top_nls.c:295
+msgid "nsNET"
+msgstr "nsNET"
+
+#: src/top/top_nls.c:296
+msgid "NET namespace Inode"
+msgstr "NET ì´ë¦„ ì˜ì—­ I-노드"
+
+#. Translation Hint: maximum 'nsPID' = 10 +
+#: src/top/top_nls.c:298
+msgid "nsPID"
+msgstr "nsPID"
+
+#: src/top/top_nls.c:299
+msgid "PID namespace Inode"
+msgstr "PID ì´ë¦„ ì˜ì—­ I-노드"
+
+#. Translation Hint: maximum 'nsUSER' = 10 +
+#: src/top/top_nls.c:301
+msgid "nsUSER"
+msgstr "nsUSER"
+
+#: src/top/top_nls.c:302
+msgid "USER namespace Inode"
+msgstr "USER ì´ë¦„ ì˜ì—­ I-노드"
+
+#. Translation Hint: maximum 'nsUTS' = 10 +
+#: src/top/top_nls.c:304
+msgid "nsUTS"
+msgstr "nsUTS"
+
+#: src/top/top_nls.c:305
+msgid "UTS namespace Inode"
+msgstr "UTS ì´ë¦„ ì˜ì—­ I-노드"
+
+#. Translation Hint: maximum 'LXC' = 8 +
+#: src/top/top_nls.c:307
+msgid "LXC"
+msgstr "LXC"
+
+#: src/top/top_nls.c:308
+msgid "LXC container name"
+msgstr "LXC 컨테ì´ë„ˆ ì´ë¦„"
+
+#. Translation Hint: maximum 'RSan' = 6
+#: src/top/top_nls.c:310
+msgid "RSan"
+msgstr "RSan"
+
+#: src/top/top_nls.c:311
+msgid "RES Anonymous (KiB)"
+msgstr "RES ìµëª…사용 (KiB)"
+
+#. Translation Hint: maximum 'RSfd' = 6
+#: src/top/top_nls.c:313
+msgid "RSfd"
+msgstr "RSfd"
+
+#: src/top/top_nls.c:314
+msgid "RES File-based (KiB)"
+msgstr "RES 파ì¼ê¸°ë°˜ (KiB)"
+
+#. Translation Hint: maximum 'RSlk' = 6
+#: src/top/top_nls.c:316
+msgid "RSlk"
+msgstr "RSlk"
+
+#: src/top/top_nls.c:317
+msgid "RES Locked (KiB)"
+msgstr "RES 잠금 (KiB)"
+
+#. Translation Hint: maximum 'RSsh' = 6
+#: src/top/top_nls.c:319
+msgid "RSsh"
+msgstr "RSsh"
+
+#: src/top/top_nls.c:320
+msgid "RES Shared (KiB)"
+msgstr "RES 공유 (KiB)"
+
+#. Translation Hint: maximum 'CGNAME' = variable
+#: src/top/top_nls.c:322
+msgid "CGNAME"
+msgstr "CGNAME"
+
+#: src/top/top_nls.c:323
+msgid "Control Group name"
+msgstr "제어 그룹 ì´ë¦„"
+
+#. Translation Hint: maximum 'NU' = 2
+#: src/top/top_nls.c:325
+msgid "NU"
+msgstr "NU"
+
+#: src/top/top_nls.c:326
+msgid "Last Used NUMA node"
+msgstr "최종 사용 NUMA 노드"
+
+#. Translation Hint: maximum 'LOGID' = 5 +
+#: src/top/top_nls.c:328
+msgid "LOGID"
+msgstr "LOGID"
+
+#: src/top/top_nls.c:329
+msgid "Login User Id"
+msgstr "ë¡œê·¸ì¸ ì‚¬ìš©ìž ID"
+
+#. Translation Hint: maximum 'EXE' = variable
+#: src/top/top_nls.c:331
+msgid "EXE"
+msgstr "EXE"
+
+#: src/top/top_nls.c:332
+msgid "Executable Path"
+msgstr "실행 경로"
+
+#: src/top/top_nls.c:338
+msgid "Res Mem (smaps), KiB"
+msgstr "Res Mem (smaps), KiB"
+
+#. Translation Hint: maximum 'PSS' = 6
+#: src/top/top_nls.c:340
+msgid "PSS"
+msgstr "PSS"
+
+#: src/top/top_nls.c:341
+msgid "Proportion RSS, KiB"
+msgstr "부분 RSS, KiB"
+
+#. Translation Hint: maximum 'PSan' = 6
+#: src/top/top_nls.c:343
+msgid "PSan"
+msgstr "PSan"
+
+#: src/top/top_nls.c:344
+msgid "Proportion Anon, KiB"
+msgstr "부분 Anon, KiB"
+
+#. Translation Hint: maximum 'PSfd' = 6
+#: src/top/top_nls.c:346
+msgid "PSfd"
+msgstr "PSfd"
+
+#: src/top/top_nls.c:347
+msgid "Proportion File, KiB"
+msgstr "부분 파ì¼, KiB"
+
+#. Translation Hint: maximum 'PSsh' = 6
+#: src/top/top_nls.c:349
+msgid "PSsh"
+msgstr "PSsh"
+
+#: src/top/top_nls.c:350
+msgid "Proportion Shrd, KiB"
+msgstr "부분 Shrd, KiB"
+
+#. Translation Hint: maximum 'USS' = 6
+#: src/top/top_nls.c:352
+msgid "USS"
+msgstr "USS"
+
+#: src/top/top_nls.c:353
+msgid "Unique RSS, KiB"
+msgstr "ìœ ì¼ RSS, KiB"
+
+#. Translation Hint: maximum 'ioR' = 6
+#: src/top/top_nls.c:355
+msgid "ioR"
+msgstr "ioR"
+
+#: src/top/top_nls.c:356
+msgid "I/O Bytes Read"
+msgstr "ì½ì€ I/O ë°”ì´íŠ¸"
+
+#. Translation Hint: maximum 'ioRop' = 5
+#: src/top/top_nls.c:358
+msgid "ioRop"
+msgstr "ioRop"
+
+#: src/top/top_nls.c:359
+msgid "I/O Read Operations"
+msgstr "I/O ì½ê¸° 처리"
+
+#. Translation Hint: maximum 'ioW' = 6
+#: src/top/top_nls.c:361
+msgid "ioW"
+msgstr "ioW"
+
+#: src/top/top_nls.c:362
+msgid "I/O Bytes Written"
+msgstr "기ë¡í•œ I/O ë°”ì´íŠ¸"
+
+#. Translation Hint: maximum 'ioWop' = 5
+#: src/top/top_nls.c:364
+msgid "ioWop"
+msgstr "ioWop"
+
+#: src/top/top_nls.c:365
+msgid "I/O Write Operations"
+msgstr "I/O ê¸°ë¡ ì²˜ë¦¬"
+
+#. Translation Hint: maximum 'AGID' = 5
+#: src/top/top_nls.c:367
+msgid "AGID"
+msgstr "AGID"
+
+#: src/top/top_nls.c:368
+msgid "Autogroup Identifier"
+msgstr "ìžë™ 그룹 ì‹ë³„ìž"
+
+#. Translation Hint: maximum 'AGNI' = 4
+#: src/top/top_nls.c:370
+msgid "AGNI"
+msgstr "AGNI"
+
+#: src/top/top_nls.c:371
+msgid "Autogroup Nice Value"
+msgstr "ìžë™ 그룹 nice ê°’"
+
+#. Translation Hint: maximum 'STARTED' = 7
+#: src/top/top_nls.c:373
+msgid "STARTED"
+msgstr "STARTED"
+
+#: src/top/top_nls.c:374
+msgid "Start Time from boot"
+msgstr "부팅 후 시작 시간"
+
+#. Translation Hint: maximum 'ELAPSED' = 7
+#: src/top/top_nls.c:376
+msgid "ELAPSED"
+msgstr "ELAPSED"
+
+#: src/top/top_nls.c:377
+msgid "Elapsed Running Time"
+msgstr "소요 실행 시간"
+
+#. Translation Hint: maximum '%CUU' = 6
+#: src/top/top_nls.c:379
+#, c-format
+msgid "%CUU"
+msgstr "%CUU"
+
+#: src/top/top_nls.c:380
+msgid "CPU Utilization"
+msgstr "CPU 활용율"
+
+#. Translation Hint: maximum '%CUC' = 7
+#: src/top/top_nls.c:382
+#, c-format
+msgid "%CUC"
+msgstr "%CUC"
+
+#: src/top/top_nls.c:383
+msgid "Utilization + child"
+msgstr "활용율 + 하위요소"
+
+#. Translation Hint: maximum 'nsCGROUP' = 10 +
+#: src/top/top_nls.c:385
+msgid "nsCGROUP"
+msgstr "nsCGROUP"
+
+#: src/top/top_nls.c:386
+msgid "CGRP namespace Inode"
+msgstr "CGRP ì´ë¦„ì˜ì—­ I-노드"
+
+#. Translation Hint: maximum 'nsTIME' = 10 +
+#: src/top/top_nls.c:388
+msgid "nsTIME"
+msgstr "nsTIME"
+
+#: src/top/top_nls.c:389
+msgid "TIME namespace Inode"
+msgstr "TIME ì´ë¦„ ì˜ì—­ I-노드"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . This group of lines contains both plain text and c-format strings.
+#. .
+#. . Some strings reflect switches used to affect the running program
+#. . and should not be translated without also making corresponding
+#. . c-code logic changes.
+#. .
+#: src/top/top_nls.c:409
+#, c-format
+msgid ""
+"\tsignal %d (%s) was caught by %s, please\n"
+"\tsend bug reports to <procps@freelists.org>\n"
+msgstr ""
+"\tì‹œê·¸ë„ %d번(%s)ì„ %sì—ì„œ 잡았습니다.\n"
+"\t<procps@freelists.org>ì— ë¬¸ì œì ì„ 보고하여 주십시오\n"
+
+#: src/top/top_nls.c:439
+#, c-format
+msgid "bad delay interval '%s'"
+msgstr "ìž˜ëª»ëœ ì§€ì—° 시간 간격 '%s'"
+
+#: src/top/top_nls.c:440
+#, c-format
+msgid "bad iterations argument '%s'"
+msgstr "ìž˜ëª»ëœ ìˆœí™˜ ì¸ìž '%s'"
+
+#: src/top/top_nls.c:441
+#, c-format
+msgid "pid limit (%d) exceeded"
+msgstr "PID 제한(%d) 초과"
+
+#: src/top/top_nls.c:442
+#, c-format
+msgid "bad pid '%s'"
+msgstr "ìž˜ëª»ëœ PID '%s'"
+
+#: src/top/top_nls.c:443
+#, c-format
+msgid "-%c argument missing"
+msgstr "-%c ì˜µì…˜ì— ì¸ìž ê°’ì´ ë¹ ì¡ŒìŠµë‹ˆë‹¤"
+
+#: src/top/top_nls.c:444
+#, c-format
+msgid "bad width arg '%s'"
+msgstr "ìž˜ëª»ëœ ë„ˆë¹„ ì¸ìž '%s'"
+
+#: src/top/top_nls.c:445
+#, c-format
+msgid "unknown option '%s'"
+msgstr "알 수 없는 옵션 '%s'"
+
+#: src/top/top_nls.c:446
+msgid "-d disallowed in \"secure\" mode"
+msgstr "-d는 \"보안\" 모드ì—ì„œ 허용하지 않습니다"
+
+#: src/top/top_nls.c:447
+msgid "-d requires positive argument"
+msgstr "-d ì˜µì…˜ì— ì–‘ìˆ˜ ì¸ìž ê°’ì´ í•„ìš”í•©ë‹ˆë‹¤"
+
+#: src/top/top_nls.c:448
+msgid "On"
+msgstr "켬"
+
+#: src/top/top_nls.c:449
+msgid "Off"
+msgstr "ë”"
+
+#: src/top/top_nls.c:450
+#, c-format
+msgid "%s from %s"
+msgstr "%2$sì—ì„œ %1$s"
+
+#: src/top/top_nls.c:451
+#, c-format
+msgid "Forest mode %s"
+msgstr "í¬ë ˆìŠ¤íŠ¸ 모드 %s"
+
+#: src/top/top_nls.c:452
+msgid "failed tty get"
+msgstr "tty 정보 가져오기 실패"
+
+#: src/top/top_nls.c:453
+#, c-format
+msgid "failed tty set: %s"
+msgstr "tty 설정 실패: %s"
+
+#: src/top/top_nls.c:454
+msgid "Choose field group (1 - 4)"
+msgstr "í•„ë“œ 그룹 ì„ íƒ(1 - 4)"
+
+#: src/top/top_nls.c:455
+msgid "Command disabled, 'A' mode required"
+msgstr "ëª…ë ¹ì„ ê»ìŠµë‹ˆë‹¤. 'A' 모드가 필요합니다"
+
+#: src/top/top_nls.c:456
+#, c-format
+msgid "Command disabled, activate %s with '-' or '_'"
+msgstr "ëª…ë ¹ì„ ê»ìŠµë‹ˆë‹¤. %sì„(를) '-' ë˜ëŠ” '_'ë¡œ 활성화합니다"
+
+#: src/top/top_nls.c:457
+msgid "No colors to map!"
+msgstr "ëŒ€ì‘ ìƒ‰ìƒ ê°’ì´ ì—†ìŠµë‹ˆë‹¤!"
+
+#: src/top/top_nls.c:458
+#, c-format
+msgid "Failed '%s' open: %s"
+msgstr "'%s' 열기 실패: %s"
+
+#: src/top/top_nls.c:459
+#, c-format
+msgid "Wrote configuration to '%s'"
+msgstr "'%s'ì— ì„¤ì •ì„ ê¸°ë¡í–ˆìŠµë‹ˆë‹¤"
+
+#: src/top/top_nls.c:460
+#, c-format
+msgid "Change delay from %.1f to"
+msgstr "지연 ê°’ %.1fì˜ ë³€í™˜ ê°’"
+
+#: src/top/top_nls.c:461
+#, c-format
+msgid "Show threads %s"
+msgstr "%s 스레드 표시"
+
+#: src/top/top_nls.c:462
+#, c-format
+msgid "Irix mode %s"
+msgstr "%s ì•„ì´ë¦­ìŠ¤ 모드"
+
+#: src/top/top_nls.c:463
+#, c-format
+msgid "PID to signal/kill [default pid = %d]"
+msgstr "ì‹œê·¸ë„ ì „ì†¡/ê°•ì œ 종료 PID [기본 PID = %d]"
+
+#: src/top/top_nls.c:464
+#, c-format
+msgid "Send pid %d signal [%d/sigterm]"
+msgstr "PID %dë²ˆì— ì‹œê·¸ë„ ë³´ë‚´ê¸° [%d/SIGTERM]"
+
+#: src/top/top_nls.c:465
+#, c-format
+msgid "Failed signal pid '%d' with '%d': %s"
+msgstr "PID '%d'ë²ˆì— '%d'번 ì‹œê·¸ë„ ë³´ë‚´ê¸° 실패: %s"
+
+#: src/top/top_nls.c:466
+msgid "Invalid signal"
+msgstr "부ì ì ˆí•œ 시그ë„"
+
+#: src/top/top_nls.c:467
+#, c-format
+msgid "PID to renice [default pid = %d]"
+msgstr "renice 처리할 PID [기본 PID = %d]"
+
+#: src/top/top_nls.c:468
+#, c-format
+msgid "Renice PID %d to value"
+msgstr "PID %dë²ˆì„ ê°’ìœ¼ë¡œ renice"
+
+#: src/top/top_nls.c:469
+#, c-format
+msgid "Failed renice of PID %d to %d: %s"
+msgstr "PID %dë²ˆì˜ %dê°’ renice 실패: %s"
+
+#: src/top/top_nls.c:470
+#, c-format
+msgid "Rename window '%s' to (1-3 chars)"
+msgstr "'%s' ì°½ì˜ ë°”ê¿€ ì´ë¦„(1-3문ìž)"
+
+#: src/top/top_nls.c:471
+#, c-format
+msgid "Cumulative time %s"
+msgstr "ëˆ„ì  ì‹œê°„ %s"
+
+#: src/top/top_nls.c:472
+#, c-format
+msgid "Maximum tasks = %d, change to (0 is unlimited)"
+msgstr "최대 ìž‘ì—… 수 = %d, 바꿀 ê°’(0ê°’ì€ ë¬´ì œí•œ)"
+
+#: src/top/top_nls.c:473
+msgid "Invalid maximum"
+msgstr "부ì ì ˆí•œ 최대값"
+
+#: src/top/top_nls.c:474
+msgid "Which user (blank for all)"
+msgstr "ëŒ€ìƒ ì‚¬ìš©ìž(빈 ê°’ì€ ëª¨ë“  사용ìž)"
+
+#: src/top/top_nls.c:475
+msgid "Unknown command - try 'h' for help"
+msgstr "ëª…ë ¹ì„ ì•Œ 수 없습니다 - ë„움ë§ì€ 'h'를 입력하십시오"
+
+#: src/top/top_nls.c:476
+#, c-format
+msgid "scroll coordinates: y = %d/%d (tasks), x = %d/%d (fields)"
+msgstr "좌표 스í¬ë¡¤: y = %d/%d (ìž‘ì—…), x = %d/%d (í•„ë“œ)"
+
+#: src/top/top_nls.c:477
+msgid "failed memory allocate"
+msgstr "메모리 할당 실패"
+
+#: src/top/top_nls.c:478
+msgid "failed memory re-allocate"
+msgstr "메모리 재할당 실패"
+
+#: src/top/top_nls.c:479
+msgid "Unacceptable floating point"
+msgstr "ë°›ì•„ë“¤ì¼ ìˆ˜ 없는 실수값"
+
+#: src/top/top_nls.c:480
+msgid "Invalid user"
+msgstr "ìž˜ëª»ëœ ì‚¬ìš©ìž"
+
+#: src/top/top_nls.c:481
+msgid "forest view"
+msgstr "í¬ë ˆìŠ¤íŠ¸ 보기"
+
+#: src/top/top_nls.c:482
+msgid "failed pid maximum size test"
+msgstr "PID 최대 í¬ê¸° 시험 실패"
+
+#: src/top/top_nls.c:483
+msgid "failed number of cpus test"
+msgstr "CPU 갯수 시험 실패"
+
+#: src/top/top_nls.c:484
+#, c-format
+msgid "incompatible rcfile, you should delete '%s'"
+msgstr "호환성 없는 rcfile. '%s'ì„(를) 삭제하십시오"
+
+#: src/top/top_nls.c:485
+#, c-format
+msgid "window entry #%d corrupt, please delete '%s'"
+msgstr "#%d번 ì°½ í•­ëª©ì´ ê¹¨ì¡ŒìŠµë‹ˆë‹¤. '%s'ì„(를) 삭제하십시오"
+
+#: src/top/top_nls.c:486
+msgid "Unavailable in secure mode"
+msgstr "보안 ë³´ë“œì—서는 사용할 수 없습니다"
+
+#: src/top/top_nls.c:487
+msgid "Only 1 cpu detected"
+msgstr "CPU 1개만 찾았습니다"
+
+#: src/top/top_nls.c:488
+msgid "Unacceptable integer"
+msgstr "ë°›ì•„ë“¤ì¼ ìˆ˜ 없는 정수값"
+
+#: src/top/top_nls.c:489
+msgid "conflicting process selections (U/p/u)"
+msgstr "프로세스 ì„ íƒ ê²¹ì¹¨ (U/p/u)"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . kibibytes (1024 bytes)
+#: src/top/top_nls.c:492
+msgid "KiB"
+msgstr "KiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . mebibytes (1,048,576 bytes)
+#: src/top/top_nls.c:495
+msgid "MiB"
+msgstr "MiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . gibibytes (1,073,741,824 bytes)
+#: src/top/top_nls.c:498
+msgid "GiB"
+msgstr "GiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . tebibytes (1,099,511,627,776 bytes)
+#: src/top/top_nls.c:501
+msgid "TiB"
+msgstr "TiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . pebibytes (1,024 tebibytes)
+#: src/top/top_nls.c:504
+msgid "PiB"
+msgstr "PiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . exbibytes (1,024 pebibytes)
+#: src/top/top_nls.c:507
+msgid "EiB"
+msgstr "EiB"
+
+#: src/top/top_nls.c:508
+msgid "Threads"
+msgstr "스레드"
+
+#: src/top/top_nls.c:509
+msgid "Tasks"
+msgstr "ìž‘ ì—…"
+
+#. Translation Hint: The following "word" is meant to represent either a single
+#. . cpu or all of the processors in a multi-processor computer
+#. . (should be exactly 6 characters, excluding leading % & colon)
+#: src/top/top_nls.c:513
+#, c-format
+msgid "%Cpu(s):"
+msgstr "%Cpu:"
+
+#. Translation Hint: The following "word" is meant to represent a single processor
+#. and 'the Cp' prefix will be combined with a core id: 'p', 'e' or 'u'
+#. . (if 'Cp' is translated, it must be exactly 2 characters long)
+#: src/top/top_nls.c:517
+#, c-format
+msgid "%%Cp%c%-3d:"
+msgstr "%%Cp%c%-3d:"
+
+#. Translation Hint: The following word "another" must have 1 trailing space
+#: src/top/top_nls.c:519
+msgid "another "
+msgstr "기 타 "
+
+#: src/top/top_nls.c:520
+msgid "Locate next inactive, use \"L\""
+msgstr "ë‹¤ìŒ ë¹„í™œì„± 대ìƒì„ 가리키려면, \"L\"ì„ ëˆ„ë¥´ì‹­ì‹œì˜¤"
+
+#: src/top/top_nls.c:521
+msgid "Locate string"
+msgstr "문ìžì—´ 가리키기"
+
+#: src/top/top_nls.c:522
+#, c-format
+msgid "%s\"%s\" not found"
+msgstr "%s\"%s\"ì´(ê°€) 없습니다"
+
+#: src/top/top_nls.c:523
+#, c-format
+msgid "width incr is %d, change to (0 default, -1 auto)"
+msgstr "너비 ì¦ê°€ ê°’ %d, 변경 ê°’(ê¸°ë³¸ê°’ì€ 0, -1ì€ ìžë™)"
+
+#: src/top/top_nls.c:524
+msgid "rcfile has inspect/other-filter error(s), save anyway?"
+msgstr "rc파ì¼ì— 검사/기타-í•„í„° 오류가 있습니다, ê·¸ëž˜ë„ ì €ìž¥í•˜ì‹œê² ìŠµë‹ˆê¹Œ?"
+
+#: src/top/top_nls.c:525
+#, c-format
+msgid "unrecognized field name '%s'"
+msgstr "ì¸ì‹í•  수 없는 '%s' í•„ë“œ ì´ë¦„"
+
+#: src/top/top_nls.c:526
+msgid "even using field names only, window is now too small"
+msgstr "í•„ë“œ ì´ë¦„만 지정하ë”ë¼ë„ ì°½ í¬ê¸°ê°€ 너무 작습니다"
+
+#: src/top/top_nls.c:527
+msgid "Open Files"
+msgstr "íŒŒì¼ ì—´ê¸°"
+
+#: src/top/top_nls.c:528
+msgid "NUMA Info"
+msgstr "NUMA ì •ë³´"
+
+#: src/top/top_nls.c:529
+msgid "Log"
+msgstr "로그"
+
+#: src/top/top_nls.c:530
+msgid ""
+"the '=' key will eventually show the actual file read or command(s) "
+"executed ..."
+msgstr "'='키를 사용하면 실제 ì½ì€ íŒŒì¼ ë‚´ìš© ë˜ëŠ” 실행한 ëª…ë ¹ë„ ë³´ì—¬ì¤ë‹ˆë‹¤ ..."
+
+#: src/top/top_nls.c:531
+msgid "demo"
+msgstr "ë°ëª¨"
+
+#: src/top/top_nls.c:532
+#, c-format
+msgid ""
+"This is simulated output representing the contents of some file or the "
+"output\n"
+"from some command. Exactly which commands and/or files are solely up to "
+"you.\n"
+"\n"
+"Although this text is for information purposes only, it can still be "
+"scrolled\n"
+"and searched like real output will be. You are encouraged to experiment "
+"with\n"
+"those features as explained in the prologue above.\n"
+"\n"
+"To enable real Inspect functionality, entries must be added to the end of "
+"the\n"
+"top personal personal configuration file. You could use your favorite "
+"editor\n"
+"to accomplish this, taking care not to disturb existing entries.\n"
+"\n"
+"Another way to add entries is illustrated below, but it risks overwriting "
+"the\n"
+"rcfile. Redirected echoes must not replace (>) but append (>>) to that "
+"file.\n"
+"\n"
+" /bin/echo -e \"pipe\\tOpen Files\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+" /bin/echo -e \"file\\tNUMA Info\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+" /bin/echo -e \"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr\" >> ~/."
+"toprc\n"
+"\n"
+"If you don't know the location or name of the top rcfile, use the 'W' "
+"command\n"
+"and note those details. After backing up the current rcfile, try issuing "
+"the\n"
+"above echoes exactly as shown, replacing '.toprc' as appropriate. The "
+"safest\n"
+"approach would be to use copy then paste to avoid any typing mistakes.\n"
+"\n"
+"Finally, restart top to reveal what actual Inspect entries combined with "
+"this\n"
+"new command can offer. The possibilities are endless, especially "
+"considering\n"
+"that 'pipe' type entries can include shell scripts too!\n"
+"\n"
+"For additional important information, please consult the top(1) man "
+"document.\n"
+"Then, enhance top with your very own customized 'file' and/or 'pipe' "
+"entries.\n"
+"\n"
+"Enjoy!\n"
+msgstr ""
+"ì–´ë–¤ 파ì¼ì˜ ë‚´ìš© ë˜ëŠ” ì–´ë–¤ ëª…ë ¹ì˜ ì¶œë ¥ì„ ë‚˜íƒ€ë‚´ëŠ” ì¶œë ¥ì„ ëª¨ì‚¬í–ˆìŠµë‹ˆë‹¤. 정확"
+"히 ì–´ë–¤ 명령 ë˜ëŠ” 파ì¼ë§Œ\n"
+"단ë…으로 뜹니다.\n"
+"\n"
+"ì´ ë‚´ìš©ì€ ì •ë³´ 제공 목ì ìœ¼ë¡œ 보여주지만 실제 출력처럼 스í¬ë¡¤í•˜ê³  검색할 수 있"
+"습니다. 위ì—ì„œ 설명한\n"
+"대로 ê¸°ëŠ¥ì„ ì‹œí—˜í•´ë³´ì‹­ì‹œì˜¤.\n"
+"\n"
+"실제 기능 ê´€ì°°ì„ í™œìš©í•˜ë ¤ë©´, ê°œì¸ ì„¤ì • íŒŒì¼ ë’·ë¶€ë¶„ì— í•­ëª©ì„ ì¶”ê°€í•´ì•¼ 합니"
+"다. ì›í•˜ëŠ” 편집기를 사용\n"
+"하여 기존 í•­ëª©ì„ ê±´ë“œë¦¬ì§€ ì•Šì„ ìˆ˜ 있습니다.\n"
+"\n"
+"í•­ëª©ì„ ì¶”ê°€í•˜ëŠ” 다른 ë°©ë²•ì€ ì•„ëž˜ì— ì„¤ëª…í–ˆì§€ë§Œ, rc 파ì¼ì„ ë®ì–´ì“°ëŠ” ìœ„í—˜ì´ ìžˆ"
+"ì„ ìˆ˜ 있습니다. 파ì¼\n"
+"ë¡œì˜ ì¶œë ¥ ë°©í–¥ì„ ëŒ€ì²´ (>) ë°©ì‹ì´ ì•„ë‹Œ 추가 (>>) ë°©ì‹ìœ¼ë¡œ 지정해야합니다.\n"
+"\n"
+" /bin/echo -e \"pipe\\tOpen Files\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+" /bin/echo -e \"file\\tNUMA Info\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+" /bin/echo -e \"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr\" >> ~/."
+"toprc\n"
+"\n"
+"top rc 파ì¼ì˜ 위치와 ì´ë¦„ì„ ëª¨ë¥´ê² ë‹¤ë©´ 'W' ëª…ë ¹ì„ ì‚¬ìš©í•˜ì—¬ 세부 ë‚´ìš©ì„ ì°¸ê³ í•˜"
+"십시오. 현재 rc\n"
+"파ì¼ì„ 백업하고 나면, ìœ„ì— ë‚˜íƒ€ë‚œ 출력 ë‚´ìš©ì„ ì •í™•í•˜ê²Œ 실행하여 '.toprc'ì˜ ë‚´"
+"ìš©ì„ ì ë‹¹í•˜ê²Œ 바꾸\n"
+"십시오. 가장 안전한 ë°©ë²•ì€ ë³µì‚¬í•˜ê³  붙여넣는 ë°©ì‹ìœ¼ë¡œ ìž…ë ¥ 실수를 막는 ë°©ì‹"
+"입니다.\n"
+"\n"
+"마지막으로 topì„ ë‹¤ì‹œ 시작하여 실제 관할 í•­ëª©ì´ ìƒˆ 명령ì—ì„œ 제공할 수 있는 ë‚´"
+"용과 붙어 나타나게 합\n"
+"니다. ê°€ëŠ¥ì„±ì€ ëì´ ì—†ìœ¼ë©° '파ì´í”„'를 활용하여 ì…¸ 스í¬ë¦½íŠ¸ì— 추가할 ìˆ˜ë„ ìžˆ"
+"ìŒì„ 고려해보십시오!\n"
+"\n"
+"중요한 추가 ë‚´ìš©ì´ ìžˆë‹¤ë©´, top(1) 맨 문서를 ê¼­ 살펴보십시오. ê·¸ ë‹¤ìŒ ìžì²´ì ìœ¼"
+"로 개별 구성한 \n"
+"'파ì¼' ë˜ëŠ” '파ì´í”„' 항목으로 top ê¸°ëŠ¥ì„ ê°œì„ í•´ë³´ì‹­ì‹œì˜¤.\n"
+"\n"
+"그럼, ì¦ê²¨ë³´ì„¸ìš”!\n"
+
+#: src/top/top_nls.c:564
+msgid "to enable 'Y' press <Enter> then type 'W' and restart top"
+msgstr ""
+"활성화하려면 'Y' 그리고 <Enter>를 누르신 ë‹¤ìŒ 'W'를 입력하여 topì„ ë‹¤ì‹œ 시작"
+"하십시오"
+
+#: src/top/top_nls.c:565
+msgid "to enable 'Y' please consult the top man page (press Enter)"
+msgstr ""
+"활성화하려면 'Y'를 ìž…ë ¥ 후 top 맨 페ì´ì§€ë¥¼ 살펴보십시오 (Enter를 누르십시오)"
+
+#: src/top/top_nls.c:566
+#, c-format
+msgid "Selection failed with: %s\n"
+msgstr "ì„ íƒ ì‹¤íŒ¨: %s\n"
+
+#: src/top/top_nls.c:567
+#, c-format
+msgid "unable to inspect, pid %d not found"
+msgstr "검사할 수 ì—†ìŒ. PID %dë²ˆì´ ì—†ìŠµë‹ˆë‹¤"
+
+#: src/top/top_nls.c:568
+#, c-format
+msgid "inspect at PID [default pid = %d]"
+msgstr "지정 PID 검사 [기본 PID = %d]"
+
+#: src/top/top_nls.c:569
+#, c-format
+msgid "%s: %*d-%-*d lines, %*d-%*d columns, %lu bytes read"
+msgstr "%s: %*d-%-*d í–‰, %*d-%*d ì—´, %lu ë°”ì´íŠ¸ ì½ìŒ"
+
+#: src/top/top_nls.c:570
+msgid "patience please, working ..."
+msgstr "기다려주십시오, ë™ìž‘중입니다 ..."
+
+#: src/top/top_nls.c:571
+msgid "working, use Ctrl-C to end ..."
+msgstr "ë™ìž‘중입니다. ë내려면 Ctrl-C를 누르십시오 ..."
+
+#. Translation Hint: Below are 2 abbreviations which can be as long as needed:
+#. . FLD = FIELD, VAL = VALUE
+#: src/top/top_nls.c:574
+#, c-format
+msgid "add filter #%d (%s) as: [!]FLD?VAL"
+msgstr "#%d(%s) 필터 추가: [!]FLD?VAL"
+
+#: src/top/top_nls.c:575
+msgid "ignoring case"
+msgstr "ëŒ€ì†Œë¬¸ìž ë¬´ì‹œ"
+
+#: src/top/top_nls.c:576
+msgid "case sensitive"
+msgstr "ëŒ€ì†Œë¬¸ìž êµ¬ë³„"
+
+#: src/top/top_nls.c:577
+msgid "duplicate filter was ignored"
+msgstr "중복 필터는 무시합니다"
+
+#: src/top/top_nls.c:578
+#, c-format
+msgid "'%s' filter delimiter is missing"
+msgstr "'%s' í•„í„° 구분ìžê°€ 빠졌습니다"
+
+#: src/top/top_nls.c:579
+#, c-format
+msgid "'%s' filter value is missing"
+msgstr "'%s' í•„í„° ê°’ì´ ë¹ ì¡ŒìŠµë‹ˆë‹¤"
+
+#: src/top/top_nls.c:580
+msgid "include"
+msgstr "í¬í•¨"
+
+#: src/top/top_nls.c:581
+msgid "exclude"
+msgstr "제외"
+
+#: src/top/top_nls.c:582
+#, c-format
+msgid "<Enter> to resume, filters: %s"
+msgstr "재개하려면 <Enter>를 누르십시오. ëŒ€ìƒ í•„í„°: %s"
+
+#: src/top/top_nls.c:583
+msgid "none"
+msgstr "ì—†ìŒ"
+
+#. Translation Hint: The following word 'Node' should be exactly
+#. 4 characters, excluding leading %%, fmt chars & colon)
+#: src/top/top_nls.c:586
+#, c-format
+msgid "%%Node%-2d:"
+msgstr "%%Node%-2d:"
+
+#: src/top/top_nls.c:587
+#, c-format
+msgid "expand which numa node (0-%d)"
+msgstr "확장 ëŒ€ìƒ NUMA 노드: (0-%d)"
+
+#: src/top/top_nls.c:588
+msgid "invalid numa node"
+msgstr "부ì ì ˆí•œ NUMA 노드 지정 ê°’"
+
+#: src/top/top_nls.c:589
+msgid "sorry, NUMA extensions unavailable"
+msgstr "죄송합니다만, NUMA í™•ìž¥ì„ ì‚¬ìš©í•  수 없습니다"
+
+#. Translation Hint: 'Mem ' is an abbreviation for physical memory/ram
+#. . 'Swap' represents the linux swap file --
+#. . please make both translations exactly 4 characters,
+#. . padding with extra spaces as necessary
+#: src/top/top_nls.c:594
+msgid "Mem "
+msgstr "메모리 "
+
+#: src/top/top_nls.c:595
+msgid "Swap"
+msgstr "스 왑"
+
+#: src/top/top_nls.c:596
+#, c-format
+msgid "library failed memory statistics, at %d: %s"
+msgstr "%dì—ì„œ ë¼ì´ë¸ŒëŸ¬ë¦¬ì˜ 메모리 통계 처리 실패: %s"
+
+#: src/top/top_nls.c:597
+#, c-format
+msgid "library failed cpu statistics, at %d: %s"
+msgstr "%dì—ì„œ ë¼ì´ë¸ŒëŸ¬ë¦¬ì˜ CPU 통계 실패: %s"
+
+#: src/top/top_nls.c:598
+#, c-format
+msgid "library failed pids statistics, at %d: %s"
+msgstr "%dì—ì„œ ë¼ì´ë¸ŒëŸ¬ë¦¬ì˜ PID 통계 실패: %s"
+
+#: src/top/top_nls.c:599
+#, c-format
+msgid "bad memory scaling arg '%s'"
+msgstr "ìž˜ëª»ëœ ë©”ëª¨ë¦¬ 스케ì¼ë§ ì¸ìž '%s'"
+
+#: src/top/top_nls.c:600
+#, c-format
+msgid "PID to collapse/expand [default pid = %d]"
+msgstr "축소/확장할 PID [기본 PID = %d]"
+
+#: src/top/top_nls.c:601
+msgid "wrong mode, command inactive"
+msgstr "ìž˜ëª»ëœ ëª¨ë“œìž…ë‹ˆë‹¤. 명령 비활성"
+
+#: src/top/top_nls.c:602
+msgid "saving prevents older top from reading, save anyway?"
+msgstr "저장 ë™ìž‘ì€ topì˜ ì´ì „ ì½ê¸° ë™ìž‘ì„ ë§‰ìŠµë‹ˆë‹¤. ê·¸ëž˜ë„ ì €ìž¥í•˜ì‹œê² ìŠµë‹ˆê¹Œ?"
+
+#: src/top/top_nls.c:603
+#, c-format
+msgid "failed sem_init() at %d: %s"
+msgstr "%dì—ì„œ sem_init() ë™ìž‘ 실패: %s"
+
+#: src/top/top_nls.c:604
+#, c-format
+msgid "failed pthread_create() at %d: %s"
+msgstr "%dì—ì„œ pthread_create() ë™ìž‘ 실패: %s"
+
+#: src/top/top_nls.c:605
+msgid "sorry, restricted namespace with reduced functionality"
+msgstr "죄송하지만, 기능 최소화 ìƒíƒœì—ì„œ ì´ë¦„ ì˜ì—­ ì‚¬ìš©ì„ ì œí•œí•©ë‹ˆë‹¤"
+
+#: src/top/top_nls.c:606
+#, c-format
+msgid "set pid %d AGNI value to"
+msgstr "PID %dë²ˆì˜ AGNI 설정 ëŒ€ìƒ ê°’"
+
+#: src/top/top_nls.c:607
+msgid "valid AGNI range is -20 to +19"
+msgstr "올바른 AGNI ê°’ 범위는 -20ì—ì„œ +19까지입니다"
+
+#: src/top/top_nls.c:608
+#, c-format
+msgid "autogroup open failed, %s"
+msgstr "ìžë™ 그룹 열기 실패, %s"
+
+#: src/top/top_nls.c:609
+#, c-format
+msgid "autogroup write failed, %s"
+msgstr "ìžë™ 그룹 쓰기 실패, %s"
+
+#: src/top/top_nls.c:610
+#, c-format
+msgid "command line for pid %d, %s"
+msgstr "PID %d번 명령행, %s"
+
+#: src/top/top_nls.c:611
+#, c-format
+msgid "control groups for pid %d, %s"
+msgstr "PID %d번 제어 그룹, %s"
+
+#: src/top/top_nls.c:612
+#, c-format
+msgid "environment for pid %d, %s"
+msgstr "PID %d번 환경, %s"
+
+#: src/top/top_nls.c:613
+#, c-format
+msgid "namespaces for pid %d, %s"
+msgstr "PID %d번 ì´ë¦„ ì˜ì—­, %s"
+
+#: src/top/top_nls.c:614
+msgid "n/a"
+msgstr "ì—†ìŒ"
+
+#: src/top/top_nls.c:615
+#, c-format
+msgid "supplementary groups for pid %d, %s"
+msgstr "PID %dë²ˆì˜ ì¶”ê°€ 그룹, %s"
+
+#: src/top/top_nls.c:616
+msgid "message log, last 10 messages:"
+msgstr "메시지 ë¡œê·¸ì˜ ë§ˆì§€ë§‰ 메시지 10ê±´:"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The next several text groups contain special escape sequences
+#. . representing values used to index a table at run-time.
+#. .
+#. . Each such sequence consists of a tilde (~) followed by an ascii
+#. . number in the range of '1' - '8'. Examples are '~2', '~8', etc.
+#. . These escape sequences must never themselves be translated but
+#. . could be deleted.
+#. .
+#. . If you remove these escape sequences (both tilde and number) it
+#. . would make translation easier. However, the ability to display
+#. . colors and bold text at run-time will have been lost.
+#. .
+#. . Additionally, each of these text groups was designed to display
+#. . in a 80x24 terminal window. Hopefully, any translations will
+#. . adhere to that goal lest the translated text be truncated.
+#. .
+#. . If you would like additional information regarding these strings,
+#. . please see the prologue to the show_special function in the top.c
+#. . source file.
+#. .
+#. . Caution:
+#. . The next three items represent pages for interacting with a user.
+#. . In all cases, the last lines of text must be treated with care.
+#. .
+#. . They must not end with a newline character so that at runtime the
+#. . cursor will remain on that final text line.
+#. .
+#. . Also, the special sequences (tilde+number) must not appear on the
+#. . last line (the one without the newline). So please avoid any line
+#. . wraps that could place them there.
+#. .
+#: src/top/top_nls.c:661
+#, c-format
+msgid ""
+"Help for Interactive Commands~2 - %s\n"
+"Window ~1%s~6: ~1Cumulative mode ~3%s~2. ~1System~6: ~1Delay ~3%.1f secs~2; "
+"~1Secure mode ~3%s~2.\n"
+"\n"
+" Z~5,~1B~5,E,e Global: '~1Z~2' colors; '~1B~2' bold; '~1E~2'/'~1e~2' "
+"summary/task memory scale\n"
+" l,t,m,I,0 Toggle: '~1l~2' load avg; '~1t~2' task/cpu; '~1m~2' memory; "
+"'~1I~2' Irix; '~10~2' zeros\n"
+" 1,2,3,4,5 Toggle: '~11~2/~12~2/~13~2' cpu/numa views; '~14~2' cpus "
+"abreast; '~15~2' P/E-cores\n"
+" f,X Fields: '~1f~2' add/remove/order/sort; '~1X~2' increase fixed-"
+"width fields\n"
+"\n"
+" L,&,<,> . Locate: '~1L~2'/'~1&~2' find/again; Move sort column: "
+"'~1<~2'/'~1>~2' left/right\n"
+" R,H,J,C . Toggle: '~1R~2' Sort; '~1H~2' Threads; '~1J~2' Num justify; "
+"'~1C~2' Coordinates\n"
+" c,i,S,j . Toggle: '~1c~2' Cmd name/line; '~1i~2' Idle; '~1S~2' Time; "
+"'~1j~2' Str justify\n"
+" x~5,~1y~5 . Toggle highlights: '~1x~2' sort field; '~1y~2' running "
+"tasks\n"
+" z~5,~1b~5 . Toggle: '~1z~2' color/mono; '~1b~2' bold/reverse (only if "
+"'x' or 'y')\n"
+" u,U,o,O . Filter by: '~1u~2'/'~1U~2' effective/any user; '~1o~2'/'~1O~2' "
+"other criteria\n"
+" n,#,^O . Set: '~1n~2'/'~1#~2' max tasks displayed; Show: ~1Ctrl~2+'~1O~2' "
+"other filter(s)\n"
+" V,v,F . Toggle: '~1V~2' forest view; '~1v~2' hide/show children; '~1F~2' "
+"keep focused\n"
+"\n"
+"%s ^G,K,N,U View: ctl groups ~1^G~2; cmdline ~1^K~2; environment ~1^N~2; "
+"supp groups ~1^U~2\n"
+" Y,!,^E,P Inspect '~1Y~2'; Combine Cpus '~1!~2'; Scale time ~1^E~2; View "
+"namespaces ~1^P~2\n"
+" W,q Write config file '~1W~2'; Quit '~1q~2'\n"
+" ( commands shown with '.' require a ~1visible~2 task display "
+"~1window~2 ) \n"
+"Press '~1h~2' or '~1?~2' for help with ~1Windows~2,\n"
+"Type 'q' or <Esc> to continue "
+msgstr ""
+"ëŒ€í™”ì‹ ëª…ë ¹ ë„움ë§~2 - %s\n"
+"ì°½ ~1%s~6: ~1ëˆ„ì  ëª¨ë“œ ~3%s~2. ~1시스템~6: ~1지연 ~3%.1fì´ˆ~2. ~1보안 모드 "
+"~3%s~2.\n"
+"\n"
+" Z~5,~1B~5,E,e ì „ì—­: '~1Z~2' 색ìƒ, '~1B~2' ê°•ì¡°, '~1E~2'/'~1e~2' 요약/ìž‘"
+"ì—… 메모리 스케ì¼ë§\n"
+" l,t,m,I,0 전환: '~1l~2' 부하 í‰ê· , '~1t~2' ìž‘ì—…/CPU, '~1m~2' 메모리, "
+"'~1I~2' ì•„ì´ë¦­ìŠ¤, 모드'~10~2' 0 갯수\n"
+" 1,2,3,4,5 전환: '~11~2/~12~2/~13~2' CPU/NUMA 보기, '~14~2' CPU 나란히 보"
+"기, '~15~2' P/E-코어수\n"
+" f,X í•„ë“œ: '~1f~2' 추가/제거/순서/ì •ë ¬, '~1X~2' ê³ ì •í­ í•„ë“œ ê¸¸ì´ ì¦"
+"ê°€\n"
+"\n"
+" L,&,<,> . 위치: '~1L~2'/'~1&~2' 찾기/다시, ì •ë ¬ 컬럼 ì´ë™: '~1<~2'/'~1>~2' "
+"좌/우\n"
+" R,H,J,C . 전환: '~1R~2' ì •ë ¬, '~1H~2' 스레드, '~1J~2' ìˆ«ìž ì •ë ¬, '~1C~2' 좌"
+"표\n"
+" c,i,S,j . 전환: '~1c~2' 명령ì´ë¦„/í–‰, '~1i~2' Idle, '~1S~2' 시간, '~1j~2' 문"
+"ìžì—´ ì •ë ¬\n"
+" x~5,~1y~5 . 강조 전환: '~1x~2' 필드 정렬, '~1y~2' 실행 작업\n"
+" z~5,~1b~5 . 전환: '~1z~2' 색ìƒ/í‘ë°±, '~1b~2' ê°•ì¡°/반전 ('x' ë˜ëŠ” 'y'ì¼ "
+"때만)\n"
+" u,U,o,O . 필터기준: '~1u~2'/'~1U~2' 해당/ìž„ì˜ ì‚¬ìš©ìž, '~1o~2'/'~1O~2' 다른 "
+"기준\n"
+" n,#,^O . 설정: '~1n~2'/'~1#~2' 표시할 최대 작업 수, 보기: "
+"~1Ctrl~2+'~1O~2' 다른 필터\n"
+" V,v,F . 전환: '~1V~2' í¬ë ˆìŠ¤íŠ¸ 보기, '~1v~2' 하위요소 숨김/표시, '~1F~2' "
+"í¬ì»¤ìŠ¤ 항목 유지\n"
+"\n"
+"%s ^G,K,N,U 보기: 제어그룹 ~1^G~2; 명령행 ~1^K~2; 환경 ~1^N~2; 추가 그룹 "
+"~1^U~2\n"
+" Y,!,^E,P 검사 '~1Y~2'; CPU 통합 '~1!~2'; 시간 스케ì¼ë§ ~1^E~2'\n"
+" W,q ì„¤ì •ê¸°ë¡ '~1W~2'; ë내기\n"
+" ( '.'ê³¼ 나타낸 ëª…ë ¹ì€ ~1ì°½~2ì„ ë‚˜íƒ€ë‚´ëŠ” ~1ë³´ì´ê¸°~2 ê³¼ì •ì´ í•„ìš”í•©ë‹ˆ"
+"다 ) \n"
+"~1ì°½~2 ë„움ë§ì€ '~1h~2' ë˜ëŠ” '~1?~2'를,\n"
+"계ì†í•˜ë ¤ë©´ 'q' ë˜ëŠ” <Esc> 를 입력하십시오 "
+
+#: src/top/top_nls.c:687
+#, c-format
+msgid ""
+"Help for Windows / Field Groups~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+". Use multiple ~1windows~2, each with separate config opts (color,fields,"
+"sort,etc)\n"
+". The 'current' window controls the ~1Summary Area~2 and responds to your "
+"~1Commands~2\n"
+" . that window's ~1task display~2 can be turned ~1Off~2 & ~1On~2, growing/"
+"shrinking others\n"
+" . with ~1NO~2 task display, some commands will be ~1disabled~2 "
+"('i','R','n','c', etc)\n"
+" until a ~1different window~2 has been activated, making it the 'current' "
+"window\n"
+". You ~1change~2 the 'current' window by: ~1 1~2) cycling forward/backward;"
+"~1 2~2) choosing\n"
+" a specific field group; or~1 3~2) exiting the color mapping or fields "
+"screens\n"
+". Commands ~1available anytime -------------~2\n"
+" A . Alternate display mode toggle, show ~1Single~2 / ~1Multiple~2 "
+"windows\n"
+" g . Choose another field group and make it 'current', or change "
+"now\n"
+" by selecting a number from: ~1 1~2 =%s;~1 2~2 =%s;~1 3~2 =%s; "
+"or~1 4~2 =%s\n"
+". Commands ~1requiring~2 '~1A~2' mode~1 -------------~2\n"
+" G . Change the ~1Name~5 of the 'current' window/field group\n"
+" ~1*~4 a , w . Cycle through all four windows: '~1a~5' Forward; '~1w~5' "
+"Backward\n"
+" ~1*~4 - , _ . Show/Hide: '~1-~5' ~1Current~2 window; '~1_~5' all "
+"~1Visible~2/~1Invisible~2\n"
+" The screen will be divided evenly between task displays. But you can "
+"make\n"
+" some ~1larger~2 or ~1smaller~2, using '~1n~2' and '~1i~2' commands. Then "
+"later you could:\n"
+" ~1*~4 = , + . Rebalance tasks: '~1=~5' ~1Current~2 window; '~1+~5' "
+"~1Every~2 window\n"
+" (this also forces the ~1current~2 or ~1every~2 window to "
+"become visible)\n"
+"\n"
+"In '~1A~2' mode, '~1*~4' keys are your ~1essential~2 commands. Please try "
+"the '~1a~2' and '~1w~2'\n"
+"commands plus the 'g' sub-commands NOW. Press <Enter> to make 'Current' "
+msgstr ""
+"ì°½ ë„ì›€ë§ / í•„ë“œ 그룹~2 - \"현재 ì°½\" = ~1 %s ~6\n"
+"\n"
+". 다중 ~1ì°½~2ì„ í™œìš©í•©ë‹ˆë‹¤ ê° ì°½ì—는 별ë„ì˜ ì„¤ì • ì˜µì…˜ì„ ë¶€ì—¬í•©ë‹ˆë‹¤(색ìƒ,í•„ë“œ,"
+"정렬,등)\n"
+". '현재' ì°½ì—서는 ~1요약 ì˜ì—­~2ì„ ë‹¤ë£¨ë©°, ì°½ì˜ ~1ë”~2ê³¼ ~1켬~2ì´ ê°€ëŠ¥í•˜ê³ \n"
+" . ë‚˜ë¨¸ì§€ì— ëŒ€í•´ 펼치기/숨기기가 가능한 ~1ìž‘ì—… 표시~2ì—ì„œ ~1명령~2ì— ì‘ë‹µì´ "
+"가능합니다\n"
+" . ìž‘ì—… 표시부가 ~1없다~2ë©´, ~1다른 ì°½~2ì„ ë„워서 '현재' 창으로 만들기 전까"
+"지는\n"
+" ì¼ë¶€ 명령('i','R','n','c', 등)ì„ ~1사용할 수 없습니다~2\n"
+". '현재' ì°½ì„ ~1전환~2 하는 방법: ~1 1~2) ì•žë’¤ 순환 ~1 2~2) 지정 í•„ë“œ 그룹 ì„ "
+"íƒ\n"
+" ~1 3~2) ìƒ‰ìƒ ëŒ€ì‘ ë˜ëŠ” í•„ë“œ 화면 ì„ íƒ\n"
+". ~1언제든 쓸 수 있는~2 명령~1 -------------~2\n"
+" A . ~1단ì¼~2 / ~1다중~2 ì°½ 모드로 표시 모드를 전환합니다\n"
+" g . 다른 í•„ë“œ ê·¸ë£¹ì„ ì„ íƒí•œ ë‹¤ìŒ '현재' 요소로 만들거나, ~1 1~2 "
+"=%s, ~1 2~2=%s,\n"
+" ~1 3~2 =%s, ~1 4~2 =%s ìˆ«ìž ì¤‘ 하나를 ì„ íƒí•˜ì—¬ 바꿉니다\n"
+". '~1A~2' 모드가 ~1필요한~2 명령~1 -------------~2\n"
+" G . '현재' ì°½/í•„ë“œ ê·¸ë£¹ì˜ ~1ì´ë¦„~5ì„ ë°”ê¿‰ë‹ˆë‹¤\n"
+" ~1*~4 a , w . 모든 ì°½ 네군ë°ë¥¼ 순환합니다: '~1a~5' ì´ì „, '~1w~5' 다ìŒ\n"
+" ~1*~4 - , _ . 표시/숨김: '~1-~5' ~1현재~2 ì°½, '~1_~5' ëª¨ë‘ ~1ë³´ì´ê¸°~2/~1"
+"가리기~2\n"
+" ìž‘ì—… í™”ë©´ë„ í™”ë©´ì„ ë‚˜ëˆ•ë‹ˆë‹¤. ~1n~2ê³¼ ~1i~2 명령으로 ~1ë” í°~2 ë˜ëŠ” ~1ë” ìž‘"
+"ì€~2 í™”ë©´ì„ ë§Œë“¤ ìˆ˜ë„ ìžˆìŠµë‹ˆë‹¤.\n"
+" ê·¸ 다ìŒ:\n"
+" ~1*~4 = , + . 작업 재균형화: '~1=~5' ~1현재~2 창, '~1+~5' ~1모든~2 창\n"
+" (ì´ ëª…ë ¹ìœ¼ë¡œ ~1현재~2 ë˜ëŠ” ~1모든~2 ì°½ì„ ë³´ì´ê²Œ 강제합니다)\n"
+"\n"
+"'~1A~2' 모드ì—서는, '~1*~4' 키가 ~1핵심~2 명령입니다. 하위 명령ì—ì„œ "
+"'~1a~2'와 '~1w~2' ëª…ë ¹ì„ ìž…ë ¥ 후\n"
+"'g' 하위 ëª…ë ¹ì„ ìž…ë ¥í•´ë³´ì‹­ì‹œì˜¤. <Enter>키를 누르면 '현재' ì°½ì„ ë§Œë“­ë‹ˆë‹¤ "
+
+#. Translation Notes ------------------------------------------------
+#. . The following 'Help for color mapping' simulated screen should
+#. . probably NOT be translated. It is terribly hard to follow in
+#. . this form and any translation could produce unpleasing results
+#. . that are unlikely to parallel the running top program.
+#. .
+#. . If you decide to proceed with translation, please take care
+#. . to not disturb the spaces and the tilde + number delimiters.
+#. .
+#: src/top/top_nls.c:722
+#, c-format
+msgid ""
+"Help for color mapping~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+" color - 04:25:44 up 8 days, 50 min, 7 users, load average:\n"
+" Tasks:~3 64 ~2total,~3 2 ~3running,~3 62 ~2sleeping,~3 0 ~2stopped,"
+"~3\n"
+" %%Cpu(s):~3 76.5 ~2user,~3 11.2 ~2system,~3 0.0 ~2nice,~3 12.3 "
+"~2idle~3\n"
+" ~1 Nasty Message! ~4 -or- ~1Input Prompt~5\n"
+" ~1 PID TTY PR NI %%CPU TIME+ VIRT SWAP S COMMAND ~6\n"
+" 17284 ~8pts/2 ~7 8 0 0.0 0:00.75 1380 0 S /bin/bash ~8\n"
+" ~1 8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z~7\n"
+" 11005 ~8? ~7 9 0 0.0 0:02.50 2852 1008 S amor -sessi~8\n"
+" available toggles: ~1B~2 =disable bold globally (~1%s~2),\n"
+" ~1z~2 =color/mono (~1%s~2), ~1b~2 =tasks \"bold\"/reverse (~1%s~2)\n"
+"\n"
+"1) Select a ~1target~2 as an upper case letter, ~1current target~2 is ~1 %c "
+"~4:\n"
+" S~2 = Summary Data,~1 M~2 = Messages/Prompts,\n"
+" H~2 = Column Heads,~1 T~2 = Task Information\n"
+"2) Select a ~1color~2 as a number or use the up/down arrow keys\n"
+" to raise/lower the %d colors value, ~1current color~2 is ~1 %d ~4:\n"
+" 0~2 = black,~1 1~2 = red, ~1 2~2 = green,~1 3~2 = yellow,\n"
+" 4~2 = blue, ~1 5~2 = magenta,~1 6~2 = cyan, ~1 7~2 = white\n"
+"\n"
+"3) Then use these keys when finished:\n"
+" 'q' or <Esc> to abort changes to window '~1%s~2'\n"
+" 'a' or 'w' to commit & change another, <Enter> to commit and end "
+msgstr ""
+"ìƒ‰ìƒ ëŒ€ì‘ ë„움ë§~2 - \"현재 \" = ~1 %s ~6\n"
+"\n"
+" ìƒ‰ìƒ - 04:25:44 ê°€ë™ì‹œê°„ 8ì¼, 50분, 7 사용ìž, í‰ê·  부하:\n"
+" ìž‘ì—…:~3 64 ~2ì´ê³„,~3 2 ~3실행,~3 62 ~2대기,~3 0 ~2멈춤,~3\n"
+" %%CPU:~3 76.5 ~2사용ìž,~3 11.2 ~2시스템,~3 0.0 ~2nice,~3 12.3 ~2대기"
+"~3\n"
+" ~1 징그러운 메시지! ~4 ë˜ëŠ” ~1ìž…ë ¥ 프롬프트~5\n"
+" ~1 PID TTY PR NI %%CPU TIME+ VIRT SWAP S COMMAND ~6\n"
+" 17284 ~8pts/2 ~7 8 0 0.0 0:00.75 1380 0 S /bin/bash ~8\n"
+" ~1 8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z~7\n"
+" 11005 ~8? ~7 9 0 0.0 0:02.50 2852 1008 S amor -sessi~8\n"
+" 가능한 전환: ~1B~2 =ì „ì²´ ê°•ì¡° ë„기 (~1%s~2),\n"
+" ~1z~2 =색ìƒ/í‘ë°± (~1%s~2), ~1b~2 =ìž‘ì—… \"ê°•ì¡°\"/반전 (~1%s~2)\n"
+"\n"
+"1) ~1대ìƒ~2ì„ ëŒ€ë¬¸ìžë¡œ ì„ íƒí•˜ê³ , ~1현재 대ìƒ~2ì€ ~1 %c ~4:\n"
+" S~2 = 요약 ë°ì´í„°,~1 M~2 = 메시지/프롬프트,\n"
+" H~2 = 컬럼 í—¤ë”,~1 T~2 = ìž‘ì—… ì •ë³´\n"
+"2) 숫ìžë¡œ ~1색ìƒ~2ì„ ì„ íƒí•˜ê±°ë‚˜ ìƒ/하 화살표키를 사용하여\n"
+" %d ìƒ‰ìƒ ê°’ì„ í‚¤ìš°ê±°ë‚˜ 낮추며, ~1현재 색ìƒ~2ê°’ì€ ~1 %d ~4 입니다:\n"
+" 0~2 = í‘,~1 1~2 = ì , ~1 2~2 = ë…¹,~1 3~2 = 황,\n"
+" 4~2 = ì²­, ~1 5~2 = ìž,~1 6~2 = 옥, ~1 7~2 = ë°±\n"
+"\n"
+"3) 위 ê³¼ì •ì´ ë나면 아래 키를 활용합니다:\n"
+" '~1%s~2'ì°½ 바꾸기를 취소하려면 'q' ë˜ëŠ” <Esc> 키를,\n"
+" ë°”ë€ ì„¤ì •ì„ ë°˜ì˜í•˜ê³  다른 í•­ëª©ì„ ë°”ê¾¸ë ¤ë©´ 'a' ë˜ëŠ” 'w' 키를, ë°˜ì˜í•˜ê³  ëë‚´"
+"려면 <Enter> 키를 누릅니다 "
+
+#. Translation Hint: As is true for the text above, the "keys" shown to the left and
+#. . also embedded in the translatable text (along with escape seqs)
+#. . should never themselves be translated.
+#: src/top/top_nls.c:751
+msgid ""
+" d,k,r,^R '~1d~2' set delay; '~1k~2' kill; '~1r~2' renice; ~1Ctrl~2+'~1R~2' "
+"renice autogroup\n"
+msgstr ""
+" d,k,r,^R '~1d~2' 지연 설정, '~1k~2' 강제 종료, '~1r~2' nice 재설정, "
+"~1Ctrl~2+'~1R~2' ìžë™ 그룹 nice 재설정\n"
+
+#. Translation Hint:
+#. . This Fields Management header should be 3 lines long so as
+#. . to allow 1 blank line before the fields & descriptions.
+#. . If absolutely necessary, 4 lines could be used (but never more).
+#. .
+#: src/top/top_nls.c:759
+#, c-format
+msgid ""
+"Fields Management~2 for window ~1%s~6, whose current sort field is ~1%s~2\n"
+" Navigate with Up/Dn, Right selects for move then <Enter> or Left "
+"commits,\n"
+" 'd' or <Space> toggles display, 's' sets sort. Use 'q' or <Esc> to end!\n"
+msgstr ""
+"í•„ë“œ 관리~2 ì°½ ìš©ë„ ~1%s~6, 현재 ì •ë ¬ í•„ë“œ: ~1%s~2\n"
+" ìƒ/하로 íƒìƒ‰, ìš°ë¡œ ì„ íƒí•œ 후 <Enter>를 누르거나 좌로 커밋,\n"
+" 'd' ë˜ëŠ” <Space> 키는 표시를 전환하며, 's'는 ì •ë ¬ ê¸°ì¤€ì„ ì •í•©ë‹ˆë‹¤. ëë‚´ë ¤"
+"ë©´ 'q' ë˜ëŠ” <Esc>를 누르십시오!\n"
+
+#. Translation Hint:
+#. . The next 5 items must each be translated as a single line.
+#. .
+#: src/top/top_nls.c:767
+#, c-format
+msgid ""
+"%s:~3 %3u ~2total,~3 %3u ~2running,~3 %3u ~2sleeping,~3 %3u ~2stopped,~3 %3u "
+"~2zombie~3\n"
+msgstr ""
+"%s:~3 %3u ~2ì´ê³„,~3 %3u ~2실행,~3 %3u ~2대기,~3 %3u ~2멈춤,~3 %3u ~2좀비~3\n"
+
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt
+#: src/top/top_nls.c:773
+#, c-format
+msgid ""
+"%s~3 %#5.1f ~2us,~3 %#5.1f ~2sy,~3 %#5.1f ~2ni,~3 %#5.1f ~2id,~3 %#5.1f ~2wa,"
+"~3 %#5.1f ~2hi,~3 %#5.1f ~2si~3 ~1"
+msgstr ""
+"%s~3 %#5.1f ~2us,~3 %#5.1f ~2sy,~3 %#5.1f ~2ni,~3 %#5.1f ~2id,~3 %#5.1f ~2wa,"
+"~3 %#5.1f ~2hi,~3 %#5.1f ~2si~3 ~1"
+
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt, st = steal time
+#: src/top/top_nls.c:779
+#, c-format
+msgid ""
+"%s~3%#5.1f ~2us,~3%#5.1f ~2sy,~3%#5.1f ~2ni,~3%#5.1f ~2id,~3%#5.1f ~2wa,"
+"~3%#5.1f ~2hi,~3%#5.1f ~2si,~3%#5.1f ~2st~3 ~1"
+msgstr ""
+"%s~3%#5.1f ~2us,~3%#5.1f ~2sy,~3%#5.1f ~2ni,~3%#5.1f ~2id,~3%#5.1f ~2wa,"
+"~3%#5.1f ~2hi,~3%#5.1f ~2si,~3%#5.1f ~2st~3 ~1"
+
+#. Translation Hint: next 2 must be treated together, with WORDS above & below aligned
+#: src/top/top_nls.c:783
+#, c-format
+msgid ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used,~3 %9.9s~2buff/cache~3 "
+"~1 "
+msgstr ""
+"%s %s:~3 %9.9s~2ì´ê³„,~3 %9.9s~2잔여,~3 %9.9s~2사용,~3 %9.9s~2버í¼/ìºì‹œ~3 "
+"~1 "
+
+#: src/top/top_nls.c:785
+#, c-format
+msgid ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used.~3 %9.9s~2avail %s~3"
+msgstr ""
+"%s %s:~3 %9.9s~2ì´ê³„,~3 %9.9s~2잔여,~3 %9.9s~2사용.~3 %9.9s~2가용 %s~3"
+
+#. Translation Hint:
+#. . The next 2 headers for 'Inspection' must each be 3 lines or less
+#. .
+#: src/top/top_nls.c:791
+#, c-format
+msgid ""
+"Inspection~2 Pause at: pid ~1%d~6, running ~1%s~6\n"
+"Use~2: left/right then <Enter> to ~1select~5 an option; 'q' or <Esc> to "
+"~1end~5 !\n"
+"Options~2: ~1%s\n"
+msgstr ""
+"검사~2 중지 위치: PID ~1%d~6, 실행 ~1%s~6\n"
+"사용~2: 좌/ìš° ë‹¤ìŒ <Enter>ë¡œ 옵션 ~1ì„ íƒ~5; 'q' ë˜ëŠ” <Esc>ë¡œ ~1ë냅니다~5!\n"
+"옵션~2: ~1%s\n"
+
+#: src/top/top_nls.c:796
+#, c-format
+msgid ""
+"Inspection~2 View at pid: ~1%s~3, running ~1%s~3. Locating: ~1%s~6\n"
+"Use~2: left/right/up/down/etc to ~1navigate~5 the output; 'L'/'&' to "
+"~1locate~5/~1next~5.\n"
+"Or~2: <Enter> to ~1select another~5; 'q' or <Esc> to ~1end~5 !\n"
+msgstr ""
+"검사~2 보기 위치 PID: ~1%s~3, 실행 ~1%s~3. 위치: ~1%s~6\n"
+"사용~2: 좌/ìš°/ìƒ/하/등 으로 출력 ~1íƒìƒ‰~5; 'L'/'&'ë¡œ ~1가리키기~5/~1다ìŒ"
+"~5.\n"
+"ë˜ëŠ”~2: <Enter>ë¡œ ~1다른 항목 ì„ íƒ~5; 'q' ë˜ëŠ” <Esc>ë¡œ ~1ë냅니다~5 !\n"
+
+#: src/uptime.c:51 src/uptime.c:123
+msgid "Cannot get system uptime"
+msgstr "시스템 ê°€ë™ ì‹œê°„ 정보를 가져올 수 없습니다"
+
+#: src/uptime.c:67
+msgid " -p, --pretty show uptime in pretty format\n"
+msgstr " -p, --pretty 가지런한 형ì‹ìœ¼ë¡œ ê°€ë™ ì‹œê°„ 표시\n"
+
+#: src/uptime.c:69
+msgid " -s, --since system up since\n"
+msgstr " -s, --since 시스템 ê°€ë™ ì‹œìž‘ 시간 표시\n"
+
+#: src/vmstat.c:220
+#, c-format
+msgid " %s [options] [delay [count]]\n"
+msgstr " %s [<옵션>] [<지연시간> [<횟수>]]\n"
+
+#: src/vmstat.c:223
+msgid " -a, --active active/inactive memory\n"
+msgstr " -a, --active 활성/비활성 메모리\n"
+
+#: src/vmstat.c:224
+msgid " -f, --forks number of forks since boot\n"
+msgstr " -f, --forks 부팅 후 í¬í‚¹ 수 표시\n"
+
+#: src/vmstat.c:225
+msgid " -m, --slabs slabinfo\n"
+msgstr " -m, --slabs slabì •ë³´\n"
+
+#: src/vmstat.c:226
+msgid " -n, --one-header do not redisplay header\n"
+msgstr " -n, --one-header í—¤ë”를 다시 표시하지 ì•ŠìŒ\n"
+
+#: src/vmstat.c:227
+msgid " -s, --stats event counter statistics\n"
+msgstr " -s, --stats ì´ë²¤íŠ¸ ì¹´ìš´í„° 통계\n"
+
+#: src/vmstat.c:228
+msgid " -d, --disk disk statistics\n"
+msgstr " -d, --disk ë””ìŠ¤í¬ í†µê³„\n"
+
+#: src/vmstat.c:229
+msgid " -D, --disk-sum summarize disk statistics\n"
+msgstr " -D, --disk-sum ë””ìŠ¤í¬ í†µê³„ 요약\n"
+
+#: src/vmstat.c:230
+msgid " -p, --partition <dev> partition specific statistics\n"
+msgstr " -p, --partition <장치> 분할 ì˜ì—­ë³„ 통계\n"
+
+#: src/vmstat.c:231
+msgid " -S, --unit <char> define display unit\n"
+msgstr " -S, --unit <문ìž> 표시 단위 지정\n"
+
+#: src/vmstat.c:232
+msgid " -w, --wide wide output\n"
+msgstr " -w, --wide 넓게 출력\n"
+
+#: src/vmstat.c:233
+msgid " -t, --timestamp show timestamp\n"
+msgstr " -t, --timestamp 타임스탬프 표시\n"
+
+#: src/vmstat.c:234
+msgid " -y, --no-first skips first line of output\n"
+msgstr " -y, --no-first 첫 줄 출력 건너뛰기\n"
+
+#: src/vmstat.c:253
+msgid ""
+"procs -----------memory---------- ---swap-- -----io---- -system-- -------"
+"cpu-------"
+msgstr ""
+"procs -----------메모리---------- ---스왑-- ---입출력-- -시스템-- -------"
+"CPU-------"
+
+#: src/vmstat.c:255
+msgid ""
+"--procs-- -----------------------memory---------------------- ---swap-- -----"
+"io---- -system-- ----------cpu----------"
+msgstr ""
+"--procs-- -----------------------메모리---------------------- ---스왑-- ---입"
+"출력-- -시스템-- ----------CPU----------"
+
+#: src/vmstat.c:256 src/vmstat.c:619
+msgid " -----timestamp-----"
+msgstr " -----타임스탬프----"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:275
+msgid "r"
+msgstr "r"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:277
+msgid "b"
+msgstr "b"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:279
+msgid "swpd"
+msgstr "스왑"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:281
+msgid "free"
+msgstr "가용"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:283
+msgid "inact"
+msgstr "비활"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:285
+msgid "buff"
+msgstr "버í¼"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:287
+msgid "active"
+msgstr "활성"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:289
+msgid "cache"
+msgstr "ìºì‹œ"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:291
+msgid "si"
+msgstr "ìž…"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:293
+msgid "so"
+msgstr "출"
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:295
+msgid "bi"
+msgstr "ìž…"
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:297
+msgid "bo"
+msgstr "출"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:299
+msgid "in"
+msgstr "in"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:301
+msgid "cs"
+msgstr "cs"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:303
+msgid "us"
+msgstr "us"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:305
+msgid "sy"
+msgstr "sy"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:307
+msgid "id"
+msgstr "id"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:309
+msgid "wa"
+msgstr "wa"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:311
+msgid "st"
+msgstr "st"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:313
+msgid "gu"
+msgstr "gu"
+
+#: src/vmstat.c:374 src/vmstat.c:870
+msgid "Unable to create vmstat structure"
+msgstr "vmstat 구조 ë°ì´í„°ë¥¼ 만들 수 없습니다"
+
+#: src/vmstat.c:376 src/vmstat.c:866 src/vmstat.c:919
+msgid "Unable to create system stat structure"
+msgstr "시스템 ìƒíƒœ ë°ì´í„° 구조를 만들 수 없습니다"
+
+#: src/vmstat.c:380
+msgid "Unable to get uptime"
+msgstr "ì´ ê°€ë™ ì‹œê°„ì„ ê°€ì ¸ì˜¬ 수 없습니다"
+
+#: src/vmstat.c:391 src/vmstat.c:472 src/vmstat.c:874
+msgid "Unable to select memory information"
+msgstr "메모리 정보를 ì„ íƒí•  수 없습니다"
+
+#: src/vmstat.c:405 src/vmstat.c:458 src/vmstat.c:868
+msgid "Unable to select stat information"
+msgstr "ìƒíƒœ 정보를 ì„ íƒí•  수 없습니다"
+
+#. Translation Hint: Translating folloging disk partition
+#. * header fields that follow (marked with max x chars) might
+#. * not work, unless manual page is translated as well.
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:565
+msgid "reads"
+msgstr "ì½ìŒ"
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:567
+msgid "read sectors"
+msgstr "ì½ì€ 섹터"
+
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:569
+msgid "writes"
+msgstr "기ë¡"
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:571
+msgid "requested writes"
+msgstr "요청한 기ë¡"
+
+#: src/vmstat.c:584 src/vmstat.c:687 src/vmstat.c:813
+msgid "Unable to create diskstat structure"
+msgstr "diskstat 구조 ë°ì´í„°ë¥¼ 만들 수 없습니다"
+
+#: src/vmstat.c:587 src/vmstat.c:593
+#, c-format
+msgid "Disk/Partition %s not found"
+msgstr "%s 디스í¬/íŒŒí‹°ì…˜ì´ ì—†ìŠµë‹ˆë‹¤"
+
+#: src/vmstat.c:616
+msgid ""
+"disk- ------------reads------------ ------------writes----------- -----"
+"IO------"
+msgstr ""
+"disk- ------------ì½ê¸°------------- ------------쓰기------------- ----입출"
+"ë ¥---"
+
+#: src/vmstat.c:618
+msgid ""
+"disk- -------------------reads------------------- -------------------"
+"writes------------------ ------IO-------"
+msgstr ""
+"disk- -------------------ì½ê¸°-------------------- -------------------ì“°"
+"기-------------------- ----입출력-----"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:637 src/vmstat.c:645
+msgid "total"
+msgstr "ì´ê³„"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:639 src/vmstat.c:647
+msgid "merged"
+msgstr "병합"
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:641 src/vmstat.c:649
+msgid "sectors"
+msgstr "섹터"
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:643 src/vmstat.c:651
+msgid "ms"
+msgstr "밀리초"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:653
+msgid "cur"
+msgstr "현"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:655
+msgid "sec"
+msgstr "ì´ˆ"
+
+#: src/vmstat.c:694 src/vmstat.c:815
+msgid "Unable to retrieve disk statistics"
+msgstr "ë””ìŠ¤í¬ í†µê³„ë¥¼ 가져올 수 없습니다"
+
+#. Translation Hint: Translating folloging slab fields that
+#. * follow (marked with max x chars) might not work, unless
+#. * manual page is translated as well.
+#. Translation Hint: max 24 chars
+#: src/vmstat.c:741
+msgid "Cache"
+msgstr "ìºì‹œ"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:743
+msgid "Num"
+msgstr "숫ìž"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:745
+msgid "Total"
+msgstr "ì´ê³„"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:747
+msgid "Size"
+msgstr "í¬ê¸°"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:749
+msgid "Pages"
+msgstr "페ì´ì§€"
+
+#: src/vmstat.c:836
+#, c-format
+msgid "%13d disks\n"
+msgstr "%13d 디스í¬\n"
+
+#: src/vmstat.c:837
+#, c-format
+msgid "%13d partitions\n"
+msgstr "%13d 분할 ì˜ì—­\n"
+
+#: src/vmstat.c:838
+#, c-format
+msgid "%13lu total reads\n"
+msgstr "%13lu ì½ìŒ ì´ íšŸìˆ˜\n"
+
+#: src/vmstat.c:839
+#, c-format
+msgid "%13lu merged reads\n"
+msgstr "%13lu 병합 ì½ìŒ\n"
+
+#: src/vmstat.c:840
+#, c-format
+msgid "%13lu read sectors\n"
+msgstr "%13lu 섹터 ì½ìŒ\n"
+
+#: src/vmstat.c:841
+#, c-format
+msgid "%13lu milli reading\n"
+msgstr "%13lu ì½ê¸° 밀리초\n"
+
+#: src/vmstat.c:842
+#, c-format
+msgid "%13lu writes\n"
+msgstr "%13lu 기ë¡\n"
+
+#: src/vmstat.c:843
+#, c-format
+msgid "%13lu merged writes\n"
+msgstr "%13lu 병합 기ë¡\n"
+
+#: src/vmstat.c:844
+#, c-format
+msgid "%13lu written sectors\n"
+msgstr "%13lu 섹터 기ë¡\n"
+
+#: src/vmstat.c:845
+#, c-format
+msgid "%13lu milli writing\n"
+msgstr "%13lu ê¸°ë¡ ë°€ë¦¬ì´ˆ\n"
+
+#: src/vmstat.c:846
+#, c-format
+msgid "%13lu inprogress IO\n"
+msgstr "%13lu 진행 입출력\n"
+
+#: src/vmstat.c:847
+#, c-format
+msgid "%13lu milli spent IO\n"
+msgstr "%13lu 입출력 소요 밀리초\n"
+
+#: src/vmstat.c:848
+#, c-format
+msgid "%13lu milli weighted IO\n"
+msgstr "%13lu 가중 입출력 밀리초\n"
+
+#: src/vmstat.c:876
+#, c-format
+msgid "%13lu %s total memory\n"
+msgstr "%13lu %s 메모리 ì´ëŸ‰\n"
+
+#: src/vmstat.c:877
+#, c-format
+msgid "%13lu %s used memory\n"
+msgstr "%13lu %s 사용 메모리\n"
+
+#: src/vmstat.c:878
+#, c-format
+msgid "%13lu %s active memory\n"
+msgstr "%13lu %s 활성 메모리\n"
+
+#: src/vmstat.c:879
+#, c-format
+msgid "%13lu %s inactive memory\n"
+msgstr "%13lu %s 비활 메모리\n"
+
+#: src/vmstat.c:880
+#, c-format
+msgid "%13lu %s free memory\n"
+msgstr "%13lu %s 가용 메모리\n"
+
+#: src/vmstat.c:881
+#, c-format
+msgid "%13lu %s buffer memory\n"
+msgstr "%13lu %s ë²„í¼ ë©”ëª¨ë¦¬\n"
+
+#: src/vmstat.c:882
+#, c-format
+msgid "%13lu %s swap cache\n"
+msgstr "%13lu %s 스왑 ìºì‹œ\n"
+
+#: src/vmstat.c:883
+#, c-format
+msgid "%13lu %s total swap\n"
+msgstr "%13lu %s 스왑 ì´ëŸ‰\n"
+
+#: src/vmstat.c:884
+#, c-format
+msgid "%13lu %s used swap\n"
+msgstr "%13lu %s 사용 스왑\n"
+
+#: src/vmstat.c:885
+#, c-format
+msgid "%13lu %s free swap\n"
+msgstr "%13lu %s 가용 스왑\n"
+
+#: src/vmstat.c:886
+#, c-format
+msgid "%13lld non-nice user cpu ticks\n"
+msgstr "%13lld nice 처리 안한 ì‚¬ìš©ìž CPU 틱\n"
+
+#: src/vmstat.c:887
+#, c-format
+msgid "%13lld nice user cpu ticks\n"
+msgstr "%13lld nice 처리한 ì‚¬ìš©ìž CPU 사ì´í´\n"
+
+#: src/vmstat.c:888
+#, c-format
+msgid "%13lld system cpu ticks\n"
+msgstr "%13lld 시스템 CPU 사ì´í´\n"
+
+#: src/vmstat.c:889
+#, c-format
+msgid "%13lld idle cpu ticks\n"
+msgstr "%13lld 대기 CPU 사ì´í´\n"
+
+#: src/vmstat.c:890
+#, c-format
+msgid "%13lld IO-wait cpu ticks\n"
+msgstr "%13lld IO-대기 CPU 사ì´í´\n"
+
+#: src/vmstat.c:891
+#, c-format
+msgid "%13lld IRQ cpu ticks\n"
+msgstr "%13lld IRQ CPU 사ì´í´\n"
+
+#: src/vmstat.c:892
+#, c-format
+msgid "%13lld softirq cpu ticks\n"
+msgstr "%13lld 소프트 IRQ CPU 사ì´í´\n"
+
+#: src/vmstat.c:893
+#, c-format
+msgid "%13lld stolen cpu ticks\n"
+msgstr "%13lld 탈취 CPU 사ì´í´\n"
+
+#: src/vmstat.c:894
+#, c-format
+msgid "%13lld non-nice guest cpu ticks\n"
+msgstr "%13lld nice 처리 안한 게스트 CPU 사ì´í´\n"
+
+#: src/vmstat.c:895
+#, c-format
+msgid "%13lld nice guest cpu ticks\n"
+msgstr "%13lld nice 처리한 게스트 CPU 사ì´í´\n"
+
+#: src/vmstat.c:896
+#, c-format
+msgid "%13lu K paged in\n"
+msgstr "%13lu K 페ì´ì§€ ìž…ë ¥\n"
+
+#: src/vmstat.c:897
+#, c-format
+msgid "%13lu K paged out\n"
+msgstr "%13lu K 페ì´ì§€ 출력\n"
+
+#: src/vmstat.c:898
+#, c-format
+msgid "%13lu pages swapped in\n"
+msgstr "%13lu 페ì´ì§€ 스왑 ìž…ë ¥\n"
+
+#: src/vmstat.c:899
+#, c-format
+msgid "%13lu pages swapped out\n"
+msgstr "%13lu 페ì´ì§€ 스왑 출력\n"
+
+#: src/vmstat.c:900
+#, c-format
+msgid "%13lu interrupts\n"
+msgstr "%13lu ì¸í„°ëŸ½íŠ¸ 수\n"
+
+#: src/vmstat.c:901
+#, c-format
+msgid "%13lu CPU context switches\n"
+msgstr "%13lu CPU 컨í…스트 전환\n"
+
+#: src/vmstat.c:902
+#, c-format
+msgid "%13lu boot time\n"
+msgstr "%13lu 부팅 타임\n"
+
+#: src/vmstat.c:903 src/vmstat.c:921
+#, c-format
+msgid "%13lu forks\n"
+msgstr "%13lu í¬í‚¹ 횟수\n"
+
+#. Translation Hint: do not change argument characters
+#: src/vmstat.c:1024
+msgid "-S requires k, K, m or M (default is KiB)"
+msgstr "-S ì˜µì…˜ì— k, K, m, M ê°’ì´ í•„ìš”í•©ë‹ˆë‹¤(기본값 KiB)"
+
+#: src/watch.c:94
+#, c-format
+msgid " %s [options] command\n"
+msgstr " %s [<옵션>] <명령>\n"
+
+#: src/watch.c:96
+msgid " -b, --beep beep if command has a non-zero exit\n"
+msgstr ""
+" -b, --beep ëª…ë ¹ì´ 0ì´ ì•„ë‹Œ 종료 ìƒíƒœê°’으로 ë‚˜ê°”ì„ ë•Œ 알림ìŒ\n"
+
+#: src/watch.c:97
+msgid " -c, --color interpret ANSI color and style sequences\n"
+msgstr " -c, --color ANSI ìƒ‰ìƒ ë° í‘œì‹œ ë°©ì‹ ì‹œí€€ìŠ¤ í•´ì„\n"
+
+#: src/watch.c:98
+msgid ""
+" -C, --no-color do not interpret ANSI color and style sequences\n"
+msgstr ""
+" -C, --no-color ANSI ìƒ‰ìƒ ë° ëª¨ì–‘ìƒˆ 시퀀스를 í•´ì„하지 않습니다\n"
+
+#: src/watch.c:99
+msgid ""
+" -d, --differences[=<permanent>]\n"
+" highlight changes between updates\n"
+msgstr ""
+" -d, --differences[=<ì˜êµ¬>]\n"
+" ì—…ë°ì´íŠ¸ 진행간 ê°•ì¡° ìƒíƒœ 바꿈\n"
+
+#: src/watch.c:101
+msgid " -e, --errexit exit if command has a non-zero exit\n"
+msgstr ""
+" -e, --errexit ëª…ë ¹ì´ 0ì´ ì•„ë‹Œ 종료 ìƒíƒœê°’으로 ë‚˜ê°”ì„ ë–„ 나ê°\n"
+
+#: src/watch.c:102
+msgid " -g, --chgexit exit when output from command changes\n"
+msgstr " -g, --chgexit 명령 출력 ë‚´ìš©ì´ ë°”ë€Œë©´ 나ê°\n"
+
+#: src/watch.c:103
+msgid ""
+" -q, --equexit <cycles>\n"
+" exit when output from command does not change\n"
+msgstr ""
+" -q, --equexit <사ì´í´>\n"
+" 명령 ì¶œë ¥ì´ ë°”ë€Œì§€ ì•Šì„ ë•Œ 나ê°\n"
+
+#: src/watch.c:105
+msgid " -n, --interval <secs> seconds to wait between updates\n"
+msgstr " -n, --interval <ì´ˆ> ì—…ë°ì´íŠ¸ê°„ 기다릴 ì´ˆ 단위 시간\n"
+
+#: src/watch.c:106
+msgid " -p, --precise attempt run command in precise intervals\n"
+msgstr " -p, --precise 정확한 시간 간격으로 명령 실행 ì‹œë„\n"
+
+#: src/watch.c:107
+msgid " -r, --no-rerun do not rerun program on window resize\n"
+msgstr ""
+" -r, --no-rerun ì°½ í¬ê¸°ë¥¼ 다시 조절할 ë•Œ í”„ë¡œê·¸ëž¨ì„ ë‹¤ì‹œ 실행 안함\n"
+
+#: src/watch.c:108
+msgid " -t, --no-title turn off header\n"
+msgstr " -t, --no-title í—¤ë” ì¶œë ¥ 안함\n"
+
+#: src/watch.c:109
+msgid " -w, --no-wrap turn off line wrapping\n"
+msgstr " -w, --no-wrap 줄 바꿈 안함\n"
+
+#: src/watch.c:110
+msgid " -x, --exec pass command to exec instead of \"sh -c\"\n"
+msgstr " -x, --exec \"sh -c\" 대신 실행할 명령 전달\n"
+
+#: src/watch.c:113
+msgid " -v, --version output version information and exit\n"
+msgstr " -v, --version 버전 정보를 표시하고 나갑니다\n"
+
+#: src/watch.c:485
+#, c-format
+msgid "Every %.1fs: "
+msgstr "매 %.1f초: "
+
+#: src/watch.c:486
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: src/watch.c:575
+msgid "unable to create IPC pipes"
+msgstr "IPC 파ì´í”„를 만들 수 없습니다"
+
+#: src/watch.c:585
+msgid "unable to fork process"
+msgstr "프로세스를 í¬í‚¹í•  수 없습니다"
+
+#: src/watch.c:590
+msgid "dup2 failed"
+msgstr "dup2 실패"
+
+#: src/watch.c:597
+#, c-format
+msgid "unable to execute '%s'"
+msgstr "'%s'ì„(를) 실행할 수 ì—†ìŒ"
+
+#: src/watch.c:614
+msgid "fdopen"
+msgstr "fdopen"
+
+#: src/watch.c:788
+msgid "waitpid"
+msgstr "waitpid"
+
+#: src/watch.c:796
+msgid "command exit with a non-zero status, press a key to exit"
+msgstr ""
+"0ì´ ì•„ë‹Œ 종료 ìƒíƒœê°’으로 ëª…ë ¹ì„ ë‚˜ì™”ìŠµë‹ˆë‹¤. 나가려면 아무 키나 누르십시오"
+
+#: src/watch.c:863
+msgid "Could not parse interval from WATCH_INTERVAL"
+msgstr "WATCH_INTERVALì˜ ì£¼ê¸° 시간 ê°’ì„ í•´ì„í•  수 없습니다"
+
+#: src/watch.c:954
+#, c-format
+msgid "unicode handling error\n"
+msgstr "유니코드 처리 오류\n"
+
+#: src/watch.c:960
+#, c-format
+msgid "unicode handling error (malloc)\n"
+msgstr "유니코드 처리 오류 (malloc)\n"
+
+#: src/w.c:289 src/w.c:304
+#, c-format
+msgid " %2lludays"
+msgstr " %2lluì¼"
+
+#. Translation Hint: Minutes:Seconds
+#. Translation Hint: Hours:Minutes
+#: src/w.c:298 src/w.c:308
+#, c-format
+msgid " %2llu:%02um"
+msgstr " %2llu:%02u분"
+
+#. Translation Hint: Seconds:Centiseconds
+#: src/w.c:316
+#, c-format
+msgid " %2llu.%02us"
+msgstr " %2llu.%02uì´ˆ"
+
+#: src/w.c:656
+#, c-format
+msgid " %s [options] [user]\n"
+msgstr " %s [<옵션>] [<사용ìž>]\n"
+
+#: src/w.c:658
+msgid " -h, --no-header do not print header\n"
+msgstr " -h, --no-header í—¤ë” ì¶œë ¥ 안함\n"
+
+#: src/w.c:659
+msgid " -u, --no-current ignore current process username\n"
+msgstr " -u, --no-current 현재 프로세서 ì‚¬ìš©ìž ì´ë¦„ 무시\n"
+
+#: src/w.c:660
+msgid " -s, --short short format\n"
+msgstr " -s, --short 간단한 형ì‹\n"
+
+#: src/w.c:661
+msgid " -f, --from show remote hostname field\n"
+msgstr " -f, --from ì›ê²© 호스트 ì´ë¦„ í•„ë“œ 표시\n"
+
+#: src/w.c:662
+msgid " -o, --old-style old style output\n"
+msgstr " -o, --old-style ì˜¤ëž˜ëœ ë°©ì‹ ì¶œë ¥\n"
+
+#: src/w.c:663
+msgid ""
+" -i, --ip-addr display IP address instead of hostname (if possible)\n"
+msgstr " -i, --ip-addr 호스트 ì´ë¦„ 대신 IP 주소 표시(가능한 경우)\n"
+
+#: src/w.c:664
+msgid " -p, --pids show the PID(s) of processes in WHAT\n"
+msgstr " -p, --pids <세션> í”„ë¡œì„¸ìŠ¤ì˜ PID 표시\n"
+
+#: src/w.c:763
+#, c-format
+msgid ""
+"User length environment PROCPS_USERLEN must be between 8 and %i, ignoring.\n"
+msgstr ""
+"PROCPS_USERLEN ì‚¬ìš©ìž ê¸¸ì´ í™˜ê²½ 변수 ê°’ì´ 8ê³¼ %i 사ì´ì—¬ì•¼ 합니다. 무시함.\n"
+
+#: src/w.c:773
+#, c-format
+msgid ""
+"from length environment PROCPS_FROMLEN must be between 8 and %d, ignoring\n"
+msgstr ""
+"PROCPS_FROMLEN ê¸¸ì´ ì‹œìž‘ 환경 변수 ê°’ì´ 8ê³¼ %d 사ì´ì—¬ì•¼ 합니다. 무시함\n"
+
+#. Translation Hint: Following five uppercase messages are
+#. * headers. Try to keep alignment intact.
+#: src/w.c:799
+#, c-format
+msgid "%-*s TTY "
+msgstr "%-*s TTY "
+
+#: src/w.c:801
+msgid "FROM"
+msgstr "FROM"
+
+#: src/w.c:803
+#, c-format
+msgid " LOGIN@ IDLE JCPU PCPU WHAT\n"
+msgstr " ë¡œê·¸ì¸ ëŒ€ê¸° JCPU PCPU 세션\n"
+
+#: src/w.c:805
+#, c-format
+msgid " IDLE WHAT\n"
+msgstr " 대기 세션\n"
+
+#: src/w.c:815
+msgid "error getting sessions"
+msgstr "세션 가져오기 오류"
+
+#: src/w.c:823
+msgid "get user name failed"
+msgstr "ì‚¬ìš©ìž ì´ë¦„ ê°€ì ¸ì˜¤ê¸°ì— ì‹¤íŒ¨í–ˆìŠµë‹ˆë‹¤"
+
+#: local/c.h:153
+msgid ""
+"\n"
+"Usage:\n"
+msgstr ""
+"\n"
+"사용법:\n"
+
+#: local/c.h:154
+msgid ""
+"\n"
+"Options:\n"
+msgstr ""
+"\n"
+"옵션:\n"
+
+#: local/c.h:155
+msgid "\n"
+msgstr "\n"
+
+#: local/c.h:156
+msgid " -h, --help display this help and exit\n"
+msgstr " -h, --help ì´ ë„움ë§ì„ 나타낸 후 나갑니다\n"
+
+#: local/c.h:157
+msgid " -V, --version output version information and exit\n"
+msgstr " -V, --version 버전 정보를 표시하고 나갑니다\n"
+
+#: local/c.h:158
+#, c-format
+msgid ""
+"\n"
+"For more details see %s.\n"
+msgstr ""
+"\n"
+"ë” ìžì„¸í•œ ë‚´ìš©ì€ %sì„(를) 참고하십시오.\n"
+
+#: local/c.h:160
+#, c-format
+msgid "%s from %s\n"
+msgstr "%2$sì—ì„œ %1$s\n"
+
+#~ msgid ""
+#~ "inappropriate '%s'\n"
+#~ "Usage:\n"
+#~ " %s%s"
+#~ msgstr ""
+#~ "부ì ì ˆí•œ '%s'\n"
+#~ "사용법:\n"
+#~ " %s%s"
diff --git a/po/pl.gmo b/po/pl.gmo
new file mode 100644
index 0000000..e7815cb
--- /dev/null
+++ b/po/pl.gmo
Binary files differ
diff --git a/po/pl.po b/po/pl.po
new file mode 100644
index 0000000..894aca4
--- /dev/null
+++ b/po/pl.po
@@ -0,0 +1,4889 @@
+# Polish translation for procps-ng.
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This file is distributed under the same license as the procps-ng package.
+# Jakub Bogusz <qboosh@pld-linux.org>, 2014-2023.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: procps-ng-4.0.4-rc1\n"
+"Report-Msgid-Bugs-To: procps@freelists.org\n"
+"POT-Creation-Date: 2023-08-19 17:38+1000\n"
+"PO-Revision-Date: 2023-08-20 11:45+0200\n"
+"Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
+"Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
+"Language: pl\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+
+#: local/fileutils.c:38
+msgid "write error"
+msgstr "błąd zapisu"
+
+#: src/free.c:74 src/slabtop.c:106 src/uptime.c:65
+#, c-format
+msgid " %s [options]\n"
+msgstr " %s [opcje]\n"
+
+#: src/free.c:76
+msgid " -b, --bytes show output in bytes\n"
+msgstr " -b, --bytes wyjście w bajtach\n"
+
+#: src/free.c:77
+msgid " --kilo show output in kilobytes\n"
+msgstr " --kilo wyjście w kilobajtach\n"
+
+#: src/free.c:78
+msgid " --mega show output in megabytes\n"
+msgstr " --mega wyjście w megabajtach\n"
+
+#: src/free.c:79
+msgid " --giga show output in gigabytes\n"
+msgstr " --giga wyjście w gigabajtach\n"
+
+#: src/free.c:80
+msgid " --tera show output in terabytes\n"
+msgstr " --tera wyjście w terabajtach\n"
+
+#: src/free.c:81
+msgid " --peta show output in petabytes\n"
+msgstr " --peta wyjście w petabajtach\n"
+
+#: src/free.c:82
+msgid " -k, --kibi show output in kibibytes\n"
+msgstr " -k, --kibi wyjście w kibibajtach\n"
+
+#: src/free.c:83
+msgid " -m, --mebi show output in mebibytes\n"
+msgstr " -m, --mebi wyjście w mebibajtach\n"
+
+#: src/free.c:84
+msgid " -g, --gibi show output in gibibytes\n"
+msgstr " -g, --gibi wyjście w gibibajtach\n"
+
+#: src/free.c:85
+msgid " --tebi show output in tebibytes\n"
+msgstr " --tebi wyjście w tebibajtach\n"
+
+#: src/free.c:86
+msgid " --pebi show output in pebibytes\n"
+msgstr " --pebi wyjście w pebibajtach\n"
+
+#: src/free.c:87
+msgid " -h, --human show human-readable output\n"
+msgstr " -h, --human wyjście czytelne dla człowieka\n"
+
+#: src/free.c:88
+msgid " --si use powers of 1000 not 1024\n"
+msgstr " --si użycie potęg 1000 zamiast 1024\n"
+
+#: src/free.c:89
+msgid " -l, --lohi show detailed low and high memory statistics\n"
+msgstr ""
+" -l, --lohi szczegółowe statystyki niskiej i wysokiej pamięci\n"
+
+#: src/free.c:90
+msgid " -L, --line show output on a single line\n"
+msgstr " -L, --line wyjście w pojedynczej linii\n"
+
+#: src/free.c:91
+msgid " -t, --total show total for RAM + swap\n"
+msgstr " -t, --total całkowity rozmiar RAM-u + obszaru wymiany\n"
+
+#: src/free.c:92
+msgid " -v, --committed show committed memory and commit limit\n"
+msgstr " -v, --committed rozmiar i limit pamięci fizycznie zajętej\n"
+
+#: src/free.c:93
+msgid " -s N, --seconds N repeat printing every N seconds\n"
+msgstr " -s N, --seconds N powtarzanie wypisywania co N sekund\n"
+
+#: src/free.c:94
+msgid " -c N, --count N repeat printing N times, then exit\n"
+msgstr " -c N, --count N powtórzenie wypisania N razy i zakończenie\n"
+
+#: src/free.c:95
+msgid " -w, --wide wide output\n"
+msgstr " -w, --wide szeroki format wyjścia\n"
+
+#: src/free.c:97 src/w.c:666
+msgid " --help display this help and exit\n"
+msgstr " --help wyświetlenie tego opisu i zakończenie\n"
+
+#: src/free.c:172
+msgid "Multiple unit options don't make sense."
+msgstr "Podanie wielu opcji ustawiajÄ…cych jednostkÄ™ nie ma sensu."
+
+#: src/free.c:341
+#, c-format
+msgid "seconds argument `%s' is not positive number"
+msgstr "argument liczby sekund `%s' nie jest liczbÄ… dodatniÄ…"
+
+#: src/free.c:347
+msgid "failed to parse count argument"
+msgstr "niezrozumiały argument liczby powtórzeń"
+
+#: src/free.c:350
+#, c-format
+msgid "failed to parse count argument: '%s'"
+msgstr "niezrozumiały argument liczby powtórzeń: '%s'"
+
+#: src/free.c:370
+msgid "Memory information file /proc/meminfo does not exist"
+msgstr "Plik informacji o pamięci /proc/meminfo nie istnieje"
+
+#: src/free.c:373 src/vmstat.c:378 src/vmstat.c:872
+msgid "Unable to create meminfo structure"
+msgstr "Nie można utworzyć struktury meminfo"
+
+#. Translation Hint: These are shortened column headers
+#. * that are all 7 characters long. Use spaces and right
+#. * align if the translation is shorter.
+#.
+#: src/free.c:381
+msgid "SwapUse"
+msgstr " SwapUż"
+
+#: src/free.c:382
+msgid "CachUse"
+msgstr "CacheUż"
+
+#: src/free.c:384
+msgid " MemUse"
+msgstr "PamUżyw"
+
+#: src/free.c:385
+msgid "MemFree"
+msgstr "PamWoln"
+
+#: src/free.c:395
+#, c-format
+msgid ""
+" total used free shared buffers "
+"cache available"
+msgstr ""
+" razem użyte wolne dzielone bufory w "
+"cache dostępne"
+
+#: src/free.c:397
+#, c-format
+msgid ""
+" total used free shared buff/cache "
+"available"
+msgstr ""
+" razem użyte wolne dzielone buf/cache "
+"dostępne"
+
+#: src/free.c:400
+msgid "Mem:"
+msgstr "Pamięć:"
+
+#: src/free.c:423
+msgid "Low:"
+msgstr "Niska:"
+
+#: src/free.c:429
+msgid "High:"
+msgstr "Wysoka:"
+
+#: src/free.c:436
+msgid "Swap:"
+msgstr "Wymiana:"
+
+#: src/free.c:443
+msgid "Total:"
+msgstr "Razem:"
+
+#: src/free.c:456
+msgid "Comm:"
+msgstr "Zajęta:"
+
+#: src/kill.c:40
+#, c-format
+msgid " %s [options] <pid> [...]\n"
+msgstr " %s [opcje] <pid> [...]\n"
+
+#: src/kill.c:42
+msgid " <pid> [...] send signal to every <pid> listed\n"
+msgstr ""
+" <pid> [...] wysłanie sygnału do każdego wymienionego <pidu>\n"
+
+#: src/kill.c:43
+msgid ""
+" -<signal>, -s, --signal <signal>\n"
+" specify the <signal> to be sent\n"
+msgstr ""
+" -<sygnał>, -s, --signal <sygnał>\n"
+" określenie <sygnału> do wysłania\n"
+
+#: src/kill.c:45
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr " -q, --queue <wartość> wartość całkowita do wysłania z sygnałem\n"
+
+#: src/kill.c:46
+msgid ""
+" -l, --list=[<signal>] list all signal names, or convert one to a name\n"
+msgstr ""
+" -l, --list=[<sygnał>] lista wszystkich nazw sygnałów lub podanie nazwy "
+"jednego\n"
+
+#: src/kill.c:47
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr ""
+" -L, --table lista wszystkich nazw sygnałów w ładnej tabelce\n"
+
+#: src/kill.c:112
+#, c-format
+msgid "unknown signal name %s"
+msgstr "nieznana nazwa sygnału %s"
+
+#: src/kill.c:131
+msgid "must be an integer value to be passed with the signal."
+msgstr "musi być liczbą całkowitą do przekazania z sygnałem."
+
+#: src/kill.c:136
+#, c-format
+msgid "invalid argument %c"
+msgstr "błędny argument %c"
+
+#: src/kill.c:146 src/pgrep.c:792 src/pidof.c:250 src/pidof.c:290
+#: src/sysctl.c:867
+msgid "internal error"
+msgstr "błąd wewnętrzny"
+
+#: src/kill.c:158 src/pmap.c:771 src/pmap.c:786 src/skill.c:381 src/skill.c:465
+#: src/tload.c:135 src/tload.c:140 src/vmstat.c:1047 src/vmstat.c:1057
+#: src/watch.c:891 src/watch.c:906
+msgid "failed to parse argument"
+msgstr "niezrozumiały argument"
+
+#: src/pgrep.c:92 src/pidof.c:40 src/skill.c:74
+msgid "integer overflow"
+msgstr "przepełnienie liczby całkowitej"
+
+#: src/pgrep.c:155
+#, c-format
+msgid " %s [options] <pattern>\n"
+msgstr " %s [opcje] <wzorzec>\n"
+
+#: src/pgrep.c:159
+msgid " -d, --delimiter <string> specify output delimiter\n"
+msgstr " -d, --delimiter <łańcuch> określenie separatora wyjścia\n"
+
+#: src/pgrep.c:160
+msgid " -l, --list-name list PID and process name\n"
+msgstr " -l, --list-name wypisanie PID-ów i nazw procesów\n"
+
+#: src/pgrep.c:161
+msgid " -a, --list-full list PID and full command line\n"
+msgstr " -a, --list-full wypisanie PID-ów i pełnych linii poleceń\n"
+
+#: src/pgrep.c:162
+msgid " -v, --inverse negates the matching\n"
+msgstr " -v, --inverse negacja dopasowania\n"
+
+#: src/pgrep.c:163
+msgid " -w, --lightweight list all TID\n"
+msgstr " -w, --lightweight wypisanie wszystkich TID-ów\n"
+
+#: src/pgrep.c:166
+msgid " -<sig> signal to send (either number or name)\n"
+msgstr " -<sig> sygnał do wysłania (numer lub nazwa)\n"
+
+#: src/pgrep.c:167
+msgid " -H, --require-handler match only if signal handler is present\n"
+msgstr ""
+" -H, --require-handler dopasowanie tylko, jeśli jest obsługa sygnału\n"
+
+#: src/pgrep.c:168
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr " -q, --queue <wartość> wartość całkowita do wysłania z sygnałem\n"
+
+#: src/pgrep.c:169
+msgid " -e, --echo display what is killed\n"
+msgstr " -e, --echo wyświetlenie, co jest zabijane\n"
+
+#: src/pgrep.c:173
+msgid " -e, --echo display PIDs before waiting\n"
+msgstr " -e, --echo wyświetlenie PIDów przed oczekiwaniem\n"
+
+#: src/pgrep.c:177
+msgid " -c, --count count of matching processes\n"
+msgstr " -c, --count liczba pasujących procesów\n"
+
+#: src/pgrep.c:178
+msgid " -f, --full use full process name to match\n"
+msgstr ""
+" -f, --full użycie pełnej nazwy procesu do dopasowania\n"
+
+#: src/pgrep.c:179
+msgid " -g, --pgroup <PGID,...> match listed process group IDs\n"
+msgstr ""
+" -g, --pgroup <PGID,...> dopasowanie ID grupy procesów do wypisania\n"
+
+#: src/pgrep.c:180
+msgid " -G, --group <GID,...> match real group IDs\n"
+msgstr " -G, --group <GID,...> dopasowanie ID grupy rzeczywistej\n"
+
+#: src/pgrep.c:181
+msgid " -i, --ignore-case match case insensitively\n"
+msgstr ""
+" -i, --ignore-case dopasowywanie bez uwzględniania wielkości liter\n"
+
+#: src/pgrep.c:182
+msgid " -n, --newest select most recently started\n"
+msgstr " -n, --newest wybór najpóźniej uruchomionych procesów\n"
+
+#: src/pgrep.c:183
+msgid " -o, --oldest select least recently started\n"
+msgstr " -o, --oldest wybór najwcześniej uruchomionych procesów\n"
+
+#: src/pgrep.c:184
+msgid " -O, --older <seconds> select where older than seconds\n"
+msgstr " -O, --older <sekund> wybór starszych niż podana liczba sekund\n"
+
+#: src/pgrep.c:185
+msgid ""
+" -P, --parent <PPID,...> match only child processes of the given parent\n"
+msgstr ""
+" -P, --parent <PPID,...> dopasowanie tylko procesów potomnych danego "
+"rodzica\n"
+
+#: src/pgrep.c:186
+msgid " -s, --session <SID,...> match session IDs\n"
+msgstr " -s, --session <SID,...> dopasowanie ID sesji\n"
+
+#: src/pgrep.c:187
+msgid " --signal <sig> signal to send (either number or name)\n"
+msgstr " --signal <sig> sygnał do wysłania (numer lub nazwa)\n"
+
+#: src/pgrep.c:188
+msgid " -t, --terminal <tty,...> match by controlling terminal\n"
+msgstr " -t, --terminal <tty,...> dopasowanie po terminalu sterujÄ…cym\n"
+
+#: src/pgrep.c:189
+msgid " -u, --euid <ID,...> match by effective IDs\n"
+msgstr " -u, --euid <ID,...> dopasowanie wg efektywnego ID\n"
+
+#: src/pgrep.c:190
+msgid " -U, --uid <ID,...> match by real IDs\n"
+msgstr " -U, --uid <ID,...> dopasowanie wg rzeczywistego ID\n"
+
+#: src/pgrep.c:191
+msgid " -x, --exact match exactly with the command name\n"
+msgstr " -x, --exact dokładne dopasowanie nazwy polecenia\n"
+
+#: src/pgrep.c:192
+msgid " -F, --pidfile <file> read PIDs from file\n"
+msgstr " -F, --pidfile <plik> odczyt PID-ów z pliku\n"
+
+#: src/pgrep.c:193
+msgid " -L, --logpidfile fail if PID file is not locked\n"
+msgstr ""
+" -L, --logpidfile niepowodzenie, jeśli plik PID nie jest "
+"zablokowany\n"
+
+#: src/pgrep.c:194
+msgid " -r, --runstates <state> match runstates [D,S,Z,...]\n"
+msgstr " -r, --runstates <stan> dopasowanie stanu procesu [D,S,Z,...]\n"
+
+#: src/pgrep.c:195
+msgid " -A, --ignore-ancestors exclude our ancestors from results\n"
+msgstr " -A, --ignore-ancestors wykluczenie naszych przodków z wyników\n"
+
+#: src/pgrep.c:196
+msgid " --cgroup <grp,...> match by cgroup v2 names\n"
+msgstr " --cgroup <grp,...> dopasowanie po nazwach cgroup v2\n"
+
+#: src/pgrep.c:197
+msgid ""
+" --ns <PID> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+" --ns <pid> dopasowanie procesów należących do tej samej\n"
+" przestrzeni nazw, co <pid>\n"
+
+#: src/pgrep.c:199
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option.\n"
+" Available namespaces: ipc, mnt, net, pid, user, "
+"uts\n"
+msgstr ""
+" --nslist <ns,...> lista przestrzeni nazw do uwzględnienia dla "
+"opcji\n"
+" --ns.\n"
+" Dostępne przestrzenie: ipc, mnt, net, pid, user, "
+"uts\n"
+
+#: src/pgrep.c:224 src/pgrep.c:700 src/w.c:455
+msgid "Unable to create pid info structure"
+msgstr "Nie można utworzyć struktury informacji pid"
+
+#: src/pgrep.c:388
+#, c-format
+msgid "invalid user name: %s"
+msgstr "błędna nazwa użytkownika: %s"
+
+#: src/pgrep.c:405
+#, c-format
+msgid "invalid group name: %s"
+msgstr "błędna nazwa grupy: %s"
+
+#: src/pgrep.c:416
+#, c-format
+msgid "invalid process group: %s"
+msgstr "błędna grupa procesów: %s"
+
+#: src/pgrep.c:428
+#, c-format
+msgid "invalid session id: %s"
+msgstr "błędny identyfikator sesji: %s"
+
+#: src/pgrep.c:440
+#, c-format
+msgid "not a number: %s"
+msgstr "nie podano liczby: %s"
+
+#: src/pgrep.c:490
+#, c-format
+msgid "not a hex string: %s"
+msgstr "to nie łańcuch szesnastkowy: %s"
+
+#: src/pgrep.c:525 src/skill.c:162
+msgid "Unable to read process namespace information"
+msgstr "Nie można odczytać informacji o przestrzeni nazw procesu"
+
+#: src/pgrep.c:612
+#, c-format
+msgid "regex error: %s"
+msgstr "błąd wyrażenia regularnego: %s"
+
+#: src/pgrep.c:695
+msgid "Error reading reference namespace information\n"
+msgstr "BÅ‚Ä…d przy odczycie informacji o przestrzeni nazw odniesienia\n"
+
+#: src/pgrep.c:809
+#, c-format
+msgid ""
+"pattern that searches for process name longer than 15 characters will result "
+"in zero matches\n"
+"Try `%s -f' option to match against the complete command line."
+msgstr ""
+"wzorzec wyszukujący nazwy procesów dłuższe niż 15 znaków nie zostanie "
+"dopasowany\n"
+"Aby dopasowywać do pełnej linii poleceń, można spróbować opcji `%s -f'."
+
+#: src/pgrep.c:924
+#, c-format
+msgid "Unknown signal \"%s\"."
+msgstr "Nieznany sygnał \"%s\"."
+
+#: src/pgrep.c:1090
+#, c-format
+msgid ""
+"-L without -F makes no sense\n"
+"Try `%s --help' for more information."
+msgstr ""
+"-L bez -F nie ma sensu\n"
+"`%s --help' pokaże więcej informacji."
+
+#: src/pgrep.c:1097
+#, c-format
+msgid ""
+"pidfile not valid\n"
+"Try `%s --help' for more information."
+msgstr ""
+"nieprawidłowy plik pid\n"
+"`%s --help' pokaże więcej informacji."
+
+#: src/pgrep.c:1106
+#, c-format
+msgid ""
+"only one pattern can be provided\n"
+"Try `%s --help' for more information."
+msgstr ""
+"można podać tylko jeden wzorzec\n"
+"`%s --help' pokaże więcej informacji."
+
+#: src/pgrep.c:1110
+#, c-format
+msgid ""
+"no matching criteria specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+"nie podano kryterium dopasowania\n"
+"`%s --help' pokaże więcej informacji."
+
+#: src/pgrep.c:1162
+#, c-format
+msgid "%s killed (pid %lu)\n"
+msgstr "zabito %s (pid %lu)\n"
+
+#: src/pgrep.c:1169
+#, c-format
+msgid "killing pid %ld failed"
+msgstr "zabicie PID-u %ld nie powiodło się"
+
+#: src/pgrep.c:1181
+#, c-format
+msgid "waiting for %s (pid %lu)\n"
+msgstr "odczekiwanie na %s (pid %lu)\n"
+
+#: src/pgrep.c:1185
+msgid "pidfd_open() not implemented in Linux < 5.3"
+msgstr "pidfd_open() nie zaimplementowane w Linuksie < 5.3"
+
+#: src/pgrep.c:1188
+#, c-format
+msgid "opening pid %ld failed"
+msgstr "otwarcie pidu %ld nie powiodło się"
+
+#: src/pgrep.c:1202
+msgid "epoll_wait failed"
+msgstr "epoll_wait nie powiodło się"
+
+#: src/pidof.c:75
+#, c-format
+msgid " %s [options] [program [...]]\n"
+msgstr " %s [opcje] [program [...]]\n"
+
+#: src/pidof.c:77
+msgid " -s, --single-shot return one PID only\n"
+msgstr " -s, --single-shot zwrócenie tylko jednego PID-u\n"
+
+#: src/pidof.c:78
+msgid " -c, --check-root omit processes with different root\n"
+msgstr " -c, --check-root pominięcie procesów o różnym korzeniu\n"
+
+#: src/pidof.c:79
+msgid " -q, quiet mode, only set the exit code\n"
+msgstr ""
+" -q, tryb cichy, wyłącznie ustawienie kodu wyjścia\n"
+
+#: src/pidof.c:80
+msgid " -w, --with-workers show kernel workers too\n"
+msgstr " -w, --with-workers wyświetlenie także wątków jądra\n"
+
+#: src/pidof.c:81
+msgid " -x also find shells running the named scripts\n"
+msgstr ""
+" -x szukanie także powłok uruchamiających podane "
+"skrypty\n"
+
+#: src/pidof.c:82
+msgid " -o, --omit-pid <PID,...> omit processes with PID\n"
+msgstr " -o, --omit-pid <PID,...> pominięcie procesów o podanych PID-ach\n"
+
+#: src/pidof.c:83
+msgid " -t, --lightweight list threads too\n"
+msgstr " -t, --lightweight wypisanie także wątków\n"
+
+#: src/pidof.c:84
+msgid " -S, --separator SEP use SEP as separator put between PIDs"
+msgstr " -S, --separator SEP użycie SEP jako separatora między PID-ami"
+
+#: src/pidof.c:293
+#, c-format
+msgid "illegal omit pid value (%s)!\n"
+msgstr "błędna wartość PID-u do pominięcia (%s)!\n"
+
+#: src/pmap.c:72
+msgid "Address"
+msgstr "Adres"
+
+#: src/pmap.c:73
+msgid "Offset"
+msgstr "Offset"
+
+#: src/pmap.c:74
+msgid "Device"
+msgstr "UrzÄ…dzenie"
+
+#: src/pmap.c:75
+msgid "Mapping"
+msgstr "Odwzorowanie"
+
+#: src/pmap.c:79
+msgid "Perm"
+msgstr "Uprawn"
+
+#: src/pmap.c:80
+msgid "Inode"
+msgstr "I-węzeł"
+
+#: src/pmap.c:83
+msgid "Kbytes"
+msgstr "KB"
+
+#: src/pmap.c:84
+msgid "Mode"
+msgstr "Tryb"
+
+#. Translation Hint: With the next 5 fields, notice how an extra space
+#. has been added ahead of one 'KiB' so that they all
+#. align. You need not preserve such alignment.
+#. Translation Hint: maximum 'RSS' = 6
+#: src/pmap.c:85 src/top/top_nls.c:337
+msgid "RSS"
+msgstr "RSS"
+
+#: src/pmap.c:86
+msgid "Dirty"
+msgstr "Brudne"
+
+#: src/pmap.c:120
+#, c-format
+msgid " %s [options] PID [PID ...]\n"
+msgstr " %s [opcje] PID [PID ...]\n"
+
+#: src/pmap.c:122
+msgid " -x, --extended show details\n"
+msgstr " -x, --extended wyświetlanie szczegółów\n"
+
+#: src/pmap.c:123
+msgid " -X show even more details\n"
+msgstr ""
+" -X wyświetlanie jeszcze większej ilości "
+"szczegółów\n"
+
+#: src/pmap.c:124
+msgid " WARNING: format changes according to /proc/PID/smaps\n"
+msgstr " UWAGA: format zmienia się zależnie od /proc/PID/smaps\n"
+
+#: src/pmap.c:125
+msgid " -XX show everything the kernel provides\n"
+msgstr ""
+" -XX wyświetlanie wszystkiego, co udostępnia jądro\n"
+
+#: src/pmap.c:126
+msgid " -c, --read-rc read the default rc\n"
+msgstr " -c, --read-rc odczyt domyślnego rc\n"
+
+#: src/pmap.c:127
+msgid " -C, --read-rc-from=<file> read the rc from file\n"
+msgstr " -C, --read-rc-from=<plik> odczyt rc z pliku\n"
+
+#: src/pmap.c:128
+msgid " -n, --create-rc create new default rc\n"
+msgstr " -n, --create-rc utworzenie nowego domyślnego rc\n"
+
+#: src/pmap.c:129
+msgid " -N, --create-rc-to=<file> create new rc to file\n"
+msgstr " -N, --create-rc-to=<plik> utworzenie nowego rc do pliku\n"
+
+#: src/pmap.c:130
+msgid " NOTE: pid arguments are not allowed with -n, -N\n"
+msgstr " UWAGA: argumenty PID nie sÄ… dozwolone wraz z -n, -N\n"
+
+#: src/pmap.c:131
+msgid " -d, --device show the device format\n"
+msgstr " -d, --device wyświetlenie formatu urządzenia\n"
+
+#: src/pmap.c:132
+msgid " -q, --quiet do not display header and footer\n"
+msgstr " -q, --quiet bez wyświetlania nagłówka i stopki\n"
+
+#: src/pmap.c:133
+msgid " -p, --show-path show path in the mapping\n"
+msgstr " -p, --show-path wyświetlanie ścieżki w odwzorowaniu\n"
+
+#: src/pmap.c:134
+msgid " -A, --range=<low>[,<high>] limit results to the given range\n"
+msgstr ""
+" -A, --range=<dolny>[,<górny>] ograniczenie wyników do podanego przedziału\n"
+
+#: src/pmap.c:215
+msgid "shared memory detach"
+msgstr "odłączanie pamięci dzielonej"
+
+#: src/pmap.c:220
+msgid "shared memory remove"
+msgstr "usuwanie pamięci dzielonej"
+
+#: src/pmap.c:245
+msgid " [ anon ]"
+msgstr " [ anon ]"
+
+#: src/pmap.c:248
+msgid " [ stack ]"
+msgstr " [ stos ]"
+
+#: src/pmap.c:334 src/pmap.c:340
+msgid "Unknown format in smaps file!"
+msgstr "Nieznany format pliku smaps!"
+
+#: src/pmap.c:365
+msgid "ERROR: memory allocation failed"
+msgstr "BÅÄ„D: nie udaÅ‚o siÄ™ przydzielić pamiÄ™ci"
+
+#: src/pmap.c:382
+msgid "inconsistent detail field in smaps file, line:\n"
+msgstr "niespójne pole szczegółów w pliku smaps, linia:\n"
+
+#: src/pmap.c:731
+msgid "total kB"
+msgstr "razem kB"
+
+#: src/pmap.c:742
+#, c-format
+msgid "mapped: %ldK writeable/private: %ldK shared: %ldK\n"
+msgstr "odwzorowane: %ldK do zapisu/prywatne: %ldK dzielone: %ldK\n"
+
+#. Translation Hint: keep total string length
+#. * as 24 characters. Adjust %16 if needed
+#: src/pmap.c:751
+#, c-format
+msgid " total %16ldK\n"
+msgstr " razem %16ldK\n"
+
+#. Translation Hint: keep total string length
+#. * as 16 characters. Adjust %8 if needed
+#: src/pmap.c:757
+#, c-format
+msgid " total %8ldK\n"
+msgstr " razem %8ldK\n"
+
+#: src/pmap.c:832
+#, c-format
+msgid "config line too long - line %d"
+msgstr "linia konfiguracji zbyt długa - linia %d"
+
+#: src/pmap.c:857
+#, c-format
+msgid "unsupported section found in the config - line %d"
+msgstr "nie obsługiwana sekcja w konfiguracji - linia %d"
+
+#: src/pmap.c:860 src/pmap.c:871 src/pmap.c:882 src/pmap.c:905 src/pmap.c:917
+#, c-format
+msgid "syntax error found in the config - line %d"
+msgstr "błąd składni w konfiguracji - linia %d"
+
+#: src/pmap.c:887 src/pmap.c:1010
+msgid "memory allocation failed"
+msgstr "nie udało się przydzielić pamięci"
+
+#: src/pmap.c:939
+msgid "the file already exists - delete or rename it first"
+msgstr "plik już istnieje - proszę najpierw usunąć lub zmienić nazwę"
+
+#: src/pmap.c:1002
+msgid "HOME variable undefined"
+msgstr "nie zdefiniowana zmienna HOME"
+
+#: src/pmap.c:1061
+msgid "option -r is ignored as SunOS compatibility"
+msgstr "opcja -r jest ignorowana dla zgodności z SunOS-em"
+
+#: src/pmap.c:1108
+msgid "options -c, -C, -d, -n, -N, -x, -X are mutually exclusive"
+msgstr "opcje -c, -C, -d, -n, -N, -x, -X wykluczajÄ… siÄ™ wzajemnie"
+
+#: src/pmap.c:1111
+msgid "options -p, -q are mutually exclusive with -n, -N"
+msgstr "opcje -p, -q wykluczajÄ… siÄ™ z -n, -N"
+
+#: src/pmap.c:1114 src/pmap.c:1163
+msgid "too many arguments"
+msgstr "za dużo argumentów"
+
+#: src/pmap.c:1118
+msgid "rc file successfully created, feel free to edit the content"
+msgstr "plik rc został utworzony, można modyfikować jego zawartość"
+
+#: src/pmap.c:1121
+msgid "couldn't create the rc file"
+msgstr "nie udało się utworzyć pliku rc"
+
+#: src/pmap.c:1133
+#, c-format
+msgid "~/.%src file successfully created, feel free to edit the content"
+msgstr "plik ~/.%src został utworzony, można modyfikować jego zawartość"
+
+#: src/pmap.c:1136
+#, c-format
+msgid "couldn't create ~/.%src"
+msgstr "nie udało się utworzyć pliku ~/.%src"
+
+#: src/pmap.c:1141
+msgid "argument missing"
+msgstr "brak argumentu"
+
+#: src/pmap.c:1154
+msgid "couldn't read the rc file"
+msgstr "nie udało się odczytać pliku rc"
+
+#: src/pmap.c:1156
+#, c-format
+msgid "couldn't read ~/.%src"
+msgstr "nie udało się odczytać pliku ~/.%src"
+
+#: src/pmap.c:1165 src/pmap.c:1190
+msgid "library failed pids statistics"
+msgstr "niepowodzenie biblioteki przy statystykach pidów"
+
+#: src/ps/display.c:61
+#, c-format
+msgid "Signal %d (%s) caught by %s (%s).\n"
+msgstr "Sygnał %d (%s) został złapany przez %s (%s).\n"
+
+#: src/ps/display.c:75 src/ps/display.c:252 src/ps/display.c:407
+#: src/ps/output.c:2359 src/ps/parser.c:509 src/ps/parser.c:756
+#: src/ps/select.c:95 src/ps/sortformat.c:263 src/ps/sortformat.c:301
+#: src/ps/sortformat.c:549
+msgid "please report this bug"
+msgstr "proszę zgłosić ten błąd"
+
+#: src/ps/display.c:315 src/ps/display.c:484
+#, c-format
+msgid "fatal library error, reap\n"
+msgstr "błąd krytyczny biblioteki: sprzątnięcie\n"
+
+#: src/ps/display.c:365
+#, c-format
+msgid "could not find ppid\n"
+msgstr "nie udało się odnaleźć PPID-u\n"
+
+#: src/ps/display.c:375
+#, c-format
+msgid "could not find start_time\n"
+msgstr "nie udało się odnaleźć czasu startu\n"
+
+#: src/ps/global.c:287
+#, c-format
+msgid "your %dx%d screen size is bogus. expect trouble\n"
+msgstr ""
+"rozmiar ekranu %dx%d wygląda na błędny; można spodziewać się problemów\n"
+
+#: src/ps/global.c:360 src/ps/global.c:372
+msgid "environment specified an unknown personality"
+msgstr "środowisko określa nieznaną osobowość"
+
+#: src/ps/global.c:364
+#, c-format
+msgid "cannot strdup() personality text\n"
+msgstr "nie można wykonać strdup() tekstu osobowości\n"
+
+#: src/ps/global.c:495
+#, c-format
+msgid "fatal library error, context\n"
+msgstr "błąd krytyczny biblioteki: kontekst\n"
+
+#: src/ps/global.c:503
+#, c-format
+msgid "fatal library error, lookup self\n"
+msgstr "błąd krytyczny biblioteki: wyszukanie siebie\n"
+
+#. Translation Note:
+#. . The following translatable word will be used to recognize the
+#. . user's request for help text. In other words, the translation
+#. . you provide will alter program behavior.
+#. .
+#. . It must be limited to 15 characters or less.
+#.
+#: src/ps/global.c:542
+msgid "help"
+msgstr "pomoc"
+
+#. Translation Notes for ps Help #1 ---------------------------------
+#. . This next group of lines represents 6 pairs of words + abbreviations
+#. . which are the basis of the 'ps' program help text.
+#. .
+#. . The words and abbreviations you provide will alter program behavior.
+#. . They will also appear in the help usage summary associated with the
+#. . "Notes for ps Help #2" below.
+#. .
+#. . In their English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . When translating these 6 pairs you may choose any appropriate
+#. . language equivalents and the only requirement is the abbreviated
+#. . representations must be unique.
+#. .
+#. . By default, those abbreviations are single characters. However,
+#. . they are not limited to only one character after translation.
+#. .
+#. Translation Hint, Pair #1
+#: src/ps/help.c:67
+msgid "simple"
+msgstr "prosta"
+
+#: src/ps/help.c:67
+msgid "s"
+msgstr "p"
+
+#. Translation Hint, Pair #2
+#: src/ps/help.c:69
+msgid "list"
+msgstr "lista"
+
+#: src/ps/help.c:69
+msgid "l"
+msgstr "l"
+
+#. Translation Hint, Pair #3
+#: src/ps/help.c:71
+msgid "output"
+msgstr "format"
+
+#: src/ps/help.c:71
+msgid "o"
+msgstr "f"
+
+#. Translation Hint, Pair #4
+#: src/ps/help.c:73
+msgid "threads"
+msgstr "wÄ…tki"
+
+#: src/ps/help.c:73
+msgid "t"
+msgstr "w"
+
+#. Translation Hint, Pair #5
+#: src/ps/help.c:75
+msgid "misc"
+msgstr "inne"
+
+#: src/ps/help.c:75
+msgid "m"
+msgstr "i"
+
+#. Translation Hint, Pair #6
+#: src/ps/help.c:77
+msgid "all"
+msgstr "całość"
+
+#: src/ps/help.c:77
+msgid "a"
+msgstr "c"
+
+#: src/ps/help.c:98
+#, c-format
+msgid ""
+"\n"
+"Usage:\n"
+" %s [options]\n"
+msgstr ""
+"\n"
+"Składnia:\n"
+" %s [opcje]\n"
+
+#: src/ps/help.c:103
+msgid ""
+"\n"
+"Basic options:\n"
+msgstr ""
+"\n"
+"Opcje podstawowe:\n"
+
+#: src/ps/help.c:104
+msgid " -A, -e all processes\n"
+msgstr " -A, -e wszystkie procesy\n"
+
+#: src/ps/help.c:105
+msgid " -a all with tty, except session leaders\n"
+msgstr " -a wszystkie z tty poza liderami sesji\n"
+
+#: src/ps/help.c:106
+msgid " a all with tty, including other users\n"
+msgstr " a wszystkie z tty, wraz z innymi użytkownikami\n"
+
+#: src/ps/help.c:107
+msgid " -d all except session leaders\n"
+msgstr " -d wszystkie poza liderami sesji\n"
+
+#: src/ps/help.c:108
+msgid " -N, --deselect negate selection\n"
+msgstr " -N, --deselect negacja wyboru\n"
+
+#: src/ps/help.c:109
+msgid " r only running processes\n"
+msgstr " r tylko procesy działające\n"
+
+#: src/ps/help.c:110
+msgid " T all processes on this terminal\n"
+msgstr " T wszystkie procesy na tym terminalu\n"
+
+#: src/ps/help.c:111
+msgid " x processes without controlling ttys\n"
+msgstr " x procesy bez terminala sterujÄ…cego\n"
+
+#: src/ps/help.c:114
+msgid ""
+"\n"
+"Selection by list:\n"
+msgstr ""
+"\n"
+"Wybór przez listę:\n"
+
+#: src/ps/help.c:115
+msgid " -C <command> command name\n"
+msgstr " -C <polecenie> nazwa polecenia\n"
+
+#: src/ps/help.c:116
+msgid " -G, --Group <GID> real group id or name\n"
+msgstr " -G, --Group <GID> identyfikator lub nazwa grupy rzeczywistej\n"
+
+#: src/ps/help.c:117
+msgid " -g, --group <group> session or effective group name\n"
+msgstr " -g, --group <grupa> nazwa grupy sesji lub efektywnej\n"
+
+#: src/ps/help.c:118
+msgid " -p, p, --pid <PID> process id\n"
+msgstr " -p, p, --pid <PID> identyfikator procesu\n"
+
+#: src/ps/help.c:119
+msgid " --ppid <PID> parent process id\n"
+msgstr " --ppid <PID> identyfikator procesu rodzica\n"
+
+#: src/ps/help.c:120
+msgid ""
+" -q, q, --quick-pid <PID>\n"
+" process id (quick mode)\n"
+msgstr ""
+" -q, q, --quick-pid <PID>\n"
+" identyfikator procesu (tryb szybki)\n"
+
+#: src/ps/help.c:122
+msgid " -s, --sid <session> session id\n"
+msgstr " -s, --sid <sesja> identyfikator sesji\n"
+
+#: src/ps/help.c:123
+msgid " -t, t, --tty <tty> terminal\n"
+msgstr " -t, t, --tty <tty> terminal\n"
+
+#: src/ps/help.c:124
+msgid " -u, U, --user <UID> effective user id or name\n"
+msgstr ""
+" -u, U, --user <UID> identyfikator lub nazwa użytkownika efektywnego\n"
+
+#: src/ps/help.c:125
+msgid " -U, --User <UID> real user id or name\n"
+msgstr ""
+" -U, --User <UID> identyfikator lub nazwa użytkownika rzeczywistego\n"
+
+#: src/ps/help.c:126
+msgid ""
+"\n"
+" The selection options take as their argument either:\n"
+" a comma-separated list e.g. '-u root,nobody' or\n"
+" a blank-separated list e.g. '-p 123 4567'\n"
+msgstr ""
+"\n"
+" Opcje wyboru jako argument przyjmujÄ…:\n"
+" listÄ™ oddzielonÄ… przecinkami, np. '-u root,nobody' lub\n"
+" listę oddzieloną odstępami, np. '-p 123 4567'\n"
+
+#: src/ps/help.c:132
+msgid ""
+"\n"
+"Output formats:\n"
+msgstr ""
+"\n"
+"Formaty wyjściowe:\n"
+
+#: src/ps/help.c:133
+msgid " -D <format> date format for lstart\n"
+msgstr " -D <format> format daty dla lstart\n"
+
+#: src/ps/help.c:134
+msgid " -F extra full\n"
+msgstr " -F pełny rozszerzony\n"
+
+#: src/ps/help.c:135
+msgid " -f full-format, including command lines\n"
+msgstr " -f pełny format, wraz z liniami poleceń\n"
+
+#: src/ps/help.c:136
+msgid " f, --forest ascii art process tree\n"
+msgstr " f, --forest drzewko procesów jako ASCII art\n"
+
+#: src/ps/help.c:137
+msgid " -H show process hierarchy\n"
+msgstr " -H wyświetlenie hierarchii procesów\n"
+
+#: src/ps/help.c:138
+msgid " -j jobs format\n"
+msgstr " -j format zadań\n"
+
+#: src/ps/help.c:139
+msgid " j BSD job control format\n"
+msgstr " j format sterowania zadaniami BSD\n"
+
+#: src/ps/help.c:140
+msgid " -l long format\n"
+msgstr " -l format długi\n"
+
+#: src/ps/help.c:141
+msgid " l BSD long format\n"
+msgstr " l format długi BSD\n"
+
+#: src/ps/help.c:142
+msgid " -M, Z add security data (for SELinux)\n"
+msgstr " -M, Z dodanie danych bezpieczeństwa (dla SELinuksa)\n"
+
+#: src/ps/help.c:143
+msgid " -O <format> preloaded with default columns\n"
+msgstr " -O <format> dodanie pól do domyślnych kolumn\n"
+
+#: src/ps/help.c:144
+msgid " O <format> as -O, with BSD personality\n"
+msgstr " O <format> jak -O, z osobowością BSD\n"
+
+#: src/ps/help.c:145
+msgid ""
+" -o, o, --format <format>\n"
+" user-defined format\n"
+msgstr ""
+" -o, o, --format <format>\n"
+" format zdefiniowany przez użytkownika\n"
+
+#: src/ps/help.c:147
+msgid " -P add psr column\n"
+msgstr " -P dodanie kolumny psr\n"
+
+#: src/ps/help.c:148
+msgid " s signal format\n"
+msgstr " s format sygnałów\n"
+
+#: src/ps/help.c:149
+msgid " u user-oriented format\n"
+msgstr " u format zorientowany na użytkownika\n"
+
+#: src/ps/help.c:150
+msgid " v virtual memory format\n"
+msgstr " v format pamięci wirtualnej\n"
+
+#: src/ps/help.c:151
+msgid " X register format\n"
+msgstr " X format rejestrów\n"
+
+#: src/ps/help.c:152
+msgid ""
+" -y do not show flags, show rss vs. addr (used with -l)\n"
+msgstr ""
+" -y bez wyświetlania flag, z rss vs. addr (używane z -l)\n"
+
+#: src/ps/help.c:153
+msgid " --context display security context (for SELinux)\n"
+msgstr ""
+" --context wyświetlanie kontekstów bezpieczeństwa (dla "
+"SELinuksa)\n"
+
+#: src/ps/help.c:154
+msgid " --headers repeat header lines, one per page\n"
+msgstr " --headers powtarzanie linii nagłówka na każdej stronie\n"
+
+#: src/ps/help.c:155
+msgid " --no-headers do not print header at all\n"
+msgstr " --no-headers bez wypisywania nagłówka\n"
+
+#: src/ps/help.c:156
+msgid ""
+" --cols, --columns, --width <num>\n"
+" set screen width\n"
+msgstr ""
+" --cols, --columns, --width <ile>\n"
+" ustawienie szerokości ekranu\n"
+
+#: src/ps/help.c:158
+msgid ""
+" --rows, --lines <num>\n"
+" set screen height\n"
+msgstr ""
+" --rows, --lines <ile>\n"
+" ustawienie wysokości ekranu\n"
+
+#: src/ps/help.c:160
+msgid " --signames display signal masks using signal names\n"
+msgstr " --signames lista masek sygnałów z użyciem ich nazw\n"
+
+#: src/ps/help.c:163
+msgid ""
+"\n"
+"Show threads:\n"
+msgstr ""
+"\n"
+"Pokazywanie wątków:\n"
+
+#: src/ps/help.c:164
+msgid " H as if they were processes\n"
+msgstr " H tak, jakby były procesami\n"
+
+#: src/ps/help.c:165
+msgid " -L possibly with LWP and NLWP columns\n"
+msgstr " -L o ile to możliwe, z kolumnami LWP i NLWP\n"
+
+#: src/ps/help.c:166
+msgid " -m, m after processes\n"
+msgstr " -m, m po procesach\n"
+
+#: src/ps/help.c:167
+msgid " -T possibly with SPID column\n"
+msgstr " -T o ile to możliwe, z kolumną SPID\n"
+
+#: src/ps/help.c:170
+msgid ""
+"\n"
+"Miscellaneous options:\n"
+msgstr ""
+"\n"
+"Opcje różne:\n"
+
+#: src/ps/help.c:171
+msgid " -c show scheduling class with -l option\n"
+msgstr " -c pokazywanie klasy szeregowania z opcjÄ… -l\n"
+
+#: src/ps/help.c:172
+msgid " c show true command name\n"
+msgstr " c pokazywanie prawdziwej nazwy polecenia\n"
+
+#: src/ps/help.c:173
+msgid " e show the environment after command\n"
+msgstr " e pokazywanie środowiska po poleceniu\n"
+
+#: src/ps/help.c:174
+msgid ""
+" k, --sort specify sort order as: [+|-]key[,[+|-]key[,...]]\n"
+msgstr ""
+" k, --sort kolejność sortowania: [+|-]klucz[,[+|-]klucz[,...]]\n"
+
+#: src/ps/help.c:175
+msgid " L show format specifiers\n"
+msgstr " L pokazanie określeń formatu\n"
+
+#: src/ps/help.c:176
+msgid " n display numeric uid and wchan\n"
+msgstr " n wyświetlenie liczbowych parametrów uid i wchan\n"
+
+#: src/ps/help.c:177
+msgid " S, --cumulative include some dead child process data\n"
+msgstr " S, --cumulative dołączanie danych martwych procesów potomnych\n"
+
+#: src/ps/help.c:178
+msgid " -y do not show flags, show rss (only with -l)\n"
+msgstr " -y bez pokazywania flag, z rss (tylko z -l)\n"
+
+#: src/ps/help.c:179
+msgid " -V, V, --version display version information and exit\n"
+msgstr " -V, V, --version wyświetlenie informacji o wersji i zakończenie\n"
+
+#: src/ps/help.c:180
+msgid " -w, w unlimited output width\n"
+msgstr " -w, w nieograniczona szerokość wyjścia\n"
+
+#: src/ps/help.c:181
+#, c-format
+msgid ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" display help and exit\n"
+msgstr ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" wyświetlenie opisu i zakończenie\n"
+
+#. Translation Notes for ps Help #2 ---------------------------------
+#. . Most of the following c-format string is derived from the 6
+#. . pairs of words + chars mentioned above in "Notes for ps Help #1".
+#. .
+#. . In its full English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . The word for "help" will be translated elsewhere. Thus, the only
+#. . translations below will be: "Try", "or" and "for additional...".
+#. .
+#: src/ps/help.c:202
+#, c-format
+msgid ""
+"\n"
+" Try '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" or '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" for additional help text.\n"
+msgstr ""
+"\n"
+" Polecenie '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" lub '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" wypisze dodatkowy tekst pomocy.\n"
+
+#: src/ps/help.c:215
+#, c-format
+msgid ""
+"\n"
+"For more details see ps(1).\n"
+msgstr ""
+"\n"
+"Więcej szczegółów w ps(1).\n"
+
+#: src/ps/output.c:104
+msgid "Unable to get system boot time"
+msgstr "Nie można odczytać czasu uruchomienia systemu"
+
+#: src/ps/output.c:119
+msgid "Unable to get total memory"
+msgstr "Nie można odczytać pamięci całkowitej"
+
+#: src/ps/output.c:2206
+#, c-format
+msgid "fix bigness error\n"
+msgstr "poprawić błąd z dużym rozmiarem\n"
+
+#: src/ps/output.c:2289
+#, c-format
+msgid "bad alignment code\n"
+msgstr "niewłaściwy kod wyrównania\n"
+
+#: src/ps/parser.c:63
+msgid "the option is exclusive: "
+msgstr "opcja jest wyłączna: "
+
+#: src/ps/parser.c:93
+msgid "process ID list syntax error"
+msgstr "błąd składni listy identyfikatorów procesów"
+
+#: src/ps/parser.c:94 src/ps/parser.c:95
+msgid "process ID out of range"
+msgstr "identyfikator procesu spoza zakresu"
+
+#: src/ps/parser.c:108
+msgid "user name does not exist"
+msgstr "użytkownik o tej nazwie nie istnieje"
+
+#: src/ps/parser.c:114
+msgid "user ID out of range"
+msgstr "identyfikator użytkownika spoza zakresu"
+
+#: src/ps/parser.c:127
+msgid "group name does not exist"
+msgstr "grupa o tej nazwie nie istnieje"
+
+#: src/ps/parser.c:133
+msgid "group ID out of range"
+msgstr "identyfikator grupy spoza zakresu"
+
+#: src/ps/parser.c:149 src/ps/parser.c:173
+msgid "TTY could not be found"
+msgstr "nie znaleziono TTY"
+
+#: src/ps/parser.c:175
+msgid "list member was not a TTY"
+msgstr "element listy to nie TTY"
+
+#: src/ps/parser.c:200
+msgid "improper list"
+msgstr "niewłaściwa lista"
+
+#: src/ps/parser.c:249
+msgid "list of command names must follow -C"
+msgstr "po -C musi wystąpić lista nazw poleceń"
+
+#: src/ps/parser.c:257
+msgid "date format must follow -D"
+msgstr "po -D musi wystąpić format daty"
+
+#: src/ps/parser.c:270
+msgid "list of real groups must follow -G"
+msgstr "po -G musi wystąpić lista grup rzeczywistych"
+
+#: src/ps/parser.c:283
+msgid "list of jobs must follow -J"
+msgstr "po -J musi wystąpić lista zadań"
+
+#: src/ps/parser.c:311
+msgid "format or sort specification must follow -O"
+msgstr "po -O musi wystąpić określenie formatu lub sortowania"
+
+#: src/ps/parser.c:322
+msgid "list of PRM groups must follow -R"
+msgstr "po -R musi wystąpić lista grup PRM"
+
+#: src/ps/parser.c:341
+msgid "list of real users must follow -U"
+msgstr "po -U musi wystąpić lista użytkowników rzeczywistych"
+
+#: src/ps/parser.c:382
+msgid "list of session leaders OR effective group names must follow -g"
+msgstr "po -g musi wystąpić lista liderów sesji LUB nazw grup efektywnych"
+
+#: src/ps/parser.c:393
+msgid "list of session leaders OR effective group IDs was invalid"
+msgstr "błędna lista liderów sesji LUB identyfikatorów grup efektywnych"
+
+#: src/ps/parser.c:417
+msgid "format specification must follow -o"
+msgstr "po -o musi wystąpić określenie formatu"
+
+#: src/ps/parser.c:423
+msgid "list of process IDs must follow -p"
+msgstr "po -p musi wystąpić lista identyfikatorów procesów"
+
+#: src/ps/parser.c:440
+msgid "the -r option is reserved"
+msgstr "opcja -r jest zarezerwowana"
+
+#: src/ps/parser.c:446
+msgid "list of session IDs must follow -s"
+msgstr "po -s musi wystąpić lista identyfikatorów sesji"
+
+#: src/ps/parser.c:454
+msgid "list of terminals (pty, tty...) must follow -t"
+msgstr "po -t musi wystąpić lista terminali (pty, tty...)"
+
+#: src/ps/parser.c:462
+msgid "list of users must follow -u"
+msgstr "po -u musi wystąpić lista użytkowników"
+
+#: src/ps/parser.c:484
+msgid "must set personality to get -x option"
+msgstr "aby użyć opcji -x, należy ustawić osobowość"
+
+#: src/ps/parser.c:499
+msgid "list of zones (contexts, labels, whatever?) must follow -z"
+msgstr "po -z musi wystąpić lista stref (kontekstów, etykiet, czegokolwiek?)"
+
+#: src/ps/parser.c:506
+msgid "embedded '-' among SysV options makes no sense"
+msgstr "znak '-' osadzony wśród opcji SysV nie ma sensu"
+
+#: src/ps/parser.c:512
+msgid "unsupported SysV option"
+msgstr "nie obsługiwana opcja SysV"
+
+#: src/ps/parser.c:525
+msgid "cannot happen - problem #1"
+msgstr "to nie może się zdarzyć - problem #1"
+
+#: src/ps/parser.c:529
+msgid "cannot happen - problem #2"
+msgstr "to nie może się zdarzyć - problem #2"
+
+#: src/ps/parser.c:531
+msgid "second chance parse failed, not BSD or SysV"
+msgstr "analiza drugiej szansy nie powiodła się - ani BSD, ani SysV"
+
+#: src/ps/parser.c:548
+msgid "option A is reserved"
+msgstr "opcja A jest zarezerwowana"
+
+#: src/ps/parser.c:553
+msgid "option C is reserved"
+msgstr "opcja C jest zarezerwowana"
+
+#: src/ps/parser.c:573
+msgid "format or sort specification must follow O"
+msgstr "po O musi wystąpić określenie formatu lub sortowania"
+
+#: src/ps/parser.c:598
+msgid "list of users must follow U"
+msgstr "po U musi wystąpić lista użytkowników"
+
+#: src/ps/parser.c:610
+msgid "obsolete W option not supported (you have a /dev/drum?)"
+msgstr "przestarzała opcja W nie jest obsługiwana (istnieje /dev/drum?)"
+
+#: src/ps/parser.c:646 src/ps/parser.c:921 src/ps/parser.c:930
+msgid "only one heading option may be specified"
+msgstr "można podać tylko jedną opcję nagłówków"
+
+#: src/ps/parser.c:661
+msgid "long sort specification must follow 'k'"
+msgstr "po 'k' musi wystąpić długie określenie sortowania"
+
+#: src/ps/parser.c:689
+msgid "format specification must follow o"
+msgstr "po o musi wystąpić określenie formatu"
+
+#: src/ps/parser.c:695
+msgid "list of process IDs must follow p"
+msgstr "po p musi wystąpić lista identyfikatorów procesów"
+
+#: src/ps/parser.c:753
+msgid "embedded '-' among BSD options makes no sense"
+msgstr "znak '-' osadzony wśród opcji BSD nie ma sensu"
+
+#: src/ps/parser.c:759
+msgid "unsupported option (BSD syntax)"
+msgstr "nie obsługiwana opcja (składnia BSD)"
+
+#: src/ps/parser.c:847 src/ps/parser.c:859
+msgid "unknown gnu long option"
+msgstr "nieznana długa opcja GNU"
+
+#: src/ps/parser.c:867
+msgid "list of real groups must follow --Group"
+msgstr "po --Group musi wystąpić lista grup rzeczywistych"
+
+#: src/ps/parser.c:875
+msgid "list of real users must follow --User"
+msgstr "po --User musi wystąpić lista użytkowników rzeczywistych"
+
+#: src/ps/parser.c:894
+msgid "number of columns must follow --cols, --width, or --columns"
+msgstr "po --cols, --width lub --columns musi wystąpić liczba kolumn"
+
+#: src/ps/parser.c:897
+msgid "option --cumulative does not take an argument"
+msgstr "opcja --cumulative nie może mieć argumentu"
+
+#: src/ps/parser.c:902
+msgid "date format must follow --date-format"
+msgstr "po --date-format musi wystąpić format daty"
+
+#: src/ps/parser.c:908
+msgid "option --deselect does not take an argument"
+msgstr "opcja --deselect nie może mieć argumentu"
+
+#: src/ps/parser.c:920
+msgid "option --no-heading does not take an argument"
+msgstr "opcja --no-heading nie może mieć argumentu"
+
+#: src/ps/parser.c:929
+msgid "option --heading does not take an argument"
+msgstr "opcja --heading nie może mieć argumentu"
+
+#: src/ps/parser.c:935
+msgid "option --forest does not take an argument"
+msgstr "opcja --forest nie może mieć argumentu"
+
+#: src/ps/parser.c:941
+msgid "format specification must follow --format"
+msgstr "po --format musi wystąpić określenie formatu"
+
+#: src/ps/parser.c:947
+msgid "list of effective groups must follow --group"
+msgstr "po --group musi wystąpić lista grup efektywnych"
+
+#: src/ps/parser.c:965
+msgid "list of process IDs must follow --pid"
+msgstr "po --pid musi wystąpić lista identyfikatorów procesów"
+
+#: src/ps/parser.c:981
+msgid "list of process IDs must follow --ppid"
+msgstr "po --ppid musi wystąpić lista identyfikatorów procesów"
+
+#: src/ps/parser.c:999
+msgid "number of rows must follow --rows or --lines"
+msgstr "po --rows lub --lines musi wystąpić liczba wierszy"
+
+#: src/ps/parser.c:1003
+msgid "some sid thing(s) must follow --sid"
+msgstr "po --sid musi wystąpić jakieś określenie identyfikujące sesję"
+
+#: src/ps/parser.c:1015
+msgid "long sort specification must follow --sort"
+msgstr "po --sort musi wystąpić długie określenie sortowania"
+
+#: src/ps/parser.c:1021
+msgid "list of ttys must follow --tty"
+msgstr "po --tty musi wystąpić lista terminali"
+
+#: src/ps/parser.c:1029
+msgid "list of effective users must follow --user"
+msgstr "po --user musi wystąpić lista użytkowników efektywnych"
+
+#: src/ps/parser.c:1145
+msgid "way bad"
+msgstr "zła droga"
+
+#: src/ps/parser.c:1159
+msgid "garbage option"
+msgstr "śmieciowa opcja"
+
+#: src/ps/parser.c:1163
+msgid "something broke"
+msgstr "coś się zepsuło"
+
+#: src/ps/parser.c:1183
+msgid "thread display conflicts with forest display"
+msgstr "wyświetlanie wątków jest w konflikcie z wyświetlaniem lasu"
+
+#: src/ps/parser.c:1188
+msgid "thread flags conflict; can't use H with m or -m"
+msgstr "konflikt flag wątków: nie można użyć H z m ani -m"
+
+#: src/ps/parser.c:1190
+msgid "thread flags conflict; can't use both m and -m"
+msgstr "konflikt flag wątków: nie można użyć jednocześnie m i -m"
+
+#: src/ps/parser.c:1192
+msgid "thread flags conflict; can't use both -L and -T"
+msgstr "konflikt flag wątków: nie można użyć jednocześnie -L i -T"
+
+#: src/ps/parser.c:1265 src/ps/parser.c:1266
+#, c-format
+msgid "error: %s\n"
+msgstr "błąd: %s\n"
+
+#: src/ps/select.c:71
+msgid "process selection options conflict"
+msgstr "konflikt opcji wyboru procesów"
+
+#: src/ps/sortformat.c:110 src/ps/sortformat.c:115
+msgid "seriously crashing: goodbye cruel world"
+msgstr "poważna awaria: żegnaj, okrutny świecie"
+
+#: src/ps/sortformat.c:150 src/ps/sortformat.c:169
+msgid "missing AIX field descriptor"
+msgstr "brak deskryptora pola AIX"
+
+#: src/ps/sortformat.c:152
+msgid "improper AIX field descriptor"
+msgstr "niewłaściwy deskryptor pola AIX"
+
+#: src/ps/sortformat.c:174
+msgid "unknown AIX field descriptor"
+msgstr "nieznany deskryptor pola AIX"
+
+#: src/ps/sortformat.c:179
+msgid "AIX field descriptor processing bug"
+msgstr "błąd przetwarzania deskryptora pola AIX"
+
+#: src/ps/sortformat.c:287
+#, c-format
+msgid "unknown user-defined format specifier \"%s\""
+msgstr "nieznane określenie formatu zdefiniowanego przez użytkownika \"%s\""
+
+#: src/ps/sortformat.c:314
+msgid "empty format list"
+msgstr "pusta lista formatu"
+
+#: src/ps/sortformat.c:315
+msgid "improper format list"
+msgstr "niewłaściwa lista formatu"
+
+#: src/ps/sortformat.c:316
+msgid "column widths must be unsigned decimal numbers"
+msgstr "szerokości kolumn muszą być liczbami dziesiętnymi bez znaku"
+
+#: src/ps/sortformat.c:317
+msgid "can not set width for a macro (multi-column) format specifier"
+msgstr ""
+"nie można ustawić szerokości dla (wielokolumnowego) makra określającego "
+"format"
+
+#: src/ps/sortformat.c:371 src/ps/sortformat.c:387
+msgid "improper sort list"
+msgstr "niewłaściwa lista sortowania"
+
+#: src/ps/sortformat.c:382
+msgid "empty sort list"
+msgstr "pusta lista sortowania"
+
+#: src/ps/sortformat.c:403 src/ps/sortformat.c:482 src/ps/sortformat.c:484
+msgid "unknown sort specifier"
+msgstr "nieznane określenie sortowania"
+
+#: src/ps/sortformat.c:430 src/ps/sortformat.c:435 src/ps/sortformat.c:442
+#: src/ps/sortformat.c:448
+msgid "bad sorting code"
+msgstr "błędny kod sortujący"
+
+#: src/ps/sortformat.c:445
+msgid "PPID sort and forest output conflict"
+msgstr "konflikt opcji sortowania wg PPID-u i lasu"
+
+#: src/ps/sortformat.c:519
+msgid "option -O can not follow other format options"
+msgstr "opcja -O nie może wystąpić po innych opcjach formatu"
+
+#: src/ps/sortformat.c:526 src/ps/sortformat.c:544
+msgid "multiple sort options"
+msgstr "wiele opcji sortowania"
+
+#: src/ps/sortformat.c:534
+msgid "option O is neither first format nor sort order"
+msgstr "opcja O nie jest pierwszym formatem ani kolejnością sortowania"
+
+#: src/ps/sortformat.c:661
+msgid "modifier -y without format -l makes no sense"
+msgstr "modyfikator -y bez formatu -l nie ma sensu"
+
+#: src/ps/sortformat.c:760
+msgid "bug: must reset the list first"
+msgstr "błąd: trzeba najpierw wyzerować listę"
+
+#: src/ps/sortformat.c:797
+msgid "tell <procps@freelists.org> what you expected"
+msgstr ""
+"proszę napisać na adres <procps@freelists.org>, co powinno być zrobione"
+
+#: src/ps/sortformat.c:807
+msgid ""
+"tell <procps@freelists.org> what you want (-L/-T, -m/m/H, and $PS_FORMAT)"
+msgstr ""
+"proszę napisać na adres <procps@freelists.org>, o co chodzi (-L/-T, -m/m/H "
+"oraz $PS_FORMAT)"
+
+#: src/ps/sortformat.c:824
+#, c-format
+msgid "warning: $PS_FORMAT ignored. (%s)\n"
+msgstr "uwaga: zignorowano $PS_FORMAT (%s).\n"
+
+#: src/ps/sortformat.c:829 src/ps/sortformat.c:839
+msgid "conflicting format options"
+msgstr "konflikt opcji formatu"
+
+#: src/ps/sortformat.c:830
+msgid "can not use output modifiers with user-defined output"
+msgstr ""
+"nie można używać modyfikatorów wyjścia dla wyjścia zdefiniowanego przez "
+"użytkownika"
+
+#: src/ps/sortformat.c:831
+msgid "-L/-T with H/m/-m and -o/-O/o/O is nonsense"
+msgstr "-L/-T wraz z H/m/-m oraz -o/-O/o/O to nonsens"
+
+#: src/ps/sortformat.c:889
+msgid "internal error: no PID or PPID for -j option"
+msgstr "błąd wewnętrzny: brak PID-u oraz PPID-u dla opcji -j"
+
+#: src/ps/sortformat.c:891
+msgid "lost my PGID"
+msgstr "utracono własny PGID"
+
+#: src/ps/sortformat.c:904
+msgid "internal error: no PRI for -c option"
+msgstr "błąd wewnętrzny: brak PRI dla opcji -c"
+
+#: src/ps/sortformat.c:907
+msgid "lost my CLS"
+msgstr "utracono własny CLS"
+
+#: src/ps/sortformat.c:912
+msgid "-T with H/-m/m but no PID for SPID to follow"
+msgstr "-T z H/-m/m, ale brak PID-u, po którym miałby być SPID"
+
+#: src/ps/sortformat.c:923
+msgid "-L with H/-m/m but no PID/PGID/SID/SESS for NLWP to follow"
+msgstr ""
+"-L z H/-m/m, ale brak pola PID/PGID/SID/SESS, po którym miałoby być NLWP"
+
+#: src/pwdx.c:41
+#, c-format
+msgid " %s [options] pid...\n"
+msgstr "%s [opcje] pid...\n"
+
+#: src/pwdx.c:117
+#, c-format
+msgid "invalid process id: %s"
+msgstr "błędny identyfikator procesu: %s"
+
+#: src/skill.c:285
+msgid "Unable to create pid Pids_info structure"
+msgstr "Nie można utworzyć struktury pid Pids_info"
+
+#: src/skill.c:288 src/w.c:458
+msgid "Unable to load process information"
+msgstr "Nie można załadować informacji o procesie"
+
+#: src/skill.c:319
+#, c-format
+msgid " %s [signal] [options] <expression>\n"
+msgstr " %s [sygnał] [opcje] <wyrażenie>\n"
+
+#: src/skill.c:323
+#, c-format
+msgid " %s [new priority] [options] <expression>\n"
+msgstr " %s [nowy priorytet] [opcje] <wyrażenie>\n"
+
+#: src/skill.c:327
+msgid " -f, --fast fast mode (not implemented)\n"
+msgstr " -f, --fast tryb szybki (nie zaimplementowany)\n"
+
+#: src/skill.c:328
+msgid " -i, --interactive interactive\n"
+msgstr " -i, --interactive tryb interaktywny\n"
+
+#: src/skill.c:329
+msgid " -l, --list list all signal names\n"
+msgstr " -l, --list lista wszystkich nazw sygnałów\n"
+
+#: src/skill.c:330
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr " -L, --table lista wszystkich nazw sygnałów w ładnej tabelce\n"
+
+#: src/skill.c:331
+msgid ""
+" -n, --no-action do not actually kill processes; just print what would "
+"happen\n"
+msgstr ""
+"-n, --no-action bez zabijania procesów; jedynie wypisanie, co by się "
+"stało\n"
+
+#: src/skill.c:332
+msgid " -v, --verbose explain what is being done\n"
+msgstr " -v, --verbose wyjaśnianie, co jest wykonywane\n"
+
+#: src/skill.c:333
+msgid " -w, --warnings enable warnings (not implemented)\n"
+msgstr " -w, --warnings włączenie ostrzeżeń (nie zaimplementowane)\n"
+
+#: src/skill.c:335
+msgid ""
+"Expression can be: terminal, user, pid, command.\n"
+"The options below may be used to ensure correct interpretation.\n"
+msgstr ""
+"Wyrażeniem może być: terminal, użytkownik, pid, polecenie.\n"
+"Poniższych opcji można użyć w celu zapewnienia właściwej interpretacji.\n"
+
+#: src/skill.c:337
+msgid " -c, --command <command> expression is a command name\n"
+msgstr " -c, --command <polecenie> wyrażenie jest nazwą polecenia\n"
+
+#: src/skill.c:338
+msgid " -p, --pid <pid> expression is a process id number\n"
+msgstr " -p, --pid <pid> wyrażenie jest identyfikatorem procesu\n"
+
+#: src/skill.c:339
+msgid " -t, --tty <tty> expression is a terminal\n"
+msgstr " -t, --tty <tty> wyrażenie jest terminalem\n"
+
+#: src/skill.c:340
+msgid " -u, --user <username> expression is a username\n"
+msgstr " -u, --user <użytkownik> wyrażenie jest nazwą użytkownika\n"
+
+#: src/skill.c:342
+msgid "Alternatively, expression can be:\n"
+msgstr "Alternatywnie, wyrażeniem może być:\n"
+
+#: src/skill.c:343
+msgid ""
+" --ns <pid> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+" --ns <pid> dopasowanie procesów należących do tej samej\n"
+" przestrzeni nazw, co <pid>\n"
+
+#: src/skill.c:345
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option; available namespaces are\n"
+": ipc, mnt, net, pid, user, uts\n"
+msgstr ""
+" --nslist <ns,...> lista przestrzeni nazw branych pod uwagÄ™ dla "
+"opcji\n"
+" --ns; dostępne przestrzenie to:\n"
+" ipc, mnt, net, pid, user, uts\n"
+
+#: src/skill.c:355
+#, c-format
+msgid ""
+"\n"
+"The default signal is TERM. Use -l or -L to list available signals.\n"
+"Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0.\n"
+"Alternate signals may be specified in three ways: -SIGKILL -KILL -9\n"
+msgstr ""
+"\n"
+"Domyślny sygnał to TERM. Opcja -l lub -L pozwala uzyskać listę dostępnych\n"
+"sygnałów. Szczególnie przydatne sygnały to HUP, INT, KILL, STOP, CONT i 0.\n"
+"Alternatywny sygnał można podać na trzy sposoby: -SIGKILL, -KILL, -9.\n"
+
+#: src/skill.c:362
+#, c-format
+msgid ""
+"\n"
+"The default priority is +4. (snice +4 ...)\n"
+"Priority numbers range from +20 (slowest) to -20 (fastest).\n"
+"Negative priority numbers are restricted to administrative users.\n"
+msgstr ""
+"\n"
+"Domyślny priorytet to +4 (snice +4 ...)\n"
+"Numer priorytetu to liczba od +20 (najwolniej) do -20 (najszybciej).\n"
+"Liczby ujemne są zarezerwowane dla administratorów.\n"
+
+#: src/skill.c:384
+#, c-format
+msgid "priority %lu out of range"
+msgstr "priorytet %lu jest spoza zakresu"
+
+#: src/skill.c:493
+#, c-format
+msgid "invalid pid number %s"
+msgstr "błędny numer pid %s"
+
+#: src/skill.c:497
+msgid "error reading reference namespace information"
+msgstr "błąd odczytu informacji o przestrzeni nazw odniesienia"
+
+#: src/skill.c:505
+msgid "invalid namespace list"
+msgstr "błędna lista przestrzeni nazw"
+
+#: src/skill.c:542
+msgid "no process selection criteria"
+msgstr "nie podano kryteriów wyboru"
+
+#: src/skill.c:545
+msgid "general flags may not be repeated"
+msgstr "flag ogólnych nie można powtarzać"
+
+#: src/skill.c:548
+msgid "-i makes no sense with -v, -f, and -n"
+msgstr "-i nie ma sensu z -v, -f ani -n"
+
+#: src/skill.c:550
+msgid "-v makes no sense with -i and -f"
+msgstr "-v nie ma sensu z -i ani -f"
+
+#: src/skill.c:594
+#, c-format
+msgid "skill: \"%s\" is not supported\n"
+msgstr "skill: \"%s\" nie jest obsługiwany\n"
+
+#: src/slabtop.c:108
+msgid " -d, --delay <secs> delay updates\n"
+msgstr " -d, --delay <sek> opóźnienie aktualizacji\n"
+
+#: src/slabtop.c:109
+msgid " -o, --once only display once, then exit\n"
+msgstr " -o, --once wyświetlenie jednorazowe i zakończenie\n"
+
+#: src/slabtop.c:110
+msgid " -s, --sort <char> specify sort criteria by character (see below)\n"
+msgstr ""
+" -s, --sort <znak> określenie kryterium sortowania wg znaku (p. niżej)\n"
+
+#: src/slabtop.c:115
+msgid ""
+"\n"
+"The following are valid sort criteria:\n"
+msgstr ""
+"\n"
+"Poprawne kryteria sortowania to:\n"
+
+#: src/slabtop.c:116
+msgid " a: sort by number of active objects\n"
+msgstr " a: sortowanie wg liczby aktywnych obiektów\n"
+
+#: src/slabtop.c:117
+msgid " b: sort by objects per slab\n"
+msgstr " b: sortowanie wg obiektów na płytę\n"
+
+#: src/slabtop.c:118
+msgid " c: sort by cache size\n"
+msgstr " c: sortowanie wg rozmiaru pamięci podręcznej\n"
+
+#: src/slabtop.c:119
+msgid " l: sort by number of slabs\n"
+msgstr " l: sortowanie wg liczby płyt\n"
+
+#: src/slabtop.c:120
+msgid " v: sort by (non display) number of active slabs\n"
+msgstr " v: sortowanie wg (nie wyświetlanej) liczby aktywnych płyt\n"
+
+#: src/slabtop.c:121
+msgid " n: sort by name\n"
+msgstr " n: sortowanie wg nazwy\n"
+
+#: src/slabtop.c:122
+msgid " o: sort by number of objects (the default)\n"
+msgstr " o: sortowanie wg liczby obiektów (domyślne)\n"
+
+#: src/slabtop.c:123
+msgid " p: sort by (non display) pages per slab\n"
+msgstr " p: sortowanie wg (nie wyświetlanej) liczby stron na płytę\n"
+
+#: src/slabtop.c:124
+msgid " s: sort by object size\n"
+msgstr " s: sortowanie wg rozmiaru obiektu\n"
+
+#: src/slabtop.c:125
+msgid " u: sort by cache utilization\n"
+msgstr " u: sortowanie wg wykorzystania pamięci podręcznej\n"
+
+#: src/slabtop.c:188 src/slabtop.c:199
+msgid "Cannot combine -d and -o options"
+msgstr "Nie można łączyć opcji -d i -o"
+
+#: src/slabtop.c:190
+msgid "illegal delay"
+msgstr "niedozwolone opóźnienie"
+
+#: src/slabtop.c:192 src/tload.c:142 src/vmstat.c:1049
+msgid "delay must be positive integer"
+msgstr "opóźnienie musi być liczbą całkowitą dodatnią"
+
+#: src/slabtop.c:236
+msgid "Error getting slab summary results"
+msgstr "Błąd odczytu wyników podsumowania płyt"
+
+#. Translation Hint: Next five strings must not
+#. * exceed a length of 35 characters.
+#: src/slabtop.c:242
+#, no-c-format
+msgid "Active / Total Objects (% used)"
+msgstr "Obiektów aktywnych / razem (% uż.)"
+
+#: src/slabtop.c:248
+#, no-c-format
+msgid "Active / Total Slabs (% used)"
+msgstr "Slabów aktywnych / razem (% uż.)"
+
+#: src/slabtop.c:254
+#, no-c-format
+msgid "Active / Total Caches (% used)"
+msgstr "Buforów aktywnych / razem (% uż.)"
+
+#: src/slabtop.c:260
+#, no-c-format
+msgid "Active / Total Size (% used)"
+msgstr "Rozmiar aktywny / razem (% uż.)"
+
+#: src/slabtop.c:265
+msgid "Minimum / Average / Maximum Object"
+msgstr "Obiektów min / średnio / max"
+
+#. Translation Hint: Please keep alignment of the
+#. * following intact.
+#: src/slabtop.c:276
+msgid " OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME"
+msgstr " OB. AKTYWNE UÅ». ROZM.OB. PÅYTY OB./PÅ. ROZM.CACHE NAZWA"
+
+#: src/slabtop.c:313 src/vmstat.c:767
+msgid "Unable to create slabinfo structure"
+msgstr "Nie można utworzyć struktury slabinfo"
+
+#: src/slabtop.c:318
+msgid "terminal setting retrieval"
+msgstr "odczyt ustawień terminala"
+
+#: src/slabtop.c:334 src/vmstat.c:774
+msgid "Unable to get slabinfo node data"
+msgstr "Nie można pobrać danych węzła slabinfo"
+
+#: src/slabtop.c:340 src/vmstat.c:776
+msgid "Unable to sort slab nodes"
+msgstr "Nie można posortować węzłów płyt"
+
+#: src/sysctl.c:118
+#, c-format
+msgid "Path is not under %s: %s"
+msgstr "Ścieżka nie jest pod %s: %s"
+
+#: src/sysctl.c:136
+#, c-format
+msgid "separators should not be repeated: %s"
+msgstr "separatory nie powinny się powtarzać: %s"
+
+#: src/sysctl.c:232
+#, c-format
+msgid " %s [options] [variable[=value] ...]\n"
+msgstr " %s [opcje] [zmienna[=wartość] ...]\n"
+
+#: src/sysctl.c:235
+msgid " -a, --all display all variables\n"
+msgstr " -a, --all wyświetlenie wszystkich zmiennych\n"
+
+#: src/sysctl.c:236
+msgid " -A alias of -a\n"
+msgstr " -A alias dla opcji -a\n"
+
+#: src/sysctl.c:237
+msgid " -X alias of -a\n"
+msgstr " -X alias dla opcji -a\n"
+
+#: src/sysctl.c:238
+msgid " --deprecated include deprecated parameters to listing\n"
+msgstr ""
+" --deprecated dołączenie do listingu parametrów przestarzałych\n"
+
+#: src/sysctl.c:239
+msgid " --dry-run Print the key and values but do not write\n"
+msgstr " --dry-run Wypisywanie kluczy i wartości, ale bez zapisu\n"
+
+#: src/sysctl.c:240
+msgid " -b, --binary print value without new line\n"
+msgstr " -b, --binary wypisanie wartości bez nowej linii\n"
+
+#: src/sysctl.c:241
+msgid " -e, --ignore ignore unknown variables errors\n"
+msgstr ""
+" -e, --ignore zignorowanie błędów dotyczących nieznanych zmiennych\n"
+
+#: src/sysctl.c:242
+msgid " -N, --names print variable names without values\n"
+msgstr " -N, --names wypisanie nazw zmiennych bez wartości\n"
+
+#: src/sysctl.c:243
+msgid " -n, --values print only values of the given variable(s)\n"
+msgstr " -n, --values wypisanie tylko wartości podanych zmiennych\n"
+
+#: src/sysctl.c:244
+msgid " -p, --load[=<file>] read values from file\n"
+msgstr " -p, --load[=<plik>] odczyt wartości z pliku\n"
+
+#: src/sysctl.c:245
+msgid " -f alias of -p\n"
+msgstr " -f alias dla opcji -p\n"
+
+#: src/sysctl.c:246
+msgid " --system read values from all system directories\n"
+msgstr ""
+" --system odczyt wartości ze wszystkich katalogów systemowych\n"
+
+#: src/sysctl.c:247
+msgid ""
+" -r, --pattern <expression>\n"
+" select setting that match expression\n"
+msgstr ""
+" -r, --pattern <wyrażenie>\n"
+" wybór ustawień pasujących do wyrażenia\n"
+
+#: src/sysctl.c:249
+msgid " -q, --quiet do not echo variable set\n"
+msgstr " -q, --quiet bez wypisywania ustawianej zmiennej\n"
+
+#: src/sysctl.c:250
+msgid " -w, --write enable writing a value to variable\n"
+msgstr " -w, --write włączenie zapisu wartości do zmiennej\n"
+
+#: src/sysctl.c:251
+msgid " -o does nothing\n"
+msgstr " -o nic nie robi\n"
+
+#: src/sysctl.c:252
+msgid " -x does nothing\n"
+msgstr " -x nic nie robi\n"
+
+#: src/sysctl.c:253
+msgid " -d alias of -h\n"
+msgstr " -d alias dla opcji -h\n"
+
+#: src/sysctl.c:334 src/sysctl.c:390
+#, c-format
+msgid "\"%s\" is an unknown key"
+msgstr "nieznany klucz: \"%s\""
+
+#: src/sysctl.c:352 src/sysctl.c:508 src/sysctl.c:545
+#, c-format
+msgid "cannot stat %s"
+msgstr "nie można wykonać stat na %s"
+
+#: src/sysctl.c:395 src/sysctl.c:437
+#, c-format
+msgid "permission denied on key '%s'"
+msgstr "brak uprawnień do klucza '%s'"
+
+#: src/sysctl.c:402 src/sysctl.c:454
+#, c-format
+msgid "reading key \"%s\""
+msgstr "odczyt klucz \"%s\""
+
+#: src/sysctl.c:492
+#, c-format
+msgid "unable to open directory \"%s\""
+msgstr "nie można otworzyć katalogu \"%s\""
+
+#: src/sysctl.c:557
+msgid "strdup key"
+msgstr "strdup klucza"
+
+#: src/sysctl.c:564 src/sysctl.c:571 src/sysctl.c:604
+#, c-format
+msgid "setting key \"%s\""
+msgstr "ustawianie klucza \"%s\""
+
+#: src/sysctl.c:581
+#, c-format
+msgid "\"%s\" is an unknown key%s"
+msgstr "nieznany klucz: \"%s\"%s"
+
+#: src/sysctl.c:582 src/sysctl.c:591 src/sysctl.c:595
+msgid ", ignoring"
+msgstr ", zignorowano"
+
+#: src/sysctl.c:590
+#, c-format
+msgid "permission denied on key \"%s\"%s"
+msgstr "brak uprawnień do klucza \"%s\"%s"
+
+#: src/sysctl.c:594
+#, c-format
+msgid "setting key \"%s\"%s"
+msgstr "ustawianie klucza \"%s\"%s"
+
+#: src/sysctl.c:669
+#, c-format
+msgid "%s(%d): invalid syntax, continuing..."
+msgstr "%s(%d): błędna składnia, kontynuacja..."
+
+#: src/sysctl.c:761
+#, c-format
+msgid ""
+"GLOB_TILDE is not supported on your platform, the tilde in \"%s\" won't be "
+"expanded."
+msgstr ""
+"GLOB_TILDE nie jest obsługiwane na tej platformie, tylda w \"%s\" nie "
+"zostanie rozwinięta."
+
+#: src/sysctl.c:767
+msgid "glob failed"
+msgstr "glob nie powiódł się"
+
+#: src/sysctl.c:773
+#, c-format
+msgid "cannot open \"%s\""
+msgstr "nie można otworzyć \"%s\""
+
+#: src/sysctl.c:877 src/sysctl.c:884
+#, c-format
+msgid "* Applying %s ...\n"
+msgstr "* Ustawianie %s ...\n"
+
+#: src/sysctl.c:1050
+#, c-format
+msgid ""
+"no variables specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+"nie podano zmiennych\n"
+"Polecenie `%s --help' pozwoli uzyskać więcej informacji."
+
+#: src/sysctl.c:1054
+#, c-format
+msgid ""
+"options -N and -q cannot coexist\n"
+"Try `%s --help' for more information."
+msgstr ""
+"opcje -N i -q nie mogą wystąpić wspólnie\n"
+"Polecenie `%s --help' pozwoli uzyskać więcej informacji."
+
+#: src/tload.c:75 src/tload.c:77
+msgid "screen too small or too large"
+msgstr "ekran za mały lub za duży"
+
+#: src/tload.c:80
+msgid "screen too small"
+msgstr "ekran za mały"
+
+#: src/tload.c:96
+#, c-format
+msgid " %s [options] [tty]\n"
+msgstr " %s [opcje] [tty]\n"
+
+#: src/tload.c:98
+msgid " -d, --delay <secs> update delay in seconds\n"
+msgstr " -d, --delay <sek> opóźnienie uaktualnień w sekundach\n"
+
+#: src/tload.c:99
+msgid " -s, --scale <num> vertical scale\n"
+msgstr " -s, --scale <ile> skala pionowa\n"
+
+#: src/tload.c:137
+msgid "scale cannot be negative"
+msgstr "skala nie może być ujemna"
+
+#: src/tload.c:144 src/vmstat.c:1051
+msgid "too large delay value"
+msgstr "zbyt duża wartość opóźnienia"
+
+#: src/tload.c:159
+msgid "can not open tty"
+msgstr "nie można otworzyć tty"
+
+#: src/tload.c:182
+msgid "Load average file /proc/loadavg does not exist"
+msgstr "Plik średniego obciążenia /proc/loadavg nie istnieje"
+
+#: src/tload.c:185
+msgid "Unable to get load average"
+msgstr "Nie można odczytać średniego obciążenia"
+
+#: src/tload.c:227 src/tload.c:229
+msgid "writing to tty failed"
+msgstr "zapis na tty nie powiódł się"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The following line pairs contain only plain text and consist of:
+#. . 1) a field name/column header - mostly upper case
+#. . 2) the related description - both upper and lower case
+#. .
+#. . To avoid truncation on the main top display, each column header
+#. . is noted with its maximum size, while a few are 'variable' width.
+#. . Names for the latter should probably be 10 or fewer characters.
+#. .
+#. . Those fields shown with a '+' are also eligible for user resizing
+#. . using the 'X' command. That means the default width might produce
+#. . truncation but need not if widened (see the man page 'X' command).
+#. .
+#. . All headers are subject to a maximum of 8 on the Fields Management
+#. . screen where truncation is entirely acceptable.
+#. .
+#. . The associated descriptions are always limited to 20 characters,
+#. . and are used only on the Fields Management screen.
+#. .
+#. . In all cases, fewer characters are just fine.
+#. .
+#. Translation Hint: maximum 'PID' = 5
+#: src/top/top_nls.c:152
+msgid "PID"
+msgstr "PID"
+
+#: src/top/top_nls.c:153
+msgid "Process Id"
+msgstr "Id. procesu"
+
+#. Translation Hint: maximum 'PPID' = 5
+#: src/top/top_nls.c:155
+msgid "PPID"
+msgstr "PPID"
+
+#: src/top/top_nls.c:156
+msgid "Parent Process pid"
+msgstr "Id. procesu rodzica"
+
+#. Translation Hint: maximum 'UID' = 5 +
+#: src/top/top_nls.c:158
+msgid "UID"
+msgstr "UID"
+
+#: src/top/top_nls.c:159
+msgid "Effective User Id"
+msgstr "Id. użytkownika efektywnego"
+
+#. Translation Hint: maximum 'USER' = 8 +
+#: src/top/top_nls.c:161 src/w.c:799
+msgid "USER"
+msgstr "UŻYTK."
+
+#: src/top/top_nls.c:162
+msgid "Effective User Name"
+msgstr "Nazwa użytkownika efektywnego"
+
+#. Translation Hint: maximum 'RUID' = 5 +
+#: src/top/top_nls.c:164
+msgid "RUID"
+msgstr "RUID"
+
+#: src/top/top_nls.c:165
+msgid "Real User Id"
+msgstr "Id. użytkownika rzeczywistego"
+
+#. Translation Hint: maximum 'RUSER' = 8 +
+#: src/top/top_nls.c:167
+msgid "RUSER"
+msgstr "UŻYTK.R."
+
+#: src/top/top_nls.c:168
+msgid "Real User Name"
+msgstr "Nazwa użytkownika rzeczywistego"
+
+#. Translation Hint: maximum 'SUID' = 5 +
+#: src/top/top_nls.c:170
+msgid "SUID"
+msgstr "SUID"
+
+#: src/top/top_nls.c:171
+msgid "Saved User Id"
+msgstr "Id. użytkownika zachowanego"
+
+#. Translation Hint: maximum 'SUSER' = 8 +
+#: src/top/top_nls.c:173
+msgid "SUSER"
+msgstr "UŻYTK.Z."
+
+#: src/top/top_nls.c:174
+msgid "Saved User Name"
+msgstr "Nazwa użytkownika zachowanego"
+
+#. Translation Hint: maximum 'GID' = 5 +
+#: src/top/top_nls.c:176
+msgid "GID"
+msgstr "GID"
+
+#: src/top/top_nls.c:177
+msgid "Group Id"
+msgstr "Id. grupy"
+
+#. Translation Hint: maximum 'GROUP' = 8 +
+#: src/top/top_nls.c:179
+msgid "GROUP"
+msgstr "GRUPA"
+
+#: src/top/top_nls.c:180
+msgid "Group Name"
+msgstr "Nazwa grupy"
+
+#. Translation Hint: maximum 'PGRP' = 5
+#: src/top/top_nls.c:182
+msgid "PGRP"
+msgstr "PGRP"
+
+#: src/top/top_nls.c:183
+msgid "Process Group Id"
+msgstr "Id. grupy procesów"
+
+#. Translation Hint: maximum 'TTY' = 8 +
+#: src/top/top_nls.c:185
+msgid "TTY"
+msgstr "TTY"
+
+#: src/top/top_nls.c:186
+msgid "Controlling Tty"
+msgstr "Terminal sterujÄ…cy"
+
+#. Translation Hint: maximum 'TPGID' = 5
+#: src/top/top_nls.c:188
+msgid "TPGID"
+msgstr "TPGID"
+
+#: src/top/top_nls.c:189
+msgid "Tty Process Grp Id"
+msgstr "Id. grupy procesów terminala"
+
+#. Translation Hint: maximum 'SID' = 5
+#: src/top/top_nls.c:191
+msgid "SID"
+msgstr "SID"
+
+#: src/top/top_nls.c:192
+msgid "Session Id"
+msgstr "Id. sesji"
+
+#. Translation Hint: maximum 'PR' = 3
+#: src/top/top_nls.c:194
+msgid "PR"
+msgstr "PR"
+
+#: src/top/top_nls.c:195
+msgid "Priority"
+msgstr "Priorytet"
+
+#. Translation Hint: maximum 'NI' = 3
+#: src/top/top_nls.c:197
+msgid "NI"
+msgstr "NI"
+
+#: src/top/top_nls.c:198
+msgid "Nice Value"
+msgstr "Wartość nice"
+
+#. Translation Hint: maximum 'nTH' = 3
+#: src/top/top_nls.c:200
+msgid "nTH"
+msgstr "nWT"
+
+#: src/top/top_nls.c:201
+msgid "Number of Threads"
+msgstr "Liczba wątków"
+
+#. Translation Hint: maximum 'P' = 1
+#: src/top/top_nls.c:203
+msgid "P"
+msgstr "P"
+
+#: src/top/top_nls.c:204
+msgid "Last Used Cpu (SMP)"
+msgstr "Ostatnio używany CPU (SMP)"
+
+#. Translation Hint: maximum '%CPU' = 4
+#: src/top/top_nls.c:206
+#, c-format
+msgid "%CPU"
+msgstr "%CPU"
+
+#: src/top/top_nls.c:207
+msgid "CPU Usage"
+msgstr "Wykorzystanie CPU"
+
+#. Translation Hint: maximum '' = 6
+#: src/top/top_nls.c:209
+msgid "TIME"
+msgstr "CZAS"
+
+#: src/top/top_nls.c:210
+msgid "CPU Time"
+msgstr "Czas CPU"
+
+#. Translation Hint: maximum 'TIME+' = 9
+#: src/top/top_nls.c:212
+msgid "TIME+"
+msgstr "CZAS+"
+
+#: src/top/top_nls.c:213
+msgid "CPU Time, hundredths"
+msgstr "Czas CPU, setne sekundy"
+
+#. Translation Hint: maximum '%MEM' = 4
+#: src/top/top_nls.c:215
+msgid "%MEM"
+msgstr "%PAM"
+
+#: src/top/top_nls.c:216
+msgid "Memory Usage (RES)"
+msgstr "Wykorzystanie pamięci (RES)"
+
+#. Translation Hint: maximum 'VIRT' = 7
+#: src/top/top_nls.c:218
+msgid "VIRT"
+msgstr "WIRT"
+
+#: src/top/top_nls.c:219
+msgid "Virtual Image (KiB)"
+msgstr "Obraz wirtualny (KiB)"
+
+#. Translation Hint: maximum 'SWAP' = 6
+#: src/top/top_nls.c:221
+msgid "SWAP"
+msgstr "SWAP"
+
+#: src/top/top_nls.c:222
+msgid "Swapped Size (KiB)"
+msgstr "Obszar wymieniony (KiB)"
+
+#. Translation Hint: maximum 'RES' = 6
+#: src/top/top_nls.c:224
+msgid "RES"
+msgstr "REZ"
+
+#: src/top/top_nls.c:225
+msgid "Resident Size (KiB)"
+msgstr "Obszar rezydentny (KiB)"
+
+#. Translation Hint: maximum 'CODE' = 4
+#: src/top/top_nls.c:227
+msgid "CODE"
+msgstr "KOD"
+
+#: src/top/top_nls.c:228
+msgid "Code Size (KiB)"
+msgstr "Rozmiar kodu (KiB)"
+
+#. Translation Hint: maximum 'DATA' = 7
+#: src/top/top_nls.c:230
+msgid "DATA"
+msgstr "DANE"
+
+#: src/top/top_nls.c:231
+msgid "Data+Stack (KiB)"
+msgstr "Dane+stos (KiB)"
+
+#. Translation Hint: maximum 'SHR' = 6
+#: src/top/top_nls.c:233
+msgid "SHR"
+msgstr "WSP"
+
+#: src/top/top_nls.c:234
+msgid "Shared Memory (KiB)"
+msgstr "Pamięć współdzielona (KiB)"
+
+#. Translation Hint: maximum 'nMaj' = 4
+#: src/top/top_nls.c:236
+msgid "nMaj"
+msgstr "nMaj"
+
+#: src/top/top_nls.c:237
+msgid "Major Page Faults"
+msgstr "Twarde błędy braku strony"
+
+#. Translation Hint: maximum 'nMin' = 4
+#: src/top/top_nls.c:239
+msgid "nMin"
+msgstr "nMin"
+
+#: src/top/top_nls.c:240
+msgid "Minor Page Faults"
+msgstr "Miękkie błędy braku strony"
+
+#. Translation Hint: maximum 'nDRT' = 4
+#: src/top/top_nls.c:242
+msgid "nDRT"
+msgstr "nDRT"
+
+#: src/top/top_nls.c:243
+msgid "Dirty Pages Count"
+msgstr "Liczba stron brudnych"
+
+#. Translation Hint: maximum 'S' = 1
+#: src/top/top_nls.c:245
+msgid "S"
+msgstr "S"
+
+#: src/top/top_nls.c:246
+msgid "Process Status"
+msgstr "Stan procesu"
+
+#. Translation Hint: maximum 'COMMAND' = variable
+#: src/top/top_nls.c:248
+msgid "COMMAND"
+msgstr "KOMENDA"
+
+#: src/top/top_nls.c:249
+msgid "Command Name/Line"
+msgstr "Nazwa/linia polecenia"
+
+#. Translation Hint: maximum 'WCHAN' = 10 +
+#: src/top/top_nls.c:251
+msgid "WCHAN"
+msgstr "WCHAN"
+
+#: src/top/top_nls.c:252
+msgid "Sleeping in Function"
+msgstr "Funkcja oczekujÄ…ca"
+
+#. Translation Hint: maximum 'Flags' = 8
+#: src/top/top_nls.c:254
+msgid "Flags"
+msgstr "Flagi"
+
+#: src/top/top_nls.c:255
+msgid "Task Flags <sched.h>"
+msgstr "Flagi zadania (<sched.h>)"
+
+#. Translation Hint: maximum 'CGROUPS' = variable
+#: src/top/top_nls.c:257
+msgid "CGROUPS"
+msgstr "GRUPY S"
+
+#: src/top/top_nls.c:258
+msgid "Control Groups"
+msgstr "Grupy sterujÄ…ce"
+
+#. Translation Hint: maximum 'SUPGIDS' = variable
+#: src/top/top_nls.c:260
+msgid "SUPGIDS"
+msgstr "DOD.GID"
+
+#: src/top/top_nls.c:261
+msgid "Supp Groups IDs"
+msgstr "Id. grup dodatkowych"
+
+#. Translation Hint: maximum 'SUPGRPS' = variable
+#: src/top/top_nls.c:263
+msgid "SUPGRPS"
+msgstr "DOD.GR."
+
+#: src/top/top_nls.c:264
+msgid "Supp Groups Names"
+msgstr "Nazwy grup dodatkowych"
+
+#. Translation Hint: maximum 'TGID' = 5
+#: src/top/top_nls.c:266
+msgid "TGID"
+msgstr "TGID"
+
+#: src/top/top_nls.c:267
+msgid "Thread Group Id"
+msgstr "Id. grupy wątków"
+
+#. Translation Hint: maximum 'OOMa' = 5
+#: src/top/top_nls.c:269
+msgid "OOMa"
+msgstr "OOMa"
+
+#: src/top/top_nls.c:270
+msgid "OOMEM Adjustment"
+msgstr "Korekta OOMEM"
+
+#. Translation Hint: maximum 'OOMs' = 4
+#: src/top/top_nls.c:272
+msgid "OOMs"
+msgstr "OOMs"
+
+#: src/top/top_nls.c:273
+msgid "OOMEM Score current"
+msgstr "Bieżąca punktacja OOMEM"
+
+#. Translation Hint: maximum 'ENVIRON' = variable
+#: src/top/top_nls.c:275
+msgid "ENVIRON"
+msgstr "ZMIENNE"
+
+#. Translation Hint: the abbreviation 'vars' below is shorthand for
+#. 'variables'
+#: src/top/top_nls.c:278
+msgid "Environment vars"
+msgstr "Zmienne środowiskowe (ENV)"
+
+#. Translation Hint: maximum 'vMj' = 3
+#: src/top/top_nls.c:280
+msgid "vMj"
+msgstr "vMj"
+
+#: src/top/top_nls.c:281
+msgid "Major Faults delta"
+msgstr "Odstęp między twardymi błędami braku strony"
+
+#. Translation Hint: maximum 'vMn' = 3
+#: src/top/top_nls.c:283
+msgid "vMn"
+msgstr "vMn"
+
+#: src/top/top_nls.c:284
+msgid "Minor Faults delta"
+msgstr "Odstęp między miękkimi błędami braku strony"
+
+#. Translation Hint: maximum 'USED' = 6
+#: src/top/top_nls.c:286
+msgid "USED"
+msgstr "UÅ»."
+
+#: src/top/top_nls.c:287
+msgid "Res+Swap Size (KiB)"
+msgstr "Rozmiar rezydentny+swap (KiB)"
+
+#. Translation Hint: maximum 'nsIPC' = 10 +
+#: src/top/top_nls.c:289
+msgid "nsIPC"
+msgstr "nsIPC"
+
+#: src/top/top_nls.c:290
+msgid "IPC namespace Inode"
+msgstr "I-węzeł przestrzeni nazw IPC"
+
+#. Translation Hint: maximum 'nsMNT' = 10 +
+#: src/top/top_nls.c:292
+msgid "nsMNT"
+msgstr "nsMNT"
+
+#: src/top/top_nls.c:293
+msgid "MNT namespace Inode"
+msgstr "I-węzeł przestrzeni nazw MNT"
+
+#. Translation Hint: maximum 'nsNET' = 10 +
+#: src/top/top_nls.c:295
+msgid "nsNET"
+msgstr "nsNET"
+
+#: src/top/top_nls.c:296
+msgid "NET namespace Inode"
+msgstr "I-węzeł przestrzeni nazw NET"
+
+#. Translation Hint: maximum 'nsPID' = 10 +
+#: src/top/top_nls.c:298
+msgid "nsPID"
+msgstr "nsPID"
+
+#: src/top/top_nls.c:299
+msgid "PID namespace Inode"
+msgstr "I-węzeł przestrzeni nazw PID"
+
+#. Translation Hint: maximum 'nsUSER' = 10 +
+#: src/top/top_nls.c:301
+msgid "nsUSER"
+msgstr "nsUSER"
+
+#: src/top/top_nls.c:302
+msgid "USER namespace Inode"
+msgstr "I-węzeł przestrzeni nazw użytkowników (USER)"
+
+#. Translation Hint: maximum 'nsUTS' = 10 +
+#: src/top/top_nls.c:304
+msgid "nsUTS"
+msgstr "nsUTS"
+
+#: src/top/top_nls.c:305
+msgid "UTS namespace Inode"
+msgstr "I-węzeł przestrzeni nazw UTS"
+
+#. Translation Hint: maximum 'LXC' = 8 +
+#: src/top/top_nls.c:307
+msgid "LXC"
+msgstr "LXC"
+
+#: src/top/top_nls.c:308
+msgid "LXC container name"
+msgstr "Nazwa kontenera LXC"
+
+#. Translation Hint: maximum 'RSan' = 6
+#: src/top/top_nls.c:310
+msgid "RSan"
+msgstr "RZan"
+
+#: src/top/top_nls.c:311
+msgid "RES Anonymous (KiB)"
+msgstr "REZ anonimowe (KiB)"
+
+#. Translation Hint: maximum 'RSfd' = 6
+#: src/top/top_nls.c:313
+msgid "RSfd"
+msgstr "RZpl"
+
+#: src/top/top_nls.c:314
+msgid "RES File-based (KiB)"
+msgstr "REZ oparte o pliki (KiB)"
+
+#. Translation Hint: maximum 'RSlk' = 6
+#: src/top/top_nls.c:316
+msgid "RSlk"
+msgstr "RZbl"
+
+#: src/top/top_nls.c:317
+msgid "RES Locked (KiB)"
+msgstr "REZ zablokowane (KiB)"
+
+#. Translation Hint: maximum 'RSsh' = 6
+#: src/top/top_nls.c:319
+msgid "RSsh"
+msgstr "RZws"
+
+#: src/top/top_nls.c:320
+msgid "RES Shared (KiB)"
+msgstr "REZ współdzielone (KiB)"
+
+#. Translation Hint: maximum 'CGNAME' = variable
+#: src/top/top_nls.c:322
+msgid "CGNAME"
+msgstr "NAZWACG"
+
+#: src/top/top_nls.c:323
+msgid "Control Group name"
+msgstr "Nazwa grupy sterujÄ…cej (CG)"
+
+#. Translation Hint: maximum 'NU' = 2
+#: src/top/top_nls.c:325
+msgid "NU"
+msgstr "NU"
+
+#: src/top/top_nls.c:326
+msgid "Last Used NUMA node"
+msgstr "Ostatnio używany węzeł NUMA"
+
+#. Translation Hint: maximum 'LOGID' = 5 +
+#: src/top/top_nls.c:328
+msgid "LOGID"
+msgstr "LOGID"
+
+#: src/top/top_nls.c:329
+msgid "Login User Id"
+msgstr "Id. użytkownika zalogowanego"
+
+#. Translation Hint: maximum 'EXE' = variable
+#: src/top/top_nls.c:331
+msgid "EXE"
+msgstr "EXE"
+
+#: src/top/top_nls.c:332
+msgid "Executable Path"
+msgstr "Ścieżka programu"
+
+#: src/top/top_nls.c:338
+msgid "Res Mem (smaps), KiB"
+msgstr "Pam.rez. (smaps), KiB"
+
+#. Translation Hint: maximum 'PSS' = 6
+#: src/top/top_nls.c:340
+msgid "PSS"
+msgstr "PSS"
+
+#: src/top/top_nls.c:341
+msgid "Proportion RSS, KiB"
+msgstr "RSS proporcji, KiB"
+
+#. Translation Hint: maximum 'PSan' = 6
+#: src/top/top_nls.c:343
+msgid "PSan"
+msgstr "PSan"
+
+#: src/top/top_nls.c:344
+msgid "Proportion Anon, KiB"
+msgstr "Anon. proporcji, KiB"
+
+#. Translation Hint: maximum 'PSfd' = 6
+#: src/top/top_nls.c:346
+msgid "PSfd"
+msgstr "PSfd"
+
+#: src/top/top_nls.c:347
+msgid "Proportion File, KiB"
+msgstr "Plik proporcji, KiB"
+
+#. Translation Hint: maximum 'PSsh' = 6
+#: src/top/top_nls.c:349
+msgid "PSsh"
+msgstr "PSsh"
+
+#: src/top/top_nls.c:350
+msgid "Proportion Shrd, KiB"
+msgstr "Wsp. proporcji, KiB"
+
+#. Translation Hint: maximum 'USS' = 6
+#: src/top/top_nls.c:352
+msgid "USS"
+msgstr "USS"
+
+#: src/top/top_nls.c:353
+msgid "Unique RSS, KiB"
+msgstr "Unikatowe RSS, KiB"
+
+#. Translation Hint: maximum 'ioR' = 6
+#: src/top/top_nls.c:355
+msgid "ioR"
+msgstr "ioR"
+
+#: src/top/top_nls.c:356
+msgid "I/O Bytes Read"
+msgstr "Odczytanych bajtów we/wy"
+
+#. Translation Hint: maximum 'ioRop' = 5
+#: src/top/top_nls.c:358
+msgid "ioRop"
+msgstr "ioRop"
+
+#: src/top/top_nls.c:359
+msgid "I/O Read Operations"
+msgstr "Operacji we/wy odczytu"
+
+#. Translation Hint: maximum 'ioW' = 6
+#: src/top/top_nls.c:361
+msgid "ioW"
+msgstr "ioW"
+
+#: src/top/top_nls.c:362
+msgid "I/O Bytes Written"
+msgstr "Zapisanych bajtów we/wy"
+
+#. Translation Hint: maximum 'ioWop' = 5
+#: src/top/top_nls.c:364
+msgid "ioWop"
+msgstr "ioWop"
+
+#: src/top/top_nls.c:365
+msgid "I/O Write Operations"
+msgstr "Operacji we/wy zapisu"
+
+#. Translation Hint: maximum 'AGID' = 5
+#: src/top/top_nls.c:367
+msgid "AGID"
+msgstr "AGID"
+
+#: src/top/top_nls.c:368
+msgid "Autogroup Identifier"
+msgstr "Identyfikator grupy aut."
+
+#. Translation Hint: maximum 'AGNI' = 4
+#: src/top/top_nls.c:370
+msgid "AGNI"
+msgstr "AGNI"
+
+#: src/top/top_nls.c:371
+msgid "Autogroup Nice Value"
+msgstr "Wartość nice grupy aut."
+
+#. Translation Hint: maximum 'STARTED' = 7
+#: src/top/top_nls.c:373
+msgid "STARTED"
+msgstr "URUCH."
+
+#: src/top/top_nls.c:374
+msgid "Start Time from boot"
+msgstr "Czas startu od rozruchu"
+
+#. Translation Hint: maximum 'ELAPSED' = 7
+#: src/top/top_nls.c:376
+msgid "ELAPSED"
+msgstr "MINIONY"
+
+#: src/top/top_nls.c:377
+msgid "Elapsed Running Time"
+msgstr "Miniony czas działania"
+
+#. Translation Hint: maximum '%CUU' = 6
+#: src/top/top_nls.c:379
+#, c-format
+msgid "%CUU"
+msgstr "%CUU"
+
+#: src/top/top_nls.c:380
+msgid "CPU Utilization"
+msgstr "Wykorzystanie CPU"
+
+#. Translation Hint: maximum '%CUC' = 7
+#: src/top/top_nls.c:382
+#, c-format
+msgid "%CUC"
+msgstr "%CUC"
+
+#: src/top/top_nls.c:383
+msgid "Utilization + child"
+msgstr "Wykorzystanie + dzieci"
+
+#. Translation Hint: maximum 'nsCGROUP' = 10 +
+#: src/top/top_nls.c:385
+msgid "nsCGROUP"
+msgstr "nsCGROUP"
+
+#: src/top/top_nls.c:386
+msgid "CGRP namespace Inode"
+msgstr "I-węzeł przestrzeni nazw CGRP"
+
+#. Translation Hint: maximum 'nsTIME' = 10 +
+#: src/top/top_nls.c:388
+msgid "nsTIME"
+msgstr "nsTIME"
+
+#: src/top/top_nls.c:389
+msgid "TIME namespace Inode"
+msgstr "I-węzeł przestrzeni nazw TIME"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . This group of lines contains both plain text and c-format strings.
+#. .
+#. . Some strings reflect switches used to affect the running program
+#. . and should not be translated without also making corresponding
+#. . c-code logic changes.
+#. .
+#: src/top/top_nls.c:409
+#, c-format
+msgid ""
+"\tsignal %d (%s) was caught by %s, please\n"
+"\tsend bug reports to <procps@freelists.org>\n"
+msgstr ""
+"\tprogram %3$s otrzymał sygnał %1$d (%2$s), proszę\n"
+"\twysyłać raporty błędów na adres <procps@freelists.org>\n"
+
+#: src/top/top_nls.c:439
+#, c-format
+msgid "bad delay interval '%s'"
+msgstr "błędny okres opóźnienia '%s'"
+
+#: src/top/top_nls.c:440
+#, c-format
+msgid "bad iterations argument '%s'"
+msgstr "błędna liczba iteracji '%s'"
+
+#: src/top/top_nls.c:441
+#, c-format
+msgid "pid limit (%d) exceeded"
+msgstr "przekroczony limit pid (%d)"
+
+#: src/top/top_nls.c:442
+#, c-format
+msgid "bad pid '%s'"
+msgstr "błędny pid '%s'"
+
+#: src/top/top_nls.c:443
+#, c-format
+msgid "-%c argument missing"
+msgstr "brak argumentu -%c"
+
+#: src/top/top_nls.c:444
+#, c-format
+msgid "bad width arg '%s'"
+msgstr "błędna szerokość '%s'"
+
+#: src/top/top_nls.c:445
+#, c-format
+msgid "unknown option '%s'"
+msgstr "nieznana opcja '%s'"
+
+#: src/top/top_nls.c:446
+msgid "-d disallowed in \"secure\" mode"
+msgstr "-d nie jest dozwolone w trybie \"bezpiecznym\""
+
+#: src/top/top_nls.c:447
+msgid "-d requires positive argument"
+msgstr "-d wymaga argumentu będącego liczbą dodatnią"
+
+#: src/top/top_nls.c:448
+msgid "On"
+msgstr "Tak"
+
+#: src/top/top_nls.c:449
+msgid "Off"
+msgstr "Nie"
+
+#: src/top/top_nls.c:450
+#, c-format
+msgid "%s from %s"
+msgstr "%s z pakietu %s"
+
+#: src/top/top_nls.c:451
+#, c-format
+msgid "Forest mode %s"
+msgstr "Tryb lasu %s"
+
+#: src/top/top_nls.c:452
+msgid "failed tty get"
+msgstr "nie udało się odczytać ustawienia terminala"
+
+#: src/top/top_nls.c:453
+#, c-format
+msgid "failed tty set: %s"
+msgstr "nie udało się ustawić terminala: %s"
+
+#: src/top/top_nls.c:454
+msgid "Choose field group (1 - 4)"
+msgstr "Wybór grupy pól (1 - 4)"
+
+#: src/top/top_nls.c:455
+msgid "Command disabled, 'A' mode required"
+msgstr "Polecenie wyłączone, wymagany tryb 'A'"
+
+#: src/top/top_nls.c:456
+#, c-format
+msgid "Command disabled, activate %s with '-' or '_'"
+msgstr "Polecenie wyłączone, można włączyć %s klawiszem '-' lub '_'"
+
+#: src/top/top_nls.c:457
+msgid "No colors to map!"
+msgstr "Brak kolorów do odwzorowania!"
+
+#: src/top/top_nls.c:458
+#, c-format
+msgid "Failed '%s' open: %s"
+msgstr "Nie udało się otworzyć '%s': %s"
+
+#: src/top/top_nls.c:459
+#, c-format
+msgid "Wrote configuration to '%s'"
+msgstr "Zapisano konfiguracjÄ™ do '%s'"
+
+#: src/top/top_nls.c:460
+#, c-format
+msgid "Change delay from %.1f to"
+msgstr "Zmiana opóźnienia z %.1f na"
+
+#: src/top/top_nls.c:461
+#, c-format
+msgid "Show threads %s"
+msgstr "Wyświetlanie wątków %s"
+
+#: src/top/top_nls.c:462
+#, c-format
+msgid "Irix mode %s"
+msgstr "Tryb Irix %s"
+
+#: src/top/top_nls.c:463
+#, c-format
+msgid "PID to signal/kill [default pid = %d]"
+msgstr "PID do zabicia/wysłania sygnału [domyślny pid = %d]"
+
+#: src/top/top_nls.c:464
+#, c-format
+msgid "Send pid %d signal [%d/sigterm]"
+msgstr "Wysłanie do pidu %d sygnału [%d/sigterm]"
+
+#: src/top/top_nls.c:465
+#, c-format
+msgid "Failed signal pid '%d' with '%d': %s"
+msgstr "Nie udało się wysłać do pidu '%d' sygnału '%d': %s"
+
+#: src/top/top_nls.c:466
+msgid "Invalid signal"
+msgstr "Błędny sygnał"
+
+#: src/top/top_nls.c:467
+#, c-format
+msgid "PID to renice [default pid = %d]"
+msgstr "PID do zmiany nice [domyślny pid = %d]"
+
+#: src/top/top_nls.c:468
+#, c-format
+msgid "Renice PID %d to value"
+msgstr "Zmiana nice PID-u %d na wartość"
+
+#: src/top/top_nls.c:469
+#, c-format
+msgid "Failed renice of PID %d to %d: %s"
+msgstr "Nie udało się zmienić nice PID-u %d na %d: %s"
+
+#: src/top/top_nls.c:470
+#, c-format
+msgid "Rename window '%s' to (1-3 chars)"
+msgstr "Zmiana nazwy okna '%s' na (1-3 znaki)"
+
+#: src/top/top_nls.c:471
+#, c-format
+msgid "Cumulative time %s"
+msgstr "Czas przyrostowy %s"
+
+#: src/top/top_nls.c:472
+#, c-format
+msgid "Maximum tasks = %d, change to (0 is unlimited)"
+msgstr "Maksymalna liczba zadań = %d, zmienić na (0=bez ograniczeń)"
+
+#: src/top/top_nls.c:473
+msgid "Invalid maximum"
+msgstr "Błędne maksimum"
+
+#: src/top/top_nls.c:474
+msgid "Which user (blank for all)"
+msgstr "Jaki użytkownik (puste - wszyscy)"
+
+#: src/top/top_nls.c:475
+msgid "Unknown command - try 'h' for help"
+msgstr "Nieznane polecenie - 'h' wyświetli pomoc"
+
+#: src/top/top_nls.c:476
+#, c-format
+msgid "scroll coordinates: y = %d/%d (tasks), x = %d/%d (fields)"
+msgstr "współrzędne przewinięcia: y = %d/%d (zadania), x = %d/%d (pola)"
+
+#: src/top/top_nls.c:477
+msgid "failed memory allocate"
+msgstr "nie udało się przydzielić pamięci"
+
+#: src/top/top_nls.c:478
+msgid "failed memory re-allocate"
+msgstr "nie udało się zmienić przydziału pamięci"
+
+#: src/top/top_nls.c:479
+msgid "Unacceptable floating point"
+msgstr "Niedozwolona liczba zmiennoprzecinkowa"
+
+#: src/top/top_nls.c:480
+msgid "Invalid user"
+msgstr "Błędny użytkownik"
+
+#: src/top/top_nls.c:481
+msgid "forest view"
+msgstr "widok lasu"
+
+#: src/top/top_nls.c:482
+msgid "failed pid maximum size test"
+msgstr "nie udało się sprawdzić maksymalnego rozmiaru PID-a"
+
+#: src/top/top_nls.c:483
+msgid "failed number of cpus test"
+msgstr "nie udało się sprawdzić liczby procesorów"
+
+#: src/top/top_nls.c:484
+#, c-format
+msgid "incompatible rcfile, you should delete '%s'"
+msgstr "niezgodny plik rc, należy usunąć '%s'"
+
+#: src/top/top_nls.c:485
+#, c-format
+msgid "window entry #%d corrupt, please delete '%s'"
+msgstr "wpis okna #%d uszkodzony, proszę usunąć '%s'"
+
+#: src/top/top_nls.c:486
+msgid "Unavailable in secure mode"
+msgstr "Niedostępne w trybie bezpiecznym"
+
+#: src/top/top_nls.c:487
+msgid "Only 1 cpu detected"
+msgstr "Wykryto tylko 1 procesor"
+
+#: src/top/top_nls.c:488
+msgid "Unacceptable integer"
+msgstr "Niedozwolona liczba całkowita"
+
+#: src/top/top_nls.c:489
+msgid "conflicting process selections (U/p/u)"
+msgstr "konflikt wyboru procesów (U/p/u)"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . kibibytes (1024 bytes)
+#: src/top/top_nls.c:492
+msgid "KiB"
+msgstr "KiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . mebibytes (1,048,576 bytes)
+#: src/top/top_nls.c:495
+msgid "MiB"
+msgstr "MiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . gibibytes (1,073,741,824 bytes)
+#: src/top/top_nls.c:498
+msgid "GiB"
+msgstr "GiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . tebibytes (1,099,511,627,776 bytes)
+#: src/top/top_nls.c:501
+msgid "TiB"
+msgstr "TiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . pebibytes (1,024 tebibytes)
+#: src/top/top_nls.c:504
+msgid "PiB"
+msgstr "PiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . exbibytes (1,024 pebibytes)
+#: src/top/top_nls.c:507
+msgid "EiB"
+msgstr "EiB"
+
+#: src/top/top_nls.c:508
+msgid "Threads"
+msgstr "WÄ…tki"
+
+#: src/top/top_nls.c:509
+msgid "Tasks"
+msgstr "Zadania"
+
+#. Translation Hint: The following "word" is meant to represent either a single
+#. . cpu or all of the processors in a multi-processor computer
+#. . (should be exactly 6 characters, excluding leading % & colon)
+#: src/top/top_nls.c:513
+#, c-format
+msgid "%Cpu(s):"
+msgstr "%CPU: "
+
+#. Translation Hint: The following "word" is meant to represent a single processor
+#. and 'the Cp' prefix will be combined with a core id: 'p', 'e' or 'u'
+#. . (if 'Cp' is translated, it must be exactly 2 characters long)
+#: src/top/top_nls.c:517
+#, c-format
+msgid "%%Cp%c%-3d:"
+msgstr "%%Cp%c%-3d:"
+
+#. Translation Hint: The following word "another" must have 1 trailing space
+#: src/top/top_nls.c:519
+msgid "another "
+msgstr "kolejnego "
+
+#: src/top/top_nls.c:520
+msgid "Locate next inactive, use \"L\""
+msgstr "Odnalezienie następnego nieaktywnego, klawisz \"L\""
+
+#: src/top/top_nls.c:521
+msgid "Locate string"
+msgstr "Odnalezienie łańcucha"
+
+#: src/top/top_nls.c:522
+#, c-format
+msgid "%s\"%s\" not found"
+msgstr "nie znaleziono %s\"%s\""
+
+#: src/top/top_nls.c:523
+#, c-format
+msgid "width incr is %d, change to (0 default, -1 auto)"
+msgstr "zw. szerokości %d, zmiana na (0=domyślne, -1=auto)"
+
+#: src/top/top_nls.c:524
+msgid "rcfile has inspect/other-filter error(s), save anyway?"
+msgstr "plik rc ma błędne wpisy inspect/other-filter, zapisać mimo to?"
+
+#: src/top/top_nls.c:525
+#, c-format
+msgid "unrecognized field name '%s'"
+msgstr "nierozpoznana nazwa pola '%s'"
+
+#: src/top/top_nls.c:526
+msgid "even using field names only, window is now too small"
+msgstr "nawet przy użyciu tylko nazw pól, okno jest teraz za małe"
+
+#: src/top/top_nls.c:527
+msgid "Open Files"
+msgstr "Otwarte pliki"
+
+#: src/top/top_nls.c:528
+msgid "NUMA Info"
+msgstr "Informacje NUMA"
+
+#: src/top/top_nls.c:529
+msgid "Log"
+msgstr "Log"
+
+#: src/top/top_nls.c:530
+msgid ""
+"the '=' key will eventually show the actual file read or command(s) "
+"executed ..."
+msgstr "klawisz '=' może pokazać czytany plik lub wykonywane polecenia..."
+
+#: src/top/top_nls.c:531
+msgid "demo"
+msgstr "demo"
+
+#: src/top/top_nls.c:532
+#, c-format
+msgid ""
+"This is simulated output representing the contents of some file or the "
+"output\n"
+"from some command. Exactly which commands and/or files are solely up to "
+"you.\n"
+"\n"
+"Although this text is for information purposes only, it can still be "
+"scrolled\n"
+"and searched like real output will be. You are encouraged to experiment "
+"with\n"
+"those features as explained in the prologue above.\n"
+"\n"
+"To enable real Inspect functionality, entries must be added to the end of "
+"the\n"
+"top personal personal configuration file. You could use your favorite "
+"editor\n"
+"to accomplish this, taking care not to disturb existing entries.\n"
+"\n"
+"Another way to add entries is illustrated below, but it risks overwriting "
+"the\n"
+"rcfile. Redirected echoes must not replace (>) but append (>>) to that "
+"file.\n"
+"\n"
+" /bin/echo -e \"pipe\\tOpen Files\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+" /bin/echo -e \"file\\tNUMA Info\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+" /bin/echo -e \"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr\" >> ~/."
+"toprc\n"
+"\n"
+"If you don't know the location or name of the top rcfile, use the 'W' "
+"command\n"
+"and note those details. After backing up the current rcfile, try issuing "
+"the\n"
+"above echoes exactly as shown, replacing '.toprc' as appropriate. The "
+"safest\n"
+"approach would be to use copy then paste to avoid any typing mistakes.\n"
+"\n"
+"Finally, restart top to reveal what actual Inspect entries combined with "
+"this\n"
+"new command can offer. The possibilities are endless, especially "
+"considering\n"
+"that 'pipe' type entries can include shell scripts too!\n"
+"\n"
+"For additional important information, please consult the top(1) man "
+"document.\n"
+"Then, enhance top with your very own customized 'file' and/or 'pipe' "
+"entries.\n"
+"\n"
+"Enjoy!\n"
+msgstr ""
+"Oto symulowane wyjście reprezentujące zawartość jakiegoś pliku lub wyjścia\n"
+"z jakiegoś polecenia. Które to polecenia i/lub pliki, zależy od "
+"użytkownika.\n"
+"\n"
+"Mimo że ten tekst jest tylko informacyjny, może też być przewijany\n"
+"i przeszukiwany, tak jak prawdziwe wyjście. Można eksperymentować z tymi\n"
+"funkcjami zgodnie z wyjaśnieniami w powyższym wstępie.\n"
+"\n"
+"Aby włączyć właściwą funkcję Inspect, trzeba dodać odpowiednie wpisy na "
+"końcu\n"
+"osobistego pliku konfiguracyjnego topa. Można w tym celu użyć ulubionego\n"
+"edytora, uważając, aby nie uszkodzić istniejących wpisów.\n"
+"\n"
+"Inny sposób dodania wpisów jest pokazany poniżej, ale wiąże się z ryzykiem\n"
+"nadpisania pliku rc. Przekierowane polecenia echo muszą dopisywać do pliku\n"
+"(>>), a nie zastępować go (>).\n"
+"\n"
+" /bin/echo -e \"pipe\\tOtwarte pliki\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+" /bin/echo -e \"file\\tInformacje NUMA\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+" /bin/echo -e \"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr\" >> ~/."
+"toprc\n"
+"\n"
+"Jeśli lokalizacja lub nazwa pliku rc topa nie jest znana, można je "
+"sprawdzić\n"
+"poleceniem 'W'. Po wykonaniu kopii bieżącego pliku rc proszę spróbować\n"
+"wykonać dokładnie powyższe polecenia, zastępując odpowiednio \".toprc\".\n"
+"Najbezpieczniejszy sposób to użycie funkcji kopiuj-wklej, aby wyeliminować\n"
+"błędy przepisywania.\n"
+"\n"
+"Na końcu należy zrestartować topa, aby dodane wpisy zostały uwzględnione.\n"
+"Możliwości są nieskończone - zwłaszcza, że wpisy typu \"pipe\" mogą\n"
+"wykorzystywać także skrypty powłoki!\n"
+"\n"
+"Dodatkowe ważne informacje można znaleźć w dokumencie man top(1). Następnie\n"
+"można rozszerzać topa o własne, spersonalizowane wpisy \"file\" i \"pipe\".\n"
+"\n"
+"Miłej zabawy!\n"
+
+#: src/top/top_nls.c:564
+msgid "to enable 'Y' press <Enter> then type 'W' and restart top"
+msgstr ""
+"aby włączyć 'Y', należy wcisnąć <Enter>, następnie 'W' i zrestartować topa"
+
+#: src/top/top_nls.c:565
+msgid "to enable 'Y' please consult the top man page (press Enter)"
+msgstr ""
+"aby włączyć 'Y', należy przeczytać stronę man programu top (teraz wcisnąć "
+"Enter)"
+
+#: src/top/top_nls.c:566
+#, c-format
+msgid "Selection failed with: %s\n"
+msgstr "Wybór nie powiódł się, błąd: %s\n"
+
+#: src/top/top_nls.c:567
+#, c-format
+msgid "unable to inspect, pid %d not found"
+msgstr "nie można zbadać, nie znaleziono pidu %d"
+
+#: src/top/top_nls.c:568
+#, c-format
+msgid "inspect at PID [default pid = %d]"
+msgstr "podgląd PID-u [domyślny = %d]"
+
+#: src/top/top_nls.c:569
+#, c-format
+msgid "%s: %*d-%-*d lines, %*d-%*d columns, %lu bytes read"
+msgstr "%s: odczytano linie: %*d-%-*d, kolumny %*d-%*d, bajtów: %lu"
+
+#: src/top/top_nls.c:570
+msgid "patience please, working ..."
+msgstr "proszę czekać, przetwarzanie..."
+
+#: src/top/top_nls.c:571
+msgid "working, use Ctrl-C to end ..."
+msgstr "przetwarzanie, można przerwać Ctrl-C..."
+
+#. Translation Hint: Below are 2 abbreviations which can be as long as needed:
+#. . FLD = FIELD, VAL = VALUE
+#: src/top/top_nls.c:574
+#, c-format
+msgid "add filter #%d (%s) as: [!]FLD?VAL"
+msgstr "dodanie filtra #%d (%s) jako: [!]POLE?WARTOŚĆ"
+
+#: src/top/top_nls.c:575
+msgid "ignoring case"
+msgstr "ignorowanie wielkości liter"
+
+#: src/top/top_nls.c:576
+msgid "case sensitive"
+msgstr "rozróżnianie wielkości liter"
+
+#: src/top/top_nls.c:577
+msgid "duplicate filter was ignored"
+msgstr "zignorowano powtórzony filtr"
+
+#: src/top/top_nls.c:578
+#, c-format
+msgid "'%s' filter delimiter is missing"
+msgstr "brak ogranicznika filtra '%s'"
+
+#: src/top/top_nls.c:579
+#, c-format
+msgid "'%s' filter value is missing"
+msgstr "brak wartości filtra '%s'"
+
+#: src/top/top_nls.c:580
+msgid "include"
+msgstr "dodanie"
+
+#: src/top/top_nls.c:581
+msgid "exclude"
+msgstr "wykluczenie"
+
+#: src/top/top_nls.c:582
+#, c-format
+msgid "<Enter> to resume, filters: %s"
+msgstr "<Enter> wznawia, filtry: %s"
+
+#: src/top/top_nls.c:583
+msgid "none"
+msgstr "brak"
+
+#. Translation Hint: The following word 'Node' should be exactly
+#. 4 characters, excluding leading %%, fmt chars & colon)
+#: src/top/top_nls.c:586
+#, c-format
+msgid "%%Node%-2d:"
+msgstr "%%Węz.%-2d:"
+
+#: src/top/top_nls.c:587
+#, c-format
+msgid "expand which numa node (0-%d)"
+msgstr "który węzeł numa rozwinąć (0-%d)"
+
+#: src/top/top_nls.c:588
+msgid "invalid numa node"
+msgstr "błędny węzeł numa"
+
+#: src/top/top_nls.c:589
+msgid "sorry, NUMA extensions unavailable"
+msgstr "niestety rozszerzenia NUMA nie są dostępne"
+
+#. Translation Hint: 'Mem ' is an abbreviation for physical memory/ram
+#. . 'Swap' represents the linux swap file --
+#. . please make both translations exactly 4 characters,
+#. . padding with extra spaces as necessary
+#: src/top/top_nls.c:594
+msgid "Mem "
+msgstr "RAM "
+
+#: src/top/top_nls.c:595
+msgid "Swap"
+msgstr "Swap"
+
+#: src/top/top_nls.c:596
+#, c-format
+msgid "library failed memory statistics, at %d: %s"
+msgstr "niepowodzenie biblioteki przy statystykach pamięci, przy %d: %s"
+
+#: src/top/top_nls.c:597
+#, c-format
+msgid "library failed cpu statistics, at %d: %s"
+msgstr "niepowodzenie biblioteki przy statystykach CPU, przy %d: %s"
+
+#: src/top/top_nls.c:598
+#, c-format
+msgid "library failed pids statistics, at %d: %s"
+msgstr "niepowodzenie biblioteki przy statystykach pidów, przy %d: %s"
+
+#: src/top/top_nls.c:599
+#, c-format
+msgid "bad memory scaling arg '%s'"
+msgstr "błędny argument skalowania pamięci '%s'"
+
+#: src/top/top_nls.c:600
+#, c-format
+msgid "PID to collapse/expand [default pid = %d]"
+msgstr "PID do zwinięcia/rozwinięcia [domyślny pid = %d]"
+
+#: src/top/top_nls.c:601
+msgid "wrong mode, command inactive"
+msgstr "niewłaściwy tryb, polecenie nieaktywne"
+
+#: src/top/top_nls.c:602
+msgid "saving prevents older top from reading, save anyway?"
+msgstr "zapisanie nie pozwoli starszemu topowi odczytać, zapisać mimo to?"
+
+#: src/top/top_nls.c:603
+#, c-format
+msgid "failed sem_init() at %d: %s"
+msgstr "sem_init() nie powiodło się przy %d: %s"
+
+#: src/top/top_nls.c:604
+#, c-format
+msgid "failed pthread_create() at %d: %s"
+msgstr "pthread_create() nie powiodło się przy %d: %s"
+
+#: src/top/top_nls.c:605
+msgid "sorry, restricted namespace with reduced functionality"
+msgstr "niestety, ograniczona przestrzeń nazw ze zmniejszoną funkcjonalnością"
+
+#: src/top/top_nls.c:606
+#, c-format
+msgid "set pid %d AGNI value to"
+msgstr "ustawienie wartości AGNI pidu %d na"
+
+#: src/top/top_nls.c:607
+msgid "valid AGNI range is -20 to +19"
+msgstr "poprawny zagres AGNI to od -20 do +19"
+
+#: src/top/top_nls.c:608
+#, c-format
+msgid "autogroup open failed, %s"
+msgstr "otwarcie autogroup nie powiodło się: %s"
+
+#: src/top/top_nls.c:609
+#, c-format
+msgid "autogroup write failed, %s"
+msgstr "zapis autogroup nie powiódł się: %s"
+
+#: src/top/top_nls.c:610
+#, c-format
+msgid "command line for pid %d, %s"
+msgstr "linia poleceń dla pidu %d: %s"
+
+#: src/top/top_nls.c:611
+#, c-format
+msgid "control groups for pid %d, %s"
+msgstr "grupy kontrolne dla pidu %d: %s"
+
+#: src/top/top_nls.c:612
+#, c-format
+msgid "environment for pid %d, %s"
+msgstr "środowisko dla pidu %d: %s"
+
+#: src/top/top_nls.c:613
+#, c-format
+msgid "namespaces for pid %d, %s"
+msgstr "przestrzenie nazw dla pidu %d: %s"
+
+#: src/top/top_nls.c:614
+msgid "n/a"
+msgstr "n/d"
+
+#: src/top/top_nls.c:615
+#, c-format
+msgid "supplementary groups for pid %d, %s"
+msgstr "dodatkowe grupy dla pidu %d: %s"
+
+#: src/top/top_nls.c:616
+msgid "message log, last 10 messages:"
+msgstr "log komunikatów, ostatnie 10 komunikatów:"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The next several text groups contain special escape sequences
+#. . representing values used to index a table at run-time.
+#. .
+#. . Each such sequence consists of a tilde (~) followed by an ascii
+#. . number in the range of '1' - '8'. Examples are '~2', '~8', etc.
+#. . These escape sequences must never themselves be translated but
+#. . could be deleted.
+#. .
+#. . If you remove these escape sequences (both tilde and number) it
+#. . would make translation easier. However, the ability to display
+#. . colors and bold text at run-time will have been lost.
+#. .
+#. . Additionally, each of these text groups was designed to display
+#. . in a 80x24 terminal window. Hopefully, any translations will
+#. . adhere to that goal lest the translated text be truncated.
+#. .
+#. . If you would like additional information regarding these strings,
+#. . please see the prologue to the show_special function in the top.c
+#. . source file.
+#. .
+#. . Caution:
+#. . The next three items represent pages for interacting with a user.
+#. . In all cases, the last lines of text must be treated with care.
+#. .
+#. . They must not end with a newline character so that at runtime the
+#. . cursor will remain on that final text line.
+#. .
+#. . Also, the special sequences (tilde+number) must not appear on the
+#. . last line (the one without the newline). So please avoid any line
+#. . wraps that could place them there.
+#. .
+#: src/top/top_nls.c:661
+#, c-format
+msgid ""
+"Help for Interactive Commands~2 - %s\n"
+"Window ~1%s~6: ~1Cumulative mode ~3%s~2. ~1System~6: ~1Delay ~3%.1f secs~2; "
+"~1Secure mode ~3%s~2.\n"
+"\n"
+" Z~5,~1B~5,E,e Global: '~1Z~2' colors; '~1B~2' bold; '~1E~2'/'~1e~2' "
+"summary/task memory scale\n"
+" l,t,m,I,0 Toggle: '~1l~2' load avg; '~1t~2' task/cpu; '~1m~2' memory; "
+"'~1I~2' Irix; '~10~2' zeros\n"
+" 1,2,3,4,5 Toggle: '~11~2/~12~2/~13~2' cpu/numa views; '~14~2' cpus "
+"abreast; '~15~2' P/E-cores\n"
+" f,X Fields: '~1f~2' add/remove/order/sort; '~1X~2' increase fixed-"
+"width fields\n"
+"\n"
+" L,&,<,> . Locate: '~1L~2'/'~1&~2' find/again; Move sort column: "
+"'~1<~2'/'~1>~2' left/right\n"
+" R,H,J,C . Toggle: '~1R~2' Sort; '~1H~2' Threads; '~1J~2' Num justify; "
+"'~1C~2' Coordinates\n"
+" c,i,S,j . Toggle: '~1c~2' Cmd name/line; '~1i~2' Idle; '~1S~2' Time; "
+"'~1j~2' Str justify\n"
+" x~5,~1y~5 . Toggle highlights: '~1x~2' sort field; '~1y~2' running "
+"tasks\n"
+" z~5,~1b~5 . Toggle: '~1z~2' color/mono; '~1b~2' bold/reverse (only if "
+"'x' or 'y')\n"
+" u,U,o,O . Filter by: '~1u~2'/'~1U~2' effective/any user; '~1o~2'/'~1O~2' "
+"other criteria\n"
+" n,#,^O . Set: '~1n~2'/'~1#~2' max tasks displayed; Show: ~1Ctrl~2+'~1O~2' "
+"other filter(s)\n"
+" V,v,F . Toggle: '~1V~2' forest view; '~1v~2' hide/show children; '~1F~2' "
+"keep focused\n"
+"\n"
+"%s ^G,K,N,U View: ctl groups ~1^G~2; cmdline ~1^K~2; environment ~1^N~2; "
+"supp groups ~1^U~2\n"
+" Y,!,^E,P Inspect '~1Y~2'; Combine Cpus '~1!~2'; Scale time ~1^E~2; View "
+"namespaces ~1^P~2\n"
+" W,q Write config file '~1W~2'; Quit '~1q~2'\n"
+" ( commands shown with '.' require a ~1visible~2 task display "
+"~1window~2 ) \n"
+"Press '~1h~2' or '~1?~2' for help with ~1Windows~2,\n"
+"Type 'q' or <Esc> to continue "
+msgstr ""
+"Pomoc dla poleceń interaktywnych~2 - %s\n"
+"Okno ~1%s~6: ~1Tryb przyrostowy ~3%s~2. ~1System~6: ~1Opóźnienie ~3%.1f "
+"sek~2; ~1Tryb bezpieczny ~3%s~2.\n"
+"\n"
+" Z~5,~1B~5,E,e Globalne: '~1Z~2' kolory; '~1B~2' pogrubienie; "
+"'~1E~2'/'~1e~2' skala pamięci\n"
+" l,t,m,I,0 Zmiana: '~1l~2' obciążenie; '~1t~2' zadania/CPU; '~1m~2' pamięć; "
+"'~1I~2' Irix, '~10~2' zera\n"
+" 1,2,3,4,5 Zmiana: '~11~2/~12~2/~13~2' widoki CPU/NUMA; '~14~2' CPU obok "
+"siebie; '~15~2' rdzenie P/E\n"
+" f,X Pola: '~1f~2' dodanie/usunięcie/kolejność/sortowanie; '~1X~2' "
+"większa szerokość pól\n"
+"\n"
+" L,&,<,> . Szukanie: '~1L~2'/'~1&~2' pierwsze/ponowne; Kolumna sortowana: "
+"'~1<~2'/'~1>~2' lewo/prawo\n"
+" R,H,J,C . Zmiana: '~1R~2' sortowanie; '~1H~2' wątki; '~1J~2' wyrówn.liczb; "
+"'~1C~2' współczynniki\n"
+" c,i,S,j . Zmiana: '~1c~2' nazwa/linia poleceń; '~1i~2' bezcz.; '~1S~2' "
+"czas; '~1j~2' wyrówn.łańc.\n"
+" x~5,~1y~5 . Podświetlenia: '~1x~2' pole sortowane; '~1y~2' działające "
+"zadania\n"
+" z~5,~1b~5 . Zmiana: '~1z~2' kolor/mono; '~1b~2' pogrubienie/negatyw "
+"(tylko 'x' lub 'y')\n"
+" u,U,o,O . Filtrowanie: '~1u~2'/'~1U~2' użytk.ef./dowolny; '~1o~2'/'~1O~2' "
+"inne kryteria\n"
+" n,#,^O . Zmiana: '~1n~2'/'~1#~2' maks.liczba zadań; Wyświetlanie: "
+"~1Ctrl~2+'~1O~2' inne filtry\n"
+" V,v,F . Zmiana: '~1V~2' widok lasu; '~1v~2' ukrycie/pokazanie dzieci; "
+"'~1F~2' utrz.fokusu\n"
+"\n"
+"%s ^G,K,N,U Widok: grupy kontr. ~1^G~2; l. poleceń ~1^K~2; środowisko "
+"~1^N~2; dod. grupy ~1^U~2\n"
+" Y,!,^E,P PodglÄ…d '~1Y~2'; ÅÄ…czenie CPU '~1!~2'; Skala czasu ~1^E~2; Widok "
+"przestrzeni nazw ~1^P~2\n"
+" W,q Zapis pliku konfiguracyjnego '~1W~2'; Zakończenie '~1q~2'\n"
+" (polecania z '.' wymagają ~1widocznego~2 ~1okna~2 wyświetlania "
+"zadań)\n"
+"Klawisz '~1h~2' lub '~1?~2' wyświetli pomoc dotyczącą ~1okien~2,\n"
+"klawisz 'q' lub <Esc> to kontynuacja "
+
+#: src/top/top_nls.c:687
+#, c-format
+msgid ""
+"Help for Windows / Field Groups~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+". Use multiple ~1windows~2, each with separate config opts (color,fields,"
+"sort,etc)\n"
+". The 'current' window controls the ~1Summary Area~2 and responds to your "
+"~1Commands~2\n"
+" . that window's ~1task display~2 can be turned ~1Off~2 & ~1On~2, growing/"
+"shrinking others\n"
+" . with ~1NO~2 task display, some commands will be ~1disabled~2 "
+"('i','R','n','c', etc)\n"
+" until a ~1different window~2 has been activated, making it the 'current' "
+"window\n"
+". You ~1change~2 the 'current' window by: ~1 1~2) cycling forward/backward;"
+"~1 2~2) choosing\n"
+" a specific field group; or~1 3~2) exiting the color mapping or fields "
+"screens\n"
+". Commands ~1available anytime -------------~2\n"
+" A . Alternate display mode toggle, show ~1Single~2 / ~1Multiple~2 "
+"windows\n"
+" g . Choose another field group and make it 'current', or change "
+"now\n"
+" by selecting a number from: ~1 1~2 =%s;~1 2~2 =%s;~1 3~2 =%s; "
+"or~1 4~2 =%s\n"
+". Commands ~1requiring~2 '~1A~2' mode~1 -------------~2\n"
+" G . Change the ~1Name~5 of the 'current' window/field group\n"
+" ~1*~4 a , w . Cycle through all four windows: '~1a~5' Forward; '~1w~5' "
+"Backward\n"
+" ~1*~4 - , _ . Show/Hide: '~1-~5' ~1Current~2 window; '~1_~5' all "
+"~1Visible~2/~1Invisible~2\n"
+" The screen will be divided evenly between task displays. But you can "
+"make\n"
+" some ~1larger~2 or ~1smaller~2, using '~1n~2' and '~1i~2' commands. Then "
+"later you could:\n"
+" ~1*~4 = , + . Rebalance tasks: '~1=~5' ~1Current~2 window; '~1+~5' "
+"~1Every~2 window\n"
+" (this also forces the ~1current~2 or ~1every~2 window to "
+"become visible)\n"
+"\n"
+"In '~1A~2' mode, '~1*~4' keys are your ~1essential~2 commands. Please try "
+"the '~1a~2' and '~1w~2'\n"
+"commands plus the 'g' sub-commands NOW. Press <Enter> to make 'Current' "
+msgstr ""
+"Pomoc dla okien / grup pól~2 - \"Bieżące okno\" = ~1 %s ~6\n"
+"\n"
+". Można użyć wielu ~1okien~2, każdego z własną konfiguracją (kolor,pola,"
+"sortowanie itp.)\n"
+". Okno \"bieżące\" steruje ~1obszarem podsumowania~2 i reaguje na "
+"~1polecenia~2\n"
+" . Dla tego okna ~1wyświetlanie zadań~2 może być ustawione ~1Tak~2 lub "
+"~1Nie~2, kosztem innych\n"
+" . przy ~1Nie~2 wyświetlaniu zadań, niektóre polecenia będą ~1wyłączone~2 "
+"('i','R','n','c', itp.)\n"
+" do czasu uaktywnienia ~1innego okna~2, które staje się wtedy "
+"\"bieżącym\" oknem\n"
+". Można ~1zmieniać~2 \"bieżące\" okno: ~1 1~2) przełączając cyklicznie w "
+"przód/w tył;\n"
+" ~1 2~2) wybierając określoną grupę pól; albo~1 3~2) wychodząc z ekranów "
+"mapy kolorów lub pól\n"
+". Polecenia ~1dostępne zawsze -------------~2\n"
+" A . Zmiana alternatywnego trybu wyświetlania; ~1jedno~2 / "
+"~1wiele~2 okien\n"
+" g . Wybór innej grupy pól i uczynienie jej \"bieżącą\", albo "
+"zmiana poprzez\n"
+" wybór numeru spośród: ~1 1~2 =%s;~1 2~2 =%s;~1 3~2 =%s; lub~1 "
+"4~2 =%s\n"
+". Polecenia ~1wymagajÄ…ce trybu~2 '~1A~2'~1 -------------~2\n"
+" G . Zmiana ~1nazwy~5 \"bieżącego\" okna/grupy pól\n"
+" ~1*~4 a , w . Cykliczne przełączanie między 4 oknami: '~1a~5' w przód; "
+"'~1w~5' w tył\n"
+" ~1*~4 - , _ . Pokazanie/ukrycie: '~1-~5' ~1bieżące~2 okno; '~1_~5' "
+"wszystkie ~1widoczne~2/~1niewid.~2\n"
+" Ekran zostanie podzielony równo między wyświetlanie zadań; ale można część "
+"z nich\n"
+" ~1powiększyć~2 lub ~1zmniejszyć~2 poleceniami '~1n~2' oraz '~1i~2'. "
+"Następnie można:\n"
+" ~1*~4 = , + . Wyrównanie zadań: '~1=~5' ~1bieżące~2 okno; '~1+~5' "
+"~1wszystkie~2 okna\n"
+" (wymusza to także uczynienie ~1bieżącego~2 lub ~1wszystkich~2 "
+"okien widocznymi)\n"
+"\n"
+"W trybie '~1A~2' klawisze '~1*~4' sÄ… ~1podstawowymi~2 poleceniami. ProszÄ™ "
+"TERAZ wypróbować\n"
+"polecenia '~1a~2' i '~1w~2' oraz podpolecenie 'g'. Klawisz <Enter> czyni "
+"\"bieżącym\". "
+
+#. Translation Notes ------------------------------------------------
+#. . The following 'Help for color mapping' simulated screen should
+#. . probably NOT be translated. It is terribly hard to follow in
+#. . this form and any translation could produce unpleasing results
+#. . that are unlikely to parallel the running top program.
+#. .
+#. . If you decide to proceed with translation, please take care
+#. . to not disturb the spaces and the tilde + number delimiters.
+#. .
+#: src/top/top_nls.c:722
+#, c-format
+msgid ""
+"Help for color mapping~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+" color - 04:25:44 up 8 days, 50 min, 7 users, load average:\n"
+" Tasks:~3 64 ~2total,~3 2 ~3running,~3 62 ~2sleeping,~3 0 ~2stopped,"
+"~3\n"
+" %%Cpu(s):~3 76.5 ~2user,~3 11.2 ~2system,~3 0.0 ~2nice,~3 12.3 "
+"~2idle~3\n"
+" ~1 Nasty Message! ~4 -or- ~1Input Prompt~5\n"
+" ~1 PID TTY PR NI %%CPU TIME+ VIRT SWAP S COMMAND ~6\n"
+" 17284 ~8pts/2 ~7 8 0 0.0 0:00.75 1380 0 S /bin/bash ~8\n"
+" ~1 8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z~7\n"
+" 11005 ~8? ~7 9 0 0.0 0:02.50 2852 1008 S amor -sessi~8\n"
+" available toggles: ~1B~2 =disable bold globally (~1%s~2),\n"
+" ~1z~2 =color/mono (~1%s~2), ~1b~2 =tasks \"bold\"/reverse (~1%s~2)\n"
+"\n"
+"1) Select a ~1target~2 as an upper case letter, ~1current target~2 is ~1 %c "
+"~4:\n"
+" S~2 = Summary Data,~1 M~2 = Messages/Prompts,\n"
+" H~2 = Column Heads,~1 T~2 = Task Information\n"
+"2) Select a ~1color~2 as a number or use the up/down arrow keys\n"
+" to raise/lower the %d colors value, ~1current color~2 is ~1 %d ~4:\n"
+" 0~2 = black,~1 1~2 = red, ~1 2~2 = green,~1 3~2 = yellow,\n"
+" 4~2 = blue, ~1 5~2 = magenta,~1 6~2 = cyan, ~1 7~2 = white\n"
+"\n"
+"3) Then use these keys when finished:\n"
+" 'q' or <Esc> to abort changes to window '~1%s~2'\n"
+" 'a' or 'w' to commit & change another, <Enter> to commit and end "
+msgstr ""
+"Pomoc dla mapy kolorów~2 - \"bieżące okno\" = ~1 %s ~6\n"
+"\n"
+" color - 04:25:44 up 8 days, 50 min, 7 users, load average:\n"
+" Zadania:~2razem:~3 64~2, działających:~3 2~2, śpiących: ~3 62~2, "
+"zatrzymanych:~3 0\n"
+" %%CPU: ~3 76.5 ~2użytk.,~3 11.2 ~2system,~3 0.0 ~2nice,~3 12.3 "
+"~2bezcz.~3\n"
+" ~1 Brzydki komunikat! ~4 -lub- ~1Linia wprowadzania~5\n"
+" ~1 PID TTY PR NI %%CPU CZAS+ WIRT SWAP S KOMENDA ~6\n"
+" 17284 ~8pts/2 ~7 8 0 0.0 0:00.75 1380 0 S /bin/bash ~8\n"
+" ~1 8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z~7\n"
+" 11005 ~8? ~7 9 0 0.0 0:02.50 2852 1008 S amor -sessi~8\n"
+" dost. przełączniki: ~1B~2 =globalne wyłączenie pogrubienia (~1%s~2),\n"
+" ~1z~2 =kolor/mono (~1%s~2), ~1b~2 =zadania \"grube\"/negatyw "
+"(~1%s~2)\n"
+"\n"
+"1) Wybierz ~1cel~2 wielką literą, ~1bieżący cel~2 to ~1 %c ~4:\n"
+" S~2 = Podsumowanie, ~1 M~2 = Komunikaty/wprowadzanie,\n"
+" H~2 = Nagłówki kolumn,~1 T~2 = Informacje o zadaniach\n"
+"2) Wybierz ~1kolor~2 liczbą lub użyj klawiszy strzałek\n"
+" do zwiększenia/zmniejszenia wartości %d kolorów, ~1bieżący kolor~2 to ~1 "
+"%d ~4:\n"
+" 0~2 = czarny,~1 1~2 = czerwony,~1 2~2 = zielony,~1 3~2 = żółty,\n"
+" 4~2 = niebieski,~1 5~2 = różowy,~1 6~2 = turkusowy,~1 7~2 = biały\n"
+"\n"
+"3) Po skończeniu:\n"
+" 'q' porzuca zmiany w oknie '~1%s~2'\n"
+" 'a' lub 'w' zapisuje i zmienia inne, <Enter> zapisuje i kończy "
+
+#. Translation Hint: As is true for the text above, the "keys" shown to the left and
+#. . also embedded in the translatable text (along with escape seqs)
+#. . should never themselves be translated.
+#: src/top/top_nls.c:751
+msgid ""
+" d,k,r,^R '~1d~2' set delay; '~1k~2' kill; '~1r~2' renice; ~1Ctrl~2+'~1R~2' "
+"renice autogroup\n"
+msgstr ""
+" d,k,r,^R '~1d~2' ust.opóźn; '~1k~2' zabicie; '~1r~2' zm.nice; "
+"~1Ctrl~2+'~1R~2' zm.nice autogrupy\n"
+
+#. Translation Hint:
+#. . This Fields Management header should be 3 lines long so as
+#. . to allow 1 blank line before the fields & descriptions.
+#. . If absolutely necessary, 4 lines could be used (but never more).
+#. .
+#: src/top/top_nls.c:759
+#, c-format
+msgid ""
+"Fields Management~2 for window ~1%s~6, whose current sort field is ~1%s~2\n"
+" Navigate with Up/Dn, Right selects for move then <Enter> or Left "
+"commits,\n"
+" 'd' or <Space> toggles display, 's' sets sort. Use 'q' or <Esc> to end!\n"
+msgstr ""
+"Zarządzanie polami~2 dla okna ~1%s~6, którego bieżącym polem sortowania jest "
+"~1%s~2\n"
+" Do nawigacji służą klawisze góra/dół; prawo wybiera do przenoszenia,\n"
+" <Enter> lub lewo zatwierdza, 'd' lub spacja przełącza wyświetlanie, 's' "
+"ustawia\n"
+" sortowanie. Klawisz 'q' lub <Esc> kończy.\n"
+
+#. Translation Hint:
+#. . The next 5 items must each be translated as a single line.
+#. .
+#: src/top/top_nls.c:767
+#, c-format
+msgid ""
+"%s:~3 %3u ~2total,~3 %3u ~2running,~3 %3u ~2sleeping,~3 %3u ~2stopped,~3 %3u "
+"~2zombie~3\n"
+msgstr ""
+"%s:~2razem:~3 %3u~2, działających:~3 %3u~2, śpiących:~3 %3u~2, zatrzymanych:"
+"~3 %3u~2, zombie:~3 %3u\n"
+
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt
+#: src/top/top_nls.c:773
+#, c-format
+msgid ""
+"%s~3 %#5.1f ~2us,~3 %#5.1f ~2sy,~3 %#5.1f ~2ni,~3 %#5.1f ~2id,~3 %#5.1f ~2wa,"
+"~3 %#5.1f ~2hi,~3 %#5.1f ~2si~3 ~1"
+msgstr ""
+"%s~3 %#5.1f ~2uż,~3 %#5.1f ~2sy,~3 %#5.1f ~2ni,~3 %#5.1f ~2be,~3 %#5.1f ~2io,"
+"~3 %#5.1f ~2hi,~3 %#5.1f ~2si~3 ~1"
+
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt, st = steal time
+#: src/top/top_nls.c:779
+#, c-format
+msgid ""
+"%s~3%#5.1f ~2us,~3%#5.1f ~2sy,~3%#5.1f ~2ni,~3%#5.1f ~2id,~3%#5.1f ~2wa,"
+"~3%#5.1f ~2hi,~3%#5.1f ~2si,~3%#5.1f ~2st~3 ~1"
+msgstr ""
+"%s~3%#5.1f ~2uż,~3%#5.1f ~2sy,~3%#5.1f ~2ni,~3%#5.1f ~2be,~3%#5.1f ~2io,"
+"~3%#5.1f ~2hi,~3%#5.1f ~2si,~3%#5.1f ~2sk~3 ~1"
+
+#. Translation Hint: next 2 must be treated together, with WORDS above & below aligned
+#: src/top/top_nls.c:783
+#, c-format
+msgid ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used,~3 %9.9s~2buff/cache~3 "
+"~1 "
+msgstr ""
+"%s %s:~3 %9.9s~2razem,~3 %9.9s~2wolne,~3 %9.9s~2użyte,~3 %9.9s~2buf/cache~3 "
+"~1 "
+
+#: src/top/top_nls.c:785
+#, c-format
+msgid ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used.~3 %9.9s~2avail %s~3"
+msgstr ""
+"%s %s:~3 %9.9s~2razem,~3 %9.9s~2wolne,~3 %9.9s~2użyte.~3 %9.9s~2dost. %s~3"
+
+#. Translation Hint:
+#. . The next 2 headers for 'Inspection' must each be 3 lines or less
+#. .
+#: src/top/top_nls.c:791
+#, c-format
+msgid ""
+"Inspection~2 Pause at: pid ~1%d~6, running ~1%s~6\n"
+"Use~2: left/right then <Enter> to ~1select~5 an option; 'q' or <Esc> to "
+"~1end~5 !\n"
+"Options~2: ~1%s\n"
+msgstr ""
+"Podgląd~2 Pauza: pid ~1%d~6 działający ~1%s~6\n"
+"Obsługa~2: lewo/prawo, potem <Enter> aby ~1wybrać~5 opcję; 'q' lub <Esc> aby "
+"~1zakończyć~5.\n"
+"Opcje~2: ~1%s\n"
+
+#: src/top/top_nls.c:796
+#, c-format
+msgid ""
+"Inspection~2 View at pid: ~1%s~3, running ~1%s~3. Locating: ~1%s~6\n"
+"Use~2: left/right/up/down/etc to ~1navigate~5 the output; 'L'/'&' to "
+"~1locate~5/~1next~5.\n"
+"Or~2: <Enter> to ~1select another~5; 'q' or <Esc> to ~1end~5 !\n"
+msgstr ""
+"Podgląd~2 Widok: pid ~1%s~3, działający ~1%s~3. Szukanie: ~1%s~6\n"
+"Obsługa~2: lewo/prawo/góra/dół/itp. ~1nawigacja~5; 'L'/'&' ~1szukanie~5/"
+"~1następny~5.\n"
+"Lub~2: <Enter> aby ~1wybrać inny~5; 'q' lub <Esc> aby ~1zakończyć~5.\n"
+
+#: src/uptime.c:51 src/uptime.c:123
+msgid "Cannot get system uptime"
+msgstr "Nie można pobrać czasu działania systemu"
+
+#: src/uptime.c:67
+msgid " -p, --pretty show uptime in pretty format\n"
+msgstr " -p, --pretty wypisanie czasu działania w ładnym formacie\n"
+
+#: src/uptime.c:69
+msgid " -s, --since system up since\n"
+msgstr " -s, --since system włączony od\n"
+
+#: src/vmstat.c:220
+#, c-format
+msgid " %s [options] [delay [count]]\n"
+msgstr " %s [opcje] [opóźnienie [liczba]]\n"
+
+#: src/vmstat.c:223
+msgid " -a, --active active/inactive memory\n"
+msgstr " -a, --active pamięć aktywna/nieaktywna\n"
+
+#: src/vmstat.c:224
+msgid " -f, --forks number of forks since boot\n"
+msgstr ""
+" -f, --forks liczba rozgałęzień procesów od startu systemu\n"
+
+#: src/vmstat.c:225
+msgid " -m, --slabs slabinfo\n"
+msgstr " -m, --slabs slabinfo\n"
+
+#: src/vmstat.c:226
+msgid " -n, --one-header do not redisplay header\n"
+msgstr " -n ,--one-header bez ponownego wyświetlania nagłówka\n"
+
+#: src/vmstat.c:227
+msgid " -s, --stats event counter statistics\n"
+msgstr " -s, --stats statystyki liczników zdarzeń\n"
+
+#: src/vmstat.c:228
+msgid " -d, --disk disk statistics\n"
+msgstr " -d, --disk statystyki dysków\n"
+
+#: src/vmstat.c:229
+msgid " -D, --disk-sum summarize disk statistics\n"
+msgstr " -D, --disk-sum sumaryczne statystyki dysków\n"
+
+#: src/vmstat.c:230
+msgid " -p, --partition <dev> partition specific statistics\n"
+msgstr " -p, --partition <urzÄ…dzenie> statystyki dl partycji\n"
+
+#: src/vmstat.c:231
+msgid " -S, --unit <char> define display unit\n"
+msgstr " -S, --unit <znak> określenie jednostki wyświetlania\n"
+
+#: src/vmstat.c:232
+msgid " -w, --wide wide output\n"
+msgstr " -w, --wide szeroki format wyjścia\n"
+
+#: src/vmstat.c:233
+msgid " -t, --timestamp show timestamp\n"
+msgstr " -t, --timestamp wyświetlanie znaczników czasu\n"
+
+#: src/vmstat.c:234
+msgid " -y, --no-first skips first line of output\n"
+msgstr " -y, --no-first pominięcie pierwszej linii wyjścia\n"
+
+#: src/vmstat.c:253
+msgid ""
+"procs -----------memory---------- ---swap-- -----io---- -system-- -------"
+"cpu-------"
+msgstr ""
+"proc. -----------pamięć---------- ---swap-- ---we/wy--- -system-- -------"
+"cpu-------"
+
+#: src/vmstat.c:255
+msgid ""
+"--procs-- -----------------------memory---------------------- ---swap-- -----"
+"io---- -system-- ----------cpu----------"
+msgstr ""
+"--proc.-- -----------------------pamięć---------------------- ---swap-- ---"
+"we/wy--- -system-- ----------cpu----------"
+
+#: src/vmstat.c:256 src/vmstat.c:619
+msgid " -----timestamp-----"
+msgstr "--------czas--------"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:275
+msgid "r"
+msgstr "dz"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:277
+msgid "b"
+msgstr "bl"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:279
+msgid "swpd"
+msgstr "swap"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:281
+msgid "free"
+msgstr "wolna"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:283
+msgid "inact"
+msgstr "nieakt"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:285
+msgid "buff"
+msgstr "bufor"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:287
+msgid "active"
+msgstr "akt"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:289
+msgid "cache"
+msgstr "cache"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:291
+msgid "si"
+msgstr "si"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:293
+msgid "so"
+msgstr "so"
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:295
+msgid "bi"
+msgstr "bi"
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:297
+msgid "bo"
+msgstr "bo"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:299
+msgid "in"
+msgstr "in"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:301
+msgid "cs"
+msgstr "cs"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:303
+msgid "us"
+msgstr "uż"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:305
+msgid "sy"
+msgstr "sy"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:307
+msgid "id"
+msgstr "be"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:309
+msgid "wa"
+msgstr "io"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:311
+msgid "st"
+msgstr "sk"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:313
+msgid "gu"
+msgstr "go"
+
+#: src/vmstat.c:374 src/vmstat.c:870
+msgid "Unable to create vmstat structure"
+msgstr "Nie można utworzyć struktury vmstat"
+
+#: src/vmstat.c:376 src/vmstat.c:866 src/vmstat.c:919
+msgid "Unable to create system stat structure"
+msgstr "Nie można utworzyć struktury systemowej stat"
+
+#: src/vmstat.c:380
+msgid "Unable to get uptime"
+msgstr "Nie można pobrać czasu działania"
+
+#: src/vmstat.c:391 src/vmstat.c:472 src/vmstat.c:874
+msgid "Unable to select memory information"
+msgstr "Nie można wykonać select na informacji o pamięci"
+
+#: src/vmstat.c:405 src/vmstat.c:458 src/vmstat.c:868
+msgid "Unable to select stat information"
+msgstr "Nie można wykonać select na informacji stat"
+
+#. Translation Hint: Translating folloging disk partition
+#. * header fields that follow (marked with max x chars) might
+#. * not work, unless manual page is translated as well.
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:565
+msgid "reads"
+msgstr "odczyty"
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:567
+msgid "read sectors"
+msgstr "odcz. sektory"
+
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:569
+msgid "writes"
+msgstr "zapisy"
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:571
+msgid "requested writes"
+msgstr "żądania zapisu"
+
+#: src/vmstat.c:584 src/vmstat.c:687 src/vmstat.c:813
+msgid "Unable to create diskstat structure"
+msgstr "Nie można utworzyć struktury diskstat"
+
+#: src/vmstat.c:587 src/vmstat.c:593
+#, c-format
+msgid "Disk/Partition %s not found"
+msgstr "Nie znaleziono dysku/partycji %s"
+
+#: src/vmstat.c:616
+msgid ""
+"disk- ------------reads------------ ------------writes----------- -----"
+"IO------"
+msgstr ""
+"dysk- ----------odczyty------------ ------------zapisy----------- ----we/"
+"wy----"
+
+#: src/vmstat.c:618
+msgid ""
+"disk- -------------------reads------------------- -------------------"
+"writes------------------ ------IO-------"
+msgstr ""
+"dysk- -----------------odczyty------------------- -------------------"
+"zapisy------------------ -----we/wy-----"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:637 src/vmstat.c:645
+msgid "total"
+msgstr "razem"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:639 src/vmstat.c:647
+msgid "merged"
+msgstr "zgrup."
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:641 src/vmstat.c:649
+msgid "sectors"
+msgstr "sekt."
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:643 src/vmstat.c:651
+msgid "ms"
+msgstr "ms"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:653
+msgid "cur"
+msgstr "bież."
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:655
+msgid "sec"
+msgstr "sek"
+
+#: src/vmstat.c:694 src/vmstat.c:815
+msgid "Unable to retrieve disk statistics"
+msgstr "Nie można odczytać statystyk dysku"
+
+#. Translation Hint: Translating folloging slab fields that
+#. * follow (marked with max x chars) might not work, unless
+#. * manual page is translated as well.
+#. Translation Hint: max 24 chars
+#: src/vmstat.c:741
+msgid "Cache"
+msgstr "Cache"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:743
+msgid "Num"
+msgstr "Ile"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:745
+msgid "Total"
+msgstr "Razem"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:747
+msgid "Size"
+msgstr "Rozm."
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:749
+msgid "Pages"
+msgstr "Stron"
+
+#: src/vmstat.c:836
+#, c-format
+msgid "%13d disks\n"
+msgstr "Dysków: %d\n"
+
+#: src/vmstat.c:837
+#, c-format
+msgid "%13d partitions\n"
+msgstr "Partycji: %d\n"
+
+#: src/vmstat.c:838
+#, c-format
+msgid "%13lu total reads\n"
+msgstr "Odczytów razem: %lu\n"
+
+#: src/vmstat.c:839
+#, c-format
+msgid "%13lu merged reads\n"
+msgstr "Odczytów zgrupowanych: %lu\n"
+
+#: src/vmstat.c:840
+#, c-format
+msgid "%13lu read sectors\n"
+msgstr "Odczytanych sektorów: %lu\n"
+
+#: src/vmstat.c:841
+#, c-format
+msgid "%13lu milli reading\n"
+msgstr "Odczyty w ms: %lu\n"
+
+#: src/vmstat.c:842
+#, c-format
+msgid "%13lu writes\n"
+msgstr "Zapisów: %lu\n"
+
+#: src/vmstat.c:843
+#, c-format
+msgid "%13lu merged writes\n"
+msgstr "Zapisów zgrupowanych: %lu\n"
+
+#: src/vmstat.c:844
+#, c-format
+msgid "%13lu written sectors\n"
+msgstr "Zapisanych sektorów: %lu\n"
+
+#: src/vmstat.c:845
+#, c-format
+msgid "%13lu milli writing\n"
+msgstr "Zapisy w ms: %lu\n"
+
+#: src/vmstat.c:846
+#, c-format
+msgid "%13lu inprogress IO\n"
+msgstr "TrwajÄ…cych op. we/wy: %lu\n"
+
+#: src/vmstat.c:847
+#, c-format
+msgid "%13lu milli spent IO\n"
+msgstr "We/wy w ms: %lu\n"
+
+#: src/vmstat.c:848
+#, c-format
+msgid "%13lu milli weighted IO\n"
+msgstr "Ważone we/wy w ms: %lu\n"
+
+#: src/vmstat.c:876
+#, c-format
+msgid "%13lu %s total memory\n"
+msgstr "Pamięć razem: %13lu %s\n"
+
+#: src/vmstat.c:877
+#, c-format
+msgid "%13lu %s used memory\n"
+msgstr "Pamięć użyta: %13lu %s\n"
+
+#: src/vmstat.c:878
+#, c-format
+msgid "%13lu %s active memory\n"
+msgstr "Pamięć aktywna: %13lu %s\n"
+
+#: src/vmstat.c:879
+#, c-format
+msgid "%13lu %s inactive memory\n"
+msgstr "Pamięć nieaktywna: %13lu %s\n"
+
+#: src/vmstat.c:880
+#, c-format
+msgid "%13lu %s free memory\n"
+msgstr "Pamięć wolna: %13lu %s\n"
+
+#: src/vmstat.c:881
+#, c-format
+msgid "%13lu %s buffer memory\n"
+msgstr "Pamięć buforów: %13lu %s\n"
+
+#: src/vmstat.c:882
+#, c-format
+msgid "%13lu %s swap cache\n"
+msgstr "Pam. podr. obsz. wymiany: %13lu %s\n"
+
+#: src/vmstat.c:883
+#, c-format
+msgid "%13lu %s total swap\n"
+msgstr "Obszar wymiany razem: %13lu %s\n"
+
+#: src/vmstat.c:884
+#, c-format
+msgid "%13lu %s used swap\n"
+msgstr "Obszar wymiany użyty: %13lu %s\n"
+
+#: src/vmstat.c:885
+#, c-format
+msgid "%13lu %s free swap\n"
+msgstr "Obszar wymiany wolny: %13lu %s\n"
+
+#: src/vmstat.c:886
+#, c-format
+msgid "%13lld non-nice user cpu ticks\n"
+msgstr "Cykli CPU użytk. zwykłych: %13lld\n"
+
+#: src/vmstat.c:887
+#, c-format
+msgid "%13lld nice user cpu ticks\n"
+msgstr "Cykli CPU użytk. z nice: %13lld\n"
+
+#: src/vmstat.c:888
+#, c-format
+msgid "%13lld system cpu ticks\n"
+msgstr "Cykli CPU systemowych: %13lld\n"
+
+#: src/vmstat.c:889
+#, c-format
+msgid "%13lld idle cpu ticks\n"
+msgstr "Cykli CPU bezczynności: %13lld\n"
+
+#: src/vmstat.c:890
+#, c-format
+msgid "%13lld IO-wait cpu ticks\n"
+msgstr "Cykli CPU oczek. na we/wy: %13lld\n"
+
+#: src/vmstat.c:891
+#, c-format
+msgid "%13lld IRQ cpu ticks\n"
+msgstr "Cykli CPU w IRQ: %13lld\n"
+
+#: src/vmstat.c:892
+#, c-format
+msgid "%13lld softirq cpu ticks\n"
+msgstr "Cykli CPU w softirq: %13lld\n"
+
+#: src/vmstat.c:893
+#, c-format
+msgid "%13lld stolen cpu ticks\n"
+msgstr "Cykli CPU skradzionych: %13lld\n"
+
+#: src/vmstat.c:894
+#, c-format
+msgid "%13lld non-nice guest cpu ticks\n"
+msgstr "Cykli CPU gościa zwykłych: %13lld\n"
+
+#: src/vmstat.c:895
+#, c-format
+msgid "%13lld nice guest cpu ticks\n"
+msgstr "Cykli CPU gościa z nice: %13lld\n"
+
+#: src/vmstat.c:896
+#, c-format
+msgid "%13lu K paged in\n"
+msgstr "Danych wczytanych z dysku: %13lu K\n"
+
+#: src/vmstat.c:897
+#, c-format
+msgid "%13lu K paged out\n"
+msgstr "Danych usuniętych z pam.: %13lu K\n"
+
+#: src/vmstat.c:898
+#, c-format
+msgid "%13lu pages swapped in\n"
+msgstr "Stron z pamięci wymiany: %13lu\n"
+
+#: src/vmstat.c:899
+#, c-format
+msgid "%13lu pages swapped out\n"
+msgstr "Stron do pamięci wymiany: %13lu\n"
+
+#: src/vmstat.c:900
+#, c-format
+msgid "%13lu interrupts\n"
+msgstr "Przerwań: %13lu\n"
+
+#: src/vmstat.c:901
+#, c-format
+msgid "%13lu CPU context switches\n"
+msgstr "Przełączeń kontekstu CPU: %13lu\n"
+
+#: src/vmstat.c:902
+#, c-format
+msgid "%13lu boot time\n"
+msgstr "Czas rozruchu: %13lu\n"
+
+#: src/vmstat.c:903 src/vmstat.c:921
+#, c-format
+msgid "%13lu forks\n"
+msgstr "Odgałęzień procesów: %13lu\n"
+
+#. Translation Hint: do not change argument characters
+#: src/vmstat.c:1024
+msgid "-S requires k, K, m or M (default is KiB)"
+msgstr "-S wymaga k, K, m lub M (domyślnie KiB)"
+
+#: src/watch.c:94
+#, c-format
+msgid " %s [options] command\n"
+msgstr " %s [opcje] polecenie\n"
+
+#: src/watch.c:96
+msgid " -b, --beep beep if command has a non-zero exit\n"
+msgstr " -b, --beep piknięcie, jeśli polecenie zwróci błąd\n"
+
+#: src/watch.c:97
+msgid " -c, --color interpret ANSI color and style sequences\n"
+msgstr ""
+" -c, --color interpretowanie sekwencji kolorów i styli ANSI\n"
+
+#: src/watch.c:98
+msgid ""
+" -C, --no-color do not interpret ANSI color and style sequences\n"
+msgstr ""
+" -C, --no-color bez interpretowania sekwencji kolorów i styli ANSI\n"
+
+#: src/watch.c:99
+msgid ""
+" -d, --differences[=<permanent>]\n"
+" highlight changes between updates\n"
+msgstr ""
+" -d, --differences[=<trwałe>]\n"
+" podświetlanie zmian między uaktualnieniami\n"
+
+#: src/watch.c:101
+msgid " -e, --errexit exit if command has a non-zero exit\n"
+msgstr " -e, --errexit zakończenie, jeśli polecenie zwróci błąd\n"
+
+#: src/watch.c:102
+msgid " -g, --chgexit exit when output from command changes\n"
+msgstr ""
+" -g, --chgexit zakończenie, jeśli wyjście polecenia się zmieni\n"
+
+#: src/watch.c:103
+msgid ""
+" -q, --equexit <cycles>\n"
+" exit when output from command does not change\n"
+msgstr ""
+" -g, --chgexit <cykli>\n"
+" zakończenie, jeśli wyjście polecenia się zmieni\n"
+
+#: src/watch.c:105
+msgid " -n, --interval <secs> seconds to wait between updates\n"
+msgstr ""
+" -n, --interval <sek> liczba sekund do odczekania między uaktualnieniami\n"
+
+#: src/watch.c:106
+msgid " -p, --precise attempt run command in precise intervals\n"
+msgstr ""
+" -p, --precise próba uruchamiania polecenia w dokładnych "
+"odstępach\n"
+
+#: src/watch.c:107
+msgid " -r, --no-rerun do not rerun program on window resize\n"
+msgstr ""
+" -r, --no-rerun bez ponownego uruchamiania przy zmianie rozmiaru "
+"okna\n"
+
+#: src/watch.c:108
+msgid " -t, --no-title turn off header\n"
+msgstr " -t, --no-title wyłączenie nagłówka\n"
+
+#: src/watch.c:109
+msgid " -w, --no-wrap turn off line wrapping\n"
+msgstr " -w, --no-wrap wyłączenie zawijania wierszy\n"
+
+#: src/watch.c:110
+msgid " -x, --exec pass command to exec instead of \"sh -c\"\n"
+msgstr ""
+" -x, --exec przekazanie polecenia do uruchomienia zamiast \"sh -"
+"c\"\n"
+
+#: src/watch.c:113
+msgid " -v, --version output version information and exit\n"
+msgstr " -v, --version wypisanie informacji o wejściu i zakończenie\n"
+
+#: src/watch.c:485
+#, c-format
+msgid "Every %.1fs: "
+msgstr "Co %.1fs: "
+
+#: src/watch.c:486
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: src/watch.c:575
+msgid "unable to create IPC pipes"
+msgstr "nie można utworzyć potoków IPC"
+
+#: src/watch.c:585
+msgid "unable to fork process"
+msgstr "nie można rozgałęzić procesu"
+
+#: src/watch.c:590
+msgid "dup2 failed"
+msgstr "dup2 nie powiodło się"
+
+#: src/watch.c:597
+#, c-format
+msgid "unable to execute '%s'"
+msgstr "nie można uruchomić '%s'"
+
+#: src/watch.c:614
+msgid "fdopen"
+msgstr "fdopen"
+
+#: src/watch.c:788
+msgid "waitpid"
+msgstr "waitpid"
+
+#: src/watch.c:796
+msgid "command exit with a non-zero status, press a key to exit"
+msgstr ""
+"polecenie zakończyło się kodem błędnym; proszę nacisnąć klawisz, aby "
+"zakończyć"
+
+#: src/watch.c:863
+msgid "Could not parse interval from WATCH_INTERVAL"
+msgstr "Niezrozumiały przedział z WATCH_INTERVAL"
+
+#: src/watch.c:954
+#, c-format
+msgid "unicode handling error\n"
+msgstr "błąd obsługi unikodu\n"
+
+#: src/watch.c:960
+#, c-format
+msgid "unicode handling error (malloc)\n"
+msgstr "błąd obsługi unikodu (malloc)\n"
+
+#: src/w.c:289 src/w.c:304
+#, c-format
+msgid " %2lludays"
+msgstr " %2lludni"
+
+#. Translation Hint: Minutes:Seconds
+#. Translation Hint: Hours:Minutes
+#: src/w.c:298 src/w.c:308
+#, c-format
+msgid " %2llu:%02um"
+msgstr " %2llu:%02um"
+
+#. Translation Hint: Seconds:Centiseconds
+#: src/w.c:316
+#, c-format
+msgid " %2llu.%02us"
+msgstr " %2llu.%02us"
+
+#: src/w.c:656
+#, c-format
+msgid " %s [options] [user]\n"
+msgstr " %s [opcje] [użytkownik]\n"
+
+#: src/w.c:658
+msgid " -h, --no-header do not print header\n"
+msgstr " -h, --no-header bez wypisywania nagłówka\n"
+
+#: src/w.c:659
+msgid " -u, --no-current ignore current process username\n"
+msgstr " -u, --no-current pominiecie użytkownika bieżącego procesu\n"
+
+#: src/w.c:660
+msgid " -s, --short short format\n"
+msgstr " -s, --short format krótki\n"
+
+#: src/w.c:661
+msgid " -f, --from show remote hostname field\n"
+msgstr " -f, --from wyświetlenie pola nazwy zdalnego hosta\n"
+
+#: src/w.c:662
+msgid " -o, --old-style old style output\n"
+msgstr " -o, --old-style wyjście w starym stylu\n"
+
+#: src/w.c:663
+msgid ""
+" -i, --ip-addr display IP address instead of hostname (if possible)\n"
+msgstr ""
+" -i, --ip-addr wyświetlanie adresów IP zamiast nazw (jeśli to "
+"możliwe)\n"
+
+#: src/w.c:664
+msgid " -p, --pids show the PID(s) of processes in WHAT\n"
+msgstr " -p, --pids wypisanie PID-ów procesów w CZYM\n"
+
+#: src/w.c:763
+#, c-format
+msgid ""
+"User length environment PROCPS_USERLEN must be between 8 and %i, ignoring.\n"
+msgstr ""
+"Zmienna długości użytkowników PROCS_USERLEN musi być pomiędzy 8 a %i, "
+"zignorowano.\n"
+
+#: src/w.c:773
+#, c-format
+msgid ""
+"from length environment PROCPS_FROMLEN must be between 8 and %d, ignoring\n"
+msgstr ""
+"Zmienna długości miejsca logowania PROCPS_FROMLEN musi być pomiędzy 8 a %d, "
+"zignorowano\n"
+
+#. Translation Hint: Following five uppercase messages are
+#. * headers. Try to keep alignment intact.
+#: src/w.c:799
+#, c-format
+msgid "%-*s TTY "
+msgstr "%-*s TTY "
+
+#: src/w.c:801
+msgid "FROM"
+msgstr "Z "
+
+#: src/w.c:803
+#, c-format
+msgid " LOGIN@ IDLE JCPU PCPU WHAT\n"
+msgstr " ZAL.OD BEZCZ. JCPU PCPU CO\n"
+
+#: src/w.c:805
+#, c-format
+msgid " IDLE WHAT\n"
+msgstr " BEZCZ. CO\n"
+
+#: src/w.c:815
+msgid "error getting sessions"
+msgstr "błąd odczytu sesji"
+
+#: src/w.c:823
+msgid "get user name failed"
+msgstr "odczyt nazwy użytkownika nie powiódł się"
+
+#: local/c.h:153
+msgid ""
+"\n"
+"Usage:\n"
+msgstr ""
+"\n"
+"Składnia:\n"
+
+#: local/c.h:154
+msgid ""
+"\n"
+"Options:\n"
+msgstr ""
+"\n"
+"Opcje:\n"
+
+#: local/c.h:155
+msgid "\n"
+msgstr "\n"
+
+#: local/c.h:156
+msgid " -h, --help display this help and exit\n"
+msgstr " -h, --help wyświetlenie tego opisu i zakończenie\n"
+
+#: local/c.h:157
+msgid " -V, --version output version information and exit\n"
+msgstr " -V, --version wypisanie informacji o wersji i zakończenie\n"
+
+#: local/c.h:158
+#, c-format
+msgid ""
+"\n"
+"For more details see %s.\n"
+msgstr ""
+"\n"
+"Więcej szczegółów w %s.\n"
+
+#: local/c.h:160
+#, c-format
+msgid "%s from %s\n"
+msgstr "%s z pakietu %s\n"
diff --git a/po/procps-ng.pot b/po/procps-ng.pot
new file mode 100644
index 0000000..e3c1095
--- /dev/null
+++ b/po/procps-ng.pot
@@ -0,0 +1,4456 @@
+# 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"
+"Report-Msgid-Bugs-To: procps@freelists.org\n"
+"POT-Creation-Date: 2023-08-19 17:38+1000\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=CHARSET\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: local/fileutils.c:38
+msgid "write error"
+msgstr ""
+
+#: src/free.c:74 src/slabtop.c:106 src/uptime.c:65
+#, c-format
+msgid " %s [options]\n"
+msgstr ""
+
+#: src/free.c:76
+msgid " -b, --bytes show output in bytes\n"
+msgstr ""
+
+#: src/free.c:77
+msgid " --kilo show output in kilobytes\n"
+msgstr ""
+
+#: src/free.c:78
+msgid " --mega show output in megabytes\n"
+msgstr ""
+
+#: src/free.c:79
+msgid " --giga show output in gigabytes\n"
+msgstr ""
+
+#: src/free.c:80
+msgid " --tera show output in terabytes\n"
+msgstr ""
+
+#: src/free.c:81
+msgid " --peta show output in petabytes\n"
+msgstr ""
+
+#: src/free.c:82
+msgid " -k, --kibi show output in kibibytes\n"
+msgstr ""
+
+#: src/free.c:83
+msgid " -m, --mebi show output in mebibytes\n"
+msgstr ""
+
+#: src/free.c:84
+msgid " -g, --gibi show output in gibibytes\n"
+msgstr ""
+
+#: src/free.c:85
+msgid " --tebi show output in tebibytes\n"
+msgstr ""
+
+#: src/free.c:86
+msgid " --pebi show output in pebibytes\n"
+msgstr ""
+
+#: src/free.c:87
+msgid " -h, --human show human-readable output\n"
+msgstr ""
+
+#: src/free.c:88
+msgid " --si use powers of 1000 not 1024\n"
+msgstr ""
+
+#: src/free.c:89
+msgid " -l, --lohi show detailed low and high memory statistics\n"
+msgstr ""
+
+#: src/free.c:90
+msgid " -L, --line show output on a single line\n"
+msgstr ""
+
+#: src/free.c:91
+msgid " -t, --total show total for RAM + swap\n"
+msgstr ""
+
+#: src/free.c:92
+msgid " -v, --committed show committed memory and commit limit\n"
+msgstr ""
+
+#: src/free.c:93
+msgid " -s N, --seconds N repeat printing every N seconds\n"
+msgstr ""
+
+#: src/free.c:94
+msgid " -c N, --count N repeat printing N times, then exit\n"
+msgstr ""
+
+#: src/free.c:95
+msgid " -w, --wide wide output\n"
+msgstr ""
+
+#: src/free.c:97 src/w.c:666
+msgid " --help display this help and exit\n"
+msgstr ""
+
+#: src/free.c:172
+msgid "Multiple unit options don't make sense."
+msgstr ""
+
+#: src/free.c:341
+#, c-format
+msgid "seconds argument `%s' is not positive number"
+msgstr ""
+
+#: src/free.c:347
+msgid "failed to parse count argument"
+msgstr ""
+
+#: src/free.c:350
+#, c-format
+msgid "failed to parse count argument: '%s'"
+msgstr ""
+
+#: src/free.c:370
+msgid "Memory information file /proc/meminfo does not exist"
+msgstr ""
+
+#: src/free.c:373 src/vmstat.c:378 src/vmstat.c:872
+msgid "Unable to create meminfo structure"
+msgstr ""
+
+#. Translation Hint: These are shortened column headers
+#. * that are all 7 characters long. Use spaces and right
+#. * align if the translation is shorter.
+#.
+#: src/free.c:381
+msgid "SwapUse"
+msgstr ""
+
+#: src/free.c:382
+msgid "CachUse"
+msgstr ""
+
+#: src/free.c:384
+msgid " MemUse"
+msgstr ""
+
+#: src/free.c:385
+msgid "MemFree"
+msgstr ""
+
+#: src/free.c:395
+#, c-format
+msgid " total used free shared buffers cache available"
+msgstr ""
+
+#: src/free.c:397
+#, c-format
+msgid " total used free shared buff/cache available"
+msgstr ""
+
+#: src/free.c:400
+msgid "Mem:"
+msgstr ""
+
+#: src/free.c:423
+msgid "Low:"
+msgstr ""
+
+#: src/free.c:429
+msgid "High:"
+msgstr ""
+
+#: src/free.c:436
+msgid "Swap:"
+msgstr ""
+
+#: src/free.c:443
+msgid "Total:"
+msgstr ""
+
+#: src/free.c:456
+msgid "Comm:"
+msgstr ""
+
+#: src/kill.c:40
+#, c-format
+msgid " %s [options] <pid> [...]\n"
+msgstr ""
+
+#: src/kill.c:42
+msgid " <pid> [...] send signal to every <pid> listed\n"
+msgstr ""
+
+#: src/kill.c:43
+msgid ""
+" -<signal>, -s, --signal <signal>\n"
+" specify the <signal> to be sent\n"
+msgstr ""
+
+#: src/kill.c:45
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr ""
+
+#: src/kill.c:46
+msgid " -l, --list=[<signal>] list all signal names, or convert one to a name\n"
+msgstr ""
+
+#: src/kill.c:47
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr ""
+
+#: src/kill.c:112
+#, c-format
+msgid "unknown signal name %s"
+msgstr ""
+
+#: src/kill.c:131
+msgid "must be an integer value to be passed with the signal."
+msgstr ""
+
+#: src/kill.c:136
+#, c-format
+msgid "invalid argument %c"
+msgstr ""
+
+#: src/kill.c:146 src/pgrep.c:792 src/pidof.c:250 src/pidof.c:290
+#: src/sysctl.c:867
+msgid "internal error"
+msgstr ""
+
+#: src/kill.c:158 src/pmap.c:771 src/pmap.c:786 src/skill.c:381 src/skill.c:465
+#: src/tload.c:135 src/tload.c:140 src/vmstat.c:1047 src/vmstat.c:1057
+#: src/watch.c:891 src/watch.c:906
+msgid "failed to parse argument"
+msgstr ""
+
+#: src/pgrep.c:92 src/pidof.c:40 src/skill.c:74
+msgid "integer overflow"
+msgstr ""
+
+#: src/pgrep.c:155
+#, c-format
+msgid " %s [options] <pattern>\n"
+msgstr ""
+
+#: src/pgrep.c:159
+msgid " -d, --delimiter <string> specify output delimiter\n"
+msgstr ""
+
+#: src/pgrep.c:160
+msgid " -l, --list-name list PID and process name\n"
+msgstr ""
+
+#: src/pgrep.c:161
+msgid " -a, --list-full list PID and full command line\n"
+msgstr ""
+
+#: src/pgrep.c:162
+msgid " -v, --inverse negates the matching\n"
+msgstr ""
+
+#: src/pgrep.c:163
+msgid " -w, --lightweight list all TID\n"
+msgstr ""
+
+#: src/pgrep.c:166
+msgid " -<sig> signal to send (either number or name)\n"
+msgstr ""
+
+#: src/pgrep.c:167
+msgid " -H, --require-handler match only if signal handler is present\n"
+msgstr ""
+
+#: src/pgrep.c:168
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr ""
+
+#: src/pgrep.c:169
+msgid " -e, --echo display what is killed\n"
+msgstr ""
+
+#: src/pgrep.c:173
+msgid " -e, --echo display PIDs before waiting\n"
+msgstr ""
+
+#: src/pgrep.c:177
+msgid " -c, --count count of matching processes\n"
+msgstr ""
+
+#: src/pgrep.c:178
+msgid " -f, --full use full process name to match\n"
+msgstr ""
+
+#: src/pgrep.c:179
+msgid " -g, --pgroup <PGID,...> match listed process group IDs\n"
+msgstr ""
+
+#: src/pgrep.c:180
+msgid " -G, --group <GID,...> match real group IDs\n"
+msgstr ""
+
+#: src/pgrep.c:181
+msgid " -i, --ignore-case match case insensitively\n"
+msgstr ""
+
+#: src/pgrep.c:182
+msgid " -n, --newest select most recently started\n"
+msgstr ""
+
+#: src/pgrep.c:183
+msgid " -o, --oldest select least recently started\n"
+msgstr ""
+
+#: src/pgrep.c:184
+msgid " -O, --older <seconds> select where older than seconds\n"
+msgstr ""
+
+#: src/pgrep.c:185
+msgid " -P, --parent <PPID,...> match only child processes of the given parent\n"
+msgstr ""
+
+#: src/pgrep.c:186
+msgid " -s, --session <SID,...> match session IDs\n"
+msgstr ""
+
+#: src/pgrep.c:187
+msgid " --signal <sig> signal to send (either number or name)\n"
+msgstr ""
+
+#: src/pgrep.c:188
+msgid " -t, --terminal <tty,...> match by controlling terminal\n"
+msgstr ""
+
+#: src/pgrep.c:189
+msgid " -u, --euid <ID,...> match by effective IDs\n"
+msgstr ""
+
+#: src/pgrep.c:190
+msgid " -U, --uid <ID,...> match by real IDs\n"
+msgstr ""
+
+#: src/pgrep.c:191
+msgid " -x, --exact match exactly with the command name\n"
+msgstr ""
+
+#: src/pgrep.c:192
+msgid " -F, --pidfile <file> read PIDs from file\n"
+msgstr ""
+
+#: src/pgrep.c:193
+msgid " -L, --logpidfile fail if PID file is not locked\n"
+msgstr ""
+
+#: src/pgrep.c:194
+msgid " -r, --runstates <state> match runstates [D,S,Z,...]\n"
+msgstr ""
+
+#: src/pgrep.c:195
+msgid " -A, --ignore-ancestors exclude our ancestors from results\n"
+msgstr ""
+
+#: src/pgrep.c:196
+msgid " --cgroup <grp,...> match by cgroup v2 names\n"
+msgstr ""
+
+#: src/pgrep.c:197
+msgid ""
+" --ns <PID> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+
+#: src/pgrep.c:199
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option.\n"
+" Available namespaces: ipc, mnt, net, pid, user, uts\n"
+msgstr ""
+
+#: src/pgrep.c:224 src/pgrep.c:700 src/w.c:455
+msgid "Unable to create pid info structure"
+msgstr ""
+
+#: src/pgrep.c:388
+#, c-format
+msgid "invalid user name: %s"
+msgstr ""
+
+#: src/pgrep.c:405
+#, c-format
+msgid "invalid group name: %s"
+msgstr ""
+
+#: src/pgrep.c:416
+#, c-format
+msgid "invalid process group: %s"
+msgstr ""
+
+#: src/pgrep.c:428
+#, c-format
+msgid "invalid session id: %s"
+msgstr ""
+
+#: src/pgrep.c:440
+#, c-format
+msgid "not a number: %s"
+msgstr ""
+
+#: src/pgrep.c:490
+#, c-format
+msgid "not a hex string: %s"
+msgstr ""
+
+#: src/pgrep.c:525 src/skill.c:162
+msgid "Unable to read process namespace information"
+msgstr ""
+
+#: src/pgrep.c:612
+#, c-format
+msgid "regex error: %s"
+msgstr ""
+
+#: src/pgrep.c:695
+msgid "Error reading reference namespace information\n"
+msgstr ""
+
+#: src/pgrep.c:809
+#, c-format
+msgid ""
+"pattern that searches for process name longer than 15 characters will result in zero matches\n"
+"Try `%s -f' option to match against the complete command line."
+msgstr ""
+
+#: src/pgrep.c:924
+#, c-format
+msgid "Unknown signal \"%s\"."
+msgstr ""
+
+#: src/pgrep.c:1090
+#, c-format
+msgid ""
+"-L without -F makes no sense\n"
+"Try `%s --help' for more information."
+msgstr ""
+
+#: src/pgrep.c:1097
+#, c-format
+msgid ""
+"pidfile not valid\n"
+"Try `%s --help' for more information."
+msgstr ""
+
+#: src/pgrep.c:1106
+#, c-format
+msgid ""
+"only one pattern can be provided\n"
+"Try `%s --help' for more information."
+msgstr ""
+
+#: src/pgrep.c:1110
+#, c-format
+msgid ""
+"no matching criteria specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+
+#: src/pgrep.c:1162
+#, c-format
+msgid "%s killed (pid %lu)\n"
+msgstr ""
+
+#: src/pgrep.c:1169
+#, c-format
+msgid "killing pid %ld failed"
+msgstr ""
+
+#: src/pgrep.c:1181
+#, c-format
+msgid "waiting for %s (pid %lu)\n"
+msgstr ""
+
+#: src/pgrep.c:1185
+msgid "pidfd_open() not implemented in Linux < 5.3"
+msgstr ""
+
+#: src/pgrep.c:1188
+#, c-format
+msgid "opening pid %ld failed"
+msgstr ""
+
+#: src/pgrep.c:1202
+msgid "epoll_wait failed"
+msgstr ""
+
+#: src/pidof.c:75
+#, c-format
+msgid " %s [options] [program [...]]\n"
+msgstr ""
+
+#: src/pidof.c:77
+msgid " -s, --single-shot return one PID only\n"
+msgstr ""
+
+#: src/pidof.c:78
+msgid " -c, --check-root omit processes with different root\n"
+msgstr ""
+
+#: src/pidof.c:79
+msgid " -q, quiet mode, only set the exit code\n"
+msgstr ""
+
+#: src/pidof.c:80
+msgid " -w, --with-workers show kernel workers too\n"
+msgstr ""
+
+#: src/pidof.c:81
+msgid " -x also find shells running the named scripts\n"
+msgstr ""
+
+#: src/pidof.c:82
+msgid " -o, --omit-pid <PID,...> omit processes with PID\n"
+msgstr ""
+
+#: src/pidof.c:83
+msgid " -t, --lightweight list threads too\n"
+msgstr ""
+
+#: src/pidof.c:84
+msgid " -S, --separator SEP use SEP as separator put between PIDs"
+msgstr ""
+
+#: src/pidof.c:293
+#, c-format
+msgid "illegal omit pid value (%s)!\n"
+msgstr ""
+
+#: src/pmap.c:72
+msgid "Address"
+msgstr ""
+
+#: src/pmap.c:73
+msgid "Offset"
+msgstr ""
+
+#: src/pmap.c:74
+msgid "Device"
+msgstr ""
+
+#: src/pmap.c:75
+msgid "Mapping"
+msgstr ""
+
+#: src/pmap.c:79
+msgid "Perm"
+msgstr ""
+
+#: src/pmap.c:80
+msgid "Inode"
+msgstr ""
+
+#: src/pmap.c:83
+msgid "Kbytes"
+msgstr ""
+
+#: src/pmap.c:84
+msgid "Mode"
+msgstr ""
+
+#. Translation Hint: With the next 5 fields, notice how an extra space
+#. has been added ahead of one 'KiB' so that they all
+#. align. You need not preserve such alignment.
+#. Translation Hint: maximum 'RSS' = 6
+#: src/pmap.c:85 src/top/top_nls.c:337
+msgid "RSS"
+msgstr ""
+
+#: src/pmap.c:86
+msgid "Dirty"
+msgstr ""
+
+#: src/pmap.c:120
+#, c-format
+msgid " %s [options] PID [PID ...]\n"
+msgstr ""
+
+#: src/pmap.c:122
+msgid " -x, --extended show details\n"
+msgstr ""
+
+#: src/pmap.c:123
+msgid " -X show even more details\n"
+msgstr ""
+
+#: src/pmap.c:124
+msgid " WARNING: format changes according to /proc/PID/smaps\n"
+msgstr ""
+
+#: src/pmap.c:125
+msgid " -XX show everything the kernel provides\n"
+msgstr ""
+
+#: src/pmap.c:126
+msgid " -c, --read-rc read the default rc\n"
+msgstr ""
+
+#: src/pmap.c:127
+msgid " -C, --read-rc-from=<file> read the rc from file\n"
+msgstr ""
+
+#: src/pmap.c:128
+msgid " -n, --create-rc create new default rc\n"
+msgstr ""
+
+#: src/pmap.c:129
+msgid " -N, --create-rc-to=<file> create new rc to file\n"
+msgstr ""
+
+#: src/pmap.c:130
+msgid " NOTE: pid arguments are not allowed with -n, -N\n"
+msgstr ""
+
+#: src/pmap.c:131
+msgid " -d, --device show the device format\n"
+msgstr ""
+
+#: src/pmap.c:132
+msgid " -q, --quiet do not display header and footer\n"
+msgstr ""
+
+#: src/pmap.c:133
+msgid " -p, --show-path show path in the mapping\n"
+msgstr ""
+
+#: src/pmap.c:134
+msgid " -A, --range=<low>[,<high>] limit results to the given range\n"
+msgstr ""
+
+#: src/pmap.c:215
+msgid "shared memory detach"
+msgstr ""
+
+#: src/pmap.c:220
+msgid "shared memory remove"
+msgstr ""
+
+#: src/pmap.c:245
+msgid " [ anon ]"
+msgstr ""
+
+#: src/pmap.c:248
+msgid " [ stack ]"
+msgstr ""
+
+#: src/pmap.c:334 src/pmap.c:340
+msgid "Unknown format in smaps file!"
+msgstr ""
+
+#: src/pmap.c:365
+msgid "ERROR: memory allocation failed"
+msgstr ""
+
+#: src/pmap.c:382
+msgid "inconsistent detail field in smaps file, line:\n"
+msgstr ""
+
+#: src/pmap.c:731
+msgid "total kB"
+msgstr ""
+
+#: src/pmap.c:742
+#, c-format
+msgid "mapped: %ldK writeable/private: %ldK shared: %ldK\n"
+msgstr ""
+
+#. Translation Hint: keep total string length
+#. * as 24 characters. Adjust %16 if needed
+#: src/pmap.c:751
+#, c-format
+msgid " total %16ldK\n"
+msgstr ""
+
+#. Translation Hint: keep total string length
+#. * as 16 characters. Adjust %8 if needed
+#: src/pmap.c:757
+#, c-format
+msgid " total %8ldK\n"
+msgstr ""
+
+#: src/pmap.c:832
+#, c-format
+msgid "config line too long - line %d"
+msgstr ""
+
+#: src/pmap.c:857
+#, c-format
+msgid "unsupported section found in the config - line %d"
+msgstr ""
+
+#: src/pmap.c:860 src/pmap.c:871 src/pmap.c:882 src/pmap.c:905 src/pmap.c:917
+#, c-format
+msgid "syntax error found in the config - line %d"
+msgstr ""
+
+#: src/pmap.c:887 src/pmap.c:1010
+msgid "memory allocation failed"
+msgstr ""
+
+#: src/pmap.c:939
+msgid "the file already exists - delete or rename it first"
+msgstr ""
+
+#: src/pmap.c:1002
+msgid "HOME variable undefined"
+msgstr ""
+
+#: src/pmap.c:1061
+msgid "option -r is ignored as SunOS compatibility"
+msgstr ""
+
+#: src/pmap.c:1108
+msgid "options -c, -C, -d, -n, -N, -x, -X are mutually exclusive"
+msgstr ""
+
+#: src/pmap.c:1111
+msgid "options -p, -q are mutually exclusive with -n, -N"
+msgstr ""
+
+#: src/pmap.c:1114 src/pmap.c:1163
+msgid "too many arguments"
+msgstr ""
+
+#: src/pmap.c:1118
+msgid "rc file successfully created, feel free to edit the content"
+msgstr ""
+
+#: src/pmap.c:1121
+msgid "couldn't create the rc file"
+msgstr ""
+
+#: src/pmap.c:1133
+#, c-format
+msgid "~/.%src file successfully created, feel free to edit the content"
+msgstr ""
+
+#: src/pmap.c:1136
+#, c-format
+msgid "couldn't create ~/.%src"
+msgstr ""
+
+#: src/pmap.c:1141
+msgid "argument missing"
+msgstr ""
+
+#: src/pmap.c:1154
+msgid "couldn't read the rc file"
+msgstr ""
+
+#: src/pmap.c:1156
+#, c-format
+msgid "couldn't read ~/.%src"
+msgstr ""
+
+#: src/pmap.c:1165 src/pmap.c:1190
+msgid "library failed pids statistics"
+msgstr ""
+
+#: src/ps/display.c:61
+#, c-format
+msgid "Signal %d (%s) caught by %s (%s).\n"
+msgstr ""
+
+#: src/ps/display.c:75 src/ps/display.c:252 src/ps/display.c:407
+#: src/ps/output.c:2359 src/ps/parser.c:509 src/ps/parser.c:756
+#: src/ps/select.c:95 src/ps/sortformat.c:263 src/ps/sortformat.c:301
+#: src/ps/sortformat.c:549
+msgid "please report this bug"
+msgstr ""
+
+#: src/ps/display.c:315 src/ps/display.c:484
+#, c-format
+msgid "fatal library error, reap\n"
+msgstr ""
+
+#: src/ps/display.c:365
+#, c-format
+msgid "could not find ppid\n"
+msgstr ""
+
+#: src/ps/display.c:375
+#, c-format
+msgid "could not find start_time\n"
+msgstr ""
+
+#: src/ps/global.c:287
+#, c-format
+msgid "your %dx%d screen size is bogus. expect trouble\n"
+msgstr ""
+
+#: src/ps/global.c:360 src/ps/global.c:372
+msgid "environment specified an unknown personality"
+msgstr ""
+
+#: src/ps/global.c:364
+#, c-format
+msgid "cannot strdup() personality text\n"
+msgstr ""
+
+#: src/ps/global.c:495
+#, c-format
+msgid "fatal library error, context\n"
+msgstr ""
+
+#: src/ps/global.c:503
+#, c-format
+msgid "fatal library error, lookup self\n"
+msgstr ""
+
+#. Translation Note:
+#. . The following translatable word will be used to recognize the
+#. . user's request for help text. In other words, the translation
+#. . you provide will alter program behavior.
+#. .
+#. . It must be limited to 15 characters or less.
+#.
+#: src/ps/global.c:542
+msgid "help"
+msgstr ""
+
+#. Translation Notes for ps Help #1 ---------------------------------
+#. . This next group of lines represents 6 pairs of words + abbreviations
+#. . which are the basis of the 'ps' program help text.
+#. .
+#. . The words and abbreviations you provide will alter program behavior.
+#. . They will also appear in the help usage summary associated with the
+#. . "Notes for ps Help #2" below.
+#. .
+#. . In their English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . When translating these 6 pairs you may choose any appropriate
+#. . language equivalents and the only requirement is the abbreviated
+#. . representations must be unique.
+#. .
+#. . By default, those abbreviations are single characters. However,
+#. . they are not limited to only one character after translation.
+#. .
+#. Translation Hint, Pair #1
+#: src/ps/help.c:67
+msgid "simple"
+msgstr ""
+
+#: src/ps/help.c:67
+msgid "s"
+msgstr ""
+
+#. Translation Hint, Pair #2
+#: src/ps/help.c:69
+msgid "list"
+msgstr ""
+
+#: src/ps/help.c:69
+msgid "l"
+msgstr ""
+
+#. Translation Hint, Pair #3
+#: src/ps/help.c:71
+msgid "output"
+msgstr ""
+
+#: src/ps/help.c:71
+msgid "o"
+msgstr ""
+
+#. Translation Hint, Pair #4
+#: src/ps/help.c:73
+msgid "threads"
+msgstr ""
+
+#: src/ps/help.c:73
+msgid "t"
+msgstr ""
+
+#. Translation Hint, Pair #5
+#: src/ps/help.c:75
+msgid "misc"
+msgstr ""
+
+#: src/ps/help.c:75
+msgid "m"
+msgstr ""
+
+#. Translation Hint, Pair #6
+#: src/ps/help.c:77
+msgid "all"
+msgstr ""
+
+#: src/ps/help.c:77
+msgid "a"
+msgstr ""
+
+#: src/ps/help.c:98
+#, c-format
+msgid ""
+"\n"
+"Usage:\n"
+" %s [options]\n"
+msgstr ""
+
+#: src/ps/help.c:103
+msgid ""
+"\n"
+"Basic options:\n"
+msgstr ""
+
+#: src/ps/help.c:104
+msgid " -A, -e all processes\n"
+msgstr ""
+
+#: src/ps/help.c:105
+msgid " -a all with tty, except session leaders\n"
+msgstr ""
+
+#: src/ps/help.c:106
+msgid " a all with tty, including other users\n"
+msgstr ""
+
+#: src/ps/help.c:107
+msgid " -d all except session leaders\n"
+msgstr ""
+
+#: src/ps/help.c:108
+msgid " -N, --deselect negate selection\n"
+msgstr ""
+
+#: src/ps/help.c:109
+msgid " r only running processes\n"
+msgstr ""
+
+#: src/ps/help.c:110
+msgid " T all processes on this terminal\n"
+msgstr ""
+
+#: src/ps/help.c:111
+msgid " x processes without controlling ttys\n"
+msgstr ""
+
+#: src/ps/help.c:114
+msgid ""
+"\n"
+"Selection by list:\n"
+msgstr ""
+
+#: src/ps/help.c:115
+msgid " -C <command> command name\n"
+msgstr ""
+
+#: src/ps/help.c:116
+msgid " -G, --Group <GID> real group id or name\n"
+msgstr ""
+
+#: src/ps/help.c:117
+msgid " -g, --group <group> session or effective group name\n"
+msgstr ""
+
+#: src/ps/help.c:118
+msgid " -p, p, --pid <PID> process id\n"
+msgstr ""
+
+#: src/ps/help.c:119
+msgid " --ppid <PID> parent process id\n"
+msgstr ""
+
+#: src/ps/help.c:120
+msgid ""
+" -q, q, --quick-pid <PID>\n"
+" process id (quick mode)\n"
+msgstr ""
+
+#: src/ps/help.c:122
+msgid " -s, --sid <session> session id\n"
+msgstr ""
+
+#: src/ps/help.c:123
+msgid " -t, t, --tty <tty> terminal\n"
+msgstr ""
+
+#: src/ps/help.c:124
+msgid " -u, U, --user <UID> effective user id or name\n"
+msgstr ""
+
+#: src/ps/help.c:125
+msgid " -U, --User <UID> real user id or name\n"
+msgstr ""
+
+#: src/ps/help.c:126
+msgid ""
+"\n"
+" The selection options take as their argument either:\n"
+" a comma-separated list e.g. '-u root,nobody' or\n"
+" a blank-separated list e.g. '-p 123 4567'\n"
+msgstr ""
+
+#: src/ps/help.c:132
+msgid ""
+"\n"
+"Output formats:\n"
+msgstr ""
+
+#: src/ps/help.c:133
+msgid " -D <format> date format for lstart\n"
+msgstr ""
+
+#: src/ps/help.c:134
+msgid " -F extra full\n"
+msgstr ""
+
+#: src/ps/help.c:135
+msgid " -f full-format, including command lines\n"
+msgstr ""
+
+#: src/ps/help.c:136
+msgid " f, --forest ascii art process tree\n"
+msgstr ""
+
+#: src/ps/help.c:137
+msgid " -H show process hierarchy\n"
+msgstr ""
+
+#: src/ps/help.c:138
+msgid " -j jobs format\n"
+msgstr ""
+
+#: src/ps/help.c:139
+msgid " j BSD job control format\n"
+msgstr ""
+
+#: src/ps/help.c:140
+msgid " -l long format\n"
+msgstr ""
+
+#: src/ps/help.c:141
+msgid " l BSD long format\n"
+msgstr ""
+
+#: src/ps/help.c:142
+msgid " -M, Z add security data (for SELinux)\n"
+msgstr ""
+
+#: src/ps/help.c:143
+msgid " -O <format> preloaded with default columns\n"
+msgstr ""
+
+#: src/ps/help.c:144
+msgid " O <format> as -O, with BSD personality\n"
+msgstr ""
+
+#: src/ps/help.c:145
+msgid ""
+" -o, o, --format <format>\n"
+" user-defined format\n"
+msgstr ""
+
+#: src/ps/help.c:147
+msgid " -P add psr column\n"
+msgstr ""
+
+#: src/ps/help.c:148
+msgid " s signal format\n"
+msgstr ""
+
+#: src/ps/help.c:149
+msgid " u user-oriented format\n"
+msgstr ""
+
+#: src/ps/help.c:150
+msgid " v virtual memory format\n"
+msgstr ""
+
+#: src/ps/help.c:151
+msgid " X register format\n"
+msgstr ""
+
+#: src/ps/help.c:152
+msgid " -y do not show flags, show rss vs. addr (used with -l)\n"
+msgstr ""
+
+#: src/ps/help.c:153
+msgid " --context display security context (for SELinux)\n"
+msgstr ""
+
+#: src/ps/help.c:154
+msgid " --headers repeat header lines, one per page\n"
+msgstr ""
+
+#: src/ps/help.c:155
+msgid " --no-headers do not print header at all\n"
+msgstr ""
+
+#: src/ps/help.c:156
+msgid ""
+" --cols, --columns, --width <num>\n"
+" set screen width\n"
+msgstr ""
+
+#: src/ps/help.c:158
+msgid ""
+" --rows, --lines <num>\n"
+" set screen height\n"
+msgstr ""
+
+#: src/ps/help.c:160
+msgid " --signames display signal masks using signal names\n"
+msgstr ""
+
+#: src/ps/help.c:163
+msgid ""
+"\n"
+"Show threads:\n"
+msgstr ""
+
+#: src/ps/help.c:164
+msgid " H as if they were processes\n"
+msgstr ""
+
+#: src/ps/help.c:165
+msgid " -L possibly with LWP and NLWP columns\n"
+msgstr ""
+
+#: src/ps/help.c:166
+msgid " -m, m after processes\n"
+msgstr ""
+
+#: src/ps/help.c:167
+msgid " -T possibly with SPID column\n"
+msgstr ""
+
+#: src/ps/help.c:170
+msgid ""
+"\n"
+"Miscellaneous options:\n"
+msgstr ""
+
+#: src/ps/help.c:171
+msgid " -c show scheduling class with -l option\n"
+msgstr ""
+
+#: src/ps/help.c:172
+msgid " c show true command name\n"
+msgstr ""
+
+#: src/ps/help.c:173
+msgid " e show the environment after command\n"
+msgstr ""
+
+#: src/ps/help.c:174
+msgid " k, --sort specify sort order as: [+|-]key[,[+|-]key[,...]]\n"
+msgstr ""
+
+#: src/ps/help.c:175
+msgid " L show format specifiers\n"
+msgstr ""
+
+#: src/ps/help.c:176
+msgid " n display numeric uid and wchan\n"
+msgstr ""
+
+#: src/ps/help.c:177
+msgid " S, --cumulative include some dead child process data\n"
+msgstr ""
+
+#: src/ps/help.c:178
+msgid " -y do not show flags, show rss (only with -l)\n"
+msgstr ""
+
+#: src/ps/help.c:179
+msgid " -V, V, --version display version information and exit\n"
+msgstr ""
+
+#: src/ps/help.c:180
+msgid " -w, w unlimited output width\n"
+msgstr ""
+
+#: src/ps/help.c:181
+#, c-format
+msgid ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" display help and exit\n"
+msgstr ""
+
+#. Translation Notes for ps Help #2 ---------------------------------
+#. . Most of the following c-format string is derived from the 6
+#. . pairs of words + chars mentioned above in "Notes for ps Help #1".
+#. .
+#. . In its full English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . The word for "help" will be translated elsewhere. Thus, the only
+#. . translations below will be: "Try", "or" and "for additional...".
+#. .
+#: src/ps/help.c:202
+#, c-format
+msgid ""
+"\n"
+" Try '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" or '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" for additional help text.\n"
+msgstr ""
+
+#: src/ps/help.c:215
+#, c-format
+msgid ""
+"\n"
+"For more details see ps(1).\n"
+msgstr ""
+
+#: src/ps/output.c:104
+msgid "Unable to get system boot time"
+msgstr ""
+
+#: src/ps/output.c:119
+msgid "Unable to get total memory"
+msgstr ""
+
+#: src/ps/output.c:2206
+#, c-format
+msgid "fix bigness error\n"
+msgstr ""
+
+#: src/ps/output.c:2289
+#, c-format
+msgid "bad alignment code\n"
+msgstr ""
+
+#: src/ps/parser.c:63
+msgid "the option is exclusive: "
+msgstr ""
+
+#: src/ps/parser.c:93
+msgid "process ID list syntax error"
+msgstr ""
+
+#: src/ps/parser.c:94 src/ps/parser.c:95
+msgid "process ID out of range"
+msgstr ""
+
+#: src/ps/parser.c:108
+msgid "user name does not exist"
+msgstr ""
+
+#: src/ps/parser.c:114
+msgid "user ID out of range"
+msgstr ""
+
+#: src/ps/parser.c:127
+msgid "group name does not exist"
+msgstr ""
+
+#: src/ps/parser.c:133
+msgid "group ID out of range"
+msgstr ""
+
+#: src/ps/parser.c:149 src/ps/parser.c:173
+msgid "TTY could not be found"
+msgstr ""
+
+#: src/ps/parser.c:175
+msgid "list member was not a TTY"
+msgstr ""
+
+#: src/ps/parser.c:200
+msgid "improper list"
+msgstr ""
+
+#: src/ps/parser.c:249
+msgid "list of command names must follow -C"
+msgstr ""
+
+#: src/ps/parser.c:257
+msgid "date format must follow -D"
+msgstr ""
+
+#: src/ps/parser.c:270
+msgid "list of real groups must follow -G"
+msgstr ""
+
+#: src/ps/parser.c:283
+msgid "list of jobs must follow -J"
+msgstr ""
+
+#: src/ps/parser.c:311
+msgid "format or sort specification must follow -O"
+msgstr ""
+
+#: src/ps/parser.c:322
+msgid "list of PRM groups must follow -R"
+msgstr ""
+
+#: src/ps/parser.c:341
+msgid "list of real users must follow -U"
+msgstr ""
+
+#: src/ps/parser.c:382
+msgid "list of session leaders OR effective group names must follow -g"
+msgstr ""
+
+#: src/ps/parser.c:393
+msgid "list of session leaders OR effective group IDs was invalid"
+msgstr ""
+
+#: src/ps/parser.c:417
+msgid "format specification must follow -o"
+msgstr ""
+
+#: src/ps/parser.c:423
+msgid "list of process IDs must follow -p"
+msgstr ""
+
+#: src/ps/parser.c:440
+msgid "the -r option is reserved"
+msgstr ""
+
+#: src/ps/parser.c:446
+msgid "list of session IDs must follow -s"
+msgstr ""
+
+#: src/ps/parser.c:454
+msgid "list of terminals (pty, tty...) must follow -t"
+msgstr ""
+
+#: src/ps/parser.c:462
+msgid "list of users must follow -u"
+msgstr ""
+
+#: src/ps/parser.c:484
+msgid "must set personality to get -x option"
+msgstr ""
+
+#: src/ps/parser.c:499
+msgid "list of zones (contexts, labels, whatever?) must follow -z"
+msgstr ""
+
+#: src/ps/parser.c:506
+msgid "embedded '-' among SysV options makes no sense"
+msgstr ""
+
+#: src/ps/parser.c:512
+msgid "unsupported SysV option"
+msgstr ""
+
+#: src/ps/parser.c:525
+msgid "cannot happen - problem #1"
+msgstr ""
+
+#: src/ps/parser.c:529
+msgid "cannot happen - problem #2"
+msgstr ""
+
+#: src/ps/parser.c:531
+msgid "second chance parse failed, not BSD or SysV"
+msgstr ""
+
+#: src/ps/parser.c:548
+msgid "option A is reserved"
+msgstr ""
+
+#: src/ps/parser.c:553
+msgid "option C is reserved"
+msgstr ""
+
+#: src/ps/parser.c:573
+msgid "format or sort specification must follow O"
+msgstr ""
+
+#: src/ps/parser.c:598
+msgid "list of users must follow U"
+msgstr ""
+
+#: src/ps/parser.c:610
+msgid "obsolete W option not supported (you have a /dev/drum?)"
+msgstr ""
+
+#: src/ps/parser.c:646 src/ps/parser.c:921 src/ps/parser.c:930
+msgid "only one heading option may be specified"
+msgstr ""
+
+#: src/ps/parser.c:661
+msgid "long sort specification must follow 'k'"
+msgstr ""
+
+#: src/ps/parser.c:689
+msgid "format specification must follow o"
+msgstr ""
+
+#: src/ps/parser.c:695
+msgid "list of process IDs must follow p"
+msgstr ""
+
+#: src/ps/parser.c:753
+msgid "embedded '-' among BSD options makes no sense"
+msgstr ""
+
+#: src/ps/parser.c:759
+msgid "unsupported option (BSD syntax)"
+msgstr ""
+
+#: src/ps/parser.c:847 src/ps/parser.c:859
+msgid "unknown gnu long option"
+msgstr ""
+
+#: src/ps/parser.c:867
+msgid "list of real groups must follow --Group"
+msgstr ""
+
+#: src/ps/parser.c:875
+msgid "list of real users must follow --User"
+msgstr ""
+
+#: src/ps/parser.c:894
+msgid "number of columns must follow --cols, --width, or --columns"
+msgstr ""
+
+#: src/ps/parser.c:897
+msgid "option --cumulative does not take an argument"
+msgstr ""
+
+#: src/ps/parser.c:902
+msgid "date format must follow --date-format"
+msgstr ""
+
+#: src/ps/parser.c:908
+msgid "option --deselect does not take an argument"
+msgstr ""
+
+#: src/ps/parser.c:920
+msgid "option --no-heading does not take an argument"
+msgstr ""
+
+#: src/ps/parser.c:929
+msgid "option --heading does not take an argument"
+msgstr ""
+
+#: src/ps/parser.c:935
+msgid "option --forest does not take an argument"
+msgstr ""
+
+#: src/ps/parser.c:941
+msgid "format specification must follow --format"
+msgstr ""
+
+#: src/ps/parser.c:947
+msgid "list of effective groups must follow --group"
+msgstr ""
+
+#: src/ps/parser.c:965
+msgid "list of process IDs must follow --pid"
+msgstr ""
+
+#: src/ps/parser.c:981
+msgid "list of process IDs must follow --ppid"
+msgstr ""
+
+#: src/ps/parser.c:999
+msgid "number of rows must follow --rows or --lines"
+msgstr ""
+
+#: src/ps/parser.c:1003
+msgid "some sid thing(s) must follow --sid"
+msgstr ""
+
+#: src/ps/parser.c:1015
+msgid "long sort specification must follow --sort"
+msgstr ""
+
+#: src/ps/parser.c:1021
+msgid "list of ttys must follow --tty"
+msgstr ""
+
+#: src/ps/parser.c:1029
+msgid "list of effective users must follow --user"
+msgstr ""
+
+#: src/ps/parser.c:1145
+msgid "way bad"
+msgstr ""
+
+#: src/ps/parser.c:1159
+msgid "garbage option"
+msgstr ""
+
+#: src/ps/parser.c:1163
+msgid "something broke"
+msgstr ""
+
+#: src/ps/parser.c:1183
+msgid "thread display conflicts with forest display"
+msgstr ""
+
+#: src/ps/parser.c:1188
+msgid "thread flags conflict; can't use H with m or -m"
+msgstr ""
+
+#: src/ps/parser.c:1190
+msgid "thread flags conflict; can't use both m and -m"
+msgstr ""
+
+#: src/ps/parser.c:1192
+msgid "thread flags conflict; can't use both -L and -T"
+msgstr ""
+
+#: src/ps/parser.c:1265 src/ps/parser.c:1266
+#, c-format
+msgid "error: %s\n"
+msgstr ""
+
+#: src/ps/select.c:71
+msgid "process selection options conflict"
+msgstr ""
+
+#: src/ps/sortformat.c:110 src/ps/sortformat.c:115
+msgid "seriously crashing: goodbye cruel world"
+msgstr ""
+
+#: src/ps/sortformat.c:150 src/ps/sortformat.c:169
+msgid "missing AIX field descriptor"
+msgstr ""
+
+#: src/ps/sortformat.c:152
+msgid "improper AIX field descriptor"
+msgstr ""
+
+#: src/ps/sortformat.c:174
+msgid "unknown AIX field descriptor"
+msgstr ""
+
+#: src/ps/sortformat.c:179
+msgid "AIX field descriptor processing bug"
+msgstr ""
+
+#: src/ps/sortformat.c:287
+#, c-format
+msgid "unknown user-defined format specifier \"%s\""
+msgstr ""
+
+#: src/ps/sortformat.c:314
+msgid "empty format list"
+msgstr ""
+
+#: src/ps/sortformat.c:315
+msgid "improper format list"
+msgstr ""
+
+#: src/ps/sortformat.c:316
+msgid "column widths must be unsigned decimal numbers"
+msgstr ""
+
+#: src/ps/sortformat.c:317
+msgid "can not set width for a macro (multi-column) format specifier"
+msgstr ""
+
+#: src/ps/sortformat.c:371 src/ps/sortformat.c:387
+msgid "improper sort list"
+msgstr ""
+
+#: src/ps/sortformat.c:382
+msgid "empty sort list"
+msgstr ""
+
+#: src/ps/sortformat.c:403 src/ps/sortformat.c:482 src/ps/sortformat.c:484
+msgid "unknown sort specifier"
+msgstr ""
+
+#: src/ps/sortformat.c:430 src/ps/sortformat.c:435 src/ps/sortformat.c:442
+#: src/ps/sortformat.c:448
+msgid "bad sorting code"
+msgstr ""
+
+#: src/ps/sortformat.c:445
+msgid "PPID sort and forest output conflict"
+msgstr ""
+
+#: src/ps/sortformat.c:519
+msgid "option -O can not follow other format options"
+msgstr ""
+
+#: src/ps/sortformat.c:526 src/ps/sortformat.c:544
+msgid "multiple sort options"
+msgstr ""
+
+#: src/ps/sortformat.c:534
+msgid "option O is neither first format nor sort order"
+msgstr ""
+
+#: src/ps/sortformat.c:661
+msgid "modifier -y without format -l makes no sense"
+msgstr ""
+
+#: src/ps/sortformat.c:760
+msgid "bug: must reset the list first"
+msgstr ""
+
+#: src/ps/sortformat.c:797
+msgid "tell <procps@freelists.org> what you expected"
+msgstr ""
+
+#: src/ps/sortformat.c:807
+msgid "tell <procps@freelists.org> what you want (-L/-T, -m/m/H, and $PS_FORMAT)"
+msgstr ""
+
+#: src/ps/sortformat.c:824
+#, c-format
+msgid "warning: $PS_FORMAT ignored. (%s)\n"
+msgstr ""
+
+#: src/ps/sortformat.c:829 src/ps/sortformat.c:839
+msgid "conflicting format options"
+msgstr ""
+
+#: src/ps/sortformat.c:830
+msgid "can not use output modifiers with user-defined output"
+msgstr ""
+
+#: src/ps/sortformat.c:831
+msgid "-L/-T with H/m/-m and -o/-O/o/O is nonsense"
+msgstr ""
+
+#: src/ps/sortformat.c:889
+msgid "internal error: no PID or PPID for -j option"
+msgstr ""
+
+#: src/ps/sortformat.c:891
+msgid "lost my PGID"
+msgstr ""
+
+#: src/ps/sortformat.c:904
+msgid "internal error: no PRI for -c option"
+msgstr ""
+
+#: src/ps/sortformat.c:907
+msgid "lost my CLS"
+msgstr ""
+
+#: src/ps/sortformat.c:912
+msgid "-T with H/-m/m but no PID for SPID to follow"
+msgstr ""
+
+#: src/ps/sortformat.c:923
+msgid "-L with H/-m/m but no PID/PGID/SID/SESS for NLWP to follow"
+msgstr ""
+
+#: src/pwdx.c:41
+#, c-format
+msgid " %s [options] pid...\n"
+msgstr ""
+
+#: src/pwdx.c:117
+#, c-format
+msgid "invalid process id: %s"
+msgstr ""
+
+#: src/skill.c:285
+msgid "Unable to create pid Pids_info structure"
+msgstr ""
+
+#: src/skill.c:288 src/w.c:458
+msgid "Unable to load process information"
+msgstr ""
+
+#: src/skill.c:319
+#, c-format
+msgid " %s [signal] [options] <expression>\n"
+msgstr ""
+
+#: src/skill.c:323
+#, c-format
+msgid " %s [new priority] [options] <expression>\n"
+msgstr ""
+
+#: src/skill.c:327
+msgid " -f, --fast fast mode (not implemented)\n"
+msgstr ""
+
+#: src/skill.c:328
+msgid " -i, --interactive interactive\n"
+msgstr ""
+
+#: src/skill.c:329
+msgid " -l, --list list all signal names\n"
+msgstr ""
+
+#: src/skill.c:330
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr ""
+
+#: src/skill.c:331
+msgid " -n, --no-action do not actually kill processes; just print what would happen\n"
+msgstr ""
+
+#: src/skill.c:332
+msgid " -v, --verbose explain what is being done\n"
+msgstr ""
+
+#: src/skill.c:333
+msgid " -w, --warnings enable warnings (not implemented)\n"
+msgstr ""
+
+#: src/skill.c:335
+msgid ""
+"Expression can be: terminal, user, pid, command.\n"
+"The options below may be used to ensure correct interpretation.\n"
+msgstr ""
+
+#: src/skill.c:337
+msgid " -c, --command <command> expression is a command name\n"
+msgstr ""
+
+#: src/skill.c:338
+msgid " -p, --pid <pid> expression is a process id number\n"
+msgstr ""
+
+#: src/skill.c:339
+msgid " -t, --tty <tty> expression is a terminal\n"
+msgstr ""
+
+#: src/skill.c:340
+msgid " -u, --user <username> expression is a username\n"
+msgstr ""
+
+#: src/skill.c:342
+msgid "Alternatively, expression can be:\n"
+msgstr ""
+
+#: src/skill.c:343
+msgid ""
+" --ns <pid> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+
+#: src/skill.c:345
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option; available namespaces are\n"
+": ipc, mnt, net, pid, user, uts\n"
+msgstr ""
+
+#: src/skill.c:355
+#, c-format
+msgid ""
+"\n"
+"The default signal is TERM. Use -l or -L to list available signals.\n"
+"Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0.\n"
+"Alternate signals may be specified in three ways: -SIGKILL -KILL -9\n"
+msgstr ""
+
+#: src/skill.c:362
+#, c-format
+msgid ""
+"\n"
+"The default priority is +4. (snice +4 ...)\n"
+"Priority numbers range from +20 (slowest) to -20 (fastest).\n"
+"Negative priority numbers are restricted to administrative users.\n"
+msgstr ""
+
+#: src/skill.c:384
+#, c-format
+msgid "priority %lu out of range"
+msgstr ""
+
+#: src/skill.c:493
+#, c-format
+msgid "invalid pid number %s"
+msgstr ""
+
+#: src/skill.c:497
+msgid "error reading reference namespace information"
+msgstr ""
+
+#: src/skill.c:505
+msgid "invalid namespace list"
+msgstr ""
+
+#: src/skill.c:542
+msgid "no process selection criteria"
+msgstr ""
+
+#: src/skill.c:545
+msgid "general flags may not be repeated"
+msgstr ""
+
+#: src/skill.c:548
+msgid "-i makes no sense with -v, -f, and -n"
+msgstr ""
+
+#: src/skill.c:550
+msgid "-v makes no sense with -i and -f"
+msgstr ""
+
+#: src/skill.c:594
+#, c-format
+msgid "skill: \"%s\" is not supported\n"
+msgstr ""
+
+#: src/slabtop.c:108
+msgid " -d, --delay <secs> delay updates\n"
+msgstr ""
+
+#: src/slabtop.c:109
+msgid " -o, --once only display once, then exit\n"
+msgstr ""
+
+#: src/slabtop.c:110
+msgid " -s, --sort <char> specify sort criteria by character (see below)\n"
+msgstr ""
+
+#: src/slabtop.c:115
+msgid ""
+"\n"
+"The following are valid sort criteria:\n"
+msgstr ""
+
+#: src/slabtop.c:116
+msgid " a: sort by number of active objects\n"
+msgstr ""
+
+#: src/slabtop.c:117
+msgid " b: sort by objects per slab\n"
+msgstr ""
+
+#: src/slabtop.c:118
+msgid " c: sort by cache size\n"
+msgstr ""
+
+#: src/slabtop.c:119
+msgid " l: sort by number of slabs\n"
+msgstr ""
+
+#: src/slabtop.c:120
+msgid " v: sort by (non display) number of active slabs\n"
+msgstr ""
+
+#: src/slabtop.c:121
+msgid " n: sort by name\n"
+msgstr ""
+
+#: src/slabtop.c:122
+msgid " o: sort by number of objects (the default)\n"
+msgstr ""
+
+#: src/slabtop.c:123
+msgid " p: sort by (non display) pages per slab\n"
+msgstr ""
+
+#: src/slabtop.c:124
+msgid " s: sort by object size\n"
+msgstr ""
+
+#: src/slabtop.c:125
+msgid " u: sort by cache utilization\n"
+msgstr ""
+
+#: src/slabtop.c:188 src/slabtop.c:199
+msgid "Cannot combine -d and -o options"
+msgstr ""
+
+#: src/slabtop.c:190
+msgid "illegal delay"
+msgstr ""
+
+#: src/slabtop.c:192 src/tload.c:142 src/vmstat.c:1049
+msgid "delay must be positive integer"
+msgstr ""
+
+#: src/slabtop.c:236
+msgid "Error getting slab summary results"
+msgstr ""
+
+#. Translation Hint: Next five strings must not
+#. * exceed a length of 35 characters.
+#: src/slabtop.c:242
+#, no-c-format
+msgid "Active / Total Objects (% used)"
+msgstr ""
+
+#: src/slabtop.c:248
+#, no-c-format
+msgid "Active / Total Slabs (% used)"
+msgstr ""
+
+#: src/slabtop.c:254
+#, no-c-format
+msgid "Active / Total Caches (% used)"
+msgstr ""
+
+#: src/slabtop.c:260
+#, no-c-format
+msgid "Active / Total Size (% used)"
+msgstr ""
+
+#: src/slabtop.c:265
+msgid "Minimum / Average / Maximum Object"
+msgstr ""
+
+#. Translation Hint: Please keep alignment of the
+#. * following intact.
+#: src/slabtop.c:276
+msgid " OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME"
+msgstr ""
+
+#: src/slabtop.c:313 src/vmstat.c:767
+msgid "Unable to create slabinfo structure"
+msgstr ""
+
+#: src/slabtop.c:318
+msgid "terminal setting retrieval"
+msgstr ""
+
+#: src/slabtop.c:334 src/vmstat.c:774
+msgid "Unable to get slabinfo node data"
+msgstr ""
+
+#: src/slabtop.c:340 src/vmstat.c:776
+msgid "Unable to sort slab nodes"
+msgstr ""
+
+#: src/sysctl.c:118
+#, c-format
+msgid "Path is not under %s: %s"
+msgstr ""
+
+#: src/sysctl.c:136
+#, c-format
+msgid "separators should not be repeated: %s"
+msgstr ""
+
+#: src/sysctl.c:232
+#, c-format
+msgid " %s [options] [variable[=value] ...]\n"
+msgstr ""
+
+#: src/sysctl.c:235
+msgid " -a, --all display all variables\n"
+msgstr ""
+
+#: src/sysctl.c:236
+msgid " -A alias of -a\n"
+msgstr ""
+
+#: src/sysctl.c:237
+msgid " -X alias of -a\n"
+msgstr ""
+
+#: src/sysctl.c:238
+msgid " --deprecated include deprecated parameters to listing\n"
+msgstr ""
+
+#: src/sysctl.c:239
+msgid " --dry-run Print the key and values but do not write\n"
+msgstr ""
+
+#: src/sysctl.c:240
+msgid " -b, --binary print value without new line\n"
+msgstr ""
+
+#: src/sysctl.c:241
+msgid " -e, --ignore ignore unknown variables errors\n"
+msgstr ""
+
+#: src/sysctl.c:242
+msgid " -N, --names print variable names without values\n"
+msgstr ""
+
+#: src/sysctl.c:243
+msgid " -n, --values print only values of the given variable(s)\n"
+msgstr ""
+
+#: src/sysctl.c:244
+msgid " -p, --load[=<file>] read values from file\n"
+msgstr ""
+
+#: src/sysctl.c:245
+msgid " -f alias of -p\n"
+msgstr ""
+
+#: src/sysctl.c:246
+msgid " --system read values from all system directories\n"
+msgstr ""
+
+#: src/sysctl.c:247
+msgid ""
+" -r, --pattern <expression>\n"
+" select setting that match expression\n"
+msgstr ""
+
+#: src/sysctl.c:249
+msgid " -q, --quiet do not echo variable set\n"
+msgstr ""
+
+#: src/sysctl.c:250
+msgid " -w, --write enable writing a value to variable\n"
+msgstr ""
+
+#: src/sysctl.c:251
+msgid " -o does nothing\n"
+msgstr ""
+
+#: src/sysctl.c:252
+msgid " -x does nothing\n"
+msgstr ""
+
+#: src/sysctl.c:253
+msgid " -d alias of -h\n"
+msgstr ""
+
+#: src/sysctl.c:334 src/sysctl.c:390
+#, c-format
+msgid "\"%s\" is an unknown key"
+msgstr ""
+
+#: src/sysctl.c:352 src/sysctl.c:508 src/sysctl.c:545
+#, c-format
+msgid "cannot stat %s"
+msgstr ""
+
+#: src/sysctl.c:395 src/sysctl.c:437
+#, c-format
+msgid "permission denied on key '%s'"
+msgstr ""
+
+#: src/sysctl.c:402 src/sysctl.c:454
+#, c-format
+msgid "reading key \"%s\""
+msgstr ""
+
+#: src/sysctl.c:492
+#, c-format
+msgid "unable to open directory \"%s\""
+msgstr ""
+
+#: src/sysctl.c:557
+msgid "strdup key"
+msgstr ""
+
+#: src/sysctl.c:564 src/sysctl.c:571 src/sysctl.c:604
+#, c-format
+msgid "setting key \"%s\""
+msgstr ""
+
+#: src/sysctl.c:581
+#, c-format
+msgid "\"%s\" is an unknown key%s"
+msgstr ""
+
+#: src/sysctl.c:582 src/sysctl.c:591 src/sysctl.c:595
+msgid ", ignoring"
+msgstr ""
+
+#: src/sysctl.c:590
+#, c-format
+msgid "permission denied on key \"%s\"%s"
+msgstr ""
+
+#: src/sysctl.c:594
+#, c-format
+msgid "setting key \"%s\"%s"
+msgstr ""
+
+#: src/sysctl.c:669
+#, c-format
+msgid "%s(%d): invalid syntax, continuing..."
+msgstr ""
+
+#: src/sysctl.c:761
+#, c-format
+msgid "GLOB_TILDE is not supported on your platform, the tilde in \"%s\" won't be expanded."
+msgstr ""
+
+#: src/sysctl.c:767
+msgid "glob failed"
+msgstr ""
+
+#: src/sysctl.c:773
+#, c-format
+msgid "cannot open \"%s\""
+msgstr ""
+
+#: src/sysctl.c:877 src/sysctl.c:884
+#, c-format
+msgid "* Applying %s ...\n"
+msgstr ""
+
+#: src/sysctl.c:1050
+#, c-format
+msgid ""
+"no variables specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+
+#: src/sysctl.c:1054
+#, c-format
+msgid ""
+"options -N and -q cannot coexist\n"
+"Try `%s --help' for more information."
+msgstr ""
+
+#: src/tload.c:75 src/tload.c:77
+msgid "screen too small or too large"
+msgstr ""
+
+#: src/tload.c:80
+msgid "screen too small"
+msgstr ""
+
+#: src/tload.c:96
+#, c-format
+msgid " %s [options] [tty]\n"
+msgstr ""
+
+#: src/tload.c:98
+msgid " -d, --delay <secs> update delay in seconds\n"
+msgstr ""
+
+#: src/tload.c:99
+msgid " -s, --scale <num> vertical scale\n"
+msgstr ""
+
+#: src/tload.c:137
+msgid "scale cannot be negative"
+msgstr ""
+
+#: src/tload.c:144 src/vmstat.c:1051
+msgid "too large delay value"
+msgstr ""
+
+#: src/tload.c:159
+msgid "can not open tty"
+msgstr ""
+
+#: src/tload.c:182
+msgid "Load average file /proc/loadavg does not exist"
+msgstr ""
+
+#: src/tload.c:185
+msgid "Unable to get load average"
+msgstr ""
+
+#: src/tload.c:227 src/tload.c:229
+msgid "writing to tty failed"
+msgstr ""
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The following line pairs contain only plain text and consist of:
+#. . 1) a field name/column header - mostly upper case
+#. . 2) the related description - both upper and lower case
+#. .
+#. . To avoid truncation on the main top display, each column header
+#. . is noted with its maximum size, while a few are 'variable' width.
+#. . Names for the latter should probably be 10 or fewer characters.
+#. .
+#. . Those fields shown with a '+' are also eligible for user resizing
+#. . using the 'X' command. That means the default width might produce
+#. . truncation but need not if widened (see the man page 'X' command).
+#. .
+#. . All headers are subject to a maximum of 8 on the Fields Management
+#. . screen where truncation is entirely acceptable.
+#. .
+#. . The associated descriptions are always limited to 20 characters,
+#. . and are used only on the Fields Management screen.
+#. .
+#. . In all cases, fewer characters are just fine.
+#. .
+#. Translation Hint: maximum 'PID' = 5
+#: src/top/top_nls.c:152
+msgid "PID"
+msgstr ""
+
+#: src/top/top_nls.c:153
+msgid "Process Id"
+msgstr ""
+
+#. Translation Hint: maximum 'PPID' = 5
+#: src/top/top_nls.c:155
+msgid "PPID"
+msgstr ""
+
+#: src/top/top_nls.c:156
+msgid "Parent Process pid"
+msgstr ""
+
+#. Translation Hint: maximum 'UID' = 5 +
+#: src/top/top_nls.c:158
+msgid "UID"
+msgstr ""
+
+#: src/top/top_nls.c:159
+msgid "Effective User Id"
+msgstr ""
+
+#. Translation Hint: maximum 'USER' = 8 +
+#: src/top/top_nls.c:161 src/w.c:799
+msgid "USER"
+msgstr ""
+
+#: src/top/top_nls.c:162
+msgid "Effective User Name"
+msgstr ""
+
+#. Translation Hint: maximum 'RUID' = 5 +
+#: src/top/top_nls.c:164
+msgid "RUID"
+msgstr ""
+
+#: src/top/top_nls.c:165
+msgid "Real User Id"
+msgstr ""
+
+#. Translation Hint: maximum 'RUSER' = 8 +
+#: src/top/top_nls.c:167
+msgid "RUSER"
+msgstr ""
+
+#: src/top/top_nls.c:168
+msgid "Real User Name"
+msgstr ""
+
+#. Translation Hint: maximum 'SUID' = 5 +
+#: src/top/top_nls.c:170
+msgid "SUID"
+msgstr ""
+
+#: src/top/top_nls.c:171
+msgid "Saved User Id"
+msgstr ""
+
+#. Translation Hint: maximum 'SUSER' = 8 +
+#: src/top/top_nls.c:173
+msgid "SUSER"
+msgstr ""
+
+#: src/top/top_nls.c:174
+msgid "Saved User Name"
+msgstr ""
+
+#. Translation Hint: maximum 'GID' = 5 +
+#: src/top/top_nls.c:176
+msgid "GID"
+msgstr ""
+
+#: src/top/top_nls.c:177
+msgid "Group Id"
+msgstr ""
+
+#. Translation Hint: maximum 'GROUP' = 8 +
+#: src/top/top_nls.c:179
+msgid "GROUP"
+msgstr ""
+
+#: src/top/top_nls.c:180
+msgid "Group Name"
+msgstr ""
+
+#. Translation Hint: maximum 'PGRP' = 5
+#: src/top/top_nls.c:182
+msgid "PGRP"
+msgstr ""
+
+#: src/top/top_nls.c:183
+msgid "Process Group Id"
+msgstr ""
+
+#. Translation Hint: maximum 'TTY' = 8 +
+#: src/top/top_nls.c:185
+msgid "TTY"
+msgstr ""
+
+#: src/top/top_nls.c:186
+msgid "Controlling Tty"
+msgstr ""
+
+#. Translation Hint: maximum 'TPGID' = 5
+#: src/top/top_nls.c:188
+msgid "TPGID"
+msgstr ""
+
+#: src/top/top_nls.c:189
+msgid "Tty Process Grp Id"
+msgstr ""
+
+#. Translation Hint: maximum 'SID' = 5
+#: src/top/top_nls.c:191
+msgid "SID"
+msgstr ""
+
+#: src/top/top_nls.c:192
+msgid "Session Id"
+msgstr ""
+
+#. Translation Hint: maximum 'PR' = 3
+#: src/top/top_nls.c:194
+msgid "PR"
+msgstr ""
+
+#: src/top/top_nls.c:195
+msgid "Priority"
+msgstr ""
+
+#. Translation Hint: maximum 'NI' = 3
+#: src/top/top_nls.c:197
+msgid "NI"
+msgstr ""
+
+#: src/top/top_nls.c:198
+msgid "Nice Value"
+msgstr ""
+
+#. Translation Hint: maximum 'nTH' = 3
+#: src/top/top_nls.c:200
+msgid "nTH"
+msgstr ""
+
+#: src/top/top_nls.c:201
+msgid "Number of Threads"
+msgstr ""
+
+#. Translation Hint: maximum 'P' = 1
+#: src/top/top_nls.c:203
+msgid "P"
+msgstr ""
+
+#: src/top/top_nls.c:204
+msgid "Last Used Cpu (SMP)"
+msgstr ""
+
+#. Translation Hint: maximum '%CPU' = 4
+#: src/top/top_nls.c:206
+#, c-format
+msgid "%CPU"
+msgstr ""
+
+#: src/top/top_nls.c:207
+msgid "CPU Usage"
+msgstr ""
+
+#. Translation Hint: maximum '' = 6
+#: src/top/top_nls.c:209
+msgid "TIME"
+msgstr ""
+
+#: src/top/top_nls.c:210
+msgid "CPU Time"
+msgstr ""
+
+#. Translation Hint: maximum 'TIME+' = 9
+#: src/top/top_nls.c:212
+msgid "TIME+"
+msgstr ""
+
+#: src/top/top_nls.c:213
+msgid "CPU Time, hundredths"
+msgstr ""
+
+#. Translation Hint: maximum '%MEM' = 4
+#: src/top/top_nls.c:215
+msgid "%MEM"
+msgstr ""
+
+#: src/top/top_nls.c:216
+msgid "Memory Usage (RES)"
+msgstr ""
+
+#. Translation Hint: maximum 'VIRT' = 7
+#: src/top/top_nls.c:218
+msgid "VIRT"
+msgstr ""
+
+#: src/top/top_nls.c:219
+msgid "Virtual Image (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'SWAP' = 6
+#: src/top/top_nls.c:221
+msgid "SWAP"
+msgstr ""
+
+#: src/top/top_nls.c:222
+msgid "Swapped Size (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'RES' = 6
+#: src/top/top_nls.c:224
+msgid "RES"
+msgstr ""
+
+#: src/top/top_nls.c:225
+msgid "Resident Size (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'CODE' = 4
+#: src/top/top_nls.c:227
+msgid "CODE"
+msgstr ""
+
+#: src/top/top_nls.c:228
+msgid "Code Size (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'DATA' = 7
+#: src/top/top_nls.c:230
+msgid "DATA"
+msgstr ""
+
+#: src/top/top_nls.c:231
+msgid "Data+Stack (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'SHR' = 6
+#: src/top/top_nls.c:233
+msgid "SHR"
+msgstr ""
+
+#: src/top/top_nls.c:234
+msgid "Shared Memory (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'nMaj' = 4
+#: src/top/top_nls.c:236
+msgid "nMaj"
+msgstr ""
+
+#: src/top/top_nls.c:237
+msgid "Major Page Faults"
+msgstr ""
+
+#. Translation Hint: maximum 'nMin' = 4
+#: src/top/top_nls.c:239
+msgid "nMin"
+msgstr ""
+
+#: src/top/top_nls.c:240
+msgid "Minor Page Faults"
+msgstr ""
+
+#. Translation Hint: maximum 'nDRT' = 4
+#: src/top/top_nls.c:242
+msgid "nDRT"
+msgstr ""
+
+#: src/top/top_nls.c:243
+msgid "Dirty Pages Count"
+msgstr ""
+
+#. Translation Hint: maximum 'S' = 1
+#: src/top/top_nls.c:245
+msgid "S"
+msgstr ""
+
+#: src/top/top_nls.c:246
+msgid "Process Status"
+msgstr ""
+
+#. Translation Hint: maximum 'COMMAND' = variable
+#: src/top/top_nls.c:248
+msgid "COMMAND"
+msgstr ""
+
+#: src/top/top_nls.c:249
+msgid "Command Name/Line"
+msgstr ""
+
+#. Translation Hint: maximum 'WCHAN' = 10 +
+#: src/top/top_nls.c:251
+msgid "WCHAN"
+msgstr ""
+
+#: src/top/top_nls.c:252
+msgid "Sleeping in Function"
+msgstr ""
+
+#. Translation Hint: maximum 'Flags' = 8
+#: src/top/top_nls.c:254
+msgid "Flags"
+msgstr ""
+
+#: src/top/top_nls.c:255
+msgid "Task Flags <sched.h>"
+msgstr ""
+
+#. Translation Hint: maximum 'CGROUPS' = variable
+#: src/top/top_nls.c:257
+msgid "CGROUPS"
+msgstr ""
+
+#: src/top/top_nls.c:258
+msgid "Control Groups"
+msgstr ""
+
+#. Translation Hint: maximum 'SUPGIDS' = variable
+#: src/top/top_nls.c:260
+msgid "SUPGIDS"
+msgstr ""
+
+#: src/top/top_nls.c:261
+msgid "Supp Groups IDs"
+msgstr ""
+
+#. Translation Hint: maximum 'SUPGRPS' = variable
+#: src/top/top_nls.c:263
+msgid "SUPGRPS"
+msgstr ""
+
+#: src/top/top_nls.c:264
+msgid "Supp Groups Names"
+msgstr ""
+
+#. Translation Hint: maximum 'TGID' = 5
+#: src/top/top_nls.c:266
+msgid "TGID"
+msgstr ""
+
+#: src/top/top_nls.c:267
+msgid "Thread Group Id"
+msgstr ""
+
+#. Translation Hint: maximum 'OOMa' = 5
+#: src/top/top_nls.c:269
+msgid "OOMa"
+msgstr ""
+
+#: src/top/top_nls.c:270
+msgid "OOMEM Adjustment"
+msgstr ""
+
+#. Translation Hint: maximum 'OOMs' = 4
+#: src/top/top_nls.c:272
+msgid "OOMs"
+msgstr ""
+
+#: src/top/top_nls.c:273
+msgid "OOMEM Score current"
+msgstr ""
+
+#. Translation Hint: maximum 'ENVIRON' = variable
+#: src/top/top_nls.c:275
+msgid "ENVIRON"
+msgstr ""
+
+#. Translation Hint: the abbreviation 'vars' below is shorthand for
+#. 'variables'
+#: src/top/top_nls.c:278
+msgid "Environment vars"
+msgstr ""
+
+#. Translation Hint: maximum 'vMj' = 3
+#: src/top/top_nls.c:280
+msgid "vMj"
+msgstr ""
+
+#: src/top/top_nls.c:281
+msgid "Major Faults delta"
+msgstr ""
+
+#. Translation Hint: maximum 'vMn' = 3
+#: src/top/top_nls.c:283
+msgid "vMn"
+msgstr ""
+
+#: src/top/top_nls.c:284
+msgid "Minor Faults delta"
+msgstr ""
+
+#. Translation Hint: maximum 'USED' = 6
+#: src/top/top_nls.c:286
+msgid "USED"
+msgstr ""
+
+#: src/top/top_nls.c:287
+msgid "Res+Swap Size (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'nsIPC' = 10 +
+#: src/top/top_nls.c:289
+msgid "nsIPC"
+msgstr ""
+
+#: src/top/top_nls.c:290
+msgid "IPC namespace Inode"
+msgstr ""
+
+#. Translation Hint: maximum 'nsMNT' = 10 +
+#: src/top/top_nls.c:292
+msgid "nsMNT"
+msgstr ""
+
+#: src/top/top_nls.c:293
+msgid "MNT namespace Inode"
+msgstr ""
+
+#. Translation Hint: maximum 'nsNET' = 10 +
+#: src/top/top_nls.c:295
+msgid "nsNET"
+msgstr ""
+
+#: src/top/top_nls.c:296
+msgid "NET namespace Inode"
+msgstr ""
+
+#. Translation Hint: maximum 'nsPID' = 10 +
+#: src/top/top_nls.c:298
+msgid "nsPID"
+msgstr ""
+
+#: src/top/top_nls.c:299
+msgid "PID namespace Inode"
+msgstr ""
+
+#. Translation Hint: maximum 'nsUSER' = 10 +
+#: src/top/top_nls.c:301
+msgid "nsUSER"
+msgstr ""
+
+#: src/top/top_nls.c:302
+msgid "USER namespace Inode"
+msgstr ""
+
+#. Translation Hint: maximum 'nsUTS' = 10 +
+#: src/top/top_nls.c:304
+msgid "nsUTS"
+msgstr ""
+
+#: src/top/top_nls.c:305
+msgid "UTS namespace Inode"
+msgstr ""
+
+#. Translation Hint: maximum 'LXC' = 8 +
+#: src/top/top_nls.c:307
+msgid "LXC"
+msgstr ""
+
+#: src/top/top_nls.c:308
+msgid "LXC container name"
+msgstr ""
+
+#. Translation Hint: maximum 'RSan' = 6
+#: src/top/top_nls.c:310
+msgid "RSan"
+msgstr ""
+
+#: src/top/top_nls.c:311
+msgid "RES Anonymous (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'RSfd' = 6
+#: src/top/top_nls.c:313
+msgid "RSfd"
+msgstr ""
+
+#: src/top/top_nls.c:314
+msgid "RES File-based (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'RSlk' = 6
+#: src/top/top_nls.c:316
+msgid "RSlk"
+msgstr ""
+
+#: src/top/top_nls.c:317
+msgid "RES Locked (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'RSsh' = 6
+#: src/top/top_nls.c:319
+msgid "RSsh"
+msgstr ""
+
+#: src/top/top_nls.c:320
+msgid "RES Shared (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'CGNAME' = variable
+#: src/top/top_nls.c:322
+msgid "CGNAME"
+msgstr ""
+
+#: src/top/top_nls.c:323
+msgid "Control Group name"
+msgstr ""
+
+#. Translation Hint: maximum 'NU' = 2
+#: src/top/top_nls.c:325
+msgid "NU"
+msgstr ""
+
+#: src/top/top_nls.c:326
+msgid "Last Used NUMA node"
+msgstr ""
+
+#. Translation Hint: maximum 'LOGID' = 5 +
+#: src/top/top_nls.c:328
+msgid "LOGID"
+msgstr ""
+
+#: src/top/top_nls.c:329
+msgid "Login User Id"
+msgstr ""
+
+#. Translation Hint: maximum 'EXE' = variable
+#: src/top/top_nls.c:331
+msgid "EXE"
+msgstr ""
+
+#: src/top/top_nls.c:332
+msgid "Executable Path"
+msgstr ""
+
+#: src/top/top_nls.c:338
+msgid "Res Mem (smaps), KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'PSS' = 6
+#: src/top/top_nls.c:340
+msgid "PSS"
+msgstr ""
+
+#: src/top/top_nls.c:341
+msgid "Proportion RSS, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'PSan' = 6
+#: src/top/top_nls.c:343
+msgid "PSan"
+msgstr ""
+
+#: src/top/top_nls.c:344
+msgid "Proportion Anon, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'PSfd' = 6
+#: src/top/top_nls.c:346
+msgid "PSfd"
+msgstr ""
+
+#: src/top/top_nls.c:347
+msgid "Proportion File, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'PSsh' = 6
+#: src/top/top_nls.c:349
+msgid "PSsh"
+msgstr ""
+
+#: src/top/top_nls.c:350
+msgid "Proportion Shrd, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'USS' = 6
+#: src/top/top_nls.c:352
+msgid "USS"
+msgstr ""
+
+#: src/top/top_nls.c:353
+msgid "Unique RSS, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'ioR' = 6
+#: src/top/top_nls.c:355
+msgid "ioR"
+msgstr ""
+
+#: src/top/top_nls.c:356
+msgid "I/O Bytes Read"
+msgstr ""
+
+#. Translation Hint: maximum 'ioRop' = 5
+#: src/top/top_nls.c:358
+msgid "ioRop"
+msgstr ""
+
+#: src/top/top_nls.c:359
+msgid "I/O Read Operations"
+msgstr ""
+
+#. Translation Hint: maximum 'ioW' = 6
+#: src/top/top_nls.c:361
+msgid "ioW"
+msgstr ""
+
+#: src/top/top_nls.c:362
+msgid "I/O Bytes Written"
+msgstr ""
+
+#. Translation Hint: maximum 'ioWop' = 5
+#: src/top/top_nls.c:364
+msgid "ioWop"
+msgstr ""
+
+#: src/top/top_nls.c:365
+msgid "I/O Write Operations"
+msgstr ""
+
+#. Translation Hint: maximum 'AGID' = 5
+#: src/top/top_nls.c:367
+msgid "AGID"
+msgstr ""
+
+#: src/top/top_nls.c:368
+msgid "Autogroup Identifier"
+msgstr ""
+
+#. Translation Hint: maximum 'AGNI' = 4
+#: src/top/top_nls.c:370
+msgid "AGNI"
+msgstr ""
+
+#: src/top/top_nls.c:371
+msgid "Autogroup Nice Value"
+msgstr ""
+
+#. Translation Hint: maximum 'STARTED' = 7
+#: src/top/top_nls.c:373
+msgid "STARTED"
+msgstr ""
+
+#: src/top/top_nls.c:374
+msgid "Start Time from boot"
+msgstr ""
+
+#. Translation Hint: maximum 'ELAPSED' = 7
+#: src/top/top_nls.c:376
+msgid "ELAPSED"
+msgstr ""
+
+#: src/top/top_nls.c:377
+msgid "Elapsed Running Time"
+msgstr ""
+
+#. Translation Hint: maximum '%CUU' = 6
+#: src/top/top_nls.c:379
+#, c-format
+msgid "%CUU"
+msgstr ""
+
+#: src/top/top_nls.c:380
+msgid "CPU Utilization"
+msgstr ""
+
+#. Translation Hint: maximum '%CUC' = 7
+#: src/top/top_nls.c:382
+#, c-format
+msgid "%CUC"
+msgstr ""
+
+#: src/top/top_nls.c:383
+msgid "Utilization + child"
+msgstr ""
+
+#. Translation Hint: maximum 'nsCGROUP' = 10 +
+#: src/top/top_nls.c:385
+msgid "nsCGROUP"
+msgstr ""
+
+#: src/top/top_nls.c:386
+msgid "CGRP namespace Inode"
+msgstr ""
+
+#. Translation Hint: maximum 'nsTIME' = 10 +
+#: src/top/top_nls.c:388
+msgid "nsTIME"
+msgstr ""
+
+#: src/top/top_nls.c:389
+msgid "TIME namespace Inode"
+msgstr ""
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . This group of lines contains both plain text and c-format strings.
+#. .
+#. . Some strings reflect switches used to affect the running program
+#. . and should not be translated without also making corresponding
+#. . c-code logic changes.
+#. .
+#: src/top/top_nls.c:409
+#, c-format
+msgid ""
+"\tsignal %d (%s) was caught by %s, please\n"
+"\tsend bug reports to <procps@freelists.org>\n"
+msgstr ""
+
+#: src/top/top_nls.c:439
+#, c-format
+msgid "bad delay interval '%s'"
+msgstr ""
+
+#: src/top/top_nls.c:440
+#, c-format
+msgid "bad iterations argument '%s'"
+msgstr ""
+
+#: src/top/top_nls.c:441
+#, c-format
+msgid "pid limit (%d) exceeded"
+msgstr ""
+
+#: src/top/top_nls.c:442
+#, c-format
+msgid "bad pid '%s'"
+msgstr ""
+
+#: src/top/top_nls.c:443
+#, c-format
+msgid "-%c argument missing"
+msgstr ""
+
+#: src/top/top_nls.c:444
+#, c-format
+msgid "bad width arg '%s'"
+msgstr ""
+
+#: src/top/top_nls.c:445
+#, c-format
+msgid "unknown option '%s'"
+msgstr ""
+
+#: src/top/top_nls.c:446
+msgid "-d disallowed in \"secure\" mode"
+msgstr ""
+
+#: src/top/top_nls.c:447
+msgid "-d requires positive argument"
+msgstr ""
+
+#: src/top/top_nls.c:448
+msgid "On"
+msgstr ""
+
+#: src/top/top_nls.c:449
+msgid "Off"
+msgstr ""
+
+#: src/top/top_nls.c:450
+#, c-format
+msgid "%s from %s"
+msgstr ""
+
+#: src/top/top_nls.c:451
+#, c-format
+msgid "Forest mode %s"
+msgstr ""
+
+#: src/top/top_nls.c:452
+msgid "failed tty get"
+msgstr ""
+
+#: src/top/top_nls.c:453
+#, c-format
+msgid "failed tty set: %s"
+msgstr ""
+
+#: src/top/top_nls.c:454
+msgid "Choose field group (1 - 4)"
+msgstr ""
+
+#: src/top/top_nls.c:455
+msgid "Command disabled, 'A' mode required"
+msgstr ""
+
+#: src/top/top_nls.c:456
+#, c-format
+msgid "Command disabled, activate %s with '-' or '_'"
+msgstr ""
+
+#: src/top/top_nls.c:457
+msgid "No colors to map!"
+msgstr ""
+
+#: src/top/top_nls.c:458
+#, c-format
+msgid "Failed '%s' open: %s"
+msgstr ""
+
+#: src/top/top_nls.c:459
+#, c-format
+msgid "Wrote configuration to '%s'"
+msgstr ""
+
+#: src/top/top_nls.c:460
+#, c-format
+msgid "Change delay from %.1f to"
+msgstr ""
+
+#: src/top/top_nls.c:461
+#, c-format
+msgid "Show threads %s"
+msgstr ""
+
+#: src/top/top_nls.c:462
+#, c-format
+msgid "Irix mode %s"
+msgstr ""
+
+#: src/top/top_nls.c:463
+#, c-format
+msgid "PID to signal/kill [default pid = %d]"
+msgstr ""
+
+#: src/top/top_nls.c:464
+#, c-format
+msgid "Send pid %d signal [%d/sigterm]"
+msgstr ""
+
+#: src/top/top_nls.c:465
+#, c-format
+msgid "Failed signal pid '%d' with '%d': %s"
+msgstr ""
+
+#: src/top/top_nls.c:466
+msgid "Invalid signal"
+msgstr ""
+
+#: src/top/top_nls.c:467
+#, c-format
+msgid "PID to renice [default pid = %d]"
+msgstr ""
+
+#: src/top/top_nls.c:468
+#, c-format
+msgid "Renice PID %d to value"
+msgstr ""
+
+#: src/top/top_nls.c:469
+#, c-format
+msgid "Failed renice of PID %d to %d: %s"
+msgstr ""
+
+#: src/top/top_nls.c:470
+#, c-format
+msgid "Rename window '%s' to (1-3 chars)"
+msgstr ""
+
+#: src/top/top_nls.c:471
+#, c-format
+msgid "Cumulative time %s"
+msgstr ""
+
+#: src/top/top_nls.c:472
+#, c-format
+msgid "Maximum tasks = %d, change to (0 is unlimited)"
+msgstr ""
+
+#: src/top/top_nls.c:473
+msgid "Invalid maximum"
+msgstr ""
+
+#: src/top/top_nls.c:474
+msgid "Which user (blank for all)"
+msgstr ""
+
+#: src/top/top_nls.c:475
+msgid "Unknown command - try 'h' for help"
+msgstr ""
+
+#: src/top/top_nls.c:476
+#, c-format
+msgid "scroll coordinates: y = %d/%d (tasks), x = %d/%d (fields)"
+msgstr ""
+
+#: src/top/top_nls.c:477
+msgid "failed memory allocate"
+msgstr ""
+
+#: src/top/top_nls.c:478
+msgid "failed memory re-allocate"
+msgstr ""
+
+#: src/top/top_nls.c:479
+msgid "Unacceptable floating point"
+msgstr ""
+
+#: src/top/top_nls.c:480
+msgid "Invalid user"
+msgstr ""
+
+#: src/top/top_nls.c:481
+msgid "forest view"
+msgstr ""
+
+#: src/top/top_nls.c:482
+msgid "failed pid maximum size test"
+msgstr ""
+
+#: src/top/top_nls.c:483
+msgid "failed number of cpus test"
+msgstr ""
+
+#: src/top/top_nls.c:484
+#, c-format
+msgid "incompatible rcfile, you should delete '%s'"
+msgstr ""
+
+#: src/top/top_nls.c:485
+#, c-format
+msgid "window entry #%d corrupt, please delete '%s'"
+msgstr ""
+
+#: src/top/top_nls.c:486
+msgid "Unavailable in secure mode"
+msgstr ""
+
+#: src/top/top_nls.c:487
+msgid "Only 1 cpu detected"
+msgstr ""
+
+#: src/top/top_nls.c:488
+msgid "Unacceptable integer"
+msgstr ""
+
+#: src/top/top_nls.c:489
+msgid "conflicting process selections (U/p/u)"
+msgstr ""
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . kibibytes (1024 bytes)
+#: src/top/top_nls.c:492
+msgid "KiB"
+msgstr ""
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . mebibytes (1,048,576 bytes)
+#: src/top/top_nls.c:495
+msgid "MiB"
+msgstr ""
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . gibibytes (1,073,741,824 bytes)
+#: src/top/top_nls.c:498
+msgid "GiB"
+msgstr ""
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . tebibytes (1,099,511,627,776 bytes)
+#: src/top/top_nls.c:501
+msgid "TiB"
+msgstr ""
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . pebibytes (1,024 tebibytes)
+#: src/top/top_nls.c:504
+msgid "PiB"
+msgstr ""
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . exbibytes (1,024 pebibytes)
+#: src/top/top_nls.c:507
+msgid "EiB"
+msgstr ""
+
+#: src/top/top_nls.c:508
+msgid "Threads"
+msgstr ""
+
+#: src/top/top_nls.c:509
+msgid "Tasks"
+msgstr ""
+
+#. Translation Hint: The following "word" is meant to represent either a single
+#. . cpu or all of the processors in a multi-processor computer
+#. . (should be exactly 6 characters, excluding leading % & colon)
+#: src/top/top_nls.c:513
+#, c-format
+msgid "%Cpu(s):"
+msgstr ""
+
+#. Translation Hint: The following "word" is meant to represent a single processor
+#. and 'the Cp' prefix will be combined with a core id: 'p', 'e' or 'u'
+#. . (if 'Cp' is translated, it must be exactly 2 characters long)
+#: src/top/top_nls.c:517
+#, c-format
+msgid "%%Cp%c%-3d:"
+msgstr ""
+
+#. Translation Hint: The following word "another" must have 1 trailing space
+#: src/top/top_nls.c:519
+msgid "another "
+msgstr ""
+
+#: src/top/top_nls.c:520
+msgid "Locate next inactive, use \"L\""
+msgstr ""
+
+#: src/top/top_nls.c:521
+msgid "Locate string"
+msgstr ""
+
+#: src/top/top_nls.c:522
+#, c-format
+msgid "%s\"%s\" not found"
+msgstr ""
+
+#: src/top/top_nls.c:523
+#, c-format
+msgid "width incr is %d, change to (0 default, -1 auto)"
+msgstr ""
+
+#: src/top/top_nls.c:524
+msgid "rcfile has inspect/other-filter error(s), save anyway?"
+msgstr ""
+
+#: src/top/top_nls.c:525
+#, c-format
+msgid "unrecognized field name '%s'"
+msgstr ""
+
+#: src/top/top_nls.c:526
+msgid "even using field names only, window is now too small"
+msgstr ""
+
+#: src/top/top_nls.c:527
+msgid "Open Files"
+msgstr ""
+
+#: src/top/top_nls.c:528
+msgid "NUMA Info"
+msgstr ""
+
+#: src/top/top_nls.c:529
+msgid "Log"
+msgstr ""
+
+#: src/top/top_nls.c:530
+msgid "the '=' key will eventually show the actual file read or command(s) executed ..."
+msgstr ""
+
+#: src/top/top_nls.c:531
+msgid "demo"
+msgstr ""
+
+#: src/top/top_nls.c:532
+#, c-format
+msgid ""
+"This is simulated output representing the contents of some file or the output\n"
+"from some command. Exactly which commands and/or files are solely up to you.\n"
+"\n"
+"Although this text is for information purposes only, it can still be scrolled\n"
+"and searched like real output will be. You are encouraged to experiment with\n"
+"those features as explained in the prologue above.\n"
+"\n"
+"To enable real Inspect functionality, entries must be added to the end of the\n"
+"top personal personal configuration file. You could use your favorite editor\n"
+"to accomplish this, taking care not to disturb existing entries.\n"
+"\n"
+"Another way to add entries is illustrated below, but it risks overwriting the\n"
+"rcfile. Redirected echoes must not replace (>) but append (>>) to that file.\n"
+"\n"
+" /bin/echo -e \"pipe\\tOpen Files\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+" /bin/echo -e \"file\\tNUMA Info\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+" /bin/echo -e \"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr\" >> ~/.toprc\n"
+"\n"
+"If you don't know the location or name of the top rcfile, use the 'W' command\n"
+"and note those details. After backing up the current rcfile, try issuing the\n"
+"above echoes exactly as shown, replacing '.toprc' as appropriate. The safest\n"
+"approach would be to use copy then paste to avoid any typing mistakes.\n"
+"\n"
+"Finally, restart top to reveal what actual Inspect entries combined with this\n"
+"new command can offer. The possibilities are endless, especially considering\n"
+"that 'pipe' type entries can include shell scripts too!\n"
+"\n"
+"For additional important information, please consult the top(1) man document.\n"
+"Then, enhance top with your very own customized 'file' and/or 'pipe' entries.\n"
+"\n"
+"Enjoy!\n"
+msgstr ""
+
+#: src/top/top_nls.c:564
+msgid "to enable 'Y' press <Enter> then type 'W' and restart top"
+msgstr ""
+
+#: src/top/top_nls.c:565
+msgid "to enable 'Y' please consult the top man page (press Enter)"
+msgstr ""
+
+#: src/top/top_nls.c:566
+#, c-format
+msgid "Selection failed with: %s\n"
+msgstr ""
+
+#: src/top/top_nls.c:567
+#, c-format
+msgid "unable to inspect, pid %d not found"
+msgstr ""
+
+#: src/top/top_nls.c:568
+#, c-format
+msgid "inspect at PID [default pid = %d]"
+msgstr ""
+
+#: src/top/top_nls.c:569
+#, c-format
+msgid "%s: %*d-%-*d lines, %*d-%*d columns, %lu bytes read"
+msgstr ""
+
+#: src/top/top_nls.c:570
+msgid "patience please, working ..."
+msgstr ""
+
+#: src/top/top_nls.c:571
+msgid "working, use Ctrl-C to end ..."
+msgstr ""
+
+#. Translation Hint: Below are 2 abbreviations which can be as long as needed:
+#. . FLD = FIELD, VAL = VALUE
+#: src/top/top_nls.c:574
+#, c-format
+msgid "add filter #%d (%s) as: [!]FLD?VAL"
+msgstr ""
+
+#: src/top/top_nls.c:575
+msgid "ignoring case"
+msgstr ""
+
+#: src/top/top_nls.c:576
+msgid "case sensitive"
+msgstr ""
+
+#: src/top/top_nls.c:577
+msgid "duplicate filter was ignored"
+msgstr ""
+
+#: src/top/top_nls.c:578
+#, c-format
+msgid "'%s' filter delimiter is missing"
+msgstr ""
+
+#: src/top/top_nls.c:579
+#, c-format
+msgid "'%s' filter value is missing"
+msgstr ""
+
+#: src/top/top_nls.c:580
+msgid "include"
+msgstr ""
+
+#: src/top/top_nls.c:581
+msgid "exclude"
+msgstr ""
+
+#: src/top/top_nls.c:582
+#, c-format
+msgid "<Enter> to resume, filters: %s"
+msgstr ""
+
+#: src/top/top_nls.c:583
+msgid "none"
+msgstr ""
+
+#. Translation Hint: The following word 'Node' should be exactly
+#. 4 characters, excluding leading %%, fmt chars & colon)
+#: src/top/top_nls.c:586
+#, c-format
+msgid "%%Node%-2d:"
+msgstr ""
+
+#: src/top/top_nls.c:587
+#, c-format
+msgid "expand which numa node (0-%d)"
+msgstr ""
+
+#: src/top/top_nls.c:588
+msgid "invalid numa node"
+msgstr ""
+
+#: src/top/top_nls.c:589
+msgid "sorry, NUMA extensions unavailable"
+msgstr ""
+
+#. Translation Hint: 'Mem ' is an abbreviation for physical memory/ram
+#. . 'Swap' represents the linux swap file --
+#. . please make both translations exactly 4 characters,
+#. . padding with extra spaces as necessary
+#: src/top/top_nls.c:594
+msgid "Mem "
+msgstr ""
+
+#: src/top/top_nls.c:595
+msgid "Swap"
+msgstr ""
+
+#: src/top/top_nls.c:596
+#, c-format
+msgid "library failed memory statistics, at %d: %s"
+msgstr ""
+
+#: src/top/top_nls.c:597
+#, c-format
+msgid "library failed cpu statistics, at %d: %s"
+msgstr ""
+
+#: src/top/top_nls.c:598
+#, c-format
+msgid "library failed pids statistics, at %d: %s"
+msgstr ""
+
+#: src/top/top_nls.c:599
+#, c-format
+msgid "bad memory scaling arg '%s'"
+msgstr ""
+
+#: src/top/top_nls.c:600
+#, c-format
+msgid "PID to collapse/expand [default pid = %d]"
+msgstr ""
+
+#: src/top/top_nls.c:601
+msgid "wrong mode, command inactive"
+msgstr ""
+
+#: src/top/top_nls.c:602
+msgid "saving prevents older top from reading, save anyway?"
+msgstr ""
+
+#: src/top/top_nls.c:603
+#, c-format
+msgid "failed sem_init() at %d: %s"
+msgstr ""
+
+#: src/top/top_nls.c:604
+#, c-format
+msgid "failed pthread_create() at %d: %s"
+msgstr ""
+
+#: src/top/top_nls.c:605
+msgid "sorry, restricted namespace with reduced functionality"
+msgstr ""
+
+#: src/top/top_nls.c:606
+#, c-format
+msgid "set pid %d AGNI value to"
+msgstr ""
+
+#: src/top/top_nls.c:607
+msgid "valid AGNI range is -20 to +19"
+msgstr ""
+
+#: src/top/top_nls.c:608
+#, c-format
+msgid "autogroup open failed, %s"
+msgstr ""
+
+#: src/top/top_nls.c:609
+#, c-format
+msgid "autogroup write failed, %s"
+msgstr ""
+
+#: src/top/top_nls.c:610
+#, c-format
+msgid "command line for pid %d, %s"
+msgstr ""
+
+#: src/top/top_nls.c:611
+#, c-format
+msgid "control groups for pid %d, %s"
+msgstr ""
+
+#: src/top/top_nls.c:612
+#, c-format
+msgid "environment for pid %d, %s"
+msgstr ""
+
+#: src/top/top_nls.c:613
+#, c-format
+msgid "namespaces for pid %d, %s"
+msgstr ""
+
+#: src/top/top_nls.c:614
+msgid "n/a"
+msgstr ""
+
+#: src/top/top_nls.c:615
+#, c-format
+msgid "supplementary groups for pid %d, %s"
+msgstr ""
+
+#: src/top/top_nls.c:616
+msgid "message log, last 10 messages:"
+msgstr ""
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The next several text groups contain special escape sequences
+#. . representing values used to index a table at run-time.
+#. .
+#. . Each such sequence consists of a tilde (~) followed by an ascii
+#. . number in the range of '1' - '8'. Examples are '~2', '~8', etc.
+#. . These escape sequences must never themselves be translated but
+#. . could be deleted.
+#. .
+#. . If you remove these escape sequences (both tilde and number) it
+#. . would make translation easier. However, the ability to display
+#. . colors and bold text at run-time will have been lost.
+#. .
+#. . Additionally, each of these text groups was designed to display
+#. . in a 80x24 terminal window. Hopefully, any translations will
+#. . adhere to that goal lest the translated text be truncated.
+#. .
+#. . If you would like additional information regarding these strings,
+#. . please see the prologue to the show_special function in the top.c
+#. . source file.
+#. .
+#. . Caution:
+#. . The next three items represent pages for interacting with a user.
+#. . In all cases, the last lines of text must be treated with care.
+#. .
+#. . They must not end with a newline character so that at runtime the
+#. . cursor will remain on that final text line.
+#. .
+#. . Also, the special sequences (tilde+number) must not appear on the
+#. . last line (the one without the newline). So please avoid any line
+#. . wraps that could place them there.
+#. .
+#: src/top/top_nls.c:661
+#, c-format
+msgid ""
+"Help for Interactive Commands~2 - %s\n"
+"Window ~1%s~6: ~1Cumulative mode ~3%s~2. ~1System~6: ~1Delay ~3%.1f secs~2; ~1Secure mode ~3%s~2.\n"
+"\n"
+" Z~5,~1B~5,E,e Global: '~1Z~2' colors; '~1B~2' bold; '~1E~2'/'~1e~2' summary/task memory scale\n"
+" l,t,m,I,0 Toggle: '~1l~2' load avg; '~1t~2' task/cpu; '~1m~2' memory; '~1I~2' Irix; '~10~2' zeros\n"
+" 1,2,3,4,5 Toggle: '~11~2/~12~2/~13~2' cpu/numa views; '~14~2' cpus abreast; '~15~2' P/E-cores\n"
+" f,X Fields: '~1f~2' add/remove/order/sort; '~1X~2' increase fixed-width fields\n"
+"\n"
+" L,&,<,> . Locate: '~1L~2'/'~1&~2' find/again; Move sort column: '~1<~2'/'~1>~2' left/right\n"
+" R,H,J,C . Toggle: '~1R~2' Sort; '~1H~2' Threads; '~1J~2' Num justify; '~1C~2' Coordinates\n"
+" c,i,S,j . Toggle: '~1c~2' Cmd name/line; '~1i~2' Idle; '~1S~2' Time; '~1j~2' Str justify\n"
+" x~5,~1y~5 . Toggle highlights: '~1x~2' sort field; '~1y~2' running tasks\n"
+" z~5,~1b~5 . Toggle: '~1z~2' color/mono; '~1b~2' bold/reverse (only if 'x' or 'y')\n"
+" u,U,o,O . Filter by: '~1u~2'/'~1U~2' effective/any user; '~1o~2'/'~1O~2' other criteria\n"
+" n,#,^O . Set: '~1n~2'/'~1#~2' max tasks displayed; Show: ~1Ctrl~2+'~1O~2' other filter(s)\n"
+" V,v,F . Toggle: '~1V~2' forest view; '~1v~2' hide/show children; '~1F~2' keep focused\n"
+"\n"
+"%s ^G,K,N,U View: ctl groups ~1^G~2; cmdline ~1^K~2; environment ~1^N~2; supp groups ~1^U~2\n"
+" Y,!,^E,P Inspect '~1Y~2'; Combine Cpus '~1!~2'; Scale time ~1^E~2; View namespaces ~1^P~2\n"
+" W,q Write config file '~1W~2'; Quit '~1q~2'\n"
+" ( commands shown with '.' require a ~1visible~2 task display ~1window~2 ) \n"
+"Press '~1h~2' or '~1?~2' for help with ~1Windows~2,\n"
+"Type 'q' or <Esc> to continue "
+msgstr ""
+
+#: src/top/top_nls.c:687
+#, c-format
+msgid ""
+"Help for Windows / Field Groups~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+". Use multiple ~1windows~2, each with separate config opts (color,fields,sort,etc)\n"
+". The 'current' window controls the ~1Summary Area~2 and responds to your ~1Commands~2\n"
+" . that window's ~1task display~2 can be turned ~1Off~2 & ~1On~2, growing/shrinking others\n"
+" . with ~1NO~2 task display, some commands will be ~1disabled~2 ('i','R','n','c', etc)\n"
+" until a ~1different window~2 has been activated, making it the 'current' window\n"
+". You ~1change~2 the 'current' window by: ~1 1~2) cycling forward/backward;~1 2~2) choosing\n"
+" a specific field group; or~1 3~2) exiting the color mapping or fields screens\n"
+". Commands ~1available anytime -------------~2\n"
+" A . Alternate display mode toggle, show ~1Single~2 / ~1Multiple~2 windows\n"
+" g . Choose another field group and make it 'current', or change now\n"
+" by selecting a number from: ~1 1~2 =%s;~1 2~2 =%s;~1 3~2 =%s; or~1 4~2 =%s\n"
+". Commands ~1requiring~2 '~1A~2' mode~1 -------------~2\n"
+" G . Change the ~1Name~5 of the 'current' window/field group\n"
+" ~1*~4 a , w . Cycle through all four windows: '~1a~5' Forward; '~1w~5' Backward\n"
+" ~1*~4 - , _ . Show/Hide: '~1-~5' ~1Current~2 window; '~1_~5' all ~1Visible~2/~1Invisible~2\n"
+" The screen will be divided evenly between task displays. But you can make\n"
+" some ~1larger~2 or ~1smaller~2, using '~1n~2' and '~1i~2' commands. Then later you could:\n"
+" ~1*~4 = , + . Rebalance tasks: '~1=~5' ~1Current~2 window; '~1+~5' ~1Every~2 window\n"
+" (this also forces the ~1current~2 or ~1every~2 window to become visible)\n"
+"\n"
+"In '~1A~2' mode, '~1*~4' keys are your ~1essential~2 commands. Please try the '~1a~2' and '~1w~2'\n"
+"commands plus the 'g' sub-commands NOW. Press <Enter> to make 'Current' "
+msgstr ""
+
+#. Translation Notes ------------------------------------------------
+#. . The following 'Help for color mapping' simulated screen should
+#. . probably NOT be translated. It is terribly hard to follow in
+#. . this form and any translation could produce unpleasing results
+#. . that are unlikely to parallel the running top program.
+#. .
+#. . If you decide to proceed with translation, please take care
+#. . to not disturb the spaces and the tilde + number delimiters.
+#. .
+#: src/top/top_nls.c:722
+#, c-format
+msgid ""
+"Help for color mapping~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+" color - 04:25:44 up 8 days, 50 min, 7 users, load average:\n"
+" Tasks:~3 64 ~2total,~3 2 ~3running,~3 62 ~2sleeping,~3 0 ~2stopped,~3\n"
+" %%Cpu(s):~3 76.5 ~2user,~3 11.2 ~2system,~3 0.0 ~2nice,~3 12.3 ~2idle~3\n"
+" ~1 Nasty Message! ~4 -or- ~1Input Prompt~5\n"
+" ~1 PID TTY PR NI %%CPU TIME+ VIRT SWAP S COMMAND ~6\n"
+" 17284 ~8pts/2 ~7 8 0 0.0 0:00.75 1380 0 S /bin/bash ~8\n"
+" ~1 8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z~7\n"
+" 11005 ~8? ~7 9 0 0.0 0:02.50 2852 1008 S amor -sessi~8\n"
+" available toggles: ~1B~2 =disable bold globally (~1%s~2),\n"
+" ~1z~2 =color/mono (~1%s~2), ~1b~2 =tasks \"bold\"/reverse (~1%s~2)\n"
+"\n"
+"1) Select a ~1target~2 as an upper case letter, ~1current target~2 is ~1 %c ~4:\n"
+" S~2 = Summary Data,~1 M~2 = Messages/Prompts,\n"
+" H~2 = Column Heads,~1 T~2 = Task Information\n"
+"2) Select a ~1color~2 as a number or use the up/down arrow keys\n"
+" to raise/lower the %d colors value, ~1current color~2 is ~1 %d ~4:\n"
+" 0~2 = black,~1 1~2 = red, ~1 2~2 = green,~1 3~2 = yellow,\n"
+" 4~2 = blue, ~1 5~2 = magenta,~1 6~2 = cyan, ~1 7~2 = white\n"
+"\n"
+"3) Then use these keys when finished:\n"
+" 'q' or <Esc> to abort changes to window '~1%s~2'\n"
+" 'a' or 'w' to commit & change another, <Enter> to commit and end "
+msgstr ""
+
+#. Translation Hint: As is true for the text above, the "keys" shown to the left and
+#. . also embedded in the translatable text (along with escape seqs)
+#. . should never themselves be translated.
+#: src/top/top_nls.c:751
+msgid " d,k,r,^R '~1d~2' set delay; '~1k~2' kill; '~1r~2' renice; ~1Ctrl~2+'~1R~2' renice autogroup\n"
+msgstr ""
+
+#. Translation Hint:
+#. . This Fields Management header should be 3 lines long so as
+#. . to allow 1 blank line before the fields & descriptions.
+#. . If absolutely necessary, 4 lines could be used (but never more).
+#. .
+#: src/top/top_nls.c:759
+#, c-format
+msgid ""
+"Fields Management~2 for window ~1%s~6, whose current sort field is ~1%s~2\n"
+" Navigate with Up/Dn, Right selects for move then <Enter> or Left commits,\n"
+" 'd' or <Space> toggles display, 's' sets sort. Use 'q' or <Esc> to end!\n"
+msgstr ""
+
+#. Translation Hint:
+#. . The next 5 items must each be translated as a single line.
+#. .
+#: src/top/top_nls.c:767
+#, c-format
+msgid "%s:~3 %3u ~2total,~3 %3u ~2running,~3 %3u ~2sleeping,~3 %3u ~2stopped,~3 %3u ~2zombie~3\n"
+msgstr ""
+
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt
+#: src/top/top_nls.c:773
+#, c-format
+msgid "%s~3 %#5.1f ~2us,~3 %#5.1f ~2sy,~3 %#5.1f ~2ni,~3 %#5.1f ~2id,~3 %#5.1f ~2wa,~3 %#5.1f ~2hi,~3 %#5.1f ~2si~3 ~1"
+msgstr ""
+
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt, st = steal time
+#: src/top/top_nls.c:779
+#, c-format
+msgid "%s~3%#5.1f ~2us,~3%#5.1f ~2sy,~3%#5.1f ~2ni,~3%#5.1f ~2id,~3%#5.1f ~2wa,~3%#5.1f ~2hi,~3%#5.1f ~2si,~3%#5.1f ~2st~3 ~1"
+msgstr ""
+
+#. Translation Hint: next 2 must be treated together, with WORDS above & below aligned
+#: src/top/top_nls.c:783
+#, c-format
+msgid "%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used,~3 %9.9s~2buff/cache~3 ~1 "
+msgstr ""
+
+#: src/top/top_nls.c:785
+#, c-format
+msgid "%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used.~3 %9.9s~2avail %s~3"
+msgstr ""
+
+#. Translation Hint:
+#. . The next 2 headers for 'Inspection' must each be 3 lines or less
+#. .
+#: src/top/top_nls.c:791
+#, c-format
+msgid ""
+"Inspection~2 Pause at: pid ~1%d~6, running ~1%s~6\n"
+"Use~2: left/right then <Enter> to ~1select~5 an option; 'q' or <Esc> to ~1end~5 !\n"
+"Options~2: ~1%s\n"
+msgstr ""
+
+#: src/top/top_nls.c:796
+#, c-format
+msgid ""
+"Inspection~2 View at pid: ~1%s~3, running ~1%s~3. Locating: ~1%s~6\n"
+"Use~2: left/right/up/down/etc to ~1navigate~5 the output; 'L'/'&' to ~1locate~5/~1next~5.\n"
+"Or~2: <Enter> to ~1select another~5; 'q' or <Esc> to ~1end~5 !\n"
+msgstr ""
+
+#: src/uptime.c:51 src/uptime.c:123
+msgid "Cannot get system uptime"
+msgstr ""
+
+#: src/uptime.c:67
+msgid " -p, --pretty show uptime in pretty format\n"
+msgstr ""
+
+#: src/uptime.c:69
+msgid " -s, --since system up since\n"
+msgstr ""
+
+#: src/vmstat.c:220
+#, c-format
+msgid " %s [options] [delay [count]]\n"
+msgstr ""
+
+#: src/vmstat.c:223
+msgid " -a, --active active/inactive memory\n"
+msgstr ""
+
+#: src/vmstat.c:224
+msgid " -f, --forks number of forks since boot\n"
+msgstr ""
+
+#: src/vmstat.c:225
+msgid " -m, --slabs slabinfo\n"
+msgstr ""
+
+#: src/vmstat.c:226
+msgid " -n, --one-header do not redisplay header\n"
+msgstr ""
+
+#: src/vmstat.c:227
+msgid " -s, --stats event counter statistics\n"
+msgstr ""
+
+#: src/vmstat.c:228
+msgid " -d, --disk disk statistics\n"
+msgstr ""
+
+#: src/vmstat.c:229
+msgid " -D, --disk-sum summarize disk statistics\n"
+msgstr ""
+
+#: src/vmstat.c:230
+msgid " -p, --partition <dev> partition specific statistics\n"
+msgstr ""
+
+#: src/vmstat.c:231
+msgid " -S, --unit <char> define display unit\n"
+msgstr ""
+
+#: src/vmstat.c:232
+msgid " -w, --wide wide output\n"
+msgstr ""
+
+#: src/vmstat.c:233
+msgid " -t, --timestamp show timestamp\n"
+msgstr ""
+
+#: src/vmstat.c:234
+msgid " -y, --no-first skips first line of output\n"
+msgstr ""
+
+#: src/vmstat.c:253
+msgid "procs -----------memory---------- ---swap-- -----io---- -system-- -------cpu-------"
+msgstr ""
+
+#: src/vmstat.c:255
+msgid "--procs-- -----------------------memory---------------------- ---swap-- -----io---- -system-- ----------cpu----------"
+msgstr ""
+
+#: src/vmstat.c:256 src/vmstat.c:619
+msgid " -----timestamp-----"
+msgstr ""
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:275
+msgid "r"
+msgstr ""
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:277
+msgid "b"
+msgstr ""
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:279
+msgid "swpd"
+msgstr ""
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:281
+msgid "free"
+msgstr ""
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:283
+msgid "inact"
+msgstr ""
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:285
+msgid "buff"
+msgstr ""
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:287
+msgid "active"
+msgstr ""
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:289
+msgid "cache"
+msgstr ""
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:291
+msgid "si"
+msgstr ""
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:293
+msgid "so"
+msgstr ""
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:295
+msgid "bi"
+msgstr ""
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:297
+msgid "bo"
+msgstr ""
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:299
+msgid "in"
+msgstr ""
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:301
+msgid "cs"
+msgstr ""
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:303
+msgid "us"
+msgstr ""
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:305
+msgid "sy"
+msgstr ""
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:307
+msgid "id"
+msgstr ""
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:309
+msgid "wa"
+msgstr ""
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:311
+msgid "st"
+msgstr ""
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:313
+msgid "gu"
+msgstr ""
+
+#: src/vmstat.c:374 src/vmstat.c:870
+msgid "Unable to create vmstat structure"
+msgstr ""
+
+#: src/vmstat.c:376 src/vmstat.c:866 src/vmstat.c:919
+msgid "Unable to create system stat structure"
+msgstr ""
+
+#: src/vmstat.c:380
+msgid "Unable to get uptime"
+msgstr ""
+
+#: src/vmstat.c:391 src/vmstat.c:472 src/vmstat.c:874
+msgid "Unable to select memory information"
+msgstr ""
+
+#: src/vmstat.c:405 src/vmstat.c:458 src/vmstat.c:868
+msgid "Unable to select stat information"
+msgstr ""
+
+#. Translation Hint: Translating folloging disk partition
+#. * header fields that follow (marked with max x chars) might
+#. * not work, unless manual page is translated as well.
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:565
+msgid "reads"
+msgstr ""
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:567
+msgid "read sectors"
+msgstr ""
+
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:569
+msgid "writes"
+msgstr ""
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:571
+msgid "requested writes"
+msgstr ""
+
+#: src/vmstat.c:584 src/vmstat.c:687 src/vmstat.c:813
+msgid "Unable to create diskstat structure"
+msgstr ""
+
+#: src/vmstat.c:587 src/vmstat.c:593
+#, c-format
+msgid "Disk/Partition %s not found"
+msgstr ""
+
+#: src/vmstat.c:616
+msgid "disk- ------------reads------------ ------------writes----------- -----IO------"
+msgstr ""
+
+#: src/vmstat.c:618
+msgid "disk- -------------------reads------------------- -------------------writes------------------ ------IO-------"
+msgstr ""
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:637 src/vmstat.c:645
+msgid "total"
+msgstr ""
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:639 src/vmstat.c:647
+msgid "merged"
+msgstr ""
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:641 src/vmstat.c:649
+msgid "sectors"
+msgstr ""
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:643 src/vmstat.c:651
+msgid "ms"
+msgstr ""
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:653
+msgid "cur"
+msgstr ""
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:655
+msgid "sec"
+msgstr ""
+
+#: src/vmstat.c:694 src/vmstat.c:815
+msgid "Unable to retrieve disk statistics"
+msgstr ""
+
+#. Translation Hint: Translating folloging slab fields that
+#. * follow (marked with max x chars) might not work, unless
+#. * manual page is translated as well.
+#. Translation Hint: max 24 chars
+#: src/vmstat.c:741
+msgid "Cache"
+msgstr ""
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:743
+msgid "Num"
+msgstr ""
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:745
+msgid "Total"
+msgstr ""
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:747
+msgid "Size"
+msgstr ""
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:749
+msgid "Pages"
+msgstr ""
+
+#: src/vmstat.c:836
+#, c-format
+msgid "%13d disks\n"
+msgstr ""
+
+#: src/vmstat.c:837
+#, c-format
+msgid "%13d partitions\n"
+msgstr ""
+
+#: src/vmstat.c:838
+#, c-format
+msgid "%13lu total reads\n"
+msgstr ""
+
+#: src/vmstat.c:839
+#, c-format
+msgid "%13lu merged reads\n"
+msgstr ""
+
+#: src/vmstat.c:840
+#, c-format
+msgid "%13lu read sectors\n"
+msgstr ""
+
+#: src/vmstat.c:841
+#, c-format
+msgid "%13lu milli reading\n"
+msgstr ""
+
+#: src/vmstat.c:842
+#, c-format
+msgid "%13lu writes\n"
+msgstr ""
+
+#: src/vmstat.c:843
+#, c-format
+msgid "%13lu merged writes\n"
+msgstr ""
+
+#: src/vmstat.c:844
+#, c-format
+msgid "%13lu written sectors\n"
+msgstr ""
+
+#: src/vmstat.c:845
+#, c-format
+msgid "%13lu milli writing\n"
+msgstr ""
+
+#: src/vmstat.c:846
+#, c-format
+msgid "%13lu inprogress IO\n"
+msgstr ""
+
+#: src/vmstat.c:847
+#, c-format
+msgid "%13lu milli spent IO\n"
+msgstr ""
+
+#: src/vmstat.c:848
+#, c-format
+msgid "%13lu milli weighted IO\n"
+msgstr ""
+
+#: src/vmstat.c:876
+#, c-format
+msgid "%13lu %s total memory\n"
+msgstr ""
+
+#: src/vmstat.c:877
+#, c-format
+msgid "%13lu %s used memory\n"
+msgstr ""
+
+#: src/vmstat.c:878
+#, c-format
+msgid "%13lu %s active memory\n"
+msgstr ""
+
+#: src/vmstat.c:879
+#, c-format
+msgid "%13lu %s inactive memory\n"
+msgstr ""
+
+#: src/vmstat.c:880
+#, c-format
+msgid "%13lu %s free memory\n"
+msgstr ""
+
+#: src/vmstat.c:881
+#, c-format
+msgid "%13lu %s buffer memory\n"
+msgstr ""
+
+#: src/vmstat.c:882
+#, c-format
+msgid "%13lu %s swap cache\n"
+msgstr ""
+
+#: src/vmstat.c:883
+#, c-format
+msgid "%13lu %s total swap\n"
+msgstr ""
+
+#: src/vmstat.c:884
+#, c-format
+msgid "%13lu %s used swap\n"
+msgstr ""
+
+#: src/vmstat.c:885
+#, c-format
+msgid "%13lu %s free swap\n"
+msgstr ""
+
+#: src/vmstat.c:886
+#, c-format
+msgid "%13lld non-nice user cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:887
+#, c-format
+msgid "%13lld nice user cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:888
+#, c-format
+msgid "%13lld system cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:889
+#, c-format
+msgid "%13lld idle cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:890
+#, c-format
+msgid "%13lld IO-wait cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:891
+#, c-format
+msgid "%13lld IRQ cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:892
+#, c-format
+msgid "%13lld softirq cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:893
+#, c-format
+msgid "%13lld stolen cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:894
+#, c-format
+msgid "%13lld non-nice guest cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:895
+#, c-format
+msgid "%13lld nice guest cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:896
+#, c-format
+msgid "%13lu K paged in\n"
+msgstr ""
+
+#: src/vmstat.c:897
+#, c-format
+msgid "%13lu K paged out\n"
+msgstr ""
+
+#: src/vmstat.c:898
+#, c-format
+msgid "%13lu pages swapped in\n"
+msgstr ""
+
+#: src/vmstat.c:899
+#, c-format
+msgid "%13lu pages swapped out\n"
+msgstr ""
+
+#: src/vmstat.c:900
+#, c-format
+msgid "%13lu interrupts\n"
+msgstr ""
+
+#: src/vmstat.c:901
+#, c-format
+msgid "%13lu CPU context switches\n"
+msgstr ""
+
+#: src/vmstat.c:902
+#, c-format
+msgid "%13lu boot time\n"
+msgstr ""
+
+#: src/vmstat.c:903 src/vmstat.c:921
+#, c-format
+msgid "%13lu forks\n"
+msgstr ""
+
+#. Translation Hint: do not change argument characters
+#: src/vmstat.c:1024
+msgid "-S requires k, K, m or M (default is KiB)"
+msgstr ""
+
+#: src/watch.c:94
+#, c-format
+msgid " %s [options] command\n"
+msgstr ""
+
+#: src/watch.c:96
+msgid " -b, --beep beep if command has a non-zero exit\n"
+msgstr ""
+
+#: src/watch.c:97
+msgid " -c, --color interpret ANSI color and style sequences\n"
+msgstr ""
+
+#: src/watch.c:98
+msgid " -C, --no-color do not interpret ANSI color and style sequences\n"
+msgstr ""
+
+#: src/watch.c:99
+msgid ""
+" -d, --differences[=<permanent>]\n"
+" highlight changes between updates\n"
+msgstr ""
+
+#: src/watch.c:101
+msgid " -e, --errexit exit if command has a non-zero exit\n"
+msgstr ""
+
+#: src/watch.c:102
+msgid " -g, --chgexit exit when output from command changes\n"
+msgstr ""
+
+#: src/watch.c:103
+msgid ""
+" -q, --equexit <cycles>\n"
+" exit when output from command does not change\n"
+msgstr ""
+
+#: src/watch.c:105
+msgid " -n, --interval <secs> seconds to wait between updates\n"
+msgstr ""
+
+#: src/watch.c:106
+msgid " -p, --precise attempt run command in precise intervals\n"
+msgstr ""
+
+#: src/watch.c:107
+msgid " -r, --no-rerun do not rerun program on window resize\n"
+msgstr ""
+
+#: src/watch.c:108
+msgid " -t, --no-title turn off header\n"
+msgstr ""
+
+#: src/watch.c:109
+msgid " -w, --no-wrap turn off line wrapping\n"
+msgstr ""
+
+#: src/watch.c:110
+msgid " -x, --exec pass command to exec instead of \"sh -c\"\n"
+msgstr ""
+
+#: src/watch.c:113
+msgid " -v, --version output version information and exit\n"
+msgstr ""
+
+#: src/watch.c:485
+#, c-format
+msgid "Every %.1fs: "
+msgstr ""
+
+#: src/watch.c:486
+#, c-format
+msgid "%s: %s"
+msgstr ""
+
+#: src/watch.c:575
+msgid "unable to create IPC pipes"
+msgstr ""
+
+#: src/watch.c:585
+msgid "unable to fork process"
+msgstr ""
+
+#: src/watch.c:590
+msgid "dup2 failed"
+msgstr ""
+
+#: src/watch.c:597
+#, c-format
+msgid "unable to execute '%s'"
+msgstr ""
+
+#: src/watch.c:614
+msgid "fdopen"
+msgstr ""
+
+#: src/watch.c:788
+msgid "waitpid"
+msgstr ""
+
+#: src/watch.c:796
+msgid "command exit with a non-zero status, press a key to exit"
+msgstr ""
+
+#: src/watch.c:863
+msgid "Could not parse interval from WATCH_INTERVAL"
+msgstr ""
+
+#: src/watch.c:954
+#, c-format
+msgid "unicode handling error\n"
+msgstr ""
+
+#: src/watch.c:960
+#, c-format
+msgid "unicode handling error (malloc)\n"
+msgstr ""
+
+#: src/w.c:289 src/w.c:304
+#, c-format
+msgid " %2lludays"
+msgstr ""
+
+#. Translation Hint: Minutes:Seconds
+#. Translation Hint: Hours:Minutes
+#: src/w.c:298 src/w.c:308
+#, c-format
+msgid " %2llu:%02um"
+msgstr ""
+
+#. Translation Hint: Seconds:Centiseconds
+#: src/w.c:316
+#, c-format
+msgid " %2llu.%02us"
+msgstr ""
+
+#: src/w.c:656
+#, c-format
+msgid " %s [options] [user]\n"
+msgstr ""
+
+#: src/w.c:658
+msgid " -h, --no-header do not print header\n"
+msgstr ""
+
+#: src/w.c:659
+msgid " -u, --no-current ignore current process username\n"
+msgstr ""
+
+#: src/w.c:660
+msgid " -s, --short short format\n"
+msgstr ""
+
+#: src/w.c:661
+msgid " -f, --from show remote hostname field\n"
+msgstr ""
+
+#: src/w.c:662
+msgid " -o, --old-style old style output\n"
+msgstr ""
+
+#: src/w.c:663
+msgid " -i, --ip-addr display IP address instead of hostname (if possible)\n"
+msgstr ""
+
+#: src/w.c:664
+msgid " -p, --pids show the PID(s) of processes in WHAT\n"
+msgstr ""
+
+#: src/w.c:763
+#, c-format
+msgid "User length environment PROCPS_USERLEN must be between 8 and %i, ignoring.\n"
+msgstr ""
+
+#: src/w.c:773
+#, c-format
+msgid "from length environment PROCPS_FROMLEN must be between 8 and %d, ignoring\n"
+msgstr ""
+
+#. Translation Hint: Following five uppercase messages are
+#. * headers. Try to keep alignment intact.
+#: src/w.c:799
+#, c-format
+msgid "%-*s TTY "
+msgstr ""
+
+#: src/w.c:801
+msgid "FROM"
+msgstr ""
+
+#: src/w.c:803
+#, c-format
+msgid " LOGIN@ IDLE JCPU PCPU WHAT\n"
+msgstr ""
+
+#: src/w.c:805
+#, c-format
+msgid " IDLE WHAT\n"
+msgstr ""
+
+#: src/w.c:815
+msgid "error getting sessions"
+msgstr ""
+
+#: src/w.c:823
+msgid "get user name failed"
+msgstr ""
+
+#: local/c.h:153
+msgid ""
+"\n"
+"Usage:\n"
+msgstr ""
+
+#: local/c.h:154
+msgid ""
+"\n"
+"Options:\n"
+msgstr ""
+
+#: local/c.h:155
+msgid "\n"
+msgstr ""
+
+#: local/c.h:156
+msgid " -h, --help display this help and exit\n"
+msgstr ""
+
+#: local/c.h:157
+msgid " -V, --version output version information and exit\n"
+msgstr ""
+
+#: local/c.h:158
+#, c-format
+msgid ""
+"\n"
+"For more details see %s.\n"
+msgstr ""
+
+#: local/c.h:160
+#, c-format
+msgid "%s from %s\n"
+msgstr ""
diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo
new file mode 100644
index 0000000..5ce0b39
--- /dev/null
+++ b/po/pt_BR.gmo
Binary files differ
diff --git a/po/pt_BR.po b/po/pt_BR.po
new file mode 100644
index 0000000..8c1f6df
--- /dev/null
+++ b/po/pt_BR.po
@@ -0,0 +1,5139 @@
+# Brazilian Portuguese translation for procps-ng.
+# Copyright (C) 2021 Free Software Foundation, Inc.
+# This file is distributed under the same license as the procps-ng package.
+# Rafael Fontenelle <rafaelff@gnome.org>, 2018-2021.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: procps-ng 3.3.17rc1\n"
+"Report-Msgid-Bugs-To: procps@freelists.org\n"
+"POT-Creation-Date: 2023-08-19 17:38+1000\n"
+"PO-Revision-Date: 2021-02-02 09:45-0300\n"
+"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n"
+"Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge."
+"net>\n"
+"Language: pt_BR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n > 1)\n"
+"X-Generator: Gtranslator 3.38.0\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+
+#: local/fileutils.c:38
+msgid "write error"
+msgstr "erro de escrita"
+
+#: src/free.c:74 src/slabtop.c:106 src/uptime.c:65
+#, c-format
+msgid " %s [options]\n"
+msgstr " %s [opções]\n"
+
+#: src/free.c:76
+msgid " -b, --bytes show output in bytes\n"
+msgstr " -b, --bytes mostra a saída em bytes\n"
+
+#: src/free.c:77
+msgid " --kilo show output in kilobytes\n"
+msgstr " --kilo mostra a saída em kilobytes\n"
+
+#: src/free.c:78
+msgid " --mega show output in megabytes\n"
+msgstr " --mega mostra a saída em megabytes\n"
+
+#: src/free.c:79
+msgid " --giga show output in gigabytes\n"
+msgstr " --giga mostra a saída em gigabytes\n"
+
+#: src/free.c:80
+msgid " --tera show output in terabytes\n"
+msgstr " --tera mostra a saída em terabytes\n"
+
+#: src/free.c:81
+msgid " --peta show output in petabytes\n"
+msgstr " --peta mostra a saída em petabytes\n"
+
+#: src/free.c:82
+msgid " -k, --kibi show output in kibibytes\n"
+msgstr " -k, --kibi mostra a saída em kibibytes\n"
+
+#: src/free.c:83
+msgid " -m, --mebi show output in mebibytes\n"
+msgstr " -m, --mebi mostra a saída em mebibytes\n"
+
+#: src/free.c:84
+msgid " -g, --gibi show output in gibibytes\n"
+msgstr " -g, --gibi mostra a saída em gibibytes\n"
+
+#: src/free.c:85
+msgid " --tebi show output in tebibytes\n"
+msgstr " --tebi mostra a saída em tebibytes\n"
+
+#: src/free.c:86
+msgid " --pebi show output in pebibytes\n"
+msgstr " --pebi mostra a saída em pebibytes\n"
+
+#: src/free.c:87
+msgid " -h, --human show human-readable output\n"
+msgstr " -h, --human mostra a saída legível por humanos\n"
+
+#: src/free.c:88
+msgid " --si use powers of 1000 not 1024\n"
+msgstr " --si usa potências de 1000, e não de 1024\n"
+
+#: src/free.c:89
+msgid " -l, --lohi show detailed low and high memory statistics\n"
+msgstr ""
+" -l, --lohi mostra estatísticas detalhadas de memória baixa e alta\n"
+
+#: src/free.c:90
+#, fuzzy
+msgid " -L, --line show output on a single line\n"
+msgstr " -k, --kibi mostra a saída em kibibytes\n"
+
+#: src/free.c:91
+msgid " -t, --total show total for RAM + swap\n"
+msgstr " -t, --total mostra o total de RAM + swap\n"
+
+#: src/free.c:92
+msgid " -v, --committed show committed memory and commit limit\n"
+msgstr ""
+
+#: src/free.c:93
+msgid " -s N, --seconds N repeat printing every N seconds\n"
+msgstr " -s N, --seconds N repete impressão a cada N segundos\n"
+
+#: src/free.c:94
+msgid " -c N, --count N repeat printing N times, then exit\n"
+msgstr " -c N, --count N repete impressão por N vezes e, então, sai\n"
+
+#: src/free.c:95
+msgid " -w, --wide wide output\n"
+msgstr " -w, --wide saída ampla\n"
+
+#: src/free.c:97 src/w.c:666
+msgid " --help display this help and exit\n"
+msgstr " --help exibe esta mensagem de ajuda e sai\n"
+
+#: src/free.c:172
+#, fuzzy
+msgid "Multiple unit options don't make sense."
+msgstr "Várias opções de unidade não faz sentido."
+
+#: src/free.c:341
+#, c-format
+msgid "seconds argument `%s' is not positive number"
+msgstr "o argumento de segundos \"%s\" não é um número positivo"
+
+#: src/free.c:347
+msgid "failed to parse count argument"
+msgstr "falha ao analisar a quantidade de argumentos"
+
+#: src/free.c:350
+#, c-format
+msgid "failed to parse count argument: '%s'"
+msgstr "falha ao analisar a quantidade de argumentos: \"%s\""
+
+#: src/free.c:370
+msgid "Memory information file /proc/meminfo does not exist"
+msgstr ""
+
+#: src/free.c:373 src/vmstat.c:378 src/vmstat.c:872
+#, fuzzy
+msgid "Unable to create meminfo structure"
+msgstr "não foi possível criar pipes IPC"
+
+# Coloquei em minúsculo para padronizar; usado em "KB swap"
+#. Translation Hint: These are shortened column headers
+#. * that are all 7 characters long. Use spaces and right
+#. * align if the translation is shorter.
+#.
+#: src/free.c:381
+#, fuzzy
+msgid "SwapUse"
+msgstr "swap"
+
+#: src/free.c:382
+#, fuzzy
+msgid "CachUse"
+msgstr "Cache"
+
+#: src/free.c:384
+msgid " MemUse"
+msgstr ""
+
+#: src/free.c:385
+msgid "MemFree"
+msgstr ""
+
+#: src/free.c:395
+#, c-format
+msgid ""
+" total used free shared buffers "
+"cache available"
+msgstr ""
+" total usada livre compart. buffers "
+"cache disponível"
+
+#: src/free.c:397
+#, c-format
+msgid ""
+" total used free shared buff/cache "
+"available"
+msgstr ""
+" total usada livre compart. buff/cache "
+"disponível"
+
+#: src/free.c:400
+msgid "Mem:"
+msgstr "Mem.:"
+
+#: src/free.c:423
+msgid "Low:"
+msgstr "Baixa:"
+
+#: src/free.c:429
+msgid "High:"
+msgstr "Alta:"
+
+#: src/free.c:436
+msgid "Swap:"
+msgstr "Swap:"
+
+#: src/free.c:443
+msgid "Total:"
+msgstr "Total:"
+
+#: src/free.c:456
+msgid "Comm:"
+msgstr ""
+
+#: src/kill.c:40
+#, c-format
+msgid " %s [options] <pid> [...]\n"
+msgstr " %s [opções] <pid> [...]\n"
+
+#: src/kill.c:42
+msgid " <pid> [...] send signal to every <pid> listed\n"
+msgstr " <pid> [...] envia sinal a cada <pid> listado\n"
+
+#: src/kill.c:43
+msgid ""
+" -<signal>, -s, --signal <signal>\n"
+" specify the <signal> to be sent\n"
+msgstr ""
+" -<sinal>, -s, --signal <sinal>\n"
+" especifica o <sinal> a ser enviado\n"
+
+#: src/kill.c:45
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr " -q, --queue <valor> valor inteiro a ser enviado com o sinal\n"
+
+#: src/kill.c:46
+msgid ""
+" -l, --list=[<signal>] list all signal names, or convert one to a name\n"
+msgstr ""
+" -l, --list [=<sinal>] lista todos nomes de sinais ou converte um para um "
+"nome\n"
+
+#: src/kill.c:47
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr ""
+" -L, --table lista todos nomes de sinais em uma tabela nice\n"
+
+#: src/kill.c:112
+#, c-format
+msgid "unknown signal name %s"
+msgstr "nome de sinal desconhecido %s"
+
+#: src/kill.c:131
+msgid "must be an integer value to be passed with the signal."
+msgstr "deve ser um valor inteiro a ser passado com o sinal."
+
+#: src/kill.c:136
+#, c-format
+msgid "invalid argument %c"
+msgstr "argumento inválido %c"
+
+#: src/kill.c:146 src/pgrep.c:792 src/pidof.c:250 src/pidof.c:290
+#: src/sysctl.c:867
+msgid "internal error"
+msgstr "erro interno"
+
+#: src/kill.c:158 src/pmap.c:771 src/pmap.c:786 src/skill.c:381 src/skill.c:465
+#: src/tload.c:135 src/tload.c:140 src/vmstat.c:1047 src/vmstat.c:1057
+#: src/watch.c:891 src/watch.c:906
+msgid "failed to parse argument"
+msgstr "falha ao analisar argumento"
+
+#: src/pgrep.c:92 src/pidof.c:40 src/skill.c:74
+msgid "integer overflow"
+msgstr "estouro de interno"
+
+#: src/pgrep.c:155
+#, c-format
+msgid " %s [options] <pattern>\n"
+msgstr " %s [opções] <padrão>\n"
+
+#: src/pgrep.c:159
+msgid " -d, --delimiter <string> specify output delimiter\n"
+msgstr " -d, --delimiter <texto> especifica o delimitador de saída\n"
+
+#: src/pgrep.c:160
+msgid " -l, --list-name list PID and process name\n"
+msgstr " -l, --list-name lista PID e nome do processo\n"
+
+#: src/pgrep.c:161
+msgid " -a, --list-full list PID and full command line\n"
+msgstr " -a, --list-full lista PID e linha de comando completa\n"
+
+#: src/pgrep.c:162
+msgid " -v, --inverse negates the matching\n"
+msgstr " -v, --inverse nega a correspondência\n"
+
+#: src/pgrep.c:163
+msgid " -w, --lightweight list all TID\n"
+msgstr " -w, --lightweight lista todos os TID\n"
+
+#: src/pgrep.c:166
+#, fuzzy
+msgid " -<sig> signal to send (either number or name)\n"
+msgstr " -<sin>, --signal <sin> sinal para enviar (número ou nome)\n"
+
+#: src/pgrep.c:167
+msgid " -H, --require-handler match only if signal handler is present\n"
+msgstr ""
+
+#: src/pgrep.c:168
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr " -q, --queue <valor> valor inteiro a ser enviado com o sinal\n"
+
+#: src/pgrep.c:169
+msgid " -e, --echo display what is killed\n"
+msgstr " -e, --echo exibe o que é terminado\n"
+
+#: src/pgrep.c:173
+msgid " -e, --echo display PIDs before waiting\n"
+msgstr " -e, --echo exibe PIDs antes de aguardar\n"
+
+#: src/pgrep.c:177
+msgid " -c, --count count of matching processes\n"
+msgstr " -c, --count quantidade de processos correspondentes\n"
+
+#: src/pgrep.c:178
+msgid " -f, --full use full process name to match\n"
+msgstr ""
+" -f, --full usa nome de processo completo para corresponder\n"
+
+#: src/pgrep.c:179
+msgid " -g, --pgroup <PGID,...> match listed process group IDs\n"
+msgstr ""
+" -g, --pgroup <PGID,...> corresponde os IDs de grupo de processo listados\n"
+
+#: src/pgrep.c:180
+msgid " -G, --group <GID,...> match real group IDs\n"
+msgstr " -G, --group <GID,...> corresponde IDs de grupo reais\n"
+
+#: src/pgrep.c:181
+msgid " -i, --ignore-case match case insensitively\n"
+msgstr ""
+" -i, --ignore-case corresponde sem diferenciar maiúsculo/minúsculo\n"
+
+#: src/pgrep.c:182
+msgid " -n, --newest select most recently started\n"
+msgstr " -n, --newest seleciona os iniciados mais recentes\n"
+
+#: src/pgrep.c:183
+msgid " -o, --oldest select least recently started\n"
+msgstr " -o, --oldest seleciona os iniciados menos recentes\n"
+
+#: src/pgrep.c:184
+msgid " -O, --older <seconds> select where older than seconds\n"
+msgstr " -o, --older <segundos> seleciona onde mais antigo que segundos\n"
+
+#: src/pgrep.c:185
+msgid ""
+" -P, --parent <PPID,...> match only child processes of the given parent\n"
+msgstr ""
+" -P, --parent <PPID,...> corresponde apenas processos filhos do pai dado\n"
+
+#: src/pgrep.c:186
+msgid " -s, --session <SID,...> match session IDs\n"
+msgstr " -s, --session <SID,...> corresponde IDs de sessão\n"
+
+#: src/pgrep.c:187
+#, fuzzy
+msgid " --signal <sig> signal to send (either number or name)\n"
+msgstr " -<sin>, --signal <sin> sinal para enviar (número ou nome)\n"
+
+#: src/pgrep.c:188
+msgid " -t, --terminal <tty,...> match by controlling terminal\n"
+msgstr " -t, --terminal <tty,...> corresponde por terminal de controle\n"
+
+#: src/pgrep.c:189
+msgid " -u, --euid <ID,...> match by effective IDs\n"
+msgstr " -u, --euid <ID,...> corresponde por IDs efetivos\n"
+
+#: src/pgrep.c:190
+msgid " -U, --uid <ID,...> match by real IDs\n"
+msgstr " -U, --uid <ID,...> corresponde por IDs reais\n"
+
+#: src/pgrep.c:191
+msgid " -x, --exact match exactly with the command name\n"
+msgstr ""
+" -x, --exact corresponde exatamente com o nome de comando\n"
+
+#: src/pgrep.c:192
+msgid " -F, --pidfile <file> read PIDs from file\n"
+msgstr " -F, --pidfile <arquivo> lê PIDs do arquivo\n"
+
+#: src/pgrep.c:193
+msgid " -L, --logpidfile fail if PID file is not locked\n"
+msgstr " -L, --logpidfile falha se arquivo PID não estiver travado\n"
+
+#: src/pgrep.c:194
+msgid " -r, --runstates <state> match runstates [D,S,Z,...]\n"
+msgstr ""
+" -r, --runstates <estado> corresponde estados de execução [D,S,Z,...]\n"
+
+#: src/pgrep.c:195
+msgid " -A, --ignore-ancestors exclude our ancestors from results\n"
+msgstr ""
+
+#: src/pgrep.c:196
+#, fuzzy
+msgid " --cgroup <grp,...> match by cgroup v2 names\n"
+msgstr " -G, --group <GID,...> corresponde IDs de grupo reais\n"
+
+#: src/pgrep.c:197
+msgid ""
+" --ns <PID> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+" --ns <PID> corresponde os processos que pertencem ao\n"
+" mesmo espaço de nomes que <pid>\n"
+
+#: src/pgrep.c:199
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option.\n"
+" Available namespaces: ipc, mnt, net, pid, user, "
+"uts\n"
+msgstr ""
+" --nslist <ns,...> lista quais espaços de nomes serão considerados\n"
+" para a opção --ns.\n"
+" Opções disponíveis: ipc, mnt, net, pid, user, "
+"uts\n"
+
+#: src/pgrep.c:224 src/pgrep.c:700 src/w.c:455
+#, fuzzy
+msgid "Unable to create pid info structure"
+msgstr "não foi possível criar pipes IPC"
+
+#: src/pgrep.c:388
+#, c-format
+msgid "invalid user name: %s"
+msgstr "nome de usuário inválido: %s"
+
+#: src/pgrep.c:405
+#, c-format
+msgid "invalid group name: %s"
+msgstr "nome de grupo inválido: %s"
+
+#: src/pgrep.c:416
+#, c-format
+msgid "invalid process group: %s"
+msgstr "grupo de processo inválido: %s"
+
+#: src/pgrep.c:428
+#, c-format
+msgid "invalid session id: %s"
+msgstr "id de sessão inválida: %s"
+
+#: src/pgrep.c:440
+#, c-format
+msgid "not a number: %s"
+msgstr "não um número: %s"
+
+#: src/pgrep.c:490
+#, fuzzy, c-format
+msgid "not a hex string: %s"
+msgstr "não um número: %s"
+
+#: src/pgrep.c:525 src/skill.c:162
+#, fuzzy
+msgid "Unable to read process namespace information"
+msgstr "erro ao ler informação de espaço de nomes referência"
+
+#: src/pgrep.c:612
+#, fuzzy, c-format
+msgid "regex error: %s"
+msgstr "erro: %s\n"
+
+#: src/pgrep.c:695
+msgid "Error reading reference namespace information\n"
+msgstr "Erro ao ler informação de espaço de nomes referência\n"
+
+#: src/pgrep.c:809
+#, c-format
+msgid ""
+"pattern that searches for process name longer than 15 characters will result "
+"in zero matches\n"
+"Try `%s -f' option to match against the complete command line."
+msgstr ""
+"o padrão que pesquisa por nomes de processo maiores que 15 caracteres vai "
+"resultar em zero correspondências\n"
+"Tente a opção \"%s -f\" para corresponder com a linha de comando completa."
+
+#: src/pgrep.c:924
+#, fuzzy, c-format
+msgid "Unknown signal \"%s\"."
+msgstr "nome de sinal desconhecido %s"
+
+#: src/pgrep.c:1090
+#, c-format
+msgid ""
+"-L without -F makes no sense\n"
+"Try `%s --help' for more information."
+msgstr ""
+"-L sem -F não faz sentido\n"
+"Tente \"%s --help\" para mais informações."
+
+#: src/pgrep.c:1097
+#, c-format
+msgid ""
+"pidfile not valid\n"
+"Try `%s --help' for more information."
+msgstr ""
+"arquivo de pid não válido\n"
+"Tente \"%s --help\" para mais informações."
+
+#: src/pgrep.c:1106
+#, c-format
+msgid ""
+"only one pattern can be provided\n"
+"Try `%s --help' for more information."
+msgstr ""
+"apenas um padrão pode ser fornecido\n"
+"Tente \"%s --help\" para mais informações."
+
+#: src/pgrep.c:1110
+#, c-format
+msgid ""
+"no matching criteria specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+"nenhum critério de ocorrência especificado\n"
+"Tente \"%s --help\" para mais informações."
+
+#: src/pgrep.c:1162
+#, c-format
+msgid "%s killed (pid %lu)\n"
+msgstr "%s terminado (pid %lu)\n"
+
+#: src/pgrep.c:1169
+#, c-format
+msgid "killing pid %ld failed"
+msgstr "terminação de pid %ld falhou"
+
+#: src/pgrep.c:1181
+#, c-format
+msgid "waiting for %s (pid %lu)\n"
+msgstr "aguardando por %s (pid %lu)\n"
+
+#: src/pgrep.c:1185
+msgid "pidfd_open() not implemented in Linux < 5.3"
+msgstr ""
+
+#: src/pgrep.c:1188
+#, c-format
+msgid "opening pid %ld failed"
+msgstr "abertura do pid %ld falhou"
+
+#: src/pgrep.c:1202
+msgid "epoll_wait failed"
+msgstr "epoll_wait falhou"
+
+#: src/pidof.c:75
+#, c-format
+msgid " %s [options] [program [...]]\n"
+msgstr " %s [opções] [programa [...]]\n"
+
+#: src/pidof.c:77
+msgid " -s, --single-shot return one PID only\n"
+msgstr " -s, --single-shot returna um PID apenas\n"
+
+#: src/pidof.c:78
+msgid " -c, --check-root omit processes with different root\n"
+msgstr " -c, --check-root omite processos com raízes diferentes\n"
+
+#: src/pidof.c:79
+msgid " -q, quiet mode, only set the exit code\n"
+msgstr " -q, modo quieto, só define o código de saída\n"
+
+#: src/pidof.c:80
+msgid " -w, --with-workers show kernel workers too\n"
+msgstr " -w, --with-workers mostra workers do kernel também\n"
+
+#: src/pidof.c:81
+msgid " -x also find shells running the named scripts\n"
+msgstr ""
+" -x também localiza shells executando o scripts "
+"dados\n"
+
+#: src/pidof.c:82
+msgid " -o, --omit-pid <PID,...> omit processes with PID\n"
+msgstr " -o, --omit-pid <PID,...> omite processos com o(s) PID(s)\n"
+
+#: src/pidof.c:83
+#, fuzzy
+msgid " -t, --lightweight list threads too\n"
+msgstr " -w, --lightweight lista todos os TID\n"
+
+#: src/pidof.c:84
+msgid " -S, --separator SEP use SEP as separator put between PIDs"
+msgstr " -S, --separator SEP usa SEP como separador entre PIDs"
+
+#: src/pidof.c:293
+#, c-format
+msgid "illegal omit pid value (%s)!\n"
+msgstr "valor ilegal (%s) de omissão de pid!\n"
+
+#: src/pmap.c:72
+msgid "Address"
+msgstr "Endereço"
+
+#: src/pmap.c:73
+msgid "Offset"
+msgstr "Deslocamento"
+
+#: src/pmap.c:74
+msgid "Device"
+msgstr "Dispositivo"
+
+#: src/pmap.c:75
+msgid "Mapping"
+msgstr "Mapeamento"
+
+#: src/pmap.c:79
+msgid "Perm"
+msgstr "Perm"
+
+#: src/pmap.c:80
+msgid "Inode"
+msgstr "Nó-I"
+
+#: src/pmap.c:83
+msgid "Kbytes"
+msgstr "Kbytes"
+
+#: src/pmap.c:84
+msgid "Mode"
+msgstr "Modo"
+
+#. Translation Hint: With the next 5 fields, notice how an extra space
+#. has been added ahead of one 'KiB' so that they all
+#. align. You need not preserve such alignment.
+#. Translation Hint: maximum 'RSS' = 6
+#: src/pmap.c:85 src/top/top_nls.c:337
+msgid "RSS"
+msgstr "RSS"
+
+# memória modificada (suja)
+#: src/pmap.c:86
+msgid "Dirty"
+msgstr "Suja"
+
+#: src/pmap.c:120
+#, c-format
+msgid " %s [options] PID [PID ...]\n"
+msgstr " %s [opções] PID [PID ...]\n"
+
+#: src/pmap.c:122
+msgid " -x, --extended show details\n"
+msgstr " -x, --extended mostra detalhes\n"
+
+#: src/pmap.c:123
+msgid " -X show even more details\n"
+msgstr " -X mostra ainda mais detalhes\n"
+
+#: src/pmap.c:124
+msgid " WARNING: format changes according to /proc/PID/smaps\n"
+msgstr ""
+" AVISO: alterações de formato, de acordo com /proc/PID/smaps\n"
+
+#: src/pmap.c:125
+msgid " -XX show everything the kernel provides\n"
+msgstr " -XX mostra tudo que o kernel fornece\n"
+
+#: src/pmap.c:126
+msgid " -c, --read-rc read the default rc\n"
+msgstr " -c, --read-rc lê o rc padrão\n"
+
+#: src/pmap.c:127
+msgid " -C, --read-rc-from=<file> read the rc from file\n"
+msgstr " -C, --read-rc-from=<arq> lê o rc do arquivo\n"
+
+#: src/pmap.c:128
+msgid " -n, --create-rc create new default rc\n"
+msgstr " -n, --create-rc cria um novo rc padrão\n"
+
+#: src/pmap.c:129
+msgid " -N, --create-rc-to=<file> create new rc to file\n"
+msgstr " -N, --create-rc-to=<arq> cria um novo rc para arquivo\n"
+
+#: src/pmap.c:130
+msgid " NOTE: pid arguments are not allowed with -n, -N\n"
+msgstr " NOTA: argumentos de pid não são permitidos com -n, -N\n"
+
+#: src/pmap.c:131
+msgid " -d, --device show the device format\n"
+msgstr " -d, --device mostra o formato do dispositivo\n"
+
+#: src/pmap.c:132
+msgid " -q, --quiet do not display header and footer\n"
+msgstr " -q, --quiet não exibe cabeçalho e rodapé\n"
+
+#: src/pmap.c:133
+msgid " -p, --show-path show path in the mapping\n"
+msgstr " -p, --show-path mostra o caminho no mapeamento\n"
+
+#: src/pmap.c:134
+msgid " -A, --range=<low>[,<high>] limit results to the given range\n"
+msgstr ""
+" -A, --range=<baixo>[,<alto>]\n"
+" limita resultados ao intervalo dado\n"
+
+#: src/pmap.c:215
+msgid "shared memory detach"
+msgstr "destacar memória compartilhada"
+
+#: src/pmap.c:220
+msgid "shared memory remove"
+msgstr "remover memória compartilhada"
+
+# anon = anonymous
+#: src/pmap.c:245
+msgid " [ anon ]"
+msgstr " [ anôn ]"
+
+#: src/pmap.c:248
+msgid " [ stack ]"
+msgstr " [ pilha ]"
+
+#: src/pmap.c:334 src/pmap.c:340
+msgid "Unknown format in smaps file!"
+msgstr "Formato desconhecido no arquivo smaps!"
+
+#: src/pmap.c:365
+#, fuzzy
+msgid "ERROR: memory allocation failed"
+msgstr "alocação de memória falhou"
+
+#: src/pmap.c:382
+msgid "inconsistent detail field in smaps file, line:\n"
+msgstr "campo de detalhes inconsistente no arquivo smaps, linha:\n"
+
+#: src/pmap.c:731
+msgid "total kB"
+msgstr "kB total"
+
+#: src/pmap.c:742
+#, c-format
+msgid "mapped: %ldK writeable/private: %ldK shared: %ldK\n"
+msgstr "mapeado: %ldK escrevível/privado: %ldK compartilhado: %ldK\n"
+
+#. Translation Hint: keep total string length
+#. * as 24 characters. Adjust %16 if needed
+#: src/pmap.c:751
+#, c-format
+msgid " total %16ldK\n"
+msgstr " total %16ldK\n"
+
+#. Translation Hint: keep total string length
+#. * as 16 characters. Adjust %8 if needed
+#: src/pmap.c:757
+#, c-format
+msgid " total %8ldK\n"
+msgstr " total %8ldK\n"
+
+#: src/pmap.c:832
+#, c-format
+msgid "config line too long - line %d"
+msgstr "linha de configuração muito longa - linha %d"
+
+#: src/pmap.c:857
+#, c-format
+msgid "unsupported section found in the config - line %d"
+msgstr "seção sem suporte encontrada na configuração - linha %d"
+
+#: src/pmap.c:860 src/pmap.c:871 src/pmap.c:882 src/pmap.c:905 src/pmap.c:917
+#, c-format
+msgid "syntax error found in the config - line %d"
+msgstr "erro de sintaxe encontrada na configuração - linha %d"
+
+#: src/pmap.c:887 src/pmap.c:1010
+msgid "memory allocation failed"
+msgstr "alocação de memória falhou"
+
+#: src/pmap.c:939
+msgid "the file already exists - delete or rename it first"
+msgstr "o arquivo já existe - exclua-o ou renomeie-o primeiro"
+
+#: src/pmap.c:1002
+msgid "HOME variable undefined"
+msgstr "variável HOME não definida"
+
+#: src/pmap.c:1061
+msgid "option -r is ignored as SunOS compatibility"
+msgstr "a opção -r é ignorada como compatibilidade com SunOS"
+
+#: src/pmap.c:1108
+msgid "options -c, -C, -d, -n, -N, -x, -X are mutually exclusive"
+msgstr "as opções -c, -C, -d, -n, -N, -x e -X são mutualmente exclusivas"
+
+#: src/pmap.c:1111
+msgid "options -p, -q are mutually exclusive with -n, -N"
+msgstr "as opções -p e -q são mutualmente exclusivas com -n e -N"
+
+#: src/pmap.c:1114 src/pmap.c:1163
+msgid "too many arguments"
+msgstr "argumentos demais"
+
+#: src/pmap.c:1118
+msgid "rc file successfully created, feel free to edit the content"
+msgstr ""
+"arquivo rc criado com sucesso, sinta-se à vontade para editar seu conteúdo"
+
+#: src/pmap.c:1121
+msgid "couldn't create the rc file"
+msgstr "não foi possível criar o arquivo rc"
+
+#: src/pmap.c:1133
+#, c-format
+msgid "~/.%src file successfully created, feel free to edit the content"
+msgstr ""
+"arquivo ~/.%src criado com sucesso, sinta-se à vontade para editar seu "
+"conteúdo"
+
+#: src/pmap.c:1136
+#, c-format
+msgid "couldn't create ~/.%src"
+msgstr "não foi possível criar ~/.%src"
+
+#: src/pmap.c:1141
+msgid "argument missing"
+msgstr "faltando argumento"
+
+#: src/pmap.c:1154
+msgid "couldn't read the rc file"
+msgstr "não foi possível ler o arquivo rc"
+
+#: src/pmap.c:1156
+#, c-format
+msgid "couldn't read ~/.%src"
+msgstr "não foi possível ler ~/.%src"
+
+#: src/pmap.c:1165 src/pmap.c:1190
+msgid "library failed pids statistics"
+msgstr ""
+
+#: src/ps/display.c:61
+#, c-format
+msgid "Signal %d (%s) caught by %s (%s).\n"
+msgstr "Sinal %d (%s) capturado por %s (%s).\n"
+
+#: src/ps/display.c:75 src/ps/display.c:252 src/ps/display.c:407
+#: src/ps/output.c:2359 src/ps/parser.c:509 src/ps/parser.c:756
+#: src/ps/select.c:95 src/ps/sortformat.c:263 src/ps/sortformat.c:301
+#: src/ps/sortformat.c:549
+msgid "please report this bug"
+msgstr "por favor, relate esse erro"
+
+#: src/ps/display.c:315 src/ps/display.c:484
+#, c-format
+msgid "fatal library error, reap\n"
+msgstr ""
+
+#: src/ps/display.c:365
+#, c-format
+msgid "could not find ppid\n"
+msgstr "não foi possível localizar ppid\n"
+
+#: src/ps/display.c:375
+#, c-format
+msgid "could not find start_time\n"
+msgstr "não foi possível localizar start_time\n"
+
+#: src/ps/global.c:287
+#, c-format
+msgid "your %dx%d screen size is bogus. expect trouble\n"
+msgstr "sua tela de tamanho %dx%d é inválida; espere problemas\n"
+
+#: src/ps/global.c:360 src/ps/global.c:372
+msgid "environment specified an unknown personality"
+msgstr "o ambiente especificou uma personalidade desconhecida"
+
+#: src/ps/global.c:364
+#, c-format
+msgid "cannot strdup() personality text\n"
+msgstr "não foi possível executar strdup() no texto de personalidade\n"
+
+#: src/ps/global.c:495
+#, c-format
+msgid "fatal library error, context\n"
+msgstr ""
+
+#: src/ps/global.c:503
+#, c-format
+msgid "fatal library error, lookup self\n"
+msgstr ""
+
+# Mantido original, para não alterar comportamento do programa `ps`.
+#. Translation Note:
+#. . The following translatable word will be used to recognize the
+#. . user's request for help text. In other words, the translation
+#. . you provide will alter program behavior.
+#. .
+#. . It must be limited to 15 characters or less.
+#.
+#: src/ps/global.c:542
+msgid "help"
+msgstr "help"
+
+# Mantido original, para não alterar comportamento do programa `ps`.
+#. Translation Notes for ps Help #1 ---------------------------------
+#. . This next group of lines represents 6 pairs of words + abbreviations
+#. . which are the basis of the 'ps' program help text.
+#. .
+#. . The words and abbreviations you provide will alter program behavior.
+#. . They will also appear in the help usage summary associated with the
+#. . "Notes for ps Help #2" below.
+#. .
+#. . In their English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . When translating these 6 pairs you may choose any appropriate
+#. . language equivalents and the only requirement is the abbreviated
+#. . representations must be unique.
+#. .
+#. . By default, those abbreviations are single characters. However,
+#. . they are not limited to only one character after translation.
+#. .
+#. Translation Hint, Pair #1
+#: src/ps/help.c:67
+msgid "simple"
+msgstr "simple"
+
+# Mantido original, para não alterar comportamento do programa `ps`.
+#: src/ps/help.c:67
+msgid "s"
+msgstr "s"
+
+# Mantido original, para não alterar comportamento do programa `ps`.
+#. Translation Hint, Pair #2
+#: src/ps/help.c:69
+msgid "list"
+msgstr "list"
+
+# Mantido original, para não alterar comportamento do programa `ps`.
+#: src/ps/help.c:69
+msgid "l"
+msgstr "l"
+
+# Mantido original, para não alterar comportamento do programa `ps`.
+#. Translation Hint, Pair #3
+#: src/ps/help.c:71
+msgid "output"
+msgstr "output"
+
+# Mantido original, para não alterar comportamento do programa `ps`.
+#: src/ps/help.c:71
+msgid "o"
+msgstr "o"
+
+# Mantido original, para não alterar comportamento do programa `ps`.
+#. Translation Hint, Pair #4
+#: src/ps/help.c:73
+msgid "threads"
+msgstr "threads"
+
+# Mantido original, para não alterar comportamento do programa `ps`.
+#: src/ps/help.c:73
+msgid "t"
+msgstr "t"
+
+# Mantido original, para não alterar comportamento do programa `ps`.
+#. Translation Hint, Pair #5
+#: src/ps/help.c:75
+msgid "misc"
+msgstr "misc"
+
+# Mantido original, para não alterar comportamento do programa `ps`.
+#: src/ps/help.c:75
+msgid "m"
+msgstr "m"
+
+# Mantido original, para não alterar comportamento do programa `ps`.
+#. Translation Hint, Pair #6
+#: src/ps/help.c:77
+msgid "all"
+msgstr "all"
+
+# Mantido original, para não alterar comportamento do programa `ps`.
+#: src/ps/help.c:77
+msgid "a"
+msgstr "a"
+
+#: src/ps/help.c:98
+#, c-format
+msgid ""
+"\n"
+"Usage:\n"
+" %s [options]\n"
+msgstr ""
+"\n"
+"Uso:\n"
+" %s [opções]\n"
+
+#: src/ps/help.c:103
+msgid ""
+"\n"
+"Basic options:\n"
+msgstr ""
+"\n"
+"Opções básicas:\n"
+
+#: src/ps/help.c:104
+msgid " -A, -e all processes\n"
+msgstr " -A, -e todos os processos\n"
+
+#: src/ps/help.c:105
+msgid " -a all with tty, except session leaders\n"
+msgstr " -a todos com tty, exceto líderes de sessão\n"
+
+#: src/ps/help.c:106
+msgid " a all with tty, including other users\n"
+msgstr " a todos com tty, incluindo outros usuários\n"
+
+#: src/ps/help.c:107
+msgid " -d all except session leaders\n"
+msgstr " -d todos exceto líderes de sessão\n"
+
+#: src/ps/help.c:108
+msgid " -N, --deselect negate selection\n"
+msgstr " -N, --deselect nega a seleção\n"
+
+#: src/ps/help.c:109
+msgid " r only running processes\n"
+msgstr " r somente processos em execução\n"
+
+#: src/ps/help.c:110
+msgid " T all processes on this terminal\n"
+msgstr " T todos os processos neste terminal\n"
+
+#: src/ps/help.c:111
+msgid " x processes without controlling ttys\n"
+msgstr " x processos sem ttys controlando\n"
+
+#: src/ps/help.c:114
+msgid ""
+"\n"
+"Selection by list:\n"
+msgstr ""
+"\n"
+"Seleção por lista:\n"
+
+#: src/ps/help.c:115
+msgid " -C <command> command name\n"
+msgstr " -C <comando> nome do comando\n"
+
+#: src/ps/help.c:116
+msgid " -G, --Group <GID> real group id or name\n"
+msgstr " -G, --Group <GID> nome ou id de grupo real\n"
+
+#: src/ps/help.c:117
+msgid " -g, --group <group> session or effective group name\n"
+msgstr " -g, --group <grupo> nome de grupo efetivo ou sessão\n"
+
+#: src/ps/help.c:118
+msgid " -p, p, --pid <PID> process id\n"
+msgstr " -p, p, --pid <PID> id de processo\n"
+
+#: src/ps/help.c:119
+msgid " --ppid <PID> parent process id\n"
+msgstr " --ppid <PID> id de processo pai\n"
+
+#: src/ps/help.c:120
+msgid ""
+" -q, q, --quick-pid <PID>\n"
+" process id (quick mode)\n"
+msgstr ""
+" -q, q, --quick-pid <PID>\n"
+" id de processo (modo rápido)\n"
+
+#: src/ps/help.c:122
+msgid " -s, --sid <session> session id\n"
+msgstr " -s, --sid <sessão> id de sessão\n"
+
+#: src/ps/help.c:123
+msgid " -t, t, --tty <tty> terminal\n"
+msgstr " -t, t, --tty <tty> terminal\n"
+
+#: src/ps/help.c:124
+msgid " -u, U, --user <UID> effective user id or name\n"
+msgstr " -u, U, --user <UID> nome ou id de usuário efetivo\n"
+
+#: src/ps/help.c:125
+msgid " -U, --User <UID> real user id or name\n"
+msgstr " -U, --User <UID> nome ou id de usuário real\n"
+
+#: src/ps/help.c:126
+msgid ""
+"\n"
+" The selection options take as their argument either:\n"
+" a comma-separated list e.g. '-u root,nobody' or\n"
+" a blank-separated list e.g. '-p 123 4567'\n"
+msgstr ""
+"\n"
+" As opções de seleção levam como seus argumentos:\n"
+" uma lista separada por vírgula, p. ex. \"-u root,nobody\" ou\n"
+" uma lista separada por espaço, p. ex. \"-p 123 4567\"\n"
+
+#: src/ps/help.c:132
+msgid ""
+"\n"
+"Output formats:\n"
+msgstr ""
+"\n"
+"Formatos de saída:\n"
+
+#: src/ps/help.c:133
+#, fuzzy
+msgid " -D <format> date format for lstart\n"
+msgstr " -O <formato> pré-carregado com colunas padrão\n"
+
+#: src/ps/help.c:134
+msgid " -F extra full\n"
+msgstr " -F extra cheio\n"
+
+#: src/ps/help.c:135
+msgid " -f full-format, including command lines\n"
+msgstr " -f formato cheio, incluindo linhas de comando\n"
+
+#: src/ps/help.c:136
+msgid " f, --forest ascii art process tree\n"
+msgstr " f, --forest árvore de processo em arte ascii\n"
+
+#: src/ps/help.c:137
+msgid " -H show process hierarchy\n"
+msgstr " -H mostra a hierarquia dos processos\n"
+
+#: src/ps/help.c:138
+msgid " -j jobs format\n"
+msgstr " -j formato de trabalhos\n"
+
+#: src/ps/help.c:139
+msgid " j BSD job control format\n"
+msgstr " j formato de controle de trabalhos do BSD\n"
+
+#: src/ps/help.c:140
+msgid " -l long format\n"
+msgstr " -l formato longo\n"
+
+#: src/ps/help.c:141
+msgid " l BSD long format\n"
+msgstr " l formato longo do BSD\n"
+
+#: src/ps/help.c:142
+msgid " -M, Z add security data (for SELinux)\n"
+msgstr " -M, Z adiciona dados de segurança (para SELinux)\n"
+
+#: src/ps/help.c:143
+msgid " -O <format> preloaded with default columns\n"
+msgstr " -O <formato> pré-carregado com colunas padrão\n"
+
+#: src/ps/help.c:144
+msgid " O <format> as -O, with BSD personality\n"
+msgstr " O <formato> como -O, com personalidade do BSD\n"
+
+#: src/ps/help.c:145
+msgid ""
+" -o, o, --format <format>\n"
+" user-defined format\n"
+msgstr ""
+" -o, o, --format <formato>\n"
+" formato definido pelo usuário\n"
+
+#: src/ps/help.c:147
+#, fuzzy
+msgid " -P add psr column\n"
+msgstr " -o faz nada\n"
+
+#: src/ps/help.c:148
+msgid " s signal format\n"
+msgstr " s formato do sinal\n"
+
+#: src/ps/help.c:149
+msgid " u user-oriented format\n"
+msgstr " u formato orientado pelo usuário\n"
+
+#: src/ps/help.c:150
+msgid " v virtual memory format\n"
+msgstr " v formato de memória virtual\n"
+
+#: src/ps/help.c:151
+msgid " X register format\n"
+msgstr " X formato de registrador\n"
+
+#: src/ps/help.c:152
+msgid ""
+" -y do not show flags, show rss vs. addr (used with -l)\n"
+msgstr ""
+" -y não mostra sinaliz., mostra rss vs. end. (usado com -"
+"l)\n"
+
+#: src/ps/help.c:153
+msgid " --context display security context (for SELinux)\n"
+msgstr " --context exibe o contexto de segurança (para SELinux)\n"
+
+#: src/ps/help.c:154
+msgid " --headers repeat header lines, one per page\n"
+msgstr " --headers repete linhas de cabeçalho, uma por página\n"
+
+#: src/ps/help.c:155
+msgid " --no-headers do not print header at all\n"
+msgstr " --no-headers não exibe cabeçalhos\n"
+
+#: src/ps/help.c:156
+msgid ""
+" --cols, --columns, --width <num>\n"
+" set screen width\n"
+msgstr ""
+" --cols, --columns, --width <núm>\n"
+" define a largura da tela\n"
+
+#: src/ps/help.c:158
+msgid ""
+" --rows, --lines <num>\n"
+" set screen height\n"
+msgstr ""
+" --rows, --lines <núm>\n"
+" define a altura da tela\n"
+
+#: src/ps/help.c:160
+#, fuzzy
+msgid " --signames display signal masks using signal names\n"
+msgstr " -l, --list lista todos os nomes de sinais\n"
+
+#: src/ps/help.c:163
+msgid ""
+"\n"
+"Show threads:\n"
+msgstr ""
+"\n"
+"Mostra os fluxos:\n"
+
+#: src/ps/help.c:164
+msgid " H as if they were processes\n"
+msgstr " H como se fossem processos\n"
+
+#: src/ps/help.c:165
+msgid " -L possibly with LWP and NLWP columns\n"
+msgstr " -L possivelmente com colunas LWP e NLWP\n"
+
+#: src/ps/help.c:166
+msgid " -m, m after processes\n"
+msgstr " -m, m após processos\n"
+
+#: src/ps/help.c:167
+msgid " -T possibly with SPID column\n"
+msgstr " -T possivelmente com coluna SPID\n"
+
+#: src/ps/help.c:170
+msgid ""
+"\n"
+"Miscellaneous options:\n"
+msgstr ""
+"\n"
+"Opções diversas:\n"
+
+#: src/ps/help.c:171
+msgid " -c show scheduling class with -l option\n"
+msgstr " -c mostra a classe de agendamento com a opção -l\n"
+
+#: src/ps/help.c:172
+msgid " c show true command name\n"
+msgstr " c mostra o verdadeiro nome do comando\n"
+
+#: src/ps/help.c:173
+msgid " e show the environment after command\n"
+msgstr " e mostra o ambiente após o comando\n"
+
+#: src/ps/help.c:174
+msgid ""
+" k, --sort specify sort order as: [+|-]key[,[+|-]key[,...]]\n"
+msgstr ""
+" k, --sort especifica a ordem de agrupamento como:\n"
+" [+|-]chave[,[+|-]chave[,...]]\n"
+
+#: src/ps/help.c:175
+msgid " L show format specifiers\n"
+msgstr " L mostra especificadores de formato\n"
+
+#: src/ps/help.c:176
+msgid " n display numeric uid and wchan\n"
+msgstr " n exibe wchan e uid numérico\n"
+
+#: src/ps/help.c:177
+msgid " S, --cumulative include some dead child process data\n"
+msgstr ""
+" S, --cumulative inclui alguns dados de processos filhos terminados\n"
+
+#: src/ps/help.c:178
+msgid " -y do not show flags, show rss (only with -l)\n"
+msgstr ""
+" -y não mostra sinaliz., mostra rss (apenas com -l)\n"
+
+#: src/ps/help.c:179
+msgid " -V, V, --version display version information and exit\n"
+msgstr " -V, V, --version exibe informação da versão e sai\n"
+
+#: src/ps/help.c:180
+msgid " -w, w unlimited output width\n"
+msgstr " -w, w largura de saída ilimitada\n"
+
+#: src/ps/help.c:181
+#, c-format
+msgid ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" display help and exit\n"
+msgstr ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" exibe ajuda e sai\n"
+
+#. Translation Notes for ps Help #2 ---------------------------------
+#. . Most of the following c-format string is derived from the 6
+#. . pairs of words + chars mentioned above in "Notes for ps Help #1".
+#. .
+#. . In its full English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . The word for "help" will be translated elsewhere. Thus, the only
+#. . translations below will be: "Try", "or" and "for additional...".
+#. .
+#: src/ps/help.c:202
+#, c-format
+msgid ""
+"\n"
+" Try '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" or '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" for additional help text.\n"
+msgstr ""
+"\n"
+" Tente \"%s --%s <%s|%s|%s|%s|%s|%s>\"\n"
+" ou \"%s --%s <%s|%s|%s|%s|%s|%s>\"\n"
+" para texto de ajuda adicional.\n"
+
+#: src/ps/help.c:215
+#, c-format
+msgid ""
+"\n"
+"For more details see ps(1).\n"
+msgstr ""
+"\n"
+"Para mais detalhes, veja ps(1).\n"
+
+#: src/ps/output.c:104
+msgid "Unable to get system boot time"
+msgstr ""
+
+#: src/ps/output.c:119
+#, fuzzy
+msgid "Unable to get total memory"
+msgstr "%13lu %s de memória total\n"
+
+#: src/ps/output.c:2206
+#, c-format
+msgid "fix bigness error\n"
+msgstr "corrigir grandeza do erro\n"
+
+#: src/ps/output.c:2289
+#, c-format
+msgid "bad alignment code\n"
+msgstr "código de alinhamento inválido\n"
+
+#: src/ps/parser.c:63
+msgid "the option is exclusive: "
+msgstr "a opção é exclusiva: "
+
+#: src/ps/parser.c:93
+msgid "process ID list syntax error"
+msgstr "erro de sintaxe da lista de ID de processo"
+
+#: src/ps/parser.c:94 src/ps/parser.c:95
+msgid "process ID out of range"
+msgstr "ID de processo fora do intervalo"
+
+#: src/ps/parser.c:108
+msgid "user name does not exist"
+msgstr "nome de usuário não existe"
+
+#: src/ps/parser.c:114
+msgid "user ID out of range"
+msgstr "ID de usuário fora do intervalo"
+
+#: src/ps/parser.c:127
+msgid "group name does not exist"
+msgstr "nome de grupo não existe"
+
+#: src/ps/parser.c:133
+msgid "group ID out of range"
+msgstr "ID de grupo fora do intervalo"
+
+#: src/ps/parser.c:149 src/ps/parser.c:173
+msgid "TTY could not be found"
+msgstr "TTY não pôde ser localizado"
+
+#: src/ps/parser.c:175
+msgid "list member was not a TTY"
+msgstr "membro de lista não era um TTY"
+
+#: src/ps/parser.c:200
+msgid "improper list"
+msgstr "lista inadequada"
+
+#: src/ps/parser.c:249
+msgid "list of command names must follow -C"
+msgstr "uma lista de nomes de comandos deve vir após -C"
+
+#: src/ps/parser.c:257
+#, fuzzy
+msgid "date format must follow -D"
+msgstr "uma lista de trabalhos deve vir após -J"
+
+#: src/ps/parser.c:270
+msgid "list of real groups must follow -G"
+msgstr "uma lista de grupos reais deve vir após -G"
+
+#: src/ps/parser.c:283
+msgid "list of jobs must follow -J"
+msgstr "uma lista de trabalhos deve vir após -J"
+
+#: src/ps/parser.c:311
+msgid "format or sort specification must follow -O"
+msgstr "uma especificação de formato ou agrupamento deve vir após -O"
+
+#: src/ps/parser.c:322
+msgid "list of PRM groups must follow -R"
+msgstr "uma lista de grupos PRM deve vir após -R"
+
+#: src/ps/parser.c:341
+msgid "list of real users must follow -U"
+msgstr "uma lista de usuários reais deve vir após -U"
+
+#: src/ps/parser.c:382
+msgid "list of session leaders OR effective group names must follow -g"
+msgstr ""
+"uma lista de líderes de sessão OU nomes de grupo efetivos deve vir após -g"
+
+#: src/ps/parser.c:393
+msgid "list of session leaders OR effective group IDs was invalid"
+msgstr "a lista de líderes de sessão OU IDs de grupo efetivos era inválida"
+
+#: src/ps/parser.c:417
+msgid "format specification must follow -o"
+msgstr "uma especificação de formato deve vir após -o"
+
+#: src/ps/parser.c:423
+msgid "list of process IDs must follow -p"
+msgstr "uma lista de IDs de processo deve vir após -p"
+
+#: src/ps/parser.c:440
+msgid "the -r option is reserved"
+msgstr "a opção -r está reservada"
+
+#: src/ps/parser.c:446
+msgid "list of session IDs must follow -s"
+msgstr "uma lista de IDs de sessão deve vir após -s"
+
+#: src/ps/parser.c:454
+msgid "list of terminals (pty, tty...) must follow -t"
+msgstr "uma lista de terminais (pty, tty...) deve vir após -t"
+
+#: src/ps/parser.c:462
+msgid "list of users must follow -u"
+msgstr "uma lista de usuários deve vir após -u"
+
+#: src/ps/parser.c:484
+msgid "must set personality to get -x option"
+msgstr "deve-se definir personalidade para obter a opção -x"
+
+#: src/ps/parser.c:499
+msgid "list of zones (contexts, labels, whatever?) must follow -z"
+msgstr "uma lista de zonas (contexto, rótulos, e outros?) deve vir após -z"
+
+#: src/ps/parser.c:506
+msgid "embedded '-' among SysV options makes no sense"
+msgstr "embutir \"-\" entre opções SysV não faz sentido"
+
+#: src/ps/parser.c:512
+msgid "unsupported SysV option"
+msgstr "opção SysV sem suporte"
+
+#: src/ps/parser.c:525
+msgid "cannot happen - problem #1"
+msgstr "não pode acontecer - problema #1"
+
+#: src/ps/parser.c:529
+msgid "cannot happen - problem #2"
+msgstr "não pode acontecer - problema #2"
+
+#: src/ps/parser.c:531
+msgid "second chance parse failed, not BSD or SysV"
+msgstr "a análise de segunda opção falhou, não é BSD ou SysV"
+
+#: src/ps/parser.c:548
+msgid "option A is reserved"
+msgstr "a opção A está reservada"
+
+#: src/ps/parser.c:553
+msgid "option C is reserved"
+msgstr "a opção C está reservada"
+
+#: src/ps/parser.c:573
+msgid "format or sort specification must follow O"
+msgstr "uma especificação de formato ou agrupamento deve vir após O"
+
+#: src/ps/parser.c:598
+msgid "list of users must follow U"
+msgstr "uma lista de usuários deve vir após U"
+
+#: src/ps/parser.c:610
+msgid "obsolete W option not supported (you have a /dev/drum?)"
+msgstr "opção obsoleta W sem suporte (você tem um /dev/drum?)"
+
+#: src/ps/parser.c:646 src/ps/parser.c:921 src/ps/parser.c:930
+msgid "only one heading option may be specified"
+msgstr "apenas uma opção inicial pode ser especificada"
+
+#: src/ps/parser.c:661
+msgid "long sort specification must follow 'k'"
+msgstr "uma especificação de agrupamento longa deve vir após \"k\""
+
+#: src/ps/parser.c:689
+msgid "format specification must follow o"
+msgstr "uma especificação de formato deve vir após o"
+
+#: src/ps/parser.c:695
+msgid "list of process IDs must follow p"
+msgstr "uma lista de IDs de processo deve vir após p"
+
+#: src/ps/parser.c:753
+msgid "embedded '-' among BSD options makes no sense"
+msgstr "embutir \"-\" entre opções BSD não faz sentido"
+
+#: src/ps/parser.c:759
+msgid "unsupported option (BSD syntax)"
+msgstr "opção sem suporte (sintaxe de BSD)"
+
+#: src/ps/parser.c:847 src/ps/parser.c:859
+msgid "unknown gnu long option"
+msgstr "opção longa gnu desconhecida"
+
+#: src/ps/parser.c:867
+msgid "list of real groups must follow --Group"
+msgstr "uma lista de grupos reais deve vir após --Group"
+
+#: src/ps/parser.c:875
+msgid "list of real users must follow --User"
+msgstr "uma lista de usuários reais deve vir após --User"
+
+#: src/ps/parser.c:894
+msgid "number of columns must follow --cols, --width, or --columns"
+msgstr "um número de colunas deve vir após --cols, --width ou --columns"
+
+#: src/ps/parser.c:897
+msgid "option --cumulative does not take an argument"
+msgstr "a opção --cumulative não leva um argumento"
+
+#: src/ps/parser.c:902
+#, fuzzy
+msgid "date format must follow --date-format"
+msgstr "uma especificação de formato deve vir após --format"
+
+#: src/ps/parser.c:908
+msgid "option --deselect does not take an argument"
+msgstr "a opção --deselect não leva um argumento"
+
+#: src/ps/parser.c:920
+msgid "option --no-heading does not take an argument"
+msgstr "a opção --no-heading não leva um argumento"
+
+#: src/ps/parser.c:929
+msgid "option --heading does not take an argument"
+msgstr "a opção --heading não leva um argumento"
+
+#: src/ps/parser.c:935
+msgid "option --forest does not take an argument"
+msgstr "a opção --forest não leva um argumento"
+
+#: src/ps/parser.c:941
+msgid "format specification must follow --format"
+msgstr "uma especificação de formato deve vir após --format"
+
+#: src/ps/parser.c:947
+msgid "list of effective groups must follow --group"
+msgstr "uma lista de grupos efetivos deve vir após --group"
+
+#: src/ps/parser.c:965
+msgid "list of process IDs must follow --pid"
+msgstr "uma lista de IDs de processo deve vir após --pid"
+
+#: src/ps/parser.c:981
+msgid "list of process IDs must follow --ppid"
+msgstr "uma lista de IDs de processo deve vir após --ppid"
+
+#: src/ps/parser.c:999
+msgid "number of rows must follow --rows or --lines"
+msgstr "um número de linhas deve vir após --rows ou --lines"
+
+#: src/ps/parser.c:1003
+msgid "some sid thing(s) must follow --sid"
+msgstr "uma ou mais coisa(s) sid deve(m) seguir --sid"
+
+#: src/ps/parser.c:1015
+msgid "long sort specification must follow --sort"
+msgstr "uma especificação de agrupamento longo deve vir após --sort"
+
+#: src/ps/parser.c:1021
+msgid "list of ttys must follow --tty"
+msgstr "uma lista de ttys deve vir após --tty"
+
+#: src/ps/parser.c:1029
+msgid "list of effective users must follow --user"
+msgstr "uma lista de usuários efetivos deve vir após --user"
+
+#: src/ps/parser.c:1145
+msgid "way bad"
+msgstr "bem ruim"
+
+#: src/ps/parser.c:1159
+msgid "garbage option"
+msgstr "opção lixo"
+
+#: src/ps/parser.c:1163
+msgid "something broke"
+msgstr "alguma coisa quebrou"
+
+#: src/ps/parser.c:1183
+msgid "thread display conflicts with forest display"
+msgstr "conflitos de exibição de fluxo com exibição de floresta"
+
+#: src/ps/parser.c:1188
+msgid "thread flags conflict; can't use H with m or -m"
+msgstr "conflito de sinalizadores de fluxo; não é possível usar H com m ou -m"
+
+#: src/ps/parser.c:1190
+msgid "thread flags conflict; can't use both m and -m"
+msgstr "conflito de sinalizadores de fluxo; não é possível usar m e -m juntas"
+
+#: src/ps/parser.c:1192
+msgid "thread flags conflict; can't use both -L and -T"
+msgstr "conflito de sinalizadores de fluxo; não é possível usar -L e -T juntas"
+
+#: src/ps/parser.c:1265 src/ps/parser.c:1266
+#, c-format
+msgid "error: %s\n"
+msgstr "erro: %s\n"
+
+#: src/ps/select.c:71
+msgid "process selection options conflict"
+msgstr "conflito de opções de seleção de processo"
+
+#: src/ps/sortformat.c:110 src/ps/sortformat.c:115
+msgid "seriously crashing: goodbye cruel world"
+msgstr "falha séria: adeus, mundo cruel"
+
+#: src/ps/sortformat.c:150 src/ps/sortformat.c:169
+#, fuzzy
+msgid "missing AIX field descriptor"
+msgstr "descritor de campo AIX desconhecido"
+
+#: src/ps/sortformat.c:152
+msgid "improper AIX field descriptor"
+msgstr "descritor de campo AIX inadequado"
+
+#: src/ps/sortformat.c:174
+msgid "unknown AIX field descriptor"
+msgstr "descritor de campo AIX desconhecido"
+
+#: src/ps/sortformat.c:179
+msgid "AIX field descriptor processing bug"
+msgstr "erro de processamento de descritor de campo AIX"
+
+#: src/ps/sortformat.c:287
+#, c-format
+msgid "unknown user-defined format specifier \"%s\""
+msgstr "formato definido pelo usuário com especificador desconhecido \"%s\""
+
+#: src/ps/sortformat.c:314
+msgid "empty format list"
+msgstr "lista de formato vazia"
+
+#: src/ps/sortformat.c:315
+msgid "improper format list"
+msgstr "lista de formato inadequada"
+
+#: src/ps/sortformat.c:316
+msgid "column widths must be unsigned decimal numbers"
+msgstr "larguras de colunas devem ser números decimais não assinados"
+
+#: src/ps/sortformat.c:317
+msgid "can not set width for a macro (multi-column) format specifier"
+msgstr ""
+"não é possível definir largura para um especificador de formato de macro "
+"(multicoluna)"
+
+#: src/ps/sortformat.c:371 src/ps/sortformat.c:387
+msgid "improper sort list"
+msgstr "lista de agrupamento inadequada"
+
+#: src/ps/sortformat.c:382
+msgid "empty sort list"
+msgstr "lista de agrupamento vazia"
+
+#: src/ps/sortformat.c:403 src/ps/sortformat.c:482 src/ps/sortformat.c:484
+msgid "unknown sort specifier"
+msgstr "especificador de agrupamento desconhecido"
+
+#: src/ps/sortformat.c:430 src/ps/sortformat.c:435 src/ps/sortformat.c:442
+#: src/ps/sortformat.c:448
+msgid "bad sorting code"
+msgstr "código de agrupamento inválido"
+
+#: src/ps/sortformat.c:445
+msgid "PPID sort and forest output conflict"
+msgstr "conflito de saída de floresta e ordem de PPID"
+
+#: src/ps/sortformat.c:519
+msgid "option -O can not follow other format options"
+msgstr "a opção -O não pode vir após outras opções de formato"
+
+#: src/ps/sortformat.c:526 src/ps/sortformat.c:544
+msgid "multiple sort options"
+msgstr "múltiplas opções de agrupamento"
+
+#: src/ps/sortformat.c:534
+msgid "option O is neither first format nor sort order"
+msgstr "a opção O não é o primeiro formato nem ordem de agrupamento"
+
+#: src/ps/sortformat.c:661
+msgid "modifier -y without format -l makes no sense"
+msgstr "modificador -y sem formato -l não faz sentido"
+
+#: src/ps/sortformat.c:760
+msgid "bug: must reset the list first"
+msgstr "erro: deve redefinir a primeira lista"
+
+#: src/ps/sortformat.c:797
+msgid "tell <procps@freelists.org> what you expected"
+msgstr "fale em <procps@freelists.org> o que você esperava"
+
+#: src/ps/sortformat.c:807
+msgid ""
+"tell <procps@freelists.org> what you want (-L/-T, -m/m/H, and $PS_FORMAT)"
+msgstr ""
+"fale em <procps@freelists.org> o que você queria (-L/-T, -m/m/H e $PS_FORMAT)"
+
+#: src/ps/sortformat.c:824
+#, c-format
+msgid "warning: $PS_FORMAT ignored. (%s)\n"
+msgstr "aviso: $PS_FORMAT ignorado. (%s)\n"
+
+#: src/ps/sortformat.c:829 src/ps/sortformat.c:839
+msgid "conflicting format options"
+msgstr "opções de formato conflitantes"
+
+#: src/ps/sortformat.c:830
+msgid "can not use output modifiers with user-defined output"
+msgstr ""
+"não é possível usar modificadores de saída com a saída definida pelo usuário"
+
+#: src/ps/sortformat.c:831
+msgid "-L/-T with H/m/-m and -o/-O/o/O is nonsense"
+msgstr "-L/-T com H/m/-m e -o/-O/o/O não faz sentido"
+
+#: src/ps/sortformat.c:889
+msgid "internal error: no PID or PPID for -j option"
+msgstr "erro interno: nenhum PID ou PPID para a opção -j"
+
+#: src/ps/sortformat.c:891
+msgid "lost my PGID"
+msgstr "perdi meu PGID"
+
+#: src/ps/sortformat.c:904
+msgid "internal error: no PRI for -c option"
+msgstr "erro interno: nenhum PRI para a opção -c"
+
+# CLS = classe de agendamento do processo
+#: src/ps/sortformat.c:907
+msgid "lost my CLS"
+msgstr "perdi minha CLS"
+
+#: src/ps/sortformat.c:912
+msgid "-T with H/-m/m but no PID for SPID to follow"
+msgstr "-T com H/-m/m, mas nenhum PID para SPID para vir após"
+
+#: src/ps/sortformat.c:923
+msgid "-L with H/-m/m but no PID/PGID/SID/SESS for NLWP to follow"
+msgstr "-L com H/-m/m, mas nenhum PID/PGID/SID/SESS para NLWP para vir após"
+
+#: src/pwdx.c:41
+#, c-format
+msgid " %s [options] pid...\n"
+msgstr " %s [opção] pid...\n"
+
+#: src/pwdx.c:117
+#, c-format
+msgid "invalid process id: %s"
+msgstr "id de processo inválido: %s"
+
+#: src/skill.c:285
+msgid "Unable to create pid Pids_info structure"
+msgstr ""
+
+#: src/skill.c:288 src/w.c:458
+#, fuzzy
+msgid "Unable to load process information"
+msgstr "não foi possível fazer fork do processo"
+
+#: src/skill.c:319
+#, c-format
+msgid " %s [signal] [options] <expression>\n"
+msgstr " %s [sinal] [opções] <expressão>\n"
+
+#: src/skill.c:323
+#, c-format
+msgid " %s [new priority] [options] <expression>\n"
+msgstr " %s [nova prioridade] [opções] <expressão>\n"
+
+#: src/skill.c:327
+msgid " -f, --fast fast mode (not implemented)\n"
+msgstr " -f, --fast modo rápido (não implementado)\n"
+
+#: src/skill.c:328
+msgid " -i, --interactive interactive\n"
+msgstr " -i, --interactive interativo\n"
+
+#: src/skill.c:329
+msgid " -l, --list list all signal names\n"
+msgstr " -l, --list lista todos os nomes de sinais\n"
+
+#: src/skill.c:330
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr " -L, --table lista todos nomes de sinais em uma tabela nice\n"
+
+#: src/skill.c:331
+msgid ""
+" -n, --no-action do not actually kill processes; just print what would "
+"happen\n"
+msgstr ""
+" -n, --no-action não termina processos; apenas exibe o que aconteceria\n"
+
+#: src/skill.c:332
+msgid " -v, --verbose explain what is being done\n"
+msgstr " -v, --verbose explica o que está sendo feito\n"
+
+#: src/skill.c:333
+msgid " -w, --warnings enable warnings (not implemented)\n"
+msgstr " -w, --warnings habilita avisos (não implementado)\n"
+
+#: src/skill.c:335
+msgid ""
+"Expression can be: terminal, user, pid, command.\n"
+"The options below may be used to ensure correct interpretation.\n"
+msgstr ""
+"Expressão pode ser: terminal, user, pid, command.\n"
+"As opções abaixo podem ser usadas para garantir interpretação correta.\n"
+
+#: src/skill.c:337
+msgid " -c, --command <command> expression is a command name\n"
+msgstr " -c, --command <comando> a expressão é um nome de comando\n"
+
+#: src/skill.c:338
+msgid " -p, --pid <pid> expression is a process id number\n"
+msgstr " -p, --pid <pid> a expressão é um número de id de processo\n"
+
+#: src/skill.c:339
+msgid " -t, --tty <tty> expression is a terminal\n"
+msgstr " -t, --tty <tty> a expressão é um terminal\n"
+
+#: src/skill.c:340
+msgid " -u, --user <username> expression is a username\n"
+msgstr " -u, --user <usuário> a expressão é um nome de usuário\n"
+
+#: src/skill.c:342
+msgid "Alternatively, expression can be:\n"
+msgstr "Alternativamente, a expressão pode ser:\n"
+
+#: src/skill.c:343
+msgid ""
+" --ns <pid> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+" --ns <pid> corresponde os processos que pertencem ao\n"
+" mesmo espaço de nomes que <pid>\n"
+
+#: src/skill.c:345
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option; available namespaces are\n"
+": ipc, mnt, net, pid, user, uts\n"
+msgstr ""
+" --nslist <ns,...> lista quais espaços de nomes serão considerados\n"
+" para a opção --ns; espaços de nomes disponíveis\n"
+" são: ipc, mnt, net, pid, user, uts\n"
+
+#: src/skill.c:355
+#, c-format
+msgid ""
+"\n"
+"The default signal is TERM. Use -l or -L to list available signals.\n"
+"Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0.\n"
+"Alternate signals may be specified in three ways: -SIGKILL -KILL -9\n"
+msgstr ""
+"\n"
+"O sinal padrão é TERM. Use -l ou -L para listar sinais disponíveis.\n"
+"Sinais particularmente úteis incluem HUP, INT, KILL, STOP, CONT e 0.\n"
+"Sinais alternativos podem ser passados nas três formas: -SIGKILL -KILL -9\n"
+
+#: src/skill.c:362
+#, c-format
+msgid ""
+"\n"
+"The default priority is +4. (snice +4 ...)\n"
+"Priority numbers range from +20 (slowest) to -20 (fastest).\n"
+"Negative priority numbers are restricted to administrative users.\n"
+msgstr ""
+"\n"
+"A prioridade padrão é +4. (snice +4 ...)\n"
+"Intervalo de números de prioridade de +20 (mais lento) a -20 (mais rápido).\n"
+"Números de prioridade negativos são restritos a usuários administrativos.\n"
+
+#: src/skill.c:384
+#, c-format
+msgid "priority %lu out of range"
+msgstr "prioridade %lu fora do intervalo"
+
+#: src/skill.c:493
+#, c-format
+msgid "invalid pid number %s"
+msgstr "número de pid inválido %s"
+
+#: src/skill.c:497
+msgid "error reading reference namespace information"
+msgstr "erro ao ler informação de espaço de nomes referência"
+
+#: src/skill.c:505
+msgid "invalid namespace list"
+msgstr "lista de espaço de nomes inválido"
+
+#: src/skill.c:542
+msgid "no process selection criteria"
+msgstr "nenhum critério de seleção de processo"
+
+#: src/skill.c:545
+msgid "general flags may not be repeated"
+msgstr "sinalizadores gerais não podem ser repetidos"
+
+#: src/skill.c:548
+msgid "-i makes no sense with -v, -f, and -n"
+msgstr "-i não faz sentido com -v, -f e -n"
+
+#: src/skill.c:550
+msgid "-v makes no sense with -i and -f"
+msgstr "-v não faz sentido com -i e -f"
+
+#: src/skill.c:594
+#, c-format
+msgid "skill: \"%s\" is not supported\n"
+msgstr "skill: \"%s\" sem suporte\n"
+
+#: src/slabtop.c:108
+msgid " -d, --delay <secs> delay updates\n"
+msgstr " -d, --delay <seg> atraso entre atualizações\n"
+
+#: src/slabtop.c:109
+msgid " -o, --once only display once, then exit\n"
+msgstr " -o, --once só exibe uma vez, então sai\n"
+
+#: src/slabtop.c:110
+msgid " -s, --sort <char> specify sort criteria by character (see below)\n"
+msgstr ""
+" -s, --sort <char> especifica critérios de ordem por caractere (veja "
+"abaixo)\n"
+
+#: src/slabtop.c:115
+msgid ""
+"\n"
+"The following are valid sort criteria:\n"
+msgstr ""
+"\n"
+"Abaixo seguem os critérios de ordem válidos:\n"
+
+#: src/slabtop.c:116
+msgid " a: sort by number of active objects\n"
+msgstr " a: ordena por número de objetos ativos\n"
+
+#: src/slabtop.c:117
+msgid " b: sort by objects per slab\n"
+msgstr " b: ordena por objetos por slab\n"
+
+#: src/slabtop.c:118
+msgid " c: sort by cache size\n"
+msgstr " c: ordena por tamanho de cache\n"
+
+#: src/slabtop.c:119
+msgid " l: sort by number of slabs\n"
+msgstr " l: ordena por número de slabs\n"
+
+#: src/slabtop.c:120
+#, fuzzy
+msgid " v: sort by (non display) number of active slabs\n"
+msgstr " v: ordena por número de slabs ativos\n"
+
+#: src/slabtop.c:121
+msgid " n: sort by name\n"
+msgstr " n: ordena por nome\n"
+
+#: src/slabtop.c:122
+msgid " o: sort by number of objects (the default)\n"
+msgstr " o: ordena por número de objetos (o padrão)\n"
+
+#: src/slabtop.c:123
+#, fuzzy
+msgid " p: sort by (non display) pages per slab\n"
+msgstr " b: ordena por páginas por slab\n"
+
+#: src/slabtop.c:124
+msgid " s: sort by object size\n"
+msgstr " s: ordena por tamanho de objeto\n"
+
+#: src/slabtop.c:125
+msgid " u: sort by cache utilization\n"
+msgstr " u: ordena por utilização de cache\n"
+
+#: src/slabtop.c:188 src/slabtop.c:199
+msgid "Cannot combine -d and -o options"
+msgstr ""
+
+#: src/slabtop.c:190
+msgid "illegal delay"
+msgstr "atraso ilegal"
+
+#: src/slabtop.c:192 src/tload.c:142 src/vmstat.c:1049
+msgid "delay must be positive integer"
+msgstr "o atraso deve ser um inteiro positivo"
+
+#: src/slabtop.c:236
+msgid "Error getting slab summary results"
+msgstr ""
+
+#. Translation Hint: Next five strings must not
+#. * exceed a length of 35 characters.
+#: src/slabtop.c:242
+#, no-c-format
+msgid "Active / Total Objects (% used)"
+msgstr "Objetos ativos/totais (% usados)"
+
+#: src/slabtop.c:248
+#, no-c-format
+msgid "Active / Total Slabs (% used)"
+msgstr "Slabs ativos/totais (% usados)"
+
+#: src/slabtop.c:254
+#, no-c-format
+msgid "Active / Total Caches (% used)"
+msgstr "Caches ativos/totais (% usados)"
+
+#: src/slabtop.c:260
+#, no-c-format
+msgid "Active / Total Size (% used)"
+msgstr "Tamanhos ativos/totais (% usados)"
+
+# espaço final adicionado para promover alinhamento na UI do `slabtop`
+#: src/slabtop.c:265
+msgid "Minimum / Average / Maximum Object"
+msgstr "Objeto mínimo / médio / máximo "
+
+#. Translation Hint: Please keep alignment of the
+#. * following intact.
+#: src/slabtop.c:276
+msgid " OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME"
+msgstr " OBJS ATIVOS USO TAM OBJ SLABS OBJ/SLAB TAM CACHE NOME"
+
+#: src/slabtop.c:313 src/vmstat.c:767
+msgid "Unable to create slabinfo structure"
+msgstr ""
+
+#: src/slabtop.c:318
+msgid "terminal setting retrieval"
+msgstr "obtenção de configuração do terminal"
+
+#: src/slabtop.c:334 src/vmstat.c:774
+msgid "Unable to get slabinfo node data"
+msgstr ""
+
+#: src/slabtop.c:340 src/vmstat.c:776
+#, fuzzy
+msgid "Unable to sort slab nodes"
+msgstr "não foi possível fazer fork do processo"
+
+#: src/sysctl.c:118
+#, c-format
+msgid "Path is not under %s: %s"
+msgstr ""
+
+#: src/sysctl.c:136
+#, c-format
+msgid "separators should not be repeated: %s"
+msgstr "separadores não devem ser repetidos: %s"
+
+#: src/sysctl.c:232
+#, c-format
+msgid " %s [options] [variable[=value] ...]\n"
+msgstr " %s [opções] [variável[=valor] ...]\n"
+
+#: src/sysctl.c:235
+msgid " -a, --all display all variables\n"
+msgstr " -a, --all exibe todas as variáveis\n"
+
+#: src/sysctl.c:236
+msgid " -A alias of -a\n"
+msgstr " -A apelido de -a\n"
+
+#: src/sysctl.c:237
+msgid " -X alias of -a\n"
+msgstr " -X apelido de -a\n"
+
+#: src/sysctl.c:238
+msgid " --deprecated include deprecated parameters to listing\n"
+msgstr " --deprecated inclui parâmetros obsoletos à listagem\n"
+
+#: src/sysctl.c:239
+msgid " --dry-run Print the key and values but do not write\n"
+msgstr ""
+
+#: src/sysctl.c:240
+msgid " -b, --binary print value without new line\n"
+msgstr " -b, --binary exibe valor sem nova linha\n"
+
+#: src/sysctl.c:241
+msgid " -e, --ignore ignore unknown variables errors\n"
+msgstr " -e, --ignore ignora erros de variáveis desconhecidas\n"
+
+#: src/sysctl.c:242
+msgid " -N, --names print variable names without values\n"
+msgstr " -N, --names emite nomes de variáveis sem valores\n"
+
+#: src/sysctl.c:243
+msgid " -n, --values print only values of the given variable(s)\n"
+msgstr " -n, --values emite somente valores de variáveis dadas\n"
+
+#: src/sysctl.c:244
+msgid " -p, --load[=<file>] read values from file\n"
+msgstr ""
+" -p, --load[=<arquivo>]\n"
+" lê valores a partir do arquivo\n"
+
+#: src/sysctl.c:245
+msgid " -f alias of -p\n"
+msgstr " -f apelido de -p\n"
+
+#: src/sysctl.c:246
+msgid " --system read values from all system directories\n"
+msgstr " --system lê valores de todos os diretórios de sistema\n"
+
+#: src/sysctl.c:247
+msgid ""
+" -r, --pattern <expression>\n"
+" select setting that match expression\n"
+msgstr ""
+" -r, --pattern <expressão>\n"
+" seleciona a configuração que corresponde à expressão\n"
+
+#: src/sysctl.c:249
+msgid " -q, --quiet do not echo variable set\n"
+msgstr " -q, --quiet não exibe uma variável definida\n"
+
+#: src/sysctl.c:250
+msgid " -w, --write enable writing a value to variable\n"
+msgstr " -w, --write habilita escrita de um valor à variável\n"
+
+#: src/sysctl.c:251
+msgid " -o does nothing\n"
+msgstr " -o faz nada\n"
+
+#: src/sysctl.c:252
+msgid " -x does nothing\n"
+msgstr " -x faz nada\n"
+
+#: src/sysctl.c:253
+msgid " -d alias of -h\n"
+msgstr " -d apelido de -h\n"
+
+#: src/sysctl.c:334 src/sysctl.c:390
+#, c-format
+msgid "\"%s\" is an unknown key"
+msgstr "\"%s\" é uma chave desconhecida"
+
+#: src/sysctl.c:352 src/sysctl.c:508 src/sysctl.c:545
+#, c-format
+msgid "cannot stat %s"
+msgstr "não foi possível obter estado de %s"
+
+#: src/sysctl.c:395 src/sysctl.c:437
+#, c-format
+msgid "permission denied on key '%s'"
+msgstr "permissão negada pela chave \"%s\""
+
+#: src/sysctl.c:402 src/sysctl.c:454
+#, c-format
+msgid "reading key \"%s\""
+msgstr "leitura da chave \"%s\""
+
+#: src/sysctl.c:492
+#, c-format
+msgid "unable to open directory \"%s\""
+msgstr "não foi possível abrir o diretório \"%s\""
+
+#: src/sysctl.c:557
+msgid "strdup key"
+msgstr ""
+
+#: src/sysctl.c:564 src/sysctl.c:571 src/sysctl.c:604
+#, c-format
+msgid "setting key \"%s\""
+msgstr "definição da chave \"%s\""
+
+#: src/sysctl.c:581
+#, c-format
+msgid "\"%s\" is an unknown key%s"
+msgstr "\"%s\" é uma chave desconhecida%s"
+
+#: src/sysctl.c:582 src/sysctl.c:591 src/sysctl.c:595
+msgid ", ignoring"
+msgstr ", ignorando"
+
+#: src/sysctl.c:590
+#, c-format
+msgid "permission denied on key \"%s\"%s"
+msgstr "permissão negada pela chave \"%s\"%s"
+
+#: src/sysctl.c:594
+#, c-format
+msgid "setting key \"%s\"%s"
+msgstr "definição da chave \"%s\"%s"
+
+#: src/sysctl.c:669
+#, c-format
+msgid "%s(%d): invalid syntax, continuing..."
+msgstr "%s(%d): sintaxe inválida, continuando..."
+
+#: src/sysctl.c:761
+#, c-format
+msgid ""
+"GLOB_TILDE is not supported on your platform, the tilde in \"%s\" won't be "
+"expanded."
+msgstr ""
+"GLOB_TILDE não tem suporte na sua plataforma, o til em \"%s\" não será "
+"expandido."
+
+#: src/sysctl.c:767
+msgid "glob failed"
+msgstr "glob falhou"
+
+#: src/sysctl.c:773
+#, c-format
+msgid "cannot open \"%s\""
+msgstr "não foi possível abrir \"%s\""
+
+#: src/sysctl.c:877 src/sysctl.c:884
+#, c-format
+msgid "* Applying %s ...\n"
+msgstr "* Aplicando %s ...\n"
+
+#: src/sysctl.c:1050
+#, c-format
+msgid ""
+"no variables specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+"nenhuma variável especificada\n"
+"Tente \"%s --help\" para mais informações."
+
+#: src/sysctl.c:1054
+#, c-format
+msgid ""
+"options -N and -q cannot coexist\n"
+"Try `%s --help' for more information."
+msgstr ""
+"as opções -N e -q não podem coexistir\n"
+"Tente \"%s --help\" para mais informações."
+
+#: src/tload.c:75 src/tload.c:77
+msgid "screen too small or too large"
+msgstr "tela pequena ou grande demais"
+
+#: src/tload.c:80
+msgid "screen too small"
+msgstr "tela pequena demais"
+
+#: src/tload.c:96
+#, c-format
+msgid " %s [options] [tty]\n"
+msgstr " %s [opções] [tty]\n"
+
+#: src/tload.c:98
+msgid " -d, --delay <secs> update delay in seconds\n"
+msgstr " -d, --delay <seg> atualiza o atraso em segundos\n"
+
+#: src/tload.c:99
+msgid " -s, --scale <num> vertical scale\n"
+msgstr " -s, --scale <núm> escala vertical\n"
+
+#: src/tload.c:137
+msgid "scale cannot be negative"
+msgstr "a escala não pode ser negativa"
+
+#: src/tload.c:144 src/vmstat.c:1051
+msgid "too large delay value"
+msgstr "valor de atraso grande demais"
+
+#: src/tload.c:159
+msgid "can not open tty"
+msgstr "não foi possível abrir tty"
+
+#: src/tload.c:182
+msgid "Load average file /proc/loadavg does not exist"
+msgstr ""
+
+#: src/tload.c:185
+msgid "Unable to get load average"
+msgstr ""
+
+#: src/tload.c:227 src/tload.c:229
+msgid "writing to tty failed"
+msgstr "a escrita para tty falhou"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The following line pairs contain only plain text and consist of:
+#. . 1) a field name/column header - mostly upper case
+#. . 2) the related description - both upper and lower case
+#. .
+#. . To avoid truncation on the main top display, each column header
+#. . is noted with its maximum size, while a few are 'variable' width.
+#. . Names for the latter should probably be 10 or fewer characters.
+#. .
+#. . Those fields shown with a '+' are also eligible for user resizing
+#. . using the 'X' command. That means the default width might produce
+#. . truncation but need not if widened (see the man page 'X' command).
+#. .
+#. . All headers are subject to a maximum of 8 on the Fields Management
+#. . screen where truncation is entirely acceptable.
+#. .
+#. . The associated descriptions are always limited to 20 characters,
+#. . and are used only on the Fields Management screen.
+#. .
+#. . In all cases, fewer characters are just fine.
+#. .
+#. Translation Hint: maximum 'PID' = 5
+#: src/top/top_nls.c:152
+msgid "PID"
+msgstr "PID"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:153
+msgid "Process Id"
+msgstr "ID do processo"
+
+#. Translation Hint: maximum 'PPID' = 5
+#: src/top/top_nls.c:155
+msgid "PPID"
+msgstr "PPID"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:156
+msgid "Parent Process pid"
+msgstr "PID de processo pai"
+
+#. Translation Hint: maximum 'UID' = 5 +
+#: src/top/top_nls.c:158
+msgid "UID"
+msgstr "UID"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:159
+msgid "Effective User Id"
+msgstr "ID usuário efetivo"
+
+# Acento retirado para promover alinhamento no `top`
+#. Translation Hint: maximum 'USER' = 8 +
+#: src/top/top_nls.c:161 src/w.c:799
+msgid "USER"
+msgstr "USUARIO"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:162
+msgid "Effective User Name"
+msgstr "Nome efetivo"
+
+#. Translation Hint: maximum 'RUID' = 5 +
+#: src/top/top_nls.c:164
+msgid "RUID"
+msgstr "RUID"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:165
+msgid "Real User Id"
+msgstr "ID usuário real"
+
+#. Translation Hint: maximum 'RUSER' = 8 +
+#: src/top/top_nls.c:167
+msgid "RUSER"
+msgstr "RUSER"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:168
+msgid "Real User Name"
+msgstr "Nome usuário real"
+
+#. Translation Hint: maximum 'SUID' = 5 +
+#: src/top/top_nls.c:170
+msgid "SUID"
+msgstr "SUID"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:171
+msgid "Saved User Id"
+msgstr "ID usuário salvo"
+
+#. Translation Hint: maximum 'SUSER' = 8 +
+#: src/top/top_nls.c:173
+msgid "SUSER"
+msgstr "SUSER"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:174
+msgid "Saved User Name"
+msgstr "Nome usuário salvo"
+
+#. Translation Hint: maximum 'GID' = 5 +
+#: src/top/top_nls.c:176
+msgid "GID"
+msgstr "GID"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:177
+msgid "Group Id"
+msgstr "ID de grupo"
+
+#. Translation Hint: maximum 'GROUP' = 8 +
+#: src/top/top_nls.c:179
+msgid "GROUP"
+msgstr "GRUPO"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:180
+msgid "Group Name"
+msgstr "Nome do grupo"
+
+#. Translation Hint: maximum 'PGRP' = 5
+#: src/top/top_nls.c:182
+msgid "PGRP"
+msgstr "PGRP"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:183
+msgid "Process Group Id"
+msgstr "ID grupo processo"
+
+#. Translation Hint: maximum 'TTY' = 8 +
+#: src/top/top_nls.c:185
+msgid "TTY"
+msgstr "TTY"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:186
+msgid "Controlling Tty"
+msgstr "TTY de controle"
+
+#. Translation Hint: maximum 'TPGID' = 5
+#: src/top/top_nls.c:188
+msgid "TPGID"
+msgstr "TPGID"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:189
+msgid "Tty Process Grp Id"
+msgstr "ID grp processo TTY"
+
+#. Translation Hint: maximum 'SID' = 5
+#: src/top/top_nls.c:191
+msgid "SID"
+msgstr "SID"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:192
+msgid "Session Id"
+msgstr "ID de sessão"
+
+#. Translation Hint: maximum 'PR' = 3
+#: src/top/top_nls.c:194
+msgid "PR"
+msgstr "PR"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:195
+msgid "Priority"
+msgstr "Prioridade"
+
+#. Translation Hint: maximum 'NI' = 3
+#: src/top/top_nls.c:197
+msgid "NI"
+msgstr "NI"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:198
+msgid "Nice Value"
+msgstr "Valor de nice"
+
+#. Translation Hint: maximum 'nTH' = 3
+#: src/top/top_nls.c:200
+msgid "nTH"
+msgstr "nTH"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:201
+msgid "Number of Threads"
+msgstr "Número de threads"
+
+#. Translation Hint: maximum 'P' = 1
+#: src/top/top_nls.c:203
+msgid "P"
+msgstr "P"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:204
+msgid "Last Used Cpu (SMP)"
+msgstr "Últ CPU usado (SMP)"
+
+#. Translation Hint: maximum '%CPU' = 4
+#: src/top/top_nls.c:206
+#, c-format
+msgid "%CPU"
+msgstr "%CPU"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:207
+msgid "CPU Usage"
+msgstr "Uso da CPU"
+
+#. Translation Hint: maximum '' = 6
+#: src/top/top_nls.c:209
+msgid "TIME"
+msgstr "TEMPO"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:210
+msgid "CPU Time"
+msgstr "Tempo da CPU"
+
+#. Translation Hint: maximum 'TIME+' = 9
+#: src/top/top_nls.c:212
+msgid "TIME+"
+msgstr "TEMPO+"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:213
+msgid "CPU Time, hundredths"
+msgstr "Tempo CPU, centenas"
+
+#. Translation Hint: maximum '%MEM' = 4
+#: src/top/top_nls.c:215
+msgid "%MEM"
+msgstr "%MEM"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:216
+msgid "Memory Usage (RES)"
+msgstr "Uso memória (RES)"
+
+#. Translation Hint: maximum 'VIRT' = 7
+#: src/top/top_nls.c:218
+msgid "VIRT"
+msgstr "VIRT"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:219
+msgid "Virtual Image (KiB)"
+msgstr "Imagem virtual (KB)"
+
+#. Translation Hint: maximum 'SWAP' = 6
+#: src/top/top_nls.c:221
+msgid "SWAP"
+msgstr "SWAP"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:222
+msgid "Swapped Size (KiB)"
+msgstr "Tam. da swap (KB)"
+
+#. Translation Hint: maximum 'RES' = 6
+#: src/top/top_nls.c:224
+msgid "RES"
+msgstr "RES"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:225
+msgid "Resident Size (KiB)"
+msgstr "Tam. residente (KB)"
+
+#. Translation Hint: maximum 'CODE' = 4
+#: src/top/top_nls.c:227
+msgid "CODE"
+msgstr "CODE"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:228
+msgid "Code Size (KiB)"
+msgstr "Tam. código (KB)"
+
+#. Translation Hint: maximum 'DATA' = 7
+#: src/top/top_nls.c:230
+msgid "DATA"
+msgstr "DADO"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:231
+msgid "Data+Stack (KiB)"
+msgstr "Dados+Pilha (KB)"
+
+#. Translation Hint: maximum 'SHR' = 6
+#: src/top/top_nls.c:233
+msgid "SHR"
+msgstr "SHR"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:234
+msgid "Shared Memory (KiB)"
+msgstr "Mem. cmprtlhda (KB)"
+
+#. Translation Hint: maximum 'nMaj' = 4
+#: src/top/top_nls.c:236
+msgid "nMaj"
+msgstr "nMaj"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:237
+msgid "Major Page Faults"
+msgstr "Falhas pág. maior."
+
+#. Translation Hint: maximum 'nMin' = 4
+#: src/top/top_nls.c:239
+msgid "nMin"
+msgstr "nMin"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:240
+msgid "Minor Page Faults"
+msgstr "Falhas pág. menor."
+
+#. Translation Hint: maximum 'nDRT' = 4
+#: src/top/top_nls.c:242
+msgid "nDRT"
+msgstr "nDRT"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:243
+msgid "Dirty Pages Count"
+msgstr "Cont. pág. sujas"
+
+#. Translation Hint: maximum 'S' = 1
+#: src/top/top_nls.c:245
+msgid "S"
+msgstr "S"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:246
+msgid "Process Status"
+msgstr "Estado do processo"
+
+#. Translation Hint: maximum 'COMMAND' = variable
+#: src/top/top_nls.c:248
+msgid "COMMAND"
+msgstr "COMANDO"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:249
+msgid "Command Name/Line"
+msgstr "Linha/nome comando"
+
+#. Translation Hint: maximum 'WCHAN' = 10 +
+#: src/top/top_nls.c:251
+msgid "WCHAN"
+msgstr "WCHAN"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:252
+msgid "Sleeping in Function"
+msgstr "Dormindo na função"
+
+#. Translation Hint: maximum 'Flags' = 8
+#: src/top/top_nls.c:254
+msgid "Flags"
+msgstr "Flags"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:255
+msgid "Task Flags <sched.h>"
+msgstr "sched.h flags tarefa"
+
+#. Translation Hint: maximum 'CGROUPS' = variable
+#: src/top/top_nls.c:257
+msgid "CGROUPS"
+msgstr "CGROUPS"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:258
+msgid "Control Groups"
+msgstr "Grupos de controle"
+
+#. Translation Hint: maximum 'SUPGIDS' = variable
+#: src/top/top_nls.c:260
+msgid "SUPGIDS"
+msgstr "SUPGIDS"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:261
+msgid "Supp Groups IDs"
+msgstr "IDs grupos suplemen."
+
+#. Translation Hint: maximum 'SUPGRPS' = variable
+#: src/top/top_nls.c:263
+msgid "SUPGRPS"
+msgstr "SUPGRPS"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:264
+msgid "Supp Groups Names"
+msgstr "Nomes grupos suplemn."
+
+#. Translation Hint: maximum 'TGID' = 5
+#: src/top/top_nls.c:266
+msgid "TGID"
+msgstr "TGID"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:267
+msgid "Thread Group Id"
+msgstr "ID grupo thread"
+
+#. Translation Hint: maximum 'OOMa' = 5
+#: src/top/top_nls.c:269
+msgid "OOMa"
+msgstr "OOMa"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:270
+msgid "OOMEM Adjustment"
+msgstr "Ajuste OOMEM"
+
+#. Translation Hint: maximum 'OOMs' = 4
+#: src/top/top_nls.c:272
+msgid "OOMs"
+msgstr "OOMs"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:273
+msgid "OOMEM Score current"
+msgstr "Pont. OOMEM atual"
+
+#. Translation Hint: maximum 'ENVIRON' = variable
+#: src/top/top_nls.c:275
+msgid "ENVIRON"
+msgstr "ENVIRON"
+
+# descrição de coluna do top; manter em 20 caracteres
+#. Translation Hint: the abbreviation 'vars' below is shorthand for
+#. 'variables'
+#: src/top/top_nls.c:278
+msgid "Environment vars"
+msgstr "Variáveis ambiente"
+
+#. Translation Hint: maximum 'vMj' = 3
+#: src/top/top_nls.c:280
+msgid "vMj"
+msgstr "vMj"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:281
+msgid "Major Faults delta"
+msgstr "Delta falhas maior."
+
+#. Translation Hint: maximum 'vMn' = 3
+#: src/top/top_nls.c:283
+msgid "vMn"
+msgstr "vMn"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:284
+msgid "Minor Faults delta"
+msgstr "Delta falhas menor."
+
+#. Translation Hint: maximum 'USED' = 6
+#: src/top/top_nls.c:286
+msgid "USED"
+msgstr "USAD"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:287
+msgid "Res+Swap Size (KiB)"
+msgstr "Tam. res+swap (KiB)"
+
+#. Translation Hint: maximum 'nsIPC' = 10 +
+#: src/top/top_nls.c:289
+msgid "nsIPC"
+msgstr "nsIPC"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:290
+msgid "IPC namespace Inode"
+msgstr "Nó-i espaço nome IPC"
+
+#. Translation Hint: maximum 'nsMNT' = 10 +
+#: src/top/top_nls.c:292
+msgid "nsMNT"
+msgstr "nsMNT"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:293
+msgid "MNT namespace Inode"
+msgstr "Nó-i espaço nome MNT"
+
+#. Translation Hint: maximum 'nsNET' = 10 +
+#: src/top/top_nls.c:295
+msgid "nsNET"
+msgstr "nsNET"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:296
+msgid "NET namespace Inode"
+msgstr "Nó-i espaço nome NET"
+
+#. Translation Hint: maximum 'nsPID' = 10 +
+#: src/top/top_nls.c:298
+msgid "nsPID"
+msgstr "nsPID"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:299
+msgid "PID namespace Inode"
+msgstr "Nó-i espaço nome PID"
+
+#. Translation Hint: maximum 'nsUSER' = 10 +
+#: src/top/top_nls.c:301
+msgid "nsUSER"
+msgstr "nsUSER"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:302
+msgid "USER namespace Inode"
+msgstr "Nó-i espaço nome USER"
+
+#. Translation Hint: maximum 'nsUTS' = 10 +
+#: src/top/top_nls.c:304
+msgid "nsUTS"
+msgstr "nsUTS"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:305
+msgid "UTS namespace Inode"
+msgstr "Nó-i espaço nome UTS"
+
+#. Translation Hint: maximum 'LXC' = 8 +
+#: src/top/top_nls.c:307
+msgid "LXC"
+msgstr "LXC"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:308
+msgid "LXC container name"
+msgstr "Nome contêiner LXC"
+
+#. Translation Hint: maximum 'RSan' = 6
+#: src/top/top_nls.c:310
+msgid "RSan"
+msgstr "RSan"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:311
+msgid "RES Anonymous (KiB)"
+msgstr "Anônimo RES (KB)"
+
+#. Translation Hint: maximum 'RSfd' = 6
+#: src/top/top_nls.c:313
+msgid "RSfd"
+msgstr "RSfd"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:314
+msgid "RES File-based (KiB)"
+msgstr "RES por arquivo (KB)"
+
+#. Translation Hint: maximum 'RSlk' = 6
+#: src/top/top_nls.c:316
+msgid "RSlk"
+msgstr "RSlk"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:317
+msgid "RES Locked (KiB)"
+msgstr "RES travado (KB)"
+
+#. Translation Hint: maximum 'RSsh' = 6
+#: src/top/top_nls.c:319
+msgid "RSsh"
+msgstr "RSsh"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:320
+msgid "RES Shared (KiB)"
+msgstr "RES cmprtlhdo (KB)"
+
+#. Translation Hint: maximum 'CGNAME' = variable
+#: src/top/top_nls.c:322
+msgid "CGNAME"
+msgstr "CGNAME"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:323
+msgid "Control Group name"
+msgstr "Nome grupo controle"
+
+#. Translation Hint: maximum 'NU' = 2
+#: src/top/top_nls.c:325
+msgid "NU"
+msgstr "NU"
+
+#: src/top/top_nls.c:326
+msgid "Last Used NUMA node"
+msgstr "Último nó NUMA usado"
+
+#. Translation Hint: maximum 'LOGID' = 5 +
+#: src/top/top_nls.c:328
+msgid "LOGID"
+msgstr ""
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:329
+#, fuzzy
+msgid "Login User Id"
+msgstr "ID usuário real"
+
+#. Translation Hint: maximum 'EXE' = variable
+#: src/top/top_nls.c:331
+msgid "EXE"
+msgstr ""
+
+#: src/top/top_nls.c:332
+msgid "Executable Path"
+msgstr ""
+
+#: src/top/top_nls.c:338
+msgid "Res Mem (smaps), KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'PSS' = 6
+#: src/top/top_nls.c:340
+#, fuzzy
+msgid "PSS"
+msgstr "RSS"
+
+#: src/top/top_nls.c:341
+msgid "Proportion RSS, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'PSan' = 6
+#: src/top/top_nls.c:343
+msgid "PSan"
+msgstr ""
+
+#: src/top/top_nls.c:344
+msgid "Proportion Anon, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'PSfd' = 6
+#: src/top/top_nls.c:346
+msgid "PSfd"
+msgstr ""
+
+#: src/top/top_nls.c:347
+msgid "Proportion File, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'PSsh' = 6
+#: src/top/top_nls.c:349
+msgid "PSsh"
+msgstr ""
+
+#: src/top/top_nls.c:350
+msgid "Proportion Shrd, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'USS' = 6
+#: src/top/top_nls.c:352
+#, fuzzy
+msgid "USS"
+msgstr "RSS"
+
+#: src/top/top_nls.c:353
+msgid "Unique RSS, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'ioR' = 6
+#: src/top/top_nls.c:355
+msgid "ioR"
+msgstr ""
+
+#: src/top/top_nls.c:356
+msgid "I/O Bytes Read"
+msgstr ""
+
+#. Translation Hint: maximum 'ioRop' = 5
+#: src/top/top_nls.c:358
+msgid "ioRop"
+msgstr ""
+
+#: src/top/top_nls.c:359
+msgid "I/O Read Operations"
+msgstr ""
+
+#. Translation Hint: maximum 'ioW' = 6
+#: src/top/top_nls.c:361
+msgid "ioW"
+msgstr ""
+
+#: src/top/top_nls.c:362
+msgid "I/O Bytes Written"
+msgstr ""
+
+#. Translation Hint: maximum 'ioWop' = 5
+#: src/top/top_nls.c:364
+msgid "ioWop"
+msgstr ""
+
+#: src/top/top_nls.c:365
+msgid "I/O Write Operations"
+msgstr ""
+
+#. Translation Hint: maximum 'AGID' = 5
+#: src/top/top_nls.c:367
+msgid "AGID"
+msgstr ""
+
+#: src/top/top_nls.c:368
+msgid "Autogroup Identifier"
+msgstr ""
+
+#. Translation Hint: maximum 'AGNI' = 4
+#: src/top/top_nls.c:370
+msgid "AGNI"
+msgstr ""
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:371
+#, fuzzy
+msgid "Autogroup Nice Value"
+msgstr "Valor de nice"
+
+#. Translation Hint: maximum 'STARTED' = 7
+#: src/top/top_nls.c:373
+msgid "STARTED"
+msgstr ""
+
+#: src/top/top_nls.c:374
+msgid "Start Time from boot"
+msgstr ""
+
+#. Translation Hint: maximum 'ELAPSED' = 7
+#: src/top/top_nls.c:376
+msgid "ELAPSED"
+msgstr ""
+
+#: src/top/top_nls.c:377
+msgid "Elapsed Running Time"
+msgstr ""
+
+#. Translation Hint: maximum '%CUU' = 6
+#: src/top/top_nls.c:379
+#, c-format
+msgid "%CUU"
+msgstr ""
+
+#: src/top/top_nls.c:380
+msgid "CPU Utilization"
+msgstr ""
+
+#. Translation Hint: maximum '%CUC' = 7
+#: src/top/top_nls.c:382
+#, c-format
+msgid "%CUC"
+msgstr ""
+
+#: src/top/top_nls.c:383
+msgid "Utilization + child"
+msgstr ""
+
+#. Translation Hint: maximum 'nsCGROUP' = 10 +
+#: src/top/top_nls.c:385
+#, fuzzy
+msgid "nsCGROUP"
+msgstr "CGROUPS"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:386
+#, fuzzy
+msgid "CGRP namespace Inode"
+msgstr "Nó-i espaço nome IPC"
+
+#. Translation Hint: maximum 'nsTIME' = 10 +
+#: src/top/top_nls.c:388
+#, fuzzy
+msgid "nsTIME"
+msgstr "TEMPO"
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:389
+#, fuzzy
+msgid "TIME namespace Inode"
+msgstr "Nó-i espaço nome IPC"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . This group of lines contains both plain text and c-format strings.
+#. .
+#. . Some strings reflect switches used to affect the running program
+#. . and should not be translated without also making corresponding
+#. . c-code logic changes.
+#. .
+#: src/top/top_nls.c:409
+#, c-format
+msgid ""
+"\tsignal %d (%s) was caught by %s, please\n"
+"\tsend bug reports to <procps@freelists.org>\n"
+msgstr ""
+"\tsinal %d (%s) capturado por %s, por favor\n"
+"\trelate erros para <procps@freelists.org>\n"
+
+#: src/top/top_nls.c:439
+#, c-format
+msgid "bad delay interval '%s'"
+msgstr "intervalo de atraso inválido \"%s\""
+
+#: src/top/top_nls.c:440
+#, c-format
+msgid "bad iterations argument '%s'"
+msgstr "argumento de interações inválido \"%s\""
+
+#: src/top/top_nls.c:441
+#, c-format
+msgid "pid limit (%d) exceeded"
+msgstr "limite de pid (%d) excedido"
+
+#: src/top/top_nls.c:442
+#, c-format
+msgid "bad pid '%s'"
+msgstr "pid inválido \"%s\""
+
+#: src/top/top_nls.c:443
+#, fuzzy, c-format
+msgid "-%c argument missing"
+msgstr "faltando argumento"
+
+#: src/top/top_nls.c:444
+#, c-format
+msgid "bad width arg '%s'"
+msgstr "arg de largura inválido \"%s\""
+
+#: src/top/top_nls.c:445
+#, fuzzy, c-format
+msgid "unknown option '%s'"
+msgstr ""
+"opção desconhecida \"%c\"\n"
+"Uso:\n"
+" %s%s"
+
+#: src/top/top_nls.c:446
+msgid "-d disallowed in \"secure\" mode"
+msgstr "-d não permitido no modo \"seguro\""
+
+#: src/top/top_nls.c:447
+msgid "-d requires positive argument"
+msgstr "-d requer argumento positivo"
+
+# Recurso em estado ligado; mensagem usada pela ajuda do 'top'
+#: src/top/top_nls.c:448
+msgid "On"
+msgstr "LIG"
+
+# Recurso em estado desligado; mensagem usada pela ajuda do 'top'
+#: src/top/top_nls.c:449
+msgid "Off"
+msgstr "DESL"
+
+#: src/top/top_nls.c:450
+#, fuzzy, c-format
+msgid "%s from %s"
+msgstr "%s de %s\n"
+
+#: src/top/top_nls.c:451
+#, c-format
+msgid "Forest mode %s"
+msgstr "Modo floresta %s"
+
+#: src/top/top_nls.c:452
+msgid "failed tty get"
+msgstr "falha ao obter tty"
+
+#: src/top/top_nls.c:453
+#, c-format
+msgid "failed tty set: %s"
+msgstr "falha ao definir tty: %s"
+
+#: src/top/top_nls.c:454
+msgid "Choose field group (1 - 4)"
+msgstr "Escolha grupo de campo (1 - 4)"
+
+#: src/top/top_nls.c:455
+msgid "Command disabled, 'A' mode required"
+msgstr "Comando desabilitado, modo \"A\" exigido"
+
+#: src/top/top_nls.c:456
+#, c-format
+msgid "Command disabled, activate %s with '-' or '_'"
+msgstr "Comando desabilitado, ative %s com \"-\" ou \"_\""
+
+#: src/top/top_nls.c:457
+msgid "No colors to map!"
+msgstr "Nenhuma cor para mapear!"
+
+#: src/top/top_nls.c:458
+#, c-format
+msgid "Failed '%s' open: %s"
+msgstr "Falha ao abrir \"%s\": %s"
+
+#: src/top/top_nls.c:459
+#, c-format
+msgid "Wrote configuration to '%s'"
+msgstr "Configuração escrita para \"%s\""
+
+#: src/top/top_nls.c:460
+#, c-format
+msgid "Change delay from %.1f to"
+msgstr "Alterar atraso de %.1f para"
+
+#: src/top/top_nls.c:461
+#, c-format
+msgid "Show threads %s"
+msgstr "Mostrar threads %s"
+
+#: src/top/top_nls.c:462
+#, c-format
+msgid "Irix mode %s"
+msgstr "Modo Irix %s"
+
+#: src/top/top_nls.c:463
+#, c-format
+msgid "PID to signal/kill [default pid = %d]"
+msgstr "PID para sinal/terminação [pid padrão = %d]"
+
+#: src/top/top_nls.c:464
+#, c-format
+msgid "Send pid %d signal [%d/sigterm]"
+msgstr "Enviar sinal do pid %d [%d/sigterm]"
+
+#: src/top/top_nls.c:465
+#, c-format
+msgid "Failed signal pid '%d' with '%d': %s"
+msgstr "Falha ao sinalizar o pid \"%d\" com \"%d\": %s"
+
+#: src/top/top_nls.c:466
+msgid "Invalid signal"
+msgstr "Sinal inválido"
+
+#: src/top/top_nls.c:467
+#, c-format
+msgid "PID to renice [default pid = %d]"
+msgstr "PID para renice [pid padrão = %d]"
+
+#: src/top/top_nls.c:468
+#, c-format
+msgid "Renice PID %d to value"
+msgstr "Renice PID %d para valor"
+
+#: src/top/top_nls.c:469
+#, c-format
+msgid "Failed renice of PID %d to %d: %s"
+msgstr "Falha ao executar renice do PID %d para %d: %s"
+
+#: src/top/top_nls.c:470
+#, c-format
+msgid "Rename window '%s' to (1-3 chars)"
+msgstr "Renomear janela \"%s\" para (1-3 caracteres)"
+
+#: src/top/top_nls.c:471
+#, c-format
+msgid "Cumulative time %s"
+msgstr "Item cumulativo %s"
+
+#: src/top/top_nls.c:472
+#, c-format
+msgid "Maximum tasks = %d, change to (0 is unlimited)"
+msgstr "Máx. de tarefas = %d, alterar para (0 é ilimitado)"
+
+#: src/top/top_nls.c:473
+msgid "Invalid maximum"
+msgstr "Máximo inválido"
+
+#: src/top/top_nls.c:474
+msgid "Which user (blank for all)"
+msgstr "Qual usuário (em branco, para todos)"
+
+#: src/top/top_nls.c:475
+msgid "Unknown command - try 'h' for help"
+msgstr "Comando desconhecido - tente \"h\" para ajuda"
+
+#: src/top/top_nls.c:476
+#, c-format
+msgid "scroll coordinates: y = %d/%d (tasks), x = %d/%d (fields)"
+msgstr "rolar coordenadas: y = %d/%d (tarefas), x = %d/%d (campos)"
+
+#: src/top/top_nls.c:477
+msgid "failed memory allocate"
+msgstr "falha ao alocar memória"
+
+#: src/top/top_nls.c:478
+msgid "failed memory re-allocate"
+msgstr "falha ao realocar memória"
+
+#: src/top/top_nls.c:479
+msgid "Unacceptable floating point"
+msgstr "Ponto flutuante inaceitável"
+
+#: src/top/top_nls.c:480
+msgid "Invalid user"
+msgstr "Usuário inválido"
+
+#: src/top/top_nls.c:481
+msgid "forest view"
+msgstr "visão de floresta"
+
+#: src/top/top_nls.c:482
+msgid "failed pid maximum size test"
+msgstr "falha ao testar o tamanho máximo do pid"
+
+#: src/top/top_nls.c:483
+msgid "failed number of cpus test"
+msgstr "falha ao testar número de cpus"
+
+#: src/top/top_nls.c:484
+#, c-format
+msgid "incompatible rcfile, you should delete '%s'"
+msgstr "arquivo rc incompatível, você deve excluir \"%s\""
+
+#: src/top/top_nls.c:485
+#, c-format
+msgid "window entry #%d corrupt, please delete '%s'"
+msgstr "entrada de janela nº %d corrompida, por favor exclua \"%s\""
+
+#: src/top/top_nls.c:486
+msgid "Unavailable in secure mode"
+msgstr "Indisponível no modo seguro"
+
+#: src/top/top_nls.c:487
+msgid "Only 1 cpu detected"
+msgstr "Apenas 1 cpu detectado"
+
+#: src/top/top_nls.c:488
+msgid "Unacceptable integer"
+msgstr "Inteiro inaceitável"
+
+#: src/top/top_nls.c:489
+msgid "conflicting process selections (U/p/u)"
+msgstr "seleções de processo conflitantes (U/p/u)"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . kibibytes (1024 bytes)
+#: src/top/top_nls.c:492
+msgid "KiB"
+msgstr "KB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . mebibytes (1,048,576 bytes)
+#: src/top/top_nls.c:495
+msgid "MiB"
+msgstr "MB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . gibibytes (1,073,741,824 bytes)
+#: src/top/top_nls.c:498
+msgid "GiB"
+msgstr "GB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . tebibytes (1,099,511,627,776 bytes)
+#: src/top/top_nls.c:501
+msgid "TiB"
+msgstr "TB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . pebibytes (1,024 tebibytes)
+#: src/top/top_nls.c:504
+msgid "PiB"
+msgstr "PB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . exbibytes (1,024 pebibytes)
+#: src/top/top_nls.c:507
+msgid "EiB"
+msgstr "EB"
+
+#: src/top/top_nls.c:508
+msgid "Threads"
+msgstr "Threads"
+
+#: src/top/top_nls.c:509
+msgid "Tasks"
+msgstr "Tarefas"
+
+#. Translation Hint: The following "word" is meant to represent either a single
+#. . cpu or all of the processors in a multi-processor computer
+#. . (should be exactly 6 characters, excluding leading % & colon)
+#: src/top/top_nls.c:513
+#, c-format
+msgid "%Cpu(s):"
+msgstr "%CPU(s):"
+
+#. Translation Hint: The following "word" is meant to represent a single processor
+#. and 'the Cp' prefix will be combined with a core id: 'p', 'e' or 'u'
+#. . (if 'Cp' is translated, it must be exactly 2 characters long)
+#: src/top/top_nls.c:517
+#, fuzzy, c-format
+msgid "%%Cp%c%-3d:"
+msgstr "%%CPU%-3d:"
+
+#. Translation Hint: The following word "another" must have 1 trailing space
+#: src/top/top_nls.c:519
+msgid "another "
+msgstr "outro "
+
+#: src/top/top_nls.c:520
+msgid "Locate next inactive, use \"L\""
+msgstr "Localizar próximo inativo, use \"L\""
+
+#: src/top/top_nls.c:521
+msgid "Locate string"
+msgstr "Localizar string"
+
+#: src/top/top_nls.c:522
+#, c-format
+msgid "%s\"%s\" not found"
+msgstr "%s\"%s\" não localizado"
+
+#: src/top/top_nls.c:523
+#, c-format
+msgid "width incr is %d, change to (0 default, -1 auto)"
+msgstr "aumento de largura é %d, alterar para (0 padrão, -1 auto)"
+
+#: src/top/top_nls.c:524
+msgid "rcfile has inspect/other-filter error(s), save anyway?"
+msgstr ""
+"o arquivo rc possui erro(s) de inspect/other-filter, salvar mesmo assim?"
+
+#: src/top/top_nls.c:525
+#, c-format
+msgid "unrecognized field name '%s'"
+msgstr "nome de campo não reconhecido \"%s\""
+
+#: src/top/top_nls.c:526
+msgid "even using field names only, window is now too small"
+msgstr "mesmo usando nomes de campo apenas, janela é pequena demais agora"
+
+#: src/top/top_nls.c:527
+msgid "Open Files"
+msgstr "Arquivos abertos"
+
+#: src/top/top_nls.c:528
+msgid "NUMA Info"
+msgstr "Info de NUMA"
+
+#: src/top/top_nls.c:529
+msgid "Log"
+msgstr "Log"
+
+#: src/top/top_nls.c:530
+msgid ""
+"the '=' key will eventually show the actual file read or command(s) "
+"executed ..."
+msgstr ""
+"a chave \"=\" eventualmente mostrará o arquivo real lido ou o(s) comando(s) "
+"executado(s) ..."
+
+#: src/top/top_nls.c:531
+msgid "demo"
+msgstr "demo"
+
+#: src/top/top_nls.c:532
+#, fuzzy, c-format
+msgid ""
+"This is simulated output representing the contents of some file or the "
+"output\n"
+"from some command. Exactly which commands and/or files are solely up to "
+"you.\n"
+"\n"
+"Although this text is for information purposes only, it can still be "
+"scrolled\n"
+"and searched like real output will be. You are encouraged to experiment "
+"with\n"
+"those features as explained in the prologue above.\n"
+"\n"
+"To enable real Inspect functionality, entries must be added to the end of "
+"the\n"
+"top personal personal configuration file. You could use your favorite "
+"editor\n"
+"to accomplish this, taking care not to disturb existing entries.\n"
+"\n"
+"Another way to add entries is illustrated below, but it risks overwriting "
+"the\n"
+"rcfile. Redirected echoes must not replace (>) but append (>>) to that "
+"file.\n"
+"\n"
+" /bin/echo -e \"pipe\\tOpen Files\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+" /bin/echo -e \"file\\tNUMA Info\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+" /bin/echo -e \"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr\" >> ~/."
+"toprc\n"
+"\n"
+"If you don't know the location or name of the top rcfile, use the 'W' "
+"command\n"
+"and note those details. After backing up the current rcfile, try issuing "
+"the\n"
+"above echoes exactly as shown, replacing '.toprc' as appropriate. The "
+"safest\n"
+"approach would be to use copy then paste to avoid any typing mistakes.\n"
+"\n"
+"Finally, restart top to reveal what actual Inspect entries combined with "
+"this\n"
+"new command can offer. The possibilities are endless, especially "
+"considering\n"
+"that 'pipe' type entries can include shell scripts too!\n"
+"\n"
+"For additional important information, please consult the top(1) man "
+"document.\n"
+"Then, enhance top with your very own customized 'file' and/or 'pipe' "
+"entries.\n"
+"\n"
+"Enjoy!\n"
+msgstr ""
+"Este é uma saída simulada que representa o conteúdo de alguns arquivos ou a\n"
+"saída de algum comando. Exatamente quais comandos e/ou arquivos são para "
+"você\n"
+"exclusivamente.\n"
+"\n"
+"Embora este texto seja apenas para fins informativos, ele ainda pode ser\n"
+"rolado e pesquisado, como será a saída real. Você é encorajado a "
+"experimentar\n"
+"esses recursos explicados no prólogo acima.\n"
+"\n"
+"Para habilitar a funcionalidade Inspeção real, as entradas devem ser\n"
+"adicionadas ao arquivo de configuração pessoal. Você poderia usar seu "
+"editor\n"
+"favorito para disso, com atenção para não atrapalhar entradas existentes.\n"
+"\n"
+"Outra maneira de adicionar entradas é ilustrada abaixo, mas corre o risco "
+"de\n"
+"sobrescrever o arquivo rc. As saídas do \"echo\" redirecionadas não devem\n"
+"substituir (>), e sim anexar (>>) a esse arquivo.\n"
+"\n"
+" /bin/echo -e \"pipe\\tOpen Files\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+" /bin/echo -e \"file\\tNUMA Info\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+" /bin/echo -e \"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr\" >> ~/."
+"toprc\n"
+"\n"
+"Se você não conhece a localização ou nome do arquivo rc do top, use o "
+"comando\n"
+"\"W\" e note esses detalhes. Depois de fazer backup do arquivo rc atual, "
+"tente\n"
+"executar os \"echo\" acima exatamente como mostrado, substituindo \"."
+"toprc\"\n"
+"conforme apropriado. A abordagem mais segura seria usar copiar e colar, "
+"para\n"
+"evitar qualquer erro de escrita.\n"
+"\n"
+"Finalmente, reinicie o top para revelar o que as entradas reais do Inspeção\n"
+"combinadas com este novo comando podem oferecer. As possibilidades são\n"
+"infinitas, especialmente considerando que as entradas de tipo \"pipe\" "
+"podem\n"
+"incluir scripts de shell também!\n"
+"\n"
+"Para informações importantes adicionais, consulte a documentação de topo.\n"
+"Em seguida, melhore o top com suas próprias entradas personalizadas "
+"\"file\"\n"
+"e \"pipe\".\n"
+"\n"
+"Divirta-se!\n"
+
+#: src/top/top_nls.c:564
+msgid "to enable 'Y' press <Enter> then type 'W' and restart top"
+msgstr "para habilitar \"Y\", pressione <Enter>, digite \"W\" e reinicie o top"
+
+#: src/top/top_nls.c:565
+msgid "to enable 'Y' please consult the top man page (press Enter)"
+msgstr "para habilitar \"Y\", consulte a página man do top (pressione Enter)"
+
+#: src/top/top_nls.c:566
+#, c-format
+msgid "Selection failed with: %s\n"
+msgstr "Seleção falhou com: %s\n"
+
+#: src/top/top_nls.c:567
+#, c-format
+msgid "unable to inspect, pid %d not found"
+msgstr "não foi possível inspecionar, pid %d não localizado"
+
+#: src/top/top_nls.c:568
+#, c-format
+msgid "inspect at PID [default pid = %d]"
+msgstr "inspecionar o PID [pid padrão = %d]"
+
+#: src/top/top_nls.c:569
+#, c-format
+msgid "%s: %*d-%-*d lines, %*d-%*d columns, %lu bytes read"
+msgstr "%s: %*d-%-*d linhas, %*d-%*d colunas, %lu bytes lidos"
+
+#: src/top/top_nls.c:570
+msgid "patience please, working ..."
+msgstr "paciência por favor, trabalhando ..."
+
+#: src/top/top_nls.c:571
+msgid "working, use Ctrl-C to end ..."
+msgstr "trabalhando, use Ctrl-C para encerrar ..."
+
+#. Translation Hint: Below are 2 abbreviations which can be as long as needed:
+#. . FLD = FIELD, VAL = VALUE
+#: src/top/top_nls.c:574
+#, c-format
+msgid "add filter #%d (%s) as: [!]FLD?VAL"
+msgstr "adicionar filtro #%d (%s) como: [!]CAMPO?VALOR"
+
+#: src/top/top_nls.c:575
+msgid "ignoring case"
+msgstr "ignorando diferença maiúsculo/minúsculo"
+
+#: src/top/top_nls.c:576
+msgid "case sensitive"
+msgstr "diferenciar maiúsculo/minúsculo"
+
+#: src/top/top_nls.c:577
+msgid "duplicate filter was ignored"
+msgstr "filtro duplicado foi ignorado"
+
+#: src/top/top_nls.c:578
+#, c-format
+msgid "'%s' filter delimiter is missing"
+msgstr "delimitador de filtro \"%s\" está faltando"
+
+#: src/top/top_nls.c:579
+#, c-format
+msgid "'%s' filter value is missing"
+msgstr "valor de filtro \"%s\" está faltando"
+
+#: src/top/top_nls.c:580
+msgid "include"
+msgstr "incluir"
+
+#: src/top/top_nls.c:581
+msgid "exclude"
+msgstr "excluir"
+
+#: src/top/top_nls.c:582
+#, c-format
+msgid "<Enter> to resume, filters: %s"
+msgstr "<Enter> para continuar, filtros: %s"
+
+#: src/top/top_nls.c:583
+msgid "none"
+msgstr "nenhum"
+
+#. Translation Hint: The following word 'Node' should be exactly
+#. 4 characters, excluding leading %%, fmt chars & colon)
+#: src/top/top_nls.c:586
+#, c-format
+msgid "%%Node%-2d:"
+msgstr "%%Node%-2d:"
+
+#: src/top/top_nls.c:587
+#, fuzzy, c-format
+msgid "expand which numa node (0-%d)"
+msgstr "expandir qual nó (0-%d)"
+
+#: src/top/top_nls.c:588
+#, fuzzy
+msgid "invalid numa node"
+msgstr "nó inválido"
+
+#: src/top/top_nls.c:589
+msgid "sorry, NUMA extensions unavailable"
+msgstr "sinto muito, extensões NUMA indisponível"
+
+# Coloquei em minúsculo para padronizar; usado em "mem dispon." e "KB mem"
+#. Translation Hint: 'Mem ' is an abbreviation for physical memory/ram
+#. . 'Swap' represents the linux swap file --
+#. . please make both translations exactly 4 characters,
+#. . padding with extra spaces as necessary
+#: src/top/top_nls.c:594
+msgid "Mem "
+msgstr "mem "
+
+# Coloquei em minúsculo para padronizar; usado em "KB swap"
+#: src/top/top_nls.c:595
+msgid "Swap"
+msgstr "swap"
+
+#: src/top/top_nls.c:596
+#, c-format
+msgid "library failed memory statistics, at %d: %s"
+msgstr ""
+
+#: src/top/top_nls.c:597
+#, c-format
+msgid "library failed cpu statistics, at %d: %s"
+msgstr ""
+
+#: src/top/top_nls.c:598
+#, c-format
+msgid "library failed pids statistics, at %d: %s"
+msgstr ""
+
+#: src/top/top_nls.c:599
+#, fuzzy, c-format
+msgid "bad memory scaling arg '%s'"
+msgstr "argumento de escala de memória inválido \"%c\""
+
+#: src/top/top_nls.c:600
+#, c-format
+msgid "PID to collapse/expand [default pid = %d]"
+msgstr "PID para recolher/expandir [pid padrão = %d]"
+
+#: src/top/top_nls.c:601
+msgid "wrong mode, command inactive"
+msgstr "modo incorreto, comando inativo"
+
+#: src/top/top_nls.c:602
+msgid "saving prevents older top from reading, save anyway?"
+msgstr "salvar impede top mais antigo de lê-lo, salvar mesmo assim?"
+
+#: src/top/top_nls.c:603
+#, fuzzy, c-format
+msgid "failed sem_init() at %d: %s"
+msgstr "falha ao definir tty: %s"
+
+#: src/top/top_nls.c:604
+#, fuzzy, c-format
+msgid "failed pthread_create() at %d: %s"
+msgstr "falha ao abrir /proc/stat: %s"
+
+#: src/top/top_nls.c:605
+msgid "sorry, restricted namespace with reduced functionality"
+msgstr ""
+
+#: src/top/top_nls.c:606
+#, c-format
+msgid "set pid %d AGNI value to"
+msgstr ""
+
+#: src/top/top_nls.c:607
+msgid "valid AGNI range is -20 to +19"
+msgstr ""
+
+#: src/top/top_nls.c:608
+#, fuzzy, c-format
+msgid "autogroup open failed, %s"
+msgstr "não foi possível abrir o arquivo %s"
+
+#: src/top/top_nls.c:609
+#, c-format
+msgid "autogroup write failed, %s"
+msgstr ""
+
+#: src/top/top_nls.c:610
+#, c-format
+msgid "command line for pid %d, %s"
+msgstr ""
+
+#: src/top/top_nls.c:611
+#, c-format
+msgid "control groups for pid %d, %s"
+msgstr ""
+
+# descrição de coluna do top; manter em 20 caracteres
+#: src/top/top_nls.c:612
+#, fuzzy, c-format
+msgid "environment for pid %d, %s"
+msgstr "Variáveis ambiente"
+
+#: src/top/top_nls.c:613
+#, c-format
+msgid "namespaces for pid %d, %s"
+msgstr ""
+
+#: src/top/top_nls.c:614
+msgid "n/a"
+msgstr ""
+
+#: src/top/top_nls.c:615
+#, c-format
+msgid "supplementary groups for pid %d, %s"
+msgstr ""
+
+#: src/top/top_nls.c:616
+msgid "message log, last 10 messages:"
+msgstr ""
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The next several text groups contain special escape sequences
+#. . representing values used to index a table at run-time.
+#. .
+#. . Each such sequence consists of a tilde (~) followed by an ascii
+#. . number in the range of '1' - '8'. Examples are '~2', '~8', etc.
+#. . These escape sequences must never themselves be translated but
+#. . could be deleted.
+#. .
+#. . If you remove these escape sequences (both tilde and number) it
+#. . would make translation easier. However, the ability to display
+#. . colors and bold text at run-time will have been lost.
+#. .
+#. . Additionally, each of these text groups was designed to display
+#. . in a 80x24 terminal window. Hopefully, any translations will
+#. . adhere to that goal lest the translated text be truncated.
+#. .
+#. . If you would like additional information regarding these strings,
+#. . please see the prologue to the show_special function in the top.c
+#. . source file.
+#. .
+#. . Caution:
+#. . The next three items represent pages for interacting with a user.
+#. . In all cases, the last lines of text must be treated with care.
+#. .
+#. . They must not end with a newline character so that at runtime the
+#. . cursor will remain on that final text line.
+#. .
+#. . Also, the special sequences (tilde+number) must not appear on the
+#. . last line (the one without the newline). So please avoid any line
+#. . wraps that could place them there.
+#. .
+#: src/top/top_nls.c:661
+#, fuzzy, c-format
+msgid ""
+"Help for Interactive Commands~2 - %s\n"
+"Window ~1%s~6: ~1Cumulative mode ~3%s~2. ~1System~6: ~1Delay ~3%.1f secs~2; "
+"~1Secure mode ~3%s~2.\n"
+"\n"
+" Z~5,~1B~5,E,e Global: '~1Z~2' colors; '~1B~2' bold; '~1E~2'/'~1e~2' "
+"summary/task memory scale\n"
+" l,t,m,I,0 Toggle: '~1l~2' load avg; '~1t~2' task/cpu; '~1m~2' memory; "
+"'~1I~2' Irix; '~10~2' zeros\n"
+" 1,2,3,4,5 Toggle: '~11~2/~12~2/~13~2' cpu/numa views; '~14~2' cpus "
+"abreast; '~15~2' P/E-cores\n"
+" f,X Fields: '~1f~2' add/remove/order/sort; '~1X~2' increase fixed-"
+"width fields\n"
+"\n"
+" L,&,<,> . Locate: '~1L~2'/'~1&~2' find/again; Move sort column: "
+"'~1<~2'/'~1>~2' left/right\n"
+" R,H,J,C . Toggle: '~1R~2' Sort; '~1H~2' Threads; '~1J~2' Num justify; "
+"'~1C~2' Coordinates\n"
+" c,i,S,j . Toggle: '~1c~2' Cmd name/line; '~1i~2' Idle; '~1S~2' Time; "
+"'~1j~2' Str justify\n"
+" x~5,~1y~5 . Toggle highlights: '~1x~2' sort field; '~1y~2' running "
+"tasks\n"
+" z~5,~1b~5 . Toggle: '~1z~2' color/mono; '~1b~2' bold/reverse (only if "
+"'x' or 'y')\n"
+" u,U,o,O . Filter by: '~1u~2'/'~1U~2' effective/any user; '~1o~2'/'~1O~2' "
+"other criteria\n"
+" n,#,^O . Set: '~1n~2'/'~1#~2' max tasks displayed; Show: ~1Ctrl~2+'~1O~2' "
+"other filter(s)\n"
+" V,v,F . Toggle: '~1V~2' forest view; '~1v~2' hide/show children; '~1F~2' "
+"keep focused\n"
+"\n"
+"%s ^G,K,N,U View: ctl groups ~1^G~2; cmdline ~1^K~2; environment ~1^N~2; "
+"supp groups ~1^U~2\n"
+" Y,!,^E,P Inspect '~1Y~2'; Combine Cpus '~1!~2'; Scale time ~1^E~2; View "
+"namespaces ~1^P~2\n"
+" W,q Write config file '~1W~2'; Quit '~1q~2'\n"
+" ( commands shown with '.' require a ~1visible~2 task display "
+"~1window~2 ) \n"
+"Press '~1h~2' or '~1?~2' for help with ~1Windows~2,\n"
+"Type 'q' or <Esc> to continue "
+msgstr ""
+"Ajuda para comandos interativos~2 - %s\n"
+"Janela ~1%s~6: ~1Modo cumulativo ~3%s~2. ~1Sistema~6: ~1Atraso ~3%.1f s~2; "
+"~1Modo seguro ~3%s~2.\n"
+"\n"
+" Z~5,~1B~5,E,e Global: '~1Z~2' cores; '~1B~2' negrito; '~1E~2'/'~1e~2' "
+"escala mem. resumo/tarefa\n"
+" l,t,m,I Ativar: '~1l~2' carga média; '~1t~2' tarefa/cpu; '~1m~2' "
+"memória; '~1I~2' modo Irix\n"
+" 0,1,2,3,4 Ativar: '~10~2' zeros; '~11~2/~12~2/~13~2' visões cpu/numa; "
+"'~14~2' 2 cpus lado a lado\n"
+" f,F,X Campos: '~1f~2'/'~1F~2' adic/remover/ordem/sort; '~1X~2' aumenta "
+"largura fixa\n"
+"\n"
+" L,&,<,> . Localizar: '~1L~2'/'~1&~2' Local./de novo; Ordenar coluna: "
+"'~1<~2'/'~1>~2' esq/dir\n"
+" R,H,J,C . Ativar: '~1R~2' Ordem; '~1H~2' Threads; '~1J~2' Justif. núm; "
+"'~1C~2' Coordenadas\n"
+" c,i,S,j . Ativar: '~1c~2' Linha nome/cmd; '~1i~2' Ocioso; '~1S~2' Tempo; "
+"'~1j~2' Justif. txto\n"
+" x~5,~1y~5 . Ativar realce: '~1x~2' ordenar campo; '~1y~2' tarefas em "
+"execução\n"
+" z~5,~1b~5 . Ativar: '~1z~2' cor/mono; '~1b~2' negrito/inverso (apenas "
+"se 'x' ou 'y')\n"
+" u,U,o,O . Filtrar: '~1u~2'/'~1U~2' usuá. efetivo/qualquer; '~1o~2'/'~1O~2' "
+"outros critérios\n"
+" n,#,^O . Define: '~1n~2'/'~1#~2' máx tarefas exibi.; Mostra: "
+"~1Ctrl~2+'~1O~2' outros filtros\n"
+" V,v . Ativar: '~1V~2' visão floresta; '~1v~2' oculta/mostra filhos "
+"nesta visão\n"
+"\n"
+"%s W,Y,! Escrever arq. config '~1W~2'; Inspec. outra saída '~1Y~2'; "
+"Combina cpus '~1!~2'\\n\n"
+" q Sair\n"
+" ( comandos com '.' exigem um ~1janela~2 de exibição de tarefas "
+"~1visível~2 )\n"
+"Pressione '~1h~2' ou '~1?~2' para ajuda com ~1Janelas~2,\n"
+"Digite 'q' ou <Esc> para continuar "
+
+#: src/top/top_nls.c:687
+#, c-format
+msgid ""
+"Help for Windows / Field Groups~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+". Use multiple ~1windows~2, each with separate config opts (color,fields,"
+"sort,etc)\n"
+". The 'current' window controls the ~1Summary Area~2 and responds to your "
+"~1Commands~2\n"
+" . that window's ~1task display~2 can be turned ~1Off~2 & ~1On~2, growing/"
+"shrinking others\n"
+" . with ~1NO~2 task display, some commands will be ~1disabled~2 "
+"('i','R','n','c', etc)\n"
+" until a ~1different window~2 has been activated, making it the 'current' "
+"window\n"
+". You ~1change~2 the 'current' window by: ~1 1~2) cycling forward/backward;"
+"~1 2~2) choosing\n"
+" a specific field group; or~1 3~2) exiting the color mapping or fields "
+"screens\n"
+". Commands ~1available anytime -------------~2\n"
+" A . Alternate display mode toggle, show ~1Single~2 / ~1Multiple~2 "
+"windows\n"
+" g . Choose another field group and make it 'current', or change "
+"now\n"
+" by selecting a number from: ~1 1~2 =%s;~1 2~2 =%s;~1 3~2 =%s; "
+"or~1 4~2 =%s\n"
+". Commands ~1requiring~2 '~1A~2' mode~1 -------------~2\n"
+" G . Change the ~1Name~5 of the 'current' window/field group\n"
+" ~1*~4 a , w . Cycle through all four windows: '~1a~5' Forward; '~1w~5' "
+"Backward\n"
+" ~1*~4 - , _ . Show/Hide: '~1-~5' ~1Current~2 window; '~1_~5' all "
+"~1Visible~2/~1Invisible~2\n"
+" The screen will be divided evenly between task displays. But you can "
+"make\n"
+" some ~1larger~2 or ~1smaller~2, using '~1n~2' and '~1i~2' commands. Then "
+"later you could:\n"
+" ~1*~4 = , + . Rebalance tasks: '~1=~5' ~1Current~2 window; '~1+~5' "
+"~1Every~2 window\n"
+" (this also forces the ~1current~2 or ~1every~2 window to "
+"become visible)\n"
+"\n"
+"In '~1A~2' mode, '~1*~4' keys are your ~1essential~2 commands. Please try "
+"the '~1a~2' and '~1w~2'\n"
+"commands plus the 'g' sub-commands NOW. Press <Enter> to make 'Current' "
+msgstr ""
+"Ajuda para janelas / grupos de campo~2 - \"Janela atual\" = ~1 %s ~6\n"
+"\n"
+". Use múltiplas ~1janelas~2, cada uma com opções separadas (cor,campos,ordem,"
+"etc)\n"
+". A janela \"atual\" controla a ~1Ãrea Resumida~2 e responde a seus "
+"~1Comandos~2\n"
+" . que ~1Exibição de tarefa~2 pode ser ~1Desl.~2 & ~1Lig.~2, crescendo/"
+"encolhendo outras\n"
+" . com ~1Nenhuma~2 exibição de tarefa, alguns comandos serão ~1desli.~2 "
+"('i','R','n',\n"
+" 'c',etc.) até uma ~1janela diferente~2 ser ativada, tornando-a janela "
+"'atual'\n"
+". Você ~1altera~2 janela 'atual': ~1 1~2) alternando p/ frente/trás; ~1 2~2) "
+"escolhendo um\n"
+" grupo de comandos; ou~1 3~2) fechando telas de campos ou mapeamento de "
+"cores\n"
+". Comandos ~1disponíveis a qualquer tempo -------------~2\n"
+" A . Modo de exibição alternativa, mostra janelas ~1Únicas~2/"
+"~1Múltiplas~2\n"
+" g . Escolhe o outro grupo de campo e torna-o 'atual', ou altere "
+"agora\n"
+" selecionando um número de: ~1 1~2 =%s;~1 2~2 =%s;~1 3~2 =%s; "
+"ou~1 4~2 =%s\n"
+". Comandos ~1exigindo o modo~2 '~1A~2'~1 -------------~2\n"
+" G . Altera o ~1Nome~5 do grupo de campo/janela 'atual'\n"
+" ~1*~4 a , w . Alterna entre quatro janelas: '~1a~5' para frente; "
+"'~1w~5' para trás\n"
+" ~1*~4 - , _ . Mostra/Oculta: '~1-~5' janela ~1Atual~2; '~1_~5' todos "
+"~1Visíveis~2/~1Invisíveis~2\n"
+" A tela será divida igualmente entre exibições de tarefas. Mas você pode\n"
+" ~1aumentá-las~2 ou ~1diminui-las~2, usando comandos '~1n~2' e '~1i~2'. "
+"Após, você poderia:\n"
+" ~1*~4 = , + . Rebalancear tarefas: '~1=~5' janela ~1Atual~2; '~1+~5' "
+"~1Todas~2 janelas\n"
+" (também força a janela ~1atual~2, ou ~1todas~2, a se tornar "
+"visível)\n"
+"\n"
+"No modo '~1A~2', teclas '~1*~4' são seus comandos ~1essenciais~2. Tente "
+"comandos '~1a~2' e '~1w~2'\n"
+"junto com os subcomandos de 'g' AGORA. Pressione <Enter> para torná-la "
+"'Atual' "
+
+#. Translation Notes ------------------------------------------------
+#. . The following 'Help for color mapping' simulated screen should
+#. . probably NOT be translated. It is terribly hard to follow in
+#. . this form and any translation could produce unpleasing results
+#. . that are unlikely to parallel the running top program.
+#. .
+#. . If you decide to proceed with translation, please take care
+#. . to not disturb the spaces and the tilde + number delimiters.
+#. .
+#: src/top/top_nls.c:722
+#, c-format
+msgid ""
+"Help for color mapping~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+" color - 04:25:44 up 8 days, 50 min, 7 users, load average:\n"
+" Tasks:~3 64 ~2total,~3 2 ~3running,~3 62 ~2sleeping,~3 0 ~2stopped,"
+"~3\n"
+" %%Cpu(s):~3 76.5 ~2user,~3 11.2 ~2system,~3 0.0 ~2nice,~3 12.3 "
+"~2idle~3\n"
+" ~1 Nasty Message! ~4 -or- ~1Input Prompt~5\n"
+" ~1 PID TTY PR NI %%CPU TIME+ VIRT SWAP S COMMAND ~6\n"
+" 17284 ~8pts/2 ~7 8 0 0.0 0:00.75 1380 0 S /bin/bash ~8\n"
+" ~1 8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z~7\n"
+" 11005 ~8? ~7 9 0 0.0 0:02.50 2852 1008 S amor -sessi~8\n"
+" available toggles: ~1B~2 =disable bold globally (~1%s~2),\n"
+" ~1z~2 =color/mono (~1%s~2), ~1b~2 =tasks \"bold\"/reverse (~1%s~2)\n"
+"\n"
+"1) Select a ~1target~2 as an upper case letter, ~1current target~2 is ~1 %c "
+"~4:\n"
+" S~2 = Summary Data,~1 M~2 = Messages/Prompts,\n"
+" H~2 = Column Heads,~1 T~2 = Task Information\n"
+"2) Select a ~1color~2 as a number or use the up/down arrow keys\n"
+" to raise/lower the %d colors value, ~1current color~2 is ~1 %d ~4:\n"
+" 0~2 = black,~1 1~2 = red, ~1 2~2 = green,~1 3~2 = yellow,\n"
+" 4~2 = blue, ~1 5~2 = magenta,~1 6~2 = cyan, ~1 7~2 = white\n"
+"\n"
+"3) Then use these keys when finished:\n"
+" 'q' or <Esc> to abort changes to window '~1%s~2'\n"
+" 'a' or 'w' to commit & change another, <Enter> to commit and end "
+msgstr ""
+"Ajuda para mapeamento de cores~2 - \"Janela atual\": ~1 %s ~6\n"
+"\n"
+" cor - 04:25:44 ativo 8 dias, 50 min, 7 usuários, carga média:\n"
+" Tarefas:~3 64 ~2total,~3 2 ~3exec.,~3 62 ~2dormindo,~3 0 ~2parados,"
+"~3\n"
+" %%Cpu(s):~3 76.5 ~2usuários,~3 11.2 ~2sistema,~3 0.0 ~2nice,~3 12.3 "
+"~2ocioso~3\n"
+" ~1 Mensagem desagradável! ~4 -ou- ~1Prompt de entrada~5\n"
+" ~1 PID TTY PR NI %%CPU TEMPO+ VIRT SWAP S COMANDO ~6\n"
+" 17284 ~8pts/2 ~7 8 0 0.0 0:00.75 1380 0 S /bin/bash ~8\n"
+" ~1 8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z~7\n"
+" 11005 ~8? ~7 9 0 0.0 0:02.50 2852 1008 S amor -sessi~8\n"
+" alternativas disponíveis: ~1B~2 =desabilitar negrito globalmente "
+"(~1%s~2),\n"
+" ~1z~2 =cores/mono (~1%s~2), ~1b~2 =tarefas \"negrito\"/inverso "
+"(~1%s~2)\n"
+"\n"
+"1) Selecione um ~1alvo~2 como uma letra maiúscula, ~1alvo atual~2 is ~1 %c "
+"~4:\n"
+" S~2 = Dados resumidos,~1 M~2 = Mensagens/Prompts,\n"
+" H~2 = Cabeçalhos de colunas,~1 T~2 = Informações de tarefa\n"
+"2) Selecione uma ~1cor~2 como um número ou use setas para cima/baixo,\n"
+" para subir/baixar o valor de cores %d, ~1cor atual~2 é ~1 %d ~4:\n"
+" 0~2 = preto,~1 1~2 = vermelho, ~1 2~2 = verde, ~1 3~2 = amarelo,\n"
+" 4~2 = azul, ~1 5~2 = magenta, ~1 6~2 = ciano,~1 7~2 = branco\n"
+"\n"
+"3) Então, use essas teclas quando finalizado:\n"
+" 'q' ou <ESC> para abortar alterações à janela '~1%s~2'\n"
+" 'a' ou 'w' para aplicar & alterar outra, <Enter> para aplicar e terminar"
+
+#. Translation Hint: As is true for the text above, the "keys" shown to the left and
+#. . also embedded in the translatable text (along with escape seqs)
+#. . should never themselves be translated.
+#: src/top/top_nls.c:751
+msgid ""
+" d,k,r,^R '~1d~2' set delay; '~1k~2' kill; '~1r~2' renice; ~1Ctrl~2+'~1R~2' "
+"renice autogroup\n"
+msgstr ""
+
+#. Translation Hint:
+#. . This Fields Management header should be 3 lines long so as
+#. . to allow 1 blank line before the fields & descriptions.
+#. . If absolutely necessary, 4 lines could be used (but never more).
+#. .
+#: src/top/top_nls.c:759
+#, c-format
+msgid ""
+"Fields Management~2 for window ~1%s~6, whose current sort field is ~1%s~2\n"
+" Navigate with Up/Dn, Right selects for move then <Enter> or Left "
+"commits,\n"
+" 'd' or <Space> toggles display, 's' sets sort. Use 'q' or <Esc> to end!\n"
+msgstr ""
+"Gerenciamento de campos~2 para janela ~1%s~6, cuja ordem de campos atual é "
+"~1%s~2\n"
+" Navegue com Cima/Baixo, Direita seleciona movimento, então <Enter> ou "
+"esquerda aplica,\n"
+" 'd' ou <Espacho> ativa exibição, 's' define ordem. Use 'q' ou <Esc> para "
+"terminar!\n"
+
+# Linha de Tarefas na Ãrea Resumida
+#. Translation Hint:
+#. . The next 5 items must each be translated as a single line.
+#. .
+#: src/top/top_nls.c:767
+#, c-format
+msgid ""
+"%s:~3 %3u ~2total,~3 %3u ~2running,~3 %3u ~2sleeping,~3 %3u ~2stopped,~3 %3u "
+"~2zombie~3\n"
+msgstr ""
+"%s:~3 %3u ~2total,~3 %3u ~2em exec.,~3 %3u ~2dormindo,~3 %3u ~2parado,~3 %3u "
+"~2zumbi~3\n"
+
+# Linha de %CPU(s) na Ãrea Resumida - opção 3
+# Tradução:
+# us = usuário, sis=sistema, ni = nice, oc = ocisoso, ag = aguardando,
+# ih = interrupção de hardware, is = interrupção de software
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt
+#: src/top/top_nls.c:773
+#, fuzzy, c-format
+msgid ""
+"%s~3 %#5.1f ~2us,~3 %#5.1f ~2sy,~3 %#5.1f ~2ni,~3 %#5.1f ~2id,~3 %#5.1f ~2wa,"
+"~3 %#5.1f ~2hi,~3 %#5.1f ~2si~3 ~1"
+msgstr ""
+"%s~3 %#5.1f ~2us,~3 %#5.1f ~2sis,~3 %#5.1f ~2ni,~3 %#5.1f ~2oc,~3 %#5.1f "
+"~2ag,~3 %#5.1f ~2ih,~3 %#5.1f ~2is~3"
+
+# Linha de %CPU(s) na Ãrea Resumida - opção 4
+# Tradução:
+# us = usuário, sis=sistema, ni = nice, oc = ocisoso, ag = aguardando,
+# ih = interrupção de hardware, is = interrupção de software, tr = tempo de roubo
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt, st = steal time
+#: src/top/top_nls.c:779
+#, fuzzy, c-format
+msgid ""
+"%s~3%#5.1f ~2us,~3%#5.1f ~2sy,~3%#5.1f ~2ni,~3%#5.1f ~2id,~3%#5.1f ~2wa,"
+"~3%#5.1f ~2hi,~3%#5.1f ~2si,~3%#5.1f ~2st~3 ~1"
+msgstr ""
+"%s~3%#5.1f ~2us,~3%#5.1f ~2sis,~3%#5.1f ~2ni,~3%#5.1f ~2oc,~3%#5.1f ~2ag,"
+"~3%#5.1f ~2ih,~3%#5.1f ~2is~3%#5.1f ~2tr~3"
+
+# Linhas de memória "KB mem" e "KB swap" (memória)
+#. Translation Hint: next 2 must be treated together, with WORDS above & below aligned
+#: src/top/top_nls.c:783
+#, fuzzy, c-format
+msgid ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used,~3 %9.9s~2buff/cache~3 "
+"~1 "
+msgstr ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2livre,~3 %9.9s~2usados,~3 %9.9s~2buff/"
+"cache~3\n"
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2livre,~3 %9.9s~2usados,~3 %9.9s~2%sdispon."
+"~3\n"
+
+# Linhas de memória "KB mem" e "KB swap" (memória)
+#: src/top/top_nls.c:785
+#, fuzzy, c-format
+msgid ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used.~3 %9.9s~2avail %s~3"
+msgstr ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2livre,~3 %9.9s~2usados,~3 %9.9s~2buff/"
+"cache~3\n"
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2livre,~3 %9.9s~2usados,~3 %9.9s~2%sdispon."
+"~3\n"
+
+#. Translation Hint:
+#. . The next 2 headers for 'Inspection' must each be 3 lines or less
+#. .
+#: src/top/top_nls.c:791
+#, c-format
+msgid ""
+"Inspection~2 Pause at: pid ~1%d~6, running ~1%s~6\n"
+"Use~2: left/right then <Enter> to ~1select~5 an option; 'q' or <Esc> to "
+"~1end~5 !\n"
+"Options~2: ~1%s\n"
+msgstr ""
+"Inspeção~2 Pausa em: pid ~1%d~6, execução ~1%s~6\n"
+"Use~2: esq./dir. e <Enter> para ~1selecionar~5 opção; 'q' ou <Esc> para "
+"~1terminar~5 !\n"
+"Opções~2: ~1%s\n"
+
+#: src/top/top_nls.c:796
+#, c-format
+msgid ""
+"Inspection~2 View at pid: ~1%s~3, running ~1%s~3. Locating: ~1%s~6\n"
+"Use~2: left/right/up/down/etc to ~1navigate~5 the output; 'L'/'&' to "
+"~1locate~5/~1next~5.\n"
+"Or~2: <Enter> to ~1select another~5; 'q' or <Esc> to ~1end~5 !\n"
+msgstr ""
+"Inspeção~2 Visão do pid: ~1%s~3, execução ~1%s~3. Local: ~1%s~6\n"
+"Use~2: esq/dir/cima/baixo/etc para ~1navegar~5 na saída; 'L'/'&' para "
+"~1localiz.~5/~1próx.~5\n"
+"Ou~2: <Enter> para ~1selecionar outro~5; 'q' ou <Esc> para ~1terminar~5 !\n"
+
+#: src/uptime.c:51 src/uptime.c:123
+msgid "Cannot get system uptime"
+msgstr ""
+
+#: src/uptime.c:67
+msgid " -p, --pretty show uptime in pretty format\n"
+msgstr " -p, --pretty mostra o tempo de atividade em um formato bonito\n"
+
+#: src/uptime.c:69
+msgid " -s, --since system up since\n"
+msgstr " -s, --since sistema ativo desde\n"
+
+#: src/vmstat.c:220
+#, c-format
+msgid " %s [options] [delay [count]]\n"
+msgstr " %s [opções] [atraso [contagem]]\n"
+
+#: src/vmstat.c:223
+msgid " -a, --active active/inactive memory\n"
+msgstr " -a, --active memória ativa/inativa\n"
+
+#: src/vmstat.c:224
+msgid " -f, --forks number of forks since boot\n"
+msgstr " -f, --forks número de forks desde a inicialização\n"
+
+#: src/vmstat.c:225
+msgid " -m, --slabs slabinfo\n"
+msgstr " -m, --slabs slabinfo\n"
+
+#: src/vmstat.c:226
+msgid " -n, --one-header do not redisplay header\n"
+msgstr " -n, --one-header não re-exibe o cabeçalho\n"
+
+#: src/vmstat.c:227
+msgid " -s, --stats event counter statistics\n"
+msgstr " -s, --stats estatísticas de contador de eventos\n"
+
+#: src/vmstat.c:228
+msgid " -d, --disk disk statistics\n"
+msgstr " -d, --disk estatísticas de disco\n"
+
+#: src/vmstat.c:229
+msgid " -D, --disk-sum summarize disk statistics\n"
+msgstr " -D, --disk-sum resume as estatísticas de disco\n"
+
+#: src/vmstat.c:230
+msgid " -p, --partition <dev> partition specific statistics\n"
+msgstr " -p, --partition <dispo> estatísticas específicas da partição\n"
+
+#: src/vmstat.c:231
+msgid " -S, --unit <char> define display unit\n"
+msgstr " -S, --unit <caract> define a unidade exibida\n"
+
+#: src/vmstat.c:232
+msgid " -w, --wide wide output\n"
+msgstr " -w, --wide saída ampla\n"
+
+#: src/vmstat.c:233
+msgid " -t, --timestamp show timestamp\n"
+msgstr " -t, --timestamp mostra carimbo de tempo\n"
+
+#: src/vmstat.c:234
+#, fuzzy
+msgid " -y, --no-first skips first line of output\n"
+msgstr " -w, --wide saída ampla\n"
+
+#: src/vmstat.c:253
+#, fuzzy
+msgid ""
+"procs -----------memory---------- ---swap-- -----io---- -system-- -------"
+"cpu-------"
+msgstr ""
+"procs -----------memória--------- ---swap-- ----e/s---- -sistema- ------"
+"cpu-----"
+
+#: src/vmstat.c:255
+#, fuzzy
+msgid ""
+"--procs-- -----------------------memory---------------------- ---swap-- -----"
+"io---- -system-- ----------cpu----------"
+msgstr ""
+"--procs-- -----------------------memória--------------------- ---swap-- ----"
+"e/s---- -sistema- --------cpu--------"
+
+#: src/vmstat.c:256 src/vmstat.c:619
+msgid " -----timestamp-----"
+msgstr " -carimbo de tempo--"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:275
+msgid "r"
+msgstr "r"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:277
+msgid "b"
+msgstr "b"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:279
+msgid "swpd"
+msgstr "swpd"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:281
+msgid "free"
+msgstr "livre"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:283
+msgid "inact"
+msgstr "inativ"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:285
+msgid "buff"
+msgstr "buff"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:287
+msgid "active"
+msgstr "ativo"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:289
+msgid "cache"
+msgstr "cache"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:291
+msgid "si"
+msgstr "si"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:293
+msgid "so"
+msgstr "so"
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:295
+msgid "bi"
+msgstr "bi"
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:297
+msgid "bo"
+msgstr "bo"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:299
+msgid "in"
+msgstr "in"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:301
+msgid "cs"
+msgstr "cs"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:303
+msgid "us"
+msgstr "us"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:305
+msgid "sy"
+msgstr "sy"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:307
+msgid "id"
+msgstr "id"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:309
+msgid "wa"
+msgstr "wa"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:311
+msgid "st"
+msgstr "st"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:313
+msgid "gu"
+msgstr ""
+
+#: src/vmstat.c:374 src/vmstat.c:870
+#, fuzzy
+msgid "Unable to create vmstat structure"
+msgstr "não foi possível criar pipes IPC"
+
+#: src/vmstat.c:376 src/vmstat.c:866 src/vmstat.c:919
+msgid "Unable to create system stat structure"
+msgstr ""
+
+#: src/vmstat.c:380
+#, fuzzy
+msgid "Unable to get uptime"
+msgstr "não foi possível criar pipes IPC"
+
+#: src/vmstat.c:391 src/vmstat.c:472 src/vmstat.c:874
+msgid "Unable to select memory information"
+msgstr ""
+
+#: src/vmstat.c:405 src/vmstat.c:458 src/vmstat.c:868
+msgid "Unable to select stat information"
+msgstr ""
+
+#. Translation Hint: Translating folloging disk partition
+#. * header fields that follow (marked with max x chars) might
+#. * not work, unless manual page is translated as well.
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:565
+msgid "reads"
+msgstr "leituras"
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:567
+msgid "read sectors"
+msgstr "set. lidos"
+
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:569
+msgid "writes"
+msgstr "escritas"
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:571
+msgid "requested writes"
+msgstr "escrit. solic"
+
+#: src/vmstat.c:584 src/vmstat.c:687 src/vmstat.c:813
+msgid "Unable to create diskstat structure"
+msgstr ""
+
+#: src/vmstat.c:587 src/vmstat.c:593
+#, fuzzy, c-format
+msgid "Disk/Partition %s not found"
+msgstr "a partição não foi localizada\n"
+
+#: src/vmstat.c:616
+msgid ""
+"disk- ------------reads------------ ------------writes----------- -----"
+"IO------"
+msgstr ""
+"disco -----------leituras---------- -----------escritas---------- ----E/"
+"S------"
+
+#: src/vmstat.c:618
+msgid ""
+"disk- -------------------reads------------------- -------------------"
+"writes------------------ ------IO-------"
+msgstr ""
+"disco ------------------leituras----------------- ------------------"
+"escritas----------------- -----E/S--------"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:637 src/vmstat.c:645
+msgid "total"
+msgstr "total"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:639 src/vmstat.c:647
+msgid "merged"
+msgstr "mescl."
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:641 src/vmstat.c:649
+msgid "sectors"
+msgstr "setores"
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:643 src/vmstat.c:651
+msgid "ms"
+msgstr "ms"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:653
+msgid "cur"
+msgstr "atu"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:655
+msgid "sec"
+msgstr "DRDOS/s (FAT12)"
+
+#: src/vmstat.c:694 src/vmstat.c:815
+msgid "Unable to retrieve disk statistics"
+msgstr ""
+
+#. Translation Hint: Translating folloging slab fields that
+#. * follow (marked with max x chars) might not work, unless
+#. * manual page is translated as well.
+#. Translation Hint: max 24 chars
+#: src/vmstat.c:741
+msgid "Cache"
+msgstr "Cache"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:743
+msgid "Num"
+msgstr "Núm"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:745
+msgid "Total"
+msgstr "Total"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:747
+msgid "Size"
+msgstr "Tam."
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:749
+msgid "Pages"
+msgstr "Págs."
+
+#: src/vmstat.c:836
+#, fuzzy, c-format
+msgid "%13d disks\n"
+msgstr "%13d discos \n"
+
+#: src/vmstat.c:837
+#, fuzzy, c-format
+msgid "%13d partitions\n"
+msgstr "%13d partições \n"
+
+#: src/vmstat.c:838
+#, c-format
+msgid "%13lu total reads\n"
+msgstr "%13lu leituras totais\n"
+
+#: src/vmstat.c:839
+#, c-format
+msgid "%13lu merged reads\n"
+msgstr "%13lu leituras mescladas\n"
+
+#: src/vmstat.c:840
+#, c-format
+msgid "%13lu read sectors\n"
+msgstr "%13lu setores lidos\n"
+
+#: src/vmstat.c:841
+#, c-format
+msgid "%13lu milli reading\n"
+msgstr "%13lu mili leitura\n"
+
+#: src/vmstat.c:842
+#, c-format
+msgid "%13lu writes\n"
+msgstr "%13lu escritas\n"
+
+#: src/vmstat.c:843
+#, c-format
+msgid "%13lu merged writes\n"
+msgstr "%13lu escritas mescladas\n"
+
+#: src/vmstat.c:844
+#, c-format
+msgid "%13lu written sectors\n"
+msgstr "%13lu setores escritos\n"
+
+#: src/vmstat.c:845
+#, c-format
+msgid "%13lu milli writing\n"
+msgstr "%13lu mili escritas\n"
+
+#: src/vmstat.c:846
+#, c-format
+msgid "%13lu inprogress IO\n"
+msgstr "%13lu E/S em progresso\n"
+
+#: src/vmstat.c:847
+#, c-format
+msgid "%13lu milli spent IO\n"
+msgstr "%13lu E/S mili gastos\n"
+
+#: src/vmstat.c:848
+#, fuzzy, c-format
+msgid "%13lu milli weighted IO\n"
+msgstr "%13lu E/S mili gastos\n"
+
+#: src/vmstat.c:876
+#, c-format
+msgid "%13lu %s total memory\n"
+msgstr "%13lu %s de memória total\n"
+
+#: src/vmstat.c:877
+#, c-format
+msgid "%13lu %s used memory\n"
+msgstr "%13lu %s de memória usada\n"
+
+#: src/vmstat.c:878
+#, c-format
+msgid "%13lu %s active memory\n"
+msgstr "%13lu %s de memória ativa\n"
+
+#: src/vmstat.c:879
+#, c-format
+msgid "%13lu %s inactive memory\n"
+msgstr "%13lu %s de memória inativa\n"
+
+#: src/vmstat.c:880
+#, c-format
+msgid "%13lu %s free memory\n"
+msgstr "%13lu %s de memória livre\n"
+
+#: src/vmstat.c:881
+#, c-format
+msgid "%13lu %s buffer memory\n"
+msgstr "%13lu %s de memória em buffer\n"
+
+#: src/vmstat.c:882
+#, c-format
+msgid "%13lu %s swap cache\n"
+msgstr "%13lu %s de cache de swap\n"
+
+#: src/vmstat.c:883
+#, c-format
+msgid "%13lu %s total swap\n"
+msgstr "%13lu %s de swap total\n"
+
+#: src/vmstat.c:884
+#, c-format
+msgid "%13lu %s used swap\n"
+msgstr "%13lu %s de swap usada\n"
+
+#: src/vmstat.c:885
+#, c-format
+msgid "%13lu %s free swap\n"
+msgstr "%13lu %s de swap livre\n"
+
+#: src/vmstat.c:886
+#, c-format
+msgid "%13lld non-nice user cpu ticks\n"
+msgstr "%13lld tiques não-nice de cpu de usuário\n"
+
+#: src/vmstat.c:887
+#, c-format
+msgid "%13lld nice user cpu ticks\n"
+msgstr "%13lld tiques nice de cpu de usuário\n"
+
+#: src/vmstat.c:888
+#, c-format
+msgid "%13lld system cpu ticks\n"
+msgstr "%13lld tiques de cpu de sistema\n"
+
+#: src/vmstat.c:889
+#, c-format
+msgid "%13lld idle cpu ticks\n"
+msgstr "%13lld tiques de cpu ocioso\n"
+
+#: src/vmstat.c:890
+#, c-format
+msgid "%13lld IO-wait cpu ticks\n"
+msgstr "%13lld tiques de cpu de aguardo de E/S\n"
+
+#: src/vmstat.c:891
+#, c-format
+msgid "%13lld IRQ cpu ticks\n"
+msgstr "%13lld tiques de cpu de IRQ\n"
+
+#: src/vmstat.c:892
+#, c-format
+msgid "%13lld softirq cpu ticks\n"
+msgstr "%13lld tiques de cpu de softirq\n"
+
+#: src/vmstat.c:893
+#, c-format
+msgid "%13lld stolen cpu ticks\n"
+msgstr "%13lld tiques de cpu roubada\n"
+
+#: src/vmstat.c:894
+#, fuzzy, c-format
+msgid "%13lld non-nice guest cpu ticks\n"
+msgstr "%13lld tiques não-nice de cpu de usuário\n"
+
+#: src/vmstat.c:895
+#, fuzzy, c-format
+msgid "%13lld nice guest cpu ticks\n"
+msgstr "%13lld tiques nice de cpu de usuário\n"
+
+#: src/vmstat.c:896
+#, fuzzy, c-format
+msgid "%13lu K paged in\n"
+msgstr "%13lu páginas paginadas IN\n"
+
+#: src/vmstat.c:897
+#, fuzzy, c-format
+msgid "%13lu K paged out\n"
+msgstr "%13lu páginas paginadas OUT\n"
+
+#: src/vmstat.c:898
+#, c-format
+msgid "%13lu pages swapped in\n"
+msgstr "%13lu páginas em swap IN\n"
+
+#: src/vmstat.c:899
+#, c-format
+msgid "%13lu pages swapped out\n"
+msgstr "%13lu páginas em swap OUT\n"
+
+#: src/vmstat.c:900
+#, fuzzy, c-format
+msgid "%13lu interrupts\n"
+msgstr "%13u interrupções\n"
+
+#: src/vmstat.c:901
+#, fuzzy, c-format
+msgid "%13lu CPU context switches\n"
+msgstr "%13u trocas de contexto de CPU\n"
+
+#: src/vmstat.c:902
+#, fuzzy, c-format
+msgid "%13lu boot time\n"
+msgstr "%13u tempo de inicialização\n"
+
+#: src/vmstat.c:903 src/vmstat.c:921
+#, fuzzy, c-format
+msgid "%13lu forks\n"
+msgstr "%13u forks\n"
+
+#. Translation Hint: do not change argument characters
+#: src/vmstat.c:1024
+msgid "-S requires k, K, m or M (default is KiB)"
+msgstr "-S exige k, K, m ou M (padrão é KB)"
+
+#: src/watch.c:94
+#, c-format
+msgid " %s [options] command\n"
+msgstr " %s [opções] comando\n"
+
+#: src/watch.c:96
+msgid " -b, --beep beep if command has a non-zero exit\n"
+msgstr " -b, --beep apita se comando tiver uma saída anormal\n"
+
+#: src/watch.c:97
+msgid " -c, --color interpret ANSI color and style sequences\n"
+msgstr " -c, --color interpreta sequências de estilo e cor ANSI\n"
+
+#: src/watch.c:98
+#, fuzzy
+msgid ""
+" -C, --no-color do not interpret ANSI color and style sequences\n"
+msgstr " -c, --color interpreta sequências de estilo e cor ANSI\n"
+
+#: src/watch.c:99
+msgid ""
+" -d, --differences[=<permanent>]\n"
+" highlight changes between updates\n"
+msgstr ""
+" -d, --differences[=<permanente>]\n"
+" realça alterações entre atualizações\n"
+
+#: src/watch.c:101
+msgid " -e, --errexit exit if command has a non-zero exit\n"
+msgstr " -e, --errexit sai se comando tiver uma saída anormal\n"
+
+#: src/watch.c:102
+msgid " -g, --chgexit exit when output from command changes\n"
+msgstr " -g, --chgexit sai quando a saída do comando mudar\n"
+
+#: src/watch.c:103
+#, fuzzy
+msgid ""
+" -q, --equexit <cycles>\n"
+" exit when output from command does not change\n"
+msgstr " -g, --chgexit sai quando a saída do comando mudar\n"
+
+#: src/watch.c:105
+msgid " -n, --interval <secs> seconds to wait between updates\n"
+msgstr " -n, --interval <seg> segundos para esperar entre atualizações\n"
+
+#: src/watch.c:106
+msgid " -p, --precise attempt run command in precise intervals\n"
+msgstr ""
+" -p, --precise tenta executar comando em intervalos precisos\n"
+
+#: src/watch.c:107
+msgid " -r, --no-rerun do not rerun program on window resize\n"
+msgstr ""
+
+#: src/watch.c:108
+msgid " -t, --no-title turn off header\n"
+msgstr " -t, --no-title desativa o cabeçalho\n"
+
+#: src/watch.c:109
+msgid " -w, --no-wrap turn off line wrapping\n"
+msgstr " -w, --no-wrap desativa a quebra de linha\n"
+
+#: src/watch.c:110
+msgid " -x, --exec pass command to exec instead of \"sh -c\"\n"
+msgstr ""
+" -x, --exec passa comando para o exec em vez de \"sh -c\"\n"
+
+#: src/watch.c:113
+msgid " -v, --version output version information and exit\n"
+msgstr " -v, --version mostra informações da versão e sai\n"
+
+#: src/watch.c:485
+#, c-format
+msgid "Every %.1fs: "
+msgstr "A cada %.1fs: "
+
+#: src/watch.c:486
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: src/watch.c:575
+msgid "unable to create IPC pipes"
+msgstr "não foi possível criar pipes IPC"
+
+#: src/watch.c:585
+msgid "unable to fork process"
+msgstr "não foi possível fazer fork do processo"
+
+#: src/watch.c:590
+msgid "dup2 failed"
+msgstr "dup2 falhou"
+
+#: src/watch.c:597
+#, c-format
+msgid "unable to execute '%s'"
+msgstr "não foi possível executar \"%s\""
+
+#: src/watch.c:614
+msgid "fdopen"
+msgstr "fdopen"
+
+#: src/watch.c:788
+msgid "waitpid"
+msgstr "waitpid"
+
+#: src/watch.c:796
+msgid "command exit with a non-zero status, press a key to exit"
+msgstr "comando saiu com um status não zero, pressione uma tecla para sair"
+
+#: src/watch.c:863
+msgid "Could not parse interval from WATCH_INTERVAL"
+msgstr "Não foi possível analisar o intervalo de WATCH_INTERVAL"
+
+#: src/watch.c:954
+#, c-format
+msgid "unicode handling error\n"
+msgstr "erro de tratamento de unicode\n"
+
+#: src/watch.c:960
+#, c-format
+msgid "unicode handling error (malloc)\n"
+msgstr "erro de tratamento de unicode (malloc)\n"
+
+#: src/w.c:289 src/w.c:304
+#, fuzzy, c-format
+msgid " %2lludays"
+msgstr " %2ludias"
+
+#. Translation Hint: Minutes:Seconds
+#. Translation Hint: Hours:Minutes
+#: src/w.c:298 src/w.c:308
+#, fuzzy, c-format
+msgid " %2llu:%02um"
+msgstr " %2lu:%02um"
+
+#. Translation Hint: Seconds:Centiseconds
+#: src/w.c:316
+#, fuzzy, c-format
+msgid " %2llu.%02us"
+msgstr " %2lu.%02us"
+
+#: src/w.c:656
+#, fuzzy, c-format
+msgid " %s [options] [user]\n"
+msgstr " %s [opções] [tty]\n"
+
+#: src/w.c:658
+msgid " -h, --no-header do not print header\n"
+msgstr " -h, --no-header não exibe o cabeçalho\n"
+
+#: src/w.c:659
+msgid " -u, --no-current ignore current process username\n"
+msgstr " -u, --no-current ignora usuário do processo atual\n"
+
+#: src/w.c:660
+msgid " -s, --short short format\n"
+msgstr " -s, --short formato curto\n"
+
+#: src/w.c:661
+msgid " -f, --from show remote hostname field\n"
+msgstr " -f, --from mostra campo de nome máquina remoto\n"
+
+#: src/w.c:662
+msgid " -o, --old-style old style output\n"
+msgstr " -o, --old-style saída de estilo antigo\n"
+
+#: src/w.c:663
+msgid ""
+" -i, --ip-addr display IP address instead of hostname (if possible)\n"
+msgstr ""
+" -i, --ip-addr exibe endereço IP em vez do nome de máquina (se "
+"possível)\n"
+
+#: src/w.c:664
+#, fuzzy
+msgid " -p, --pids show the PID(s) of processes in WHAT\n"
+msgstr " -l, --list-name lista PID e nome do processo\n"
+
+#: src/w.c:763
+#, c-format
+msgid ""
+"User length environment PROCPS_USERLEN must be between 8 and %i, ignoring.\n"
+msgstr ""
+"A variável de tamanho do usuário PROCPS_USERLEN deve ser de 8 a %i, "
+"ignorando.\n"
+
+#: src/w.c:773
+#, c-format
+msgid ""
+"from length environment PROCPS_FROMLEN must be between 8 and %d, ignoring\n"
+msgstr ""
+"a variável de tamanho de origem PROCPS_FROMLEN deve ser de 8 a %d, "
+"ignorando\n"
+
+#. Translation Hint: Following five uppercase messages are
+#. * headers. Try to keep alignment intact.
+#: src/w.c:799
+#, c-format
+msgid "%-*s TTY "
+msgstr "%-*s TTY "
+
+#: src/w.c:801
+msgid "FROM"
+msgstr "DE"
+
+#: src/w.c:803
+#, c-format
+msgid " LOGIN@ IDLE JCPU PCPU WHAT\n"
+msgstr " LOGIN@ OCIOSO JCPU PCPU O QUE\n"
+
+#: src/w.c:805
+#, c-format
+msgid " IDLE WHAT\n"
+msgstr " OCI. O QUE\n"
+
+#: src/w.c:815
+msgid "error getting sessions"
+msgstr ""
+
+#: src/w.c:823
+msgid "get user name failed"
+msgstr ""
+
+#: local/c.h:153
+msgid ""
+"\n"
+"Usage:\n"
+msgstr ""
+"\n"
+"Uso:\n"
+
+#: local/c.h:154
+msgid ""
+"\n"
+"Options:\n"
+msgstr ""
+"\n"
+"Opções:\n"
+
+# apenas um caractere de nova linha
+#: local/c.h:155
+msgid "\n"
+msgstr "\n"
+
+#: local/c.h:156
+msgid " -h, --help display this help and exit\n"
+msgstr " -h, --help exibe esta ajuda e sai\n"
+
+#: local/c.h:157
+msgid " -V, --version output version information and exit\n"
+msgstr " -V, --version mostra informação da versão e sai\n"
+
+#: local/c.h:158
+#, c-format
+msgid ""
+"\n"
+"For more details see %s.\n"
+msgstr ""
+"\n"
+"Para mais detalhes, veja %s.\n"
+
+#: local/c.h:160
+#, c-format
+msgid "%s from %s\n"
+msgstr "%s de %s\n"
+
+#, c-format
+#~ msgid "error: not enough memory\n"
+#~ msgstr "erro: memória insuficiente\n"
+
+#, c-format
+#~ msgid "error: can not access /proc\n"
+#~ msgstr "erro: não foi possível acessar /proc\n"
+
+#, c-format
+#~ msgid "something at line %d\n"
+#~ msgstr "alguma coisa na linha %d\n"
+
+#, c-format
+#~ msgid "\"%s\" must be of the form name=value"
+#~ msgstr "\"%s\" deve estar na forma nome=valor"
+
+#, c-format
+#~ msgid "malformed setting \"%s\""
+#~ msgstr "configuração malformada \"%s\""
+
+#, c-format
+#~ msgid "%s is deprecated, value not set"
+#~ msgstr "%s é obsoleto, valor não definido"
+
+#, c-format
+#~ msgid ""
+#~ "inappropriate '%s'\n"
+#~ "Usage:\n"
+#~ " %s%s"
+#~ msgstr ""
+#~ "\"%s\" inapropriado\n"
+#~ "Uso:\n"
+#~ " %s%s"
+
+#, c-format
+#~ msgid ""
+#~ " %s\n"
+#~ "Usage:\n"
+#~ " %s%s"
+#~ msgstr ""
+#~ " %s\n"
+#~ "Uso:\n"
+#~ " %s%s"
+
+#, c-format
+#~ msgid "failed openproc: %s"
+#~ msgstr "falha openproc: %s"
+
+#, c-format
+#~ msgid "-%c requires argument"
+#~ msgstr "-%c requer argumento"
+
+#~ msgid ""
+#~ " -hv | -bcEeHiOSs1 -d secs -n max -u|U user -p pid(s) -o field -w [cols]"
+#~ msgstr ""
+#~ " -hv | bcEeHiOSs1 -d segs -n máx -u|U usuário -p pid(s) -o campo -w [cols]"
+
+#~ msgid "failed /proc/stat read"
+#~ msgstr "falha ao abrir /proc/stat"
+
+#~ msgid "terminal is not wide enough"
+#~ msgstr "o terminal não é largo o suficiente"
+
+#~ msgid ""
+#~ " k,r Manipulate tasks: '~1k~2' kill; '~1r~2' renice\n"
+#~ " d or s Set update interval\n"
+#~ msgstr ""
+#~ " k,r Manipular tarefas: '~1k~2' mata; '~1r~2' renice\n"
+#~ " d ou s Define intervalo de atualização\n"
+
+# Linha de %CPU(s) na Ãrea Resumida - opção 1
+#, c-format
+#~ msgid ""
+#~ "%s~3 %#5.1f ~2user,~3 %#5.1f ~2system,~3 %#5.1f ~2nice,~3 %#5.1f "
+#~ "~2idle~3"
+#~ msgstr ""
+#~ "%s~3 %#5.1f ~2usuário,~3 %#5.1f ~2sistema,~3 %#5.1f ~2nice,~3 %#5.1f "
+#~ "~2ocioso~3"
+
+# Linha de %CPU(s) na Ãrea Resumida - opção 2
+#, c-format
+#~ msgid ""
+#~ "%s~3 %#5.1f ~2user,~3 %#5.1f ~2system,~3 %#5.1f ~2nice,~3 %#5.1f "
+#~ "~2idle,~3 %#5.1f ~2IO-wait~3"
+#~ msgstr ""
+#~ "%s~3 %#5.1f ~2usuário,~3 %#5.1f ~2sistema,~3 %#5.1f ~2nice,~3 %#5.1f "
+#~ "~2ocioso~3 %#5.1f ~2aguad-ES~3"
+
+#~ msgid "your kernel does not support diskstat. (2.5.70 or above required)"
+#~ msgstr ""
+#~ "seu kernel não oferece suporte a diskstat. (2.5.70 ou acima exigido)"
+
+#~ msgid "your kernel does not support diskstat (2.5.70 or above required)"
+#~ msgstr "seu kernel não oferece suporte a diskstat (2.5.70 ou acima exigido)"
+
+#~ msgid ""
+#~ "your kernel does not support slabinfo or your permissions are insufficient"
+#~ msgstr ""
+#~ "seu kernel não oferece suporte a slabinfo ou suas permissões são "
+#~ "insuficientes"
+
+#~ msgid ""
+#~ " --ns <PID> match the processes that belong to the same\n"
+#~ " namespace as <pid> or 0 for all namespaces\n"
+#~ msgstr ""
+#~ " --ns <PID> corresponde os processos que pertencem ao\n"
+#~ " mesmo espaço de nomes que <pid> ou 0 para\n"
+#~ " todos os espaços de nomes\n"
+
+#~ msgid "unknown page size (assume 4096)\n"
+#~ msgstr "tamanho de página desconhecido (presumindo 4096)\n"
+
+#~ msgid "Overwrite existing obsolete/corrupted rcfile?"
+#~ msgstr "Sobrescrever o arquivo rc obsoleto/corrompido existente?"
+
+#~ msgid "reads "
+#~ msgstr "leituras"
diff --git a/po/quot.sed b/po/quot.sed
new file mode 100644
index 0000000..0122c46
--- /dev/null
+++ b/po/quot.sed
@@ -0,0 +1,6 @@
+s/"\([^"]*\)"/“\1â€/g
+s/`\([^`']*\)'/‘\1’/g
+s/ '\([^`']*\)' / ‘\1’ /g
+s/ '\([^`']*\)'$/ ‘\1’/g
+s/^'\([^`']*\)' /‘\1’ /g
+s/“â€/""/g
diff --git a/po/remove-potcdate.sin b/po/remove-potcdate.sin
new file mode 100644
index 0000000..2436c49
--- /dev/null
+++ b/po/remove-potcdate.sin
@@ -0,0 +1,19 @@
+# Sed script that remove the POT-Creation-Date line in the header entry
+# from a POT file.
+#
+# The distinction between the first and the following occurrences of the
+# pattern is achieved by looking at the hold space.
+/^"POT-Creation-Date: .*"$/{
+x
+# Test if the hold space is empty.
+s/P/P/
+ta
+# Yes it was empty. First occurrence. Remove the line.
+g
+d
+bb
+:a
+# The hold space was nonempty. Following occurrences. Do nothing.
+x
+:b
+}
diff --git a/po/ro.gmo b/po/ro.gmo
new file mode 100644
index 0000000..d1effe8
--- /dev/null
+++ b/po/ro.gmo
Binary files differ
diff --git a/po/ro.po b/po/ro.po
new file mode 100644
index 0000000..0a94b94
--- /dev/null
+++ b/po/ro.po
@@ -0,0 +1,5348 @@
+# Mesajele în limba română pentru pachetul procps-ng.
+# Copyright © 2022, 2023 Free Software Foundation, Inc.
+# This file is distributed under the same license as the procps-ng package.
+#
+# Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>, 2022 - 2023.
+#
+# Cronologia traducerii fiÈ™ierului „procps-ngâ€:
+# Traducerea inițială, făcută de R-GC, pentru versiunea procps-ng 3.3.17rc1 (99% - tradus), noi-2022.
+# Actualizare a traducerii pentru versiunea 4.0.1rc3, făcută de R-GC (100% - tradus), noi-2022.
+# Actualizare a traducerii pentru versiunea 4.0.2-rc1, făcută de R-GC, noi-2022.
+# Actualizare a traducerii pentru versiunea 4.0.3-rc1, făcută de R-GC, ian-2023.
+# Actualizare a traducerii pentru versiunea 4.0.4-rc1, făcută de R-GC, aug-2023.
+# Actualizare a traducerii pentru versiunea Y, făcută de X, Z(anul).
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: procps-ng 4.0.4-rc1\n"
+"Report-Msgid-Bugs-To: procps@freelists.org\n"
+"POT-Creation-Date: 2023-08-19 17:38+1000\n"
+"PO-Revision-Date: 2023-08-20 17:03+0200\n"
+"Last-Translator: Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>\n"
+"Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
+"Language: ro\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : (n==0 || (n%100 > 0 && n%100 < "
+"20)) ? 1 : 2);\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"X-Generator: Poedit 3.2.2\n"
+
+#: local/fileutils.c:38
+msgid "write error"
+msgstr "eroare de scriere"
+
+# R-GC, scrie:
+# acest mesaj și următoarele, pot să fie
+# vizualizate, rulînd comanda:
+# «free --help»
+#: src/free.c:74 src/slabtop.c:106 src/uptime.c:65
+#, c-format
+msgid " %s [options]\n"
+msgstr " %s [opțiuni]\n"
+
+#: src/free.c:76
+msgid " -b, --bytes show output in bytes\n"
+msgstr " -b, --bytes afișează ieșirea în octeți\n"
+
+#: src/free.c:77
+msgid " --kilo show output in kilobytes\n"
+msgstr " --kilo afișează ieșirea în kiloocteți\n"
+
+#: src/free.c:78
+msgid " --mega show output in megabytes\n"
+msgstr " --mega afișează ieșirea în megaocteți\n"
+
+#: src/free.c:79
+msgid " --giga show output in gigabytes\n"
+msgstr " --giga afișează ieșirea în gigaocteți\n"
+
+#: src/free.c:80
+msgid " --tera show output in terabytes\n"
+msgstr " --tera afișează ieșirea în teraocteți\n"
+
+#: src/free.c:81
+msgid " --peta show output in petabytes\n"
+msgstr " --peta afișează ieșirea în petaocteți\n"
+
+#: src/free.c:82
+msgid " -k, --kibi show output in kibibytes\n"
+msgstr " -k, --kibi afișează ieșirea în kibiocteți\n"
+
+#: src/free.c:83
+msgid " -m, --mebi show output in mebibytes\n"
+msgstr " -m, --mebi afișează ieșirea în mebiocteți\n"
+
+#: src/free.c:84
+msgid " -g, --gibi show output in gibibytes\n"
+msgstr " -g, --gibi afișează ieșirea în gibiocteți\n"
+
+#: src/free.c:85
+msgid " --tebi show output in tebibytes\n"
+msgstr " --tebi afișează ieșirea în tebiocteți\n"
+
+#: src/free.c:86
+msgid " --pebi show output in pebibytes\n"
+msgstr " --pebi afișează ieșirea în pebiocteți\n"
+
+#: src/free.c:87
+msgid " -h, --human show human-readable output\n"
+msgstr ""
+" -h, --human afișează ieșirea într-o formă care poate fi citită "
+"ușor\n"
+" de către om\n"
+
+#: src/free.c:88
+msgid " --si use powers of 1000 not 1024\n"
+msgstr " --si utilizează puteri de 1000, nu de 1024\n"
+
+#: src/free.c:89
+msgid " -l, --lohi show detailed low and high memory statistics\n"
+msgstr ""
+" -l, --lohi afișează statistici detaliate despre cantitatea de "
+"memorie\n"
+" utilizată, scăzută(Low) și ridicată(High)\n"
+
+#: src/free.c:90
+msgid " -L, --line show output on a single line\n"
+msgstr " -L, --line afișează ieșirea pe o singură linie\n"
+
+#: src/free.c:91
+msgid " -t, --total show total for RAM + swap\n"
+msgstr " -t, --total afișează totalul pentru RAM + swap\n"
+
+#: src/free.c:92
+msgid " -v, --committed show committed memory and commit limit\n"
+msgstr " -v, --committed afișează memoria alocată și limita de alocare\n"
+
+#: src/free.c:93
+msgid " -s N, --seconds N repeat printing every N seconds\n"
+msgstr ""
+" -s N, --seconds N repetă afișarea rezultatelor, la fiecare N secunde\n"
+
+#: src/free.c:94
+msgid " -c N, --count N repeat printing N times, then exit\n"
+msgstr ""
+" -c N, --count N repetă afișarea rezultatelor de N ori, după care iese\n"
+
+# R-GC, scrie:
+# ieșire largă
+# ieșire amplă
+# ieșire întinsă
+# ieșire extinsă
+# ***
+# am ales prima variantă care este
+# traducerea mot-a-mot, dar cred
+# că varianta care descrie cel mai
+# „aproape de adevărâ€, sensul
+# mesajului original, este cea
+# care apare ultima în această
+# serie.
+#: src/free.c:95
+msgid " -w, --wide wide output\n"
+msgstr " -w, --wide ieșire largă\n"
+
+#: src/free.c:97 src/w.c:666
+msgid " --help display this help and exit\n"
+msgstr " --help afișează acest mesaj de ajutor și iese\n"
+
+#: src/free.c:172
+msgid "Multiple unit options don't make sense."
+msgstr "Opțiunile de unități multiple nu au sens."
+
+#: src/free.c:341
+#, c-format
+msgid "seconds argument `%s' is not positive number"
+msgstr "argumentul de secunde „%s†nu este un număr pozitiv"
+
+#: src/free.c:347
+msgid "failed to parse count argument"
+msgstr "a eșuat analizarea argumentului de numărare (count)"
+
+#: src/free.c:350
+#, c-format
+msgid "failed to parse count argument: '%s'"
+msgstr "a eÈ™uat analizarea argumentului de numărare (count): „%sâ€"
+
+#: src/free.c:370
+msgid "Memory information file /proc/meminfo does not exist"
+msgstr "Fișierul cu informații despre memorie „/proc/meminfo†nu există"
+
+#: src/free.c:373 src/vmstat.c:378 src/vmstat.c:872
+msgid "Unable to create meminfo structure"
+msgstr "Nu se poate crea structura informațiilor despre memorie"
+
+#. Translation Hint: These are shortened column headers
+#. * that are all 7 characters long. Use spaces and right
+#. * align if the translation is shorter.
+#.
+#: src/free.c:381
+msgid "SwapUse"
+msgstr "UzSwap"
+
+#: src/free.c:382
+msgid "CachUse"
+msgstr "UzCache"
+
+#: src/free.c:384
+msgid " MemUse"
+msgstr " UzMem"
+
+#: src/free.c:385
+msgid "MemFree"
+msgstr "MemLib"
+
+#: src/free.c:395
+#, c-format
+msgid ""
+" total used free shared buffers "
+"cache available"
+msgstr ""
+" total utilizată liberă partajată buffers "
+"cache disponibilă"
+
+#: src/free.c:397
+#, c-format
+msgid ""
+" total used free shared buff/cache "
+"available"
+msgstr ""
+" total utilizată liberă partajată buff/cache "
+"disponibilă"
+
+#: src/free.c:400
+msgid "Mem:"
+msgstr "Mem:"
+
+# R-GC, scrie:
+# am lăsat netradus acest mesaj, și
+# următoarele două, datorită
+# limitărilor de aliniere și de număr
+# de caractere (coloane), impus de
+# autori/geometria terminalului.
+# Altfel, valorile afișate în tabel, pot
+# să apară trunchiate în mașini cu
+# memorie RAM
+# <=8Go, și apar trunchiate în cele
+# cu >8Go.
+# ***
+# Sorry ;)
+#: src/free.c:423
+msgid "Low:"
+msgstr "Low:"
+
+#: src/free.c:429
+msgid "High:"
+msgstr "High:"
+
+#: src/free.c:436
+msgid "Swap:"
+msgstr "Swap:"
+
+#: src/free.c:443
+msgid "Total:"
+msgstr "Total:"
+
+#: src/free.c:456
+msgid "Comm:"
+msgstr "Com.:"
+
+# R-GC, scrie:
+# acest mesaj și următoarele, pot să fie
+# vizualizate, rulînd comanda:
+# «skill --help»
+#: src/kill.c:40
+#, c-format
+msgid " %s [options] <pid> [...]\n"
+msgstr " %s [opțiuni] <pid> [...]\n"
+
+#: src/kill.c:42
+msgid " <pid> [...] send signal to every <pid> listed\n"
+msgstr " <pid> [...] trimite semnalul la fiecare <pid> listat\n"
+
+#: src/kill.c:43
+msgid ""
+" -<signal>, -s, --signal <signal>\n"
+" specify the <signal> to be sent\n"
+msgstr ""
+" -<signal>, -s, --signal <semnal>\n"
+" specifică <semnalul> care trebuie trimis\n"
+
+#: src/kill.c:45
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr ""
+" -q, --queue <valoare> valoare întreagă care trebuie trimisă împreună cu "
+"semnalul\n"
+
+#: src/kill.c:46
+msgid ""
+" -l, --list=[<signal>] list all signal names, or convert one to a name\n"
+msgstr ""
+" -l, --list=[<semnal>] listează toate numele semnalelor sau convertește "
+"unul\n"
+" într-un nume\n"
+
+#: src/kill.c:47
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr ""
+" -L, --table listează toate numele semnalelor într-un tabel\n"
+
+#: src/kill.c:112
+#, c-format
+msgid "unknown signal name %s"
+msgstr "nume de semnal necunoscut %s"
+
+#: src/kill.c:131
+msgid "must be an integer value to be passed with the signal."
+msgstr "trebuie să fie o valoare întreagă pentru a fi transmisă cu semnalul."
+
+#: src/kill.c:136
+#, c-format
+msgid "invalid argument %c"
+msgstr "argument nevalid %c"
+
+#: src/kill.c:146 src/pgrep.c:792 src/pidof.c:250 src/pidof.c:290
+#: src/sysctl.c:867
+msgid "internal error"
+msgstr "eroare internă"
+
+#: src/kill.c:158 src/pmap.c:771 src/pmap.c:786 src/skill.c:381 src/skill.c:465
+#: src/tload.c:135 src/tload.c:140 src/vmstat.c:1047 src/vmstat.c:1057
+#: src/watch.c:891 src/watch.c:906
+msgid "failed to parse argument"
+msgstr "nu s-a reușit să se analizeze argumentul"
+
+#: src/pgrep.c:92 src/pidof.c:40 src/skill.c:74
+msgid "integer overflow"
+msgstr "depășire de număr întreg"
+
+# R-GC, scrie:
+# acest mesaj și următoarele, pot să fie
+# vizualizate, rulînd comanda:
+# «pgrep --help»
+#: src/pgrep.c:155
+#, c-format
+msgid " %s [options] <pattern>\n"
+msgstr " %s [opțiuni] <model>\n"
+
+#: src/pgrep.c:159
+msgid " -d, --delimiter <string> specify output delimiter\n"
+msgstr " -d, --delimiter <șir> specifică delimitatorul de ieșire\n"
+
+#: src/pgrep.c:160
+msgid " -l, --list-name list PID and process name\n"
+msgstr " -l, --list-name afișează numărul PID și numele procesului\n"
+
+#: src/pgrep.c:161
+msgid " -a, --list-full list PID and full command line\n"
+msgstr ""
+" -a, --list-full afișează numărul PID și linia de comandă "
+"completă\n"
+
+#: src/pgrep.c:162
+msgid " -v, --inverse negates the matching\n"
+msgstr ""
+" -v, --inverse inversează potrivirile (afișează ce NU se "
+"potrivește\n"
+" cu modelul)\n"
+
+#: src/pgrep.c:163
+msgid " -w, --lightweight list all TID\n"
+msgstr ""
+" -w, --lightweight afișează toate numerele TID (Thread-ID,\n"
+" identificatoarele firelor procesului furnizat)\n"
+
+#: src/pgrep.c:166
+msgid " -<sig> signal to send (either number or name)\n"
+msgstr ""
+" -<sig> semnalul «sig» de trimis (fie număr, fie nume)\n"
+
+#: src/pgrep.c:167
+msgid " -H, --require-handler match only if signal handler is present\n"
+msgstr ""
+" -H, --require-handler potrivește numai dacă este prezent un gestionar "
+"de semnal\n"
+
+#: src/pgrep.c:168
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr ""
+" -q, --queue <valoare> valoarea numărului întreag care trebuie trimis "
+"cu\n"
+" semnalul\n"
+
+#: src/pgrep.c:169
+msgid " -e, --echo display what is killed\n"
+msgstr " -e, --echo afișează care proces este omorât\n"
+
+#: src/pgrep.c:173
+msgid " -e, --echo display PIDs before waiting\n"
+msgstr ""
+" -e, --echo afișează numerele PID înainte de așteptare\n"
+
+#: src/pgrep.c:177
+msgid " -c, --count count of matching processes\n"
+msgstr " -c, --count numărul de procese care s-au potrivit\n"
+
+#: src/pgrep.c:178
+msgid " -f, --full use full process name to match\n"
+msgstr ""
+" -f, --full utilizează numele complet al procesului pentru a "
+"potrivi\n"
+
+#: src/pgrep.c:179
+msgid " -g, --pgroup <PGID,...> match listed process group IDs\n"
+msgstr ""
+" -g, --pgroup <PGID,...> găsește ID-urile grupurilor de procese listate\n"
+
+#: src/pgrep.c:180
+msgid " -G, --group <GID,...> match real group IDs\n"
+msgstr " -G, --group <GID,...> găsește ID-urile reale ale grupului\n"
+
+#: src/pgrep.c:181
+msgid " -i, --ignore-case match case insensitively\n"
+msgstr ""
+" -i, --ignore-case potrivește fără să diferențieze între majuscule "
+"și\n"
+" minuscule\n"
+
+#: src/pgrep.c:182
+msgid " -n, --newest select most recently started\n"
+msgstr ""
+" -n, --newest selectează procesul cel mai recent început\n"
+
+#: src/pgrep.c:183
+msgid " -o, --oldest select least recently started\n"
+msgstr ""
+" -o, --oldest selectează procesul cel mai puțin recent început\n"
+
+#: src/pgrep.c:184
+msgid " -O, --older <seconds> select where older than seconds\n"
+msgstr ""
+" -O, --older <secunde> selectează procesele care sunt mai vechi de\n"
+" <secunde> secunde\n"
+
+#: src/pgrep.c:185
+msgid ""
+" -P, --parent <PPID,...> match only child processes of the given parent\n"
+msgstr ""
+" -P, --parent <PPID,...> potrivește numai procesele-copil ale părintelui "
+"dat\n"
+
+#: src/pgrep.c:186
+msgid " -s, --session <SID,...> match session IDs\n"
+msgstr " -s, --session <SID,...> potrivește ID-urile de sesiune\n"
+
+#: src/pgrep.c:187
+msgid " --signal <sig> signal to send (either number or name)\n"
+msgstr ""
+" --signal <sig> semnalul «sig» de trimis (fie număr, fie nume)\n"
+
+#: src/pgrep.c:188
+msgid " -t, --terminal <tty,...> match by controlling terminal\n"
+msgstr " -t, --terminal <tty,...> potrivire prin terminalul de control\n"
+
+#: src/pgrep.c:189
+msgid " -u, --euid <ID,...> match by effective IDs\n"
+msgstr " -u, --euid <ID,...> potrivire prin ID-uri efective\n"
+
+#: src/pgrep.c:190
+msgid " -U, --uid <ID,...> match by real IDs\n"
+msgstr " -U, --uid <ID,...> potrivire prin ID-uri reale\n"
+
+#: src/pgrep.c:191
+msgid " -x, --exact match exactly with the command name\n"
+msgstr " -x, --exact se potrivește exact cu numele comenzii\n"
+
+#: src/pgrep.c:192
+msgid " -F, --pidfile <file> read PIDs from file\n"
+msgstr " -F, --pidfile <fișier> citește PID-urile din fișierul <fișier>\n"
+
+#: src/pgrep.c:193
+msgid " -L, --logpidfile fail if PID file is not locked\n"
+msgstr " -L, --logpidfile eșuează dacă fișierul PID nu este blocat\n"
+
+#: src/pgrep.c:194
+msgid " -r, --runstates <state> match runstates [D,S,Z,...]\n"
+msgstr " -r, --runstates <stare> potrivește stările de rulare [D,S,Z,...]\n"
+
+#: src/pgrep.c:195
+msgid " -A, --ignore-ancestors exclude our ancestors from results\n"
+msgstr ""
+" -A, --ignore-ancestors exclude predecesorii noștrii din rezultate\n"
+
+#: src/pgrep.c:196
+msgid " --cgroup <grp,...> match by cgroup v2 names\n"
+msgstr " --cgroup <nume_grup,...> potrivește numele cgroup v2\n"
+
+#: src/pgrep.c:197
+msgid ""
+" --ns <PID> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+" --ns <PID> potrivește procesele care aparțin aceluiași\n"
+" spațiu de nume ca <pid>\n"
+
+#: src/pgrep.c:199
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option.\n"
+" Available namespaces: ipc, mnt, net, pid, user, "
+"uts\n"
+msgstr ""
+" --nslist <ns,...> listează spațiile de nume de utilizat pentru\n"
+" procesare cu opÈ›iunea „--nsâ€.\n"
+" Spații de nume disponibile: ipc, mnt, net, pid, "
+"user, uts\n"
+
+#: src/pgrep.c:224 src/pgrep.c:700 src/w.c:455
+msgid "Unable to create pid info structure"
+msgstr "Nu se poate crea structura de informații pid"
+
+#: src/pgrep.c:388
+#, c-format
+msgid "invalid user name: %s"
+msgstr "nume de utilizator nevalid: %s"
+
+#: src/pgrep.c:405
+#, c-format
+msgid "invalid group name: %s"
+msgstr "nume de grup nevalid: %s"
+
+#: src/pgrep.c:416
+#, c-format
+msgid "invalid process group: %s"
+msgstr "grup de procese nevalid: %s"
+
+#: src/pgrep.c:428
+#, c-format
+msgid "invalid session id: %s"
+msgstr "ID de sesiune nevalid: %s"
+
+#: src/pgrep.c:440
+#, c-format
+msgid "not a number: %s"
+msgstr "nu este un număr: %s"
+
+#: src/pgrep.c:490
+#, c-format
+msgid "not a hex string: %s"
+msgstr "nu este un șir hezacimal: %s"
+
+#: src/pgrep.c:525 src/skill.c:162
+msgid "Unable to read process namespace information"
+msgstr "Nu se pot citi informațiile despre spațiul de nume ale procesului"
+
+#: src/pgrep.c:612
+#, c-format
+msgid "regex error: %s"
+msgstr "eroare expresie regulată: %s"
+
+#: src/pgrep.c:695
+msgid "Error reading reference namespace information\n"
+msgstr "Eroare la citirea informațiilor despre spațiul de nume de referință\n"
+
+#: src/pgrep.c:809
+#, c-format
+msgid ""
+"pattern that searches for process name longer than 15 characters will result "
+"in zero matches\n"
+"Try `%s -f' option to match against the complete command line."
+msgstr ""
+"modelul care caută un nume de proces mai lung de 15 caractere va avea ca "
+"rezultat zero potriviri\n"
+"Încercați cu opțiunea «%s -f» pentru a se potrivi cu linia de comandă "
+"completă."
+
+#: src/pgrep.c:924
+#, c-format
+msgid "Unknown signal \"%s\"."
+msgstr "Semnal necunoscut „%sâ€."
+
+#: src/pgrep.c:1090
+#, c-format
+msgid ""
+"-L without -F makes no sense\n"
+"Try `%s --help' for more information."
+msgstr ""
+"„-L†fără „-F†nu are sens\n"
+"Încercați «%s --help» pentru mai multe informații."
+
+#: src/pgrep.c:1097
+#, c-format
+msgid ""
+"pidfile not valid\n"
+"Try `%s --help' for more information."
+msgstr ""
+"fișierul de PID nu este valid\n"
+"Încercați «%s --help» pentru mai multe informații."
+
+#: src/pgrep.c:1106
+#, c-format
+msgid ""
+"only one pattern can be provided\n"
+"Try `%s --help' for more information."
+msgstr ""
+"doar un model poate fi furnizat\n"
+"Încercați «%s --help» pentru mai multe informații."
+
+#: src/pgrep.c:1110
+#, c-format
+msgid ""
+"no matching criteria specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+"nu sunt specificate criterii de potrivire\n"
+"Încercați «%s --help» pentru mai multe informații."
+
+#: src/pgrep.c:1162
+#, c-format
+msgid "%s killed (pid %lu)\n"
+msgstr "%s omorât (pid %lu)\n"
+
+#: src/pgrep.c:1169
+#, c-format
+msgid "killing pid %ld failed"
+msgstr "omorârea pid-ului %ld a eșuat"
+
+#: src/pgrep.c:1181
+#, c-format
+msgid "waiting for %s (pid %lu)\n"
+msgstr "se așteaptă %s (pid %lu)\n"
+
+#: src/pgrep.c:1185
+msgid "pidfd_open() not implemented in Linux < 5.3"
+msgstr "funcția pidfd_open() nu este implementată în nucleui Linux < 5.3"
+
+#: src/pgrep.c:1188
+#, c-format
+msgid "opening pid %ld failed"
+msgstr "deschiderea pid-ului %ld a eșuat"
+
+#: src/pgrep.c:1202
+msgid "epoll_wait failed"
+msgstr "epoll_wait a eșuat"
+
+# R-GC, scrie:
+# acest mesaj și următoarele, pot să fie
+# vizualizate, rulînd comanda:
+# «pidof --help»
+#: src/pidof.c:75
+#, c-format
+msgid " %s [options] [program [...]]\n"
+msgstr " %s [opțiuni] [program [...]]\n"
+
+#: src/pidof.c:77
+msgid " -s, --single-shot return one PID only\n"
+msgstr " -s, --single-shot returnează doar un singur PID\n"
+
+#: src/pidof.c:78
+msgid " -c, --check-root omit processes with different root\n"
+msgstr " -c, --check-root omite procesele cu rădăcină diferită\n"
+
+#: src/pidof.c:79
+msgid " -q, quiet mode, only set the exit code\n"
+msgstr ""
+" -q, modul silențios, afișează doar codul de ieșire\n"
+
+#: src/pidof.c:80
+msgid " -w, --with-workers show kernel workers too\n"
+msgstr ""
+" -w, --with-workers afișează de asemenea, firele de lucru ale "
+"nucleului\n"
+
+#: src/pidof.c:81
+msgid " -x also find shells running the named scripts\n"
+msgstr ""
+" -x găsește, de asemenea, shell-uri care rulează "
+"scripturile numite\n"
+
+#: src/pidof.c:82
+msgid " -o, --omit-pid <PID,...> omit processes with PID\n"
+msgstr " -o, --omit-pid <PID,...> omite procesele cu PID\n"
+
+#: src/pidof.c:83
+msgid " -t, --lightweight list threads too\n"
+msgstr " -t, --lightweight listează de asemenea și firele procesului\n"
+
+#: src/pidof.c:84
+msgid " -S, --separator SEP use SEP as separator put between PIDs"
+msgstr " -S, --separator SEP utilizează SEP ca separator între PID-uri"
+
+#: src/pidof.c:293
+#, c-format
+msgid "illegal omit pid value (%s)!\n"
+msgstr "omite valoarea pid ilegală (%s)!\n"
+
+#: src/pmap.c:72
+msgid "Address"
+msgstr "Adresă"
+
+#: src/pmap.c:73
+msgid "Offset"
+msgstr "Poziție"
+
+#: src/pmap.c:74
+msgid "Device"
+msgstr "Dispozitiv"
+
+#: src/pmap.c:75
+msgid "Mapping"
+msgstr "Atribuire"
+
+#: src/pmap.c:79
+msgid "Perm"
+msgstr "Permisiuni"
+
+#: src/pmap.c:80
+msgid "Inode"
+msgstr "Nod-i"
+
+#: src/pmap.c:83
+msgid "Kbytes"
+msgstr "Kocteți"
+
+#: src/pmap.c:84
+msgid "Mode"
+msgstr "Mod"
+
+#. Translation Hint: With the next 5 fields, notice how an extra space
+#. has been added ahead of one 'KiB' so that they all
+#. align. You need not preserve such alignment.
+#. Translation Hint: maximum 'RSS' = 6
+#: src/pmap.c:85 src/top/top_nls.c:337
+msgid "RSS"
+msgstr "RSS"
+
+#: src/pmap.c:86
+msgid "Dirty"
+msgstr "Murdar"
+
+# R-GC, scrie:
+# acest mesaj și următoarele, pot să fie
+# vizualizate, rulînd comanda:
+# «pmap --help»
+#: src/pmap.c:120
+#, c-format
+msgid " %s [options] PID [PID ...]\n"
+msgstr " %s [opțiuni] PID [PID ...]\n"
+
+#: src/pmap.c:122
+msgid " -x, --extended show details\n"
+msgstr " -x, --extended afișează detaliile\n"
+
+#: src/pmap.c:123
+msgid " -X show even more details\n"
+msgstr " -X afișează și mai multe detalii\n"
+
+#: src/pmap.c:124
+msgid " WARNING: format changes according to /proc/PID/smaps\n"
+msgstr ""
+" AVERTISMENT: formatul se modifică în funcție de /proc/PID/smaps\n"
+
+#: src/pmap.c:125
+msgid " -XX show everything the kernel provides\n"
+msgstr ""
+" -XX afișează toate mesajele ce le oferă nucleul\n"
+
+#: src/pmap.c:126
+msgid " -c, --read-rc read the default rc\n"
+msgstr ""
+" -c, --read-rc citește configurarea din fișierul „rc†"
+"implicit\n"
+
+#: src/pmap.c:127
+msgid " -C, --read-rc-from=<file> read the rc from file\n"
+msgstr ""
+" -C, --read-rc-from=<fișier> citește configurarea din fișierul <fișier>\n"
+
+#: src/pmap.c:128
+msgid " -n, --create-rc create new default rc\n"
+msgstr ""
+" -n, --create-rc creează un nou fișier de configurare implicit "
+"„~/.pmaprcâ€\n"
+
+#: src/pmap.c:129
+msgid " -N, --create-rc-to=<file> create new rc to file\n"
+msgstr ""
+" -N, --create-rc-to=<fișier> creează un nou fișier de configurare în\n"
+" „calea-la/<fiÈ™ier>â€\n"
+
+#: src/pmap.c:130
+msgid " NOTE: pid arguments are not allowed with -n, -N\n"
+msgstr ""
+" NOTÄ‚: argumentele pid nu sunt permise cu opÈ›iunile „-nâ€, „-Nâ€\n"
+
+#: src/pmap.c:131
+msgid " -d, --device show the device format\n"
+msgstr " -d, --device afișează formatul dispozitivului\n"
+
+#: src/pmap.c:132
+msgid " -q, --quiet do not display header and footer\n"
+msgstr " -q, --quiet nu afișează antetul și notele de subsol\n"
+
+#: src/pmap.c:133
+msgid " -p, --show-path show path in the mapping\n"
+msgstr " -p, --show-path afișează calea în coloana de asociere\n"
+
+#: src/pmap.c:134
+msgid " -A, --range=<low>[,<high>] limit results to the given range\n"
+msgstr " -A, --range=<jos>[,<sus>] limitează rezultatele la intervalul dat\n"
+
+#: src/pmap.c:215
+msgid "shared memory detach"
+msgstr "detașare memorie partajată"
+
+#: src/pmap.c:220
+msgid "shared memory remove"
+msgstr "eliminare memorie partajată"
+
+#: src/pmap.c:245
+msgid " [ anon ]"
+msgstr " [ anon ]"
+
+#: src/pmap.c:248
+msgid " [ stack ]"
+msgstr " [ stivă ]"
+
+#: src/pmap.c:334 src/pmap.c:340
+msgid "Unknown format in smaps file!"
+msgstr "Format necunoscut în fișierul smaps!"
+
+#: src/pmap.c:365
+msgid "ERROR: memory allocation failed"
+msgstr "EROARE: alocarea memoriei a eșuat"
+
+#: src/pmap.c:382
+msgid "inconsistent detail field in smaps file, line:\n"
+msgstr "câmp de detaliu inconsecvent în fișierul smaps, linia:\n"
+
+#: src/pmap.c:731
+msgid "total kB"
+msgstr "total ko"
+
+#: src/pmap.c:742
+#, c-format
+msgid "mapped: %ldK writeable/private: %ldK shared: %ldK\n"
+msgstr "atribuit: %ldK inscriptibil/privat: %ldK partajat: %ldK\n"
+
+#. Translation Hint: keep total string length
+#. * as 24 characters. Adjust %16 if needed
+#: src/pmap.c:751
+#, c-format
+msgid " total %16ldK\n"
+msgstr " total %16ldK\n"
+
+#. Translation Hint: keep total string length
+#. * as 16 characters. Adjust %8 if needed
+#: src/pmap.c:757
+#, c-format
+msgid " total %8ldK\n"
+msgstr " total %8ldK\n"
+
+#: src/pmap.c:832
+#, c-format
+msgid "config line too long - line %d"
+msgstr "linia de configurare este prea lungă - linia %d"
+
+#: src/pmap.c:857
+#, c-format
+msgid "unsupported section found in the config - line %d"
+msgstr "secțiune neacceptată găsită în linia de configurare %d"
+
+#: src/pmap.c:860 src/pmap.c:871 src/pmap.c:882 src/pmap.c:905 src/pmap.c:917
+#, c-format
+msgid "syntax error found in the config - line %d"
+msgstr "eroare de sintaxă găsită în linia de configurare %d"
+
+#: src/pmap.c:887 src/pmap.c:1010
+msgid "memory allocation failed"
+msgstr "alocarea memoriei a eșuat"
+
+#: src/pmap.c:939
+msgid "the file already exists - delete or rename it first"
+msgstr "fișierul există deja - ștergeți-l sau redenumiți-l mai întâi"
+
+#: src/pmap.c:1002
+msgid "HOME variable undefined"
+msgstr "Variabila HOME nedefinită"
+
+#: src/pmap.c:1061
+msgid "option -r is ignored as SunOS compatibility"
+msgstr "opțiunea „-r†este ignorată pentru compatibilitate cu SunOS"
+
+#: src/pmap.c:1108
+msgid "options -c, -C, -d, -n, -N, -x, -X are mutually exclusive"
+msgstr "opÈ›iunile „-câ€, „-Câ€, „-dâ€, „-nâ€, „-Nâ€, „-xâ€, „-X†se exclud reciproc"
+
+#: src/pmap.c:1111
+msgid "options -p, -q are mutually exclusive with -n, -N"
+msgstr "opÈ›iunile „-pâ€, „-q†se exclud reciproc cu „-nâ€, „-Nâ€"
+
+#: src/pmap.c:1114 src/pmap.c:1163
+msgid "too many arguments"
+msgstr "prea multe argumente"
+
+#: src/pmap.c:1118
+msgid "rc file successfully created, feel free to edit the content"
+msgstr ""
+"fișierul de configurare „rc†a fost creat cu succes, nu ezitați să editați "
+"conținutul acestuia"
+
+#: src/pmap.c:1121
+msgid "couldn't create the rc file"
+msgstr "nu s-a putut crea fiÈ™ierul de configurare „rcâ€"
+
+#: src/pmap.c:1133
+#, c-format
+msgid "~/.%src file successfully created, feel free to edit the content"
+msgstr ""
+"Fișierul „~/.%src†a fost creat cu succes, nu ezitați să editați conținutul "
+"acestuia"
+
+#: src/pmap.c:1136
+#, c-format
+msgid "couldn't create ~/.%src"
+msgstr "nu s-a putut crea fiÈ™ierul „~/.%srcâ€"
+
+#: src/pmap.c:1141
+msgid "argument missing"
+msgstr "lipsește argumentul"
+
+#: src/pmap.c:1154
+msgid "couldn't read the rc file"
+msgstr "nu s-a putut citii fiÈ™ierul de configurare „rcâ€"
+
+#: src/pmap.c:1156
+#, c-format
+msgid "couldn't read ~/.%src"
+msgstr "nu s-a putut citii fiÈ™ierul „~/.%srcâ€"
+
+#: src/pmap.c:1165 src/pmap.c:1190
+msgid "library failed pids statistics"
+msgstr "biblioteca a eșuat în statisticile de pid"
+
+#: src/ps/display.c:61
+#, c-format
+msgid "Signal %d (%s) caught by %s (%s).\n"
+msgstr "Semnalul %d (%s) a fost captat de %s (%s).\n"
+
+#: src/ps/display.c:75 src/ps/display.c:252 src/ps/display.c:407
+#: src/ps/output.c:2359 src/ps/parser.c:509 src/ps/parser.c:756
+#: src/ps/select.c:95 src/ps/sortformat.c:263 src/ps/sortformat.c:301
+#: src/ps/sortformat.c:549
+msgid "please report this bug"
+msgstr "raportați acestă eroare"
+
+#: src/ps/display.c:315 src/ps/display.c:484
+#, c-format
+msgid "fatal library error, reap\n"
+msgstr "eroare fatală de bibliotecă, reap\n"
+
+#: src/ps/display.c:365
+#, c-format
+msgid "could not find ppid\n"
+msgstr "nu s-a putut găsi ppid\n"
+
+#: src/ps/display.c:375
+#, c-format
+msgid "could not find start_time\n"
+msgstr "nu s-a putut găsi start_time\n"
+
+#: src/ps/global.c:287
+#, c-format
+msgid "your %dx%d screen size is bogus. expect trouble\n"
+msgstr ""
+"dimensiunea ecranului dumneavoastră %dx%d este falsă. Așteptați-vă la "
+"probleme\n"
+
+#: src/ps/global.c:360 src/ps/global.c:372
+msgid "environment specified an unknown personality"
+msgstr "mediul a specificat o personalitate necunoscută"
+
+#: src/ps/global.c:364
+#, c-format
+msgid "cannot strdup() personality text\n"
+msgstr "textul de personalitate nu poate fi duplicat cu strdup()\n"
+
+#: src/ps/global.c:495
+#, c-format
+msgid "fatal library error, context\n"
+msgstr "eroare fatală de bibliotecă, context\n"
+
+#: src/ps/global.c:503
+#, c-format
+msgid "fatal library error, lookup self\n"
+msgstr "eroare fatală de bibliotecă, căutare a ei însăși\n"
+
+# R-GC, scrie:
+# ***
+# Lăsat neschimbat, pentru a nu altera
+# compotamentul/funcționarea lui «ps».
+# ***
+# Dacă se traduce, va apărea, așa:
+# „ps --ajutorâ€, cînd se rulează comanda:
+# «ps -h», dacă se încearcă rularea
+# comenzii: «ps --help», va apărea
+# un mesaj de eroare, spunînd că
+# opțiunea lungă este necunoscută.
+#. Translation Note:
+#. . The following translatable word will be used to recognize the
+#. . user's request for help text. In other words, the translation
+#. . you provide will alter program behavior.
+#. .
+#. . It must be limited to 15 characters or less.
+#.
+#: src/ps/global.c:542
+msgid "help"
+msgstr "help"
+
+#. Translation Notes for ps Help #1 ---------------------------------
+#. . This next group of lines represents 6 pairs of words + abbreviations
+#. . which are the basis of the 'ps' program help text.
+#. .
+#. . The words and abbreviations you provide will alter program behavior.
+#. . They will also appear in the help usage summary associated with the
+#. . "Notes for ps Help #2" below.
+#. .
+#. . In their English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . When translating these 6 pairs you may choose any appropriate
+#. . language equivalents and the only requirement is the abbreviated
+#. . representations must be unique.
+#. .
+#. . By default, those abbreviations are single characters. However,
+#. . they are not limited to only one character after translation.
+#. .
+#. Translation Hint, Pair #1
+#: src/ps/help.c:67
+msgid "simple"
+msgstr "simple(simplu)"
+
+# R-GC, scrie:
+# ***
+# Lăsat neschimbat, pentru a nu altera
+# compotamentul/funcționarea lui «ps».
+# ***
+#: src/ps/help.c:67
+msgid "s"
+msgstr "s"
+
+#. Translation Hint, Pair #2
+#: src/ps/help.c:69
+msgid "list"
+msgstr "list(listă)"
+
+# R-GC, scrie:
+# ***
+# Lăsat neschimbat, pentru a nu altera
+# compotamentul/funcționarea lui «ps».
+# ***
+#: src/ps/help.c:69
+msgid "l"
+msgstr "l"
+
+#. Translation Hint, Pair #3
+#: src/ps/help.c:71
+msgid "output"
+msgstr "output(ieșire)"
+
+# R-GC, scrie:
+# ***
+# Lăsat neschimbat, pentru a nu altera
+# compotamentul/funcționarea lui «ps».
+# ***
+#: src/ps/help.c:71
+msgid "o"
+msgstr "o"
+
+#. Translation Hint, Pair #4
+#: src/ps/help.c:73
+msgid "threads"
+msgstr "threads(fire)"
+
+# R-GC, scrie:
+# ***
+# Lăsat neschimbat, pentru a nu altera
+# compotamentul/funcționarea lui «ps».
+# ***
+#: src/ps/help.c:73
+msgid "t"
+msgstr "t"
+
+#. Translation Hint, Pair #5
+#: src/ps/help.c:75
+msgid "misc"
+msgstr "misc(diverse)"
+
+# R-GC, scrie:
+# ***
+# Lăsat neschimbat, pentru a nu altera
+# compotamentul/funcționarea lui «ps».
+# ***
+#: src/ps/help.c:75
+msgid "m"
+msgstr "m"
+
+#. Translation Hint, Pair #6
+#: src/ps/help.c:77
+msgid "all"
+msgstr "all(toate)"
+
+# R-GC, scrie:
+# ***
+# Lăsat neschimbat, pentru a nu altera
+# compotamentul/funcționarea lui «ps».
+# ***
+#: src/ps/help.c:77
+msgid "a"
+msgstr "a"
+
+# R-GC, scrie:
+# acest mesaj și următoarele, pot să fie
+# vizualizate, rulînd comanda:
+# «ps --help»
+#: src/ps/help.c:98
+#, c-format
+msgid ""
+"\n"
+"Usage:\n"
+" %s [options]\n"
+msgstr ""
+"\n"
+"Utilizare:\n"
+" %s [opțiuni]\n"
+
+#: src/ps/help.c:103
+msgid ""
+"\n"
+"Basic options:\n"
+msgstr ""
+"\n"
+"Opțiuni de bază:\n"
+
+#: src/ps/help.c:104
+msgid " -A, -e all processes\n"
+msgstr " -A, -e toate procesele\n"
+
+#: src/ps/help.c:105
+msgid " -a all with tty, except session leaders\n"
+msgstr ""
+" -a toate procesele cu un tty, cu excepția liderilor de "
+"sesiune\n"
+
+#: src/ps/help.c:106
+msgid " a all with tty, including other users\n"
+msgstr ""
+" a toate procesele cu un tty, inclusiv ale altor "
+"utilizatori\n"
+
+#: src/ps/help.c:107
+msgid " -d all except session leaders\n"
+msgstr ""
+" -d toate procesele, cu excepția liderilor de sesiune\n"
+
+#: src/ps/help.c:108
+msgid " -N, --deselect negate selection\n"
+msgstr " -N, --deselect inversează selecția\n"
+
+#: src/ps/help.c:109
+msgid " r only running processes\n"
+msgstr " r doar procesele care rulează\n"
+
+#: src/ps/help.c:110
+msgid " T all processes on this terminal\n"
+msgstr " T toate procesele din acest terminal\n"
+
+#: src/ps/help.c:111
+msgid " x processes without controlling ttys\n"
+msgstr " x procese fără control al terminalelor\n"
+
+#: src/ps/help.c:114
+msgid ""
+"\n"
+"Selection by list:\n"
+msgstr ""
+"\n"
+"Selectare după listă:\n"
+
+#: src/ps/help.c:115
+msgid " -C <command> command name\n"
+msgstr " -C <comanda> numele comenzii\n"
+
+#: src/ps/help.c:116
+msgid " -G, --Group <GID> real group id or name\n"
+msgstr " -G, --Group <GID> ID-ul sau numele real al grupului\n"
+
+#: src/ps/help.c:117
+msgid " -g, --group <group> session or effective group name\n"
+msgstr " -g, --group <grup> sesiune sau numele efectiv al grupului\n"
+
+#: src/ps/help.c:118
+msgid " -p, p, --pid <PID> process id\n"
+msgstr " -p, p, --pid <PID> ID proces\n"
+
+#: src/ps/help.c:119
+msgid " --ppid <PID> parent process id\n"
+msgstr " --ppid <PID> ID-ul procesului părinte\n"
+
+#: src/ps/help.c:120
+msgid ""
+" -q, q, --quick-pid <PID>\n"
+" process id (quick mode)\n"
+msgstr ""
+" -q, q, --quick-pid <PID>\n"
+" ID-ul procesului (modul rapid)\n"
+
+#: src/ps/help.c:122
+msgid " -s, --sid <session> session id\n"
+msgstr " -s, --sid <session> ID-ul sesiunii\n"
+
+#: src/ps/help.c:123
+msgid " -t, t, --tty <tty> terminal\n"
+msgstr " -t, t, --tty <tty> terminal\n"
+
+#: src/ps/help.c:124
+msgid " -u, U, --user <UID> effective user id or name\n"
+msgstr " -u, U, --user <UID> ID sau nume de utilizator efectiv\n"
+
+#: src/ps/help.c:125
+msgid " -U, --User <UID> real user id or name\n"
+msgstr " -U, --User <UID> ID sau nume de utilizator real\n"
+
+#: src/ps/help.c:126
+msgid ""
+"\n"
+" The selection options take as their argument either:\n"
+" a comma-separated list e.g. '-u root,nobody' or\n"
+" a blank-separated list e.g. '-p 123 4567'\n"
+msgstr ""
+"\n"
+" Opțiunile de selecție iau drept argument fie:\n"
+" o listă separată prin virgulă de exp. „-u root,nobody†sau\n"
+" o listă separată prin spaÈ›ii de exp. „-p 123 4567â€\n"
+
+#: src/ps/help.c:132
+msgid ""
+"\n"
+"Output formats:\n"
+msgstr ""
+"\n"
+"Formate de ieșire:\n"
+
+#: src/ps/help.c:133
+msgid " -D <format> date format for lstart\n"
+msgstr " -D <format> format de dată pentru lstart\n"
+
+#: src/ps/help.c:134
+msgid " -F extra full\n"
+msgstr " -F format-complet cu elemente extra\n"
+
+#: src/ps/help.c:135
+msgid " -f full-format, including command lines\n"
+msgstr " -f format-complet, inclusiv linii de comandă\n"
+
+#: src/ps/help.c:136
+msgid " f, --forest ascii art process tree\n"
+msgstr " f, --forest arborele procesului în caractere ASCII\n"
+
+#: src/ps/help.c:137
+msgid " -H show process hierarchy\n"
+msgstr " -H arată ierarhia procesului\n"
+
+#: src/ps/help.c:138
+msgid " -j jobs format\n"
+msgstr " -j format de sarcini(lucrări)\n"
+
+#: src/ps/help.c:139
+msgid " j BSD job control format\n"
+msgstr " j format de control al sarcinilor BSD\n"
+
+#: src/ps/help.c:140
+msgid " -l long format\n"
+msgstr " -l format lung\n"
+
+#: src/ps/help.c:141
+msgid " l BSD long format\n"
+msgstr " l format lung în stil BSD\n"
+
+#: src/ps/help.c:142
+msgid " -M, Z add security data (for SELinux)\n"
+msgstr " -M, Z adaugă date de securitate (pentru SELinux)\n"
+
+#: src/ps/help.c:143
+msgid " -O <format> preloaded with default columns\n"
+msgstr " -O <format> preîncărcat cu coloane implicite\n"
+
+#: src/ps/help.c:144
+msgid " O <format> as -O, with BSD personality\n"
+msgstr " O <format> precum „-Oâ€, cu personalitate BSD\n"
+
+#: src/ps/help.c:145
+msgid ""
+" -o, o, --format <format>\n"
+" user-defined format\n"
+msgstr ""
+" -o, o, --format <format>\n"
+" format definit de utilizator\n"
+
+#: src/ps/help.c:147
+msgid " -P add psr column\n"
+msgstr " -P adaugă coloana psr\n"
+
+#: src/ps/help.c:148
+msgid " s signal format\n"
+msgstr " s format de semnal\n"
+
+#: src/ps/help.c:149
+msgid " u user-oriented format\n"
+msgstr " u format orientat către utilizator\n"
+
+#: src/ps/help.c:150
+msgid " v virtual memory format\n"
+msgstr " v format de memorie virtuală\n"
+
+#: src/ps/help.c:151
+msgid " X register format\n"
+msgstr " X format înregistrare de jurnal\n"
+
+#: src/ps/help.c:152
+msgid ""
+" -y do not show flags, show rss vs. addr (used with -l)\n"
+msgstr ""
+" -y nu afiÈ™ează fanioane, afiÈ™ează „rss†vs. „adresăâ€\n"
+" (utilizată doar cu opÈ›iunea cu „-lâ€)\n"
+
+#: src/ps/help.c:153
+msgid " --context display security context (for SELinux)\n"
+msgstr ""
+" --context afișează contextul de securitate (pentru SELinux)\n"
+
+#: src/ps/help.c:154
+msgid " --headers repeat header lines, one per page\n"
+msgstr " --headers repetă liniile de antet, câte una pe pagină\n"
+
+#: src/ps/help.c:155
+msgid " --no-headers do not print header at all\n"
+msgstr " --no-headers nu afișează deloc antetele\n"
+
+#: src/ps/help.c:156
+msgid ""
+" --cols, --columns, --width <num>\n"
+" set screen width\n"
+msgstr ""
+" --cols, --columns, --width <num>\n"
+" stabilesc lățimea ecranului\n"
+
+#: src/ps/help.c:158
+msgid ""
+" --rows, --lines <num>\n"
+" set screen height\n"
+msgstr ""
+" --rows, --lines <num>\n"
+" stabilesc înălțimea ecranului\n"
+
+#: src/ps/help.c:160
+msgid " --signames display signal masks using signal names\n"
+msgstr ""
+" --signames afișează măștile semnalelor folosind numele "
+"semnalelor\n"
+
+#: src/ps/help.c:163
+msgid ""
+"\n"
+"Show threads:\n"
+msgstr ""
+"\n"
+"Afișează firele de execuție:\n"
+
+#: src/ps/help.c:164
+msgid " H as if they were processes\n"
+msgstr " H ca și când ar fi procese\n"
+
+#: src/ps/help.c:165
+msgid " -L possibly with LWP and NLWP columns\n"
+msgstr " -L eventual cu coloane LWP și NLWP\n"
+
+#: src/ps/help.c:166
+msgid " -m, m after processes\n"
+msgstr " -m, m sunt afișate, după procese\n"
+
+#: src/ps/help.c:167
+msgid " -T possibly with SPID column\n"
+msgstr " -T eventual cu coloană SPID\n"
+
+#: src/ps/help.c:170
+msgid ""
+"\n"
+"Miscellaneous options:\n"
+msgstr ""
+"\n"
+"Opțiuni diverse:\n"
+
+#: src/ps/help.c:171
+msgid " -c show scheduling class with -l option\n"
+msgstr " -c afiÈ™ează clasa de programare cu opÈ›iunea „-lâ€\n"
+
+#: src/ps/help.c:172
+msgid " c show true command name\n"
+msgstr " c afișează numele adevărat al comenzii\n"
+
+#: src/ps/help.c:173
+msgid " e show the environment after command\n"
+msgstr " e afișează mediul după comandă\n"
+
+#: src/ps/help.c:174
+msgid ""
+" k, --sort specify sort order as: [+|-]key[,[+|-]key[,...]]\n"
+msgstr ""
+" k, --sort specificați ordinea de sortare după cum urmează:\n"
+" [+|-]cheie[,[+|-]cheie[,...]]\n"
+
+#: src/ps/help.c:175
+msgid " L show format specifiers\n"
+msgstr " L afișează specificatorii de format\n"
+
+#: src/ps/help.c:176
+msgid " n display numeric uid and wchan\n"
+msgstr " n afișează uid și wchan numeric\n"
+
+#: src/ps/help.c:177
+msgid " S, --cumulative include some dead child process data\n"
+msgstr ""
+" S, --cumulative include unele date asupra proceselor-copii moarte\n"
+
+#: src/ps/help.c:178
+msgid " -y do not show flags, show rss (only with -l)\n"
+msgstr ""
+" -y nu afișează fanioane, afișează „rss†(utilizată\n"
+" doar cu opÈ›iunea „-lâ€)\n"
+
+#: src/ps/help.c:179
+msgid " -V, V, --version display version information and exit\n"
+msgstr " -V, V, --version afișează informații despre versiune și iese\n"
+
+#: src/ps/help.c:180
+msgid " -w, w unlimited output width\n"
+msgstr " -w, w lățime de ieșire nelimitată\n"
+
+#: src/ps/help.c:181
+#, c-format
+msgid ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" display help and exit\n"
+msgstr ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" afișează acest mesaj de ajutor și iese\n"
+
+#. Translation Notes for ps Help #2 ---------------------------------
+#. . Most of the following c-format string is derived from the 6
+#. . pairs of words + chars mentioned above in "Notes for ps Help #1".
+#. .
+#. . In its full English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . The word for "help" will be translated elsewhere. Thus, the only
+#. . translations below will be: "Try", "or" and "for additional...".
+#. .
+#: src/ps/help.c:202
+#, c-format
+msgid ""
+"\n"
+" Try '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" or '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" for additional help text.\n"
+msgstr ""
+"\n"
+" Încercați «%s --%s <%s|%s|%s|%s|%s|%s>»\n"
+" sau «%s --%s <%s|%s|%s|%s|%s|%s>»\n"
+" pentru un mesaj de ajutor mai amplu.\n"
+
+#: src/ps/help.c:215
+#, c-format
+msgid ""
+"\n"
+"For more details see ps(1).\n"
+msgstr ""
+"\n"
+"Pentru mai multe detalii consultați ps(1).\n"
+
+#: src/ps/output.c:104
+msgid "Unable to get system boot time"
+msgstr "Nu s-a putut obține ora de pornire a sistemului"
+
+#: src/ps/output.c:119
+msgid "Unable to get total memory"
+msgstr "Nu s-a putut obține memoria totală"
+
+#: src/ps/output.c:2206
+#, c-format
+msgid "fix bigness error\n"
+msgstr "remediați eroarea de mărime\n"
+
+#: src/ps/output.c:2289
+#, c-format
+msgid "bad alignment code\n"
+msgstr "cod de aliniere defectuos\n"
+
+#: src/ps/parser.c:63
+msgid "the option is exclusive: "
+msgstr "opțiunea este exclusivă: "
+
+#: src/ps/parser.c:93
+msgid "process ID list syntax error"
+msgstr "eroare de sintaxă a listei de ID-uri de proces"
+
+#: src/ps/parser.c:94 src/ps/parser.c:95
+msgid "process ID out of range"
+msgstr "ID-ul procesului în afara intervalului"
+
+#: src/ps/parser.c:108
+msgid "user name does not exist"
+msgstr "numele de utilizator nu există"
+
+#: src/ps/parser.c:114
+msgid "user ID out of range"
+msgstr "ID-ul utilizatorului în afara intervalului"
+
+#: src/ps/parser.c:127
+msgid "group name does not exist"
+msgstr "numele grupului nu există"
+
+#: src/ps/parser.c:133
+msgid "group ID out of range"
+msgstr "ID-ul grupului în afara intervalului"
+
+#: src/ps/parser.c:149 src/ps/parser.c:173
+msgid "TTY could not be found"
+msgstr "TTY (terminalul) nu a putut fi găsit"
+
+#: src/ps/parser.c:175
+msgid "list member was not a TTY"
+msgstr "elementul din listă nu era un TTY"
+
+#: src/ps/parser.c:200
+msgid "improper list"
+msgstr "listă necorespunzătoare"
+
+#: src/ps/parser.c:249
+msgid "list of command names must follow -C"
+msgstr ""
+"o listă de nume de comenzi trebuie să urmeze după opÈ›iunea „-Câ€, ca argument "
+"al acesteia"
+
+#: src/ps/parser.c:257
+msgid "date format must follow -D"
+msgstr "formatul de dată trebuie să urmeze după „-Dâ€"
+
+#: src/ps/parser.c:270
+msgid "list of real groups must follow -G"
+msgstr "opÈ›iunea „-Gâ€, trebuie să fie urmată de lista de grupuri reale"
+
+#: src/ps/parser.c:283
+msgid "list of jobs must follow -J"
+msgstr "opÈ›iunea „-Jâ€, trebuie să fie urmată de lista de sarcini"
+
+#: src/ps/parser.c:311
+msgid "format or sort specification must follow -O"
+msgstr ""
+"opÈ›iunea „-Oâ€, trebuie să fie urmată de specificaÈ›ia de format sau sortare"
+
+#: src/ps/parser.c:322
+msgid "list of PRM groups must follow -R"
+msgstr "opÈ›iunea „-Râ€, trebuie să fie urmată de lista grupurilor PRM"
+
+#: src/ps/parser.c:341
+msgid "list of real users must follow -U"
+msgstr "opÈ›iunea „-Uâ€, trebuie să fie urmată de lista de utilizatori reali"
+
+#: src/ps/parser.c:382
+msgid "list of session leaders OR effective group names must follow -g"
+msgstr ""
+"opÈ›iunea „-gâ€, trebuie să fie urmată de lista de lideri de sesiune SAU lista "
+"numelor efective de grup"
+
+#: src/ps/parser.c:393
+msgid "list of session leaders OR effective group IDs was invalid"
+msgstr ""
+"lista de lideri de sesiune SAU lista de ID-uri efective de grup a fost "
+"nevalidă"
+
+#: src/ps/parser.c:417
+msgid "format specification must follow -o"
+msgstr "opÈ›iunea „-oâ€, trebuie să fie urmată de specificaÈ›ia de format"
+
+#: src/ps/parser.c:423
+msgid "list of process IDs must follow -p"
+msgstr "opÈ›iunea „-pâ€, trebuie să fie urmată de lista de ID-uri de proces"
+
+#: src/ps/parser.c:440
+msgid "the -r option is reserved"
+msgstr "opțiunea „-r†este rezervată"
+
+#: src/ps/parser.c:446
+msgid "list of session IDs must follow -s"
+msgstr "opÈ›iunea „-sâ€, trebuie să fie urmată de lista de ID-uri de sesiune"
+
+#: src/ps/parser.c:454
+msgid "list of terminals (pty, tty...) must follow -t"
+msgstr ""
+"opÈ›iunea „-tâ€, trebuie să fie urmată de lista de terminale (pty, tty...)"
+
+#: src/ps/parser.c:462
+msgid "list of users must follow -u"
+msgstr "opÈ›iunea „-uâ€, trebuie să fie urmată de lista de utilizatori"
+
+#: src/ps/parser.c:484
+msgid "must set personality to get -x option"
+msgstr "personalitatea trebuie să fie definită pentru a accesa opÈ›iunea „-xâ€"
+
+#: src/ps/parser.c:499
+msgid "list of zones (contexts, labels, whatever?) must follow -z"
+msgstr ""
+"opÈ›iunea „-zâ€, trebuie să fie urmată de lista de zone (contexte, etichete, "
+"altceva?)"
+
+#: src/ps/parser.c:506
+msgid "embedded '-' among SysV options makes no sense"
+msgstr "„-†încorporat printre opțiunile SysV nu are sens"
+
+#: src/ps/parser.c:512
+msgid "unsupported SysV option"
+msgstr "opțiune SysV neacceptată"
+
+#: src/ps/parser.c:525
+msgid "cannot happen - problem #1"
+msgstr "nu se poate întâmpla - problema nr. 1"
+
+#: src/ps/parser.c:529
+msgid "cannot happen - problem #2"
+msgstr "nu se poate întâmpla - problema nr. 2"
+
+#: src/ps/parser.c:531
+msgid "second chance parse failed, not BSD or SysV"
+msgstr "a doua încercare de analizare a eșuat, nu BSD sau SysV"
+
+#: src/ps/parser.c:548
+msgid "option A is reserved"
+msgstr "opțiunea „A†este rezervată"
+
+#: src/ps/parser.c:553
+msgid "option C is reserved"
+msgstr "opțiunea „C†este rezervată"
+
+#: src/ps/parser.c:573
+msgid "format or sort specification must follow O"
+msgstr ""
+"opÈ›iunea „Oâ€, trebuie să fie urmată de specificaÈ›ia de format sau sortare"
+
+#: src/ps/parser.c:598
+msgid "list of users must follow U"
+msgstr "opÈ›iunea „Uâ€, trebuie să fie urmată de lista de utilizatori"
+
+#: src/ps/parser.c:610
+msgid "obsolete W option not supported (you have a /dev/drum?)"
+msgstr ""
+"opÈ›iunea învechită „Wâ€, nu este acceptată (aveÈ›i un dispozitiv „/dev/drumâ€?)"
+
+#: src/ps/parser.c:646 src/ps/parser.c:921 src/ps/parser.c:930
+msgid "only one heading option may be specified"
+msgstr "poate fi specificată doar o singură opțiune de antet"
+
+#: src/ps/parser.c:661
+msgid "long sort specification must follow 'k'"
+msgstr "opÈ›iunea „kâ€, trebuie să fie urmată de specificaÈ›ia de sortare lungă"
+
+#: src/ps/parser.c:689
+msgid "format specification must follow o"
+msgstr "opÈ›iunea „oâ€, trebuie să fie urmată de specificaÈ›ia de format"
+
+#: src/ps/parser.c:695
+msgid "list of process IDs must follow p"
+msgstr "opÈ›iunea „pâ€, trebuie să fie urmată de lista de ID-uri de proces"
+
+#: src/ps/parser.c:753
+msgid "embedded '-' among BSD options makes no sense"
+msgstr "„-†încorporat printre opțiunile BSD nu are sens"
+
+#: src/ps/parser.c:759
+msgid "unsupported option (BSD syntax)"
+msgstr "opțiune neacceptată (sintaxă BSD)"
+
+#: src/ps/parser.c:847 src/ps/parser.c:859
+msgid "unknown gnu long option"
+msgstr "opțiune lungă gnu necunoscută"
+
+#: src/ps/parser.c:867
+msgid "list of real groups must follow --Group"
+msgstr "opÈ›iunea „--Groupâ€, trebuie să fie urmată de lista de grupuri reale"
+
+#: src/ps/parser.c:875
+msgid "list of real users must follow --User"
+msgstr ""
+"opÈ›iunea „--Userâ€, trebuie să fie urmată de lista de utilizatorilor reali"
+
+#: src/ps/parser.c:894
+msgid "number of columns must follow --cols, --width, or --columns"
+msgstr ""
+"opÈ›iunile „--colsâ€, „--widthâ€, sau „--columnsâ€, trebuie să fie urmate de "
+"numărul de coloane"
+
+#: src/ps/parser.c:897
+msgid "option --cumulative does not take an argument"
+msgstr "opțiunea „--cumulative†nu acceptă un argument"
+
+#: src/ps/parser.c:902
+msgid "date format must follow --date-format"
+msgstr "opÈ›iunea „--date-formatâ€, trebuie să fie urmată de formatul de dată"
+
+#: src/ps/parser.c:908
+msgid "option --deselect does not take an argument"
+msgstr "opțiunea „--deselect†nu acceptă un argument"
+
+#: src/ps/parser.c:920
+msgid "option --no-heading does not take an argument"
+msgstr "opțiunea „--no-heading†nu acceptă un argument"
+
+#: src/ps/parser.c:929
+msgid "option --heading does not take an argument"
+msgstr "opțiunea „--heading†nu acceptă un argument"
+
+#: src/ps/parser.c:935
+msgid "option --forest does not take an argument"
+msgstr "opțiunea „--forest†nu acceptă un argument"
+
+#: src/ps/parser.c:941
+msgid "format specification must follow --format"
+msgstr "opÈ›iunea „--formatâ€, trebuie să fie urmată de specificaÈ›ia de format"
+
+#: src/ps/parser.c:947
+msgid "list of effective groups must follow --group"
+msgstr "opÈ›iunea „--groupâ€, trebuie să fie urmată de lista de grupuri efective"
+
+#: src/ps/parser.c:965
+msgid "list of process IDs must follow --pid"
+msgstr "opÈ›iunea „--pidâ€, trebuie să fie urmată de lista de ID-uri de proces"
+
+#: src/ps/parser.c:981
+msgid "list of process IDs must follow --ppid"
+msgstr ""
+"opÈ›iunea „--ppidâ€, trebuie să fie urmată de lista de ID-uri de proces "
+"(părinte)"
+
+#: src/ps/parser.c:999
+msgid "number of rows must follow --rows or --lines"
+msgstr ""
+"opÈ›iunile „--rows†sau „--linesâ€, trebuie să fie urmate de numărul de linii"
+
+#: src/ps/parser.c:1003
+msgid "some sid thing(s) must follow --sid"
+msgstr ""
+"opÈ›iunea „--sidâ€, trebuie să fie urmată de ceva legat de sid (id-ul sesiunii)"
+
+#: src/ps/parser.c:1015
+msgid "long sort specification must follow --sort"
+msgstr ""
+"opÈ›iunea „--sortâ€, trebuie să fie urmată de specificaÈ›ia de sortare lungă"
+
+#: src/ps/parser.c:1021
+msgid "list of ttys must follow --tty"
+msgstr ""
+"opÈ›iunea „--ttyâ€, trebuie să fie urmată de lista de terminale (pty, tty...)"
+
+#: src/ps/parser.c:1029
+msgid "list of effective users must follow --user"
+msgstr ""
+"opÈ›iunea „--userâ€, trebuie să fie urmată de lista de utilizatori efectivi"
+
+#: src/ps/parser.c:1145
+msgid "way bad"
+msgstr "foarte rău"
+
+#: src/ps/parser.c:1159
+msgid "garbage option"
+msgstr "opțiune deșeu"
+
+#: src/ps/parser.c:1163
+msgid "something broke"
+msgstr "ceva s-a rupt"
+
+#: src/ps/parser.c:1183
+msgid "thread display conflicts with forest display"
+msgstr ""
+"afișarea firelor de execuție (o ramură a arborelui de procese) intră în "
+"conflict cu afișarea arborelui de proces(e)"
+
+#: src/ps/parser.c:1188
+msgid "thread flags conflict; can't use H with m or -m"
+msgstr ""
+"conflict ale opțiunilor firelor de execuție; nu se poate utiliza opțiunea "
+"„H†cu opÈ›iunea „m†sau cu opÈ›iunea „-mâ€"
+
+#: src/ps/parser.c:1190
+msgid "thread flags conflict; can't use both m and -m"
+msgstr ""
+"conflict ale opțiunilor firelor de execuție; nu se poate utiliza atât "
+"opÈ›iunea „m†cât È™i opÈ›iunea „-mâ€"
+
+#: src/ps/parser.c:1192
+msgid "thread flags conflict; can't use both -L and -T"
+msgstr ""
+"conflict ale opțiunilor firelor de execuție; nu se poate utiliza atât "
+"opÈ›iunea „-L†cât È™i opÈ›iunea „-Tâ€"
+
+#: src/ps/parser.c:1265 src/ps/parser.c:1266
+#, c-format
+msgid "error: %s\n"
+msgstr "eroare: %s.\n"
+
+#: src/ps/select.c:71
+msgid "process selection options conflict"
+msgstr "conflict între opțiunile de selecție a(le) procesului(elor)"
+
+#: src/ps/sortformat.c:110 src/ps/sortformat.c:115
+msgid "seriously crashing: goodbye cruel world"
+msgstr "accident grav: adio, lume crudă 😈"
+
+#: src/ps/sortformat.c:150 src/ps/sortformat.c:169
+msgid "missing AIX field descriptor"
+msgstr "lipsește descriptorul de câmp AIX"
+
+#: src/ps/sortformat.c:152
+msgid "improper AIX field descriptor"
+msgstr "descriptor de câmp AIX necorespunzător"
+
+#: src/ps/sortformat.c:174
+msgid "unknown AIX field descriptor"
+msgstr "descriptor de câmp AIX necunoscut"
+
+#: src/ps/sortformat.c:179
+msgid "AIX field descriptor processing bug"
+msgstr "eroare la procesarea descriptorului de câmp AIX"
+
+#: src/ps/sortformat.c:287
+#, c-format
+msgid "unknown user-defined format specifier \"%s\""
+msgstr "specificator de format definit de utilizator, necunoscut „%sâ€"
+
+#: src/ps/sortformat.c:314
+msgid "empty format list"
+msgstr "lista de format este goală"
+
+#: src/ps/sortformat.c:315
+msgid "improper format list"
+msgstr "lista de format este necorespunzătoare"
+
+#: src/ps/sortformat.c:316
+msgid "column widths must be unsigned decimal numbers"
+msgstr "lățimile coloanelor trebuie să fie numere zecimale fără semn"
+
+# R-GC, scrie:
+# după revizuirea fișierului, DȘ spune:
+# msgstr ""
+# "nu se poate definii lățimea pentru un specificator de format macro (cu mai "
+# "multe coloane)"
+# → aici cred că „definii†ar trebui să aibă doar un singur „i†la coadă.
+# ***
+# Ok, corecție aplicată!
+#: src/ps/sortformat.c:317
+msgid "can not set width for a macro (multi-column) format specifier"
+msgstr ""
+"nu se poate defini lățimea pentru un specificator de format macro (cu mai "
+"multe coloane)"
+
+#: src/ps/sortformat.c:371 src/ps/sortformat.c:387
+msgid "improper sort list"
+msgstr "listă de sortare necorespunzătoare"
+
+#: src/ps/sortformat.c:382
+msgid "empty sort list"
+msgstr "listă de sortare goală"
+
+#: src/ps/sortformat.c:403 src/ps/sortformat.c:482 src/ps/sortformat.c:484
+msgid "unknown sort specifier"
+msgstr "specificator de sortare necunoscut"
+
+#: src/ps/sortformat.c:430 src/ps/sortformat.c:435 src/ps/sortformat.c:442
+#: src/ps/sortformat.c:448
+msgid "bad sorting code"
+msgstr "cod de sortare incorect"
+
+#: src/ps/sortformat.c:445
+msgid "PPID sort and forest output conflict"
+msgstr "conflict între afișarea arborelui de procese și afișarea sortării PPID"
+
+#: src/ps/sortformat.c:519
+msgid "option -O can not follow other format options"
+msgstr "opțiunea „-O†nu poate fi urmată de alte opțiuni de format"
+
+#: src/ps/sortformat.c:526 src/ps/sortformat.c:544
+msgid "multiple sort options"
+msgstr "multiple opțiuni de sortare"
+
+#: src/ps/sortformat.c:534
+msgid "option O is neither first format nor sort order"
+msgstr "opțiunea „O†nu este nici primul format, nici ordinea de sortare"
+
+#: src/ps/sortformat.c:661
+msgid "modifier -y without format -l makes no sense"
+msgstr ""
+"opÈ›iunea modificatoare „-yâ€, fără opÈ›iunea de format „-lâ€, nu are niciun sens"
+
+#: src/ps/sortformat.c:760
+msgid "bug: must reset the list first"
+msgstr "eroare: trebuie mai întâi să redefiniți lista"
+
+#: src/ps/sortformat.c:797
+msgid "tell <procps@freelists.org> what you expected"
+msgstr "spuneți la <procps@freelists.org>, la ce vă așteptați"
+
+#: src/ps/sortformat.c:807
+msgid ""
+"tell <procps@freelists.org> what you want (-L/-T, -m/m/H, and $PS_FORMAT)"
+msgstr ""
+"spuneți la <procps@freelists.org>, la ce vă așteptați (-L/-T, -m/m/H, și "
+"$PS_FORMAT)"
+
+#: src/ps/sortformat.c:824
+#, c-format
+msgid "warning: $PS_FORMAT ignored. (%s)\n"
+msgstr "avertisment: $PS_FORMAT ignorat. (%s)\n"
+
+#: src/ps/sortformat.c:829 src/ps/sortformat.c:839
+msgid "conflicting format options"
+msgstr "opțiuni de format în conflict"
+
+#: src/ps/sortformat.c:830
+msgid "can not use output modifiers with user-defined output"
+msgstr ""
+"nu se pot folosi modificatori de ieșire, cu ieșire definită de utilizator"
+
+#: src/ps/sortformat.c:831
+msgid "-L/-T with H/m/-m and -o/-O/o/O is nonsense"
+msgstr "-L/-T cu H/m/-m și -o/-O/o/O este un nonsens"
+
+#: src/ps/sortformat.c:889
+msgid "internal error: no PID or PPID for -j option"
+msgstr "eroare internă: fără PID sau PPID pentru opÈ›iunea „-jâ€"
+
+#: src/ps/sortformat.c:891
+msgid "lost my PGID"
+msgstr "ps: mi-am pierdut PGID-ul"
+
+#: src/ps/sortformat.c:904
+msgid "internal error: no PRI for -c option"
+msgstr "eroare internă: fără PRI pentru opÈ›iunea „-câ€"
+
+#: src/ps/sortformat.c:907
+msgid "lost my CLS"
+msgstr "ps: mi-am pierdut CLS-ul"
+
+#: src/ps/sortformat.c:912
+msgid "-T with H/-m/m but no PID for SPID to follow"
+msgstr "-T cu H/-m/m, dar fără PID pentru utilizarea cu SPID"
+
+#: src/ps/sortformat.c:923
+msgid "-L with H/-m/m but no PID/PGID/SID/SESS for NLWP to follow"
+msgstr "-L cu H/-m/m, dar fără PID/PGID/SID/SESS pentru utilizare cu NLWP"
+
+# R-GC, scrie:
+# acest mesaj și următoarele, pot să fie
+# vizualizate, rulînd comanda:
+# «pwdx --help»
+#: src/pwdx.c:41
+#, c-format
+msgid " %s [options] pid...\n"
+msgstr " %s [opțiuni] pid...\n"
+
+#: src/pwdx.c:117
+#, c-format
+msgid "invalid process id: %s"
+msgstr "ID de proces nevalid: %s"
+
+#: src/skill.c:285
+msgid "Unable to create pid Pids_info structure"
+msgstr "Nu s-a putut crea structura pid Pids_info"
+
+#: src/skill.c:288 src/w.c:458
+msgid "Unable to load process information"
+msgstr "Nu s-au putut încărca informațiile de proces"
+
+#: src/skill.c:319
+#, c-format
+msgid " %s [signal] [options] <expression>\n"
+msgstr " %s [semnal] [opțiuni] <expresie>\n"
+
+#: src/skill.c:323
+#, c-format
+msgid " %s [new priority] [options] <expression>\n"
+msgstr " %s [prioritate nouă] [opțiuni] <expresie>\n"
+
+#: src/skill.c:327
+msgid " -f, --fast fast mode (not implemented)\n"
+msgstr " -f, --fast modul rapid (nu este implementat)\n"
+
+#: src/skill.c:328
+msgid " -i, --interactive interactive\n"
+msgstr " -i, --interactive interactiv\n"
+
+#: src/skill.c:329
+msgid " -l, --list list all signal names\n"
+msgstr " -l, --list listează toate numele semnalelor\n"
+
+#: src/skill.c:330
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr " -L, --table listează toate numele semnalelor într-un tabel\n"
+
+#: src/skill.c:331
+msgid ""
+" -n, --no-action do not actually kill processes; just print what would "
+"happen\n"
+msgstr ""
+" -n, --no-action nu omoară procesele actuale, de fapt; afișează doar ceea "
+"ce s-ar întâmpla\n"
+
+#: src/skill.c:332
+msgid " -v, --verbose explain what is being done\n"
+msgstr " -v, --verbose explică ce se face în fiecare moment\n"
+
+#: src/skill.c:333
+msgid " -w, --warnings enable warnings (not implemented)\n"
+msgstr " -w, --warnings activează avertismentele (nu este implementată)\n"
+
+#: src/skill.c:335
+msgid ""
+"Expression can be: terminal, user, pid, command.\n"
+"The options below may be used to ensure correct interpretation.\n"
+msgstr ""
+"Expresia poate fi: „terminalâ€, „userâ€, „pidâ€, „commandâ€.\n"
+"Opțiunile de mai jos pot fi utilizate pentru a asigura o interpretare "
+"corectă.\n"
+
+#: src/skill.c:337
+msgid " -c, --command <command> expression is a command name\n"
+msgstr " -c, --command <comanda> expresia este un nume de comandă\n"
+
+#: src/skill.c:338
+msgid " -p, --pid <pid> expression is a process id number\n"
+msgstr ""
+" -p, --pid <pid> expresia este un număr de identificare a "
+"procesului\n"
+
+#: src/skill.c:339
+msgid " -t, --tty <tty> expression is a terminal\n"
+msgstr " -t, --tty <tty> expresia este un terminal\n"
+
+#: src/skill.c:340
+msgid " -u, --user <username> expression is a username\n"
+msgstr ""
+" -u, --user <nume_ utilizator>\n"
+" expresia este un nume de utilizator\n"
+
+#: src/skill.c:342
+msgid "Alternatively, expression can be:\n"
+msgstr "Alternativ, expresia poate fi:\n"
+
+#: src/skill.c:343
+msgid ""
+" --ns <pid> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+" --ns <pid> potrivește procesele care aparțin aceluiași\n"
+" spațiu de nume ca <pid>\n"
+
+#: src/skill.c:345
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option; available namespaces are\n"
+": ipc, mnt, net, pid, user, uts\n"
+msgstr ""
+" --nslist <ns,...> listează spațiile de nume de utilizat pentru\n"
+" procesare cu opÈ›iunea „--nsâ€; spaÈ›iile de nume\n"
+" disponibile, sunt: ipc, mnt, net, pid, user, uts\n"
+
+#: src/skill.c:355
+#, c-format
+msgid ""
+"\n"
+"The default signal is TERM. Use -l or -L to list available signals.\n"
+"Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0.\n"
+"Alternate signals may be specified in three ways: -SIGKILL -KILL -9\n"
+msgstr ""
+"\n"
+"Semnalul implicit este TERM.\n"
+"Utilizați „-l†sau „-L†pentru a enumera semnalele disponibile.\n"
+"Semnalele deosebit de utile includ HUP, INT, KILL, STOP, CONT și 0.\n"
+"Semnalele alternative pot fi specificate în trei moduri: -SIGKILL -KILL -9\n"
+
+#: src/skill.c:362
+#, c-format
+msgid ""
+"\n"
+"The default priority is +4. (snice +4 ...)\n"
+"Priority numbers range from +20 (slowest) to -20 (fastest).\n"
+"Negative priority numbers are restricted to administrative users.\n"
+msgstr ""
+"\n"
+"Prioritatea implicită este +4. (snice +4...)\n"
+"Numerele de prioritate sunt cuprinse între +20 (cel mai lent) și -20 (cel "
+"mai rapid).\n"
+"Numerele de prioritate negative, sunt limitate la utilizatorii "
+"administrativi.\n"
+
+#: src/skill.c:384
+#, c-format
+msgid "priority %lu out of range"
+msgstr "prioritatea %lu este în afara intervalului"
+
+#: src/skill.c:493
+#, c-format
+msgid "invalid pid number %s"
+msgstr "număr pid nevalid %s"
+
+#: src/skill.c:497
+msgid "error reading reference namespace information"
+msgstr "eroare la citirea informațiilor despre spațiul de nume de referință"
+
+#: src/skill.c:505
+msgid "invalid namespace list"
+msgstr "listă de spații de nume nevalidă"
+
+#: src/skill.c:542
+msgid "no process selection criteria"
+msgstr "nu există criterii de selecție a procesului"
+
+#: src/skill.c:545
+msgid "general flags may not be repeated"
+msgstr "opțiunile generale nu pot fi repetate"
+
+#: src/skill.c:548
+msgid "-i makes no sense with -v, -f, and -n"
+msgstr "opÈ›iunea „-i†nu are niciun sens cu „-vâ€, „-f†și „-nâ€"
+
+#: src/skill.c:550
+msgid "-v makes no sense with -i and -f"
+msgstr "opÈ›iunea „-v†nu are niciun sens cu „-i†și „-fâ€"
+
+#: src/skill.c:594
+#, c-format
+msgid "skill: \"%s\" is not supported\n"
+msgstr "skill: „%s†nu este acceptată\n"
+
+# R-GC, scrie:
+# acest mesaj și următoarele, pot să fie
+# vizualizate, rulînd comanda:
+# «slabtop --help»
+# =============
+# după revizuirea fișierului, DȘ spune:
+# "... întârzierea între actualizări (intervalul de actualizare)\n"
+# → aici cred că ar fi mai pe înÈ›eles: „întârzie actualizările (număr de secunde pentru întârziere)â€
+# ***
+# nu mi se pare c-ar fi mai pe înțeles, datorită
+# faptului că:
+# „întîrzie actulizările†= face ca actualizările să se
+# efectueze (mai) tîrziu | întîrzie momentul actualizării(lor)
+# .
+# în schimb, ce este între paranteze, articulînd
+# primul cuvînt care apare; mi se pare că aduce
+# un plus de claritate definiției
+# *****
+# din aceste ideii, a fost (re)plăsmuit mesajul, la
+# forma ce se poate vedea
+#: src/slabtop.c:108
+msgid " -d, --delay <secs> delay updates\n"
+msgstr ""
+" -d, --delay <sec> întârzierea dintre actualizări (intervalul de "
+"actualizare;\n"
+" sec = numărul de secunde pentru întârziere)\n"
+
+#: src/slabtop.c:109
+msgid " -o, --once only display once, then exit\n"
+msgstr " -o, --once se afișează o singură dată, apoi se iese\n"
+
+#: src/slabtop.c:110
+msgid " -s, --sort <char> specify sort criteria by character (see below)\n"
+msgstr ""
+" -s, --sort <caracter>\n"
+" specifică criteriile de sortare după caracter\n"
+" (vedeți mai jos, detaliile )\n"
+
+#: src/slabtop.c:115
+msgid ""
+"\n"
+"The following are valid sort criteria:\n"
+msgstr ""
+"\n"
+"Următoarele sunt criterii de sortare valide:\n"
+
+#: src/slabtop.c:116
+msgid " a: sort by number of active objects\n"
+msgstr " a: sortează după numărul de obiecte active\n"
+
+#: src/slabtop.c:117
+msgid " b: sort by objects per slab\n"
+msgstr " b: sortează după numărul de obiecte „slabâ€\n"
+
+#: src/slabtop.c:118
+msgid " c: sort by cache size\n"
+msgstr " c: sortează după dimensiunea memoriei tampon\n"
+
+#: src/slabtop.c:119
+msgid " l: sort by number of slabs\n"
+msgstr " l: sortează după numărul de „slabsâ€\n"
+
+#: src/slabtop.c:120
+msgid " v: sort by (non display) number of active slabs\n"
+msgstr " v: sortează după (nu afișează) numărul de „slabs†active\n"
+
+#: src/slabtop.c:121
+msgid " n: sort by name\n"
+msgstr " n: sortează după nume\n"
+
+#: src/slabtop.c:122
+msgid " o: sort by number of objects (the default)\n"
+msgstr " o: sortează după numărul de obiecte (opțiunea implicită)\n"
+
+#: src/slabtop.c:123
+msgid " p: sort by (non display) pages per slab\n"
+msgstr " p: sortează după (nu afiÈ™ează) numărul de pagini per „slabâ€\n"
+
+#: src/slabtop.c:124
+msgid " s: sort by object size\n"
+msgstr " s: sortează după dimensiunea obiectelor\n"
+
+#: src/slabtop.c:125
+msgid " u: sort by cache utilization\n"
+msgstr " u: sortează după utilizarea memoriei tampon\n"
+
+#: src/slabtop.c:188 src/slabtop.c:199
+msgid "Cannot combine -d and -o options"
+msgstr "Nu se pot combina opÈ›iunile „-d†și „-oâ€"
+
+#: src/slabtop.c:190
+msgid "illegal delay"
+msgstr "întârziere incorectă"
+
+#: src/slabtop.c:192 src/tload.c:142 src/vmstat.c:1049
+msgid "delay must be positive integer"
+msgstr "întârzierea trebuie să fie un număr întreg pozitiv"
+
+#: src/slabtop.c:236
+msgid "Error getting slab summary results"
+msgstr "Eroare la obÈ›inerea rezultatelor rezumatului „slabâ€"
+
+#. Translation Hint: Next five strings must not
+#. * exceed a length of 35 characters.
+#: src/slabtop.c:242
+#, no-c-format
+msgid "Active / Total Objects (% used)"
+msgstr "Active/Total obiecte (%u utilizate)"
+
+#: src/slabtop.c:248
+#, no-c-format
+msgid "Active / Total Slabs (% used)"
+msgstr "Active/Total Slabs (%u utilizate)"
+
+#: src/slabtop.c:254
+#, no-c-format
+msgid "Active / Total Caches (% used)"
+msgstr "Active/Total MemTamp (%u utilizată)"
+
+#: src/slabtop.c:260
+#, no-c-format
+msgid "Active / Total Size (% used)"
+msgstr "Active/Dim. totală (%u utilizată)"
+
+#: src/slabtop.c:265
+msgid "Minimum / Average / Maximum Object"
+msgstr "Minim / Mediu / Maxim obiect"
+
+#. Translation Hint: Please keep alignment of the
+#. * following intact.
+#: src/slabtop.c:276
+msgid " OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME"
+msgstr " OBJS ACTIVE USE OBJ DIM. SLABS OBJ/SLAB MTamp DIM. NUME"
+
+#: src/slabtop.c:313 src/vmstat.c:767
+msgid "Unable to create slabinfo structure"
+msgstr "Nu se poate crea structura de informaÈ›ii „slabâ€"
+
+#: src/slabtop.c:318
+msgid "terminal setting retrieval"
+msgstr "se preiau configurările terminalului"
+
+#: src/slabtop.c:334 src/vmstat.c:774
+msgid "Unable to get slabinfo node data"
+msgstr "Nu s-au putut obÈ›ine date despre nodul de informaÈ›ii „slabâ€"
+
+#: src/slabtop.c:340 src/vmstat.c:776
+msgid "Unable to sort slab nodes"
+msgstr "Nu s-au putut sorta nodurile „slabâ€"
+
+#: src/sysctl.c:118
+#, c-format
+msgid "Path is not under %s: %s"
+msgstr "Calea nu este sub %s: %s"
+
+#: src/sysctl.c:136
+#, c-format
+msgid "separators should not be repeated: %s"
+msgstr "separatorii nu trebuie să se repete: %s"
+
+# R-GC, scrie:
+# acest mesaj și următoarele, pot să fie
+# vizualizate, rulînd comanda:
+# «sysctl --help»
+#: src/sysctl.c:232
+#, c-format
+msgid " %s [options] [variable[=value] ...]\n"
+msgstr " %s [opțiuni] [variabilă[=valoare] ...]\n"
+
+#: src/sysctl.c:235
+msgid " -a, --all display all variables\n"
+msgstr " -a, --all afișează toate variabilele\n"
+
+#: src/sysctl.c:236
+msgid " -A alias of -a\n"
+msgstr " -A alias de „-aâ€\n"
+
+#: src/sysctl.c:237
+msgid " -X alias of -a\n"
+msgstr " -X alias de „-aâ€\n"
+
+#: src/sysctl.c:238
+msgid " --deprecated include deprecated parameters to listing\n"
+msgstr " --deprecated include parametri învechiți în listare\n"
+
+#: src/sysctl.c:239
+msgid " --dry-run Print the key and values but do not write\n"
+msgstr " --dry-run afișează cheia și valorile, dar nu le scrie\n"
+
+#: src/sysctl.c:240
+msgid " -b, --binary print value without new line\n"
+msgstr " -b, --binary afișează valoarea fără linie nouă\n"
+
+#: src/sysctl.c:241
+msgid " -e, --ignore ignore unknown variables errors\n"
+msgstr " -e, --ignore ignoră erorile variabilelor necunoscute\n"
+
+#: src/sysctl.c:242
+msgid " -N, --names print variable names without values\n"
+msgstr " -N, --names afișează numele variabilelor fără valori\n"
+
+#: src/sysctl.c:243
+msgid " -n, --values print only values of the given variable(s)\n"
+msgstr " -n, --values afișează numai valorile variabilelor date\n"
+
+#: src/sysctl.c:244
+msgid " -p, --load[=<file>] read values from file\n"
+msgstr ""
+" -p, --load[=<fișier>]\n"
+" citește valorile din fișier\n"
+
+#: src/sysctl.c:245
+msgid " -f alias of -p\n"
+msgstr " -f alias de „-pâ€\n"
+
+#: src/sysctl.c:246
+msgid " --system read values from all system directories\n"
+msgstr ""
+" --system citește valorile din toate directoarele de sistem\n"
+
+#: src/sysctl.c:247
+msgid ""
+" -r, --pattern <expression>\n"
+" select setting that match expression\n"
+msgstr ""
+" -r, --pattern <expresie>\n"
+" selectează configurarea care se potrivește cu "
+"expresia\n"
+
+#: src/sysctl.c:249
+msgid " -q, --quiet do not echo variable set\n"
+msgstr ""
+" -q, --quiet nu afișează setul de variabile(perechile var.=val.)\n"
+
+#: src/sysctl.c:250
+msgid " -w, --write enable writing a value to variable\n"
+msgstr " -w, --write activează scrierea unei valori în variabilă\n"
+
+#: src/sysctl.c:251
+msgid " -o does nothing\n"
+msgstr " -o nu face nimic\n"
+
+#: src/sysctl.c:252
+msgid " -x does nothing\n"
+msgstr " -x nu face nimic\n"
+
+#: src/sysctl.c:253
+msgid " -d alias of -h\n"
+msgstr " -d alias de „-hâ€\n"
+
+#: src/sysctl.c:334 src/sysctl.c:390
+#, c-format
+msgid "\"%s\" is an unknown key"
+msgstr "„%s†este o cheie necunoscută"
+
+#: src/sysctl.c:352 src/sysctl.c:508 src/sysctl.c:545
+#, c-format
+msgid "cannot stat %s"
+msgstr "nu se poate obține starea %s"
+
+#: src/sysctl.c:395 src/sysctl.c:437
+#, c-format
+msgid "permission denied on key '%s'"
+msgstr "permisiunea a fost refuzată pentru cheia „%sâ€"
+
+#: src/sysctl.c:402 src/sysctl.c:454
+#, c-format
+msgid "reading key \"%s\""
+msgstr "se citeÈ™te cheia „%sâ€"
+
+#: src/sysctl.c:492
+#, c-format
+msgid "unable to open directory \"%s\""
+msgstr "nu se poate deschide directorul „%sâ€"
+
+#: src/sysctl.c:557
+msgid "strdup key"
+msgstr "cheie strdup"
+
+#: src/sysctl.c:564 src/sysctl.c:571 src/sysctl.c:604
+#, c-format
+msgid "setting key \"%s\""
+msgstr "se configurează cheia „%sâ€"
+
+#: src/sysctl.c:581
+#, c-format
+msgid "\"%s\" is an unknown key%s"
+msgstr "„%s†este o cheie necunoscută%s"
+
+#: src/sysctl.c:582 src/sysctl.c:591 src/sysctl.c:595
+msgid ", ignoring"
+msgstr ", se ignoră"
+
+#: src/sysctl.c:590
+#, c-format
+msgid "permission denied on key \"%s\"%s"
+msgstr "permisiunea a fost refuzată pentru cheia „%sâ€%s"
+
+#: src/sysctl.c:594
+#, c-format
+msgid "setting key \"%s\"%s"
+msgstr "se configurează cheia „%sâ€%s"
+
+#: src/sysctl.c:669
+#, c-format
+msgid "%s(%d): invalid syntax, continuing..."
+msgstr "%s(%d): sintaxă nevalidă, se continuă..."
+
+#: src/sysctl.c:761
+#, c-format
+msgid ""
+"GLOB_TILDE is not supported on your platform, the tilde in \"%s\" won't be "
+"expanded."
+msgstr ""
+"GLOB_TILDE nu este acceptată pe platforma dumneavoastră, tilde din „%s†nu "
+"va fi extinsă."
+
+#: src/sysctl.c:767
+msgid "glob failed"
+msgstr "glob() a eșuat"
+
+#: src/sysctl.c:773
+#, c-format
+msgid "cannot open \"%s\""
+msgstr "nu se poate deschide „%sâ€"
+
+#: src/sysctl.c:877 src/sysctl.c:884
+#, c-format
+msgid "* Applying %s ...\n"
+msgstr "* Se aplică %s...\n"
+
+#: src/sysctl.c:1050
+#, c-format
+msgid ""
+"no variables specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+"nicio variabilă specificată\n"
+"Încercați «%s --help» pentru informații suplimentare."
+
+#: src/sysctl.c:1054
+#, c-format
+msgid ""
+"options -N and -q cannot coexist\n"
+"Try `%s --help' for more information."
+msgstr ""
+"opțiunile „-N†și „-q†nu pot coexista\n"
+"Încercați «%s --help» pentru informații suplimentare."
+
+#: src/tload.c:75 src/tload.c:77
+msgid "screen too small or too large"
+msgstr "ecranul este prea mic sau prea mare"
+
+#: src/tload.c:80
+msgid "screen too small"
+msgstr "ecranul este prea mic"
+
+# R-GC, scrie:
+# acest mesaj și următoarele, pot să fie
+# vizualizate, rulînd comanda:
+# «tload --help»
+#: src/tload.c:96
+#, c-format
+msgid " %s [options] [tty]\n"
+msgstr " %s [opțiuni] [tty]\n"
+
+#: src/tload.c:98
+msgid " -d, --delay <secs> update delay in seconds\n"
+msgstr ""
+" -d, --delay <sec> întârzierea între actualizări (intervalul de "
+"actualizare)\n"
+
+#: src/tload.c:99
+msgid " -s, --scale <num> vertical scale\n"
+msgstr " -s, --scale <num> scară verticală\n"
+
+#: src/tload.c:137
+msgid "scale cannot be negative"
+msgstr "scara nu poate fi negativă"
+
+#: src/tload.c:144 src/vmstat.c:1051
+msgid "too large delay value"
+msgstr "valoare de întârziere prea mare"
+
+#: src/tload.c:159
+msgid "can not open tty"
+msgstr "nu se poate deschide terminalul(tty)"
+
+#: src/tload.c:182
+msgid "Load average file /proc/loadavg does not exist"
+msgstr "Fișierul de încărcare medie „/proc/loadavg†nu există"
+
+#: src/tload.c:185
+msgid "Unable to get load average"
+msgstr "Nu se poate obține încărcarea medie"
+
+# R-GC, scrie:
+# următoarele mesaje, pot să fie
+# vizualizate, rulînd comenzile:
+# «top -h» «top», cu sau fără opțiuni.
+#: src/tload.c:227 src/tload.c:229
+msgid "writing to tty failed"
+msgstr "scrierea la terminal(tty) a eșuat"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The following line pairs contain only plain text and consist of:
+#. . 1) a field name/column header - mostly upper case
+#. . 2) the related description - both upper and lower case
+#. .
+#. . To avoid truncation on the main top display, each column header
+#. . is noted with its maximum size, while a few are 'variable' width.
+#. . Names for the latter should probably be 10 or fewer characters.
+#. .
+#. . Those fields shown with a '+' are also eligible for user resizing
+#. . using the 'X' command. That means the default width might produce
+#. . truncation but need not if widened (see the man page 'X' command).
+#. .
+#. . All headers are subject to a maximum of 8 on the Fields Management
+#. . screen where truncation is entirely acceptable.
+#. .
+#. . The associated descriptions are always limited to 20 characters,
+#. . and are used only on the Fields Management screen.
+#. .
+#. . In all cases, fewer characters are just fine.
+#. .
+#. Translation Hint: maximum 'PID' = 5
+#: src/top/top_nls.c:152
+msgid "PID"
+msgstr "PID"
+
+#: src/top/top_nls.c:153
+msgid "Process Id"
+msgstr "Id-ul procesului"
+
+#. Translation Hint: maximum 'PPID' = 5
+#: src/top/top_nls.c:155
+msgid "PPID"
+msgstr "PPID"
+
+#: src/top/top_nls.c:156
+msgid "Parent Process pid"
+msgstr "PID-ul procesului părinte"
+
+#. Translation Hint: maximum 'UID' = 5 +
+#: src/top/top_nls.c:158
+msgid "UID"
+msgstr "UID"
+
+#: src/top/top_nls.c:159
+msgid "Effective User Id"
+msgstr "ID-ul utilizatorului efectiv"
+
+#. Translation Hint: maximum 'USER' = 8 +
+#: src/top/top_nls.c:161 src/w.c:799
+msgid "USER"
+msgstr "UTILIZ."
+
+#: src/top/top_nls.c:162
+msgid "Effective User Name"
+msgstr "Numele utilizatorului efectiv"
+
+#. Translation Hint: maximum 'RUID' = 5 +
+#: src/top/top_nls.c:164
+msgid "RUID"
+msgstr "UIDR"
+
+#: src/top/top_nls.c:165
+msgid "Real User Id"
+msgstr "Id-ul utilizatorului real"
+
+#. Translation Hint: maximum 'RUSER' = 8 +
+#: src/top/top_nls.c:167
+msgid "RUSER"
+msgstr "UTILIZ.R"
+
+#: src/top/top_nls.c:168
+msgid "Real User Name"
+msgstr "Numele utilizatorului real"
+
+#. Translation Hint: maximum 'SUID' = 5 +
+#: src/top/top_nls.c:170
+msgid "SUID"
+msgstr "UIDS"
+
+#: src/top/top_nls.c:171
+msgid "Saved User Id"
+msgstr "ID-ul utilizatorului salvat"
+
+#. Translation Hint: maximum 'SUSER' = 8 +
+#: src/top/top_nls.c:173
+msgid "SUSER"
+msgstr "UTILIZ.S"
+
+#: src/top/top_nls.c:174
+msgid "Saved User Name"
+msgstr "Numele utilizatorului salvat"
+
+#. Translation Hint: maximum 'GID' = 5 +
+#: src/top/top_nls.c:176
+msgid "GID"
+msgstr "GID"
+
+#: src/top/top_nls.c:177
+msgid "Group Id"
+msgstr "ID-ul grupului"
+
+#. Translation Hint: maximum 'GROUP' = 8 +
+#: src/top/top_nls.c:179
+msgid "GROUP"
+msgstr "GRUP"
+
+#: src/top/top_nls.c:180
+msgid "Group Name"
+msgstr "Numele grupului"
+
+#. Translation Hint: maximum 'PGRP' = 5
+#: src/top/top_nls.c:182
+msgid "PGRP"
+msgstr "PGRP"
+
+#: src/top/top_nls.c:183
+msgid "Process Group Id"
+msgstr "Id-ul grupului de procese"
+
+#. Translation Hint: maximum 'TTY' = 8 +
+#: src/top/top_nls.c:185
+msgid "TTY"
+msgstr "TTY"
+
+#: src/top/top_nls.c:186
+msgid "Controlling Tty"
+msgstr "Control Tty"
+
+#. Translation Hint: maximum 'TPGID' = 5
+#: src/top/top_nls.c:188
+msgid "TPGID"
+msgstr "TPGID"
+
+#: src/top/top_nls.c:189
+msgid "Tty Process Grp Id"
+msgstr "ID-ul grupului de procese Tty"
+
+#. Translation Hint: maximum 'SID' = 5
+#: src/top/top_nls.c:191
+msgid "SID"
+msgstr "SID"
+
+#: src/top/top_nls.c:192
+msgid "Session Id"
+msgstr "ID-ul sesiunii"
+
+#. Translation Hint: maximum 'PR' = 3
+#: src/top/top_nls.c:194
+msgid "PR"
+msgstr "PRI"
+
+#: src/top/top_nls.c:195
+msgid "Priority"
+msgstr "Prioritate"
+
+#. Translation Hint: maximum 'NI' = 3
+#: src/top/top_nls.c:197
+msgid "NI"
+msgstr "NI"
+
+#: src/top/top_nls.c:198
+msgid "Nice Value"
+msgstr "Valoare „niceâ€"
+
+#. Translation Hint: maximum 'nTH' = 3
+#: src/top/top_nls.c:200
+msgid "nTH"
+msgstr "nTH"
+
+#: src/top/top_nls.c:201
+msgid "Number of Threads"
+msgstr "Numărul de fire de execuție"
+
+#. Translation Hint: maximum 'P' = 1
+#: src/top/top_nls.c:203
+msgid "P"
+msgstr "P"
+
+#: src/top/top_nls.c:204
+msgid "Last Used Cpu (SMP)"
+msgstr "Ultimul procesor folosit (SMP)"
+
+#. Translation Hint: maximum '%CPU' = 4
+#: src/top/top_nls.c:206
+#, c-format
+msgid "%CPU"
+msgstr "%CPU"
+
+#: src/top/top_nls.c:207
+msgid "CPU Usage"
+msgstr "Utilizarea CPU"
+
+#. Translation Hint: maximum '' = 6
+#: src/top/top_nls.c:209
+msgid "TIME"
+msgstr "TIMP"
+
+#: src/top/top_nls.c:210
+msgid "CPU Time"
+msgstr "Timp CPU"
+
+#. Translation Hint: maximum 'TIME+' = 9
+#: src/top/top_nls.c:212
+msgid "TIME+"
+msgstr "TIMP+"
+
+#: src/top/top_nls.c:213
+msgid "CPU Time, hundredths"
+msgstr "Timp CPU, sutimi"
+
+#. Translation Hint: maximum '%MEM' = 4
+#: src/top/top_nls.c:215
+msgid "%MEM"
+msgstr "%MEM"
+
+#: src/top/top_nls.c:216
+msgid "Memory Usage (RES)"
+msgstr "Utilizarea memoriei (RES)"
+
+#. Translation Hint: maximum 'VIRT' = 7
+#: src/top/top_nls.c:218
+msgid "VIRT"
+msgstr "VIRT"
+
+#: src/top/top_nls.c:219
+msgid "Virtual Image (KiB)"
+msgstr "Imagine virtuală (Kio)"
+
+#. Translation Hint: maximum 'SWAP' = 6
+#: src/top/top_nls.c:221
+msgid "SWAP"
+msgstr "SWAP"
+
+#: src/top/top_nls.c:222
+msgid "Swapped Size (KiB)"
+msgstr "Dimensiunea utilizată din swap (Kio)"
+
+#. Translation Hint: maximum 'RES' = 6
+#: src/top/top_nls.c:224
+msgid "RES"
+msgstr "RES"
+
+#: src/top/top_nls.c:225
+msgid "Resident Size (KiB)"
+msgstr "Dimensiunea rezidentului (Kio)"
+
+#. Translation Hint: maximum 'CODE' = 4
+#: src/top/top_nls.c:227
+msgid "CODE"
+msgstr "COD"
+
+#: src/top/top_nls.c:228
+msgid "Code Size (KiB)"
+msgstr "Dimensiunea codului (Kio)"
+
+#. Translation Hint: maximum 'DATA' = 7
+#: src/top/top_nls.c:230
+msgid "DATA"
+msgstr "DATE"
+
+#: src/top/top_nls.c:231
+msgid "Data+Stack (KiB)"
+msgstr "Date+Stiva (Kio)"
+
+#. Translation Hint: maximum 'SHR' = 6
+#: src/top/top_nls.c:233
+msgid "SHR"
+msgstr "M.PART"
+
+#: src/top/top_nls.c:234
+msgid "Shared Memory (KiB)"
+msgstr "Memoria partajată (Kio)"
+
+#. Translation Hint: maximum 'nMaj' = 4
+#: src/top/top_nls.c:236
+msgid "nMaj"
+msgstr "nMaj"
+
+#: src/top/top_nls.c:237
+msgid "Major Page Faults"
+msgstr "Greșeli majore de pagină"
+
+#. Translation Hint: maximum 'nMin' = 4
+#: src/top/top_nls.c:239
+msgid "nMin"
+msgstr "nMin"
+
+#: src/top/top_nls.c:240
+msgid "Minor Page Faults"
+msgstr "Greșeli minore de pagină"
+
+#. Translation Hint: maximum 'nDRT' = 4
+#: src/top/top_nls.c:242
+msgid "nDRT"
+msgstr "nDRT"
+
+#: src/top/top_nls.c:243
+msgid "Dirty Pages Count"
+msgstr "Numărul de pagini cu greșeli"
+
+#. Translation Hint: maximum 'S' = 1
+#: src/top/top_nls.c:245
+msgid "S"
+msgstr "S"
+
+#: src/top/top_nls.c:246
+msgid "Process Status"
+msgstr "Starea procesului"
+
+#. Translation Hint: maximum 'COMMAND' = variable
+#: src/top/top_nls.c:248
+msgid "COMMAND"
+msgstr "COMANDA"
+
+#: src/top/top_nls.c:249
+msgid "Command Name/Line"
+msgstr "Nume/linie de comandă"
+
+#. Translation Hint: maximum 'WCHAN' = 10 +
+#: src/top/top_nls.c:251
+msgid "WCHAN"
+msgstr "WCHAN"
+
+#: src/top/top_nls.c:252
+msgid "Sleeping in Function"
+msgstr "Dormire în funcție"
+
+#. Translation Hint: maximum 'Flags' = 8
+#: src/top/top_nls.c:254
+msgid "Flags"
+msgstr "Fanioane"
+
+#: src/top/top_nls.c:255
+msgid "Task Flags <sched.h>"
+msgstr "Fanioane sarcini <sched.h>"
+
+#. Translation Hint: maximum 'CGROUPS' = variable
+#: src/top/top_nls.c:257
+msgid "CGROUPS"
+msgstr "CGROUPS"
+
+#: src/top/top_nls.c:258
+msgid "Control Groups"
+msgstr "Grupuri de control"
+
+#. Translation Hint: maximum 'SUPGIDS' = variable
+#: src/top/top_nls.c:260
+msgid "SUPGIDS"
+msgstr "SUPGIDS"
+
+#: src/top/top_nls.c:261
+msgid "Supp Groups IDs"
+msgstr "ID-urile grupurilor de asistență"
+
+#. Translation Hint: maximum 'SUPGRPS' = variable
+#: src/top/top_nls.c:263
+msgid "SUPGRPS"
+msgstr "SUPGRPS"
+
+#: src/top/top_nls.c:264
+msgid "Supp Groups Names"
+msgstr "Numele grupurilor de asistență"
+
+#. Translation Hint: maximum 'TGID' = 5
+#: src/top/top_nls.c:266
+msgid "TGID"
+msgstr "TGID"
+
+#: src/top/top_nls.c:267
+msgid "Thread Group Id"
+msgstr "Id-ul grupului de fire de execuție"
+
+#. Translation Hint: maximum 'OOMa' = 5
+#: src/top/top_nls.c:269
+msgid "OOMa"
+msgstr "OOMa"
+
+#: src/top/top_nls.c:270
+msgid "OOMEM Adjustment"
+msgstr "Ajustare OOMEM"
+
+#. Translation Hint: maximum 'OOMs' = 4
+#: src/top/top_nls.c:272
+msgid "OOMs"
+msgstr "OOMs"
+
+#: src/top/top_nls.c:273
+msgid "OOMEM Score current"
+msgstr "Scorul OOMEM curent"
+
+#. Translation Hint: maximum 'ENVIRON' = variable
+#: src/top/top_nls.c:275
+msgid "ENVIRON"
+msgstr "MEDIU"
+
+#. Translation Hint: the abbreviation 'vars' below is shorthand for
+#. 'variables'
+#: src/top/top_nls.c:278
+msgid "Environment vars"
+msgstr "Variabile de mediu"
+
+#. Translation Hint: maximum 'vMj' = 3
+#: src/top/top_nls.c:280
+msgid "vMj"
+msgstr "vMj"
+
+#: src/top/top_nls.c:281
+msgid "Major Faults delta"
+msgstr "Greșeli majore delta"
+
+#. Translation Hint: maximum 'vMn' = 3
+#: src/top/top_nls.c:283
+msgid "vMn"
+msgstr "vMn"
+
+#: src/top/top_nls.c:284
+msgid "Minor Faults delta"
+msgstr "Greșeli minore delta"
+
+#. Translation Hint: maximum 'USED' = 6
+#: src/top/top_nls.c:286
+msgid "USED"
+msgstr "USED"
+
+#: src/top/top_nls.c:287
+msgid "Res+Swap Size (KiB)"
+msgstr "Dimensiune res+swap (Kio)"
+
+#. Translation Hint: maximum 'nsIPC' = 10 +
+#: src/top/top_nls.c:289
+msgid "nsIPC"
+msgstr "nsIPC"
+
+#: src/top/top_nls.c:290
+msgid "IPC namespace Inode"
+msgstr "Nodul-i al spațiului de nume IPC"
+
+#. Translation Hint: maximum 'nsMNT' = 10 +
+#: src/top/top_nls.c:292
+msgid "nsMNT"
+msgstr "nsMNT"
+
+#: src/top/top_nls.c:293
+msgid "MNT namespace Inode"
+msgstr "Nodul-i al spațiului de nume MNT"
+
+#. Translation Hint: maximum 'nsNET' = 10 +
+#: src/top/top_nls.c:295
+msgid "nsNET"
+msgstr "nsNET"
+
+#: src/top/top_nls.c:296
+msgid "NET namespace Inode"
+msgstr "Nodul-i al spațiului de nume NET"
+
+#. Translation Hint: maximum 'nsPID' = 10 +
+#: src/top/top_nls.c:298
+msgid "nsPID"
+msgstr "nsPID"
+
+#: src/top/top_nls.c:299
+msgid "PID namespace Inode"
+msgstr "Nodul-i al spațiului de nume PID"
+
+#. Translation Hint: maximum 'nsUSER' = 10 +
+#: src/top/top_nls.c:301
+msgid "nsUSER"
+msgstr "nsUSER"
+
+#: src/top/top_nls.c:302
+msgid "USER namespace Inode"
+msgstr "Nodul-i al spațiului de nume USER"
+
+#. Translation Hint: maximum 'nsUTS' = 10 +
+#: src/top/top_nls.c:304
+msgid "nsUTS"
+msgstr "nsUTS"
+
+#: src/top/top_nls.c:305
+msgid "UTS namespace Inode"
+msgstr "Nodul-i al spațiului de nume UTS"
+
+#. Translation Hint: maximum 'LXC' = 8 +
+#: src/top/top_nls.c:307
+msgid "LXC"
+msgstr "LXC"
+
+#: src/top/top_nls.c:308
+msgid "LXC container name"
+msgstr "Numele containerului LXC"
+
+#. Translation Hint: maximum 'RSan' = 6
+#: src/top/top_nls.c:310
+msgid "RSan"
+msgstr "RSan"
+
+#: src/top/top_nls.c:311
+msgid "RES Anonymous (KiB)"
+msgstr "RES Anonim (Kio)"
+
+#. Translation Hint: maximum 'RSfd' = 6
+#: src/top/top_nls.c:313
+msgid "RSfd"
+msgstr "RSfd"
+
+#: src/top/top_nls.c:314
+msgid "RES File-based (KiB)"
+msgstr "RES bazat pe fișiere (Kio)"
+
+#. Translation Hint: maximum 'RSlk' = 6
+#: src/top/top_nls.c:316
+msgid "RSlk"
+msgstr "RSlk"
+
+#: src/top/top_nls.c:317
+msgid "RES Locked (KiB)"
+msgstr "RES blocat (Kio)"
+
+#. Translation Hint: maximum 'RSsh' = 6
+#: src/top/top_nls.c:319
+msgid "RSsh"
+msgstr "RSsh"
+
+#: src/top/top_nls.c:320
+msgid "RES Shared (KiB)"
+msgstr "RES partajat (Kio)"
+
+#. Translation Hint: maximum 'CGNAME' = variable
+#: src/top/top_nls.c:322
+msgid "CGNAME"
+msgstr "CGNAME"
+
+#: src/top/top_nls.c:323
+msgid "Control Group name"
+msgstr "Numele grupului de control"
+
+#. Translation Hint: maximum 'NU' = 2
+#: src/top/top_nls.c:325
+msgid "NU"
+msgstr "NU"
+
+#: src/top/top_nls.c:326
+msgid "Last Used NUMA node"
+msgstr "Ultimul nod NUMA utilizat"
+
+#. Translation Hint: maximum 'LOGID' = 5 +
+#: src/top/top_nls.c:328
+msgid "LOGID"
+msgstr "LOGID"
+
+#: src/top/top_nls.c:329
+msgid "Login User Id"
+msgstr "Id-ul utilizatorului autentificat"
+
+#. Translation Hint: maximum 'EXE' = variable
+#: src/top/top_nls.c:331
+msgid "EXE"
+msgstr "EXE"
+
+#: src/top/top_nls.c:332
+msgid "Executable Path"
+msgstr "Calea la executabil"
+
+#: src/top/top_nls.c:338
+msgid "Res Mem (smaps), KiB"
+msgstr "Mem Res (smaps), KiB"
+
+#. Translation Hint: maximum 'PSS' = 6
+#: src/top/top_nls.c:340
+msgid "PSS"
+msgstr "PSS"
+
+#: src/top/top_nls.c:341
+msgid "Proportion RSS, KiB"
+msgstr "Proporția RSS, KiB"
+
+#. Translation Hint: maximum 'PSan' = 6
+#: src/top/top_nls.c:343
+msgid "PSan"
+msgstr "PSan"
+
+#: src/top/top_nls.c:344
+msgid "Proportion Anon, KiB"
+msgstr "Proporția Anon, KiB"
+
+#. Translation Hint: maximum 'PSfd' = 6
+#: src/top/top_nls.c:346
+msgid "PSfd"
+msgstr "PSfd"
+
+#: src/top/top_nls.c:347
+msgid "Proportion File, KiB"
+msgstr "Proporția Fișier, KiB"
+
+#. Translation Hint: maximum 'PSsh' = 6
+#: src/top/top_nls.c:349
+msgid "PSsh"
+msgstr "PSsh"
+
+#: src/top/top_nls.c:350
+msgid "Proportion Shrd, KiB"
+msgstr "Proporția Shrd, KiB"
+
+#. Translation Hint: maximum 'USS' = 6
+#: src/top/top_nls.c:352
+msgid "USS"
+msgstr "USS"
+
+#: src/top/top_nls.c:353
+msgid "Unique RSS, KiB"
+msgstr "RSS unic, KiB"
+
+#. Translation Hint: maximum 'ioR' = 6
+#: src/top/top_nls.c:355
+msgid "ioR"
+msgstr "ioR"
+
+#: src/top/top_nls.c:356
+msgid "I/O Bytes Read"
+msgstr "Octeți citiți la In/Ieș"
+
+#. Translation Hint: maximum 'ioRop' = 5
+#: src/top/top_nls.c:358
+msgid "ioRop"
+msgstr "ioRop"
+
+#: src/top/top_nls.c:359
+msgid "I/O Read Operations"
+msgstr "Operații de citire a In/Ieș"
+
+#. Translation Hint: maximum 'ioW' = 6
+#: src/top/top_nls.c:361
+msgid "ioW"
+msgstr "ioW"
+
+#: src/top/top_nls.c:362
+msgid "I/O Bytes Written"
+msgstr "Octeți scriși la In/Ieș"
+
+#. Translation Hint: maximum 'ioWop' = 5
+#: src/top/top_nls.c:364
+msgid "ioWop"
+msgstr "ioWop"
+
+#: src/top/top_nls.c:365
+msgid "I/O Write Operations"
+msgstr "Operații de scriere a In/Ieș"
+
+#. Translation Hint: maximum 'AGID' = 5
+#: src/top/top_nls.c:367
+msgid "AGID"
+msgstr "AGID"
+
+#: src/top/top_nls.c:368
+msgid "Autogroup Identifier"
+msgstr "Identificatorul autogrupului"
+
+#. Translation Hint: maximum 'AGNI' = 4
+#: src/top/top_nls.c:370
+msgid "AGNI"
+msgstr "AGNI"
+
+#: src/top/top_nls.c:371
+msgid "Autogroup Nice Value"
+msgstr "Valoarea „nice†a autogrupului"
+
+#. Translation Hint: maximum 'STARTED' = 7
+#: src/top/top_nls.c:373
+msgid "STARTED"
+msgstr "ÃŽNCEPUT"
+
+#: src/top/top_nls.c:374
+msgid "Start Time from boot"
+msgstr "Ora începere a pornirii"
+
+#. Translation Hint: maximum 'ELAPSED' = 7
+#: src/top/top_nls.c:376
+msgid "ELAPSED"
+msgstr "SCURS"
+
+#: src/top/top_nls.c:377
+msgid "Elapsed Running Time"
+msgstr "Timpul de rulare scurs"
+
+#. Translation Hint: maximum '%CUU' = 6
+#: src/top/top_nls.c:379
+#, c-format
+msgid "%CUU"
+msgstr "%CUU"
+
+#: src/top/top_nls.c:380
+msgid "CPU Utilization"
+msgstr "Utilizarea CPU"
+
+#. Translation Hint: maximum '%CUC' = 7
+#: src/top/top_nls.c:382
+#, c-format
+msgid "%CUC"
+msgstr "%CUC"
+
+#: src/top/top_nls.c:383
+msgid "Utilization + child"
+msgstr "Utilizare + proces-copil"
+
+#. Translation Hint: maximum 'nsCGROUP' = 10 +
+#: src/top/top_nls.c:385
+msgid "nsCGROUP"
+msgstr "nsCGROUP"
+
+#: src/top/top_nls.c:386
+msgid "CGRP namespace Inode"
+msgstr "Nodul-i al spațiului de nume CGRP"
+
+#. Translation Hint: maximum 'nsTIME' = 10 +
+#: src/top/top_nls.c:388
+msgid "nsTIME"
+msgstr "nsTIMP"
+
+#: src/top/top_nls.c:389
+msgid "TIME namespace Inode"
+msgstr "Nodul-i al spațiului de nume TIMP"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . This group of lines contains both plain text and c-format strings.
+#. .
+#. . Some strings reflect switches used to affect the running program
+#. . and should not be translated without also making corresponding
+#. . c-code logic changes.
+#. .
+#: src/top/top_nls.c:409
+#, c-format
+msgid ""
+"\tsignal %d (%s) was caught by %s, please\n"
+"\tsend bug reports to <procps@freelists.org>\n"
+msgstr ""
+"\tsemnalul %d (%s) a fost captat de %s, \n"
+"\ttrimiteți rapoartele de eroare la <procps@freelists.org>\n"
+
+#: src/top/top_nls.c:439
+#, c-format
+msgid "bad delay interval '%s'"
+msgstr "interval de întârziere greÈ™it „%sâ€"
+
+#: src/top/top_nls.c:440
+#, c-format
+msgid "bad iterations argument '%s'"
+msgstr "argumentul iteraÈ›iilor este greÈ™it „%sâ€"
+
+#: src/top/top_nls.c:441
+#, c-format
+msgid "pid limit (%d) exceeded"
+msgstr "limita pid (%d) a fost depășită"
+
+#: src/top/top_nls.c:442
+#, c-format
+msgid "bad pid '%s'"
+msgstr "pid incorect „%sâ€"
+
+#: src/top/top_nls.c:443
+#, c-format
+msgid "-%c argument missing"
+msgstr "argumentul opÈ›iunii „-%câ€, lipseÈ™te"
+
+#: src/top/top_nls.c:444
+#, c-format
+msgid "bad width arg '%s'"
+msgstr "argument de lățime incorect „%sâ€"
+
+#: src/top/top_nls.c:445
+#, c-format
+msgid "unknown option '%s'"
+msgstr "opÈ›iune necunoscută „%sâ€"
+
+#: src/top/top_nls.c:446
+msgid "-d disallowed in \"secure\" mode"
+msgstr "opÈ›iunea „-d†nu este permisă în modul „securizatâ€"
+
+#: src/top/top_nls.c:447
+msgid "-d requires positive argument"
+msgstr "opțiunea „-d†necesită un argument pozitiv"
+
+# R-GC, scrie:
+# am tradus, inițial, acest mesaj, ca:
+# «Activat», și următorul(perechea lui),
+# ca:
+# «Dezactivat», așa cum e normal și
+# firesc,,, dar, încercați să spune-ți
+# acest lucru, unei lumi care încă
+# trăiește în limitările de:
+# 80 de coloane(caractere) x 24 de linii...
+# ***
+# Rezultă că e: «Misiune Imposibilă!!!»
+# ===
+# Concluzie:
+# a trebuit să le las netraduse, pentru
+# că, altfel, afectează GRAV, geometria
+# unor mesaje ulterioare (le „mănîncăâ€
+# partea finală; între cîteva caractere, și
+# cîteva rînduri, nu este mult, nu...?
+# =*=*=*=
+# Le mulțumesc, MULT, autorilor, pentru
+# mesajul INEXISTENT de avertizare
+# asupra acestui lucru!
+# Nu am pierdut, decît vreo două ore și
+# jumătate, pentru a elucida misterul
+# dispariției rîndurilor/caracterelor din
+# mesajele traduse (aceste două
+# mesaje, nu sunt singurele astfel de
+# mesaje ce afectează GRAV, geometria
+# altor mesaje, există un alt mesaj, care
+# apare individual(cred), dar și »înglobat«
+# într-un alt mesaj, mai larg (la 2/3 din
+# lungimea acestuia) căruia îi mănîncă
+# ultimele rînduri (în traducerea inițială
+# pe care o făcusem; acum, prima
+# jumătate a acestui mesaj, este tradusă,
+# iar a doua e în mama ei de engleză...)
+# pentru ca acest mesaj să apară întreg,
+# și nu trunchiat (mă refer la mesjul lung).
+#: src/top/top_nls.c:448
+msgid "On"
+msgstr "On"
+
+#: src/top/top_nls.c:449
+msgid "Off"
+msgstr "Off"
+
+#: src/top/top_nls.c:450
+#, c-format
+msgid "%s from %s"
+msgstr "%s de la %s"
+
+#: src/top/top_nls.c:451
+#, c-format
+msgid "Forest mode %s"
+msgstr "Modul arborescent %s"
+
+#: src/top/top_nls.c:452
+msgid "failed tty get"
+msgstr "nu s-a putut obține terminalul (tty)"
+
+#: src/top/top_nls.c:453
+#, c-format
+msgid "failed tty set: %s"
+msgstr "nu s-a putut configura terminalul (tty): %s"
+
+#: src/top/top_nls.c:454
+msgid "Choose field group (1 - 4)"
+msgstr "Alegeți grupul câmpului (de la 1 la 4)"
+
+#: src/top/top_nls.c:455
+msgid "Command disabled, 'A' mode required"
+msgstr "Comanda este dezactivată, este necesar modul „Aâ€"
+
+#: src/top/top_nls.c:456
+#, c-format
+msgid "Command disabled, activate %s with '-' or '_'"
+msgstr "Comanda a fost dezactivată, activaÈ›i %s cu „-†sau „_â€"
+
+#: src/top/top_nls.c:457
+msgid "No colors to map!"
+msgstr "Nu există culori aplicabile!"
+
+#: src/top/top_nls.c:458
+#, c-format
+msgid "Failed '%s' open: %s"
+msgstr "Deschiderea lui „%s†a eșuat: %s"
+
+#: src/top/top_nls.c:459
+#, c-format
+msgid "Wrote configuration to '%s'"
+msgstr "S-a scris configuraÈ›ia în „%sâ€"
+
+#: src/top/top_nls.c:460
+#, c-format
+msgid "Change delay from %.1f to"
+msgstr "Se modifică întârzierea de la %.1f la"
+
+#: src/top/top_nls.c:461
+#, c-format
+msgid "Show threads %s"
+msgstr "Afișează firele de execuție %s"
+
+#: src/top/top_nls.c:462
+#, c-format
+msgid "Irix mode %s"
+msgstr "Modul Irix %s"
+
+#: src/top/top_nls.c:463
+#, c-format
+msgid "PID to signal/kill [default pid = %d]"
+msgstr "PID pentru a trimite semnal sau a omorî [pid implicit=%d]"
+
+#: src/top/top_nls.c:464
+#, c-format
+msgid "Send pid %d signal [%d/sigterm]"
+msgstr "Trimite semnal la pid %d [%d/sigterm]"
+
+#: src/top/top_nls.c:465
+#, c-format
+msgid "Failed signal pid '%d' with '%d': %s"
+msgstr "Trimiterea semnalului „%2$d†către pid „%1$dâ€: %3$s a eÈ™uat"
+
+#: src/top/top_nls.c:466
+msgid "Invalid signal"
+msgstr "Semnal nevalid"
+
+#: src/top/top_nls.c:467
+#, c-format
+msgid "PID to renice [default pid = %d]"
+msgstr "PID a cărui valoare „nice†se va schimba [pid implicit = %d]"
+
+#: src/top/top_nls.c:468
+#, c-format
+msgid "Renice PID %d to value"
+msgstr "Schimbă valoarea „nice†a PID %d la valoarea"
+
+#: src/top/top_nls.c:469
+#, c-format
+msgid "Failed renice of PID %d to %d: %s"
+msgstr "Nu s-a putut schimba valoarea „nice†a PID %d în %d: %s"
+
+#: src/top/top_nls.c:470
+#, c-format
+msgid "Rename window '%s' to (1-3 chars)"
+msgstr "Redenumește fereastra „%s†la (1-3 caractere)"
+
+#: src/top/top_nls.c:471
+#, c-format
+msgid "Cumulative time %s"
+msgstr "Timpul cumulat %s"
+
+#: src/top/top_nls.c:472
+#, c-format
+msgid "Maximum tasks = %d, change to (0 is unlimited)"
+msgstr "Numărul maxim de sarcini = %d, schimbați la (0 este nelimitat)"
+
+#: src/top/top_nls.c:473
+msgid "Invalid maximum"
+msgstr "Maxim nevalid"
+
+#: src/top/top_nls.c:474
+msgid "Which user (blank for all)"
+msgstr "Care utilizator (necompletat, pentru toți)"
+
+#: src/top/top_nls.c:475
+msgid "Unknown command - try 'h' for help"
+msgstr "Comandă necunoscută - încercați „h†pentru ajutor"
+
+#: src/top/top_nls.c:476
+#, c-format
+msgid "scroll coordinates: y = %d/%d (tasks), x = %d/%d (fields)"
+msgstr "coordonatele derulării: y = %d/%d (sarcini), x = %d/%d (câmpuri)"
+
+#: src/top/top_nls.c:477
+msgid "failed memory allocate"
+msgstr "alocarea memoriei a eșuat"
+
+#: src/top/top_nls.c:478
+msgid "failed memory re-allocate"
+msgstr "re-alocarea memoriei a eșuat"
+
+#: src/top/top_nls.c:479
+msgid "Unacceptable floating point"
+msgstr "Număr zecimal inacceptabil"
+
+#: src/top/top_nls.c:480
+msgid "Invalid user"
+msgstr "Utilizator nevalid"
+
+#: src/top/top_nls.c:481
+msgid "forest view"
+msgstr "vizualizare arborescentă"
+
+#: src/top/top_nls.c:482
+msgid "failed pid maximum size test"
+msgstr "testul de dimensiune maximă a pid-ului a eșuat"
+
+#: src/top/top_nls.c:483
+msgid "failed number of cpus test"
+msgstr "testul numărului de cpus, a eșuat"
+
+#: src/top/top_nls.c:484
+#, c-format
+msgid "incompatible rcfile, you should delete '%s'"
+msgstr "fiÈ™ier rc incompatibil, ar trebui să È™tergeÈ›i „%sâ€"
+
+#: src/top/top_nls.c:485
+#, c-format
+msgid "window entry #%d corrupt, please delete '%s'"
+msgstr "intrarea de fereastră #%d este coruptă, trebuie să È™tergeÈ›i „%sâ€"
+
+#: src/top/top_nls.c:486
+msgid "Unavailable in secure mode"
+msgstr "Indisponibil în modul securizat"
+
+#: src/top/top_nls.c:487
+msgid "Only 1 cpu detected"
+msgstr "Doar 1 CPU a fost detectat"
+
+#: src/top/top_nls.c:488
+msgid "Unacceptable integer"
+msgstr "Număr întreg inacceptabil"
+
+#: src/top/top_nls.c:489
+msgid "conflicting process selections (U/p/u)"
+msgstr "selecții de proces în conflict (U/p/u)"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . kibibytes (1024 bytes)
+#: src/top/top_nls.c:492
+msgid "KiB"
+msgstr "Kio"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . mebibytes (1,048,576 bytes)
+#: src/top/top_nls.c:495
+msgid "MiB"
+msgstr "Mio"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . gibibytes (1,073,741,824 bytes)
+#: src/top/top_nls.c:498
+msgid "GiB"
+msgstr "Gio"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . tebibytes (1,099,511,627,776 bytes)
+#: src/top/top_nls.c:501
+msgid "TiB"
+msgstr "Tio"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . pebibytes (1,024 tebibytes)
+#: src/top/top_nls.c:504
+msgid "PiB"
+msgstr "Pio"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . exbibytes (1,024 pebibytes)
+#: src/top/top_nls.c:507
+msgid "EiB"
+msgstr "Eio"
+
+#: src/top/top_nls.c:508
+msgid "Threads"
+msgstr "Fire exec"
+
+#: src/top/top_nls.c:509
+msgid "Tasks"
+msgstr "Sarcini"
+
+#. Translation Hint: The following "word" is meant to represent either a single
+#. . cpu or all of the processors in a multi-processor computer
+#. . (should be exactly 6 characters, excluding leading % & colon)
+#: src/top/top_nls.c:513
+#, c-format
+msgid "%Cpu(s):"
+msgstr "%Cpu(s):"
+
+#. Translation Hint: The following "word" is meant to represent a single processor
+#. and 'the Cp' prefix will be combined with a core id: 'p', 'e' or 'u'
+#. . (if 'Cp' is translated, it must be exactly 2 characters long)
+#: src/top/top_nls.c:517
+#, c-format
+msgid "%%Cp%c%-3d:"
+msgstr "%%Cp%c%-3d:"
+
+#. Translation Hint: The following word "another" must have 1 trailing space
+#: src/top/top_nls.c:519
+msgid "another "
+msgstr "altul "
+
+#: src/top/top_nls.c:520
+msgid "Locate next inactive, use \"L\""
+msgstr "GăseÈ™te următorul inactiv, utilizaÈ›i „Lâ€"
+
+#: src/top/top_nls.c:521
+msgid "Locate string"
+msgstr "Găsește șirul"
+
+#: src/top/top_nls.c:522
+#, c-format
+msgid "%s\"%s\" not found"
+msgstr "%s„%s†nu a fost găsit"
+
+#: src/top/top_nls.c:523
+#, c-format
+msgid "width incr is %d, change to (0 default, -1 auto)"
+msgstr "incrementul de lățime este %d, schimbați la (0 implicit, -1 automat)"
+
+#: src/top/top_nls.c:524
+msgid "rcfile has inspect/other-filter error(s), save anyway?"
+msgstr ""
+"erori detectate în fișierul rc prin inspecție sau altă filtrare, îl salvați "
+"oricum?"
+
+#: src/top/top_nls.c:525
+#, c-format
+msgid "unrecognized field name '%s'"
+msgstr "nume de câmp nerecunoscut „%sâ€"
+
+#: src/top/top_nls.c:526
+msgid "even using field names only, window is now too small"
+msgstr "chiar și folosind numai nume de câmpuri, fereastra este acum prea mică"
+
+#: src/top/top_nls.c:527
+msgid "Open Files"
+msgstr "Deschide fișiere"
+
+#: src/top/top_nls.c:528
+msgid "NUMA Info"
+msgstr "Info NUMA"
+
+#: src/top/top_nls.c:529
+msgid "Log"
+msgstr "Jurnal"
+
+#: src/top/top_nls.c:530
+msgid ""
+"the '=' key will eventually show the actual file read or command(s) "
+"executed ..."
+msgstr ""
+"tasta „=†va afișa în cele din urmă fișierul citit sau comenzile executate..."
+
+#: src/top/top_nls.c:531
+msgid "demo"
+msgstr "demo"
+
+#: src/top/top_nls.c:532
+#, c-format
+msgid ""
+"This is simulated output representing the contents of some file or the "
+"output\n"
+"from some command. Exactly which commands and/or files are solely up to "
+"you.\n"
+"\n"
+"Although this text is for information purposes only, it can still be "
+"scrolled\n"
+"and searched like real output will be. You are encouraged to experiment "
+"with\n"
+"those features as explained in the prologue above.\n"
+"\n"
+"To enable real Inspect functionality, entries must be added to the end of "
+"the\n"
+"top personal personal configuration file. You could use your favorite "
+"editor\n"
+"to accomplish this, taking care not to disturb existing entries.\n"
+"\n"
+"Another way to add entries is illustrated below, but it risks overwriting "
+"the\n"
+"rcfile. Redirected echoes must not replace (>) but append (>>) to that "
+"file.\n"
+"\n"
+" /bin/echo -e \"pipe\\tOpen Files\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+" /bin/echo -e \"file\\tNUMA Info\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+" /bin/echo -e \"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr\" >> ~/."
+"toprc\n"
+"\n"
+"If you don't know the location or name of the top rcfile, use the 'W' "
+"command\n"
+"and note those details. After backing up the current rcfile, try issuing "
+"the\n"
+"above echoes exactly as shown, replacing '.toprc' as appropriate. The "
+"safest\n"
+"approach would be to use copy then paste to avoid any typing mistakes.\n"
+"\n"
+"Finally, restart top to reveal what actual Inspect entries combined with "
+"this\n"
+"new command can offer. The possibilities are endless, especially "
+"considering\n"
+"that 'pipe' type entries can include shell scripts too!\n"
+"\n"
+"For additional important information, please consult the top(1) man "
+"document.\n"
+"Then, enhance top with your very own customized 'file' and/or 'pipe' "
+"entries.\n"
+"\n"
+"Enjoy!\n"
+msgstr ""
+"Aceasta este o ieșire simulată care reprezintă conținutul unui fișier sau\n"
+"ieșirea de la o comandă. Exact ce comenzi și/sau fișiere depinde numai de "
+"dvs.\n"
+"\n"
+"Deși acest text are doar scop informativ, el poate fi derulat și căutat, așa "
+"cum\n"
+"va fi rezultatul real. Sunteți încurajat să experimentați cu aceste\n"
+"caracteristici, așa cum este explicat în prologul de mai sus.\n"
+"\n"
+"Pentru a activa funcționalitatea „Inspect†reală, trebuie adăugate intrări "
+"la\n"
+"sfârșitul fișierului personal de configurare al «top». Puteți să folosiți\n"
+"editorul dumneavoastră favorit pentru a realiza acest lucru, având grijă să "
+"nu\n"
+"modificați intrările existente.\n"
+"\n"
+"O altă modalitate de a adăuga intrări este ilustrată mai jos, dar riscă să\n"
+"suprascrie fiÈ™ierul „toprcâ€. Ecourile redirecÈ›ionate nu trebuie să "
+"înlocuiască\n"
+"(>) ci să adauge (>>) la acel fișier.\n"
+"\n"
+" /bin/echo -e \"pipe\\tOpen Files\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+" /bin/echo -e \"file\\tNUMA Info\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+" /bin/echo -e \"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr\" >> ~/."
+"toprc\n"
+"\n"
+"Dacă nu cunoașteți locația sau numele fișierului rc de sus, utilizați "
+"comanda\n"
+"„W†și notați aceste detalii. După ce ați făcut o copie de rezervă a "
+"fișierului\n"
+"rc curent, încercați să emiteți ecourile de mai sus exact așa cum se arată,\n"
+"înlocuind „.toprc†după caz. Cea mai sigură abordare ar fi să folosiți "
+"copierea\n"
+"și apoi lipirea pentru a evita orice greșeală de tastare.\n"
+"\n"
+"În cele din urmă, reporniți «top» pentru a descoperi ceea ce pot oferi "
+"intrările\n"
+"Inspect combinate cu această nouă comandă. Posibilitățile sunt nesfârșite, "
+"mai\n"
+"ales având în vedere că intrările de tip „pipe†pot include și scripturi "
+"shell!\n"
+"\n"
+"Pentru informații suplimentare importante, consultați documentul top(1) "
+"man.\n"
+"Apoi, îmbunătățiți «top» cu propriul dumneavoastră „fișier†și/sau intrări\n"
+"personalizate „pipeâ€.\n"
+"\n"
+"Distrați-vă!\n"
+
+#: src/top/top_nls.c:564
+msgid "to enable 'Y' press <Enter> then type 'W' and restart top"
+msgstr ""
+"pentru a activa „Y†apăsați <Enter> apoi tastați „W†și reporniți «top»"
+
+#: src/top/top_nls.c:565
+msgid "to enable 'Y' please consult the top man page (press Enter)"
+msgstr ""
+"pentru a activa „Yâ€, consultaÈ›i pagina de manual a «top» (apăsaÈ›i Enter)"
+
+#: src/top/top_nls.c:566
+#, c-format
+msgid "Selection failed with: %s\n"
+msgstr "Selectarea a eșuat cu: %s\n"
+
+#: src/top/top_nls.c:567
+#, c-format
+msgid "unable to inspect, pid %d not found"
+msgstr "nu se poate inspecta, pid %d nu a fost găsit"
+
+#: src/top/top_nls.c:568
+#, c-format
+msgid "inspect at PID [default pid = %d]"
+msgstr "efectuează inspecția la PID [pid implicit = %d]"
+
+#: src/top/top_nls.c:569
+#, c-format
+msgid "%s: %*d-%-*d lines, %*d-%*d columns, %lu bytes read"
+msgstr "%s: %*d-%-*d linii, %*d-%*d coloane, %lu octeți citiți"
+
+#: src/top/top_nls.c:570
+msgid "patience please, working ..."
+msgstr "aveți răbdare, se lucrează..."
+
+#: src/top/top_nls.c:571
+msgid "working, use Ctrl-C to end ..."
+msgstr "funcționează, utilizați Ctrl-C pentru a încheia..."
+
+#. Translation Hint: Below are 2 abbreviations which can be as long as needed:
+#. . FLD = FIELD, VAL = VALUE
+#: src/top/top_nls.c:574
+#, c-format
+msgid "add filter #%d (%s) as: [!]FLD?VAL"
+msgstr "adăugați filtrul #%d (%s) ca: [!]CÂMP?VALOARE"
+
+#: src/top/top_nls.c:575
+msgid "ignoring case"
+msgstr "ignoră diferența majuscule/minuscule"
+
+#: src/top/top_nls.c:576
+msgid "case sensitive"
+msgstr "respectă diferența majuscule/minuscule"
+
+#: src/top/top_nls.c:577
+msgid "duplicate filter was ignored"
+msgstr "filtrul duplicat a fost ignorat"
+
+#: src/top/top_nls.c:578
+#, c-format
+msgid "'%s' filter delimiter is missing"
+msgstr "delimitatorul filtrului „%s†lipsește"
+
+#: src/top/top_nls.c:579
+#, c-format
+msgid "'%s' filter value is missing"
+msgstr "valoarea filtrului „%s†lipsește"
+
+#: src/top/top_nls.c:580
+msgid "include"
+msgstr "include"
+
+#: src/top/top_nls.c:581
+msgid "exclude"
+msgstr "exclude"
+
+#: src/top/top_nls.c:582
+#, c-format
+msgid "<Enter> to resume, filters: %s"
+msgstr "<Enter> pentru a relua, filtre: %s"
+
+#: src/top/top_nls.c:583
+msgid "none"
+msgstr "niciunul"
+
+#. Translation Hint: The following word 'Node' should be exactly
+#. 4 characters, excluding leading %%, fmt chars & colon)
+#: src/top/top_nls.c:586
+#, c-format
+msgid "%%Node%-2d:"
+msgstr "%%Nod %-2d:"
+
+#: src/top/top_nls.c:587
+#, c-format
+msgid "expand which numa node (0-%d)"
+msgstr "extinde care nod numa (0-%d)"
+
+#: src/top/top_nls.c:588
+msgid "invalid numa node"
+msgstr "nod numa nevalid"
+
+#: src/top/top_nls.c:589
+msgid "sorry, NUMA extensions unavailable"
+msgstr "scuze, extensiile NUMA nu sunt disponibile"
+
+#. Translation Hint: 'Mem ' is an abbreviation for physical memory/ram
+#. . 'Swap' represents the linux swap file --
+#. . please make both translations exactly 4 characters,
+#. . padding with extra spaces as necessary
+#: src/top/top_nls.c:594
+msgid "Mem "
+msgstr "Mem "
+
+#: src/top/top_nls.c:595
+msgid "Swap"
+msgstr "Swap"
+
+#: src/top/top_nls.c:596
+#, c-format
+msgid "library failed memory statistics, at %d: %s"
+msgstr "biblioteca a eșuat în statisticile de memorie, la %d: %s"
+
+#: src/top/top_nls.c:597
+#, c-format
+msgid "library failed cpu statistics, at %d: %s"
+msgstr "biblioteca a eșuat în statisticile cpu, la %d: %s"
+
+#: src/top/top_nls.c:598
+#, c-format
+msgid "library failed pids statistics, at %d: %s"
+msgstr "biblioteca a eșuat în statisticile de pid, la %d: %s"
+
+#: src/top/top_nls.c:599
+#, c-format
+msgid "bad memory scaling arg '%s'"
+msgstr "argument de scalare a memoriei greÈ™it „%sâ€"
+
+#: src/top/top_nls.c:600
+#, c-format
+msgid "PID to collapse/expand [default pid = %d]"
+msgstr "PID pentru a restrânge sau extinde [pid implicit = %d]"
+
+#: src/top/top_nls.c:601
+msgid "wrong mode, command inactive"
+msgstr "mod greșit, comandă inactivă"
+
+#: src/top/top_nls.c:602
+msgid "saving prevents older top from reading, save anyway?"
+msgstr ""
+"Salvarea împiedică citirea configurației, versiunilor de top mai vechi, "
+"continuați oricum?"
+
+#: src/top/top_nls.c:603
+#, c-format
+msgid "failed sem_init() at %d: %s"
+msgstr "a eșuat sem_init() la %d: %s"
+
+#: src/top/top_nls.c:604
+#, c-format
+msgid "failed pthread_create() at %d: %s"
+msgstr "a eșuat pthread_create() la %d: %s"
+
+#: src/top/top_nls.c:605
+msgid "sorry, restricted namespace with reduced functionality"
+msgstr "scuze, spațiu de nume restricționat cu funcționalitate redusă"
+
+#: src/top/top_nls.c:606
+#, c-format
+msgid "set pid %d AGNI value to"
+msgstr "stabilește valoarea pid %d AGNI la"
+
+#: src/top/top_nls.c:607
+msgid "valid AGNI range is -20 to +19"
+msgstr "intervalul AGNI valid este de la -20 la +19"
+
+#: src/top/top_nls.c:608
+#, c-format
+msgid "autogroup open failed, %s"
+msgstr "deschiderea autogrupului a eșuat, %s"
+
+#: src/top/top_nls.c:609
+#, c-format
+msgid "autogroup write failed, %s"
+msgstr "scrierea în autogrup a eșuat, %s"
+
+#: src/top/top_nls.c:610
+#, c-format
+msgid "command line for pid %d, %s"
+msgstr "linia de comandă pentru pid %d, %s"
+
+#: src/top/top_nls.c:611
+#, c-format
+msgid "control groups for pid %d, %s"
+msgstr "grupuri de control pentru pid %d, %s"
+
+#: src/top/top_nls.c:612
+#, c-format
+msgid "environment for pid %d, %s"
+msgstr "variabila de mediu pentru pid %d, %s"
+
+#: src/top/top_nls.c:613
+#, c-format
+msgid "namespaces for pid %d, %s"
+msgstr "spații de nume pentru pid %d, %s"
+
+#: src/top/top_nls.c:614
+msgid "n/a"
+msgstr "nu este disponibil"
+
+#: src/top/top_nls.c:615
+#, c-format
+msgid "supplementary groups for pid %d, %s"
+msgstr "grupuri suplimentare pentru pid %d, %s"
+
+#: src/top/top_nls.c:616
+msgid "message log, last 10 messages:"
+msgstr "jurnal de mesaje, ultimele 10 mesaje:"
+
+# ************************
+# R-GC, scrie:
+# acest mesaj, poate să fie vizualizat
+# rulînd «top» cu sau fără opțiuni, și
+# pulsînd tasta „h†(autorii de «top» o
+# numesc comanda h), același drac,
+# cu altă haină ;)
+# ====
+# Am fost nevoit să șterg unul din spațiile
+# inițiale al rîndurilor mesajului, pt. a
+# putea încăpea în „cușca†de 80x24.
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The next several text groups contain special escape sequences
+#. . representing values used to index a table at run-time.
+#. .
+#. . Each such sequence consists of a tilde (~) followed by an ascii
+#. . number in the range of '1' - '8'. Examples are '~2', '~8', etc.
+#. . These escape sequences must never themselves be translated but
+#. . could be deleted.
+#. .
+#. . If you remove these escape sequences (both tilde and number) it
+#. . would make translation easier. However, the ability to display
+#. . colors and bold text at run-time will have been lost.
+#. .
+#. . Additionally, each of these text groups was designed to display
+#. . in a 80x24 terminal window. Hopefully, any translations will
+#. . adhere to that goal lest the translated text be truncated.
+#. .
+#. . If you would like additional information regarding these strings,
+#. . please see the prologue to the show_special function in the top.c
+#. . source file.
+#. .
+#. . Caution:
+#. . The next three items represent pages for interacting with a user.
+#. . In all cases, the last lines of text must be treated with care.
+#. .
+#. . They must not end with a newline character so that at runtime the
+#. . cursor will remain on that final text line.
+#. .
+#. . Also, the special sequences (tilde+number) must not appear on the
+#. . last line (the one without the newline). So please avoid any line
+#. . wraps that could place them there.
+#. .
+#: src/top/top_nls.c:661
+#, c-format
+msgid ""
+"Help for Interactive Commands~2 - %s\n"
+"Window ~1%s~6: ~1Cumulative mode ~3%s~2. ~1System~6: ~1Delay ~3%.1f secs~2; "
+"~1Secure mode ~3%s~2.\n"
+"\n"
+" Z~5,~1B~5,E,e Global: '~1Z~2' colors; '~1B~2' bold; '~1E~2'/'~1e~2' "
+"summary/task memory scale\n"
+" l,t,m,I,0 Toggle: '~1l~2' load avg; '~1t~2' task/cpu; '~1m~2' memory; "
+"'~1I~2' Irix; '~10~2' zeros\n"
+" 1,2,3,4,5 Toggle: '~11~2/~12~2/~13~2' cpu/numa views; '~14~2' cpus "
+"abreast; '~15~2' P/E-cores\n"
+" f,X Fields: '~1f~2' add/remove/order/sort; '~1X~2' increase fixed-"
+"width fields\n"
+"\n"
+" L,&,<,> . Locate: '~1L~2'/'~1&~2' find/again; Move sort column: "
+"'~1<~2'/'~1>~2' left/right\n"
+" R,H,J,C . Toggle: '~1R~2' Sort; '~1H~2' Threads; '~1J~2' Num justify; "
+"'~1C~2' Coordinates\n"
+" c,i,S,j . Toggle: '~1c~2' Cmd name/line; '~1i~2' Idle; '~1S~2' Time; "
+"'~1j~2' Str justify\n"
+" x~5,~1y~5 . Toggle highlights: '~1x~2' sort field; '~1y~2' running "
+"tasks\n"
+" z~5,~1b~5 . Toggle: '~1z~2' color/mono; '~1b~2' bold/reverse (only if "
+"'x' or 'y')\n"
+" u,U,o,O . Filter by: '~1u~2'/'~1U~2' effective/any user; '~1o~2'/'~1O~2' "
+"other criteria\n"
+" n,#,^O . Set: '~1n~2'/'~1#~2' max tasks displayed; Show: ~1Ctrl~2+'~1O~2' "
+"other filter(s)\n"
+" V,v,F . Toggle: '~1V~2' forest view; '~1v~2' hide/show children; '~1F~2' "
+"keep focused\n"
+"\n"
+"%s ^G,K,N,U View: ctl groups ~1^G~2; cmdline ~1^K~2; environment ~1^N~2; "
+"supp groups ~1^U~2\n"
+" Y,!,^E,P Inspect '~1Y~2'; Combine Cpus '~1!~2'; Scale time ~1^E~2; View "
+"namespaces ~1^P~2\n"
+" W,q Write config file '~1W~2'; Quit '~1q~2'\n"
+" ( commands shown with '.' require a ~1visible~2 task display "
+"~1window~2 ) \n"
+"Press '~1h~2' or '~1?~2' for help with ~1Windows~2,\n"
+"Type 'q' or <Esc> to continue "
+msgstr ""
+"Ajutor pentru comenzile interactive~2 - %s\n"
+"Fereastra ~1%s~6: ~1Mod cumulativ ~3%s~2. ~1Sistem~6: ~1Întîrz. ~3%.1f "
+"sec~2; ~1Mod securizat ~3%s~2.\n"
+"\n"
+" Z~5,~1B~5,E,e Global: „~1Z~2†culori; „~1B~2†aldin; „~1E~2â€/„~1e~2†"
+"rezumat/scalare sarcini mem\n"
+" l,t,m,I,0 Comut.: „~1l~2†încărc. medie; „~1t~2†sarcini/cpu; „~1m~2†mem; "
+"„~1I~2†Irix; „~10~2†zerouri\n"
+" 1,2,3,4,5 Comut.: „~11~2/~12~2/~13~2†cpu/vizual. numa; „~14~2†cpu pe "
+"rând; '~15~2' P/E-nuclee\n"
+" f,X Câmp: „~1f~2†adaugă/elim./ord./sort.; „~1X~2†mărește câmp cu "
+"lățime fixă\n"
+"\n"
+" L,&,<,> . Căutare: „~1L~2â€/„~1&~2†găseÈ™te/din nou; Mută col. sort.: "
+"„~1<~2â€/„~1>~2†stg./dr.\n"
+" R,H,J,C . Comut.: „~1R~2†Sortare; „~1H~2†Fire exec; „~1J~2†Aliniere nr.; "
+"„~1C~2†Coordonate\n"
+" c,i,S,j . Comut.: „~1c~2†Cmd nume/linie; „~1i~2†Inactiv; „~1S~2†Timp; "
+"„~1j~2†Aliniere șir\n"
+" x~5,~1y~5 . Comut. evidențieri: „~1x~2†sortare câmp; „~1y~2†sarcini "
+"în execuție\n"
+" z~5,~1b~5 . Comut.: „~1z~2†color/mono; „~1b~2†aldin/invers (doar dacă "
+"„x†sau „yâ€)\n"
+" u,U,o,O . Filtr. după: „~1u~2â€/„~1U~2†utilizator efectiv/oricare; „~1o~2â€/"
+"„~1O~2†alt criteriu\n"
+" n,#,^O . Def.: „~1n~2â€/„~1#~2†max sarcini afiÈ™ate; AfiÈ™are: "
+"~1Ctrl~2+„~1O~2†alte filtre\n"
+" V,v,F . Comut.: „~1V~2†vizual. arbores.; „~1v~2†asc/afiș copil; „~1F~2†"
+"menține focal\n"
+"\n"
+"%s ^G,K,N,U Vizualiz.: grupuri ctl ~1^G~2; linie cmd ~1^K~2; mediu ~1^N~2; "
+"grupuri supl ~1^U~2\n"
+" Y,!,^E,P Inspect „~1Y~2â€; Combină Cpus „~1!~2â€; Scală timp ~1^E~2; Vizual "
+"spații_nume ~1^P~2\n"
+" W,q Scrie fiÈ™ierul config „~1W~2â€;IeÈ™ire '~1q~2'\n"
+" (comenzile cu „.†necesită o ~1fereastră~2 de afișare a sarcinii "
+"~1vizibilă~2) \n"
+"Apăsați „~1h~2†sau „~1?~2†pentru ajutor cu ~1Fereastra~2,\n"
+"Tastați „q†sau <Esc> pentru a continua "
+
+#: src/top/top_nls.c:687
+#, c-format
+msgid ""
+"Help for Windows / Field Groups~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+". Use multiple ~1windows~2, each with separate config opts (color,fields,"
+"sort,etc)\n"
+". The 'current' window controls the ~1Summary Area~2 and responds to your "
+"~1Commands~2\n"
+" . that window's ~1task display~2 can be turned ~1Off~2 & ~1On~2, growing/"
+"shrinking others\n"
+" . with ~1NO~2 task display, some commands will be ~1disabled~2 "
+"('i','R','n','c', etc)\n"
+" until a ~1different window~2 has been activated, making it the 'current' "
+"window\n"
+". You ~1change~2 the 'current' window by: ~1 1~2) cycling forward/backward;"
+"~1 2~2) choosing\n"
+" a specific field group; or~1 3~2) exiting the color mapping or fields "
+"screens\n"
+". Commands ~1available anytime -------------~2\n"
+" A . Alternate display mode toggle, show ~1Single~2 / ~1Multiple~2 "
+"windows\n"
+" g . Choose another field group and make it 'current', or change "
+"now\n"
+" by selecting a number from: ~1 1~2 =%s;~1 2~2 =%s;~1 3~2 =%s; "
+"or~1 4~2 =%s\n"
+". Commands ~1requiring~2 '~1A~2' mode~1 -------------~2\n"
+" G . Change the ~1Name~5 of the 'current' window/field group\n"
+" ~1*~4 a , w . Cycle through all four windows: '~1a~5' Forward; '~1w~5' "
+"Backward\n"
+" ~1*~4 - , _ . Show/Hide: '~1-~5' ~1Current~2 window; '~1_~5' all "
+"~1Visible~2/~1Invisible~2\n"
+" The screen will be divided evenly between task displays. But you can "
+"make\n"
+" some ~1larger~2 or ~1smaller~2, using '~1n~2' and '~1i~2' commands. Then "
+"later you could:\n"
+" ~1*~4 = , + . Rebalance tasks: '~1=~5' ~1Current~2 window; '~1+~5' "
+"~1Every~2 window\n"
+" (this also forces the ~1current~2 or ~1every~2 window to "
+"become visible)\n"
+"\n"
+"In '~1A~2' mode, '~1*~4' keys are your ~1essential~2 commands. Please try "
+"the '~1a~2' and '~1w~2'\n"
+"commands plus the 'g' sub-commands NOW. Press <Enter> to make 'Current' "
+msgstr ""
+"Ajutor pentru ferestre / grupuri de câmpuri~2 - \"Fereastra curentă\" = ~1 "
+"%s ~6\n"
+"\n"
+". Utilizați multiple ~1ferestre~2, fiecare cu opț, separate (culoare, "
+"câmpuri, sort., șa)\n"
+". Fereastra „actuală†controlează ~1Zona de rezumat~2 și răspunde la "
+"~1Comenzile~2 dvs.\n"
+". Afișarea sarcinilor din această fereastră poate fi ~1Activ~2/~1Dezactiv~2, "
+"maxim/minim \n"
+"pe cele ~1FĂRĂ~2 afișare de sarcini, unele comenzi vor fi ~1dezactivate~2 "
+"('i','R','n',\n"
+"'c', șa) până când va fi activată o ~1altă fereastră~2, devenind fereastra "
+"„actualăâ€\n"
+". ~1Schimbați~2 fereastra „actuală†prin: ~1 1~2) rotind înainte/înapoi;~1 "
+"2~2) alegând\n"
+"un câmp specific; sau~1 3~2) ieșind din ecranele de asociere a culorilor sau "
+"câmpuri\n"
+". Comenzi ~1disponibile oricând -------------~2\n"
+" A Comutare alternativă a modului de afișare: ~1Una~2 / "
+"~1Multiple~2 ferestre\n"
+" g Alegeți un alt grup de câmpuri și faceți-l „actual†sau "
+"modificați-l \n"
+" acum, selectând un număr din: ~1 1~2 =%s;~1 2~2 =%s;~1 3~2 =%s; "
+"sau~1 4~2 =%s\n"
+". Comenzi ~1care necesită ~2modul '~1A~2'~1 -------------~2\n"
+" G SchimbaÈ›i ~1Numele~5 ferestrei/grupului de câmpuri „actualâ€\n"
+" ~1*~4 a , w Parcurgeți toate cele patru ferestre: '~1a~5' Înainte; "
+"'~1w~5' ÃŽnapoi\n"
+" ~1*~4 - , _ Afiș/Asc: '~1-~5' ~2Feraastra~1 actuală; '~1_~5' toate "
+"~1Vizibile~2/~1Invizibile~2\n"
+" Ecranul va fi împărțit în mod egal între afișările de sarcini. Dar puteți "
+"face\n"
+"unele ~1mai mari~2 sau ~1mai mici~2, utilizând comenzile '~1n~2' și '~1i~2'. "
+"Apoi, puteți face:\n"
+" ~1*~4 = , + Reechilibrați sarcinile: '~1=~5' ~2Fereastra~1 actuală; "
+"'~1+~5' ~1Fiecare~2 fereastră\n"
+"(acest lucru forțează, de asemenea, ~1actuala~2/~1fiecare~2 fereastră să "
+"devină vizibilă)\n"
+"\n"
+"În modul '~1A~2', tastele '~1*~4' sunt comenzile dvs ~1esențiale~2. "
+"Încercați cmds '~1a~2' și '~1w~2'\n"
+"plus subcomenzile 'g' ACUM. Apăsați <Enter> pentru a o face fereastra "
+"„Actuală†"
+
+#. Translation Notes ------------------------------------------------
+#. . The following 'Help for color mapping' simulated screen should
+#. . probably NOT be translated. It is terribly hard to follow in
+#. . this form and any translation could produce unpleasing results
+#. . that are unlikely to parallel the running top program.
+#. .
+#. . If you decide to proceed with translation, please take care
+#. . to not disturb the spaces and the tilde + number delimiters.
+#. .
+#: src/top/top_nls.c:722
+#, c-format
+msgid ""
+"Help for color mapping~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+" color - 04:25:44 up 8 days, 50 min, 7 users, load average:\n"
+" Tasks:~3 64 ~2total,~3 2 ~3running,~3 62 ~2sleeping,~3 0 ~2stopped,"
+"~3\n"
+" %%Cpu(s):~3 76.5 ~2user,~3 11.2 ~2system,~3 0.0 ~2nice,~3 12.3 "
+"~2idle~3\n"
+" ~1 Nasty Message! ~4 -or- ~1Input Prompt~5\n"
+" ~1 PID TTY PR NI %%CPU TIME+ VIRT SWAP S COMMAND ~6\n"
+" 17284 ~8pts/2 ~7 8 0 0.0 0:00.75 1380 0 S /bin/bash ~8\n"
+" ~1 8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z~7\n"
+" 11005 ~8? ~7 9 0 0.0 0:02.50 2852 1008 S amor -sessi~8\n"
+" available toggles: ~1B~2 =disable bold globally (~1%s~2),\n"
+" ~1z~2 =color/mono (~1%s~2), ~1b~2 =tasks \"bold\"/reverse (~1%s~2)\n"
+"\n"
+"1) Select a ~1target~2 as an upper case letter, ~1current target~2 is ~1 %c "
+"~4:\n"
+" S~2 = Summary Data,~1 M~2 = Messages/Prompts,\n"
+" H~2 = Column Heads,~1 T~2 = Task Information\n"
+"2) Select a ~1color~2 as a number or use the up/down arrow keys\n"
+" to raise/lower the %d colors value, ~1current color~2 is ~1 %d ~4:\n"
+" 0~2 = black,~1 1~2 = red, ~1 2~2 = green,~1 3~2 = yellow,\n"
+" 4~2 = blue, ~1 5~2 = magenta,~1 6~2 = cyan, ~1 7~2 = white\n"
+"\n"
+"3) Then use these keys when finished:\n"
+" 'q' or <Esc> to abort changes to window '~1%s~2'\n"
+" 'a' or 'w' to commit & change another, <Enter> to commit and end "
+msgstr ""
+"Ajutor pentru asocierea culorilor~2 - „Fereastra curentă†= ~1 %s ~6\n"
+"\n"
+" culoare - 04:25:44 funcționează 8 zile, 50 min, 7 utilizatori, "
+"încărcarea medie:\n"
+" Sarcini:~3 64 ~2total,~3 2 ~3rulând,~3 62 ~2dormind,~3 0 ~2oprite,"
+"~3\n"
+" %%Cpu(s):~3 76.5 ~2utilizator,~3 11.2 ~2sistem,~3 0.0 ~2„niceâ€,~3 "
+"12.3 ~2inactiv~3\n"
+" ~1 Mesaj urât! ~4 -sau- ~1Solicitare de intrare~5\n"
+" ~1 PID TTY PR NI %%CPU TIMP+ VIRT SWAP S COMANDA ~6\n"
+" 17284 ~8pts/2 ~7 8 0 0.0 0:00.75 1380 0 S /bin/bash ~8\n"
+" ~1 8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z~7\n"
+" 11005 ~8? ~7 9 0 0.0 0:02.50 2852 1008 S amor -sessi~8\n"
+" comutatoare disponibile: ~1B~2 =dezact. global caracterele aldine "
+"(~1%s~2),\n"
+" ~1z~2 =color/mono (~1%s~2), ~1b~2 =sarcini „aldinâ€/invers (~1%s~2)\n"
+"\n"
+"1) Selectați o ~1țintă~2 cu literele în majusculă, ~1ținta curentă~2 este ~1 "
+"%c ~4:\n"
+" S~2 = Rezumat de date,~1 M~2 = Mesaje/Solicitări,\n"
+" H~2 = Titluri coloane,~1 T~2 = Informații despre sarcini\n"
+"2) Selectați o ~1culoare~2 ca un număr sau utilizați tastele săgeți sus/jos\n"
+" pt. a crește/micșora valoarea culorii %d, ~1culoarea curentă~2 este ~1 %d "
+"~4:\n"
+" 0~2 = negru,~1 1~2 = roșu, ~1 2~2 = verde,~1 3~2 = galben,\n"
+" 4~2 = albastru, ~1 5~2 = fucsia,~1 6~2 = cian, ~1 7~2 = alb\n"
+"\n"
+"3) Apoi, când ați terminat, utilizați aceste taste:\n"
+" „q†sau <Esc> pentru a anula modificările aduse ferestrei „~1%s~2â€\n"
+" „a'â€sau „w†pt. a efectua modificările È™i-a trece la alta, <Enter>pt. a "
+"efectua modificările și ieși "
+
+# R-GC, scrie:
+# MULÈšUMESC, AUTORILOR pentru
+# „avizarea†asupra acestui mesaj!
+# ***
+# l-am tradus pe jumătate, și i-am șters
+# unul dintre spațiile inițiale, pt. a se
+# putea încadra în blestematele
+# 80 de caractere/coloane.
+# ===
+# Chestia e, că prin artă de magie,
+# apare inclus/insertat în interiorul
+# altui mesaj mai amplu...
+#. Translation Hint: As is true for the text above, the "keys" shown to the left and
+#. . also embedded in the translatable text (along with escape seqs)
+#. . should never themselves be translated.
+#: src/top/top_nls.c:751
+msgid ""
+" d,k,r,^R '~1d~2' set delay; '~1k~2' kill; '~1r~2' renice; ~1Ctrl~2+'~1R~2' "
+"renice autogroup\n"
+msgstr ""
+" d,k,r,^R „~1d~2†def. întârzierea; „~1k~2†omoară; „~1r~2†renice; "
+"~1Ctrl~2+„~1R~2†renice autogrup\n"
+
+#. Translation Hint:
+#. . This Fields Management header should be 3 lines long so as
+#. . to allow 1 blank line before the fields & descriptions.
+#. . If absolutely necessary, 4 lines could be used (but never more).
+#. .
+#: src/top/top_nls.c:759
+#, c-format
+msgid ""
+"Fields Management~2 for window ~1%s~6, whose current sort field is ~1%s~2\n"
+" Navigate with Up/Dn, Right selects for move then <Enter> or Left "
+"commits,\n"
+" 'd' or <Space> toggles display, 's' sets sort. Use 'q' or <Esc> to end!\n"
+msgstr ""
+"Gestionarea câmpurilor~2 pentru fereastra ~1%s~6, al cărei câmp de sortare "
+"curent este ~1%s~2\n"
+" Navigați cu Sus/Jos; Cu Dreapta selectați pentru mutare, apoi <Enter> sau "
+"Stânga pentru a o efectua,\n"
+" „d†sau <Spațiu> comută afișarea, „s†activează sortarea. Utilizați „q†"
+"sau <Esc> pentru a ieși!\n"
+
+#. Translation Hint:
+#. . The next 5 items must each be translated as a single line.
+#. .
+#: src/top/top_nls.c:767
+#, c-format
+msgid ""
+"%s:~3 %3u ~2total,~3 %3u ~2running,~3 %3u ~2sleeping,~3 %3u ~2stopped,~3 %3u "
+"~2zombie~3\n"
+msgstr ""
+"%s:~3 %3u ~2total,~3 %3u ~2rulând,~3 %3u ~2dormind,~3 %3u ~2oprit(e),~3 %3u "
+"~2zombi~3\n"
+
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt
+#: src/top/top_nls.c:773
+#, c-format
+msgid ""
+"%s~3 %#5.1f ~2us,~3 %#5.1f ~2sy,~3 %#5.1f ~2ni,~3 %#5.1f ~2id,~3 %#5.1f ~2wa,"
+"~3 %#5.1f ~2hi,~3 %#5.1f ~2si~3 ~1"
+msgstr ""
+"%s~3 %#5.1f ~2us,~3 %#5.1f ~2sy,~3 %#5.1f ~2ni,~3 %#5.1f ~2id,~3 %#5.1f ~2wa,"
+"~3 %#5.1f ~2hi,~3 %#5.1f ~2si~3 ~1"
+
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt, st = steal time
+#: src/top/top_nls.c:779
+#, c-format
+msgid ""
+"%s~3%#5.1f ~2us,~3%#5.1f ~2sy,~3%#5.1f ~2ni,~3%#5.1f ~2id,~3%#5.1f ~2wa,"
+"~3%#5.1f ~2hi,~3%#5.1f ~2si,~3%#5.1f ~2st~3 ~1"
+msgstr ""
+"%s~3%#5.1f ~2us,~3%#5.1f ~2sy,~3%#5.1f ~2ni,~3%#5.1f ~2id,~3%#5.1f ~2wa,"
+"~3%#5.1f ~2hi,~3%#5.1f ~2si,~3%#5.1f ~2st~3 ~1"
+
+#. Translation Hint: next 2 must be treated together, with WORDS above & below aligned
+#: src/top/top_nls.c:783
+#, c-format
+msgid ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used,~3 %9.9s~2buff/cache~3 "
+"~1 "
+msgstr ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2liberă,~3 %9.9s~2utilizată,~3 %9.9s~2buff/"
+"cache~3 ~1 "
+
+#: src/top/top_nls.c:785
+#, c-format
+msgid ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used.~3 %9.9s~2avail %s~3"
+msgstr ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2liberă,~3 %9.9s~2utilizată.~3 %9.9s~2dispo "
+"%s~3"
+
+#. Translation Hint:
+#. . The next 2 headers for 'Inspection' must each be 3 lines or less
+#. .
+#: src/top/top_nls.c:791
+#, c-format
+msgid ""
+"Inspection~2 Pause at: pid ~1%d~6, running ~1%s~6\n"
+"Use~2: left/right then <Enter> to ~1select~5 an option; 'q' or <Esc> to "
+"~1end~5 !\n"
+"Options~2: ~1%s\n"
+msgstr ""
+"Inspectare~2 Suspendare: pid ~1%d~6, în execuție ~1%s~6\n"
+"Utilizați~2: stânga/dreapta apoi <Enter> pentru a ~1selecta~5 o opțiune; "
+"„q†sau <Esc> pentru ~1a ieși~5 !\n"
+"Opțiuni~2: ~1%s\n"
+
+#: src/top/top_nls.c:796
+#, c-format
+msgid ""
+"Inspection~2 View at pid: ~1%s~3, running ~1%s~3. Locating: ~1%s~6\n"
+"Use~2: left/right/up/down/etc to ~1navigate~5 the output; 'L'/'&' to "
+"~1locate~5/~1next~5.\n"
+"Or~2: <Enter> to ~1select another~5; 'q' or <Esc> to ~1end~5 !\n"
+msgstr ""
+"Inspectare~2 Vizualizare a pid: ~1%s~3, în execuție ~1%s~3. Poziția: "
+"~1%s~6\n"
+"UtilizaÈ›i~2: stânga/dreapta/sus/jos/etc pentru a ~1naviga~5 la ieÈ™ire; „Lâ€/"
+"„&†pentru a ~1trece la~5/~1următoarea~5.\n"
+"Sau~2: <Enter> pentru a ~1selecta altă~5; „q†sau <Esc> pentru ~1a "
+"ieși~5 !\n"
+
+#: src/uptime.c:51 src/uptime.c:123
+msgid "Cannot get system uptime"
+msgstr "Nu se poate obține timpul de funcționare a sistemului"
+
+# R-GC, scrie:
+# acest mesaj și următoarele, pot să fie
+# vizualizate, rulînd comanda:
+# «uptime --help»
+#: src/uptime.c:67
+msgid " -p, --pretty show uptime in pretty format\n"
+msgstr ""
+" -p, --pretty afișează timpul de funcționare într-un format amiabil\n"
+
+#: src/uptime.c:69
+msgid " -s, --since system up since\n"
+msgstr " -s, --since sistemul rulează de atunci\n"
+
+# R-GC, scrie:
+# acest mesaj și următoarele, pot să fie
+# vizualizate, rulînd comanda:
+# «vmstat --help»
+#: src/vmstat.c:220
+#, c-format
+msgid " %s [options] [delay [count]]\n"
+msgstr " %s [opțiuni] [întârziere [număr]]\n"
+
+#: src/vmstat.c:223
+msgid " -a, --active active/inactive memory\n"
+msgstr " -a, --active memorie activă/inactivă\n"
+
+#: src/vmstat.c:224
+msgid " -f, --forks number of forks since boot\n"
+msgstr " -f, --forks numărul de bifurcări de la pornire\n"
+
+#: src/vmstat.c:225
+msgid " -m, --slabs slabinfo\n"
+msgstr " -m, --slabs info-slabs\n"
+
+#: src/vmstat.c:226
+msgid " -n, --one-header do not redisplay header\n"
+msgstr " -n, --one-header nu reafișează antetul(titlurile)\n"
+
+#: src/vmstat.c:227
+msgid " -s, --stats event counter statistics\n"
+msgstr " -s, --stats statistici contor de evenimente\n"
+
+#: src/vmstat.c:228
+msgid " -d, --disk disk statistics\n"
+msgstr " -d, --disk statisticile discului\n"
+
+#: src/vmstat.c:229
+msgid " -D, --disk-sum summarize disk statistics\n"
+msgstr ""
+" -D, --disk-sum rezumatul statisticilor de utilizare a discului\n"
+
+#: src/vmstat.c:230
+msgid " -p, --partition <dev> partition specific statistics\n"
+msgstr ""
+" -p, --partition <partiția>\n"
+" statistici specifice partiției\n"
+
+#: src/vmstat.c:231
+msgid " -S, --unit <char> define display unit\n"
+msgstr " -S, --unit <caracter> definește unitatea de afișare(k, K, m sau M)\n"
+
+#: src/vmstat.c:232
+msgid " -w, --wide wide output\n"
+msgstr " -w, --wide ieșire în format mare (detaliat)\n"
+
+#: src/vmstat.c:233
+msgid " -t, --timestamp show timestamp\n"
+msgstr " -t, --timestamp afișează marcajul de timp\n"
+
+#: src/vmstat.c:234
+msgid " -y, --no-first skips first line of output\n"
+msgstr " -y, --no-first omite prima linie de ieșire\n"
+
+#: src/vmstat.c:253
+msgid ""
+"procs -----------memory---------- ---swap-- -----io---- -system-- -------"
+"cpu-------"
+msgstr ""
+"procese ----------memorie--------- ---swap-- ---in/ieÈ™-- -sistem-- ------"
+"cpu----"
+
+#: src/vmstat.c:255
+msgid ""
+"--procs-- -----------------------memory---------------------- ---swap-- -----"
+"io---- -system-- ----------cpu----------"
+msgstr ""
+"-procese- -----------------------memorie--------------------- ---swap-- ---"
+"in/ieÈ™-- -sistem-- ----------cpu----------"
+
+#: src/vmstat.c:256 src/vmstat.c:619
+msgid " -----timestamp-----"
+msgstr " ----marcaj timp----"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:275
+msgid "r"
+msgstr "r"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:277
+msgid "b"
+msgstr "b"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:279
+msgid "swpd"
+msgstr "swpd"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:281
+msgid "free"
+msgstr "liber"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:283
+msgid "inact"
+msgstr "inact"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:285
+msgid "buff"
+msgstr "buff"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:287
+msgid "active"
+msgstr "activă"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:289
+msgid "cache"
+msgstr "cache"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:291
+msgid "si"
+msgstr "sin"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:293
+msgid "so"
+msgstr "so"
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:295
+msgid "bi"
+msgstr "bin"
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:297
+msgid "bo"
+msgstr "bo"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:299
+msgid "in"
+msgstr "in"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:301
+msgid "cs"
+msgstr "cs"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:303
+msgid "us"
+msgstr "us"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:305
+msgid "sy"
+msgstr "sy"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:307
+msgid "id"
+msgstr "id"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:309
+msgid "wa"
+msgstr "wa"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:311
+msgid "st"
+msgstr "st"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:313
+msgid "gu"
+msgstr "gu"
+
+#: src/vmstat.c:374 src/vmstat.c:870
+msgid "Unable to create vmstat structure"
+msgstr "Nu se poate crea structura vmstat"
+
+#: src/vmstat.c:376 src/vmstat.c:866 src/vmstat.c:919
+msgid "Unable to create system stat structure"
+msgstr "Nu se poate crea structura statistică a sistemului"
+
+#: src/vmstat.c:380
+msgid "Unable to get uptime"
+msgstr "Nu s-a putut obține timpul de funcționare"
+
+#: src/vmstat.c:391 src/vmstat.c:472 src/vmstat.c:874
+msgid "Unable to select memory information"
+msgstr "Nu se pot selecta informațiile de memorie"
+
+#: src/vmstat.c:405 src/vmstat.c:458 src/vmstat.c:868
+msgid "Unable to select stat information"
+msgstr "Nu se pot selecta informațiile statistice"
+
+#. Translation Hint: Translating folloging disk partition
+#. * header fields that follow (marked with max x chars) might
+#. * not work, unless manual page is translated as well.
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:565
+msgid "reads"
+msgstr "citiri"
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:567
+msgid "read sectors"
+msgstr "citește sectoarele"
+
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:569
+msgid "writes"
+msgstr "scrieri"
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:571
+msgid "requested writes"
+msgstr "solicitare scrieri"
+
+#: src/vmstat.c:584 src/vmstat.c:687 src/vmstat.c:813
+msgid "Unable to create diskstat structure"
+msgstr "Nu se poate crea structura statistică a discului"
+
+#: src/vmstat.c:587 src/vmstat.c:593
+#, c-format
+msgid "Disk/Partition %s not found"
+msgstr "Discul sau partiția %s nu a fost găsite"
+
+#: src/vmstat.c:616
+msgid ""
+"disk- ------------reads------------ ------------writes----------- -----"
+"IO------"
+msgstr ""
+"disc- ------------citiri----------- ------------scrieri---------- ---In/"
+"IeÈ™----"
+
+#: src/vmstat.c:618
+msgid ""
+"disk- -------------------reads------------------- -------------------"
+"writes------------------ ------IO-------"
+msgstr ""
+"disc- -------------------citiri------------------ -------------------"
+"scrieri----------------- ----In/IeÈ™-----"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:637 src/vmstat.c:645
+msgid "total"
+msgstr "total"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:639 src/vmstat.c:647
+msgid "merged"
+msgstr "mixate"
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:641 src/vmstat.c:649
+msgid "sectors"
+msgstr "sectors"
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:643 src/vmstat.c:651
+msgid "ms"
+msgstr "ms"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:653
+msgid "cur"
+msgstr "cur"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:655
+msgid "sec"
+msgstr "sec"
+
+#: src/vmstat.c:694 src/vmstat.c:815
+msgid "Unable to retrieve disk statistics"
+msgstr "Nu se pot prelua statisticile discului"
+
+#. Translation Hint: Translating folloging slab fields that
+#. * follow (marked with max x chars) might not work, unless
+#. * manual page is translated as well.
+#. Translation Hint: max 24 chars
+#: src/vmstat.c:741
+msgid "Cache"
+msgstr "Cache"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:743
+msgid "Num"
+msgstr "Num"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:745
+msgid "Total"
+msgstr "Total"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:747
+msgid "Size"
+msgstr "Dim."
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:749
+msgid "Pages"
+msgstr "Pagini"
+
+# R-GC, scrie:
+# în versiunea ulterioară a procps,
+# de urmat exemplul echipei
+# poloneze, pentru a afișa mesajele
+# informative =n „sistemul europeanâ€
+# și nu în cel „american†cum este în
+# această versiune; adică:
+# acum →
+# X total citiri
+# Y discuri
+# Z partiții
+# ***
+# vizualizare „europeană†→
+# Total citiri: X
+# Discuri: Y
+# Partiții: Z
+#: src/vmstat.c:836
+#, c-format
+msgid "%13d disks\n"
+msgstr "%13d discuri\n"
+
+#: src/vmstat.c:837
+#, c-format
+msgid "%13d partitions\n"
+msgstr "%13d partiții\n"
+
+#: src/vmstat.c:838
+#, c-format
+msgid "%13lu total reads\n"
+msgstr "%13lu total citiri\n"
+
+#: src/vmstat.c:839
+#, c-format
+msgid "%13lu merged reads\n"
+msgstr "%13lu de citiri combinate\n"
+
+#: src/vmstat.c:840
+#, c-format
+msgid "%13lu read sectors\n"
+msgstr "%13lu sectoare citite\n"
+
+#: src/vmstat.c:841
+#, c-format
+msgid "%13lu milli reading\n"
+msgstr "%13lu timp de citire (ms)\n"
+
+#: src/vmstat.c:842
+#, c-format
+msgid "%13lu writes\n"
+msgstr "%13lu scrieri\n"
+
+#: src/vmstat.c:843
+#, c-format
+msgid "%13lu merged writes\n"
+msgstr "%13lu de scrieri combinate\n"
+
+#: src/vmstat.c:844
+#, c-format
+msgid "%13lu written sectors\n"
+msgstr "%13lu sectoare scrise\n"
+
+#: src/vmstat.c:845
+#, c-format
+msgid "%13lu milli writing\n"
+msgstr "%13lu timp de scriere (ms)\n"
+
+#: src/vmstat.c:846
+#, c-format
+msgid "%13lu inprogress IO\n"
+msgstr "%13lu In/Ieș în curs\n"
+
+#: src/vmstat.c:847
+#, c-format
+msgid "%13lu milli spent IO\n"
+msgstr "%13lu ms consumate per In/IeÈ™\n"
+
+#: src/vmstat.c:848
+#, c-format
+msgid "%13lu milli weighted IO\n"
+msgstr "%13lu ms In/IeÈ™ ponderat\n"
+
+#: src/vmstat.c:876
+#, c-format
+msgid "%13lu %s total memory\n"
+msgstr "%13lu %s total memorie\n"
+
+#: src/vmstat.c:877
+#, c-format
+msgid "%13lu %s used memory\n"
+msgstr "%13lu %s memorie utilizată\n"
+
+#: src/vmstat.c:878
+#, c-format
+msgid "%13lu %s active memory\n"
+msgstr "%13lu %s memorie activă\n"
+
+#: src/vmstat.c:879
+#, c-format
+msgid "%13lu %s inactive memory\n"
+msgstr "%13lu %s memorie inactivă\n"
+
+#: src/vmstat.c:880
+#, c-format
+msgid "%13lu %s free memory\n"
+msgstr "%13lu %s memorie liberă\n"
+
+#: src/vmstat.c:881
+#, c-format
+msgid "%13lu %s buffer memory\n"
+msgstr "%13lu %s memorie tampon\n"
+
+#: src/vmstat.c:882
+#, c-format
+msgid "%13lu %s swap cache\n"
+msgstr "%13lu %s swap cache\n"
+
+#: src/vmstat.c:883
+#, c-format
+msgid "%13lu %s total swap\n"
+msgstr "%13lu %s total swap\n"
+
+#: src/vmstat.c:884
+#, c-format
+msgid "%13lu %s used swap\n"
+msgstr "%13lu %s swap utilizată\n"
+
+#: src/vmstat.c:885
+#, c-format
+msgid "%13lu %s free swap\n"
+msgstr "%13lu %s swap liberă\n"
+
+#: src/vmstat.c:886
+#, c-format
+msgid "%13lld non-nice user cpu ticks\n"
+msgstr "%13lld cicluri cpu pentru procese de utilizator „non-niceâ€\n"
+
+#: src/vmstat.c:887
+#, c-format
+msgid "%13lld nice user cpu ticks\n"
+msgstr "%13lld cicluri cpu pentru procese de utilizator „niceâ€\n"
+
+#: src/vmstat.c:888
+#, c-format
+msgid "%13lld system cpu ticks\n"
+msgstr "%13lld cicluri cpu pentru procese de sistem\n"
+
+#: src/vmstat.c:889
+#, c-format
+msgid "%13lld idle cpu ticks\n"
+msgstr "%13lld cicluri cpu inactiv\n"
+
+#: src/vmstat.c:890
+#, c-format
+msgid "%13lld IO-wait cpu ticks\n"
+msgstr "%13lld cicluri cpu de așteptare In/Ieș\n"
+
+#: src/vmstat.c:891
+#, c-format
+msgid "%13lld IRQ cpu ticks\n"
+msgstr "%13lld cicluri cpu IRQ\n"
+
+#: src/vmstat.c:892
+#, c-format
+msgid "%13lld softirq cpu ticks\n"
+msgstr "%13lld cicluri cpu IRQ-software\n"
+
+#: src/vmstat.c:893
+#, c-format
+msgid "%13lld stolen cpu ticks\n"
+msgstr "%13lld cicluri de cpu furate\n"
+
+#: src/vmstat.c:894
+#, c-format
+msgid "%13lld non-nice guest cpu ticks\n"
+msgstr "%13lld cicluri cpu pentru procese de invitat „non-niceâ€\n"
+
+#: src/vmstat.c:895
+#, c-format
+msgid "%13lld nice guest cpu ticks\n"
+msgstr "%13lld cicluri cpu pentru procese de invitat „niceâ€\n"
+
+#: src/vmstat.c:896
+#, c-format
+msgid "%13lu K paged in\n"
+msgstr "%13lu K date de intrare paginate\n"
+
+#: src/vmstat.c:897
+#, c-format
+msgid "%13lu K paged out\n"
+msgstr "%13lu K date de ieșire paginate\n"
+
+#: src/vmstat.c:898
+#, c-format
+msgid "%13lu pages swapped in\n"
+msgstr "%13lu pagini introduse în stocarea swap\n"
+
+#: src/vmstat.c:899
+#, c-format
+msgid "%13lu pages swapped out\n"
+msgstr "%13lu pagini scoase din stocarea swap\n"
+
+#: src/vmstat.c:900
+#, c-format
+msgid "%13lu interrupts\n"
+msgstr "%13lu întreruperi\n"
+
+#: src/vmstat.c:901
+#, c-format
+msgid "%13lu CPU context switches\n"
+msgstr "%13lu comutatoare de context CPU\n"
+
+#: src/vmstat.c:902
+#, c-format
+msgid "%13lu boot time\n"
+msgstr "%13lu durata timpului pornire\n"
+
+#: src/vmstat.c:903 src/vmstat.c:921
+#, c-format
+msgid "%13lu forks\n"
+msgstr "%13lu bifurcări\n"
+
+#. Translation Hint: do not change argument characters
+#: src/vmstat.c:1024
+msgid "-S requires k, K, m or M (default is KiB)"
+msgstr "opțiunea „-S†necesită k, K, m sau M ca argument (implicit este Kio)"
+
+# R-GC, scrie:
+# acest mesaj și următoarele, pot să fie
+# vizualizate, rulînd comanda:
+# «watch --help»
+#: src/watch.c:94
+#, c-format
+msgid " %s [options] command\n"
+msgstr " %s [opțiuni] comanda\n"
+
+#: src/watch.c:96
+msgid " -b, --beep beep if command has a non-zero exit\n"
+msgstr ""
+" -b, --beep emite un bip dacă comanda are o ieșire diferită de "
+"zero\n"
+
+#: src/watch.c:97
+msgid " -c, --color interpret ANSI color and style sequences\n"
+msgstr ""
+" -c, --color interpretează secvențele de culoare și stil ANSI\n"
+
+#: src/watch.c:98
+msgid ""
+" -C, --no-color do not interpret ANSI color and style sequences\n"
+msgstr ""
+" -C, --no-color nu interpretează secvențele de culoare și stil "
+"ANSI\n"
+
+#: src/watch.c:99
+msgid ""
+" -d, --differences[=<permanent>]\n"
+" highlight changes between updates\n"
+msgstr ""
+" -d, --differences[=<permanent>]\n"
+" evidențiază modificările dintre actualizări\n"
+
+#: src/watch.c:101
+msgid " -e, --errexit exit if command has a non-zero exit\n"
+msgstr ""
+" -e, --errexit iese dacă comanda are o ieșire diferită de zero\n"
+
+#: src/watch.c:102
+msgid " -g, --chgexit exit when output from command changes\n"
+msgstr ""
+" -g, --chgexit iese atunci când ieșirea de la comandă se modifică\n"
+
+#: src/watch.c:103
+msgid ""
+" -q, --equexit <cycles>\n"
+" exit when output from command does not change\n"
+msgstr ""
+" -q, --equexit <cicluri>\n"
+" iese când ieșirea din comandă nu se modifică\n"
+
+#: src/watch.c:105
+msgid " -n, --interval <secs> seconds to wait between updates\n"
+msgstr ""
+" -n, --interval <secunde>\n"
+" numărul de secunde de așteptare între actualizări\n"
+
+#: src/watch.c:106
+msgid " -p, --precise attempt run command in precise intervals\n"
+msgstr ""
+" -p, --precise încearcă să execute comanda la intervale precise\n"
+
+#: src/watch.c:107
+msgid " -r, --no-rerun do not rerun program on window resize\n"
+msgstr ""
+" -r, --no-rerun nu reexecută programul la redimensionarea "
+"ferestrei\n"
+
+#: src/watch.c:108
+msgid " -t, --no-title turn off header\n"
+msgstr " -t, --no-title nu afișează antetul (titlurile)\n"
+
+#: src/watch.c:109
+msgid " -w, --no-wrap turn off line wrapping\n"
+msgstr " -w, --no-wrap dezactivează întreruperile de linie\n"
+
+#: src/watch.c:110
+msgid " -x, --exec pass command to exec instead of \"sh -c\"\n"
+msgstr ""
+" -x, --exec pasează comanda lui „exec†în loc de „sh -câ€\n"
+
+#: src/watch.c:113
+msgid " -v, --version output version information and exit\n"
+msgstr " -v, --version afișează informații despre versiune și iese\n"
+
+#: src/watch.c:485
+#, c-format
+msgid "Every %.1fs: "
+msgstr "La fiecare %.1fs: "
+
+#: src/watch.c:486
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: src/watch.c:575
+msgid "unable to create IPC pipes"
+msgstr "nu se pot crea conductele IPC"
+
+#: src/watch.c:585
+msgid "unable to fork process"
+msgstr "nu se poate bifurca procesul"
+
+#: src/watch.c:590
+msgid "dup2 failed"
+msgstr "dup2 a eșuat"
+
+#: src/watch.c:597
+#, c-format
+msgid "unable to execute '%s'"
+msgstr "nu se poate executa „%sâ€"
+
+#: src/watch.c:614
+msgid "fdopen"
+msgstr "fdopen"
+
+#: src/watch.c:788
+msgid "waitpid"
+msgstr "waitpid"
+
+#: src/watch.c:796
+msgid "command exit with a non-zero status, press a key to exit"
+msgstr ""
+"comanda a ieșit cu o stare diferită de zero, apăsați o tastă pentru a ieși"
+
+#: src/watch.c:863
+msgid "Could not parse interval from WATCH_INTERVAL"
+msgstr "Nu s-a putut analiza intervalul de la WATCH_INTERVAL"
+
+#: src/watch.c:954
+#, c-format
+msgid "unicode handling error\n"
+msgstr "eroare de gestionare a unicode\n"
+
+#: src/watch.c:960
+#, c-format
+msgid "unicode handling error (malloc)\n"
+msgstr "eroare de gestionare a unicode (malloc)\n"
+
+#: src/w.c:289 src/w.c:304
+#, c-format
+msgid " %2lludays"
+msgstr " %2lluzile"
+
+#. Translation Hint: Minutes:Seconds
+#. Translation Hint: Hours:Minutes
+#: src/w.c:298 src/w.c:308
+#, c-format
+msgid " %2llu:%02um"
+msgstr " %2llu:%02um"
+
+#. Translation Hint: Seconds:Centiseconds
+#: src/w.c:316
+#, c-format
+msgid " %2llu.%02us"
+msgstr " %2llu.%02us"
+
+# R-GC, scrie:
+# acest mesaj și următoarele, pot să fie
+# vizualizate, rulînd comanda:
+# «tload --help»
+#: src/w.c:656
+#, c-format
+msgid " %s [options] [user]\n"
+msgstr " %s [opțiuni] [utilizator]\n"
+
+# R-GC, scrie:
+# acest mesaj și următoarele, pot să fie
+# vizualizate, rulînd comanda:
+# «w --help»
+#: src/w.c:658
+msgid " -h, --no-header do not print header\n"
+msgstr " -h, --no-header nu afișează antetul(titlurile)\n"
+
+#: src/w.c:659
+msgid " -u, --no-current ignore current process username\n"
+msgstr ""
+" -u, --no-current ignoră numele de utilizator al procesului curent\n"
+
+#: src/w.c:660
+msgid " -s, --short short format\n"
+msgstr " -s, --short formatul scurt\n"
+
+#: src/w.c:661
+msgid " -f, --from show remote hostname field\n"
+msgstr " -f, --from afișează câmpul de nume de gazdă de la distanță\n"
+
+#: src/w.c:662
+msgid " -o, --old-style old style output\n"
+msgstr " -o, --old-style ieșire în stil vechi\n"
+
+#: src/w.c:663
+msgid ""
+" -i, --ip-addr display IP address instead of hostname (if possible)\n"
+msgstr ""
+" -i, --ip-addr afișează adresa IP în loc de numele gazdei (dacă este "
+"posibil)\n"
+
+#: src/w.c:664
+msgid " -p, --pids show the PID(s) of processes in WHAT\n"
+msgstr " -p, --pids afișează numărul PID ale proceselor în WHAT\n"
+
+#: src/w.c:763
+#, c-format
+msgid ""
+"User length environment PROCPS_USERLEN must be between 8 and %i, ignoring.\n"
+msgstr ""
+"Lungimea variabilei de mediu a utilizatorului PROCS_USERLEN trebuie să fie "
+"între 8 și %i, se ignoră.\n"
+
+#: src/w.c:773
+#, c-format
+msgid ""
+"from length environment PROCPS_FROMLEN must be between 8 and %d, ignoring\n"
+msgstr ""
+"valoarea lungimii variabilei de mediu, PROCPS_FROMLEN, trebuie să fie între "
+"8 și %d, se ignoră\n"
+
+#. Translation Hint: Following five uppercase messages are
+#. * headers. Try to keep alignment intact.
+#: src/w.c:799
+#, c-format
+msgid "%-*s TTY "
+msgstr "%-*s TTY "
+
+#: src/w.c:801
+msgid "FROM"
+msgstr "DIN "
+
+#: src/w.c:803
+#, c-format
+msgid " LOGIN@ IDLE JCPU PCPU WHAT\n"
+msgstr " ORA AUT. INACTIV JCPU PCPU CARE\n"
+
+#: src/w.c:805
+#, c-format
+msgid " IDLE WHAT\n"
+msgstr " IDLE WHAT\n"
+
+#: src/w.c:815
+msgid "error getting sessions"
+msgstr "eroare la obținerea sesiunilor"
+
+#: src/w.c:823
+msgid "get user name failed"
+msgstr "obținerea numelui de utilizator a eșuat"
+
+#: local/c.h:153
+msgid ""
+"\n"
+"Usage:\n"
+msgstr ""
+"\n"
+"Utilizare:\n"
+
+#: local/c.h:154
+msgid ""
+"\n"
+"Options:\n"
+msgstr ""
+"\n"
+"Opțiuni:\n"
+
+#: local/c.h:155
+msgid "\n"
+msgstr "\n"
+
+#: local/c.h:156
+msgid " -h, --help display this help and exit\n"
+msgstr " -h, --help afișează acest mesaj de ajutor și iese\n"
+
+#: local/c.h:157
+msgid " -V, --version output version information and exit\n"
+msgstr " -V, --version afișează informații despre versiune și iese\n"
+
+#: local/c.h:158
+#, c-format
+msgid ""
+"\n"
+"For more details see %s.\n"
+msgstr ""
+"\n"
+"Pentru mai multe detalii, consultați %s.\n"
+
+#: local/c.h:160
+#, c-format
+msgid "%s from %s\n"
+msgstr "%s de la %s\n"
+
+#~ msgid ""
+#~ "inappropriate '%s'\n"
+#~ "Usage:\n"
+#~ " %s%s"
+#~ msgstr ""
+#~ "„%s†inadecvat\n"
+#~ "Utilizare:\n"
+#~ " %s%s"
+
+#~ msgid "error: not enough memory\n"
+#~ msgstr "eroare: memorie insuficientă\n"
+
+#~ msgid "error: can not access /proc\n"
+#~ msgstr "eroare: nu se poate accesa directorul „/procâ€\n"
+
+#~ msgid "something at line %d\n"
+#~ msgstr "ceva pe linia %d\n"
+
+#~ msgid "\"%s\" must be of the form name=value"
+#~ msgstr "„%s†trebuie să fie de forma nume=valoare"
+
+#~ msgid "malformed setting \"%s\""
+#~ msgstr "configurare incorectă „%sâ€"
+
+#~ msgid "%s is deprecated, value not set"
+#~ msgstr "%s este învechit, valoarea nu se atribuie"
+
+#~ msgid ""
+#~ " %s\n"
+#~ "Usage:\n"
+#~ " %s%s"
+#~ msgstr ""
+#~ " %s\n"
+#~ "Utilizare:\n"
+#~ " %s%s"
+
+#~ msgid "failed openproc: %s"
+#~ msgstr "openproc a eșuat: %s"
+
+#~ msgid "-%c requires argument"
+#~ msgstr "opțiunea „-%c†necesită un argument"
+
+#~ msgid ""
+#~ " -hv | -bcEeHiOSs1 -d secs -n max -u|U user -p pid(s) -o field -w [cols]"
+#~ msgstr ""
+#~ " -hv | -bcEeHiOSs1 -d secunde -n max -u|U utilizator -p pid(-uri) -o câmp "
+#~ "-w [coloane]"
+
+#~ msgid "failed /proc/stat read"
+#~ msgstr "eroare la citirea /proc/stat"
+
+#~ msgid "terminal is not wide enough"
+#~ msgstr "terminalul nu este suficient de lat"
+
+#~ msgid ""
+#~ " k,r Manipulate tasks: '~1k~2' kill; '~1r~2' renice\n"
+#~ " d or s Set update interval\n"
+#~ msgstr ""
+#~ " k,r Gestionează sarcinile: '~1k~2' omoară; '~1r~2' schimbă "
+#~ "prioritatea\n"
+#~ " d sau s Stabilește intervalul de actualizare\n"
+
+#~ msgid ""
+#~ "%s~3 %#5.1f ~2user,~3 %#5.1f ~2system,~3 %#5.1f ~2nice,~3 %#5.1f "
+#~ "~2idle~3"
+#~ msgstr ""
+#~ "%s~3 %#5.1f ~2user,~3 %#5.1f ~2sistem,~3 %#5.1f ~2nice,~3 %#5.1f "
+#~ "~2idle~3"
+
+#~ msgid ""
+#~ "%s~3 %#5.1f ~2user,~3 %#5.1f ~2system,~3 %#5.1f ~2nice,~3 %#5.1f "
+#~ "~2idle,~3 %#5.1f ~2IO-wait~3"
+#~ msgstr ""
+#~ "%s~3 %#5.1f ~2user,~3 %#5.1f ~2sistem,~3 %#5.1f ~2nice,~3 %#5.1f "
+#~ "~2idle,~3 %#5.1f ~2IO-wait~3"
+
+#~ msgid "your kernel does not support diskstat. (2.5.70 or above required)"
+#~ msgstr ""
+#~ "nucleul dumneavoastră. nu acceptă «diskstat» (este necesară versiunea "
+#~ "2.5.70 sau mai mare)"
+
+#~ msgid "your kernel does not support diskstat (2.5.70 or above required)"
+#~ msgstr ""
+#~ "nucleul dumneavoastră. nu acceptă «diskstat» (este necesară versiunea "
+#~ "2.5.70 sau mai mare)"
+
+#~ msgid ""
+#~ "your kernel does not support slabinfo or your permissions are insufficient"
+#~ msgstr ""
+#~ "nucleul dumneavoastră nu acceptă „slabinfo†sau permisiunile "
+#~ "dumneavoastră sunt insuficiente"
diff --git a/po/stamp-po b/po/stamp-po
new file mode 100644
index 0000000..9788f70
--- /dev/null
+++ b/po/stamp-po
@@ -0,0 +1 @@
+timestamp
diff --git a/po/sv.gmo b/po/sv.gmo
new file mode 100644
index 0000000..48c4652
--- /dev/null
+++ b/po/sv.gmo
Binary files differ
diff --git a/po/sv.po b/po/sv.po
new file mode 100644
index 0000000..b88bb22
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,4871 @@
+# Swedish translation of procps-ng.
+# Copyright © 2017, 2018, 2021, 2022, 2023 Free Software Foundation, Inc.
+# This file is distributed under the same license as the procps-ng package.
+#
+# Göran Uddeborg <goeran@uddeborg.se>, 2017, 2018, 2019, 2021, 2022, 2023.
+#
+# $Id: procps-ng.po,v 1.29 2023-08-21 10:53:48+02 göran Exp $
+msgid ""
+msgstr ""
+"Project-Id-Version: procps-ng 4.0.4-rc1\n"
+"Report-Msgid-Bugs-To: procps@freelists.org\n"
+"POT-Creation-Date: 2023-08-19 17:38+1000\n"
+"PO-Revision-Date: 2023-08-21 10:53+0200\n"
+"Last-Translator: Göran Uddeborg <goeran@uddeborg.se>\n"
+"Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
+"Language: sv\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+
+#: local/fileutils.c:38
+msgid "write error"
+msgstr "skrivfel"
+
+#: src/free.c:74 src/slabtop.c:106 src/uptime.c:65
+#, c-format
+msgid " %s [options]\n"
+msgstr " %s [flaggor]\n"
+
+#: src/free.c:76
+msgid " -b, --bytes show output in bytes\n"
+msgstr " -b, --bytes visa utdata i byte\n"
+
+#: src/free.c:77
+msgid " --kilo show output in kilobytes\n"
+msgstr " --kilo visa utdata i kilobyte\n"
+
+#: src/free.c:78
+msgid " --mega show output in megabytes\n"
+msgstr " --mega visa utdata i megabyte\n"
+
+#: src/free.c:79
+msgid " --giga show output in gigabytes\n"
+msgstr " --giga visa utdata i gigabyte\n"
+
+#: src/free.c:80
+msgid " --tera show output in terabytes\n"
+msgstr " --tera visa utdata i terabyte\n"
+
+#: src/free.c:81
+msgid " --peta show output in petabytes\n"
+msgstr " --peta visa utdata i petabyte\n"
+
+#: src/free.c:82
+msgid " -k, --kibi show output in kibibytes\n"
+msgstr " -k, --kibi visa utdata i kibibyte\n"
+
+#: src/free.c:83
+msgid " -m, --mebi show output in mebibytes\n"
+msgstr " -m, --mebi visa utdata i mebibyte\n"
+
+#: src/free.c:84
+msgid " -g, --gibi show output in gibibytes\n"
+msgstr " -g, --gibi visa utdata i gibibyte\n"
+
+#: src/free.c:85
+msgid " --tebi show output in tebibytes\n"
+msgstr " --tebi visa utdata i tebibyte\n"
+
+#: src/free.c:86
+msgid " --pebi show output in pebibytes\n"
+msgstr " --pebi visa utdata i pebibyte\n"
+
+#: src/free.c:87
+msgid " -h, --human show human-readable output\n"
+msgstr " -h, --human visa mänskligt läsbar utdata\n"
+
+#: src/free.c:88
+msgid " --si use powers of 1000 not 1024\n"
+msgstr " --si använd potenser av 1000 inte 1024\n"
+
+#: src/free.c:89
+msgid " -l, --lohi show detailed low and high memory statistics\n"
+msgstr " -l, --lohi visa detaljerade lägsta och högsta minnesvärden\n"
+
+#: src/free.c:90
+msgid " -L, --line show output on a single line\n"
+msgstr " -L, --line visa utdata på en enda rad\n"
+
+#: src/free.c:91
+msgid " -t, --total show total for RAM + swap\n"
+msgstr " -t, --total visa totalen för RAM + växling\n"
+
+#: src/free.c:92
+msgid " -v, --committed show committed memory and commit limit\n"
+msgstr " -v, --committed visa tilldelat minne och tilldelningsgränsen\n"
+
+#: src/free.c:93
+msgid " -s N, --seconds N repeat printing every N seconds\n"
+msgstr " -s N, --seconds N upprepa utskriften var N:e sekund\n"
+
+#: src/free.c:94
+msgid " -c N, --count N repeat printing N times, then exit\n"
+msgstr " -c N, --count N upprepa utskriften N gånger, avsluta sedan\n"
+
+#: src/free.c:95
+msgid " -w, --wide wide output\n"
+msgstr " -w, --wide bred utskrift\n"
+
+#: src/free.c:97 src/w.c:666
+msgid " --help display this help and exit\n"
+msgstr " --help visa denna hjälp och avsluta\n"
+
+#: src/free.c:172
+msgid "Multiple unit options don't make sense."
+msgstr "Multipla enhetsflaggor är inte meningsfullt."
+
+#: src/free.c:341
+#, c-format
+msgid "seconds argument `%s' is not positive number"
+msgstr "sekundargumentet â€%s†är inte ett positivt tal"
+
+#: src/free.c:347
+msgid "failed to parse count argument"
+msgstr "misslyckades att tolka upprepningsargumentet"
+
+#: src/free.c:350
+#, c-format
+msgid "failed to parse count argument: '%s'"
+msgstr "misslyckades att tolka upprepningsargumentet: â€%sâ€"
+
+#: src/free.c:370
+msgid "Memory information file /proc/meminfo does not exist"
+msgstr "Minnesinformationsfilen /proc/meminfo finns inte"
+
+#: src/free.c:373 src/vmstat.c:378 src/vmstat.c:872
+msgid "Unable to create meminfo structure"
+msgstr "Kan inte skapa minnesinformationspost"
+
+#. Translation Hint: These are shortened column headers
+#. * that are all 7 characters long. Use spaces and right
+#. * align if the translation is shorter.
+#.
+#: src/free.c:381
+msgid "SwapUse"
+msgstr "VäxlAnv"
+
+#: src/free.c:382
+msgid "CachUse"
+msgstr "CachAnv"
+
+#: src/free.c:384
+msgid " MemUse"
+msgstr " MinnAnv"
+
+#: src/free.c:385
+msgid "MemFree"
+msgstr "MinnFritt"
+
+#: src/free.c:395
+#, c-format
+msgid ""
+" total used free shared buffers "
+"cache available"
+msgstr ""
+" totalt använt fritt delat buffertar "
+"cache tillgängl."
+
+#: src/free.c:397
+#, c-format
+msgid ""
+" total used free shared buff/cache "
+"available"
+msgstr ""
+" totalt använt fritt delat buff/cache "
+"tillgängl."
+
+#: src/free.c:400
+msgid "Mem:"
+msgstr "Minne:"
+
+# Extra mellanslag för att få utskriften att linjera.
+#: src/free.c:423
+msgid "Low:"
+msgstr "LÃ¥gt: "
+
+# Extra mellanslag för att få utskriften att linjera.
+#: src/free.c:429
+msgid "High:"
+msgstr "Högt: "
+
+# Extra mellanslag för att få utskriften att linjera.
+#: src/free.c:436
+msgid "Swap:"
+msgstr "Växl.: "
+
+#: src/free.c:443
+msgid "Total:"
+msgstr "Totalt:"
+
+#: src/free.c:456
+msgid "Comm:"
+msgstr "Til.:"
+
+#: src/kill.c:40
+#, c-format
+msgid " %s [options] <pid> [...]\n"
+msgstr " %s [flaggor] <pid> […]\n"
+
+#: src/kill.c:42
+msgid " <pid> [...] send signal to every <pid> listed\n"
+msgstr " <pid> […] skicka en signal till varje listad <pid>\n"
+
+#: src/kill.c:43
+msgid ""
+" -<signal>, -s, --signal <signal>\n"
+" specify the <signal> to be sent\n"
+msgstr ""
+" -<signal>, -s, --signal <signal>\n"
+" ange vilken <signal> som skall skickas\n"
+
+#: src/kill.c:45
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr " -q, --queue <värde> heltalsvärde att skickas med signalen\n"
+
+#: src/kill.c:46
+msgid ""
+" -l, --list=[<signal>] list all signal names, or convert one to a name\n"
+msgstr ""
+" -l, --list=[<signal>] lista alla signalnamn, eller gör om en till ett "
+"namn\n"
+
+#: src/kill.c:47
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr " -L, --table lista alla signalnamn i en trevlig tabell\n"
+
+#: src/kill.c:112
+#, c-format
+msgid "unknown signal name %s"
+msgstr "okänt signalnamn %s"
+
+#: src/kill.c:131
+msgid "must be an integer value to be passed with the signal."
+msgstr "det måste vara ett heltalsvärde för att skickas med signalen."
+
+#: src/kill.c:136
+#, c-format
+msgid "invalid argument %c"
+msgstr "felaktigt argument %c"
+
+#: src/kill.c:146 src/pgrep.c:792 src/pidof.c:250 src/pidof.c:290
+#: src/sysctl.c:867
+msgid "internal error"
+msgstr "internt fel"
+
+#: src/kill.c:158 src/pmap.c:771 src/pmap.c:786 src/skill.c:381 src/skill.c:465
+#: src/tload.c:135 src/tload.c:140 src/vmstat.c:1047 src/vmstat.c:1057
+#: src/watch.c:891 src/watch.c:906
+msgid "failed to parse argument"
+msgstr "misslyckades att tolka argumentet"
+
+#: src/pgrep.c:92 src/pidof.c:40 src/skill.c:74
+msgid "integer overflow"
+msgstr "heltalsspill"
+
+#: src/pgrep.c:155
+#, c-format
+msgid " %s [options] <pattern>\n"
+msgstr " %s [flaggor] <mönster>\n"
+
+#: src/pgrep.c:159
+msgid " -d, --delimiter <string> specify output delimiter\n"
+msgstr " -d, --delimiter <sträng> ange avgränsare i utdata\n"
+
+#: src/pgrep.c:160
+msgid " -l, --list-name list PID and process name\n"
+msgstr " -l, --list-name lista PID och processnamn\n"
+
+#: src/pgrep.c:161
+msgid " -a, --list-full list PID and full command line\n"
+msgstr " -a, --list-full lista PID och fullständig kommandorad\n"
+
+#: src/pgrep.c:162
+msgid " -v, --inverse negates the matching\n"
+msgstr " -v, --inverse negerar matchningen\n"
+
+#: src/pgrep.c:163
+msgid " -w, --lightweight list all TID\n"
+msgstr " -w, --lightweight lista alla TID\n"
+
+#: src/pgrep.c:166
+msgid " -<sig> signal to send (either number or name)\n"
+msgstr ""
+" -<sig> signal att skicka (antingen nummer eller namn)\n"
+
+#: src/pgrep.c:167
+msgid " -H, --require-handler match only if signal handler is present\n"
+msgstr " -H, --require-handler matcha endast om en signalhanterare finns\n"
+
+#: src/pgrep.c:168
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr " -q, --queue <värde> heltalsvärde att skickas med signalen\n"
+
+#: src/pgrep.c:169
+msgid " -e, --echo display what is killed\n"
+msgstr " -e, --echo visa vad som dödas\n"
+
+#: src/pgrep.c:173
+msgid " -e, --echo display PIDs before waiting\n"
+msgstr " -e, --echo visa PID:ar före väntan\n"
+
+#: src/pgrep.c:177
+msgid " -c, --count count of matching processes\n"
+msgstr " -c, --count antal matchande processer\n"
+
+#: src/pgrep.c:178
+msgid " -f, --full use full process name to match\n"
+msgstr ""
+" -f, --full använd fullständigt processnamn för att matcha\n"
+
+#: src/pgrep.c:179
+msgid " -g, --pgroup <PGID,...> match listed process group IDs\n"
+msgstr " -g, --pgroup <PGID,…> matcha listade processers grupp-ID:n\n"
+
+#: src/pgrep.c:180
+msgid " -G, --group <GID,...> match real group IDs\n"
+msgstr " -G, --group <GID,…> matcha verkliga grupp-ID:n\n"
+
+#: src/pgrep.c:181
+msgid " -i, --ignore-case match case insensitively\n"
+msgstr " -i, --ignore-case matcha utan hänsyn till skiftläge\n"
+
+#: src/pgrep.c:182
+msgid " -n, --newest select most recently started\n"
+msgstr " -n, --newest välj den senast startade\n"
+
+#: src/pgrep.c:183
+msgid " -o, --oldest select least recently started\n"
+msgstr " -o, --oldest välj den först startade\n"
+
+#: src/pgrep.c:184
+msgid " -O, --older <seconds> select where older than seconds\n"
+msgstr " -O, --older <sek> välj de som är äldre än sekunder\n"
+
+#: src/pgrep.c:185
+msgid ""
+" -P, --parent <PPID,...> match only child processes of the given parent\n"
+msgstr ""
+" -P, --parent <PPID,…> matcha endast barnprocesser till den givna "
+"föräldern\n"
+
+#: src/pgrep.c:186
+msgid " -s, --session <SID,...> match session IDs\n"
+msgstr " -s, --session <SID,…> matcha sessions-ID:n\n"
+
+#: src/pgrep.c:187
+msgid " --signal <sig> signal to send (either number or name)\n"
+msgstr ""
+" --signal <sig> signal att skicka (antingen nummer eller namn)\n"
+
+#: src/pgrep.c:188
+msgid " -t, --terminal <tty,...> match by controlling terminal\n"
+msgstr " -t, --terminal <tty,…> matcha via styrterminal\n"
+
+#: src/pgrep.c:189
+msgid " -u, --euid <ID,...> match by effective IDs\n"
+msgstr " -u, --euid <ID,…> matcha via effektiva ID:n\n"
+
+#: src/pgrep.c:190
+msgid " -U, --uid <ID,...> match by real IDs\n"
+msgstr " -U, --uid <ID,…> matcha via verkliga ID:n\n"
+
+#: src/pgrep.c:191
+msgid " -x, --exact match exactly with the command name\n"
+msgstr " -x, --exact matcha kommandonamnet exakt\n"
+
+#: src/pgrep.c:192
+msgid " -F, --pidfile <file> read PIDs from file\n"
+msgstr " -F, --pidfile <fil> läs PID:n från filen\n"
+
+#: src/pgrep.c:193
+msgid " -L, --logpidfile fail if PID file is not locked\n"
+msgstr " -L, --logpidfile misslyckas om PID-filen inte kan låsas\n"
+
+#: src/pgrep.c:194
+msgid " -r, --runstates <state> match runstates [D,S,Z,...]\n"
+msgstr " -r, --runstates <status> matcha körstatus [D,S,Z,…]\n"
+
+#: src/pgrep.c:195
+msgid " -A, --ignore-ancestors exclude our ancestors from results\n"
+msgstr " -A, --ignore-ancestors exkludera våra anfäder from resultat\n"
+
+#: src/pgrep.c:196
+msgid " --cgroup <grp,...> match by cgroup v2 names\n"
+msgstr " --cgroup <grp,…> match via cgroup-v2-namn\n"
+
+#: src/pgrep.c:197
+msgid ""
+" --ns <PID> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+" --ns <PID> matcha processerna som tillhör samma\n"
+" namnrymd som <PID>\n"
+
+#: src/pgrep.c:199
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option.\n"
+" Available namespaces: ipc, mnt, net, pid, user, "
+"uts\n"
+msgstr ""
+" --nslist <ns,…> lista vilka namnrymder som övervägs för\n"
+" flaggan --ns.\n"
+" Tillgängliga namnrymder: ipc, mnt, net, pid, "
+"user,\n"
+" uts\n"
+
+#: src/pgrep.c:224 src/pgrep.c:700 src/w.c:455
+msgid "Unable to create pid info structure"
+msgstr "Kan inte skapa pid-informationspost"
+
+#: src/pgrep.c:388
+#, c-format
+msgid "invalid user name: %s"
+msgstr "felaktigt användarnamn: %s"
+
+#: src/pgrep.c:405
+#, c-format
+msgid "invalid group name: %s"
+msgstr "felaktigt gruppnamn: %s"
+
+#: src/pgrep.c:416
+#, c-format
+msgid "invalid process group: %s"
+msgstr "felaktig processgrupp: %s"
+
+#: src/pgrep.c:428
+#, c-format
+msgid "invalid session id: %s"
+msgstr "felaktigt sessions-id: %s"
+
+#: src/pgrep.c:440
+#, c-format
+msgid "not a number: %s"
+msgstr "inte ett tal: %s"
+
+#: src/pgrep.c:490
+#, c-format
+msgid "not a hex string: %s"
+msgstr "inte en hexadecimal sträng: %s"
+
+#: src/pgrep.c:525 src/skill.c:162
+msgid "Unable to read process namespace information"
+msgstr "Kan inte läsa processnamnrymdsinformation"
+
+#: src/pgrep.c:612
+#, c-format
+msgid "regex error: %s"
+msgstr "reguttr-fel: %s"
+
+#: src/pgrep.c:695
+msgid "Error reading reference namespace information\n"
+msgstr "Fel när referensnamnrymdens information lästes\n"
+
+#: src/pgrep.c:809
+#, c-format
+msgid ""
+"pattern that searches for process name longer than 15 characters will result "
+"in zero matches\n"
+"Try `%s -f' option to match against the complete command line."
+msgstr ""
+"mönster som söker efter processnamn längre än 15 tecken kommer resultera i "
+"noll träffar\n"
+"Prova flaggan â€%s -f†för att matcha mot den fullständiga kommandoraden."
+
+#: src/pgrep.c:924
+#, c-format
+msgid "Unknown signal \"%s\"."
+msgstr "Okänd signal â€%sâ€."
+
+#: src/pgrep.c:1090
+#, c-format
+msgid ""
+"-L without -F makes no sense\n"
+"Try `%s --help' for more information."
+msgstr ""
+"-L utan -F är meningslöst.\n"
+"Prova â€%s --help†för mer information."
+
+#: src/pgrep.c:1097
+#, c-format
+msgid ""
+"pidfile not valid\n"
+"Try `%s --help' for more information."
+msgstr ""
+"pid-filen är inte giltig.\n"
+"Prova â€%s --help†för mer information."
+
+#: src/pgrep.c:1106
+#, c-format
+msgid ""
+"only one pattern can be provided\n"
+"Try `%s --help' for more information."
+msgstr ""
+"endast ett mönster kan anges\n"
+"Prova â€%s --help†för mer information."
+
+#: src/pgrep.c:1110
+#, c-format
+msgid ""
+"no matching criteria specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+"inget matchande kriterium angivet\n"
+"Prova â€%s --help†för mer information."
+
+#: src/pgrep.c:1162
+#, c-format
+msgid "%s killed (pid %lu)\n"
+msgstr "%s dödad (pid %lu)\n"
+
+#: src/pgrep.c:1169
+#, c-format
+msgid "killing pid %ld failed"
+msgstr "att döda pid %ld misslyckades"
+
+#: src/pgrep.c:1181
+#, c-format
+msgid "waiting for %s (pid %lu)\n"
+msgstr "väntar på %s (pid %lu)\n"
+
+#: src/pgrep.c:1185
+msgid "pidfd_open() not implemented in Linux < 5.3"
+msgstr "pidfd_open() är inte implementerat i Linux < 5.3"
+
+#: src/pgrep.c:1188
+#, c-format
+msgid "opening pid %ld failed"
+msgstr "att öppna pid %ld misslyckades"
+
+#: src/pgrep.c:1202
+msgid "epoll_wait failed"
+msgstr "epoll_wait misslyckades"
+
+#: src/pidof.c:75
+#, c-format
+msgid " %s [options] [program [...]]\n"
+msgstr " %s [flaggor] [program […]]\n"
+
+#: src/pidof.c:77
+msgid " -s, --single-shot return one PID only\n"
+msgstr " -s, --single-shot returnera endast en PID\n"
+
+#: src/pidof.c:78
+msgid " -c, --check-root omit processes with different root\n"
+msgstr " -c, --check-root uteslut processer med en annan rot\n"
+
+#: src/pidof.c:79
+msgid " -q, quiet mode, only set the exit code\n"
+msgstr " -q, tyst läge, sätt endast slutkoden\n"
+
+#: src/pidof.c:80
+msgid " -w, --with-workers show kernel workers too\n"
+msgstr " -w, --with-workers visa kärnarbetare också\n"
+
+#: src/pidof.c:81
+msgid " -x also find shells running the named scripts\n"
+msgstr ""
+" -x hitta även skal som kör de namngivna skripten\n"
+
+#: src/pidof.c:82
+msgid " -o, --omit-pid <PID,...> omit processes with PID\n"
+msgstr " -o, --omit-pid <PID,…> uteslut processer med PID\n"
+
+#: src/pidof.c:83
+msgid " -t, --lightweight list threads too\n"
+msgstr " -t, --lightweight lista trådar också\n"
+
+#: src/pidof.c:84
+msgid " -S, --separator SEP use SEP as separator put between PIDs"
+msgstr " -S, --separator SEP använd SEP som separator mellan PID:ar"
+
+#: src/pidof.c:293
+#, c-format
+msgid "illegal omit pid value (%s)!\n"
+msgstr "otillåtet värde på utesluten pid (%s)!\n"
+
+#: src/pmap.c:72
+msgid "Address"
+msgstr "Adress"
+
+#: src/pmap.c:73
+msgid "Offset"
+msgstr "Avstånd"
+
+#: src/pmap.c:74
+msgid "Device"
+msgstr "Enhet"
+
+#: src/pmap.c:75
+msgid "Mapping"
+msgstr "Mappning"
+
+#: src/pmap.c:79
+msgid "Perm"
+msgstr "Rtgh"
+
+#: src/pmap.c:80
+msgid "Inode"
+msgstr "Inod"
+
+#: src/pmap.c:83
+msgid "Kbytes"
+msgstr "kbyte"
+
+#: src/pmap.c:84
+msgid "Mode"
+msgstr "Läge"
+
+#. Translation Hint: With the next 5 fields, notice how an extra space
+#. has been added ahead of one 'KiB' so that they all
+#. align. You need not preserve such alignment.
+#. Translation Hint: maximum 'RSS' = 6
+#: src/pmap.c:85 src/top/top_nls.c:337
+msgid "RSS"
+msgstr "RSS"
+
+#: src/pmap.c:86
+msgid "Dirty"
+msgstr "Smutsig"
+
+#: src/pmap.c:120
+#, c-format
+msgid " %s [options] PID [PID ...]\n"
+msgstr " %s [flaggor] PID [PID …]\n"
+
+#: src/pmap.c:122
+msgid " -x, --extended show details\n"
+msgstr " -x, --extended visa detaljer\n"
+
+#: src/pmap.c:123
+msgid " -X show even more details\n"
+msgstr " -X visa ännu mer detaljer\n"
+
+#: src/pmap.c:124
+msgid " WARNING: format changes according to /proc/PID/smaps\n"
+msgstr " VARNING: formatändringar i enlighet med /proc/PID/smaps\n"
+
+#: src/pmap.c:125
+msgid " -XX show everything the kernel provides\n"
+msgstr " -XX visa allt kärnan tillhandahåller\n"
+
+#: src/pmap.c:126
+msgid " -c, --read-rc read the default rc\n"
+msgstr " -c, --read-rc läs standard rc\n"
+
+#: src/pmap.c:127
+msgid " -C, --read-rc-from=<file> read the rc from file\n"
+msgstr " -C, --read-rc-from=<fil> läs rc från filen\n"
+
+#: src/pmap.c:128
+msgid " -n, --create-rc create new default rc\n"
+msgstr " -n, --create-rc skapa en ny standard-rc\n"
+
+#: src/pmap.c:129
+msgid " -N, --create-rc-to=<file> create new rc to file\n"
+msgstr " -N, --create-rc-to=<fil> skapa en ny rc i filen\n"
+
+#: src/pmap.c:130
+msgid " NOTE: pid arguments are not allowed with -n, -N\n"
+msgstr " OBS: pid-argument är inte tillåtna med -n, -N\n"
+
+#: src/pmap.c:131
+msgid " -d, --device show the device format\n"
+msgstr " -d, --device visa enhetsformatet\n"
+
+#: src/pmap.c:132
+msgid " -q, --quiet do not display header and footer\n"
+msgstr " -q, --quiet visa inte huvud och sidfot\n"
+
+#: src/pmap.c:133
+msgid " -p, --show-path show path in the mapping\n"
+msgstr " -p, --show-path visa sökväg i mappningarna\n"
+
+#: src/pmap.c:134
+msgid " -A, --range=<low>[,<high>] limit results to the given range\n"
+msgstr ""
+" -A, --range=<låg>[,<hög>] begränsa resultatet till det angivna "
+"intervallet\n"
+
+#: src/pmap.c:215
+msgid "shared memory detach"
+msgstr "delat minne frikopplat"
+
+#: src/pmap.c:220
+msgid "shared memory remove"
+msgstr "delat minne borttaget"
+
+#: src/pmap.c:245
+msgid " [ anon ]"
+msgstr " [ anon ]"
+
+#: src/pmap.c:248
+msgid " [ stack ]"
+msgstr " [ stack ]"
+
+#: src/pmap.c:334 src/pmap.c:340
+msgid "Unknown format in smaps file!"
+msgstr "Okänt format i smaps-filen!"
+
+#: src/pmap.c:365
+msgid "ERROR: memory allocation failed"
+msgstr "FEL: minnesallokeringen misslyckades"
+
+#: src/pmap.c:382
+msgid "inconsistent detail field in smaps file, line:\n"
+msgstr "inkonsekvent detaljfält i smaps-filen, rad:\n"
+
+#: src/pmap.c:731
+msgid "total kB"
+msgstr "totalt kB"
+
+#: src/pmap.c:742
+#, c-format
+msgid "mapped: %ldK writeable/private: %ldK shared: %ldK\n"
+msgstr "mappat: %ld k skrivbart/privat: %ld k delat: %ld k\n"
+
+#. Translation Hint: keep total string length
+#. * as 24 characters. Adjust %16 if needed
+#: src/pmap.c:751
+#, c-format
+msgid " total %16ldK\n"
+msgstr " totalt %14ld k\n"
+
+#. Translation Hint: keep total string length
+#. * as 16 characters. Adjust %8 if needed
+#: src/pmap.c:757
+#, c-format
+msgid " total %8ldK\n"
+msgstr " totalt %6ld k\n"
+
+#: src/pmap.c:832
+#, c-format
+msgid "config line too long - line %d"
+msgstr "konfigurationsraden är för lång — rad %d"
+
+#: src/pmap.c:857
+#, c-format
+msgid "unsupported section found in the config - line %d"
+msgstr "avsnitt som ej stödjs hittat i konfigurationen — rad %d"
+
+#: src/pmap.c:860 src/pmap.c:871 src/pmap.c:882 src/pmap.c:905 src/pmap.c:917
+#, c-format
+msgid "syntax error found in the config - line %d"
+msgstr "syntaxfel hittat i konfigurationen — rad %d"
+
+#: src/pmap.c:887 src/pmap.c:1010
+msgid "memory allocation failed"
+msgstr "minnesallokeringen misslyckades"
+
+#: src/pmap.c:939
+msgid "the file already exists - delete or rename it first"
+msgstr "filen finns redan — ta bort den eller byt namn på den först"
+
+#: src/pmap.c:1002
+msgid "HOME variable undefined"
+msgstr "HOME-variabeln är odefinierad"
+
+#: src/pmap.c:1061
+msgid "option -r is ignored as SunOS compatibility"
+msgstr "flaggan -r ignoreras som en SunOS-kompatibilitet"
+
+#: src/pmap.c:1108
+msgid "options -c, -C, -d, -n, -N, -x, -X are mutually exclusive"
+msgstr "flaggorna -c, -C, -d, -n, -N, -x, -X är ömsesidigt uteslutande"
+
+#: src/pmap.c:1111
+msgid "options -p, -q are mutually exclusive with -n, -N"
+msgstr "flaggorna -p, -q är ömsesidigt uteslutande med -n, -N"
+
+#: src/pmap.c:1114 src/pmap.c:1163
+msgid "too many arguments"
+msgstr "för många argument"
+
+#: src/pmap.c:1118
+msgid "rc file successfully created, feel free to edit the content"
+msgstr "rc-filen skapades, varsågod att redigera innehållet"
+
+#: src/pmap.c:1121
+msgid "couldn't create the rc file"
+msgstr "kunde inte skapa rc-filen"
+
+#: src/pmap.c:1133
+#, c-format
+msgid "~/.%src file successfully created, feel free to edit the content"
+msgstr "~/.%src-filen skapades, varsågod att redigera innehållet"
+
+#: src/pmap.c:1136
+#, c-format
+msgid "couldn't create ~/.%src"
+msgstr "kunde inte skapa ~/.%src"
+
+#: src/pmap.c:1141
+msgid "argument missing"
+msgstr "argument saknas"
+
+#: src/pmap.c:1154
+msgid "couldn't read the rc file"
+msgstr "kunde inte läsa rc-filen"
+
+#: src/pmap.c:1156
+#, c-format
+msgid "couldn't read ~/.%src"
+msgstr "kunde inte läsa ~/.%src"
+
+#: src/pmap.c:1165 src/pmap.c:1190
+msgid "library failed pids statistics"
+msgstr "biblioteket misslyckades med pid-statistik"
+
+#: src/ps/display.c:61
+#, c-format
+msgid "Signal %d (%s) caught by %s (%s).\n"
+msgstr "Signal %d (%s) fångad av %s (%s).\n"
+
+#: src/ps/display.c:75 src/ps/display.c:252 src/ps/display.c:407
+#: src/ps/output.c:2359 src/ps/parser.c:509 src/ps/parser.c:756
+#: src/ps/select.c:95 src/ps/sortformat.c:263 src/ps/sortformat.c:301
+#: src/ps/sortformat.c:549
+msgid "please report this bug"
+msgstr "var vänlig och rapportera detta fel"
+
+#: src/ps/display.c:315 src/ps/display.c:484
+#, c-format
+msgid "fatal library error, reap\n"
+msgstr "ödersdigert fel i biblioteket, skörda\n"
+
+#: src/ps/display.c:365
+#, c-format
+msgid "could not find ppid\n"
+msgstr "kunde inte hitta ppid\n"
+
+#: src/ps/display.c:375
+#, c-format
+msgid "could not find start_time\n"
+msgstr "kunde inte hitta start_time\n"
+
+#: src/ps/global.c:287
+#, c-format
+msgid "your %dx%d screen size is bogus. expect trouble\n"
+msgstr "din %d×%d-skärmstorlek är felaktig. Förvänta dig problem\n"
+
+#: src/ps/global.c:360 src/ps/global.c:372
+msgid "environment specified an unknown personality"
+msgstr "miljön angav en okänd personlighet"
+
+#: src/ps/global.c:364
+#, c-format
+msgid "cannot strdup() personality text\n"
+msgstr "kan inte göra strdup() på personlighetstexten\n"
+
+#: src/ps/global.c:495
+#, c-format
+msgid "fatal library error, context\n"
+msgstr "öderstiget fel i biblioteket, kontexten\n"
+
+#: src/ps/global.c:503
+#, c-format
+msgid "fatal library error, lookup self\n"
+msgstr "öderstigert fel i biblioteket, slå upp själv\n"
+
+#. Translation Note:
+#. . The following translatable word will be used to recognize the
+#. . user's request for help text. In other words, the translation
+#. . you provide will alter program behavior.
+#. .
+#. . It must be limited to 15 characters or less.
+#.
+#: src/ps/global.c:542
+msgid "help"
+msgstr "hjälp"
+
+#. Translation Notes for ps Help #1 ---------------------------------
+#. . This next group of lines represents 6 pairs of words + abbreviations
+#. . which are the basis of the 'ps' program help text.
+#. .
+#. . The words and abbreviations you provide will alter program behavior.
+#. . They will also appear in the help usage summary associated with the
+#. . "Notes for ps Help #2" below.
+#. .
+#. . In their English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . When translating these 6 pairs you may choose any appropriate
+#. . language equivalents and the only requirement is the abbreviated
+#. . representations must be unique.
+#. .
+#. . By default, those abbreviations are single characters. However,
+#. . they are not limited to only one character after translation.
+#. .
+#. Translation Hint, Pair #1
+#: src/ps/help.c:67
+msgid "simple"
+msgstr "enkel"
+
+#: src/ps/help.c:67
+msgid "s"
+msgstr "e"
+
+#. Translation Hint, Pair #2
+#: src/ps/help.c:69
+msgid "list"
+msgstr "lista"
+
+#: src/ps/help.c:69
+msgid "l"
+msgstr "l"
+
+#. Translation Hint, Pair #3
+#: src/ps/help.c:71
+msgid "output"
+msgstr "utdata"
+
+#: src/ps/help.c:71
+msgid "o"
+msgstr "u"
+
+#. Translation Hint, Pair #4
+#: src/ps/help.c:73
+msgid "threads"
+msgstr "trådar"
+
+#: src/ps/help.c:73
+msgid "t"
+msgstr "t"
+
+#. Translation Hint, Pair #5
+#: src/ps/help.c:75
+msgid "misc"
+msgstr "diverse"
+
+#: src/ps/help.c:75
+msgid "m"
+msgstr "d"
+
+#. Translation Hint, Pair #6
+#: src/ps/help.c:77
+msgid "all"
+msgstr "allt"
+
+#: src/ps/help.c:77
+msgid "a"
+msgstr "a"
+
+#: src/ps/help.c:98
+#, c-format
+msgid ""
+"\n"
+"Usage:\n"
+" %s [options]\n"
+msgstr ""
+"\n"
+"Användning:\n"
+" %s [flaggor]\n"
+
+#: src/ps/help.c:103
+msgid ""
+"\n"
+"Basic options:\n"
+msgstr ""
+"\n"
+"Grundläggande flaggor:\n"
+
+#: src/ps/help.c:104
+msgid " -A, -e all processes\n"
+msgstr " -A, -e alla processer\n"
+
+#: src/ps/help.c:105
+msgid " -a all with tty, except session leaders\n"
+msgstr " -a alla med tty, utom sessionsledare\n"
+
+#: src/ps/help.c:106
+msgid " a all with tty, including other users\n"
+msgstr " a alla med tty, inklusive andra användare\n"
+
+#: src/ps/help.c:107
+msgid " -d all except session leaders\n"
+msgstr " -d alla utom sessionsledare\n"
+
+#: src/ps/help.c:108
+msgid " -N, --deselect negate selection\n"
+msgstr " -N, --deselect negera urvalet\n"
+
+#: src/ps/help.c:109
+msgid " r only running processes\n"
+msgstr " r endast körande processer\n"
+
+#: src/ps/help.c:110
+msgid " T all processes on this terminal\n"
+msgstr " T alla processer på denna terminal\n"
+
+#: src/ps/help.c:111
+msgid " x processes without controlling ttys\n"
+msgstr " x processer utan styrande tty\n"
+
+#: src/ps/help.c:114
+msgid ""
+"\n"
+"Selection by list:\n"
+msgstr ""
+"\n"
+"Urval enligt lista:\n"
+
+#: src/ps/help.c:115
+msgid " -C <command> command name\n"
+msgstr " -C <kommando> kommandonamn\n"
+
+#: src/ps/help.c:116
+msgid " -G, --Group <GID> real group id or name\n"
+msgstr " -G, --Group <GID> verkligt grupp-id eller -namn\n"
+
+#: src/ps/help.c:117
+msgid " -g, --group <group> session or effective group name\n"
+msgstr " -g, --group <grupp> sessionens eller effektivt gruppnamn\n"
+
+#: src/ps/help.c:118
+msgid " -p, p, --pid <PID> process id\n"
+msgstr " -p, p, --pid <PID> process-id\n"
+
+#: src/ps/help.c:119
+msgid " --ppid <PID> parent process id\n"
+msgstr " --ppid <PID> föräldraprocess-id\n"
+
+#: src/ps/help.c:120
+msgid ""
+" -q, q, --quick-pid <PID>\n"
+" process id (quick mode)\n"
+msgstr ""
+" -q, q, --quick-pid <PID>\n"
+" process-id (snabbt läge)\n"
+
+#: src/ps/help.c:122
+msgid " -s, --sid <session> session id\n"
+msgstr " -s, --sid <session> sessions-id\n"
+
+#: src/ps/help.c:123
+msgid " -t, t, --tty <tty> terminal\n"
+msgstr " -t, t, --tty <tty> terminal\n"
+
+#: src/ps/help.c:124
+msgid " -u, U, --user <UID> effective user id or name\n"
+msgstr " -u, U, --user <UID> effektivt användar-id eller -namn\n"
+
+#: src/ps/help.c:125
+msgid " -U, --User <UID> real user id or name\n"
+msgstr " -U, --User <UID> verkligt användar-id eller -namn\n"
+
+#: src/ps/help.c:126
+msgid ""
+"\n"
+" The selection options take as their argument either:\n"
+" a comma-separated list e.g. '-u root,nobody' or\n"
+" a blank-separated list e.g. '-p 123 4567'\n"
+msgstr ""
+"\n"
+" Urvalsflaggorna tar som sina argument antingen:\n"
+" en kommaseparerad lista, t.ex. â€-u root,nobody†eller\n"
+" en mellanrumsseparerad lista t.ex. â€-p 123 4567â€\n"
+
+#: src/ps/help.c:132
+msgid ""
+"\n"
+"Output formats:\n"
+msgstr ""
+"\n"
+"Utdataformat:\n"
+
+#: src/ps/help.c:133
+msgid " -D <format> date format for lstart\n"
+msgstr " -D <format> datumformat för lstart\n"
+
+#: src/ps/help.c:134
+msgid " -F extra full\n"
+msgstr " -F extra fullständigt\n"
+
+#: src/ps/help.c:135
+msgid " -f full-format, including command lines\n"
+msgstr " -f fullständigt format, inklusive kommandorader\n"
+
+#: src/ps/help.c:136
+msgid " f, --forest ascii art process tree\n"
+msgstr " f, --forest ascii-konst över processträd\n"
+
+#: src/ps/help.c:137
+msgid " -H show process hierarchy\n"
+msgstr " -H visa processhierarkier\n"
+
+#: src/ps/help.c:138
+msgid " -j jobs format\n"
+msgstr " -j jobbformat\n"
+
+#: src/ps/help.c:139
+msgid " j BSD job control format\n"
+msgstr " j BSD jobbstyrformat\n"
+
+#: src/ps/help.c:140
+msgid " -l long format\n"
+msgstr " -l långt format\n"
+
+#: src/ps/help.c:141
+msgid " l BSD long format\n"
+msgstr " l BSD långt format\n"
+
+#: src/ps/help.c:142
+msgid " -M, Z add security data (for SELinux)\n"
+msgstr " -M, Z lägg till säkerhetsdata (för SELinux)\n"
+
+#: src/ps/help.c:143
+msgid " -O <format> preloaded with default columns\n"
+msgstr " -O <format> förladdad med standardkolumner\n"
+
+#: src/ps/help.c:144
+msgid " O <format> as -O, with BSD personality\n"
+msgstr " O <format> som -O, med BSD-personlighet\n"
+
+#: src/ps/help.c:145
+msgid ""
+" -o, o, --format <format>\n"
+" user-defined format\n"
+msgstr ""
+" -o, o, --format <format>\n"
+" användardefinierat format\n"
+
+#: src/ps/help.c:147
+msgid " -P add psr column\n"
+msgstr " -P lägg till en psr-kolumn\n"
+
+#: src/ps/help.c:148
+msgid " s signal format\n"
+msgstr " s signalformat\n"
+
+#: src/ps/help.c:149
+msgid " u user-oriented format\n"
+msgstr " u användarorienterat format\n"
+
+#: src/ps/help.c:150
+msgid " v virtual memory format\n"
+msgstr " v format för virtuellt minne\n"
+
+#: src/ps/help.c:151
+msgid " X register format\n"
+msgstr " X registerformat\n"
+
+#: src/ps/help.c:152
+msgid ""
+" -y do not show flags, show rss vs. addr (used with -l)\n"
+msgstr ""
+" -y visa inte flaggor, visa rss i.st.f. adr (används med -"
+"l)\n"
+
+#: src/ps/help.c:153
+msgid " --context display security context (for SELinux)\n"
+msgstr " --context visa säkerhetskontext (för SELinux)\n"
+
+#: src/ps/help.c:154
+msgid " --headers repeat header lines, one per page\n"
+msgstr " --headers upprepa rubrikrader, en per sida\n"
+
+#: src/ps/help.c:155
+msgid " --no-headers do not print header at all\n"
+msgstr " --no-headers skriv inte ut rubriker alls\n"
+
+#: src/ps/help.c:156
+msgid ""
+" --cols, --columns, --width <num>\n"
+" set screen width\n"
+msgstr ""
+" --cols, --columns, --width <ant>\n"
+" ange skärmbredd\n"
+
+#: src/ps/help.c:158
+msgid ""
+" --rows, --lines <num>\n"
+" set screen height\n"
+msgstr ""
+" --rows, --lines <ant>\n"
+" ange skärmhöjd\n"
+
+#: src/ps/help.c:160
+msgid " --signames display signal masks using signal names\n"
+msgstr " --signames använd signalnamn för att visa signalmasker\n"
+
+#: src/ps/help.c:163
+msgid ""
+"\n"
+"Show threads:\n"
+msgstr ""
+"\n"
+"Visa trådar:\n"
+
+#: src/ps/help.c:164
+msgid " H as if they were processes\n"
+msgstr " H som om de vore processer\n"
+
+#: src/ps/help.c:165
+msgid " -L possibly with LWP and NLWP columns\n"
+msgstr " -L möjligen med LWP- och NLWP-kolumner\n"
+
+#: src/ps/help.c:166
+msgid " -m, m after processes\n"
+msgstr " -m, m efter processer\n"
+
+#: src/ps/help.c:167
+msgid " -T possibly with SPID column\n"
+msgstr " -T möjligen med SPID-kolumn\n"
+
+#: src/ps/help.c:170
+msgid ""
+"\n"
+"Miscellaneous options:\n"
+msgstr ""
+"\n"
+"Diverse flaggor:\n"
+
+#: src/ps/help.c:171
+msgid " -c show scheduling class with -l option\n"
+msgstr " -c visa schemaläggningsklass med flaggan -l\n"
+
+#: src/ps/help.c:172
+msgid " c show true command name\n"
+msgstr " c visa äkta kommandonamn\n"
+
+#: src/ps/help.c:173
+msgid " e show the environment after command\n"
+msgstr " e visa miljön efter kommandot\n"
+
+#: src/ps/help.c:174
+msgid ""
+" k, --sort specify sort order as: [+|-]key[,[+|-]key[,...]]\n"
+msgstr ""
+" k, --sort ange sorteringsordning som: [+|-]nyckel[,"
+"[+|-]nyckel[,…]]\n"
+
+#: src/ps/help.c:175
+msgid " L show format specifiers\n"
+msgstr " L visa formatspecificerare\n"
+
+#: src/ps/help.c:176
+msgid " n display numeric uid and wchan\n"
+msgstr " n visa numerisk uid och vkan\n"
+
+#: src/ps/help.c:177
+msgid " S, --cumulative include some dead child process data\n"
+msgstr " S, --cumulative inkludera några döda barnprocessers data\n"
+
+#: src/ps/help.c:178
+msgid " -y do not show flags, show rss (only with -l)\n"
+msgstr " -y visa inte flaggor, visa rss (endast med -l)\n"
+
+#: src/ps/help.c:179
+msgid " -V, V, --version display version information and exit\n"
+msgstr " -V, V, --version visa versionsinformation och avsluta\n"
+
+#: src/ps/help.c:180
+msgid " -w, w unlimited output width\n"
+msgstr " -w, w obegränsad utdatabredd\n"
+
+#: src/ps/help.c:181
+#, c-format
+msgid ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" display help and exit\n"
+msgstr ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" visa hjälp och avsluta\n"
+
+#. Translation Notes for ps Help #2 ---------------------------------
+#. . Most of the following c-format string is derived from the 6
+#. . pairs of words + chars mentioned above in "Notes for ps Help #1".
+#. .
+#. . In its full English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . The word for "help" will be translated elsewhere. Thus, the only
+#. . translations below will be: "Try", "or" and "for additional...".
+#. .
+#: src/ps/help.c:202
+#, c-format
+msgid ""
+"\n"
+" Try '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" or '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" for additional help text.\n"
+msgstr ""
+"\n"
+" Prova â€%s --%s <%s|%s|%s|%s|%s|%s>â€\n"
+" eller â€%s --%s <%s|%s|%s|%s|%s|%s>â€\n"
+" för ytterligare hjälptext.\n"
+
+#: src/ps/help.c:215
+#, c-format
+msgid ""
+"\n"
+"For more details see ps(1).\n"
+msgstr ""
+"\n"
+"För fler detaljer, se ps(1).\n"
+
+#: src/ps/output.c:104
+msgid "Unable to get system boot time"
+msgstr "Kan inte få fram systemstartstiden"
+
+#: src/ps/output.c:119
+msgid "Unable to get total memory"
+msgstr "Kan inte få totalt minne"
+
+#: src/ps/output.c:2206
+#, c-format
+msgid "fix bigness error\n"
+msgstr "fixa storleksfel\n"
+
+#: src/ps/output.c:2289
+#, c-format
+msgid "bad alignment code\n"
+msgstr "felaktig justeringskod\n"
+
+#: src/ps/parser.c:63
+msgid "the option is exclusive: "
+msgstr "flaggan är uteslutande: "
+
+#: src/ps/parser.c:93
+msgid "process ID list syntax error"
+msgstr "syntax fel i process-ID-listan"
+
+#: src/ps/parser.c:94 src/ps/parser.c:95
+msgid "process ID out of range"
+msgstr "process-ID utanför intervallet"
+
+#: src/ps/parser.c:108
+msgid "user name does not exist"
+msgstr "användarnamnet finns inte"
+
+#: src/ps/parser.c:114
+msgid "user ID out of range"
+msgstr "användar-ID utanför intervallet"
+
+#: src/ps/parser.c:127
+msgid "group name does not exist"
+msgstr "gruppnamnet finns inte"
+
+#: src/ps/parser.c:133
+msgid "group ID out of range"
+msgstr "grupp-ID utanför intervallet"
+
+#: src/ps/parser.c:149 src/ps/parser.c:173
+msgid "TTY could not be found"
+msgstr "TTY:n hittades inte"
+
+#: src/ps/parser.c:175
+msgid "list member was not a TTY"
+msgstr "en listmedlem var inte en TTY"
+
+#: src/ps/parser.c:200
+msgid "improper list"
+msgstr "felaktig lista"
+
+#: src/ps/parser.c:249
+msgid "list of command names must follow -C"
+msgstr "en lista över kommandonamn måste följa -C"
+
+#: src/ps/parser.c:257
+msgid "date format must follow -D"
+msgstr "ett datumformat måste följa -D"
+
+#: src/ps/parser.c:270
+msgid "list of real groups must follow -G"
+msgstr "en lista över verkliga grupper måste följa -G"
+
+#: src/ps/parser.c:283
+msgid "list of jobs must follow -J"
+msgstr "en lista över jobb måste följa -J"
+
+#: src/ps/parser.c:311
+msgid "format or sort specification must follow -O"
+msgstr "en format- eller sorteringsspecifikation måste följa -O"
+
+#: src/ps/parser.c:322
+msgid "list of PRM groups must follow -R"
+msgstr "en lista över PRM-grupper måste följa -R"
+
+#: src/ps/parser.c:341
+msgid "list of real users must follow -U"
+msgstr "en lista över verkliga användare måste följa -U"
+
+#: src/ps/parser.c:382
+msgid "list of session leaders OR effective group names must follow -g"
+msgstr "en lista över sessionsledare ELLER effektiva gruppnamn måste följa -g"
+
+#: src/ps/parser.c:393
+msgid "list of session leaders OR effective group IDs was invalid"
+msgstr "listan över sessionsledare ELLER effektiva grupp-ID:n var felaktig"
+
+#: src/ps/parser.c:417
+msgid "format specification must follow -o"
+msgstr "en formatspecifikation måste följa -o"
+
+#: src/ps/parser.c:423
+msgid "list of process IDs must follow -p"
+msgstr "en lista över process-ID:n måste följa -p"
+
+#: src/ps/parser.c:440
+msgid "the -r option is reserved"
+msgstr "flaggan -r är reserverad"
+
+#: src/ps/parser.c:446
+msgid "list of session IDs must follow -s"
+msgstr "en lista över sessions-ID:n måste följa -s"
+
+#: src/ps/parser.c:454
+msgid "list of terminals (pty, tty...) must follow -t"
+msgstr "en lista över terminaler (pty, tty …) måste följa -t"
+
+#: src/ps/parser.c:462
+msgid "list of users must follow -u"
+msgstr "en lista över användare måste följa -u"
+
+#: src/ps/parser.c:484
+msgid "must set personality to get -x option"
+msgstr "man måste ange personlighet för att få flaggan -x"
+
+#: src/ps/parser.c:499
+msgid "list of zones (contexts, labels, whatever?) must follow -z"
+msgstr "en lista över zoner (kontexter, etiketter, någonting?) måste följa -z"
+
+#: src/ps/parser.c:506
+msgid "embedded '-' among SysV options makes no sense"
+msgstr "ett inbäddat â€-†bland SysV-flaggor är inte meningsfullt"
+
+#: src/ps/parser.c:512
+msgid "unsupported SysV option"
+msgstr "SysV-flagga som inte stödjs"
+
+#: src/ps/parser.c:525
+msgid "cannot happen - problem #1"
+msgstr "kan inte hända — problem nr. 1"
+
+#: src/ps/parser.c:529
+msgid "cannot happen - problem #2"
+msgstr "kan inte hända — problem nr. 2"
+
+#: src/ps/parser.c:531
+msgid "second chance parse failed, not BSD or SysV"
+msgstr "andra chansen av tolkning misslyckades, inte BSD eller SysV"
+
+#: src/ps/parser.c:548
+msgid "option A is reserved"
+msgstr "flaggan A är reserverad"
+
+#: src/ps/parser.c:553
+msgid "option C is reserved"
+msgstr "flaggan C är reserverad"
+
+#: src/ps/parser.c:573
+msgid "format or sort specification must follow O"
+msgstr "en format- eller sorteringsspecifikation måste följa O"
+
+#: src/ps/parser.c:598
+msgid "list of users must follow U"
+msgstr "en lista över användare måste följa U"
+
+#: src/ps/parser.c:610
+msgid "obsolete W option not supported (you have a /dev/drum?)"
+msgstr "den föråldrade flaggan W stödjs inte (har du en /dev/drum?)"
+
+#: src/ps/parser.c:646 src/ps/parser.c:921 src/ps/parser.c:930
+msgid "only one heading option may be specified"
+msgstr "endast en flagga för huvud får anges"
+
+#: src/ps/parser.c:661
+msgid "long sort specification must follow 'k'"
+msgstr "en lÃ¥ng sorteringsspecifikation mÃ¥ste följa â€kâ€"
+
+#: src/ps/parser.c:689
+msgid "format specification must follow o"
+msgstr "en formatspecifikation måste följa o"
+
+#: src/ps/parser.c:695
+msgid "list of process IDs must follow p"
+msgstr "en lista över process-ID:n måste följa p"
+
+#: src/ps/parser.c:753
+msgid "embedded '-' among BSD options makes no sense"
+msgstr "ett inbäddat â€-†bland BSD-flaggor är inte meningsfullt"
+
+#: src/ps/parser.c:759
+msgid "unsupported option (BSD syntax)"
+msgstr "flagga som inte stödjs (BSD-syntax)"
+
+#: src/ps/parser.c:847 src/ps/parser.c:859
+msgid "unknown gnu long option"
+msgstr "okänd lång gnu-flagga"
+
+#: src/ps/parser.c:867
+msgid "list of real groups must follow --Group"
+msgstr "en lista över verkliga grupper måste följa --Group"
+
+#: src/ps/parser.c:875
+msgid "list of real users must follow --User"
+msgstr "en lista över verkliga användare måste följa --User"
+
+#: src/ps/parser.c:894
+msgid "number of columns must follow --cols, --width, or --columns"
+msgstr "ett antal kolumner måste följa --cols, --width eller --columns"
+
+#: src/ps/parser.c:897
+msgid "option --cumulative does not take an argument"
+msgstr "flaggan --cumulative tar inte något argument"
+
+#: src/ps/parser.c:902
+msgid "date format must follow --date-format"
+msgstr "ett datumformat måste följa --date-format"
+
+#: src/ps/parser.c:908
+msgid "option --deselect does not take an argument"
+msgstr "flaggan --deselect tar inte något argument"
+
+#: src/ps/parser.c:920
+msgid "option --no-heading does not take an argument"
+msgstr "flaggan --no-heading tar inte något argument"
+
+#: src/ps/parser.c:929
+msgid "option --heading does not take an argument"
+msgstr "flaggan --heading tar inte något argument"
+
+#: src/ps/parser.c:935
+msgid "option --forest does not take an argument"
+msgstr "flaggan --forest tar inte något argument"
+
+#: src/ps/parser.c:941
+msgid "format specification must follow --format"
+msgstr "en formatspecifikation måste följa --format"
+
+#: src/ps/parser.c:947
+msgid "list of effective groups must follow --group"
+msgstr "en lista över effektiva grupper måste följa --group"
+
+#: src/ps/parser.c:965
+msgid "list of process IDs must follow --pid"
+msgstr "en lista över process-ID:n måste följa --pid"
+
+#: src/ps/parser.c:981
+msgid "list of process IDs must follow --ppid"
+msgstr "en lista över process-ID:n måste följa --ppid"
+
+#: src/ps/parser.c:999
+msgid "number of rows must follow --rows or --lines"
+msgstr "ett antal rader måste följa --rows eller --lines"
+
+#: src/ps/parser.c:1003
+msgid "some sid thing(s) must follow --sid"
+msgstr "några sid-saker måste följa --sid"
+
+#: src/ps/parser.c:1015
+msgid "long sort specification must follow --sort"
+msgstr "en lång sorteringsspecifikation måste följa --sort"
+
+#: src/ps/parser.c:1021
+msgid "list of ttys must follow --tty"
+msgstr "en lista över tty:er måste följa --tty"
+
+#: src/ps/parser.c:1029
+msgid "list of effective users must follow --user"
+msgstr "en lista över effektiva användare måste följa --user"
+
+#: src/ps/parser.c:1145
+msgid "way bad"
+msgstr "heltrasigt"
+
+#: src/ps/parser.c:1159
+msgid "garbage option"
+msgstr "skräpflagga"
+
+#: src/ps/parser.c:1163
+msgid "something broke"
+msgstr "något är trasigt"
+
+#: src/ps/parser.c:1183
+msgid "thread display conflicts with forest display"
+msgstr "att visa trådar står i konflikt med att visa skog"
+
+#: src/ps/parser.c:1188
+msgid "thread flags conflict; can't use H with m or -m"
+msgstr "trådflaggorna står i konflikt; man kan inte använda H med m eller -m"
+
+#: src/ps/parser.c:1190
+msgid "thread flags conflict; can't use both m and -m"
+msgstr "trådflaggorna står i konflikt; man kan inte använda både m och -m"
+
+#: src/ps/parser.c:1192
+msgid "thread flags conflict; can't use both -L and -T"
+msgstr "trådflaggorna står i konflikt; man kan inte använda både -L och -T"
+
+#: src/ps/parser.c:1265 src/ps/parser.c:1266
+#, c-format
+msgid "error: %s\n"
+msgstr "fel: %s\n"
+
+#: src/ps/select.c:71
+msgid "process selection options conflict"
+msgstr "flaggor för val av process står i konflikt"
+
+#: src/ps/sortformat.c:110 src/ps/sortformat.c:115
+msgid "seriously crashing: goodbye cruel world"
+msgstr "allvarlig krasch: adjö grymma värld"
+
+#: src/ps/sortformat.c:150 src/ps/sortformat.c:169
+msgid "missing AIX field descriptor"
+msgstr "saknad AIX-fältbeskrivare"
+
+#: src/ps/sortformat.c:152
+msgid "improper AIX field descriptor"
+msgstr "felaktig AIX-fältbeskrivare"
+
+#: src/ps/sortformat.c:174
+msgid "unknown AIX field descriptor"
+msgstr "okänd AIX-fältbeskrivare"
+
+#: src/ps/sortformat.c:179
+msgid "AIX field descriptor processing bug"
+msgstr "fel i bearbetning av AIX-fältbeskrivare"
+
+#: src/ps/sortformat.c:287
+#, c-format
+msgid "unknown user-defined format specifier \"%s\""
+msgstr "okänd användardefinierad formatspecificerare â€%sâ€"
+
+#: src/ps/sortformat.c:314
+msgid "empty format list"
+msgstr "tom formatlista"
+
+#: src/ps/sortformat.c:315
+msgid "improper format list"
+msgstr "felaktig formatlista"
+
+#: src/ps/sortformat.c:316
+msgid "column widths must be unsigned decimal numbers"
+msgstr "kolumnbredder måste vara teckenlösa decimaltal"
+
+#: src/ps/sortformat.c:317
+msgid "can not set width for a macro (multi-column) format specifier"
+msgstr ""
+"det går inte att sätta bredden för en (flerkolumners) "
+"makroformatspecificerare"
+
+#: src/ps/sortformat.c:371 src/ps/sortformat.c:387
+msgid "improper sort list"
+msgstr "felaktig sorteringslista"
+
+#: src/ps/sortformat.c:382
+msgid "empty sort list"
+msgstr "tom sorteringslista"
+
+#: src/ps/sortformat.c:403 src/ps/sortformat.c:482 src/ps/sortformat.c:484
+msgid "unknown sort specifier"
+msgstr "okänd sorteringsspecificerare"
+
+#: src/ps/sortformat.c:430 src/ps/sortformat.c:435 src/ps/sortformat.c:442
+#: src/ps/sortformat.c:448
+msgid "bad sorting code"
+msgstr "oriktig sorteringskod"
+
+#: src/ps/sortformat.c:445
+msgid "PPID sort and forest output conflict"
+msgstr "PPID-sortering och skogsutdata står i konflikt"
+
+#: src/ps/sortformat.c:519
+msgid "option -O can not follow other format options"
+msgstr "flaggan -O får inte följa efter andra formatflaggor"
+
+#: src/ps/sortformat.c:526 src/ps/sortformat.c:544
+msgid "multiple sort options"
+msgstr "multipla sorteringsflaggor"
+
+#: src/ps/sortformat.c:534
+msgid "option O is neither first format nor sort order"
+msgstr "flaggan O är varken första formatet eller sorteringsordning"
+
+#: src/ps/sortformat.c:661
+msgid "modifier -y without format -l makes no sense"
+msgstr "modifieraren -y utan formatet -l är meningslös"
+
+#: src/ps/sortformat.c:760
+msgid "bug: must reset the list first"
+msgstr "fel: måste nollställa listan först"
+
+#: src/ps/sortformat.c:797
+msgid "tell <procps@freelists.org> what you expected"
+msgstr "berätta för <procps@freelists.org> vad du förväntade dig"
+
+#: src/ps/sortformat.c:807
+msgid ""
+"tell <procps@freelists.org> what you want (-L/-T, -m/m/H, and $PS_FORMAT)"
+msgstr ""
+"berätta för <procps@freelists.org> vad du vill (-L/-T, -m/m/H och $PS_FORMAT)"
+
+#: src/ps/sortformat.c:824
+#, c-format
+msgid "warning: $PS_FORMAT ignored. (%s)\n"
+msgstr "varning: $PS_FORMAT ignoreras. (%s)\n"
+
+#: src/ps/sortformat.c:829 src/ps/sortformat.c:839
+msgid "conflicting format options"
+msgstr "formatflaggor står i konflikt"
+
+#: src/ps/sortformat.c:830
+msgid "can not use output modifiers with user-defined output"
+msgstr ""
+"det går inte att använda utdatamodifierare med användardefinierad utdata"
+
+#: src/ps/sortformat.c:831
+msgid "-L/-T with H/m/-m and -o/-O/o/O is nonsense"
+msgstr "-L/-T med H/m/-m och -o/-O/o/O är nonsens"
+
+#: src/ps/sortformat.c:889
+msgid "internal error: no PID or PPID for -j option"
+msgstr "internt fel: inget PID eller PPID till flaggan -j"
+
+#: src/ps/sortformat.c:891
+msgid "lost my PGID"
+msgstr "tappade bort mitt PGID"
+
+#: src/ps/sortformat.c:904
+msgid "internal error: no PRI for -c option"
+msgstr "internt fel: ingen PRI till flaggan -c"
+
+#: src/ps/sortformat.c:907
+msgid "lost my CLS"
+msgstr "tappade bort min CLS"
+
+#: src/ps/sortformat.c:912
+msgid "-T with H/-m/m but no PID for SPID to follow"
+msgstr "-T med H/-m/m men ingen PID för SPID att följa"
+
+#: src/ps/sortformat.c:923
+msgid "-L with H/-m/m but no PID/PGID/SID/SESS for NLWP to follow"
+msgstr "-L med H/-m/m men ingen PID/PGID/SID/SESS för NLWP att följa"
+
+#: src/pwdx.c:41
+#, c-format
+msgid " %s [options] pid...\n"
+msgstr " %s [flaggor] pid…\n"
+
+#: src/pwdx.c:117
+#, c-format
+msgid "invalid process id: %s"
+msgstr "felaktigt process-id: %s"
+
+#: src/skill.c:285
+msgid "Unable to create pid Pids_info structure"
+msgstr "Kan inte skapa pid Pids_info-post"
+
+#: src/skill.c:288 src/w.c:458
+msgid "Unable to load process information"
+msgstr "Kan inte läsa in processinformation"
+
+#: src/skill.c:319
+#, c-format
+msgid " %s [signal] [options] <expression>\n"
+msgstr " %s [signal] [flaggor] <uttryck>\n"
+
+#: src/skill.c:323
+#, c-format
+msgid " %s [new priority] [options] <expression>\n"
+msgstr " %s [ny prioritet] [flaggor] <uttryck>\n"
+
+#: src/skill.c:327
+msgid " -f, --fast fast mode (not implemented)\n"
+msgstr " -f, --fast snabbt läge (ej implementerat)\n"
+
+#: src/skill.c:328
+msgid " -i, --interactive interactive\n"
+msgstr " -i, --interactive interaktiv\n"
+
+#: src/skill.c:329
+msgid " -l, --list list all signal names\n"
+msgstr " -l, --list lista alla signalnamn\n"
+
+#: src/skill.c:330
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr " -L, --table lista alla signalnamn i en trevlig tabell\n"
+
+#: src/skill.c:331
+msgid ""
+" -n, --no-action do not actually kill processes; just print what would "
+"happen\n"
+msgstr ""
+" -n, --no-action döda inte processen; skriv bara vad som skulle hända\n"
+
+#: src/skill.c:332
+msgid " -v, --verbose explain what is being done\n"
+msgstr " -v, --verbose förklara vad som görs\n"
+
+#: src/skill.c:333
+msgid " -w, --warnings enable warnings (not implemented)\n"
+msgstr " -w, --warnings aktivera varningar (ej implementerat)\n"
+
+#: src/skill.c:335
+msgid ""
+"Expression can be: terminal, user, pid, command.\n"
+"The options below may be used to ensure correct interpretation.\n"
+msgstr ""
+"Uttryck kan vara: terminal, användare, pid, kommando.\n"
+"Flaggorna nedan kan användas för att säkerställa rätt tolkning.\n"
+
+#: src/skill.c:337
+msgid " -c, --command <command> expression is a command name\n"
+msgstr " -c, --command <kommando> uttrycket är ett kommandonamn\n"
+
+#: src/skill.c:338
+msgid " -p, --pid <pid> expression is a process id number\n"
+msgstr " -p, --pid <pid> uttrycket är ett process-id-nummer\n"
+
+#: src/skill.c:339
+msgid " -t, --tty <tty> expression is a terminal\n"
+msgstr " -t, --tty <tty> uttrycket är en terminal\n"
+
+#: src/skill.c:340
+msgid " -u, --user <username> expression is a username\n"
+msgstr " -u, --user <användarnamn> uttrycket är ett användarnamn\n"
+
+#: src/skill.c:342
+msgid "Alternatively, expression can be:\n"
+msgstr "Alternativt kan uttrycket vara:\n"
+
+#: src/skill.c:343
+msgid ""
+" --ns <pid> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+" --ns <pid> matcha processerna som tillhör samma namnrymd\n"
+" som <pid>\n"
+
+#: src/skill.c:345
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option; available namespaces are\n"
+": ipc, mnt, net, pid, user, uts\n"
+msgstr ""
+" --nslist <ns,…> lista vilka namnrymder som kommer övervägas för\n"
+" flaggan --ns; tillgängliga namnrymder är\n"
+": ipc, mnt, net, pid, user, uts\n"
+
+#: src/skill.c:355
+#, c-format
+msgid ""
+"\n"
+"The default signal is TERM. Use -l or -L to list available signals.\n"
+"Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0.\n"
+"Alternate signals may be specified in three ways: -SIGKILL -KILL -9\n"
+msgstr ""
+"\n"
+"Standardsignalen är TERM. Använd -l eller -L för att lista tillgängliga\n"
+"signaler. Särskilt användbara signaler inkluderar HUP, INT, KILL, STOP, "
+"CONT\n"
+"och 0. Alternativa signaler kan anges på tre sätt: -SIGKILL -KILL -9\n"
+
+#: src/skill.c:362
+#, c-format
+msgid ""
+"\n"
+"The default priority is +4. (snice +4 ...)\n"
+"Priority numbers range from +20 (slowest) to -20 (fastest).\n"
+"Negative priority numbers are restricted to administrative users.\n"
+msgstr ""
+"\n"
+"Standardprioriteten är +4. (snice +4 …)\n"
+"Prioritetstal sträcker sig från +20 (långsammast) till -20 (snabbast).\n"
+"Negativa prioritetsnummer är förbehållna för administrativa användare.\n"
+
+#: src/skill.c:384
+#, c-format
+msgid "priority %lu out of range"
+msgstr "prioriteten %lu är utanför intervallet"
+
+#: src/skill.c:493
+#, c-format
+msgid "invalid pid number %s"
+msgstr "felaktigt pid-tal %s"
+
+#: src/skill.c:497
+msgid "error reading reference namespace information"
+msgstr "fel när referensnamnrymdens information lästes"
+
+#: src/skill.c:505
+msgid "invalid namespace list"
+msgstr "felaktig namnrymdslista"
+
+#: src/skill.c:542
+msgid "no process selection criteria"
+msgstr "inget processvalskriterium"
+
+#: src/skill.c:545
+msgid "general flags may not be repeated"
+msgstr "allmänna flaggor får inte upprepas"
+
+#: src/skill.c:548
+msgid "-i makes no sense with -v, -f, and -n"
+msgstr "-i är inte meningsfullt med -v, -f och -n"
+
+#: src/skill.c:550
+msgid "-v makes no sense with -i and -f"
+msgstr "-v är inte meningsfullt med -i och -f"
+
+#: src/skill.c:594
+#, c-format
+msgid "skill: \"%s\" is not supported\n"
+msgstr "skill: â€%s†stödjs inte\n"
+
+#: src/slabtop.c:108
+msgid " -d, --delay <secs> delay updates\n"
+msgstr " -d, --delay <sek> fördröjning mellan uppdateringar\n"
+
+#: src/slabtop.c:109
+msgid " -o, --once only display once, then exit\n"
+msgstr " -o, --once visa endast en gång, avsluta sedan\n"
+
+#: src/slabtop.c:110
+msgid " -s, --sort <char> specify sort criteria by character (see below)\n"
+msgstr ""
+" -s, --sort <tkn> ange sorteringskriterium enligt tecken (se nedan)\n"
+
+#: src/slabtop.c:115
+msgid ""
+"\n"
+"The following are valid sort criteria:\n"
+msgstr ""
+"\n"
+"Följande är giltiga sorteringskritierier:\n"
+
+#: src/slabtop.c:116
+msgid " a: sort by number of active objects\n"
+msgstr " a: sortera efter antal aktiva objekt\n"
+
+#: src/slabtop.c:117
+msgid " b: sort by objects per slab\n"
+msgstr " b: sortera efter objekt per skiva\n"
+
+#: src/slabtop.c:118
+msgid " c: sort by cache size\n"
+msgstr " c: sortera efter cache-storlek\n"
+
+#: src/slabtop.c:119
+msgid " l: sort by number of slabs\n"
+msgstr " l: sortera efter antal skivor\n"
+
+#: src/slabtop.c:120
+msgid " v: sort by (non display) number of active slabs\n"
+msgstr " v: sortera efter (ej visade) antal aktiva skivor\n"
+
+#: src/slabtop.c:121
+msgid " n: sort by name\n"
+msgstr " n: sortera efter namn\n"
+
+#: src/slabtop.c:122
+msgid " o: sort by number of objects (the default)\n"
+msgstr " o: sortera efter antal objekt (standard)\n"
+
+#: src/slabtop.c:123
+msgid " p: sort by (non display) pages per slab\n"
+msgstr " p: sortera efter (ej visade) sidor per skiva\n"
+
+#: src/slabtop.c:124
+msgid " s: sort by object size\n"
+msgstr " s: sortera efter objektstorlek\n"
+
+#: src/slabtop.c:125
+msgid " u: sort by cache utilization\n"
+msgstr " u: sortera efter cache-användning\n"
+
+#: src/slabtop.c:188 src/slabtop.c:199
+msgid "Cannot combine -d and -o options"
+msgstr "Det går inte att kombinera flaggorna -d och -o"
+
+#: src/slabtop.c:190
+msgid "illegal delay"
+msgstr "felaktig fördröjning"
+
+#: src/slabtop.c:192 src/tload.c:142 src/vmstat.c:1049
+msgid "delay must be positive integer"
+msgstr "fördröjningen måste vara ett positivt heltal"
+
+#: src/slabtop.c:236
+msgid "Error getting slab summary results"
+msgstr "Fel när slab-sammanfattningsresultaten hämtades"
+
+#. Translation Hint: Next five strings must not
+#. * exceed a length of 35 characters.
+#: src/slabtop.c:242
+#, no-c-format
+msgid "Active / Total Objects (% used)"
+msgstr "Aktiva / Totala objekt (% använt)"
+
+#: src/slabtop.c:248
+#, no-c-format
+msgid "Active / Total Slabs (% used)"
+msgstr "Aktiva / Totala skivor (% använt)"
+
+#: src/slabtop.c:254
+#, no-c-format
+msgid "Active / Total Caches (% used)"
+msgstr "Aktiva / Totala cachar (% använt)"
+
+#: src/slabtop.c:260
+#, no-c-format
+msgid "Active / Total Size (% used)"
+msgstr "Aktiv / Total storlek (% använt)"
+
+#: src/slabtop.c:265
+msgid "Minimum / Average / Maximum Object"
+msgstr "Minsta / Genomsn. / Största objekt"
+
+#. Translation Hint: Please keep alignment of the
+#. * following intact.
+#: src/slabtop.c:276
+msgid " OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME"
+msgstr " OBJ AKTIVT ANV OBJ-STRL SKIVOR OBJ/SKIV CACHE-STRL NAMN"
+
+#: src/slabtop.c:313 src/vmstat.c:767
+msgid "Unable to create slabinfo structure"
+msgstr "Kan inte skapa slabinfo-posten"
+
+#: src/slabtop.c:318
+msgid "terminal setting retrieval"
+msgstr "hämta terminalinställningar"
+
+#: src/slabtop.c:334 src/vmstat.c:774
+msgid "Unable to get slabinfo node data"
+msgstr "Kan inte hämta slabinfo-noddata"
+
+#: src/slabtop.c:340 src/vmstat.c:776
+msgid "Unable to sort slab nodes"
+msgstr "Kan inte sortera skivnoder"
+
+#: src/sysctl.c:118
+#, c-format
+msgid "Path is not under %s: %s"
+msgstr "Sökvägen är inte under %s: %s"
+
+#: src/sysctl.c:136
+#, c-format
+msgid "separators should not be repeated: %s"
+msgstr "separatorer skall inte upprepas: %s"
+
+#: src/sysctl.c:232
+#, c-format
+msgid " %s [options] [variable[=value] ...]\n"
+msgstr " %s [flaggor] [variabel[=värde] …]\n"
+
+#: src/sysctl.c:235
+msgid " -a, --all display all variables\n"
+msgstr " -a, --all visa alla variabler\n"
+
+#: src/sysctl.c:236
+msgid " -A alias of -a\n"
+msgstr " -A alias för -a\n"
+
+#: src/sysctl.c:237
+msgid " -X alias of -a\n"
+msgstr " -X alias för -a\n"
+
+#: src/sysctl.c:238
+msgid " --deprecated include deprecated parameters to listing\n"
+msgstr " --deprecated inkludera undanbedda parameter i listningen\n"
+
+#: src/sysctl.c:239
+msgid " --dry-run Print the key and values but do not write\n"
+msgstr " --dry-run Skriv nyckeln och värden men skriv inte\n"
+
+#: src/sysctl.c:240
+msgid " -b, --binary print value without new line\n"
+msgstr " -b, --binary skriv värden utan en nyrad\n"
+
+#: src/sysctl.c:241
+msgid " -e, --ignore ignore unknown variables errors\n"
+msgstr " -e, --ignore ignorera fel med okända variabler\n"
+
+#: src/sysctl.c:242
+msgid " -N, --names print variable names without values\n"
+msgstr " -N, --names skriv variabelnamn utan värden\n"
+
+#: src/sysctl.c:243
+msgid " -n, --values print only values of the given variable(s)\n"
+msgstr " -n, --values skriv endast värden på de angivna variablerna\n"
+
+#: src/sysctl.c:244
+msgid " -p, --load[=<file>] read values from file\n"
+msgstr " -p, --load[=<fil>] läs värden från en fil\n"
+
+#: src/sysctl.c:245
+msgid " -f alias of -p\n"
+msgstr " -f alias för -p\n"
+
+#: src/sysctl.c:246
+msgid " --system read values from all system directories\n"
+msgstr " --system läs värden från alla systemkataloger\n"
+
+#: src/sysctl.c:247
+msgid ""
+" -r, --pattern <expression>\n"
+" select setting that match expression\n"
+msgstr ""
+" -r, --pattern <uttryck>\n"
+" välj inställningar som matchar uttryck\n"
+
+#: src/sysctl.c:249
+msgid " -q, --quiet do not echo variable set\n"
+msgstr " -q, --quiet eka inte satta variabler\n"
+
+#: src/sysctl.c:250
+msgid " -w, --write enable writing a value to variable\n"
+msgstr " -w, --write skriv ett värde till en variabel\n"
+
+#: src/sysctl.c:251
+msgid " -o does nothing\n"
+msgstr " -o ingen effekt\n"
+
+#: src/sysctl.c:252
+msgid " -x does nothing\n"
+msgstr " -x ingen effekt\n"
+
+#: src/sysctl.c:253
+msgid " -d alias of -h\n"
+msgstr " -d alias för -h\n"
+
+#: src/sysctl.c:334 src/sysctl.c:390
+#, c-format
+msgid "\"%s\" is an unknown key"
+msgstr "â€%s†är en okänd nyckel"
+
+#: src/sysctl.c:352 src/sysctl.c:508 src/sysctl.c:545
+#, c-format
+msgid "cannot stat %s"
+msgstr "kan inte ta status på %s"
+
+#: src/sysctl.c:395 src/sysctl.c:437
+#, c-format
+msgid "permission denied on key '%s'"
+msgstr "tillÃ¥telse nekad för nyckeln â€%sâ€"
+
+#: src/sysctl.c:402 src/sysctl.c:454
+#, c-format
+msgid "reading key \"%s\""
+msgstr "läser nyckeln â€%sâ€"
+
+#: src/sysctl.c:492
+#, c-format
+msgid "unable to open directory \"%s\""
+msgstr "kan inte öppna katalogen â€%sâ€"
+
+#: src/sysctl.c:557
+msgid "strdup key"
+msgstr "strdup-nyckel"
+
+#: src/sysctl.c:564 src/sysctl.c:571 src/sysctl.c:604
+#, c-format
+msgid "setting key \"%s\""
+msgstr "sätter nyckeln â€%sâ€"
+
+#: src/sysctl.c:581
+#, c-format
+msgid "\"%s\" is an unknown key%s"
+msgstr "â€%s†är en okänd nyckel%s"
+
+#: src/sysctl.c:582 src/sysctl.c:591 src/sysctl.c:595
+msgid ", ignoring"
+msgstr ", ignorerar"
+
+#: src/sysctl.c:590
+#, c-format
+msgid "permission denied on key \"%s\"%s"
+msgstr "tillÃ¥telse nekad för nyckeln â€%sâ€%s"
+
+#: src/sysctl.c:594
+#, c-format
+msgid "setting key \"%s\"%s"
+msgstr "sätter nyckeln â€%sâ€%s"
+
+#: src/sysctl.c:669
+#, c-format
+msgid "%s(%d): invalid syntax, continuing..."
+msgstr "%s(%d): felaktig syntax, fortsätter …"
+
+#: src/sysctl.c:761
+#, c-format
+msgid ""
+"GLOB_TILDE is not supported on your platform, the tilde in \"%s\" won't be "
+"expanded."
+msgstr ""
+"GLOB_TILDE stödjs inte pÃ¥ din plattform, tildet i â€%s†kommer inte "
+"expanderas."
+
+#: src/sysctl.c:767
+msgid "glob failed"
+msgstr "glob misslyckades"
+
+#: src/sysctl.c:773
+#, c-format
+msgid "cannot open \"%s\""
+msgstr "kan inte öppna â€%sâ€"
+
+#: src/sysctl.c:877 src/sysctl.c:884
+#, c-format
+msgid "* Applying %s ...\n"
+msgstr "* Verkställer %s …\n"
+
+#: src/sysctl.c:1050
+#, c-format
+msgid ""
+"no variables specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+"inga variabler angivna\n"
+"Prova â€%s --help†för mer information."
+
+#: src/sysctl.c:1054
+#, c-format
+msgid ""
+"options -N and -q cannot coexist\n"
+"Try `%s --help' for more information."
+msgstr ""
+"flaggorna -N och -q kan inte vara tillsammans\n"
+"Prova â€%s --help†för mer information."
+
+#: src/tload.c:75 src/tload.c:77
+msgid "screen too small or too large"
+msgstr "skärmen är för liten eller för stor"
+
+#: src/tload.c:80
+msgid "screen too small"
+msgstr "skärmen är för liten"
+
+#: src/tload.c:96
+#, c-format
+msgid " %s [options] [tty]\n"
+msgstr " %s [flaggor] [tty]\n"
+
+#: src/tload.c:98
+msgid " -d, --delay <secs> update delay in seconds\n"
+msgstr " -d, --delay <sek> uppdateringsfördröjning i sekunder\n"
+
+#: src/tload.c:99
+msgid " -s, --scale <num> vertical scale\n"
+msgstr " -s, --scale <tal> vertikal skala\n"
+
+#: src/tload.c:137
+msgid "scale cannot be negative"
+msgstr "skalan kan inte vara negativ"
+
+#: src/tload.c:144 src/vmstat.c:1051
+msgid "too large delay value"
+msgstr "för stort fördröjningsvärde"
+
+#: src/tload.c:159
+msgid "can not open tty"
+msgstr "kan inte öppna tty:n"
+
+#: src/tload.c:182
+msgid "Load average file /proc/loadavg does not exist"
+msgstr "Genomsnittslastsfilen /proc/loadavg finns inte"
+
+#: src/tload.c:185
+msgid "Unable to get load average"
+msgstr "Kan inte hämta genomsnittslast"
+
+#: src/tload.c:227 src/tload.c:229
+msgid "writing to tty failed"
+msgstr "misslyckades att skriva till tty:n"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The following line pairs contain only plain text and consist of:
+#. . 1) a field name/column header - mostly upper case
+#. . 2) the related description - both upper and lower case
+#. .
+#. . To avoid truncation on the main top display, each column header
+#. . is noted with its maximum size, while a few are 'variable' width.
+#. . Names for the latter should probably be 10 or fewer characters.
+#. .
+#. . Those fields shown with a '+' are also eligible for user resizing
+#. . using the 'X' command. That means the default width might produce
+#. . truncation but need not if widened (see the man page 'X' command).
+#. .
+#. . All headers are subject to a maximum of 8 on the Fields Management
+#. . screen where truncation is entirely acceptable.
+#. .
+#. . The associated descriptions are always limited to 20 characters,
+#. . and are used only on the Fields Management screen.
+#. .
+#. . In all cases, fewer characters are just fine.
+#. .
+#. Translation Hint: maximum 'PID' = 5
+#: src/top/top_nls.c:152
+msgid "PID"
+msgstr "PID"
+
+#: src/top/top_nls.c:153
+msgid "Process Id"
+msgstr "Process-id"
+
+#. Translation Hint: maximum 'PPID' = 5
+#: src/top/top_nls.c:155
+msgid "PPID"
+msgstr "FPID"
+
+#: src/top/top_nls.c:156
+msgid "Parent Process pid"
+msgstr "Föräldraprocess-pid"
+
+#. Translation Hint: maximum 'UID' = 5 +
+#: src/top/top_nls.c:158
+msgid "UID"
+msgstr "AID"
+
+#: src/top/top_nls.c:159
+msgid "Effective User Id"
+msgstr "Effektiv användar-id"
+
+#. Translation Hint: maximum 'USER' = 8 +
+#: src/top/top_nls.c:161 src/w.c:799
+msgid "USER"
+msgstr "ANVÄNDARE"
+
+#: src/top/top_nls.c:162
+msgid "Effective User Name"
+msgstr "Effektivt anv.-namn"
+
+#. Translation Hint: maximum 'RUID' = 5 +
+#: src/top/top_nls.c:164
+msgid "RUID"
+msgstr "VAID"
+
+#: src/top/top_nls.c:165
+msgid "Real User Id"
+msgstr "Verkligt användar-id"
+
+#. Translation Hint: maximum 'RUSER' = 8 +
+#: src/top/top_nls.c:167
+msgid "RUSER"
+msgstr "VANV"
+
+#: src/top/top_nls.c:168
+msgid "Real User Name"
+msgstr "Verkligt anv.-namn"
+
+#. Translation Hint: maximum 'SUID' = 5 +
+#: src/top/top_nls.c:170
+msgid "SUID"
+msgstr "SAID"
+
+#: src/top/top_nls.c:171
+msgid "Saved User Id"
+msgstr "Sparat användar-id"
+
+#. Translation Hint: maximum 'SUSER' = 8 +
+#: src/top/top_nls.c:173
+msgid "SUSER"
+msgstr "SANV"
+
+#: src/top/top_nls.c:174
+msgid "Saved User Name"
+msgstr "Sparat användarnamn"
+
+#. Translation Hint: maximum 'GID' = 5 +
+#: src/top/top_nls.c:176
+msgid "GID"
+msgstr "GID"
+
+#: src/top/top_nls.c:177
+msgid "Group Id"
+msgstr "Grupp-id"
+
+#. Translation Hint: maximum 'GROUP' = 8 +
+#: src/top/top_nls.c:179
+msgid "GROUP"
+msgstr "GRUPP"
+
+#: src/top/top_nls.c:180
+msgid "Group Name"
+msgstr "Gruppnamn"
+
+#. Translation Hint: maximum 'PGRP' = 5
+#: src/top/top_nls.c:182
+msgid "PGRP"
+msgstr "PGRP"
+
+#: src/top/top_nls.c:183
+msgid "Process Group Id"
+msgstr "Processgrupp-id"
+
+#. Translation Hint: maximum 'TTY' = 8 +
+#: src/top/top_nls.c:185
+msgid "TTY"
+msgstr "TTY"
+
+#: src/top/top_nls.c:186
+msgid "Controlling Tty"
+msgstr "Styr-tty"
+
+#. Translation Hint: maximum 'TPGID' = 5
+#: src/top/top_nls.c:188
+msgid "TPGID"
+msgstr "TPGID"
+
+#: src/top/top_nls.c:189
+msgid "Tty Process Grp Id"
+msgstr "Tty-processgrupp-id"
+
+#. Translation Hint: maximum 'SID' = 5
+#: src/top/top_nls.c:191
+msgid "SID"
+msgstr "SID"
+
+#: src/top/top_nls.c:192
+msgid "Session Id"
+msgstr "Sessions-id"
+
+#. Translation Hint: maximum 'PR' = 3
+#: src/top/top_nls.c:194
+msgid "PR"
+msgstr "PR"
+
+#: src/top/top_nls.c:195
+msgid "Priority"
+msgstr "Prioritet"
+
+#. Translation Hint: maximum 'NI' = 3
+#: src/top/top_nls.c:197
+msgid "NI"
+msgstr "NI"
+
+#: src/top/top_nls.c:198
+msgid "Nice Value"
+msgstr "Nice-värde"
+
+#. Translation Hint: maximum 'nTH' = 3
+#: src/top/top_nls.c:200
+msgid "nTH"
+msgstr "aTR"
+
+#: src/top/top_nls.c:201
+msgid "Number of Threads"
+msgstr "Antal trådar"
+
+#. Translation Hint: maximum 'P' = 1
+#: src/top/top_nls.c:203
+msgid "P"
+msgstr "P"
+
+#: src/top/top_nls.c:204
+msgid "Last Used Cpu (SMP)"
+msgstr "Sen. anv. CPU (SMP)"
+
+#. Translation Hint: maximum '%CPU' = 4
+#: src/top/top_nls.c:206
+#, c-format
+msgid "%CPU"
+msgstr "%CPU"
+
+#: src/top/top_nls.c:207
+msgid "CPU Usage"
+msgstr "CPU-användning"
+
+#. Translation Hint: maximum '' = 6
+#: src/top/top_nls.c:209
+msgid "TIME"
+msgstr "TID"
+
+#: src/top/top_nls.c:210
+msgid "CPU Time"
+msgstr "CPU-tid"
+
+#. Translation Hint: maximum 'TIME+' = 9
+#: src/top/top_nls.c:212
+msgid "TIME+"
+msgstr "TID+"
+
+#: src/top/top_nls.c:213
+msgid "CPU Time, hundredths"
+msgstr "CPU-tid, hundradelar"
+
+#. Translation Hint: maximum '%MEM' = 4
+#: src/top/top_nls.c:215
+msgid "%MEM"
+msgstr "%MIN"
+
+#: src/top/top_nls.c:216
+msgid "Memory Usage (RES)"
+msgstr "Minnesanv. (RES)"
+
+#. Translation Hint: maximum 'VIRT' = 7
+#: src/top/top_nls.c:218
+msgid "VIRT"
+msgstr "VIRT"
+
+#: src/top/top_nls.c:219
+msgid "Virtual Image (KiB)"
+msgstr "Virtuell avbild(KiB)"
+
+#. Translation Hint: maximum 'SWAP' = 6
+#: src/top/top_nls.c:221
+msgid "SWAP"
+msgstr "VÄXL"
+
+#: src/top/top_nls.c:222
+msgid "Swapped Size (KiB)"
+msgstr "Växlingsstorlek(KiB)"
+
+#. Translation Hint: maximum 'RES' = 6
+#: src/top/top_nls.c:224
+msgid "RES"
+msgstr "RES"
+
+#: src/top/top_nls.c:225
+msgid "Resident Size (KiB)"
+msgstr "Resident storl (KiB)"
+
+#. Translation Hint: maximum 'CODE' = 4
+#: src/top/top_nls.c:227
+msgid "CODE"
+msgstr "KOD"
+
+#: src/top/top_nls.c:228
+msgid "Code Size (KiB)"
+msgstr "Kodstorlek (KiB)"
+
+#. Translation Hint: maximum 'DATA' = 7
+#: src/top/top_nls.c:230
+msgid "DATA"
+msgstr "DATA"
+
+#: src/top/top_nls.c:231
+msgid "Data+Stack (KiB)"
+msgstr "Data+stack (KiB)"
+
+#. Translation Hint: maximum 'SHR' = 6
+#: src/top/top_nls.c:233
+msgid "SHR"
+msgstr "DELT"
+
+#: src/top/top_nls.c:234
+msgid "Shared Memory (KiB)"
+msgstr "Delat minne (KiB)"
+
+#. Translation Hint: maximum 'nMaj' = 4
+#: src/top/top_nls.c:236
+msgid "nMaj"
+msgstr "aSto"
+
+#: src/top/top_nls.c:237
+msgid "Major Page Faults"
+msgstr "Stora sidfel"
+
+#. Translation Hint: maximum 'nMin' = 4
+#: src/top/top_nls.c:239
+msgid "nMin"
+msgstr "aSmå"
+
+#: src/top/top_nls.c:240
+msgid "Minor Page Faults"
+msgstr "Små sidfel"
+
+#. Translation Hint: maximum 'nDRT' = 4
+#: src/top/top_nls.c:242
+msgid "nDRT"
+msgstr "aSmu"
+
+#: src/top/top_nls.c:243
+msgid "Dirty Pages Count"
+msgstr "Antal smutsiga sidor"
+
+#. Translation Hint: maximum 'S' = 1
+#: src/top/top_nls.c:245
+msgid "S"
+msgstr "S"
+
+#: src/top/top_nls.c:246
+msgid "Process Status"
+msgstr "Processtatus"
+
+#. Translation Hint: maximum 'COMMAND' = variable
+#: src/top/top_nls.c:248
+msgid "COMMAND"
+msgstr "KOMMANDO"
+
+#: src/top/top_nls.c:249
+msgid "Command Name/Line"
+msgstr "Kommandonamn/-rad"
+
+#. Translation Hint: maximum 'WCHAN' = 10 +
+#: src/top/top_nls.c:251
+msgid "WCHAN"
+msgstr "VKAN"
+
+#: src/top/top_nls.c:252
+msgid "Sleeping in Function"
+msgstr "Sover i funktion"
+
+#. Translation Hint: maximum 'Flags' = 8
+#: src/top/top_nls.c:254
+msgid "Flags"
+msgstr "Flaggor"
+
+#: src/top/top_nls.c:255
+msgid "Task Flags <sched.h>"
+msgstr "Uppg.flagg <sched.h>"
+
+#. Translation Hint: maximum 'CGROUPS' = variable
+#: src/top/top_nls.c:257
+msgid "CGROUPS"
+msgstr "KGRUPPR"
+
+#: src/top/top_nls.c:258
+msgid "Control Groups"
+msgstr "Kontrollgrupper"
+
+#. Translation Hint: maximum 'SUPGIDS' = variable
+#: src/top/top_nls.c:260
+msgid "SUPGIDS"
+msgstr "KOMPGID"
+
+#: src/top/top_nls.c:261
+msgid "Supp Groups IDs"
+msgstr "Kompl. grupp-id:n"
+
+#. Translation Hint: maximum 'SUPGRPS' = variable
+#: src/top/top_nls.c:263
+msgid "SUPGRPS"
+msgstr "KOMPGRP"
+
+#: src/top/top_nls.c:264
+msgid "Supp Groups Names"
+msgstr "Kompl. gruppnamn"
+
+#. Translation Hint: maximum 'TGID' = 5
+#: src/top/top_nls.c:266
+msgid "TGID"
+msgstr "TGID"
+
+#: src/top/top_nls.c:267
+msgid "Thread Group Id"
+msgstr "Trådgrupp-id"
+
+#. Translation Hint: maximum 'OOMa' = 5
+#: src/top/top_nls.c:269
+msgid "OOMa"
+msgstr "OOMj"
+
+#: src/top/top_nls.c:270
+msgid "OOMEM Adjustment"
+msgstr "OOMEM-justering"
+
+#. Translation Hint: maximum 'OOMs' = 4
+#: src/top/top_nls.c:272
+msgid "OOMs"
+msgstr "OOMv"
+
+#: src/top/top_nls.c:273
+msgid "OOMEM Score current"
+msgstr "nuvarande OOMEM-värde"
+
+#. Translation Hint: maximum 'ENVIRON' = variable
+#: src/top/top_nls.c:275
+msgid "ENVIRON"
+msgstr "MILJÖ"
+
+#. Translation Hint: the abbreviation 'vars' below is shorthand for
+#. 'variables'
+#: src/top/top_nls.c:278
+msgid "Environment vars"
+msgstr "Miljövariabler"
+
+#. Translation Hint: maximum 'vMj' = 3
+#: src/top/top_nls.c:280
+msgid "vMj"
+msgstr "vSt"
+
+#: src/top/top_nls.c:281
+msgid "Major Faults delta"
+msgstr "Stora sidfel delta"
+
+#. Translation Hint: maximum 'vMn' = 3
+#: src/top/top_nls.c:283
+msgid "vMn"
+msgstr "vSm"
+
+#: src/top/top_nls.c:284
+msgid "Minor Faults delta"
+msgstr "Små sidfel delta"
+
+#. Translation Hint: maximum 'USED' = 6
+#: src/top/top_nls.c:286
+msgid "USED"
+msgstr "ANV"
+
+#: src/top/top_nls.c:287
+msgid "Res+Swap Size (KiB)"
+msgstr "Res+Växl-storl (KiB)"
+
+#. Translation Hint: maximum 'nsIPC' = 10 +
+#: src/top/top_nls.c:289
+msgid "nsIPC"
+msgstr "nrIPK"
+
+#: src/top/top_nls.c:290
+msgid "IPC namespace Inode"
+msgstr "IPK-namnrymdsinod"
+
+#. Translation Hint: maximum 'nsMNT' = 10 +
+#: src/top/top_nls.c:292
+msgid "nsMNT"
+msgstr "nrMNT"
+
+#: src/top/top_nls.c:293
+msgid "MNT namespace Inode"
+msgstr "MNT-namnrymdsinod"
+
+#. Translation Hint: maximum 'nsNET' = 10 +
+#: src/top/top_nls.c:295
+msgid "nsNET"
+msgstr "nrNÄT"
+
+#: src/top/top_nls.c:296
+msgid "NET namespace Inode"
+msgstr "NÄT-namnrymdsinod"
+
+#. Translation Hint: maximum 'nsPID' = 10 +
+#: src/top/top_nls.c:298
+msgid "nsPID"
+msgstr "nrPID"
+
+#: src/top/top_nls.c:299
+msgid "PID namespace Inode"
+msgstr "PID-namnrymdsinod"
+
+#. Translation Hint: maximum 'nsUSER' = 10 +
+#: src/top/top_nls.c:301
+msgid "nsUSER"
+msgstr "nrANV"
+
+#: src/top/top_nls.c:302
+msgid "USER namespace Inode"
+msgstr "ANV-namnrymdsinod"
+
+#. Translation Hint: maximum 'nsUTS' = 10 +
+#: src/top/top_nls.c:304
+msgid "nsUTS"
+msgstr "nrUTS"
+
+#: src/top/top_nls.c:305
+msgid "UTS namespace Inode"
+msgstr "UTS-namnrymdsinod"
+
+#. Translation Hint: maximum 'LXC' = 8 +
+#: src/top/top_nls.c:307
+msgid "LXC"
+msgstr "LXC"
+
+#: src/top/top_nls.c:308
+msgid "LXC container name"
+msgstr "LXC-behållarnamn"
+
+#. Translation Hint: maximum 'RSan' = 6
+#: src/top/top_nls.c:310
+msgid "RSan"
+msgstr "RSan"
+
+#: src/top/top_nls.c:311
+msgid "RES Anonymous (KiB)"
+msgstr "RES anonymt (KiB)"
+
+#. Translation Hint: maximum 'RSfd' = 6
+#: src/top/top_nls.c:313
+msgid "RSfd"
+msgstr "RSfb"
+
+#: src/top/top_nls.c:314
+msgid "RES File-based (KiB)"
+msgstr "RES filbaserat (KiB)"
+
+#. Translation Hint: maximum 'RSlk' = 6
+#: src/top/top_nls.c:316
+msgid "RSlk"
+msgstr "RSlå"
+
+#: src/top/top_nls.c:317
+msgid "RES Locked (KiB)"
+msgstr "RES låst (KiB)"
+
+#. Translation Hint: maximum 'RSsh' = 6
+#: src/top/top_nls.c:319
+msgid "RSsh"
+msgstr "RSdl"
+
+#: src/top/top_nls.c:320
+msgid "RES Shared (KiB)"
+msgstr "RES delat (KiB)"
+
+#. Translation Hint: maximum 'CGNAME' = variable
+#: src/top/top_nls.c:322
+msgid "CGNAME"
+msgstr "KGNAMN"
+
+#: src/top/top_nls.c:323
+msgid "Control Group name"
+msgstr "Kontrollgruppnamn"
+
+#. Translation Hint: maximum 'NU' = 2
+#: src/top/top_nls.c:325
+msgid "NU"
+msgstr "NU"
+
+#: src/top/top_nls.c:326
+msgid "Last Used NUMA node"
+msgstr "Senast använd NUMA-nod"
+
+#. Translation Hint: maximum 'LOGID' = 5 +
+#: src/top/top_nls.c:328
+msgid "LOGID"
+msgstr "LOGID"
+
+#: src/top/top_nls.c:329
+msgid "Login User Id"
+msgstr "Inloggningsanvändar-id"
+
+#. Translation Hint: maximum 'EXE' = variable
+#: src/top/top_nls.c:331
+msgid "EXE"
+msgstr "KÖRBAR"
+
+#: src/top/top_nls.c:332
+msgid "Executable Path"
+msgstr "Sökväg till körbar"
+
+#: src/top/top_nls.c:338
+msgid "Res Mem (smaps), KiB"
+msgstr "Res Min (smaps), KiB"
+
+#. Translation Hint: maximum 'PSS' = 6
+#: src/top/top_nls.c:340
+msgid "PSS"
+msgstr "ARSS"
+
+#: src/top/top_nls.c:341
+msgid "Proportion RSS, KiB"
+msgstr "Andel RSS, KiB"
+
+#. Translation Hint: maximum 'PSan' = 6
+#: src/top/top_nls.c:343
+msgid "PSan"
+msgstr "ASan"
+
+#: src/top/top_nls.c:344
+msgid "Proportion Anon, KiB"
+msgstr "Andel anon, KiB"
+
+#. Translation Hint: maximum 'PSfd' = 6
+#: src/top/top_nls.c:346
+msgid "PSfd"
+msgstr "ASfb"
+
+#: src/top/top_nls.c:347
+msgid "Proportion File, KiB"
+msgstr "Andel fil, KiB"
+
+#. Translation Hint: maximum 'PSsh' = 6
+#: src/top/top_nls.c:349
+msgid "PSsh"
+msgstr "ASdelt"
+
+#: src/top/top_nls.c:350
+msgid "Proportion Shrd, KiB"
+msgstr "Andel delat, KiB"
+
+#. Translation Hint: maximum 'USS' = 6
+#: src/top/top_nls.c:352
+msgid "USS"
+msgstr "URSS"
+
+#: src/top/top_nls.c:353
+msgid "Unique RSS, KiB"
+msgstr "Unika RSS, KiB"
+
+#. Translation Hint: maximum 'ioR' = 6
+#: src/top/top_nls.c:355
+msgid "ioR"
+msgstr "ioL"
+
+#: src/top/top_nls.c:356
+msgid "I/O Bytes Read"
+msgstr "I/O-byte läst"
+
+#. Translation Hint: maximum 'ioRop' = 5
+#: src/top/top_nls.c:358
+msgid "ioRop"
+msgstr "ioLÃ¥t"
+
+#: src/top/top_nls.c:359
+msgid "I/O Read Operations"
+msgstr "I/O läsåtgärder"
+
+#. Translation Hint: maximum 'ioW' = 6
+#: src/top/top_nls.c:361
+msgid "ioW"
+msgstr "ioS"
+
+#: src/top/top_nls.c:362
+msgid "I/O Bytes Written"
+msgstr "I/O-byte skrivet"
+
+#. Translation Hint: maximum 'ioWop' = 5
+#: src/top/top_nls.c:364
+msgid "ioWop"
+msgstr "ioSÃ¥t"
+
+#: src/top/top_nls.c:365
+msgid "I/O Write Operations"
+msgstr "I/O-skrivåtgärder"
+
+#. Translation Hint: maximum 'AGID' = 5
+#: src/top/top_nls.c:367
+msgid "AGID"
+msgstr "AGID"
+
+#: src/top/top_nls.c:368
+msgid "Autogroup Identifier"
+msgstr "Autogruppidentifierare"
+
+#. Translation Hint: maximum 'AGNI' = 4
+#: src/top/top_nls.c:370
+msgid "AGNI"
+msgstr "AGNI"
+
+#: src/top/top_nls.c:371
+msgid "Autogroup Nice Value"
+msgstr "Autogrupps nice-värde"
+
+#. Translation Hint: maximum 'STARTED' = 7
+#: src/top/top_nls.c:373
+msgid "STARTED"
+msgstr "STARTAD"
+
+#: src/top/top_nls.c:374
+msgid "Start Time from boot"
+msgstr "Starttid från uppstart"
+
+#. Translation Hint: maximum 'ELAPSED' = 7
+#: src/top/top_nls.c:376
+msgid "ELAPSED"
+msgstr "FÖRLUP."
+
+#: src/top/top_nls.c:377
+msgid "Elapsed Running Time"
+msgstr "Förlupen körtid"
+
+#. Translation Hint: maximum '%CUU' = 6
+#: src/top/top_nls.c:379
+#, c-format
+msgid "%CUU"
+msgstr "%CUA"
+
+#: src/top/top_nls.c:380
+msgid "CPU Utilization"
+msgstr "CPU-användning"
+
+#. Translation Hint: maximum '%CUC' = 7
+#: src/top/top_nls.c:382
+#, c-format
+msgid "%CUC"
+msgstr "%CUB"
+
+#: src/top/top_nls.c:383
+msgid "Utilization + child"
+msgstr "Användning + barn"
+
+#. Translation Hint: maximum 'nsCGROUP' = 10 +
+#: src/top/top_nls.c:385
+msgid "nsCGROUP"
+msgstr "nrGRUPPER"
+
+#: src/top/top_nls.c:386
+msgid "CGRP namespace Inode"
+msgstr "CGRP-namnrymdsinod"
+
+#. Translation Hint: maximum 'nsTIME' = 10 +
+#: src/top/top_nls.c:388
+msgid "nsTIME"
+msgstr "nrTID"
+
+#: src/top/top_nls.c:389
+msgid "TIME namespace Inode"
+msgstr "TIDS-namnrymdsinod"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . This group of lines contains both plain text and c-format strings.
+#. .
+#. . Some strings reflect switches used to affect the running program
+#. . and should not be translated without also making corresponding
+#. . c-code logic changes.
+#. .
+#: src/top/top_nls.c:409
+#, c-format
+msgid ""
+"\tsignal %d (%s) was caught by %s, please\n"
+"\tsend bug reports to <procps@freelists.org>\n"
+msgstr ""
+"\tsignal %d (%s) fångades av %s,\n"
+"\tskicka felrapporter till <procps@freelists.org>\n"
+
+#: src/top/top_nls.c:439
+#, c-format
+msgid "bad delay interval '%s'"
+msgstr "felaktigt fördröjningsintervall â€%sâ€"
+
+#: src/top/top_nls.c:440
+#, c-format
+msgid "bad iterations argument '%s'"
+msgstr "felaktigt iterationsargument â€%sâ€"
+
+#: src/top/top_nls.c:441
+#, c-format
+msgid "pid limit (%d) exceeded"
+msgstr "pid-gränsen (%d) överskriden"
+
+#: src/top/top_nls.c:442
+#, c-format
+msgid "bad pid '%s'"
+msgstr "felaktig pid â€%sâ€"
+
+#: src/top/top_nls.c:443
+#, c-format
+msgid "-%c argument missing"
+msgstr "-%c-argument saknas"
+
+#: src/top/top_nls.c:444
+#, c-format
+msgid "bad width arg '%s'"
+msgstr "felaktigt breddargument â€%sâ€"
+
+#: src/top/top_nls.c:445
+#, c-format
+msgid "unknown option '%s'"
+msgstr "okänd flagga â€%sâ€"
+
+#: src/top/top_nls.c:446
+msgid "-d disallowed in \"secure\" mode"
+msgstr "-d otillÃ¥tet i â€säkert†läge"
+
+#: src/top/top_nls.c:447
+msgid "-d requires positive argument"
+msgstr "-d behöver ett positivt argument"
+
+#: src/top/top_nls.c:448
+msgid "On"
+msgstr "PÃ¥"
+
+#: src/top/top_nls.c:449
+msgid "Off"
+msgstr "Av"
+
+#: src/top/top_nls.c:450
+#, c-format
+msgid "%s from %s"
+msgstr "%s från %s"
+
+#: src/top/top_nls.c:451
+#, c-format
+msgid "Forest mode %s"
+msgstr "Skogsläge %s"
+
+#: src/top/top_nls.c:452
+msgid "failed tty get"
+msgstr "misslyckades att få tty"
+
+#: src/top/top_nls.c:453
+#, c-format
+msgid "failed tty set: %s"
+msgstr "misslyckades att sätta tty: %s"
+
+#: src/top/top_nls.c:454
+msgid "Choose field group (1 - 4)"
+msgstr "Välj fältgrupp (1 – 4)"
+
+#: src/top/top_nls.c:455
+msgid "Command disabled, 'A' mode required"
+msgstr "Kommandot avaktiverat, â€Aâ€-läge krävs"
+
+#: src/top/top_nls.c:456
+#, c-format
+msgid "Command disabled, activate %s with '-' or '_'"
+msgstr "Kommandot avaktiverat, aktivera %s med â€-†eller â€_â€"
+
+#: src/top/top_nls.c:457
+msgid "No colors to map!"
+msgstr "Inga färger att mappa!"
+
+#: src/top/top_nls.c:458
+#, c-format
+msgid "Failed '%s' open: %s"
+msgstr "Misslyckades öppna â€%sâ€: %s"
+
+#: src/top/top_nls.c:459
+#, c-format
+msgid "Wrote configuration to '%s'"
+msgstr "Skriv konfigurationen till â€%sâ€"
+
+#: src/top/top_nls.c:460
+#, c-format
+msgid "Change delay from %.1f to"
+msgstr "Ändra fördröjning från %.1f till"
+
+#: src/top/top_nls.c:461
+#, c-format
+msgid "Show threads %s"
+msgstr "Visa trådar %s"
+
+#: src/top/top_nls.c:462
+#, c-format
+msgid "Irix mode %s"
+msgstr "Irix-läge %s"
+
+#: src/top/top_nls.c:463
+#, c-format
+msgid "PID to signal/kill [default pid = %d]"
+msgstr "PID att signalera/döda [standard pid = %d]"
+
+#: src/top/top_nls.c:464
+#, c-format
+msgid "Send pid %d signal [%d/sigterm]"
+msgstr "Skicka pid %d signalen [%d/sigterm]"
+
+#: src/top/top_nls.c:465
+#, c-format
+msgid "Failed signal pid '%d' with '%d': %s"
+msgstr "Misslyckades att signalera pid â€%d†med â€%dâ€: %s"
+
+#: src/top/top_nls.c:466
+msgid "Invalid signal"
+msgstr "Felaktig signal"
+
+#: src/top/top_nls.c:467
+#, c-format
+msgid "PID to renice [default pid = %d]"
+msgstr "PID att ändra nice-värde på [standard pid = %d]"
+
+#: src/top/top_nls.c:468
+#, c-format
+msgid "Renice PID %d to value"
+msgstr "Ändra nice-värde på PID %d till värdet"
+
+#: src/top/top_nls.c:469
+#, c-format
+msgid "Failed renice of PID %d to %d: %s"
+msgstr "Misslyckades att ändra nice-värde på PID %d till %d: %s"
+
+#: src/top/top_nls.c:470
+#, c-format
+msgid "Rename window '%s' to (1-3 chars)"
+msgstr "Byt namn pÃ¥ fönster â€%s†till (1-3 tecken)"
+
+#: src/top/top_nls.c:471
+#, c-format
+msgid "Cumulative time %s"
+msgstr "Ackumulerad tid %s"
+
+#: src/top/top_nls.c:472
+#, c-format
+msgid "Maximum tasks = %d, change to (0 is unlimited)"
+msgstr "Maximalt antal uppgifter = %d, ändra till (0 är obegränsat)"
+
+#: src/top/top_nls.c:473
+msgid "Invalid maximum"
+msgstr "Felaktigt maximum"
+
+#: src/top/top_nls.c:474
+msgid "Which user (blank for all)"
+msgstr "Vilken användare (blank för alla)"
+
+#: src/top/top_nls.c:475
+msgid "Unknown command - try 'h' for help"
+msgstr "Okänt kommando — prova â€h†för hjälp"
+
+#: src/top/top_nls.c:476
+#, c-format
+msgid "scroll coordinates: y = %d/%d (tasks), x = %d/%d (fields)"
+msgstr "rullkoordinater: y = %d/%d (uppgifter), x = %d/%d (fält)"
+
+#: src/top/top_nls.c:477
+msgid "failed memory allocate"
+msgstr "misslyckades med allokering av minne"
+
+#: src/top/top_nls.c:478
+msgid "failed memory re-allocate"
+msgstr "misslyckades med omallokering av minne"
+
+#: src/top/top_nls.c:479
+msgid "Unacceptable floating point"
+msgstr "Oacceptabelt flyttalsvärde"
+
+#: src/top/top_nls.c:480
+msgid "Invalid user"
+msgstr "Felaktig användare"
+
+#: src/top/top_nls.c:481
+msgid "forest view"
+msgstr "skogsvy"
+
+#: src/top/top_nls.c:482
+msgid "failed pid maximum size test"
+msgstr "misslyckades med storlekstest för maximal pid"
+
+#: src/top/top_nls.c:483
+msgid "failed number of cpus test"
+msgstr "misslyckades med test av antal cpu:er"
+
+#: src/top/top_nls.c:484
+#, c-format
+msgid "incompatible rcfile, you should delete '%s'"
+msgstr "inkompatibel rc-fil, du bör radera â€%sâ€"
+
+#: src/top/top_nls.c:485
+#, c-format
+msgid "window entry #%d corrupt, please delete '%s'"
+msgstr "fönsterpost nr. %d är trasig, var god radera â€%sâ€"
+
+#: src/top/top_nls.c:486
+msgid "Unavailable in secure mode"
+msgstr "Otillgänglig i säkert läge"
+
+#: src/top/top_nls.c:487
+msgid "Only 1 cpu detected"
+msgstr "Endast 1 cpu detekterad"
+
+#: src/top/top_nls.c:488
+msgid "Unacceptable integer"
+msgstr "Oacceptabelt heltal"
+
+#: src/top/top_nls.c:489
+msgid "conflicting process selections (U/p/u)"
+msgstr "processval i konflikt (U/p/u)"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . kibibytes (1024 bytes)
+#: src/top/top_nls.c:492
+msgid "KiB"
+msgstr "KiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . mebibytes (1,048,576 bytes)
+#: src/top/top_nls.c:495
+msgid "MiB"
+msgstr "MiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . gibibytes (1,073,741,824 bytes)
+#: src/top/top_nls.c:498
+msgid "GiB"
+msgstr "GiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . tebibytes (1,099,511,627,776 bytes)
+#: src/top/top_nls.c:501
+msgid "TiB"
+msgstr "TiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . pebibytes (1,024 tebibytes)
+#: src/top/top_nls.c:504
+msgid "PiB"
+msgstr "PiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . exbibytes (1,024 pebibytes)
+#: src/top/top_nls.c:507
+msgid "EiB"
+msgstr "EiB"
+
+#: src/top/top_nls.c:508
+msgid "Threads"
+msgstr "Trådar"
+
+#: src/top/top_nls.c:509
+msgid "Tasks"
+msgstr "Uppgifter"
+
+#. Translation Hint: The following "word" is meant to represent either a single
+#. . cpu or all of the processors in a multi-processor computer
+#. . (should be exactly 6 characters, excluding leading % & colon)
+#: src/top/top_nls.c:513
+#, c-format
+msgid "%Cpu(s):"
+msgstr "%Cpu/er:"
+
+#. Translation Hint: The following "word" is meant to represent a single processor
+#. and 'the Cp' prefix will be combined with a core id: 'p', 'e' or 'u'
+#. . (if 'Cp' is translated, it must be exactly 2 characters long)
+#: src/top/top_nls.c:517
+#, c-format
+msgid "%%Cp%c%-3d:"
+msgstr "%%Cp%c%-3d:"
+
+#. Translation Hint: The following word "another" must have 1 trailing space
+#: src/top/top_nls.c:519
+msgid "another "
+msgstr "annan "
+
+#: src/top/top_nls.c:520
+msgid "Locate next inactive, use \"L\""
+msgstr "Hitta nästa inaktiva, använd â€Lâ€"
+
+#: src/top/top_nls.c:521
+msgid "Locate string"
+msgstr "Hitta sträng"
+
+#: src/top/top_nls.c:522
+#, c-format
+msgid "%s\"%s\" not found"
+msgstr "%sâ€%s†finns inte"
+
+#: src/top/top_nls.c:523
+#, c-format
+msgid "width incr is %d, change to (0 default, -1 auto)"
+msgstr "breddökning är %d, ändra till (0 standard, -1 auto)"
+
+#: src/top/top_nls.c:524
+msgid "rcfile has inspect/other-filter error(s), save anyway?"
+msgstr "rc-filen har inspect/other-filterfel, spara ändå?"
+
+#: src/top/top_nls.c:525
+#, c-format
+msgid "unrecognized field name '%s'"
+msgstr "okänt fältnamn â€%sâ€"
+
+#: src/top/top_nls.c:526
+msgid "even using field names only, window is now too small"
+msgstr "även med bara användning av endast fältnamn är fönstret för litet nu"
+
+#: src/top/top_nls.c:527
+msgid "Open Files"
+msgstr "Öppna filer"
+
+#: src/top/top_nls.c:528
+msgid "NUMA Info"
+msgstr "NUMA-info"
+
+#: src/top/top_nls.c:529
+msgid "Log"
+msgstr "Logg"
+
+#: src/top/top_nls.c:530
+msgid ""
+"the '=' key will eventually show the actual file read or command(s) "
+"executed ..."
+msgstr ""
+"tangenten â€=†kommer sÃ¥ smÃ¥ningom visa den faktiskt lästa filen eller körda "
+"kommandot …"
+
+#: src/top/top_nls.c:531
+msgid "demo"
+msgstr "demo"
+
+#: src/top/top_nls.c:532
+#, c-format
+msgid ""
+"This is simulated output representing the contents of some file or the "
+"output\n"
+"from some command. Exactly which commands and/or files are solely up to "
+"you.\n"
+"\n"
+"Although this text is for information purposes only, it can still be "
+"scrolled\n"
+"and searched like real output will be. You are encouraged to experiment "
+"with\n"
+"those features as explained in the prologue above.\n"
+"\n"
+"To enable real Inspect functionality, entries must be added to the end of "
+"the\n"
+"top personal personal configuration file. You could use your favorite "
+"editor\n"
+"to accomplish this, taking care not to disturb existing entries.\n"
+"\n"
+"Another way to add entries is illustrated below, but it risks overwriting "
+"the\n"
+"rcfile. Redirected echoes must not replace (>) but append (>>) to that "
+"file.\n"
+"\n"
+" /bin/echo -e \"pipe\\tOpen Files\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+" /bin/echo -e \"file\\tNUMA Info\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+" /bin/echo -e \"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr\" >> ~/."
+"toprc\n"
+"\n"
+"If you don't know the location or name of the top rcfile, use the 'W' "
+"command\n"
+"and note those details. After backing up the current rcfile, try issuing "
+"the\n"
+"above echoes exactly as shown, replacing '.toprc' as appropriate. The "
+"safest\n"
+"approach would be to use copy then paste to avoid any typing mistakes.\n"
+"\n"
+"Finally, restart top to reveal what actual Inspect entries combined with "
+"this\n"
+"new command can offer. The possibilities are endless, especially "
+"considering\n"
+"that 'pipe' type entries can include shell scripts too!\n"
+"\n"
+"For additional important information, please consult the top(1) man "
+"document.\n"
+"Then, enhance top with your very own customized 'file' and/or 'pipe' "
+"entries.\n"
+"\n"
+"Enjoy!\n"
+msgstr ""
+"Detta är simulerad utdata som representerar innehållet i någon fil eller\n"
+"utdata från något kommando. Exakt vilka kommandon och/eller filer är helt\n"
+"upp till dig.\n"
+"\n"
+"Även om denna text endast är för informationsändamål kan den\n"
+"fortfarande rullas och sökas i som verklig utdata skulle. Du\n"
+"uppmuntras att experimentera med funktionerna som förklaras i prologen\n"
+"ovan.\n"
+"\n"
+"För att aktivera verklig inspektionsfunktionalitet måste poster läggas till\n"
+"i slutet av den personliga top-konfigurationsfilen. Du kan använda din\n"
+"favoritredigerare för att åstadkomma detta, försiktigt så att inte "
+"befintliga\n"
+"poster skadas.\n"
+"\n"
+"Ett annat sätt att lägga till poster illustreras nedan, men det riskerar "
+"att\n"
+"skriva över rc-filen. Omdirigerade echo-kommandon får inte ersätta (>) "
+"utan\n"
+"måste lägga till (>>) i den filen.\n"
+"\n"
+" /bin/echo -e \"pipe\\tÖppna filer\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+" /bin/echo -e \"file\\tNUMA-info\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+" /bin/echo -e \"pipe\\tLogg\\ttail -n200 /var/log/syslog | sort -Mr\" >> ~/."
+"toprc\n"
+"\n"
+"Om du inte vet platsen för eller namnet på top-rc-filen, använd kommandot "
+"â€Wâ€\n"
+"och observera detaljerna. Prova, efter att du säkerhetskopierat den "
+"aktuella\n"
+"rc-filen, att skriva ovanstående echo:n exakt som de står, utom att du "
+"ersätter\n"
+"â€.toprc†pÃ¥ lämpligt sätt. Säkraste sättet vore att kopiera och sedan "
+"klistra\n"
+"in för att undvika skrivfel.\n"
+"\n"
+"Starta slutligen om top för att se vad de faktiska inspektionsposterna\n"
+"kombinerade med detta nya kommando kan erbjuda. Möjligheterna är oändliga,\n"
+"särskilt med tanke pÃ¥ att poster av typen â€pipe†även kan inkludera "
+"skalskript.\n"
+"\n"
+"Se top(1) manualdokumentationen för mer viktig information. Förbättra sedan\n"
+"top med dina helt egna anpassade â€fileâ€- och/eller â€pipeâ€-poster.\n"
+"\n"
+"Mycket nöje!\n"
+
+#: src/top/top_nls.c:564
+msgid "to enable 'Y' press <Enter> then type 'W' and restart top"
+msgstr ""
+"för att aktivera â€Y†tryck <Retur> och skriv sedan â€W†och starta om top"
+
+#: src/top/top_nls.c:565
+msgid "to enable 'Y' please consult the top man page (press Enter)"
+msgstr "för att aktivera â€Y†se manualsidan för top (tryck Retur)"
+
+#: src/top/top_nls.c:566
+#, c-format
+msgid "Selection failed with: %s\n"
+msgstr "Valet misslyckades med: %s\n"
+
+#: src/top/top_nls.c:567
+#, c-format
+msgid "unable to inspect, pid %d not found"
+msgstr "kan inte inspektera, pid %d finns inte"
+
+#: src/top/top_nls.c:568
+#, c-format
+msgid "inspect at PID [default pid = %d]"
+msgstr "inspektion av PID [standard pid = %d]"
+
+#: src/top/top_nls.c:569
+#, c-format
+msgid "%s: %*d-%-*d lines, %*d-%*d columns, %lu bytes read"
+msgstr "%s: %*d-%-*d rader, %*d-%*d kolumner, %lu byte lästa"
+
+#: src/top/top_nls.c:570
+msgid "patience please, working ..."
+msgstr "ha tålamod, arbetar …"
+
+#: src/top/top_nls.c:571
+msgid "working, use Ctrl-C to end ..."
+msgstr "arbetar, använd Ctrl-C för att avsluta …"
+
+#. Translation Hint: Below are 2 abbreviations which can be as long as needed:
+#. . FLD = FIELD, VAL = VALUE
+#: src/top/top_nls.c:574
+#, c-format
+msgid "add filter #%d (%s) as: [!]FLD?VAL"
+msgstr "lägg till filter nr. %d (%s) som: [!]FLT?VRD"
+
+#: src/top/top_nls.c:575
+msgid "ignoring case"
+msgstr "ignorerar skiftläge"
+
+#: src/top/top_nls.c:576
+msgid "case sensitive"
+msgstr "skiftlägeskänslig"
+
+#: src/top/top_nls.c:577
+msgid "duplicate filter was ignored"
+msgstr "dubblerat filter ignorerades"
+
+#: src/top/top_nls.c:578
+#, c-format
+msgid "'%s' filter delimiter is missing"
+msgstr "â€%sâ€-filteravgränsare saknas"
+
+#: src/top/top_nls.c:579
+#, c-format
+msgid "'%s' filter value is missing"
+msgstr "â€%sâ€-filtervärde saknas"
+
+#: src/top/top_nls.c:580
+msgid "include"
+msgstr "inkludera"
+
+#: src/top/top_nls.c:581
+msgid "exclude"
+msgstr "exkludera"
+
+#: src/top/top_nls.c:582
+#, c-format
+msgid "<Enter> to resume, filters: %s"
+msgstr "<Retur> för att återuppta, filter: %s"
+
+#: src/top/top_nls.c:583
+msgid "none"
+msgstr "inget"
+
+#. Translation Hint: The following word 'Node' should be exactly
+#. 4 characters, excluding leading %%, fmt chars & colon)
+#: src/top/top_nls.c:586
+#, c-format
+msgid "%%Node%-2d:"
+msgstr "%%Nod %-2d:"
+
+#: src/top/top_nls.c:587
+#, c-format
+msgid "expand which numa node (0-%d)"
+msgstr "expandera vilken numa-nod (0-%d)"
+
+#: src/top/top_nls.c:588
+msgid "invalid numa node"
+msgstr "felaktig numa-nod"
+
+#: src/top/top_nls.c:589
+msgid "sorry, NUMA extensions unavailable"
+msgstr "ledsen, NUMA-utökningar är inte tillgängliga"
+
+#. Translation Hint: 'Mem ' is an abbreviation for physical memory/ram
+#. . 'Swap' represents the linux swap file --
+#. . please make both translations exactly 4 characters,
+#. . padding with extra spaces as necessary
+#: src/top/top_nls.c:594
+msgid "Mem "
+msgstr "Minn"
+
+#: src/top/top_nls.c:595
+msgid "Swap"
+msgstr "Växl"
+
+#: src/top/top_nls.c:596
+#, c-format
+msgid "library failed memory statistics, at %d: %s"
+msgstr "biblioteket misslyckades med minnesstatistik, vid %d: %s"
+
+#: src/top/top_nls.c:597
+#, c-format
+msgid "library failed cpu statistics, at %d: %s"
+msgstr "biblioteket misslyckades med cpu-statistik, vid %d: %s"
+
+#: src/top/top_nls.c:598
+#, c-format
+msgid "library failed pids statistics, at %d: %s"
+msgstr "biblioteket misslyckades med pid-statistik, vid %d: %s"
+
+#: src/top/top_nls.c:599
+#, c-format
+msgid "bad memory scaling arg '%s'"
+msgstr "felaktigt minnesskalningsargument â€%sâ€"
+
+#: src/top/top_nls.c:600
+#, c-format
+msgid "PID to collapse/expand [default pid = %d]"
+msgstr "PID att fälla ihop/expandera [standard pid = %d]"
+
+#: src/top/top_nls.c:601
+msgid "wrong mode, command inactive"
+msgstr "fel läge, kommandot inaktivt"
+
+#: src/top/top_nls.c:602
+msgid "saving prevents older top from reading, save anyway?"
+msgstr "att spara hindrar äldre top från att läsa, spara ändå?"
+
+#: src/top/top_nls.c:603
+#, c-format
+msgid "failed sem_init() at %d: %s"
+msgstr "sem_init() misslyckades vid %d: %s"
+
+#: src/top/top_nls.c:604
+#, c-format
+msgid "failed pthread_create() at %d: %s"
+msgstr "pthread_create() misslyckades vid %d: %s"
+
+#: src/top/top_nls.c:605
+msgid "sorry, restricted namespace with reduced functionality"
+msgstr "ledsen, begränsad namnrymd med reducerad funktionalitet"
+
+#: src/top/top_nls.c:606
+#, c-format
+msgid "set pid %d AGNI value to"
+msgstr "sätt pid %d AGNI-värde till"
+
+#: src/top/top_nls.c:607
+msgid "valid AGNI range is -20 to +19"
+msgstr "tillåtet AGNI-intervall är -20 till +19"
+
+#: src/top/top_nls.c:608
+#, c-format
+msgid "autogroup open failed, %s"
+msgstr "att öppna autogrupp misslyckades, %s"
+
+#: src/top/top_nls.c:609
+#, c-format
+msgid "autogroup write failed, %s"
+msgstr "autogruppskrivning misslyckades, %s"
+
+#: src/top/top_nls.c:610
+#, c-format
+msgid "command line for pid %d, %s"
+msgstr "kommandorad för pid %d, %s"
+
+#: src/top/top_nls.c:611
+#, c-format
+msgid "control groups for pid %d, %s"
+msgstr "styrgrupper för pid %d, %s"
+
+#: src/top/top_nls.c:612
+#, c-format
+msgid "environment for pid %d, %s"
+msgstr "miljön för pid %d, %s"
+
+#: src/top/top_nls.c:613
+#, c-format
+msgid "namespaces for pid %d, %s"
+msgstr "namnrymder för pid %d, %s"
+
+#: src/top/top_nls.c:614
+msgid "n/a"
+msgstr "e/t"
+
+#: src/top/top_nls.c:615
+#, c-format
+msgid "supplementary groups for pid %d, %s"
+msgstr "kompletterande grupper för pid %d, %s"
+
+#: src/top/top_nls.c:616
+msgid "message log, last 10 messages:"
+msgstr "meddelandelogg, 10 senaste meddelanden:"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The next several text groups contain special escape sequences
+#. . representing values used to index a table at run-time.
+#. .
+#. . Each such sequence consists of a tilde (~) followed by an ascii
+#. . number in the range of '1' - '8'. Examples are '~2', '~8', etc.
+#. . These escape sequences must never themselves be translated but
+#. . could be deleted.
+#. .
+#. . If you remove these escape sequences (both tilde and number) it
+#. . would make translation easier. However, the ability to display
+#. . colors and bold text at run-time will have been lost.
+#. .
+#. . Additionally, each of these text groups was designed to display
+#. . in a 80x24 terminal window. Hopefully, any translations will
+#. . adhere to that goal lest the translated text be truncated.
+#. .
+#. . If you would like additional information regarding these strings,
+#. . please see the prologue to the show_special function in the top.c
+#. . source file.
+#. .
+#. . Caution:
+#. . The next three items represent pages for interacting with a user.
+#. . In all cases, the last lines of text must be treated with care.
+#. .
+#. . They must not end with a newline character so that at runtime the
+#. . cursor will remain on that final text line.
+#. .
+#. . Also, the special sequences (tilde+number) must not appear on the
+#. . last line (the one without the newline). So please avoid any line
+#. . wraps that could place them there.
+#. .
+#: src/top/top_nls.c:661
+#, c-format
+msgid ""
+"Help for Interactive Commands~2 - %s\n"
+"Window ~1%s~6: ~1Cumulative mode ~3%s~2. ~1System~6: ~1Delay ~3%.1f secs~2; "
+"~1Secure mode ~3%s~2.\n"
+"\n"
+" Z~5,~1B~5,E,e Global: '~1Z~2' colors; '~1B~2' bold; '~1E~2'/'~1e~2' "
+"summary/task memory scale\n"
+" l,t,m,I,0 Toggle: '~1l~2' load avg; '~1t~2' task/cpu; '~1m~2' memory; "
+"'~1I~2' Irix; '~10~2' zeros\n"
+" 1,2,3,4,5 Toggle: '~11~2/~12~2/~13~2' cpu/numa views; '~14~2' cpus "
+"abreast; '~15~2' P/E-cores\n"
+" f,X Fields: '~1f~2' add/remove/order/sort; '~1X~2' increase fixed-"
+"width fields\n"
+"\n"
+" L,&,<,> . Locate: '~1L~2'/'~1&~2' find/again; Move sort column: "
+"'~1<~2'/'~1>~2' left/right\n"
+" R,H,J,C . Toggle: '~1R~2' Sort; '~1H~2' Threads; '~1J~2' Num justify; "
+"'~1C~2' Coordinates\n"
+" c,i,S,j . Toggle: '~1c~2' Cmd name/line; '~1i~2' Idle; '~1S~2' Time; "
+"'~1j~2' Str justify\n"
+" x~5,~1y~5 . Toggle highlights: '~1x~2' sort field; '~1y~2' running "
+"tasks\n"
+" z~5,~1b~5 . Toggle: '~1z~2' color/mono; '~1b~2' bold/reverse (only if "
+"'x' or 'y')\n"
+" u,U,o,O . Filter by: '~1u~2'/'~1U~2' effective/any user; '~1o~2'/'~1O~2' "
+"other criteria\n"
+" n,#,^O . Set: '~1n~2'/'~1#~2' max tasks displayed; Show: ~1Ctrl~2+'~1O~2' "
+"other filter(s)\n"
+" V,v,F . Toggle: '~1V~2' forest view; '~1v~2' hide/show children; '~1F~2' "
+"keep focused\n"
+"\n"
+"%s ^G,K,N,U View: ctl groups ~1^G~2; cmdline ~1^K~2; environment ~1^N~2; "
+"supp groups ~1^U~2\n"
+" Y,!,^E,P Inspect '~1Y~2'; Combine Cpus '~1!~2'; Scale time ~1^E~2; View "
+"namespaces ~1^P~2\n"
+" W,q Write config file '~1W~2'; Quit '~1q~2'\n"
+" ( commands shown with '.' require a ~1visible~2 task display "
+"~1window~2 ) \n"
+"Press '~1h~2' or '~1?~2' for help with ~1Windows~2,\n"
+"Type 'q' or <Esc> to continue "
+msgstr ""
+"Hjälp för interaktiva kommandon~2 — %s\n"
+"Fönster ~1%s~6: ~1Ackumulativt läge ~3%s~2. ~1System~6: ~1Fördr. ~3%.1f "
+"s~2; ~1Säkert läge ~3%s~2.\n"
+"\n"
+" Z~5,~1B~5,E,e Globalt: â€~1Z~2†färger; â€~1B~2†fet; â€~1E~2â€/â€~1e~2†"
+"sammanf./uppg. minnesskala\n"
+" l,t,m,I,0 Växla: â€~1l~2†last; â€~1t~2†uppg./cpu; â€~1m~2†minne; â€~1I~2†"
+"Irix; â€~10~2†nollor\n"
+" 1,2,3,4,5 Växla: â€~11~2/~12~2/~13~2†cpu/numa-vyer; â€~14~2†cpu:er i "
+"bredd; â€~15~2†P/E-kärnor\n"
+" f,X Fält: â€~1f~2†lägg till/ta bort/ordna/sortera; â€~1X~2†öka fast "
+"breddsfält\n"
+"\n"
+" L,&,<,> . Hitta: â€~1L~2â€/â€~1&~2†sök/igen; Byt sorteringskolumn: "
+"â€~1<~2â€/â€~1>~2†vä/hö\n"
+" R,H,J,C . Växla: â€~1R~2†Sortering; â€~1H~2†TrÃ¥dar; â€~1J~2†Taljustera; "
+"â€~1C~2†Koordinater\n"
+" c,i,S,j . Växla: â€~1c~2†Kmd-namn/-rad; â€~1i~2†Inaktiv; â€~1S~2†Tid; "
+"â€~1j~2†Strängjustera\n"
+" x~5,~1y~5 . Växla markering: â€~1x~2†sorteringsfält; â€~1y~2†körande "
+"uppgifter\n"
+" z~5,~1b~5 . Växla: â€~1z~2†färg/mono; â€~1b~2†fet/invers (endast om "
+"â€x†eller â€yâ€)\n"
+" u,U,o,O . Filtrera enl: â€~1u~2â€/â€~1U~2†effektiv/nÃ¥gon anv; "
+"â€~1o~2â€/â€~1O~2†andra kriterier\n"
+" n,#,^O . Sätt: â€~1n~2â€/â€~1#~2†max visade uppgifter; Visa: "
+"~1Ctrl~2+â€~1O~2†andra filter\n"
+" V,v,F . Växla â€~1V~2†skogsvy; â€~1v~2†dölj/visa barn; â€~1F~2†behÃ¥ll "
+"fokus\n"
+"\n"
+"%s ^G,K,N,U Visa: styrgrupper ~1^G~2; kommandorad ~1^K~2; miljö ~1^N~2; "
+"kompl. grupper ~1^U~2\n"
+" Y,!,^E,P Inspektera â€~1Y~2â€; Kombinera cpu:er Cpus â€~1!~2â€; Skala tid "
+"~1^E~2; Visa namnrymder ~1^P~2\n"
+" W,q Skriv konfigurationsfil â€~1W~2â€; Avsluta â€~1q~2â€\n"
+" ( kommandon med â€.†behöver ett ~1synligt~2 "
+"uppgifts~1fönster~2 ) \n"
+"Tryck â€~1h~2†eller â€~1?~2†för hjälp med ~1fönster~2,\n"
+"Tryck â€q†eller <Esc> för att fortsätta "
+
+#: src/top/top_nls.c:687
+#, c-format
+msgid ""
+"Help for Windows / Field Groups~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+". Use multiple ~1windows~2, each with separate config opts (color,fields,"
+"sort,etc)\n"
+". The 'current' window controls the ~1Summary Area~2 and responds to your "
+"~1Commands~2\n"
+" . that window's ~1task display~2 can be turned ~1Off~2 & ~1On~2, growing/"
+"shrinking others\n"
+" . with ~1NO~2 task display, some commands will be ~1disabled~2 "
+"('i','R','n','c', etc)\n"
+" until a ~1different window~2 has been activated, making it the 'current' "
+"window\n"
+". You ~1change~2 the 'current' window by: ~1 1~2) cycling forward/backward;"
+"~1 2~2) choosing\n"
+" a specific field group; or~1 3~2) exiting the color mapping or fields "
+"screens\n"
+". Commands ~1available anytime -------------~2\n"
+" A . Alternate display mode toggle, show ~1Single~2 / ~1Multiple~2 "
+"windows\n"
+" g . Choose another field group and make it 'current', or change "
+"now\n"
+" by selecting a number from: ~1 1~2 =%s;~1 2~2 =%s;~1 3~2 =%s; "
+"or~1 4~2 =%s\n"
+". Commands ~1requiring~2 '~1A~2' mode~1 -------------~2\n"
+" G . Change the ~1Name~5 of the 'current' window/field group\n"
+" ~1*~4 a , w . Cycle through all four windows: '~1a~5' Forward; '~1w~5' "
+"Backward\n"
+" ~1*~4 - , _ . Show/Hide: '~1-~5' ~1Current~2 window; '~1_~5' all "
+"~1Visible~2/~1Invisible~2\n"
+" The screen will be divided evenly between task displays. But you can "
+"make\n"
+" some ~1larger~2 or ~1smaller~2, using '~1n~2' and '~1i~2' commands. Then "
+"later you could:\n"
+" ~1*~4 = , + . Rebalance tasks: '~1=~5' ~1Current~2 window; '~1+~5' "
+"~1Every~2 window\n"
+" (this also forces the ~1current~2 or ~1every~2 window to "
+"become visible)\n"
+"\n"
+"In '~1A~2' mode, '~1*~4' keys are your ~1essential~2 commands. Please try "
+"the '~1a~2' and '~1w~2'\n"
+"commands plus the 'g' sub-commands NOW. Press <Enter> to make 'Current' "
+msgstr ""
+"Hjälp för fönster / Fältgrupper~2 — â€Aktuellt fönster†= ~1 %s ~6\n"
+"\n"
+". Använd flera ~1fönster~2, vart och ett med egna konfig-alt. (färg,fält,"
+"sort,etc)\n"
+". Det â€aktuella†fönstret styr ~1Sammanfattning~2 och svarar pÃ¥ dina "
+"~1kommandon~2\n"
+" . det fönstrets ~1uppg.-visning~2 kan slås ~1av~2 & ~1på~2, växer/krymper "
+"andra\n"
+" . ~1UTAN~2 uppg.-visning, blir några kommandon ~1avaktiverade~2 "
+"(â€iâ€,â€Râ€,â€nâ€,â€câ€, etc)\n"
+" tills ett ~1annat fönster~2 aktiverats, vilket gör det till â€aktuellt†"
+"fönster\n"
+". Du ~1byter~2 det â€aktuella†fönstret med: ~1 1~2) cirkulerar framÃ¥t/bakÃ¥t;"
+"~1 2~2) väljer\n"
+" en viss fältgrupp; eller~1 3~2) avslutar färgkodnings- eller fält-"
+"skärmarna\n"
+". Kommandon som ~1alltid är tillgängliga -------------~2\n"
+" A . Växlare för alternativt visningsläge, visa ~1ensamt~2 / "
+"~1flera~2 fönster\n"
+" g . Välj en annan fältgrupp och gör den â€aktuellâ€, eller byt nu\n"
+" genom att välja ett tal: ~1 1~2 =%s;~1 2~2 =%s;~1 3~2 =%s; "
+"eller~1 4~2 =%s\n"
+". Kommandon som ~1kräver~2 â€~1A~2â€-läge~1 -------------~2\n"
+" G . Ändra ~1namnet~5 pÃ¥ â€aktuellt†fönster/fältgrupp\n"
+" ~1*~4 a , w . Rotera genom alla fyra fönster: â€~1a~5†framÃ¥t; â€~1w~5†"
+"bakåt\n"
+" ~1*~4 - , _ . Visa/Dölj: â€~1-~5†~1aktuellt~2 fönster; â€~1_~5†alla "
+"~1synliga~2/~1osynliga~2\n"
+" Skärmen kommer delas lika mellan uppgiftsvisningar. Men du kan göra\n"
+" nÃ¥gra ~1större~2 eller ~1mindre~2, med kommandona â€~1n~2†och â€~1i~2â€. "
+"Sedan kan du:\n"
+" ~1*~4 = , + . Balansera om uppgifter: â€~1=~5†~1aktuellt~2 fönster; "
+"â€~1+~5†~1varje~2 fönster\n"
+" (detta tvingar även ~1aktuellt~2 eller ~1alla~2 fönster att "
+"bli synliga)\n"
+"\n"
+"I â€~1A~2â€-läge är â€~1*~4â€-tecken dina ~1viktiga~2 kommandon. Prova "
+"kommandona â€~1a~2†och â€~1w~2â€\n"
+"plus underkommandona â€g†NU. Tryck <Retur> för att göra â€aktuellt†"
+
+#. Translation Notes ------------------------------------------------
+#. . The following 'Help for color mapping' simulated screen should
+#. . probably NOT be translated. It is terribly hard to follow in
+#. . this form and any translation could produce unpleasing results
+#. . that are unlikely to parallel the running top program.
+#. .
+#. . If you decide to proceed with translation, please take care
+#. . to not disturb the spaces and the tilde + number delimiters.
+#. .
+#: src/top/top_nls.c:722
+#, c-format
+msgid ""
+"Help for color mapping~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+" color - 04:25:44 up 8 days, 50 min, 7 users, load average:\n"
+" Tasks:~3 64 ~2total,~3 2 ~3running,~3 62 ~2sleeping,~3 0 ~2stopped,"
+"~3\n"
+" %%Cpu(s):~3 76.5 ~2user,~3 11.2 ~2system,~3 0.0 ~2nice,~3 12.3 "
+"~2idle~3\n"
+" ~1 Nasty Message! ~4 -or- ~1Input Prompt~5\n"
+" ~1 PID TTY PR NI %%CPU TIME+ VIRT SWAP S COMMAND ~6\n"
+" 17284 ~8pts/2 ~7 8 0 0.0 0:00.75 1380 0 S /bin/bash ~8\n"
+" ~1 8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z~7\n"
+" 11005 ~8? ~7 9 0 0.0 0:02.50 2852 1008 S amor -sessi~8\n"
+" available toggles: ~1B~2 =disable bold globally (~1%s~2),\n"
+" ~1z~2 =color/mono (~1%s~2), ~1b~2 =tasks \"bold\"/reverse (~1%s~2)\n"
+"\n"
+"1) Select a ~1target~2 as an upper case letter, ~1current target~2 is ~1 %c "
+"~4:\n"
+" S~2 = Summary Data,~1 M~2 = Messages/Prompts,\n"
+" H~2 = Column Heads,~1 T~2 = Task Information\n"
+"2) Select a ~1color~2 as a number or use the up/down arrow keys\n"
+" to raise/lower the %d colors value, ~1current color~2 is ~1 %d ~4:\n"
+" 0~2 = black,~1 1~2 = red, ~1 2~2 = green,~1 3~2 = yellow,\n"
+" 4~2 = blue, ~1 5~2 = magenta,~1 6~2 = cyan, ~1 7~2 = white\n"
+"\n"
+"3) Then use these keys when finished:\n"
+" 'q' or <Esc> to abort changes to window '~1%s~2'\n"
+" 'a' or 'w' to commit & change another, <Enter> to commit and end "
+msgstr ""
+"Hjälp för färganpassning~2 — â€Aktuellt fönster†= ~1 %s ~6\n"
+"\n"
+" färg - 04:25:44 uppe 8 dagar, 50 min, 7 användare, last:\n"
+" Uppg.:~3 64 ~2totalt,~3 2 ~3körande,~3 62 ~2sovande,~3 0 ~2stoppade,"
+"~3\n"
+" %%Cpu/er:~3 76,5 ~2anv.,~3 11,2 ~2system,~3 0,0 ~2nice,~3 12,3 "
+"~2inakt.~3\n"
+" ~1 Otrevligt meddelande! ~4 -eller- ~1Inmatningsprompt~5\n"
+" ~1 PID TTY PR NI %%CPU TIME+ VIRT VÄXL S KOMMAND ~6\n"
+" 17284 ~8pts/2 ~7 8 0 0.0 0:00.75 1380 0 S /bin/bash ~8\n"
+" ~1 8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z~7\n"
+" 11005 ~8? ~7 9 0 0.0 0:02.50 2852 1008 S amor -sessi~8\n"
+" tillgängliga växl: ~1B~2 =avaktivera fetstil globalt (~1%s~2),\n"
+" ~1z~2 =färg/mono (~1%s~2), ~1b~2 =uppg. â€fetâ€/invers (~1%s~2)\n"
+"\n"
+"1) Välj ett ~1mål~2 som en versal bokstav, ~1aktuellt mål~2 är ~1 %c ~4:\n"
+" S~2 = Sammanf.-data,~1 M~2 = Meddelande/prompter,\n"
+" H~2 = Kolumnhuvuden,~1 T~2 = Uppgiftsinformation\n"
+"2) Välj en ~1färg~2 som ett tal eller använd upp-/nerpiltangenterna\n"
+" för att höja/sänka %d-färgens värde, , ~1aktuell färg~2 är ~1 %d ~4:\n"
+" 0~2 = svart,~1 1~2 = röd, ~1 2~2 = grön,~1 3~2 = gul,\n"
+" 4~2 = blå, ~1 5~2 = magenta,~1 6~2 = cyan, ~1 7~2 = vit\n"
+"\n"
+"3) Använd sedan dessa tangenter efteråt:\n"
+" â€q†eller <Esc> för att avbryta ändringar till fönstret â€~1%s~2â€\n"
+" â€a†el â€w†för att spara & ändra en annan, <Retur> för att spara och "
+"avsluta "
+
+#. Translation Hint: As is true for the text above, the "keys" shown to the left and
+#. . also embedded in the translatable text (along with escape seqs)
+#. . should never themselves be translated.
+#: src/top/top_nls.c:751
+msgid ""
+" d,k,r,^R '~1d~2' set delay; '~1k~2' kill; '~1r~2' renice; ~1Ctrl~2+'~1R~2' "
+"renice autogroup\n"
+msgstr ""
+" d,k,r,^R '~1d~2' anje fördröjning; '~1k~2' döda; '~1r~2' ändra nice; "
+"~1Ctrl~2+'~1R~2' ändra nice på autogrupp\n"
+
+#. Translation Hint:
+#. . This Fields Management header should be 3 lines long so as
+#. . to allow 1 blank line before the fields & descriptions.
+#. . If absolutely necessary, 4 lines could be used (but never more).
+#. .
+#: src/top/top_nls.c:759
+#, c-format
+msgid ""
+"Fields Management~2 for window ~1%s~6, whose current sort field is ~1%s~2\n"
+" Navigate with Up/Dn, Right selects for move then <Enter> or Left "
+"commits,\n"
+" 'd' or <Space> toggles display, 's' sets sort. Use 'q' or <Esc> to end!\n"
+msgstr ""
+"Fälthantering~2 för fönster ~1%s~6, vars aktuella sorteringsfält är ~1%s~2\n"
+" Navigera med Upp/Ner, Höger väljer för flytt och <Retur> el Vänster "
+"sparar,\n"
+" â€d†el <Mellanslag> växlar visning, â€s†anger sort. â€q†el <Esc> "
+"avslutar!\n"
+
+#. Translation Hint:
+#. . The next 5 items must each be translated as a single line.
+#. .
+#: src/top/top_nls.c:767
+#, c-format
+msgid ""
+"%s:~3 %3u ~2total,~3 %3u ~2running,~3 %3u ~2sleeping,~3 %3u ~2stopped,~3 %3u "
+"~2zombie~3\n"
+msgstr ""
+"%s:~3 %3u ~2totalt,~3 %3u ~2körande,~3 %3u ~2sovande,~3 %3u ~2stoppade,~3 "
+"%3u ~2zombie~3\n"
+
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt
+#: src/top/top_nls.c:773
+#, c-format
+msgid ""
+"%s~3 %#5.1f ~2us,~3 %#5.1f ~2sy,~3 %#5.1f ~2ni,~3 %#5.1f ~2id,~3 %#5.1f ~2wa,"
+"~3 %#5.1f ~2hi,~3 %#5.1f ~2si~3 ~1"
+msgstr ""
+"%s~3 %#5.1f ~2an,~3 %#5.1f ~2sy,~3 %#5.1f ~2ni,~3 %#5.1f ~2in,~3 %#5.1f ~2vä,"
+"~3 %#5.1f ~2ha,~3 %#5.1f ~2ma~3 ~1"
+
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt, st = steal time
+#: src/top/top_nls.c:779
+#, c-format
+msgid ""
+"%s~3%#5.1f ~2us,~3%#5.1f ~2sy,~3%#5.1f ~2ni,~3%#5.1f ~2id,~3%#5.1f ~2wa,"
+"~3%#5.1f ~2hi,~3%#5.1f ~2si,~3%#5.1f ~2st~3 ~1"
+msgstr ""
+"%s~3%#5.1f ~2an,~3%#5.1f ~2sy,~3%#5.1f ~2ni,~3%#5.1f ~2in,~3%#5.1f ~2vä,"
+"~3%#5.1f ~2ha,~3%#5.1f ~2ma,~3%#5.1f ~2st~3 ~1"
+
+#. Translation Hint: next 2 must be treated together, with WORDS above & below aligned
+#: src/top/top_nls.c:783
+#, c-format
+msgid ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used,~3 %9.9s~2buff/cache~3 "
+"~1 "
+msgstr ""
+"%s %s:~3 %9.9s~2totalt,~3 %9.9s~2fritt,~3 %9.9s~2anv.,~3 %9.9s~2buff/cache~3 "
+"~1 "
+
+#: src/top/top_nls.c:785
+#, c-format
+msgid ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used.~3 %9.9s~2avail %s~3"
+msgstr ""
+"%s %s:~3 %9.9s~2totalt,~3 %9.9s~2fritt,~3 %9.9s~2anv.,~3 %9.9s~2tillg %s~3"
+
+#. Translation Hint:
+#. . The next 2 headers for 'Inspection' must each be 3 lines or less
+#. .
+#: src/top/top_nls.c:791
+#, c-format
+msgid ""
+"Inspection~2 Pause at: pid ~1%d~6, running ~1%s~6\n"
+"Use~2: left/right then <Enter> to ~1select~5 an option; 'q' or <Esc> to "
+"~1end~5 !\n"
+"Options~2: ~1%s\n"
+msgstr ""
+"Inspektion~2 Paus vid: pid ~1%d~6, körande ~1%s~6\n"
+"Använd~2: vänster/höger och <Retur> för att ~1välja~5 ett alternativ; 'q' "
+"eller <Esc> för att ~1avsluta~5 !\n"
+"Alternativ~2: ~1%s\n"
+
+#: src/top/top_nls.c:796
+#, c-format
+msgid ""
+"Inspection~2 View at pid: ~1%s~3, running ~1%s~3. Locating: ~1%s~6\n"
+"Use~2: left/right/up/down/etc to ~1navigate~5 the output; 'L'/'&' to "
+"~1locate~5/~1next~5.\n"
+"Or~2: <Enter> to ~1select another~5; 'q' or <Esc> to ~1end~5 !\n"
+msgstr ""
+"Inspektion~2 Visa vid pid: ~1%s~3, körande ~1%s~3. Hitta: ~1%s~6\n"
+"Använd~2: vänster/höger/upp/ner/etc för att ~1navigera~5 utdatan; 'L'/'&' "
+"för att ~1hitta~5/~1nästa~5.\n"
+"Eller~2: <Retur> för att ~1välja en annan~5; 'q' eller <Esc> för att "
+"~1avsluta~5 !\n"
+
+#: src/uptime.c:51 src/uptime.c:123
+msgid "Cannot get system uptime"
+msgstr "Kan inte få fram systemets tid uppe"
+
+#: src/uptime.c:67
+msgid " -p, --pretty show uptime in pretty format\n"
+msgstr " -p, --pretty visa uppetiden i snyggt format\n"
+
+#: src/uptime.c:69
+msgid " -s, --since system up since\n"
+msgstr " -s, --since systemet är uppe sedan\n"
+
+#: src/vmstat.c:220
+#, c-format
+msgid " %s [options] [delay [count]]\n"
+msgstr " %s [flaggor] [fördröjning [antal]]\n"
+
+#: src/vmstat.c:223
+msgid " -a, --active active/inactive memory\n"
+msgstr " -a, --active aktivt/inaktivt minne\n"
+
+#: src/vmstat.c:224
+msgid " -f, --forks number of forks since boot\n"
+msgstr " -f, --forks antal fork sedan senaste uppstart\n"
+
+#: src/vmstat.c:225
+msgid " -m, --slabs slabinfo\n"
+msgstr " -m, --slabs skivinformation\n"
+
+#: src/vmstat.c:226
+msgid " -n, --one-header do not redisplay header\n"
+msgstr " -n, --one-header upprepa inte rubriken\n"
+
+#: src/vmstat.c:227
+msgid " -s, --stats event counter statistics\n"
+msgstr " -s, --stats räknarstatistik för händelser\n"
+
+#: src/vmstat.c:228
+msgid " -d, --disk disk statistics\n"
+msgstr " -d, --disk diskstatistik\n"
+
+#: src/vmstat.c:229
+msgid " -D, --disk-sum summarize disk statistics\n"
+msgstr " -D, --disk-sum summera diskstatistik\n"
+
+#: src/vmstat.c:230
+msgid " -p, --partition <dev> partition specific statistics\n"
+msgstr " -p, --partition <enh> partitionsspecifik statistik\n"
+
+#: src/vmstat.c:231
+msgid " -S, --unit <char> define display unit\n"
+msgstr " -S, --unit <tecken> definiera enhet att visa\n"
+
+#: src/vmstat.c:232
+msgid " -w, --wide wide output\n"
+msgstr " -w, --wide bred utdata\n"
+
+#: src/vmstat.c:233
+msgid " -t, --timestamp show timestamp\n"
+msgstr " -t, --timestamp visa tidsstämplar\n"
+
+#: src/vmstat.c:234
+msgid " -y, --no-first skips first line of output\n"
+msgstr " -y, --no-first hoppar över första utdataraden\n"
+
+#: src/vmstat.c:253
+msgid ""
+"procs -----------memory---------- ---swap-- -----io---- -system-- -------"
+"cpu-------"
+msgstr ""
+"procs -----------minne----------- -växling- -----io---- -system-- -------"
+"cpu-------"
+
+#: src/vmstat.c:255
+msgid ""
+"--procs-- -----------------------memory---------------------- ---swap-- -----"
+"io---- -system-- ----------cpu----------"
+msgstr ""
+"--procs-- -----------------------minne----------------------- -växling- -----"
+"io---- -system-- -----------cpu----------"
+
+#: src/vmstat.c:256 src/vmstat.c:619
+msgid " -----timestamp-----"
+msgstr " ----tidsstämpel----"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:275
+msgid "r"
+msgstr "k"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:277
+msgid "b"
+msgstr "b"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:279
+msgid "swpd"
+msgstr "växl"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:281
+msgid "free"
+msgstr "fritt"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:283
+msgid "inact"
+msgstr "inakt"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:285
+msgid "buff"
+msgstr "buff"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:287
+msgid "active"
+msgstr "aktivt"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:289
+msgid "cache"
+msgstr "cache"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:291
+msgid "si"
+msgstr "vi"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:293
+msgid "so"
+msgstr "vu"
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:295
+msgid "bi"
+msgstr "bi"
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:297
+msgid "bo"
+msgstr "bu"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:299
+msgid "in"
+msgstr "avb"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:301
+msgid "cs"
+msgstr "ktxb"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:303
+msgid "us"
+msgstr "an"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:305
+msgid "sy"
+msgstr "sy"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:307
+msgid "id"
+msgstr "ia"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:309
+msgid "wa"
+msgstr "vä"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:311
+msgid "st"
+msgstr "st"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:313
+msgid "gu"
+msgstr "gä"
+
+#: src/vmstat.c:374 src/vmstat.c:870
+msgid "Unable to create vmstat structure"
+msgstr "Kan inte skapa en vmstat-post"
+
+#: src/vmstat.c:376 src/vmstat.c:866 src/vmstat.c:919
+msgid "Unable to create system stat structure"
+msgstr "Kan inte skapa systemstatuspost"
+
+#: src/vmstat.c:380
+msgid "Unable to get uptime"
+msgstr "Kan inte få tiden uppe"
+
+#: src/vmstat.c:391 src/vmstat.c:472 src/vmstat.c:874
+msgid "Unable to select memory information"
+msgstr "Kan inte välja minnesinformation"
+
+#: src/vmstat.c:405 src/vmstat.c:458 src/vmstat.c:868
+msgid "Unable to select stat information"
+msgstr "Kan inte välja statusinformation"
+
+#. Translation Hint: Translating folloging disk partition
+#. * header fields that follow (marked with max x chars) might
+#. * not work, unless manual page is translated as well.
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:565
+msgid "reads"
+msgstr "läsningar"
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:567
+msgid "read sectors"
+msgstr "lästa sektorer"
+
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:569
+msgid "writes"
+msgstr "skrivningr"
+
+# Originalet uppfyller inte villkoren.
+# https://gitlab.com/procps-ng/procps/issues/69
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:571
+msgid "requested writes"
+msgstr "beg. skrivningar"
+
+#: src/vmstat.c:584 src/vmstat.c:687 src/vmstat.c:813
+msgid "Unable to create diskstat structure"
+msgstr "Kan inte skapa diskstatuspost"
+
+#: src/vmstat.c:587 src/vmstat.c:593
+#, c-format
+msgid "Disk/Partition %s not found"
+msgstr "Disken/partitionen %s finns inte"
+
+#: src/vmstat.c:616
+msgid ""
+"disk- ------------reads------------ ------------writes----------- -----"
+"IO------"
+msgstr ""
+"disk- ----------läsningar---------- ----------skrivningar-------- -----"
+"IO------"
+
+#: src/vmstat.c:618
+msgid ""
+"disk- -------------------reads------------------- -------------------"
+"writes------------------ ------IO-------"
+msgstr ""
+"disk- -----------------läsningar----------------- ----------------"
+"skrivningar---------------- ------IO-------"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:637 src/vmstat.c:645
+msgid "total"
+msgstr "totalt"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:639 src/vmstat.c:647
+msgid "merged"
+msgstr "grupp"
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:641 src/vmstat.c:649
+msgid "sectors"
+msgstr "sektor"
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:643 src/vmstat.c:651
+msgid "ms"
+msgstr "ms"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:653
+msgid "cur"
+msgstr "akt"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:655
+msgid "sec"
+msgstr "s"
+
+#: src/vmstat.c:694 src/vmstat.c:815
+msgid "Unable to retrieve disk statistics"
+msgstr "Kan inte hämta diskstatistik"
+
+#. Translation Hint: Translating folloging slab fields that
+#. * follow (marked with max x chars) might not work, unless
+#. * manual page is translated as well.
+#. Translation Hint: max 24 chars
+#: src/vmstat.c:741
+msgid "Cache"
+msgstr "Cache"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:743
+msgid "Num"
+msgstr "Antal"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:745
+msgid "Total"
+msgstr "Totalt"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:747
+msgid "Size"
+msgstr "Strlk"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:749
+msgid "Pages"
+msgstr "Sidor"
+
+#: src/vmstat.c:836
+#, c-format
+msgid "%13d disks\n"
+msgstr "%13d diskar\n"
+
+#: src/vmstat.c:837
+#, c-format
+msgid "%13d partitions\n"
+msgstr "%13d partitioner\n"
+
+#: src/vmstat.c:838
+#, c-format
+msgid "%13lu total reads\n"
+msgstr "%13lu totala läsningar\n"
+
+#: src/vmstat.c:839
+#, c-format
+msgid "%13lu merged reads\n"
+msgstr "%13lu grupperade läsningar\n"
+
+#: src/vmstat.c:840
+#, c-format
+msgid "%13lu read sectors\n"
+msgstr "%13lu lästa sektorer\n"
+
+#: src/vmstat.c:841
+#, c-format
+msgid "%13lu milli reading\n"
+msgstr "%13lu ms läst\n"
+
+#: src/vmstat.c:842
+#, c-format
+msgid "%13lu writes\n"
+msgstr "%13lu skrivningar\n"
+
+#: src/vmstat.c:843
+#, c-format
+msgid "%13lu merged writes\n"
+msgstr "%13lu grupperade skrivningar\n"
+
+#: src/vmstat.c:844
+#, c-format
+msgid "%13lu written sectors\n"
+msgstr "%13lu skrivna sektorer\n"
+
+#: src/vmstat.c:845
+#, c-format
+msgid "%13lu milli writing\n"
+msgstr "%13lu ms skrivet\n"
+
+#: src/vmstat.c:846
+#, c-format
+msgid "%13lu inprogress IO\n"
+msgstr "%13lu pågående IO\n"
+
+#: src/vmstat.c:847
+#, c-format
+msgid "%13lu milli spent IO\n"
+msgstr "%13lu ms under IO\n"
+
+#: src/vmstat.c:848
+#, c-format
+msgid "%13lu milli weighted IO\n"
+msgstr "%13lu ms viktad IO\n"
+
+#: src/vmstat.c:876
+#, c-format
+msgid "%13lu %s total memory\n"
+msgstr "%13lu %s totalt minne\n"
+
+#: src/vmstat.c:877
+#, c-format
+msgid "%13lu %s used memory\n"
+msgstr "%13lu %s använt minne\n"
+
+#: src/vmstat.c:878
+#, c-format
+msgid "%13lu %s active memory\n"
+msgstr "%13lu %s aktivt minne\n"
+
+#: src/vmstat.c:879
+#, c-format
+msgid "%13lu %s inactive memory\n"
+msgstr "%13lu %s inaktivt minne\n"
+
+#: src/vmstat.c:880
+#, c-format
+msgid "%13lu %s free memory\n"
+msgstr "%13lu %s fritt minne\n"
+
+#: src/vmstat.c:881
+#, c-format
+msgid "%13lu %s buffer memory\n"
+msgstr "%13lu %s buffertminne\n"
+
+#: src/vmstat.c:882
+#, c-format
+msgid "%13lu %s swap cache\n"
+msgstr "%13lu %s växlings-cache\n"
+
+#: src/vmstat.c:883
+#, c-format
+msgid "%13lu %s total swap\n"
+msgstr "%13lu %s totalt växling\n"
+
+#: src/vmstat.c:884
+#, c-format
+msgid "%13lu %s used swap\n"
+msgstr "%13lu %s använd växling\n"
+
+#: src/vmstat.c:885
+#, c-format
+msgid "%13lu %s free swap\n"
+msgstr "%13lu %s fri växling\n"
+
+#: src/vmstat.c:886
+#, c-format
+msgid "%13lld non-nice user cpu ticks\n"
+msgstr "%13lld icke-nice användar-cpu-tick\n"
+
+#: src/vmstat.c:887
+#, c-format
+msgid "%13lld nice user cpu ticks\n"
+msgstr "%13lld nice användar-cpu-tick\n"
+
+#: src/vmstat.c:888
+#, c-format
+msgid "%13lld system cpu ticks\n"
+msgstr "%13lld system-cpu-tick\n"
+
+#: src/vmstat.c:889
+#, c-format
+msgid "%13lld idle cpu ticks\n"
+msgstr "%13lld inaktiva-cpu-tick\n"
+
+#: src/vmstat.c:890
+#, c-format
+msgid "%13lld IO-wait cpu ticks\n"
+msgstr "%13lld cpu-tick i IO-väntan\n"
+
+#: src/vmstat.c:891
+#, c-format
+msgid "%13lld IRQ cpu ticks\n"
+msgstr "%13lld IRQ-cpu-tick\n"
+
+#: src/vmstat.c:892
+#, c-format
+msgid "%13lld softirq cpu ticks\n"
+msgstr "%13lld softirq-cpu-tick\n"
+
+#: src/vmstat.c:893
+#, c-format
+msgid "%13lld stolen cpu ticks\n"
+msgstr "%13lld stulna cpu-tick\n"
+
+#: src/vmstat.c:894
+#, c-format
+msgid "%13lld non-nice guest cpu ticks\n"
+msgstr "%13lld icke-nice gäst-cpu-tick\n"
+
+#: src/vmstat.c:895
+#, c-format
+msgid "%13lld nice guest cpu ticks\n"
+msgstr "%13lld nice gäst-cpu-tick\n"
+
+#: src/vmstat.c:896
+#, c-format
+msgid "%13lu K paged in\n"
+msgstr "%13lu K sidor inkallade\n"
+
+#: src/vmstat.c:897
+#, c-format
+msgid "%13lu K paged out\n"
+msgstr "%13lu K sidor utskickade\n"
+
+#: src/vmstat.c:898
+#, c-format
+msgid "%13lu pages swapped in\n"
+msgstr "%13lu sidor växlade in\n"
+
+#: src/vmstat.c:899
+#, c-format
+msgid "%13lu pages swapped out\n"
+msgstr "%13lu sidor växlade ut\n"
+
+#: src/vmstat.c:900
+#, c-format
+msgid "%13lu interrupts\n"
+msgstr "%13lu avbrott\n"
+
+#: src/vmstat.c:901
+#, c-format
+msgid "%13lu CPU context switches\n"
+msgstr "%13lu CPU-kontextbyten\n"
+
+#: src/vmstat.c:902
+#, c-format
+msgid "%13lu boot time\n"
+msgstr "%13lu starttid\n"
+
+#: src/vmstat.c:903 src/vmstat.c:921
+#, c-format
+msgid "%13lu forks\n"
+msgstr "%13lu grenar\n"
+
+#. Translation Hint: do not change argument characters
+#: src/vmstat.c:1024
+msgid "-S requires k, K, m or M (default is KiB)"
+msgstr "-S kräver k, K, m eller M (standard är KiB)"
+
+#: src/watch.c:94
+#, c-format
+msgid " %s [options] command\n"
+msgstr " %s [flaggor] kommando\n"
+
+#: src/watch.c:96
+msgid " -b, --beep beep if command has a non-zero exit\n"
+msgstr " -b, --beep pip om kommandot avslutas med annat än noll\n"
+
+#: src/watch.c:97
+msgid " -c, --color interpret ANSI color and style sequences\n"
+msgstr " -c, --color tolka ANSI färg- och stilsekvenser\n"
+
+#: src/watch.c:98
+msgid ""
+" -C, --no-color do not interpret ANSI color and style sequences\n"
+msgstr " -C, --no-color tolka inte ANSI färg- och stilsekvenser\n"
+
+#: src/watch.c:99
+msgid ""
+" -d, --differences[=<permanent>]\n"
+" highlight changes between updates\n"
+msgstr ""
+" -d, --differences[=<permanent>]\n"
+" markera ändringar mellan uppdateringar\n"
+
+#: src/watch.c:101
+msgid " -e, --errexit exit if command has a non-zero exit\n"
+msgstr ""
+" -e, --errexit avsluta om kommandot avslutas med annat än noll\n"
+
+#: src/watch.c:102
+msgid " -g, --chgexit exit when output from command changes\n"
+msgstr " -g, --chgexit avsluta när utdata från kommandot ändras\n"
+
+#: src/watch.c:103
+msgid ""
+" -q, --equexit <cycles>\n"
+" exit when output from command does not change\n"
+msgstr ""
+" -q, --equexit <cykler>\n"
+" avsluta när utdata från kommandot inte ändras\n"
+
+#: src/watch.c:105
+msgid " -n, --interval <secs> seconds to wait between updates\n"
+msgstr " -n, --interval <sek> sekunder att vänta mellan uppdateringar\n"
+
+#: src/watch.c:106
+msgid " -p, --precise attempt run command in precise intervals\n"
+msgstr ""
+" -p, --precise försök att köra kommandot med precisa intervall\n"
+
+#: src/watch.c:107
+msgid " -r, --no-rerun do not rerun program on window resize\n"
+msgstr ""
+" -r, --no-rerun kör inte om programmet vid ändring av "
+"fönsterstorlek\n"
+
+#: src/watch.c:108
+msgid " -t, --no-title turn off header\n"
+msgstr " -t, --no-title slå av rubrik\n"
+
+#: src/watch.c:109
+msgid " -w, --no-wrap turn off line wrapping\n"
+msgstr " -w, --no-wrap slå av radbrytning\n"
+
+#: src/watch.c:110
+msgid " -x, --exec pass command to exec instead of \"sh -c\"\n"
+msgstr ""
+" -x, --exec skicka kommandot till exec istället för â€sh -câ€\n"
+
+#: src/watch.c:113
+msgid " -v, --version output version information and exit\n"
+msgstr " -v, --version skriv ut versionsinformation och avsluta\n"
+
+#: src/watch.c:485
+#, c-format
+msgid "Every %.1fs: "
+msgstr "Var %.1f s: "
+
+#: src/watch.c:486
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: src/watch.c:575
+msgid "unable to create IPC pipes"
+msgstr "kan inte skapa IPC-rör"
+
+#: src/watch.c:585
+msgid "unable to fork process"
+msgstr "kan inte grena av process"
+
+#: src/watch.c:590
+msgid "dup2 failed"
+msgstr "dup2 misslyckades"
+
+#: src/watch.c:597
+#, c-format
+msgid "unable to execute '%s'"
+msgstr "kan inte köra â€%sâ€"
+
+#: src/watch.c:614
+msgid "fdopen"
+msgstr "fdopen"
+
+#: src/watch.c:788
+msgid "waitpid"
+msgstr "waitpid"
+
+#: src/watch.c:796
+msgid "command exit with a non-zero status, press a key to exit"
+msgstr ""
+"kommandot avslutade med en nollskild status, tryck en tangent för att avsluta"
+
+#: src/watch.c:863
+msgid "Could not parse interval from WATCH_INTERVAL"
+msgstr "Kunde inte tolka intervall från WATCH_INTERVAL"
+
+#: src/watch.c:954
+#, c-format
+msgid "unicode handling error\n"
+msgstr "fel i hantering av unicode\n"
+
+#: src/watch.c:960
+#, c-format
+msgid "unicode handling error (malloc)\n"
+msgstr "fel i hantering av unicode (malloc)\n"
+
+#: src/w.c:289 src/w.c:304
+#, c-format
+msgid " %2lludays"
+msgstr " %2llu dagar"
+
+#. Translation Hint: Minutes:Seconds
+#. Translation Hint: Hours:Minutes
+#: src/w.c:298 src/w.c:308
+#, c-format
+msgid " %2llu:%02um"
+msgstr " %2llu.%02um"
+
+#. Translation Hint: Seconds:Centiseconds
+#: src/w.c:316
+#, c-format
+msgid " %2llu.%02us"
+msgstr " %2llu,%02us"
+
+#: src/w.c:656
+#, c-format
+msgid " %s [options] [user]\n"
+msgstr " %s [flaggor] [användare]\n"
+
+#: src/w.c:658
+msgid " -h, --no-header do not print header\n"
+msgstr " -h, --no-header skriv inte ut rubrik\n"
+
+#: src/w.c:659
+msgid " -u, --no-current ignore current process username\n"
+msgstr " -u, --no-current ignorera aktuell process användarnamn\n"
+
+#: src/w.c:660
+msgid " -s, --short short format\n"
+msgstr " -s, --short kort format\n"
+
+#: src/w.c:661
+msgid " -f, --from show remote hostname field\n"
+msgstr " -f, --from visa fält med fjärrvärdsnamn\n"
+
+#: src/w.c:662
+msgid " -o, --old-style old style output\n"
+msgstr " -o, --old-style utdata i gammal stil\n"
+
+#: src/w.c:663
+msgid ""
+" -i, --ip-addr display IP address instead of hostname (if possible)\n"
+msgstr ""
+" -i, --ip-addr visa IP-adress istället för värdnamn (om möjligt)\n"
+
+#: src/w.c:664
+msgid " -p, --pids show the PID(s) of processes in WHAT\n"
+msgstr " -p, --pids visa PID:erna för processer i VAD\n"
+
+#: src/w.c:763
+#, c-format
+msgid ""
+"User length environment PROCPS_USERLEN must be between 8 and %i, ignoring.\n"
+msgstr ""
+"Miljövariabeln PROCPS_USERLEN för användarnamnslängd måste vara mellan 8 och "
+"%i, ignorerar.\n"
+
+#: src/w.c:773
+#, c-format
+msgid ""
+"from length environment PROCPS_FROMLEN must be between 8 and %d, ignoring\n"
+msgstr ""
+"Miljövariabeln PROCPS_FROMLEN för frånlängd måste vara mellan 8 och %d, "
+"ignorerar.\n"
+
+#. Translation Hint: Following five uppercase messages are
+#. * headers. Try to keep alignment intact.
+#: src/w.c:799
+#, c-format
+msgid "%-*s TTY "
+msgstr "%-*s TTY "
+
+#: src/w.c:801
+msgid "FROM"
+msgstr "FRÃ…N"
+
+#: src/w.c:803
+#, c-format
+msgid " LOGIN@ IDLE JCPU PCPU WHAT\n"
+msgstr " LOGIN@ INAKT JCPU PCPU VAD\n"
+
+#: src/w.c:805
+#, c-format
+msgid " IDLE WHAT\n"
+msgstr " INAKT VAD\n"
+
+#: src/w.c:815
+msgid "error getting sessions"
+msgstr "fel när sessioner inhämtades"
+
+#: src/w.c:823
+msgid "get user name failed"
+msgstr "att hämta användarnamn misslyckades"
+
+#: local/c.h:153
+msgid ""
+"\n"
+"Usage:\n"
+msgstr ""
+"\n"
+"Användning:\n"
+
+#: local/c.h:154
+msgid ""
+"\n"
+"Options:\n"
+msgstr ""
+"\n"
+"Flaggor:\n"
+
+#: local/c.h:155
+msgid "\n"
+msgstr "\n"
+
+#: local/c.h:156
+msgid " -h, --help display this help and exit\n"
+msgstr " -h, --help visa denna hjälp och avsluta\n"
+
+#: local/c.h:157
+msgid " -V, --version output version information and exit\n"
+msgstr " -V, --version skriv ut versionsinformation och avsluta\n"
+
+#: local/c.h:158
+#, c-format
+msgid ""
+"\n"
+"For more details see %s.\n"
+msgstr ""
+"\n"
+"För fler detaljer, se %s.\n"
+
+#: local/c.h:160
+#, c-format
+msgid "%s from %s\n"
+msgstr "%s från %s\n"
diff --git a/po/uk.gmo b/po/uk.gmo
new file mode 100644
index 0000000..dddbfc6
--- /dev/null
+++ b/po/uk.gmo
Binary files differ
diff --git a/po/uk.po b/po/uk.po
new file mode 100644
index 0000000..14a9195
--- /dev/null
+++ b/po/uk.po
@@ -0,0 +1,5095 @@
+# Ukrainian translation for procps-ng.
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This file is distributed under the same license as the procps-ng package.
+#
+# Yuri Chornoivan <yurchor@ukr.net>, 2014, 2017, 2018, 2019, 2021, 2022, 2023.
+msgid ""
+msgstr ""
+"Project-Id-Version: procps-ng-4.0.4-rc1\n"
+"Report-Msgid-Bugs-To: procps@freelists.org\n"
+"POT-Creation-Date: 2023-08-19 17:38+1000\n"
+"PO-Revision-Date: 2023-08-20 12:58+0300\n"
+"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
+"Language-Team: Ukrainian <trans-uk@lists.fedoraproject.org>\n"
+"Language: uk\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"X-Generator: Lokalize 20.12.0\n"
+
+#: local/fileutils.c:38
+msgid "write error"
+msgstr "помилка під Ñ‡Ð°Ñ Ñпроби запиÑу"
+
+#: src/free.c:74 src/slabtop.c:106 src/uptime.c:65
+#, c-format
+msgid " %s [options]\n"
+msgstr " %s [параметри]\n"
+
+#: src/free.c:76
+msgid " -b, --bytes show output in bytes\n"
+msgstr " -b, --bytes вивеÑти дані у байтах\n"
+
+#: src/free.c:77
+msgid " --kilo show output in kilobytes\n"
+msgstr " --kilo вивеÑти дані у кілобайтах\n"
+
+#: src/free.c:78
+msgid " --mega show output in megabytes\n"
+msgstr " --mega вивеÑти дані у мегабайтах\n"
+
+#: src/free.c:79
+msgid " --giga show output in gigabytes\n"
+msgstr " --giga вивеÑти дані у гігабайтах\n"
+
+#: src/free.c:80
+msgid " --tera show output in terabytes\n"
+msgstr " --tera вивеÑти дані у терабайтах\n"
+
+#: src/free.c:81
+msgid " --peta show output in petabytes\n"
+msgstr " --peta вивеÑти дані у петабайтах\n"
+
+#: src/free.c:82
+msgid " -k, --kibi show output in kibibytes\n"
+msgstr " -k, --kibi вивеÑти дані у кібібайтах\n"
+
+#: src/free.c:83
+msgid " -m, --mebi show output in mebibytes\n"
+msgstr " -m, --mebi вивеÑти дані у мебібайтах\n"
+
+#: src/free.c:84
+msgid " -g, --gibi show output in gibibytes\n"
+msgstr " -g, --gibi вивеÑти дані у гібібайтах\n"
+
+#: src/free.c:85
+msgid " --tebi show output in tebibytes\n"
+msgstr " --tebi вивеÑти дані у тебібайтах\n"
+
+#: src/free.c:86
+msgid " --pebi show output in pebibytes\n"
+msgstr " --pebi вивеÑти дані у пебібайтах\n"
+
+#: src/free.c:87
+msgid " -h, --human show human-readable output\n"
+msgstr " -h, --human вивеÑти дані у зручному Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð²Ð¸Ð³Ð»Ñді\n"
+
+#: src/free.c:88
+msgid " --si use powers of 1000 not 1024\n"
+msgstr ""
+" --si викориÑтовувати одиниці з кратніÑÑ‚ÑŽ 1000, а не 1024\n"
+
+#: src/free.c:89
+msgid " -l, --lohi show detailed low and high memory statistics\n"
+msgstr ""
+" -l, --lohi вивеÑти докладні дані щодо викориÑÑ‚Ð°Ð½Ð½Ñ Ð²ÐµÑ€Ñ…Ð½ÑŒÐ¾Ñ— Ñ– "
+"нижньої облаÑтей пам’ÑÑ‚Ñ–\n"
+
+#: src/free.c:90
+msgid " -L, --line show output on a single line\n"
+msgstr " -L, --line вивеÑти дані в один Ñ€Ñдок\n"
+
+#: src/free.c:91
+msgid " -t, --total show total for RAM + swap\n"
+msgstr " -t, --total вивеÑти загальні дані Ð´Ð»Ñ RAM + Ñвопінґ\n"
+
+#: src/free.c:92
+msgid " -v, --committed show committed memory and commit limit\n"
+msgstr " -v, --committed показати внеÑену пам'ÑÑ‚ÑŒ та Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ Ð²Ð½ÐµÑеннÑ\n"
+
+#: src/free.c:93
+msgid " -s N, --seconds N repeat printing every N seconds\n"
+msgstr " -s N, --seconds N повторювати Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ ÐºÐ¾Ð¶Ð½Ñ– N Ñекунд\n"
+
+#: src/free.c:94
+msgid " -c N, --count N repeat printing N times, then exit\n"
+msgstr ""
+" -c N, --count N повторити Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ N разів, потім завершити роботу\n"
+
+#: src/free.c:95
+msgid " -w, --wide wide output\n"
+msgstr " -w, --wide Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñƒ широкому форматі\n"
+
+#: src/free.c:97 src/w.c:666
+msgid " --help display this help and exit\n"
+msgstr " --help показати цю довідку та вийти\n"
+
+#: src/free.c:172
+msgid "Multiple unit options don't make sense."
+msgstr "Ð—Ð°Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ… параметрів одиниць не має ÑенÑу."
+
+#: src/free.c:341
+#, c-format
+msgid "seconds argument `%s' is not positive number"
+msgstr "аргумент Ñекунд, «%s», не Ñ” додатним чиÑлом"
+
+#: src/free.c:347
+msgid "failed to parse count argument"
+msgstr "не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ аргумент кількоÑÑ‚Ñ–"
+
+#: src/free.c:350
+#, c-format
+msgid "failed to parse count argument: '%s'"
+msgstr "не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ аргумент кількоÑÑ‚Ñ–: «%s»"
+
+#: src/free.c:370
+msgid "Memory information file /proc/meminfo does not exist"
+msgstr "Файла даних щодо пам'ÑÑ‚Ñ– /proc/meminfo не Ñ–Ñнує"
+
+#: src/free.c:373 src/vmstat.c:378 src/vmstat.c:872
+msgid "Unable to create meminfo structure"
+msgstr "Ðе вдалоÑÑ Ñтворити Ñтруктуру meminfo"
+
+#. Translation Hint: These are shortened column headers
+#. * that are all 7 characters long. Use spaces and right
+#. * align if the translation is shorter.
+#.
+#: src/free.c:381
+msgid "SwapUse"
+msgstr "ВикСвоп"
+
+#: src/free.c:382
+msgid "CachUse"
+msgstr "ВикКеш"
+
+#: src/free.c:384
+msgid " MemUse"
+msgstr " ВикПам"
+
+#: src/free.c:385
+msgid "MemFree"
+msgstr "ВільПам"
+
+#: src/free.c:395
+#, c-format
+msgid ""
+" total used free shared buffers "
+"cache available"
+msgstr ""
+" загалом викориÑÑ‚. вільна Ñпільна буфери "
+"кеш доÑÑ‚."
+
+#: src/free.c:397
+#, c-format
+msgid ""
+" total used free shared buff/cache "
+"available"
+msgstr ""
+" загалом викориÑÑ‚. вільна Ñпільна буфери/кеш доÑÑ‚."
+
+#: src/free.c:400
+msgid "Mem:"
+msgstr "Пам.:"
+
+#: src/free.c:423
+msgid "Low:"
+msgstr "ÐижнÑ:"
+
+#: src/free.c:429
+msgid "High:"
+msgstr "ВерхнÑ:"
+
+#: src/free.c:436
+msgid "Swap:"
+msgstr "Своп.:"
+
+#: src/free.c:443
+msgid "Total:"
+msgstr "Загалом:"
+
+#: src/free.c:456
+msgid "Comm:"
+msgstr "Comm:"
+
+#: src/kill.c:40
+#, c-format
+msgid " %s [options] <pid> [...]\n"
+msgstr " %s [параметри] <pid> [...]\n"
+
+#: src/kill.c:42
+msgid " <pid> [...] send signal to every <pid> listed\n"
+msgstr " <pid> [...] надіÑлати Ñигнал кожному <pid> зі ÑпиÑку\n"
+
+#: src/kill.c:43
+msgid ""
+" -<signal>, -s, --signal <signal>\n"
+" specify the <signal> to be sent\n"
+msgstr ""
+" -<Ñигнал>, -s, --signal <Ñигнал>\n"
+" вказати <Ñигнал>, Ñкий Ñлід надіÑлати\n"
+
+#: src/kill.c:45
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr ""
+" -q, --queue <значеннÑ> ціле значеннÑ, Ñке має бути надіÑлано із Ñигналом\n"
+
+#: src/kill.c:46
+msgid ""
+" -l, --list=[<signal>] list all signal names, or convert one to a name\n"
+msgstr ""
+" -l, --list [=<Ñигнал>] вивеÑти ÑпиÑок уÑÑ–Ñ… назв Ñигналів або перетворити "
+"номер на назву\n"
+
+#: src/kill.c:47
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr ""
+" -L, --table показати ÑпиÑок уÑÑ–Ñ… назв Ñигналів у таблиці nice\n"
+
+#: src/kill.c:112
+#, c-format
+msgid "unknown signal name %s"
+msgstr "невідома назва Ñигналу, %s"
+
+#: src/kill.c:131
+msgid "must be an integer value to be passed with the signal."
+msgstr "має бути цілим значеннÑм, Ñке Ñлід передати разом із Ñигналом."
+
+#: src/kill.c:136
+#, c-format
+msgid "invalid argument %c"
+msgstr "некоректний аргумент, %c"
+
+#: src/kill.c:146 src/pgrep.c:792 src/pidof.c:250 src/pidof.c:290
+#: src/sysctl.c:867
+msgid "internal error"
+msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°"
+
+#: src/kill.c:158 src/pmap.c:771 src/pmap.c:786 src/skill.c:381 src/skill.c:465
+#: src/tload.c:135 src/tload.c:140 src/vmstat.c:1047 src/vmstat.c:1057
+#: src/watch.c:891 src/watch.c:906
+msgid "failed to parse argument"
+msgstr "не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ аргумент"
+
+#: src/pgrep.c:92 src/pidof.c:40 src/skill.c:74
+msgid "integer overflow"
+msgstr "Ð¿ÐµÑ€ÐµÐ¿Ð¾Ð²Ð½ÐµÐ½Ð½Ñ Ñ†Ñ–Ð»Ð¾Ñ‡Ð¸Ñельного типу"
+
+#: src/pgrep.c:155
+#, c-format
+msgid " %s [options] <pattern>\n"
+msgstr " %s [параметри] <шаблон>\n"
+
+#: src/pgrep.c:159
+msgid " -d, --delimiter <string> specify output delimiter\n"
+msgstr " -d, --delimiter <Ñ€Ñдок> визначити роздільник Ð´Ð»Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…\n"
+
+#: src/pgrep.c:160
+msgid " -l, --list-name list PID and process name\n"
+msgstr " -l, --list-name вивеÑти ÑпиÑок PID Ñ– назву процеÑу\n"
+
+#: src/pgrep.c:161
+msgid " -a, --list-full list PID and full command line\n"
+msgstr ""
+" -a, --list-full вивеÑти ÑпиÑок PID на Ñ€Ñдків команд повніÑÑ‚ÑŽ\n"
+
+#: src/pgrep.c:162
+msgid " -v, --inverse negates the matching\n"
+msgstr " -v, --inverse інвертувати відповідніÑÑ‚ÑŒ\n"
+
+#: src/pgrep.c:163
+msgid " -w, --lightweight list all TID\n"
+msgstr " -w, --lightweight вивеÑти ÑпиÑок уÑÑ–Ñ… TID\n"
+
+#: src/pgrep.c:166
+msgid " -<sig> signal to send (either number or name)\n"
+msgstr ""
+" -<Ñиг> Ñигнал, Ñкий Ñлід надіÑлати (у форматі чиÑла або "
+"назви)\n"
+
+#: src/pgrep.c:167
+msgid " -H, --require-handler match only if signal handler is present\n"
+msgstr ""
+" -H, --require-handler вÑтановлювати відповідніÑÑ‚ÑŒ, лише Ñкщо Ñ” обробник "
+"Ñигналу\n"
+
+#: src/pgrep.c:168
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr ""
+" -q, --queue <значеннÑ> ціле значеннÑ, Ñке має бути надіÑлано із "
+"Ñигналом\n"
+
+#: src/pgrep.c:169
+msgid " -e, --echo display what is killed\n"
+msgstr " -e, --echo вивеÑти дані щодо того, що було завершено\n"
+
+#: src/pgrep.c:173
+msgid " -e, --echo display PIDs before waiting\n"
+msgstr " -e, --echo вивеÑти PID до очікуваннÑ\n"
+
+#: src/pgrep.c:177
+msgid " -c, --count count of matching processes\n"
+msgstr " -c, --count полічити відповідні процеÑи\n"
+
+#: src/pgrep.c:178
+msgid " -f, --full use full process name to match\n"
+msgstr ""
+" -f, --full Ð´Ð»Ñ Ð²ÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ð²Ñ–Ð´Ð¿Ð¾Ð²Ñ–Ð´Ð½Ð¾ÑÑ‚Ñ– викориÑтати назву "
+"повніÑÑ‚ÑŽ\n"
+
+#: src/pgrep.c:179
+msgid " -g, --pgroup <PGID,...> match listed process group IDs\n"
+msgstr ""
+" -g, --pgroup <PGID,...> відповідніÑÑ‚ÑŒ за ідентифікаторами груп процеÑів у "
+"ÑпиÑку\n"
+
+#: src/pgrep.c:180
+msgid " -G, --group <GID,...> match real group IDs\n"
+msgstr ""
+" -G, --group <GID,...> відповідніÑÑ‚ÑŒ за Ñправжніми ідентифікаторами\n"
+
+#: src/pgrep.c:181
+msgid " -i, --ignore-case match case insensitively\n"
+msgstr " -i, --ignore-case враховувати регіÑÑ‚Ñ€ Ñимволів\n"
+
+#: src/pgrep.c:182
+msgid " -n, --newest select most recently started\n"
+msgstr " -n, --newest вибрати оÑтанні запущені\n"
+
+#: src/pgrep.c:183
+msgid " -o, --oldest select least recently started\n"
+msgstr " -o, --oldest вибрати перші запущені\n"
+
+#: src/pgrep.c:184
+msgid " -O, --older <seconds> select where older than seconds\n"
+msgstr ""
+" -O, --older <Ñекунди> вибрати Ñ‚Ñ–, Ñкі Ñтаріші за вказане Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñƒ "
+"Ñекундах\n"
+
+#: src/pgrep.c:185
+msgid ""
+" -P, --parent <PPID,...> match only child processes of the given parent\n"
+msgstr ""
+" -P, --parent <PPID,...> відповідніÑÑ‚ÑŒ лише за дочірніми процеÑами "
+"вказаного процеÑу\n"
+
+#: src/pgrep.c:186
+msgid " -s, --session <SID,...> match session IDs\n"
+msgstr " -s, --session <SID,...> відповідніÑÑ‚ÑŒ за ідентифікаторами ÑеанÑу\n"
+
+#: src/pgrep.c:187
+msgid " --signal <sig> signal to send (either number or name)\n"
+msgstr ""
+" --signal <Ñиг> Ñигнал, Ñкий Ñлід надіÑлати (у форматі чиÑла або "
+"назви)\n"
+
+#: src/pgrep.c:188
+msgid " -t, --terminal <tty,...> match by controlling terminal\n"
+msgstr " -t, --terminal <tty,...> відповідніÑÑ‚ÑŒ за терміналом керуваннÑ\n"
+
+#: src/pgrep.c:189
+msgid " -u, --euid <ID,...> match by effective IDs\n"
+msgstr ""
+" -u, --euid <ID,...> відповідніÑÑ‚ÑŒ за ефективними ідентифікаторами\n"
+
+#: src/pgrep.c:190
+msgid " -U, --uid <ID,...> match by real IDs\n"
+msgstr ""
+" -U, --uid <ID,...> відповідніÑÑ‚ÑŒ за Ñправжніми ідентифікаторами\n"
+
+#: src/pgrep.c:191
+msgid " -x, --exact match exactly with the command name\n"
+msgstr ""
+" -x, --exact вÑтановити точну відповідніÑÑ‚ÑŒ з назвою команди\n"
+
+#: src/pgrep.c:192
+msgid " -F, --pidfile <file> read PIDs from file\n"
+msgstr " -F, --pidfile <файл> прочитати PID з файла\n"
+
+#: src/pgrep.c:193
+msgid " -L, --logpidfile fail if PID file is not locked\n"
+msgstr ""
+" -L, --logpidfile завершити з помилкою, Ñкщо файл PID не "
+"заблоковано\n"
+
+#: src/pgrep.c:194
+msgid " -r, --runstates <state> match runstates [D,S,Z,...]\n"
+msgstr " -r, --runstates <Ñтан> пошук за Ñтанами запуÑку [D,S,Z,...]\n"
+
+#: src/pgrep.c:195
+msgid " -A, --ignore-ancestors exclude our ancestors from results\n"
+msgstr ""
+" -A, --ignore-ancestors виключити наших попередників з результатів\n"
+
+#: src/pgrep.c:196
+msgid " --cgroup <grp,...> match by cgroup v2 names\n"
+msgstr ""
+" --cgroup <група,...> вÑтановити відповідніÑÑ‚ÑŒ за назвами cgroup верÑÑ–Ñ— "
+"2\n"
+
+#: src/pgrep.c:197
+msgid ""
+" --ns <PID> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+" --ns <PID> відповідніÑÑ‚ÑŒ процеÑам, що належать тому Ñамому\n"
+" проÑтору назв, що Ñ– <PID>\n"
+
+#: src/pgrep.c:199
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option.\n"
+" Available namespaces: ipc, mnt, net, pid, user, "
+"uts\n"
+msgstr ""
+" --nslist <ns,...> вивеÑти ÑпиÑок проÑторів назв, Ñкі "
+"викориÑтовуватимутьÑÑ Ð´Ð»Ñ\n"
+" обробки з параметром --ns.\n"
+" Можливі проÑтори назв: ipc, mnt, net, pid, user, "
+"uts\n"
+
+#: src/pgrep.c:224 src/pgrep.c:700 src/w.c:455
+msgid "Unable to create pid info structure"
+msgstr "Ðе вдалоÑÑ Ñтворити Ñтруктуру відомоÑтей щодо pid"
+
+#: src/pgrep.c:388
+#, c-format
+msgid "invalid user name: %s"
+msgstr "некоректна назва облікового запиÑу кориÑтувача: %s"
+
+#: src/pgrep.c:405
+#, c-format
+msgid "invalid group name: %s"
+msgstr "некоректна назва групи: %s"
+
+#: src/pgrep.c:416
+#, c-format
+msgid "invalid process group: %s"
+msgstr "некоректна група процеÑу: %s"
+
+#: src/pgrep.c:428
+#, c-format
+msgid "invalid session id: %s"
+msgstr "некоректний ідентифікатор ÑеанÑу: %s"
+
+#: src/pgrep.c:440
+#, c-format
+msgid "not a number: %s"
+msgstr "не Ñ” чиÑлом: %s"
+
+#: src/pgrep.c:490
+#, c-format
+msgid "not a hex string: %s"
+msgstr "не Ñ” шіÑтнадцÑтковим Ñ€Ñдком: %s"
+
+#: src/pgrep.c:525 src/skill.c:162
+msgid "Unable to read process namespace information"
+msgstr "Ðе вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ дані щодо проÑтору назв процеÑу"
+
+#: src/pgrep.c:612
+#, c-format
+msgid "regex error: %s"
+msgstr "помилка у формальному виразі: %s"
+
+#: src/pgrep.c:695
+msgid "Error reading reference namespace information\n"
+msgstr "Помилка під Ñ‡Ð°Ñ Ñпроби Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… щодо еталонного проÑтору назв\n"
+
+#: src/pgrep.c:809
+#, c-format
+msgid ""
+"pattern that searches for process name longer than 15 characters will result "
+"in zero matches\n"
+"Try `%s -f' option to match against the complete command line."
+msgstr ""
+"зразки Ð´Ð»Ñ Ð¿Ð¾ÑˆÑƒÐºÑƒ назви процеÑу, Ñка Ñ” довшою за 15 Ñимволів, призведуть до "
+"того, що нічого не буде знайдено\n"
+"Спробуйте параметр «%s -f», щоб виконати пошук за повним Ñ€Ñдком команди."
+
+#: src/pgrep.c:924
+#, c-format
+msgid "Unknown signal \"%s\"."
+msgstr "Ðевідомий Ñигнал «%s»."
+
+#: src/pgrep.c:1090
+#, c-format
+msgid ""
+"-L without -F makes no sense\n"
+"Try `%s --help' for more information."
+msgstr ""
+"-L без -F позбавлений ÑенÑу\n"
+"Спробуйте «%s --help», щоб отримати додаткову інформацію."
+
+#: src/pgrep.c:1097
+#, c-format
+msgid ""
+"pidfile not valid\n"
+"Try `%s --help' for more information."
+msgstr ""
+"некоректний pidfile\n"
+"Спробуйте команду «%s --help», щоб дізнатиÑÑ Ð±Ñ–Ð»ÑŒÑˆÐµ."
+
+#: src/pgrep.c:1106
+#, c-format
+msgid ""
+"only one pattern can be provided\n"
+"Try `%s --help' for more information."
+msgstr ""
+"можна вказувати лише один шаблон\n"
+"Спробуйте «%s --help», щоб отримати додаткову інформацію."
+
+#: src/pgrep.c:1110
+#, c-format
+msgid ""
+"no matching criteria specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+"не вказано критеріїв відповідноÑÑ‚Ñ–\n"
+"Спробуйте «%s --help», щоб отримати додаткову інформацію."
+
+#: src/pgrep.c:1162
+#, c-format
+msgid "%s killed (pid %lu)\n"
+msgstr "роботу %s завершено (pid %lu)\n"
+
+#: src/pgrep.c:1169
+#, c-format
+msgid "killing pid %ld failed"
+msgstr "не вдалоÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ñ‚Ð¸ роботу pid %ld"
+
+#: src/pgrep.c:1181
+#, c-format
+msgid "waiting for %s (pid %lu)\n"
+msgstr "очікуємо на %s (pid %lu)\n"
+
+#: src/pgrep.c:1185
+msgid "pidfd_open() not implemented in Linux < 5.3"
+msgstr "pidfd_open() не реалізовано у Linux < 5.3"
+
+#: src/pgrep.c:1188
+#, c-format
+msgid "opening pid %ld failed"
+msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ pid %ld"
+
+#: src/pgrep.c:1202
+msgid "epoll_wait failed"
+msgstr "помилка epoll_wait"
+
+#: src/pidof.c:75
+#, c-format
+msgid " %s [options] [program [...]]\n"
+msgstr " %s [параметри] [програма [...]]\n"
+
+#: src/pidof.c:77
+msgid " -s, --single-shot return one PID only\n"
+msgstr " -s, --single-shot вивеÑти лише один PID\n"
+
+#: src/pidof.c:78
+msgid " -c, --check-root omit processes with different root\n"
+msgstr ""
+" -c, --check-root пропуÑкати процеÑи з іншим кореневим каталогом\n"
+
+#: src/pidof.c:79
+msgid " -q, quiet mode, only set the exit code\n"
+msgstr ""
+" -q, режим без повідомлень, лише вÑтановити код "
+"виходу\n"
+
+#: src/pidof.c:80
+msgid " -w, --with-workers show kernel workers too\n"
+msgstr " -w, --with-workers показувати Ñ– обробники з Ñдра\n"
+
+#: src/pidof.c:81
+msgid " -x also find shells running the named scripts\n"
+msgstr ""
+" -x знайти також оболонки, у Ñких запущено вказані за "
+"назвами Ñкрипти\n"
+
+#: src/pidof.c:82
+msgid " -o, --omit-pid <PID,...> omit processes with PID\n"
+msgstr " -o, --omit-pid <PID,...> пропуÑкати процеÑи із вказаним PID\n"
+
+#: src/pidof.c:83
+msgid " -t, --lightweight list threads too\n"
+msgstr " -t, --lightweight також показати ÑпиÑок потоків обробки\n"
+
+#: src/pidof.c:84
+msgid " -S, --separator SEP use SEP as separator put between PIDs"
+msgstr ""
+" -S, --separator РОЗД викориÑтовувати РОЗД Ñк роздільник між запиÑами "
+"PID"
+
+#: src/pidof.c:293
+#, c-format
+msgid "illegal omit pid value (%s)!\n"
+msgstr "некоректне Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ pid Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð¿ÑƒÑÐºÐ°Ð½Ð½Ñ (%s)!\n"
+
+#: src/pmap.c:72
+msgid "Address"
+msgstr "ÐдреÑа"
+
+#: src/pmap.c:73
+msgid "Offset"
+msgstr "ЗміщеннÑ"
+
+#: src/pmap.c:74
+msgid "Device"
+msgstr "ПриÑтрій"
+
+#: src/pmap.c:75
+msgid "Mapping"
+msgstr "ВідповідніÑÑ‚ÑŒ"
+
+#: src/pmap.c:79
+msgid "Perm"
+msgstr "ДоÑтуп"
+
+#: src/pmap.c:80
+msgid "Inode"
+msgstr "Inode"
+
+#: src/pmap.c:83
+msgid "Kbytes"
+msgstr "кбайтів"
+
+#: src/pmap.c:84
+msgid "Mode"
+msgstr "Режим"
+
+#. Translation Hint: With the next 5 fields, notice how an extra space
+#. has been added ahead of one 'KiB' so that they all
+#. align. You need not preserve such alignment.
+#. Translation Hint: maximum 'RSS' = 6
+#: src/pmap.c:85 src/top/top_nls.c:337
+msgid "RSS"
+msgstr "RSS"
+
+#: src/pmap.c:86
+msgid "Dirty"
+msgstr "Брудно"
+
+#: src/pmap.c:120
+#, c-format
+msgid " %s [options] PID [PID ...]\n"
+msgstr " %s [параметри] PID [PID ...]\n"
+
+#: src/pmap.c:122
+msgid " -x, --extended show details\n"
+msgstr " -x, --extended вивеÑти подробиці\n"
+
+#: src/pmap.c:123
+msgid " -X show even more details\n"
+msgstr " -X вивеÑти додаткові подробиці\n"
+
+#: src/pmap.c:124
+msgid " WARNING: format changes according to /proc/PID/smaps\n"
+msgstr ""
+" ПОПЕРЕДЖЕÐÐЯ: формат змінено відповідно до /proc/PID/smaps\n"
+
+#: src/pmap.c:125
+msgid " -XX show everything the kernel provides\n"
+msgstr " -XX вивеÑти уÑе, що надаєтьÑÑ Ñдром\n"
+
+#: src/pmap.c:126
+msgid " -c, --read-rc read the default rc\n"
+msgstr " -c, --read-rc прочитати типовий rc\n"
+
+#: src/pmap.c:127
+msgid " -C, --read-rc-from=<file> read the rc from file\n"
+msgstr " -C, --read-rc-from=<файл> прочитати rc з файла\n"
+
+#: src/pmap.c:128
+msgid " -n, --create-rc create new default rc\n"
+msgstr " -n, --create-rc Ñтворити типовий rc\n"
+
+#: src/pmap.c:129
+msgid " -N, --create-rc-to=<file> create new rc to file\n"
+msgstr " -N, --create-rc-to=<файл> Ñтворити rc у вказаному файлі\n"
+
+#: src/pmap.c:130
+msgid " NOTE: pid arguments are not allowed with -n, -N\n"
+msgstr ""
+" ЗауваженнÑ: аргументи pid не можна викориÑтовувати разом з -n, -"
+"N\n"
+
+#: src/pmap.c:131
+msgid " -d, --device show the device format\n"
+msgstr " -d, --device вивеÑти формат приÑтрою\n"
+
+#: src/pmap.c:132
+msgid " -q, --quiet do not display header and footer\n"
+msgstr " -q, --quiet не виводити заголовок і підвал\n"
+
+#: src/pmap.c:133
+msgid " -p, --show-path show path in the mapping\n"
+msgstr " -p, --show-path вивеÑти шлÑÑ… у прив’Ñзці\n"
+
+#: src/pmap.c:134
+msgid " -A, --range=<low>[,<high>] limit results to the given range\n"
+msgstr " -A, --range=<низ>[,<верх>] обмежити результати вказаним діапазоном\n"
+
+#: src/pmap.c:215
+msgid "shared memory detach"
+msgstr "Ð²Ñ–Ð´â€™Ñ”Ð´Ð½Ð°Ð½Ð½Ñ Ð²Ñ–Ð´ Ñпільної пам’ÑÑ‚Ñ–"
+
+#: src/pmap.c:220
+msgid "shared memory remove"
+msgstr "Ð²Ð¸Ð»ÑƒÑ‡ÐµÐ½Ð½Ñ Ñпільної пам’ÑÑ‚Ñ–"
+
+#: src/pmap.c:245
+msgid " [ anon ]"
+msgstr " [ анон ]"
+
+#: src/pmap.c:248
+msgid " [ stack ]"
+msgstr " [ Ñтек ]"
+
+#: src/pmap.c:334 src/pmap.c:340
+msgid "Unknown format in smaps file!"
+msgstr "Ðевідомий формат у файлі smaps!"
+
+#: src/pmap.c:365
+msgid "ERROR: memory allocation failed"
+msgstr "ПОМИЛКÐ: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ міÑце у пам'ÑÑ‚Ñ–"
+
+#: src/pmap.c:382
+msgid "inconsistent detail field in smaps file, line:\n"
+msgstr "неповне поле подробиць у файлі smaps, Ñ€Ñдок:\n"
+
+#: src/pmap.c:731
+msgid "total kB"
+msgstr "кБ загалом"
+
+#: src/pmap.c:742
+#, c-format
+msgid "mapped: %ldK writeable/private: %ldK shared: %ldK\n"
+msgstr "пов'Ñзано: %ldК запиÑуване/приватне: %ldК Ñпільне: %ldК\n"
+
+#. Translation Hint: keep total string length
+#. * as 24 characters. Adjust %16 if needed
+#: src/pmap.c:751
+#, c-format
+msgid " total %16ldK\n"
+msgstr " загалом %16ld К\n"
+
+#. Translation Hint: keep total string length
+#. * as 16 characters. Adjust %8 if needed
+#: src/pmap.c:757
+#, c-format
+msgid " total %8ldK\n"
+msgstr " загалом %8ld К\n"
+
+#: src/pmap.c:832
+#, c-format
+msgid "config line too long - line %d"
+msgstr "Ñ€Ñдок налаштувань Ñ” надто довгим, номер Ñ€Ñдка %d"
+
+#: src/pmap.c:857
+#, c-format
+msgid "unsupported section found in the config - line %d"
+msgstr "у файлі налаштувань виÑвлено непідтримуваний розділ, Ñ€Ñдок %d"
+
+#: src/pmap.c:860 src/pmap.c:871 src/pmap.c:882 src/pmap.c:905 src/pmap.c:917
+#, c-format
+msgid "syntax error found in the config - line %d"
+msgstr "виÑвлено ÑинтакÑичну помилку у налаштуваннÑÑ…, Ñ€Ñдок %d"
+
+#: src/pmap.c:887 src/pmap.c:1010
+msgid "memory allocation failed"
+msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ міÑце у пам'ÑÑ‚Ñ–"
+
+#: src/pmap.c:939
+msgid "the file already exists - delete or rename it first"
+msgstr "файл вже Ñ–Ñнує, Ñпочатку його Ñлід вилучити або перейменувати"
+
+#: src/pmap.c:1002
+msgid "HOME variable undefined"
+msgstr "змінну HOME не визначено"
+
+#: src/pmap.c:1061
+msgid "option -r is ignored as SunOS compatibility"
+msgstr "параметр -r ігноруєтьÑÑ Ð· міркувань ÑуміÑноÑÑ‚Ñ– з SunOS"
+
+#: src/pmap.c:1108
+msgid "options -c, -C, -d, -n, -N, -x, -X are mutually exclusive"
+msgstr ""
+"параметри -c, -C, -d, -n, -N, -x, -X не можна викориÑтовувати одночаÑно"
+
+#: src/pmap.c:1111
+msgid "options -p, -q are mutually exclusive with -n, -N"
+msgstr "параметри -p, -q не можна поєднувати з параметрами -n, -N"
+
+#: src/pmap.c:1114 src/pmap.c:1163
+msgid "too many arguments"
+msgstr "забагато аргументів"
+
+#: src/pmap.c:1118
+msgid "rc file successfully created, feel free to edit the content"
+msgstr "файл rc уÑпішно Ñтворено, тепер можна редагувати його вміÑÑ‚"
+
+#: src/pmap.c:1121
+msgid "couldn't create the rc file"
+msgstr "не вдалоÑÑ Ñтворити файл rc"
+
+#: src/pmap.c:1133
+#, c-format
+msgid "~/.%src file successfully created, feel free to edit the content"
+msgstr "файл ~/.%src уÑпішно Ñтворено, тепер ви можете редагувати його вміÑÑ‚"
+
+#: src/pmap.c:1136
+#, c-format
+msgid "couldn't create ~/.%src"
+msgstr "не вдалоÑÑ Ñтворити ~/.%src"
+
+#: src/pmap.c:1141
+msgid "argument missing"
+msgstr "не виÑтачає аргументу"
+
+#: src/pmap.c:1154
+msgid "couldn't read the rc file"
+msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ файл rc"
+
+#: src/pmap.c:1156
+#, c-format
+msgid "couldn't read ~/.%src"
+msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ñ‡Ð¸Ñ‚Ð°Ñ‚Ð¸ ~/.%src"
+
+#: src/pmap.c:1165 src/pmap.c:1190
+msgid "library failed pids statistics"
+msgstr "ÑтатиÑтика щодо помилкових pid бібліотеки"
+
+#: src/ps/display.c:61
+#, c-format
+msgid "Signal %d (%s) caught by %s (%s).\n"
+msgstr "%3$s (%4$s) отримано Ñигнал %1$d (%2$s).\n"
+
+#: src/ps/display.c:75 src/ps/display.c:252 src/ps/display.c:407
+#: src/ps/output.c:2359 src/ps/parser.c:509 src/ps/parser.c:756
+#: src/ps/select.c:95 src/ps/sortformat.c:263 src/ps/sortformat.c:301
+#: src/ps/sortformat.c:549
+msgid "please report this bug"
+msgstr "будь лаÑка, повідомте про цю ваду"
+
+#: src/ps/display.c:315 src/ps/display.c:484
+#, c-format
+msgid "fatal library error, reap\n"
+msgstr "критична помилка бібліотеки, reap\n"
+
+#: src/ps/display.c:365
+#, c-format
+msgid "could not find ppid\n"
+msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ ppid\n"
+
+#: src/ps/display.c:375
+#, c-format
+msgid "could not find start_time\n"
+msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ start_time\n"
+
+#: src/ps/global.c:287
+#, c-format
+msgid "your %dx%d screen size is bogus. expect trouble\n"
+msgstr ""
+"ваш розмір екрана, %dx%d Ñимволів, Ñ” неÑправжнім. Очікуємо на проблеми.\n"
+
+#: src/ps/global.c:360 src/ps/global.c:372
+msgid "environment specified an unknown personality"
+msgstr "у Ñередовищі вказано невідому оÑобиÑÑ‚Ñ–ÑÑ‚ÑŒ (personality)"
+
+#: src/ps/global.c:364
+#, c-format
+msgid "cannot strdup() personality text\n"
+msgstr "не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ текÑÑ‚ запиÑу оÑобиÑтоÑÑ‚Ñ– за допомогою strdup()\n"
+
+#: src/ps/global.c:495
+#, c-format
+msgid "fatal library error, context\n"
+msgstr "критична помилка бібліотеки, контекÑÑ‚\n"
+
+#: src/ps/global.c:503
+#, c-format
+msgid "fatal library error, lookup self\n"
+msgstr "критична помилка бібліотеки, Ñамопошук\n"
+
+#. Translation Note:
+#. . The following translatable word will be used to recognize the
+#. . user's request for help text. In other words, the translation
+#. . you provide will alter program behavior.
+#. .
+#. . It must be limited to 15 characters or less.
+#.
+#: src/ps/global.c:542
+msgid "help"
+msgstr "help"
+
+#. Translation Notes for ps Help #1 ---------------------------------
+#. . This next group of lines represents 6 pairs of words + abbreviations
+#. . which are the basis of the 'ps' program help text.
+#. .
+#. . The words and abbreviations you provide will alter program behavior.
+#. . They will also appear in the help usage summary associated with the
+#. . "Notes for ps Help #2" below.
+#. .
+#. . In their English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . When translating these 6 pairs you may choose any appropriate
+#. . language equivalents and the only requirement is the abbreviated
+#. . representations must be unique.
+#. .
+#. . By default, those abbreviations are single characters. However,
+#. . they are not limited to only one character after translation.
+#. .
+#. Translation Hint, Pair #1
+#: src/ps/help.c:67
+msgid "simple"
+msgstr "simple"
+
+#: src/ps/help.c:67
+msgid "s"
+msgstr "s"
+
+#. Translation Hint, Pair #2
+#: src/ps/help.c:69
+msgid "list"
+msgstr "list"
+
+#: src/ps/help.c:69
+msgid "l"
+msgstr "l"
+
+#. Translation Hint, Pair #3
+#: src/ps/help.c:71
+msgid "output"
+msgstr "output"
+
+#: src/ps/help.c:71
+msgid "o"
+msgstr "o"
+
+#. Translation Hint, Pair #4
+#: src/ps/help.c:73
+msgid "threads"
+msgstr "threads"
+
+#: src/ps/help.c:73
+msgid "t"
+msgstr "t"
+
+#. Translation Hint, Pair #5
+#: src/ps/help.c:75
+msgid "misc"
+msgstr "misc"
+
+#: src/ps/help.c:75
+msgid "m"
+msgstr "m"
+
+#. Translation Hint, Pair #6
+#: src/ps/help.c:77
+msgid "all"
+msgstr "all"
+
+#: src/ps/help.c:77
+msgid "a"
+msgstr "a"
+
+#: src/ps/help.c:98
+#, c-format
+msgid ""
+"\n"
+"Usage:\n"
+" %s [options]\n"
+msgstr ""
+"\n"
+"КориÑтуваннÑ:\n"
+" %s [параметри]\n"
+
+#: src/ps/help.c:103
+msgid ""
+"\n"
+"Basic options:\n"
+msgstr ""
+"\n"
+"ОÑновні параметри:\n"
+
+#: src/ps/help.c:104
+msgid " -A, -e all processes\n"
+msgstr " -A, -e уÑÑ– процеÑи\n"
+
+#: src/ps/help.c:105
+msgid " -a all with tty, except session leaders\n"
+msgstr " -a уÑÑ– з tty, окрім лідерів ÑеанÑу\n"
+
+#: src/ps/help.c:106
+msgid " a all with tty, including other users\n"
+msgstr " a уÑÑ– з tty, включно з іншими кориÑтувачами\n"
+
+#: src/ps/help.c:107
+msgid " -d all except session leaders\n"
+msgstr " -d уÑÑ–, окрім лідерів ÑеанÑу\n"
+
+#: src/ps/help.c:108
+msgid " -N, --deselect negate selection\n"
+msgstr " -N, --deselect інвертувати вибір\n"
+
+#: src/ps/help.c:109
+msgid " r only running processes\n"
+msgstr " r лише процеÑи, що працюють\n"
+
+#: src/ps/help.c:110
+msgid " T all processes on this terminal\n"
+msgstr " T уÑÑ– процеÑи на цьому терміналі\n"
+
+#: src/ps/help.c:111
+msgid " x processes without controlling ttys\n"
+msgstr " x процеÑи без tty керуваннÑ\n"
+
+#: src/ps/help.c:114
+msgid ""
+"\n"
+"Selection by list:\n"
+msgstr ""
+"\n"
+"Вибір за ÑпиÑком:\n"
+
+#: src/ps/help.c:115
+msgid " -C <command> command name\n"
+msgstr " -C <команда> назва команди\n"
+
+#: src/ps/help.c:116
+msgid " -G, --Group <GID> real group id or name\n"
+msgstr " -G, --Group <GID> ідентифікатор або назва Ñправжньої групи\n"
+
+#: src/ps/help.c:117
+msgid " -g, --group <group> session or effective group name\n"
+msgstr " -g, --group <група> назва групи ÑеанÑу або ефективної групи\n"
+
+#: src/ps/help.c:118
+msgid " -p, p, --pid <PID> process id\n"
+msgstr " -p, p, --pid <PID> ідентифікатор процеÑу\n"
+
+#: src/ps/help.c:119
+msgid " --ppid <PID> parent process id\n"
+msgstr " --ppid <PID> ідентифікатор батьківÑького процеÑу\n"
+
+#: src/ps/help.c:120
+msgid ""
+" -q, q, --quick-pid <PID>\n"
+" process id (quick mode)\n"
+msgstr ""
+" -q, q, --quick-pid <PID>\n"
+" ідентифікатор процеÑу (швидкий режим)\n"
+
+#: src/ps/help.c:122
+msgid " -s, --sid <session> session id\n"
+msgstr " -s, --sid <ÑеанÑ> ідентифікатор ÑеанÑу\n"
+
+#: src/ps/help.c:123
+msgid " -t, t, --tty <tty> terminal\n"
+msgstr " -t, t, --tty <tty> термінал\n"
+
+#: src/ps/help.c:124
+msgid " -u, U, --user <UID> effective user id or name\n"
+msgstr " -u, U, --user <UID> ідентифікатор або Ñ–Ð¼â€™Ñ ÐµÑ„ÐµÐºÑ‚Ð¸Ð²Ð½Ð¾Ð³Ð¾ кориÑтувача\n"
+
+#: src/ps/help.c:125
+msgid " -U, --User <UID> real user id or name\n"
+msgstr " -U, --User <UID> ідентифікатор або Ñ–Ð¼â€™Ñ Ñправжнього кориÑтувача\n"
+
+#: src/ps/help.c:126
+msgid ""
+"\n"
+" The selection options take as their argument either:\n"
+" a comma-separated list e.g. '-u root,nobody' or\n"
+" a blank-separated list e.g. '-p 123 4567'\n"
+msgstr ""
+"\n"
+" Параметрам вибору Ñлід передавати аргументи у таких форматах:\n"
+" ÑпиÑок значень, відокремлених комами, приклад: -u root,nobody\n"
+" ÑпиÑок значень, відокремлених пробілами, приклад: -p 123 4567\n"
+
+#: src/ps/help.c:132
+msgid ""
+"\n"
+"Output formats:\n"
+msgstr ""
+"\n"
+"Формати Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…:\n"
+
+#: src/ps/help.c:133
+msgid " -D <format> date format for lstart\n"
+msgstr " -D <format> формат дати Ð´Ð»Ñ lstart\n"
+
+#: src/ps/help.c:134
+msgid " -F extra full\n"
+msgstr " -F найповніший\n"
+
+#: src/ps/help.c:135
+msgid " -f full-format, including command lines\n"
+msgstr " -f повний формат, із включеннÑм Ñ€Ñдків команд\n"
+
+#: src/ps/help.c:136
+msgid " f, --forest ascii art process tree\n"
+msgstr " f, --forest Ñ–Ñ”Ñ€Ð°Ñ€Ñ…Ñ–Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑів із пÑевдографікою ascii\n"
+
+#: src/ps/help.c:137
+msgid " -H show process hierarchy\n"
+msgstr " -H вивеÑти ієрархію процеÑів\n"
+
+#: src/ps/help.c:138
+msgid " -j jobs format\n"
+msgstr " -j формат завдань\n"
+
+#: src/ps/help.c:139
+msgid " j BSD job control format\n"
+msgstr " j формат ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñми BSD\n"
+
+#: src/ps/help.c:140
+msgid " -l long format\n"
+msgstr " -l довгий формат\n"
+
+#: src/ps/help.c:141
+msgid " l BSD long format\n"
+msgstr " l довгий формат BSD\n"
+
+#: src/ps/help.c:142
+msgid " -M, Z add security data (for SELinux)\n"
+msgstr " -M, Z додавати дані щодо безпеки (Ð´Ð»Ñ SELinux)\n"
+
+#: src/ps/help.c:143
+msgid " -O <format> preloaded with default columns\n"
+msgstr " -O <формат> попередньо завантажене з типовими Ñтовпчиками\n"
+
+#: src/ps/help.c:144
+msgid " O <format> as -O, with BSD personality\n"
+msgstr " O <формат> Ñк -O, з personality BSD\n"
+
+#: src/ps/help.c:145
+msgid ""
+" -o, o, --format <format>\n"
+" user-defined format\n"
+msgstr ""
+" -o, o, --format <формат>\n"
+" визначений кориÑтувачем формат\n"
+
+#: src/ps/help.c:147
+msgid " -P add psr column\n"
+msgstr " -P додати Ñтовпчик psr\n"
+
+#: src/ps/help.c:148
+msgid " s signal format\n"
+msgstr " s формат запиÑу Ñигналів\n"
+
+#: src/ps/help.c:149
+msgid " u user-oriented format\n"
+msgstr " u орієнтований на кориÑтувача формат\n"
+
+#: src/ps/help.c:150
+msgid " v virtual memory format\n"
+msgstr " v формат запиÑів віртуальної пам’ÑÑ‚Ñ–\n"
+
+#: src/ps/help.c:151
+msgid " X register format\n"
+msgstr " X формат реєÑтрації\n"
+
+#: src/ps/help.c:152
+msgid ""
+" -y do not show flags, show rss vs. addr (used with -l)\n"
+msgstr ""
+" -y не виводити прапорці, виводити у форматі rss - адреÑа "
+"(викориÑтовуєтьÑÑ Ð· -l)\n"
+
+#: src/ps/help.c:153
+msgid " --context display security context (for SELinux)\n"
+msgstr " --context вивеÑти контекÑÑ‚ безпеки (Ð´Ð»Ñ SELinux)\n"
+
+#: src/ps/help.c:154
+msgid " --headers repeat header lines, one per page\n"
+msgstr ""
+" --headers повторювати Ñ€Ñдки заголовка, по одному на Ñторінку\n"
+
+#: src/ps/help.c:155
+msgid " --no-headers do not print header at all\n"
+msgstr " --no-headers взагалі не виводити заголовки\n"
+
+#: src/ps/help.c:156
+msgid ""
+" --cols, --columns, --width <num>\n"
+" set screen width\n"
+msgstr ""
+" --cols, --columns, --width <кількіÑÑ‚ÑŒ>\n"
+" вÑтановити ширину екрана у Ñимволах\n"
+
+#: src/ps/help.c:158
+msgid ""
+" --rows, --lines <num>\n"
+" set screen height\n"
+msgstr ""
+" --rows, --lines <кількіÑÑ‚ÑŒ>\n"
+" вÑтановити виÑоту екрана у Ñ€Ñдках\n"
+
+#: src/ps/help.c:160
+msgid " --signames display signal masks using signal names\n"
+msgstr ""
+" --signames показувати маÑки Ñигналів з викориÑтаннÑм назв "
+"Ñигналів\n"
+
+#: src/ps/help.c:163
+msgid ""
+"\n"
+"Show threads:\n"
+msgstr ""
+"\n"
+"Показ потоків:\n"
+
+#: src/ps/help.c:164
+msgid " H as if they were processes\n"
+msgstr " H так, наче вони Ñ” процеÑами\n"
+
+#: src/ps/help.c:165
+msgid " -L possibly with LWP and NLWP columns\n"
+msgstr " -L можливо, зі Ñтовпчиками LWP Ñ– NLWP\n"
+
+#: src/ps/help.c:166
+msgid " -m, m after processes\n"
+msgstr " -m, m піÑÐ»Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑів\n"
+
+#: src/ps/help.c:167
+msgid " -T possibly with SPID column\n"
+msgstr " -T можливо, зі Ñтовпчиком SPID\n"
+
+#: src/ps/help.c:170
+msgid ""
+"\n"
+"Miscellaneous options:\n"
+msgstr ""
+"\n"
+"Інші параметри:\n"
+
+#: src/ps/help.c:171
+msgid " -c show scheduling class with -l option\n"
+msgstr " -c виводити Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° -l ÐºÐ»Ð°Ñ Ð¿Ð»Ð°Ð½ÑƒÐ²Ð°Ð½Ð½Ñ\n"
+
+#: src/ps/help.c:172
+msgid " c show true command name\n"
+msgstr " c вивеÑти Ñправжню назву команди\n"
+
+#: src/ps/help.c:173
+msgid " e show the environment after command\n"
+msgstr " e вивеÑти дані Ñередовища піÑÐ»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸\n"
+
+#: src/ps/help.c:174
+msgid ""
+" k, --sort specify sort order as: [+|-]key[,[+|-]key[,...]]\n"
+msgstr ""
+" k, --sort вказати ÑпоÑіб упорÑдковуваннÑ: [+|-]ключ[,"
+"[+|-]ключ[,...]]\n"
+
+#: src/ps/help.c:175
+msgid " L show format specifiers\n"
+msgstr " L вивеÑти Ñпецифікатори форматів\n"
+
+#: src/ps/help.c:176
+msgid " n display numeric uid and wchan\n"
+msgstr " n вивеÑти чиÑлові Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ uid Ñ– wchan\n"
+
+#: src/ps/help.c:177
+msgid " S, --cumulative include some dead child process data\n"
+msgstr ""
+" S, --cumulative включити деÑкі дані щодо «мертвих» дочірніх процеÑів\n"
+
+#: src/ps/help.c:178
+msgid " -y do not show flags, show rss (only with -l)\n"
+msgstr " -y не виводити прапорців, вивеÑти rss (лише з -l)\n"
+
+#: src/ps/help.c:179
+msgid " -V, V, --version display version information and exit\n"
+msgstr " -V, V, --version вивеÑти дані щодо верÑÑ–Ñ— Ñ– завершити роботу\n"
+
+#: src/ps/help.c:180
+msgid " -w, w unlimited output width\n"
+msgstr " -w, w необмежена ширина Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ…\n"
+
+#: src/ps/help.c:181
+#, c-format
+msgid ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" display help and exit\n"
+msgstr ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" вивеÑти довідкове Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ– вийти\n"
+
+#. Translation Notes for ps Help #2 ---------------------------------
+#. . Most of the following c-format string is derived from the 6
+#. . pairs of words + chars mentioned above in "Notes for ps Help #1".
+#. .
+#. . In its full English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . The word for "help" will be translated elsewhere. Thus, the only
+#. . translations below will be: "Try", "or" and "for additional...".
+#. .
+#: src/ps/help.c:202
+#, c-format
+msgid ""
+"\n"
+" Try '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" or '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" for additional help text.\n"
+msgstr ""
+"\n"
+" Додаткову довідкову інформацію можна отримати\n"
+" за допомогою таких команд: %s --%s <%s|%s|%s|%s|%s|%s>\n"
+" %s --%s <%s|%s|%s|%s|%s|%s>\n"
+
+#: src/ps/help.c:215
+#, c-format
+msgid ""
+"\n"
+"For more details see ps(1).\n"
+msgstr ""
+"\n"
+"Докладніший Ð¾Ð¿Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð° знайти у ps(1).\n"
+
+#: src/ps/output.c:104
+msgid "Unable to get system boot time"
+msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ñ‡Ð°Ñ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ ÑиÑтеми"
+
+#: src/ps/output.c:119
+msgid "Unable to get total memory"
+msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ загальні дані щодо пам'ÑÑ‚Ñ–"
+
+#: src/ps/output.c:2206
+#, c-format
+msgid "fix bigness error\n"
+msgstr "помилка з виправленнÑм величини\n"
+
+#: src/ps/output.c:2289
+#, c-format
+msgid "bad alignment code\n"
+msgstr "помилковий код вирівнюваннÑ\n"
+
+#: src/ps/parser.c:63
+msgid "the option is exclusive: "
+msgstr "параметр не можна викориÑтовувати з іншими: "
+
+#: src/ps/parser.c:93
+msgid "process ID list syntax error"
+msgstr "ÑинтакÑична помилка у ÑпиÑку ідентифікаторів процеÑів"
+
+#: src/ps/parser.c:94 src/ps/parser.c:95
+msgid "process ID out of range"
+msgstr "ідентифікатор процеÑу не належить до припуÑтимого діапазону"
+
+#: src/ps/parser.c:108
+msgid "user name does not exist"
+msgstr "такого імені кориÑтувача не Ñ–Ñнує"
+
+#: src/ps/parser.c:114
+msgid "user ID out of range"
+msgstr "ідентифікатор кориÑтувача не належить до припуÑтимого діапазону"
+
+#: src/ps/parser.c:127
+msgid "group name does not exist"
+msgstr "назви групи не Ñ–Ñнує"
+
+#: src/ps/parser.c:133
+msgid "group ID out of range"
+msgstr "ідентифікатор групи поза межами припуÑтимого діапазону"
+
+#: src/ps/parser.c:149 src/ps/parser.c:173
+msgid "TTY could not be found"
+msgstr "не вдалоÑÑ Ð·Ð½Ð°Ð¹Ñ‚Ð¸ TTY"
+
+#: src/ps/parser.c:175
+msgid "list member was not a TTY"
+msgstr "Ð·Ð°Ð¿Ð¸Ñ ÑпиÑку не був запиÑом TTY"
+
+#: src/ps/parser.c:200
+msgid "improper list"
+msgstr "неналежний ÑпиÑок"
+
+#: src/ps/parser.c:249
+msgid "list of command names must follow -C"
+msgstr "піÑÐ»Ñ -C має бути вказано ÑпиÑок команд"
+
+#: src/ps/parser.c:257
+msgid "date format must follow -D"
+msgstr "формат дати має відповідати -D"
+
+#: src/ps/parser.c:270
+msgid "list of real groups must follow -G"
+msgstr "піÑÐ»Ñ -G має бути вказано ÑпиÑок Ñправжніх груп"
+
+#: src/ps/parser.c:283
+msgid "list of jobs must follow -J"
+msgstr "піÑÐ»Ñ ÑпиÑку завдань має бути вказано -J"
+
+#: src/ps/parser.c:311
+msgid "format or sort specification must follow -O"
+msgstr "піÑÐ»Ñ -O має бути вказано формат або Ñпецифікацію впорÑдкуваннÑ"
+
+#: src/ps/parser.c:322
+msgid "list of PRM groups must follow -R"
+msgstr "піÑÐ»Ñ -R Ñлід вказати ÑпиÑок груп PRM"
+
+#: src/ps/parser.c:341
+msgid "list of real users must follow -U"
+msgstr "піÑÐ»Ñ -U має бути вказано ÑпиÑок Ñправжніх кориÑтувачів"
+
+#: src/ps/parser.c:382
+msgid "list of session leaders OR effective group names must follow -g"
+msgstr ""
+"піÑÐ»Ñ -g має бути вказано ÑпиÑок лідерів ÑеанÑів або назв ефективних груп"
+
+#: src/ps/parser.c:393
+msgid "list of session leaders OR effective group IDs was invalid"
+msgstr ""
+"ÑпиÑок лідерів ÑеанÑів або ідентифікаторів ефективних груп виÑвивÑÑ "
+"некоректним"
+
+#: src/ps/parser.c:417
+msgid "format specification must follow -o"
+msgstr "піÑÐ»Ñ -o має бути вказано Ñпецифікацію формату"
+
+#: src/ps/parser.c:423
+msgid "list of process IDs must follow -p"
+msgstr "піÑÐ»Ñ -p має бути вказано ÑпиÑок ідентифікаторів процеÑів"
+
+#: src/ps/parser.c:440
+msgid "the -r option is reserved"
+msgstr "параметр -r зарезервовано"
+
+#: src/ps/parser.c:446
+msgid "list of session IDs must follow -s"
+msgstr "піÑÐ»Ñ -s має бути вказано ÑпиÑок ідентифікаторів ÑеанÑів"
+
+#: src/ps/parser.c:454
+msgid "list of terminals (pty, tty...) must follow -t"
+msgstr "піÑÐ»Ñ -t має бути вказано ÑпиÑок терміналів (pty, tty...)"
+
+#: src/ps/parser.c:462
+msgid "list of users must follow -u"
+msgstr "піÑÐ»Ñ -u має бути вказано ÑпиÑок кориÑтувачів"
+
+#: src/ps/parser.c:484
+msgid "must set personality to get -x option"
+msgstr "Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ñтупу до параметра -x Ñлід вÑтановити оÑобиÑÑ‚Ñ–ÑÑ‚ÑŒ"
+
+#: src/ps/parser.c:499
+msgid "list of zones (contexts, labels, whatever?) must follow -z"
+msgstr "піÑÐ»Ñ -z Ñлід вказати ÑпиÑок зон (контекÑтів, міток, чогоÑÑŒ іншого?)"
+
+#: src/ps/parser.c:506
+msgid "embedded '-' among SysV options makes no sense"
+msgstr "Ð²Ð±ÑƒÐ´Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Â«-» до параметрів SysV не має ÑенÑу"
+
+#: src/ps/parser.c:512
+msgid "unsupported SysV option"
+msgstr "непідтримуваний параметр SysV"
+
+#: src/ps/parser.c:525
+msgid "cannot happen - problem #1"
+msgstr "цього не мало ÑтатиÑÑ â€” проблема 1"
+
+#: src/ps/parser.c:529
+msgid "cannot happen - problem #2"
+msgstr "цього не мало ÑтатиÑÑ â€” проблема 2"
+
+#: src/ps/parser.c:531
+msgid "second chance parse failed, not BSD or SysV"
+msgstr "друга Ñпроба обробки зазнала невдачі, не BSD або SysV"
+
+#: src/ps/parser.c:548
+msgid "option A is reserved"
+msgstr "параметр A зарезервовано"
+
+#: src/ps/parser.c:553
+msgid "option C is reserved"
+msgstr "параметр C зарезервовано"
+
+#: src/ps/parser.c:573
+msgid "format or sort specification must follow O"
+msgstr "піÑÐ»Ñ O має бути вказано формат або Ñпецифікацію впорÑдкуваннÑ"
+
+#: src/ps/parser.c:598
+msgid "list of users must follow U"
+msgstr "піÑÐ»Ñ U має бути вказано ÑпиÑок кориÑтувачів"
+
+#: src/ps/parser.c:610
+msgid "obsolete W option not supported (you have a /dev/drum?)"
+msgstr "підтримки заÑтарілого параметра W не передбачено (маєте /dev/drum?)"
+
+#: src/ps/parser.c:646 src/ps/parser.c:921 src/ps/parser.c:930
+msgid "only one heading option may be specified"
+msgstr "має бути вказано лише один параметр заголовка"
+
+#: src/ps/parser.c:661
+msgid "long sort specification must follow 'k'"
+msgstr "піÑÐ»Ñ k має бути вказано довгу Ñпецифікацію упорÑдковуваннÑ"
+
+#: src/ps/parser.c:689
+msgid "format specification must follow o"
+msgstr "піÑÐ»Ñ o має бути вказано Ñпецифікацію формату"
+
+#: src/ps/parser.c:695
+msgid "list of process IDs must follow p"
+msgstr "піÑÐ»Ñ p має бути вказано ÑпиÑок ідентифікаторів процеÑів"
+
+#: src/ps/parser.c:753
+msgid "embedded '-' among BSD options makes no sense"
+msgstr "Ð²Ð±ÑƒÐ´Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Â«-» Ñеред параметрів BSD не має ÑенÑу"
+
+#: src/ps/parser.c:759
+msgid "unsupported option (BSD syntax)"
+msgstr "непідтримуваний параметр (ÑинтакÑÐ¸Ñ BSD)"
+
+#: src/ps/parser.c:847 src/ps/parser.c:859
+msgid "unknown gnu long option"
+msgstr "невідомий довгий параметр gnu"
+
+#: src/ps/parser.c:867
+msgid "list of real groups must follow --Group"
+msgstr "піÑÐ»Ñ --Group має бути вказано ÑпиÑок Ñправжніх груп"
+
+#: src/ps/parser.c:875
+msgid "list of real users must follow --User"
+msgstr "піÑÐ»Ñ --User має бути вказано ÑпиÑок Ñправжніх кориÑтувачів"
+
+#: src/ps/parser.c:894
+msgid "number of columns must follow --cols, --width, or --columns"
+msgstr ""
+"піÑÐ»Ñ --cols, --width або --columns має бути вказано кількіÑÑ‚ÑŒ Ñтовпчиків"
+
+#: src/ps/parser.c:897
+msgid "option --cumulative does not take an argument"
+msgstr "параметру --cumulative не передаєтьÑÑ Ð¶Ð¾Ð´ÐµÐ½ аргумент"
+
+#: src/ps/parser.c:902
+msgid "date format must follow --date-format"
+msgstr "формат дати має відповідати --date-format"
+
+#: src/ps/parser.c:908
+msgid "option --deselect does not take an argument"
+msgstr "параметру --deselect не передаєтьÑÑ Ð¶Ð¾Ð´ÐµÐ½ аргумент"
+
+#: src/ps/parser.c:920
+msgid "option --no-heading does not take an argument"
+msgstr "параметру --no-heading не передаєтьÑÑ Ð¶Ð¾Ð´ÐµÐ½ аргумент"
+
+#: src/ps/parser.c:929
+msgid "option --heading does not take an argument"
+msgstr "параметру --heading не передаєтьÑÑ Ð¶Ð¾Ð´ÐµÐ½ аргумент"
+
+#: src/ps/parser.c:935
+msgid "option --forest does not take an argument"
+msgstr "параметру --forest не передаєтьÑÑ Ð¶Ð¾Ð´ÐµÐ½ аргумент"
+
+#: src/ps/parser.c:941
+msgid "format specification must follow --format"
+msgstr "піÑÐ»Ñ --format має бути вказано Ñпецифікацію формату"
+
+#: src/ps/parser.c:947
+msgid "list of effective groups must follow --group"
+msgstr "піÑÐ»Ñ --group має бути вказано ÑпиÑок ефективних груп"
+
+#: src/ps/parser.c:965
+msgid "list of process IDs must follow --pid"
+msgstr "піÑÐ»Ñ --pid має бути вказано ÑпиÑок ідентифікаторів процеÑів"
+
+#: src/ps/parser.c:981
+msgid "list of process IDs must follow --ppid"
+msgstr "піÑÐ»Ñ --ppid має бути вказано ÑпиÑок ідентифікаторів процеÑів"
+
+#: src/ps/parser.c:999
+msgid "number of rows must follow --rows or --lines"
+msgstr "піÑÐ»Ñ --rows або --lines має бути вказано кількіÑÑ‚ÑŒ Ñ€Ñдків"
+
+#: src/ps/parser.c:1003
+msgid "some sid thing(s) must follow --sid"
+msgstr "піÑÐ»Ñ --sid має бути вказано щоÑÑŒ пов’Ñзане із sid"
+
+#: src/ps/parser.c:1015
+msgid "long sort specification must follow --sort"
+msgstr "піÑÐ»Ñ --sort має бути вказано довгу Ñпецифікацію упорÑдковуваннÑ"
+
+#: src/ps/parser.c:1021
+msgid "list of ttys must follow --tty"
+msgstr "піÑÐ»Ñ --tty має бути вказано ÑпиÑок tty"
+
+#: src/ps/parser.c:1029
+msgid "list of effective users must follow --user"
+msgstr "піÑÐ»Ñ --user має бути вказано ефективних кориÑтувачів"
+
+#: src/ps/parser.c:1145
+msgid "way bad"
+msgstr "погано"
+
+#: src/ps/parser.c:1159
+msgid "garbage option"
+msgstr "зайвий параметр"
+
+#: src/ps/parser.c:1163
+msgid "something broke"
+msgstr "щоÑÑŒ поламалоÑÑ"
+
+#: src/ps/parser.c:1183
+msgid "thread display conflicts with forest display"
+msgstr "показ гілки конфліктує з показом деревоподібної ієрархії"
+
+#: src/ps/parser.c:1188
+msgid "thread flags conflict; can't use H with m or -m"
+msgstr "конфлікт прапорців гілок; не можна викориÑтовувати H з m або -m"
+
+#: src/ps/parser.c:1190
+msgid "thread flags conflict; can't use both m and -m"
+msgstr "конфлікт прапорців гілок; не можна викориÑтовувати одразу m Ñ– -m"
+
+#: src/ps/parser.c:1192
+msgid "thread flags conflict; can't use both -L and -T"
+msgstr "конфлікт прапорців гілок; не можна викориÑтовувати одразу -L Ñ– -T"
+
+#: src/ps/parser.c:1265 src/ps/parser.c:1266
+#, c-format
+msgid "error: %s\n"
+msgstr "помилка: %s\n"
+
+#: src/ps/select.c:71
+msgid "process selection options conflict"
+msgstr "конфлікт параметрів вибору процеÑів"
+
+#: src/ps/sortformat.c:110 src/ps/sortformat.c:115
+msgid "seriously crashing: goodbye cruel world"
+msgstr "Ñерйозна аваріÑ: прощавай, жорÑтокий Ñвіте"
+
+#: src/ps/sortformat.c:150 src/ps/sortformat.c:169
+msgid "missing AIX field descriptor"
+msgstr "пропущено деÑкриптор Ð¿Ð¾Ð»Ñ AIX"
+
+#: src/ps/sortformat.c:152
+msgid "improper AIX field descriptor"
+msgstr "неналежний деÑкриптор Ð¿Ð¾Ð»Ñ AIX"
+
+#: src/ps/sortformat.c:174
+msgid "unknown AIX field descriptor"
+msgstr "невідомий деÑкриптор Ð¿Ð¾Ð»Ñ AIX"
+
+#: src/ps/sortformat.c:179
+msgid "AIX field descriptor processing bug"
+msgstr "вада обробки деÑкриптора Ð¿Ð¾Ð»Ñ AIX"
+
+#: src/ps/sortformat.c:287
+#, c-format
+msgid "unknown user-defined format specifier \"%s\""
+msgstr "невідомий визначений кориÑтувачем Ñпецифікатор формату «%s»"
+
+#: src/ps/sortformat.c:314
+msgid "empty format list"
+msgstr "порожній ÑпиÑок форматів"
+
+#: src/ps/sortformat.c:315
+msgid "improper format list"
+msgstr "неналежний ÑпиÑок форматів"
+
+#: src/ps/sortformat.c:316
+msgid "column widths must be unsigned decimal numbers"
+msgstr "значеннÑми ширин Ñтовпчиків мають бути додатні деÑÑткові чиÑла"
+
+#: src/ps/sortformat.c:317
+msgid "can not set width for a macro (multi-column) format specifier"
+msgstr ""
+"не вдалоÑÑ Ð²Ñтановити ширину Ð´Ð»Ñ Ñпецифікатора формату макроÑу "
+"(багатоÑтовпчикового)"
+
+#: src/ps/sortformat.c:371 src/ps/sortformat.c:387
+msgid "improper sort list"
+msgstr "неналежний ÑпиÑок упорÑдковуваннÑ"
+
+#: src/ps/sortformat.c:382
+msgid "empty sort list"
+msgstr "порожній ÑпиÑок упорÑдковуваннÑ"
+
+#: src/ps/sortformat.c:403 src/ps/sortformat.c:482 src/ps/sortformat.c:484
+msgid "unknown sort specifier"
+msgstr "невідомий Ñпецифікатор упорÑдковуваннÑ"
+
+#: src/ps/sortformat.c:430 src/ps/sortformat.c:435 src/ps/sortformat.c:442
+#: src/ps/sortformat.c:448
+msgid "bad sorting code"
+msgstr "помилковий код упорÑдковуваннÑ"
+
+#: src/ps/sortformat.c:445
+msgid "PPID sort and forest output conflict"
+msgstr "конфлікт Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ ÑƒÐ¿Ð¾Ñ€ÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ PPID та ієрархії"
+
+#: src/ps/sortformat.c:519
+msgid "option -O can not follow other format options"
+msgstr "піÑÐ»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° -O не може бути вказано інших параметрів форматуваннÑ"
+
+#: src/ps/sortformat.c:526 src/ps/sortformat.c:544
+msgid "multiple sort options"
+msgstr "варіанти упорÑдковуваннÑ"
+
+#: src/ps/sortformat.c:534
+msgid "option O is neither first format nor sort order"
+msgstr "параметр O не Ñ” ні першим форматом, ні упорÑдковуваннÑм"
+
+#: src/ps/sortformat.c:661
+msgid "modifier -y without format -l makes no sense"
+msgstr "модифікатор -y без формату -l позбавлений ÑенÑу"
+
+#: src/ps/sortformat.c:760
+msgid "bug: must reset the list first"
+msgstr "вада: Ñпочатку Ñлід Ñкинути ÑпиÑок"
+
+#: src/ps/sortformat.c:797
+msgid "tell <procps@freelists.org> what you expected"
+msgstr "повідомте за адреÑою <procps@freelists.org> про очікувані результати"
+
+#: src/ps/sortformat.c:807
+msgid ""
+"tell <procps@freelists.org> what you want (-L/-T, -m/m/H, and $PS_FORMAT)"
+msgstr ""
+"повідомте за адреÑою <procps@freelists.org> про очікувані результати (-L/-T, "
+"-m/m/H Ñ– $PS_FORMAT)"
+
+#: src/ps/sortformat.c:824
+#, c-format
+msgid "warning: $PS_FORMAT ignored. (%s)\n"
+msgstr "попередженнÑ: $PS_FORMAT проігноровано. (%s)\n"
+
+#: src/ps/sortformat.c:829 src/ps/sortformat.c:839
+msgid "conflicting format options"
+msgstr "конфлікт параметрів форматуваннÑ"
+
+#: src/ps/sortformat.c:830
+msgid "can not use output modifiers with user-defined output"
+msgstr ""
+"не можна викориÑтовувати модифікатори Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð· визначеним кориÑтувачем "
+"виведеннÑм"
+
+#: src/ps/sortformat.c:831
+msgid "-L/-T with H/m/-m and -o/-O/o/O is nonsense"
+msgstr "-L/-T з H/m/-m Ñ– -o/-O/o/O позбавлене ÑенÑу"
+
+#: src/ps/sortformat.c:889
+msgid "internal error: no PID or PPID for -j option"
+msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: не вказано PID або PPID Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° -j"
+
+#: src/ps/sortformat.c:891
+msgid "lost my PGID"
+msgstr "втрачено наш PGID"
+
+#: src/ps/sortformat.c:904
+msgid "internal error: no PRI for -c option"
+msgstr "Ð²Ð½ÑƒÑ‚Ñ€Ñ–ÑˆÐ½Ñ Ð¿Ð¾Ð¼Ð¸Ð»ÐºÐ°: немає PRI Ð´Ð»Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° -c"
+
+#: src/ps/sortformat.c:907
+msgid "lost my CLS"
+msgstr "втрачено наш CLS"
+
+#: src/ps/sortformat.c:912
+msgid "-T with H/-m/m but no PID for SPID to follow"
+msgstr "-T з H/-m/m, але без PID Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð· SPID"
+
+#: src/ps/sortformat.c:923
+msgid "-L with H/-m/m but no PID/PGID/SID/SESS for NLWP to follow"
+msgstr "-L з H/-m/m, але немає PID/PGID/SID/SESS Ð´Ð»Ñ Ð²Ð¸ÐºÐ¾Ñ€Ð¸ÑÑ‚Ð°Ð½Ð½Ñ Ð· NLWP"
+
+#: src/pwdx.c:41
+#, c-format
+msgid " %s [options] pid...\n"
+msgstr " %s [параметри] pid...\n"
+
+#: src/pwdx.c:117
+#, c-format
+msgid "invalid process id: %s"
+msgstr "некоректний ідентифікатор процеÑу: %s"
+
+#: src/skill.c:285
+msgid "Unable to create pid Pids_info structure"
+msgstr "Unable to create pid Pids_info structure"
+
+#: src/skill.c:288 src/w.c:458
+msgid "Unable to load process information"
+msgstr "Ðе вдалоÑÑ Ð·Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶Ð¸Ñ‚Ð¸ дані щодо процеÑу"
+
+#: src/skill.c:319
+#, c-format
+msgid " %s [signal] [options] <expression>\n"
+msgstr " %s [Ñигнал] [параметри] <вираз>\n"
+
+#: src/skill.c:323
+#, c-format
+msgid " %s [new priority] [options] <expression>\n"
+msgstr " %s [нова пріоритетніÑÑ‚ÑŒ] [параметри] <вираз>\n"
+
+#: src/skill.c:327
+msgid " -f, --fast fast mode (not implemented)\n"
+msgstr " -f, --fast швидкий режим (не реалізовано)\n"
+
+#: src/skill.c:328
+msgid " -i, --interactive interactive\n"
+msgstr " -i, --interactive інтерактивний режим\n"
+
+#: src/skill.c:329
+msgid " -l, --list list all signal names\n"
+msgstr " -l, --list вивеÑти ÑпиÑок уÑÑ–Ñ… назв Ñигналів\n"
+
+#: src/skill.c:330
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr " -L, --table вивеÑти ÑпиÑок уÑÑ–Ñ… назв Ñигналів у таблиці nice\n"
+
+#: src/skill.c:331
+msgid ""
+" -n, --no-action do not actually kill processes; just print what would "
+"happen\n"
+msgstr ""
+" -n, --no-action не завершувати роботу процеÑів; проÑто вивеÑти дані щодо "
+"дій, Ñкі буде виконано\n"
+
+#: src/skill.c:332
+msgid " -v, --verbose explain what is being done\n"
+msgstr " -v, --verbose вивеÑти дані щодо дій, Ñкі виконуютьÑÑ\n"
+
+#: src/skill.c:333
+msgid " -w, --warnings enable warnings (not implemented)\n"
+msgstr " -w, --warnings увімкнути Ð¿Ð¾Ð¿ÐµÑ€ÐµÐ´Ð¶ÐµÐ½Ð½Ñ (не реалізовано)\n"
+
+#: src/skill.c:335
+msgid ""
+"Expression can be: terminal, user, pid, command.\n"
+"The options below may be used to ensure correct interpretation.\n"
+msgstr ""
+"Можливі вирази: terminal, user, pid, command.\n"
+"Ðаведені нижче параметри може бути викориÑтано Ð´Ð»Ñ Ð·Ð°Ð±ÐµÐ·Ð¿ÐµÑ‡ÐµÐ½Ð½Ñ Ð½Ð°Ð»ÐµÐ¶Ð½Ð¾Ñ— "
+"інтерпретації.\n"
+
+#: src/skill.c:337
+msgid " -c, --command <command> expression is a command name\n"
+msgstr " -c, --command <команда> вираз є назвою команди\n"
+
+#: src/skill.c:338
+msgid " -p, --pid <pid> expression is a process id number\n"
+msgstr " -p, --pid <pid> вираз Ñ” чиÑловим ідентифікатором процеÑу\n"
+
+#: src/skill.c:339
+msgid " -t, --tty <tty> expression is a terminal\n"
+msgstr " -t, --tty <tty> вираз є терміналом\n"
+
+#: src/skill.c:340
+msgid " -u, --user <username> expression is a username\n"
+msgstr " -u, --user <кориÑтувач> вираз Ñ” іменем кориÑтувача\n"
+
+#: src/skill.c:342
+msgid "Alternatively, expression can be:\n"
+msgstr "Крім того, виразом може бути:\n"
+
+#: src/skill.c:343
+msgid ""
+" --ns <pid> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+" --ns <pid> відповідніÑÑ‚ÑŒ процеÑам, що належать тому Ñамому\n"
+" проÑтору назв, що Ñ– <pid>\n"
+
+#: src/skill.c:345
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option; available namespaces are\n"
+": ipc, mnt, net, pid, user, uts\n"
+msgstr ""
+" --nslist <ns,..> вивеÑти ÑпиÑок проÑторів назв длÑ\n"
+" обробки з параметром --ns.\n"
+" Можливі проÑтори назв: ipc, mnt, net, pid, user, "
+"uts\n"
+
+#: src/skill.c:355
+#, c-format
+msgid ""
+"\n"
+"The default signal is TERM. Use -l or -L to list available signals.\n"
+"Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0.\n"
+"Alternate signals may be specified in three ways: -SIGKILL -KILL -9\n"
+msgstr ""
+"\n"
+"Типовим Ñигналом Ñ” TERM. СкориÑтайтеÑÑ -l або -L Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ ÑпиÑку "
+"Ñигналів.\n"
+"Зокрема, кориÑними Ñигналами Ñ” HUP, INT, KILL, STOP, CONT та 0.\n"
+"Інші Ñигнали може бути вказано у три ÑпоÑоби: -SIGKILL -KILL -9\n"
+
+#: src/skill.c:362
+#, c-format
+msgid ""
+"\n"
+"The default priority is +4. (snice +4 ...)\n"
+"Priority numbers range from +20 (slowest) to -20 (fastest).\n"
+"Negative priority numbers are restricted to administrative users.\n"
+msgstr ""
+"\n"
+"Типовим рівнем пріоритетноÑÑ‚Ñ– Ñ” +4. (snice +4 ...)\n"
+"РівнÑм відповідають чиÑла від +20 (найнижчий) до -20 (найвищий).\n"
+"Від’ємними значеннÑми можуть ÑкориÑтатиÑÑ Ð»Ð¸ÑˆÐµ кориÑтувачі з\n"
+"адмініÑтративними правами доÑтупу.\n"
+
+#: src/skill.c:384
+#, c-format
+msgid "priority %lu out of range"
+msgstr "рівень пріоритетноÑÑ‚Ñ– %lu лежить поза межами припуÑтимого діапазону"
+
+#: src/skill.c:493
+#, c-format
+msgid "invalid pid number %s"
+msgstr "некоректне чиÑло pid %s"
+
+#: src/skill.c:497
+msgid "error reading reference namespace information"
+msgstr "помилка під Ñ‡Ð°Ñ Ñпроби Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… щодо еталонного проÑтору назв"
+
+#: src/skill.c:505
+msgid "invalid namespace list"
+msgstr "некоректний ÑпиÑок проÑторів назв"
+
+#: src/skill.c:542
+msgid "no process selection criteria"
+msgstr "немає критерію вибору процеÑу"
+
+#: src/skill.c:545
+msgid "general flags may not be repeated"
+msgstr "не можна повторювати загальні прапорці"
+
+#: src/skill.c:548
+msgid "-i makes no sense with -v, -f, and -n"
+msgstr "-i не має ÑенÑу з -v, -f та -n"
+
+#: src/skill.c:550
+msgid "-v makes no sense with -i and -f"
+msgstr "-v не має ÑенÑу з -i та -f"
+
+#: src/skill.c:594
+#, c-format
+msgid "skill: \"%s\" is not supported\n"
+msgstr "skill: підтримки «%s» не передбачено\n"
+
+#: src/slabtop.c:108
+msgid " -d, --delay <secs> delay updates\n"
+msgstr " -d, --delay <Ñек.> відклаÑти оновленнÑ\n"
+
+#: src/slabtop.c:109
+msgid " -o, --once only display once, then exit\n"
+msgstr " -o, --once показати лише раз, потім завершити роботу\n"
+
+#: src/slabtop.c:110
+msgid " -s, --sort <char> specify sort criteria by character (see below)\n"
+msgstr ""
+" -s, --sort <Ñимвол> вказати критерій упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð·Ð° допомогою Ñимволу "
+"(див. нижче)\n"
+
+#: src/slabtop.c:115
+msgid ""
+"\n"
+"The following are valid sort criteria:\n"
+msgstr ""
+"\n"
+"Передбачено такі критерії упорÑдковуваннÑ:\n"
+
+#: src/slabtop.c:116
+msgid " a: sort by number of active objects\n"
+msgstr " a: упорÑдкувати за кількіÑÑ‚ÑŽ активних об’єктів\n"
+
+#: src/slabtop.c:117
+msgid " b: sort by objects per slab\n"
+msgstr " b: упорÑдкувати за кількіÑÑ‚ÑŽ об’єктів на чаÑтину\n"
+
+#: src/slabtop.c:118
+msgid " c: sort by cache size\n"
+msgstr " c: упорÑдкувати за розміром кешу\n"
+
+#: src/slabtop.c:119
+msgid " l: sort by number of slabs\n"
+msgstr " l: упорÑдкувати за кількіÑÑ‚ÑŽ чаÑтин\n"
+
+#: src/slabtop.c:120
+msgid " v: sort by (non display) number of active slabs\n"
+msgstr " v: упорÑдкувати (непоказані) за кількіÑÑ‚ÑŽ активних чаÑтин\n"
+
+#: src/slabtop.c:121
+msgid " n: sort by name\n"
+msgstr " n: упорÑдкувати за назвою\n"
+
+#: src/slabtop.c:122
+msgid " o: sort by number of objects (the default)\n"
+msgstr " o: упорÑдкувати за кількіÑÑ‚ÑŽ об’єктів (типовий варіант)\n"
+
+#: src/slabtop.c:123
+msgid " p: sort by (non display) pages per slab\n"
+msgstr " p: упорÑдкувати (непоказані) за кількіÑÑ‚ÑŽ Ñторінок на чаÑтину\n"
+
+#: src/slabtop.c:124
+msgid " s: sort by object size\n"
+msgstr " s: упорÑдкувати за розмірами об’єктів\n"
+
+#: src/slabtop.c:125
+msgid " u: sort by cache utilization\n"
+msgstr " u: упорÑдкувати за викориÑтаннÑм кешу\n"
+
+#: src/slabtop.c:188 src/slabtop.c:199
+msgid "Cannot combine -d and -o options"
+msgstr "Ðе можна поєднувати параметри -d Ñ– -o"
+
+#: src/slabtop.c:190
+msgid "illegal delay"
+msgstr "некоректна затримка"
+
+#: src/slabtop.c:192 src/tload.c:142 src/vmstat.c:1049
+msgid "delay must be positive integer"
+msgstr "затримку Ñлід вказувати Ñк додатне чиÑло"
+
+#: src/slabtop.c:236
+msgid "Error getting slab summary results"
+msgstr "Помилка під Ñ‡Ð°Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ñ€ÐµÐ·ÑƒÐ»ÑŒÑ‚Ð°Ñ‚Ñ–Ð² резюме чаÑтини"
+
+#. Translation Hint: Next five strings must not
+#. * exceed a length of 35 characters.
+#: src/slabtop.c:242
+#, no-c-format
+msgid "Active / Total Objects (% used)"
+msgstr "Ðктивних об’єктів / Об’єктів загалом (% u викориÑтаннÑ)"
+
+#: src/slabtop.c:248
+#, no-c-format
+msgid "Active / Total Slabs (% used)"
+msgstr "Ðктивних чаÑтин / ЧаÑтин загалом (% u викориÑтаннÑ)"
+
+#: src/slabtop.c:254
+#, no-c-format
+msgid "Active / Total Caches (% used)"
+msgstr "Ðктивних кешів / Кешів загалом (% u викориÑтаннÑ)"
+
+#: src/slabtop.c:260
+#, no-c-format
+msgid "Active / Total Size (% used)"
+msgstr "Ðктивний розмір / Загальний розмір (% u викориÑтаннÑ)"
+
+#: src/slabtop.c:265
+msgid "Minimum / Average / Maximum Object"
+msgstr "Мінімальний / Середній / МакÑимальний об’єкт"
+
+#. Translation Hint: Please keep alignment of the
+#. * following intact.
+#: src/slabtop.c:276
+msgid " OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME"
+msgstr " ОБ’Є ÐКТИВРВИК РОЗМ ОБ. ЧÐСТ ОБ./ЧÐСТ РОЗМ. КЕШУ ÐÐЗВ"
+
+#: src/slabtop.c:313 src/vmstat.c:767
+msgid "Unable to create slabinfo structure"
+msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ñтруктуру slabinfo"
+
+#: src/slabtop.c:318
+msgid "terminal setting retrieval"
+msgstr "Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° термінала"
+
+#: src/slabtop.c:334 src/vmstat.c:774
+msgid "Unable to get slabinfo node data"
+msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ дані вузла slabinfo"
+
+#: src/slabtop.c:340 src/vmstat.c:776
+msgid "Unable to sort slab nodes"
+msgstr "Ðе вдалоÑÑ ÑƒÐ¿Ð¾Ñ€Ñдкувати вузли чаÑтини"
+
+#: src/sysctl.c:118
+#, c-format
+msgid "Path is not under %s: %s"
+msgstr "ШлÑÑ… не Ñ” вкладеним щодо %s: %s"
+
+#: src/sysctl.c:136
+#, c-format
+msgid "separators should not be repeated: %s"
+msgstr "не Ñлід повторювати роздільники: %s"
+
+#: src/sysctl.c:232
+#, c-format
+msgid " %s [options] [variable[=value] ...]\n"
+msgstr " %s [параметри] [змінна[=значеннÑ] ...]\n"
+
+#: src/sysctl.c:235
+msgid " -a, --all display all variables\n"
+msgstr " -a, --all вивеÑти уÑÑ– змінні\n"
+
+#: src/sysctl.c:236
+msgid " -A alias of -a\n"
+msgstr " -A те Ñаме, що Ñ– -a\n"
+
+#: src/sysctl.c:237
+msgid " -X alias of -a\n"
+msgstr " -X те Ñаме, що Ñ– -a\n"
+
+#: src/sysctl.c:238
+msgid " --deprecated include deprecated parameters to listing\n"
+msgstr " --deprecated включити до ÑпиÑку заÑтарілі параметри\n"
+
+#: src/sysctl.c:239
+msgid " --dry-run Print the key and values but do not write\n"
+msgstr " --dry-run вивеÑти ключ Ñ– значеннÑ, але не запиÑувати\n"
+
+#: src/sysctl.c:240
+msgid " -b, --binary print value without new line\n"
+msgstr ""
+" -b, --binary вивеÑти Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð±ÐµÐ· Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ñимволу розриву Ñ€Ñдка\n"
+
+#: src/sysctl.c:241
+msgid " -e, --ignore ignore unknown variables errors\n"
+msgstr ""
+" -e, --ignore ігнорувати Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾ помилки, пов’Ñзані з "
+"невідомими змінними\n"
+
+#: src/sysctl.c:242
+msgid " -N, --names print variable names without values\n"
+msgstr " -N, --names вивеÑти назви змінних без значень\n"
+
+#: src/sysctl.c:243
+msgid " -n, --values print only values of the given variable(s)\n"
+msgstr ""
+" -n, --values вивеÑти лише Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²ÐºÐ°Ð·Ð°Ð½Ð¸Ñ… змінних змінних\n"
+
+#: src/sysctl.c:244
+msgid " -p, --load[=<file>] read values from file\n"
+msgstr " -p, --load[=<файл>] прочитати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð· файла\n"
+
+#: src/sysctl.c:245
+msgid " -f alias of -p\n"
+msgstr " -f те Ñаме, що Ñ– -p\n"
+
+#: src/sysctl.c:246
+msgid " --system read values from all system directories\n"
+msgstr " --system прочитати Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð· уÑÑ–Ñ… каталогів ÑиÑтеми\n"
+
+#: src/sysctl.c:247
+msgid ""
+" -r, --pattern <expression>\n"
+" select setting that match expression\n"
+msgstr ""
+" -r, --pattern <вираз>\n"
+" вибрати налаштуваннÑ, відповідні до виразу\n"
+
+#: src/sysctl.c:249
+msgid " -q, --quiet do not echo variable set\n"
+msgstr " -q, --quiet не виводити вÑтановлені змінні повторно\n"
+
+#: src/sysctl.c:250
+msgid " -w, --write enable writing a value to variable\n"
+msgstr " -w, --write уможливити Ð·Ð°Ð¿Ð¸Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¾ змінної\n"
+
+#: src/sysctl.c:251
+msgid " -o does nothing\n"
+msgstr " -o фіктивний параметр\n"
+
+#: src/sysctl.c:252
+msgid " -x does nothing\n"
+msgstr " -x фіктивний параметр\n"
+
+#: src/sysctl.c:253
+msgid " -d alias of -h\n"
+msgstr " -d те Ñаме, що Ñ– -h\n"
+
+#: src/sysctl.c:334 src/sysctl.c:390
+#, c-format
+msgid "\"%s\" is an unknown key"
+msgstr "«%s» є невідомим ключем"
+
+#: src/sysctl.c:352 src/sysctl.c:508 src/sysctl.c:545
+#, c-format
+msgid "cannot stat %s"
+msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ ÑтатиÑтичні дані щодо %s"
+
+#: src/sysctl.c:395 src/sysctl.c:437
+#, c-format
+msgid "permission denied on key '%s'"
+msgstr "доÑтуп до ключа «%s» заборонено"
+
+#: src/sysctl.c:402 src/sysctl.c:454
+#, c-format
+msgid "reading key \"%s\""
+msgstr "читаємо ключ «%s»"
+
+#: src/sysctl.c:492
+#, c-format
+msgid "unable to open directory \"%s\""
+msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ каталог «%s»"
+
+#: src/sysctl.c:557
+msgid "strdup key"
+msgstr "ключ strdup"
+
+#: src/sysctl.c:564 src/sysctl.c:571 src/sysctl.c:604
+#, c-format
+msgid "setting key \"%s\""
+msgstr "вÑтановлюємо ключ «%s»"
+
+#: src/sysctl.c:581
+#, c-format
+msgid "\"%s\" is an unknown key%s"
+msgstr "«%s» є невідомим ключем%s"
+
+#: src/sysctl.c:582 src/sysctl.c:591 src/sysctl.c:595
+msgid ", ignoring"
+msgstr ", ігноруємо"
+
+#: src/sysctl.c:590
+#, c-format
+msgid "permission denied on key \"%s\"%s"
+msgstr "заборонено доÑтуп до ключа «%s»%s"
+
+#: src/sysctl.c:594
+#, c-format
+msgid "setting key \"%s\"%s"
+msgstr "вÑтановлюємо ключ «%s»%s"
+
+#: src/sysctl.c:669
+#, c-format
+msgid "%s(%d): invalid syntax, continuing..."
+msgstr "%s(%d): некоректний ÑинтакÑиÑ, продовжуємо..."
+
+#: src/sysctl.c:761
+#, c-format
+msgid ""
+"GLOB_TILDE is not supported on your platform, the tilde in \"%s\" won't be "
+"expanded."
+msgstr ""
+"Ðа цій платформі не передбачено підтримки GLOB_TILDE, тильду у «%s» не буде "
+"замінено."
+
+#: src/sysctl.c:767
+msgid "glob failed"
+msgstr "не вдалоÑÑ Ð²Ð¸ÐºÐ¾Ñ€Ð¸Ñтати Ñимволи-замінники"
+
+#: src/sysctl.c:773
+#, c-format
+msgid "cannot open \"%s\""
+msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ «%s»"
+
+#: src/sysctl.c:877 src/sysctl.c:884
+#, c-format
+msgid "* Applying %s ...\n"
+msgstr "* ЗаÑтоÑовуємо %s ...\n"
+
+#: src/sysctl.c:1050
+#, c-format
+msgid ""
+"no variables specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+"не вказано змінних\n"
+"Спробуйте «%s --help», щоб отримати додаткову інформацію."
+
+#: src/sysctl.c:1054
+#, c-format
+msgid ""
+"options -N and -q cannot coexist\n"
+"Try `%s --help' for more information."
+msgstr ""
+"не можна одночаÑно викориÑтовувати параметри -N та -q\n"
+"Спробуйте «%s --help», щоб отримати додаткову інформацію."
+
+#: src/tload.c:75 src/tload.c:77
+msgid "screen too small or too large"
+msgstr "екран є надто малим або надто великим"
+
+#: src/tload.c:80
+msgid "screen too small"
+msgstr "надто малий екран"
+
+#: src/tload.c:96
+#, c-format
+msgid " %s [options] [tty]\n"
+msgstr " %s [параметри] [tty]\n"
+
+#: src/tload.c:98
+msgid " -d, --delay <secs> update delay in seconds\n"
+msgstr " -d, --delay <Ñек.> затримка Ð¾Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ Ñƒ Ñекундах\n"
+
+#: src/tload.c:99
+msgid " -s, --scale <num> vertical scale\n"
+msgstr " -s, --scale <чиÑло> вертикальний маÑштаб\n"
+
+#: src/tload.c:137
+msgid "scale cannot be negative"
+msgstr "маÑштаб не може бути від’ємним"
+
+#: src/tload.c:144 src/vmstat.c:1051
+msgid "too large delay value"
+msgstr "надто велике Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð·Ð°Ñ‚Ñ€Ð¸Ð¼ÐºÐ¸"
+
+#: src/tload.c:159
+msgid "can not open tty"
+msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ tty"
+
+#: src/tload.c:182
+msgid "Load average file /proc/loadavg does not exist"
+msgstr "Файла Ñередніх значень Ð½Ð°Ð²Ð°Ð½Ñ‚Ð°Ð¶ÐµÐ½Ð½Ñ /proc/loadavg не Ñ–Ñнує"
+
+#: src/tload.c:185
+msgid "Unable to get load average"
+msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ñереднє навантаженнÑ"
+
+#: src/tload.c:227 src/tload.c:229
+msgid "writing to tty failed"
+msgstr "Ñпроба виконати Ð·Ð°Ð¿Ð¸Ñ Ð´Ð¾ tty зазнала невдачі"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The following line pairs contain only plain text and consist of:
+#. . 1) a field name/column header - mostly upper case
+#. . 2) the related description - both upper and lower case
+#. .
+#. . To avoid truncation on the main top display, each column header
+#. . is noted with its maximum size, while a few are 'variable' width.
+#. . Names for the latter should probably be 10 or fewer characters.
+#. .
+#. . Those fields shown with a '+' are also eligible for user resizing
+#. . using the 'X' command. That means the default width might produce
+#. . truncation but need not if widened (see the man page 'X' command).
+#. .
+#. . All headers are subject to a maximum of 8 on the Fields Management
+#. . screen where truncation is entirely acceptable.
+#. .
+#. . The associated descriptions are always limited to 20 characters,
+#. . and are used only on the Fields Management screen.
+#. .
+#. . In all cases, fewer characters are just fine.
+#. .
+#. Translation Hint: maximum 'PID' = 5
+#: src/top/top_nls.c:152
+msgid "PID"
+msgstr "PID"
+
+#: src/top/top_nls.c:153
+msgid "Process Id"
+msgstr "Ідентифікатор процеÑу"
+
+#. Translation Hint: maximum 'PPID' = 5
+#: src/top/top_nls.c:155
+msgid "PPID"
+msgstr "PPID"
+
+#: src/top/top_nls.c:156
+msgid "Parent Process pid"
+msgstr "Ідентифікатор батьківÑького процеÑу"
+
+#. Translation Hint: maximum 'UID' = 5 +
+#: src/top/top_nls.c:158
+msgid "UID"
+msgstr "UID"
+
+#: src/top/top_nls.c:159
+msgid "Effective User Id"
+msgstr "Ідентифікатор ефективного кориÑтувача"
+
+#. Translation Hint: maximum 'USER' = 8 +
+#: src/top/top_nls.c:161 src/w.c:799
+msgid "USER"
+msgstr "КОР."
+
+#: src/top/top_nls.c:162
+msgid "Effective User Name"
+msgstr "Ефективне Ñ–Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача"
+
+#. Translation Hint: maximum 'RUID' = 5 +
+#: src/top/top_nls.c:164
+msgid "RUID"
+msgstr "RUID"
+
+#: src/top/top_nls.c:165
+msgid "Real User Id"
+msgstr "Справжній ідентифікатор кориÑтувача"
+
+#. Translation Hint: maximum 'RUSER' = 8 +
+#: src/top/top_nls.c:167
+msgid "RUSER"
+msgstr "RUSER"
+
+#: src/top/top_nls.c:168
+msgid "Real User Name"
+msgstr "Справжнє Ñ–Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача"
+
+#. Translation Hint: maximum 'SUID' = 5 +
+#: src/top/top_nls.c:170
+msgid "SUID"
+msgstr "SUID"
+
+#: src/top/top_nls.c:171
+msgid "Saved User Id"
+msgstr "Збережений ідентифікатор кориÑтувача"
+
+#. Translation Hint: maximum 'SUSER' = 8 +
+#: src/top/top_nls.c:173
+msgid "SUSER"
+msgstr "SUSER"
+
+#: src/top/top_nls.c:174
+msgid "Saved User Name"
+msgstr "Збережене Ñ–Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача"
+
+#. Translation Hint: maximum 'GID' = 5 +
+#: src/top/top_nls.c:176
+msgid "GID"
+msgstr "GID"
+
+#: src/top/top_nls.c:177
+msgid "Group Id"
+msgstr "Ідентифікатор групи"
+
+#. Translation Hint: maximum 'GROUP' = 8 +
+#: src/top/top_nls.c:179
+msgid "GROUP"
+msgstr "GROUP"
+
+#: src/top/top_nls.c:180
+msgid "Group Name"
+msgstr "Ðазва групи"
+
+#. Translation Hint: maximum 'PGRP' = 5
+#: src/top/top_nls.c:182
+msgid "PGRP"
+msgstr "PGRP"
+
+#: src/top/top_nls.c:183
+msgid "Process Group Id"
+msgstr "Ідентифікатор групи процеÑу"
+
+#. Translation Hint: maximum 'TTY' = 8 +
+#: src/top/top_nls.c:185
+msgid "TTY"
+msgstr "TTY"
+
+#: src/top/top_nls.c:186
+msgid "Controlling Tty"
+msgstr "Tty керуваннÑ"
+
+#. Translation Hint: maximum 'TPGID' = 5
+#: src/top/top_nls.c:188
+msgid "TPGID"
+msgstr "TPGID"
+
+#: src/top/top_nls.c:189
+msgid "Tty Process Grp Id"
+msgstr "Tty ÐŸÑ€Ð¾Ñ†ÐµÑ Ð“Ñ€Ñƒ Ід"
+
+#. Translation Hint: maximum 'SID' = 5
+#: src/top/top_nls.c:191
+msgid "SID"
+msgstr "SID"
+
+#: src/top/top_nls.c:192
+msgid "Session Id"
+msgstr "Ідентифікатор ÑеанÑу"
+
+#. Translation Hint: maximum 'PR' = 3
+#: src/top/top_nls.c:194
+msgid "PR"
+msgstr "PR"
+
+#: src/top/top_nls.c:195
+msgid "Priority"
+msgstr "Пріоритет"
+
+#. Translation Hint: maximum 'NI' = 3
+#: src/top/top_nls.c:197
+msgid "NI"
+msgstr "NI"
+
+#: src/top/top_nls.c:198
+msgid "Nice Value"
+msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Nice"
+
+#. Translation Hint: maximum 'nTH' = 3
+#: src/top/top_nls.c:200
+msgid "nTH"
+msgstr "nTH"
+
+#: src/top/top_nls.c:201
+msgid "Number of Threads"
+msgstr "КількіÑÑ‚ÑŒ потоків"
+
+#. Translation Hint: maximum 'P' = 1
+#: src/top/top_nls.c:203
+msgid "P"
+msgstr "P"
+
+#: src/top/top_nls.c:204
+msgid "Last Used Cpu (SMP)"
+msgstr "ОÑтанній викориÑтаний процеÑор (SMP)"
+
+#. Translation Hint: maximum '%CPU' = 4
+#: src/top/top_nls.c:206
+#, c-format
+msgid "%CPU"
+msgstr "%CPU"
+
+#: src/top/top_nls.c:207
+msgid "CPU Usage"
+msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора"
+
+#. Translation Hint: maximum '' = 6
+#: src/top/top_nls.c:209
+msgid "TIME"
+msgstr "TIME"
+
+#: src/top/top_nls.c:210
+msgid "CPU Time"
+msgstr "Ð§Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора"
+
+#. Translation Hint: maximum 'TIME+' = 9
+#: src/top/top_nls.c:212
+msgid "TIME+"
+msgstr "TIME+"
+
+#: src/top/top_nls.c:213
+msgid "CPU Time, hundredths"
+msgstr "Ð§Ð°Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора з Ñотими"
+
+#. Translation Hint: maximum '%MEM' = 4
+#: src/top/top_nls.c:215
+msgid "%MEM"
+msgstr "%MEM"
+
+#: src/top/top_nls.c:216
+msgid "Memory Usage (RES)"
+msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼â€™ÑÑ‚Ñ– (RES)"
+
+#. Translation Hint: maximum 'VIRT' = 7
+#: src/top/top_nls.c:218
+msgid "VIRT"
+msgstr "VIRT"
+
+#: src/top/top_nls.c:219
+msgid "Virtual Image (KiB)"
+msgstr "Віртуальний образ (КіБ)"
+
+#. Translation Hint: maximum 'SWAP' = 6
+#: src/top/top_nls.c:221
+msgid "SWAP"
+msgstr "SWAP"
+
+#: src/top/top_nls.c:222
+msgid "Swapped Size (KiB)"
+msgstr "Зарезервований розмір (КіБ)"
+
+#. Translation Hint: maximum 'RES' = 6
+#: src/top/top_nls.c:224
+msgid "RES"
+msgstr "RES"
+
+#: src/top/top_nls.c:225
+msgid "Resident Size (KiB)"
+msgstr "Резидентний розмір (КіБ)"
+
+#. Translation Hint: maximum 'CODE' = 4
+#: src/top/top_nls.c:227
+msgid "CODE"
+msgstr "CODE"
+
+#: src/top/top_nls.c:228
+msgid "Code Size (KiB)"
+msgstr "Розмір коду (КіБ)"
+
+#. Translation Hint: maximum 'DATA' = 7
+#: src/top/top_nls.c:230
+msgid "DATA"
+msgstr "DATA"
+
+#: src/top/top_nls.c:231
+msgid "Data+Stack (KiB)"
+msgstr "Дані+Стек (КіБ)"
+
+#. Translation Hint: maximum 'SHR' = 6
+#: src/top/top_nls.c:233
+msgid "SHR"
+msgstr "SHR"
+
+#: src/top/top_nls.c:234
+msgid "Shared Memory (KiB)"
+msgstr "Спільна пам’ÑÑ‚ÑŒ (КіБ)"
+
+#. Translation Hint: maximum 'nMaj' = 4
+#: src/top/top_nls.c:236
+msgid "nMaj"
+msgstr "nMaj"
+
+#: src/top/top_nls.c:237
+msgid "Major Page Faults"
+msgstr "ОÑновні помилки Ñторінок"
+
+#. Translation Hint: maximum 'nMin' = 4
+#: src/top/top_nls.c:239
+msgid "nMin"
+msgstr "nMin"
+
+#: src/top/top_nls.c:240
+msgid "Minor Page Faults"
+msgstr "Вторинні помилки Ñторінок"
+
+#. Translation Hint: maximum 'nDRT' = 4
+#: src/top/top_nls.c:242
+msgid "nDRT"
+msgstr "nDRT"
+
+#: src/top/top_nls.c:243
+msgid "Dirty Pages Count"
+msgstr "КількіÑÑ‚ÑŒ брудних Ñторінок"
+
+#. Translation Hint: maximum 'S' = 1
+#: src/top/top_nls.c:245
+msgid "S"
+msgstr "S"
+
+#: src/top/top_nls.c:246
+msgid "Process Status"
+msgstr "Стан процеÑу"
+
+#. Translation Hint: maximum 'COMMAND' = variable
+#: src/top/top_nls.c:248
+msgid "COMMAND"
+msgstr "COMMAND"
+
+#: src/top/top_nls.c:249
+msgid "Command Name/Line"
+msgstr "Ðазва або Ñ€Ñдок команди"
+
+#. Translation Hint: maximum 'WCHAN' = 10 +
+#: src/top/top_nls.c:251
+msgid "WCHAN"
+msgstr "WCHAN"
+
+#: src/top/top_nls.c:252
+msgid "Sleeping in Function"
+msgstr "Сон у функції"
+
+#. Translation Hint: maximum 'Flags' = 8
+#: src/top/top_nls.c:254
+msgid "Flags"
+msgstr "Прапорці"
+
+#: src/top/top_nls.c:255
+msgid "Task Flags <sched.h>"
+msgstr "Прапорці Ð·Ð°Ð²Ð´Ð°Ð½Ð½Ñ <sched.h>"
+
+#. Translation Hint: maximum 'CGROUPS' = variable
+#: src/top/top_nls.c:257
+msgid "CGROUPS"
+msgstr "CGROUPS"
+
+#: src/top/top_nls.c:258
+msgid "Control Groups"
+msgstr "Групи керуваннÑ"
+
+#. Translation Hint: maximum 'SUPGIDS' = variable
+#: src/top/top_nls.c:260
+msgid "SUPGIDS"
+msgstr "SUPGIDS"
+
+#: src/top/top_nls.c:261
+msgid "Supp Groups IDs"
+msgstr "Ідентифікатори допоміжних груп"
+
+#. Translation Hint: maximum 'SUPGRPS' = variable
+#: src/top/top_nls.c:263
+msgid "SUPGRPS"
+msgstr "SUPGRPS"
+
+#: src/top/top_nls.c:264
+msgid "Supp Groups Names"
+msgstr "Ðазви допоміжних груп"
+
+#. Translation Hint: maximum 'TGID' = 5
+#: src/top/top_nls.c:266
+msgid "TGID"
+msgstr "TGID"
+
+#: src/top/top_nls.c:267
+msgid "Thread Group Id"
+msgstr "Ідентифікатор групи потоку"
+
+#. Translation Hint: maximum 'OOMa' = 5
+#: src/top/top_nls.c:269
+msgid "OOMa"
+msgstr "OOMa"
+
+#: src/top/top_nls.c:270
+msgid "OOMEM Adjustment"
+msgstr "ÐšÐ¾Ñ€Ð¸Ð³ÑƒÐ²Ð°Ð½Ð½Ñ OOMEM"
+
+#. Translation Hint: maximum 'OOMs' = 4
+#: src/top/top_nls.c:272
+msgid "OOMs"
+msgstr "OOMs"
+
+#: src/top/top_nls.c:273
+msgid "OOMEM Score current"
+msgstr "Поточна оцінка OOMEM"
+
+#. Translation Hint: maximum 'ENVIRON' = variable
+#: src/top/top_nls.c:275
+msgid "ENVIRON"
+msgstr "ENVIRON"
+
+#. Translation Hint: the abbreviation 'vars' below is shorthand for
+#. 'variables'
+#: src/top/top_nls.c:278
+msgid "Environment vars"
+msgstr "Змінні Ñередовища"
+
+#. Translation Hint: maximum 'vMj' = 3
+#: src/top/top_nls.c:280
+msgid "vMj"
+msgstr "vMj"
+
+#: src/top/top_nls.c:281
+msgid "Major Faults delta"
+msgstr "ПриріÑÑ‚ оÑновних помилок"
+
+#. Translation Hint: maximum 'vMn' = 3
+#: src/top/top_nls.c:283
+msgid "vMn"
+msgstr "vMn"
+
+#: src/top/top_nls.c:284
+msgid "Minor Faults delta"
+msgstr "ПриріÑÑ‚ вторинних помилок"
+
+#. Translation Hint: maximum 'USED' = 6
+#: src/top/top_nls.c:286
+msgid "USED"
+msgstr "USED"
+
+#: src/top/top_nls.c:287
+msgid "Res+Swap Size (KiB)"
+msgstr "Розмір Res+Swap (у КіБ)"
+
+#. Translation Hint: maximum 'nsIPC' = 10 +
+#: src/top/top_nls.c:289
+msgid "nsIPC"
+msgstr "nsIPC"
+
+#: src/top/top_nls.c:290
+msgid "IPC namespace Inode"
+msgstr "Inode проÑтору назв IPC"
+
+#. Translation Hint: maximum 'nsMNT' = 10 +
+#: src/top/top_nls.c:292
+msgid "nsMNT"
+msgstr "nsMNT"
+
+#: src/top/top_nls.c:293
+msgid "MNT namespace Inode"
+msgstr "Inode проÑтору назв MNT"
+
+#. Translation Hint: maximum 'nsNET' = 10 +
+#: src/top/top_nls.c:295
+msgid "nsNET"
+msgstr "nsNET"
+
+#: src/top/top_nls.c:296
+msgid "NET namespace Inode"
+msgstr "Inode проÑтору назв NET"
+
+#. Translation Hint: maximum 'nsPID' = 10 +
+#: src/top/top_nls.c:298
+msgid "nsPID"
+msgstr "nsPID"
+
+#: src/top/top_nls.c:299
+msgid "PID namespace Inode"
+msgstr "Inode проÑтору назв PID"
+
+#. Translation Hint: maximum 'nsUSER' = 10 +
+#: src/top/top_nls.c:301
+msgid "nsUSER"
+msgstr "nsUSER"
+
+#: src/top/top_nls.c:302
+msgid "USER namespace Inode"
+msgstr "Inode проÑтору назв USER"
+
+#. Translation Hint: maximum 'nsUTS' = 10 +
+#: src/top/top_nls.c:304
+msgid "nsUTS"
+msgstr "nsUTS"
+
+#: src/top/top_nls.c:305
+msgid "UTS namespace Inode"
+msgstr "Inode проÑтору назв UTS"
+
+#. Translation Hint: maximum 'LXC' = 8 +
+#: src/top/top_nls.c:307
+msgid "LXC"
+msgstr "LXC"
+
+#: src/top/top_nls.c:308
+msgid "LXC container name"
+msgstr "Ðазва контейнера LXC"
+
+#. Translation Hint: maximum 'RSan' = 6
+#: src/top/top_nls.c:310
+msgid "RSan"
+msgstr "RSan"
+
+#: src/top/top_nls.c:311
+msgid "RES Anonymous (KiB)"
+msgstr "Ðнонімна RES (КіБ)"
+
+#. Translation Hint: maximum 'RSfd' = 6
+#: src/top/top_nls.c:313
+msgid "RSfd"
+msgstr "RSfd"
+
+#: src/top/top_nls.c:314
+msgid "RES File-based (KiB)"
+msgstr "RES на оÑнові файлів (КіБ)"
+
+#. Translation Hint: maximum 'RSlk' = 6
+#: src/top/top_nls.c:316
+msgid "RSlk"
+msgstr "RSlk"
+
+#: src/top/top_nls.c:317
+msgid "RES Locked (KiB)"
+msgstr "Заблокована RES (КіБ)"
+
+#. Translation Hint: maximum 'RSsh' = 6
+#: src/top/top_nls.c:319
+msgid "RSsh"
+msgstr "RSsh"
+
+#: src/top/top_nls.c:320
+msgid "RES Shared (KiB)"
+msgstr "Спільна RES (КіБ)"
+
+#. Translation Hint: maximum 'CGNAME' = variable
+#: src/top/top_nls.c:322
+msgid "CGNAME"
+msgstr "CGNAME"
+
+#: src/top/top_nls.c:323
+msgid "Control Group name"
+msgstr "Ðазва групи керуваннÑ"
+
+#. Translation Hint: maximum 'NU' = 2
+#: src/top/top_nls.c:325
+msgid "NU"
+msgstr "NU"
+
+#: src/top/top_nls.c:326
+msgid "Last Used NUMA node"
+msgstr "ОÑтанній викориÑтаний вузол NUMA"
+
+#. Translation Hint: maximum 'LOGID' = 5 +
+#: src/top/top_nls.c:328
+msgid "LOGID"
+msgstr "LOGID"
+
+#: src/top/top_nls.c:329
+msgid "Login User Id"
+msgstr "Ідентифікатор кориÑтувача Ð´Ð»Ñ Ð²Ñ…Ð¾Ð´Ñƒ"
+
+#. Translation Hint: maximum 'EXE' = variable
+#: src/top/top_nls.c:331
+msgid "EXE"
+msgstr "EXE"
+
+#: src/top/top_nls.c:332
+msgid "Executable Path"
+msgstr "ШлÑÑ… до виконуваного файла"
+
+#: src/top/top_nls.c:338
+msgid "Res Mem (smaps), KiB"
+msgstr "Рез пам (smaps), КіБ"
+
+#. Translation Hint: maximum 'PSS' = 6
+#: src/top/top_nls.c:340
+msgid "PSS"
+msgstr "PSS"
+
+#: src/top/top_nls.c:341
+msgid "Proportion RSS, KiB"
+msgstr "Пропорційне RSS, КіБ"
+
+#. Translation Hint: maximum 'PSan' = 6
+#: src/top/top_nls.c:343
+msgid "PSan"
+msgstr "PSan"
+
+#: src/top/top_nls.c:344
+msgid "Proportion Anon, KiB"
+msgstr "Пропорційне анон, КіБ"
+
+#. Translation Hint: maximum 'PSfd' = 6
+#: src/top/top_nls.c:346
+msgid "PSfd"
+msgstr "PSfd"
+
+#: src/top/top_nls.c:347
+msgid "Proportion File, KiB"
+msgstr "Пропорційне файлове, КіБ"
+
+#. Translation Hint: maximum 'PSsh' = 6
+#: src/top/top_nls.c:349
+msgid "PSsh"
+msgstr "PSsh"
+
+#: src/top/top_nls.c:350
+msgid "Proportion Shrd, KiB"
+msgstr "Пропорційне Shrd, КіБ"
+
+#. Translation Hint: maximum 'USS' = 6
+#: src/top/top_nls.c:352
+msgid "USS"
+msgstr "USS"
+
+#: src/top/top_nls.c:353
+msgid "Unique RSS, KiB"
+msgstr "Унікальне RSS, КіБ"
+
+#. Translation Hint: maximum 'ioR' = 6
+#: src/top/top_nls.c:355
+msgid "ioR"
+msgstr "ioR"
+
+#: src/top/top_nls.c:356
+msgid "I/O Bytes Read"
+msgstr "Прочитано байтів ВВ"
+
+#. Translation Hint: maximum 'ioRop' = 5
+#: src/top/top_nls.c:358
+msgid "ioRop"
+msgstr "ioRop"
+
+#: src/top/top_nls.c:359
+msgid "I/O Read Operations"
+msgstr "Операцій Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð’Ð’"
+
+#. Translation Hint: maximum 'ioW' = 6
+#: src/top/top_nls.c:361
+msgid "ioW"
+msgstr "ioW"
+
+#: src/top/top_nls.c:362
+msgid "I/O Bytes Written"
+msgstr "ЗапиÑано байтів Ð’Ð’"
+
+#. Translation Hint: maximum 'ioWop' = 5
+#: src/top/top_nls.c:364
+msgid "ioWop"
+msgstr "ioWop"
+
+#: src/top/top_nls.c:365
+msgid "I/O Write Operations"
+msgstr "Операцій Ð·Ð°Ð¿Ð¸Ñ Ð’Ð’"
+
+#. Translation Hint: maximum 'AGID' = 5
+#: src/top/top_nls.c:367
+msgid "AGID"
+msgstr "AGID"
+
+#: src/top/top_nls.c:368
+msgid "Autogroup Identifier"
+msgstr "Ідентифікатор автогрупи"
+
+#. Translation Hint: maximum 'AGNI' = 4
+#: src/top/top_nls.c:370
+msgid "AGNI"
+msgstr "AGNI"
+
+#: src/top/top_nls.c:371
+msgid "Autogroup Nice Value"
+msgstr "Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð¿Ñ€Ñ–Ð¾Ñ€Ð¸Ñ‚ÐµÑ‚Ð½Ð¾ÑÑ‚Ñ– автогрупи"
+
+#. Translation Hint: maximum 'STARTED' = 7
+#: src/top/top_nls.c:373
+msgid "STARTED"
+msgstr "РОЗПОЧÐТО"
+
+#: src/top/top_nls.c:374
+msgid "Start Time from boot"
+msgstr "Ð§Ð°Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ від завантаженнÑ"
+
+#. Translation Hint: maximum 'ELAPSED' = 7
+#: src/top/top_nls.c:376
+msgid "ELAPSED"
+msgstr "ELAPSED"
+
+#: src/top/top_nls.c:377
+msgid "Elapsed Running Time"
+msgstr "Ð§Ð°Ñ Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ, що минув"
+
+#. Translation Hint: maximum '%CUU' = 6
+#: src/top/top_nls.c:379
+#, c-format
+msgid "%CUU"
+msgstr "%CUU"
+
+#: src/top/top_nls.c:380
+msgid "CPU Utilization"
+msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора"
+
+#. Translation Hint: maximum '%CUC' = 7
+#: src/top/top_nls.c:382
+#, c-format
+msgid "%CUC"
+msgstr "%CUC"
+
+#: src/top/top_nls.c:383
+msgid "Utilization + child"
+msgstr "ВикориÑÑ‚Ð°Ð½Ð½Ñ + дочірні"
+
+#. Translation Hint: maximum 'nsCGROUP' = 10 +
+#: src/top/top_nls.c:385
+msgid "nsCGROUP"
+msgstr "nsCGROUP"
+
+#: src/top/top_nls.c:386
+msgid "CGRP namespace Inode"
+msgstr "Inode проÑтору назв CGRP"
+
+#. Translation Hint: maximum 'nsTIME' = 10 +
+#: src/top/top_nls.c:388
+msgid "nsTIME"
+msgstr "nsTIME"
+
+#: src/top/top_nls.c:389
+msgid "TIME namespace Inode"
+msgstr "Inode проÑтору назв TIME"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . This group of lines contains both plain text and c-format strings.
+#. .
+#. . Some strings reflect switches used to affect the running program
+#. . and should not be translated without also making corresponding
+#. . c-code logic changes.
+#. .
+#: src/top/top_nls.c:409
+#, c-format
+msgid ""
+"\tsignal %d (%s) was caught by %s, please\n"
+"\tsend bug reports to <procps@freelists.org>\n"
+msgstr ""
+"\t%3$s отримано Ñигнал %1$d (%2$s). Будь лаÑка,\n"
+"\tнадішліть звіт щодо вади до див. <procps@freelists.org>\n"
+
+#: src/top/top_nls.c:439
+#, c-format
+msgid "bad delay interval '%s'"
+msgstr "помилковий інтервал затримки, «%s»"
+
+#: src/top/top_nls.c:440
+#, c-format
+msgid "bad iterations argument '%s'"
+msgstr "помилковий аргумент ітерацій, «%s»"
+
+#: src/top/top_nls.c:441
+#, c-format
+msgid "pid limit (%d) exceeded"
+msgstr "перевищено Ð¾Ð±Ð¼ÐµÐ¶ÐµÐ½Ð½Ñ pid (%d)"
+
+#: src/top/top_nls.c:442
+#, c-format
+msgid "bad pid '%s'"
+msgstr "помилковий pid, «%s»"
+
+#: src/top/top_nls.c:443
+#, c-format
+msgid "-%c argument missing"
+msgstr "не виÑтачає аргументу -%c"
+
+#: src/top/top_nls.c:444
+#, c-format
+msgid "bad width arg '%s'"
+msgstr "помилковий аргумент ширини, «%s»"
+
+#: src/top/top_nls.c:445
+#, c-format
+msgid "unknown option '%s'"
+msgstr "невідомий параметр «%s»"
+
+#: src/top/top_nls.c:446
+msgid "-d disallowed in \"secure\" mode"
+msgstr "-d заборонено викориÑтовувати у режимі «secure»"
+
+#: src/top/top_nls.c:447
+msgid "-d requires positive argument"
+msgstr "-d потребує додатного аргументу"
+
+#: src/top/top_nls.c:448
+msgid "On"
+msgstr "Увімкнено"
+
+#: src/top/top_nls.c:449
+msgid "Off"
+msgstr "Вимкнено"
+
+#: src/top/top_nls.c:450
+#, c-format
+msgid "%s from %s"
+msgstr "%s з %s"
+
+#: src/top/top_nls.c:451
+#, c-format
+msgid "Forest mode %s"
+msgstr "Режим ліÑу %s"
+
+#: src/top/top_nls.c:452
+msgid "failed tty get"
+msgstr "помилка Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ tty"
+
+#: src/top/top_nls.c:453
+#, c-format
+msgid "failed tty set: %s"
+msgstr "помилка вÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð½Ñ tty: %s"
+
+#: src/top/top_nls.c:454
+msgid "Choose field group (1 - 4)"
+msgstr "Вибір групи Ð¿Ð¾Ð»Ñ (1 - 4)"
+
+#: src/top/top_nls.c:455
+msgid "Command disabled, 'A' mode required"
+msgstr "Команду вимкнено, потрібен режим «A»"
+
+#: src/top/top_nls.c:456
+#, c-format
+msgid "Command disabled, activate %s with '-' or '_'"
+msgstr "Команду вимкнено, задійте %s за допомогою «-» або «_»"
+
+#: src/top/top_nls.c:457
+msgid "No colors to map!"
+msgstr "Ðемає кольорів Ð´Ð»Ñ Ð¿Ñ€Ð¸Ð²â€™Ñзки!"
+
+#: src/top/top_nls.c:458
+#, c-format
+msgid "Failed '%s' open: %s"
+msgstr "Ðе вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ñ‚Ñ Â«%s»: %s"
+
+#: src/top/top_nls.c:459
+#, c-format
+msgid "Wrote configuration to '%s'"
+msgstr "ЗапиÑано Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð¾ «%s»"
+
+#: src/top/top_nls.c:460
+#, c-format
+msgid "Change delay from %.1f to"
+msgstr "Змінити затримку з %.1f на"
+
+#: src/top/top_nls.c:461
+#, c-format
+msgid "Show threads %s"
+msgstr "ВивеÑти потоки %s"
+
+#: src/top/top_nls.c:462
+#, c-format
+msgid "Irix mode %s"
+msgstr "Режим Irix %s"
+
+#: src/top/top_nls.c:463
+#, c-format
+msgid "PID to signal/kill [default pid = %d]"
+msgstr "PID Ð´Ð»Ñ Ð½Ð°Ð´ÑÐ¸Ð»Ð°Ð½Ð½Ñ Ñигналу або Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ [типовий pid = %d]"
+
+#: src/top/top_nls.c:464
+#, c-format
+msgid "Send pid %d signal [%d/sigterm]"
+msgstr "ÐадіÑлати Ñигнал pid %d [%d/sigterm]"
+
+#: src/top/top_nls.c:465
+#, c-format
+msgid "Failed signal pid '%d' with '%d': %s"
+msgstr "Помилка Ñигналу pid «%d» з «%d»: %s"
+
+#: src/top/top_nls.c:466
+msgid "Invalid signal"
+msgstr "Ðекоректний Ñигнал"
+
+#: src/top/top_nls.c:467
+#, c-format
+msgid "PID to renice [default pid = %d]"
+msgstr "PID Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ уподобаноÑÑ‚Ñ– [типовий pid = %d]"
+
+#: src/top/top_nls.c:468
+#, c-format
+msgid "Renice PID %d to value"
+msgstr "Змінити уподобаніÑÑ‚ÑŒ PID %d до значеннÑ"
+
+#: src/top/top_nls.c:469
+#, c-format
+msgid "Failed renice of PID %d to %d: %s"
+msgstr "Ðе вдалоÑÑ Ð·Ð¼Ñ–Ð½Ð¸Ñ‚Ð¸ уподобаніÑÑ‚ÑŒ PID %d на %d: %s"
+
+#: src/top/top_nls.c:470
+#, c-format
+msgid "Rename window '%s' to (1-3 chars)"
+msgstr "Перейменувати вікно «%s» (1-3 Ñимволи)"
+
+#: src/top/top_nls.c:471
+#, c-format
+msgid "Cumulative time %s"
+msgstr "Ðакопичений Ñ‡Ð°Ñ %s"
+
+#: src/top/top_nls.c:472
+#, c-format
+msgid "Maximum tasks = %d, change to (0 is unlimited)"
+msgstr "МакÑимальна кількіÑÑ‚ÑŒ завдань = %d, змінити (0 — не обмежувати)"
+
+#: src/top/top_nls.c:473
+msgid "Invalid maximum"
+msgstr "Ðекоректний макÑимум"
+
+#: src/top/top_nls.c:474
+msgid "Which user (blank for all)"
+msgstr "КориÑтувач (порожнє Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ â€” уÑÑ–)"
+
+#: src/top/top_nls.c:475
+msgid "Unknown command - try 'h' for help"
+msgstr "Ðевідома команда. СкориÑтайтеÑÑ Â«h» Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ð²Ñ–Ð´ÐºÐ¸."
+
+#: src/top/top_nls.c:476
+#, c-format
+msgid "scroll coordinates: y = %d/%d (tasks), x = %d/%d (fields)"
+msgstr "координати гортаннÑ: y = %d/%d (завданнÑ), x = %d/%d (полÑ)"
+
+#: src/top/top_nls.c:477
+msgid "failed memory allocate"
+msgstr "не вдалоÑÑ Ñ€Ð¾Ð·Ð¼Ñ–Ñтити у пам’ÑÑ‚Ñ–"
+
+#: src/top/top_nls.c:478
+msgid "failed memory re-allocate"
+msgstr "не вдалоÑÑ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€Ð½Ð¾ розміÑтити у пам’ÑÑ‚Ñ–"
+
+#: src/top/top_nls.c:479
+msgid "Unacceptable floating point"
+msgstr "ÐеприйнÑтна рухома крапка"
+
+#: src/top/top_nls.c:480
+msgid "Invalid user"
+msgstr "Ðекоректний кориÑтувач"
+
+#: src/top/top_nls.c:481
+msgid "forest view"
+msgstr "переглÑд ліÑу"
+
+#: src/top/top_nls.c:482
+msgid "failed pid maximum size test"
+msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ð¹Ñ‚Ð¸ перевірку на макÑимальний розмір pid"
+
+#: src/top/top_nls.c:483
+msgid "failed number of cpus test"
+msgstr "не вдалоÑÑ Ð¿Ñ€Ð¾Ð¹Ñ‚Ð¸ перевірку на кількіÑÑ‚ÑŒ процеÑорів"
+
+#: src/top/top_nls.c:484
+#, c-format
+msgid "incompatible rcfile, you should delete '%s'"
+msgstr "неÑуміÑний файл rc, вам Ñлід вилучити «%s»"
+
+#: src/top/top_nls.c:485
+#, c-format
+msgid "window entry #%d corrupt, please delete '%s'"
+msgstr "Ð·Ð°Ð¿Ð¸Ñ Ð²Ñ–ÐºÐ½Ð° %d пошкоджено, будь лаÑка, вилучіть «%s»"
+
+#: src/top/top_nls.c:486
+msgid "Unavailable in secure mode"
+msgstr "ÐедоÑтупне у захищеному режимі"
+
+#: src/top/top_nls.c:487
+msgid "Only 1 cpu detected"
+msgstr "ВиÑвлено лише 1 процеÑор"
+
+#: src/top/top_nls.c:488
+msgid "Unacceptable integer"
+msgstr "ÐеприйнÑтне ціле чиÑло"
+
+#: src/top/top_nls.c:489
+msgid "conflicting process selections (U/p/u)"
+msgstr "конфлікт вибору процеÑів (U/p/u)"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . kibibytes (1024 bytes)
+#: src/top/top_nls.c:492
+msgid "KiB"
+msgstr "КіБ"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . mebibytes (1,048,576 bytes)
+#: src/top/top_nls.c:495
+msgid "MiB"
+msgstr "МіБ"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . gibibytes (1,073,741,824 bytes)
+#: src/top/top_nls.c:498
+msgid "GiB"
+msgstr "ГіБ"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . tebibytes (1,099,511,627,776 bytes)
+#: src/top/top_nls.c:501
+msgid "TiB"
+msgstr "ТіБ"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . pebibytes (1,024 tebibytes)
+#: src/top/top_nls.c:504
+msgid "PiB"
+msgstr "ПіБ"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . exbibytes (1,024 pebibytes)
+#: src/top/top_nls.c:507
+msgid "EiB"
+msgstr "ЕіБ"
+
+#: src/top/top_nls.c:508
+msgid "Threads"
+msgstr "Потоки"
+
+#: src/top/top_nls.c:509
+msgid "Tasks"
+msgstr "ЗавданнÑ"
+
+#. Translation Hint: The following "word" is meant to represent either a single
+#. . cpu or all of the processors in a multi-processor computer
+#. . (should be exactly 6 characters, excluding leading % & colon)
+#: src/top/top_nls.c:513
+#, c-format
+msgid "%Cpu(s):"
+msgstr "%CПроц.:"
+
+#. Translation Hint: The following "word" is meant to represent a single processor
+#. and 'the Cp' prefix will be combined with a core id: 'p', 'e' or 'u'
+#. . (if 'Cp' is translated, it must be exactly 2 characters long)
+#: src/top/top_nls.c:517
+#, c-format
+msgid "%%Cp%c%-3d:"
+msgstr "%%Cp%c%-3d:"
+
+#. Translation Hint: The following word "another" must have 1 trailing space
+#: src/top/top_nls.c:519
+msgid "another "
+msgstr "інші "
+
+#: src/top/top_nls.c:520
+msgid "Locate next inactive, use \"L\""
+msgstr "Знайти наÑтупний неактивний, ÑкориÑтайтеÑÑ Â«L»"
+
+#: src/top/top_nls.c:521
+msgid "Locate string"
+msgstr "Знайти Ñ€Ñдок"
+
+#: src/top/top_nls.c:522
+#, c-format
+msgid "%s\"%s\" not found"
+msgstr "%s«%s» не знайдено"
+
+#: src/top/top_nls.c:523
+#, c-format
+msgid "width incr is %d, change to (0 default, -1 auto)"
+msgstr "крок Ð·Ð±Ñ–Ð»ÑŒÑˆÐµÐ½Ð½Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ð¸, %d, змінити (0 — типовий, -1 — автоматичний)"
+
+#: src/top/top_nls.c:524
+msgid "rcfile has inspect/other-filter error(s), save anyway?"
+msgstr ""
+"У rcfile виÑвлено помилки за допомогою інÑÐ¿ÐµÐºÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ іншого "
+"фільтруваннÑ. Зберегти його попри це?"
+
+#: src/top/top_nls.c:525
+#, c-format
+msgid "unrecognized field name '%s'"
+msgstr "нерозпізнана назва полÑ, «%s»"
+
+#: src/top/top_nls.c:526
+msgid "even using field names only, window is now too small"
+msgstr "навіть за викориÑÑ‚Ð°Ð½Ð½Ñ Ð»Ð¸ÑˆÐµ назв полів, вікно Ñ” зараз надто малим"
+
+#: src/top/top_nls.c:527
+msgid "Open Files"
+msgstr "Відкрити файли"
+
+#: src/top/top_nls.c:528
+msgid "NUMA Info"
+msgstr "Дані щодо NUMA"
+
+#: src/top/top_nls.c:529
+msgid "Log"
+msgstr "Журнал"
+
+#: src/top/top_nls.c:530
+msgid ""
+"the '=' key will eventually show the actual file read or command(s) "
+"executed ..."
+msgstr ""
+"нарешті, ключ «=» покаже Ñправжнє Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… з файла або виконану "
+"команду..."
+
+#: src/top/top_nls.c:531
+msgid "demo"
+msgstr "демо"
+
+#: src/top/top_nls.c:532
+#, c-format
+msgid ""
+"This is simulated output representing the contents of some file or the "
+"output\n"
+"from some command. Exactly which commands and/or files are solely up to "
+"you.\n"
+"\n"
+"Although this text is for information purposes only, it can still be "
+"scrolled\n"
+"and searched like real output will be. You are encouraged to experiment "
+"with\n"
+"those features as explained in the prologue above.\n"
+"\n"
+"To enable real Inspect functionality, entries must be added to the end of "
+"the\n"
+"top personal personal configuration file. You could use your favorite "
+"editor\n"
+"to accomplish this, taking care not to disturb existing entries.\n"
+"\n"
+"Another way to add entries is illustrated below, but it risks overwriting "
+"the\n"
+"rcfile. Redirected echoes must not replace (>) but append (>>) to that "
+"file.\n"
+"\n"
+" /bin/echo -e \"pipe\\tOpen Files\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+" /bin/echo -e \"file\\tNUMA Info\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+" /bin/echo -e \"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr\" >> ~/."
+"toprc\n"
+"\n"
+"If you don't know the location or name of the top rcfile, use the 'W' "
+"command\n"
+"and note those details. After backing up the current rcfile, try issuing "
+"the\n"
+"above echoes exactly as shown, replacing '.toprc' as appropriate. The "
+"safest\n"
+"approach would be to use copy then paste to avoid any typing mistakes.\n"
+"\n"
+"Finally, restart top to reveal what actual Inspect entries combined with "
+"this\n"
+"new command can offer. The possibilities are endless, especially "
+"considering\n"
+"that 'pipe' type entries can include shell scripts too!\n"
+"\n"
+"For additional important information, please consult the top(1) man "
+"document.\n"
+"Then, enhance top with your very own customized 'file' and/or 'pipe' "
+"entries.\n"
+"\n"
+"Enjoy!\n"
+msgstr ""
+"Це Ñ–Ð¼Ñ–Ñ‚Ð°Ñ†Ñ–Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð¸Ñ… даних вміÑту певного файла або або результату "
+"виконаннÑ\n"
+"певної команди. Вибір команд Ñ–/або файлів Ñ” вашою Ñправою.\n"
+"\n"
+"Хоча Ð¿Ñ€Ð¸Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ†ÑŒÐ¾Ð³Ð¾ текÑту Ñ” Ñуто інформаційним, його можна гортати, у "
+"ньому\n"
+"можна виконувати пошук, Ñк у звичайних виведених даних. ПоекÑпериментуйте з\n"
+"можливоÑÑ‚Ñми, опиÑаними у передмові вище.\n"
+"\n"
+"Щоб увімкнути функціональні можливоÑÑ‚Ñ– Ñправжнього інÑпектуваннÑ, запиÑи "
+"має\n"
+"бути додано наприкінці оÑобиÑтого файла налаштувань top. Ð”Ð»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ можна\n"
+"ÑкориÑтатиÑÑ Ð²Ð°ÑˆÐ¸Ð¼ улюбленим текÑтовим редактором, подбавши про "
+"недоторканніÑÑ‚ÑŒ\n"
+"наÑвних запиÑів.\n"
+"\n"
+"Інший ÑпоÑіб Ð´Ð¾Ð´Ð°Ð²Ð°Ð½Ð½Ñ Ð·Ð°Ð¿Ð¸Ñів проілюÑтровано нижче. Цей ÑпоÑіб Ñ” "
+"ризикованим\n"
+"через можливіÑÑ‚ÑŒ перезапиÑу файла rc. ПереÑпрÑÐ¼Ð¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð½Ðµ "
+"повинне\n"
+"замінювати вміÑÑ‚ (>), а лише доповнювати вміÑÑ‚ (>>) цього файла.\n"
+"\n"
+" /bin/echo -e \"pipe\\tВідкрити файли\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+" /bin/echo -e \"file\\tДані щодо NUMA\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+" /bin/echo -e \"pipe\\tЖурнал\\ttail -n200 /var/log/syslog | sort -Mr\" >> "
+"~/.toprc\n"
+"\n"
+"Якщо вам не відоме міÑце Ð·Ð±ÐµÑ€Ñ–Ð³Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ назва файла rc top, ÑкориÑтайтеÑÑ\n"
+"командою «W», Ñка допоможе вам дізнатиÑÑ Ñ†Ñ– подробиці. ПіÑÐ»Ñ ÑтвореннÑ\n"
+"резервної копії поточного файла rc, Ñпробуйте віддати команди, наведені "
+"вище\n"
+"точно так, Ñк Ñ—Ñ… запиÑано, замінивши «.toprc» відповідним файлом.\n"
+"Ðайбезпечнішим підходом буде ÐºÐ¾Ð¿Ñ–ÑŽÐ²Ð°Ð½Ð½Ñ Ð· наÑтупним вÑтавленнÑм, щоб\n"
+"уникнути друкарÑьких помилок.\n"
+"\n"
+"Ðарешті, перезапуÑÑ‚Ñ–Ñ‚ÑŒ top, щоб визначити, Ñкі запиÑи інÑпектуваннÑ\n"
+"у поєднанні з новою командою можна викориÑтати. Діапазон можливоÑтей Ñ”\n"
+"неÑкінченним, оÑобливо, Ñкщо врахувати те, що запиÑи типу «pipe»\n"
+"можна включати до Ñкриптів оболонки!\n"
+"\n"
+"Щоб отримати додаткову кориÑну інформацію, будь лаÑка, звернітьÑÑ Ð´Ð¾\n"
+"документації з top(1). Таким чином, ви можете розширити можливоÑÑ‚Ñ– top\n"
+"вашими влаÑними, кориÑними Ð´Ð»Ñ Ð²Ð°Ñ Ð·Ð°Ð¿Ð¸Ñами «file» Ñ– «pipe».\n"
+"\n"
+"Приємного кориÑтуваннÑ!\n"
+
+#: src/top/top_nls.c:564
+msgid "to enable 'Y' press <Enter> then type 'W' and restart top"
+msgstr ""
+"щоб увімкнути «Y», натиÑніть <Enter>, потім введіть «W» Ñ– перезапуÑÑ‚Ñ–Ñ‚ÑŒ top"
+
+#: src/top/top_nls.c:565
+msgid "to enable 'Y' please consult the top man page (press Enter)"
+msgstr ""
+"щоб увімкнути «Y», будь лаÑка, ознайомтеÑÑ Ð·Ñ– Ñторінкою підручника з top "
+"(натиÑніть Enter)"
+
+#: src/top/top_nls.c:566
+#, c-format
+msgid "Selection failed with: %s\n"
+msgstr "Помилка вибору: %s\n"
+
+#: src/top/top_nls.c:567
+#, c-format
+msgid "unable to inspect, pid %d not found"
+msgstr "не вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ інÑпекцію, pid %d не знайдено"
+
+#: src/top/top_nls.c:568
+#, c-format
+msgid "inspect at PID [default pid = %d]"
+msgstr "виконати інÑпекцію PID [типовий pid = %d]"
+
+#: src/top/top_nls.c:569
+#, c-format
+msgid "%s: %*d-%-*d lines, %*d-%*d columns, %lu bytes read"
+msgstr "%s: %*d-%-*d Ñ€Ñдків, %*d-%*d Ñтовпчиків, прочитано %lu байтів"
+
+#: src/top/top_nls.c:570
+msgid "patience please, working ..."
+msgstr "зачекайте, будь лаÑка, виконуємо обробку..."
+
+#: src/top/top_nls.c:571
+msgid "working, use Ctrl-C to end ..."
+msgstr "працюємо, ÑкориÑтайтеÑÑ Ctrl-C, щоб перервати обробку..."
+
+#. Translation Hint: Below are 2 abbreviations which can be as long as needed:
+#. . FLD = FIELD, VAL = VALUE
+#: src/top/top_nls.c:574
+#, c-format
+msgid "add filter #%d (%s) as: [!]FLD?VAL"
+msgstr "додати Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ %d (%s) у форматі: [!]ПОЛЕ?ЗÐÐЧЕÐÐЯ"
+
+#: src/top/top_nls.c:575
+msgid "ignoring case"
+msgstr "не враховувати регіÑÑ‚Ñ€"
+
+#: src/top/top_nls.c:576
+msgid "case sensitive"
+msgstr "з врахуваннÑм регіÑтру"
+
+#: src/top/top_nls.c:577
+msgid "duplicate filter was ignored"
+msgstr "дублікат фільтра проігноровано"
+
+#: src/top/top_nls.c:578
+#, c-format
+msgid "'%s' filter delimiter is missing"
+msgstr "не виÑтачає роздільника Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Â«%s»"
+
+#: src/top/top_nls.c:579
+#, c-format
+msgid "'%s' filter value is missing"
+msgstr "не виÑтачає Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ„Ñ–Ð»ÑŒÑ‚Ñ€ÑƒÐ²Ð°Ð½Ð½Ñ Â«%s»"
+
+#: src/top/top_nls.c:580
+msgid "include"
+msgstr "включити"
+
+#: src/top/top_nls.c:581
+msgid "exclude"
+msgstr "виключити"
+
+#: src/top/top_nls.c:582
+#, c-format
+msgid "<Enter> to resume, filters: %s"
+msgstr "<Enter>, щоб поновити, фільтри: %s"
+
+#: src/top/top_nls.c:583
+msgid "none"
+msgstr "немає"
+
+#. Translation Hint: The following word 'Node' should be exactly
+#. 4 characters, excluding leading %%, fmt chars & colon)
+#: src/top/top_nls.c:586
+#, c-format
+msgid "%%Node%-2d:"
+msgstr "%%Вузол%-2d:"
+
+#: src/top/top_nls.c:587
+#, c-format
+msgid "expand which numa node (0-%d)"
+msgstr "вузол numa Ð´Ð»Ñ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ (0-%d)"
+
+#: src/top/top_nls.c:588
+msgid "invalid numa node"
+msgstr "некоректний вузол numa"
+
+#: src/top/top_nls.c:589
+msgid "sorry, NUMA extensions unavailable"
+msgstr "вибачте, немає доÑтупу до розширень NUMA"
+
+#. Translation Hint: 'Mem ' is an abbreviation for physical memory/ram
+#. . 'Swap' represents the linux swap file --
+#. . please make both translations exactly 4 characters,
+#. . padding with extra spaces as necessary
+#: src/top/top_nls.c:594
+msgid "Mem "
+msgstr "Пам "
+
+#: src/top/top_nls.c:595
+msgid "Swap"
+msgstr "Своп"
+
+#: src/top/top_nls.c:596
+#, c-format
+msgid "library failed memory statistics, at %d: %s"
+msgstr "ÑтатиÑтика помилок у пам'ÑÑ‚Ñ– бібліотеки, на %d: %s"
+
+#: src/top/top_nls.c:597
+#, c-format
+msgid "library failed cpu statistics, at %d: %s"
+msgstr "ÑтатиÑтика помилок процеÑора бібліотеки, на %d: %s"
+
+#: src/top/top_nls.c:598
+#, c-format
+msgid "library failed pids statistics, at %d: %s"
+msgstr "ÑтатиÑтика щодо помилкових pid бібліотеки, на %d: %s"
+
+#: src/top/top_nls.c:599
+#, c-format
+msgid "bad memory scaling arg '%s'"
+msgstr "помилкове аргумент маÑÑˆÑ‚Ð°Ð±ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ð¼'ÑÑ‚Ñ– «%s»"
+
+#: src/top/top_nls.c:600
+#, c-format
+msgid "PID to collapse/expand [default pid = %d]"
+msgstr "PID Ð´Ð»Ñ Ð·Ð¼Ñ–Ð½Ð¸ Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ Ð°Ð±Ð¾ Ñ€Ð¾Ð·Ð³Ð¾Ñ€Ñ‚Ð°Ð½Ð½Ñ [типовий pid = %d]"
+
+#: src/top/top_nls.c:601
+msgid "wrong mode, command inactive"
+msgstr "помилковий режим, команда є неактивною"
+
+#: src/top/top_nls.c:602
+msgid "saving prevents older top from reading, save anyway?"
+msgstr ""
+"піÑÐ»Ñ Ð·Ð±ÐµÑ€ÐµÐ¶ÐµÐ½Ð½Ñ Ð·Ð½Ð¸ÐºÐ½Ðµ можливіÑÑ‚ÑŒ читати заÑтарілі Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð½Ð° початку "
+"ÑпиÑку. Зберегти попри це?"
+
+#: src/top/top_nls.c:603
+#, c-format
+msgid "failed sem_init() at %d: %s"
+msgstr "не вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ sem_init() на %d: %s"
+
+#: src/top/top_nls.c:604
+#, c-format
+msgid "failed pthread_create() at %d: %s"
+msgstr "не вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ pthread_create() на %d: %s"
+
+#: src/top/top_nls.c:605
+msgid "sorry, restricted namespace with reduced functionality"
+msgstr ""
+"вибачте, обмежений проÑÑ‚Ñ–Ñ€ назв із Ñкороченими функціональними можливоÑÑ‚Ñми"
+
+#: src/top/top_nls.c:606
+#, c-format
+msgid "set pid %d AGNI value to"
+msgstr "вÑтановити Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ AGNI pid %d"
+
+#: src/top/top_nls.c:607
+msgid "valid AGNI range is -20 to +19"
+msgstr "коректним діапазоном AGNI Ñ” Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ -20 до +19"
+
+#: src/top/top_nls.c:608
+#, c-format
+msgid "autogroup open failed, %s"
+msgstr "не вдалоÑÑ Ð²Ñ–Ð´ÐºÑ€Ð¸Ñ‚Ð¸ автогрупу, %s"
+
+#: src/top/top_nls.c:609
+#, c-format
+msgid "autogroup write failed, %s"
+msgstr "помилка запиÑу автогрупи, %s"
+
+#: src/top/top_nls.c:610
+#, c-format
+msgid "command line for pid %d, %s"
+msgstr "Ñ€Ñдок команди Ð´Ð»Ñ pid %d, %s"
+
+#: src/top/top_nls.c:611
+#, c-format
+msgid "control groups for pid %d, %s"
+msgstr "групи ÐºÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð´Ð»Ñ pid %d, %s"
+
+#: src/top/top_nls.c:612
+#, c-format
+msgid "environment for pid %d, %s"
+msgstr "Ñередовище Ð´Ð»Ñ pid %d, %s"
+
+#: src/top/top_nls.c:613
+#, c-format
+msgid "namespaces for pid %d, %s"
+msgstr "проÑÑ‚Ñ–Ñ€ назв Ð´Ð»Ñ pid %d, %s"
+
+#: src/top/top_nls.c:614
+msgid "n/a"
+msgstr "н/д"
+
+#: src/top/top_nls.c:615
+#, c-format
+msgid "supplementary groups for pid %d, %s"
+msgstr "допоміжні групи Ð´Ð»Ñ pid %d, %s"
+
+#: src/top/top_nls.c:616
+msgid "message log, last 10 messages:"
+msgstr "журнал повідомлень, оÑтанні 10 повідомлень:"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The next several text groups contain special escape sequences
+#. . representing values used to index a table at run-time.
+#. .
+#. . Each such sequence consists of a tilde (~) followed by an ascii
+#. . number in the range of '1' - '8'. Examples are '~2', '~8', etc.
+#. . These escape sequences must never themselves be translated but
+#. . could be deleted.
+#. .
+#. . If you remove these escape sequences (both tilde and number) it
+#. . would make translation easier. However, the ability to display
+#. . colors and bold text at run-time will have been lost.
+#. .
+#. . Additionally, each of these text groups was designed to display
+#. . in a 80x24 terminal window. Hopefully, any translations will
+#. . adhere to that goal lest the translated text be truncated.
+#. .
+#. . If you would like additional information regarding these strings,
+#. . please see the prologue to the show_special function in the top.c
+#. . source file.
+#. .
+#. . Caution:
+#. . The next three items represent pages for interacting with a user.
+#. . In all cases, the last lines of text must be treated with care.
+#. .
+#. . They must not end with a newline character so that at runtime the
+#. . cursor will remain on that final text line.
+#. .
+#. . Also, the special sequences (tilde+number) must not appear on the
+#. . last line (the one without the newline). So please avoid any line
+#. . wraps that could place them there.
+#. .
+#: src/top/top_nls.c:661
+#, c-format
+msgid ""
+"Help for Interactive Commands~2 - %s\n"
+"Window ~1%s~6: ~1Cumulative mode ~3%s~2. ~1System~6: ~1Delay ~3%.1f secs~2; "
+"~1Secure mode ~3%s~2.\n"
+"\n"
+" Z~5,~1B~5,E,e Global: '~1Z~2' colors; '~1B~2' bold; '~1E~2'/'~1e~2' "
+"summary/task memory scale\n"
+" l,t,m,I,0 Toggle: '~1l~2' load avg; '~1t~2' task/cpu; '~1m~2' memory; "
+"'~1I~2' Irix; '~10~2' zeros\n"
+" 1,2,3,4,5 Toggle: '~11~2/~12~2/~13~2' cpu/numa views; '~14~2' cpus "
+"abreast; '~15~2' P/E-cores\n"
+" f,X Fields: '~1f~2' add/remove/order/sort; '~1X~2' increase fixed-"
+"width fields\n"
+"\n"
+" L,&,<,> . Locate: '~1L~2'/'~1&~2' find/again; Move sort column: "
+"'~1<~2'/'~1>~2' left/right\n"
+" R,H,J,C . Toggle: '~1R~2' Sort; '~1H~2' Threads; '~1J~2' Num justify; "
+"'~1C~2' Coordinates\n"
+" c,i,S,j . Toggle: '~1c~2' Cmd name/line; '~1i~2' Idle; '~1S~2' Time; "
+"'~1j~2' Str justify\n"
+" x~5,~1y~5 . Toggle highlights: '~1x~2' sort field; '~1y~2' running "
+"tasks\n"
+" z~5,~1b~5 . Toggle: '~1z~2' color/mono; '~1b~2' bold/reverse (only if "
+"'x' or 'y')\n"
+" u,U,o,O . Filter by: '~1u~2'/'~1U~2' effective/any user; '~1o~2'/'~1O~2' "
+"other criteria\n"
+" n,#,^O . Set: '~1n~2'/'~1#~2' max tasks displayed; Show: ~1Ctrl~2+'~1O~2' "
+"other filter(s)\n"
+" V,v,F . Toggle: '~1V~2' forest view; '~1v~2' hide/show children; '~1F~2' "
+"keep focused\n"
+"\n"
+"%s ^G,K,N,U View: ctl groups ~1^G~2; cmdline ~1^K~2; environment ~1^N~2; "
+"supp groups ~1^U~2\n"
+" Y,!,^E,P Inspect '~1Y~2'; Combine Cpus '~1!~2'; Scale time ~1^E~2; View "
+"namespaces ~1^P~2\n"
+" W,q Write config file '~1W~2'; Quit '~1q~2'\n"
+" ( commands shown with '.' require a ~1visible~2 task display "
+"~1window~2 ) \n"
+"Press '~1h~2' or '~1?~2' for help with ~1Windows~2,\n"
+"Type 'q' or <Esc> to continue "
+msgstr ""
+"Довідка щодо інтерактивних команд~2 - %s\n"
+"Вікно ~1%s~6: ~1Ðакопичувальний режим ~3%s~2. ~1СиÑтема~6: ~1Затримка "
+"~3%.1f Ñек.~2; ~1Режим захиÑту ~3%s~2.\n"
+"\n"
+" Z~5,~1B~5,E,e Загалом: '~1Z~2' кольорів; '~1B~2' напівжирний; "
+"'~1E~2'/'~1e~2' маÑштаб пам’ÑÑ‚Ñ– Ð´Ð»Ñ Ñ€ÐµÐ·ÑŽÐ¼Ðµ/завданнÑ\n"
+" l,t,m,I,0 ПеремиканнÑ: '~1l~2' Ñер. навант.; '~1t~2' завдань/проц; '~1m~2' "
+"memory; '~1I~2' Irix; '~10~2' нулі\n"
+" 1,2,3,4,5 ПеремиканнÑ: '~11~2/~12~2/~13~2' переглÑди проц/numa; '~14~2' "
+"два проц. порÑд; '~15~2' P/E-Ñдра\n"
+" f,X ПолÑ: '~1f~2' add/remove/order/sort; '~1X~2' збільшити Ð¿Ð¾Ð»Ñ "
+"фікÑованої ширини\n"
+"\n"
+" L,&,<,> . Пошук: '~1L~2'/'~1&~2' знайти дані; ПереÑунути Ñтовпчик "
+"упорÑдковуваннÑ: '~1<~2'/'~1>~2' ліворуч/праворуч\n"
+" R,H,J,C . ПеремиканнÑ: '~1R~2' УпорÑдковуваннÑ; '~1H~2' Потоки; '~1J~2' "
+"Ð’Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñ†Ð¸Ñ„Ñ€; '~1C~2' Координати\n"
+" c,i,S,j . ПеремиканнÑ: '~1c~2' Ðазва або Ñ€Ñдок команди; '~1i~2' "
+"БездіÑльніÑÑ‚ÑŒ; '~1S~2' ЧаÑ; '~1j~2' Ð’Ð¸Ñ€Ñ–Ð²Ð½ÑŽÐ²Ð°Ð½Ð½Ñ Ñ€Ñдків\n"
+" x~5,~1y~5 . ÐŸÐµÑ€ÐµÐ¼Ð¸ÐºÐ°Ð½Ð½Ñ Ð¿Ñ–Ð´ÑвічуваннÑ: '~1x~2' поле упорÑдковуваннÑ; "
+"'~1y~2' завданнÑ, що виконуютьÑÑ\n"
+" z~5,~1b~5 . ПеремиканнÑ: '~1z~2' колір/моно; '~1b~2' напівжирний/"
+"зворотній (лише Ñкщо 'x' або 'y')\n"
+" u,U,o,O . ФільтруваннÑ: '~1u~2'/'~1U~2' за ефективним/будь-Ñким "
+"кориÑтувачем; '~1o~2'/'~1O~2' інші критерії\n"
+" n,#,^O . Ð’ÑтановленнÑ: '~1n~2'/'~1#~2' макÑимальна показана кількіÑÑ‚ÑŒ "
+"завдань; Показ: ~1Ctrl~2+'~1O~2' інші фільтри\n"
+" V,v,F . ПеремиканнÑ: '~1V~2' переглÑд ліÑу; '~1v~2' приховати або "
+"показати дочірні об'єкти; '~1F~2' зберегти фокуÑ\n"
+"\n"
+"%s ^G,K,N,U ПереглÑд: контрольні групи ~1^G~2; командний Ñ€Ñдок ~1^K~2; "
+"Ñередовище ~1^N~2; доп. групи ~1^U~2\n"
+" Y,!,^E,P ІнÑпектувати '~1Y~2'; Поєднати процеÑори '~1!~2'; МаÑштабувати "
+"Ñ‡Ð°Ñ ~1^E~2'; ПереглÑнути проÑтори назв ~1^P~2\n"
+" W,q ЗапиÑати файл налаштувань '~1W~2'; Вийти '~1q~2'\n"
+" ( Ð´Ð»Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´ з «.» потрібне ~1видиме~2 ~1вікно~2 показу "
+"завдань ) \n"
+"ÐатиÑніть «~1h~2» або «~1?~2» Ð´Ð»Ñ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ Ð´Ð¾Ð²Ñ–Ð´ÐºÐ¸ щодо ~1Windows~2,\n"
+"ÐатиÑніть «q» або <Esc>, щоб продовжити переглÑд даних. "
+
+#: src/top/top_nls.c:687
+#, c-format
+msgid ""
+"Help for Windows / Field Groups~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+". Use multiple ~1windows~2, each with separate config opts (color,fields,"
+"sort,etc)\n"
+". The 'current' window controls the ~1Summary Area~2 and responds to your "
+"~1Commands~2\n"
+" . that window's ~1task display~2 can be turned ~1Off~2 & ~1On~2, growing/"
+"shrinking others\n"
+" . with ~1NO~2 task display, some commands will be ~1disabled~2 "
+"('i','R','n','c', etc)\n"
+" until a ~1different window~2 has been activated, making it the 'current' "
+"window\n"
+". You ~1change~2 the 'current' window by: ~1 1~2) cycling forward/backward;"
+"~1 2~2) choosing\n"
+" a specific field group; or~1 3~2) exiting the color mapping or fields "
+"screens\n"
+". Commands ~1available anytime -------------~2\n"
+" A . Alternate display mode toggle, show ~1Single~2 / ~1Multiple~2 "
+"windows\n"
+" g . Choose another field group and make it 'current', or change "
+"now\n"
+" by selecting a number from: ~1 1~2 =%s;~1 2~2 =%s;~1 3~2 =%s; "
+"or~1 4~2 =%s\n"
+". Commands ~1requiring~2 '~1A~2' mode~1 -------------~2\n"
+" G . Change the ~1Name~5 of the 'current' window/field group\n"
+" ~1*~4 a , w . Cycle through all four windows: '~1a~5' Forward; '~1w~5' "
+"Backward\n"
+" ~1*~4 - , _ . Show/Hide: '~1-~5' ~1Current~2 window; '~1_~5' all "
+"~1Visible~2/~1Invisible~2\n"
+" The screen will be divided evenly between task displays. But you can "
+"make\n"
+" some ~1larger~2 or ~1smaller~2, using '~1n~2' and '~1i~2' commands. Then "
+"later you could:\n"
+" ~1*~4 = , + . Rebalance tasks: '~1=~5' ~1Current~2 window; '~1+~5' "
+"~1Every~2 window\n"
+" (this also forces the ~1current~2 or ~1every~2 window to "
+"become visible)\n"
+"\n"
+"In '~1A~2' mode, '~1*~4' keys are your ~1essential~2 commands. Please try "
+"the '~1a~2' and '~1w~2'\n"
+"commands plus the 'g' sub-commands NOW. Press <Enter> to make 'Current' "
+msgstr ""
+"Довідка щодо вікон / груп полів~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+". ВикориÑÑ‚Ð°Ð½Ð½Ñ Ð´ÐµÐºÑ–Ð»ÑŒÐºÐ¾Ñ… ~1вікон~2 з окремими параметрами Ð½Ð°Ð»Ð°ÑˆÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ "
+"(колір, полÑ, впорÑÐ´ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ñ‚Ð¾Ñ‰Ð¾)\n"
+". «Поточне» вікно керує ~1облаÑÑ‚ÑŽ резюме~2 Ñ– відповідає на ваші ~1команди~2\n"
+" . ~1показ завдань~2 цього вікна може бути ~1вимкнено~2 і ~1увімкнено~2, з "
+"розширеннÑм або звуженнÑм інших\n"
+" . Ñкщо показу завдань ~1немає~2, деÑкі з команд буде ~1вимкнено~2 "
+"('i','R','n','c', тощо),\n"
+" аж доки не буде активовано ~1інше вікно~2, Ñке піÑÐ»Ñ Ñ†ÑŒÐ¾Ð³Ð¾ Ñтане "
+"«поточним» вікном\n"
+". ~1Змінити~2 «поточне» вікно можна так: ~1 1~2) циклічним переходом вперед/"
+"назад;~1 2~2) вибором\n"
+" певної групи полів;~1 3~2) виходом прив’Ñзки кольорів або панелей полів\n"
+". Команди, ~1доÑтупні завжди -------------~2\n"
+" A . Перемикач режиму показу, показ ~1єдиного~2 / ~1декількох~2 "
+"вікон\n"
+" g . Вибрати іншу групу полів і зробити її «поточною» або негайна "
+"зміна\n"
+" вибором номеру: ~1 1~2 =%s;~1 2~2 =%s;~1 3~2 =%s; або~1 4~2 "
+"=%s\n"
+". Команди, що ~1потребують~2 режиму «~1A~2»~1 -------------~2\n"
+" G . Змінити ~1назву~5 «поточного» вікна або групи полів\n"
+" ~1*~4 a , w . Циклічний перехід уÑіма чотирма вікнами: «~1a~5» вперед; "
+"«~1w~5» назад\n"
+" ~1*~4 - , _ . Показати або Ñховати: «~1-~5» ~1поточне~2 вікно; «~1_~5» "
+"уÑÑ– ~1видимі~2/~1невидимі~2\n"
+" Екран буде рівномірно поділено між показами завдань. ~1Збільшити~2 або\n"
+" ~1зменшити~2 розмір панелі можна за допомогою команд «~1n~2» та «~1i~2». "
+"Згодом можна:\n"
+" ~1*~4 = , + . Змінити Ð±Ð°Ð»Ð°Ð½Ñ Ð·Ð°Ð²Ð´Ð°Ð½ÑŒ: «~1=~5» ~1поточне~2 вікно; "
+"«~1+~5» ~1кожне~2 вікно\n"
+" (ці команди примуÑово зроблÑÑ‚ÑŒ ~1поточне~2 або ~1кожне~2 вікно "
+"видимим)\n"
+"\n"
+"У режимі «~1A~2» клавіші «~1*~4» визначають ~1оÑновні~2 команди. Спробуйте "
+"ÑкориÑтатиÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð°Ð¼Ð¸ «~1a~2» Ñ– «~1w~2»\n"
+"разом з підкомандою «g» зараз же. ÐатиÑніть <Enter>, щоб зробити «поточним» "
+
+#. Translation Notes ------------------------------------------------
+#. . The following 'Help for color mapping' simulated screen should
+#. . probably NOT be translated. It is terribly hard to follow in
+#. . this form and any translation could produce unpleasing results
+#. . that are unlikely to parallel the running top program.
+#. .
+#. . If you decide to proceed with translation, please take care
+#. . to not disturb the spaces and the tilde + number delimiters.
+#. .
+#: src/top/top_nls.c:722
+#, c-format
+msgid ""
+"Help for color mapping~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+" color - 04:25:44 up 8 days, 50 min, 7 users, load average:\n"
+" Tasks:~3 64 ~2total,~3 2 ~3running,~3 62 ~2sleeping,~3 0 ~2stopped,"
+"~3\n"
+" %%Cpu(s):~3 76.5 ~2user,~3 11.2 ~2system,~3 0.0 ~2nice,~3 12.3 "
+"~2idle~3\n"
+" ~1 Nasty Message! ~4 -or- ~1Input Prompt~5\n"
+" ~1 PID TTY PR NI %%CPU TIME+ VIRT SWAP S COMMAND ~6\n"
+" 17284 ~8pts/2 ~7 8 0 0.0 0:00.75 1380 0 S /bin/bash ~8\n"
+" ~1 8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z~7\n"
+" 11005 ~8? ~7 9 0 0.0 0:02.50 2852 1008 S amor -sessi~8\n"
+" available toggles: ~1B~2 =disable bold globally (~1%s~2),\n"
+" ~1z~2 =color/mono (~1%s~2), ~1b~2 =tasks \"bold\"/reverse (~1%s~2)\n"
+"\n"
+"1) Select a ~1target~2 as an upper case letter, ~1current target~2 is ~1 %c "
+"~4:\n"
+" S~2 = Summary Data,~1 M~2 = Messages/Prompts,\n"
+" H~2 = Column Heads,~1 T~2 = Task Information\n"
+"2) Select a ~1color~2 as a number or use the up/down arrow keys\n"
+" to raise/lower the %d colors value, ~1current color~2 is ~1 %d ~4:\n"
+" 0~2 = black,~1 1~2 = red, ~1 2~2 = green,~1 3~2 = yellow,\n"
+" 4~2 = blue, ~1 5~2 = magenta,~1 6~2 = cyan, ~1 7~2 = white\n"
+"\n"
+"3) Then use these keys when finished:\n"
+" 'q' or <Esc> to abort changes to window '~1%s~2'\n"
+" 'a' or 'w' to commit & change another, <Enter> to commit and end "
+msgstr ""
+"Довідка щодо прив’Ñзки кольорів~2 - \"Поточне вікно\" = ~1 %s ~6\n"
+"\n"
+" колір - 04:25:44, працюємо 8 днів, 50 хв., 7 кориÑтувачів, Ñереднє "
+"навантаженнÑ:\n"
+" Завдань:~3 64 ~2загалом,~3 2 ~3працює,~3 62 ~2приÑпано,~3 0 "
+"~2зупинено,~3\n"
+" %%ПроцеÑори:~3 76.5 ~2кор.,~3 11.2 ~2ÑиÑтема,~3 0.0 ~2упод.,~3 12.3 "
+"~2безд.~3\n"
+" ~1 ЯкеÑÑŒ повідомленнÑ! ~4 -або- ~1Запит щодо введеннÑ~5\n"
+" ~1 PID TTY PR NI %%CPU TIME+ VIRT SWAP S КОМÐÐДР~6\n"
+" 17284 ~8pts/2 ~7 8 0 0.0 0:00.75 1380 0 S /bin/bash ~8\n"
+" ~1 8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z~7\n"
+" 11005 ~8? ~7 9 0 0.0 0:02.50 2852 1008 S amor -sessi~8\n"
+" доÑтупні перемикачі: ~1B~2 =вимкнути напівжирний загалом (~1%s~2),\n"
+" ~1z~2 =колір/моно (~1%s~2), ~1b~2 =\"напівжирні\"/зворотній порÑдок "
+"(~1%s~2)\n"
+"\n"
+"1) Виберіть ~1ціль~2 за літерою верхнього регіÑтра, ~1поточною ціллю~2 Ñ” ~1 "
+"%c ~4:\n"
+" S~2 = Резюме даних,~1 M~2 = ÐŸÐ¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ð°Ð±Ð¾ запити,\n"
+" H~2 = Заголовки Ñтовпчиків,~1 T~2 = Дані щодо завдань\n"
+"2) Виберіть ~1колір~2 за чиÑлом або ÑкориÑтайтеÑÑ ÐºÐ»Ð°Ð²Ñ–ÑˆÐ°Ð¼Ð¸ зі Ñтрілками\n"
+" Ð´Ð»Ñ Ð·Ð±Ñ–Ð»ÑŒÑˆÐµÐ½Ð½Ñ Ñ‡Ð¸ Ð·Ð¼ÐµÐ½ÑˆÐµÐ½Ð½Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ñ–Ð² %d, ~1поточним кольором~2 Ñ” "
+"~1 %d ~4:\n"
+" 0~2 = чорний,~1 1~2 = червоний, ~1 2~2 = зелений,~1 3~2 = жовтий,\n"
+" 4~2 = Ñиній, ~1 5~2 = малиновий,~1 6~2 = блакитний, ~1 7~2 = білий\n"
+"\n"
+"3) СкориÑтайтеÑÑ Ð¾Ð´Ð½Ñ–Ñ”ÑŽ з цих клавіш:\n"
+" q або Esc — перервати внеÑÐµÐ½Ð½Ñ Ð·Ð¼Ñ–Ð½ до вікна '~1%s~2'\n"
+" a або w — внеÑти зміни Ñ– перейти до внеÑÐµÐ½Ð½Ñ Ñ–Ð½ÑˆÐ¸Ñ… змін, <Enter> — внеÑти "
+"зміни і завершити "
+
+#. Translation Hint: As is true for the text above, the "keys" shown to the left and
+#. . also embedded in the translatable text (along with escape seqs)
+#. . should never themselves be translated.
+#: src/top/top_nls.c:751
+msgid ""
+" d,k,r,^R '~1d~2' set delay; '~1k~2' kill; '~1r~2' renice; ~1Ctrl~2+'~1R~2' "
+"renice autogroup\n"
+msgstr ""
+" d,k,r,^R '~1d~2' вÑÑ‚.затримку; '~1k~2' вбити; '~1r~2' зм.пріор.; "
+"~1Ctrl~2+'~1R~2' зм.пріор.автогрупи\n"
+
+#. Translation Hint:
+#. . This Fields Management header should be 3 lines long so as
+#. . to allow 1 blank line before the fields & descriptions.
+#. . If absolutely necessary, 4 lines could be used (but never more).
+#. .
+#: src/top/top_nls.c:759
+#, c-format
+msgid ""
+"Fields Management~2 for window ~1%s~6, whose current sort field is ~1%s~2\n"
+" Navigate with Up/Dn, Right selects for move then <Enter> or Left "
+"commits,\n"
+" 'd' or <Space> toggles display, 's' sets sort. Use 'q' or <Esc> to end!\n"
+msgstr ""
+"ÐšÐµÑ€ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð¾Ð»Ñми~2 Ð´Ð»Ñ Ð²Ñ–ÐºÐ½Ð° ~1%s~6, де полем упорÑÐ´ÐºÐ¾Ð²ÑƒÐ²Ð°Ð½Ð½Ñ Ñ” ~1%s~2\n"
+" ÐÐ°Ð²Ñ–Ð³Ð°Ñ†Ñ–Ñ Ð·Ð´Ñ–Ð¹ÑнюєтьÑÑ Ð·Ð° допомогою клавіш зі Ñтрілками вгору/вниз,\n"
+" Ñтрілка праворуч вибирає, <Enter> або Ñтрілка ліворуч фікÑує вибір,\n"
+" «d» або <Пробіл> перемикає показ, «s» вÑтановлює упорÑдкуваннÑ.\n"
+" Щоб завершити роботу, ÑкориÑтайтеÑÑ Â«q» або <Esc>!\n"
+
+#. Translation Hint:
+#. . The next 5 items must each be translated as a single line.
+#. .
+#: src/top/top_nls.c:767
+#, c-format
+msgid ""
+"%s:~3 %3u ~2total,~3 %3u ~2running,~3 %3u ~2sleeping,~3 %3u ~2stopped,~3 %3u "
+"~2zombie~3\n"
+msgstr ""
+"%s:~3 %3u ~2загалом,~3 %3u ~2працює,~3 %3u ~2приÑпано,~3 %3u ~2зупинено,~3 "
+"%3u ~2зомбі~3\n"
+
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt
+#: src/top/top_nls.c:773
+#, c-format
+msgid ""
+"%s~3 %#5.1f ~2us,~3 %#5.1f ~2sy,~3 %#5.1f ~2ni,~3 %#5.1f ~2id,~3 %#5.1f ~2wa,"
+"~3 %#5.1f ~2hi,~3 %#5.1f ~2si~3 ~1"
+msgstr ""
+"%s~3 %#5.1f ~2us,~3 %#5.1f ~2sy,~3 %#5.1f ~2ni,~3 %#5.1f ~2id,~3 %#5.1f ~2wa,"
+"~3 %#5.1f ~2hi,~3 %#5.1f ~2si~3 ~1"
+
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt, st = steal time
+#: src/top/top_nls.c:779
+#, c-format
+msgid ""
+"%s~3%#5.1f ~2us,~3%#5.1f ~2sy,~3%#5.1f ~2ni,~3%#5.1f ~2id,~3%#5.1f ~2wa,"
+"~3%#5.1f ~2hi,~3%#5.1f ~2si,~3%#5.1f ~2st~3 ~1"
+msgstr ""
+"%s~3%#5.1f ~2us,~3%#5.1f ~2sy,~3%#5.1f ~2ni,~3%#5.1f ~2id,~3%#5.1f ~2wa,"
+"~3%#5.1f ~2hi,~3%#5.1f ~2si,~3%#5.1f ~2st~3 ~1"
+
+#. Translation Hint: next 2 must be treated together, with WORDS above & below aligned
+#: src/top/top_nls.c:783
+#, c-format
+msgid ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used,~3 %9.9s~2buff/cache~3 "
+"~1 "
+msgstr ""
+"%s %s:~3 %9.9s~2загал,~3 %9.9s~2вільн,~3 %9.9s~2вик,~3 %9.9s~2буф/кеш~3 "
+"~1 "
+
+#: src/top/top_nls.c:785
+#, c-format
+msgid ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used.~3 %9.9s~2avail %s~3"
+msgstr ""
+"%s %s:~3 %9.9s~2загал,~3 %9.9s~2віль,~3 %9.9s~2вико.~3 %9.9s~2доÑÑ‚. %s~3"
+
+#. Translation Hint:
+#. . The next 2 headers for 'Inspection' must each be 3 lines or less
+#. .
+#: src/top/top_nls.c:791
+#, c-format
+msgid ""
+"Inspection~2 Pause at: pid ~1%d~6, running ~1%s~6\n"
+"Use~2: left/right then <Enter> to ~1select~5 an option; 'q' or <Esc> to "
+"~1end~5 !\n"
+"Options~2: ~1%s\n"
+msgstr ""
+"ІнÑпектуваннÑ~2 Призупинка: pid ~1%d~6 виконуєтьÑÑ ~1%s~6\n"
+"Кор.~2: ліворуч/праворуч, потім <Enter> Ð´Ð»Ñ ~1вибору~5 пункту; q або <Esc> "
+"Ð´Ð»Ñ ~1завершеннÑ~5 !\n"
+"Пункти~2: ~1%s\n"
+
+#: src/top/top_nls.c:796
+#, c-format
+msgid ""
+"Inspection~2 View at pid: ~1%s~3, running ~1%s~3. Locating: ~1%s~6\n"
+"Use~2: left/right/up/down/etc to ~1navigate~5 the output; 'L'/'&' to "
+"~1locate~5/~1next~5.\n"
+"Or~2: <Enter> to ~1select another~5; 'q' or <Esc> to ~1end~5 !\n"
+msgstr ""
+"ІнÑпектуваннÑ~2 ПереглÑд у pid: ~1%s~3, виконуєтьÑÑ ~1%s~3. МіÑце: ~1%s~6\n"
+"Кор.~2: ліворуч, праворуч, вниз, вгору тощо Ð´Ð»Ñ ~1навігації~5 даними; L/& "
+"Ð´Ð»Ñ ~1пошуку~5/~1переходу далі~5.\n"
+"Ðбо~2: <Enter> Ð´Ð»Ñ ~1Ð¿Ð¾Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ñ–Ð½ÑˆÐ¾Ð³Ð¾~5; q або <Esc> Ð´Ð»Ñ ~1Ð·Ð°Ð²ÐµÑ€ÑˆÐµÐ½Ð½Ñ "
+"роботи~5 !\n"
+
+#: src/uptime.c:51 src/uptime.c:123
+msgid "Cannot get system uptime"
+msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ ÑиÑтеми"
+
+#: src/uptime.c:67
+msgid " -p, --pretty show uptime in pretty format\n"
+msgstr " -p, --pretty показати Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸ у зручному Ð´Ð»Ñ Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚Ñ–\n"
+
+#: src/uptime.c:69
+msgid " -s, --since system up since\n"
+msgstr " -s, --since вивеÑти Ñ‡Ð°Ñ Ð¿Ð¾Ñ‡Ð°Ñ‚ÐºÑƒ роботи ÑиÑтеми\n"
+
+#: src/vmstat.c:220
+#, c-format
+msgid " %s [options] [delay [count]]\n"
+msgstr " %s [параметри] [delay [чиÑло]]\n"
+
+#: src/vmstat.c:223
+msgid " -a, --active active/inactive memory\n"
+msgstr " -a, --active активна або неактивна пам’ÑÑ‚ÑŒ\n"
+
+#: src/vmstat.c:224
+msgid " -f, --forks number of forks since boot\n"
+msgstr " -f, --forks кількіÑÑ‚ÑŒ відгалужень з чаÑу завантаженнÑ\n"
+
+#: src/vmstat.c:225
+msgid " -m, --slabs slabinfo\n"
+msgstr " -m, --slabs дані щодо чаÑтин\n"
+
+#: src/vmstat.c:226
+msgid " -n, --one-header do not redisplay header\n"
+msgstr " -n, --one-header не показувати заголовок повторно\n"
+
+#: src/vmstat.c:227
+msgid " -s, --stats event counter statistics\n"
+msgstr " -s, --stats ÑтатиÑтика щодо кількоÑÑ‚Ñ– подій\n"
+
+#: src/vmstat.c:228
+msgid " -d, --disk disk statistics\n"
+msgstr " -d, --disk ÑтатиÑтика щодо викориÑÑ‚Ð°Ð½Ð½Ñ Ð´Ð¸Ñка\n"
+
+#: src/vmstat.c:229
+msgid " -D, --disk-sum summarize disk statistics\n"
+msgstr ""
+" -D, --disk-sum підÑумкова ÑтатиÑтика щодо викориÑÑ‚Ð°Ð½Ð½Ñ Ð´Ð¸Ñка\n"
+
+#: src/vmstat.c:230
+msgid " -p, --partition <dev> partition specific statistics\n"
+msgstr " -p, --partition <dev> ÑтатиÑтика Ð´Ð»Ñ Ð¾ÐºÑ€ÐµÐ¼Ð¸Ñ… розділів\n"
+
+#: src/vmstat.c:231
+msgid " -S, --unit <char> define display unit\n"
+msgstr " -S, --unit <Ñимвол> визначити одиницю показу\n"
+
+#: src/vmstat.c:232
+msgid " -w, --wide wide output\n"
+msgstr " -w, --wide Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ñƒ широкому форматі\n"
+
+#: src/vmstat.c:233
+msgid " -t, --timestamp show timestamp\n"
+msgstr " -t, --timestamp вивеÑти чаÑову позначку\n"
+
+#: src/vmstat.c:234
+msgid " -y, --no-first skips first line of output\n"
+msgstr " -y, --no-first пропуÑтити перший Ñ€Ñдок виведеннÑ\n"
+
+#: src/vmstat.c:253
+msgid ""
+"procs -----------memory---------- ---swap-- -----io---- -system-- -------"
+"cpu-------"
+msgstr ""
+"проц -----------пам’ÑÑ‚ÑŒ--------- ---Ñвоп-- ----в/в---- -ÑиÑтема- -----"
+"процеÑор-----"
+
+#: src/vmstat.c:255
+msgid ""
+"--procs-- -----------------------memory---------------------- ---swap-- -----"
+"io---- -system-- ----------cpu----------"
+msgstr ""
+"проц -----------пам’ÑÑ‚ÑŒ--------- ---Ñвоп-- ----в/в---- -ÑиÑтема- ------"
+"процеÑор-----"
+
+#: src/vmstat.c:256 src/vmstat.c:619
+msgid " -----timestamp-----"
+msgstr " -----чаÑова позначка-----"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:275
+msgid "r"
+msgstr "r"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:277
+msgid "b"
+msgstr "b"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:279
+msgid "swpd"
+msgstr "swpd"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:281
+msgid "free"
+msgstr "free"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:283
+msgid "inact"
+msgstr "inact"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:285
+msgid "buff"
+msgstr "buff"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:287
+msgid "active"
+msgstr "активно"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:289
+msgid "cache"
+msgstr "кеш"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:291
+msgid "si"
+msgstr "si"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:293
+msgid "so"
+msgstr "so"
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:295
+msgid "bi"
+msgstr "bi"
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:297
+msgid "bo"
+msgstr "bo"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:299
+msgid "in"
+msgstr "in"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:301
+msgid "cs"
+msgstr "cs"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:303
+msgid "us"
+msgstr "us"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:305
+msgid "sy"
+msgstr "sy"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:307
+msgid "id"
+msgstr "id"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:309
+msgid "wa"
+msgstr "wa"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:311
+msgid "st"
+msgstr "st"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:313
+msgid "gu"
+msgstr "gu"
+
+#: src/vmstat.c:374 src/vmstat.c:870
+msgid "Unable to create vmstat structure"
+msgstr "Ðе вдалоÑÑ Ñтворити Ñтруктуру vmstat"
+
+#: src/vmstat.c:376 src/vmstat.c:866 src/vmstat.c:919
+msgid "Unable to create system stat structure"
+msgstr "Ðе вдалоÑÑ Ñтворити Ñтруктуру ÑтатиÑтики ÑиÑтеми"
+
+#: src/vmstat.c:380
+msgid "Unable to get uptime"
+msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ Ñ‡Ð°Ñ Ñ€Ð¾Ð±Ð¾Ñ‚Ð¸"
+
+#: src/vmstat.c:391 src/vmstat.c:472 src/vmstat.c:874
+msgid "Unable to select memory information"
+msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð±Ñ€Ð°Ñ‚Ð¸ відомоÑÑ‚Ñ– щодо пам'ÑÑ‚Ñ–"
+
+#: src/vmstat.c:405 src/vmstat.c:458 src/vmstat.c:868
+msgid "Unable to select stat information"
+msgstr "Ðе вдалоÑÑ Ð²Ð¸Ð±Ñ€Ð°Ñ‚Ð¸ ÑтатиÑтичні відомоÑÑ‚Ñ–"
+
+#. Translation Hint: Translating folloging disk partition
+#. * header fields that follow (marked with max x chars) might
+#. * not work, unless manual page is translated as well.
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:565
+msgid "reads"
+msgstr "читаннÑ"
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:567
+msgid "read sectors"
+msgstr "чит. Ñекторів"
+
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:569
+msgid "writes"
+msgstr "запиÑи"
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:571
+msgid "requested writes"
+msgstr "запитаних запиÑів"
+
+#: src/vmstat.c:584 src/vmstat.c:687 src/vmstat.c:813
+msgid "Unable to create diskstat structure"
+msgstr "Ðе вдалоÑÑ Ñтворити Ñтруктуру diskstat"
+
+#: src/vmstat.c:587 src/vmstat.c:593
+#, c-format
+msgid "Disk/Partition %s not found"
+msgstr "ДиÑк або розділ %s не знайдено"
+
+#: src/vmstat.c:616
+msgid ""
+"disk- ------------reads------------ ------------writes----------- -----"
+"IO------"
+msgstr ""
+"диÑк- -----------читаннÑ----------- ------------запиÑ----------- -----Ð’/"
+"Ð’-----"
+
+#: src/vmstat.c:618
+msgid ""
+"disk- -------------------reads------------------- -------------------"
+"writes------------------ ------IO-------"
+msgstr ""
+"диÑк- ------------------читаннÑ------------------ -------------------"
+"запиÑ------------------- ------Ð’/Ð’------"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:637 src/vmstat.c:645
+msgid "total"
+msgstr "загалом"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:639 src/vmstat.c:647
+msgid "merged"
+msgstr "об’єднано"
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:641 src/vmstat.c:649
+msgid "sectors"
+msgstr "Ñектори"
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:643 src/vmstat.c:651
+msgid "ms"
+msgstr "мÑ"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:653
+msgid "cur"
+msgstr "пот."
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:655
+msgid "sec"
+msgstr "Ñек"
+
+#: src/vmstat.c:694 src/vmstat.c:815
+msgid "Unable to retrieve disk statistics"
+msgstr "Ðе вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ ÑтатиÑтику щодо диÑків"
+
+#. Translation Hint: Translating folloging slab fields that
+#. * follow (marked with max x chars) might not work, unless
+#. * manual page is translated as well.
+#. Translation Hint: max 24 chars
+#: src/vmstat.c:741
+msgid "Cache"
+msgstr "Кеш"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:743
+msgid "Num"
+msgstr "ЧиÑл"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:745
+msgid "Total"
+msgstr "Загалом"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:747
+msgid "Size"
+msgstr "Розмір"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:749
+msgid "Pages"
+msgstr "Сторінки"
+
+#: src/vmstat.c:836
+#, c-format
+msgid "%13d disks\n"
+msgstr "%13d диÑків\n"
+
+#: src/vmstat.c:837
+#, c-format
+msgid "%13d partitions\n"
+msgstr "%13d розділів\n"
+
+#: src/vmstat.c:838
+#, c-format
+msgid "%13lu total reads\n"
+msgstr "%13lu читань загалом\n"
+
+#: src/vmstat.c:839
+#, c-format
+msgid "%13lu merged reads\n"
+msgstr "%13lu об’єднаних читань\n"
+
+#: src/vmstat.c:840
+#, c-format
+msgid "%13lu read sectors\n"
+msgstr "%13lu Ñекторів прочитано\n"
+
+#: src/vmstat.c:841
+#, c-format
+msgid "%13lu milli reading\n"
+msgstr "%13lu міліÑекунд на читаннÑ\n"
+
+#: src/vmstat.c:842
+#, c-format
+msgid "%13lu writes\n"
+msgstr "%13lu запиÑів\n"
+
+#: src/vmstat.c:843
+#, c-format
+msgid "%13lu merged writes\n"
+msgstr "%13lu об’єднаних запиÑів\n"
+
+#: src/vmstat.c:844
+#, c-format
+msgid "%13lu written sectors\n"
+msgstr "%13lu Ñекторів запиÑано\n"
+
+#: src/vmstat.c:845
+#, c-format
+msgid "%13lu milli writing\n"
+msgstr "%13lu міліÑекунд на запиÑ\n"
+
+#: src/vmstat.c:846
+#, c-format
+msgid "%13lu inprogress IO\n"
+msgstr "%13lu дій з введеннÑ-виведеннÑ, що виконуютьÑÑ\n"
+
+#: src/vmstat.c:847
+#, c-format
+msgid "%13lu milli spent IO\n"
+msgstr "%13lu міліÑекунд на введеннÑ-виведеннÑ\n"
+
+#: src/vmstat.c:848
+#, c-format
+msgid "%13lu milli weighted IO\n"
+msgstr "%13lu міліÑекунд зваженого введеннÑ-виведеннÑ\n"
+
+#: src/vmstat.c:876
+#, c-format
+msgid "%13lu %s total memory\n"
+msgstr "%13lu %s пам’ÑÑ‚Ñ– загалом\n"
+
+#: src/vmstat.c:877
+#, c-format
+msgid "%13lu %s used memory\n"
+msgstr "%13lu %s пам’ÑÑ‚Ñ– викориÑтано\n"
+
+#: src/vmstat.c:878
+#, c-format
+msgid "%13lu %s active memory\n"
+msgstr "%13lu %s пам’ÑÑ‚Ñ– активно\n"
+
+#: src/vmstat.c:879
+#, c-format
+msgid "%13lu %s inactive memory\n"
+msgstr "%13lu %s пам’ÑÑ‚Ñ– неактивно\n"
+
+#: src/vmstat.c:880
+#, c-format
+msgid "%13lu %s free memory\n"
+msgstr "%13lu %s пам’ÑÑ‚Ñ– вільно\n"
+
+#: src/vmstat.c:881
+#, c-format
+msgid "%13lu %s buffer memory\n"
+msgstr "%13lu %s пам’ÑÑ‚Ñ– у буфері\n"
+
+#: src/vmstat.c:882
+#, c-format
+msgid "%13lu %s swap cache\n"
+msgstr "%13lu %s резервного кешу\n"
+
+#: src/vmstat.c:883
+#, c-format
+msgid "%13lu %s total swap\n"
+msgstr "%13lu %s резервної пам’ÑÑ‚Ñ– загалом\n"
+
+#: src/vmstat.c:884
+#, c-format
+msgid "%13lu %s used swap\n"
+msgstr "%13lu %s резервної пам’ÑÑ‚Ñ– викориÑтано\n"
+
+#: src/vmstat.c:885
+#, c-format
+msgid "%13lu %s free swap\n"
+msgstr "%13lu %s резервної пам’ÑÑ‚Ñ– вільно\n"
+
+#: src/vmstat.c:886
+#, c-format
+msgid "%13lld non-nice user cpu ticks\n"
+msgstr "%13lld тактів процеÑора Ð´Ð»Ñ Ð½ÐµÑƒÐ¿Ð¾Ð´Ð¾Ð±Ð°Ð½Ð¸Ñ… процеÑів кориÑтувача\n"
+
+#: src/vmstat.c:887
+#, c-format
+msgid "%13lld nice user cpu ticks\n"
+msgstr "%13lld тактів процеÑора Ð´Ð»Ñ ÑƒÐ¿Ð¾Ð´Ð¾Ð±Ð°Ð½Ð¸Ñ… процеÑів кориÑтувача\n"
+
+#: src/vmstat.c:888
+#, c-format
+msgid "%13lld system cpu ticks\n"
+msgstr "%13lld тактів процеÑора Ð´Ð»Ñ ÑиÑтеми\n"
+
+#: src/vmstat.c:889
+#, c-format
+msgid "%13lld idle cpu ticks\n"
+msgstr "%13lld тактів бездіÑльноÑÑ‚Ñ– процеÑора\n"
+
+#: src/vmstat.c:890
+#, c-format
+msgid "%13lld IO-wait cpu ticks\n"
+msgstr "%13lld тактів Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð²Ð²ÐµÐ´ÐµÐ½Ð½Ñ-Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð¿Ñ€Ð¾Ñ†ÐµÑора\n"
+
+#: src/vmstat.c:891
+#, c-format
+msgid "%13lld IRQ cpu ticks\n"
+msgstr "%13lld тактів IRQ процеÑора\n"
+
+#: src/vmstat.c:892
+#, c-format
+msgid "%13lld softirq cpu ticks\n"
+msgstr "%13lld тактів програмних переривань процеÑора\n"
+
+#: src/vmstat.c:893
+#, c-format
+msgid "%13lld stolen cpu ticks\n"
+msgstr "%13lld викрадених тактів процеÑора\n"
+
+#: src/vmstat.c:894
+#, c-format
+msgid "%13lld non-nice guest cpu ticks\n"
+msgstr "%13lld тактів процеÑора Ð´Ð»Ñ Ð½ÐµÑƒÐ¿Ð¾Ð´Ð¾Ð±Ð°Ð½Ð¸Ñ… гоÑтьових процеÑів\n"
+
+#: src/vmstat.c:895
+#, c-format
+msgid "%13lld nice guest cpu ticks\n"
+msgstr "%13lld тактів процеÑора Ð´Ð»Ñ ÑƒÐ¿Ð¾Ð´Ð¾Ð±Ð°Ð½Ð¸Ñ… гоÑтьових процеÑів\n"
+
+#: src/vmstat.c:896
+#, c-format
+msgid "%13lu K paged in\n"
+msgstr "%13lu K поділених на Ñторінки вхідних даних\n"
+
+#: src/vmstat.c:897
+#, c-format
+msgid "%13lu K paged out\n"
+msgstr "%13lu K поділених на Ñторінки вихідних даних\n"
+
+#: src/vmstat.c:898
+#, c-format
+msgid "%13lu pages swapped in\n"
+msgstr "%13lu Ñторінок завантажено\n"
+
+#: src/vmstat.c:899
+#, c-format
+msgid "%13lu pages swapped out\n"
+msgstr "%13lu Ñторінок вивантажено\n"
+
+#: src/vmstat.c:900
+#, c-format
+msgid "%13lu interrupts\n"
+msgstr "%13lu переривань\n"
+
+#: src/vmstat.c:901
+#, c-format
+msgid "%13lu CPU context switches\n"
+msgstr "%13lu перемикачів контекÑту процеÑора\n"
+
+#: src/vmstat.c:902
+#, c-format
+msgid "%13lu boot time\n"
+msgstr "%13lu Ñ‡Ð°Ñ Ð· моменту завантаженнÑ\n"
+
+#: src/vmstat.c:903 src/vmstat.c:921
+#, c-format
+msgid "%13lu forks\n"
+msgstr "%13lu відгалужень\n"
+
+#. Translation Hint: do not change argument characters
+#: src/vmstat.c:1024
+msgid "-S requires k, K, m or M (default is KiB)"
+msgstr "Ð´Ð»Ñ -S Ñлід вказати k, K, m або M (типовою одиницею Ñ” КіБ)"
+
+#: src/watch.c:94
+#, c-format
+msgid " %s [options] command\n"
+msgstr " %s [параметри] команда\n"
+
+#: src/watch.c:96
+msgid " -b, --beep beep if command has a non-zero exit\n"
+msgstr ""
+" -b, --beep гудок, Ñкщо Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ завершуєтьÑÑ "
+"ненульовим Ñтаном\n"
+
+#: src/watch.c:97
+msgid " -c, --color interpret ANSI color and style sequences\n"
+msgstr ""
+" -c, --color оброблÑти поÑлідовноÑÑ‚Ñ– Ñимволів ANSI Ð´Ð»Ñ ÐºÐ¾Ð»ÑŒÐ¾Ñ€Ñ–Ð² "
+"Ñ– Ñтилю\n"
+
+#: src/watch.c:98
+msgid ""
+" -C, --no-color do not interpret ANSI color and style sequences\n"
+msgstr ""
+" -C, --no-color не оброблÑти поÑлідовноÑÑ‚Ñ– Ñимволів ANSI Ð´Ð»Ñ "
+"кольорів Ñ– Ñтилю\n"
+
+#: src/watch.c:99
+msgid ""
+" -d, --differences[=<permanent>]\n"
+" highlight changes between updates\n"
+msgstr ""
+" -d, --differences[=<ÑталіÑÑ‚ÑŒ>]\n"
+" позначати відмінноÑÑ‚Ñ– між оновленнÑми\n"
+
+#: src/watch.c:101
+msgid " -e, --errexit exit if command has a non-zero exit\n"
+msgstr ""
+" -e, --errexit вийти, Ñкщо Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ завершуєтьÑÑ "
+"ненульовим Ñтаном\n"
+
+#: src/watch.c:102
+msgid " -g, --chgexit exit when output from command changes\n"
+msgstr ""
+" -g, --chgexit вийти, Ñкщо змінюютьÑÑ Ð´Ð°Ð½Ñ–, виведені командою\n"
+
+#: src/watch.c:103
+msgid ""
+" -q, --equexit <cycles>\n"
+" exit when output from command does not change\n"
+msgstr ""
+" -q, --equexit <цикли>\n"
+" вийти, Ñкщо Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð· командного Ñ€Ñдка не "
+"змінюєтьÑÑ\n"
+
+#: src/watch.c:105
+msgid " -n, --interval <secs> seconds to wait between updates\n"
+msgstr " -n, --interval <чиÑло> кількіÑÑ‚ÑŒ Ñекунд Ð¾Ñ‡Ñ–ÐºÑƒÐ²Ð°Ð½Ð½Ñ Ð¼Ñ–Ð¶ оновленнÑми\n"
+
+#: src/watch.c:106
+msgid " -p, --precise attempt run command in precise intervals\n"
+msgstr ""
+" -p, --precise намагатиÑÑ Ð²Ð¸ÐºÐ¾Ð½ÑƒÐ²Ð°Ñ‚Ð¸ команду з точними проміжками\n"
+
+#: src/watch.c:107
+msgid " -r, --no-rerun do not rerun program on window resize\n"
+msgstr ""
+" -r, --no-rerun не перезапуÑкати програми при зміні розмірів вікна\n"
+
+#: src/watch.c:108
+msgid " -t, --no-title turn off header\n"
+msgstr " -t, --no-title вимкнути заголовок\n"
+
+#: src/watch.c:109
+msgid " -w, --no-wrap turn off line wrapping\n"
+msgstr " -w, --no-wrap вимкнути перенеÑÐµÐ½Ð½Ñ Ñ€Ñдків\n"
+
+#: src/watch.c:110
+msgid " -x, --exec pass command to exec instead of \"sh -c\"\n"
+msgstr " -x, --exec передати команду exec, а не \"sh -c\"\n"
+
+#: src/watch.c:113
+msgid " -v, --version output version information and exit\n"
+msgstr " -v, --version вивеÑти інформацію про верÑÑ–ÑŽ та вийти\n"
+
+#: src/watch.c:485
+#, c-format
+msgid "Every %.1fs: "
+msgstr "Кожні %.1f Ñ: "
+
+#: src/watch.c:486
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: src/watch.c:575
+msgid "unable to create IPC pipes"
+msgstr "не вдалоÑÑ Ñтворити канали IPC"
+
+#: src/watch.c:585
+msgid "unable to fork process"
+msgstr "не вдалоÑÑ Ñ€Ð¾Ð·Ð³Ð°Ð»ÑƒÐ·Ð¸Ñ‚Ð¸ процеÑ"
+
+#: src/watch.c:590
+msgid "dup2 failed"
+msgstr "помилка dup2"
+
+#: src/watch.c:597
+#, c-format
+msgid "unable to execute '%s'"
+msgstr "не вдалоÑÑ Ð²Ð¸ÐºÐ¾Ð½Ð°Ñ‚Ð¸ «%s»"
+
+#: src/watch.c:614
+msgid "fdopen"
+msgstr "fdopen"
+
+#: src/watch.c:788
+msgid "waitpid"
+msgstr "waitpid"
+
+#: src/watch.c:796
+msgid "command exit with a non-zero status, press a key to exit"
+msgstr ""
+"Ð²Ð¸ÐºÐ¾Ð½Ð°Ð½Ð½Ñ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð¸ завершено з ненульовим Ð¿Ð¾Ð²Ñ–Ð´Ð¾Ð¼Ð»ÐµÐ½Ð½Ñ Ñ‰Ð¾Ð´Ð¾ Ñтану, натиÑніть "
+"клавішу, щоб завершити роботу"
+
+#: src/watch.c:863
+msgid "Could not parse interval from WATCH_INTERVAL"
+msgstr "Ðе вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ інтервал з WATCH_INTERVAL"
+
+#: src/watch.c:954
+#, c-format
+msgid "unicode handling error\n"
+msgstr "помилка обробки unicode\n"
+
+#: src/watch.c:960
+#, c-format
+msgid "unicode handling error (malloc)\n"
+msgstr "помилка обробки unicode (malloc)\n"
+
+#: src/w.c:289 src/w.c:304
+#, c-format
+msgid " %2lludays"
+msgstr " %2lluднів"
+
+#. Translation Hint: Minutes:Seconds
+#. Translation Hint: Hours:Minutes
+#: src/w.c:298 src/w.c:308
+#, c-format
+msgid " %2llu:%02um"
+msgstr " %2llu:%02uхв"
+
+#. Translation Hint: Seconds:Centiseconds
+#: src/w.c:316
+#, c-format
+msgid " %2llu.%02us"
+msgstr " %2llu.%02uÑ"
+
+#: src/w.c:656
+#, c-format
+msgid " %s [options] [user]\n"
+msgstr " %s [параметри] [кориÑтувач]\n"
+
+#: src/w.c:658
+msgid " -h, --no-header do not print header\n"
+msgstr " -h, --no-header не виводити заголовок\n"
+
+#: src/w.c:659
+msgid " -u, --no-current ignore current process username\n"
+msgstr " -u, --no-current ігнорувати Ñ–Ð¼â€™Ñ ÐºÐ¾Ñ€Ð¸Ñтувача поточного процеÑу\n"
+
+#: src/w.c:660
+msgid " -s, --short short format\n"
+msgstr " -s, --short Ñкорочений формат\n"
+
+#: src/w.c:661
+msgid " -f, --from show remote hostname field\n"
+msgstr " -f, --from вивеÑти поле назви віддаленого вузла\n"
+
+#: src/w.c:662
+msgid " -o, --old-style old style output\n"
+msgstr " -o, --old-style Ð²Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ Ð´Ð°Ð½Ð¸Ñ… у заÑтарілому форматі\n"
+
+#: src/w.c:663
+msgid ""
+" -i, --ip-addr display IP address instead of hostname (if possible)\n"
+msgstr ""
+" -i, --ip-addr виводити IP-адреÑу заміÑÑ‚ÑŒ назви вузла (Ñкщо можна)\n"
+
+#: src/w.c:664
+msgid " -p, --pids show the PID(s) of processes in WHAT\n"
+msgstr " -p, --pids вивеÑти ідентифікатори процеÑів у WHAT\n"
+
+#: src/w.c:763
+#, c-format
+msgid ""
+"User length environment PROCPS_USERLEN must be between 8 and %i, ignoring.\n"
+msgstr ""
+"Ð—Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¸ Ð´Ð»Ñ Ñередовища кориÑтувача, PROCPS_USERLEN, має належати "
+"діапазону від 8 до %i, ігноруємо.\n"
+
+#: src/w.c:773
+#, c-format
+msgid ""
+"from length environment PROCPS_FROMLEN must be between 8 and %d, ignoring\n"
+msgstr ""
+"Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð´Ð¾Ð²Ð¶Ð¸Ð½Ð¸ вхідних даних Ñередовища, PROCPS_FROMLEN, має бути від 8 до "
+"%d, ігноруємо\n"
+
+#. Translation Hint: Following five uppercase messages are
+#. * headers. Try to keep alignment intact.
+#: src/w.c:799
+#, c-format
+msgid "%-*s TTY "
+msgstr "%-*s TTY "
+
+#: src/w.c:801
+msgid "FROM"
+msgstr "З"
+
+#: src/w.c:803
+#, c-format
+msgid " LOGIN@ IDLE JCPU PCPU WHAT\n"
+msgstr " LOGIN@ IDLE JCPU PCPU WHAT\n"
+
+#: src/w.c:805
+#, c-format
+msgid " IDLE WHAT\n"
+msgstr " IDLE WHAT\n"
+
+#: src/w.c:815
+msgid "error getting sessions"
+msgstr "помилка під Ñ‡Ð°Ñ Ñпроби Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ð½Ð½Ñ ÑпиÑку ÑеанÑів"
+
+#: src/w.c:823
+msgid "get user name failed"
+msgstr "не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ ім'Ñ ÐºÐ¾Ñ€Ð¸Ñтувача"
+
+#: local/c.h:153
+msgid ""
+"\n"
+"Usage:\n"
+msgstr ""
+"\n"
+"КориÑтуваннÑ:\n"
+
+#: local/c.h:154
+msgid ""
+"\n"
+"Options:\n"
+msgstr ""
+"\n"
+"Параметри:\n"
+
+#: local/c.h:155
+msgid "\n"
+msgstr "\n"
+
+#: local/c.h:156
+msgid " -h, --help display this help and exit\n"
+msgstr " -h, --help вивеÑти довідку та завершити роботу\n"
+
+#: local/c.h:157
+msgid " -V, --version output version information and exit\n"
+msgstr " -V, --version вивеÑти інформацію щодо верÑÑ–Ñ— Ñ– вийти\n"
+
+#: local/c.h:158
+#, c-format
+msgid ""
+"\n"
+"For more details see %s.\n"
+msgstr ""
+"\n"
+"Докладніший Ð¾Ð¿Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð° знайти у %s.\n"
+
+#: local/c.h:160
+#, c-format
+msgid "%s from %s\n"
+msgstr "%s з %s\n"
+
+#~ msgid ""
+#~ "inappropriate '%s'\n"
+#~ "Usage:\n"
+#~ " %s%s"
+#~ msgstr ""
+#~ "неналежне «%s»\n"
+#~ "КориÑтуваннÑ:\n"
+#~ " %s%s"
+
+#~ msgid "error: not enough memory\n"
+#~ msgstr "помилка: недоÑтатньо пам’ÑÑ‚Ñ–\n"
+
+#~ msgid "error: can not access /proc\n"
+#~ msgstr "помилка: не вдалоÑÑ Ð¾Ñ‚Ñ€Ð¸Ð¼Ð°Ñ‚Ð¸ доÑтуп до /proc\n"
+
+#~ msgid "something at line %d\n"
+#~ msgstr "щоÑÑŒ у Ñ€Ñдку %d\n"
+
+#~ msgid "\"%s\" must be of the form name=value"
+#~ msgstr "«%s» Ñлід вказувати у форматі назва=значеннÑ"
+
+#~ msgid "malformed setting \"%s\""
+#~ msgstr "помилкове Ñ„Ð¾Ñ€Ð¼Ð°Ñ‚ÑƒÐ²Ð°Ð½Ð½Ñ Ð¿Ð°Ñ€Ð°Ð¼ÐµÑ‚Ñ€Ð° «%s»"
+
+#~ msgid "%s is deprecated, value not set"
+#~ msgstr "%s Ñ” заÑтарілим, Ð·Ð½Ð°Ñ‡ÐµÐ½Ð½Ñ Ð½Ðµ вÑтановлено"
+
+#~ msgid ""
+#~ " %s\n"
+#~ "Usage:\n"
+#~ " %s%s"
+#~ msgstr ""
+#~ " %s\n"
+#~ "КориÑтуваннÑ:\n"
+#~ " %s%s"
+
+#~ msgid "failed openproc: %s"
+#~ msgstr "помилка openproc: %s"
+
+#~ msgid "-%c requires argument"
+#~ msgstr "-%c потребує аргументу"
+
+#~ msgid ""
+#~ " -hv | -bcEeHiOSs1 -d secs -n max -u|U user -p pid(s) -o field -w [cols]"
+#~ msgstr ""
+#~ " -hv | -bcEeHiOSs1 -d Ñек. -n макÑ. -u|U кориÑтувач -p pid -o поле -w "
+#~ "[Ñтовпчики]"
+
+#~ msgid "failed /proc/stat read"
+#~ msgstr "помилка Ñ‡Ð¸Ñ‚Ð°Ð½Ð½Ñ /proc/stat"
+
+#~ msgid "terminal is not wide enough"
+#~ msgstr "термінал Ñ” недоÑтатньо широким"
+
+#~ msgid ""
+#~ " k,r Manipulate tasks: '~1k~2' kill; '~1r~2' renice\n"
+#~ " d or s Set update interval\n"
+#~ msgstr ""
+#~ " k,r Керувати завданнÑми: «~1k~2» — завершити; «~1r~2» — змінити "
+#~ "пріоритетніÑÑ‚ÑŒ\n"
+#~ " d або s Ð’Ñтановити інтервал оновленнÑ\n"
+
+#~ msgid ""
+#~ "%s~3 %#5.1f ~2user,~3 %#5.1f ~2system,~3 %#5.1f ~2nice,~3 %#5.1f "
+#~ "~2idle~3"
+#~ msgstr ""
+#~ "%s~3 %#5.1f ~2кор.,~3 %#5.1f ~2ÑиÑÑ‚.,~3 %#5.1f ~2упод.,~3 %#5.1f "
+#~ "~2безд.~3"
+
+#~ msgid ""
+#~ "%s~3 %#5.1f ~2user,~3 %#5.1f ~2system,~3 %#5.1f ~2nice,~3 %#5.1f "
+#~ "~2idle,~3 %#5.1f ~2IO-wait~3"
+#~ msgstr ""
+#~ "%s~3 %#5.1f ~2кор.,~3 %#5.1f ~2ÑиÑтема,~3 %#5.1f ~2упод.,~3 %#5.1f "
+#~ "~2безд,~3 %#5.1f ~2IO-очік.~3"
+
+#~ msgid "your kernel does not support diskstat. (2.5.70 or above required)"
+#~ msgstr ""
+#~ "у Ñдрі вашої ÑиÑтеми не передбачено підтримки diskstat. (Потрібне Ñдро "
+#~ "2.5.70 або новіше)"
+
+#~ msgid "your kernel does not support diskstat (2.5.70 or above required)"
+#~ msgstr ""
+#~ "у Ñдрі вашої ÑиÑтеми не передбачено підтримки diskstat (Потрібне Ñдро "
+#~ "2.5.70 або новіше)"
+
+#~ msgid ""
+#~ "your kernel does not support slabinfo or your permissions are insufficient"
+#~ msgstr ""
+#~ "у Ñдрі вашої ÑиÑтеми не передбачено підтримки slabinfo або у Ð²Ð°Ñ "
+#~ "недоÑтатні права доÑтупу"
+
+#~ msgid ""
+#~ " --ns <PID> match the processes that belong to the same\n"
+#~ " namespace as <pid> or 0 for all namespaces\n"
+#~ msgstr ""
+#~ " --ns <PID> відповідніÑÑ‚ÑŒ процеÑам, що належать тому "
+#~ "Ñамому\n"
+#~ " проÑтору назв, що Ñ– <pid> або 0 Ð´Ð»Ñ ÑƒÑÑ–Ñ… "
+#~ "проÑторів назв\n"
+
+#~ msgid "unknown page size (assume 4096)\n"
+#~ msgstr "невідомий розмір Ñторінки (припуÑкаємо 4096)\n"
+
+#~ msgid "Overwrite existing obsolete/corrupted rcfile?"
+#~ msgstr "ПерезапиÑати наÑвний заÑтарілий або пошкоджений файл rc?"
+
+#~ msgid "reads "
+#~ msgstr "чит. "
+
+#~ msgid "seconds argument `%s' failed"
+#~ msgstr "помилка аргументу Ñекунд, «%s»"
+
+#~ msgid "alternate System.map file must follow -n"
+#~ msgstr "піÑÐ»Ñ -n має бути вказано альтернативний файл System.map"
+
+#~ msgid "alternate System.map file must follow N"
+#~ msgstr "піÑÐ»Ñ N має бути вказано альтернативний файл System.map"
+
+#~ msgid "Adj"
+#~ msgstr "Adj"
+
+#~ msgid "oom_adjustment (2^X)"
+#~ msgstr "oom_adjustment (2^X)"
+
+#~ msgid "Badness"
+#~ msgstr "Badness"
+
+#~ msgid "oom_score (badness)"
+#~ msgstr "oom_score (помилковіÑÑ‚ÑŒ)"
+
+#~ msgid "%d column window is too narrow"
+#~ msgstr "вікно у %d Ñтовпчиків Ñ” надто вузьким"
+
+#~ msgid "%d column width exceeds command buffer size, truncating to %d"
+#~ msgstr "ширина у %d перевищує розмір буфера команд, зменшуємо її до %d"
+
+#~ msgid "warning: screen width %d suboptimal"
+#~ msgstr "попередженнÑ: ширина екрана %d не Ñ” оптимальною"
+
+#~ msgid ""
+#~ " -o, --old use old format (without -/+buffers/cache line)\n"
+#~ msgstr ""
+#~ " -o, --old викориÑтовувати заÑтарілий формат (без Ñ€Ñдка -/"
+#~ "+буфери/кеш)\n"
+
+#~ msgid "-/+ buffers/cache:"
+#~ msgstr "-/+ буфери/кеш:"
+
+#~ msgid "Nothing to highlight!"
+#~ msgstr "Ðічого підÑвічувати!"
+
+#~ msgid "could not parse rcfile inspect entry %d"
+#~ msgstr "не вдалоÑÑ Ð¾Ð±Ñ€Ð¾Ð±Ð¸Ñ‚Ð¸ Ð·Ð°Ð¿Ð¸Ñ Ñ–Ð½ÑÐ¿ÐµÐºÑ‚ÑƒÐ²Ð°Ð½Ð½Ñ %d з файла rc"
diff --git a/po/vi.gmo b/po/vi.gmo
new file mode 100644
index 0000000..094ce65
--- /dev/null
+++ b/po/vi.gmo
Binary files differ
diff --git a/po/vi.po b/po/vi.po
new file mode 100644
index 0000000..6b360b2
--- /dev/null
+++ b/po/vi.po
@@ -0,0 +1,5067 @@
+# Vietnamese translations for procps-ng package
+# Bản dịch Tiếng Việt dành cho gói procps-ng.
+# Copyright (C) 2014 Free Software Foundation, Inc.
+# This file is distributed under the same license as the procps-ng package.
+# Trần Ngá»c Quân <vnwildman@gmail.com>, 2014.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: procps-ng 3.3.10-rc1\n"
+"Report-Msgid-Bugs-To: procps@freelists.org\n"
+"POT-Creation-Date: 2023-08-19 17:38+1000\n"
+"PO-Revision-Date: 2014-09-13 08:57+0700\n"
+"Last-Translator: Trần Ngá»c Quân <vnwildman@gmail.com>\n"
+"Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n"
+"Language: vi\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Poedit-Basepath: ../\n"
+
+#: local/fileutils.c:38
+msgid "write error"
+msgstr "lá»—i ghi"
+
+#: src/free.c:74 src/slabtop.c:106 src/uptime.c:65
+#, c-format
+msgid " %s [options]\n"
+msgstr " %s [các tùy chá»n]\n"
+
+#: src/free.c:76
+msgid " -b, --bytes show output in bytes\n"
+msgstr " -b, --bytes hiển thị kết xuất theo đơn vị byte\n"
+
+#: src/free.c:77
+#, fuzzy
+msgid " --kilo show output in kilobytes\n"
+msgstr " -k, --kilo hiển thị kết xuất theo đơn vị kilobytes\n"
+
+#: src/free.c:78
+#, fuzzy
+msgid " --mega show output in megabytes\n"
+msgstr " -m, --mega hiển thị kết xuất theo đơn vị megabytes\n"
+
+#: src/free.c:79
+#, fuzzy
+msgid " --giga show output in gigabytes\n"
+msgstr " -g, --giga hiển thị kết xuất theo đơn vị gigabytes\n"
+
+#: src/free.c:80
+msgid " --tera show output in terabytes\n"
+msgstr " --tera hiển thị kết xuất theo đơn vị terabytes\n"
+
+#: src/free.c:81
+#, fuzzy
+msgid " --peta show output in petabytes\n"
+msgstr " --tera hiển thị kết xuất theo đơn vị terabytes\n"
+
+#: src/free.c:82
+#, fuzzy
+msgid " -k, --kibi show output in kibibytes\n"
+msgstr " -k, --kilo hiển thị kết xuất theo đơn vị kilobytes\n"
+
+#: src/free.c:83
+#, fuzzy
+msgid " -m, --mebi show output in mebibytes\n"
+msgstr " -m, --mega hiển thị kết xuất theo đơn vị megabytes\n"
+
+#: src/free.c:84
+#, fuzzy
+msgid " -g, --gibi show output in gibibytes\n"
+msgstr " -g, --giga hiển thị kết xuất theo đơn vị gigabytes\n"
+
+#: src/free.c:85
+#, fuzzy
+msgid " --tebi show output in tebibytes\n"
+msgstr " --tera hiển thị kết xuất theo đơn vị terabytes\n"
+
+#: src/free.c:86
+#, fuzzy
+msgid " --pebi show output in pebibytes\n"
+msgstr " --tera hiển thị kết xuất theo đơn vị terabytes\n"
+
+#: src/free.c:87
+msgid " -h, --human show human-readable output\n"
+msgstr " -h, --human hiển thị ở dạng cho con ngÆ°á»i Ä‘á»c\n"
+
+#: src/free.c:88
+msgid " --si use powers of 1000 not 1024\n"
+msgstr " --si dùng lũy thừa của 1000 không phải 1024\n"
+
+#: src/free.c:89
+msgid " -l, --lohi show detailed low and high memory statistics\n"
+msgstr " -l, --lohi hiển thị thống kê chi tiết bộ nhớ thấp và cao\n"
+
+#: src/free.c:90
+#, fuzzy
+msgid " -L, --line show output on a single line\n"
+msgstr " -k, --kilo hiển thị kết xuất theo đơn vị kilobytes\n"
+
+#: src/free.c:91
+msgid " -t, --total show total for RAM + swap\n"
+msgstr " -t, --total hiển thị tổng số cho RAM + swap\n"
+
+#: src/free.c:92
+msgid " -v, --committed show committed memory and commit limit\n"
+msgstr ""
+
+#: src/free.c:93
+msgid " -s N, --seconds N repeat printing every N seconds\n"
+msgstr " -s N, --seconds N in lặp lại sau mỗi N giây\n"
+
+#: src/free.c:94
+msgid " -c N, --count N repeat printing N times, then exit\n"
+msgstr " -c N, --count N in lặp lại N lần rồi thoát\n"
+
+#: src/free.c:95
+msgid " -w, --wide wide output\n"
+msgstr " -w, --wide kết xuất rộng\n"
+
+#: src/free.c:97 src/w.c:666
+msgid " --help display this help and exit\n"
+msgstr " --help hiển thị trợ giúp này rồi thoát\n"
+
+#: src/free.c:172
+msgid "Multiple unit options don't make sense."
+msgstr ""
+
+#: src/free.c:341
+#, c-format
+msgid "seconds argument `%s' is not positive number"
+msgstr "đối số thứ hai “%s†không phải là số nguyên dương"
+
+#: src/free.c:347
+msgid "failed to parse count argument"
+msgstr "gặp lỗi khi phân tích số lượng đối số"
+
+#: src/free.c:350
+#, c-format
+msgid "failed to parse count argument: '%s'"
+msgstr "gặp lá»—i khi phân tích số lượng đối số: “%sâ€"
+
+#: src/free.c:370
+msgid "Memory information file /proc/meminfo does not exist"
+msgstr ""
+
+#: src/free.c:373 src/vmstat.c:378 src/vmstat.c:872
+#, fuzzy
+msgid "Unable to create meminfo structure"
+msgstr "không thể tạo Ä‘Æ°á»ng ống IPC"
+
+#. Translation Hint: These are shortened column headers
+#. * that are all 7 characters long. Use spaces and right
+#. * align if the translation is shorter.
+#.
+#: src/free.c:381
+#, fuzzy
+msgid "SwapUse"
+msgstr "TÄổi"
+
+#: src/free.c:382
+#, fuzzy
+msgid "CachUse"
+msgstr "Nhớ tạm"
+
+#: src/free.c:384
+msgid " MemUse"
+msgstr ""
+
+#: src/free.c:385
+msgid "MemFree"
+msgstr ""
+
+#: src/free.c:395
+#, fuzzy, c-format
+msgid ""
+" total used free shared buffers "
+"cache available"
+msgstr ""
+" tổng dùng trống chsẻ đệm nhớ "
+"tạm sẵn sàng"
+
+#: src/free.c:397
+#, fuzzy, c-format
+msgid ""
+" total used free shared buff/cache "
+"available"
+msgstr ""
+" tổng dùng trống chsẻ đệm/tạm sẵn "
+"sàng"
+
+#: src/free.c:400
+msgid "Mem:"
+msgstr "BNhá»›:"
+
+#: src/free.c:423
+msgid "Low:"
+msgstr "Thấp:"
+
+#: src/free.c:429
+msgid "High:"
+msgstr "Cao:"
+
+#: src/free.c:436
+msgid "Swap:"
+msgstr "Tráo đổi:"
+
+#: src/free.c:443
+msgid "Total:"
+msgstr "Tổng:"
+
+#: src/free.c:456
+msgid "Comm:"
+msgstr ""
+
+#: src/kill.c:40
+#, c-format
+msgid " %s [options] <pid> [...]\n"
+msgstr " %s [các-tùy-chá»n] <pid> [...]\n"
+
+#: src/kill.c:42
+msgid " <pid> [...] send signal to every <pid> listed\n"
+msgstr ""
+" <pid> [...] gá»­i tín hiệu cho má»i mã số tiến trình đã liệt kê\n"
+
+#: src/kill.c:43
+msgid ""
+" -<signal>, -s, --signal <signal>\n"
+" specify the <signal> to be sent\n"
+msgstr ""
+" -<signal>, -s, --signal <tín_hiệu>\n"
+" chỉ định tín hiệu sẽ được gửi\n"
+
+#: src/kill.c:45
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr ""
+
+#: src/kill.c:46
+msgid ""
+" -l, --list=[<signal>] list all signal names, or convert one to a name\n"
+msgstr ""
+" -l, --list=[<tín_hiệu>] lệt kê tất cả tên tín hiệu, hoặc chuyển đổi một "
+"cái thành tên\n"
+
+#: src/kill.c:47
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr " -L, --table liệt kê má»i tên tín hiệu trong bản nice\n"
+
+#: src/kill.c:112
+#, c-format
+msgid "unknown signal name %s"
+msgstr "không hiểu tên tín hiệu: %s"
+
+#: src/kill.c:131
+msgid "must be an integer value to be passed with the signal."
+msgstr ""
+
+#: src/kill.c:136
+#, c-format
+msgid "invalid argument %c"
+msgstr "đối số %c không hợp lệ"
+
+#: src/kill.c:146 src/pgrep.c:792 src/pidof.c:250 src/pidof.c:290
+#: src/sysctl.c:867
+msgid "internal error"
+msgstr "lá»—i ná»™i bá»™"
+
+#: src/kill.c:158 src/pmap.c:771 src/pmap.c:786 src/skill.c:381 src/skill.c:465
+#: src/tload.c:135 src/tload.c:140 src/vmstat.c:1047 src/vmstat.c:1057
+#: src/watch.c:891 src/watch.c:906
+msgid "failed to parse argument"
+msgstr "gặp lỗi khi phân tích đối số"
+
+#: src/pgrep.c:92 src/pidof.c:40 src/skill.c:74
+#, fuzzy
+msgid "integer overflow"
+msgstr "lá»—i ná»™i bá»™"
+
+#: src/pgrep.c:155
+#, c-format
+msgid " %s [options] <pattern>\n"
+msgstr " %s [các-tùy-chá»n] <mẫu_tìm_kiếm>\n"
+
+#: src/pgrep.c:159
+msgid " -d, --delimiter <string> specify output delimiter\n"
+msgstr ""
+" -d, --delimiter <chuỗi> chỉ định chuỗi ngăn cách dùng cho kết xuất\n"
+
+#: src/pgrep.c:160
+msgid " -l, --list-name list PID and process name\n"
+msgstr " -l, --list-name liệt kê tên và mã số tiến trình\n"
+
+#: src/pgrep.c:161
+msgid " -a, --list-full list PID and full command line\n"
+msgstr ""
+" -l, --list-name liệt kê mã số tiến trình và toàn bộ dòng lệnh\n"
+
+#: src/pgrep.c:162
+msgid " -v, --inverse negates the matching\n"
+msgstr " -v, --inverse đảo ngÆ°á»i những cái khá»›p mẫu\n"
+
+#: src/pgrep.c:163
+msgid " -w, --lightweight list all TID\n"
+msgstr " -w, --lightweight liệt kê má»i TID\n"
+
+#: src/pgrep.c:166
+#, fuzzy
+msgid " -<sig> signal to send (either number or name)\n"
+msgstr ""
+" -<sig>, --signal <sig> tín hiệu để gửi đi (hoặc là số hoặc là tên)\n"
+
+#: src/pgrep.c:167
+msgid " -H, --require-handler match only if signal handler is present\n"
+msgstr ""
+
+#: src/pgrep.c:168
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr ""
+
+#: src/pgrep.c:169
+msgid " -e, --echo display what is killed\n"
+msgstr " -e, --echo hiển thị cái gì bị giết\n"
+
+#: src/pgrep.c:173
+#, fuzzy
+msgid " -e, --echo display PIDs before waiting\n"
+msgstr " -e, --echo hiển thị cái gì bị giết\n"
+
+#: src/pgrep.c:177
+msgid " -c, --count count of matching processes\n"
+msgstr " -c, --count đếm số tiến trình khớp\n"
+
+#: src/pgrep.c:178
+msgid " -f, --full use full process name to match\n"
+msgstr " -f, --full dùng khớp toàn bộ tên tiến trình\n"
+
+#: src/pgrep.c:179
+msgid " -g, --pgroup <PGID,...> match listed process group IDs\n"
+msgstr " -g, --pgroup <PGID,...> khớp với mã số nhóm tiến trình\n"
+
+#: src/pgrep.c:180
+msgid " -G, --group <GID,...> match real group IDs\n"
+msgstr " -G, --group <GID,...> khớp với mã số thật của nhóm\n"
+
+#: src/pgrep.c:181
+msgid " -i, --ignore-case match case insensitively\n"
+msgstr ""
+
+#: src/pgrep.c:182
+msgid " -n, --newest select most recently started\n"
+msgstr " -n, --newest chá»n cái khởi chạy gần đây nhất\n"
+
+#: src/pgrep.c:183
+msgid " -o, --oldest select least recently started\n"
+msgstr " -o, --oldest chá»n cái khởi chạy xa đây nhất\n"
+
+#: src/pgrep.c:184
+#, fuzzy
+msgid " -O, --older <seconds> select where older than seconds\n"
+msgstr " -d, --delay <giây> trễ cập nhật trong số giây này\n"
+
+#: src/pgrep.c:185
+msgid ""
+" -P, --parent <PPID,...> match only child processes of the given parent\n"
+msgstr " -P, --parent <PPID,...> khớp với con của tiến trình đã cho\n"
+
+#: src/pgrep.c:186
+msgid " -s, --session <SID,...> match session IDs\n"
+msgstr " -s, --session <SID,...> khớp mã phiên\n"
+
+#: src/pgrep.c:187
+#, fuzzy
+msgid " --signal <sig> signal to send (either number or name)\n"
+msgstr ""
+" -<sig>, --signal <sig> tín hiệu để gửi đi (hoặc là số hoặc là tên)\n"
+
+#: src/pgrep.c:188
+msgid " -t, --terminal <tty,...> match by controlling terminal\n"
+msgstr " -t, --terminal <tty,...> khá»›p bằng thiết bị cuối Ä‘iá»u khiển\n"
+
+#: src/pgrep.c:189
+msgid " -u, --euid <ID,...> match by effective IDs\n"
+msgstr " -u, --euid <ID,...> khớp với mã số chịu tác động\n"
+
+#: src/pgrep.c:190
+msgid " -U, --uid <ID,...> match by real IDs\n"
+msgstr " -U, --uid <ID,...> khớp với mã số thật\n"
+
+#: src/pgrep.c:191
+msgid " -x, --exact match exactly with the command name\n"
+msgstr " -x, --exact chỉ khớp chính xác tên lệnh\n"
+
+#: src/pgrep.c:192
+msgid " -F, --pidfile <file> read PIDs from file\n"
+msgstr " -F, --pidfile <tập-tin> Ä‘á»c mã số tiến trình từ tập tin\n"
+
+#: src/pgrep.c:193
+msgid " -L, --logpidfile fail if PID file is not locked\n"
+msgstr ""
+" -L, --logpidfile lỗi nếu tập-tin mã số tiến trình không bị khóa\n"
+
+#: src/pgrep.c:194
+msgid " -r, --runstates <state> match runstates [D,S,Z,...]\n"
+msgstr ""
+
+#: src/pgrep.c:195
+msgid " -A, --ignore-ancestors exclude our ancestors from results\n"
+msgstr ""
+
+#: src/pgrep.c:196
+#, fuzzy
+msgid " --cgroup <grp,...> match by cgroup v2 names\n"
+msgstr " -G, --group <GID,...> khớp với mã số thật của nhóm\n"
+
+#: src/pgrep.c:197
+msgid ""
+" --ns <PID> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+" --ns <PID> khớp tiến trình mà nó cùng không gian tên với\n"
+" tiến trình có mã số này\n"
+
+#: src/pgrep.c:199
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option.\n"
+" Available namespaces: ipc, mnt, net, pid, user, "
+"uts\n"
+msgstr ""
+" --nslist <ns,...> liệt kê không gian tên nào sẽ được xem xét cho\n"
+" tùy chá»n --ns. Không gian tên sẵn có là:\n"
+" ipc, mnt, net, pid, user, uts\n"
+
+#: src/pgrep.c:224 src/pgrep.c:700 src/w.c:455
+#, fuzzy
+msgid "Unable to create pid info structure"
+msgstr "không thể tạo Ä‘Æ°á»ng ống IPC"
+
+#: src/pgrep.c:388
+#, c-format
+msgid "invalid user name: %s"
+msgstr "tên ngÆ°á»i dùng không hợp lệ: %s"
+
+#: src/pgrep.c:405
+#, c-format
+msgid "invalid group name: %s"
+msgstr "tên nhóm không hợp lệ: %s"
+
+#: src/pgrep.c:416
+#, c-format
+msgid "invalid process group: %s"
+msgstr "nhóm tiến trình không hợp lệ: %s"
+
+#: src/pgrep.c:428
+#, c-format
+msgid "invalid session id: %s"
+msgstr "mã số phiên làm việc không hợp lệ: %s"
+
+#: src/pgrep.c:440
+#, c-format
+msgid "not a number: %s"
+msgstr "không phải con số: %s"
+
+#: src/pgrep.c:490
+#, fuzzy, c-format
+msgid "not a hex string: %s"
+msgstr "không phải con số: %s"
+
+#: src/pgrep.c:525 src/skill.c:162
+#, fuzzy
+msgid "Unable to read process namespace information"
+msgstr "lá»—i Ä‘á»c thông tin không gian tên tham chiếu"
+
+#: src/pgrep.c:612
+#, fuzzy, c-format
+msgid "regex error: %s"
+msgstr "lá»—i: %s\n"
+
+#: src/pgrep.c:695
+msgid "Error reading reference namespace information\n"
+msgstr "Gặp lá»—i khi Ä‘á»c thông tin tham chiếu không gian tên\n"
+
+#: src/pgrep.c:809
+#, c-format
+msgid ""
+"pattern that searches for process name longer than 15 characters will result "
+"in zero matches\n"
+"Try `%s -f' option to match against the complete command line."
+msgstr ""
+
+#: src/pgrep.c:924
+#, fuzzy, c-format
+msgid "Unknown signal \"%s\"."
+msgstr "không hiểu tên tín hiệu: %s"
+
+#: src/pgrep.c:1090
+#, c-format
+msgid ""
+"-L without -F makes no sense\n"
+"Try `%s --help' for more information."
+msgstr ""
+"-L mà không có -F là không hợp lý\n"
+"Chạy “%s --help†để biết thêm chi tiết."
+
+#: src/pgrep.c:1097
+#, c-format
+msgid ""
+"pidfile not valid\n"
+"Try `%s --help' for more information."
+msgstr ""
+"tập tin mã số tiến trình không hợp lệ\n"
+"Chạy “%s --help†để biết thêm chi tiết."
+
+#: src/pgrep.c:1106
+#, c-format
+msgid ""
+"only one pattern can be provided\n"
+"Try `%s --help' for more information."
+msgstr ""
+"chỉ được dùng một mẫu tìm kiếm\n"
+"Hãy chạy lệnh “%s --help†để có thêm thông tin."
+
+#: src/pgrep.c:1110
+#, c-format
+msgid ""
+"no matching criteria specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+"chưa chỉ định tiêu chí tìm kiếm\n"
+"Hãy chạy lệnh “%s --help†để có thêm thông tin."
+
+#: src/pgrep.c:1162
+#, c-format
+msgid "%s killed (pid %lu)\n"
+msgstr "đã giết %s (mã số tiến trình %lu)\n"
+
+#: src/pgrep.c:1169
+#, c-format
+msgid "killing pid %ld failed"
+msgstr "gặp lỗi khi giết tiến trình mã số %ld"
+
+#: src/pgrep.c:1181
+#, c-format
+msgid "waiting for %s (pid %lu)\n"
+msgstr ""
+
+#: src/pgrep.c:1185
+msgid "pidfd_open() not implemented in Linux < 5.3"
+msgstr ""
+
+#: src/pgrep.c:1188
+#, fuzzy, c-format
+msgid "opening pid %ld failed"
+msgstr "gặp lỗi khi giết tiến trình mã số %ld"
+
+#: src/pgrep.c:1202
+#, fuzzy
+msgid "epoll_wait failed"
+msgstr "gặp lỗi cấp phát bộ nhớ"
+
+#: src/pidof.c:75
+#, c-format
+msgid " %s [options] [program [...]]\n"
+msgstr " %s [các tùy chá»n] [chÆ°Æ¡ng trình [...]]\n"
+
+#: src/pidof.c:77
+msgid " -s, --single-shot return one PID only\n"
+msgstr " -s, --single-shot chỉ trả vỠmột mã số tiến trình\n"
+
+#: src/pidof.c:78
+msgid " -c, --check-root omit processes with different root\n"
+msgstr " -c, --check-root bỠqua tiến trình khác root\n"
+
+#: src/pidof.c:79
+#, fuzzy
+msgid " -q, quiet mode, only set the exit code\n"
+msgstr " -XX hiển thị má»i thứ nhân cung cấp\n"
+
+#: src/pidof.c:80
+#, fuzzy
+msgid " -w, --with-workers show kernel workers too\n"
+msgstr " -s, --short định dạng ngắn gá»n\n"
+
+#: src/pidof.c:81
+msgid " -x also find shells running the named scripts\n"
+msgstr ""
+" -x cũng tìn các hệ vỠđang chạy tên kịch bản đã cho\n"
+
+#: src/pidof.c:82
+msgid " -o, --omit-pid <PID,...> omit processes with PID\n"
+msgstr " -o, --omit-pid <PID,...> bỠqua các tiến trình có mã số này\n"
+
+#: src/pidof.c:83
+#, fuzzy
+msgid " -t, --lightweight list threads too\n"
+msgstr " -w, --lightweight liệt kê má»i TID\n"
+
+#: src/pidof.c:84
+msgid " -S, --separator SEP use SEP as separator put between PIDs"
+msgstr ""
+
+#: src/pidof.c:293
+#, c-format
+msgid "illegal omit pid value (%s)!\n"
+msgstr "giá trị mã số tiến trình bỠqua không hợp lệ (%s)!\n"
+
+#: src/pmap.c:72
+msgid "Address"
+msgstr "Äịa chỉ"
+
+#: src/pmap.c:73
+msgid "Offset"
+msgstr "Offset"
+
+#: src/pmap.c:74
+msgid "Device"
+msgstr "Thiết bị"
+
+#: src/pmap.c:75
+msgid "Mapping"
+msgstr "Ãnh xạ"
+
+#: src/pmap.c:79
+msgid "Perm"
+msgstr "Perm"
+
+#: src/pmap.c:80
+msgid "Inode"
+msgstr "Inode"
+
+#: src/pmap.c:83
+msgid "Kbytes"
+msgstr "Kbyte"
+
+#: src/pmap.c:84
+msgid "Mode"
+msgstr "Chế độ"
+
+#. Translation Hint: With the next 5 fields, notice how an extra space
+#. has been added ahead of one 'KiB' so that they all
+#. align. You need not preserve such alignment.
+#. Translation Hint: maximum 'RSS' = 6
+#: src/pmap.c:85 src/top/top_nls.c:337
+msgid "RSS"
+msgstr "RSS"
+
+#: src/pmap.c:86
+msgid "Dirty"
+msgstr "Bẩn"
+
+#: src/pmap.c:120
+#, c-format
+msgid " %s [options] PID [PID ...]\n"
+msgstr " %s [các-tùy-chá»n] PID [PID ...]\n"
+
+#: src/pmap.c:122
+msgid " -x, --extended show details\n"
+msgstr " -x, --extended hiển thị chi tiết\n"
+
+#: src/pmap.c:123
+msgid " -X show even more details\n"
+msgstr " -X hiển thị chi tiết hơn nữa\n"
+
+#: src/pmap.c:124
+msgid " WARNING: format changes according to /proc/PID/smaps\n"
+msgstr " CẢNH BÃO: định dạng thay đổi tùy theo /proc/PID/smaps\n"
+
+#: src/pmap.c:125
+msgid " -XX show everything the kernel provides\n"
+msgstr " -XX hiển thị má»i thứ nhân cung cấp\n"
+
+#: src/pmap.c:126
+msgid " -c, --read-rc read the default rc\n"
+msgstr " -c, --read-rc Ä‘á»c rc mặc định\n"
+
+#: src/pmap.c:127
+msgid " -C, --read-rc-from=<file> read the rc from file\n"
+msgstr " -C, --read-rc-from=<tập-tin> Ä‘á»c rc từ tập tin\n"
+
+#: src/pmap.c:128
+msgid " -n, --create-rc create new default rc\n"
+msgstr " -n, --create-rc tạo rc mặc định mới\n"
+
+#: src/pmap.c:129
+msgid " -N, --create-rc-to=<file> create new rc to file\n"
+msgstr " -N, --create-rc-to=<tập-tin> tạo rc mới cho tập tin\n"
+
+#: src/pmap.c:130
+msgid " NOTE: pid arguments are not allowed with -n, -N\n"
+msgstr " CHÚ Ã: đối số mã tiến trình không cho phép vá»›i -n, -N\n"
+
+#: src/pmap.c:131
+msgid " -d, --device show the device format\n"
+msgstr " -d, --device hiển thị định dạng thiết bị\n"
+
+#: src/pmap.c:132
+msgid " -q, --quiet do not display header and footer\n"
+msgstr " -q, --quiet không hiển thị phần đầu và phần chân\n"
+
+#: src/pmap.c:133
+msgid " -p, --show-path show path in the mapping\n"
+msgstr " -p, --show-path hiển thị Ä‘Æ°á»ng dẫn trong ánh xạ\n"
+
+#: src/pmap.c:134
+msgid " -A, --range=<low>[,<high>] limit results to the given range\n"
+msgstr " -A, --range=<thấp>[,<cao>] giới hạn kết quả thành vùng đã cho\n"
+
+#: src/pmap.c:215
+msgid "shared memory detach"
+msgstr "bộ nhớ chia sẻ tách ra"
+
+#: src/pmap.c:220
+msgid "shared memory remove"
+msgstr "bá»™ nhá»› chia sẻ gỡ bá»"
+
+#: src/pmap.c:245
+msgid " [ anon ]"
+msgstr " [ vô danh ]"
+
+#: src/pmap.c:248
+msgid " [ stack ]"
+msgstr " [ ngăn xếp ]"
+
+#: src/pmap.c:334 src/pmap.c:340
+msgid "Unknown format in smaps file!"
+msgstr "Không hiểu định dạng trong tập tin smaps!"
+
+#: src/pmap.c:365
+#, fuzzy
+msgid "ERROR: memory allocation failed"
+msgstr "gặp lỗi cấp phát bộ nhớ"
+
+#: src/pmap.c:382
+msgid "inconsistent detail field in smaps file, line:\n"
+msgstr "trÆ°á»ng chi tiết mâu thuẫn trong tập tin smaps, dòng:\n"
+
+#: src/pmap.c:731
+msgid "total kB"
+msgstr "tổng kB"
+
+#: src/pmap.c:742
+#, c-format
+msgid "mapped: %ldK writeable/private: %ldK shared: %ldK\n"
+msgstr " ánhxạ: %ldK có thể ghi/riêng: %ldK chiasẻ: %ldK\n"
+
+#. Translation Hint: keep total string length
+#. * as 24 characters. Adjust %16 if needed
+#: src/pmap.c:751
+#, c-format
+msgid " total %16ldK\n"
+msgstr " tổng %16ldK\n"
+
+#. Translation Hint: keep total string length
+#. * as 16 characters. Adjust %8 if needed
+#: src/pmap.c:757
+#, c-format
+msgid " total %8ldK\n"
+msgstr " tổng %8ldK\n"
+
+#: src/pmap.c:832
+#, c-format
+msgid "config line too long - line %d"
+msgstr "dòng cấu hình quá dài trong - dòng %d"
+
+#: src/pmap.c:857
+#, c-format
+msgid "unsupported section found in the config - line %d"
+msgstr "tìm thấy phần không được hỗ trợ trong cấu hình - dòng %d"
+
+#: src/pmap.c:860 src/pmap.c:871 src/pmap.c:882 src/pmap.c:905 src/pmap.c:917
+#, c-format
+msgid "syntax error found in the config - line %d"
+msgstr "tìm thấy lỗi cú pháp trong cấu hình - dòng %d"
+
+#: src/pmap.c:887 src/pmap.c:1010
+msgid "memory allocation failed"
+msgstr "gặp lỗi cấp phát bộ nhớ"
+
+#: src/pmap.c:939
+msgid "the file already exists - delete or rename it first"
+msgstr "tập tin đã có rồi - hãy hóa hay đổi tên nó trước."
+
+#: src/pmap.c:1002
+msgid "HOME variable undefined"
+msgstr "chưa định nghĩa biến HOME"
+
+#: src/pmap.c:1061
+msgid "option -r is ignored as SunOS compatibility"
+msgstr "tùy chá»n -r bị bá» qua để tÆ°Æ¡ng thích vá»›i SunOS"
+
+#: src/pmap.c:1108
+msgid "options -c, -C, -d, -n, -N, -x, -X are mutually exclusive"
+msgstr "các tuỳ chá»n -c, -C, -d, -n, -N, -x, -X loại từ lẫn nhau"
+
+#: src/pmap.c:1111
+msgid "options -p, -q are mutually exclusive with -n, -N"
+msgstr "tùy chá»n -p, -q xung Ä‘á»™t vá»›i -n, -N"
+
+#: src/pmap.c:1114 src/pmap.c:1163
+msgid "too many arguments"
+msgstr "quá nhiá»u đối số"
+
+#: src/pmap.c:1118
+msgid "rc file successfully created, feel free to edit the content"
+msgstr "đã tạo thành công tập tin tài nguyên, có thể sửa nội dung của nó"
+
+#: src/pmap.c:1121
+msgid "couldn't create the rc file"
+msgstr "không tạo được tập tin tài nguyên"
+
+#: src/pmap.c:1133
+#, c-format
+msgid "~/.%src file successfully created, feel free to edit the content"
+msgstr "đã tạo thành công ~/.%src, có thể sửa nội dung của nó"
+
+#: src/pmap.c:1136
+#, c-format
+msgid "couldn't create ~/.%src"
+msgstr "không thể tạo ~/.%src"
+
+#: src/pmap.c:1141
+msgid "argument missing"
+msgstr "thiếu đối số"
+
+#: src/pmap.c:1154
+msgid "couldn't read the rc file"
+msgstr "không thể Ä‘á»c tập tin rc"
+
+#: src/pmap.c:1156
+#, c-format
+msgid "couldn't read ~/.%src"
+msgstr "không thể Ä‘á»c ~/.%src"
+
+#: src/pmap.c:1165 src/pmap.c:1190
+msgid "library failed pids statistics"
+msgstr ""
+
+#: src/ps/display.c:61
+#, c-format
+msgid "Signal %d (%s) caught by %s (%s).\n"
+msgstr "Tín hiệu %d (%s) bắt bởi %s (%s).\n"
+
+#: src/ps/display.c:75 src/ps/display.c:252 src/ps/display.c:407
+#: src/ps/output.c:2359 src/ps/parser.c:509 src/ps/parser.c:756
+#: src/ps/select.c:95 src/ps/sortformat.c:263 src/ps/sortformat.c:301
+#: src/ps/sortformat.c:549
+msgid "please report this bug"
+msgstr "hãy thông báo lỗi này"
+
+#: src/ps/display.c:315 src/ps/display.c:484
+#, c-format
+msgid "fatal library error, reap\n"
+msgstr ""
+
+#: src/ps/display.c:365
+#, c-format
+msgid "could not find ppid\n"
+msgstr "không thể tìm thấy mã số tiến trình cha\n"
+
+#: src/ps/display.c:375
+#, c-format
+msgid "could not find start_time\n"
+msgstr "không thể tìm thấy start_time\n"
+
+#: src/ps/global.c:287
+#, c-format
+msgid "your %dx%d screen size is bogus. expect trouble\n"
+msgstr "cỡ màn hình của bạn là %dx%d là không có thật. cần lo lắng\n"
+
+#: src/ps/global.c:360 src/ps/global.c:372
+msgid "environment specified an unknown personality"
+msgstr "môi trÆ°á»ng đã chỉ định má»™t tính cá nhân chÆ°a biết"
+
+#: src/ps/global.c:364
+#, c-format
+msgid "cannot strdup() personality text\n"
+msgstr "không thể strdup() chữ thÆ°á»ng cá nhân\n"
+
+#: src/ps/global.c:495
+#, c-format
+msgid "fatal library error, context\n"
+msgstr ""
+
+#: src/ps/global.c:503
+#, c-format
+msgid "fatal library error, lookup self\n"
+msgstr ""
+
+#. Translation Note:
+#. . The following translatable word will be used to recognize the
+#. . user's request for help text. In other words, the translation
+#. . you provide will alter program behavior.
+#. .
+#. . It must be limited to 15 characters or less.
+#.
+#: src/ps/global.c:542
+msgid "help"
+msgstr "trợ_giúp"
+
+#. Translation Notes for ps Help #1 ---------------------------------
+#. . This next group of lines represents 6 pairs of words + abbreviations
+#. . which are the basis of the 'ps' program help text.
+#. .
+#. . The words and abbreviations you provide will alter program behavior.
+#. . They will also appear in the help usage summary associated with the
+#. . "Notes for ps Help #2" below.
+#. .
+#. . In their English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . When translating these 6 pairs you may choose any appropriate
+#. . language equivalents and the only requirement is the abbreviated
+#. . representations must be unique.
+#. .
+#. . By default, those abbreviations are single characters. However,
+#. . they are not limited to only one character after translation.
+#. .
+#. Translation Hint, Pair #1
+#: src/ps/help.c:67
+msgid "simple"
+msgstr "đơn_giản"
+
+#: src/ps/help.c:67
+msgid "s"
+msgstr "g"
+
+#. Translation Hint, Pair #2
+#: src/ps/help.c:69
+msgid "list"
+msgstr "danh_sách"
+
+#: src/ps/help.c:69
+msgid "l"
+msgstr "s"
+
+#. Translation Hint, Pair #3
+#: src/ps/help.c:71
+msgid "output"
+msgstr "đầu_ra"
+
+#: src/ps/help.c:71
+msgid "o"
+msgstr "r"
+
+#. Translation Hint, Pair #4
+#: src/ps/help.c:73
+msgid "threads"
+msgstr "tuyến_trình"
+
+#: src/ps/help.c:73
+msgid "t"
+msgstr "t"
+
+#. Translation Hint, Pair #5
+#: src/ps/help.c:75
+msgid "misc"
+msgstr "lặt_vặt"
+
+#: src/ps/help.c:75
+msgid "m"
+msgstr "v"
+
+#. Translation Hint, Pair #6
+#: src/ps/help.c:77
+msgid "all"
+msgstr "tất_cả"
+
+#: src/ps/help.c:77
+msgid "a"
+msgstr "c"
+
+#: src/ps/help.c:98
+#, c-format
+msgid ""
+"\n"
+"Usage:\n"
+" %s [options]\n"
+msgstr ""
+"\n"
+"Cách dùng:\n"
+" %s [các-tùy-chá»n]\n"
+
+#: src/ps/help.c:103
+msgid ""
+"\n"
+"Basic options:\n"
+msgstr ""
+"\n"
+"Các tùy chá»n cÆ¡ bản:\n"
+
+#: src/ps/help.c:104
+msgid " -A, -e all processes\n"
+msgstr " -A, -e má»i tiến trình\n"
+
+#: src/ps/help.c:105
+msgid " -a all with tty, except session leaders\n"
+msgstr " -a tất với tty, trừ phần dẫn đầu phiên\n"
+
+#: src/ps/help.c:106
+msgid " a all with tty, including other users\n"
+msgstr " a tất vá»›i tty, gồm các ngÆ°á»i dùng khác\n"
+
+#: src/ps/help.c:107
+msgid " -d all except session leaders\n"
+msgstr ""
+" -d tất cả trừ phần dẫn đầu phiên\n"
+"\n"
+
+#: src/ps/help.c:108
+msgid " -N, --deselect negate selection\n"
+msgstr " -N, --deselect đảo vùng chá»n\n"
+
+#: src/ps/help.c:109
+msgid " r only running processes\n"
+msgstr " r chỉ các tiến trình đang chạy\n"
+
+#: src/ps/help.c:110
+msgid " T all processes on this terminal\n"
+msgstr " T má»i tiến trình trên thiết bị cuối này\n"
+
+#: src/ps/help.c:111
+msgid " x processes without controlling ttys\n"
+msgstr " x tiến trình không Ä‘iá»u khiển các tty\n"
+
+#: src/ps/help.c:114
+msgid ""
+"\n"
+"Selection by list:\n"
+msgstr ""
+"\n"
+"Chá»n theo danh sách:\n"
+
+#: src/ps/help.c:115
+msgid " -C <command> command name\n"
+msgstr " -C <lệnh> tên lệnh\n"
+
+#: src/ps/help.c:116
+msgid " -G, --Group <GID> real group id or name\n"
+msgstr " -G, --Group <GID> tên hay mã số nhóm thật\n"
+
+#: src/ps/help.c:117
+msgid " -g, --group <group> session or effective group name\n"
+msgstr " -g, --group <nhóm> tên nhóm chịu tác động hay phiên\n"
+
+#: src/ps/help.c:118
+msgid " -p, p, --pid <PID> process id\n"
+msgstr " -p, p, --pid <PID> mã số tiến trình\n"
+
+#: src/ps/help.c:119
+msgid " --ppid <PID> parent process id\n"
+msgstr " --ppid <PID> mã số tiến trình cha\n"
+
+#: src/ps/help.c:120
+msgid ""
+" -q, q, --quick-pid <PID>\n"
+" process id (quick mode)\n"
+msgstr ""
+" -q, q, --quick-pid <PID>\n"
+" mã số tiến trình (chế độ nhanh)\n"
+
+#: src/ps/help.c:122
+msgid " -s, --sid <session> session id\n"
+msgstr " -s, --sid <phiên> mã phiên\n"
+
+#: src/ps/help.c:123
+msgid " -t, t, --tty <tty> terminal\n"
+msgstr " -t, t, --tty <tty> thiết bị cuối\n"
+
+#: src/ps/help.c:124
+msgid " -u, U, --user <UID> effective user id or name\n"
+msgstr " -u, U, --user <UID> mã số hay tên của ngÆ°á»i dùng chịu tác Ä‘á»™ng\n"
+
+#: src/ps/help.c:125
+msgid " -U, --User <UID> real user id or name\n"
+msgstr " -U, --User <UID> mã số hay tên của ngÆ°á»i dùng thật\n"
+
+#: src/ps/help.c:126
+msgid ""
+"\n"
+" The selection options take as their argument either:\n"
+" a comma-separated list e.g. '-u root,nobody' or\n"
+" a blank-separated list e.g. '-p 123 4567'\n"
+msgstr ""
+"\n"
+" Các tùy chá»n vá» chá»n lá»±a nhận đối số của chúng là má»™t trong hai:\n"
+" một danh sách ngăn cách bằng dấu phẩy ví dụ “-u root,nobody†hoặc là\n"
+" má»™t danh sách ngăn cách bằng khoảng trắng ví dụ nhÆ° “-p 123 4567â€\n"
+
+#: src/ps/help.c:132
+msgid ""
+"\n"
+"Output formats:\n"
+msgstr ""
+"\n"
+"Äịnh dạng xuất:\n"
+
+#: src/ps/help.c:133
+#, fuzzy
+msgid " -D <format> date format for lstart\n"
+msgstr " -O <định_dạng> tải trước với các cột mặc định\n"
+
+#: src/ps/help.c:134
+msgid " -F extra full\n"
+msgstr " -F đầy đủ phần mở rộng\n"
+
+#: src/ps/help.c:135
+msgid " -f full-format, including command lines\n"
+msgstr " -f định dạng đầy đủ, bao gồm các dòng lệnh\n"
+
+#: src/ps/help.c:136
+msgid " f, --forest ascii art process tree\n"
+msgstr " f, --forest cây tiến trình dạng ascii\n"
+
+#: src/ps/help.c:137
+msgid " -H show process hierarchy\n"
+msgstr " -H hiển thị thứ bậc tiến trình\n"
+
+#: src/ps/help.c:138
+msgid " -j jobs format\n"
+msgstr " -j định dạng công việc\n"
+
+#: src/ps/help.c:139
+msgid " j BSD job control format\n"
+msgstr " j định dạng Ä‘iá»u khiển công việc BSD\n"
+
+#: src/ps/help.c:140
+msgid " -l long format\n"
+msgstr " -l định dạng dài\n"
+
+#: src/ps/help.c:141
+msgid " l BSD long format\n"
+msgstr " l định dạng BSD dài\n"
+
+#: src/ps/help.c:142
+msgid " -M, Z add security data (for SELinux)\n"
+msgstr " -M, Z thêm dữ liệu an ninh (cho SELinux)\n"
+
+#: src/ps/help.c:143
+msgid " -O <format> preloaded with default columns\n"
+msgstr " -O <định_dạng> tải trước với các cột mặc định\n"
+
+#: src/ps/help.c:144
+msgid " O <format> as -O, with BSD personality\n"
+msgstr " O <định_dạng> như -O, với cá tính BSD\n"
+
+#: src/ps/help.c:145
+msgid ""
+" -o, o, --format <format>\n"
+" user-defined format\n"
+msgstr ""
+" -o, o, --format <định_dạng>\n"
+" định dạng do ngÆ°á»i dùng định nghÄ©a\n"
+
+#: src/ps/help.c:147
+#, fuzzy
+msgid " -P add psr column\n"
+msgstr " -o không làm gì cả\n"
+
+#: src/ps/help.c:148
+msgid " s signal format\n"
+msgstr " s định dạng tín hiệu\n"
+
+#: src/ps/help.c:149
+msgid " u user-oriented format\n"
+msgstr " u định dạng hÆ°á»›ng ngÆ°á»i dùng\n"
+
+#: src/ps/help.c:150
+msgid " v virtual memory format\n"
+msgstr " v định dạng bộ nhớ ảo\n"
+
+#: src/ps/help.c:151
+msgid " X register format\n"
+msgstr " X định dạng thanh ghi\n"
+
+#: src/ps/help.c:152
+msgid ""
+" -y do not show flags, show rss vs. addr (used with -l)\n"
+msgstr ""
+" -y không hiển thị các cá», hiển thị rss và addr (dùng vá»›i -"
+"l)\n"
+
+#: src/ps/help.c:153
+msgid " --context display security context (for SELinux)\n"
+msgstr " --context hiển thị ngữ cảnh bảo mật (cho SELinux)\n"
+
+#: src/ps/help.c:154
+msgid " --headers repeat header lines, one per page\n"
+msgstr " --headers lặp lại việc in dòng đầu, mỗi lần một trang\n"
+
+#: src/ps/help.c:155
+msgid " --no-headers do not print header at all\n"
+msgstr " --no-headers không hiển thị cả phần đầu\n"
+
+#: src/ps/help.c:156
+msgid ""
+" --cols, --columns, --width <num>\n"
+" set screen width\n"
+msgstr ""
+" --cols, --columns, --width <số>\n"
+" đặt chiá»u rá»™ng màn hình\n"
+
+#: src/ps/help.c:158
+msgid ""
+" --rows, --lines <num>\n"
+" set screen height\n"
+msgstr ""
+" --rows, --lines <số>\n"
+" đặt chiá»u cao màn hình\n"
+
+#: src/ps/help.c:160
+#, fuzzy
+msgid " --signames display signal masks using signal names\n"
+msgstr " -l, --list liệt kê má»i tên tín hiệu\n"
+
+#: src/ps/help.c:163
+msgid ""
+"\n"
+"Show threads:\n"
+msgstr ""
+"\n"
+"Hiển thị các tiến trình:\n"
+
+#: src/ps/help.c:164
+msgid " H as if they were processes\n"
+msgstr " H as if they were processes\n"
+
+#: src/ps/help.c:165
+msgid " -L possibly with LWP and NLWP columns\n"
+msgstr " -L có thể với cột SPID và NLWP\n"
+
+#: src/ps/help.c:166
+msgid " -m, m after processes\n"
+msgstr " -m, m sau các tiến trình\n"
+
+#: src/ps/help.c:167
+msgid " -T possibly with SPID column\n"
+msgstr " -T có thể với cột SPID\n"
+
+#: src/ps/help.c:170
+msgid ""
+"\n"
+"Miscellaneous options:\n"
+msgstr ""
+"\n"
+"Tùy chá»n há»—n tạp:\n"
+
+#: src/ps/help.c:171
+msgid " -c show scheduling class with -l option\n"
+msgstr " -c hiển thị lá»›p lịch biểu vá»›i tùy chá»n -l\n"
+
+#: src/ps/help.c:172
+msgid " c show true command name\n"
+msgstr " c hiển thị tên câu lệnh đúng\n"
+
+#: src/ps/help.c:173
+msgid " e show the environment after command\n"
+msgstr " e hiển thị môi trÆ°á»ng sau lệnh\n"
+
+#: src/ps/help.c:174
+msgid ""
+" k, --sort specify sort order as: [+|-]key[,[+|-]key[,...]]\n"
+msgstr ""
+" k, --sort chỉ định thứ tự sắp xếp là: [+|-]key[,[+|-]key[,...]]\n"
+
+#: src/ps/help.c:175
+msgid " L show format specifiers\n"
+msgstr " L hiển thị đặc tả định dạng\n"
+
+#: src/ps/help.c:176
+msgid " n display numeric uid and wchan\n"
+msgstr " n hiển thị mã số và wchan bằng số\n"
+
+#: src/ps/help.c:177
+msgid " S, --cumulative include some dead child process data\n"
+msgstr " S, --cumulative bao gồm một số dữ liệu tiến trình con chết\n"
+
+#: src/ps/help.c:178
+msgid " -y do not show flags, show rss (only with -l)\n"
+msgstr ""
+" -y không hiển thị các cá», hiển thị rss (chỉ vá»›i -l)\n"
+
+#: src/ps/help.c:179
+msgid " -V, V, --version display version information and exit\n"
+msgstr " -V, V, --version hiển thị phiên bản rồi thoát\n"
+
+#: src/ps/help.c:180
+msgid " -w, w unlimited output width\n"
+msgstr " -w, w không giới hạn độ rộng kết xuất\n"
+
+#: src/ps/help.c:181
+#, c-format
+msgid ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" display help and exit\n"
+msgstr ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" hiển thị trợ giúp rồi thoát\n"
+
+#. Translation Notes for ps Help #2 ---------------------------------
+#. . Most of the following c-format string is derived from the 6
+#. . pairs of words + chars mentioned above in "Notes for ps Help #1".
+#. .
+#. . In its full English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . The word for "help" will be translated elsewhere. Thus, the only
+#. . translations below will be: "Try", "or" and "for additional...".
+#. .
+#: src/ps/help.c:202
+#, c-format
+msgid ""
+"\n"
+" Try '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" or '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" for additional help text.\n"
+msgstr ""
+"\n"
+" Hãy chạy lệnh “%s --%s <%s|%s|%s|%s|%s|%s>â€\n"
+" hoặc “%s --%s <%s|%s|%s|%s|%s|%s>â€\n"
+" để có thông tin trợ giúp dạng văn bản.\n"
+
+#: src/ps/help.c:215
+#, c-format
+msgid ""
+"\n"
+"For more details see ps(1).\n"
+msgstr ""
+"\n"
+"Äể có thêm thông tin vui lòng xem ps(1).\n"
+
+#: src/ps/output.c:104
+msgid "Unable to get system boot time"
+msgstr ""
+
+#: src/ps/output.c:119
+#, fuzzy
+msgid "Unable to get total memory"
+msgstr "%13lu %s tổng bộ nhớ\n"
+
+#: src/ps/output.c:2206
+#, c-format
+msgid "fix bigness error\n"
+msgstr "sá»­a lá»—i lá»›n\n"
+
+#: src/ps/output.c:2289
+#, c-format
+msgid "bad alignment code\n"
+msgstr "mã căn chỉnh sai\n"
+
+#: src/ps/parser.c:63
+msgid "the option is exclusive: "
+msgstr "tùy chá»n bị loại trừ:"
+
+#: src/ps/parser.c:93
+msgid "process ID list syntax error"
+msgstr "lỗi cú pháp danh sách mã số tiến trình"
+
+#: src/ps/parser.c:94 src/ps/parser.c:95
+msgid "process ID out of range"
+msgstr "mã số tiến trình nằm ngoài phạm vi"
+
+#: src/ps/parser.c:108
+msgid "user name does not exist"
+msgstr "tên ngÆ°á»i dùng không tồn tại"
+
+#: src/ps/parser.c:114
+msgid "user ID out of range"
+msgstr "mã số ngÆ°á»i dùng nằm ngoài phạm vi"
+
+#: src/ps/parser.c:127
+msgid "group name does not exist"
+msgstr "tên nhóm không tồn tại"
+
+#: src/ps/parser.c:133
+msgid "group ID out of range"
+msgstr "mã số nhóm nằm ngoài phạm vi"
+
+#: src/ps/parser.c:149 src/ps/parser.c:173
+msgid "TTY could not be found"
+msgstr "không thể tìm thấy TTY"
+
+#: src/ps/parser.c:175
+msgid "list member was not a TTY"
+msgstr "liệt kê các thành viên không phải là TTY"
+
+#: src/ps/parser.c:200
+msgid "improper list"
+msgstr "danh sách không thích hợp"
+
+#: src/ps/parser.c:249
+msgid "list of command names must follow -C"
+msgstr "danh sách các tên lệnh phải theo sau -C"
+
+#: src/ps/parser.c:257
+#, fuzzy
+msgid "date format must follow -D"
+msgstr "danh sách công việc phải theo sau -j"
+
+#: src/ps/parser.c:270
+msgid "list of real groups must follow -G"
+msgstr "danh sách các nhóm thật phải theo sau -G"
+
+#: src/ps/parser.c:283
+msgid "list of jobs must follow -J"
+msgstr "danh sách công việc phải theo sau -j"
+
+#: src/ps/parser.c:311
+msgid "format or sort specification must follow -O"
+msgstr "định dạng hay đặc tả sắp xếp phải theo sau -O"
+
+#: src/ps/parser.c:322
+msgid "list of PRM groups must follow -R"
+msgstr "danh sách nhóm PRM phải theo sau -R"
+
+#: src/ps/parser.c:341
+msgid "list of real users must follow -U"
+msgstr "danh sách ngÆ°á»i dùng thật phải theo sau -U"
+
+#: src/ps/parser.c:382
+msgid "list of session leaders OR effective group names must follow -g"
+msgstr ""
+"danh sách dẫn đầu phiên HOẶC các tên nhóm chịu ảnh hưởng phải theo sau -g"
+
+#: src/ps/parser.c:393
+msgid "list of session leaders OR effective group IDs was invalid"
+msgstr "danh sách dẫn đầu phiên HOẶC các mã số nhóm chịu ảnh không hợp lệ"
+
+#: src/ps/parser.c:417
+msgid "format specification must follow -o"
+msgstr "đặc tả định dạng phải theo sau -o"
+
+#: src/ps/parser.c:423
+msgid "list of process IDs must follow -p"
+msgstr "danh sách các mã số tiến trình phải theo sau -p"
+
+#: src/ps/parser.c:440
+msgid "the -r option is reserved"
+msgstr "tùy chá»n -r chÆ°a dùng"
+
+#: src/ps/parser.c:446
+msgid "list of session IDs must follow -s"
+msgstr "danh sách các mã phiên làm việc phải theo sau -s"
+
+#: src/ps/parser.c:454
+msgid "list of terminals (pty, tty...) must follow -t"
+msgstr "danh sách thiết bị cuối (pty, tty...) phải theo sau -t"
+
+#: src/ps/parser.c:462
+msgid "list of users must follow -u"
+msgstr "danh sách ngÆ°á»i dùng phải theo sau -u"
+
+#: src/ps/parser.c:484
+msgid "must set personality to get -x option"
+msgstr "phải đặt “cá nhân†để lấy tùy chá»n -x"
+
+#: src/ps/parser.c:499
+msgid "list of zones (contexts, labels, whatever?) must follow -z"
+msgstr ""
+"danh sách vùng (ngữ cảnh, nhãn, cái nào đi chăng nữa?) cũng phải theo sau -z"
+
+#: src/ps/parser.c:506
+msgid "embedded '-' among SysV options makes no sense"
+msgstr "nhúng “-†cùng vá»›i các tùy chá»n SysV là không có lý"
+
+#: src/ps/parser.c:512
+msgid "unsupported SysV option"
+msgstr "không há»— trợ tùy chá»n SysV"
+
+#: src/ps/parser.c:525
+msgid "cannot happen - problem #1"
+msgstr "không thể xảy ra - vấn đỠ#1"
+
+#: src/ps/parser.c:529
+msgid "cannot happen - problem #2"
+msgstr "không thể xảy ra - vấn đỠ#2"
+
+#: src/ps/parser.c:531
+msgid "second chance parse failed, not BSD or SysV"
+msgstr "phân tích thay đổi thứ hai gặp lỗi, chẳng phải BSD cũng không SysV"
+
+#: src/ps/parser.c:548
+msgid "option A is reserved"
+msgstr "tùy chá»n A chÆ°a dùng"
+
+#: src/ps/parser.c:553
+msgid "option C is reserved"
+msgstr "tùy chá»n C chÆ°a dùng"
+
+#: src/ps/parser.c:573
+msgid "format or sort specification must follow O"
+msgstr "đặc tả định dạng hay sắp xếp phải theo sau O"
+
+#: src/ps/parser.c:598
+msgid "list of users must follow U"
+msgstr "danh sách ngÆ°á»i dùng phải theo sau U"
+
+#: src/ps/parser.c:610
+msgid "obsolete W option not supported (you have a /dev/drum?)"
+msgstr "không há»— trợ tùy chá»n cÅ© W (bạn có /dev/drum?)"
+
+#: src/ps/parser.c:646 src/ps/parser.c:921 src/ps/parser.c:930
+msgid "only one heading option may be specified"
+msgstr "chỉ được chỉ ra má»™t tùy chá»n vá» phần đầu"
+
+#: src/ps/parser.c:661
+msgid "long sort specification must follow 'k'"
+msgstr "đặc tả sắp xếp dài phải theo sau “kâ€"
+
+#: src/ps/parser.c:689
+msgid "format specification must follow o"
+msgstr "đặc tả định dạng phải theo sau o"
+
+#: src/ps/parser.c:695
+msgid "list of process IDs must follow p"
+msgstr "danh sách mã số tiến trình phải theo sau p"
+
+#: src/ps/parser.c:753
+msgid "embedded '-' among BSD options makes no sense"
+msgstr "nhúng “-†giữa những tùy chá»n BSD là không hợp lý"
+
+#: src/ps/parser.c:759
+msgid "unsupported option (BSD syntax)"
+msgstr "tùy chá»n không được há»— trợ (cú pháp BSD)"
+
+#: src/ps/parser.c:847 src/ps/parser.c:859
+msgid "unknown gnu long option"
+msgstr "không hiểu tùy chá»n dạng dài gnu"
+
+#: src/ps/parser.c:867
+msgid "list of real groups must follow --Group"
+msgstr "danh sách nhóm thật phải theo sau --Group"
+
+#: src/ps/parser.c:875
+msgid "list of real users must follow --User"
+msgstr "danh sách ngÆ°á»i dùng thật phải theo sau --User"
+
+#: src/ps/parser.c:894
+msgid "number of columns must follow --cols, --width, or --columns"
+msgstr "số lượng cột phải theo sau --cols, --width, hay --columns"
+
+#: src/ps/parser.c:897
+msgid "option --cumulative does not take an argument"
+msgstr "tùy chá»n --cumulative không nhận đối số"
+
+#: src/ps/parser.c:902
+#, fuzzy
+msgid "date format must follow --date-format"
+msgstr "đặc tả định dạng phải theo sau --format"
+
+#: src/ps/parser.c:908
+msgid "option --deselect does not take an argument"
+msgstr "tùy chá»n --deselect không nhận đối số"
+
+#: src/ps/parser.c:920
+msgid "option --no-heading does not take an argument"
+msgstr "tùy chá»n --no-heading không nhận đối số"
+
+#: src/ps/parser.c:929
+msgid "option --heading does not take an argument"
+msgstr "tùy chá»n --heading không nhận đối số"
+
+#: src/ps/parser.c:935
+msgid "option --forest does not take an argument"
+msgstr "tùy chá»n --forest không nhận đối số"
+
+#: src/ps/parser.c:941
+msgid "format specification must follow --format"
+msgstr "đặc tả định dạng phải theo sau --format"
+
+#: src/ps/parser.c:947
+msgid "list of effective groups must follow --group"
+msgstr "danh sách nhóm chịu ảnh hưởng phải theo sau --group"
+
+#: src/ps/parser.c:965
+msgid "list of process IDs must follow --pid"
+msgstr "danh sách mã số tiến trình phải theo sau --pid"
+
+#: src/ps/parser.c:981
+msgid "list of process IDs must follow --ppid"
+msgstr "danh sách mã số tiến trình phải theo sau --ppid"
+
+#: src/ps/parser.c:999
+msgid "number of rows must follow --rows or --lines"
+msgstr "số dòng phải theo sau --rows hay --lines"
+
+#: src/ps/parser.c:1003
+msgid "some sid thing(s) must follow --sid"
+msgstr "một số thứ sid phải theo sau --sid"
+
+#: src/ps/parser.c:1015
+msgid "long sort specification must follow --sort"
+msgstr "đặc tả sắp xếp dài phải theo sau --sort"
+
+#: src/ps/parser.c:1021
+msgid "list of ttys must follow --tty"
+msgstr "danh sách tty phải theo sau --tty"
+
+#: src/ps/parser.c:1029
+msgid "list of effective users must follow --user"
+msgstr "danh sách ngÆ°á»i dùng chịu ảnh hưởng phải theo sau --user"
+
+#: src/ps/parser.c:1145
+msgid "way bad"
+msgstr "sai Ä‘Æ°á»ng"
+
+#: src/ps/parser.c:1159
+msgid "garbage option"
+msgstr "tùy chá»n rác"
+
+#: src/ps/parser.c:1163
+msgid "something broke"
+msgstr "có cái gì đó há»ng"
+
+#: src/ps/parser.c:1183
+msgid "thread display conflicts with forest display"
+msgstr "hiển thị tuyến trình xung đột với forest"
+
+#: src/ps/parser.c:1188
+msgid "thread flags conflict; can't use H with m or -m"
+msgstr "xung đột cỠtuyến trình; không thể dùng H cùng với m hay -m"
+
+#: src/ps/parser.c:1190
+msgid "thread flags conflict; can't use both m and -m"
+msgstr "xung đột cỠtuyến trình; không thể dùng cả m và -m"
+
+#: src/ps/parser.c:1192
+msgid "thread flags conflict; can't use both -L and -T"
+msgstr "xung đột cỠtuyến trình; không thể dùng cả -L và -T"
+
+#: src/ps/parser.c:1265 src/ps/parser.c:1266
+#, c-format
+msgid "error: %s\n"
+msgstr "lá»—i: %s\n"
+
+#: src/ps/select.c:71
+msgid "process selection options conflict"
+msgstr "tùy chá»n chá»n tiến trình xung Ä‘á»™t"
+
+#: src/ps/sortformat.c:110 src/ps/sortformat.c:115
+msgid "seriously crashing: goodbye cruel world"
+msgstr "đổ vỡ nghiêm trá»ng: chào tạm biệt thế giá»›i phÅ© phàng"
+
+#: src/ps/sortformat.c:150 src/ps/sortformat.c:169
+#, fuzzy
+msgid "missing AIX field descriptor"
+msgstr "không hiểu bá»™ mô tả trÆ°á»ng AIX"
+
+#: src/ps/sortformat.c:152
+msgid "improper AIX field descriptor"
+msgstr "bá»™ mô tả trÆ°á»ng AIX không thích hợp"
+
+#: src/ps/sortformat.c:174
+msgid "unknown AIX field descriptor"
+msgstr "không hiểu bá»™ mô tả trÆ°á»ng AIX"
+
+#: src/ps/sortformat.c:179
+msgid "AIX field descriptor processing bug"
+msgstr "tiến trình bá»™ mô tả trÆ°á»ng AIX lá»—i"
+
+#: src/ps/sortformat.c:287
+#, c-format
+msgid "unknown user-defined format specifier \"%s\""
+msgstr "không hiểu chỉ định định dạng ngÆ°á»i dùng định nghÄ©a \"%s\""
+
+#: src/ps/sortformat.c:314
+msgid "empty format list"
+msgstr "danh sách định dạng trống"
+
+#: src/ps/sortformat.c:315
+msgid "improper format list"
+msgstr "danh sách định dạng không thích hợp"
+
+#: src/ps/sortformat.c:316
+msgid "column widths must be unsigned decimal numbers"
+msgstr "độ rộng cột phải là số thập phân không dấu"
+
+#: src/ps/sortformat.c:317
+msgid "can not set width for a macro (multi-column) format specifier"
+msgstr "không thể đặt độ rộng cho một chỉ định định dạng macro (đa cột)"
+
+#: src/ps/sortformat.c:371 src/ps/sortformat.c:387
+msgid "improper sort list"
+msgstr "danh sách sắp xếp không thích hợp"
+
+#: src/ps/sortformat.c:382
+msgid "empty sort list"
+msgstr "danh sách sắp xếp trống rỗng"
+
+#: src/ps/sortformat.c:403 src/ps/sortformat.c:482 src/ps/sortformat.c:484
+msgid "unknown sort specifier"
+msgstr "không hiểu chỉ định sắp xếp"
+
+#: src/ps/sortformat.c:430 src/ps/sortformat.c:435 src/ps/sortformat.c:442
+#: src/ps/sortformat.c:448
+msgid "bad sorting code"
+msgstr "mã sắp xếp sai"
+
+#: src/ps/sortformat.c:445
+msgid "PPID sort and forest output conflict"
+msgstr "kết xuât forest và sắp xếp PPID xung đột nhau"
+
+#: src/ps/sortformat.c:519
+msgid "option -O can not follow other format options"
+msgstr "tùy chá»n -O không thể theo các tùy chá»n định dạng khác"
+
+#: src/ps/sortformat.c:526 src/ps/sortformat.c:544
+msgid "multiple sort options"
+msgstr "đã chỉ ra nhiá»u tùy chá»n sắp xếp"
+
+#: src/ps/sortformat.c:534
+msgid "option O is neither first format nor sort order"
+msgstr ""
+"tùy chá»n O không phải là định dạng đầu cÅ©ng không phải là thứ tá»± sắp xếp"
+
+#: src/ps/sortformat.c:661
+msgid "modifier -y without format -l makes no sense"
+msgstr "-y chỉnh sửa mà không có -l định dạng là không hợp lý"
+
+#: src/ps/sortformat.c:760
+msgid "bug: must reset the list first"
+msgstr "lỗi: phải đặt lại danh sách trước"
+
+#: src/ps/sortformat.c:797
+msgid "tell <procps@freelists.org> what you expected"
+msgstr "gửi thư cho <procps@freelists.org> là cái bạn cần"
+
+#: src/ps/sortformat.c:807
+msgid ""
+"tell <procps@freelists.org> what you want (-L/-T, -m/m/H, and $PS_FORMAT)"
+msgstr ""
+"gửi thư cho <procps@freelists.org> là cái bạn cần (-L/-T, -m/m/H, và "
+"$PS_FORMAT)"
+
+#: src/ps/sortformat.c:824
+#, c-format
+msgid "warning: $PS_FORMAT ignored. (%s)\n"
+msgstr "cảnh báo: $PS_FORMAT bị bỠqua. (%s)\n"
+
+#: src/ps/sortformat.c:829 src/ps/sortformat.c:839
+msgid "conflicting format options"
+msgstr "có xung Ä‘á»™t trong các tùy chá»n định dạng"
+
+#: src/ps/sortformat.c:830
+msgid "can not use output modifiers with user-defined output"
+msgstr "không thể dùng bá»™ chỉnh sá»­a vá»›i kết xuất ngÆ°á»i dùng định nghÄ©a"
+
+#: src/ps/sortformat.c:831
+msgid "-L/-T with H/m/-m and -o/-O/o/O is nonsense"
+msgstr "-L/-T với H/m/-m và -o/-O/o/O là không hợp lý"
+
+#: src/ps/sortformat.c:889
+msgid "internal error: no PID or PPID for -j option"
+msgstr "lá»—i ná»™i tại: không có PID hay PPID cho tùy chá»n -j"
+
+#: src/ps/sortformat.c:891
+msgid "lost my PGID"
+msgstr "mất mã số tiến trình nhóm cha"
+
+#: src/ps/sortformat.c:904
+msgid "internal error: no PRI for -c option"
+msgstr "lá»—i ná»™i bá»™: không PRI cho tùy chá»n -c"
+
+#: src/ps/sortformat.c:907
+msgid "lost my CLS"
+msgstr "mất CLS của tôi"
+
+#: src/ps/sortformat.c:912
+msgid "-T with H/-m/m but no PID for SPID to follow"
+msgstr "-T với H/-m/m nhưng lại không có mã số tiến trình cho SPID để theo"
+
+#: src/ps/sortformat.c:923
+msgid "-L with H/-m/m but no PID/PGID/SID/SESS for NLWP to follow"
+msgstr "-L với H/-m/m nhưng không có PID/PGID/SID/SESS cho NLWP để theo"
+
+#: src/pwdx.c:41
+#, c-format
+msgid " %s [options] pid...\n"
+msgstr " %s [các-tùy-chá»n] pid...\n"
+
+#: src/pwdx.c:117
+#, c-format
+msgid "invalid process id: %s"
+msgstr "mã số tiến trình không hợp lệ: %s"
+
+#: src/skill.c:285
+msgid "Unable to create pid Pids_info structure"
+msgstr ""
+
+#: src/skill.c:288 src/w.c:458
+#, fuzzy
+msgid "Unable to load process information"
+msgstr "không thể rẽ nhánh tiến trình"
+
+#: src/skill.c:319
+#, c-format
+msgid " %s [signal] [options] <expression>\n"
+msgstr " %s [tín-hiệu] [các-tùy-chá»n] <biểu-thức>\n"
+
+#: src/skill.c:323
+#, c-format
+msgid " %s [new priority] [options] <expression>\n"
+msgstr " %s [mức Æ°u tiên má»›i] [các-tùy-chá»n] <biểu thức>\n"
+
+#: src/skill.c:327
+msgid " -f, --fast fast mode (not implemented)\n"
+msgstr " -f, --fast chế độ nhanh (chưa thực hiện)\n"
+
+#: src/skill.c:328
+msgid " -i, --interactive interactive\n"
+msgstr " -i, --interactive tương tác\n"
+
+#: src/skill.c:329
+msgid " -l, --list list all signal names\n"
+msgstr " -l, --list liệt kê má»i tên tín hiệu\n"
+
+#: src/skill.c:330
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr " -L, --table liệt kê má»i tên tín hiệu trong bảng nice\n"
+
+#: src/skill.c:331
+msgid ""
+" -n, --no-action do not actually kill processes; just print what would "
+"happen\n"
+msgstr ""
+" -n, --no-action không thực hiện giết tiến trình thật; chỉ hiển thị những "
+"gì có thể xảy ra\n"
+
+#: src/skill.c:332
+msgid " -v, --verbose explain what is being done\n"
+msgstr " -v, --verbose giải thích đang làm gì\n"
+
+#: src/skill.c:333
+msgid " -w, --warnings enable warnings (not implemented)\n"
+msgstr " -w, --warnings bật cảnh báo (chưa thực hiện)\n"
+
+#: src/skill.c:335
+msgid ""
+"Expression can be: terminal, user, pid, command.\n"
+"The options below may be used to ensure correct interpretation.\n"
+msgstr ""
+"Biểu thức có thể là: terminal, user, pid, command.\n"
+"Các tùy chá»n ở phía dÆ°á»›i có thể được dùng để đảm bảo rằng nó phiên dịch "
+"đúng.\n"
+
+#: src/skill.c:337
+msgid " -c, --command <command> expression is a command name\n"
+msgstr " -c, --command <lệnh> biểu thức là một tên lệnh\n"
+
+#: src/skill.c:338
+msgid " -p, --pid <pid> expression is a process id number\n"
+msgstr " -p, --pid <pid> biểu thức là mã số tiến trình\n"
+
+#: src/skill.c:339
+msgid " -t, --tty <tty> expression is a terminal\n"
+msgstr " -t, --tty <tty> biểu thức là một thiết bị cuối\n"
+
+#: src/skill.c:340
+msgid " -u, --user <username> expression is a username\n"
+msgstr " -u, --user <tài_khoản> biểu thức là má»™t tên tài khoản ngÆ°á»i dùng\n"
+
+#: src/skill.c:342
+msgid "Alternatively, expression can be:\n"
+msgstr "Thay vào đó, biểu thức có thể là:\n"
+
+#: src/skill.c:343
+msgid ""
+" --ns <pid> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+" --ns <pid> khớp tiến trình mà nó có cùng không gian tên\n"
+" với mã số tiến trình này\n"
+
+#: src/skill.c:345
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option; available namespaces are\n"
+": ipc, mnt, net, pid, user, uts\n"
+msgstr ""
+" --nslist <ns,...> liệt kê không gian tên nào sẽ xem xét cho\n"
+" tùy chá»n --ns; các không gian tên sẵn có là:\n"
+": ipc, mnt, net, pid, user, uts\n"
+
+#: src/skill.c:355
+#, c-format
+msgid ""
+"\n"
+"The default signal is TERM. Use -l or -L to list available signals.\n"
+"Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0.\n"
+"Alternate signals may be specified in three ways: -SIGKILL -KILL -9\n"
+msgstr ""
+"\n"
+"Tín hiệu mặc định là TERM. Dùng -l hoặc -L để liệt kê các tín hiệu sẵn có.\n"
+"Các tín hiệu thực sự hữu dụng bao gồm HUP, INT, KILL, STOP, CONT, và 0.\n"
+"Các tín hiệu thay thế có thể chỉ định theo ba cách: -SIGKILL -KILL -9\n"
+
+#: src/skill.c:362
+#, c-format
+msgid ""
+"\n"
+"The default priority is +4. (snice +4 ...)\n"
+"Priority numbers range from +20 (slowest) to -20 (fastest).\n"
+"Negative priority numbers are restricted to administrative users.\n"
+msgstr ""
+"\n"
+"Mức ưu tiên mặc định là +4. (snice +4 ...)\n"
+"Số của mức ưu tiên là từ +20 (thấp nhất) đến -20 (nhanh nhất).\n"
+"Các mức Æ°u tiên là số âm là được hạn chế cho những ngÆ°á»i quản trị.\n"
+
+#: src/skill.c:384
+#, c-format
+msgid "priority %lu out of range"
+msgstr "mức ưu tiên %lu nằm ngoài phạm vi"
+
+#: src/skill.c:493
+#, c-format
+msgid "invalid pid number %s"
+msgstr "mã số tiến trình không hợp lệ %s"
+
+#: src/skill.c:497
+msgid "error reading reference namespace information"
+msgstr "lá»—i Ä‘á»c thông tin không gian tên tham chiếu"
+
+#: src/skill.c:505
+msgid "invalid namespace list"
+msgstr "danh sách không gian tên không hợp lệ"
+
+#: src/skill.c:542
+msgid "no process selection criteria"
+msgstr "chÆ°a có tiêu chí chá»n tiến trình"
+
+#: src/skill.c:545
+msgid "general flags may not be repeated"
+msgstr "các cỠchung không thể lặp lại"
+
+#: src/skill.c:548
+msgid "-i makes no sense with -v, -f, and -n"
+msgstr "-i không hợp lý với -v, -f, và -n"
+
+#: src/skill.c:550
+msgid "-v makes no sense with -i and -f"
+msgstr "-v không hợp lý với -i và -f"
+
+#: src/skill.c:594
+#, c-format
+msgid "skill: \"%s\" is not supported\n"
+msgstr "skill: \"%s\" không được hỗ trợ\n"
+
+#: src/slabtop.c:108
+msgid " -d, --delay <secs> delay updates\n"
+msgstr " -d, --delay <giây> khoảng trễ giữa những lần cập nhật\n"
+
+#: src/slabtop.c:109
+msgid " -o, --once only display once, then exit\n"
+msgstr " -o, --once chỉ hiển thị một lần rồi thoát\n"
+
+#: src/slabtop.c:110
+msgid " -s, --sort <char> specify sort criteria by character (see below)\n"
+msgstr " -s, --sort <kýtự> chỉ định tiêu chí xếp bằng ký tự (xem ở dưới)\n"
+
+#: src/slabtop.c:115
+msgid ""
+"\n"
+"The following are valid sort criteria:\n"
+msgstr ""
+"\n"
+"Có các tiêu chí sắp xếp hợp lệ sau:\n"
+
+#: src/slabtop.c:116
+msgid " a: sort by number of active objects\n"
+msgstr " a: xếp theo số đối tượng đang hoạt động\n"
+
+#: src/slabtop.c:117
+msgid " b: sort by objects per slab\n"
+msgstr " b: xếp theo đối tượng trên mỗi slab\n"
+
+#: src/slabtop.c:118
+msgid " c: sort by cache size\n"
+msgstr " c: xếp theo kích cỡ bộ nhớ tạm\n"
+
+#: src/slabtop.c:119
+msgid " l: sort by number of slabs\n"
+msgstr " l: xếp theo số lượng slab\n"
+
+#: src/slabtop.c:120
+#, fuzzy
+msgid " v: sort by (non display) number of active slabs\n"
+msgstr " v: xếp theo số slab hoạt động\n"
+
+#: src/slabtop.c:121
+msgid " n: sort by name\n"
+msgstr " n: xếp theo tên\n"
+
+#: src/slabtop.c:122
+msgid " o: sort by number of objects (the default)\n"
+msgstr " o: xếp theo số của đối tượng (mặc định)\n"
+
+#: src/slabtop.c:123
+#, fuzzy
+msgid " p: sort by (non display) pages per slab\n"
+msgstr " p: xếp theo số trang trên mỗi slab\n"
+
+#: src/slabtop.c:124
+msgid " s: sort by object size\n"
+msgstr " s: xếp theo kích cỡ đối tượng\n"
+
+#: src/slabtop.c:125
+msgid " u: sort by cache utilization\n"
+msgstr " u: xếp theo mức tiêu thụ bộ nhớ tạm\n"
+
+#: src/slabtop.c:188 src/slabtop.c:199
+msgid "Cannot combine -d and -o options"
+msgstr ""
+
+#: src/slabtop.c:190
+msgid "illegal delay"
+msgstr "giá trị trễ không hợp lệ"
+
+#: src/slabtop.c:192 src/tload.c:142 src/vmstat.c:1049
+msgid "delay must be positive integer"
+msgstr "khoảng trễ phải là số dương"
+
+#: src/slabtop.c:236
+msgid "Error getting slab summary results"
+msgstr ""
+
+#. Translation Hint: Next five strings must not
+#. * exceed a length of 35 characters.
+#: src/slabtop.c:242
+#, no-c-format
+msgid "Active / Total Objects (% used)"
+msgstr "ÄTượng Hoạt Ä‘á»™ng / Tổng (% dùng)"
+
+#: src/slabtop.c:248
+#, no-c-format
+msgid "Active / Total Slabs (% used)"
+msgstr "Slab Hoạt động / Tổng (% dùng)"
+
+#: src/slabtop.c:254
+#, no-c-format
+msgid "Active / Total Caches (% used)"
+msgstr "NhTạm Hoạt động / Tổng (% dùng)"
+
+#: src/slabtop.c:260
+#, no-c-format
+msgid "Active / Total Size (% used)"
+msgstr "Cỡ Hoạt động / Tổng (% dùng)"
+
+#: src/slabtop.c:265
+msgid "Minimum / Average / Maximum Object"
+msgstr "ÄTượng Tối thiểu / TBình / Tối Ä‘a"
+
+#. Translation Hint: Please keep alignment of the
+#. * following intact.
+#: src/slabtop.c:276
+msgid " OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME"
+msgstr " ÄT HOẠTÄ DÙNG ÄT Cá»  SLABS ÄT/SLAB NhTẠM Cá»  TÊN"
+
+#: src/slabtop.c:313 src/vmstat.c:767
+msgid "Unable to create slabinfo structure"
+msgstr ""
+
+#: src/slabtop.c:318
+msgid "terminal setting retrieval"
+msgstr "thu hồi các cài đặt thiết bị cuối"
+
+#: src/slabtop.c:334 src/vmstat.c:774
+msgid "Unable to get slabinfo node data"
+msgstr ""
+
+#: src/slabtop.c:340 src/vmstat.c:776
+#, fuzzy
+msgid "Unable to sort slab nodes"
+msgstr "không thể rẽ nhánh tiến trình"
+
+#: src/sysctl.c:118
+#, c-format
+msgid "Path is not under %s: %s"
+msgstr ""
+
+#: src/sysctl.c:136
+#, c-format
+msgid "separators should not be repeated: %s"
+msgstr "bộ phân chia không thể lặp lại: %s"
+
+#: src/sysctl.c:232
+#, c-format
+msgid " %s [options] [variable[=value] ...]\n"
+msgstr " %s [các-tùy-chá»n] [biến[=giá_trị] ...]\n"
+
+#: src/sysctl.c:235
+msgid " -a, --all display all variables\n"
+msgstr " -a, --all hiển thị má»i biến\n"
+
+#: src/sysctl.c:236
+msgid " -A alias of -a\n"
+msgstr " -A bí danh của -a\n"
+
+#: src/sysctl.c:237
+msgid " -X alias of -a\n"
+msgstr " -X bí danh của -a\n"
+
+#: src/sysctl.c:238
+msgid " --deprecated include deprecated parameters to listing\n"
+msgstr " --deprecated bao gồm các tham số cũ vào liệt kê\n"
+
+#: src/sysctl.c:239
+msgid " --dry-run Print the key and values but do not write\n"
+msgstr ""
+
+#: src/sysctl.c:240
+msgid " -b, --binary print value without new line\n"
+msgstr " -b, --binary hiển thị giá trị mà không có ký tự dòng mới\n"
+
+#: src/sysctl.c:241
+msgid " -e, --ignore ignore unknown variables errors\n"
+msgstr " -e, --ignore lỠđi các lỗi biến không hiểu\n"
+
+#: src/sysctl.c:242
+msgid " -N, --names print variable names without values\n"
+msgstr " -N, --names hiển thị các tên biến mà không có giá trị\n"
+
+#: src/sysctl.c:243
+#, fuzzy
+msgid " -n, --values print only values of the given variable(s)\n"
+msgstr " -n, --values chỉ hiển thị giá trị của các biến\n"
+
+#: src/sysctl.c:244
+msgid " -p, --load[=<file>] read values from file\n"
+msgstr " -p, --load[=<tập-tin>] Ä‘á»c giá-trị từ tập-tin\n"
+
+#: src/sysctl.c:245
+msgid " -f alias of -p\n"
+msgstr " -f bí danh của -p\n"
+
+#: src/sysctl.c:246
+msgid " --system read values from all system directories\n"
+msgstr " --system Ä‘á»c giá trị từ má»i thÆ° mục hệ thống\n"
+
+#: src/sysctl.c:247
+msgid ""
+" -r, --pattern <expression>\n"
+" select setting that match expression\n"
+msgstr ""
+" -r, --pattern <biểu thức>\n"
+" chá»n các cài đặt mà nó khá»›p vá»›i biểu thức\n"
+
+#: src/sysctl.c:249
+msgid " -q, --quiet do not echo variable set\n"
+msgstr " -q, --quiet không in ra tập hợp biến\n"
+
+#: src/sysctl.c:250
+msgid " -w, --write enable writing a value to variable\n"
+msgstr " -w, --write bật ghi giá trị cho biến\n"
+
+#: src/sysctl.c:251
+msgid " -o does nothing\n"
+msgstr " -o không làm gì cả\n"
+
+#: src/sysctl.c:252
+msgid " -x does nothing\n"
+msgstr " -x không làm gì cả\n"
+
+#: src/sysctl.c:253
+msgid " -d alias of -h\n"
+msgstr " -d bí danh của -h\n"
+
+#: src/sysctl.c:334 src/sysctl.c:390
+#, c-format
+msgid "\"%s\" is an unknown key"
+msgstr "\"%s\" là một khóa chưa biết"
+
+#: src/sysctl.c:352 src/sysctl.c:508 src/sysctl.c:545
+#, c-format
+msgid "cannot stat %s"
+msgstr "không thể lấy thống kê %s"
+
+#: src/sysctl.c:395 src/sysctl.c:437
+#, c-format
+msgid "permission denied on key '%s'"
+msgstr "không đủ thẩm quyá»n vá»›i khóa “%sâ€"
+
+#: src/sysctl.c:402 src/sysctl.c:454
+#, c-format
+msgid "reading key \"%s\""
+msgstr "Ä‘á»c khóa \"%s\""
+
+#: src/sysctl.c:492
+#, c-format
+msgid "unable to open directory \"%s\""
+msgstr "không thể mở thư mục \"%s\""
+
+#: src/sysctl.c:557
+msgid "strdup key"
+msgstr ""
+
+#: src/sysctl.c:564 src/sysctl.c:571 src/sysctl.c:604
+#, c-format
+msgid "setting key \"%s\""
+msgstr "đặt khóa \"%s\""
+
+#: src/sysctl.c:581
+#, fuzzy, c-format
+msgid "\"%s\" is an unknown key%s"
+msgstr "\"%s\" là một khóa chưa biết"
+
+#: src/sysctl.c:582 src/sysctl.c:591 src/sysctl.c:595
+#, fuzzy
+msgid ", ignoring"
+msgstr "không phân biệt HOA/thÆ°á»ng"
+
+#: src/sysctl.c:590
+#, fuzzy, c-format
+msgid "permission denied on key \"%s\"%s"
+msgstr "không đủ thẩm quyá»n vá»›i khóa “%sâ€"
+
+#: src/sysctl.c:594
+#, fuzzy, c-format
+msgid "setting key \"%s\"%s"
+msgstr "đặt khóa \"%s\""
+
+#: src/sysctl.c:669
+#, c-format
+msgid "%s(%d): invalid syntax, continuing..."
+msgstr "%s(%d): cú pháp không hợp lệ, tiếp tục..."
+
+#: src/sysctl.c:761
+#, c-format
+msgid ""
+"GLOB_TILDE is not supported on your platform, the tilde in \"%s\" won't be "
+"expanded."
+msgstr ""
+"GLOB_TILDE không được há»— trợ trên ná»n tảng của bạn, dấu sóng trong \"%s\" sẽ "
+"không được mở rộng."
+
+#: src/sysctl.c:767
+msgid "glob failed"
+msgstr "glob gặp lỗi"
+
+#: src/sysctl.c:773
+#, c-format
+msgid "cannot open \"%s\""
+msgstr "không thể mở \"%s\""
+
+#: src/sysctl.c:877 src/sysctl.c:884
+#, c-format
+msgid "* Applying %s ...\n"
+msgstr "* Äang áp dụng %s ...\n"
+
+#: src/sysctl.c:1050
+#, c-format
+msgid ""
+"no variables specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+"chưa chỉ ra biến nào\n"
+"Hãy chạy lệnh “%s --help†để có thêm thông tin."
+
+#: src/sysctl.c:1054
+#, c-format
+msgid ""
+"options -N and -q cannot coexist\n"
+"Try `%s --help' for more information."
+msgstr ""
+"các tùy chá»n -N và -q không thể cùng tồn tại\n"
+"Chạy lệnh “%s --help†để biết chi tiết."
+
+#: src/tload.c:75 src/tload.c:77
+msgid "screen too small or too large"
+msgstr ""
+
+#: src/tload.c:80
+msgid "screen too small"
+msgstr ""
+
+#: src/tload.c:96
+#, c-format
+msgid " %s [options] [tty]\n"
+msgstr " %s [các-tùy-chá»n] [tty]\n"
+
+#: src/tload.c:98
+msgid " -d, --delay <secs> update delay in seconds\n"
+msgstr " -d, --delay <giây> trễ cập nhật trong số giây này\n"
+
+#: src/tload.c:99
+msgid " -s, --scale <num> vertical scale\n"
+msgstr " -s, --scale <số> tá»· lệ biến đổi dá»c\n"
+
+#: src/tload.c:137
+msgid "scale cannot be negative"
+msgstr "tỷ lệ không thể âm"
+
+#: src/tload.c:144 src/vmstat.c:1051
+msgid "too large delay value"
+msgstr "giá trị trễ quá lớn"
+
+#: src/tload.c:159
+msgid "can not open tty"
+msgstr "không thể mở tty"
+
+#: src/tload.c:182
+msgid "Load average file /proc/loadavg does not exist"
+msgstr ""
+
+#: src/tload.c:185
+msgid "Unable to get load average"
+msgstr ""
+
+#: src/tload.c:227 src/tload.c:229
+msgid "writing to tty failed"
+msgstr "gặp lỗi khi ghi ra tty"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The following line pairs contain only plain text and consist of:
+#. . 1) a field name/column header - mostly upper case
+#. . 2) the related description - both upper and lower case
+#. .
+#. . To avoid truncation on the main top display, each column header
+#. . is noted with its maximum size, while a few are 'variable' width.
+#. . Names for the latter should probably be 10 or fewer characters.
+#. .
+#. . Those fields shown with a '+' are also eligible for user resizing
+#. . using the 'X' command. That means the default width might produce
+#. . truncation but need not if widened (see the man page 'X' command).
+#. .
+#. . All headers are subject to a maximum of 8 on the Fields Management
+#. . screen where truncation is entirely acceptable.
+#. .
+#. . The associated descriptions are always limited to 20 characters,
+#. . and are used only on the Fields Management screen.
+#. .
+#. . In all cases, fewer characters are just fine.
+#. .
+#. Translation Hint: maximum 'PID' = 5
+#: src/top/top_nls.c:152
+msgid "PID"
+msgstr "PID"
+
+#: src/top/top_nls.c:153
+msgid "Process Id"
+msgstr "Mã tiến trình"
+
+#. Translation Hint: maximum 'PPID' = 5
+#: src/top/top_nls.c:155
+msgid "PPID"
+msgstr "PPID"
+
+#: src/top/top_nls.c:156
+msgid "Parent Process pid"
+msgstr "mã số tiến trình cha"
+
+#. Translation Hint: maximum 'UID' = 5 +
+#: src/top/top_nls.c:158
+msgid "UID"
+msgstr "UID"
+
+#: src/top/top_nls.c:159
+msgid "Effective User Id"
+msgstr "Mã số ngÆ°á»i dùng chịu tác Ä‘á»™ng"
+
+#. Translation Hint: maximum 'USER' = 8 +
+#: src/top/top_nls.c:161 src/w.c:799
+msgid "USER"
+msgstr "NG_DÙNG"
+
+#: src/top/top_nls.c:162
+msgid "Effective User Name"
+msgstr "NgÆ°á»i dùng chịu tác Ä‘á»™ng"
+
+#. Translation Hint: maximum 'RUID' = 5 +
+#: src/top/top_nls.c:164
+msgid "RUID"
+msgstr "RUID"
+
+#: src/top/top_nls.c:165
+msgid "Real User Id"
+msgstr "Mã số ngÆ°á»i dùng thật"
+
+#. Translation Hint: maximum 'RUSER' = 8 +
+#: src/top/top_nls.c:167
+msgid "RUSER"
+msgstr "RUSER"
+
+#: src/top/top_nls.c:168
+msgid "Real User Name"
+msgstr "Tên ngÆ°á»i dùng thật"
+
+#. Translation Hint: maximum 'SUID' = 5 +
+#: src/top/top_nls.c:170
+msgid "SUID"
+msgstr "SUID"
+
+#: src/top/top_nls.c:171
+msgid "Saved User Id"
+msgstr "Mã số ngÆ°á»i dùng đã lÆ°u"
+
+#. Translation Hint: maximum 'SUSER' = 8 +
+#: src/top/top_nls.c:173
+msgid "SUSER"
+msgstr "SUSER"
+
+#: src/top/top_nls.c:174
+msgid "Saved User Name"
+msgstr "Tên ngÆ°á»i dùng đã lÆ°u"
+
+#. Translation Hint: maximum 'GID' = 5 +
+#: src/top/top_nls.c:176
+msgid "GID"
+msgstr "GID"
+
+#: src/top/top_nls.c:177
+msgid "Group Id"
+msgstr "Mã nhóm"
+
+#. Translation Hint: maximum 'GROUP' = 8 +
+#: src/top/top_nls.c:179
+msgid "GROUP"
+msgstr "NHÓM"
+
+#: src/top/top_nls.c:180
+msgid "Group Name"
+msgstr "Tên nhóm"
+
+#. Translation Hint: maximum 'PGRP' = 5
+#: src/top/top_nls.c:182
+msgid "PGRP"
+msgstr "PGRP"
+
+#: src/top/top_nls.c:183
+msgid "Process Group Id"
+msgstr "Mã số nhóm tiến trình"
+
+#. Translation Hint: maximum 'TTY' = 8 +
+#: src/top/top_nls.c:185
+msgid "TTY"
+msgstr "TTY"
+
+#: src/top/top_nls.c:186
+msgid "Controlling Tty"
+msgstr "Äang Ä‘iá»u khiển Tty"
+
+#. Translation Hint: maximum 'TPGID' = 5
+#: src/top/top_nls.c:188
+msgid "TPGID"
+msgstr "TPGID"
+
+#: src/top/top_nls.c:189
+msgid "Tty Process Grp Id"
+msgstr "Mã số nhóm tiến trình Tty"
+
+#. Translation Hint: maximum 'SID' = 5
+#: src/top/top_nls.c:191
+msgid "SID"
+msgstr "SID"
+
+#: src/top/top_nls.c:192
+msgid "Session Id"
+msgstr "Mã số phiên chạy"
+
+#. Translation Hint: maximum 'PR' = 3
+#: src/top/top_nls.c:194
+msgid "PR"
+msgstr "PR"
+
+#: src/top/top_nls.c:195
+msgid "Priority"
+msgstr "Ưu tiên"
+
+#. Translation Hint: maximum 'NI' = 3
+#: src/top/top_nls.c:197
+msgid "NI"
+msgstr "NI"
+
+#: src/top/top_nls.c:198
+msgid "Nice Value"
+msgstr "Giá trị nice"
+
+#. Translation Hint: maximum 'nTH' = 3
+#: src/top/top_nls.c:200
+msgid "nTH"
+msgstr "nTH"
+
+#: src/top/top_nls.c:201
+msgid "Number of Threads"
+msgstr "Số tuyến trình"
+
+#. Translation Hint: maximum 'P' = 1
+#: src/top/top_nls.c:203
+msgid "P"
+msgstr "P"
+
+#: src/top/top_nls.c:204
+msgid "Last Used Cpu (SMP)"
+msgstr "Cpu đã dùng cuối(SMP)"
+
+#. Translation Hint: maximum '%CPU' = 4
+#: src/top/top_nls.c:206
+#, c-format
+msgid "%CPU"
+msgstr "%CPU"
+
+#: src/top/top_nls.c:207
+msgid "CPU Usage"
+msgstr "Mức tiêu dùng CPU"
+
+#. Translation Hint: maximum '' = 6
+#: src/top/top_nls.c:209
+msgid "TIME"
+msgstr "GIỜ"
+
+#: src/top/top_nls.c:210
+msgid "CPU Time"
+msgstr "Thá»i gian CPU"
+
+#. Translation Hint: maximum 'TIME+' = 9
+#: src/top/top_nls.c:212
+msgid "TIME+"
+msgstr "THGIAN+"
+
+#: src/top/top_nls.c:213
+msgid "CPU Time, hundredths"
+msgstr "Thá»i gian CPU, phần trăm"
+
+#. Translation Hint: maximum '%MEM' = 4
+#: src/top/top_nls.c:215
+msgid "%MEM"
+msgstr "%MEM"
+
+#: src/top/top_nls.c:216
+msgid "Memory Usage (RES)"
+msgstr "Dùng bộ nhớ (RES)"
+
+#. Translation Hint: maximum 'VIRT' = 7
+#: src/top/top_nls.c:218
+msgid "VIRT"
+msgstr "VIRT"
+
+#: src/top/top_nls.c:219
+msgid "Virtual Image (KiB)"
+msgstr "Ảnh ảo (KiB)"
+
+#. Translation Hint: maximum 'SWAP' = 6
+#: src/top/top_nls.c:221
+msgid "SWAP"
+msgstr "SWAP"
+
+#: src/top/top_nls.c:222
+msgid "Swapped Size (KiB)"
+msgstr "Kích cỡ tráo đổi (KiB)"
+
+#. Translation Hint: maximum 'RES' = 6
+#: src/top/top_nls.c:224
+msgid "RES"
+msgstr "RES"
+
+#: src/top/top_nls.c:225
+msgid "Resident Size (KiB)"
+msgstr "Kích cỡ thÆ°á»ng trú (KiB)"
+
+#. Translation Hint: maximum 'CODE' = 4
+#: src/top/top_nls.c:227
+msgid "CODE"
+msgstr "MÃ"
+
+#: src/top/top_nls.c:228
+msgid "Code Size (KiB)"
+msgstr "Kích cỡ mã (KiB)"
+
+#. Translation Hint: maximum 'DATA' = 7
+#: src/top/top_nls.c:230
+msgid "DATA"
+msgstr "DATA"
+
+#: src/top/top_nls.c:231
+msgid "Data+Stack (KiB)"
+msgstr "Dữ liệu + Ngăn xếp (KiB)"
+
+#. Translation Hint: maximum 'SHR' = 6
+#: src/top/top_nls.c:233
+msgid "SHR"
+msgstr "SHR"
+
+#: src/top/top_nls.c:234
+msgid "Shared Memory (KiB)"
+msgstr "Bộ nhớ chia sẻ (KiB)"
+
+#. Translation Hint: maximum 'nMaj' = 4
+#: src/top/top_nls.c:236
+msgid "nMaj"
+msgstr "nMaj"
+
+#: src/top/top_nls.c:237
+msgid "Major Page Faults"
+msgstr "Lá»—i trang lá»›n"
+
+#. Translation Hint: maximum 'nMin' = 4
+#: src/top/top_nls.c:239
+msgid "nMin"
+msgstr "nMin"
+
+#: src/top/top_nls.c:240
+msgid "Minor Page Faults"
+msgstr "Lá»—i trang nhá»"
+
+#. Translation Hint: maximum 'nDRT' = 4
+#: src/top/top_nls.c:242
+msgid "nDRT"
+msgstr "nDRT"
+
+#: src/top/top_nls.c:243
+msgid "Dirty Pages Count"
+msgstr "Số lượng trang xấu"
+
+#. Translation Hint: maximum 'S' = 1
+#: src/top/top_nls.c:245
+msgid "S"
+msgstr "S"
+
+#: src/top/top_nls.c:246
+msgid "Process Status"
+msgstr "Trạng thái Tiến trình"
+
+#. Translation Hint: maximum 'COMMAND' = variable
+#: src/top/top_nls.c:248
+msgid "COMMAND"
+msgstr "LỆNH"
+
+#: src/top/top_nls.c:249
+msgid "Command Name/Line"
+msgstr "Dòng/Tên lệnh"
+
+#. Translation Hint: maximum 'WCHAN' = 10 +
+#: src/top/top_nls.c:251
+msgid "WCHAN"
+msgstr "WCHAN"
+
+#: src/top/top_nls.c:252
+msgid "Sleeping in Function"
+msgstr "Ngủ trong Hàm"
+
+#. Translation Hint: maximum 'Flags' = 8
+#: src/top/top_nls.c:254
+msgid "Flags"
+msgstr "Cá»"
+
+#: src/top/top_nls.c:255
+msgid "Task Flags <sched.h>"
+msgstr "CỠnhiệm vụ <sched.h>"
+
+#. Translation Hint: maximum 'CGROUPS' = variable
+#: src/top/top_nls.c:257
+msgid "CGROUPS"
+msgstr "CGROUPS"
+
+#: src/top/top_nls.c:258
+msgid "Control Groups"
+msgstr "Nhóm Ä‘iá»u khiển"
+
+#. Translation Hint: maximum 'SUPGIDS' = variable
+#: src/top/top_nls.c:260
+msgid "SUPGIDS"
+msgstr "SUPGIDS"
+
+#: src/top/top_nls.c:261
+msgid "Supp Groups IDs"
+msgstr "Mã số nhóm Supp"
+
+#. Translation Hint: maximum 'SUPGRPS' = variable
+#: src/top/top_nls.c:263
+msgid "SUPGRPS"
+msgstr "SUPGRPS"
+
+#: src/top/top_nls.c:264
+msgid "Supp Groups Names"
+msgstr "Tên nhóm Supp"
+
+#. Translation Hint: maximum 'TGID' = 5
+#: src/top/top_nls.c:266
+msgid "TGID"
+msgstr "TGID"
+
+#: src/top/top_nls.c:267
+msgid "Thread Group Id"
+msgstr "Mã số nhóm tuyến trình"
+
+#. Translation Hint: maximum 'OOMa' = 5
+#: src/top/top_nls.c:269
+msgid "OOMa"
+msgstr ""
+
+#: src/top/top_nls.c:270
+msgid "OOMEM Adjustment"
+msgstr ""
+
+#. Translation Hint: maximum 'OOMs' = 4
+#: src/top/top_nls.c:272
+msgid "OOMs"
+msgstr ""
+
+#: src/top/top_nls.c:273
+msgid "OOMEM Score current"
+msgstr ""
+
+#. Translation Hint: maximum 'ENVIRON' = variable
+#: src/top/top_nls.c:275
+msgid "ENVIRON"
+msgstr "BIẾN_MT"
+
+#. Translation Hint: the abbreviation 'vars' below is shorthand for
+#. 'variables'
+#: src/top/top_nls.c:278
+msgid "Environment vars"
+msgstr "Các biến môi trÆ°á»ng"
+
+#. Translation Hint: maximum 'vMj' = 3
+#: src/top/top_nls.c:280
+msgid "vMj"
+msgstr "vMj"
+
+#: src/top/top_nls.c:281
+msgid "Major Faults delta"
+msgstr "Vùng lỗi lớn"
+
+#. Translation Hint: maximum 'vMn' = 3
+#: src/top/top_nls.c:283
+msgid "vMn"
+msgstr "vMn"
+
+#: src/top/top_nls.c:284
+msgid "Minor Faults delta"
+msgstr "Vùng lá»—i nhá»"
+
+#. Translation Hint: maximum 'USED' = 6
+#: src/top/top_nls.c:286
+msgid "USED"
+msgstr "DÙNG"
+
+#: src/top/top_nls.c:287
+msgid "Res+Swap Size (KiB)"
+msgstr "Tài nguyên+Cỡ Swap (KiB)"
+
+#. Translation Hint: maximum 'nsIPC' = 10 +
+#: src/top/top_nls.c:289
+msgid "nsIPC"
+msgstr "nsIPC"
+
+#: src/top/top_nls.c:290
+msgid "IPC namespace Inode"
+msgstr "Nút không gian tên IPC"
+
+#. Translation Hint: maximum 'nsMNT' = 10 +
+#: src/top/top_nls.c:292
+msgid "nsMNT"
+msgstr "nsMNT"
+
+#: src/top/top_nls.c:293
+msgid "MNT namespace Inode"
+msgstr "Nút không gian tên MNT"
+
+#. Translation Hint: maximum 'nsNET' = 10 +
+#: src/top/top_nls.c:295
+msgid "nsNET"
+msgstr "nsNET"
+
+#: src/top/top_nls.c:296
+msgid "NET namespace Inode"
+msgstr "Nút không gian tên NET"
+
+#. Translation Hint: maximum 'nsPID' = 10 +
+#: src/top/top_nls.c:298
+msgid "nsPID"
+msgstr "nsPID"
+
+#: src/top/top_nls.c:299
+msgid "PID namespace Inode"
+msgstr "Nút không gian tên PID"
+
+#. Translation Hint: maximum 'nsUSER' = 10 +
+#: src/top/top_nls.c:301
+msgid "nsUSER"
+msgstr "nsUSER"
+
+#: src/top/top_nls.c:302
+msgid "USER namespace Inode"
+msgstr "Nút không gian tên USER"
+
+#. Translation Hint: maximum 'nsUTS' = 10 +
+#: src/top/top_nls.c:304
+msgid "nsUTS"
+msgstr "nsUTS"
+
+#: src/top/top_nls.c:305
+msgid "UTS namespace Inode"
+msgstr "Nút không gian tên UTS"
+
+#. Translation Hint: maximum 'LXC' = 8 +
+#: src/top/top_nls.c:307
+msgid "LXC"
+msgstr ""
+
+#: src/top/top_nls.c:308
+msgid "LXC container name"
+msgstr ""
+
+#. Translation Hint: maximum 'RSan' = 6
+#: src/top/top_nls.c:310
+msgid "RSan"
+msgstr ""
+
+#: src/top/top_nls.c:311
+msgid "RES Anonymous (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'RSfd' = 6
+#: src/top/top_nls.c:313
+msgid "RSfd"
+msgstr ""
+
+#: src/top/top_nls.c:314
+msgid "RES File-based (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'RSlk' = 6
+#: src/top/top_nls.c:316
+msgid "RSlk"
+msgstr ""
+
+#: src/top/top_nls.c:317
+msgid "RES Locked (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'RSsh' = 6
+#: src/top/top_nls.c:319
+msgid "RSsh"
+msgstr ""
+
+#: src/top/top_nls.c:320
+#, fuzzy
+msgid "RES Shared (KiB)"
+msgstr "Bộ nhớ chia sẻ (KiB)"
+
+#. Translation Hint: maximum 'CGNAME' = variable
+#: src/top/top_nls.c:322
+msgid "CGNAME"
+msgstr ""
+
+#: src/top/top_nls.c:323
+#, fuzzy
+msgid "Control Group name"
+msgstr "Nhóm Ä‘iá»u khiển"
+
+#. Translation Hint: maximum 'NU' = 2
+#: src/top/top_nls.c:325
+msgid "NU"
+msgstr ""
+
+#: src/top/top_nls.c:326
+msgid "Last Used NUMA node"
+msgstr ""
+
+#. Translation Hint: maximum 'LOGID' = 5 +
+#: src/top/top_nls.c:328
+msgid "LOGID"
+msgstr ""
+
+#: src/top/top_nls.c:329
+#, fuzzy
+msgid "Login User Id"
+msgstr "Mã số ngÆ°á»i dùng thật"
+
+#. Translation Hint: maximum 'EXE' = variable
+#: src/top/top_nls.c:331
+msgid "EXE"
+msgstr ""
+
+#: src/top/top_nls.c:332
+msgid "Executable Path"
+msgstr ""
+
+#: src/top/top_nls.c:338
+msgid "Res Mem (smaps), KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'PSS' = 6
+#: src/top/top_nls.c:340
+#, fuzzy
+msgid "PSS"
+msgstr "RSS"
+
+#: src/top/top_nls.c:341
+msgid "Proportion RSS, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'PSan' = 6
+#: src/top/top_nls.c:343
+msgid "PSan"
+msgstr ""
+
+#: src/top/top_nls.c:344
+msgid "Proportion Anon, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'PSfd' = 6
+#: src/top/top_nls.c:346
+msgid "PSfd"
+msgstr ""
+
+#: src/top/top_nls.c:347
+msgid "Proportion File, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'PSsh' = 6
+#: src/top/top_nls.c:349
+msgid "PSsh"
+msgstr ""
+
+#: src/top/top_nls.c:350
+msgid "Proportion Shrd, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'USS' = 6
+#: src/top/top_nls.c:352
+#, fuzzy
+msgid "USS"
+msgstr "RSS"
+
+#: src/top/top_nls.c:353
+msgid "Unique RSS, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'ioR' = 6
+#: src/top/top_nls.c:355
+msgid "ioR"
+msgstr ""
+
+#: src/top/top_nls.c:356
+msgid "I/O Bytes Read"
+msgstr ""
+
+#. Translation Hint: maximum 'ioRop' = 5
+#: src/top/top_nls.c:358
+msgid "ioRop"
+msgstr ""
+
+#: src/top/top_nls.c:359
+msgid "I/O Read Operations"
+msgstr ""
+
+#. Translation Hint: maximum 'ioW' = 6
+#: src/top/top_nls.c:361
+msgid "ioW"
+msgstr ""
+
+#: src/top/top_nls.c:362
+msgid "I/O Bytes Written"
+msgstr ""
+
+#. Translation Hint: maximum 'ioWop' = 5
+#: src/top/top_nls.c:364
+msgid "ioWop"
+msgstr ""
+
+#: src/top/top_nls.c:365
+msgid "I/O Write Operations"
+msgstr ""
+
+#. Translation Hint: maximum 'AGID' = 5
+#: src/top/top_nls.c:367
+msgid "AGID"
+msgstr ""
+
+#: src/top/top_nls.c:368
+msgid "Autogroup Identifier"
+msgstr ""
+
+#. Translation Hint: maximum 'AGNI' = 4
+#: src/top/top_nls.c:370
+msgid "AGNI"
+msgstr ""
+
+#: src/top/top_nls.c:371
+#, fuzzy
+msgid "Autogroup Nice Value"
+msgstr "Giá trị nice"
+
+#. Translation Hint: maximum 'STARTED' = 7
+#: src/top/top_nls.c:373
+msgid "STARTED"
+msgstr ""
+
+#: src/top/top_nls.c:374
+msgid "Start Time from boot"
+msgstr ""
+
+#. Translation Hint: maximum 'ELAPSED' = 7
+#: src/top/top_nls.c:376
+msgid "ELAPSED"
+msgstr ""
+
+#: src/top/top_nls.c:377
+msgid "Elapsed Running Time"
+msgstr ""
+
+#. Translation Hint: maximum '%CUU' = 6
+#: src/top/top_nls.c:379
+#, c-format
+msgid "%CUU"
+msgstr ""
+
+#: src/top/top_nls.c:380
+msgid "CPU Utilization"
+msgstr ""
+
+#. Translation Hint: maximum '%CUC' = 7
+#: src/top/top_nls.c:382
+#, c-format
+msgid "%CUC"
+msgstr ""
+
+#: src/top/top_nls.c:383
+msgid "Utilization + child"
+msgstr ""
+
+#. Translation Hint: maximum 'nsCGROUP' = 10 +
+#: src/top/top_nls.c:385
+#, fuzzy
+msgid "nsCGROUP"
+msgstr "CGROUPS"
+
+#: src/top/top_nls.c:386
+#, fuzzy
+msgid "CGRP namespace Inode"
+msgstr "Nút không gian tên IPC"
+
+#. Translation Hint: maximum 'nsTIME' = 10 +
+#: src/top/top_nls.c:388
+#, fuzzy
+msgid "nsTIME"
+msgstr "GIỜ"
+
+#: src/top/top_nls.c:389
+#, fuzzy
+msgid "TIME namespace Inode"
+msgstr "Nút không gian tên IPC"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . This group of lines contains both plain text and c-format strings.
+#. .
+#. . Some strings reflect switches used to affect the running program
+#. . and should not be translated without also making corresponding
+#. . c-code logic changes.
+#. .
+#: src/top/top_nls.c:409
+#, fuzzy, c-format
+msgid ""
+"\tsignal %d (%s) was caught by %s, please\n"
+"\tsend bug reports to <procps@freelists.org>\n"
+msgstr ""
+"\ttín hiệu %d (%s) đã bị bắt bởi %s, vui lòng\n"
+"\txem http://www.debian.org/Bugs/Reporting\n"
+
+#: src/top/top_nls.c:439
+#, c-format
+msgid "bad delay interval '%s'"
+msgstr "khoảng nhịp trá»… sai “%sâ€"
+
+#: src/top/top_nls.c:440
+#, c-format
+msgid "bad iterations argument '%s'"
+msgstr "đối số lặp lại sai “%sâ€"
+
+#: src/top/top_nls.c:441
+#, c-format
+msgid "pid limit (%d) exceeded"
+msgstr "đã tới giới hạn mã số tiến trình (%d)"
+
+#: src/top/top_nls.c:442
+#, c-format
+msgid "bad pid '%s'"
+msgstr "mã số tiến trình sai “%sâ€"
+
+#: src/top/top_nls.c:443
+#, fuzzy, c-format
+msgid "-%c argument missing"
+msgstr "thiếu đối số"
+
+#: src/top/top_nls.c:444
+#, c-format
+msgid "bad width arg '%s'"
+msgstr "đối số Ä‘á»™ rá»™ng sai “%sâ€"
+
+#: src/top/top_nls.c:445
+#, fuzzy, c-format
+msgid "unknown option '%s'"
+msgstr ""
+"không hiểu tùy chá»n “%câ€\n"
+"Cách dùng:\n"
+" %s%s"
+
+#: src/top/top_nls.c:446
+msgid "-d disallowed in \"secure\" mode"
+msgstr "-d không cho phép trong chế độ \"secure\""
+
+#: src/top/top_nls.c:447
+msgid "-d requires positive argument"
+msgstr "tùy chá»n -d cần đối số dÆ°Æ¡ng"
+
+#: src/top/top_nls.c:448
+msgid "On"
+msgstr "Bật"
+
+#: src/top/top_nls.c:449
+msgid "Off"
+msgstr "Tắt"
+
+#: src/top/top_nls.c:450
+#, fuzzy, c-format
+msgid "%s from %s"
+msgstr "%s nằm trong gói phần má»m “%sâ€.\n"
+
+#: src/top/top_nls.c:451
+#, c-format
+msgid "Forest mode %s"
+msgstr "Chế độ forest %s"
+
+#: src/top/top_nls.c:452
+msgid "failed tty get"
+msgstr "gặp lỗi khi lấy tty"
+
+#: src/top/top_nls.c:453
+#, c-format
+msgid "failed tty set: %s"
+msgstr "gặp lỗi khi đặt tty: %s"
+
+#: src/top/top_nls.c:454
+msgid "Choose field group (1 - 4)"
+msgstr "Chá»n nhóm trÆ°á»ng (1 - 4)"
+
+#: src/top/top_nls.c:455
+msgid "Command disabled, 'A' mode required"
+msgstr "Lệnh bị tắt, cần chế Ä‘á»™ “Aâ€"
+
+#: src/top/top_nls.c:456
+#, c-format
+msgid "Command disabled, activate %s with '-' or '_'"
+msgstr "Lệnh bị tắt, kích hoạt %s bằng “-†or “_â€"
+
+#: src/top/top_nls.c:457
+msgid "No colors to map!"
+msgstr "Không có màu để ánh xạ!"
+
+#: src/top/top_nls.c:458
+#, c-format
+msgid "Failed '%s' open: %s"
+msgstr "Gặp lá»—i khi mở “%sâ€: %s"
+
+#: src/top/top_nls.c:459
+#, c-format
+msgid "Wrote configuration to '%s'"
+msgstr "Ghi cấu hình vào “%sâ€"
+
+#: src/top/top_nls.c:460
+#, c-format
+msgid "Change delay from %.1f to"
+msgstr "Äổi Ä‘á»™ trá»… từ %.1f thành"
+
+#: src/top/top_nls.c:461
+#, c-format
+msgid "Show threads %s"
+msgstr "Hiển thị tiến trình %s"
+
+#: src/top/top_nls.c:462
+#, c-format
+msgid "Irix mode %s"
+msgstr "chế độ Irix %s"
+
+#: src/top/top_nls.c:463
+#, c-format
+msgid "PID to signal/kill [default pid = %d]"
+msgstr "Mã số tiến trình để signal/kill [mặc định mã số tiến trình = %d]"
+
+#: src/top/top_nls.c:464
+#, c-format
+msgid "Send pid %d signal [%d/sigterm]"
+msgstr "Gửi tín hiệu mã số tiến trình %d [%d/sigterm]"
+
+#: src/top/top_nls.c:465
+#, c-format
+msgid "Failed signal pid '%d' with '%d': %s"
+msgstr "Gặp lá»—i khi signal mã số tiên strinhf “%d†vá»›i “%dâ€: %s"
+
+#: src/top/top_nls.c:466
+msgid "Invalid signal"
+msgstr "Tín hiệu không hợp lệ"
+
+#: src/top/top_nls.c:467
+#, c-format
+msgid "PID to renice [default pid = %d]"
+msgstr "mã số tiến trình cần renice [mặc định pid = %d]"
+
+#: src/top/top_nls.c:468
+#, c-format
+msgid "Renice PID %d to value"
+msgstr "Renice mã số tiến trình %d thành giá trị"
+
+#: src/top/top_nls.c:469
+#, c-format
+msgid "Failed renice of PID %d to %d: %s"
+msgstr "Gặp lỗi khi renice mã số tiến trình %d thành %d: %s"
+
+#: src/top/top_nls.c:470
+#, c-format
+msgid "Rename window '%s' to (1-3 chars)"
+msgstr "Äổi tên cá»­a sổ “%s†thành (1-3 ký tá»±)"
+
+#: src/top/top_nls.c:471
+#, c-format
+msgid "Cumulative time %s"
+msgstr "Tổng thá»i gian %s"
+
+#: src/top/top_nls.c:472
+#, c-format
+msgid "Maximum tasks = %d, change to (0 is unlimited)"
+msgstr "Nhiệm vụ tối đa = %d, đổi thành (0 là không giới hạn)"
+
+#: src/top/top_nls.c:473
+msgid "Invalid maximum"
+msgstr "Số tối đa không hợp lệ"
+
+#: src/top/top_nls.c:474
+msgid "Which user (blank for all)"
+msgstr "NgÆ°á»i dùng nào (để trống là tất cả)"
+
+#: src/top/top_nls.c:475
+msgid "Unknown command - try 'h' for help"
+msgstr "Không hiểu lệnh - hãy thử “h†để xem trợ giúp"
+
+#: src/top/top_nls.c:476
+#, fuzzy, c-format
+msgid "scroll coordinates: y = %d/%d (tasks), x = %d/%d (fields)"
+msgstr "hệ tá»a Ä‘á»™ cuá»™n: y = %d/%%d (nhiệm vụ), x = %d/%d (trÆ°á»ng)"
+
+#: src/top/top_nls.c:477
+msgid "failed memory allocate"
+msgstr "gặp lỗi khi tái cấp phát bộ nhớ"
+
+#: src/top/top_nls.c:478
+msgid "failed memory re-allocate"
+msgstr "gặp lỗi tái cấp phát bộ nhớ"
+
+#: src/top/top_nls.c:479
+msgid "Unacceptable floating point"
+msgstr "Không chấp nhận số thực dấu chấm động"
+
+#: src/top/top_nls.c:480
+msgid "Invalid user"
+msgstr "NgÆ°á»i dùng không hợp lệ"
+
+#: src/top/top_nls.c:481
+msgid "forest view"
+msgstr "hiển thị dạng cây"
+
+#: src/top/top_nls.c:482
+msgid "failed pid maximum size test"
+msgstr "gặp lỗi khi kiểm tra cỡ tối đa mã số tiến trình"
+
+#: src/top/top_nls.c:483
+msgid "failed number of cpus test"
+msgstr "gặp lỗi khi kiểm tra số lượng bộ vi xử lý"
+
+#: src/top/top_nls.c:484
+#, c-format
+msgid "incompatible rcfile, you should delete '%s'"
+msgstr "tập tin tài nguyên không tÆ°Æ¡ng thích, bạn nên xóa “%sâ€"
+
+#: src/top/top_nls.c:485
+#, c-format
+msgid "window entry #%d corrupt, please delete '%s'"
+msgstr "mục tin cá»­a sổ #%d sai há»ng, vui lòng xóa “%sâ€"
+
+#: src/top/top_nls.c:486
+msgid "Unavailable in secure mode"
+msgstr "Không sẵn sàng trong chế độ an ninh"
+
+#: src/top/top_nls.c:487
+msgid "Only 1 cpu detected"
+msgstr "Chỉ tìm thấy một cpu"
+
+#: src/top/top_nls.c:488
+msgid "Unacceptable integer"
+msgstr "Không thể chấp nhận số nguyên"
+
+#: src/top/top_nls.c:489
+msgid "conflicting process selections (U/p/u)"
+msgstr "chá»n tiến trình xung Ä‘á»™t (U/p/u)"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . kibibytes (1024 bytes)
+#: src/top/top_nls.c:492
+msgid "KiB"
+msgstr "KiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . mebibytes (1,048,576 bytes)
+#: src/top/top_nls.c:495
+msgid "MiB"
+msgstr "MiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . gibibytes (1,073,741,824 bytes)
+#: src/top/top_nls.c:498
+msgid "GiB"
+msgstr "GiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . tebibytes (1,099,511,627,776 bytes)
+#: src/top/top_nls.c:501
+msgid "TiB"
+msgstr "TiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . pebibytes (1,024 tebibytes)
+#: src/top/top_nls.c:504
+msgid "PiB"
+msgstr "PiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . exbibytes (1,024 pebibytes)
+#: src/top/top_nls.c:507
+msgid "EiB"
+msgstr "EiB"
+
+#: src/top/top_nls.c:508
+msgid "Threads"
+msgstr "Tuyến trình"
+
+#: src/top/top_nls.c:509
+msgid "Tasks"
+msgstr "Tác vụ"
+
+#. Translation Hint: The following "word" is meant to represent either a single
+#. . cpu or all of the processors in a multi-processor computer
+#. . (should be exactly 6 characters, excluding leading % & colon)
+#: src/top/top_nls.c:513
+#, fuzzy, c-format
+msgid "%Cpu(s):"
+msgstr "Cpu(s):"
+
+#. Translation Hint: The following "word" is meant to represent a single processor
+#. and 'the Cp' prefix will be combined with a core id: 'p', 'e' or 'u'
+#. . (if 'Cp' is translated, it must be exactly 2 characters long)
+#: src/top/top_nls.c:517
+#, fuzzy, c-format
+msgid "%%Cp%c%-3d:"
+msgstr "Cpu%-3d:"
+
+#. Translation Hint: The following word "another" must have 1 trailing space
+#: src/top/top_nls.c:519
+msgid "another "
+msgstr "cái khác"
+
+#: src/top/top_nls.c:520
+msgid "Locate next inactive, use \"L\""
+msgstr "Vị trí không hoạt động tiếp theo, dùng \"L\""
+
+#: src/top/top_nls.c:521
+msgid "Locate string"
+msgstr "Chuỗi định vị"
+
+#: src/top/top_nls.c:522
+#, c-format
+msgid "%s\"%s\" not found"
+msgstr "không tìm thấy %s\"%s\""
+
+#: src/top/top_nls.c:523
+#, c-format
+msgid "width incr is %d, change to (0 default, -1 auto)"
+msgstr "độ rộng của incr là %d, thay đổi thành (mặc định là 0, -1 là tự động)"
+
+#: src/top/top_nls.c:524
+msgid "rcfile has inspect/other-filter error(s), save anyway?"
+msgstr ""
+
+#: src/top/top_nls.c:525
+#, c-format
+msgid "unrecognized field name '%s'"
+msgstr "không thừa nhận tên trÆ°á»ng “%sâ€"
+
+#: src/top/top_nls.c:526
+msgid "even using field names only, window is now too small"
+msgstr "ngay cả khi chỉ dùng tên trÆ°á»ng, cá»­a sổ bây giá» cÅ©ng quá nhá»"
+
+#: src/top/top_nls.c:527
+msgid "Open Files"
+msgstr "Tập tin đang mở"
+
+#: src/top/top_nls.c:528
+msgid "NUMA Info"
+msgstr "Thông tin NUMA"
+
+#: src/top/top_nls.c:529
+msgid "Log"
+msgstr "Nhật ký"
+
+#: src/top/top_nls.c:530
+msgid ""
+"the '=' key will eventually show the actual file read or command(s) "
+"executed ..."
+msgstr ""
+"phím “=†sẽ Ä‘Æ°a ra tập tin thá»±c Ä‘á»c cuối cùng hoặc lệnh đã thá»±c hiện ..."
+
+#: src/top/top_nls.c:531
+msgid "demo"
+msgstr "thá»­"
+
+#: src/top/top_nls.c:532
+#, fuzzy, c-format
+msgid ""
+"This is simulated output representing the contents of some file or the "
+"output\n"
+"from some command. Exactly which commands and/or files are solely up to "
+"you.\n"
+"\n"
+"Although this text is for information purposes only, it can still be "
+"scrolled\n"
+"and searched like real output will be. You are encouraged to experiment "
+"with\n"
+"those features as explained in the prologue above.\n"
+"\n"
+"To enable real Inspect functionality, entries must be added to the end of "
+"the\n"
+"top personal personal configuration file. You could use your favorite "
+"editor\n"
+"to accomplish this, taking care not to disturb existing entries.\n"
+"\n"
+"Another way to add entries is illustrated below, but it risks overwriting "
+"the\n"
+"rcfile. Redirected echoes must not replace (>) but append (>>) to that "
+"file.\n"
+"\n"
+" /bin/echo -e \"pipe\\tOpen Files\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+" /bin/echo -e \"file\\tNUMA Info\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+" /bin/echo -e \"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr\" >> ~/."
+"toprc\n"
+"\n"
+"If you don't know the location or name of the top rcfile, use the 'W' "
+"command\n"
+"and note those details. After backing up the current rcfile, try issuing "
+"the\n"
+"above echoes exactly as shown, replacing '.toprc' as appropriate. The "
+"safest\n"
+"approach would be to use copy then paste to avoid any typing mistakes.\n"
+"\n"
+"Finally, restart top to reveal what actual Inspect entries combined with "
+"this\n"
+"new command can offer. The possibilities are endless, especially "
+"considering\n"
+"that 'pipe' type entries can include shell scripts too!\n"
+"\n"
+"For additional important information, please consult the top(1) man "
+"document.\n"
+"Then, enhance top with your very own customized 'file' and/or 'pipe' "
+"entries.\n"
+"\n"
+"Enjoy!\n"
+msgstr ""
+"Cái này mô phá»ng đầu ra đại diện cho ná»™i dung của má»™t số tập tin hay đầu "
+"vào\n"
+"từ một số lệnh. Chính xác như các lệnh và/hoặc tập tin độc nhất cho bạn.\n"
+"\n"
+"Mặc dù phần này chỉ với mục đích thông tin, nhưng nó vẫn được cuộn và tìm\n"
+"kiếm giống như là kết xuất sẽ thế. Bạn được khuyến khích thử nghiệm với\n"
+"những tính năng như là được giải thích ở trong phần mở đầu ở trên.\n"
+"\n"
+"Äể bật tính năng Kiểm soát thá»±c, các mục tin phải được thêm vào cuối của\n"
+"tập tin cấu hình các nhân top. Bạn có thể dùng một trình biên soạn ưa "
+"thích\n"
+"để thực hiện việc này, cẩn thận đừng làm xáo trộn các mục sẵn có.\n"
+"\n"
+"Cách khác để thêm các mục là theo các chỉ dẫn phía dưới, nhưng hãy cẩn thận "
+"vì nó\n"
+"có thể đè lên tập tin tài nguyên. Các lệnh echo được chuyển hướng phải "
+"không\n"
+"thay (>) nhưng thêm (>>) vào tập tin đó.\n"
+"\n"
+" /bin/echo -e \"pipe\\tMở Tập tin\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+" /bin/echo -e \"file\\tThông tin NUMA\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+" /bin/echo -e \"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr\" >> ~/."
+"toprc\n"
+"\n"
+"Nếu bạn không biết vị trí hay tên của tập tin tài nguyên, thì dùng lệnh “Wâ€\n"
+"ghi chép những thứ chi tiết. Sau khi trở lại tập tin tài nguyên hiện tại,\n"
+"hay thử phần xuất các lệnh echo ở trên chính xác như được trình bày, thay "
+"thế\n"
+"“.toprc†cho thích hợp. Cách tiếp cận nhanh nhất có thể là dùng lệnh chép/"
+"dán\n"
+"để tránh lỗi đánh máy.\n"
+"\n"
+"Cuối cùng, khởi động lại top để khám phá các mục Kiểm soát thực tế được tổ "
+"hợp với\n"
+"lệnh mới có thể mang lại. Các khả năng có thể là chạy mãi không dùng, đặt "
+"biệt là\n"
+"xem xét xem mục tin kiểu “pipe†có thể bao gồm văn lệnh hệ vỠnữa!\n"
+"\n"
+"Äể có thêm thông tin quan trá»ng, vui lòng tham khảo tài liệu top.\n"
+"Sau đó tăng cÆ°á»ng top vá»›i những mục “file†hay “pipe†được cá nhân\n"
+"hóa toàn diện của bạn.\n"
+"\n"
+"Chúc vui!\n"
+
+#: src/top/top_nls.c:564
+msgid "to enable 'Y' press <Enter> then type 'W' and restart top"
+msgstr "để bật “Y†nhấn <Enter> sau đó gõ “W†và khởi động lại top"
+
+#: src/top/top_nls.c:565
+msgid "to enable 'Y' please consult the top man page (press Enter)"
+msgstr "để bật “Y†hãy xem trang hướng dẫn lệnh top (nhấn Enter)"
+
+#: src/top/top_nls.c:566
+#, c-format
+msgid "Selection failed with: %s\n"
+msgstr "Việc chá»n gặp lá»—i vá»›i: %s\n"
+
+#: src/top/top_nls.c:567
+#, c-format
+msgid "unable to inspect, pid %d not found"
+msgstr "không thể Ä‘iá»u tra, không tìm thấy mã số tiến trình %d"
+
+#: src/top/top_nls.c:568
+#, c-format
+msgid "inspect at PID [default pid = %d]"
+msgstr "Ä‘iá»u tra tại PID [mặc định mã số tiến trình = %d]"
+
+#: src/top/top_nls.c:569
+#, c-format
+msgid "%s: %*d-%-*d lines, %*d-%*d columns, %lu bytes read"
+msgstr "%s: %*d-%-*d dòng, %*d-%*d cá»™t, Ä‘á»c %lu byte"
+
+#: src/top/top_nls.c:570
+#, fuzzy
+msgid "patience please, working ..."
+msgstr "hãy nhẫn nại, đang chạy..."
+
+#: src/top/top_nls.c:571
+msgid "working, use Ctrl-C to end ..."
+msgstr ""
+
+#. Translation Hint: Below are 2 abbreviations which can be as long as needed:
+#. . FLD = FIELD, VAL = VALUE
+#: src/top/top_nls.c:574
+#, c-format
+msgid "add filter #%d (%s) as: [!]FLD?VAL"
+msgstr "thêm bá»™ lá»c #%d (%s) nhÆ°: [!]FLD?VAL"
+
+#: src/top/top_nls.c:575
+msgid "ignoring case"
+msgstr "không phân biệt HOA/thÆ°á»ng"
+
+#: src/top/top_nls.c:576
+msgid "case sensitive"
+msgstr "phân biệt HOA/thÆ°á»ng"
+
+#: src/top/top_nls.c:577
+msgid "duplicate filter was ignored"
+msgstr "bá»™ lá»c bị trùng sẽ bá» qua"
+
+#: src/top/top_nls.c:578
+#, c-format
+msgid "'%s' filter delimiter is missing"
+msgstr "“%s†thiếu bá»™ phân cách bá»™ lá»c"
+
+#: src/top/top_nls.c:579
+#, c-format
+msgid "'%s' filter value is missing"
+msgstr "“%s†thiếu giá trị lá»c"
+
+#: src/top/top_nls.c:580
+msgid "include"
+msgstr "bao gồm"
+
+#: src/top/top_nls.c:581
+msgid "exclude"
+msgstr "loại trừ"
+
+#: src/top/top_nls.c:582
+#, c-format
+msgid "<Enter> to resume, filters: %s"
+msgstr "Bấm <Enter> để phục hồi, các bá»™ lá»c: %s"
+
+#: src/top/top_nls.c:583
+msgid "none"
+msgstr "không"
+
+#. Translation Hint: The following word 'Node' should be exactly
+#. 4 characters, excluding leading %%, fmt chars & colon)
+#: src/top/top_nls.c:586
+#, fuzzy, c-format
+msgid "%%Node%-2d:"
+msgstr "Nút %-2d:"
+
+#: src/top/top_nls.c:587
+#, fuzzy, c-format
+msgid "expand which numa node (0-%d)"
+msgstr "mở rộng nút nào (0-%d)"
+
+#: src/top/top_nls.c:588
+#, fuzzy
+msgid "invalid numa node"
+msgstr "nút không hợp lệ"
+
+#: src/top/top_nls.c:589
+msgid "sorry, NUMA extensions unavailable"
+msgstr "rất tiếc, phần mở rộng NUMA không sẵn có"
+
+#. Translation Hint: 'Mem ' is an abbreviation for physical memory/ram
+#. . 'Swap' represents the linux swap file --
+#. . please make both translations exactly 4 characters,
+#. . padding with extra spaces as necessary
+#: src/top/top_nls.c:594
+msgid "Mem "
+msgstr "BNhá»›"
+
+#: src/top/top_nls.c:595
+msgid "Swap"
+msgstr "TÄổi"
+
+#: src/top/top_nls.c:596
+#, c-format
+msgid "library failed memory statistics, at %d: %s"
+msgstr ""
+
+#: src/top/top_nls.c:597
+#, c-format
+msgid "library failed cpu statistics, at %d: %s"
+msgstr ""
+
+#: src/top/top_nls.c:598
+#, c-format
+msgid "library failed pids statistics, at %d: %s"
+msgstr ""
+
+#: src/top/top_nls.c:599
+#, fuzzy, c-format
+msgid "bad memory scaling arg '%s'"
+msgstr "đối số lặp lại sai “%sâ€"
+
+#: src/top/top_nls.c:600
+#, fuzzy, c-format
+msgid "PID to collapse/expand [default pid = %d]"
+msgstr "mã số tiến trình cần renice [mặc định pid = %d]"
+
+#: src/top/top_nls.c:601
+msgid "wrong mode, command inactive"
+msgstr ""
+
+#: src/top/top_nls.c:602
+msgid "saving prevents older top from reading, save anyway?"
+msgstr ""
+
+#: src/top/top_nls.c:603
+#, fuzzy, c-format
+msgid "failed sem_init() at %d: %s"
+msgstr "gặp lỗi khi đặt tty: %s"
+
+#: src/top/top_nls.c:604
+#, fuzzy, c-format
+msgid "failed pthread_create() at %d: %s"
+msgstr "gặp lỗi khi mở /proc/stat: %s"
+
+#: src/top/top_nls.c:605
+msgid "sorry, restricted namespace with reduced functionality"
+msgstr ""
+
+#: src/top/top_nls.c:606
+#, c-format
+msgid "set pid %d AGNI value to"
+msgstr ""
+
+#: src/top/top_nls.c:607
+msgid "valid AGNI range is -20 to +19"
+msgstr ""
+
+#: src/top/top_nls.c:608
+#, fuzzy, c-format
+msgid "autogroup open failed, %s"
+msgstr "không thể mở tập tin %s"
+
+#: src/top/top_nls.c:609
+#, c-format
+msgid "autogroup write failed, %s"
+msgstr ""
+
+#: src/top/top_nls.c:610
+#, c-format
+msgid "command line for pid %d, %s"
+msgstr ""
+
+#: src/top/top_nls.c:611
+#, c-format
+msgid "control groups for pid %d, %s"
+msgstr ""
+
+#: src/top/top_nls.c:612
+#, fuzzy, c-format
+msgid "environment for pid %d, %s"
+msgstr "Các biến môi trÆ°á»ng"
+
+#: src/top/top_nls.c:613
+#, c-format
+msgid "namespaces for pid %d, %s"
+msgstr ""
+
+#: src/top/top_nls.c:614
+msgid "n/a"
+msgstr ""
+
+#: src/top/top_nls.c:615
+#, c-format
+msgid "supplementary groups for pid %d, %s"
+msgstr ""
+
+#: src/top/top_nls.c:616
+msgid "message log, last 10 messages:"
+msgstr ""
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The next several text groups contain special escape sequences
+#. . representing values used to index a table at run-time.
+#. .
+#. . Each such sequence consists of a tilde (~) followed by an ascii
+#. . number in the range of '1' - '8'. Examples are '~2', '~8', etc.
+#. . These escape sequences must never themselves be translated but
+#. . could be deleted.
+#. .
+#. . If you remove these escape sequences (both tilde and number) it
+#. . would make translation easier. However, the ability to display
+#. . colors and bold text at run-time will have been lost.
+#. .
+#. . Additionally, each of these text groups was designed to display
+#. . in a 80x24 terminal window. Hopefully, any translations will
+#. . adhere to that goal lest the translated text be truncated.
+#. .
+#. . If you would like additional information regarding these strings,
+#. . please see the prologue to the show_special function in the top.c
+#. . source file.
+#. .
+#. . Caution:
+#. . The next three items represent pages for interacting with a user.
+#. . In all cases, the last lines of text must be treated with care.
+#. .
+#. . They must not end with a newline character so that at runtime the
+#. . cursor will remain on that final text line.
+#. .
+#. . Also, the special sequences (tilde+number) must not appear on the
+#. . last line (the one without the newline). So please avoid any line
+#. . wraps that could place them there.
+#. .
+#: src/top/top_nls.c:661
+#, fuzzy, c-format
+msgid ""
+"Help for Interactive Commands~2 - %s\n"
+"Window ~1%s~6: ~1Cumulative mode ~3%s~2. ~1System~6: ~1Delay ~3%.1f secs~2; "
+"~1Secure mode ~3%s~2.\n"
+"\n"
+" Z~5,~1B~5,E,e Global: '~1Z~2' colors; '~1B~2' bold; '~1E~2'/'~1e~2' "
+"summary/task memory scale\n"
+" l,t,m,I,0 Toggle: '~1l~2' load avg; '~1t~2' task/cpu; '~1m~2' memory; "
+"'~1I~2' Irix; '~10~2' zeros\n"
+" 1,2,3,4,5 Toggle: '~11~2/~12~2/~13~2' cpu/numa views; '~14~2' cpus "
+"abreast; '~15~2' P/E-cores\n"
+" f,X Fields: '~1f~2' add/remove/order/sort; '~1X~2' increase fixed-"
+"width fields\n"
+"\n"
+" L,&,<,> . Locate: '~1L~2'/'~1&~2' find/again; Move sort column: "
+"'~1<~2'/'~1>~2' left/right\n"
+" R,H,J,C . Toggle: '~1R~2' Sort; '~1H~2' Threads; '~1J~2' Num justify; "
+"'~1C~2' Coordinates\n"
+" c,i,S,j . Toggle: '~1c~2' Cmd name/line; '~1i~2' Idle; '~1S~2' Time; "
+"'~1j~2' Str justify\n"
+" x~5,~1y~5 . Toggle highlights: '~1x~2' sort field; '~1y~2' running "
+"tasks\n"
+" z~5,~1b~5 . Toggle: '~1z~2' color/mono; '~1b~2' bold/reverse (only if "
+"'x' or 'y')\n"
+" u,U,o,O . Filter by: '~1u~2'/'~1U~2' effective/any user; '~1o~2'/'~1O~2' "
+"other criteria\n"
+" n,#,^O . Set: '~1n~2'/'~1#~2' max tasks displayed; Show: ~1Ctrl~2+'~1O~2' "
+"other filter(s)\n"
+" V,v,F . Toggle: '~1V~2' forest view; '~1v~2' hide/show children; '~1F~2' "
+"keep focused\n"
+"\n"
+"%s ^G,K,N,U View: ctl groups ~1^G~2; cmdline ~1^K~2; environment ~1^N~2; "
+"supp groups ~1^U~2\n"
+" Y,!,^E,P Inspect '~1Y~2'; Combine Cpus '~1!~2'; Scale time ~1^E~2; View "
+"namespaces ~1^P~2\n"
+" W,q Write config file '~1W~2'; Quit '~1q~2'\n"
+" ( commands shown with '.' require a ~1visible~2 task display "
+"~1window~2 ) \n"
+"Press '~1h~2' or '~1?~2' for help with ~1Windows~2,\n"
+"Type 'q' or <Esc> to continue "
+msgstr ""
+"Phần trợ giúp cho lệnh tương tác~2 - %s\n"
+"Cửa sổ ~1%s~6: ~1Chế độ tích luỹ ~3%s~2. ~1Hệ thống~6: ~1Trễ ~3%.1f "
+"giây~2; ~1Chế độ an ninh ~3%s~2.\n"
+"\n"
+" Z~5,~1B~5,E,e Toàn cục: “~1Z~2†màu; “~1B~2†đậm; “~1E~2â€/“~1e~2†tá»· lệ "
+"bộ nhớ tổng/tác vụ\n"
+" l,t,m Bật/Tắt tóm lược: “~1l~2†tải tb; “~1t~2†tkê tác vụ/cpu; "
+"“~1m~2†thông tin bộ nhớ\n"
+" 0,1,2,3,I Bật/Tắt: “~10~2†zeros; “~11~2/~12~2/~13~2†hiển thị nút tên "
+"cpus hay numa; “~1I~2†chế độ Irix\n"
+" f,F,X TrÆ°á»ng: “~1f~2â€/“~1F~2†thêm/bá»/thứ tá»±/sắp xếp; “~1X~2†tăng Ä‘á»™ "
+"rá»™ng cố định của trÆ°á»ng\n"
+"\n"
+" L,&,<,> . Vị trí: “~1L~2â€/“~1&~2†tìm/tìm_lại; Di chuyển cá»™t sắp xếp: "
+"“~1<~2â€/“~1>~2†trái/phải\n"
+" R,H,V,J . Bật/Tắt: “~1R~2†Sắp xếp; “~1H~2†Tuyến trình; “~1V~2†Hiển thị "
+"dạng cây; “~1J~2†Số chỉnh\n"
+" c,i,S,j . Bật/Tắt: “~1c~2†tên/dòng lệnh; “~1i~2†Nghỉ; “~1S~2†Thá»i gian; "
+"“~1j~2†Chuỗi chỉnh\n"
+" x~5,~1y~5 . Bật/Tắt tô màu: “~1x~2†sắp xếp trÆ°á»ng; “~1y~2†tác vụ "
+"đang chạy\n"
+" z~5,~1b~5 . Bật/Tắt: “~1z~2†màu/đen trắng; “~1b~2†đậm/đảo (chỉ nếu "
+"“x†hoặc “yâ€)\n"
+" u,U,o,O . Lá»c theo: “~1u~2â€/“~1U~2†ngÆ°á»i chịu tác Ä‘á»™ng hay bất kỳ; "
+"“~1o~2â€/“~1O~2†tiêu chí khác\n"
+" n,#,^O . Äặt: “~1n~2â€/“~1#~2†tác vụ tối Ä‘a được hiển thị; Hiển thị: "
+"~1Ctrl~2+'~1O~2†các bá»™ lá»c khác\n"
+" C,... . Bật/Tắt tá»a Ä‘á»™ cuá»™n lá»i nhắn cho: ~1up~2,~1down~2,~1left~2,"
+"~1right~2,~1home~2,~1end~2\n"
+"\n"
+"%s W,Y Ghi tập tin cấu hình “~1W~2'; Kiểm tra đầu ra khác “~1Y~2â€\n"
+" q Quit\n"
+" ( các lệnh hiển thị với “.†cần một hiển thị tác vụ ~1khả dụng~2 "
+"~1cửa sổ~2 )\n"
+"Nhấn “~1h~2†hay “~1?~2†để có trợ giúp với ~1Cửa sổ~2,\n"
+"Gõ “q†hoặc <Esc> để tiếp tục "
+
+#: src/top/top_nls.c:687
+#, c-format
+msgid ""
+"Help for Windows / Field Groups~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+". Use multiple ~1windows~2, each with separate config opts (color,fields,"
+"sort,etc)\n"
+". The 'current' window controls the ~1Summary Area~2 and responds to your "
+"~1Commands~2\n"
+" . that window's ~1task display~2 can be turned ~1Off~2 & ~1On~2, growing/"
+"shrinking others\n"
+" . with ~1NO~2 task display, some commands will be ~1disabled~2 "
+"('i','R','n','c', etc)\n"
+" until a ~1different window~2 has been activated, making it the 'current' "
+"window\n"
+". You ~1change~2 the 'current' window by: ~1 1~2) cycling forward/backward;"
+"~1 2~2) choosing\n"
+" a specific field group; or~1 3~2) exiting the color mapping or fields "
+"screens\n"
+". Commands ~1available anytime -------------~2\n"
+" A . Alternate display mode toggle, show ~1Single~2 / ~1Multiple~2 "
+"windows\n"
+" g . Choose another field group and make it 'current', or change "
+"now\n"
+" by selecting a number from: ~1 1~2 =%s;~1 2~2 =%s;~1 3~2 =%s; "
+"or~1 4~2 =%s\n"
+". Commands ~1requiring~2 '~1A~2' mode~1 -------------~2\n"
+" G . Change the ~1Name~5 of the 'current' window/field group\n"
+" ~1*~4 a , w . Cycle through all four windows: '~1a~5' Forward; '~1w~5' "
+"Backward\n"
+" ~1*~4 - , _ . Show/Hide: '~1-~5' ~1Current~2 window; '~1_~5' all "
+"~1Visible~2/~1Invisible~2\n"
+" The screen will be divided evenly between task displays. But you can "
+"make\n"
+" some ~1larger~2 or ~1smaller~2, using '~1n~2' and '~1i~2' commands. Then "
+"later you could:\n"
+" ~1*~4 = , + . Rebalance tasks: '~1=~5' ~1Current~2 window; '~1+~5' "
+"~1Every~2 window\n"
+" (this also forces the ~1current~2 or ~1every~2 window to "
+"become visible)\n"
+"\n"
+"In '~1A~2' mode, '~1*~4' keys are your ~1essential~2 commands. Please try "
+"the '~1a~2' and '~1w~2'\n"
+"commands plus the 'g' sub-commands NOW. Press <Enter> to make 'Current' "
+msgstr ""
+"Phần trợ giúp cho Nhóm cá»­a sổ / trÆ°á»ng~2 - \"Cá»­a sổ hiện tại\" = ~1 %s ~6\n"
+"\n"
+". Dùng nhiá»u ~1cá»­a sổ~2, từng cái vá»›i tùy chá»n cấu hình riêng (màu,trÆ°á»ng,"
+"sắp xếp,v.v..)\n"
+". Cá»­a sổ “hiện tại†điá»u kiển ~1Vùng tổng hợp~2 và đáp ứng các ~1Câu lệnh~2 "
+"của bạn\n"
+" . cái mà ~1trình bày tác vụ~2 của cửa sổ có thể trả vỠ~1Off~2 & ~1On~2, "
+"co/giãn những cái khác\n"
+" . với ~1KHÔNG~2 trình bày tác vụ, một số lệnh có thể sẽ bị ~1tắt~2 "
+"(“iâ€,'Râ€,'nâ€,'câ€, v.v..)\n"
+" cho đến khi một ~1cửa sổ khác~2 đã kích hoạt, làm cho nó thành cửa sổ "
+"“hiện tạiâ€\n"
+". Bạn ~1đổi~2 cửa sổ “hiện tại†bằng: ~1 1~2) quay tròn tiếp/ngược;~1 2~2) "
+"chá»n\n"
+" má»™t nhóm trÆ°á»ng đặc biệt; hay~1 3~2) thoát khá»i ánh xạ mày hoặc màn hình "
+"trÆ°á»ng\n"
+". Các lệnh ~1sẵn sàng má»i lúc -------------~2\n"
+" A . Bật/tắt chế Ä‘á»™ trình bày luân phiên nhau, hiển thị ~1ÄÆ¡n~2 / "
+"~1Nhiá»u~2 cá»­a sổ\n"
+" g . Chá»n nhóm trÆ°á»ng khác và làm nó thành “hiện tạiâ€, hoặc đổi "
+"ngay\n"
+" bằng cách chá»n má»™t con số từ: ~1 1~2 =%s;~1 2~2 =%s;~1 3~2 "
+"=%s; hay~1 4~2 =%s\n"
+". Các lệnh ~1cầm~2 chế độ “~1A~2†~1 -------------~2\n"
+" G . Äổi ~1Tên~5 của nhóm cá»­a sổ/trÆ°á»ng “hiện tạiâ€\n"
+" ~1*~4 a , w . Quay tròn cả bốn cửa sổ: “~1a~5†VỠphía trước; “~1w~5†"
+"Ngược lại\n"
+" ~1*~4 - , _ . Hiện/Ẩn: “~1-~5†cá»­a sổ ~1Hiện tại~2; “~1_~5†má»i ~1Hữu "
+"hình~2/~1Vô hình~2\n"
+" Màn hình sẽ bị chia nhỠngay cả giữa các phần trình bày tác vụ. Nhưng bạn "
+"có thể làm cho\n"
+" má»™t số ~1lá»›n lên~2 hay ~1nhá» Ä‘i~2, dùng lệnh “~1n~2†và “~1i~2â€. Sau đó "
+"bạn có thể:\n"
+" ~1*~4 = , + . Tái cân bằng các tác vụ: “~1=~5†cửa sổ ~1Hiện hành~2; "
+"“~1+~5†~1Má»i~2 cá»­a sổ\n"
+" (cái này cÅ©ng đồng thá»i ép buá»™c cá»­a sổ ~1hiện tại~2 hay "
+"~1mỗi~2 trở nên hữu hình)\n"
+"\n"
+"Ở chế Ä‘á»™'~1A~2â€, phím “~1*~4†là các lệnh ~1cÆ¡ bản~2 của bạn. Hãy thá»­ lệnh "
+"“~1a~2†và “~1w~2â€\n"
+"cộng với lệnh con “g†NGAY. Nhấn <Enter> để tạo “Hiện tại†"
+
+#. Translation Notes ------------------------------------------------
+#. . The following 'Help for color mapping' simulated screen should
+#. . probably NOT be translated. It is terribly hard to follow in
+#. . this form and any translation could produce unpleasing results
+#. . that are unlikely to parallel the running top program.
+#. .
+#. . If you decide to proceed with translation, please take care
+#. . to not disturb the spaces and the tilde + number delimiters.
+#. .
+#: src/top/top_nls.c:722
+#, fuzzy, c-format
+msgid ""
+"Help for color mapping~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+" color - 04:25:44 up 8 days, 50 min, 7 users, load average:\n"
+" Tasks:~3 64 ~2total,~3 2 ~3running,~3 62 ~2sleeping,~3 0 ~2stopped,"
+"~3\n"
+" %%Cpu(s):~3 76.5 ~2user,~3 11.2 ~2system,~3 0.0 ~2nice,~3 12.3 "
+"~2idle~3\n"
+" ~1 Nasty Message! ~4 -or- ~1Input Prompt~5\n"
+" ~1 PID TTY PR NI %%CPU TIME+ VIRT SWAP S COMMAND ~6\n"
+" 17284 ~8pts/2 ~7 8 0 0.0 0:00.75 1380 0 S /bin/bash ~8\n"
+" ~1 8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z~7\n"
+" 11005 ~8? ~7 9 0 0.0 0:02.50 2852 1008 S amor -sessi~8\n"
+" available toggles: ~1B~2 =disable bold globally (~1%s~2),\n"
+" ~1z~2 =color/mono (~1%s~2), ~1b~2 =tasks \"bold\"/reverse (~1%s~2)\n"
+"\n"
+"1) Select a ~1target~2 as an upper case letter, ~1current target~2 is ~1 %c "
+"~4:\n"
+" S~2 = Summary Data,~1 M~2 = Messages/Prompts,\n"
+" H~2 = Column Heads,~1 T~2 = Task Information\n"
+"2) Select a ~1color~2 as a number or use the up/down arrow keys\n"
+" to raise/lower the %d colors value, ~1current color~2 is ~1 %d ~4:\n"
+" 0~2 = black,~1 1~2 = red, ~1 2~2 = green,~1 3~2 = yellow,\n"
+" 4~2 = blue, ~1 5~2 = magenta,~1 6~2 = cyan, ~1 7~2 = white\n"
+"\n"
+"3) Then use these keys when finished:\n"
+" 'q' or <Esc> to abort changes to window '~1%s~2'\n"
+" 'a' or 'w' to commit & change another, <Enter> to commit and end "
+msgstr ""
+"Trợ giúp cho ánh_xạ~2 màu - %s\n"
+"cửa sổ hiện tại: ~1%s~6\n"
+"\n"
+" màu - 04:25:44 chạy được 8 ngày, 50 phút, 7 ngÆ°á»i dùng, tải trung "
+"bình:\n"
+" Tác vụ:~3 64 ~2tổng,~3 2 ~3đang chạy,~3 62 ~2ngủ,~3 0 ~2dừng,~3\n"
+" %%Cpu(s):~3 76.5 ~2ngÆ°á»i dùng,~3 11.2 ~2hệ thống,~3 0.0 ~2tốt,~3 "
+"12.3 ~2nghỉ~3\n"
+" ~1 Nasty Message! ~4 -or- ~1Input Prompt~5\n"
+" ~1 PID TTY PR NI %%CPU TIME+ VIRT SWAP S COMMAND ~6\n"
+" 17284 ~8pts/2 ~7 8 0 0.0 0:00.75 1380 0 S /bin/bash ~8\n"
+" ~1 8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z~7\n"
+" 11005 ~8? ~7 9 0 0.0 0:02.50 2852 1008 S amor -sessi~8\n"
+" bật/tắt sẵn có: ~1B~2 =tắt in đậm toàn cục (~1%s~2),\n"
+" ~1z~2 =màu/đen_trắng (~1%s~2), ~1b~2 =tác vụ \"đậm\"/đảo (~1%s~2)\n"
+"\n"
+"1) chá»n má»™t ~1đích~2 là má»™t chữ cái in HOA, ~1đích hiện tại~2 là ~1 %c ~4:\n"
+" S~2 = Dữ liệu tóm lược,~1 M~2 = Messages/Prompts,\n"
+" H~2 = Äầu cá»™t,~1 T~2 = Thông tin tác vụ\n"
+"2) Chá»n má»™t ~1màu~2 là má»™t con số, ~1màu hiện tại~2 là ~1 %d ~4:\n"
+" 0~2 = Ä‘en,~1 1~2 = Ä‘á», ~1 2~2 = xanh lá,~1 3~2 = vàng,\n"
+" 4~2 = lam, ~1 5~2 = đỠthắm,~1 6~2 = xanh lá mạ, ~1 7~2 = trắng\n"
+"\n"
+"3) Dùng các phím sau khi hoàn tất:\n"
+" “q†bãi bá» các thay đổi vá»›i cá»­a sổ “~1%s~2â€\n"
+" “a†hay “w†để chuyển giao & thay đổi khác, <Enter> để chuyển giao và kết "
+"thúc "
+
+#. Translation Hint: As is true for the text above, the "keys" shown to the left and
+#. . also embedded in the translatable text (along with escape seqs)
+#. . should never themselves be translated.
+#: src/top/top_nls.c:751
+msgid ""
+" d,k,r,^R '~1d~2' set delay; '~1k~2' kill; '~1r~2' renice; ~1Ctrl~2+'~1R~2' "
+"renice autogroup\n"
+msgstr ""
+
+#. Translation Hint:
+#. . This Fields Management header should be 3 lines long so as
+#. . to allow 1 blank line before the fields & descriptions.
+#. . If absolutely necessary, 4 lines could be used (but never more).
+#. .
+#: src/top/top_nls.c:759
+#, c-format
+msgid ""
+"Fields Management~2 for window ~1%s~6, whose current sort field is ~1%s~2\n"
+" Navigate with Up/Dn, Right selects for move then <Enter> or Left "
+"commits,\n"
+" 'd' or <Space> toggles display, 's' sets sort. Use 'q' or <Esc> to end!\n"
+msgstr ""
+"Quản lý các trÆ°á»ng~2 cho cá»­a sổ ~1%s~6, của cái hiện tại sắp xếp trÆ°á»ng là "
+"~1%s~2\n"
+" Di chuyển bằng Up/Dn, Right chá»n cho di chuyển sau đó là <Enter> hoặc "
+"Left ủy thác,\n"
+" “d†hay <Phím cách> để bật tắt hiển thị, “s†đặt sắp xếp. Dùng “q†hay "
+"<Esc> để kết thúc!\n"
+
+#. Translation Hint:
+#. . The next 5 items must each be translated as a single line.
+#. .
+#: src/top/top_nls.c:767
+#, c-format
+msgid ""
+"%s:~3 %3u ~2total,~3 %3u ~2running,~3 %3u ~2sleeping,~3 %3u ~2stopped,~3 %3u "
+"~2zombie~3\n"
+msgstr ""
+"%s:~3 %3u ~2tổng,~3 %3u ~2chạy,~3 %3u ~2ngủ,~3 %3u ~2dừng,~3 %3u ~2ma~3\n"
+
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt
+#: src/top/top_nls.c:773
+#, fuzzy, c-format
+msgid ""
+"%s~3 %#5.1f ~2us,~3 %#5.1f ~2sy,~3 %#5.1f ~2ni,~3 %#5.1f ~2id,~3 %#5.1f ~2wa,"
+"~3 %#5.1f ~2hi,~3 %#5.1f ~2si~3 ~1"
+msgstr ""
+"%%%s~3 %#5.1f ~2us,~3 %#5.1f ~2sy,~3 %#5.1f ~2ni,~3 %#5.1f ~2id,~3 %#5.1f "
+"~2wa,~3 %#5.1f ~2hi,~3 %#5.1f ~2si~3\n"
+
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt, st = steal time
+#: src/top/top_nls.c:779
+#, fuzzy, c-format
+msgid ""
+"%s~3%#5.1f ~2us,~3%#5.1f ~2sy,~3%#5.1f ~2ni,~3%#5.1f ~2id,~3%#5.1f ~2wa,"
+"~3%#5.1f ~2hi,~3%#5.1f ~2si,~3%#5.1f ~2st~3 ~1"
+msgstr ""
+"%%%s~3%#5.1f ~2us,~3%#5.1f ~2sy,~3%#5.1f ~2ni,~3%#5.1f ~2id,~3%#5.1f ~2wa,"
+"~3%#5.1f ~2hi,~3%#5.1f ~2si,~3%#5.1f ~2st~3\n"
+
+#. Translation Hint: next 2 must be treated together, with WORDS above & below aligned
+#: src/top/top_nls.c:783
+#, fuzzy, c-format
+msgid ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used,~3 %9.9s~2buff/cache~3 "
+"~1 "
+msgstr ""
+"%s %s:~3 %9.9s~2tổng,~3 %9.9s~2trống,~3 %9.9s~2dùng,~3 %9.9s~2bộđệm/tạm~3\n"
+"%s %s:~3 %9.9s~2tổng,~3 %9.9s~2trống,~3 %9.9s~2dùng.~3 %9.9s~2%s sẵnsàng~3\n"
+
+#: src/top/top_nls.c:785
+#, fuzzy, c-format
+msgid ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used.~3 %9.9s~2avail %s~3"
+msgstr ""
+"%s %s:~3 %9.9s~2tổng,~3 %9.9s~2trống,~3 %9.9s~2dùng,~3 %9.9s~2bộđệm/tạm~3\n"
+"%s %s:~3 %9.9s~2tổng,~3 %9.9s~2trống,~3 %9.9s~2dùng.~3 %9.9s~2%s sẵnsàng~3\n"
+
+#. Translation Hint:
+#. . The next 2 headers for 'Inspection' must each be 3 lines or less
+#. .
+#: src/top/top_nls.c:791
+#, fuzzy, c-format
+msgid ""
+"Inspection~2 Pause at: pid ~1%d~6, running ~1%s~6\n"
+"Use~2: left/right then <Enter> to ~1select~5 an option; 'q' or <Esc> to "
+"~1end~5 !\n"
+"Options~2: ~1%s\n"
+msgstr ""
+"Äiá»u tra~2 Dừng tại: pid ~1%d~6 chạy ~1%s~6 dÆ°á»›i danh nghÄ©a ngÆ°á»i dùng "
+"~1%s~6\n"
+"Dùng~2: phím mÅ©i tên trái/phải sau đó bấm <Enter> để ~1chá»n~5 má»™t tùy chá»n; "
+"“q†hay <Esc> để ~1thoát~5 !\n"
+"Tùy chá»n~2: ~1%s\n"
+
+#: src/top/top_nls.c:796
+#, fuzzy, c-format
+msgid ""
+"Inspection~2 View at pid: ~1%s~3, running ~1%s~3. Locating: ~1%s~6\n"
+"Use~2: left/right/up/down/etc to ~1navigate~5 the output; 'L'/'&' to "
+"~1locate~5/~1next~5.\n"
+"Or~2: <Enter> to ~1select another~5; 'q' or <Esc> to ~1end~5 !\n"
+msgstr ""
+"Äiá»u tra~2 Xem tại: ~1%s~3, ~1%s~3, ~1%s~3. Vị trí: ~1%s~6\n"
+"Dùng~2: Phím mũi tên trái/phải/lên/xuống/v.v.. để ~1di chuyển~5 kết xuất; "
+"“Lâ€/“&†để ~1định vị~5/~1kế~5.\n"
+"Hay~2: <Enter> để ~1chá»n cái khác~5; “q†hay <Esc> để ~1thát~5 !\n"
+
+#: src/uptime.c:51 src/uptime.c:123
+msgid "Cannot get system uptime"
+msgstr ""
+
+#: src/uptime.c:67
+msgid " -p, --pretty show uptime in pretty format\n"
+msgstr " -p, --pretty hiển thị thá»i gian chạy ở định dạng đẹp\n"
+
+#: src/uptime.c:69
+msgid " -s, --since system up since\n"
+msgstr " -s, --since hệ thống bật từ\n"
+
+#: src/vmstat.c:220
+#, c-format
+msgid " %s [options] [delay [count]]\n"
+msgstr "%s [ các_tùy_chá»n ] [ trá»… [ số_lượng ] ]\n"
+
+#: src/vmstat.c:223
+msgid " -a, --active active/inactive memory\n"
+msgstr " -a, --active bộ nhớ hoạt hay không hoạt động\n"
+
+#: src/vmstat.c:224
+msgid " -f, --forks number of forks since boot\n"
+msgstr ""
+" -f, --forks số lượng tiến trình rẽ nhánh kể từ lúc khởi động\n"
+
+#: src/vmstat.c:225
+msgid " -m, --slabs slabinfo\n"
+msgstr " -m, --slabs thông tin slab\n"
+
+#: src/vmstat.c:226
+msgid " -n, --one-header do not redisplay header\n"
+msgstr " -n, --one-header không hiển thị lại dòng đầu\n"
+
+#: src/vmstat.c:227
+msgid " -s, --stats event counter statistics\n"
+msgstr " -s, --stats thống kê con đếm sự kiện\n"
+
+#: src/vmstat.c:228
+msgid " -d, --disk disk statistics\n"
+msgstr " -d, --disk thống kê đĩa\n"
+
+#: src/vmstat.c:229
+msgid " -D, --disk-sum summarize disk statistics\n"
+msgstr " -D, --disk-sum thống kê tổng thể đĩa\n"
+
+#: src/vmstat.c:230
+msgid " -p, --partition <dev> partition specific statistics\n"
+msgstr " -p, --partition <dev> thống kê phân vùng\n"
+
+#: src/vmstat.c:231
+msgid " -S, --unit <char> define display unit\n"
+msgstr " -S, --unit <kýtự> định nghĩa đơn vị hiển thị\n"
+
+#: src/vmstat.c:232
+msgid " -w, --wide wide output\n"
+msgstr " -w, --wide kết xuất rộng\n"
+
+#: src/vmstat.c:233
+msgid " -t, --timestamp show timestamp\n"
+msgstr " -t, --timestamp hiển thị dấu vết thá»i gian\n"
+
+#: src/vmstat.c:234
+#, fuzzy
+msgid " -y, --no-first skips first line of output\n"
+msgstr " -w, --wide kết xuất rộng\n"
+
+#: src/vmstat.c:253
+#, fuzzy
+msgid ""
+"procs -----------memory---------- ---swap-- -----io---- -system-- -------"
+"cpu-------"
+msgstr ""
+"ttrình -----------bộ nhớ----------- ---swap-- -----vr---- -hệthống ------"
+"cpu-----"
+
+#: src/vmstat.c:255
+#, fuzzy
+msgid ""
+"--procs-- -----------------------memory---------------------- ---swap-- -----"
+"io---- -system-- ----------cpu----------"
+msgstr ""
+"ttrình -----------------------bộnhớ------------------------ ---swap-- -----"
+"vr---- -hệthống --------cpu--------"
+
+#: src/vmstat.c:256 src/vmstat.c:619
+msgid " -----timestamp-----"
+msgstr "--dấu vết thá»i gian--"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:275
+msgid "r"
+msgstr "r"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:277
+msgid "b"
+msgstr "b"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:279
+msgid "swpd"
+msgstr "swpd"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:281
+msgid "free"
+msgstr "trống"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:283
+msgid "inact"
+msgstr "inact"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:285
+msgid "buff"
+msgstr "buff"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:287
+msgid "active"
+msgstr "hđộng"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:289
+msgid "cache"
+msgstr "nhớtạm"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:291
+msgid "si"
+msgstr "si"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:293
+msgid "so"
+msgstr "so"
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:295
+msgid "bi"
+msgstr "bi"
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:297
+msgid "bo"
+msgstr "bo"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:299
+msgid "in"
+msgstr "in"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:301
+msgid "cs"
+msgstr "cs"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:303
+msgid "us"
+msgstr "us"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:305
+msgid "sy"
+msgstr "sy"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:307
+msgid "id"
+msgstr "id"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:309
+msgid "wa"
+msgstr "wa"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:311
+msgid "st"
+msgstr "st"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:313
+msgid "gu"
+msgstr ""
+
+#: src/vmstat.c:374 src/vmstat.c:870
+#, fuzzy
+msgid "Unable to create vmstat structure"
+msgstr "không thể tạo Ä‘Æ°á»ng ống IPC"
+
+#: src/vmstat.c:376 src/vmstat.c:866 src/vmstat.c:919
+msgid "Unable to create system stat structure"
+msgstr ""
+
+#: src/vmstat.c:380
+#, fuzzy
+msgid "Unable to get uptime"
+msgstr "không thể tạo Ä‘Æ°á»ng ống IPC"
+
+#: src/vmstat.c:391 src/vmstat.c:472 src/vmstat.c:874
+msgid "Unable to select memory information"
+msgstr ""
+
+#: src/vmstat.c:405 src/vmstat.c:458 src/vmstat.c:868
+msgid "Unable to select stat information"
+msgstr ""
+
+#. Translation Hint: Translating folloging disk partition
+#. * header fields that follow (marked with max x chars) might
+#. * not work, unless manual page is translated as well.
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:565
+#, fuzzy
+msgid "reads"
+msgstr "tuyến_trình"
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:567
+msgid "read sectors"
+msgstr "cung từ đã Ä‘á»c"
+
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:569
+#, fuzzy
+msgid "writes"
+msgstr "ghi "
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:571
+msgid "requested writes"
+msgstr "yêu cầu ghi"
+
+#: src/vmstat.c:584 src/vmstat.c:687 src/vmstat.c:813
+msgid "Unable to create diskstat structure"
+msgstr ""
+
+#: src/vmstat.c:587 src/vmstat.c:593
+#, fuzzy, c-format
+msgid "Disk/Partition %s not found"
+msgstr "không tìm thấy phân vùng\n"
+
+#: src/vmstat.c:616
+msgid ""
+"disk- ------------reads------------ ------------writes----------- -----"
+"IO------"
+msgstr ""
+"Ä‘Ä©a-- --------------Ä‘á»c------------ ---------------ghi----------- ------"
+"VR-----"
+
+#: src/vmstat.c:618
+msgid ""
+"disk- -------------------reads------------------- -------------------"
+"writes------------------ ------IO-------"
+msgstr ""
+"Ä‘Ä©a-- ---------------------Ä‘á»c------------------- ----------------------"
+"ghi------------------ ------VR-------"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:637 src/vmstat.c:645
+msgid "total"
+msgstr "tổng"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:639 src/vmstat.c:647
+msgid "merged"
+msgstr "đãtrộn"
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:641 src/vmstat.c:649
+msgid "sectors"
+msgstr "cungtừ"
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:643 src/vmstat.c:651
+msgid "ms"
+msgstr "ms"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:653
+msgid "cur"
+msgstr "Vthtại"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:655
+msgid "sec"
+msgstr "giây"
+
+#: src/vmstat.c:694 src/vmstat.c:815
+msgid "Unable to retrieve disk statistics"
+msgstr ""
+
+#. Translation Hint: Translating folloging slab fields that
+#. * follow (marked with max x chars) might not work, unless
+#. * manual page is translated as well.
+#. Translation Hint: max 24 chars
+#: src/vmstat.c:741
+msgid "Cache"
+msgstr "Nhớ tạm"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:743
+msgid "Num"
+msgstr "Số"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:745
+msgid "Total"
+msgstr "Tổng"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:747
+msgid "Size"
+msgstr "Cỡ"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:749
+msgid "Pages"
+msgstr "Trang"
+
+#: src/vmstat.c:836
+#, fuzzy, c-format
+msgid "%13d disks\n"
+msgstr "%13d Ä‘Ä©a \n"
+
+#: src/vmstat.c:837
+#, fuzzy, c-format
+msgid "%13d partitions\n"
+msgstr "%13d phân vùng \n"
+
+#: src/vmstat.c:838
+#, c-format
+msgid "%13lu total reads\n"
+msgstr "%13lu tổng Ä‘á»c\n"
+
+#: src/vmstat.c:839
+#, c-format
+msgid "%13lu merged reads\n"
+msgstr "%13lu Ä‘á»c hòa trá»™n\n"
+
+#: src/vmstat.c:840
+#, c-format
+msgid "%13lu read sectors\n"
+msgstr "%13lu cung từ đã Ä‘á»c\n"
+
+#: src/vmstat.c:841
+#, c-format
+msgid "%13lu milli reading\n"
+msgstr "%13lu Ä‘á»c milli\n"
+
+#: src/vmstat.c:842
+#, c-format
+msgid "%13lu writes\n"
+msgstr "%13lu ghi\n"
+
+#: src/vmstat.c:843
+#, c-format
+msgid "%13lu merged writes\n"
+msgstr "%13lu ghi hòa trộn\n"
+
+#: src/vmstat.c:844
+#, c-format
+msgid "%13lu written sectors\n"
+msgstr "%13lu cung từ đã ghi\n"
+
+#: src/vmstat.c:845
+#, c-format
+msgid "%13lu milli writing\n"
+msgstr "%13lu milli ghi\n"
+
+#: src/vmstat.c:846
+#, c-format
+msgid "%13lu inprogress IO\n"
+msgstr "%13lu VR trong tiến trình\n"
+
+#: src/vmstat.c:847
+#, c-format
+msgid "%13lu milli spent IO\n"
+msgstr "%13lu milli dùng VR\n"
+
+#: src/vmstat.c:848
+#, fuzzy, c-format
+msgid "%13lu milli weighted IO\n"
+msgstr "%13lu milli dùng VR\n"
+
+#: src/vmstat.c:876
+#, c-format
+msgid "%13lu %s total memory\n"
+msgstr "%13lu %s tổng bộ nhớ\n"
+
+#: src/vmstat.c:877
+#, c-format
+msgid "%13lu %s used memory\n"
+msgstr "%13lu %s bộ nhớ đã dùng\n"
+
+#: src/vmstat.c:878
+#, c-format
+msgid "%13lu %s active memory\n"
+msgstr "%13lu %s bộ nhớ hoạt động\n"
+
+#: src/vmstat.c:879
+#, c-format
+msgid "%13lu %s inactive memory\n"
+msgstr "%13lu %s bộ nhớ không hoạt động\n"
+
+#: src/vmstat.c:880
+#, c-format
+msgid "%13lu %s free memory\n"
+msgstr "%13lu %s bộ nhớ trống\n"
+
+#: src/vmstat.c:881
+#, c-format
+msgid "%13lu %s buffer memory\n"
+msgstr "%13lu %s bộ nhớ đệm\n"
+
+#: src/vmstat.c:882
+#, c-format
+msgid "%13lu %s swap cache\n"
+msgstr "%13lu %s nhớ tạm tráo đổi\n"
+
+#: src/vmstat.c:883
+#, c-format
+msgid "%13lu %s total swap\n"
+msgstr "%13lu %s tổng tráo đổi\n"
+
+#: src/vmstat.c:884
+#, c-format
+msgid "%13lu %s used swap\n"
+msgstr "%13lu %s tráo đổi đã dùng\n"
+
+#: src/vmstat.c:885
+#, c-format
+msgid "%13lu %s free swap\n"
+msgstr "%13lu %s tráo đổi còn trống\n"
+
+#: src/vmstat.c:886
+#, c-format
+msgid "%13lld non-nice user cpu ticks\n"
+msgstr "%13lld tíc-tắc cpu ngÆ°á»i dùng không-tốt\n"
+
+#: src/vmstat.c:887
+#, c-format
+msgid "%13lld nice user cpu ticks\n"
+msgstr "%13lld tíc-tắc cpu ngÆ°á»i dùng tốt\n"
+
+#: src/vmstat.c:888
+#, c-format
+msgid "%13lld system cpu ticks\n"
+msgstr "%13lld tíc-tắc cpu hệ thống\n"
+
+#: src/vmstat.c:889
+#, c-format
+msgid "%13lld idle cpu ticks\n"
+msgstr "%13lld tíc-tắc cpu nghỉ\n"
+
+#: src/vmstat.c:890
+#, c-format
+msgid "%13lld IO-wait cpu ticks\n"
+msgstr "%13lld tíc-tắc cpu chỠVR\n"
+
+#: src/vmstat.c:891
+#, c-format
+msgid "%13lld IRQ cpu ticks\n"
+msgstr "%13lld tíc-tắc cpu IQR\n"
+
+#: src/vmstat.c:892
+#, c-format
+msgid "%13lld softirq cpu ticks\n"
+msgstr "%13lld tíc-tắc cpu ngắt bằng phần má»m\n"
+
+#: src/vmstat.c:893
+#, c-format
+msgid "%13lld stolen cpu ticks\n"
+msgstr "%13lld tíc-tắc cpu bị mất\n"
+
+#: src/vmstat.c:894
+#, fuzzy, c-format
+msgid "%13lld non-nice guest cpu ticks\n"
+msgstr "%13lld tíc-tắc cpu ngÆ°á»i dùng không-tốt\n"
+
+#: src/vmstat.c:895
+#, fuzzy, c-format
+msgid "%13lld nice guest cpu ticks\n"
+msgstr "%13lld tíc-tắc cpu ngÆ°á»i dùng tốt\n"
+
+#: src/vmstat.c:896
+#, fuzzy, c-format
+msgid "%13lu K paged in\n"
+msgstr "%13lu trang được đánh trang vào\n"
+
+#: src/vmstat.c:897
+#, fuzzy, c-format
+msgid "%13lu K paged out\n"
+msgstr "%13lu trang được đánh trang ra\n"
+
+#: src/vmstat.c:898
+#, c-format
+msgid "%13lu pages swapped in\n"
+msgstr "%13lu trang tráo đổi vào\n"
+
+#: src/vmstat.c:899
+#, c-format
+msgid "%13lu pages swapped out\n"
+msgstr "%13lu trang tráo đổi ra\n"
+
+#: src/vmstat.c:900
+#, fuzzy, c-format
+msgid "%13lu interrupts\n"
+msgstr "%13u ngắt\n"
+
+#: src/vmstat.c:901
+#, fuzzy, c-format
+msgid "%13lu CPU context switches\n"
+msgstr "%13u chuyển ngữ cảnh CPU\n"
+
+#: src/vmstat.c:902
+#, fuzzy, c-format
+msgid "%13lu boot time\n"
+msgstr "%13u lần khởi động máy\n"
+
+#: src/vmstat.c:903 src/vmstat.c:921
+#, fuzzy, c-format
+msgid "%13lu forks\n"
+msgstr "%13u tiến trình rẽ nhánh\n"
+
+#. Translation Hint: do not change argument characters
+#: src/vmstat.c:1024
+msgid "-S requires k, K, m or M (default is KiB)"
+msgstr "-S cần k, K, m hay M (mặc định là KiB)"
+
+#: src/watch.c:94
+#, c-format
+msgid " %s [options] command\n"
+msgstr " %s [các-tùy-chá»n] lệnh\n"
+
+#: src/watch.c:96
+msgid " -b, --beep beep if command has a non-zero exit\n"
+msgstr " -b, --beep kêu bíp nếu lệnh thoát khác không\n"
+
+#: src/watch.c:97
+msgid " -c, --color interpret ANSI color and style sequences\n"
+msgstr " -c, --color phiên dịch màu ANSI và dãy kiểu\n"
+
+#: src/watch.c:98
+#, fuzzy
+msgid ""
+" -C, --no-color do not interpret ANSI color and style sequences\n"
+msgstr " -c, --color phiên dịch màu ANSI và dãy kiểu\n"
+
+#: src/watch.c:99
+msgid ""
+" -d, --differences[=<permanent>]\n"
+" highlight changes between updates\n"
+msgstr ""
+" -d, --differences[=<permanent>]\n"
+" tô sáng các thay đổi giữa những lần cập nhật\n"
+
+#: src/watch.c:101
+msgid " -e, --errexit exit if command has a non-zero exit\n"
+msgstr " -e, --errexit thoát nếu lệnh kết thúc khác không\n"
+
+#: src/watch.c:102
+msgid " -g, --chgexit exit when output from command changes\n"
+msgstr " -g, --chgexit thoát khi kết xuất từ lệnh có thay đổi\n"
+
+#: src/watch.c:103
+#, fuzzy
+msgid ""
+" -q, --equexit <cycles>\n"
+" exit when output from command does not change\n"
+msgstr " -g, --chgexit thoát khi kết xuất từ lệnh có thay đổi\n"
+
+#: src/watch.c:105
+msgid " -n, --interval <secs> seconds to wait between updates\n"
+msgstr " -n, --interval <giây> số giây đợi giữa các lần cập nhật\n"
+
+#: src/watch.c:106
+msgid " -p, --precise attempt run command in precise intervals\n"
+msgstr " -p, --precise cố chạy lệnh ở nhịp thá»i gian chính xác\n"
+
+#: src/watch.c:107
+msgid " -r, --no-rerun do not rerun program on window resize\n"
+msgstr ""
+
+#: src/watch.c:108
+msgid " -t, --no-title turn off header\n"
+msgstr " -t, --no-title không in phần đầu\n"
+
+#: src/watch.c:109
+#, fuzzy
+msgid " -w, --no-wrap turn off line wrapping\n"
+msgstr " -t, --no-title không in phần đầu\n"
+
+#: src/watch.c:110
+msgid " -x, --exec pass command to exec instead of \"sh -c\"\n"
+msgstr " -x, --exec chuyển lệnh cho exec thay cho \"sh -c\"\n"
+
+#: src/watch.c:113
+msgid " -v, --version output version information and exit\n"
+msgstr " -v, --version hiển thị thông tin phiên bản rồi thoát\n"
+
+#: src/watch.c:485
+#, c-format
+msgid "Every %.1fs: "
+msgstr "Má»—i %.1fs: "
+
+#: src/watch.c:486
+#, c-format
+msgid "%s: %s"
+msgstr ""
+
+#: src/watch.c:575
+msgid "unable to create IPC pipes"
+msgstr "không thể tạo Ä‘Æ°á»ng ống IPC"
+
+#: src/watch.c:585
+msgid "unable to fork process"
+msgstr "không thể rẽ nhánh tiến trình"
+
+#: src/watch.c:590
+msgid "dup2 failed"
+msgstr "dup2 bị lỗi"
+
+#: src/watch.c:597
+#, c-format
+msgid "unable to execute '%s'"
+msgstr "không thể thá»±c hiện “%sâ€"
+
+#: src/watch.c:614
+msgid "fdopen"
+msgstr "fdopen"
+
+#: src/watch.c:788
+msgid "waitpid"
+msgstr "waitpid"
+
+#: src/watch.c:796
+msgid "command exit with a non-zero status, press a key to exit"
+msgstr "lệnh kết thúc với mã thoát khác không, hãy bấm phím bất kỳ để thoát"
+
+#: src/watch.c:863
+msgid "Could not parse interval from WATCH_INTERVAL"
+msgstr ""
+
+#: src/watch.c:954
+#, c-format
+msgid "unicode handling error\n"
+msgstr "xử lý unicode gặp lỗi\n"
+
+#: src/watch.c:960
+#, c-format
+msgid "unicode handling error (malloc)\n"
+msgstr "xử lý unicode gặp lỗi (malloc)\n"
+
+#: src/w.c:289 src/w.c:304
+#, fuzzy, c-format
+msgid " %2lludays"
+msgstr " %2lungày"
+
+#. Translation Hint: Minutes:Seconds
+#. Translation Hint: Hours:Minutes
+#: src/w.c:298 src/w.c:308
+#, fuzzy, c-format
+msgid " %2llu:%02um"
+msgstr " %2lu:%02uphút"
+
+#. Translation Hint: Seconds:Centiseconds
+#: src/w.c:316
+#, fuzzy, c-format
+msgid " %2llu.%02us"
+msgstr " %2lu.%02ugiây"
+
+#: src/w.c:656
+#, fuzzy, c-format
+msgid " %s [options] [user]\n"
+msgstr " %s [các-tùy-chá»n] [tty]\n"
+
+#: src/w.c:658
+msgid " -h, --no-header do not print header\n"
+msgstr " -h, --no-header không in phần đầu\n"
+
+#: src/w.c:659
+msgid " -u, --no-current ignore current process username\n"
+msgstr " -u, --no-current bá» qua tiến trình từ ngÆ°á»i dùng hiện tại\n"
+
+#: src/w.c:660
+msgid " -s, --short short format\n"
+msgstr " -s, --short định dạng ngắn gá»n\n"
+
+#: src/w.c:661
+msgid " -f, --from show remote hostname field\n"
+msgstr " -f, --from hiển thị trÆ°á»ng tên máy chủ\n"
+
+#: src/w.c:662
+msgid " -o, --old-style old style output\n"
+msgstr " -o, --old-style hiển thị kiểu cũ\n"
+
+#: src/w.c:663
+msgid ""
+" -i, --ip-addr display IP address instead of hostname (if possible)\n"
+msgstr " -i, --ip-addr hiển thị địa chỉ IP thay cho tên máy (nếu được)\n"
+
+#: src/w.c:664
+#, fuzzy
+msgid " -p, --pids show the PID(s) of processes in WHAT\n"
+msgstr " -l, --list-name liệt kê tên và mã số tiến trình\n"
+
+#: src/w.c:763
+#, c-format
+msgid ""
+"User length environment PROCPS_USERLEN must be between 8 and %i, ignoring.\n"
+msgstr ""
+"“chiá»u dài biến môi trÆ°á»ng của ngÆ°á»i dùng†PROCPS_USERLEN phải nằm giữa 8 và "
+"%d, nên bỠqua\n"
+
+#: src/w.c:773
+#, c-format
+msgid ""
+"from length environment PROCPS_FROMLEN must be between 8 and %d, ignoring\n"
+msgstr ""
+"“chiá»u dài biến môi trÆ°á»ng từ†PROCPS_FROMLEN phải nằm giữa 8 và %d, nên bá» "
+"qua\n"
+
+#. Translation Hint: Following five uppercase messages are
+#. * headers. Try to keep alignment intact.
+#: src/w.c:799
+#, c-format
+msgid "%-*s TTY "
+msgstr "%-*s TTY "
+
+#: src/w.c:801
+msgid "FROM"
+msgstr "TỪ"
+
+#: src/w.c:803
+#, c-format
+msgid " LOGIN@ IDLE JCPU PCPU WHAT\n"
+msgstr " ÄNHẬP@ NGHỈ JCPU PCPU GÃŒ\n"
+
+#: src/w.c:805
+#, c-format
+msgid " IDLE WHAT\n"
+msgstr " NGHỈ GÌ\n"
+
+#: src/w.c:815
+msgid "error getting sessions"
+msgstr ""
+
+#: src/w.c:823
+msgid "get user name failed"
+msgstr ""
+
+#: local/c.h:153
+msgid ""
+"\n"
+"Usage:\n"
+msgstr ""
+"\n"
+"Cách dùng:\n"
+
+#: local/c.h:154
+msgid ""
+"\n"
+"Options:\n"
+msgstr ""
+"\n"
+"Các tùy chá»n:\n"
+
+#: local/c.h:155
+msgid "\n"
+msgstr "\n"
+
+#: local/c.h:156
+msgid " -h, --help display this help and exit\n"
+msgstr " -h, --help hiển thị trợ giúp này rồi thoát\n"
+
+#: local/c.h:157
+msgid " -V, --version output version information and exit\n"
+msgstr " -V, --version hiển thị thông tin phiên bản rồi thoát\n"
+
+#: local/c.h:158
+#, c-format
+msgid ""
+"\n"
+"For more details see %s.\n"
+msgstr ""
+"\n"
+"Äể có thêm thông tin vui lòng xem %s.\n"
+
+#: local/c.h:160
+#, c-format
+msgid "%s from %s\n"
+msgstr "%s nằm trong gói phần má»m “%sâ€.\n"
+
+#, c-format
+#~ msgid "seconds argument `%s' failed"
+#~ msgstr "đối số thứ hai “%s†bị lỗi"
+
+#, c-format
+#~ msgid "error: not enough memory\n"
+#~ msgstr "lỗi: không đủ bộ nhớ\n"
+
+#, c-format
+#~ msgid "error: can not access /proc\n"
+#~ msgstr "lỗi: không thể truy cập /proc\n"
+
+#, c-format
+#~ msgid "unknown page size (assume 4096)\n"
+#~ msgstr "không hiểu cỡ trang (coi là 4096)\n"
+
+#~ msgid "alternate System.map file must follow -n"
+#~ msgstr "tập tin System.map thay thế phải theo sau -n"
+
+#~ msgid "alternate System.map file must follow N"
+#~ msgstr "tập tin System.map thay thế phải theo sau N"
+
+#, c-format
+#~ msgid "something at line %d\n"
+#~ msgstr "cái gì đó tại dòng %d\n"
+
+#, c-format
+#~ msgid "\"%s\" must be of the form name=value"
+#~ msgstr "\"%s\" phải có dạng tên=giá_trị"
+
+#, c-format
+#~ msgid "malformed setting \"%s\""
+#~ msgstr "cài đặt sai dạng \"%s\""
+
+#, c-format
+#~ msgid "%s is deprecated, value not set"
+#~ msgstr "%s đã lá»—i thá»i, giá trị không được đặt"
+
+#~ msgid "Adj"
+#~ msgstr "Sá»­a"
+
+#~ msgid "oom_adjustment (2^X)"
+#~ msgstr "oom_adjustment (2^X)"
+
+#~ msgid "Badness"
+#~ msgstr "Tồi"
+
+#~ msgid "oom_score (badness)"
+#~ msgstr "oom_score (tồi)"
+
+#, c-format
+#~ msgid ""
+#~ "inappropriate '%s'\n"
+#~ "Usage:\n"
+#~ " %s%s"
+#~ msgstr ""
+#~ "“%s†không thích hợp\n"
+#~ "Cách dùng:\n"
+#~ " %s%s"
+
+#, c-format
+#~ msgid ""
+#~ " %s\n"
+#~ "Usage:\n"
+#~ " %s%s"
+#~ msgstr ""
+#~ " %s\n"
+#~ "Cách dùng:\n"
+#~ " %s%s"
+
+#, c-format
+#~ msgid "failed openproc: %s"
+#~ msgstr "gặp lỗi khi openproc: %s"
+
+#, c-format
+#~ msgid "-%c requires argument"
+#~ msgstr "-%c cần đối số"
+
+#~ msgid ""
+#~ " -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]"
+#~ msgstr ""
+#~ " -hv | -bcHiOSs -d giây -n t.Ä‘a -u|U ngÆ°á»i_dùng -p (các)_mã_số_tiến_trình "
+#~ "-o trÆ°á»ng -w [cá»™t]"
+
+#~ msgid "failed /proc/stat read"
+#~ msgstr "gặp lá»—i khi Ä‘á»c /proc/stat"
+
+#~ msgid "Overwrite existing obsolete/corrupted rcfile?"
+#~ msgstr "Äè lên tập tin tài nguyên cÅ©/há»ng không?"
+
+#~ msgid ""
+#~ " k,r Manipulate tasks: '~1k~2' kill; '~1r~2' renice\n"
+#~ " d or s Set update interval\n"
+#~ msgstr ""
+#~ " k,r Thao tác với các nhiệm vụ: “~1k~2†kill; “~1r~2†renice\n"
+#~ " d hay s Äặt thá»i gian cập nhật\n"
+
+#, c-format
+#~ msgid ""
+#~ "%%%s~3 %#5.1f ~2user,~3 %#5.1f ~2system,~3 %#5.1f ~2nice,~3 %#5.1f "
+#~ "~2idle~3\n"
+#~ msgstr ""
+#~ "%%%s~3 %#5.1f ~2ngdùng,~3 %#5.1f ~2hthống,~3 %#5.1f ~2nice,~3 %#5.1f "
+#~ "~2nghỉ~3\n"
+
+#, c-format
+#~ msgid ""
+#~ "%%%s~3 %#5.1f ~2user,~3 %#5.1f ~2system,~3 %#5.1f ~2nice,~3 %#5.1f "
+#~ "~2idle,~3 %#5.1f ~2IO-wait~3\n"
+#~ msgstr ""
+#~ "%%%s~3 %#5.1f ~2ngdùng,~3 %#5.1f ~2hthống,~3 %#5.1f ~2nice,~3 %#5.1f "
+#~ "~2nghỉ,~3 %#5.1f ~2đợi-VR~3\n"
+
+#~ msgid "reads "
+#~ msgstr "Ä‘á»c "
+
+#~ msgid "your kernel does not support diskstat. (2.5.70 or above required)"
+#~ msgstr "hạt nhân của bạn không hỗ trợ diskstat. (cần 2.5.70 hoặc mới hơn)"
+
+#~ msgid "your kernel does not support diskstat (2.5.70 or above required)"
+#~ msgstr "your kernel does not support diskstat (2.5.70 or above required)"
+
+#~ msgid ""
+#~ "your kernel does not support slabinfo or your permissions are insufficient"
+#~ msgstr "hạt nhân của bạn không há»— trợ slabinfo hoặc bạn không đủ thẩm quyá»n"
+
+#, c-format
+#~ msgid "%d column window is too narrow"
+#~ msgstr "cửa sổ %d cột là quá hẹp"
+
+#, c-format
+#~ msgid "%d column width exceeds command buffer size, truncating to %d"
+#~ msgstr "độ rộng cột %d là vượt quá cỡ bộ đệm lệnh, cắt ngắn thành %d"
+
+#, c-format
+#~ msgid "warning: screen width %d suboptimal"
+#~ msgstr "cảnh báo: độ rộng màn hình %d gần dưới điểm cực thuận"
+
+#~ msgid ""
+#~ " -o, --old use old format (without -/+buffers/cache line)\n"
+#~ msgstr ""
+#~ " -o, --old dùng định dạng cũ (không có dòng -/+đệm/nhớ_tạm)\n"
+
+#~ msgid "-/+ buffers/cache:"
+#~ msgstr "-/+ đệm/nhớ_tạm:"
+
+#~ msgid "Nothing to highlight!"
+#~ msgstr "Không có gì cần tô sáng!"
+
+#~ msgid "could not parse rcfile inspect entry %d"
+#~ msgstr "không thể phân tích mục tin kiểm tra tập tin tài nguyên %d"
diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo
new file mode 100644
index 0000000..d7129ce
--- /dev/null
+++ b/po/zh_CN.gmo
Binary files differ
diff --git a/po/zh_CN.po b/po/zh_CN.po
new file mode 100644
index 0000000..f23e7d2
--- /dev/null
+++ b/po/zh_CN.po
@@ -0,0 +1,4918 @@
+# procps-ng in zh_CN
+# Copyright (C) 2015 Free Software Foundation, Inc.
+# This file is distributed under the same license as the procps-ng package.
+# Boyuan Yang <073plan@gmail.com>, 2017, 2019.
+# Mingye Wang <arthur200126@gmail.com>, 2015.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: procps-ng 3.3.16-pre2\n"
+"Report-Msgid-Bugs-To: procps@freelists.org\n"
+"POT-Creation-Date: 2023-08-19 17:38+1000\n"
+"PO-Revision-Date: 2019-12-17 13:37-0500\n"
+"Last-Translator: Boyuan Yang <073plan@gmail.com>\n"
+"Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Bugs: Report translation errors to the Language-Team address.\n"
+"X-Generator: Poedit 2.2.4\n"
+
+#: local/fileutils.c:38
+msgid "write error"
+msgstr "写入错误"
+
+#: src/free.c:74 src/slabtop.c:106 src/uptime.c:65
+#, c-format
+msgid " %s [options]\n"
+msgstr " %s [选项]\n"
+
+#: src/free.c:76
+msgid " -b, --bytes show output in bytes\n"
+msgstr " -b, --bytes 以字节显示输出\n"
+
+#: src/free.c:77
+msgid " --kilo show output in kilobytes\n"
+msgstr " --kilo 使用åƒå­—节显示输出\n"
+
+#: src/free.c:78
+msgid " --mega show output in megabytes\n"
+msgstr " --mega 使用兆字节显示输出\n"
+
+#: src/free.c:79
+msgid " --giga show output in gigabytes\n"
+msgstr " --giga 使用å‰å­—节显示输出\n"
+
+#: src/free.c:80
+msgid " --tera show output in terabytes\n"
+msgstr " --tera 使用太字节显示输出\n"
+
+#: src/free.c:81
+#, fuzzy
+msgid " --peta show output in petabytes\n"
+msgstr " --tera 以太字节显示输出\n"
+
+#: src/free.c:82
+#, fuzzy
+msgid " -k, --kibi show output in kibibytes\n"
+msgstr " -k, --kilo 以åƒå­—节显示输出\n"
+
+#: src/free.c:83
+#, fuzzy
+msgid " -m, --mebi show output in mebibytes\n"
+msgstr " -m, --mega 以兆字节显示输出\n"
+
+#: src/free.c:84
+#, fuzzy
+msgid " -g, --gibi show output in gibibytes\n"
+msgstr " -g, --giga 以å‰å­—节显示输出\n"
+
+#: src/free.c:85
+#, fuzzy
+msgid " --tebi show output in tebibytes\n"
+msgstr " --tera 以太字节显示输出\n"
+
+#: src/free.c:86
+#, fuzzy
+msgid " --pebi show output in pebibytes\n"
+msgstr " --tera 以太字节显示输出\n"
+
+#: src/free.c:87
+msgid " -h, --human show human-readable output\n"
+msgstr " -h, --human 显示人类å¯è¯»çš„输出\n"
+
+#: src/free.c:88
+msgid " --si use powers of 1000 not 1024\n"
+msgstr " --si 使用 1000 çš„å€æ•°è€Œéžä½¿ç”¨ 1024\n"
+
+#: src/free.c:89
+msgid " -l, --lohi show detailed low and high memory statistics\n"
+msgstr ""
+
+#: src/free.c:90
+#, fuzzy
+msgid " -L, --line show output on a single line\n"
+msgstr " -k, --kilo 以åƒå­—节显示输出\n"
+
+#: src/free.c:91
+msgid " -t, --total show total for RAM + swap\n"
+msgstr ""
+
+#: src/free.c:92
+msgid " -v, --committed show committed memory and commit limit\n"
+msgstr ""
+
+#: src/free.c:93
+msgid " -s N, --seconds N repeat printing every N seconds\n"
+msgstr ""
+
+#: src/free.c:94
+msgid " -c N, --count N repeat printing N times, then exit\n"
+msgstr ""
+
+#: src/free.c:95
+msgid " -w, --wide wide output\n"
+msgstr " -w, --wide 宽版输出\n"
+
+#: src/free.c:97 src/w.c:666
+msgid " --help display this help and exit\n"
+msgstr " --help 显示此帮助信æ¯å¹¶é€€å‡º\n"
+
+#: src/free.c:172
+msgid "Multiple unit options don't make sense."
+msgstr ""
+
+#: src/free.c:341
+#, fuzzy, c-format
+msgid "seconds argument `%s' is not positive number"
+msgstr "无效的秒数:%s"
+
+#: src/free.c:347
+#, fuzzy
+msgid "failed to parse count argument"
+msgstr "模æ¿å®žå‚表语法错误"
+
+#: src/free.c:350
+#, fuzzy, c-format
+msgid "failed to parse count argument: '%s'"
+msgstr "查询 spec 文件 %s 失败,无法解æž\n"
+
+#: src/free.c:370
+msgid "Memory information file /proc/meminfo does not exist"
+msgstr ""
+
+#: src/free.c:373 src/vmstat.c:378 src/vmstat.c:872
+#, fuzzy
+msgid "Unable to create meminfo structure"
+msgstr "无法创建ä¸å¯æ”¹å˜çš„头区。\n"
+
+#. Translation Hint: These are shortened column headers
+#. * that are all 7 characters long. Use spaces and right
+#. * align if the translation is shorter.
+#.
+#: src/free.c:381
+#, fuzzy
+msgid "SwapUse"
+msgstr "交æ¢"
+
+#: src/free.c:382
+#, fuzzy
+msgid "CachUse"
+msgstr "以 KB 表示的软件数æ®ç¼“存的大å°"
+
+#: src/free.c:384
+msgid " MemUse"
+msgstr ""
+
+#: src/free.c:385
+msgid "MemFree"
+msgstr ""
+
+#: src/free.c:395
+#, fuzzy, c-format
+msgid ""
+" total used free shared buffers "
+"cache available"
+msgstr ""
+" 总计 已用 空闲 共享 缓冲 缓"
+"å­˜ å¯ç”¨"
+
+#: src/free.c:397
+#, fuzzy, c-format
+msgid ""
+" total used free shared buff/cache "
+"available"
+msgstr ""
+" 总计 已用 空闲 共享 缓冲/缓存 å¯ç”¨"
+
+#: src/free.c:400
+msgid "Mem:"
+msgstr "内存:"
+
+#: src/free.c:423
+msgid "Low:"
+msgstr "低:"
+
+#: src/free.c:429
+msgid "High:"
+msgstr "高:"
+
+#: src/free.c:436
+msgid "Swap:"
+msgstr "交æ¢ï¼š"
+
+#: src/free.c:443
+msgid "Total:"
+msgstr "总é‡ï¼š"
+
+#: src/free.c:456
+msgid "Comm:"
+msgstr ""
+
+#: src/kill.c:40
+#, fuzzy, c-format
+msgid " %s [options] <pid> [...]\n"
+msgstr "%*s 用户 è¿›ç¨‹å· æƒé™ 命令\n"
+
+#: src/kill.c:42
+msgid " <pid> [...] send signal to every <pid> listed\n"
+msgstr ""
+
+#: src/kill.c:43
+msgid ""
+" -<signal>, -s, --signal <signal>\n"
+" specify the <signal> to be sent\n"
+msgstr ""
+
+#: src/kill.c:45
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr ""
+
+#: src/kill.c:46
+msgid ""
+" -l, --list=[<signal>] list all signal names, or convert one to a name\n"
+msgstr ""
+
+#: src/kill.c:47
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr ""
+
+#: src/kill.c:112
+#, c-format
+msgid "unknown signal name %s"
+msgstr "未知的信å·å称 %s"
+
+#: src/kill.c:131
+msgid "must be an integer value to be passed with the signal."
+msgstr ""
+
+#: src/kill.c:136
+#, fuzzy, c-format
+msgid "invalid argument %c"
+msgstr "(无效的å‚æ•°)"
+
+#: src/kill.c:146 src/pgrep.c:792 src/pidof.c:250 src/pidof.c:290
+#: src/sysctl.c:867
+msgid "internal error"
+msgstr "内部错误"
+
+#: src/kill.c:158 src/pmap.c:771 src/pmap.c:786 src/skill.c:381 src/skill.c:465
+#: src/tload.c:135 src/tload.c:140 src/vmstat.c:1047 src/vmstat.c:1057
+#: src/watch.c:891 src/watch.c:906
+#, fuzzy
+msgid "failed to parse argument"
+msgstr "模æ¿å®žå‚表语法错误"
+
+#: src/pgrep.c:92 src/pidof.c:40 src/skill.c:74
+msgid "integer overflow"
+msgstr "整数溢出"
+
+#: src/pgrep.c:155
+#, fuzzy, c-format
+msgid " %s [options] <pattern>\n"
+msgstr "通é…符模å¼ç”¨äºŽæŽ’除"
+
+#: src/pgrep.c:159
+msgid " -d, --delimiter <string> specify output delimiter\n"
+msgstr ""
+
+#: src/pgrep.c:160
+msgid " -l, --list-name list PID and process name\n"
+msgstr ""
+
+#: src/pgrep.c:161
+msgid " -a, --list-full list PID and full command line\n"
+msgstr ""
+
+#: src/pgrep.c:162
+#, fuzzy
+msgid " -v, --inverse negates the matching\n"
+msgstr "对%<%T::%s(%A)%#V%>的调用没有匹é…的函数"
+
+#: src/pgrep.c:163
+msgid " -w, --lightweight list all TID\n"
+msgstr ""
+
+#: src/pgrep.c:166
+#, fuzzy
+msgid " -<sig> signal to send (either number or name)\n"
+msgstr " s ä¿¡å·æ ¼å¼\n"
+
+#: src/pgrep.c:167
+msgid " -H, --require-handler match only if signal handler is present\n"
+msgstr ""
+
+#: src/pgrep.c:168
+msgid " -q, --queue <value> integer value to be sent with the signal\n"
+msgstr ""
+
+#: src/pgrep.c:169
+msgid " -e, --echo display what is killed\n"
+msgstr ""
+
+#: src/pgrep.c:173
+#, fuzzy
+msgid " -e, --echo display PIDs before waiting\n"
+msgstr " -o 没有效果\n"
+
+#: src/pgrep.c:177
+#, fuzzy
+msgid " -c, --count count of matching processes\n"
+msgstr "åªå°å‡ºå„文件匹é…列的计数"
+
+#: src/pgrep.c:178
+msgid " -f, --full use full process name to match\n"
+msgstr ""
+
+#: src/pgrep.c:179
+msgid " -g, --pgroup <PGID,...> match listed process group IDs\n"
+msgstr ""
+
+#: src/pgrep.c:180
+msgid " -G, --group <GID,...> match real group IDs\n"
+msgstr ""
+
+#: src/pgrep.c:181
+msgid " -i, --ignore-case match case insensitively\n"
+msgstr ""
+
+#: src/pgrep.c:182
+msgid " -n, --newest select most recently started\n"
+msgstr ""
+
+#: src/pgrep.c:183
+msgid " -o, --oldest select least recently started\n"
+msgstr ""
+
+#: src/pgrep.c:184
+msgid " -O, --older <seconds> select where older than seconds\n"
+msgstr ""
+
+#: src/pgrep.c:185
+msgid ""
+" -P, --parent <PPID,...> match only child processes of the given parent\n"
+msgstr ""
+
+#: src/pgrep.c:186
+msgid " -s, --session <SID,...> match session IDs\n"
+msgstr ""
+
+#: src/pgrep.c:187
+msgid " --signal <sig> signal to send (either number or name)\n"
+msgstr ""
+
+#: src/pgrep.c:188
+msgid " -t, --terminal <tty,...> match by controlling terminal\n"
+msgstr ""
+
+#: src/pgrep.c:189
+msgid " -u, --euid <ID,...> match by effective IDs\n"
+msgstr ""
+
+#: src/pgrep.c:190
+msgid " -U, --uid <ID,...> match by real IDs\n"
+msgstr ""
+
+#: src/pgrep.c:191
+msgid " -x, --exact match exactly with the command name\n"
+msgstr ""
+
+#: src/pgrep.c:192
+msgid " -F, --pidfile <file> read PIDs from file\n"
+msgstr ""
+
+#: src/pgrep.c:193
+msgid " -L, --logpidfile fail if PID file is not locked\n"
+msgstr ""
+
+#: src/pgrep.c:194
+msgid " -r, --runstates <state> match runstates [D,S,Z,...]\n"
+msgstr ""
+
+#: src/pgrep.c:195
+msgid " -A, --ignore-ancestors exclude our ancestors from results\n"
+msgstr ""
+
+#: src/pgrep.c:196
+msgid " --cgroup <grp,...> match by cgroup v2 names\n"
+msgstr ""
+
+#: src/pgrep.c:197
+msgid ""
+" --ns <PID> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+
+#: src/pgrep.c:199
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option.\n"
+" Available namespaces: ipc, mnt, net, pid, user, "
+"uts\n"
+msgstr ""
+
+#: src/pgrep.c:224 src/pgrep.c:700 src/w.c:455
+#, fuzzy
+msgid "Unable to create pid info structure"
+msgstr "无法创建ä¸å¯æ”¹å˜çš„头区。\n"
+
+#: src/pgrep.c:388
+#, fuzzy, c-format
+msgid "invalid user name: %s"
+msgstr "无用户å: %s\n"
+
+#: src/pgrep.c:405
+#, fuzzy, c-format
+msgid "invalid group name: %s"
+msgstr "无效的组列表%s"
+
+#: src/pgrep.c:416
+#, fuzzy, c-format
+msgid "invalid process group: %s"
+msgstr "无效的组:%s"
+
+#: src/pgrep.c:428
+#, fuzzy, c-format
+msgid "invalid session id: %s"
+msgstr "%s:无效的进程å·"
+
+#: src/pgrep.c:440
+#, c-format
+msgid "not a number: %s"
+msgstr "ä¸æ˜¯æ•°å­—:%s"
+
+#: src/pgrep.c:490
+#, fuzzy, c-format
+msgid "not a hex string: %s"
+msgstr "ä¸æ˜¯æ•°å­—:%s"
+
+#: src/pgrep.c:525 src/skill.c:162
+msgid "Unable to read process namespace information"
+msgstr ""
+
+#: src/pgrep.c:612
+#, fuzzy, c-format
+msgid "regex error: %s"
+msgstr "错误:%s\n"
+
+#: src/pgrep.c:695
+msgid "Error reading reference namespace information\n"
+msgstr ""
+
+#: src/pgrep.c:809
+#, c-format
+msgid ""
+"pattern that searches for process name longer than 15 characters will result "
+"in zero matches\n"
+"Try `%s -f' option to match against the complete command line."
+msgstr ""
+
+#: src/pgrep.c:924
+#, fuzzy, c-format
+msgid "Unknown signal \"%s\"."
+msgstr "未知的信å·å称 %s"
+
+#: src/pgrep.c:1090
+#, c-format
+msgid ""
+"-L without -F makes no sense\n"
+"Try `%s --help' for more information."
+msgstr ""
+
+#: src/pgrep.c:1097
+#, fuzzy, c-format
+msgid ""
+"pidfile not valid\n"
+"Try `%s --help' for more information."
+msgstr "å°è¯•â€œ%s --helpâ€ä»¥èŽ·å¾—更多信æ¯ã€‚\n"
+
+#: src/pgrep.c:1106
+#, c-format
+msgid ""
+"only one pattern can be provided\n"
+"Try `%s --help' for more information."
+msgstr ""
+
+#: src/pgrep.c:1110
+#, c-format
+msgid ""
+"no matching criteria specified\n"
+"Try `%s --help' for more information."
+msgstr ""
+
+#: src/pgrep.c:1162
+#, fuzzy, c-format
+msgid "%s killed (pid %lu)\n"
+msgstr "%s:第%lu 次,共%lu 次 (%s)..."
+
+#: src/pgrep.c:1169
+#, c-format
+msgid "killing pid %ld failed"
+msgstr ""
+
+#: src/pgrep.c:1181
+#, c-format
+msgid "waiting for %s (pid %lu)\n"
+msgstr ""
+
+#: src/pgrep.c:1185
+msgid "pidfd_open() not implemented in Linux < 5.3"
+msgstr ""
+
+#: src/pgrep.c:1188
+#, c-format
+msgid "opening pid %ld failed"
+msgstr ""
+
+#: src/pgrep.c:1202
+#, fuzzy
+msgid "epoll_wait failed"
+msgstr "内存分é…失败"
+
+#: src/pidof.c:75
+#, fuzzy, c-format
+msgid " %s [options] [program [...]]\n"
+msgstr " %s 的选项:\n"
+
+#: src/pidof.c:77
+msgid " -s, --single-shot return one PID only\n"
+msgstr " -s, --single-shot åªè¿”回一个 PID\n"
+
+#: src/pidof.c:78
+msgid " -c, --check-root omit processes with different root\n"
+msgstr ""
+
+#: src/pidof.c:79
+#, fuzzy
+msgid " -q, quiet mode, only set the exit code\n"
+msgstr " -XX 显示内核æ供的所有信æ¯\n"
+
+#: src/pidof.c:80
+#, fuzzy
+msgid " -w, --with-workers show kernel workers too\n"
+msgstr "%<short%>对%qs无效"
+
+#: src/pidof.c:81
+msgid " -x also find shells running the named scripts\n"
+msgstr ""
+
+#: src/pidof.c:82
+msgid " -o, --omit-pid <PID,...> omit processes with PID\n"
+msgstr ""
+
+#: src/pidof.c:83
+#, fuzzy
+msgid " -t, --lightweight list threads too\n"
+msgstr " -l, --list 列出全部信å·å称\n"
+
+#: src/pidof.c:84
+msgid " -S, --separator SEP use SEP as separator put between PIDs"
+msgstr ""
+
+#: src/pidof.c:293
+#, c-format
+msgid "illegal omit pid value (%s)!\n"
+msgstr ""
+
+#: src/pmap.c:72
+msgid "Address"
+msgstr "地å€"
+
+#: src/pmap.c:73
+msgid "Offset"
+msgstr "å移é‡"
+
+#: src/pmap.c:74
+msgid "Device"
+msgstr "设备"
+
+#: src/pmap.c:75
+#, fuzzy
+msgid "Mapping"
+msgstr "内核ä¸æ”¯æŒ loop-AES 兼容映射。\n"
+
+#: src/pmap.c:79
+msgid "Perm"
+msgstr ""
+
+#: src/pmap.c:80
+#, fuzzy
+msgid "Inode"
+msgstr "设备:%Dh/%dd\tInode:%-10i 硬链接:%h\n"
+
+#: src/pmap.c:83
+msgid "Kbytes"
+msgstr ""
+
+#: src/pmap.c:84
+#, fuzzy
+msgid "Mode"
+msgstr ""
+" -m, --mode=æ¨¡å¼ \t设置æƒé™æ¨¡å¼(类似chmod),而ä¸æ˜¯rwxrwxrwx å‡umask\n"
+
+#. Translation Hint: With the next 5 fields, notice how an extra space
+#. has been added ahead of one 'KiB' so that they all
+#. align. You need not preserve such alignment.
+#. Translation Hint: maximum 'RSS' = 6
+#: src/pmap.c:85 src/top/top_nls.c:337
+#, fuzzy
+msgid "RSS"
+msgstr ""
+"内存\n"
+" Vsize: %-10s\n"
+" RSS: %-10s\t\t RSS é™åˆ¶ï¼š%s\n"
+" 程åºå¼€å§‹ï¼š %#-10lx\t\t 程åºåœæ­¢ï¼š %#-10lx\n"
+" 堆栈开始: %#-10lx\n"
+" 堆栈指针 (ESP):%#10lx\t 指令指针 (EIP):%#10lx\n"
+
+#: src/pmap.c:86
+msgid "Dirty"
+msgstr ""
+
+#: src/pmap.c:120
+#, fuzzy, c-format
+msgid " %s [options] PID [PID ...]\n"
+msgstr "%*s 用户 è¿›ç¨‹å· æƒé™ 命令\n"
+
+#: src/pmap.c:122
+msgid " -x, --extended show details\n"
+msgstr " -x, --extended 显示细节\n"
+
+#: src/pmap.c:123
+msgid " -X show even more details\n"
+msgstr " -X 显示更多细节\n"
+
+#: src/pmap.c:124
+msgid " WARNING: format changes according to /proc/PID/smaps\n"
+msgstr ""
+
+#: src/pmap.c:125
+msgid " -XX show everything the kernel provides\n"
+msgstr " -XX 显示内核æ供的所有信æ¯\n"
+
+#: src/pmap.c:126
+msgid " -c, --read-rc read the default rc\n"
+msgstr " -c, --read-rc 读å–默认 rc 文件\n"
+
+#: src/pmap.c:127
+msgid " -C, --read-rc-from=<file> read the rc from file\n"
+msgstr " -C, --read-rc-from=<文件> 将指定文件作为 rc 文件读å–\n"
+
+#: src/pmap.c:128
+msgid " -n, --create-rc create new default rc\n"
+msgstr " -n, --create-rc 创建新的默认 rc 文件\n"
+
+#: src/pmap.c:129
+msgid " -N, --create-rc-to=<file> create new rc to file\n"
+msgstr ""
+
+#: src/pmap.c:130
+msgid " NOTE: pid arguments are not allowed with -n, -N\n"
+msgstr ""
+
+#: src/pmap.c:131
+msgid " -d, --device show the device format\n"
+msgstr " -d, --device 显示设备格å¼\n"
+
+#: src/pmap.c:132
+msgid " -q, --quiet do not display header and footer\n"
+msgstr ""
+
+#: src/pmap.c:133
+msgid " -p, --show-path show path in the mapping\n"
+msgstr ""
+
+#: src/pmap.c:134
+msgid " -A, --range=<low>[,<high>] limit results to the given range\n"
+msgstr ""
+
+#: src/pmap.c:215
+#, fuzzy
+msgid "shared memory detach"
+msgstr "共享内存对象"
+
+#: src/pmap.c:220
+#, fuzzy
+msgid "shared memory remove"
+msgstr "共享内存对象"
+
+#: src/pmap.c:245
+msgid " [ anon ]"
+msgstr ""
+
+#: src/pmap.c:248
+#, fuzzy
+msgid " [ stack ]"
+msgstr "栈错误"
+
+#: src/pmap.c:334 src/pmap.c:340
+#, fuzzy
+msgid "Unknown format in smaps file!"
+msgstr "未知的格å¼ç±»åž‹â€œ%sâ€"
+
+#: src/pmap.c:365
+#, fuzzy
+msgid "ERROR: memory allocation failed"
+msgstr "内存分é…失败"
+
+#: src/pmap.c:382
+msgid "inconsistent detail field in smaps file, line:\n"
+msgstr ""
+
+#: src/pmap.c:731
+#, fuzzy
+msgid "total kB"
+msgstr "总用é‡"
+
+#: src/pmap.c:742
+#, c-format
+msgid "mapped: %ldK writeable/private: %ldK shared: %ldK\n"
+msgstr ""
+
+#. Translation Hint: keep total string length
+#. * as 24 characters. Adjust %16 if needed
+#: src/pmap.c:751
+#, fuzzy, c-format
+msgid " total %16ldK\n"
+msgstr "总用é‡"
+
+#. Translation Hint: keep total string length
+#. * as 16 characters. Adjust %8 if needed
+#: src/pmap.c:757
+#, fuzzy, c-format
+msgid " total %8ldK\n"
+msgstr "总用é‡"
+
+#: src/pmap.c:832
+#, fuzzy, c-format
+msgid "config line too long - line %d"
+msgstr "输入行太长"
+
+#: src/pmap.c:857
+#, c-format
+msgid "unsupported section found in the config - line %d"
+msgstr ""
+
+#: src/pmap.c:860 src/pmap.c:871 src/pmap.c:882 src/pmap.c:905 src/pmap.c:917
+#, fuzzy, c-format
+msgid "syntax error found in the config - line %d"
+msgstr "脚本“%sâ€: 语法错误å‘生于第 %d 列 %s%s\n"
+
+#: src/pmap.c:887 src/pmap.c:1010
+msgid "memory allocation failed"
+msgstr "内存分é…失败"
+
+#: src/pmap.c:939
+msgid "the file already exists - delete or rename it first"
+msgstr "文件已存在 - 请先将其删除或é‡å‘½å"
+
+#: src/pmap.c:1002
+msgid "HOME variable undefined"
+msgstr "未定义 HOME å˜é‡"
+
+#: src/pmap.c:1061
+msgid "option -r is ignored as SunOS compatibility"
+msgstr "为 SunOS 兼容性忽略 -r 选项"
+
+#: src/pmap.c:1108
+msgid "options -c, -C, -d, -n, -N, -x, -X are mutually exclusive"
+msgstr "选项 -c, -C, -d, -n, -N, -x, -X 之间是互斥的"
+
+#: src/pmap.c:1111
+msgid "options -p, -q are mutually exclusive with -n, -N"
+msgstr "选项 -p, -q 和 -n, -N 互斥"
+
+#: src/pmap.c:1114 src/pmap.c:1163
+msgid "too many arguments"
+msgstr "å‚数过多"
+
+#: src/pmap.c:1118
+msgid "rc file successfully created, feel free to edit the content"
+msgstr "å·²æˆåŠŸåˆ›å»º rc 文件,请按需编辑其内容"
+
+#: src/pmap.c:1121
+msgid "couldn't create the rc file"
+msgstr "无法创建 rc 文件"
+
+#: src/pmap.c:1133
+#, c-format
+msgid "~/.%src file successfully created, feel free to edit the content"
+msgstr "å·²æˆåŠŸåˆ›å»º ~/.%src 文件,请按需编辑其内容"
+
+#: src/pmap.c:1136
+#, c-format
+msgid "couldn't create ~/.%src"
+msgstr "无法创建 ~/.%src"
+
+#: src/pmap.c:1141
+msgid "argument missing"
+msgstr "缺少å‚æ•°"
+
+#: src/pmap.c:1154
+msgid "couldn't read the rc file"
+msgstr "æ— æ³•è¯»å– rc 文件"
+
+#: src/pmap.c:1156
+#, c-format
+msgid "couldn't read ~/.%src"
+msgstr "æ— æ³•è¯»å– ~/.%src"
+
+#: src/pmap.c:1165 src/pmap.c:1190
+msgid "library failed pids statistics"
+msgstr ""
+
+#: src/ps/display.c:61
+#, c-format
+msgid "Signal %d (%s) caught by %s (%s).\n"
+msgstr "ä¿¡å· %d(%s)已由 %s(%s)æ•èŽ·ã€‚\n"
+
+#: src/ps/display.c:75 src/ps/display.c:252 src/ps/display.c:407
+#: src/ps/output.c:2359 src/ps/parser.c:509 src/ps/parser.c:756
+#: src/ps/select.c:95 src/ps/sortformat.c:263 src/ps/sortformat.c:301
+#: src/ps/sortformat.c:549
+msgid "please report this bug"
+msgstr "请报告此问题"
+
+#: src/ps/display.c:315 src/ps/display.c:484
+#, c-format
+msgid "fatal library error, reap\n"
+msgstr ""
+
+#: src/ps/display.c:365
+#, fuzzy, c-format
+msgid "could not find ppid\n"
+msgstr "找ä¸åˆ°ç±»%qE"
+
+#: src/ps/display.c:375
+#, fuzzy, c-format
+msgid "could not find start_time\n"
+msgstr "找ä¸åˆ°ç±»%qE"
+
+#: src/ps/global.c:287
+#, c-format
+msgid "your %dx%d screen size is bogus. expect trouble\n"
+msgstr "您的 %dx%d çš„å±å¹•å°ºå¯¸å¯èƒ½å¹¶éžçœŸå®žå°ºå¯¸ã€‚程åºè¿è¡Œå¯èƒ½ä¸æ­£å¸¸\n"
+
+#: src/ps/global.c:360 src/ps/global.c:372
+#, fuzzy
+msgid "environment specified an unknown personality"
+msgstr "åˆå§‹å€¼è®¾å®šé¡¹é‡Œæœ‰æœªçŸ¥çš„字段%qE"
+
+#: src/ps/global.c:364
+#, fuzzy, c-format
+msgid "cannot strdup() personality text\n"
+msgstr "无法推断 CD-Text 文件å"
+
+#: src/ps/global.c:495
+#, c-format
+msgid "fatal library error, context\n"
+msgstr ""
+
+#: src/ps/global.c:503
+#, c-format
+msgid "fatal library error, lookup self\n"
+msgstr ""
+
+#. Translation Note:
+#. . The following translatable word will be used to recognize the
+#. . user's request for help text. In other words, the translation
+#. . you provide will alter program behavior.
+#. .
+#. . It must be limited to 15 characters or less.
+#.
+#: src/ps/global.c:542
+msgid "help"
+msgstr "help"
+
+#. Translation Notes for ps Help #1 ---------------------------------
+#. . This next group of lines represents 6 pairs of words + abbreviations
+#. . which are the basis of the 'ps' program help text.
+#. .
+#. . The words and abbreviations you provide will alter program behavior.
+#. . They will also appear in the help usage summary associated with the
+#. . "Notes for ps Help #2" below.
+#. .
+#. . In their English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . When translating these 6 pairs you may choose any appropriate
+#. . language equivalents and the only requirement is the abbreviated
+#. . representations must be unique.
+#. .
+#. . By default, those abbreviations are single characters. However,
+#. . they are not limited to only one character after translation.
+#. .
+#. Translation Hint, Pair #1
+#: src/ps/help.c:67
+#, fuzzy
+msgid "simple"
+msgstr "简å•çš„ IF"
+
+#: src/ps/help.c:67
+msgid "s"
+msgstr "s"
+
+#. Translation Hint, Pair #2
+#: src/ps/help.c:69
+#, fuzzy
+msgid "list"
+msgstr "LIST"
+
+#: src/ps/help.c:69
+#, fuzzy
+msgid "l"
+msgstr "L"
+
+#. Translation Hint, Pair #3
+#: src/ps/help.c:71
+#, fuzzy
+msgid "output"
+msgstr "输出"
+
+#: src/ps/help.c:71
+#, fuzzy
+msgid "o"
+msgstr "%s%s 预期为 %#o å´æ‰¾åˆ° %#o"
+
+#. Translation Hint, Pair #4
+#: src/ps/help.c:73
+#, fuzzy
+msgid "threads"
+msgstr "ä¸èƒ½åŒæ—¶ä½¿ç”¨ mthreads å’Œ mlegacy-threads"
+
+#: src/ps/help.c:73
+#, fuzzy
+msgid "t"
+msgstr "二"
+
+#. Translation Hint, Pair #5
+#: src/ps/help.c:75
+#, fuzzy
+msgid "misc"
+msgstr "æ‚项 "
+
+#: src/ps/help.c:75
+#, fuzzy
+msgid "m"
+msgstr "M"
+
+#. Translation Hint, Pair #6
+#: src/ps/help.c:77
+#, fuzzy
+msgid "all"
+msgstr "所有"
+
+#: src/ps/help.c:77
+msgid "a"
+msgstr ""
+
+#: src/ps/help.c:98
+#, c-format
+msgid ""
+"\n"
+"Usage:\n"
+" %s [options]\n"
+msgstr ""
+"\n"
+"用法:\n"
+" %s [选项]\n"
+
+#: src/ps/help.c:103
+msgid ""
+"\n"
+"Basic options:\n"
+msgstr ""
+"\n"
+"基本选项:\n"
+
+#: src/ps/help.c:104
+#, fuzzy
+msgid " -A, -e all processes\n"
+msgstr "未å‘现进程。\n"
+
+#: src/ps/help.c:105
+msgid " -a all with tty, except session leaders\n"
+msgstr ""
+
+#: src/ps/help.c:106
+msgid " a all with tty, including other users\n"
+msgstr ""
+
+#: src/ps/help.c:107
+msgid " -d all except session leaders\n"
+msgstr ""
+
+#: src/ps/help.c:108
+#, fuzzy
+msgid " -N, --deselect negate selection\n"
+msgstr "N 使用文件å选择窗å£..................."
+
+#: src/ps/help.c:109
+#, fuzzy
+msgid " r only running processes\n"
+msgstr "“uâ€åªåœ¨ä½¿ç”¨â€œrâ€é€‰é¡¹çš„时候æ‰æœ‰æ„义。"
+
+#: src/ps/help.c:110
+msgid " T all processes on this terminal\n"
+msgstr ""
+
+#: src/ps/help.c:111
+msgid " x processes without controlling ttys\n"
+msgstr ""
+
+#: src/ps/help.c:114
+#, fuzzy
+msgid ""
+"\n"
+"Selection by list:\n"
+msgstr "需è¦é€‰æ‹©è¯­å¥"
+
+#: src/ps/help.c:115
+msgid " -C <command> command name\n"
+msgstr " -C <命令> 命令å称\n"
+
+#: src/ps/help.c:116
+msgid " -G, --Group <GID> real group id or name\n"
+msgstr ""
+
+#: src/ps/help.c:117
+msgid " -g, --group <group> session or effective group name\n"
+msgstr ""
+
+#: src/ps/help.c:118
+msgid " -p, p, --pid <PID> process id\n"
+msgstr " -p, p, --pid <PID> 进程编å·\n"
+
+#: src/ps/help.c:119
+msgid " --ppid <PID> parent process id\n"
+msgstr " --ppid <PID> 父进程编å·\n"
+
+#: src/ps/help.c:120
+msgid ""
+" -q, q, --quick-pid <PID>\n"
+" process id (quick mode)\n"
+msgstr ""
+
+#: src/ps/help.c:122
+msgid " -s, --sid <session> session id\n"
+msgstr ""
+
+#: src/ps/help.c:123
+msgid " -t, t, --tty <tty> terminal\n"
+msgstr " -t, t, --tty <tty> 终端\n"
+
+#: src/ps/help.c:124
+msgid " -u, U, --user <UID> effective user id or name\n"
+msgstr ""
+
+#: src/ps/help.c:125
+msgid " -U, --User <UID> real user id or name\n"
+msgstr " -U, --User <UID> 真实用户编å·æˆ–å称\n"
+
+#: src/ps/help.c:126
+msgid ""
+"\n"
+" The selection options take as their argument either:\n"
+" a comma-separated list e.g. '-u root,nobody' or\n"
+" a blank-separated list e.g. '-p 123 4567'\n"
+msgstr ""
+
+#: src/ps/help.c:132
+msgid ""
+"\n"
+"Output formats:\n"
+msgstr ""
+"\n"
+"输出格å¼ï¼š\n"
+
+#: src/ps/help.c:133
+#, fuzzy
+msgid " -D <format> date format for lstart\n"
+msgstr "%<short%>对%qs无效"
+
+#: src/ps/help.c:134
+#, fuzzy
+msgid " -F extra full\n"
+msgstr " -F, --fullname 打å°å…¨å\n"
+
+#: src/ps/help.c:135
+msgid " -f full-format, including command lines\n"
+msgstr " -f 完整格å¼ï¼ŒåŒ…å«å‘½ä»¤è¡Œ\n"
+
+#: src/ps/help.c:136
+msgid " f, --forest ascii art process tree\n"
+msgstr " f, --forest ascii 字符艺术显示的进程树\n"
+
+#: src/ps/help.c:137
+#, fuzzy
+msgid " -H show process hierarchy\n"
+msgstr "显示处ç†é’¥åŒ™åœˆ"
+
+#: src/ps/help.c:138
+#, fuzzy
+msgid " -j jobs format\n"
+msgstr "å‘布寻求å助"
+
+#: src/ps/help.c:139
+msgid " j BSD job control format\n"
+msgstr " j BSD 任务控制格å¼\n"
+
+#: src/ps/help.c:140
+msgid " -l long format\n"
+msgstr " -l é•¿æ ¼å¼\n"
+
+#: src/ps/help.c:141
+msgid " l BSD long format\n"
+msgstr " l BSD é•¿æ ¼å¼\n"
+
+#: src/ps/help.c:142
+msgid " -M, Z add security data (for SELinux)\n"
+msgstr " -M, Z 添加安全数æ®ï¼ˆç”¨äºŽ SELinux)\n"
+
+#: src/ps/help.c:143
+msgid " -O <format> preloaded with default columns\n"
+msgstr ""
+
+#: src/ps/help.c:144
+msgid " O <format> as -O, with BSD personality\n"
+msgstr ""
+
+#: src/ps/help.c:145
+msgid ""
+" -o, o, --format <format>\n"
+" user-defined format\n"
+msgstr ""
+" -o, o, --format <æ ¼å¼>\n"
+" 用户定义的格å¼\n"
+
+#: src/ps/help.c:147
+#, fuzzy
+msgid " -P add psr column\n"
+msgstr " -o 没有效果\n"
+
+#: src/ps/help.c:148
+msgid " s signal format\n"
+msgstr " s ä¿¡å·æ ¼å¼\n"
+
+#: src/ps/help.c:149
+msgid " u user-oriented format\n"
+msgstr ""
+
+#: src/ps/help.c:150
+msgid " v virtual memory format\n"
+msgstr " v 虚拟内存格å¼\n"
+
+#: src/ps/help.c:151
+msgid " X register format\n"
+msgstr " X 寄存器格å¼\n"
+
+#: src/ps/help.c:152
+msgid ""
+" -y do not show flags, show rss vs. addr (used with -l)\n"
+msgstr ""
+
+#: src/ps/help.c:153
+msgid " --context display security context (for SELinux)\n"
+msgstr " --context 显示安全上下文(用于 SELinux)\n"
+
+#: src/ps/help.c:154
+msgid " --headers repeat header lines, one per page\n"
+msgstr ""
+
+#: src/ps/help.c:155
+msgid " --no-headers do not print header at all\n"
+msgstr ""
+
+#: src/ps/help.c:156
+msgid ""
+" --cols, --columns, --width <num>\n"
+" set screen width\n"
+msgstr ""
+
+#: src/ps/help.c:158
+msgid ""
+" --rows, --lines <num>\n"
+" set screen height\n"
+msgstr ""
+
+#: src/ps/help.c:160
+#, fuzzy
+msgid " --signames display signal masks using signal names\n"
+msgstr " -l, --list 列出全部信å·å称\n"
+
+#: src/ps/help.c:163
+#, fuzzy
+msgid ""
+"\n"
+"Show threads:\n"
+msgstr "[显示]S"
+
+#: src/ps/help.c:164
+#, fuzzy
+msgid " H as if they were processes\n"
+msgstr "未å‘现进程。\n"
+
+#: src/ps/help.c:165
+msgid " -L possibly with LWP and NLWP columns\n"
+msgstr ""
+
+#: src/ps/help.c:166
+#, fuzzy
+msgid " -m, m after processes\n"
+msgstr "‘m’标记"
+
+#: src/ps/help.c:167
+msgid " -T possibly with SPID column\n"
+msgstr ""
+
+#: src/ps/help.c:170
+#, fuzzy
+msgid ""
+"\n"
+"Miscellaneous options:\n"
+msgstr "æ‚项(未分类)"
+
+#: src/ps/help.c:171
+msgid " -c show scheduling class with -l option\n"
+msgstr ""
+
+#: src/ps/help.c:172
+msgid " c show true command name\n"
+msgstr ""
+
+#: src/ps/help.c:173
+msgid " e show the environment after command\n"
+msgstr ""
+
+#: src/ps/help.c:174
+msgid ""
+" k, --sort specify sort order as: [+|-]key[,[+|-]key[,...]]\n"
+msgstr ""
+
+#: src/ps/help.c:175
+#, fuzzy
+msgid " L show format specifiers\n"
+msgstr "%s 出现在%L处的格å¼å­—符串中"
+
+#: src/ps/help.c:176
+msgid " n display numeric uid and wchan\n"
+msgstr ""
+
+#: src/ps/help.c:177
+msgid " S, --cumulative include some dead child process data\n"
+msgstr ""
+
+#: src/ps/help.c:178
+msgid " -y do not show flags, show rss (only with -l)\n"
+msgstr ""
+
+#: src/ps/help.c:179
+#, fuzzy
+msgid " -V, V, --version display version information and exit\n"
+msgstr ""
+"\n"
+" -v, --version 显示程åºç‰ˆæœ¬ç„¶åŽç¦»å¼€"
+
+#: src/ps/help.c:180
+msgid " -w, w unlimited output width\n"
+msgstr " -w, w ä¸é™åˆ¶è¾“出宽度\n"
+
+#: src/ps/help.c:181
+#, c-format
+msgid ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" display help and exit\n"
+msgstr ""
+"\n"
+" --%s <%s|%s|%s|%s|%s|%s>\n"
+" 显示帮助信æ¯å¹¶é€€å‡º\n"
+
+#. Translation Notes for ps Help #2 ---------------------------------
+#. . Most of the following c-format string is derived from the 6
+#. . pairs of words + chars mentioned above in "Notes for ps Help #1".
+#. .
+#. . In its full English form, help text would look like this:
+#. . Try 'ps --help <simple|list|output|threads|misc|all>'
+#. . or 'ps --help <s|l|o|t|m|a>'
+#. . for additional help text.
+#. .
+#. . The word for "help" will be translated elsewhere. Thus, the only
+#. . translations below will be: "Try", "or" and "for additional...".
+#. .
+#: src/ps/help.c:202
+#, c-format
+msgid ""
+"\n"
+" Try '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" or '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+" for additional help text.\n"
+msgstr ""
+
+#: src/ps/help.c:215
+#, c-format
+msgid ""
+"\n"
+"For more details see ps(1).\n"
+msgstr ""
+"\n"
+"如需了解更多细节,请阅读 ps(1)。\n"
+
+#: src/ps/output.c:104
+msgid "Unable to get system boot time"
+msgstr ""
+
+#: src/ps/output.c:119
+#, fuzzy
+msgid "Unable to get total memory"
+msgstr "脚本“%sâ€: 内存耗尽%s\n"
+
+#: src/ps/output.c:2206
+#, fuzzy, c-format
+msgid "fix bigness error\n"
+msgstr "修正"
+
+#: src/ps/output.c:2289
+#, fuzzy, c-format
+msgid "bad alignment code\n"
+msgstr "错误的æ¡ä»¶ç "
+
+#: src/ps/parser.c:63
+#, fuzzy
+msgid "the option is exclusive: "
+msgstr "排他"
+
+#: src/ps/parser.c:93
+msgid "process ID list syntax error"
+msgstr "进程编å·åˆ—表语法错误"
+
+#: src/ps/parser.c:94 src/ps/parser.c:95
+msgid "process ID out of range"
+msgstr "进程编å·è¶…出范围"
+
+#: src/ps/parser.c:108
+#, fuzzy
+msgid "user name does not exist"
+msgstr "用户%s ä¸å­˜åœ¨ - 使用root\n"
+
+#: src/ps/parser.c:114
+msgid "user ID out of range"
+msgstr "用户编å·è¶…出范围"
+
+#: src/ps/parser.c:127
+#, fuzzy
+msgid "group name does not exist"
+msgstr "群组%s ä¸å­˜åœ¨ - 使用root\n"
+
+#: src/ps/parser.c:133
+#, fuzzy
+msgid "group ID out of range"
+msgstr "设置组ID 失败"
+
+#: src/ps/parser.c:149 src/ps/parser.c:173
+msgid "TTY could not be found"
+msgstr "无法找到 TTY"
+
+#: src/ps/parser.c:175
+#, fuzzy
+msgid "list member was not a TTY"
+msgstr "项目æˆå‘˜åˆ—表"
+
+#: src/ps/parser.c:200
+#, fuzzy
+msgid "improper list"
+msgstr "LIST"
+
+#: src/ps/parser.c:249
+msgid "list of command names must follow -C"
+msgstr ""
+
+#: src/ps/parser.c:257
+msgid "date format must follow -D"
+msgstr ""
+
+#: src/ps/parser.c:270
+msgid "list of real groups must follow -G"
+msgstr ""
+
+#: src/ps/parser.c:283
+msgid "list of jobs must follow -J"
+msgstr ""
+
+#: src/ps/parser.c:311
+msgid "format or sort specification must follow -O"
+msgstr ""
+
+#: src/ps/parser.c:322
+msgid "list of PRM groups must follow -R"
+msgstr ""
+
+#: src/ps/parser.c:341
+msgid "list of real users must follow -U"
+msgstr ""
+
+#: src/ps/parser.c:382
+msgid "list of session leaders OR effective group names must follow -g"
+msgstr ""
+
+#: src/ps/parser.c:393
+msgid "list of session leaders OR effective group IDs was invalid"
+msgstr ""
+
+#: src/ps/parser.c:417
+msgid "format specification must follow -o"
+msgstr ""
+
+#: src/ps/parser.c:423
+msgid "list of process IDs must follow -p"
+msgstr ""
+
+#: src/ps/parser.c:440
+msgid "the -r option is reserved"
+msgstr "-r 选项已被预留"
+
+#: src/ps/parser.c:446
+msgid "list of session IDs must follow -s"
+msgstr ""
+
+#: src/ps/parser.c:454
+msgid "list of terminals (pty, tty...) must follow -t"
+msgstr ""
+
+#: src/ps/parser.c:462
+msgid "list of users must follow -u"
+msgstr ""
+
+#: src/ps/parser.c:484
+msgid "must set personality to get -x option"
+msgstr ""
+
+#: src/ps/parser.c:499
+msgid "list of zones (contexts, labels, whatever?) must follow -z"
+msgstr ""
+
+#: src/ps/parser.c:506
+msgid "embedded '-' among SysV options makes no sense"
+msgstr ""
+
+#: src/ps/parser.c:512
+msgid "unsupported SysV option"
+msgstr "ä¸æ”¯æŒçš„ SysV 选项"
+
+#: src/ps/parser.c:525
+msgid "cannot happen - problem #1"
+msgstr "ä¸åº”å‘生 - 问题 #1"
+
+#: src/ps/parser.c:529
+msgid "cannot happen - problem #2"
+msgstr "ä¸åº”å‘生 - 问题 #2"
+
+#: src/ps/parser.c:531
+msgid "second chance parse failed, not BSD or SysV"
+msgstr "第二次解æžåŒæ ·å¤±è´¥ï¼Œå¹¶éž BSD 或 SysV"
+
+#: src/ps/parser.c:548
+#, fuzzy
+msgid "option A is reserved"
+msgstr "ä¿ç•™"
+
+#: src/ps/parser.c:553
+#, fuzzy
+msgid "option C is reserved"
+msgstr "无效的选项“-%câ€\n"
+
+#: src/ps/parser.c:573
+msgid "format or sort specification must follow O"
+msgstr ""
+
+#: src/ps/parser.c:598
+msgid "list of users must follow U"
+msgstr ""
+
+#: src/ps/parser.c:610
+msgid "obsolete W option not supported (you have a /dev/drum?)"
+msgstr ""
+
+#: src/ps/parser.c:646 src/ps/parser.c:921 src/ps/parser.c:930
+#, fuzzy
+msgid "only one heading option may be specified"
+msgstr "åªèƒ½æŒ‡å®šä¸€ä¸ªè®¾å¤‡"
+
+#: src/ps/parser.c:661
+msgid "long sort specification must follow 'k'"
+msgstr ""
+
+#: src/ps/parser.c:689
+msgid "format specification must follow o"
+msgstr ""
+
+#: src/ps/parser.c:695
+msgid "list of process IDs must follow p"
+msgstr ""
+
+#: src/ps/parser.c:753
+msgid "embedded '-' among BSD options makes no sense"
+msgstr "BSD 选项中嵌入的 '-' ä¸åˆç†"
+
+#: src/ps/parser.c:759
+#, fuzzy
+msgid "unsupported option (BSD syntax)"
+msgstr "ä¸æ”¯æŒæ—§è¯­æ³•ï¼š%s\n"
+
+#: src/ps/parser.c:847 src/ps/parser.c:859
+msgid "unknown gnu long option"
+msgstr "未知的 gnu 长选项"
+
+#: src/ps/parser.c:867
+msgid "list of real groups must follow --Group"
+msgstr ""
+
+#: src/ps/parser.c:875
+msgid "list of real users must follow --User"
+msgstr ""
+
+#: src/ps/parser.c:894
+msgid "number of columns must follow --cols, --width, or --columns"
+msgstr ""
+
+#: src/ps/parser.c:897
+msgid "option --cumulative does not take an argument"
+msgstr ""
+
+#: src/ps/parser.c:902
+#, fuzzy
+msgid "date format must follow --date-format"
+msgstr "%C处é‡å¤çš„æ ¼å¼è§„æ ¼"
+
+#: src/ps/parser.c:908
+msgid "option --deselect does not take an argument"
+msgstr ""
+
+#: src/ps/parser.c:920
+msgid "option --no-heading does not take an argument"
+msgstr ""
+
+#: src/ps/parser.c:929
+msgid "option --heading does not take an argument"
+msgstr ""
+
+#: src/ps/parser.c:935
+msgid "option --forest does not take an argument"
+msgstr ""
+
+#: src/ps/parser.c:941
+#, fuzzy
+msgid "format specification must follow --format"
+msgstr "%C处é‡å¤çš„æ ¼å¼è§„æ ¼"
+
+#: src/ps/parser.c:947
+msgid "list of effective groups must follow --group"
+msgstr ""
+
+#: src/ps/parser.c:965
+msgid "list of process IDs must follow --pid"
+msgstr ""
+
+#: src/ps/parser.c:981
+msgid "list of process IDs must follow --ppid"
+msgstr ""
+
+#: src/ps/parser.c:999
+msgid "number of rows must follow --rows or --lines"
+msgstr ""
+
+#: src/ps/parser.c:1003
+msgid "some sid thing(s) must follow --sid"
+msgstr ""
+
+#: src/ps/parser.c:1015
+msgid "long sort specification must follow --sort"
+msgstr ""
+
+#: src/ps/parser.c:1021
+msgid "list of ttys must follow --tty"
+msgstr ""
+
+#: src/ps/parser.c:1029
+msgid "list of effective users must follow --user"
+msgstr ""
+
+#: src/ps/parser.c:1145
+msgid "way bad"
+msgstr "有些地方出错了"
+
+#: src/ps/parser.c:1159
+msgid "garbage option"
+msgstr "多余的无用选项"
+
+#: src/ps/parser.c:1163
+msgid "something broke"
+msgstr "有什么地方ä¸å¤ªå¯¹åŠ²"
+
+#: src/ps/parser.c:1183
+msgid "thread display conflicts with forest display"
+msgstr ""
+
+#: src/ps/parser.c:1188
+msgid "thread flags conflict; can't use H with m or -m"
+msgstr ""
+
+#: src/ps/parser.c:1190
+msgid "thread flags conflict; can't use both m and -m"
+msgstr ""
+
+#: src/ps/parser.c:1192
+msgid "thread flags conflict; can't use both -L and -T"
+msgstr ""
+
+#: src/ps/parser.c:1265 src/ps/parser.c:1266
+#, c-format
+msgid "error: %s\n"
+msgstr "错误:%s\n"
+
+#: src/ps/select.c:71
+msgid "process selection options conflict"
+msgstr ""
+
+#: src/ps/sortformat.c:110 src/ps/sortformat.c:115
+msgid "seriously crashing: goodbye cruel world"
+msgstr ""
+
+#: src/ps/sortformat.c:150 src/ps/sortformat.c:169
+#, fuzzy
+msgid "missing AIX field descriptor"
+msgstr "åˆå§‹å€¼è®¾å®šé¡¹é‡Œæœ‰æœªçŸ¥çš„字段%qE"
+
+#: src/ps/sortformat.c:152
+msgid "improper AIX field descriptor"
+msgstr ""
+
+#: src/ps/sortformat.c:174
+#, fuzzy
+msgid "unknown AIX field descriptor"
+msgstr "åˆå§‹å€¼è®¾å®šé¡¹é‡Œæœ‰æœªçŸ¥çš„字段%qE"
+
+#: src/ps/sortformat.c:179
+msgid "AIX field descriptor processing bug"
+msgstr ""
+
+#: src/ps/sortformat.c:287
+#, c-format
+msgid "unknown user-defined format specifier \"%s\""
+msgstr ""
+
+#: src/ps/sortformat.c:314
+msgid "empty format list"
+msgstr "空格å¼åˆ—表"
+
+#: src/ps/sortformat.c:315
+#, fuzzy
+msgid "improper format list"
+msgstr "LIST"
+
+#: src/ps/sortformat.c:316
+msgid "column widths must be unsigned decimal numbers"
+msgstr ""
+
+#: src/ps/sortformat.c:317
+msgid "can not set width for a macro (multi-column) format specifier"
+msgstr ""
+
+#: src/ps/sortformat.c:371 src/ps/sortformat.c:387
+#, fuzzy
+msgid "improper sort list"
+msgstr "排åº"
+
+#: src/ps/sortformat.c:382
+#, fuzzy
+msgid "empty sort list"
+msgstr "排åº"
+
+#: src/ps/sortformat.c:403 src/ps/sortformat.c:482 src/ps/sortformat.c:484
+#, fuzzy
+msgid "unknown sort specifier"
+msgstr "排åº"
+
+#: src/ps/sortformat.c:430 src/ps/sortformat.c:435 src/ps/sortformat.c:442
+#: src/ps/sortformat.c:448
+#, fuzzy
+msgid "bad sorting code"
+msgstr "错误的内建代ç "
+
+#: src/ps/sortformat.c:445
+msgid "PPID sort and forest output conflict"
+msgstr ""
+
+#: src/ps/sortformat.c:519
+msgid "option -O can not follow other format options"
+msgstr ""
+
+#: src/ps/sortformat.c:526 src/ps/sortformat.c:544
+#, fuzzy
+msgid "multiple sort options"
+msgstr "排åº"
+
+#: src/ps/sortformat.c:534
+msgid "option O is neither first format nor sort order"
+msgstr ""
+
+#: src/ps/sortformat.c:661
+msgid "modifier -y without format -l makes no sense"
+msgstr ""
+
+#: src/ps/sortformat.c:760
+msgid "bug: must reset the list first"
+msgstr "错误:必须首先é‡ç½®åˆ—表"
+
+#: src/ps/sortformat.c:797
+msgid "tell <procps@freelists.org> what you expected"
+msgstr "è¯·å‘ <procps@freelists.org> 报告问题和您期望的结果"
+
+#: src/ps/sortformat.c:807
+msgid ""
+"tell <procps@freelists.org> what you want (-L/-T, -m/m/H, and $PS_FORMAT)"
+msgstr ""
+
+#: src/ps/sortformat.c:824
+#, c-format
+msgid "warning: $PS_FORMAT ignored. (%s)\n"
+msgstr "警告:$PS_FORMAT 已忽略。(%s)\n"
+
+#: src/ps/sortformat.c:829 src/ps/sortformat.c:839
+msgid "conflicting format options"
+msgstr "冲çªçš„æ ¼å¼é€‰é¡¹"
+
+#: src/ps/sortformat.c:830
+msgid "can not use output modifiers with user-defined output"
+msgstr ""
+
+#: src/ps/sortformat.c:831
+msgid "-L/-T with H/m/-m and -o/-O/o/O is nonsense"
+msgstr ""
+
+#: src/ps/sortformat.c:889
+msgid "internal error: no PID or PPID for -j option"
+msgstr "内部错误:没有用于 -j 选项的 PID 或 PPID"
+
+#: src/ps/sortformat.c:891
+#, fuzzy
+msgid "lost my PGID"
+msgstr "资æºä¸¢å¤±"
+
+#: src/ps/sortformat.c:904
+#, fuzzy
+msgid "internal error: no PRI for -c option"
+msgstr "内部错误 -- 该选项尚未实现"
+
+#: src/ps/sortformat.c:907
+#, fuzzy
+msgid "lost my CLS"
+msgstr "资æºä¸¢å¤±"
+
+#: src/ps/sortformat.c:912
+msgid "-T with H/-m/m but no PID for SPID to follow"
+msgstr ""
+
+#: src/ps/sortformat.c:923
+msgid "-L with H/-m/m but no PID/PGID/SID/SESS for NLWP to follow"
+msgstr ""
+
+#: src/pwdx.c:41
+#, fuzzy, c-format
+msgid " %s [options] pid...\n"
+msgstr "%*s 用户 è¿›ç¨‹å· æƒé™ 命令\n"
+
+#: src/pwdx.c:117
+#, c-format
+msgid "invalid process id: %s"
+msgstr "无效的进程å·ï¼š%s"
+
+#: src/skill.c:285
+msgid "Unable to create pid Pids_info structure"
+msgstr ""
+
+#: src/skill.c:288 src/w.c:458
+#, fuzzy
+msgid "Unable to load process information"
+msgstr "无法创建 (fork) 进程"
+
+#: src/skill.c:319
+#, fuzzy, c-format
+msgid " %s [signal] [options] <expression>\n"
+msgstr " %s 的选项:\n"
+
+#: src/skill.c:323
+#, c-format
+msgid " %s [new priority] [options] <expression>\n"
+msgstr ""
+
+#: src/skill.c:327
+msgid " -f, --fast fast mode (not implemented)\n"
+msgstr ""
+
+#: src/skill.c:328
+msgid " -i, --interactive interactive\n"
+msgstr ""
+
+#: src/skill.c:329
+msgid " -l, --list list all signal names\n"
+msgstr " -l, --list 列出全部信å·å称\n"
+
+#: src/skill.c:330
+msgid " -L, --table list all signal names in a nice table\n"
+msgstr " -L, --table 以表格形å¼åˆ—出所有信å·å称\n"
+
+#: src/skill.c:331
+msgid ""
+" -n, --no-action do not actually kill processes; just print what would "
+"happen\n"
+msgstr ""
+
+#: src/skill.c:332
+#, fuzzy
+msgid " -v, --verbose explain what is being done\n"
+msgstr ""
+" -u, --update\t\t\tåªåœ¨æºæ–‡ä»¶æ¯”目标文件新,或目标文件\n"
+"\t\t\t\t\tä¸å­˜åœ¨æ—¶æ‰è¿›è¡Œå¤åˆ¶\n"
+" -v, --verbose\t\t显示详细的进行步骤\n"
+" -x, --one-file-system\tä¸è·¨è¶Šæ–‡ä»¶ç³»ç»Ÿè¿›è¡Œæ“作\n"
+
+#: src/skill.c:333
+#, fuzzy
+msgid " -w, --warnings enable warnings (not implemented)\n"
+msgstr "å¯ç”¨æ‰€æœ‰å…³äºŽâ€œXX未使用â€çš„警告"
+
+#: src/skill.c:335
+msgid ""
+"Expression can be: terminal, user, pid, command.\n"
+"The options below may be used to ensure correct interpretation.\n"
+msgstr ""
+
+#: src/skill.c:337
+#, fuzzy
+msgid " -c, --command <command> expression is a command name\n"
+msgstr "用法:%s [选项]... [-] [å称=值]... [命令 [å‚æ•°]...]\n"
+
+#: src/skill.c:338
+msgid " -p, --pid <pid> expression is a process id number\n"
+msgstr ""
+
+#: src/skill.c:339
+msgid " -t, --tty <tty> expression is a terminal\n"
+msgstr ""
+
+#: src/skill.c:340
+#, fuzzy
+msgid " -u, --user <username> expression is a username\n"
+msgstr "设置 USER 作为代ç†æœåŠ¡å™¨ç”¨æˆ·å。"
+
+#: src/skill.c:342
+msgid "Alternatively, expression can be:\n"
+msgstr ""
+
+#: src/skill.c:343
+msgid ""
+" --ns <pid> match the processes that belong to the same\n"
+" namespace as <pid>\n"
+msgstr ""
+
+#: src/skill.c:345
+msgid ""
+" --nslist <ns,...> list which namespaces will be considered for\n"
+" the --ns option; available namespaces are\n"
+": ipc, mnt, net, pid, user, uts\n"
+msgstr ""
+
+#: src/skill.c:355
+#, c-format
+msgid ""
+"\n"
+"The default signal is TERM. Use -l or -L to list available signals.\n"
+"Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0.\n"
+"Alternate signals may be specified in three ways: -SIGKILL -KILL -9\n"
+msgstr ""
+
+#: src/skill.c:362
+#, c-format
+msgid ""
+"\n"
+"The default priority is +4. (snice +4 ...)\n"
+"Priority numbers range from +20 (slowest) to -20 (fastest).\n"
+"Negative priority numbers are restricted to administrative users.\n"
+msgstr ""
+
+#: src/skill.c:384
+#, fuzzy, c-format
+msgid "priority %lu out of range"
+msgstr "请求的 init_priority 越界"
+
+#: src/skill.c:493
+#, c-format
+msgid "invalid pid number %s"
+msgstr "无效的 pid 数字 %s"
+
+#: src/skill.c:497
+msgid "error reading reference namespace information"
+msgstr ""
+
+#: src/skill.c:505
+msgid "invalid namespace list"
+msgstr "无效的命å空间列表"
+
+#: src/skill.c:542
+#, fuzzy
+msgid "no process selection criteria"
+msgstr "需è¦é€‰æ‹©è¯­å¥"
+
+#: src/skill.c:545
+msgid "general flags may not be repeated"
+msgstr ""
+
+#: src/skill.c:548
+msgid "-i makes no sense with -v, -f, and -n"
+msgstr ""
+
+#: src/skill.c:550
+msgid "-v makes no sense with -i and -f"
+msgstr ""
+
+#: src/skill.c:594
+#, fuzzy, c-format
+msgid "skill: \"%s\" is not supported\n"
+msgstr "%s:ä¸æ”¯æŒ"
+
+#: src/slabtop.c:108
+#, fuzzy
+msgid " -d, --delay <secs> delay updates\n"
+msgstr " D - æ¢è¡Œ tx 延迟 (ms)\t:"
+
+#: src/slabtop.c:109
+msgid " -o, --once only display once, then exit\n"
+msgstr ""
+
+#: src/slabtop.c:110
+msgid " -s, --sort <char> specify sort criteria by character (see below)\n"
+msgstr ""
+
+#: src/slabtop.c:115
+msgid ""
+"\n"
+"The following are valid sort criteria:\n"
+msgstr ""
+
+#: src/slabtop.c:116
+msgid " a: sort by number of active objects\n"
+msgstr ""
+
+#: src/slabtop.c:117
+msgid " b: sort by objects per slab\n"
+msgstr ""
+
+#: src/slabtop.c:118
+#, fuzzy
+msgid " c: sort by cache size\n"
+msgstr "一级缓存列长度"
+
+#: src/slabtop.c:119
+#, fuzzy
+msgid " l: sort by number of slabs\n"
+msgstr "在%L处把一个无穷大或éžæ•°è½¬æ¢ä¸º INTEGER"
+
+#: src/slabtop.c:120
+#, fuzzy
+msgid " v: sort by (non display) number of active slabs\n"
+msgstr "在%L处把一个无穷大或éžæ•°è½¬æ¢ä¸º INTEGER"
+
+#: src/slabtop.c:121
+#, fuzzy
+msgid " n: sort by name\n"
+msgstr " [N] - 使用å称的实例 [æ•°é‡]\n"
+
+#: src/slabtop.c:122
+msgid " o: sort by number of objects (the default)\n"
+msgstr ""
+
+#: src/slabtop.c:123
+msgid " p: sort by (non display) pages per slab\n"
+msgstr ""
+
+#: src/slabtop.c:124
+msgid " s: sort by object size\n"
+msgstr ""
+
+#: src/slabtop.c:125
+msgid " u: sort by cache utilization\n"
+msgstr ""
+
+#: src/slabtop.c:188 src/slabtop.c:199
+msgid "Cannot combine -d and -o options"
+msgstr ""
+
+#: src/slabtop.c:190
+#, fuzzy
+msgid "illegal delay"
+msgstr "<éžæ³•çš„精度>"
+
+#: src/slabtop.c:192 src/tload.c:142 src/vmstat.c:1049
+#, fuzzy
+msgid "delay must be positive integer"
+msgstr "“Nâ€çš„值必须是正数。"
+
+#: src/slabtop.c:236
+msgid "Error getting slab summary results"
+msgstr ""
+
+#. Translation Hint: Next five strings must not
+#. * exceed a length of 35 characters.
+#: src/slabtop.c:242
+#, fuzzy, no-c-format
+msgid "Active / Total Objects (% used)"
+msgstr "局部对象的总大å°å¤ªå¤§"
+
+#: src/slabtop.c:248
+#, no-c-format
+msgid "Active / Total Slabs (% used)"
+msgstr ""
+
+#: src/slabtop.c:254
+#, no-c-format
+msgid "Active / Total Caches (% used)"
+msgstr ""
+
+#: src/slabtop.c:260
+#, fuzzy, no-c-format
+msgid "Active / Total Size (% used)"
+msgstr "局部对象的总大å°å¤ªå¤§"
+
+#: src/slabtop.c:265
+#, fuzzy
+msgid "Minimum / Average / Maximum Object"
+msgstr "默认 %d æœ€å° %d 最大 %d"
+
+#. Translation Hint: Please keep alignment of the
+#. * following intact.
+#: src/slabtop.c:276
+msgid " OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME"
+msgstr ""
+
+#: src/slabtop.c:313 src/vmstat.c:767
+msgid "Unable to create slabinfo structure"
+msgstr ""
+
+#: src/slabtop.c:318
+#, fuzzy
+msgid "terminal setting retrieval"
+msgstr "设置检索é…é¢ä¸º NUMBER。"
+
+#: src/slabtop.c:334 src/vmstat.c:774
+msgid "Unable to get slabinfo node data"
+msgstr ""
+
+#: src/slabtop.c:340 src/vmstat.c:776
+#, fuzzy
+msgid "Unable to sort slab nodes"
+msgstr "无法创建 (fork) 进程"
+
+#: src/sysctl.c:118
+#, c-format
+msgid "Path is not under %s: %s"
+msgstr ""
+
+#: src/sysctl.c:136
+#, fuzzy, c-format
+msgid "separators should not be repeated: %s"
+msgstr "æ ¼å¼å­—符串中有é‡å¤çš„ %s"
+
+#: src/sysctl.c:232
+#, fuzzy, c-format
+msgid " %s [options] [variable[=value] ...]\n"
+msgstr " %s 的选项:\n"
+
+#: src/sysctl.c:235
+#, fuzzy
+msgid " -a, --all display all variables\n"
+msgstr "所有å˜é‡é»˜è®¤ä½äºŽ near 节中"
+
+#: src/sysctl.c:236
+#, fuzzy
+msgid " -A alias of -a\n"
+msgstr "-fmit-class-file 的别å"
+
+#: src/sysctl.c:237
+#, fuzzy
+msgid " -X alias of -a\n"
+msgstr "-fmit-class-file 的别å"
+
+#: src/sysctl.c:238
+msgid " --deprecated include deprecated parameters to listing\n"
+msgstr ""
+
+#: src/sysctl.c:239
+msgid " --dry-run Print the key and values but do not write\n"
+msgstr ""
+
+#: src/sysctl.c:240
+msgid " -b, --binary print value without new line\n"
+msgstr ""
+
+#: src/sysctl.c:241
+msgid " -e, --ignore ignore unknown variables errors\n"
+msgstr ""
+
+#: src/sysctl.c:242
+msgid " -N, --names print variable names without values\n"
+msgstr ""
+
+#: src/sysctl.c:243
+#, fuzzy
+msgid " -n, --values print only values of the given variable(s)\n"
+msgstr "所有å˜é‡é»˜è®¤ä½äºŽ near 节中"
+
+#: src/sysctl.c:244
+msgid " -p, --load[=<file>] read values from file\n"
+msgstr ""
+
+#: src/sysctl.c:245
+msgid " -f alias of -p\n"
+msgstr " -f -p 的别å\n"
+
+#: src/sysctl.c:246
+msgid " --system read values from all system directories\n"
+msgstr ""
+
+#: src/sysctl.c:247
+msgid ""
+" -r, --pattern <expression>\n"
+" select setting that match expression\n"
+msgstr ""
+
+#: src/sysctl.c:249
+msgid " -q, --quiet do not echo variable set\n"
+msgstr ""
+
+#: src/sysctl.c:250
+msgid " -w, --write enable writing a value to variable\n"
+msgstr ""
+
+#: src/sysctl.c:251
+msgid " -o does nothing\n"
+msgstr " -o 没有效果\n"
+
+#: src/sysctl.c:252
+msgid " -x does nothing\n"
+msgstr " -x 没有效果\n"
+
+#: src/sysctl.c:253
+msgid " -d alias of -h\n"
+msgstr " -d -h 的别å\n"
+
+#: src/sysctl.c:334 src/sysctl.c:390
+#, fuzzy, c-format
+msgid "\"%s\" is an unknown key"
+msgstr "%s: ä¸æ˜¯å¸¦è£…甲的(armored)公钥。\n"
+
+#: src/sysctl.c:352 src/sysctl.c:508 src/sysctl.c:545
+#, c-format
+msgid "cannot stat %s"
+msgstr "无法获å–%s 的文件状æ€(stat)"
+
+#: src/sysctl.c:395 src/sysctl.c:437
+#, fuzzy, c-format
+msgid "permission denied on key '%s'"
+msgstr "无法格å¼åŒ–设备 %s,æƒé™è¢«æ‹’ç»ã€‚\n"
+
+#: src/sysctl.c:402 src/sysctl.c:454
+#, fuzzy, c-format
+msgid "reading key \"%s\""
+msgstr "读å–%s 时出错"
+
+#: src/sysctl.c:492
+#, fuzzy, c-format
+msgid "unable to open directory \"%s\""
+msgstr "无法打开 %s。"
+
+#: src/sysctl.c:557
+msgid "strdup key"
+msgstr ""
+
+#: src/sysctl.c:564 src/sysctl.c:571 src/sysctl.c:604
+#, fuzzy, c-format
+msgid "setting key \"%s\""
+msgstr "设置%s çš„æƒé™"
+
+#: src/sysctl.c:581
+#, fuzzy, c-format
+msgid "\"%s\" is an unknown key%s"
+msgstr "%s: ä¸æ˜¯å¸¦è£…甲的(armored)公钥。\n"
+
+#: src/sysctl.c:582 src/sysctl.c:591 src/sysctl.c:595
+#, fuzzy
+msgid ", ignoring"
+msgstr "(未知的案例)"
+
+#: src/sysctl.c:590
+#, fuzzy, c-format
+msgid "permission denied on key \"%s\"%s"
+msgstr "无法格å¼åŒ–设备 %s,æƒé™è¢«æ‹’ç»ã€‚\n"
+
+#: src/sysctl.c:594
+#, fuzzy, c-format
+msgid "setting key \"%s\"%s"
+msgstr "设置%s çš„æƒé™"
+
+#: src/sysctl.c:669
+#, fuzzy, c-format
+msgid "%s(%d): invalid syntax, continuing..."
+msgstr "定ä½â€œ%sâ€æ—¶è¯­æ³•æ— æ•ˆã€‚"
+
+#: src/sysctl.c:761
+#, c-format
+msgid ""
+"GLOB_TILDE is not supported on your platform, the tilde in \"%s\" won't be "
+"expanded."
+msgstr ""
+
+#: src/sysctl.c:767
+#, fuzzy
+msgid "glob failed"
+msgstr "ä¸ä½¿ç”¨ glob å‚æ•°"
+
+#: src/sysctl.c:773
+#, fuzzy, c-format
+msgid "cannot open \"%s\""
+msgstr "无法打开 %sï¼"
+
+#: src/sysctl.c:877 src/sysctl.c:884
+#, c-format
+msgid "* Applying %s ...\n"
+msgstr ""
+
+#: src/sysctl.c:1050
+#, fuzzy, c-format
+msgid ""
+"no variables specified\n"
+"Try `%s --help' for more information."
+msgstr "å°è¯•â€œ%s --helpâ€ä»¥èŽ·å¾—更多信æ¯ã€‚\n"
+
+#: src/sysctl.c:1054
+#, c-format
+msgid ""
+"options -N and -q cannot coexist\n"
+"Try `%s --help' for more information."
+msgstr ""
+
+#: src/tload.c:75 src/tload.c:77
+msgid "screen too small or too large"
+msgstr ""
+
+#: src/tload.c:80
+msgid "screen too small"
+msgstr ""
+
+#: src/tload.c:96
+#, c-format
+msgid " %s [options] [tty]\n"
+msgstr " %s [选项] [tty]\n"
+
+#: src/tload.c:98
+msgid " -d, --delay <secs> update delay in seconds\n"
+msgstr ""
+
+#: src/tload.c:99
+msgid " -s, --scale <num> vertical scale\n"
+msgstr ""
+
+#: src/tload.c:137
+#, fuzzy
+msgid "scale cannot be negative"
+msgstr "æ·¡é’色密度比例"
+
+#: src/tload.c:144 src/vmstat.c:1051
+#, fuzzy
+msgid "too large delay value"
+msgstr "制表符é™é•¿è¿‡å¤§"
+
+#: src/tload.c:159
+#, fuzzy
+msgid "can not open tty"
+msgstr "ä¸æ˜¯ä¸€ä¸ª tty"
+
+#: src/tload.c:182
+msgid "Load average file /proc/loadavg does not exist"
+msgstr ""
+
+#: src/tload.c:185
+msgid "Unable to get load average"
+msgstr ""
+
+#: src/tload.c:227 src/tload.c:229
+#, fuzzy
+msgid "writing to tty failed"
+msgstr " TTY"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The following line pairs contain only plain text and consist of:
+#. . 1) a field name/column header - mostly upper case
+#. . 2) the related description - both upper and lower case
+#. .
+#. . To avoid truncation on the main top display, each column header
+#. . is noted with its maximum size, while a few are 'variable' width.
+#. . Names for the latter should probably be 10 or fewer characters.
+#. .
+#. . Those fields shown with a '+' are also eligible for user resizing
+#. . using the 'X' command. That means the default width might produce
+#. . truncation but need not if widened (see the man page 'X' command).
+#. .
+#. . All headers are subject to a maximum of 8 on the Fields Management
+#. . screen where truncation is entirely acceptable.
+#. .
+#. . The associated descriptions are always limited to 20 characters,
+#. . and are used only on the Fields Management screen.
+#. .
+#. . In all cases, fewer characters are just fine.
+#. .
+#. Translation Hint: maximum 'PID' = 5
+#: src/top/top_nls.c:152
+msgid "PID"
+msgstr "进程å·"
+
+#: src/top/top_nls.c:153
+msgid "Process Id"
+msgstr "进程编å·"
+
+#. Translation Hint: maximum 'PPID' = 5
+#: src/top/top_nls.c:155
+msgid "PPID"
+msgstr ""
+
+#: src/top/top_nls.c:156
+#, fuzzy
+msgid "Parent Process pid"
+msgstr "具有 pid %d 的进程ä¸å­˜åœ¨ã€‚\n"
+
+#. Translation Hint: maximum 'UID' = 5 +
+#: src/top/top_nls.c:158
+#, fuzzy
+msgid "UID"
+msgstr "getUname:过多的 uid\n"
+
+#: src/top/top_nls.c:159
+#, fuzzy
+msgid "Effective User Id"
+msgstr ""
+"显示与当å‰çš„有效用户ID 相关è”的用户å。\n"
+"与id -un 相åŒã€‚\n"
+"\n"
+
+#. Translation Hint: maximum 'USER' = 8 +
+#: src/top/top_nls.c:161 src/w.c:799
+msgid "USER"
+msgstr "USER"
+
+#: src/top/top_nls.c:162
+msgid "Effective User Name"
+msgstr ""
+
+#. Translation Hint: maximum 'RUID' = 5 +
+#: src/top/top_nls.c:164
+msgid "RUID"
+msgstr ""
+
+#: src/top/top_nls.c:165
+#, fuzzy
+msgid "Real User Id"
+msgstr "设置用户ID 失败"
+
+#. Translation Hint: maximum 'RUSER' = 8 +
+#: src/top/top_nls.c:167
+msgid "RUSER"
+msgstr ""
+
+#: src/top/top_nls.c:168
+msgid "Real User Name"
+msgstr "真实用户å"
+
+#. Translation Hint: maximum 'SUID' = 5 +
+#: src/top/top_nls.c:170
+msgid "SUID"
+msgstr ""
+
+#: src/top/top_nls.c:171
+#, fuzzy
+msgid "Saved User Id"
+msgstr "设置用户ID 失败"
+
+#. Translation Hint: maximum 'SUSER' = 8 +
+#: src/top/top_nls.c:173
+msgid "SUSER"
+msgstr ""
+
+#: src/top/top_nls.c:174
+#, fuzzy
+msgid "Saved User Name"
+msgstr "无用户å: %s\n"
+
+#. Translation Hint: maximum 'GID' = 5 +
+#: src/top/top_nls.c:176
+#, fuzzy
+msgid "GID"
+msgstr "getGname:过多的 gid\n"
+
+#: src/top/top_nls.c:177
+#, fuzzy
+msgid "Group Id"
+msgstr "无法找到ID 为%lu 的用户的属组"
+
+#. Translation Hint: maximum 'GROUP' = 8 +
+#: src/top/top_nls.c:179
+msgid "GROUP"
+msgstr "GROUP"
+
+#: src/top/top_nls.c:180
+#, fuzzy
+msgid "Group Name"
+msgstr "为了使用dns,群组å称ä¸èƒ½åŒ…å«åº•çº¿"
+
+#. Translation Hint: maximum 'PGRP' = 5
+#: src/top/top_nls.c:182
+msgid "PGRP"
+msgstr ""
+
+#: src/top/top_nls.c:183
+msgid "Process Group Id"
+msgstr ""
+
+#. Translation Hint: maximum 'TTY' = 8 +
+#: src/top/top_nls.c:185
+#, fuzzy
+msgid "TTY"
+msgstr " TTY"
+
+#: src/top/top_nls.c:186
+#, fuzzy
+msgid "Controlling Tty"
+msgstr "ä¸æ˜¯ä¸€ä¸ª tty"
+
+#. Translation Hint: maximum 'TPGID' = 5
+#: src/top/top_nls.c:188
+msgid "TPGID"
+msgstr ""
+
+#: src/top/top_nls.c:189
+#, fuzzy
+msgid "Tty Process Grp Id"
+msgstr "%s:无效的进程å·"
+
+#. Translation Hint: maximum 'SID' = 5
+#: src/top/top_nls.c:191
+msgid "SID"
+msgstr ""
+
+#: src/top/top_nls.c:192
+#, fuzzy
+msgid "Session Id"
+msgstr ""
+"进程ã€ç¾¤ç»„å’Œè¿è¡Œé˜¶æ®µè¯†åˆ«ç \n"
+" 进程识别å·ï¼š%d\t\t 上层识别å·ï¼š%d\n"
+" 群组识别å·ï¼š%d\t\t è¿è¡Œé˜¶æ®µè¯†åˆ«ç ï¼š%d\n"
+" T 群组识别å·ï¼š%d\n"
+"\n"
+
+#. Translation Hint: maximum 'PR' = 3
+#: src/top/top_nls.c:194
+msgid "PR"
+msgstr "PR"
+
+#: src/top/top_nls.c:195
+msgid "Priority"
+msgstr "优先级"
+
+#. Translation Hint: maximum 'NI' = 3
+#: src/top/top_nls.c:197
+msgid "NI"
+msgstr ""
+
+#: src/top/top_nls.c:198
+#, fuzzy
+msgid "Nice Value"
+msgstr "值"
+
+#. Translation Hint: maximum 'nTH' = 3
+#: src/top/top_nls.c:200
+msgid "nTH"
+msgstr ""
+
+#: src/top/top_nls.c:201
+#, fuzzy
+msgid "Number of Threads"
+msgstr "ç¼–å·"
+
+#. Translation Hint: maximum 'P' = 1
+#: src/top/top_nls.c:203
+#, fuzzy
+msgid "P"
+msgstr "(p)"
+
+#: src/top/top_nls.c:204
+#, fuzzy
+msgid "Last Used Cpu (SMP)"
+msgstr "%<%%%>约æŸç”¨äºŽæœ€åŽä¸€ä¸ªæ“作数"
+
+#. Translation Hint: maximum '%CPU' = 4
+#: src/top/top_nls.c:206
+#, fuzzy, c-format
+msgid "%CPU"
+msgstr "CPU "
+
+#: src/top/top_nls.c:207
+msgid "CPU Usage"
+msgstr "CPU 使用情况"
+
+#. Translation Hint: maximum '' = 6
+#: src/top/top_nls.c:209
+msgid "TIME"
+msgstr "时间"
+
+#: src/top/top_nls.c:210
+#, fuzzy
+msgid "CPU Time"
+msgstr "CPU 时间超时"
+
+#. Translation Hint: maximum 'TIME+' = 9
+#: src/top/top_nls.c:212
+#, fuzzy
+msgid "TIME+"
+msgstr "时间"
+
+#: src/top/top_nls.c:213
+#, fuzzy
+msgid "CPU Time, hundredths"
+msgstr "CPU 时间超时"
+
+#. Translation Hint: maximum '%MEM' = 4
+#: src/top/top_nls.c:215
+#, fuzzy
+msgid "%MEM"
+msgstr "为循环å¯ç”¨é¢„å–时最å°çš„指令/内存æ“作比"
+
+#: src/top/top_nls.c:216
+#, fuzzy
+msgid "Memory Usage (RES)"
+msgstr "内存\n"
+
+#. Translation Hint: maximum 'VIRT' = 7
+#: src/top/top_nls.c:218
+#, fuzzy
+msgid "VIRT"
+msgstr ""
+"\n"
+" virt 识别虚拟化 ASE 指令。\n"
+
+#: src/top/top_nls.c:219
+#, fuzzy
+msgid "Virtual Image (KiB)"
+msgstr "%s: 未æ供映åƒå称 ('--image')"
+
+#. Translation Hint: maximum 'SWAP' = 6
+#: src/top/top_nls.c:221
+#, fuzzy
+msgid "SWAP"
+msgstr "交æ¢"
+
+#: src/top/top_nls.c:222
+#, fuzzy
+msgid "Swapped Size (KiB)"
+msgstr "大å°"
+
+#. Translation Hint: maximum 'RES' = 6
+#: src/top/top_nls.c:224
+#, fuzzy
+msgid "RES"
+msgstr ""
+"FORMAT 是 rcã€res 或 coff 之一,在未指定时根æ®æ–‡ä»¶çš„扩展å进行判断。\n"
+"å•ä¸ªæ–‡ä»¶å被认为是输入文件。没有输入文件时就使用标准输入,默认格å¼\n"
+"为 rc。没有输出文件时就使用标准输出,默认格å¼ä¸º rc。\n"
+
+#: src/top/top_nls.c:225
+#, fuzzy
+msgid "Resident Size (KiB)"
+msgstr "页é¢å°ºå¯¸"
+
+#. Translation Hint: maximum 'CODE' = 4
+#: src/top/top_nls.c:227
+#, fuzzy
+msgid "CODE"
+msgstr "ç¼–ç "
+
+#: src/top/top_nls.c:228
+#, fuzzy
+msgid "Code Size (KiB)"
+msgstr "代ç å¤§å°ï¼šå°ã€ä¸­æˆ–大"
+
+#. Translation Hint: maximum 'DATA' = 7
+#: src/top/top_nls.c:230
+#, fuzzy
+msgid "DATA"
+msgstr "没有资料"
+
+#: src/top/top_nls.c:231
+#, fuzzy
+msgid "Data+Stack (KiB)"
+msgstr "栈上溢出"
+
+#. Translation Hint: maximum 'SHR' = 6
+#: src/top/top_nls.c:233
+msgid "SHR"
+msgstr ""
+
+#: src/top/top_nls.c:234
+#, fuzzy
+msgid "Shared Memory (KiB)"
+msgstr "共享内存对象"
+
+#. Translation Hint: maximum 'nMaj' = 4
+#: src/top/top_nls.c:236
+msgid "nMaj"
+msgstr ""
+
+#: src/top/top_nls.c:237
+msgid "Major Page Faults"
+msgstr ""
+
+#. Translation Hint: maximum 'nMin' = 4
+#: src/top/top_nls.c:239
+msgid "nMin"
+msgstr ""
+
+#: src/top/top_nls.c:240
+msgid "Minor Page Faults"
+msgstr ""
+
+#. Translation Hint: maximum 'nDRT' = 4
+#: src/top/top_nls.c:242
+msgid "nDRT"
+msgstr ""
+
+#: src/top/top_nls.c:243
+#, fuzzy
+msgid "Dirty Pages Count"
+msgstr "已本地化的手册页"
+
+#. Translation Hint: maximum 'S' = 1
+#: src/top/top_nls.c:245
+msgid "S"
+msgstr "æ—¥"
+
+#: src/top/top_nls.c:246
+msgid "Process Status"
+msgstr "进程状æ€"
+
+#. Translation Hint: maximum 'COMMAND' = variable
+#: src/top/top_nls.c:248
+msgid "COMMAND"
+msgstr "COMMAND"
+
+#: src/top/top_nls.c:249
+#, fuzzy
+msgid "Command Name/Line"
+msgstr "<命令行>"
+
+#. Translation Hint: maximum 'WCHAN' = 10 +
+#: src/top/top_nls.c:251
+msgid "WCHAN"
+msgstr ""
+
+#: src/top/top_nls.c:252
+#, fuzzy
+msgid "Sleeping in Function"
+msgstr "æš‚åœä¸­"
+
+#. Translation Hint: maximum 'Flags' = 8
+#: src/top/top_nls.c:254
+msgid "Flags"
+msgstr "标志"
+
+#: src/top/top_nls.c:255
+#, fuzzy
+msgid "Task Flags <sched.h>"
+msgstr "æ ¹æ®ä»»åŠ¡"
+
+#. Translation Hint: maximum 'CGROUPS' = variable
+#: src/top/top_nls.c:257
+msgid "CGROUPS"
+msgstr ""
+
+#: src/top/top_nls.c:258
+#, fuzzy
+msgid "Control Groups"
+msgstr " 组="
+
+#. Translation Hint: maximum 'SUPGIDS' = variable
+#: src/top/top_nls.c:260
+msgid "SUPGIDS"
+msgstr ""
+
+#: src/top/top_nls.c:261
+#, fuzzy
+msgid "Supp Groups IDs"
+msgstr " 组="
+
+#. Translation Hint: maximum 'SUPGRPS' = variable
+#: src/top/top_nls.c:263
+msgid "SUPGRPS"
+msgstr ""
+
+#: src/top/top_nls.c:264
+#, fuzzy
+msgid "Supp Groups Names"
+msgstr " 组="
+
+#. Translation Hint: maximum 'TGID' = 5
+#: src/top/top_nls.c:266
+msgid "TGID"
+msgstr ""
+
+#: src/top/top_nls.c:267
+#, fuzzy
+msgid "Thread Group Id"
+msgstr "设置组ID 失败"
+
+#. Translation Hint: maximum 'OOMa' = 5
+#: src/top/top_nls.c:269
+msgid "OOMa"
+msgstr ""
+
+#: src/top/top_nls.c:270
+msgid "OOMEM Adjustment"
+msgstr ""
+
+#. Translation Hint: maximum 'OOMs' = 4
+#: src/top/top_nls.c:272
+msgid "OOMs"
+msgstr ""
+
+#: src/top/top_nls.c:273
+msgid "OOMEM Score current"
+msgstr ""
+
+#. Translation Hint: maximum 'ENVIRON' = variable
+#: src/top/top_nls.c:275
+msgid "ENVIRON"
+msgstr ""
+
+#. Translation Hint: the abbreviation 'vars' below is shorthand for
+#. 'variables'
+#: src/top/top_nls.c:278
+#, fuzzy
+msgid "Environment vars"
+msgstr "__io å˜é‡é»˜è®¤ä¸º volatile"
+
+#. Translation Hint: maximum 'vMj' = 3
+#: src/top/top_nls.c:280
+msgid "vMj"
+msgstr ""
+
+#: src/top/top_nls.c:281
+msgid "Major Faults delta"
+msgstr ""
+
+#. Translation Hint: maximum 'vMn' = 3
+#: src/top/top_nls.c:283
+msgid "vMn"
+msgstr ""
+
+#: src/top/top_nls.c:284
+msgid "Minor Faults delta"
+msgstr ""
+
+#. Translation Hint: maximum 'USED' = 6
+#: src/top/top_nls.c:286
+#, fuzzy
+msgid "USED"
+msgstr "已用"
+
+#: src/top/top_nls.c:287
+msgid "Res+Swap Size (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'nsIPC' = 10 +
+#: src/top/top_nls.c:289
+msgid "nsIPC"
+msgstr ""
+
+#: src/top/top_nls.c:290
+#, fuzzy
+msgid "IPC namespace Inode"
+msgstr "%qTä¸æ˜¯ä¸€ä¸ªå‘½å空间"
+
+#. Translation Hint: maximum 'nsMNT' = 10 +
+#: src/top/top_nls.c:292
+msgid "nsMNT"
+msgstr ""
+
+#: src/top/top_nls.c:293
+#, fuzzy
+msgid "MNT namespace Inode"
+msgstr "%qTä¸æ˜¯ä¸€ä¸ªå‘½å空间"
+
+#. Translation Hint: maximum 'nsNET' = 10 +
+#: src/top/top_nls.c:295
+msgid "nsNET"
+msgstr ""
+
+#: src/top/top_nls.c:296
+#, fuzzy
+msgid "NET namespace Inode"
+msgstr "网络共享"
+
+#. Translation Hint: maximum 'nsPID' = 10 +
+#: src/top/top_nls.c:298
+msgid "nsPID"
+msgstr ""
+
+#: src/top/top_nls.c:299
+#, fuzzy
+msgid "PID namespace Inode"
+msgstr "警告:此系统ä¸æ”¯æŒ--pid=PID"
+
+#. Translation Hint: maximum 'nsUSER' = 10 +
+#: src/top/top_nls.c:301
+msgid "nsUSER"
+msgstr ""
+
+#: src/top/top_nls.c:302
+#, fuzzy
+msgid "USER namespace Inode"
+msgstr "USER"
+
+#. Translation Hint: maximum 'nsUTS' = 10 +
+#: src/top/top_nls.c:304
+msgid "nsUTS"
+msgstr ""
+
+#: src/top/top_nls.c:305
+#, fuzzy
+msgid "UTS namespace Inode"
+msgstr "%qTä¸æ˜¯ä¸€ä¸ªå‘½å空间"
+
+#. Translation Hint: maximum 'LXC' = 8 +
+#: src/top/top_nls.c:307
+msgid "LXC"
+msgstr ""
+
+#: src/top/top_nls.c:308
+msgid "LXC container name"
+msgstr ""
+
+#. Translation Hint: maximum 'RSan' = 6
+#: src/top/top_nls.c:310
+msgid "RSan"
+msgstr ""
+
+#: src/top/top_nls.c:311
+msgid "RES Anonymous (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'RSfd' = 6
+#: src/top/top_nls.c:313
+msgid "RSfd"
+msgstr ""
+
+#: src/top/top_nls.c:314
+msgid "RES File-based (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'RSlk' = 6
+#: src/top/top_nls.c:316
+msgid "RSlk"
+msgstr ""
+
+#: src/top/top_nls.c:317
+msgid "RES Locked (KiB)"
+msgstr ""
+
+#. Translation Hint: maximum 'RSsh' = 6
+#: src/top/top_nls.c:319
+msgid "RSsh"
+msgstr ""
+
+#: src/top/top_nls.c:320
+#, fuzzy
+msgid "RES Shared (KiB)"
+msgstr "共享内存对象"
+
+#. Translation Hint: maximum 'CGNAME' = variable
+#: src/top/top_nls.c:322
+msgid "CGNAME"
+msgstr ""
+
+#: src/top/top_nls.c:323
+#, fuzzy
+msgid "Control Group name"
+msgstr " 组="
+
+#. Translation Hint: maximum 'NU' = 2
+#: src/top/top_nls.c:325
+msgid "NU"
+msgstr ""
+
+#: src/top/top_nls.c:326
+msgid "Last Used NUMA node"
+msgstr ""
+
+#. Translation Hint: maximum 'LOGID' = 5 +
+#: src/top/top_nls.c:328
+msgid "LOGID"
+msgstr ""
+
+#: src/top/top_nls.c:329
+#, fuzzy
+msgid "Login User Id"
+msgstr "设置用户ID 失败"
+
+#. Translation Hint: maximum 'EXE' = variable
+#: src/top/top_nls.c:331
+msgid "EXE"
+msgstr ""
+
+#: src/top/top_nls.c:332
+msgid "Executable Path"
+msgstr ""
+
+#: src/top/top_nls.c:338
+msgid "Res Mem (smaps), KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'PSS' = 6
+#: src/top/top_nls.c:340
+#, fuzzy
+msgid "PSS"
+msgstr ""
+"内存\n"
+" Vsize: %-10s\n"
+" RSS: %-10s\t\t RSS é™åˆ¶ï¼š%s\n"
+" 程åºå¼€å§‹ï¼š %#-10lx\t\t 程åºåœæ­¢ï¼š %#-10lx\n"
+" 堆栈开始: %#-10lx\n"
+" 堆栈指针 (ESP):%#10lx\t 指令指针 (EIP):%#10lx\n"
+
+#: src/top/top_nls.c:341
+msgid "Proportion RSS, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'PSan' = 6
+#: src/top/top_nls.c:343
+msgid "PSan"
+msgstr ""
+
+#: src/top/top_nls.c:344
+msgid "Proportion Anon, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'PSfd' = 6
+#: src/top/top_nls.c:346
+msgid "PSfd"
+msgstr ""
+
+#: src/top/top_nls.c:347
+msgid "Proportion File, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'PSsh' = 6
+#: src/top/top_nls.c:349
+msgid "PSsh"
+msgstr ""
+
+#: src/top/top_nls.c:350
+msgid "Proportion Shrd, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'USS' = 6
+#: src/top/top_nls.c:352
+#, fuzzy
+msgid "USS"
+msgstr ""
+"内存\n"
+" Vsize: %-10s\n"
+" RSS: %-10s\t\t RSS é™åˆ¶ï¼š%s\n"
+" 程åºå¼€å§‹ï¼š %#-10lx\t\t 程åºåœæ­¢ï¼š %#-10lx\n"
+" 堆栈开始: %#-10lx\n"
+" 堆栈指针 (ESP):%#10lx\t 指令指针 (EIP):%#10lx\n"
+
+#: src/top/top_nls.c:353
+msgid "Unique RSS, KiB"
+msgstr ""
+
+#. Translation Hint: maximum 'ioR' = 6
+#: src/top/top_nls.c:355
+msgid "ioR"
+msgstr ""
+
+#: src/top/top_nls.c:356
+msgid "I/O Bytes Read"
+msgstr ""
+
+#. Translation Hint: maximum 'ioRop' = 5
+#: src/top/top_nls.c:358
+msgid "ioRop"
+msgstr ""
+
+#: src/top/top_nls.c:359
+msgid "I/O Read Operations"
+msgstr ""
+
+#. Translation Hint: maximum 'ioW' = 6
+#: src/top/top_nls.c:361
+msgid "ioW"
+msgstr ""
+
+#: src/top/top_nls.c:362
+msgid "I/O Bytes Written"
+msgstr ""
+
+#. Translation Hint: maximum 'ioWop' = 5
+#: src/top/top_nls.c:364
+msgid "ioWop"
+msgstr ""
+
+#: src/top/top_nls.c:365
+msgid "I/O Write Operations"
+msgstr ""
+
+#. Translation Hint: maximum 'AGID' = 5
+#: src/top/top_nls.c:367
+msgid "AGID"
+msgstr ""
+
+#: src/top/top_nls.c:368
+msgid "Autogroup Identifier"
+msgstr ""
+
+#. Translation Hint: maximum 'AGNI' = 4
+#: src/top/top_nls.c:370
+msgid "AGNI"
+msgstr ""
+
+#: src/top/top_nls.c:371
+#, fuzzy
+msgid "Autogroup Nice Value"
+msgstr "值"
+
+#. Translation Hint: maximum 'STARTED' = 7
+#: src/top/top_nls.c:373
+msgid "STARTED"
+msgstr ""
+
+#: src/top/top_nls.c:374
+msgid "Start Time from boot"
+msgstr ""
+
+#. Translation Hint: maximum 'ELAPSED' = 7
+#: src/top/top_nls.c:376
+msgid "ELAPSED"
+msgstr ""
+
+#: src/top/top_nls.c:377
+msgid "Elapsed Running Time"
+msgstr ""
+
+#. Translation Hint: maximum '%CUU' = 6
+#: src/top/top_nls.c:379
+#, c-format
+msgid "%CUU"
+msgstr ""
+
+#: src/top/top_nls.c:380
+msgid "CPU Utilization"
+msgstr ""
+
+#. Translation Hint: maximum '%CUC' = 7
+#: src/top/top_nls.c:382
+#, c-format
+msgid "%CUC"
+msgstr ""
+
+#: src/top/top_nls.c:383
+msgid "Utilization + child"
+msgstr ""
+
+#. Translation Hint: maximum 'nsCGROUP' = 10 +
+#: src/top/top_nls.c:385
+#, fuzzy
+msgid "nsCGROUP"
+msgstr "GROUP"
+
+#: src/top/top_nls.c:386
+#, fuzzy
+msgid "CGRP namespace Inode"
+msgstr "%qTä¸æ˜¯ä¸€ä¸ªå‘½å空间"
+
+#. Translation Hint: maximum 'nsTIME' = 10 +
+#: src/top/top_nls.c:388
+#, fuzzy
+msgid "nsTIME"
+msgstr "时间"
+
+#: src/top/top_nls.c:389
+#, fuzzy
+msgid "TIME namespace Inode"
+msgstr "%qTä¸æ˜¯ä¸€ä¸ªå‘½å空间"
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . This group of lines contains both plain text and c-format strings.
+#. .
+#. . Some strings reflect switches used to affect the running program
+#. . and should not be translated without also making corresponding
+#. . c-code logic changes.
+#. .
+#: src/top/top_nls.c:409
+#, c-format
+msgid ""
+"\tsignal %d (%s) was caught by %s, please\n"
+"\tsend bug reports to <procps@freelists.org>\n"
+msgstr ""
+
+#: src/top/top_nls.c:439
+#, fuzzy, c-format
+msgid "bad delay interval '%s'"
+msgstr "无效的时间间隔%s"
+
+#: src/top/top_nls.c:440
+#, fuzzy, c-format
+msgid "bad iterations argument '%s'"
+msgstr "错误的正则表达å¼: %s\n"
+
+#: src/top/top_nls.c:441
+#, fuzzy, c-format
+msgid "pid limit (%d) exceeded"
+msgstr "CPU 时间超时"
+
+#: src/top/top_nls.c:442
+#, fuzzy, c-format
+msgid "bad pid '%s'"
+msgstr "%*s 用户 è¿›ç¨‹å· æƒé™ 命令\n"
+
+#: src/top/top_nls.c:443
+#, fuzzy, c-format
+msgid "-%c argument missing"
+msgstr "缺少å‚æ•°"
+
+#: src/top/top_nls.c:444
+#, fuzzy, c-format
+msgid "bad width arg '%s'"
+msgstr "è¡Œ %d:%%setup 中存在åçš„å‚数:%s\n"
+
+#: src/top/top_nls.c:445
+#, fuzzy, c-format
+msgid "unknown option '%s'"
+msgstr "%s:ä¸æ˜Žé€‰é¡¹ -%c\n"
+
+#: src/top/top_nls.c:446
+#, fuzzy
+msgid "-d disallowed in \"secure\" mode"
+msgstr "程åºé”™è¯¯ï¼Œè½¬æ¢æ¨¡å¼ %d 无效\n"
+
+#: src/top/top_nls.c:447
+#, fuzzy
+msgid "-d requires positive argument"
+msgstr "命å空间选项需è¦ä¸€ä¸ªå‚æ•°"
+
+#: src/top/top_nls.c:448
+msgid "On"
+msgstr ""
+
+#: src/top/top_nls.c:449
+#, fuzzy
+msgid "Off"
+msgstr "关闭"
+
+#: src/top/top_nls.c:450
+#, c-format
+msgid "%s from %s"
+msgstr ""
+
+#: src/top/top_nls.c:451
+#, fuzzy, c-format
+msgid "Forest mode %s"
+msgstr "spec 文件æƒé™ä¸å¥½ï¼š%s(%s)\n"
+
+#: src/top/top_nls.c:452
+#, fuzzy
+msgid "failed tty get"
+msgstr "无法å–å¾—%s 的属性"
+
+#: src/top/top_nls.c:453
+#, fuzzy, c-format
+msgid "failed tty set: %s"
+msgstr "设置新用户%s 失败"
+
+#: src/top/top_nls.c:454
+msgid "Choose field group (1 - 4)"
+msgstr ""
+
+#: src/top/top_nls.c:455
+msgid "Command disabled, 'A' mode required"
+msgstr ""
+
+#: src/top/top_nls.c:456
+#, fuzzy, c-format
+msgid "Command disabled, activate %s with '-' or '_'"
+msgstr "用法:%s [选项] 命令\n"
+
+#: src/top/top_nls.c:457
+#, fuzzy
+msgid "No colors to map!"
+msgstr "优先æƒé¢œè‰²"
+
+#: src/top/top_nls.c:458
+#, fuzzy, c-format
+msgid "Failed '%s' open: %s"
+msgstr "%s:打开 %s 时失败:%s\n"
+
+#: src/top/top_nls.c:459
+#, fuzzy, c-format
+msgid "Wrote configuration to '%s'"
+msgstr "已写至:%s\n"
+
+#: src/top/top_nls.c:460
+#, c-format
+msgid "Change delay from %.1f to"
+msgstr ""
+
+#: src/top/top_nls.c:461
+#, c-format
+msgid "Show threads %s"
+msgstr ""
+
+#: src/top/top_nls.c:462
+#, fuzzy, c-format
+msgid "Irix mode %s"
+msgstr "spec 文件æƒé™ä¸å¥½ï¼š%s(%s)\n"
+
+#: src/top/top_nls.c:463
+#, c-format
+msgid "PID to signal/kill [default pid = %d]"
+msgstr ""
+
+#: src/top/top_nls.c:464
+#, c-format
+msgid "Send pid %d signal [%d/sigterm]"
+msgstr ""
+
+#: src/top/top_nls.c:465
+#, fuzzy, c-format
+msgid "Failed signal pid '%d' with '%d': %s"
+msgstr "%s(%s) 短脚本è¿è¡Œå¤±è´¥ï¼Œä¿¡å· %d\n"
+
+#: src/top/top_nls.c:466
+msgid "Invalid signal"
+msgstr "无效的信å·"
+
+#: src/top/top_nls.c:467
+#, fuzzy, c-format
+msgid "PID to renice [default pid = %d]"
+msgstr "具有 pid %d 的进程ä¸å­˜åœ¨ã€‚\n"
+
+#: src/top/top_nls.c:468
+#, fuzzy, c-format
+msgid "Renice PID %d to value"
+msgstr "具有 pid %d 的进程ä¸å­˜åœ¨ã€‚\n"
+
+#: src/top/top_nls.c:469
+#, fuzzy, c-format
+msgid "Failed renice of PID %d to %d: %s"
+msgstr "无法打开 pid %d (%s) 的 stat 文件\n"
+
+#: src/top/top_nls.c:470
+#, c-format
+msgid "Rename window '%s' to (1-3 chars)"
+msgstr ""
+
+#: src/top/top_nls.c:471
+#, fuzzy, c-format
+msgid "Cumulative time %s"
+msgstr "累积的项目"
+
+#: src/top/top_nls.c:472
+#, c-format
+msgid "Maximum tasks = %d, change to (0 is unlimited)"
+msgstr ""
+
+#: src/top/top_nls.c:473
+#, fuzzy
+msgid "Invalid maximum"
+msgstr "目录最大深度%s 无效"
+
+#: src/top/top_nls.c:474
+msgid "Which user (blank for all)"
+msgstr ""
+
+#: src/top/top_nls.c:475
+msgid "Unknown command - try 'h' for help"
+msgstr ""
+
+#: src/top/top_nls.c:476
+#, c-format
+msgid "scroll coordinates: y = %d/%d (tasks), x = %d/%d (fields)"
+msgstr ""
+
+#: src/top/top_nls.c:477
+#, fuzzy
+msgid "failed memory allocate"
+msgstr "%s:é…置分区区å—时失败\n"
+
+#: src/top/top_nls.c:478
+#, fuzzy
+msgid "failed memory re-allocate"
+msgstr "无法为已找到的进程分é…内存: %s\n"
+
+#: src/top/top_nls.c:479
+#, fuzzy
+msgid "Unacceptable floating point"
+msgstr "使用硬件浮点å•å…ƒ"
+
+#: src/top/top_nls.c:480
+#, fuzzy
+msgid "Invalid user"
+msgstr "无效的用户"
+
+#: src/top/top_nls.c:481
+#, fuzzy
+msgid "forest view"
+msgstr "æµè§ˆè€…:"
+
+#: src/top/top_nls.c:482
+msgid "failed pid maximum size test"
+msgstr ""
+
+#: src/top/top_nls.c:483
+msgid "failed number of cpus test"
+msgstr ""
+
+#: src/top/top_nls.c:484
+#, c-format
+msgid "incompatible rcfile, you should delete '%s'"
+msgstr ""
+
+#: src/top/top_nls.c:485
+#, c-format
+msgid "window entry #%d corrupt, please delete '%s'"
+msgstr ""
+
+#: src/top/top_nls.c:486
+msgid "Unavailable in secure mode"
+msgstr ""
+
+#: src/top/top_nls.c:487
+msgid "Only 1 cpu detected"
+msgstr "仅探测到 1 个 CPU"
+
+#: src/top/top_nls.c:488
+#, fuzzy
+msgid "Unacceptable integer"
+msgstr "整数溢出"
+
+#: src/top/top_nls.c:489
+msgid "conflicting process selections (U/p/u)"
+msgstr ""
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . kibibytes (1024 bytes)
+#: src/top/top_nls.c:492
+msgid "KiB"
+msgstr "KiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . mebibytes (1,048,576 bytes)
+#: src/top/top_nls.c:495
+msgid "MiB"
+msgstr "MiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . gibibytes (1,073,741,824 bytes)
+#: src/top/top_nls.c:498
+msgid "GiB"
+msgstr "GiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . tebibytes (1,099,511,627,776 bytes)
+#: src/top/top_nls.c:501
+msgid "TiB"
+msgstr "TiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . pebibytes (1,024 tebibytes)
+#: src/top/top_nls.c:504
+msgid "PiB"
+msgstr "PiB"
+
+#. Translation Hint: This is an abbreviation (limit 3 characters) for:
+#. . exbibytes (1,024 pebibytes)
+#: src/top/top_nls.c:507
+msgid "EiB"
+msgstr "EiB"
+
+#: src/top/top_nls.c:508
+#, fuzzy
+msgid "Threads"
+msgstr "ä¸èƒ½åŒæ—¶ä½¿ç”¨ mthreads å’Œ mlegacy-threads"
+
+#: src/top/top_nls.c:509
+msgid "Tasks"
+msgstr "任务"
+
+#. Translation Hint: The following "word" is meant to represent either a single
+#. . cpu or all of the processors in a multi-processor computer
+#. . (should be exactly 6 characters, excluding leading % & colon)
+#: src/top/top_nls.c:513
+#, fuzzy, c-format
+msgid "%Cpu(s):"
+msgstr "CPU "
+
+#. Translation Hint: The following "word" is meant to represent a single processor
+#. and 'the Cp' prefix will be combined with a core id: 'p', 'e' or 'u'
+#. . (if 'Cp' is translated, it must be exactly 2 characters long)
+#: src/top/top_nls.c:517
+#, fuzzy, c-format
+msgid "%%Cp%c%-3d:"
+msgstr ""
+"进程: %-14s\t\t状æ€ï¼š%c (%s)\n"
+" CPU#: %-3d\t\tTTY:%s\t线程:%ld\n"
+
+#. Translation Hint: The following word "another" must have 1 trailing space
+#: src/top/top_nls.c:519
+#, fuzzy
+msgid "another "
+msgstr "当一个局部å˜é‡æŽ©ç›–了å¦ä¸€ä¸ªå±€éƒ¨å˜é‡æ—¶ç»™å‡ºè­¦å‘Š"
+
+#: src/top/top_nls.c:520
+msgid "Locate next inactive, use \"L\""
+msgstr ""
+
+#: src/top/top_nls.c:521
+#, fuzzy
+msgid "Locate string"
+msgstr "(ä¸æ˜¯å­—符串)"
+
+#: src/top/top_nls.c:522
+#, c-format
+msgid "%s\"%s\" not found"
+msgstr "%s\"%s\" 未找到"
+
+#: src/top/top_nls.c:523
+#, c-format
+msgid "width incr is %d, change to (0 default, -1 auto)"
+msgstr ""
+
+#: src/top/top_nls.c:524
+msgid "rcfile has inspect/other-filter error(s), save anyway?"
+msgstr ""
+
+#: src/top/top_nls.c:525
+#, fuzzy, c-format
+msgid "unrecognized field name '%s'"
+msgstr "无法识别的节å%qE"
+
+#: src/top/top_nls.c:526
+msgid "even using field names only, window is now too small"
+msgstr ""
+
+#: src/top/top_nls.c:527
+#, fuzzy
+msgid "Open Files"
+msgstr "无法打开 %%files 的文件 %s: %s\n"
+
+#: src/top/top_nls.c:528
+#, fuzzy
+msgid "NUMA Info"
+msgstr "æ— ä¿¡æ¯"
+
+#: src/top/top_nls.c:529
+#, fuzzy
+msgid "Log"
+msgstr "登录"
+
+#: src/top/top_nls.c:530
+msgid ""
+"the '=' key will eventually show the actual file read or command(s) "
+"executed ..."
+msgstr ""
+
+#: src/top/top_nls.c:531
+msgid "demo"
+msgstr ""
+
+#: src/top/top_nls.c:532
+#, c-format
+msgid ""
+"This is simulated output representing the contents of some file or the "
+"output\n"
+"from some command. Exactly which commands and/or files are solely up to "
+"you.\n"
+"\n"
+"Although this text is for information purposes only, it can still be "
+"scrolled\n"
+"and searched like real output will be. You are encouraged to experiment "
+"with\n"
+"those features as explained in the prologue above.\n"
+"\n"
+"To enable real Inspect functionality, entries must be added to the end of "
+"the\n"
+"top personal personal configuration file. You could use your favorite "
+"editor\n"
+"to accomplish this, taking care not to disturb existing entries.\n"
+"\n"
+"Another way to add entries is illustrated below, but it risks overwriting "
+"the\n"
+"rcfile. Redirected echoes must not replace (>) but append (>>) to that "
+"file.\n"
+"\n"
+" /bin/echo -e \"pipe\\tOpen Files\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+" /bin/echo -e \"file\\tNUMA Info\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+" /bin/echo -e \"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr\" >> ~/."
+"toprc\n"
+"\n"
+"If you don't know the location or name of the top rcfile, use the 'W' "
+"command\n"
+"and note those details. After backing up the current rcfile, try issuing "
+"the\n"
+"above echoes exactly as shown, replacing '.toprc' as appropriate. The "
+"safest\n"
+"approach would be to use copy then paste to avoid any typing mistakes.\n"
+"\n"
+"Finally, restart top to reveal what actual Inspect entries combined with "
+"this\n"
+"new command can offer. The possibilities are endless, especially "
+"considering\n"
+"that 'pipe' type entries can include shell scripts too!\n"
+"\n"
+"For additional important information, please consult the top(1) man "
+"document.\n"
+"Then, enhance top with your very own customized 'file' and/or 'pipe' "
+"entries.\n"
+"\n"
+"Enjoy!\n"
+msgstr ""
+
+#: src/top/top_nls.c:564
+msgid "to enable 'Y' press <Enter> then type 'W' and restart top"
+msgstr ""
+
+#: src/top/top_nls.c:565
+msgid "to enable 'Y' please consult the top man page (press Enter)"
+msgstr ""
+
+#: src/top/top_nls.c:566
+#, fuzzy, c-format
+msgid "Selection failed with: %s\n"
+msgstr "需è¦é€‰æ‹©è¯­å¥"
+
+#: src/top/top_nls.c:567
+#, fuzzy, c-format
+msgid "unable to inspect, pid %d not found"
+msgstr "无法打开 pid %d (%s) 的 stat 文件\n"
+
+#: src/top/top_nls.c:568
+#, fuzzy, c-format
+msgid "inspect at PID [default pid = %d]"
+msgstr "具有 pid %d 的进程ä¸å­˜åœ¨ã€‚\n"
+
+#: src/top/top_nls.c:569
+#, c-format
+msgid "%s: %*d-%-*d lines, %*d-%*d columns, %lu bytes read"
+msgstr ""
+
+#: src/top/top_nls.c:570
+#, fuzzy
+msgid "patience please, working ..."
+msgstr "无法记录目å‰çš„工作目录"
+
+#: src/top/top_nls.c:571
+msgid "working, use Ctrl-C to end ..."
+msgstr ""
+
+#. Translation Hint: Below are 2 abbreviations which can be as long as needed:
+#. . FLD = FIELD, VAL = VALUE
+#: src/top/top_nls.c:574
+#, c-format
+msgid "add filter #%d (%s) as: [!]FLD?VAL"
+msgstr ""
+
+#: src/top/top_nls.c:575
+msgid "ignoring case"
+msgstr "忽略大å°å†™"
+
+#: src/top/top_nls.c:576
+msgid "case sensitive"
+msgstr "大å°å†™æ•æ„Ÿ"
+
+#: src/top/top_nls.c:577
+#, fuzzy
+msgid "duplicate filter was ignored"
+msgstr "忽略"
+
+#: src/top/top_nls.c:578
+#, fuzzy, c-format
+msgid "'%s' filter delimiter is missing"
+msgstr "%s:分界符åŽåº”该跟éšæ•´æ•°"
+
+#: src/top/top_nls.c:579
+#, fuzzy, c-format
+msgid "'%s' filter value is missing"
+msgstr "%2$s %3$s 中丢失 %1$s\n"
+
+#: src/top/top_nls.c:580
+#, fuzzy
+msgid "include"
+msgstr "#include \"...\" æœç´¢ä»Žè¿™é‡Œå¼€å§‹ï¼š\n"
+
+#: src/top/top_nls.c:581
+#, fuzzy
+msgid "exclude"
+msgstr "被排除的路径必须以 / 开头"
+
+#: src/top/top_nls.c:582
+#, fuzzy, c-format
+msgid "<Enter> to resume, filters: %s"
+msgstr "设备 %s ä¸æ”¯æŒæ¢å¤ã€‚\n"
+
+#: src/top/top_nls.c:583
+#, fuzzy
+msgid "none"
+msgstr "æ— "
+
+#. Translation Hint: The following word 'Node' should be exactly
+#. 4 characters, excluding leading %%, fmt chars & colon)
+#: src/top/top_nls.c:586
+#, fuzzy, c-format
+msgid "%%Node%-2d:"
+msgstr "verify_cgraph_node 失败"
+
+#: src/top/top_nls.c:587
+#, c-format
+msgid "expand which numa node (0-%d)"
+msgstr ""
+
+#: src/top/top_nls.c:588
+#, fuzzy
+msgid "invalid numa node"
+msgstr "verify_cgraph_node 失败"
+
+#: src/top/top_nls.c:589
+msgid "sorry, NUMA extensions unavailable"
+msgstr ""
+
+#. Translation Hint: 'Mem ' is an abbreviation for physical memory/ram
+#. . 'Swap' represents the linux swap file --
+#. . please make both translations exactly 4 characters,
+#. . padding with extra spaces as necessary
+#: src/top/top_nls.c:594
+#, fuzzy
+msgid "Mem "
+msgstr "为循环å¯ç”¨é¢„å–时最å°çš„指令/内存æ“作比"
+
+#: src/top/top_nls.c:595
+#, fuzzy
+msgid "Swap"
+msgstr "交æ¢"
+
+#: src/top/top_nls.c:596
+#, c-format
+msgid "library failed memory statistics, at %d: %s"
+msgstr ""
+
+#: src/top/top_nls.c:597
+#, c-format
+msgid "library failed cpu statistics, at %d: %s"
+msgstr ""
+
+#: src/top/top_nls.c:598
+#, c-format
+msgid "library failed pids statistics, at %d: %s"
+msgstr ""
+
+#: src/top/top_nls.c:599
+#, fuzzy, c-format
+msgid "bad memory scaling arg '%s'"
+msgstr "错误的正则表达å¼: %s\n"
+
+#: src/top/top_nls.c:600
+#, fuzzy, c-format
+msgid "PID to collapse/expand [default pid = %d]"
+msgstr "具有 pid %d 的进程ä¸å­˜åœ¨ã€‚\n"
+
+#: src/top/top_nls.c:601
+msgid "wrong mode, command inactive"
+msgstr ""
+
+#: src/top/top_nls.c:602
+msgid "saving prevents older top from reading, save anyway?"
+msgstr ""
+
+#: src/top/top_nls.c:603
+#, fuzzy, c-format
+msgid "failed sem_init() at %d: %s"
+msgstr "设置新用户%s 失败"
+
+#: src/top/top_nls.c:604
+#, fuzzy, c-format
+msgid "failed pthread_create() at %d: %s"
+msgstr "无法打开 /proc 目录: %s\n"
+
+#: src/top/top_nls.c:605
+msgid "sorry, restricted namespace with reduced functionality"
+msgstr ""
+
+#: src/top/top_nls.c:606
+#, c-format
+msgid "set pid %d AGNI value to"
+msgstr ""
+
+#: src/top/top_nls.c:607
+msgid "valid AGNI range is -20 to +19"
+msgstr ""
+
+#: src/top/top_nls.c:608
+#, fuzzy, c-format
+msgid "autogroup open failed, %s"
+msgstr "无法打开文件 %s"
+
+#: src/top/top_nls.c:609
+#, c-format
+msgid "autogroup write failed, %s"
+msgstr ""
+
+#: src/top/top_nls.c:610
+#, c-format
+msgid "command line for pid %d, %s"
+msgstr ""
+
+#: src/top/top_nls.c:611
+#, c-format
+msgid "control groups for pid %d, %s"
+msgstr ""
+
+#: src/top/top_nls.c:612
+#, fuzzy, c-format
+msgid "environment for pid %d, %s"
+msgstr "__io å˜é‡é»˜è®¤ä¸º volatile"
+
+#: src/top/top_nls.c:613
+#, c-format
+msgid "namespaces for pid %d, %s"
+msgstr ""
+
+#: src/top/top_nls.c:614
+msgid "n/a"
+msgstr ""
+
+#: src/top/top_nls.c:615
+#, c-format
+msgid "supplementary groups for pid %d, %s"
+msgstr ""
+
+#: src/top/top_nls.c:616
+msgid "message log, last 10 messages:"
+msgstr ""
+
+#. Translation Notes ------------------------------------------------
+#. . It is strongly recommend that the --no-wrap command line option
+#. . be used with all supporting translation tools, when available.
+#. .
+#. . The next several text groups contain special escape sequences
+#. . representing values used to index a table at run-time.
+#. .
+#. . Each such sequence consists of a tilde (~) followed by an ascii
+#. . number in the range of '1' - '8'. Examples are '~2', '~8', etc.
+#. . These escape sequences must never themselves be translated but
+#. . could be deleted.
+#. .
+#. . If you remove these escape sequences (both tilde and number) it
+#. . would make translation easier. However, the ability to display
+#. . colors and bold text at run-time will have been lost.
+#. .
+#. . Additionally, each of these text groups was designed to display
+#. . in a 80x24 terminal window. Hopefully, any translations will
+#. . adhere to that goal lest the translated text be truncated.
+#. .
+#. . If you would like additional information regarding these strings,
+#. . please see the prologue to the show_special function in the top.c
+#. . source file.
+#. .
+#. . Caution:
+#. . The next three items represent pages for interacting with a user.
+#. . In all cases, the last lines of text must be treated with care.
+#. .
+#. . They must not end with a newline character so that at runtime the
+#. . cursor will remain on that final text line.
+#. .
+#. . Also, the special sequences (tilde+number) must not appear on the
+#. . last line (the one without the newline). So please avoid any line
+#. . wraps that could place them there.
+#. .
+#: src/top/top_nls.c:661
+#, c-format
+msgid ""
+"Help for Interactive Commands~2 - %s\n"
+"Window ~1%s~6: ~1Cumulative mode ~3%s~2. ~1System~6: ~1Delay ~3%.1f secs~2; "
+"~1Secure mode ~3%s~2.\n"
+"\n"
+" Z~5,~1B~5,E,e Global: '~1Z~2' colors; '~1B~2' bold; '~1E~2'/'~1e~2' "
+"summary/task memory scale\n"
+" l,t,m,I,0 Toggle: '~1l~2' load avg; '~1t~2' task/cpu; '~1m~2' memory; "
+"'~1I~2' Irix; '~10~2' zeros\n"
+" 1,2,3,4,5 Toggle: '~11~2/~12~2/~13~2' cpu/numa views; '~14~2' cpus "
+"abreast; '~15~2' P/E-cores\n"
+" f,X Fields: '~1f~2' add/remove/order/sort; '~1X~2' increase fixed-"
+"width fields\n"
+"\n"
+" L,&,<,> . Locate: '~1L~2'/'~1&~2' find/again; Move sort column: "
+"'~1<~2'/'~1>~2' left/right\n"
+" R,H,J,C . Toggle: '~1R~2' Sort; '~1H~2' Threads; '~1J~2' Num justify; "
+"'~1C~2' Coordinates\n"
+" c,i,S,j . Toggle: '~1c~2' Cmd name/line; '~1i~2' Idle; '~1S~2' Time; "
+"'~1j~2' Str justify\n"
+" x~5,~1y~5 . Toggle highlights: '~1x~2' sort field; '~1y~2' running "
+"tasks\n"
+" z~5,~1b~5 . Toggle: '~1z~2' color/mono; '~1b~2' bold/reverse (only if "
+"'x' or 'y')\n"
+" u,U,o,O . Filter by: '~1u~2'/'~1U~2' effective/any user; '~1o~2'/'~1O~2' "
+"other criteria\n"
+" n,#,^O . Set: '~1n~2'/'~1#~2' max tasks displayed; Show: ~1Ctrl~2+'~1O~2' "
+"other filter(s)\n"
+" V,v,F . Toggle: '~1V~2' forest view; '~1v~2' hide/show children; '~1F~2' "
+"keep focused\n"
+"\n"
+"%s ^G,K,N,U View: ctl groups ~1^G~2; cmdline ~1^K~2; environment ~1^N~2; "
+"supp groups ~1^U~2\n"
+" Y,!,^E,P Inspect '~1Y~2'; Combine Cpus '~1!~2'; Scale time ~1^E~2; View "
+"namespaces ~1^P~2\n"
+" W,q Write config file '~1W~2'; Quit '~1q~2'\n"
+" ( commands shown with '.' require a ~1visible~2 task display "
+"~1window~2 ) \n"
+"Press '~1h~2' or '~1?~2' for help with ~1Windows~2,\n"
+"Type 'q' or <Esc> to continue "
+msgstr ""
+
+#: src/top/top_nls.c:687
+#, c-format
+msgid ""
+"Help for Windows / Field Groups~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+". Use multiple ~1windows~2, each with separate config opts (color,fields,"
+"sort,etc)\n"
+". The 'current' window controls the ~1Summary Area~2 and responds to your "
+"~1Commands~2\n"
+" . that window's ~1task display~2 can be turned ~1Off~2 & ~1On~2, growing/"
+"shrinking others\n"
+" . with ~1NO~2 task display, some commands will be ~1disabled~2 "
+"('i','R','n','c', etc)\n"
+" until a ~1different window~2 has been activated, making it the 'current' "
+"window\n"
+". You ~1change~2 the 'current' window by: ~1 1~2) cycling forward/backward;"
+"~1 2~2) choosing\n"
+" a specific field group; or~1 3~2) exiting the color mapping or fields "
+"screens\n"
+". Commands ~1available anytime -------------~2\n"
+" A . Alternate display mode toggle, show ~1Single~2 / ~1Multiple~2 "
+"windows\n"
+" g . Choose another field group and make it 'current', or change "
+"now\n"
+" by selecting a number from: ~1 1~2 =%s;~1 2~2 =%s;~1 3~2 =%s; "
+"or~1 4~2 =%s\n"
+". Commands ~1requiring~2 '~1A~2' mode~1 -------------~2\n"
+" G . Change the ~1Name~5 of the 'current' window/field group\n"
+" ~1*~4 a , w . Cycle through all four windows: '~1a~5' Forward; '~1w~5' "
+"Backward\n"
+" ~1*~4 - , _ . Show/Hide: '~1-~5' ~1Current~2 window; '~1_~5' all "
+"~1Visible~2/~1Invisible~2\n"
+" The screen will be divided evenly between task displays. But you can "
+"make\n"
+" some ~1larger~2 or ~1smaller~2, using '~1n~2' and '~1i~2' commands. Then "
+"later you could:\n"
+" ~1*~4 = , + . Rebalance tasks: '~1=~5' ~1Current~2 window; '~1+~5' "
+"~1Every~2 window\n"
+" (this also forces the ~1current~2 or ~1every~2 window to "
+"become visible)\n"
+"\n"
+"In '~1A~2' mode, '~1*~4' keys are your ~1essential~2 commands. Please try "
+"the '~1a~2' and '~1w~2'\n"
+"commands plus the 'g' sub-commands NOW. Press <Enter> to make 'Current' "
+msgstr ""
+
+#. Translation Notes ------------------------------------------------
+#. . The following 'Help for color mapping' simulated screen should
+#. . probably NOT be translated. It is terribly hard to follow in
+#. . this form and any translation could produce unpleasing results
+#. . that are unlikely to parallel the running top program.
+#. .
+#. . If you decide to proceed with translation, please take care
+#. . to not disturb the spaces and the tilde + number delimiters.
+#. .
+#: src/top/top_nls.c:722
+#, c-format
+msgid ""
+"Help for color mapping~2 - \"Current Window\" = ~1 %s ~6\n"
+"\n"
+" color - 04:25:44 up 8 days, 50 min, 7 users, load average:\n"
+" Tasks:~3 64 ~2total,~3 2 ~3running,~3 62 ~2sleeping,~3 0 ~2stopped,"
+"~3\n"
+" %%Cpu(s):~3 76.5 ~2user,~3 11.2 ~2system,~3 0.0 ~2nice,~3 12.3 "
+"~2idle~3\n"
+" ~1 Nasty Message! ~4 -or- ~1Input Prompt~5\n"
+" ~1 PID TTY PR NI %%CPU TIME+ VIRT SWAP S COMMAND ~6\n"
+" 17284 ~8pts/2 ~7 8 0 0.0 0:00.75 1380 0 S /bin/bash ~8\n"
+" ~1 8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z~7\n"
+" 11005 ~8? ~7 9 0 0.0 0:02.50 2852 1008 S amor -sessi~8\n"
+" available toggles: ~1B~2 =disable bold globally (~1%s~2),\n"
+" ~1z~2 =color/mono (~1%s~2), ~1b~2 =tasks \"bold\"/reverse (~1%s~2)\n"
+"\n"
+"1) Select a ~1target~2 as an upper case letter, ~1current target~2 is ~1 %c "
+"~4:\n"
+" S~2 = Summary Data,~1 M~2 = Messages/Prompts,\n"
+" H~2 = Column Heads,~1 T~2 = Task Information\n"
+"2) Select a ~1color~2 as a number or use the up/down arrow keys\n"
+" to raise/lower the %d colors value, ~1current color~2 is ~1 %d ~4:\n"
+" 0~2 = black,~1 1~2 = red, ~1 2~2 = green,~1 3~2 = yellow,\n"
+" 4~2 = blue, ~1 5~2 = magenta,~1 6~2 = cyan, ~1 7~2 = white\n"
+"\n"
+"3) Then use these keys when finished:\n"
+" 'q' or <Esc> to abort changes to window '~1%s~2'\n"
+" 'a' or 'w' to commit & change another, <Enter> to commit and end "
+msgstr ""
+
+#. Translation Hint: As is true for the text above, the "keys" shown to the left and
+#. . also embedded in the translatable text (along with escape seqs)
+#. . should never themselves be translated.
+#: src/top/top_nls.c:751
+msgid ""
+" d,k,r,^R '~1d~2' set delay; '~1k~2' kill; '~1r~2' renice; ~1Ctrl~2+'~1R~2' "
+"renice autogroup\n"
+msgstr ""
+
+#. Translation Hint:
+#. . This Fields Management header should be 3 lines long so as
+#. . to allow 1 blank line before the fields & descriptions.
+#. . If absolutely necessary, 4 lines could be used (but never more).
+#. .
+#: src/top/top_nls.c:759
+#, c-format
+msgid ""
+"Fields Management~2 for window ~1%s~6, whose current sort field is ~1%s~2\n"
+" Navigate with Up/Dn, Right selects for move then <Enter> or Left "
+"commits,\n"
+" 'd' or <Space> toggles display, 's' sets sort. Use 'q' or <Esc> to end!\n"
+msgstr ""
+
+#. Translation Hint:
+#. . The next 5 items must each be translated as a single line.
+#. .
+#: src/top/top_nls.c:767
+#, c-format
+msgid ""
+"%s:~3 %3u ~2total,~3 %3u ~2running,~3 %3u ~2sleeping,~3 %3u ~2stopped,~3 %3u "
+"~2zombie~3\n"
+msgstr ""
+
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt
+#: src/top/top_nls.c:773
+#, c-format
+msgid ""
+"%s~3 %#5.1f ~2us,~3 %#5.1f ~2sy,~3 %#5.1f ~2ni,~3 %#5.1f ~2id,~3 %#5.1f ~2wa,"
+"~3 %#5.1f ~2hi,~3 %#5.1f ~2si~3 ~1"
+msgstr ""
+
+#. Translation Hint: Only the following abbreviations need be translated
+#. . us = user, sy = system, ni = nice, id = idle, wa = wait,
+#. . hi hardware interrupt, si = software interrupt, st = steal time
+#: src/top/top_nls.c:779
+#, c-format
+msgid ""
+"%s~3%#5.1f ~2us,~3%#5.1f ~2sy,~3%#5.1f ~2ni,~3%#5.1f ~2id,~3%#5.1f ~2wa,"
+"~3%#5.1f ~2hi,~3%#5.1f ~2si,~3%#5.1f ~2st~3 ~1"
+msgstr ""
+
+#. Translation Hint: next 2 must be treated together, with WORDS above & below aligned
+#: src/top/top_nls.c:783
+#, c-format
+msgid ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used,~3 %9.9s~2buff/cache~3 "
+"~1 "
+msgstr ""
+
+#: src/top/top_nls.c:785
+#, c-format
+msgid ""
+"%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used.~3 %9.9s~2avail %s~3"
+msgstr ""
+
+#. Translation Hint:
+#. . The next 2 headers for 'Inspection' must each be 3 lines or less
+#. .
+#: src/top/top_nls.c:791
+#, c-format
+msgid ""
+"Inspection~2 Pause at: pid ~1%d~6, running ~1%s~6\n"
+"Use~2: left/right then <Enter> to ~1select~5 an option; 'q' or <Esc> to "
+"~1end~5 !\n"
+"Options~2: ~1%s\n"
+msgstr ""
+
+#: src/top/top_nls.c:796
+#, c-format
+msgid ""
+"Inspection~2 View at pid: ~1%s~3, running ~1%s~3. Locating: ~1%s~6\n"
+"Use~2: left/right/up/down/etc to ~1navigate~5 the output; 'L'/'&' to "
+"~1locate~5/~1next~5.\n"
+"Or~2: <Enter> to ~1select another~5; 'q' or <Esc> to ~1end~5 !\n"
+msgstr ""
+
+#: src/uptime.c:51 src/uptime.c:123
+msgid "Cannot get system uptime"
+msgstr ""
+
+#: src/uptime.c:67
+msgid " -p, --pretty show uptime in pretty format\n"
+msgstr ""
+
+#: src/uptime.c:69
+#, fuzzy
+msgid " -s, --since system up since\n"
+msgstr "跳过%s,因为它ä½äºŽä¸åŒçš„设备上"
+
+#: src/vmstat.c:220
+#, fuzzy, c-format
+msgid " %s [options] [delay [count]]\n"
+msgstr "%s:在%s 处的计数无效"
+
+#: src/vmstat.c:223
+#, fuzzy
+msgid " -a, --active active/inactive memory\n"
+msgstr "å¸å·æœªå¯ç”¨"
+
+#: src/vmstat.c:224
+msgid " -f, --forks number of forks since boot\n"
+msgstr ""
+
+#: src/vmstat.c:225
+#, fuzzy
+msgid " -m, --slabs slabinfo\n"
+msgstr "‘m’标记"
+
+#: src/vmstat.c:226
+msgid " -n, --one-header do not redisplay header\n"
+msgstr ""
+
+#: src/vmstat.c:227
+msgid " -s, --stats event counter statistics\n"
+msgstr ""
+
+#: src/vmstat.c:228
+#, fuzzy
+msgid " -d, --disk disk statistics\n"
+msgstr "ä¸æ˜Žçš„ç£ç›˜æ——标,%d。"
+
+#: src/vmstat.c:229
+msgid " -D, --disk-sum summarize disk statistics\n"
+msgstr ""
+
+#: src/vmstat.c:230
+msgid " -p, --partition <dev> partition specific statistics\n"
+msgstr ""
+
+#: src/vmstat.c:231
+msgid " -S, --unit <char> define display unit\n"
+msgstr ""
+
+#: src/vmstat.c:232
+#, fuzzy
+msgid " -w, --wide wide output\n"
+msgstr "æ ¼å¼å­—符串是一个宽字符串"
+
+#: src/vmstat.c:233
+#, fuzzy
+msgid " -t, --timestamp show timestamp\n"
+msgstr "正在更新 armap 时间戳"
+
+#: src/vmstat.c:234
+#, fuzzy
+msgid " -y, --no-first skips first line of output\n"
+msgstr "æ ¼å¼å­—符串是一个宽字符串"
+
+#: src/vmstat.c:253
+msgid ""
+"procs -----------memory---------- ---swap-- -----io---- -system-- -------"
+"cpu-------"
+msgstr ""
+
+#: src/vmstat.c:255
+msgid ""
+"--procs-- -----------------------memory---------------------- ---swap-- -----"
+"io---- -system-- ----------cpu----------"
+msgstr ""
+
+#: src/vmstat.c:256 src/vmstat.c:619
+msgid " -----timestamp-----"
+msgstr " -----timestamp-----"
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:275
+#, fuzzy
+msgid "r"
+msgstr " R - 调制解调器有 DCD 线 ....."
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:277
+#, fuzzy
+msgid "b"
+msgstr "B<2>"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:279
+msgid "swpd"
+msgstr "交æ¢"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:281
+msgid "free"
+msgstr "空闲"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:283
+msgid "inact"
+msgstr "ä¸æ´»åŠ¨"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:285
+msgid "buff"
+msgstr "缓冲"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:287
+msgid "active"
+msgstr "活动"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:289
+msgid "cache"
+msgstr "缓存"
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:291
+msgid "si"
+msgstr ""
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:293
+msgid "so"
+msgstr ""
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:295
+msgid "bi"
+msgstr ""
+
+#. Translation Hint: max 5 chars
+#: src/vmstat.c:297
+msgid "bo"
+msgstr ""
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:299
+msgid "in"
+msgstr ""
+
+#. Translation Hint: max 4 chars
+#: src/vmstat.c:301
+msgid "cs"
+msgstr ""
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:303
+msgid "us"
+msgstr ""
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:305
+msgid "sy"
+msgstr ""
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:307
+msgid "id"
+msgstr ""
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:309
+msgid "wa"
+msgstr ""
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:311
+msgid "st"
+msgstr ""
+
+#. Translation Hint: max 2 chars
+#: src/vmstat.c:313
+msgid "gu"
+msgstr ""
+
+#: src/vmstat.c:374 src/vmstat.c:870
+#, fuzzy
+msgid "Unable to create vmstat structure"
+msgstr "无法创建ä¸å¯æ”¹å˜çš„头区。\n"
+
+#: src/vmstat.c:376 src/vmstat.c:866 src/vmstat.c:919
+msgid "Unable to create system stat structure"
+msgstr ""
+
+#: src/vmstat.c:380
+#, fuzzy
+msgid "Unable to get uptime"
+msgstr "无法创建ä¸å¯æ”¹å˜çš„头区。\n"
+
+#: src/vmstat.c:391 src/vmstat.c:472 src/vmstat.c:874
+msgid "Unable to select memory information"
+msgstr ""
+
+#: src/vmstat.c:405 src/vmstat.c:458 src/vmstat.c:868
+msgid "Unable to select stat information"
+msgstr ""
+
+#. Translation Hint: Translating folloging disk partition
+#. * header fields that follow (marked with max x chars) might
+#. * not work, unless manual page is translated as well.
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:565
+#, fuzzy
+msgid "reads"
+msgstr "ä¸èƒ½åŒæ—¶ä½¿ç”¨ mthreads å’Œ mlegacy-threads"
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:567
+#, fuzzy
+msgid "read sectors"
+msgstr "扇区"
+
+#. Translation Hint: max 10 chars
+#: src/vmstat.c:569
+#, fuzzy
+msgid "writes"
+msgstr "写入 "
+
+#. Translation Hint: max 16 chars
+#: src/vmstat.c:571
+#, fuzzy
+msgid "requested writes"
+msgstr "è¦æ±‚的对é½è¾¹ç•Œå¤ªå¤§"
+
+#: src/vmstat.c:584 src/vmstat.c:687 src/vmstat.c:813
+msgid "Unable to create diskstat structure"
+msgstr ""
+
+#: src/vmstat.c:587 src/vmstat.c:593
+#, fuzzy, c-format
+msgid "Disk/Partition %s not found"
+msgstr "未找到分区\n"
+
+#: src/vmstat.c:616
+msgid ""
+"disk- ------------reads------------ ------------writes----------- -----"
+"IO------"
+msgstr ""
+
+#: src/vmstat.c:618
+msgid ""
+"disk- -------------------reads------------------- -------------------"
+"writes------------------ ------IO-------"
+msgstr ""
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:637 src/vmstat.c:645
+msgid "total"
+msgstr "总用é‡"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:639 src/vmstat.c:647
+msgid "merged"
+msgstr ""
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:641 src/vmstat.c:649
+msgid "sectors"
+msgstr "扇区"
+
+#. Translation Hint: max 7 chars
+#: src/vmstat.c:643 src/vmstat.c:651
+msgid "ms"
+msgstr ""
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:653
+msgid "cur"
+msgstr ""
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:655
+msgid "sec"
+msgstr ""
+
+#: src/vmstat.c:694 src/vmstat.c:815
+msgid "Unable to retrieve disk statistics"
+msgstr ""
+
+#. Translation Hint: Translating folloging slab fields that
+#. * follow (marked with max x chars) might not work, unless
+#. * manual page is translated as well.
+#. Translation Hint: max 24 chars
+#: src/vmstat.c:741
+#, fuzzy
+msgid "Cache"
+msgstr "以 KB 表示的软件数æ®ç¼“存的大å°"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:743
+#, fuzzy
+msgid "Num"
+msgstr "NUM"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:745
+msgid "Total"
+msgstr "总共"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:747
+msgid "Size"
+msgstr "大å°"
+
+#. Translation Hint: max 6 chars
+#: src/vmstat.c:749
+#, fuzzy
+msgid "Pages"
+msgstr "用于生æˆç®€å•çš„手册页的实用程åº"
+
+#: src/vmstat.c:836
+#, c-format
+msgid "%13d disks\n"
+msgstr ""
+
+#: src/vmstat.c:837
+#, fuzzy, c-format
+msgid "%13d partitions\n"
+msgstr "主分区过多。"
+
+#: src/vmstat.c:838
+#, fuzzy, c-format
+msgid "%13lu total reads\n"
+msgstr "总用é‡"
+
+#: src/vmstat.c:839
+#, c-format
+msgid "%13lu merged reads\n"
+msgstr ""
+
+#: src/vmstat.c:840
+#, fuzzy, c-format
+msgid "%13lu read sectors\n"
+msgstr "扇区"
+
+#: src/vmstat.c:841
+#, fuzzy, c-format
+msgid "%13lu milli reading\n"
+msgstr "读å–å®"
+
+#: src/vmstat.c:842
+#, c-format
+msgid "%13lu writes\n"
+msgstr ""
+
+#: src/vmstat.c:843
+#, c-format
+msgid "%13lu merged writes\n"
+msgstr ""
+
+#: src/vmstat.c:844
+#, fuzzy, c-format
+msgid "%13lu written sectors\n"
+msgstr "扇区"
+
+#: src/vmstat.c:845
+#, fuzzy, c-format
+msgid "%13lu milli writing\n"
+msgstr "写入%qs时错误"
+
+#: src/vmstat.c:846
+#, fuzzy, c-format
+msgid "%13lu inprogress IO\n"
+msgstr "错误的 IO 基类型(%d)"
+
+#: src/vmstat.c:847
+#, c-format
+msgid "%13lu milli spent IO\n"
+msgstr ""
+
+#: src/vmstat.c:848
+#, fuzzy, c-format
+msgid "%13lu milli weighted IO\n"
+msgstr "写入%qs时错误"
+
+#: src/vmstat.c:876
+#, fuzzy, c-format
+msgid "%13lu %s total memory\n"
+msgstr "脚本“%sâ€: 内存耗尽%s\n"
+
+#: src/vmstat.c:877
+#, fuzzy, c-format
+msgid "%13lu %s used memory\n"
+msgstr "脚本“%sâ€: 内存耗尽%s\n"
+
+#: src/vmstat.c:878
+#, fuzzy, c-format
+msgid "%13lu %s active memory\n"
+msgstr "设备 %s 未激活。\n"
+
+#: src/vmstat.c:879
+#, fuzzy, c-format
+msgid "%13lu %s inactive memory\n"
+msgstr "脚本“%sâ€: 内存耗尽%s\n"
+
+#: src/vmstat.c:880
+#, fuzzy, c-format
+msgid "%13lu %s free memory\n"
+msgstr "脚本“%sâ€: 内存耗尽%s\n"
+
+#: src/vmstat.c:881
+#, fuzzy, c-format
+msgid "%13lu %s buffer memory\n"
+msgstr "内存节 %s+%x"
+
+#: src/vmstat.c:882
+#, fuzzy, c-format
+msgid "%13lu %s swap cache\n"
+msgstr "无法丢弃缓存:%s"
+
+#: src/vmstat.c:883
+#, c-format
+msgid "%13lu %s total swap\n"
+msgstr ""
+
+#: src/vmstat.c:884
+#, fuzzy, c-format
+msgid "%13lu %s used swap\n"
+msgstr "%s 与%<%%%c%>%s æ ¼å¼å¹¶ç”¨"
+
+#: src/vmstat.c:885
+#, c-format
+msgid "%13lu %s free swap\n"
+msgstr ""
+
+#: src/vmstat.c:886
+#, c-format
+msgid "%13lld non-nice user cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:887
+#, c-format
+msgid "%13lld nice user cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:888
+#, c-format
+msgid "%13lld system cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:889
+#, c-format
+msgid "%13lld idle cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:890
+#, c-format
+msgid "%13lld IO-wait cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:891
+#, c-format
+msgid "%13lld IRQ cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:892
+#, c-format
+msgid "%13lld softirq cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:893
+#, c-format
+msgid "%13lld stolen cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:894
+#, c-format
+msgid "%13lld non-nice guest cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:895
+#, c-format
+msgid "%13lld nice guest cpu ticks\n"
+msgstr ""
+
+#: src/vmstat.c:896
+#, fuzzy, c-format
+msgid "%13lu K paged in\n"
+msgstr "已本地化的手册页"
+
+#: src/vmstat.c:897
+#, fuzzy, c-format
+msgid "%13lu K paged out\n"
+msgstr "已本地化的手册页"
+
+#: src/vmstat.c:898
+#, fuzzy, c-format
+msgid "%13lu pages swapped in\n"
+msgstr "用于生æˆç®€å•çš„手册页的实用程åº"
+
+#: src/vmstat.c:899
+#, c-format
+msgid "%13lu pages swapped out\n"
+msgstr ""
+
+#: src/vmstat.c:900
+#, fuzzy, c-format
+msgid "%13lu interrupts\n"
+msgstr "错误的 IO 基类型(%d)"
+
+#: src/vmstat.c:901
+#, c-format
+msgid "%13lu CPU context switches\n"
+msgstr ""
+
+#: src/vmstat.c:902
+#, fuzzy, c-format
+msgid "%13lu boot time\n"
+msgstr "无法获å–å¯åŠ¨æ—¶é—´"
+
+#: src/vmstat.c:903 src/vmstat.c:921
+#, fuzzy, c-format
+msgid "%13lu forks\n"
+msgstr "总用é‡"
+
+#. Translation Hint: do not change argument characters
+#: src/vmstat.c:1024
+msgid "-S requires k, K, m or M (default is KiB)"
+msgstr ""
+
+#: src/watch.c:94
+#, fuzzy, c-format
+msgid " %s [options] command\n"
+msgstr "用法:%s [选项] 命令\n"
+
+#: src/watch.c:96
+msgid " -b, --beep beep if command has a non-zero exit\n"
+msgstr " -b, --beep 如果命令以éžé›¶è¿”回值退出的è¯åˆ™å‘出哔声\n"
+
+#: src/watch.c:97
+msgid " -c, --color interpret ANSI color and style sequences\n"
+msgstr ""
+
+#: src/watch.c:98
+msgid ""
+" -C, --no-color do not interpret ANSI color and style sequences\n"
+msgstr ""
+
+#: src/watch.c:99
+msgid ""
+" -d, --differences[=<permanent>]\n"
+" highlight changes between updates\n"
+msgstr ""
+
+#: src/watch.c:101
+msgid " -e, --errexit exit if command has a non-zero exit\n"
+msgstr ""
+
+#: src/watch.c:102
+msgid " -g, --chgexit exit when output from command changes\n"
+msgstr ""
+
+#: src/watch.c:103
+msgid ""
+" -q, --equexit <cycles>\n"
+" exit when output from command does not change\n"
+msgstr ""
+
+#: src/watch.c:105
+msgid " -n, --interval <secs> seconds to wait between updates\n"
+msgstr ""
+
+#: src/watch.c:106
+msgid " -p, --precise attempt run command in precise intervals\n"
+msgstr " -p, --precise å°è¯•ä»¥ç²¾ç¡®çš„é—´éš”è¿è¡Œå‘½ä»¤\n"
+
+#: src/watch.c:107
+msgid " -r, --no-rerun do not rerun program on window resize\n"
+msgstr ""
+
+#: src/watch.c:108
+msgid " -t, --no-title turn off header\n"
+msgstr " -t, --no-title 关闭头部显示\n"
+
+#: src/watch.c:109
+#, fuzzy
+msgid " -w, --no-wrap turn off line wrapping\n"
+msgstr " -t, --no-title 关闭头部显示\n"
+
+#: src/watch.c:110
+msgid " -x, --exec pass command to exec instead of \"sh -c\"\n"
+msgstr " -x, --exec 将命令传给 exec 而éžâ€œsh -câ€\n"
+
+#: src/watch.c:113
+#, fuzzy
+msgid " -v, --version output version information and exit\n"
+msgstr ""
+"将分区表的å˜æ›´é€šæŠ¥æ“作系统。\n"
+"\n"
+" -d, --dry-run 并éžçœŸçš„通报æ“作系统\n"
+" -s, --summary å°å‡ºå†…容的概è¦\n"
+" -h, --help 显示这个说明然åŽç¦»å¼€\n"
+" -v, --version 输出版本信æ¯ç„¶åŽç¦»å¼€\n"
+
+#: src/watch.c:485
+#, fuzzy, c-format
+msgid "Every %.1fs: "
+msgstr "æ¯ç§’时间戳记列"
+
+#: src/watch.c:486
+#, c-format
+msgid "%s: %s"
+msgstr "%s: %s"
+
+#: src/watch.c:575
+#, fuzzy
+msgid "unable to create IPC pipes"
+msgstr "无法创建ä¸å¯æ”¹å˜çš„头区。\n"
+
+#: src/watch.c:585
+msgid "unable to fork process"
+msgstr "无法创建 (fork) 进程"
+
+#: src/watch.c:590
+msgid "dup2 failed"
+msgstr "dup2 失败"
+
+#: src/watch.c:597
+#, c-format
+msgid "unable to execute '%s'"
+msgstr "无法执行“%sâ€"
+
+#: src/watch.c:614
+msgid "fdopen"
+msgstr "fdopen"
+
+#: src/watch.c:788
+msgid "waitpid"
+msgstr "waitpid"
+
+#: src/watch.c:796
+msgid "command exit with a non-zero status, press a key to exit"
+msgstr "命令以éžé›¶çŠ¶æ€é€€å‡ºï¼ŒæŒ‰ä»»æ„键退出"
+
+#: src/watch.c:863
+msgid "Could not parse interval from WATCH_INTERVAL"
+msgstr ""
+
+#: src/watch.c:954
+#, fuzzy, c-format
+msgid "unicode handling error\n"
+msgstr "以 null 终止的 unicode 字符串"
+
+#: src/watch.c:960
+#, c-format
+msgid "unicode handling error (malloc)\n"
+msgstr "unicode 处ç†é”™è¯¯ (malloc)\n"
+
+#: src/w.c:289 src/w.c:304
+#, c-format
+msgid " %2lludays"
+msgstr ""
+
+#. Translation Hint: Minutes:Seconds
+#. Translation Hint: Hours:Minutes
+#: src/w.c:298 src/w.c:308
+#, c-format
+msgid " %2llu:%02um"
+msgstr ""
+
+#. Translation Hint: Seconds:Centiseconds
+#: src/w.c:316
+#, c-format
+msgid " %2llu.%02us"
+msgstr ""
+
+#: src/w.c:656
+#, fuzzy, c-format
+msgid " %s [options] [user]\n"
+msgstr " %s [选项] [tty]\n"
+
+#: src/w.c:658
+#, fuzzy
+msgid " -h, --no-header do not print header\n"
+msgstr "打å°ä½¿ç”¨åˆ°çš„头文件å"
+
+#: src/w.c:659
+msgid " -u, --no-current ignore current process username\n"
+msgstr ""
+
+#: src/w.c:660
+#, fuzzy
+msgid " -s, --short short format\n"
+msgstr "%<short%>对%qs无效"
+
+#: src/w.c:661
+msgid " -f, --from show remote hostname field\n"
+msgstr ""
+
+#: src/w.c:662
+msgid " -o, --old-style old style output\n"
+msgstr " -o, --old-style 旧格å¼è¾“出\n"
+
+#: src/w.c:663
+msgid ""
+" -i, --ip-addr display IP address instead of hostname (if possible)\n"
+msgstr ""
+
+#: src/w.c:664
+#, fuzzy
+msgid " -p, --pids show the PID(s) of processes in WHAT\n"
+msgstr "未å‘现进程。\n"
+
+#: src/w.c:763
+#, c-format
+msgid ""
+"User length environment PROCPS_USERLEN must be between 8 and %i, ignoring.\n"
+msgstr ""
+
+#: src/w.c:773
+#, c-format
+msgid ""
+"from length environment PROCPS_FROMLEN must be between 8 and %d, ignoring\n"
+msgstr ""
+
+#. Translation Hint: Following five uppercase messages are
+#. * headers. Try to keep alignment intact.
+#: src/w.c:799
+#, c-format
+msgid "%-*s TTY "
+msgstr "%-*s TTY "
+
+#: src/w.c:801
+msgid "FROM"
+msgstr "æ¥è‡ª"
+
+#: src/w.c:803
+#, fuzzy, c-format
+msgid " LOGIN@ IDLE JCPU PCPU WHAT\n"
+msgstr " 登陆于 空闲 JCPU PCPU WHAT\n"
+
+#: src/w.c:805
+#, c-format
+msgid " IDLE WHAT\n"
+msgstr " 空闲等待\n"
+
+#: src/w.c:815
+msgid "error getting sessions"
+msgstr ""
+
+#: src/w.c:823
+msgid "get user name failed"
+msgstr ""
+
+#: local/c.h:153
+msgid ""
+"\n"
+"Usage:\n"
+msgstr ""
+"\n"
+"用法:\n"
+
+#: local/c.h:154
+msgid ""
+"\n"
+"Options:\n"
+msgstr ""
+"\n"
+"选项:\n"
+
+#: local/c.h:155
+msgid "\n"
+msgstr "\n"
+
+#: local/c.h:156
+msgid " -h, --help display this help and exit\n"
+msgstr " -h, --help 显示此帮助然åŽç¦»å¼€\n"
+
+#: local/c.h:157
+msgid " -V, --version output version information and exit\n"
+msgstr " -V, --version 显示程åºç‰ˆæœ¬ç„¶åŽç¦»å¼€\n"
+
+#: local/c.h:158
+#, c-format
+msgid ""
+"\n"
+"For more details see %s.\n"
+msgstr ""
+"\n"
+"欲了解更多详细信æ¯ï¼Œè¯·å‚è§ %s。\n"
+
+#: local/c.h:160
+#, c-format
+msgid "%s from %s\n"
+msgstr ""
+
+#, c-format
+#~ msgid "error: not enough memory\n"
+#~ msgstr "错误:没有足够的内存\n"
+
+#, c-format
+#~ msgid "error: can not access /proc\n"
+#~ msgstr "错误:无法访问 /proc\n"
+
+#, fuzzy, c-format
+#~ msgid "something at line %d\n"
+#~ msgstr "行 %d:第二个 %%prep\n"
+
+#, fuzzy, c-format
+#~ msgid "\"%s\" must be of the form name=value"
+#~ msgstr "%s:--param 实å‚çš„å½¢å¼åº”该为“åå­—=值â€"
+
+#, fuzzy, c-format
+#~ msgid "malformed setting \"%s\""
+#~ msgstr "设置%s çš„æƒé™"
+
+#, fuzzy, c-format
+#~ msgid "%s is deprecated, value not set"
+#~ msgstr "必须为 %s 设置一个值\n"
+
+#, fuzzy, c-format
+#~ msgid ""
+#~ "inappropriate '%s'\n"
+#~ "Usage:\n"
+#~ " %s%s"
+#~ msgstr "用法:%s [选项] 输入文件\n"
+
+#, c-format
+#~ msgid ""
+#~ " %s\n"
+#~ "Usage:\n"
+#~ " %s%s"
+#~ msgstr ""
+#~ " %s\n"
+#~ "用法:\n"
+#~ " %s%s"
+
+#, fuzzy, c-format
+#~ msgid "failed openproc: %s"
+#~ msgstr "%s: 打开失败:%s\n"
+
+#, fuzzy, c-format
+#~ msgid "-%c requires argument"
+#~ msgstr "%s:选项需è¦ä¸€ä¸ªå‚æ•° --“%câ€\n"
+
+#~ msgid "failed /proc/stat read"
+#~ msgstr "è¯»å– /proc/stat 失败"
+
+#~ msgid ""
+#~ " k,r Manipulate tasks: '~1k~2' kill; '~1r~2' renice\n"
+#~ " d or s Set update interval\n"
+#~ msgstr ""
+#~ " k,r æ“作进程:'~1k~2' æ€æ­»ï¼›'~1r~2' 设置优先级\n"
+#~ " d or s 设定更新间隔\n"
+
+#~ msgid ""
+#~ "your kernel does not support slabinfo or your permissions are insufficient"
+#~ msgstr "您的内核ä¸æ”¯æŒ slabinfo 或您的æƒé™ä¸å¤Ÿ"
+
+#, fuzzy
+#~ msgid "seconds argument `%s' failed"
+#~ msgstr "无效的秒数:%s"
+
+#, fuzzy
+#~ msgid "oom_adjustment (2^X)"
+#~ msgstr " X: 2 R: 7-E-1\n"
+
+#~ msgid "reads "
+#~ msgstr "è¯»å– "
+
+#, fuzzy
+#~ msgid "warning: screen width %d suboptimal"
+#~ msgstr "警告:无效的宽度值%lu,已使用%d 代替"
diff --git a/src/free.c b/src/free.c
new file mode 100644
index 0000000..579591d
--- /dev/null
+++ b/src/free.c
@@ -0,0 +1,479 @@
+/*
+ * free.c - display free memory information
+ *
+ * Copyright © 2011-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2012-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2011-2012 Sami Kerola <kerolasa@iki.fi>
+ * Copyright © 2004 Albert Cahalan
+ * Copyright © 2002-2003 Robert Love <rml@tech9.net>
+ * Copyright © 1992 Brian Edmonds and Rafal Maszkowski
+ *
+ * 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 2
+ * 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
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include <locale.h>
+#include <errno.h>
+#include <limits.h>
+#include <ctype.h>
+#include <getopt.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <wchar.h>
+
+#include "config.h"
+#include "c.h"
+#include "nls.h"
+#include "strutils.h"
+#include "fileutils.h"
+
+#include "meminfo.h"
+
+#ifndef SIZE_MAX
+#define SIZE_MAX 32
+#endif
+
+#define FREE_HUMANREADABLE (1 << 1)
+#define FREE_LOHI (1 << 2)
+#define FREE_WIDE (1 << 3)
+#define FREE_TOTAL (1 << 4)
+#define FREE_SI (1 << 5)
+#define FREE_REPEAT (1 << 6)
+#define FREE_REPEATCOUNT (1 << 7)
+#define FREE_COMMITTED (1 << 8)
+#define FREE_LINE (1 << 9)
+
+struct commandline_arguments {
+ int exponent; /* demanded in kilos, magas... */
+ float repeat_interval; /* delay in seconds */
+ int repeat_counter; /* number of repeats */
+};
+
+/* function prototypes */
+static void usage(FILE * out);
+double power(unsigned int base, unsigned int expo);
+static const char *scale_size(unsigned long size, int flags, struct commandline_arguments args);
+
+static void __attribute__ ((__noreturn__))
+ usage(FILE * out)
+{
+ fputs(USAGE_HEADER, out);
+ fprintf(out,
+ _(" %s [options]\n"), program_invocation_short_name);
+ fputs(USAGE_OPTIONS, out);
+ fputs(_(" -b, --bytes show output in bytes\n"), out);
+ fputs(_(" --kilo show output in kilobytes\n"), out);
+ fputs(_(" --mega show output in megabytes\n"), out);
+ fputs(_(" --giga show output in gigabytes\n"), out);
+ fputs(_(" --tera show output in terabytes\n"), out);
+ fputs(_(" --peta show output in petabytes\n"), out);
+ fputs(_(" -k, --kibi show output in kibibytes\n"), out);
+ fputs(_(" -m, --mebi show output in mebibytes\n"), out);
+ fputs(_(" -g, --gibi show output in gibibytes\n"), out);
+ fputs(_(" --tebi show output in tebibytes\n"), out);
+ fputs(_(" --pebi show output in pebibytes\n"), out);
+ fputs(_(" -h, --human show human-readable output\n"), out);
+ fputs(_(" --si use powers of 1000 not 1024\n"), out);
+ fputs(_(" -l, --lohi show detailed low and high memory statistics\n"), out);
+ fputs(_(" -L, --line show output on a single line\n"), out);
+ fputs(_(" -t, --total show total for RAM + swap\n"), out);
+ fputs(_(" -v, --committed show committed memory and commit limit\n"), out);
+ fputs(_(" -s N, --seconds N repeat printing every N seconds\n"), out);
+ fputs(_(" -c N, --count N repeat printing N times, then exit\n"), out);
+ fputs(_(" -w, --wide wide output\n"), out);
+ fputs(USAGE_SEPARATOR, out);
+ fputs(_(" --help display this help and exit\n"), out);
+ fputs(USAGE_VERSION, out);
+ fprintf(out, USAGE_MAN_TAIL("free(1)"));
+
+ exit(out == stderr ? EXIT_FAILURE : EXIT_SUCCESS);
+}
+
+double power(unsigned int base, unsigned int expo)
+{
+ return (expo == 0) ? 1 : base * power(base, expo - 1);
+}
+
+/* idea of this function is copied from top size scaling */
+static const char *scale_size(unsigned long size, int flags, struct commandline_arguments args)
+{
+ static char up[] = { 'B', 'K', 'M', 'G', 'T', 'P', 0 };
+ static char buf[BUFSIZ];
+ int i;
+ float base;
+ long long bytes;
+
+ base = (flags & FREE_SI) ? 1000.0 : 1024.0;
+ bytes = size * 1024LL;
+
+ if (!(flags & FREE_HUMANREADABLE)) {
+ switch (args.exponent) {
+ case 0:
+ /* default output */
+ snprintf(buf, sizeof(buf), "%ld", (long int)(bytes / (long long int)base));
+ return buf;
+ case 1:
+ /* in bytes, which can not be in SI */
+ snprintf(buf, sizeof(buf), "%lld", bytes);
+ return buf;
+ default:
+ /* In desired scale. */
+ snprintf(buf, sizeof(buf), "%ld",
+ (long)(bytes / power(base, args.exponent-1)));
+ return buf;
+ }
+ }
+
+ /* human readable output */
+ if (4 >= snprintf(buf, sizeof(buf), "%lld%c", bytes, up[0]))
+ return buf;
+
+ for (i = 1; up[i] != 0; i++) {
+ if (flags & FREE_SI) {
+ if (4 >= snprintf(buf, sizeof(buf), "%.1f%c",
+ (float)(bytes / power(base, i)), up[i]))
+ return buf;
+ if (4 >= snprintf(buf, sizeof(buf), "%ld%c",
+ (long)(bytes / power(base, i)), up[i]))
+ return buf;
+ } else {
+ if (5 >= snprintf(buf, sizeof(buf), "%.1f%ci",
+ (float)(bytes / power(base, i)), up[i]))
+ return buf;
+ if (5 >= snprintf(buf, sizeof(buf), "%ld%ci",
+ (long)(bytes / power(base, i)), up[i]))
+ return buf;
+ }
+ }
+ /*
+ * On system where there is more than exbibyte of memory or swap the
+ * output does not fit to column. For incoming few years this should
+ * not be a big problem (wrote at Apr, 2015).
+ */
+ return buf;
+}
+
+static void check_unit_set(int *unit_set)
+{
+ if (*unit_set)
+ xerrx(EXIT_FAILURE,
+ _("Multiple unit options don't make sense."));
+ *unit_set = 1;
+}
+
+/*
+ * Print the header columns.
+ * We cannot simply use the second printf because the length of the
+ * translated strings doesn't work with it. Instead we need to find
+ * the wide length of the string and use that.
+ * This method also removes the messy wprintf/printf buffering issues
+ */
+#define HC_WIDTH 9
+static void print_head_col(const char *str)
+{
+ int len;
+ int spaces = 9;
+ wchar_t wstr[BUFSIZ];
+
+ len = mbstowcs(wstr, str, BUFSIZ);
+ if (len < 0)
+ spaces = 9;
+ else if (len < HC_WIDTH) {
+ int width;
+ if ( (width = wcswidth(wstr, 99)) > 0)
+ spaces = HC_WIDTH - width;
+ else
+ spaces = HC_WIDTH - len;
+ } else
+ spaces = 0;
+
+ printf("%s%.*s", str, spaces, " ");
+}
+
+int main(int argc, char **argv)
+{
+ int c, flags = 0, unit_set = 0, rc = 0;
+ struct commandline_arguments args;
+ struct meminfo_info *mem_info = NULL;
+
+ /*
+ * For long options that have no equivalent short option, use a
+ * non-character as a pseudo short option, starting with CHAR_MAX + 1.
+ */
+ enum {
+ SI_OPTION = CHAR_MAX + 1,
+ KILO_OPTION,
+ MEGA_OPTION,
+ GIGA_OPTION,
+ TERA_OPTION,
+ PETA_OPTION,
+ TEBI_OPTION,
+ PEBI_OPTION,
+ HELP_OPTION
+ };
+
+ static const struct option longopts[] = {
+ { "bytes", no_argument, NULL, 'b' },
+ { "kilo", no_argument, NULL, KILO_OPTION },
+ { "mega", no_argument, NULL, MEGA_OPTION },
+ { "giga", no_argument, NULL, GIGA_OPTION },
+ { "tera", no_argument, NULL, TERA_OPTION },
+ { "peta", no_argument, NULL, PETA_OPTION },
+ { "kibi", no_argument, NULL, 'k' },
+ { "mebi", no_argument, NULL, 'm' },
+ { "gibi", no_argument, NULL, 'g' },
+ { "tebi", no_argument, NULL, TEBI_OPTION },
+ { "pebi", no_argument, NULL, PEBI_OPTION },
+ { "human", no_argument, NULL, 'h' },
+ { "si", no_argument, NULL, SI_OPTION },
+ { "lohi", no_argument, NULL, 'l' },
+ { "line", no_argument, NULL, 'L' },
+ { "total", no_argument, NULL, 't' },
+ { "committed", no_argument, NULL, 'v' },
+ { "seconds", required_argument, NULL, 's' },
+ { "count", required_argument, NULL, 'c' },
+ { "wide", no_argument, NULL, 'w' },
+ { "help", no_argument, NULL, HELP_OPTION },
+ { "version", no_argument, NULL, 'V' },
+ { NULL, 0, NULL, 0 }
+ };
+
+ /* defaults */
+ args.exponent = 0;
+ args.repeat_interval = 1000000;
+ args.repeat_counter = 0;
+
+#ifdef HAVE_PROGRAM_INVOCATION_NAME
+ program_invocation_name = program_invocation_short_name;
+#endif
+ setlocale (LC_ALL, "");
+ bindtextdomain(PACKAGE, LOCALEDIR);
+ textdomain(PACKAGE);
+ atexit(close_stdout);
+
+ while ((c = getopt_long(argc, argv, "bkmghlLtvc:ws:V", longopts, NULL)) != -1)
+ switch (c) {
+ case 'b':
+ check_unit_set(&unit_set);
+ args.exponent = 1;
+ break;
+ case 'k':
+ check_unit_set(&unit_set);
+ args.exponent = 2;
+ break;
+ case 'm':
+ check_unit_set(&unit_set);
+ args.exponent = 3;
+ break;
+ case 'g':
+ check_unit_set(&unit_set);
+ args.exponent = 4;
+ break;
+ case TEBI_OPTION:
+ check_unit_set(&unit_set);
+ args.exponent = 5;
+ break;
+ case PEBI_OPTION:
+ check_unit_set(&unit_set);
+ args.exponent = 6;
+ break;
+ case KILO_OPTION:
+ check_unit_set(&unit_set);
+ args.exponent = 2;
+ flags |= FREE_SI;
+ break;
+ case MEGA_OPTION:
+ check_unit_set(&unit_set);
+ args.exponent = 3;
+ flags |= FREE_SI;
+ break;
+ case GIGA_OPTION:
+ check_unit_set(&unit_set);
+ args.exponent = 4;
+ flags |= FREE_SI;
+ break;
+ case TERA_OPTION:
+ check_unit_set(&unit_set);
+ args.exponent = 5;
+ flags |= FREE_SI;
+ break;
+ case PETA_OPTION:
+ check_unit_set(&unit_set);
+ args.exponent = 6;
+ flags |= FREE_SI;
+ break;
+ case 'h':
+ flags |= FREE_HUMANREADABLE;
+ break;
+ case SI_OPTION:
+ flags |= FREE_SI;
+ break;
+ case 'l':
+ flags |= FREE_LOHI;
+ break;
+ case 'L':
+ flags |= FREE_LINE;
+ break;
+ case 't':
+ flags |= FREE_TOTAL;
+ break;
+ case 'v':
+ flags |= FREE_COMMITTED;
+ break;
+ case 's':
+ flags |= FREE_REPEAT;
+ errno = 0;
+ args.repeat_interval = (1000000 * strtod_nol_or_err(optarg, "seconds argument failed"));
+ if (args.repeat_interval < 1)
+ xerrx(EXIT_FAILURE,
+ _("seconds argument `%s' is not positive number"), optarg);
+ break;
+ case 'c':
+ flags |= FREE_REPEAT;
+ flags |= FREE_REPEATCOUNT;
+ args.repeat_counter = strtol_or_err(optarg,
+ _("failed to parse count argument"));
+ if (args.repeat_counter < 1)
+ error(EXIT_FAILURE, ERANGE,
+ _("failed to parse count argument: '%s'"), optarg);
+ break;
+ case 'w':
+ flags |= FREE_WIDE;
+ break;
+ case HELP_OPTION:
+ usage(stdout);
+ case 'V':
+ printf(PROCPS_NG_VERSION);
+ exit(EXIT_SUCCESS);
+ default:
+ usage(stderr);
+ }
+ if (optind != argc)
+ usage(stderr);
+
+ if ( (rc = procps_meminfo_new(&mem_info)) < 0)
+ {
+ if (rc == -ENOENT)
+ xerrx(EXIT_FAILURE,
+ _("Memory information file /proc/meminfo does not exist"));
+ else
+ xerrx(EXIT_FAILURE,
+ _("Unable to create meminfo structure"));
+ }
+ do {
+ if ( flags & FREE_LINE ) {
+ /* Translation Hint: These are shortened column headers
+ * that are all 7 characters long. Use spaces and right
+ * align if the translation is shorter.
+ */
+ printf("%s %11s ", _("SwapUse"), scale_size(MEMINFO_GET(mem_info, MEMINFO_SWAP_USED, ul_int), flags, args));
+ printf("%s %11s ", _("CachUse"), scale_size(MEMINFO_GET(mem_info, MEMINFO_MEM_BUFFERS, ul_int) +
+ MEMINFO_GET(mem_info, MEMINFO_MEM_CACHED_ALL, ul_int), flags, args));
+ printf("%s %11s ", _(" MemUse"), scale_size(MEMINFO_GET(mem_info, MEMINFO_MEM_USED, ul_int), flags, args));
+ printf("%s %11s ", _("MemFree"), scale_size(MEMINFO_GET(mem_info, MEMINFO_MEM_FREE, ul_int), flags, args));
+ if ( (flags & FREE_REPEAT) == 0 )
+ printf("\n");
+ else if ( args.repeat_counter == 1 )
+ printf("\n");
+ } else {
+ /* Translation Hint: You can use 9 character words in
+ * the header, and the words need to be right align to
+ * beginning of a number. */
+ if (flags & FREE_WIDE) {
+ printf(_(" total used free shared buffers cache available"));
+ } else {
+ printf(_(" total used free shared buff/cache available"));
+ }
+ printf("\n");
+ print_head_col(_("Mem:"));
+ printf("%11s", scale_size(MEMINFO_GET(mem_info, MEMINFO_MEM_TOTAL, ul_int), flags, args));
+ printf(" %11s", scale_size(MEMINFO_GET(mem_info, MEMINFO_MEM_USED, ul_int), flags, args));
+ printf(" %11s", scale_size(MEMINFO_GET(mem_info, MEMINFO_MEM_FREE, ul_int), flags, args));
+ printf(" %11s", scale_size(MEMINFO_GET(mem_info, MEMINFO_MEM_SHARED, ul_int), flags, args));
+ if (flags & FREE_WIDE) {
+ printf(" %11s", scale_size(MEMINFO_GET(mem_info, MEMINFO_MEM_BUFFERS, ul_int),
+ flags, args));
+ printf(" %11s", scale_size(MEMINFO_GET(mem_info, MEMINFO_MEM_CACHED_ALL, ul_int)
+ , flags, args));
+ } else {
+ printf(" %11s", scale_size(MEMINFO_GET(mem_info, MEMINFO_MEM_BUFFERS, ul_int) +
+ MEMINFO_GET(mem_info, MEMINFO_MEM_CACHED_ALL, ul_int), flags, args));
+ }
+ printf(" %11s", scale_size(MEMINFO_GET(mem_info, MEMINFO_MEM_AVAILABLE, ul_int), flags, args));
+ printf("\n");
+ /*
+ * Print low vs. high information, if the user requested it.
+ * Note we check if low_total == 0: if so, then this kernel
+ * does not export the low and high stats. Note we still want
+ * to print the high info, even if it is zero.
+ */
+ if (flags & FREE_LOHI) {
+ print_head_col(_("Low:"));
+ printf("%11s", scale_size(MEMINFO_GET(mem_info, MEMINFO_MEM_LOW_TOTAL, ul_int), flags, args));
+ printf(" %11s", scale_size(MEMINFO_GET(mem_info, MEMINFO_MEM_LOW_USED, ul_int), flags, args));
+ printf(" %11s", scale_size(MEMINFO_GET(mem_info, MEMINFO_MEM_LOW_FREE, ul_int), flags, args));
+ printf("\n");
+
+ print_head_col( _("High:"));
+ printf("%11s", scale_size(MEMINFO_GET(mem_info, MEMINFO_MEM_HIGH_TOTAL, ul_int), flags, args));
+ printf(" %11s", scale_size(MEMINFO_GET(mem_info, MEMINFO_MEM_HIGH_USED, ul_int), flags, args));
+ printf(" %11s", scale_size(MEMINFO_GET(mem_info, MEMINFO_MEM_HIGH_FREE, ul_int), flags, args));
+ printf("\n");
+ }
+
+ print_head_col(_("Swap:"));
+ printf("%11s", scale_size(MEMINFO_GET(mem_info, MEMINFO_SWAP_TOTAL, ul_int), flags, args));
+ printf(" %11s", scale_size(MEMINFO_GET(mem_info, MEMINFO_SWAP_USED, ul_int), flags, args));
+ printf(" %11s", scale_size(MEMINFO_GET(mem_info, MEMINFO_SWAP_FREE, ul_int), flags, args));
+ printf("\n");
+
+ if (flags & FREE_TOTAL) {
+ print_head_col(_("Total:"));
+ printf("%11s", scale_size(
+ MEMINFO_GET(mem_info, MEMINFO_MEM_TOTAL, ul_int) +
+ MEMINFO_GET(mem_info, MEMINFO_SWAP_TOTAL, ul_int), flags, args));
+ printf(" %11s", scale_size(
+ MEMINFO_GET(mem_info, MEMINFO_MEM_USED, ul_int) +
+ MEMINFO_GET(mem_info, MEMINFO_SWAP_USED, ul_int), flags, args));
+ printf(" %11s", scale_size(
+ MEMINFO_GET(mem_info, MEMINFO_MEM_FREE, ul_int) +
+ MEMINFO_GET(mem_info, MEMINFO_SWAP_FREE, ul_int), flags, args));
+ printf("\n");
+ }
+ if (flags & FREE_COMMITTED) {
+ print_head_col(_("Comm:"));
+ printf("%11s", scale_size(MEMINFO_GET(mem_info, MEMINFO_MEM_COMMIT_LIMIT, ul_int), flags, args));
+ printf(" %11s", scale_size(MEMINFO_GET(mem_info, MEMINFO_MEM_COMMITTED_AS, ul_int), flags, args));
+ printf(" %11s", scale_size(
+ MEMINFO_GET(mem_info, MEMINFO_MEM_COMMIT_LIMIT, ul_int) -
+ MEMINFO_GET(mem_info, MEMINFO_MEM_COMMITTED_AS, ul_int), flags, args));
+ printf("\n");
+ }
+
+ } /* end else of if FREE_LINE */
+ fflush(stdout);
+ if (flags & FREE_REPEATCOUNT) {
+ args.repeat_counter--;
+ if (args.repeat_counter < 1)
+ exit(EXIT_SUCCESS);
+ }
+ if (flags & FREE_REPEAT) {
+ printf("\n");
+ usleep(args.repeat_interval);
+ }
+ } while ((flags & FREE_REPEAT));
+
+ exit(EXIT_SUCCESS);
+}
diff --git a/src/kill.c b/src/kill.c
new file mode 100644
index 0000000..612a9b5
--- /dev/null
+++ b/src/kill.c
@@ -0,0 +1,167 @@
+/*
+ * kill.c - send a signal to process
+ *
+ * Copyright © 1995-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 1998-2002 Albert Cahalan
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <unistd.h>
+#include <getopt.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <stdbool.h>
+#include <signal.h>
+#include <ctype.h>
+
+#include "c.h"
+#include "signals.h"
+#include "strutils.h"
+#include "nls.h"
+
+/* kill help */
+static void __attribute__ ((__noreturn__)) print_usage(FILE * out)
+{
+ fputs(USAGE_HEADER, out);
+ fprintf(out,
+ _(" %s [options] <pid> [...]\n"), program_invocation_short_name);
+ fputs(USAGE_OPTIONS, out);
+ fputs(_(" <pid> [...] send signal to every <pid> listed\n"), out);
+ fputs(_(" -<signal>, -s, --signal <signal>\n"
+ " specify the <signal> to be sent\n"), out);
+ fputs(_(" -q, --queue <value> integer value to be sent with the signal\n"), out);
+ fputs(_(" -l, --list=[<signal>] list all signal names, or convert one to a name\n"), out);
+ fputs(_(" -L, --table list all signal names in a nice table\n"), out);
+ fputs(USAGE_SEPARATOR, out);
+ fputs(USAGE_HELP, out);
+ fputs(USAGE_VERSION, out);
+ fprintf(out, USAGE_MAN_TAIL("kill(1)"));
+ exit(out == stderr ? EXIT_FAILURE : EXIT_SUCCESS);
+}
+
+inline static int execute_kill(pid_t pid, int sig_num, const bool use_sigqueue, union sigval sigval)
+{
+ if (use_sigqueue)
+ return sigqueue(pid, sig_num, sigval);
+ else
+ return kill(pid, sig_num);
+}
+
+int main(int argc, char **argv)
+{
+ int signo, i;
+ long pid;
+ int exitvalue = EXIT_SUCCESS;
+ int optindex;
+ union sigval sigval;
+ bool use_sigqueue = false;
+ char *sig_option;
+
+ static const struct option longopts[] = {
+ {"list", optional_argument, NULL, 'l'},
+ {"table", no_argument, NULL, 'L'},
+ {"signal", required_argument, NULL, 's'},
+ {"help", no_argument, NULL, 'h'},
+ {"version", no_argument, NULL, 'V'},
+ {"queue", required_argument, NULL, 'q'},
+ {NULL, 0, NULL, 0}
+ };
+
+
+ setlocale (LC_ALL, "");
+ bindtextdomain(PACKAGE, LOCALEDIR);
+ textdomain(PACKAGE);
+
+
+ if (argc < 2)
+ print_usage(stderr);
+
+ signo = skill_sig_option(&argc, argv);
+ if (signo < 0)
+ signo = SIGTERM;
+
+ opterr=0; /* suppress errors on -123 */
+ while ((i = getopt_long(argc, argv, "l::Ls:hVq:", longopts, &optindex)) != -1)
+ switch (i) {
+ case 'l':
+ sig_option = NULL;
+ if (optarg) {
+ sig_option = optarg;
+ } else if (argv[optind] != NULL && argv[optind][0] != '-') {
+ sig_option = argv[optind];
+ }
+ if (sig_option) {
+ char *s;
+ s = strtosig(sig_option);
+ if (s)
+ printf("%s\n", s);
+ else
+ xwarnx(_("unknown signal name %s"),
+ sig_option);
+ free(s);
+ } else {
+ unix_print_signals();
+ }
+ exit(EXIT_SUCCESS);
+ case 'L':
+ pretty_print_signals();
+ exit(EXIT_SUCCESS);
+ case 's':
+ signo = signal_name_to_number(optarg);
+ break;
+ case 'h':
+ print_usage(stdout);
+ case 'V':
+ fprintf(stdout, PROCPS_NG_VERSION);
+ exit(EXIT_SUCCESS);
+ case 'q':
+ sigval.sival_int = strtol_or_err(optarg, _("must be an integer value to be passed with the signal."));
+ use_sigqueue = true;
+ break;
+ case '?':
+ if (!isdigit(optopt)) {
+ xwarnx(_("invalid argument %c"), optopt);
+ print_usage(stderr);
+ } else {
+ /* Special case for signal digit negative
+ * PIDs */
+ pid = (long)('0' - optopt);
+ if (!execute_kill((pid_t) pid, signo, use_sigqueue, sigval))
+ exitvalue = EXIT_FAILURE;
+ exit(exitvalue);
+ }
+ xerrx(EXIT_FAILURE, _("internal error"));
+ default:
+ print_usage(stderr);
+ }
+
+ argc -= optind;
+ argv += optind;
+
+ if (argc < 1)
+ print_usage(stderr);
+
+ for (i = 0; i < argc; i++) {
+ pid = strtol_or_err(argv[i], _("failed to parse argument"));
+ if (!execute_kill((pid_t) pid, signo, use_sigqueue, sigval))
+ continue;
+ error(0, errno, "(%ld)", pid);
+ exitvalue = EXIT_FAILURE;
+ continue;
+ }
+
+ return exitvalue;
+}
diff --git a/src/pgrep.c b/src/pgrep.c
new file mode 100644
index 0000000..d8e57df
--- /dev/null
+++ b/src/pgrep.c
@@ -0,0 +1,1212 @@
+/*
+ * pgrep/pkill -- utilities to filter the process table
+ *
+ * Copyright © 2009-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2013-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2011-2012 Sami Kerola <kerolasa@iki.fi>
+ * Copyright © 2012 Roberto Polli <rpolli@babel.it>
+ * Copyright © 2002-2007 Albert Cahalan
+ * Copyright © 2000 Kjetil Torgrim Homme <kjetilho@ifi.uio.no>
+ *
+ *
+ * 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 2
+ * 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
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <limits.h>
+#include <unistd.h>
+#include <ctype.h>
+#include <string.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <signal.h>
+#include <pwd.h>
+#include <grp.h>
+#include <regex.h>
+#include <errno.h>
+#include <getopt.h>
+#include <stdbool.h>
+#include <time.h>
+
+#ifdef ENABLE_PIDWAIT
+#include <sys/epoll.h>
+#ifndef HAVE_PIDFD_OPEN
+#include <sys/syscall.h>
+#endif /* !HAVE_PIDFD_OPEN */
+#endif
+
+/* EXIT_SUCCESS is 0 */
+/* EXIT_FAILURE is 1 */
+#define EXIT_USAGE 2
+#define EXIT_FATAL 3
+#define XALLOC_EXIT_CODE EXIT_FATAL
+
+#include "c.h"
+#include "fileutils.h"
+#include "nls.h"
+#include "signals.h"
+#include "xalloc.h"
+
+#include "misc.h"
+#include "pids.h"
+
+enum pids_item Items[] = {
+ PIDS_ID_PID,
+ PIDS_ID_PPID,
+ PIDS_ID_PGRP,
+ PIDS_ID_EUID,
+ PIDS_ID_RUID,
+ PIDS_ID_RGID,
+ PIDS_ID_SESSION,
+ PIDS_ID_TGID,
+ PIDS_TICS_BEGAN,
+ PIDS_TTY_NAME,
+ PIDS_CMD,
+ PIDS_CMDLINE,
+ PIDS_STATE,
+ PIDS_TIME_ELAPSED,
+ PIDS_CGROUP_V,
+ PIDS_SIGCATCH
+};
+enum rel_items {
+ EU_PID, EU_PPID, EU_PGRP, EU_EUID, EU_RUID, EU_RGID, EU_SESSION,
+ EU_TGID, EU_STARTTIME, EU_TTYNAME, EU_CMD, EU_CMDLINE, EU_STA, EU_ELAPSED,
+ EU_CGROUP, EU_SIGCATCH
+};
+#define grow_size(x) do { \
+ if ((x) < 0 || (size_t)(x) >= INT_MAX / 5 / sizeof(struct el)) \
+ xerrx(EXIT_FAILURE, _("integer overflow")); \
+ (x) = (x) * 5 / 4 + 4; \
+} while (0)
+
+static enum {
+ PGREP = 0,
+ PKILL,
+#ifdef ENABLE_PIDWAIT
+ PIDWAIT,
+#endif
+} prog_mode;
+
+struct el {
+ long num;
+ char * str;
+};
+
+/* User supplied arguments */
+
+static int opt_full = 0;
+static int opt_long = 0;
+static int opt_longlong = 0;
+static int opt_oldest = 0;
+static int opt_older = 0;
+static int opt_newest = 0;
+static int opt_negate = 0;
+static int opt_exact = 0;
+static int opt_count = 0;
+static int opt_signal = SIGTERM;
+static int opt_lock = 0;
+static int opt_case = 0;
+static int opt_echo = 0;
+static int opt_threads = 0;
+static pid_t opt_ns_pid = 0;
+static bool use_sigqueue = false;
+static bool require_handler = false;
+static union sigval sigval = {0};
+
+static const char *opt_delim = "\n";
+static struct el *opt_pgrp = NULL;
+static struct el *opt_rgid = NULL;
+static struct el *opt_pid = NULL;
+static struct el *opt_ppid = NULL;
+static struct el *opt_ignore_ancestors = NULL;
+static struct el *opt_sid = NULL;
+static struct el *opt_term = NULL;
+static struct el *opt_euid = NULL;
+static struct el *opt_ruid = NULL;
+static struct el *opt_nslist = NULL;
+static struct el *opt_cgroup = NULL;
+static char *opt_pattern = NULL;
+static char *opt_pidfile = NULL;
+static char *opt_runstates = NULL;
+
+/* by default, all namespaces will be checked */
+static int ns_flags = 0x3f;
+
+static int __attribute__ ((__noreturn__)) usage(int opt)
+{
+ int err = (opt == '?');
+ FILE *fp = err ? stderr : stdout;
+
+ fputs(USAGE_HEADER, fp);
+ fprintf(fp, _(" %s [options] <pattern>\n"), program_invocation_short_name);
+ fputs(USAGE_OPTIONS, fp);
+ switch (prog_mode) {
+ case PGREP:
+ fputs(_(" -d, --delimiter <string> specify output delimiter\n"),fp);
+ fputs(_(" -l, --list-name list PID and process name\n"),fp);
+ fputs(_(" -a, --list-full list PID and full command line\n"),fp);
+ fputs(_(" -v, --inverse negates the matching\n"),fp);
+ fputs(_(" -w, --lightweight list all TID\n"), fp);
+ break;
+ case PKILL:
+ fputs(_(" -<sig> signal to send (either number or name)\n"), fp);
+ fputs(_(" -H, --require-handler match only if signal handler is present\n"), fp);
+ fputs(_(" -q, --queue <value> integer value to be sent with the signal\n"), fp);
+ fputs(_(" -e, --echo display what is killed\n"), fp);
+ break;
+#ifdef ENABLE_PIDWAIT
+ case PIDWAIT:
+ fputs(_(" -e, --echo display PIDs before waiting\n"), fp);
+ break;
+#endif
+ }
+ fputs(_(" -c, --count count of matching processes\n"), fp);
+ fputs(_(" -f, --full use full process name to match\n"), fp);
+ fputs(_(" -g, --pgroup <PGID,...> match listed process group IDs\n"), fp);
+ fputs(_(" -G, --group <GID,...> match real group IDs\n"), fp);
+ fputs(_(" -i, --ignore-case match case insensitively\n"), fp);
+ fputs(_(" -n, --newest select most recently started\n"), fp);
+ fputs(_(" -o, --oldest select least recently started\n"), fp);
+ fputs(_(" -O, --older <seconds> select where older than seconds\n"), fp);
+ fputs(_(" -P, --parent <PPID,...> match only child processes of the given parent\n"), fp);
+ fputs(_(" -s, --session <SID,...> match session IDs\n"), fp);
+ fputs(_(" --signal <sig> signal to send (either number or name)\n"), fp);
+ fputs(_(" -t, --terminal <tty,...> match by controlling terminal\n"), fp);
+ fputs(_(" -u, --euid <ID,...> match by effective IDs\n"), fp);
+ fputs(_(" -U, --uid <ID,...> match by real IDs\n"), fp);
+ fputs(_(" -x, --exact match exactly with the command name\n"), fp);
+ fputs(_(" -F, --pidfile <file> read PIDs from file\n"), fp);
+ fputs(_(" -L, --logpidfile fail if PID file is not locked\n"), fp);
+ fputs(_(" -r, --runstates <state> match runstates [D,S,Z,...]\n"), fp);
+ fputs(_(" -A, --ignore-ancestors exclude our ancestors from results\n"), fp);
+ fputs(_(" --cgroup <grp,...> match by cgroup v2 names\n"), fp);
+ fputs(_(" --ns <PID> match the processes that belong to the same\n"
+ " namespace as <pid>\n"), fp);
+ fputs(_(" --nslist <ns,...> list which namespaces will be considered for\n"
+ " the --ns option.\n"
+ " Available namespaces: ipc, mnt, net, pid, user, uts\n"), fp);
+ fputs(USAGE_SEPARATOR, fp);
+ fputs(USAGE_HELP, fp);
+ fputs(USAGE_VERSION, fp);
+ fprintf(fp, USAGE_MAN_TAIL("pgrep(1)"));
+
+ exit(fp == stderr ? EXIT_USAGE : EXIT_SUCCESS);
+}
+
+static struct el *get_our_ancestors(void)
+{
+#define PIDS_GETINT(e) PIDS_VAL(EU_##e, s_int, stack, info)
+ struct el *list = NULL;
+ int i = 0;
+ int size = 0;
+ int done = 0;
+ pid_t search_pid = getpid();
+ struct pids_stack *stack;
+
+ while (!done) {
+ struct pids_info *info = NULL;
+
+ if (procps_pids_new(&info, Items, 16) < 0)
+ xerrx(EXIT_FATAL, _("Unable to create pid info structure"));
+
+ if (i == size) {
+ grow_size(size);
+ list = xrealloc(list, (1 + size) * sizeof(*list));
+ }
+
+ done = 1;
+ while ((stack = procps_pids_get(info, PIDS_FETCH_TASKS_ONLY))) {
+ if (PIDS_GETINT(PID) == search_pid) {
+ list[++i].num = PIDS_GETINT(PPID);
+ search_pid = list[i].num;
+ done = 0;
+ break;
+ }
+ }
+
+ procps_pids_unref(&info);
+ }
+
+ if (i == 0) {
+ free(list);
+ list = NULL;
+ } else {
+ list[0].num = i;
+ }
+ return list;
+#undef PIDS_GETINT
+}
+
+static struct el *split_list (const char *restrict str, int (*convert)(const char *, struct el *))
+{
+ char *copy;
+ char *ptr;
+ char *sep_pos;
+ int i = 0;
+ int size = 0;
+ struct el *list = NULL;
+
+ if (str[0] == '\0')
+ return NULL;
+
+ copy = xstrdup (str);
+ ptr = copy;
+
+ do {
+ if (i == size) {
+ grow_size(size);
+ /* add 1 because slot zero is a count */
+ list = xrealloc (list, (1 + size) * sizeof *list);
+ }
+ sep_pos = strchr (ptr, ',');
+ if (sep_pos)
+ *sep_pos = 0;
+ /* Use ++i instead of i++ because slot zero is a count */
+ if (list && !convert (ptr, &list[++i]))
+ exit (EXIT_USAGE);
+ if (sep_pos)
+ ptr = sep_pos + 1;
+ } while (sep_pos);
+
+ free (copy);
+ if (!i) {
+ free (list);
+ list = NULL;
+ } else {
+ list[0].num = i;
+ }
+ return list;
+}
+
+/* strict_atol returns a Boolean: TRUE if the input string
+ * contains a plain number, FALSE if there are any non-digits. */
+static int strict_atol (const char *restrict str, long *restrict value)
+{
+ long res = 0;
+ long sign = 1;
+
+ if (*str == '+')
+ ++str;
+ else if (*str == '-') {
+ ++str;
+ sign = -1;
+ }
+
+ for ( ; *str; ++str) {
+ if (! isdigit (*str))
+ return 0;
+ if (res >= LONG_MAX / 10)
+ return 0;
+ res *= 10;
+ if (res >= LONG_MAX - (*str - '0'))
+ return 0;
+ res += *str - '0';
+ }
+ *value = sign * res;
+ return 1;
+}
+
+#include <sys/file.h>
+
+/* We try a read lock. The daemon should have a write lock.
+ * Seen using flock: FreeBSD code */
+static int has_flock(int fd)
+{
+ return flock(fd, LOCK_SH|LOCK_NB)==-1 && errno==EWOULDBLOCK;
+}
+
+/* We try a read lock. The daemon should have a write lock.
+ * Seen using fcntl: libslack */
+static int has_fcntl(int fd)
+{
+ struct flock f; /* seriously, struct flock is for a fnctl lock! */
+ f.l_type = F_RDLCK;
+ f.l_whence = SEEK_SET;
+ f.l_start = 0;
+ f.l_len = 0;
+ return fcntl(fd,F_SETLK,&f)==-1 && (errno==EACCES || errno==EAGAIN);
+}
+
+static struct el *read_pidfile(void)
+{
+ char buf[12];
+ int fd;
+ struct stat sbuf;
+ char *endp;
+ int n, pid;
+ struct el *list = NULL;
+
+ fd = open(opt_pidfile, O_RDONLY|O_NOCTTY|O_NONBLOCK);
+ if(fd<0)
+ goto just_ret;
+ if(fstat(fd,&sbuf) || !S_ISREG(sbuf.st_mode) || sbuf.st_size<1)
+ goto out;
+ /* type of lock, if any, is not standardized on Linux */
+ if(opt_lock && !has_flock(fd) && !has_fcntl(fd))
+ goto out;
+ memset(buf,'\0',sizeof buf);
+ n = read(fd,buf,sizeof buf-1);
+ if (n<1)
+ goto out;
+ pid = strtoul(buf,&endp,10);
+ if(endp<=buf || pid<1 )
+ goto out;
+ if(*endp && !isspace(*endp))
+ goto out;
+ list = xmalloc(2 * sizeof *list);
+ list[0].num = 1;
+ list[1].num = pid;
+out:
+ close(fd);
+just_ret:
+ return list;
+}
+
+static int conv_uid (const char *restrict name, struct el *restrict e)
+{
+ struct passwd *pwd;
+
+ if (strict_atol (name, &e->num))
+ return (1);
+
+ pwd = getpwnam (name);
+ if (pwd == NULL) {
+ xwarnx(_("invalid user name: %s"), name);
+ return 0;
+ }
+ e->num = pwd->pw_uid;
+ return 1;
+}
+
+
+static int conv_gid (const char *restrict name, struct el *restrict e)
+{
+ struct group *grp;
+
+ if (strict_atol (name, &e->num))
+ return 1;
+
+ grp = getgrnam (name);
+ if (grp == NULL) {
+ xwarnx(_("invalid group name: %s"), name);
+ return 0;
+ }
+ e->num = grp->gr_gid;
+ return 1;
+}
+
+
+static int conv_pgrp (const char *restrict name, struct el *restrict e)
+{
+ if (! strict_atol (name, &e->num)) {
+ xwarnx(_("invalid process group: %s"), name);
+ return 0;
+ }
+ if (e->num == 0)
+ e->num = getpgrp ();
+ return 1;
+}
+
+
+static int conv_sid (const char *restrict name, struct el *restrict e)
+{
+ if (! strict_atol (name, &e->num)) {
+ xwarnx(_("invalid session id: %s"), name);
+ return 0;
+ }
+ if (e->num == 0)
+ e->num = getsid (0);
+ return 1;
+}
+
+
+static int conv_num (const char *restrict name, struct el *restrict e)
+{
+ if (! strict_atol (name, &e->num)) {
+ xwarnx(_("not a number: %s"), name);
+ return 0;
+ }
+ return 1;
+}
+
+
+static int conv_str (const char *restrict name, struct el *restrict e)
+{
+ e->str = xstrdup (name);
+ return 1;
+}
+
+
+static int conv_ns (const char *restrict name, struct el *restrict e)
+{
+ int rc = conv_str(name, e);
+ int id;
+
+ ns_flags = 0;
+ id = procps_ns_get_id(name);
+ if (id < 0)
+ return 0;
+ ns_flags |= (1 << id);
+
+ return rc;
+}
+
+static int match_numlist (long value, const struct el *restrict list)
+{
+ int found = 0;
+ if (list != NULL) {
+ int i;
+ for (i = list[0].num; i > 0; i--) {
+ if (list[i].num == value) {
+ found = 1;
+ break;
+ }
+ }
+ }
+ return found;
+}
+
+static unsigned long long unhex (const char *restrict in)
+{
+ unsigned long long ret;
+ char *rem;
+ errno = 0;
+ ret = strtoull(in, &rem, 16);
+ if (errno || *rem != '\0') {
+ xwarnx(_("not a hex string: %s"), in);
+ return 0;
+ }
+ return ret;
+}
+
+static int match_signal_handler (const char *restrict sigcgt, const int signal)
+{
+ return sigcgt && (((1UL << (signal - 1)) & unhex(sigcgt)) != 0);
+}
+
+static int match_strlist (const char *restrict value, const struct el *restrict list)
+{
+ int found = 0;
+ if (list != NULL) {
+ int i;
+ for (i = list[0].num; i > 0; i--) {
+ if (! strcmp (list[i].str, value)) {
+ found = 1;
+ break;
+ }
+ }
+ }
+ return found;
+}
+
+static int match_ns (const int pid,
+ const struct procps_ns *match_ns)
+{
+ struct procps_ns proc_ns;
+ int found = 1;
+ int i;
+
+ if (procps_ns_read_pid(pid, &proc_ns) < 0)
+ xerrx(EXIT_FATAL,
+ _("Unable to read process namespace information"));
+ for (i = 0; i < PROCPS_NS_COUNT; i++) {
+ if (ns_flags & (1 << i)) {
+ if (proc_ns.ns[i] != match_ns->ns[i]) {
+ found = 0;
+ break;
+ }
+ }
+ }
+ return found;
+}
+
+static int cgroup_cmp(const char *restrict cgroup,
+ const char *restrict path)
+{
+ if (cgroup == NULL || path == NULL)
+ return 1;
+ // Cgroup v2 have 0::
+ if (strncmp("0::", cgroup, 3) == 0) {
+ return strcmp(cgroup+3, path);
+ } //might try for cgroup v1 later
+ return 1;
+}
+
+
+static int match_cgroup_list(char **values,
+ const struct el *restrict list)
+{
+ if (list != NULL && values != NULL) {
+ int i, j;
+ for (i = list[0].num; i > 0; i--) {
+ for (j=0; values[j] && values[j][0]; j++) {
+ if (! cgroup_cmp (values[j], list[i].str)) {
+ return 1;
+ }
+ }
+ }
+ }
+ return 0;
+}
+
+static void output_numlist (const struct el *restrict list, int num)
+{
+ int i;
+ const char *delim = opt_delim;
+ for (i = 0; i < num; i++) {
+ if(i+1==num)
+ delim = "\n";
+ printf ("%ld%s", list[i].num, delim);
+ }
+}
+
+static void output_strlist (const struct el *restrict list, int num)
+{
+/* FIXME: escape codes */
+ int i;
+ const char *delim = opt_delim;
+ for (i = 0; i < num; i++) {
+ if(i+1==num)
+ delim = "\n";
+ printf ("%lu %s%s", list[i].num, list[i].str, delim);
+ }
+}
+
+static regex_t * do_regcomp (void)
+{
+ regex_t *preg = NULL;
+
+ if (opt_pattern) {
+ char *re;
+ char errbuf[256];
+ int re_err;
+
+ preg = xmalloc (sizeof (regex_t));
+ if (opt_exact) {
+ re = xmalloc (strlen (opt_pattern) + 5);
+ sprintf (re, "^(%s)$", opt_pattern);
+ } else {
+ re = opt_pattern;
+ }
+
+ re_err = regcomp (preg, re, REG_EXTENDED | REG_NOSUB | opt_case);
+
+ if (opt_exact) free(re);
+
+ if (re_err) {
+ regerror (re_err, preg, errbuf, sizeof(errbuf));
+ xerrx(EXIT_USAGE, _("regex error: %s"), errbuf);
+ }
+ }
+ return preg;
+}
+
+/*
+ * SC_ARG_MAX used to return the maximum size a command line can be
+ * however changes to the kernel mean this can be bigger than we can
+ * alloc. Clamp it to 128kB like xargs and friends do
+ * Should also not be smaller than POSIX_ARG_MAX which is 4096
+ */
+static size_t get_arg_max(void)
+{
+#define MIN_ARG_SIZE 4096u
+#define MAX_ARG_SIZE (128u * 1024u)
+
+ size_t val = sysconf(_SC_ARG_MAX);
+
+ if (val < MIN_ARG_SIZE)
+ val = MIN_ARG_SIZE;
+ if (val > MAX_ARG_SIZE)
+ val = MAX_ARG_SIZE;
+
+ return val;
+}
+
+/*
+ * Check if we have a long simple (non-regex) match
+ * Returns true if the string:
+ * 1) is longer than 15 characters
+ * 2) Doesn't have | or [ which are used by regex
+ * This is not an exhaustive list but catches most instances
+ * It's only used to suppress the warning
+ */
+static bool is_long_match(const char *str)
+{
+ int i, len;
+
+ if (str == NULL)
+ return FALSE;
+ if (15 >= (len = strlen(str)))
+ return FALSE;
+ for (i=0; i<len; i++)
+ if (str[i] == '|' || str[i] == '[')
+ return FALSE;
+ return TRUE;
+}
+static struct el * select_procs (int *num)
+{
+#define PIDS_GETINT(e) PIDS_VAL(EU_ ## e, s_int, stack, info)
+#define PIDS_GETUNT(e) PIDS_VAL(EU_ ## e, u_int, stack, info)
+#define PIDS_GETULL(e) PIDS_VAL(EU_ ## e, ull_int, stack, info)
+#define PIDS_GETSTR(e) PIDS_VAL(EU_ ## e, str, stack, info)
+#define PIDS_GETSCH(e) PIDS_VAL(EU_ ## e, s_ch, stack, info)
+#define PIDS_GETSTV(e) PIDS_VAL(EU_ ## e, strv, stack, info)
+#define PIDS_GETFLT(e) PIDS_VAL(EU_ ## e, real, stack, info)
+ struct pids_info *info=NULL;
+ struct procps_ns nsp;
+ struct pids_stack *stack;
+ unsigned long long saved_start_time; /* for new/old support */
+ int saved_pid = 0; /* for new/old support */
+ int matches = 0;
+ int size = 0;
+ regex_t *preg;
+ pid_t myself = getpid();
+ struct el *list = NULL;
+ long cmdlen = get_arg_max() * sizeof(char);
+ char *cmdline = xmalloc(cmdlen);
+ char *cmdsearch = xmalloc(cmdlen);
+ char *cmdoutput = xmalloc(cmdlen);
+ char *task_cmdline;
+ enum pids_fetch_type which;
+
+ preg = do_regcomp();
+
+ if (opt_newest) saved_start_time = 0ULL;
+ else saved_start_time = ~0ULL;
+
+ if (opt_newest) saved_pid = 0;
+ if (opt_oldest) saved_pid = INT_MAX;
+ if (opt_ns_pid && procps_ns_read_pid(opt_ns_pid, &nsp) < 0) {
+ xerrx(EXIT_FATAL,
+ _("Error reading reference namespace information\n"));
+ }
+
+ if (procps_pids_new(&info, Items, 16) < 0)
+ xerrx(EXIT_FATAL,
+ _("Unable to create pid info structure"));
+ which = PIDS_FETCH_TASKS_ONLY;
+ // pkill and pidwait don't support -w, but this is checked in getopt
+ if (opt_threads)
+ which = PIDS_FETCH_THREADS_TOO;
+
+ while ((stack = procps_pids_get(info, which))) {
+ int match = 1;
+
+ if (PIDS_GETINT(PID) == myself)
+ continue;
+ else if (opt_ignore_ancestors && match_numlist(PIDS_GETINT(PID), opt_ignore_ancestors))
+ continue;
+ else if (opt_newest && PIDS_GETULL(STARTTIME) < saved_start_time)
+ match = 0;
+ else if (opt_oldest && PIDS_GETULL(STARTTIME) > saved_start_time)
+ match = 0;
+ else if (opt_ppid && ! match_numlist(PIDS_GETINT(PPID), opt_ppid))
+ match = 0;
+ else if (opt_pid && ! match_numlist (PIDS_GETINT(TGID), opt_pid))
+ match = 0;
+ else if (opt_pgrp && ! match_numlist (PIDS_GETINT(PGRP), opt_pgrp))
+ match = 0;
+ else if (opt_euid && ! match_numlist (PIDS_GETUNT(EUID), opt_euid))
+ match = 0;
+ else if (opt_ruid && ! match_numlist (PIDS_GETUNT(RUID), opt_ruid))
+ match = 0;
+ else if (opt_rgid && ! match_numlist (PIDS_GETUNT(RGID), opt_rgid))
+ match = 0;
+ else if (opt_sid && ! match_numlist (PIDS_GETINT(SESSION), opt_sid))
+ match = 0;
+ else if (opt_ns_pid && ! match_ns (PIDS_GETINT(PID), &nsp))
+ match = 0;
+ else if (opt_older && (int)PIDS_GETFLT(ELAPSED) < opt_older)
+ match = 0;
+ else if (opt_term && ! match_strlist(PIDS_GETSTR(TTYNAME), opt_term))
+ match = 0;
+ else if (opt_runstates && ! strchr(opt_runstates, PIDS_GETSCH(STA)))
+ match = 0;
+ else if (opt_cgroup && ! match_cgroup_list (PIDS_GETSTV(CGROUP), opt_cgroup))
+ match = 0;
+ else if (require_handler && ! match_signal_handler (PIDS_GETSTR(SIGCATCH), opt_signal))
+ match = 0;
+
+ task_cmdline = PIDS_GETSTR(CMDLINE);
+
+ if (opt_long || opt_longlong || (match && opt_pattern)) {
+ if (opt_longlong)
+ strncpy (cmdoutput, task_cmdline, cmdlen -1);
+ else
+ strncpy (cmdoutput, PIDS_GETSTR(CMD), cmdlen -1);
+ cmdoutput[cmdlen - 1] = '\0';
+ }
+
+ if (match && opt_pattern) {
+ if (opt_full)
+ strncpy (cmdsearch, task_cmdline, cmdlen -1);
+ else
+ strncpy (cmdsearch, PIDS_GETSTR(CMD), cmdlen -1);
+ cmdsearch[cmdlen - 1] = '\0';
+
+ if (regexec (preg, cmdsearch, 0, NULL, 0) != 0)
+ match = 0;
+ }
+
+ if (match ^ opt_negate) { /* Exclusive OR is neat */
+ if (opt_newest) {
+ if (saved_start_time == PIDS_GETULL(STARTTIME) &&
+ saved_pid > PIDS_GETINT(PID))
+ continue;
+ saved_start_time = PIDS_GETULL(STARTTIME);
+ saved_pid = PIDS_GETINT(PID);
+ matches = 0;
+ }
+ if (opt_oldest) {
+ if (saved_start_time == PIDS_GETULL(STARTTIME) &&
+ saved_pid < PIDS_GETINT(PID))
+ continue;
+ saved_start_time = PIDS_GETULL(STARTTIME);
+ saved_pid = PIDS_GETINT(PID);
+ matches = 0;
+ }
+ if (matches == size) {
+ grow_size(size);
+ list = xrealloc(list, size * sizeof *list);
+ }
+ if (list && (opt_long || opt_longlong || opt_echo)) {
+ list[matches].num = PIDS_GETINT(PID);
+ list[matches++].str = xstrdup (cmdoutput);
+ } else if (list) {
+ list[matches++].num = PIDS_GETINT(PID);
+ } else {
+ xerrx(EXIT_FATAL, _("internal error"));
+ }
+ }
+ }
+ procps_pids_unref(&info);
+ free(cmdline);
+ free(cmdsearch);
+ free(cmdoutput);
+
+ if (preg) {
+ regfree(preg);
+ free(preg);
+ }
+
+ *num = matches;
+
+ if ((!matches) && (!opt_full) && is_long_match(opt_pattern))
+ xwarnx(_("pattern that searches for process name longer than 15 characters will result in zero matches\n"
+ "Try `%s -f' option to match against the complete command line."),
+ program_invocation_short_name);
+ return list;
+#undef PIDS_GETINT
+#undef PIDS_GETUNT
+#undef PIDS_GETULL
+#undef PIDS_GETSTR
+#undef PIDS_GETSTV
+}
+
+static int signal_option(int *argc, char **argv)
+{
+ int sig;
+ int i;
+ for (i = 1; i < *argc; i++) {
+ if (argv[i][0] == '-') {
+ sig = signal_name_to_number(argv[i] + 1);
+ if (-1 < sig) {
+ memmove(argv + i, argv + i + 1,
+ sizeof(char *) * (*argc - i));
+ (*argc)--;
+ return sig;
+ }
+ }
+ }
+ return -1;
+}
+
+#if defined(ENABLE_PIDWAIT) && !defined(HAVE_PIDFD_OPEN)
+static int pidfd_open (pid_t pid, unsigned int flags)
+{
+ return syscall(__NR_pidfd_open, pid, flags);
+}
+#endif
+
+static void parse_opts (int argc, char **argv)
+{
+ char opts[64] = "";
+ int opt;
+ int criteria_count = 0;
+
+ enum {
+ SIGNAL_OPTION = CHAR_MAX + 1,
+ NS_OPTION,
+ NSLIST_OPTION,
+ CGROUP_OPTION,
+ };
+ static const struct option longopts[] = {
+ {"signal", required_argument, NULL, SIGNAL_OPTION},
+ {"ignore-ancestors", no_argument, NULL, 'A'},
+ {"require-handler", no_argument, NULL, 'H'},
+ {"count", no_argument, NULL, 'c'},
+ {"cgroup", required_argument, NULL, CGROUP_OPTION},
+ {"delimiter", required_argument, NULL, 'd'},
+ {"list-name", no_argument, NULL, 'l'},
+ {"list-full", no_argument, NULL, 'a'},
+ {"full", no_argument, NULL, 'f'},
+ {"pgroup", required_argument, NULL, 'g'},
+ {"group", required_argument, NULL, 'G'},
+ {"ignore-case", no_argument, NULL, 'i'},
+ {"newest", no_argument, NULL, 'n'},
+ {"oldest", no_argument, NULL, 'o'},
+ {"older", required_argument, NULL, 'O'},
+ {"parent", required_argument, NULL, 'P'},
+ {"session", required_argument, NULL, 's'},
+ {"terminal", required_argument, NULL, 't'},
+ {"euid", required_argument, NULL, 'u'},
+ {"uid", required_argument, NULL, 'U'},
+ {"inverse", no_argument, NULL, 'v'},
+ {"lightweight", no_argument, NULL, 'w'},
+ {"exact", no_argument, NULL, 'x'},
+ {"pidfile", required_argument, NULL, 'F'},
+ {"logpidfile", no_argument, NULL, 'L'},
+ {"echo", no_argument, NULL, 'e'},
+ {"ns", required_argument, NULL, NS_OPTION},
+ {"nslist", required_argument, NULL, NSLIST_OPTION},
+ {"queue", required_argument, NULL, 'q'},
+ {"runstates", required_argument, NULL, 'r'},
+ {"help", no_argument, NULL, 'h'},
+ {"version", no_argument, NULL, 'V'},
+ {NULL, 0, NULL, 0}
+ };
+
+
+#ifdef ENABLE_PIDWAIT
+ if (strcmp (program_invocation_short_name, "pidwait") == 0 ||
+ strcmp (program_invocation_short_name, "lt-pidwait") == 0) {
+ prog_mode = PIDWAIT;
+ strcat (opts, "e");
+ } else
+#endif
+ if (strcmp (program_invocation_short_name, "pkill") == 0 ||
+ strcmp (program_invocation_short_name, "lt-pkill") == 0) {
+ int sig;
+ prog_mode = PKILL;
+ sig = signal_option(&argc, argv);
+ if (-1 < sig)
+ opt_signal = sig;
+ strcat (opts, "eq:");
+ } else {
+ strcat (opts, "lad:vw");
+ prog_mode = PGREP;
+ }
+
+ strcat (opts, "LF:cfinoxP:O:AHg:s:u:U:G:t:r:?Vh");
+
+ while ((opt = getopt_long (argc, argv, opts, longopts, NULL)) != -1) {
+ switch (opt) {
+ case SIGNAL_OPTION:
+ opt_signal = signal_name_to_number (optarg);
+ if (opt_signal == -1) {
+ if (isdigit (optarg[0]))
+ opt_signal = atoi (optarg);
+ else {
+ fprintf(stderr, _("Unknown signal \"%s\"."), optarg);
+ usage('?');
+ }
+ }
+ break;
+ case 'e':
+ opt_echo = 1;
+ break;
+/* case 'D': / * FreeBSD: print info about non-matches for debugging * /
+ * break; */
+ case 'F': /* FreeBSD: the arg is a file containing a PID to match */
+ free(opt_pidfile);
+ opt_pidfile = xstrdup (optarg);
+ ++criteria_count;
+ break;
+ case 'G': /* Solaris: match rgid/rgroup */
+ opt_rgid = split_list (optarg, conv_gid);
+ if (opt_rgid == NULL)
+ usage ('?');
+ ++criteria_count;
+ break;
+/* case 'I': / * FreeBSD: require confirmation before killing * /
+ * break; */
+/* case 'J': / * Solaris: match by project ID (name or number) * /
+ * break; */
+ case 'L': /* FreeBSD: fail if pidfile (see -F) not locked */
+ opt_lock++;
+ break;
+/* case 'M': / * FreeBSD: specify core (OS crash dump) file * /
+ * break; */
+/* case 'N': / * FreeBSD: specify alternate namelist file (for us, System.map -- but we don't need it) * /
+ * break; */
+ case 'P': /* Solaris: match by PPID */
+ opt_ppid = split_list (optarg, conv_num);
+ if (opt_ppid == NULL)
+ usage ('?');
+ ++criteria_count;
+ break;
+/* case 'S': / * FreeBSD: don't ignore the built-in kernel tasks * /
+ * break; */
+/* case 'T': / * Solaris: match by "task ID" (probably not a Linux task) * /
+ * break; */
+ case 'U': /* Solaris: match by ruid/rgroup */
+ opt_ruid = split_list (optarg, conv_uid);
+ if (opt_ruid == NULL)
+ usage ('?');
+ ++criteria_count;
+ break;
+ case 'V':
+ printf(PROCPS_NG_VERSION);
+ exit(EXIT_SUCCESS);
+/* case 'c': / * Solaris: match by contract ID * /
+ * break; */
+ case 'c':
+ opt_count = 1;
+ break;
+ case 'd': /* Solaris: change the delimiter */
+ opt_delim = xstrdup (optarg);
+ break;
+ case 'f': /* Solaris: match full process name (as in "ps -f") */
+ opt_full = 1;
+ break;
+ case 'g': /* Solaris: match pgrp */
+ opt_pgrp = split_list (optarg, conv_pgrp);
+ if (opt_pgrp == NULL)
+ usage ('?');
+ ++criteria_count;
+ break;
+ case 'i': /* FreeBSD: ignore case. OpenBSD: withdrawn. See -I. This sucks. */
+ if (opt_case)
+ usage (opt);
+ opt_case = REG_ICASE;
+ break;
+/* case 'j': / * FreeBSD: restricted to the given jail ID * /
+ * break; */
+ case 'l': /* Solaris: long output format (pgrep only) Should require -f for beyond argv[0] maybe? */
+ opt_long = 1;
+ break;
+ case 'a':
+ opt_longlong = 1;
+ break;
+ case 'A':
+ opt_ignore_ancestors = get_our_ancestors();
+ break;
+ case 'n': /* Solaris: match only the newest */
+ if (opt_oldest|opt_negate|opt_newest)
+ usage ('?');
+ opt_newest = 1;
+ ++criteria_count;
+ break;
+ case 'o': /* Solaris: match only the oldest */
+ if (opt_oldest|opt_negate|opt_newest)
+ usage ('?');
+ opt_oldest = 1;
+ ++criteria_count;
+ break;
+ case 'O':
+ opt_older = atoi (optarg);
+ ++criteria_count;
+ break;
+ case 's': /* Solaris: match by session ID -- zero means self */
+ opt_sid = split_list (optarg, conv_sid);
+ if (opt_sid == NULL)
+ usage ('?');
+ ++criteria_count;
+ break;
+ case 't': /* Solaris: match by tty */
+ opt_term = split_list (optarg, conv_str);
+ if (opt_term == NULL)
+ usage ('?');
+ ++criteria_count;
+ break;
+ case 'u': /* Solaris: match by euid/egroup */
+ opt_euid = split_list (optarg, conv_uid);
+ if (opt_euid == NULL)
+ usage ('?');
+ ++criteria_count;
+ break;
+ case 'v': /* Solaris: as in grep, invert the matching (uh... applied after selection I think) */
+ if (opt_oldest|opt_negate|opt_newest)
+ usage ('?');
+ opt_negate = 1;
+ break;
+ case 'w': // Linux: show threads (lightweight process) too
+ opt_threads = 1;
+ break;
+ /* OpenBSD -x, being broken, does a plain string */
+ case 'x': /* Solaris: use ^(regexp)$ in place of regexp (FreeBSD too) */
+ opt_exact = 1;
+ break;
+/* case 'z': / * Solaris: match by zone ID * /
+ * break; */
+ case NS_OPTION:
+ opt_ns_pid = atoi(optarg);
+ if (opt_ns_pid == 0)
+ case 'r': /* match by runstate */
+ opt_runstates = xstrdup (optarg);
+ ++criteria_count;
+ break;
+ case NSLIST_OPTION:
+ opt_nslist = split_list (optarg, conv_ns);
+ if (opt_nslist == NULL)
+ usage ('?');
+ break;
+ case 'q':
+ sigval.sival_int = atoi(optarg);
+ use_sigqueue = true;
+ break;
+ case CGROUP_OPTION:
+ opt_cgroup = split_list (optarg, conv_str);
+ if (opt_cgroup == NULL)
+ usage ('?');
+ ++criteria_count;
+ break;
+ case 'H':
+ require_handler = true;
+ ++criteria_count;
+ break;
+ case 'h':
+ case '?':
+ usage (opt);
+ break;
+ }
+ }
+
+ if(opt_lock && !opt_pidfile)
+ xerrx(EXIT_USAGE, _("-L without -F makes no sense\n"
+ "Try `%s --help' for more information."),
+ program_invocation_short_name);
+
+ if(opt_pidfile){
+ opt_pid = read_pidfile();
+ if(!opt_pid)
+ xerrx(EXIT_FAILURE, _("pidfile not valid\n"
+ "Try `%s --help' for more information."),
+ program_invocation_short_name);
+ }
+
+ if (argc - optind == 1)
+ opt_pattern = argv[optind];
+
+ else if (argc - optind > 1)
+ xerrx(EXIT_USAGE, _("only one pattern can be provided\n"
+ "Try `%s --help' for more information."),
+ program_invocation_short_name);
+ else if (criteria_count == 0)
+ xerrx(EXIT_USAGE, _("no matching criteria specified\n"
+ "Try `%s --help' for more information."),
+ program_invocation_short_name);
+}
+
+inline static int execute_kill(pid_t pid, int sig_num)
+{
+ if (use_sigqueue)
+ return sigqueue(pid, sig_num, sigval);
+ else
+ return kill(pid, sig_num);
+}
+
+int main (int argc, char **argv)
+{
+ struct el *procs;
+ int num;
+ int i;
+ int kill_count = 0;
+#ifdef ENABLE_PIDWAIT
+ int poll_count = 0;
+ int wait_count = 0;
+ int epollfd = epoll_create(1);
+ struct epoll_event ev, events[32];
+#endif
+
+#ifdef HAVE_PROGRAM_INVOCATION_NAME
+ program_invocation_name = program_invocation_short_name;
+#endif
+ setlocale (LC_ALL, "");
+ bindtextdomain(PACKAGE, LOCALEDIR);
+ textdomain(PACKAGE);
+ atexit(close_stdout);
+
+ parse_opts (argc, argv);
+
+ procs = select_procs (&num);
+ switch (prog_mode) {
+ case PGREP:
+ if (opt_count) {
+ fprintf(stdout, "%d\n", num);
+ } else {
+ if (opt_long || opt_longlong)
+ output_strlist (procs,num);
+ else
+ output_numlist (procs,num);
+ }
+ return !num;
+ case PKILL:
+ for (i = 0; i < num; i++) {
+ if (execute_kill (procs[i].num, opt_signal) != -1) {
+ if (opt_echo)
+ printf(_("%s killed (pid %lu)\n"), procs[i].str, procs[i].num);
+ kill_count++;
+ continue;
+ }
+ if (errno==ESRCH)
+ /* gone now, which is OK */
+ continue;
+ xwarn(_("killing pid %ld failed"), procs[i].num);
+ }
+ if (opt_count)
+ fprintf(stdout, "%d\n", num);
+ return !kill_count;
+#ifdef ENABLE_PIDWAIT
+ case PIDWAIT:
+ if (opt_count)
+ fprintf(stdout, "%d\n", num);
+
+ for (i = 0; i < num; i++) {
+ if (opt_echo)
+ printf(_("waiting for %s (pid %lu)\n"), procs[i].str, procs[i].num);
+ int pidfd = pidfd_open(procs[i].num, 0);
+ if (pidfd == -1) {
+ if (errno == ENOSYS)
+ xerrx(EXIT_FAILURE, _("pidfd_open() not implemented in Linux < 5.3"));
+ /* ignore ESRCH, same as pkill */
+ if (errno != ESRCH)
+ xwarn(_("opening pid %ld failed"), procs[i].num);
+ continue;
+ }
+ ev.events = EPOLLIN | EPOLLET;
+ ev.data.fd = pidfd;
+ if (epoll_ctl(epollfd, EPOLL_CTL_ADD, pidfd, &ev) != -1)
+ poll_count++;
+ }
+
+ while (wait_count < poll_count) {
+ int ew = epoll_wait(epollfd, events, sizeof(events)/sizeof(events[0]), -1);
+ if (ew == -1) {
+ if (errno == EINTR)
+ continue;
+ xwarn(_("epoll_wait failed"));
+ }
+ wait_count += ew;
+ }
+
+ return !wait_count;
+#endif
+ }
+ /* Not sure if it is possible to get here */
+ return -1;
+}
diff --git a/src/pidof.c b/src/pidof.c
new file mode 100644
index 0000000..abf9fae
--- /dev/null
+++ b/src/pidof.c
@@ -0,0 +1,420 @@
+/*
+ * pidof.c - Utility for listing pids of running processes
+ *
+ * Copyright © 2013-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2016-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2015-2020 Jan Rybar <jrybar@redhat.com>
+ * Copyright © 2013 Jaromir Capik <jcapik@redhat.com>
+ *
+ * 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 2
+ * 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
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include <stdio.h>
+#include <unistd.h>
+#include <getopt.h>
+#include <limits.h>
+#include <sys/types.h>
+
+#include "c.h"
+#include "fileutils.h"
+#include "nls.h"
+#include "xalloc.h"
+
+#include "pids.h"
+
+
+#define grow_size(x) do { \
+ if ((x) < 0 || (size_t)(x) >= INT_MAX / 5 / sizeof(struct el)) \
+ xerrx(EXIT_FAILURE, _("integer overflow")); \
+ (x) = (x) * 5 / 4 + 1024; \
+} while (0)
+
+#define safe_free(x) if (x) { free(x); x=NULL; }
+
+
+struct el {
+ pid_t pid;
+};
+
+struct el *procs = NULL;
+static int proc_count = 0;
+
+struct el *omitted_procs = NULL;
+static int omit_count = 0;
+
+static char *program = NULL;
+
+/* switch flags */
+static int opt_single_shot = 0; /* -s */
+static int opt_scripts_too = 0; /* -x */
+static int opt_rootdir_check = 0; /* -c */
+static int opt_with_workers = 0; /* -w */
+static int opt_threads = 0; /* -t */
+static int opt_quiet = 0; /* -q */
+
+static char *pidof_root = NULL;
+
+static int __attribute__ ((__noreturn__)) usage(int opt)
+{
+ int err = (opt == '?');
+ FILE *fp = err ? stderr : stdout;
+
+ fputs(USAGE_HEADER, fp);
+ fprintf(fp, _(" %s [options] [program [...]]\n"), program_invocation_short_name);
+ fputs(USAGE_OPTIONS, fp);
+ fputs(_(" -s, --single-shot return one PID only\n"), fp);
+ fputs(_(" -c, --check-root omit processes with different root\n"), fp);
+ fputs(_(" -q, quiet mode, only set the exit code\n"), fp);
+ fputs(_(" -w, --with-workers show kernel workers too\n"), fp);
+ fputs(_(" -x also find shells running the named scripts\n"), fp);
+ fputs(_(" -o, --omit-pid <PID,...> omit processes with PID\n"), fp);
+ fputs(_(" -t, --lightweight list threads too\n"), fp);
+ fputs(_(" -S, --separator SEP use SEP as separator put between PIDs"), fp);
+ fputs(USAGE_SEPARATOR, fp);
+ fputs(USAGE_HELP, fp);
+ fputs(USAGE_VERSION, fp);
+ fprintf(fp, USAGE_MAN_TAIL("pidof(1)"));
+
+ exit(fp == stderr ? EXIT_FAILURE : EXIT_SUCCESS);
+}
+
+
+static int is_omitted (pid_t pid)
+{
+ int i;
+
+ for (i = 0; i < omit_count; i++) {
+ if (pid == omitted_procs[i].pid) return 1;
+ }
+
+ return 0;
+}
+
+
+static char *get_basename (char *filename)
+{
+ char *pos;
+ char *result;
+
+ pos = result = filename;
+ while (*pos != '\0') {
+ if (*(pos++) == '/') result = pos;
+ }
+
+ return result;
+}
+
+
+static char *pid_link (pid_t pid, const char *base_name)
+{
+ char link [1000];
+ char *result;
+ ssize_t path_alloc_size;
+ ssize_t len;
+
+ snprintf(link, sizeof(link), "/proc/%d/%s", pid, base_name);
+
+ len = path_alloc_size = 0;
+ result = NULL;
+ do {
+ grow_size(path_alloc_size);
+ result = xrealloc(result, path_alloc_size);
+
+ if ((len = readlink(link, result, path_alloc_size)) < 0) {
+ len = 0;
+ break;
+ }
+
+ } while (len == path_alloc_size);
+
+ result[len] = '\0';
+
+ return result;
+}
+
+
+static void select_procs (void)
+{
+ enum pids_item items[] = { PIDS_ID_PID, PIDS_CMD, PIDS_CMDLINE_V };
+ enum rel_items { rel_pid, rel_cmd, rel_cmdline };
+ struct pids_info *info = NULL;
+ struct pids_stack *stack;
+ int match;
+ static int size = 0;
+ char *cmd_arg0, *cmd_arg0base;
+ char *cmd_arg1, *cmd_arg1base;
+ char *program_base;
+ char *root_link;
+ char *exe_link;
+ char *exe_link_base;
+
+ /* get the input base name */
+ program_base = get_basename(program);
+
+ procps_pids_new(&info, items, 3);
+
+ exe_link = root_link = NULL;
+ while ((stack = procps_pids_get(info, (opt_threads
+ ? PIDS_FETCH_THREADS_TOO
+ : PIDS_FETCH_TASKS_ONLY)))) {
+ char *p_cmd = PIDS_VAL(rel_cmd, str, stack, info),
+ **p_cmdline = PIDS_VAL(rel_cmdline, strv, stack, info);
+ int tid = PIDS_VAL(rel_pid, s_int, stack, info);
+
+ if (opt_rootdir_check) {
+ /* get the /proc/<pid>/root symlink value */
+ root_link = pid_link(tid, "root");
+ match = !strcmp(pidof_root, root_link);
+ safe_free(root_link);
+
+ if (!match) { /* root check failed */
+ continue;
+ }
+ }
+
+ if (!is_omitted(tid) && ((p_cmdline && *p_cmdline) || opt_with_workers)) {
+
+ cmd_arg0 = (p_cmdline && *p_cmdline) ? *p_cmdline : "\0";
+
+ /* processes starting with '-' are login shells */
+ if (*cmd_arg0 == '-') {
+ cmd_arg0++;
+ }
+
+ /* get the argv0 base name */
+ cmd_arg0base = get_basename(cmd_arg0);
+
+ /* get the /proc/<pid>/exe symlink value */
+ exe_link = pid_link(tid, "exe");
+
+ /* get the exe_link base name */
+ exe_link_base = get_basename(exe_link);
+
+ match = 0;
+
+ if (!strcmp(program, cmd_arg0base) ||
+ !strcmp(program_base, cmd_arg0) ||
+ !strcmp(program, cmd_arg0) ||
+ (opt_with_workers && !strcmp(program, p_cmd)) ||
+ !strcmp(program, exe_link_base) ||
+ !strcmp(program, exe_link))
+ {
+ match = 1;
+
+ } else if (opt_scripts_too && p_cmdline && *(p_cmdline+1)) {
+
+ cmd_arg1 = *(p_cmdline+1);
+
+ /* get the arg1 base name */
+ cmd_arg1base = get_basename(cmd_arg1);
+
+ /* if script, then cmd = argv1, otherwise cmd = argv0 */
+ if (p_cmd &&
+ !strncmp(p_cmd, cmd_arg1base, strlen(p_cmd)) &&
+ (!strcmp(program, cmd_arg1base) ||
+ !strcmp(program_base, cmd_arg1) ||
+ !strcmp(program, cmd_arg1)))
+ {
+ match = 1;
+ }
+ }
+ /* If there is a space in arg0 then process probably has
+ * setproctitle so use the cmdline
+ */
+ if (!match && strchr(cmd_arg0, ' ')) {
+ match = (strcmp(program, p_cmd)==0);
+ }
+
+ safe_free(exe_link);
+
+ if (match) {
+ if (proc_count == size) {
+ grow_size(size);
+ procs = xrealloc(procs, size * (sizeof *procs));
+ }
+ if (procs) {
+ procs[proc_count++].pid = tid;
+ } else {
+ xerrx(EXIT_FAILURE, _("internal error"));
+ }
+ }
+
+ }
+
+ }
+
+ procps_pids_unref(&info);
+}
+
+
+static void add_to_omit_list (char *input_arg)
+{
+ static int omit_size = 0;
+
+ char *omit_str;
+ char *endptr;
+
+ pid_t omit_pid;
+
+ omit_str = NULL;
+ omit_str = strtok(input_arg, ",;:");
+ while (omit_str) {
+
+ if (!strcmp(omit_str,"%PPID")) { /* keeping this %PPID garbage for backward compatibility only */
+ omit_pid = getppid(); /* ... as it can be replaced with $$ in common shells */
+ endptr = omit_str + sizeof("%PPID") - 1;
+ } else {
+ omit_pid = strtoul(omit_str, &endptr, 10);
+ }
+
+ if (*endptr == '\0') {
+ if (omit_count == omit_size) {
+ grow_size(omit_size);
+ omitted_procs = xrealloc(omitted_procs, omit_size * sizeof(*omitted_procs));
+ }
+ if (omitted_procs) {
+ omitted_procs[omit_count++].pid = omit_pid;
+ } else {
+ xerrx(EXIT_FAILURE, _("internal error"));
+ }
+ } else {
+ xwarnx(_("illegal omit pid value (%s)!\n"), omit_str);
+ }
+
+ omit_str = strtok(NULL, ",;:");
+ }
+}
+
+
+
+int main (int argc, char **argv)
+{
+ int opt;
+ signed int i;
+ int found = 0;
+ int first_pid = 1;
+
+ const char *separator = " ";
+ const char *opts = "scnqxwtmo:S:?Vh";
+
+ static const struct option longopts[] = {
+ {"check-root", no_argument, NULL, 'c'},
+ {"single-shot", no_argument, NULL, 's'},
+ {"omit-pid", required_argument, NULL, 'o'},
+ {"separator", required_argument, NULL, 'S'},
+ {"quiet", no_argument, NULL, 'q'},
+ {"with-workers", no_argument, NULL, 'w'},
+ {"lightweight", no_argument, NULL, 't'},
+ {"help", no_argument, NULL, 'h'},
+ {"version", no_argument, NULL, 'V'},
+ {NULL, 0, NULL, 0}
+ };
+
+#ifdef HAVE_PROGRAM_INVOCATION_NAME
+ program_invocation_name = program_invocation_short_name;
+#endif
+ setlocale (LC_ALL, "");
+ bindtextdomain (PACKAGE, LOCALEDIR);
+ textdomain (PACKAGE);
+ atexit (close_stdout);
+
+ /* process command-line options */
+ while ((opt = getopt_long (argc, argv, opts, longopts, NULL)) != -1) {
+ switch (opt) {
+ case 'q':
+ opt_quiet = 1;
+ /* fallthrough */
+ case 's':
+ opt_single_shot = 1;
+ break;
+ case 'o':
+ add_to_omit_list (optarg);
+ break;
+ case 'x':
+ opt_scripts_too = 1;
+ break;
+ case 'w':
+ opt_with_workers = 1;
+ break;
+ case 'c':
+ if (geteuid() == 0) {
+ opt_rootdir_check = 1;
+ safe_free(pidof_root);
+ pidof_root = pid_link(getpid(), "root");
+ }
+ break;
+ case 't': // Linux: show threads (lightweight process) too
+ opt_threads = 1;
+ break;
+ case 'd': /* sysv pidof uses this for S */
+ case 'S':
+ separator = optarg;
+ break;
+ case 'V':
+ printf (PROCPS_NG_VERSION);
+ exit (EXIT_SUCCESS);
+ case 'h':
+ case '?':
+ usage (opt);
+ break;
+ /* compatibility-only switches */
+ case 'n': /* avoiding stat(2) on NFS volumes doesn't make any sense anymore ... */
+ /* ... as this reworked solution does not use stat(2) at all */
+ case 'm': /* omitting relatives with argv[0] & argv[1] matching the argv[0] & argv[1] ...*/
+ /* ... of explicitly omitted PIDs is too 'expensive' and as we don't know */
+ /* ... wheter it is still needed, we won't re-implement it unless ... */
+ /* ... somebody gives us a good reason to do so :) */
+ break;
+ }
+ }
+
+ /* main loop */
+ while (argc - optind) { /* for each program */
+
+ program = argv[optind++];
+
+ if (*program == '\0') continue;
+
+ select_procs(); /* get the list of matching processes */
+
+ if (proc_count) {
+
+ found = 1;
+ for (i = proc_count - 1; i >= 0; i--) { /* and display their PIDs */
+ if (!opt_quiet) {
+ if (first_pid) {
+ first_pid = 0;
+ printf ("%ld", (long) procs[i].pid);
+ } else {
+ printf ("%s%ld", separator, (long) procs[i].pid);
+ }
+ }
+ if (opt_single_shot) break;
+ }
+
+ proc_count = 0;
+ }
+ }
+
+ /* final line feed */
+ if (!opt_quiet && found) printf("\n");
+
+ /* some cleaning */
+ safe_free(procs);
+ safe_free(omitted_procs);
+ safe_free(pidof_root);
+
+ return !found;
+}
diff --git a/src/pmap.c b/src/pmap.c
new file mode 100644
index 0000000..ae57fd2
--- /dev/null
+++ b/src/pmap.c
@@ -0,0 +1,1217 @@
+/*
+ * pmap.c - print process memory mapping
+ *
+ * Copyright © 2010-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2011-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2011-2012 Sami Kerola <kerolasa@iki.fi>
+ * Copyright © 2002-2009 Albert Cahalan
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <getopt.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/ipc.h>
+#include <sys/shm.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <assert.h>
+#include <limits.h>
+
+#include "c.h"
+#include "fileutils.h"
+#include "nls.h"
+#include "xalloc.h"
+
+#include "pids.h"
+
+static struct pids_info *Pids_info;
+
+enum pids_item Pid_items[] = {
+ PIDS_ID_PID, PIDS_ID_TGID,
+ PIDS_CMDLINE, PIDS_ADDR_STACK_START };
+enum rel_items { pid, tgid, cmdline, start_stack };
+
+const char *nls_Address,
+ *nls_Offset,
+ *nls_Device,
+ *nls_Mapping,
+ *nls_Perm,
+ *nls_Inode,
+ *nls_Kbytes,
+ *nls_Mode,
+ *nls_RSS,
+ *nls_Dirty;
+
+static void nls_initialize(void)
+{
+ setlocale (LC_ALL, "");
+ bindtextdomain(PACKAGE, LOCALEDIR);
+ textdomain(PACKAGE);
+
+ /* these are the headings shared across all options,
+ though their widths when output might differ */
+ nls_Address = _("Address");
+ nls_Offset = _("Offset");
+ nls_Device = _("Device");
+ nls_Mapping = _("Mapping");
+
+ /* these headings are used only by the -X/-XX options,
+ and are not derived literally from /proc/#/smaps */
+ nls_Perm = _("Perm");
+ nls_Inode = _("Inode");
+
+ /* these are potentially used for options other than -X/-XX, */
+ nls_Kbytes = _("Kbytes");
+ nls_Mode = _("Mode");
+ nls_RSS = _("RSS");
+ nls_Dirty = _("Dirty");
+}
+
+static int justify_print(const char *str, int width, int right)
+{
+ if (width < 1)
+ puts(str);
+ else {
+ int len = strlen(str);
+ if (width < len) width = len;
+ printf(right ? "%*.*s " : "%-*.*s ", width, width, str);
+ }
+ return width;
+}
+
+static int integer_width(unsigned long number)
+{
+ int result;
+
+ result = !(number > 0);
+ while (number) {
+ result++;
+ number /= 10;
+ }
+
+ return result;
+}
+
+
+static void __attribute__ ((__noreturn__))
+usage(FILE * out)
+{
+ fputs(USAGE_HEADER, out);
+ fprintf(out,
+ _(" %s [options] PID [PID ...]\n"), program_invocation_short_name);
+ fputs(USAGE_OPTIONS, out);
+ fputs(_(" -x, --extended show details\n"), out);
+ fputs(_(" -X show even more details\n"), out);
+ fputs(_(" WARNING: format changes according to /proc/PID/smaps\n"), out);
+ fputs(_(" -XX show everything the kernel provides\n"), out);
+ fputs(_(" -c, --read-rc read the default rc\n"), out);
+ fputs(_(" -C, --read-rc-from=<file> read the rc from file\n"), out);
+ fputs(_(" -n, --create-rc create new default rc\n"), out);
+ fputs(_(" -N, --create-rc-to=<file> create new rc to file\n"), out);
+ fputs(_(" NOTE: pid arguments are not allowed with -n, -N\n"), out);
+ fputs(_(" -d, --device show the device format\n"), out);
+ fputs(_(" -q, --quiet do not display header and footer\n"), out);
+ fputs(_(" -p, --show-path show path in the mapping\n"), out);
+ fputs(_(" -A, --range=<low>[,<high>] limit results to the given range\n"), out);
+ fputs(USAGE_SEPARATOR, out);
+ fputs(USAGE_HELP, out);
+ fputs(USAGE_VERSION, out);
+ fprintf(out, USAGE_MAN_TAIL("pmap(1)"));
+ exit(out == stderr ? EXIT_FAILURE : EXIT_SUCCESS);
+}
+
+static char mapbuf[1024];
+
+static unsigned long range_low;
+static unsigned long range_high = ~0ul;
+
+static int c_option = 0;
+static int C_option = 0;
+static int d_option = 0;
+static int n_option = 0;
+static int N_option = 0;
+static int q_option = 0;
+static int x_option = 0;
+static int X_option = 0;
+
+static int map_desc_showpath;
+
+static unsigned shm_minor = ~0u;
+
+static void discover_shm_minor(void)
+{
+ void *addr;
+ int shmid;
+ char mapbuf_b[256];
+ FILE *fp;
+
+ if ( (fp = fopen("/proc/self/maps", "r")) == NULL)
+ return;
+
+ /* create */
+ shmid = shmget(IPC_PRIVATE, 42, IPC_CREAT | 0666);
+ if (shmid == -1)
+ {
+ /* failed; oh well */
+ fclose(fp);
+ return;
+ }
+ /* attach */
+ addr = shmat(shmid, NULL, SHM_RDONLY);
+ if (addr == (void *)-1)
+ goto out_destroy;
+
+ while (fgets(mapbuf_b, sizeof mapbuf_b, fp)) {
+ char perms[32];
+ /* to clean up unprintables */
+ char *tmp;
+ unsigned long start, end;
+ unsigned long long file_offset, inode;
+ unsigned dev_major, dev_minor;
+ if (sscanf(mapbuf_b, "%lx-%lx %31s %llx %x:%x %llu", &start,
+ &end, perms, &file_offset, &dev_major, &dev_minor, &inode) < 6)
+ continue;
+ tmp = strchr(mapbuf_b, '\n');
+ if (tmp)
+ *tmp = '\0';
+ tmp = mapbuf_b;
+ while (*tmp) {
+ if (!isprint(*tmp))
+ *tmp = '?';
+ tmp++;
+ }
+ if (start > (unsigned long)addr)
+ continue;
+ if (dev_major)
+ continue;
+ if (perms[3] != 's')
+ continue;
+ if (strstr(mapbuf_b, "/SYSV")) {
+ shm_minor = dev_minor;
+ break;
+ }
+ }
+
+ if (shmdt(addr))
+ perror(_("shared memory detach"));
+
+out_destroy:
+ fclose(fp);
+ if (shmctl(shmid, IPC_RMID, NULL) && errno != EINVAL)
+ perror(_("shared memory remove"));
+
+ return;
+}
+
+static const char *mapping_name(struct pids_stack *p, unsigned long addr,
+ unsigned long len, const char *mapbuf_b,
+ unsigned showpath, unsigned dev_major,
+ unsigned dev_minor, unsigned long long inode)
+{
+ const char *cp;
+
+ if (!dev_major && dev_minor == shm_minor && strstr(mapbuf_b, "/SYSV")) {
+ static char shmbuf[64];
+ snprintf(shmbuf, sizeof shmbuf, " [ shmid=0x%llx ]", inode);
+ return shmbuf;
+ }
+
+ cp = strrchr(mapbuf_b, '/');
+ if (cp) {
+ if (showpath)
+ return strchr(mapbuf_b, '/');
+ return cp[1] ? cp + 1 : cp;
+ }
+
+ cp = _(" [ anon ]");
+ if (PIDS_VAL(start_stack, ul_int, p, Pids_info) >= addr
+ && (PIDS_VAL(start_stack, ul_int, p, Pids_info) <= addr + len))
+ cp = _(" [ stack ]");
+ return cp;
+}
+
+
+#define DETAIL_LENGTH 32
+#define DETL "31" /* for format strings */
+#define NUM_LENGTH 21 /* python says: len(str(2**64)) == 20 */
+#define NUML "20" /* for format strings */
+#define VMFLAGS_LENGTH 128 /* 30 2-char space-separated flags == 90+1, but be safe */
+#define VMFL "127" /* for format strings */
+
+struct listnode {
+ char description[DETAIL_LENGTH];
+ char value_str[NUM_LENGTH];
+ unsigned long value;
+ unsigned long total;
+ int max_width;
+ struct listnode *next;
+};
+
+static struct listnode *listhead=NULL, *listtail=NULL, *listnode;
+
+
+struct cnf_listnode {
+ char description[DETAIL_LENGTH];
+ struct cnf_listnode *next;
+};
+
+static struct cnf_listnode *cnf_listhead=NULL, *cnf_listnode;
+
+static int is_unimportant (const char *s)
+{
+ if (strcmp(s, "AnonHugePages") == 0) return 1;
+ if (strcmp(s, "KernelPageSize") == 0) return 1;
+ if (strcmp(s, "MMUPageSize") == 0) return 1;
+ if (strcmp(s, "Shared_Dirty") == 0) return 1;
+ if (strcmp(s, "Private_Dirty") == 0) return 1;
+ if (strcmp(s, "Shared_Clean") == 0) return 1;
+ if (strcmp(s, "Private_Clean") == 0) return 1;
+ if (strcmp(s, "VmFlags") == 0) return 1;
+ return 0;
+}
+
+/* check, whether we want to display the field or not */
+static int is_enabled (const char *s)
+{
+ if (X_option == 1) return !is_unimportant(s);
+
+ if (c_option) { /* taking the list of disabled fields from the rc file */
+
+ for (cnf_listnode = cnf_listhead; cnf_listnode; cnf_listnode = cnf_listnode -> next) {
+ if (!strcmp(s, cnf_listnode -> description)) return 1;
+ }
+ return 0;
+
+ }
+
+ return 1;
+}
+
+
+static void print_extended_maps (FILE *f)
+{
+ char perms[DETAIL_LENGTH], map_desc[128],
+ detail_desc[DETAIL_LENGTH], value_str[NUM_LENGTH],
+ start[NUM_LENGTH], end[NUM_LENGTH],
+ offset[NUM_LENGTH], inode[NUM_LENGTH],
+ dev[64], vmflags[VMFLAGS_LENGTH];
+ int maxw1=0, maxw2=0, maxw3=0, maxw4=0, maxw5=0, maxwv=0;
+ int nfields, firstmapping, footer_gap, i, maxw_;
+ char *ret, *map_basename, c, has_vmflags = 0;
+
+ ret = fgets(mapbuf, sizeof mapbuf, f);
+ firstmapping = 2;
+ while (ret != NULL) {
+ /* === READ MAPPING === */
+ map_desc[0] = '\0';
+ nfields = sscanf(mapbuf,
+ "%"NUML"[0-9a-f]-%"NUML"[0-9a-f] "
+ "%"DETL"s %"NUML"[0-9a-f] "
+ "%63[0-9a-f:] %"NUML"s %127[^\n]",
+ start, end, perms, offset,
+ dev, inode, map_desc);
+ /* Must read at least up to inode, else something has changed! */
+ if (nfields < 6)
+ xerrx(EXIT_FAILURE, _("Unknown format in smaps file!"));
+ /* If line too long we dump everything else. */
+ c = mapbuf[strlen(mapbuf) - 1];
+ while (c != '\n') {
+ fgets(mapbuf, sizeof mapbuf, f);
+ if (!ret || !mapbuf[0])
+ xerrx(EXIT_FAILURE, _("Unknown format in smaps file!"));
+ c = mapbuf[strlen(mapbuf) - 1];
+ }
+
+ /* Store maximum widths for printing nice later */
+ if (strlen(start ) > maxw1) maxw1 = strlen(start);
+ if (strlen(perms ) > maxw2) maxw2 = strlen(perms);
+ if (strlen(offset) > maxw3) maxw3 = strlen(offset);
+ if (strlen(dev ) > maxw4) maxw4 = strlen(dev);
+ if (strlen(inode ) > maxw5) maxw5 = strlen(inode);
+
+ ret = fgets(mapbuf, sizeof mapbuf, f);
+ nfields = ret ? sscanf(mapbuf, "%"DETL"[^:]: %"NUML"[0-9] kB %c",
+ detail_desc, value_str, &c) : 0;
+ listnode = listhead;
+ /* === READ MAPPING DETAILS === */
+ while (ret != NULL && nfields == 2) {
+
+ if (!is_enabled(detail_desc)) goto loop_end;
+
+ /* === CREATE LIST AND FILL description FIELD === */
+ if (listnode == NULL) {
+ assert(firstmapping == 2);
+ listnode = calloc(1, sizeof *listnode);
+ if (listnode == NULL)
+ xerrx(EXIT_FAILURE, _("ERROR: memory allocation failed"));
+
+ if (listhead == NULL) {
+ assert(listtail == NULL);
+ listhead = listnode;
+ } else {
+ listtail->next = listnode;
+ }
+ listtail = listnode;
+ /* listnode was calloc()ed so all fields are already NULL! */
+ strcpy(listnode->description, detail_desc);
+ if (!q_option) listnode->max_width = strlen(detail_desc);
+ else listnode->max_width = 0;
+ } else {
+ /* === LIST EXISTS === */
+ if (strcmp(listnode->description, detail_desc) != 0)
+ xerrx(EXIT_FAILURE, "ERROR: %s %s",
+ _("inconsistent detail field in smaps file, line:\n"),
+ mapbuf);
+ }
+ strcpy(listnode->value_str, value_str);
+ sscanf(value_str, "%lu", &listnode->value);
+ if (firstmapping == 2) {
+ listnode->total += listnode->value;
+ if (q_option) {
+ maxw_ = strlen(listnode->value_str);
+ if (maxw_ > listnode->max_width)
+ listnode->max_width = maxw_;
+ }
+ }
+ listnode = listnode->next;
+loop_end:
+ ret = fgets(mapbuf, sizeof mapbuf, f);
+ nfields = ret ? sscanf(mapbuf, "%"DETL"[^:]: %"NUML"[0-9] kB %c",
+ detail_desc, value_str, &c) : 0;
+ }
+
+ /* === GET VMFLAGS === */
+ nfields = ret ? sscanf(mapbuf, "VmFlags: %"VMFL"[a-z ]", vmflags) : 0;
+ if (nfields == 1) {
+ int len = strlen(vmflags);
+ if (len > 0 && vmflags[len-1] == ' ') vmflags[--len] = '\0';
+ if (len > maxwv) maxwv = len;
+ if (! has_vmflags) has_vmflags = 1;
+ ret = fgets(mapbuf, sizeof mapbuf, f);
+ }
+
+ if (firstmapping == 2) { /* width measurement stage, do not print anything yet */
+ if (ret == NULL) { /* once the end of file is reached ...*/
+ firstmapping = 1; /* ... we reset the file position to the beginning of the file */
+ fseek(f, 0, SEEK_SET); /* ... and repeat the process with printing enabled */
+ ret = fgets(mapbuf, sizeof mapbuf, f); /* this is not ideal and needs to be redesigned one day */
+
+ if (!q_option) {
+ /* calculate width of totals */
+ for (listnode=listhead; listnode!=NULL; listnode=listnode->next) {
+ maxw_ = integer_width(listnode->total);
+ if (maxw_ > listnode->max_width)
+ listnode->max_width = maxw_;
+ }
+ }
+
+ }
+ } else { /* the maximum widths have been measured, we've already reached the printing stage */
+ /* === PRINT THIS MAPPING === */
+
+ /* Print header */
+ if (firstmapping && !q_option) {
+
+ maxw1 = justify_print(nls_Address, maxw1, 1);
+
+ if (is_enabled(nls_Perm))
+ maxw2 = justify_print(nls_Perm, maxw2, 1);
+
+ if (is_enabled(nls_Offset))
+ maxw3 = justify_print(nls_Offset, maxw3, 1);
+
+ if (is_enabled(nls_Device))
+ maxw4 = justify_print(nls_Device, maxw4, 1);
+
+ if (is_enabled(nls_Inode))
+ maxw5 = justify_print(nls_Inode, maxw5, 1);
+
+ for (listnode=listhead; listnode!=NULL; listnode=listnode->next)
+ justify_print(listnode->description, listnode->max_width, 1);
+
+ if (has_vmflags && is_enabled("VmFlags"))
+ maxwv = justify_print("VmFlags", maxwv, 1);
+
+ if (is_enabled(nls_Mapping))
+ justify_print(nls_Mapping, 0, 0);
+ else
+ printf("\n");
+ }
+
+ /* Print data */
+ printf("%*s", maxw1, start); /* Address field is always enabled */
+
+ if (is_enabled(nls_Perm))
+ printf(" %*s", maxw2, perms);
+
+ if (is_enabled(nls_Offset))
+ printf(" %*s", maxw3, offset);
+
+ if (is_enabled(nls_Device))
+ printf(" %*s", maxw4, dev);
+
+ if (is_enabled(nls_Inode))
+ printf(" %*s", maxw5, inode);
+
+ for (listnode=listhead; listnode!=NULL; listnode=listnode->next)
+ printf(" %*s", listnode->max_width, listnode->value_str);
+
+ if (has_vmflags && is_enabled("VmFlags"))
+ printf(" %*s", maxwv, vmflags);
+
+ if (is_enabled(nls_Mapping)) {
+ if (map_desc_showpath) {
+ printf(" %s", map_desc);
+ } else {
+ map_basename = strrchr(map_desc, '/');
+ if (!map_basename) {
+ printf(" %s", map_desc);
+ } else {
+ printf(" %s", map_basename + 1);
+ }
+
+ }
+ }
+
+ printf("\n");
+
+ firstmapping = 0;
+
+ }
+ }
+ /* === PRINT TOTALS === */
+ if (!q_option && listhead!=NULL) { /* footer enabled and non-empty */
+
+ footer_gap = maxw1 + 1; /* Address field is always enabled */
+ if (is_enabled(nls_Perm )) footer_gap += maxw2 + 1;
+ if (is_enabled(nls_Offset)) footer_gap += maxw3 + 1;
+ if (is_enabled(nls_Device)) footer_gap += maxw4 + 1;
+ if (is_enabled(nls_Inode )) footer_gap += maxw5 + 1;
+
+ for (i=0; i<footer_gap; i++) putc(' ', stdout);
+
+ for (listnode=listhead; listnode!=NULL; listnode=listnode->next) {
+ for (i=0; i<listnode->max_width; i++)
+ putc('=', stdout);
+ putc(' ', stdout);
+ }
+
+ putc('\n', stdout);
+
+ for (i=0; i<footer_gap; i++) putc(' ', stdout);
+
+ for (listnode=listhead; listnode!=NULL; listnode=listnode->next) {
+ printf("%*lu ", listnode->max_width, listnode->total);
+ listnode->total = 0;
+ }
+
+ fputs("KB \n", stdout);
+ }
+ /* We don't free() the list, it's used for all PIDs passed as arguments */
+}
+
+ // variable placed here to silence compiler 'uninitialized' warning
+static unsigned long start_To_Avoid_Warning;
+
+static int one_proc (struct pids_stack *p)
+{
+ char buf[32];
+ FILE *fp;
+ unsigned long total_shared = 0ul;
+ unsigned long total_private_readonly = 0ul;
+ unsigned long total_private_writeable = 0ul;
+ unsigned long diff = 0;
+ unsigned long end;
+ char perms[32] = "";
+ const char *cp2 = NULL;
+ unsigned long long rss = 0ull;
+ unsigned long long private_dirty = 0ull;
+ unsigned long long shared_dirty = 0ull;
+ unsigned long long total_rss = 0ull;
+ unsigned long long total_private_dirty = 0ull;
+ unsigned long long total_shared_dirty = 0ull;
+ int maxw1=0, maxw2=0, maxw3=0, maxw4=0, maxw5=0;
+
+ printf("%u: %s\n", PIDS_VAL(tgid, s_int, p, Pids_info), PIDS_VAL(cmdline, str, p, Pids_info));
+
+ if (x_option || X_option || c_option) {
+ snprintf(buf, sizeof buf, "/proc/%u/smaps", PIDS_VAL(tgid, s_int, p, Pids_info));
+ if ((fp = fopen(buf, "r")) == NULL)
+ return 1;
+ } else {
+ snprintf(buf, sizeof buf, "/proc/%u/maps", PIDS_VAL(tgid, s_int, p, Pids_info));
+ if ((fp = fopen(buf, "r")) == NULL)
+ return 1;
+ }
+
+ if (X_option || c_option) {
+ print_extended_maps(fp);
+ fclose(fp);
+ return 0;
+ }
+
+ if (x_option) {
+ maxw1 = 16;
+ if (sizeof(long) == 4) maxw1 = 8;
+ maxw2 = maxw3 = maxw4 = 7;
+ maxw5 = 5;
+ if (!q_option) {
+ maxw1 = justify_print(nls_Address, maxw1, 0);
+ maxw2 = justify_print(nls_Kbytes, maxw2, 1);
+ maxw3 = justify_print(nls_RSS, maxw3, 1);
+ maxw4 = justify_print(nls_Dirty, maxw4, 1);
+ maxw5 = justify_print(nls_Mode, maxw5, 0);
+ justify_print(nls_Mapping, 0, 0);
+ }
+ }
+
+ if (d_option) {
+ maxw1 = 16;
+ if (sizeof(long) == 4) maxw1 = 8;
+ maxw2 = 7;
+ maxw3 = 5;
+ maxw4 = 16;
+ maxw5 = 9;
+ if (!q_option) {
+ maxw1 = justify_print(nls_Address, maxw1, 0);
+ maxw2 = justify_print(nls_Kbytes, maxw2, 1);
+ maxw3 = justify_print(nls_Mode, maxw3, 0);
+ maxw4 = justify_print(nls_Offset, maxw4, 0);
+ maxw5 = justify_print(nls_Device, maxw5, 0);
+ justify_print(nls_Mapping, 0, 0);
+ }
+ }
+
+ while (fgets(mapbuf, sizeof mapbuf, fp)) {
+ /* to clean up unprintables */
+ char *tmp;
+ unsigned long long file_offset, inode;
+ unsigned dev_major, dev_minor;
+ unsigned long long smap_value;
+ char smap_key[21];
+
+ /* hex values are lower case or numeric, keys are upper */
+ if (mapbuf[0] >= 'A' && mapbuf[0] <= 'Z') {
+ /* Its a key */
+ if (sscanf(mapbuf, "%20[^:]: %llu", smap_key, &smap_value) == 2) {
+ if (strcmp("Rss", smap_key) == 0) {
+ rss = smap_value;
+ total_rss += smap_value;
+ continue;
+ }
+ if (strcmp("Shared_Dirty", smap_key) == 0) {
+ shared_dirty = smap_value;
+ total_shared_dirty += smap_value;
+ continue;
+ }
+ if (strcmp("Private_Dirty", smap_key) == 0) {
+ private_dirty = smap_value;
+ total_private_dirty += smap_value;
+ continue;
+ }
+ if (strcmp("Swap", smap_key) == 0) {
+ /* doesn't matter as long as last */
+ if (cp2)
+ printf("%0*lx %*lu %*llu %*llu %*s %s\n",
+ maxw1, start_To_Avoid_Warning,
+ maxw2, (unsigned long)(diff >> 10),
+ maxw3, rss,
+ maxw4, (private_dirty + shared_dirty),
+ maxw5, perms,
+ cp2);
+ /* reset some counters */
+ rss = shared_dirty = private_dirty = 0ull;
+ diff = end = 0;
+ perms[0] = '\0';
+ cp2 = NULL;
+ continue;
+ }
+ }
+ /* Other keys or not a key-value pair */
+ continue;
+ }
+ sscanf(mapbuf, "%lx-%lx %31s %llx %x:%x %llu",
+ &start_To_Avoid_Warning,
+ &end, perms, &file_offset, &dev_major, &dev_minor,
+ &inode);
+
+ if (end - 1 < range_low)
+ continue;
+ if (range_high < start_To_Avoid_Warning)
+ break;
+
+ tmp = strchr(mapbuf, '\n');
+ if (tmp)
+ *tmp = '\0';
+ tmp = mapbuf;
+ while (*tmp) {
+ if (!isprint(*tmp))
+ *tmp = '?';
+ tmp++;
+ }
+
+ diff = end - start_To_Avoid_Warning;
+ if (perms[3] == 's')
+ total_shared += diff;
+ if (perms[3] == 'p') {
+ perms[3] = '-';
+ if (perms[1] == 'w')
+ total_private_writeable += diff;
+ else
+ total_private_readonly += diff;
+ }
+ /* format used by Solaris 9 and procps-3.2.0+ an 'R'
+ * if swap not reserved (MAP_NORESERVE, SysV ISM
+ * shared mem, etc.)
+ */
+ perms[4] = '-';
+ perms[5] = '\0';
+
+ if (x_option) {
+ cp2 =
+ mapping_name(p, start_To_Avoid_Warning, diff, mapbuf, map_desc_showpath, dev_major,
+ dev_minor, inode);
+ /* printed with the keys */
+ continue;
+ }
+ if (d_option) {
+ const char *cp =
+ mapping_name(p, start_To_Avoid_Warning, diff, mapbuf, map_desc_showpath, dev_major,
+ dev_minor, inode);
+ printf("%0*lx %*lu %*s %0*llx %*.*s%03x:%05x %s\n",
+ maxw1, start_To_Avoid_Warning,
+ maxw2, (unsigned long)(diff >> 10),
+ maxw3, perms,
+ maxw4, file_offset,
+ (maxw5-9), (maxw5-9), " ", dev_major, dev_minor,
+ cp);
+ }
+ if (!x_option && !d_option) {
+ const char *cp =
+ mapping_name(p, start_To_Avoid_Warning, diff, mapbuf, map_desc_showpath, dev_major,
+ dev_minor, inode);
+ printf((sizeof(long) == 8)
+ ? "%016lx %6luK %s %s\n"
+ : "%08lx %6luK %s %s\n",
+ start_To_Avoid_Warning, (unsigned long)(diff >> 10), perms, cp);
+ }
+
+ }
+ fclose(fp);
+ if (!q_option) {
+ if (x_option) {
+ if (sizeof(long) == 4)
+ justify_print("--------", maxw1, 0);
+ else
+ justify_print("----------------", maxw1, 0);
+ justify_print("-------", maxw2, 1);
+ justify_print("-------", maxw3, 1);
+ justify_print("-------", maxw4, 1);
+ printf("\n");
+
+ printf("%-*s ", maxw1, _("total kB"));
+ printf("%*ld %*llu %*llu\n",
+ maxw2, (total_shared +
+ total_private_writeable +
+ total_private_readonly) >> 10,
+ maxw3, total_rss,
+ maxw4, (total_shared_dirty +
+ total_private_dirty));
+ }
+ if (d_option) {
+ printf
+ (_("mapped: %ldK writeable/private: %ldK shared: %ldK\n"),
+ (total_shared + total_private_writeable +
+ total_private_readonly) >> 10,
+ total_private_writeable >> 10, total_shared >> 10);
+ }
+ if (!x_option && !d_option) {
+ if (sizeof(long) == 8)
+ /* Translation Hint: keep total string length
+ * as 24 characters. Adjust %16 if needed*/
+ printf(_(" total %16ldK\n"),
+ (total_shared + total_private_writeable +
+ total_private_readonly) >> 10);
+ else
+ /* Translation Hint: keep total string length
+ * as 16 characters. Adjust %8 if needed*/
+ printf(_(" total %8ldK\n"),
+ (total_shared + total_private_writeable +
+ total_private_readonly) >> 10);
+ }
+ }
+
+ return 0;
+}
+
+static void range_arguments(const char *optarg)
+{
+ char *buf, *arg1, *arg2;
+
+ if ((buf = xstrdup(optarg)) == NULL) {
+ xerrx(EXIT_FAILURE, "%s: '%s'", _("failed to parse argument"),
+ (optarg?optarg:"(null)"));
+ }
+ arg1 = buf;
+ arg2 = strchr(arg1, ',');
+ if (arg2)
+ *arg2++ = '\0';
+ else
+ arg2 = arg1;
+ if (arg1[0] != '\0')
+ range_low = strtoul(arg1, &arg1, 16);
+ if (arg2[0] != '\0')
+ range_high = strtoul(arg2, &arg2, 16);
+ if (*arg1 || *arg2) {
+ free(buf);
+ xerrx(EXIT_FAILURE, "%s: '%s'", _("failed to parse argument"),
+ optarg);
+ }
+ free(buf);
+}
+
+
+#define MAX_CNF_LINE_LEN 1024
+
+#define SECTION_ID_NONE 0
+#define SECTION_ID_UNSUPPORTED 1
+
+#define SECTION_STR_FIELDS_DISPLAY "[Fields Display]"
+#define SECTION_STR_FIELDS_DISPLAY_LEN (sizeof(SECTION_STR_FIELDS_DISPLAY) - 1)
+#define SECTION_ID_FIELDS_DISPLAY 2
+
+#define SECTION_STR_MAPPING "[Mapping]"
+#define SECTION_STR_MAPPING_LEN (sizeof(SECTION_STR_MAPPING) - 1)
+#define SECTION_ID_MAPPING 3
+
+static int config_read (char *rc_filename)
+{
+ FILE *f;
+ char line_buf[MAX_CNF_LINE_LEN + 1];
+ char tmp_buf [MAX_CNF_LINE_LEN + 1];
+ char *trimmed;
+ int length;
+ char *tail, *token;
+ int line_cnt, section_id;
+
+ f = fopen(rc_filename, "r");
+
+ if (!f) return 0; /* can't open the file for reading */
+
+ line_cnt = 0;
+ section_id = SECTION_ID_NONE;
+
+ while (fgets (line_buf, MAX_CNF_LINE_LEN + 1, f)) {
+
+ line_cnt++;
+
+ /* get rid of the LF char */
+ length = strlen(line_buf);
+ if (length > 0 && line_buf[length - 1] == '\n') {
+ line_buf[length - 1] = '\0';
+ } else if (length == MAX_CNF_LINE_LEN) { /* no LF char -> line too long */
+ xwarnx(_("config line too long - line %d"), line_cnt);
+ /* ignoring the tail */
+ while (fgets (tmp_buf, MAX_CNF_LINE_LEN + 1, f) &&
+ (length = strlen(tmp_buf))>0 &&
+ tmp_buf[length - 1] != '\n') ;
+ }
+
+ /* trim leading whitespaces */
+ trimmed = line_buf;
+ while (*trimmed == ' ' || *trimmed == '\t') trimmed++;
+
+ /* skip comments and empty lines */
+ if (*trimmed == '#' || *trimmed == '\0') continue;
+
+ if (*trimmed == '[') { /* section */
+ if (!strncmp(trimmed, SECTION_STR_FIELDS_DISPLAY, SECTION_STR_FIELDS_DISPLAY_LEN)) {
+ trimmed += SECTION_STR_FIELDS_DISPLAY_LEN;
+ section_id = SECTION_ID_FIELDS_DISPLAY;
+ } else if (!strncmp(trimmed, SECTION_STR_MAPPING, SECTION_STR_MAPPING_LEN)) {
+ trimmed += SECTION_STR_MAPPING_LEN;
+ section_id = SECTION_ID_MAPPING;
+ } else {
+ while (*trimmed != ']' && *trimmed != '\0') trimmed++;
+ if (*trimmed == ']') {
+ section_id = SECTION_ID_UNSUPPORTED;
+ xwarnx(_("unsupported section found in the config - line %d"), line_cnt);
+ trimmed++;
+ } else {
+ xwarnx(_("syntax error found in the config - line %d"), line_cnt);
+ }
+ }
+
+ /* trim trailing whitespaces */
+ while (*trimmed == ' ' || *trimmed == '\t') trimmed++;
+
+ /* skip comments and empty tails */
+ if (*trimmed == '#' || *trimmed == '\0') continue;
+
+ /* anything else found on the section line ??? */
+ xwarnx(_("syntax error found in the config - line %d"), line_cnt);
+ }
+
+ switch (section_id) {
+ case SECTION_ID_FIELDS_DISPLAY:
+ token = strtok (trimmed, " \t");
+
+ if (token) {
+ tail = strtok (NULL, " \t");
+
+ if (tail && *tail != '#') {
+ xwarnx(_("syntax error found in the config - line %d"), line_cnt);
+ }
+
+ /* add the field in the list */
+ if (!(cnf_listnode = calloc(1, sizeof *cnf_listnode))) {
+ xwarnx(_("memory allocation failed"));
+ fclose(f);
+ return 0;
+ }
+ snprintf(cnf_listnode -> description, sizeof(cnf_listnode -> description), "%s", token);
+ cnf_listnode -> next = cnf_listhead;
+ cnf_listhead = cnf_listnode;
+ }
+
+ break;
+
+ case SECTION_ID_MAPPING:
+ token = strtok (trimmed, " \t");
+
+ if (token) {
+ tail = strtok (NULL, " \t");
+
+ if (tail && *tail != '#') {
+ xwarnx(_("syntax error found in the config - line %d"), line_cnt);
+ }
+
+ if (!strcmp(token,"ShowPath")) map_desc_showpath = !map_desc_showpath;
+ }
+
+ break;
+
+ case SECTION_ID_UNSUPPORTED:
+ break; /* ignore the content */
+
+ default:
+ xwarnx(_("syntax error found in the config - line %d"), line_cnt);
+ }
+ }
+
+ fclose(f);
+
+ return 1;
+}
+
+
+static int config_create (const char *rc_filename)
+{
+ FILE *f;
+
+ if (rc_filename == NULL)
+ return 0;
+
+ /* check if rc exists */
+ f = fopen(rc_filename, "r");
+
+ if (f) { /* file exists ... let user to delete/remove it first */
+ fclose(f);
+ xwarnx(_("the file already exists - delete or rename it first"));
+ return 0;
+ }
+
+ /* file doesn't exist */
+
+ f = fopen(rc_filename, "w");
+
+ if (!f) return 0; /* can't open the file for writing */
+
+ /* current rc template, might change in the future */
+ fprintf(f,"# pmap's Config File\n");
+ fprintf(f,"\n");
+ fprintf(f,"# All the entries are case sensitive.\n");
+ fprintf(f,"# Unsupported entries are ignored!\n");
+ fprintf(f,"\n");
+ fprintf(f,"[Fields Display]\n");
+ fprintf(f,"\n");
+ fprintf(f,"# To enable a field uncomment its entry\n");
+ fprintf(f,"\n");
+ fprintf(f,"#%s\n", nls_Perm);
+ fprintf(f,"#%s\n", nls_Offset);
+ fprintf(f,"#%s\n", nls_Device);
+ fprintf(f,"#%s\n", nls_Inode);
+ fprintf(f,"#Size\n");
+ fprintf(f,"#Rss\n");
+ fprintf(f,"#Pss\n");
+ fprintf(f,"#Shared_Clean\n");
+ fprintf(f,"#Shared_Dirty\n");
+ fprintf(f,"#Private_Clean\n");
+ fprintf(f,"#Private_Dirty\n");
+ fprintf(f,"#Referenced\n");
+ fprintf(f,"#Anonymous\n");
+ fprintf(f,"#AnonHugePages\n");
+ fprintf(f,"#Swap\n");
+ fprintf(f,"#KernelPageSize\n");
+ fprintf(f,"#MMUPageSize\n");
+ fprintf(f,"#Locked\n");
+ fprintf(f,"#VmFlags\n");
+ fprintf(f,"#%s\n", nls_Mapping);
+ fprintf(f,"\n");
+ fprintf(f,"\n");
+ fprintf(f,"[Mapping]\n");
+ fprintf(f,"\n");
+ fprintf(f,"# to show paths in the mapping column uncomment the following line\n");
+ fprintf(f,"#ShowPath\n");
+ fprintf(f,"\n");
+
+ fclose(f);
+
+ return 1;
+}
+
+
+/* returns rc filename based on the program_invocation_short_name */
+static char *get_default_rc_filename(void)
+{
+ char *rc_filename;
+ int rc_filename_len;
+ const char *homedir;
+
+ homedir = getenv("HOME");
+ if (!homedir) {
+ xwarnx(_("HOME variable undefined"));
+ return NULL;
+ }
+
+ rc_filename_len = snprintf(NULL, 0, "%s/.%src", homedir, program_invocation_short_name);
+
+ rc_filename = (char *) calloc (1, rc_filename_len + 1);
+ if (!rc_filename) {
+ xwarnx(_("memory allocation failed"));
+ return NULL;
+ }
+
+ snprintf(rc_filename, rc_filename_len + 1, "%s/.%src", homedir, program_invocation_short_name);
+
+ return rc_filename;
+}
+
+
+int main(int argc, char **argv)
+{
+ struct pids_fetch *pids_fetch;
+ unsigned *pidlist;
+ int reap_count, user_count;
+ int ret = 0, c, conf_ret;
+ char *rc_filename = NULL;
+
+ static const struct option longopts[] = {
+ {"extended", no_argument, NULL, 'x'},
+ {"device", no_argument, NULL, 'd'},
+ {"quiet", no_argument, NULL, 'q'},
+ {"range", required_argument, NULL, 'A'},
+ {"help", no_argument, NULL, 'h'},
+ {"version", no_argument, NULL, 'V'},
+ {"read-rc", no_argument, NULL, 'c'},
+ {"read-rc-from", required_argument, NULL, 'C'},
+ {"create-rc", no_argument, NULL, 'n'},
+ {"create-rc-to", required_argument, NULL, 'N'},
+ {"show-path", no_argument, NULL, 'p'},
+ {NULL, 0, NULL, 0}
+ };
+
+#ifdef HAVE_PROGRAM_INVOCATION_NAME
+ program_invocation_name = program_invocation_short_name;
+#endif
+ nls_initialize();
+ atexit(close_stdout);
+
+ if (argc < 2)
+ usage(stderr);
+
+ while ((c = getopt_long(argc, argv, "xXrdqA:hVcC:nN:p", longopts, NULL)) != -1)
+ switch (c) {
+ case 'x':
+ x_option = 1;
+ break;
+ case 'X':
+ X_option++;
+ break;
+ case 'r':
+ xwarnx(_("option -r is ignored as SunOS compatibility"));
+ break;
+ case 'd':
+ d_option = 1;
+ break;
+ case 'q':
+ q_option = 1;
+ break;
+ case 'A':
+ range_arguments(optarg);
+ break;
+ case 'h':
+ usage(stdout);
+ case 'V':
+ printf(PROCPS_NG_VERSION);
+ return EXIT_SUCCESS;
+ case 'c':
+ c_option = 1;
+ break;
+ case 'C':
+ C_option = 1;
+ rc_filename = optarg;
+ break;
+ case 'n':
+ n_option = 1;
+ break;
+ case 'N':
+ N_option = 1;
+ rc_filename = optarg;
+ break;
+ case 'p':
+ map_desc_showpath = 1;
+ break;
+ case 'a': /* Sun prints anon/swap reservations */
+ case 'F': /* Sun forces hostile ptrace-like grab */
+ case 'l': /* Sun shows unresolved dynamic names */
+ case 'L': /* Sun shows lgroup info */
+ case 's': /* Sun shows page sizes */
+ case 'S': /* Sun shows swap reservations */
+ default:
+ usage(stderr);
+ }
+
+ argc -= optind;
+ argv += optind;
+
+ if (c_option + C_option + d_option + n_option + N_option + x_option + !!X_option > 1)
+ xerrx(EXIT_FAILURE, _("options -c, -C, -d, -n, -N, -x, -X are mutually exclusive"));
+
+ if ((n_option || N_option) && (q_option || map_desc_showpath))
+ xerrx(EXIT_FAILURE, _("options -p, -q are mutually exclusive with -n, -N"));
+
+ if ((n_option || N_option) && argc > 0)
+ xerrx(EXIT_FAILURE, _("too many arguments"));
+
+ if (N_option) {
+ if (config_create(rc_filename)) {
+ xwarnx(_("rc file successfully created, feel free to edit the content"));
+ return (EXIT_SUCCESS);
+ } else {
+ xerrx(EXIT_FAILURE, _("couldn't create the rc file"));
+ }
+ }
+
+ if (n_option) {
+ rc_filename = get_default_rc_filename();
+
+ if (!rc_filename) return(EXIT_FAILURE);
+
+ conf_ret = config_create(rc_filename); free(rc_filename);
+
+ if (conf_ret) {
+ xwarnx(_("~/.%src file successfully created, feel free to edit the content"), program_invocation_short_name);
+ return (EXIT_SUCCESS);
+ } else {
+ xerrx(EXIT_FAILURE, _("couldn't create ~/.%src"), program_invocation_short_name);
+ }
+ }
+
+ if (argc < 1)
+ xerrx(EXIT_FAILURE, _("argument missing"));
+
+ if (C_option) c_option = 1;
+
+ if (c_option) {
+ if (!C_option) rc_filename = get_default_rc_filename();
+
+ if (!rc_filename) return(EXIT_FAILURE);
+
+ conf_ret = config_read(rc_filename);
+
+ if (!conf_ret) {
+ if (C_option) {
+ xerrx(EXIT_FAILURE, _("couldn't read the rc file"));
+ } else {
+ xwarnx(_("couldn't read ~/.%src"), program_invocation_short_name);
+ free(rc_filename);
+ return(EXIT_FAILURE);
+ }
+ }
+ }
+ if ((size_t)argc >= INT_MAX / sizeof(pid_t))
+ xerrx(EXIT_FAILURE, _("too many arguments"));
+ if (procps_pids_new(&Pids_info, Pid_items, 4))
+ xerrx(EXIT_FAILURE, _("library failed pids statistics"));
+ pidlist = xmalloc(sizeof(pid_t) * argc);
+
+ user_count = 0;
+ while (*argv) {
+ char *walk = *argv++;
+ char *endp;
+ unsigned long pid;
+ if (!strncmp("/proc/", walk, 6)) {
+ walk += 6;
+ /* user allowed to do: pmap /proc/PID */
+ if (*walk < '0' || *walk > '9')
+ continue;
+ }
+ if (*walk < '0' || *walk > '9')
+ usage(stderr);
+ pid = strtoul(walk, &endp, 0);
+ if (pid < 1ul || pid > 0x7ffffffful || *endp)
+ usage(stderr);
+ pidlist[user_count++] = pid;
+ }
+
+ discover_shm_minor();
+
+ if (!(pids_fetch = procps_pids_select(Pids_info, pidlist, user_count, PIDS_SELECT_PID)))
+ xerrx(EXIT_FAILURE, _("library failed pids statistics"));
+
+ for (reap_count = 0; reap_count < pids_fetch->counts->total; reap_count++) {
+ ret |= one_proc(pids_fetch->stacks[reap_count]);
+ }
+
+ free(pidlist);
+ procps_pids_unref(&Pids_info);
+
+ /* cleaning the list used for the -c/-X/-XX modes */
+ for (listnode = listhead; listnode != NULL ; ) {
+ listnode = listnode -> next;
+ free(listhead);
+ listhead = listnode;
+ }
+
+ /* cleaning the list used for the -c mode */
+ for (cnf_listnode = cnf_listhead; cnf_listnode != NULL ; ) {
+ cnf_listnode = cnf_listnode -> next;
+ free(cnf_listhead);
+ cnf_listhead = cnf_listnode;
+ }
+
+ if (reap_count < user_count)
+ /* didn't find all processes asked for */
+ ret |= 42;
+ return ret;
+}
diff --git a/src/ps/HACKING b/src/ps/HACKING
new file mode 100644
index 0000000..e7a6b4c
--- /dev/null
+++ b/src/ps/HACKING
@@ -0,0 +1,46 @@
+Warning:
+
+This code must corrctly handle lots of picky little details to meet
+the Unix98 standard while simultaneously being as compatible as
+possible with the original Linux ps. Don't "fix" something without
+considering the impact on all the special-case code. For example,
+the "tty" format _must_ use "TT" as the header, even though the SysV
+output formats _must_ use "TTY".
+
+File overview:
+
+display.c main(), debug code, iterates over processes
+escape.c Does stuff like \202 and &lt; to command and environment.
+global.c Data + code to init it.
+help.c Help message.
+output.c Giant tables and lots of output functions.
+parser.c Initial command parsing.
+select.c want_this_proc() checks a process against flags & lists
+sortformat.c Parses sort & format specifier lists. Picks output format.
+stacktrace.c Debug code, not normally used.
+../proc/* Library used to gather data.
+regression Regression tests that ought to be run.
+common.h Lots of interesting stuff.
+Makefile Makefile
+p Script used to test ps when the library is not installed.
+utf Empty file used to test "ps ut?" unmangling behavior.
+ps.1 Man page.
+
+Operation:
+
+Unless the personality forces BSD parsing, parser.c tries to parse the
+command line as a mixed BSD+SysV+Gnu mess. On failure, BSD parsing is
+attempted. If BSD parsing fails _after_ SysV parsing has been attempted,
+the error message comes from the original SysV parse.
+
+Control goes to sortformat.c, which must pick apart ambiguous options
+like "O". Failure can reset the whole program and set PER_FORCE_BSD,
+which means a second trip through parser.c and sortformat.c.
+
+The choice of output format happens in sortformat.c. There is a switch()
+with all the valid format_flags combinations. The SysV and default
+options are NULL (unless overridden by personality), which causes a
+trip through SysV output format generation hackery. Note that the
+default format always goes through there, even if it is for BSD.
+Formats that came from the switch() (generally BSD, plus overrides)
+get mangled a bit to support various SysV output modifiers.
diff --git a/src/ps/common.h b/src/ps/common.h
new file mode 100644
index 0000000..ea49a03
--- /dev/null
+++ b/src/ps/common.h
@@ -0,0 +1,512 @@
+/*
+ * common.h - shared header file
+ *
+ * Copyright © 2015-2023 Jim Warner <james.warner@comcast.net
+ * Copyright © 2004-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 1998-2002 Albert Cahalan
+ *
+ * This file may be used subject to the terms and conditions of the
+ * GNU Library General Public License Version 2, or any later version
+ * at your option, as published by the Free Software Foundation.
+ * 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 Library General Public License for more details.
+ */
+
+#ifndef PROCPS_PS_H
+#define PROCPS_PS_H
+
+#include <stdbool.h>
+
+#include "nls.h"
+#include "meminfo.h"
+#include "misc.h"
+#include "pids.h"
+#include "stat.h"
+
+// --- <pids> interface begin ||||||||||||||||||||||||||||||||||||||||||||
+// -----------------------------------------------------------------------
+
+// hack to minimize code impact
+#undef proc_t
+#define proc_t struct pids_stack
+
+/* this is for allocation of the Pids_items and represents a compromise.
+ we can't predict how many fields will actually be requested yet there
+ are numerous duplicate format_array entries. here are the statistics:
+ 252 entries in the format_array
+ 82 of those entries are unique
+ 60 equals a former proc_t size
+ in reality, only a small portion of the stack depth will be occupied,
+ and the excess represents storage cost only, not a run-time cpu cost! */
+#define PIDSITEMS 70
+
+/* a 'results stack value' extractor macro
+ where: E=rel enum, T=data type, S=stack */
+#define rSv(E,T,S) PIDS_VAL(rel_ ## E, T, S, Pids_info)
+
+#define namREL(e) rel_ ## e
+#define makEXT(e) extern int namREL(e);
+#define makREL(e) int namREL(e) = -1;
+#define chkREL(e) if (namREL(e) < 0) { \
+ Pids_items[Pids_index] = PIDS_ ## e; \
+ namREL(e) = (Pids_index < PIDSITEMS) ? Pids_index++ : rel_noop; }
+
+#define setREL1(e) { \
+ if (!outbuf) { \
+ chkREL(e) \
+ return 0; \
+ } }
+#define setREL2(e1,e2) { \
+ if (!outbuf) { \
+ chkREL(e1) chkREL(e2) \
+ return 0; \
+ } }
+#define setREL3(e1,e2,e3) { \
+ if (!outbuf) { \
+ chkREL(e1) chkREL(e2) chkREL(e3) \
+ return 0; \
+ } }
+#define setREL4(e1,e2,e3,e4) { \
+ if (!outbuf) { \
+ chkREL(e1) chkREL(e2) chkREL(e3) chkREL(e4) \
+ return 0; \
+ } }
+
+extern struct pids_info *Pids_info;
+extern enum pids_item *Pids_items;
+extern int Pids_index;
+
+// most of these need not be extern, they're unique to output.c
+// (but for future flexibility the easiest path has been taken)
+makEXT(ADDR_CODE_END)
+makEXT(ADDR_CODE_START)
+makEXT(ADDR_CURR_EIP)
+makEXT(ADDR_CURR_ESP)
+makEXT(ADDR_STACK_START)
+makEXT(AUTOGRP_ID)
+makEXT(AUTOGRP_NICE)
+makEXT(CGNAME)
+makEXT(CGROUP)
+makEXT(CMD)
+makEXT(CMDLINE)
+makEXT(ENVIRON)
+makEXT(EXE)
+makEXT(FLAGS)
+makEXT(FLT_MAJ)
+makEXT(FLT_MAJ_C)
+makEXT(FLT_MIN)
+makEXT(FLT_MIN_C)
+makEXT(ID_EGID)
+makEXT(ID_EGROUP)
+makEXT(ID_EUID)
+makEXT(ID_EUSER)
+makEXT(ID_FGID)
+makEXT(ID_FGROUP)
+makEXT(ID_FUID)
+makEXT(ID_FUSER)
+makEXT(ID_LOGIN)
+makEXT(ID_PGRP)
+makEXT(ID_PID)
+makEXT(ID_PPID)
+makEXT(ID_RGID)
+makEXT(ID_RGROUP)
+makEXT(ID_RUID)
+makEXT(ID_RUSER)
+makEXT(ID_SESSION)
+makEXT(ID_SGID)
+makEXT(ID_SGROUP)
+makEXT(ID_SUID)
+makEXT(ID_SUSER)
+makEXT(ID_TGID)
+makEXT(ID_TPGID)
+makEXT(IO_READ_BYTES)
+makEXT(IO_READ_CHARS)
+makEXT(IO_READ_OPS)
+makEXT(IO_WRITE_BYTES)
+makEXT(IO_WRITE_CBYTES)
+makEXT(IO_WRITE_CHARS)
+makEXT(IO_WRITE_OPS)
+makEXT(LXCNAME)
+makEXT(NICE)
+makEXT(NLWP)
+makEXT(NS_CGROUP)
+makEXT(NS_IPC)
+makEXT(NS_MNT)
+makEXT(NS_NET)
+makEXT(NS_PID)
+makEXT(NS_TIME)
+makEXT(NS_USER)
+makEXT(NS_UTS)
+makEXT(OOM_ADJ)
+makEXT(OOM_SCORE)
+makEXT(PRIORITY)
+makEXT(PRIORITY_RT)
+makEXT(PROCESSOR)
+makEXT(PROCESSOR_NODE)
+makEXT(RSS)
+makEXT(RSS_RLIM)
+makEXT(SCHED_CLASS)
+makEXT(SD_MACH)
+makEXT(SD_OUID)
+makEXT(SD_SEAT)
+makEXT(SD_SESS)
+makEXT(SD_SLICE)
+makEXT(SD_UNIT)
+makEXT(SD_UUNIT)
+makEXT(SIGBLOCKED)
+makEXT(SIGCATCH)
+makEXT(SIGIGNORE)
+makEXT(SIGNALS)
+makEXT(SIGPENDING)
+makEXT(SMAP_PRV_TOTAL)
+makEXT(SMAP_PSS)
+makEXT(STATE)
+makEXT(SUPGIDS)
+makEXT(SUPGROUPS)
+makEXT(TICS_ALL)
+makEXT(TICS_ALL_C)
+makEXT(TIME_ALL)
+makEXT(TIME_ELAPSED)
+makEXT(TICS_BEGAN)
+makEXT(TTY)
+makEXT(TTY_NAME)
+makEXT(TTY_NUMBER)
+makEXT(UTILIZATION)
+makEXT(UTILIZATION_C)
+makEXT(VM_DATA)
+makEXT(VM_RSS_LOCKED)
+makEXT(VM_RSS)
+makEXT(VM_SIZE)
+makEXT(VM_STACK)
+makEXT(VSIZE_BYTES)
+makEXT(WCHAN_NAME)
+makEXT(extra)
+makEXT(noop)
+// -----------------------------------------------------------------------
+// --- <pids> interface end ||||||||||||||||||||||||||||||||||||||||||||||
+
+
+#if TRACE
+#define trace(...) fprintf(stderr, __VA_ARGS__)
+#else
+#define trace(...)
+#endif
+
+
+/***************** GENERAL DEFINE ********************/
+
+/* selection list */
+#define SEL_RUID 1
+#define SEL_EUID 2
+#define SEL_SUID 3
+#define SEL_FUID 4
+#define SEL_RGID 5
+#define SEL_EGID 6
+#define SEL_SGID 7
+#define SEL_FGID 8
+#define SEL_PGRP 9
+#define SEL_PID 10
+#define SEL_TTY 11
+#define SEL_SESS 12
+#define SEL_COMM 13
+#define SEL_PPID 14
+#define SEL_PID_QUICK 15
+
+/* Since an enum could be smashed by a #define, it would be bad. */
+#define U98 0 /* Unix98 standard */ /* This must be 0 */
+#define XXX 1 /* Common extension */
+#define DEC 2 /* Digital Unix */
+#define AIX 3 /* AIX */
+#define SCO 4 /* SCO */
+#define LNX 5 /* Linux original :-) */
+#define BSD 6 /* FreeBSD and OpenBSD */
+#define SUN 7 /* SunOS 5 (Solaris) */
+#define HPU 8 /* HP-UX */
+#define SGI 9 /* Irix */
+#define SOE 10 /* IBM's S/390 OpenEdition */
+#define TST 11 /* test code */
+
+/*
+ * Try not to overflow the output buffer:
+ * 32 pages for env+cmd
+ * 64 kB pages on IA-64
+ * plus some slack for other stuff
+ * That is about 8.5 MB on IA-64, or 0.6 MB on i386
+ *
+ * Sadly, current kernels only supply one page of env/command data.
+ * The buffer is now protected with a guard page, and via other means
+ * to avoid hitting the guard page.
+ */
+
+/* output buffer size */
+#define OUTBUF_SIZE (2 * 64*1024)
+
+/******************* PS DEFINE *******************/
+
+// Column flags
+// Justification control for flags field comes first.
+#define CF_JUST_MASK 0x0f
+// CF_AIXHACK 0
+#define CF_USER 1 // left if text, right if numeric
+#define CF_LEFT 2
+#define CF_RIGHT 3
+#define CF_UNLIMITED 4
+#define CF_WCHAN 5 // left if text, right if numeric
+#define CF_SIGNAL 6 // right in 9, or 16 if screen_cols>107
+// Then the other flags
+#define CF_PIDMAX 0x00000010 // react to pid_max
+// Only one allowed; use separate bits to catch errors.
+#define CF_PRINT_THREAD_ONLY 0x10000000
+#define CF_PRINT_PROCESS_ONLY 0x20000000
+#define CF_PRINT_EVERY_TIME 0x40000000
+#define CF_PRINT_AS_NEEDED 0x80000000 // means we have no clue, so assume EVERY TIME
+#define CF_PRINT_MASK 0xf0000000
+
+/* thread_flags */
+#define TF_B_H 0x0001
+#define TF_B_m 0x0002
+#define TF_U_m 0x0004
+#define TF_U_T 0x0008
+#define TF_U_L 0x0010
+#define TF_show_proc 0x0100 // show the summary line
+#define TF_show_task 0x0200 // show the per-thread lines
+#define TF_show_both 0x0400 // distinct proc/task format lists
+#define TF_loose_tasks 0x0800 // let sorting break up task groups (BSDish)
+#define TF_no_sort 0x1000 // don't know if thread-grouping should survive a sort
+#define TF_no_forest 0x2000 // don't see how to do threads w/ forest option
+#define TF_must_use 0x4000 // options only make sense if LWP/SPID column added
+
+/* personality control flags */
+#define PER_BROKEN_o 0x0001
+#define PER_BSD_h 0x0002
+#define PER_BSD_m 0x0004
+#define PER_IRIX_l 0x0008
+#define PER_FORCE_BSD 0x0010
+#define PER_GOOD_o 0x0020
+#define PER_OLD_m 0x0040
+#define PER_NO_DEFAULT_g 0x0080
+#define PER_ZAP_ADDR 0x0100
+#define PER_SANE_USER 0x0200
+#define PER_HPUX_x 0x0400
+#define PER_SVR4_x 0x0800
+#define PER_BSD_COLS 0x1000
+#define PER_UNIX_COLS 0x2000
+
+/* Simple selections by bit mask */
+#define SS_B_x 0x01
+#define SS_B_g 0x02
+#define SS_U_d 0x04
+#define SS_U_a 0x08
+#define SS_B_a 0x10
+
+/* predefined format flags such as: -l -f l u s -j */
+#define FF_Uf 0x0001 /* -f */
+#define FF_Uj 0x0002 /* -j */
+#define FF_Ul 0x0004 /* -l */
+#define FF_Bj 0x0008 /* j */
+#define FF_Bl 0x0010 /* l */
+#define FF_Bs 0x0020 /* s */
+#define FF_Bu 0x0040 /* u */
+#define FF_Bv 0x0080 /* v */
+#define FF_LX 0x0100 /* X */
+#define FF_Lm 0x0200 /* m */ /* overloaded: threads, sort, format */
+#define FF_Fc 0x0400 /* --context */ /* Flask security context format */
+
+/* predefined format modifier flags such as: -l -f l u s -j */
+#define FM_c 0x0001 /* -c */
+#define FM_j 0x0002 /* -j */ /* only set when !sysv_j_format */
+#define FM_y 0x0004 /* -y */
+//#define FM_L 0x0008 /* -L */
+#define FM_P 0x0010 /* -P */
+#define FM_M 0x0020 /* -M */
+//#define FM_T 0x0040 /* -T */
+#define FM_F 0x0080 /* -F */ /* -F also sets the regular -f flags */
+
+/* sorting & formatting */
+/* U,B,G is Unix,BSD,Gnu and then there is the option itself */
+#define SF_U_O 1
+#define SF_U_o 2
+#define SF_B_O 3
+#define SF_B_o 4
+#define SF_B_m 5 /* overloaded: threads, sort, format */
+#define SF_G_sort 6
+#define SF_G_format 7
+
+/* headers */
+#define HEAD_SINGLE 0 /* default, must be 0 */
+#define HEAD_NONE 1
+#define HEAD_MULTI 2
+
+
+/********************** GENERAL TYPEDEF *******************/
+
+/* Other fields that might be useful:
+ *
+ * char *name; user-defined column name (format specification)
+ * int reverse; sorting in reverse (sort specification)
+ *
+ * name in place of u
+ * reverse in place of n
+ */
+
+typedef union sel_union {
+ pid_t pid;
+ pid_t ppid;
+ uid_t uid;
+ gid_t gid;
+ dev_t tty;
+ char cmd[64]; /* this is _not_ \0 terminated */
+} sel_union;
+
+typedef struct selection_node {
+ struct selection_node *next;
+ sel_union *u; /* used if selection type has a list of values */
+ int n; /* used if selection type has a list of values */
+ int typecode;
+} selection_node;
+
+typedef struct sort_node {
+ struct sort_node *next;
+ enum pids_item sr;
+ int (*xe)(char *, proc_t *); // special format_node 'pr' guy
+ enum pids_sort_order reverse;
+ int typecode;
+} sort_node;
+
+typedef struct format_node {
+ struct format_node *next;
+ char *name; /* user can override default name */
+ int (*pr)(char *restrict const outbuf, const proc_t *restrict const pp); // print function
+ int width;
+ int vendor; /* Vendor that invented this */
+ int flags;
+ int typecode;
+} format_node;
+
+typedef struct format_struct {
+ const char *spec; /* format specifier */
+ const char *head; /* default header in the POSIX locale */
+ int (* const pr)(char *restrict const outbuf, const proc_t *restrict const pp); // print function
+ enum pids_item sr;
+ const int width;
+ const int vendor; /* Where does this come from? */
+ const int flags;
+} format_struct;
+
+/* though ps-specific, needed by general file */
+typedef struct macro_struct {
+ const char *spec; /* format specifier */
+ const char *head; /* default header in the POSIX locale */
+} macro_struct;
+
+/**************** PS TYPEDEF ***********************/
+
+typedef struct aix_struct {
+ const int desc; /* 1-character format code */
+ const char *spec; /* format specifier */
+ const char *head; /* default header in the POSIX locale */
+} aix_struct;
+
+typedef struct shortsort_struct {
+ const int desc; /* 1-character format code */
+ const char *spec; /* format specifier */
+} shortsort_struct;
+
+/* Save these options for later: -o o -O O --format --sort */
+typedef struct sf_node {
+ struct sf_node *next; /* next arg */
+ format_node *f_cooked; /* convert each arg alone, then merge */
+ sort_node *s_cooked; /* convert each arg alone, then merge */
+ char *sf;
+ int sf_code;
+} sf_node;
+
+/********************* UNDECIDED GLOBALS **************/
+
+/* output.c */
+extern void show_one_proc(const proc_t *restrict const p, const format_node *restrict fmt);
+extern void print_format_specifiers(void);
+extern const aix_struct *search_aix_array(const int findme);
+extern const shortsort_struct *search_shortsort_array(const int findme);
+extern const format_struct *search_format_array(const char *findme);
+extern const macro_struct *search_macro_array(const char *findme);
+extern void init_output(void);
+extern int pr_nop(char *restrict const outbuf, const proc_t *restrict const pp);
+
+/* global.c */
+extern void reset_global(void);
+
+/* global.c */
+extern int all_processes;
+extern const char *bsd_j_format;
+extern const char *bsd_l_format;
+extern const char *bsd_s_format;
+extern const char *bsd_u_format;
+extern const char *bsd_v_format;
+extern int bsd_c_option;
+extern int bsd_e_option;
+extern uid_t cached_euid;
+extern int cached_tty;
+extern char forest_prefix[4 * 32*1024 + 100];
+extern int forest_type;
+extern unsigned format_flags; /* -l -f l u s -j... */
+extern format_node *format_list; /* digested formatting options */
+extern unsigned format_modifiers; /* -c -j -y -P -L... */
+extern int header_gap;
+extern int header_type; /* none, single, multi... */
+extern int include_dead_children;
+extern int lines_to_next_header;
+extern char *lstart_format;
+extern int max_line_width;
+extern int negate_selection;
+extern int page_size; // "int" for math reasons?
+extern unsigned personality;
+extern int prefer_bsd_defaults;
+extern int running_only;
+extern int screen_cols;
+extern int screen_rows;
+extern selection_node *selection_list;
+extern unsigned simple_select;
+extern sort_node *sort_list;
+extern const char *sysv_f_format;
+extern const char *sysv_fl_format;
+extern const char *sysv_j_format;
+extern const char *sysv_l_format;
+extern unsigned thread_flags;
+extern int unix_f_option;
+extern int user_is_number;
+extern int wchan_is_number;
+extern const char *the_word_help;
+extern bool signal_names;
+
+/************************* PS GLOBALS *********************/
+
+/* display.c */
+extern char *myname;
+
+/* sortformat.c */
+extern int defer_sf_option(const char *arg, int source);
+extern const char *process_sf_options();
+extern void reset_sortformat(void);
+
+/* select.c */
+extern int want_this_proc(proc_t *buf);
+extern const char *select_bits_setup(void);
+
+/* signames.c */
+int print_signame(char *restrict const outbuf, const char *restrict const sig, const size_t len);
+
+/* help.c */
+extern void __attribute__ ((__noreturn__)) do_help(const char *opt, int rc);
+
+/* global.c */
+extern void self_info(void);
+extern void catastrophic_failure(const char *filename, unsigned int linenum,
+ const char *message);
+
+/* parser.c */
+extern int arg_parse(int argc, char *argv[]);
+
+#endif
diff --git a/src/ps/display.c b/src/ps/display.c
new file mode 100644
index 0000000..e1a3b0d
--- /dev/null
+++ b/src/ps/display.c
@@ -0,0 +1,681 @@
+/*
+ * display.c - display ps output
+ *
+ * Copyright © 2011-2023 Jim Warner <james.warner@comcast.net
+ * Copyright © 2004-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2012-2014 Jaromir Capik <jcapik@redhat.com
+ * Copyright © 1998-2003 Albert Cahalan
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <grp.h>
+#include <locale.h>
+#include <pwd.h>
+#include <signal.h>
+#include <stdio.h>
+#include <string.h>
+#include <unistd.h>
+
+#include <sys/sysmacros.h>
+#include <sys/types.h>
+
+#include "c.h"
+#include "fileutils.h"
+#include "signals.h"
+#include "xalloc.h"
+
+#include "common.h"
+
+#ifndef SIGCHLD
+#define SIGCHLD SIGCLD
+#endif
+
+#define SIG_IS_TERM_OR_HUP(signo) (((signo) == SIGTERM) || (signo) == SIGHUP)
+
+char *myname;
+long Hertz;
+
+/* just reports a crash */
+static void signal_handler(int signo){
+ sigset_t ss;
+
+ sigfillset(&ss);
+ sigprocmask(SIG_BLOCK, &ss, NULL);
+ if(signo==SIGPIPE) _exit(0); /* "ps | head" will cause this */
+ /* fprintf() is not reentrant, but we _exit() anyway */
+ if (!SIG_IS_TERM_OR_HUP(signo)) {
+ fprintf(stderr,
+ _("Signal %d (%s) caught by %s (%s).\n"),
+ signo,
+ signal_number_to_name(signo),
+ myname,
+ PACKAGE_VERSION
+ );
+ }
+ switch (signo) {
+ case SIGHUP:
+ case SIGUSR1:
+ case SIGUSR2:
+ exit(EXIT_FAILURE);
+ default:
+ if (!SIG_IS_TERM_OR_HUP(signo))
+ error_at_line(0, 0, __FILE__, __LINE__, "%s", _("please report this bug"));
+ signal(signo, SIG_DFL); /* allow core file creation */
+ sigemptyset(&ss);
+ sigaddset(&ss, signo);
+ sigprocmask(SIG_UNBLOCK, &ss, NULL);
+ kill(getpid(), signo);
+ _exit(EXIT_FAILURE);
+ }
+}
+
+/////////////////////////////////////////////////////////////////////////////////////
+#undef DEBUG
+#ifdef DEBUG
+void init_stack_trace(char *prog_name);
+
+#include <ctype.h>
+
+void hex_dump(void *vp){
+ char *charlist;
+ int i = 0;
+ int line = 45;
+ char *cp = (char *)vp;
+
+ while(line--){
+ printf("%8lx ", (unsigned long)cp);
+ charlist = cp;
+ cp += 16;
+ for(i=0; i<16; i++){
+ if((charlist[i]>31) && (charlist[i]<127)){
+ printf("%c", charlist[i]);
+ }else{
+ printf(".");
+ }
+ }
+ printf(" ");
+ for(i=0; i<16; i++) printf(" %2x",(unsigned int)((unsigned char)(charlist[i])));
+ printf("\n");
+ i=0;
+ }
+}
+
+static void show_tgid(char *s, int n, sel_union *data){
+ printf("%s ", s);
+ while(--n){
+ printf("%d,", data[n].tgid);
+ }
+ printf("%d\n", data[0].tgid);
+}
+
+static void show_uid(char *s, int n, sel_union *data){
+ struct passwd *pw_data;
+ printf("%s ", s);
+ while(--n){
+ pw_data = getpwuid(data[n].uid);
+ if(pw_data) printf("%s,", pw_data->pw_name);
+ else printf("%d,", data[n].uid);
+ }
+ pw_data = getpwuid(data[n].uid);
+ if(pw_data) printf("%s\n", pw_data->pw_name);
+ else printf("%d\n", data[n].uid);
+}
+
+static void show_gid(char *s, int n, sel_union *data){
+ struct group *gr_data;
+ printf("%s ", s);
+ while(--n){
+ gr_data = getgrgid(data[n].gid);
+ if(gr_data) printf("%s,", gr_data->gr_name);
+ else printf("%d,", data[n].gid);
+ }
+ gr_data = getgrgid(data[n].gid);
+ if(gr_data) printf("%s\n", gr_data->gr_name);
+ else printf("%d\n", data[n].gid);
+}
+
+static void show_tty(char *s, int n, sel_union *data){
+ printf("%s ", s);
+ while(--n){
+ printf("%d:%d,", (int)major(data[n].tty), (int)minor(data[n].tty));
+ }
+ printf("%d:%d\n", (int)major(data[n].tty), (int)minor(data[n].tty));
+}
+
+static void show_cmd(char *s, int n, sel_union *data){
+ printf("%s ", s);
+ while(--n){
+ printf("%.8s,", data[n].cmd);
+ }
+ printf("%.8s\n", data[0].cmd);
+}
+
+static void arg_show(void){
+ selection_node *walk = selection_list;
+ while(walk){
+ switch(walk->typecode){
+ case SEL_RUID: show_uid("RUID", walk->n, walk->u); break;
+ case SEL_EUID: show_uid("EUID", walk->n, walk->u); break;
+ case SEL_SUID: show_uid("SUID", walk->n, walk->u); break;
+ case SEL_FUID: show_uid("FUID", walk->n, walk->u); break;
+ case SEL_RGID: show_gid("RGID", walk->n, walk->u); break;
+ case SEL_EGID: show_gid("EGID", walk->n, walk->u); break;
+ case SEL_SGID: show_gid("SGID", walk->n, walk->u); break;
+ case SEL_FGID: show_gid("FGID", walk->n, walk->u); break;
+ case SEL_PGRP: show_pid("PGRP", walk->n, walk->u); break;
+ case SEL_PID : show_pid("PID ", walk->n, walk->u); break;
+ case SEL_PID_QUICK : show_pid("PID_QUICK ", walk->n, walk->u); break;
+ case SEL_PPID: show_pid("PPID", walk->n, walk->u); break;
+ case SEL_TTY : show_tty("TTY ", walk->n, walk->u); break;
+ case SEL_SESS: show_pid("SESS", walk->n, walk->u); break;
+ case SEL_COMM: show_cmd("COMM", walk->n, walk->u); break;
+ default: printf("Garbage typecode value!\n");
+ }
+ walk = walk->next;
+ }
+}
+
+#endif
+//////////////////////////////////////////////////////////////////////////
+
+
+/***** check the header */
+/* Unix98: must not print empty header */
+static void check_headers(void){
+ format_node *walk = format_list;
+ int head_normal = 0;
+ if(header_type==HEAD_MULTI){
+ header_gap = screen_rows-1; /* true BSD */
+ return;
+ }
+ if(header_type==HEAD_NONE){
+ lines_to_next_header = -1; /* old Linux */
+ return;
+ }
+ while(walk){
+ if(!*(walk->name)){
+ walk = walk->next;
+ continue;
+ }
+ if(walk->pr){
+ head_normal++;
+ walk = walk->next;
+ continue;
+ }
+ walk = walk->next;
+ }
+ if(!head_normal) lines_to_next_header = -1; /* how UNIX does --noheader */
+}
+
+static format_node *proc_format_list;
+static format_node *task_format_list;
+
+
+/***** munge lists and determine final needs */
+static void lists_and_needs(void){
+ check_headers();
+
+ // only care about the difference when showing both
+ if(thread_flags & TF_show_both){
+ format_node pfn, tfn; // junk, to handle special case at begin of list
+ format_node *walk = format_list;
+ format_node *p_end = &pfn;
+ format_node *t_end = &tfn;
+ while(walk){
+ format_node *new = xmalloc(sizeof(format_node));
+ memcpy(new,walk,sizeof(format_node));
+ p_end->next = walk;
+ t_end->next = new;
+ p_end = walk;
+ t_end = new;
+ switch(walk->flags & CF_PRINT_MASK){
+ case CF_PRINT_THREAD_ONLY:
+ p_end->pr = pr_nop;
+ break;
+ case CF_PRINT_PROCESS_ONLY:
+ t_end->pr = pr_nop;
+ break;
+ default:
+ catastrophic_failure(__FILE__, __LINE__, _("please report this bug"));
+ // FALL THROUGH
+ case CF_PRINT_AS_NEEDED:
+ case CF_PRINT_EVERY_TIME:
+ break;
+ }
+ walk = walk->next;
+ }
+ t_end->next = NULL;
+ p_end->next = NULL;
+ proc_format_list = pfn.next;
+ task_format_list = tfn.next;
+ }else{
+ proc_format_list = format_list;
+ task_format_list = format_list;
+ }
+}
+
+//////////////////////////////////////////////////////////////////////////
+
+/***** fill in %CPU; not in libproc because of include_dead_children */
+/* Note: for sorting, not display, so 0..0x7fffffff would be OK */
+static void value_this_proc_pcpu(proc_t *buf){
+ unsigned long long used_jiffies;
+ unsigned long pcpu = 0;
+ unsigned long long seconds;
+
+ if(want_this_proc(buf)) {
+
+ if(include_dead_children) used_jiffies = rSv(TICS_ALL_C, ull_int, buf);
+ else used_jiffies = rSv(TICS_ALL, ull_int, buf);
+
+ seconds = rSv(TIME_ELAPSED, real, buf);
+ if(seconds) pcpu = (used_jiffies * 1000ULL / Hertz) / seconds;
+
+ // if xtra-procps-debug.h active, can't use PIDS_VAL as base due to assignment
+ buf->head[rel_extra].result.ul_int = pcpu;
+ }
+}
+
+/***** just display */
+static void simple_spew(void){
+ struct pids_fetch *pidread;
+ proc_t *buf;
+ int i;
+
+ // -q option (only single SEL_PID_QUICK typecode entry expected in the list, if present)
+ if (selection_list && selection_list->typecode == SEL_PID_QUICK) {
+ unsigned *pidlist = xcalloc(selection_list->n, sizeof(unsigned));
+ enum pids_select_type which;
+ for (i = 0; i < selection_list->n; i++)
+ pidlist[i] = selection_list->u[selection_list->n-i-1].pid;
+ which = (thread_flags & (TF_loose_tasks|TF_show_task))
+ ? PIDS_SELECT_PID_THREADS : PIDS_SELECT_PID;
+ pidread = procps_pids_select(Pids_info, pidlist, selection_list->n, which);
+ free(pidlist);
+ } else {
+ enum pids_fetch_type which;
+ which = (thread_flags & (TF_loose_tasks|TF_show_task))
+ ? PIDS_FETCH_THREADS_TOO : PIDS_FETCH_TASKS_ONLY;
+ pidread = procps_pids_reap(Pids_info, which);
+ }
+ if (!pidread) {
+ fprintf(stderr, _("fatal library error, reap\n"));
+ exit(EXIT_FAILURE);
+ }
+
+ switch(thread_flags & (TF_show_proc|TF_loose_tasks|TF_show_task)){
+ case TF_show_proc: // normal non-thread output
+ for (i = 0; i < pidread->counts->total; i++) {
+ buf = pidread->stacks[i];
+ if (want_this_proc(buf))
+ show_one_proc(buf, proc_format_list);
+ }
+ break;
+ case TF_show_task: // -L and -T options
+ case TF_show_proc|TF_loose_tasks: // H option
+ for (i = 0; i < pidread->counts->total; i++) {
+ buf = pidread->stacks[i];
+ if (want_this_proc(buf))
+ show_one_proc(buf, task_format_list);
+ }
+ break;
+ case TF_show_proc|TF_show_task: // m and -m options
+ procps_pids_sort(Pids_info, pidread->stacks
+ , pidread->counts->total, PIDS_TICS_BEGAN, PIDS_SORT_ASCEND);
+ procps_pids_sort(Pids_info, pidread->stacks
+ , pidread->counts->total, PIDS_ID_TGID, PIDS_SORT_ASCEND);
+ for (i = 0; i < pidread->counts->total; i++) {
+ buf = pidread->stacks[i];
+next_proc:
+ if (want_this_proc(buf)) {
+ int self = rSv(ID_PID, s_int, buf);
+ show_one_proc(buf, proc_format_list);
+ for (; i < pidread->counts->total; i++) {
+ buf = pidread->stacks[i];
+ if (rSv(ID_TGID, s_int, buf) != self) goto next_proc;
+ show_one_proc(buf, task_format_list);
+ }
+ }
+ }
+ break;
+ }
+}
+
+
+/***** forest output requires sorting by ppid; add start_time by default */
+static void prep_forest_sort(void){
+ sort_node *tmp_list = sort_list;
+ const format_struct *incoming;
+
+ if(!sort_list) { /* assume start time order */
+ incoming = search_format_array("ppid");
+ if(!incoming) { fprintf(stderr, _("could not find ppid\n")); exit(1); }
+ tmp_list = xmalloc(sizeof(sort_node));
+ tmp_list->reverse = PIDS_SORT_ASCEND;
+ tmp_list->typecode = '?'; /* what was this for? */
+ tmp_list->sr = incoming->sr;
+ tmp_list->next = sort_list;
+ sort_list = tmp_list;
+ }
+ /* this is required for the forest option */
+ incoming = search_format_array("start_time");
+ if(!incoming) { fprintf(stderr, _("could not find start_time\n")); exit(1); }
+ tmp_list = xmalloc(sizeof(sort_node));
+ tmp_list->reverse = PIDS_SORT_ASCEND;
+ tmp_list->typecode = '?'; /* what was this for? */
+ tmp_list->sr = incoming->sr;
+ tmp_list->next = sort_list;
+ sort_list = tmp_list;
+}
+
+/* we rely on the POSIX requirement for zeroed memory */
+static proc_t **processes;
+
+/***** show pre-sorted array of process pointers */
+static void show_proc_array(int n){
+ proc_t **p = processes;
+ while(n--){
+ show_one_proc(*p, proc_format_list);
+ p++;
+ }
+}
+
+/***** show tree */
+/* this needs some optimization work */
+#define ADOPTED(x) 1
+
+#define IS_LEVEL_SAFE(level) \
+ ((level) >= 0 && (size_t)(level) < sizeof(forest_prefix))
+
+static void show_tree(const int self, const int n, const int level, const int have_sibling){
+ int i = 0;
+
+ if(!IS_LEVEL_SAFE(level))
+ catastrophic_failure(__FILE__, __LINE__, _("please report this bug"));
+
+ if(level){
+ /* add prefix of "+" or "L" */
+ if(have_sibling) forest_prefix[level-1] = '+';
+ else forest_prefix[level-1] = 'L';
+ }
+ forest_prefix[level] = '\0';
+ show_one_proc(processes[self],format_list); /* first show self */
+ for(;;){ /* look for children */
+ if(i >= n) return; /* no children */
+ if(rSv(ID_PPID, s_int, processes[i]) == rSv(ID_PID, s_int, processes[self])) break;
+ i++;
+ }
+ if(level){
+ /* change our prefix to "|" or " " for the children */
+ if(have_sibling) forest_prefix[level-1] = '|';
+ else forest_prefix[level-1] = ' ';
+ }
+ forest_prefix[level] = '\0';
+ for(;;){
+ int self_pid;
+ int more_children = 1;
+ if(i >= n) break; /* over the edge */
+ self_pid=rSv(ID_PID, s_int, processes[self]);
+ if(i+1 >= n)
+ more_children = 0;
+ else
+ if(rSv(ID_PPID, s_int, processes[i+1]) != self_pid) more_children = 0;
+ if(self_pid==1 && ADOPTED(processes[i]) && forest_type!='u')
+ show_tree(i++, n, level, more_children);
+ else
+ show_tree(i++, n, IS_LEVEL_SAFE(level+1) ? level+1 : level, more_children);
+ if(!more_children) break;
+ }
+ /* chop prefix that children added -- do we need this? */
+ /* chop prefix that children added */
+ forest_prefix[level] = '\0';
+}
+
+#undef IS_LEVEL_SAFE
+
+/***** show forest */
+static void show_forest(const int n){
+ int i = n;
+ int j;
+ while(i--){ /* cover whole array looking for trees */
+ j = n;
+ while(j--){ /* search for parent: if none, i is a tree! */
+ if(rSv(ID_PID, s_int, processes[j]) == rSv(ID_PPID, s_int, processes[i])) goto not_root;
+ }
+ show_tree(i,n,0,0);
+not_root:
+ ;
+ }
+ /* don't free the array because it takes time and ps will exit anyway */
+}
+
+#if 0
+static int want_this_proc_nop(proc_t *dummy){
+ (void)dummy;
+ return 1;
+}
+#endif
+
+/***** sorted or forest */
+static void fancy_spew(void){
+ struct pids_fetch *pidread;
+ enum pids_fetch_type which;
+ proc_t *buf;
+ int i, n = 0;
+
+ which = (thread_flags & TF_loose_tasks)
+ ? PIDS_FETCH_THREADS_TOO : PIDS_FETCH_TASKS_ONLY;
+
+ pidread = procps_pids_reap(Pids_info, which);
+ if (!pidread || !pidread->counts->total) {
+ fprintf(stderr, _("fatal library error, reap\n"));
+ exit(EXIT_FAILURE);
+ }
+ processes = xcalloc(pidread->counts->total, sizeof(void*));
+ for (i = 0; i < pidread->counts->total; i++) {
+ buf = pidread->stacks[i];
+ value_this_proc_pcpu(buf);
+ if (want_this_proc(buf))
+ processes[n++] = buf;
+ }
+ if (n) {
+ if(forest_type) prep_forest_sort();
+ while(sort_list) {
+ procps_pids_sort(Pids_info, processes, n, sort_list->sr, sort_list->reverse);
+ sort_list = sort_list->next;
+ }
+ if(forest_type) show_forest(n);
+ else show_proc_array(n);
+ }
+ free(processes);
+}
+
+static void arg_check_conflicts(void)
+{
+ int selection_list_len;
+ int has_quick_pid;
+ selection_node *walk = selection_list;
+ has_quick_pid = 0;
+ selection_list_len = 0;
+
+ while (walk) {
+ if (walk->typecode == SEL_PID_QUICK) has_quick_pid++;
+ walk = walk->next;
+ selection_list_len++;
+ }
+
+ /* -q doesn't allow multiple occurrences */
+ if (has_quick_pid > 1) {
+ fprintf(stderr, "q/-q/--quick-pid can only be used once.\n");
+ exit(1);
+ }
+
+ /* -q doesn't allow combinations with other selection switches */
+ if (has_quick_pid && selection_list_len > has_quick_pid) {
+ fprintf(stderr, "q/-q/--quick-pid cannot be combined with other selection options.\n");
+ exit(1);
+ }
+
+ /* -q cannot be used with forest type listings */
+ if (has_quick_pid && forest_type) {
+ fprintf(stderr, "q/-q/--quick-pid cannot be used together with forest type listings.\n");
+ exit(1);
+ }
+
+ /* -q cannot be used with sort */
+ if (has_quick_pid && sort_list) {
+ fprintf(stderr, "q/-q,--quick-pid cannot be used together with sort options.\n");
+ exit(1);
+ }
+
+ /* -q cannot be used with -N */
+ if (has_quick_pid && negate_selection) {
+ fprintf(stderr, "q/-q/--quick-pid cannot be used together with negation switches.\n");
+ exit(1);
+ }
+
+}
+
+static void finalize_stacks (void)
+{
+ format_node *f_node;
+ sort_node *s_node;
+
+#if (PIDSITEMS < 60)
+ # error PIDSITEMS (common.h) should be at least 60!
+#endif
+
+ /* first, ensure minimum result structures for items
+ which may or may not actually be displayable ... */
+ Pids_index = 0;
+
+ // needed by for selections
+ chkREL(CMD)
+ chkREL(ID_EGID)
+ chkREL(ID_EUID)
+ chkREL(ID_FGID)
+ chkREL(ID_FUID)
+ chkREL(ID_PID)
+ chkREL(ID_PPID)
+ chkREL(ID_RGID)
+ chkREL(ID_RUID)
+ chkREL(ID_SESSION)
+ chkREL(ID_SGID)
+ chkREL(ID_SUID)
+ chkREL(ID_TGID)
+ chkREL(STATE)
+ chkREL(TTY)
+ // needed to creata an enhanced 'stat/state'
+ chkREL(ID_PGRP)
+ chkREL(ID_TPGID)
+ chkREL(NICE)
+ chkREL(NLWP)
+ chkREL(RSS)
+ chkREL(VM_RSS_LOCKED)
+ // needed with 's' switch, previously assured
+ chkREL(SIGBLOCKED)
+ chkREL(SIGCATCH)
+ chkREL(SIGIGNORE)
+ chkREL(SIGNALS)
+ chkREL(SIGPENDING)
+ // needed with loss of defunct 'cook_time' macros
+ chkREL(TICS_ALL)
+ chkREL(TICS_ALL_C)
+ chkREL(TIME_ALL)
+ chkREL(TIME_ELAPSED)
+ chkREL(TICS_BEGAN)
+ // special items with 'extra' used as former pcpu
+ chkREL(extra)
+ chkREL(noop)
+
+ // now accommodate any results not yet satisfied
+ f_node = format_list;
+ while (f_node) {
+ if (*f_node->pr) (*f_node->pr)(NULL, NULL);
+ f_node = f_node->next;
+ }
+ s_node = sort_list;
+ while (s_node) {
+ if (s_node->xe) (*s_node->xe)(NULL, NULL);
+ s_node = s_node->next;
+ }
+
+ procps_pids_reset(Pids_info, Pids_items, Pids_index);
+}
+
+/***** no comment */
+int main(int argc, char *argv[]){
+ atexit(close_stdout);
+ myname = strrchr(*argv, '/');
+ if (myname) ++myname; else myname = *argv;
+ Hertz = procps_hertz_get();
+
+ setlocale (LC_ALL, "");
+ bindtextdomain(PACKAGE, LOCALEDIR);
+ textdomain(PACKAGE);
+ setenv("TZ", ":/etc/localtime", 0);
+
+#ifdef DEBUG
+ init_stack_trace(argv[0]);
+#else
+ do {
+ struct sigaction sa;
+ int i = 32;
+ memset(&sa, 0, sizeof(sa));
+ sa.sa_handler = signal_handler;
+ sigfillset(&sa.sa_mask);
+ while(i--) switch(i){
+ default:
+ sigaction(i,&sa,NULL);
+ case 0:
+ case SIGCONT:
+ case SIGINT: /* ^C */
+ case SIGTSTP: /* ^Z */
+ case SIGTTOU: /* see stty(1) man page */
+ case SIGQUIT: /* ^\ */
+ case SIGPROF: /* profiling */
+ case SIGKILL: /* can not catch */
+ case SIGSTOP: /* can not catch */
+ case SIGWINCH: /* don't care if window size changes */
+ case SIGURG: /* Urgent condition on socket (4.2BSD) */
+ ;
+ }
+ } while (0);
+#endif
+
+ reset_global(); /* must be before parser */
+ arg_parse(argc,argv);
+
+ /* check for invalid combination of arguments */
+ arg_check_conflicts();
+
+/* arg_show(); */
+ trace("screen is %ux%u\n",screen_cols,screen_rows);
+/* printf("sizeof(proc_t) is %d.\n", sizeof(proc_t)); */
+ trace("======= ps output follows =======\n");
+
+ init_output(); /* must be between parser and output */
+
+ finalize_stacks();
+ lists_and_needs();
+
+ if(forest_type || sort_list) fancy_spew(); /* sort or forest */
+ else simple_spew(); /* no sort, no forest */
+ show_one_proc((proc_t *)-1,format_list); /* no output yet? */
+
+ procps_pids_unref(&Pids_info);
+ return 0;
+}
diff --git a/src/ps/global.c b/src/ps/global.c
new file mode 100644
index 0000000..cc4fa24
--- /dev/null
+++ b/src/ps/global.c
@@ -0,0 +1,651 @@
+/*
+ * global.c - generic ps symbols and functions
+ *
+ * Copyright © 2011-2023 Jim Warner <james.warner@comcast.net
+ * Copyright © 2004-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 1998-2002 Albert Cahalan
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <fcntl.h>
+#include <grp.h>
+#include <pwd.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <termios.h>
+#include <unistd.h>
+#include <stdbool.h>
+
+#include <sys/ioctl.h>
+#include <sys/stat.h>
+#include <sys/sysmacros.h>
+#include <sys/types.h>
+
+#include "c.h"
+#include "xalloc.h"
+
+#include "common.h"
+
+#ifndef __GNU_LIBRARY__
+#define __GNU_LIBRARY__ -1
+#endif
+#ifndef __GLIBC__
+#define __GLIBC__ -1
+#endif
+#ifndef __GLIBC_MINOR__
+#define __GLIBC_MINOR__ -1
+#endif
+
+// --- <pids> interface begin ||||||||||||||||||||||||||||||||||||||||||||
+// -----------------------------------------------------------------------
+struct pids_info *Pids_info = NULL; // our required <pids> context
+enum pids_item *Pids_items; // allocated as PIDSITEMS
+int Pids_index; // actual number of active enums
+
+// most of these could be defined as static in the output.c module
+// (but for future flexibility, the easiest route has been chosen)
+makREL(ADDR_CODE_END)
+makREL(ADDR_CODE_START)
+makREL(ADDR_CURR_EIP)
+makREL(ADDR_CURR_ESP)
+makREL(ADDR_STACK_START)
+makREL(AUTOGRP_ID)
+makREL(AUTOGRP_NICE)
+makREL(CGNAME)
+makREL(CGROUP)
+makREL(CMD)
+makREL(CMDLINE)
+makREL(ENVIRON)
+makREL(EXE)
+makREL(FLAGS)
+makREL(FLT_MAJ)
+makREL(FLT_MAJ_C)
+makREL(FLT_MIN)
+makREL(FLT_MIN_C)
+makREL(ID_EGID)
+makREL(ID_EGROUP)
+makREL(ID_EUID)
+makREL(ID_EUSER)
+makREL(ID_FGID)
+makREL(ID_FGROUP)
+makREL(ID_FUID)
+makREL(ID_FUSER)
+makREL(ID_LOGIN)
+makREL(ID_PGRP)
+makREL(ID_PID)
+makREL(ID_PPID)
+makREL(ID_RGID)
+makREL(ID_RGROUP)
+makREL(ID_RUID)
+makREL(ID_RUSER)
+makREL(ID_SESSION)
+makREL(ID_SGID)
+makREL(ID_SGROUP)
+makREL(ID_SUID)
+makREL(ID_SUSER)
+makREL(ID_TGID)
+makREL(ID_TPGID)
+makREL(IO_READ_BYTES)
+makREL(IO_READ_CHARS)
+makREL(IO_READ_OPS)
+makREL(IO_WRITE_BYTES)
+makREL(IO_WRITE_CBYTES)
+makREL(IO_WRITE_CHARS)
+makREL(IO_WRITE_OPS)
+makREL(LXCNAME)
+makREL(NICE)
+makREL(NLWP)
+makREL(NS_CGROUP)
+makREL(NS_IPC)
+makREL(NS_MNT)
+makREL(NS_NET)
+makREL(NS_PID)
+makREL(NS_TIME)
+makREL(NS_USER)
+makREL(NS_UTS)
+makREL(OOM_ADJ)
+makREL(OOM_SCORE)
+makREL(PRIORITY)
+makREL(PRIORITY_RT)
+makREL(PROCESSOR)
+makREL(PROCESSOR_NODE)
+makREL(RSS)
+makREL(RSS_RLIM)
+makREL(SCHED_CLASS)
+makREL(SD_MACH)
+makREL(SD_OUID)
+makREL(SD_SEAT)
+makREL(SD_SESS)
+makREL(SD_SLICE)
+makREL(SD_UNIT)
+makREL(SD_UUNIT)
+makREL(SIGBLOCKED)
+makREL(SIGCATCH)
+makREL(SIGIGNORE)
+makREL(SIGNALS)
+makREL(SIGPENDING)
+makREL(SMAP_PRV_TOTAL)
+makREL(SMAP_PSS)
+makREL(STATE)
+makREL(SUPGIDS)
+makREL(SUPGROUPS)
+makREL(TICS_ALL)
+makREL(TICS_ALL_C)
+makREL(TIME_ALL)
+makREL(TIME_ELAPSED)
+makREL(TICS_BEGAN)
+makREL(TTY)
+makREL(TTY_NAME)
+makREL(TTY_NUMBER)
+makREL(UTILIZATION)
+makREL(UTILIZATION_C)
+makREL(VM_DATA)
+makREL(VM_RSS_LOCKED)
+makREL(VM_RSS)
+makREL(VM_SIZE)
+makREL(VM_STACK)
+makREL(VSIZE_BYTES)
+makREL(WCHAN_NAME)
+makREL(extra)
+makREL(noop)
+// -----------------------------------------------------------------------
+// --- <pids> interface end ||||||||||||||||||||||||||||||||||||||||||||||
+
+
+static const char * saved_personality_text = "You found a bug!";
+
+int all_processes = -1;
+const char *bsd_j_format = (const char *)0xdeadbeef;
+const char *bsd_l_format = (const char *)0xdeadbeef;
+const char *bsd_s_format = (const char *)0xdeadbeef;
+const char *bsd_u_format = (const char *)0xdeadbeef;
+const char *bsd_v_format = (const char *)0xdeadbeef;
+int bsd_c_option = -1;
+int bsd_e_option = -1;
+unsigned cached_euid = 0xffffffff;
+int cached_tty = -1;
+char forest_prefix[4 * 32*1024 + 100]; // FIXME
+int forest_type = -1;
+unsigned format_flags = 0xffffffff; /* -l -f l u s -j... */
+format_node *format_list = (format_node *)0xdeadbeef; /* digested formatting options */
+unsigned format_modifiers = 0xffffffff; /* -c -j -y -P -L... */
+int header_gap = -1;
+int header_type = -1;
+int include_dead_children = -1;
+int lines_to_next_header = -1;
+char *lstart_format = NULL;
+int negate_selection = -1;
+int running_only = -1;
+int page_size = -1; // "int" for math reasons?
+unsigned personality = 0xffffffff;
+int prefer_bsd_defaults = -1;
+int screen_cols = -1;
+int screen_rows = -1;
+selection_node *selection_list = (selection_node *)0xdeadbeef;
+unsigned simple_select = 0xffffffff;
+sort_node *sort_list = (sort_node *)0xdeadbeef; /* ready-to-use sort list */
+const char *sysv_f_format = (const char *)0xdeadbeef;
+const char *sysv_fl_format = (const char *)0xdeadbeef;
+const char *sysv_j_format = (const char *)0xdeadbeef;
+const char *sysv_l_format = (const char *)0xdeadbeef;
+unsigned thread_flags = 0xffffffff;
+int unix_f_option = -1;
+int user_is_number = -1;
+int wchan_is_number = -1;
+const char *the_word_help;
+bool signal_names = FALSE;
+
+static void reset_selection_list(void){
+ selection_node *old;
+ selection_node *walk = selection_list;
+ if(selection_list == (selection_node *)0xdeadbeef){
+ selection_list = NULL;
+ return;
+ }
+ while(walk){
+ old = walk;
+ walk = old->next;
+ free(old->u);
+ free(old);
+ }
+ selection_list = NULL;
+}
+
+// The rules:
+// 1. Defaults are implementation-specific. (ioctl,termcap,guess)
+// 2. COLUMNS and LINES override the defaults. (standards compliance)
+// 3. Command line options override everything else.
+// 4. Actual output may be more if the above is too narrow.
+//
+// SysV tends to spew semi-wide output in all cases. The args
+// will be limited to 64 or 80 characters, without regard to
+// screen size. So lines of 120 to 160 chars are normal.
+// Tough luck if you want more or less than that! HP-UX has a
+// new "-x" option for 1024-char args in place of comm that
+// we'll implement at some point.
+//
+// BSD tends to make a good effort, then fall back to 80 cols.
+// Use "ww" to get infinity. This is nicer for "ps | less"
+// and "watch ps". It can run faster too.
+static void set_screen_size(void){
+ struct winsize ws;
+ char *columns; /* Unix98 environment variable */
+ char *lines; /* Unix98 environment variable */
+
+ do{
+ int fd;
+ if(ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws) != -1 && ws.ws_col>0 && ws.ws_row>0) break;
+ if(ioctl(STDERR_FILENO, TIOCGWINSZ, &ws) != -1 && ws.ws_col>0 && ws.ws_row>0) break;
+ if(ioctl(STDIN_FILENO, TIOCGWINSZ, &ws) != -1 && ws.ws_col>0 && ws.ws_row>0) break;
+ fd = open("/dev/tty", O_NOCTTY|O_NONBLOCK|O_RDONLY);
+ if(fd != -1){
+ int ret = ioctl(fd, TIOCGWINSZ, &ws);
+ close(fd);
+ if(ret != -1 && ws.ws_col>0 && ws.ws_row>0) break;
+ }
+ // TODO: ought to do tgetnum("co") and tgetnum("li") here
+ ws.ws_col = 80;
+ ws.ws_row = 24;
+ }while(0);
+ screen_cols = ws.ws_col; // hmmm, NetBSD subtracts 1
+ screen_rows = ws.ws_row;
+
+ // TODO: delete this line
+ if(!isatty(STDOUT_FILENO)) screen_cols = OUTBUF_SIZE;
+
+ columns = getenv("COLUMNS");
+ if(columns && *columns){
+ long t;
+ char *endptr;
+ t = strtol(columns, &endptr, 0);
+ if(!*endptr && (t>0) && (t<(long)OUTBUF_SIZE)) screen_cols = (int)t;
+ }
+
+ lines = getenv("LINES");
+ if(lines && *lines){
+ long t;
+ char *endptr;
+ t = strtol(lines, &endptr, 0);
+ if(!*endptr && (t>0) && (t<(long)OUTBUF_SIZE)) screen_rows = (int)t;
+ }
+
+ if((screen_cols<9) || (screen_rows<2))
+ fprintf(stderr,_("your %dx%d screen size is bogus. expect trouble\n"),
+ screen_cols, screen_rows
+ );
+}
+
+/**************** personality control **************/
+
+typedef struct personality_table_struct {
+ const char *name; /* personality name */
+ const void *jump; /* See gcc extension info. :-) */
+} personality_table_struct;
+
+static int compare_personality_table_structs(const void *a, const void *b){
+ return strcasecmp(((const personality_table_struct*)a)->name,((const personality_table_struct*)b)->name);
+}
+
+static const char *set_personality(void){
+ const char *s;
+ size_t sl;
+ char buf[16];
+ personality_table_struct findme = { buf, NULL};
+ personality_table_struct *found;
+ static const personality_table_struct personality_table[] = {
+ {"390", &&case_390},
+ {"aix", &&case_aix},
+ {"bsd", &&case_bsd},
+ {"compaq", &&case_compaq},
+ {"debian", &&case_debian},
+ {"default", &&case_default},
+ {"digital", &&case_digital},
+ {"gnu", &&case_gnu},
+ {"hp", &&case_hp},
+ {"hpux", &&case_hpux},
+ {"irix", &&case_irix},
+ {"linux", &&case_linux},
+ {"old", &&case_old},
+ {"os390", &&case_os390},
+ {"posix", &&case_posix},
+ {"s390", &&case_s390},
+ {"sco", &&case_sco},
+ {"sgi", &&case_sgi},
+ {"solaris2", &&case_solaris2},
+ {"sunos4", &&case_sunos4},
+ {"svr4", &&case_svr4},
+ {"sysv", &&case_sysv},
+ {"tru64", &&case_tru64},
+ {"unix", &&case_unix},
+ {"unix95", &&case_unix95},
+ {"unix98", &&case_unix98},
+ {"unknown", &&case_unknown}
+ };
+ const int personality_table_count = sizeof(personality_table)/sizeof(personality_table_struct);
+
+ personality = 0;
+ prefer_bsd_defaults = 0;
+
+ bsd_j_format = "OL_j";
+ bsd_l_format = "OL_l";
+ bsd_s_format = "OL_s";
+ bsd_u_format = "OL_u";
+ bsd_v_format = "OL_v";
+
+ /* When these are NULL, the code does SysV output modifier logic */
+ sysv_f_format = NULL;
+ sysv_fl_format = NULL;
+ sysv_j_format = NULL;
+ sysv_l_format = NULL;
+
+ s = getenv("PS_PERSONALITY");
+ if(!s || !*s) s = getenv("CMD_ENV");
+ if(!s || !*s) s="unknown"; /* "Do The Right Thing[tm]" */
+ if(getenv("I_WANT_A_BROKEN_PS")) s="old";
+ sl = strlen(s);
+ if(sl > 15) return _("environment specified an unknown personality");
+ strncpy(buf, s, sl);
+ buf[sl] = '\0';
+ if ((saved_personality_text = strdup(buf))==NULL) {
+ fprintf(stderr, _("cannot strdup() personality text\n"));
+ exit(EXIT_FAILURE);
+ }
+
+ found = bsearch(&findme, personality_table, personality_table_count,
+ sizeof(personality_table_struct), compare_personality_table_structs
+ );
+
+ if(!found) return _("environment specified an unknown personality");
+
+ goto *(found->jump); /* See gcc extension info. :-) */
+
+ case_bsd:
+ personality = PER_FORCE_BSD | PER_BSD_h | PER_BSD_m;
+ prefer_bsd_defaults = 1;
+ bsd_j_format = "FB_j";
+ bsd_l_format = "FB_l";
+ /* bsd_s_format not used */
+ bsd_u_format = "FB_u";
+ bsd_v_format = "FB_v";
+ return NULL;
+
+ case_old:
+ personality = PER_FORCE_BSD | PER_OLD_m;
+ prefer_bsd_defaults = 1;
+ return NULL;
+
+ case_debian: /* Toss this? They don't seem to care much. */
+ case_gnu:
+ personality = PER_GOOD_o | PER_OLD_m;
+ prefer_bsd_defaults = 1;
+ sysv_f_format = "RD_f";
+ /* sysv_fl_format = "RD_fl"; */ /* old Debian ps can't do this! */
+ sysv_j_format = "RD_j";
+ sysv_l_format = "RD_l";
+ return NULL;
+
+ case_linux:
+ personality = PER_GOOD_o | PER_ZAP_ADDR | PER_SANE_USER;
+ return NULL;
+
+ case_default: /* use defaults for ps, ignoring other environment variables */
+ case_unknown: /* defaults, but also check inferior environment variables */
+ return NULL;
+
+ case_aix:
+ bsd_j_format = "FB_j";
+ bsd_l_format = "FB_l";
+ /* bsd_s_format not used */
+ bsd_u_format = "FB_u";
+ bsd_v_format = "FB_v";
+ return NULL;
+
+ case_tru64:
+ case_compaq:
+ case_digital:
+ // no PER_NO_DEFAULT_g even though man page claims it
+ // Reality: the g is a NOP
+ personality = PER_GOOD_o | PER_BSD_h;
+ prefer_bsd_defaults = 1;
+ sysv_f_format = "F5FMT";
+ sysv_fl_format = "FL5FMT";
+ sysv_j_format = "JFMT";
+ sysv_l_format = "L5FMT";
+ bsd_j_format = "JFMT";
+ bsd_l_format = "LFMT";
+ bsd_s_format = "SFMT";
+ bsd_u_format = "UFMT";
+ bsd_v_format = "VFMT";
+ return NULL;
+
+ case_sunos4:
+ personality = PER_NO_DEFAULT_g;
+ prefer_bsd_defaults = 1;
+ bsd_j_format = "FB_j";
+ bsd_l_format = "FB_l";
+ /* bsd_s_format not used */
+ bsd_u_format = "FB_u";
+ bsd_v_format = "FB_v";
+ return NULL;
+
+ case_irix:
+ case_sgi:
+ s = getenv("_XPG");
+ if(s && s[0]>'0' && s[0]<='9')
+ return NULL;
+ personality = PER_IRIX_l;
+ return NULL;
+
+ case_os390: /* IBM's OS/390 OpenEdition on the S/390 mainframe */
+ case_s390:
+ case_390:
+ sysv_j_format = "J390"; /* don't know what -jl and -jf do */
+ return NULL;
+
+ case_hp:
+ case_hpux:
+ personality = PER_HPUX_x;
+ return NULL;
+
+ case_svr4:
+ case_sysv:
+ case_sco:
+ personality = PER_SVR4_x;
+ return NULL;
+
+ case_posix:
+ case_solaris2:
+ case_unix95:
+ case_unix98:
+ case_unix:
+ return NULL;
+}
+
+
+/************ Call this to reinitialize everything ***************/
+void reset_global(void){
+ proc_t *p;
+ int i;
+
+ reset_selection_list();
+
+// --- <pids> interface --------------------------------------------------
+ if (!Pids_items)
+ Pids_items = xcalloc(PIDSITEMS, sizeof(enum pids_item));
+
+ for (i = 0; i < PIDSITEMS; i++)
+ Pids_items[i] = PIDS_noop;
+
+ if (!Pids_info) {
+ if (procps_pids_new(&Pids_info, Pids_items, i)) {
+ fprintf(stderr, _("fatal library error, context\n"));
+ exit(EXIT_FAILURE);
+ }
+ }
+
+ Pids_items[0] = PIDS_TTY;
+ procps_pids_reset(Pids_info, Pids_items, 1);
+ if (!(p = fatal_proc_unmounted(Pids_info, 1))) {
+ fprintf(stderr, _("fatal library error, lookup self\n"));
+ exit(EXIT_FAILURE);
+ }
+// --- <pids> interface --------------------------------------------------
+
+ set_screen_size();
+ set_personality();
+
+ all_processes = 0;
+ bsd_c_option = 0;
+ bsd_e_option = 0;
+ cached_euid = geteuid();
+ cached_tty = PIDS_VAL(0, s_int, p, Pids_info);
+/* forest_prefix must be all zero because of POSIX */
+ forest_type = 0;
+ format_flags = 0; /* -l -f l u s -j... */
+ format_list = NULL; /* digested formatting options */
+ format_modifiers = 0; /* -c -j -y -P -L... */
+ header_gap = -1; /* send lines_to_next_header to -infinity */
+ header_type = HEAD_SINGLE;
+ include_dead_children = 0;
+ lines_to_next_header = 1;
+ negate_selection = 0;
+ page_size = getpagesize();
+ running_only = 0;
+ selection_list = NULL;
+ simple_select = 0;
+ sort_list = NULL;
+ thread_flags = 0;
+ unix_f_option = 0;
+ user_is_number = 0;
+ wchan_is_number = 0;
+/* Translation Note:
+ . The following translatable word will be used to recognize the
+ . user's request for help text. In other words, the translation
+ . you provide will alter program behavior.
+ .
+ . It must be limited to 15 characters or less.
+ */
+ the_word_help = _("help");
+}
+
+static const char archdefs[] =
+#ifdef __alpha__
+" alpha"
+#endif
+#ifdef __arm__
+" arm"
+#endif
+#ifdef __hppa__
+" hppa"
+#endif
+#ifdef __i386__
+" i386"
+#endif
+#ifdef __ia64__
+" ia64"
+#endif
+#ifdef __mc68000__
+" mc68000"
+#endif
+#ifdef __mips64__
+" mips64"
+#endif
+#ifdef __mips__
+" mips"
+#endif
+#ifdef __powerpc__
+" powerpc"
+#endif
+#ifdef __sh3__
+" sh3"
+#endif
+#ifdef __sh__
+" sh"
+#endif
+#ifdef __sparc__
+" sparc"
+#endif
+#ifdef __sparc_v9__
+" sparc_v9"
+#endif
+#ifdef __x86_64__
+" x86_64"
+#endif
+"";
+
+/*********** spew variables ***********/
+void self_info(void){
+ fprintf(stderr,
+ "BSD j %s\n"
+ "BSD l %s\n"
+ "BSD s %s\n"
+ "BSD u %s\n"
+ "BSD v %s\n"
+ "SysV -f %s\n"
+ "SysV -fl %s\n"
+ "SysV -j %s\n"
+ "SysV -l %s\n"
+ "\n",
+ bsd_j_format ? bsd_j_format : "(none)",
+ bsd_l_format ? bsd_l_format : "(none)",
+ bsd_s_format ? bsd_s_format : "(none)",
+ bsd_u_format ? bsd_u_format : "(none)",
+ bsd_v_format ? bsd_v_format : "(none)",
+ sysv_f_format ? sysv_f_format : "(none)",
+ sysv_fl_format ? sysv_fl_format : "(none)",
+ sysv_j_format ? sysv_j_format : "(none)",
+ sysv_l_format ? sysv_l_format : "(none)"
+ );
+
+ fprintf(stderr, "%s version %s\n", PACKAGE_NAME, PACKAGE_VERSION);
+ /* __libc_print_version(); */ /* how can we get the run-time version? */
+ fprintf(stderr, "Compiled with: glibc %d.%d, gcc %d.%d\n\n",
+ __GLIBC__, __GLIBC_MINOR__, __GNUC__, __GNUC_MINOR__
+ );
+
+ fprintf(stderr,
+ "header_gap=%d lines_to_next_header=%d\n"
+ "screen_cols=%d screen_rows=%d\n"
+ "\n",
+ header_gap, lines_to_next_header,
+ screen_cols, screen_rows
+ );
+
+ fprintf(stderr,
+ "personality=0x%08x (from \"%s\")\n"
+ "EUID=%d TTY=%d,%d page_size=%d\n",
+ personality, saved_personality_text,
+ cached_euid, (int)major(cached_tty), (int)minor(cached_tty),
+ (int)(page_size)
+ );
+
+ fprintf(stderr,
+ "sizeof(proc_t)=%d sizeof(long)=%d sizeof(long)=%d\n",
+ (int)sizeof(proc_t), (int)sizeof(long), (int)sizeof(long)
+ );
+
+ fprintf(stderr, "archdefs:%s\n", archdefs);
+}
+
+void __attribute__ ((__noreturn__))
+catastrophic_failure(const char *filename,
+ unsigned int linenum,
+ const char *message)
+{
+ error_at_line(0, 0, filename, linenum, "%s", message);
+ exit(EXIT_FAILURE);
+}
diff --git a/src/ps/help.c b/src/ps/help.c
new file mode 100644
index 0000000..61e6b7c
--- /dev/null
+++ b/src/ps/help.c
@@ -0,0 +1,223 @@
+/*
+ * help.c - ps help output
+ *
+ * Copyright © 2012-2023 Jim Warner <james.warner@comcast.net
+ * Copyright © 2004-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2012-2014 Jaromir Capik <jcapik@redhat.com
+ * Copyright © 1998-2004 Albert Cahalan
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <errno.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "common.h"
+
+
+enum {
+ HELP_SMP, HELP_LST, HELP_OUT,
+ HELP_THD, HELP_MSC, HELP_ALL,
+ HELP_default
+};
+
+static struct {
+ const char *word;
+ const char *abrv;
+} help_tab[HELP_default];
+
+
+static int parse_help_opt (const char *opt) {
+/* Translation Notes for ps Help #1 ---------------------------------
+ . This next group of lines represents 6 pairs of words + abbreviations
+ . which are the basis of the 'ps' program help text.
+ .
+ . The words and abbreviations you provide will alter program behavior.
+ . They will also appear in the help usage summary associated with the
+ . "Notes for ps Help #2" below.
+ .
+ . In their English form, help text would look like this:
+ . Try 'ps --help <simple|list|output|threads|misc|all>'
+ . or 'ps --help <s|l|o|t|m|a>'
+ . for additional help text.
+ .
+ . When translating these 6 pairs you may choose any appropriate
+ . language equivalents and the only requirement is the abbreviated
+ . representations must be unique.
+ .
+ . By default, those abbreviations are single characters. However,
+ . they are not limited to only one character after translation.
+ . */
+
+/* Translation Hint, Pair #1 */
+ help_tab[HELP_SMP].word = _("simple"); help_tab[HELP_SMP].abrv = _("s");
+/* Translation Hint, Pair #2 */
+ help_tab[HELP_LST].word = _("list"); help_tab[HELP_LST].abrv = _("l");
+/* Translation Hint, Pair #3 */
+ help_tab[HELP_OUT].word = _("output"); help_tab[HELP_OUT].abrv = _("o");
+/* Translation Hint, Pair #4 */
+ help_tab[HELP_THD].word = _("threads"); help_tab[HELP_THD].abrv = _("t");
+/* Translation Hint, Pair #5 */
+ help_tab[HELP_MSC].word = _("misc"); help_tab[HELP_MSC].abrv = _("m");
+/* Translation Hint, Pair #6 */
+ help_tab[HELP_ALL].word = _("all"); help_tab[HELP_ALL].abrv = _("a");
+/*
+ * the above are doubled on each line so they carry the same .pot
+ * line # reference and thus appear more like true "pairs" even
+ * though xgettext will produce separate msgid/msgstr groups */
+
+ if(opt) {
+ int i;
+ for (i = HELP_SMP; i < HELP_default; i++)
+ if (!strcmp(opt, help_tab[i].word) || !strcmp(opt, help_tab[i].abrv))
+ return i;
+ }
+ return HELP_default;
+}
+
+
+void do_help (const char *opt, int rc);
+void do_help (const char *opt, int rc) {
+ FILE *out = (rc == EXIT_SUCCESS) ? stdout : stderr;
+ int section = parse_help_opt(opt);
+
+ fprintf(out, _("\n"
+ "Usage:\n"
+ " %s [options]\n"), myname);
+
+ if (section == HELP_SMP || section == HELP_ALL) {
+ fputs(_("\nBasic options:\n"), out);
+ fputs(_(" -A, -e all processes\n"), out);
+ fputs(_(" -a all with tty, except session leaders\n"), out);
+ fputs(_(" a all with tty, including other users\n"), out);
+ fputs(_(" -d all except session leaders\n"), out);
+ fputs(_(" -N, --deselect negate selection\n"), out);
+ fputs(_(" r only running processes\n"), out);
+ fputs(_(" T all processes on this terminal\n"), out);
+ fputs(_(" x processes without controlling ttys\n"), out);
+ }
+ if (section == HELP_LST || section == HELP_ALL) {
+ fputs(_("\nSelection by list:\n"), out);
+ fputs(_(" -C <command> command name\n"), out);
+ fputs(_(" -G, --Group <GID> real group id or name\n"), out);
+ fputs(_(" -g, --group <group> session or effective group name\n"), out);
+ fputs(_(" -p, p, --pid <PID> process id\n"), out);
+ fputs(_(" --ppid <PID> parent process id\n"), out);
+ fputs(_(" -q, q, --quick-pid <PID>\n"
+ " process id (quick mode)\n"), out);
+ fputs(_(" -s, --sid <session> session id\n"), out);
+ fputs(_(" -t, t, --tty <tty> terminal\n"), out);
+ fputs(_(" -u, U, --user <UID> effective user id or name\n"), out);
+ fputs(_(" -U, --User <UID> real user id or name\n"), out);
+ fputs(_("\n"
+ " The selection options take as their argument either:\n"
+ " a comma-separated list e.g. '-u root,nobody' or\n"
+ " a blank-separated list e.g. '-p 123 4567'\n"), out);
+ }
+ if (section == HELP_OUT || section == HELP_ALL) {
+ fputs(_("\nOutput formats:\n"), out);
+ fputs(_(" -D <format> date format for lstart\n"), out);
+ fputs(_(" -F extra full\n"), out);
+ fputs(_(" -f full-format, including command lines\n"), out);
+ fputs(_(" f, --forest ascii art process tree\n"), out);
+ fputs(_(" -H show process hierarchy\n"), out);
+ fputs(_(" -j jobs format\n"), out);
+ fputs(_(" j BSD job control format\n"), out);
+ fputs(_(" -l long format\n"), out);
+ fputs(_(" l BSD long format\n"), out);
+ fputs(_(" -M, Z add security data (for SELinux)\n"), out);
+ fputs(_(" -O <format> preloaded with default columns\n"), out);
+ fputs(_(" O <format> as -O, with BSD personality\n"), out);
+ fputs(_(" -o, o, --format <format>\n"
+ " user-defined format\n"), out);
+ fputs(_(" -P add psr column\n"), out);
+ fputs(_(" s signal format\n"), out);
+ fputs(_(" u user-oriented format\n"), out);
+ fputs(_(" v virtual memory format\n"), out);
+ fputs(_(" X register format\n"), out);
+ fputs(_(" -y do not show flags, show rss vs. addr (used with -l)\n"), out);
+ fputs(_(" --context display security context (for SELinux)\n"), out);
+ fputs(_(" --headers repeat header lines, one per page\n"), out);
+ fputs(_(" --no-headers do not print header at all\n"), out);
+ fputs(_(" --cols, --columns, --width <num>\n"
+ " set screen width\n"), out);
+ fputs(_(" --rows, --lines <num>\n"
+ " set screen height\n"), out);
+ fputs(_(" --signames display signal masks using signal names\n"), out);
+ }
+ if (section == HELP_THD || section == HELP_ALL) {
+ fputs(_("\nShow threads:\n"), out);
+ fputs(_(" H as if they were processes\n"), out);
+ fputs(_(" -L possibly with LWP and NLWP columns\n"), out);
+ fputs(_(" -m, m after processes\n"), out);
+ fputs(_(" -T possibly with SPID column\n"), out);
+ }
+ if (section == HELP_MSC || section == HELP_ALL) {
+ fputs(_("\nMiscellaneous options:\n"), out);
+ fputs(_(" -c show scheduling class with -l option\n"), out);
+ fputs(_(" c show true command name\n"), out);
+ fputs(_(" e show the environment after command\n"), out);
+ fputs(_(" k, --sort specify sort order as: [+|-]key[,[+|-]key[,...]]\n"), out);
+ fputs(_(" L show format specifiers\n"), out);
+ fputs(_(" n display numeric uid and wchan\n"), out);
+ fputs(_(" S, --cumulative include some dead child process data\n"), out);
+ fputs(_(" -y do not show flags, show rss (only with -l)\n"), out);
+ fputs(_(" -V, V, --version display version information and exit\n"), out);
+ fputs(_(" -w, w unlimited output width\n"), out);
+ fprintf(out, _("\n"
+ " --%s <%s|%s|%s|%s|%s|%s>\n"
+ " display help and exit\n")
+ , the_word_help
+ , help_tab[HELP_SMP].word, help_tab[HELP_LST].word
+ , help_tab[HELP_OUT].word, help_tab[HELP_THD].word
+ , help_tab[HELP_MSC].word, help_tab[HELP_ALL].word);
+ }
+ if (section == HELP_default) {
+/* Translation Notes for ps Help #2 ---------------------------------
+ . Most of the following c-format string is derived from the 6
+ . pairs of words + chars mentioned above in "Notes for ps Help #1".
+ .
+ . In its full English form, help text would look like this:
+ . Try 'ps --help <simple|list|output|threads|misc|all>'
+ . or 'ps --help <s|l|o|t|m|a>'
+ . for additional help text.
+ .
+ . The word for "help" will be translated elsewhere. Thus, the only
+ . translations below will be: "Try", "or" and "for additional...".
+ . */
+ fprintf(out, _("\n"
+ " Try '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+ " or '%s --%s <%s|%s|%s|%s|%s|%s>'\n"
+ " for additional help text.\n")
+ , myname, the_word_help
+ , help_tab[HELP_SMP].word, help_tab[HELP_LST].word
+ , help_tab[HELP_OUT].word, help_tab[HELP_THD].word
+ , help_tab[HELP_MSC].word, help_tab[HELP_ALL].word
+ , myname, the_word_help
+ , help_tab[HELP_SMP].abrv, help_tab[HELP_LST].abrv
+ , help_tab[HELP_OUT].abrv, help_tab[HELP_THD].abrv
+ , help_tab[HELP_MSC].abrv, help_tab[HELP_ALL].abrv);
+ }
+ fprintf(out, _("\nFor more details see ps(1).\n"));
+ exit(rc);
+}
+
+/* Missing:
+ *
+ * -P e k
+ *
+ */
diff --git a/src/ps/output.c b/src/ps/output.c
new file mode 100644
index 0000000..a4b3833
--- /dev/null
+++ b/src/ps/output.c
@@ -0,0 +1,2370 @@
+/*
+ * output.c - ps output definitions
+ *
+ * Copyright © 2015-2023 Jim Warner <james.warner@comcast.net
+ * Copyright © 2004-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2011 Lukas Nykryn <lnykryn@redhat.com>
+ * Copyright © 1999-2004 Albert Cahalan
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/*
+ * This file is really gross, and I know it. I looked into several
+ * alternate ways to deal with the mess, and they were all ugly.
+ *
+ * FreeBSD has a fancy hack using offsets into a struct -- that
+ * saves code but it is _really_ gross. See the PO macro below.
+ *
+ * We could have a second column width for wide output format.
+ * For example, Digital prints the real-time signals.
+ */
+
+/*
+ * Data table idea:
+ *
+ * table 1 maps aix to specifier
+ * table 2 maps shortsort to specifier
+ * table 3 maps macro to specifiers
+ * table 4 maps specifier to title,datatype,offset,vendor,helptext
+ * table 5 maps datatype to justification,width,widewidth,sorting,printing
+ *
+ * Here, "datatype" could be user,uid,u16,pages,deltaT,signals,tty,longtty...
+ * It must be enough to determine printing and sorting.
+ *
+ * After the tables, increase width as needed to fit the header.
+ *
+ * Table 5 could go in a file with the output functions.
+ */
+
+#include <ctype.h>
+#if ENABLE_LIBSELINUX
+#include <dlfcn.h>
+#endif
+#include <ctype.h>
+#include <fcntl.h>
+#include <grp.h>
+#include <langinfo.h>
+#include <limits.h>
+#include <pwd.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <time.h>
+#include <unistd.h>
+#include <wchar.h>
+#include <wctype.h>
+
+#include <sys/ioctl.h>
+#include <sys/mman.h>
+#include <sys/resource.h>
+#include <sys/types.h>
+
+#include "c.h"
+
+#include "common.h"
+
+/* TODO:
+ * Stop assuming system time is local time.
+ */
+
+#define COLWID 240 /* satisfy snprintf, which is faster than sprintf */
+#define SIGNAL_NAME_WIDTH 27
+
+static unsigned max_rightward = OUTBUF_SIZE-1; /* space for RIGHT stuff */
+static unsigned max_leftward = OUTBUF_SIZE-1; /* space for LEFT stuff */
+
+
+static int wide_signals; /* true if we have room */
+
+static time_t seconds_since_1970;
+
+
+extern long Hertz;
+
+
+static unsigned int boot_time(void)
+{
+ static unsigned int boot_time = 0;
+ struct stat_info *stat_info = NULL;
+ if (boot_time == 0) {
+ if (procps_stat_new(&stat_info) < 0)
+ xerrx(EXIT_FAILURE, _("Unable to get system boot time"));
+ boot_time = STAT_GET(stat_info, STAT_SYS_TIME_OF_BOOT, ul_int);
+ procps_stat_unref(&stat_info);
+ }
+ return boot_time;
+}
+
+static unsigned long memory_total()
+{
+ static unsigned long memory_total = 0;
+ struct meminfo_info *mem_info = NULL;
+
+ if (memory_total == 0) {
+ if (procps_meminfo_new(&mem_info) < 0)
+ xerrx(EXIT_FAILURE,
+ _("Unable to get total memory"));
+ memory_total = MEMINFO_GET(mem_info, MEMINFO_MEM_TOTAL, ul_int);
+ procps_meminfo_unref(&mem_info);
+ }
+ return memory_total;
+}
+
+#define SECURE_ESCAPE_ARGS(dst, bytes, cells) do { \
+ if ((bytes) <= 0) return 0; \
+ *(dst) = '\0'; \
+ if ((bytes) >= INT_MAX) return 0; \
+ if ((cells) >= INT_MAX) return 0; \
+ if ((cells) <= 0) return 0; \
+} while (0)
+
+// copy a string that doesn't need to be 'escaped'
+static int escaped_copy(char *restrict dst, const char *restrict src, int bufsize, int *maxroom){
+ int n;
+
+ SECURE_ESCAPE_ARGS(dst, bufsize, *maxroom);
+ if (bufsize > *maxroom+1)
+ bufsize = *maxroom+1;
+ n = snprintf(dst, bufsize, "%s", src);
+ if (n < 0) {
+ *dst = '\0';
+ return 0;
+ }
+ if (n >= bufsize)
+ n = bufsize-1;
+ *maxroom -= n;
+ return n;
+}
+
+// duplicated from proc/escape.c so both can be made private
+static int escape_str_utf8 (char *dst, const char *src, int bufsize, int *maxcells) {
+ int my_cells = 0;
+ int my_bytes = 0;
+ mbstate_t s;
+
+ SECURE_ESCAPE_ARGS(dst, bufsize, *maxcells);
+
+ memset(&s, 0, sizeof (s));
+
+ for(;;) {
+ wchar_t wc;
+ int len = 0;
+
+ if(my_cells >= *maxcells || my_bytes+1 >= bufsize)
+ break;
+
+ if (!(len = mbrtowc (&wc, src, MB_CUR_MAX, &s)))
+ /* 'str' contains \0 */
+ break;
+
+ if (len < 0) {
+ /* invalid multibyte sequence -- zeroize state */
+ memset (&s, 0, sizeof (s));
+ *(dst++) = '?';
+ src++;
+ my_cells++;
+ my_bytes++;
+
+ } else if (len==1) {
+ /* non-multibyte */
+ *(dst++) = isprint(*src) ? *src : '?';
+ src++;
+ my_cells++;
+ my_bytes++;
+
+ } else if (!iswprint(wc)) {
+ /* multibyte - no printable */
+ *(dst++) = '?';
+ src+=len;
+ my_cells++;
+ my_bytes++;
+
+ } else {
+ /* multibyte - maybe, kinda "printable" */
+ int wlen = wcwidth(wc);
+ // Got space?
+ if (wlen > *maxcells-my_cells || len >= bufsize-(my_bytes+1)) break;
+ // safe multibyte
+ memcpy(dst, src, len);
+ dst += len;
+ src += len;
+ my_bytes += len;
+ if (wlen > 0) my_cells += wlen;
+ }
+ //fprintf(stdout, "cells: %d\n", my_cells);
+ }
+ *dst = '\0';
+
+ // fprintf(stderr, "maxcells: %d, my_cells; %d\n", *maxcells, my_cells);
+
+ *maxcells -= my_cells;
+ return my_bytes; // bytes of text, excluding the NUL
+}
+
+// duplicated from proc/escape.c so both can be made private
+static int escape_str (char *dst, const char *src, int bufsize, int *maxcells) {
+ unsigned char c;
+ int my_cells = 0;
+ int my_bytes = 0;
+ const char codes[] =
+ "Z..............................."
+ "||||||||||||||||||||||||||||||||"
+ "||||||||||||||||||||||||||||||||"
+ "|||||||||||||||||||||||||||||||."
+ "????????????????????????????????"
+ "????????????????????????????????"
+ "????????????????????????????????"
+ "????????????????????????????????";
+ static int utf_init=0;
+
+ if(utf_init==0){
+ /* first call -- check if UTF stuff is usable */
+ char *enc = nl_langinfo(CODESET);
+ utf_init = enc && strcasecmp(enc, "UTF-8")==0 ? 1 : -1;
+ }
+ if (utf_init==1 && MB_CUR_MAX>1) {
+ /* UTF8 locales */
+ return escape_str_utf8(dst, src, bufsize, maxcells);
+ }
+
+ SECURE_ESCAPE_ARGS(dst, bufsize, *maxcells);
+
+ if(bufsize > *maxcells+1) bufsize=*maxcells+1; // FIXME: assumes 8-bit locale
+
+ for(;;){
+ if(my_cells >= *maxcells || my_bytes+1 >= bufsize)
+ break;
+ c = (unsigned char) *(src++);
+ if(!c) break;
+ if(codes[c]!='|') c=codes[c];
+ my_cells++;
+ my_bytes++;
+ *(dst++) = c;
+ }
+ *dst = '\0';
+
+ *maxcells -= my_cells;
+ return my_bytes; // bytes of text, excluding the NUL
+}
+
+/***************************************************************************/
+/************ Lots of format functions, starting with the NOP **************/
+
+// so popular it can't be "static"
+int pr_nop(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(noop)
+ (void)pp;
+ return snprintf(outbuf, COLWID, "%c", '-');
+}
+
+/********* Unix 98 ************/
+/***
+
+Only comm and args are allowed to contain blank characters; all others are
+not. Any implementation-dependent variables will be specified in the system
+documentation along with the default header and indicating if the field
+may contain blank characters.
+
+Some headers do not have a standardized specifier!
+
+%CPU pcpu The % of cpu time used recently, with unspecified "recently".
+ADDR The address of the process.
+C Processor utilisation for scheduling.
+CMD The command name, or everything with -f.
+COMMAND args Command + args. May chop as desired. May use either version.
+COMMAND comm argv[0]
+ELAPSED etime Elapsed time since the process was started. [[dd-]hh:]mm:ss
+F Flags (octal and additive)
+GROUP group Effective group ID, prefer text over decimal.
+NI nice Decimal system scheduling priority, see nice(1).
+PGID pgid The decimal value of the process group ID.
+PID pid Decimal PID.
+PPID ppid Decimal PID.
+PRI Priority. Higher numbers mean lower priority.
+RGROUP rgroup Real group ID, prefer text over decimal.
+RUSER ruser Real user ID, prefer text over decimal.
+S The state of the process.
+STIME Starting time of the process.
+SZ The size in blocks of the core image of the process.
+TIME time Cumulative CPU time. [dd-]hh:mm:ss
+TT tty Name of tty in format used by who(1).
+TTY The controlling terminal for the process.
+UID UID, or name when -f
+USER user Effective user ID, prefer text over decimal.
+VSZ vsz Virtual memory size in decimal kB.
+WCHAN Where waiting/sleeping or blank if running.
+
+The nice value is used to compute the priority.
+
+For some undefined ones, Digital does:
+
+F flag Process flags -- but in hex!
+PRI pri Process priority
+S state Symbolic process status
+TTY tt,tty,tname,longtname -- all do "ttyp1", "console", "??"
+UID uid Process user ID (effective UID)
+WCHAN wchan Address of event on which a
+
+For some undefined ones, Sun does:
+
+ADDR addr memory address of the process
+C c Processor utilization for scheduling (obsolete).
+CMD
+F f
+S s state: OSRZT
+STIME start time, printed w/o blanks. If 24h old, months & days
+SZ size (in pages) of the swappable process's image in main memory
+TTY
+UID uid
+WCHAN wchan
+
+For some undefined ones, SCO does:
+ADDR addr Virtual address of the process' entry in the process table.
+SZ swappable size in kB of the virtual data and stack
+STIME stime hms or md time format
+***/
+
+/* Source & destination are known. Return bytes or screen characters? */
+//
+// OldLinux FreeBSD HPUX
+// ' ' ' ' ' ' ' '
+// 'L' ' \_ ' '`-' ' '
+// '+' ' \_ ' '|-' ' '
+// '|' ' | ' '| ' ' '
+//
+static int forest_helper(char *restrict const outbuf){
+ char *p = forest_prefix;
+ char *q = outbuf;
+ int rightward = max_rightward < OUTBUF_SIZE ? max_rightward : OUTBUF_SIZE-1;
+ *q = '\0';
+ if(!*p) return 0;
+ /* Arrrgh! somebody defined unix as 1 */
+ if(forest_type == 'u') goto unixy;
+ while(*p){
+ if (rightward < 4) break;
+ switch(*p){
+ case ' ': strcpy(q, " "); break;
+ case 'L': strcpy(q, " \\_ "); break;
+ case '+': strcpy(q, " \\_ "); break;
+ case '|': strcpy(q, " | "); break;
+ case '\0': return q-outbuf; /* redundant & not used */
+ }
+ q += 4;
+ rightward -= 4;
+ p++;
+ }
+ return q-outbuf; /* gcc likes this here */
+unixy:
+ while(*p){
+ if (rightward < 2) break;
+ switch(*p){
+ case ' ': strcpy(q, " "); break;
+ case 'L': strcpy(q, " "); break;
+ case '+': strcpy(q, " "); break;
+ case '|': strcpy(q, " "); break;
+ case '\0': return q-outbuf; /* redundant & not used */
+ }
+ q += 2;
+ rightward -= 2;
+ p++;
+ }
+ return q-outbuf; /* gcc likes this here */
+}
+
+
+/* XPG4-UNIX, according to Digital:
+The "args" and "command" specifiers show what was passed to the command.
+Modifications to the arguments are not shown.
+*/
+
+/*
+ * pp->cmd short accounting name (comm & ucomm)
+ * pp->cmdline long name with args (args & command)
+ * pp->environ environment
+ */
+
+// FIXME: some of these may hit the guard page in forest mode
+
+#define OUTBUF_SIZE_AT(endp) \
+ (((endp) >= outbuf && (endp) < outbuf + OUTBUF_SIZE) ? (outbuf + OUTBUF_SIZE) - (endp) : 0)
+
+/*
+ * "args", "cmd", "command" are all the same: long unless c
+ * "comm", "ucmd", "ucomm" are all the same: short unless -f
+ * ( determinations are made in display.c, we mostly deal with results ) */
+static int pr_args(char *restrict const outbuf, const proc_t *restrict const pp){
+ char *endp;
+ int rightward, fh;
+setREL3(CMDLINE,CMD,ENVIRON)
+ endp = outbuf;
+ rightward = max_rightward;
+ fh = forest_helper(outbuf);
+ endp += fh;
+ rightward -= fh;
+ if (!bsd_c_option)
+ endp += escape_str(endp, rSv(CMDLINE, str, pp), OUTBUF_SIZE_AT(endp), &rightward);
+ else
+ endp += escape_str(endp, rSv(CMD, str, pp), OUTBUF_SIZE_AT(endp), &rightward);
+ if(bsd_e_option && rightward>1) {
+ char *e = rSv(ENVIRON, str, pp);
+ if(*e != '-' || *(e+1) != '\0') {
+ *endp++ = ' ';
+ rightward--;
+ escape_str(endp, e, OUTBUF_SIZE_AT(endp), &rightward);
+ }
+ }
+ return max_rightward-rightward;
+}
+
+/*
+ * "args", "cmd", "command" are all the same: long unless c
+ * "comm", "ucmd", "ucomm" are all the same: short unless -f
+ * ( determinations are made in display.c, we mostly deal with results ) */
+static int pr_comm(char *restrict const outbuf, const proc_t *restrict const pp){
+ char *endp;
+ int rightward, fh;
+setREL3(CMD,CMDLINE,ENVIRON)
+ endp = outbuf;
+ rightward = max_rightward;
+ fh = forest_helper(outbuf);
+ endp += fh;
+ rightward -= fh;
+ if(unix_f_option)
+ endp += escape_str(endp, rSv(CMDLINE, str, pp), OUTBUF_SIZE_AT(endp), &rightward);
+ else
+ endp += escape_str(endp, rSv(CMD, str, pp), OUTBUF_SIZE_AT(endp), &rightward);
+ if(bsd_e_option && rightward>1) {
+ char *e = rSv(ENVIRON, str, pp);
+ if(*e != '-' || *(e+1) != '\0') {
+ *endp++ = ' ';
+ rightward--;
+ escape_str(endp, e, OUTBUF_SIZE_AT(endp), &rightward);
+ }
+ }
+ return max_rightward-rightward;
+}
+
+static int pr_cgname(char *restrict const outbuf,const proc_t *restrict const pp) {
+ int rightward;
+setREL1(CGNAME)
+ rightward = max_rightward;
+ escape_str(outbuf, rSv(CGNAME, str, pp), OUTBUF_SIZE, &rightward);
+ return max_rightward-rightward;
+}
+
+static int pr_cgroup(char *restrict const outbuf,const proc_t *restrict const pp) {
+ int rightward;
+setREL1(CGROUP)
+ rightward = max_rightward;
+ escape_str(outbuf, rSv(CGROUP, str, pp), OUTBUF_SIZE, &rightward);
+ return max_rightward-rightward;
+}
+
+/* Non-standard, from SunOS 5 */
+static int pr_fname(char *restrict const outbuf, const proc_t *restrict const pp){
+ char *endp;
+ int rightward, fh;
+setREL1(CMD)
+ endp = outbuf;
+ rightward = max_rightward;
+ fh = forest_helper(outbuf);
+ endp += fh;
+ rightward -= fh;
+ if (rightward>8) /* 8=default, but forest maybe feeds more */
+ rightward = 8;
+ endp += escape_str(endp, rSv(CMD, str, pp), OUTBUF_SIZE_AT(endp), &rightward);
+ //return endp - outbuf;
+ return max_rightward-rightward;
+}
+
+#undef OUTBUF_SIZE_AT
+
+/* elapsed wall clock time, [[dd-]hh:]mm:ss format (not same as "time") */
+static int pr_etime(char *restrict const outbuf, const proc_t *restrict const pp){
+ unsigned long t;
+ unsigned dd,hh,mm,ss;
+ char *cp;
+setREL1(TIME_ELAPSED)
+ cp = outbuf;
+ t = rSv(TIME_ELAPSED, real, pp);
+ ss = t%60;
+ t /= 60;
+ mm = t%60;
+ t /= 60;
+ hh = t%24;
+ t /= 24;
+ dd = t;
+ cp +=( dd ? snprintf(cp, COLWID, "%u-", dd) : 0 );
+ cp +=( (dd || hh) ? snprintf(cp, COLWID, "%02u:", hh) : 0 );
+ cp += snprintf(cp, COLWID, "%02u:%02u", mm, ss) ;
+ return (int)(cp-outbuf);
+}
+
+/* elapsed wall clock time in seconds */
+static int pr_etimes(char *restrict const outbuf, const proc_t *restrict const pp){
+ unsigned t;
+setREL1(TIME_ELAPSED)
+ t = rSv(TIME_ELAPSED, real, pp);
+ return snprintf(outbuf, COLWID, "%u", t);
+}
+
+/* "Processor utilisation for scheduling." --- we use %cpu w/o fraction */
+static int pr_c(char *restrict const outbuf, const proc_t *restrict const pp){
+ unsigned long long total_time; /* jiffies used by this process */
+ unsigned pcpu; /* scaled %cpu, 99 means 99% */
+ unsigned long long jiffies; /* jiffies of process life */
+setREL4(TICS_ALL,TICS_ALL_C,TIME_ELAPSED,UTILIZATION)
+ pcpu = 0;
+ if(include_dead_children) total_time = rSv(TICS_ALL_C, ull_int, pp);
+ else total_time = rSv(TICS_ALL, ull_int, pp);
+ jiffies = rSv(TIME_ELAPSED, real, pp) * Hertz;
+ if(jiffies) pcpu = (total_time * 100ULL) / jiffies;
+ if (pcpu > 99U) pcpu = 99U;
+ return snprintf(outbuf, COLWID, "%2u", pcpu);
+}
+
+/* normal %CPU in ##.# format. */
+static int pr_pcpu(char *restrict const outbuf, const proc_t *restrict const pp){
+ unsigned long long total_time; /* jiffies used by this process */
+ unsigned pcpu; /* scaled %cpu, 999 means 99.9% */
+ unsigned long long jiffies; /* jiffies of process life */
+setREL4(TICS_ALL,TICS_ALL_C,TIME_ELAPSED,UTILIZATION)
+ pcpu = 0;
+ if(include_dead_children) total_time = rSv(TICS_ALL_C, ull_int, pp);
+ else total_time = rSv(TICS_ALL, ull_int, pp);
+ jiffies = rSv(TIME_ELAPSED, real, pp) * Hertz;
+ if(jiffies) pcpu = (total_time * 1000ULL) / jiffies;
+ if (pcpu > 999U)
+ return snprintf(outbuf, COLWID, "%u", pcpu/10U);
+ return snprintf(outbuf, COLWID, "%u.%u", pcpu/10U, pcpu%10U);
+}
+
+/* this is a "per-mill" format, like %cpu with no decimal point */
+static int pr_cp(char *restrict const outbuf, const proc_t *restrict const pp){
+ unsigned long long total_time; /* jiffies used by this process */
+ unsigned pcpu; /* scaled %cpu, 999 means 99.9% */
+ unsigned long long jiffies; /* jiffies of process life */
+setREL4(TICS_ALL,TICS_ALL_C,TIME_ELAPSED,UTILIZATION)
+ pcpu = 0;
+ if(include_dead_children) total_time = rSv(TICS_ALL_C, ull_int, pp);
+ else total_time = rSv(TICS_ALL, ull_int, pp);
+ jiffies = rSv(TIME_ELAPSED, real, pp) * Hertz;
+ if(jiffies) pcpu = (total_time * 1000ULL) / jiffies;
+ if (pcpu > 999U) pcpu = 999U;
+ return snprintf(outbuf, COLWID, "%3u", pcpu);
+}
+
+static int pr_pgid(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(ID_PGRP)
+ return snprintf(outbuf, COLWID, "%u", rSv(ID_PGRP, s_int, pp));
+}
+static int pr_ppid(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(ID_PPID)
+ return snprintf(outbuf, COLWID, "%u", rSv(ID_PPID, s_int, pp));
+}
+
+/* cumulative CPU time, [dd-]hh:mm:ss format (not same as "etime") */
+static int pr_time(char *restrict const outbuf, const proc_t *restrict const pp){
+ unsigned long t;
+ unsigned dd,hh,mm,ss;
+ int c;
+setREL1(TIME_ALL)
+ t = rSv(TIME_ALL, real, pp);
+ ss = t%60;
+ t /= 60;
+ mm = t%60;
+ t /= 60;
+ hh = t%24;
+ t /= 24;
+ dd = t;
+ c =( dd ? snprintf(outbuf, COLWID, "%u-", dd) : 0 );
+ c +=( snprintf(outbuf+c, COLWID, "%02u:%02u:%02u", hh, mm, ss) );
+ return c;
+}
+
+/* cumulative CPU time in seconds (not same as "etimes") */
+static int pr_times(char *restrict const outbuf, const proc_t *restrict const pp){
+ unsigned long t;
+setREL1(TIME_ALL)
+ t = rSv(TIME_ALL, real, pp);
+ return snprintf(outbuf, COLWID, "%lu", t);
+}
+
+/* HP-UX puts this (I forget, vsz or vsize?) in kB and uses "sz" for pages.
+ * Unix98 requires "vsz" to be kB.
+ * Tru64 does both vsize and vsz like "1.23M"
+ *
+ * Our pp->vm_size is kB and our pp->vsize is pages.
+ *
+ * TODO: add flag for "1.23M" behavior, on this and other columns.
+ */
+static int pr_vsz(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(VM_SIZE)
+ return snprintf(outbuf, COLWID, "%lu", rSv(VM_SIZE, ul_int, pp));
+}
+
+//////////////////////////////////////////////////////////////////////////////////////
+
+// "PRI" is created by "opri", or by "pri" when -c is used.
+//
+// Unix98 only specifies that a high "PRI" is low priority.
+// Sun and SCO add the -c behavior. Sun defines "pri" and "opri".
+// Linux may use "priority" for historical purposes.
+//
+// According to the kernel's fs/proc/array.c and kernel/sched.c source,
+// the kernel reports it in /proc via this:
+// p->prio - MAX_RT_PRIO
+// such that "RT tasks are offset by -200. Normal tasks are centered
+// around 0, value goes from -16 to +15" but who knows if that is
+// before or after the conversion...
+//
+// <linux/sched.h> says:
+// MAX_RT_PRIO is currently 100. (so we see 0 in /proc)
+// RT tasks have a p->prio of 0 to 99. (so we see -100 to -1)
+// non-RT tasks are from 100 to 139. (so we see 0 to 39)
+// Lower values have higher priority, as in the UNIX standard.
+//
+// In any case, pp->priority+100 should get us back to what the kernel
+// has for p->prio.
+//
+// Test results with the "yes" program on a 2.6.x kernel:
+//
+// # ps -C19,_20 -o pri,opri,intpri,priority,ni,pcpu,pid,comm
+// PRI PRI PRI PRI NI %CPU PID COMMAND
+// 0 99 99 39 19 10.6 8686 19
+// 34 65 65 5 -20 94.7 8687 _20
+//
+// Grrr. So the UNIX standard "PRI" must NOT be from "pri".
+// Either of the others will do. We use "opri" for this.
+// (and use "pri" when the "-c" option is used)
+// Probably we should have Linux-specific "pri_for_l" and "pri_for_lc"
+//
+// sched_get_priority_min.2 says the Linux static priority is
+// 1..99 for RT and 0 for other... maybe 100 is kernel-only?
+//
+// A nice range would be -99..0 for RT and 1..40 for normal,
+// which is pp->priority+1. (3-digit max, positive is normal,
+// negative or 0 is RT, and meets the standard for PRI)
+//
+
+// legal as UNIX "PRI"
+// "priority" (was -20..20, now -100..39)
+static int pr_priority(char *restrict const outbuf, const proc_t *restrict const pp){ /* -20..20 */
+setREL1(PRIORITY)
+ return snprintf(outbuf, COLWID, "%d", rSv(PRIORITY, s_int, pp));
+}
+
+// legal as UNIX "PRI"
+// "intpri" and "opri" (was 39..79, now -40..99)
+static int pr_opri(char *restrict const outbuf, const proc_t *restrict const pp){ /* 39..79 */
+setREL1(PRIORITY)
+ return snprintf(outbuf, COLWID, "%d", 60 + rSv(PRIORITY, s_int, pp));
+}
+
+// legal as UNIX "PRI"
+// "pri_foo" -- match up w/ nice values of sleeping processes (-120..19)
+static int pr_pri_foo(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(PRIORITY)
+ return snprintf(outbuf, COLWID, "%d", rSv(PRIORITY, s_int, pp) - 20);
+}
+
+// legal as UNIX "PRI"
+// "pri_bar" -- makes RT pri show as negative (-99..40)
+static int pr_pri_bar(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(PRIORITY)
+ return snprintf(outbuf, COLWID, "%d", rSv(PRIORITY, s_int, pp) + 1);
+}
+
+// legal as UNIX "PRI"
+// "pri_baz" -- the kernel's ->prio value, as of Linux 2.6.8 (1..140)
+static int pr_pri_baz(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(PRIORITY)
+ return snprintf(outbuf, COLWID, "%d", rSv(PRIORITY, s_int, pp) + 100);
+}
+
+// not legal as UNIX "PRI"
+// "pri" (was 20..60, now 0..139)
+static int pr_pri(char *restrict const outbuf, const proc_t *restrict const pp){ /* 20..60 */
+setREL1(PRIORITY)
+ return snprintf(outbuf, COLWID, "%d", 39 - rSv(PRIORITY, s_int, pp));
+}
+
+// not legal as UNIX "PRI"
+// "pri_api" -- match up w/ RT API (-40..99)
+static int pr_pri_api(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(PRIORITY)
+ return snprintf(outbuf, COLWID, "%d", -1 - rSv(PRIORITY, s_int, pp));
+}
+
+// Linux applies nice value in the scheduling policies (classes)
+// SCHED_OTHER(0) and SCHED_BATCH(3). Ref: sched_setscheduler(2).
+// Also print nice value for old kernels which didn't use scheduling
+// policies (-1).
+static int pr_nice(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL2(NICE,SCHED_CLASS)
+ if(rSv(SCHED_CLASS, s_int, pp)!=0 && rSv(SCHED_CLASS, s_int, pp)!=3 && rSv(SCHED_CLASS, s_int, pp)!=-1) return snprintf(outbuf, COLWID, "-");
+ return snprintf(outbuf, COLWID, "%d", rSv(NICE, s_int, pp));
+}
+
+static int pr_oom_adj(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(OOM_ADJ)
+ return snprintf(outbuf, COLWID, "%d", rSv(OOM_ADJ, s_int, pp));
+}
+
+static int pr_oom(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(OOM_SCORE)
+ return snprintf(outbuf, COLWID, "%d", rSv(OOM_SCORE, s_int, pp));
+}
+// HP-UX "cls": RT RR RR2 ???? HPUX FIFO KERN
+// Solaris "class": SYS TS FX IA RT FSS (FIFO is RR w/ Inf quant)
+// FIFO+RR share RT; FIFO has Inf quant
+// IA=interactive; FX=fixed; TS=timeshare; SYS=system
+// FSS=fairshare; INTS=interrupts
+// Tru64 "policy": FF RR TS
+// IRIX "class": RT TS B BC WL GN
+// RT=real-time; TS=time-share; B=batch; BC=batch-critical
+// WL=weightless; GN=gang-scheduled
+// see miser(1) for this; PRI has some letter codes too
+static int pr_class(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(SCHED_CLASS)
+ switch(rSv(SCHED_CLASS, s_int, pp)){
+ case -1: return snprintf(outbuf, COLWID, "-"); // not reported
+ case 0: return snprintf(outbuf, COLWID, "TS"); // SCHED_OTHER SCHED_NORMAL
+ case 1: return snprintf(outbuf, COLWID, "FF"); // SCHED_FIFO
+ case 2: return snprintf(outbuf, COLWID, "RR"); // SCHED_RR
+ case 3: return snprintf(outbuf, COLWID, "B"); // SCHED_BATCH
+ case 4: return snprintf(outbuf, COLWID, "ISO"); // reserved for SCHED_ISO (Con Kolivas)
+ case 5: return snprintf(outbuf, COLWID, "IDL"); // SCHED_IDLE
+ case 6: return snprintf(outbuf, COLWID, "DLN"); // SCHED_DEADLINE
+ case 7: return snprintf(outbuf, COLWID, "#7"); //
+ case 8: return snprintf(outbuf, COLWID, "#8"); //
+ case 9: return snprintf(outbuf, COLWID, "#9"); //
+ default: return snprintf(outbuf, COLWID, "?"); // unknown value
+ }
+}
+
+// Based on "type", FreeBSD would do:
+// REALTIME "real:%u", prio
+// NORMAL "normal"
+// IDLE "idle:%u", prio
+// default "%u:%u", type, prio
+// We just print the priority, and have other keywords for type.
+static int pr_rtprio(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL2(SCHED_CLASS,PRIORITY_RT)
+ if(rSv(SCHED_CLASS, s_int, pp)==0 || rSv(SCHED_CLASS, s_int, pp)==-1) return snprintf(outbuf, COLWID, "-");
+ return snprintf(outbuf, COLWID, "%d", rSv(PRIORITY_RT, s_int, pp));
+}
+
+static int pr_sched(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(SCHED_CLASS)
+ if(rSv(SCHED_CLASS, s_int, pp)==-1) return snprintf(outbuf, COLWID, "-");
+ return snprintf(outbuf, COLWID, "%d", rSv(SCHED_CLASS, s_int, pp));
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+static int pr_wchan(char *restrict const outbuf, const proc_t *restrict const pp){
+/*
+ * Unix98 says "blank if running" and also "no blanks"! :-(
+ * Unix98 also says to use '-' if something is meaningless.
+ * Digital uses both '*' and '-', with undocumented differences.
+ * (the '*' for -1 (rare) and the '-' for 0)
+ * Sun claims to use a blank AND use '-', in the same man page.
+ * Perhaps "blank" should mean '-'.
+ *
+ * AIX uses '-' for running processes, the location when there is
+ * only one thread waiting in the kernel, and '*' when there is
+ * more than one thread waiting in the kernel.
+ *
+ * The output should be truncated to maximal columns width -- overflow
+ * is not supported for the "wchan".
+ */
+ const char *w;
+ size_t len;
+setREL1(WCHAN_NAME)
+ w = rSv(WCHAN_NAME, str, pp);
+ len = strlen(w);
+ if(len>max_rightward) len=max_rightward;
+ memcpy(outbuf, w, len);
+ outbuf[len] = '\0';
+ return len;
+}
+
+/* Terrible trunctuation, like BSD crap uses: I999 J999 K999 */
+/* FIXME: disambiguate /dev/tty69 and /dev/pts/69. */
+static int pr_tty4(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(TTY_NUMBER)
+ return snprintf(outbuf, COLWID, "%s", rSv(TTY_NUMBER, str, pp));
+}
+
+/* Unix98: format is unspecified, but must match that used by who(1). */
+static int pr_tty8(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(TTY_NAME)
+ return snprintf(outbuf, COLWID, "%s", rSv(TTY_NAME, str, pp));
+}
+
+#if 0
+/* This BSD state display may contain spaces, which is illegal. */
+static int pr_oldstate(char *restrict const outbuf, const proc_t *restrict const pp){
+ return snprintf(outbuf, COLWID, "%s", status(pp));
+}
+#endif
+
+// This state display is Unix98 compliant and has lots of info like BSD.
+static int pr_stat(char *restrict const outbuf, const proc_t *restrict const pp){
+ int end;
+ if (!outbuf) {
+ chkREL(STATE)
+ chkREL(NICE)
+ chkREL(VM_RSS_LOCKED)
+ chkREL(ID_SESSION)
+ chkREL(ID_TGID)
+ chkREL(NLWP)
+ chkREL(ID_PGRP)
+ chkREL(ID_TPGID)
+ return 0;
+ }
+ end = 0;
+ outbuf[end++] = rSv(STATE, s_ch, pp);
+// if(rSv(RSS, ul_int, pp)==0 && rSv(STATE, s_ch, pp)!='Z') outbuf[end++] = 'W'; // useless "swapped out"
+ if(rSv(NICE, s_int, pp) < 0) outbuf[end++] = '<';
+ if(rSv(NICE, s_int, pp) > 0) outbuf[end++] = 'N';
+// In this order, NetBSD would add:
+// traced 'X'
+// systrace 'x'
+// exiting 'E' (not printed for zombies)
+// vforked 'V'
+// system 'K' (and do not print 'L' too)
+ if(rSv(VM_RSS_LOCKED, ul_int, pp)) outbuf[end++] = 'L';
+ if(rSv(ID_SESSION, s_int, pp) == rSv(ID_TGID, s_int, pp)) outbuf[end++] = 's'; // session leader
+ if(rSv(NLWP, s_int, pp) > 1) outbuf[end++] = 'l'; // multi-threaded
+ if(rSv(ID_PGRP, s_int, pp) == rSv(ID_TPGID, s_int, pp)) outbuf[end++] = '+'; // in foreground process group
+ outbuf[end] = '\0';
+ return end;
+}
+
+/* This minimal state display is Unix98 compliant, like SCO and SunOS 5 */
+static int pr_s(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(STATE)
+ outbuf[0] = rSv(STATE, s_ch, pp);
+ outbuf[1] = '\0';
+ return 1;
+}
+
+static int pr_flag(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(FLAGS)
+ /* Unix98 requires octal flags */
+ /* this user-hostile and volatile junk gets 1 character */
+ return snprintf(outbuf, COLWID, "%o", (unsigned)(rSv(FLAGS, ul_int, pp)>>6U)&0x7U);
+}
+
+// plus these: euid,ruid,egroup,rgroup (elsewhere in this file)
+
+/*********** non-standard ***********/
+
+/*** BSD
+sess session pointer
+(SCO has:Process session leader ID as a decimal value. (SESSION))
+jobc job control count
+cpu short-term cpu usage factor (for scheduling)
+sl sleep time (in seconds; 127 = infinity)
+re core residency time (in seconds; 127 = infinity)
+pagein pageins (same as majflt)
+lim soft memory limit
+tsiz text size (in Kbytes)
+***/
+
+static int pr_stackp(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(ADDR_STACK_START)
+ return snprintf(outbuf, COLWID, "%0*lx", (int)(2*sizeof(long)), rSv(ADDR_STACK_START, ul_int, pp));
+}
+
+static int pr_esp(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(ADDR_CURR_ESP)
+ return snprintf(outbuf, COLWID, "%0*lx", (int)(2*sizeof(long)), rSv(ADDR_CURR_ESP, ul_int, pp));
+}
+
+static int pr_eip(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(ADDR_CURR_EIP)
+ return snprintf(outbuf, COLWID, "%0*lx", (int)(2*sizeof(long)), rSv(ADDR_CURR_EIP, ul_int, pp));
+}
+
+static int pr_bsdtime(char *restrict const outbuf, const proc_t *restrict const pp){
+ unsigned long long t;
+ unsigned u;
+setREL2(TICS_ALL,TICS_ALL_C)
+ if(include_dead_children) t = rSv(TICS_ALL_C, ull_int, pp);
+ else t = rSv(TICS_ALL, ull_int, pp);
+ u = t / Hertz;
+ return snprintf(outbuf, COLWID, "%3u:%02u", u/60U, u%60U);
+}
+
+static int pr_bsdstart(char *restrict const outbuf, const proc_t *restrict const pp){
+ time_t start;
+ time_t seconds_ago;
+setREL1(TICS_BEGAN)
+ start = boot_time() + rSv(TICS_BEGAN, ull_int, pp) / Hertz;
+ seconds_ago = seconds_since_1970 - start;
+ if(seconds_ago < 0) seconds_ago=0;
+ if(seconds_ago > 3600*24) snprintf(outbuf, COLWID, "%s", ctime(&start)+4);
+ else snprintf(outbuf, COLWID, "%s", ctime(&start)+10);
+ outbuf[6] = '\0';
+ return 6;
+}
+
+/* HP-UX puts this in pages and uses "vsz" for kB */
+static int pr_sz(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(VM_SIZE)
+ return snprintf(outbuf, COLWID, "%lu", rSv(VM_SIZE, ul_int, pp)/(page_size/1024));
+}
+
+/*
+ * FIXME: trs,drs,tsiz,dsiz,m_trs,m_drs,vm_exe,vm_data,trss
+ * I suspect some/all of those are broken. They seem to have been
+ * inherited by Linux and AIX from early BSD systems. FreeBSD only
+ * retains tsiz. The prefixed versions come from Debian.
+ * Sun and Digital have none of this crap. The code here comes
+ * from an old Linux ps, and might not be correct for ELF executables.
+ *
+ * AIX TRS size of resident-set (real memory) of text
+ * AIX TSIZ size of text (shared-program) image
+ * FreeBSD tsiz text size (in Kbytes)
+ * 4.3BSD NET/2 trss text resident set size (in Kbytes)
+ * 4.3BSD NET/2 tsiz text size (in Kbytes)
+ */
+
+/* kB data size. See drs, tsiz & trs. */
+static int pr_dsiz(char *restrict const outbuf, const proc_t *restrict const pp){
+ long dsiz;
+setREL3(VSIZE_BYTES,ADDR_CODE_END,ADDR_CODE_START)
+ dsiz = 0;
+ if(rSv(VSIZE_BYTES, ul_int, pp)) dsiz += (rSv(VSIZE_BYTES, ul_int, pp) - rSv(ADDR_CODE_END, ul_int, pp) + rSv(ADDR_CODE_START, ul_int, pp)) >> 10;
+ return snprintf(outbuf, COLWID, "%ld", dsiz);
+}
+
+/* kB text (code) size. See trs, dsiz & drs. */
+static int pr_tsiz(char *restrict const outbuf, const proc_t *restrict const pp){
+ long tsiz;
+setREL3(VSIZE_BYTES,ADDR_CODE_END,ADDR_CODE_START)
+ tsiz = 0;
+ if(rSv(VSIZE_BYTES, ul_int, pp)) tsiz += (rSv(ADDR_CODE_END, ul_int, pp) - rSv(ADDR_CODE_START, ul_int, pp)) >> 10;
+ return snprintf(outbuf, COLWID, "%ld", tsiz);
+}
+
+/* kB _resident_ data size. See dsiz, tsiz & trs. */
+static int pr_drs(char *restrict const outbuf, const proc_t *restrict const pp){
+ long drs;
+setREL3(VSIZE_BYTES,ADDR_CODE_END,ADDR_CODE_START)
+ drs = 0;
+ if(rSv(VSIZE_BYTES, ul_int, pp)) drs += (rSv(VSIZE_BYTES, ul_int, pp) - rSv(ADDR_CODE_END, ul_int, pp) + rSv(ADDR_CODE_START, ul_int, pp)) >> 10;
+ return snprintf(outbuf, COLWID, "%ld", drs);
+}
+
+/* kB text _resident_ (code) size. See tsiz, dsiz & drs. */
+static int pr_trs(char *restrict const outbuf, const proc_t *restrict const pp){
+ long trs;
+setREL3(VSIZE_BYTES,ADDR_CODE_END,ADDR_CODE_START)
+ trs = 0;
+ if(rSv(VSIZE_BYTES, ul_int, pp)) trs += (rSv(ADDR_CODE_END, ul_int, pp) - rSv(ADDR_CODE_START, ul_int, pp)) >> 10;
+ return snprintf(outbuf, COLWID, "%ld", trs);
+}
+
+static int pr_swapable(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL3(VM_DATA,VM_STACK,VSIZE_BYTES) // that last enum will approximate sort needs
+ return snprintf(outbuf, COLWID, "%lu", rSv(VM_DATA, ul_int, pp) + rSv(VM_STACK, ul_int, pp));
+}
+
+/* nasty old Debian thing */
+static int pr_size(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(VSIZE_BYTES)
+ return snprintf(outbuf, COLWID, "%lu", rSv(VSIZE_BYTES, ul_int, pp));
+}
+
+static int pr_minflt(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL2(FLT_MIN,FLT_MIN_C)
+ unsigned long flt = rSv(FLT_MIN, ul_int, pp);
+ if(include_dead_children) flt = rSv(FLT_MIN_C, ul_int, pp);
+ return snprintf(outbuf, COLWID, "%lu", flt);
+}
+
+static int pr_majflt(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL2(FLT_MAJ,FLT_MAJ_C)
+ unsigned long flt = rSv(FLT_MAJ, ul_int, pp);
+ if(include_dead_children) flt = rSv(FLT_MAJ_C, ul_int, pp);
+ return snprintf(outbuf, COLWID, "%lu", flt);
+}
+
+static int pr_lim(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(RSS_RLIM)
+ if(rSv(RSS_RLIM, ul_int, pp) == RLIM_INFINITY){
+ outbuf[0] = 'x';
+ outbuf[1] = 'x';
+ outbuf[2] = '\0';
+ return 2;
+ }
+ return snprintf(outbuf, COLWID, "%5lu", rSv(RSS_RLIM, ul_int, pp) >> 10L);
+}
+
+/* should print leading tilde ('~') if process is bound to the CPU */
+static int pr_psr(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(PROCESSOR)
+ return snprintf(outbuf, COLWID, "%d", rSv(PROCESSOR, s_int, pp));
+}
+
+static int pr_pss(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(SMAP_PSS)
+ return snprintf(outbuf, COLWID, "%lu", rSv(SMAP_PSS, ul_int, pp));
+}
+
+static int pr_numa(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(PROCESSOR_NODE)
+ return snprintf(outbuf, COLWID, "%d", rSv(PROCESSOR_NODE, s_int, pp));
+}
+
+static int pr_rss(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(VM_RSS)
+ return snprintf(outbuf, COLWID, "%lu", rSv(VM_RSS, ul_int, pp));
+}
+
+/* pp->vm_rss * 1000 would overflow on 32-bit systems with 64 GB memory */
+static int pr_pmem(char *restrict const outbuf, const proc_t *restrict const pp){
+ unsigned long pmem;
+setREL1(VM_RSS)
+ pmem = 0;
+ pmem = rSv(VM_RSS, ul_int, pp) * 1000ULL / memory_total();
+ if (pmem > 999) pmem = 999;
+ return snprintf(outbuf, COLWID, "%2u.%u", (unsigned)(pmem/10), (unsigned)(pmem%10));
+}
+
+// Format cannot be %c as the length changes depending on locale
+#define DEFAULT_LSTART_FORMAT "%a %b %e %H:%M:%S %Y"
+static int pr_lstart(char *restrict const outbuf, const proc_t *restrict const pp){
+ time_t t;
+ struct tm start_time;
+ size_t len;
+setREL1(TICS_BEGAN)
+ t = boot_time() + rSv(TICS_BEGAN, ull_int, pp) / Hertz;
+ if (localtime_r(&t, &start_time) == NULL)
+ return 0;
+ len = strftime(outbuf, COLWID,
+ (lstart_format?lstart_format:DEFAULT_LSTART_FORMAT), &start_time);
+ if (len <= 0 || len >= COLWID)
+ outbuf[len = 0] = '\0';
+ return len;
+}
+
+/* Unix98 specifies a STIME header for a column that shows the start
+ * time of the process, but does not specify a format or format specifier.
+ * From the general Unix98 rules, we know there must not be any spaces.
+ * Most systems violate that rule, though the Solaris documentation
+ * claims to print the column without spaces. (NOT!)
+ *
+ * So this isn't broken, but could be renamed to u98_std_stime,
+ * as long as it still shows as STIME when using the -f option.
+ */
+static int pr_stime(char *restrict const outbuf, const proc_t *restrict const pp){
+ struct tm proc_time;
+ struct tm our_time;
+ time_t t;
+ const char *fmt;
+ int tm_year;
+ int tm_yday;
+ size_t len;
+setREL1(TICS_BEGAN)
+ if (localtime_r(&seconds_since_1970, &our_time) == NULL)
+ return 0;
+ tm_year = our_time.tm_year;
+ tm_yday = our_time.tm_yday;
+ t = boot_time() + rSv(TICS_BEGAN, ull_int, pp) / Hertz;
+ if (localtime_r(&t, &proc_time) == NULL)
+ return 0;
+ fmt = "%H:%M"; /* 03:02 23:59 */
+ if(tm_yday != proc_time.tm_yday) fmt = "%b%d"; /* Jun06 Aug27 */
+ if(tm_year != proc_time.tm_year) fmt = "%Y"; /* 1991 2001 */
+ len = strftime(outbuf, COLWID, fmt, &proc_time);
+ if(len <= 0 || len >= COLWID) outbuf[len = 0] = '\0';
+ return len;
+}
+
+static int pr_start(char *restrict const outbuf, const proc_t *restrict const pp){
+ time_t t;
+ char *str;
+setREL1(TICS_BEGAN)
+ t = boot_time() + rSv(TICS_BEGAN, ull_int, pp) / Hertz;
+ str = ctime(&t);
+ if(str[8]==' ') str[8]='0';
+ if(str[11]==' ') str[11]='0';
+ if((unsigned long)t+60*60*24 > (unsigned long)seconds_since_1970)
+ return snprintf(outbuf, COLWID, "%8.8s", str+11);
+ return snprintf(outbuf, COLWID, " %6.6s", str+4);
+}
+
+static int help_pr_sig(char *restrict const outbuf, const char *restrict const sig){
+ int ret;
+ const size_t len = strlen(sig);
+
+ if (signal_names) {
+ int rightward;
+ rightward = max_rightward;
+ if ( (ret = print_signame(outbuf, sig, rightward)) > 0)
+ return ret;
+ }
+
+ if(wide_signals){
+ if(len>8) return snprintf(outbuf, COLWID, "%s", sig);
+ return snprintf(outbuf, COLWID, "00000000%s", sig);
+ }
+ if(len-strspn(sig,"0") > 8)
+ return snprintf(outbuf, COLWID, "<%s", sig+len-8);
+ if(len < 8)
+ return snprintf(outbuf, COLWID, "%s%s", "00000000"+len, sig);
+ return snprintf(outbuf, COLWID, "%s", sig+len-8);
+}
+
+// This one is always thread-specific pending. (from Dragonfly BSD)
+static int pr_tsig(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(SIGPENDING)
+ return help_pr_sig(outbuf, rSv(SIGPENDING, str, pp));
+}
+// This one is (wrongly?) thread-specific when printing thread lines,
+// but process-pending otherwise.
+static int pr_sig(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(SIGNALS)
+ return help_pr_sig(outbuf, rSv(SIGNALS, str, pp));
+}
+static int pr_sigmask(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(SIGBLOCKED)
+ return help_pr_sig(outbuf, rSv(SIGBLOCKED, str, pp));
+}
+static int pr_sigignore(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(SIGIGNORE)
+ return help_pr_sig(outbuf, rSv(SIGIGNORE, str, pp));
+}
+static int pr_sigcatch(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(SIGCATCH)
+ return help_pr_sig(outbuf, rSv(SIGCATCH, str, pp));
+}
+
+static int pr_uss(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(SMAP_PRV_TOTAL)
+ return snprintf(outbuf, COLWID, "%lu", rSv(SMAP_PRV_TOTAL, ul_int, pp));
+}
+
+////////////////////////////////////////////////////////////////////////////////
+
+/*
+ * internal terms: ruid euid suid fuid
+ * kernel vars: uid euid suid fsuid
+ * command args: ruid uid svuid n/a
+ */
+
+static int pr_egid(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(ID_EGID)
+ return snprintf(outbuf, COLWID, "%d", rSv(ID_EGID, u_int, pp));
+}
+static int pr_rgid(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(ID_RGID)
+ return snprintf(outbuf, COLWID, "%d", rSv(ID_RGID, u_int, pp));
+}
+static int pr_sgid(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(ID_SGID)
+ return snprintf(outbuf, COLWID, "%d", rSv(ID_SGID, u_int, pp));
+}
+static int pr_fgid(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(ID_FGID)
+ return snprintf(outbuf, COLWID, "%d", rSv(ID_FGID, u_int, pp));
+}
+
+static int pr_euid(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(ID_EUID)
+ return snprintf(outbuf, COLWID, "%d", rSv(ID_EUID, u_int, pp));
+}
+static int pr_ruid(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(ID_RUID)
+ return snprintf(outbuf, COLWID, "%d", rSv(ID_RUID, u_int, pp));
+}
+static int pr_suid(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(ID_SUID)
+ return snprintf(outbuf, COLWID, "%d", rSv(ID_SUID, u_int, pp));
+}
+static int pr_fuid(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(ID_FUID)
+ return snprintf(outbuf, COLWID, "%d", rSv(ID_FUID, u_int, pp));
+}
+static int pr_luid(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(ID_LOGIN)
+ if(rSv(ID_LOGIN, s_int, pp)==-1) return snprintf(outbuf, COLWID, "-");
+ return snprintf(outbuf, COLWID, "%d", rSv(ID_LOGIN, s_int, pp));
+}
+
+// The Open Group Base Specifications Issue 6 (IEEE Std 1003.1, 2004 Edition)
+// requires that user and group names print as decimal numbers if there is
+// not enough room in the column. However, we will now truncate such names
+// and provide a visual hint of such truncation. Hopefully, this will reduce
+// the volume of bug reports regarding that former 'feature'.
+//
+// The UNIX and POSIX way to change column width is to rename it:
+// ps -o pid,user=CumbersomeUserNames -o comm
+// The easy way is to directly specify the desired width:
+// ps -o pid,user:19,comm
+//
+static int do_pr_name(char *restrict const outbuf, const char *restrict const name, unsigned u){
+ if(!user_is_number){
+ int rightward = OUTBUF_SIZE; /* max cells */
+ int len; /* real cells */
+
+ escape_str(outbuf, name, OUTBUF_SIZE, &rightward);
+ len = OUTBUF_SIZE-rightward;
+
+ if(len <= (int)max_rightward)
+ return len; /* returns number of cells */
+
+ // only use '+' when not on a multi-byte char, else show uid
+ if (max_rightward >= 1 && (unsigned)outbuf[max_rightward-1] < 127) {
+ len = max_rightward-1;
+ outbuf[len++] = '+';
+ outbuf[len] = 0;
+ return len;
+ }
+ }
+ return snprintf(outbuf, COLWID, "%u", u);
+}
+
+static int pr_ruser(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL2(ID_RUSER,ID_RUID)
+ return do_pr_name(outbuf, rSv(ID_RUSER, str, pp), rSv(ID_RUID, u_int, pp));
+}
+static int pr_euser(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL2(ID_EUSER,ID_EUID)
+ return do_pr_name(outbuf, rSv(ID_EUSER, str, pp), rSv(ID_EUID, u_int, pp));
+}
+static int pr_fuser(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL2(ID_FUSER,ID_FUID)
+ return do_pr_name(outbuf, rSv(ID_FUSER, str, pp), rSv(ID_FUID, u_int, pp));
+}
+static int pr_suser(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL2(ID_SUSER,ID_SUID)
+ return do_pr_name(outbuf, rSv(ID_SUSER, str, pp), rSv(ID_SUID, u_int, pp));
+}
+static int pr_egroup(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL2(ID_EGROUP,ID_EGID)
+ return do_pr_name(outbuf, rSv(ID_EGROUP, str, pp), rSv(ID_EGID, u_int, pp));
+}
+static int pr_rgroup(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL2(ID_RGROUP,ID_RGID)
+ return do_pr_name(outbuf, rSv(ID_RGROUP, str, pp), rSv(ID_RGID, u_int, pp));
+}
+static int pr_fgroup(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL2(ID_FGROUP,ID_FGID)
+ return do_pr_name(outbuf, rSv(ID_FGROUP, str, pp), rSv(ID_FGID, u_int, pp));
+}
+static int pr_sgroup(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL2(ID_SGROUP,ID_SGID)
+ return do_pr_name(outbuf, rSv(ID_SGROUP, str, pp), rSv(ID_SGID, u_int, pp));
+}
+
+//////////////////////////////////////////////////////////////////////////////////
+
+// IO stats
+static int pr_rbytes(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(IO_READ_BYTES)
+ return snprintf(outbuf, COLWID, "%lu", rSv(IO_READ_BYTES, ul_int, pp));
+}
+static int pr_rchars(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(IO_READ_CHARS)
+ return snprintf(outbuf, COLWID, "%lu", rSv(IO_READ_CHARS, ul_int, pp));
+}
+static int pr_rops(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(IO_READ_OPS)
+ return snprintf(outbuf, COLWID, "%lu", rSv(IO_READ_OPS, ul_int, pp));
+}
+static int pr_wbytes(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(IO_WRITE_BYTES)
+ return snprintf(outbuf, COLWID, "%lu", rSv(IO_WRITE_BYTES, ul_int, pp));
+}
+static int pr_wcbytes(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(IO_WRITE_CBYTES)
+ return snprintf(outbuf, COLWID, "%lu", rSv(IO_WRITE_CBYTES, ul_int, pp));
+}
+static int pr_wchars(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(IO_WRITE_CHARS)
+ return snprintf(outbuf, COLWID, "%lu", rSv(IO_WRITE_CHARS, ul_int, pp));
+}
+static int pr_wops(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(IO_WRITE_OPS)
+ return snprintf(outbuf, COLWID, "%lu", rSv(IO_WRITE_OPS, ul_int, pp));
+}
+
+//////////////////////////////////////////////////////////////////////////////////
+
+// PID pid, TGID tgid
+static int pr_procs(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(ID_TGID)
+ return snprintf(outbuf, COLWID, "%d", rSv(ID_TGID, s_int, pp));
+}
+// LWP lwp, SPID spid, TID tid
+static int pr_tasks(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(ID_PID)
+ return snprintf(outbuf, COLWID, "%d", rSv(ID_PID, s_int, pp));
+}
+// thcount THCNT
+static int pr_nlwp(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(NLWP)
+ return snprintf(outbuf, COLWID, "%d", rSv(NLWP, s_int, pp));
+}
+
+static int pr_sess(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(ID_SESSION)
+ return snprintf(outbuf, COLWID, "%d", rSv(ID_SESSION, s_int, pp));
+}
+
+static int pr_supgid(char *restrict const outbuf, const proc_t *restrict const pp){
+ int rightward;
+setREL1(SUPGIDS)
+ rightward = max_rightward;
+ escaped_copy(outbuf, rSv(SUPGIDS, str, pp), OUTBUF_SIZE, &rightward);
+ return max_rightward-rightward;
+}
+
+static int pr_supgrp(char *restrict const outbuf, const proc_t *restrict const pp){
+ int rightward;
+setREL1(SUPGROUPS)
+ rightward = max_rightward;
+ escape_str(outbuf, rSv(SUPGROUPS, str, pp), OUTBUF_SIZE, &rightward);
+ return max_rightward-rightward;
+}
+
+static int pr_tpgid(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(ID_TPGID)
+ return snprintf(outbuf, COLWID, "%d", rSv(ID_TPGID, s_int, pp));
+}
+
+/* SGI uses "cpu" to print the processor ID with header "P" */
+static int pr_sgi_p(char *restrict const outbuf, const proc_t *restrict const pp){ /* FIXME */
+setREL2(STATE,PROCESSOR)
+ if(rSv(STATE, s_ch, pp) == 'R') return snprintf(outbuf, COLWID, "%u", rSv(PROCESSOR, u_int, pp));
+ return snprintf(outbuf, COLWID, "*");
+}
+
+/* full path to executable */
+static int pr_exe(char *restrict const outbuf, const proc_t *restrict const pp){
+ int rightward;
+setREL1(EXE)
+ rightward = max_rightward;
+ escape_str(outbuf, rSv(EXE, str, pp), OUTBUF_SIZE, &rightward);
+ return max_rightward-rightward;
+}
+
+/* %cpu utilization over task lifetime, as ##.### format */
+static int pr_utilization(char *restrict const outbuf, const proc_t *restrict const pp){
+double cu;
+setREL1(UTILIZATION)
+ cu = rSv(UTILIZATION, real, pp);
+ /* this check is really just for us (the ps program) since we will be very
+ short lived and the library might reflect 100% or even more utilization */
+ if (cu > 99.0) cu = 99.999;
+ return snprintf(outbuf, COLWID, "%#.3f", cu);
+}
+
+/* %cpu utilization (plus dead children) over task lifetime, as ##.### format */
+static int pr_utilization_c(char *restrict const outbuf, const proc_t *restrict const pp){
+double cu;
+setREL1(UTILIZATION_C)
+ cu = rSv(UTILIZATION_C, real, pp);
+ /* this check is really just for us (the ps program) since we will be very
+ short lived and the library might reflect 100% or even more utilization */
+ if (cu > 99.0) cu = 99.999;
+ return snprintf(outbuf, COLWID, "%#.3f", cu);
+}
+
+/************************* Systemd stuff ********************************/
+static int pr_sd_unit(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(SD_UNIT)
+ return snprintf(outbuf, COLWID, "%s", rSv(SD_UNIT, str, pp));
+}
+
+static int pr_sd_session(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(SD_SESS)
+ return snprintf(outbuf, COLWID, "%s", rSv(SD_SESS, str, pp));
+}
+
+static int pr_sd_ouid(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(SD_OUID)
+ return snprintf(outbuf, COLWID, "%s", rSv(SD_OUID, str, pp));
+}
+
+static int pr_sd_machine(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(SD_MACH)
+ return snprintf(outbuf, COLWID, "%s", rSv(SD_MACH, str, pp));
+}
+
+static int pr_sd_uunit(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(SD_UUNIT)
+ return snprintf(outbuf, COLWID, "%s", rSv(SD_UUNIT, str, pp));
+}
+
+static int pr_sd_seat(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(SD_SEAT)
+ return snprintf(outbuf, COLWID, "%s", rSv(SD_SEAT, str, pp));
+}
+
+static int pr_sd_slice(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(SD_SLICE)
+ return snprintf(outbuf, COLWID, "%s", rSv(SD_SLICE, str, pp));
+}
+/************************ Linux namespaces ******************************/
+
+#define _pr_ns(NAME, ID)\
+static int pr_##NAME(char *restrict const outbuf, const proc_t *restrict const pp) {\
+ setREL1(NS_ ## ID) \
+ if (rSv(NS_ ## ID, ul_int, pp)) \
+ return snprintf(outbuf, COLWID, "%lu", rSv(NS_ ## ID, ul_int, pp)); \
+ else \
+ return snprintf(outbuf, COLWID, "-"); \
+}
+_pr_ns(cgroupns, CGROUP);
+_pr_ns(ipcns, IPC);
+_pr_ns(mntns, MNT);
+_pr_ns(netns, NET);
+_pr_ns(pidns, PID);
+_pr_ns(timens, TIME);
+_pr_ns(userns, USER);
+_pr_ns(utsns, UTS);
+#undef _pr_ns
+
+/************************ Linux containers ******************************/
+static int pr_lxcname(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(LXCNAME)
+ return snprintf(outbuf, COLWID, "%s", rSv(LXCNAME, str, pp));
+}
+
+/****************** FLASK & seLinux security stuff **********************/
+// move the bulk of this to libproc sometime
+// This needs more study, considering:
+// 1. the static linking option (maybe disable this in that case)
+// 2. the -z and -Z option issue
+// 3. width of output
+static int pr_context(char *restrict const outbuf, const proc_t *restrict const pp){
+ static void (*ps_freecon)(char*);
+ static int (*ps_getpidcon)(pid_t pid, char **context);
+#if ENABLE_LIBSELINUX
+ static int (*ps_is_selinux_enabled)(void);
+ static int tried_load;
+#endif
+ static int selinux_enabled;
+ size_t len;
+ char *context;
+setREL1(ID_TGID)
+
+#if ENABLE_LIBSELINUX
+ if(!ps_getpidcon && !tried_load){
+ void *handle = dlopen("libselinux.so.1", RTLD_NOW);
+ if(handle){
+ ps_freecon = dlsym(handle, "freecon");
+ if(dlerror())
+ ps_freecon = 0;
+ dlerror();
+ ps_getpidcon = dlsym(handle, "getpidcon");
+ if(dlerror())
+ ps_getpidcon = 0;
+ ps_is_selinux_enabled = dlsym(handle, "is_selinux_enabled");
+ if(dlerror())
+ ps_is_selinux_enabled = 0;
+ else
+ selinux_enabled = ps_is_selinux_enabled();
+ }
+ tried_load++;
+ }
+#endif
+ if(ps_getpidcon && selinux_enabled && !ps_getpidcon(rSv(ID_TGID, s_int, pp), &context)){
+ size_t max_len = OUTBUF_SIZE-1;
+ len = strlen(context);
+ if(len > max_len) len = max_len;
+ memcpy(outbuf, context, len);
+ if (len >= 1 && outbuf[len-1] == '\n') --len;
+ outbuf[len] = '\0';
+ ps_freecon(context);
+ }else{
+ char filename[48];
+ ssize_t num_read;
+ int fd;
+
+ snprintf(filename, sizeof filename, "/proc/%d/attr/current", rSv(ID_TGID, s_int, pp));
+
+ if ((fd = open(filename, O_RDONLY, 0)) != -1) {
+ num_read = read(fd, outbuf, OUTBUF_SIZE-1);
+ close(fd);
+ if (num_read > 0) {
+ outbuf[num_read] = '\0';
+ len = 0;
+ while(isprint(outbuf[len]))
+ len++;
+ outbuf[len] = '\0';
+ if(len)
+ return len;
+ }
+ }
+ outbuf[0] = '-';
+ outbuf[1] = '\0';
+ len = 1;
+ }
+ return len;
+}
+
+/************************ Linux autogroups ******************************/
+static int pr_agid(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(AUTOGRP_ID)
+ return snprintf(outbuf, COLWID, "%d", rSv(AUTOGRP_ID, s_int, pp));
+}
+static int pr_agnice(char *restrict const outbuf, const proc_t *restrict const pp){
+setREL1(AUTOGRP_NICE)
+ return snprintf(outbuf, COLWID, "%d", rSv(AUTOGRP_NICE, s_int, pp));
+}
+
+////////////////////////////// Test code /////////////////////////////////
+
+// like "args"
+static int pr_t_unlimited(char *restrict const outbuf, const proc_t *restrict const pp){
+ static const char *const vals[] = {"[123456789-12345] <defunct>","ps","123456789-123456"};
+ if (!outbuf) return 0;
+ (void)pp;
+ snprintf(outbuf, max_rightward+1, "%s", vals[lines_to_next_header%3u]);
+ return strlen(outbuf);
+}
+static int pr_t_unlimited2(char *restrict const outbuf, const proc_t *restrict const pp){
+ static const char *const vals[] = {"unlimited", "[123456789-12345] <defunct>","ps","123456789-123456"};
+ if (!outbuf) return 0;
+ (void)pp;
+ snprintf(outbuf, max_rightward+1, "%s", vals[lines_to_next_header%4u]);
+ return strlen(outbuf);
+}
+
+// like "etime"
+static int pr_t_right(char *restrict const outbuf, const proc_t *restrict const pp){
+ static const char *const vals[] = {"999-23:59:59","99-23:59:59","9-23:59:59","59:59"};
+ if (!outbuf) return 0;
+ (void)pp;
+ return snprintf(outbuf, COLWID, "%s", vals[lines_to_next_header%4u]);
+}
+static int pr_t_right2(char *restrict const outbuf, const proc_t *restrict const pp){
+ static const char *const vals[] = {"999-23:59:59","99-23:59:59","9-23:59:59"};
+ if (!outbuf) return 0;
+ (void)pp;
+ return snprintf(outbuf, COLWID, "%s", vals[lines_to_next_header%3u]);
+}
+
+// like "tty"
+static int pr_t_left(char *restrict const outbuf, const proc_t *restrict const pp){
+ static const char *const vals[] = {"tty7","pts/9999","iseries/vtty42","ttySMX0","3270/tty4"};
+ if (!outbuf) return 0;
+ (void)pp;
+ return snprintf(outbuf, COLWID, "%s", vals[lines_to_next_header%5u]);
+}
+static int pr_t_left2(char *restrict const outbuf, const proc_t *restrict const pp){
+ static const char *const vals[] = {"tty7","pts/9999","ttySMX0","3270/tty4"};
+ if (!outbuf) return 0;
+ (void)pp;
+ return snprintf(outbuf, COLWID, "%s", vals[lines_to_next_header%4u]);
+}
+
+/***************************************************************************/
+/*************************** other stuff ***********************************/
+
+/*
+ * Old header specifications.
+ *
+ * short Up " PID TTY STAT TIME COMMAND"
+ * long l Pp " FLAGS UID PID PPID PRI NI SIZE RSS WCHAN STA TTY TIME COMMAND
+ * user u up "USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND
+ * jobs j gPp " PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
+ * sig s p " UID PID SIGNAL BLOCKED IGNORED CATCHED STAT TTY TIME COMMAND
+ * vm v r " PID TTY STAT TIME PAGEIN TSIZ DSIZ RSS LIM %MEM COMMAND
+ * m m r " PID TTY MAJFLT MINFLT TRS DRS SIZE SWAP RSS SHRD LIB DT COMMAND
+ * regs X p "NR PID STACK ESP EIP TMOUT ALARM STAT TTY TIME COMMAND
+ */
+
+/*
+ * Unix98 requires that the heading for tty is TT, though XPG4, Digital,
+ * and BSD use TTY. The Unix98 headers are:
+ * args,comm,etime,group,nice,pcpu,pgid
+ * pid,ppid,rgroup,ruser,time,tty,user,vsz
+ *
+ * BSD c: "command" becomes accounting name ("comm" or "ucomm")
+ * BSD n: "user" becomes "uid" and "wchan" becomes "nwchan" (number)
+ */
+
+/* Justification control for flags field. */
+#define USER CF_USER // left if text, right if numeric
+#define LEFT CF_LEFT
+#define RIGHT CF_RIGHT
+#define UNLIMITED CF_UNLIMITED
+#define WCHAN CF_WCHAN // left if text, right if numeric
+#define SIGNAL CF_SIGNAL // right in 9, or 16 if room
+#define PIDMAX CF_PIDMAX
+#define TO CF_PRINT_THREAD_ONLY
+#define PO CF_PRINT_PROCESS_ONLY
+#define ET CF_PRINT_EVERY_TIME
+#define AN CF_PRINT_AS_NEEDED // no idea
+
+
+/* TODO
+ * pull out annoying BSD aliases into another table (to macro table?)
+ * add sorting functions here (to unify names)
+ */
+
+/* temporary hack -- mark new stuff grabbed from Debian ps */
+#define LNx LNX
+
+/* Note: upon conversion to the <pids> API the numerous former sort provisions
+ for otherwise non-printable fields (pr_nop) have been retained. And,
+ since the new library can sort on any item, many previously printable
+ but unsortable fields have now been made sortable. */
+/* there are about 211 listed */
+/* Many of these are placeholders for unsupported options. */
+static const format_struct format_array[] = { /*
+ .spec .head .pr .sr .width .vendor .flags */
+{"%cpu", "%CPU", pr_pcpu, PIDS_UTILIZATION, 4, BSD, ET|RIGHT}, /*pcpu*/
+{"%mem", "%MEM", pr_pmem, PIDS_VM_RSS, 4, BSD, PO|RIGHT}, /*pmem*/
+{"_left", "LLLLLLLL", pr_t_left, PIDS_noop, 8, TST, ET|LEFT},
+{"_left2", "L2L2L2L2", pr_t_left2, PIDS_noop, 8, TST, ET|LEFT},
+{"_right", "RRRRRRRRRRR", pr_t_right, PIDS_noop, 11, TST, ET|RIGHT},
+{"_right2", "R2R2R2R2R2R", pr_t_right2, PIDS_noop, 11, TST, ET|RIGHT},
+{"_unlimited","U", pr_t_unlimited, PIDS_noop, 16, TST, ET|UNLIMITED},
+{"_unlimited2","U2", pr_t_unlimited2, PIDS_noop, 16, TST, ET|UNLIMITED},
+{"acflag", "ACFLG", pr_nop, PIDS_noop, 5, XXX, AN|RIGHT}, /*acflg*/
+{"acflg", "ACFLG", pr_nop, PIDS_noop, 5, BSD, AN|RIGHT}, /*acflag*/
+{"addr", "ADDR", pr_nop, PIDS_noop, 4, XXX, AN|RIGHT},
+{"addr_1", "ADDR", pr_nop, PIDS_noop, 1, LNX, AN|LEFT},
+{"ag_id", "AGID", pr_agid, PIDS_AUTOGRP_ID, 5, LNX, AN|RIGHT},
+{"ag_nice", "AGNI", pr_agnice, PIDS_AUTOGRP_NICE, 4, LNX, AN|RIGHT},
+{"alarm", "ALARM", pr_nop, PIDS_noop, 5, LNX, AN|RIGHT},
+{"argc", "ARGC", pr_nop, PIDS_noop, 4, LNX, PO|RIGHT},
+{"args", "COMMAND", pr_args, PIDS_CMDLINE, 27, U98, PO|UNLIMITED}, /*command*/
+{"atime", "TIME", pr_time, PIDS_TIME_ALL, 8, SOE, ET|RIGHT}, /*cputime*/ /* was 6 wide */
+{"blocked", "BLOCKED", pr_sigmask, PIDS_SIGBLOCKED, 9, BSD, TO|SIGNAL},/*sigmask*/
+{"bnd", "BND", pr_nop, PIDS_noop, 1, AIX, TO|RIGHT},
+{"bsdstart", "START", pr_bsdstart, PIDS_TICS_BEGAN, 6, LNX, ET|RIGHT},
+{"bsdtime", "TIME", pr_bsdtime, PIDS_TICS_ALL, 6, LNX, ET|RIGHT},
+{"c", "C", pr_c, PIDS_UTILIZATION, 2, SUN, ET|RIGHT},
+{"caught", "CAUGHT", pr_sigcatch, PIDS_SIGCATCH, 9, BSD, TO|SIGNAL}, /*sigcatch*/
+{"cgname", "CGNAME", pr_cgname, PIDS_CGNAME, 27, LNX, PO|UNLIMITED},
+{"cgroup", "CGROUP", pr_cgroup, PIDS_CGROUP, 27, LNX, PO|UNLIMITED},
+{"cgroupns", "CGROUPNS",pr_cgroupns, PIDS_NS_CGROUP, 10, LNX, ET|RIGHT},
+{"class", "CLS", pr_class, PIDS_SCHED_CLASS, 3, XXX, TO|LEFT},
+{"cls", "CLS", pr_class, PIDS_SCHED_CLASS, 3, HPU, TO|RIGHT}, /*says HPUX or RT*/
+{"cmaj_flt", "-", pr_nop, PIDS_noop, 1, LNX, AN|RIGHT},
+{"cmd", "CMD", pr_args, PIDS_CMDLINE, 27, DEC, PO|UNLIMITED}, /*ucomm*/
+{"cmin_flt", "-", pr_nop, PIDS_noop, 1, LNX, AN|RIGHT},
+{"cnswap", "-", pr_nop, PIDS_noop, 1, LNX, AN|RIGHT},
+{"comm", "COMMAND", pr_comm, PIDS_CMD, 15, U98, PO|UNLIMITED}, /*ucomm*/
+{"command", "COMMAND", pr_args, PIDS_CMDLINE, 27, XXX, PO|UNLIMITED}, /*args*/
+{"context", "CONTEXT", pr_context, PIDS_ID_TGID, 31, LNX, ET|LEFT},
+{"cp", "CP", pr_cp, PIDS_UTILIZATION, 3, DEC, ET|RIGHT}, /*cpu*/
+{"cpu", "CPU", pr_nop, PIDS_noop, 3, BSD, AN|RIGHT}, /* FIXME ... HP-UX wants this as the CPU number for SMP? */
+{"cpuid", "CPUID", pr_psr, PIDS_PROCESSOR, 5, BSD, TO|RIGHT}, // OpenBSD: 8 wide!
+{"cputime", "TIME", pr_time, PIDS_TIME_ALL, 8, DEC, ET|RIGHT}, /*time*/
+{"cputimes", "TIME", pr_times, PIDS_TIME_ALL, 8, LNX, ET|RIGHT}, /*time*/
+{"ctid", "CTID", pr_nop, PIDS_noop, 5, SUN, ET|RIGHT}, // resource contracts?
+{"cuc", "%CUC", pr_utilization_c, PIDS_UTILIZATION_C, 7, XXX, AN|RIGHT},
+{"cursig", "CURSIG", pr_nop, PIDS_noop, 6, DEC, AN|RIGHT},
+{"cutime", "-", pr_nop, PIDS_TICS_USER_C, 1, LNX, AN|RIGHT},
+{"cuu", "%CUU", pr_utilization, PIDS_UTILIZATION, 6, XXX, AN|RIGHT},
+{"cwd", "CWD", pr_nop, PIDS_noop, 3, LNX, AN|LEFT},
+{"drs", "DRS", pr_drs, PIDS_VSIZE_BYTES, 5, LNX, PO|RIGHT},
+{"dsiz", "DSIZ", pr_dsiz, PIDS_VSIZE_BYTES, 4, LNX, PO|RIGHT},
+{"egid", "EGID", pr_egid, PIDS_ID_EGID, 5, LNX, ET|RIGHT},
+{"egroup", "EGROUP", pr_egroup, PIDS_ID_EGROUP, 8, LNX, ET|USER},
+{"eip", "EIP", pr_eip, PIDS_ADDR_CURR_EIP, (int)(2*sizeof(long)), LNX, TO|RIGHT},
+{"emul", "EMUL", pr_nop, PIDS_noop, 13, BSD, PO|LEFT}, /* "FreeBSD ELF32" and such */
+{"end_code", "E_CODE", pr_nop, PIDS_ADDR_CODE_END, (int)(2*sizeof(long)), LNx, PO|RIGHT}, // sortable, but unprintable ??
+{"environ","ENVIRONMENT",pr_nop, PIDS_noop, 11, LNx, PO|UNLIMITED},
+{"esp", "ESP", pr_esp, PIDS_ADDR_CURR_ESP, (int)(2*sizeof(long)), LNX, TO|RIGHT},
+{"etime", "ELAPSED", pr_etime, PIDS_TIME_ELAPSED, 11, U98, ET|RIGHT}, /* was 7 wide */
+{"etimes", "ELAPSED", pr_etimes, PIDS_TIME_ELAPSED, 7, BSD, ET|RIGHT}, /* FreeBSD */
+{"euid", "EUID", pr_euid, PIDS_ID_EUID, 5, LNX, ET|RIGHT},
+{"euser", "EUSER", pr_euser, PIDS_ID_EUSER, 8, LNX, ET|USER},
+{"exe", "EXE", pr_exe, PIDS_EXE, 27, LNX, PO|UNLIMITED},
+{"f", "F", pr_flag, PIDS_FLAGS, 1, XXX, ET|RIGHT}, /*flags*/
+{"fgid", "FGID", pr_fgid, PIDS_FLAGS, 5, LNX, ET|RIGHT},
+{"fgroup", "FGROUP", pr_fgroup, PIDS_ID_FGROUP, 8, LNX, ET|USER},
+{"flag", "F", pr_flag, PIDS_FLAGS, 1, DEC, ET|RIGHT},
+{"flags", "F", pr_flag, PIDS_FLAGS, 1, BSD, ET|RIGHT}, /*f*/ /* was FLAGS, 8 wide */
+{"fname", "COMMAND", pr_fname, PIDS_CMD, 8, SUN, PO|LEFT},
+{"fsgid", "FSGID", pr_fgid, PIDS_ID_FGID, 5, LNX, ET|RIGHT},
+{"fsgroup", "FSGROUP", pr_fgroup, PIDS_ID_FGROUP, 8, LNX, ET|USER},
+{"fsuid", "FSUID", pr_fuid, PIDS_ID_FUID, 5, LNX, ET|RIGHT},
+{"fsuser", "FSUSER", pr_fuser, PIDS_ID_FUSER, 8, LNX, ET|USER},
+{"fuid", "FUID", pr_fuid, PIDS_ID_FUID, 5, LNX, ET|RIGHT},
+{"fuser", "FUSER", pr_fuser, PIDS_ID_FUSER, 8, LNX, ET|USER},
+{"gid", "GID", pr_egid, PIDS_ID_EGID, 5, SUN, ET|RIGHT},
+{"group", "GROUP", pr_egroup, PIDS_ID_EGROUP, 8, U98, ET|USER},
+{"ignored", "IGNORED", pr_sigignore, PIDS_SIGIGNORE, 9, BSD, TO|SIGNAL},/*sigignore*/
+{"inblk", "INBLK", pr_nop, PIDS_noop, 5, BSD, AN|RIGHT}, /*inblock*/
+{"inblock", "INBLK", pr_nop, PIDS_noop, 5, DEC, AN|RIGHT}, /*inblk*/
+{"intpri", "PRI", pr_opri, PIDS_PRIORITY, 3, HPU, TO|RIGHT},
+{"ipcns", "IPCNS", pr_ipcns, PIDS_NS_IPC, 10, LNX, ET|RIGHT},
+{"jid", "JID", pr_nop, PIDS_noop, 1, SGI, PO|RIGHT},
+{"jobc", "JOBC", pr_nop, PIDS_noop, 4, XXX, AN|RIGHT},
+{"ktrace", "KTRACE", pr_nop, PIDS_noop, 8, BSD, AN|RIGHT},
+{"ktracep", "KTRACEP", pr_nop, PIDS_noop, 8, BSD, AN|RIGHT},
+{"label", "LABEL", pr_context, PIDS_ID_TGID, 31, SGI, ET|LEFT},
+{"lastcpu", "C", pr_psr, PIDS_PROCESSOR, 3, BSD, TO|RIGHT}, // DragonFly
+{"lim", "LIM", pr_lim, PIDS_RSS_RLIM, 5, BSD, AN|RIGHT},
+{"login", "LOGNAME", pr_nop, PIDS_noop, 8, BSD, AN|LEFT}, /*logname*/ /* double check */
+{"logname", "LOGNAME", pr_nop, PIDS_noop, 8, XXX, AN|LEFT}, /*login*/
+{"longtname", "TTY", pr_tty8, PIDS_TTY_NAME, 8, DEC, PO|LEFT},
+{"lsession", "SESSION", pr_sd_session, PIDS_SD_SESS, 11, LNX, ET|LEFT},
+{"lstart", "STARTED", pr_lstart, PIDS_TICS_BEGAN, 24, XXX, ET|RIGHT},
+{"luid", "LUID", pr_luid, PIDS_ID_LOGIN, 5, LNX, ET|RIGHT}, /* login ID */
+{"luser", "LUSER", pr_nop, PIDS_noop, 8, LNX, ET|USER}, /* login USER */
+{"lwp", "LWP", pr_tasks, PIDS_ID_PID, 5, SUN, TO|PIDMAX|RIGHT},
+{"lxc", "LXC", pr_lxcname, PIDS_LXCNAME, 8, LNX, ET|LEFT},
+{"m_drs", "DRS", pr_drs, PIDS_VSIZE_BYTES, 5, LNx, PO|RIGHT},
+{"m_dt", "DT", pr_nop, PIDS_noop, 4, LNx, PO|RIGHT},
+{"m_lrs", "LRS", pr_nop, PIDS_noop, 5, LNx, PO|RIGHT},
+{"m_resident", "RES", pr_nop, PIDS_MEM_RES_PGS, 5, LNx, PO|RIGHT},
+{"m_share", "SHRD", pr_nop, PIDS_MEM_SHR_PGS, 5, LNx, PO|RIGHT},
+{"m_size", "SIZE", pr_size, PIDS_VSIZE_BYTES, 5, LNX, PO|RIGHT},
+{"m_swap", "SWAP", pr_nop, PIDS_noop, 5, LNx, PO|RIGHT},
+{"m_trs", "TRS", pr_trs, PIDS_VSIZE_BYTES, 5, LNx, PO|RIGHT},
+{"machine", "MACHINE", pr_sd_machine, PIDS_SD_MACH, 31, LNX, ET|LEFT},
+{"maj_flt", "MAJFL", pr_majflt, PIDS_FLT_MAJ, 6, LNX, AN|RIGHT},
+{"majflt", "MAJFLT", pr_majflt, PIDS_FLT_MAJ, 6, XXX, AN|RIGHT},
+{"min_flt", "MINFL", pr_minflt, PIDS_FLT_MIN, 6, LNX, AN|RIGHT},
+{"minflt", "MINFLT", pr_minflt, PIDS_FLT_MIN, 6, XXX, AN|RIGHT},
+{"mntns", "MNTNS", pr_mntns, PIDS_NS_MNT, 10, LNX, ET|RIGHT},
+{"msgrcv", "MSGRCV", pr_nop, PIDS_noop, 6, XXX, AN|RIGHT},
+{"msgsnd", "MSGSND", pr_nop, PIDS_noop, 6, XXX, AN|RIGHT},
+{"mwchan", "MWCHAN", pr_nop, PIDS_noop, 6, BSD, TO|WCHAN}, /* mutex (FreeBSD) */
+{"netns", "NETNS", pr_netns, PIDS_NS_NET, 10, LNX, ET|RIGHT},
+{"ni", "NI", pr_nice, PIDS_NICE, 3, BSD, TO|RIGHT}, /*nice*/
+{"nice", "NI", pr_nice, PIDS_NICE, 3, U98, TO|RIGHT}, /*ni*/
+{"nivcsw", "IVCSW", pr_nop, PIDS_noop, 5, XXX, AN|RIGHT},
+{"nlwp", "NLWP", pr_nlwp, PIDS_NLWP, 4, SUN, PO|RIGHT},
+{"nsignals", "NSIGS", pr_nop, PIDS_noop, 5, DEC, AN|RIGHT}, /*nsigs*/
+{"nsigs", "NSIGS", pr_nop, PIDS_noop, 5, BSD, AN|RIGHT}, /*nsignals*/
+{"nswap", "NSWAP", pr_nop, PIDS_noop, 5, XXX, AN|RIGHT},
+{"numa", "NUMA", pr_numa, PIDS_PROCESSOR_NODE, 4, XXX, AN|RIGHT},
+{"nvcsw", "VCSW", pr_nop, PIDS_noop, 5, XXX, AN|RIGHT},
+{"nwchan", "WCHAN", pr_nop, PIDS_noop, 6, XXX, TO|RIGHT},
+{"oom", "OOM", pr_oom, PIDS_OOM_SCORE, 4, XXX, TO|RIGHT},
+{"oomadj", "OOMADJ", pr_oom_adj, PIDS_OOM_ADJ, 5, XXX, TO|RIGHT},
+{"opri", "PRI", pr_opri, PIDS_PRIORITY, 3, SUN, TO|RIGHT},
+{"osz", "SZ", pr_nop, PIDS_noop, 2, SUN, PO|RIGHT},
+{"oublk", "OUBLK", pr_nop, PIDS_noop, 5, BSD, AN|RIGHT}, /*oublock*/
+{"oublock", "OUBLK", pr_nop, PIDS_noop, 5, DEC, AN|RIGHT}, /*oublk*/
+{"ouid", "OWNER", pr_sd_ouid, PIDS_SD_OUID, 5, LNX, ET|LEFT},
+{"p_ru", "P_RU", pr_nop, PIDS_noop, 6, BSD, AN|RIGHT},
+{"paddr", "PADDR", pr_nop, PIDS_noop, 6, BSD, AN|RIGHT},
+{"pagein", "PAGEIN", pr_majflt, PIDS_FLT_MAJ, 6, XXX, AN|RIGHT},
+{"pcpu", "%CPU", pr_pcpu, PIDS_UTILIZATION, 4, U98, ET|RIGHT}, /*%cpu*/
+{"pending", "PENDING", pr_sig, PIDS_SIGNALS, 9, BSD, ET|SIGNAL}, /*sig*/
+{"pgid", "PGID", pr_pgid, PIDS_ID_PGRP, 5, U98, PO|PIDMAX|RIGHT},
+{"pgrp", "PGRP", pr_pgid, PIDS_ID_PGRP, 5, LNX, PO|PIDMAX|RIGHT},
+{"pid", "PID", pr_procs, PIDS_ID_TGID, 5, U98, PO|PIDMAX|RIGHT},
+{"pidns", "PIDNS", pr_pidns, PIDS_NS_PID, 10, LNX, ET|RIGHT},
+{"pmem", "%MEM", pr_pmem, PIDS_VM_RSS, 4, XXX, PO|RIGHT}, /* %mem */
+{"poip", "-", pr_nop, PIDS_noop, 1, BSD, AN|RIGHT},
+{"policy", "POL", pr_class, PIDS_SCHED_CLASS, 3, DEC, TO|LEFT},
+{"ppid", "PPID", pr_ppid, PIDS_ID_PPID, 5, U98, PO|PIDMAX|RIGHT},
+{"pri", "PRI", pr_pri, PIDS_PRIORITY, 3, XXX, TO|RIGHT},
+{"pri_api", "API", pr_pri_api, PIDS_PRIORITY, 3, LNX, TO|RIGHT},
+{"pri_bar", "BAR", pr_pri_bar, PIDS_PRIORITY, 3, LNX, TO|RIGHT},
+{"pri_baz", "BAZ", pr_pri_baz, PIDS_PRIORITY, 3, LNX, TO|RIGHT},
+{"pri_foo", "FOO", pr_pri_foo, PIDS_PRIORITY, 3, LNX, TO|RIGHT},
+{"priority", "PRI", pr_priority, PIDS_PRIORITY, 3, LNX, TO|RIGHT},
+{"prmgrp", "PRMGRP", pr_nop, PIDS_noop, 12, HPU, PO|RIGHT},
+{"prmid", "PRMID", pr_nop, PIDS_noop, 12, HPU, PO|RIGHT},
+{"project", "PROJECT", pr_nop, PIDS_noop, 12, SUN, PO|LEFT}, // see prm* andctid
+{"projid", "PROJID", pr_nop, PIDS_noop, 5, SUN, PO|RIGHT},
+{"pset", "PSET", pr_nop, PIDS_noop, 4, DEC, TO|RIGHT},
+{"psr", "PSR", pr_psr, PIDS_PROCESSOR, 3, DEC, TO|RIGHT},
+{"pss", "PSS", pr_pss, PIDS_SMAP_PSS, 5, XXX, PO|RIGHT},
+{"psxpri", "PPR", pr_nop, PIDS_noop, 3, DEC, TO|RIGHT},
+{"rbytes", "RBYTES", pr_rbytes, PIDS_IO_READ_BYTES, 5, LNX, TO|RIGHT},
+{"rchars", "RCHARS", pr_rchars, PIDS_IO_READ_CHARS, 5, LNX, TO|RIGHT},
+{"re", "RE", pr_nop, PIDS_noop, 3, BSD, AN|RIGHT},
+{"resident", "RES", pr_nop, PIDS_MEM_RES_PGS, 5, LNX, PO|RIGHT},
+{"rgid", "RGID", pr_rgid, PIDS_ID_RGID, 5, XXX, ET|RIGHT},
+{"rgroup", "RGROUP", pr_rgroup, PIDS_ID_RGROUP, 8, U98, ET|USER}, /* was 8 wide */
+{"rlink", "RLINK", pr_nop, PIDS_noop, 8, BSD, AN|RIGHT},
+{"rops", "ROPS", pr_rops, PIDS_IO_READ_OPS, 5, LNX, TO|RIGHT},
+{"rss", "RSS", pr_rss, PIDS_VM_RSS, 5, XXX, PO|RIGHT}, /* was 5 wide */
+{"rssize", "RSS", pr_rss, PIDS_VM_RSS, 5, DEC, PO|RIGHT}, /*rsz*/
+{"rsz", "RSZ", pr_rss, PIDS_VM_RSS, 5, BSD, PO|RIGHT}, /*rssize*/
+{"rtprio", "RTPRIO", pr_rtprio, PIDS_PRIORITY_RT, 6, BSD, TO|RIGHT},
+{"ruid", "RUID", pr_ruid, PIDS_ID_RUID, 5, XXX, ET|RIGHT},
+{"ruser", "RUSER", pr_ruser, PIDS_ID_RUSER, 8, U98, ET|USER},
+{"s", "S", pr_s, PIDS_STATE, 1, SUN, TO|LEFT}, /*stat,state*/
+{"sched", "SCH", pr_sched, PIDS_SCHED_CLASS, 3, AIX, TO|RIGHT},
+{"scnt", "SCNT", pr_nop, PIDS_noop, 4, DEC, AN|RIGHT}, /* man page misspelling of scount? */
+{"scount", "SC", pr_nop, PIDS_noop, 4, AIX, AN|RIGHT}, /* scnt==scount, DEC claims both */
+{"seat", "SEAT", pr_sd_seat, PIDS_SD_SEAT, 11, LNX, ET|LEFT},
+{"sess", "SESS", pr_sess, PIDS_ID_SESSION, 5, XXX, PO|PIDMAX|RIGHT},
+{"session", "SESS", pr_sess, PIDS_ID_SESSION, 5, LNX, PO|PIDMAX|RIGHT},
+{"sgi_p", "P", pr_sgi_p, PIDS_STATE, 1, LNX, TO|RIGHT}, /* "cpu" number */
+{"sgi_rss", "RSS", pr_rss, PIDS_VM_RSS, 4, LNX, PO|LEFT}, /* SZ:RSS */
+{"sgid", "SGID", pr_sgid, PIDS_ID_SGID, 5, LNX, ET|RIGHT},
+{"sgroup", "SGROUP", pr_sgroup, PIDS_ID_SGROUP, 8, LNX, ET|USER},
+{"share", "-", pr_nop, PIDS_noop, 1, LNX, PO|RIGHT},
+{"sid", "SID", pr_sess, PIDS_ID_SESSION, 5, XXX, PO|PIDMAX|RIGHT}, /* Sun & HP */
+{"sig", "PENDING", pr_sig, PIDS_SIGNALS, 9, XXX, ET|SIGNAL}, /*pending -- Dragonfly uses this for whole-proc and "tsig" for thread */
+{"sig_block", "BLOCKED", pr_sigmask, PIDS_SIGBLOCKED, 9, LNX, TO|SIGNAL},
+{"sig_catch", "CATCHED", pr_sigcatch, PIDS_SIGCATCH, 9, LNX, TO|SIGNAL},
+{"sig_ignore", "IGNORED",pr_sigignore, PIDS_SIGIGNORE, 9, LNX, TO|SIGNAL},
+{"sig_pend", "SIGNAL", pr_sig, PIDS_SIGNALS, 9, LNX, ET|SIGNAL},
+{"sigcatch", "CAUGHT", pr_sigcatch, PIDS_SIGCATCH, 9, XXX, TO|SIGNAL}, /*caught*/
+{"sigignore", "IGNORED", pr_sigignore, PIDS_SIGIGNORE, 9, XXX, TO|SIGNAL}, /*ignored*/
+{"sigmask", "BLOCKED", pr_sigmask, PIDS_SIGBLOCKED, 9, XXX, TO|SIGNAL}, /*blocked*/
+{"size", "SIZE", pr_swapable, PIDS_VSIZE_BYTES, 5, SCO, PO|RIGHT},
+{"sl", "SL", pr_nop, PIDS_noop, 3, XXX, AN|RIGHT},
+{"slice", "SLICE", pr_sd_slice, PIDS_SD_SLICE, 31, LNX, ET|LEFT},
+{"spid", "SPID", pr_tasks, PIDS_ID_PID, 5, SGI, TO|PIDMAX|RIGHT},
+{"stackp", "STACKP", pr_stackp, PIDS_ADDR_STACK_START, (int)(2*sizeof(long)), LNX, PO|RIGHT}, /*start_stack*/
+{"start", "STARTED", pr_start, PIDS_TICS_BEGAN, 8, XXX, ET|RIGHT},
+{"start_code", "S_CODE", pr_nop, PIDS_ADDR_CODE_START, (int)(2*sizeof(long)), LNx, PO|RIGHT}, // sortable, but unprintable ??
+{"start_stack", "STACKP",pr_stackp, PIDS_ADDR_STACK_START, (int)(2*sizeof(long)), LNX, PO|RIGHT}, /*stackp*/
+{"start_time", "START", pr_stime, PIDS_TICS_BEGAN, 5, LNx, ET|RIGHT},
+{"stat", "STAT", pr_stat, PIDS_STATE, 4, BSD, TO|LEFT}, /*state,s*/
+{"state", "S", pr_s, PIDS_STATE, 1, XXX, TO|LEFT}, /*stat,s*/ /* was STAT */
+{"status", "STATUS", pr_nop, PIDS_noop, 6, DEC, AN|RIGHT},
+{"stime", "STIME", pr_stime, PIDS_TICS_BEGAN, 5, XXX, ET|RIGHT}, /* was 6 wide */
+{"suid", "SUID", pr_suid, PIDS_ID_SUID, 5, LNx, ET|RIGHT},
+{"supgid", "SUPGID", pr_supgid, PIDS_SUPGIDS, 20, LNX, PO|UNLIMITED},
+{"supgrp", "SUPGRP", pr_supgrp, PIDS_SUPGROUPS, 40, LNX, PO|UNLIMITED},
+{"suser", "SUSER", pr_suser, PIDS_ID_SUSER, 8, LNx, ET|USER},
+{"svgid", "SVGID", pr_sgid, PIDS_ID_SGID, 5, XXX, ET|RIGHT},
+{"svgroup", "SVGROUP", pr_sgroup, PIDS_ID_SGROUP, 8, LNX, ET|USER},
+{"svuid", "SVUID", pr_suid, PIDS_ID_SUID, 5, XXX, ET|RIGHT},
+{"svuser", "SVUSER", pr_suser, PIDS_ID_SUSER, 8, LNX, ET|USER},
+{"systime", "SYSTEM", pr_nop, PIDS_noop, 6, DEC, ET|RIGHT},
+{"sz", "SZ", pr_sz, PIDS_VM_SIZE, 5, HPU, PO|RIGHT},
+{"taskid", "TASKID", pr_nop, PIDS_noop, 5, SUN, TO|PIDMAX|RIGHT}, // is this a thread ID?
+{"tdev", "TDEV", pr_nop, PIDS_noop, 4, XXX, AN|RIGHT},
+{"tgid", "TGID", pr_procs, PIDS_ID_TGID, 5, LNX, PO|PIDMAX|RIGHT},
+{"thcount", "THCNT", pr_nlwp, PIDS_NLWP, 5, AIX, PO|RIGHT},
+{"tid", "TID", pr_tasks, PIDS_ID_PID, 5, AIX, TO|PIDMAX|RIGHT},
+{"time", "TIME", pr_time, PIDS_TIME_ALL, 8, U98, ET|RIGHT}, /*cputime*/ /* was 6 wide */
+{"timens", "TIMENS", pr_timens, PIDS_NS_TIME, 10, LNX, ET|RIGHT},
+{"timeout", "TMOUT", pr_nop, PIDS_noop, 5, LNX, AN|RIGHT}, // 2.0.xx era
+{"times", "TIME", pr_times, PIDS_TIME_ALL, 8, LNX, ET|RIGHT},
+{"tmout", "TMOUT", pr_nop, PIDS_noop, 5, LNX, AN|RIGHT}, // 2.0.xx era
+{"tname", "TTY", pr_tty8, PIDS_TTY_NAME, 8, DEC, PO|LEFT},
+{"tpgid", "TPGID", pr_tpgid, PIDS_ID_TPGID, 5, XXX, PO|PIDMAX|RIGHT},
+{"trs", "TRS", pr_trs, PIDS_VSIZE_BYTES, 4, AIX, PO|RIGHT},
+{"trss", "TRSS", pr_trs, PIDS_VSIZE_BYTES, 4, BSD, PO|RIGHT}, /* 4.3BSD NET/2 */
+{"tsess", "TSESS", pr_nop, PIDS_noop, 5, BSD, PO|PIDMAX|RIGHT},
+{"tsession", "TSESS", pr_nop, PIDS_noop, 5, DEC, PO|PIDMAX|RIGHT},
+{"tsid", "TSID", pr_nop, PIDS_noop, 5, BSD, PO|PIDMAX|RIGHT},
+{"tsig", "PENDING", pr_tsig, PIDS_SIGPENDING, 9, BSD, ET|SIGNAL}, /* Dragonfly used this for thread-specific, and "sig" for whole-proc */
+{"tsiz", "TSIZ", pr_tsiz, PIDS_VSIZE_BYTES, 4, BSD, PO|RIGHT},
+{"tt", "TT", pr_tty8, PIDS_TTY_NAME, 8, BSD, PO|LEFT},
+{"tty", "TT", pr_tty8, PIDS_TTY_NAME, 8, U98, PO|LEFT}, /* Unix98 requires "TT" but has "TTY" too. :-( */ /* was 3 wide */
+{"tty4", "TTY", pr_tty4, PIDS_TTY_NAME, 4, LNX, PO|LEFT},
+{"tty8", "TTY", pr_tty8, PIDS_TTY_NAME, 8, LNX, PO|LEFT},
+{"u_procp", "UPROCP", pr_nop, PIDS_noop, 6, DEC, AN|RIGHT},
+{"ucmd", "CMD", pr_comm, PIDS_CMD, 15, DEC, PO|UNLIMITED}, /*ucomm*/
+{"ucomm", "COMMAND", pr_comm, PIDS_CMD, 15, XXX, PO|UNLIMITED}, /*comm*/
+{"uid", "UID", pr_euid, PIDS_ID_EUID, 5, XXX, ET|RIGHT},
+{"uid_hack", "UID", pr_euser, PIDS_ID_EUSER, 8, XXX, ET|USER},
+{"umask", "UMASK", pr_nop, PIDS_noop, 5, DEC, AN|RIGHT},
+{"uname", "USER", pr_euser, PIDS_ID_EUSER, 8, DEC, ET|USER}, /* man page misspelling of user? */
+{"unit", "UNIT", pr_sd_unit, PIDS_SD_UNIT, 31, LNX, ET|LEFT},
+{"upr", "UPR", pr_nop, PIDS_noop, 3, BSD, TO|RIGHT}, /*usrpri*/
+{"uprocp", "UPROCP", pr_nop, PIDS_noop, 8, BSD, AN|RIGHT},
+{"user", "USER", pr_euser, PIDS_ID_EUSER, 8, U98, ET|USER}, /* BSD n forces this to UID */
+{"userns", "USERNS", pr_userns, PIDS_NS_USER, 10, LNX, ET|RIGHT},
+{"usertime", "USER", pr_nop, PIDS_noop, 4, DEC, ET|RIGHT},
+{"usrpri", "UPR", pr_nop, PIDS_noop, 3, DEC, TO|RIGHT}, /*upr*/
+{"uss", "USS", pr_uss, PIDS_SMAP_PRV_TOTAL, 5, XXX, PO|RIGHT},
+{"util", "C", pr_c, PIDS_UTILIZATION, 2, SGI, ET|RIGHT}, // not sure about "C"
+{"utime", "UTIME", pr_nop, PIDS_TICS_USER, 6, LNx, ET|RIGHT},
+{"utsns", "UTSNS", pr_utsns, PIDS_NS_UTS, 10, LNX, ET|RIGHT},
+{"uunit", "UUNIT", pr_sd_uunit, PIDS_SD_UUNIT, 31, LNX, ET|LEFT},
+{"vm_data", "DATA", pr_nop, PIDS_VM_DATA, 5, LNx, PO|RIGHT},
+{"vm_exe", "EXE", pr_nop, PIDS_VM_EXE, 5, LNx, PO|RIGHT},
+{"vm_lib", "LIB", pr_nop, PIDS_VM_LIB, 5, LNx, PO|RIGHT},
+{"vm_lock", "LCK", pr_nop, PIDS_VM_RSS_LOCKED, 3, LNx, PO|RIGHT},
+{"vm_stack", "STACK", pr_nop, PIDS_VM_STACK, 5, LNx, PO|RIGHT},
+{"vsize", "VSZ", pr_vsz, PIDS_VSIZE_BYTES, 6, DEC, PO|RIGHT}, /*vsz*/
+{"vsz", "VSZ", pr_vsz, PIDS_VM_SIZE, 6, U98, PO|RIGHT}, /*vsize*/
+{"wbytes", "WBYTES", pr_wbytes, PIDS_IO_WRITE_BYTES, 5, LNX, TO|RIGHT},
+{"wcbytes", "WCBYTES", pr_wcbytes, PIDS_IO_WRITE_CBYTES, 5, LNX, TO|RIGHT},
+{"wchan", "WCHAN", pr_wchan, PIDS_WCHAN_NAME, 6, XXX, TO|WCHAN}, /* BSD n forces this to nwchan */ /* was 10 wide */
+{"wchars", "WCHARS", pr_wchars, PIDS_IO_WRITE_CHARS, 5, LNX, TO|RIGHT},
+{"wname", "WCHAN", pr_wchan, PIDS_WCHAN_NAME, 6, SGI, TO|WCHAN}, /* opposite of nwchan */
+{"wops", "WOPS", pr_wops, PIDS_IO_WRITE_OPS, 5, LNX, TO|RIGHT},
+{"xstat", "XSTAT", pr_nop, PIDS_noop, 5, BSD, AN|RIGHT},
+{"zone", "ZONE", pr_context, PIDS_ID_TGID, 31, SUN, ET|LEFT}, // Solaris zone == Linux context?
+{"zoneid", "ZONEID", pr_nop, PIDS_noop, 31, SUN, ET|RIGHT}, // Linux only offers context names
+{"~", "-", pr_nop, PIDS_noop, 1, LNX, AN|RIGHT} /* NULL would ruin alphabetical order */
+};
+
+#undef USER
+#undef LEFT
+#undef RIGHT
+#undef UNLIMITED
+#undef WCHAN
+#undef SIGNAL
+#undef PIDMAX
+#undef PO
+#undef TO
+#undef AN
+#undef ET
+
+static const int format_array_count = sizeof(format_array)/sizeof(format_struct);
+
+
+/****************************** Macro formats *******************************/
+/* First X field may be NR, which is p->start_code>>26 printed with %2ld */
+/* That seems useless though, and Debian already killed it. */
+/* The ones marked "Digital" have the name defined, not just the data. */
+static const macro_struct macro_array[] = {
+{"DFMT", "pid,tname,state,cputime,cmd"}, /* Digital's default */
+{"DefBSD", "pid,tname,stat,bsdtime,args"}, /* Our BSD default */
+{"DefSysV", "pid,tname,time,cmd"}, /* Our SysV default */
+{"END_BSD", "state,tname,cputime,comm"}, /* trailer for O */
+{"END_SYS5", "state,tname,time,command"}, /* trailer for -O */
+{"F5FMT", "uname,pid,ppid,c,start,tname,time,cmd"}, /* Digital -f */
+
+{"FB_", "pid,tt,stat,time,command"}, /* FreeBSD default */
+{"FB_j", "user,pid,ppid,pgid,sess,jobc,stat,tt,time,command"}, /* FreeBSD j */
+{"FB_l", "uid,pid,ppid,cpu,pri,nice,vsz,rss,wchan,stat,tt,time,command"}, /* FreeBSD l */
+{"FB_u", "user,pid,pcpu,pmem,vsz,rss,tt,stat,start,time,command"}, /* FreeBSD u */
+{"FB_v", "pid,stat,time,sl,re,pagein,vsz,rss,lim,tsiz,pcpu,pmem,command"}, /* FreeBSD v */
+
+{"FD_", "pid,tty,time,comm"}, /* Fictional Debian SysV default */
+{"FD_f", "user,pid,ppid,start_time,tty,time,comm"}, /* Fictional Debian -f */
+{"FD_fj", "user,pid,ppid,start_time,tty,time,pgid,sid,comm"}, /* Fictional Debian -jf */
+{"FD_j", "pid,tty,time,pgid,sid,comm"}, /* Fictional Debian -j */
+{"FD_l", "flags,state,uid,pid,ppid,priority,nice,vsz,wchan,tty,time,comm"}, /* Fictional Debian -l */
+{"FD_lj", "flags,state,uid,pid,ppid,priority,nice,vsz,wchan,tty,time,pgid,sid,comm"}, /* Fictional Debian -jl */
+
+{"FL5FMT", "f,state,uid,pid,ppid,pcpu,pri,nice,rss,wchan,start,time,command"}, /* Digital -fl */
+
+{"FLASK_context", "pid,context,command"}, /* Flask Linux context, --context */
+
+{"HP_", "pid,tty,time,comm"}, /* HP default */
+{"HP_f", "user,pid,ppid,cpu,stime,tty,time,args"}, /* HP -f */
+{"HP_fl", "flags,state,user,pid,ppid,cpu,intpri,nice,addr,sz,wchan,stime,tty,time,args"}, /* HP -fl */
+{"HP_l", "flags,state,uid,pid,ppid,cpu,intpri,nice,addr,sz,wchan,tty,time,comm"}, /* HP -l */
+
+{"J390", "pid,sid,pgrp,tname,atime,args"}, /* OS/390 -j */
+{"JFMT", "user,pid,ppid,pgid,sess,jobc,state,tname,cputime,command"}, /* Digital j and -j */
+{"L5FMT", "f,state,uid,pid,ppid,c,pri,nice,addr,sz,wchan,tt,time,ucmd"}, /* Digital -l */
+{"LFMT", "uid,pid,ppid,cp,pri,nice,vsz,rss,wchan,state,tname,cputime,command"}, /* Digital l */
+
+{"OL_X", "pid,start_stack,esp,eip,timeout,alarm,stat,tname,bsdtime,args"}, /* Old i386 Linux X */
+{"OL_j", "ppid,pid,pgid,sid,tname,tpgid,stat,uid,bsdtime,args"}, /* Old Linux j */
+{"OL_l", "flags,uid,pid,ppid,priority,nice,vsz,rss,wchan,stat,tname,bsdtime,args"}, /* Old Linux l */
+{"OL_m", "pid,tname,majflt,minflt,m_trs,m_drs,m_size,m_swap,rss,m_share,vm_lib,m_dt,args"}, /* Old Linux m */
+{"OL_s", "uid,pid,pending,sig_block,sig_ignore,caught,stat,tname,bsdtime,args"}, /* Old Linux s */
+{"OL_u", "user,pid,pcpu,pmem,vsz,rss,tname,stat,start_time,bsdtime,args"}, /* Old Linux u */
+{"OL_v", "pid,tname,stat,bsdtime,maj_flt,m_trs,m_drs,rss,pmem,args"}, /* Old Linux v */
+
+{"RD_", "pid,tname,state,bsdtime,comm"}, /* Real Debian default */
+{"RD_f", "uid,pid,ppid,start_time,tname,bsdtime,args"}, /* Real Debian -f */
+{"RD_fj", "uid,pid,ppid,start_time,tname,bsdtime,pgid,sid,args"}, /* Real Debian -jf */
+{"RD_j", "pid,tname,state,bsdtime,pgid,sid,comm"}, /* Real Debian -j */
+{"RD_l", "flags,state,uid,pid,ppid,priority,nice,wchan,tname,bsdtime,comm"}, /* Real Debian -l */
+{"RD_lj", "flags,state,uid,pid,ppid,priority,nice,wchan,tname,bsdtime,pgid,sid,comm"}, /* Real Debian -jl */
+
+{"RUSAGE", "minflt,majflt,nswap,inblock,oublock,msgsnd,msgrcv,nsigs,nvcsw,nivcsw"}, /* Digital -o "RUSAGE" */
+{"SCHED", "user,pcpu,pri,usrpri,nice,psxpri,psr,policy,pset"}, /* Digital -o "SCHED" */
+{"SFMT", "uid,pid,cursig,sig,sigmask,sigignore,sigcatch,stat,tname,command"}, /* Digital s */
+
+{"Std_f", "uid_hack,pid,ppid,c,stime,tname,time,cmd"}, /* new -f */
+{"Std_fl", "f,s,uid_hack,pid,ppid,c,opri,ni,addr,sz,wchan,stime,tname,time,cmd"}, /* -fl */
+{"Std_l", "f,s,uid,pid,ppid,c,opri,ni,addr,sz,wchan,tname,time,ucmd"}, /* new -l */
+
+{"THREAD", "user,pcpu,pri,scnt,wchan,usertime,systime"}, /* Digital -o "THREAD" */
+{"UFMT", "uname,pid,pcpu,pmem,vsz,rss,tt,state,start,time,command"}, /* Digital u */
+{"VFMT", "pid,tt,state,time,sl,pagein,vsz,rss,pcpu,pmem,command"}, /* Digital v */
+{"~", "~"} /* NULL would ruin alphabetical order */
+};
+
+static const int macro_array_count = sizeof(macro_array)/sizeof(macro_struct);
+
+
+/*************************** AIX formats ********************/
+/* Convert AIX format codes to normal format specifiers. */
+static const aix_struct aix_array[] = {
+{'C', "pcpu", "%CPU"},
+{'G', "group", "GROUP"},
+{'P', "ppid", "PPID"},
+{'U', "user", "USER"},
+{'a', "args", "COMMAND"},
+{'c', "comm", "COMMAND"},
+{'g', "rgroup", "RGROUP"},
+{'n', "nice", "NI"},
+{'p', "pid", "PID"},
+{'r', "pgid", "PGID"},
+{'t', "etime", "ELAPSED"},
+{'u', "ruser", "RUSER"},
+{'x', "time", "TIME"},
+{'y', "tty", "TTY"},
+{'z', "vsz", "VSZ"},
+{'~', "~", "~"} /* NULL would ruin alphabetical order */
+};
+
+
+/********************* sorting ***************************/
+/* Convert short sorting codes to normal format specifiers. */
+static const shortsort_struct shortsort_array[] = {
+{'C', "pcpu" },
+{'G', "tpgid" },
+{'J', "cstime" },
+/* {'K', "stime" }, */ /* conflict, system vs. start time */
+{'M', "maj_flt" },
+{'N', "cmaj_flt" },
+{'P', "ppid" },
+{'R', "resident" },
+{'S', "share" },
+{'T', "start_time" },
+{'U', "uid" }, /* euid */
+{'c', "cmd" },
+{'f', "flags" },
+{'g', "pgrp" },
+{'j', "cutime" },
+{'k', "utime" },
+{'m', "min_flt" },
+{'n', "cmin_flt" },
+{'o', "session" },
+{'p', "pid" },
+{'r', "rss" },
+{'s', "size" },
+{'t', "tty" },
+{'u', "user" },
+{'v', "vsize" },
+{'y', "priority" }, /* nice */
+{'~', "~" } /* NULL would ruin alphabetical order */
+};
+
+
+/*********** print format_array **********/
+/* called by the parser in another file */
+void print_format_specifiers(void){
+ const format_struct *walk = format_array;
+ while(*(walk->spec) != '~'){
+ if(walk->pr != pr_nop) printf("%-12.12s %-8.8s\n", walk->spec, walk->head);
+ walk++;
+ }
+}
+
+/************ comparison functions for bsearch *************/
+
+static int compare_format_structs(const void *a, const void *b){
+ return strcmp(((const format_struct*)a)->spec,((const format_struct*)b)->spec);
+}
+
+static int compare_macro_structs(const void *a, const void *b){
+ return strcmp(((const macro_struct*)a)->spec,((const macro_struct*)b)->spec);
+}
+
+/******** look up structs as needed by the sort & format parsers ******/
+
+const shortsort_struct *search_shortsort_array(const int findme){
+ const shortsort_struct *walk = shortsort_array;
+ while(walk->desc != '~'){
+ if(walk->desc == findme) return walk;
+ walk++;
+ }
+ return NULL;
+}
+
+const aix_struct *search_aix_array(const int findme){
+ const aix_struct *walk = aix_array;
+ while(walk->desc != '~'){
+ if(walk->desc == findme) return walk;
+ walk++;
+ }
+ return NULL;
+}
+
+const format_struct *search_format_array(const char *findme){
+ format_struct key;
+ key.spec = findme;
+ return bsearch(&key, format_array, format_array_count,
+ sizeof(format_struct), compare_format_structs
+ );
+}
+
+const macro_struct *search_macro_array(const char *findme){
+ macro_struct key;
+ key.spec = findme;
+ return bsearch(&key, macro_array, macro_array_count,
+ sizeof(macro_struct), compare_macro_structs
+ );
+}
+
+static unsigned int active_cols; /* some multiple of screen_cols */
+
+/***** Last chance, avoid needless trunctuation. */
+static void check_header_width(void){
+ format_node *walk = format_list;
+ unsigned int total = 0;
+ int was_normal = 0;
+ unsigned int i = 0;
+ unsigned int sigs = 0;
+ while(walk){
+ switch((walk->flags) & CF_JUST_MASK){
+ default:
+ total += walk->width;
+ total += was_normal;
+ was_normal = 1;
+ break;
+ case CF_SIGNAL:
+ sigs++;
+ if (signal_names) {
+ if (walk->width < SIGNAL_NAME_WIDTH)
+ walk->width = SIGNAL_NAME_WIDTH;
+ walk->flags = CF_UNLIMITED;
+ if (walk->next)
+ total += walk->width;
+ else
+ total += 3;
+ } else {
+ total += walk->width;
+ }
+ total += was_normal;
+ was_normal = 1;
+ break;
+ case CF_UNLIMITED: /* could chop this a bit */
+ if(walk->next) total += walk->width;
+ else total += 3; /* not strlen(walk->name) */
+ total += was_normal;
+ was_normal = 1;
+ break;
+ case 0: /* AIX */
+ total += walk->width;
+ was_normal = 0;
+ break;
+ }
+ walk = walk->next;
+ }
+ for(;;){
+ i++;
+ active_cols = screen_cols * i;
+ if(active_cols>=total) break;
+ if(screen_cols*i >= OUTBUF_SIZE/2) break; /* can't go over */
+ }
+ wide_signals = (total+sigs*7 <= active_cols);
+}
+
+
+/********** show one process (NULL proc prints header) **********/
+
+//#define SPACE_AMOUNT page_size
+#define SPACE_AMOUNT 144
+
+static char *saved_outbuf;
+
+void show_one_proc(const proc_t *restrict const p, const format_node *restrict fmt){
+ /* unknown: maybe set correct & actual to 1, remove +/- 1 below */
+ int correct = 0; /* screen position we should be at */
+ int actual = 0; /* screen position we are at */
+ int amount = 0; /* amount of text that this data is */
+ int leftpad = 0; /* amount of space this column _could_ need */
+ int space = 0; /* amount of space we actually need to print */
+ int dospace = 0; /* previous column determined that we need a space */
+ int legit = 0; /* legitimately stolen extra space */
+ int sz = 0; /* real size of data in outbuffer */
+ int tmpspace = 0;
+ char *restrict const outbuf = saved_outbuf;
+ static int did_stuff = 0; /* have we ever printed anything? */
+
+ if(-1==(long)p){ /* true only once, at the end */
+ if(did_stuff) return;
+ /* have _never_ printed anything, but might need a header */
+ if(!--lines_to_next_header){
+ lines_to_next_header = header_gap;
+ show_one_proc(NULL,fmt);
+ }
+ /* fprintf(stderr, "No processes available.\n"); */ /* legal? */
+ exit(1);
+ }
+ if(p){ /* not header, maybe we should call ourselves for it */
+ if(!--lines_to_next_header){
+ lines_to_next_header = header_gap;
+ show_one_proc(NULL,fmt);
+ }
+ }
+ did_stuff = 1;
+ if(active_cols>(int)OUTBUF_SIZE) fprintf(stderr,_("fix bigness error\n"));
+
+ /* print row start sequence */
+ for(;;){
+ legit = 0;
+ /* set width suggestion which might be ignored */
+// if(likely(fmt->next)) max_rightward = fmt->width;
+// else max_rightward = active_cols-((correct>actual) ? correct : actual);
+
+ if(fmt->next){
+ max_rightward = fmt->width;
+ tmpspace = 0;
+ }else{
+ tmpspace = correct-actual;
+ if (tmpspace<1){
+ tmpspace = dospace;
+ max_rightward = active_cols-actual-tmpspace;
+ }else{
+ max_rightward = active_cols - ( (correct>actual) ? correct : actual );
+ }
+ }
+ if(max_rightward <= 0) max_rightward = 0;
+ else if(max_rightward >= OUTBUF_SIZE) max_rightward = OUTBUF_SIZE-1;
+
+ max_leftward = fmt->width + actual - correct; /* TODO check this */
+ if(max_leftward <= 0) max_leftward = 0;
+ else if(max_leftward >= OUTBUF_SIZE) max_leftward = OUTBUF_SIZE-1;
+
+// fprintf(stderr, "cols: %d, max_rightward: %d, max_leftward: %d, actual: %d, correct: %d\n",
+// active_cols, max_rightward, max_leftward, actual, correct);
+
+ /* prepare data and calculate leftpad */
+ if(p && fmt->pr) amount = (*fmt->pr)(outbuf,p);
+ else amount = snprintf(outbuf, OUTBUF_SIZE, "%s", fmt->name); /* AIX or headers */
+
+ if(amount < 0) outbuf[amount = 0] = '\0';
+ else if(amount >= OUTBUF_SIZE) outbuf[amount = OUTBUF_SIZE-1] = '\0';
+
+ switch((fmt->flags) & CF_JUST_MASK){
+ case 0: /* for AIX, assigned outside this file */
+ leftpad = 0;
+ break;
+ case CF_LEFT: /* bad */
+ leftpad = 0;
+ break;
+ case CF_RIGHT: /* OK */
+ leftpad = fmt->width - amount;
+ if(leftpad < 0) leftpad = 0;
+ break;
+ case CF_SIGNAL:
+ /* if the screen is wide enough, use full 16-character output */
+ if(wide_signals){
+ leftpad = 16 - amount;
+ legit = 7;
+ }else{
+ leftpad = 9 - amount;
+ }
+ if(leftpad < 0) leftpad = 0;
+ break;
+ case CF_USER: /* bad */
+ leftpad = fmt->width - amount;
+ if(leftpad < 0) leftpad = 0;
+ if(!user_is_number) leftpad = 0;
+ break;
+ case CF_WCHAN: /* bad */
+ if(wchan_is_number){
+ leftpad = fmt->width - amount;
+ if(leftpad < 0) leftpad = 0;
+ break;
+ }else{
+ if ((active_cols-actual-tmpspace)<1)
+ outbuf[1] = '\0'; /* oops, we (mostly) lose this column... */
+ leftpad = 0;
+ break;
+ }
+ case CF_UNLIMITED:
+ {
+ if(active_cols-actual-tmpspace < 1)
+ outbuf[1] = '\0'; /* oops, we (mostly) lose this column... */
+ leftpad = 0;
+ break;
+ }
+ default:
+ fprintf(stderr, _("bad alignment code\n"));
+ break;
+ }
+ /* At this point:
+ *
+ * correct from previous column
+ * actual from previous column
+ * amount not needed (garbage due to chopping)
+ * leftpad left padding for this column alone (not make-up or gap)
+ * space not needed (will recalculate now)
+ * dospace if we require space between this and the prior column
+ * legit space we were allowed to steal, and thus did steal
+ */
+ space = correct - actual + leftpad;
+ if(space<1) space=dospace;
+ if(space>SPACE_AMOUNT) space=SPACE_AMOUNT; // only so much available
+
+ /* real size -- don't forget in 'amount' is number of cells */
+ outbuf[OUTBUF_SIZE-1] = '\0';
+ sz = strlen(outbuf);
+
+ /* print data, set x position stuff */
+ if(!fmt->next){
+ /* Last column. Write padding + data + newline all together. */
+ outbuf[sz] = '\n';
+ fwrite(outbuf-space, space+sz+1, 1, stdout);
+ break;
+ }
+ /* Not the last column. Write padding + data together. */
+ fwrite(outbuf-space, space+sz, 1, stdout);
+ actual += space+amount;
+ correct += fmt->width;
+ correct += legit; /* adjust for SIGNAL expansion */
+ if(fmt->pr && fmt->next->pr){ /* neither is AIX filler */
+ correct++;
+ dospace = 1;
+ }else{
+ dospace = 0;
+ }
+ fmt = fmt->next;
+ /* At this point:
+ *
+ * correct screen position we should be at
+ * actual screen position we are at
+ * amount not needed
+ * leftpad not needed
+ * space not needed
+ * dospace if have determined that we need a space next time
+ * legit not needed
+ */
+ }
+}
+
+
+void init_output(void)
+{
+ int outbuf_pages;
+ char *outbuf;
+
+ // add page_size-1 to round up
+ outbuf_pages = (OUTBUF_SIZE+SPACE_AMOUNT+page_size-1)/page_size;
+ outbuf = mmap(
+ 0,
+ page_size * (outbuf_pages+1), // 1 more, for guard page at high addresses
+ PROT_READ | PROT_WRITE,
+ MAP_PRIVATE | MAP_ANONYMOUS,
+ -1,
+ 0);
+
+ if(outbuf == MAP_FAILED)
+ catastrophic_failure(__FILE__, __LINE__, _("please report this bug"));
+
+ memset(outbuf, ' ', SPACE_AMOUNT);
+ if(SPACE_AMOUNT==page_size)
+ mprotect(outbuf, page_size, PROT_READ);
+ mprotect(outbuf + page_size*outbuf_pages, page_size, PROT_NONE); // guard page
+ saved_outbuf = outbuf + SPACE_AMOUNT;
+ // available space: page_size*outbuf_pages-SPACE_AMOUNT
+ seconds_since_1970 = time(NULL);
+
+ check_header_width();
+}
diff --git a/src/ps/parser.c b/src/ps/parser.c
new file mode 100644
index 0000000..1f50a7a
--- /dev/null
+++ b/src/ps/parser.c
@@ -0,0 +1,1268 @@
+/*
+ * parser.c - ps command options parser
+ *
+ * Copyright © 2012-2023 Jim Warner <james.warner@comcast.net
+ * Copyright © 2004-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2012-2014 Jaromir Capik <jcapik@redhat.com>
+ * Copyright © 2011-2012 Sami Kerola <kerolasa@iki.fi>
+ * Copyright © 1998-2003 Albert Cahalan
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+/* Ought to have debug print stuff like this:
+ * #define Print(fmt, args...) printf("Debug: " fmt, ## args)
+ */
+
+#include <grp.h>
+#include <pwd.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <stdbool.h>
+
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include "c.h"
+#include "xalloc.h"
+
+#include "common.h"
+
+#define ARG_GNU 0
+#define ARG_END 1
+#define ARG_PGRP 2
+#define ARG_SYSV 3
+#define ARG_PID 4
+#define ARG_BSD 5
+#define ARG_FAIL 6
+#define ARG_SESS 7
+
+static int w_count = 0;
+
+static int ps_argc; /* global argc */
+static char **ps_argv; /* global argv */
+static int thisarg; /* index into ps_argv */
+static char *flagptr; /* current location in ps_argv[thisarg] */
+static int force_bsd = 0; /* set when normal parsing fails */
+
+#define exclusive(x) if((ps_argc != 2) || strcmp(ps_argv[1],x)) \
+ return _("the option is exclusive: " x)
+
+/********** utility functions **********/
+static void display_ps_version(void)
+{
+ fprintf(stdout, PROCPS_NG_VERSION);
+}
+
+
+/*
+ * Both "-Oppid" and "-O ppid" should be legal, though Unix98
+ * does not require it. BSD and Digital Unix allow both.
+ * Return the argument or NULL;
+ */
+static const char *get_opt_arg(void){
+ if(*(flagptr+1)){ /* argument is part of ps_argv[thisarg] */
+ return flagptr+1;
+ }
+ if(thisarg+2 > ps_argc) return NULL; /* there is nothing left */
+ /* argument follows ps_argv[thisarg] */
+ if(*(ps_argv[thisarg+1]) == '\0') return NULL;
+ return ps_argv[++thisarg];
+}
+
+/********** parse lists (of UID, tty, GID, PID...) **********/
+
+static const char *parse_pid(char *str, sel_union *ret){
+ char *endp;
+ unsigned long num;
+ num = strtoul(str, &endp, 0);
+ if(*endp != '\0') return _("process ID list syntax error");
+ if(num<1) return _("process ID out of range");
+ if(num > 0x7fffffffUL) return _("process ID out of range");
+ ret->pid = num;
+ return 0;
+}
+
+static const char *parse_uid(char *str, sel_union *ret){
+ struct passwd *passwd_data;
+ char *endp;
+ unsigned long num;
+ num = strtoul(str, &endp, 0);
+ if(*endp != '\0'){ /* hmmm, try as login name */
+ passwd_data = getpwnam(str);
+ if(!passwd_data){
+ if(!negate_selection) return _("user name does not exist");
+ num = -1;
+ }
+ else
+ num = passwd_data->pw_uid;
+ }
+ if(!negate_selection && (num > 0xfffffffeUL)) return _("user ID out of range");
+ ret->uid = num;
+ return 0;
+}
+
+static const char *parse_gid(char *str, sel_union *ret){
+ struct group *group_data;
+ char *endp;
+ unsigned long num;
+ num = strtoul(str, &endp, 0);
+ if(*endp != '\0'){ /* hmmm, try as login name */
+ group_data = getgrnam(str);
+ if(!group_data){
+ if(!negate_selection) return _("group name does not exist");
+ num = -1;
+ }
+ else
+ num = group_data->gr_gid;
+ }
+ if(!negate_selection && (num > 0xfffffffeUL)) return _("group ID out of range");
+ ret->gid = num;
+ return 0;
+}
+
+static const char *parse_cmd(char *str, sel_union *ret){
+ strncpy(ret->cmd, str, sizeof ret->cmd); // strncpy pads to end
+ ret->cmd[sizeof(ret->cmd)-1] = '\0'; // but let's be safe
+ return 0;
+}
+
+static const char *parse_tty(char *str, sel_union *ret){
+ struct stat sbuf;
+ char path[4096];
+ if(str[0]=='/'){
+ if(stat(str, &sbuf) >= 0) goto found_it;
+ return _("TTY could not be found");
+ }
+#define lookup(p) \
+ snprintf(path,4096,p,str); \
+ if(stat(path, &sbuf) >= 0) goto found_it
+
+ lookup("/dev/pts/%s"); /* New Unix98 ptys go first */
+ lookup("/dev/%s");
+ lookup("/dev/tty%s");
+ lookup("/dev/pty%s");
+ lookup("/dev/%snsole"); /* "co" means "console", maybe do all VCs too? */
+ if(!strcmp(str,"-")){ /* "-" means no tty (from AIX) */
+ ret->tty = 0; /* processes w/o tty */
+ return 0;
+ }
+ if(!strcmp(str,"?")){ /* "?" means no tty, which bash eats (Reno BSD?) */
+ ret->tty = 0; /* processes w/o tty */
+ return 0;
+ }
+ if(!*(str+1) && (stat(str,&sbuf)>=0)){ /* Kludge! Assume bash ate '?'. */
+ ret->tty = 0; /* processes w/o tty */
+ return 0;
+ }
+#undef lookup
+ return _("TTY could not be found");
+found_it:
+ if(!S_ISCHR(sbuf.st_mode)) return _("list member was not a TTY");
+ ret->tty = sbuf.st_rdev;
+ return 0;
+}
+
+/*
+ * Used to parse lists in a generic way. (function pointers)
+ */
+static const char *parse_list(const char *arg, const char *(*parse_fn)(char *, sel_union *) ){
+ selection_node *node;
+ char *buf; /* temp copy of arg to hack on */
+ char *sep_loc; /* separator location: " \t," */
+ char *walk;
+ int items;
+ int need_item;
+ const char *err; /* error code that could or did happen */
+ /*** prepare to operate ***/
+ node = xmalloc(sizeof(selection_node));
+ node->n = 0;
+ node->u = NULL;
+ buf = strdup(arg);
+ /*** sanity check and count items ***/
+ need_item = 1; /* true */
+ items = 0;
+ walk = buf;
+ err = _("improper list");
+ do{
+ switch(*walk){
+ case ' ': case ',': case '\t': case '\0':
+ if(need_item) goto parse_error;
+ need_item=1;
+ break;
+ default:
+ if(need_item && items<INT_MAX) items++;
+ need_item=0;
+ }
+ } while (*++walk);
+ if(need_item) goto parse_error;
+ node->n = items;
+ node->u = xcalloc(items, sizeof(sel_union));
+ /*** actually parse the list ***/
+ walk = buf;
+ while(items--){
+ sep_loc = strpbrk(walk," ,\t");
+ if(sep_loc) *sep_loc = '\0';
+ if(( err=(parse_fn)(walk, node->u+items) )) goto parse_error;
+ walk = sep_loc + 1; /* point to next item, if any */
+ }
+ free(buf);
+ node->next = selection_list;
+ selection_list = node;
+ return NULL;
+parse_error:
+ free(buf);
+ free(node->u);
+ free(node);
+ return err;
+}
+
+/***************** parse SysV options, including Unix98 *****************/
+static const char *parse_sysv_option(void){
+ const char *arg;
+ const char *err;
+
+ flagptr = ps_argv[thisarg];
+ while(*++flagptr){
+ switch(*flagptr){
+ case 'A':
+ trace("-A selects all processes\n");
+ all_processes = 1;
+ break;
+ case 'C': /* end */
+ trace("-C select by process name\n"); /* Why only HP/UX and us? */
+ arg=get_opt_arg();
+ if(!arg) return _("list of command names must follow -C");
+ err=parse_list(arg, parse_cmd);
+ if(err) return err;
+ selection_list->typecode = SEL_COMM;
+ return NULL; /* can't have any more options */
+ case 'D':
+ trace("-D sets lstart date format\n");
+ arg = get_opt_arg();
+ if (!arg) return _("date format must follow -D");
+ if (lstart_format) free(lstart_format);
+ lstart_format = strdup(arg);
+ break;
+ case 'F': /* DYNIX/ptx -f plus sz,rss,psr=ENG between c and stime */
+ trace("-F does fuller listing\n");
+ format_modifiers |= FM_F;
+ format_flags |= FF_Uf;
+ unix_f_option = 1; /* does this matter? */
+ break;
+ case 'G': /* end */
+ trace("-G select by RGID (supports names)\n");
+ arg=get_opt_arg();
+ if(!arg) return _("list of real groups must follow -G");
+ err=parse_list(arg, parse_gid);
+ if(err) return err;
+ selection_list->typecode = SEL_RGID;
+ return NULL; /* can't have any more options */
+ case 'H': /* another nice HP/UX feature */
+ trace("-H process hierarchy (like ASCII art forest option)\n");
+ forest_type = 'u';
+ break;
+#if 0
+ case 'J': // specify list of job IDs in hex (IRIX) -- like HP "-R" maybe?
+ trace("-J select by job ID\n"); // want a JID ("jid") for "-j" too
+ arg=get_opt_arg();
+ if(!arg) return _("list of jobs must follow -J");
+ err=parse_list(arg, parse_jid);
+ if(err) return err;
+ selection_list->typecode = SEL_JID;
+ return NULL; /* can't have any more options */
+#endif
+ case 'L': /* */
+ /* In spite of the insane 2-level thread system, Sun appears to
+ * have made this option Linux-compatible. If a process has N
+ * threads, ps will produce N lines of output. (not N+1 lines)
+ * Zombies are the only exception, with NLWP==0 and 1 output line.
+ * SCO UnixWare uses -L too.
+ */
+ trace("-L print LWP (thread) info\n");
+ thread_flags |= TF_U_L;
+// format_modifiers |= FM_L;
+ break;
+ case 'M': // typically the SELinux context
+ trace("-M print security label for Mandatory Access Control\n");
+ format_modifiers |= FM_M;
+ break;
+ case 'N':
+ trace("-N negates\n");
+ negate_selection = 1;
+ break;
+ case 'O': /* end */
+ trace("-O is preloaded -o\n");
+ arg=get_opt_arg();
+ if(!arg) return _("format or sort specification must follow -O");
+ defer_sf_option(arg, SF_U_O);
+ return NULL; /* can't have any more options */
+ case 'P': /* SunOS 5 "psr" or unknown HP/UX feature */
+ trace("-P adds columns of PRM info (HP-UX), PSR (SunOS), or capabilities (IRIX)\n");
+ format_modifiers |= FM_P;
+ break;
+#if 0
+ case 'R': // unknown HP/UX feature, like IRIX "-J" maybe?
+ trace("-R select by PRM group\n");
+ arg=get_opt_arg();
+ if(!arg) return _("list of PRM groups must follow -R");
+ err=parse_list(arg, parse_prm);
+ if(err) return err;
+ selection_list->typecode = SEL_PRM;
+ return NULL; /* can't have any more options */
+#endif
+ case 'T':
+ /* IRIX 6.5 docs suggest POSIX threads get shown individually.
+ * This would make -T be like -L, -m, and m. (but an extra column)
+ * Testing (w/ normal processes) shows 1 line/process, not 2.
+ * Also, testing shows PID==SPID for all normal processes.
+ */
+ trace("-T adds strange SPID column (old sproc() threads?)\n");
+ thread_flags |= TF_U_T;
+// format_modifiers |= FM_T;
+ break;
+ case 'U': /* end */
+ trace("-U select by RUID (supports names)\n");
+ arg=get_opt_arg();
+ if(!arg) return _("list of real users must follow -U");
+ err=parse_list(arg, parse_uid);
+ if(err) return err;
+ selection_list->typecode = SEL_RUID;
+ return NULL; /* can't have any more options */
+ case 'V': /* single */
+ trace("-V prints version\n");
+ exclusive("-V");
+ display_ps_version();
+ exit(0);
+ // This must be verified against SVR4-MP. (UnixWare or Powermax)
+ // Leave it undocumented until that problem is solved.
+ case 'Z': /* full Mandatory Access Control level info */
+ trace("-Z shows full MAC info\n");
+ format_modifiers |= FM_M;
+ break;
+ case 'a':
+ trace("-a select all with a tty, but omit session leaders\n");
+ simple_select |= SS_U_a;
+ break;
+ case 'c':
+ /* HP-UX and SunOS 5 scheduling info modifier */
+ trace("-c changes scheduling info\n");
+ format_modifiers |= FM_c;
+ break;
+ case 'd':
+ trace("-d select all, but omit session leaders\n");
+ simple_select |= SS_U_d;
+ break;
+ case 'e':
+ trace("-e selects all processes\n");
+ all_processes = 1;
+ break;
+ case 'f':
+ trace("-f does full listing\n");
+ format_flags |= FF_Uf;
+ unix_f_option = 1; /* does this matter? */
+ break;
+ case 'g': /* end */
+ trace("-g selects by session leader OR by group name\n");
+ arg=get_opt_arg();
+ if(!arg) return _("list of session leaders OR effective group names must follow -g");
+ err=parse_list(arg, parse_pid);
+ if(!err){
+ selection_list->typecode = SEL_SESS;
+ return NULL; /* can't have any more options */
+ }
+ err=parse_list(arg, parse_gid);
+ if(!err){
+ selection_list->typecode = SEL_EGID;
+ return NULL; /* can't have any more options */
+ }
+ return _("list of session leaders OR effective group IDs was invalid");
+ case 'j':
+ trace("-j jobs format\n");
+ /* old Debian used RD_j and Digital uses JFMT */
+ if(sysv_j_format) format_flags |= FF_Uj;
+ else format_modifiers |= FM_j;
+ break;
+ case 'l':
+ trace("-l long format\n");
+ format_flags |= FF_Ul;
+ break;
+ case 'm':
+ trace("-m shows threads\n");
+ /* note that AIX shows 2 lines for a normal process */
+ thread_flags |= TF_U_m;
+ break;
+ case 'o': /* end */
+ /* Unix98 has gross behavior regarding this. From the following: */
+ /* ps -o pid,nice=NICE,tty=TERMINAL,comm */
+ /* The result must be 2 columns: "PID NICE,tty=TERMINAL,comm" */
+ /* Yes, the second column has the name "NICE,tty=TERMINAL,comm" */
+ /* This parser looks for any excuse to ignore that braindamage. */
+ trace("-o user-defined format\n");
+ arg=get_opt_arg();
+ if(!arg) return _("format specification must follow -o");
+ defer_sf_option(arg, SF_U_o);
+ return NULL; /* can't have any more options */
+ case 'p': /* end */
+ trace("-p select by PID\n");
+ arg=get_opt_arg();
+ if(!arg) return _("list of process IDs must follow -p");
+ err=parse_list(arg, parse_pid);
+ if(err) return err;
+ selection_list->typecode = SEL_PID;
+ return NULL; /* can't have any more options */
+ case 'q': /* end */
+ trace("-q quick select by PID.\n");
+ arg=get_opt_arg();
+ if(!arg) return "List of process IDs must follow -q.";
+ err=parse_list(arg, parse_pid);
+ if(err) return err;
+ selection_list->typecode = SEL_PID_QUICK;
+ return NULL; /* can't have any more options */
+#if 0
+ case 'r':
+ trace("-r some Digital Unix thing about warnings...\n");
+ trace(" or SCO's option to chroot() for new /proc and /dev\n");
+ return _("the -r option is reserved");
+ break;
+#endif
+ case 's': /* end */
+ trace("-s select processes belonging to the sessions given\n");
+ arg=get_opt_arg();
+ if(!arg) return _("list of session IDs must follow -s");
+ err=parse_list(arg, parse_pid);
+ if(err) return err;
+ selection_list->typecode = SEL_SESS;
+ return NULL; /* can't have any more options */
+ case 't': /* end */
+ trace("-t select by tty\n");
+ arg=get_opt_arg();
+ if(!arg) return _("list of terminals (pty, tty...) must follow -t");
+ err=parse_list(arg, parse_tty);
+ if(err) return err;
+ selection_list->typecode = SEL_TTY;
+ return NULL; /* can't have any more options */
+ case 'u': /* end */
+ trace("-u select by user effective ID (supports names)\n");
+ arg=get_opt_arg();
+ if(!arg) return _("list of users must follow -u");
+ err=parse_list(arg, parse_uid);
+ if(err) return err;
+ selection_list->typecode = SEL_EUID;
+ return NULL; /* can't have any more options */
+ case 'w':
+ trace("-w wide output\n");
+ w_count++;
+ break;
+ case 'x': /* behind personality until "ps -ax" habit is uncommon */
+ if(personality & PER_SVR4_x){
+ // Same as -y, but for System V Release 4 MP
+ trace("-x works like Sun Solaris & SCO Unixware -y option\n");
+ format_modifiers |= FM_y;
+ break;
+ }
+ if(personality & PER_HPUX_x){
+ trace("-x extends the command line\n");
+ w_count += 2;
+ unix_f_option = 1;
+ break;
+ }
+ return _("must set personality to get -x option");
+ case 'y': /* Sun's -l hack (also: Irix "lnode" resource control info) */
+ trace("-y print lnone info in UID/USER column or do Sun -l hack\n");
+ format_modifiers |= FM_y;
+ break;
+#if 0
+ // This must be verified against SVR4-MP (UnixWare or Powermax)
+ case 'z': /* alias of Mandatory Access Control level info */
+ trace("-z shows aliased MAC info\n");
+ format_modifiers |= FM_M;
+ break;
+ // Solaris 10 does this
+ case 'z': /* select by zone */
+ trace("-z secects by zone\n");
+ arg=get_opt_arg();
+ if(!arg) return _("list of zones (contexts, labels, whatever?) must follow -z");
+ err=parse_list(arg, parse_zone);
+ if(err) return err;
+ selection_list->typecode = SEL_ZONE;
+ return NULL; /* can't have any more options */
+#endif
+ case '-':
+ return _("embedded '-' among SysV options makes no sense");
+ break;
+ case '\0':
+ catastrophic_failure(__FILE__, __LINE__, _("please report this bug"));
+ break;
+ default:
+ return _("unsupported SysV option");
+ } /* switch */
+ } /* while */
+ return NULL;
+}
+
+/************************* parse BSD options **********************/
+static const char *parse_bsd_option(void){
+ const char *arg;
+ const char *err;
+
+ flagptr = ps_argv[thisarg]; /* assume we _have_ a '-' */
+ if(flagptr[0]=='-'){
+ if(!force_bsd) return _("cannot happen - problem #1");
+ }else{
+ flagptr--; /* off beginning, will increment before use */
+ if(personality & PER_FORCE_BSD){
+ if(!force_bsd) return _("cannot happen - problem #2");
+ }else{
+ if(force_bsd) return _("second chance parse failed, not BSD or SysV");
+ }
+ }
+
+ while(*++flagptr){
+ switch(*flagptr){
+ case '0' ... '9': /* end */
+ trace("0..9 pld BSD-style select by process ID\n");
+ arg=flagptr;
+ err=parse_list(arg, parse_pid);
+ if(err) return err;
+ selection_list->typecode = SEL_PID;
+ return NULL; /* can't have any more options */
+#if 0
+ case 'A':
+ /* maybe this just does a larger malloc() ? */
+ trace("A increases the argument space (Digital Unix)\n");
+ return _("option A is reserved");
+ break;
+ case 'C':
+ /* should divide result by 1-(e**(foo*log(bar))) */
+ trace("C use raw CPU time for %%CPU instead of decaying ave\n");
+ return _("option C is reserved");
+ break;
+#endif
+ case 'H': // The FreeBSD way (NetBSD:s OpenBSD:k FreeBSD:H -- NIH???)
+ trace("H print LWP (thread) info\n"); // was: Use /vmcore as c-dumpfile\n");
+ thread_flags |= TF_B_H;
+ //format_modifiers |= FM_L; // FIXME: determine if we need something like this
+ break;
+ case 'L': /* single */
+ trace("L list all format specifiers\n");
+ exclusive("L");
+ print_format_specifiers();
+ exit(0);
+ case 'M': // undocumented for now: these are proliferating!
+ trace("M MacOS X thread display, like AIX/Tru64\n");
+ thread_flags |= TF_B_m;
+ break;
+ case 'O': /* end */
+ trace("O like o + defaults, add new columns after PID, also sort\n");
+ arg=get_opt_arg();
+ if(!arg) return _("format or sort specification must follow O");
+ defer_sf_option(arg, SF_B_O);
+ return NULL; /* can't have any more options */
+ break;
+ case 'S':
+ trace("S include dead kids in sum\n");
+ include_dead_children = 1;
+ break;
+ case 'T':
+ trace("T select all processes on this terminal\n");
+ /* put our tty on a tiny list */
+ {
+ selection_node *node;
+ node = xmalloc(sizeof(selection_node));
+ node->u = xmalloc(sizeof(sel_union));
+ node->u[0].tty = cached_tty;
+ node->typecode = SEL_TTY;
+ node->n = 1;
+ node->next = selection_list;
+ selection_list = node;
+ }
+ break;
+ case 'U': /* end */
+ trace("U select processes for specified users\n");
+ arg=get_opt_arg();
+ if(!arg) return _("list of users must follow U");
+ err=parse_list(arg, parse_uid);
+ if(err) return err;
+ selection_list->typecode = SEL_EUID;
+ return NULL; /* can't have any more options */
+ case 'V': /* single */
+ trace("V show version info\n");
+ exclusive("V");
+ display_ps_version();
+ exit(0);
+ case 'W':
+ trace("W N/A get swap info from ... not /dev/drum.\n");
+ return _("obsolete W option not supported (you have a /dev/drum?)");
+ break;
+ case 'X':
+ trace("X old Linux i386 register format\n");
+ format_flags |= FF_LX;
+ break;
+ case 'Z': /* FreeBSD does MAC like SGI's Irix does it */
+ trace("Z print security label for Mandatory Access Control.\n");
+ format_modifiers |= FM_M;
+ break;
+ case 'a':
+ trace("a select all w/tty, including other users\n");
+ simple_select |= SS_B_a;
+ break;
+ case 'c':
+ trace("c true command name\n");
+ bsd_c_option = 1;
+ break;
+// case 'd':
+// trace("d FreeBSD-style tree\n");
+// forest_type = 'f';
+// break;
+ case 'e':
+ trace("e environment\n");
+ bsd_e_option = 1;
+ break;
+ case 'f':
+ trace("f ASCII art forest\n");
+ forest_type = 'b';
+ break;
+ case 'g':
+ trace("g _all_, even group leaders\n");
+ simple_select |= SS_B_g;
+ break;
+ case 'h':
+ trace("h repeat header\n");
+ if(header_type) return _("only one heading option may be specified");
+ if(personality & PER_BSD_h) header_type = HEAD_MULTI;
+ else header_type = HEAD_NONE;
+ break;
+ case 'j':
+ trace("j job control format\n");
+ format_flags |= FF_Bj;
+ break;
+ case 'k':
+ // OpenBSD: don't hide "kernel threads" -- like the swapper?
+ // trace("k Print LWP (thread) info.\n"); // was: Use /vmcore as c-dumpfile\n");
+
+ // NetBSD, and soon (?) FreeBSD: sort-by-keyword
+ trace("k specify sorting keywords\n");
+ arg=get_opt_arg();
+ if(!arg) return _("long sort specification must follow 'k'");
+ defer_sf_option(arg, SF_G_sort);
+ return NULL; /* can't have any more options */
+ case 'l':
+ trace("l display long format\n");
+ format_flags |= FF_Bl;
+ break;
+ case 'm':
+ trace("m all threads, sort on mem use, show mem info\n");
+ if(personality & PER_OLD_m){
+ format_flags |= FF_Lm;
+ break;
+ }
+ if(personality & PER_BSD_m){
+ defer_sf_option("pmem", SF_B_m);
+ break;
+ }
+ thread_flags |= TF_B_m;
+ break;
+ case 'n':
+ trace("n numeric output for WCHAN, and USER replaced by UID\n");
+ wchan_is_number = 1;
+ user_is_number = 1;
+ /* TODO add tty_is_number too? */
+ break;
+ case 'o': /* end */
+ trace("o specify user-defined format\n");
+ arg=get_opt_arg();
+ if(!arg) return _("format specification must follow o");
+ defer_sf_option(arg, SF_B_o);
+ return NULL; /* can't have any more options */
+ case 'p': /* end */
+ trace("p select by process ID\n");
+ arg=get_opt_arg();
+ if(!arg) return _("list of process IDs must follow p");
+ err=parse_list(arg, parse_pid);
+ if(err) return err;
+ selection_list->typecode = SEL_PID;
+ return NULL; /* can't have any more options */
+ case 'q': /* end */
+ trace("q Quick select by process ID\n");
+ arg=get_opt_arg();
+ if(!arg) return "List of process IDs must follow q.";
+ err=parse_list(arg, parse_pid);
+ if(err) return err;
+ selection_list->typecode = SEL_PID_QUICK;
+ return NULL; /* can't have any more options */
+ case 'r':
+ trace("r select running processes\n");
+ running_only = 1;
+ break;
+ case 's':
+ trace("s display signal format\n");
+ format_flags |= FF_Bs;
+ break;
+ case 't': /* end */
+ trace("t select by tty\n");
+ /* List of terminals (tty, pty...) _should_ follow t. */
+ arg=get_opt_arg();
+ if(!arg){
+ /* Wow, obsolete BSD syntax. Put our tty on a tiny list. */
+ selection_node *node;
+ node = xmalloc(sizeof(selection_node));
+ node->u = xmalloc(sizeof(sel_union));
+ node->u[0].tty = cached_tty;
+ node->typecode = SEL_TTY;
+ node->n = 1;
+ node->next = selection_list;
+ selection_list = node;
+ return NULL;
+ }
+ err=parse_list(arg, parse_tty);
+ if(err) return err;
+ selection_list->typecode = SEL_TTY;
+ return NULL; /* can't have any more options */
+ case 'u':
+ trace("u display user-oriented\n");
+ format_flags |= FF_Bu;
+ break;
+ case 'v':
+ trace("v display virtual memory\n");
+ format_flags |= FF_Bv;
+ break;
+ case 'w':
+ trace("w wide output\n");
+ w_count++;
+ break;
+ case 'x':
+ trace("x select processes without controlling ttys\n");
+ simple_select |= SS_B_x;
+ break;
+ case '-':
+ return _("embedded '-' among BSD options makes no sense");
+ break;
+ case '\0':
+ catastrophic_failure(__FILE__, __LINE__, _("please report this bug"));
+ break;
+ default:
+ return _("unsupported option (BSD syntax)");
+ } /* switch */
+ } /* while */
+ return NULL;
+}
+
+/*************** gnu long options **********************/
+
+/*
+ * Return the argument or NULL
+ */
+static const char *grab_gnu_arg(void){
+ switch(*flagptr){ /* argument is part of ps_argv[thisarg] */
+ default:
+ return NULL; /* something bad */
+ case '=': case ':':
+ if(*++flagptr) return flagptr; /* found it */
+ return NULL; /* empty '=' or ':' */
+ case '\0': /* try next argv[] */
+ ;
+ }
+ if(thisarg+2 > ps_argc) return NULL; /* there is nothing left */
+ /* argument follows ps_argv[thisarg] */
+ if(*(ps_argv[thisarg+1]) == '\0') return NULL;
+ return ps_argv[++thisarg];
+}
+
+typedef struct gnu_table_struct {
+ const char *name; /* long option name */
+ const void *jump; /* See gcc extension info. :-) */
+} gnu_table_struct;
+
+static int compare_gnu_table_structs(const void *a, const void *b){
+ return strcmp(((const gnu_table_struct*)a)->name,((const gnu_table_struct*)b)->name);
+}
+
+/* Option arguments are after ':', after '=', or in argv[n+1] */
+static const char *parse_gnu_option(void){
+ const char *arg;
+ const char *err;
+ char *s;
+ size_t sl;
+ char buf[16];
+ gnu_table_struct findme = { buf, NULL};
+ gnu_table_struct *found;
+ static const gnu_table_struct gnu_table[] = {
+ {"Group", &&case_Group}, /* rgid */
+ {"User", &&case_User}, /* ruid */
+ {"cols", &&case_cols},
+ {"columns", &&case_columns},
+ {"context", &&case_context},
+ {"cumulative", &&case_cumulative},
+ {"date-format", &&case_dateformat},
+ {"deselect", &&case_deselect}, /* -N */
+ {"forest", &&case_forest}, /* f -H */
+ {"format", &&case_format},
+ {"group", &&case_group}, /* egid */
+ {"header", &&case_header},
+ {"headers", &&case_headers},
+ {"heading", &&case_heading},
+ {"headings", &&case_headings},
+//{"help", &&case_help}, /* now TRANSLATABLE ! */
+ {"info", &&case_info},
+ {"lines", &&case_lines},
+ {"no-header", &&case_no_header},
+ {"no-headers", &&case_no_headers},
+ {"no-heading", &&case_no_heading},
+ {"no-headings", &&case_no_headings},
+ {"noheader", &&case_noheader},
+ {"noheaders", &&case_noheaders},
+ {"noheading", &&case_noheading},
+ {"noheadings", &&case_noheadings},
+ {"pid", &&case_pid},
+ {"ppid", &&case_ppid},
+ {"quick-pid", &&case_pid_quick},
+ {"rows", &&case_rows},
+ {"sid", &&case_sid},
+ {"signames", &&case_signames},
+ {"sort", &&case_sort},
+ {"tty", &&case_tty},
+ {"user", &&case_user}, /* euid */
+ {"version", &&case_version},
+ {"width", &&case_width},
+ };
+ const int gnu_table_count = sizeof(gnu_table)/sizeof(gnu_table_struct);
+
+ s = ps_argv[thisarg]+2;
+ sl = strcspn(s,":=");
+ if(sl > 15) return _("unknown gnu long option");
+ strncpy(buf, s, sl);
+ buf[sl] = '\0';
+ flagptr = s+sl;
+
+ found = bsearch(&findme, gnu_table, gnu_table_count,
+ sizeof(gnu_table_struct), compare_gnu_table_structs
+ );
+
+ if(!found) {
+ if (!strcmp(buf, the_word_help))
+ goto case_help;
+ return _("unknown gnu long option");
+ }
+
+ goto *(found->jump); /* See gcc extension info. :-) */
+
+ case_Group:
+ trace("--Group\n");
+ arg = grab_gnu_arg();
+ if(!arg) return _("list of real groups must follow --Group");
+ err=parse_list(arg, parse_gid);
+ if(err) return err;
+ selection_list->typecode = SEL_RGID;
+ return NULL;
+ case_User:
+ trace("--User\n");
+ arg = grab_gnu_arg();
+ if(!arg) return _("list of real users must follow --User");
+ err=parse_list(arg, parse_uid);
+ if(err) return err;
+ selection_list->typecode = SEL_RUID;
+ return NULL;
+ case_cols:
+ case_width:
+ case_columns:
+ trace("--cols\n");
+ arg = grab_gnu_arg();
+ if(arg && *arg){
+ long t;
+ char *endptr;
+ t = strtol(arg, &endptr, 0);
+ if(!*endptr && (t>0) && (t<2000000000)){
+ screen_cols = (int)t;
+ return NULL;
+ }
+ }
+ return _("number of columns must follow --cols, --width, or --columns");
+ case_cumulative:
+ trace("--cumulative\n");
+ if(s[sl]) return _("option --cumulative does not take an argument");
+ include_dead_children = 1;
+ return NULL;
+ case_dateformat:
+ arg=grab_gnu_arg();
+ if (!arg) return _("date format must follow --date-format");
+ if (lstart_format) free(lstart_format);
+ lstart_format = strdup(arg);
+ return NULL;
+ case_deselect:
+ trace("--deselect\n");
+ if(s[sl]) return _("option --deselect does not take an argument");
+ negate_selection = 1;
+ return NULL;
+ case_no_header:
+ case_no_headers:
+ case_no_heading:
+ case_no_headings:
+ case_noheader:
+ case_noheaders:
+ case_noheading:
+ case_noheadings:
+ trace("--noheaders\n");
+ if(s[sl]) return _("option --no-heading does not take an argument");
+ if(header_type) return _("only one heading option may be specified");
+ header_type = HEAD_NONE;
+ return NULL;
+ case_header:
+ case_headers:
+ case_heading:
+ case_headings:
+ trace("--headers\n");
+ if(s[sl]) return _("option --heading does not take an argument");
+ if(header_type) return _("only one heading option may be specified");
+ header_type = HEAD_MULTI;
+ return NULL;
+ case_forest:
+ trace("--forest\n");
+ if(s[sl]) return _("option --forest does not take an argument");
+ forest_type = 'g';
+ return NULL;
+ case_format:
+ trace("--format\n");
+ arg=grab_gnu_arg();
+ if(!arg) return _("format specification must follow --format");
+ defer_sf_option(arg, SF_G_format);
+ return NULL;
+ case_group:
+ trace("--group\n");
+ arg = grab_gnu_arg();
+ if(!arg) return _("list of effective groups must follow --group");
+ err=parse_list(arg, parse_gid);
+ if(err) return err;
+ selection_list->typecode = SEL_EGID;
+ return NULL;
+ case_help:
+ trace("--help\n");
+ arg = grab_gnu_arg();
+ do_help(arg, EXIT_SUCCESS);
+ case_info:
+ trace("--info\n");
+ exclusive("--info");
+ self_info();
+ exit(0);
+ return NULL;
+ case_pid:
+ trace("--pid\n");
+ arg = grab_gnu_arg();
+ if(!arg) return _("list of process IDs must follow --pid");
+ err=parse_list(arg, parse_pid);
+ if(err) return err;
+ selection_list->typecode = SEL_PID;
+ return NULL;
+ case_pid_quick:
+ trace("--quick-pid\n");
+ arg = grab_gnu_arg();
+ if(!arg) return "List of process IDs must follow --quick-pid.";
+ err=parse_list(arg, parse_pid);
+ if(err) return err;
+ selection_list->typecode = SEL_PID_QUICK;
+ return NULL;
+ case_ppid:
+ trace("--ppid\n");
+ arg = grab_gnu_arg();
+ if(!arg) return _("list of process IDs must follow --ppid");
+ err=parse_list(arg, parse_pid);
+ if(err) return err;
+ selection_list->typecode = SEL_PPID;
+ return NULL;
+ case_rows:
+ case_lines:
+ trace("--rows\n");
+ arg = grab_gnu_arg();
+ if(arg && *arg){
+ long t;
+ char *endptr;
+ t = strtol(arg, &endptr, 0);
+ if(!*endptr && (t>0) && (t<2000000000)){
+ screen_rows = (int)t;
+ return NULL;
+ }
+ }
+ return _("number of rows must follow --rows or --lines");
+ case_sid:
+ trace("--sid\n");
+ arg = grab_gnu_arg();
+ if(!arg) return _("some sid thing(s) must follow --sid");
+ err=parse_list(arg, parse_pid);
+ if(err) return err;
+ selection_list->typecode = SEL_SESS;
+ return NULL;
+ case_signames:
+ trace("--signames\n");
+ signal_names = TRUE;
+ return NULL;
+ case_sort:
+ trace("--sort\n");
+ arg=grab_gnu_arg();
+ if(!arg) return _("long sort specification must follow --sort");
+ defer_sf_option(arg, SF_G_sort);
+ return NULL;
+ case_tty:
+ trace("--tty\n");
+ arg = grab_gnu_arg();
+ if(!arg) return _("list of ttys must follow --tty");
+ err=parse_list(arg, parse_tty);
+ if(err) return err;
+ selection_list->typecode = SEL_TTY;
+ return NULL;
+ case_user:
+ trace("--user\n");
+ arg = grab_gnu_arg();
+ if(!arg) return _("list of effective users must follow --user");
+ err=parse_list(arg, parse_uid);
+ if(err) return err;
+ selection_list->typecode = SEL_EUID;
+ return NULL;
+ case_version:
+ trace("--version\n");
+ exclusive("--version");
+ display_ps_version();
+ exit(0);
+ return NULL;
+ case_context:
+ trace("--context\n");
+ format_flags |= FF_Fc;
+ return NULL;
+}
+
+/*************** process trailing PIDs **********************/
+static const char *parse_trailing_pids(void){
+ selection_node *pidnode; /* pid */
+ selection_node *grpnode; /* process group */
+ selection_node *sidnode; /* session */
+ char **argp; /* pointer to pointer to text of PID */
+ const char *err; /* error code that could or did happen */
+ int i;
+
+ i = ps_argc - thisarg; /* how many trailing PIDs, SIDs, PGRPs?? */
+ argp = ps_argv + thisarg;
+ thisarg = ps_argc - 1; /* we must be at the end now */
+
+ pidnode = xmalloc(sizeof(selection_node));
+ pidnode->u = xcalloc(i, sizeof(sel_union)); /* waste is insignificant */
+ pidnode->n = 0;
+
+ grpnode = xmalloc(sizeof(selection_node));
+ grpnode->u = xcalloc(i,sizeof(sel_union)); /* waste is insignificant */
+ grpnode->n = 0;
+
+ sidnode = xmalloc(sizeof(selection_node));
+ sidnode->u = xcalloc(i, sizeof(sel_union)); /* waste is insignificant */
+ sidnode->n = 0;
+
+ while(i--){
+ char *data;
+ data = *(argp++);
+ switch(*data){
+ default: err = parse_pid( data, pidnode->u + pidnode->n++); break;
+ case '-': err = parse_pid(++data, grpnode->u + grpnode->n++); break;
+ case '+': err = parse_pid(++data, sidnode->u + sidnode->n++); break;
+ }
+ if(err) return err; /* the node gets freed with the list */
+ }
+
+ if(pidnode->n){
+ pidnode->next = selection_list;
+ selection_list = pidnode;
+ selection_list->typecode = SEL_PID;
+ } /* else free both parts */
+
+ if(grpnode->n){
+ grpnode->next = selection_list;
+ selection_list = grpnode;
+ selection_list->typecode = SEL_PGRP;
+ } /* else free both parts */
+
+ if(sidnode->n){
+ sidnode->next = selection_list;
+ selection_list = sidnode;
+ selection_list->typecode = SEL_SESS;
+ } /* else free both parts */
+
+ return NULL;
+}
+
+/************** misc stuff ***********/
+
+static void reset_parser(void){
+ w_count = 0;
+}
+
+static int arg_type(const char *str){
+ int tmp = str[0];
+ if((tmp>='a') && (tmp<='z')) return ARG_BSD;
+ if((tmp>='A') && (tmp<='Z')) return ARG_BSD;
+ if((tmp>='0') && (tmp<='9')) return ARG_PID;
+ if(tmp=='+') return ARG_SESS;
+ if(tmp!='-') return ARG_FAIL;
+ tmp = str[1];
+ if((tmp>='a') && (tmp<='z')) return ARG_SYSV;
+ if((tmp>='A') && (tmp<='Z')) return ARG_SYSV;
+ if((tmp>='0') && (tmp<='9')) return ARG_PGRP;
+ if(tmp!='-') return ARG_FAIL;
+ tmp = str[2];
+ if((tmp>='a') && (tmp<='z')) return ARG_GNU;
+ if((tmp>='A') && (tmp<='Z')) return ARG_GNU;
+ if(tmp=='\0') return ARG_END;
+ return ARG_FAIL;
+}
+
+/* First assume sysv, because that is the POSIX and Unix98 standard. */
+static const char *parse_all_options(void){
+ const char *err = NULL;
+ int at;
+ while(++thisarg < ps_argc){
+ trace("parse_all_options calling arg_type for \"%s\"\n", ps_argv[thisarg]);
+ at = arg_type(ps_argv[thisarg]);
+ trace("ps_argv[thisarg] is %s\n", ps_argv[thisarg]);
+ switch(at){
+ case ARG_GNU:
+ err = parse_gnu_option();
+ break;
+ case ARG_SYSV:
+ if(!force_bsd){ /* else go past case ARG_BSD */
+ err = parse_sysv_option();
+ break;
+ case ARG_BSD:
+ if(force_bsd && !(personality & PER_FORCE_BSD)) return _("way bad");
+ }
+ prefer_bsd_defaults = 1;
+ err = parse_bsd_option();
+ break;
+ case ARG_PGRP:
+ case ARG_SESS:
+ case ARG_PID:
+ prefer_bsd_defaults = 1;
+ err = parse_trailing_pids();
+ break;
+ case ARG_END:
+ case ARG_FAIL:
+ trace(" FAIL/END on [%s]\n",ps_argv[thisarg]);
+ return _("garbage option");
+ break;
+ default:
+ printf(" ? %s\n",ps_argv[thisarg]);
+ return _("something broke");
+ } /* switch */
+ if(err) return err;
+ } /* while */
+ return NULL;
+}
+
+static void choose_dimensions(void){
+ if(w_count && (screen_cols<132)) screen_cols=132;
+ if(w_count>1) screen_cols=OUTBUF_SIZE;
+ /* perhaps --html and --null should set unlimited width */
+}
+
+static const char *thread_option_check(void){
+ if(!thread_flags){
+ thread_flags = TF_show_proc;
+ return NULL;
+ }
+
+ if(forest_type){
+ return _("thread display conflicts with forest display");
+ }
+ //thread_flags |= TF_no_forest;
+
+ if((thread_flags&TF_B_H) && (thread_flags&(TF_B_m|TF_U_m)))
+ return _("thread flags conflict; can't use H with m or -m");
+ if((thread_flags&TF_B_m) && (thread_flags&TF_U_m))
+ return _("thread flags conflict; can't use both m and -m");
+ if((thread_flags&TF_U_L) && (thread_flags&TF_U_T))
+ return _("thread flags conflict; can't use both -L and -T");
+
+ if(thread_flags&TF_B_H) thread_flags |= (TF_show_proc|TF_loose_tasks);
+ if(thread_flags&(TF_B_m|TF_U_m)) thread_flags |= (TF_show_proc|TF_show_task|TF_show_both);
+
+ if(thread_flags&(TF_U_T|TF_U_L)){
+ if(thread_flags&(TF_B_m|TF_U_m|TF_B_H)){
+ // Got a thread style, so format modification is a requirement?
+ // Maybe -T/-L has H thread style though. (sorting interaction?)
+ //return _("Huh? Tell procps@freelists.org what you expected.");
+ thread_flags |= TF_must_use;
+ }else{
+ // using -L/-T thread style, so format from elsewhere is OK
+ thread_flags |= TF_show_task; // or like the H option?
+ //thread_flags |= TF_no_sort;
+ }
+ }
+
+ return NULL;
+}
+
+int arg_parse(int argc, char *argv[]){
+ const char *err = NULL;
+ const char *err2 = NULL;
+ ps_argc = argc;
+ ps_argv = argv;
+ thisarg = 0;
+
+ if(personality & PER_FORCE_BSD) goto try_bsd;
+
+ err = parse_all_options();
+ if(err) goto try_bsd;
+ err = thread_option_check();
+ if(err) goto try_bsd;
+ err = process_sf_options();
+ if(err) goto try_bsd;
+ err = select_bits_setup();
+ if(err) goto try_bsd;
+
+ choose_dimensions();
+ return 0;
+
+try_bsd:
+ trace("--------- now try BSD ------\n");
+
+ reset_global();
+ reset_parser();
+ reset_sortformat();
+ format_flags = 0;
+ ps_argc = argc;
+ ps_argv = argv;
+ thisarg = 0;
+ /* no need to reset flagptr */
+ force_bsd=1;
+ prefer_bsd_defaults=1;
+ if(!( (PER_OLD_m|PER_BSD_m) & personality )) /* if default m setting... */
+ personality |= PER_OLD_m; /* Prefer old Linux over true BSD. */
+ /* Do not set PER_FORCE_BSD! It is tested below. */
+
+ err2 = parse_all_options();
+ if(err2) goto total_failure;
+ err2 = thread_option_check();
+ if(err2) goto total_failure;
+ err2 = process_sf_options();
+ if(err2) goto total_failure;
+ err2 = select_bits_setup();
+ if(err2) goto total_failure;
+
+ choose_dimensions();
+ return 0;
+
+total_failure:
+ reset_parser();
+ if(personality & PER_FORCE_BSD) fprintf(stderr, _("error: %s\n"), err2);
+ else fprintf(stderr, _("error: %s\n"), err);
+ do_help(NULL, EXIT_FAILURE);
+}
diff --git a/src/ps/regression b/src/ps/regression
new file mode 100644
index 0000000..c71c826
--- /dev/null
+++ b/src/ps/regression
@@ -0,0 +1,26 @@
+-u 500 -o pid,ppid,fname,comm,args # right margin trouble
+-u 500 -o pid,ppid,fname,comm,args,wchan,wchan,wchan,wchan,wchan,nice,wchan
+-u 500 -o pid,pid,pid,pid,user,user,user,args # had trouble
+-u 500 -o user,user,user,pid,pid,pid,pid,args # no trouble!
+
+Test with each type of field (RIGHT,LEFT,UNLIMITED...) hanging off the
+edge of the screen and each type of field to the left of the one that
+hangs off the edge.
+
+Test "ps ef" as _both_ normal user and root. Especially after su!
+
+On a 108-col screen, try "ps alx" and "ps alx | cat"
+
+These ought to be the same:
+CMD_ENV=old ps -m
+CMD_ENV=old ps m
+
+These ought to be the same:
+CMD_ENV=old ps -X
+CMD_ENV=old ps X
+ps X
+ps -X # needs to be a non-SysV option
+
+This should fail:
+ps x -x
+
diff --git a/src/ps/select.c b/src/ps/select.c
new file mode 100644
index 0000000..ab71040
--- /dev/null
+++ b/src/ps/select.c
@@ -0,0 +1,162 @@
+/*
+ * select.c - ps process selection
+ *
+ * Copyright © 2011-2023 Jim Warner <james.warner@comcast.net
+ * Copyright © 2004-2020 Craig Small <csmall@dropbear.xyz
+ * Copyright © 1998-2002 Albert Cahalan
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "common.h"
+
+//#define process_group_leader(p) (rSv(ID_PID, s_int, p) == rSv(ID_TGID, s_int, p))
+//#define some_other_user(p) (rSv(ID_EUID, u_int, p) != cached_euid)
+#define has_our_euid(p) (rSv(ID_EUID, u_int, p) == cached_euid)
+#define on_our_tty(p) (rSv(TTY, s_int, p) == cached_tty)
+#define running(p) (rSv(STATE, s_ch, p) == 'R' || rSv(STATE, s_ch, p) == 'D')
+#define session_leader(p) (rSv(ID_SESSION, s_int, p) == rSv(ID_TGID, s_int, p))
+#define without_a_tty(p) (!rSv(TTY, s_int, p))
+
+static unsigned long select_bits = 0;
+
+/***** prepare select_bits for use */
+const char *select_bits_setup(void){
+ int switch_val = 0;
+ /* don't want a 'g' screwing up simple_select */
+ if(!simple_select && !prefer_bsd_defaults){
+ select_bits = 0xaa00; /* the STANDARD selection */
+ return NULL;
+ }
+ /* For every BSD but SunOS, the 'g' option is a NOP. (enabled by default) */
+ if( !(personality & PER_NO_DEFAULT_g) && !(simple_select&(SS_U_a|SS_U_d)) )
+ switch_val = simple_select|SS_B_g;
+ else
+ switch_val = simple_select;
+ switch(switch_val){
+ /* UNIX options */
+ case SS_U_a | SS_U_d: select_bits = 0x3f3f; break; /* 3333 or 3f3f */
+ case SS_U_a: select_bits = 0x0303; break; /* 0303 or 0f0f */
+ case SS_U_d: select_bits = 0x3333; break;
+ /* SunOS 4 only (others have 'g' enabled all the time) */
+ case 0: select_bits = 0x0202; break;
+ case SS_B_a: select_bits = 0x0303; break;
+ case SS_B_x : select_bits = 0x2222; break;
+ case SS_B_x | SS_B_a: select_bits = 0x3333; break;
+ /* General BSD options */
+ case SS_B_g : select_bits = 0x0a0a; break;
+ case SS_B_g | SS_B_a: select_bits = 0x0f0f; break;
+ case SS_B_g | SS_B_x : select_bits = 0xaaaa; break;
+ case SS_B_g | SS_B_x | SS_B_a: /* convert to -e instead of using 0xffff */
+ all_processes = 1;
+ simple_select = 0;
+ break;
+ default:
+ return _("process selection options conflict");
+ break;
+ }
+ return NULL;
+}
+
+/***** selected by simple option? */
+static int table_accept(proc_t *buf){
+ unsigned proc_index;
+ proc_index = (has_our_euid(buf) <<0)
+ | (session_leader(buf) <<1)
+ | (without_a_tty(buf) <<2)
+ | (on_our_tty(buf) <<3);
+ return (select_bits & (1<<proc_index));
+}
+
+/***** selected by some kind of list? */
+static int proc_was_listed(proc_t *buf){
+ selection_node *sn = selection_list;
+ int i;
+ if(!sn) return 0;
+ while(sn){
+ switch(sn->typecode){
+ default:
+ catastrophic_failure(__FILE__, __LINE__, _("please report this bug"));
+
+#define return_if_match(foo,bar) \
+ i=sn->n; while(i--) \
+ if((unsigned)foo == (unsigned)(*(sn->u+i)).bar) \
+ return 1
+
+ break; case SEL_RUID: return_if_match(rSv(ID_RUID, u_int, buf),uid);
+ break; case SEL_EUID: return_if_match(rSv(ID_EUID, u_int, buf),uid);
+ break; case SEL_SUID: return_if_match(rSv(ID_SUID, u_int, buf),uid);
+ break; case SEL_FUID: return_if_match(rSv(ID_FUID, u_int, buf),uid);
+
+ break; case SEL_RGID: return_if_match(rSv(ID_RGID, u_int, buf),gid);
+ break; case SEL_EGID: return_if_match(rSv(ID_EGID, u_int, buf),gid);
+ break; case SEL_SGID: return_if_match(rSv(ID_SGID, u_int, buf),gid);
+ break; case SEL_FGID: return_if_match(rSv(ID_FGID, u_int, buf),gid);
+
+ break; case SEL_PGRP: return_if_match(rSv(ID_PGRP, s_int, buf),pid);
+ break; case SEL_PID : return_if_match(rSv(ID_TGID, s_int, buf),pid);
+ break; case SEL_PID_QUICK : return_if_match(rSv(ID_TGID, s_int, buf),pid);
+ break; case SEL_PPID: return_if_match(rSv(ID_PPID, s_int, buf),ppid);
+ break; case SEL_TTY : return_if_match(rSv(TTY, s_int, buf),tty);
+ break; case SEL_SESS: return_if_match(rSv(ID_SESSION, s_int, buf),pid);
+
+ break;
+ case SEL_COMM:
+ i=sn->n;
+ while(i--) {
+ /* special case, comm is 16 characters but match is longer */
+ if (strlen(rSv(CMD, str, buf)) == 15 && strlen((*(sn->u+i)).cmd) >= 15)
+ if(!strncmp( rSv(CMD, str, buf), (*(sn->u+i)).cmd, 15 )) return 1;
+ if(!strncmp( rSv(CMD, str, buf), (*(sn->u+i)).cmd, 63 )) return 1;
+ }
+
+
+#undef return_if_match
+
+ }
+ sn = sn->next;
+ }
+ return 0;
+}
+
+
+/***** This must satisfy Unix98 and as much BSD as possible */
+int want_this_proc(proc_t *buf){
+ int accepted_proc = 1; /* assume success */
+ /* elsewhere, convert T to list, U sets x implicitly */
+
+ /* handle -e -A */
+ if(all_processes) goto finish;
+
+ /* use table for -a a d g x */
+ if((simple_select || !selection_list))
+ if(table_accept(buf)) goto finish;
+
+ /* search lists */
+ if(proc_was_listed(buf)) goto finish;
+
+ /* fail, fall through to loose ends */
+ accepted_proc = 0;
+
+ /* do r N */
+finish:
+ if(running_only && !running(buf)) accepted_proc = 0;
+ if(negate_selection) return !accepted_proc;
+ return accepted_proc;
+}
diff --git a/src/ps/signames.c b/src/ps/signames.c
new file mode 100644
index 0000000..129a4c2
--- /dev/null
+++ b/src/ps/signames.c
@@ -0,0 +1,170 @@
+/*
+ * signames.c - ps signal names
+ *
+ * Copyright © 2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2020 Luis Chamberlain <mcgrof@kernel.org>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <stdio.h>
+#include <unistd.h>
+#include <signal.h>
+#include <errno.h>
+#include <stdbool.h>
+#include <limits.h>
+#include <stdlib.h>
+#include <string.h>
+#include <fcntl.h>
+#include <dirent.h>
+#include <ctype.h>
+#include <pwd.h>
+#include <inttypes.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/utsname.h>
+
+#include "common.h"
+#include "signals.h"
+
+/* For libraries like musl */
+#ifndef __SIGRTMIN
+#define __SIGRTMIN SIGRTMIN
+#endif
+#ifndef __SIGRTMAX
+#define __SIGRTMAX SIGRTMAX
+#endif
+
+/*
+ * The actual list of unsupported signals varies by operating system. This
+ * program is Linux specific as it processes /proc/ for signal information and
+ * there is no generic way to extract each process signal information for each
+ * OS. This program also relies on Linux glibc defines to figure out which
+ * signals are reserved for use by libc and then which ones are real time
+ * specific.
+ */
+
+/*
+ * As per glibc:
+ *
+ * A system that defines real time signals overrides __SIGRTMAX to be something
+ * other than __SIGRTMIN. This also means we can count on __SIGRTMIN being the
+ * first real time signal, meaning what Linux programs it for your architecture
+ * in the kernel. SIGRTMIN then will be the application specific first real
+ * time signal, that is, on top of libc. The values in between
+ *
+ * __SIGRTMIN .. SIGRTMIN
+ *
+ * are used by * libc, typically for helping threading implementation.
+ */
+static const char *sigstat_strsignal_abbrev(int sig, char *abbrev, size_t len)
+{
+ memset(abbrev, '\0', len);
+
+ if (sig == 0 || sig >= NSIG) {
+ snprintf(abbrev, len, "BOGUS_%02d", sig - _NSIG);
+ return abbrev;
+ }
+
+ /*
+ * The standard lower signals we can count on this being the kernel
+ * specific SIGRTMIN.
+ */
+ if (sig < __SIGRTMIN) {
+ const char *signame = NULL;
+#ifdef HAVE_SIGABBREV_NP
+ signame = sigabbrev_np(sig);
+#else
+ signame = signal_number_to_name(sig);
+#endif /* HAVE_SIGABBREV_NP */
+ if (signame != NULL && signame[0] != '\0') {
+ strncpy(abbrev, signame, len);
+ return abbrev;
+ }
+ }
+
+ /* This means your system should *not* have realtime signals */
+ if (__SIGRTMAX == __SIGRTMIN) {
+ snprintf(abbrev, len, "INVALID_%02d", sig);
+ return abbrev;
+ }
+
+ /*
+ * If we're dealing with a libc real time signal start counting
+ * after libc's version of SIGRTMIN
+ */
+ if (sig >= SIGRTMIN) {
+ if (sig == SIGRTMIN)
+ snprintf(abbrev, len, "RTMIN");
+ else if (sig == SIGRTMAX)
+ snprintf(abbrev, len, "RTMAX");
+ else
+ snprintf(abbrev, len, "RTMIN+%02d", sig - SIGRTMIN);
+ } else
+ snprintf(abbrev, len, "LIBC+%02d", sig - __SIGRTMIN);
+
+ return abbrev;
+}
+
+/*
+ * For instance SIGTERM is 15, but its actual mask value is
+ * 1 << (15-1) = 0x4000
+ */
+static uint64_t mask_sig_val_num(int signum)
+{
+ return ((uint64_t) 1 << (signum -1));
+}
+
+int print_signame(char *restrict const outbuf, const char *restrict const sig, const size_t len_in)
+{
+ unsigned int i;
+ char abbrev[PATH_MAX];
+ unsigned int n = 0;
+ char *c = outbuf;
+ size_t len = len_in;
+ uint64_t mask, mask_in;
+ uint64_t test_val = 0;
+
+ if (1 != sscanf(sig, "%" PRIu64, &mask_in))
+ return 0;
+ mask = mask_in;
+
+ for (i=1; i < NSIG; i++) {
+ test_val = mask_sig_val_num(i);
+ if (test_val & mask) {
+ n = strlen(sigstat_strsignal_abbrev(i, abbrev, PATH_MAX));
+ if (n+1 >= len) { // +1 for the '+'
+ strcpy(c, "+");
+ len -= 1;
+ c += 1;
+ break;
+ } else {
+ n = snprintf(c, len, (c==outbuf)?"%s":",%s",
+ sigstat_strsignal_abbrev(i, abbrev,
+ PATH_MAX));
+ len -= n;
+ c+=n;
+ }
+ }
+ }
+ if (c == outbuf) {
+ n = snprintf(c, len, "%c", '-');
+ len -= n;
+ c += n;
+ }
+ return (int) (c-outbuf);
+}
diff --git a/src/ps/sortformat.c b/src/ps/sortformat.c
new file mode 100644
index 0000000..a76ddee
--- /dev/null
+++ b/src/ps/sortformat.c
@@ -0,0 +1,949 @@
+/*
+ * sortformat.c - ps output sorting
+ *
+ * Copyright © 2011-2023 Jim Warner <james.warner@comcast.net
+ * Copyright © 2004-2023 Craig Small <csmall@dropbear.xyz
+ * Copyright © 2011-2012 Sami Kerola <kerolasa@iki.fi>
+ * Copyright © 1998-2004 Albert Cahalan
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <grp.h>
+#include <pwd.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <limits.h>
+
+#include <sys/types.h>
+
+#include "misc.h"
+#include "xalloc.h"
+
+#include "common.h"
+
+static sf_node *sf_list = NULL; /* deferred sorting and formatting */
+static int have_gnu_sort = 0; /* if true, "O" must be format */
+static int already_parsed_sort = 0; /* redundantly set in & out of fn */
+static int already_parsed_format = 0;
+
+
+/**************** Parse single format specifier *******************/
+static format_node *do_one_spec(const char *spec, const char *override){
+ const format_struct *fs;
+ const macro_struct *ms;
+
+ fs = search_format_array(spec);
+ if(fs){
+ int w1, w2;
+ format_node *thisnode;
+ thisnode = xmalloc(sizeof(format_node));
+ if(fs->flags & CF_PIDMAX){
+ w1 = (int)procps_pid_length();
+ w2 = strlen(fs->head);
+ if(w2>w1) w1=w2; // FIXME w/ separate header/body column sizing
+ }else{
+ w1 = fs->width;
+ }
+ if(override){
+ w2 = strlen(override);
+ thisnode->width = (w1>w2)?w1:w2;
+ thisnode->name = strdup(override);
+ }else{
+ thisnode->width = w1;
+ thisnode->name = strdup(fs->head);
+ }
+ thisnode->pr = fs->pr;
+ thisnode->vendor = fs->vendor;
+ thisnode->flags = fs->flags;
+ thisnode->next = NULL;
+ return thisnode;
+ }
+
+ /* That failed, so try it as a macro. */
+ ms = search_macro_array(spec);
+ if(ms){
+ format_node *list = NULL;
+ format_node *newnode;
+ const char *walk;
+ int dist;
+ char buf[16]; /* trust strings will be short (from above, not user) */
+ walk = ms->head;
+ while(*walk){
+ dist = strcspn(walk, ", ");
+ strncpy(buf,walk,dist);
+ buf[dist] = '\0';
+ newnode = do_one_spec(buf,override); /* call self, assume success */
+ newnode->next = list;
+ list = newnode;
+ walk += dist;
+ if(*walk) walk++;
+ }
+ return list;
+ }
+ return NULL; /* bad, spec not found */
+}
+
+
+/************ must wrap user format in default *************/
+static void O_wrap(sf_node *sfn, int otype){
+ format_node *fnode;
+ format_node *endp;
+ const char *trailer;
+
+ trailer = (otype=='b') ? "END_BSD" : "END_SYS5" ;
+
+ fnode = do_one_spec("pid",NULL);
+ if(!fnode)catastrophic_failure(__FILE__, __LINE__, _("seriously crashing: goodbye cruel world"));
+ endp = sfn->f_cooked; while(endp->next) endp = endp->next; /* find end */
+ endp->next = fnode;
+
+ fnode = do_one_spec(trailer,NULL);
+ if(!fnode)catastrophic_failure(__FILE__, __LINE__, _("seriously crashing: goodbye cruel world"));
+ endp = fnode; while(endp->next) endp = endp->next; /* find end */
+ endp->next = sfn->f_cooked;
+ sfn->f_cooked = fnode;
+}
+
+/******************************************************************
+ * Used to parse option AIX field descriptors.
+ * Put each completed format_node onto the list starting at ->f_cooked
+ */
+static const char *aix_format_parse(sf_node *sfn){
+ char *buf; /* temp copy of arg to hack on */
+ char *walk;
+ int items;
+
+ /*** sanity check and count items ***/
+ items = 0;
+ walk = sfn->sf;
+ /* state machine */ {
+ int c = *walk++;
+ initial:
+ if(c=='%') goto get_desc;
+ if(!c) goto looks_ok;
+ /* get_text: */
+ items++;
+ get_more:
+ c = *walk++;
+ if(c=='%') goto get_desc;
+ if(c==' ') goto get_more;
+ if(c) goto aix_oops;
+ goto looks_ok;
+ get_desc:
+ items++;
+ c = *walk++;
+ if(c&&c!=' ') goto initial;
+ return _("missing AIX field descriptor");
+ aix_oops:
+ return _("improper AIX field descriptor");
+ looks_ok:
+ ;
+ }
+
+ /*** sanity check passed ***/
+ buf = strdup(sfn->sf);
+ walk = sfn->sf;
+
+ while(items--){
+ format_node *fnode; /* newly allocated */
+ format_node *endp; /* for list manipulation */
+
+ if(*walk == '%'){
+ const aix_struct *aix;
+ walk++;
+ if(*walk == '%')
+ return _("missing AIX field descriptor");
+ aix = search_aix_array(*walk);
+ walk++;
+ if(!aix){
+ free(buf);
+ return _("unknown AIX field descriptor");
+ }
+ fnode = do_one_spec(aix->spec, aix->head);
+ if(!fnode){
+ free(buf);
+ return _("AIX field descriptor processing bug");
+ }
+ } else {
+ size_t len;
+ len = strcspn(walk, "%");
+ memcpy(buf,walk,len);
+ buf[len] = '\0';
+ walk += len;
+ fnode = xmalloc(sizeof(format_node));
+ fnode->width = len < INT_MAX ? len : INT_MAX;
+ fnode->name = strdup(buf);
+ fnode->pr = NULL; /* checked for */
+ fnode->vendor = AIX;
+ fnode->flags = CF_PRINT_EVERY_TIME;
+ fnode->next = NULL;
+ }
+
+ endp = fnode; while(endp->next) endp = endp->next; /* find end */
+ endp->next = sfn->f_cooked;
+ sfn->f_cooked = fnode;
+ }
+ free(buf);
+ already_parsed_format = 1;
+ return NULL;
+}
+
+/***************************************************************
+ * Used to parse option O lists. Option O is shared between
+ * sorting and formatting. Users may expect one or the other.
+ * Put each completed format_node onto the list starting at ->f_cooked
+ */
+static const char *format_parse(sf_node *sfn){
+ char *buf; /* temp copy of arg to hack on */
+ char *sep_loc; /* separator location: " \t,\n" */
+ char *walk;
+ const char *err; /* error code that could or did happen */
+ format_node *fnode;
+ int items;
+ int need_item;
+ static char errbuf[80]; /* for variable-text error message */
+
+ /*** prepare to operate ***/
+ buf = strdup(sfn->sf);
+
+ /*** sanity check and count items ***/
+ need_item = 1; /* true */
+ items = 0;
+ walk = buf;
+ do{
+ switch(*walk){
+ case ' ': case ',': case '\t': case '\n': case '\0':
+ /* Linux extension: allow \t and \n as delimiters */
+ if(need_item){
+ free(buf);
+ goto improper;
+ }
+ need_item=1;
+ break;
+ default:
+ if(need_item) items++;
+ need_item=0;
+ }
+ } while (*++walk);
+
+ if(!items){
+ free(buf);
+ goto empty;
+ }
+#ifdef STRICT_LIST
+ if(need_item){ /* can't have trailing deliminator */
+ free(buf);
+ goto improper;
+ }
+#else
+ if(need_item){ /* allow 1 trailing deliminator */
+ *--walk='\0'; /* remove the trailing deliminator */
+ }
+#endif
+ /*** actually parse the list ***/
+ walk = buf;
+ while(items--){
+ format_node *endp;
+ char *equal_loc;
+ char *colon_loc;
+ if(!walk) catastrophic_failure(__FILE__, __LINE__, _("please report this bug"));
+ sep_loc = strpbrk(walk," ,\t\n");
+ /* if items left, then sep_loc is not in header override */
+ if(items && sep_loc) *sep_loc = '\0';
+ equal_loc = strpbrk(walk,"=");
+ if(equal_loc){ /* if header override */
+ *equal_loc = '\0';
+ equal_loc++;
+ }
+ colon_loc = strpbrk(walk,":");
+ if(colon_loc){ /* if width override */
+ *colon_loc = '\0';
+ colon_loc++;
+ if(strspn(colon_loc,"0123456789") != strlen(colon_loc) || *colon_loc=='0' || !*colon_loc || atoi(colon_loc) <= 0){
+ free(buf);
+ goto badwidth;
+ }
+ }
+ fnode = do_one_spec(walk,equal_loc);
+ if(!fnode){
+ if(!*errbuf){ /* if didn't already create an error string */
+ snprintf(
+ errbuf,
+ sizeof(errbuf),
+ _("unknown user-defined format specifier \"%s\""),
+ walk
+ );
+ }
+ free(buf);
+ goto unknown;
+ }
+ if(colon_loc){
+ if(fnode->next){
+ free(buf);
+ goto notmacro;
+ }
+ // FIXME: enforce signal width to 8, 9, or 16 (grep: SIGNAL wide_signals)
+ fnode->width = atoi(colon_loc); // already verified to be a number
+ if(fnode->width <= 0) catastrophic_failure(__FILE__, __LINE__, _("please report this bug"));
+ }
+ endp = fnode; while(endp->next) endp = endp->next; /* find end */
+ endp->next = sfn->f_cooked;
+ sfn->f_cooked = fnode;
+ walk = sep_loc ? sep_loc + 1 : NULL; /* point to next item, if any */
+ }
+ free(buf);
+ already_parsed_format = 1;
+ return NULL;
+
+ /* errors may cause a retry looking for AIX format codes */
+ if(0) unknown: err=errbuf;
+ if(0) empty: err=_("empty format list");
+ if(0) improper: err=_("improper format list");
+ if(0) badwidth: err=_("column widths must be unsigned decimal numbers");
+ if(0) notmacro: err=_("can not set width for a macro (multi-column) format specifier");
+ if(strchr(sfn->sf,'%')) err = aix_format_parse(sfn);
+ return err;
+}
+
+/**************** Parse single sort specifier *******************/
+static sort_node *do_one_sort_spec(const char *spec){
+ const format_struct *fs;
+ enum pids_sort_order reverse = PIDS_SORT_ASCEND;
+ if(*spec == '-'){
+ reverse = PIDS_SORT_DESCEND;
+ spec++;
+ } else if(*spec == '+'){
+ spec++;
+ }
+ fs = search_format_array(spec);
+ if(fs){
+ sort_node *thisnode;
+ thisnode = xmalloc(sizeof(sort_node));
+ thisnode->sr = fs->sr;
+ // next is a special pointer, called to help with rel enums
+ thisnode->xe = (int(*)(char*,proc_t*))fs->pr;
+ thisnode->reverse = reverse;
+ thisnode->next = NULL;
+ return thisnode;
+ }
+ return NULL; /* bad, spec not found */
+}
+
+
+/**************************************************************
+ * Used to parse long sorting options.
+ * Put each completed sort_node onto the list starting at ->s_cooked
+ */
+static const char *long_sort_parse(sf_node *sfn){
+ char *buf; /* temp copy of arg to hack on */
+ char *sep_loc; /* separator location: " \t,\n" */
+ char *walk;
+ sort_node *snode;
+ int items;
+ int need_item;
+
+ /*** prepare to operate ***/
+ buf = strdup(sfn->sf);
+
+ /*** sanity check and count items ***/
+ need_item = 1; /* true */
+ items = 0;
+ walk = buf;
+ do{
+ switch(*walk){
+ case ' ': case ',': case '\t': case '\n': case '\0':
+ if(need_item){
+ free(buf);
+ return _("improper sort list");
+ }
+ need_item=1;
+ break;
+ default:
+ if(need_item) items++;
+ need_item=0;
+ }
+ } while (*++walk);
+ if(!items){
+ free(buf);
+ return _("empty sort list");
+ }
+#ifdef STRICT_LIST
+ if(need_item){ /* can't have trailing deliminator */
+ free(buf);
+ return _("improper sort list");
+ }
+#else
+ if(need_item){ /* allow 1 trailing deliminator */
+ *--walk='\0'; /* remove the trailing deliminator */
+ }
+#endif
+ /*** actually parse the list ***/
+ walk = buf;
+ while(items--){
+ sort_node *endp;
+ sep_loc = strpbrk(walk," ,\t\n");
+ if(sep_loc) *sep_loc = '\0';
+ snode = do_one_sort_spec(walk);
+ if(!snode){
+ free(buf);
+ return _("unknown sort specifier");
+ }
+ endp = snode; while(endp->next) endp = endp->next; /* find end */
+ endp->next = sfn->s_cooked;
+ sfn->s_cooked = snode;
+ walk = sep_loc + 1; /* point to next item, if any */
+ }
+ free(buf);
+ already_parsed_sort = 1;
+ return NULL;
+}
+
+
+
+
+
+
+/************ pre-parse short sorting option *************/
+/* Errors _must_ be detected so that the "O" option can try to
+ * reparse as formatting codes.
+ */
+static const char *verify_short_sort(const char *arg){
+ const char all[] = "CGJKMNPRSTUcfgjkmnoprstuvy+-";
+ char checkoff[256];
+ int i;
+ const char *walk;
+ int tmp;
+ if(strspn(arg,all) != strlen(arg)) return _("bad sorting code");
+ for(i=256; i--;) checkoff[i] = 0;
+ walk = arg;
+ for(;;){
+ tmp = *walk;
+ if(tmp < 0 || (size_t)tmp >= sizeof(checkoff)) return _("bad sorting code");
+ switch(tmp){
+ case '\0':
+ return NULL; /* looks good */
+ case '+':
+ case '-':
+ tmp = *(walk+1);
+ if(!tmp || tmp=='+' || tmp=='-') return _("bad sorting code");
+ break;
+ case 'P':
+ if(forest_type) return _("PPID sort and forest output conflict");
+ /* fall through */
+ default:
+ if(checkoff[tmp]) return _("bad sorting code"); /* repeated */
+ /* ought to check against already accepted sort options */
+ checkoff[tmp] = 1;
+ break;
+ }
+ walk++;
+ }
+}
+
+
+
+/************ parse short sorting option *************/
+static const char *short_sort_parse(sf_node *sfn){
+ enum pids_sort_order direction = PIDS_SORT_ASCEND;
+ const char *walk;
+ int tmp;
+ sort_node *snode;
+ sort_node *endp;
+ const struct shortsort_struct *ss;
+ walk = sfn->sf;
+ for(;;){
+ tmp = *walk;
+ switch(tmp){
+ case '\0':
+ already_parsed_sort = 1;
+ return NULL;
+ case '+':
+ direction = PIDS_SORT_ASCEND;
+ break;
+ case '-':
+ direction = PIDS_SORT_DESCEND;
+ break;
+ default:
+ ss = search_shortsort_array(tmp);
+ if(!ss) return _("unknown sort specifier");
+ snode = do_one_sort_spec(ss->spec);
+ if(!snode) return _("unknown sort specifier");
+ snode->reverse = direction;
+ endp = snode; while(endp->next) endp = endp->next; /* find end */
+ endp->next = sfn->s_cooked;
+ sfn->s_cooked = snode;
+ direction = 0;
+ break;
+ }
+ walk++;
+ }
+}
+
+/******************* high-level below here *********************/
+
+
+/*
+ * Used to parse option O lists. Option O is shared between
+ * sorting and formatting. Users may expect one or the other.
+ * Recursion is to preserve original order.
+ */
+static const char *parse_O_option(sf_node *sfn){
+ const char *err; /* error code that could or did happen */
+
+ if(sfn->next){
+ err = parse_O_option(sfn->next);
+ if(err) return err;
+ }
+
+ switch(sfn->sf_code){
+ case SF_B_o: case SF_G_format: case SF_U_o: /*** format ***/
+ err = format_parse(sfn);
+ if(!err) already_parsed_format = 1;
+ break;
+ case SF_U_O: /*** format ***/
+ /* Can have -l -f f u... set already_parsed_format like DEC does */
+ if(already_parsed_format) return _("option -O can not follow other format options");
+ err = format_parse(sfn);
+ if(err) return err;
+ already_parsed_format = 1;
+ O_wrap(sfn,'u'); /* must wrap user format in default */
+ break;
+ case SF_B_O: /*** both ***/
+ if(have_gnu_sort || already_parsed_sort) err = _("multiple sort options");
+ else err = verify_short_sort(sfn->sf);
+ if(!err){ /* success as sorting code */
+ short_sort_parse(sfn);
+ already_parsed_sort = 1;
+ return NULL;
+ }
+ if(already_parsed_format){
+ err = _("option O is neither first format nor sort order");
+ break;
+ }
+ if(!format_parse(sfn)){ /* if success as format code */
+ already_parsed_format = 1;
+ O_wrap(sfn,'b'); /* must wrap user format in default */
+ return NULL;
+ }
+ break;
+ case SF_G_sort: case SF_B_m: /*** sort ***/
+ if(already_parsed_sort) err = _("multiple sort options");
+ else err = long_sort_parse(sfn);
+ already_parsed_sort = 1;
+ break;
+ default: /*** junk ***/
+ catastrophic_failure(__FILE__, __LINE__, _("please report this bug"));
+ }
+ return err; /* could be NULL */
+}
+
+
+/************ Main parser calls this to save lists for later **********/
+/* store data for later and return 1 if arg looks non-standard */
+int defer_sf_option(const char *arg, int source){
+ sf_node *sfn;
+ char buf[16];
+ int dist;
+ const format_struct *fs;
+ int need_item = 1;
+
+ sfn = xmalloc(sizeof(sf_node));
+ sfn->sf = strdup(arg);
+ sfn->sf_code = source;
+ sfn->s_cooked = NULL;
+ sfn->f_cooked = NULL;
+ sfn->next = sf_list;
+ sf_list = sfn;
+
+ if(source == SF_G_sort) have_gnu_sort = 1;
+
+ /* Now try to find an excuse to ignore broken Unix98 parsing. */
+ if(source != SF_U_o) return 1; /* Wonderful! Already non-Unix98. */
+ do{
+ switch(*arg){
+ case ' ': case ',': case '\0': /* no \t\n\r support in Unix98 */
+ if(need_item) return 1; /* something wrong */
+ need_item=1;
+ break;
+ case '=':
+ if(need_item) return 1; /* something wrong */
+ return 0; /* broken Unix98 parsing is required */
+ default:
+ if(!need_item) break;
+ need_item=0;
+ dist = strcspn(arg,", =");
+ if(dist>15) return 1; /* something wrong, sort maybe? */
+ strncpy(buf,arg,dist); /* no '\0' on end */
+ buf[dist] = '\0'; /* fix that problem */
+ fs = search_format_array(buf);
+ if(!fs) return 1; /* invalid spec, macro or sort maybe? */
+ if(fs->vendor) return 1; /* Wonderful! Legal non-Unix98 spec. */
+ }
+ } while (*++arg);
+
+ return 0; /* boring, Unix98 is no change */
+}
+
+/***** Since ps is not long-lived, the memory leak can be ignored. ******/
+void reset_sortformat(void){
+ sf_list = NULL; /* deferred sorting and formatting */
+ format_list = NULL; /* digested formatting options */
+ sort_list = NULL; /* digested sorting options (redundant?) */
+ have_gnu_sort = 0;
+ already_parsed_sort = 0;
+ already_parsed_format = 0;
+}
+
+
+/***** Search format_list for findme, then insert putme after findme. ****/
+static int fmt_add_after(const char *findme, format_node *putme){
+ format_node *walk;
+ if(!strcmp(format_list->name, findme)){
+ putme->next = format_list->next;
+ format_list->next = putme;
+ return 1; /* success */
+ }
+ walk = format_list;
+ while(walk->next){
+ if(!strcmp(walk->next->name, findme)){
+ putme->next = walk->next->next;
+ walk->next->next = putme;
+ return 1; /* success */
+ }
+ walk = walk->next;
+ }
+ return 0; /* fail */
+}
+
+/******* Search format_list for findme, then delete it. ********/
+static int fmt_delete(const char *findme){
+ format_node *walk;
+ format_node *old;
+ if(!strcmp(format_list->name, findme)){
+ old = format_list;
+ format_list = format_list->next;
+ free(old);
+ return 1; /* success */
+ }
+ walk = format_list;
+ while(walk->next){
+ if(!strcmp(walk->next->name, findme)){
+ old = walk->next;
+ walk->next = walk->next->next;
+ free(old);
+ return 1; /* success */
+ }
+ walk = walk->next;
+ }
+ return 0; /* fail */
+}
+
+
+/************ Build a SysV format backwards. ***********/
+#define PUSH(foo) (fn=do_one_spec(foo, NULL), fn->next=format_list, format_list=fn)
+static const char *generate_sysv_list(void){
+ format_node *fn;
+ if((format_modifiers & FM_y) && !(format_flags & FF_Ul))
+ return _("modifier -y without format -l makes no sense");
+ if(prefer_bsd_defaults){
+ if(format_flags) PUSH("cmd");
+ else PUSH("args");
+ PUSH("bsdtime");
+ if(!(format_flags & FF_Ul)) PUSH("stat");
+ }else{
+ if(format_flags & FF_Uf) PUSH("cmd");
+ else PUSH("ucmd");
+ PUSH("time");
+ }
+ PUSH("tname"); /* Unix98 says "TTY" here, yet "tty" produces "TT". */
+ if(format_flags & FF_Uf) PUSH("stime");
+ /* avoid duplicate columns from -FP and -Fly */
+ if(format_modifiers & FM_F){
+ /* if -FP take the Sun-style column instead (sorry about "sgi_p") */
+ if(!(format_modifiers & FM_P)) PUSH("psr"); /* should be ENG */
+ /* if -Fly take the ADDR-replacement RSS instead */
+ if(!( (format_flags & FF_Ul) && (format_modifiers & FM_y) )) PUSH("rss");
+ }
+ if(format_flags & FF_Ul){
+ PUSH("wchan");
+ }
+ /* since FM_y adds RSS anyway, don't do this hack when that is true */
+ if( (format_flags & FF_Ul) && !(format_modifiers & FM_y) ){
+ if(personality & PER_IRIX_l){ /* add "rss" then ':' here */
+ PUSH("sgi_rss");
+ fn = xmalloc(sizeof(format_node));
+ fn->width = 1;
+ fn->name = strdup(":");
+ fn->pr = NULL; /* checked for */
+ fn->vendor = AIX; /* yes, for SGI weirdness */
+ fn->flags = CF_PRINT_EVERY_TIME;
+ fn->next = format_list;
+ format_list=fn;
+ }
+ }
+ if((format_modifiers & FM_F) || (format_flags & FF_Ul)){
+ PUSH("sz");
+ }
+ if(format_flags & FF_Ul){
+ if(format_modifiers & FM_y) PUSH("rss");
+ else if(personality & (PER_ZAP_ADDR|PER_IRIX_l)) PUSH("sgi_p");
+ else PUSH("addr_1");
+ }
+ if(format_modifiers & FM_c){
+ PUSH("pri"); PUSH("class");
+ }else if(format_flags & FF_Ul){
+ PUSH("ni");
+ if(personality & PER_IRIX_l) PUSH("priority");
+ else /* is this good? */ PUSH("opri");
+ }
+
+ // FIXME TODO XXX -- this is a serious problem
+ // These somehow got flipped around.
+ // The bug is in procps-3.1.1, procps-990211, prior too?
+ if((thread_flags & TF_U_L) && (format_flags & FF_Uf)) PUSH("nlwp");
+ if( (format_flags & (FF_Uf|FF_Ul)) && !(format_modifiers & FM_c) ) PUSH("c");
+
+ if(format_modifiers & FM_P) PUSH("psr");
+ if(thread_flags & TF_U_L) PUSH("lwp");
+ if(format_modifiers & FM_j){
+ PUSH("sid");
+ PUSH("pgid");
+ }
+ if(format_flags & (FF_Uf|FF_Ul)) PUSH("ppid");
+ if(thread_flags & TF_U_T) PUSH("spid");
+ PUSH("pid");
+ if(format_flags & FF_Uf){
+ if(personality & PER_SANE_USER) PUSH("user");
+ else PUSH("uid_hack");
+ }else if(format_flags & FF_Ul){
+ PUSH("uid");
+ }
+ if(format_flags & FF_Ul){
+ PUSH("s");
+ if(!(format_modifiers & FM_y)) PUSH("f");
+ }
+ if(format_modifiers & FM_M){
+ PUSH("label"); /* Mandatory Access Control */
+ }
+ return NULL;
+}
+
+
+/**************************************************************************
+ * Used to parse option O lists. Option O is shared between
+ * sorting and formatting. Users may expect one or the other.
+ * The "broken" flag enables a really bad Unix98 misfeature.
+ */
+const char *process_sf_options(void){
+ sf_node *sf_walk;
+
+ if(sf_list){
+ const char *err;
+ err = parse_O_option(sf_list);
+ if(err) return err;
+ }
+
+ if(format_list) catastrophic_failure(__FILE__, __LINE__, _("bug: must reset the list first"));
+
+ /* merge formatting info of sf_list into format_list here */
+ sf_walk = sf_list;
+ while(sf_walk){
+ format_node *fmt_walk;
+ fmt_walk = sf_walk->f_cooked;
+ sf_walk->f_cooked = NULL;
+ while(fmt_walk){ /* put any nodes onto format_list in opposite way */
+ format_node *travler;
+ travler = fmt_walk;
+ fmt_walk = fmt_walk->next;
+ travler->next = format_list;
+ format_list = travler;
+ }
+ sf_walk = sf_walk->next;
+ }
+
+ /* merge sorting info of sf_list into sort_list here */
+ sf_walk = sf_list;
+ while(sf_walk){
+ sort_node *srt_walk;
+ srt_walk = sf_walk->s_cooked;
+ sf_walk->s_cooked = NULL;
+ if (srt_walk) {
+ sort_node *travler = srt_walk;
+ while (travler->next) travler = travler->next;
+ travler->next = sort_list;
+ sort_list = srt_walk;
+ }
+ sf_walk = sf_walk->next;
+ }
+
+ // Get somebody to explain how -L/-T is supposed to interact
+ // with sorting. Do the threads remain grouped, with sorting
+ // by process, or do the threads get sorted by themselves?
+ if(sort_list && (thread_flags&TF_no_sort)){
+ return _("tell <procps@freelists.org> what you expected");
+ }
+
+ // If nothing else, try to use $PS_FORMAT before the default.
+ if(!format_flags && !format_modifiers && !format_list){
+ char *tmp;
+ tmp = getenv("PS_FORMAT"); /* user override kills default */
+ if(tmp && *tmp){
+ const char *err;
+ sf_node sfn;
+ if(thread_flags&TF_must_use) return _("tell <procps@freelists.org> what you want (-L/-T, -m/m/H, and $PS_FORMAT)");
+ sfn.sf = tmp;
+ sfn.f_cooked = NULL;
+ err = format_parse(&sfn);
+ if(!err){
+ format_node *fmt_walk;
+ fmt_walk = sfn.f_cooked;
+ while(fmt_walk){ /* put any nodes onto format_list in opposite way */
+ format_node *travler;
+ travler = fmt_walk;
+ fmt_walk = fmt_walk->next;
+ travler->next = format_list;
+ format_list = travler;
+ }
+ return NULL;
+ }
+ // FIXME: prove that this won't be hit on valid bogus-BSD options
+ fprintf(stderr, _("warning: $PS_FORMAT ignored. (%s)\n"), err);
+ }
+ }
+
+ if(format_list){
+ if(format_flags) return _("conflicting format options");
+ if(format_modifiers) return _("can not use output modifiers with user-defined output");
+ if(thread_flags&TF_must_use) return _("-L/-T with H/m/-m and -o/-O/o/O is nonsense");
+ return NULL;
+ }
+
+ do{
+ const char *spec;
+ switch(format_flags){
+
+ default: return _("conflicting format options");
+
+ /* These can be NULL, which enables SysV list generation code. */
+ case 0: spec=NULL; break;
+ case FF_Uf | FF_Ul: spec=sysv_fl_format; break;
+ case FF_Uf: spec=sysv_f_format; break;
+ case FF_Ul: spec=sysv_l_format; break;
+
+ /* These are NOT REACHED for normal -j processing. */
+ case FF_Uj: spec=sysv_j_format; break; /* Debian & Digital */
+ case FF_Uj | FF_Ul: spec="RD_lj"; break; /* Debian */
+ case FF_Uj | FF_Uf: spec="RD_fj"; break; /* Debian */
+
+ /* These are true BSD options. */
+ case FF_Bj: spec=bsd_j_format; break;
+ case FF_Bl: spec=bsd_l_format; break;
+ case FF_Bs: spec=bsd_s_format; break;
+ case FF_Bu: spec=bsd_u_format; break;
+ case FF_Bv: spec=bsd_v_format; break;
+
+ /* These are old Linux options. Option m is overloaded. */
+ case FF_LX: spec="OL_X"; break;
+ case FF_Lm: spec="OL_m"; break;
+
+ /* This is the sole FLASK security option. */
+ case FF_Fc: spec="FLASK_context"; break;
+
+ } /* end switch(format_flags) */
+
+ // not just for case 0, since sysv_l_format and such may be NULL
+ if(!spec) return generate_sysv_list();
+
+ do{
+ format_node *fmt_walk;
+ fmt_walk = do_one_spec(spec, NULL); /* use override "" for no headers */
+ while(fmt_walk){ /* put any nodes onto format_list in opposite way */
+ format_node *travler;
+ travler = fmt_walk;
+ fmt_walk = fmt_walk->next;
+ travler->next = format_list;
+ format_list = travler;
+ }
+ }while(0);
+ }while(0);
+
+ do{
+ format_node *fn;
+ if(format_modifiers & FM_j){
+ fn = do_one_spec("pgid", NULL);
+ if(!fmt_add_after("PPID", fn)) if(!fmt_add_after("PID", fn))
+ catastrophic_failure(__FILE__, __LINE__, _("internal error: no PID or PPID for -j option"));
+ fn = do_one_spec("sid", NULL);
+ if(!fmt_add_after("PGID", fn)) return _("lost my PGID");
+ }
+ if(format_modifiers & FM_y){
+ /* TODO: check for failure to do something, and complain if so */
+ fmt_delete("F");
+ fn = do_one_spec("rss", NULL);
+ if(fmt_add_after("ADDR", fn)) fmt_delete("ADDR");
+ }
+ if(format_modifiers & FM_c){
+ fmt_delete("%CPU"); fmt_delete("CPU"); fmt_delete("CP"); fmt_delete("C");
+ fmt_delete("NI");
+ fn = do_one_spec("class", NULL);
+ if(!fmt_add_after("PRI", fn))
+ catastrophic_failure(__FILE__, __LINE__, _("internal error: no PRI for -c option"));
+ fmt_delete("PRI"); /* we want a different one */
+ fn = do_one_spec("pri", NULL);
+ if(!fmt_add_after("CLS", fn)) return _("lost my CLS");
+ }
+ if(thread_flags & TF_U_T){
+ fn = do_one_spec("spid", NULL);
+ if(!fmt_add_after("PID", fn) && (thread_flags&TF_must_use))
+ return _("-T with H/-m/m but no PID for SPID to follow");
+ }
+ if(thread_flags & TF_U_L){
+ fn = do_one_spec("lwp", NULL);
+ if(fmt_add_after("SID", fn)) goto did_lwp;
+ if(fmt_add_after("SESS", fn)) goto did_lwp;
+ if(fmt_add_after("PGID", fn)) goto did_lwp;
+ if(fmt_add_after("PGRP", fn)) goto did_lwp;
+ if(fmt_add_after("PPID", fn)) goto did_lwp;
+ if(fmt_add_after("PID", fn)) goto did_lwp;
+ if(thread_flags&TF_must_use)
+ return _("-L with H/-m/m but no PID/PGID/SID/SESS for NLWP to follow");
+did_lwp:
+ fn = do_one_spec("nlwp", NULL);
+ fmt_add_after("%CPU", fn);
+ }
+ if(format_modifiers & FM_M){ // Mandatory Access Control, IRIX style
+ fn = do_one_spec("label", NULL);
+ fn->next=format_list;
+ format_list=fn;
+ }
+ /* Do personality-specific translations not covered by format_flags.
+ * Generally, these only get hit when personality overrides unix output.
+ * That (mostly?) means the Digital and Debian personalities.
+ */
+ if((personality & PER_ZAP_ADDR) && (format_flags & FF_Ul)){
+ fn = do_one_spec("sgi_p", NULL);
+ if(fmt_add_after("ADDR", fn)) fmt_delete("ADDR");
+ }
+ if((personality & PER_SANE_USER) && (format_flags & FF_Uf)){
+ fn = do_one_spec("user", NULL);
+ if(fmt_add_after("UID", fn)) fmt_delete("UID");
+ }
+ }while(0);
+
+ return NULL;
+}
+
diff --git a/src/ps/stacktrace.c b/src/ps/stacktrace.c
new file mode 100644
index 0000000..fdd2aa9
--- /dev/null
+++ b/src/ps/stacktrace.c
@@ -0,0 +1,191 @@
+/*
+ * stacktrace.c - ps debugging additions
+ *
+ * Gnu debugger stack trace code provided by Peter Mattis
+ * <petm@CSUA.Berkeley.EDU> on Thu, 2 Nov 1995
+ * Modified for easy use by Albert Cahalan.
+ *
+ * Copyright © 2004-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2011-2016 Jim Warner <james.warner@comcast.net
+ * Copyright © 1998-2004 Albert Cahalan
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <errno.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+
+#include <sys/time.h>
+#include <sys/types.h>
+#include <sys/wait.h>
+
+#include "common.h"
+
+#define INTERACTIVE 0
+#define STACK_TRACE 1
+
+char *stored_prog_name = "you forgot to set \"program\"";
+static int stack_trace_done;
+
+/***********/
+static void debug_stop(char **args){
+ execvp (args[0], args);
+ perror ("exec failed");
+ _exit (0);
+}
+
+/***********/
+static void stack_trace_sigchld(int signum){
+ (void)signum;
+ stack_trace_done = 1;
+}
+
+/************/
+static void stack_trace(char **args){
+ pid_t pid;
+ int in_fd[2];
+ int out_fd[2];
+ fd_set fdset;
+ fd_set readset;
+ struct timeval tv;
+ int sel, index, state;
+ char buffer[256];
+ char c;
+
+ stack_trace_done = 0;
+ signal(SIGCHLD, stack_trace_sigchld);
+
+ if((pipe (in_fd) == -1) || (pipe (out_fd) == -1)){
+ perror ("could open pipe");
+ _exit (0);
+ }
+
+ pid = fork ();
+ if (pid == 0){
+ close (0); dup (in_fd[0]); /* set the stdin to the in pipe */
+ close (1); dup (out_fd[1]); /* set the stdout to the out pipe */
+ close (2); dup (out_fd[1]); /* set the stderr to the out pipe */
+ execvp (args[0], args); /* exec gdb */
+ perror ("exec failed");
+ _exit (0);
+ } else {
+ if(pid == (pid_t) -1){
+ perror ("could not fork");
+ _exit (0);
+ }
+ }
+
+ FD_ZERO (&fdset);
+ FD_SET (out_fd[0], &fdset);
+
+ write (in_fd[1], "backtrace\n", 10);
+ write (in_fd[1], "p x = 0\n", 8);
+ write (in_fd[1], "quit\n", 5);
+
+ index = 0;
+ state = 0;
+
+ for(;;){
+ readset = fdset;
+ tv.tv_sec = 1;
+ tv.tv_usec = 0;
+
+ sel = select (FD_SETSIZE, &readset, NULL, NULL, &tv);
+ if (sel == -1) break;
+
+ if((sel > 0) && (FD_ISSET (out_fd[0], &readset))){
+ if(read (out_fd[0], &c, 1)){
+ switch(state){
+ case 0:
+ if(c == '#'){
+ state = 1;
+ index = 0;
+ buffer[index++] = c;
+ }
+ break;
+ case 1:
+ buffer[index++] = c;
+ if((c == '\n') || (c == '\r')){
+ buffer[index] = 0;
+ fprintf (stderr, "%s", buffer);
+ state = 0;
+ index = 0;
+ }
+ break;
+ default:
+ break;
+ }
+ }
+ }
+ else if(stack_trace_done) break;
+ }
+
+ close (in_fd[0]);
+ close (in_fd[1]);
+ close (out_fd[0]);
+ close (out_fd[1]);
+ _exit (0);
+}
+
+/************/
+void debug(int method, char *prog_name){
+ pid_t pid;
+ char buf[16];
+ char *args[4] = { "gdb", NULL, NULL, NULL };
+ int x;
+
+ snprintf (buf, sizeof(buf), "%d", getpid ());
+
+ args[1] = prog_name;
+ args[2] = buf;
+
+ pid = fork ();
+ if(pid == 0){
+ switch (method){
+ case INTERACTIVE:
+ fprintf (stderr, "debug_stop\n");
+ debug_stop(args);
+ break;
+ case STACK_TRACE:
+ fprintf (stderr, "stack_trace\n");
+ stack_trace(args);
+ break;
+ }
+ _exit(0);
+ } else if(pid == (pid_t) -1){
+ perror ("could not fork");
+ return;
+ }
+
+ x = 1;
+ while(x); /* wait for debugger? */
+}
+
+#ifdef DEBUG
+/************/
+static void stack_trace_sigsegv(int signum){
+ (void)signum;
+ debug(STACK_TRACE, stored_prog_name);
+}
+
+/************/
+void init_stack_trace(char *prog_name){
+ stored_prog_name = prog_name;
+ signal(SIGSEGV, stack_trace_sigsegv);
+}
+#endif
diff --git a/src/pwdx.c b/src/pwdx.c
new file mode 100644
index 0000000..90ead80
--- /dev/null
+++ b/src/pwdx.c
@@ -0,0 +1,153 @@
+/*
+ * pwdx.c - print process working directory
+ *
+ * Copyright © 2015-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2011-2012 Sami Kerola <kerolasa@iki.fi>
+ * Copyright © 2004-2006 Albert Cahalan
+ * Copyright © 2004 Nicholas Miell
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <errno.h>
+#include <getopt.h>
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include "c.h"
+#include "nls.h"
+#include "xalloc.h"
+#include "fileutils.h"
+
+static void __attribute__ ((__noreturn__)) usage(FILE * out)
+{
+ fputs(USAGE_HEADER, out);
+ fprintf(out, _(" %s [options] pid...\n"), program_invocation_short_name);
+ fputs(USAGE_OPTIONS, out);
+ fputs(USAGE_HELP, out);
+ fputs(USAGE_VERSION, out);
+ fprintf(out, USAGE_MAN_TAIL("pwdx(1)"));
+
+ exit(out == stderr ? EXIT_FAILURE : EXIT_SUCCESS);
+}
+
+int check_pid_argument(char *input)
+{
+ int skip = 0;
+ long pid;
+ char *end = NULL;
+
+ if (!strncmp("/proc/", input, 6))
+ skip = 6;
+ errno = 0;
+ pid = strtol(input + skip, &end, 10);
+
+ if (errno || input + skip == end || (end && *end))
+ return 1;
+ if (pid < 1)
+ return 1;
+ return 0;
+}
+
+int main(int argc, char *argv[])
+{
+ int ch;
+ int retval = 0, i;
+ ssize_t alloclen = 128;
+ char *pathbuf;
+
+ static const struct option longopts[] = {
+ {"version", no_argument, 0, 'V'},
+ {"help", no_argument, 0, 'h'},
+ {NULL, 0, 0, 0}
+ };
+
+#ifdef HAVE_PROGRAM_INVOCATION_NAME
+ program_invocation_name = program_invocation_short_name;
+#endif
+ setlocale (LC_ALL, "");
+ bindtextdomain(PACKAGE, LOCALEDIR);
+ textdomain(PACKAGE);
+ atexit(close_stdout);
+
+ while ((ch = getopt_long(argc, argv, "Vh", longopts, NULL)) != -1)
+ switch (ch) {
+ case 'V':
+ printf(PROCPS_NG_VERSION);
+ return EXIT_SUCCESS;
+ case 'h':
+ usage(stdout);
+ default:
+ usage(stderr);
+ }
+
+ argc -= optind;
+ argv += optind;
+
+ if (argc == 0)
+ usage(stderr);
+
+ pathbuf = xmalloc(alloclen);
+
+ for (i = 0; i < argc; i++) {
+ char *s;
+ ssize_t len, buflen;
+ /* Constant 10 is the length of strings "/proc/" + "/cwd" */
+ char *buf;
+ buflen = 10 + strlen(argv[i]) + 1;
+ buf = xmalloc(buflen);
+
+ if (check_pid_argument(argv[i]))
+ xerrx(EXIT_FAILURE, _("invalid process id: %s"),
+ argv[i]);
+ /*
+ * At this point, all arguments are in the form
+ * /proc/NNNN or NNNN, so a simple check based on
+ * the first char is possible
+ */
+ if (argv[i][0] != '/')
+ snprintf(buf, buflen, "/proc/%s/cwd", argv[i]);
+ else
+ snprintf(buf, buflen, "%s/cwd", argv[i]);
+
+ /*
+ * buf contains /proc/NNNN/cwd symlink name
+ * on entry, the target of that symlink on return
+ */
+ while ((len = readlink(buf, pathbuf, alloclen)) == alloclen) {
+ alloclen *= 2;
+ pathbuf = xrealloc(pathbuf, alloclen);
+ }
+ free(buf);
+
+ if (len < 0) {
+ s = strerror(errno == ENOENT ? ESRCH : errno);
+ retval = EXIT_FAILURE;
+ fprintf(stderr, "%s: %s\n", argv[i], s);
+ continue;
+ } else {
+ pathbuf[len] = 0;
+ s = pathbuf;
+ }
+
+ printf("%s: %s\n", argv[i], s);
+ }
+ free(pathbuf);
+ return retval;
+}
diff --git a/src/skill.c b/src/skill.c
new file mode 100644
index 0000000..055f7ee
--- /dev/null
+++ b/src/skill.c
@@ -0,0 +1,600 @@
+/*
+ * skill.c - send a signal to process
+ *
+ * Copyright © 2009-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2011-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2011-2012 Sami Kerola <kerolasa@iki.fi>
+ * Copyright © 1998-2002 Albert Cahalan
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <ctype.h>
+#include <dirent.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <getopt.h>
+#include <limits.h>
+#include <pwd.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/resource.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include "c.h"
+#include "fileutils.h"
+#include "signals.h"
+#include "strutils.h"
+#include "nls.h"
+#include "xalloc.h"
+#include "rpmatch.h"
+
+#include "misc.h"
+#include "pids.h"
+
+#define DEFAULT_NICE 4
+
+struct run_time_conf_t {
+ int fast;
+ int interactive;
+ int verbose;
+ int warnings;
+ int noaction;
+ int debugging;
+};
+static int tty_count, uid_count, cmd_count, pid_count, namespace_count;
+static int *ttys;
+static uid_t *uids;
+static const char **cmds;
+static int *pids;
+static char **namespaces;
+static int ns_pid;
+static struct procps_ns match_namespaces;
+static int ns_flags = 0x3f;
+
+#define ENLIST(thing,addme) do{ \
+if(thing##_count < 0 || (size_t)thing##_count >= INT_MAX / sizeof(*thing##s)) \
+ xerrx(EXIT_FAILURE, _("integer overflow")); \
+thing##s = xrealloc(thing##s, sizeof(*thing##s)*(thing##_count+1)); \
+thing##s[thing##_count++] = addme; \
+}while(0)
+
+struct pids_info *Pids_info;
+
+enum pids_item items[] = {
+ PIDS_ID_PID,
+ PIDS_ID_EUID,
+ PIDS_ID_EUSER,
+ PIDS_TTY,
+ PIDS_TTY_NAME,
+ PIDS_CMD};
+enum rel_items {
+ EU_PID, EU_EUID, EU_EUSER, EU_TTY, EU_TTYNAME, EU_CMD};
+
+static int my_pid;
+
+static int sig_or_pri;
+
+enum {
+ PROG_UNKNOWN,
+ PROG_SKILL,
+ PROG_SNICE
+};
+static int program = PROG_UNKNOWN;
+
+static int parse_namespaces(char *optarg)
+{
+ char *ptr = optarg, *tmp;
+ int len, id;
+
+ ns_flags = 0;
+ while (1) {
+ if (strchr(ptr, ',') == NULL) {
+ len = -1;
+ tmp = strdup(ptr);
+ } else {
+ len = strchr(ptr, ',') - ptr;
+ tmp = strndup(ptr, len);
+ }
+
+ id = procps_ns_get_id(tmp);
+ if (id == -1) {
+ fprintf(stderr, "%s is not a valid namespace\n", tmp);
+ free(tmp);
+ return 1;
+ }
+ ns_flags |= (1 << id);
+ ENLIST(namespace, tmp);
+
+ if (len == -1)
+ break;
+
+ ptr+= len + 1;
+ }
+ return 0;
+}
+
+static int match_intlist(const int value, const int len, int *list)
+{
+ int i;
+
+ for(i=0; i<len; i++)
+ if (list[i] == value)
+ return 1;
+ return 0;
+}
+
+static int match_strlist(const char *value, const int len, const char **list)
+{
+ int i;
+
+ for(i=0; i<len; i++)
+ if (strcmp(list[i], value) == 0)
+ return 1;
+ return 0;
+}
+
+static int match_ns(const int pid)
+{
+ struct procps_ns proc_ns;
+ int found = 1;
+ int i;
+
+ if (procps_ns_read_pid(pid, &proc_ns) < 0)
+ xerrx(EXIT_FAILURE,
+ _("Unable to read process namespace information"));
+ for (i = 0; i < PROCPS_NS_COUNT; i++) {
+ if (ns_flags & (1 << i)) {
+ if (proc_ns.ns[i] != match_namespaces.ns[i])
+ found = 0;
+ }
+ }
+
+ return found;
+}
+
+#define PIDS_GETINT(e) PIDS_VAL(EU_ ## e, s_int, stack, Pids_info)
+#define PIDS_GETSTR(e) PIDS_VAL(EU_ ## e, str, stack, Pids_info)
+
+static int ask_user(struct pids_stack *stack)
+{
+ char *buf=NULL;
+ size_t len=0;
+
+ fprintf(stderr, "%-8s %-8s %5d %-16.16s ? ",
+ PIDS_GETSTR(TTYNAME),
+ PIDS_GETSTR(EUSER),
+ PIDS_GETINT(PID),
+ PIDS_GETSTR(CMD));
+ fflush(stdout);
+ if (getline(&buf, &len, stdin) == -1) {
+ free(buf);
+ return 0;
+ }
+ if (rpmatch(buf) < 1) {
+ free(buf);
+ return 0;
+ }
+ free(buf);
+ return 1;
+}
+
+static void nice_or_kill(struct pids_stack *stack,
+ struct run_time_conf_t *run_time)
+{
+ int failed;
+
+ if (run_time->interactive && !ask_user(stack))
+ return;
+
+ /* do the actual work */
+ errno = 0;
+ if (program == PROG_SKILL)
+ failed = kill(PIDS_GETINT(PID), sig_or_pri);
+ else
+ failed = setpriority(PRIO_PROCESS, PIDS_GETINT(PID), sig_or_pri);
+ if ((run_time->warnings && failed) || run_time->debugging || run_time->verbose) {
+ fprintf(stderr, "%-8s %-8s %5d %-16.16s ",
+ PIDS_GETSTR(TTYNAME),
+ PIDS_GETSTR(EUSER),
+ PIDS_GETINT(PID),
+ PIDS_GETSTR(CMD));
+ perror("");
+ return;
+ }
+ if (run_time->interactive)
+ return;
+ if (run_time->noaction) {
+ printf("%d\n", PIDS_GETINT(PID));
+ return;
+ }
+}
+
+#undef PIDS_GETINT
+#undef PIDS_GETSTR
+
+/* debug function */
+static void show_lists(void)
+{
+ int i;
+
+ fprintf(stderr, "signal: %d\n", sig_or_pri);
+
+ fprintf(stderr, "%d TTY: ", tty_count);
+ if (ttys) {
+ i = tty_count;
+ while (i--) {
+ fprintf(stderr, "%d,%d%c", (ttys[i] >> 8) & 0xff,
+ ttys[i] & 0xff, i ? ' ' : '\n');
+ }
+ } else
+ fprintf(stderr, "\n");
+
+ fprintf(stderr, "%d UID: ", uid_count);
+ if (uids) {
+ i = uid_count;
+ while (i--)
+ fprintf(stderr, "%d%c", uids[i], i ? ' ' : '\n');
+ } else
+ fprintf(stderr, "\n");
+
+ fprintf(stderr, "%d PID: ", pid_count);
+ if (pids) {
+ i = pid_count;
+ while (i--)
+ fprintf(stderr, "%d%c", pids[i], i ? ' ' : '\n');
+ } else
+ fprintf(stderr, "\n");
+
+ fprintf(stderr, "%d CMD: ", cmd_count);
+ if (cmds) {
+ i = cmd_count;
+ while (i--)
+ fprintf(stderr, "%s%c", cmds[i], i ? ' ' : '\n');
+ } else
+ fprintf(stderr, "\n");
+}
+
+static void scan_procs(struct run_time_conf_t *run_time)
+{
+ #define PIDS_GETINT(e) PIDS_VAL(EU_ ## e, s_int, reap->stacks[i], Pids_info)
+ #define PIDS_GETUNT(e) PIDS_VAL(EU_ ## e, u_int, reap->stacks[i], Pids_info)
+ #define PIDS_GETSTR(e) PIDS_VAL(EU_ ## e, str, reap->stacks[i], Pids_info)
+ struct pids_fetch *reap;
+ int i, total_procs;
+
+ if (procps_pids_new(&Pids_info, items, 6) < 0)
+ xerrx(EXIT_FAILURE,
+ _("Unable to create pid Pids_info structure"));
+ if ((reap = procps_pids_reap(Pids_info, PIDS_FETCH_TASKS_ONLY)) == NULL)
+ xerrx(EXIT_FAILURE,
+ _("Unable to load process information"));
+
+ total_procs = reap->counts->total;
+ for (i=0; i < total_procs; i++) {
+ if (PIDS_GETINT(PID) == my_pid || PIDS_GETINT(PID) == 0)
+ continue;
+ if (pids && !match_intlist(PIDS_GETINT(PID), pid_count, pids))
+ continue;
+ if (uids && !match_intlist(PIDS_GETUNT(EUID), uid_count, (int *)uids))
+ continue;
+ if (ttys && !match_intlist(PIDS_GETINT(TTY), tty_count, ttys))
+ continue;
+ if (cmds && !match_strlist(PIDS_GETSTR(CMD), cmd_count, cmds))
+ continue;
+ if (namespaces && !match_ns(PIDS_GETINT(PID)))
+ continue;
+ nice_or_kill(reap->stacks[i], run_time);
+ }
+
+ #undef PIDS_GETINT
+ #undef PIDS_GETUNT
+ #undef PIDS_GETSTR
+}
+
+/* skill and snice help */
+static void __attribute__ ((__noreturn__)) skillsnice_usage(FILE * out)
+{
+ fputs(USAGE_HEADER, out);
+
+ if (program == PROG_SKILL) {
+ fprintf(out,
+ _(" %s [signal] [options] <expression>\n"),
+ program_invocation_short_name);
+ } else {
+ fprintf(out,
+ _(" %s [new priority] [options] <expression>\n"),
+ program_invocation_short_name);
+ }
+ fputs(USAGE_OPTIONS, out);
+ fputs(_(" -f, --fast fast mode (not implemented)\n"), out);
+ fputs(_(" -i, --interactive interactive\n"), out);
+ fputs(_(" -l, --list list all signal names\n"), out);
+ fputs(_(" -L, --table list all signal names in a nice table\n"), out);
+ fputs(_(" -n, --no-action do not actually kill processes; just print what would happen\n"), out);
+ fputs(_(" -v, --verbose explain what is being done\n"), out);
+ fputs(_(" -w, --warnings enable warnings (not implemented)\n"), out);
+ fputs(USAGE_SEPARATOR, out);
+ fputs(_("Expression can be: terminal, user, pid, command.\n"
+ "The options below may be used to ensure correct interpretation.\n"), out);
+ fputs(_(" -c, --command <command> expression is a command name\n"), out);
+ fputs(_(" -p, --pid <pid> expression is a process id number\n"), out);
+ fputs(_(" -t, --tty <tty> expression is a terminal\n"), out);
+ fputs(_(" -u, --user <username> expression is a username\n"), out);
+ fputs(USAGE_SEPARATOR, out);
+ fputs(_("Alternatively, expression can be:\n"), out);
+ fputs(_(" --ns <pid> match the processes that belong to the same\n"
+ " namespace as <pid>\n"), out);
+ fputs(_(" --nslist <ns,...> list which namespaces will be considered for\n"
+ " the --ns option; available namespaces are\n:"
+ " ipc, mnt, net, pid, user, uts\n"), out);
+
+ fputs(USAGE_SEPARATOR, out);
+ fputs(USAGE_SEPARATOR, out);
+ fputs(USAGE_HELP, out);
+ fputs(USAGE_VERSION, out);
+ if (program == PROG_SKILL) {
+ fprintf(out,
+ _("\n"
+ "The default signal is TERM. Use -l or -L to list available signals.\n"
+ "Particularly useful signals include HUP, INT, KILL, STOP, CONT, and 0.\n"
+ "Alternate signals may be specified in three ways: -SIGKILL -KILL -9\n"));
+ fprintf(out, USAGE_MAN_TAIL("skill(1)"));
+ } else {
+ fprintf(out,
+ _("\n"
+ "The default priority is +4. (snice +4 ...)\n"
+ "Priority numbers range from +20 (slowest) to -20 (fastest).\n"
+ "Negative priority numbers are restricted to administrative users.\n"));
+ fprintf(out, USAGE_MAN_TAIL("snice(1)"));
+ }
+ exit(out == stderr ? EXIT_FAILURE : EXIT_SUCCESS);
+}
+
+
+static int snice_prio_option(int *argc, char **argv)
+{
+ int i = 1, nargs = *argc;
+ long prio = DEFAULT_NICE;
+
+ while (i < nargs) {
+ if ((argv[i][0] == '-' || argv[i][0] == '+')
+ && isdigit(argv[i][1])) {
+ prio = strtol_or_err(argv[i],
+ _("failed to parse argument"));
+ if (prio < INT_MIN || INT_MAX < prio)
+ xerrx(EXIT_FAILURE,
+ _("priority %lu out of range"), prio);
+ memmove(argv + i, argv + i + 1,
+ sizeof(char *) * (nargs - i));
+ nargs--;
+ } else
+ i++;
+ }
+ *argc = nargs;
+ return (int)prio;
+}
+
+static void parse_options(int argc,
+ char **argv, struct run_time_conf_t *run_time)
+{
+ int signo = -1;
+ int prino = DEFAULT_NICE;
+ int ch, i;
+
+ enum {
+ NS_OPTION = CHAR_MAX + 1,
+ NSLIST_OPTION,
+ };
+
+ static const struct option longopts[] = {
+ {"command", required_argument, NULL, 'c'},
+ {"debug", no_argument, NULL, 'd'},
+ {"fast", no_argument, NULL, 'f'},
+ {"interactive", no_argument, NULL, 'i'},
+ {"list", no_argument, NULL, 'l'},
+ {"no-action", no_argument, NULL, 'n'},
+ {"pid", required_argument, NULL, 'p'},
+ {"table", no_argument, NULL, 'L'},
+ {"tty", required_argument, NULL, 't'},
+ {"user", required_argument, NULL, 'u'},
+ {"ns", required_argument, NULL, NS_OPTION},
+ {"nslist", required_argument, NULL, NSLIST_OPTION},
+ {"verbose", no_argument, NULL, 'v'},
+ {"warnings", no_argument, NULL, 'w'},
+ {"help", no_argument, NULL, 'h'},
+ {"version", no_argument, NULL, 'V'},
+ {NULL, 0, NULL, 0}
+ };
+
+ if (argc < 2)
+ skillsnice_usage(stderr);
+
+ sig_or_pri = -1;
+
+ if (program == PROG_SNICE)
+ prino = snice_prio_option(&argc, argv);
+ else if (program == PROG_SKILL) {
+ signo = skill_sig_option(&argc, argv);
+ if (-1 < signo)
+ sig_or_pri = signo;
+ }
+
+ while ((ch =
+ getopt_long(argc, argv, "c:dfilnp:Lt:u:vwhV", longopts,
+ NULL)) != -1)
+ switch (ch) {
+ case 'c':
+ ENLIST(cmd, optarg);
+ break;
+ case 'd':
+ run_time->debugging = 1;
+ break;
+ case 'f':
+ run_time->fast = 1;
+ break;
+ case 'i':
+ run_time->interactive = 1;
+ break;
+ case 'l':
+ unix_print_signals();
+ exit(EXIT_SUCCESS);
+ case 'n':
+ run_time->noaction = 1;
+ break;
+ case 'p':
+ ENLIST(pid,
+ strtol_or_err(optarg,
+ _("failed to parse argument")));
+ break;
+ case 'L':
+ pretty_print_signals();
+ exit(EXIT_SUCCESS);
+ case 't':
+ {
+ struct stat sbuf;
+ char path[32];
+ snprintf(path, 32, "/dev/%s", optarg);
+ if (stat(path, &sbuf) >= 0
+ && S_ISCHR(sbuf.st_mode)) {
+ ENLIST(tty, sbuf.st_rdev);
+ }
+ }
+ break;
+ case 'u':
+ {
+ struct passwd *passwd_data;
+ passwd_data = getpwnam(optarg);
+ if (passwd_data) {
+ ENLIST(uid, passwd_data->pw_uid);
+ }
+ }
+ break;
+ case NS_OPTION:
+ ns_pid = atoi(optarg);
+ if (ns_pid == 0) {
+ xwarnx(_("invalid pid number %s"), optarg);
+ skillsnice_usage(stderr);
+ }
+ if (procps_ns_read_pid(ns_pid, &match_namespaces) < 0) {
+ xwarnx(_("error reading reference namespace "
+ "information"));
+ skillsnice_usage(stderr);
+ }
+
+ break;
+ case NSLIST_OPTION:
+ if (parse_namespaces(optarg)) {
+ xwarnx(_("invalid namespace list"));
+ skillsnice_usage(stderr);
+ }
+ break;
+ case 'v':
+ run_time->verbose = 1;
+ break;
+ case 'w':
+ run_time->warnings = 1;
+ break;
+ case 'h':
+ skillsnice_usage(stdout);
+ case 'V':
+ fprintf(stdout, PROCPS_NG_VERSION);
+ exit(EXIT_SUCCESS);
+ default:
+ skillsnice_usage(stderr);
+ }
+
+ argc -= optind;
+ argv += optind;
+
+ for (i = 0; i < argc; i++) {
+ long num;
+ char *end = NULL;
+ errno = 0;
+ num = strtol(argv[0], &end, 10);
+ if (errno == 0 && argv[0] != end && end != NULL && *end == '\0') {
+ ENLIST(pid, num);
+ } else {
+ ENLIST(cmd, argv[0]);
+ }
+ argv++;
+ }
+
+ /* No more arguments to process. Must sanity check. */
+ if (!tty_count && !uid_count && !cmd_count && !pid_count && !ns_pid)
+ xerrx(EXIT_FAILURE, _("no process selection criteria"));
+ if ((run_time->fast | run_time->interactive | run_time->
+ verbose | run_time->warnings | run_time->noaction) & ~1)
+ xerrx(EXIT_FAILURE, _("general flags may not be repeated"));
+ if (run_time->interactive
+ && (run_time->verbose | run_time->fast | run_time->noaction))
+ xerrx(EXIT_FAILURE, _("-i makes no sense with -v, -f, and -n"));
+ if (run_time->verbose && (run_time->interactive | run_time->fast))
+ xerrx(EXIT_FAILURE, _("-v makes no sense with -i and -f"));
+ if (run_time->noaction) {
+ program = PROG_SKILL;
+ /* harmless */
+ sig_or_pri = 0;
+ }
+ if (program == PROG_SNICE)
+ sig_or_pri = prino;
+ else if (sig_or_pri < 0)
+ sig_or_pri = SIGTERM;
+}
+
+/* main body */
+int main(int argc, char ** argv)
+{
+#ifdef HAVE_PROGRAM_INVOCATION_NAME
+ program_invocation_name = program_invocation_short_name;
+#endif
+ struct run_time_conf_t run_time;
+ memset(&run_time, 0, sizeof(struct run_time_conf_t));
+ my_pid = getpid();
+
+ if (strcmp(program_invocation_short_name, "skill") == 0 ||
+ strcmp(program_invocation_short_name, "lt-skill") == 0)
+ program = PROG_SKILL;
+ else if (strcmp(program_invocation_short_name, "snice") == 0 ||
+ strcmp(program_invocation_short_name, "lt-snice") == 0)
+ program = PROG_SNICE;
+#ifdef __CYGWIN__
+ else if (strcmp(program_invocation_short_name, "prockill") == 0 ||
+ strcmp(program_invocation_short_name, "lt-prockill") == 0)
+ program = PROG_KILL;
+#endif
+
+ switch (program) {
+ case PROG_SNICE:
+ case PROG_SKILL:
+ setpriority(PRIO_PROCESS, my_pid, -20);
+ parse_options(argc, argv, &run_time);
+ if (run_time.debugging)
+ show_lists();
+ scan_procs(&run_time);
+ break;
+ default:
+ fprintf(stderr, _("skill: \"%s\" is not supported\n"),
+ program_invocation_short_name);
+ fprintf(stderr, USAGE_MAN_TAIL("skill(1)"));
+ return EXIT_FAILURE;
+ }
+ return EXIT_SUCCESS;
+}
diff --git a/src/slabtop.c b/src/slabtop.c
new file mode 100644
index 0000000..40ce340
--- /dev/null
+++ b/src/slabtop.c
@@ -0,0 +1,388 @@
+/*
+ * slabtop.c - utility to display kernel slab information.
+ *
+ * Copyright © 2009-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2011-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2011-2012 Sami Kerola <kerolasa@iki.fi>
+ * Copyright © 2002-2004 Albert Cahalan
+ * Copyright © 2003 Chris Rivera <cmrivera@ufl.edu>
+ * Copyright © 2003 Robert Love <rml@tech9.net>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <ctype.h>
+#include <errno.h>
+#include <getopt.h>
+#include <locale.h>
+#include <ncurses.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <termios.h>
+
+#include <sys/ioctl.h>
+#include <sys/select.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include <unistd.h>
+
+#include "c.h"
+#include "fileutils.h"
+#include "nls.h"
+#include "strutils.h"
+
+#include "slabinfo.h"
+
+#define DEFAULT_SORT SLAB_NUM_OBJS
+#define CHAINS_ALLOC 150
+#define MAXTBL(t) (int)( sizeof(t) / sizeof(t[0]) )
+#define DEFAULT_DELAY 3
+
+static unsigned short Cols, Rows;
+static struct termios Saved_tty;
+static long Delay = 0;
+static int Run_once = 0;
+
+static struct slabinfo_info *Slab_info;
+
+enum slabinfo_item Sort_item = DEFAULT_SORT;
+enum slabinfo_sort_order Sort_Order = SLABINFO_SORT_DESCEND;
+
+enum slabinfo_item Node_items[] = {
+ SLAB_NUM_OBJS, SLAB_ACTIVE_OBJS, SLAB_PERCENT_USED,
+ SLAB_OBJ_SIZE, SLAB_NUMS_SLABS, SLAB_OBJ_PER_SLAB,
+ SLAB_SIZE_TOTAL, SLAB_NAME,
+ /* next 2 are sortable but are not displayable,
+ thus they need not be represented in the Relative_enums */
+ SLAB_PAGES_PER_SLAB, SLAB_ACTIVE_SLABS };
+
+enum Relative_node {
+ nod_OBJS, nod_AOBJS, nod_USE, nod_OSIZE,
+ nod_SLABS, nod_OPS, nod_SIZE, nod_NAME };
+
+#define MAX_ITEMS (int)(sizeof(Node_items) / sizeof(Node_items[0]))
+
+#define PRINT_line(fmt, ...) if (Run_once) printf(fmt, __VA_ARGS__); else printw(fmt, __VA_ARGS__)
+
+
+/*
+ * term_resize - set the globals 'Cols' and 'Rows' to the current terminal size
+ */
+static void term_resize (int unusused __attribute__ ((__unused__)))
+{
+ struct winsize ws;
+
+ if ((ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws) != -1) && ws.ws_row > 10) {
+ Cols = ws.ws_col;
+ Rows = ws.ws_row;
+ } else {
+ Cols = 80;
+ Rows = 24;
+ }
+}
+
+static void sigint_handler (int unused __attribute__ ((__unused__)))
+{
+ Delay = 0;
+}
+
+static void __attribute__((__noreturn__)) usage (FILE *out)
+{
+ fputs(USAGE_HEADER, out);
+ fprintf(out, _(" %s [options]\n"), program_invocation_short_name);
+ fputs(USAGE_OPTIONS, out);
+ fputs(_(" -d, --delay <secs> delay updates\n"), out);
+ fputs(_(" -o, --once only display once, then exit\n"), out);
+ fputs(_(" -s, --sort <char> specify sort criteria by character (see below)\n"), out);
+ fputs(USAGE_SEPARATOR, out);
+ fputs(USAGE_HELP, out);
+ fputs(USAGE_VERSION, out);
+
+ fputs(_("\nThe following are valid sort criteria:\n"), out);
+ fputs(_(" a: sort by number of active objects\n"), out);
+ fputs(_(" b: sort by objects per slab\n"), out);
+ fputs(_(" c: sort by cache size\n"), out);
+ fputs(_(" l: sort by number of slabs\n"), out);
+ fputs(_(" v: sort by (non display) number of active slabs\n"), out);
+ fputs(_(" n: sort by name\n"), out);
+ fputs(_(" o: sort by number of objects (the default)\n"), out);
+ fputs(_(" p: sort by (non display) pages per slab\n"), out);
+ fputs(_(" s: sort by object size\n"), out);
+ fputs(_(" u: sort by cache utilization\n"), out);
+ fprintf(out, USAGE_MAN_TAIL("slabtop(1)"));
+
+ exit(out == stderr ? EXIT_FAILURE : EXIT_SUCCESS);
+}
+
+static void set_sort_stuff (const char key)
+{
+ Sort_item = DEFAULT_SORT;
+ Sort_Order = SLABINFO_SORT_DESCEND;
+
+ switch (tolower(key)) {
+ case 'n':
+ Sort_item = SLAB_NAME;
+ Sort_Order = SLABINFO_SORT_ASCEND;
+ break;
+ case 'o':
+ Sort_item = SLAB_NUM_OBJS;
+ break;
+ case 'a':
+ Sort_item = SLAB_ACTIVE_OBJS;
+ break;
+ case 's':
+ Sort_item = SLAB_OBJ_SIZE;
+ break;
+ case 'b':
+ Sort_item = SLAB_OBJ_PER_SLAB;
+ break;
+ case 'p':
+ Sort_item = SLAB_PAGES_PER_SLAB;
+ break;
+ case 'l':
+ Sort_item = SLAB_NUMS_SLABS;
+ break;
+ case 'v':
+ Sort_item = SLAB_ACTIVE_SLABS;
+ break;
+ case 'c':
+ Sort_item = SLAB_SIZE_TOTAL;
+ break;
+ case 'u':
+ Sort_item = SLAB_PERCENT_USED;
+ break;
+ default:
+ break;
+ }
+}
+
+static void parse_opts (int argc, char **argv)
+{
+ static const struct option longopts[] = {
+ { "delay", required_argument, NULL, 'd' },
+ { "sort", required_argument, NULL, 's' },
+ { "once", no_argument, NULL, 'o' },
+ { "help", no_argument, NULL, 'h' },
+ { "version", no_argument, NULL, 'V' },
+ { NULL, 0, NULL, 0 }};
+ int o;
+
+ while ((o = getopt_long(argc, argv, "d:s:ohV", longopts, NULL)) != -1) {
+ switch (o) {
+ case 'd':
+ if (Run_once)
+ xerrx(EXIT_FAILURE, _("Cannot combine -d and -o options"));
+ errno = 0;
+ Delay = strtol_or_err(optarg, _("illegal delay"));
+ if (Delay < 1)
+ xerrx(EXIT_FAILURE, _("delay must be positive integer"));
+ break;
+ case 's':
+ set_sort_stuff(optarg[0]);
+ break;
+ case 'o':
+ if (Delay != 0)
+ xerrx(EXIT_FAILURE, _("Cannot combine -d and -o options"));
+ Run_once=1;
+ break;
+ case 'V':
+ printf(PROCPS_NG_VERSION);
+ exit(EXIT_SUCCESS);
+ case 'h':
+ usage(stdout);
+ default:
+ usage(stderr);
+ }
+ }
+ if (optind != argc)
+ usage(stderr);
+ if (!Run_once && Delay == 0)
+ Delay = DEFAULT_DELAY;
+}
+
+static void print_summary (void)
+{
+ #define totalVAL(e,t) SLABINFO_VAL(e, t, p, Slab_info)
+ enum slabinfo_item items[] = {
+ SLABS_ACTIVE_OBJS, SLABS_NUM_OBJS,
+ SLABS_ACTIVE_SLABS, SLABS_NUMS_SLABS,
+ SLABS_CACHES_ACTIVE, SLABS_CACHES_TOTAL,
+ SLABS_SIZE_ACTIVE, SLABS_SIZE_TOTAL,
+ SLABS_OBJ_SIZE_MIN, SLABS_OBJ_SIZE_AVG,
+ SLABS_OBJ_SIZE_MAX
+ };
+ enum rel_items {
+ tot_AOBJS, tot_OBJS, tot_ASLABS, tot_SLABS,
+ tot_ACACHES, tot_CACHES, tot_ACTIVE, tot_TOTAL,
+ tot_MIN, tot_AVG, tot_MAX
+ };
+ struct slabinfo_stack *p;
+
+ if (!(p = procps_slabinfo_select(Slab_info, items, MAXTBL(items))))
+ xerrx(EXIT_FAILURE, _("Error getting slab summary results"));
+
+ PRINT_line(" %-35s: %u / %u (%.1f%%)\n"
+ , /* Translation Hint: Next five strings must not
+ * exceed a length of 35 characters. */
+ /* xgettext:no-c-format */
+ _("Active / Total Objects (% used)")
+ , totalVAL(tot_AOBJS, u_int)
+ , totalVAL(tot_OBJS, u_int)
+ , 100.0 * totalVAL(tot_AOBJS, u_int) / totalVAL(tot_OBJS, u_int));
+ PRINT_line(" %-35s: %u / %u (%.1f%%)\n"
+ , /* xgettext:no-c-format */
+ _("Active / Total Slabs (% used)")
+ , totalVAL(tot_ASLABS, u_int)
+ , totalVAL(tot_SLABS, u_int)
+ , 100.0 * totalVAL(tot_ASLABS, u_int) / totalVAL(tot_SLABS, u_int));
+ PRINT_line(" %-35s: %u / %u (%.1f%%)\n"
+ , /* xgettext:no-c-format */
+ _("Active / Total Caches (% used)")
+ , totalVAL(tot_ACACHES, u_int)
+ , totalVAL(tot_CACHES, u_int)
+ , 100.0 * totalVAL(tot_ACACHES, u_int) / totalVAL(tot_CACHES, u_int));
+ PRINT_line(" %-35s: %.2fK / %.2fK (%.1f%%)\n"
+ , /* xgettext:no-c-format */
+ _("Active / Total Size (% used)")
+ , totalVAL(tot_ACTIVE, ul_int) / 1024.0
+ , totalVAL(tot_TOTAL, ul_int) / 1024.0
+ , 100.0 * totalVAL(tot_ACTIVE, ul_int) / totalVAL(tot_TOTAL, ul_int));
+ PRINT_line(" %-35s: %.2fK / %.2fK / %.2fK\n\n"
+ , _("Minimum / Average / Maximum Object")
+ , totalVAL(tot_MIN, u_int) / 1024.0
+ , totalVAL(tot_AVG, u_int) / 1024.0
+ , totalVAL(tot_MAX, u_int) / 1024.0);
+ #undef totalVAL
+}
+
+static void print_headings (void)
+{
+ /* Translation Hint: Please keep alignment of the
+ * following intact. */
+ PRINT_line("%-78s\n", _(" OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME"));
+}
+
+static void print_details (struct slabinfo_stack *stack)
+{
+ #define nodeVAL(e,t) SLABINFO_VAL(e, t, stack, Slab_info)
+ PRINT_line("%6u %6u %3u%% %7.2fK %6u %8u %9luK %-23s\n"
+ , nodeVAL(nod_OBJS, u_int)
+ , nodeVAL(nod_AOBJS, u_int)
+ , nodeVAL(nod_USE, u_int)
+ , nodeVAL(nod_OSIZE, u_int) / 1024.0
+ , nodeVAL(nod_SLABS, u_int)
+ , nodeVAL(nod_OPS, u_int)
+ , nodeVAL(nod_SIZE, ul_int) / 1024
+ , nodeVAL(nod_NAME, str));
+
+ return;
+ #undef nodeVAL
+}
+
+
+int main(int argc, char *argv[])
+{
+ int is_tty = 0, rc = EXIT_SUCCESS;
+ unsigned short old_rows = 0;
+
+#ifdef HAVE_PROGRAM_INVOCATION_NAME
+ program_invocation_name = program_invocation_short_name;
+#endif
+ setlocale (LC_ALL, "");
+ bindtextdomain(PACKAGE, LOCALEDIR);
+ textdomain(PACKAGE);
+ atexit(close_stdout);
+
+ parse_opts(argc, argv);
+
+ if (procps_slabinfo_new(&Slab_info) < 0)
+ xerr(EXIT_FAILURE, _("Unable to create slabinfo structure"));
+
+ if (!Run_once) {
+ is_tty = isatty(STDIN_FILENO);
+ if (is_tty && tcgetattr(STDIN_FILENO, &Saved_tty) == -1)
+ xwarn(_("terminal setting retrieval"));
+ old_rows = Rows;
+ term_resize(0);
+ initscr();
+ resizeterm(Rows, Cols);
+ signal(SIGWINCH, term_resize);
+ signal(SIGINT, sigint_handler);
+ }
+
+ do {
+ struct slabinfo_reaped *reaped;
+ struct timeval tv;
+ fd_set readfds;
+ int i;
+
+ if (!(reaped = procps_slabinfo_reap(Slab_info, Node_items, MAXTBL(Node_items)))) {
+ xwarn(_("Unable to get slabinfo node data"));
+ rc = EXIT_FAILURE;
+ break;
+ }
+
+ if (!(procps_slabinfo_sort(Slab_info, reaped->stacks, reaped->total, Sort_item, Sort_Order))) {
+ xwarn(_("Unable to sort slab nodes"));
+ rc = EXIT_FAILURE;
+ break;
+ }
+
+ if (Run_once) {
+ print_summary();
+ print_headings();
+ for (i = 0; i < reaped->total; i++)
+ print_details(reaped->stacks[i]);
+ break;
+ }
+
+ if (old_rows != Rows) {
+ resizeterm(Rows, Cols);
+ old_rows = Rows;
+ }
+ move(0, 0);
+ print_summary();
+ attron(A_REVERSE);
+ print_headings();
+ attroff(A_REVERSE);
+
+ for (i = 0; i < Rows - 8 && i < reaped->total; i++)
+ print_details(reaped->stacks[i]);
+
+ refresh();
+ FD_ZERO(&readfds);
+ FD_SET(STDIN_FILENO, &readfds);
+ tv.tv_sec = Delay;
+ tv.tv_usec = 0;
+ if (select(STDOUT_FILENO, &readfds, NULL, NULL, &tv) > 0) {
+ char c;
+ if (read(STDIN_FILENO, &c, 1) != 1
+ || (c == 'Q' || c == 'q'))
+ break;
+ set_sort_stuff(c);
+ }
+ // made zero by sigint_handler()
+ } while (Delay);
+
+ if (!Run_once) {
+ if (is_tty)
+ tcsetattr(STDIN_FILENO, TCSAFLUSH, &Saved_tty);
+ endwin();
+ }
+ procps_slabinfo_unref(&Slab_info);
+ return rc;
+}
diff --git a/src/sysctl.c b/src/sysctl.c
new file mode 100644
index 0000000..1cb548c
--- /dev/null
+++ b/src/sysctl.c
@@ -0,0 +1,1070 @@
+/*
+ * Sysctl - A utility to read and manipulate the sysctl parameters
+ *
+ * Copyright © 2009-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2012-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2017-2018 Werner Fink <werner@suse.de>
+ * Copyright © 2014 Jaromir Capik <jcapik@redhat.com>
+ * Copyright © 2011-2012 Sami Kerola <kerolasa@iki.fi>
+ * Copyright © 2002-2007 Albert Cahalan
+ * Copyright © 1999 George Staikos
+ *
+ * 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 2
+ * 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
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Part of this code comes from systemd, especially sysctl.c
+ * Changelog:
+ * v1.01:
+ * - added -p <preload> to preload values from a file
+ * Horms:
+ * - added -q to be quiet when modifying values
+ *
+ */
+
+#include <dirent.h>
+#include <errno.h>
+#include <getopt.h>
+#include <glob.h>
+#include <libgen.h>
+#include <limits.h>
+#include <regex.h>
+#include <stdbool.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <unistd.h>
+#include <ctype.h>
+
+#include "c.h"
+#include "fileutils.h"
+#include "nls.h"
+#include "xalloc.h"
+#include "procio.h"
+
+/*
+ * Globals...
+ */
+static const char PROC_PATH[] = "/proc/sys/";
+static const char DEFAULT_PRELOAD[] = "/etc/sysctl.conf";
+static const char *DEPRECATED[] = {
+ "base_reachable_time",
+ "retrans_time",
+ ""
+};
+static bool IgnoreDeprecated;
+static bool NameOnly;
+static bool PrintName;
+static bool PrintNewline;
+static bool IgnoreError;
+static bool Quiet;
+static bool DryRun;
+static char *pattern;
+
+#define LINELEN 4096
+static char *iobuf;
+static size_t iolen = LINELEN;
+
+typedef struct SysctlSetting {
+ char *key;
+ char *path;
+ char *value;
+ bool ignore_failure;
+ bool glob_exclude;
+ struct SysctlSetting *next;
+} SysctlSetting;
+
+typedef struct SettingList {
+ struct SysctlSetting *head;
+ struct SysctlSetting *tail;
+} SettingList;
+
+#define GLOB_CHARS "*?["
+static inline bool string_is_glob(const char *p)
+{
+ return !!strpbrk(p, GLOB_CHARS);
+}
+
+
+/* Function prototypes. */
+static int pattern_match(const char *string, const char *pat);
+static int DisplayAll(const char *restrict const path);
+
+static inline bool is_proc_path(
+ const char *path)
+{
+ char *resolved_path;
+
+ if ( (resolved_path = realpath(path, NULL)) == NULL)
+ return false;
+
+ if (strncmp(PROC_PATH, resolved_path, strlen(PROC_PATH)) == 0) {
+ free(resolved_path);
+ return true;
+ }
+
+ xwarnx(_("Path is not under %s: %s"), PROC_PATH, path);
+ free(resolved_path);
+ return false;
+}
+
+static void slashdot(char *restrict p, char old, char new)
+{
+ int warned = 1;
+ p = strpbrk(p, "/.");
+ if (!p)
+ /* nothing -- can't be, but oh well */
+ return;
+ if (*p == new)
+ /* already in desired format */
+ return;
+ while (p) {
+ char c = *p;
+ if ((*(p + 1) == '/' || *(p + 1) == '.') && warned) {
+ xwarnx(_("separators should not be repeated: %s"), p);
+ warned = 0;
+ }
+ if (c == old)
+ *p = new;
+ if (c == new)
+ *p = old;
+ p = strpbrk(p + 1, "/.");
+ }
+}
+
+#if 0 // avoid '-Wunused-function' warning
+static void setting_free(SysctlSetting *s) {
+ if (!s)
+ return;
+
+ free(s->key);
+ free(s->path);
+ free(s->value);
+ free(s);
+}
+#endif
+
+static SysctlSetting *setting_new(
+ const char *key,
+ const char *value,
+ bool ignore_failure,
+ bool glob_exclude) {
+
+ SysctlSetting *s = NULL;
+ char *path = NULL;
+ int proc_len;
+
+ proc_len = strlen(PROC_PATH);
+ /* used to open the file */
+ path = xmalloc(strlen(key) + proc_len + 2);
+ strcpy(path, PROC_PATH);
+ if (key[0] == '-')
+ strcat(path + proc_len, key+1);
+ else
+ strcat(path + proc_len, key);
+ /* change . to / for path */
+ slashdot(path + proc_len, '.', '/');
+
+ s = xmalloc(sizeof(SysctlSetting));
+
+ *s = (SysctlSetting) {
+ .key = strdup(key),
+ .path = path,
+ .value = value? strdup(value): NULL,
+ .ignore_failure = ignore_failure,
+ .glob_exclude = glob_exclude,
+ .next = NULL,
+ };
+
+ return s;
+}
+
+static void settinglist_add(SettingList *l, SysctlSetting *s) {
+ SysctlSetting *old_tail;
+
+ if (!l)
+ return;
+
+ if (l->head == NULL)
+ l->head = s;
+
+ if (l->tail != NULL) {
+ old_tail = l->tail;
+ old_tail->next = s;
+ }
+ l->tail = s;
+}
+
+static SysctlSetting *settinglist_findpath(const SettingList *l, const char *path) {
+ SysctlSetting *node;
+
+ for (node=l->head; node != NULL; node = node->next) {
+ if (strcmp(node->path, path) == 0)
+ return node;
+ }
+ return NULL;
+}
+
+/* Function prototypes. */
+static int pattern_match(const char *string, const char *pat);
+static int DisplayAll(const char *restrict const path);
+
+/*
+ * Display the usage format
+ */
+static void __attribute__ ((__noreturn__))
+ Usage(FILE * out)
+{
+ fputs(USAGE_HEADER, out);
+ fprintf(out,
+ _(" %s [options] [variable[=value] ...]\n"),
+ program_invocation_short_name);
+ fputs(USAGE_OPTIONS, out);
+ fputs(_(" -a, --all display all variables\n"), out);
+ fputs(_(" -A alias of -a\n"), out);
+ fputs(_(" -X alias of -a\n"), out);
+ fputs(_(" --deprecated include deprecated parameters to listing\n"), out);
+ fputs(_(" --dry-run Print the key and values but do not write\n"), out);
+ fputs(_(" -b, --binary print value without new line\n"), out);
+ fputs(_(" -e, --ignore ignore unknown variables errors\n"), out);
+ fputs(_(" -N, --names print variable names without values\n"), out);
+ fputs(_(" -n, --values print only values of the given variable(s)\n"), out);
+ fputs(_(" -p, --load[=<file>] read values from file\n"), out);
+ fputs(_(" -f alias of -p\n"), out);
+ fputs(_(" --system read values from all system directories\n"), out);
+ fputs(_(" -r, --pattern <expression>\n"
+ " select setting that match expression\n"), out);
+ fputs(_(" -q, --quiet do not echo variable set\n"), out);
+ fputs(_(" -w, --write enable writing a value to variable\n"), out);
+ fputs(_(" -o does nothing\n"), out);
+ fputs(_(" -x does nothing\n"), out);
+ fputs(_(" -d alias of -h\n"), out);
+ fputs(USAGE_SEPARATOR, out);
+ fputs(USAGE_HELP, out);
+ fputs(USAGE_VERSION, out);
+ fprintf(out, USAGE_MAN_TAIL("sysctl(8)"));
+
+ exit(out == stderr ? EXIT_FAILURE : EXIT_SUCCESS);
+}
+
+/*
+ * Strip left/leading side of a string
+ */
+static char *lstrip(char *line)
+{
+ char *start;
+
+ if (!line || !*line)
+ return line;
+
+ start = line;
+ while(isspace(*start)) start++;
+
+ return start;
+}
+
+/*
+ * Strip right/trailing side of a string
+ * by placing a \0
+ */
+static void rstrip(char *line)
+{
+ char *end;
+
+ if (!line || !*line)
+ return;
+
+ end = line + strlen(line) - 1;
+ while(end > line && isspace(*end)) end--;
+
+ end[1] = '\0';
+}
+
+#if 0 // avoid '-Wunused-function' warning
+/*
+ * Strip the leading and trailing spaces from a string
+ */
+static char *StripLeadingAndTrailingSpaces(char *oneline)
+{
+ char *t;
+
+ if (!oneline || !*oneline)
+ return oneline;
+
+ t = oneline;
+ t += strlen(oneline) - 1;
+
+ while ((*t == ' ' || *t == '\t' || *t == '\n' || *t == '\r') && t != oneline)
+ *t-- = 0;
+
+ t = oneline;
+
+ while ((*t == ' ' || *t == '\t') && *t != 0)
+ t++;
+
+ return t;
+}
+#endif
+
+/*
+ * Read a sysctl setting
+ */
+static int ReadSetting(const char *restrict const name)
+{
+ int rc = EXIT_SUCCESS;
+ char *restrict tmpname;
+ char *restrict outname;
+ ssize_t rlen;
+ FILE *restrict fp;
+ struct stat ts;
+
+ if (!name || !*name) {
+ xwarnx(_("\"%s\" is an unknown key"), name);
+ return -1;
+ }
+
+ /* used to open the file */
+ tmpname = xmalloc(strlen(name) + strlen(PROC_PATH) + 2);
+ strcpy(tmpname, PROC_PATH);
+ strcat(tmpname, name);
+ /* change . to / */
+ slashdot(tmpname + strlen(PROC_PATH), '.', '/');
+
+ /* used to display the output */
+ outname = xstrdup(name);
+ /* change / to . */
+ slashdot(outname, '/', '.');
+
+ if (stat(tmpname, &ts) < 0) {
+ if (!IgnoreError) {
+ xwarn(_("cannot stat %s"), tmpname);
+ rc = EXIT_FAILURE;
+ }
+ goto out;
+ }
+ if ((ts.st_mode & S_IRUSR) == 0)
+ goto out;
+
+ if (!is_proc_path(tmpname)) {
+ rc = -1;
+ goto out;
+ }
+
+ if (S_ISDIR(ts.st_mode)) {
+ size_t len;
+ len = strlen(tmpname);
+ tmpname[len] = '/';
+ tmpname[len + 1] = '\0';
+ rc = DisplayAll(tmpname);
+ goto out;
+ }
+
+ if (pattern && !pattern_match(outname, pattern)) {
+ rc = EXIT_SUCCESS;
+ goto out;
+ }
+
+ if (NameOnly) {
+ fprintf(stdout, "%s\n", outname);
+ goto out;
+ }
+
+ fp = fprocopen(tmpname, "r");
+
+ if (!fp) {
+ switch (errno) {
+ case ENOENT:
+ if (!IgnoreError) {
+ xwarnx(_("\"%s\" is an unknown key"), outname);
+ rc = EXIT_FAILURE;
+ }
+ break;
+ case EACCES:
+ xwarnx(_("permission denied on key '%s'"), outname);
+ rc = EXIT_FAILURE;
+ break;
+ case EIO: /* Ignore stable_secret below /proc/sys/net/ipv6/conf */
+ rc = EXIT_FAILURE;
+ break;
+ default:
+ xwarn(_("reading key \"%s\""), outname);
+ rc = EXIT_FAILURE;
+ break;
+ }
+ } else {
+ errno = 0;
+ if ((rlen = getline(&iobuf, &iolen, fp)) > 0) {
+ /* this loop is required, see
+ * /sbin/sysctl -a | egrep -6 dev.cdrom.info
+ */
+ do {
+ char *nlptr;
+ if (PrintName) {
+ fprintf(stdout, "%s = ", outname);
+ do {
+ fprintf(stdout, "%s", iobuf);
+ nlptr = &iobuf[strlen(iobuf) - 1];
+ /* already has the \n in it */
+ if (*nlptr == '\n')
+ break;
+ } while ((rlen = getline(&iobuf, &iolen, fp)) > 0);
+ if (*nlptr != '\n')
+ putchar('\n');
+ } else {
+ if (!PrintNewline) {
+ nlptr = strchr(iobuf, '\n');
+ if (nlptr)
+ *nlptr = '\0';
+ }
+ fprintf(stdout, "%s", iobuf);
+ }
+ } while ((rlen = getline(&iobuf, &iolen, fp)) > 0);
+ } else {
+ switch (errno) {
+ case EACCES:
+ xwarnx(_("permission denied on key '%s'"),
+ outname);
+ rc = EXIT_FAILURE;
+ break;
+ case EISDIR: {
+ size_t len;
+ len = strlen(tmpname);
+ tmpname[len] = '/';
+ tmpname[len + 1] = '\0';
+ fclose(fp);
+ rc = DisplayAll(tmpname);
+ goto out;
+ }
+ case EIO: /* Ignore stable_secret below /proc/sys/net/ipv6/conf */
+ rc = EXIT_FAILURE;
+ break;
+ default:
+ xwarnx(_("reading key \"%s\""), outname);
+ rc = EXIT_FAILURE;
+ case 0:
+ break;
+ }
+ }
+ fclose(fp);
+ }
+ out:
+ free(tmpname);
+ free(outname);
+ return rc;
+}
+
+static int is_deprecated(char *filename)
+{
+ int i;
+ for (i = 0; strlen(DEPRECATED[i]); i++) {
+ if (strcmp(DEPRECATED[i], filename) == 0)
+ return 1;
+ }
+ return 0;
+}
+
+/*
+ * Display all the sysctl settings
+ */
+static int DisplayAll(const char *restrict const path)
+{
+ int rc = EXIT_SUCCESS;
+ int rc2;
+ DIR *restrict dp;
+ struct dirent *restrict de;
+ struct stat ts;
+
+ dp = opendir(path);
+
+ if (!dp) {
+ xwarnx(_("unable to open directory \"%s\""), path);
+ rc = EXIT_FAILURE;
+ } else {
+ readdir(dp); /* skip . */
+ readdir(dp); /* skip .. */
+ while ((de = readdir(dp))) {
+ char *restrict tmpdir;
+ if (IgnoreDeprecated && is_deprecated(de->d_name))
+ continue;
+ tmpdir =
+ (char *restrict) xmalloc(strlen(path) +
+ strlen(de->d_name) +
+ 2);
+ sprintf(tmpdir, "%s%s", path, de->d_name);
+ rc2 = stat(tmpdir, &ts);
+ if (rc2 != 0) {
+ xwarn(_("cannot stat %s"), tmpdir);
+ } else {
+ if (S_ISDIR(ts.st_mode)) {
+ strcat(tmpdir, "/");
+ DisplayAll(tmpdir);
+ } else {
+ rc |=
+ ReadSetting(tmpdir +
+ strlen(PROC_PATH));
+ }
+ }
+ free(tmpdir);
+ }
+ closedir(dp);
+ }
+ return rc;
+}
+
+/*
+ * Write a sysctl setting
+ */
+static int WriteSetting(
+ const char *key,
+ const char *path,
+ const char *value,
+ const bool ignore_failure)
+{
+ int rc = EXIT_SUCCESS;
+ FILE *fp;
+ struct stat ts;
+ char *dotted_key;
+
+ if (!key || !path)
+ return rc;
+
+ if (stat(path, &ts) < 0) {
+ if (!IgnoreError) {
+ xwarn(_("cannot stat %s"), path);
+ rc = EXIT_FAILURE;
+ }
+ return rc;
+ }
+
+ if (!is_proc_path(path)) {
+ return EXIT_FAILURE;
+ }
+
+ /* Convert the globbed path into a dotted key */
+ if ( (dotted_key = strdup(path + strlen(PROC_PATH))) == NULL) {
+ xerrx(EXIT_FAILURE, _("strdup key"));
+ return EXIT_FAILURE;
+ }
+ slashdot(dotted_key, '/', '.');
+
+ if ((ts.st_mode & S_IWUSR) == 0) {
+ errno = EPERM;
+ xwarn(_("setting key \"%s\""), dotted_key);
+ free(dotted_key);
+ return rc;
+ }
+
+ if (S_ISDIR(ts.st_mode)) {
+ errno = EISDIR;
+ xwarn(_("setting key \"%s\""), dotted_key);
+ free(dotted_key);
+ return rc;
+ }
+
+ if (!DryRun) {
+ if ((fp = fprocopen(path, "w")) == NULL) {
+ switch (errno) {
+ case ENOENT:
+ if (!IgnoreError) {
+ xwarnx(_("\"%s\" is an unknown key%s"),
+ dotted_key, (ignore_failure?_(", ignoring"):""));
+ if (!ignore_failure)
+ rc = EXIT_FAILURE;
+ }
+ break;
+ case EPERM:
+ case EROFS:
+ case EACCES:
+ xwarnx(_("permission denied on key \"%s\"%s"),
+ dotted_key, (ignore_failure?_(", ignoring"):""));
+ break;
+ default:
+ xwarn(_("setting key \"%s\"%s"),
+ dotted_key, (ignore_failure?_(", ignoring"):""));
+ break;
+ }
+ if (!ignore_failure && errno != ENOENT)
+ rc = EXIT_FAILURE;
+ } else {
+ if (0 < fprintf(fp, "%s\n", value))
+ rc = EXIT_SUCCESS;
+ if (close_stream(fp) != 0) {
+ xwarn(_("setting key \"%s\""), dotted_key);
+ free(dotted_key);
+ return EXIT_FAILURE;
+ }
+ }
+ }
+ if ((rc == EXIT_SUCCESS && !Quiet) || DryRun) {
+ if (NameOnly) {
+ printf("%s\n", dotted_key);
+ } else {
+ if (PrintName) {
+ printf("%s = %s\n", dotted_key, value);
+ } else {
+ if (PrintNewline)
+ printf("%s\n", value);
+ else
+ printf("%s", value);
+ }
+ }
+ }
+ free(dotted_key);
+ return rc;
+}
+
+/*
+ * parse each configuration line, there are multiple ways of specifying
+ * a key/value here:
+ *
+ * key = value simple setting
+ * -key = value ignore errors
+ * key.pattern.*.with.glob = value set keys that match glob
+ * -key.pattern.exclude.with.glob dont set this value
+ * key.pattern.override.with.glob = value set this glob match to value
+ *
+ */
+
+static SysctlSetting *parse_setting_line(
+ const char *path,
+ const int linenum,
+ char *line)
+{
+ char *key;
+ char *value;
+ bool glob_exclude = FALSE;
+ bool ignore_failure = FALSE;
+
+ key = lstrip(line);
+ if (strlen(key) < 2)
+ return NULL;
+
+ /* skip over comments */
+ if (key[0] == '#' || key[0] == ';')
+ return NULL;
+
+ if (pattern && !pattern_match(key, pattern))
+ return NULL;
+
+ value = strchr(key, '=');
+ if (value == NULL) {
+ if (key[0] == '-') {
+ glob_exclude = TRUE;
+ key++;
+ value = NULL;
+ rstrip(key);
+ } else {
+ xwarnx(_("%s(%d): invalid syntax, continuing..."),
+ path, linenum);
+ return NULL;
+ }
+ } else {
+ value[0]='\0';
+ if (key[0] == '-') {
+ ignore_failure = TRUE;
+ key++;
+ }
+ value++; // skip over =
+ value=lstrip(value);
+ rstrip(value);
+ rstrip(key);
+ }
+ return setting_new(key, value, ignore_failure, glob_exclude);
+}
+
+/* Go through the setting list, expand and sort out
+ * setting globs and actually write the settings out
+ */
+static int write_setting_list(const SettingList *sl)
+{
+ SysctlSetting *node;
+ int rc = EXIT_SUCCESS;
+
+ for (node=sl->head; node != NULL; node=node->next) {
+ if (node->glob_exclude)
+ continue;
+
+ if (string_is_glob(node->path)) {
+ glob_t globbuf;
+ int i;
+
+ if (glob(node->path, 0, NULL, &globbuf) != 0)
+ continue;
+
+ for(i=0; i < globbuf.gl_pathc; i++) {
+ if (settinglist_findpath(sl, globbuf.gl_pathv[i]))
+ continue; // override or exclude
+
+ rc |= WriteSetting(node->key, globbuf.gl_pathv[i], node->value,
+ node->ignore_failure);
+ }
+ } else {
+ rc |= WriteSetting(node->key, node->path, node->value,
+ node->ignore_failure);
+ }
+
+
+ }
+
+ return rc;
+}
+
+static int pattern_match(const char *string, const char *pat)
+{
+ int status;
+ regex_t re;
+
+ if (regcomp(&re, pat, REG_EXTENDED | REG_NOSUB) != 0)
+ return (0);
+ status = regexec(&re, string, (size_t) 0, NULL, 0);
+ regfree(&re);
+ if (status != 0)
+ return (0);
+ return (1);
+}
+
+/*
+ * Preload the sysctl's from the conf file. We parse the file and then
+ * reform it (strip out whitespace).
+ */
+static int Preload(SettingList *setlist, const char *restrict const filename)
+{
+ FILE *fp;
+ int n = 0;
+ int rc = EXIT_SUCCESS;
+ ssize_t rlen;
+ glob_t globbuf;
+ int globerr;
+ int globflg;
+ int j;
+
+ globflg = GLOB_NOCHECK;
+#ifdef GLOB_BRACE
+ globflg |= GLOB_BRACE;
+#endif
+#ifdef GLOB_TILDE
+ globflg |= GLOB_TILDE;
+#else
+ if (filename[0] == '~')
+ xwarnx(_("GLOB_TILDE is not supported on your platform, "
+ "the tilde in \"%s\" won't be expanded."), filename);
+#endif
+ globerr = glob(filename, globflg, NULL, &globbuf);
+
+ if (globerr != 0 && globerr != GLOB_NOMATCH)
+ xerr(EXIT_FAILURE, _("glob failed"));
+
+ for (j = 0; j < globbuf.gl_pathc; j++) {
+ fp = (globbuf.gl_pathv[j][0] == '-' && !globbuf.gl_pathv[j][1])
+ ? stdin : fopen(globbuf.gl_pathv[j], "r");
+ if (!fp) {
+ xwarn(_("cannot open \"%s\""), globbuf.gl_pathv[j]);
+ return EXIT_FAILURE;
+ }
+
+ while ((rlen = getline(&iobuf, &iolen, fp)) > 0) {
+ SysctlSetting *setting;
+
+ n++;
+
+ if (rlen < 2)
+ continue;
+
+ if ( (setting = parse_setting_line(globbuf.gl_pathv[j], n, iobuf))
+ == NULL)
+ continue;
+ settinglist_add(setlist, setting);
+ }
+
+ fclose(fp);
+ }
+ return rc;
+}
+
+struct pair {
+ char *name;
+ char *value;
+};
+
+static int sortpairs(const void *A, const void *B)
+{
+ const struct pair *a = *(struct pair * const *) A;
+ const struct pair *b = *(struct pair * const *) B;
+ return strcmp(a->name, b->name);
+}
+
+static int PreloadSystem(SettingList *setlist)
+{
+ unsigned di, i;
+ const char *dirs[] = {
+ "/etc/sysctl.d",
+ "/run/sysctl.d",
+ "/usr/local/lib/sysctl.d",
+ "/usr/lib/sysctl.d",
+ "/lib/sysctl.d",
+ };
+ struct pair **cfgs = NULL;
+ unsigned ncfgs = 0;
+ int rc = EXIT_SUCCESS;
+ struct stat ts;
+ enum { nprealloc = 16 };
+
+ for (di = 0; di < sizeof(dirs) / sizeof(dirs[0]); ++di) {
+ struct dirent *de;
+ DIR *dp = opendir(dirs[di]);
+ if (!dp)
+ continue;
+
+ while ((de = readdir(dp))) {
+ if (!strcmp(de->d_name, ".")
+ || !strcmp(de->d_name, ".."))
+ continue;
+ if (strlen(de->d_name) < 5
+ || strcmp(de->d_name + strlen(de->d_name) - 5, ".conf"))
+ continue;
+ /* check if config already known */
+ for (i = 0; i < ncfgs; ++i) {
+ if (cfgs && !strcmp(cfgs[i]->name, de->d_name))
+ break;
+ }
+ if (i < ncfgs)
+ /* already in */
+ continue;
+
+ if (ncfgs % nprealloc == 0)
+ cfgs =
+ xrealloc(cfgs,
+ sizeof(struct pair *) * (ncfgs +
+ nprealloc));
+
+ if (cfgs) {
+ cfgs[ncfgs] =
+ xmalloc(sizeof(struct pair) +
+ strlen(de->d_name) * 2 + 2 +
+ strlen(dirs[di]) + 1);
+ cfgs[ncfgs]->name =
+ (char *)cfgs[ncfgs] + sizeof(struct pair);
+ strcpy(cfgs[ncfgs]->name, de->d_name);
+ cfgs[ncfgs]->value =
+ (char *)cfgs[ncfgs] + sizeof(struct pair) +
+ strlen(cfgs[ncfgs]->name) + 1;
+ sprintf(cfgs[ncfgs]->value, "%s/%s", dirs[di],
+ de->d_name);
+ ncfgs++;
+ } else {
+ xerrx(EXIT_FAILURE, _("internal error"));
+ }
+
+ }
+ closedir(dp);
+ }
+ qsort(cfgs, ncfgs, sizeof(struct cfg *), sortpairs);
+
+ for (i = 0; i < ncfgs; ++i) {
+ if (!Quiet)
+ printf(_("* Applying %s ...\n"), cfgs[i]->value);
+ rc |= Preload(setlist, cfgs[i]->value);
+ }
+
+
+ if (stat(DEFAULT_PRELOAD, &ts) == 0 && S_ISREG(ts.st_mode)) {
+ if (!Quiet)
+ printf(_("* Applying %s ...\n"), DEFAULT_PRELOAD);
+ rc |= Preload(setlist, DEFAULT_PRELOAD);
+ }
+
+ /* cleaning */
+ for (i = 0; i < ncfgs; ++i) {
+ free(cfgs[i]);
+ }
+ if (cfgs) free(cfgs);
+
+ return rc;
+}
+
+/*
+ * Main...
+ */
+int main(int argc, char *argv[])
+{
+ bool WriteMode = false;
+ bool DisplayAllOpt = false;
+ bool preloadfileOpt = false;
+ int ReturnCode = 0;
+ int c;
+ int rc = 0;
+ const char *preloadfile = NULL;
+ SettingList *setlist;
+
+ enum {
+ DEPRECATED_OPTION = CHAR_MAX + 1,
+ SYSTEM_OPTION,
+ DRYRUN_OPTION
+ };
+ static const struct option longopts[] = {
+ {"all", no_argument, NULL, 'a'},
+ {"deprecated", no_argument, NULL, DEPRECATED_OPTION},
+ {"dry-run", no_argument, NULL, DRYRUN_OPTION},
+ {"binary", no_argument, NULL, 'b'},
+ {"ignore", no_argument, NULL, 'e'},
+ {"names", no_argument, NULL, 'N'},
+ {"values", no_argument, NULL, 'n'},
+ {"load", optional_argument, NULL, 'p'},
+ {"quiet", no_argument, NULL, 'q'},
+ {"write", no_argument, NULL, 'w'},
+ {"system", no_argument, NULL, SYSTEM_OPTION},
+ {"pattern", required_argument, NULL, 'r'},
+ {"help", no_argument, NULL, 'h'},
+ {"version", no_argument, NULL, 'V'},
+ {NULL, 0, NULL, 0}
+ };
+
+#ifdef HAVE_PROGRAM_INVOCATION_NAME
+ program_invocation_name = program_invocation_short_name;
+#endif
+ setlocale(LC_ALL, "");
+ bindtextdomain(PACKAGE, LOCALEDIR);
+ textdomain(PACKAGE);
+ atexit(close_stdout);
+
+ PrintName = true;
+ PrintNewline = true;
+ IgnoreError = false;
+ Quiet = false;
+ IgnoreDeprecated = true;
+ DryRun = false;
+ setlist = xmalloc(sizeof(SettingList));
+ setlist->head = NULL;
+ setlist->tail = NULL;
+
+ if (argc < 2)
+ Usage(stderr);
+
+ while ((c =
+ getopt_long(argc, argv, "bneNwfp::qoxaAXr:Vdh", longopts,
+ NULL)) != -1) {
+ switch (c) {
+ case 'b':
+ /* This is "binary" format, which means more for BSD. */
+ PrintNewline = false;
+ /* FALL THROUGH */
+ case 'n':
+ PrintName = false;
+ break;
+ case 'e':
+ /*
+ * For FreeBSD, -e means a "%s=%s\n" format.
+ * ("%s: %s\n" default). We (and NetBSD) use
+ * "%s = %s\n" always, and -e to ignore errors.
+ */
+ IgnoreError = true;
+ break;
+ case 'N':
+ NameOnly = true;
+ break;
+ case 'w':
+ WriteMode = true;
+ break;
+ case 'f': /* the NetBSD way */
+ case 'p':
+ preloadfileOpt = true;
+ if (optarg)
+ preloadfile = optarg;
+ break;
+ case 'q':
+ Quiet = true;
+ break;
+ case 'o': /* BSD: binary values too, 1st 16 bytes in hex */
+ case 'x': /* BSD: binary values too, whole thing in hex */
+ /* does nothing */ ;
+ break;
+ case 'a': /* string and integer values (for Linux, all of them) */
+ case 'A': /* same as -a -o */
+ case 'X': /* same as -a -x */
+ DisplayAllOpt = true;
+ break;
+ case DEPRECATED_OPTION:
+ IgnoreDeprecated = false;
+ break;
+ case SYSTEM_OPTION:
+ IgnoreError = true;
+ rc |= PreloadSystem(setlist);
+ rc |= write_setting_list(setlist);
+ return rc;
+ case DRYRUN_OPTION:
+ DryRun = true;
+ break;
+ case 'r':
+ pattern = xstrdup(optarg);
+ break;
+ case 'V':
+ printf(PROCPS_NG_VERSION);
+ return EXIT_SUCCESS;
+ case 'd': /* BSD: print description ("vm.kvm_size: Size of KVM") */
+ case 'h': /* BSD: human-readable (did FreeBSD 5 make -e default?) */
+ case '?':
+ Usage(stdout);
+ default:
+ Usage(stderr);
+ }
+ }
+
+ argc -= optind;
+ argv += optind;
+
+ iobuf = xmalloc(iolen);
+
+ if (DisplayAllOpt)
+ return DisplayAll(PROC_PATH);
+
+ if (preloadfileOpt) {
+ int ret = EXIT_SUCCESS, i;
+ if (!preloadfile) {
+ if (!argc) {
+ ret |= Preload(setlist, DEFAULT_PRELOAD);
+ }
+ } else {
+ /* This happens when -pfile option is
+ * used without space. */
+ ret |= Preload(setlist, preloadfile);
+ }
+ for (i = 0; i < argc; i++)
+ ret |= Preload(setlist, argv[i]);
+ ret |= write_setting_list(setlist);
+ return ret;
+ }
+
+ if (argc < 1)
+ xerrx(EXIT_FAILURE, _("no variables specified\n"
+ "Try `%s --help' for more information."),
+ program_invocation_short_name);
+ if (NameOnly && Quiet)
+ xerrx(EXIT_FAILURE, _("options -N and -q cannot coexist\n"
+ "Try `%s --help' for more information."),
+ program_invocation_short_name);
+
+ for ( ; *argv; argv++) {
+ if (WriteMode || strchr(*argv, '=')) {
+ SysctlSetting *s;
+ if ( (s = parse_setting_line("command line", 0, *argv)) != NULL)
+ ReturnCode |= WriteSetting(s->key, s->path, s->value,
+ s->ignore_failure);
+ else
+ ReturnCode |= EXIT_FAILURE;
+ } else
+ ReturnCode += ReadSetting(*argv);
+ }
+ return ReturnCode;
+}
diff --git a/src/tests/test_fileutils.c b/src/tests/test_fileutils.c
new file mode 100644
index 0000000..ebfc5e2
--- /dev/null
+++ b/src/tests/test_fileutils.c
@@ -0,0 +1,10 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include "fileutils.h"
+
+int main(int argc, char *argv[])
+{
+ atexit(close_stdout);
+ printf("Hello, World!\n");
+ return EXIT_SUCCESS;
+}
diff --git a/src/tests/test_process.c b/src/tests/test_process.c
new file mode 100644
index 0000000..ef2582e
--- /dev/null
+++ b/src/tests/test_process.c
@@ -0,0 +1,115 @@
+/*
+ * test_procps -- program to create a process to test procps
+ *
+ * Copyright 2015 Craig Small <csmall@dropbear.xyz>
+ *
+ * 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 2
+ * 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
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <signal.h>
+#ifdef __linux__
+#include <sys/prctl.h>
+#endif
+#include "c.h"
+
+#define DEFAULT_SLEEPTIME 300
+#define MY_NAME "spcorp"
+
+static void usage(void)
+{
+ fprintf(stderr, " %s [options]\n", program_invocation_short_name);
+ fprintf(stderr, " -s <seconds>\n");
+ exit(EXIT_FAILURE);
+}
+
+
+void
+signal_handler(int signum, siginfo_t *siginfo, void *ucontext)
+{
+ char *signame = NULL;
+
+ switch(signum) {
+ case SIGUSR1:
+ signame = strdup("SIGUSR1");
+ break;
+ case SIGUSR2:
+ signame = strdup("SIGUSR2");
+ break;
+ default:
+ printf("SIG unknown\n");
+ exit(EXIT_FAILURE);
+ }
+ if (signame == NULL) {
+ printf("SIG malloc error\n");
+ exit(EXIT_FAILURE);
+ }
+ switch (siginfo->si_code) {
+ case SI_USER:
+ printf("SIG %s\n", signame);
+ break;
+ case SI_QUEUE:
+#ifdef HAVE_SIGINFO_T_SI_INT
+ printf("SIG %s value=%d\n", signame, siginfo->si_int);
+#else
+ printf("case SI_QUEUE: SIG %s siginfo->si_int undefined\n", signame);
+#endif
+ break;
+ default:
+ printf("Unknown si_code %d\n", siginfo->si_code);
+ exit(EXIT_FAILURE);
+ }
+
+ free(signame);
+}
+
+int main(int argc, char *argv[])
+{
+ int sleep_time, opt;
+ struct sigaction signal_action;
+
+ sleep_time = DEFAULT_SLEEPTIME;
+ while ((opt = getopt(argc, argv, "s:")) != -1) {
+ switch(opt) {
+ case 's':
+ sleep_time = atoi(optarg);
+ if (sleep_time < 1) {
+ fprintf(stderr, "sleep time must be 1 second or more\n");
+ usage();
+ }
+ break;
+ default:
+ usage();
+ }
+ }
+
+ /* Setup signal handling */
+ signal_action.sa_sigaction = signal_handler;
+ sigemptyset (&signal_action.sa_mask);
+ signal_action.sa_flags = SA_SIGINFO;
+ sigaction(SIGUSR1, &signal_action, NULL);
+ sigaction(SIGUSR2, &signal_action, NULL);
+
+#ifdef __linux__
+ /* set process name */
+ prctl(PR_SET_NAME, MY_NAME, NULL, NULL, NULL);
+#endif
+
+ while (sleep_time > 0) {
+ sleep_time = sleep(sleep_time);
+ }
+ return EXIT_SUCCESS;
+}
diff --git a/src/tests/test_shm.c b/src/tests/test_shm.c
new file mode 100644
index 0000000..3917379
--- /dev/null
+++ b/src/tests/test_shm.c
@@ -0,0 +1,69 @@
+/*
+ * test_shm -- program to create a shared memory segment for testing
+ *
+ * Copyright 2022 Craig Small <csmall@dropbear.xyz>
+ *
+ * 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 2
+ * 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
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <sys/shm.h>
+#include "c.h"
+
+#define DEFAULT_SLEEPTIME 300
+#define SHM_SIZE 50
+
+static void usage(void)
+{
+ fprintf(stderr, " %s [options]\n", program_invocation_short_name);
+ fprintf(stderr, " -s <seconds>\n");
+ exit(EXIT_FAILURE);
+}
+
+int main(int argc, char *argv[])
+{
+ int sleep_time, opt;
+ int shm_id;
+ void *shm_addr;
+
+ sleep_time = DEFAULT_SLEEPTIME;
+ while ((opt = getopt(argc, argv, "s:")) != -1)
+ {
+ switch(opt)
+ {
+ case 's':
+ sleep_time = atoi(optarg);
+ if (sleep_time < 1)
+ {
+ fprintf(stderr, "sleep time must be 1 second or more\n");
+ usage();
+ }
+ break;
+ default:
+ usage();
+ }
+ }
+
+ /* get some shared memory */
+ if ( (shm_id = shmget(IPC_PRIVATE, SHM_SIZE, IPC_CREAT | 0666)) < 0)
+ xerr(EXIT_FAILURE, "Unable to shmget()");
+ if ( (shm_addr = shmat(shm_id, NULL, SHM_RDONLY)) < 0)
+ xerr(EXIT_FAILURE, "Unable to shmat()");
+ printf("SHMID: %x\n", shm_id);
+ sleep(sleep_time);
+ return EXIT_SUCCESS;
+}
+
diff --git a/src/tests/test_strtod_nol.c b/src/tests/test_strtod_nol.c
new file mode 100644
index 0000000..408cf46
--- /dev/null
+++ b/src/tests/test_strtod_nol.c
@@ -0,0 +1,51 @@
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <math.h>
+#include "strutils.h"
+
+struct strtod_tests {
+ char *string;
+ double result;
+};
+
+struct strtod_tests tests[] = {
+ {"123", 123.0},
+ {"-123", -123.0},
+ {"12.34", 12.34},
+ {"-12.34", -12.34},
+ {".34", 0.34},
+ {"-.34", -0.34},
+ {"12,34", 12.34},
+ {"-12,34", -12.34},
+ {",34", 0.34},
+ {"-,34", -0.34},
+ {"0", 0.0},
+ {".0", 0.0},
+ {"0.0", 0.0},
+ {NULL, 0.0}
+};
+
+#define EPSILON 1.0 // Really not trying for precision here
+int dequal(const double d1, const double d2)
+{
+ return fabs(d1-d2) < EPSILON;
+}
+
+
+int main(int argc, char *argv[])
+{
+ int i;
+ double val;
+
+ for(i=0; tests[i].string != NULL; i++) {
+ if(!dequal (strtod_nol_or_err(tests[i].string, "Cannot parse number"),
+ tests[i].result)) {
+ fprintf(stderr, "FAIL: strtod_nol_or_err(\"%s\") != %f\n",
+ tests[i].string, tests[i].result);
+ return EXIT_FAILURE;
+ }
+ //fprintf(stderr, "PASS: strtod_nol for %s\n", tests[i].string);
+ }
+ return EXIT_SUCCESS;
+}
diff --git a/src/tests/test_strutils.c b/src/tests/test_strutils.c
new file mode 100644
index 0000000..4a7c7aa
--- /dev/null
+++ b/src/tests/test_strutils.c
@@ -0,0 +1,38 @@
+/*
+ * test_strutils.c - tests for strutils.c routines
+ * This file was copied from util-linux at fall 2011.
+ *
+ * Copyright (C) 2010 Karel Zak <kzak@redhat.com>
+ * Copyright (C) 2010 Davidlohr Bueso <dave@gnu.org>
+ *
+ * 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 2
+ * 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
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include <stdlib.h>
+
+#include "c.h"
+#include "strutils.h"
+
+int main(int argc, char *argv[])
+{
+ if (argc < 2) {
+ error(EXIT_FAILURE, 0, "no arguments");
+ } else if (argc < 3) {
+ printf("%ld\n", strtol_or_err(argv[1], "strtol_or_err"));
+ } else {
+ printf("%lf\n", strtod_or_err(argv[2], "strtod_or_err"));
+ }
+ return EXIT_SUCCESS;
+}
diff --git a/src/tload.c b/src/tload.c
new file mode 100644
index 0000000..9c19d9c
--- /dev/null
+++ b/src/tload.c
@@ -0,0 +1,232 @@
+/*
+ * tload.c - terminal version of xload
+ *
+ * Copyright © 2009-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2011-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2011-2012 Sami Kerola <kerolasa@iki.fi>
+ * Copyright © 1992 Branko Lankester
+ *
+ * /proc changes by David Engel (david@ods.com)
+ * Made a little more efficient by Michael K. Johnson (johnsonm@sunsite.unc.edu)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <errno.h>
+#include <fcntl.h>
+#include <getopt.h>
+#include <setjmp.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/ioctl.h>
+#include <termios.h>
+#include <unistd.h>
+#include <limits.h>
+
+#include "c.h"
+#include "fileutils.h"
+#include "nls.h"
+#include "strutils.h"
+#include "xalloc.h"
+
+#include "misc.h"
+
+static char *screen;
+
+static int nrows = 25;
+static int ncols = 80;
+static int scr_size;
+static int fd = STDOUT_FILENO;
+static unsigned int dly = 5;
+static jmp_buf jb;
+
+static void alrm(int signo __attribute__ ((__unused__)))
+{
+ signal(SIGALRM, alrm);
+ alarm(dly);
+}
+
+static void setsize(int i)
+{
+ struct winsize win;
+
+ signal(SIGWINCH, setsize);
+ if (ioctl(fd, TIOCGWINSZ, &win) != -1) {
+ if (win.ws_col > 0)
+ ncols = win.ws_col;
+ if (win.ws_row > 0)
+ nrows = win.ws_row;
+ }
+ if (ncols < 2 || ncols >= INT_MAX)
+ xerrx(EXIT_FAILURE, _("screen too small or too large"));
+ if (nrows < 2 || nrows >= INT_MAX / ncols)
+ xerrx(EXIT_FAILURE, _("screen too small or too large"));
+ scr_size = nrows * ncols;
+ if (scr_size < 2)
+ xerrx(EXIT_FAILURE, _("screen too small"));
+ if (screen == NULL)
+ screen = (char *)xmalloc(scr_size);
+ else
+ screen = (char *)xrealloc(screen, scr_size);
+
+ memset(screen, ' ', scr_size - 1);
+ *(screen + scr_size - 2) = '\0';
+ if (i)
+ longjmp(jb, 1);
+}
+
+static void __attribute__ ((__noreturn__)) usage(FILE * out)
+{
+ fputs(USAGE_HEADER, out);
+ fprintf(out,
+ _(" %s [options] [tty]\n"), program_invocation_short_name);
+ fputs(USAGE_OPTIONS, out);
+ fputs(_(" -d, --delay <secs> update delay in seconds\n"), out);
+ fputs(_(" -s, --scale <num> vertical scale\n"), out);
+ fputs(USAGE_SEPARATOR, out);
+ fputs(USAGE_HELP, out);
+ fputs(USAGE_VERSION, out);
+ fprintf(out, USAGE_MAN_TAIL("tload(1)"));
+
+ exit(out == stderr ? EXIT_FAILURE : EXIT_SUCCESS);
+}
+
+int main(int argc, char **argv)
+{
+ int lines, row, col = 0;
+ int i, opt;
+ double av[3];
+ static double max_scale = 0, scale_fact;
+ long tmpdly;
+
+ static const struct option longopts[] = {
+ {"scale", required_argument, NULL, 's'},
+ {"delay", required_argument, NULL, 'd'},
+ {"help", no_argument, NULL, 'h'},
+ {"version", no_argument, NULL, 'V'},
+ {NULL, 0, NULL, 0}
+ };
+#ifdef HAVE_PROGRAM_INVOCATION_NAME
+ program_invocation_name = program_invocation_short_name;
+#endif
+ setlocale (LC_ALL, "");
+ bindtextdomain(PACKAGE, LOCALEDIR);
+ textdomain(PACKAGE);
+ atexit(close_stdout);
+
+ while ((opt =
+ getopt_long(argc, argv, "s:d:Vh", longopts, NULL)) != -1)
+ switch (opt) {
+ case 's':
+ max_scale = strtod_or_err(optarg, _("failed to parse argument"));
+ if (max_scale < 0)
+ xerrx(EXIT_FAILURE, _("scale cannot be negative"));
+ break;
+ case 'd':
+ tmpdly = strtol_or_err(optarg, _("failed to parse argument"));
+ if (tmpdly < 1)
+ xerrx(EXIT_FAILURE, _("delay must be positive integer"));
+ else if (UINT_MAX < tmpdly)
+ xerrx(EXIT_FAILURE, _("too large delay value"));
+ dly = tmpdly;
+ break;
+ case 'V':
+ printf(PROCPS_NG_VERSION);
+ return EXIT_SUCCESS;
+ break;
+ case 'h':
+ usage(stdout);
+ default:
+ usage(stderr);
+ }
+
+ if (argc > optind)
+ if ((fd = open(argv[optind], O_WRONLY)) == -1)
+ xerr(EXIT_FAILURE, _("can not open tty"));
+
+ setsize(0);
+
+ if (max_scale == 0)
+ max_scale = nrows;
+
+ scale_fact = max_scale;
+
+ setjmp(jb);
+ col = 0;
+ alrm(0);
+
+ while (1) {
+ int rc;
+
+ if (scale_fact < max_scale)
+ scale_fact *= 2.0; /* help it drift back up. */
+
+ if ((rc = procps_loadavg(&av[0], &av[1], &av[2])) < 0)
+ {
+ if (rc == -ENOENT)
+ xerrx(EXIT_FAILURE,
+ _("Load average file /proc/loadavg does not exist"));
+ else
+ xerrx(EXIT_FAILURE,
+ _("Unable to get load average"));
+ }
+
+ do {
+ lines = av[0] * scale_fact;
+ row = nrows - 1;
+
+ while (0 <= --lines) {
+ *(screen + row * ncols + col) = '*';
+ if (--row < 0) {
+ scale_fact /= 2.0;
+ break;
+ }
+ }
+ } while (0 <= lines);
+
+ while (row >= 0)
+ *(screen + row-- * ncols + col) = ' ';
+
+ for (i = 1;; ++i) {
+ char *p;
+ row = nrows - (i * scale_fact);
+ if (row < 0 || row >= nrows)
+ break;
+ if (*(p = screen + row * ncols + col) == ' ')
+ *p = '-';
+ else
+ *p = '=';
+ }
+
+ if (++col == ncols) {
+ --col;
+ memmove(screen, screen + 1, scr_size - 1);
+
+ for (row = nrows - 2; row >= 0; --row)
+ *(screen + row * ncols + col) = ' ';
+ }
+ i = snprintf(screen, scr_size, " %.2f, %.2f, %.2f", av[0], av[1], av[2]);
+ if (i > 0 && i < scr_size)
+ screen[i] = ' ';
+
+ if (write(fd, "\033[H", 3) < 0)
+ xerr(EXIT_FAILURE, _("writing to tty failed"));
+ if (write(fd, screen, scr_size - 1) < 0)
+ xerr(EXIT_FAILURE, _("writing to tty failed"));
+ pause();
+ }
+}
diff --git a/src/top/top.c b/src/top/top.c
new file mode 100644
index 0000000..969c553
--- /dev/null
+++ b/src/top/top.c
@@ -0,0 +1,7404 @@
+/* top.c - Source file: show Linux processes */
+/*
+ * Copyright © 2002-2023 Jim Warner <james.warner@comcast.net
+ *
+ * This file may be used subject to the terms and conditions of the
+ * GNU Library General Public License Version 2, or any later version
+ * at your option, as published by the Free Software Foundation.
+ * 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 Library General Public License for more details.
+ */
+/* For contributions to this program, the author wishes to thank:
+ * Craig Small, <csmall@dropbear.xyz>
+ * Albert D. Cahalan, <albert@users.sf.net>
+ * Sami Kerola, <kerolasa@iki.fi>
+ */
+
+#include <ctype.h>
+#include <curses.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <float.h>
+#include <getopt.h>
+#include <limits.h>
+#include <pwd.h>
+#include <pthread.h>
+#include <semaphore.h>
+#include <signal.h>
+#include <stdarg.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <term.h> // foul sob, defines all sorts of stuff...
+#undef raw
+#undef tab
+#undef TTY
+#include <termios.h>
+#include <time.h>
+#include <unistd.h>
+#include <wchar.h>
+
+#include <sys/ioctl.h>
+#include <sys/resource.h>
+#include <sys/select.h> // also available via <sys/types.h>
+#include <sys/stat.h>
+#include <sys/time.h>
+#include <sys/types.h> // also available via <stdlib.h>
+
+#include "fileutils.h"
+#include "signals.h"
+#include "nls.h"
+
+#include "meminfo.h"
+#include "misc.h"
+#include "pids.h"
+#include "stat.h"
+
+#include "top.h"
+#include "top_nls.h"
+
+/*###### Miscellaneous global stuff ####################################*/
+
+ /* The original and new terminal definitions
+ (only set when not in 'Batch' mode) */
+static struct termios Tty_original, // our inherited terminal definition
+#ifdef TERMIOS_ONLY
+ Tty_tweaked, // for interactive 'line' input
+#endif
+ Tty_raw; // for unsolicited input
+static int Ttychanged = 0;
+
+ /* Last established cursor state/shape */
+static const char *Cursor_state = "";
+
+ /* Program name used in error messages and local 'rc' file name */
+static char *Myname;
+
+ /* Our constant sigset, so we need initialize it but once */
+static sigset_t Sigwinch_set;
+
+ /* The 'local' config file support */
+static char Rc_name [OURPATHSZ];
+static RCF_t Rc = DEF_RCFILE;
+static int Rc_questions;
+static int Rc_compatibilty;
+
+ /* SMP, Irix/Solaris mode, Linux 2.5.xx support (and beyond) */
+static long Hertz;
+static int Cpu_cnt;
+static float Cpu_pmax;
+static const char *Cpu_States_fmts;
+
+ /* Specific process id monitoring support */
+static int Monpids [MONPIDMAX+1] = { 0 };
+static int Monpidsidx = 0;
+
+ /* Current screen dimensions.
+ note: the number of processes displayed is tracked on a per window
+ basis (see the WIN_t). Max_lines is the total number of
+ screen rows after deducting summary information overhead. */
+ /* Current terminal screen size. */
+static int Screen_cols, Screen_rows, Max_lines;
+
+ /* These 'SCREEN_ROWS', 'BOT_ and 'Bot_' guys are used
+ in managing the special separate bottom 'window' ... */
+#define SCREEN_ROWS ( Screen_rows - Bot_rsvd )
+#define BOT_PRESENT ( Bot_what != 0 )
+#define BOT_ITEMMAX 10 // Bot_item array's max size
+#define BOT_MSGSMAX 10 // total entries for Msg_tab
+#define BOT_UNFOCUS -1 // tab focus not established
+ // negative 'item' values won't be seen by build_headers() ...
+#define BOT_DELIMIT -1 // fencepost with item array
+#define BOT_ITEM_NS -2 // data for namespaces req'd
+#define BOT_MSG_LOG -3 // show the most recent msgs
+ // next 4 are used when toggling window contents
+#define BOT_SEP_CMA ','
+#define BOT_SEP_SLS '/'
+#define BOT_SEP_SMI ';'
+#define BOT_SEP_SPC ' '
+ // 1 for horizontal separator
+#define BOT_RSVD 1
+#define BOT_KEEP Bot_show_func = NULL
+#define BOT_TOSS do { Bot_show_func = NULL; Bot_item[0] = BOT_DELIMIT; \
+ Bot_task = Bot_rsvd = Bot_what = 0; \
+ Bot_indx = BOT_UNFOCUS; \
+ } while(0)
+static int Bot_task,
+ Bot_what,
+ Bot_rsvd,
+ Bot_indx = BOT_UNFOCUS,
+ Bot_item[BOT_ITEMMAX] = { BOT_DELIMIT };
+static char Bot_sep,
+ *Bot_head,
+ Bot_buf[BOTBUFSIZ]; // the 'environ' can be huge
+typedef int(*BOT_f)(const void *, const void *);
+static BOT_f Bot_focus_func;
+static void(*Bot_show_func)(void);
+
+ /* This is really the number of lines needed to display the summary
+ information (0 - nn), but is used as the relative row where we
+ stick the cursor between frames. */
+static int Msg_row;
+
+ /* Global/Non-windows mode stuff that is NOT persistent */
+static int Batch = 0, // batch mode, collect no input, dumb output
+ Loops = -1, // number of iterations, -1 loops forever
+ Secure_mode = 0, // set if some functionality restricted
+ Width_mode = 0, // set w/ 'w' - potential output override
+ Thread_mode = 0; // set w/ 'H' - show threads vs. tasks
+
+ /* Unchangeable cap's stuff built just once (if at all) and
+ thus NOT saved in a WIN_t's RCW_t. To accommodate 'Batch'
+ mode, they begin life as empty strings so the overlying
+ logic need not change ! */
+static char Cap_clr_eol [CAPBUFSIZ] = "", // global and/or static vars
+ Cap_nl_clreos [CAPBUFSIZ] = "", // are initialized to zeros!
+ Cap_clr_scr [CAPBUFSIZ] = "", // the assignments used here
+ Cap_curs_norm [CAPBUFSIZ] = "", // cost nothing but DO serve
+ Cap_curs_huge [CAPBUFSIZ] = "", // to remind people of those
+ Cap_curs_hide [CAPBUFSIZ] = "", // batch requirements!
+ Cap_clr_eos [CAPBUFSIZ] = "",
+ Cap_home [CAPBUFSIZ] = "",
+ Cap_norm [CAPBUFSIZ] = "",
+ Cap_reverse [CAPBUFSIZ] = "",
+ Caps_off [CAPBUFSIZ] = "",
+ Caps_endline [SMLBUFSIZ] = "";
+#ifndef RMAN_IGNORED
+static char Cap_rmam [CAPBUFSIZ] = "",
+ Cap_smam [CAPBUFSIZ] = "";
+ /* set to 1 if writing to the last column would be troublesome
+ (we don't distinguish the lowermost row from the other rows) */
+static int Cap_avoid_eol = 0;
+#endif
+static int Cap_can_goto = 0;
+
+ /* Some optimization stuff, to reduce output demands...
+ The Pseudo_ guys are managed by adj_geometry and frame_make. They
+ are exploited in a macro and represent 90% of our optimization.
+ The Stdout_buf is transparent to our code and regardless of whose
+ buffer is used, stdout is flushed at frame end or if interactive. */
+static char *Pseudo_screen;
+static int Pseudo_row = PROC_XTRA;
+static size_t Pseudo_size;
+#ifndef OFF_STDIOLBF
+ // less than stdout's normal buffer but with luck mostly '\n' anyway
+static char Stdout_buf[2048];
+#endif
+
+ /* Our four WIN_t's, and which of those is considered the 'current'
+ window (ie. which window is associated with any summ info displayed
+ and to which window commands are directed) */
+static WIN_t Winstk [GROUPSMAX];
+static WIN_t *Curwin;
+
+ /* Frame oriented stuff that can't remain local to any 1 function
+ and/or that would be too cumbersome managed as parms,
+ and/or that are simply more efficiently handled as globals
+ [ 'Frames_...' (plural) stuff persists beyond 1 frame ]
+ [ or are used in response to async signals received ! ] */
+static volatile int Frames_signal; // time to rebuild all column headers
+static float Frame_etscale; // so we can '*' vs. '/' WHEN 'pcpu'
+
+ /* Support for automatically sized fixed-width column expansions.
+ * (hopefully, the macros help clarify/document our new 'feature') */
+static int Autox_array [EU_MAXPFLGS],
+ Autox_found;
+#define AUTOX_NO EU_MAXPFLGS
+#define AUTOX_COL(f) if (EU_MAXPFLGS > f && f >= 0) Autox_array[f] = Autox_found = 1
+#define AUTOX_MODE (0 > Rc.fixed_widest)
+
+ /* Support for scale_mem and scale_num (to avoid duplication. */
+#ifdef CASEUP_SUFIX // nls_maybe
+ static char Scaled_sfxtab[] = { 'K', 'M', 'G', 'T', 'P', 'E', 0 };
+#else // nls_maybe
+ static char Scaled_sfxtab[] = { 'k', 'm', 'g', 't', 'p', 'e', 0 };
+#endif
+
+ /* Support for NUMA Node display plus node expansion and targeting */
+#ifndef OFF_STDERROR
+static int Stderr_save = -1;
+#endif
+static int Numa_node_tot;
+static int Numa_node_sel = -1;
+
+ /* Support for Graphing of the View_STATES ('t') and View_MEMORY ('m')
+ commands -- which are now both 4-way toggles */
+#define GRAPH_length_max 100 // the actual bars or blocks
+#define GRAPH_length_min 10 // the actual bars or blocks
+#define GRAPH_prefix_std 25 // '.......: 100.0/100.0 100['
+#define GRAPH_prefix_abv 12 // '.......:100['
+#define GRAPH_suffix 2 // '] ' (bracket + trailing space)
+ // first 3 more static (adj_geometry), last 3 volatile (sum_tics/do_memory)
+struct graph_parms {
+ float adjust; // bars/blocks scaling factor
+ int length; // scaled length (<= GRAPH_length_max)
+ int style; // rc.graph_cpus or rc.graph_mems
+ long total, part1, part2; // elements to be graphed
+};
+static struct graph_parms *Graph_cpus, *Graph_mems;
+static const char Graph_blks[] = " ";
+static const char Graph_bars[] = "||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||";
+
+ /* Support for 'Other Filters' in the configuration file */
+static const char Osel_delim_1_txt[] = "begin: saved other filter data -------------------\n";
+static const char Osel_delim_2_txt[] = "end : saved other filter data -------------------\n";
+static const char Osel_window_fmts[] = "window #%d, osel_tot=%d\n";
+#define OSEL_FILTER "filter="
+static const char Osel_filterO_fmt[] = "\ttype=%d,\t" OSEL_FILTER "%s\n";
+static const char Osel_filterI_fmt[] = "\ttype=%d,\t" OSEL_FILTER "%*s\n";
+
+ /* Support for adjoining display (if terminal is wide enough) */
+#ifdef TOG4_SEP_OFF
+static char Adjoin_sp[] = " ";
+#define ADJOIN_space (sizeof(Adjoin_sp) - 1) // 1 for null
+#else
+#ifdef TOG4_SEP_STD
+static char Adjoin_sp[] = "~1 ~6 ";
+#else
+static char Adjoin_sp[] = " ~6 ~1";
+#endif
+#define ADJOIN_space (sizeof(Adjoin_sp) - 5) // 1 for null + 4 unprintable
+#endif
+#define ADJOIN_limit 8
+
+ /* Support for the new library API -- acquired (if necessary)
+ at program startup and referenced throughout our lifetime. */
+ /*
+ * --- <proc/pids.h> -------------------------------------------------- */
+static struct pids_info *Pids_ctx;
+static int Pids_itms_tot; // same as MAXTBL(Fieldstab)
+static enum pids_item *Pids_itms; // allocated as MAXTBL(Fieldstab)
+static struct pids_fetch *Pids_reap; // for reap or select
+#define PIDSmaxt Pids_reap->counts->total // just a little less wordy
+ // pid stack results extractor macro, where e=our EU enum, t=type, s=stack
+ // ( we'll exploit that <proc/pids.h> provided macro as much as possible )
+ // ( but many functions use their own unique tailored version for access )
+#define PID_VAL(e,t,s) PIDS_VAL(e, t, s, Pids_ctx)
+ /*
+ * --- <proc/stat.h> -------------------------------------------------- */
+static struct stat_info *Stat_ctx;
+static struct stat_reaped *Stat_reap;
+static enum stat_item Stat_items[] = {
+ STAT_TIC_ID, STAT_TIC_NUMA_NODE,
+ STAT_TIC_DELTA_USER, STAT_TIC_DELTA_SYSTEM,
+ STAT_TIC_DELTA_NICE, STAT_TIC_DELTA_IDLE,
+ STAT_TIC_DELTA_IOWAIT, STAT_TIC_DELTA_IRQ,
+ STAT_TIC_DELTA_SOFTIRQ, STAT_TIC_DELTA_STOLEN,
+ STAT_TIC_DELTA_GUEST, STAT_TIC_DELTA_GUEST_NICE,
+ STAT_TIC_SUM_DELTA_USER, STAT_TIC_SUM_DELTA_SYSTEM,
+#ifdef CORE_TYPE_NO
+ STAT_TIC_SUM_DELTA_TOTAL };
+#else
+ STAT_TIC_SUM_DELTA_TOTAL, STAT_TIC_TYPE_CORE };
+#endif
+enum Rel_statitems {
+ stat_ID, stat_NU,
+ stat_US, stat_SY,
+ stat_NI, stat_IL,
+ stat_IO, stat_IR,
+ stat_SI, stat_ST,
+ stat_GU, stat_GN,
+ stat_SUM_USR, stat_SUM_SYS,
+#ifdef CORE_TYPE_NO
+ stat_SUM_TOT };
+#else
+ stat_SUM_TOT, stat_COR_TYP };
+#endif
+ // cpu/node stack results extractor macros, where e=rel enum, x=index
+#define CPU_VAL(e,x) STAT_VAL(e, s_int, Stat_reap->cpus->stacks[x], Stat_ctx)
+#define NOD_VAL(e,x) STAT_VAL(e, s_int, Stat_reap->numa->stacks[x], Stat_ctx)
+#define TIC_VAL(e,s) STAT_VAL(e, sl_int, s, Stat_ctx)
+#define E_CORE 1 // values for stat_COR_TYP itself
+#define P_CORE 2 // ( 0 = unsure/unknown )
+#define P_CORES_ONLY 2 // values of rc.core_types toggle, for filtering
+#define E_CORES_ONLY 3 // ( 0 = Cpu shown, 1 = both CpP & CpE shown )
+ /*
+ * --- <proc/meminfo.h> ----------------------------------------------- */
+static struct meminfo_info *Mem_ctx;
+static struct meminfo_stack *Mem_stack;
+static enum meminfo_item Mem_items[] = {
+ MEMINFO_MEM_FREE, MEMINFO_MEM_USED, MEMINFO_MEM_TOTAL,
+ MEMINFO_MEM_CACHED_ALL, MEMINFO_MEM_BUFFERS, MEMINFO_MEM_AVAILABLE,
+ MEMINFO_SWAP_TOTAL, MEMINFO_SWAP_FREE, MEMINFO_SWAP_USED };
+enum Rel_memitems {
+ mem_FRE, mem_USE, mem_TOT,
+ mem_QUE, mem_BUF, mem_AVL,
+ swp_TOT, swp_FRE, swp_USE };
+ // mem stack results extractor macro, where e=rel enum
+#define MEM_VAL(e) MEMINFO_VAL(e, ul_int, Mem_stack, Mem_ctx)
+
+ /* Support for concurrent library updates via
+ multithreaded background processes */
+#ifdef THREADED_CPU
+static pthread_t Thread_id_cpus;
+static sem_t Semaphore_cpus_beg, Semaphore_cpus_end;
+#endif
+#ifdef THREADED_MEM
+static pthread_t Thread_id_memory;
+static sem_t Semaphore_memory_beg, Semaphore_memory_end;
+#endif
+#ifdef THREADED_TSK
+static pthread_t Thread_id_tasks;
+static sem_t Semaphore_tasks_beg, Semaphore_tasks_end;
+#endif
+#if defined THREADED_CPU || defined THREADED_MEM || defined THREADED_TSK
+static pthread_t Thread_id_main;
+#endif
+
+ /* Support for a namespace with proc mounted subset=pid,
+ ( we'll limit our display to task information only ). */
+static int Restrict_some = 0;
+
+/*###### Tiny useful routine(s) ########################################*/
+
+ /*
+ * This routine simply formats whatever the caller wants and
+ * returns a pointer to the resulting 'const char' string... */
+static const char *fmtmk (const char *fmts, ...) __attribute__((format(printf,1,2)));
+static const char *fmtmk (const char *fmts, ...) {
+ static char buf[BIGBUFSIZ]; // with help stuff, our buffer
+ va_list va; // requirements now exceed 1k
+
+ va_start(va, fmts);
+ vsnprintf(buf, sizeof(buf), fmts, va);
+ va_end(va);
+ return (const char *)buf;
+} // end: fmtmk
+
+
+ /*
+ * Integer based fieldscur version of 'strlen' */
+static inline int mlen (const int *mem) {
+ int i;
+
+ for (i = 0; mem[i]; i++)
+ ;
+ return i;
+} // end: mlen
+
+
+ /*
+ * Integer based fieldscur version of 'strchr' */
+static inline int *msch (const int *mem, int obj, int max) {
+ int i;
+
+ for (i = 0; i < max; i++)
+ if (*(mem + i) == obj) return (int *)mem + i;
+ return NULL;
+} // end: msch
+
+
+ /*
+ * This guy is just our way of avoiding the overhead of the standard
+ * strcat function (should the caller choose to participate) */
+static inline char *scat (char *dst, const char *src) {
+ while (*dst) dst++;
+ while ((*(dst++) = *(src++)));
+ return --dst;
+} // end: scat
+
+
+ /*
+ * This guy just facilitates Batch and protects against dumb ttys
+ * -- we'd 'inline' him but he's only called twice per frame,
+ * yet used in many other locations. */
+static const char *tg2 (int x, int y) {
+ // it's entirely possible we're trying for an invalid row...
+ return Cap_can_goto ? tgoto(cursor_address, x, y) : "";
+} // end: tg2
+
+/*###### Exit/Interrupt routines #######################################*/
+
+ /*
+ * Reset the tty, if necessary */
+static void at_eoj (void) {
+ if (Ttychanged) {
+ tcsetattr(STDIN_FILENO, TCSAFLUSH, &Tty_original);
+ if (keypad_local) putp(keypad_local);
+ putp(tg2(0, Screen_rows));
+ putp("\n");
+#ifdef OFF_SCROLLBK
+ if (exit_ca_mode) {
+ // this next will also replace top's most recent screen with the
+ // original display contents that were visible at our invocation
+ putp(exit_ca_mode);
+ }
+#endif
+ putp(Cap_curs_norm);
+ putp(Cap_clr_eol);
+#ifndef RMAN_IGNORED
+ putp(Cap_smam);
+#endif
+ }
+ fflush(stdout);
+#ifndef OFF_STDERROR
+ /* we gotta reverse the stderr redirect which was employed during start up
+ and needed because the two libnuma 'weak' functions were useless to us! */
+ if (-1 < Stderr_save) {
+ dup2(Stderr_save, fileno(stderr));
+ close(Stderr_save);
+ Stderr_save = -1; // we'll be ending soon anyway but what the heck
+ }
+#endif
+} // end: at_eoj
+
+
+ /*
+ * The real program end */
+static void bye_bye (const char *str) __attribute__((__noreturn__));
+static void bye_bye (const char *str) {
+ sigset_t ss;
+
+// POSIX.1 async-signal-safe: sigfillset, sigprocmask, pthread_sigmask
+ sigfillset(&ss);
+#if defined THREADED_CPU || defined THREADED_MEM || defined THREADED_TSK
+ pthread_sigmask(SIG_BLOCK, &ss, NULL);
+#else
+ sigprocmask(SIG_BLOCK, &ss, NULL);
+#endif
+ at_eoj(); // restore tty in preparation for exit
+#ifdef ATEOJ_RPTSTD
+{
+ if (!str && !Frames_signal && Ttychanged) { fprintf(stderr,
+ "\n%s's Summary report:"
+ "\n\tProgram"
+ "\n\t %s"
+ "\n\t Hertz = %u (%u bytes, %u-bit time)"
+ "\n\t Stat_reap->cpus->total = %d, Stat_reap->numa->total = %d"
+ "\n\t Pids_itms_tot = %d, sizeof(struct pids_result) = %d, pids stack size = %d"
+ "\n\t SCREENMAX = %d, ROWMINSIZ = %d, ROWMAXSIZ = %d"
+ "\n\t PACKAGE = '%s', LOCALEDIR = '%s'"
+ "\n\tTerminal: %s"
+ "\n\t device = %s, ncurses = v%s"
+ "\n\t max_colors = %d, max_pairs = %d"
+ "\n\t Cap_can_goto = %s"
+ "\n\t Screen_cols = %d, Screen_rows = %d"
+ "\n\t Max_lines = %d, most recent Pseudo_size = %u"
+#ifndef OFF_STDIOLBF
+ "\n\t Stdout_buf = %u, BUFSIZ = %u"
+#endif
+ "\n\tWindows and Curwin->"
+ "\n\t sizeof(WIN_t) = %u, GROUPSMAX = %d"
+ "\n\t winname = %s, grpname = %s"
+#ifdef CASEUP_HEXES
+ "\n\t winflags = %08X, maxpflgs = %d"
+#else
+ "\n\t winflags = x%08x, maxpflgs = %d"
+#endif
+ "\n\t sortindx = %d, maxtasks = %d"
+ "\n\t varcolsz = %d, winlines = %d"
+ "\n\t strlen(columnhdr) = %d"
+ "\n\t current fieldscur = %d, maximum fieldscur = %d"
+ "\n"
+ , __func__
+ , PACKAGE_STRING
+ , (unsigned)Hertz, (unsigned)sizeof(Hertz), (unsigned)sizeof(Hertz) * 8
+ , Stat_reap->cpus->total, Stat_reap->numa->total
+ , Pids_itms_tot, (int)sizeof(struct pids_result), (int)(sizeof(struct pids_result) * Pids_itms_tot)
+ , (int)SCREENMAX, (int)ROWMINSIZ, (int)ROWMAXSIZ
+ , PACKAGE, LOCALEDIR
+#ifdef PRETENDNOCAP
+ , "dumb"
+#else
+ , termname()
+#endif
+ , ttyname(STDOUT_FILENO), NCURSES_VERSION
+ , max_colors, max_pairs
+ , Cap_can_goto ? "yes" : "No!"
+ , Screen_cols, Screen_rows
+ , Max_lines, (unsigned)Pseudo_size
+#ifndef OFF_STDIOLBF
+ , (unsigned)sizeof(Stdout_buf), (unsigned)BUFSIZ
+#endif
+ , (unsigned)sizeof(WIN_t), GROUPSMAX
+ , Curwin->rc.winname, Curwin->grpname
+ , Curwin->rc.winflags, Curwin->maxpflgs
+ , Curwin->rc.sortindx, Curwin->rc.maxtasks
+ , Curwin->varcolsz, Curwin->winlines
+ , (int)strlen(Curwin->columnhdr)
+ , EU_MAXPFLGS, mlen(Curwin->rc.fieldscur)
+ );
+ }
+}
+#endif // end: ATEOJ_RPTSTD
+
+ // there's lots of signal-unsafe stuff in the following ...
+ if (Frames_signal != BREAK_sig) {
+#if defined THREADED_CPU || defined THREADED_MEM || defined THREADED_TSK
+ /* can not execute any cleanup from a sibling thread and
+ we will violate proper indentation to minimize impact */
+ if (pthread_equal(Thread_id_main, pthread_self())) {
+#endif
+#ifdef THREADED_CPU
+ pthread_cancel(Thread_id_cpus);
+ pthread_join(Thread_id_cpus, NULL);
+ sem_destroy(&Semaphore_cpus_end);
+ sem_destroy(&Semaphore_cpus_beg);
+#endif
+#ifdef THREADED_MEM
+ pthread_cancel(Thread_id_memory);
+ pthread_join(Thread_id_memory, NULL);
+ sem_destroy(&Semaphore_memory_end);
+ sem_destroy(&Semaphore_memory_beg);
+#endif
+#ifdef THREADED_TSK
+ pthread_cancel(Thread_id_tasks);
+ pthread_join(Thread_id_tasks, NULL);
+ sem_destroy(&Semaphore_tasks_end);
+ sem_destroy(&Semaphore_tasks_beg);
+#endif
+ procps_pids_unref(&Pids_ctx);
+ procps_stat_unref(&Stat_ctx);
+ procps_meminfo_unref(&Mem_ctx);
+#if defined THREADED_CPU || defined THREADED_MEM || defined THREADED_TSK
+ }
+#endif
+ }
+
+ /* we'll only have a 'str' if called by error_exit() |
+ and parse_args(), never from a signal handler ... | */
+ if (str) {
+ fputs(str, stderr);
+ exit(EXIT_FAILURE);
+ }
+ /* this could happen when called from several places |
+ including that sig_endpgm(). thus we must use an |
+ async-signal-safe write function just in case ... |
+ (thanks: Shaohua Zhan shaohua.zhan@windriver.com) | */
+ if (Batch)
+ write(fileno(stdout), "\n", sizeof("\n") - 1);
+
+ exit(EXIT_SUCCESS);
+} // end: bye_bye
+
+
+ /*
+ * Standard error handler to normalize the look of all err output */
+static void error_exit (const char *str) __attribute__((__noreturn__));
+static void error_exit (const char *str) {
+ static char buf[MEDBUFSIZ];
+
+ Frames_signal = BREAK_off;
+ /* we'll use our own buffer so callers can still use fmtmk() and, after
+ twelve long years, 2013 was the year we finally eliminated the leading
+ tab character -- now our message can get lost in screen clutter too! */
+ snprintf(buf, sizeof(buf), "%s: %s\n", Myname, str);
+ bye_bye(buf);
+} // end: error_exit
+
+
+ /*
+ * Catches all remaining signals not otherwise handled */
+static void sig_abexit (int sig) __attribute__((__noreturn__));
+static void sig_abexit (int sig) {
+ sigset_t ss;
+
+// POSIX.1 async-signal-safe: sigfillset, signal, sigemptyset, sigaddset, sigprocmask, pthread_sigmask, raise
+ sigfillset(&ss);
+#if defined THREADED_CPU || defined THREADED_MEM || defined THREADED_TSK
+ pthread_sigmask(SIG_BLOCK, &ss, NULL);
+#else
+ sigprocmask(SIG_BLOCK, &ss, NULL);
+#endif
+ at_eoj(); // restore tty in preparation for exit
+ fprintf(stderr, N_fmt(EXIT_signals_fmt)
+ , sig, signal_number_to_name(sig), Myname);
+ signal(sig, SIG_DFL); // allow core dumps, if applicable
+ sigemptyset(&ss);
+ sigaddset(&ss, sig);
+#if defined THREADED_CPU || defined THREADED_MEM || defined THREADED_TSK
+ pthread_sigmask(SIG_UNBLOCK, &ss, NULL);
+#else
+ sigprocmask(SIG_UNBLOCK, &ss, NULL);
+#endif
+ raise(sig); // ( plus set proper return code )
+ _exit(EXIT_FAILURE); // if default sig action is ignore
+} // end: sig_abexit
+
+
+ /*
+ * Catches:
+ * SIGALRM, SIGHUP, SIGINT, SIGPIPE, SIGQUIT, SIGTERM,
+ * SIGUSR1 and SIGUSR2 */
+static void sig_endpgm (int dont_care_sig) __attribute__((__noreturn__));
+static void sig_endpgm (int dont_care_sig) {
+ Frames_signal = BREAK_sig;
+ bye_bye(NULL);
+ (void)dont_care_sig;
+} // end: sig_endpgm
+
+
+ /*
+ * Catches:
+ * SIGTSTP, SIGTTIN and SIGTTOU */
+static void sig_paused (int dont_care_sig) {
+// POSIX.1 async-signal-safe: tcsetattr, tcdrain, raise
+ if (-1 == tcsetattr(STDIN_FILENO, TCSAFLUSH, &Tty_original))
+ error_exit(fmtmk(N_fmt(FAIL_tty_set_fmt), strerror(errno)));
+ if (keypad_local) putp(keypad_local);
+ putp(tg2(0, Screen_rows));
+ putp(Cap_curs_norm);
+#ifndef RMAN_IGNORED
+ putp(Cap_smam);
+#endif
+ // tcdrain(STDOUT_FILENO) was not reliable prior to ncurses-5.9.20121017,
+ // so we'll risk POSIX's wrath with good ol' fflush, lest 'Stopped' gets
+ // co-mingled with our most recent output...
+ fflush(stdout);
+ raise(SIGSTOP);
+ // later, after SIGCONT...
+ if (-1 == tcsetattr(STDIN_FILENO, TCSAFLUSH, &Tty_raw))
+ error_exit(fmtmk(N_fmt(FAIL_tty_set_fmt), strerror(errno)));
+#ifndef RMAN_IGNORED
+ putp(Cap_rmam);
+#endif
+ if (keypad_xmit) putp(keypad_xmit);
+ putp(Cursor_state);
+ Frames_signal = BREAK_sig;
+ (void)dont_care_sig;
+} // end: sig_paused
+
+
+ /*
+ * Catches:
+ * SIGCONT and SIGWINCH */
+static void sig_resize (int dont_care_sig) {
+// POSIX.1 async-signal-safe: tcdrain
+ tcdrain(STDOUT_FILENO);
+ Frames_signal = BREAK_sig;
+ (void)dont_care_sig;
+} // end: sig_resize
+
+/*###### Special UTF-8 Multi-Byte support ##############################*/
+
+ /* Support for NLS translated multi-byte strings */
+static char UTF8_tab[] = {
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x00 - 0x0F
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x10 - 0x1F
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x20 - 0x2F
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x30 - 0x3F
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x40 - 0x4F
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x50 - 0x5F
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x60 - 0x6F
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, // 0x70 - 0x7F
+ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 0x80 - 0x8F
+ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 0x90 - 0x9F
+ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 0xA0 - 0xAF
+ -1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 0xB0 - 0xBF
+ -1,-1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // 0xC0 - 0xCF, 0xC2 = begins 2
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, // 0xD0 - 0xDF
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, // 0xE0 - 0xEF, 0xE0 = begins 3
+ 4, 4, 4, 4, 4,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, // 0xF0 - 0xFF, 0xF0 = begins 4
+}; // ( 0xF5 & beyond invalid )
+
+
+ /*
+ * Accommodate any potential differences between some multibyte
+ * character sequence and the screen columns needed to print it */
+static inline int utf8_cols (const unsigned char *p, int n) {
+#ifndef OFF_XTRAWIDE
+ wchar_t wc;
+
+ if (n > 1) {
+ (void)mbtowc(&wc, (const char *)p, n);
+ // allow a zero as valid, as with a 'combining acute accent'
+ if ((n = wcwidth(wc)) < 0) n = 1;
+ }
+ return n;
+#else
+ (void)p; (void)n;
+ return 1;
+#endif
+} // end: utf8_cols
+
+
+ /*
+ * Determine difference between total bytes versus printable
+ * characters in that passed, potentially multi-byte, string */
+static int utf8_delta (const char *str) {
+ const unsigned char *p = (const unsigned char *)str;
+ int clen, cnum = 0;
+
+ while (*p) {
+ // -1 represents a decoding error, pretend it's untranslated ...
+ if (0 > (clen = UTF8_tab[*p])) return 0;
+ cnum += utf8_cols(p, clen);
+ p += clen;
+ }
+ return (int)((const char *)p - str) - cnum;
+} // end: utf8_delta
+
+
+ /*
+ * Determine a physical end within a potential multi-byte string
+ * where maximum printable chars could be accommodated in width */
+static int utf8_embody (const char *str, int width) {
+ const unsigned char *p = (const unsigned char *)str;
+ int clen, cnum = 0;
+
+ if (width > 0) {
+ while (*p) {
+ // -1 represents a decoding error, pretend it's untranslated ...
+ if (0 > (clen = UTF8_tab[*p])) return width;
+ if (width < (cnum += utf8_cols(p, clen))) break;
+ p += clen;
+ }
+ }
+ return (int)((const char *)p - str);
+} // end: utf8_embody
+
+
+ /*
+ * Like the regular justify_pad routine but this guy
+ * can accommodate the multi-byte translated strings */
+static const char *utf8_justify (const char *str, int width, int justr) {
+ static char l_fmt[] = "%-*.*s%s", r_fmt[] = "%*.*s%s";
+ static char buf[SCREENMAX];
+ char tmp[SCREENMAX];
+
+ snprintf(tmp, sizeof(tmp), "%.*s", utf8_embody(str, width), str);
+ width += utf8_delta(tmp);
+ snprintf(buf, sizeof(buf), justr ? r_fmt : l_fmt, width, width, tmp, COLPADSTR);
+ return buf;
+} // end: utf8_justify
+
+
+ /*
+ * Returns a physical or logical column number given a
+ * multi-byte string and a target column value */
+static int utf8_proper_col (const char *str, int col, int tophysical) {
+ const unsigned char *p = (const unsigned char *)str;
+ int clen, tlen = 0, cnum = 0;
+
+ while (*p) {
+ // -1 represents a decoding error, don't encourage repositioning ...
+ if (0 > (clen = UTF8_tab[*p])) return col;
+ if (cnum + 1 > col && tophysical) break;
+ p += clen;
+ tlen += clen;
+ if (tlen > col && !tophysical) break;
+ ++cnum;
+ }
+ return tophysical ? tlen : cnum;
+} // end: utf8_proper_col
+
+/*###### Misc Color/Display support ####################################*/
+
+ /*
+ * Make the appropriate caps/color strings for a window/field group.
+ * note: we avoid the use of background color so as to maximize
+ * compatibility with the user's xterm settings */
+static void capsmk (WIN_t *q) {
+ /* macro to test if a basic (non-color) capability is valid
+ thanks: Floyd Davidson <floyd@ptialaska.net> */
+ #define tIF(s) s ? s : ""
+ /* macro to make compatible with netbsd-curses too
+ thanks: rofl0r <retnyg@gmx.net> */
+ #define tPM(a,b) tparm(a, b, 0, 0, 0, 0, 0, 0, 0, 0)
+ static int capsdone = 0;
+
+ // we must NOT disturb our 'empty' terminfo strings!
+ if (Batch) return;
+
+ // these are the unchangeable puppies, so we only do 'em once
+ if (!capsdone) {
+ STRLCPY(Cap_clr_eol, tIF(clr_eol))
+ STRLCPY(Cap_clr_eos, tIF(clr_eos))
+ STRLCPY(Cap_clr_scr, tIF(clear_screen))
+ // due to the leading newline, the following must be used with care
+ snprintf(Cap_nl_clreos, sizeof(Cap_nl_clreos), "\n%s", tIF(clr_eos));
+ STRLCPY(Cap_curs_huge, tIF(cursor_visible))
+ STRLCPY(Cap_curs_norm, tIF(cursor_normal))
+ STRLCPY(Cap_curs_hide, tIF(cursor_invisible))
+ STRLCPY(Cap_home, tIF(cursor_home))
+ STRLCPY(Cap_norm, tIF(exit_attribute_mode))
+ STRLCPY(Cap_reverse, tIF(enter_reverse_mode))
+#ifndef RMAN_IGNORED
+ if (!eat_newline_glitch) {
+ STRLCPY(Cap_rmam, tIF(exit_am_mode))
+ STRLCPY(Cap_smam, tIF(enter_am_mode))
+ if (!*Cap_rmam || !*Cap_smam) {
+ *Cap_rmam = '\0';
+ *Cap_smam = '\0';
+ if (auto_right_margin)
+ Cap_avoid_eol = 1;
+ }
+ putp(Cap_rmam);
+ }
+#endif
+ snprintf(Caps_off, sizeof(Caps_off), "%s%s", Cap_norm, tIF(orig_pair));
+ snprintf(Caps_endline, sizeof(Caps_endline), "%s%s", Caps_off, Cap_clr_eol);
+ if (tgoto(cursor_address, 1, 1)) Cap_can_goto = 1;
+ capsdone = 1;
+ }
+
+ /* the key to NO run-time costs for configurable colors -- we spend a
+ little time with the user now setting up our terminfo strings, and
+ the job's done until he/she/it has a change-of-heart */
+ STRLCPY(q->cap_bold, CHKw(q, View_NOBOLD) ? Cap_norm : tIF(enter_bold_mode))
+ if (CHKw(q, Show_COLORS) && max_colors > 0) {
+ STRLCPY(q->capclr_sum, tPM(set_a_foreground, q->rc.summclr))
+ snprintf(q->capclr_msg, sizeof(q->capclr_msg), "%s%s"
+ , tPM(set_a_foreground, q->rc.msgsclr), Cap_reverse);
+ snprintf(q->capclr_pmt, sizeof(q->capclr_pmt), "%s%s"
+ , tPM(set_a_foreground, q->rc.msgsclr), q->cap_bold);
+ snprintf(q->capclr_hdr, sizeof(q->capclr_hdr), "%s%s"
+ , tPM(set_a_foreground, q->rc.headclr), Cap_reverse);
+ snprintf(q->capclr_rownorm, sizeof(q->capclr_rownorm), "%s%s"
+ , Caps_off, tPM(set_a_foreground, q->rc.taskclr));
+ } else {
+ q->capclr_sum[0] = '\0';
+#ifdef USE_X_COLHDR
+ snprintf(q->capclr_msg, sizeof(q->capclr_msg), "%s%s"
+ , Cap_reverse, q->cap_bold);
+#else
+ STRLCPY(q->capclr_msg, Cap_reverse)
+#endif
+ STRLCPY(q->capclr_pmt, q->cap_bold)
+ STRLCPY(q->capclr_hdr, Cap_reverse)
+ STRLCPY(q->capclr_rownorm, Cap_norm)
+ }
+
+ // composite(s), so we do 'em outside and after the if
+ snprintf(q->capclr_rowhigh, sizeof(q->capclr_rowhigh), "%s%s"
+ , q->capclr_rownorm, CHKw(q, Show_HIBOLD) ? q->cap_bold : Cap_reverse);
+ #undef tIF
+ #undef tPM
+} // end: capsmk
+
+
+static struct msg_node {
+ char msg[SMLBUFSIZ];
+ struct msg_node *prev;
+} Msg_tab[BOT_MSGSMAX];
+
+static struct msg_node *Msg_this = Msg_tab;
+
+ /*
+ * Show an error message (caller may include '\a' for sound) */
+static void show_msg (const char *str) {
+ STRLCPY(Msg_this->msg, str);
+ if (++Msg_this > &Msg_tab[BOT_MSGSMAX - 1]) Msg_this = Msg_tab;
+
+ PUTT("%s%s %.*s %s%s%s"
+ , tg2(0, Msg_row)
+ , Curwin->capclr_msg
+ , utf8_embody(str, Screen_cols - 2)
+ , str
+ , Cap_curs_hide
+ , Caps_off
+ , Cap_clr_eol);
+ fflush(stdout);
+ usleep(MSG_USLEEP);
+} // end: show_msg
+
+
+ /*
+ * Show an input prompt + larger cursor (if possible) */
+static int show_pmt (const char *str) {
+ char buf[MEDBUFSIZ];
+ int len;
+
+ snprintf(buf, sizeof(buf), "%.*s", utf8_embody(str, Screen_cols - 2), str);
+ len = utf8_delta(buf);
+#ifdef PRETENDNOCAP
+ PUTT("\n%s%s%.*s %s%s%s"
+#else
+ PUTT("%s%s%.*s %s%s%s"
+#endif
+ , tg2(0, Msg_row)
+ , Curwin->capclr_pmt
+ , (Screen_cols - 2) + len
+ , buf
+ , Cap_curs_huge
+ , Caps_off
+ , Cap_clr_eol);
+ fflush(stdout);
+ len = strlen(buf) - len;
+ // +1 for the space we added or -1 for the cursor...
+ return (len + 1 < Screen_cols) ? len + 1 : Screen_cols - 1;
+} // end: show_pmt
+
+
+ /*
+ * Create and print the optional scroll coordinates message */
+static void show_scroll (void) {
+ char tmp1[SMLBUFSIZ];
+#ifndef SCROLLVAR_NO
+ char tmp2[SMLBUFSIZ];
+#endif
+ int totpflgs = Curwin->totpflgs;
+ int begpflgs = Curwin->begpflg + 1;
+
+#ifndef USE_X_COLHDR
+ if (CHKw(Curwin, Show_HICOLS)) {
+ totpflgs -= 2;
+ if (ENUpos(Curwin, Curwin->rc.sortindx) < Curwin->begpflg) begpflgs -= 2;
+ }
+#endif
+ if (1 > totpflgs) totpflgs = 1;
+ if (1 > begpflgs) begpflgs = 1;
+ snprintf(tmp1, sizeof(tmp1), N_fmt(SCROLL_coord_fmt), Curwin->begtask + 1, PIDSmaxt, begpflgs, totpflgs);
+#ifndef SCROLLVAR_NO
+ if (Curwin->varcolbeg) {
+ snprintf(tmp2, sizeof(tmp2), " + %d", Curwin->varcolbeg);
+ scat(tmp1, tmp2);
+ }
+#endif
+ PUTT("%s%s %.*s%s", tg2(0, Msg_row), Caps_off, Screen_cols - 3, tmp1, Cap_clr_eol);
+} // end: show_scroll
+
+
+ /*
+ * Show lines with specially formatted elements, but only output
+ * what will fit within the current screen width.
+ * Our special formatting consists of:
+ * "some text <_delimiter_> some more text <_delimiter_>...\n"
+ * Where <_delimiter_> is a two byte combination consisting of a
+ * tilde followed by an ascii digit in the range of 1 - 8.
+ * examples: ~1, ~5, ~8, etc.
+ * The tilde is effectively stripped and the next digit
+ * converted to an index which is then used to select an
+ * 'attribute' from a capabilities table. That attribute
+ * is then applied to the *preceding* substring.
+ * Once recognized, the delimiter is replaced with a null character
+ * and viola, we've got a substring ready to output! Strings or
+ * substrings without delimiters will receive the Cap_norm attribute.
+ *
+ * Caution:
+ * This routine treats all non-delimiter bytes as displayable
+ * data subject to our screen width marching orders. If callers
+ * embed non-display data like tabs or terminfo strings in our
+ * glob, a line will truncate incorrectly at best. Worse case
+ * would be truncation of an embedded tty escape sequence.
+ *
+ * Tabs must always be avoided or our efforts are wasted and
+ * lines will wrap. To lessen but not eliminate the risk of
+ * terminfo string truncation, such non-display stuff should
+ * be placed at the beginning of a "short" line. */
+static void show_special (int interact, const char *glob) {
+ /* note: the following is for documentation only,
+ the real captab is now found in a group's WIN_t !
+ +------------------------------------------------------+
+ | char *captab[] = { : Cap's = Index |
+ | Cap_norm, Cap_norm, = \000, \001, |
+ | cap_bold, capclr_sum, = \002, \003, |
+ | capclr_msg, capclr_pmt, = \004, \005, |
+ | capclr_hdr, = \006, |
+ | capclr_rowhigh, = \007, |
+ | capclr_rownorm }; = \010 [octal!] |
+ +------------------------------------------------------+ */
+ /* ( Pssst, after adding the termcap transitions, row may )
+ ( exceed 300+ bytes, even in an 80x24 terminal window! )
+ ( Shown here are the former buffer size specifications )
+ ( char tmp[SMLBUFSIZ], lin[MEDBUFSIZ], row[LRGBUFSIZ]. )
+ ( So now we use larger buffers and a little protection )
+ ( against overrunning them with this 'lin_end - glob'. )
+
+ ( That was uncovered during 'Inspect' development when )
+ ( this guy was being considered for a supporting role. )
+ ( However, such an approach was abandoned. As a result )
+ ( this function is called only with a glob under top's )
+ ( control and never containing any 'raw/binary' chars! ) */
+ char tmp[LRGBUFSIZ], lin[LRGBUFSIZ], row[ROWMINSIZ];
+ char *rp, *lin_end, *sub_beg, *sub_end;
+ int room;
+
+ // handle multiple lines passed in a bunch
+ while ((lin_end = strchr(glob, '\n'))) {
+ #define myMIN(a,b) (((a) < (b)) ? (a) : (b))
+ size_t lessor = myMIN((size_t)(lin_end - glob), sizeof(lin) -3);
+
+ // create a local copy we can extend and otherwise abuse
+ memcpy(lin, glob, lessor);
+ // zero terminate this part and prepare to parse substrings
+ lin[lessor] = '\0';
+ room = Screen_cols;
+ sub_beg = sub_end = lin;
+ *(rp = row) = '\0';
+
+ while (*sub_beg) {
+ int ch = *sub_end;
+ if ('~' == ch) ch = *(sub_end + 1) - '0';
+ switch (ch) {
+ case 0: // no end delim, captab makes normal
+ // only possible when '\n' was NOT preceded with a '~#' sequence
+ // ( '~1' thru '~8' is valid range, '~0' is never actually used )
+ *(sub_end + 1) = '\0'; // extend str end, then fall through
+ *(sub_end + 2) = '\0'; // ( +1 optimization for usual path )
+ // fall through
+ case 1: case 2: case 3: case 4:
+ case 5: case 6: case 7: case 8:
+ *sub_end = '\0';
+ snprintf(tmp, sizeof(tmp), "%s%.*s%s"
+ , Curwin->captab[ch], utf8_embody(sub_beg, room), sub_beg, Caps_off);
+ rp = scat(rp, tmp);
+ room -= (sub_end - sub_beg);
+ room += utf8_delta(sub_beg);
+ sub_beg = (sub_end += 2);
+ break;
+ default: // nothin' special, just text
+ ++sub_end;
+ }
+ if (0 >= room) break; // skip substrings that won't fit
+ }
+
+ if (interact) PUTT("%s%s\n", row, Cap_clr_eol);
+ else PUFF("%s%s\n", row, Caps_endline);
+ glob = ++lin_end; // point to next line (maybe)
+
+ #undef myMIN
+ } // end: while 'lines'
+
+ /* If there's anything left in the glob (by virtue of no trailing '\n'),
+ it probably means caller wants to retain cursor position on this final
+ line. That, in turn, means we're interactive and so we'll just do our
+ 'fit-to-screen' thingy while also leaving room for the cursor... */
+ if (*glob) PUTT("%.*s", utf8_embody(glob, Screen_cols - 1), glob);
+} // end: show_special
+
+/*###### Low Level Memory/Keyboard/File I/O support ####################*/
+
+ /*
+ * Handle our own memory stuff without the risk of leaving the
+ * user's terminal in an ugly state should things go sour. */
+
+static void *alloc_c (size_t num) {
+ void *pv;
+
+ if (!num) ++num;
+ if (!(pv = calloc(1, num)))
+ error_exit(N_txt(FAIL_alloc_c_txt));
+ return pv;
+} // end: alloc_c
+
+
+static void *alloc_r (void *ptr, size_t num) {
+ void *pv;
+
+ if (!num) ++num;
+ if (!(pv = realloc(ptr, num)))
+ error_exit(N_txt(FAIL_alloc_r_txt));
+ return pv;
+} // end: alloc_r
+
+
+static char *alloc_s (const char *str) {
+ return strcpy(alloc_c(strlen(str) +1), str);
+} // end: alloc_s
+
+
+ /*
+ * An 'I/O available' routine which will detect raw single byte |
+ * unsolicited keyboard input which was susceptible to SIGWINCH |
+ * interrupt (or any other signal). He'll also support timeout |
+ * in the absence of any user keystrokes or a signal interrupt. | */
+static inline int ioa (struct timespec *ts) {
+ fd_set fs;
+ int rc;
+
+ FD_ZERO(&fs);
+ FD_SET(STDIN_FILENO, &fs);
+
+#ifdef SIGNALS_LESS // conditional comments are silly, but help in documenting
+ // hold here until we've got keyboard input, any signal except SIGWINCH
+ // or (optionally) we timeout with nanosecond granularity
+#else
+ // hold here until we've got keyboard input, any signal (including SIGWINCH)
+ // or (optionally) we timeout with nanosecond granularity
+#endif
+ rc = pselect(STDIN_FILENO + 1, &fs, NULL, NULL, ts, &Sigwinch_set);
+
+ if (rc < 0) rc = 0;
+ return rc;
+} // end: ioa
+
+
+ /*
+ * This routine isolates ALL user INPUT and ensures that we
+ * won't be mixing I/O from stdio and low-level read() requests */
+static int ioch (int ech, char *buf, unsigned cnt) {
+ int rc = -1;
+
+#ifdef TERMIOS_ONLY
+ if (ech) {
+ tcsetattr(STDIN_FILENO, TCSAFLUSH, &Tty_tweaked);
+ rc = read(STDIN_FILENO, buf, cnt);
+ tcsetattr(STDIN_FILENO, TCSAFLUSH, &Tty_raw);
+ } else {
+ if (ioa(NULL))
+ rc = read(STDIN_FILENO, buf, cnt);
+ }
+#else
+ (void)ech;
+ if (ioa(NULL))
+ rc = read(STDIN_FILENO, buf, cnt);
+#endif
+
+ // zero means EOF, might happen if we erroneously get detached from terminal
+ if (0 == rc) bye_bye(NULL);
+
+ // it may have been the beginning of a lengthy escape sequence
+ tcflush(STDIN_FILENO, TCIFLUSH);
+
+ // note: we do NOT produce a valid 'string'
+ return rc;
+} // end: ioch
+
+
+#define IOKEY_INIT 0
+#define IOKEY_ONCE 1
+#define IOKEY_NEXT 2
+
+ /*
+ * Support for single or multiple keystroke input AND
+ * escaped cursor motion keys.
+ * note: we support more keys than we currently need, in case
+ * we attract new consumers in the future */
+static int iokey (int action) {
+ static struct {
+ const char *str;
+ int key;
+ } tinfo_tab[] = {
+ { NULL, kbd_BKSP }, { NULL, kbd_INS }, { NULL, kbd_DEL }, { NULL, kbd_LEFT },
+ { NULL, kbd_DOWN }, { NULL, kbd_UP }, { NULL, kbd_RIGHT }, { NULL, kbd_HOME },
+ { NULL, kbd_PGDN }, { NULL, kbd_PGUP }, { NULL, kbd_END }, { NULL, kbd_BTAB },
+ // remainder are alternatives for above, just in case...
+ // ( the h,j,k,l entries are the vim cursor motion keys )
+ { "\b", kbd_BKSP }, { "\177", kbd_BKSP }, /* backspace */
+ { "\033h", kbd_LEFT }, { "\033j", kbd_DOWN }, /* meta+ h,j */
+ { "\033k", kbd_UP }, { "\033l", kbd_RIGHT }, /* meta+ k,l */
+ { "\033\010", kbd_HOME }, { "\033\012", kbd_PGDN }, /* ctrl+meta+ h,j */
+ { "\033\013", kbd_PGUP }, { "\033\014", kbd_END }, /* ctrl+meta+ k,l */
+ { "\xC3\xA8", kbd_LEFT }, { "\xC3\xAA", kbd_DOWN }, /* meta+ h,j (some xterms) */
+ { "\xC3\xAB", kbd_UP }, { "\xC3\xAC", kbd_RIGHT }, /* meta+ k,l (some xterms) */
+ { "\xC2\x88", kbd_HOME }, { "\xC2\x8A", kbd_PGDN }, /* ctrl+meta+ h,j (some xterms) */
+ { "\xC2\x8B", kbd_PGUP }, { "\xC2\x8C", kbd_END }, /* ctrl+meta+ k,l (some xterms) */
+ { "\033\011", kbd_BTAB }
+ };
+ static char erase[2];
+#ifdef TERMIOS_ONLY
+ char buf[SMLBUFSIZ], *pb;
+#else
+ static char buf[MEDBUFSIZ];
+ static int pos, len;
+ char *pb;
+#endif
+ int i;
+
+ if (action == IOKEY_INIT) {
+#ifndef _POSIX_VDISABLE
+#define _POSIX_VDISABLE fpathconf(STDIN_FILENO, _PC_VDISABLE)
+#endif
+ if (Tty_original.c_cc[VERASE] == _POSIX_VDISABLE)
+ tinfo_tab[0].str = key_backspace;
+ else {
+ *erase = Tty_original.c_cc[VERASE];
+ tinfo_tab[0].str = erase;
+ }
+ tinfo_tab[1].str = key_ic;
+ tinfo_tab[2].str = key_dc;
+ tinfo_tab[3].str = key_left;
+ tinfo_tab[4].str = key_down;
+ tinfo_tab[5].str = key_up;
+ tinfo_tab[6].str = key_right;
+ tinfo_tab[7].str = key_home;
+ tinfo_tab[8].str = key_npage;
+ tinfo_tab[9].str = key_ppage;
+ tinfo_tab[10].str = key_end;
+ tinfo_tab[11].str = back_tab;
+ // next is critical so returned results match bound terminfo keys
+ if (keypad_xmit)
+ putp(keypad_xmit);
+ // ( converse keypad_local issued at pause/pgm end, just in case )
+ return 0;
+ }
+
+ if (action == IOKEY_ONCE) {
+ memset(buf, '\0', sizeof(buf));
+ if (1 > ioch(0, buf, sizeof(buf)-1)) return 0;
+ }
+
+#ifndef TERMIOS_ONLY
+ if (action == IOKEY_NEXT) {
+ if (pos < len)
+ return buf[pos++]; // exhaust prior keystrokes
+ pos = len = 0;
+ memset(buf, '\0', sizeof(buf));
+ if (1 > ioch(0, buf, sizeof(buf)-1)) return 0;
+ if (!iscntrl(buf[0])) { // no need for translation
+ len = strlen(buf);
+ pos = 1;
+ return buf[0];
+ }
+ }
+#endif
+
+ /* some emulators implement 'key repeat' too well and we get duplicate
+ key sequences -- so we'll focus on the last escaped sequence, while
+ also allowing use of the meta key... */
+ if (!(pb = strrchr(buf, '\033'))) pb = buf;
+ else if (pb > buf && '\033' == *(pb - 1)) --pb;
+
+ for (i = 0; i < MAXTBL(tinfo_tab); i++)
+ if (tinfo_tab[i].str && !strcmp(tinfo_tab[i].str, pb))
+ return tinfo_tab[i].key;
+
+ // no match, so we'll return single non-escaped keystrokes only
+ if (buf[0] == '\033' && buf[1]) return -1;
+ return buf[0];
+} // end: iokey
+
+
+#ifdef TERMIOS_ONLY
+ /*
+ * Get line oriented interactive input from the user,
+ * using native tty support */
+static char *ioline (const char *prompt) {
+ static const char ws[] = "\b\f\n\r\t\v\x1b\x9b"; // 0x1b + 0x9b are escape
+ static char buf[MEDBUFSIZ];
+ char *p;
+
+ show_pmt(prompt);
+ memset(buf, '\0', sizeof(buf));
+ ioch(1, buf, sizeof(buf)-1);
+
+ if ((p = strpbrk(buf, ws))) *p = '\0';
+ // note: we DO produce a valid 'string'
+ return buf;
+} // end: ioline
+
+#else
+ /*
+ * Get some line oriented interactive input from the ol' user,
+ * going way, way beyond that native tty support by providing:
+ * . true input line editing, not just a destructive backspace
+ * . an input limit sensitive to the current screen dimensions
+ * . an ability to recall prior strings for editing & re-input */
+static char *ioline (const char *prompt) {
+ #define setLEN ( len = strlen(buf) - utf8_delta(buf) )
+ #define setPOS(X) ( pos = utf8_embody(buf, X) )
+ #define utfCHR(X) ( (unsigned char *)&buf[X] )
+ #define utfTOT(X) ( UTF8_tab[(unsigned char)buf[X]] )
+ #define utfCOL(X) ( utf8_cols(utfCHR(X), utfTOT(X)) )
+ #define movBKW { setPOS(cur - 1); while (utfTOT(pos) < 0) --pos; }
+ #define chkCUR { if (cur < 0) cur = 0; if (cur > len) cur = len; }
+ // thank goodness ol' memmove will safely allow strings to overlap
+ #define sqzSTR { i = utfTOT(pos); while (i < 0) i = utfTOT(--pos); \
+ if (!utfCOL(pos + i)) i += utfTOT(pos + i); \
+ memmove(&buf[pos], &buf[pos + i], bufMAX-(pos + i)); \
+ memset(&buf[bufMAX - i], '\0', i); }
+ #define expSTR(X) if (bufNXT < bufMAX && scrNXT < Screen_cols) { \
+ memmove(&buf[pos + X], &buf[pos], bufMAX - pos); }
+ #define savMAX 50
+ #define bufNXT ( pos + 4 ) // four equals longest utf8 str
+ #define scrNXT ( beg + len + 2 ) // two due to multi-column char
+ #define bufMAX ((int)sizeof(buf)-2) // -1 for '\0' string delimiter
+ static char buf[MEDBUFSIZ+1]; // +1 for '\0' string delimiter
+ static int ovt;
+ int beg, // the physical column where input began, buf[0]
+ cur, // the logical current column/insertion position
+ len, // the logical input length, thus the end column
+ pos, // the physical position in the buffer currently
+ key, i;
+ struct lin_s {
+ struct lin_s *bkw; // pointer for older saved strs
+ struct lin_s *fwd; // pointer for newer saved strs
+ char *str; // an actual saved input string
+ };
+ static struct lin_s *anchor, *plin;
+
+ if (!anchor) {
+ anchor = alloc_c(sizeof(struct lin_s));
+ anchor->str = alloc_s(""); // the top-of-stack (empty str)
+ }
+ plin = anchor;
+ cur = len = pos = 0;
+ beg = show_pmt(prompt);
+ memset(buf, '\0', sizeof(buf));
+ // this may not work under a gui emulator (but linux console is ok)
+ putp(ovt ? Cap_curs_huge : Cap_curs_norm);
+
+ do {
+ fflush(stdout);
+ key = iokey(IOKEY_NEXT);
+ switch (key) {
+ case 0:
+ buf[0] = '\0';
+ return buf;
+ case kbd_ESC:
+ buf[0] = kbd_ESC;
+ return buf;
+ case kbd_ENTER:
+ case kbd_BTAB: case kbd_PGUP: case kbd_PGDN:
+ continue;
+ case kbd_INS:
+ ovt = !ovt;
+ putp(ovt ? Cap_curs_huge : Cap_curs_norm);
+ break;
+ case kbd_DEL:
+ sqzSTR
+ break;
+ case kbd_BKSP:
+ if (0 < cur) { movBKW; cur -= utfCOL(pos); setPOS(cur); sqzSTR; }
+ break;
+ case kbd_LEFT:
+ if (0 < cur) { movBKW; cur -= utfCOL(pos); }
+ break;
+ case kbd_RIGHT:
+ if (cur < len) cur += utfCOL(pos);
+ break;
+ case kbd_HOME:
+ cur = pos = 0;
+ break;
+ case kbd_END:
+ cur = len;
+ pos = strlen(buf);
+ break;
+ case kbd_UP:
+ if (plin->bkw) {
+ plin = plin->bkw;
+ memset(buf, '\0', sizeof(buf));
+ memccpy(buf, plin->str, '\0', bufMAX);
+ cur = setLEN;
+ pos = strlen(buf);
+ }
+ break;
+ case kbd_DOWN:
+ if (plin->fwd) plin = plin->fwd;
+ memset(buf, '\0', sizeof(buf));
+ memccpy(buf, plin->str, '\0', bufMAX);
+ cur = setLEN;
+ pos = strlen(buf);
+ break;
+ default: // what we REALLY wanted (maybe)
+ if (bufNXT < bufMAX && scrNXT < Screen_cols && strlen(buf) < bufMAX) {
+ int tot = UTF8_tab[(unsigned char)key],
+ sav = pos;
+ if (tot < 1) tot = 1;
+ if (!ovt) { expSTR(tot); }
+ else { pos = utf8_embody(buf, cur); sqzSTR; expSTR(tot); }
+ buf[pos++] = key;
+ while (tot > 1) {
+ key = iokey(IOKEY_NEXT);
+ buf[pos++] = key;
+ --tot;
+ }
+ cur += utfCOL(sav);
+ }
+ break;
+ }
+ setLEN;
+ chkCUR;
+ setPOS(cur);
+ putp(fmtmk("%s%s%s", tg2(beg, Msg_row), Cap_clr_eol, buf));
+#ifdef OVERTYPE_SEE
+ putp(fmtmk("%s%c", tg2(beg - 1, Msg_row), ovt ? '^' : ' '));
+#endif
+ putp(tg2(beg + cur, Msg_row));
+ } while (key != kbd_ENTER);
+
+ // weed out duplicates, including empty strings (top-of-stack)...
+ for (i = 0, plin = anchor; ; i++) {
+#ifdef RECALL_FIXED
+ if (!STRCMP(plin->str, buf)) // if matched, retain original order
+ return buf;
+#else
+ if (!STRCMP(plin->str, buf)) { // if matched, rearrange stack order
+ if (i > 1) { // but not null str or if already #2
+ if (plin->bkw) // splice around this matched string
+ plin->bkw->fwd = plin->fwd; // if older exists link to newer
+ plin->fwd->bkw = plin->bkw; // newer linked to older or NULL
+ anchor->bkw->fwd = plin; // stick matched on top of former #2
+ plin->bkw = anchor->bkw; // keep empty string at top-of-stack
+ plin->fwd = anchor; // then prepare to be the 2nd banana
+ anchor->bkw = plin; // by sliding us in below the anchor
+ }
+ return buf;
+ }
+#endif
+ if (!plin->bkw) break; // let i equal total stacked strings
+ plin = plin->bkw; // ( with plin representing bottom )
+ }
+ if (i < savMAX)
+ plin = alloc_c(sizeof(struct lin_s));
+ else { // when a new string causes overflow
+ plin->fwd->bkw = NULL; // make next-to-last string new last
+ free(plin->str); // and toss copy but keep the struct
+ }
+ plin->str = alloc_s(buf); // copy user's new unique input line
+ plin->bkw = anchor->bkw; // keep empty string as top-of-stack
+ if (plin->bkw) // did we have some already stacked?
+ plin->bkw->fwd = plin; // yep, so point prior to new string
+ plin->fwd = anchor; // and prepare to be a second banana
+ anchor->bkw = plin; // by sliding it in as new number 2!
+
+ return buf; // protect our copy, return original
+ #undef setLEN
+ #undef setPOS
+ #undef utfCHR
+ #undef utfTOT
+ #undef utfCOL
+ #undef movBKW
+ #undef chkCUR
+ #undef sqzSTR
+ #undef expSTR
+ #undef savMAX
+ #undef bufNXT
+ #undef scrNXT
+ #undef bufMAX
+} // end: ioline
+#endif
+
+
+ /*
+ * Make locale unaware float (but maybe restrict to whole numbers). */
+static int mkfloat (const char *str, float *num, int whole) {
+ char tmp[SMLBUFSIZ], *ep;
+
+ if (whole) {
+ *num = (float)strtol(str, &ep, 0);
+ if (ep != str && *ep == '\0' && *num < INT_MAX)
+ return 1;
+ return 0;
+ }
+ snprintf(tmp, sizeof(tmp), "%s", str);
+ *num = strtof(tmp, &ep);
+ if (*ep != '\0') {
+ // fallback - try to swap the floating point separator
+ if (*ep == '.') *ep = ',';
+ else if (*ep == ',') *ep = '.';
+ *num = strtof(tmp, &ep);
+ }
+ if (ep != tmp && *ep == '\0' && *num < INT_MAX)
+ return 1;
+ return 0;
+} // end: mkfloat
+
+
+ /*
+ * This routine provides the i/o in support of files whose size
+ * cannot be determined in advance. Given a stream pointer, he'll
+ * try to slurp in the whole thing and return a dynamically acquired
+ * buffer supporting that single string glob.
+ *
+ * He always creates a buffer at least READMINSZ big, possibly
+ * all zeros (an empty string), even if the file wasn't read. */
+static int readfile (FILE *fp, char **baddr, size_t *bsize, size_t *bread) {
+ char chunk[4096*16];
+ size_t num;
+
+ *bread = 0;
+ *bsize = READMINSZ;
+ *baddr = alloc_c(READMINSZ);
+ if (fp) {
+ while (0 < (num = fread(chunk, 1, sizeof(chunk), fp))) {
+ *baddr = alloc_r(*baddr, num + *bsize);
+ memcpy(*baddr + *bread, chunk, num);
+ *bread += num;
+ *bsize += num;
+ };
+ *(*baddr + *bread) = '\0';
+ return ferror(fp);
+ }
+ return ENOENT;
+} // end: readfile
+
+/*###### Small Utility routines ########################################*/
+
+#define GET_NUM_BAD INT_MIN
+#define GET_NUM_ESC (INT_MIN + 1)
+#define GET_NUM_NOT (INT_MIN + 2)
+
+ /*
+ * Get a float from the user */
+static float get_float (const char *prompt) {
+ char *line;
+ float f;
+
+ line = ioline(prompt);
+ if (line[0] == kbd_ESC || Frames_signal) return GET_NUM_ESC;
+ if (!line[0]) return GET_NUM_NOT;
+ // note: we're not allowing negative floats
+ if (!mkfloat(line, &f, 0) || f < 0) {
+ show_msg(N_txt(BAD_numfloat_txt));
+ return GET_NUM_BAD;
+ }
+ return f;
+} // end: get_float
+
+
+ /*
+ * Get an integer from the user, returning INT_MIN for error */
+static int get_int (const char *prompt) {
+ char *line;
+ float f;
+
+ line = ioline(prompt);
+ if (line[0] == kbd_ESC || Frames_signal) return GET_NUM_ESC;
+ if (!line[0]) return GET_NUM_NOT;
+ // note: we've got to allow negative ints (renice)
+ if (!mkfloat(line, &f, 1)) {
+ show_msg(N_txt(BAD_integers_txt));
+ return GET_NUM_BAD;
+ }
+ return (int)f;
+} // end: get_int
+
+
+ /*
+ * Make a hex value, and maybe suppress zeroes. */
+static inline const char *hex_make (long num, int noz) {
+ static char buf[SMLBUFSIZ];
+ int i;
+
+#ifdef CASEUP_HEXES
+ snprintf(buf, sizeof(buf), "%08lX", num);
+#else
+ snprintf(buf, sizeof(buf), "%08lx", num);
+#endif
+ if (noz)
+ for (i = 0; buf[i]; i++)
+ if ('0' == buf[i])
+ buf[i] = '.';
+ return buf;
+} // end: hex_make
+
+
+ /*
+ * Validate the passed string as a user name or number,
+ * and/or update the window's 'u/U' selection stuff. */
+static const char *user_certify (WIN_t *q, const char *str, char typ) {
+ struct passwd *pwd;
+ char *endp;
+ uid_t num;
+
+ Monpidsidx = 0;
+ q->usrseltyp = 0;
+ q->usrselflg = 1;
+ if (*str) {
+ if ('!' == *str) { ++str; q->usrselflg = 0; }
+ num = (uid_t)strtoul(str, &endp, 0);
+ if ('\0' == *endp) {
+ pwd = getpwuid(num);
+ if (!pwd) {
+ /* allow foreign users, from e.g within chroot
+ ( thanks Dr. Werner Fink <werner@suse.de> ) */
+ q->usrseluid = num;
+ q->usrseltyp = typ;
+ return NULL;
+ }
+ } else
+ pwd = getpwnam(str);
+ if (!pwd) return N_txt(BAD_username_txt);
+ q->usrseluid = pwd->pw_uid;
+ q->usrseltyp = typ;
+ }
+ return NULL;
+} // end: user_certify
+
+/*###### Basic Formatting support ######################################*/
+
+ /*
+ * Just do some justify stuff, then add post column padding. */
+static inline const char *justify_pad (const char *str, int width, int justr) {
+ static char l_fmt[] = "%-*.*s%s", r_fmt[] = "%*.*s%s";
+ static char buf[SCREENMAX];
+
+ snprintf(buf, sizeof(buf), justr ? r_fmt : l_fmt, width, width, str, COLPADSTR);
+ return buf;
+} // end: justify_pad
+
+
+ /*
+ * Make and then justify a single character. */
+static inline const char *make_chr (const char ch, int width, int justr) {
+ static char buf[SMLBUFSIZ];
+
+ snprintf(buf, sizeof(buf), "%c", ch);
+ return justify_pad(buf, width, justr);
+} // end: make_chr
+
+
+ /*
+ * Make and then justify an integer NOT subject to scaling,
+ * and include a visual clue should tuncation be necessary. */
+static inline const char *make_num (long num, int width, int justr, int col, int noz) {
+ static char buf[SMLBUFSIZ];
+
+ buf[0] = '\0';
+ if (noz && Rc.zero_suppress && 0 == num)
+ goto end_justifies;
+
+ if (width < snprintf(buf, sizeof(buf), "%ld", num)) {
+ if (width <= 0 || (size_t)width >= sizeof(buf))
+ width = sizeof(buf)-1;
+ buf[width-1] = COLPLUSCH;
+ buf[width] = '\0';
+ AUTOX_COL(col);
+ }
+end_justifies:
+ return justify_pad(buf, width, justr);
+} // end: make_num
+
+
+ /*
+ * Make and then justify a character string,
+ * and include a visual clue should tuncation be necessary. */
+static inline const char *make_str (const char *str, int width, int justr, int col) {
+ static char buf[SCREENMAX];
+
+ if (width < snprintf(buf, sizeof(buf), "%s", str)) {
+ if (width <= 0 || (size_t)width >= sizeof(buf))
+ width = sizeof(buf)-1;
+ buf[width-1] = COLPLUSCH;
+ buf[width] = '\0';
+ AUTOX_COL(col);
+ }
+ return justify_pad(buf, width, justr);
+} // end: make_str
+
+
+ /*
+ * Make and then justify a potentially multi-byte character string,
+ * and include a visual clue should tuncation be necessary. */
+static inline const char *make_str_utf8 (const char *str, int width, int justr, int col) {
+ static char buf[SCREENMAX];
+ int delta = utf8_delta(str);
+
+ if (width + delta < snprintf(buf, sizeof(buf), "%s", str)) {
+ snprintf(buf, sizeof(buf), "%.*s%c", utf8_embody(str, width-1), str, COLPLUSCH);
+ delta = utf8_delta(buf);
+ AUTOX_COL(col);
+ }
+ return justify_pad(buf, width + delta, justr);
+} // end: make_str_utf8
+
+
+ /*
+ * Do some scaling then justify stuff.
+ * We'll interpret 'num' as a kibibytes quantity and try to
+ * format it to reach 'target' while also fitting 'width'. */
+static const char *scale_mem (int target, float num, int width, int justr) {
+ // SK_Kb SK_Mb SK_Gb SK_Tb SK_Pb SK_Eb
+#ifdef BOOST_MEMORY
+ static const char *fmttab[] = { "%.0f", "%#.1f%c", "%#.3f%c", "%#.3f%c", "%#.3f%c", NULL };
+#else
+ static const char *fmttab[] = { "%.0f", "%.1f%c", "%.1f%c", "%.1f%c", "%.1f%c", NULL };
+#endif
+ static char buf[SMLBUFSIZ];
+ char *psfx;
+ int i;
+
+ buf[0] = '\0';
+ if (Rc.zero_suppress && 0 >= num)
+ goto end_justifies;
+
+ for (i = SK_Kb, psfx = Scaled_sfxtab; i < SK_Eb; psfx++, i++) {
+ if (i >= target
+ && (width >= snprintf(buf, sizeof(buf), fmttab[i], num, *psfx)))
+ goto end_justifies;
+ num /= 1024.0;
+ }
+
+ // well shoot, this outta' fit...
+ snprintf(buf, sizeof(buf), "?");
+end_justifies:
+ return justify_pad(buf, width, justr);
+} // end: scale_mem
+
+
+ /*
+ * Do some scaling then justify stuff. */
+static const char *scale_num (float num, int width, int justr) {
+ static char buf[SMLBUFSIZ];
+ char *psfx;
+
+ buf[0] = '\0';
+ if (Rc.zero_suppress && 0 >= num)
+ goto end_justifies;
+ if (width >= snprintf(buf, sizeof(buf), "%.0f", num))
+ goto end_justifies;
+
+ for (psfx = Scaled_sfxtab; 0 < *psfx; psfx++) {
+ num /= 1024.0;
+ if (width >= snprintf(buf, sizeof(buf), "%.1f%c", num, *psfx))
+ goto end_justifies;
+ if (width >= snprintf(buf, sizeof(buf), "%.0f%c", num, *psfx))
+ goto end_justifies;
+ }
+
+ // well shoot, this outta' fit...
+ snprintf(buf, sizeof(buf), "?");
+end_justifies:
+ return justify_pad(buf, width, justr);
+} // end: scale_num
+
+
+ /*
+ * Make and then justify a percentage, with decreasing precision. */
+static const char *scale_pcnt (float num, int width, int justr, int xtra) {
+ static char buf[SMLBUFSIZ];
+
+ buf[0] = '\0';
+ if (Rc.zero_suppress && 0 >= num)
+ goto end_justifies;
+ if (xtra) {
+ if (width >= snprintf(buf, sizeof(buf), "%#.3f", num))
+ goto end_justifies;
+ if (width >= snprintf(buf, sizeof(buf), "%#.2f", num))
+ goto end_justifies;
+ goto carry_on;
+ }
+#ifdef BOOST_PERCNT
+ if (width >= snprintf(buf, sizeof(buf), "%#.3f", num))
+ goto end_justifies;
+ if (width >= snprintf(buf, sizeof(buf), "%#.2f", num))
+ goto end_justifies;
+ (void)xtra;
+#endif
+carry_on:
+ if (width >= snprintf(buf, sizeof(buf), "%#.1f", num))
+ goto end_justifies;
+ if (width >= snprintf(buf, sizeof(buf), "%*.0f", width, num))
+ goto end_justifies;
+
+ // well shoot, this outta' fit...
+ snprintf(buf, sizeof(buf), "?");
+end_justifies:
+ return justify_pad(buf, width, justr);
+} // end: scale_pcnt
+
+
+#define TICS_AS_SECS 0
+#define TICS_AS_MINS 1
+#define TICS_AS_HOUR 2
+#define TICS_AS_DAY1 3
+#define TICS_AS_DAY2 4
+#define TICS_AS_WEEK 5
+#define TICS_AS_LAST 6
+
+ /*
+ * Do some scaling stuff.
+ * Try to format 'tics' to reach 'target' while also
+ * fitting in 'width', then justify it. */
+static const char *scale_tics (TIC_t tics, int width, int justr, int target) {
+#ifdef CASEUP_SUFIX
+ #define HH "%luH" // nls_maybe
+ #define DD "%luD"
+ #define WW "%luW"
+#else
+ #define HH "%luh" // nls_maybe
+ #define DD "%lud"
+ #define WW "%luw"
+#endif
+ static char buf[SMLBUFSIZ];
+ TIC_t nt; // for speed on 64-bit
+#ifdef SCALE_FORMER
+ unsigned long cc; // centiseconds
+ unsigned long nn; // multi-purpose whatever
+#else
+ unsigned long cent, secs, mins, hour, days, week;
+#endif
+
+ buf[0] = '\0';
+ nt = (tics * 100ull) / Hertz; // lots of room for any time
+ if (Rc.zero_suppress && 0 >= nt)
+ goto end_justifies;
+
+#ifdef SCALE_FORMER
+ cc = nt % 100; // centiseconds past second
+ nt /= 100; // total seconds
+ nn = nt % 60; // seconds past the minute
+ nt /= 60; // total minutes
+ if (target < TICS_AS_MINS
+ && (width >= snprintf(buf, sizeof(buf), "%llu:%02lu.%02lu", nt, nn, cc)))
+ goto end_justifies;
+ if (target < TICS_AS_HOUR
+ && (width >= snprintf(buf, sizeof(buf), "%llu:%02lu", nt, nn)))
+ goto end_justifies;
+ nn = nt % 60; // minutes past the hour
+ nt /= 60; // total hours
+ if (width >= snprintf(buf, sizeof(buf), "%llu,%02lu", nt, nn))
+ goto end_justifies;
+ nn = nt; // now also hours
+ if (width >= snprintf(buf, sizeof(buf), HH, nn))
+ goto end_justifies;
+ nn /= 24; // now days
+ if (width >= snprintf(buf, sizeof(buf), DD, nn))
+ goto end_justifies;
+ nn /= 7; // now weeks
+ if (width >= snprintf(buf, sizeof(buf), WW, nn))
+ goto end_justifies;
+#else
+ #define mmLIMIT 360 // arbitrary 6 hours
+ #define hhLIMIT 96 // arbitrary 4 days
+ #define ddLIMIT 14 // arbitrary 2 weeks
+
+ cent = (nt % 100); // cent past secs
+ secs = (nt /= 100); // total secs
+ mins = (nt /= 60); // total mins
+ hour = (nt /= 60); // total hour
+ days = (nt /= 24); // total days
+ week = (nt / 7); // total week
+
+ if (Rc.tics_scaled > target)
+ target += Rc.tics_scaled - target;
+
+ switch (target) {
+ case TICS_AS_SECS:
+ if (mins < mmLIMIT + 1) {
+ if (width >= snprintf(buf, sizeof(buf), "%lu:%02lu.%02lu", mins, secs % 60, cent))
+ goto end_justifies;
+ }
+ case TICS_AS_MINS: // fall through
+ if (mins < mmLIMIT + 1) {
+ if (width >= snprintf(buf, sizeof(buf), "%lu:%02lu", mins, secs % 60))
+ goto end_justifies;
+ }
+ case TICS_AS_HOUR: // fall through
+ if (hour < hhLIMIT + 1) {
+ if (width >= snprintf(buf, sizeof(buf), "%lu,%02lu", hour, mins % 60))
+ goto end_justifies;
+ }
+ case TICS_AS_DAY1: // fall through
+ if (days < ddLIMIT + 1) {
+ if (width >= snprintf(buf, sizeof(buf), DD "+" HH, days, hour % 24))
+ goto end_justifies;
+#ifdef SCALE_POSTFX
+ if (width >= snprintf(buf, sizeof(buf), DD "+%lu", days, hour % 24))
+ goto end_justifies;
+#endif
+ case TICS_AS_DAY2: // fall through
+ if (width >= snprintf(buf, sizeof(buf), DD, days))
+ goto end_justifies;
+ }
+ case TICS_AS_WEEK: // fall through
+ if (width >= snprintf(buf, sizeof(buf), WW "+" DD, week, days % 7))
+ goto end_justifies;
+#ifdef SCALE_POSTFX
+ if (width >= snprintf(buf, sizeof(buf), WW "+%lu", week, days % 7))
+ goto end_justifies;
+#endif
+ case TICS_AS_LAST: // fall through
+ if (width >= snprintf(buf, sizeof(buf), WW, week))
+ goto end_justifies;
+ default: // fall through
+ break;
+ }
+ #undef mmLIMIT
+ #undef hhLIMIT
+ #undef ddLIMIT
+#endif
+
+ // well shoot, this outta' fit...
+ snprintf(buf, sizeof(buf), "?");
+
+end_justifies:
+ return justify_pad(buf, width, justr);
+ #undef HH
+ #undef DD
+ #undef WW
+} // end: scale_tics
+
+/*###### Fields Management support #####################################*/
+
+ /* These are our gosh darn 'Fields' !
+ They MUST be kept in sync with pflags !! */
+static struct {
+ int width; // field width, if applicable
+ int scale; // scaled target, if applicable
+ const int align; // the default column alignment flag
+ enum pids_item item; // the new libproc item enum identifier
+} Fieldstab[] = {
+ // these identifiers reflect the default column alignment but they really
+ // contain the WIN_t flag used to check/change justification at run-time!
+ #define A_left Show_JRSTRS /* toggled with lower case 'j' */
+ #define A_right Show_JRNUMS /* toggled with upper case 'J' */
+
+/* .width anomalies:
+ a -1 width represents variable width columns
+ a 0 width represents columns set once at startup (see zap_fieldstab)
+
+ .width .scale .align .item
+ ------ ------ -------- ------------------- */
+ { 0, -1, A_right, PIDS_ID_PID }, // s_int EU_PID
+ { 0, -1, A_right, PIDS_ID_PPID }, // s_int EU_PPD
+ { 5, -1, A_right, PIDS_ID_EUID }, // u_int EU_UED
+ { 8, -1, A_left, PIDS_ID_EUSER }, // str EU_UEN
+ { 5, -1, A_right, PIDS_ID_RUID }, // u_int EU_URD
+ { 8, -1, A_left, PIDS_ID_RUSER }, // str EU_URN
+ { 5, -1, A_right, PIDS_ID_SUID }, // u_int EU_USD
+ { 8, -1, A_left, PIDS_ID_SUSER }, // str EU_USN
+ { 5, -1, A_right, PIDS_ID_EGID }, // u_int EU_GID
+ { 8, -1, A_left, PIDS_ID_EGROUP }, // str EU_GRP
+ { 0, -1, A_right, PIDS_ID_PGRP }, // s_int EU_PGD
+ { 8, -1, A_left, PIDS_TTY_NAME }, // str EU_TTY
+ { 0, -1, A_right, PIDS_ID_TPGID }, // s_int EU_TPG
+ { 0, -1, A_right, PIDS_ID_SESSION }, // s_int EU_SID
+ { 3, -1, A_right, PIDS_PRIORITY }, // s_int EU_PRI
+ { 3, -1, A_right, PIDS_NICE }, // s_int EU_NCE
+ { 3, -1, A_right, PIDS_NLWP }, // s_int EU_THD
+ { 0, -1, A_right, PIDS_PROCESSOR }, // s_int EU_CPN
+ { 5, -1, A_right, PIDS_TICS_ALL_DELTA }, // u_int EU_CPU
+ { 6, -1, A_right, PIDS_TICS_ALL }, // ull_int EU_TME
+ { 9, -1, A_right, PIDS_TICS_ALL }, // ull_int EU_TM2
+ { 5, -1, A_right, PIDS_MEM_RES }, // ul_int EU_MEM
+ { 7, SK_Kb, A_right, PIDS_MEM_VIRT }, // ul_int EU_VRT
+ { 6, SK_Kb, A_right, PIDS_VM_SWAP }, // ul_int EU_SWP
+ { 6, SK_Kb, A_right, PIDS_MEM_RES }, // ul_int EU_RES
+ { 6, SK_Kb, A_right, PIDS_MEM_CODE }, // ul_int EU_COD
+ { 7, SK_Kb, A_right, PIDS_MEM_DATA }, // ul_int EU_DAT
+ { 6, SK_Kb, A_right, PIDS_MEM_SHR }, // ul_int EU_SHR
+ { 4, -1, A_right, PIDS_FLT_MAJ }, // ul_int EU_FL1
+ { 4, -1, A_right, PIDS_FLT_MIN }, // ul_int EU_FL2
+ { 4, -1, A_right, PIDS_noop }, // ul_int EU_DRT ( always 0 w/ since 2.6 )
+ { 1, -1, A_right, PIDS_STATE }, // s_ch EU_STA
+ { -1, -1, A_left, PIDS_CMD }, // str EU_CMD
+ { 10, -1, A_left, PIDS_WCHAN_NAME }, // str EU_WCH
+ { 8, -1, A_left, PIDS_FLAGS }, // ul_int EU_FLG
+ { -1, -1, A_left, PIDS_CGROUP }, // str EU_CGR
+ { -1, -1, A_left, PIDS_SUPGIDS }, // str EU_SGD
+ { -1, -1, A_left, PIDS_SUPGROUPS }, // str EU_SGN
+ { 0, -1, A_right, PIDS_ID_TGID }, // s_int EU_TGD
+ { 5, -1, A_right, PIDS_OOM_ADJ }, // s_int EU_OOA
+ { 4, -1, A_right, PIDS_OOM_SCORE }, // s_int EU_OOM
+ { -1, -1, A_left, PIDS_ENVIRON }, // str EU_ENV
+ { 3, -1, A_right, PIDS_FLT_MAJ_DELTA }, // s_int EU_FV1
+ { 3, -1, A_right, PIDS_FLT_MIN_DELTA }, // s_int EU_FV2
+ { 6, SK_Kb, A_right, PIDS_VM_USED }, // ul_int EU_USE
+ { 10, -1, A_right, PIDS_NS_IPC }, // ul_int EU_NS1
+ { 10, -1, A_right, PIDS_NS_MNT }, // ul_int EU_NS2
+ { 10, -1, A_right, PIDS_NS_NET }, // ul_int EU_NS3
+ { 10, -1, A_right, PIDS_NS_PID }, // ul_int EU_NS4
+ { 10, -1, A_right, PIDS_NS_USER }, // ul_int EU_NS5
+ { 10, -1, A_right, PIDS_NS_UTS }, // ul_int EU_NS6
+ { 8, -1, A_left, PIDS_LXCNAME }, // str EU_LXC
+ { 6, SK_Kb, A_right, PIDS_VM_RSS_ANON }, // ul_int EU_RZA
+ { 6, SK_Kb, A_right, PIDS_VM_RSS_FILE }, // ul_int EU_RZF
+ { 6, SK_Kb, A_right, PIDS_VM_RSS_LOCKED }, // ul_int EU_RZL
+ { 6, SK_Kb, A_right, PIDS_VM_RSS_SHARED }, // ul_int EU_RZS
+ { -1, -1, A_left, PIDS_CGNAME }, // str EU_CGN
+ { 0, -1, A_right, PIDS_PROCESSOR_NODE }, // s_int EU_NMA
+ { 5, -1, A_right, PIDS_ID_LOGIN }, // s_int EU_LID
+ { -1, -1, A_left, PIDS_EXE }, // str EU_EXE
+ { 6, SK_Kb, A_right, PIDS_SMAP_RSS }, // ul_int EU_RSS
+ { 6, SK_Kb, A_right, PIDS_SMAP_PSS }, // ul_int EU_PSS
+ { 6, SK_Kb, A_right, PIDS_SMAP_PSS_ANON }, // ul_int EU_PZA
+ { 6, SK_Kb, A_right, PIDS_SMAP_PSS_FILE }, // ul_int EU_PZF
+ { 6, SK_Kb, A_right, PIDS_SMAP_PSS_SHMEM }, // ul_int EU_PZS
+ { 6, SK_Kb, A_right, PIDS_SMAP_PRV_TOTAL }, // ul_int EU_USS
+ { 6, -1, A_right, PIDS_IO_READ_BYTES }, // ul_int EU_IRB
+ { 5, -1, A_right, PIDS_IO_READ_OPS }, // ul_int EU_IRO
+ { 6, -1, A_right, PIDS_IO_WRITE_BYTES }, // ul_int EU_IWB
+ { 5, -1, A_right, PIDS_IO_WRITE_OPS }, // ul_int EU_IWO
+ { 5, -1, A_right, PIDS_AUTOGRP_ID }, // s_int EU_AGI
+ { 4, -1, A_right, PIDS_AUTOGRP_NICE }, // s_int EU_AGN
+ { 7, -1, A_right, PIDS_TICS_BEGAN }, // ull_int EU_TM3
+ { 7, -1, A_right, PIDS_TIME_ELAPSED }, // real EU_TM4
+ { 6, -1, A_right, PIDS_UTILIZATION }, // real EU_CUU
+ { 7, -1, A_right, PIDS_UTILIZATION_C }, // real EU_CUC
+ { 10, -1, A_right, PIDS_NS_CGROUP }, // ul_int EU_NS7
+ { 10, -1, A_right, PIDS_NS_TIME } // ul_int EU_NS8
+#define eu_LAST EU_NS8
+// xtra Fieldstab 'pseudo pflag' entries for the newlib interface . . . . . . .
+#define eu_CMDLINE eu_LAST +1
+#define eu_TICS_ALL_C eu_LAST +2
+#define eu_ID_FUID eu_LAST +3
+#define eu_CMDLINE_V eu_LAST +4
+#define eu_ENVIRON_V eu_LAST +5
+#define eu_TREE_HID eu_LAST +6
+#define eu_TREE_LVL eu_LAST +7
+#define eu_TREE_ADD eu_LAST +8
+#define eu_RESET eu_TREE_HID // demarcation for reset to zero (PIDS_extra)
+ , { -1, -1, -1, PIDS_CMDLINE } // str ( if Show_CMDLIN, eu_CMDLINE )
+ , { -1, -1, -1, PIDS_TICS_ALL_C } // ull_int ( if Show_CTIMES, eu_TICS_ALL_C )
+ , { -1, -1, -1, PIDS_ID_FUID } // u_int ( if a usrseltyp, eu_ID_FUID )
+ , { -1, -1, -1, PIDS_CMDLINE_V } // strv ( if Ctrlk, eu_CMDLINE_V )
+ , { -1, -1, -1, PIDS_ENVIRON_V } // strv ( if CtrlN, eu_ENVIRON_V )
+ , { -1, -1, -1, PIDS_extra } // s_ch ( if Show_FOREST, eu_TREE_HID )
+ , { -1, -1, -1, PIDS_extra } // s_int ( if Show_FOREST, eu_TREE_LVL )
+ , { -1, -1, -1, PIDS_extra } // s_int ( if Show_FOREST, eu_TREE_ADD )
+ #undef A_left
+ #undef A_right
+};
+
+
+ /*
+ * A calibrate_fields() *Helper* function which refreshes
+ * all that cached screen geometry plus related variables */
+static void adj_geometry (void) {
+ static size_t pseudo_max = 0;
+ static int w_set = 0, w_cols = 0, w_rows = 0;
+ struct winsize wz;
+
+ Screen_cols = columns; // <term.h>
+ Screen_rows = lines; // <term.h>
+
+ if (-1 != ioctl(STDOUT_FILENO, TIOCGWINSZ, &wz)
+ && 0 < wz.ws_col && 0 < wz.ws_row) {
+ Screen_cols = wz.ws_col;
+ Screen_rows = wz.ws_row;
+ }
+
+#ifndef RMAN_IGNORED
+ // be crudely tolerant of crude tty emulators
+ if (Cap_avoid_eol) Screen_cols--;
+#endif
+
+ // we might disappoint some folks (but they'll deserve it)
+ if (Screen_cols > SCREENMAX) Screen_cols = SCREENMAX;
+ if (Screen_cols < W_MIN_COL) Screen_cols = W_MIN_COL;
+
+ if (!w_set) {
+ if (Width_mode > 0) // -w with arg, we'll try to honor
+ w_cols = Width_mode;
+ else
+ if (Width_mode < 0) { // -w without arg, try environment
+ char *env_columns = getenv("COLUMNS"),
+ *env_lines = getenv("LINES"),
+ *ep;
+ if (env_columns && *env_columns) {
+ long t, tc = 0;
+ t = strtol(env_columns, &ep, 0);
+ if (!*ep && (t > 0) && (t <= 0x7fffffffL)) tc = t;
+ if (0 < tc) w_cols = (int)tc;
+ }
+ if (env_lines && *env_lines) {
+ long t, tr = 0;
+ t = strtol(env_lines, &ep, 0);
+ if (!*ep && (t > 0) && (t <= 0x7fffffffL)) tr = t;
+ if (0 < tr) w_rows = (int)tr;
+ }
+ if (!w_cols) w_cols = SCREENMAX;
+ if (w_cols && w_cols < W_MIN_COL) w_cols = W_MIN_COL;
+ if (w_rows && w_rows < W_MIN_ROW) w_rows = W_MIN_ROW;
+ }
+ if (w_cols > SCREENMAX) w_cols = SCREENMAX;
+ w_set = 1;
+ }
+
+ /* keep our support for output optimization in sync with current reality
+ note: when we're in Batch mode, we don't really need a Pseudo_screen
+ and when not Batch, our buffer will contain 1 extra 'line' since
+ Msg_row is never represented -- but it's nice to have some space
+ between us and the great-beyond... */
+ if (Batch) {
+ if (w_cols) Screen_cols = w_cols;
+ Screen_rows = w_rows ? w_rows : INT_MAX;
+ Pseudo_size = (sizeof(*Pseudo_screen) * ROWMAXSIZ);
+ } else {
+ const int max_rows = INT_MAX / (sizeof(*Pseudo_screen) * ROWMAXSIZ);
+ if (w_cols && w_cols < Screen_cols) Screen_cols = w_cols;
+ if (w_rows && w_rows < Screen_rows) Screen_rows = w_rows;
+ if (Screen_rows < 0 || Screen_rows > max_rows) Screen_rows = max_rows;
+ Pseudo_size = (sizeof(*Pseudo_screen) * ROWMAXSIZ) * Screen_rows;
+ }
+ // we'll only grow our Pseudo_screen, never shrink it
+ if (pseudo_max < Pseudo_size) {
+ pseudo_max = Pseudo_size;
+ Pseudo_screen = alloc_r(Pseudo_screen, pseudo_max);
+ }
+ // ensure each row is repainted (just in case)
+ PSU_CLREOS(0);
+
+ // prepare to customize potential cpu/memory graphs
+ if (Curwin->rc.double_up) {
+ int num = (Curwin->rc.double_up + 1);
+ int pfx = (Curwin->rc.double_up < 2) ? GRAPH_prefix_std : GRAPH_prefix_abv;
+
+ Graph_cpus->length = (Screen_cols - (ADJOIN_space * Curwin->rc.double_up) - (num * (pfx + GRAPH_suffix))) / num;
+ if (Graph_cpus->length > GRAPH_length_max) Graph_cpus->length = GRAPH_length_max;
+ if (Graph_cpus->length < GRAPH_length_min) Graph_cpus->length = GRAPH_length_min;
+
+#ifdef TOG4_MEM_1UP
+ Graph_mems->length = (Screen_cols - (GRAPH_prefix_std + GRAPH_suffix));
+#else
+ Graph_mems->length = (Screen_cols - ADJOIN_space - (2 * (pfx + GRAPH_suffix))) / 2;
+#endif
+ if (Graph_mems->length > GRAPH_length_max) Graph_mems->length = GRAPH_length_max;
+ if (Graph_mems->length < GRAPH_length_min) Graph_mems->length = GRAPH_length_min;
+
+#if !defined(TOG4_MEM_FIX) && !defined(TOG4_MEM_1UP)
+ if (num > 2) {
+ #define cpuGRAPH ( GRAPH_prefix_abv + Graph_cpus->length + GRAPH_suffix )
+ #define nxtGRAPH ( cpuGRAPH + ADJOIN_space )
+ int len = cpuGRAPH;
+ for (;;) {
+ if (len + nxtGRAPH > GRAPH_length_max) break;
+ len += nxtGRAPH;
+ }
+ len -= (GRAPH_prefix_abv + ADJOIN_space);
+ Graph_mems->length = len;
+ #undef cpuGRAPH
+ #undef nxtGRAPH
+ }
+#endif
+ } else {
+ Graph_cpus->length = Screen_cols - (GRAPH_prefix_std + GRAPH_length_max + GRAPH_suffix);
+ if (Graph_cpus->length >= 0) Graph_cpus->length = GRAPH_length_max;
+ else Graph_cpus->length = Screen_cols - GRAPH_prefix_std - GRAPH_suffix;
+ if (Graph_cpus->length < GRAPH_length_min) Graph_cpus->length = GRAPH_length_min;
+#ifdef TOG4_MEM_1UP
+ Graph_mems->length = (Screen_cols - (GRAPH_prefix_std + GRAPH_suffix));
+ if (Graph_mems->length > GRAPH_length_max) Graph_mems->length = GRAPH_length_max;
+ if (Graph_mems->length < GRAPH_length_min) Graph_mems->length = GRAPH_length_min;
+#else
+ Graph_mems->length = Graph_cpus->length;
+#endif
+ }
+ Graph_cpus->adjust = (float)Graph_cpus->length / 100.0;
+ Graph_cpus->style = Curwin->rc.graph_cpus;
+
+ Graph_mems->adjust = (float)Graph_mems->length / 100.0;
+ Graph_mems->style = Curwin->rc.graph_mems;
+
+ fflush(stdout);
+ Frames_signal = BREAK_off;
+} // end: adj_geometry
+
+
+ /*
+ * A calibrate_fields() *Helper* function to build the actual
+ * column headers & ensure necessary item enumerators support */
+static void build_headers (void) {
+ #define ckITEM(f) do { Pids_itms[f] = Fieldstab[f].item; } while (0)
+ #define ckCMDS(w) do { if (CHKw(w, Show_CMDLIN)) ckITEM(eu_CMDLINE); } while (0)
+ FLG_t f;
+ char *s;
+ WIN_t *w = Curwin;
+#ifdef EQUCOLHDRYES
+ int x, hdrmax = 0;
+#endif
+ int i;
+
+ // ensure fields not visible incur no significant library costs
+ for (i = 0; i < eu_RESET; i++)
+ Pids_itms[i] = PIDS_noop;
+ for ( ; i < MAXTBL(Fieldstab); i++)
+ Pids_itms[i] = PIDS_extra;
+
+ ckITEM(EU_PID); // these 2 fields may not display,
+ ckITEM(EU_STA); // yet we'll always need them both
+ ckITEM(EU_CMD); // this is used with 'Y' (inspect)
+
+ do {
+ if (VIZISw(w)) {
+ memset((s = w->columnhdr), 0, sizeof(w->columnhdr));
+ if (Rc.mode_altscr) s = scat(s, fmtmk("%d", w->winnum));
+
+ for (i = 0; i < w->maxpflgs; i++) {
+ f = w->procflgs[i];
+#ifdef USE_X_COLHDR
+ if (CHKw(w, Show_HICOLS) && f == w->rc.sortindx) {
+ s = scat(s, fmtmk("%s%s", Caps_off, w->capclr_msg));
+ w->hdrcaplen += strlen(Caps_off) + strlen(w->capclr_msg);
+ }
+#else
+ if (EU_MAXPFLGS <= f) continue;
+#endif
+ ckITEM(f);
+ switch (f) {
+ case EU_CMD:
+ ckCMDS(w);
+ break;
+ case EU_CPU:
+ // cpu calculations depend on number of threads
+ ckITEM(EU_THD);
+ break;
+ case EU_TME:
+ case EU_TM2:
+ // for 'cumulative' times, we'll need equivalent of cutime & cstime
+ if (CHKw(w, Show_CTIMES)) ckITEM(eu_TICS_ALL_C);
+ break;
+ default:
+ break;
+ }
+ s = scat(s, utf8_justify(N_col(f)
+ , VARcol(f) ? w->varcolsz : Fieldstab[f].width
+ , CHKw(w, Fieldstab[f].align)));
+#ifdef USE_X_COLHDR
+ if (CHKw(w, Show_HICOLS) && f == w->rc.sortindx) {
+ s = scat(s, fmtmk("%s%s", Caps_off, w->capclr_hdr));
+ w->hdrcaplen += strlen(Caps_off) + strlen(w->capclr_hdr);
+ }
+#endif
+ }
+#ifdef EQUCOLHDRYES
+ // prepare to even out column header lengths...
+ if (hdrmax + w->hdrcaplen < (x = strlen(w->columnhdr))) hdrmax = x - w->hdrcaplen;
+#endif
+ // for 'busy' only processes, we'll need elapsed tics
+ if (!CHKw(w, Show_IDLEPS)) ckITEM(EU_CPU);
+ // with forest view mode, we'll need pid, tgid, ppid & start_time...
+#ifndef TREE_VCPUOFF
+ if (CHKw(w, Show_FOREST)) { ckITEM(EU_PPD); ckITEM(EU_TGD); ckITEM(EU_TM3); ckITEM(eu_TREE_HID); ckITEM(eu_TREE_LVL); ckITEM(eu_TREE_ADD); }
+#else
+ if (CHKw(w, Show_FOREST)) { ckITEM(EU_PPD); ckITEM(EU_TGD); ckITEM(EU_TM3); ckITEM(eu_TREE_HID); ckITEM(eu_TREE_LVL); }
+#endif
+ // for 'u/U' filtering we need these too (old top forgot that, oops)
+ if (w->usrseltyp) { ckITEM(EU_UED); ckITEM(EU_URD); ckITEM(EU_USD); ckITEM(eu_ID_FUID); }
+
+ // we must also accommodate an out of view sort field...
+ f = w->rc.sortindx;
+ if (EU_CMD == f) ckCMDS(w);
+ else ckITEM(f);
+
+ // lastly, accommodate any special non-display 'tagged' needs...
+ i = 0;
+ while (Bot_item[i] > BOT_DELIMIT) {
+ ckITEM(Bot_item[i]);
+ ++i;
+ }
+ } // end: VIZISw(w)
+
+ if (Rc.mode_altscr) w = w->next;
+ } while (w != Curwin);
+
+#ifdef EQUCOLHDRYES
+ /* now we can finally even out column header lengths
+ (we're assuming entire columnhdr was memset to '\0') */
+ if (Rc.mode_altscr && SCREENMAX > Screen_cols)
+ for (i = 0; i < GROUPSMAX; i++) {
+ w = &Winstk[i];
+ if (CHKw(w, Show_TASKON))
+ if (hdrmax + w->hdrcaplen > (x = strlen(w->columnhdr)))
+ memset(&w->columnhdr[x], ' ', hdrmax + w->hdrcaplen - x);
+ }
+#endif
+
+ #undef ckITEM
+ #undef ckCMDS
+} // end: build_headers
+
+
+ /*
+ * This guy coordinates the activities surrounding the maintenance of
+ * each visible window's columns headers plus item enumerators needed */
+static void calibrate_fields (void) {
+ FLG_t f;
+ char *s;
+ const char *h;
+ WIN_t *w = Curwin;
+ int i, varcolcnt, len, rc;
+
+ adj_geometry();
+
+ do {
+ if (VIZISw(w)) {
+ w->hdrcaplen = 0; // really only used with USE_X_COLHDR
+ // build window's pflgsall array, establish upper bounds for maxpflgs
+ for (i = 0, w->totpflgs = 0; i < EU_MAXPFLGS; i++) {
+ if (FLDviz(w, i)) {
+ f = FLDget(w, i);
+#ifdef USE_X_COLHDR
+ w->pflgsall[w->totpflgs++] = f;
+#else
+ if (CHKw(w, Show_HICOLS) && f == w->rc.sortindx) {
+ w->pflgsall[w->totpflgs++] = EU_XON;
+ w->pflgsall[w->totpflgs++] = f;
+ w->pflgsall[w->totpflgs++] = EU_XOF;
+ } else
+ w->pflgsall[w->totpflgs++] = f;
+#endif
+ }
+ }
+ if (!w->totpflgs) w->pflgsall[w->totpflgs++] = EU_PID;
+
+ /* build a preliminary columns header not to exceed screen width
+ while accounting for a possible leading window number */
+ w->varcolsz = varcolcnt = 0;
+ *(s = w->columnhdr) = '\0';
+ if (Rc.mode_altscr) s = scat(s, " ");
+ for (i = 0; i + w->begpflg < w->totpflgs; i++) {
+ f = w->pflgsall[i + w->begpflg];
+ w->procflgs[i] = f;
+#ifndef USE_X_COLHDR
+ if (EU_MAXPFLGS <= f) continue;
+#endif
+ h = N_col(f);
+ len = (VARcol(f) ? (int)strlen(h) : Fieldstab[f].width) + COLPADSIZ;
+ // oops, won't fit -- we're outta here...
+ if (Screen_cols < ((int)(s - w->columnhdr) + len)) break;
+ if (VARcol(f)) { ++varcolcnt; w->varcolsz += strlen(h); }
+ s = scat(s, fmtmk("%*.*s", len, len, h));
+ }
+#ifndef USE_X_COLHDR
+ if (i >= 1 && EU_XON == w->procflgs[i - 1]) --i;
+#endif
+
+ /* establish the final maxpflgs and prepare to grow the variable column
+ heading(s) via varcolsz - it may be a fib if their pflags weren't
+ encountered, but that's ok because they won't be displayed anyway */
+ w->maxpflgs = i;
+ w->varcolsz += Screen_cols - strlen(w->columnhdr);
+ if (varcolcnt) w->varcolsz /= varcolcnt;
+
+ /* establish the field where all remaining fields would still
+ fit within screen width, including a leading window number */
+ *(s = w->columnhdr) = '\0';
+ if (Rc.mode_altscr) s = scat(s, " ");
+ w->endpflg = 0;
+ for (i = w->totpflgs - 1; -1 < i; i--) {
+ f = w->pflgsall[i];
+#ifndef USE_X_COLHDR
+ if (EU_MAXPFLGS <= f) { w->endpflg = i; continue; }
+#endif
+ h = N_col(f);
+ len = (VARcol(f) ? (int)strlen(h) : Fieldstab[f].width) + COLPADSIZ;
+ if (Screen_cols < ((int)(s - w->columnhdr) + len)) break;
+ s = scat(s, fmtmk("%*.*s", len, len, h));
+ w->endpflg = i;
+ }
+#ifndef USE_X_COLHDR
+ if (EU_XOF == w->pflgsall[w->endpflg]) ++w->endpflg;
+#endif
+ } // end: if (VIZISw(w))
+
+ if (Rc.mode_altscr) w = w->next;
+ } while (w != Curwin);
+
+ build_headers();
+
+ if ((rc = procps_pids_reset(Pids_ctx, Pids_itms, Pids_itms_tot)))
+ error_exit(fmtmk(N_fmt(LIB_errorpid_fmt), __LINE__, strerror(-rc)));
+} // end: calibrate_fields
+
+
+ /*
+ * Display each field represented in the current window's fieldscur
+ * array along with its description. Mark with bold and a leading
+ * asterisk those fields associated with the "on" or "active" state.
+ *
+ * Special highlighting will be accorded the "focus" field with such
+ * highlighting potentially extended to include the description.
+ *
+ * Below is the current Fieldstab space requirement and how
+ * we apportion it. The xSUFX is considered sacrificial,
+ * something we can reduce or do without.
+ * 0 1 2 3
+ * 12345678901234567890123456789012
+ * * HEADING = Longest Description!
+ * xPRFX ----------______________________ xSUFX
+ * ( xPRFX has pos 2 & 10 for 'extending' when at minimums )
+ *
+ * The first 4 screen rows are reserved for explanatory text, and
+ * the maximum number of columns is Screen_cols / xPRFX + 1 space
+ * between columns. Thus, for example, with 42 fields a tty will
+ * still remain usable under these extremes:
+ * rows columns what's
+ * tty top tty top displayed
+ * --- --- --- --- ------------------
+ * 46 42 10 1 xPRFX only
+ * 46 42 32 1 full xPRFX + xSUFX
+ * 6 2 231 21 xPRFX only
+ * 10 6 231 7 full xPRFX + xSUFX
+ */
+static void display_fields (int focus, int extend) {
+ #define mkERR { putp("\n"); putp(N_txt(XTRA_winsize_txt)); return; }
+ #define mxCOL ( (Screen_cols / 11) > 0 ? (Screen_cols / 11) : 1 )
+ #define yRSVD 4
+ #define xEQUS 2 // length of suffix beginning '= '
+ #define xSUFX 22 // total suffix length, incl xEQUS
+ #define xPRFX (10 + xadd)
+ #define xTOTL (xPRFX + xSUFX)
+ static int col_sav, row_sav;
+ WIN_t *w = Curwin; // avoid gcc bloat with a local copy
+ int i; // utility int (a row, tot cols, ix)
+ int smax; // printable width of xSUFX
+ int xadd = 0; // spacing between data columns
+ int cmax = Screen_cols; // total data column width
+ int rmax = Screen_rows - yRSVD; // total usable rows
+
+ i = (EU_MAXPFLGS % mxCOL) ? 1 : 0;
+ if (rmax < i + (EU_MAXPFLGS / mxCOL)) mkERR;
+ i = EU_MAXPFLGS / rmax;
+ if (EU_MAXPFLGS % rmax) ++i;
+ if (i > 1) { cmax /= i; xadd = 1; }
+ if (cmax > xTOTL) cmax = xTOTL;
+ smax = cmax - xPRFX;
+ if (smax < 0) mkERR;
+
+ /* we'll go the extra distance to avoid any potential screen flicker
+ which occurs under some terminal emulators (but it was our fault) */
+ if (col_sav != Screen_cols || row_sav != Screen_rows) {
+ col_sav = Screen_cols;
+ row_sav = Screen_rows;
+ putp(Cap_clr_eos);
+ }
+ fflush(stdout);
+
+ for (i = 0; i < EU_MAXPFLGS; ++i) {
+ int b = FLDviz(w, i), x = (i / rmax) * cmax, y = (i % rmax) + yRSVD;
+ const char *e = (i == focus && extend) ? w->capclr_hdr : "";
+ FLG_t f = FLDget(w, i);
+ char sbuf[xSUFX*4]; // 4 = max multi-byte
+ int xcol, xfld;
+
+ /* prep sacrificial suffix (allowing for beginning '= ')
+ note: width passed to 'utf8_embody' may go negative, but he'll be just fine */
+ snprintf(sbuf, sizeof(sbuf), "= %.*s", utf8_embody(N_fld(f), smax - xEQUS), N_fld(f));
+ // obtain translated deltas (if any) ...
+ xcol = utf8_delta(fmtmk("%.*s", utf8_embody(N_col(f), 8), N_col(f)));
+ xfld = utf8_delta(sbuf + xEQUS); // ignore beginning '= '
+
+ PUTT("%s%c%s%s %s%-*.*s%s%s%s %-*.*s%s"
+ , tg2(x, y)
+ , b ? '*' : ' '
+ , b ? w->cap_bold : Cap_norm
+ , e
+ , i == focus ? w->capclr_hdr : ""
+ , 8 + xcol, 8 + xcol
+ , N_col(f)
+ , Cap_norm
+ , b ? w->cap_bold : ""
+ , e
+ , smax + xfld, smax + xfld
+ , sbuf
+ , Cap_norm);
+ }
+
+ putp(Caps_off);
+ #undef mkERR
+ #undef mxCOL
+ #undef yRSVD
+ #undef xEQUS
+ #undef xSUFX
+ #undef xPRFX
+ #undef xTOTL
+} // end: display_fields
+
+
+ /*
+ * Manage all fields aspects (order/toggle/sort), for all windows. */
+static void fields_utility (void) {
+#ifndef SCROLLVAR_NO
+ #define unSCRL { w->begpflg = w->varcolbeg = 0; OFFw(w, Show_HICOLS); }
+#else
+ #define unSCRL { w->begpflg = 0; OFFw(w, Show_HICOLS); }
+#endif
+ #define swapEM { int c; unSCRL; c = w->rc.fieldscur[i]; \
+ w->rc.fieldscur[i] = *p; *p = c; p = &w->rc.fieldscur[i]; }
+ #define spewFI { int *t; f = w->rc.sortindx; t = msch(w->rc.fieldscur, ENUcvt(f, FLDon), EU_MAXPFLGS); \
+ if (!t) t = msch(w->rc.fieldscur, ENUcvt(f, FLDoff), EU_MAXPFLGS); \
+ i = (t) ? (int)(t - w->rc.fieldscur) : 0; }
+ WIN_t *w = Curwin; // avoid gcc bloat with a local copy
+ const char *h = NULL;
+ int *p = NULL;
+ int i, key;
+ FLG_t f;
+
+ spewFI
+signify_that:
+ putp(Cap_clr_scr);
+ adj_geometry();
+
+ do {
+ if (!h) h = N_col(f);
+ putp(Cap_home);
+ show_special(1, fmtmk(N_unq(FIELD_header_fmt)
+ , w->grpname, CHKw(w, Show_FOREST) ? N_txt(FOREST_views_txt) : h));
+ display_fields(i, (p != NULL));
+ fflush(stdout);
+
+ if (Frames_signal) goto signify_that;
+ key = iokey(IOKEY_ONCE);
+ if (key < 1) goto signify_that;
+
+ switch (key) {
+ case kbd_UP:
+ if (i > 0) { --i; if (p) swapEM }
+ break;
+ case kbd_DOWN:
+ if (i + 1 < EU_MAXPFLGS) { ++i; if (p) swapEM }
+ break;
+ case kbd_LEFT:
+ case kbd_ENTER:
+ p = NULL;
+ break;
+ case kbd_RIGHT:
+ p = &w->rc.fieldscur[i];
+ break;
+ case kbd_HOME:
+ case kbd_PGUP:
+ if (!p) i = 0;
+ break;
+ case kbd_END:
+ case kbd_PGDN:
+ if (!p) i = EU_MAXPFLGS - 1;
+ break;
+ case kbd_SPACE:
+ case 'd':
+ if (!p) { FLDtog(w, i); unSCRL }
+ break;
+ case 's':
+#ifdef TREE_NORESET
+ if (!p && !CHKw(w, Show_FOREST)) { w->rc.sortindx = f = FLDget(w, i); h = NULL; unSCRL }
+#else
+ if (!p) { w->rc.sortindx = f = FLDget(w, i); h = NULL; unSCRL; OFFw(w, Show_FOREST); }
+#endif
+ break;
+ case 'a':
+ case 'w':
+ Curwin = w = ('a' == key) ? w->next : w->prev;
+ spewFI
+ h = NULL;
+ p = NULL;
+ break;
+ default: // keep gcc happy
+ break;
+ }
+ } while (key != 'q' && key != kbd_ESC);
+
+ // signal that we just corrupted entire screen
+ Frames_signal = BREAK_screen;
+ #undef unSCRL
+ #undef swapEM
+ #undef spewFI
+} // end: fields_utility
+
+
+ /*
+ * This routine takes care of auto sizing field widths
+ * if/when the user sets Rc.fixed_widest to -1. Along the
+ * way he reinitializes some things for the next frame. */
+static inline void widths_resize (void) {
+ int i;
+
+ // next var may also be set by the guys that actually truncate stuff
+ Autox_found = 0;
+ for (i = 0; i < EU_MAXPFLGS; i++) {
+ if (Autox_array[i]) {
+ Fieldstab[i].width++;
+ Autox_array[i] = 0;
+ Autox_found = 1;
+ }
+ }
+ // trigger a call to calibrate_fields (via zap_fieldstab)
+ if (Autox_found) Frames_signal = BREAK_autox;
+} // end: widths_resize
+
+
+ /*
+ * This routine exists just to consolidate most of the messin'
+ * around with the Fieldstab array and some related stuff. */
+static void zap_fieldstab (void) {
+#ifdef WIDEN_COLUMN
+ #define maX(E) ( (wtab[E].wnls > wtab[E].wmin) \
+ ? wtab[E].wnls : wtab[E].wmin )
+ static struct {
+ int wmin; // minimum field width (-1 == variable width)
+ int wnls; // translated header column requirements
+ int watx; // +1 == non-scalable auto sized columns
+ } wtab[EU_MAXPFLGS];
+#endif
+ static int once;
+ int i, digits;
+ char buf[8];
+
+ if (!once) {
+ Fieldstab[EU_CPN].width = 1;
+ Fieldstab[EU_NMA].width = 2;
+ Fieldstab[EU_PID].width = Fieldstab[EU_PPD].width
+ = Fieldstab[EU_PGD].width = Fieldstab[EU_SID].width
+ = Fieldstab[EU_TGD].width = Fieldstab[EU_TPG].width = 5;
+ if (5 < (digits = (int)procps_pid_length())) {
+ if (10 < digits) error_exit(N_txt(FAIL_widepid_txt));
+ Fieldstab[EU_PID].width = Fieldstab[EU_PPD].width
+ = Fieldstab[EU_PGD].width = Fieldstab[EU_SID].width
+ = Fieldstab[EU_TGD].width = Fieldstab[EU_TPG].width = digits;
+ }
+#ifdef WIDEN_COLUMN
+ // identify our non-scalable auto sized columns
+ wtab[EU_UED].watx = wtab[EU_UEN].watx = wtab[EU_URD].watx
+ = wtab[EU_URN].watx = wtab[EU_USD].watx = wtab[EU_USN].watx
+ = wtab[EU_GID].watx = wtab[EU_GRP].watx = wtab[EU_TTY].watx
+ = wtab[EU_WCH].watx = wtab[EU_NS1].watx = wtab[EU_NS2].watx
+ = wtab[EU_NS3].watx = wtab[EU_NS4].watx = wtab[EU_NS5].watx
+ = wtab[EU_NS6].watx = wtab[EU_NS7].watx = wtab[EU_NS8].watx
+ = wtab[EU_LXC].watx = wtab[EU_LID].watx
+ = +1;
+ /* establish translatable header 'column' requirements
+ and ensure .width reflects the widest value */
+ for (i = 0; i < EU_MAXPFLGS; i++) {
+ wtab[i].wmin = Fieldstab[i].width;
+ wtab[i].wnls = (int)strlen(N_col(i)) - utf8_delta(N_col(i));
+ if (wtab[i].wmin != -1)
+ Fieldstab[i].width = maX(i);
+ }
+#endif
+ once = 1;
+ }
+
+ Cpu_pmax = 99.9;
+ if (Rc.mode_irixps && Cpu_cnt > 1 && !Thread_mode) {
+ Cpu_pmax = 100.0 * Cpu_cnt;
+ if (Cpu_cnt > 1000) {
+ if (Cpu_pmax > 9999999.0) Cpu_pmax = 9999999.0;
+ } else if (Cpu_cnt > 100) {
+ if (Cpu_cnt > 999999.0) Cpu_pmax = 999999.0;
+ } else if (Cpu_cnt > 10) {
+ if (Cpu_pmax > 99999.0) Cpu_pmax = 99999.0;
+ } else {
+ if (Cpu_pmax > 999.9) Cpu_pmax = 999.9;
+ }
+ }
+
+#ifdef WIDEN_COLUMN
+ digits = snprintf(buf, sizeof(buf), "%d", Cpu_cnt);
+ if (wtab[EU_CPN].wmin < digits) {
+ if (5 < digits) error_exit(N_txt(FAIL_widecpu_txt));
+ wtab[EU_CPN].wmin = digits;
+ Fieldstab[EU_CPN].width = maX(EU_CPN);
+ }
+ digits = snprintf(buf, sizeof(buf), "%d", Numa_node_tot);
+ if (wtab[EU_NMA].wmin < digits) {
+ wtab[EU_NMA].wmin = digits;
+ Fieldstab[EU_NMA].width = maX(EU_NMA);
+ }
+
+ // and accommodate optional wider non-scalable columns (maybe)
+ if (!AUTOX_MODE) {
+ for (i = 0; i < EU_MAXPFLGS; i++) {
+ if (wtab[i].watx)
+ Fieldstab[i].width = Rc.fixed_widest ? Rc.fixed_widest + maX(i) : maX(i);
+ }
+ }
+#else
+ digits = snprintf(buf, sizeof(buf), "%d", Cpu_cnt);
+ if (1 < digits) {
+ if (5 < digits) error_exit(N_txt(FAIL_widecpu_txt));
+ Fieldstab[EU_CPN].width = digits;
+ }
+ digits = snprintf(buf, sizeof(buf), "%d", Numa_node_tot);
+ if (2 < digits)
+ Fieldstab[EU_NMA].width = digits;
+
+ // and accommodate optional wider non-scalable columns (maybe)
+ if (!AUTOX_MODE) {
+ Fieldstab[EU_UED].width = Fieldstab[EU_URD].width
+ = Fieldstab[EU_USD].width = Fieldstab[EU_GID].width
+ = Rc.fixed_widest ? 5 + Rc.fixed_widest : 5;
+ Fieldstab[EU_UEN].width = Fieldstab[EU_URN].width
+ = Fieldstab[EU_USN].width = Fieldstab[EU_GRP].width
+ = Rc.fixed_widest ? 8 + Rc.fixed_widest : 8;
+ Fieldstab[EU_TTY].width = Fieldstab[EU_LXC].width
+ = Rc.fixed_widest ? 8 + Rc.fixed_widest : 8;
+ Fieldstab[EU_WCH].width
+ = Rc.fixed_widest ? 10 + Rc.fixed_widest : 10;
+ // the initial namespace fields
+ for (i = EU_NS1; i <= EU_NS6; i++)
+ Fieldstab[i].width
+ = Rc.fixed_widest ? 10 + Rc.fixed_widest : 10;
+ // the later namespace additions
+ for (i = EU_NS7; i <= EU_NS8; i++)
+ Fieldstab[i].width
+ = Rc.fixed_widest ? 10 + Rc.fixed_widest : 10;
+ }
+#endif
+
+ /* plus user selectable scaling */
+ Fieldstab[EU_VRT].scale = Fieldstab[EU_SWP].scale
+ = Fieldstab[EU_RES].scale = Fieldstab[EU_COD].scale
+ = Fieldstab[EU_DAT].scale = Fieldstab[EU_SHR].scale
+ = Fieldstab[EU_USE].scale = Fieldstab[EU_RZA].scale
+ = Fieldstab[EU_RZF].scale = Fieldstab[EU_RZL].scale
+ = Fieldstab[EU_RZS].scale = Fieldstab[EU_RSS].scale
+ = Fieldstab[EU_PSS].scale = Fieldstab[EU_PZA].scale
+ = Fieldstab[EU_PZF].scale = Fieldstab[EU_PZS].scale
+ = Fieldstab[EU_USS].scale = Rc.task_mscale;
+
+ // lastly, ensure we've got proper column headers...
+ calibrate_fields();
+ #undef maX
+} // end: zap_fieldstab
+
+/*###### Library Interface (as separate threads) #######################*/
+
+ /*
+ * This guy's responsible for interfacing with the library <stat> API
+ * and reaping all cpu or numa node tics.
+ * ( his task is now embarassingly small under the new api ) */
+static void *cpus_refresh (void *unused) {
+ enum stat_reap_type which;
+
+ do {
+#ifdef THREADED_CPU
+ sem_wait(&Semaphore_cpus_beg);
+#endif
+ which = STAT_REAP_CPUS_ONLY;
+ if (CHKw(Curwin, View_CPUNOD))
+ which = STAT_REAP_NUMA_NODES_TOO;
+
+ Stat_reap = procps_stat_reap(Stat_ctx, which, Stat_items, MAXTBL(Stat_items));
+ if (!Stat_reap)
+ error_exit(fmtmk(N_fmt(LIB_errorcpu_fmt), __LINE__, strerror(errno)));
+#ifndef PRETEND0NUMA
+ // adapt to changes in total numa nodes (assuming it's even possible)
+ if (Stat_reap->numa->total && Stat_reap->numa->total != Numa_node_tot) {
+ Numa_node_tot = Stat_reap->numa->total;
+ Numa_node_sel = -1;
+ }
+#endif
+ if (Stat_reap->cpus->total && Stat_reap->cpus->total != Cpu_cnt) {
+ Cpu_cnt = Stat_reap->cpus->total;
+#ifdef PRETEND48CPU
+ Cpu_cnt = 48;
+#endif
+ }
+#ifdef PRETENDECORE
+{ int i, x;
+ x = Cpu_cnt - (Cpu_cnt / 4);
+ for (i = 0; i < Cpu_cnt; i++)
+ Stat_reap->cpus->stacks[i]->head[stat_COR_TYP].result.s_int = (i < x) ? P_CORE : E_CORE;
+}
+#endif
+#ifdef THREADED_CPU
+ sem_post(&Semaphore_cpus_end);
+ } while (1);
+#else
+ } while (0);
+#endif
+ return NULL;
+ (void)unused;
+} // end: cpus_refresh
+
+
+ /*
+ * This serves as our interface to the memory portion of libprocps.
+ * The sampling frequency is reduced in order to minimize overhead. */
+static void *memory_refresh (void *unused) {
+ static time_t sav_secs;
+ time_t cur_secs;
+
+ do {
+#ifdef THREADED_MEM
+ sem_wait(&Semaphore_memory_beg);
+#endif
+ if (Frames_signal)
+ sav_secs = 0;
+ cur_secs = time(NULL);
+
+ if (3 <= cur_secs - sav_secs) {
+ if (!(Mem_stack = procps_meminfo_select(Mem_ctx, Mem_items, MAXTBL(Mem_items))))
+ error_exit(fmtmk(N_fmt(LIB_errormem_fmt), __LINE__, strerror(errno)));
+ sav_secs = cur_secs;
+ }
+#ifdef THREADED_MEM
+ sem_post(&Semaphore_memory_end);
+ } while (1);
+#else
+ } while (0);
+#endif
+ return NULL;
+ (void)unused;
+} // end: memory_refresh
+
+
+ /*
+ * This guy's responsible for interfacing with the library <pids> API
+ * then refreshing the WIN_t ptr arrays, growing them as appropirate. */
+static void *tasks_refresh (void *unused) {
+ #define nALIGN(n,m) (((n + m - 1) / m) * m) // unconditionally align
+ #define nALGN2(n,m) ((n + m - 1) & ~(m - 1)) // with power of 2 align
+ #define n_reap Pids_reap->counts->total
+ static double uptime_sav;
+ static int n_alloc = -1; // size of windows stacks arrays
+ double uptime_cur;
+ float et;
+ int i, what;
+
+ do {
+#ifdef THREADED_TSK
+ sem_wait(&Semaphore_tasks_beg);
+#endif
+ procps_uptime(&uptime_cur, NULL);
+ et = uptime_cur - uptime_sav;
+ if (et < 0.01) et = 0.005;
+ uptime_sav = uptime_cur;
+ // if in Solaris mode, adjust our scaling for all cpus
+ Frame_etscale = 100.0f / ((float)Hertz * (float)et * (Rc.mode_irixps ? 1 : Cpu_cnt));
+
+ what = Thread_mode ? PIDS_FETCH_THREADS_TOO : PIDS_FETCH_TASKS_ONLY;
+ if (Monpidsidx) {
+ what |= PIDS_SELECT_PID;
+ Pids_reap = procps_pids_select(Pids_ctx, (unsigned *)Monpids, Monpidsidx, what);
+ } else
+ Pids_reap = procps_pids_reap(Pids_ctx, what);
+ if (!Pids_reap)
+ error_exit(fmtmk(N_fmt(LIB_errorpid_fmt), __LINE__, strerror(errno)));
+
+ // now refresh each window's stacks pointer array...
+ if (n_alloc < n_reap) {
+// n_alloc = nALIGN(n_reap, 100);
+ n_alloc = nALGN2(n_reap, 128);
+ for (i = 0; i < GROUPSMAX; i++) {
+ Winstk[i].ppt = alloc_r(Winstk[i].ppt, sizeof(void *) * n_alloc);
+ memcpy(Winstk[i].ppt, Pids_reap->stacks, sizeof(void *) * PIDSmaxt);
+ }
+ } else {
+ for (i = 0; i < GROUPSMAX; i++)
+ memcpy(Winstk[i].ppt, Pids_reap->stacks, sizeof(void *) * PIDSmaxt);
+ }
+#ifdef THREADED_TSK
+ sem_post(&Semaphore_tasks_end);
+ } while (1);
+#else
+ } while (0);
+#endif
+ return NULL;
+ (void)unused;
+ #undef nALIGN
+ #undef nALGN2
+ #undef n_reap
+} // end: tasks_refresh
+
+/*###### Inspect Other Output ##########################################*/
+
+ /*
+ * HOWTO Extend the top 'inspect' functionality:
+ *
+ * To exploit the 'Y' interactive command, one must add entries to
+ * the top personal configuration file. Such entries simply reflect
+ * a file to be read or command/pipeline to be executed whose results
+ * will then be displayed in a separate scrollable window.
+ *
+ * Entries beginning with a '#' character are ignored, regardless of
+ * content. Otherwise they consist of the following 3 elements, each
+ * of which must be separated by a tab character (thus 2 '\t' total):
+ * type: literal 'file' or 'pipe'
+ * name: selection shown on the Inspect screen
+ * fmts: string representing a path or command
+ *
+ * The two types of Inspect entries are not interchangeable.
+ * Those designated 'file' will be accessed using fopen/fread and must
+ * reference a single file in the 'fmts' element. Entries specifying
+ * 'pipe' will employ popen/fread, their 'fmts' element could contain
+ * many pipelined commands and, none can be interactive.
+ *
+ * Here are some examples of both types of inspection entries.
+ * The first entry will be ignored due to the initial '#' character.
+ * For clarity, the pseudo tab depictions (^I) are surrounded by an
+ * extra space but the actual tabs would not be.
+ *
+ * # pipe ^I Sockets ^I lsof -n -P -i 2>&1
+ * pipe ^I Open Files ^I lsof -P -p %d 2>&1
+ * file ^I NUMA Info ^I /proc/%d/numa_maps
+ * pipe ^I Log ^I tail -n100 /var/log/syslog | sort -Mr
+ *
+ * Caution: If the output contains unprintable characters they will
+ * be displayed in either the ^I notation or hexadecimal <FF> form.
+ * This applies to tab characters as well. So if one wants a more
+ * accurate display, any tabs should be expanded within the 'fmts'.
+ *
+ * The following example takes what could have been a 'file' entry
+ * but employs a 'pipe' instead so as to expand the tabs.
+ *
+ * # next would have contained '\t' ...
+ * # file ^I <your_name> ^I /proc/%d/status
+ * # but this will eliminate embedded '\t' ...
+ * pipe ^I <your_name> ^I cat /proc/%d/status | expand -
+ *
+ * Note: If a pipe such as the following was established, one must
+ * use Ctrl-C to terminate that pipe in order to review the results.
+ * This is the single occasion where a '^C' will not terminate top.
+ *
+ * pipe ^I Trace ^I /usr/bin/strace -p %d 2>&1
+ */
+
+ /*
+ * Our driving table support, the basis for generalized inspection,
+ * built at startup (if at all) from rcfile or demo entries. */
+struct I_ent {
+ void (*func)(char *, int); // a pointer to file/pipe/demo function
+ char *type; // the type of entry ('file' or 'pipe')
+ char *name; // the selection label for display
+ char *fmts; // format string to build path or command
+ int farg; // 1 = '%d' in fmts, 0 = not (future use)
+ const char *caps; // not really caps, show_special() delim's
+ char *fstr; // entry's current/active search string
+ int flen; // above's strlen, without call overhead
+};
+struct I_struc {
+ int demo; // do NOT save table entries in rcfile
+ int total; // total I_ent table entries
+ char *raw; // all entries for 'W', incl '#' & blank
+ struct I_ent *tab;
+};
+static struct I_struc Inspect;
+
+static char **Insp_p; // pointers to each line start
+static int Insp_nl; // total lines, total Insp_p entries
+static int Insp_utf8; // treat Insp_buf as translatable, else raw
+static char *Insp_buf; // the results from insp_do_file/pipe
+static size_t Insp_bufsz; // allocated size of Insp_buf
+static size_t Insp_bufrd; // bytes actually in Insp_buf
+static struct I_ent *Insp_sel; // currently selected Inspect entry
+
+ // Our 'make status line' macro
+#define INSP_MKSL(big,txt) { int _sz = big ? Screen_cols : 80; \
+ const char *_p; \
+ _sz += utf8_delta(txt); \
+ _p = fmtmk("%-*.*s", _sz, _sz, txt); \
+ PUTT("%s%s%.*s%s", tg2(0, (Msg_row = 3)), Curwin->capclr_hdr \
+ , utf8_embody(_p, Screen_cols), _p, Cap_clr_eol); \
+ putp(Caps_off); fflush(stdout); }
+
+ // Our 'row length' macro, equivalent to a strlen() call
+#define INSP_RLEN(idx) (int)(Insp_p[idx +1] - Insp_p[idx] -1)
+
+ // Our 'busy/working' macro
+#define INSP_BUSY(enu) { INSP_MKSL(0, N_txt(enu)) }
+
+
+ /*
+ * Establish the number of lines present in the Insp_buf glob plus
+ * build the all important row start array. It is that array that
+ * others will rely on since we dare not try to use strlen() on what
+ * is potentially raw binary data. Who knows what some user might
+ * name as a file or include in a pipeline (scary, ain't it?). */
+static void insp_cnt_nl (void) {
+ char *beg = Insp_buf;
+ char *cur = Insp_buf;
+ char *end = Insp_buf + Insp_bufrd + 1;
+
+#ifdef INSP_SAVEBUF
+{
+ static int n = 1;
+ char fn[SMLBUFSIZ];
+ FILE *fd;
+ snprintf(fn, sizeof(fn), "%s.Insp_buf.%02d.txt", Myname, n++);
+ fd = fopen(fn, "w");
+ if (fd) {
+ fwrite(Insp_buf, 1, Insp_bufrd, fd);
+ fclose(fd);
+ }
+}
+#endif
+ Insp_p = alloc_c(sizeof(char *) * 2);
+
+ for (Insp_nl = 0; beg < end; beg++) {
+ if (*beg == '\n') {
+ Insp_p[Insp_nl++] = cur;
+ // keep our array ahead of next potential need (plus the 2 above)
+ Insp_p = alloc_r(Insp_p, (sizeof(char *) * (Insp_nl +3)));
+ cur = beg +1;
+ }
+ }
+ Insp_p[0] = Insp_buf;
+ Insp_p[Insp_nl++] = cur;
+ Insp_p[Insp_nl] = end;
+ if ((end - cur) == 1) // if there's an eof null delimiter,
+ --Insp_nl; // don't count it as a new line
+} // end: insp_cnt_nl
+
+
+#ifndef INSP_OFFDEMO
+ /*
+ * The pseudo output DEMO utility. */
+static void insp_do_demo (char *fmts, int pid) {
+ (void)fmts; (void)pid;
+ /* next will put us on a par with the real file/pipe read buffers
+ ( and also avoid a harmless, but evil sounding, valgrind warning ) */
+ Insp_bufsz = READMINSZ + strlen(N_txt(YINSP_dstory_txt));
+ Insp_buf = alloc_c(Insp_bufsz);
+ Insp_bufrd = snprintf(Insp_buf, Insp_bufsz, "%s", N_txt(YINSP_dstory_txt));
+ insp_cnt_nl();
+} // end: insp_do_demo
+#endif
+
+
+ /*
+ * The generalized FILE utility. */
+static void insp_do_file (char *fmts, int pid) {
+ char buf[LRGBUFSIZ];
+ FILE *fp;
+ int rc;
+
+ snprintf(buf, sizeof(buf), fmts, pid);
+ fp = fopen(buf, "r");
+ rc = readfile(fp, &Insp_buf, &Insp_bufsz, &Insp_bufrd);
+ if (fp) fclose(fp);
+ if (rc) Insp_bufrd = snprintf(Insp_buf, Insp_bufsz, "%s"
+ , fmtmk(N_fmt(YINSP_failed_fmt), strerror(errno)));
+ insp_cnt_nl();
+} // end: insp_do_file
+
+
+ /*
+ * The generalized PIPE utility. */
+static void insp_do_pipe (char *fmts, int pid) {
+ char buf[LRGBUFSIZ];
+ struct sigaction sa;
+ FILE *fp;
+ int rc;
+
+ memset(&sa, 0, sizeof(sa));
+ sigemptyset(&sa.sa_mask);
+ sa.sa_handler = SIG_IGN;
+ sigaction(SIGINT, &sa, NULL);
+
+ snprintf(buf, sizeof(buf), fmts, pid);
+ fp = popen(buf, "r");
+ rc = readfile(fp, &Insp_buf, &Insp_bufsz, &Insp_bufrd);
+ if (fp) pclose(fp);
+ if (rc) Insp_bufrd = snprintf(Insp_buf, Insp_bufsz, "%s"
+ , fmtmk(N_fmt(YINSP_failed_fmt), strerror(errno)));
+ insp_cnt_nl();
+
+ sa.sa_handler = sig_endpgm;
+ sigaction(SIGINT, &sa, NULL);
+} // end: insp_do_pipe
+
+
+ /*
+ * This guy is a *Helper* function serving the following two masters:
+ * insp_find_str() - find the next Insp_sel->fstr match
+ * insp_mkrow_... - highlight any Insp_sel->fstr matches in-view
+ * If Insp_sel->fstr is found in the designated row, he returns the
+ * offset from the start of the row, otherwise he returns a huge
+ * integer so traditional fencepost usage can be employed. */
+static inline int insp_find_ofs (int col, int row) {
+ #define begFS (int)(fnd - Insp_p[row])
+ char *p, *fnd = NULL;
+
+ if (Insp_sel->fstr[0]) {
+ // skip this row, if there's no chance of a match
+ if (memchr(Insp_p[row], Insp_sel->fstr[0], INSP_RLEN(row))) {
+ for ( ; col < INSP_RLEN(row); col++) {
+ if (!*(p = Insp_p[row] + col)) // skip any empty strings
+ continue;
+ fnd = STRSTR(p, Insp_sel->fstr); // with binary data, each
+ if (fnd) // row may have '\0'. so
+ break; // our scans must be done
+ col += strlen(p); // as individual strings.
+ }
+ if (fnd && fnd < Insp_p[row + 1]) // and, we must watch out
+ return begFS; // for potential overrun!
+ }
+ }
+ return INT_MAX;
+ #undef begFS
+} // end: insp_find_ofs
+
+
+ /*
+ * This guy supports the inspect 'L' and '&' search provisions
+ * and returns the row and *optimal* column for viewing any match
+ * ( we'll always opt for left column justification since any )
+ * ( preceding ctrl chars appropriate an unpredictable amount ) */
+static void insp_find_str (int ch, int *col, int *row) {
+ #define reDUX (found) ? N_txt(WORD_another_txt) : ""
+ static int found;
+
+ if ((ch == '&' || ch == 'n') && !Insp_sel->fstr[0]) {
+ show_msg(N_txt(FIND_no_next_txt));
+ return;
+ }
+ if (ch == 'L' || ch == '/') {
+ char *str = ioline(N_txt(GET_find_str_txt));
+ if (*str == kbd_ESC) return;
+ snprintf(Insp_sel->fstr, FNDBUFSIZ, "%s", str);
+ Insp_sel->flen = strlen(Insp_sel->fstr);
+ found = 0;
+ }
+ if (Insp_sel->fstr[0]) {
+ int xx, yy;
+
+ INSP_BUSY(YINSP_waitin_txt);
+ for (xx = *col, yy = *row; yy < Insp_nl; ) {
+ xx = insp_find_ofs(xx, yy);
+ if (xx < INSP_RLEN(yy)) {
+ found = 1;
+ if (xx == *col && yy == *row) { // matched where we were!
+ ++xx; // ( was the user maybe )
+ continue; // ( trying to fool us? )
+ }
+ *col = xx;
+ *row = yy;
+ return;
+ }
+ xx = 0;
+ ++yy;
+ }
+ show_msg(fmtmk(N_fmt(FIND_no_find_fmt), reDUX, Insp_sel->fstr));
+ }
+ #undef reDUX
+} // end: insp_find_str
+
+
+ /*
+ * This guy is a *Helper* function responsible for positioning a
+ * single row in the current 'X axis', then displaying the results.
+ * Along the way, he makes sure control characters and/or unprintable
+ * characters display in a less-like fashion:
+ * '^A' for control chars
+ * '<BC>' for other unprintable stuff
+ * Those will be highlighted with the current windows's capclr_msg,
+ * while visible search matches display with capclr_hdr for emphasis.
+ * ( we hide ugly plumbing in macros to concentrate on the algorithm ) */
+static void insp_mkrow_raw (int col, int row) {
+ #define maxSZ ( Screen_cols - to )
+ #define capNO { if (hicap) { putp(Caps_off); hicap = 0; } }
+ #define mkFND { PUTT("%s%.*s%s", Curwin->capclr_hdr, maxSZ, Insp_sel->fstr, Caps_off); \
+ fr += Insp_sel->flen -1; to += Insp_sel->flen; hicap = 0; }
+#ifndef INSP_JUSTNOT
+ #define mkCTL { const char *p = fmtmk("^%c", uch + '@'); \
+ PUTT("%s%.*s", (!hicap) ? Curwin->capclr_msg : "", maxSZ, p); to += 2; hicap = 1; }
+ #define mkUNP { const char *p = fmtmk("<%02X>", uch); \
+ PUTT("%s%.*s", (!hicap) ? Curwin->capclr_msg : "", maxSZ, p); to += 4; hicap = 1; }
+#else
+ #define mkCTL { if ((to += 2) <= Screen_cols) \
+ PUTT("%s^%c", (!hicap) ? Curwin->capclr_msg : "", uch + '@'); hicap = 1; }
+ #define mkUNP { if ((to += 4) <= Screen_cols) \
+ PUTT("%s<%02X>", (!hicap) ? Curwin->capclr_msg : "", uch); hicap = 1; }
+#endif
+ #define mkSTD { capNO; if (++to <= Screen_cols) { static char _str[2]; \
+ _str[0] = uch; putp(_str); } }
+ unsigned char tline[SCREENMAX];
+ int fr, to, ofs;
+ int hicap = 0;
+
+ if (col < INSP_RLEN(row))
+ memcpy(tline, Insp_p[row] + col, sizeof(tline));
+ else tline[0] = '\n';
+
+ for (fr = 0, to = 0, ofs = 0; to < Screen_cols; fr++) {
+ if (!ofs)
+ ofs = insp_find_ofs(col + fr, row);
+ if (col + fr < ofs) {
+ unsigned char uch = tline[fr];
+ if (uch == '\n') break; // a no show (he,he)
+ if (uch > 126) mkUNP // show as: '<AB>'
+ else if (uch < 32) mkCTL // show as: '^C'
+ else mkSTD // a show off (he,he)
+ } else { mkFND // a big show (he,he)
+ ofs = 0;
+ }
+ if (col + fr >= INSP_RLEN(row)) break;
+ }
+ capNO;
+ putp(Cap_clr_eol);
+
+ #undef maxSZ
+ #undef capNO
+ #undef mkFND
+ #undef mkCTL
+ #undef mkUNP
+ #undef mkSTD
+} // end: insp_mkrow_raw
+
+
+ /*
+ * This guy is a *Helper* function responsible for positioning a
+ * single row in the current 'X axis' within a multi-byte string
+ * then displaying the results. Along the way he ensures control
+ * characters will then be displayed in two positions like '^A'.
+ * ( assuming they can even get past those 'gettext' utilities ) */
+static void insp_mkrow_utf8 (int col, int row) {
+ #define maxSZ ( Screen_cols - to )
+ #define mkFND { PUTT("%s%.*s%s", Curwin->capclr_hdr, maxSZ, Insp_sel->fstr, Caps_off); \
+ fr += Insp_sel->flen; to += Insp_sel->flen; }
+#ifndef INSP_JUSTNOT
+ #define mkCTL { const char *p = fmtmk("^%c", uch + '@'); \
+ PUTT("%s%.*s%s", Curwin->capclr_msg, maxSZ, p, Caps_off); to += 2; }
+#else
+ #define mkCTL { if ((to += 2) <= Screen_cols) \
+ PUTT("%s^%c%s", Curwin->capclr_msg, uch + '@', Caps_off); }
+#endif
+ #define mkNUL { buf1[0] = ' '; doPUT(buf1) }
+ #define doPUT(buf) if ((to += cno) <= Screen_cols) putp(buf);
+ static char buf1[2], buf2[3], buf3[4], buf4[5];
+ unsigned char tline[BIGBUFSIZ];
+ int fr, to, ofs;
+
+ col = utf8_proper_col(Insp_p[row], col, 1);
+ if (col < INSP_RLEN(row))
+ memcpy(tline, Insp_p[row] + col, sizeof(tline));
+ else tline[0] = '\n';
+
+ for (fr = 0, to = 0, ofs = 0; to < Screen_cols; ) {
+ if (!ofs)
+ ofs = insp_find_ofs(col + fr, row);
+ if (col + fr < ofs) {
+ unsigned char uch = tline[fr];
+ int bno = UTF8_tab[uch];
+ int cno = utf8_cols(&tline[fr++], bno);
+ switch (bno) {
+ case 1:
+ if (uch == '\n') break;
+ if (uch < 32) mkCTL
+ else if (uch == 127) mkNUL
+ else { buf1[0] = uch; doPUT(buf1) }
+ break;
+ case 2:
+ buf2[0] = uch; buf2[1] = tline[fr++];
+ doPUT(buf2)
+ break;
+ case 3:
+ buf3[0] = uch; buf3[1] = tline[fr++]; buf3[2] = tline[fr++];
+ doPUT(buf3)
+ break;
+ case 4:
+ buf4[0] = uch; buf4[1] = tline[fr++]; buf4[2] = tline[fr++]; buf4[3] = tline[fr++];
+ doPUT(buf4)
+ break;
+ default:
+ mkNUL
+ break;
+ }
+ } else {
+ mkFND
+ ofs = 0;
+ }
+ if (col + fr >= INSP_RLEN(row)) break;
+ }
+ putp(Cap_clr_eol);
+
+ #undef maxSZ
+ #undef mkFND
+ #undef mkCTL
+ #undef mkNUL
+ #undef doPUT
+} // end: insp_mkrow_utf8
+
+
+ /*
+ * This guy is an insp_view_choice() *Helper* function who displays
+ * a page worth of of the user's damages. He also creates a status
+ * line based on maximum digits for the current selection's lines and
+ * hozizontal position (so it serves to inform, not distract, by
+ * otherwise being jumpy). */
+static inline void insp_show_pgs (int col, int row, int max) {
+ char buf[SMLBUFSIZ];
+ void (*mkrow_func)(int, int);
+ int r = snprintf(buf, sizeof(buf), "%d", Insp_nl);
+ int c = snprintf(buf, sizeof(buf), "%d", col +Screen_cols);
+ int l = row +1, ls = Insp_nl;
+
+ if (!Insp_bufrd)
+ l = ls = 0;
+ snprintf(buf, sizeof(buf), N_fmt(YINSP_status_fmt)
+ , Insp_sel->name
+ , r, l, r, ls
+ , c, col + 1, c, col + Screen_cols
+ , (unsigned long)Insp_bufrd);
+ INSP_MKSL(0, buf);
+
+ mkrow_func = Insp_utf8 ? insp_mkrow_utf8 : insp_mkrow_raw;
+
+ for ( ; max && row < Insp_nl; row++) {
+ putp("\n");
+ mkrow_func(col, row);
+ --max;
+ }
+
+ if (max)
+ putp(Cap_nl_clreos);
+} // end: insp_show_pgs
+
+
+ /*
+ * This guy is responsible for displaying the Insp_buf contents and
+ * managing all scrolling/locate requests until the user gives up. */
+static int insp_view_choice (struct pids_stack *p) {
+#ifdef INSP_SLIDE_1
+ #define hzAMT 1
+#else
+ #define hzAMT 8
+#endif
+ #define maxLN (Screen_rows - (Msg_row +1))
+ #define makHD(b1,b2) { \
+ snprintf(b1, sizeof(b1), "%d", PID_VAL(EU_PID, s_int, p)); \
+ snprintf(b2, sizeof(b2), "%s", PID_VAL(EU_CMD, str, p)); }
+ #define makFS(dst) { if (Insp_sel->flen < 22) \
+ snprintf(dst, sizeof(dst), "%s", Insp_sel->fstr); \
+ else snprintf(dst, sizeof(dst), "%.19s...", Insp_sel->fstr); }
+ char buf[LRGBUFSIZ];
+ int key, curlin = 0, curcol = 0;
+
+signify_that:
+ putp(Cap_clr_scr);
+ adj_geometry();
+
+ for (;;) {
+ char pid[6], cmd[64];
+
+ if (curcol < 0) curcol = 0;
+ if (curlin >= Insp_nl) curlin = Insp_nl -1;
+ if (curlin < 0) curlin = 0;
+
+ makFS(buf)
+ makHD(pid,cmd)
+ putp(Cap_home);
+ show_special(1, fmtmk(N_unq(YINSP_hdview_fmt)
+ , pid, cmd, (Insp_sel->fstr[0]) ? buf : " N/A ")); // nls_maybe
+ insp_show_pgs(curcol, curlin, maxLN);
+ fflush(stdout);
+ /* fflush(stdin) didn't do the trick, so we'll just dip a little deeper
+ lest repeated <Enter> keys produce immediate re-selection in caller */
+ tcflush(STDIN_FILENO, TCIFLUSH);
+
+ if (Frames_signal) goto signify_that;
+ key = iokey(IOKEY_ONCE);
+ if (key < 1) goto signify_that;
+
+ switch (key) {
+ case kbd_ENTER: // must force new iokey()
+ key = INT_MAX; // fall through !
+ case kbd_ESC:
+ case 'q':
+ putp(Cap_clr_scr);
+ return key;
+ case kbd_LEFT:
+ curcol -= hzAMT;
+ break;
+ case kbd_RIGHT:
+ curcol += hzAMT;
+ break;
+ case kbd_UP:
+ --curlin;
+ break;
+ case kbd_DOWN:
+ ++curlin;
+ break;
+ case kbd_PGUP:
+ case 'b':
+ curlin -= maxLN -1; // keep 1 line for reference
+ break;
+ case kbd_PGDN:
+ case kbd_SPACE:
+ curlin += maxLN -1; // ditto
+ break;
+ case kbd_HOME:
+ case 'g':
+ curcol = curlin = 0;
+ break;
+ case kbd_END:
+ case 'G':
+ curcol = 0;
+ curlin = Insp_nl - maxLN;
+ break;
+ case 'L':
+ case '&':
+ case '/':
+ case 'n':
+ if (!Insp_utf8)
+ insp_find_str(key, &curcol, &curlin);
+ else {
+ int tmpcol = utf8_proper_col(Insp_p[curlin], curcol, 1);
+ insp_find_str(key, &tmpcol, &curlin);
+ curcol = utf8_proper_col(Insp_p[curlin], tmpcol, 0);
+ }
+ // must re-hide cursor in case a prompt for a string makes it huge
+ putp((Cursor_state = Cap_curs_hide));
+ break;
+ case '=':
+ snprintf(buf, sizeof(buf), "%s: %s", Insp_sel->type, Insp_sel->fmts);
+ INSP_MKSL(1, buf); // show an extended SL
+ if (iokey(IOKEY_ONCE) < 1)
+ goto signify_that;
+ break;
+ default: // keep gcc happy
+ break;
+ }
+ }
+ #undef hzAMT
+ #undef maxLN
+ #undef makHD
+ #undef makFS
+} // end: insp_view_choice
+
+
+ /*
+ * This is the main Inspect routine, responsible for:
+ * 1) validating the passed pid (required, but not always used)
+ * 2) presenting/establishing the target selection
+ * 3) arranging to fill Insp_buf (via the Inspect.tab[?].func)
+ * 4) invoking insp_view_choice for viewing/scrolling/searching
+ * 5) cleaning up the dynamically acquired memory afterwards */
+static void inspection_utility (int pid) {
+ #define mkSEL(dst) { for (i = 0; i < Inspect.total; i++) Inspect.tab[i].caps = "~1"; \
+ Inspect.tab[sel].caps = "~4"; dst[0] = '\0'; \
+ for (i = 0; i < Inspect.total; i++) { char _s[SMLBUFSIZ]; \
+ snprintf(_s, sizeof(_s), " %s %s", Inspect.tab[i].name, Inspect.tab[i].caps); \
+ strncat(dst, _s, (sizeof(dst) - 1) - strlen(dst)); } }
+ char sels[SCREENMAX];
+ static int sel;
+ int i, key;
+ struct pids_stack *p;
+
+ for (i = 0, p = NULL; i < PIDSmaxt; i++)
+ if (pid == PID_VAL(EU_PID, s_int, Curwin->ppt[i])) {
+ p = Curwin->ppt[i];
+ break;
+ }
+ if (!p) {
+ show_msg(fmtmk(N_fmt(YINSP_pidbad_fmt), pid));
+ return;
+ }
+ // must re-hide cursor since the prompt for a pid made it huge
+ putp((Cursor_state = Cap_curs_hide));
+signify_that:
+ putp(Cap_clr_scr);
+ adj_geometry();
+
+ key = INT_MAX;
+ do {
+ mkSEL(sels);
+ putp(Cap_home);
+ show_special(1, fmtmk(N_unq(YINSP_hdsels_fmt)
+ , pid, PID_VAL(EU_CMD, str, Curwin->ppt[i]), sels));
+ INSP_MKSL(0, " ");
+
+ if (Frames_signal) goto signify_that;
+ if (key == INT_MAX) key = iokey(IOKEY_ONCE);
+ if (key < 1) goto signify_that;
+
+ switch (key) {
+ case 'q':
+ case kbd_ESC:
+ break;
+ case kbd_END:
+ sel = 0; // fall through !
+ case kbd_LEFT:
+ if (--sel < 0) sel = Inspect.total -1;
+ key = INT_MAX;
+ break;
+ case kbd_HOME:
+ sel = Inspect.total; // fall through !
+ case kbd_RIGHT:
+ if (++sel >= Inspect.total) sel = 0;
+ key = INT_MAX;
+ break;
+ case kbd_ENTER:
+ INSP_BUSY(!strcmp("file", Inspect.tab[sel].type)
+ ? YINSP_waitin_txt : YINSP_workin_txt);
+ Insp_sel = &Inspect.tab[sel];
+ Inspect.tab[sel].func(Inspect.tab[sel].fmts, pid);
+ Insp_utf8 = utf8_delta(Insp_buf);
+ key = insp_view_choice(p);
+ free(Insp_buf);
+ free(Insp_p);
+ break;
+ default:
+ goto signify_that;
+ }
+ } while (key != 'q' && key != kbd_ESC);
+
+ // signal that we just corrupted entire screen
+ Frames_signal = BREAK_screen;
+ #undef mkSEL
+} // end: inspection_utility
+
+#undef INSP_MKSL
+#undef INSP_RLEN
+#undef INSP_BUSY
+
+/*###### Other Filtering ###############################################*/
+
+ /*
+ * This structure is hung from a WIN_t when other filtering is active */
+struct osel_s {
+ struct osel_s *nxt; // the next criteria or NULL.
+ int (*rel)(const char *, const char *); // relational strings compare
+ char *(*sel)(const char *, const char *); // for selection str compares
+ char *raw; // raw user input (dup check)
+ char *val; // value included or excluded
+ int ops; // filter delimiter/operation
+ int inc; // include == 1, exclude == 0
+ int enu; // field (procflag) to filter
+ int typ; // typ used to set: rel & sel
+};
+
+ /*
+ * A function to parse, validate and build a single 'other filter' */
+static const char *osel_add (WIN_t *q, int ch, char *glob, int push) {
+ int (*rel)(const char *, const char *);
+ char *(*sel)(const char *, const char *);
+ char raw[MEDBUFSIZ], ops, *pval;
+ struct osel_s *osel;
+ int inc, enu;
+
+ if (ch == 'o') {
+ rel = strcasecmp;
+ sel = strcasestr;
+ } else {
+ rel = strcmp;
+ sel = strstr;
+ }
+
+ if (!snprintf(raw, sizeof(raw), "%s", glob))
+ return NULL;
+ for (osel = q->osel_1st; osel; ) {
+ if (!strcmp(osel->raw, raw)) // #1: is criteria duplicate?
+ return N_txt(OSEL_errdups_txt);
+ osel = osel->nxt;
+ }
+ if (*glob != '!') inc = 1; // #2: is it include/exclude?
+ else { ++glob; inc = 0; }
+
+ if (!(pval = strpbrk(glob, "<=>"))) // #3: do we see a delimiter?
+ return fmtmk(N_fmt(OSEL_errdelm_fmt)
+ , inc ? N_txt(WORD_include_txt) : N_txt(WORD_exclude_txt));
+ ops = *(pval);
+ *(pval++) = '\0';
+
+ for (enu = 0; enu < EU_MAXPFLGS; enu++) // #4: is this a valid field?
+ if (!STRCMP(N_col(enu), glob)) break;
+ if (enu == EU_MAXPFLGS)
+ return fmtmk(N_fmt(XTRA_badflds_fmt), glob);
+
+ if (!(*pval)) // #5: did we get some value?
+ return fmtmk(N_fmt(OSEL_errvalu_fmt)
+ , inc ? N_txt(WORD_include_txt) : N_txt(WORD_exclude_txt));
+
+ osel = alloc_c(sizeof(struct osel_s));
+ osel->typ = ch;
+ osel->inc = inc;
+ osel->enu = enu;
+ osel->ops = ops;
+ if (ops == '=') osel->val = alloc_s(pval);
+ else osel->val = alloc_s(justify_pad(pval, Fieldstab[enu].width, Fieldstab[enu].align));
+ osel->rel = rel;
+ osel->sel = sel;
+ osel->raw = alloc_s(raw);
+
+ if (push) {
+ // a LIFO queue was used when we're interactive
+ osel->nxt = q->osel_1st;
+ q->osel_1st = osel;
+ } else {
+ // a FIFO queue must be employed for the rcfile
+ if (!q->osel_1st)
+ q->osel_1st = osel;
+ else {
+ struct osel_s *prev, *walk = q->osel_1st;
+ do {
+ prev = walk;
+ walk = walk->nxt;
+ } while (walk);
+ prev->nxt = osel;
+ }
+ }
+ q->osel_tot += 1;
+
+ return NULL;
+} // end: osel_add
+
+
+ /*
+ * A function to turn off entire other filtering in the given window */
+static void osel_clear (WIN_t *q) {
+ struct osel_s *osel = q->osel_1st;
+
+ while (osel) {
+ struct osel_s *nxt = osel->nxt;
+ free(osel->val);
+ free(osel->raw);
+ free(osel);
+ osel = nxt;
+ }
+ q->osel_tot = 0;
+ q->osel_1st = NULL;
+} // end: osel_clear
+
+
+ /*
+ * Determine if there are matching values or relationships among the
+ * other criteria in this passed window -- it's called from only one
+ * place, and likely inlined even without the directive */
+static inline int osel_matched (const WIN_t *q, FLG_t enu, const char *str) {
+ struct osel_s *osel = q->osel_1st;
+
+ while (osel) {
+ if (osel->enu == enu) {
+ int r;
+ switch (osel->ops) {
+ case '<': // '<' needs the r < 0 unless
+ r = osel->rel(str, osel->val); // '!' which needs an inverse
+ if ((r >= 0 && osel->inc) || (r < 0 && !osel->inc)) return 0;
+ break;
+ case '>': // '>' needs the r > 0 unless
+ r = osel->rel(str, osel->val); // '!' which needs an inverse
+ if ((r <= 0 && osel->inc) || (r > 0 && !osel->inc)) return 0;
+ break;
+ default:
+ { char *p = osel->sel(str, osel->val);
+ if ((!p && osel->inc) || (p && !osel->inc)) return 0;
+ }
+ break;
+ }
+ }
+ osel = osel->nxt;
+ }
+ return 1;
+} // end: osel_matched
+
+/*###### Startup routines ##############################################*/
+
+ /*
+ * No matter what *they* say, we handle the really really BIG and
+ * IMPORTANT stuff upon which all those lessor functions depend! */
+static void before (char *me) {
+ #define doALL STAT_REAP_NUMA_NODES_TOO
+ int i, rc;
+ int linux_version_code = procps_linux_version();
+
+ atexit(close_stdout);
+
+ // setup our program name
+ Myname = strrchr(me, '/');
+ if (Myname) ++Myname; else Myname = me;
+
+ // accommodate nls/gettext potential translations
+ // ( must 'setlocale' before our libproc called )
+ initialize_nls();
+
+ // is /proc mounted?
+ fatal_proc_unmounted(NULL, 0);
+
+#ifndef OFF_STDERROR
+ /* there's a chance that damn libnuma may spew to stderr so we gotta
+ make sure he does not corrupt poor ol' top's first output screen!
+ Yes, he provides some overridable 'weak' functions to change such
+ behavior but we can't exploit that since we don't follow a normal
+ ld route to symbol resolution (we use that dlopen() guy instead)! */
+ Stderr_save = dup(fileno(stderr));
+ if (-1 < Stderr_save && freopen("/dev/null", "w", stderr))
+ ; // avoid -Wunused-result
+#endif
+
+ // establish some cpu particulars
+ Hertz = procps_hertz_get();
+ Cpu_States_fmts = N_unq(STATE_lin2x6_fmt);
+ if (linux_version_code >= LINUX_VERSION(2, 6, 11))
+ Cpu_States_fmts = N_unq(STATE_lin2x7_fmt);
+
+ // get the total cpus (and, if possible, numa node total)
+ if ((rc = procps_stat_new(&Stat_ctx)))
+ Restrict_some = Cpu_cnt = 1;
+ else {
+ if (!(Stat_reap = procps_stat_reap(Stat_ctx, doALL, Stat_items, MAXTBL(Stat_items))))
+ error_exit(fmtmk(N_fmt(LIB_errorcpu_fmt), __LINE__, strerror(errno)));
+#ifndef PRETEND0NUMA
+ Numa_node_tot = Stat_reap->numa->total;
+#endif
+ Cpu_cnt = Stat_reap->cpus->total;
+#ifdef PRETEND48CPU
+ Cpu_cnt = 48;
+#endif
+ }
+
+ // prepare for memory stats from new library API ...
+ if ((rc = procps_meminfo_new(&Mem_ctx)))
+ Restrict_some = 1;
+
+ // establish max depth for newlib pids stack (# of result structs)
+ Pids_itms = alloc_c(sizeof(enum pids_item) * MAXTBL(Fieldstab));
+ if (PIDS_noop != 0)
+ for (i = 0; i < MAXTBL(Fieldstab); i++)
+ Pids_itms[i] = PIDS_noop;
+ Pids_itms_tot = MAXTBL(Fieldstab);
+ // we will identify specific items in the build_headers() function
+ if ((rc = procps_pids_new(&Pids_ctx, Pids_itms, Pids_itms_tot)))
+ error_exit(fmtmk(N_fmt(LIB_errorpid_fmt), __LINE__, strerror(-rc)));
+
+#if defined THREADED_CPU || defined THREADED_MEM || defined THREADED_TSK
+{ struct sigaction sa;
+ Thread_id_main = pthread_self();
+ /* in case any of our threads have been enabled, they'll inherit this mask
+ with everything blocked. therefore, signals go to the main thread (us). */
+ sigfillset(&sa.sa_mask);
+ pthread_sigmask(SIG_BLOCK, &sa.sa_mask, NULL);
+}
+#endif
+
+#ifdef THREADED_CPU
+ if (0 != sem_init(&Semaphore_cpus_beg, 0, 0)
+ || (0 != sem_init(&Semaphore_cpus_end, 0, 0)))
+ error_exit(fmtmk(N_fmt(X_SEMAPHORES_fmt), __LINE__, strerror(errno)));
+ if (0 != pthread_create(&Thread_id_cpus, NULL, cpus_refresh, NULL))
+ error_exit(fmtmk(N_fmt(X_THREADINGS_fmt), __LINE__, strerror(errno)));
+ pthread_setname_np(Thread_id_cpus, "update cpus");
+#endif
+#ifdef THREADED_MEM
+ if (0 != sem_init(&Semaphore_memory_beg, 0, 0)
+ || (0 != sem_init(&Semaphore_memory_end, 0, 0)))
+ error_exit(fmtmk(N_fmt(X_SEMAPHORES_fmt), __LINE__, strerror(errno)));
+ if (0 != pthread_create(&Thread_id_memory, NULL, memory_refresh, NULL))
+ error_exit(fmtmk(N_fmt(X_THREADINGS_fmt), __LINE__, strerror(errno)));
+ pthread_setname_np(Thread_id_memory, "update memory");
+#endif
+#ifdef THREADED_TSK
+ if (0 != sem_init(&Semaphore_tasks_beg, 0, 0)
+ || (0 != sem_init(&Semaphore_tasks_end, 0, 0)))
+ error_exit(fmtmk(N_fmt(X_SEMAPHORES_fmt), __LINE__, strerror(errno)));
+ if (0 != pthread_create(&Thread_id_tasks, NULL, tasks_refresh, NULL))
+ error_exit(fmtmk(N_fmt(X_THREADINGS_fmt), __LINE__, strerror(errno)));
+ pthread_setname_np(Thread_id_tasks, "update tasks");
+#endif
+ // lastly, establish support for graphing cpus & memory
+ Graph_cpus = alloc_c(sizeof(struct graph_parms));
+ Graph_mems = alloc_c(sizeof(struct graph_parms));
+ #undef doALL
+
+ // don't distort startup cpu(s) display ...
+ usleep(LIB_USLEEP);
+} // end: before
+
+
+ /*
+ * A configs_file *Helper* function responsible for transforming
+ * a 3.2.8 - 3.3.17 format 'fieldscur' into our integer based format */
+static int cfg_xform (WIN_t *q, char *flds, const char *defs) {
+ #define CVTon(c) ((c) |= 0x80)
+ static struct {
+ int old, new;
+ } flags_tab[] = {
+ #define old_View_NOBOLD 0x000001
+ #define old_VISIBLE_tsk 0x000008
+ #define old_Qsrt_NORMAL 0x000010
+ #define old_Show_HICOLS 0x000200
+ #define old_Show_THREAD 0x010000
+ { old_View_NOBOLD, View_NOBOLD },
+ { old_VISIBLE_tsk, Show_TASKON },
+ { old_Qsrt_NORMAL, Qsrt_NORMAL },
+ { old_Show_HICOLS, Show_HICOLS },
+ { old_Show_THREAD, 0 }
+ #undef old_View_NOBOLD
+ #undef old_VISIBLE_tsk
+ #undef old_Qsrt_NORMAL
+ #undef old_Show_HICOLS
+ #undef old_Show_THREAD
+ };
+ static char null_flds[] = "abcdefghijklmnopqrstuvwxyz";
+ static const char fields_src[] = CVT_FORMER;
+ char fields_dst[PFLAGSSIZ], *p1, *p2;
+ int c, f, i, x, *pn;
+
+ if (Rc.id == 'a') {
+ // first we'll touch up this window's winflags ...
+ x = q->rc.winflags;
+ q->rc.winflags = 0;
+ for (i = 0; i < MAXTBL(flags_tab); i++) {
+ if (x & flags_tab[i].old) {
+ x &= ~flags_tab[i].old;
+ q->rc.winflags |= flags_tab[i].new;
+ }
+ }
+ q->rc.winflags |= x;
+
+ // now let's convert old top's more limited fields ...
+ f = strlen(flds);
+ if (f >= CVT_FLDMAX)
+ return 1;
+ strcpy(fields_dst, fields_src);
+ /* all other fields represent the 'on' state with a capitalized version
+ of a particular qwerty key. for the 2 additional suse out-of-memory
+ fields it makes perfect sense to do the exact opposite, doesn't it?
+ in any case, we must turn them 'off' temporarily ... */
+ if ((p1 = strchr(flds, '['))) *p1 = '{';
+ if ((p2 = strchr(flds, '\\'))) *p2 = '|';
+ for (i = 0; i < f; i++) {
+ c = flds[i];
+ x = tolower(c) - 'a';
+ if (x < 0 || x >= CVT_FLDMAX)
+ return 1;
+ fields_dst[i] = fields_src[x];
+ if (isupper(c))
+ CVTon(fields_dst[i]);
+ }
+ // if we turned any suse only fields off, turn 'em back on OUR way ...
+ if (p1) CVTon(fields_dst[p1 - flds]);
+ if (p2) CVTon(fields_dst[p2 - flds]);
+
+ // next, we must adjust the old sort field enum ...
+ x = q->rc.sortindx;
+ c = null_flds[x];
+ q->rc.sortindx = 0;
+ if ((p1 = memchr(flds, c, CVT_FLDMAX))
+ || ((p1 = memchr(flds, toupper(c), CVT_FLDMAX)))) {
+ x = p1 - flds;
+ q->rc.sortindx = (fields_dst[x] & 0x7f) - FLD_OFFSET;
+ }
+ // now we're in a 3.3.0 format (soon to be transformed) ...
+ strcpy(flds, fields_dst);
+ }
+
+ // lastly, let's attend to the 3.3.0 - 3.3.17 fieldcurs format ...
+ pn = &q->rc.fieldscur[0];
+ x = strlen(defs);
+ for (i = 0; i < x; i++) {
+ f = ((unsigned char)flds[i] & 0x7f);
+ f = f << 1;
+ if ((unsigned char)flds[i] & 0x80) f |= FLDon;
+ *(pn + i) = f;
+ }
+
+ return 0;
+ #undef CVTon
+} // end: cfg_xform
+
+
+ /*
+ * A configs_file *Helper* function responsible for reading
+ * and validating a configuration file's 'Inspection' entries */
+static int config_insp (FILE *fp, char *buf, size_t size) {
+ int i;
+
+ // we'll start off with a 'potential' blank or empty line
+ // ( only realized if we end up with Inspect.total > 0 )
+ if (!buf[0] || buf[0] != '\n') Inspect.raw = alloc_s("\n");
+ else Inspect.raw = alloc_c(1);
+
+ for (i = 0;;) {
+ #define iT(element) Inspect.tab[i].element
+ #define nxtLINE { buf[0] = '\0'; continue; }
+ size_t lraw = strlen(Inspect.raw) +1;
+ int n, x;
+ char *s1, *s2, *s3;
+
+ if (i < 0 || (size_t)i >= INT_MAX / sizeof(struct I_ent)) break;
+ if (lraw >= INT_MAX - size) break;
+
+ if (!buf[0] && !fgets(buf, size, fp)) break;
+ lraw += strlen(buf) +1;
+ Inspect.raw = alloc_r(Inspect.raw, lraw);
+ strcat(Inspect.raw, buf);
+
+ if (buf[0] == '#' || buf[0] == '\n') nxtLINE;
+ Inspect.tab = alloc_r(Inspect.tab, sizeof(struct I_ent) * (i + 1));
+
+ // part of this is used in a show_special() call, so let's sanitize it
+ for (n = 0, x = strlen(buf); n < x; n++) {
+ if ((buf[n] != '\t' && buf[n] != '\n')
+ && (buf[n] < ' ')) {
+ buf[n] = '.';
+ Rc_questions = 1;
+ }
+ }
+ if (!(s1 = strtok(buf, "\t\n"))) { Rc_questions = 1; nxtLINE; }
+ if (!(s2 = strtok(NULL, "\t\n"))) { Rc_questions = 1; nxtLINE; }
+ if (!(s3 = strtok(NULL, "\t\n"))) { Rc_questions = 1; nxtLINE; }
+
+ switch (toupper(buf[0])) {
+ case 'F':
+ iT(func) = insp_do_file;
+ break;
+ case 'P':
+ iT(func) = insp_do_pipe;
+ break;
+ default:
+ Rc_questions = 1;
+ nxtLINE;
+ }
+ iT(type) = alloc_s(s1);
+ iT(name) = alloc_s(s2);
+ iT(fmts) = alloc_s(s3);
+ iT(farg) = (strstr(iT(fmts), "%d")) ? 1 : 0;
+ iT(fstr) = alloc_c(FNDBUFSIZ);
+ iT(flen) = 0;
+
+ buf[0] = '\0';
+ ++i;
+ #undef iT
+ #undef nxtLINE
+ } // end: for ('inspect' entries)
+
+ Inspect.total = i;
+#ifndef INSP_OFFDEMO
+ if (!Inspect.total) {
+ #define mkS(n) N_txt(YINSP_demo ## n ## _txt)
+ const char *sels[] = { mkS(01), mkS(02), mkS(03) };
+ Inspect.total = Inspect.demo = MAXTBL(sels);
+ Inspect.tab = alloc_c(sizeof(struct I_ent) * Inspect.total);
+ for (i = 0; i < Inspect.total; i++) {
+ Inspect.tab[i].type = alloc_s(N_txt(YINSP_deqtyp_txt));
+ Inspect.tab[i].name = alloc_s(sels[i]);
+ Inspect.tab[i].func = insp_do_demo;
+ Inspect.tab[i].fmts = alloc_s(N_txt(YINSP_deqfmt_txt));
+ Inspect.tab[i].fstr = alloc_c(FNDBUFSIZ);
+ }
+ #undef mkS
+ }
+#endif
+ return 0;
+} // end: config_insp
+
+
+ /*
+ * A configs_file *Helper* function responsible for reading
+ * and validating a configuration file's 'Other Filter' entries */
+static int config_osel (FILE *fp, char *buf, size_t size) {
+ int i, ch, tot, wno, begun;
+ char *p;
+
+ for (begun = 0;;) {
+ if (!fgets(buf, size, fp)) return 0;
+ if (buf[0] == '\n') continue;
+ // whoa, must be an 'inspect' entry
+ if (!begun && !strstr(buf, Osel_delim_1_txt))
+ return 0;
+ // ok, we're now beginning
+ if (!begun && strstr(buf, Osel_delim_1_txt)) {
+ begun = 1;
+ continue;
+ }
+ // this marks the end of our stuff
+ if (begun && strstr(buf, Osel_delim_2_txt))
+ break;
+
+ if (2 != sscanf(buf, Osel_window_fmts, &wno, &tot))
+ goto end_oops;
+ if (wno < 0 || wno >= GROUPSMAX) goto end_oops;
+ if (tot < 0) goto end_oops;
+
+ for (i = 0; i < tot; i++) {
+ if (!fgets(buf, size, fp)) return 1;
+ if (1 > sscanf(buf, Osel_filterI_fmt, &ch)) goto end_oops;
+ if ((p = strchr(buf, '\n'))) *p = '\0';
+ if (!(p = strstr(buf, OSEL_FILTER))) goto end_oops;
+ p += sizeof(OSEL_FILTER) - 1;
+ if (osel_add(&Winstk[wno], ch, p, 0)) goto end_oops;
+ }
+ }
+ // let's prime that buf for the next guy...
+ fgets(buf, size, fp);
+ return 0;
+
+end_oops:
+ Rc_questions = 1;
+ return 1;
+} // end: config_osel
+
+
+ /*
+ * A configs_reads *Helper* function responsible for processing
+ * a configuration file (personal or system-wide default) */
+static const char *configs_file (FILE *fp, const char *name, float *delay) {
+ char fbuf[LRGBUFSIZ];
+ int i, n, tmp_whole, tmp_fract;
+ const char *p = NULL;
+
+ p = fmtmk(N_fmt(RC_bad_files_fmt), name);
+ (void)fgets(fbuf, sizeof(fbuf), fp); // ignore eyecatcher
+ if (6 != fscanf(fp
+ , "Id:%c, Mode_altscr=%d, Mode_irixps=%d, Delay_time=%d.%d, Curwin=%d\n"
+ , &Rc.id, &Rc.mode_altscr, &Rc.mode_irixps, &tmp_whole, &tmp_fract, &i)) {
+ return p;
+ }
+ if (Rc.id < 'a' || Rc.id > RCF_VERSION_ID)
+ return p;
+ if (strchr("bcde", Rc.id))
+ return p;
+ if (Rc.mode_altscr < 0 || Rc.mode_altscr > 1)
+ return p;
+ if (Rc.mode_irixps < 0 || Rc.mode_irixps > 1)
+ return p;
+ if (tmp_whole < 0)
+ return p;
+ // you saw that, right? (fscanf stickin' it to 'i')
+ if (i < 0 || i >= GROUPSMAX)
+ return p;
+ Curwin = &Winstk[i];
+ // this may be ugly, but it keeps us locale independent...
+ *delay = (float)tmp_whole + (float)tmp_fract / 1000;
+
+ for (i = 0 ; i < GROUPSMAX; i++) {
+ static const char *def_flds[] = { DEF_FORMER, JOB_FORMER, MEM_FORMER, USR_FORMER };
+ int j, x;
+ WIN_t *w = &Winstk[i];
+ p = fmtmk(N_fmt(RC_bad_entry_fmt), i+1, name);
+
+ if (1 != fscanf(fp, "%3s\tfieldscur=", w->rc.winname))
+ return p;
+ if (Rc.id < RCF_XFORMED_ID)
+ fscanf(fp, "%s\n", fbuf);
+ else {
+ for (j = 0; ; j++)
+ if (1 != fscanf(fp, "%d", &w->rc.fieldscur[j]))
+ break;
+ }
+
+ // be tolerant of missing release 3.3.10 graph modes additions
+ if (3 > fscanf(fp, "\twinflags=%d, sortindx=%d, maxtasks=%d, graph_cpus=%d, graph_mems=%d"
+ ", double_up=%d, combine_cpus=%d, core_types=%d\n"
+ , &w->rc.winflags, &w->rc.sortindx, &w->rc.maxtasks, &w->rc.graph_cpus, &w->rc.graph_mems
+ , &w->rc.double_up, &w->rc.combine_cpus, &w->rc.core_types))
+ return p;
+ if (w->rc.sortindx < 0 || w->rc.sortindx >= EU_MAXPFLGS)
+ return p;
+ if (w->rc.maxtasks < 0)
+ return p;
+ if (w->rc.graph_cpus < 0 || w->rc.graph_cpus > 2)
+ return p;
+ if (w->rc.graph_mems < 0 || w->rc.graph_mems > 2)
+ return p;
+ if (w->rc.double_up < 0 || w->rc.double_up >= ADJOIN_limit)
+ return p;
+ // can't check upper bounds until Cpu_cnt is known
+ if (w->rc.combine_cpus < 0)
+ return p;
+ if (w->rc.core_types < 0 || w->rc.core_types > E_CORES_ONLY)
+ return p;
+
+ if (4 != fscanf(fp, "\tsummclr=%d, msgsclr=%d, headclr=%d, taskclr=%d\n"
+ , &w->rc.summclr, &w->rc.msgsclr, &w->rc.headclr, &w->rc.taskclr))
+ return p;
+ // would prefer to use 'max_colors', but it isn't available yet...
+ if (w->rc.summclr < 0 || w->rc.summclr > 255) return p;
+ if (w->rc.msgsclr < 0 || w->rc.msgsclr > 255) return p;
+ if (w->rc.headclr < 0 || w->rc.headclr > 255) return p;
+ if (w->rc.taskclr < 0 || w->rc.taskclr > 255) return p;
+
+ switch (Rc.id) {
+ case 'a': // 3.2.8 (former procps)
+ // fall through
+ case 'f': // 3.3.0 thru 3.3.3 (ng)
+ SETw(w, Show_JRNUMS);
+ // fall through
+ case 'g': // from 3.3.4 thru 3.3.8
+ if (Rc.id > 'a') scat(fbuf, RCF_PLUS_H);
+ // fall through
+ case 'h': // this is release 3.3.9
+ w->rc.graph_cpus = w->rc.graph_mems = 0;
+ // these next 2 are really global, but best documented here
+ Rc.summ_mscale = Rc.task_mscale = SK_Kb;
+ // fall through
+ case 'i': // from 3.3.10 thru 3.3.16
+ if (Rc.id > 'a') scat(fbuf, RCF_PLUS_J);
+ w->rc.double_up = w->rc.combine_cpus = 0;
+ // fall through
+ case 'j': // this is release 3.3.17
+ if (cfg_xform(w, fbuf, def_flds[i]))
+ return p;
+ Rc.tics_scaled = 0;
+ // fall through
+ case 'k': // current RCF_VERSION_ID
+ // fall through
+ default:
+ if (mlen(w->rc.fieldscur) < EU_MAXPFLGS)
+ return p;
+ for (x = 0; x < EU_MAXPFLGS; x++) {
+ FLG_t f = FLDget(w, x);
+ if (f >= EU_MAXPFLGS || f < 0)
+ return p;
+ }
+ break;
+ }
+ // ensure there's been no manual alteration of fieldscur
+ for (n = 0 ; n < EU_MAXPFLGS; n++) {
+ if (&w->rc.fieldscur[n] != msch(w->rc.fieldscur, w->rc.fieldscur[n], EU_MAXPFLGS))
+ return p;
+ }
+ } // end: for (GROUPSMAX)
+
+ // any new addition(s) last, for older rcfiles compatibility...
+ (void)fscanf(fp, "Fixed_widest=%d, Summ_mscale=%d, Task_mscale=%d, Zero_suppress=%d, Tics_scaled=%d\n"
+ , &Rc.fixed_widest, &Rc.summ_mscale, &Rc.task_mscale, &Rc.zero_suppress, &Rc.tics_scaled);
+ if (Rc.fixed_widest < -1 || Rc.fixed_widest > SCREENMAX)
+ Rc.fixed_widest = 0;
+ if (Rc.summ_mscale < 0 || Rc.summ_mscale > SK_Eb)
+ Rc.summ_mscale = 0;
+ if (Rc.task_mscale < 0 || Rc.task_mscale > SK_Pb)
+ Rc.task_mscale = 0;
+ if (Rc.zero_suppress < 0 || Rc.zero_suppress > 1)
+ Rc.zero_suppress = 0;
+ if (Rc.tics_scaled < 0 || Rc.tics_scaled > TICS_AS_LAST)
+ Rc.tics_scaled = 0;
+
+ // prepare to warn that older top can no longer read rcfile ...
+ if (Rc.id != RCF_VERSION_ID)
+ Rc_compatibilty = 1;
+
+ // lastly, let's process any optional glob(s) ...
+ // (darn, must do osel 1st even though alphabetically 2nd)
+ fbuf[0] = '\0';
+ config_osel(fp, fbuf, sizeof(fbuf));
+ config_insp(fp, fbuf, sizeof(fbuf));
+
+ return NULL;
+} // end: configs_file
+
+
+ /*
+ * A configs_reads *Helper* function responsible for ensuring the
+ * complete path was established, otherwise force the 'W' to fail */
+static int configs_path (const char *const fmts, ...) __attribute__((format(printf,1,2)));
+static int configs_path (const char *const fmts, ...) {
+ int len;
+ va_list ap;
+
+ va_start(ap, fmts);
+ len = vsnprintf(Rc_name, sizeof(Rc_name), fmts, ap);
+ va_end(ap);
+ if (len <= 0 || (size_t)len >= sizeof(Rc_name)) {
+ Rc_name[0] = '\0';
+ len = 0;
+ }
+ return len;
+} // end: configs_path
+
+
+ /*
+ * Try reading up to 3 rcfiles
+ * 1. 'SYS_RCRESTRICT' contains two lines consisting of the secure
+ * mode switch and an update interval. Its presence limits what
+ * ordinary users are allowed to do.
+ * 2. 'Rc_name' contains multiple lines - both global & per window.
+ * line 1 : an eyecatcher and creating program/alias name
+ * line 2 : an id, Mode_altcsr, Mode_irixps, Delay_time, Curwin.
+ * For each of the 4 windows:
+ * lines a: contains w->winname, fieldscur
+ * line b: contains w->winflags, sortindx, maxtasks, etc
+ * line c: contains w->summclr, msgsclr, headclr, taskclr
+ * global : miscellaneous additional settings
+ * Any remaining lines are devoted to the optional entries
+ * supporting the 'Other Filter' and 'Inspect' provisions.
+ * 3. 'SYS_RCDEFAULTS' system-wide defaults if 'Rc_name' absent
+ * format is identical to #2 above */
+static void configs_reads (void) {
+ float tmp_delay = DEF_DELAY;
+ const char *p, *p_home;
+ FILE *fp;
+
+ fp = fopen(SYS_RCRESTRICT, "r");
+ if (fp) {
+ char fbuf[SMLBUFSIZ];
+ if (fgets(fbuf, sizeof(fbuf), fp)) { // sys rc file, line 1
+ Secure_mode = 1;
+ if (fgets(fbuf, sizeof(fbuf), fp)) // sys rc file, line 2
+ sscanf(fbuf, "%f", &Rc.delay_time);
+ }
+ fclose(fp);
+ }
+
+ Rc_name[0] = '\0'; // "fopen() shall fail if pathname is an empty string."
+ // attempt to use the legacy file first, if we cannot access that file, use
+ // the new XDG basedir locations (XDG_CONFIG_HOME or HOME/.config) instead.
+ p_home = getenv("HOME");
+ if (!p_home || p_home[0] != '/') {
+ const struct passwd *const pwd = getpwuid(getuid());
+ if (!pwd || !(p_home = pwd->pw_dir) || p_home[0] != '/') {
+ p_home = NULL;
+ }
+ }
+ if (p_home)
+ configs_path("%s/.%src", p_home, Myname);
+
+ if (!(fp = fopen(Rc_name, "r"))) {
+ p = getenv("XDG_CONFIG_HOME");
+ // ensure the path we get is absolute, fallback otherwise.
+ if (!p || p[0] != '/') {
+ if (!p_home) goto system_default;
+ p = fmtmk("%s/.config", p_home);
+ (void)mkdir(p, 0700);
+ }
+ if (!configs_path("%s/procps", p)) goto system_default;
+ (void)mkdir(Rc_name, 0700);
+ if (!configs_path("%s/procps/%src", p, Myname)) goto system_default;
+ fp = fopen(Rc_name, "r");
+ }
+
+ if (fp) {
+ p = configs_file(fp, Rc_name, &tmp_delay);
+ fclose(fp);
+ if (p) goto default_or_error;
+ } else {
+system_default:
+ fp = fopen(SYS_RCDEFAULTS, "r");
+ if (fp) {
+ p = configs_file(fp, SYS_RCDEFAULTS, &tmp_delay);
+ fclose(fp);
+ if (p) goto default_or_error;
+ }
+ }
+
+ // lastly, establish the true runtime secure mode and delay time
+ if (!getuid()) Secure_mode = 0;
+ if (!Secure_mode) Rc.delay_time = tmp_delay;
+ return;
+
+default_or_error:
+#ifdef RCFILE_NOERR
+{ RCF_t rcdef = DEF_RCFILE;
+ int i;
+ Rc = rcdef;
+ for (i = 0 ; i < GROUPSMAX; i++)
+ Winstk[i].rc = Rc.win[i];
+}
+#else
+ error_exit(p);
+#endif
+} // end: configs_reads
+
+
+ /*
+ * Parse command line arguments.
+ * Note: it's assumed that the rc file(s) have already been read
+ * and our job is to see if any of those options are to be
+ * overridden -- we'll force some on and negate others in our
+ * best effort to honor the loser's (oops, user's) wishes... */
+static void parse_args (int argc, char **argv) {
+ static const char sopts[] = "bcd:E:e:Hhin:Oo:p:SsU:u:Vw::1";
+ static const struct option lopts[] = {
+ { "batch-mode", no_argument, NULL, 'b' },
+ { "cmdline-toggle", no_argument, NULL, 'c' },
+ { "delay", required_argument, NULL, 'd' },
+ { "scale-summary-mem", required_argument, NULL, 'E' },
+ { "scale-task-mem", required_argument, NULL, 'e' },
+ { "threads-show", no_argument, NULL, 'H' },
+ { "help", no_argument, NULL, 'h' },
+ { "idle-toggle", no_argument, NULL, 'i' },
+ { "iterations", required_argument, NULL, 'n' },
+ { "list-fields", no_argument, NULL, 'O' },
+ { "sort-override", required_argument, NULL, 'o' },
+ { "pid", required_argument, NULL, 'p' },
+ { "accum-time-toggle", no_argument, NULL, 'S' },
+ { "secure-mode", no_argument, NULL, 's' },
+ { "filter-any-user", required_argument, NULL, 'U' },
+ { "filter-only-euser", required_argument, NULL, 'u' },
+ { "version", no_argument, NULL, 'V' },
+ { "width", optional_argument, NULL, 'w' },
+ { "single-cpu-toggle", no_argument, NULL, '1' },
+ { NULL, 0, NULL, 0 }
+ };
+ float tmp_delay = FLT_MAX;
+ int ch;
+
+ while (-1 != (ch = getopt_long(argc, argv, sopts, lopts, NULL))) {
+ int i;
+ float tmp;
+ char *cp = optarg;
+
+#ifndef GETOPTFIX_NO
+ /* first, let's plug some awful gaps in the getopt implementation,
+ especially relating to short options with (optional) arguments! */
+ if (!cp && optind < argc && argv[optind][0] != '-')
+ cp = argv[optind++];
+ if (cp) {
+ if (*cp == '=') ++cp;
+ /* here, if we're actually accessing argv[argc], we'll rely on
+ the required NULL delimiter which yields an error_exit next */
+ if (*cp == '\0') cp = argv[optind++];
+ if (!cp) error_exit(fmtmk(N_fmt(MISSING_args_fmt), ch));
+ }
+#endif
+ switch (ch) {
+ case '1': // ensure behavior identical to run-time toggle
+ if (CHKw(Curwin, View_CPUNOD)) OFFw(Curwin, View_CPUSUM);
+ else TOGw(Curwin, View_CPUSUM);
+ OFFw(Curwin, View_CPUNOD);
+ SETw(Curwin, View_STATES);
+ break;
+ case 'b':
+ Batch = 1;
+ break;
+ case 'c':
+ TOGw(Curwin, Show_CMDLIN);
+ break;
+ case 'd':
+ if (!mkfloat(cp, &tmp_delay, 0))
+ error_exit(fmtmk(N_fmt(BAD_delayint_fmt), cp));
+ if (0 > tmp_delay)
+ error_exit(N_txt(DELAY_badarg_txt));
+ continue;
+ case 'E':
+ { const char *get = "kmgtpe", *got;
+ if (!(got = strchr(get, tolower(*cp))) || strlen(cp) > 1)
+ error_exit(fmtmk(N_fmt(BAD_memscale_fmt), cp));
+ Rc.summ_mscale = (int)(got - get);
+ } continue;
+ case 'e':
+ { const char *get = "kmgtp", *got;
+ if (!(got = strchr(get, tolower(*cp))) || strlen(cp) > 1)
+ error_exit(fmtmk(N_fmt(BAD_memscale_fmt), cp));
+ Rc.task_mscale = (int)(got - get);
+ } continue;
+ case 'H':
+ Thread_mode = 1;
+ break;
+ case 'h':
+ puts(fmtmk(N_fmt(HELP_cmdline_fmt), Myname));
+ bye_bye(NULL);
+ case 'i':
+ TOGw(Curwin, Show_IDLEPS);
+ Curwin->rc.maxtasks = 0;
+ break;
+ case 'n':
+ if (!mkfloat(cp, &tmp, 1) || 1.0 > tmp)
+ error_exit(fmtmk(N_fmt(BAD_niterate_fmt), cp));
+ Loops = (int)tmp;
+ continue;
+ case 'O':
+ for (i = 0; i < EU_MAXPFLGS; i++)
+ puts(N_col(i));
+ bye_bye(NULL);
+ case 'o':
+ if (*cp == '+') { SETw(Curwin, Qsrt_NORMAL); ++cp; }
+ else if (*cp == '-') { OFFw(Curwin, Qsrt_NORMAL); ++cp; }
+ for (i = 0; i < EU_MAXPFLGS; i++)
+ if (!STRCMP(cp, N_col(i))) break;
+ if (i == EU_MAXPFLGS)
+ error_exit(fmtmk(N_fmt(XTRA_badflds_fmt), cp));
+ OFFw(Curwin, Show_FOREST);
+ Curwin->rc.sortindx = i;
+ continue;
+ case 'p':
+ { int pid; char *p;
+ if (Curwin->usrseltyp) error_exit(N_txt(SELECT_clash_txt));
+ do {
+ if (Monpidsidx >= MONPIDMAX)
+ error_exit(fmtmk(N_fmt(LIMIT_exceed_fmt), MONPIDMAX));
+ if (1 != sscanf(cp, "%d", &pid)
+ || strpbrk(cp, "+-."))
+ error_exit(fmtmk(N_fmt(BAD_mon_pids_fmt), cp));
+ if (!pid) pid = getpid();
+ for (i = 0; i < Monpidsidx; i++)
+ if (Monpids[i] == pid) goto next_pid;
+ Monpids[Monpidsidx++] = pid;
+ next_pid:
+ if (!(p = strchr(cp, ','))) break;
+ cp = p + 1;
+ } while (*cp);
+ } continue;
+ case 'S':
+ TOGw(Curwin, Show_CTIMES);
+ break;
+ case 's':
+ Secure_mode = 1;
+ break;
+ case 'U':
+ case 'u':
+ { const char *errmsg;
+ if (Monpidsidx || Curwin->usrseltyp) error_exit(N_txt(SELECT_clash_txt));
+ if ((errmsg = user_certify(Curwin, cp, ch))) error_exit(errmsg);
+ } continue;
+ case 'V':
+ puts(fmtmk(N_fmt(VERSION_opts_fmt), Myname, PACKAGE_STRING));
+ bye_bye(NULL);
+ case 'w':
+ tmp = -1;
+ if (cp && (!mkfloat(cp, &tmp, 1) || tmp < W_MIN_COL || tmp > SCREENMAX))
+ error_exit(fmtmk(N_fmt(BAD_widtharg_fmt), cp));
+ Width_mode = (int)tmp;
+ continue;
+ default:
+ /* we'll rely on getopt for any error message while
+ forcing an EXIT_FAILURE with an empty string ... */
+ bye_bye("");
+ } // end: switch (ch)
+#ifndef GETOPTFIX_NO
+ if (cp) error_exit(fmtmk(N_fmt(UNKNOWN_opts_fmt), cp));
+#endif
+ } // end: while getopt_long
+
+ if (optind < argc)
+ error_exit(fmtmk(N_fmt(UNKNOWN_opts_fmt), argv[optind]));
+
+ // fixup delay time, maybe...
+ if (FLT_MAX > tmp_delay) {
+ if (Secure_mode)
+ error_exit(N_txt(DELAY_secure_txt));
+ Rc.delay_time = tmp_delay;
+ }
+} // end: parse_args
+
+
+ /*
+ * Establish a robust signals environment */
+static void signals_set (void) {
+ #ifndef SIGRTMAX // not available on hurd, maybe others too
+ #define SIGRTMAX 32
+ #endif
+ int i;
+ struct sigaction sa;
+
+ memset(&sa, 0, sizeof(sa));
+ sigemptyset(&sa.sa_mask);
+ // with user position preserved through SIGWINCH, we must avoid SA_RESTART
+ sa.sa_flags = 0;
+ for (i = SIGRTMAX; i; i--) {
+ switch (i) {
+ case SIGHUP:
+ if (Batch)
+ sa.sa_handler = SIG_IGN;
+ else
+ sa.sa_handler = sig_endpgm;
+ break;
+ case SIGALRM: case SIGINT: case SIGPIPE:
+ case SIGQUIT: case SIGTERM: case SIGUSR1:
+ case SIGUSR2:
+ sa.sa_handler = sig_endpgm;
+ break;
+ case SIGTSTP: case SIGTTIN: case SIGTTOU:
+ sa.sa_handler = sig_paused;
+ break;
+ case SIGCONT: case SIGWINCH:
+ sa.sa_handler = sig_resize;
+ break;
+ default:
+ sa.sa_handler = sig_abexit;
+ break;
+ case SIGKILL: case SIGSTOP:
+ // because uncatchable, fall through
+ case SIGCHLD: // we can't catch this
+ continue; // when opening a pipe
+ }
+ sigaction(i, &sa, NULL);
+ }
+} // end: signals_set
+
+
+ /*
+ * Set up the terminal attributes */
+static void whack_terminal (void) {
+ static char dummy[] = "dumb";
+ struct termios tmptty;
+
+ // the curses part...
+ if (Batch) {
+ setupterm(dummy, STDOUT_FILENO, NULL);
+ return;
+ }
+#ifdef PRETENDNOCAP
+ setupterm(dummy, STDOUT_FILENO, NULL);
+#else
+ setupterm(NULL, STDOUT_FILENO, NULL);
+#endif
+ // our part...
+ if (-1 == tcgetattr(STDIN_FILENO, &Tty_original))
+ error_exit(N_txt(FAIL_tty_get_txt));
+ // ok, haven't really changed anything but we do have our snapshot
+ Ttychanged = 1;
+
+ // first, a consistent canonical mode for interactive line input
+ tmptty = Tty_original;
+ tmptty.c_lflag |= (ECHO | ECHOCTL | ECHOE | ICANON | ISIG);
+ tmptty.c_lflag &= ~NOFLSH;
+ tmptty.c_oflag &= ~TAB3;
+ tmptty.c_iflag |= BRKINT;
+ tmptty.c_iflag &= ~IGNBRK;
+#ifdef TERMIOS_ONLY
+ if (-1 == tcsetattr(STDIN_FILENO, TCSAFLUSH, &tmptty))
+ error_exit(fmtmk(N_fmt(FAIL_tty_set_fmt), strerror(errno)));
+ tcgetattr(STDIN_FILENO, &Tty_tweaked);
+#endif
+ // lastly, a nearly raw mode for unsolicited single keystrokes
+ tmptty.c_lflag &= ~(ECHO | ECHOCTL | ECHOE | ICANON);
+ tmptty.c_cc[VMIN] = 1;
+ tmptty.c_cc[VTIME] = 0;
+ if (-1 == tcsetattr(STDIN_FILENO, TCSAFLUSH, &tmptty))
+ error_exit(fmtmk(N_fmt(FAIL_tty_set_fmt), strerror(errno)));
+ tcgetattr(STDIN_FILENO, &Tty_raw);
+
+#ifndef OFF_STDIOLBF
+ // thanks anyway stdio, but we'll manage buffering at the frame level...
+ setbuffer(stdout, Stdout_buf, sizeof(Stdout_buf));
+#endif
+#ifdef OFF_SCROLLBK
+ // this has the effect of disabling any troublesome scrollback buffer...
+ if (enter_ca_mode) putp(enter_ca_mode);
+#endif
+ // and don't forget to ask iokey to initialize his tinfo_tab
+ iokey(IOKEY_INIT);
+} // end: whack_terminal
+
+/*###### Windows/Field Groups support #################################*/
+
+ /*
+ * Value a window's name and make the associated group name. */
+static void win_names (WIN_t *q, const char *name) {
+ /* note: sprintf/snprintf results are "undefined" when src==dst,
+ according to C99 & POSIX.1-2001 (thanks adc) */
+ if (q->rc.winname != name)
+ snprintf(q->rc.winname, sizeof(q->rc.winname), "%s", name);
+ snprintf(q->grpname, sizeof(q->grpname), "%d:%s", q->winnum, name);
+} // end: win_names
+
+
+ /*
+ * This guy just resets (normalizes) a single window
+ * and he ensures pid monitoring is no longer active. */
+static void win_reset (WIN_t *q) {
+ SETw(q, Show_IDLEPS | Show_TASKON);
+#ifndef SCROLLVAR_NO
+ q->rc.maxtasks = q->usrseltyp = q->begpflg = q->begtask = q->varcolbeg = q->focus_pid = 0;
+#else
+ q->rc.maxtasks = q->usrseltyp = q->begpflg = q->begtask = q->focus_pid = 0;
+#endif
+ mkVIZoff(q)
+ osel_clear(q);
+ q->findstr[0] = '\0';
+ q->rc.combine_cpus = 0;
+ q->rc.core_types = 0;
+
+ // these next guys are global, not really windows based
+ Monpidsidx = 0;
+ Rc.tics_scaled = 0;
+ BOT_TOSS;
+} // end: win_reset
+
+
+ /*
+ * Display a window/field group (ie. make it "current"). */
+static WIN_t *win_select (int ch) {
+ WIN_t *w = Curwin; // avoid gcc bloat with a local copy
+
+ /* if there's no ch, it means we're supporting the external interface,
+ so we must try to get our own darn ch by begging the user... */
+ if (!ch) {
+ show_pmt(N_txt(CHOOSE_group_txt));
+ if (1 > (ch = iokey(IOKEY_ONCE))) return w;
+ }
+ switch (ch) {
+ case 'a': // we don't carry 'a' / 'w' in our
+ w = w->next; // pmt - they're here for a good
+ break; // friend of ours -- wins_colors.
+ case 'w': // (however those letters work via
+ w = w->prev; // the pmt too but gee, end-loser
+ break; // should just press the darn key)
+ case '1': case '2' : case '3': case '4':
+ w = &Winstk[ch - '1'];
+ break;
+ default: // keep gcc happy
+ break;
+ }
+ Curwin = w;
+ return Curwin;
+} // end: win_select
+
+
+ /*
+ * Just warn the user when a command can't be honored. */
+static int win_warn (int what) {
+ switch (what) {
+ case Warn_ALT:
+ show_msg(N_txt(DISABLED_cmd_txt));
+ break;
+ case Warn_VIZ:
+ show_msg(fmtmk(N_fmt(DISABLED_win_fmt), Curwin->grpname));
+ break;
+ default: // keep gcc happy
+ break;
+ }
+ /* we gotta' return false 'cause we're somewhat well known within
+ macro society, by way of that sassy little tertiary operator... */
+ return 0;
+} // end: win_warn
+
+
+ /*
+ * Change colors *Helper* function to save/restore settings;
+ * ensure colors will show; and rebuild the terminfo strings. */
+static void wins_clrhlp (WIN_t *q, int save) {
+ static int flgssav, summsav, msgssav, headsav, tasksav;
+
+ if (save) {
+ flgssav = q->rc.winflags; summsav = q->rc.summclr;
+ msgssav = q->rc.msgsclr; headsav = q->rc.headclr; tasksav = q->rc.taskclr;
+ SETw(q, Show_COLORS);
+ } else {
+ q->rc.winflags = flgssav; q->rc.summclr = summsav;
+ q->rc.msgsclr = msgssav; q->rc.headclr = headsav; q->rc.taskclr = tasksav;
+ }
+ capsmk(q);
+} // end: wins_clrhlp
+
+
+ /*
+ * Change colors used in display */
+static void wins_colors (void) {
+ #define kbdABORT 'q'
+ #define kbdAPPLY kbd_ENTER
+ WIN_t *w = Curwin; // avoid gcc bloat with a local copy
+ int clr = w->rc.taskclr, *pclr = &w->rc.taskclr;
+ char tgt = 'T';
+ int key;
+
+ if (0 >= max_colors) {
+ show_msg(N_txt(COLORS_nomap_txt));
+ return;
+ }
+ wins_clrhlp(w, 1);
+ putp((Cursor_state = Cap_curs_huge));
+signify_that:
+ putp(Cap_clr_scr);
+ adj_geometry();
+
+ do {
+ putp(Cap_home);
+ // this string is well above ISO C89's minimum requirements!
+ show_special(1, fmtmk(N_unq(COLOR_custom_fmt)
+ , w->grpname
+ , CHKw(w, View_NOBOLD) ? N_txt(ON_word_only_txt) : N_txt(OFF_one_word_txt)
+ , CHKw(w, Show_COLORS) ? N_txt(ON_word_only_txt) : N_txt(OFF_one_word_txt)
+ , CHKw(w, Show_HIBOLD) ? N_txt(ON_word_only_txt) : N_txt(OFF_one_word_txt)
+ , tgt, max_colors, clr, w->grpname));
+ putp(Cap_clr_eos);
+ fflush(stdout);
+
+ if (Frames_signal) goto signify_that;
+ key = iokey(IOKEY_ONCE);
+ if (key < 1) goto signify_that;
+ if (key == kbd_ESC) break;
+
+ switch (key) {
+ case 'S':
+ pclr = &w->rc.summclr;
+ clr = *pclr;
+ tgt = key;
+ break;
+ case 'M':
+ pclr = &w->rc.msgsclr;
+ clr = *pclr;
+ tgt = key;
+ break;
+ case 'H':
+ pclr = &w->rc.headclr;
+ clr = *pclr;
+ tgt = key;
+ break;
+ case 'T':
+ pclr = &w->rc.taskclr;
+ clr = *pclr;
+ tgt = key;
+ break;
+ case '0': case '1': case '2': case '3':
+ case '4': case '5': case '6': case '7':
+ clr = key - '0';
+ *pclr = clr;
+ break;
+ case kbd_UP:
+ ++clr;
+ if (clr >= max_colors) clr = 0;
+ *pclr = clr;
+ break;
+ case kbd_DOWN:
+ --clr;
+ if (clr < 0) clr = max_colors - 1;
+ *pclr = clr;
+ break;
+ case 'B':
+ TOGw(w, View_NOBOLD);
+ break;
+ case 'b':
+ TOGw(w, Show_HIBOLD);
+ break;
+ case 'z':
+ TOGw(w, Show_COLORS);
+ break;
+ case 'a':
+ case 'w':
+ wins_clrhlp((w = win_select(key)), 1);
+ clr = w->rc.taskclr, pclr = &w->rc.taskclr;
+ tgt = 'T';
+ break;
+ default:
+ break; // keep gcc happy
+ }
+ capsmk(w);
+ } while (key != kbdAPPLY && key != kbdABORT);
+
+ if (key == kbdABORT || key == kbd_ESC) wins_clrhlp(w, 0);
+ // signal that we just corrupted entire screen
+ Frames_signal = BREAK_screen;
+ #undef kbdABORT
+ #undef kbdAPPLY
+} // end: wins_colors
+
+
+ /*
+ * Manipulate flag(s) for all our windows. */
+static void wins_reflag (int what, int flg) {
+ WIN_t *w = Curwin; // avoid gcc bloat with a local copy
+
+ do {
+ switch (what) {
+ case Flags_TOG:
+ TOGw(w, flg);
+ break;
+ case Flags_SET: // Ummmm, i can't find anybody
+ SETw(w, flg); // who uses Flags_set ...
+ break;
+ case Flags_OFF:
+ OFFw(w, flg);
+ break;
+ default: // keep gcc happy
+ break;
+ }
+ /* a flag with special significance -- user wants to rebalance
+ display so we gotta' off some stuff then force on two flags... */
+ if (EQUWINS_xxx == flg)
+ win_reset(w);
+
+ w = w->next;
+ } while (w != Curwin);
+} // end: wins_reflag
+
+
+ /*
+ * Set up the raw/incomplete field group windows --
+ * they'll be finished off after startup completes.
+ * [ and very likely that will override most/all of our efforts ]
+ * [ --- life-is-NOT-fair --- ] */
+static void wins_stage_1 (void) {
+ WIN_t *w;
+ int i;
+
+ for (i = 0; i < GROUPSMAX; i++) {
+ w = &Winstk[i];
+ w->winnum = i + 1;
+ w->rc = Rc.win[i];
+ w->captab[0] = Cap_norm;
+ w->captab[1] = Cap_norm;
+ w->captab[2] = w->cap_bold;
+ w->captab[3] = w->capclr_sum;
+ w->captab[4] = w->capclr_msg;
+ w->captab[5] = w->capclr_pmt;
+ w->captab[6] = w->capclr_hdr;
+ w->captab[7] = w->capclr_rowhigh;
+ w->captab[8] = w->capclr_rownorm;
+ w->next = w + 1;
+ w->prev = w - 1;
+ }
+
+ // fixup the circular chains...
+ Winstk[GROUPSMAX - 1].next = &Winstk[0];
+ Winstk[0].prev = &Winstk[GROUPSMAX - 1];
+ Curwin = Winstk;
+
+ for (i = 1; i < BOT_MSGSMAX; i++)
+ Msg_tab[i].prev = &Msg_tab[i - 1];
+ Msg_tab[0].prev = &Msg_tab[BOT_MSGSMAX -1];
+} // end: wins_stage_1
+
+
+ /*
+ * This guy just completes the field group windows after the
+ * rcfiles have been read and command line arguments parsed.
+ * And since he's the cabose of startup, he'll also tidy up
+ * a few final things... */
+static void wins_stage_2 (void) {
+ int i;
+
+ for (i = 0; i < GROUPSMAX; i++) {
+ win_names(&Winstk[i], Winstk[i].rc.winname);
+ capsmk(&Winstk[i]);
+ Winstk[i].findstr = alloc_c(FNDBUFSIZ);
+ Winstk[i].findlen = 0;
+ if (Winstk[i].rc.combine_cpus >= Cpu_cnt)
+ Winstk[i].rc.combine_cpus = 0;
+ if (CHKw(&Winstk[i], (View_CPUSUM | View_CPUNOD)))
+ Winstk[i].rc.double_up = 0;
+ }
+ if (!Batch)
+ putp((Cursor_state = Cap_curs_hide));
+ else {
+ OFFw(Curwin, View_SCROLL);
+ signal(SIGHUP, SIG_IGN); // allow running under nohup
+ }
+ // fill in missing Fieldstab members and build each window's columnhdr
+ zap_fieldstab();
+
+ // with preserved 'other filters' & command line 'user filters',
+ // we must ensure that we always have a visible task on row one.
+ mkVIZrow1
+
+ // lastly, initialize a signal set used to throttle one troublesome signal
+ sigemptyset(&Sigwinch_set);
+#ifdef SIGNALS_LESS
+ sigaddset(&Sigwinch_set, SIGWINCH);
+#endif
+} // end: wins_stage_2
+
+
+ /*
+ * Determine if this task matches the 'u/U' selection
+ * criteria for a given window */
+static inline int wins_usrselect (const WIN_t *q, int idx) {
+ // a tailored 'results stack value' extractor macro
+ #define rSv(E) PID_VAL(E, u_int, p)
+ struct pids_stack *p = q->ppt[idx];
+
+ switch (q->usrseltyp) {
+ case 0: // uid selection inactive
+ return 1;
+ case 'U': // match any uid
+ if (rSv(EU_URD) == (unsigned)q->usrseluid) return q->usrselflg;
+ if (rSv(EU_USD) == (unsigned)q->usrseluid) return q->usrselflg;
+ if (rSv(eu_ID_FUID) == (unsigned)q->usrseluid) return q->usrselflg;
+ // fall through...
+ case 'u': // match effective uid
+ if (rSv(EU_UED) == (unsigned)q->usrseluid) return q->usrselflg;
+ // fall through...
+ default: // no match...
+ ;
+ }
+ return !q->usrselflg;
+ #undef rSv
+} // end: wins_usrselect
+
+/*###### Forest View support ###########################################*/
+
+ /*
+ * We try keeping most existing code unaware of these activities |
+ * ( plus, maintain alphabetical order within carefully chosen ) |
+ * ( names beginning forest_a, forest_b, forest_c and forest_d ) |
+ * ( with each name exactly 1 letter more than its predecessor ) | */
+static struct pids_stack **Seed_ppt; // temporary win ppt pointer |
+static struct pids_stack **Tree_ppt; // forest_begin resizes this |
+static int Tree_idx; // frame_make resets to zero |
+ /* those next two support collapse/expand children. the Hide_pid |
+ array holds parent pids whose children have been manipulated. |
+ positive pid values represent parents with collapsed children |
+ while a negative pid value means children have been expanded. |
+ ( both of these are managed under the 'keys_task()' routine ) | */
+static int *Hide_pid; // collapsible process array |
+static int Hide_tot; // total used in above array |
+
+ /*
+ * This little recursive guy was the real forest view workhorse. |
+ * He fills in the Tree_ppt array and also sets the child indent |
+ * level which is stored in an 'extra' result struct as a u_int. | */
+static void forest_adds (const int self, int level) {
+ // tailored 'results stack value' extractor macros
+ #define rSv(E,X) PID_VAL(E, s_int, Seed_ppt[X])
+ // if xtra-procps-debug.h active, can't use PID_VAL with assignment
+ #define rSv_Lvl Tree_ppt[Tree_idx]->head[eu_TREE_LVL].result.s_int
+ int i;
+
+ if (Tree_idx < PIDSmaxt) { // immunize against insanity |
+ if (level > 100) level = 101; // our arbitrary nests limit |
+ Tree_ppt[Tree_idx] = Seed_ppt[self]; // add this as root or child |
+ rSv_Lvl = level; // while recording its level |
+ ++Tree_idx;
+#ifdef TREE_SCANALL
+ for (i = 0; i < PIDSmaxt; i++) {
+ if (i == self) continue;
+#else
+ for (i = self + 1; i < PIDSmaxt; i++) {
+#endif
+ if (rSv(EU_PID, self) == rSv(EU_TGD, i)
+ || (rSv(EU_PID, self) == rSv(EU_PPD, i) && rSv(EU_PID, i) == rSv(EU_TGD, i)))
+ forest_adds(i, level + 1); // got one child any others?
+ }
+ }
+ #undef rSv
+ #undef rSv_Lvl
+} // end: forest_adds
+
+
+ /*
+ * This function is responsible for making that stacks ptr array |
+ * a forest display in that designated window. After completion, |
+ * he'll replace that original window ppt array with a specially |
+ * ordered forest view version. He'll also mark hidden children! | */
+static void forest_begin (WIN_t *q) {
+ static int hwmsav;
+ int i, j;
+
+ Seed_ppt = q->ppt; // avoid passing pointers |
+ if (!Tree_idx) { // do just once per frame |
+ if (hwmsav < PIDSmaxt) { // grow, but never shrink |
+ hwmsav = PIDSmaxt;
+ Tree_ppt = alloc_r(Tree_ppt, sizeof(void *) * hwmsav);
+ }
+
+#ifndef TREE_SCANALL
+ if (!(procps_pids_sort(Pids_ctx, Seed_ppt, PIDSmaxt
+ , PIDS_TICS_BEGAN, PIDS_SORT_ASCEND)))
+ error_exit(fmtmk(N_fmt(LIB_errorpid_fmt), __LINE__, strerror(errno)));
+#endif
+ for (i = 0; i < PIDSmaxt; i++) { // avoid hidepid distorts |
+ if (!PID_VAL(eu_TREE_LVL, s_int, Seed_ppt[i])) // parents lvl 0 |
+ forest_adds(i, 0); // add parents + children |
+ }
+
+ /* we use up to three additional 'PIDS_extra' results in our stack |
+ eu_TREE_HID (s_ch) : where 'x' == collapsed & 'z' == unseen |
+ eu_TREE_LVL (s_int): where level number is stored (0 - 100) |
+ eu_TREE_ADD (u_int): where a children's tics stored (maybe) | */
+ for (i = 0; i < Hide_tot; i++) {
+
+ // if have xtra-procps-debug.h, cannot use PID_VAL w/ assignment |
+ #define rSv(E,T,X) Tree_ppt[X]->head[E].result.T
+ #define rSv_Pid(X) rSv(EU_PID, s_int, X)
+ #define rSv_Lvl(X) rSv(eu_TREE_LVL, s_int, X)
+ #define rSv_Hid(X) rSv(eu_TREE_HID, s_ch, X)
+ /* next 2 aren't needed if TREE_VCPUOFF but they cost us nothing |
+ & the EU_CPU slot will now always be present (even if it's 0) | */
+ #define rSv_Add(X) rSv(eu_TREE_ADD, u_int, X)
+ #define rSv_Cpu(X) rSv(EU_CPU, u_int, X)
+
+ if (Hide_pid[i] > 0) {
+ for (j = 0; j < PIDSmaxt; j++) {
+ if (rSv_Pid(j) == Hide_pid[i]) {
+ int parent = j;
+ int children = 0;
+ int level = rSv_Lvl(parent);
+ while (j+1 < PIDSmaxt && rSv_Lvl(j+1) > level) {
+ ++j;
+ rSv_Hid(j) = 'z';
+#ifndef TREE_VCPUOFF
+ rSv_Add(parent) += rSv_Cpu(j);
+#endif
+ children = 1;
+ }
+ /* if any children found (& collapsed) mark the parent |
+ ( when children aren't found don't negate the pid ) |
+ ( to prevent future scans since who's to say such ) |
+ ( tasks will not fork more children in the future ) | */
+ if (children) rSv_Hid(parent) = 'x';
+ // this will force a check of next Hide_pid[i], if any |
+ j = PIDSmaxt + 1;
+ }
+ }
+ // if a target task disappeared prevent any further scanning |
+ if (j == PIDSmaxt) Hide_pid[i] = -Hide_pid[i];
+ }
+ #undef rSv
+ #undef rSv_Pid
+ #undef rSv_Lvl
+ #undef rSv_Hid
+ #undef rSv_Add
+ #undef rSv_Cpu
+ }
+ } // end: !Tree_idx
+ memcpy(Seed_ppt, Tree_ppt, sizeof(void *) * PIDSmaxt);
+} // end: forest_begin
+
+
+ /*
+ * When there's a 'focus_pid' established for a window, this guy |
+ * determines that window's 'focus_beg' plus 'focus_end' values. |
+ * But, if the pid can no longer be found, he'll turn off focus! | */
+static void forest_config (WIN_t *q) {
+ // tailored 'results stack value' extractor macro
+ #define rSv(x) PID_VAL(eu_TREE_LVL, s_int, q->ppt[(x)])
+ int i, level = 0;
+
+ for (i = 0; i < PIDSmaxt; i++) {
+ if (q->focus_pid == PID_VAL(EU_PID, s_int, q->ppt[i])) {
+ level = rSv(i);
+ q->focus_beg = i;
+ break;
+ }
+ }
+ if (i == PIDSmaxt)
+ q->focus_pid = q->begtask = 0;
+ else {
+#ifdef FOCUS_TREE_X
+ q->focus_lvl = rSv(i);
+#endif
+ while (i+1 < PIDSmaxt && rSv(i+1) > level)
+ ++i;
+ q->focus_end = i + 1; // make 'focus_end' a proper fencpost
+ // watch out for newly forked/cloned tasks 'above' us ...
+ if (q->begtask < q->focus_beg) {
+ q->begtask = q->focus_beg;
+ mkVIZoff(q)
+ }
+#ifdef FOCUS_HARD_Y
+ // if some task 'above' us ended, try to maintain focus
+ // ( but allow scrolling when there are many children )
+ if (q->begtask > q->focus_beg
+ && (SCREEN_ROWS > (q->focus_end - q->focus_beg))) {
+ q->begtask = q->focus_beg;
+ mkVIZoff(q)
+ }
+#endif
+ }
+ #undef rSv
+} // end: forest_config
+
+
+ /*
+ * This guy adds the artwork to either 'cmd' or 'cmdline' values |
+ * if we are in forest view mode otherwise he just returns them. | */
+static inline const char *forest_display (const WIN_t *q, int idx) {
+ // tailored 'results stack value' extractor macros
+ #define rSv(E) PID_VAL(E, str, p)
+ #define rSv_Lvl PID_VAL(eu_TREE_LVL, s_int, p)
+ #define rSv_Hid PID_VAL(eu_TREE_HID, s_ch, p)
+#ifndef SCROLLVAR_NO
+ static char buf[MAXBUFSIZ];
+#else
+ static char buf[ROWMINSIZ];
+#endif
+ struct pids_stack *p = q->ppt[idx];
+ const char *which = (CHKw(q, Show_CMDLIN)) ? rSv(eu_CMDLINE) : rSv(EU_CMD);
+ int level = rSv_Lvl;
+
+#ifdef FOCUS_TREE_X
+ if (q->focus_pid) {
+ if (idx >= q->focus_beg && idx < q->focus_end)
+ level -= q->focus_lvl;
+ }
+#endif
+ if (!CHKw(q, Show_FOREST) || level == 0) return which;
+#ifndef TREE_VWINALL
+ if (q == Curwin) // note: the following is NOT indented
+#endif
+ if (rSv_Hid == 'x') {
+#ifdef TREE_VALTMRK
+ snprintf(buf, sizeof(buf), "%*s%s", (4 * level), "`+ ", which);
+#else
+ snprintf(buf, sizeof(buf), "+%*s%s", ((4 * level) - 1), "`- ", which);
+#endif
+ return buf;
+ }
+ if (level > 100) {
+ snprintf(buf, sizeof(buf), "%400s%s", " + ", which);
+ return buf;
+ }
+#ifndef FOCUS_VIZOFF
+ if (q->focus_pid) snprintf(buf, sizeof(buf), "|%*s%s", ((4 * level) - 1), "`- ", which);
+ else snprintf(buf, sizeof(buf), "%*s%s", (4 * level), " `- ", which);
+#else
+ snprintf(buf, sizeof(buf), "%*s%s", (4 * level), " `- ", which);
+#endif
+ return buf;
+ #undef rSv
+ #undef rSv_Lvl
+ #undef rSv_Hid
+} // end: forest_display
+
+/*###### Special Separate Bottom Window support ########################*/
+
+ /*
+ * This guy actually draws the parsed strings |
+ * including adding a highlight if necessary. | */
+static void bot_do (const char *str, int focus) {
+ char *cap = Cap_norm;
+
+ while (*str == ' ') putchar(*(str++));
+ if (focus)
+#ifdef BOT_STRV_OFF
+ cap = Cap_reverse;
+#else
+ cap = strchr(str, Bot_sep) ? Curwin->capclr_msg : Cap_reverse;
+#endif
+ putp(fmtmk("%s%s%s", cap, str, Cap_norm));
+} // end: bot_do
+
+
+ /*
+ * This guy draws that bottom window's header |
+ * then parses/arranges to show the contents. |
+ * ( returns relative # of elements printed ) | */
+static int bot_focus_str (const char *hdr, const char *str) {
+ #define maxRSVD ( Screen_rows - 1 )
+ char *beg, *end;
+ char tmp[BIGBUFSIZ];
+ int n, x;
+
+ if (str) {
+ // we're a little careless with overhead here (it's a one time cost)
+ memset(Bot_buf, '\0', sizeof(Bot_buf));
+ n = strlen(str);
+ if (n >= sizeof(Bot_buf)) n = sizeof(Bot_buf) - 1;
+ if (!*str || !strcmp(str, "-")) strcpy(Bot_buf, N_txt(X_BOT_nodata_txt));
+ else memccpy(Bot_buf, str, '\0', n);
+ Bot_rsvd = 1 + BOT_RSVD + ((strlen(Bot_buf) - utf8_delta(Bot_buf)) / Screen_cols);
+ if (Bot_rsvd > maxRSVD) Bot_rsvd = maxRSVD;
+ // somewhere down call chain fmtmk() may be used, so we'll old school it
+ snprintf(tmp, sizeof(tmp), "%s%s%-*s"
+ , tg2(0, SCREEN_ROWS)
+ , Curwin->capclr_hdr
+ , Screen_cols + utf8_delta(hdr)
+ , hdr);
+ putp(tmp);
+ }
+ // now fmtmk is safe to use ...
+ putp(fmtmk("%s%s%s", tg2(0, SCREEN_ROWS + 1), Cap_clr_eos, Cap_norm));
+
+ beg = &Bot_buf[0];
+ x = BOT_UNFOCUS;
+
+ while (*beg) {
+ if (!(end = strchr(beg, Bot_sep)))
+ end = beg + strlen(beg);
+ if ((n = end - beg) >= sizeof(tmp))
+ n = sizeof(tmp) - 1;
+ memccpy(tmp, beg, '\0', n);
+ tmp[n] = '\0';
+ bot_do(tmp, (++x == Bot_indx));
+ if (*(beg += n))
+ putchar(*(beg++));
+ while (*beg == ' ') putchar(*(beg++));
+ }
+ return x;
+ #undef maxRSVD
+} // end: bot_focus_str
+
+
+ /*
+ * This guy draws that bottom window's header |
+ * & parses/arranges to show vector contents. |
+ * ( returns relative # of elements printed ) | */
+static int bot_focus_strv (const char *hdr, const char **strv) {
+ #define maxRSVD ( Screen_rows - 1 )
+ static int nsav;
+ char tmp[SCREENMAX], *p;
+ int i, n, x;
+
+ if (strv) {
+ // we're a little careless with overhead here (it's a one time cost)
+ memset(Bot_buf, '\0', sizeof(Bot_buf));
+ n = (char *)&strv[0] - strv[0];
+ if (n >= sizeof(Bot_buf)) n = sizeof(Bot_buf) - 1;
+ memcpy(Bot_buf, strv[0], n);
+ if ((!Bot_buf[0] || !strcmp(Bot_buf, "-")) && n <= sizeof(char *))
+ strcpy(Bot_buf, N_txt(X_BOT_nodata_txt));
+ for (nsav= 0, p = Bot_buf, x = 0; strv[nsav] != NULL; nsav++) {
+ p += strlen(strv[nsav]) + 1;
+ if ((p - Bot_buf) >= sizeof(Bot_buf))
+ break;
+ x += utf8_delta(strv[nsav]);
+ }
+ n = (p - Bot_buf) - (x + 1);
+ Bot_rsvd = 1 + BOT_RSVD + (n / Screen_cols);
+ if (Bot_rsvd > maxRSVD) Bot_rsvd = maxRSVD;
+ // somewhere down call chain fmtmk() may be used, so we'll old school it
+ snprintf(tmp, sizeof(tmp), "%s%s%-*s"
+ , tg2(0, SCREEN_ROWS)
+ , Curwin->capclr_hdr
+ , Screen_cols + utf8_delta(hdr)
+ , hdr);
+ putp(tmp);
+ }
+ // now fmtmk is safe to use ...
+ putp(fmtmk("%s%s%s", tg2(0, SCREEN_ROWS + 1), Cap_clr_eos, Cap_norm));
+
+ p = Bot_buf;
+ x = BOT_UNFOCUS;
+
+ for (i = 0; i < nsav; i++) {
+ bot_do(p, (++x == Bot_indx));
+ p += strlen(p) + 1;
+ putchar(' ');
+ }
+ return x;
+ #undef maxRSVD
+} // end: bot_focus_strv
+
+
+static struct {
+ enum pflag this;
+ enum namespace_type that;
+} ns_tab[] = {
+ // careful, cgroup & time were late additions ...
+ { EU_NS7, PROCPS_NS_CGROUP }, { EU_NS1, PROCPS_NS_IPC },
+ { EU_NS2, PROCPS_NS_MNT }, { EU_NS3, PROCPS_NS_NET },
+ { EU_NS4, PROCPS_NS_PID }, { EU_NS8, PROCPS_NS_TIME },
+ { EU_NS5, PROCPS_NS_USER }, { EU_NS6, PROCPS_NS_UTS }
+};
+
+
+ /*
+ * A helper function that will gather various |
+ * stuff for display by the bot_item_show guy. | */
+static void *bot_item_hlp (struct pids_stack *p) {
+ static char buf[BIGBUFSIZ];
+ char tmp[SMLBUFSIZ], *b;
+ struct msg_node *m;
+ int i;
+
+ switch (Bot_what) {
+ case BOT_MSG_LOG:
+ *(b = &buf[0]) = '\0';
+ m = Msg_this->prev;
+ do {
+ if (m->msg[0]) {
+ b = scat(b, m->msg);
+ if (m != Msg_this && m->prev->msg[0]) {
+ // caller itself may have used fmtmk, so we'll old school it ...
+ snprintf(tmp, sizeof(tmp), "%c ", BOT_SEP_SMI);
+ b = scat(b, tmp);
+ }
+ }
+ m = m->prev;
+ } while (m != Msg_this->prev);
+ return buf;
+ case BOT_ITEM_NS:
+ *(b = &buf[0]) = '\0';
+ for (i = 0; i < MAXTBL(ns_tab); i++) {
+ // caller itself may have used fmtmk, so we'll old school it ...
+ snprintf(tmp, sizeof(tmp), "%s: %-10lu"
+ , procps_ns_get_name(ns_tab[i].that)
+ , PID_VAL(ns_tab[i].this, ul_int, p));
+ b = scat(b, tmp);
+ if (i < (MAXTBL(ns_tab) - 1)) b = scat(b, ", ");
+ }
+ return buf;
+ case eu_CMDLINE_V:
+ case eu_ENVIRON_V:
+ return p->head[Bot_item[0]].result.strv;
+ default:
+ return p->head[Bot_item[0]].result.str;
+ }
+} // end: bot_item_hlp
+
+
+ /*
+ * This guy manages that bottom margin window |
+ * which shows various process related stuff. | */
+static void bot_item_show (void) {
+ #define mkHDR fmtmk(Bot_head, Bot_task, PID_VAL(EU_CMD, str, p))
+ struct pids_stack *p;
+ int i;
+
+ for (i = 0; i < PIDSmaxt; i++) {
+ p = Curwin->ppt[i];
+ if (Bot_task == PID_VAL(EU_PID, s_int, p))
+ break;
+ }
+ if (i < PIDSmaxt) {
+ Bot_focus_func(mkHDR, bot_item_hlp(p));
+ }
+#ifdef BOT_DEAD_ZAP
+ else
+ BOT_TOSS;
+#else
+ BOT_KEEP;
+#endif
+ #undef mkHDR
+} // end: bot_item_show
+
+
+ /*
+ * This guy can toggle between displaying the |
+ * bottom window or arranging to turn it off. | */
+static void bot_item_toggle (int what, const char *head, char sep) {
+ int i;
+
+ // if already targeted, assume user wants to turn it off ...
+ if (Bot_what == what) {
+ BOT_TOSS;
+ } else {
+ // accommodate transition from larger to smaller window
+ Bot_rsvd = 0;
+ switch (what) {
+ case BOT_ITEM_NS:
+ for (i = 0; i < MAXTBL(ns_tab); i++)
+ Bot_item[i] = ns_tab[i].this;
+ Bot_item[i] = BOT_DELIMIT;
+ Bot_focus_func = (BOT_f)bot_focus_str;
+ break;
+ case eu_CMDLINE_V:
+ case eu_ENVIRON_V:
+ Bot_item[0] = what;
+ Bot_item[1] = BOT_DELIMIT;
+ Bot_focus_func = (BOT_f)bot_focus_strv;
+ break;
+ default:
+ Bot_item[0] = what;
+ Bot_item[1] = BOT_DELIMIT;
+ Bot_focus_func = (BOT_f)bot_focus_str;
+ break;
+ }
+ Bot_sep = sep;
+ Bot_what = what;
+ Bot_indx = BOT_UNFOCUS;
+ Bot_head = (char *)head;
+ Bot_show_func = bot_item_show;
+ Bot_task = PID_VAL(EU_PID, s_int, Curwin->ppt[Curwin->begtask]);
+ }
+} // end: bot_item_toggle
+
+/*###### Interactive Input Tertiary support ############################*/
+
+ /*
+ * This section exists so as to offer some function naming freedom
+ * while also maintaining the strict alphabetical order protocol
+ * within each section. */
+
+ /*
+ * This guy is a *Helper* function serving the following two masters:
+ * find_string() - find the next match in a given window
+ * task_show() - highlight all matches currently in-view
+ * If q->findstr is found in the designated buffer, he returns the
+ * offset from the start of the buffer, otherwise he returns -1. */
+static inline int find_ofs (const WIN_t *q, const char *buf) {
+ char *fnd;
+
+ if (q->findstr[0] && (fnd = STRSTR(buf, q->findstr)))
+ return (int)(fnd - buf);
+ return -1;
+} // end: find_ofs
+
+
+
+ /* This is currently the only true prototype required by top.
+ It is placed here, instead of top.h, to avoid one compiler
+ warning when the top_nls.c source was compiled separately. */
+static const char *task_show (const WIN_t *q, int idx);
+
+static void find_string (int ch) {
+ #define reDUX (found) ? N_txt(WORD_another_txt) : ""
+ static int found;
+ int i;
+
+ if ('&' == ch && !Curwin->findstr[0]) {
+ show_msg(N_txt(FIND_no_next_txt));
+ return;
+ }
+ if ('L' == ch) {
+ char *str = ioline(N_txt(GET_find_str_txt));
+ if (*str == kbd_ESC) return;
+ snprintf(Curwin->findstr, FNDBUFSIZ, "%s", str);
+ Curwin->findlen = strlen(Curwin->findstr);
+ found = 0;
+ }
+ if (Curwin->findstr[0]) {
+ SETw(Curwin, NOPRINT_xxx);
+ for (i = Curwin->begtask; i < PIDSmaxt; i++) {
+ const char *row = task_show(Curwin, i);
+ if (*row && -1 < find_ofs(Curwin, row)) {
+ found = 1;
+ if (i == Curwin->begtask) continue;
+ Curwin->begtask = i;
+ return;
+ }
+ }
+ show_msg(fmtmk(N_fmt(FIND_no_find_fmt), reDUX, Curwin->findstr));
+ }
+ #undef reDUX
+} // end: find_string
+
+
+static void help_view (void) {
+ WIN_t *w = Curwin; // avoid gcc bloat with a local copy
+ char key = 1;
+
+ putp((Cursor_state = Cap_curs_huge));
+signify_that:
+ putp(Cap_clr_scr);
+ adj_geometry();
+
+ show_special(1, fmtmk(N_unq(KEYS_helpbas_fmt)
+ , PACKAGE_STRING
+ , w->grpname
+ , CHKw(w, Show_CTIMES) ? N_txt(ON_word_only_txt) : N_txt(OFF_one_word_txt)
+ , Rc.delay_time
+ , Secure_mode ? N_txt(ON_word_only_txt) : N_txt(OFF_one_word_txt)
+ , Secure_mode ? "" : N_unq(KEYS_helpext_fmt)));
+ putp(Cap_clr_eos);
+ fflush(stdout);
+
+ if (Frames_signal) goto signify_that;
+ key = iokey(IOKEY_ONCE);
+ if (key < 1) goto signify_that;
+
+ switch (key) {
+ // these keys serve the primary help screen
+ case kbd_ESC: case 'q':
+ break;
+ case '?': case 'h': case 'H':
+ do {
+signify_this:
+ putp(Cap_clr_scr);
+ adj_geometry();
+ show_special(1, fmtmk(N_unq(WINDOWS_help_fmt)
+ , w->grpname
+ , Winstk[0].rc.winname, Winstk[1].rc.winname
+ , Winstk[2].rc.winname, Winstk[3].rc.winname));
+ putp(Cap_clr_eos);
+ fflush(stdout);
+ if (Frames_signal || (key = iokey(IOKEY_ONCE)) < 1)
+ goto signify_this;
+ else w = win_select(key);
+ // these keys serve the secondary help screen
+ } while (key != kbd_ENTER && key != kbd_ESC && key != 'q');
+ break;
+ default:
+ goto signify_that;
+ }
+ // signal that we just corrupted entire screen
+ Frames_signal = BREAK_screen;
+} // end: help_view
+
+
+static void other_filters (int ch) {
+ WIN_t *w = Curwin; // avoid gcc bloat with a local copy
+ const char *txt, *p;
+ char *glob;
+
+ switch (ch) {
+ case 'o':
+ case 'O':
+ if (ch == 'o') txt = N_txt(OSEL_casenot_txt);
+ else txt = N_txt(OSEL_caseyes_txt);
+ glob = ioline(fmtmk(N_fmt(OSEL_prompts_fmt), w->osel_tot + 1, txt));
+ if (*glob == kbd_ESC || *glob == '\0')
+ return;
+ if ((p = osel_add(w, ch, glob, 1))) {
+ show_msg(p);
+ return;
+ }
+ break;
+ case kbd_CtrlO:
+ if (VIZCHKw(w)) {
+ char buf[SCREENMAX], **pp;
+ struct osel_s *osel;
+ int i;
+
+ i = 0;
+ osel = w->osel_1st;
+ pp = alloc_c((w->osel_tot + 1) * sizeof(char *));
+ while (osel && i < w->osel_tot) {
+ pp[i++] = osel->raw;
+ osel = osel->nxt;
+ }
+ buf[0] = '\0';
+ for ( ; i > 0; )
+ strncat(buf, fmtmk("%s'%s'", " + " , pp[--i]), sizeof(buf) - (strlen(buf) + 1));
+ if (buf[0]) p = buf + strspn(buf, " + ");
+ else p = N_txt(WORD_noneone_txt);
+ ioline(fmtmk(N_fmt(OSEL_statlin_fmt), p));
+ free(pp);
+ }
+ break;
+ default: // keep gcc happy
+ break;
+ }
+} // end: other_filters
+
+
+static void write_rcfile (void) {
+ FILE *fp;
+ int i, j, n;
+
+ if (Rc_questions) {
+ show_pmt(N_txt(XTRA_warncfg_txt));
+ if ('y' != tolower(iokey(IOKEY_ONCE)))
+ return;
+ Rc_questions = 0;
+ }
+ if (Rc_compatibilty) {
+ show_pmt(N_txt(XTRA_warnold_txt));
+ if ('y' != tolower(iokey(IOKEY_ONCE)))
+ return;
+ Rc_compatibilty = 0;
+ }
+ if (!(fp = fopen(Rc_name, "w"))) {
+ show_msg(fmtmk(N_fmt(FAIL_rc_open_fmt), Rc_name, strerror(errno)));
+ return;
+ }
+ fprintf(fp, "%s's " RCF_EYECATCHER, Myname);
+ fprintf(fp, "Id:%c, Mode_altscr=%d, Mode_irixps=%d, Delay_time=%d.%d, Curwin=%d\n"
+ , RCF_VERSION_ID
+ , Rc.mode_altscr, Rc.mode_irixps
+ // this may be ugly, but it keeps us locale independent...
+ , (int)Rc.delay_time, (int)((Rc.delay_time - (int)Rc.delay_time) * 1000)
+ , (int)(Curwin - Winstk));
+
+ for (i = 0 ; i < GROUPSMAX; i++) {
+ n = mlen(Winstk[i].rc.fieldscur);
+ fprintf(fp, "%s\tfieldscur=", Winstk[i].rc.winname);
+ for (j = 0; j < n; j++) {
+ if (j && !(j % FLD_ROWMAX) && j < n)
+ fprintf(fp, "\n\t\t ");
+ fprintf(fp, "%4d ", (int)Winstk[i].rc.fieldscur[j]);
+ }
+ fprintf(fp, "\n");
+ fprintf(fp, "\twinflags=%d, sortindx=%d, maxtasks=%d, graph_cpus=%d, graph_mems=%d"
+ ", double_up=%d, combine_cpus=%d, core_types=%d\n"
+ , Winstk[i].rc.winflags, Winstk[i].rc.sortindx, Winstk[i].rc.maxtasks
+ , Winstk[i].rc.graph_cpus, Winstk[i].rc.graph_mems, Winstk[i].rc.double_up
+ , Winstk[i].rc.combine_cpus, Winstk[i].rc.core_types);
+ fprintf(fp, "\tsummclr=%d, msgsclr=%d, headclr=%d, taskclr=%d\n"
+ , Winstk[i].rc.summclr, Winstk[i].rc.msgsclr
+ , Winstk[i].rc.headclr, Winstk[i].rc.taskclr);
+ }
+
+ // any new addition(s) last, for older rcfiles compatibility...
+ fprintf(fp, "Fixed_widest=%d, Summ_mscale=%d, Task_mscale=%d, Zero_suppress=%d, Tics_scaled=%d\n"
+ , Rc.fixed_widest, Rc.summ_mscale, Rc.task_mscale, Rc.zero_suppress, Rc.tics_scaled);
+
+ if (Winstk[0].osel_tot + Winstk[1].osel_tot
+ + Winstk[2].osel_tot + Winstk[3].osel_tot) {
+ fprintf(fp, "\n");
+ fprintf(fp, Osel_delim_1_txt);
+ for (i = 0 ; i < GROUPSMAX; i++) {
+ struct osel_s *osel = Winstk[i].osel_1st;
+ if (osel) {
+ fprintf(fp, Osel_window_fmts, i, Winstk[i].osel_tot);
+ do {
+ fprintf(fp, Osel_filterO_fmt, osel->typ, osel->raw);
+ osel = osel->nxt;
+ } while (osel);
+ }
+ }
+ fprintf(fp, Osel_delim_2_txt);
+ }
+
+ if (Inspect.raw && strcmp(Inspect.raw, "\n"))
+ fputs(Inspect.raw, fp);
+
+ fclose(fp);
+ show_msg(fmtmk(N_fmt(WRITE_rcfile_fmt), Rc_name));
+} // end: write_rcfile
+
+/*###### Interactive Input Secondary support (do_key helpers) ##########*/
+
+ /*
+ * These routines exist just to keep the do_key() function
+ * a reasonably modest size. */
+
+static void keys_global (int ch) {
+ WIN_t *w = Curwin; // avoid gcc bloat with a local copy
+ int i, num, def, pid;
+
+ switch (ch) {
+ case '?':
+ case 'h':
+ help_view();
+ break;
+ case 'B':
+ TOGw(w, View_NOBOLD);
+ capsmk(w);
+ break;
+ case 'd':
+ case 's':
+ if (Secure_mode)
+ show_msg(N_txt(NOT_onsecure_txt));
+ else {
+ float tmp =
+ get_float(fmtmk(N_fmt(DELAY_change_fmt), Rc.delay_time));
+ if (tmp > -1) Rc.delay_time = tmp;
+ }
+ break;
+ case 'E':
+ if (++Rc.summ_mscale > SK_Eb) Rc.summ_mscale = SK_Kb;
+ break;
+ case 'e':
+ if (++Rc.task_mscale > SK_Pb) Rc.task_mscale = SK_Kb;
+ break;
+ case 'f':
+ fields_utility();
+ break;
+ case 'g':
+ win_select(0);
+ break;
+ case 'H':
+ Thread_mode = !Thread_mode;
+ if (!CHKw(w, View_STATES))
+ show_msg(fmtmk(N_fmt(THREADS_show_fmt)
+ , Thread_mode ? N_txt(ON_word_only_txt) : N_txt(OFF_one_word_txt)));
+ for (i = 0 ; i < GROUPSMAX; i++)
+ Winstk[i].begtask = Winstk[i].focus_pid = 0;
+ // force an extra procs refresh to avoid %cpu distortions...
+ Pseudo_row = PROC_XTRA;
+ // signal that we just corrupted entire screen
+ Frames_signal = BREAK_screen;
+ break;
+ case 'I':
+ if (Cpu_cnt > 1) {
+ Rc.mode_irixps = !Rc.mode_irixps;
+ show_msg(fmtmk(N_fmt(IRIX_curmode_fmt)
+ , Rc.mode_irixps ? N_txt(ON_word_only_txt) : N_txt(OFF_one_word_txt)));
+ } else
+ show_msg(N_txt(NOT_smp_cpus_txt));
+ break;
+ case 'k':
+ if (Secure_mode)
+ show_msg(N_txt(NOT_onsecure_txt));
+ else {
+ num = SIGTERM;
+ def = PID_VAL(EU_PID, s_int, w->ppt[w->begtask]);
+ pid = get_int(fmtmk(N_txt(GET_pid2kill_fmt), def));
+ if (pid > GET_NUM_ESC) {
+ char *str;
+ if (pid == GET_NUM_NOT) pid = def;
+ str = ioline(fmtmk(N_fmt(GET_sigs_num_fmt), pid, SIGTERM));
+ if (*str != kbd_ESC) {
+ if (*str) num = signal_name_to_number(str);
+ if (Frames_signal) break;
+ if (0 < num && kill(pid, num))
+ show_msg(fmtmk(N_fmt(FAIL_signals_fmt)
+ , pid, num, strerror(errno)));
+ else if (0 > num) show_msg(N_txt(BAD_signalid_txt));
+ }
+ }
+ }
+ break;
+ case 'r':
+ if (Secure_mode)
+ show_msg(N_txt(NOT_onsecure_txt));
+ else {
+ def = PID_VAL(EU_PID, s_int, w->ppt[w->begtask]);
+ pid = get_int(fmtmk(N_fmt(GET_pid2nice_fmt), def));
+ if (pid > GET_NUM_ESC) {
+ if (pid == GET_NUM_NOT) pid = def;
+ num = get_int(fmtmk(N_fmt(GET_nice_num_fmt), pid));
+ if (num > GET_NUM_NOT
+ && setpriority(PRIO_PROCESS, (unsigned)pid, num))
+ show_msg(fmtmk(N_fmt(FAIL_re_nice_fmt)
+ , pid, num, strerror(errno)));
+ }
+ }
+ break;
+ case 'X':
+ num = get_int(fmtmk(N_fmt(XTRA_fixwide_fmt), Rc.fixed_widest));
+ if (num > GET_NUM_NOT) {
+ if (num >= 0 && num <= SCREENMAX) Rc.fixed_widest = num;
+ else Rc.fixed_widest = -1;
+ }
+ break;
+ case 'Y':
+ if (!Inspect.total)
+#ifndef INSP_OFFDEMO
+ ioline(N_txt(YINSP_noent1_txt));
+#else
+ ioline(N_txt(YINSP_noent2_txt));
+#endif
+ else {
+ def = PID_VAL(EU_PID, s_int, w->ppt[w->begtask]);
+ pid = get_int(fmtmk(N_fmt(YINSP_pidsee_fmt), def));
+ if (pid > GET_NUM_ESC) {
+ if (pid == GET_NUM_NOT) pid = def;
+ if (pid) inspection_utility(pid);
+ }
+ }
+ break;
+ case 'Z':
+ wins_colors();
+ break;
+ case '0':
+ Rc.zero_suppress = !Rc.zero_suppress;
+ break;
+ case kbd_CtrlE:
+#ifndef SCALE_FORMER
+ Rc.tics_scaled++;
+ if (Rc.tics_scaled > TICS_AS_LAST)
+ Rc.tics_scaled = 0;
+#endif
+ break;
+ case kbd_CtrlG:
+ bot_item_toggle(EU_CGR, N_fmt(X_BOT_ctlgrp_fmt), BOT_SEP_SLS);
+ break;
+ case kbd_CtrlI:
+ if (BOT_PRESENT) {
+ ++Bot_indx;
+ if (Bot_indx > Bot_focus_func(NULL, NULL))
+ Bot_indx = BOT_UNFOCUS;
+ }
+ break;
+ case kbd_CtrlK:
+ // with string vectors, the 'separator' may serve a different purpose
+ bot_item_toggle(eu_CMDLINE_V, N_fmt(X_BOT_cmdlin_fmt), BOT_SEP_SPC);
+ break;
+ case kbd_CtrlL:
+ bot_item_toggle(BOT_MSG_LOG, N_txt(X_BOT_msglog_txt), BOT_SEP_SMI);
+ break;
+ case kbd_CtrlN:
+ // with string vectors, the 'separator' may serve a different purpose
+ bot_item_toggle(eu_ENVIRON_V, N_fmt(X_BOT_envirn_fmt), BOT_SEP_SPC);
+ break;
+ case kbd_CtrlP:
+ bot_item_toggle(BOT_ITEM_NS, N_fmt(X_BOT_namesp_fmt), BOT_SEP_CMA);
+ break;
+ case kbd_CtrlR:
+ if (Secure_mode)
+ show_msg(N_txt(NOT_onsecure_txt));
+ else {
+ def = PID_VAL(EU_PID, s_int, w->ppt[w->begtask]);
+ pid = get_int(fmtmk(N_fmt(GET_pid2nice_fmt), def));
+ if (pid > GET_NUM_ESC) {
+ int fd;
+ if (pid == GET_NUM_NOT) pid = def;
+ num = get_int(fmtmk(N_fmt(AGNI_valueof_fmt), pid));
+ if (num > GET_NUM_NOT) {
+ if (num < -20 || num > +19)
+ show_msg(N_txt(AGNI_invalid_txt));
+ else if (0 > (fd = open(fmtmk("/proc/%d/autogroup", pid), O_WRONLY)))
+ show_msg(fmtmk(N_fmt(AGNI_notopen_fmt), strerror(errno)));
+ else {
+ char buf[TNYBUFSIZ];
+ snprintf(buf, sizeof(buf), "%d", num);
+ if (0 >= write(fd, buf, strlen(buf)))
+ show_msg(fmtmk(N_fmt(AGNI_nowrite_fmt), strerror(errno)));
+ close(fd);
+ }
+ }
+ }
+ }
+ break;
+ case kbd_CtrlU:
+ bot_item_toggle(EU_SGN, N_fmt(X_BOT_supgrp_fmt), BOT_SEP_CMA);
+ break;
+ case kbd_BTAB:
+ if (BOT_PRESENT) {
+ --Bot_indx;
+ num = Bot_focus_func(NULL, NULL);
+ if (Bot_indx <= BOT_UNFOCUS)
+ Bot_indx = num + 1;
+ }
+ break;
+ case kbd_ENTER: // these two have the effect of waking us
+ case kbd_SPACE: // from 'pselect', refreshing the display
+ break; // and updating any hot-plugged resources
+ default: // keep gcc happy
+ break;
+ }
+} // end: keys_global
+
+
+static void keys_summary (int ch) {
+ WIN_t *w = Curwin; // avoid gcc bloat with a local copy
+
+ if (Restrict_some && ch != 'C') {
+ show_msg(N_txt(X_RESTRICTED_txt));
+ return;
+ }
+ switch (ch) {
+ case '!':
+ if (CHKw(w, View_CPUSUM) || CHKw(w, View_CPUNOD))
+ show_msg(N_txt(XTRA_modebad_txt));
+ else {
+ if (!w->rc.combine_cpus) w->rc.combine_cpus = 2;
+ else w->rc.combine_cpus *= 2;
+ if (w->rc.combine_cpus >= Cpu_cnt) w->rc.combine_cpus = 0;
+ w->rc.core_types = 0;
+ }
+ break;
+ case '1':
+ if (CHKw(w, View_CPUNOD)) OFFw(w, View_CPUSUM);
+ else TOGw(w, View_CPUSUM);
+ OFFw(w, View_CPUNOD);
+ SETw(w, View_STATES);
+ w->rc.double_up = 0;
+ w->rc.core_types = 0;
+ break;
+ case '2':
+ if (!Numa_node_tot)
+ show_msg(N_txt(NUMA_nodenot_txt));
+ else {
+ if (Numa_node_sel < 0) TOGw(w, View_CPUNOD);
+ if (!CHKw(w, View_CPUNOD)) SETw(w, View_CPUSUM);
+ SETw(w, View_STATES);
+ Numa_node_sel = -1;
+ w->rc.double_up = 0;
+ w->rc.core_types = 0;
+ }
+ break;
+ case '3':
+ if (!Numa_node_tot)
+ show_msg(N_txt(NUMA_nodenot_txt));
+ else {
+ int num = get_int(fmtmk(N_fmt(NUMA_nodeget_fmt), Numa_node_tot -1));
+ if (num > GET_NUM_NOT) {
+ if (num >= 0 && num < Numa_node_tot) {
+ Numa_node_sel = num;
+ SETw(w, View_CPUNOD | View_STATES);
+ OFFw(w, View_CPUSUM);
+ w->rc.double_up = 0;
+ w->rc.core_types = 0;
+ } else
+ show_msg(N_txt(NUMA_nodebad_txt));
+ }
+ }
+ break;
+ case '4':
+ w->rc.double_up += 1;
+ if ((w->rc.double_up >= ADJOIN_limit)
+ || ((w->rc.double_up >= Cpu_cnt)))
+ w->rc.double_up = 0;
+ if ((w->rc.double_up > 1)
+ && (!w->rc.graph_cpus))
+ w->rc.double_up = 0;
+ OFFw(w, (View_CPUSUM | View_CPUNOD));
+ break;
+#ifndef CORE_TYPE_NO
+ case '5':
+ if (!CHKw(w, View_STATES)
+ || ((CHKw(w, View_CPUSUM | View_CPUNOD))
+ || ((w->rc.combine_cpus))))
+ show_msg(N_txt(XTRA_modebad_txt));
+ else {
+ int scanned;
+ for (scanned = 0; scanned < Cpu_cnt; scanned++)
+ if (CPU_VAL(stat_COR_TYP, scanned) == E_CORE)
+ break;
+ if (scanned < Cpu_cnt) {
+ w->rc.core_types += 1;
+ if (w->rc.core_types > E_CORES_ONLY)
+ w->rc.core_types = 0;
+ } else w->rc.core_types = 0;
+ }
+ break;
+#endif
+ case 'C':
+ VIZTOGw(w, View_SCROLL);
+ break;
+ case 'l':
+ TOGw(w, View_LOADAV);
+ break;
+ case 'm':
+ if (!CHKw(w, View_MEMORY))
+ SETw(w, View_MEMORY);
+ else if (++w->rc.graph_mems > 2) {
+ w->rc.graph_mems = 0;
+ OFFw(w, View_MEMORY);
+ }
+ break;
+ case 't':
+ if (!CHKw(w, View_STATES))
+ SETw(w, View_STATES);
+ else if (++w->rc.graph_cpus > 2) {
+ w->rc.graph_cpus = 0;
+ OFFw(w, View_STATES);
+ }
+ if ((w->rc.double_up > 1)
+ && (!w->rc.graph_cpus))
+ w->rc.double_up = 0;
+ break;
+ default: // keep gcc happy
+ break;
+ }
+} // end: keys_summary
+
+
+static void keys_task (int ch) {
+ WIN_t *w = Curwin; // avoid gcc bloat with a local copy
+
+ switch (ch) {
+ case '#':
+ case 'n':
+ if (VIZCHKw(w)) {
+ int num = get_int(fmtmk(N_fmt(GET_max_task_fmt), w->rc.maxtasks));
+ if (num > GET_NUM_NOT) {
+ if (-1 < num ) w->rc.maxtasks = num;
+ else show_msg(N_txt(BAD_max_task_txt));
+ }
+ }
+ break;
+ case '<':
+#ifdef TREE_NORESET
+ if (CHKw(w, Show_FOREST)) break;
+#endif
+ if (VIZCHKw(w)) {
+ FLG_t *p = w->procflgs + w->maxpflgs - 1;
+ while (p > w->procflgs && *p != w->rc.sortindx) --p;
+ if (*p == w->rc.sortindx) {
+ --p;
+#ifndef USE_X_COLHDR
+ if (EU_MAXPFLGS < *p) --p;
+#endif
+ if (p >= w->procflgs) {
+ w->rc.sortindx = *p;
+#ifndef TREE_NORESET
+ OFFw(w, Show_FOREST);
+#endif
+ }
+ }
+ }
+ break;
+ case '>':
+#ifdef TREE_NORESET
+ if (CHKw(w, Show_FOREST)) break;
+#endif
+ if (VIZCHKw(w)) {
+ FLG_t *p = w->procflgs + w->maxpflgs - 1;
+ while (p > w->procflgs && *p != w->rc.sortindx) --p;
+ if (*p == w->rc.sortindx) {
+ ++p;
+#ifndef USE_X_COLHDR
+ if (EU_MAXPFLGS < *p) ++p;
+#endif
+ if (p < w->procflgs + w->maxpflgs) {
+ w->rc.sortindx = *p;
+#ifndef TREE_NORESET
+ OFFw(w, Show_FOREST);
+#endif
+ }
+ }
+ }
+ break;
+ case 'b':
+ TOGw(w, Show_HIBOLD);
+ capsmk(w);
+ break;
+ case 'c':
+ VIZTOGw(w, Show_CMDLIN);
+ break;
+ case 'F':
+ if (VIZCHKw(w)) {
+ if (CHKw(w, Show_FOREST)) {
+ int n = PID_VAL(EU_PID, s_int, w->ppt[w->begtask]);
+ if (w->focus_pid == n) w->focus_pid = 0;
+ else w->focus_pid = n;
+ }
+ }
+ break;
+ case 'i':
+ { static WIN_t *w_sav;
+ static int beg_sav;
+ if (w_sav != w) { beg_sav = 0; w_sav = w; }
+ if (CHKw(w, Show_IDLEPS)) { beg_sav = w->begtask; w->begtask = 0; }
+ else { w->begtask = beg_sav; beg_sav = 0; }
+ }
+ VIZTOGw(w, Show_IDLEPS);
+ break;
+ case 'J':
+ VIZTOGw(w, Show_JRNUMS);
+ break;
+ case 'j':
+ VIZTOGw(w, Show_JRSTRS);
+ break;
+ case 'R':
+#ifdef TREE_NORESET
+ if (!CHKw(w, Show_FOREST)) VIZTOGw(w, Qsrt_NORMAL);
+#else
+ if (VIZCHKw(w)) {
+ TOGw(w, Qsrt_NORMAL);
+ OFFw(w, Show_FOREST);
+ }
+#endif
+ break;
+ case 'S':
+ if (VIZCHKw(w)) {
+ TOGw(w, Show_CTIMES);
+ show_msg(fmtmk(N_fmt(TIME_accumed_fmt) , CHKw(w, Show_CTIMES)
+ ? N_txt(ON_word_only_txt) : N_txt(OFF_one_word_txt)));
+ }
+ break;
+ case 'O':
+ case 'o':
+ case kbd_CtrlO:
+ if (VIZCHKw(w)) other_filters(ch);
+ break;
+ case 'U':
+ case 'u':
+ if (VIZCHKw(w)) {
+ const char *errmsg, *str = ioline(N_txt(GET_user_ids_txt));
+ if (*str != kbd_ESC
+ && (errmsg = user_certify(w, str, ch)))
+ show_msg(errmsg);
+ }
+ break;
+ case 'V':
+ if (VIZCHKw(w)) {
+ TOGw(w, Show_FOREST);
+ if (!ENUviz(w, EU_CMD))
+ show_msg(fmtmk(N_fmt(FOREST_modes_fmt) , CHKw(w, Show_FOREST)
+ ? N_txt(ON_word_only_txt) : N_txt(OFF_one_word_txt)));
+ if (!CHKw(w, Show_FOREST)) w->focus_pid = 0;
+ }
+ break;
+ case 'v':
+ if (VIZCHKw(w)) {
+ if (CHKw(w, Show_FOREST)) {
+ int i, pid = PID_VAL(EU_PID, s_int, w->ppt[w->begtask]);
+#ifdef TREE_VPROMPT
+ int got = get_int(fmtmk(N_txt(XTRA_vforest_fmt), pid));
+ if (got < GET_NUM_NOT) break;
+ if (got > GET_NUM_NOT) pid = got;
+#endif
+ for (i = 0; i < Hide_tot; i++) {
+ if (Hide_pid[i] == pid || Hide_pid[i] == -pid) {
+ Hide_pid[i] = -Hide_pid[i];
+ break;
+ }
+ }
+ if (i == Hide_tot) {
+ static int totsav;
+ if (Hide_tot >= totsav) {
+ totsav += 128;
+ Hide_pid = alloc_r(Hide_pid, sizeof(int) * totsav);
+ }
+ Hide_pid[Hide_tot++] = pid;
+ } else {
+ // if everything's expanded, let's empty the array ...
+ for (i = 0; i < Hide_tot; i++)
+ if (Hide_pid[i] > 0) break;
+ if (i == Hide_tot) Hide_tot = 0;
+ }
+ }
+ }
+ break;
+ case 'x':
+ if (VIZCHKw(w)) {
+#ifdef USE_X_COLHDR
+ TOGw(w, Show_HICOLS);
+ capsmk(w);
+#else
+ if (ENUviz(w, w->rc.sortindx)) {
+ TOGw(w, Show_HICOLS);
+ if (ENUpos(w, w->rc.sortindx) < w->begpflg) {
+ if (CHKw(w, Show_HICOLS)) w->begpflg += 2;
+ else w->begpflg -= 2;
+ if (0 > w->begpflg) w->begpflg = 0;
+ }
+ capsmk(w);
+ }
+#endif
+ }
+ break;
+ case 'y':
+ if (VIZCHKw(w)) {
+ TOGw(w, Show_HIROWS);
+ capsmk(w);
+ }
+ break;
+ case 'z':
+ if (VIZCHKw(w)) {
+ TOGw(w, Show_COLORS);
+ capsmk(w);
+ }
+ break;
+ default: // keep gcc happy
+ break;
+ }
+} // end: keys_task
+
+
+static void keys_window (int ch) {
+ WIN_t *w = Curwin; // avoid gcc bloat with a local copy
+
+ switch (ch) {
+ case '+':
+ if (ALTCHKw) wins_reflag(Flags_OFF, EQUWINS_xxx);
+ Hide_tot = 0;
+ break;
+ case '-':
+ if (ALTCHKw) TOGw(w, Show_TASKON);
+ break;
+ case '=':
+ win_reset(w);
+ Hide_tot = 0;
+ break;
+ case '_':
+ if (ALTCHKw) wins_reflag(Flags_TOG, Show_TASKON);
+ break;
+ case '&':
+ case 'L':
+ if (VIZCHKw(w)) find_string(ch);
+ break;
+ case 'A':
+ Rc.mode_altscr = !Rc.mode_altscr;
+ break;
+ case 'a':
+ case 'w':
+ if (ALTCHKw) win_select(ch);
+ break;
+ case 'G':
+ if (ALTCHKw) {
+ char tmp[SMLBUFSIZ];
+ STRLCPY(tmp, ioline(fmtmk(N_fmt(NAME_windows_fmt), w->rc.winname)));
+ if (tmp[0] && tmp[0] != kbd_ESC) win_names(w, tmp);
+ }
+ break;
+ case kbd_UP:
+ if (VIZCHKw(w)) if (CHKw(w, Show_IDLEPS)) mkVIZrowX(-1)
+ break;
+ case kbd_DOWN:
+ if (VIZCHKw(w)) if (CHKw(w, Show_IDLEPS)) mkVIZrowX(+1)
+ break;
+#ifdef USE_X_COLHDR // ------------------------------------
+ case kbd_LEFT:
+#ifndef SCROLLVAR_NO
+ if (VIZCHKw(w)) {
+ if (VARleft(w))
+ w->varcolbeg -= SCROLLAMT;
+ else if (0 < w->begpflg)
+ w->begpflg -= 1;
+ }
+#else
+ if (VIZCHKw(w)) if (0 < w->begpflg) w->begpflg -= 1;
+#endif
+ break;
+ case kbd_RIGHT:
+#ifndef SCROLLVAR_NO
+ if (VIZCHKw(w)) {
+ if (VARright(w)) {
+ w->varcolbeg += SCROLLAMT;
+ if (0 > w->varcolbeg) w->varcolbeg = 0;
+ } else if (w->begpflg + 1 < w->totpflgs)
+ w->begpflg += 1;
+ }
+#else
+ if (VIZCHKw(w)) if (w->begpflg + 1 < w->totpflgs) w->begpflg += 1;
+#endif
+ break;
+#else // USE_X_COLHDR ------------------------------------
+ case kbd_LEFT:
+#ifndef SCROLLVAR_NO
+ if (VIZCHKw(w)) {
+ if (VARleft(w))
+ w->varcolbeg -= SCROLLAMT;
+ else if (0 < w->begpflg) {
+ w->begpflg -= 1;
+ if (EU_MAXPFLGS < w->pflgsall[w->begpflg]) w->begpflg -= 2;
+ }
+ }
+#else
+ if (VIZCHKw(w)) if (0 < w->begpflg) {
+ w->begpflg -= 1;
+ if (EU_MAXPFLGS < w->pflgsall[w->begpflg]) w->begpflg -= 2;
+ }
+#endif
+ break;
+ case kbd_RIGHT:
+#ifndef SCROLLVAR_NO
+ if (VIZCHKw(w)) {
+ if (VARright(w)) {
+ w->varcolbeg += SCROLLAMT;
+ if (0 > w->varcolbeg) w->varcolbeg = 0;
+ } else if (w->begpflg + 1 < w->totpflgs) {
+ if (EU_MAXPFLGS < w->pflgsall[w->begpflg])
+ w->begpflg += (w->begpflg + 3 < w->totpflgs) ? 3 : 0;
+ else w->begpflg += 1;
+ }
+ }
+#else
+ if (VIZCHKw(w)) if (w->begpflg + 1 < w->totpflgs) {
+ if (EU_MAXPFLGS < w->pflgsall[w->begpflg])
+ w->begpflg += (w->begpflg + 3 < w->totpflgs) ? 3 : 0;
+ else w->begpflg += 1;
+ }
+#endif
+ break;
+#endif // USE_X_COLHDR ------------------------------------
+ case kbd_PGUP:
+ if (VIZCHKw(w)) {
+ if (CHKw(w, Show_IDLEPS) && 0 < w->begtask) {
+ mkVIZrowX(-(w->winlines - (Rc.mode_altscr ? 1 : 2)))
+ }
+ }
+ break;
+ case kbd_PGDN:
+ if (VIZCHKw(w)) {
+ if (CHKw(w, Show_IDLEPS) && w->begtask < PIDSmaxt - 1) {
+ mkVIZrowX(+(w->winlines - (Rc.mode_altscr ? 1 : 2)))
+ }
+ }
+ break;
+ case kbd_HOME:
+#ifndef SCROLLVAR_NO
+ if (VIZCHKw(w)) if (CHKw(w, Show_IDLEPS)) w->begtask = w->begpflg = w->varcolbeg = 0;
+#else
+ if (VIZCHKw(w)) if (CHKw(w, Show_IDLEPS)) w->begtask = w->begpflg = 0;
+#endif
+ break;
+ case kbd_END:
+ if (VIZCHKw(w)) {
+ if (CHKw(w, Show_IDLEPS)) {
+ mkVIZrowX((PIDSmaxt - w->winlines) + 1)
+ w->begpflg = w->endpflg;
+#ifndef SCROLLVAR_NO
+ w->varcolbeg = 0;
+#endif
+ }
+ }
+ break;
+ default: // keep gcc happy
+ break;
+ }
+} // end: keys_window
+
+
+static void keys_xtra (int ch) {
+// const char *xmsg;
+ WIN_t *w = Curwin; // avoid gcc bloat with a local copy
+
+#ifdef TREE_NORESET
+ if (CHKw(w, Show_FOREST)) return;
+#else
+ OFFw(w, Show_FOREST);
+#endif
+ /* these keys represent old-top compatibility --
+ they're grouped here so that if users could ever be weaned,
+ we would just whack do_key's key_tab entry and this function... */
+ switch (ch) {
+ case 'M':
+ w->rc.sortindx = EU_MEM;
+// xmsg = "Memory";
+ break;
+ case 'N':
+ w->rc.sortindx = EU_PID;
+// xmsg = "Numerical";
+ break;
+ case 'P':
+ w->rc.sortindx = EU_CPU;
+// xmsg = "CPU";
+ break;
+ case 'T':
+ w->rc.sortindx = EU_TM2;
+// xmsg = "Time";
+ break;
+ default: // keep gcc happy
+ break;
+ }
+// some have objected to this message, so we'll just keep silent...
+// show_msg(fmtmk("%s sort compatibility key honored", xmsg));
+} // end: keys_xtra
+
+/*###### Tertiary summary display support (summary_show helpers) #######*/
+
+ /*
+ * note how alphabetical order is maintained within carefully chosen |
+ * function names such as: (s)sum_see, (t)sum_tics, and (u)sum_unify |
+ * with every name exactly 1 letter more than the preceding function |
+ * ( surely, this must make us run much more efficiently. amirite? ) | */
+
+struct rx_st {
+ float pcnt_one, pcnt_two, pcnt_tot;
+ char graph[MEDBUFSIZ];
+};
+
+ /*
+ * A *Helper* function to produce the actual cpu & memory graphs for |
+ * these functions -- sum_tics (tertiary) and do_memory (secondary). |
+ * (sorry about the name, but it keeps the above comment commitment) | */
+static struct rx_st *sum_rx (struct graph_parms *these) {
+ static struct {
+ const char *part1, *part2, *style;
+ } gtab[] = {
+ { "%-.*s~7", "%-.*s~8", Graph_bars },
+ { "%-.*s~4", "%-.*s~6", Graph_blks }
+ };
+ static __thread struct rx_st rx;
+ char buf1[SMLBUFSIZ], buf2[SMLBUFSIZ], buf3[MEDBUFSIZ];
+ int ix, num1, num2, width;
+ float scale = 0.0;
+
+ if (these->total > 0)
+ scale = 100.0 / these->total;
+ rx.pcnt_one = scale * these->part1;
+ rx.pcnt_two = scale * these->part2;
+ if (rx.pcnt_one + rx.pcnt_two > 100.0 || rx.pcnt_two < 0)
+ rx.pcnt_two = 0;
+ rx.pcnt_tot = rx.pcnt_one + rx.pcnt_two;
+
+ num1 = (int)((rx.pcnt_one * these->adjust) + .5);
+ num2 = (int)((rx.pcnt_two * these->adjust) + .5);
+ if (num1 + num2 > these->length) {
+ if (num1 > these->length) num1 = these->length;
+ num2 = these->length - num1;
+ }
+
+ width = these->length;
+ buf1[0] = buf2[0] = buf3[0] = '\0';
+ ix = these->style - 1; // now relative to zero
+ if (num1) {
+ snprintf(buf1, sizeof(buf1), gtab[ix].part1, num1, gtab[ix].style);
+ width += 2;
+ }
+ if (num2) {
+ snprintf(buf2, sizeof(buf2), gtab[ix].part2, num2, gtab[ix].style);
+ width += 2;
+ }
+ snprintf(buf3, sizeof(buf3), "%s%s", buf1, buf2);
+ // 'width' has accounted for any show_special directives embedded above
+ snprintf(rx.graph, sizeof(rx.graph), "[~1%-*.*s] ~1", width, width, buf3);
+
+ return &rx;
+} // end: sum_rx
+
+
+ /*
+ * A *Helper* function to show multiple lines of summary information |
+ * as a single line. We return the number of lines actually printed. | */
+static inline int sum_see (const char *str, int nobuf) {
+ static char row[ROWMAXSIZ];
+ static int tog;
+ char *p;
+
+ p = scat(row, str);
+ if (!str[0]) goto flush_it;
+ if (Curwin->rc.double_up
+ && (!nobuf)) {
+ if (++tog <= Curwin->rc.double_up) {
+ scat(p, Adjoin_sp);
+ return 0;
+ }
+ }
+flush_it:
+ if (!row[0]) return 0;
+ scat(p, "\n");
+ show_special(0, row);
+ row[0] = '\0';
+ tog = 0;
+ return 1;
+} // end: sum_see
+
+
+ /*
+ * State display *Helper* function to calculate plus display (maybe) |
+ * the percentages for a single cpu. In this way, we'll support the |
+ * following environments without (hopefully) that usual code bloat: |
+ * 1) single cpu platforms (no matter the paucity of these types) |
+ * 2) modest smp boxes with ample room for each cpu's percentages |
+ * 3) massive smp guys leaving little or no room for that process |
+ * display and thus requiring the '1', '4', or '!' cpu toggles |
+ * ( we return the number of lines printed, as reported by sum_see ) | */
+static int sum_tics (struct stat_stack *this, const char *pfx, int nobuf) {
+ // tailored 'results stack value' extractor macros
+ #define qSv(E) STAT_VAL(E, s_int, this, Stat_ctx)
+ #define rSv(E) TIC_VAL(E, this)
+ SIC_t idl_frme, tot_frme;
+ struct rx_st *rx;
+ float scale;
+
+#ifndef CORE_TYPE_NO
+ if (Curwin->rc.core_types == P_CORES_ONLY && qSv(stat_COR_TYP) != P_CORE) return 0;
+ if (Curwin->rc.core_types == E_CORES_ONLY && qSv(stat_COR_TYP) != E_CORE) return 0;
+#endif
+ idl_frme = rSv(stat_IL);
+ tot_frme = rSv(stat_SUM_TOT);
+ if (1 > tot_frme) idl_frme = tot_frme = 1;
+ scale = 100.0 / (float)tot_frme;
+
+ /* account for VM tics not otherwise provided for ...
+ ( with xtra-procps-debug.h, can't use PID_VAL w/ assignment ) */
+ this->head[stat_SY].result.sl_int += rSv(stat_GU) + rSv(stat_GN);
+ this->head[stat_SUM_SYS].result.sl_int += rSv(stat_GU) + rSv(stat_GN);
+
+ /* display some kinda' cpu state percentages
+ (who or what is explained by the passed prefix) */
+ if (Curwin->rc.graph_cpus) {
+ Graph_cpus->total = tot_frme;
+ Graph_cpus->part1 = rSv(stat_SUM_USR);
+ Graph_cpus->part2 = rSv(stat_SUM_SYS);
+ rx = sum_rx(Graph_cpus);
+ if (Curwin->rc.double_up > 1)
+ return sum_see(fmtmk("%s~3%3.0f%s", pfx, rx->pcnt_tot, rx->graph), nobuf);
+ else {
+ return sum_see(fmtmk("%s ~3%#5.1f~2/%-#5.1f~3 %3.0f%s"
+ , pfx, rx->pcnt_one, rx->pcnt_two, rx->pcnt_tot
+ , rx->graph)
+ , nobuf);
+ }
+ } else {
+ return sum_see(fmtmk(Cpu_States_fmts, pfx
+ , (float)rSv(stat_US) * scale, (float)rSv(stat_SY) * scale
+ , (float)rSv(stat_NI) * scale, (float)idl_frme * scale
+ , (float)rSv(stat_IO) * scale, (float)rSv(stat_IR) * scale
+ , (float)rSv(stat_SI) * scale, (float)rSv(stat_ST) * scale), nobuf);
+ }
+ #undef qSv
+ #undef rSv
+} // end: sum_tics
+
+
+ /*
+ * Cpu *Helper* function to combine additional cpu statistics in our |
+ * efforts to reduce the total number of processors that'll be shown |
+ * ( we return the number of lines printed, as reported by sum_see ) | */
+static int sum_unify (struct stat_stack *this, int nobuf) {
+ // a tailored 'results stack value' extractor macro
+ #define rSv(E,T) STAT_VAL(E, T, this, Stat_ctx)
+ static struct stat_result stack[MAXTBL(Stat_items)];
+ static struct stat_stack accum = { &stack[0] };
+ static int ix, beg;
+ char pfx[16];
+ int n;
+
+ // entries for stat_ID & stat_NU are unused
+ stack[stat_US].result.sl_int += rSv(stat_US, sl_int);
+ stack[stat_SY].result.sl_int += rSv(stat_SY, sl_int);
+ stack[stat_NI].result.sl_int += rSv(stat_NI, sl_int);
+ stack[stat_IL].result.sl_int += rSv(stat_IL, sl_int);
+ stack[stat_IO].result.sl_int += rSv(stat_IO, sl_int);
+ stack[stat_IR].result.sl_int += rSv(stat_IR, sl_int);
+ stack[stat_SI].result.sl_int += rSv(stat_SI, sl_int);
+ stack[stat_ST].result.sl_int += rSv(stat_ST, sl_int);
+ stack[stat_GU].result.sl_int += rSv(stat_GU, sl_int);
+ stack[stat_GN].result.sl_int += rSv(stat_GN, sl_int);
+ stack[stat_SUM_USR].result.sl_int += rSv(stat_SUM_USR, sl_int);
+ stack[stat_SUM_SYS].result.sl_int += rSv(stat_SUM_SYS, sl_int);
+ stack[stat_SUM_TOT].result.sl_int += rSv(stat_SUM_TOT, sl_int);
+
+ if (!ix) beg = rSv(stat_ID, s_int);
+ if (nobuf || ix >= (Curwin->rc.combine_cpus - 1)) {
+ snprintf(pfx, sizeof(pfx), "%-7.7s:", fmtmk("%d-%d", beg, rSv(stat_ID, s_int)));
+ n = sum_tics(&accum, pfx, nobuf);
+ memset(&stack, 0, sizeof(stack));
+ ix = 0;
+ return n;
+ }
+ ++ix;
+ return 0;
+ #undef rSv
+} // end: sum_unify
+
+/*###### Secondary summary display support (summary_show helpers) ######*/
+
+ /*
+ * A helper function that displays cpu and/or numa node stuff |
+ * ( so as to keep the 'summary_show' guy a reasonable size ) | */
+static void do_cpus (void) {
+ #define noMAS (Msg_row + 1 >= SCREEN_ROWS - 1)
+ #define eachCPU(x) N_fmt(WORD_eachcpu_fmt), 'u', x
+ char tmp[MEDBUFSIZ];
+ int i;
+
+ if (CHKw(Curwin, View_CPUNOD)) {
+ if (Numa_node_sel < 0) {
+numa_oops:
+ /*
+ * display the 1st /proc/stat line, then the nodes (if room) ... */
+ Msg_row += sum_tics(Stat_reap->summary, N_txt(WORD_allcpus_txt), 1);
+ // display each cpu node's states
+ for (i = 0; i < Numa_node_tot; i++) {
+ struct stat_stack *nod_ptr = Stat_reap->numa->stacks[i];
+ if (NOD_VAL(stat_NU, i) == STAT_NODE_INVALID) continue;
+ if (noMAS) break;
+ snprintf(tmp, sizeof(tmp), N_fmt(NUMA_nodenam_fmt), NOD_VAL(stat_ID, i));
+ Msg_row += sum_tics(nod_ptr, tmp, 1);
+ }
+ } else {
+ /*
+ * display the node summary, then the associated cpus (if room) ... */
+ for (i = 0; i < Numa_node_tot; i++) {
+ if (Numa_node_sel == NOD_VAL(stat_ID, i)
+ && (NOD_VAL(stat_NU, i) != STAT_NODE_INVALID)) break;
+ }
+ if (i == Numa_node_tot) {
+ Numa_node_sel = -1;
+ goto numa_oops;
+ }
+ snprintf(tmp, sizeof(tmp), N_fmt(NUMA_nodenam_fmt), Numa_node_sel);
+ Msg_row += sum_tics(Stat_reap->numa->stacks[Numa_node_sel], tmp, 1);
+#ifdef PRETEND48CPU
+ #define deLIMIT Stat_reap->cpus->total
+#else
+ #define deLIMIT Cpu_cnt
+#endif
+ for (i = 0; i < deLIMIT; i++) {
+ if (Numa_node_sel == CPU_VAL(stat_NU, i)) {
+ if (noMAS) break;
+ snprintf(tmp, sizeof(tmp), eachCPU(CPU_VAL(stat_ID, i)));
+ Msg_row += sum_tics(Stat_reap->cpus->stacks[i], tmp, 1);
+ }
+ }
+ #undef deLIMIT
+ }
+
+ } else if (!CHKw(Curwin, View_CPUSUM)) {
+ /*
+ * display each cpu's states separately, screen height permitting ... */
+#ifdef PRETEND48CPU
+ int j;
+ if (Curwin->rc.combine_cpus) {
+ for (i = 0, j = 0; i < Cpu_cnt; i++) {
+ Stat_reap->cpus->stacks[j]->head[stat_ID].result.s_int = i;
+ Msg_row += sum_unify(Stat_reap->cpus->stacks[j], (i+1 >= Cpu_cnt));
+ if (++j >= Stat_reap->cpus->total) j = 0;
+ if (noMAS) break;
+ }
+ } else {
+ for (i = 0, j = 0; i < Cpu_cnt; i++) {
+ snprintf(tmp, sizeof(tmp), eachCPU(i));
+ Msg_row += sum_tics(Stat_reap->cpus->stacks[j], tmp, (i+1 >= Cpu_cnt));
+ if (++j >= Stat_reap->cpus->total) j = 0;
+ if (noMAS) break;
+ }
+ }
+#else
+ if (Curwin->rc.combine_cpus) {
+ for (i = 0; i < Cpu_cnt; i++) {
+ Msg_row += sum_unify(Stat_reap->cpus->stacks[i], (i+1 >= Cpu_cnt));
+ if (noMAS) break;
+ }
+ } else {
+ for (i = 0; i < Cpu_cnt; i++) {
+#ifndef CORE_TYPE_NO
+ #ifdef CORE_TYPE_LO
+ char ctab[] = { 'u', 'e', 'p' };
+ #else
+ char ctab[] = { 'u', 'E', 'P' };
+ #endif
+ int cid = CPU_VAL(stat_ID, i), typ = CPU_VAL(stat_COR_TYP, i);
+ char chr = Curwin->rc.core_types ? ctab[typ] : 'u' ;
+ snprintf(tmp, sizeof(tmp), N_fmt(WORD_eachcpu_fmt), chr, cid);
+#else
+ snprintf(tmp, sizeof(tmp), eachCPU(CPU_VAL(stat_ID, i)));
+#endif
+ Msg_row += sum_tics(Stat_reap->cpus->stacks[i], tmp, (i+1 >= Cpu_cnt));
+ if (noMAS) break;
+ }
+ }
+#endif
+
+ } else {
+ /*
+ * display just the 1st /proc/stat line ... */
+ Msg_row += sum_tics(Stat_reap->summary, N_txt(WORD_allcpus_txt), 1);
+ }
+
+ // coax this guy into flushing any pending cpu stuff ...
+ Msg_row += sum_see("", 1);
+ #undef noMAS
+ #undef eachCPU
+} // end: do_cpus
+
+
+ /*
+ * A helper function which will display the memory/swap stuff |
+ * ( so as to keep the 'summary_show' guy a reasonable size ) | */
+static void do_memory (void) {
+ #define bfT(n) buftab[n].buf
+ #define scT(e) scaletab[Rc.summ_mscale]. e
+ #define mkM(x) (float) x / scT(div)
+ #define prT(b,z) { if (9 < snprintf(b, 10, scT(fmts), z)) b[8] = '+'; }
+#ifdef TOG4_MEM_1UP
+ #define mem2UP 1
+#else
+ #define mem2UP 0
+#endif
+ static struct {
+ float div;
+ const char *fmts;
+ const char *label;
+ } scaletab[] = {
+ { 1, "%.0f ", NULL }, // kibibytes
+#ifdef BOOST_MEMORY
+ { 1024.0, "%#.3f ", NULL }, // mebibytes
+ { 1024.0*1024, "%#.3f ", NULL }, // gibibytes
+ { 1024.0*1024*1024, "%#.3f ", NULL }, // tebibytes
+ { 1024.0*1024*1024*1024, "%#.3f ", NULL }, // pebibytes
+ { 1024.0*1024*1024*1024*1024, "%#.3f ", NULL } // exbibytes
+#else
+ { 1024.0, "%#.1f ", NULL }, // mebibytes
+ { 1024.0*1024, "%#.1f ", NULL }, // gibibytes
+ { 1024.0*1024*1024, "%#.1f ", NULL }, // tebibytes
+ { 1024.0*1024*1024*1024, "%#.1f ", NULL }, // pebibytes
+ { 1024.0*1024*1024*1024*1024, "%#.1f ", NULL } // exbibytes
+#endif
+ };
+ struct { // 0123456789
+ // snprintf contents of each buf (after SK_Kb): 'nnnn.nnn 0'
+ // & prT macro might replace space at buf[8] with: -------> +
+ char buf[10]; // MEMORY_lines_fmt provides for 8+1 bytes
+ } buftab[8];
+ char row[ROWMINSIZ];
+ long my_qued, my_misc, my_used;
+ struct rx_st *rx;
+
+ if (!scaletab[0].label) {
+ scaletab[0].label = N_txt(AMT_kilobyte_txt);
+ scaletab[1].label = N_txt(AMT_megabyte_txt);
+ scaletab[2].label = N_txt(AMT_gigabyte_txt);
+ scaletab[3].label = N_txt(AMT_terabyte_txt);
+ scaletab[4].label = N_txt(AMT_petabyte_txt);
+ scaletab[5].label = N_txt(AMT_exxabyte_txt);
+ }
+ my_qued = MEM_VAL(mem_BUF) + MEM_VAL(mem_QUE);
+
+ if (Curwin->rc.graph_mems) {
+ my_used = MEM_VAL(mem_TOT) - MEM_VAL(mem_FRE) - my_qued;
+#ifdef MEMGRAPH_OLD
+ my_misc = my_qued;
+#else
+ my_misc = MEM_VAL(mem_TOT) - MEM_VAL(mem_AVL) - my_used;
+#endif
+ Graph_mems->total = MEM_VAL(mem_TOT);
+ Graph_mems->part1 = my_used;
+ Graph_mems->part2 = my_misc;
+ rx = sum_rx(Graph_mems);
+#ifdef TOG4_MEM_1UP
+ prT(bfT(0), mkM(MEM_VAL(mem_TOT)));
+ snprintf(row, sizeof(row), "%s %s:~3%#5.1f~2/%-9.9s~3%s"
+ , scT(label), N_txt(WORD_abv_mem_txt), rx->pcnt_tot, bfT(0), rx->graph);
+#else
+ if (Curwin->rc.double_up > 1)
+ snprintf(row, sizeof(row), "%s %s~3%3.0f%s"
+ , scT(label), N_txt(WORD_abv_mem_txt), rx->pcnt_tot, rx->graph);
+ else {
+ prT(bfT(0), mkM(MEM_VAL(mem_TOT)));
+ snprintf(row, sizeof(row), "%s %s:~3%#5.1f~2/%-9.9s~3%s"
+ , scT(label), N_txt(WORD_abv_mem_txt), rx->pcnt_tot, bfT(0), rx->graph);
+ }
+#endif
+ Msg_row += sum_see(row, mem2UP);
+
+ Graph_mems->total = MEM_VAL(swp_TOT);
+ Graph_mems->part1 = 0;
+ Graph_mems->part2 = MEM_VAL(swp_USE);
+ rx = sum_rx(Graph_mems);
+#ifdef TOG4_MEM_1UP
+ prT(bfT(1), mkM(MEM_VAL(swp_TOT)));
+ snprintf(row, sizeof(row), "%s %s:~3%#5.1f~2/%-9.9s~3%s"
+ , scT(label), N_txt(WORD_abv_swp_txt), rx->pcnt_two, bfT(1), rx->graph);
+#else
+ if (Curwin->rc.double_up > 1)
+ snprintf(row, sizeof(row), "%s %s~3%3.0f%s"
+ , scT(label), N_txt(WORD_abv_swp_txt), rx->pcnt_two, rx->graph);
+ else {
+ prT(bfT(1), mkM(MEM_VAL(swp_TOT)));
+ snprintf(row, sizeof(row), "%s %s:~3%#5.1f~2/%-9.9s~3%s"
+ , scT(label), N_txt(WORD_abv_swp_txt), rx->pcnt_two, bfT(1), rx->graph);
+ }
+#endif
+ Msg_row += sum_see(row, 1);
+
+ } else {
+ prT(bfT(0), mkM(MEM_VAL(mem_TOT))); prT(bfT(1), mkM(MEM_VAL(mem_FRE)));
+ prT(bfT(2), mkM(MEM_VAL(mem_USE))); prT(bfT(3), mkM(my_qued));
+ prT(bfT(4), mkM(MEM_VAL(swp_TOT))); prT(bfT(5), mkM(MEM_VAL(swp_FRE)));
+ prT(bfT(6), mkM(MEM_VAL(swp_USE))); prT(bfT(7), mkM(MEM_VAL(mem_AVL)));
+
+ snprintf(row, sizeof(row), N_unq(MEMORY_line1_fmt)
+ , scT(label), N_txt(WORD_abv_mem_txt), bfT(0), bfT(1), bfT(2), bfT(3));
+ Msg_row += sum_see(row, mem2UP);
+
+ snprintf(row, sizeof(row), N_unq(MEMORY_line2_fmt)
+ , scT(label), N_txt(WORD_abv_swp_txt), bfT(4), bfT(5), bfT(6), bfT(7)
+ , N_txt(WORD_abv_mem_txt));
+ Msg_row += sum_see(row, 1);
+ }
+ #undef bfT
+ #undef scT
+ #undef mkM
+ #undef prT
+ #undef mem2UP
+} // end: do_memory
+
+/*###### Main Screen routines ##########################################*/
+
+ /*
+ * Process keyboard input during the main loop */
+static void do_key (int ch) {
+ static struct {
+ void (*func)(int ch);
+ char keys[SMLBUFSIZ];
+ } key_tab[] = {
+ { keys_global,
+ { '?', 'B', 'd', 'E', 'e', 'f', 'g', 'H', 'h'
+ , 'I', 'k', 'r', 's', 'X', 'Y', 'Z', '0'
+ , kbd_CtrlE, kbd_CtrlG, kbd_CtrlI, kbd_CtrlK, kbd_CtrlL
+ , kbd_CtrlN, kbd_CtrlP, kbd_CtrlR, kbd_CtrlU
+ , kbd_ENTER, kbd_SPACE, kbd_BTAB, '\0' } },
+ { keys_summary,
+ #ifdef CORE_TYPE_NO
+ { '!', '1', '2', '3', '4', 'C', 'l', 'm', 't', '\0' } },
+ #else
+ { '!', '1', '2', '3', '4', '5', 'C', 'l', 'm', 't', '\0' } },
+ #endif
+ { keys_task,
+ { '#', '<', '>', 'b', 'c', 'F', 'i', 'J', 'j', 'n', 'O', 'o'
+ , 'R', 'S', 'U', 'u', 'V', 'v', 'x', 'y', 'z'
+ , kbd_CtrlO, '\0' } },
+ { keys_window,
+ { '+', '-', '=', '_', '&', 'A', 'a', 'G', 'L', 'w'
+ , kbd_UP, kbd_DOWN, kbd_LEFT, kbd_RIGHT, kbd_PGUP, kbd_PGDN
+ , kbd_HOME, kbd_END, '\0' } },
+ { keys_xtra,
+ { 'M', 'N', 'P', 'T', '\0'} }
+ };
+ int i;
+
+ Frames_signal = BREAK_off;
+ switch (ch) {
+ case 0: // ignored (always)
+ case kbd_ESC: // ignored (sometimes)
+ goto all_done;
+ case 'q': // no return from this guy
+ bye_bye(NULL);
+ case 'W': // no need for rebuilds
+ write_rcfile();
+ goto all_done;
+ default: // and now, the real work...
+ // and just in case 'Monpids' is active but matched no processes ...
+ if (!PIDSmaxt && ch != '=') goto all_done;
+ for (i = 0; i < MAXTBL(key_tab); ++i)
+ if (strchr(key_tab[i].keys, ch)) {
+ key_tab[i].func(ch);
+ if (Frames_signal == BREAK_off)
+ Frames_signal = BREAK_kbd;
+ /* due to the proliferation of the need for 'mkVIZrow1', |
+ aside from 'wins_stage_2' use, we'll now issue it one |
+ time here. there will remain several places where the |
+ companion 'mkVIZrowX' macro is issued, thus the check |
+ for a value already in 'begnext' in this conditional. | */
+ if (CHKw(Curwin, Show_TASKON) && !mkVIZyes)
+ mkVIZrow1
+ goto all_done;
+ }
+ };
+ /* The Frames_signal above will force a rebuild of column headers.
+ It's NOT simply lazy programming. Below are some keys that may
+ require new column headers and/or new library item enumerators:
+ 'A' - likely
+ 'c' - likely when !Mode_altscr, maybe when Mode_altscr
+ 'F' - likely
+ 'f' - likely
+ 'g' - likely
+ 'H' - likely
+ 'I' - likely
+ 'J' - always
+ 'j' - always
+ 'Z' - likely, if 'Curwin' changed when !Mode_altscr
+ '-' - likely (restricted to Mode_altscr)
+ '_' - likely (restricted to Mode_altscr)
+ '=' - maybe, but only when Mode_altscr
+ '+' - likely (restricted to Mode_altscr)
+ PLUS, likely for FOUR of the EIGHT cursor motion keys (scrolled)
+ ( At this point we have a human being involved and so have all the time )
+ ( in the world. We can afford a few extra cpu cycles every now & then! )
+ */
+
+ show_msg(N_txt(UNKNOWN_cmds_txt));
+all_done:
+ putp((Cursor_state = Cap_curs_hide));
+} // end: do_key
+
+
+ /*
+ * In support of a new frame:
+ * 1) Display uptime and load average (maybe)
+ * 2) Display task/cpu states (maybe)
+ * 3) Display memory & swap usage (maybe) */
+static void summary_show (void) {
+ #define isROOM(f,n) (CHKw(Curwin, f) && Msg_row + (n) < SCREEN_ROWS - 1)
+
+ if (Restrict_some) {
+#ifdef THREADED_TSK
+ sem_wait(&Semaphore_tasks_end);
+#endif
+ // Display Task States only
+ if (isROOM(View_STATES, 1)) {
+ show_special(0, fmtmk(N_unq(STATE_line_1_fmt)
+ , Thread_mode ? N_txt(WORD_threads_txt) : N_txt(WORD_process_txt)
+ , PIDSmaxt, Pids_reap->counts->running
+ , Pids_reap->counts->sleeping + Pids_reap->counts->other
+ , Pids_reap->counts->stopped, Pids_reap->counts->zombied));
+ Msg_row += 1;
+ }
+ return;
+ }
+
+ // Display Uptime and Loadavg
+ if (isROOM(View_LOADAV, 1)) {
+ if (!Rc.mode_altscr)
+ show_special(0, fmtmk(LOADAV_line, Myname, procps_uptime_sprint()));
+ else
+ show_special(0, fmtmk(CHKw(Curwin, Show_TASKON)? LOADAV_line_alt : LOADAV_line
+ , Curwin->grpname, procps_uptime_sprint()));
+ Msg_row += 1;
+ } // end: View_LOADAV
+
+#ifdef THREADED_CPU
+ sem_wait(&Semaphore_cpus_end);
+#endif
+#ifdef THREADED_TSK
+ sem_wait(&Semaphore_tasks_end);
+#endif
+ // Display Task and Cpu(s) States
+ if (isROOM(View_STATES, 2)) {
+ show_special(0, fmtmk(N_unq(STATE_line_1_fmt)
+ , Thread_mode ? N_txt(WORD_threads_txt) : N_txt(WORD_process_txt)
+ , PIDSmaxt, Pids_reap->counts->running
+ , Pids_reap->counts->sleeping + Pids_reap->counts->other
+ , Pids_reap->counts->stopped, Pids_reap->counts->zombied));
+ Msg_row += 1;
+
+ do_cpus();
+ }
+
+#ifdef THREADED_MEM
+ sem_wait(&Semaphore_memory_end);
+#endif
+ // Display Memory and Swap stats
+ if (isROOM(View_MEMORY, 2)) {
+ do_memory();
+ }
+
+ #undef isROOM
+} // end: summary_show
+
+
+ /*
+ * Build the information for a single task row and
+ * display the results or return them to the caller. */
+static const char *task_show (const WIN_t *q, int idx) {
+ // a tailored 'results stack value' extractor macro
+ #define rSv(E,T) PID_VAL(E, T, p)
+#ifndef SCROLLVAR_NO
+ #define makeVAR(S) { const char *pv = S; \
+ if (!q->varcolbeg) cp = make_str(pv, q->varcolsz, Js, AUTOX_NO); \
+ else cp = make_str(q->varcolbeg < (int)strlen(pv) ? pv + q->varcolbeg : "", q->varcolsz, Js, AUTOX_NO); }
+ #define varUTF8(S) { const char *pv = S; \
+ if (!q->varcolbeg) cp = make_str_utf8(pv, q->varcolsz, Js, AUTOX_NO); \
+ else cp = make_str_utf8((q->varcolbeg < ((int)strlen(pv) - utf8_delta(pv))) \
+ ? pv + utf8_embody(pv, q->varcolbeg) : "", q->varcolsz, Js, AUTOX_NO); }
+#else
+ #define makeVAR(S) { cp = make_str(S, q->varcolsz, Js, AUTOX_NO); }
+ #define varUTF8(S) { cp = make_str_utf8(S, q->varcolsz, Js, AUTOX_NO); }
+#endif
+ struct pids_stack *p = q->ppt[idx];
+ static char rbuf[ROWMINSIZ];
+ char *rp;
+ int x;
+
+ /* we use up to three additional 'PIDS_extra' results in our stacks
+ eu_TREE_HID (s_ch) : where 'x' == collapsed and 'z' == unseen
+ eu_TREE_LVL (s_int): where a level number is stored (0 - 100)
+ eu_TREE_ADD (u_int): where children's tics are stored (maybe) */
+#ifndef TREE_VWINALL
+ if (q == Curwin) // note: the following is NOT indented
+#endif
+ if (CHKw(q, Show_FOREST) && rSv(eu_TREE_HID, s_ch) == 'z')
+ return "";
+
+ // we must begin a row with a possible window number in mind...
+ *(rp = rbuf) = '\0';
+ if (Rc.mode_altscr) rp = scat(rp, " ");
+
+ for (x = 0; x < q->maxpflgs; x++) {
+ const char *cp = NULL;
+ FLG_t i = q->procflgs[x];
+ #define S Fieldstab[i].scale // these used to be variables
+ #define W Fieldstab[i].width // but it's much better if we
+ #define Js CHKw(q, Show_JRSTRS) // represent them as #defines
+ #define Jn CHKw(q, Show_JRNUMS) // and only exec code if used
+
+ /* except for the XOF/XON pseudo flags the following case labels are grouped
+ by result type according to capacity (small -> large) and then ordered by
+ additional processing requirements (as in plain, scaled, decorated, etc.) */
+
+ switch (i) {
+#ifndef USE_X_COLHDR
+ // these 2 aren't real procflgs, they're used in column highlighting!
+ case EU_XOF:
+ case EU_XON:
+ cp = NULL;
+ if (!CHKw(q, NOPRINT_xxx)) {
+ /* treat running tasks specially - entire row may get highlighted
+ so we needn't turn it on and we MUST NOT turn it off */
+ if (!('R' == rSv(EU_STA, s_ch) && CHKw(q, Show_HIROWS)))
+ cp = (EU_XON == i ? q->capclr_rowhigh : q->capclr_rownorm);
+ }
+ break;
+#endif
+ /* s_ch, make_chr */
+ case EU_STA: // PIDS_STATE
+ cp = make_chr(rSv(EU_STA, s_ch), W, Js);
+ break;
+ /* s_int, make_num with auto width */
+ case EU_LID: // PIDS_ID_LOGIN
+ cp = make_num(rSv(EU_LID, s_int), W, Jn, EU_LID, 0);
+ break;
+ /* s_int, make_num without auto width */
+ case EU_AGI: // PIDS_AUTOGRP_ID
+ case EU_CPN: // PIDS_PROCESSOR
+ case EU_NMA: // PIDS_PROCESSOR_NODE
+ case EU_PGD: // PIDS_ID_PGRP
+ case EU_PID: // PIDS_ID_PID
+ case EU_PPD: // PIDS_ID_PPID
+ case EU_SID: // PIDS_ID_SESSION
+ case EU_TGD: // PIDS_ID_TGID
+ case EU_THD: // PIDS_NLWP
+ case EU_TPG: // PIDS_ID_TPGID
+ cp = make_num(rSv(i, s_int), W, Jn, AUTOX_NO, 0);
+ break;
+ /* s_int, make_num without auto width, but with zero suppression */
+ case EU_AGN: // PIDS_AUTOGRP_NICE
+ case EU_NCE: // PIDS_NICE
+ case EU_OOA: // PIDS_OOM_ADJ
+ case EU_OOM: // PIDS_OOM_SCORE
+ cp = make_num(rSv(i, s_int), W, Jn, AUTOX_NO, 1);
+ break;
+ /* s_int, scale_num */
+ case EU_FV1: // PIDS_FLT_MAJ_DELTA
+ case EU_FV2: // PIDS_FLT_MIN_DELTA
+ cp = scale_num(rSv(i, s_int), W, Jn);
+ break;
+ /* s_int, make_num or make_str */
+ case EU_PRI: // PIDS_PRIORITY
+ if (-99 > rSv(EU_PRI, s_int) || 999 < rSv(EU_PRI, s_int))
+ cp = make_str("rt", W, Jn, AUTOX_NO);
+ else
+ cp = make_num(rSv(EU_PRI, s_int), W, Jn, AUTOX_NO, 0);
+ break;
+ /* s_int, scale_pcnt with special handling */
+ case EU_CPU: // PIDS_TICS_ALL_DELTA
+ { float u = (float)rSv(EU_CPU, u_int);
+ int n = rSv(EU_THD, s_int);
+ if (Restrict_some) {
+ cp = justify_pad("?", W, Jn);
+ break;
+ }
+#ifndef TREE_VCPUOFF
+ #ifndef TREE_VWINALL
+ if (q == Curwin) // note: the following is NOT indented
+ #endif
+ if (CHKw(q, Show_FOREST)) u += rSv(eu_TREE_ADD, u_int);
+ u *= Frame_etscale;
+ /* technically, eu_TREE_HID is only valid if Show_FOREST is active
+ but its zeroed out slot will always be present now */
+ if (rSv(eu_TREE_HID, s_ch) != 'x' && u > 100.0 * n) u = 100.0 * n;
+#else
+ u *= Frame_etscale;
+ /* process can't use more %cpu than number of threads it has
+ ( thanks Jaromir Capik <jcapik@redhat.com> ) */
+ if (u > 100.0 * n) u = 100.0 * n;
+#endif
+ if (u > Cpu_pmax) u = Cpu_pmax;
+ cp = scale_pcnt(u, W, Jn, 0);
+ }
+ break;
+ /* ull_int, scale_pcnt for 'utilization' */
+ case EU_CUU: // PIDS_UTILIZATION
+ case EU_CUC: // PIDS_UTILIZATION_C
+ if (Restrict_some) {
+ cp = justify_pad("?", W, Jn);
+ break;
+ }
+ cp = scale_pcnt(rSv(i, real), W, Jn, 1);
+ break;
+ /* u_int, make_num with auto width */
+ case EU_GID: // PIDS_ID_EGID
+ case EU_UED: // PIDS_ID_EUID
+ case EU_URD: // PIDS_ID_RUID
+ case EU_USD: // PIDS_ID_SUID
+ cp = make_num(rSv(i, u_int), W, Jn, i, 0);
+ break;
+ /* ul_int, make_num with auto width and zero suppression */
+ case EU_NS1: // PIDS_NS_IPC
+ case EU_NS2: // PIDS_NS_MNT
+ case EU_NS3: // PIDS_NS_NET
+ case EU_NS4: // PIDS_NS_PID
+ case EU_NS5: // PIDS_NS_USER
+ case EU_NS6: // PIDS_NS_UTS
+ case EU_NS7: // PIDS_NS_CGROUP
+ case EU_NS8: // PIDS_NS_TIME
+ cp = make_num(rSv(i, ul_int), W, Jn, i, 1);
+ break;
+ /* ul_int, scale_mem */
+ case EU_COD: // PIDS_MEM_CODE
+ case EU_DAT: // PIDS_MEM_DATA
+ case EU_DRT: // PIDS_noop, really # pgs, but always 0 since 2.6
+ case EU_PZA: // PIDS_SMAP_PSS_ANON
+ case EU_PZF: // PIDS_SMAP_PSS_FILE
+ case EU_PZS: // PIDS_SMAP_PSS_SHMEM
+ case EU_PSS: // PIDS_SMAP_PSS
+ case EU_RES: // PIDS_MEM_RES
+ case EU_RSS: // PIDS_SMAP_RSS
+ case EU_RZA: // PIDS_VM_RSS_ANON
+ case EU_RZF: // PIDS_VM_RSS_FILE
+ case EU_RZL: // PIDS_VM_RSS_LOCKED
+ case EU_RZS: // PIDS_VM_RSS_SHARED
+ case EU_SHR: // PIDS_MEM_SHR
+ case EU_SWP: // PIDS_VM_SWAP
+ case EU_USE: // PIDS_VM_USED
+ case EU_USS: // PIDS_SMAP_PRV_TOTAL
+ case EU_VRT: // PIDS_MEM_VIRT
+ cp = scale_mem(S, rSv(i, ul_int), W, Jn);
+ break;
+ /* ul_int, scale_num */
+ case EU_FL1: // PIDS_FLT_MAJ
+ case EU_FL2: // PIDS_FLT_MIN
+ case EU_IRB: // PIDS_IO_READ_BYTES
+ case EU_IRO: // PIDS_IO_READ_OPS
+ case EU_IWB: // PIDS_IO_WRITE_BYTES
+ case EU_IWO: // PIDS_IO_WRITE_OPS
+ cp = scale_num(rSv(i, ul_int), W, Jn);
+ break;
+ /* ul_int, scale_pcnt */
+ case EU_MEM: // derive from PIDS_MEM_RES
+ if (Restrict_some) {
+ cp = justify_pad("?", W, Jn);
+ break;
+ }
+ cp = scale_pcnt((float)rSv(EU_MEM, ul_int) * 100 / MEM_VAL(mem_TOT), W, Jn, 0);
+ break;
+ /* ul_int, make_str with special handling */
+ case EU_FLG: // PIDS_FLAGS
+ cp = make_str(hex_make(rSv(EU_FLG, ul_int), 1), W, Js, AUTOX_NO);
+ break;
+ /* ull_int, scale_tics (try 'minutes:seconds.hundredths') */
+ case EU_TM2: // PIDS_TICS_ALL
+ case EU_TME: // PIDS_TICS_ALL
+ { TIC_t t;
+ if (CHKw(q, Show_CTIMES)) t = rSv(eu_TICS_ALL_C, ull_int);
+ else t = rSv(i, ull_int);
+ cp = scale_tics(t, W, Jn, TICS_AS_SECS);
+ }
+ break;
+ /* ull_int, scale_tics (try 'minutes:seconds') */
+ case EU_TM3: // PIDS_TICS_BEGAN
+ cp = scale_tics(rSv(EU_TM3, ull_int), W, Jn, TICS_AS_MINS);
+ break;
+ /* real, scale_tics (try 'hour,minutes') */
+ case EU_TM4: // PIDS_TIME_ELAPSED
+ cp = scale_tics(rSv(EU_TM4, real) * Hertz, W, Jn, TICS_AS_HOUR);
+ break;
+ /* str, make_str (all AUTOX yes) */
+ case EU_LXC: // PIDS_LXCNAME
+ case EU_TTY: // PIDS_TTY_NAME
+ case EU_WCH: // PIDS_WCHAN_NAME
+ cp = make_str(rSv(i, str), W, Js, i);
+ break;
+ /* str, make_str_utf8 (all AUTOX yes) */
+ case EU_GRP: // PIDS_ID_EGROUP
+ case EU_UEN: // PIDS_ID_EUSER
+ case EU_URN: // PIDS_ID_RUSER
+ case EU_USN: // PIDS_ID_SUSER
+ cp = make_str_utf8(rSv(i, str), W, Js, i);
+ break;
+ /* str, make_str_utf8 with variable width */
+ case EU_CGN: // PIDS_CGNAME
+ case EU_CGR: // PIDS_CGROUP
+ case EU_ENV: // PIDS_ENVIRON
+ case EU_EXE: // PIDS_EXE
+ case EU_SGN: // PIDS_SUPGROUPS
+ varUTF8(rSv(i, str))
+ break;
+ /* str, make_str with variable width */
+ case EU_SGD: // PIDS_SUPGIDS
+ makeVAR(rSv(EU_SGD, str))
+ break;
+ /* str, make_str with variable width + additional decoration */
+ case EU_CMD: // PIDS_CMD or PIDS_CMDLINE
+ varUTF8(forest_display(q, idx))
+ break;
+ default: // keep gcc happy
+ continue;
+ } // end: switch 'procflag'
+
+ if (cp) {
+ if (q->osel_tot && !osel_matched(q, i, cp)) return "";
+ rp = scat(rp, cp);
+ }
+ #undef S
+ #undef W
+ #undef Js
+ #undef Jn
+ } // end: for 'maxpflgs'
+
+ if (!CHKw(q, NOPRINT_xxx)) {
+ const char *cap = ((CHKw(q, Show_HIROWS) && 'R' == rSv(EU_STA, s_ch)))
+ ? q->capclr_rowhigh : q->capclr_rownorm;
+ char *row = rbuf;
+ int ofs;
+ /* since we can't predict what the search string will be and,
+ considering what a single space search request would do to
+ potential buffer needs, when any matches are found we skip
+ normal output routing and send all of the results directly
+ to the terminal (and we sound asthmatic: poof, putt, puff) */
+ if (-1 < (ofs = find_ofs(q, row))) {
+ POOF("\n", cap);
+ do {
+ row[ofs] = '\0';
+ PUTT("%s%s%s%s", row, q->capclr_hdr, q->findstr, cap);
+ row += (ofs + q->findlen);
+ ofs = find_ofs(q, row);
+ } while (-1 < ofs);
+ PUTT("%s%s", row, Caps_endline);
+ // with a corrupted rbuf, ensure row is 'counted' by window_show
+ rbuf[0] = '!';
+ } else
+ PUFF("\n%s%s%s", cap, row, Caps_endline);
+ }
+ return rbuf;
+ #undef rSv
+ #undef makeVAR
+ #undef varUTF8
+} // end: task_show
+
+
+ /*
+ * A window_show *Helper* function ensuring that a window 'begtask' |
+ * represents a visible process (not any hidden/filtered-out task). |
+ * In reality this function is called exclusively for the 'current' |
+ * window and only after available user keystroke(s) are processed. |
+ * Note: it's entirely possible there are NO visible tasks to show! | */
+static void window_hlp (void) {
+ WIN_t *w = Curwin; // avoid gcc bloat with a local copy
+ int i, reversed;
+ int beg = w->focus_pid ? w->focus_beg : 0;
+ int end = w->focus_pid ? w->focus_end : PIDSmaxt;
+
+ SETw(w, NOPRINT_xxx);
+ w->begtask += w->begnext;
+ // next 'if' will force a forward scan ...
+ if (w->begtask <= beg) { w->begtask = beg; w->begnext = +1; }
+ else if (w->begtask >= end) w->begtask = end - 1;
+
+ reversed = 0;
+ // potentially scroll forward ...
+ if (w->begnext > 0) {
+fwd_redux:
+ for (i = w->begtask; i < end; i++) {
+ if (wins_usrselect(w, i)
+ && (*task_show(w, i)))
+ break;
+ }
+ if (i < end) {
+ w->begtask = i;
+ goto wrap_up;
+ }
+ // no luck forward, so let's try backward
+ w->begtask = end - 1;
+ }
+
+ // potentially scroll backward ...
+ for (i = w->begtask; i > beg; i--) {
+ if (wins_usrselect(w, i)
+ && (*task_show(w, i)))
+ break;
+ }
+ w->begtask = i;
+
+ // reached the top, but maybe this guy ain't visible
+ if (w->begtask == beg && !reversed) {
+ if (!(wins_usrselect(w, beg))
+ || (!(*task_show(w, beg)))) {
+ reversed = 1;
+ goto fwd_redux;
+ }
+ }
+
+wrap_up:
+ mkVIZoff(w)
+ OFFw(w, NOPRINT_xxx);
+} // end: window_hlp
+
+
+ /*
+ * Squeeze as many tasks as we can into a single window,
+ * after sorting the passed proc table. */
+static int window_show (WIN_t *q, int wmax) {
+ #define sORDER CHKw(q, Qsrt_NORMAL) ? PIDS_SORT_DESCEND : PIDS_SORT_ASCEND
+ /* the isBUSY macro determines if a task is 'active' --
+ it returns true if some cpu was used since the last sample.
+ ( actual 'running' tasks will be a subset of those selected ) */
+ #define isBUSY(x) (0 < PID_VAL(EU_CPU, u_int, (x)))
+ #define winMIN(a,b) (((a) < (b)) ? (a) : (b))
+ int i, lwin, numtasks;
+
+ // Display Column Headings -- and distract 'em while we sort (maybe)
+ PUFF("\n%s%s%s", q->capclr_hdr, q->columnhdr, Caps_endline);
+ // and just in case 'Monpids' is active but matched no processes ...
+ if (!PIDSmaxt) return 1; // 1 for the column header
+
+ if (CHKw(q, Show_FOREST)) {
+ forest_begin(q);
+ if (q->focus_pid) forest_config(q);
+ } else {
+ enum pids_item item = Fieldstab[q->rc.sortindx].item;
+ if (item == PIDS_CMD && CHKw(q, Show_CMDLIN))
+ item = PIDS_CMDLINE;
+ else if (item == PIDS_TICS_ALL && CHKw(q, Show_CTIMES))
+ item = PIDS_TICS_ALL_C;
+ if (!(procps_pids_sort(Pids_ctx, q->ppt , PIDSmaxt, item, sORDER)))
+ error_exit(fmtmk(N_fmt(LIB_errorpid_fmt), __LINE__, strerror(errno)));
+ }
+
+ if (mkVIZyes) window_hlp();
+ else OFFw(q, NOPRINT_xxx);
+
+ i = q->begtask;
+ lwin = 1; // 1 for the column header
+ wmax = winMIN(wmax, q->winlines + 1); // ditto for winlines, too
+ numtasks = q->focus_pid ? winMIN(q->focus_end, PIDSmaxt) : PIDSmaxt;
+
+ /* the least likely scenario is also the most costly, so we'll try to avoid
+ checking some stuff with each iteration and check it just once... */
+ if (CHKw(q, Show_IDLEPS) && !q->usrseltyp)
+ while (i < numtasks && lwin < wmax) {
+ if (*task_show(q, i++))
+ ++lwin;
+ }
+ else
+ while (i < numtasks && lwin < wmax) {
+ if ((CHKw(q, Show_IDLEPS) || isBUSY(q->ppt[i]))
+ && wins_usrselect(q, i)
+ && *task_show(q, i))
+ ++lwin;
+ ++i;
+ }
+
+ return lwin;
+ #undef sORDER
+ #undef isBUSY
+ #undef winMIN
+} // end: window_show
+
+/*###### Entry point plus two ##########################################*/
+
+ /*
+ * This guy's just a *Helper* function who apportions the
+ * remaining amount of screen real estate under multiple windows */
+static void frame_hlp (int wix, int max) {
+ int i, size, wins;
+
+ // calc remaining number of visible windows
+ for (i = wix, wins = 0; i < GROUPSMAX; i++)
+ if (CHKw(&Winstk[i], Show_TASKON))
+ ++wins;
+
+ if (!wins) wins = 1;
+ // deduct 1 line/window for the columns heading
+ size = (max - wins) / wins;
+
+ /* for subject window, set WIN_t winlines to either the user's
+ maxtask (1st choice) or our 'foxized' size calculation
+ (foxized adj. - 'fair and balanced') */
+ Winstk[wix].winlines =
+ Winstk[wix].rc.maxtasks ? Winstk[wix].rc.maxtasks : size;
+} // end: frame_hlp
+
+
+ /*
+ * Initiate the Frame Display Update cycle at someone's whim!
+ * This routine doesn't do much, mostly he just calls others.
+ *
+ * (Whoa, wait a minute, we DO caretake those row guys, plus)
+ * (we CALCULATE that IMPORTANT Max_lines thingy so that the)
+ * (*subordinate* functions invoked know WHEN the user's had)
+ * (ENOUGH already. And at Frame End, it SHOULD be apparent)
+ * (WE am d'MAN -- clearing UNUSED screen LINES and ensuring)
+ * (that those auto-sized columns are addressed, know what I)
+ * (mean? Huh, "doesn't DO MUCH"! Never, EVER think or say)
+ * (THAT about THIS function again, Ok? Good that's better.)
+ *
+ * (ps. we ARE the UNEQUALED justification KING of COMMENTS!)
+ * (No, I don't mean significance/relevance, only alignment.)
+ */
+static void frame_make (void) {
+ WIN_t *w = Curwin; // avoid gcc bloat with a local copy
+ int i, scrlins;
+
+ // check auto-sized width increases from the last iteration...
+ if (AUTOX_MODE && Autox_found)
+ widths_resize();
+
+ /* deal with potential signal(s) since the last time around
+ plus any input which may change 'tasks_refresh' needs... */
+ if (Frames_signal) {
+ if (Frames_signal == BREAK_sig
+ || (Frames_signal == BREAK_screen))
+ BOT_TOSS;
+ zap_fieldstab();
+ }
+
+#ifdef THREADED_TSK
+ sem_post(&Semaphore_tasks_beg);
+#else
+ tasks_refresh(NULL);
+#endif
+
+ if (!Restrict_some) {
+#ifdef THREADED_CPU
+ sem_post(&Semaphore_cpus_beg);
+#else
+ cpus_refresh(NULL);
+#endif
+#ifdef THREADED_MEM
+ sem_post(&Semaphore_memory_beg);
+#else
+ memory_refresh(NULL);
+#endif
+ }
+
+ // whoa either first time or thread/task mode change, (re)prime the pump...
+ if (Pseudo_row == PROC_XTRA) {
+ usleep(LIB_USLEEP);
+#ifdef THREADED_TSK
+ sem_wait(&Semaphore_tasks_end);
+ sem_post(&Semaphore_tasks_beg);
+#else
+ tasks_refresh(NULL);
+#endif
+ putp(Cap_clr_scr);
+ } else
+ putp(Batch ? "\n\n" : Cap_home);
+
+ Tree_idx = Pseudo_row = Msg_row = scrlins = 0;
+ summary_show();
+ Max_lines = (SCREEN_ROWS - Msg_row) - 1;
+
+ // we're now on Msg_row so clear out any residual messages ...
+ putp(Cap_clr_eol);
+
+ if (!Rc.mode_altscr) {
+ // only 1 window to show so, piece o' cake
+ w->winlines = w->rc.maxtasks ? w->rc.maxtasks : Max_lines;
+ scrlins = window_show(w, Max_lines);
+ } else {
+ // maybe NO window is visible but assume, pieces o' cakes
+ for (i = 0 ; i < GROUPSMAX; i++) {
+ if (CHKw(&Winstk[i], Show_TASKON)) {
+ frame_hlp(i, Max_lines - scrlins);
+ scrlins += window_show(&Winstk[i], Max_lines - scrlins);
+ }
+ if (Max_lines <= scrlins) break;
+ }
+ }
+
+ /* clear to end-of-screen - critical if last window is 'idleps off'
+ (main loop must iterate such that we're always called before sleep) */
+ if (!Batch && scrlins < Max_lines) {
+ if (!BOT_PRESENT)
+ putp(Cap_nl_clreos);
+ else {
+ for (i = scrlins + Msg_row + 1; i < SCREEN_ROWS; i++) {
+ putp(tg2(0, i));
+ putp(Cap_clr_eol);
+ }
+ }
+ PSU_CLREOS(Pseudo_row);
+ }
+
+ if (CHKw(w, View_SCROLL) && VIZISw(Curwin)) show_scroll();
+ if (Bot_show_func) Bot_show_func();
+ fflush(stdout);
+
+ /* we'll deem any terminal not supporting tgoto as dumb and disable
+ the normal non-interactive output optimization... */
+ if (!Cap_can_goto) PSU_CLREOS(0);
+} // end: frame_make
+
+
+ /*
+ * duh... */
+int main (int argc, char *argv[]) {
+ before(*argv);
+ // +-------------+
+ wins_stage_1(); // top (sic) slice
+ configs_reads(); // > spread etc, <
+ parse_args(argc, argv); // > onions etc, <
+ signals_set(); // > lean stuff, <
+ whack_terminal(); // > more stuff. <
+ wins_stage_2(); // as bottom slice
+ // +-------------+
+
+ for (;;) {
+ struct timespec ts;
+
+ frame_make();
+
+ if (0 < Loops) --Loops;
+ if (!Loops) bye_bye(NULL);
+
+ ts.tv_sec = Rc.delay_time;
+ ts.tv_nsec = (Rc.delay_time - (int)Rc.delay_time) * 1000000000;
+
+ if (Batch)
+ pselect(0, NULL, NULL, NULL, &ts, NULL);
+ else {
+ if (ioa(&ts))
+ do_key(iokey(IOKEY_ONCE));
+ }
+ /* note: that above ioa routine exists to consolidate all logic
+ which is susceptible to signal interrupt and must then
+ produce a screen refresh. in this main loop frame_make
+ assumes responsibility for such refreshes. other logic
+ in contact with users must deal more obliquely with an
+ interrupt/refresh (hint: Frames_signal + return code)!
+
+ (everything is perfectly justified plus right margins)
+ (are completely filled, but of course it must be luck)
+ */
+ }
+ return 0;
+} // end: main
diff --git a/src/top/top.h b/src/top/top.h
new file mode 100644
index 0000000..5ba79b3
--- /dev/null
+++ b/src/top/top.h
@@ -0,0 +1,792 @@
+/* top.h - Header file: show Linux processes */
+/*
+ * Copyright © 2002-2023 Jim Warner <james.warner@comcast.net
+ *
+ * This file may be used subject to the terms and conditions of the
+ * GNU Library General Public License Version 2, or any later version
+ * at your option, as published by the Free Software Foundation.
+ * 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 Library General Public License for more details.
+ */
+/* For contributions to this program, the author wishes to thank:
+ * Craig Small, <csmall@dropbear.xyz>
+ * Albert D. Cahalan, <albert@users.sf.net>
+ * Sami Kerola, <kerolasa@iki.fi>
+ */
+#ifndef _Itop
+#define _Itop
+
+ /* Defines represented in configure.ac ----------------------------- */
+//#define BOOST_MEMORY /* enable extra precision in memory fields */
+//#define BOOST_PERCNT /* enable extra precision for two % fields */
+//#define ORIG_TOPDEFS /* with no rcfile retain original defaults */
+//#define SIGNALS_LESS /* favor reduced signal load over response */
+
+ /* Development/Debugging defines ----------------------------------- */
+//#define ATEOJ_RPTSTD /* report on some miscellany at end-of-job */
+//#define BOT_DEAD_ZAP /* zap Ctrl bottom window when target dies */
+//#define BOT_STRV_OFF /* don't emphasize strv w/ focus if spaces */
+//#define CASEUP_HEXES /* show all those hex values in upper case */
+//#define CASEUP_SUFIX /* show time/mem/cnts suffix in upper case */
+//#define CORE_TYPE_LO /* show the type of cpu core in lower case */
+//#define CORE_TYPE_NO /* don't distinguish the types of cpu core */
+//#define EQUCOLHDRYES /* yes, equalize the column header lengths */
+//#define FOCUS_HARD_Y /* 'F' will avoid topmost task distortions */
+//#define FOCUS_TREE_X /* 'F' resets forest view indentation to 0 */
+//#define FOCUS_VIZOFF /* 'F' doesn't provide the visual clue '|' */
+//#define GETOPTFIX_NO /* do not address getopt_long deficiencies */
+//#define INSP_JUSTNOT /* do not smooth unprintable right margins */
+//#define INSP_OFFDEMO /* disable demo screens, issue msg instead */
+//#define INSP_SAVEBUF /* preserve 'Insp_buf' contents via a file */
+//#define INSP_SLIDE_1 /* when scrolling left/right, don't move 8 */
+//#define MEMGRAPH_OLD /* don't use 'available' when graphing Mem */
+//#define NLS_INCLUDED /* provides for excluding from translation */
+//#define NLS_VALIDATE /* ensure the integrity of four nls tables */
+//#define OFF_SCROLLBK /* disable tty emulators scrollback buffer */
+//#define OFF_STDERROR /* disable our stderr buffering (redirect) */
+//#define OFF_STDIOLBF /* disable our own stdout 'IOFBF' override */
+//#define OFF_XTRAWIDE /* disable our extra wide multi-byte logic */
+//#define OVERTYPE_SEE /* display a visual hint for overtype mode */
+//#define PRETEND0NUMA /* pretend that there ain't any numa nodes */
+//#define PRETEND48CPU /* pretend we're smp with 48 ticsers (sic) */
+//#define PRETENDECORE /* pretend we've got some e-core type cpus */
+//#define PRETENDNOCAP /* pretend terminal missing essential caps */
+//#define RCFILE_NOERR /* rcfile errs silently default, vs. fatal */
+//#define RECALL_FIXED /* don't reorder saved strings if recalled */
+//#define RMAN_IGNORED /* don't consider auto right margin glitch */
+//#define SCALE_FORMER /* scale_tics() guy shouldn't mimic uptime */
+//#define SCALE_POSTFX /* scale_tics() try without a 'h,d' suffix */
+//#define SCROLLVAR_NO /* disable intra-column horizontal scrolls */
+//#define SCROLLV_BY_1 /* when scrolling left/right do not move 8 */
+//#define STRINGCASENO /* case insensitive compare/locate version */
+//#define TERMIOS_ONLY /* use native input only (just limp along) */
+//#define THREADED_CPU /* separate background thread for cpu updt */
+//#define THREADED_MEM /* separate background thread for mem updt */
+//#define THREADED_TSK /* separate background thread for tsk updt */
+//#define TOG4_MEM_1UP /* don't show two abreast memory statistic */
+//#define TOG4_MEM_FIX /* no variable mem graphs, thus misaligned */
+//#define TOG4_SEP_OFF /* don't show two abreast visual separator */
+//#define TOG4_SEP_STD /* normal mem sep if 2 abreast & no graphs */
+//#define TREE_NORESET /* sort keys should not force 'V' view off */
+//#define TREE_SCANALL /* rescan array w/ forest view, avoid sort */
+//#define TREE_VALTMRK /* use an indented '+' with collapsed pids */
+//#define TREE_VCPUOFF /* a collapsed parent excludes child's cpu */
+//#define TREE_VPROMPT /* pid collapse/expand prompt, vs. top row */
+//#define TREE_VWINALL /* pid collapse/expand impacts all windows */
+//#define USE_X_COLHDR /* emphasize header vs. whole col, for 'x' */
+//#define WIDEN_COLUMN /* base column widths on translated header */
+
+
+/*###### Notes, etc. ###################################################*/
+
+ /* For introducing inaugural cgroup support, thanks to:
+ Jan Gorig <jgorig@redhat.com> - April, 2011 */
+
+ /* For the motivation and path to nls support, thanks to:
+ Sami Kerola, <kerolasa@iki.fi> - December, 2011 */
+
+ /* There are still some short strings that may yet be candidates
+ for nls support inclusion. They're identified with:
+ // nls_maybe */
+
+ /* For the impetus and NUMA/Node prototype design, thanks to:
+ Lance Shelton <LShelton@fusionio.com> - April, 2013 */
+
+ /* For prompting & helping with top's utf-8 support, thanks to:
+ Göran Uddeborg <goeran@uddeborg.se> - September, 2017 */
+
+ // pretend as if #define _GNU_SOURCE
+char *strcasestr(const char *haystack, const char *needle);
+
+#ifdef STRINGCASENO
+#define STRSTR strcasestr
+#define STRCMP strcasecmp
+#else
+#define STRSTR strstr
+#define STRCMP strcmp
+#endif
+
+
+/*###### Some Miscellaneous constants ##################################*/
+
+ /* The default delay twix updates */
+#ifdef ORIG_TOPDEFS
+#define DEF_DELAY 3.0
+#else
+#define DEF_DELAY 1.5
+#endif
+
+ /* Length of time a message is displayed and the duration
+ of a 'priming' wait during library startup (in microseconds) */
+#define MSG_USLEEP 1250000
+#define LIB_USLEEP 100000
+
+ /* Specific process id monitoring support (command line only) */
+#define MONPIDMAX 20
+
+ /* Output override minimums (the -w switch and/or env vars) */
+#define W_MIN_COL 3
+#define W_MIN_ROW 3
+
+ /* Miscellaneous buffers with liberal values and some other defines
+ -- mostly just to pinpoint source code usage/dependencies */
+#define SCREENMAX 512
+ /* the above might seem pretty stingy, until you consider that with every
+ field displayed the column header would be approximately 250 bytes
+ -- so SCREENMAX provides for all fields plus a 250+ byte command line */
+#define TNYBUFSIZ 16
+#define CAPBUFSIZ 32
+#define CLRBUFSIZ 64
+#define PFLAGSSIZ 128
+#define SMLBUFSIZ 128
+#define MEDBUFSIZ 256
+#define LRGBUFSIZ 512
+#define OURPATHSZ 1024
+#define BIGBUFSIZ 2048
+#define BOTBUFSIZ 16384
+ // next is same as library's max buffer size
+#define MAXBUFSIZ (1024*64*2)
+ /* in addition to the actual display data, our row might have to accommodate
+ many termcap/color transitions - these definitions ensure we have room */
+#define ROWMINSIZ ( SCREENMAX + 8 * (CAPBUFSIZ + CLRBUFSIZ) )
+#define ROWMAXSIZ ( SCREENMAX + 16 * (CAPBUFSIZ + CLRBUFSIZ) )
+ // minimum size guarantee for dynamically acquired 'readfile' buffer
+#define READMINSZ 2048
+ // size of preallocated search string buffers, same as ioline()
+#define FNDBUFSIZ MEDBUFSIZ
+
+
+ // space between task fields/columns
+#define COLPADSTR " "
+#define COLPADSIZ ( sizeof(COLPADSTR) - 1 )
+ // continuation ch when field/column truncated
+#define COLPLUSCH '+'
+
+ // support for keyboard stuff (cursor motion keystrokes, mostly)
+#define kbd_ESC '\033'
+#define kbd_SPACE ' '
+#define kbd_ENTER '\n'
+#define kbd_UP 129
+#define kbd_DOWN 130
+#define kbd_LEFT 131
+#define kbd_RIGHT 132
+#define kbd_PGUP 133
+#define kbd_PGDN 134
+#define kbd_HOME 135
+#define kbd_END 136
+#define kbd_BKSP 137
+#define kbd_INS 138
+#define kbd_DEL 139
+#define kbd_BTAB 140
+#define kbd_CtrlE '\005'
+#define kbd_CtrlG '\007'
+#define kbd_CtrlI '\011'
+#define kbd_CtrlK '\013'
+#define kbd_CtrlL '\014'
+#define kbd_CtrlN '\016'
+#define kbd_CtrlO '\017'
+#define kbd_CtrlP '\020'
+#define kbd_CtrlR '\022'
+#define kbd_CtrlU '\025'
+
+ /* Special value in Pseudo_row to force an additional procs refresh
+ -- used at startup and for task/thread mode transitions */
+#define PROC_XTRA -1
+
+
+/* ##### Enum's and Typedef's ############################################ */
+
+ /* Flags for each possible field (and then some) --
+ these MUST be kept in sync with the Fieldstab[] array !! */
+enum pflag {
+ EU_PID = 0, EU_PPD,
+ EU_UED, EU_UEN, EU_URD, EU_URN, EU_USD, EU_USN,
+ EU_GID, EU_GRP, EU_PGD, EU_TTY, EU_TPG, EU_SID,
+ EU_PRI, EU_NCE, EU_THD,
+ EU_CPN, EU_CPU, EU_TME, EU_TM2,
+ EU_MEM, EU_VRT, EU_SWP, EU_RES, EU_COD, EU_DAT, EU_SHR,
+ EU_FL1, EU_FL2, EU_DRT,
+ EU_STA, EU_CMD, EU_WCH, EU_FLG, EU_CGR,
+ EU_SGD, EU_SGN, EU_TGD,
+ EU_OOA, EU_OOM,
+ EU_ENV,
+ EU_FV1, EU_FV2,
+ EU_USE,
+ EU_NS1, EU_NS2, EU_NS3, EU_NS4, EU_NS5, EU_NS6,
+ EU_LXC,
+ EU_RZA, EU_RZF, EU_RZL, EU_RZS,
+ EU_CGN,
+ EU_NMA,
+ EU_LID,
+ EU_EXE,
+ EU_RSS, EU_PSS, EU_PZA, EU_PZF, EU_PZS, EU_USS,
+ EU_IRB, EU_IRO, EU_IWB, EU_IWO,
+ EU_AGI, EU_AGN,
+ EU_TM3, EU_TM4, EU_CUU, EU_CUC,
+ EU_NS7, EU_NS8,
+#ifdef USE_X_COLHDR
+ // not really pflags, used with tbl indexing
+ EU_MAXPFLGS
+#else
+ // not really pflags, used with tbl indexing & col highlighting
+ EU_MAXPFLGS, EU_XON, EU_XOF
+#endif
+};
+
+ /* The scaling 'target' used with memory fields */
+enum scale_enum {
+ SK_Kb, SK_Mb, SK_Gb, SK_Tb, SK_Pb, SK_Eb
+};
+
+ /* Used to manipulate (and document) the Frames_signal states */
+enum resize_states {
+ BREAK_off = 0, BREAK_kbd, BREAK_sig, BREAK_autox, BREAK_screen
+};
+
+ /* This typedef just ensures consistent 'process flags' handling */
+typedef int FLG_t;
+
+ /* These typedefs attempt to ensure consistent 'ticks' handling */
+typedef unsigned long long TIC_t;
+typedef long long SIC_t;
+
+
+ /* /////////////////////////////////////////////////////////////// */
+ /* Special Section: multiple windows/field groups --------------- */
+ /* ( kind of a header within a header: constants, types & macros ) */
+
+#define CAPTABMAX 9 /* max entries in each win's caps table */
+#define GROUPSMAX 4 /* the max number of simultaneous windows */
+#define WINNAMSIZ 4 /* size of RCW_t winname buf (incl '\0') */
+#define GRPNAMSIZ WINNAMSIZ+2 /* window's name + number as in: '#:...' */
+
+ /* The Persistent 'Mode' flags!
+ These are preserved in the rc file, as a single integer and the
+ letter shown is the corresponding 'command' toggle */
+ // 'View_' flags affect the summary (minimum), taken from 'Curwin'
+#define View_CPUSUM 0x008000 // '1' - show combined cpu stats (vs. each)
+#define View_CPUNOD 0x400000 // '2' - show numa node cpu stats ('3' also)
+#define View_LOADAV 0x004000 // 'l' - display load avg and uptime summary
+#define View_STATES 0x002000 // 't' - display task/cpu(s) states summary
+#define View_MEMORY 0x001000 // 'm' - display memory summary
+#define View_NOBOLD 0x000008 // 'B' - disable 'bold' attribute globally
+#define View_SCROLL 0x080000 // 'C' - enable coordinates msg w/ scrolling
+ // 'Show_' & 'Qsrt_' flags are for task display in a visible window
+#define Show_COLORS 0x000800 // 'z' - show in color (vs. mono)
+#define Show_HIBOLD 0x000400 // 'b' - rows and/or cols bold (vs. reverse)
+#define Show_HICOLS 0x000200 // 'x' - show sort column emphasized
+#define Show_HIROWS 0x000100 // 'y' - show running tasks highlighted
+#define Show_CMDLIN 0x000080 // 'c' - show cmdline vs. name
+#define Show_CTIMES 0x000040 // 'S' - show times as cumulative
+#define Show_IDLEPS 0x000020 // 'i' - show idle processes (all tasks)
+#define Show_TASKON 0x000010 // '-' - tasks showable when Mode_altscr
+#define Show_FOREST 0x000002 // 'V' - show cmd/cmdlines with ascii art
+#define Qsrt_NORMAL 0x000004 // 'R' - reversed column sort (high to low)
+#define Show_JRSTRS 0x040000 // 'j' - right justify "string" data cols
+#define Show_JRNUMS 0x020000 // 'J' - right justify "numeric" data cols
+ // these flag(s) have no command as such - they're for internal use
+#define NOPRINT_xxx 0x010000 // build task rows only (not for display)
+#define EQUWINS_xxx 0x000001 // rebalance all wins & tasks (off i,n,u/U)
+
+ // Default flags if there's no rcfile to provide user customizations
+#ifdef ORIG_TOPDEFS
+#define DEF_WINFLGS ( View_LOADAV | View_STATES | View_CPUSUM | View_MEMORY \
+ | Show_HIBOLD | Show_HIROWS | Show_IDLEPS | Show_TASKON | Show_JRNUMS \
+ | Qsrt_NORMAL )
+#define DEF_GRAPHS2 0, 0
+#define DEF_SCALES2 SK_Mb, SK_Kb
+#define ALT_WINFLGS DEF_WINFLGS
+#define ALT_GRAPHS2 0, 0
+#else
+#define DEF_WINFLGS ( View_LOADAV | View_STATES | View_MEMORY | Show_CMDLIN \
+ | Show_COLORS | Show_FOREST | Show_HIROWS | Show_IDLEPS | Show_JRNUMS | Show_TASKON \
+ | Qsrt_NORMAL )
+#define DEF_GRAPHS2 1, 2
+#define DEF_SCALES2 SK_Gb, SK_Mb
+#define ALT_WINFLGS (DEF_WINFLGS | Show_HIBOLD) & ~Show_FOREST
+#define ALT_GRAPHS2 2, 0
+#endif
+
+ /* These are used to direct wins_reflag */
+enum reflag_enum {
+ Flags_TOG, Flags_SET, Flags_OFF
+};
+
+ /* These are used to direct win_warn */
+enum warn_enum {
+ Warn_ALT, Warn_VIZ
+};
+
+ /* This type helps support both a window AND the rcfile */
+typedef struct RCW_t { // the 'window' portion of an rcfile
+ int sortindx, // sort field (represented as procflag)
+ winflags, // 'view', 'show' and 'sort' mode flags
+ maxtasks, // user requested maximum, 0 equals all
+ graph_cpus, // 't' - View_STATES supplementary vals
+ graph_mems, // 'm' - View_MEMORY supplememtary vals
+ double_up, // '4' - show multiple cpus on one line
+ combine_cpus, // '!' - keep combining additional cpus
+ core_types, // '5' - show/filter P-core/E-core cpus
+ summclr, // a colors 'number' used for summ info
+ msgsclr, // " in msgs/pmts
+ headclr, // " in cols head
+ taskclr; // " in task rows
+ char winname [WINNAMSIZ]; // name for the window, user changeable
+ FLG_t fieldscur [PFLAGSSIZ]; // the fields for display & their order
+} RCW_t;
+
+ /* This represents the complete rcfile */
+typedef struct RCF_t {
+ char id; // rcfile version id
+ int mode_altscr; // 'A' - Alt display mode (multi task windows)
+ int mode_irixps; // 'I' - Irix vs. Solaris mode (SMP-only)
+ float delay_time; // 'd'/'s' - How long to sleep twixt updates
+ int win_index; // Curwin, as index
+ RCW_t win [GROUPSMAX]; // a 'WIN_t.rc' for each window
+ int fixed_widest; // 'X' - wider non-scalable col addition
+ int summ_mscale; // 'E' - scaling of summary memory values
+ int task_mscale; // 'e' - scaling of process memory values
+ int zero_suppress; // '0' - suppress scaled zeros toggle
+ int tics_scaled; // ^E - scale TIME and/or TIME+ columns
+} RCF_t;
+
+ /* This structure stores configurable information for each window.
+ By expending a little effort in its creation and user requested
+ maintenance, the only real additional per frame cost of having
+ windows is an extra sort -- but that's just on pointers! */
+typedef struct WIN_t {
+ FLG_t pflgsall [PFLAGSSIZ], // all 'active/on' fieldscur, as enum
+ procflgs [PFLAGSSIZ]; // fieldscur subset, as enum
+ RCW_t rc; // stuff that gets saved in the rcfile
+ int winnum, // a window's number (array pos + 1)
+ winlines, // current task window's rows (volatile)
+ maxpflgs, // number of displayed procflgs ("on" in fieldscur)
+ totpflgs, // total of displayable procflgs in pflgsall array
+ begpflg, // scrolled beginning pos into pflgsall array
+ endpflg, // scrolled ending pos into pflgsall array
+ begtask, // scrolled beginning pos into total tasks
+ begnext, // new scrolled delta for next frame's begtask
+#ifndef SCROLLVAR_NO
+ varcolbeg, // scrolled position within variable width col
+#endif
+ varcolsz, // max length of variable width column(s)
+ usrseluid, // validated uid for 'u/U' user selection
+ usrseltyp, // the basis for matching above uid
+ usrselflg, // flag denoting include/exclude matches
+ hdrcaplen; // column header xtra caps len, if any
+ char capclr_sum [CLRBUFSIZ], // terminfo strings built from
+ capclr_msg [CLRBUFSIZ], // RCW_t colors (& rebuilt too),
+ capclr_pmt [CLRBUFSIZ], // but NO recurring costs !
+ capclr_hdr [CLRBUFSIZ], // note: sum, msg and pmt strs
+ capclr_rowhigh [SMLBUFSIZ], // are only used when this
+ capclr_rownorm [CLRBUFSIZ], // window is the 'Curwin'!
+ cap_bold [CAPBUFSIZ], // support for View_NOBOLD toggle
+ grpname [GRPNAMSIZ], // window number:name, printable
+#ifdef USE_X_COLHDR
+ columnhdr [ROWMINSIZ], // column headings for procflgs
+#else
+ columnhdr [SCREENMAX], // column headings for procflgs
+#endif
+ *captab [CAPTABMAX]; // captab needed by show_special()
+ struct osel_s *osel_1st; // other selection criteria anchor
+ int osel_tot; // total of other selection criteria
+ char *findstr; // window's current/active search string
+ int findlen; // above's strlen, without call overhead
+ int focus_pid; // target pid when 'F' toggle is active
+ int focus_beg; // ppt index where 'F' toggle has begun
+ int focus_end; // ppt index where 'F' toggle has ended
+#ifdef FOCUS_TREE_X
+ int focus_lvl; // the indentation level of parent task
+#endif
+ struct pids_stack **ppt; // this window's stacks ptr array
+ struct WIN_t *next, // next window in window stack
+ *prev; // prior window in window stack
+} WIN_t;
+
+ // Used to test/manipulate the window flags
+#define CHKw(q,f) (int)((q)->rc.winflags & (f))
+#define TOGw(q,f) (q)->rc.winflags ^= (f)
+#define SETw(q,f) (q)->rc.winflags |= (f)
+#define OFFw(q,f) (q)->rc.winflags &= ~(f)
+#define ALTCHKw (Rc.mode_altscr ? 1 : win_warn(Warn_ALT))
+#define VIZISw(q) (!Rc.mode_altscr || CHKw(q,Show_TASKON))
+#define VIZCHKw(q) (VIZISw(q)) ? 1 : win_warn(Warn_VIZ)
+#define VIZTOGw(q,f) (VIZISw(q)) ? TOGw(q,(f)) : win_warn(Warn_VIZ)
+
+ // Used to test/manipulte fieldscur values
+#define FLDon 0x01
+#define FLDoff 0x00
+#define FLDget(q,i) ( (((q)->rc.fieldscur[i]) >> 1) - FLD_OFFSET )
+#define FLDtog(q,i) ( (q)->rc.fieldscur[i] ^= FLDon )
+#define FLDviz(q,i) ( (q)->rc.fieldscur[i] & FLDon )
+#define ENUviz(w,E) ( NULL != msch((w)->procflgs, E, w->maxpflgs) )
+#define ENUpos(w,E) ( (int)(msch((w)->pflgsall, E, (w)->totpflgs) - (w)->pflgsall) )
+#define ENUcvt(E,x) ( (int)((E + FLD_OFFSET) << 1) | x )
+
+ // Support for variable width columns (and potentially scrolling too)
+#define VARcol(E) (-1 == Fieldstab[E].width)
+#ifndef SCROLLVAR_NO
+#ifdef USE_X_COLHDR
+#define VARright(w) (1 == w->maxpflgs && VARcol(w->procflgs[0]))
+#else
+#define VARright(w) ((1 == w->maxpflgs && VARcol(w->procflgs[0])) || \
+ (3 == w->maxpflgs && EU_XON == w->procflgs[0] && VARcol(w->procflgs[1])))
+#endif
+#define VARleft(w) (w->varcolbeg && VARright(w))
+#ifdef SCROLLV_BY_1
+#define SCROLLAMT 1
+#else
+#define SCROLLAMT 8
+#endif
+#endif
+
+ // Support for a proper (visible) row #1 whenever Curwin changes
+ // ( or a key which might affect vertical scrolling was struck )
+#define mkVIZyes ( Curwin->begnext != 0 )
+#define mkVIZrow1 { Curwin->begnext = +1; Curwin->begtask -= 1; }
+#define mkVIZrowX(n) { Curwin->begnext = (n); }
+#define mkVIZoff(w) { w->begnext = 0; }
+
+ /* Special Section: end ------------------------------------------ */
+ /* /////////////////////////////////////////////////////////////// */
+
+
+/*###### Some Miscellaneous Macro definitions ##########################*/
+
+ /* Yield table size as 'int' */
+#define MAXTBL(t) (int)(sizeof(t) / sizeof(t[0]))
+
+ /* A null-terminating strncpy, assuming strlcpy is not available.
+ ( and assuming callers don't need the string length returned ) */
+#define STRLCPY(dst,src) { memccpy(dst, src, '\0', sizeof(dst)); dst[sizeof(dst) - 1] = '\0'; }
+
+ /* Used to clear all or part of our Pseudo_screen */
+#define PSU_CLREOS(y) memset(&Pseudo_screen[ROWMAXSIZ*y], '\0', Pseudo_size-(ROWMAXSIZ*y))
+
+/*
+ * The following three macros are used to 'inline' those portions of the
+ * display process involved in formatting, while protecting against any
+ * potential embedded 'millesecond delay' escape sequences.
+ */
+ /** PUTT - Put to Tty (used in many places)
+ . for temporary, possibly interactive, 'replacement' output
+ . may contain ANY valid terminfo escape sequences
+ . need NOT represent an entire screen row */
+#define PUTT(fmt,arg...) do { \
+ char _str[ROWMAXSIZ]; \
+ snprintf(_str, sizeof(_str), fmt, ## arg); \
+ putp(_str); \
+ } while (0)
+
+ /** PUFF - Put for Frame (used in only 3 places)
+ . for more permanent frame-oriented 'update' output
+ . may NOT contain cursor motion terminfo escapes
+ . assumed to represent a complete screen ROW
+ . subject to optimization, thus MAY be discarded */
+#define PUFF(fmt,arg...) do { \
+ char _str[ROWMAXSIZ]; \
+ const int _len = snprintf(_str, sizeof(_str), fmt, ## arg); \
+ if (Batch) { \
+ char *_eol = _str + (_len < 0 ? 0 : (size_t)_len >= sizeof(_str) ? sizeof(_str)-1 : (size_t)_len); \
+ while (_eol > _str && _eol[-1] == ' ') _eol--; \
+ *_eol = '\0'; putp(_str); } \
+ else if (Pseudo_row >= 0 && Pseudo_row < Screen_rows) { \
+ char *_ptr = &Pseudo_screen[Pseudo_row++ * ROWMAXSIZ]; \
+ if (!strcmp(_ptr, _str)) putp("\n"); \
+ else { \
+ strcpy(_ptr, _str); \
+ putp(_ptr); } } \
+ } while (0)
+
+ /** POOF - Pulled Out of Frame (used in only 1 place)
+ . for output that is/was sent directly to the terminal
+ but would otherwise have been counted as a Pseudo_row */
+#define POOF(str,cap) do { \
+ putp(str); putp(cap); \
+ Pseudo_screen[Pseudo_row * ROWMAXSIZ] = '\0'; \
+ if (Pseudo_row + 1 < Screen_rows) ++Pseudo_row; \
+ } while (0)
+
+ /* Orderly end, with any sort of message - see fmtmk */
+#define debug_END(s) { \
+ void error_exit (const char *); \
+ fputs(Cap_clr_scr, stdout); \
+ error_exit(s); \
+ }
+
+ /* A poor man's breakpoint, if he's too lazy to learn gdb */
+#define its_YOUR_fault { *((char *)0) = '!'; }
+
+
+/*###### Some Display Support *Data* ###################################*/
+/* ( see module top_nls.c for the nls translatable data ) */
+
+ /* Configuration files support */
+#define SYS_RCRESTRICT "/etc/toprc"
+#define SYS_RCDEFAULTS "/etc/topdefaultrc"
+#define RCF_EYECATCHER "Config File (Linux processes with windows)\n"
+#define RCF_PLUS_H "\\]^_`abcdefghij"
+#define RCF_PLUS_J "klmnopqrstuvwxyz"
+ // this next guy must never, ever change
+ // ( transitioned from 'char' to 'int' )
+#define RCF_XFORMED_ID 'k'
+ // this next guy is incremented when columns change
+ // ( to prevent older top versions from accessing )
+#define RCF_VERSION_ID 'k'
+
+#define FLD_OFFSET ( (int)'%' )
+#define FLD_ROWMAX 20
+
+ /* The default fields displayed and their order,
+ if nothing is specified by the loser, oops user. */
+#ifdef ORIG_TOPDEFS
+#define DEF_FORMER "¥¨³´»½ÀÄ·º¹Å&')*+,-./012568<>?ABCFGHIJKLMNOPQRSTUVWXYZ[" RCF_PLUS_H RCF_PLUS_J
+#else
+#define DEF_FORMER "¥&K¨³´»½@·º¹56ÄFÅ')*+,-./0128<>?ABCGHIJLMNOPQRSTUVWXYZ[" RCF_PLUS_H RCF_PLUS_J
+#endif
+ /* Pre-configured windows/field groups */
+#define JOB_FORMER "¥¦¹·º(³´Ä»½@<§Å)*+,-./012568>?ABCFGHIJKLMNOPQRSTUVWXYZ[" RCF_PLUS_H RCF_PLUS_J
+#define MEM_FORMER "¥º»<½¾¿ÀÁMBNÃD34·Å&'()*+,-./0125689FGHIJKLOPQRSTUVWXYZ[" RCF_PLUS_H RCF_PLUS_J
+#define USR_FORMER "¥¦§¨ª°¹·ºÄÅ)+,-./1234568;<=>?@ABCFGHIJKLMNOPQRSTUVWXYZ[" RCF_PLUS_H RCF_PLUS_J
+ // old top fields ( 'a'-'z' ) in positions 0-25
+ // other suse old top fields ( '{|' ) in positions 26-27
+#define CVT_FORMER "%&*'(-0346789:;<=>?@ACDEFGML)+,./125BHIJKNOPQRSTUVWXYZ[" RCF_PLUS_H RCF_PLUS_J
+#define CVT_FLDMAX 28
+
+#ifdef ORIG_TOPDEFS
+#define DEF_FIELDS { \
+ 75, 81, 103, 105, 119, 123, 129, 137, 111, 117, 115, 139, 76, 78, 82, 84, 86, 88, 90, 92, \
+ 94, 96, 98, 100, 106, 108, 112, 120, 124, 126, 130, 132, 134, 140, 142, 144, 146, 148, 150, 152, \
+ 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, \
+ 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, \
+ 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272 }
+#else
+#define DEF_FIELDS { \
+ 75, 76, 150, 81, 103, 105, 119, 123, 128, 111, 117, 115, 106, 108, 137, 140, 139, 78, 82, 84, \
+ 86, 88, 90, 92, 94, 96, 98, 100, 112, 120, 124, 126, 130, 132, 134, 142, 144, 146, 148, 152, \
+ 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, \
+ 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, \
+ 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272 }
+#endif
+#define JOB_FIELDS { \
+ 75, 77, 115, 111, 117, 80, 103, 105, 137, 119, 123, 128, 120, 79, 139, 82, 84, 86, 88, 90, \
+ 92, 94, 96, 98, 100, 106, 108, 112, 124, 126, 130, 132, 134, 140, 142, 144, 146, 148, 150, 152, \
+ 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, \
+ 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, \
+ 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272 }
+#define MEM_FIELDS { \
+ 75, 117, 119, 120, 123, 125, 127, 129, 131, 154, 132, 156, 135, 136, 102, 104, 111, 139, 76, 78, \
+ 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 106, 108, 112, 114, 140, 142, 144, 146, 148, \
+ 150, 152, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, \
+ 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, \
+ 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272 }
+#define USR_FIELDS { \
+ 75, 77, 79, 81, 85, 97, 115, 111, 117, 137, 139, 82, 86, 88, 90, 92, 94, 98, 100, 102, \
+ 104, 106, 108, 112, 118, 120, 122, 124, 126, 128, 130, 132, 134, 140, 142, 144, 146, 148, 150, 152, \
+ 154, 156, 158, 160, 162, 164, 166, 168, 170, 172, 174, 176, 178, 180, 182, 184, 186, 188, 190, 192, \
+ 194, 196, 198, 200, 202, 204, 206, 208, 210, 212, 214, 216, 218, 220, 222, 224, 226, 228, 230, 232, \
+ 234, 236, 238, 240, 242, 244, 246, 248, 250, 252, 254, 256, 258, 260, 262, 264, 266, 268, 270, 272 }
+
+ /* The default values for the local config file */
+#define DEF_RCFILE { \
+ RCF_VERSION_ID, 0, 1, DEF_DELAY, 0, { \
+ { EU_CPU, DEF_WINFLGS, 0, DEF_GRAPHS2, 1, 0, 0, \
+ COLOR_RED, COLOR_RED, COLOR_YELLOW, COLOR_RED, \
+ "Def", DEF_FIELDS }, \
+ { EU_PID, ALT_WINFLGS, 0, ALT_GRAPHS2, 0, 0, 0, \
+ COLOR_CYAN, COLOR_CYAN, COLOR_WHITE, COLOR_CYAN, \
+ "Job", JOB_FIELDS }, \
+ { EU_MEM, ALT_WINFLGS, 0, ALT_GRAPHS2, 0, 0, 0, \
+ COLOR_MAGENTA, COLOR_MAGENTA, COLOR_BLUE, COLOR_MAGENTA, \
+ "Mem", MEM_FIELDS }, \
+ { EU_UEN, ALT_WINFLGS, 0, ALT_GRAPHS2, 0, 0, 0, \
+ COLOR_YELLOW, COLOR_YELLOW, COLOR_GREEN, COLOR_YELLOW, \
+ "Usr", USR_FIELDS } \
+ }, 0, DEF_SCALES2, 0, 0 }
+
+ /* Summary Lines specially formatted string(s) --
+ see 'show_special' for syntax details + other cautions. */
+#define LOADAV_line "%s -%s\n"
+#define LOADAV_line_alt "%s~6 -%s\n"
+
+/*###### For Piece of mind #############################################*/
+
+ /* just sanity check(s)... */
+#if defined(RECALL_FIXED) && defined(TERMIOS_ONLY)
+# error 'RECALL_FIXED' conflicts with 'TERMIOS_ONLY'
+#endif
+#if (LRGBUFSIZ < SCREENMAX)
+# error 'LRGBUFSIZ' must NOT be less than 'SCREENMAX'
+#endif
+#if defined(TERMIOS_ONLY)
+# warning 'TERMIOS_ONLY' disables input recall and makes man doc incorrect
+#endif
+#if defined(MEMGRAPH_OLD)
+# warning 'MEMGRAPH_OLD' will make the man document Section 2c. misleading
+#endif
+#if defined(SCALE_FORMER) && defined(SCALE_POSTFX)
+# warning 'SCALE_POSTFX' is ignored when 'SCALE_FORMER' is active
+#endif
+#if defined(USE_X_COLHDR)
+# warning 'USE_X_COLHDR' makes parts of man page misleading (4e, 5d & 5e)
+#endif
+#if defined(TOG4_SEP_STD) && defined(TOG4_SEP_OFF)
+# warning 'TOG4_SEP_STD' has no effect when 'TOG4_SEP_OFF' is active
+#endif
+
+/*###### Some Prototypes (ha!) #########################################*/
+
+ /* These 'prototypes' are here exclusively for documentation purposes. */
+ /* ( see the find_string routine for the one true required prototype ) */
+/*------ Tiny useful routine(s) ----------------------------------------*/
+//atic const char *fmtmk (const char *fmts, ...);
+//atic inline int mlen (const int *mem);
+//atic inline int *msch (const int *mem, int obj, int max);
+//atic inline char *scat (char *dst, const char *src);
+//atic const char *tg2 (int x, int y);
+/*------ Exit/Interrupt routines ---------------------------------------*/
+//atic void at_eoj (void);
+//atic void bye_bye (const char *str);
+//atic void error_exit (const char *str);
+//atic void sig_abexit (int sig);
+//atic void sig_endpgm (int dont_care_sig);
+//atic void sig_paused (int dont_care_sig);
+//atic void sig_resize (int dont_care_sig);
+/*------ Special UTF-8 Multi-Byte support ------------------------------*/
+/*atic char UTF8_tab[] = { ... } */
+//atic inline int utf8_cols (const unsigned char *p, int n);
+//atic int utf8_delta (const char *str);
+//atic int utf8_embody (const char *str, int width);
+//atic const char *utf8_justify (const char *str, int width, int justr);
+//atic int utf8_proper_col (const char *str, int col, int tophysical);
+/*------ Misc Color/Display support ------------------------------------*/
+//atic void capsmk (WIN_t *q);
+//atic void show_msg (const char *str);
+//atic int show_pmt (const char *str);
+//atic void show_scroll (void);
+//atic void show_special (int interact, const char *glob);
+/*------ Low Level Memory/Keyboard/File I/O support --------------------*/
+//atic void *alloc_c (size_t num);
+//atic void *alloc_r (void *ptr, size_t num);
+//atic char *alloc_s (const char *str);
+//atic inline int ioa (struct timespec *ts);
+//atic int ioch (int ech, char *buf, unsigned cnt);
+//atic int iokey (int action);
+//atic char *ioline (const char *prompt);
+//atic int mkfloat (const char *str, float *num, int whole);
+//atic int readfile (FILE *fp, char **baddr, size_t *bsize, size_t *bread);
+/*------ Small Utility routines ----------------------------------------*/
+//atic float get_float (const char *prompt);
+//atic int get_int (const char *prompt);
+//atic inline const char *hex_make (long num, int noz);
+//atic const char *user_certify (WIN_t *q, const char *str, char typ);
+/*------ Basic Formatting support --------------------------------------*/
+//atic inline const char *justify_pad (const char *str, int width, int justr);
+//atic inline const char *make_chr (const char ch, int width, int justr);
+//atic inline const char *make_num (long num, int width, int justr, int col, int noz);
+//atic inline const char *make_str (const char *str, int width, int justr, int col);
+//atic inline const char *make_str_utf8 (const char *str, int width, int justr, int col);
+//atic const char *scale_mem (int target, float num, int width, int justr);
+//atic const char *scale_num (float num, int width, int justr);
+//atic const char *scale_pcnt (float num, int width, int justr, int xtra);
+//atic const char *scale_tics (TIC_t tics, int width, int justr, int target);
+/*------ Fields Management support -------------------------------------*/
+/*atic struct Fieldstab[] = { ... } */
+//atic void adj_geometry (void);
+//atic void build_headers (void);
+//atic void calibrate_fields (void);
+//atic void display_fields (int focus, int extend);
+//atic void fields_utility (void);
+//atic inline void widths_resize (void);
+//atic void zap_fieldstab (void);
+/*------ Library Interface (as separate threads) -----------------------*/
+//atic void *cpus_refresh (void *unused);
+//atic void *memory_refresh (void *unused);
+//atic void *tasks_refresh (void *unused);
+/*------ Inspect Other Output ------------------------------------------*/
+//atic void insp_cnt_nl (void);
+#ifndef INSP_OFFDEMO
+//atic void insp_do_demo (char *fmts, int pid);
+#endif
+//atic void insp_do_file (char *fmts, int pid);
+//atic void insp_do_pipe (char *fmts, int pid);
+//atic inline int insp_find_ofs (int col, int row);
+//atic void insp_find_str (int ch, int *col, int *row);
+//atic void insp_mkrow_raw (int col, int row);
+//atic void insp_mkrow_utf8 (int col, int row);
+//atic void insp_show_pgs (int col, int row, int max);
+//atic int insp_view_choice (struct pids_stack *p);
+//atic void inspection_utility (int pid);
+/*------ Other Filtering ------------------------------------------------*/
+//atic const char *osel_add (WIN_t *q, int ch, char *glob, int push);
+//atic void osel_clear (WIN_t *q);
+//atic inline int osel_matched (const WIN_t *q, FLG_t enu, const char *str);
+/*------ Startup routines ----------------------------------------------*/
+//atic void before (char *me);
+//atic int cfg_xform (WIN_t *q, char *flds, const char *defs);
+//atic int config_insp (FILE *fp, char *buf, size_t size);
+//atic int config_osel (FILE *fp, char *buf, size_t size);
+//atic const char *configs_file (FILE *fp, const char *name, float *delay);
+//atic int configs_path (const char *const fmts, ...);
+//atic void configs_reads (void);
+//atic void parse_args (int argc, char **argv);
+//atic void signals_set (void);
+//atic void whack_terminal (void);
+/*------ Windows/Field Groups support ----------------------------------*/
+//atic void win_names (WIN_t *q, const char *name);
+//atic void win_reset (WIN_t *q);
+//atic WIN_t *win_select (int ch);
+//atic int win_warn (int what);
+//atic void wins_clrhlp (WIN_t *q, int save);
+//atic void wins_colors (void);
+//atic void wins_reflag (int what, int flg);
+//atic void wins_stage_1 (void);
+//atic void wins_stage_2 (void);
+//atic inline int wins_usrselect (const WIN_t *q, int idx);
+/*------ Forest View support -------------------------------------------*/
+//atic void forest_adds (const int self, int level);
+//atic void forest_begin (WIN_t *q);
+//atic void forest_config (WIN_t *q);
+//atic inline const char *forest_display (const WIN_t *q, int idx);
+/*------ Special Separate Bottom Window support ------------------------*/
+//atic void bot_do (const char *str, int focus);
+//atic int bot_focus_str (const char *hdr, const char *str);
+//atic int bot_focus_strv (const char *hdr, const char **strv);
+//atic void *bot_item_hlp (struct pids_stack *p);
+//atic void bot_item_show (void);
+//atic void bot_item_toggle (int what, const char *head, char sep);
+/*------ Interactive Input Tertiary support ----------------------------*/
+//atic inline int find_ofs (const WIN_t *q, const char *buf);
+//atic void find_string (int ch);
+//atic void help_view (void);
+//atic void other_filters (int ch);
+//atic void write_rcfile (void);
+/*------ Interactive Input Secondary support (do_key helpers) ----------*/
+//atic void keys_global (int ch);
+//atic void keys_summary (int ch);
+//atic void keys_task (int ch);
+//atic void keys_window (int ch);
+//atic void keys_xtra (int ch);
+/*------ Tertiary summary display support (summary_show helpers) -------*/
+//atic struct rx_st *sum_rx (struct graph_parms *these);
+//atic inline int sum_see (const char *str, int nobuf);
+//atic int sum_tics (struct stat_stack *this, const char *pfx, int nobuf);
+//atic int sum_unify (struct stat_stack *this, int nobuf);
+/*------ Secondary summary display support (summary_show helpers) ------*/
+//atic void do_cpus (void);
+//atic void do_memory (void);
+/*------ Main Screen routines ------------------------------------------*/
+//atic void do_key (int ch);
+//atic void summary_show (void);
+//atic const char *task_show (const WIN_t *q, int idx);
+//atic void window_hlp (void);
+//atic int window_show (WIN_t *q, int wmax);
+/*------ Entry point plus two ------------------------------------------*/
+//atic void frame_hlp (int wix, int max);
+//atic void frame_make (void);
+// int main (int argc, char *argv[]);
+
+#endif /* _Itop */
+
diff --git a/src/top/top_nls.c b/src/top/top_nls.c
new file mode 100644
index 0000000..d7ab8dc
--- /dev/null
+++ b/src/top/top_nls.c
@@ -0,0 +1,867 @@
+/* top_nls.c - provide the basis for future nls translations */
+/*
+ * Copyright © 2011-2023 Jim Warner <james.warner@comcast.net
+ *
+ * This file may be used subject to the terms and conditions of the
+ * GNU Library General Public License Version 2, or any later version
+ * at your option, as published by the Free Software Foundation.
+ * 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 Library General Public License for more details.
+ */
+/* For contributions to this program, the author wishes to thank:
+ * Craig Small, <csmall@dropbear.xyz>
+ * Sami Kerola, <kerolasa@iki.fi>
+ */
+
+#include <locale.h>
+#include <stdio.h>
+#include <string.h>
+
+#include "nls.h"
+
+#include "top.h"
+#include "top_nls.h"
+
+#ifdef NLS_VALIDATE
+#include <stdlib.h>
+#endif
+
+
+ /*
+ * The provision excluding some strings is intended to be
+ * used very sparingly. It exists in case we collide with
+ * some translation project person in a position to delay
+ * a future release over his or her personal preferences.
+ *
+ * If it's ever enabled, it will produce a fatal compiler
+ * error as our only option since those gettext tools are
+ * far too primitive to be influenced with a conditional.
+ * They always ignore a '_X()' macro no matter its state. */
+
+#ifndef NLS_INCLUDED
+# define _X(str) (str)
+#else
+# define _X(str)
+# error instead of this #define, restore the true gettext macro(s)
+#endif
+
+ // Programmer Note(s):
+ // Preparation ---------------------------------------------
+ // Unless you have *something* following the gettext macro,
+ // xgettext will refuse to see any TRANSLATORS comments.
+ // Thus empty strings have been added for potential future
+ // comment additions.
+ //
+ // Also, by omitting the argument for the --add-comments
+ // XGETTEXT_OPTION in po/Makevars, *any* preceding c style
+ // comment will be propagated to the .pot file, providing
+ // that the gettext macro isn't empty as discussed above.
+ // However, this is far too aggressive so we have chosen
+ // the word 'Translation' to denote xgettext comments.
+ //
+ // /* Need Not Say 'TRANSLATORS': ...
+ // snprintf(buf, sizeof(buf), "%s", _( // unseen comment
+ //
+ // /* Translation Hint: ...
+ // snprintf(buf, sizeof(buf), "%s", _("" // now it's seen!
+ //
+ // Translation, from po/ directory after make --------------
+ // ( this is the procedure used before any translations were )
+ // ( available in the po/ directory, which contained only the )
+ // ( procps-ng.pot, this domain's template file. )
+ //
+ // ( below: ll_CC = language/country as in 'zh_CN' or 'en_AU' )
+ //
+ // msginit --locale=ll_CC --no-wrap
+ // . creates a ll_CC.po file from the template procps-ng.pot
+ // . may also duplicate msgid as msgstr if languages similar
+ // msgen --no-wrap ll_CC.po --output-file=ll_CC.po
+ // . duplicates every msgid literal as msgstr value
+ // . this is the file that's edited
+ // . replace "Content-Type: ... charset=ASCII\n"
+ // with "... charset=UTF-8\n"
+ // . translate msgstr values, leaving msgid unchanged
+ // msgfmt ll_CC.po --strict --output-file=procps-ng.mo
+ // . after which ensure, chmod 644
+ // . then copy
+ // to /usr/share/locale-langpack/ll_CC/LC_MESSAGES/
+ // or /usr/share/locale/ll_CC/LC_MESSAGES/
+ // Testing -------------------------------------------------
+ // export LC_ALL= && export LANGUAGE=ll_CC
+ // run some capable program like top
+ //
+
+ /*
+ * These are our string tables with the following contents:
+ * Head : column headings with varying size limits
+ * Desc : fields descriptions not to exceed 20 screen positions
+ * Norm : regular text possibly also containing c-format specifiers
+ * Uniq : show_special specially formatted strings
+ *
+ * The latter table presents the greatest translation challenge !
+ *
+ * We go to the trouble of creating the nls string tables to achieve
+ * these objectives:
+ * + the overhead of repeated runtime calls to gettext()
+ * will be avoided
+ * + the order of the strings in the template (.pot) file
+ * can be completely controlled
+ * + none of the important translator only comments will
+ * clutter and obscure the main program
+ */
+const char *Head_nlstab[EU_MAXPFLGS];
+const char *Desc_nlstab[EU_MAXPFLGS];
+const char *Norm_nlstab[norm_MAX];
+const char *Uniq_nlstab[uniq_MAX];
+
+
+ /*
+ * This routine builds the nls table containing plain text only
+ * used as the field descriptions. Each translated line MUST be
+ * kept to a maximum of 20 characters or less! */
+static void build_two_nlstabs (void) {
+
+/* Translation Notes ------------------------------------------------
+ . It is strongly recommend that the --no-wrap command line option
+ . be used with all supporting translation tools, when available.
+ .
+ . The following line pairs contain only plain text and consist of:
+ . 1) a field name/column header - mostly upper case
+ . 2) the related description - both upper and lower case
+ .
+ . To avoid truncation on the main top display, each column header
+ . is noted with its maximum size, while a few are 'variable' width.
+ . Names for the latter should probably be 10 or fewer characters.
+ .
+ . Those fields shown with a '+' are also eligible for user resizing
+ . using the 'X' command. That means the default width might produce
+ . truncation but need not if widened (see the man page 'X' command).
+ .
+ . All headers are subject to a maximum of 8 on the Fields Management
+ . screen where truncation is entirely acceptable.
+ .
+ . The associated descriptions are always limited to 20 characters,
+ . and are used only on the Fields Management screen.
+ .
+ . In all cases, fewer characters are just fine.
+ . */
+
+/* Translation Hint: maximum 'PID' = 5 */
+ Head_nlstab[EU_PID] = _("PID");
+ Desc_nlstab[EU_PID] = _("Process Id");
+/* Translation Hint: maximum 'PPID' = 5 */
+ Head_nlstab[EU_PPD] = _("PPID");
+ Desc_nlstab[EU_PPD] = _("Parent Process pid");
+/* Translation Hint: maximum 'UID' = 5 + */
+ Head_nlstab[EU_UED] = _("UID");
+ Desc_nlstab[EU_UED] = _("Effective User Id");
+/* Translation Hint: maximum 'USER' = 8 + */
+ Head_nlstab[EU_UEN] = _("USER");
+ Desc_nlstab[EU_UEN] = _("Effective User Name");
+/* Translation Hint: maximum 'RUID' = 5 + */
+ Head_nlstab[EU_URD] = _("RUID");
+ Desc_nlstab[EU_URD] = _("Real User Id");
+/* Translation Hint: maximum 'RUSER' = 8 + */
+ Head_nlstab[EU_URN] = _("RUSER");
+ Desc_nlstab[EU_URN] = _("Real User Name");
+/* Translation Hint: maximum 'SUID' = 5 + */
+ Head_nlstab[EU_USD] = _("SUID");
+ Desc_nlstab[EU_USD] = _("Saved User Id");
+/* Translation Hint: maximum 'SUSER' = 8 + */
+ Head_nlstab[EU_USN] = _("SUSER");
+ Desc_nlstab[EU_USN] = _("Saved User Name");
+/* Translation Hint: maximum 'GID' = 5 + */
+ Head_nlstab[EU_GID] = _("GID");
+ Desc_nlstab[EU_GID] = _("Group Id");
+/* Translation Hint: maximum 'GROUP' = 8 + */
+ Head_nlstab[EU_GRP] = _("GROUP");
+ Desc_nlstab[EU_GRP] = _("Group Name");
+/* Translation Hint: maximum 'PGRP' = 5 */
+ Head_nlstab[EU_PGD] = _("PGRP");
+ Desc_nlstab[EU_PGD] = _("Process Group Id");
+/* Translation Hint: maximum 'TTY' = 8 + */
+ Head_nlstab[EU_TTY] = _("TTY");
+ Desc_nlstab[EU_TTY] = _("Controlling Tty");
+/* Translation Hint: maximum 'TPGID' = 5 */
+ Head_nlstab[EU_TPG] = _("TPGID");
+ Desc_nlstab[EU_TPG] = _("Tty Process Grp Id");
+/* Translation Hint: maximum 'SID' = 5 */
+ Head_nlstab[EU_SID] = _("SID");
+ Desc_nlstab[EU_SID] = _("Session Id");
+/* Translation Hint: maximum 'PR' = 3 */
+ Head_nlstab[EU_PRI] = _("PR");
+ Desc_nlstab[EU_PRI] = _("Priority");
+/* Translation Hint: maximum 'NI' = 3 */
+ Head_nlstab[EU_NCE] = _("NI");
+ Desc_nlstab[EU_NCE] = _("Nice Value");
+/* Translation Hint: maximum 'nTH' = 3 */
+ Head_nlstab[EU_THD] = _("nTH");
+ Desc_nlstab[EU_THD] = _("Number of Threads");
+/* Translation Hint: maximum 'P' = 1 */
+ Head_nlstab[EU_CPN] = _("P");
+ Desc_nlstab[EU_CPN] = _("Last Used Cpu (SMP)");
+/* Translation Hint: maximum '%CPU' = 4 */
+ Head_nlstab[EU_CPU] = _("%CPU");
+ Desc_nlstab[EU_CPU] = _("CPU Usage");
+/* Translation Hint: maximum '' = 6 */
+ Head_nlstab[EU_TME] = _("TIME");
+ Desc_nlstab[EU_TME] = _("CPU Time");
+/* Translation Hint: maximum 'TIME+' = 9 */
+ Head_nlstab[EU_TM2] = _("TIME+");
+ Desc_nlstab[EU_TM2] = _("CPU Time, hundredths");
+/* Translation Hint: maximum '%MEM' = 4 */
+ Head_nlstab[EU_MEM] = _("%MEM");
+ Desc_nlstab[EU_MEM] = _("Memory Usage (RES)");
+/* Translation Hint: maximum 'VIRT' = 7 */
+ Head_nlstab[EU_VRT] = _("VIRT");
+ Desc_nlstab[EU_VRT] = _("Virtual Image (KiB)");
+/* Translation Hint: maximum 'SWAP' = 6 */
+ Head_nlstab[EU_SWP] = _("SWAP");
+ Desc_nlstab[EU_SWP] = _("Swapped Size (KiB)");
+/* Translation Hint: maximum 'RES' = 6 */
+ Head_nlstab[EU_RES] = _("RES");
+ Desc_nlstab[EU_RES] = _("Resident Size (KiB)");
+/* Translation Hint: maximum 'CODE' = 4 */
+ Head_nlstab[EU_COD] = _("CODE");
+ Desc_nlstab[EU_COD] = _("Code Size (KiB)");
+/* Translation Hint: maximum 'DATA' = 7 */
+ Head_nlstab[EU_DAT] = _("DATA");
+ Desc_nlstab[EU_DAT] = _("Data+Stack (KiB)");
+/* Translation Hint: maximum 'SHR' = 6 */
+ Head_nlstab[EU_SHR] = _("SHR");
+ Desc_nlstab[EU_SHR] = _("Shared Memory (KiB)");
+/* Translation Hint: maximum 'nMaj' = 4 */
+ Head_nlstab[EU_FL1] = _("nMaj");
+ Desc_nlstab[EU_FL1] = _("Major Page Faults");
+/* Translation Hint: maximum 'nMin' = 4 */
+ Head_nlstab[EU_FL2] = _("nMin");
+ Desc_nlstab[EU_FL2] = _("Minor Page Faults");
+/* Translation Hint: maximum 'nDRT' = 4 */
+ Head_nlstab[EU_DRT] = _("nDRT");
+ Desc_nlstab[EU_DRT] = _("Dirty Pages Count");
+/* Translation Hint: maximum 'S' = 1 */
+ Head_nlstab[EU_STA] = _("S");
+ Desc_nlstab[EU_STA] = _("Process Status");
+/* Translation Hint: maximum 'COMMAND' = variable */
+ Head_nlstab[EU_CMD] = _("COMMAND");
+ Desc_nlstab[EU_CMD] = _("Command Name/Line");
+/* Translation Hint: maximum 'WCHAN' = 10 + */
+ Head_nlstab[EU_WCH] = _("WCHAN");
+ Desc_nlstab[EU_WCH] = _("Sleeping in Function");
+/* Translation Hint: maximum 'Flags' = 8 */
+ Head_nlstab[EU_FLG] = _("Flags");
+ Desc_nlstab[EU_FLG] = _("Task Flags <sched.h>");
+/* Translation Hint: maximum 'CGROUPS' = variable */
+ Head_nlstab[EU_CGR] = _("CGROUPS");
+ Desc_nlstab[EU_CGR] = _("Control Groups");
+/* Translation Hint: maximum 'SUPGIDS' = variable */
+ Head_nlstab[EU_SGD] = _("SUPGIDS");
+ Desc_nlstab[EU_SGD] = _("Supp Groups IDs");
+/* Translation Hint: maximum 'SUPGRPS' = variable */
+ Head_nlstab[EU_SGN] = _("SUPGRPS");
+ Desc_nlstab[EU_SGN] = _("Supp Groups Names");
+/* Translation Hint: maximum 'TGID' = 5 */
+ Head_nlstab[EU_TGD] = _("TGID");
+ Desc_nlstab[EU_TGD] = _("Thread Group Id");
+/* Translation Hint: maximum 'OOMa' = 5 */
+ Head_nlstab[EU_OOA] = _("OOMa");
+ Desc_nlstab[EU_OOA] = _("OOMEM Adjustment");
+/* Translation Hint: maximum 'OOMs' = 4 */
+ Head_nlstab[EU_OOM] = _("OOMs");
+ Desc_nlstab[EU_OOM] = _("OOMEM Score current");
+/* Translation Hint: maximum 'ENVIRON' = variable */
+ Head_nlstab[EU_ENV] = _("ENVIRON");
+/* Translation Hint: the abbreviation 'vars' below is shorthand for
+ 'variables' */
+ Desc_nlstab[EU_ENV] = _("Environment vars");
+/* Translation Hint: maximum 'vMj' = 3 */
+ Head_nlstab[EU_FV1] = _("vMj");
+ Desc_nlstab[EU_FV1] = _("Major Faults delta");
+/* Translation Hint: maximum 'vMn' = 3 */
+ Head_nlstab[EU_FV2] = _("vMn");
+ Desc_nlstab[EU_FV2] = _("Minor Faults delta");
+/* Translation Hint: maximum 'USED' = 6 */
+ Head_nlstab[EU_USE] = _("USED");
+ Desc_nlstab[EU_USE] = _("Res+Swap Size (KiB)");
+/* Translation Hint: maximum 'nsIPC' = 10 + */
+ Head_nlstab[EU_NS1] = _("nsIPC");
+ Desc_nlstab[EU_NS1] = _("IPC namespace Inode");
+/* Translation Hint: maximum 'nsMNT' = 10 + */
+ Head_nlstab[EU_NS2] = _("nsMNT");
+ Desc_nlstab[EU_NS2] = _("MNT namespace Inode");
+/* Translation Hint: maximum 'nsNET' = 10 + */
+ Head_nlstab[EU_NS3] = _("nsNET");
+ Desc_nlstab[EU_NS3] = _("NET namespace Inode");
+/* Translation Hint: maximum 'nsPID' = 10 + */
+ Head_nlstab[EU_NS4] = _("nsPID");
+ Desc_nlstab[EU_NS4] = _("PID namespace Inode");
+/* Translation Hint: maximum 'nsUSER' = 10 + */
+ Head_nlstab[EU_NS5] = _("nsUSER");
+ Desc_nlstab[EU_NS5] = _("USER namespace Inode");
+/* Translation Hint: maximum 'nsUTS' = 10 + */
+ Head_nlstab[EU_NS6] = _("nsUTS");
+ Desc_nlstab[EU_NS6] = _("UTS namespace Inode");
+/* Translation Hint: maximum 'LXC' = 8 + */
+ Head_nlstab[EU_LXC] = _("LXC");
+ Desc_nlstab[EU_LXC] = _("LXC container name");
+/* Translation Hint: maximum 'RSan' = 6 */
+ Head_nlstab[EU_RZA] = _("RSan");
+ Desc_nlstab[EU_RZA] = _("RES Anonymous (KiB)");
+/* Translation Hint: maximum 'RSfd' = 6 */
+ Head_nlstab[EU_RZF] = _("RSfd");
+ Desc_nlstab[EU_RZF] = _("RES File-based (KiB)");
+/* Translation Hint: maximum 'RSlk' = 6 */
+ Head_nlstab[EU_RZL] = _("RSlk");
+ Desc_nlstab[EU_RZL] = _("RES Locked (KiB)");
+/* Translation Hint: maximum 'RSsh' = 6 */
+ Head_nlstab[EU_RZS] = _("RSsh");
+ Desc_nlstab[EU_RZS] = _("RES Shared (KiB)");
+/* Translation Hint: maximum 'CGNAME' = variable */
+ Head_nlstab[EU_CGN] = _("CGNAME");
+ Desc_nlstab[EU_CGN] = _("Control Group name");
+/* Translation Hint: maximum 'NU' = 2 */
+ Head_nlstab[EU_NMA] = _("NU");
+ Desc_nlstab[EU_NMA] = _("Last Used NUMA node");
+/* Translation Hint: maximum 'LOGID' = 5 + */
+ Head_nlstab[EU_LID] = _("LOGID");
+ Desc_nlstab[EU_LID] = _("Login User Id");
+/* Translation Hint: maximum 'EXE' = variable */
+ Head_nlstab[EU_EXE] = _("EXE");
+ Desc_nlstab[EU_EXE] = _("Executable Path");
+/* Translation Hint: With the next 5 fields, notice how an extra space
+ has been added ahead of one 'KiB' so that they all
+ align. You need not preserve such alignment. */
+/* Translation Hint: maximum 'RSS' = 6 */
+ Head_nlstab[EU_RSS] = _("RSS");
+ Desc_nlstab[EU_RSS] = _("Res Mem (smaps), KiB");
+/* Translation Hint: maximum 'PSS' = 6 */
+ Head_nlstab[EU_PSS] = _("PSS");
+ Desc_nlstab[EU_PSS] = _("Proportion RSS, KiB");
+/* Translation Hint: maximum 'PSan' = 6 */
+ Head_nlstab[EU_PZA] = _("PSan");
+ Desc_nlstab[EU_PZA] = _("Proportion Anon, KiB");
+/* Translation Hint: maximum 'PSfd' = 6 */
+ Head_nlstab[EU_PZF] = _("PSfd");
+ Desc_nlstab[EU_PZF] = _("Proportion File, KiB");
+/* Translation Hint: maximum 'PSsh' = 6 */
+ Head_nlstab[EU_PZS] = _("PSsh");
+ Desc_nlstab[EU_PZS] = _("Proportion Shrd, KiB");
+/* Translation Hint: maximum 'USS' = 6 */
+ Head_nlstab[EU_USS] = _("USS");
+ Desc_nlstab[EU_USS] = _("Unique RSS, KiB");
+/* Translation Hint: maximum 'ioR' = 6 */
+ Head_nlstab[EU_IRB] = _("ioR");
+ Desc_nlstab[EU_IRB] = _("I/O Bytes Read");
+/* Translation Hint: maximum 'ioRop' = 5 */
+ Head_nlstab[EU_IRO] = _("ioRop");
+ Desc_nlstab[EU_IRO] = _("I/O Read Operations");
+/* Translation Hint: maximum 'ioW' = 6 */
+ Head_nlstab[EU_IWB] = _("ioW");
+ Desc_nlstab[EU_IWB] = _("I/O Bytes Written");
+/* Translation Hint: maximum 'ioWop' = 5 */
+ Head_nlstab[EU_IWO] = _("ioWop");
+ Desc_nlstab[EU_IWO] = _("I/O Write Operations");
+/* Translation Hint: maximum 'AGID' = 5 */
+ Head_nlstab[EU_AGI] = _("AGID");
+ Desc_nlstab[EU_AGI] = _("Autogroup Identifier");
+/* Translation Hint: maximum 'AGNI' = 4 */
+ Head_nlstab[EU_AGN] = _("AGNI");
+ Desc_nlstab[EU_AGN] = _("Autogroup Nice Value");
+/* Translation Hint: maximum 'STARTED' = 7 */
+ Head_nlstab[EU_TM3] = _("STARTED");
+ Desc_nlstab[EU_TM3] = _("Start Time from boot");
+/* Translation Hint: maximum 'ELAPSED' = 7 */
+ Head_nlstab[EU_TM4] = _("ELAPSED");
+ Desc_nlstab[EU_TM4] = _("Elapsed Running Time");
+/* Translation Hint: maximum '%CUU' = 6 */
+ Head_nlstab[EU_CUU] = _("%CUU");
+ Desc_nlstab[EU_CUU] = _("CPU Utilization");
+/* Translation Hint: maximum '%CUC' = 7 */
+ Head_nlstab[EU_CUC] = _("%CUC");
+ Desc_nlstab[EU_CUC] = _("Utilization + child");
+/* Translation Hint: maximum 'nsCGROUP' = 10 + */
+ Head_nlstab[EU_NS7] = _("nsCGROUP");
+ Desc_nlstab[EU_NS7] = _("CGRP namespace Inode");
+/* Translation Hint: maximum 'nsTIME' = 10 + */
+ Head_nlstab[EU_NS8] = _("nsTIME");
+ Desc_nlstab[EU_NS8] = _("TIME namespace Inode");
+}
+
+
+ /*
+ * This routine builds the nls table containing both plain text
+ * and regular c-format strings. */
+static void build_norm_nlstab (void) {
+
+/* Translation Notes ------------------------------------------------
+ . It is strongly recommend that the --no-wrap command line option
+ . be used with all supporting translation tools, when available.
+ .
+ . This group of lines contains both plain text and c-format strings.
+ .
+ . Some strings reflect switches used to affect the running program
+ . and should not be translated without also making corresponding
+ . c-code logic changes.
+ . */
+
+ Norm_nlstab[EXIT_signals_fmt] = _(""
+ "\tsignal %d (%s) was caught by %s, please\n"
+ "\tsend bug reports to <procps@freelists.org>\n");
+ Norm_nlstab[HELP_cmdline_fmt] = _X("\n"
+ "Usage:\n"
+ " %s [options]\n"
+ "\n"
+ "Options:\n"
+ " -b, --batch-mode run in non-interactive batch mode\n"
+ " -c, --cmdline-toggle reverse last remembered 'c' state\n"
+ " -d, --delay =SECS [.TENTHS] iterative delay as SECS [.TENTHS]\n"
+ " -E, --scale-summary-mem =SCALE set mem as: k,m,g,t,p,e for SCALE\n"
+ " -e, --scale-task-mem =SCALE set mem with: k,m,g,t,p for SCALE\n"
+ " -H, --threads-show show tasks plus all their threads\n"
+ " -i, --idle-toggle reverse last remembered 'i' state\n"
+ " -n, --iterations =NUMBER exit on maximum iterations NUMBER\n"
+ " -O, --list-fields output all field names, then exit\n"
+ " -o, --sort-override =FIELD force sorting on this named FIELD\n"
+ " -p, --pid =PIDLIST monitor only the tasks in PIDLIST\n"
+ " -S, --accum-time-toggle reverse last remembered 'S' state\n"
+ " -s, --secure-mode run with secure mode restrictions\n"
+ " -U, --filter-any-user =USER show only processes owned by USER\n"
+ " -u, --filter-only-euser =USER show only processes owned by USER\n"
+ " -w, --width [=COLUMNS] change print width [,use COLUMNS]\n"
+ " -1, --single-cpu-toggle reverse last remembered '1' state\n"
+ "\n"
+ " -h, --help display this help text, then exit\n"
+ " -V, --version output version information & exit\n"
+ "\n"
+ "For more details see top(1).");
+ Norm_nlstab[BAD_delayint_fmt] = _("bad delay interval '%s'");
+ Norm_nlstab[BAD_niterate_fmt] = _("bad iterations argument '%s'");
+ Norm_nlstab[LIMIT_exceed_fmt] = _("pid limit (%d) exceeded");
+ Norm_nlstab[BAD_mon_pids_fmt] = _("bad pid '%s'");
+ Norm_nlstab[MISSING_args_fmt] = _("-%c argument missing");
+ Norm_nlstab[BAD_widtharg_fmt] = _("bad width arg '%s'");
+ Norm_nlstab[UNKNOWN_opts_fmt] = _("unknown option '%s'");
+ Norm_nlstab[DELAY_secure_txt] = _("-d disallowed in \"secure\" mode");
+ Norm_nlstab[DELAY_badarg_txt] = _("-d requires positive argument");
+ Norm_nlstab[ON_word_only_txt] = _("On");
+ Norm_nlstab[OFF_one_word_txt] = _("Off");
+ Norm_nlstab[VERSION_opts_fmt] = _("%s from %s");
+ Norm_nlstab[FOREST_modes_fmt] = _("Forest mode %s");
+ Norm_nlstab[FAIL_tty_get_txt] = _("failed tty get");
+ Norm_nlstab[FAIL_tty_set_fmt] = _("failed tty set: %s");
+ Norm_nlstab[CHOOSE_group_txt] = _("Choose field group (1 - 4)");
+ Norm_nlstab[DISABLED_cmd_txt] = _("Command disabled, 'A' mode required");
+ Norm_nlstab[DISABLED_win_fmt] = _("Command disabled, activate %s with '-' or '_'");
+ Norm_nlstab[COLORS_nomap_txt] = _("No colors to map!");
+ Norm_nlstab[FAIL_rc_open_fmt] = _("Failed '%s' open: %s");
+ Norm_nlstab[WRITE_rcfile_fmt] = _("Wrote configuration to '%s'");
+ Norm_nlstab[DELAY_change_fmt] = _("Change delay from %.1f to");
+ Norm_nlstab[THREADS_show_fmt] = _("Show threads %s");
+ Norm_nlstab[IRIX_curmode_fmt] = _("Irix mode %s");
+ Norm_nlstab[GET_pid2kill_fmt] = _("PID to signal/kill [default pid = %d]");
+ Norm_nlstab[GET_sigs_num_fmt] = _("Send pid %d signal [%d/sigterm]");
+ Norm_nlstab[FAIL_signals_fmt] = _("Failed signal pid '%d' with '%d': %s");
+ Norm_nlstab[BAD_signalid_txt] = _("Invalid signal");
+ Norm_nlstab[GET_pid2nice_fmt] = _("PID to renice [default pid = %d]");
+ Norm_nlstab[GET_nice_num_fmt] = _("Renice PID %d to value");
+ Norm_nlstab[FAIL_re_nice_fmt] = _("Failed renice of PID %d to %d: %s");
+ Norm_nlstab[NAME_windows_fmt] = _("Rename window '%s' to (1-3 chars)");
+ Norm_nlstab[TIME_accumed_fmt] = _("Cumulative time %s");
+ Norm_nlstab[GET_max_task_fmt] = _("Maximum tasks = %d, change to (0 is unlimited)");
+ Norm_nlstab[BAD_max_task_txt] = _("Invalid maximum");
+ Norm_nlstab[GET_user_ids_txt] = _("Which user (blank for all)");
+ Norm_nlstab[UNKNOWN_cmds_txt] = _("Unknown command - try 'h' for help");
+ Norm_nlstab[SCROLL_coord_fmt] = _("scroll coordinates: y = %d/%d (tasks), x = %d/%d (fields)");
+ Norm_nlstab[FAIL_alloc_c_txt] = _("failed memory allocate");
+ Norm_nlstab[FAIL_alloc_r_txt] = _("failed memory re-allocate");
+ Norm_nlstab[BAD_numfloat_txt] = _("Unacceptable floating point");
+ Norm_nlstab[BAD_username_txt] = _("Invalid user");
+ Norm_nlstab[FOREST_views_txt] = _("forest view");
+ Norm_nlstab[FAIL_widepid_txt] = _("failed pid maximum size test");
+ Norm_nlstab[FAIL_widecpu_txt] = _("failed number of cpus test");
+ Norm_nlstab[RC_bad_files_fmt] = _("incompatible rcfile, you should delete '%s'");
+ Norm_nlstab[RC_bad_entry_fmt] = _("window entry #%d corrupt, please delete '%s'");
+ Norm_nlstab[NOT_onsecure_txt] = _("Unavailable in secure mode");
+ Norm_nlstab[NOT_smp_cpus_txt] = _("Only 1 cpu detected");
+ Norm_nlstab[BAD_integers_txt] = _("Unacceptable integer");
+ Norm_nlstab[SELECT_clash_txt] = _("conflicting process selections (U/p/u)");
+/* Translation Hint: This is an abbreviation (limit 3 characters) for:
+ . kibibytes (1024 bytes) */
+ Norm_nlstab[AMT_kilobyte_txt] = _("KiB");
+/* Translation Hint: This is an abbreviation (limit 3 characters) for:
+ . mebibytes (1,048,576 bytes) */
+ Norm_nlstab[AMT_megabyte_txt] = _("MiB");
+/* Translation Hint: This is an abbreviation (limit 3 characters) for:
+ . gibibytes (1,073,741,824 bytes) */
+ Norm_nlstab[AMT_gigabyte_txt] = _("GiB");
+/* Translation Hint: This is an abbreviation (limit 3 characters) for:
+ . tebibytes (1,099,511,627,776 bytes) */
+ Norm_nlstab[AMT_terabyte_txt] = _("TiB");
+/* Translation Hint: This is an abbreviation (limit 3 characters) for:
+ . pebibytes (1,024 tebibytes) */
+ Norm_nlstab[AMT_petabyte_txt] = _("PiB");
+/* Translation Hint: This is an abbreviation (limit 3 characters) for:
+ . exbibytes (1,024 pebibytes) */
+ Norm_nlstab[AMT_exxabyte_txt] = _("EiB");
+ Norm_nlstab[WORD_threads_txt] = _("Threads");
+ Norm_nlstab[WORD_process_txt] = _("Tasks");
+/* Translation Hint: The following "word" is meant to represent either a single
+ . cpu or all of the processors in a multi-processor computer
+ . (should be exactly 6 characters, excluding leading % & colon) */
+ Norm_nlstab[WORD_allcpus_txt] = _("%Cpu(s):");
+/* Translation Hint: The following "word" is meant to represent a single processor
+ and 'the Cp' prefix will be combined with a core id: 'p', 'e' or 'u'
+ . (if 'Cp' is translated, it must be exactly 2 characters long) */
+ Norm_nlstab[WORD_eachcpu_fmt] = _("%%Cp%c%-3d:");
+/* Translation Hint: The following word "another" must have 1 trailing space */
+ Norm_nlstab[WORD_another_txt] = _("another ");
+ Norm_nlstab[FIND_no_next_txt] = _("Locate next inactive, use \"L\"");
+ Norm_nlstab[GET_find_str_txt] = _("Locate string");
+ Norm_nlstab[FIND_no_find_fmt] = _("%s\"%s\" not found");
+ Norm_nlstab[XTRA_fixwide_fmt] = _("width incr is %d, change to (0 default, -1 auto)");
+ Norm_nlstab[XTRA_warncfg_txt] = _("rcfile has inspect/other-filter error(s), save anyway?");
+ Norm_nlstab[XTRA_badflds_fmt] = _("unrecognized field name '%s'");
+ Norm_nlstab[XTRA_winsize_txt] = _("even using field names only, window is now too small");
+ Norm_nlstab[YINSP_demo01_txt] = _("Open Files");
+ Norm_nlstab[YINSP_demo02_txt] = _("NUMA Info");
+ Norm_nlstab[YINSP_demo03_txt] = _("Log");
+ Norm_nlstab[YINSP_deqfmt_txt] = _("the '=' key will eventually show the actual file read or command(s) executed ...");
+ Norm_nlstab[YINSP_deqtyp_txt] = _("demo");
+ Norm_nlstab[YINSP_dstory_txt] = _(""
+ "This is simulated output representing the contents of some file or the output\n"
+ "from some command. Exactly which commands and/or files are solely up to you.\n"
+ "\n"
+ "Although this text is for information purposes only, it can still be scrolled\n"
+ "and searched like real output will be. You are encouraged to experiment with\n"
+ "those features as explained in the prologue above.\n"
+ "\n"
+ "To enable real Inspect functionality, entries must be added to the end of the\n"
+ "top personal personal configuration file. You could use your favorite editor\n"
+ "to accomplish this, taking care not to disturb existing entries.\n"
+ "\n"
+ "Another way to add entries is illustrated below, but it risks overwriting the\n"
+ "rcfile. Redirected echoes must not replace (>) but append (>>) to that file.\n"
+ "\n"
+ " /bin/echo -e \"pipe\\tOpen Files\\tlsof -P -p %d 2>&1\" >> ~/.toprc\n"
+ " /bin/echo -e \"file\\tNUMA Info\\t/proc/%d/numa_maps\" >> ~/.toprc\n"
+ " /bin/echo -e \"pipe\\tLog\\ttail -n200 /var/log/syslog | sort -Mr\" >> ~/.toprc\n"
+ "\n"
+ "If you don't know the location or name of the top rcfile, use the 'W' command\n"
+ "and note those details. After backing up the current rcfile, try issuing the\n"
+ "above echoes exactly as shown, replacing '.toprc' as appropriate. The safest\n"
+ "approach would be to use copy then paste to avoid any typing mistakes.\n"
+ "\n"
+ "Finally, restart top to reveal what actual Inspect entries combined with this\n"
+ "new command can offer. The possibilities are endless, especially considering\n"
+ "that 'pipe' type entries can include shell scripts too!\n"
+ "\n"
+ "For additional important information, please consult the top(1) man document.\n"
+ "Then, enhance top with your very own customized 'file' and/or 'pipe' entries.\n"
+ "\n"
+ "Enjoy!\n");
+ Norm_nlstab[YINSP_noent1_txt] = _("to enable 'Y' press <Enter> then type 'W' and restart top");
+ Norm_nlstab[YINSP_noent2_txt] = _("to enable 'Y' please consult the top man page (press Enter)");
+ Norm_nlstab[YINSP_failed_fmt] = _("Selection failed with: %s\n");
+ Norm_nlstab[YINSP_pidbad_fmt] = _("unable to inspect, pid %d not found");
+ Norm_nlstab[YINSP_pidsee_fmt] = _("inspect at PID [default pid = %d]");
+ Norm_nlstab[YINSP_status_fmt] = _("%s: %*d-%-*d lines, %*d-%*d columns, %lu bytes read");
+ Norm_nlstab[YINSP_waitin_txt] = _("patience please, working ...");
+ Norm_nlstab[YINSP_workin_txt] = _("working, use Ctrl-C to end ...");
+/* Translation Hint: Below are 2 abbreviations which can be as long as needed:
+ . FLD = FIELD, VAL = VALUE */
+ Norm_nlstab[OSEL_prompts_fmt] = _("add filter #%d (%s) as: [!]FLD?VAL");
+ Norm_nlstab[OSEL_casenot_txt] = _("ignoring case");
+ Norm_nlstab[OSEL_caseyes_txt] = _("case sensitive");
+ Norm_nlstab[OSEL_errdups_txt] = _("duplicate filter was ignored");
+ Norm_nlstab[OSEL_errdelm_fmt] = _("'%s' filter delimiter is missing");
+ Norm_nlstab[OSEL_errvalu_fmt] = _("'%s' filter value is missing");
+ Norm_nlstab[WORD_include_txt] = _("include");
+ Norm_nlstab[WORD_exclude_txt] = _("exclude");
+ Norm_nlstab[OSEL_statlin_fmt] = _("<Enter> to resume, filters: %s");
+ Norm_nlstab[WORD_noneone_txt] = _("none");
+/* Translation Hint: The following word 'Node' should be exactly
+ 4 characters, excluding leading %%, fmt chars & colon) */
+ Norm_nlstab[NUMA_nodenam_fmt] = _("%%Node%-2d:");
+ Norm_nlstab[NUMA_nodeget_fmt] = _("expand which numa node (0-%d)");
+ Norm_nlstab[NUMA_nodebad_txt] = _("invalid numa node");
+ Norm_nlstab[NUMA_nodenot_txt] = _("sorry, NUMA extensions unavailable");
+/* Translation Hint: 'Mem ' is an abbreviation for physical memory/ram
+ . 'Swap' represents the linux swap file --
+ . please make both translations exactly 4 characters,
+ . padding with extra spaces as necessary */
+ Norm_nlstab[WORD_abv_mem_txt] = _("Mem ");
+ Norm_nlstab[WORD_abv_swp_txt] = _("Swap");
+ Norm_nlstab[LIB_errormem_fmt] = _("library failed memory statistics, at %d: %s");
+ Norm_nlstab[LIB_errorcpu_fmt] = _("library failed cpu statistics, at %d: %s");
+ Norm_nlstab[LIB_errorpid_fmt] = _("library failed pids statistics, at %d: %s");
+ Norm_nlstab[BAD_memscale_fmt] = _("bad memory scaling arg '%s'");
+ Norm_nlstab[XTRA_vforest_fmt] = _("PID to collapse/expand [default pid = %d]");
+ Norm_nlstab[XTRA_modebad_txt] = _("wrong mode, command inactive");
+ Norm_nlstab[XTRA_warnold_txt] = _("saving prevents older top from reading, save anyway?");
+ Norm_nlstab[X_SEMAPHORES_fmt] = _("failed sem_init() at %d: %s");
+ Norm_nlstab[X_THREADINGS_fmt] = _("failed pthread_create() at %d: %s");
+ Norm_nlstab[X_RESTRICTED_txt] = _("sorry, restricted namespace with reduced functionality");
+ Norm_nlstab[AGNI_valueof_fmt] = _("set pid %d AGNI value to");
+ Norm_nlstab[AGNI_invalid_txt] = _("valid AGNI range is -20 to +19");
+ Norm_nlstab[AGNI_notopen_fmt] = _("autogroup open failed, %s");
+ Norm_nlstab[AGNI_nowrite_fmt] = _("autogroup write failed, %s");
+ Norm_nlstab[X_BOT_cmdlin_fmt] = _("command line for pid %d, %s");
+ Norm_nlstab[X_BOT_ctlgrp_fmt] = _("control groups for pid %d, %s");
+ Norm_nlstab[X_BOT_envirn_fmt] = _("environment for pid %d, %s");
+ Norm_nlstab[X_BOT_namesp_fmt] = _("namespaces for pid %d, %s");
+ Norm_nlstab[X_BOT_nodata_txt] = _("n/a");
+ Norm_nlstab[X_BOT_supgrp_fmt] = _("supplementary groups for pid %d, %s");
+ Norm_nlstab[X_BOT_msglog_txt] = _("message log, last 10 messages:");
+}
+
+
+ /*
+ * This routine builds the nls table containing specially
+ * formatted strings designed to fit within an 80x24 terminal. */
+static void build_uniq_nlstab (void) {
+
+/* Translation Notes ------------------------------------------------
+ . It is strongly recommend that the --no-wrap command line option
+ . be used with all supporting translation tools, when available.
+ .
+ . The next several text groups contain special escape sequences
+ . representing values used to index a table at run-time.
+ .
+ . Each such sequence consists of a tilde (~) followed by an ascii
+ . number in the range of '1' - '8'. Examples are '~2', '~8', etc.
+ . These escape sequences must never themselves be translated but
+ . could be deleted.
+ .
+ . If you remove these escape sequences (both tilde and number) it
+ . would make translation easier. However, the ability to display
+ . colors and bold text at run-time will have been lost.
+ .
+ . Additionally, each of these text groups was designed to display
+ . in a 80x24 terminal window. Hopefully, any translations will
+ . adhere to that goal lest the translated text be truncated.
+ .
+ . If you would like additional information regarding these strings,
+ . please see the prologue to the show_special function in the top.c
+ . source file.
+ .
+ . Caution:
+ . The next three items represent pages for interacting with a user.
+ . In all cases, the last lines of text must be treated with care.
+ .
+ . They must not end with a newline character so that at runtime the
+ . cursor will remain on that final text line.
+ .
+ . Also, the special sequences (tilde+number) must not appear on the
+ . last line (the one without the newline). So please avoid any line
+ . wraps that could place them there.
+ . */
+
+ Uniq_nlstab[KEYS_helpbas_fmt] = _(""
+ "Help for Interactive Commands~2 - %s\n"
+ "Window ~1%s~6: ~1Cumulative mode ~3%s~2. ~1System~6: ~1Delay ~3%.1f secs~2; ~1Secure mode ~3%s~2.\n"
+ "\n"
+ " Z~5,~1B~5,E,e Global: '~1Z~2' colors; '~1B~2' bold; '~1E~2'/'~1e~2' summary/task memory scale\n"
+ " l,t,m,I,0 Toggle: '~1l~2' load avg; '~1t~2' task/cpu; '~1m~2' memory; '~1I~2' Irix; '~10~2' zeros\n"
+ " 1,2,3,4,5 Toggle: '~11~2/~12~2/~13~2' cpu/numa views; '~14~2' cpus abreast; '~15~2' P/E-cores\n"
+ " f,X Fields: '~1f~2' add/remove/order/sort; '~1X~2' increase fixed-width fields\n"
+ "\n"
+ " L,&,<,> . Locate: '~1L~2'/'~1&~2' find/again; Move sort column: '~1<~2'/'~1>~2' left/right\n"
+ " R,H,J,C . Toggle: '~1R~2' Sort; '~1H~2' Threads; '~1J~2' Num justify; '~1C~2' Coordinates\n"
+ " c,i,S,j . Toggle: '~1c~2' Cmd name/line; '~1i~2' Idle; '~1S~2' Time; '~1j~2' Str justify\n"
+ " x~5,~1y~5 . Toggle highlights: '~1x~2' sort field; '~1y~2' running tasks\n"
+ " z~5,~1b~5 . Toggle: '~1z~2' color/mono; '~1b~2' bold/reverse (only if 'x' or 'y')\n"
+ " u,U,o,O . Filter by: '~1u~2'/'~1U~2' effective/any user; '~1o~2'/'~1O~2' other criteria\n"
+ " n,#,^O . Set: '~1n~2'/'~1#~2' max tasks displayed; Show: ~1Ctrl~2+'~1O~2' other filter(s)\n"
+ " V,v,F . Toggle: '~1V~2' forest view; '~1v~2' hide/show children; '~1F~2' keep focused\n"
+ "\n"
+ "%s"
+ " ^G,K,N,U View: ctl groups ~1^G~2; cmdline ~1^K~2; environment ~1^N~2; supp groups ~1^U~2\n"
+ " Y,!,^E,P Inspect '~1Y~2'; Combine Cpus '~1!~2'; Scale time ~1^E~2; View namespaces ~1^P~2\n"
+ " W,q Write config file '~1W~2'; Quit '~1q~2'\n"
+ " ( commands shown with '.' require a ~1visible~2 task display ~1window~2 ) \n"
+ "Press '~1h~2' or '~1?~2' for help with ~1Windows~2,\n"
+ "Type 'q' or <Esc> to continue ");
+
+ Uniq_nlstab[WINDOWS_help_fmt] = _(""
+ "Help for Windows / Field Groups~2 - \"Current Window\" = ~1 %s ~6\n"
+ "\n"
+ ". Use multiple ~1windows~2, each with separate config opts (color,fields,sort,etc)\n"
+ ". The 'current' window controls the ~1Summary Area~2 and responds to your ~1Commands~2\n"
+ " . that window's ~1task display~2 can be turned ~1Off~2 & ~1On~2, growing/shrinking others\n"
+ " . with ~1NO~2 task display, some commands will be ~1disabled~2 ('i','R','n','c', etc)\n"
+ " until a ~1different window~2 has been activated, making it the 'current' window\n"
+ ". You ~1change~2 the 'current' window by: ~1 1~2) cycling forward/backward;~1 2~2) choosing\n"
+ " a specific field group; or~1 3~2) exiting the color mapping or fields screens\n"
+ ". Commands ~1available anytime -------------~2\n"
+ " A . Alternate display mode toggle, show ~1Single~2 / ~1Multiple~2 windows\n"
+ " g . Choose another field group and make it 'current', or change now\n"
+ " by selecting a number from: ~1 1~2 =%s;~1 2~2 =%s;~1 3~2 =%s; or~1 4~2 =%s\n"
+ ". Commands ~1requiring~2 '~1A~2' mode~1 -------------~2\n"
+ " G . Change the ~1Name~5 of the 'current' window/field group\n"
+ " ~1*~4 a , w . Cycle through all four windows: '~1a~5' Forward; '~1w~5' Backward\n"
+ " ~1*~4 - , _ . Show/Hide: '~1-~5' ~1Current~2 window; '~1_~5' all ~1Visible~2/~1Invisible~2\n"
+ " The screen will be divided evenly between task displays. But you can make\n"
+ " some ~1larger~2 or ~1smaller~2, using '~1n~2' and '~1i~2' commands. Then later you could:\n"
+ " ~1*~4 = , + . Rebalance tasks: '~1=~5' ~1Current~2 window; '~1+~5' ~1Every~2 window\n"
+ " (this also forces the ~1current~2 or ~1every~2 window to become visible)\n"
+ "\n"
+ "In '~1A~2' mode, '~1*~4' keys are your ~1essential~2 commands. Please try the '~1a~2' and '~1w~2'\n"
+ "commands plus the 'g' sub-commands NOW. Press <Enter> to make 'Current' ");
+
+/* Translation Notes ------------------------------------------------
+ . The following 'Help for color mapping' simulated screen should
+ . probably NOT be translated. It is terribly hard to follow in
+ . this form and any translation could produce unpleasing results
+ . that are unlikely to parallel the running top program.
+ .
+ . If you decide to proceed with translation, please take care
+ . to not disturb the spaces and the tilde + number delimiters.
+ . */
+ Uniq_nlstab[COLOR_custom_fmt] = _(""
+ "Help for color mapping~2 - \"Current Window\" = ~1 %s ~6\n"
+ "\n"
+ " color - 04:25:44 up 8 days, 50 min, 7 users, load average:\n"
+ " Tasks:~3 64 ~2total,~3 2 ~3running,~3 62 ~2sleeping,~3 0 ~2stopped,~3\n"
+ " %%Cpu(s):~3 76.5 ~2user,~3 11.2 ~2system,~3 0.0 ~2nice,~3 12.3 ~2idle~3\n"
+ " ~1 Nasty Message! ~4 -or- ~1Input Prompt~5\n"
+ " ~1 PID TTY PR NI %%CPU TIME+ VIRT SWAP S COMMAND ~6\n"
+ " 17284 ~8pts/2 ~7 8 0 0.0 0:00.75 1380 0 S /bin/bash ~8\n"
+ " ~1 8601 pts/1 7 -10 0.4 0:00.03 916 0 R color -b -z~7\n"
+ " 11005 ~8? ~7 9 0 0.0 0:02.50 2852 1008 S amor -sessi~8\n"
+ " available toggles: ~1B~2 =disable bold globally (~1%s~2),\n"
+ " ~1z~2 =color/mono (~1%s~2), ~1b~2 =tasks \"bold\"/reverse (~1%s~2)\n"
+ "\n"
+ "1) Select a ~1target~2 as an upper case letter, ~1current target~2 is ~1 %c ~4:\n"
+ " S~2 = Summary Data,~1 M~2 = Messages/Prompts,\n"
+ " H~2 = Column Heads,~1 T~2 = Task Information\n"
+ "2) Select a ~1color~2 as a number or use the up/down arrow keys\n"
+ " to raise/lower the %d colors value, ~1current color~2 is ~1 %d ~4:\n"
+ " 0~2 = black,~1 1~2 = red, ~1 2~2 = green,~1 3~2 = yellow,\n"
+ " 4~2 = blue, ~1 5~2 = magenta,~1 6~2 = cyan, ~1 7~2 = white\n"
+ "\n"
+ "3) Then use these keys when finished:\n"
+ " 'q' or <Esc> to abort changes to window '~1%s~2'\n"
+ " 'a' or 'w' to commit & change another, <Enter> to commit and end ");
+
+/* Translation Hint: As is true for the text above, the "keys" shown to the left and
+ . also embedded in the translatable text (along with escape seqs)
+ . should never themselves be translated. */
+ Uniq_nlstab[KEYS_helpext_fmt] = _(""
+ " d,k,r,^R '~1d~2' set delay; '~1k~2' kill; '~1r~2' renice; ~1Ctrl~2+'~1R~2' renice autogroup\n");
+
+/* Translation Hint:
+ . This Fields Management header should be 3 lines long so as
+ . to allow 1 blank line before the fields & descriptions.
+ . If absolutely necessary, 4 lines could be used (but never more).
+ . */
+ Uniq_nlstab[FIELD_header_fmt] = _(""
+ "Fields Management~2 for window ~1%s~6, whose current sort field is ~1%s~2\n"
+ " Navigate with Up/Dn, Right selects for move then <Enter> or Left commits,\n"
+ " 'd' or <Space> toggles display, 's' sets sort. Use 'q' or <Esc> to end!\n");
+
+/* Translation Hint:
+ . The next 5 items must each be translated as a single line.
+ . */
+ Uniq_nlstab[STATE_line_1_fmt] = _("%s:~3"
+ " %3u ~2total,~3 %3u ~2running,~3 %3u ~2sleeping,~3 %3u ~2stopped,~3 %3u ~2zombie~3\n");
+
+/* Translation Hint: Only the following abbreviations need be translated
+ . us = user, sy = system, ni = nice, id = idle, wa = wait,
+ . hi hardware interrupt, si = software interrupt */
+ Uniq_nlstab[STATE_lin2x6_fmt] = _("%s~3"
+ " %#5.1f ~2us,~3 %#5.1f ~2sy,~3 %#5.1f ~2ni,~3 %#5.1f ~2id,~3 %#5.1f ~2wa,~3 %#5.1f ~2hi,~3 %#5.1f ~2si~3 ~1");
+
+/* Translation Hint: Only the following abbreviations need be translated
+ . us = user, sy = system, ni = nice, id = idle, wa = wait,
+ . hi hardware interrupt, si = software interrupt, st = steal time */
+ Uniq_nlstab[STATE_lin2x7_fmt] = _("%s~3"
+ "%#5.1f ~2us,~3%#5.1f ~2sy,~3%#5.1f ~2ni,~3%#5.1f ~2id,~3%#5.1f ~2wa,~3%#5.1f ~2hi,~3%#5.1f ~2si,~3%#5.1f ~2st~3 ~1");
+
+/* Translation Hint: next 2 must be treated together, with WORDS above & below aligned */
+ Uniq_nlstab[MEMORY_line1_fmt] = _(""
+ "%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used,~3 %9.9s~2buff/cache~3 ~1 ");
+ Uniq_nlstab[MEMORY_line2_fmt] = _(""
+ "%s %s:~3 %9.9s~2total,~3 %9.9s~2free,~3 %9.9s~2used.~3 %9.9s~2avail %s~3");
+
+/* Translation Hint:
+ . The next 2 headers for 'Inspection' must each be 3 lines or less
+ . */
+ Uniq_nlstab[YINSP_hdsels_fmt] = _(""
+ "Inspection~2 Pause at: pid ~1%d~6, running ~1%s~6\n"
+ "Use~2: left/right then <Enter> to ~1select~5 an option; 'q' or <Esc> to ~1end~5 !\n"
+ "Options~2: ~1%s\n");
+
+ Uniq_nlstab[YINSP_hdview_fmt] = _(""
+ "Inspection~2 View at pid: ~1%s~3, running ~1%s~3. Locating: ~1%s~6\n"
+ "Use~2: left/right/up/down/etc to ~1navigate~5 the output; 'L'/'&' to ~1locate~5/~1next~5.\n"
+ "Or~2: <Enter> to ~1select another~5; 'q' or <Esc> to ~1end~5 !\n");
+}
+
+
+ /*
+ * This function must be called very early at startup, before
+ * any other function call, and especially before any changes
+ * have been made to the terminal if NLS_VALIDATE is defined!
+ *
+ * The gettext documentation suggests that alone among locale
+ * variables LANGUAGE=ll_CC may be abbreviated as LANGUAGE=ll
+ * to denote the language's main dialect. Unfortunately this
+ * does not appear to be true. One must specify the complete
+ * ll_CC. Optionally, a '.UTF-8' or '.uft8' suffix, as shown
+ * in the following examples, may also be included:
+ * export LANGUAGE=ll_CC # minimal requirement
+ * export LANGUAGE=ll_CC.UTF-8 # optional convention
+ * export LANGUAGE=ll_CC.utf8 # ok, too
+ *
+ * Additionally, as suggested in the gettext documentation, a
+ * user will also have to export an empty LC_ALL= to actually
+ * enable any translations.
+ */
+void initialize_nls (void) {
+#ifdef NLS_VALIDATE
+ static const char *nls_err ="\t%s_nlstab[%d] == NULL\n";
+ int i;
+
+ setlocale (LC_ALL, "");
+ bindtextdomain(PACKAGE, LOCALEDIR);
+ textdomain(PACKAGE);
+
+ memset(Head_nlstab, 0, sizeof(Head_nlstab));
+ memset(Desc_nlstab, 0, sizeof(Desc_nlstab));
+ build_two_nlstabs();
+ for (i = 0; i < EU_MAXPFLGS; i++) {
+ if (!Head_nlstab[i]) {
+ fprintf(stderr, nls_err, "Head", i);
+ exit(1);
+ }
+ if (!Desc_nlstab[i]) {
+ fprintf(stderr, nls_err, "Desc", i);
+ exit(1);
+ }
+ }
+ memset(Norm_nlstab, 0, sizeof(Norm_nlstab));
+ build_norm_nlstab();
+ for (i = 0; i < norm_MAX; i++)
+ if (!Norm_nlstab[i]) {
+ fprintf(stderr, nls_err, "Norm", i);
+ exit(1);
+ }
+ memset(Uniq_nlstab, 0, sizeof(Uniq_nlstab));
+ build_uniq_nlstab();
+ for (i = 0; i < uniq_MAX; i++)
+ if (!Uniq_nlstab[i]) {
+ fprintf(stderr, nls_err, "Uniq", i);
+ exit(1);
+ }
+#else
+ setlocale (LC_ALL, "");
+ bindtextdomain(PACKAGE, LOCALEDIR);
+ textdomain(PACKAGE);
+
+ build_two_nlstabs();
+ build_norm_nlstab();
+ build_uniq_nlstab();
+#endif
+}
diff --git a/src/top/top_nls.h b/src/top/top_nls.h
new file mode 100644
index 0000000..ed6bad6
--- /dev/null
+++ b/src/top/top_nls.h
@@ -0,0 +1,108 @@
+/* top_nls.h - provide the basis for future nls translations */
+/*
+ * Copyright © 2011-2023 Jim Warner <james.warner@comcast.net
+ *
+ * This file may be used subject to the terms and conditions of the
+ * GNU Library General Public License Version 2, or any later version
+ * at your option, as published by the Free Software Foundation.
+ * 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 Library General Public License for more details.
+ */
+/* For contributions to this program, the author wishes to thank:
+ * Craig Small, <csmall@dropbear.xyz>
+ * Sami Kerola, <kerolasa@iki.fi>
+ */
+#ifndef _Itop_nls
+#define _Itop_nls
+
+ /*
+ * These are our string tables with the following contents:
+ * Head : column headings with varying size limits
+ * Desc : field descriptions not to exceed 20 screen positions
+ * Norm : regular text possibly also containing c-format specifiers
+ * Uniq : show_special specially formatted strings
+ *
+ * The latter table presents the greatest translation challenge !
+ *
+ * We go to the trouble of creating the nls string tables to achieve
+ * these objectives:
+ * + the overhead of repeated runtime calls to gettext()
+ * will be avoided
+ * + the order of the strings in the template (.pot) file
+ * can be completely controlled
+ * + none of the important translator only comments will
+ * clutter and obscure the main program
+ */
+extern const char *Head_nlstab[];
+extern const char *Desc_nlstab[];
+extern const char *Norm_nlstab[];
+extern const char *Uniq_nlstab[];
+
+ /*
+ * Simple optional macros to ease table access.
+ * The N_txt and N_fmt macros are interchangeable but
+ * highlight the two types of strings found in Norm_nlstable.
+ */
+#define N_col(e) Head_nlstab[e]
+#define N_fld(e) Desc_nlstab[e]
+#define N_txt(e) Norm_nlstab[e]
+#define N_fmt(e) Norm_nlstab[e]
+#define N_unq(e) Uniq_nlstab[e]
+
+ /*
+ * These enums are the means to access two of our four tables.
+ * The Head_nlstab and Desc_nlstab are accessed with standard
+ * top pflag enums.
+ *
+ * The norm_nls enums carry a suffix distinguishing plain text
+ * from any text also containiing c-format specifiers.
+ */
+enum norm_nls {
+ AGNI_invalid_txt, AGNI_notopen_fmt, AGNI_nowrite_fmt, AGNI_valueof_fmt,
+ AMT_exxabyte_txt, AMT_gigabyte_txt, AMT_kilobyte_txt, AMT_megabyte_txt,
+ AMT_petabyte_txt, AMT_terabyte_txt, BAD_delayint_fmt, BAD_integers_txt,
+ BAD_max_task_txt, BAD_memscale_fmt, BAD_mon_pids_fmt, BAD_niterate_fmt,
+ BAD_numfloat_txt, BAD_signalid_txt, BAD_username_txt, BAD_widtharg_fmt,
+ CHOOSE_group_txt, COLORS_nomap_txt, DELAY_badarg_txt, DELAY_change_fmt,
+ DELAY_secure_txt, DISABLED_cmd_txt, DISABLED_win_fmt, EXIT_signals_fmt,
+ FAIL_alloc_c_txt, FAIL_alloc_r_txt, FAIL_rc_open_fmt, FAIL_re_nice_fmt,
+ FAIL_signals_fmt, FAIL_tty_get_txt, FAIL_tty_set_fmt, FAIL_widecpu_txt,
+ FAIL_widepid_txt, FIND_no_find_fmt, FIND_no_next_txt, FOREST_modes_fmt,
+ FOREST_views_txt, GET_find_str_txt, GET_max_task_fmt, GET_nice_num_fmt,
+ GET_pid2kill_fmt, GET_pid2nice_fmt, GET_sigs_num_fmt, GET_user_ids_txt,
+ HELP_cmdline_fmt, IRIX_curmode_fmt, LIB_errorcpu_fmt, LIB_errormem_fmt,
+ LIB_errorpid_fmt, LIMIT_exceed_fmt, MISSING_args_fmt, NAME_windows_fmt,
+ NOT_onsecure_txt, NOT_smp_cpus_txt, NUMA_nodebad_txt, NUMA_nodeget_fmt,
+ NUMA_nodenam_fmt, NUMA_nodenot_txt, OFF_one_word_txt, ON_word_only_txt,
+ OSEL_casenot_txt, OSEL_caseyes_txt, OSEL_errdelm_fmt, OSEL_errdups_txt,
+ OSEL_errvalu_fmt, OSEL_prompts_fmt, OSEL_statlin_fmt, RC_bad_entry_fmt,
+ RC_bad_files_fmt, SCROLL_coord_fmt, SELECT_clash_txt, THREADS_show_fmt,
+ TIME_accumed_fmt, UNKNOWN_cmds_txt, UNKNOWN_opts_fmt, VERSION_opts_fmt,
+ WORD_abv_mem_txt, WORD_abv_swp_txt, WORD_allcpus_txt, WORD_another_txt,
+ WORD_eachcpu_fmt, WORD_exclude_txt, WORD_include_txt, WORD_noneone_txt,
+ WORD_process_txt, WORD_threads_txt, WRITE_rcfile_fmt,
+ XTRA_badflds_fmt, XTRA_fixwide_fmt, XTRA_modebad_txt, XTRA_vforest_fmt,
+ XTRA_warncfg_txt, XTRA_warnold_txt, XTRA_winsize_txt,
+ X_BOT_cmdlin_fmt, X_BOT_ctlgrp_fmt, X_BOT_envirn_fmt, X_BOT_msglog_txt,
+ X_BOT_namesp_fmt, X_BOT_nodata_txt, X_BOT_supgrp_fmt, X_RESTRICTED_txt,
+ X_SEMAPHORES_fmt, X_THREADINGS_fmt,
+ YINSP_demo01_txt, YINSP_demo02_txt, YINSP_demo03_txt, YINSP_deqfmt_txt,
+ YINSP_deqtyp_txt, YINSP_dstory_txt,
+ YINSP_failed_fmt, YINSP_noent1_txt, YINSP_noent2_txt, YINSP_pidbad_fmt,
+ YINSP_pidsee_fmt, YINSP_status_fmt, YINSP_waitin_txt, YINSP_workin_txt,
+ norm_MAX
+};
+
+enum uniq_nls {
+ COLOR_custom_fmt, FIELD_header_fmt, KEYS_helpbas_fmt, KEYS_helpext_fmt,
+ MEMORY_line1_fmt, MEMORY_line2_fmt, STATE_lin2x6_fmt, STATE_lin2x7_fmt,
+ STATE_line_1_fmt, WINDOWS_help_fmt, YINSP_hdsels_fmt, YINSP_hdview_fmt,
+ uniq_MAX
+};
+
+void initialize_nls (void);
+
+#endif /* _Itop_nls */
+
diff --git a/src/uptime.c b/src/uptime.c
new file mode 100644
index 0000000..91e89c7
--- /dev/null
+++ b/src/uptime.c
@@ -0,0 +1,127 @@
+/*
+ * uptime.c - display system uptime
+ *
+ * Copyright © 2002-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2020-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2011-2012 Sami Kerola <kerolasa@iki.fi>
+ *
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <errno.h>
+#include <getopt.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <time.h>
+#include <sys/time.h>
+
+#include "c.h"
+#include "fileutils.h"
+#include "nls.h"
+
+#include "misc.h"
+
+static void print_uptime_since()
+{
+ double now, uptime_secs, idle_secs;
+ time_t up_since_secs;
+ struct tm *up_since;
+ struct timeval tim;
+
+ /* Get the current time and convert it to a double */
+ if (gettimeofday(&tim, NULL) != 0)
+ xerr(EXIT_FAILURE, "gettimeofday");
+ now = (tim.tv_sec * 1000000.0) + tim.tv_usec;
+
+ /* Get the uptime and calculate when that was */
+ if (procps_uptime(&uptime_secs, &idle_secs) < 0)
+ xerr(EXIT_FAILURE, _("Cannot get system uptime"));
+ up_since_secs = (time_t) ((now/1000000.0) - uptime_secs);
+
+ /* Show this */
+ if ((up_since = localtime(&up_since_secs)) == NULL)
+ xerrx(EXIT_FAILURE, "localtime");
+ printf("%04d-%02d-%02d %02d:%02d:%02d\n",
+ up_since->tm_year + 1900, up_since->tm_mon + 1, up_since->tm_mday,
+ up_since->tm_hour, up_since->tm_min, up_since->tm_sec);
+}
+
+static void __attribute__ ((__noreturn__)) usage(FILE * out)
+{
+ fputs(USAGE_HEADER, out);
+ fprintf(out, _(" %s [options]\n"), program_invocation_short_name);
+ fputs(USAGE_OPTIONS, out);
+ fputs(_(" -p, --pretty show uptime in pretty format\n"), out);
+ fputs(USAGE_HELP, out);
+ fputs(_(" -s, --since system up since\n"), out);
+ fputs(USAGE_VERSION, out);
+ fprintf(out, USAGE_MAN_TAIL("uptime(1)"));
+
+ exit(out == stderr ? EXIT_FAILURE : EXIT_SUCCESS);
+}
+
+int main(int argc, char **argv)
+{
+ int c, p = 0;
+ char *uptime_str;
+
+ static const struct option longopts[] = {
+ {"pretty", no_argument, NULL, 'p'},
+ {"help", no_argument, NULL, 'h'},
+ {"since", no_argument, NULL, 's'},
+ {"version", no_argument, NULL, 'V'},
+ {NULL, 0, NULL, 0}
+ };
+
+#ifdef HAVE_PROGRAM_INVOCATION_NAME
+ program_invocation_name = program_invocation_short_name;
+#endif
+ setlocale (LC_ALL, "");
+ bindtextdomain(PACKAGE, LOCALEDIR);
+ textdomain(PACKAGE);
+ atexit(close_stdout);
+
+ while ((c = getopt_long(argc, argv, "phsV", longopts, NULL)) != -1)
+ switch (c) {
+ case 'p':
+ p = 1;
+ break;
+ case 'h':
+ usage(stdout);
+ case 's':
+ print_uptime_since();
+ return EXIT_SUCCESS;
+ case 'V':
+ printf(PROCPS_NG_VERSION);
+ return EXIT_SUCCESS;
+ default:
+ usage(stderr);
+ }
+
+ if (optind != argc)
+ usage(stderr);
+
+ if (p)
+ uptime_str = procps_uptime_sprint_short();
+ else
+ uptime_str = procps_uptime_sprint();
+
+ if (!uptime_str || uptime_str[0] == '\0')
+ xerr(EXIT_FAILURE, _("Cannot get system uptime"));
+
+ printf("%s\n", uptime_str);
+ return EXIT_SUCCESS;
+}
diff --git a/src/vmstat.c b/src/vmstat.c
new file mode 100644
index 0000000..c77ee25
--- /dev/null
+++ b/src/vmstat.c
@@ -0,0 +1,1092 @@
+/*
+ * vmstat - report memory statistics
+ *
+ * Copyright © 2011-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2012-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2011-2012 Sami Kerola <kerolasa@iki.fi>
+ * Copyright © 2010 Jan Görig <jgorig@redhat.com>
+ * Copyright © 2003 Fabian Frederick
+ * Copyright © 1998-2002 Albert Cahalan
+ * Copyright © 1994 Henry Ware <al172@yfn.ysu.edu>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <assert.h>
+#include <ctype.h>
+#include <dirent.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <getopt.h>
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/ioctl.h>
+#include <sys/types.h>
+#include <termios.h>
+#include <unistd.h>
+#include <time.h>
+
+#include "c.h"
+#include "fileutils.h"
+#include "nls.h"
+#include "strutils.h"
+
+#include "diskstats.h"
+#include "meminfo.h"
+#include "misc.h"
+#include "slabinfo.h"
+#include "stat.h"
+#include "vmstat.h"
+
+#define UNIT_B 1
+#define UNIT_k 1000
+#define UNIT_K 1024
+#define UNIT_m 1000000
+#define UNIT_M 1048576
+
+static unsigned long dataUnit = UNIT_K;
+static char szDataUnit[3] = "K";
+
+#define VMSTAT 0
+#define DISKSTAT 0x00000001
+#define VMSUMSTAT 0x00000002
+#define SLABSTAT 0x00000004
+#define PARTITIONSTAT 0x00000008
+#define DISKSUMSTAT 0x00000010
+
+static int statMode = VMSTAT;
+
+/* "-a" means "show active/inactive" */
+static int a_option;
+
+/* "-w" means "wide output" */
+static int w_option;
+
+/* "-y" means "skip first output" */
+static int y_option;
+
+/* "-t" means "show timestamp" */
+static int t_option;
+
+static unsigned sleep_time = 1;
+static int infinite_updates = 0;
+static unsigned long num_updates =1;
+/* window height */
+static unsigned int height;
+static unsigned int moreheaders = TRUE;
+
+static enum stat_item First_stat_items[] = {
+ STAT_SYS_PROC_RUNNING,
+ STAT_SYS_PROC_BLOCKED,
+ STAT_SYS_INTERRUPTS,
+ STAT_SYS_CTX_SWITCHES,
+ STAT_TIC_USER,
+ STAT_TIC_NICE,
+ STAT_TIC_SYSTEM,
+ STAT_TIC_IRQ,
+ STAT_TIC_SOFTIRQ,
+ STAT_TIC_IDLE,
+ STAT_TIC_IOWAIT,
+ STAT_TIC_STOLEN,
+ STAT_TIC_GUEST,
+ STAT_TIC_GUEST_NICE
+};
+static enum stat_item Loop_stat_items[] = {
+ STAT_SYS_PROC_RUNNING,
+ STAT_SYS_PROC_BLOCKED,
+ STAT_SYS_DELTA_INTERRUPTS,
+ STAT_SYS_DELTA_CTX_SWITCHES,
+ STAT_TIC_DELTA_USER,
+ STAT_TIC_DELTA_NICE,
+ STAT_TIC_DELTA_SYSTEM,
+ STAT_TIC_DELTA_IRQ,
+ STAT_TIC_DELTA_SOFTIRQ,
+ STAT_TIC_DELTA_IDLE,
+ STAT_TIC_DELTA_IOWAIT,
+ STAT_TIC_DELTA_STOLEN,
+ STAT_TIC_DELTA_GUEST,
+ STAT_TIC_DELTA_GUEST_NICE
+};
+enum Rel_statitems {
+ stat_PRU, stat_PBL, stat_INT, stat_CTX,
+ stat_USR, stat_NIC, stat_SYS, stat_IRQ, stat_SRQ,
+ stat_IDL, stat_IOW, stat_STO, stat_GST, stat_GNI,
+ MAX_stat
+};
+
+static enum meminfo_item Mem_items[] = {
+ MEMINFO_SWAP_USED,
+ MEMINFO_MEM_FREE,
+ MEMINFO_MEM_ACTIVE,
+ MEMINFO_MEM_INACTIVE,
+ MEMINFO_MEM_BUFFERS,
+ MEMINFO_MEM_CACHED_ALL
+};
+enum Rel_memitems {
+ mem_SUS, mem_FREE, mem_ACT, mem_INA, mem_BUF, mem_CAC, MAX_mem
+};
+
+static enum diskstats_item Disk_items[] = {
+ DISKSTATS_TYPE,
+ DISKSTATS_NAME,
+ DISKSTATS_READS,
+ DISKSTATS_READS_MERGED,
+ DISKSTATS_READ_SECTORS,
+ DISKSTATS_READ_TIME,
+ DISKSTATS_WRITES,
+ DISKSTATS_WRITES_MERGED,
+ DISKSTATS_WRITE_SECTORS,
+ DISKSTATS_WRITE_TIME,
+ DISKSTATS_IO_INPROGRESS,
+ DISKSTATS_IO_TIME,
+ DISKSTATS_WEIGHTED_TIME
+};
+enum Rel_diskitems {
+ disk_TYPE, disk_NAME,
+ disk_READ, disk_READ_MERGE, disk_READ_SECT, disk_READ_TIME,
+ disk_WRITE, disk_WRITE_MERGE, disk_WRITE_SECT, disk_WRITE_TIME,
+ disk_IO, disk_IO_TIME, disk_IO_WTIME, MAX_disk
+};
+
+static enum diskstats_item Part_items[] = {
+ DISKSTATS_READS,
+ DISKSTATS_READ_SECTORS,
+ DISKSTATS_WRITES,
+ DISKSTATS_WRITE_SECTORS
+};
+enum Rel_partitems {
+ part_READ, part_READ_SECT, part_WRITE, part_WRITE_SECT, MAX_part
+};
+
+static enum stat_item Sum_stat_items[] = {
+ STAT_TIC_USER,
+ STAT_TIC_NICE,
+ STAT_TIC_SYSTEM,
+ STAT_TIC_IDLE,
+ STAT_TIC_IOWAIT,
+ STAT_TIC_IRQ,
+ STAT_TIC_SOFTIRQ,
+ STAT_TIC_STOLEN,
+ STAT_TIC_GUEST,
+ STAT_TIC_GUEST_NICE,
+ STAT_SYS_CTX_SWITCHES,
+ STAT_SYS_INTERRUPTS,
+ STAT_SYS_TIME_OF_BOOT,
+ STAT_SYS_PROC_CREATED
+};
+enum Rel_sumstatitems {
+ sstat_USR, sstat_NIC, sstat_SYS, sstat_IDL, sstat_IOW, sstat_IRQ,
+ sstat_SRQ, sstat_STO, sstat_GST, sstat_GNI, sstat_CTX, sstat_INT,
+ sstat_TOB, sstat_PCR
+};
+
+static enum meminfo_item Sum_mem_items[] = {
+ MEMINFO_MEM_TOTAL,
+ MEMINFO_MEM_USED,
+ MEMINFO_MEM_ACTIVE,
+ MEMINFO_MEM_INACTIVE,
+ MEMINFO_MEM_FREE,
+ MEMINFO_MEM_BUFFERS,
+ MEMINFO_MEM_CACHED_ALL,
+ MEMINFO_SWAP_TOTAL,
+ MEMINFO_SWAP_USED,
+ MEMINFO_SWAP_FREE,
+};
+enum Rel_summemitems {
+ smem_MTOT, smem_MUSE, smem_MACT, smem_MIAC, smem_MFRE,
+ smem_MBUF, smem_MCAC, smem_STOT, smem_SUSE, smem_SFRE
+};
+
+
+static void __attribute__ ((__noreturn__))
+ usage(FILE * out)
+{
+ fputs(USAGE_HEADER, out);
+ fprintf(out,
+ _(" %s [options] [delay [count]]\n"),
+ program_invocation_short_name);
+ fputs(USAGE_OPTIONS, out);
+ fputs(_(" -a, --active active/inactive memory\n"), out);
+ fputs(_(" -f, --forks number of forks since boot\n"), out);
+ fputs(_(" -m, --slabs slabinfo\n"), out);
+ fputs(_(" -n, --one-header do not redisplay header\n"), out);
+ fputs(_(" -s, --stats event counter statistics\n"), out);
+ fputs(_(" -d, --disk disk statistics\n"), out);
+ fputs(_(" -D, --disk-sum summarize disk statistics\n"), out);
+ fputs(_(" -p, --partition <dev> partition specific statistics\n"), out);
+ fputs(_(" -S, --unit <char> define display unit\n"), out);
+ fputs(_(" -w, --wide wide output\n"), out);
+ fputs(_(" -t, --timestamp show timestamp\n"), out);
+ fputs(_(" -y, --no-first skips first line of output\n"), out);
+ fputs(USAGE_SEPARATOR, out);
+ fputs(USAGE_HELP, out);
+ fputs(USAGE_VERSION, out);
+ fprintf(out, USAGE_MAN_TAIL("vmstat(8)"));
+
+ exit(out == stderr ? EXIT_FAILURE : EXIT_SUCCESS);
+}
+
+static void new_header(void)
+{
+ struct tm *tm_ptr;
+ time_t the_time;
+ char timebuf[32];
+
+ /* Translation Hint: Translating folloging header & fields
+ * that follow (marked with max x chars) might not work,
+ * unless manual page is translated as well. */
+ const char *header =
+ _("procs -----------memory---------- ---swap-- -----io---- -system-- -------cpu-------");
+ const char *wide_header =
+ _("--procs-- -----------------------memory---------------------- ---swap-- -----io---- -system-- ----------cpu----------");
+ const char *timestamp_header = _(" -----timestamp-----");
+
+ const char format[] =
+ "%2s %2s %6s %6s %6s %6s %4s %4s %5s %5s %4s %4s %2s %2s %2s %2s %2s %2s";
+ const char wide_format[] =
+ "%4s %4s %12s %12s %12s %12s %4s %4s %5s %5s %4s %4s %3s %3s %3s %3s %3s %3s";
+
+
+ printf("%s", w_option ? wide_header : header);
+
+ if (t_option) {
+ printf("%s", timestamp_header);
+ }
+
+ printf("\n");
+
+ printf(
+ w_option ? wide_format : format,
+ /* Translation Hint: max 2 chars */
+ _("r"),
+ /* Translation Hint: max 2 chars */
+ _("b"),
+ /* Translation Hint: max 6 chars */
+ _("swpd"),
+ /* Translation Hint: max 6 chars */
+ _("free"),
+ /* Translation Hint: max 6 chars */
+ a_option ? _("inact") :
+ /* Translation Hint: max 6 chars */
+ _("buff"),
+ /* Translation Hint: max 6 chars */
+ a_option ? _("active") :
+ /* Translation Hint: max 6 chars */
+ _("cache"),
+ /* Translation Hint: max 4 chars */
+ _("si"),
+ /* Translation Hint: max 4 chars */
+ _("so"),
+ /* Translation Hint: max 5 chars */
+ _("bi"),
+ /* Translation Hint: max 5 chars */
+ _("bo"),
+ /* Translation Hint: max 4 chars */
+ _("in"),
+ /* Translation Hint: max 4 chars */
+ _("cs"),
+ /* Translation Hint: max 2 chars */
+ _("us"),
+ /* Translation Hint: max 2 chars */
+ _("sy"),
+ /* Translation Hint: max 2 chars */
+ _("id"),
+ /* Translation Hint: max 2 chars */
+ _("wa"),
+ /* Translation Hint: max 2 chars */
+ _("st"),
+ /* Translation Hint: max 2 chars */
+ _("gu"));
+
+ if (t_option) {
+ (void) time( &the_time );
+ tm_ptr = localtime( &the_time );
+ if (tm_ptr && strftime(timebuf, sizeof(timebuf), "%Z", tm_ptr)) {
+ const size_t len = strlen(timestamp_header);
+ if (len >= 1 && len - 1 < sizeof(timebuf)) {
+ timebuf[len - 1] = '\0';
+ }
+ } else {
+ timebuf[0] = '\0';
+ }
+ printf(" %*s", (int)(strlen(timestamp_header) - 1), timebuf);
+ }
+
+ printf("\n");
+}
+
+
+static unsigned long unitConvert(unsigned long size)
+{
+ double cvSize;
+ cvSize = (double)size / dataUnit * ((statMode == SLABSTAT) ? 1 : 1024);
+ return ((unsigned long)cvSize);
+}
+
+static void new_format(void)
+{
+#define TICv(E) STAT_VAL(E, ull_int, stat_stack, stat_info)
+#define DTICv(E) STAT_VAL(E, sl_int, stat_stack, stat_info)
+#define SYSv(E) STAT_VAL(E, ul_int, stat_stack, stat_info)
+#define MEMv(E) MEMINFO_VAL(E, ul_int, mem_stack, mem_info)
+#define DSYSv(E) STAT_VAL(E, s_int, stat_stack, stat_info)
+ const char format[] =
+ "%2lu %2lu %6lu %6lu %6lu %6lu %4u %4u %5u %5u %4u %4u %2u %2u %2u %2u %2u %2u";
+ const char wide_format[] =
+ "%4lu %4lu %12lu %12lu %12lu %12lu %4u %4u %5u %5u %4u %4u %3u %3u %3u %3u %3u %3u";
+
+ unsigned int tog = 0; /* toggle switch for cleaner code */
+ unsigned int i;
+ long long cpu_use, cpu_sys, cpu_idl, cpu_iow, cpu_sto, cpu_gue;
+ long long Div, divo2;
+ unsigned long pgpgin[2], pgpgout[2], pswpin[2] = {0,0}, pswpout[2];
+ unsigned int sleep_half;
+ unsigned long kb_per_page = sysconf(_SC_PAGESIZE) / 1024ul;
+ int debt = 0; /* handle idle ticks running backwards */
+ struct tm *tm_ptr;
+ time_t the_time;
+ char timebuf[32];
+ double uptime;
+ struct vmstat_info *vm_info = NULL;
+ struct stat_info *stat_info = NULL;
+ struct stat_stack *stat_stack;
+ struct meminfo_info *mem_info = NULL;
+ struct meminfo_stack *mem_stack;
+
+ sleep_half = (sleep_time / 2);
+ // long hz = procps_hertz_get();
+
+ if (procps_vmstat_new(&vm_info) < 0)
+ xerrx(EXIT_FAILURE, _("Unable to create vmstat structure"));
+ if (procps_stat_new(&stat_info) < 0)
+ xerrx(EXIT_FAILURE, _("Unable to create system stat structure"));
+ if (procps_meminfo_new(&mem_info) < 0)
+ xerrx(EXIT_FAILURE, _("Unable to create meminfo structure"));
+ if (procps_uptime(&uptime, NULL) < 0)
+ xerr(EXIT_FAILURE, _("Unable to get uptime"));
+ if (0.0 == uptime)
+ uptime = 1.0;
+ new_header();
+
+ pgpgin[tog] = VMSTAT_GET(vm_info, VMSTAT_PGPGIN, ul_int);
+ pgpgout[tog] = VMSTAT_GET(vm_info, VMSTAT_PGPGOUT, ul_int);
+ pswpin[tog] = VMSTAT_GET(vm_info, VMSTAT_PSWPIN, ul_int);
+ pswpout[tog] = VMSTAT_GET(vm_info, VMSTAT_PSWPOUT, ul_int);
+
+ if (!(mem_stack = procps_meminfo_select(mem_info, Mem_items, MAX_mem)))
+ xerrx(EXIT_FAILURE, _("Unable to select memory information"));
+
+ if (y_option == 0) {
+ if (t_option) {
+ (void) time( &the_time );
+ tm_ptr = localtime( &the_time );
+ if (tm_ptr && strftime(timebuf, sizeof(timebuf), "%Y-%m-%d %H:%M:%S", tm_ptr)) {
+ ;
+ } else {
+ timebuf[0] = '\0';
+ }
+ }
+ /* Do the initial fill */
+ if (!(stat_stack = procps_stat_select(stat_info, First_stat_items, MAX_stat)))
+ xerrx(EXIT_FAILURE, _("Unable to select stat information"));
+ cpu_use = TICv(stat_USR) + TICv(stat_NIC);
+ cpu_sys = TICv(stat_SYS) + TICv(stat_IRQ) + TICv(stat_SRQ);
+ cpu_idl = TICv(stat_IDL);
+ cpu_iow = TICv(stat_IOW);
+ cpu_sto = TICv(stat_STO);
+ cpu_gue = TICv(stat_GST) + TICv(stat_GNI);
+
+ Div = cpu_use + cpu_sys + cpu_idl + cpu_iow + cpu_sto;
+ if (!Div) {
+ Div = 1;
+ cpu_idl = 1;
+ }
+ divo2 = Div / 2UL;
+ cpu_use = (cpu_use >= cpu_gue)? cpu_use - cpu_gue : 0;
+
+ printf(w_option ? wide_format : format,
+ SYSv(stat_PRU),
+ SYSv(stat_PBL),
+ unitConvert(MEMv(mem_SUS)),
+ unitConvert(MEMv(mem_FREE)),
+ unitConvert((a_option?MEMv(mem_INA):MEMv(mem_BUF))),
+ unitConvert((a_option?MEMv(mem_ACT):MEMv(mem_CAC))),
+ (unsigned)( unitConvert(VMSTAT_GET(vm_info, VMSTAT_PSWPIN, ul_int) * kb_per_page) / uptime ),
+ (unsigned)( unitConvert(VMSTAT_GET(vm_info, VMSTAT_PSWPOUT, ul_int) * kb_per_page) / uptime ),
+ (unsigned)( VMSTAT_GET(vm_info, VMSTAT_PGPGIN, ul_int) / uptime ),
+ (unsigned)( VMSTAT_GET(vm_info, VMSTAT_PGPGOUT, ul_int) / uptime ),
+ (unsigned)( SYSv(stat_INT) / uptime ),
+ (unsigned)( SYSv(stat_CTX) / Div ),
+ (unsigned)( (100*cpu_use + divo2) / Div ),
+ (unsigned)( (100*cpu_sys + divo2) / Div ),
+ (unsigned)( (100*cpu_idl + divo2) / Div ),
+ (unsigned)( (100*cpu_iow + divo2) / Div ),
+ (unsigned)( (100*cpu_sto + divo2) / Div ),
+ (unsigned)( (100*cpu_gue + divo2) / Div )
+ );
+
+ if (t_option) {
+ printf(" %s", timebuf);
+ }
+
+ printf("\n");
+ } else
+ num_updates++;
+
+ /* main loop */
+ for (i = 1; infinite_updates || i < num_updates; i++) {
+ sleep(sleep_time);
+ if (moreheaders && ((i % height) == 0))
+ new_header();
+ tog = !tog;
+
+ if (!(stat_stack = procps_stat_select(stat_info, Loop_stat_items, MAX_stat)))
+ xerrx(EXIT_FAILURE, _("Unable to select stat information"));
+
+ cpu_use = DTICv(stat_USR) + DTICv(stat_NIC);
+ cpu_sys = DTICv(stat_SYS) + DTICv(stat_IRQ) + DTICv(stat_SRQ);
+ cpu_idl = DTICv(stat_IDL);
+ cpu_iow = DTICv(stat_IOW);
+ cpu_sto = DTICv(stat_STO);
+ cpu_gue = TICv(stat_GST) + TICv(stat_GNI);
+ pgpgin[tog] = VMSTAT_GET(vm_info, VMSTAT_PGPGIN, ul_int);
+ pgpgout[tog] = VMSTAT_GET(vm_info, VMSTAT_PGPGOUT, ul_int);
+ pswpin[tog] = VMSTAT_GET(vm_info, VMSTAT_PSWPIN, ul_int);
+ pswpout[tog] = VMSTAT_GET(vm_info, VMSTAT_PSWPOUT, ul_int);
+
+ if (!(mem_stack = procps_meminfo_select(mem_info, Mem_items, MAX_mem)))
+ xerrx(EXIT_FAILURE, _("Unable to select memory information"));
+
+ if (t_option) {
+ (void) time( &the_time );
+ tm_ptr = localtime( &the_time );
+ if (tm_ptr && strftime(timebuf, sizeof(timebuf), "%Y-%m-%d %H:%M:%S", tm_ptr)) {
+ ;
+ } else {
+ timebuf[0] = '\0';
+ }
+ }
+
+ /* idle can run backwards for a moment -- kernel "feature" */
+ if (debt) {
+ cpu_idl = (int)cpu_idl + debt;
+ debt = 0;
+ }
+ if ((int)cpu_idl < 0) {
+ debt = (int)cpu_idl;
+ cpu_idl = 0;
+ }
+
+ Div = cpu_use + cpu_sys + cpu_idl + cpu_iow + cpu_sto;
+ if (!Div) Div = 1, cpu_idl = 1;
+ divo2 = Div / 2UL;
+
+ /* guest time is also in user time, we need to subtract. Due to timing
+ * effects guest could be larger than user. We use 0 that case */
+ if (cpu_use >= cpu_gue) {
+ cpu_use -= cpu_gue;
+ } else {
+ cpu_use = 0;
+ }
+
+ printf(w_option ? wide_format : format,
+ SYSv(stat_PRU),
+ SYSv(stat_PBL),
+ unitConvert(MEMv(mem_SUS)),
+ unitConvert(MEMv(mem_FREE)),
+ unitConvert((a_option?MEMv(mem_INA):MEMv(mem_BUF))),
+ unitConvert((a_option?MEMv(mem_ACT):MEMv(mem_CAC))),
+ /*si */
+ (unsigned)( ( unitConvert((pswpin [tog] - pswpin [!tog])*kb_per_page)+sleep_half )/sleep_time ),
+ /* so */
+ (unsigned)( ( unitConvert((pswpout[tog] - pswpout[!tog])*kb_per_page)+sleep_half )/sleep_time ),
+ /* bi */
+ (unsigned)( ( pgpgin [tog] - pgpgin [!tog] +sleep_half )/sleep_time ),
+ /* bo */
+ (unsigned)( ( pgpgout[tog] - pgpgout[!tog] +sleep_half )/sleep_time ),
+ /* in */
+ (unsigned)( ( DSYSv(stat_INT) +sleep_half )/sleep_time ),
+ /* cs */
+ (unsigned)( ( DSYSv(stat_CTX) +sleep_half )/sleep_time ),
+ /* us */
+ (unsigned)( (100*cpu_use+divo2)/Div ),
+ /* sy */
+ (unsigned)( (100*cpu_sys+divo2)/Div ),
+ /* id */
+ (unsigned)( (100*cpu_idl+divo2)/Div ),
+ /* wa */
+ (unsigned)( (100*cpu_iow+divo2)/Div ),
+ /* st */
+ (unsigned)( (100*cpu_sto+divo2)/Div ),
+ /* gu */
+ (unsigned)( (100*cpu_gue+divo2)/Div )
+ );
+
+ if (t_option) {
+ printf(" %s", timebuf);
+ }
+
+ printf("\n");
+ }
+ /* Cleanup */
+ procps_stat_unref(&stat_info);
+ procps_vmstat_unref(&vm_info);
+ procps_meminfo_unref(&mem_info);
+#undef TICv
+#undef DTICv
+#undef SYSv
+#undef DSYSv
+#undef MEMv
+}
+
+static void diskpartition_header(const char *partition_name)
+{
+ printf("%-10s %10s %16s %10s %16s\n",
+ partition_name,
+
+ /* Translation Hint: Translating folloging disk partition
+ * header fields that follow (marked with max x chars) might
+ * not work, unless manual page is translated as well. */
+ /* Translation Hint: max 10 chars */
+ _("reads"),
+ /* Translation Hint: max 16 chars */
+ _("read sectors"),
+ /* Translation Hint: max 10 chars */
+ _("writes"),
+ /* Translation Hint: max 16 chars */
+ _("requested writes"));
+}
+
+static void diskpartition_format(const char *partition_name)
+{
+ #define partVAL(x) DISKSTATS_VAL(x, ul_int, stack, disk_stat)
+ struct diskstats_info *disk_stat = NULL;
+ struct diskstats_stack *stack;
+ struct diskstats_result *got;
+ const char format[] = "%21lu %16lu %10lu %16lu\n";
+ int i;
+
+ if (procps_diskstats_new(&disk_stat) < 0)
+ xerrx(EXIT_FAILURE, _("Unable to create diskstat structure"));
+
+ if (!(got = procps_diskstats_get(disk_stat, partition_name, DISKSTATS_TYPE)))
+ xerrx(EXIT_FAILURE, _("Disk/Partition %s not found"), partition_name);
+
+ diskpartition_header(partition_name);
+
+ for (i = 0; infinite_updates || i < num_updates ; i++) {
+ if (!(stack = procps_diskstats_select(disk_stat, partition_name, Part_items, MAX_part)))
+ xerrx(EXIT_FAILURE, _("Disk/Partition %s not found"), partition_name);
+ printf(format,
+ partVAL(part_READ),
+ partVAL(part_READ_SECT),
+ partVAL(part_WRITE),
+ partVAL(part_WRITE_SECT));
+ if (infinite_updates || i+1 < num_updates)
+ sleep(sleep_time);
+ }
+ procps_diskstats_unref(&disk_stat);
+ #undef partVAL
+}
+
+static void diskheader(void)
+{
+ struct tm *tm_ptr;
+ time_t the_time;
+ char timebuf[32];
+
+ /* Translation Hint: Translating folloging header & fields
+ * that follow (marked with max x chars) might not work,
+ * unless manual page is translated as well. */
+ const char *header =
+ _("disk- ------------reads------------ ------------writes----------- -----IO------");
+ const char *wide_header =
+ _("disk- -------------------reads------------------- -------------------writes------------------ ------IO-------");
+ const char *timestamp_header = _(" -----timestamp-----");
+
+ const char format[] =
+ "%5s %6s %6s %7s %7s %6s %6s %7s %7s %6s %6s";
+ const char wide_format[] =
+ "%5s %9s %9s %11s %11s %9s %9s %11s %11s %7s %7s";
+
+ printf("%s", w_option ? wide_header : header);
+
+ if (t_option) {
+ printf("%s", timestamp_header);
+ }
+
+ printf("\n");
+
+ printf(w_option ? wide_format : format,
+ " ",
+ /* Translation Hint: max 6 chars */
+ _("total"),
+ /* Translation Hint: max 6 chars */
+ _("merged"),
+ /* Translation Hint: max 7 chars */
+ _("sectors"),
+ /* Translation Hint: max 7 chars */
+ _("ms"),
+ /* Translation Hint: max 6 chars */
+ _("total"),
+ /* Translation Hint: max 6 chars */
+ _("merged"),
+ /* Translation Hint: max 7 chars */
+ _("sectors"),
+ /* Translation Hint: max 7 chars */
+ _("ms"),
+ /* Translation Hint: max 6 chars */
+ _("cur"),
+ /* Translation Hint: max 6 chars */
+ _("sec"));
+
+ if (t_option) {
+ (void) time( &the_time );
+ tm_ptr = localtime( &the_time );
+ if (tm_ptr && strftime(timebuf, sizeof(timebuf), "%Z", tm_ptr)) {
+ const size_t len = strlen(timestamp_header);
+ if (len >= 1 && len - 1 < sizeof(timebuf)) {
+ timebuf[len - 1] = '\0';
+ }
+ } else {
+ timebuf[0] = '\0';
+ }
+ printf(" %*s", (int)(strlen(timestamp_header) - 1), timebuf);
+ }
+
+ printf("\n");
+}
+
+static void diskformat(void)
+{
+#define diskVAL(e,t) DISKSTATS_VAL(e, t, reap->stacks[j], disk_stat)
+ struct diskstats_info *disk_stat = NULL;
+ struct diskstats_reaped *reap;
+ int i, j;
+ time_t the_time;
+ struct tm *tm_ptr;
+ char timebuf[32];
+ const char format[] = "%-5s %6lu %6lu %7lu %7lu %6lu %6lu %7lu %7lu %6d %6lu";
+ const char wide_format[] = "%-5s %9lu %9lu %11lu %11lu %9lu %9lu %11lu %11lu %7d %7lu";
+
+ if (procps_diskstats_new(&disk_stat) < 0)
+ xerrx(EXIT_FAILURE, _("Unable to create diskstat structure"));
+
+ if (!moreheaders)
+ diskheader();
+
+ for (i=0; infinite_updates || i < num_updates ; i++) {
+ if (!(reap = procps_diskstats_reap(disk_stat, Disk_items, MAX_disk)))
+ xerrx(EXIT_FAILURE, _("Unable to retrieve disk statistics"));
+ if (t_option) {
+ (void) time( &the_time );
+ tm_ptr = localtime( &the_time );
+ if (tm_ptr && strftime(timebuf, sizeof(timebuf), "%Y-%m-%d %H:%M:%S", tm_ptr)) {
+ ;
+ } else {
+ timebuf[0] = '\0';
+ }
+ }
+ for (j = 0; j < reap->total; j++) {
+ if (diskVAL(disk_TYPE, s_int) != DISKSTATS_TYPE_DISK)
+ continue; /* not a disk */
+ if (moreheaders && ((j % height) == 0))
+ diskheader();
+ printf(w_option ? wide_format : format,
+ diskVAL(disk_NAME, str),
+ diskVAL(disk_READ, ul_int),
+ diskVAL(disk_READ_MERGE, ul_int),
+ diskVAL(disk_READ_SECT, ul_int),
+ diskVAL(disk_READ_TIME, ul_int),
+ diskVAL(disk_WRITE, ul_int),
+ diskVAL(disk_WRITE_MERGE, ul_int),
+ diskVAL(disk_WRITE_SECT, ul_int),
+ diskVAL(disk_WRITE_TIME, ul_int),
+ diskVAL(disk_IO, s_int) / 1000,
+ diskVAL(disk_IO_TIME, ul_int) / 1000);
+ if (t_option)
+ printf(" %s\n", timebuf);
+ else
+ printf("\n");
+ fflush(stdout);
+ }
+ if (infinite_updates || i+1 < num_updates)
+ sleep(sleep_time);
+ }
+#undef diskVAL
+ procps_diskstats_unref(&disk_stat);
+}
+
+static void slabheader(void)
+{
+ printf("%-24s %6s %6s %6s %6s\n",
+ /* Translation Hint: Translating folloging slab fields that
+ * follow (marked with max x chars) might not work, unless
+ * manual page is translated as well. */
+ /* Translation Hint: max 24 chars */
+ _("Cache"),
+ /* Translation Hint: max 6 chars */
+ _("Num"),
+ /* Translation Hint: max 6 chars */
+ _("Total"),
+ /* Translation Hint: max 6 chars */
+ _("Size"),
+ /* Translation Hint: max 6 chars */
+ _("Pages"));
+}
+
+static void slabformat (void)
+{
+ #define MAX_ITEMS (int)(sizeof(node_items) / sizeof(node_items[0]))
+ #define slabVAL(e,t) SLABINFO_VAL(e, t, p, slab_info)
+ struct slabinfo_info *slab_info = NULL;
+ struct slabinfo_reaped *reaped;
+ int i, j;
+ enum slabinfo_item node_items[] = {
+ SLAB_ACTIVE_OBJS, SLAB_NUM_OBJS,
+ SLAB_OBJ_SIZE, SLAB_OBJ_PER_SLAB,
+ SLAB_NAME };
+ enum rel_enums {
+ slab_AOBJS, slab_OBJS, slab_OSIZE, slab_OPS, slab_NAME };
+
+ if (procps_slabinfo_new(&slab_info) < 0)
+ xerr(EXIT_FAILURE, _("Unable to create slabinfo structure"));
+
+ if (!moreheaders)
+ slabheader();
+
+ for (i = 0; infinite_updates || i < num_updates; i++) {
+ if (!(reaped = procps_slabinfo_reap(slab_info, node_items, MAX_ITEMS)))
+ xerrx(EXIT_FAILURE, _("Unable to get slabinfo node data"));
+ if (!(procps_slabinfo_sort(slab_info, reaped->stacks, reaped->total, SLAB_NAME, SLABINFO_SORT_ASCEND)))
+ xerrx(EXIT_FAILURE, _("Unable to sort slab nodes"));
+
+ for (j = 0; j < reaped->total; j++) {
+ struct slabinfo_stack *p = reaped->stacks[j];
+ if (moreheaders && ((j % height) == 0))
+ slabheader();
+ printf("%-24.24s %6u %6u %6u %6u\n",
+ slabVAL(slab_NAME, str),
+ slabVAL(slab_AOBJS, u_int),
+ slabVAL(slab_OBJS, u_int),
+ slabVAL(slab_OSIZE, u_int),
+ slabVAL(slab_OPS, u_int));
+ }
+ if (infinite_updates || i+1 < num_updates)
+ sleep(sleep_time);
+ }
+ procps_slabinfo_unref(&slab_info);
+ #undef MAX_ITEMS
+ #undef slabVAL
+}
+
+static void disksum_format(void)
+{
+#define diskVAL(e,t) DISKSTATS_VAL(e, t, reap->stacks[j], disk_stat)
+ struct diskstats_info *disk_stat = NULL;
+ struct diskstats_reaped *reap;
+ int j, disk_count, part_count;
+ unsigned long reads, merged_reads, read_sectors, milli_reading, writes,
+ merged_writes, written_sectors, milli_writing, inprogress_IO,
+ milli_spent_IO, weighted_milli_spent_IO;
+
+ reads = merged_reads = read_sectors = milli_reading = writes =
+ merged_writes = written_sectors = milli_writing = inprogress_IO =
+ milli_spent_IO = weighted_milli_spent_IO = 0;
+ disk_count = part_count = 0;
+
+ if (procps_diskstats_new(&disk_stat) < 0)
+ xerrx(EXIT_FAILURE, _("Unable to create diskstat structure"));
+ if (!(reap = procps_diskstats_reap(disk_stat, Disk_items, MAX_disk)))
+ xerrx(EXIT_FAILURE, _("Unable to retrieve disk statistics"));
+
+ for (j = 0; j < reap->total; j++) {
+ if (diskVAL(disk_TYPE, s_int) != DISKSTATS_TYPE_DISK) {
+ part_count++;
+ continue; /* not a disk */
+ }
+ disk_count++;
+
+ reads += diskVAL(disk_READ, ul_int);
+ merged_reads += diskVAL(disk_READ_MERGE, ul_int);
+ read_sectors += diskVAL(disk_READ_SECT, ul_int);
+ milli_reading += diskVAL(disk_READ_TIME, ul_int);
+ writes += diskVAL(disk_WRITE, ul_int);
+ merged_writes += diskVAL(disk_WRITE_MERGE, ul_int);
+ written_sectors += diskVAL(disk_WRITE_SECT, ul_int);
+ milli_writing += diskVAL(disk_WRITE_TIME, ul_int);
+ inprogress_IO += diskVAL(disk_IO, s_int) / 1000;
+ milli_spent_IO += diskVAL(disk_IO_TIME, ul_int) / 1000;
+ weighted_milli_spent_IO += diskVAL(disk_IO_WTIME, ul_int) / 1000;
+ }
+ printf(_("%13d disks\n"), disk_count); // <== old vmstat had a trailing space here
+ printf(_("%13d partitions\n"), part_count); // <== old vmstat had a trailing space here too
+ printf(_("%13lu total reads\n"), reads);
+ printf(_("%13lu merged reads\n"), merged_reads);
+ printf(_("%13lu read sectors\n"), read_sectors);
+ printf(_("%13lu milli reading\n"), milli_reading);
+ printf(_("%13lu writes\n"), writes);
+ printf(_("%13lu merged writes\n"), merged_writes);
+ printf(_("%13lu written sectors\n"), written_sectors);
+ printf(_("%13lu milli writing\n"), milli_writing);
+ printf(_("%13lu inprogress IO\n"), inprogress_IO);
+ printf(_("%13lu milli spent IO\n"), milli_spent_IO);
+ printf(_("%13lu milli weighted IO\n"), weighted_milli_spent_IO);
+
+ procps_diskstats_unref(&disk_stat);
+#undef diskVAL
+}
+
+static void sum_format(void)
+{
+#define TICv(E) STAT_VAL(E, ull_int, stat_stack, stat_info)
+#define SYSv(E) STAT_VAL(E, ul_int, stat_stack, stat_info)
+#define MEMv(E) unitConvert(MEMINFO_VAL(E, ul_int, mem_stack, mem_info))
+ struct stat_info *stat_info = NULL;
+ struct vmstat_info *vm_info = NULL;
+ struct meminfo_info *mem_info = NULL;
+ struct stat_stack *stat_stack;
+ struct meminfo_stack *mem_stack;
+
+ if (procps_stat_new(&stat_info) < 0)
+ xerrx(EXIT_FAILURE, _("Unable to create system stat structure"));
+ if (!(stat_stack = procps_stat_select(stat_info, Sum_stat_items, 14)))
+ xerrx(EXIT_FAILURE, _("Unable to select stat information"));
+ if (procps_vmstat_new(&vm_info) < 0)
+ xerrx(EXIT_FAILURE, _("Unable to create vmstat structure"));
+ if (procps_meminfo_new(&mem_info) < 0)
+ xerrx(EXIT_FAILURE, _("Unable to create meminfo structure"));
+ if (!(mem_stack = procps_meminfo_select(mem_info, Sum_mem_items, 10)))
+ xerrx(EXIT_FAILURE, _("Unable to select memory information"));
+
+ printf(_("%13lu %s total memory\n"), MEMv(smem_MTOT), szDataUnit);
+ printf(_("%13lu %s used memory\n"), MEMv(smem_MUSE), szDataUnit);
+ printf(_("%13lu %s active memory\n"), MEMv(smem_MACT), szDataUnit);
+ printf(_("%13lu %s inactive memory\n"), MEMv(smem_MIAC), szDataUnit);
+ printf(_("%13lu %s free memory\n"), MEMv(smem_MFRE), szDataUnit);
+ printf(_("%13lu %s buffer memory\n"), MEMv(smem_MBUF), szDataUnit);
+ printf(_("%13lu %s swap cache\n"), MEMv(smem_MCAC), szDataUnit);
+ printf(_("%13lu %s total swap\n"), MEMv(smem_STOT), szDataUnit);
+ printf(_("%13lu %s used swap\n"), MEMv(smem_SUSE), szDataUnit);
+ printf(_("%13lu %s free swap\n"), MEMv(smem_SFRE), szDataUnit);
+ printf(_("%13lld non-nice user cpu ticks\n"), TICv(sstat_USR));
+ printf(_("%13lld nice user cpu ticks\n"), TICv(sstat_NIC));
+ printf(_("%13lld system cpu ticks\n"), TICv(sstat_SYS));
+ printf(_("%13lld idle cpu ticks\n"), TICv(sstat_IDL));
+ printf(_("%13lld IO-wait cpu ticks\n"), TICv(sstat_IOW));
+ printf(_("%13lld IRQ cpu ticks\n"), TICv(sstat_IRQ));
+ printf(_("%13lld softirq cpu ticks\n"), TICv(sstat_SRQ));
+ printf(_("%13lld stolen cpu ticks\n"), TICv(sstat_STO));
+ printf(_("%13lld non-nice guest cpu ticks\n"), TICv(sstat_GST));
+ printf(_("%13lld nice guest cpu ticks\n"), TICv(sstat_GNI));
+ printf(_("%13lu K paged in\n"), VMSTAT_GET(vm_info, VMSTAT_PGPGIN, ul_int));
+ printf(_("%13lu K paged out\n"), VMSTAT_GET(vm_info, VMSTAT_PGPGOUT, ul_int));
+ printf(_("%13lu pages swapped in\n"), VMSTAT_GET(vm_info, VMSTAT_PSWPIN, ul_int));
+ printf(_("%13lu pages swapped out\n"), VMSTAT_GET(vm_info, VMSTAT_PSWPOUT, ul_int));
+ printf(_("%13lu interrupts\n"), SYSv(sstat_INT));
+ printf(_("%13lu CPU context switches\n"), SYSv(sstat_CTX));
+ printf(_("%13lu boot time\n"), SYSv(sstat_TOB));
+ printf(_("%13lu forks\n"), SYSv(sstat_PCR));
+
+ /* Cleanup */
+ procps_stat_unref(&stat_info);
+ procps_vmstat_unref(&vm_info);
+ procps_meminfo_unref(&mem_info);
+#undef TICv
+#undef SYSv
+#undef MEMv
+}
+
+static void fork_format(void)
+{
+ struct stat_info *stat_info = NULL;
+
+ if (procps_stat_new(&stat_info) < 0)
+ xerrx(EXIT_FAILURE, _("Unable to create system stat structure"));
+
+ printf(_("%13lu forks\n"), STAT_GET(stat_info, STAT_SYS_PROC_CREATED, ul_int));
+ /* Cleanup */
+ procps_stat_unref(&stat_info);
+}
+
+static int winhi(void)
+{
+ struct winsize win;
+ int rows = 24;
+
+ if (ioctl(STDOUT_FILENO, TIOCGWINSZ, &win) != -1 && 0 < win.ws_row)
+ rows = win.ws_row;
+
+ return rows;
+}
+
+int main(int argc, char *argv[])
+{
+ char *partition = NULL;
+ int c;
+ long tmp;
+
+ static const struct option longopts[] = {
+ {"active", no_argument, NULL, 'a'},
+ {"forks", no_argument, NULL, 'f'},
+ {"slabs", no_argument, NULL, 'm'},
+ {"one-header", no_argument, NULL, 'n'},
+ {"stats", no_argument, NULL, 's'},
+ {"disk", no_argument, NULL, 'd'},
+ {"disk-sum", no_argument, NULL, 'D'},
+ {"partition", required_argument, NULL, 'p'},
+ {"unit", required_argument, NULL, 'S'},
+ {"wide", no_argument, NULL, 'w'},
+ {"timestamp", no_argument, NULL, 't'},
+ {"help", no_argument, NULL, 'h'},
+ {"version", no_argument, NULL, 'V'},
+ {"no-first", no_argument, NULL, 'y'},
+ {NULL, 0, NULL, 0}
+ };
+
+#ifdef HAVE_PROGRAM_INVOCATION_NAME
+ program_invocation_name = program_invocation_short_name;
+#endif
+ setlocale (LC_ALL, "");
+ bindtextdomain(PACKAGE, LOCALEDIR);
+ textdomain(PACKAGE);
+ atexit(close_stdout);
+
+ while ((c =
+ getopt_long(argc, argv, "afmnsdDp:S:wthVy", longopts, NULL)) != -1)
+ switch (c) {
+ case 'V':
+ printf(PROCPS_NG_VERSION);
+ return EXIT_SUCCESS;
+ case 'h':
+ usage(stdout);
+ case 'd':
+ statMode |= DISKSTAT;
+ break;
+ case 'a':
+ /* active/inactive mode */
+ a_option = 1;
+ break;
+ case 'f':
+ /* FIXME: check for conflicting args */
+ fork_format();
+ exit(0);
+ case 'm':
+ statMode |= SLABSTAT;
+ break;
+ case 'D':
+ statMode |= DISKSUMSTAT;
+ break;
+ case 'n':
+ /* print only one header */
+ moreheaders = FALSE;
+ break;
+ case 'p':
+ statMode |= PARTITIONSTAT;
+ partition = optarg;
+ if (strncmp(partition, "/dev/", 5) == 0)
+ partition += 5;
+ break;
+ case 'S':
+ switch (optarg[0]) {
+ case 'b':
+ case 'B':
+ dataUnit = UNIT_B;
+ break;
+ case 'k':
+ dataUnit = UNIT_k;
+ break;
+ case 'K':
+ dataUnit = UNIT_K;
+ break;
+ case 'm':
+ dataUnit = UNIT_m;
+ break;
+ case 'M':
+ dataUnit = UNIT_M;
+ break;
+ default:
+ /* Translation Hint: do not change argument characters */
+ xerrx(EXIT_FAILURE, _("-S requires k, K, m or M (default is KiB)"));
+ }
+ szDataUnit[0] = optarg[0];
+ break;
+ case 's':
+ statMode |= VMSUMSTAT;
+ break;
+ case 'w':
+ w_option = 1;
+ break;
+ case 't':
+ t_option = 1;
+ break;
+ case 'y':
+ /* Don't display stats since system restart */
+ y_option = 1;
+ break;
+ default:
+ /* no other aguments defined yet. */
+ usage(stderr);
+ }
+
+ if (optind < argc) {
+ tmp = strtol_or_err(argv[optind++], _("failed to parse argument"));
+ if (tmp < 1)
+ xerrx(EXIT_FAILURE, _("delay must be positive integer"));
+ else if (UINT_MAX < tmp)
+ xerrx(EXIT_FAILURE, _("too large delay value"));
+ sleep_time = tmp;
+ infinite_updates = 1;
+ }
+ num_updates = 1;
+ if (optind < argc) {
+ num_updates = strtol_or_err(argv[optind++], _("failed to parse argument"));
+ infinite_updates = 0;
+ }
+ if (optind < argc)
+ usage(stderr);
+
+ if (moreheaders) {
+ int wheight = winhi() - 3;
+ height = ((wheight > 0) ? wheight : 22);
+ }
+ setlinebuf(stdout);
+ switch (statMode) {
+ case (VMSTAT):
+ new_format();
+ break;
+ case (VMSUMSTAT):
+ sum_format();
+ break;
+ case (DISKSTAT):
+ diskformat();
+ break;
+ case (PARTITIONSTAT):
+ diskpartition_format(partition);
+ break;
+ case (SLABSTAT):
+ slabformat();
+ break;
+ case (DISKSUMSTAT):
+ disksum_format();
+ break;
+ default:
+ usage(stderr);
+ break;
+ }
+ return 0;
+}
diff --git a/src/w.c b/src/w.c
new file mode 100644
index 0000000..fd6e75f
--- /dev/null
+++ b/src/w.c
@@ -0,0 +1,896 @@
+/*
+ * w - show what logged in users are doing.
+ *
+ * Copyright © 2009-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2011-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2011-2012 Sami Kerola <kerolasa@iki.fi>
+ * Copyright © 2002-2006 Albert Cahalan
+ * Copyright © 1996 Charles Blake
+ *
+ * Rewritten, older version:
+ * Copyright © 1993 Larry Greenfield
+ * with some fixes by Michael K. Johnson.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <getopt.h>
+#include <limits.h>
+#include <locale.h>
+#include <pwd.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/ioctl.h>
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+#include <termios.h>
+#include <time.h>
+#include <unistd.h>
+#ifdef HAVE_UTMPX_H
+#include <utmpx.h>
+#ifndef HAVE_UT_HOSTSIZE_IN_UTMPX
+#include <utmp.h>
+#endif
+#else
+# include <utmp.h>
+#endif
+#include <arpa/inet.h>
+#ifdef WITH_SYSTEMD
+# include <systemd/sd-login.h>
+# include <systemd/sd-daemon.h>
+#endif
+#ifdef WITH_ELOGIND
+# include <elogind/sd-login.h>
+# include <elogind/sd-daemon.h>
+#endif
+
+#include "c.h"
+#include "fileutils.h"
+#include "nls.h"
+
+#include "misc.h"
+#include "pids.h"
+
+static int ignoreuser = 0; /* for '-u' */
+static int oldstyle = 0; /* for '-o' */
+
+#ifdef HAVE_UTMPX_H
+typedef struct utmpx utmp_t;
+#else
+typedef struct utmp utmp_t;
+#endif
+
+#ifdef __GLIBC__
+#if !defined(UT_HOSTSIZE) || defined(__UT_HOSTSIZE)
+# define UT_HOSTSIZE __UT_HOSTSIZE
+# define UT_LINESIZE __UT_LINESIZE
+# define UT_NAMESIZE __UT_NAMESIZE
+#endif
+#endif
+
+#ifdef W_SHOWFROM
+# define FROM_STRING "on"
+#else
+# define FROM_STRING "off"
+#endif
+
+#define MAX_CMD_WIDTH 512
+#define MIN_CMD_WIDTH 7
+
+/*
+ * This routine is careful since some programs leave utmp strings
+ * unprintable. Always outputs at least 16 chars padded with
+ * spaces on the right if necessary.
+ */
+static void print_host(const char *restrict host, int len, const int fromlen)
+{
+ const char *last;
+ int width = 0;
+
+ if (len > fromlen)
+ len = fromlen;
+ last = host + len;
+ for (; host < last; host++) {
+ if (*host == '\0') break;
+ if (isprint(*host) && *host != ' ') {
+ fputc(*host, stdout);
+ ++width;
+ } else {
+ fputc('-', stdout);
+ ++width;
+ break;
+ }
+ }
+
+ /*
+ * space-fill, and a '-' too if needed to ensure the
+ * column exists
+ */
+ if (!width) {
+ fputc('-', stdout);
+ ++width;
+ }
+ while (width++ < fromlen)
+ fputc(' ', stdout);
+}
+
+
+/* This routine prints the display part of the host or IPv6 link address interface */
+static void print_display_or_interface(const char *restrict host, int len, int restlen)
+{
+ const char *const end = host + (len > 0 ? len : 0);
+ const char *disp, *tmp;
+
+ if (restlen <= 0) return; /* not enough space for printing anything */
+
+ /* search for a collon (might be a display) */
+ disp = host;
+ while ( (disp < end) && (*disp != ':') && isprint(*disp) ) disp++;
+
+ /* colon found */
+ if (disp < end && *disp == ':') {
+ /* detect multiple colons -> IPv6 in the host (not a display) */
+ tmp = disp+1;
+ while ( (tmp < end) && (*tmp != ':') && isprint(*tmp) ) tmp++;
+
+ if (tmp >= end || *tmp != ':') { /* multiple colons not found - it's a display */
+
+ /* number of chars till the end of the input field */
+ len -= (disp - host);
+
+ /* if it is still longer than the rest of the output field, then cut it */
+ if (len > restlen) len = restlen;
+
+ /* print the display */
+ while ((len > 0) && isprint(*disp) && (*disp != ' ')) {
+ len--; restlen--;
+ fputc(*disp, stdout);
+ disp++;
+ }
+
+ if ((len > 0) && (*disp != '\0')) { /* space or nonprintable found - replace with dash and stop printing */
+ restlen--;
+ fputc('-', stdout);
+ }
+ } else { /* multiple colons found - it's an IPv6 address */
+
+ /* search for % (interface separator in case of IPv6 link address) */
+ while ( (tmp < end) && (*tmp != '%') && isprint(*tmp) ) tmp++;
+
+ if (tmp < end && *tmp == '%') { /* interface separator found */
+
+ /* number of chars till the end of the input field */
+ len -= (tmp - host);
+
+ /* if it is still longer than the rest of the output field, then cut it */
+ if (len > restlen) len = restlen;
+
+ /* print the interface */
+ while ((len > 0) && isprint(*tmp) && (*tmp != ' ')) {
+ len--; restlen--;
+ fputc(*tmp, stdout);
+ tmp++;
+ }
+ if ((len > 0) && (*tmp != '\0')) { /* space or nonprintable found - replace with dash and stop printing */
+ restlen--;
+ fputc('-', stdout);
+ }
+ }
+ }
+ }
+
+ /* padding with spaces */
+ while (restlen > 0) {
+ fputc(' ', stdout);
+ restlen--;
+ }
+}
+
+
+/* This routine prints either the hostname or the IP address of the remote */
+static void print_from(
+#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ const char *session,
+#endif
+ const utmp_t *restrict const u, const int ip_addresses, const int fromlen) {
+#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ if (session) {
+ char *host = NULL;
+ int r;
+
+ r = sd_session_get_remote_host(session, &host);
+ if (r < 0 || host == NULL)
+ print_host("", 0, fromlen);
+ else {
+ print_host(host, strlen(host), fromlen);
+ free(host);
+ }
+ } else {
+#endif
+ char buf[fromlen + 1];
+ char buf_ipv6[INET6_ADDRSTRLEN];
+ int len;
+#ifndef __CYGWIN__
+ int32_t ut_addr_v6[4]; /* IP address of the remote host */
+
+ if (ip_addresses) { /* -i switch used */
+ memcpy(&ut_addr_v6, &u->ut_addr_v6, sizeof(ut_addr_v6));
+ if (IN6_IS_ADDR_V4MAPPED(&ut_addr_v6)) {
+ /* map back */
+ ut_addr_v6[0] = ut_addr_v6[3];
+ ut_addr_v6[1] = 0;
+ ut_addr_v6[2] = 0;
+ ut_addr_v6[3] = 0;
+ }
+ if (ut_addr_v6[1] || ut_addr_v6[2] || ut_addr_v6[3]) {
+ /* IPv6 */
+ if (!inet_ntop(AF_INET6, &ut_addr_v6, buf_ipv6, sizeof(buf_ipv6))) {
+ strcpy(buf, ""); /* invalid address, clean the buffer */
+ } else {
+ strncpy(buf, buf_ipv6, fromlen); /* address valid, copy to buffer */
+ }
+ } else {
+ /* IPv4 */
+ if (!(ut_addr_v6[0] && inet_ntop(AF_INET, &ut_addr_v6[0], buf, sizeof(buf)))) {
+ strcpy(buf, ""); /* invalid address, clean the buffer */
+ }
+ }
+ buf[fromlen] = '\0';
+
+ len = strlen(buf);
+ if (len) { /* IP address is non-empty, print it (and concatenate with display, if present) */
+ fputs(buf, stdout);
+ /* show the display part of the host or IPv6 link addr. interface, if present */
+ print_display_or_interface(u->ut_host, UT_HOSTSIZE, fromlen - len);
+ } else { /* IP address is empty, print the host instead */
+ print_host(u->ut_host, UT_HOSTSIZE, fromlen);
+ }
+ } else { /* -i switch NOT used */
+ print_host(u->ut_host, UT_HOSTSIZE, fromlen);
+ }
+#else
+ print_host(u->ut_host, UT_HOSTSIZE, fromlen);
+#endif
+#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ }
+#endif
+}
+
+
+/* compact 7 char format for time intervals (belongs in libproc?) */
+static void print_time_ival7(time_t t, int centi_sec, FILE * fout)
+{
+ if ((long)t < (long)0) {
+ /* system clock changed? */
+ printf(" ? ");
+ return;
+ }
+ if (oldstyle) {
+ if (t >= 48 * 60 * 60)
+ /* > 2 days */
+ fprintf(fout, _(" %2lludays"), (unsigned long long)t / (24 * 60 * 60));
+ else if (t >= 60 * 60)
+ /* > 1 hour */
+ /* Translation Hint: Hours:Minutes */
+ fprintf(fout, " %2llu:%02u ", (unsigned long long)t / (60 * 60),
+ (unsigned)((t / 60) % 60));
+ else if (t > 60)
+ /* > 1 minute */
+ /* Translation Hint: Minutes:Seconds */
+ fprintf(fout, _(" %2llu:%02um"), (unsigned long long)t / 60, (unsigned)t % 60);
+ else
+ fprintf(fout, " ");
+ } else {
+ if (t >= 48 * 60 * 60)
+ /* 2 days or more */
+ fprintf(fout, _(" %2lludays"), (unsigned long long)t / (24 * 60 * 60));
+ else if (t >= 60 * 60)
+ /* 1 hour or more */
+ /* Translation Hint: Hours:Minutes */
+ fprintf(fout, _(" %2llu:%02um"), (unsigned long long)t / (60 * 60),
+ (unsigned)((t / 60) % 60));
+ else if (t > 60)
+ /* 1 minute or more */
+ /* Translation Hint: Minutes:Seconds */
+ fprintf(fout, " %2llu:%02u ", (unsigned long long)t / 60, (unsigned)t % 60);
+ else
+ /* Translation Hint: Seconds:Centiseconds */
+ fprintf(fout, _(" %2llu.%02us"), (unsigned long long)t, centi_sec);
+ }
+}
+
+/* stat the device file to get an idle time */
+static time_t idletime(const char *restrict const tty)
+{
+ struct stat sbuf;
+ if (stat(tty, &sbuf) != 0)
+ return 0;
+ return time(NULL) - sbuf.st_atime;
+}
+
+/* 7 character formatted login time */
+
+static void print_logintime(time_t logt, FILE * fout)
+{
+
+ /* Abbreviated of weekday can be longer than 3 characters,
+ * see for instance hu_HU. Using 16 is few bytes more than
+ * enough. */
+ char time_str[16];
+ time_t curt;
+ struct tm *logtm, *curtm;
+ int today;
+
+ curt = time(NULL);
+ curtm = localtime(&curt);
+ /* localtime returns a pointer to static memory */
+ today = curtm->tm_yday;
+ logtm = localtime(&logt);
+ if (curt - logt > 12 * 60 * 60 && logtm->tm_yday != today) {
+ if (curt - logt > 6 * 24 * 60 * 60) {
+ strftime(time_str, sizeof(time_str), "%b", logtm);
+ fprintf(fout, " %02d%3s%02d", logtm->tm_mday,
+ time_str, logtm->tm_year % 100);
+ } else {
+ strftime(time_str, sizeof(time_str), "%a", logtm);
+ fprintf(fout, " %3s%02d ", time_str,
+ logtm->tm_hour);
+ }
+ } else {
+ fprintf(fout, " %02d:%02d ", logtm->tm_hour, logtm->tm_min);
+ }
+}
+
+/*
+ * Get the Device ID of the given TTY
+ */
+static int get_tty_device(const char *restrict const name)
+{
+ struct stat st;
+ static char buf[32];
+ char *dev_paths[] = { "/dev/%s", "/dev/tty%s", "/dev/pts/%s", NULL};
+ int i;
+
+ if (name[0] == '/' && stat(name, &st) == 0)
+ return st.st_rdev;
+
+ for (i=0; dev_paths[i] != NULL; i++) {
+ snprintf(buf, 32, dev_paths[i], name);
+ if (stat(buf, &st) == 0 && (st.st_mode & S_IFMT) == S_IFCHR)
+ return st.st_rdev;
+ }
+ return -1;
+}
+
+/*
+ * This function scans the process table accumulating total cpu
+ * times for any processes "associated" with this login session.
+ * It also searches for the "best" process to report as "(w)hat"
+ * the user for that login session is doing currently. This the
+ * essential core of 'w'.
+ */
+static int find_best_proc(
+#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ const char *session,
+#endif
+ const utmp_t * restrict const u,
+ const char *restrict const tty,
+ unsigned long long *restrict const jcpu,
+ unsigned long long *restrict const pcpu,
+ char *cmdline,
+ pid_t *pid)
+{
+#define PIDS_GETINT(e) PIDS_VAL(EU_ ## e, s_int, reap->stacks[i], info)
+#define PIDS_GETUNT(e) PIDS_VAL(EU_ ## e, u_int, reap->stacks[i], info)
+#define PIDS_GETULL(e) PIDS_VAL(EU_ ## e, ull_int, reap->stacks[i], info)
+#define PIDS_GETSTR(e) PIDS_VAL(EU_ ## e, str, reap->stacks[i], info)
+ unsigned uid = ~0U;
+ pid_t ut_pid = -1;
+ int found_utpid = 0;
+ int i, total_procs, line;
+ unsigned long long best_time = 0;
+ unsigned long long secondbest_time = 0;
+
+ struct pids_info *info=NULL;
+ struct pids_fetch *reap;
+ enum pids_item items[] = {
+ PIDS_ID_PID,
+ PIDS_ID_TGID,
+ PIDS_TICS_BEGAN,
+ PIDS_ID_EUID,
+ PIDS_ID_RUID,
+ PIDS_ID_TPGID,
+ PIDS_ID_PGRP,
+ PIDS_TTY,
+ PIDS_TICS_ALL,
+ PIDS_CMDLINE};
+ enum rel_items {
+ EU_PID, EU_TGID, EU_START, EU_EUID, EU_RUID, EU_TPGID, EU_PGRP, EU_TTY,
+ EU_TICS_ALL, EU_CMDLINE};
+
+ *jcpu = 0;
+ *pcpu = 0;
+ if (!ignoreuser) {
+#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ if (session) {
+ if (sd_session_get_uid(session, &uid) < 0)
+ return 0;
+ } else {
+#endif
+ char buf[UT_NAMESIZE + 1];
+ struct passwd *passwd_data;
+ strncpy(buf, u->ut_user, UT_NAMESIZE);
+ buf[UT_NAMESIZE] = '\0';
+ if ((passwd_data = getpwnam(buf)) == NULL)
+ return 0;
+ uid = passwd_data->pw_uid;
+ /* OK to have passwd_data go out of scope here */
+#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ }
+#endif
+ }
+
+ line = get_tty_device(tty);
+
+ if (procps_pids_new(&info, items, 10) < 0)
+ xerrx(EXIT_FAILURE,
+ _("Unable to create pid info structure"));
+ if ((reap = procps_pids_reap(info, PIDS_FETCH_TASKS_ONLY)) == NULL)
+ xerrx(EXIT_FAILURE,
+ _("Unable to load process information"));
+ total_procs = reap->counts->total;
+
+ if (u)
+ ut_pid = u->ut_pid;
+#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ else
+ sd_session_get_leader(session, &ut_pid);
+#endif
+
+ for (i=0; i < total_procs; i++) {
+ /* is this the login process? */
+ if (PIDS_GETINT(TGID) == ut_pid) {
+ found_utpid = 1;
+ if (!best_time) {
+ best_time = PIDS_GETULL(START);
+ strncpy(cmdline, PIDS_GETSTR(CMDLINE), MAX_CMD_WIDTH);
+ *pid = PIDS_GETULL(PID);
+ *pcpu = PIDS_GETULL(TICS_ALL);
+ }
+
+ }
+ if (PIDS_GETINT(TTY) != line)
+ continue;
+ (*jcpu) += PIDS_VAL(EU_TICS_ALL, ull_int, reap->stacks[i], info);
+ if (!(secondbest_time && PIDS_GETULL(START) <= secondbest_time)) {
+ secondbest_time = PIDS_GETULL(START);
+ if (cmdline[0] == '-' && cmdline[1] == '\0') {
+ strncpy(cmdline, PIDS_GETSTR(CMDLINE), MAX_CMD_WIDTH);
+ *pid = PIDS_GETULL(PID);
+ *pcpu = PIDS_GETULL(TICS_ALL);
+ }
+ }
+ if (
+ (!ignoreuser && uid != PIDS_GETUNT(EUID)
+ && uid != PIDS_GETUNT(RUID))
+ || (PIDS_GETINT(PGRP) != PIDS_GETINT(TPGID))
+ || (PIDS_GETULL(START) <= best_time)
+ )
+ continue;
+ best_time = PIDS_GETULL(START);
+ strncpy(cmdline, PIDS_GETSTR(CMDLINE), MAX_CMD_WIDTH);
+ *pid = PIDS_GETULL(PID);
+ *pcpu = PIDS_GETULL(TICS_ALL);
+ }
+ procps_pids_unref(&info);
+ return found_utpid;
+#undef PIDS_GETINT
+#undef PIDS_GETUNT
+#undef PIDS_GETULL
+#undef PIDS_GETSTR
+}
+
+static void showinfo(
+#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ const char *session, const char *name,
+#endif
+ utmp_t * u, int formtype, int maxcmd, int from,
+ const int userlen, const int fromlen, const int ip_addresses,
+ const int pids)
+{
+ unsigned long long jcpu, pcpu;
+ unsigned i;
+ char uname[UT_NAMESIZE + 1] = "", tty[5 + UT_LINESIZE + 1] = "/dev/";
+ long hertz;
+ char cmdline[MAX_CMD_WIDTH + 1];
+ pid_t best_pid = -1;
+ int pids_length = 0;
+
+ strcpy(cmdline, "-");
+
+ hertz = procps_hertz_get();
+
+#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ if (session) {
+ char *sd_tty;
+
+ if (sd_session_get_tty(session, &sd_tty) >= 0) {
+ for (i = 0; i < strlen (sd_tty); i++)
+ /* clean up tty if garbled */
+ if (isalnum(sd_tty[i]) || (sd_tty[i] == '/'))
+ tty[i + 5] = sd_tty[i];
+ else
+ tty[i + 5] = '\0';
+ free(sd_tty);
+ }
+ } else {
+#endif
+ for (i = 0; i < UT_LINESIZE; i++)
+ /* clean up tty if garbled */
+ if (isalnum(u->ut_line[i]) || (u->ut_line[i] == '/'))
+ tty[i + 5] = u->ut_line[i];
+ else
+ tty[i + 5] = '\0';
+#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ }
+#endif
+
+ if (find_best_proc(
+#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ session,
+#endif
+ u, tty + 5, &jcpu, &pcpu, cmdline, &best_pid) == 0)
+ /*
+ * just skip if stale utmp entry (i.e. login proc doesn't
+ * exist). If there is a desire a cmdline flag could be
+ * added to optionally show it with a prefix of (stale)
+ * in front of cmd or something like that.
+ */
+ return;
+
+#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ if (name)
+ strncpy(uname, name, UT_NAMESIZE);
+ else
+#endif
+ strncpy(uname, u->ut_user, UT_NAMESIZE);
+ /* force NUL term for printf */
+ uname[UT_NAMESIZE] = '\0';
+
+ if (formtype) {
+ printf("%-*.*s%-9.8s", userlen + 1, userlen, uname, tty + 5);
+#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ if (session) {
+ uint64_t ltime;
+
+ if (from)
+ print_from(session, NULL, ip_addresses, fromlen);
+
+ sd_session_get_start_time(session, &ltime);
+ print_logintime(ltime/((uint64_t) 1000000ULL), stdout);
+ } else {
+#endif
+ if (from)
+ print_from(
+#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ NULL,
+#endif
+ u, ip_addresses, fromlen);
+
+#ifdef HAVE_UTMPX_H
+ print_logintime(u->ut_tv.tv_sec, stdout);
+#else
+ print_logintime(u->ut_time, stdout);
+#endif
+#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ }
+#endif
+ if (u && *u->ut_line == ':')
+ /* idle unknown for xdm logins */
+ printf(" ?xdm? ");
+ else
+ print_time_ival7(idletime(tty), 0, stdout);
+ print_time_ival7(jcpu / hertz, (jcpu % hertz) * (100. / hertz),
+ stdout);
+ if (pcpu > 0)
+ print_time_ival7(pcpu / hertz,
+ (pcpu % hertz) * (100. / hertz),
+ stdout);
+ else
+ printf(" ? ");
+ } else {
+ printf("%-*.*s%-9.8s", userlen + 1, userlen, uname, tty + 5);
+ if (from)
+ print_from(
+#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ NULL,
+#endif
+ u, ip_addresses, fromlen);
+ if (u && *u->ut_line == ':')
+ /* idle unknown for xdm logins */
+ printf(" ?xdm? ");
+ else
+ print_time_ival7(idletime(tty), 0, stdout);
+ }
+ if (pids) {
+ pid_t ut_pid = -1;
+ if (u)
+ ut_pid = u->ut_pid;
+#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ else
+ sd_session_get_leader(session, &ut_pid);
+#endif
+ pids_length = printf(" %d/%d", ut_pid, best_pid);
+ if (pids_length > maxcmd) {
+ maxcmd = 0;
+ } else if (pids_length > 0) {
+ maxcmd -= pids_length;
+ }
+ }
+ printf(" %.*s\n", maxcmd, cmdline);
+}
+
+static void __attribute__ ((__noreturn__))
+ usage(FILE * out)
+{
+ fputs(USAGE_HEADER, out);
+ fprintf(out,
+ _(" %s [options] [user]\n"), program_invocation_short_name);
+ fputs(USAGE_OPTIONS, out);
+ fputs(_(" -h, --no-header do not print header\n"),out);
+ fputs(_(" -u, --no-current ignore current process username\n"),out);
+ fputs(_(" -s, --short short format\n"),out);
+ fputs(_(" -f, --from show remote hostname field\n"),out);
+ fputs(_(" -o, --old-style old style output\n"),out);
+ fputs(_(" -i, --ip-addr display IP address instead of hostname (if possible)\n"), out);
+ fputs(_(" -p, --pids show the PID(s) of processes in WHAT\n"), out);
+ fputs(USAGE_SEPARATOR, out);
+ fputs(_(" --help display this help and exit\n"), out);
+ fputs(USAGE_VERSION, out);
+ fprintf(out, USAGE_MAN_TAIL("w(1)"));
+
+ exit(out == stderr ? EXIT_FAILURE : EXIT_SUCCESS);
+}
+
+int main(int argc, char **argv)
+{
+ char *user = NULL, *p;
+ utmp_t *u;
+ struct winsize win;
+ int ch;
+ int maxcmd = 80;
+ int userlen = 8;
+ int fromlen = 16;
+ char *env_var;
+
+ /* switches (defaults) */
+ int header = 1;
+ int longform = 1;
+ int from = 1;
+ int ip_addresses = 0;
+ int pids = 0;
+
+ enum {
+ HELP_OPTION = CHAR_MAX + 1
+ };
+
+ static const struct option longopts[] = {
+ {"no-header", no_argument, NULL, 'h'},
+ {"no-current", no_argument, NULL, 'u'},
+ {"short", no_argument, NULL, 's'},
+ {"from", no_argument, NULL, 'f'},
+ {"old-style", no_argument, NULL, 'o'},
+ {"ip-addr", no_argument, NULL, 'i'},
+ {"pids", no_argument, NULL, 'p'},
+ {"help", no_argument, NULL, HELP_OPTION},
+ {"version", no_argument, NULL, 'V'},
+ {NULL, 0, NULL, 0}
+ };
+
+#ifdef HAVE_PROGRAM_INVOCATION_NAME
+ program_invocation_name = program_invocation_short_name;
+#endif
+ setlocale (LC_ALL, "");
+ bindtextdomain(PACKAGE, LOCALEDIR);
+ textdomain(PACKAGE);
+ atexit(close_stdout);
+
+#ifndef W_SHOWFROM
+ from = 0;
+#endif
+
+ while ((ch =
+ getopt_long(argc, argv, "husfoVip", longopts, NULL)) != -1)
+ switch (ch) {
+ case 'h':
+ header = 0;
+ break;
+ case 's':
+ longform = 0;
+ break;
+ case 'f':
+ from = !from;
+ break;
+ case 'V':
+ printf(PROCPS_NG_VERSION);
+ exit(0);
+ case 'u':
+ ignoreuser = 1;
+ break;
+ case 'o':
+ oldstyle = 1;
+ break;
+ case 'i':
+ ip_addresses = 1;
+ from = 1;
+ break;
+ case 'p':
+ pids = 1;
+ break;
+ case HELP_OPTION:
+ usage(stdout);
+ default:
+ usage(stderr);
+ }
+
+ if ((argv[optind]))
+ user = (argv[optind]);
+
+ /* Get user field length from environment */
+ if ((env_var = getenv("PROCPS_USERLEN")) != NULL) {
+ int ut_namesize = UT_NAMESIZE;
+ userlen = atoi(env_var);
+ if (userlen < 8 || ut_namesize < userlen) {
+ xwarnx
+ (_("User length environment PROCPS_USERLEN must be between 8 and %i, ignoring.\n"),
+ ut_namesize);
+ userlen = 8;
+ }
+ }
+ /* Get from field length from environment */
+ if ((env_var = getenv("PROCPS_FROMLEN")) != NULL) {
+ fromlen = atoi(env_var);
+ if (fromlen < 8 || UT_HOSTSIZE < fromlen) {
+ xwarnx
+ (_("from length environment PROCPS_FROMLEN must be between 8 and %d, ignoring\n"),
+ UT_HOSTSIZE);
+ fromlen = 16;
+ }
+ }
+ if (ioctl(STDOUT_FILENO, TIOCGWINSZ, &win) != -1 && win.ws_col > 0)
+ maxcmd = win.ws_col;
+ else if ((p = getenv("COLUMNS")))
+ maxcmd = atoi(p);
+ else
+ maxcmd = MAX_CMD_WIDTH;
+#define CLAMP_CMD_WIDTH(cw) do { \
+ if ((cw) < MIN_CMD_WIDTH) (cw) = MIN_CMD_WIDTH; \
+ if ((cw) > MAX_CMD_WIDTH) (cw) = MAX_CMD_WIDTH; \
+} while (0)
+ CLAMP_CMD_WIDTH(maxcmd);
+ maxcmd -= 21 + userlen + (from ? fromlen : 0) + (longform ? 20 : 0);
+ CLAMP_CMD_WIDTH(maxcmd);
+#undef CLAMP_CMD_WIDTH
+
+
+ if (header) {
+ /* print uptime and headers */
+ printf("%s\n", procps_uptime_sprint());
+ /* Translation Hint: Following five uppercase messages are
+ * headers. Try to keep alignment intact. */
+ printf(_("%-*s TTY "), userlen, _("USER"));
+ if (from)
+ printf("%-*s", fromlen - 1, _("FROM"));
+ if (longform)
+ printf(_(" LOGIN@ IDLE JCPU PCPU WHAT\n"));
+ else
+ printf(_(" IDLE WHAT\n"));
+ }
+#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ if (sd_booted() > 0) {
+ char **sessions_list;
+ int sessions;
+ int i;
+
+ sessions = sd_get_sessions (&sessions_list);
+ if (sessions < 0 && sessions != -ENOENT)
+ error(EXIT_FAILURE, -sessions, _("error getting sessions"));
+
+ if (sessions >= 0) {
+ for (int i = 0; i < sessions; i++) {
+ char *name;
+ int r;
+
+ if ((r = sd_session_get_username(sessions_list[i], &name)) < 0)
+ error(EXIT_FAILURE, -r, _("get user name failed"));
+
+ if (user) {
+ if (!strcmp(name, user))
+ showinfo(sessions_list[i], name, NULL, longform,
+ maxcmd, from, userlen, fromlen,
+ ip_addresses, pids);
+ } else {
+ showinfo(sessions_list[i], name, NULL, longform, maxcmd,
+ from, userlen, fromlen, ip_addresses, pids);
+ }
+ free(name);
+ free(sessions_list[i]);
+ }
+ free(sessions_list);
+ }
+ } else {
+#endif
+#ifdef HAVE_UTMPX_H
+ setutxent();
+#else
+ utmpname(UTMP_FILE);
+ setutent();
+#endif
+ if (user) {
+ for (;;) {
+#ifdef HAVE_UTMPX_H
+ u = getutxent();
+#else
+ u = getutent();
+#endif
+ if (!u)
+ break;
+ if (u->ut_type != USER_PROCESS)
+ continue;
+ if (!strncmp(u->ut_user, user, UT_NAMESIZE))
+ showinfo(
+#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ NULL, NULL,
+#endif
+ u, longform, maxcmd, from, userlen,
+ fromlen, ip_addresses, pids);
+ }
+ } else {
+ for (;;) {
+#ifdef HAVE_UTMPX_H
+ u = getutxent();
+#else
+ u = getutent();
+#endif
+ if (!u)
+ break;
+ if (u->ut_type != USER_PROCESS)
+ continue;
+ if (*u->ut_user)
+ showinfo(
+#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ NULL, NULL,
+#endif
+ u, longform, maxcmd, from, userlen,
+ fromlen, ip_addresses, pids);
+ }
+ }
+#ifdef HAVE_UTMPX_H
+ endutxent();
+#else
+ endutent();
+#endif
+#if (defined(WITH_SYSTEMD) || defined(WITH_ELOGIND)) && defined(HAVE_SD_SESSION_GET_LEADER)
+ }
+#endif
+
+ return EXIT_SUCCESS;
+}
diff --git a/src/watch.c b/src/watch.c
new file mode 100644
index 0000000..5c159a9
--- /dev/null
+++ b/src/watch.c
@@ -0,0 +1,1045 @@
+/*
+ * watch - execute a program repeatedly, displaying output fullscreen
+ *
+ * Copyright © 2010-2023 Jim Warner <james.warner@comcast.net>
+ * Copyright © 2015-2023 Craig Small <csmall@dropbear.xyz>
+ * Copyright © 2011-2012 Sami Kerola <kerolasa@iki.fi>
+ * Copyright © 2002-2007 Albert Cahalan
+ * Copyright © 1999 Mike Coleman <mkc@acm.org>.
+ *
+ * Based on the original 1991 'watch' by Tony Rems <rembo@unisoft.com>
+ * (with mods and corrections by Francois Pinard).
+ *
+ * stderr handling, exec, and beep option added by Morty Abzug, 2008
+ * Unicode Support added by Jarrod Lowe <procps@rrod.net> in 2009.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#include "c.h"
+#include "config.h"
+#include "fileutils.h"
+#include "nls.h"
+#include "strutils.h"
+#include "xalloc.h"
+#include <ctype.h>
+#include <errno.h>
+#include <getopt.h>
+#include <locale.h>
+#include <limits.h>
+#include <signal.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <sys/ioctl.h>
+#include <sys/time.h>
+#include <sys/wait.h>
+#include <termios.h>
+#include <time.h>
+#include <unistd.h>
+#ifdef WITH_WATCH8BIT
+# define _XOPEN_SOURCE_EXTENDED 1
+# include <wchar.h>
+# include <wctype.h>
+# include <ncursesw/ncurses.h>
+#else
+# include <ncurses.h>
+#endif /* WITH_WATCH8BIT */
+
+#ifdef FORCE_8BIT
+# undef isprint
+# define isprint(x) ( (x>=' '&&x<='~') || (x>=0xa0) )
+#endif
+
+/* Boolean command line options */
+static int flags;
+#define WATCH_DIFF (1 << 1)
+#define WATCH_CUMUL (1 << 2)
+#define WATCH_EXEC (1 << 3)
+#define WATCH_BEEP (1 << 4)
+#define WATCH_COLOR (1 << 5)
+#define WATCH_ERREXIT (1 << 6)
+#define WATCH_CHGEXIT (1 << 7)
+#define WATCH_EQUEXIT (1 << 8)
+#define WATCH_NORERUN (1 << 9)
+
+static int curses_started = 0;
+static long height = 24, width = 80;
+static int screen_size_changed = 0;
+static int first_screen = 1;
+static int show_title = 2; /* number of lines used, 2 or 0 */
+static int precise_timekeeping = 0;
+static int line_wrap = 1;
+
+#define min(x,y) ((x) > (y) ? (y) : (x))
+#define MAX_ANSIBUF 100
+
+static void __attribute__ ((__noreturn__))
+ usage(FILE * out)
+{
+ fputs(USAGE_HEADER, out);
+ fprintf(out,
+ _(" %s [options] command\n"), program_invocation_short_name);
+ fputs(USAGE_OPTIONS, out);
+ fputs(_(" -b, --beep beep if command has a non-zero exit\n"), out);
+ fputs(_(" -c, --color interpret ANSI color and style sequences\n"), out);
+ fputs(_(" -C, --no-color do not interpret ANSI color and style sequences\n"), out);
+ fputs(_(" -d, --differences[=<permanent>]\n"
+ " highlight changes between updates\n"), out);
+ fputs(_(" -e, --errexit exit if command has a non-zero exit\n"), out);
+ fputs(_(" -g, --chgexit exit when output from command changes\n"), out);
+ fputs(_(" -q, --equexit <cycles>\n"
+ " exit when output from command does not change\n"), out);
+ fputs(_(" -n, --interval <secs> seconds to wait between updates\n"), out);
+ fputs(_(" -p, --precise attempt run command in precise intervals\n"), out);
+ fputs(_(" -r, --no-rerun do not rerun program on window resize\n"), out);
+ fputs(_(" -t, --no-title turn off header\n"), out);
+ fputs(_(" -w, --no-wrap turn off line wrapping\n"), out);
+ fputs(_(" -x, --exec pass command to exec instead of \"sh -c\"\n"), out);
+ fputs(USAGE_SEPARATOR, out);
+ fputs(USAGE_HELP, out);
+ fputs(_(" -v, --version output version information and exit\n"), out);
+ fprintf(out, USAGE_MAN_TAIL("watch(1)"));
+
+ exit(out == stderr ? EXIT_FAILURE : EXIT_SUCCESS);
+}
+
+static int nr_of_colors;
+static int attributes;
+static int fg_col;
+static int bg_col;
+static int more_colors;
+
+
+static void reset_ansi(void)
+{
+ attributes = A_NORMAL;
+ fg_col = 0;
+ bg_col = 0;
+}
+
+static void init_ansi_colors(void)
+{
+ short ncurses_colors[] = {
+ -1, COLOR_BLACK, COLOR_RED, COLOR_GREEN, COLOR_YELLOW,
+ COLOR_BLUE, COLOR_MAGENTA, COLOR_CYAN, COLOR_WHITE
+ };
+ nr_of_colors = sizeof(ncurses_colors) / sizeof(short);
+
+ more_colors = (COLORS >= 16) && (COLOR_PAIRS >= 16 * 16);
+
+ // Initialize ncurses colors. -1 is terminal default
+ // 0-7 are auto created standard colors initialized by ncurses
+ if (more_colors) {
+ // Initialize using ANSI SGR 8-bit specified colors
+ // 8-15 are bright colors
+ init_color(8, 333, 333, 333); // Bright black
+ init_color(9, 1000, 333, 333); // Bright red
+ init_color(10, 333, 1000, 333); // Bright green
+ init_color(11, 1000, 1000, 333); // Bright yellow
+ init_color(12, 333, 333, 1000); // Bright blue
+ init_color(13, 1000, 333, 1000); // Bright magenta
+ init_color(14, 333, 1000, 1000); // Bright cyan
+ // Often ncurses is built with only 256 colors, so lets
+ // stop here - so we can support the -1 terminal default
+ //init_color(15, 1000, 1000, 1000); // Bright white
+ nr_of_colors += 7;
+ }
+
+ // Initialize all color pairs with ncurses
+ for (bg_col = 0; bg_col < nr_of_colors; bg_col++)
+ for (fg_col = 0; fg_col < nr_of_colors; fg_col++)
+ init_pair(bg_col * nr_of_colors + fg_col + 1, fg_col - 1, bg_col - 1);
+
+ reset_ansi();
+}
+
+
+static int process_ansi_color_escape_sequence(char** escape_sequence) {
+ // process SGR ANSI color escape sequence
+ // Eg 8-bit
+ // 38;5;⟨n⟩ (set fg color to n)
+ // 48;5;⟨n⟩ (set bg color to n)
+ //
+ // Eg 24-bit (not yet implemented)
+ // ESC[ 38;2;⟨r⟩;⟨g⟩;⟨b⟩ m Select RGB foreground color
+ // ESC[ 48;2;⟨r⟩;⟨g⟩;⟨b⟩ m Select RGB background color
+ int num;
+
+ if (!escape_sequence)
+ return 0; /* avoid NULLPTR dereference, return "not understood" */
+
+ if ((*escape_sequence)[0] != ';')
+ return 0; /* not understood */
+
+ if ((*escape_sequence)[1] == '5') {
+ // 8 bit! ANSI specifies a predefined set of 256 colors here.
+ if ((*escape_sequence)[2] != ';')
+ return 0; /* not understood */
+ num = strtol((*escape_sequence) + 3, escape_sequence, 10);
+ if (num >= 0 && num <= 7) {
+ // 0-7 are standard colors same as SGR 30-37
+ return num + 1;
+ }
+ if (num >= 8 && num <= 15) {
+ // 8-15 are standard colors same as SGR 90-97
+ return more_colors ? num + 1 : num - 8 + 1;
+ }
+
+ // Remainder aren't yet implemented
+ // 16-231: 6 × 6 × 6 cube (216 colors): 16 + 36 × r + 6 × g + b (0 ≤ r, g, b ≤ 5)
+ // 232-255: grayscale from black to white in 24 steps
+ }
+
+ return 0; /* not understood */
+}
+
+
+static int set_ansi_attribute(const int attrib, char** escape_sequence)
+{
+ switch (attrib) {
+ case -1: /* restore last settings */
+ break;
+ case 0: /* restore default settings */
+ reset_ansi();
+ break;
+ case 1: /* set bold / increased intensity */
+ attributes |= A_BOLD;
+ break;
+ case 2: /* set decreased intensity (if supported) */
+ attributes |= A_DIM;
+ break;
+#ifdef A_ITALIC
+ case 3: /* set italic (if supported) */
+ attributes |= A_ITALIC;
+ break;
+#endif
+ case 4: /* set underline */
+ attributes |= A_UNDERLINE;
+ break;
+ case 5: /* set blinking */
+ attributes |= A_BLINK;
+ break;
+ case 7: /* set inversed */
+ attributes |= A_REVERSE;
+ break;
+ case 21: /* unset bold / increased intensity */
+ attributes &= ~A_BOLD;
+ break;
+ case 22: /* unset bold / any intensity modifier */
+ attributes &= ~(A_BOLD | A_DIM);
+ break;
+#ifdef A_ITALIC
+ case 23: /* unset italic */
+ attributes &= ~A_ITALIC;
+ break;
+#endif
+ case 24: /* unset underline */
+ attributes &= ~A_UNDERLINE;
+ break;
+ case 25: /* unset blinking */
+ attributes &= ~A_BLINK;
+ break;
+ case 27: /* unset inversed */
+ attributes &= ~A_REVERSE;
+ break;
+ case 38:
+ fg_col = process_ansi_color_escape_sequence(escape_sequence);
+ if (fg_col == 0) {
+ return 0; /* not understood */
+ }
+ break;
+ case 39:
+ fg_col = 0;
+ break;
+ case 48:
+ bg_col = process_ansi_color_escape_sequence(escape_sequence);
+ if (bg_col == 0) {
+ return 0; /* not understood */
+ }
+ break;
+ case 49:
+ bg_col = 0;
+ break;
+ default:
+ if (attrib >= 30 && attrib <= 37) { /* set foreground color */
+ fg_col = attrib - 30 + 1;
+ } else if (attrib >= 40 && attrib <= 47) { /* set background color */
+ bg_col = attrib - 40 + 1;
+ } else if (attrib >= 90 && attrib <= 97) { /* set bright fg color */
+ fg_col = more_colors ? attrib - 90 + 9 : attrib - 90 + 1;
+ } else if (attrib >= 100 && attrib <= 107) { /* set bright bg color */
+ bg_col = more_colors ? attrib - 100 + 9 : attrib - 100 + 1;
+ } else {
+ return 0; /* Not understood */
+ }
+ }
+ attr_set(attributes, bg_col * nr_of_colors + fg_col + 1, NULL);
+ return 1;
+}
+
+static void process_ansi(FILE * fp)
+{
+ int i, c;
+ char buf[MAX_ANSIBUF];
+ char *numstart, *endptr = buf;
+ int ansi_attribute;
+
+ c = getc(fp);
+
+ if (c == '(') {
+ c = getc(fp);
+ c = getc(fp);
+ }
+ if (c != '[') {
+ ungetc(c, fp);
+ return;
+ }
+ for (i = 0; i < MAX_ANSIBUF; i++) {
+ c = getc(fp);
+ /* COLOUR SEQUENCE ENDS in 'm' */
+ if (c == 'm') {
+ buf[i] = '\0';
+ break;
+ }
+ if ((c < '0' || c > '9') && c != ';') {
+ return;
+ }
+ buf[i] = (char)c;
+ }
+ /*
+ * buf now contains a semicolon-separated list of decimal integers,
+ * each indicating an attribute to apply.
+ * For example, buf might contain "0;1;31", derived from the color
+ * escape sequence "<ESC>[0;1;31m". There can be 1 or more
+ * attributes to apply, but typically there are between 1 and 3.
+ */
+
+ /* Special case of <ESC>[m */
+ if (buf[0] == '\0')
+ set_ansi_attribute(0, NULL);
+
+ for (endptr = numstart = buf; *endptr != '\0'; numstart = endptr + 1) {
+ ansi_attribute = strtol(numstart, &endptr, 10);
+ if (!set_ansi_attribute(ansi_attribute, &endptr))
+ break;
+ if (numstart == endptr)
+ set_ansi_attribute(0, NULL); /* [m treated as [0m */
+ }
+}
+
+static void __attribute__ ((__noreturn__)) do_exit(int status)
+{
+ if (curses_started)
+ endwin();
+ exit(status);
+}
+
+/* signal handler */
+static void die(int notused __attribute__ ((__unused__)))
+{
+ do_exit(EXIT_SUCCESS);
+}
+
+static void winch_handler(int notused __attribute__ ((__unused__)))
+{
+ screen_size_changed = 1;
+}
+
+static char env_col_buf[24];
+static char env_row_buf[24];
+static int incoming_cols;
+static int incoming_rows;
+
+static void get_terminal_size(void)
+{
+ struct winsize w;
+ if (!incoming_cols) {
+ /* have we checked COLUMNS? */
+ const char *s = getenv("COLUMNS");
+ incoming_cols = -1;
+ if (s && *s) {
+ long t;
+ char *endptr;
+ t = strtol(s, &endptr, 0);
+ if (!*endptr && 0 < t)
+ incoming_cols = t;
+ width = incoming_cols;
+ snprintf(env_col_buf, sizeof env_col_buf, "COLUMNS=%ld",
+ width);
+ putenv(env_col_buf);
+ }
+ }
+ if (!incoming_rows) {
+ /* have we checked LINES? */
+ const char *s = getenv("LINES");
+ incoming_rows = -1;
+ if (s && *s) {
+ long t;
+ char *endptr;
+ t = strtol(s, &endptr, 0);
+ if (!*endptr && 0 < t)
+ incoming_rows = t;
+ height = incoming_rows;
+ snprintf(env_row_buf, sizeof env_row_buf, "LINES=%ld",
+ height);
+ putenv(env_row_buf);
+ }
+ }
+ if (ioctl(STDERR_FILENO, TIOCGWINSZ, &w) == 0) {
+ if (incoming_cols < 0 || incoming_rows < 0) {
+ if (incoming_rows < 0 && w.ws_row > 0) {
+ height = w.ws_row;
+ snprintf(env_row_buf, sizeof env_row_buf,
+ "LINES=%ld", height);
+ putenv(env_row_buf);
+ }
+ if (incoming_cols < 0 && w.ws_col > 0) {
+ width = w.ws_col;
+ snprintf(env_col_buf, sizeof env_col_buf,
+ "COLUMNS=%ld", width);
+ putenv(env_col_buf);
+ }
+ }
+ }
+}
+
+/* get current time in usec */
+typedef unsigned long long watch_usec_t;
+#define USECS_PER_SEC (1000000ull)
+static watch_usec_t get_time_usec()
+{
+ struct timeval now;
+ gettimeofday(&now, NULL);
+ return USECS_PER_SEC * now.tv_sec + now.tv_usec;
+}
+
+#ifdef WITH_WATCH8BIT
+/* read a wide character from a popen'd stream */
+#define MAX_ENC_BYTES 16
+wint_t my_getwc(FILE * s);
+wint_t my_getwc(FILE * s)
+{
+ /* assuming no encoding ever consumes more than 16 bytes */
+ char i[MAX_ENC_BYTES];
+ int byte = 0;
+ int convert;
+ wchar_t rval;
+ while (1) {
+ i[byte] = getc(s);
+ if (i[byte] == EOF) {
+ return WEOF;
+ }
+ byte++;
+ errno = 0;
+ mbtowc(NULL, NULL, 0);
+ convert = mbtowc(&rval, i, byte);
+ if (convert > 0) {
+ /* legal conversion */
+ return rval;
+ }
+ if (byte == MAX_ENC_BYTES) {
+ while (byte > 1) {
+ /* at least *try* to fix up */
+ ungetc(i[--byte], s);
+ }
+ errno = -EILSEQ;
+ return WEOF;
+ }
+ }
+}
+#endif /* WITH_WATCH8BIT */
+
+#ifdef WITH_WATCH8BIT
+static void output_header(wchar_t *restrict wcommand, int wcommand_characters, double interval)
+#else
+static void output_header(char *restrict command, double interval)
+#endif /* WITH_WATCH8BIT */
+{
+ time_t t = time(NULL);
+ char *ts = ctime(&t);
+ char *header;
+ char *right_header;
+ int max_host_name_len = (int) sysconf(_SC_HOST_NAME_MAX);
+ char hostname[max_host_name_len + 1];
+ int command_columns = 0; /* not including final \0 */
+
+ gethostname(hostname, sizeof(hostname));
+
+ /*
+ * left justify interval and command, right justify hostname and time,
+ * clipping all to fit window width
+ */
+ int hlen = asprintf(&header, _("Every %.1fs: "), interval);
+ int rhlen = asprintf(&right_header, _("%s: %s"), hostname, ts);
+
+ /*
+ * the rules:
+ * width < rhlen : print nothing
+ * width < rhlen + hlen + 1: print hostname, ts
+ * width = rhlen + hlen + 1: print header, hostname, ts
+ * width < rhlen + hlen + 4: print header, ..., hostname, ts
+ * width < rhlen + hlen + wcommand_columns: print header,
+ * truncated wcommand, ..., hostname, ts
+ * width > "": print header, wcomand, hostname, ts
+ * this is slightly different from how it used to be
+ */
+ if (width < rhlen) {
+ free(header);
+ free(right_header);
+ return;
+ }
+ if (rhlen + hlen + 1 <= width) {
+ mvaddstr(0, 0, header);
+ if (rhlen + hlen + 2 <= width) {
+ if (width < rhlen + hlen + 4) {
+ mvaddstr(0, width - rhlen - 4, "... ");
+ } else {
+#ifdef WITH_WATCH8BIT
+ command_columns = wcswidth(wcommand, -1);
+ if (width < rhlen + hlen + command_columns) {
+ /* print truncated */
+ int available = width - rhlen - hlen;
+ int in_use = command_columns;
+ int wcomm_len = wcommand_characters;
+ while (available - 4 < in_use) {
+ wcomm_len--;
+ in_use = wcswidth(wcommand, wcomm_len);
+ }
+ mvaddnwstr(0, hlen, wcommand, wcomm_len);
+ mvaddstr(0, width - rhlen - 4, "... ");
+ } else {
+ mvaddwstr(0, hlen, wcommand);
+ }
+#else
+ command_columns = strlen(command);
+ if (width < rhlen + hlen + command_columns) {
+ /* print truncated */
+ mvaddnstr(0, hlen, command, width - rhlen - hlen - 4);
+ mvaddstr(0, width - rhlen - 4, "... ");
+ } else {
+ mvaddnstr(0, hlen, command, width - rhlen - hlen);
+ }
+#endif /* WITH_WATCH8BIT */
+ }
+ }
+ }
+ mvaddstr(0, width - rhlen + 1, right_header);
+ free(header);
+ free(right_header);
+ return;
+}
+
+static void find_eol(FILE *p)
+{
+ int c;
+#ifdef WITH_WATCH8BIT
+ do {
+ c = my_getwc(p);
+ } while (c != WEOF
+ && c!= L'\n');
+#else
+ do {
+ c = getc(p);
+ } while (c != EOF
+ && c != '\n');
+#endif /* WITH_WATCH8BIT */
+}
+
+static int run_command(char *restrict command, char **restrict command_argv)
+{
+ FILE *p;
+ int x, y;
+ int oldeolseen = 1;
+ int pipefd[2];
+ pid_t child;
+ int exit_early = 0;
+ int buffer_size = 0;
+ int unchanged_buffer = 0;
+ int status;
+
+ /* allocate pipes */
+ if (pipe(pipefd) < 0)
+ xerr(7, _("unable to create IPC pipes"));
+
+ /* flush stdout and stderr, since we're about to do fd stuff */
+ fflush(stdout);
+ fflush(stderr);
+
+ /* fork to prepare to run command */
+ child = fork();
+
+ if (child < 0) { /* fork error */
+ xerr(2, _("unable to fork process"));
+ } else if (child == 0) { /* in child */
+ close(pipefd[0]); /* child doesn't need read side of pipe */
+ close(1); /* prepare to replace stdout with pipe */
+ if (dup2(pipefd[1], 1) < 0) { /* replace stdout with write side of pipe */
+ xerr(3, _("dup2 failed"));
+ }
+ close(pipefd[1]); /* once duped, the write fd isn't needed */
+ dup2(1, 2); /* stderr should default to stdout */
+
+ if (flags & WATCH_EXEC) { /* pass command to exec instead of system */
+ if (execvp(command_argv[0], command_argv) == -1) {
+ xerr(4, _("unable to execute '%s'"),
+ command_argv[0]);
+ }
+ } else {
+ status = system(command); /* watch manpage promises sh quoting */
+ /* propagate command exit status as child exit status */
+ if (!WIFEXITED(status)) { /* child exits nonzero if command does */
+ exit(EXIT_FAILURE);
+ } else {
+ exit(WEXITSTATUS(status));
+ }
+ }
+ }
+
+ /* otherwise, we're in parent */
+ close(pipefd[1]); /* close write side of pipe */
+ if ((p = fdopen(pipefd[0], "r")) == NULL)
+ xerr(5, _("fdopen"));
+
+ reset_ansi();
+ for (y = show_title; y < height; y++) {
+ int eolseen = 0, tabpending = 0, tabwaspending = 0;
+ if (flags & WATCH_COLOR)
+ set_ansi_attribute(-1, NULL);
+#ifdef WITH_WATCH8BIT
+ wint_t carry = WEOF;
+#endif
+ for (x = 0; x < width; x++) {
+#ifdef WITH_WATCH8BIT
+ wint_t c = ' ';
+#else
+ int c = ' ';
+#endif
+ int attr = 0;
+
+ if (tabwaspending && (flags & WATCH_COLOR))
+ set_ansi_attribute(-1, NULL);
+ tabwaspending = 0;
+
+ if (!eolseen) {
+ /* if there is a tab pending, just
+ * spit spaces until the next stop
+ * instead of reading characters */
+ if (!tabpending)
+#ifdef WITH_WATCH8BIT
+ do {
+ if (carry == WEOF) {
+ c = my_getwc(p);
+ } else {
+ c = carry;
+ carry = WEOF;
+ }
+ } while (c != WEOF && !iswprint(c)
+ && c < 128
+ && wcwidth(c) == 0
+ && c != L'\a'
+ && c != L'\n'
+ && c != L'\t'
+ && (c != L'\033'
+ || !(flags & WATCH_COLOR)));
+#else
+ do
+ c = getc(p);
+ while (c != EOF && !isprint(c)
+ && c != '\a'
+ && c != '\n'
+ && c != '\t'
+ && (c != L'\033'
+ || !(flags & WATCH_COLOR)));
+#endif
+ if (c == L'\033' && (flags & WATCH_COLOR)) {
+ x--;
+ process_ansi(p);
+ continue;
+ }
+ if (c == L'\n')
+ if (!oldeolseen && x == 0) {
+ x = -1;
+ continue;
+ } else
+ eolseen = 1;
+ else if (c == L'\t')
+ tabpending = 1;
+ else if (c == L'\a') {
+ beep();
+ continue;
+ }
+#ifdef WITH_WATCH8BIT
+ if (x == width - 1 && wcwidth(c) == 2) {
+ y++;
+ x = -1; /* process this double-width */
+ carry = c; /* character on the next line */
+ continue; /* because it won't fit here */
+ }
+ if (c == WEOF || c == L'\n' || c == L'\t') {
+ c = L' ';
+ if (flags & WATCH_COLOR)
+ attrset(A_NORMAL);
+ }
+#else
+ if (c == EOF || c == '\n' || c == '\t') {
+ c = ' ';
+ if (flags & WATCH_COLOR)
+ attrset(A_NORMAL);
+ }
+#endif
+ if (tabpending && (((x + 1) % 8) == 0)) {
+ tabpending = 0;
+ tabwaspending = 1;
+ }
+ }
+ move(y, x);
+
+ if (!first_screen && !exit_early && (flags & WATCH_CHGEXIT)) {
+#ifdef WITH_WATCH8BIT
+ cchar_t oldc;
+ in_wch(&oldc);
+ exit_early = (wchar_t) c != oldc.chars[0];
+#else
+ chtype oldch = inch();
+ unsigned char oldc = oldch & A_CHARTEXT;
+ exit_early = (unsigned char)c != oldc;
+#endif
+ }
+ if (!first_screen && !exit_early && (flags & WATCH_EQUEXIT)) {
+ buffer_size++;
+#ifdef WITH_WATCH8BIT
+ cchar_t oldc;
+ in_wch(&oldc);
+ if ((wchar_t) c == oldc.chars[0])
+ unchanged_buffer++;
+#else
+ chtype oldch = inch();
+ unsigned char oldc = oldch & A_CHARTEXT;
+ if ((unsigned char)c == oldc)
+ unchanged_buffer++;
+#endif
+ }
+ if (flags & WATCH_DIFF) {
+#ifdef WITH_WATCH8BIT
+ cchar_t oldc;
+ in_wch(&oldc);
+ attr = !first_screen
+ && ((wchar_t) c != oldc.chars[0]
+ ||
+ ((flags & WATCH_CUMUL)
+ && (oldc.attr & A_ATTRIBUTES)));
+#else
+ chtype oldch = inch();
+ unsigned char oldc = oldch & A_CHARTEXT;
+ attr = !first_screen
+ && ((unsigned char)c != oldc
+ ||
+ ((flags & WATCH_CUMUL)
+ && (oldch & A_ATTRIBUTES)));
+#endif
+ }
+ if (attr)
+ standout();
+#ifdef WITH_WATCH8BIT
+ addnwstr((wchar_t *) & c, 1);
+#else
+ addch(c);
+#endif
+ if (attr)
+ standend();
+#ifdef WITH_WATCH8BIT
+ if (wcwidth(c) == 0) {
+ x--;
+ }
+ if (wcwidth(c) == 2) {
+ x++;
+ }
+#endif
+ }
+ oldeolseen = eolseen;
+ if (!line_wrap) {
+ reset_ansi();
+ if (flags & WATCH_COLOR)
+ attrset(A_NORMAL);
+ }
+ if (!line_wrap && !eolseen)
+ {
+ find_eol(p);
+ }
+ }
+
+ fclose(p);
+
+ /* harvest child process and get status, propagated from command */
+ if (waitpid(child, &status, 0) < 0)
+ xerr(8, _("waitpid"));
+
+ /* if child process exited in error, beep if option_beep is set */
+ if ((!WIFEXITED(status) || WEXITSTATUS(status))) {
+ if (flags & WATCH_BEEP)
+ beep();
+ if (flags & WATCH_ERREXIT) {
+ mvaddstr(height - 1, 0,
+ _("command exit with a non-zero status, press a key to exit"));
+ refresh();
+ fgetc(stdin);
+ endwin();
+ exit(8);
+ }
+ }
+
+ if (unchanged_buffer == buffer_size && (flags & WATCH_EQUEXIT))
+ exit_early = 1;
+
+ first_screen = 0;
+ refresh();
+ return exit_early;
+}
+
+int main(int argc, char *argv[])
+{
+ int optc;
+ double interval = 2;
+ int max_cycles = 1;
+ int cycle_count = 0;
+ char *interval_string;
+ char *command;
+ char **command_argv;
+ int command_length = 0; /* not including final \0 */
+ watch_usec_t last_run = 0;
+ watch_usec_t next_loop = 0; /* next loop time in us, used for precise time
+ * keeping only */
+#ifdef WITH_WATCH8BIT
+ wchar_t *wcommand = NULL;
+ int wcommand_characters = 0; /* not including final \0 */
+#endif /* WITH_WATCH8BIT */
+
+#ifdef WITH_COLORWATCH
+ flags |= WATCH_COLOR;
+#endif /* WITH_COLORWATCH */
+
+ static struct option longopts[] = {
+ {"color", no_argument, 0, 'c'},
+ {"no-color", no_argument, 0, 'C'},
+ {"differences", optional_argument, 0, 'd'},
+ {"help", no_argument, 0, 'h'},
+ {"interval", required_argument, 0, 'n'},
+ {"beep", no_argument, 0, 'b'},
+ {"errexit", no_argument, 0, 'e'},
+ {"chgexit", no_argument, 0, 'g'},
+ {"equexit", required_argument, 0, 'q'},
+ {"exec", no_argument, 0, 'x'},
+ {"precise", no_argument, 0, 'p'},
+ {"no-rerun", no_argument, 0, 'r'},
+ {"no-title", no_argument, 0, 't'},
+ {"no-wrap", no_argument, 0, 'w'},
+ {"version", no_argument, 0, 'v'},
+ {0, 0, 0, 0}
+ };
+
+#ifdef HAVE_PROGRAM_INVOCATION_NAME
+ program_invocation_name = program_invocation_short_name;
+#endif
+ setlocale(LC_ALL, "");
+ bindtextdomain(PACKAGE, LOCALEDIR);
+ textdomain(PACKAGE);
+ atexit(close_stdout);
+
+ interval_string = getenv("WATCH_INTERVAL");
+ if(interval_string != NULL)
+ interval = strtod_nol_or_err(interval_string, _("Could not parse interval from WATCH_INTERVAL"));
+
+ while ((optc =
+ getopt_long(argc, argv, "+bCced::ghq:n:prtwvx", longopts, (int *)0))
+ != EOF) {
+ switch (optc) {
+ case 'b':
+ flags |= WATCH_BEEP;
+ break;
+ case 'c':
+ flags |= WATCH_COLOR;
+ break;
+ case 'C':
+ flags &= ~WATCH_COLOR;
+ break;
+ case 'd':
+ flags |= WATCH_DIFF;
+ if (optarg)
+ flags |= WATCH_CUMUL;
+ break;
+ case 'e':
+ flags |= WATCH_ERREXIT;
+ break;
+ case 'g':
+ flags |= WATCH_CHGEXIT;
+ break;
+ case 'q':
+ flags |= WATCH_EQUEXIT;
+ max_cycles = strtod_nol_or_err(optarg, _("failed to parse argument"));
+ break;
+ case 'r':
+ flags |= WATCH_NORERUN;
+ break;
+ case 't':
+ show_title = 0;
+ break;
+ case 'w':
+ line_wrap = 0;
+ break;
+ case 'x':
+ flags |= WATCH_EXEC;
+ break;
+ case 'n':
+ interval = strtod_nol_or_err(optarg, _("failed to parse argument"));
+ break;
+ case 'p':
+ precise_timekeeping = 1;
+ break;
+ case 'h':
+ usage(stdout);
+ break;
+ case 'v':
+ printf(PROCPS_NG_VERSION);
+ return EXIT_SUCCESS;
+ default:
+ usage(stderr);
+ break;
+ }
+ }
+
+ if (interval < 0.1)
+ interval = 0.1;
+ if (interval > UINT_MAX)
+ interval = UINT_MAX;
+
+ if (optind >= argc)
+ usage(stderr);
+
+ /* save for later */
+ command_argv = &(argv[optind]);
+
+ command = xstrdup(argv[optind++]);
+ command_length = strlen(command);
+ for (; optind < argc; optind++) {
+ char *endp;
+ int s = strlen(argv[optind]);
+ /* space and \0 */
+ command = xrealloc(command, command_length + s + 2);
+ endp = command + command_length;
+ *endp = ' ';
+ memcpy(endp + 1, argv[optind], s);
+ /* space then string length */
+ command_length += 1 + s;
+ command[command_length] = '\0';
+ }
+
+#ifdef WITH_WATCH8BIT
+ /* convert to wide for printing purposes */
+ /*mbstowcs(NULL, NULL, 0); */
+ wcommand_characters = mbstowcs(NULL, command, 0);
+ if (wcommand_characters < 0) {
+ fprintf(stderr, _("unicode handling error\n"));
+ exit(EXIT_FAILURE);
+ }
+ wcommand =
+ (wchar_t *) malloc((wcommand_characters + 1) * sizeof(wcommand));
+ if (wcommand == NULL) {
+ fprintf(stderr, _("unicode handling error (malloc)\n"));
+ exit(EXIT_FAILURE);
+ }
+ mbstowcs(wcommand, command, wcommand_characters + 1);
+#endif /* WITH_WATCH8BIT */
+
+ get_terminal_size();
+
+ /* Catch keyboard interrupts so we can put tty back in a sane
+ * state. */
+ signal(SIGINT, die);
+ signal(SIGTERM, die);
+ signal(SIGHUP, die);
+ signal(SIGWINCH, winch_handler);
+
+ /* Set up tty for curses use. */
+ curses_started = 1;
+ initscr();
+ if (flags & WATCH_COLOR) {
+ if (has_colors()) {
+ start_color();
+ use_default_colors();
+ init_ansi_colors();
+ } else {
+ flags &= ~WATCH_COLOR;
+ }
+ }
+ nonl();
+ noecho();
+ cbreak();
+
+ if (precise_timekeeping)
+ next_loop = get_time_usec();
+
+ while (1) {
+ if (screen_size_changed) {
+ get_terminal_size();
+ resizeterm(height, width);
+ clear();
+ /* redrawwin(stdscr); */
+ screen_size_changed = 0;
+ first_screen = 1;
+ }
+
+ if (show_title)
+#ifdef WITH_WATCH8BIT
+ output_header(wcommand, wcommand_characters, interval);
+#else
+ output_header(command, interval);
+#endif /* WITH_WATCH8BIT */
+
+ if (!(flags & WATCH_NORERUN) ||
+ get_time_usec() - last_run > interval * USECS_PER_SEC) {
+ last_run = get_time_usec();
+ int exit = run_command(command, command_argv);
+
+ if (flags & WATCH_EQUEXIT) {
+ if (cycle_count == max_cycles && exit) {
+ break;
+ } else if (exit) {
+ cycle_count++;
+ } else {
+ cycle_count = 0;
+ }
+ } else if (exit) {
+ break;
+ }
+ } else {
+ refresh();
+ }
+
+ if (precise_timekeeping) {
+ watch_usec_t cur_time = get_time_usec();
+ next_loop += USECS_PER_SEC * interval;
+ if (cur_time < next_loop)
+ usleep(next_loop - cur_time);
+ } else
+ if (interval < UINT_MAX / USECS_PER_SEC)
+ usleep(interval * USECS_PER_SEC);
+ else
+ sleep(interval);
+ }
+
+ endwin();
+ return EXIT_SUCCESS;
+}
diff --git a/sysctl.conf b/sysctl.conf
new file mode 100644
index 0000000..e846a57
--- /dev/null
+++ b/sysctl.conf
@@ -0,0 +1,64 @@
+# /etc/sysctl.conf - Configuration file for setting system variables
+# See sysctl.conf (5) for information.
+
+# you can have the CD-ROM close when you use it, and open
+# when you are done.
+#dev.cdrom.autoeject = 1
+#dev.cdrom.autoclose = 1
+
+# protection from the SYN flood attack
+net/ipv4/tcp_syncookies=1
+
+# see the evil packets in your log files
+net/ipv4/conf/all/log_martians=1
+
+# makes you vulnerable or not :-)
+net/ipv4/conf/all/accept_redirects=0
+net/ipv4/conf/all/accept_source_route=0
+net/ipv4/icmp_echo_ignore_broadcasts =1
+
+# needed for routing, including masquerading or NAT
+#net/ipv4/ip_forward=1
+
+# sets the port range used for outgoing connections
+#net.ipv4.ip_local_port_range = 32768 61000
+
+# Broken routers and obsolete firewalls will corrupt the window scaling
+# and ECN. Set these values to 0 to disable window scaling and ECN.
+# This may, rarely, cause some performance loss when running high-speed
+# TCP/IP over huge distances or running TCP/IP over connections with high
+# packet loss and modern routers. This sure beats dropped connections.
+#net.ipv4.tcp_ecn = 0
+
+# Swapping too much or not enough? Disks spinning up when you'd
+# rather they didn't? Tweak these.
+#vm.vfs_cache_pressure = 100
+#vm.laptop_mode = 0
+#vm.swappiness = 60
+
+#kernel.printk_ratelimit_burst = 10
+#kernel.printk_ratelimit = 5
+#kernel.panic_on_oops = 0
+
+# Reboot 600 seconds after a panic
+#kernel.panic = 600
+
+# enable SysRq key (note: console security issues)
+#kernel.sysrq = 1
+
+# Change name of core file to start with the command name
+# so you get things like: emacs.core mozilla-bin.core X.core
+#kernel.core_pattern = %e.core
+
+# NIS/YP domain (not always equal to DNS domain)
+#kernel.domainname = example.com
+#kernel.hostname = darkstar
+
+# This limits PID values to 4 digits, which allows tools like ps
+# to save screen space.
+kernel/pid_max=10000
+
+# Protects against creating or following links under certain conditions
+# See https://www.kernel.org/doc/Documentation/sysctl/fs.txt
+#fs.protected_hardlinks = 1
+#fs.protected_symlinks = 1
diff --git a/test-driver b/test-driver
new file mode 100755
index 0000000..be73b80
--- /dev/null
+++ b/test-driver
@@ -0,0 +1,153 @@
+#! /bin/sh
+# test-driver - basic testsuite driver script.
+
+scriptversion=2018-03-07.03; # UTC
+
+# Copyright (C) 2011-2021 Free Software Foundation, Inc.
+#
+# 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 2, 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
+# along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# This file is maintained in Automake, please report
+# bugs to <bug-automake@gnu.org> or send patches to
+# <automake-patches@gnu.org>.
+
+# Make unconditional expansion of undefined variables an error. This
+# helps a lot in preventing typo-related bugs.
+set -u
+
+usage_error ()
+{
+ echo "$0: $*" >&2
+ print_usage >&2
+ exit 2
+}
+
+print_usage ()
+{
+ cat <<END
+Usage:
+ test-driver --test-name NAME --log-file PATH --trs-file PATH
+ [--expect-failure {yes|no}] [--color-tests {yes|no}]
+ [--enable-hard-errors {yes|no}] [--]
+ TEST-SCRIPT [TEST-SCRIPT-ARGUMENTS]
+
+The '--test-name', '--log-file' and '--trs-file' options are mandatory.
+See the GNU Automake documentation for information.
+END
+}
+
+test_name= # Used for reporting.
+log_file= # Where to save the output of the test script.
+trs_file= # Where to save the metadata of the test run.
+expect_failure=no
+color_tests=no
+enable_hard_errors=yes
+while test $# -gt 0; do
+ case $1 in
+ --help) print_usage; exit $?;;
+ --version) echo "test-driver $scriptversion"; exit $?;;
+ --test-name) test_name=$2; shift;;
+ --log-file) log_file=$2; shift;;
+ --trs-file) trs_file=$2; shift;;
+ --color-tests) color_tests=$2; shift;;
+ --expect-failure) expect_failure=$2; shift;;
+ --enable-hard-errors) enable_hard_errors=$2; shift;;
+ --) shift; break;;
+ -*) usage_error "invalid option: '$1'";;
+ *) break;;
+ esac
+ shift
+done
+
+missing_opts=
+test x"$test_name" = x && missing_opts="$missing_opts --test-name"
+test x"$log_file" = x && missing_opts="$missing_opts --log-file"
+test x"$trs_file" = x && missing_opts="$missing_opts --trs-file"
+if test x"$missing_opts" != x; then
+ usage_error "the following mandatory options are missing:$missing_opts"
+fi
+
+if test $# -eq 0; then
+ usage_error "missing argument"
+fi
+
+if test $color_tests = yes; then
+ # Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
+ red='' # Red.
+ grn='' # Green.
+ lgn='' # Light green.
+ blu='' # Blue.
+ mgn='' # Magenta.
+ std='' # No color.
+else
+ red= grn= lgn= blu= mgn= std=
+fi
+
+do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
+trap "st=129; $do_exit" 1
+trap "st=130; $do_exit" 2
+trap "st=141; $do_exit" 13
+trap "st=143; $do_exit" 15
+
+# Test script is run here. We create the file first, then append to it,
+# to ameliorate tests themselves also writing to the log file. Our tests
+# don't, but others can (automake bug#35762).
+: >"$log_file"
+"$@" >>"$log_file" 2>&1
+estatus=$?
+
+if test $enable_hard_errors = no && test $estatus -eq 99; then
+ tweaked_estatus=1
+else
+ tweaked_estatus=$estatus
+fi
+
+case $tweaked_estatus:$expect_failure in
+ 0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
+ 0:*) col=$grn res=PASS recheck=no gcopy=no;;
+ 77:*) col=$blu res=SKIP recheck=no gcopy=yes;;
+ 99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;;
+ *:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;;
+ *:*) col=$red res=FAIL recheck=yes gcopy=yes;;
+esac
+
+# Report the test outcome and exit status in the logs, so that one can
+# know whether the test passed or failed simply by looking at the '.log'
+# file, without the need of also peaking into the corresponding '.trs'
+# file (automake bug#11814).
+echo "$res $test_name (exit status: $estatus)" >>"$log_file"
+
+# Report outcome to console.
+echo "${col}${res}${std}: $test_name"
+
+# Register the test result, and other relevant metadata.
+echo ":test-result: $res" > $trs_file
+echo ":global-test-result: $res" >> $trs_file
+echo ":recheck: $recheck" >> $trs_file
+echo ":copy-in-global-log: $gcopy" >> $trs_file
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'before-save-hook 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-time-zone: "UTC0"
+# time-stamp-end: "; # UTC"
+# End:
diff --git a/testsuite/Makefile.am b/testsuite/Makefile.am
new file mode 100644
index 0000000..ec95f5a
--- /dev/null
+++ b/testsuite/Makefile.am
@@ -0,0 +1,63 @@
+AUTOMAKE_OPTIONS = dejagnu
+export DEJAGNU
+
+# Programs that are expected across the board.
+DEJATOOL =
+
+noinst_PROGRAMS = test-schedbatch
+
+test_schedbatch_SOURCES = ps.test/test-schedbatch.c
+
+if LINUX
+# These should be in defined in 'across the board' scope, but are
+# temporarily disabled on other than linux systems, see commit
+# 3d807ae853b8b4264da156065b34f1447658a8ba
+DEJATOOL += \
+ pmap
+if !CYGWIN
+DEJATOOL += \
+ slabtop \
+ sysctl
+endif
+
+if BUILD_KILL
+DEJATOOL += kill
+endif
+
+DEJATOOL += \
+ free \
+ lib \
+ pgrep \
+ pkill \
+ ps \
+ pwdx \
+ slabtop \
+ uptime \
+ vmstat \
+ w
+endif
+
+EXTRA_DIST = \
+ config/unix.exp \
+ free.test/free.exp \
+ kill.test/kill.exp \
+ lib.test/fileutils.exp \
+ lib.test/fileutils_badfd.sh \
+ lib.test/fileutils_full.sh \
+ lib.test/strutils.exp \
+ pgrep.test/pgrep.exp \
+ pkill.test/pkill.exp \
+ pmap.test/pmap.exp \
+ ps.test/ps_output.exp \
+ ps.test/ps_personality.exp \
+ ps.test/ps_sched_batch.exp \
+ pwdx.test/pwdx.exp \
+ slabtop.test/slabtop.exp \
+ uptime.test/uptime.exp \
+ vmstat.test/vmstat.exp \
+ w.test/w.exp
+if !CYGWIN
+EXTRA_DIST += \
+ slabtop.test/slabtop.exp \
+ sysctl.test/sysctl_read.exp
+endif
diff --git a/testsuite/Makefile.in b/testsuite/Makefile.in
new file mode 100644
index 0000000..62ce7dc
--- /dev/null
+++ b/testsuite/Makefile.in
@@ -0,0 +1,733 @@
+# Makefile.in generated by automake 1.16.5 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2021 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+
+VPATH = @srcdir@
+am__is_gnu_make = { \
+ if test -z '$(MAKELEVEL)'; then \
+ false; \
+ elif test -n '$(MAKE_HOST)'; then \
+ true; \
+ elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \
+ true; \
+ else \
+ false; \
+ fi; \
+}
+am__make_running_with_option = \
+ case $${target_option-} in \
+ ?) ;; \
+ *) echo "am__make_running_with_option: internal error: invalid" \
+ "target option '$${target_option-}' specified" >&2; \
+ exit 1;; \
+ esac; \
+ has_opt=no; \
+ sane_makeflags=$$MAKEFLAGS; \
+ if $(am__is_gnu_make); then \
+ sane_makeflags=$$MFLAGS; \
+ else \
+ case $$MAKEFLAGS in \
+ *\\[\ \ ]*) \
+ bs=\\; \
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
+ esac; \
+ fi; \
+ skip_next=no; \
+ strip_trailopt () \
+ { \
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+ }; \
+ for flg in $$sane_makeflags; do \
+ test $$skip_next = yes && { skip_next=no; continue; }; \
+ case $$flg in \
+ *=*|--*) continue;; \
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
+ -*I?*) strip_trailopt 'I';; \
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
+ -*O?*) strip_trailopt 'O';; \
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
+ -*l?*) strip_trailopt 'l';; \
+ -[dEDm]) skip_next=yes;; \
+ -[JT]) skip_next=yes;; \
+ esac; \
+ case $$flg in \
+ *$$target_option*) has_opt=yes; break;; \
+ esac; \
+ done; \
+ test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+noinst_PROGRAMS = test-schedbatch$(EXEEXT)
+
+# These should be in defined in 'across the board' scope, but are
+# temporarily disabled on other than linux systems, see commit
+# 3d807ae853b8b4264da156065b34f1447658a8ba
+@LINUX_TRUE@am__append_1 = \
+@LINUX_TRUE@ pmap
+
+@CYGWIN_FALSE@@LINUX_TRUE@am__append_2 = \
+@CYGWIN_FALSE@@LINUX_TRUE@ slabtop \
+@CYGWIN_FALSE@@LINUX_TRUE@ sysctl
+
+@BUILD_KILL_TRUE@@LINUX_TRUE@am__append_3 = kill
+@LINUX_TRUE@am__append_4 = \
+@LINUX_TRUE@ free \
+@LINUX_TRUE@ lib \
+@LINUX_TRUE@ pgrep \
+@LINUX_TRUE@ pkill \
+@LINUX_TRUE@ ps \
+@LINUX_TRUE@ pwdx \
+@LINUX_TRUE@ slabtop \
+@LINUX_TRUE@ uptime \
+@LINUX_TRUE@ vmstat \
+@LINUX_TRUE@ w
+
+@CYGWIN_FALSE@am__append_5 = \
+@CYGWIN_FALSE@ slabtop.test/slabtop.exp \
+@CYGWIN_FALSE@ sysctl.test/sysctl_read.exp
+
+subdir = testsuite
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/gettext.m4 \
+ $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
+ $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+ $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+ $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+ $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
+ $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+PROGRAMS = $(noinst_PROGRAMS)
+am__dirstamp = $(am__leading_dot)dirstamp
+am_test_schedbatch_OBJECTS = ps.test/test-schedbatch.$(OBJEXT)
+test_schedbatch_OBJECTS = $(am_test_schedbatch_OBJECTS)
+test_schedbatch_LDADD = $(LDADD)
+AM_V_lt = $(am__v_lt_@AM_V@)
+am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
+am__v_lt_0 = --silent
+am__v_lt_1 =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo " GEN " $@;
+am__v_GEN_1 =
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 =
+DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__maybe_remake_depfiles = depfiles
+am__depfiles_remade = ps.test/$(DEPDIR)/test-schedbatch.Po
+am__mv = mv -f
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+AM_V_CC = $(am__v_CC_@AM_V@)
+am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@)
+am__v_CC_0 = @echo " CC " $@;
+am__v_CC_1 =
+CCLD = $(CC)
+LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+AM_V_CCLD = $(am__v_CCLD_@AM_V@)
+am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+am__v_CCLD_0 = @echo " CCLD " $@;
+am__v_CCLD_1 =
+SOURCES = $(test_schedbatch_SOURCES)
+DIST_SOURCES = $(test_schedbatch_SOURCES)
+am__can_run_installinfo = \
+ case $$AM_UPDATE_INFO_DIR in \
+ n|no|NO) false;; \
+ *) (install-info --version) >/dev/null 2>&1;; \
+ esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+# Read a list of newline-separated strings from the standard input,
+# and print each of them once, without duplicates. Input order is
+# *not* preserved.
+am__uniquify_input = $(AWK) '\
+ BEGIN { nonempty = 0; } \
+ { items[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in items) print i; }; } \
+'
+# Make sure the list of sources is unique. This is necessary because,
+# e.g., the same source file might be shared among _SOURCES variables
+# for different programs/libraries.
+am__define_uniq_tagged_files = \
+ list='$(am__tagged_files)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | $(am__uniquify_input)`
+RUNTESTDEFAULTFLAGS = --tool $$tool --srcdir $$srcdir
+EXPECT = expect
+RUNTEST = runtest
+am__DIST_COMMON = $(srcdir)/Makefile.in $(top_srcdir)/depcomp \
+ $(top_srcdir)/mkinstalldirs README
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CSCOPE = @CSCOPE@
+CTAGS = @CTAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = @DEFS@
+DEJAGNU = @DEJAGNU@
+DEPDIR = @DEPDIR@
+DLLTOOL = @DLLTOOL@
+DL_LIB = @DL_LIB@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+ELOGIND_CFLAGS = @ELOGIND_CFLAGS@
+ELOGIND_LIBS = @ELOGIND_LIBS@
+ETAGS = @ETAGS@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+FILECMD = @FILECMD@
+GMSGFMT = @GMSGFMT@
+GREP = @GREP@
+HARDEN_CFLAGS = @HARDEN_CFLAGS@
+HARDEN_LDFLAGS = @HARDEN_LDFLAGS@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MKINSTALLDIRS = @MKINSTALLDIRS@
+MSGFMT = @MSGFMT@
+MSGMERGE = @MSGMERGE@
+NCURSES_CFLAGS = @NCURSES_CFLAGS@
+NCURSES_LIBS = @NCURSES_LIBS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+PO4A = @PO4A@
+POSUB = @POSUB@
+POW_LIB = @POW_LIB@
+RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SYSTEMD_CFLAGS = @SYSTEMD_CFLAGS@
+SYSTEMD_LIBS = @SYSTEMD_LIBS@
+USE_NLS = @USE_NLS@
+USE_PO4A = @USE_PO4A@
+VERSION = @VERSION@
+WITH_COLORWATCH = @WITH_COLORWATCH@
+WITH_WATCH8BIT = @WITH_WATCH8BIT@
+XGETTEXT = @XGETTEXT@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+runstatedir = @runstatedir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+usrbin_execdir = @usrbin_execdir@
+AUTOMAKE_OPTIONS = dejagnu
+
+# Programs that are expected across the board.
+DEJATOOL = $(am__append_1) $(am__append_2) $(am__append_3) \
+ $(am__append_4)
+test_schedbatch_SOURCES = ps.test/test-schedbatch.c
+EXTRA_DIST = config/unix.exp free.test/free.exp kill.test/kill.exp \
+ lib.test/fileutils.exp lib.test/fileutils_badfd.sh \
+ lib.test/fileutils_full.sh lib.test/strutils.exp \
+ pgrep.test/pgrep.exp pkill.test/pkill.exp pmap.test/pmap.exp \
+ ps.test/ps_output.exp ps.test/ps_personality.exp \
+ ps.test/ps_sched_batch.exp pwdx.test/pwdx.exp \
+ slabtop.test/slabtop.exp uptime.test/uptime.exp \
+ vmstat.test/vmstat.exp w.test/w.exp $(am__append_5)
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign testsuite/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --foreign testsuite/Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+clean-noinstPROGRAMS:
+ @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+ echo " rm -f" $$list; \
+ rm -f $$list || exit $$?; \
+ test -n "$(EXEEXT)" || exit 0; \
+ list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+ echo " rm -f" $$list; \
+ rm -f $$list
+ps.test/$(am__dirstamp):
+ @$(MKDIR_P) ps.test
+ @: > ps.test/$(am__dirstamp)
+ps.test/$(DEPDIR)/$(am__dirstamp):
+ @$(MKDIR_P) ps.test/$(DEPDIR)
+ @: > ps.test/$(DEPDIR)/$(am__dirstamp)
+ps.test/test-schedbatch.$(OBJEXT): ps.test/$(am__dirstamp) \
+ ps.test/$(DEPDIR)/$(am__dirstamp)
+
+test-schedbatch$(EXEEXT): $(test_schedbatch_OBJECTS) $(test_schedbatch_DEPENDENCIES) $(EXTRA_test_schedbatch_DEPENDENCIES)
+ @rm -f test-schedbatch$(EXEEXT)
+ $(AM_V_CCLD)$(LINK) $(test_schedbatch_OBJECTS) $(test_schedbatch_LDADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+ -rm -f ps.test/*.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@ps.test/$(DEPDIR)/test-schedbatch.Po@am__quote@ # am--include-marker
+
+$(am__depfiles_remade):
+ @$(MKDIR_P) $(@D)
+ @echo '# dummy' >$@-t && $(am__mv) $@-t $@
+
+am--depfiles: $(am__depfiles_remade)
+
+.c.o:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $<
+
+.c.obj:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
+
+.c.lo:
+@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\
+@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $<
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+
+ID: $(am__tagged_files)
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
+tags: tags-am
+TAGS: tags
+
+tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ set x; \
+ here=`pwd`; \
+ $(am__define_uniq_tagged_files); \
+ shift; \
+ if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ if test $$# -gt 0; then \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ "$$@" $$unique; \
+ else \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$unique; \
+ fi; \
+ fi
+ctags: ctags-am
+
+CTAGS: ctags
+ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
+ $(am__define_uniq_tagged_files); \
+ test -z "$(CTAGS_ARGS)$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
+ $$unique
+
+GTAGS:
+ here=`$(am__cd) $(top_builddir) && pwd` \
+ && $(am__cd) $(top_srcdir) \
+ && gtags -i $(GTAGS_ARGS) "$$here"
+cscopelist: cscopelist-am
+
+cscopelist-am: $(am__tagged_files)
+ list='$(am__tagged_files)'; \
+ case "$(srcdir)" in \
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
+ *) sdir=$(subdir)/$(srcdir) ;; \
+ esac; \
+ for i in $$list; do \
+ if test -f "$$i"; then \
+ echo "$(subdir)/$$i"; \
+ else \
+ echo "$$sdir/$$i"; \
+ fi; \
+ done >> $(top_builddir)/cscope.files
+
+distclean-tags:
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
+
+check-DEJAGNU: site.exp
+ srcdir='$(srcdir)'; export srcdir; \
+ EXPECT=$(EXPECT); export EXPECT; \
+ if $(SHELL) -c "$(RUNTEST) --version" > /dev/null 2>&1; then \
+ exit_status=0; l='$(DEJATOOL)'; for tool in $$l; do \
+ if $(RUNTEST) $(RUNTESTDEFAULTFLAGS) $(AM_RUNTESTFLAGS) $(RUNTESTFLAGS); \
+ then :; else exit_status=1; fi; \
+ done; \
+ else echo "WARNING: could not find '$(RUNTEST)'" 1>&2; :;\
+ fi; \
+ exit $$exit_status
+site.exp: Makefile $(EXTRA_DEJAGNU_SITE_CONFIG)
+ @echo 'Making a new site.exp file ...'
+ @echo '## these variables are automatically generated by make ##' >site.tmp
+ @echo '# Do not edit here. If you wish to override these values' >>site.tmp
+ @echo '# edit the last section' >>site.tmp
+ @echo 'set srcdir "$(srcdir)"' >>site.tmp
+ @echo "set objdir \"`pwd`\"" >>site.tmp
+ @echo 'set build_alias "$(build_alias)"' >>site.tmp
+ @echo 'set build_triplet $(build_triplet)' >>site.tmp
+ @echo 'set host_alias "$(host_alias)"' >>site.tmp
+ @echo 'set host_triplet $(host_triplet)' >>site.tmp
+ @list='$(EXTRA_DEJAGNU_SITE_CONFIG)'; for f in $$list; do \
+ echo "## Begin content included from file $$f. Do not modify. ##" \
+ && cat `test -f "$$f" || echo '$(srcdir)/'`$$f \
+ && echo "## End content included from file $$f. ##" \
+ || exit 1; \
+ done >> site.tmp
+ @echo "## End of auto-generated content; you can edit from here. ##" >> site.tmp
+ @if test -f site.exp; then \
+ sed -e '1,/^## End of auto-generated content.*##/d' site.exp >> site.tmp; \
+ fi
+ @-rm -f site.bak
+ @test ! -f site.exp || mv site.exp site.bak
+ @mv site.tmp site.exp
+
+distclean-DEJAGNU:
+ -rm -f site.exp site.bak
+ -l='$(DEJATOOL)'; for tool in $$l; do \
+ rm -f $$tool.sum $$tool.log; \
+ done
+distdir: $(BUILT_SOURCES)
+ $(MAKE) $(AM_MAKEFLAGS) distdir-am
+
+distdir-am: $(DISTFILES)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
+ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+ if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+ if test -d "$(distdir)/$$file"; then \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+ cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+ find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+ fi; \
+ cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+ else \
+ test -f "$(distdir)/$$file" \
+ || cp -p $$d/$$file "$(distdir)/$$file" \
+ || exit 1; \
+ fi; \
+ done
+check-am: all-am
+ $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
+check: check-am
+all-am: Makefile $(PROGRAMS)
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ if test -z '$(STRIP)'; then \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ install; \
+ else \
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+ fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+ -rm -f ps.test/$(DEPDIR)/$(am__dirstamp)
+ -rm -f ps.test/$(am__dirstamp)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \
+ mostlyclean-am
+
+distclean: distclean-am
+ -rm -f ps.test/$(DEPDIR)/test-schedbatch.Po
+ -rm -f Makefile
+distclean-am: clean-am distclean-DEJAGNU distclean-compile \
+ distclean-generic distclean-tags
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f ps.test/$(DEPDIR)/test-schedbatch.Po
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-compile mostlyclean-generic \
+ mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: check-am install-am install-strip
+
+.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-DEJAGNU \
+ check-am clean clean-generic clean-libtool \
+ clean-noinstPROGRAMS cscopelist-am ctags ctags-am distclean \
+ distclean-DEJAGNU distclean-compile distclean-generic \
+ distclean-libtool distclean-tags distdir dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-compile \
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags tags-am uninstall uninstall-am
+
+.PRECIOUS: Makefile
+
+export DEJAGNU
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/testsuite/README b/testsuite/README
new file mode 100644
index 0000000..14d4c4c
--- /dev/null
+++ b/testsuite/README
@@ -0,0 +1,33 @@
+How to use check suite
+----------------------
+
+You need DejaGNU package. Assuming you have it all you need to do is
+
+make check
+
+
+Something failed now what
+-------------------------
+
+First determine what did not work. If only one check failed you can
+run it individually in debugging mode. For example
+
+runtest -a -de -v w.test/w.exp
+Expect binary is /usr/bin/expect
+Using /usr/share/dejagnu/runtest.exp as main test driver
+[...]
+
+Do not bother capturing screen output, it is in testrun.log which
+test suite generated.
+
+$ ls testrun.* dbg.log
+dbg.log testrun.log testrun.sum
+
+The reason why test failed should be in dbg.log. Assuming you
+figured out the reason you could write a patch fixing w.test/w.exp
+and send it to upstream.
+
+If you do not know how, or have time, to fix the issue create tar.gz
+file containing test run logs and submit it to upstream maintainers.
+Notice that in later case upstream sometimes has to ask clarifying
+questions about environment where problem occurred.
diff --git a/testsuite/config/unix.exp b/testsuite/config/unix.exp
new file mode 100644
index 0000000..d102a8b
--- /dev/null
+++ b/testsuite/config/unix.exp
@@ -0,0 +1,244 @@
+
+set env(LC_ALL) "C"
+regexp "(.*\/)testsuite" $objdir objdir topdir
+
+# These are the same as include/c.h
+set usage_help "\\s*-h, --help\\s+display this help and exit\\s+"
+set usage_version "\\s*-V, --version\\s+output version information and exit\\s+"
+set usage_man "\\s*For more details see \\S+\\."
+
+proc kill_process pid {
+ set cmdline "kill $pid"
+ if { [catch { exec /bin/sh -c $cmdline } msg]} {
+ warning "Could not kill process: $msg\n"
+ }
+}
+
+proc procps_v_version { tool } {
+ global topdir
+ set toolpath ${topdir}src/${tool}
+ set tmp [ exec $toolpath -V ]
+ regexp "from procps-ng (\[0-9.\]*)" $tmp tmp version
+ clone_output "$toolpath version $version\n"
+}
+
+proc free_version {} { procps_v_version free }
+proc kill_version {} { procps_v_version kill }
+proc pgrep_version {} { procps_v_version pgrep }
+proc pkill_version {} { procps_v_version pkill }
+proc pmap_version {} { procps_v_version pmap }
+proc pwdx_version {} { procps_v_version pwdx }
+proc sysctl_version {} { procps_v_version sysctl }
+proc uptime_version {} { procps_v_version uptime }
+proc vmstat_version {} { procps_v_version vmstat }
+proc w_version {} { procps_v_version w }
+
+#
+#
+# common utilities
+proc expect_continue { testname reg } {
+ expect {
+ -re "$reg" { }
+ eof { fail "$testname" }
+ timeout { fail "$testname" }
+ }
+}
+
+proc expect_pass { testname reg } {
+ expect {
+ -re "$reg" { pass "$testname" }
+ default { fail "$testname" }
+ timeout { fail "$testname" }
+ }
+}
+
+# Fail if we see this message, pass if we get to EOF
+proc expect_fail { testname reg } {
+ expect {
+ -re "$reg" { fail "$testname" }
+ timeout { fail "$testname" }
+ eof { pass "$testname" }
+ }
+}
+
+proc expect_pipeproc_pass { testname reg } {
+ global pipeproc_spawnid
+
+ expect {
+ -i $pipeproc_spawnid
+ -re "$reg" { pass "$testname" }
+ default { fail "$testname" }
+ timeout { fail "$testname (timeout)" }
+ }
+}
+
+proc expect_blank { testname } {
+ expect {
+ -re "\\w" { fail "$testname" }
+ eof { pass "$testname" }
+ timeout { pass "$testname" }
+ }
+}
+
+proc expect_blank_continue { testname } {
+ expect {
+ -re "\\w" { fail "$testname" }
+ eof { }
+ timeout { pass "$testname (timeout)" }
+ }
+}
+
+proc expect_table { test match_header match_items match_footer } {
+ expect {
+ -re "$match_header" {
+ expect {
+ -re "$match_items" {
+ expect {
+ -re "$match_footer" { pass "$test" }
+ default { fail "$test (footer)" }
+ }
+ }
+ default { fail "$test (items)" }
+ }
+ }
+ default { fail "$test (header)" }
+ }
+}
+
+proc expect_table_dsc { test match_header match_item } {
+ expect {
+ -re $match_header {}
+ default {
+ fail "$test (header)"
+ return
+ }
+ }
+
+ set do_loop 1
+ set last_value 99999999
+ set found_item 0
+ while { $do_loop ==1 } {
+ expect {
+ -re $match_item {
+ set current_value $expect_out(1,string)
+ if { $current_value > $last_value } {
+ fail "$test (sorting $current_value > $last_value)"
+ return
+ } else {
+ set found_item 1
+ set last_value $current_value
+ }
+ }
+ default {
+ if { $found_item == 0 } {
+ fail "$test (items)"
+ } else {
+ pass $test
+ }
+ return
+ }
+ }
+ }
+ #expect {
+ # -re $match_footer { pass $test }
+ # default { fail "$test (footer)" }
+ #}
+}
+
+proc expect_spawn_retval { test retval } {
+ foreach {pid spawnid os_error_flag value} [wait] break
+
+ if {$value == $retval} {
+ return
+ }
+ fail "$test (exit value)"
+}
+
+proc make_pipeproc { } {
+ global pipeproc_pid pipeproc_spawnid topdir
+
+ set testproc_realpath "${topdir}/src/tests/test_process"
+
+ set pipeproc_pid [ spawn $testproc_realpath ]
+ set pipeproc_spawnid $spawn_id
+
+}
+proc make_testproc { } {
+ global testproc_path testproc_comm testproc_arg_str testproc1_pid testproc2_pid topdir
+
+ set testproc_realpath "${topdir}/src/tests/test_process"
+ set testproc_comm "spcorp"
+
+ set testproc_path [ exec mktemp -u ]
+ exec ln -s $testproc_realpath $testproc_path
+
+ spawn readlink $testproc_path
+ expect {
+ -re "^$testproc_realpath\\s*$" { }
+ timeout { perror "test proc does not link to test process" }
+ eof { perror "test proc does not link to test process" }
+ }
+
+ # make a process with the argument set to a fraction of ARG_MAX length
+ # but small enough we do not run TCL out of memory for regular expressions
+ # nor do we get argument list too long (104857 was found to work on Ubuntu 18.04)
+ set max_arg_len [ expr min([ exec /usr/bin/getconf ARG_MAX ], 104857) ]
+ # ensure we have enough slack to launch the test prog and pgrep
+ set reserved_space [expr max([ string length $testproc_path ], [ string length $topdir ] + 10)]
+ set testproc_arg_str "a"
+ set i $reserved_space
+ while {$i<$max_arg_len} {
+ incr i
+ append testproc_arg_str "a"
+ }
+ set testproc1_pid [ exec $testproc_path $testproc_arg_str & ]
+ set testproc2_pid [ exec $testproc_path & ]
+}
+
+proc make_testshm_proc { } {
+ global testshmproc_pid testshm_spawnid topdir shmid
+
+ set testshm_realpath "${topdir}/src/tests/test_shm"
+
+ set testshmproc_pid [ spawn $testshm_realpath ]
+ set testshmproc_spawnid $spawn_id
+ expect {
+ -i $testshmproc_spawnid
+ -re "^SHMID: (\[0-9a-f\]+)" { set shmid $expect_out(1,string) }
+ default { set shmid "" }
+ }
+
+}
+
+proc kill_testshm_proc { } {
+ global testshmproc_pid
+
+ kill_process $testshmproc_pid
+}
+
+proc kill_testproc { } {
+ global testproc_path testproc1_pid testproc2_pid
+
+ kill_process $testproc1_pid
+ kill_process $testproc2_pid
+ file delete $testproc_path
+}
+
+proc kill_pipeproc { } {
+ global pipeproc_pid
+ kill_process $pipeproc_pid
+}
+
+proc get_tty {} {
+ if { [catch { set raw_tty [ exec tty ] } msg]} {
+ warning "No TTY found"
+ return ""
+ }
+ regexp "/dev/(.+)" $raw_tty > tty
+ if { $tty == "tty" } {
+ warning "TTY is tty"
+ return ""
+ }
+
+ return $tty
+}
diff --git a/testsuite/free.test/free.exp b/testsuite/free.test/free.exp
new file mode 100644
index 0000000..d55fa53
--- /dev/null
+++ b/testsuite/free.test/free.exp
@@ -0,0 +1,61 @@
+#
+# Testsuite for free program
+#
+
+set free "${topdir}src/free"
+set meminfo [ exec cat /proc/meminfo ]
+regexp "MemTotal:\\s+\(\\d+\)" $meminfo -> memtotal_kb
+regexp "SwapTotal:\\s+\(\\d+\)" $meminfo -> swaptotal_kb
+
+set free_header "\\s+total\\s+used\\s+free\\s+shared\\s+buff\\/cache\\s+available\\s*"
+
+set test "free with no arguments"
+spawn $free
+expect_pass "$test" "^${free_header}Mem:\\s+${memtotal_kb}\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s*Swap:\\s+${swaptotal_kb}\\s+\\d+\\s+\\d+\\s*"
+
+set test "free with -b argument"
+set memtotal [ expr { $memtotal_kb * 1024 } ]
+set swaptotal [ expr { $swaptotal_kb * 1024 } ]
+spawn $free -b
+expect_pass "$test" "^${free_header}Mem:\\s+${memtotal}\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s*Swap:\\s+${swaptotal}\\s+\\d+\\s+\\d+\\s*"
+
+foreach {arg divisor } {-k 1024 -m 1048576 -g 1073741824 --kilo 1000 --mega 1000000 --giga 1000000000 } {
+ set test "free with $arg argument"
+ set memtest [ expr { $memtotal / $divisor } ]
+ set swaptest [ expr { $swaptotal / $divisor } ]
+ spawn $free $arg
+ expect_pass "$test" "^${free_header}Mem:\\s+$memtest\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s*Swap:\\s+${swaptest}\\s+\\d+\\s+\\d+\\s*"
+}
+
+#set test "free with human readable output"
+#spawn $free -h
+#expect_pass "$test" "${free_header}Mem:\\s+\[0-9.\]+\[BKMGT\]\\s+\[0-9.\]+\[BKMGT\]\\s+\[0-9.\]+\[BKMGT\]\\s+\[0-9.\]+\[BKMGT\]\\s+\[0-9.\]+\[BKMGT\]\\s+\[0-9.\]+\[BKMGT\]\\s*-\\/\\+ buffers\\/cache:\\s+\[0-9.\]+\[BKMGT\]\\s+\[0-9.\]+\[BKMGT\]\\s*Swap:\\s+\[0-9.\]+\[BKMGT\]\\s+\[0-9.\]+\[BKMGT\]\\s+\[0-9.\]+\[BKMGT\]\\s*"
+
+set test "free with lo and hi memory statistics"
+spawn $free -l
+expect_pass "$test" "^${free_header}Mem:\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s*Low:\\s+\\d+\\s+\\d+\\s+\\d+\\s*High:\\s+\\d+\\s+\\d+\\s+\\d+\\s*Swap:\\s+\\d+\\s+\\d+\\s+\\d+"
+
+set test "free with total"
+spawn $free -t
+expect_pass "$test" "^${free_header}Mem:\\s+${memtotal_kb}\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s*Swap:\\s+${swaptotal_kb}\\s+\\d+\\s+\\d+\\s*Total:\\s+\\d+\\s+\\d+\\s+\\d+\\s*"
+
+set test "free with commit"
+spawn $free -v
+expect_pass "$test" "^${free_header}Mem:\\s+${memtotal_kb}\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s*Swap:\\s+${swaptotal_kb}\\s+\\d+\\s+\\d+\\s*Comm:\\s+\\d+\\s+\\d+\\s+-?\\d+\\s*"
+
+set test "free with negative repeat count"
+spawn $free -c -2
+expect_pass "$test" "\(lt-\)\?free: failed to parse count argument: '-2': Numerical result out of range"
+
+set test "free with zero repeat count"
+spawn $free -c 0
+expect_pass "$test" "\(lt-\)\?free: failed to parse count argument: '0': Numerical result out of range"
+
+set test "free with positive repeat count"
+spawn $free -c 2
+expect_continue "$test" "^${free_header}"
+expect_pass "$test" "${free_header}"
+
+set test "free with single line"
+spawn $free -L
+expect_pass "$test" "^SwapUse\\s+\\d+\\s+CachUse\\s+\\d+\\s+MemUse\\s+\\d+\\s+MemFree\\s+\\d+\\s*$"
diff --git a/testsuite/kill.test/kill.exp b/testsuite/kill.test/kill.exp
new file mode 100644
index 0000000..49bac96
--- /dev/null
+++ b/testsuite/kill.test/kill.exp
@@ -0,0 +1,65 @@
+#
+# Dejagnu testsuite for kill - part of procps
+#
+set kill ${topdir}src/kill
+
+if { ![ file exists $kill ] } {
+ untested { skipping (not build)}
+ return
+}
+
+set test "kill with no arguments"
+spawn $kill
+expect_pass "$test" "Usage:\\s+\(lt-\)?kill \\\[options\\\] <pid>"
+
+set test "kill list signal names"
+spawn $kill -l
+expect_pass "$test" "^\(\[A-Z12+-\]\\s*\)+$"
+
+set test "kill list signal names in table"
+spawn $kill -L
+expect_pass "$test" "^\(\\s+\\d+ \[A-Z12+-\]+\)+\\s*$"
+
+set test "kill convert signal name to number no space"
+spawn $kill -lHUP
+expect_pass "$test" "^1\\s*"
+
+set test "kill convert signal name to number with space"
+spawn $kill -l HUP
+expect_pass "$test" "^1\\s*"
+
+set test "kill convert SIG-prefixed signal name to number no space"
+spawn $kill -lSIGHUP
+expect_pass "$test" "^1\\s*$"
+
+set test "kill convert SIG-prefixed signal name to number with space"
+spawn $kill -l SIGHUP
+
+expect_pass "$test" "^1\\s*$"
+
+set test "kill convert signal number to name no space"
+spawn $kill -l1
+expect_pass "$test" "^HUP\\s*"
+
+set test "kill convert signal number to name with space"
+spawn $kill -l 1
+expect_pass "$test" "^HUP\\s*"
+
+make_pipeproc
+
+set test "kill with SIGUSR1"
+spawn $kill -USR1 $pipeproc_pid
+expect_blank_continue "$test"
+expect_pipeproc_pass "$test" "SIG SIGUSR1"
+
+set test "kill with long SIGUSR2"
+spawn $kill -s SIGUSR2 $pipeproc_pid
+expect_blank_continue "$test"
+expect_pipeproc_pass "$test" "SIG SIGUSR2"
+
+set test "kill with queued int"
+spawn $kill -USR1 -q 42 $pipeproc_pid
+expect_blank_continue "$test"
+expect_pipeproc_pass "$test" "SIG SIGUSR1 value=42"
+
+kill_pipeproc
diff --git a/testsuite/lib.test/fileutils.exp b/testsuite/lib.test/fileutils.exp
new file mode 100644
index 0000000..3eaf654
--- /dev/null
+++ b/testsuite/lib.test/fileutils.exp
@@ -0,0 +1,19 @@
+#
+# Testsuite for lib/fileutils program
+#
+
+set noarg "${topdir}src/tests/test_fileutils"
+
+set test "without argument"
+spawn $noarg
+expect_pass "$test" "Hello, World!"
+
+set badfd "${srcdir}/lib.test/fileutils_badfd.sh"
+set test "test bad file descriptor"
+spawn $badfd
+expect_pass "$test" "test_fileutils: write error: Bad file descriptor"
+
+set full "${srcdir}/lib.test/fileutils_full.sh"
+set test "test no space left on device"
+spawn $full
+expect_pass "$test" "test_fileutils: write error: No space left on device"
diff --git a/testsuite/lib.test/fileutils_badfd.sh b/testsuite/lib.test/fileutils_badfd.sh
new file mode 100755
index 0000000..12c5b83
--- /dev/null
+++ b/testsuite/lib.test/fileutils_badfd.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+${PWD}/../src/tests/test_fileutils >&-
diff --git a/testsuite/lib.test/fileutils_full.sh b/testsuite/lib.test/fileutils_full.sh
new file mode 100755
index 0000000..ea9b55a
--- /dev/null
+++ b/testsuite/lib.test/fileutils_full.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+${PWD}/../src/tests/test_fileutils > /dev/full
diff --git a/testsuite/lib.test/strutils.exp b/testsuite/lib.test/strutils.exp
new file mode 100644
index 0000000..72d1fcd
--- /dev/null
+++ b/testsuite/lib.test/strutils.exp
@@ -0,0 +1,25 @@
+#
+# Testsuite for lib/strutils program
+#
+
+set teststr "${topdir}src/tests/test_strutils"
+
+set test "without argument"
+spawn $teststr
+expect_pass "$test" "test_strutils: no arguments"
+
+set test "test long"
+spawn $teststr 1
+expect_pass "$test" "1"
+
+set test "test long fail"
+spawn $teststr fail
+expect_pass "$test" "test_strutils: strtol_or_err: \'fail\'"
+
+set test "test double"
+spawn $teststr dummy 1.1
+expect_pass "$test" "1.100000"
+
+set test "test double fail"
+spawn $teststr dummy fail
+expect_pass "$test" "test_strutils: strtod_or_err: \'fail\'"
diff --git a/testsuite/pgrep.test/pgrep.exp b/testsuite/pgrep.test/pgrep.exp
new file mode 100644
index 0000000..0c4836f
--- /dev/null
+++ b/testsuite/pgrep.test/pgrep.exp
@@ -0,0 +1,131 @@
+#
+# Dejagnu tests for pgrep - part of procps
+#
+set mypid [pid]
+set not_ppid [ expr { $mypid + 1 } ]
+set pgrep "${topdir}src/pgrep"
+set uid [ exec id -u ]
+set not_uid [ expr { $uid + 1 } ]
+set gid [ exec id -g ]
+set not_gid [ expr { $gid + 1 } ]
+set ps "${topdir}src/ps/pscommand"
+set tty [ get_tty ]
+
+set test "pgprep with no arguments"
+spawn $pgrep
+expect_pass "$test" "^\(lt-\)\?pgrep: no matching criteria specified\\s*"
+
+make_testproc
+
+set testproc_len [ string length $testproc_comm ]
+set testproc_trim [ string range $testproc_comm 0 [ expr { $testproc_len - 2 } ] ]
+set testproc1_sid [ string trim [ exec $ps --no-headers -o sid $testproc1_pid ] ]
+set not_testproc1_sid [ expr { $testproc1_sid + 1 } ]
+
+set test "pgrep find both test pids"
+spawn $pgrep $testproc_comm
+expect_pass "$test" "^$testproc1_pid\\s+$testproc2_pid\\s*$"
+
+# In Debian only
+set test "pgrep counts 2 test pids"
+spawn $pgrep -c $testproc_comm
+expect_pass "$test" "^2\\s*"
+
+set test "pgrep with : delimiter"
+spawn $pgrep -d : $testproc_comm
+expect_pass "$test" "^${testproc1_pid}:${testproc2_pid}\\s*$"
+
+set test "pgrep match against full process name"
+spawn $pgrep -f "$testproc_path\\s+$testproc_arg_str"
+expect_pass "$test" "^$testproc1_pid\\s*$"
+
+set test "pgrep with matching gid"
+spawn $pgrep -G $gid $testproc_comm
+expect_pass "$test" "^$testproc1_pid\\s+$testproc2_pid\\s*$"
+
+set test "pgrep with not matching gid"
+spawn $pgrep -G $not_gid $testproc_comm
+expect_blank $test
+
+set test "pgrep with process name"
+spawn $pgrep -l $testproc_comm
+expect_pass "$test" "^$testproc1_pid\\s+$testproc_comm\\s+$testproc2_pid\\s+$testproc_comm\\s*$"
+
+set test "pgrep with full command line"
+spawn $pgrep -af "$testproc_path$"
+expect_pass "$test" "^$testproc2_pid\\s+$testproc_path\\s*$"
+
+set test "pgrep find newest test pid"
+spawn $pgrep -n $testproc_comm
+expect_pass "$test" "^$testproc2_pid\\s*$"
+
+set test "pgrep find oldest test pid"
+spawn $pgrep -o $testproc_comm
+expect_pass "$test" "^$testproc1_pid\\s*$"
+
+set test "pgrep matches with parent pid"
+spawn $pgrep -P $mypid $testproc_comm
+expect_pass "$test" "^$testproc1_pid\\s+$testproc2_pid\\s*$"
+
+set test "pgrep doesn't match with bogus parent pid"
+spawn $pgrep -P $not_ppid $testproc_comm
+expect_blank "$test"
+
+set test "pgrep matches with its own sid"
+spawn $pgrep -s $testproc1_sid $testproc_comm
+expect_pass "$test" "^$testproc1_pid\\s+$testproc2_pid\\s*$"
+
+set test "pgrep doesn't match with bogus sid"
+spawn $pgrep -s $not_testproc1_sid $testproc_comm
+expect_blank "$test"
+
+set test1 "pgrep matches on tty"
+set test2 "pgrep doesn't match on tty and wrong runstate"
+if { $tty == "" } {
+ untested "$test1"
+ untested "$test2"
+} else {
+ spawn $pgrep -t $tty $testproc_comm
+ expect_pass "$test1" "^$testproc1_pid\\s+$testproc2_pid\\s*$"
+ spawn $pgrep -t $tty -r D $testproc_comm
+ expect_blank "$test2"
+}
+
+set test "pgrep doesn't match with bogus tty"
+spawn $pgrep -t glass $testproc_comm
+expect_blank "$test"
+
+set test "pgrep with matching euid"
+spawn $pgrep -u $uid $testproc_comm
+expect_pass "$test" "^$testproc1_pid\\s+$testproc2_pid\\s*$"
+
+set test "pgrep with not matching euid"
+spawn $pgrep -u $not_uid $testproc_comm
+expect_blank $test
+
+set test "pgrep with matching uid"
+spawn $pgrep -U $uid $testproc_comm
+expect_pass "$test" "^$testproc1_pid\\s+$testproc2_pid\\s*$"
+
+set test "pgrep with not matching uid"
+spawn $pgrep -U $not_uid $testproc_comm
+expect_blank $test
+
+set test "pgrep matches on substring"
+spawn $pgrep $testproc_trim
+expect_pass "$test" "^$testproc1_pid\\s+$testproc2_pid\\s*$"
+
+set test "pgrep matches full string with exact"
+spawn $pgrep -x $testproc_comm
+expect_pass "$test" "^$testproc1_pid\\s+$testproc2_pid\\s*$"
+
+set test "pgrep does not match substring with exact"
+spawn $pgrep -x $testproc_trim
+expect_blank $test
+
+set test "pgrep with long non-matching pattern gives warning"
+spawn $pgrep gnome-session-bi
+expect_pass "$test" "pattern that searches for process name longer than 15 characters will result in zero matches"
+
+# Cleanup
+kill_testproc
diff --git a/testsuite/pkill.test/pkill.exp b/testsuite/pkill.test/pkill.exp
new file mode 100644
index 0000000..a88d882
--- /dev/null
+++ b/testsuite/pkill.test/pkill.exp
@@ -0,0 +1,51 @@
+#
+# Dejagnu tests for pkill - part of procps
+#
+set mypid [pid]
+set not_ppid [ expr { $mypid + 1 } ]
+set pkill "${topdir}src/pkill"
+set uid [ exec id -u ]
+set not_uid [ expr { $uid + 1 } ]
+set gid [ exec id -g ]
+set not_gid [ expr { $gid + 1 } ]
+set ps "${topdir}src/ps/pscommand"
+set tty [ get_tty ]
+
+set test "pkill with no arguments"
+spawn $pkill
+expect_pass "$test" "^\(lt-\)\?pkill: no matching criteria specified\\s*"
+
+make_testproc
+set testproc_len [ string length $testproc_comm ]
+set testproc_trim [ string range $testproc_comm 0 [ expr { $testproc_len - 2 } ] ]
+
+set test "pkill find both test pids"
+spawn $pkill -0 -e $testproc_comm
+expect_pass "$test" "^$testproc_comm killed \\(pid $testproc1_pid\\)\\s+$testproc_comm killed \\(pid $testproc2_pid\\)\\s*$"
+
+set test "pkill signal option order"
+spawn $pkill -e $testproc_comm -0
+expect_pass "$test" "^$testproc_comm killed \\(pid $testproc1_pid\\)\\s+$testproc_comm killed \\(pid $testproc2_pid\\)\\s*$"
+
+set test "pkill with trailing garbage on int signal"
+spawn $pkill -0garbage $testproc_comm
+expect_pass "$test" "invalid option -- '0'"
+
+# Cleanup
+kill_testproc
+
+make_pipeproc
+
+set test "pkill with SIGUSR1"
+spawn $pkill -USR1 -e $testproc_comm
+expect_pipeproc_pass "$test" "SIG SIGUSR1"
+
+set test "pkill with SIGUSR2"
+spawn $pkill -USR2 -e $testproc_comm
+expect_pipeproc_pass "$test" "SIG SIGUSR2"
+
+set test "pkill with queued int"
+spawn $pkill -USR1 -e -q 42 $testproc_comm
+expect_pipeproc_pass "$test" "SIG SIGUSR1 value=42"
+
+kill_pipeproc
diff --git a/testsuite/pmap.test/pmap.exp b/testsuite/pmap.test/pmap.exp
new file mode 100644
index 0000000..8d9ff1a
--- /dev/null
+++ b/testsuite/pmap.test/pmap.exp
@@ -0,0 +1,106 @@
+#
+# Dejagnu tests for pgrep - part of procps
+#
+set pmap "${topdir}src/pmap"
+set mypid [pid]
+
+set pmap_procname "${mypid}:\\s+\\S+\[^\\r\]+\\s+"
+set pmap_initname "1:\\s+\\S+\[^\\r\]+\\s+"
+set pmap_std_header $pmap_procname
+set pmap_device_header "${pmap_procname}Address\\s+Kbytes\\s+Mode\\s+Offset\\s+Device\\s+Mapping\\s+"
+set pmap_ext_header "${pmap_procname}Address\\s+Kbytes\\s+RSS\\s+Dirty\\s+Mode\\s+Mapping\\s+"
+set pmap_generic_header "${pmap_procname}\\s+\(?:\[A-Z\]\[a-z\]+ +\)+"
+
+set pmap_std_items "\(\[0-9a-f\]+\\s+\\d+K \[rwx-\]{5}\\s+\\S+\[^\\r\]+\\s*\)+"
+set pmap_device_items "\(\[0-9a-f\]+\\s+\\d+ \[rwx-\]{5}\\s+\[0-9a-f\]+\\s+\[0-9a-f\]{3}:\[0-9a-f\]{5}\\s+\\S+\[^\\r\]+\\s*\)+"
+set pmap_ext_items "\(\[0-9a-f\]+\\s+\\d+\\s+\\d+\\s+\\d+ \[rwx-\]{5}\\s+\\S+\[^\\r\]+\\s*\)+"
+
+set pmap_std_footer "total\\s+\\d+K\\s*\$"
+set pmap_device_footer "mapped:\\s+\\d+K\\s+writeable\/private:\\s+\\d+K\\s+shared:\\s+\\d+K\\s*\$"
+set pmap_ext_footer "\[ -\]+\\s+total kB\\s+\\d+(\\s+\[\\d-\]+){2,3}\\s*\$"
+
+set test "pmap with no arguments"
+spawn $pmap
+#expect_pass "$test" "^\(lt-\)\?pmap: argument missing"
+expect_pass "$test" "Usage:\\s+\(lt-\)?pmap \\\[options\\\] PID \\\[PID \.\.\.\\\]"
+
+set test "pmap standard output"
+spawn $pmap $mypid
+expect_table $test $pmap_std_header $pmap_std_items $pmap_std_footer
+
+set test "pmap standard output with quiet"
+spawn $pmap -q $mypid
+expect_table $test $pmap_procname $pmap_std_items "\$"
+
+set test "pmap device output"
+spawn $pmap -d $mypid
+expect_table $test $pmap_device_header $pmap_device_items $pmap_device_footer
+
+
+set test "pmap device output quiet (dq)"
+spawn $pmap -dq $mypid
+expect_table $test $pmap_procname $pmap_device_items "\$"
+
+set test "pmap device output quiet (qd)"
+spawn $pmap -qd $mypid
+expect_table $test $pmap_procname $pmap_device_items "\$"
+
+if { [ file readable "/proc/self/smaps" ] == 0 } {
+ unsupported "Skipping test which require pmap to access /proc/<pid>/smaps, because kernel seems to be compiled without CONFIG_PROC_PAGE_MONITOR."
+} else {
+ set test "pmap extended output"
+ spawn $pmap -x $mypid
+ expect_table $test $pmap_ext_header $pmap_ext_items $pmap_ext_footer
+
+ # -X and -XX have no real format as its dependent on smaps
+ set test "pmap extra extended output"
+ spawn $pmap -X $mypid
+ expect_table $test $pmap_generic_header "\[^=\]+" "\[= \]+"
+
+ set test "pmap double extra extended output"
+ spawn $pmap -XX $mypid
+ expect_table $test $pmap_generic_header "\[^=\]+" "\[= \]+"
+
+ set test "pmap X with unreachable process"
+ spawn $pmap -X 1
+ expect_pass $test "$pmap_initname\$"
+
+ set test "pmap XX with unreachable process"
+ spawn $pmap -XX 1
+ expect_pass $test "$pmap_initname\$"
+}
+
+
+proc expect_twice_total { test } {
+ set totkb 0
+ expect {
+ -re "\r\n\\s+(\\d+)\[0-9 \]*KB" {
+ set totkb $expect_out(1,string)
+ expect {
+ -re "\r\n\\s+$totkb\[0-9 \]*KB" { pass "$test" }
+ eof { fail "$test" }
+ timeout { fail "$test" }
+ }
+ }
+ eof { fail "$test" }
+ timeout { fail "$test" }
+ }
+}
+
+set test "pmap X pid pid has same total"
+spawn $pmap -X $mypid $mypid
+expect_twice_total "$test"
+
+set test "pmap XX pid pid has same total"
+spawn $pmap -XX $mypid $mypid
+expect_twice_total "$test"
+
+set test "pmap finding shm"
+make_testshm_proc
+if { $shmid == "" } {
+ unsupported "$test - could not start test_shm"
+} else {
+ spawn $pmap $testshmproc_pid
+ expect_pass $test "\[ shmid=0x$shmid \]"
+}
+kill_testshm_proc
diff --git a/testsuite/ps.test/ps_output.exp b/testsuite/ps.test/ps_output.exp
new file mode 100644
index 0000000..ff2a233
--- /dev/null
+++ b/testsuite/ps.test/ps_output.exp
@@ -0,0 +1,63 @@
+#
+# Dejagnu tests for ps (output options) - part of procps
+#
+set ps ${topdir}src/ps/pscommand
+
+set mypid [pid]
+set not_ppid [ expr { $mypid + 1 } ]
+set uid [ exec id -u ]
+set not_uid [ expr { $uid + 1 } ]
+set gid [ exec id -g ]
+set not_gid [ expr { $gid + 1 } ]
+
+# All the fields
+# Cannot do args,cmd,comm
+set ps_digit "\\d+\\s*"
+set ps_state "\[A-Z<sl+\]\\s*"
+#set ps_pct "\\d{1,2}\\.\\d\\s*"
+set ps_pct "\\d"
+set ps_hex "\[0-9a-f\]\\s*"
+set ps_time "\\d{1,3}:\\d{2}\\s*"
+set ps_time "\(\d+-\)?\\\d{1,3}:\\d{2}\\s*"
+set ps_class "\[A-Z?-\]\\s*"
+
+set flag_match {
+ "%cpu,pcpu,%mem,pmem" "%CPU\\s+%CPU\\s+%MEM\\s+%MEM\\s+\(\(\\d+\.\\d+\\s*\){4}\)+$"
+ "blocked,sig_block,sigmask,caught,sigcatch,sig_catch" "\(BLOCKED\\s+\){3}\(CAUGHT\\s+\){2}CATCHED\\s+\(<?\[0-9a-f\]+\\s*\)+$"
+ "bsdstart,start,lstart" "\\s*START\\s+STARTED\\s+STARTED\\s+\(\\s*\(\[A-Z\]\[a-z\]{2} \\d+|\\d+:\\d{2}\)\\s+\(\[A-Z\]\[a-z\]{2} \\d+|\\d+:\\d{2}:\\d{2}\)\\s+\[A-Z\]\[a-z\]{2} \[A-Z\]\[a-z\]{2}\\s+\\d+ \\d{2}:\\d{2}:\\d{2} \\d{4}\\s*\)+$"
+ "bsdtime,cputime,etime,etimes" "\\s*TIME\\s+TIME\\s+ELAPSED\\s+ELAPSED\\s*\(\\s*\\d+:\\d{2}\\s+\\d{2}:\\d{2}:\\d{2}\\s+\(\\d{2}:\)?\\d{2}:\\d{2}\\s+\\d+\\s*\)+$"
+ "user,ruser,group,rgroup,uid,ruid,gid,rgid" "\\s*USER\\s+RUSER\\s+GROUP\\s+RGROUP\\s+UID\\s+RUID\\s+GID\\s+RGID\\s+\(\(\\s*\[A-Za-z0-9_+-\]+\\s+\){4}\(\\d+\\s+\){4}\\s*\)+$"
+ "cputimes,times" "\\s*TIME\\s+TIME\\s+\\d+\\s+\\d+\\s*"
+}
+
+foreach { flag match } $flag_match {
+ set test "ps with output flag $flag"
+ spawn $ps -o $flag
+ expect_pass "$test" $match
+}
+
+set test "ps with correct AIX field"
+spawn $ps -o "%p"
+expect_pass "$test" "\\s*PID\\s+\(\\s*\\d+\\s+\)+$"
+
+set test "ps with improper AIX field"
+spawn $ps -o "%p %G{"
+expect_pass "$test" "error: improper AIX field descriptor"
+
+set test "ps with missing AIX field"
+spawn $ps -o "%p %%a"
+expect_pass "$test" "error: missing AIX field descriptor"
+
+set test "ps with unknown AIX field"
+spawn $ps -o "%p %Z"
+expect_pass "$test" "error: unknown AIX field descriptor"
+
+make_testproc
+set test "ps with c option"
+spawn $ps co command $testproc1_pid
+expect_pass "$test" "^COMMAND\\s+spcorp\\s*$"
+kill_testproc
+
+set test "ps with l and m options"
+spawn $ps -lm
+expect_fail "$test" "please report this bug"
diff --git a/testsuite/ps.test/ps_personality.exp b/testsuite/ps.test/ps_personality.exp
new file mode 100644
index 0000000..f873a19
--- /dev/null
+++ b/testsuite/ps.test/ps_personality.exp
@@ -0,0 +1,18 @@
+#
+# check the ps personalities
+#
+set ps ${topdir}src/ps/pscommand
+
+set pers_match {
+ bsd "\\s+PID\\s+TTY\\s+STAT\\s+TIME\\s+COMMAND\\r"
+ linux "\\s+PID\\s+TTY\\s+TIME\\s+CMD\\r"
+ old "\\s+PID\\s+TTY\\s+STAT\\s+TIME\\s+COMMAND\\r"
+ }
+
+foreach { pers match } $pers_match {
+ set test "ps with $pers personality"
+ set env(PS_PERSONALITY) $pers
+ spawn $ps
+ expect_pass "$test" $match
+}
+
diff --git a/testsuite/ps.test/ps_sched_batch.exp b/testsuite/ps.test/ps_sched_batch.exp
new file mode 100644
index 0000000..ff948db
--- /dev/null
+++ b/testsuite/ps.test/ps_sched_batch.exp
@@ -0,0 +1,11 @@
+#
+# check the ps SCHED_BATCH scheduler policy output
+#
+set ps "${topdir}src/ps/pscommand"
+set schedbatch "${topdir}testsuite/test-schedbatch"
+
+spawn $schedbatch 18
+
+set test "ps SCHED_BATCH scheduler"
+spawn $ps --no-header -o comm,cls,nice -a
+expect_pass "$test" "(?n)^test-schedbatch\\s+B\\s+18\\r?\$"
diff --git a/testsuite/ps.test/test-schedbatch.c b/testsuite/ps.test/test-schedbatch.c
new file mode 100644
index 0000000..9b4d334
--- /dev/null
+++ b/testsuite/ps.test/test-schedbatch.c
@@ -0,0 +1,46 @@
+/* test-schedbatch.c - Create a process using SCHED_BATCH scheduler
+ * policy and nice value.
+ * Compile: gcc -o test-schedbatch -Wall test-schedbatch.c
+ * Usage: ./test-schedbatch [ <NICE> ]
+ *
+ * Author: Mike Fleetwood
+ * https://bugzilla.redhat.com/show_bug.cgi?id=741090
+ */
+
+#define _GNU_SOURCE
+#include <stdlib.h>
+#include <stdio.h>
+#include <errno.h>
+#include <sched.h>
+#include <sys/time.h>
+#include <sys/resource.h>
+
+/* Defined in Linux headers only */
+#ifndef SCHED_BATCH
+#define SCHED_BATCH 3
+#endif
+
+int main(int argc, const char *argv[])
+{
+ int nice = 19;
+ struct sched_param sp;
+ char msg[50];
+
+ if (argc >= 2) {
+ nice = atoi(argv[1]);
+ }
+ sp.sched_priority = 0;
+#ifdef SCHED_BATCH
+ if (sched_setscheduler(0, SCHED_BATCH, &sp)) {
+ perror("sched_setscheduler(0,SCHED_BATCH,{.sched_priority=0}");
+ }
+#endif /* SCHED_BATCH */
+ if (setpriority(PRIO_PROCESS, 0, nice) || errno) {
+ (void)snprintf(msg, sizeof(msg),
+ "setpriority(PRIO_PROCESS, 0, %d)", nice);
+ perror(msg);
+ }
+ while (1) {
+ getchar();
+ }
+}
diff --git a/testsuite/pwdx.test/pwdx.exp b/testsuite/pwdx.test/pwdx.exp
new file mode 100644
index 0000000..2f71cbd
--- /dev/null
+++ b/testsuite/pwdx.test/pwdx.exp
@@ -0,0 +1,22 @@
+
+make_testproc
+
+set pwdx "${topdir}src/pwdx"
+# Run pwdx with no arguments
+set test "pwdx no args"
+spawn $pwdx
+expect_pass "$test" "^\\s*Usage:\\s+\(lt-\)\?pwdx \\\[options\\\] pid\.\.\."
+
+# Run pwdx with pid 0 which is invalid
+set test "pwdx pid 0 should be invalid"
+spawn $pwdx 0
+expect_pass "$test" "\(lt-\)\?pwdx\: invalid process id\: 0"
+
+# Run pwdx with existing pid
+set test "pwdx find test process cwd"
+set my_pwd [ pwd ]
+spawn $pwdx $testproc1_pid
+expect_pass "$test" "^$testproc1_pid: $my_pwd"
+
+# Cleanup
+kill_testproc
diff --git a/testsuite/slabtop.test/slabtop.exp b/testsuite/slabtop.test/slabtop.exp
new file mode 100644
index 0000000..2ef0336
--- /dev/null
+++ b/testsuite/slabtop.test/slabtop.exp
@@ -0,0 +1,45 @@
+#
+# Dehagnu testing for slabtop - part of procps
+#
+set slabtop ${topdir}src/slabtop
+
+set avst "Active / Total"
+set used "\\\(% used\\\)\\s+:"
+set pct "\\\(\\d+\\.\\d+%\\\)"
+
+set slabtop_header "^ $avst Objects $used \\d+ / \\d+ ${pct}\\s+$avst Slabs $used \\d+ / \\d+ ${pct}\\s+$avst Caches $used \\d+ / \\d+ ${pct}\\s+$avst Size $used \\d+\\.\\d+K / \\d+\\.\\d+K ${pct}\\s+Minimum / Average / Maximum Object : \\d+\\.\\d+K / \\d+\\.\\d+K / \\d+\\.\\d+K\\s+OBJS ACTIVE USE OBJ SIZE SLABS OBJ/SLAB CACHE SIZE NAME\\s+"
+
+set test "slabtop help"
+spawn $slabtop --help
+expect_pass $test "^\\s+Usage:\\s+\(lt-\)\?slabtop \\\[options\\\]"
+
+set test "slabtop o then d options"
+spawn $slabtop -o -d 10
+expect_pass $test "Cannot combine -d and -o options"
+
+set test "slabtop d then o options"
+spawn $slabtop -d 10 -o
+expect_pass $test "Cannot combine -d and -o options"
+
+set sort_tests {
+ "a" "active objects" "^\\s*\\d+\\s+(\\d+)\\s+\\d+%\\s+\\d+\\.\\d+K\\s+\\d+\\s+\\d+\\s+\\d+K\\s+\\S\[^\r\]+\\s*"
+ "b" "objects per slab" "^\\s*\\d+\\s+\\d+\\s+\\d+%\\s+\\d+\\.\\d+K\\s+\\d+\\s+(\\d+)\\s+\\d+K\\s+\\S\[^\r\]+\\s*"
+ "c" "cache size" "^\\s*\\d+\\s+\\d+\\s+\\d+%\\s+\\d+\\.\\d+K\\s+\\d+\\s+\\d+\\s+(\\d+)K\\s+\\S\[^\r\]+\\s*"
+ "l" "number of slabs" "^\\s*\\d+\\s+\\d+\\s+\\d+%\\s+\\d+\\.\\d+K\\s+(\\d+)\\s+\\d+\\s+\\d+K\\s+\\S\[^\r\]+\\s*"
+ "o" "object count" "^\\s*(\\d+)\\s+\\d+\\s+\\d+%\\s+\\d+\\.\\d+K\\s+\\d+\\s+\\d+\\s+\\d+K\\s+\\S\[^\r\]+\\s*"
+ "s" "object size" "^\\s*\\d+\\s+\\d+\\s+\\d+%\\s+(\\d+\\.\\d+)K\\s+\\d+\\s+\\d+\\s+\\d+K\\s+\\S\[^\r\]+\\s*"
+ "u" "utilisation" "^\\s*\\d+\\s+\\d+\\s+(\\d+)%\\s+\\d+\\.\\d+K\\s+\\d+\\s+\\d+\\s+\\d+K\\s+\\S\[^\r\]+\\s*"
+ }
+
+# BEGIN - Tests requiring /proc/slabinfo
+if { [ file readable "/proc/slabinfo" ] == 0 } {
+ unsupported "slabtop tests disabled as /proc/slabinfo is unreadable"
+} else {
+
+foreach { flag desc match } $sort_tests {
+ set test "slabtop sorted by $desc"
+ spawn $slabtop -o -s $flag
+ expect_table_dsc $test $slabtop_header $match
+}
+}
+# END - Tests requiring /proc/slabinfo
diff --git a/testsuite/sysctl.test/sysctl_read.exp b/testsuite/sysctl.test/sysctl_read.exp
new file mode 100644
index 0000000..c55cd95
--- /dev/null
+++ b/testsuite/sysctl.test/sysctl_read.exp
@@ -0,0 +1,29 @@
+#
+# Dejagnu tests for sysctl (read only) - part of procps
+#
+set sysctl ${topdir}src/sysctl
+set hostname [ exec cat "/proc/sys/kernel/hostname" ]
+
+set test "sysctl with no arguments"
+spawn $sysctl
+expect_pass "$test" "^\\s+Usage:\\s+\(lt-\)?sysctl \\\[options\\\] \\\[variable\\\[=value\\\] \.\.\.\\\]"
+
+set test "sysctl reading a variable using slash delimiter"
+spawn $sysctl kernel/hostname
+expect_pass "$test" "kernel.hostname = ${hostname}"
+
+set test "sysctl reading a variable using dot delimiter"
+spawn $sysctl kernel.hostname
+expect_pass "$test" "kernel.hostname = ${hostname}"
+
+set test "sysctl reading a variable suppress key"
+spawn $sysctl -n kernel.hostname
+expect_pass "$test" "${hostname}"
+
+set test "sysctl reading a variable suppress value"
+spawn $sysctl -N kernel.hostname
+expect_pass "$test" "kernel.hostname"
+
+set test "sysctl reading using a path traversal"
+spawn $sysctl /../../etc/passwd
+expect_pass "$test" "sysctl: Path is not under /proc/sys/: /proc/sys//../../etc/passwd"
diff --git a/testsuite/uptime.test/uptime.exp b/testsuite/uptime.test/uptime.exp
new file mode 100644
index 0000000..4b0d28d
--- /dev/null
+++ b/testsuite/uptime.test/uptime.exp
@@ -0,0 +1,17 @@
+#
+# Dejagnu tests for uptime - part of procps
+#
+set uptime "${topdir}src/uptime"
+
+set test "uptime"
+spawn $uptime
+expect_pass "$test" "^\\s+\\d{2}:\\d{2}:\\d{2} up (\\d+ days?,)?\\s*\\d+( min|:\\d+), +\\d+ users?, +load average: \[0-9.\]+, \[0-9.\]+, \[0-9.\]+\\s*$"
+
+set test "uptime since option"
+spawn $uptime --since
+expect_pass "$test" "^\\d{4}-\\d{2}-\\d{2} \\d{2}:\\d{2}:\\d{2}\\s*$"
+
+set test "uptime pretty option"
+spawn $uptime --pretty
+expect_pass "$test" "up (\\d+ decades?, )?(\\d+ years?, )?(\\d+ weeks?, )?(\\d+ days?, )?(\\d+ hours?, )?(\\d+ minutes?)\\s*$"
+
diff --git a/testsuite/vmstat.test/vmstat.exp b/testsuite/vmstat.test/vmstat.exp
new file mode 100644
index 0000000..48d0b0f
--- /dev/null
+++ b/testsuite/vmstat.test/vmstat.exp
@@ -0,0 +1,57 @@
+
+#
+# Dejagnu tests for vmstat - part of procps
+
+set vmstat "${topdir}src/vmstat"
+
+# Tests that need to see /proc/vmstat
+if { [ file readable "/proc/vmstat" ] == 0 } {
+ unsupported "vmstat with no arguments - /proc/vmstat is unreadable"
+ unsupported "vmstat with -a flag - /proc/vmstat is unreadable"
+ unsupported "vmstat fork option - /proc/vmstat is unreadable"
+} else {
+ set test "vmstat with no arguments"
+ spawn $vmstat
+ expect_pass "$test" "^procs\[ -\]+memory\[ -\]+swap\[ -\]+io\[ -\]+system\[ -\]+cpu\[ -\]+\\s*r\\s+b\\s+swpd\\s+free\\s+buff\\s+cache\\s+si\\s+so\\s+bi\\s+bo\\s+in\\s+cs us sy id wa st gu\\s*\(\\s+\\d+\){18}\\s*$"
+
+ set test "vmstat with -a flag"
+ spawn $vmstat -a
+ expect_pass "$test" "^procs\[ -\]+memory\[ -\]+swap\[ -\]+io\[ -\]+system\[ -\]+cpu\[ -\]+\\s*r\\s+b\\s+swpd\\s+free\\s+inact\\s+active\\s+si\\s+so\\s+bi\\s+bo\\s+in\\s+cs us sy id wa st gu\\s*\(\\s+\\d+\){18}\\s*$"
+
+ set test "vmstat fork option"
+ spawn $vmstat -f
+ expect_pass "$test" "^\\s+\\d+ forks\\s*$"
+}
+
+if { [ file readable "/proc/slabinfo" ] == 0 } {
+ unsupported "slabinfo (-m option) test disabled as /proc/slabinfo is unreadable"
+} else {
+set test "vmstat slabinfo (-m option)"
+spawn $vmstat -m
+expect_pass "$test" "^Cache\\s+Num\\s+Total\\s+Size\\s+Pages\\s+\(\\S+\\s+\\d+\\s+\\d+\\s+\\d+\\s+\\d+\\s*\){1,}"
+}
+
+set test "vmstat disk information (-d option)"
+if { [ file readable "/sys/block" ] == 0 } {
+ unsupported "$test /sys/block not readable"
+} else {
+ set fp [open /proc/diskstats ]
+ if { [ read $fp ] == "" } {
+ close $fp
+ unsupported "$test /proc/diskstats empty"
+ } else {
+ close $fp
+ spawn $vmstat -d
+ expect_pass "$test" "^disk\[ -\]+reads\[ -\]+writes\[ -\]+IO\[ -\]+\\s+total\\s+merged\\s+sectors\\s+ms\\s+total\\s+merged\\s+sectors\\s+ms\\s+cur\\s+sec\\s+"
+
+ # Need a partition
+ set diskstats [ exec cat /proc/diskstats ]
+ if [ regexp "\\s+\\d+\\s+\\d+\\s+\((?:hd|sd|vd)\[a-z\]\\d+\)\\s+\[0-9\]\[0-9\]+" $diskstats line partition == 1 ] {
+ set test "vmstat partition (using $partition)"
+ spawn $vmstat -p $partition
+ expect_pass "$test" "^${partition}\\s+reads"
+ } else {
+ unsupported "vmstat partition (cannot find partition)"
+ }
+ }
+}
diff --git a/testsuite/w.test/w.exp b/testsuite/w.test/w.exp
new file mode 100644
index 0000000..f0da803
--- /dev/null
+++ b/testsuite/w.test/w.exp
@@ -0,0 +1,59 @@
+#
+# Dejagnu tests for w - part of procps
+#
+# FIXME - the user lines only go to idle
+set w "${topdir}src/w"
+
+set w_uptime "\\s+\\d{2}:\\d{2}:\\d{2} up (\\d+ days?,)?\\s*\\d+( min|:\\d+), +\\d+ users?, +load average: \[0-9.\]+, \[0-9.\]+, \[0-9.\]+\\s+"
+set w_std_header "${w_uptime}USER\\s+TTY\\s+LOGIN@\\s+IDLE\\s+JCPU\\s+PCPU\\s+WHAT\\s+"
+set w_short_header "${w_uptime}USER\\s+TTY\\s+IDLE\\s+WHAT\\s+"
+set w_from_header "${w_uptime}USER\\s+TTY\\s+FROM\\s+LOGIN@\\s+IDLE\\s+JCPU\\s+PCPU\\s+WHAT\\s+"
+set w_fromshort_header "${w_uptime}USER\\s+TTY\\s+FROM\\s+IDLE\\s+WHAT\\s+"
+
+set w_user "\[A-Za-z0-9_-\]+"
+set w_tty "\[a-z0-9/]+"
+set w_from "\[A-Za-z0-9.:-\]*"
+set w_login "\(\\d+\[A-Z\]\[a-z\]{2}\\d+\|\[A-Z\]\[a-z\]{2}\\d+\|\\d+:\\d+\)"
+set w_idle "\(\\?xdm\\?\|\\?\|\\d+days\|\\d+:\\d+m?\|\\d+.\\d+s\)"
+set w_ival7 "\(\\?\|\\d+days\|\\d+:\\d+m?\|\\d+.\\d+s\)"
+set w_what "\[A-Za-z0-9_\/\\-\]+"
+set w_pids "\\d+/\\d+"
+set w_std_userlines "\(${w_user}\\s+${w_tty}\\s+${w_login}\\s+${w_idle}\\s+${w_ival7}\\s+${w_ival7}\\s+${w_what}\\s*\)*"
+set w_short_userlines "\(${w_user}\\s+${w_tty}\\s+${w_idle}\\s+${w_what}\\s*\)*"
+set w_from_userlines "\(${w_user}\\s+${w_tty}\\s+${w_from}\\s+${w_login}\\s+${w_idle}\\s+${w_ival7}\\s+${w_ival7}\\s+${w_what}\\s*\)*"
+set w_fromshort_userlines "\(${w_user}\\s+${w_tty}\\s+${w_from}\\s+${w_idle}\\s+${w_what}\\s*\)*"
+set w_pid_userlines "\(${w_user}\\s+${w_tty}\\s+${w_idle}\\s+%{w_pids}\s+${w_what}\\s*\)*"
+
+set test "w with no arguments"
+spawn $w
+expect_pass "$test" "^${w_std_header}${w_std_userlines}"
+
+
+set test "w with no headers"
+spawn $w -h
+expect_pass "$test" "^${w_std_userlines}"
+
+set test "w with -u flag"
+spawn $w -u
+expect_pass "$test" "^${w_std_header}${w_std_userlines}"
+
+set test "w with short output"
+spawn $w -s
+expect_pass "$test" "^${w_short_header}${w_short_userlines}"
+
+set test "w with from flag"
+spawn $w -f
+expect_pass "$test" "^${w_from_header}${w_from_userlines}"
+
+set test "w with from and short flags"
+spawn $w -fs
+expect_pass "$test" "^${w_fromshort_header}${w_fromshort_userlines}"
+
+set test "w with short and from flags"
+spawn $w -sf
+expect_pass "$test" "^${w_fromshort_header}${w_fromshort_userlines}"
+
+set test "w with pids display"
+spawn $w -p
+expect_pass "$test" "^${w_std_header}${w_pid_userlines}"
+